summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-08 00:16:42 +0000
committerKarl Berry <karl@freefriends.org>2018-03-08 00:16:42 +0000
commit34a8597760ab5740abd49b6d8be10e1876f5ce98 (patch)
tree099a794912a28b3ebbc857961643ba29b28e674a /Master/tlpkg/tlperl
parent2ca3610031316a7312d046d3ae4c783452831216 (diff)
(tl)perl 5.26.1 from siep
git-svn-id: svn://tug.org/texlive/trunk@46882 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlperl')
-rw-r--r--Master/tlpkg/tlperl/README.TEXLIVE2
-rwxr-xr-xMaster/tlpkg/tlperl/bin/libgcc_s_dw2-1.dllbin114190 -> 121460 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/libstdc++-6.dllbin1539598 -> 1548049 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/libwinpthread-1.dllbin48128 -> 65629 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/perl.exebin19968 -> 21504 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/perl5.24.1.exebin19968 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/perl5.26.1.exebin0 -> 21504 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/perl524.dllbin1899008 -> 0 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/perl526.dllbin0 -> 1956352 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/perlglob.exebin15360 -> 17408 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/bin/wperl.exebin19968 -> 21504 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/.packlist3162
-rw-r--r--Master/tlpkg/tlperl/lib/App/Cpan.pm241
-rw-r--r--Master/tlpkg/tlperl/lib/App/Prove.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/App/Prove/State.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Archive/Tar.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/Archive/Tar/File.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/B.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/B/Concise.pm173
-rw-r--r--Master/tlpkg/tlperl/lib/B/Debug.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/B/Deparse.pm452
-rw-r--r--Master/tlpkg/tlperl/lib/B/Op_private.pm278
-rw-r--r--Master/tlpkg/tlperl/lib/B/Terse.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/B/Xref.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/CORE.pod6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/XSUB.h21
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/av.h8
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h9056
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/config.h135
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/cop.h12
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/dosish.h2
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/embed.h142
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/embedvar.h16
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/feature.h18
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/gv.h1
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/handy.h817
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/hv.h42
-rwxr-xr-xMaster/tlpkg/tlperl/lib/CORE/hv_func.h683
-rwxr-xr-xMaster/tlpkg/tlperl/lib/CORE/inline.h1037
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/intrpvar.h35
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/keywords.h2
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h6
-rwxr-xr-x[-rw-r--r--]Master/tlpkg/tlperl/lib/CORE/libperl526.a (renamed from Master/tlpkg/tlperl/lib/CORE/libperl524.a)bin971756 -> 974142 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/metaconfig.h32
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/op.h40
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/opcode.h641
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/opnames.h763
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pad.h8
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/parser.h31
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/patchlevel.h8
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perl.h561
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlapi.h4
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlhost.h16
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perlvars.h11
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/perly.h299
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pp.h46
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/pp_proto.h10
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/proto.h1117
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regcharclass.h2332
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regcomp.h7
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regexp.h36
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/regnodes.h164
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/scope.h20
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/sv.h189
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/time64.h3
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/uconfig.h139
-rwxr-xr-xMaster/tlpkg/tlperl/lib/CORE/unicode_constants.h42
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/unixish.h2
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/utf8.h653
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/utfebcdic.h280
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/util.h13
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/vdir.h6
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/warnings.h71
-rw-r--r--Master/tlpkg/tlperl/lib/CORE/win32.h95
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN.pm93
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Bundle.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Distribution.pm223
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Exception/RecursiveDependency.pm40
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/FTP.pm16
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm13
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Index.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta.pm28
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm58
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod50
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod50
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod104
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod122
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod149
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm68
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm73
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm17
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Mirrors.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Module.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Plugin.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/CPAN/Shell.pm16
-rw-r--r--Master/tlpkg/tlperl/lib/Carp.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Carp/Heavy.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/Compress/Zlib.pm28
-rw-r--r--Master/tlpkg/tlperl/lib/Config.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Config.pm.orig24
-rw-r--r--Master/tlpkg/tlperl/lib/Config.pod146
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Config/Perl/V.pm37
-rw-r--r--Master/tlpkg/tlperl/lib/Config_heavy.pl141
-rw-r--r--Master/tlpkg/tlperl/lib/Config_heavy.pl.orig226
-rw-r--r--Master/tlpkg/tlperl/lib/Cwd.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Data/Dumper.pm47
-rw-r--r--Master/tlpkg/tlperl/lib/Devel/PPPort.pm441
-rw-r--r--Master/tlpkg/tlperl/lib/Devel/Peek.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/Devel/SelfStubber.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Digest/MD5.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Digest/SHA.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/DynaLoader.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Encode.pm73
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/Alias.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/CN/HZ.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm516
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/MIME/Header/ISO_2022_JP.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/MIME/Name.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/Supported.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/Unicode.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Encode/_T.e2x6
-rw-r--r--Master/tlpkg/tlperl/lib/Errno.pm45
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Command.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm579
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm40
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm173
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm53
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm881
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm403
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm212
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm52
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MY.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm438
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod262
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm19
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod38
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm21
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/File/Copy.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/File/Fetch.pm39
-rw-r--r--Master/tlpkg/tlperl/lib/File/Glob.pm25
-rw-r--r--Master/tlpkg/tlperl/lib/File/GlobMapper.pm24
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec.pm11
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Functions.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Mac.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/OS2.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Unix.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/VMS.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/File/Spec/Win32.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/FileHandle.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/Filter/Simple.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Getopt/Long.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/Getopt/Std.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/HTTP/Tiny.pm387
-rw-r--r--Master/tlpkg/tlperl/lib/Hash/Util.pm54
-rw-r--r--Master/tlpkg/tlperl/lib/I18N/LangTags.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/I18N/LangTags/Detect.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Base.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm28
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/FAQ.pod14
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm42
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Socket/IP.pm46
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm16
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm26
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm38
-rw-r--r--Master/tlpkg/tlperl/lib/IPC/Cmd.pm38
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Internals.pod78
-rw-r--r--Master/tlpkg/tlperl/lib/JSON/PP.pm86
-rw-r--r--Master/tlpkg/tlperl/lib/List/Util.pm135
-rw-r--r--Master/tlpkg/tlperl/lib/List/Util/XS.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes.pm239
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes.pod55
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/API.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod62
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm37
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod32
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm6542
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm43
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm132
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm585
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm561
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm55379
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm96
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm1769
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Country.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Country.pod32
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Currency.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Currency.pod4
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Language.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Language.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Maketext.pm73
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Maketext.pod74
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Script.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Locale/Script.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigFloat.pm8033
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigInt.pm7810
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm4194
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm11
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm59
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Math/BigInt/Lib.pm1715
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigInt/Trace.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Math/BigRat.pm3478
-rw-r--r--Master/tlpkg/tlperl/lib/Math/Complex.pm42
-rw-r--r--Master/tlpkg/tlperl/lib/Module/CoreList.pm962
-rw-r--r--Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Module/CoreList/Utils.pm111
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/Module/Metadata.pm59
-rw-r--r--Master/tlpkg/tlperl/lib/NEXT.pm78
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Cmd.pm11
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Config.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Domain.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/A.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/E.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/I.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/L.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/NNTP.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Netrc.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/POP3.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Ping.pm1334
-rw-r--r--Master/tlpkg/tlperl/lib/Net/SMTP.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Net/Time.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod2
-rw-r--r--Master/tlpkg/tlperl/lib/Opcode.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/POSIX.pm159
-rw-r--r--Master/tlpkg/tlperl/lib/POSIX.pod18
-rw-r--r--Master/tlpkg/tlperl/lib/Parse/CPAN/Meta.pm152
-rw-r--r--Master/tlpkg/tlperl/lib/Perl/OSType.pm17
-rw-r--r--Master/tlpkg/tlperl/lib/PerlIO.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/PerlIO/encoding.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/PerlIO/scalar.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Checker.pm1406
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Functions.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Html.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Man.pm58
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/ParseLink.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm42
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Text.pm34
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Text/Color.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Text/Termcap.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Pod/Usage.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Safe.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Scalar/Util.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/Storable.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/Sub/Util.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Symbol.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Base.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Harness.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Object.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/Term/ANSIColor.pm94
-rw-r--r--Master/tlpkg/tlperl/lib/Term/ReadLine.pm7
-rw-r--r--Master/tlpkg/tlperl/lib/Test.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder.pm2982
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test/Builder/Formatter.pm122
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder/Module.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm69
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm61
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Harness.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/Test/More.pm88
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Simple.pm5
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tester.pm20
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm18
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm3
-rw-r--r--Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm13
-rw-r--r--Master/tlpkg/tlperl/lib/Test/use/ok.pm4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2.pm213
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/API.pm1310
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/API/Breakage.pm175
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/API/Context.pm739
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/API/Instance.pm754
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/API/Stack.pm220
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event.pm254
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Bail.pm102
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Diag.pm83
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Encoding.pm86
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Exception.pm88
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Generic.pm263
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Info.pm127
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Note.pm81
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Ok.pm140
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Plan.pm160
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Skip.pm108
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Subtest.pm131
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm83
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Event/Waiting.pm61
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Formatter.pm128
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm538
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Hub.pm829
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm80
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm51
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm125
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/IPC.pm140
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/IPC/Driver.pm292
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm497
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm425
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Transition.pod512
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Util.pm258
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm182
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Util/HashBase.pm289
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Test2/Util/Trace.pm186
-rw-r--r--Master/tlpkg/tlperl/lib/Thread/Queue.pm50
-rw-r--r--Master/tlpkg/tlperl/lib/Thread/Semaphore.pm46
-rw-r--r--Master/tlpkg/tlperl/lib/Tie/Hash/NamedCapture.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Time/HiRes.pm44
-rw-r--r--Master/tlpkg/tlperl/lib/Time/Local.pm343
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate.pm35
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm26
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm242
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl21
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl96
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl50
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl45
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl29
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl52
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl148
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl31
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl52
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl62
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl52
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl98
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl88
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl122
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl118
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl18
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl148
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl53
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl7
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl90
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl296
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl102
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl156
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl2632
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl60
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl144
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl1284
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl18
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl82
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl68
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl59
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl40
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl54
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl146
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl146
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl68
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl18
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl96
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl100
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl45
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl292
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl84
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl92
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl51
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl172
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl168
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl104
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl68
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl118
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl86
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl7
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl53
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl144
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl420
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl29
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl42
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl56
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl46
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl416
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl416
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl416
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl642
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl642
-rwxr-xr-xMaster/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl642
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt52887
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/Normalize.pm14
-rw-r--r--Master/tlpkg/tlperl/lib/Unicode/UCD.pm70
-rw-r--r--Master/tlpkg/tlperl/lib/XSLoader.pm8
-rw-r--r--Master/tlpkg/tlperl/lib/_charnames.pm9
-rw-r--r--Master/tlpkg/tlperl/lib/arybase.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/attributes.pm11
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/B/B.dllbin77824 -> 78848 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dllbin83456 -> 85504 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dllbin120320 -> 122880 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Cwd/Cwd.dllbin22016 -> 24576 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dllbin41472 -> 46080 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dllbin22528 -> 25088 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dllbin24064 -> 26624 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dllbin49152 -> 50176 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dllbin115200 -> 117760 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/CN/CN.dllbin749568 -> 752128 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dllbin25088 -> 27136 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/Encode.dllbin39936 -> 40960 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/JP/JP.dllbin865792 -> 867328 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/KR/KR.dllbin820736 -> 822784 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dllbin28672 -> 31232 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/TW/TW.dllbin766464 -> 768512 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dllbin27136 -> 26624 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dllbin21504 -> 23552 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dllbin15360 -> 16896 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/File/Glob/Glob.dllbin30208 -> 32256 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dllbin18944 -> 21504 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dllbin22016 -> 24576 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Hash/Util/Util.dllbin20992 -> 24576 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/IO/IO.dllbin24064 -> 26624 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/List/Util/Util.dllbin49664 -> 53760 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dllbin21504 -> 23552 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dllbin21504 -> 23040 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Opcode/Opcode.dllbin25600 -> 27136 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/POSIX/POSIX.dllbin105984 -> 108544 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dllbin29184 -> 30720 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dllbin14336 -> 16896 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dllbin20480 -> 23552 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/PerlIO/via/via.dllbin25088 -> 27136 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dllbin32256 -> 33792 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Socket/Socket.dllbin31232 -> 33280 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Storable/Storable.dllbin89600 -> 91136 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dllbin15360 -> 16896 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dllbin17920 -> 20480 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dllbin26112 -> 29184 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dllbin25600 -> 27648 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dllbin577536 -> 620544 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dllbin227328 -> 230912 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32/Win32.dllbin53760 -> 55808 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/Win32API/File/File.dllbin78848 -> 81408 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/arybase/arybase.dllbin25088 -> 27648 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/attributes/attributes.dllbin18432 -> 20480 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/mro/mro.dllbin24576 -> 27136 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/re/re.dllbin588288 -> 586240 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/threads/shared/shared.dllbin38400 -> 40960 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/lib/auto/threads/threads.dllbin37888 -> 39936 bytes
-rw-r--r--Master/tlpkg/tlperl/lib/base.pm57
-rw-r--r--Master/tlpkg/tlperl/lib/bigint.pm41
-rw-r--r--Master/tlpkg/tlperl/lib/bignum.pm58
-rw-r--r--Master/tlpkg/tlperl/lib/bigrat.pm36
-rw-r--r--Master/tlpkg/tlperl/lib/charnames.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/diagnostics.pm25
-rw-r--r--Master/tlpkg/tlperl/lib/encoding.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/encoding/warnings.pm30
-rw-r--r--Master/tlpkg/tlperl/lib/feature.pm116
-rw-r--r--Master/tlpkg/tlperl/lib/lib.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/mro.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/ok.pm4
-rw-r--r--Master/tlpkg/tlperl/lib/open.pm12
-rw-r--r--Master/tlpkg/tlperl/lib/overload.pm10
-rw-r--r--Master/tlpkg/tlperl/lib/parent.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/perl5db.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/perlfaq.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/perllocal.pod258
-rw-r--r--Master/tlpkg/tlperl/lib/re.pm68
-rw-r--r--Master/tlpkg/tlperl/lib/threads.pm25
-rw-r--r--Master/tlpkg/tlperl/lib/threads/shared.pm27
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Blocks.txt19
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Decomposition.pl3
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Heavy.pl5096
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Name.pl1377
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/Name.pm29
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt11
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Age.pl54
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Bc.pl50
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Cf.pl13
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Digit.pl32
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Ea.pl97
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Fold.pl82
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/GCB.pl84
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Gc.pl95
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Hst.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/InPC.pl29
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/InSC.pl32
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Isc.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Jg.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Jt.pl29
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Lb.pl197
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Lc.pl5
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Lower.pl73
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl83
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Na1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Nt.pl9
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Nv.pl25
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl5
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/SB.pl50
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Sc.pl73
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Scx.pl120
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Tc.pl13
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Title.pl82
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Uc.pl13
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/Upper.pl82
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/WB.pl82
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl152
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/To/_PerlWB.pl83
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/UCD.pl323
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl108
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl118
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl68
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl44
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl32
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl16
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl26
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl30
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl126
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl148
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl14
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/GCB/EB.pl70
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl50
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl106
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl108
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl108
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl40
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl46
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl20
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl26
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl102
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl1310
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl34
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl46
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl48
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl70
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl38
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Lb/EB.pl72
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl136
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl140
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl14
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl70
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl108
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl108
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl108
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl20
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl16
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl66
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl40
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl30
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl10
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Bhks.pl22
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl28
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl4
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Xsux.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl36
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl108
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl18
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl20
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl24
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl2
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl22
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl8
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl4
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl42
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl12
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl10
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl6
-rwxr-xr-xMaster/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl520
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl6
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl36
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl2
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl10
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl128
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl64
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl38
-rw-r--r--Master/tlpkg/tlperl/lib/unicore/version2
-rw-r--r--Master/tlpkg/tlperl/lib/version.pm2
-rw-r--r--Master/tlpkg/tlperl/lib/version/regex.pm6
-rw-r--r--Master/tlpkg/tlperl/lib/warnings.pm21
-rw-r--r--Master/tlpkg/tlperl/site/lib/Canary/Stability.pm207
-rwxr-xr-x[-rw-r--r--]Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm (renamed from Master/tlpkg/tlperl/site/lib/JSON/XS.pm)1369
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Boolean.pm29
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Type.pm219
-rw-r--r--Master/tlpkg/tlperl/site/lib/File/Which.pm6
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Config.pm32
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Cookies.pm8
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm8
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm8
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Headers.pm31
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Headers/Auth.pm29
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Headers/ETag.pm29
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Headers/Util.pm30
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Message.pm41
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Request.pm131
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Request/Common.pm149
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Response.pm65
-rw-r--r--Master/tlpkg/tlperl/site/lib/HTTP/Status.pm43
-rw-r--r--Master/tlpkg/tlperl/site/lib/JSON.pm1659
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/JSON/MaybeXS.pm323
-rw-r--r--Master/tlpkg/tlperl/site/lib/JSON/XS/Boolean.pm31
-rw-r--r--Master/tlpkg/tlperl/site/lib/JSON/backportPP.pm2854
-rw-r--r--Master/tlpkg/tlperl/site/lib/JSON/backportPP/Boolean.pm36
-rw-r--r--Master/tlpkg/tlperl/site/lib/JSON/backportPP/Compat5005.pm131
-rw-r--r--Master/tlpkg/tlperl/site/lib/JSON/backportPP/Compat5006.pm173
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/ConnCache.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Debug.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm9
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/DebugFile.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/data.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm12
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm11
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm6
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm20
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm5
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/RobotUA.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/Simple.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/LWP/UserAgent.pm27
-rw-r--r--Master/tlpkg/tlperl/site/lib/Net/HTTP.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm40
-rw-r--r--Master/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/Net/HTTPS.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/Socket.pm7
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/Test/Needs.pm315
-rw-r--r--Master/tlpkg/tlperl/site/lib/Tk.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/Tk/Config.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/Tk/Event.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/Tk/NoteBook.pm5
-rw-r--r--Master/tlpkg/tlperl/site/lib/Tk/Table.pod8
-rw-r--r--Master/tlpkg/tlperl/site/lib/Tk/getOpenFile.pod2
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/Tk/getSaveFile.pod11
-rw-r--r--Master/tlpkg/tlperl/site/lib/Try/Tiny.pm43
-rw-r--r--Master/tlpkg/tlperl/site/lib/Types/Serialiser.pm254
-rw-r--r--Master/tlpkg/tlperl/site/lib/Types/Serialiser/Error.pm27
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/Escape.pm1
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/IRI.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/QueryParam.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/Split.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_foreign.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_generic.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_idna.pm4
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_ldap.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_login.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_punycode.pm70
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_query.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_segment.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_server.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/_userpass.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/data.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/file/Base.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/file/FAT.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/file/Mac.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/file/OS2.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/file/QNX.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/file/Unix.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/file/Win32.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/ftp.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/gopher.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/http.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/https.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/ldap.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/ldapi.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/ldaps.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/mailto.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/mms.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/news.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/nntp.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/pop.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/rlogin.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/rsync.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/rtsp.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/rtspu.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/sftp.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/sip.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/sips.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/snews.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/ssh.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/telnet.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/tn3270.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/urn.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/urn/isbn.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/URI/urn/oid.pm2
-rw-r--r--Master/tlpkg/tlperl/site/lib/Win32/Process.pm224
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Canary/Stability/.packlist1
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist6
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dllbin0 -> 82944 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist74
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/.packlist4
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Digest/SHA1/SHA1.dllbin23552 -> 26112 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist8
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/File/Which/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist16
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dllbin52224 -> 54784 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist6
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist20
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/IO/String/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/JSON/.packlist5
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist1
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/JSON/XS/.packlist5
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/JSON/XS/XS.dllbin61440 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist4
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist10
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dllbin71680 -> 73216 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist6
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist8
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Socket/.packlist4
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Socket/Socket.dllbin40448 -> 43008 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist1
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Tk/.packlist1289
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Canvas/Canvas.dllbin204288 -> 204800 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Compound/Compound.dllbin27648 -> 30208 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Tk/DirSelect/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dllbin17920 -> 20480 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Entry/Entry.dllbin50176 -> 52736 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Event/Event.dllbin62976 -> 65024 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/HList/HList.dllbin66560 -> 68096 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/IO/IO.dllbin16384 -> 18432 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/JPEG/JPEG.dllbin145920 -> 144384 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Listbox/Listbox.dllbin38400 -> 40448 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Menubutton/Menubutton.dllbin28672 -> 30720 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/NBFrame/NBFrame.dllbin29696 -> 31232 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/PNG/PNG.dllbin242176 -> 242688 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Pixmap/Pixmap.dllbin32768 -> 35840 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Scale/Scale.dllbin32256 -> 34304 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Scrollbar/Scrollbar.dllbin29184 -> 31232 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/TList/TList.dllbin38912 -> 40448 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Text/Text.dllbin132096 -> 132096 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/TixGrid/TixGrid.dllbin83968 -> 87552 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Tk.dllbin940544 -> 937472 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/X/X.dllbin33792 -> 35840 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Tk/Xlib/Xlib.dllbin34816 -> 35840 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Types/Serialiser/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/URI/.packlist106
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist4
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist14
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Win32/API/API.dllbin32256 -> 33792 bytes
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dllbin25600 -> 28160 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist4
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dllbin48640 -> 51712 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/.packlist22
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Win32/OLE/OLE.dllbin135680 -> 137728 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Win32/Process/.packlist2
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Win32/Process/Process.dllbin28672 -> 0 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist4
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dllbin52224 -> 54784 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist4
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist6
-rwxr-xr-xMaster/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dllbin165888 -> 168448 bytes
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/common/sense/.packlist2
-rw-r--r--Master/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist66
-rw-r--r--Master/tlpkg/tlperl/site/lib/common/sense.pm16
-rw-r--r--Master/tlpkg/tlperl/site/lib/common/sense.pod445
-rw-r--r--Master/tlpkg/tlperl/site/lib/libwww/lwpcook.pod12
1313 files changed, 138060 insertions, 97591 deletions
diff --git a/Master/tlpkg/tlperl/README.TEXLIVE b/Master/tlpkg/tlperl/README.TEXLIVE
index 839a4f4f6b0..7e69fe00b47 100644
--- a/Master/tlpkg/tlperl/README.TEXLIVE
+++ b/Master/tlpkg/tlperl/README.TEXLIVE
@@ -1,6 +1,6 @@
(This file public domain.)
-This directory contains Perl 5.24.1 compiled for Windows.
+This directory contains Perl 5.26.1 compiled for Windows.
The only purpose of this Perl is to provide support on Windows for
Perl scripts shipped with TeX Live. It's not intended for general use.
diff --git a/Master/tlpkg/tlperl/bin/libgcc_s_dw2-1.dll b/Master/tlpkg/tlperl/bin/libgcc_s_dw2-1.dll
index 5bd25247974..8cbbb9e860d 100755
--- a/Master/tlpkg/tlperl/bin/libgcc_s_dw2-1.dll
+++ b/Master/tlpkg/tlperl/bin/libgcc_s_dw2-1.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/libstdc++-6.dll b/Master/tlpkg/tlperl/bin/libstdc++-6.dll
index a61bee528c4..a0a46203fec 100755
--- a/Master/tlpkg/tlperl/bin/libstdc++-6.dll
+++ b/Master/tlpkg/tlperl/bin/libstdc++-6.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/libwinpthread-1.dll b/Master/tlpkg/tlperl/bin/libwinpthread-1.dll
index 000b5c0c7fa..52a5c9a0855 100755
--- a/Master/tlpkg/tlperl/bin/libwinpthread-1.dll
+++ b/Master/tlpkg/tlperl/bin/libwinpthread-1.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/perl.exe b/Master/tlpkg/tlperl/bin/perl.exe
index 28e9a9a9b58..3870d75dc67 100755
--- a/Master/tlpkg/tlperl/bin/perl.exe
+++ b/Master/tlpkg/tlperl/bin/perl.exe
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/perl5.24.1.exe b/Master/tlpkg/tlperl/bin/perl5.24.1.exe
deleted file mode 100755
index 28e9a9a9b58..00000000000
--- a/Master/tlpkg/tlperl/bin/perl5.24.1.exe
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/perl5.26.1.exe b/Master/tlpkg/tlperl/bin/perl5.26.1.exe
new file mode 100755
index 00000000000..3870d75dc67
--- /dev/null
+++ b/Master/tlpkg/tlperl/bin/perl5.26.1.exe
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/perl524.dll b/Master/tlpkg/tlperl/bin/perl524.dll
deleted file mode 100755
index 26c46061b79..00000000000
--- a/Master/tlpkg/tlperl/bin/perl524.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/perl526.dll b/Master/tlpkg/tlperl/bin/perl526.dll
new file mode 100755
index 00000000000..5e1a089c5ca
--- /dev/null
+++ b/Master/tlpkg/tlperl/bin/perl526.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/perlglob.exe b/Master/tlpkg/tlperl/bin/perlglob.exe
index 9dace028ac9..c22e234e94b 100755
--- a/Master/tlpkg/tlperl/bin/perlglob.exe
+++ b/Master/tlpkg/tlperl/bin/perlglob.exe
Binary files differ
diff --git a/Master/tlpkg/tlperl/bin/wperl.exe b/Master/tlpkg/tlperl/bin/wperl.exe
index 7d8fe01aa76..4f9f2108ce3 100755
--- a/Master/tlpkg/tlperl/bin/wperl.exe
+++ b/Master/tlpkg/tlperl/bin/wperl.exe
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/.packlist b/Master/tlpkg/tlperl/lib/.packlist
index 9c53cd6c824..09e67dee333 100644
--- a/Master/tlpkg/tlperl/lib/.packlist
+++ b/Master/tlpkg/tlperl/lib/.packlist
@@ -1,1552 +1,1610 @@
-c:\tlperl\bin/c2ph.bat type=file
-c:\tlperl\bin/corelist.bat type=file
-c:\tlperl\bin/cpan.bat type=file
-c:\tlperl\bin/enc2xs.bat type=file
-c:\tlperl\bin/encguess.bat type=file
-c:\tlperl\bin/h2ph.bat type=file
-c:\tlperl\bin/h2xs.bat type=file
-c:\tlperl\bin/instmodsh.bat type=file
-c:\tlperl\bin/json_pp.bat type=file
-c:\tlperl\bin/libnetcfg.bat type=file
-c:\tlperl\bin/perl.exe from=c:\tlperl\bin/perl5.24.1.exe type=link
-c:\tlperl\bin/perl5.24.1.exe type=file
-c:\tlperl\bin/perl524.dll type=file
-c:\tlperl\bin/perlbug.bat type=file
-c:\tlperl\bin/perldoc.bat type=file
-c:\tlperl\bin/perlivp.bat type=file
-c:\tlperl\bin/perlthanks.bat from=c:\tlperl\bin/perlbug.bat type=link
-c:\tlperl\bin/piconv.bat type=file
-c:\tlperl\bin/pl2pm.bat type=file
-c:\tlperl\bin/pod2html.bat type=file
-c:\tlperl\bin/pod2man.bat type=file
-c:\tlperl\bin/pod2text.bat type=file
-c:\tlperl\bin/pod2usage.bat type=file
-c:\tlperl\bin/podchecker.bat type=file
-c:\tlperl\bin/podselect.bat type=file
-c:\tlperl\bin/prove.bat type=file
-c:\tlperl\bin/pstruct.bat from=c:\tlperl\bin/c2ph.bat type=link
-c:\tlperl\bin/ptar.bat type=file
-c:\tlperl\bin/ptardiff.bat type=file
-c:\tlperl\bin/ptargrep.bat type=file
-c:\tlperl\bin/shasum.bat type=file
-c:\tlperl\bin/splain.bat type=file
-c:\tlperl\bin/xsubpp.bat type=file
-c:\tlperl\bin/zipdetails.bat type=file
-c:\tlperl\lib/AnyDBM_File.pm type=file
-c:\tlperl\lib/App/Cpan.pm type=file
-c:\tlperl\lib/App/Prove.pm type=file
-c:\tlperl\lib/App/Prove/State.pm type=file
-c:\tlperl\lib/App/Prove/State/Result.pm type=file
-c:\tlperl\lib/App/Prove/State/Result/Test.pm type=file
-c:\tlperl\lib/Archive/Tar.pm type=file
-c:\tlperl\lib/Archive/Tar/Constant.pm type=file
-c:\tlperl\lib/Archive/Tar/File.pm type=file
-c:\tlperl\lib/Attribute/Handlers.pm type=file
-c:\tlperl\lib/AutoLoader.pm type=file
-c:\tlperl\lib/AutoSplit.pm type=file
-c:\tlperl\lib/B.pm type=file
-c:\tlperl\lib/B/Concise.pm type=file
-c:\tlperl\lib/B/Debug.pm type=file
-c:\tlperl\lib/B/Deparse.pm type=file
-c:\tlperl\lib/B/Op_private.pm type=file
-c:\tlperl\lib/B/Showlex.pm type=file
-c:\tlperl\lib/B/Terse.pm type=file
-c:\tlperl\lib/B/Xref.pm type=file
-c:\tlperl\lib/Benchmark.pm type=file
-c:\tlperl\lib/CORE.pod type=file
-c:\tlperl\lib/CORE/EXTERN.h type=file
-c:\tlperl\lib/CORE/INTERN.h type=file
-c:\tlperl\lib/CORE/XSUB.h type=file
-c:\tlperl\lib/CORE/arpa/inet.h type=file
-c:\tlperl\lib/CORE/av.h type=file
-c:\tlperl\lib/CORE/bitcount.h type=file
-c:\tlperl\lib/CORE/charclass_invlists.h type=file
-c:\tlperl\lib/CORE/config.h type=file
-c:\tlperl\lib/CORE/cop.h type=file
-c:\tlperl\lib/CORE/cv.h type=file
-c:\tlperl\lib/CORE/dirent.h type=file
-c:\tlperl\lib/CORE/dosish.h type=file
-c:\tlperl\lib/CORE/dquote_inline.h type=file
-c:\tlperl\lib/CORE/ebcdic_tables.h type=file
-c:\tlperl\lib/CORE/embed.h type=file
-c:\tlperl\lib/CORE/embedvar.h type=file
-c:\tlperl\lib/CORE/fakesdio.h type=file
-c:\tlperl\lib/CORE/feature.h type=file
-c:\tlperl\lib/CORE/form.h type=file
-c:\tlperl\lib/CORE/git_version.h type=file
-c:\tlperl\lib/CORE/gv.h type=file
-c:\tlperl\lib/CORE/handy.h type=file
-c:\tlperl\lib/CORE/hv.h type=file
-c:\tlperl\lib/CORE/hv_func.h type=file
-c:\tlperl\lib/CORE/inline.h type=file
-c:\tlperl\lib/CORE/intrpvar.h type=file
-c:\tlperl\lib/CORE/invlist_inline.h type=file
-c:\tlperl\lib/CORE/iperlsys.h type=file
-c:\tlperl\lib/CORE/keywords.h type=file
-c:\tlperl\lib/CORE/l1_char_class_tab.h type=file
-c:\tlperl\lib/CORE/libperl524.a type=file
-c:\tlperl\lib/CORE/malloc_ctl.h type=file
-c:\tlperl\lib/CORE/metaconfig.h type=file
-c:\tlperl\lib/CORE/mg.h type=file
-c:\tlperl\lib/CORE/mg_data.h type=file
-c:\tlperl\lib/CORE/mg_raw.h type=file
-c:\tlperl\lib/CORE/mg_vtable.h type=file
-c:\tlperl\lib/CORE/mydtrace.h type=file
-c:\tlperl\lib/CORE/netdb.h type=file
-c:\tlperl\lib/CORE/nostdio.h type=file
-c:\tlperl\lib/CORE/op.h type=file
-c:\tlperl\lib/CORE/op_reg_common.h type=file
-c:\tlperl\lib/CORE/opcode.h type=file
-c:\tlperl\lib/CORE/opnames.h type=file
-c:\tlperl\lib/CORE/overload.h type=file
-c:\tlperl\lib/CORE/pad.h type=file
-c:\tlperl\lib/CORE/parser.h type=file
-c:\tlperl\lib/CORE/patchlevel.h type=file
-c:\tlperl\lib/CORE/perl.h type=file
-c:\tlperl\lib/CORE/perlapi.h type=file
-c:\tlperl\lib/CORE/perlhost.h type=file
-c:\tlperl\lib/CORE/perlio.h type=file
-c:\tlperl\lib/CORE/perliol.h type=file
-c:\tlperl\lib/CORE/perlsdio.h type=file
-c:\tlperl\lib/CORE/perlvars.h type=file
-c:\tlperl\lib/CORE/perly.h type=file
-c:\tlperl\lib/CORE/pp.h type=file
-c:\tlperl\lib/CORE/pp_proto.h type=file
-c:\tlperl\lib/CORE/ppport.h type=file
-c:\tlperl\lib/CORE/proto.h type=file
-c:\tlperl\lib/CORE/reentr.h type=file
-c:\tlperl\lib/CORE/regcharclass.h type=file
-c:\tlperl\lib/CORE/regcomp.h type=file
-c:\tlperl\lib/CORE/regexp.h type=file
-c:\tlperl\lib/CORE/regnodes.h type=file
-c:\tlperl\lib/CORE/scope.h type=file
-c:\tlperl\lib/CORE/sv.h type=file
-c:\tlperl\lib/CORE/sys/errno2.h type=file
-c:\tlperl\lib/CORE/sys/socket.h type=file
-c:\tlperl\lib/CORE/thread.h type=file
-c:\tlperl\lib/CORE/time64.h type=file
-c:\tlperl\lib/CORE/time64_config.h type=file
-c:\tlperl\lib/CORE/uconfig.h type=file
-c:\tlperl\lib/CORE/unicode_constants.h type=file
-c:\tlperl\lib/CORE/unixish.h type=file
-c:\tlperl\lib/CORE/utf8.h type=file
-c:\tlperl\lib/CORE/utfebcdic.h type=file
-c:\tlperl\lib/CORE/util.h type=file
-c:\tlperl\lib/CORE/uudmap.h type=file
-c:\tlperl\lib/CORE/vdir.h type=file
-c:\tlperl\lib/CORE/vmem.h type=file
-c:\tlperl\lib/CORE/vutil.h type=file
-c:\tlperl\lib/CORE/warnings.h type=file
-c:\tlperl\lib/CORE/win32.h type=file
-c:\tlperl\lib/CORE/win32iop-o.h type=file
-c:\tlperl\lib/CORE/win32iop.h type=file
-c:\tlperl\lib/CORE/win32thread.h type=file
-c:\tlperl\lib/CORE/wince.h type=file
-c:\tlperl\lib/CPAN.pm type=file
-c:\tlperl\lib/CPAN/API/HOWTO.pod type=file
-c:\tlperl\lib/CPAN/Author.pm type=file
-c:\tlperl\lib/CPAN/Bundle.pm type=file
-c:\tlperl\lib/CPAN/CacheMgr.pm type=file
-c:\tlperl\lib/CPAN/Complete.pm type=file
-c:\tlperl\lib/CPAN/Debug.pm type=file
-c:\tlperl\lib/CPAN/DeferredCode.pm type=file
-c:\tlperl\lib/CPAN/Distribution.pm type=file
-c:\tlperl\lib/CPAN/Distroprefs.pm type=file
-c:\tlperl\lib/CPAN/Distrostatus.pm type=file
-c:\tlperl\lib/CPAN/Exception/RecursiveDependency.pm type=file
-c:\tlperl\lib/CPAN/Exception/blocked_urllist.pm type=file
-c:\tlperl\lib/CPAN/Exception/yaml_not_installed.pm type=file
-c:\tlperl\lib/CPAN/Exception/yaml_process_error.pm type=file
-c:\tlperl\lib/CPAN/FTP.pm type=file
-c:\tlperl\lib/CPAN/FTP/netrc.pm type=file
-c:\tlperl\lib/CPAN/FirstTime.pm type=file
-c:\tlperl\lib/CPAN/HTTP/Client.pm type=file
-c:\tlperl\lib/CPAN/HTTP/Credentials.pm type=file
-c:\tlperl\lib/CPAN/HandleConfig.pm type=file
-c:\tlperl\lib/CPAN/Index.pm type=file
-c:\tlperl\lib/CPAN/InfoObj.pm type=file
-c:\tlperl\lib/CPAN/Kwalify.pm type=file
-c:\tlperl\lib/CPAN/Kwalify/distroprefs.dd type=file
-c:\tlperl\lib/CPAN/Kwalify/distroprefs.yml type=file
-c:\tlperl\lib/CPAN/LWP/UserAgent.pm type=file
-c:\tlperl\lib/CPAN/Meta.pm type=file
-c:\tlperl\lib/CPAN/Meta/Converter.pm type=file
-c:\tlperl\lib/CPAN/Meta/Feature.pm type=file
-c:\tlperl\lib/CPAN/Meta/History.pm type=file
-c:\tlperl\lib/CPAN/Meta/History/Meta_1_0.pod type=file
-c:\tlperl\lib/CPAN/Meta/History/Meta_1_1.pod type=file
-c:\tlperl\lib/CPAN/Meta/History/Meta_1_2.pod type=file
-c:\tlperl\lib/CPAN/Meta/History/Meta_1_3.pod type=file
-c:\tlperl\lib/CPAN/Meta/History/Meta_1_4.pod type=file
-c:\tlperl\lib/CPAN/Meta/Merge.pm type=file
-c:\tlperl\lib/CPAN/Meta/Prereqs.pm type=file
-c:\tlperl\lib/CPAN/Meta/Requirements.pm type=file
-c:\tlperl\lib/CPAN/Meta/Spec.pm type=file
-c:\tlperl\lib/CPAN/Meta/Validator.pm type=file
-c:\tlperl\lib/CPAN/Meta/YAML.pm type=file
-c:\tlperl\lib/CPAN/Mirrors.pm type=file
-c:\tlperl\lib/CPAN/Module.pm type=file
-c:\tlperl\lib/CPAN/Nox.pm type=file
-c:\tlperl\lib/CPAN/Plugin.pm type=file
-c:\tlperl\lib/CPAN/Plugin/Specfile.pm type=file
-c:\tlperl\lib/CPAN/Prompt.pm type=file
-c:\tlperl\lib/CPAN/Queue.pm type=file
-c:\tlperl\lib/CPAN/Shell.pm type=file
-c:\tlperl\lib/CPAN/Tarzip.pm type=file
-c:\tlperl\lib/CPAN/URL.pm type=file
-c:\tlperl\lib/CPAN/Version.pm type=file
-c:\tlperl\lib/Carp.pm type=file
-c:\tlperl\lib/Carp/Heavy.pm type=file
-c:\tlperl\lib/Class/Struct.pm type=file
-c:\tlperl\lib/Compress/Raw/Bzip2.pm type=file
-c:\tlperl\lib/Compress/Raw/Zlib.pm type=file
-c:\tlperl\lib/Compress/Zlib.pm type=file
-c:\tlperl\lib/Config.pm type=file
-c:\tlperl\lib/Config.pod type=file
-c:\tlperl\lib/Config/Extensions.pm type=file
-c:\tlperl\lib/Config/Perl/V.pm type=file
-c:\tlperl\lib/Config_git.pl type=file
-c:\tlperl\lib/Config_heavy.pl type=file
-c:\tlperl\lib/Cwd.pm type=file
-c:\tlperl\lib/DB.pm type=file
-c:\tlperl\lib/DBM_Filter.pm type=file
-c:\tlperl\lib/DBM_Filter/compress.pm type=file
-c:\tlperl\lib/DBM_Filter/encode.pm type=file
-c:\tlperl\lib/DBM_Filter/int32.pm type=file
-c:\tlperl\lib/DBM_Filter/null.pm type=file
-c:\tlperl\lib/DBM_Filter/utf8.pm type=file
-c:\tlperl\lib/Data/Dumper.pm type=file
-c:\tlperl\lib/Devel/PPPort.pm type=file
-c:\tlperl\lib/Devel/Peek.pm type=file
-c:\tlperl\lib/Devel/SelfStubber.pm type=file
-c:\tlperl\lib/Digest.pm type=file
-c:\tlperl\lib/Digest/MD5.pm type=file
-c:\tlperl\lib/Digest/SHA.pm type=file
-c:\tlperl\lib/Digest/base.pm type=file
-c:\tlperl\lib/Digest/file.pm type=file
-c:\tlperl\lib/DirHandle.pm type=file
-c:\tlperl\lib/Dumpvalue.pm type=file
-c:\tlperl\lib/DynaLoader.pm type=file
-c:\tlperl\lib/Encode.pm type=file
-c:\tlperl\lib/Encode/Alias.pm type=file
-c:\tlperl\lib/Encode/Byte.pm type=file
-c:\tlperl\lib/Encode/CJKConstants.pm type=file
-c:\tlperl\lib/Encode/CN.pm type=file
-c:\tlperl\lib/Encode/CN/HZ.pm type=file
-c:\tlperl\lib/Encode/Changes.e2x type=file
-c:\tlperl\lib/Encode/Config.pm type=file
-c:\tlperl\lib/Encode/ConfigLocal_PM.e2x type=file
-c:\tlperl\lib/Encode/EBCDIC.pm type=file
-c:\tlperl\lib/Encode/Encoder.pm type=file
-c:\tlperl\lib/Encode/Encoding.pm type=file
-c:\tlperl\lib/Encode/GSM0338.pm type=file
-c:\tlperl\lib/Encode/Guess.pm type=file
-c:\tlperl\lib/Encode/JP.pm type=file
-c:\tlperl\lib/Encode/JP/H2Z.pm type=file
-c:\tlperl\lib/Encode/JP/JIS7.pm type=file
-c:\tlperl\lib/Encode/KR.pm type=file
-c:\tlperl\lib/Encode/KR/2022_KR.pm type=file
-c:\tlperl\lib/Encode/MIME/Header.pm type=file
-c:\tlperl\lib/Encode/MIME/Header/ISO_2022_JP.pm type=file
-c:\tlperl\lib/Encode/MIME/Name.pm type=file
-c:\tlperl\lib/Encode/Makefile_PL.e2x type=file
-c:\tlperl\lib/Encode/PerlIO.pod type=file
-c:\tlperl\lib/Encode/README.e2x type=file
-c:\tlperl\lib/Encode/Supported.pod type=file
-c:\tlperl\lib/Encode/Symbol.pm type=file
-c:\tlperl\lib/Encode/TW.pm type=file
-c:\tlperl\lib/Encode/Unicode.pm type=file
-c:\tlperl\lib/Encode/Unicode/UTF7.pm type=file
-c:\tlperl\lib/Encode/_PM.e2x type=file
-c:\tlperl\lib/Encode/_T.e2x type=file
-c:\tlperl\lib/Encode/encode.h type=file
-c:\tlperl\lib/English.pm type=file
-c:\tlperl\lib/Env.pm type=file
-c:\tlperl\lib/Errno.pm type=file
-c:\tlperl\lib/Exporter.pm type=file
-c:\tlperl\lib/Exporter/Heavy.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Base.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/Unix.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/VMS.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/aix.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/android.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/cygwin.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/darwin.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/dec_osf.pm type=file
-c:\tlperl\lib/ExtUtils/CBuilder/Platform/os2.pm type=file
-c:\tlperl\lib/ExtUtils/Command.pm type=file
-c:\tlperl\lib/ExtUtils/Command/MM.pm type=file
-c:\tlperl\lib/ExtUtils/Constant.pm type=file
-c:\tlperl\lib/ExtUtils/Constant/Base.pm type=file
-c:\tlperl\lib/ExtUtils/Constant/ProxySubs.pm type=file
-c:\tlperl\lib/ExtUtils/Constant/Utils.pm type=file
-c:\tlperl\lib/ExtUtils/Constant/XS.pm type=file
-c:\tlperl\lib/ExtUtils/Embed.pm type=file
-c:\tlperl\lib/ExtUtils/Install.pm type=file
-c:\tlperl\lib/ExtUtils/Installed.pm type=file
-c:\tlperl\lib/ExtUtils/Liblist.pm type=file
-c:\tlperl\lib/ExtUtils/Liblist/Kid.pm type=file
-c:\tlperl\lib/ExtUtils/MANIFEST.SKIP type=file
-c:\tlperl\lib/ExtUtils/MM.pm type=file
-c:\tlperl\lib/ExtUtils/MM_AIX.pm type=file
-c:\tlperl\lib/ExtUtils/MM_Any.pm type=file
-c:\tlperl\lib/ExtUtils/MM_BeOS.pm type=file
-c:\tlperl\lib/ExtUtils/MM_Cygwin.pm type=file
-c:\tlperl\lib/ExtUtils/MM_DOS.pm type=file
-c:\tlperl\lib/ExtUtils/MM_Darwin.pm type=file
-c:\tlperl\lib/ExtUtils/MM_MacOS.pm type=file
-c:\tlperl\lib/ExtUtils/MM_NW5.pm type=file
-c:\tlperl\lib/ExtUtils/MM_OS2.pm type=file
-c:\tlperl\lib/ExtUtils/MM_QNX.pm type=file
-c:\tlperl\lib/ExtUtils/MM_UWIN.pm type=file
-c:\tlperl\lib/ExtUtils/MM_Unix.pm type=file
-c:\tlperl\lib/ExtUtils/MM_VMS.pm type=file
-c:\tlperl\lib/ExtUtils/MM_VOS.pm type=file
-c:\tlperl\lib/ExtUtils/MM_Win32.pm type=file
-c:\tlperl\lib/ExtUtils/MM_Win95.pm type=file
-c:\tlperl\lib/ExtUtils/MY.pm type=file
-c:\tlperl\lib/ExtUtils/MakeMaker.pm type=file
-c:\tlperl\lib/ExtUtils/MakeMaker/Config.pm type=file
-c:\tlperl\lib/ExtUtils/MakeMaker/FAQ.pod type=file
-c:\tlperl\lib/ExtUtils/MakeMaker/Locale.pm type=file
-c:\tlperl\lib/ExtUtils/MakeMaker/Tutorial.pod type=file
-c:\tlperl\lib/ExtUtils/MakeMaker/version.pm type=file
-c:\tlperl\lib/ExtUtils/Manifest.pm type=file
-c:\tlperl\lib/ExtUtils/Miniperl.pm type=file
-c:\tlperl\lib/ExtUtils/Mkbootstrap.pm type=file
-c:\tlperl\lib/ExtUtils/Mksymlists.pm type=file
-c:\tlperl\lib/ExtUtils/Packlist.pm type=file
-c:\tlperl\lib/ExtUtils/ParseXS.pm type=file
-c:\tlperl\lib/ExtUtils/ParseXS.pod type=file
-c:\tlperl\lib/ExtUtils/ParseXS/Constants.pm type=file
-c:\tlperl\lib/ExtUtils/ParseXS/CountLines.pm type=file
-c:\tlperl\lib/ExtUtils/ParseXS/Eval.pm type=file
-c:\tlperl\lib/ExtUtils/ParseXS/Utilities.pm type=file
-c:\tlperl\lib/ExtUtils/Typemaps.pm type=file
-c:\tlperl\lib/ExtUtils/Typemaps/Cmd.pm type=file
-c:\tlperl\lib/ExtUtils/Typemaps/InputMap.pm type=file
-c:\tlperl\lib/ExtUtils/Typemaps/OutputMap.pm type=file
-c:\tlperl\lib/ExtUtils/Typemaps/Type.pm type=file
-c:\tlperl\lib/ExtUtils/testlib.pm type=file
-c:\tlperl\lib/ExtUtils/typemap type=file
-c:\tlperl\lib/ExtUtils/xsubpp type=file
-c:\tlperl\lib/Fatal.pm type=file
-c:\tlperl\lib/Fcntl.pm type=file
-c:\tlperl\lib/File/Basename.pm type=file
-c:\tlperl\lib/File/Compare.pm type=file
-c:\tlperl\lib/File/Copy.pm type=file
-c:\tlperl\lib/File/DosGlob.pm type=file
-c:\tlperl\lib/File/Fetch.pm type=file
-c:\tlperl\lib/File/Find.pm type=file
-c:\tlperl\lib/File/Glob.pm type=file
-c:\tlperl\lib/File/GlobMapper.pm type=file
-c:\tlperl\lib/File/Path.pm type=file
-c:\tlperl\lib/File/Spec.pm type=file
-c:\tlperl\lib/File/Spec/AmigaOS.pm type=file
-c:\tlperl\lib/File/Spec/Cygwin.pm type=file
-c:\tlperl\lib/File/Spec/Epoc.pm type=file
-c:\tlperl\lib/File/Spec/Functions.pm type=file
-c:\tlperl\lib/File/Spec/Mac.pm type=file
-c:\tlperl\lib/File/Spec/OS2.pm type=file
-c:\tlperl\lib/File/Spec/Unix.pm type=file
-c:\tlperl\lib/File/Spec/VMS.pm type=file
-c:\tlperl\lib/File/Spec/Win32.pm type=file
-c:\tlperl\lib/File/Temp.pm type=file
-c:\tlperl\lib/File/stat.pm type=file
-c:\tlperl\lib/FileCache.pm type=file
-c:\tlperl\lib/FileHandle.pm type=file
-c:\tlperl\lib/Filter/Simple.pm type=file
-c:\tlperl\lib/Filter/Util/Call.pm type=file
-c:\tlperl\lib/FindBin.pm type=file
-c:\tlperl\lib/Getopt/Long.pm type=file
-c:\tlperl\lib/Getopt/Std.pm type=file
-c:\tlperl\lib/HTTP/Tiny.pm type=file
-c:\tlperl\lib/Hash/Util.pm type=file
-c:\tlperl\lib/Hash/Util/FieldHash.pm type=file
-c:\tlperl\lib/I18N/Collate.pm type=file
-c:\tlperl\lib/I18N/LangTags.pm type=file
-c:\tlperl\lib/I18N/LangTags/Detect.pm type=file
-c:\tlperl\lib/I18N/LangTags/List.pm type=file
-c:\tlperl\lib/IO.pm type=file
-c:\tlperl\lib/IO/Compress/Adapter/Bzip2.pm type=file
-c:\tlperl\lib/IO/Compress/Adapter/Deflate.pm type=file
-c:\tlperl\lib/IO/Compress/Adapter/Identity.pm type=file
-c:\tlperl\lib/IO/Compress/Base.pm type=file
-c:\tlperl\lib/IO/Compress/Base/Common.pm type=file
-c:\tlperl\lib/IO/Compress/Bzip2.pm type=file
-c:\tlperl\lib/IO/Compress/Deflate.pm type=file
-c:\tlperl\lib/IO/Compress/FAQ.pod type=file
-c:\tlperl\lib/IO/Compress/Gzip.pm type=file
-c:\tlperl\lib/IO/Compress/Gzip/Constants.pm type=file
-c:\tlperl\lib/IO/Compress/RawDeflate.pm type=file
-c:\tlperl\lib/IO/Compress/Zip.pm type=file
-c:\tlperl\lib/IO/Compress/Zip/Constants.pm type=file
-c:\tlperl\lib/IO/Compress/Zlib/Constants.pm type=file
-c:\tlperl\lib/IO/Compress/Zlib/Extra.pm type=file
-c:\tlperl\lib/IO/Dir.pm type=file
-c:\tlperl\lib/IO/File.pm type=file
-c:\tlperl\lib/IO/Handle.pm type=file
-c:\tlperl\lib/IO/Pipe.pm type=file
-c:\tlperl\lib/IO/Poll.pm type=file
-c:\tlperl\lib/IO/Seekable.pm type=file
-c:\tlperl\lib/IO/Select.pm type=file
-c:\tlperl\lib/IO/Socket.pm type=file
-c:\tlperl\lib/IO/Socket/INET.pm type=file
-c:\tlperl\lib/IO/Socket/IP.pm type=file
-c:\tlperl\lib/IO/Socket/UNIX.pm type=file
-c:\tlperl\lib/IO/Uncompress/Adapter/Bunzip2.pm type=file
-c:\tlperl\lib/IO/Uncompress/Adapter/Identity.pm type=file
-c:\tlperl\lib/IO/Uncompress/Adapter/Inflate.pm type=file
-c:\tlperl\lib/IO/Uncompress/AnyInflate.pm type=file
-c:\tlperl\lib/IO/Uncompress/AnyUncompress.pm type=file
-c:\tlperl\lib/IO/Uncompress/Base.pm type=file
-c:\tlperl\lib/IO/Uncompress/Bunzip2.pm type=file
-c:\tlperl\lib/IO/Uncompress/Gunzip.pm type=file
-c:\tlperl\lib/IO/Uncompress/Inflate.pm type=file
-c:\tlperl\lib/IO/Uncompress/RawInflate.pm type=file
-c:\tlperl\lib/IO/Uncompress/Unzip.pm type=file
-c:\tlperl\lib/IO/Zlib.pm type=file
-c:\tlperl\lib/IPC/Cmd.pm type=file
-c:\tlperl\lib/IPC/Open2.pm type=file
-c:\tlperl\lib/IPC/Open3.pm type=file
-c:\tlperl\lib/JSON/PP.pm type=file
-c:\tlperl\lib/JSON/PP/Boolean.pm type=file
-c:\tlperl\lib/List/Util.pm type=file
-c:\tlperl\lib/List/Util/XS.pm type=file
-c:\tlperl\lib/Locale/Codes.pm type=file
-c:\tlperl\lib/Locale/Codes.pod type=file
-c:\tlperl\lib/Locale/Codes/API.pod type=file
-c:\tlperl\lib/Locale/Codes/Changes.pod type=file
-c:\tlperl\lib/Locale/Codes/Constants.pm type=file
-c:\tlperl\lib/Locale/Codes/Country.pm type=file
-c:\tlperl\lib/Locale/Codes/Country.pod type=file
-c:\tlperl\lib/Locale/Codes/Country_Codes.pm type=file
-c:\tlperl\lib/Locale/Codes/Country_Retired.pm type=file
-c:\tlperl\lib/Locale/Codes/Currency.pm type=file
-c:\tlperl\lib/Locale/Codes/Currency.pod type=file
-c:\tlperl\lib/Locale/Codes/Currency_Codes.pm type=file
-c:\tlperl\lib/Locale/Codes/Currency_Retired.pm type=file
-c:\tlperl\lib/Locale/Codes/LangExt.pm type=file
-c:\tlperl\lib/Locale/Codes/LangExt.pod type=file
-c:\tlperl\lib/Locale/Codes/LangExt_Codes.pm type=file
-c:\tlperl\lib/Locale/Codes/LangExt_Retired.pm type=file
-c:\tlperl\lib/Locale/Codes/LangFam.pm type=file
-c:\tlperl\lib/Locale/Codes/LangFam.pod type=file
-c:\tlperl\lib/Locale/Codes/LangFam_Codes.pm type=file
-c:\tlperl\lib/Locale/Codes/LangFam_Retired.pm type=file
-c:\tlperl\lib/Locale/Codes/LangVar.pm type=file
-c:\tlperl\lib/Locale/Codes/LangVar.pod type=file
-c:\tlperl\lib/Locale/Codes/LangVar_Codes.pm type=file
-c:\tlperl\lib/Locale/Codes/LangVar_Retired.pm type=file
-c:\tlperl\lib/Locale/Codes/Language.pm type=file
-c:\tlperl\lib/Locale/Codes/Language.pod type=file
-c:\tlperl\lib/Locale/Codes/Language_Codes.pm type=file
-c:\tlperl\lib/Locale/Codes/Language_Retired.pm type=file
-c:\tlperl\lib/Locale/Codes/Script.pm type=file
-c:\tlperl\lib/Locale/Codes/Script.pod type=file
-c:\tlperl\lib/Locale/Codes/Script_Codes.pm type=file
-c:\tlperl\lib/Locale/Codes/Script_Retired.pm type=file
-c:\tlperl\lib/Locale/Country.pm type=file
-c:\tlperl\lib/Locale/Country.pod type=file
-c:\tlperl\lib/Locale/Currency.pm type=file
-c:\tlperl\lib/Locale/Currency.pod type=file
-c:\tlperl\lib/Locale/Language.pm type=file
-c:\tlperl\lib/Locale/Language.pod type=file
-c:\tlperl\lib/Locale/Maketext.pm type=file
-c:\tlperl\lib/Locale/Maketext.pod type=file
-c:\tlperl\lib/Locale/Maketext/Cookbook.pod type=file
-c:\tlperl\lib/Locale/Maketext/Guts.pm type=file
-c:\tlperl\lib/Locale/Maketext/GutsLoader.pm type=file
-c:\tlperl\lib/Locale/Maketext/Simple.pm type=file
-c:\tlperl\lib/Locale/Maketext/TPJ13.pod type=file
-c:\tlperl\lib/Locale/Script.pm type=file
-c:\tlperl\lib/Locale/Script.pod type=file
-c:\tlperl\lib/MIME/Base64.pm type=file
-c:\tlperl\lib/MIME/QuotedPrint.pm type=file
-c:\tlperl\lib/Math/BigFloat.pm type=file
-c:\tlperl\lib/Math/BigFloat/Trace.pm type=file
-c:\tlperl\lib/Math/BigInt.pm type=file
-c:\tlperl\lib/Math/BigInt/Calc.pm type=file
-c:\tlperl\lib/Math/BigInt/CalcEmu.pm type=file
-c:\tlperl\lib/Math/BigInt/FastCalc.pm type=file
-c:\tlperl\lib/Math/BigInt/Trace.pm type=file
-c:\tlperl\lib/Math/BigRat.pm type=file
-c:\tlperl\lib/Math/Complex.pm type=file
-c:\tlperl\lib/Math/Trig.pm type=file
-c:\tlperl\lib/Memoize.pm type=file
-c:\tlperl\lib/Memoize/AnyDBM_File.pm type=file
-c:\tlperl\lib/Memoize/Expire.pm type=file
-c:\tlperl\lib/Memoize/ExpireFile.pm type=file
-c:\tlperl\lib/Memoize/ExpireTest.pm type=file
-c:\tlperl\lib/Memoize/NDBM_File.pm type=file
-c:\tlperl\lib/Memoize/SDBM_File.pm type=file
-c:\tlperl\lib/Memoize/Storable.pm type=file
-c:\tlperl\lib/Module/CoreList.pm type=file
-c:\tlperl\lib/Module/CoreList.pod type=file
-c:\tlperl\lib/Module/CoreList/TieHashDelta.pm type=file
-c:\tlperl\lib/Module/CoreList/Utils.pm type=file
-c:\tlperl\lib/Module/Load.pm type=file
-c:\tlperl\lib/Module/Load/Conditional.pm type=file
-c:\tlperl\lib/Module/Loaded.pm type=file
-c:\tlperl\lib/Module/Metadata.pm type=file
-c:\tlperl\lib/NEXT.pm type=file
-c:\tlperl\lib/Net/Cmd.pm type=file
-c:\tlperl\lib/Net/Config.pm type=file
-c:\tlperl\lib/Net/Domain.pm type=file
-c:\tlperl\lib/Net/FTP.pm type=file
-c:\tlperl\lib/Net/FTP/A.pm type=file
-c:\tlperl\lib/Net/FTP/E.pm type=file
-c:\tlperl\lib/Net/FTP/I.pm type=file
-c:\tlperl\lib/Net/FTP/L.pm type=file
-c:\tlperl\lib/Net/FTP/dataconn.pm type=file
-c:\tlperl\lib/Net/NNTP.pm type=file
-c:\tlperl\lib/Net/Netrc.pm type=file
-c:\tlperl\lib/Net/POP3.pm type=file
-c:\tlperl\lib/Net/Ping.pm type=file
-c:\tlperl\lib/Net/SMTP.pm type=file
-c:\tlperl\lib/Net/Time.pm type=file
-c:\tlperl\lib/Net/hostent.pm type=file
-c:\tlperl\lib/Net/libnetFAQ.pod type=file
-c:\tlperl\lib/Net/netent.pm type=file
-c:\tlperl\lib/Net/protoent.pm type=file
-c:\tlperl\lib/Net/servent.pm type=file
-c:\tlperl\lib/O.pm type=file
-c:\tlperl\lib/Opcode.pm type=file
-c:\tlperl\lib/POSIX.pm type=file
-c:\tlperl\lib/POSIX.pod type=file
-c:\tlperl\lib/Params/Check.pm type=file
-c:\tlperl\lib/Parse/CPAN/Meta.pm type=file
-c:\tlperl\lib/Perl/OSType.pm type=file
-c:\tlperl\lib/PerlIO.pm type=file
-c:\tlperl\lib/PerlIO/encoding.pm type=file
-c:\tlperl\lib/PerlIO/mmap.pm type=file
-c:\tlperl\lib/PerlIO/scalar.pm type=file
-c:\tlperl\lib/PerlIO/via.pm type=file
-c:\tlperl\lib/PerlIO/via/QuotedPrint.pm type=file
-c:\tlperl\lib/Pod/Checker.pm type=file
-c:\tlperl\lib/Pod/Escapes.pm type=file
-c:\tlperl\lib/Pod/Find.pm type=file
-c:\tlperl\lib/Pod/Functions.pm type=file
-c:\tlperl\lib/Pod/Html.pm type=file
-c:\tlperl\lib/Pod/InputObjects.pm type=file
-c:\tlperl\lib/Pod/Man.pm type=file
-c:\tlperl\lib/Pod/ParseLink.pm type=file
-c:\tlperl\lib/Pod/ParseUtils.pm type=file
-c:\tlperl\lib/Pod/Parser.pm type=file
-c:\tlperl\lib/Pod/Perldoc.pm type=file
-c:\tlperl\lib/Pod/Perldoc/BaseTo.pm type=file
-c:\tlperl\lib/Pod/Perldoc/GetOptsOO.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToANSI.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToChecker.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToMan.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToNroff.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToPod.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToRtf.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToTerm.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToText.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToTk.pm type=file
-c:\tlperl\lib/Pod/Perldoc/ToXml.pm type=file
-c:\tlperl\lib/Pod/PlainText.pm type=file
-c:\tlperl\lib/Pod/Select.pm type=file
-c:\tlperl\lib/Pod/Simple.pm type=file
-c:\tlperl\lib/Pod/Simple.pod type=file
-c:\tlperl\lib/Pod/Simple/BlackBox.pm type=file
-c:\tlperl\lib/Pod/Simple/Checker.pm type=file
-c:\tlperl\lib/Pod/Simple/Debug.pm type=file
-c:\tlperl\lib/Pod/Simple/DumpAsText.pm type=file
-c:\tlperl\lib/Pod/Simple/DumpAsXML.pm type=file
-c:\tlperl\lib/Pod/Simple/HTML.pm type=file
-c:\tlperl\lib/Pod/Simple/HTMLBatch.pm type=file
-c:\tlperl\lib/Pod/Simple/HTMLLegacy.pm type=file
-c:\tlperl\lib/Pod/Simple/LinkSection.pm type=file
-c:\tlperl\lib/Pod/Simple/Methody.pm type=file
-c:\tlperl\lib/Pod/Simple/Progress.pm type=file
-c:\tlperl\lib/Pod/Simple/PullParser.pm type=file
-c:\tlperl\lib/Pod/Simple/PullParserEndToken.pm type=file
-c:\tlperl\lib/Pod/Simple/PullParserStartToken.pm type=file
-c:\tlperl\lib/Pod/Simple/PullParserTextToken.pm type=file
-c:\tlperl\lib/Pod/Simple/PullParserToken.pm type=file
-c:\tlperl\lib/Pod/Simple/RTF.pm type=file
-c:\tlperl\lib/Pod/Simple/Search.pm type=file
-c:\tlperl\lib/Pod/Simple/SimpleTree.pm type=file
-c:\tlperl\lib/Pod/Simple/Subclassing.pod type=file
-c:\tlperl\lib/Pod/Simple/Text.pm type=file
-c:\tlperl\lib/Pod/Simple/TextContent.pm type=file
-c:\tlperl\lib/Pod/Simple/TiedOutFH.pm type=file
-c:\tlperl\lib/Pod/Simple/Transcode.pm type=file
-c:\tlperl\lib/Pod/Simple/TranscodeDumb.pm type=file
-c:\tlperl\lib/Pod/Simple/TranscodeSmart.pm type=file
-c:\tlperl\lib/Pod/Simple/XHTML.pm type=file
-c:\tlperl\lib/Pod/Simple/XMLOutStream.pm type=file
-c:\tlperl\lib/Pod/Text.pm type=file
-c:\tlperl\lib/Pod/Text/Color.pm type=file
-c:\tlperl\lib/Pod/Text/Overstrike.pm type=file
-c:\tlperl\lib/Pod/Text/Termcap.pm type=file
-c:\tlperl\lib/Pod/Usage.pm type=file
-c:\tlperl\lib/SDBM_File.pm type=file
-c:\tlperl\lib/Safe.pm type=file
-c:\tlperl\lib/Scalar/Util.pm type=file
-c:\tlperl\lib/Search/Dict.pm type=file
-c:\tlperl\lib/SelectSaver.pm type=file
-c:\tlperl\lib/SelfLoader.pm type=file
-c:\tlperl\lib/Socket.pm type=file
-c:\tlperl\lib/Storable.pm type=file
-c:\tlperl\lib/Sub/Util.pm type=file
-c:\tlperl\lib/Symbol.pm type=file
-c:\tlperl\lib/Sys/Hostname.pm type=file
-c:\tlperl\lib/TAP/Base.pm type=file
-c:\tlperl\lib/TAP/Formatter/Base.pm type=file
-c:\tlperl\lib/TAP/Formatter/Color.pm type=file
-c:\tlperl\lib/TAP/Formatter/Console.pm type=file
-c:\tlperl\lib/TAP/Formatter/Console/ParallelSession.pm type=file
-c:\tlperl\lib/TAP/Formatter/Console/Session.pm type=file
-c:\tlperl\lib/TAP/Formatter/File.pm type=file
-c:\tlperl\lib/TAP/Formatter/File/Session.pm type=file
-c:\tlperl\lib/TAP/Formatter/Session.pm type=file
-c:\tlperl\lib/TAP/Harness.pm type=file
-c:\tlperl\lib/TAP/Harness/Beyond.pod type=file
-c:\tlperl\lib/TAP/Harness/Env.pm type=file
-c:\tlperl\lib/TAP/Object.pm type=file
-c:\tlperl\lib/TAP/Parser.pm type=file
-c:\tlperl\lib/TAP/Parser/Aggregator.pm type=file
-c:\tlperl\lib/TAP/Parser/Grammar.pm type=file
-c:\tlperl\lib/TAP/Parser/Iterator.pm type=file
-c:\tlperl\lib/TAP/Parser/Iterator/Array.pm type=file
-c:\tlperl\lib/TAP/Parser/Iterator/Process.pm type=file
-c:\tlperl\lib/TAP/Parser/Iterator/Stream.pm type=file
-c:\tlperl\lib/TAP/Parser/IteratorFactory.pm type=file
-c:\tlperl\lib/TAP/Parser/Multiplexer.pm type=file
-c:\tlperl\lib/TAP/Parser/Result.pm type=file
-c:\tlperl\lib/TAP/Parser/Result/Bailout.pm type=file
-c:\tlperl\lib/TAP/Parser/Result/Comment.pm type=file
-c:\tlperl\lib/TAP/Parser/Result/Plan.pm type=file
-c:\tlperl\lib/TAP/Parser/Result/Pragma.pm type=file
-c:\tlperl\lib/TAP/Parser/Result/Test.pm type=file
-c:\tlperl\lib/TAP/Parser/Result/Unknown.pm type=file
-c:\tlperl\lib/TAP/Parser/Result/Version.pm type=file
-c:\tlperl\lib/TAP/Parser/Result/YAML.pm type=file
-c:\tlperl\lib/TAP/Parser/ResultFactory.pm type=file
-c:\tlperl\lib/TAP/Parser/Scheduler.pm type=file
-c:\tlperl\lib/TAP/Parser/Scheduler/Job.pm type=file
-c:\tlperl\lib/TAP/Parser/Scheduler/Spinner.pm type=file
-c:\tlperl\lib/TAP/Parser/Source.pm type=file
-c:\tlperl\lib/TAP/Parser/SourceHandler.pm type=file
-c:\tlperl\lib/TAP/Parser/SourceHandler/Executable.pm type=file
-c:\tlperl\lib/TAP/Parser/SourceHandler/File.pm type=file
-c:\tlperl\lib/TAP/Parser/SourceHandler/Handle.pm type=file
-c:\tlperl\lib/TAP/Parser/SourceHandler/Perl.pm type=file
-c:\tlperl\lib/TAP/Parser/SourceHandler/RawTAP.pm type=file
-c:\tlperl\lib/TAP/Parser/YAMLish/Reader.pm type=file
-c:\tlperl\lib/TAP/Parser/YAMLish/Writer.pm type=file
-c:\tlperl\lib/Term/ANSIColor.pm type=file
-c:\tlperl\lib/Term/Cap.pm type=file
-c:\tlperl\lib/Term/Complete.pm type=file
-c:\tlperl\lib/Term/ReadLine.pm type=file
-c:\tlperl\lib/Test.pm type=file
-c:\tlperl\lib/Test/Builder.pm type=file
-c:\tlperl\lib/Test/Builder/IO/Scalar.pm type=file
-c:\tlperl\lib/Test/Builder/Module.pm type=file
-c:\tlperl\lib/Test/Builder/Tester.pm type=file
-c:\tlperl\lib/Test/Builder/Tester/Color.pm type=file
-c:\tlperl\lib/Test/Harness.pm type=file
-c:\tlperl\lib/Test/More.pm type=file
-c:\tlperl\lib/Test/Simple.pm type=file
-c:\tlperl\lib/Test/Tester.pm type=file
-c:\tlperl\lib/Test/Tester/Capture.pm type=file
-c:\tlperl\lib/Test/Tester/CaptureRunner.pm type=file
-c:\tlperl\lib/Test/Tester/Delegate.pm type=file
-c:\tlperl\lib/Test/Tutorial.pod type=file
-c:\tlperl\lib/Test/use/ok.pm type=file
-c:\tlperl\lib/Text/Abbrev.pm type=file
-c:\tlperl\lib/Text/Balanced.pm type=file
-c:\tlperl\lib/Text/ParseWords.pm type=file
-c:\tlperl\lib/Text/Tabs.pm type=file
-c:\tlperl\lib/Text/Wrap.pm type=file
-c:\tlperl\lib/Thread.pm type=file
-c:\tlperl\lib/Thread/Queue.pm type=file
-c:\tlperl\lib/Thread/Semaphore.pm type=file
-c:\tlperl\lib/Tie/Array.pm type=file
-c:\tlperl\lib/Tie/File.pm type=file
-c:\tlperl\lib/Tie/Handle.pm type=file
-c:\tlperl\lib/Tie/Hash.pm type=file
-c:\tlperl\lib/Tie/Hash/NamedCapture.pm type=file
-c:\tlperl\lib/Tie/Memoize.pm type=file
-c:\tlperl\lib/Tie/RefHash.pm type=file
-c:\tlperl\lib/Tie/Scalar.pm type=file
-c:\tlperl\lib/Tie/StdHandle.pm type=file
-c:\tlperl\lib/Tie/SubstrHash.pm type=file
-c:\tlperl\lib/Time/HiRes.pm type=file
-c:\tlperl\lib/Time/Local.pm type=file
-c:\tlperl\lib/Time/Piece.pm type=file
-c:\tlperl\lib/Time/Seconds.pm type=file
-c:\tlperl\lib/Time/gmtime.pm type=file
-c:\tlperl\lib/Time/localtime.pm type=file
-c:\tlperl\lib/Time/tm.pm type=file
-c:\tlperl\lib/UNIVERSAL.pm type=file
-c:\tlperl\lib/Unicode/Collate.pm type=file
-c:\tlperl\lib/Unicode/Collate/CJK/Big5.pm type=file
-c:\tlperl\lib/Unicode/Collate/CJK/GB2312.pm type=file
-c:\tlperl\lib/Unicode/Collate/CJK/JISX0208.pm type=file
-c:\tlperl\lib/Unicode/Collate/CJK/Korean.pm type=file
-c:\tlperl\lib/Unicode/Collate/CJK/Pinyin.pm type=file
-c:\tlperl\lib/Unicode/Collate/CJK/Stroke.pm type=file
-c:\tlperl\lib/Unicode/Collate/CJK/Zhuyin.pm type=file
-c:\tlperl\lib/Unicode/Collate/Locale.pm type=file
-c:\tlperl\lib/Unicode/Collate/Locale/af.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ar.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/as.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/az.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/be.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/bg.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/bn.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ca.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/cs.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/cy.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/da.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/de_phone.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ee.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/eo.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/es.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/es_trad.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/et.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/fa.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/fi.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/fi_phone.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/fil.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/fo.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/fr.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/gu.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ha.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/haw.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/hi.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/hr.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/hu.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/hy.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ig.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/is.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ja.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/kk.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/kl.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/kn.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ko.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/kok.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ln.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/lt.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/lv.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/mk.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ml.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/mr.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/mt.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/nb.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/nn.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/nso.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/om.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/or.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/pa.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/pl.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ro.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ru.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/sa.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/se.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/si.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/si_dict.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/sk.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/sl.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/sq.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/sr.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/sv.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/sv_refo.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ta.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/te.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/th.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/tn.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/to.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/tr.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/uk.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/ur.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/vi.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/wae.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/wo.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/yo.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/zh.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/zh_big5.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/zh_gb.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/zh_pin.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/zh_strk.pl type=file
-c:\tlperl\lib/Unicode/Collate/Locale/zh_zhu.pl type=file
-c:\tlperl\lib/Unicode/Collate/allkeys.txt type=file
-c:\tlperl\lib/Unicode/Collate/keys.txt type=file
-c:\tlperl\lib/Unicode/Normalize.pm type=file
-c:\tlperl\lib/Unicode/UCD.pm type=file
-c:\tlperl\lib/User/grent.pm type=file
-c:\tlperl\lib/User/pwent.pm type=file
-c:\tlperl\lib/Win32.pm type=file
-c:\tlperl\lib/Win32API/File.pm type=file
-c:\tlperl\lib/Win32API/File/cFile.pc type=file
-c:\tlperl\lib/Win32CORE.pm type=file
-c:\tlperl\lib/XSLoader.pm type=file
-c:\tlperl\lib/_charnames.pm type=file
-c:\tlperl\lib/arybase.pm type=file
-c:\tlperl\lib/attributes.pm type=file
-c:\tlperl\lib/auto/B/B.dll type=file
-c:\tlperl\lib/auto/Compress/Raw/Bzip2/Bzip2.dll type=file
-c:\tlperl\lib/auto/Compress/Raw/Zlib/Zlib.dll type=file
-c:\tlperl\lib/auto/Cwd/Cwd.dll type=file
-c:\tlperl\lib/auto/Data/Dumper/Dumper.dll type=file
-c:\tlperl\lib/auto/Devel/Peek/Peek.dll type=file
-c:\tlperl\lib/auto/Digest/MD5/MD5.dll type=file
-c:\tlperl\lib/auto/Digest/SHA/SHA.dll type=file
-c:\tlperl\lib/auto/Encode/Byte/Byte.dll type=file
-c:\tlperl\lib/auto/Encode/CN/CN.dll type=file
-c:\tlperl\lib/auto/Encode/EBCDIC/EBCDIC.dll type=file
-c:\tlperl\lib/auto/Encode/Encode.dll type=file
-c:\tlperl\lib/auto/Encode/JP/JP.dll type=file
-c:\tlperl\lib/auto/Encode/KR/KR.dll type=file
-c:\tlperl\lib/auto/Encode/Symbol/Symbol.dll type=file
-c:\tlperl\lib/auto/Encode/TW/TW.dll type=file
-c:\tlperl\lib/auto/Encode/Unicode/Unicode.dll type=file
-c:\tlperl\lib/auto/Fcntl/Fcntl.dll type=file
-c:\tlperl\lib/auto/File/DosGlob/DosGlob.dll type=file
-c:\tlperl\lib/auto/File/Glob/Glob.dll type=file
-c:\tlperl\lib/auto/Filter/Util/Call/Call.dll type=file
-c:\tlperl\lib/auto/Hash/Util/FieldHash/FieldHash.dll type=file
-c:\tlperl\lib/auto/Hash/Util/Util.dll type=file
-c:\tlperl\lib/auto/IO/IO.dll type=file
-c:\tlperl\lib/auto/List/Util/Util.dll type=file
-c:\tlperl\lib/auto/MIME/Base64/Base64.dll type=file
-c:\tlperl\lib/auto/Math/BigInt/FastCalc/FastCalc.dll type=file
-c:\tlperl\lib/auto/Opcode/Opcode.dll type=file
-c:\tlperl\lib/auto/POSIX/POSIX.dll type=file
-c:\tlperl\lib/auto/PerlIO/encoding/encoding.dll type=file
-c:\tlperl\lib/auto/PerlIO/mmap/mmap.dll type=file
-c:\tlperl\lib/auto/PerlIO/scalar/scalar.dll type=file
-c:\tlperl\lib/auto/PerlIO/via/via.dll type=file
-c:\tlperl\lib/auto/SDBM_File/SDBM_File.dll type=file
-c:\tlperl\lib/auto/Socket/Socket.dll type=file
-c:\tlperl\lib/auto/Storable/Storable.dll type=file
-c:\tlperl\lib/auto/Sys/Hostname/Hostname.dll type=file
-c:\tlperl\lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll type=file
-c:\tlperl\lib/auto/Time/HiRes/HiRes.dll type=file
-c:\tlperl\lib/auto/Time/Piece/Piece.dll type=file
-c:\tlperl\lib/auto/Unicode/Collate/Collate.dll type=file
-c:\tlperl\lib/auto/Unicode/Normalize/Normalize.dll type=file
-c:\tlperl\lib/auto/Win32/Win32.dll type=file
-c:\tlperl\lib/auto/Win32API/File/File.dll type=file
-c:\tlperl\lib/auto/Win32CORE/extralibs.ld type=file
-c:\tlperl\lib/auto/arybase/arybase.dll type=file
-c:\tlperl\lib/auto/attributes/attributes.dll type=file
-c:\tlperl\lib/auto/mro/mro.dll type=file
-c:\tlperl\lib/auto/re/re.dll type=file
-c:\tlperl\lib/auto/threads/shared/shared.dll type=file
-c:\tlperl\lib/auto/threads/threads.dll type=file
-c:\tlperl\lib/autodie.pm type=file
-c:\tlperl\lib/autodie/Scope/Guard.pm type=file
-c:\tlperl\lib/autodie/Scope/GuardStack.pm type=file
-c:\tlperl\lib/autodie/Util.pm type=file
-c:\tlperl\lib/autodie/exception.pm type=file
-c:\tlperl\lib/autodie/exception/system.pm type=file
-c:\tlperl\lib/autodie/hints.pm type=file
-c:\tlperl\lib/autodie/skip.pm type=file
-c:\tlperl\lib/autouse.pm type=file
-c:\tlperl\lib/base.pm type=file
-c:\tlperl\lib/bigint.pm type=file
-c:\tlperl\lib/bignum.pm type=file
-c:\tlperl\lib/bigrat.pm type=file
-c:\tlperl\lib/blib.pm type=file
-c:\tlperl\lib/bytes.pm type=file
-c:\tlperl\lib/bytes_heavy.pl type=file
-c:\tlperl\lib/charnames.pm type=file
-c:\tlperl\lib/constant.pm type=file
-c:\tlperl\lib/deprecate.pm type=file
-c:\tlperl\lib/diagnostics.pm type=file
-c:\tlperl\lib/dumpvar.pl type=file
-c:\tlperl\lib/encoding.pm type=file
-c:\tlperl\lib/encoding/warnings.pm type=file
-c:\tlperl\lib/experimental.pm type=file
-c:\tlperl\lib/feature.pm type=file
-c:\tlperl\lib/fields.pm type=file
-c:\tlperl\lib/filetest.pm type=file
-c:\tlperl\lib/if.pm type=file
-c:\tlperl\lib/integer.pm type=file
-c:\tlperl\lib/less.pm type=file
-c:\tlperl\lib/lib.pm type=file
-c:\tlperl\lib/locale.pm type=file
-c:\tlperl\lib/meta_notation.pm type=file
-c:\tlperl\lib/mro.pm type=file
-c:\tlperl\lib/ok.pm type=file
-c:\tlperl\lib/open.pm type=file
-c:\tlperl\lib/ops.pm type=file
-c:\tlperl\lib/overload.pm type=file
-c:\tlperl\lib/overload/numbers.pm type=file
-c:\tlperl\lib/overloading.pm type=file
-c:\tlperl\lib/parent.pm type=file
-c:\tlperl\lib/perl5db.pl type=file
-c:\tlperl\lib/perlfaq.pm type=file
-c:\tlperl\lib/pods/perl.pod type=file
-c:\tlperl\lib/pods/perl5004delta.pod type=file
-c:\tlperl\lib/pods/perl5005delta.pod type=file
-c:\tlperl\lib/pods/perl5100delta.pod type=file
-c:\tlperl\lib/pods/perl5101delta.pod type=file
-c:\tlperl\lib/pods/perl5120delta.pod type=file
-c:\tlperl\lib/pods/perl5121delta.pod type=file
-c:\tlperl\lib/pods/perl5122delta.pod type=file
-c:\tlperl\lib/pods/perl5123delta.pod type=file
-c:\tlperl\lib/pods/perl5124delta.pod type=file
-c:\tlperl\lib/pods/perl5125delta.pod type=file
-c:\tlperl\lib/pods/perl5140delta.pod type=file
-c:\tlperl\lib/pods/perl5141delta.pod type=file
-c:\tlperl\lib/pods/perl5142delta.pod type=file
-c:\tlperl\lib/pods/perl5143delta.pod type=file
-c:\tlperl\lib/pods/perl5144delta.pod type=file
-c:\tlperl\lib/pods/perl5160delta.pod type=file
-c:\tlperl\lib/pods/perl5161delta.pod type=file
-c:\tlperl\lib/pods/perl5162delta.pod type=file
-c:\tlperl\lib/pods/perl5163delta.pod type=file
-c:\tlperl\lib/pods/perl5180delta.pod type=file
-c:\tlperl\lib/pods/perl5181delta.pod type=file
-c:\tlperl\lib/pods/perl5182delta.pod type=file
-c:\tlperl\lib/pods/perl5184delta.pod type=file
-c:\tlperl\lib/pods/perl5200delta.pod type=file
-c:\tlperl\lib/pods/perl5201delta.pod type=file
-c:\tlperl\lib/pods/perl5202delta.pod type=file
-c:\tlperl\lib/pods/perl5203delta.pod type=file
-c:\tlperl\lib/pods/perl5220delta.pod type=file
-c:\tlperl\lib/pods/perl5221delta.pod type=file
-c:\tlperl\lib/pods/perl5222delta.pod type=file
-c:\tlperl\lib/pods/perl5240delta.pod type=file
-c:\tlperl\lib/pods/perl5241delta.pod type=file
-c:\tlperl\lib/pods/perl561delta.pod type=file
-c:\tlperl\lib/pods/perl56delta.pod type=file
-c:\tlperl\lib/pods/perl581delta.pod type=file
-c:\tlperl\lib/pods/perl582delta.pod type=file
-c:\tlperl\lib/pods/perl583delta.pod type=file
-c:\tlperl\lib/pods/perl584delta.pod type=file
-c:\tlperl\lib/pods/perl585delta.pod type=file
-c:\tlperl\lib/pods/perl586delta.pod type=file
-c:\tlperl\lib/pods/perl587delta.pod type=file
-c:\tlperl\lib/pods/perl588delta.pod type=file
-c:\tlperl\lib/pods/perl589delta.pod type=file
-c:\tlperl\lib/pods/perl58delta.pod type=file
-c:\tlperl\lib/pods/perlaix.pod type=file
-c:\tlperl\lib/pods/perlamiga.pod type=file
-c:\tlperl\lib/pods/perlandroid.pod type=file
-c:\tlperl\lib/pods/perlapi.pod type=file
-c:\tlperl\lib/pods/perlapio.pod type=file
-c:\tlperl\lib/pods/perlartistic.pod type=file
-c:\tlperl\lib/pods/perlbook.pod type=file
-c:\tlperl\lib/pods/perlboot.pod type=file
-c:\tlperl\lib/pods/perlbot.pod type=file
-c:\tlperl\lib/pods/perlbs2000.pod type=file
-c:\tlperl\lib/pods/perlcall.pod type=file
-c:\tlperl\lib/pods/perlce.pod type=file
-c:\tlperl\lib/pods/perlcheat.pod type=file
-c:\tlperl\lib/pods/perlclib.pod type=file
-c:\tlperl\lib/pods/perlcn.pod type=file
-c:\tlperl\lib/pods/perlcommunity.pod type=file
-c:\tlperl\lib/pods/perlcygwin.pod type=file
-c:\tlperl\lib/pods/perldata.pod type=file
-c:\tlperl\lib/pods/perldbmfilter.pod type=file
-c:\tlperl\lib/pods/perldebguts.pod type=file
-c:\tlperl\lib/pods/perldebtut.pod type=file
-c:\tlperl\lib/pods/perldebug.pod type=file
-c:\tlperl\lib/pods/perldelta.pod type=file
-c:\tlperl\lib/pods/perldiag.pod type=file
-c:\tlperl\lib/pods/perldoc.pod type=file
-c:\tlperl\lib/pods/perldos.pod type=file
-c:\tlperl\lib/pods/perldsc.pod type=file
-c:\tlperl\lib/pods/perldtrace.pod type=file
-c:\tlperl\lib/pods/perlebcdic.pod type=file
-c:\tlperl\lib/pods/perlembed.pod type=file
-c:\tlperl\lib/pods/perlexperiment.pod type=file
-c:\tlperl\lib/pods/perlfaq.pod type=file
-c:\tlperl\lib/pods/perlfaq1.pod type=file
-c:\tlperl\lib/pods/perlfaq2.pod type=file
-c:\tlperl\lib/pods/perlfaq3.pod type=file
-c:\tlperl\lib/pods/perlfaq4.pod type=file
-c:\tlperl\lib/pods/perlfaq5.pod type=file
-c:\tlperl\lib/pods/perlfaq6.pod type=file
-c:\tlperl\lib/pods/perlfaq7.pod type=file
-c:\tlperl\lib/pods/perlfaq8.pod type=file
-c:\tlperl\lib/pods/perlfaq9.pod type=file
-c:\tlperl\lib/pods/perlfilter.pod type=file
-c:\tlperl\lib/pods/perlfork.pod type=file
-c:\tlperl\lib/pods/perlform.pod type=file
-c:\tlperl\lib/pods/perlfreebsd.pod type=file
-c:\tlperl\lib/pods/perlfunc.pod type=file
-c:\tlperl\lib/pods/perlgit.pod type=file
-c:\tlperl\lib/pods/perlglossary.pod type=file
-c:\tlperl\lib/pods/perlgpl.pod type=file
-c:\tlperl\lib/pods/perlguts.pod type=file
-c:\tlperl\lib/pods/perlhack.pod type=file
-c:\tlperl\lib/pods/perlhacktips.pod type=file
-c:\tlperl\lib/pods/perlhacktut.pod type=file
-c:\tlperl\lib/pods/perlhaiku.pod type=file
-c:\tlperl\lib/pods/perlhist.pod type=file
-c:\tlperl\lib/pods/perlhpux.pod type=file
-c:\tlperl\lib/pods/perlhurd.pod type=file
-c:\tlperl\lib/pods/perlintern.pod type=file
-c:\tlperl\lib/pods/perlinterp.pod type=file
-c:\tlperl\lib/pods/perlintro.pod type=file
-c:\tlperl\lib/pods/perliol.pod type=file
-c:\tlperl\lib/pods/perlipc.pod type=file
-c:\tlperl\lib/pods/perlirix.pod type=file
-c:\tlperl\lib/pods/perljp.pod type=file
-c:\tlperl\lib/pods/perlko.pod type=file
-c:\tlperl\lib/pods/perllexwarn.pod type=file
-c:\tlperl\lib/pods/perllinux.pod type=file
-c:\tlperl\lib/pods/perllocale.pod type=file
-c:\tlperl\lib/pods/perllol.pod type=file
-c:\tlperl\lib/pods/perlmacos.pod type=file
-c:\tlperl\lib/pods/perlmacosx.pod type=file
-c:\tlperl\lib/pods/perlmod.pod type=file
-c:\tlperl\lib/pods/perlmodinstall.pod type=file
-c:\tlperl\lib/pods/perlmodlib.pod type=file
-c:\tlperl\lib/pods/perlmodstyle.pod type=file
-c:\tlperl\lib/pods/perlmroapi.pod type=file
-c:\tlperl\lib/pods/perlnetware.pod type=file
-c:\tlperl\lib/pods/perlnewmod.pod type=file
-c:\tlperl\lib/pods/perlnumber.pod type=file
-c:\tlperl\lib/pods/perlobj.pod type=file
-c:\tlperl\lib/pods/perlootut.pod type=file
-c:\tlperl\lib/pods/perlop.pod type=file
-c:\tlperl\lib/pods/perlopenbsd.pod type=file
-c:\tlperl\lib/pods/perlopentut.pod type=file
-c:\tlperl\lib/pods/perlos2.pod type=file
-c:\tlperl\lib/pods/perlos390.pod type=file
-c:\tlperl\lib/pods/perlos400.pod type=file
-c:\tlperl\lib/pods/perlpacktut.pod type=file
-c:\tlperl\lib/pods/perlperf.pod type=file
-c:\tlperl\lib/pods/perlplan9.pod type=file
-c:\tlperl\lib/pods/perlpod.pod type=file
-c:\tlperl\lib/pods/perlpodspec.pod type=file
-c:\tlperl\lib/pods/perlpodstyle.pod type=file
-c:\tlperl\lib/pods/perlpolicy.pod type=file
-c:\tlperl\lib/pods/perlport.pod type=file
-c:\tlperl\lib/pods/perlpragma.pod type=file
-c:\tlperl\lib/pods/perlqnx.pod type=file
-c:\tlperl\lib/pods/perlre.pod type=file
-c:\tlperl\lib/pods/perlreapi.pod type=file
-c:\tlperl\lib/pods/perlrebackslash.pod type=file
-c:\tlperl\lib/pods/perlrecharclass.pod type=file
-c:\tlperl\lib/pods/perlref.pod type=file
-c:\tlperl\lib/pods/perlreftut.pod type=file
-c:\tlperl\lib/pods/perlreguts.pod type=file
-c:\tlperl\lib/pods/perlrepository.pod type=file
-c:\tlperl\lib/pods/perlrequick.pod type=file
-c:\tlperl\lib/pods/perlreref.pod type=file
-c:\tlperl\lib/pods/perlretut.pod type=file
-c:\tlperl\lib/pods/perlriscos.pod type=file
-c:\tlperl\lib/pods/perlrun.pod type=file
-c:\tlperl\lib/pods/perlsec.pod type=file
-c:\tlperl\lib/pods/perlsolaris.pod type=file
-c:\tlperl\lib/pods/perlsource.pod type=file
-c:\tlperl\lib/pods/perlstyle.pod type=file
-c:\tlperl\lib/pods/perlsub.pod type=file
-c:\tlperl\lib/pods/perlsymbian.pod type=file
-c:\tlperl\lib/pods/perlsyn.pod type=file
-c:\tlperl\lib/pods/perlsynology.pod type=file
-c:\tlperl\lib/pods/perlthrtut.pod type=file
-c:\tlperl\lib/pods/perltie.pod type=file
-c:\tlperl\lib/pods/perltoc.pod type=file
-c:\tlperl\lib/pods/perltodo.pod type=file
-c:\tlperl\lib/pods/perltooc.pod type=file
-c:\tlperl\lib/pods/perltoot.pod type=file
-c:\tlperl\lib/pods/perltrap.pod type=file
-c:\tlperl\lib/pods/perltru64.pod type=file
-c:\tlperl\lib/pods/perltw.pod type=file
-c:\tlperl\lib/pods/perlunicode.pod type=file
-c:\tlperl\lib/pods/perlunicook.pod type=file
-c:\tlperl\lib/pods/perlunifaq.pod type=file
-c:\tlperl\lib/pods/perluniintro.pod type=file
-c:\tlperl\lib/pods/perluniprops.pod type=file
-c:\tlperl\lib/pods/perlunitut.pod type=file
-c:\tlperl\lib/pods/perlutil.pod type=file
-c:\tlperl\lib/pods/perlvar.pod type=file
-c:\tlperl\lib/pods/perlvms.pod type=file
-c:\tlperl\lib/pods/perlvos.pod type=file
-c:\tlperl\lib/pods/perlwin32.pod type=file
-c:\tlperl\lib/pods/perlxs.pod type=file
-c:\tlperl\lib/pods/perlxstut.pod type=file
-c:\tlperl\lib/pods/perlxstypemap.pod type=file
-c:\tlperl\lib/re.pm type=file
-c:\tlperl\lib/sigtrap.pm type=file
-c:\tlperl\lib/sort.pm type=file
-c:\tlperl\lib/strict.pm type=file
-c:\tlperl\lib/subs.pm type=file
-c:\tlperl\lib/threads.pm type=file
-c:\tlperl\lib/threads/shared.pm type=file
-c:\tlperl\lib/unicore/Blocks.txt type=file
-c:\tlperl\lib/unicore/CombiningClass.pl type=file
-c:\tlperl\lib/unicore/Decomposition.pl type=file
-c:\tlperl\lib/unicore/Heavy.pl type=file
-c:\tlperl\lib/unicore/Name.pl type=file
-c:\tlperl\lib/unicore/Name.pm type=file
-c:\tlperl\lib/unicore/NamedSequences.txt type=file
-c:\tlperl\lib/unicore/SpecialCasing.txt type=file
-c:\tlperl\lib/unicore/To/Age.pl type=file
-c:\tlperl\lib/unicore/To/Bc.pl type=file
-c:\tlperl\lib/unicore/To/Bmg.pl type=file
-c:\tlperl\lib/unicore/To/Bpb.pl type=file
-c:\tlperl\lib/unicore/To/Bpt.pl type=file
-c:\tlperl\lib/unicore/To/Cf.pl type=file
-c:\tlperl\lib/unicore/To/Digit.pl type=file
-c:\tlperl\lib/unicore/To/Ea.pl type=file
-c:\tlperl\lib/unicore/To/Fold.pl type=file
-c:\tlperl\lib/unicore/To/GCB.pl type=file
-c:\tlperl\lib/unicore/To/Gc.pl type=file
-c:\tlperl\lib/unicore/To/Hst.pl type=file
-c:\tlperl\lib/unicore/To/InPC.pl type=file
-c:\tlperl\lib/unicore/To/InSC.pl type=file
-c:\tlperl\lib/unicore/To/Isc.pl type=file
-c:\tlperl\lib/unicore/To/Jg.pl type=file
-c:\tlperl\lib/unicore/To/Jt.pl type=file
-c:\tlperl\lib/unicore/To/Lb.pl type=file
-c:\tlperl\lib/unicore/To/Lc.pl type=file
-c:\tlperl\lib/unicore/To/Lower.pl type=file
-c:\tlperl\lib/unicore/To/NFCQC.pl type=file
-c:\tlperl\lib/unicore/To/NFDQC.pl type=file
-c:\tlperl\lib/unicore/To/NFKCCF.pl type=file
-c:\tlperl\lib/unicore/To/NFKCQC.pl type=file
-c:\tlperl\lib/unicore/To/NFKDQC.pl type=file
-c:\tlperl\lib/unicore/To/Na1.pl type=file
-c:\tlperl\lib/unicore/To/NameAlia.pl type=file
-c:\tlperl\lib/unicore/To/Nt.pl type=file
-c:\tlperl\lib/unicore/To/Nv.pl type=file
-c:\tlperl\lib/unicore/To/PerlDeci.pl type=file
-c:\tlperl\lib/unicore/To/SB.pl type=file
-c:\tlperl\lib/unicore/To/Sc.pl type=file
-c:\tlperl\lib/unicore/To/Scx.pl type=file
-c:\tlperl\lib/unicore/To/Tc.pl type=file
-c:\tlperl\lib/unicore/To/Title.pl type=file
-c:\tlperl\lib/unicore/To/Uc.pl type=file
-c:\tlperl\lib/unicore/To/Upper.pl type=file
-c:\tlperl\lib/unicore/To/WB.pl type=file
-c:\tlperl\lib/unicore/To/_PerlLB.pl type=file
-c:\tlperl\lib/unicore/To/_PerlWB.pl type=file
-c:\tlperl\lib/unicore/UCD.pl type=file
-c:\tlperl\lib/unicore/lib/Age/NA.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V11.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V20.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V30.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V31.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V32.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V40.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V41.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V50.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V51.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V52.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V60.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V61.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V70.pl type=file
-c:\tlperl\lib/unicore/lib/Age/V80.pl type=file
-c:\tlperl\lib/unicore/lib/Alpha/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/AL.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/AN.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/B.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/BN.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/CS.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/EN.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/ES.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/ET.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/L.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/NSM.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/ON.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/R.pl type=file
-c:\tlperl\lib/unicore/lib/Bc/WS.pl type=file
-c:\tlperl\lib/unicore/lib/BidiC/Y.pl type=file
-c:\tlperl\lib/unicore/lib/BidiM/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Blk/NB.pl type=file
-c:\tlperl\lib/unicore/lib/Bpt/C.pl type=file
-c:\tlperl\lib/unicore/lib/Bpt/N.pl type=file
-c:\tlperl\lib/unicore/lib/Bpt/O.pl type=file
-c:\tlperl\lib/unicore/lib/CE/Y.pl type=file
-c:\tlperl\lib/unicore/lib/CI/Y.pl type=file
-c:\tlperl\lib/unicore/lib/CWCF/Y.pl type=file
-c:\tlperl\lib/unicore/lib/CWCM/Y.pl type=file
-c:\tlperl\lib/unicore/lib/CWKCF/Y.pl type=file
-c:\tlperl\lib/unicore/lib/CWL/Y.pl type=file
-c:\tlperl\lib/unicore/lib/CWT/Y.pl type=file
-c:\tlperl\lib/unicore/lib/CWU/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Cased/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/A.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/AR.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/ATAR.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/B.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/BR.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/DB.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/NK.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/NR.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/OV.pl type=file
-c:\tlperl\lib/unicore/lib/Ccc/VR.pl type=file
-c:\tlperl\lib/unicore/lib/CompEx/Y.pl type=file
-c:\tlperl\lib/unicore/lib/DI/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Dash/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Dep/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Dia/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Com.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Enc.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Fin.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Font.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Init.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Iso.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Med.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Nar.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Nb.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/NonCanon.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Sqr.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Sub.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Sup.pl type=file
-c:\tlperl\lib/unicore/lib/Dt/Vert.pl type=file
-c:\tlperl\lib/unicore/lib/Ea/A.pl type=file
-c:\tlperl\lib/unicore/lib/Ea/H.pl type=file
-c:\tlperl\lib/unicore/lib/Ea/N.pl type=file
-c:\tlperl\lib/unicore/lib/Ea/Na.pl type=file
-c:\tlperl\lib/unicore/lib/Ea/W.pl type=file
-c:\tlperl\lib/unicore/lib/Ext/Y.pl type=file
-c:\tlperl\lib/unicore/lib/GCB/CN.pl type=file
-c:\tlperl\lib/unicore/lib/GCB/EX.pl type=file
-c:\tlperl\lib/unicore/lib/GCB/LV.pl type=file
-c:\tlperl\lib/unicore/lib/GCB/LVT.pl type=file
-c:\tlperl\lib/unicore/lib/GCB/SM.pl type=file
-c:\tlperl\lib/unicore/lib/GCB/XX.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/C.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Cf.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Cn.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/L.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/LC.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Ll.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Lm.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Lo.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Lu.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/M.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Mc.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Me.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Mn.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/N.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Nd.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Nl.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/No.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/P.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Pd.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Pe.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Pf.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Pi.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Po.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Ps.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/S.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Sc.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Sk.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Sm.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/So.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Z.pl type=file
-c:\tlperl\lib/unicore/lib/Gc/Zs.pl type=file
-c:\tlperl\lib/unicore/lib/GrBase/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Hex/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Hst/NA.pl type=file
-c:\tlperl\lib/unicore/lib/Hyphen/T.pl type=file
-c:\tlperl\lib/unicore/lib/IDC/Y.pl type=file
-c:\tlperl\lib/unicore/lib/IDS/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Ideo/Y.pl type=file
-c:\tlperl\lib/unicore/lib/In/2_0.pl type=file
-c:\tlperl\lib/unicore/lib/In/2_1.pl type=file
-c:\tlperl\lib/unicore/lib/In/3_0.pl type=file
-c:\tlperl\lib/unicore/lib/In/3_1.pl type=file
-c:\tlperl\lib/unicore/lib/In/3_2.pl type=file
-c:\tlperl\lib/unicore/lib/In/4_0.pl type=file
-c:\tlperl\lib/unicore/lib/In/4_1.pl type=file
-c:\tlperl\lib/unicore/lib/In/5_0.pl type=file
-c:\tlperl\lib/unicore/lib/In/5_1.pl type=file
-c:\tlperl\lib/unicore/lib/In/5_2.pl type=file
-c:\tlperl\lib/unicore/lib/In/6_0.pl type=file
-c:\tlperl\lib/unicore/lib/In/6_1.pl type=file
-c:\tlperl\lib/unicore/lib/In/6_2.pl type=file
-c:\tlperl\lib/unicore/lib/In/6_3.pl type=file
-c:\tlperl\lib/unicore/lib/In/7_0.pl type=file
-c:\tlperl\lib/unicore/lib/In/8_0.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/Bottom.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/Left.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/LeftAndR.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/NA.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/Overstru.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/Right.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/Top.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/TopAndBo.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/TopAndL2.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/TopAndLe.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/TopAndRi.pl type=file
-c:\tlperl\lib/unicore/lib/InPC/VisualOr.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Avagraha.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Bindu.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Cantilla.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Consona2.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Consona3.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Consona4.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Consona5.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Consona6.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Consonan.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Invisibl.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Nukta.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Number.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Other.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/PureKill.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Syllable.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/ToneMark.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Virama.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Visarga.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/Vowel.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/VowelDep.pl type=file
-c:\tlperl\lib/unicore/lib/InSC/VowelInd.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Ain.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Alef.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Beh.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Dal.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/FarsiYeh.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Feh.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Gaf.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Hah.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Kaf.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Lam.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/NoJoinin.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Qaf.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Reh.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Sad.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Seen.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Waw.pl type=file
-c:\tlperl\lib/unicore/lib/Jg/Yeh.pl type=file
-c:\tlperl\lib/unicore/lib/Jt/C.pl type=file
-c:\tlperl\lib/unicore/lib/Jt/D.pl type=file
-c:\tlperl\lib/unicore/lib/Jt/R.pl type=file
-c:\tlperl\lib/unicore/lib/Jt/T.pl type=file
-c:\tlperl\lib/unicore/lib/Jt/U.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/AI.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/AL.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/BA.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/BB.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/CJ.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/CL.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/CM.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/EX.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/GL.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/ID.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/IN.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/IS.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/NS.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/OP.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/PO.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/PR.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/QU.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/SA.pl type=file
-c:\tlperl\lib/unicore/lib/Lb/XX.pl type=file
-c:\tlperl\lib/unicore/lib/Lower/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Math/Y.pl type=file
-c:\tlperl\lib/unicore/lib/NFCQC/M.pl type=file
-c:\tlperl\lib/unicore/lib/NFCQC/Y.pl type=file
-c:\tlperl\lib/unicore/lib/NFDQC/N.pl type=file
-c:\tlperl\lib/unicore/lib/NFDQC/Y.pl type=file
-c:\tlperl\lib/unicore/lib/NFKCQC/N.pl type=file
-c:\tlperl\lib/unicore/lib/NFKCQC/Y.pl type=file
-c:\tlperl\lib/unicore/lib/NFKDQC/N.pl type=file
-c:\tlperl\lib/unicore/lib/NFKDQC/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Nt/Di.pl type=file
-c:\tlperl\lib/unicore/lib/Nt/None.pl type=file
-c:\tlperl\lib/unicore/lib/Nt/Nu.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/0.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/1.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/10.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/100.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/1000.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/10000.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/11.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/12.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/13.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/14.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/15.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/16.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/17.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/18.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/19.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/1_2.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/1_3.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/1_4.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/1_8.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/2.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/20.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/200.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/2_3.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/3.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/30.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/300.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/3_4.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/4.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/40.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/400.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/5.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/50.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/500.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/5000.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/50000.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/6.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/60.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/600.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/7.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/70.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/700.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/8.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/80.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/800.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/9.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/90.pl type=file
-c:\tlperl\lib/unicore/lib/Nv/900.pl type=file
-c:\tlperl\lib/unicore/lib/PatSyn/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/Alnum.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/Assigned.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/Blank.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/Graph.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/PerlWord.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/PosixPun.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/Print.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/SpacePer.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/Title.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/Word.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/XPosixPu.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlAny.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlCh2.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlCha.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlFol.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlIDC.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlIDS.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlNch.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlPat.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlPr2.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlPro.pl type=file
-c:\tlperl\lib/unicore/lib/Perl/_PerlQuo.pl type=file
-c:\tlperl\lib/unicore/lib/QMark/Y.pl type=file
-c:\tlperl\lib/unicore/lib/SB/AT.pl type=file
-c:\tlperl\lib/unicore/lib/SB/CL.pl type=file
-c:\tlperl\lib/unicore/lib/SB/EX.pl type=file
-c:\tlperl\lib/unicore/lib/SB/FO.pl type=file
-c:\tlperl\lib/unicore/lib/SB/LE.pl type=file
-c:\tlperl\lib/unicore/lib/SB/LO.pl type=file
-c:\tlperl\lib/unicore/lib/SB/NU.pl type=file
-c:\tlperl\lib/unicore/lib/SB/SC.pl type=file
-c:\tlperl\lib/unicore/lib/SB/ST.pl type=file
-c:\tlperl\lib/unicore/lib/SB/Sp.pl type=file
-c:\tlperl\lib/unicore/lib/SB/UP.pl type=file
-c:\tlperl\lib/unicore/lib/SB/XX.pl type=file
-c:\tlperl\lib/unicore/lib/SD/Y.pl type=file
-c:\tlperl\lib/unicore/lib/STerm/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Arab.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Armn.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Beng.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Cham.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Cprt.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Cyrl.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Deva.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Dupl.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Ethi.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Geor.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Gran.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Grek.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Gujr.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Guru.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Han.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Hang.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Hebr.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Hira.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Hmng.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Kana.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Khar.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Khmr.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Knda.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Lana.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Lao.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Latn.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Limb.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Linb.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Mlym.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Mong.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Mult.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Orya.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Sinh.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Talu.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Taml.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Telu.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Tibt.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Xsux.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Zinh.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Zyyy.pl type=file
-c:\tlperl\lib/unicore/lib/Sc/Zzzz.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Arab.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Armn.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Beng.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Bopo.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Cakm.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Copt.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Cprt.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Cyrl.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Deva.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Dupl.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Geor.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Glag.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Gran.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Grek.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Gujr.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Guru.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Han.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Hang.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Hira.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Kana.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Knda.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Latn.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Limb.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Linb.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Mlym.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Mong.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Mult.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Mymr.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Orya.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Phlp.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Shrd.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Sind.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Sinh.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Syrc.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Tagb.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Takr.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Taml.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Telu.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Thaa.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Tirh.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Yi.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Zinh.pl type=file
-c:\tlperl\lib/unicore/lib/Scx/Zyyy.pl type=file
-c:\tlperl\lib/unicore/lib/Term/Y.pl type=file
-c:\tlperl\lib/unicore/lib/UIdeo/Y.pl type=file
-c:\tlperl\lib/unicore/lib/Upper/Y.pl type=file
-c:\tlperl\lib/unicore/lib/WB/EX.pl type=file
-c:\tlperl\lib/unicore/lib/WB/FO.pl type=file
-c:\tlperl\lib/unicore/lib/WB/HL.pl type=file
-c:\tlperl\lib/unicore/lib/WB/KA.pl type=file
-c:\tlperl\lib/unicore/lib/WB/LE.pl type=file
-c:\tlperl\lib/unicore/lib/WB/MB.pl type=file
-c:\tlperl\lib/unicore/lib/WB/ML.pl type=file
-c:\tlperl\lib/unicore/lib/WB/MN.pl type=file
-c:\tlperl\lib/unicore/lib/WB/NU.pl type=file
-c:\tlperl\lib/unicore/lib/WB/XX.pl type=file
-c:\tlperl\lib/unicore/lib/XIDC/Y.pl type=file
-c:\tlperl\lib/unicore/lib/XIDS/Y.pl type=file
-c:\tlperl\lib/unicore/version type=file
-c:\tlperl\lib/utf8.pm type=file
-c:\tlperl\lib/utf8_heavy.pl type=file
-c:\tlperl\lib/vars.pm type=file
-c:\tlperl\lib/version.pm type=file
-c:\tlperl\lib/version.pod type=file
-c:\tlperl\lib/version/Internals.pod type=file
-c:\tlperl\lib/version/regex.pm type=file
-c:\tlperl\lib/vmsish.pm type=file
-c:\tlperl\lib/warnings.pm type=file
-c:\tlperl\lib/warnings/register.pm type=file
+c:\tlperl526\bin/corelist.bat type=file
+c:\tlperl526\bin/cpan.bat type=file
+c:\tlperl526\bin/enc2xs.bat type=file
+c:\tlperl526\bin/encguess.bat type=file
+c:\tlperl526\bin/h2ph.bat type=file
+c:\tlperl526\bin/h2xs.bat type=file
+c:\tlperl526\bin/instmodsh.bat type=file
+c:\tlperl526\bin/json_pp.bat type=file
+c:\tlperl526\bin/libnetcfg.bat type=file
+c:\tlperl526\bin/perl.exe from=c:\tlperl526\bin/perl5.26.1.exe type=link
+c:\tlperl526\bin/perl5.26.1.exe type=file
+c:\tlperl526\bin/perl526.dll type=file
+c:\tlperl526\bin/perlbug.bat type=file
+c:\tlperl526\bin/perldoc.bat type=file
+c:\tlperl526\bin/perlivp.bat type=file
+c:\tlperl526\bin/perlthanks.bat from=c:\tlperl526\bin/perlbug.bat type=link
+c:\tlperl526\bin/piconv.bat type=file
+c:\tlperl526\bin/pl2pm.bat type=file
+c:\tlperl526\bin/pod2html.bat type=file
+c:\tlperl526\bin/pod2man.bat type=file
+c:\tlperl526\bin/pod2text.bat type=file
+c:\tlperl526\bin/pod2usage.bat type=file
+c:\tlperl526\bin/podchecker.bat type=file
+c:\tlperl526\bin/podselect.bat type=file
+c:\tlperl526\bin/prove.bat type=file
+c:\tlperl526\bin/ptar.bat type=file
+c:\tlperl526\bin/ptardiff.bat type=file
+c:\tlperl526\bin/ptargrep.bat type=file
+c:\tlperl526\bin/shasum.bat type=file
+c:\tlperl526\bin/splain.bat type=file
+c:\tlperl526\bin/xsubpp.bat type=file
+c:\tlperl526\bin/zipdetails.bat type=file
+c:\tlperl526\lib/AnyDBM_File.pm type=file
+c:\tlperl526\lib/App/Cpan.pm type=file
+c:\tlperl526\lib/App/Prove.pm type=file
+c:\tlperl526\lib/App/Prove/State.pm type=file
+c:\tlperl526\lib/App/Prove/State/Result.pm type=file
+c:\tlperl526\lib/App/Prove/State/Result/Test.pm type=file
+c:\tlperl526\lib/Archive/Tar.pm type=file
+c:\tlperl526\lib/Archive/Tar/Constant.pm type=file
+c:\tlperl526\lib/Archive/Tar/File.pm type=file
+c:\tlperl526\lib/Attribute/Handlers.pm type=file
+c:\tlperl526\lib/AutoLoader.pm type=file
+c:\tlperl526\lib/AutoSplit.pm type=file
+c:\tlperl526\lib/B.pm type=file
+c:\tlperl526\lib/B/Concise.pm type=file
+c:\tlperl526\lib/B/Debug.pm type=file
+c:\tlperl526\lib/B/Deparse.pm type=file
+c:\tlperl526\lib/B/Op_private.pm type=file
+c:\tlperl526\lib/B/Showlex.pm type=file
+c:\tlperl526\lib/B/Terse.pm type=file
+c:\tlperl526\lib/B/Xref.pm type=file
+c:\tlperl526\lib/Benchmark.pm type=file
+c:\tlperl526\lib/CORE.pod type=file
+c:\tlperl526\lib/CORE/EXTERN.h type=file
+c:\tlperl526\lib/CORE/INTERN.h type=file
+c:\tlperl526\lib/CORE/XSUB.h type=file
+c:\tlperl526\lib/CORE/arpa/inet.h type=file
+c:\tlperl526\lib/CORE/av.h type=file
+c:\tlperl526\lib/CORE/bitcount.h type=file
+c:\tlperl526\lib/CORE/charclass_invlists.h type=file
+c:\tlperl526\lib/CORE/config.h type=file
+c:\tlperl526\lib/CORE/cop.h type=file
+c:\tlperl526\lib/CORE/cv.h type=file
+c:\tlperl526\lib/CORE/dirent.h type=file
+c:\tlperl526\lib/CORE/dosish.h type=file
+c:\tlperl526\lib/CORE/dquote_inline.h type=file
+c:\tlperl526\lib/CORE/ebcdic_tables.h type=file
+c:\tlperl526\lib/CORE/embed.h type=file
+c:\tlperl526\lib/CORE/embedvar.h type=file
+c:\tlperl526\lib/CORE/fakesdio.h type=file
+c:\tlperl526\lib/CORE/feature.h type=file
+c:\tlperl526\lib/CORE/form.h type=file
+c:\tlperl526\lib/CORE/git_version.h type=file
+c:\tlperl526\lib/CORE/gv.h type=file
+c:\tlperl526\lib/CORE/handy.h type=file
+c:\tlperl526\lib/CORE/hv.h type=file
+c:\tlperl526\lib/CORE/hv_func.h type=file
+c:\tlperl526\lib/CORE/inline.h type=file
+c:\tlperl526\lib/CORE/intrpvar.h type=file
+c:\tlperl526\lib/CORE/invlist_inline.h type=file
+c:\tlperl526\lib/CORE/iperlsys.h type=file
+c:\tlperl526\lib/CORE/keywords.h type=file
+c:\tlperl526\lib/CORE/l1_char_class_tab.h type=file
+c:\tlperl526\lib/CORE/libperl526.a type=file
+c:\tlperl526\lib/CORE/malloc_ctl.h type=file
+c:\tlperl526\lib/CORE/metaconfig.h type=file
+c:\tlperl526\lib/CORE/mg.h type=file
+c:\tlperl526\lib/CORE/mg_data.h type=file
+c:\tlperl526\lib/CORE/mg_raw.h type=file
+c:\tlperl526\lib/CORE/mg_vtable.h type=file
+c:\tlperl526\lib/CORE/mydtrace.h type=file
+c:\tlperl526\lib/CORE/netdb.h type=file
+c:\tlperl526\lib/CORE/nostdio.h type=file
+c:\tlperl526\lib/CORE/op.h type=file
+c:\tlperl526\lib/CORE/op_reg_common.h type=file
+c:\tlperl526\lib/CORE/opcode.h type=file
+c:\tlperl526\lib/CORE/opnames.h type=file
+c:\tlperl526\lib/CORE/overload.h type=file
+c:\tlperl526\lib/CORE/pad.h type=file
+c:\tlperl526\lib/CORE/parser.h type=file
+c:\tlperl526\lib/CORE/patchlevel.h type=file
+c:\tlperl526\lib/CORE/perl.h type=file
+c:\tlperl526\lib/CORE/perlapi.h type=file
+c:\tlperl526\lib/CORE/perlhost.h type=file
+c:\tlperl526\lib/CORE/perlio.h type=file
+c:\tlperl526\lib/CORE/perliol.h type=file
+c:\tlperl526\lib/CORE/perlsdio.h type=file
+c:\tlperl526\lib/CORE/perlvars.h type=file
+c:\tlperl526\lib/CORE/perly.h type=file
+c:\tlperl526\lib/CORE/pp.h type=file
+c:\tlperl526\lib/CORE/pp_proto.h type=file
+c:\tlperl526\lib/CORE/proto.h type=file
+c:\tlperl526\lib/CORE/reentr.h type=file
+c:\tlperl526\lib/CORE/regcharclass.h type=file
+c:\tlperl526\lib/CORE/regcomp.h type=file
+c:\tlperl526\lib/CORE/regexp.h type=file
+c:\tlperl526\lib/CORE/regnodes.h type=file
+c:\tlperl526\lib/CORE/scope.h type=file
+c:\tlperl526\lib/CORE/sv.h type=file
+c:\tlperl526\lib/CORE/sys/errno2.h type=file
+c:\tlperl526\lib/CORE/sys/socket.h type=file
+c:\tlperl526\lib/CORE/thread.h type=file
+c:\tlperl526\lib/CORE/time64.h type=file
+c:\tlperl526\lib/CORE/time64_config.h type=file
+c:\tlperl526\lib/CORE/uconfig.h type=file
+c:\tlperl526\lib/CORE/unicode_constants.h type=file
+c:\tlperl526\lib/CORE/unixish.h type=file
+c:\tlperl526\lib/CORE/utf8.h type=file
+c:\tlperl526\lib/CORE/utfebcdic.h type=file
+c:\tlperl526\lib/CORE/util.h type=file
+c:\tlperl526\lib/CORE/uudmap.h type=file
+c:\tlperl526\lib/CORE/vdir.h type=file
+c:\tlperl526\lib/CORE/vmem.h type=file
+c:\tlperl526\lib/CORE/vutil.h type=file
+c:\tlperl526\lib/CORE/warnings.h type=file
+c:\tlperl526\lib/CORE/win32.h type=file
+c:\tlperl526\lib/CORE/win32iop-o.h type=file
+c:\tlperl526\lib/CORE/win32iop.h type=file
+c:\tlperl526\lib/CORE/win32thread.h type=file
+c:\tlperl526\lib/CORE/wince.h type=file
+c:\tlperl526\lib/CPAN.pm type=file
+c:\tlperl526\lib/CPAN/API/HOWTO.pod type=file
+c:\tlperl526\lib/CPAN/Author.pm type=file
+c:\tlperl526\lib/CPAN/Bundle.pm type=file
+c:\tlperl526\lib/CPAN/CacheMgr.pm type=file
+c:\tlperl526\lib/CPAN/Complete.pm type=file
+c:\tlperl526\lib/CPAN/Debug.pm type=file
+c:\tlperl526\lib/CPAN/DeferredCode.pm type=file
+c:\tlperl526\lib/CPAN/Distribution.pm type=file
+c:\tlperl526\lib/CPAN/Distroprefs.pm type=file
+c:\tlperl526\lib/CPAN/Distrostatus.pm type=file
+c:\tlperl526\lib/CPAN/Exception/RecursiveDependency.pm type=file
+c:\tlperl526\lib/CPAN/Exception/blocked_urllist.pm type=file
+c:\tlperl526\lib/CPAN/Exception/yaml_not_installed.pm type=file
+c:\tlperl526\lib/CPAN/Exception/yaml_process_error.pm type=file
+c:\tlperl526\lib/CPAN/FTP.pm type=file
+c:\tlperl526\lib/CPAN/FTP/netrc.pm type=file
+c:\tlperl526\lib/CPAN/FirstTime.pm type=file
+c:\tlperl526\lib/CPAN/HTTP/Client.pm type=file
+c:\tlperl526\lib/CPAN/HTTP/Credentials.pm type=file
+c:\tlperl526\lib/CPAN/HandleConfig.pm type=file
+c:\tlperl526\lib/CPAN/Index.pm type=file
+c:\tlperl526\lib/CPAN/InfoObj.pm type=file
+c:\tlperl526\lib/CPAN/Kwalify.pm type=file
+c:\tlperl526\lib/CPAN/Kwalify/distroprefs.dd type=file
+c:\tlperl526\lib/CPAN/Kwalify/distroprefs.yml type=file
+c:\tlperl526\lib/CPAN/LWP/UserAgent.pm type=file
+c:\tlperl526\lib/CPAN/Meta.pm type=file
+c:\tlperl526\lib/CPAN/Meta/Converter.pm type=file
+c:\tlperl526\lib/CPAN/Meta/Feature.pm type=file
+c:\tlperl526\lib/CPAN/Meta/History.pm type=file
+c:\tlperl526\lib/CPAN/Meta/History/Meta_1_0.pod type=file
+c:\tlperl526\lib/CPAN/Meta/History/Meta_1_1.pod type=file
+c:\tlperl526\lib/CPAN/Meta/History/Meta_1_2.pod type=file
+c:\tlperl526\lib/CPAN/Meta/History/Meta_1_3.pod type=file
+c:\tlperl526\lib/CPAN/Meta/History/Meta_1_4.pod type=file
+c:\tlperl526\lib/CPAN/Meta/Merge.pm type=file
+c:\tlperl526\lib/CPAN/Meta/Prereqs.pm type=file
+c:\tlperl526\lib/CPAN/Meta/Requirements.pm type=file
+c:\tlperl526\lib/CPAN/Meta/Spec.pm type=file
+c:\tlperl526\lib/CPAN/Meta/Validator.pm type=file
+c:\tlperl526\lib/CPAN/Meta/YAML.pm type=file
+c:\tlperl526\lib/CPAN/Mirrors.pm type=file
+c:\tlperl526\lib/CPAN/Module.pm type=file
+c:\tlperl526\lib/CPAN/Nox.pm type=file
+c:\tlperl526\lib/CPAN/Plugin.pm type=file
+c:\tlperl526\lib/CPAN/Plugin/Specfile.pm type=file
+c:\tlperl526\lib/CPAN/Prompt.pm type=file
+c:\tlperl526\lib/CPAN/Queue.pm type=file
+c:\tlperl526\lib/CPAN/Shell.pm type=file
+c:\tlperl526\lib/CPAN/Tarzip.pm type=file
+c:\tlperl526\lib/CPAN/URL.pm type=file
+c:\tlperl526\lib/CPAN/Version.pm type=file
+c:\tlperl526\lib/Carp.pm type=file
+c:\tlperl526\lib/Carp/Heavy.pm type=file
+c:\tlperl526\lib/Class/Struct.pm type=file
+c:\tlperl526\lib/Compress/Raw/Bzip2.pm type=file
+c:\tlperl526\lib/Compress/Raw/Zlib.pm type=file
+c:\tlperl526\lib/Compress/Zlib.pm type=file
+c:\tlperl526\lib/Config.pm type=file
+c:\tlperl526\lib/Config.pod type=file
+c:\tlperl526\lib/Config/Extensions.pm type=file
+c:\tlperl526\lib/Config/Perl/V.pm type=file
+c:\tlperl526\lib/Config_git.pl type=file
+c:\tlperl526\lib/Config_heavy.pl type=file
+c:\tlperl526\lib/Cwd.pm type=file
+c:\tlperl526\lib/DB.pm type=file
+c:\tlperl526\lib/DBM_Filter.pm type=file
+c:\tlperl526\lib/DBM_Filter/compress.pm type=file
+c:\tlperl526\lib/DBM_Filter/encode.pm type=file
+c:\tlperl526\lib/DBM_Filter/int32.pm type=file
+c:\tlperl526\lib/DBM_Filter/null.pm type=file
+c:\tlperl526\lib/DBM_Filter/utf8.pm type=file
+c:\tlperl526\lib/Data/Dumper.pm type=file
+c:\tlperl526\lib/Devel/PPPort.pm type=file
+c:\tlperl526\lib/Devel/Peek.pm type=file
+c:\tlperl526\lib/Devel/SelfStubber.pm type=file
+c:\tlperl526\lib/Digest.pm type=file
+c:\tlperl526\lib/Digest/MD5.pm type=file
+c:\tlperl526\lib/Digest/SHA.pm type=file
+c:\tlperl526\lib/Digest/base.pm type=file
+c:\tlperl526\lib/Digest/file.pm type=file
+c:\tlperl526\lib/DirHandle.pm type=file
+c:\tlperl526\lib/Dumpvalue.pm type=file
+c:\tlperl526\lib/DynaLoader.pm type=file
+c:\tlperl526\lib/Encode.pm type=file
+c:\tlperl526\lib/Encode/Alias.pm type=file
+c:\tlperl526\lib/Encode/Byte.pm type=file
+c:\tlperl526\lib/Encode/CJKConstants.pm type=file
+c:\tlperl526\lib/Encode/CN.pm type=file
+c:\tlperl526\lib/Encode/CN/HZ.pm type=file
+c:\tlperl526\lib/Encode/Changes.e2x type=file
+c:\tlperl526\lib/Encode/Config.pm type=file
+c:\tlperl526\lib/Encode/ConfigLocal_PM.e2x type=file
+c:\tlperl526\lib/Encode/EBCDIC.pm type=file
+c:\tlperl526\lib/Encode/Encoder.pm type=file
+c:\tlperl526\lib/Encode/Encoding.pm type=file
+c:\tlperl526\lib/Encode/GSM0338.pm type=file
+c:\tlperl526\lib/Encode/Guess.pm type=file
+c:\tlperl526\lib/Encode/JP.pm type=file
+c:\tlperl526\lib/Encode/JP/H2Z.pm type=file
+c:\tlperl526\lib/Encode/JP/JIS7.pm type=file
+c:\tlperl526\lib/Encode/KR.pm type=file
+c:\tlperl526\lib/Encode/KR/2022_KR.pm type=file
+c:\tlperl526\lib/Encode/MIME/Header.pm type=file
+c:\tlperl526\lib/Encode/MIME/Header/ISO_2022_JP.pm type=file
+c:\tlperl526\lib/Encode/MIME/Name.pm type=file
+c:\tlperl526\lib/Encode/Makefile_PL.e2x type=file
+c:\tlperl526\lib/Encode/PerlIO.pod type=file
+c:\tlperl526\lib/Encode/README.e2x type=file
+c:\tlperl526\lib/Encode/Supported.pod type=file
+c:\tlperl526\lib/Encode/Symbol.pm type=file
+c:\tlperl526\lib/Encode/TW.pm type=file
+c:\tlperl526\lib/Encode/Unicode.pm type=file
+c:\tlperl526\lib/Encode/Unicode/UTF7.pm type=file
+c:\tlperl526\lib/Encode/_PM.e2x type=file
+c:\tlperl526\lib/Encode/_T.e2x type=file
+c:\tlperl526\lib/Encode/encode.h type=file
+c:\tlperl526\lib/English.pm type=file
+c:\tlperl526\lib/Env.pm type=file
+c:\tlperl526\lib/Errno.pm type=file
+c:\tlperl526\lib/Exporter.pm type=file
+c:\tlperl526\lib/Exporter/Heavy.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Base.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/Unix.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/VMS.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/Windows.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/aix.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/android.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/cygwin.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/darwin.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/dec_osf.pm type=file
+c:\tlperl526\lib/ExtUtils/CBuilder/Platform/os2.pm type=file
+c:\tlperl526\lib/ExtUtils/Command.pm type=file
+c:\tlperl526\lib/ExtUtils/Command/MM.pm type=file
+c:\tlperl526\lib/ExtUtils/Constant.pm type=file
+c:\tlperl526\lib/ExtUtils/Constant/Base.pm type=file
+c:\tlperl526\lib/ExtUtils/Constant/ProxySubs.pm type=file
+c:\tlperl526\lib/ExtUtils/Constant/Utils.pm type=file
+c:\tlperl526\lib/ExtUtils/Constant/XS.pm type=file
+c:\tlperl526\lib/ExtUtils/Embed.pm type=file
+c:\tlperl526\lib/ExtUtils/Install.pm type=file
+c:\tlperl526\lib/ExtUtils/Installed.pm type=file
+c:\tlperl526\lib/ExtUtils/Liblist.pm type=file
+c:\tlperl526\lib/ExtUtils/Liblist/Kid.pm type=file
+c:\tlperl526\lib/ExtUtils/MANIFEST.SKIP type=file
+c:\tlperl526\lib/ExtUtils/MM.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_AIX.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_Any.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_BeOS.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_Cygwin.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_DOS.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_Darwin.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_MacOS.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_NW5.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_OS2.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_QNX.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_UWIN.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_Unix.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_VMS.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_VOS.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_Win32.pm type=file
+c:\tlperl526\lib/ExtUtils/MM_Win95.pm type=file
+c:\tlperl526\lib/ExtUtils/MY.pm type=file
+c:\tlperl526\lib/ExtUtils/MakeMaker.pm type=file
+c:\tlperl526\lib/ExtUtils/MakeMaker/Config.pm type=file
+c:\tlperl526\lib/ExtUtils/MakeMaker/FAQ.pod type=file
+c:\tlperl526\lib/ExtUtils/MakeMaker/Locale.pm type=file
+c:\tlperl526\lib/ExtUtils/MakeMaker/Tutorial.pod type=file
+c:\tlperl526\lib/ExtUtils/MakeMaker/version.pm type=file
+c:\tlperl526\lib/ExtUtils/Manifest.pm type=file
+c:\tlperl526\lib/ExtUtils/Miniperl.pm type=file
+c:\tlperl526\lib/ExtUtils/Mkbootstrap.pm type=file
+c:\tlperl526\lib/ExtUtils/Mksymlists.pm type=file
+c:\tlperl526\lib/ExtUtils/Packlist.pm type=file
+c:\tlperl526\lib/ExtUtils/ParseXS.pm type=file
+c:\tlperl526\lib/ExtUtils/ParseXS.pod type=file
+c:\tlperl526\lib/ExtUtils/ParseXS/Constants.pm type=file
+c:\tlperl526\lib/ExtUtils/ParseXS/CountLines.pm type=file
+c:\tlperl526\lib/ExtUtils/ParseXS/Eval.pm type=file
+c:\tlperl526\lib/ExtUtils/ParseXS/Utilities.pm type=file
+c:\tlperl526\lib/ExtUtils/Typemaps.pm type=file
+c:\tlperl526\lib/ExtUtils/Typemaps/Cmd.pm type=file
+c:\tlperl526\lib/ExtUtils/Typemaps/InputMap.pm type=file
+c:\tlperl526\lib/ExtUtils/Typemaps/OutputMap.pm type=file
+c:\tlperl526\lib/ExtUtils/Typemaps/Type.pm type=file
+c:\tlperl526\lib/ExtUtils/testlib.pm type=file
+c:\tlperl526\lib/ExtUtils/typemap type=file
+c:\tlperl526\lib/ExtUtils/xsubpp type=file
+c:\tlperl526\lib/Fatal.pm type=file
+c:\tlperl526\lib/Fcntl.pm type=file
+c:\tlperl526\lib/File/Basename.pm type=file
+c:\tlperl526\lib/File/Compare.pm type=file
+c:\tlperl526\lib/File/Copy.pm type=file
+c:\tlperl526\lib/File/DosGlob.pm type=file
+c:\tlperl526\lib/File/Fetch.pm type=file
+c:\tlperl526\lib/File/Find.pm type=file
+c:\tlperl526\lib/File/Glob.pm type=file
+c:\tlperl526\lib/File/GlobMapper.pm type=file
+c:\tlperl526\lib/File/Path.pm type=file
+c:\tlperl526\lib/File/Spec.pm type=file
+c:\tlperl526\lib/File/Spec/AmigaOS.pm type=file
+c:\tlperl526\lib/File/Spec/Cygwin.pm type=file
+c:\tlperl526\lib/File/Spec/Epoc.pm type=file
+c:\tlperl526\lib/File/Spec/Functions.pm type=file
+c:\tlperl526\lib/File/Spec/Mac.pm type=file
+c:\tlperl526\lib/File/Spec/OS2.pm type=file
+c:\tlperl526\lib/File/Spec/Unix.pm type=file
+c:\tlperl526\lib/File/Spec/VMS.pm type=file
+c:\tlperl526\lib/File/Spec/Win32.pm type=file
+c:\tlperl526\lib/File/Temp.pm type=file
+c:\tlperl526\lib/File/stat.pm type=file
+c:\tlperl526\lib/FileCache.pm type=file
+c:\tlperl526\lib/FileHandle.pm type=file
+c:\tlperl526\lib/Filter/Simple.pm type=file
+c:\tlperl526\lib/Filter/Util/Call.pm type=file
+c:\tlperl526\lib/FindBin.pm type=file
+c:\tlperl526\lib/Getopt/Long.pm type=file
+c:\tlperl526\lib/Getopt/Std.pm type=file
+c:\tlperl526\lib/HTTP/Tiny.pm type=file
+c:\tlperl526\lib/Hash/Util.pm type=file
+c:\tlperl526\lib/Hash/Util/FieldHash.pm type=file
+c:\tlperl526\lib/I18N/Collate.pm type=file
+c:\tlperl526\lib/I18N/LangTags.pm type=file
+c:\tlperl526\lib/I18N/LangTags/Detect.pm type=file
+c:\tlperl526\lib/I18N/LangTags/List.pm type=file
+c:\tlperl526\lib/IO.pm type=file
+c:\tlperl526\lib/IO/Compress/Adapter/Bzip2.pm type=file
+c:\tlperl526\lib/IO/Compress/Adapter/Deflate.pm type=file
+c:\tlperl526\lib/IO/Compress/Adapter/Identity.pm type=file
+c:\tlperl526\lib/IO/Compress/Base.pm type=file
+c:\tlperl526\lib/IO/Compress/Base/Common.pm type=file
+c:\tlperl526\lib/IO/Compress/Bzip2.pm type=file
+c:\tlperl526\lib/IO/Compress/Deflate.pm type=file
+c:\tlperl526\lib/IO/Compress/FAQ.pod type=file
+c:\tlperl526\lib/IO/Compress/Gzip.pm type=file
+c:\tlperl526\lib/IO/Compress/Gzip/Constants.pm type=file
+c:\tlperl526\lib/IO/Compress/RawDeflate.pm type=file
+c:\tlperl526\lib/IO/Compress/Zip.pm type=file
+c:\tlperl526\lib/IO/Compress/Zip/Constants.pm type=file
+c:\tlperl526\lib/IO/Compress/Zlib/Constants.pm type=file
+c:\tlperl526\lib/IO/Compress/Zlib/Extra.pm type=file
+c:\tlperl526\lib/IO/Dir.pm type=file
+c:\tlperl526\lib/IO/File.pm type=file
+c:\tlperl526\lib/IO/Handle.pm type=file
+c:\tlperl526\lib/IO/Pipe.pm type=file
+c:\tlperl526\lib/IO/Poll.pm type=file
+c:\tlperl526\lib/IO/Seekable.pm type=file
+c:\tlperl526\lib/IO/Select.pm type=file
+c:\tlperl526\lib/IO/Socket.pm type=file
+c:\tlperl526\lib/IO/Socket/INET.pm type=file
+c:\tlperl526\lib/IO/Socket/IP.pm type=file
+c:\tlperl526\lib/IO/Socket/UNIX.pm type=file
+c:\tlperl526\lib/IO/Uncompress/Adapter/Bunzip2.pm type=file
+c:\tlperl526\lib/IO/Uncompress/Adapter/Identity.pm type=file
+c:\tlperl526\lib/IO/Uncompress/Adapter/Inflate.pm type=file
+c:\tlperl526\lib/IO/Uncompress/AnyInflate.pm type=file
+c:\tlperl526\lib/IO/Uncompress/AnyUncompress.pm type=file
+c:\tlperl526\lib/IO/Uncompress/Base.pm type=file
+c:\tlperl526\lib/IO/Uncompress/Bunzip2.pm type=file
+c:\tlperl526\lib/IO/Uncompress/Gunzip.pm type=file
+c:\tlperl526\lib/IO/Uncompress/Inflate.pm type=file
+c:\tlperl526\lib/IO/Uncompress/RawInflate.pm type=file
+c:\tlperl526\lib/IO/Uncompress/Unzip.pm type=file
+c:\tlperl526\lib/IO/Zlib.pm type=file
+c:\tlperl526\lib/IPC/Cmd.pm type=file
+c:\tlperl526\lib/IPC/Open2.pm type=file
+c:\tlperl526\lib/IPC/Open3.pm type=file
+c:\tlperl526\lib/Internals.pod type=file
+c:\tlperl526\lib/JSON/PP.pm type=file
+c:\tlperl526\lib/JSON/PP/Boolean.pm type=file
+c:\tlperl526\lib/List/Util.pm type=file
+c:\tlperl526\lib/List/Util/XS.pm type=file
+c:\tlperl526\lib/Locale/Codes.pm type=file
+c:\tlperl526\lib/Locale/Codes.pod type=file
+c:\tlperl526\lib/Locale/Codes/API.pod type=file
+c:\tlperl526\lib/Locale/Codes/Changes.pod type=file
+c:\tlperl526\lib/Locale/Codes/Constants.pm type=file
+c:\tlperl526\lib/Locale/Codes/Country.pm type=file
+c:\tlperl526\lib/Locale/Codes/Country.pod type=file
+c:\tlperl526\lib/Locale/Codes/Country_Codes.pm type=file
+c:\tlperl526\lib/Locale/Codes/Country_Retired.pm type=file
+c:\tlperl526\lib/Locale/Codes/Currency.pm type=file
+c:\tlperl526\lib/Locale/Codes/Currency.pod type=file
+c:\tlperl526\lib/Locale/Codes/Currency_Codes.pm type=file
+c:\tlperl526\lib/Locale/Codes/Currency_Retired.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangExt.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangExt.pod type=file
+c:\tlperl526\lib/Locale/Codes/LangExt_Codes.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangExt_Retired.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangFam.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangFam.pod type=file
+c:\tlperl526\lib/Locale/Codes/LangFam_Codes.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangFam_Retired.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangVar.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangVar.pod type=file
+c:\tlperl526\lib/Locale/Codes/LangVar_Codes.pm type=file
+c:\tlperl526\lib/Locale/Codes/LangVar_Retired.pm type=file
+c:\tlperl526\lib/Locale/Codes/Language.pm type=file
+c:\tlperl526\lib/Locale/Codes/Language.pod type=file
+c:\tlperl526\lib/Locale/Codes/Language_Codes.pm type=file
+c:\tlperl526\lib/Locale/Codes/Language_Retired.pm type=file
+c:\tlperl526\lib/Locale/Codes/Script.pm type=file
+c:\tlperl526\lib/Locale/Codes/Script.pod type=file
+c:\tlperl526\lib/Locale/Codes/Script_Codes.pm type=file
+c:\tlperl526\lib/Locale/Codes/Script_Retired.pm type=file
+c:\tlperl526\lib/Locale/Country.pm type=file
+c:\tlperl526\lib/Locale/Country.pod type=file
+c:\tlperl526\lib/Locale/Currency.pm type=file
+c:\tlperl526\lib/Locale/Currency.pod type=file
+c:\tlperl526\lib/Locale/Language.pm type=file
+c:\tlperl526\lib/Locale/Language.pod type=file
+c:\tlperl526\lib/Locale/Maketext.pm type=file
+c:\tlperl526\lib/Locale/Maketext.pod type=file
+c:\tlperl526\lib/Locale/Maketext/Cookbook.pod type=file
+c:\tlperl526\lib/Locale/Maketext/Guts.pm type=file
+c:\tlperl526\lib/Locale/Maketext/GutsLoader.pm type=file
+c:\tlperl526\lib/Locale/Maketext/Simple.pm type=file
+c:\tlperl526\lib/Locale/Maketext/TPJ13.pod type=file
+c:\tlperl526\lib/Locale/Script.pm type=file
+c:\tlperl526\lib/Locale/Script.pod type=file
+c:\tlperl526\lib/MIME/Base64.pm type=file
+c:\tlperl526\lib/MIME/QuotedPrint.pm type=file
+c:\tlperl526\lib/Math/BigFloat.pm type=file
+c:\tlperl526\lib/Math/BigFloat/Trace.pm type=file
+c:\tlperl526\lib/Math/BigInt.pm type=file
+c:\tlperl526\lib/Math/BigInt/Calc.pm type=file
+c:\tlperl526\lib/Math/BigInt/CalcEmu.pm type=file
+c:\tlperl526\lib/Math/BigInt/FastCalc.pm type=file
+c:\tlperl526\lib/Math/BigInt/Lib.pm type=file
+c:\tlperl526\lib/Math/BigInt/Trace.pm type=file
+c:\tlperl526\lib/Math/BigRat.pm type=file
+c:\tlperl526\lib/Math/Complex.pm type=file
+c:\tlperl526\lib/Math/Trig.pm type=file
+c:\tlperl526\lib/Memoize.pm type=file
+c:\tlperl526\lib/Memoize/AnyDBM_File.pm type=file
+c:\tlperl526\lib/Memoize/Expire.pm type=file
+c:\tlperl526\lib/Memoize/ExpireFile.pm type=file
+c:\tlperl526\lib/Memoize/ExpireTest.pm type=file
+c:\tlperl526\lib/Memoize/NDBM_File.pm type=file
+c:\tlperl526\lib/Memoize/SDBM_File.pm type=file
+c:\tlperl526\lib/Memoize/Storable.pm type=file
+c:\tlperl526\lib/Module/CoreList.pm type=file
+c:\tlperl526\lib/Module/CoreList.pod type=file
+c:\tlperl526\lib/Module/CoreList/TieHashDelta.pm type=file
+c:\tlperl526\lib/Module/CoreList/Utils.pm type=file
+c:\tlperl526\lib/Module/Load.pm type=file
+c:\tlperl526\lib/Module/Load/Conditional.pm type=file
+c:\tlperl526\lib/Module/Loaded.pm type=file
+c:\tlperl526\lib/Module/Metadata.pm type=file
+c:\tlperl526\lib/NEXT.pm type=file
+c:\tlperl526\lib/Net/Cmd.pm type=file
+c:\tlperl526\lib/Net/Config.pm type=file
+c:\tlperl526\lib/Net/Domain.pm type=file
+c:\tlperl526\lib/Net/FTP.pm type=file
+c:\tlperl526\lib/Net/FTP/A.pm type=file
+c:\tlperl526\lib/Net/FTP/E.pm type=file
+c:\tlperl526\lib/Net/FTP/I.pm type=file
+c:\tlperl526\lib/Net/FTP/L.pm type=file
+c:\tlperl526\lib/Net/FTP/dataconn.pm type=file
+c:\tlperl526\lib/Net/NNTP.pm type=file
+c:\tlperl526\lib/Net/Netrc.pm type=file
+c:\tlperl526\lib/Net/POP3.pm type=file
+c:\tlperl526\lib/Net/Ping.pm type=file
+c:\tlperl526\lib/Net/SMTP.pm type=file
+c:\tlperl526\lib/Net/Time.pm type=file
+c:\tlperl526\lib/Net/hostent.pm type=file
+c:\tlperl526\lib/Net/libnetFAQ.pod type=file
+c:\tlperl526\lib/Net/netent.pm type=file
+c:\tlperl526\lib/Net/protoent.pm type=file
+c:\tlperl526\lib/Net/servent.pm type=file
+c:\tlperl526\lib/O.pm type=file
+c:\tlperl526\lib/Opcode.pm type=file
+c:\tlperl526\lib/POSIX.pm type=file
+c:\tlperl526\lib/POSIX.pod type=file
+c:\tlperl526\lib/Params/Check.pm type=file
+c:\tlperl526\lib/Parse/CPAN/Meta.pm type=file
+c:\tlperl526\lib/Perl/OSType.pm type=file
+c:\tlperl526\lib/PerlIO.pm type=file
+c:\tlperl526\lib/PerlIO/encoding.pm type=file
+c:\tlperl526\lib/PerlIO/mmap.pm type=file
+c:\tlperl526\lib/PerlIO/scalar.pm type=file
+c:\tlperl526\lib/PerlIO/via.pm type=file
+c:\tlperl526\lib/PerlIO/via/QuotedPrint.pm type=file
+c:\tlperl526\lib/Pod/Checker.pm type=file
+c:\tlperl526\lib/Pod/Escapes.pm type=file
+c:\tlperl526\lib/Pod/Find.pm type=file
+c:\tlperl526\lib/Pod/Functions.pm type=file
+c:\tlperl526\lib/Pod/Html.pm type=file
+c:\tlperl526\lib/Pod/InputObjects.pm type=file
+c:\tlperl526\lib/Pod/Man.pm type=file
+c:\tlperl526\lib/Pod/ParseLink.pm type=file
+c:\tlperl526\lib/Pod/ParseUtils.pm type=file
+c:\tlperl526\lib/Pod/Parser.pm type=file
+c:\tlperl526\lib/Pod/Perldoc.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/BaseTo.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/GetOptsOO.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToANSI.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToChecker.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToMan.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToNroff.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToPod.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToRtf.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToTerm.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToText.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToTk.pm type=file
+c:\tlperl526\lib/Pod/Perldoc/ToXml.pm type=file
+c:\tlperl526\lib/Pod/PlainText.pm type=file
+c:\tlperl526\lib/Pod/Select.pm type=file
+c:\tlperl526\lib/Pod/Simple.pm type=file
+c:\tlperl526\lib/Pod/Simple.pod type=file
+c:\tlperl526\lib/Pod/Simple/BlackBox.pm type=file
+c:\tlperl526\lib/Pod/Simple/Checker.pm type=file
+c:\tlperl526\lib/Pod/Simple/Debug.pm type=file
+c:\tlperl526\lib/Pod/Simple/DumpAsText.pm type=file
+c:\tlperl526\lib/Pod/Simple/DumpAsXML.pm type=file
+c:\tlperl526\lib/Pod/Simple/HTML.pm type=file
+c:\tlperl526\lib/Pod/Simple/HTMLBatch.pm type=file
+c:\tlperl526\lib/Pod/Simple/HTMLLegacy.pm type=file
+c:\tlperl526\lib/Pod/Simple/LinkSection.pm type=file
+c:\tlperl526\lib/Pod/Simple/Methody.pm type=file
+c:\tlperl526\lib/Pod/Simple/Progress.pm type=file
+c:\tlperl526\lib/Pod/Simple/PullParser.pm type=file
+c:\tlperl526\lib/Pod/Simple/PullParserEndToken.pm type=file
+c:\tlperl526\lib/Pod/Simple/PullParserStartToken.pm type=file
+c:\tlperl526\lib/Pod/Simple/PullParserTextToken.pm type=file
+c:\tlperl526\lib/Pod/Simple/PullParserToken.pm type=file
+c:\tlperl526\lib/Pod/Simple/RTF.pm type=file
+c:\tlperl526\lib/Pod/Simple/Search.pm type=file
+c:\tlperl526\lib/Pod/Simple/SimpleTree.pm type=file
+c:\tlperl526\lib/Pod/Simple/Subclassing.pod type=file
+c:\tlperl526\lib/Pod/Simple/Text.pm type=file
+c:\tlperl526\lib/Pod/Simple/TextContent.pm type=file
+c:\tlperl526\lib/Pod/Simple/TiedOutFH.pm type=file
+c:\tlperl526\lib/Pod/Simple/Transcode.pm type=file
+c:\tlperl526\lib/Pod/Simple/TranscodeDumb.pm type=file
+c:\tlperl526\lib/Pod/Simple/TranscodeSmart.pm type=file
+c:\tlperl526\lib/Pod/Simple/XHTML.pm type=file
+c:\tlperl526\lib/Pod/Simple/XMLOutStream.pm type=file
+c:\tlperl526\lib/Pod/Text.pm type=file
+c:\tlperl526\lib/Pod/Text/Color.pm type=file
+c:\tlperl526\lib/Pod/Text/Overstrike.pm type=file
+c:\tlperl526\lib/Pod/Text/Termcap.pm type=file
+c:\tlperl526\lib/Pod/Usage.pm type=file
+c:\tlperl526\lib/SDBM_File.pm type=file
+c:\tlperl526\lib/Safe.pm type=file
+c:\tlperl526\lib/Scalar/Util.pm type=file
+c:\tlperl526\lib/Search/Dict.pm type=file
+c:\tlperl526\lib/SelectSaver.pm type=file
+c:\tlperl526\lib/SelfLoader.pm type=file
+c:\tlperl526\lib/Socket.pm type=file
+c:\tlperl526\lib/Storable.pm type=file
+c:\tlperl526\lib/Sub/Util.pm type=file
+c:\tlperl526\lib/Symbol.pm type=file
+c:\tlperl526\lib/Sys/Hostname.pm type=file
+c:\tlperl526\lib/TAP/Base.pm type=file
+c:\tlperl526\lib/TAP/Formatter/Base.pm type=file
+c:\tlperl526\lib/TAP/Formatter/Color.pm type=file
+c:\tlperl526\lib/TAP/Formatter/Console.pm type=file
+c:\tlperl526\lib/TAP/Formatter/Console/ParallelSession.pm type=file
+c:\tlperl526\lib/TAP/Formatter/Console/Session.pm type=file
+c:\tlperl526\lib/TAP/Formatter/File.pm type=file
+c:\tlperl526\lib/TAP/Formatter/File/Session.pm type=file
+c:\tlperl526\lib/TAP/Formatter/Session.pm type=file
+c:\tlperl526\lib/TAP/Harness.pm type=file
+c:\tlperl526\lib/TAP/Harness/Beyond.pod type=file
+c:\tlperl526\lib/TAP/Harness/Env.pm type=file
+c:\tlperl526\lib/TAP/Object.pm type=file
+c:\tlperl526\lib/TAP/Parser.pm type=file
+c:\tlperl526\lib/TAP/Parser/Aggregator.pm type=file
+c:\tlperl526\lib/TAP/Parser/Grammar.pm type=file
+c:\tlperl526\lib/TAP/Parser/Iterator.pm type=file
+c:\tlperl526\lib/TAP/Parser/Iterator/Array.pm type=file
+c:\tlperl526\lib/TAP/Parser/Iterator/Process.pm type=file
+c:\tlperl526\lib/TAP/Parser/Iterator/Stream.pm type=file
+c:\tlperl526\lib/TAP/Parser/IteratorFactory.pm type=file
+c:\tlperl526\lib/TAP/Parser/Multiplexer.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result/Bailout.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result/Comment.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result/Plan.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result/Pragma.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result/Test.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result/Unknown.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result/Version.pm type=file
+c:\tlperl526\lib/TAP/Parser/Result/YAML.pm type=file
+c:\tlperl526\lib/TAP/Parser/ResultFactory.pm type=file
+c:\tlperl526\lib/TAP/Parser/Scheduler.pm type=file
+c:\tlperl526\lib/TAP/Parser/Scheduler/Job.pm type=file
+c:\tlperl526\lib/TAP/Parser/Scheduler/Spinner.pm type=file
+c:\tlperl526\lib/TAP/Parser/Source.pm type=file
+c:\tlperl526\lib/TAP/Parser/SourceHandler.pm type=file
+c:\tlperl526\lib/TAP/Parser/SourceHandler/Executable.pm type=file
+c:\tlperl526\lib/TAP/Parser/SourceHandler/File.pm type=file
+c:\tlperl526\lib/TAP/Parser/SourceHandler/Handle.pm type=file
+c:\tlperl526\lib/TAP/Parser/SourceHandler/Perl.pm type=file
+c:\tlperl526\lib/TAP/Parser/SourceHandler/RawTAP.pm type=file
+c:\tlperl526\lib/TAP/Parser/YAMLish/Reader.pm type=file
+c:\tlperl526\lib/TAP/Parser/YAMLish/Writer.pm type=file
+c:\tlperl526\lib/Term/ANSIColor.pm type=file
+c:\tlperl526\lib/Term/Cap.pm type=file
+c:\tlperl526\lib/Term/Complete.pm type=file
+c:\tlperl526\lib/Term/ReadLine.pm type=file
+c:\tlperl526\lib/Test.pm type=file
+c:\tlperl526\lib/Test/Builder.pm type=file
+c:\tlperl526\lib/Test/Builder/Formatter.pm type=file
+c:\tlperl526\lib/Test/Builder/IO/Scalar.pm type=file
+c:\tlperl526\lib/Test/Builder/Module.pm type=file
+c:\tlperl526\lib/Test/Builder/Tester.pm type=file
+c:\tlperl526\lib/Test/Builder/Tester/Color.pm type=file
+c:\tlperl526\lib/Test/Builder/TodoDiag.pm type=file
+c:\tlperl526\lib/Test/Harness.pm type=file
+c:\tlperl526\lib/Test/More.pm type=file
+c:\tlperl526\lib/Test/Simple.pm type=file
+c:\tlperl526\lib/Test/Tester.pm type=file
+c:\tlperl526\lib/Test/Tester/Capture.pm type=file
+c:\tlperl526\lib/Test/Tester/CaptureRunner.pm type=file
+c:\tlperl526\lib/Test/Tester/Delegate.pm type=file
+c:\tlperl526\lib/Test/Tutorial.pod type=file
+c:\tlperl526\lib/Test/use/ok.pm type=file
+c:\tlperl526\lib/Test2.pm type=file
+c:\tlperl526\lib/Test2/API.pm type=file
+c:\tlperl526\lib/Test2/API/Breakage.pm type=file
+c:\tlperl526\lib/Test2/API/Context.pm type=file
+c:\tlperl526\lib/Test2/API/Instance.pm type=file
+c:\tlperl526\lib/Test2/API/Stack.pm type=file
+c:\tlperl526\lib/Test2/Event.pm type=file
+c:\tlperl526\lib/Test2/Event/Bail.pm type=file
+c:\tlperl526\lib/Test2/Event/Diag.pm type=file
+c:\tlperl526\lib/Test2/Event/Encoding.pm type=file
+c:\tlperl526\lib/Test2/Event/Exception.pm type=file
+c:\tlperl526\lib/Test2/Event/Generic.pm type=file
+c:\tlperl526\lib/Test2/Event/Info.pm type=file
+c:\tlperl526\lib/Test2/Event/Note.pm type=file
+c:\tlperl526\lib/Test2/Event/Ok.pm type=file
+c:\tlperl526\lib/Test2/Event/Plan.pm type=file
+c:\tlperl526\lib/Test2/Event/Skip.pm type=file
+c:\tlperl526\lib/Test2/Event/Subtest.pm type=file
+c:\tlperl526\lib/Test2/Event/TAP/Version.pm type=file
+c:\tlperl526\lib/Test2/Event/Waiting.pm type=file
+c:\tlperl526\lib/Test2/Formatter.pm type=file
+c:\tlperl526\lib/Test2/Formatter/TAP.pm type=file
+c:\tlperl526\lib/Test2/Hub.pm type=file
+c:\tlperl526\lib/Test2/Hub/Interceptor.pm type=file
+c:\tlperl526\lib/Test2/Hub/Interceptor/Terminator.pm type=file
+c:\tlperl526\lib/Test2/Hub/Subtest.pm type=file
+c:\tlperl526\lib/Test2/IPC.pm type=file
+c:\tlperl526\lib/Test2/IPC/Driver.pm type=file
+c:\tlperl526\lib/Test2/IPC/Driver/Files.pm type=file
+c:\tlperl526\lib/Test2/Tools/Tiny.pm type=file
+c:\tlperl526\lib/Test2/Transition.pod type=file
+c:\tlperl526\lib/Test2/Util.pm type=file
+c:\tlperl526\lib/Test2/Util/ExternalMeta.pm type=file
+c:\tlperl526\lib/Test2/Util/HashBase.pm type=file
+c:\tlperl526\lib/Test2/Util/Trace.pm type=file
+c:\tlperl526\lib/Text/Abbrev.pm type=file
+c:\tlperl526\lib/Text/Balanced.pm type=file
+c:\tlperl526\lib/Text/ParseWords.pm type=file
+c:\tlperl526\lib/Text/Tabs.pm type=file
+c:\tlperl526\lib/Text/Wrap.pm type=file
+c:\tlperl526\lib/Thread.pm type=file
+c:\tlperl526\lib/Thread/Queue.pm type=file
+c:\tlperl526\lib/Thread/Semaphore.pm type=file
+c:\tlperl526\lib/Tie/Array.pm type=file
+c:\tlperl526\lib/Tie/File.pm type=file
+c:\tlperl526\lib/Tie/Handle.pm type=file
+c:\tlperl526\lib/Tie/Hash.pm type=file
+c:\tlperl526\lib/Tie/Hash/NamedCapture.pm type=file
+c:\tlperl526\lib/Tie/Memoize.pm type=file
+c:\tlperl526\lib/Tie/RefHash.pm type=file
+c:\tlperl526\lib/Tie/Scalar.pm type=file
+c:\tlperl526\lib/Tie/StdHandle.pm type=file
+c:\tlperl526\lib/Tie/SubstrHash.pm type=file
+c:\tlperl526\lib/Time/HiRes.pm type=file
+c:\tlperl526\lib/Time/Local.pm type=file
+c:\tlperl526\lib/Time/Piece.pm type=file
+c:\tlperl526\lib/Time/Seconds.pm type=file
+c:\tlperl526\lib/Time/gmtime.pm type=file
+c:\tlperl526\lib/Time/localtime.pm type=file
+c:\tlperl526\lib/Time/tm.pm type=file
+c:\tlperl526\lib/UNIVERSAL.pm type=file
+c:\tlperl526\lib/Unicode/Collate.pm type=file
+c:\tlperl526\lib/Unicode/Collate/CJK/Big5.pm type=file
+c:\tlperl526\lib/Unicode/Collate/CJK/GB2312.pm type=file
+c:\tlperl526\lib/Unicode/Collate/CJK/JISX0208.pm type=file
+c:\tlperl526\lib/Unicode/Collate/CJK/Korean.pm type=file
+c:\tlperl526\lib/Unicode/Collate/CJK/Pinyin.pm type=file
+c:\tlperl526\lib/Unicode/Collate/CJK/Stroke.pm type=file
+c:\tlperl526\lib/Unicode/Collate/CJK/Zhuyin.pm type=file
+c:\tlperl526\lib/Unicode/Collate/Locale.pm type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/af.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ar.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/as.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/az.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/be.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/bn.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ca.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/cs.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/cy.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/da.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/de_at_ph.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/de_phone.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ee.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/eo.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/es.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/es_trad.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/et.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/fa.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/fi.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/fi_phone.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/fil.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/fo.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/fr_ca.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/gu.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ha.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/haw.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/he.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/hi.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/hr.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/hu.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/hy.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ig.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/is.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ja.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/kk.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/kl.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/kn.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ko.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/kok.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ln.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/lt.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/lv.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/mk.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ml.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/mr.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/mt.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/nb.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/nn.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/nso.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/om.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/or.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/pa.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/pl.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ro.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/sa.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/se.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/si.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/si_dict.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/sk.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/sl.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/sq.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/sr.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/sv.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/sv_refo.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ta.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/te.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/th.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/tn.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/to.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/tr.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ug_cyrl.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/uk.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/ur.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/vi.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/vo.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/wae.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/wo.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/yo.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/zh.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/zh_big5.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/zh_gb.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/zh_pin.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/zh_strk.pl type=file
+c:\tlperl526\lib/Unicode/Collate/Locale/zh_zhu.pl type=file
+c:\tlperl526\lib/Unicode/Collate/allkeys.txt type=file
+c:\tlperl526\lib/Unicode/Collate/keys.txt type=file
+c:\tlperl526\lib/Unicode/Normalize.pm type=file
+c:\tlperl526\lib/Unicode/UCD.pm type=file
+c:\tlperl526\lib/User/grent.pm type=file
+c:\tlperl526\lib/User/pwent.pm type=file
+c:\tlperl526\lib/Win32.pm type=file
+c:\tlperl526\lib/Win32API/File.pm type=file
+c:\tlperl526\lib/Win32API/File/cFile.pc type=file
+c:\tlperl526\lib/Win32CORE.pm type=file
+c:\tlperl526\lib/XSLoader.pm type=file
+c:\tlperl526\lib/_charnames.pm type=file
+c:\tlperl526\lib/arybase.pm type=file
+c:\tlperl526\lib/attributes.pm type=file
+c:\tlperl526\lib/auto/B/B.dll type=file
+c:\tlperl526\lib/auto/Compress/Raw/Bzip2/Bzip2.dll type=file
+c:\tlperl526\lib/auto/Compress/Raw/Zlib/Zlib.dll type=file
+c:\tlperl526\lib/auto/Cwd/Cwd.dll type=file
+c:\tlperl526\lib/auto/Data/Dumper/Dumper.dll type=file
+c:\tlperl526\lib/auto/Devel/Peek/Peek.dll type=file
+c:\tlperl526\lib/auto/Digest/MD5/MD5.dll type=file
+c:\tlperl526\lib/auto/Digest/SHA/SHA.dll type=file
+c:\tlperl526\lib/auto/Encode/Byte/Byte.dll type=file
+c:\tlperl526\lib/auto/Encode/CN/CN.dll type=file
+c:\tlperl526\lib/auto/Encode/EBCDIC/EBCDIC.dll type=file
+c:\tlperl526\lib/auto/Encode/Encode.dll type=file
+c:\tlperl526\lib/auto/Encode/JP/JP.dll type=file
+c:\tlperl526\lib/auto/Encode/KR/KR.dll type=file
+c:\tlperl526\lib/auto/Encode/Symbol/Symbol.dll type=file
+c:\tlperl526\lib/auto/Encode/TW/TW.dll type=file
+c:\tlperl526\lib/auto/Encode/Unicode/Unicode.dll type=file
+c:\tlperl526\lib/auto/Fcntl/Fcntl.dll type=file
+c:\tlperl526\lib/auto/File/DosGlob/DosGlob.dll type=file
+c:\tlperl526\lib/auto/File/Glob/Glob.dll type=file
+c:\tlperl526\lib/auto/Filter/Util/Call/Call.dll type=file
+c:\tlperl526\lib/auto/Hash/Util/FieldHash/FieldHash.dll type=file
+c:\tlperl526\lib/auto/Hash/Util/Util.dll type=file
+c:\tlperl526\lib/auto/IO/IO.dll type=file
+c:\tlperl526\lib/auto/List/Util/Util.dll type=file
+c:\tlperl526\lib/auto/MIME/Base64/Base64.dll type=file
+c:\tlperl526\lib/auto/Math/BigInt/FastCalc/FastCalc.dll type=file
+c:\tlperl526\lib/auto/Opcode/Opcode.dll type=file
+c:\tlperl526\lib/auto/POSIX/POSIX.dll type=file
+c:\tlperl526\lib/auto/PerlIO/encoding/encoding.dll type=file
+c:\tlperl526\lib/auto/PerlIO/mmap/mmap.dll type=file
+c:\tlperl526\lib/auto/PerlIO/scalar/scalar.dll type=file
+c:\tlperl526\lib/auto/PerlIO/via/via.dll type=file
+c:\tlperl526\lib/auto/SDBM_File/SDBM_File.dll type=file
+c:\tlperl526\lib/auto/Socket/Socket.dll type=file
+c:\tlperl526\lib/auto/Storable/Storable.dll type=file
+c:\tlperl526\lib/auto/Sys/Hostname/Hostname.dll type=file
+c:\tlperl526\lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll type=file
+c:\tlperl526\lib/auto/Time/HiRes/HiRes.dll type=file
+c:\tlperl526\lib/auto/Time/Piece/Piece.dll type=file
+c:\tlperl526\lib/auto/Unicode/Collate/Collate.dll type=file
+c:\tlperl526\lib/auto/Unicode/Normalize/Normalize.dll type=file
+c:\tlperl526\lib/auto/Win32/Win32.dll type=file
+c:\tlperl526\lib/auto/Win32API/File/File.dll type=file
+c:\tlperl526\lib/auto/Win32CORE/extralibs.ld type=file
+c:\tlperl526\lib/auto/arybase/arybase.dll type=file
+c:\tlperl526\lib/auto/attributes/attributes.dll type=file
+c:\tlperl526\lib/auto/mro/mro.dll type=file
+c:\tlperl526\lib/auto/re/re.dll type=file
+c:\tlperl526\lib/auto/threads/shared/shared.dll type=file
+c:\tlperl526\lib/auto/threads/threads.dll type=file
+c:\tlperl526\lib/autodie.pm type=file
+c:\tlperl526\lib/autodie/Scope/Guard.pm type=file
+c:\tlperl526\lib/autodie/Scope/GuardStack.pm type=file
+c:\tlperl526\lib/autodie/Util.pm type=file
+c:\tlperl526\lib/autodie/exception.pm type=file
+c:\tlperl526\lib/autodie/exception/system.pm type=file
+c:\tlperl526\lib/autodie/hints.pm type=file
+c:\tlperl526\lib/autodie/skip.pm type=file
+c:\tlperl526\lib/autouse.pm type=file
+c:\tlperl526\lib/base.pm type=file
+c:\tlperl526\lib/bigint.pm type=file
+c:\tlperl526\lib/bignum.pm type=file
+c:\tlperl526\lib/bigrat.pm type=file
+c:\tlperl526\lib/blib.pm type=file
+c:\tlperl526\lib/bytes.pm type=file
+c:\tlperl526\lib/bytes_heavy.pl type=file
+c:\tlperl526\lib/charnames.pm type=file
+c:\tlperl526\lib/constant.pm type=file
+c:\tlperl526\lib/deprecate.pm type=file
+c:\tlperl526\lib/diagnostics.pm type=file
+c:\tlperl526\lib/dumpvar.pl type=file
+c:\tlperl526\lib/encoding.pm type=file
+c:\tlperl526\lib/encoding/warnings.pm type=file
+c:\tlperl526\lib/experimental.pm type=file
+c:\tlperl526\lib/feature.pm type=file
+c:\tlperl526\lib/fields.pm type=file
+c:\tlperl526\lib/filetest.pm type=file
+c:\tlperl526\lib/if.pm type=file
+c:\tlperl526\lib/integer.pm type=file
+c:\tlperl526\lib/less.pm type=file
+c:\tlperl526\lib/lib.pm type=file
+c:\tlperl526\lib/locale.pm type=file
+c:\tlperl526\lib/meta_notation.pm type=file
+c:\tlperl526\lib/mro.pm type=file
+c:\tlperl526\lib/ok.pm type=file
+c:\tlperl526\lib/open.pm type=file
+c:\tlperl526\lib/ops.pm type=file
+c:\tlperl526\lib/overload.pm type=file
+c:\tlperl526\lib/overload/numbers.pm type=file
+c:\tlperl526\lib/overloading.pm type=file
+c:\tlperl526\lib/parent.pm type=file
+c:\tlperl526\lib/perl5db.pl type=file
+c:\tlperl526\lib/perlfaq.pm type=file
+c:\tlperl526\lib/pods/perl.pod type=file
+c:\tlperl526\lib/pods/perl5004delta.pod type=file
+c:\tlperl526\lib/pods/perl5005delta.pod type=file
+c:\tlperl526\lib/pods/perl5100delta.pod type=file
+c:\tlperl526\lib/pods/perl5101delta.pod type=file
+c:\tlperl526\lib/pods/perl5120delta.pod type=file
+c:\tlperl526\lib/pods/perl5121delta.pod type=file
+c:\tlperl526\lib/pods/perl5122delta.pod type=file
+c:\tlperl526\lib/pods/perl5123delta.pod type=file
+c:\tlperl526\lib/pods/perl5124delta.pod type=file
+c:\tlperl526\lib/pods/perl5125delta.pod type=file
+c:\tlperl526\lib/pods/perl5140delta.pod type=file
+c:\tlperl526\lib/pods/perl5141delta.pod type=file
+c:\tlperl526\lib/pods/perl5142delta.pod type=file
+c:\tlperl526\lib/pods/perl5143delta.pod type=file
+c:\tlperl526\lib/pods/perl5144delta.pod type=file
+c:\tlperl526\lib/pods/perl5160delta.pod type=file
+c:\tlperl526\lib/pods/perl5161delta.pod type=file
+c:\tlperl526\lib/pods/perl5162delta.pod type=file
+c:\tlperl526\lib/pods/perl5163delta.pod type=file
+c:\tlperl526\lib/pods/perl5180delta.pod type=file
+c:\tlperl526\lib/pods/perl5181delta.pod type=file
+c:\tlperl526\lib/pods/perl5182delta.pod type=file
+c:\tlperl526\lib/pods/perl5184delta.pod type=file
+c:\tlperl526\lib/pods/perl5200delta.pod type=file
+c:\tlperl526\lib/pods/perl5201delta.pod type=file
+c:\tlperl526\lib/pods/perl5202delta.pod type=file
+c:\tlperl526\lib/pods/perl5203delta.pod type=file
+c:\tlperl526\lib/pods/perl5220delta.pod type=file
+c:\tlperl526\lib/pods/perl5221delta.pod type=file
+c:\tlperl526\lib/pods/perl5222delta.pod type=file
+c:\tlperl526\lib/pods/perl5223delta.pod type=file
+c:\tlperl526\lib/pods/perl5224delta.pod type=file
+c:\tlperl526\lib/pods/perl5240delta.pod type=file
+c:\tlperl526\lib/pods/perl5241delta.pod type=file
+c:\tlperl526\lib/pods/perl5242delta.pod type=file
+c:\tlperl526\lib/pods/perl5260delta.pod type=file
+c:\tlperl526\lib/pods/perl5261delta.pod type=file
+c:\tlperl526\lib/pods/perl561delta.pod type=file
+c:\tlperl526\lib/pods/perl56delta.pod type=file
+c:\tlperl526\lib/pods/perl581delta.pod type=file
+c:\tlperl526\lib/pods/perl582delta.pod type=file
+c:\tlperl526\lib/pods/perl583delta.pod type=file
+c:\tlperl526\lib/pods/perl584delta.pod type=file
+c:\tlperl526\lib/pods/perl585delta.pod type=file
+c:\tlperl526\lib/pods/perl586delta.pod type=file
+c:\tlperl526\lib/pods/perl587delta.pod type=file
+c:\tlperl526\lib/pods/perl588delta.pod type=file
+c:\tlperl526\lib/pods/perl589delta.pod type=file
+c:\tlperl526\lib/pods/perl58delta.pod type=file
+c:\tlperl526\lib/pods/perlaix.pod type=file
+c:\tlperl526\lib/pods/perlamiga.pod type=file
+c:\tlperl526\lib/pods/perlandroid.pod type=file
+c:\tlperl526\lib/pods/perlapi.pod type=file
+c:\tlperl526\lib/pods/perlapio.pod type=file
+c:\tlperl526\lib/pods/perlartistic.pod type=file
+c:\tlperl526\lib/pods/perlbook.pod type=file
+c:\tlperl526\lib/pods/perlboot.pod type=file
+c:\tlperl526\lib/pods/perlbot.pod type=file
+c:\tlperl526\lib/pods/perlbs2000.pod type=file
+c:\tlperl526\lib/pods/perlcall.pod type=file
+c:\tlperl526\lib/pods/perlce.pod type=file
+c:\tlperl526\lib/pods/perlcheat.pod type=file
+c:\tlperl526\lib/pods/perlclib.pod type=file
+c:\tlperl526\lib/pods/perlcn.pod type=file
+c:\tlperl526\lib/pods/perlcommunity.pod type=file
+c:\tlperl526\lib/pods/perlcygwin.pod type=file
+c:\tlperl526\lib/pods/perldata.pod type=file
+c:\tlperl526\lib/pods/perldbmfilter.pod type=file
+c:\tlperl526\lib/pods/perldebguts.pod type=file
+c:\tlperl526\lib/pods/perldebtut.pod type=file
+c:\tlperl526\lib/pods/perldebug.pod type=file
+c:\tlperl526\lib/pods/perldelta.pod type=file
+c:\tlperl526\lib/pods/perldeprecation.pod type=file
+c:\tlperl526\lib/pods/perldiag.pod type=file
+c:\tlperl526\lib/pods/perldoc.pod type=file
+c:\tlperl526\lib/pods/perldos.pod type=file
+c:\tlperl526\lib/pods/perldsc.pod type=file
+c:\tlperl526\lib/pods/perldtrace.pod type=file
+c:\tlperl526\lib/pods/perlebcdic.pod type=file
+c:\tlperl526\lib/pods/perlembed.pod type=file
+c:\tlperl526\lib/pods/perlexperiment.pod type=file
+c:\tlperl526\lib/pods/perlfaq.pod type=file
+c:\tlperl526\lib/pods/perlfaq1.pod type=file
+c:\tlperl526\lib/pods/perlfaq2.pod type=file
+c:\tlperl526\lib/pods/perlfaq3.pod type=file
+c:\tlperl526\lib/pods/perlfaq4.pod type=file
+c:\tlperl526\lib/pods/perlfaq5.pod type=file
+c:\tlperl526\lib/pods/perlfaq6.pod type=file
+c:\tlperl526\lib/pods/perlfaq7.pod type=file
+c:\tlperl526\lib/pods/perlfaq8.pod type=file
+c:\tlperl526\lib/pods/perlfaq9.pod type=file
+c:\tlperl526\lib/pods/perlfilter.pod type=file
+c:\tlperl526\lib/pods/perlfork.pod type=file
+c:\tlperl526\lib/pods/perlform.pod type=file
+c:\tlperl526\lib/pods/perlfreebsd.pod type=file
+c:\tlperl526\lib/pods/perlfunc.pod type=file
+c:\tlperl526\lib/pods/perlgit.pod type=file
+c:\tlperl526\lib/pods/perlglossary.pod type=file
+c:\tlperl526\lib/pods/perlgpl.pod type=file
+c:\tlperl526\lib/pods/perlguts.pod type=file
+c:\tlperl526\lib/pods/perlhack.pod type=file
+c:\tlperl526\lib/pods/perlhacktips.pod type=file
+c:\tlperl526\lib/pods/perlhacktut.pod type=file
+c:\tlperl526\lib/pods/perlhaiku.pod type=file
+c:\tlperl526\lib/pods/perlhist.pod type=file
+c:\tlperl526\lib/pods/perlhpux.pod type=file
+c:\tlperl526\lib/pods/perlhurd.pod type=file
+c:\tlperl526\lib/pods/perlintern.pod type=file
+c:\tlperl526\lib/pods/perlinterp.pod type=file
+c:\tlperl526\lib/pods/perlintro.pod type=file
+c:\tlperl526\lib/pods/perliol.pod type=file
+c:\tlperl526\lib/pods/perlipc.pod type=file
+c:\tlperl526\lib/pods/perlirix.pod type=file
+c:\tlperl526\lib/pods/perljp.pod type=file
+c:\tlperl526\lib/pods/perlko.pod type=file
+c:\tlperl526\lib/pods/perllexwarn.pod type=file
+c:\tlperl526\lib/pods/perllinux.pod type=file
+c:\tlperl526\lib/pods/perllocale.pod type=file
+c:\tlperl526\lib/pods/perllol.pod type=file
+c:\tlperl526\lib/pods/perlmacos.pod type=file
+c:\tlperl526\lib/pods/perlmacosx.pod type=file
+c:\tlperl526\lib/pods/perlmod.pod type=file
+c:\tlperl526\lib/pods/perlmodinstall.pod type=file
+c:\tlperl526\lib/pods/perlmodlib.pod type=file
+c:\tlperl526\lib/pods/perlmodstyle.pod type=file
+c:\tlperl526\lib/pods/perlmroapi.pod type=file
+c:\tlperl526\lib/pods/perlnetware.pod type=file
+c:\tlperl526\lib/pods/perlnewmod.pod type=file
+c:\tlperl526\lib/pods/perlnumber.pod type=file
+c:\tlperl526\lib/pods/perlobj.pod type=file
+c:\tlperl526\lib/pods/perlootut.pod type=file
+c:\tlperl526\lib/pods/perlop.pod type=file
+c:\tlperl526\lib/pods/perlopenbsd.pod type=file
+c:\tlperl526\lib/pods/perlopentut.pod type=file
+c:\tlperl526\lib/pods/perlos2.pod type=file
+c:\tlperl526\lib/pods/perlos390.pod type=file
+c:\tlperl526\lib/pods/perlos400.pod type=file
+c:\tlperl526\lib/pods/perlpacktut.pod type=file
+c:\tlperl526\lib/pods/perlperf.pod type=file
+c:\tlperl526\lib/pods/perlplan9.pod type=file
+c:\tlperl526\lib/pods/perlpod.pod type=file
+c:\tlperl526\lib/pods/perlpodspec.pod type=file
+c:\tlperl526\lib/pods/perlpodstyle.pod type=file
+c:\tlperl526\lib/pods/perlpolicy.pod type=file
+c:\tlperl526\lib/pods/perlport.pod type=file
+c:\tlperl526\lib/pods/perlpragma.pod type=file
+c:\tlperl526\lib/pods/perlqnx.pod type=file
+c:\tlperl526\lib/pods/perlre.pod type=file
+c:\tlperl526\lib/pods/perlreapi.pod type=file
+c:\tlperl526\lib/pods/perlrebackslash.pod type=file
+c:\tlperl526\lib/pods/perlrecharclass.pod type=file
+c:\tlperl526\lib/pods/perlref.pod type=file
+c:\tlperl526\lib/pods/perlreftut.pod type=file
+c:\tlperl526\lib/pods/perlreguts.pod type=file
+c:\tlperl526\lib/pods/perlrepository.pod type=file
+c:\tlperl526\lib/pods/perlrequick.pod type=file
+c:\tlperl526\lib/pods/perlreref.pod type=file
+c:\tlperl526\lib/pods/perlretut.pod type=file
+c:\tlperl526\lib/pods/perlriscos.pod type=file
+c:\tlperl526\lib/pods/perlrun.pod type=file
+c:\tlperl526\lib/pods/perlsec.pod type=file
+c:\tlperl526\lib/pods/perlsolaris.pod type=file
+c:\tlperl526\lib/pods/perlsource.pod type=file
+c:\tlperl526\lib/pods/perlstyle.pod type=file
+c:\tlperl526\lib/pods/perlsub.pod type=file
+c:\tlperl526\lib/pods/perlsymbian.pod type=file
+c:\tlperl526\lib/pods/perlsyn.pod type=file
+c:\tlperl526\lib/pods/perlsynology.pod type=file
+c:\tlperl526\lib/pods/perlthrtut.pod type=file
+c:\tlperl526\lib/pods/perltie.pod type=file
+c:\tlperl526\lib/pods/perltoc.pod type=file
+c:\tlperl526\lib/pods/perltodo.pod type=file
+c:\tlperl526\lib/pods/perltooc.pod type=file
+c:\tlperl526\lib/pods/perltoot.pod type=file
+c:\tlperl526\lib/pods/perltrap.pod type=file
+c:\tlperl526\lib/pods/perltru64.pod type=file
+c:\tlperl526\lib/pods/perltw.pod type=file
+c:\tlperl526\lib/pods/perlunicode.pod type=file
+c:\tlperl526\lib/pods/perlunicook.pod type=file
+c:\tlperl526\lib/pods/perlunifaq.pod type=file
+c:\tlperl526\lib/pods/perluniintro.pod type=file
+c:\tlperl526\lib/pods/perluniprops.pod type=file
+c:\tlperl526\lib/pods/perlunitut.pod type=file
+c:\tlperl526\lib/pods/perlutil.pod type=file
+c:\tlperl526\lib/pods/perlvar.pod type=file
+c:\tlperl526\lib/pods/perlvms.pod type=file
+c:\tlperl526\lib/pods/perlvos.pod type=file
+c:\tlperl526\lib/pods/perlwin32.pod type=file
+c:\tlperl526\lib/pods/perlxs.pod type=file
+c:\tlperl526\lib/pods/perlxstut.pod type=file
+c:\tlperl526\lib/pods/perlxstypemap.pod type=file
+c:\tlperl526\lib/re.pm type=file
+c:\tlperl526\lib/sigtrap.pm type=file
+c:\tlperl526\lib/sort.pm type=file
+c:\tlperl526\lib/strict.pm type=file
+c:\tlperl526\lib/subs.pm type=file
+c:\tlperl526\lib/threads.pm type=file
+c:\tlperl526\lib/threads/shared.pm type=file
+c:\tlperl526\lib/unicore/Blocks.txt type=file
+c:\tlperl526\lib/unicore/CombiningClass.pl type=file
+c:\tlperl526\lib/unicore/Decomposition.pl type=file
+c:\tlperl526\lib/unicore/Heavy.pl type=file
+c:\tlperl526\lib/unicore/Name.pl type=file
+c:\tlperl526\lib/unicore/Name.pm type=file
+c:\tlperl526\lib/unicore/NamedSequences.txt type=file
+c:\tlperl526\lib/unicore/SpecialCasing.txt type=file
+c:\tlperl526\lib/unicore/To/Age.pl type=file
+c:\tlperl526\lib/unicore/To/Bc.pl type=file
+c:\tlperl526\lib/unicore/To/Bmg.pl type=file
+c:\tlperl526\lib/unicore/To/Bpb.pl type=file
+c:\tlperl526\lib/unicore/To/Bpt.pl type=file
+c:\tlperl526\lib/unicore/To/Cf.pl type=file
+c:\tlperl526\lib/unicore/To/Digit.pl type=file
+c:\tlperl526\lib/unicore/To/Ea.pl type=file
+c:\tlperl526\lib/unicore/To/Fold.pl type=file
+c:\tlperl526\lib/unicore/To/GCB.pl type=file
+c:\tlperl526\lib/unicore/To/Gc.pl type=file
+c:\tlperl526\lib/unicore/To/Hst.pl type=file
+c:\tlperl526\lib/unicore/To/InPC.pl type=file
+c:\tlperl526\lib/unicore/To/InSC.pl type=file
+c:\tlperl526\lib/unicore/To/Isc.pl type=file
+c:\tlperl526\lib/unicore/To/Jg.pl type=file
+c:\tlperl526\lib/unicore/To/Jt.pl type=file
+c:\tlperl526\lib/unicore/To/Lb.pl type=file
+c:\tlperl526\lib/unicore/To/Lc.pl type=file
+c:\tlperl526\lib/unicore/To/Lower.pl type=file
+c:\tlperl526\lib/unicore/To/NFCQC.pl type=file
+c:\tlperl526\lib/unicore/To/NFDQC.pl type=file
+c:\tlperl526\lib/unicore/To/NFKCCF.pl type=file
+c:\tlperl526\lib/unicore/To/NFKCQC.pl type=file
+c:\tlperl526\lib/unicore/To/NFKDQC.pl type=file
+c:\tlperl526\lib/unicore/To/Na1.pl type=file
+c:\tlperl526\lib/unicore/To/NameAlia.pl type=file
+c:\tlperl526\lib/unicore/To/Nt.pl type=file
+c:\tlperl526\lib/unicore/To/Nv.pl type=file
+c:\tlperl526\lib/unicore/To/PerlDeci.pl type=file
+c:\tlperl526\lib/unicore/To/SB.pl type=file
+c:\tlperl526\lib/unicore/To/Sc.pl type=file
+c:\tlperl526\lib/unicore/To/Scx.pl type=file
+c:\tlperl526\lib/unicore/To/Tc.pl type=file
+c:\tlperl526\lib/unicore/To/Title.pl type=file
+c:\tlperl526\lib/unicore/To/Uc.pl type=file
+c:\tlperl526\lib/unicore/To/Upper.pl type=file
+c:\tlperl526\lib/unicore/To/WB.pl type=file
+c:\tlperl526\lib/unicore/To/_PerlLB.pl type=file
+c:\tlperl526\lib/unicore/To/_PerlWB.pl type=file
+c:\tlperl526\lib/unicore/UCD.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/NA.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V11.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V20.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V30.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V31.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V32.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V40.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V41.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V50.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V51.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V52.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V60.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V61.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V70.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V80.pl type=file
+c:\tlperl526\lib/unicore/lib/Age/V90.pl type=file
+c:\tlperl526\lib/unicore/lib/Alpha/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/AL.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/AN.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/B.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/BN.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/CS.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/EN.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/ES.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/ET.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/L.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/NSM.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/ON.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/R.pl type=file
+c:\tlperl526\lib/unicore/lib/Bc/WS.pl type=file
+c:\tlperl526\lib/unicore/lib/BidiC/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/BidiM/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Blk/NB.pl type=file
+c:\tlperl526\lib/unicore/lib/Bpt/C.pl type=file
+c:\tlperl526\lib/unicore/lib/Bpt/N.pl type=file
+c:\tlperl526\lib/unicore/lib/Bpt/O.pl type=file
+c:\tlperl526\lib/unicore/lib/CE/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/CI/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/CWCF/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/CWCM/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/CWKCF/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/CWL/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/CWT/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/CWU/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Cased/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/A.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/AR.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/ATAR.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/B.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/BR.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/DB.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/NK.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/NR.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/OV.pl type=file
+c:\tlperl526\lib/unicore/lib/Ccc/VR.pl type=file
+c:\tlperl526\lib/unicore/lib/CompEx/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/DI/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Dash/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Dep/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Dia/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Com.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Enc.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Fin.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Font.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Init.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Iso.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Med.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Nar.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Nb.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/NonCanon.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Sqr.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Sub.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Sup.pl type=file
+c:\tlperl526\lib/unicore/lib/Dt/Vert.pl type=file
+c:\tlperl526\lib/unicore/lib/Ea/A.pl type=file
+c:\tlperl526\lib/unicore/lib/Ea/H.pl type=file
+c:\tlperl526\lib/unicore/lib/Ea/N.pl type=file
+c:\tlperl526\lib/unicore/lib/Ea/Na.pl type=file
+c:\tlperl526\lib/unicore/lib/Ea/W.pl type=file
+c:\tlperl526\lib/unicore/lib/Ext/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/GCB/CN.pl type=file
+c:\tlperl526\lib/unicore/lib/GCB/EB.pl type=file
+c:\tlperl526\lib/unicore/lib/GCB/EX.pl type=file
+c:\tlperl526\lib/unicore/lib/GCB/LV.pl type=file
+c:\tlperl526\lib/unicore/lib/GCB/LVT.pl type=file
+c:\tlperl526\lib/unicore/lib/GCB/PP.pl type=file
+c:\tlperl526\lib/unicore/lib/GCB/SM.pl type=file
+c:\tlperl526\lib/unicore/lib/GCB/XX.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/C.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Cf.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Cn.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/L.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/LC.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Ll.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Lm.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Lo.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Lu.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/M.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Mc.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Me.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Mn.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/N.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Nd.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Nl.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/No.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/P.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Pc.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Pd.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Pe.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Pf.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Pi.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Po.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Ps.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/S.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Sc.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Sk.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Sm.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/So.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Z.pl type=file
+c:\tlperl526\lib/unicore/lib/Gc/Zs.pl type=file
+c:\tlperl526\lib/unicore/lib/GrBase/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Hex/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Hst/NA.pl type=file
+c:\tlperl526\lib/unicore/lib/Hyphen/T.pl type=file
+c:\tlperl526\lib/unicore/lib/IDC/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/IDS/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Ideo/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/In/2_0.pl type=file
+c:\tlperl526\lib/unicore/lib/In/2_1.pl type=file
+c:\tlperl526\lib/unicore/lib/In/3_0.pl type=file
+c:\tlperl526\lib/unicore/lib/In/3_1.pl type=file
+c:\tlperl526\lib/unicore/lib/In/3_2.pl type=file
+c:\tlperl526\lib/unicore/lib/In/4_0.pl type=file
+c:\tlperl526\lib/unicore/lib/In/4_1.pl type=file
+c:\tlperl526\lib/unicore/lib/In/5_0.pl type=file
+c:\tlperl526\lib/unicore/lib/In/5_1.pl type=file
+c:\tlperl526\lib/unicore/lib/In/5_2.pl type=file
+c:\tlperl526\lib/unicore/lib/In/6_0.pl type=file
+c:\tlperl526\lib/unicore/lib/In/6_1.pl type=file
+c:\tlperl526\lib/unicore/lib/In/6_2.pl type=file
+c:\tlperl526\lib/unicore/lib/In/6_3.pl type=file
+c:\tlperl526\lib/unicore/lib/In/7_0.pl type=file
+c:\tlperl526\lib/unicore/lib/In/8_0.pl type=file
+c:\tlperl526\lib/unicore/lib/In/9_0.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/Bottom.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/Left.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/LeftAndR.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/NA.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/Overstru.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/Right.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/Top.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/TopAndBo.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/TopAndL2.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/TopAndLe.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/TopAndRi.pl type=file
+c:\tlperl526\lib/unicore/lib/InPC/VisualOr.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Avagraha.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Bindu.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Cantilla.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Consona2.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Consona3.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Consona4.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Consona5.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Consona6.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Consonan.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Invisibl.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Nukta.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Number.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Other.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/PureKill.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Syllable.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/ToneMark.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Virama.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Visarga.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/Vowel.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/VowelDep.pl type=file
+c:\tlperl526\lib/unicore/lib/InSC/VowelInd.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Ain.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Alef.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Beh.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Dal.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/FarsiYeh.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Feh.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Gaf.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Hah.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Kaf.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Lam.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/NoJoinin.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Qaf.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Reh.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Sad.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Seen.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Waw.pl type=file
+c:\tlperl526\lib/unicore/lib/Jg/Yeh.pl type=file
+c:\tlperl526\lib/unicore/lib/Jt/C.pl type=file
+c:\tlperl526\lib/unicore/lib/Jt/D.pl type=file
+c:\tlperl526\lib/unicore/lib/Jt/R.pl type=file
+c:\tlperl526\lib/unicore/lib/Jt/T.pl type=file
+c:\tlperl526\lib/unicore/lib/Jt/U.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/AI.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/AL.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/BA.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/BB.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/CJ.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/CL.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/CM.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/EB.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/EX.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/GL.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/ID.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/IN.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/IS.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/NS.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/OP.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/PO.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/PR.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/QU.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/SA.pl type=file
+c:\tlperl526\lib/unicore/lib/Lb/XX.pl type=file
+c:\tlperl526\lib/unicore/lib/Lower/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Math/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/NFCQC/M.pl type=file
+c:\tlperl526\lib/unicore/lib/NFCQC/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/NFDQC/N.pl type=file
+c:\tlperl526\lib/unicore/lib/NFDQC/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/NFKCQC/N.pl type=file
+c:\tlperl526\lib/unicore/lib/NFKCQC/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/NFKDQC/N.pl type=file
+c:\tlperl526\lib/unicore/lib/NFKDQC/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Nt/Di.pl type=file
+c:\tlperl526\lib/unicore/lib/Nt/None.pl type=file
+c:\tlperl526\lib/unicore/lib/Nt/Nu.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/0.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/1.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/10.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/100.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/1000.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/10000.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/11.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/12.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/13.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/14.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/15.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/16.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/17.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/18.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/19.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/1_16.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/1_2.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/1_3.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/1_4.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/1_8.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/2.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/20.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/200.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/2_3.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/3.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/30.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/300.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/3_16.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/3_4.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/4.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/40.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/400.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/5.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/50.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/500.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/5000.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/50000.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/6.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/60.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/600.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/7.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/70.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/700.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/8.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/80.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/800.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/9.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/90.pl type=file
+c:\tlperl526\lib/unicore/lib/Nv/900.pl type=file
+c:\tlperl526\lib/unicore/lib/PCM/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/PatSyn/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/Alnum.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/Assigned.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/Blank.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/Graph.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/PerlWord.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/PosixPun.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/Print.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/SpacePer.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/Title.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/Word.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/XPosixPu.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlAny.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlCh2.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlCha.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlFol.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlIDC.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlIDS.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlNch.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlPat.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlPr2.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlPro.pl type=file
+c:\tlperl526\lib/unicore/lib/Perl/_PerlQuo.pl type=file
+c:\tlperl526\lib/unicore/lib/QMark/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/AT.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/CL.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/EX.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/FO.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/LE.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/LO.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/NU.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/SC.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/ST.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/Sp.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/UP.pl type=file
+c:\tlperl526\lib/unicore/lib/SB/XX.pl type=file
+c:\tlperl526\lib/unicore/lib/SD/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/STerm/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Arab.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Armn.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Beng.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Bhks.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Cham.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Cprt.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Cyrl.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Deva.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Dupl.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Ethi.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Geor.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Glag.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Gran.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Grek.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Gujr.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Guru.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Han.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Hang.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Hebr.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Hira.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Hmng.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Kana.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Khar.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Khmr.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Knda.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Lana.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Lao.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Latn.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Limb.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Linb.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Mlym.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Mong.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Mult.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Orya.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Sinh.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Talu.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Taml.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Telu.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Tibt.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Xsux.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Zinh.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Zyyy.pl type=file
+c:\tlperl526\lib/unicore/lib/Sc/Zzzz.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Adlm.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Arab.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Armn.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Beng.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Bopo.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Cakm.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Copt.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Cprt.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Cyrl.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Deva.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Dupl.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Geor.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Glag.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Gran.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Grek.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Gujr.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Guru.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Han.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Hang.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Hira.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Kana.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Knda.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Latn.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Limb.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Lina.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Linb.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Mlym.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Mong.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Mult.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Mymr.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Orya.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Phlp.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Shrd.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Sind.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Sinh.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Syrc.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Tagb.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Takr.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Taml.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Telu.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Thaa.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Tirh.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Yi.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Zinh.pl type=file
+c:\tlperl526\lib/unicore/lib/Scx/Zyyy.pl type=file
+c:\tlperl526\lib/unicore/lib/Term/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/UIdeo/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/Upper/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/EX.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/Extend.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/FO.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/HL.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/KA.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/LE.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/MB.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/ML.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/MN.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/NU.pl type=file
+c:\tlperl526\lib/unicore/lib/WB/XX.pl type=file
+c:\tlperl526\lib/unicore/lib/XIDC/Y.pl type=file
+c:\tlperl526\lib/unicore/lib/XIDS/Y.pl type=file
+c:\tlperl526\lib/unicore/version type=file
+c:\tlperl526\lib/utf8.pm type=file
+c:\tlperl526\lib/utf8_heavy.pl type=file
+c:\tlperl526\lib/vars.pm type=file
+c:\tlperl526\lib/version.pm type=file
+c:\tlperl526\lib/version.pod type=file
+c:\tlperl526\lib/version/Internals.pod type=file
+c:\tlperl526\lib/version/regex.pm type=file
+c:\tlperl526\lib/vmsish.pm type=file
+c:\tlperl526\lib/warnings.pm type=file
+c:\tlperl526\lib/warnings/register.pm type=file
diff --git a/Master/tlpkg/tlperl/lib/App/Cpan.pm b/Master/tlpkg/tlperl/lib/App/Cpan.pm
index 94607d9b0f2..3ddcbe8ac55 100644
--- a/Master/tlpkg/tlperl/lib/App/Cpan.pm
+++ b/Master/tlpkg/tlperl/lib/App/Cpan.pm
@@ -6,7 +6,7 @@ use vars qw($VERSION);
use if $] < 5.008 => 'IO::Scalar';
-$VERSION = '1.63_01';
+$VERSION = '1.66';
=head1 NAME
@@ -34,7 +34,7 @@ App::Cpan - easily interact with CPAN from the command line
cpan
# without arguments, but some switches
- cpan [-ahpruvACDLOP]
+ cpan [-ahpruvACDLOPX]
=head1 DESCRIPTION
@@ -104,7 +104,7 @@ distribution.
Print a help message and exit. When you specify C<-h>, it ignores all
of the other options and arguments.
-=item -i
+=item -i module [ module ... ]
Install the specified modules. With no other switches, this switch
is implied.
@@ -164,7 +164,12 @@ session.
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-=item -t
+=item -s
+
+Drop in the CPAN.pm shell. This command does this automatically if you don't
+specify any arguments.
+
+=item -t module [ module ... ]
Run a `make test` on the specified modules.
@@ -192,6 +197,16 @@ UNIMPLEMENTED
Turn on cpan warnings. This checks various things, like directory permissions,
and tells you about problems you might have.
+=item -x module [ module ... ]
+
+Find close matches to the named modules that you think you might have
+mistyped. This requires the optional installation of Text::Levenshtein or
+Text::Levenshtein::Damerau.
+
+=item -X
+
+Dump all the namespaces to standard output.
+
=back
=head2 Examples
@@ -299,7 +314,7 @@ BEGIN { # most of this should be in methods
use vars qw( @META_OPTIONS $Default %CPAN_METHODS @CPAN_OPTIONS @option_order
%Method_table %Method_table_index );
-@META_OPTIONS = qw( h v V I g G M: C A D O l L a r p P j: J w T);
+@META_OPTIONS = qw( h v V I g G M: C A D O l L a r p P j: J w x X );
$Default = 'default';
@@ -312,6 +327,7 @@ $Default = 'default';
't' => 'test',
'u' => 'upgrade',
'T' => 'notest',
+ 's' => 'shell',
);
@CPAN_OPTIONS = grep { $_ ne $Default } sort keys %CPAN_METHODS;
@@ -332,6 +348,7 @@ sub GOOD_EXIT () { 0 }
h => [ \&_print_help, NO_ARGS, GOOD_EXIT, 'Printing help' ],
v => [ \&_print_version, NO_ARGS, GOOD_EXIT, 'Printing version' ],
V => [ \&_print_details, NO_ARGS, GOOD_EXIT, 'Printing detailed version' ],
+ X => [ \&_list_all_namespaces, NO_ARGS, GOOD_EXIT, 'Listing all namespaces' ],
# options that affect other options
j => [ \&_load_config, ARGS, GOOD_EXIT, 'Use specified config file' ],
@@ -343,8 +360,8 @@ sub GOOD_EXIT () { 0 }
w => [ \&_turn_on_warnings, NO_ARGS, GOOD_EXIT, 'Turning on warnings' ],
# options that do their one thing
- g => [ \&_download, NO_ARGS, GOOD_EXIT, 'Download the latest distro' ],
- G => [ \&_gitify, NO_ARGS, GOOD_EXIT, 'Down and gitify the latest distro' ],
+ g => [ \&_download, ARGS, GOOD_EXIT, 'Download the latest distro' ],
+ G => [ \&_gitify, ARGS, GOOD_EXIT, 'Down and gitify the latest distro' ],
C => [ \&_show_Changes, ARGS, GOOD_EXIT, 'Showing Changes file' ],
A => [ \&_show_Author, ARGS, GOOD_EXIT, 'Showing Author' ],
@@ -358,7 +375,9 @@ sub GOOD_EXIT () { 0 }
r => [ \&_recompile, NO_ARGS, GOOD_EXIT, 'Recompiling' ],
u => [ \&_upgrade, NO_ARGS, GOOD_EXIT, 'Running `make test`' ],
+ 's' => [ \&_shell, NO_ARGS, GOOD_EXIT, 'Running `make test`' ],
+ 'x' => [ \&_guess_namespace, ARGS, GOOD_EXIT, 'Guessing namespaces' ],
c => [ \&_default, ARGS, GOOD_EXIT, 'Running `make clean`' ],
f => [ \&_default, ARGS, GOOD_EXIT, 'Installing with force' ],
i => [ \&_default, ARGS, GOOD_EXIT, 'Running `make install`' ],
@@ -510,7 +529,7 @@ sub run
last OPTION;
}
- $logger->info( "$description -- ignoring other arguments" )
+ $logger->info( "[$option] $description -- ignoring other arguments" )
if( @ARGV && ! $takes_args );
$return_value = $sub->( \ @ARGV, $options );
@@ -533,12 +552,12 @@ sub DESTROY { 1 }
# load a module without searching the default entry for the current
# directory
sub _safe_load_module {
- my $name = shift;
+ my $name = shift;
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
+ local @INC = @INC;
+ pop @INC if $INC[-1] eq '.';
- eval "require $name; 1";
+ eval "require $name; 1";
}
sub _init_logger
@@ -547,7 +566,7 @@ sub _init_logger
unless( $log4perl_loaded )
{
- print "Loading internal null logger. Install Log::Log4perl for logging messages\n";
+ print STDERR "Loading internal null logger. Install Log::Log4perl for logging messages\n";
$logger = Local::Null::Logger->new;
return $logger;
}
@@ -608,6 +627,12 @@ sub _default
foreach my $arg ( @$args )
{
+ # check the argument and perhaps capture typos
+ my $module = _expand_module( $arg ) or do {
+ $logger->error( "Skipping $arg because I couldn't find a matching namespace." );
+ next;
+ };
+
_clear_cpanpm_output();
$action->( $arg );
@@ -796,8 +821,7 @@ HERE
$CPAN::Frontend->myprint("\n");
}
- my $mirrors = CPAN::Mirrors->new( );
- $mirrors->parse_mirrored_by( File::Spec->catfile($CPAN::Config->{keep_source_where},'MIRRORED.BY') );
+ my $mirrors = CPAN::Mirrors->new( _mirror_file() );
my @continents = $mirrors->find_best_continents;
my @mirrors = $mirrors->get_mirrors_by_continents( $continents[0] );
@@ -918,9 +942,7 @@ sub _is_pingable_scheme {
$uri->scheme eq 'file'
}
-sub _find_good_mirrors {
- require CPAN::Mirrors;
-
+sub _mirror_file {
my $file = do {
my $file = 'MIRRORED.BY';
my $local_path = File::Spec->catfile(
@@ -933,7 +955,12 @@ sub _find_good_mirrors {
$local_path;
}
};
- my $mirrors = CPAN::Mirrors->new( $file );
+ }
+
+sub _find_good_mirrors {
+ require CPAN::Mirrors;
+
+ my $mirrors = CPAN::Mirrors->new( _mirror_file() );
my @mirrors = $mirrors->best_mirrors(
how_many => 5,
@@ -1006,7 +1033,7 @@ sub _load_local_lib # -I
my $rc = _safe_load_module("local::lib");
unless( $rc ) {
- $logger->die( "Could not load local::lib" );
+ $logger->logdie( "Could not load local::lib" );
}
local::lib->import;
@@ -1018,7 +1045,7 @@ sub _use_these_mirrors # -M
{
$logger->debug( "Setting per session mirrors" );
unless( $_[0] ) {
- $logger->die( "The -M switch requires a comma-separated list of mirrors" );
+ $logger->logdie( "The -M switch requires a comma-separated list of mirrors" );
}
$CPAN::Config->{urllist} = [ split /,/, $_[0] ];
@@ -1055,6 +1082,15 @@ sub _upgrade
return HEY_IT_WORKED;
}
+sub _shell
+ {
+ $logger->info( "Dropping into shell" );
+
+ CPAN::shell();
+
+ return HEY_IT_WORKED;
+ }
+
sub _load_config # -j
{
my $file = shift || '';
@@ -1113,14 +1149,17 @@ sub _download
my %paths;
- foreach my $module ( @$args )
- {
- $logger->info( "Checking $module" );
- my $path = CPAN::Shell->expand( "Module", $module )->cpan_file;
+ foreach my $arg ( @$args ) {
+ $logger->info( "Checking $arg" );
+
+ my $module = _expand_module( $arg ) or next;
+ my $path = $module->cpan_file;
$logger->debug( "Inst file would be $path\n" );
- $paths{$module} = _get_file( _make_path( $path ) );
+ $paths{$arg} = _get_file( _make_path( $path ) );
+
+ $logger->info( "Downloaded [$arg] to [$paths{$module}]" );
}
return \%paths;
@@ -1160,16 +1199,14 @@ sub _gitify
my $starting_dir = cwd();
- foreach my $module ( @$args )
+ foreach my $arg ( @$args )
{
- $logger->info( "Checking $module" );
- my $path = CPAN::Shell->expand( "Module", $module )->cpan_file;
-
- my $store_paths = _download( [ $module ] );
- $logger->debug( "gitify Store path is $store_paths->{$module}" );
- my $dirname = dirname( $store_paths->{$module} );
+ $logger->info( "Checking $arg" );
+ my $store_paths = _download( [ $arg ] );
+ $logger->debug( "gitify Store path is $store_paths->{$arg}" );
+ my $dirname = dirname( $store_paths->{$arg} );
- my $ae = Archive::Extract->new( archive => $store_paths->{$module} );
+ my $ae = Archive::Extract->new( archive => $store_paths->{$arg} );
$ae->extract( to => $dirname );
chdir $ae->extract_path;
@@ -1197,7 +1234,8 @@ sub _show_Changes
{
$logger->info( "Checking $arg\n" );
- my $module = eval { CPAN::Shell->expand( "Module", $arg ) };
+ my $module = _expand_module( $arg ) or next;
+
my $out = _get_cpanpm_output();
next unless eval { $module->inst_file };
@@ -1244,7 +1282,8 @@ sub _show_Author
foreach my $arg ( @$args )
{
- my $module = CPAN::Shell->expand( "Module", $arg );
+ my $module = _expand_module( $arg ) or next;
+
unless( $module )
{
$logger->info( "Didn't find a $arg module, so no author!" );
@@ -1268,7 +1307,7 @@ sub _show_Details
foreach my $arg ( @$args )
{
- my $module = CPAN::Shell->expand( "Module", $arg );
+ my $module = _expand_module( $arg ) or next;
my $author = CPAN::Shell->expand( "Author", $module->userid );
next unless $module->userid;
@@ -1290,16 +1329,26 @@ sub _show_Details
return HEY_IT_WORKED;
}
+BEGIN {
+my $modules;
+sub _get_all_namespaces
+ {
+ return $modules if $modules;
+ $modules = [ map { $_->id } CPAN::Shell->expand( "Module", "/./" ) ];
+ }
+}
+
sub _show_out_of_date
{
- my @modules = CPAN::Shell->expand( "Module", "/./" );
+ my $modules = _get_all_namespaces();
printf "%-40s %6s %6s\n", "Module Name", "Local", "CPAN";
print "-" x 73, "\n";
- foreach my $module ( @modules )
+ foreach my $module ( @$modules )
{
- next unless $module->inst_file;
+ next unless $module = _expand_module($module);
+ next unless $module->inst_file;
next if $module->uptodate;
printf "%-40s %.4f %.4f\n",
$module->id,
@@ -1316,10 +1365,9 @@ sub _show_author_mods
my %hash = map { lc $_, 1 } @$args;
- my @modules = CPAN::Shell->expand( "Module", "/./" );
+ my $modules = _get_all_namespaces();
- foreach my $module ( @modules )
- {
+ foreach my $module ( @$modules ) {
next unless exists $hash{ lc $module->userid };
print $module->id, "\n";
}
@@ -1439,6 +1487,109 @@ sub _path_to_module
return $module_name;
}
+
+sub _expand_module
+ {
+ my( $module ) = @_;
+
+ my $expanded = CPAN::Shell->expandany( $module );
+ return $expanded if $expanded;
+ $expanded = CPAN::Shell->expand( "Module", $module );
+ unless( defined $expanded ) {
+ $logger->error( "Could not expand [$module]. Check the module name." );
+ my $threshold = (
+ grep { int }
+ sort { length $a <=> length $b }
+ length($module)/4, 4
+ )[0];
+
+ my $guesses = _guess_at_module_name( $module, $threshold );
+ if( defined $guesses and @$guesses ) {
+ $logger->info( "Perhaps you meant one of these:" );
+ foreach my $guess ( @$guesses ) {
+ $logger->info( "\t$guess" );
+ }
+ }
+ return;
+ }
+
+ return $expanded;
+ }
+
+my $guessers = [
+ [ qw( Text::Levenshtein::XS distance 7 ) ],
+ [ qw( Text::Levenshtein::Damerau::XS xs_edistance 7 ) ],
+
+ [ qw( Text::Levenshtein distance 7 ) ],
+ [ qw( Text::Levenshtein::Damerau::PP pp_edistance 7 ) ],
+
+ ];
+
+# for -x
+sub _guess_namespace
+ {
+ my $args = shift;
+
+ foreach my $arg ( @$args )
+ {
+ $logger->debug( "Checking $arg" );
+ my $guesses = _guess_at_module_name( $arg );
+
+ foreach my $guess ( @$guesses ) {
+ print $guess, "\n";
+ }
+ }
+
+ return HEY_IT_WORKED;
+ }
+
+sub _list_all_namespaces {
+ my $modules = _get_all_namespaces();
+
+ foreach my $module ( @$modules ) {
+ print $module, "\n";
+ }
+ }
+
+BEGIN {
+my $distance;
+sub _guess_at_module_name
+ {
+ my( $target, $threshold ) = @_;
+
+ unless( defined $distance ) {
+ foreach my $try ( @$guessers ) {
+ my $can_guess = eval "require $try->[0]; 1" or next;
+
+ no strict 'refs';
+ $distance = \&{ join "::", @$try[0,1] };
+ $threshold ||= $try->[2];
+ }
+ }
+
+ unless( $distance ) {
+ my $modules = join ", ", map { $_->[0] } @$guessers;
+ substr $modules, rindex( $modules, ',' ), 1, ', and';
+
+ $logger->info( "I can suggest names if you install one of $modules" );
+ return;
+ }
+
+ my $modules = _get_all_namespaces();
+ $logger->info( "Checking " . @$modules . " namespaces for close match suggestions" );
+
+ my %guesses;
+ foreach my $guess ( @$modules ) {
+ my $distance = $distance->( $target, $guess );
+ next if $distance > $threshold;
+ $guesses{$guess} = $distance;
+ }
+
+ my @guesses = sort { $guesses{$a} <=> $guesses{$b} } keys %guesses;
+ return [ grep { defined } @guesses[0..9] ];
+ }
+}
+
1;
=back
@@ -1471,8 +1622,6 @@ report them to the user.
* Check then exit
-* no test option
-
=head1 BUGS
* none noted
@@ -1508,7 +1657,7 @@ brian d foy, C<< <bdfoy@cpan.org> >>
=head1 COPYRIGHT
-Copyright (c) 2001-2014, brian d foy, All Rights Reserved.
+Copyright (c) 2001-2015, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/App/Prove.pm b/Master/tlpkg/tlperl/lib/App/Prove.pm
index 32eb59c2a5c..e7c0561f7b8 100644
--- a/Master/tlpkg/tlperl/lib/App/Prove.pm
+++ b/Master/tlpkg/tlperl/lib/App/Prove.pm
@@ -18,11 +18,11 @@ App::Prove - Implements the C<prove> command.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/App/Prove/State.pm b/Master/tlpkg/tlperl/lib/App/Prove/State.pm
index e352fb3f4a5..924e8979fe4 100644
--- a/Master/tlpkg/tlperl/lib/App/Prove/State.pm
+++ b/Master/tlpkg/tlperl/lib/App/Prove/State.pm
@@ -25,11 +25,11 @@ App::Prove::State - State storage for the C<prove> command.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm b/Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm
index 931e52b1d95..cc47111d7a8 100644
--- a/Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm
+++ b/Master/tlpkg/tlperl/lib/App/Prove/State/Result.pm
@@ -14,11 +14,11 @@ App::Prove::State::Result - Individual test suite results.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm b/Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm
index 4819ed82183..fa2dc2e630e 100644
--- a/Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm
+++ b/Master/tlpkg/tlperl/lib/App/Prove/State/Result/Test.pm
@@ -9,11 +9,11 @@ App::Prove::State::Result::Test - Individual test results.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/Archive/Tar.pm b/Master/tlpkg/tlperl/lib/Archive/Tar.pm
index 6a047a32d6c..d63e586317e 100644
--- a/Master/tlpkg/tlperl/lib/Archive/Tar.pm
+++ b/Master/tlpkg/tlperl/lib/Archive/Tar.pm
@@ -31,7 +31,7 @@ use vars qw[$DEBUG $error $VERSION $WARN $FOLLOW_SYMLINK $CHOWN $CHMOD
$DEBUG = 0;
$WARN = 1;
$FOLLOW_SYMLINK = 0;
-$VERSION = "2.04_01";
+$VERSION = "2.24";
$CHOWN = 1;
$CHMOD = 1;
$SAME_PERMISSIONS = $> == 0 ? 1 : 0;
@@ -263,7 +263,7 @@ sub _get_handle {
### different reader/writer modules, different error vars... sigh
if( MODE_READ->($mode) ) {
- $fh = IO::Uncompress::Bunzip2->new( $file ) or do {
+ $fh = IO::Uncompress::Bunzip2->new( $file, MultiStream => 1 ) or do {
$self->_error( qq[Could not read '$file': ] .
$IO::Uncompress::Bunzip2::Bunzip2Error
);
diff --git a/Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm b/Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
index f9557e90197..6488d653f98 100644
--- a/Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
+++ b/Master/tlpkg/tlperl/lib/Archive/Tar/Constant.pm
@@ -3,7 +3,7 @@ package Archive::Tar::Constant;
BEGIN {
require Exporter;
- $VERSION = '2.04_01';
+ $VERSION = '2.24';
@ISA = qw[Exporter];
require Time::Local if $^O eq "MacOS";
@@ -11,6 +11,9 @@ BEGIN {
@EXPORT = Archive::Tar::Constant->_list_consts( __PACKAGE__ );
+use strict;
+use warnings;
+
use constant FILE => 0;
use constant HARDLINK => 1;
use constant SYMLINK => 2;
@@ -50,7 +53,7 @@ use constant MODE => do { 0666 & (0777 & ~umask) };
use constant STRIP_MODE => sub { shift() & 0777 };
use constant CHECK_SUM => " ";
-use constant UNPACK => 'A100 A8 A8 A8 a12 A12 A8 A1 A100 A6 A2 A32 A32 A8 A8 A155 x12'; # cdrake - size must be a12 - not A12 - or else screws up huge file sizes (>8gb)
+use constant UNPACK => 'a100 a8 a8 a8 a12 a12 a8 a1 a100 A6 a2 a32 a32 a8 a8 a155 x12'; # cdrake - size must be a12 - not A12 - or else screws up huge file sizes (>8gb)
use constant PACK => 'a100 a8 a8 a8 a12 a12 A8 a1 a100 a6 a2 a32 a32 a8 a8 a155 x12';
use constant NAME_LENGTH => 100;
use constant PREFIX_LENGTH => 155;
diff --git a/Master/tlpkg/tlperl/lib/Archive/Tar/File.pm b/Master/tlpkg/tlperl/lib/Archive/Tar/File.pm
index 3ecad56fab2..dc4c4c77a01 100644
--- a/Master/tlpkg/tlperl/lib/Archive/Tar/File.pm
+++ b/Master/tlpkg/tlperl/lib/Archive/Tar/File.pm
@@ -13,7 +13,7 @@ use Archive::Tar::Constant;
use vars qw[@ISA $VERSION];
#@ISA = qw[Archive::Tar];
-$VERSION = '2.04_01';
+$VERSION = '2.24';
### set value to 1 to oct() it during the unpack ###
diff --git a/Master/tlpkg/tlperl/lib/B.pm b/Master/tlpkg/tlperl/lib/B.pm
index 5c1e5997b83..5ea96fa2211 100644
--- a/Master/tlpkg/tlperl/lib/B.pm
+++ b/Master/tlpkg/tlperl/lib/B.pm
@@ -15,7 +15,7 @@ require Exporter;
# walkoptree comes from B.xs
BEGIN {
- $B::VERSION = '1.62';
+ $B::VERSION = '1.68';
@B::EXPORT_OK = ();
# Our BOOT code needs $VERSION set, and will append to @EXPORT_OK.
diff --git a/Master/tlpkg/tlperl/lib/B/Concise.pm b/Master/tlpkg/tlperl/lib/B/Concise.pm
index 311e0e738a9..315e00a4b67 100644
--- a/Master/tlpkg/tlperl/lib/B/Concise.pm
+++ b/Master/tlpkg/tlperl/lib/B/Concise.pm
@@ -14,7 +14,7 @@ use warnings; # uses #3 and #4, since warnings uses Carp
use Exporter (); # use #5
-our $VERSION = "0.996";
+our $VERSION = "0.999";
our @ISA = qw(Exporter);
our @EXPORT_OK = qw( set_style set_style_standard add_callback
concise_subref concise_cv concise_main
@@ -28,6 +28,8 @@ our %EXPORT_TAGS =
# use #6
use B qw(class ppname main_start main_root main_cv cstring svref_2object
SVf_IOK SVf_NOK SVf_POK SVf_IVisUV SVf_FAKE OPf_KIDS OPf_SPECIAL
+ OPf_STACKED
+ OPpSPLIT_ASSIGN OPpSPLIT_LEX
CVf_ANON PAD_FAKELEX_ANON PAD_FAKELEX_MULTI SVf_ROK);
my %style =
@@ -595,31 +597,43 @@ require B::Op_private;
our %hints; # used to display each COP's op_hints values
# strict refs, subs, vars
-@hints{2,512,1024,32,64,128} = ('$', '&', '*', 'x$', 'x&', 'x*');
+@hints{0x2,0x200,0x400,0x20,0x40,0x80} = ('$', '&', '*', 'x$', 'x&', 'x*');
# integers, locale, bytes
-@hints{1,4,8,16} = ('i', 'l', 'b');
+@hints{0x1,0x4,0x8,0x10} = ('i', 'l', 'b');
# block scope, localise %^H, $^OPEN (in), $^OPEN (out)
-@hints{256,131072,262144,524288} = ('{','%','<','>');
+@hints{0x100,0x20000,0x40000,0x80000} = ('{','%','<','>');
# overload new integer, float, binary, string, re
-@hints{4096,8192,16384,32768,65536} = ('I', 'F', 'B', 'S', 'R');
+@hints{0x1000,0x2000,0x4000,0x8000,0x10000} = ('I', 'F', 'B', 'S', 'R');
# taint and eval
-@hints{1048576,2097152} = ('T', 'E');
-# filetest access, UTF-8
-@hints{4194304,8388608} = ('X', 'U');
+@hints{0x100000,0x200000} = ('T', 'E');
+# filetest access, use utf8, unicode_strings feature
+@hints{0x400000,0x800000,0x800} = ('X', 'U', 'us');
-sub _flags {
- my($hash, $x) = @_;
+# pick up the feature hints constants.
+# Note that we're relying on non-API parts of feature.pm,
+# but its less naughty than just blindly copying those constants into
+# this src file.
+#
+require feature;
+
+sub hints_flags {
+ my($x) = @_;
my @s;
- for my $flag (sort {$b <=> $a} keys %$hash) {
- if ($hash->{$flag} and $x & $flag and $x >= $flag) {
+ for my $flag (sort {$b <=> $a} keys %hints) {
+ if ($hints{$flag} and $x & $flag and $x >= $flag) {
$x -= $flag;
- push @s, $hash->{$flag};
+ push @s, $hints{$flag};
}
}
- push @s, $x if $x;
+ if ($x & $feature::hint_mask) {
+ push @s, "fea=" . (($x & $feature::hint_mask) >> $feature::hint_shift);
+ $x &= ~$feature::hint_mask;
+ }
+ push @s, sprintf "0x%x", $x if $x;
return join(",", @s);
}
+
# return a string like 'LVINTRO,1' for the op $name with op_private
# value $x
@@ -677,11 +691,6 @@ sub private_flags {
return join ",", @flags;
}
-sub hints_flags {
- my($x) = @_;
- _flags(\%hints, $x);
-}
-
sub concise_sv {
my($sv, $hr, $preferpv) = @_;
$hr->{svclass} = class($sv);
@@ -755,6 +764,50 @@ sub fill_srclines {
$srclines{$fullnm} = \@l;
}
+# Given a pad target, return the pad var's name and cop range /
+# fakeness, or failing that, its target number.
+# e.g.
+# ('$i', '$i:5,7')
+# or
+# ('$i', '$i:fake:a')
+# or
+# ('t5', 't5')
+
+sub padname {
+ my ($targ) = @_;
+
+ my ($targarg, $targarglife);
+ my $padname = (($curcv->PADLIST->ARRAY)[0]->ARRAY)[$targ];
+ if (defined $padname and class($padname) ne "SPECIAL" and
+ $padname->LEN)
+ {
+ $targarg = $padname->PVX;
+ if ($padname->FLAGS & SVf_FAKE) {
+ # These changes relate to the jumbo closure fix.
+ # See changes 19939 and 20005
+ my $fake = '';
+ $fake .= 'a'
+ if $padname->PARENT_FAKELEX_FLAGS & PAD_FAKELEX_ANON;
+ $fake .= 'm'
+ if $padname->PARENT_FAKELEX_FLAGS & PAD_FAKELEX_MULTI;
+ $fake .= ':' . $padname->PARENT_PAD_INDEX
+ if $curcv->CvFLAGS & CVf_ANON;
+ $targarglife = "$targarg:FAKE:$fake";
+ }
+ else {
+ my $intro = $padname->COP_SEQ_RANGE_LOW - $cop_seq_base;
+ my $finish = int($padname->COP_SEQ_RANGE_HIGH) - $cop_seq_base;
+ $finish = "end" if $finish == 999999999 - $cop_seq_base;
+ $targarglife = "$targarg:$intro,$finish";
+ }
+ } else {
+ $targarglife = $targarg = "t" . $targ;
+ }
+ return $targarg, $targarglife;
+}
+
+
+
sub concise_op {
my ($op, $level, $format) = @_;
my %h;
@@ -787,39 +840,14 @@ sub concise_op {
: 1;
my (@targarg, @targarglife);
for my $i (0..$count-1) {
- my ($targarg, $targarglife);
- my $padname = (($curcv->PADLIST->ARRAY)[0]->ARRAY)[$h{targ}+$i];
- if (defined $padname and class($padname) ne "SPECIAL" and
- $padname->LEN)
- {
- $targarg = $padname->PVX;
- if ($padname->FLAGS & SVf_FAKE) {
- # These changes relate to the jumbo closure fix.
- # See changes 19939 and 20005
- my $fake = '';
- $fake .= 'a'
- if $padname->PARENT_FAKELEX_FLAGS & PAD_FAKELEX_ANON;
- $fake .= 'm'
- if $padname->PARENT_FAKELEX_FLAGS & PAD_FAKELEX_MULTI;
- $fake .= ':' . $padname->PARENT_PAD_INDEX
- if $curcv->CvFLAGS & CVf_ANON;
- $targarglife = "$targarg:FAKE:$fake";
- }
- else {
- my $intro = $padname->COP_SEQ_RANGE_LOW - $cop_seq_base;
- my $finish = int($padname->COP_SEQ_RANGE_HIGH) - $cop_seq_base;
- $finish = "end" if $finish == 999999999 - $cop_seq_base;
- $targarglife = "$targarg:$intro,$finish";
- }
- } else {
- $targarglife = $targarg = "t" . ($h{targ}+$i);
- }
+ my ($targarg, $targarglife) = padname($h{targ} + $i);
push @targarg, $targarg;
push @targarglife, $targarglife;
}
$h{targarg} = join '; ', @targarg;
$h{targarglife} = join '; ', @targarglife;
}
+
$h{arg} = "";
$h{svclass} = $h{svaddr} = $h{svval} = "";
if ($h{class} eq "PMOP") {
@@ -837,22 +865,35 @@ sub concise_op {
$extra = " replstart->" . seq($op->pmreplstart);
}
}
- elsif ($op->name eq 'pushre') {
- # with C<@stash_array = split(/pat/, str);>,
- # *stash_array is stored in /pat/'s pmreplroot.
- my $gv = $op->pmreplroot;
- if (!ref($gv)) {
- # threaded: the value is actually a pad offset for where
- # the GV is kept (op_pmtargetoff)
- if ($gv) {
- $gv = (($curcv->PADLIST->ARRAY)[1]->ARRAY)[$gv]->NAME;
- }
- }
- else {
- # unthreaded: its a GV (if it exists)
- $gv = (ref($gv) eq "B::GV") ? $gv->NAME : undef;
- }
- $extra = " => \@$gv" if $gv;
+ elsif ($op->name eq 'split') {
+ if ( ($op->private & OPpSPLIT_ASSIGN) # @array = split
+ && (not $op->flags & OPf_STACKED)) # @{expr} = split
+ {
+ # with C<@array = split(/pat/, str);>,
+ # array is stored in /pat/'s pmreplroot; either
+ # as an integer index into the pad (for a lexical array)
+ # or as GV for a package array (which will be a pad index
+ # on threaded builds)
+
+ if ($op->private & $B::Op_private::defines{'OPpSPLIT_LEX'}) {
+ my $off = $op->pmreplroot; # union with op_pmtargetoff
+ my ($name, $full) = padname($off);
+ $extra = " => $full";
+ }
+ else {
+ # union with op_pmtargetoff, op_pmtargetgv
+ my $gv = $op->pmreplroot;
+ if (!ref($gv)) {
+ # the value is actually a pad offset
+ $gv = (($curcv->PADLIST->ARRAY)[1]->ARRAY)[$gv]->NAME;
+ }
+ else {
+ # unthreaded: its a GV
+ $gv = $gv->NAME;
+ }
+ $extra = " => \@$gv";
+ }
+ }
}
$h{arg} = "($precomp$extra)";
} elsif ($h{class} eq "PVOP" and $h{name} !~ '^transr?\z') {
@@ -884,6 +925,11 @@ sub concise_op {
undef $lastnext;
$h{arg} = "(other->" . seq($op->other) . ")";
$h{otheraddr} = sprintf("%#x", $ {$op->other});
+ if ($h{name} eq "argdefelem") {
+ # targ used for element index
+ $h{targarglife} = $h{targarg} = "";
+ $h{arg} .= "[" . $op->targ . "]";
+ }
}
elsif ($h{class} eq "SVOP" or $h{class} eq "PADOP") {
unless ($h{name} eq 'aelemfast' and $op->flags & OPf_SPECIAL) {
@@ -1591,6 +1637,9 @@ string if this is not a COP. Here are the symbols used:
X filetest access
U utf-8
+ us use feature 'unicode_strings'
+ fea=NNN feature bundle number
+
=item B<#hintsval>
The numeric value of the COP's hint flags, or an empty string if this is not
diff --git a/Master/tlpkg/tlperl/lib/B/Debug.pm b/Master/tlpkg/tlperl/lib/B/Debug.pm
index fd66405bac3..e295635d359 100644
--- a/Master/tlpkg/tlperl/lib/B/Debug.pm
+++ b/Master/tlpkg/tlperl/lib/B/Debug.pm
@@ -1,6 +1,6 @@
package B::Debug;
-our $VERSION = '1.23';
+our $VERSION = '1.24';
use strict;
require 5.006;
diff --git a/Master/tlpkg/tlperl/lib/B/Deparse.pm b/Master/tlpkg/tlperl/lib/B/Deparse.pm
index 9879d678b17..3166415b54a 100644
--- a/Master/tlpkg/tlperl/lib/B/Deparse.pm
+++ b/Master/tlpkg/tlperl/lib/B/Deparse.pm
@@ -16,6 +16,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
OPpTRANS_SQUASH OPpTRANS_DELETE OPpTRANS_COMPLEMENT OPpTARGET_MY
OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER OPpREPEAT_DOLIST
OPpSORT_REVERSE OPpMULTIDEREF_EXISTS OPpMULTIDEREF_DELETE
+ OPpSPLIT_ASSIGN OPpSPLIT_LEX
SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR SVf_FAKE SVs_RMG SVs_SMG
SVs_PADTMP SVpad_TYPED
CVf_METHOD CVf_LVALUE
@@ -46,7 +47,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber perlstring
MDEREF_SHIFT
);
-$VERSION = '1.37';
+$VERSION = '1.40';
use strict;
use vars qw/$AUTOLOAD/;
use warnings ();
@@ -460,6 +461,7 @@ sub _pessimise_walk_exe {
sub pessimise {
my ($self, $root, $start) = @_;
+ no warnings 'recursion';
# walk tree in root-to-branch order
$self->_pessimise_walk($root);
@@ -474,6 +476,9 @@ sub null {
return class($op) eq "NULL";
}
+
+# Add a CV to the list of subs that still need deparsing.
+
sub todo {
my $self = shift;
my($cv, $is_form, $name) = @_;
@@ -490,55 +495,27 @@ sub todo {
push @{$self->{'subs_todo'}}, [$seq, $cv, $is_form, $name];
}
+
+# Pop the next sub from the todo list and deparse it
+
sub next_todo {
my $self = shift;
my $ent = shift @{$self->{'subs_todo'}};
- my $cv = $ent->[1];
- if (ref $ent->[3]) { # lexical sub
- my @text;
+ my ($seq, $cv, $is_form, $name) = @$ent;
- # At this point, we may not yet have deparsed the hints that allow
- # lexical subroutines to be recognized. So adjust the current
- # hints and deparse them.
- # When lex subs cease being experimental, we should be able to
- # remove this code.
- {
- local $^H = $self->{'hints'};
- local %^H = %{ $self->{'hinthash'} || {} };
- local ${^WARNING_BITS} = $self->{'warnings'};
- feature->import("lexical_subs");
- warnings->unimport("experimental::lexical_subs");
- # Here we depend on the fact that individual features
- # will always set the feature bundle to ‘custom’
- # (== $feature::hint_mask). If we had another specific bundle
- # enabled previously, normalise it.
- if (($self->{'hints'} & $feature::hint_mask)
- != $feature::hint_mask)
- {
- if ($self->{'hinthash'}) {
- delete $self->{'hinthash'}{$_}
- for grep /^feature_/, keys %{$self->{'hinthash'}};
- }
- else { $self->{'hinthash'} = {} }
- $self->{'hinthash'}
- = _features_from_bundle(@$self{'hints','hinthash'});
- }
- push @text, $self->declare_hinthash($self->{'hinthash'}, \%^H,
- $self->{indent_size}, $^H);
- push @text, $self->declare_warnings($self->{'warnings'},
- ${^WARNING_BITS})
- unless ($self->{'warnings'} // 'u')
- eq (${^WARNING_BITS } // 'u');
- $self->{'warnings'} = ${^WARNING_BITS};
- $self->{'hints'} = $^H;
- $self->{'hinthash'} = {%^H};
- }
+ # any 'use strict; package foo' that should come before the sub
+ # declaration to sync with the first COP of the sub
+ my $pragmata = '';
+ if ($cv and !null($cv->START) and is_state($cv->START)) {
+ $pragmata = $self->pragmata($cv->START);
+ }
- # Now emit the sub itself.
- my $padname = $ent->[3];
- my $flags = $padname->FLAGS;
+ if (ref $name) { # lexical sub
+ # emit the sub.
+ my @text;
+ my $flags = $name->FLAGS;
push @text,
- !$cv || $ent->[0] <= $padname->COP_SEQ_RANGE_LOW
+ !$cv || $seq <= $name->COP_SEQ_RANGE_LOW
? $self->keyword($flags & SVpad_OUR
? "our"
: $flags & SVpad_STATE
@@ -548,7 +525,7 @@ sub next_todo {
# XXX We would do $self->keyword("sub"), but ‘my CORE::sub’
# doesn’t work and ‘my sub’ ignores a &sub in scope. I.e.,
# we have a core bug here.
- push @text, "sub " . substr $padname->PVX, 1;
+ push @text, "sub " . substr $name->PVX, 1;
if ($cv) {
# my sub foo { }
push @text, " " . $self->deparse_sub($cv);
@@ -558,19 +535,31 @@ sub next_todo {
# my sub foo;
push @text, ";\n";
}
- return join "", @text;
+ return $pragmata . join "", @text;
}
+
my $gv = $cv->GV;
- my $name = $ent->[3] // $self->gv_name($gv);
- if ($ent->[2]) {
- return $self->keyword("format") . " $name =\n"
- . $self->deparse_format($ent->[1]). "\n";
+ $name //= $self->gv_name($gv);
+ if ($is_form) {
+ return $pragmata . $self->keyword("format") . " $name =\n"
+ . $self->deparse_format($cv). "\n";
} else {
my $use_dec;
if ($name eq "BEGIN") {
$use_dec = $self->begin_is_use($cv);
if (defined ($use_dec) and $self->{'expand'} < 5) {
- return () if 0 == length($use_dec);
+ return $pragmata if 0 == length($use_dec);
+
+ # XXX bit of a hack: Test::More's use_ok() method
+ # builds a fake use statement which deparses as, e.g.
+ # use Net::Ping (@{$args[0];});
+ # As well as being superfluous (the use_ok() is deparsed
+ # too) and ugly, it fails under use strict and otherwise
+ # makes use of a lexical var that's not in scope.
+ # So strip it out.
+ return $pragmata
+ if $use_dec =~ /^use \S+ \(@\{\$args\[0\];\}\);/;
+
$use_dec =~ s/^(use|no)\b/$self->keyword($1)/e;
}
}
@@ -591,7 +580,7 @@ sub next_todo {
}
}
if ($use_dec) {
- return "$p$l$use_dec";
+ return "$pragmata$p$l$use_dec";
}
if ( $name !~ /::/ and $self->lex_in_scope("&$name")
|| $self->lex_in_scope("&$name", 1) )
@@ -600,13 +589,14 @@ sub next_todo {
} elsif (defined $stash) {
$name =~ s/^\Q$stash\E::(?!\z|.*::)//;
}
- my $ret = "${p}${l}" . $self->keyword("sub") . " $name "
+ my $ret = "$pragmata${p}${l}" . $self->keyword("sub") . " $name "
. $self->deparse_sub($cv);
$self->{'subs_declared'}{$name} = 1;
return $ret;
}
}
+
# Return a "use" declaration for this BEGIN block, if appropriate
sub begin_is_use {
my ($self, $cv) = @_;
@@ -1221,22 +1211,132 @@ sub pad_subs {
sort {$a->[0] <=> $b->[0]} @{$self->{'subs_todo'}}, @todo
}
+
+# deparse_argops(): deparse, if possible, a sequence of argcheck + argelem
+# ops into a subroutine signature. If successful, return the first op
+# following the signature ops plus the signature string; else return the
+# empty list.
+#
+# Normally a bunch of argelem ops will have been generated by the
+# signature parsing, but it's possible that ops have been added manually
+# or altered. In this case we "return ()" and fall back to general
+# deparsing of the individual sigelems as 'my $x = $_[N]' etc.
+#
+# We're only called if the first two ops are nextstate and argcheck.
+
+sub deparse_argops {
+ my ($self, $firstop, $cv) = @_;
+
+ my @sig;
+ my $o = $firstop;
+ return if $o->label; #first nextstate;
+
+ # OP_ARGCHECK
+
+ $o = $o->sibling;
+ my ($params, $opt_params, $slurpy) = $o->aux_list($cv);
+ my $mandatory = $params - $opt_params;
+ my $seen_slurpy = 0;
+ my $last_ix = -1;
+
+ # keep looking for valid nextstate + argelem pairs
+
+ while (1) {
+ # OP_NEXTSTATE
+ $o = $o->sibling;
+ last unless $$o;
+ last unless $o->name =~ /^(next|db)state$/;
+ last if $o->label;
+
+ # OP_ARGELEM
+ my $o2 = $o->sibling;
+ last unless $$o2;
+
+ if ($o2->name eq 'argelem') {
+ my $ix = $o2->string($cv);
+ while (++$last_ix < $ix) {
+ push @sig, $last_ix < $mandatory ? '$' : '$=';
+ }
+ my $var = $self->padname($o2->targ);
+ if ($var =~ /^[@%]/) {
+ return if $seen_slurpy;
+ $seen_slurpy = 1;
+ return if $ix != $params or !$slurpy
+ or substr($var,0,1) ne $slurpy;
+ }
+ else {
+ return if $ix >= $params;
+ }
+ if ($o2->flags & OPf_KIDS) {
+ my $kid = $o2->first;
+ return unless $$kid and $kid->name eq 'argdefelem';
+ my $def = $self->deparse($kid->first, 7);
+ $def = "($def)" if $kid->first->flags & OPf_PARENS;
+ $var .= " = $def";
+ }
+ push @sig, $var;
+ }
+ elsif ($o2->name eq 'null'
+ and ($o2->flags & OPf_KIDS)
+ and $o2->first->name eq 'argdefelem')
+ {
+ # special case - a void context default expression: $ = expr
+
+ my $defop = $o2->first;
+ my $ix = $defop->targ;
+ while (++$last_ix < $ix) {
+ push @sig, $last_ix < $mandatory ? '$' : '$=';
+ }
+ return if $last_ix >= $params
+ or $last_ix < $mandatory;
+ my $def = $self->deparse($defop->first, 7);
+ $def = "($def)" if $defop->first->flags & OPf_PARENS;
+ push @sig, '$ = ' . $def;
+ }
+ else {
+ last;
+ }
+
+ $o = $o2;
+ }
+
+ while (++$last_ix < $params) {
+ push @sig, $last_ix < $mandatory ? '$' : '$=';
+ }
+ push @sig, $slurpy if $slurpy and !$seen_slurpy;
+
+ return ($o, join(', ', @sig));
+}
+
+# Deparse a sub. Returns everything except the 'sub foo',
+# e.g. ($$) : method { ...; }
+# or ($a, $b) : prototype($$) lvalue;
+
sub deparse_sub {
my $self = shift;
my $cv = shift;
- my $proto = "";
+ my @attrs;
+ my $protosig; # prototype or signature (what goes in the (....))
+
Carp::confess("NULL in deparse_sub") if !defined($cv) || $cv->isa("B::NULL");
Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
local $self->{'curcop'} = $self->{'curcop'};
+
+ my $has_sig = $self->{hinthash}{feature_signatures};
if ($cv->FLAGS & SVf_POK) {
- $proto = "(". $cv->PV . ") ";
+ my $proto = $cv->PV;
+ if ($has_sig) {
+ push @attrs, "prototype($proto)";
+ }
+ else {
+ $protosig = $proto;
+ }
}
if ($cv->CvFLAGS & (CVf_METHOD|CVf_LOCKED|CVf_LVALUE|CVf_ANONCONST)) {
- $proto .= ": ";
- $proto .= "lvalue " if $cv->CvFLAGS & CVf_LVALUE;
- $proto .= "locked " if $cv->CvFLAGS & CVf_LOCKED;
- $proto .= "method " if $cv->CvFLAGS & CVf_METHOD;
- $proto .= "const " if $cv->CvFLAGS & CVf_ANONCONST;
+ push @attrs, "lvalue" if $cv->CvFLAGS & CVf_LVALUE;
+ push @attrs, "locked" if $cv->CvFLAGS & CVf_LOCKED;
+ push @attrs, "method" if $cv->CvFLAGS & CVf_METHOD;
+ push @attrs, "const" if $cv->CvFLAGS & CVf_ANONCONST;
}
local($self->{'curcv'}) = $cv;
@@ -1251,11 +1351,36 @@ Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
$self->pessimise($root, $cv->START);
my $lineseq = $root->first;
if ($lineseq->name eq "lineseq") {
- my @ops;
- for(my$o=$lineseq->first; $$o; $o=$o->sibling) {
+ my $firstop = $lineseq->first;
+
+ if ($has_sig) {
+ my $o2;
+ # try to deparse first few ops as a signature if possible
+ if ( $$firstop
+ and $firstop->name =~ /^(next|db)state$/
+ and (($o2 = $firstop->sibling))
+ and $$o2)
+ {
+ if ($o2->name eq 'argcheck') {
+ my ($nexto, $sig) = $self->deparse_argops($firstop, $cv);
+ if (defined $nexto) {
+ $firstop = $nexto;
+ $protosig = $sig;
+ }
+ }
+ }
+ }
+
+ my @ops;
+ for (my $o = $firstop; $$o; $o=$o->sibling) {
push @ops, $o;
}
$body = $self->lineseq(undef, 0, @ops).";";
+ if (!$has_sig and $ops[-1]->name =~ /^(next|db)state$/) {
+ # this handles void context in
+ # use feature signatures; sub ($=1) {}
+ $body .= "\n()";
+ }
my $scope_en = $self->find_scope_en($lineseq);
if (defined $scope_en) {
my $subs = join"", $self->seq_subs($scope_en);
@@ -1265,17 +1390,21 @@ Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL");
else {
$body = $self->deparse($root->first, 0);
}
+ $body = "{\n\t$body\n\b}";
}
else {
my $sv = $cv->const_sv;
if ($$sv) {
# uh-oh. inlinable sub... format it differently
- return $proto . "{ " . $self->const($sv, 0) . " }\n";
+ $body = "{ " . $self->const($sv, 0) . " }\n";
} else { # XSUB? (or just a declaration)
- return "$proto;\n";
+ $body = ';'
}
}
- return $proto ."{\n\t$body\n\b}" ."\n";
+ $protosig = defined $protosig ? "($protosig) " : "";
+ my $attrs = '';
+ $attrs = ': ' . join('', map "$_ ", @attrs) if @attrs;
+ return "$protosig$attrs$body\n";
}
sub deparse_format {
@@ -1934,18 +2063,15 @@ sub _features_from_bundle {
return $hh;
}
-# Notice how subs and formats are inserted between statements here;
-# also $[ assignments and pragmas.
-sub pp_nextstate {
+# generate any pragmas, 'package foo' etc needed to synchronise
+# with the given cop
+
+sub pragmata {
my $self = shift;
- my($op, $cx) = @_;
- $self->{'curcop'} = $op;
+ my($op) = @_;
+
my @text;
- push @text, $self->cop_subs($op);
- if (@text) {
- # Special marker to swallow up the semicolon
- push @text, "\cK";
- }
+
my $stash = $op->stashpv;
if ($stash ne $self->{'curstash'}) {
push @text, $self->keyword("package") . " $stash;\n";
@@ -2024,6 +2150,29 @@ sub pp_nextstate {
$self->{'hinthash'} = $newhh;
}
+ return join("", @text);
+}
+
+
+# Notice how subs and formats are inserted between statements here;
+# also $[ assignments and pragmas.
+sub pp_nextstate {
+ my $self = shift;
+ my($op, $cx) = @_;
+ $self->{'curcop'} = $op;
+
+ my @text;
+
+ my @subs = $self->cop_subs($op);
+ if (@subs) {
+ # Special marker to swallow up the semicolon
+ push @subs, "\cK";
+ }
+ push @text, @subs;
+
+ push @text, $self->pragmata($op);
+
+
# This should go after of any branches that add statements, to
# increase the chances that it refers to the same line it did in
# the original program.
@@ -4021,7 +4170,11 @@ sub pp_multideref {
if ($op->first && ($op->first->flags & OPf_KIDS)) {
# arbitrary initial expression, e.g. f(1,2,3)->[...]
- $text .= $self->deparse($op->first, 24);
+ my $expr = $self->deparse($op->first, 24);
+ # stop "exists (expr)->{...}" being interpreted as
+ #"(exists (expr))->{...}"
+ $expr = "+$expr" if $expr =~ /^\(/;
+ $text .= $expr;
}
my @items = $op->aux_list($self->{curcv});
@@ -5478,7 +5631,7 @@ sub matchop {
my($op, $cx, $name, $delim) = @_;
my $kid = $op->first;
my ($binop, $var, $re) = ("", "", "");
- if ($op->flags & OPf_STACKED) {
+ if ($op->name ne 'split' && $op->flags & OPf_STACKED) {
$binop = 1;
$var = $self->deparse($kid, 20);
$kid = $kid->sibling;
@@ -5517,7 +5670,13 @@ sub matchop {
} elsif (!$have_kid) {
$re = re_uninterp(escape_re(re_unback($op->precomp)));
} elsif ($kid->name ne 'regcomp') {
- carp("found ".$kid->name." where regcomp expected");
+ if ($op->name eq 'split') {
+ # split has other kids, not just regcomp
+ $re = re_uninterp(escape_re(re_unback($op->precomp)));
+ }
+ else {
+ carp("found ".$kid->name." where regcomp expected");
+ }
} else {
($re, $quote) = $self->regcomp($kid, 21);
}
@@ -5557,64 +5716,58 @@ sub matchop {
}
sub pp_match { matchop(@_, "m", "/") }
-sub pp_pushre { matchop(@_, "m", "/") }
sub pp_qr { matchop(@_, "qr", "") }
sub pp_runcv { unop(@_, "__SUB__"); }
sub pp_split {
- maybe_targmy(@_, \&split);
-}
-sub split {
my $self = shift;
my($op, $cx) = @_;
my($kid, @exprs, $ary, $expr);
+ my $stacked = $op->flags & OPf_STACKED;
+
$kid = $op->first;
+ $kid = $kid->sibling if $kid->name eq 'regcomp';
+ for (; !null($kid); $kid = $kid->sibling) {
+ push @exprs, $self->deparse($kid, 6);
+ }
- # For our kid (an OP_PUSHRE), pmreplroot is never actually the
- # root of a replacement; it's either empty, or abused to point to
- # the GV for an array we split into (an optimization to save
- # assignment overhead). Depending on whether we're using ithreads,
- # this OP* holds either a GV* or a PADOFFSET. Luckily, B.xs
- # figures out for us which it is.
- my $replroot = $kid->pmreplroot;
- my $gv = 0;
- my $stacked = $op->flags & OPf_STACKED;
- if (ref($replroot) eq "B::GV") {
- $gv = $replroot;
- } elsif (!ref($replroot) and $replroot > 0) {
- $gv = $self->padval($replroot);
- } elsif ($kid->targ) {
- $ary = $self->padname($kid->targ)
- } elsif ($stacked) {
- $ary = $self->deparse($op->last, 7);
- }
- $ary = $self->maybe_local(@_,
+ unshift @exprs, $self->matchop($op, $cx, "m", "/");
+
+ if ($op->private & OPpSPLIT_ASSIGN) {
+ # With C<@array = split(/pat/, str);>,
+ # array is stored in split's pmreplroot; either
+ # as an integer index into the pad (for a lexical array)
+ # or as GV for a package array (which will be a pad index
+ # on threaded builds)
+ # With my/our @array = split(/pat/, str), the array is instead
+ # accessed via an extra padav/rv2av op at the end of the
+ # split's kid ops.
+
+ if ($stacked) {
+ $ary = pop @exprs;
+ }
+ else {
+ if ($op->private & OPpSPLIT_LEX) {
+ $ary = $self->padname($op->pmreplroot);
+ }
+ else {
+ # union with op_pmtargetoff, op_pmtargetgv
+ my $gv = $op->pmreplroot;
+ $gv = $self->padval($gv) if !ref($gv);
+ $ary = $self->maybe_local(@_,
$self->stash_variable('@',
$self->gv_name($gv),
$cx))
- if $gv;
-
- # Skip the last kid when OPf_STACKED is set, since it is the array
- # on the left.
- for (; !null($stacked ? $kid->sibling : $kid); $kid = $kid->sibling) {
- push @exprs, $self->deparse($kid, 6);
+ }
+ if ($op->private & OPpLVAL_INTRO) {
+ $ary = $op->private & OPpSPLIT_LEX ? "my $ary" : "local $ary";
+ }
+ }
}
# handle special case of split(), and split(' ') that compiles to /\s+/
- # Under 5.10, the reflags may be undef if the split regexp isn't a constant
- # Under 5.17.5-5.17.9, the special flag is on split itself.
- $kid = $op->first;
- if ( $op->flags & OPf_SPECIAL
- or (
- $kid->flags & OPf_SPECIAL
- and ( $] < 5.009 ? $kid->pmflags & PMf_SKIPWHITE()
- : ($kid->reflags || 0) & RXf_SKIPWHITE()
- )
- )
- ) {
- $exprs[0] = "' '";
- }
+ $exprs[0] = q{' '} if ($op->reflags // 0) & RXf_SKIPWHITE();
$expr = "split(" . join(", ", @exprs) . ")";
if ($ary) {
@@ -5772,6 +5925,63 @@ sub pp_lvavref {
: &pp_padsv) . ')'
}
+
+sub pp_argcheck {
+ my $self = shift;
+ my($op, $cx) = @_;
+ my ($params, $opt_params, $slurpy) = $op->aux_list($self->{curcv});
+ my $mandatory = $params - $opt_params;
+ my $check = '';
+
+ $check .= <<EOF if !$slurpy;
+die sprintf("Too many arguments for subroutine at %s line %d.\\n", (caller)[1, 2]) unless \@_ <= $params;
+EOF
+
+ $check .= <<EOF if $mandatory > 0;
+die sprintf("Too few arguments for subroutine at %s line %d.\\n", (caller)[1, 2]) unless \@_ >= $mandatory;
+EOF
+
+ my $cond = ($params & 1) ? 'unless' : 'if';
+ $check .= <<EOF if $slurpy eq '%';
+die sprintf("Odd name/value argument for subroutine at %s line %d.\\n", (caller)[1, 2]) if \@_ > $params && ((\@_ - $params) & 1);
+EOF
+
+ $check =~ s/;\n\z//;
+ return $check;
+}
+
+
+sub pp_argelem {
+ my $self = shift;
+ my($op, $cx) = @_;
+ my $var = $self->padname($op->targ);
+ my $ix = $op->string($self->{curcv});
+ my $expr;
+ if ($op->flags & OPf_KIDS) {
+ $expr = $self->deparse($op->first, 7);
+ }
+ elsif ($var =~ /^[@%]/) {
+ $expr = $ix ? "\@_[$ix .. \$#_]" : '@_';
+ }
+ else {
+ $expr = "\$_[$ix]";
+ }
+ return "my $var = $expr";
+}
+
+
+sub pp_argdefelem {
+ my $self = shift;
+ my($op, $cx) = @_;
+ my $ix = $op->targ;
+ my $expr = "\@_ >= " . ($ix+1) . " ? \$_[$ix] : ";
+ my $def = $self->deparse($op->first, 7);
+ $def = "($def)" if $op->first->flags & OPf_PARENS;
+ $expr .= $self->deparse($op->first, $cx);
+ return $expr;
+}
+
+
1;
__END__
@@ -6256,7 +6466,7 @@ which is not, consequently, deparsed correctly.
=item *
Lexical (my) variables declared in scopes external to a subroutine
-appear in code2ref output text as package variables. This is a tricky
+appear in coderef2text output text as package variables. This is a tricky
problem, as perl has no native facility for referring to a lexical variable
defined within a different scope, although L<PadWalker> is a good start.
diff --git a/Master/tlpkg/tlperl/lib/B/Op_private.pm b/Master/tlpkg/tlperl/lib/B/Op_private.pm
index c6c8906c442..849da095dda 100644
--- a/Master/tlpkg/tlperl/lib/B/Op_private.pm
+++ b/Master/tlpkg/tlperl/lib/B/Op_private.pm
@@ -118,7 +118,7 @@ package B::Op_private;
our %bits;
-our $VERSION = "5.024001";
+our $VERSION = "5.026001";
$bits{$_}{3} = 'OPpENTERSUB_AMPER' for qw(entersub rv2cv);
$bits{$_}{6} = 'OPpENTERSUB_DB' for qw(entersub rv2cv);
@@ -133,10 +133,10 @@ $bits{$_}{5} = 'OPpHUSH_VMSISH' for qw(dbstate nextstate);
$bits{$_}{1} = 'OPpITER_REVERSED' for qw(enteriter iter);
$bits{$_}{7} = 'OPpLVALUE' for qw(leave leaveloop);
$bits{$_}{6} = 'OPpLVAL_DEFER' for qw(aelem helem multideref);
-$bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv);
+$bits{$_}{7} = 'OPpLVAL_INTRO' for qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split);
$bits{$_}{2} = 'OPpLVREF_ELEM' for qw(lvref refassign);
$bits{$_}{3} = 'OPpLVREF_ITER' for qw(lvref refassign);
-$bits{$_}{3} = 'OPpMAYBE_LVSUB' for qw(aassign aelem aslice av2arylen helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr vec);
+$bits{$_}{3} = 'OPpMAYBE_LVSUB' for qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr vec);
$bits{$_}{4} = 'OPpMAYBE_TRUEBOOL' for qw(padhv rv2hv);
$bits{$_}{7} = 'OPpOFFBYONE' for qw(caller runcv wantarray);
$bits{$_}{5} = 'OPpOPEN_IN_CRLF' for qw(backtick open);
@@ -147,7 +147,6 @@ $bits{$_}{6} = 'OPpOUR_INTRO' for qw(enteriter gvsv rv2av rv2hv rv2sv split);
$bits{$_}{6} = 'OPpPAD_STATE' for qw(lvavref lvref padav padhv padsv pushmark refassign);
$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 concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time unlink unshift utime wait waitpid);
$bits{$_}{5} = 'OPpTRANS_COMPLEMENT' for qw(trans transr);
@@ -175,6 +174,13 @@ my @bf = (
bitmask => 3,
},
{
+ label => 'offset',
+ mask_def => 'OPpAVHVSWITCH_MASK',
+ bitmin => 0,
+ bitmax => 1,
+ bitmask => 3,
+ },
+ {
label => '-',
mask_def => 'OPpARG3_MASK',
bitmin => 0,
@@ -189,7 +195,7 @@ my @bf = (
bitmask => 15,
},
{
- label => '-',
+ label => 'range',
mask_def => 'OPpPADRANGE_COUNTMASK',
bitcount_def => 'OPpPADRANGE_COUNTSHIFT',
bitmin => 0,
@@ -197,12 +203,23 @@ my @bf = (
bitmask => 127,
},
{
- label => '-',
+ label => 'key',
bitmin => 0,
bitmax => 7,
bitmask => 255,
},
{
+ mask_def => 'OPpARGELEM_MASK',
+ bitmin => 1,
+ bitmax => 2,
+ bitmask => 6,
+ enum => [
+ 0, 'OPpARGELEM_SV', 'SV',
+ 1, 'OPpARGELEM_AV', 'AV',
+ 2, 'OPpARGELEM_HV', 'HV',
+ ],
+ },
+ {
mask_def => 'OPpDEREF',
bitmin => 4,
bitmax => 5,
@@ -229,52 +246,56 @@ my @bf = (
@{$bits{aassign}}{6,5,4,1,0} = ('OPpASSIGN_COMMON_SCALAR', 'OPpASSIGN_COMMON_RC1', 'OPpASSIGN_COMMON_AGG', $bf[1], $bf[1]);
$bits{abs}{0} = $bf[0];
-@{$bits{accept}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{accept}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{add}}{1,0} = ($bf[1], $bf[1]);
$bits{aeach}{0} = $bf[0];
-@{$bits{aelem}}{5,4,1,0} = ($bf[6], $bf[6], $bf[1], $bf[1]);
-@{$bits{aelemfast}}{7,6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
-@{$bits{aelemfast_lex}}{7,6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
+@{$bits{aelem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]);
+@{$bits{aelemfast}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]);
+@{$bits{aelemfast_lex}}{7,6,5,4,3,2,1,0} = ($bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6], $bf[6]);
$bits{akeys}{0} = $bf[0];
$bits{alarm}{0} = $bf[0];
$bits{and}{0} = $bf[0];
$bits{andassign}{0} = $bf[0];
$bits{anonconst}{0} = $bf[0];
-@{$bits{anonhash}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{anonlist}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{atan2}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{anonhash}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{anonlist}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+$bits{argcheck}{0} = $bf[0];
+$bits{argdefelem}{0} = $bf[0];
+@{$bits{argelem}}{2,1,0} = ($bf[7], $bf[7], $bf[0]);
+@{$bits{atan2}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{av2arylen}{0} = $bf[0];
$bits{avalues}{0} = $bf[0];
+@{$bits{avhvswitch}}{1,0} = ($bf[2], $bf[2]);
$bits{backtick}{0} = $bf[0];
-@{$bits{bind}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{binmode}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{bind}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{binmode}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{bit_and}}{1,0} = ($bf[1], $bf[1]);
@{$bits{bit_or}}{1,0} = ($bf[1], $bf[1]);
@{$bits{bit_xor}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{bless}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{caller}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{chdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{chmod}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{bless}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{caller}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{chdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{chmod}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{chomp}{0} = $bf[0];
$bits{chop}{0} = $bf[0];
-@{$bits{chown}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{chown}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{chr}{0} = $bf[0];
$bits{chroot}{0} = $bf[0];
-@{$bits{close}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{close}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{closedir}{0} = $bf[0];
$bits{complement}{0} = $bf[0];
@{$bits{concat}}{1,0} = ($bf[1], $bf[1]);
$bits{cond_expr}{0} = $bf[0];
-@{$bits{connect}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{connect}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{const}}{6,4,3,2,1} = ('OPpCONST_BARE', 'OPpCONST_ENTERED', 'OPpCONST_STRICT', 'OPpCONST_SHORTCIRCUIT', 'OPpCONST_NOVER');
@{$bits{coreargs}}{7,6,1,0} = ('OPpCOREARGS_PUSHMARK', 'OPpCOREARGS_SCALARMOD', 'OPpCOREARGS_DEREF2', 'OPpCOREARGS_DEREF1');
$bits{cos}{0} = $bf[0];
-@{$bits{crypt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{crypt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{dbmclose}{0} = $bf[0];
-@{$bits{dbmopen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{dbmopen}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{defined}{0} = $bf[0];
@{$bits{delete}}{6,0} = ('OPpSLICE', $bf[0]);
-@{$bits{die}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{die}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{divide}}{1,0} = ($bf[1], $bf[1]);
$bits{dofile}{0} = $bf[0];
$bits{dor}{0} = $bf[0];
@@ -284,23 +305,23 @@ $bits{each}{0} = $bf[0];
@{$bits{entereval}}{5,4,3,2,1,0} = ('OPpEVAL_RE_REPARSING', 'OPpEVAL_COPHH', 'OPpEVAL_BYTES', 'OPpEVAL_UNICODE', 'OPpEVAL_HAS_HH', $bf[0]);
$bits{entergiven}{0} = $bf[0];
$bits{enteriter}{3} = 'OPpITER_DEF';
-@{$bits{entersub}}{5,4,0} = ($bf[6], $bf[6], 'OPpENTERSUB_INARGS');
+@{$bits{entersub}}{5,4,0} = ($bf[8], $bf[8], 'OPpENTERSUB_INARGS');
$bits{entertry}{0} = $bf[0];
$bits{enterwhen}{0} = $bf[0];
-@{$bits{enterwrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{eof}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{enterwrite}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{eof}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{eq}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{exec}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{exec}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{exists}}{6,0} = ('OPpEXISTS_SUB', $bf[0]);
-@{$bits{exit}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{exit}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{exp}{0} = $bf[0];
$bits{fc}{0} = $bf[0];
-@{$bits{fcntl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{fileno}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{fcntl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{fileno}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{flip}{0} = $bf[0];
-@{$bits{flock}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{flock}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{flop}{0} = $bf[0];
-@{$bits{formline}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{formline}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{ftatime}{0} = $bf[0];
$bits{ftbinary}{0} = $bf[0];
$bits{ftblk}{0} = $bf[0];
@@ -330,32 +351,32 @@ $bits{fttty}{0} = $bf[0];
$bits{ftzero}{0} = $bf[0];
@{$bits{ge}}{1,0} = ($bf[1], $bf[1]);
@{$bits{gelem}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{getc}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{getc}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{getpeername}{0} = $bf[0];
-@{$bits{getpgrp}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{getpriority}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{getpgrp}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{getpriority}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{getsockname}{0} = $bf[0];
$bits{ggrgid}{0} = $bf[0];
$bits{ggrnam}{0} = $bf[0];
-@{$bits{ghbyaddr}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{ghbyaddr}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{ghbyname}{0} = $bf[0];
-@{$bits{glob}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{gmtime}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{gnbyaddr}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{glob}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{gmtime}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{gnbyaddr}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{gnbyname}{0} = $bf[0];
$bits{goto}{0} = $bf[0];
$bits{gpbyname}{0} = $bf[0];
-@{$bits{gpbynumber}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{gpbynumber}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$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]);
-@{$bits{gsockopt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{gsbyname}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{gsbyport}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{gsockopt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{gt}}{1,0} = ($bf[1], $bf[1]);
$bits{gv}{5} = 'OPpEARLY_CV';
-@{$bits{helem}}{5,4,1,0} = ($bf[6], $bf[6], $bf[1], $bf[1]);
+@{$bits{helem}}{5,4,1,0} = ($bf[8], $bf[8], $bf[1], $bf[1]);
$bits{hex}{0} = $bf[0];
@{$bits{i_add}}{1,0} = ($bf[1], $bf[1]);
@{$bits{i_divide}}{1,0} = ($bf[1], $bf[1]);
@@ -374,12 +395,12 @@ $bits{i_postinc}{0} = $bf[0];
$bits{i_predec}{0} = $bf[0];
$bits{i_preinc}{0} = $bf[0];
@{$bits{i_subtract}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{index}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{index}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{int}{0} = $bf[0];
-@{$bits{ioctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{join}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{ioctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{join}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{keys}{0} = $bf[0];
-@{$bits{kill}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{kill}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{last}{0} = $bf[0];
$bits{lc}{0} = $bf[0];
$bits{lcfirst}{0} = $bf[0];
@@ -393,9 +414,9 @@ $bits{leavewhen}{0} = $bf[0];
$bits{leavewrite}{0} = $bf[0];
@{$bits{left_shift}}{1,0} = ($bf[1], $bf[1]);
$bits{length}{0} = $bf[0];
-@{$bits{link}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{link}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{list}{6} = 'OPpLIST_GUESSED';
-@{$bits{listen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{listen}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{localtime}{0} = $bf[0];
$bits{lock}{0} = $bf[0];
$bits{log}{0} = $bf[0];
@@ -403,7 +424,7 @@ $bits{log}{0} = $bf[0];
$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{lvref}}{5,4,0} = ($bf[9], $bf[9], $bf[0]);
$bits{mapstart}{0} = $bf[0];
$bits{mapwhile}{0} = $bf[0];
$bits{method}{0} = $bf[0];
@@ -411,12 +432,12 @@ $bits{method_named}{0} = $bf[0];
$bits{method_redir}{0} = $bf[0];
$bits{method_redir_super}{0} = $bf[0];
$bits{method_super}{0} = $bf[0];
-@{$bits{mkdir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{mkdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{modulo}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{msgctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{msgget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{msgrcv}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{msgsnd}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{msgctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{msgget}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{msgrcv}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{msgsnd}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$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]);
@@ -430,15 +451,15 @@ $bits{next}{0} = $bf[0];
$bits{not}{0} = $bf[0];
$bits{oct}{0} = $bf[0];
$bits{once}{0} = $bf[0];
-@{$bits{open}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{open_dir}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{open}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{open_dir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{or}{0} = $bf[0];
$bits{orassign}{0} = $bf[0];
$bits{ord}{0} = $bf[0];
-@{$bits{pack}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{padrange}}{6,5,4,3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4], $bf[4], $bf[4], $bf[4]);
-@{$bits{padsv}}{5,4} = ($bf[6], $bf[6]);
-@{$bits{pipe_op}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{pack}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{padrange}}{6,5,4,3,2,1,0} = ($bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5], $bf[5]);
+@{$bits{padsv}}{5,4} = ($bf[8], $bf[8]);
+@{$bits{pipe_op}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{pop}{0} = $bf[0];
$bits{pos}{0} = $bf[0];
$bits{postdec}{0} = $bf[0];
@@ -447,36 +468,36 @@ $bits{postinc}{0} = $bf[0];
$bits{predec}{0} = $bf[0];
$bits{preinc}{0} = $bf[0];
$bits{prototype}{0} = $bf[0];
-@{$bits{push}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{push}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{quotemeta}{0} = $bf[0];
-@{$bits{rand}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{rand}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{range}{0} = $bf[0];
-@{$bits{read}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{read}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{readdir}{0} = $bf[0];
$bits{readline}{0} = $bf[0];
$bits{readlink}{0} = $bf[0];
-@{$bits{recv}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{recv}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{redo}{0} = $bf[0];
$bits{ref}{0} = $bf[0];
-@{$bits{refassign}}{5,4,1,0} = ($bf[7], $bf[7], $bf[1], $bf[1]);
+@{$bits{refassign}}{5,4,1,0} = ($bf[9], $bf[9], $bf[1], $bf[1]);
$bits{refgen}{0} = $bf[0];
$bits{regcmaybe}{0} = $bf[0];
$bits{regcomp}{0} = $bf[0];
$bits{regcreset}{0} = $bf[0];
-@{$bits{rename}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{rename}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{repeat}}{6,1,0} = ('OPpREPEAT_DOLIST', $bf[1], $bf[1]);
$bits{require}{0} = $bf[0];
-@{$bits{reset}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{reset}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{reverse}}{3,0} = ('OPpREVERSE_INPLACE', $bf[0]);
$bits{rewinddir}{0} = $bf[0];
@{$bits{right_shift}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{rindex}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{rindex}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{rmdir}{0} = $bf[0];
$bits{rv2av}{0} = $bf[0];
@{$bits{rv2cv}}{7,5,0} = ('OPpENTERSUB_NOPAREN', 'OPpMAY_RETURN_CONSTANT', $bf[0]);
-@{$bits{rv2gv}}{6,5,4,2,0} = ('OPpALLOW_FAKE', $bf[6], $bf[6], 'OPpDONT_INIT_GV', $bf[0]);
+@{$bits{rv2gv}}{6,5,4,2,0} = ('OPpALLOW_FAKE', $bf[8], $bf[8], 'OPpDONT_INIT_GV', $bf[0]);
$bits{rv2hv}{0} = $bf[0];
-@{$bits{rv2sv}}{5,4,0} = ($bf[6], $bf[6], $bf[0]);
+@{$bits{rv2sv}}{5,4,0} = ($bf[8], $bf[8], $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]);
@@ -486,76 +507,76 @@ $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]);
-@{$bits{semctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{semget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{semop}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{send}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{seek}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{seekdir}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{select}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{semctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{semget}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{semop}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{send}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{seq}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{setpgrp}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{setpriority}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{setpgrp}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{setpriority}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{sge}}{1,0} = ($bf[1], $bf[1]);
@{$bits{sgt}}{1,0} = ($bf[1], $bf[1]);
$bits{shift}{0} = $bf[0];
-@{$bits{shmctl}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{shmget}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{shmread}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{shmwrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{shmctl}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{shmget}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{shmread}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{shmwrite}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{shostent}{0} = $bf[0];
-@{$bits{shutdown}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{shutdown}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{sin}{0} = $bf[0];
@{$bits{sle}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{sleep}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{sleep}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{slt}}{1,0} = ($bf[1], $bf[1]);
@{$bits{smartmatch}}{1,0} = ($bf[1], $bf[1]);
@{$bits{sne}}{1,0} = ($bf[1], $bf[1]);
$bits{snetent}{0} = $bf[0];
-@{$bits{socket}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{sockpair}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{socket}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{sockpair}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{sort}}{6,5,4,3,2,1,0} = ('OPpSORT_STABLE', 'OPpSORT_QSORT', 'OPpSORT_DESCEND', 'OPpSORT_INPLACE', 'OPpSORT_REVERSE', 'OPpSORT_INTEGER', 'OPpSORT_NUMERIC');
-@{$bits{splice}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-$bits{split}{7} = 'OPpSPLIT_IMPLIM';
-@{$bits{sprintf}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{splice}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{split}}{4,3,2} = ('OPpSPLIT_ASSIGN', 'OPpSPLIT_LEX', 'OPpSPLIT_IMPLIM');
+@{$bits{sprintf}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{sprotoent}{0} = $bf[0];
$bits{sqrt}{0} = $bf[0];
-@{$bits{srand}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{srand}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{srefgen}{0} = $bf[0];
-@{$bits{sselect}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{sselect}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{sservent}{0} = $bf[0];
-@{$bits{ssockopt}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{ssockopt}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{stat}{0} = $bf[0];
-@{$bits{stringify}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{stringify}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{study}{0} = $bf[0];
$bits{substcont}{0} = $bf[0];
-@{$bits{substr}}{4,2,1,0} = ('OPpSUBSTR_REPL_FIRST', $bf[2], $bf[2], $bf[2]);
+@{$bits{substr}}{4,2,1,0} = ('OPpSUBSTR_REPL_FIRST', $bf[3], $bf[3], $bf[3]);
@{$bits{subtract}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{symlink}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{syscall}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{sysopen}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{sysread}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{sysseek}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{system}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{syswrite}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{tell}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{symlink}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{syscall}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{sysopen}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{sysread}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{sysseek}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{system}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{syswrite}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{tell}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{telldir}{0} = $bf[0];
-@{$bits{tie}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{tie}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{tied}{0} = $bf[0];
-@{$bits{truncate}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{truncate}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{uc}{0} = $bf[0];
$bits{ucfirst}{0} = $bf[0];
-@{$bits{umask}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{umask}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{undef}{0} = $bf[0];
-@{$bits{unlink}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{unpack}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{unshift}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{unlink}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{unpack}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{unshift}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{untie}{0} = $bf[0];
-@{$bits{utime}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{utime}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
$bits{values}{0} = $bf[0];
@{$bits{vec}}{1,0} = ($bf[1], $bf[1]);
-@{$bits{waitpid}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
-@{$bits{warn}}{3,2,1,0} = ($bf[3], $bf[3], $bf[3], $bf[3]);
+@{$bits{waitpid}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
+@{$bits{warn}}{3,2,1,0} = ($bf[4], $bf[4], $bf[4], $bf[4]);
@{$bits{xor}}{1,0} = ($bf[1], $bf[1]);
@@ -565,11 +586,16 @@ our %defines = (
OPpARG2_MASK => 3,
OPpARG3_MASK => 7,
OPpARG4_MASK => 15,
+ OPpARGELEM_AV => 2,
+ OPpARGELEM_HV => 4,
+ OPpARGELEM_MASK => 6,
+ OPpARGELEM_SV => 0,
OPpASSIGN_BACKWARDS => 64,
OPpASSIGN_COMMON_AGG => 16,
OPpASSIGN_COMMON_RC1 => 32,
OPpASSIGN_COMMON_SCALAR => 64,
OPpASSIGN_CV_TO_GV => 128,
+ OPpAVHVSWITCH_MASK => 3,
OPpCONST_BARE => 64,
OPpCONST_ENTERED => 16,
OPpCONST_NOVER => 2,
@@ -634,7 +660,6 @@ our %defines = (
OPpREFCOUNTED => 64,
OPpREPEAT_DOLIST => 64,
OPpREVERSE_INPLACE => 8,
- OPpRUNTIME => 64,
OPpSLICE => 64,
OPpSLICEWARNING => 4,
OPpSORT_DESCEND => 16,
@@ -644,7 +669,9 @@ our %defines = (
OPpSORT_QSORT => 32,
OPpSORT_REVERSE => 4,
OPpSORT_STABLE => 64,
- OPpSPLIT_IMPLIM => 128,
+ OPpSPLIT_ASSIGN => 16,
+ OPpSPLIT_IMPLIM => 4,
+ OPpSPLIT_LEX => 8,
OPpSUBSTR_REPL_FIRST => 16,
OPpTARGET_MY => 16,
OPpTRANS_COMPLEMENT => 32,
@@ -659,6 +686,9 @@ our %defines = (
our %labels = (
OPpALLOW_FAKE => 'FAKE',
+ OPpARGELEM_AV => 'AV',
+ OPpARGELEM_HV => 'HV',
+ OPpARGELEM_SV => 'SV',
OPpASSIGN_BACKWARDS => 'BKWARD',
OPpASSIGN_COMMON_AGG => 'COM_AGG',
OPpASSIGN_COMMON_RC1 => 'COM_RC1',
@@ -724,7 +754,6 @@ our %labels = (
OPpREFCOUNTED => 'REFC',
OPpREPEAT_DOLIST => 'DOLIST',
OPpREVERSE_INPLACE => 'INPLACE',
- OPpRUNTIME => 'RTIME',
OPpSLICE => 'SLICE',
OPpSLICEWARNING => 'SLICEWARN',
OPpSORT_DESCEND => 'DESC',
@@ -734,7 +763,9 @@ our %labels = (
OPpSORT_QSORT => 'QSORT',
OPpSORT_REVERSE => 'REV',
OPpSORT_STABLE => 'STABLE',
+ OPpSPLIT_ASSIGN => 'ASSIGN',
OPpSPLIT_IMPLIM => 'IMPLIM',
+ OPpSPLIT_LEX => 'LEX',
OPpSUBSTR_REPL_FIRST => 'REPL1ST',
OPpTARGET_MY => 'TARGMY',
OPpTRANS_COMPLEMENT => 'COMPL',
@@ -770,9 +801,9 @@ our %ops_using = (
OPpLIST_GUESSED => [qw(list)],
OPpLVALUE => [qw(leave leaveloop)],
OPpLVAL_DEFER => [qw(aelem helem multideref)],
- OPpLVAL_INTRO => [qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv)],
+ OPpLVAL_INTRO => [qw(aelem aslice cond_expr delete enteriter entersub gvsv helem hslice list lvavref lvref lvrefslice multideref padav padhv padrange padsv pushmark refassign rv2av rv2gv rv2hv rv2sv split)],
OPpLVREF_ELEM => [qw(lvref refassign)],
- OPpMAYBE_LVSUB => [qw(aassign aelem aslice av2arylen helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr vec)],
+ OPpMAYBE_LVSUB => [qw(aassign aelem akeys aslice av2arylen avhvswitch helem hslice keys kvaslice kvhslice multideref padav padhv pos rv2av rv2gv rv2hv substr vec)],
OPpMAYBE_TRUEBOOL => [qw(padhv rv2hv)],
OPpMULTIDEREF_DELETE => [qw(multideref)],
OPpOFFBYONE => [qw(caller runcv wantarray)],
@@ -783,11 +814,10 @@ our %ops_using = (
OPpREFCOUNTED => [qw(leave leaveeval leavesub leavesublv leavewrite)],
OPpREPEAT_DOLIST => [qw(repeat)],
OPpREVERSE_INPLACE => [qw(reverse)],
- OPpRUNTIME => [qw(match pushre qr subst substcont)],
OPpSLICE => [qw(delete)],
OPpSLICEWARNING => [qw(aslice hslice padav padhv rv2av rv2hv)],
OPpSORT_DESCEND => [qw(sort)],
- OPpSPLIT_IMPLIM => [qw(split)],
+ OPpSPLIT_ASSIGN => [qw(split)],
OPpSUBSTR_REPL_FIRST => [qw(substr)],
OPpTARGET_MY => [qw(abs add atan2 chdir chmod chomp chown chr chroot concat cos crypt divide exec exp flock getpgrp getppid getpriority hex i_add i_divide i_modulo i_multiply i_subtract index int kill left_shift length link log mkdir modulo multiply nbit_and nbit_or nbit_xor ncomplement oct ord pow push rand rename right_shift rindex rmdir schomp scomplement setpgrp setpriority sin sleep sqrt srand stringify subtract symlink system time unlink unshift utime wait waitpid)],
OPpTRANS_COMPLEMENT => [qw(trans transr)],
@@ -824,6 +854,8 @@ $ops_using{OPpSORT_NUMERIC} = $ops_using{OPpSORT_DESCEND};
$ops_using{OPpSORT_QSORT} = $ops_using{OPpSORT_DESCEND};
$ops_using{OPpSORT_REVERSE} = $ops_using{OPpSORT_DESCEND};
$ops_using{OPpSORT_STABLE} = $ops_using{OPpSORT_DESCEND};
+$ops_using{OPpSPLIT_IMPLIM} = $ops_using{OPpSPLIT_ASSIGN};
+$ops_using{OPpSPLIT_LEX} = $ops_using{OPpSPLIT_ASSIGN};
$ops_using{OPpTRANS_DELETE} = $ops_using{OPpTRANS_COMPLEMENT};
$ops_using{OPpTRANS_FROM_UTF} = $ops_using{OPpTRANS_COMPLEMENT};
$ops_using{OPpTRANS_GROWS} = $ops_using{OPpTRANS_COMPLEMENT};
diff --git a/Master/tlpkg/tlperl/lib/B/Terse.pm b/Master/tlpkg/tlperl/lib/B/Terse.pm
index 8e551c5a62f..1749f326a13 100644
--- a/Master/tlpkg/tlperl/lib/B/Terse.pm
+++ b/Master/tlpkg/tlperl/lib/B/Terse.pm
@@ -1,6 +1,6 @@
package B::Terse;
-our $VERSION = '1.06';
+our $VERSION = '1.07';
use strict;
use B qw(class @specialsv_name);
@@ -33,7 +33,7 @@ sub indent {
# Don't use this, at least on OPs in subroutines: it has no way of
# getting to the pad, and will give wrong answers or crash.
sub B::OP::terse {
- carp "B::OP::terse is deprecated; use B::Concise instead";
+ carp "B::OP::terse is deprecated and will go away in Perl 5.28; use B::Concise instead";
B::Concise::b_terse(@_);
}
diff --git a/Master/tlpkg/tlperl/lib/B/Xref.pm b/Master/tlpkg/tlperl/lib/B/Xref.pm
index 8beb243f71f..255ee890bd5 100644
--- a/Master/tlpkg/tlperl/lib/B/Xref.pm
+++ b/Master/tlpkg/tlperl/lib/B/Xref.pm
@@ -1,6 +1,6 @@
package B::Xref;
-our $VERSION = '1.05';
+our $VERSION = '1.06';
=head1 NAME
@@ -449,7 +449,7 @@ sub compile {
last OPTION;
} elsif ($opt eq "o") {
$arg ||= shift @options;
- open(STDOUT, ">$arg") or return "$arg: $!\n";
+ open(STDOUT, '>', $arg) or return "$arg: $!\n";
} elsif ($opt eq "d") {
$nodefs = 1;
} elsif ($opt eq "r") {
diff --git a/Master/tlpkg/tlperl/lib/CORE.pod b/Master/tlpkg/tlperl/lib/CORE.pod
index ce5feb5908a..e40b2d0aa95 100644
--- a/Master/tlpkg/tlperl/lib/CORE.pod
+++ b/Master/tlpkg/tlperl/lib/CORE.pod
@@ -49,10 +49,8 @@ ampersand syntax and through references does not work for the following
functions, as they have special syntax that cannot always be translated
into a simple list (e.g., C<eof> vs C<eof()>):
-C<chdir>, C<chomp>, C<chop>, C<defined>, C<delete>, C<each>,
-C<eof>, C<exec>, C<exists>, C<keys>, C<lstat>, C<pop>, C<push>,
-C<shift>, C<splice>, C<split>, C<stat>, C<system>, C<truncate>,
-C<unlink>, C<unshift>, C<values>
+C<chdir>, C<chomp>, C<chop>, C<defined>, C<delete>, C<eof>, C<exec>,
+C<exists>, C<lstat>, C<split>, C<stat>, C<system>, C<truncate>, C<unlink>
=head1 OVERRIDING CORE FUNCTIONS
diff --git a/Master/tlpkg/tlperl/lib/CORE/XSUB.h b/Master/tlpkg/tlperl/lib/CORE/XSUB.h
index e64bc83b929..e74abae26fd 100644
--- a/Master/tlpkg/tlperl/lib/CORE/XSUB.h
+++ b/Master/tlpkg/tlperl/lib/CORE/XSUB.h
@@ -93,12 +93,7 @@ is a lexical C<$_> in scope.
*/
#ifndef PERL_UNUSED_ARG
-# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
-# include <note.h>
-# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
-# else
-# define PERL_UNUSED_ARG(x) ((void)x)
-# endif
+# define PERL_UNUSED_ARG(x) ((void)x)
#endif
#ifndef PERL_UNUSED_VAR
# define PERL_UNUSED_VAR(x) ((void)x)
@@ -164,12 +159,7 @@ is a lexical C<$_> in scope.
#define dITEMS I32 items = (I32)(SP - MARK)
-#if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
-# define dXSARGS \
- NOTE(ARGUNUSED(cv)) \
- dSP; dAXMARK; dITEMS
-#else
-# define dXSARGS \
+#define dXSARGS \
dSP; dAXMARK; dITEMS
/* These 3 macros are replacements for dXSARGS macro only in bootstrap.
They factor out common code in every BOOT XSUB. Computation of vars mark
@@ -177,19 +167,18 @@ is a lexical C<$_> in scope.
optimized away since BOOT must return &PL_sv_yes by default from xsubpp.
Note these macros are not drop in replacements for dXSARGS since they set
PL_xsubfilename. */
-# define dXSBOOTARGSXSAPIVERCHK \
+#define dXSBOOTARGSXSAPIVERCHK \
I32 ax = XS_BOTHVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \
SV **mark = PL_stack_base + ax; dSP; dITEMS
-# define dXSBOOTARGSAPIVERCHK \
+#define dXSBOOTARGSAPIVERCHK \
I32 ax = XS_APIVERSION_SETXSUBFN_POPMARK_BOOTCHECK; \
SV **mark = PL_stack_base + ax; dSP; dITEMS
/* dXSBOOTARGSNOVERCHK has no API in xsubpp to choose it so do
#undef dXSBOOTARGSXSAPIVERCHK
#define dXSBOOTARGSXSAPIVERCHK dXSBOOTARGSNOVERCHK */
-# define dXSBOOTARGSNOVERCHK \
+#define dXSBOOTARGSNOVERCHK \
I32 ax = XS_SETXSUBFN_POPMARK; \
SV **mark = PL_stack_base + ax; dSP; dITEMS
-#endif
#define dXSTARG SV * const targ = ((PL_op->op_private & OPpENTERSUB_HASTARG) \
? PAD_SV(PL_op->op_targ) : sv_newmortal())
diff --git a/Master/tlpkg/tlperl/lib/CORE/av.h b/Master/tlpkg/tlperl/lib/CORE/av.h
index d6d21378e4c..97ce2bc3bb8 100644
--- a/Master/tlpkg/tlperl/lib/CORE/av.h
+++ b/Master/tlpkg/tlperl/lib/CORE/av.h
@@ -81,14 +81,12 @@ Same as C<av_top_index()>.
? mg_size(MUTABLE_SV(av)) : AvFILLp(av))
#define av_tindex(av) av_top_index(av)
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
/* Note that it doesn't make sense to do this:
* SvGETMAGIC(av); IV x = av_tindex_nomg(av);
- * This name is controversial, and so is restricted by the #ifdef to the places
- * it already occurs
*/
-# define av_tindex_nomg(av) (__ASSERT_(SvTYPE(av) == SVt_PVAV) AvFILLp(av))
-#endif
+# define av_top_index_skip_len_mg(av) \
+ (__ASSERT_(SvTYPE(av) == SVt_PVAV) AvFILLp(av))
+# define av_tindex_skip_len_mg(av) av_top_index_skip_len_mg(av)
#define NEGATIVE_INDICES_VAR "NEGATIVE_INDICES"
diff --git a/Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h b/Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h
index 6abd325442f..7b5b7eae1cb 100644
--- a/Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h
+++ b/Master/tlpkg/tlperl/lib/CORE/charclass_invlists.h
@@ -42,8 +42,1291 @@ static const UV ASCII_invlist[] = { /* for ASCII/Latin1 */
0x80
};
+static const UV Assigned_invlist[] = { /* for ASCII/Latin1 */
+ 1276, /* 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,
+ 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,
+ 0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 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,
+ 0xAF9,
+ 0xAFA,
+ 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,
+ 0xC5B,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 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,
+ 0xD50,
+ 0xD54,
+ 0xD64,
+ 0xD66,
+ 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,
+ 0x13F6,
+ 0x13F8,
+ 0x13FE,
+ 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,
+ 0x1C89,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFB,
+ 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,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BF,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218C,
+ 0x2190,
+ 0x23FF,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2BEC,
+ 0x2BF0,
+ 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,
+ 0x2E45,
+ 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,
+ 0x9FD6,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA6F8,
+ 0xA700,
+ 0xA7AF,
+ 0xA7B0,
+ 0xA7B8,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C6,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FE,
+ 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,
+ 0xAB66,
+ 0xAB70,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 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,
+ 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,
+ 0x1018F,
+ 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,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
+ 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,
+ 0x108E0,
+ 0x108F3,
+ 0x108F4,
+ 0x108F6,
+ 0x108FB,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BC,
+ 0x109D0,
+ 0x109D2,
+ 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,
+ 0x10C80,
+ 0x10CB3,
+ 0x10CC0,
+ 0x10CF3,
+ 0x10CFA,
+ 0x10D00,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111CE,
+ 0x111D0,
+ 0x111E0,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123F,
+ 0x11280,
+ 0x11287,
+ 0x11288,
+ 0x11289,
+ 0x1128A,
+ 0x1128E,
+ 0x1128F,
+ 0x1129E,
+ 0x1129F,
+ 0x112AA,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11300,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11350,
+ 0x11351,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115DE,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11660,
+ 0x1166D,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x11700,
+ 0x1171A,
+ 0x1171D,
+ 0x1172C,
+ 0x11730,
+ 0x11740,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
+ 0x12000,
+ 0x1239A,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x12480,
+ 0x12544,
+ 0x13000,
+ 0x1342F,
+ 0x14400,
+ 0x14647,
+ 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,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1E9,
+ 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,
+ 0x1DA8C,
+ 0x1DA9B,
+ 0x1DAA0,
+ 0x1DAA1,
+ 0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
+ 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,
+ 0x1F1AD,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F6D3,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F7,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F910,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
+ 0x1F980,
+ 0x1F992,
+ 0x1F9C0,
+ 0x1F9C1,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2B820,
+ 0x2CEA2,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
+
static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
- 263, /* Number of elements */
+ 271, /* 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 */
@@ -112,6 +1395,8 @@ static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
0x13F6,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D00,
0x1DC0,
0x1E00,
@@ -217,7 +1502,7 @@ static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
0xA78B,
0xA78F,
0xA790,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F8,
@@ -238,6 +1523,10 @@ static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
0xFF5B,
0x10400,
0x10450,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10C80,
0x10CB3,
0x10CC0,
@@ -304,6 +1593,8 @@ static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1E900,
+ 0x1E944,
0x1F130,
0x1F14A,
0x1F150,
@@ -369,7 +1660,7 @@ static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for ASCII/Latin1 */
};
static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
- 247, /* Number of elements */
+ 253, /* 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 */
@@ -419,8 +1710,6 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
0x265,
0x267,
0x268,
- 0x26A,
- 0x26B,
0x26D,
0x26F,
0x270,
@@ -500,6 +1789,8 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
0x13F6,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D79,
0x1D7A,
0x1D7D,
@@ -597,7 +1888,7 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
0xA790,
0xA794,
0xA796,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xAB53,
@@ -614,12 +1905,18 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
0xFF5B,
0x10400,
0x10450,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10C80,
0x10CB3,
0x10CC0,
0x10CF3,
0x118A0,
- 0x118E0
+ 0x118E0,
+ 0x1E900,
+ 0x1E944
};
static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for ASCII/Latin1 */
@@ -693,7 +1990,7 @@ static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for ASCII/Latin1 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
- 1502, /* Number of elements */
+ 1615, /* 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 */
@@ -760,6 +2057,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x82E,
0x859,
0x85C,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x903,
0x904,
@@ -908,6 +2207,7 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0xD4A,
0xD4D,
0xD4E,
+ 0xD4F,
0xD57,
0xD58,
0xD62,
@@ -1016,6 +2316,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x180B,
0x180E,
0x180F,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x1920,
@@ -1102,10 +2404,11 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x1CFA,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x200B,
0x200C,
+ 0x200D,
0x200E,
0x2010,
0x2028,
@@ -1114,6 +2417,14 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x2070,
0x20D0,
0x20F1,
+ 0x261D,
+ 0x261E,
+ 0x26F9,
+ 0x26FA,
+ 0x270A,
+ 0x270E,
+ 0x2764,
+ 0x2765,
0x2CEF,
0x2CF2,
0x2D7F,
@@ -1146,7 +2457,7 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0xA882,
0xA8B4,
0xA8C4,
- 0xA8C5,
+ 0xA8C6,
0xA8E0,
0xA8F2,
0xA926,
@@ -2073,6 +3384,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x111B6,
0x111BF,
0x111C1,
+ 0x111C2,
+ 0x111C4,
0x111CA,
0x111CD,
0x1122C,
@@ -2082,6 +3395,8 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x11235,
0x11236,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x112DF,
0x112E0,
0x112E3,
@@ -2108,6 +3423,13 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x1136D,
0x11370,
0x11375,
+ 0x11435,
+ 0x11438,
+ 0x11440,
+ 0x11442,
+ 0x11445,
+ 0x11446,
+ 0x11447,
0x114B0,
0x114B1,
0x114B3,
@@ -2152,6 +3474,22 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x11726,
0x11727,
0x1172C,
+ 0x11C2F,
+ 0x11C30,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3E,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CAA,
+ 0x11CB1,
+ 0x11CB2,
+ 0x11CB4,
+ 0x11CB5,
+ 0x11CB7,
0x16AF0,
0x16AF5,
0x16B30,
@@ -2191,11 +3529,83 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E8D0,
0x1E8D7,
+ 0x1E944,
+ 0x1E94B,
0x1F1E6,
0x1F200,
+ 0x1F385,
+ 0x1F386,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
+ 0x1F3FB,
+ 0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
+ 0x1F48B,
+ 0x1F48C,
+ 0x1F4AA,
+ 0x1F4AB,
+ 0x1F575,
+ 0x1F576,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
+ 0x1F5E8,
+ 0x1F5E9,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
+ 0x1F650,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
0xE0000,
+ 0xE0020,
+ 0xE0080,
0xE0100,
0xE01F0,
0xE1000
@@ -2205,23 +3615,28 @@ static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
#if defined(PERL_IN_REGEXEC_C)
-#define GCB_ENUM_COUNT 14
+#define GCB_ENUM_COUNT 19
typedef enum {
GCB_Other = 0,
GCB_CR = 1,
GCB_Control = 2,
- GCB_Extend = 3,
- GCB_L = 4,
- GCB_LF = 5,
- GCB_LV = 6,
- GCB_LVT = 7,
- GCB_Prepend = 8,
- GCB_Regional_Indicator = 9,
- GCB_SpacingMark = 10,
- GCB_T = 11,
- GCB_V = 12,
- GCB_EDGE = 13
+ GCB_E_Base = 3,
+ GCB_E_Base_GAZ = 4,
+ GCB_E_Modifier = 5,
+ GCB_Extend = 6,
+ GCB_Glue_After_Zwj = 7,
+ GCB_L = 8,
+ GCB_LF = 9,
+ GCB_LV = 10,
+ GCB_LVT = 11,
+ GCB_Prepend = 12,
+ GCB_Regional_Indicator = 13,
+ GCB_SpacingMark = 14,
+ GCB_T = 15,
+ GCB_V = 16,
+ GCB_ZWJ = 17,
+ GCB_EDGE = 18
} GCB_enum;
static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
@@ -2249,7 +3664,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -2260,7 +3675,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -2268,7 +3683,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -2289,6 +3704,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Prepend,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_Extend,
@@ -2435,6 +3852,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_SpacingMark,
GCB_Extend,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -2547,6 +3965,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_SpacingMark,
@@ -2634,6 +4054,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Control,
GCB_Extend,
+ GCB_ZWJ,
GCB_Control,
GCB_Other,
GCB_Control,
@@ -2642,6 +4063,14 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_Extend,
@@ -3584,7 +5013,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -3601,6 +5030,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
+ GCB_Prepend,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_SpacingMark,
@@ -3611,6 +5042,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -3636,6 +5069,13 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
@@ -3680,6 +5120,22 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_Extend,
@@ -3721,8 +5177,80 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Regional_Indicator,
GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Modifier,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base_GAZ,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
GCB_Control,
GCB_Extend,
GCB_Control,
@@ -3734,7 +5262,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
#if defined(PERL_IN_UTF8_C)
static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
- 1317, /* Number of elements */
+ 1367, /* 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 */
@@ -3839,6 +5367,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x964,
0x966,
@@ -4017,7 +5549,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -4059,7 +5591,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0xD49,
0xD4A,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -4295,6 +5827,8 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -4303,7 +5837,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -4472,7 +6006,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -4480,7 +6014,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0xA840,
0xA874,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -4657,6 +6191,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -4761,6 +6299,8 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -4805,6 +6345,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C6,
0x114C7,
@@ -4839,6 +6383,20 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -4875,6 +6433,12 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -4973,10 +6537,24 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -5058,7 +6636,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
};
static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
- 1129, /* Number of elements */
+ 1161, /* 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 */
@@ -5163,6 +6741,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
0x904,
0x93A,
0x93D,
@@ -5291,6 +6871,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0xC5B,
0xC60,
0xC62,
+ 0xC80,
+ 0xC81,
0xC85,
0xC8D,
0xC8E,
@@ -5319,6 +6901,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0xD3E,
0xD4E,
0xD4F,
+ 0xD54,
+ 0xD57,
0xD5F,
0xD62,
0xD7A,
@@ -5513,6 +7097,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -5680,7 +7266,7 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -5867,6 +7453,10 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0x103D6,
0x10400,
0x1049E,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -5989,6 +7579,10 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0x11351,
0x1135D,
0x11362,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
0x11480,
0x114B0,
0x114C4,
@@ -6013,6 +7607,14 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C72,
+ 0x11C90,
0x12000,
0x1239A,
0x12400,
@@ -6043,6 +7645,12 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0x16F51,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -6115,6 +7723,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -6198,7 +7808,7 @@ static const UV _Perl_IDStart_invlist[] = { /* for ASCII/Latin1 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
- 2156, /* Number of elements */
+ 2267, /* 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 */
@@ -6344,6 +7954,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x82E,
0x859,
0x85C,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -6641,6 +8253,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x180F,
0x1810,
0x181A,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x1920,
@@ -6705,7 +8319,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1CFA,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1FFD,
0x1FFE,
@@ -6714,6 +8328,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x2008,
0x200B,
0x200C,
+ 0x200D,
+ 0x200E,
0x2010,
0x2011,
0x2012,
@@ -6796,6 +8412,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x2618,
0x2619,
0x261A,
+ 0x261D,
+ 0x261E,
0x2620,
0x2639,
0x263C,
@@ -6822,15 +8440,19 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x26F1,
0x26F6,
0x26F7,
+ 0x26F9,
+ 0x26FA,
0x26FB,
0x26FD,
0x2705,
0x2708,
+ 0x270A,
0x270E,
0x275B,
0x2761,
0x2762,
0x2764,
+ 0x2765,
0x2768,
0x2769,
0x276A,
@@ -6935,6 +8557,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x2E40,
0x2E42,
0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -7085,7 +8708,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8D0,
0xA8DA,
@@ -8060,6 +9683,15 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0xFF71,
0xFF9E,
0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
0xFFE0,
0xFFE1,
0xFFE2,
@@ -8152,6 +9784,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1123A,
0x1123B,
0x1123D,
+ 0x1123E,
+ 0x1123F,
0x112A9,
0x112AA,
0x112DF,
@@ -8176,6 +9810,14 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1136D,
0x11370,
0x11375,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x1144F,
+ 0x11450,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
0x114B0,
0x114C4,
0x114D0,
@@ -8196,6 +9838,8 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x11643,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x116AB,
0x116B8,
0x116C0,
@@ -8208,6 +9852,21 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1173F,
0x118E0,
0x118EA,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C46,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C70,
+ 0x11C71,
+ 0x11C72,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12470,
0x12475,
0x13258,
@@ -8244,6 +9903,12 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x16F7F,
0x16F8F,
0x16F93,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC9D,
@@ -8276,44 +9941,73 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E8D0,
0x1E8D7,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1F000,
- 0x1F02C,
- 0x1F030,
- 0x1F094,
- 0x1F0A0,
- 0x1F0AF,
- 0x1F0B1,
- 0x1F0C0,
- 0x1F0C1,
- 0x1F0D0,
- 0x1F0D1,
- 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F1AD,
0x1F1E6,
0x1F200,
- 0x1F203,
- 0x1F210,
- 0x1F23B,
- 0x1F240,
- 0x1F249,
- 0x1F250,
- 0x1F252,
- 0x1F300,
+ 0x1F385,
+ 0x1F386,
0x1F39C,
0x1F39E,
0x1F3B5,
0x1F3B7,
0x1F3BC,
0x1F3BD,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
0x1F3FB,
0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
0x1F4A0,
0x1F4A1,
0x1F4A2,
0x1F4A3,
0x1F4A4,
0x1F4A5,
+ 0x1F4AA,
+ 0x1F4AB,
0x1F4AF,
0x1F4B0,
0x1F4B1,
@@ -8324,30 +10018,57 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
0x1F525,
0x1F532,
0x1F54A,
+ 0x1F575,
+ 0x1F576,
0x1F57A,
0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
0x1F5D4,
0x1F5DC,
0x1F5F4,
0x1F5FA,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
0x1F650,
0x1F676,
0x1F679,
0x1F67C,
0x1F680,
- 0x1F6D1,
- 0x1F6E0,
- 0x1F6ED,
- 0x1F6F0,
- 0x1F6F4,
- 0x1F910,
- 0x1F919,
- 0x1F980,
- 0x1F985,
- 0x1F9C0,
- 0x1F9C1,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
+ 0x1FFFE,
0x20000,
0x2FFFE,
0x30000,
@@ -8364,7 +10085,7 @@ static const UV _Perl_LB_invlist[] = { /* for ASCII/Latin1 */
#if defined(PERL_IN_REGEXEC_C)
-#define LB_ENUM_COUNT 36
+#define LB_ENUM_COUNT 39
typedef enum {
LB_Alphabetic = 0,
@@ -8377,32 +10098,35 @@ typedef enum {
LB_Close_Punctuation = 7,
LB_Combining_Mark = 8,
LB_Contingent_Break = 9,
- LB_Exclamation = 10,
- LB_Glue = 11,
- LB_H2 = 12,
- LB_H3 = 13,
- LB_Hebrew_Letter = 14,
- LB_Hyphen = 15,
- LB_Ideographic = 16,
- LB_Infix_Numeric = 17,
- LB_Inseparable = 18,
- LB_JL = 19,
- LB_JT = 20,
- LB_JV = 21,
- LB_Line_Feed = 22,
- LB_Mandatory_Break = 23,
- LB_Next_Line = 24,
- LB_Nonstarter = 25,
- LB_Numeric = 26,
- LB_Open_Punctuation = 27,
- LB_Postfix_Numeric = 28,
- LB_Prefix_Numeric = 29,
- LB_Quotation = 30,
- LB_Regional_Indicator = 31,
- LB_Space = 32,
- LB_Word_Joiner = 33,
- LB_ZWSpace = 34,
- LB_EDGE = 35
+ LB_E_Base = 10,
+ LB_E_Modifier = 11,
+ LB_Exclamation = 12,
+ LB_Glue = 13,
+ LB_H2 = 14,
+ LB_H3 = 15,
+ LB_Hebrew_Letter = 16,
+ LB_Hyphen = 17,
+ LB_Ideographic = 18,
+ LB_Infix_Numeric = 19,
+ LB_Inseparable = 20,
+ LB_JL = 21,
+ LB_JT = 22,
+ LB_JV = 23,
+ LB_Line_Feed = 24,
+ LB_Mandatory_Break = 25,
+ LB_Next_Line = 26,
+ LB_Nonstarter = 27,
+ LB_Numeric = 28,
+ LB_Open_Punctuation = 29,
+ LB_Postfix_Numeric = 30,
+ LB_Prefix_Numeric = 31,
+ LB_Quotation = 32,
+ LB_Regional_Indicator = 33,
+ LB_Space = 34,
+ LB_Word_Joiner = 35,
+ LB_ZWJ = 36,
+ LB_ZWSpace = 37,
+ LB_EDGE = 38
} LB_enum;
static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
@@ -8557,6 +10281,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Numeric,
LB_Alphabetic,
@@ -8851,6 +10577,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Exclamation,
LB_Numeric,
LB_Alphabetic,
@@ -8918,6 +10646,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Break_After,
LB_ZWSpace,
LB_Combining_Mark,
+ LB_ZWJ,
+ LB_Combining_Mark,
LB_Break_After,
LB_Glue,
LB_Break_After,
@@ -9000,6 +10730,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -9026,14 +10758,18 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
LB_Alphabetic,
LB_Quotation,
LB_Alphabetic,
LB_Exclamation,
+ LB_Ideographic,
LB_Alphabetic,
LB_Open_Punctuation,
LB_Close_Punctuation,
@@ -9138,6 +10874,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Break_After,
LB_Open_Punctuation,
+ LB_Break_After,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -10259,10 +11996,19 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Open_Punctuation,
LB_Close_Punctuation,
LB_Nonstarter,
- LB_Alphabetic,
+ LB_Ideographic,
LB_Nonstarter,
- LB_Alphabetic,
+ LB_Ideographic,
LB_Nonstarter,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
LB_Alphabetic,
LB_Postfix_Numeric,
LB_Prefix_Numeric,
@@ -10356,6 +12102,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Combining_Mark,
@@ -10382,6 +12130,14 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -10400,6 +12156,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
+ LB_Break_Before,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Numeric,
@@ -10412,6 +12170,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Break_Before,
+ LB_Exclamation,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Open_Punctuation,
@@ -10448,6 +12221,12 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Combining_Mark,
@@ -10482,9 +12261,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Combining_Mark,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Open_Punctuation,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -10494,9 +12285,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
+ LB_Ideographic,
LB_Regional_Indicator,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -10504,17 +12296,27 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Modifier,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -10522,6 +12324,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -10532,15 +12336,36 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
LB_Alphabetic,
LB_Quotation,
LB_Nonstarter,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -10551,6 +12376,16 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -10569,7 +12404,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for ASCII/Latin1 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
- 2896, /* Number of elements */
+ 2957, /* 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 */
@@ -11276,6 +13111,10 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -11480,6 +13319,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xC64,
0xC66,
0xC70,
+ 0xC80,
0xC81,
0xC84,
0xC85,
@@ -11527,6 +13367,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xD4A,
0xD4E,
0xD4F,
+ 0xD54,
0xD57,
0xD58,
0xD5F,
@@ -11766,6 +13607,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1820,
0x1878,
0x1880,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x18AB,
@@ -11839,6 +13682,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1C5A,
0x1C7E,
0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -11853,7 +13697,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1D00,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1E01,
0x1E02,
@@ -12697,7 +14541,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xA7A8,
0xA7A9,
0xA7AA,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B5,
0xA7B6,
@@ -12721,7 +14565,7 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8D0,
0xA8DA,
@@ -12969,6 +14813,10 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -13103,6 +14951,8 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1123A,
0x1123B,
0x1123D,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -13152,6 +15002,13 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x1144D,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114B0,
0x114C4,
@@ -13200,6 +15057,23 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C43,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -13244,6 +15118,12 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x16F8F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -13375,10 +15255,26 @@ static const UV _Perl_SB_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E922,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -14200,6 +16096,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
SB_Extend,
SB_OLetter,
SB_Extend,
@@ -14404,6 +16304,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Numeric,
SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -14451,6 +16352,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Extend,
SB_OLetter,
SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -14692,6 +16594,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_OLetter,
SB_Extend,
SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -14762,6 +16666,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Numeric,
SB_OLetter,
SB_STerm,
+ SB_Lower,
SB_Other,
SB_Extend,
SB_Other,
@@ -15893,6 +17798,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Numeric,
SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -16027,6 +17936,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_STerm,
SB_Other,
+ SB_Extend,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -16079,6 +17990,13 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_OLetter,
SB_Extend,
SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -16127,6 +18045,23 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -16178,6 +18113,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
SB_Extend,
SB_STerm,
SB_Format,
@@ -16299,10 +18240,26 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_Extend,
SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -16389,7 +18346,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
SB_Other,
SB_Format,
SB_Other,
- SB_Format,
+ SB_Extend,
SB_Other,
SB_Extend,
SB_Other
@@ -16400,7 +18357,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for ASCII/Latin1 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
- 1535, /* Number of elements */
+ 1657, /* 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 */
@@ -16575,6 +18532,10 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -16779,6 +18740,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xC64,
0xC66,
0xC70,
+ 0xC80,
0xC81,
0xC84,
0xC85,
@@ -16826,6 +18788,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xD4A,
0xD4E,
0xD4F,
+ 0xD54,
0xD57,
0xD58,
0xD5F,
@@ -17013,6 +18976,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1820,
0x1878,
0x1880,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x18AB,
@@ -17068,6 +19033,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -17082,7 +19049,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1D00,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1F16,
0x1F18,
@@ -17124,6 +19091,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x2000,
0x200B,
0x200C,
+ 0x200D,
0x200E,
0x2010,
0x2018,
@@ -17184,6 +19152,14 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x2189,
0x24B6,
0x24EA,
+ 0x261D,
+ 0x261E,
+ 0x26F9,
+ 0x26FA,
+ 0x270A,
+ 0x270E,
+ 0x2764,
+ 0x2765,
0x2C00,
0x2C2F,
0x2C30,
@@ -17281,7 +19257,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -17298,7 +19274,7 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -17508,6 +19484,10 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -17629,6 +19609,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x11213,
0x1122C,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -17677,6 +19659,12 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114B0,
0x114C4,
@@ -17716,6 +19704,22 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -17755,6 +19759,8 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x16F8F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
0x1B000,
0x1B001,
0x1BC00,
@@ -17855,10 +19861,25 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -17933,6 +19954,64 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
0x1F18A,
0x1F1E6,
0x1F200,
+ 0x1F385,
+ 0x1F386,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
+ 0x1F3FB,
+ 0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
+ 0x1F48B,
+ 0x1F48C,
+ 0x1F4AA,
+ 0x1F4AB,
+ 0x1F575,
+ 0x1F576,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
+ 0x1F5E8,
+ 0x1F5E9,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
+ 0x1F650,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
0xE0001,
0xE0002,
0xE0020,
@@ -17945,29 +20024,34 @@ static const UV _Perl_WB_invlist[] = { /* for ASCII/Latin1 */
#if defined(PERL_IN_REGEXEC_C)
-#define WB_ENUM_COUNT 20
+#define WB_ENUM_COUNT 25
typedef enum {
WB_Other = 0,
WB_ALetter = 1,
WB_CR = 2,
WB_Double_Quote = 3,
- WB_Extend = 4,
- WB_ExtendNumLet = 5,
- WB_Format = 6,
- WB_Hebrew_Letter = 7,
- WB_Katakana = 8,
- WB_LF = 9,
- WB_MidLetter = 10,
- WB_MidNum = 11,
- WB_MidNumLet = 12,
- WB_Newline = 13,
- WB_Numeric = 14,
- WB_Perl_Tailored_HSpace = 15,
- WB_Regional_Indicator = 16,
- WB_Single_Quote = 17,
- WB_EDGE = 18,
- WB_UNKNOWN = 19
+ WB_E_Base = 4,
+ WB_E_Base_GAZ = 5,
+ WB_E_Modifier = 6,
+ WB_Extend = 7,
+ WB_ExtendNumLet = 8,
+ WB_Format = 9,
+ WB_Glue_After_Zwj = 10,
+ WB_Hebrew_Letter = 11,
+ WB_Katakana = 12,
+ WB_LF = 13,
+ WB_MidLetter = 14,
+ WB_MidNum = 15,
+ WB_MidNumLet = 16,
+ WB_Newline = 17,
+ WB_Numeric = 18,
+ WB_Perl_Tailored_HSpace = 19,
+ WB_Regional_Indicator = 20,
+ WB_Single_Quote = 21,
+ WB_ZWJ = 22,
+ WB_EDGE = 23,
+ WB_UNKNOWN = 24
} WB_enum;
static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
@@ -18142,6 +20226,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
WB_Extend,
WB_ALetter,
WB_Extend,
@@ -18346,6 +20434,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_Numeric,
WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -18393,6 +20482,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -18582,6 +20672,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Extend,
WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -18635,6 +20727,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Numeric,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_Extend,
@@ -18691,6 +20785,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Perl_Tailored_HSpace,
WB_Other,
WB_Extend,
+ WB_ZWJ,
WB_Format,
WB_Other,
WB_MidNumLet,
@@ -18700,7 +20795,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_MidLetter,
WB_Newline,
WB_Format,
- WB_Perl_Tailored_HSpace,
+ WB_ExtendNumLet,
WB_Other,
WB_ExtendNumLet,
WB_Other,
@@ -18751,6 +20846,14 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -19114,6 +21217,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_Extend,
@@ -19196,6 +21303,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -19248,6 +21357,12 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_Numeric,
@@ -19286,6 +21401,22 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -19322,6 +21453,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Katakana,
WB_Other,
WB_ALetter,
@@ -19422,11 +21555,26 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_Extend,
WB_Other,
WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -19500,11 +21648,69 @@ static const WB_enum _Perl_WB_invmap[] = { /* for ASCII/Latin1 */
WB_Other,
WB_Regional_Indicator,
WB_Other,
- WB_Format,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Modifier,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base_GAZ,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
WB_Other,
WB_Format,
WB_Other,
WB_Extend,
+ WB_Other,
+ WB_Extend,
WB_Other
};
@@ -19569,7 +21775,7 @@ static const UV XPerlSpace_invlist[] = { /* for ASCII/Latin1 */
};
static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
- 1297, /* Number of elements */
+ 1357, /* 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 */
@@ -19678,6 +21884,10 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E0,
0x8E3,
0x8EA,
0x8F0,
@@ -19864,7 +22074,7 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -19908,7 +22118,7 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0xD4D,
0xD4E,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -20152,6 +22362,8 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -20325,7 +22537,7 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -20340,6 +22552,8 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0xA874,
0xA880,
0xA8C4,
+ 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8F2,
@@ -20498,6 +22712,10 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -20600,6 +22818,8 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0x11235,
0x11237,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -20640,6 +22860,14 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0x11358,
0x1135D,
0x11364,
+ 0x11400,
+ 0x11442,
+ 0x11443,
+ 0x11446,
+ 0x11447,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C2,
0x114C4,
@@ -20678,6 +22906,22 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -20712,6 +22956,12 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0x16F7F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -20786,8 +23036,24 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
+ 0x1E947,
+ 0x1E948,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -20873,7 +23139,7 @@ static const UV XPosixAlnum_invlist[] = { /* for ASCII/Latin1 */
};
static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
- 1235, /* Number of elements */
+ 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 */
@@ -20982,6 +23248,10 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E0,
0x8E3,
0x8EA,
0x8F0,
@@ -21158,7 +23428,7 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0xC5B,
0xC60,
0xC64,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -21200,7 +23470,7 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0xD4D,
0xD4E,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -21422,6 +23692,8 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -21597,7 +23869,7 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -21612,6 +23884,8 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0xA874,
0xA880,
0xA8C4,
+ 0xA8C5,
+ 0xA8C6,
0xA8F2,
0xA8F8,
0xA8FB,
@@ -21762,6 +24036,10 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0x103D6,
0x10400,
0x1049E,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -21858,6 +24136,8 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0x11235,
0x11237,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -21896,6 +24176,12 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0x11358,
0x1135D,
0x11364,
+ 0x11400,
+ 0x11442,
+ 0x11443,
+ 0x11446,
+ 0x11447,
+ 0x1144B,
0x11480,
0x114C2,
0x114C4,
@@ -21926,6 +24212,20 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -21956,6 +24256,12 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0x16F7F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -22028,8 +24334,22 @@ static const UV XPosixAlpha_invlist[] = { /* for ASCII/Latin1 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
+ 0x1E947,
+ 0x1E948,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -22150,7 +24470,7 @@ static const UV XPosixCntrl_invlist[] = { /* for ASCII/Latin1 */
};
static const UV XPosixDigit_invlist[] = { /* for ASCII/Latin1 */
- 103, /* Number of elements */
+ 109, /* 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 */
@@ -22241,6 +24561,8 @@ static const UV XPosixDigit_invlist[] = { /* for ASCII/Latin1 */
0x111DA,
0x112F0,
0x112FA,
+ 0x11450,
+ 0x1145A,
0x114D0,
0x114DA,
0x11650,
@@ -22251,16 +24573,20 @@ static const UV XPosixDigit_invlist[] = { /* for ASCII/Latin1 */
0x1173A,
0x118E0,
0x118EA,
+ 0x11C50,
+ 0x11C5A,
0x16A60,
0x16A6A,
0x16B50,
0x16B5A,
0x1D7CE,
- 0x1D800
+ 0x1D800,
+ 0x1E950,
+ 0x1E95A
};
static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
- 1237, /* Number of elements */
+ 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 */
@@ -22315,7 +24641,9 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x85F,
0x8A0,
0x8B5,
- 0x8E3,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
0x984,
0x985,
0x98D,
@@ -22488,8 +24816,6 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0xC66,
0xC70,
0xC78,
- 0xC80,
- 0xC81,
0xC84,
0xC85,
0xC8D,
@@ -22530,14 +24856,10 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0xD46,
0xD49,
0xD4A,
- 0xD4F,
- 0xD57,
- 0xD58,
- 0xD5F,
+ 0xD50,
+ 0xD54,
0xD64,
0xD66,
- 0xD76,
- 0xD79,
0xD80,
0xD82,
0xD84,
@@ -22740,7 +25062,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x1C3B,
0x1C4A,
0x1C4D,
- 0x1C80,
+ 0x1C89,
0x1CC0,
0x1CC8,
0x1CD0,
@@ -22749,7 +25071,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -22802,7 +25124,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x2100,
0x218C,
0x2190,
- 0x23FB,
+ 0x23FF,
0x2400,
0x2427,
0x2440,
@@ -22854,7 +25176,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -22894,7 +25216,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0xA640,
0xA6F8,
0xA700,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -22904,7 +25226,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0xA840,
0xA878,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8DA,
0xA8E0,
@@ -23028,7 +25350,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x10107,
0x10134,
0x10137,
- 0x1018D,
+ 0x1018F,
0x10190,
0x1019C,
0x101A0,
@@ -23057,6 +25379,10 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -23168,7 +25494,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x11200,
0x11212,
0x11213,
- 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -23213,6 +25539,12 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x11480,
0x114C8,
0x114D0,
@@ -23225,6 +25557,8 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x11645,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x11680,
0x116B8,
0x116C0,
@@ -23241,6 +25575,20 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -23281,6 +25629,12 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -23351,10 +25705,26 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8C7,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -23442,25 +25812,21 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x1F130,
0x1F16C,
0x1F170,
- 0x1F19B,
+ 0x1F1AD,
0x1F1E6,
0x1F203,
0x1F210,
- 0x1F23B,
+ 0x1F23C,
0x1F240,
0x1F249,
0x1F250,
0x1F252,
0x1F300,
- 0x1F57A,
- 0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
- 0x1F6D1,
+ 0x1F6D3,
0x1F6E0,
0x1F6ED,
0x1F6F0,
- 0x1F6F4,
+ 0x1F6F7,
0x1F700,
0x1F774,
0x1F780,
@@ -23476,9 +25842,19 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
0x1F890,
0x1F8AE,
0x1F910,
- 0x1F919,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
0x1F980,
- 0x1F985,
+ 0x1F992,
0x1F9C0,
0x1F9C1,
0x20000,
@@ -23504,7 +25880,7 @@ static const UV XPosixGraph_invlist[] = { /* for ASCII/Latin1 */
};
static const UV XPosixLower_invlist[] = { /* for ASCII/Latin1 */
- 1275, /* Number of elements */
+ 1281, /* 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 */
@@ -24061,6 +26437,8 @@ static const UV XPosixLower_invlist[] = { /* for ASCII/Latin1 */
0x588,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D00,
0x1DC0,
0x1E01,
@@ -24723,6 +27101,8 @@ static const UV XPosixLower_invlist[] = { /* for ASCII/Latin1 */
0xFF5B,
0x10428,
0x10450,
+ 0x104D8,
+ 0x104FC,
0x10CC0,
0x10CF3,
0x118C0,
@@ -24782,11 +27162,13 @@ static const UV XPosixLower_invlist[] = { /* for ASCII/Latin1 */
0x1D7C4,
0x1D7CA,
0x1D7CB,
- 0x1D7CC
+ 0x1D7CC,
+ 0x1E922,
+ 0x1E944
};
static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
- 1231, /* Number of elements */
+ 1281, /* 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 */
@@ -24841,7 +27223,9 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x85F,
0x8A0,
0x8B5,
- 0x8E3,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
0x984,
0x985,
0x98D,
@@ -25014,8 +27398,6 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0xC66,
0xC70,
0xC78,
- 0xC80,
- 0xC81,
0xC84,
0xC85,
0xC8D,
@@ -25056,14 +27438,10 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0xD46,
0xD49,
0xD4A,
- 0xD4F,
- 0xD57,
- 0xD58,
- 0xD5F,
+ 0xD50,
+ 0xD54,
0xD64,
0xD66,
- 0xD76,
- 0xD79,
0xD80,
0xD82,
0xD84,
@@ -25264,7 +27642,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x1C3B,
0x1C4A,
0x1C4D,
- 0x1C80,
+ 0x1C89,
0x1CC0,
0x1CC8,
0x1CD0,
@@ -25273,7 +27651,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -25322,7 +27700,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x2100,
0x218C,
0x2190,
- 0x23FB,
+ 0x23FF,
0x2400,
0x2427,
0x2440,
@@ -25374,7 +27752,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -25414,7 +27792,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0xA640,
0xA6F8,
0xA700,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -25424,7 +27802,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0xA840,
0xA878,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8DA,
0xA8E0,
@@ -25548,7 +27926,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x10107,
0x10134,
0x10137,
- 0x1018D,
+ 0x1018F,
0x10190,
0x1019C,
0x101A0,
@@ -25577,6 +27955,10 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -25688,7 +28070,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x11200,
0x11212,
0x11213,
- 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -25733,6 +28115,12 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x11480,
0x114C8,
0x114D0,
@@ -25745,6 +28133,8 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x11645,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x11680,
0x116B8,
0x116C0,
@@ -25761,6 +28151,20 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -25801,6 +28205,12 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -25871,10 +28281,26 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8C7,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -25962,25 +28388,21 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x1F130,
0x1F16C,
0x1F170,
- 0x1F19B,
+ 0x1F1AD,
0x1F1E6,
0x1F203,
0x1F210,
- 0x1F23B,
+ 0x1F23C,
0x1F240,
0x1F249,
0x1F250,
0x1F252,
0x1F300,
- 0x1F57A,
- 0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
- 0x1F6D1,
+ 0x1F6D3,
0x1F6E0,
0x1F6ED,
0x1F6F0,
- 0x1F6F4,
+ 0x1F6F7,
0x1F700,
0x1F774,
0x1F780,
@@ -25996,9 +28418,19 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
0x1F890,
0x1F8AE,
0x1F910,
- 0x1F919,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
0x1F980,
- 0x1F985,
+ 0x1F992,
0x1F9C0,
0x1F9C1,
0x20000,
@@ -26024,7 +28456,7 @@ static const UV XPosixPrint_invlist[] = { /* for ASCII/Latin1 */
};
static const UV XPosixPunct_invlist[] = { /* for ASCII/Latin1 */
- 313, /* Number of elements */
+ 327, /* 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 */
@@ -26190,7 +28622,7 @@ static const UV XPosixPunct_invlist[] = { /* for ASCII/Latin1 */
0x2E00,
0x2E2F,
0x2E30,
- 0x2E43,
+ 0x2E45,
0x3001,
0x3004,
0x3008,
@@ -26319,14 +28751,26 @@ static const UV XPosixPunct_invlist[] = { /* for ASCII/Latin1 */
0x1123E,
0x112A9,
0x112AA,
+ 0x1144B,
+ 0x11450,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x114C6,
0x114C7,
0x115C1,
0x115D8,
0x11641,
0x11644,
+ 0x11660,
+ 0x1166D,
0x1173C,
0x1173F,
+ 0x11C41,
+ 0x11C46,
+ 0x11C70,
+ 0x11C72,
0x12470,
0x12475,
0x16A6E,
@@ -26340,7 +28784,9 @@ static const UV XPosixPunct_invlist[] = { /* for ASCII/Latin1 */
0x1BC9F,
0x1BCA0,
0x1DA87,
- 0x1DA8C
+ 0x1DA8C,
+ 0x1E95E,
+ 0x1E960
};
static const UV XPosixSpace_invlist[] = { /* for ASCII/Latin1 */
@@ -26372,7 +28818,7 @@ static const UV XPosixSpace_invlist[] = { /* for ASCII/Latin1 */
};
static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
- 1261, /* Number of elements */
+ 1265, /* 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 */
@@ -27556,7 +30002,7 @@ static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
0xA7A8,
0xA7A9,
0xA7AA,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B5,
0xA7B6,
@@ -27565,6 +30011,8 @@ static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
0xFF3B,
0x10400,
0x10428,
+ 0x104B0,
+ 0x104D4,
0x10C80,
0x10CB3,
0x118A0,
@@ -27631,6 +30079,8 @@ static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
0x1D7A9,
0x1D7CA,
0x1D7CB,
+ 0x1E900,
+ 0x1E922,
0x1F130,
0x1F14A,
0x1F150,
@@ -27640,7 +30090,7 @@ static const UV XPosixUpper_invlist[] = { /* for ASCII/Latin1 */
};
static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
- 1311, /* Number of elements */
+ 1361, /* 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 */
@@ -27743,6 +30193,10 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x964,
0x966,
@@ -27921,7 +30375,7 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -27963,7 +30417,7 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0xD49,
0xD4A,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -28199,6 +30653,8 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -28207,7 +30663,7 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -28378,7 +30834,7 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -28386,7 +30842,7 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0xA840,
0xA874,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -28551,6 +31007,10 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -28655,6 +31115,8 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x11212,
0x11213,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -28699,6 +31161,10 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C6,
0x114C7,
@@ -28733,6 +31199,20 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -28769,6 +31249,12 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -28867,10 +31353,24 @@ static const UV XPosixWord_invlist[] = { /* for ASCII/Latin1 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -29049,8 +31549,1291 @@ static const UV ASCII_invlist[] = { /* for EBCDIC 1047 */
0xFA
};
+static const UV Assigned_invlist[] = { /* for EBCDIC 1047 */
+ 1276, /* 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,
+ 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,
+ 0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 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,
+ 0xAF9,
+ 0xAFA,
+ 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,
+ 0xC5B,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 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,
+ 0xD50,
+ 0xD54,
+ 0xD64,
+ 0xD66,
+ 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,
+ 0x13F6,
+ 0x13F8,
+ 0x13FE,
+ 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,
+ 0x1C89,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFB,
+ 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,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BF,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218C,
+ 0x2190,
+ 0x23FF,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2BEC,
+ 0x2BF0,
+ 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,
+ 0x2E45,
+ 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,
+ 0x9FD6,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA6F8,
+ 0xA700,
+ 0xA7AF,
+ 0xA7B0,
+ 0xA7B8,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C6,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FE,
+ 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,
+ 0xAB66,
+ 0xAB70,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 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,
+ 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,
+ 0x1018F,
+ 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,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
+ 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,
+ 0x108E0,
+ 0x108F3,
+ 0x108F4,
+ 0x108F6,
+ 0x108FB,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BC,
+ 0x109D0,
+ 0x109D2,
+ 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,
+ 0x10C80,
+ 0x10CB3,
+ 0x10CC0,
+ 0x10CF3,
+ 0x10CFA,
+ 0x10D00,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111CE,
+ 0x111D0,
+ 0x111E0,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123F,
+ 0x11280,
+ 0x11287,
+ 0x11288,
+ 0x11289,
+ 0x1128A,
+ 0x1128E,
+ 0x1128F,
+ 0x1129E,
+ 0x1129F,
+ 0x112AA,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11300,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11350,
+ 0x11351,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115DE,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11660,
+ 0x1166D,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x11700,
+ 0x1171A,
+ 0x1171D,
+ 0x1172C,
+ 0x11730,
+ 0x11740,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
+ 0x12000,
+ 0x1239A,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x12480,
+ 0x12544,
+ 0x13000,
+ 0x1342F,
+ 0x14400,
+ 0x14647,
+ 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,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1E9,
+ 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,
+ 0x1DA8C,
+ 0x1DA9B,
+ 0x1DAA0,
+ 0x1DAA1,
+ 0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
+ 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,
+ 0x1F1AD,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F6D3,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F7,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F910,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
+ 0x1F980,
+ 0x1F992,
+ 0x1F9C0,
+ 0x1F9C1,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2B820,
+ 0x2CEA2,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
+
static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
- 289, /* Number of elements */
+ 297, /* 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 */
@@ -29145,6 +32928,8 @@ static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
0x13F6,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D00,
0x1DC0,
0x1E00,
@@ -29250,7 +33035,7 @@ static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
0xA78B,
0xA78F,
0xA790,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F8,
@@ -29271,6 +33056,10 @@ static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
0xFF5B,
0x10400,
0x10450,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10C80,
0x10CB3,
0x10CC0,
@@ -29337,6 +33126,8 @@ static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1E900,
+ 0x1E944,
0x1F130,
0x1F14A,
0x1F150,
@@ -29402,7 +33193,7 @@ static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 1047 */
};
static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
- 279, /* Number of elements */
+ 285, /* 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 */
@@ -29484,8 +33275,6 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
0x265,
0x267,
0x268,
- 0x26A,
- 0x26B,
0x26D,
0x26F,
0x270,
@@ -29565,6 +33354,8 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
0x13F6,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D79,
0x1D7A,
0x1D7D,
@@ -29662,7 +33453,7 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
0xA790,
0xA794,
0xA796,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xAB53,
@@ -29679,12 +33470,18 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
0xFF5B,
0x10400,
0x10450,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10C80,
0x10CB3,
0x10CC0,
0x10CF3,
0x118A0,
- 0x118E0
+ 0x118E0,
+ 0x1E900,
+ 0x1E944
};
static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 1047 */
@@ -29758,7 +33555,7 @@ static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 1047 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
- 1502, /* Number of elements */
+ 1615, /* 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 */
@@ -29825,6 +33622,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x82E,
0x859,
0x85C,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x903,
0x904,
@@ -29973,6 +33772,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0xD4A,
0xD4D,
0xD4E,
+ 0xD4F,
0xD57,
0xD58,
0xD62,
@@ -30081,6 +33881,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x180B,
0x180E,
0x180F,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x1920,
@@ -30167,10 +33969,11 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x1CFA,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x200B,
0x200C,
+ 0x200D,
0x200E,
0x2010,
0x2028,
@@ -30179,6 +33982,14 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x2070,
0x20D0,
0x20F1,
+ 0x261D,
+ 0x261E,
+ 0x26F9,
+ 0x26FA,
+ 0x270A,
+ 0x270E,
+ 0x2764,
+ 0x2765,
0x2CEF,
0x2CF2,
0x2D7F,
@@ -30211,7 +34022,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0xA882,
0xA8B4,
0xA8C4,
- 0xA8C5,
+ 0xA8C6,
0xA8E0,
0xA8F2,
0xA926,
@@ -31138,6 +34949,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x111B6,
0x111BF,
0x111C1,
+ 0x111C2,
+ 0x111C4,
0x111CA,
0x111CD,
0x1122C,
@@ -31147,6 +34960,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x11235,
0x11236,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x112DF,
0x112E0,
0x112E3,
@@ -31173,6 +34988,13 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x1136D,
0x11370,
0x11375,
+ 0x11435,
+ 0x11438,
+ 0x11440,
+ 0x11442,
+ 0x11445,
+ 0x11446,
+ 0x11447,
0x114B0,
0x114B1,
0x114B3,
@@ -31217,6 +35039,22 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x11726,
0x11727,
0x1172C,
+ 0x11C2F,
+ 0x11C30,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3E,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CAA,
+ 0x11CB1,
+ 0x11CB2,
+ 0x11CB4,
+ 0x11CB5,
+ 0x11CB7,
0x16AF0,
0x16AF5,
0x16B30,
@@ -31256,11 +35094,83 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E8D0,
0x1E8D7,
+ 0x1E944,
+ 0x1E94B,
0x1F1E6,
0x1F200,
+ 0x1F385,
+ 0x1F386,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
+ 0x1F3FB,
+ 0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
+ 0x1F48B,
+ 0x1F48C,
+ 0x1F4AA,
+ 0x1F4AB,
+ 0x1F575,
+ 0x1F576,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
+ 0x1F5E8,
+ 0x1F5E9,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
+ 0x1F650,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
0xE0000,
+ 0xE0020,
+ 0xE0080,
0xE0100,
0xE01F0,
0xE1000
@@ -31270,23 +35180,28 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
#if defined(PERL_IN_REGEXEC_C)
-#define GCB_ENUM_COUNT 14
+#define GCB_ENUM_COUNT 19
typedef enum {
GCB_Other = 0,
GCB_CR = 1,
GCB_Control = 2,
- GCB_Extend = 3,
- GCB_L = 4,
- GCB_LF = 5,
- GCB_LV = 6,
- GCB_LVT = 7,
- GCB_Prepend = 8,
- GCB_Regional_Indicator = 9,
- GCB_SpacingMark = 10,
- GCB_T = 11,
- GCB_V = 12,
- GCB_EDGE = 13
+ GCB_E_Base = 3,
+ GCB_E_Base_GAZ = 4,
+ GCB_E_Modifier = 5,
+ GCB_Extend = 6,
+ GCB_Glue_After_Zwj = 7,
+ GCB_L = 8,
+ GCB_LF = 9,
+ GCB_LV = 10,
+ GCB_LVT = 11,
+ GCB_Prepend = 12,
+ GCB_Regional_Indicator = 13,
+ GCB_SpacingMark = 14,
+ GCB_T = 15,
+ GCB_V = 16,
+ GCB_ZWJ = 17,
+ GCB_EDGE = 18
} GCB_enum;
static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
@@ -31314,7 +35229,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -31325,7 +35240,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -31333,7 +35248,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -31354,6 +35269,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Prepend,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_Extend,
@@ -31500,6 +35417,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_SpacingMark,
GCB_Extend,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -31612,6 +35530,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_SpacingMark,
@@ -31699,6 +35619,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Control,
GCB_Extend,
+ GCB_ZWJ,
GCB_Control,
GCB_Other,
GCB_Control,
@@ -31707,6 +35628,14 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_Extend,
@@ -32649,7 +36578,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -32666,6 +36595,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
+ GCB_Prepend,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_SpacingMark,
@@ -32676,6 +36607,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -32701,6 +36634,13 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
@@ -32745,6 +36685,22 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_Extend,
@@ -32786,8 +36742,80 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Regional_Indicator,
GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Modifier,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base_GAZ,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
GCB_Control,
GCB_Extend,
GCB_Control,
@@ -32799,7 +36827,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
#if defined(PERL_IN_UTF8_C)
static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
- 1341, /* Number of elements */
+ 1391, /* 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 */
@@ -32928,6 +36956,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x964,
0x966,
@@ -33106,7 +37138,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -33148,7 +37180,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0xD49,
0xD4A,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -33384,6 +37416,8 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -33392,7 +37426,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -33561,7 +37595,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -33569,7 +37603,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0xA840,
0xA874,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -33746,6 +37780,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -33850,6 +37888,8 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -33894,6 +37934,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C6,
0x114C7,
@@ -33928,6 +37972,20 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -33964,6 +38022,12 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -34062,10 +38126,24 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -34147,7 +38225,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
};
static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
- 1155, /* Number of elements */
+ 1187, /* 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 */
@@ -34278,6 +38356,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
0x904,
0x93A,
0x93D,
@@ -34406,6 +38486,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0xC5B,
0xC60,
0xC62,
+ 0xC80,
+ 0xC81,
0xC85,
0xC8D,
0xC8E,
@@ -34434,6 +38516,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0xD3E,
0xD4E,
0xD4F,
+ 0xD54,
+ 0xD57,
0xD5F,
0xD62,
0xD7A,
@@ -34628,6 +38712,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -34795,7 +38881,7 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -34982,6 +39068,10 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0x103D6,
0x10400,
0x1049E,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -35104,6 +39194,10 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0x11351,
0x1135D,
0x11362,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
0x11480,
0x114B0,
0x114C4,
@@ -35128,6 +39222,14 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C72,
+ 0x11C90,
0x12000,
0x1239A,
0x12400,
@@ -35158,6 +39260,12 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0x16F51,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -35230,6 +39338,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -35313,7 +39423,7 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 1047 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
- 2168, /* Number of elements */
+ 2279, /* 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 */
@@ -35471,6 +39581,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x82E,
0x859,
0x85C,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -35768,6 +39880,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x180F,
0x1810,
0x181A,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x1920,
@@ -35832,7 +39946,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1CFA,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1FFD,
0x1FFE,
@@ -35841,6 +39955,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x2008,
0x200B,
0x200C,
+ 0x200D,
+ 0x200E,
0x2010,
0x2011,
0x2012,
@@ -35923,6 +40039,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x2618,
0x2619,
0x261A,
+ 0x261D,
+ 0x261E,
0x2620,
0x2639,
0x263C,
@@ -35949,15 +40067,19 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x26F1,
0x26F6,
0x26F7,
+ 0x26F9,
+ 0x26FA,
0x26FB,
0x26FD,
0x2705,
0x2708,
+ 0x270A,
0x270E,
0x275B,
0x2761,
0x2762,
0x2764,
+ 0x2765,
0x2768,
0x2769,
0x276A,
@@ -36062,6 +40184,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x2E40,
0x2E42,
0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -36212,7 +40335,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8D0,
0xA8DA,
@@ -37187,6 +41310,15 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0xFF71,
0xFF9E,
0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
0xFFE0,
0xFFE1,
0xFFE2,
@@ -37279,6 +41411,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1123A,
0x1123B,
0x1123D,
+ 0x1123E,
+ 0x1123F,
0x112A9,
0x112AA,
0x112DF,
@@ -37303,6 +41437,14 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1136D,
0x11370,
0x11375,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x1144F,
+ 0x11450,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
0x114B0,
0x114C4,
0x114D0,
@@ -37323,6 +41465,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x11643,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x116AB,
0x116B8,
0x116C0,
@@ -37335,6 +41479,21 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1173F,
0x118E0,
0x118EA,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C46,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C70,
+ 0x11C71,
+ 0x11C72,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12470,
0x12475,
0x13258,
@@ -37371,6 +41530,12 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x16F7F,
0x16F8F,
0x16F93,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC9D,
@@ -37403,44 +41568,73 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E8D0,
0x1E8D7,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1F000,
- 0x1F02C,
- 0x1F030,
- 0x1F094,
- 0x1F0A0,
- 0x1F0AF,
- 0x1F0B1,
- 0x1F0C0,
- 0x1F0C1,
- 0x1F0D0,
- 0x1F0D1,
- 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F1AD,
0x1F1E6,
0x1F200,
- 0x1F203,
- 0x1F210,
- 0x1F23B,
- 0x1F240,
- 0x1F249,
- 0x1F250,
- 0x1F252,
- 0x1F300,
+ 0x1F385,
+ 0x1F386,
0x1F39C,
0x1F39E,
0x1F3B5,
0x1F3B7,
0x1F3BC,
0x1F3BD,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
0x1F3FB,
0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
0x1F4A0,
0x1F4A1,
0x1F4A2,
0x1F4A3,
0x1F4A4,
0x1F4A5,
+ 0x1F4AA,
+ 0x1F4AB,
0x1F4AF,
0x1F4B0,
0x1F4B1,
@@ -37451,30 +41645,57 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
0x1F525,
0x1F532,
0x1F54A,
+ 0x1F575,
+ 0x1F576,
0x1F57A,
0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
0x1F5D4,
0x1F5DC,
0x1F5F4,
0x1F5FA,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
0x1F650,
0x1F676,
0x1F679,
0x1F67C,
0x1F680,
- 0x1F6D1,
- 0x1F6E0,
- 0x1F6ED,
- 0x1F6F0,
- 0x1F6F4,
- 0x1F910,
- 0x1F919,
- 0x1F980,
- 0x1F985,
- 0x1F9C0,
- 0x1F9C1,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
+ 0x1FFFE,
0x20000,
0x2FFFE,
0x30000,
@@ -37491,7 +41712,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 1047 */
#if defined(PERL_IN_REGEXEC_C)
-#define LB_ENUM_COUNT 36
+#define LB_ENUM_COUNT 39
typedef enum {
LB_Alphabetic = 0,
@@ -37504,32 +41725,35 @@ typedef enum {
LB_Close_Punctuation = 7,
LB_Combining_Mark = 8,
LB_Contingent_Break = 9,
- LB_Exclamation = 10,
- LB_Glue = 11,
- LB_H2 = 12,
- LB_H3 = 13,
- LB_Hebrew_Letter = 14,
- LB_Hyphen = 15,
- LB_Ideographic = 16,
- LB_Infix_Numeric = 17,
- LB_Inseparable = 18,
- LB_JL = 19,
- LB_JT = 20,
- LB_JV = 21,
- LB_Line_Feed = 22,
- LB_Mandatory_Break = 23,
- LB_Next_Line = 24,
- LB_Nonstarter = 25,
- LB_Numeric = 26,
- LB_Open_Punctuation = 27,
- LB_Postfix_Numeric = 28,
- LB_Prefix_Numeric = 29,
- LB_Quotation = 30,
- LB_Regional_Indicator = 31,
- LB_Space = 32,
- LB_Word_Joiner = 33,
- LB_ZWSpace = 34,
- LB_EDGE = 35
+ LB_E_Base = 10,
+ LB_E_Modifier = 11,
+ LB_Exclamation = 12,
+ LB_Glue = 13,
+ LB_H2 = 14,
+ LB_H3 = 15,
+ LB_Hebrew_Letter = 16,
+ LB_Hyphen = 17,
+ LB_Ideographic = 18,
+ LB_Infix_Numeric = 19,
+ LB_Inseparable = 20,
+ LB_JL = 21,
+ LB_JT = 22,
+ LB_JV = 23,
+ LB_Line_Feed = 24,
+ LB_Mandatory_Break = 25,
+ LB_Next_Line = 26,
+ LB_Nonstarter = 27,
+ LB_Numeric = 28,
+ LB_Open_Punctuation = 29,
+ LB_Postfix_Numeric = 30,
+ LB_Prefix_Numeric = 31,
+ LB_Quotation = 32,
+ LB_Regional_Indicator = 33,
+ LB_Space = 34,
+ LB_Word_Joiner = 35,
+ LB_ZWJ = 36,
+ LB_ZWSpace = 37,
+ LB_EDGE = 38
} LB_enum;
static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
@@ -37696,6 +41920,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Numeric,
LB_Alphabetic,
@@ -37990,6 +42216,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Exclamation,
LB_Numeric,
LB_Alphabetic,
@@ -38057,6 +42285,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Break_After,
LB_ZWSpace,
LB_Combining_Mark,
+ LB_ZWJ,
+ LB_Combining_Mark,
LB_Break_After,
LB_Glue,
LB_Break_After,
@@ -38139,6 +42369,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -38165,14 +42397,18 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
LB_Alphabetic,
LB_Quotation,
LB_Alphabetic,
LB_Exclamation,
+ LB_Ideographic,
LB_Alphabetic,
LB_Open_Punctuation,
LB_Close_Punctuation,
@@ -38277,6 +42513,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Break_After,
LB_Open_Punctuation,
+ LB_Break_After,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -39398,10 +43635,19 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Open_Punctuation,
LB_Close_Punctuation,
LB_Nonstarter,
- LB_Alphabetic,
+ LB_Ideographic,
LB_Nonstarter,
- LB_Alphabetic,
+ LB_Ideographic,
LB_Nonstarter,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
LB_Alphabetic,
LB_Postfix_Numeric,
LB_Prefix_Numeric,
@@ -39495,6 +43741,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Combining_Mark,
@@ -39521,6 +43769,14 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -39539,6 +43795,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
+ LB_Break_Before,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Numeric,
@@ -39551,6 +43809,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Break_Before,
+ LB_Exclamation,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Open_Punctuation,
@@ -39587,6 +43860,12 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Combining_Mark,
@@ -39621,9 +43900,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Combining_Mark,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Open_Punctuation,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -39633,9 +43924,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
+ LB_Ideographic,
LB_Regional_Indicator,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -39643,17 +43935,27 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Modifier,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -39661,6 +43963,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -39671,15 +43975,32 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
LB_Alphabetic,
LB_Quotation,
LB_Nonstarter,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -39694,6 +44015,20 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
@@ -39708,7 +44043,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 1047 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
- 2920, /* Number of elements */
+ 2981, /* 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 */
@@ -40439,6 +44774,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -40643,6 +44982,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xC64,
0xC66,
0xC70,
+ 0xC80,
0xC81,
0xC84,
0xC85,
@@ -40690,6 +45030,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xD4A,
0xD4E,
0xD4F,
+ 0xD54,
0xD57,
0xD58,
0xD5F,
@@ -40929,6 +45270,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1820,
0x1878,
0x1880,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x18AB,
@@ -41002,6 +45345,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1C5A,
0x1C7E,
0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -41016,7 +45360,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1D00,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1E01,
0x1E02,
@@ -41860,7 +46204,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xA7A8,
0xA7A9,
0xA7AA,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B5,
0xA7B6,
@@ -41884,7 +46228,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8D0,
0xA8DA,
@@ -42132,6 +46476,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -42266,6 +46614,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1123A,
0x1123B,
0x1123D,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -42315,6 +46665,13 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x1144D,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114B0,
0x114C4,
@@ -42363,6 +46720,23 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C43,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -42407,6 +46781,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x16F8F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -42538,10 +46918,26 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E922,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -43387,6 +47783,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
SB_Extend,
SB_OLetter,
SB_Extend,
@@ -43591,6 +47991,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Numeric,
SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -43638,6 +48039,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Extend,
SB_OLetter,
SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -43879,6 +48281,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_OLetter,
SB_Extend,
SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -43949,6 +48353,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Numeric,
SB_OLetter,
SB_STerm,
+ SB_Lower,
SB_Other,
SB_Extend,
SB_Other,
@@ -45080,6 +49485,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Numeric,
SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -45214,6 +49623,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_STerm,
SB_Other,
+ SB_Extend,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -45266,6 +49677,13 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_OLetter,
SB_Extend,
SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -45314,6 +49732,23 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -45365,6 +49800,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
SB_Extend,
SB_STerm,
SB_Format,
@@ -45486,10 +49927,26 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_Extend,
SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -45576,7 +50033,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
SB_Other,
SB_Format,
SB_Other,
- SB_Format,
+ SB_Extend,
SB_Other,
SB_Extend,
SB_Other
@@ -45587,7 +50044,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 1047 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
- 1558, /* Number of elements */
+ 1680, /* 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 */
@@ -45785,6 +50242,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -45989,6 +50450,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xC64,
0xC66,
0xC70,
+ 0xC80,
0xC81,
0xC84,
0xC85,
@@ -46036,6 +50498,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xD4A,
0xD4E,
0xD4F,
+ 0xD54,
0xD57,
0xD58,
0xD5F,
@@ -46223,6 +50686,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1820,
0x1878,
0x1880,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x18AB,
@@ -46278,6 +50743,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -46292,7 +50759,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1D00,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1F16,
0x1F18,
@@ -46334,6 +50801,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x2000,
0x200B,
0x200C,
+ 0x200D,
0x200E,
0x2010,
0x2018,
@@ -46394,6 +50862,14 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x2189,
0x24B6,
0x24EA,
+ 0x261D,
+ 0x261E,
+ 0x26F9,
+ 0x26FA,
+ 0x270A,
+ 0x270E,
+ 0x2764,
+ 0x2765,
0x2C00,
0x2C2F,
0x2C30,
@@ -46491,7 +50967,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -46508,7 +50984,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -46718,6 +51194,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -46839,6 +51319,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x11213,
0x1122C,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -46887,6 +51369,12 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114B0,
0x114C4,
@@ -46926,6 +51414,22 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -46965,6 +51469,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x16F8F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
0x1B000,
0x1B001,
0x1BC00,
@@ -47065,10 +51571,25 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -47143,6 +51664,64 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
0x1F18A,
0x1F1E6,
0x1F200,
+ 0x1F385,
+ 0x1F386,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
+ 0x1F3FB,
+ 0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
+ 0x1F48B,
+ 0x1F48C,
+ 0x1F4AA,
+ 0x1F4AB,
+ 0x1F575,
+ 0x1F576,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
+ 0x1F5E8,
+ 0x1F5E9,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
+ 0x1F650,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
0xE0001,
0xE0002,
0xE0020,
@@ -47155,29 +51734,34 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 1047 */
#if defined(PERL_IN_REGEXEC_C)
-#define WB_ENUM_COUNT 20
+#define WB_ENUM_COUNT 25
typedef enum {
WB_Other = 0,
WB_ALetter = 1,
WB_CR = 2,
WB_Double_Quote = 3,
- WB_Extend = 4,
- WB_ExtendNumLet = 5,
- WB_Format = 6,
- WB_Hebrew_Letter = 7,
- WB_Katakana = 8,
- WB_LF = 9,
- WB_MidLetter = 10,
- WB_MidNum = 11,
- WB_MidNumLet = 12,
- WB_Newline = 13,
- WB_Numeric = 14,
- WB_Perl_Tailored_HSpace = 15,
- WB_Regional_Indicator = 16,
- WB_Single_Quote = 17,
- WB_EDGE = 18,
- WB_UNKNOWN = 19
+ WB_E_Base = 4,
+ WB_E_Base_GAZ = 5,
+ WB_E_Modifier = 6,
+ WB_Extend = 7,
+ WB_ExtendNumLet = 8,
+ WB_Format = 9,
+ WB_Glue_After_Zwj = 10,
+ WB_Hebrew_Letter = 11,
+ WB_Katakana = 12,
+ WB_LF = 13,
+ WB_MidLetter = 14,
+ WB_MidNum = 15,
+ WB_MidNumLet = 16,
+ WB_Newline = 17,
+ WB_Numeric = 18,
+ WB_Perl_Tailored_HSpace = 19,
+ WB_Regional_Indicator = 20,
+ WB_Single_Quote = 21,
+ WB_ZWJ = 22,
+ WB_EDGE = 23,
+ WB_UNKNOWN = 24
} WB_enum;
static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
@@ -47375,6 +51959,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
WB_Extend,
WB_ALetter,
WB_Extend,
@@ -47579,6 +52167,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_Numeric,
WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -47626,6 +52215,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -47815,6 +52405,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Extend,
WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -47868,6 +52460,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Numeric,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_Extend,
@@ -47924,6 +52518,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Perl_Tailored_HSpace,
WB_Other,
WB_Extend,
+ WB_ZWJ,
WB_Format,
WB_Other,
WB_MidNumLet,
@@ -47933,7 +52528,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_MidLetter,
WB_Newline,
WB_Format,
- WB_Perl_Tailored_HSpace,
+ WB_ExtendNumLet,
WB_Other,
WB_ExtendNumLet,
WB_Other,
@@ -47984,6 +52579,14 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -48347,6 +52950,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_Extend,
@@ -48429,6 +53036,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -48481,6 +53090,12 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_Numeric,
@@ -48519,6 +53134,22 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -48555,6 +53186,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Katakana,
WB_Other,
WB_ALetter,
@@ -48655,11 +53288,26 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_Extend,
WB_Other,
WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -48733,11 +53381,69 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 1047 */
WB_Other,
WB_Regional_Indicator,
WB_Other,
- WB_Format,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Modifier,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base_GAZ,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
WB_Other,
WB_Format,
WB_Other,
WB_Extend,
+ WB_Other,
+ WB_Extend,
WB_Other
};
@@ -48858,7 +53564,7 @@ static const UV XPerlSpace_invlist[] = { /* for EBCDIC 1047 */
};
static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
- 1321, /* Number of elements */
+ 1381, /* 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 */
@@ -48991,6 +53697,10 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E0,
0x8E3,
0x8EA,
0x8F0,
@@ -49177,7 +53887,7 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -49221,7 +53931,7 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0xD4D,
0xD4E,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -49465,6 +54175,8 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -49638,7 +54350,7 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -49653,6 +54365,8 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0xA874,
0xA880,
0xA8C4,
+ 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8F2,
@@ -49811,6 +54525,10 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -49913,6 +54631,8 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0x11235,
0x11237,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -49953,6 +54673,14 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0x11358,
0x1135D,
0x11364,
+ 0x11400,
+ 0x11442,
+ 0x11443,
+ 0x11446,
+ 0x11447,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C2,
0x114C4,
@@ -49991,6 +54719,22 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -50025,6 +54769,12 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0x16F7F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -50099,8 +54849,24 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
+ 0x1E947,
+ 0x1E948,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -50186,7 +54952,7 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 1047 */
};
static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
- 1261, /* Number of elements */
+ 1315, /* 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 */
@@ -50321,6 +55087,10 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E0,
0x8E3,
0x8EA,
0x8F0,
@@ -50497,7 +55267,7 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0xC5B,
0xC60,
0xC64,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -50539,7 +55309,7 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0xD4D,
0xD4E,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -50761,6 +55531,8 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -50936,7 +55708,7 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -50951,6 +55723,8 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0xA874,
0xA880,
0xA8C4,
+ 0xA8C5,
+ 0xA8C6,
0xA8F2,
0xA8F8,
0xA8FB,
@@ -51101,6 +55875,10 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0x103D6,
0x10400,
0x1049E,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -51197,6 +55975,8 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0x11235,
0x11237,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -51235,6 +56015,12 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0x11358,
0x1135D,
0x11364,
+ 0x11400,
+ 0x11442,
+ 0x11443,
+ 0x11446,
+ 0x11447,
+ 0x1144B,
0x11480,
0x114C2,
0x114C4,
@@ -51265,6 +56051,20 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -51295,6 +56095,12 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0x16F7F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -51367,8 +56173,22 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 1047 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
+ 0x1E947,
+ 0x1E948,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -51487,7 +56307,7 @@ static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 1047 */
};
static const UV XPosixDigit_invlist[] = { /* for EBCDIC 1047 */
- 103, /* Number of elements */
+ 109, /* 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 */
@@ -51578,6 +56398,8 @@ static const UV XPosixDigit_invlist[] = { /* for EBCDIC 1047 */
0x111DA,
0x112F0,
0x112FA,
+ 0x11450,
+ 0x1145A,
0x114D0,
0x114DA,
0x11650,
@@ -51588,16 +56410,20 @@ static const UV XPosixDigit_invlist[] = { /* for EBCDIC 1047 */
0x1173A,
0x118E0,
0x118EA,
+ 0x11C50,
+ 0x11C5A,
0x16A60,
0x16A6A,
0x16B50,
0x16B5A,
0x1D7CE,
- 0x1D800
+ 0x1D800,
+ 0x1E950,
+ 0x1E95A
};
static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
- 1237, /* Number of elements */
+ 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 */
@@ -51652,7 +56478,9 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x85F,
0x8A0,
0x8B5,
- 0x8E3,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
0x984,
0x985,
0x98D,
@@ -51825,8 +56653,6 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0xC66,
0xC70,
0xC78,
- 0xC80,
- 0xC81,
0xC84,
0xC85,
0xC8D,
@@ -51867,14 +56693,10 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0xD46,
0xD49,
0xD4A,
- 0xD4F,
- 0xD57,
- 0xD58,
- 0xD5F,
+ 0xD50,
+ 0xD54,
0xD64,
0xD66,
- 0xD76,
- 0xD79,
0xD80,
0xD82,
0xD84,
@@ -52077,7 +56899,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x1C3B,
0x1C4A,
0x1C4D,
- 0x1C80,
+ 0x1C89,
0x1CC0,
0x1CC8,
0x1CD0,
@@ -52086,7 +56908,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -52139,7 +56961,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x2100,
0x218C,
0x2190,
- 0x23FB,
+ 0x23FF,
0x2400,
0x2427,
0x2440,
@@ -52191,7 +57013,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -52231,7 +57053,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0xA640,
0xA6F8,
0xA700,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -52241,7 +57063,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0xA840,
0xA878,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8DA,
0xA8E0,
@@ -52365,7 +57187,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x10107,
0x10134,
0x10137,
- 0x1018D,
+ 0x1018F,
0x10190,
0x1019C,
0x101A0,
@@ -52394,6 +57216,10 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -52505,7 +57331,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x11200,
0x11212,
0x11213,
- 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -52550,6 +57376,12 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x11480,
0x114C8,
0x114D0,
@@ -52562,6 +57394,8 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x11645,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x11680,
0x116B8,
0x116C0,
@@ -52578,6 +57412,20 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -52618,6 +57466,12 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -52688,10 +57542,26 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8C7,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -52779,25 +57649,21 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x1F130,
0x1F16C,
0x1F170,
- 0x1F19B,
+ 0x1F1AD,
0x1F1E6,
0x1F203,
0x1F210,
- 0x1F23B,
+ 0x1F23C,
0x1F240,
0x1F249,
0x1F250,
0x1F252,
0x1F300,
- 0x1F57A,
- 0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
- 0x1F6D1,
+ 0x1F6D3,
0x1F6E0,
0x1F6ED,
0x1F6F0,
- 0x1F6F4,
+ 0x1F6F7,
0x1F700,
0x1F774,
0x1F780,
@@ -52813,9 +57679,19 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
0x1F890,
0x1F8AE,
0x1F910,
- 0x1F919,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
0x1F980,
- 0x1F985,
+ 0x1F992,
0x1F9C0,
0x1F9C1,
0x20000,
@@ -52841,7 +57717,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 1047 */
};
static const UV XPosixLower_invlist[] = { /* for EBCDIC 1047 */
- 1283, /* Number of elements */
+ 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 */
@@ -53406,6 +58282,8 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC 1047 */
0x588,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D00,
0x1DC0,
0x1E01,
@@ -54068,6 +58946,8 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC 1047 */
0xFF5B,
0x10428,
0x10450,
+ 0x104D8,
+ 0x104FC,
0x10CC0,
0x10CF3,
0x118C0,
@@ -54127,11 +59007,13 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC 1047 */
0x1D7C4,
0x1D7CA,
0x1D7CB,
- 0x1D7CC
+ 0x1D7CC,
+ 0x1E922,
+ 0x1E944
};
static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
- 1231, /* Number of elements */
+ 1281, /* 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 */
@@ -54186,7 +59068,9 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x85F,
0x8A0,
0x8B5,
- 0x8E3,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
0x984,
0x985,
0x98D,
@@ -54359,8 +59243,6 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0xC66,
0xC70,
0xC78,
- 0xC80,
- 0xC81,
0xC84,
0xC85,
0xC8D,
@@ -54401,14 +59283,10 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0xD46,
0xD49,
0xD4A,
- 0xD4F,
- 0xD57,
- 0xD58,
- 0xD5F,
+ 0xD50,
+ 0xD54,
0xD64,
0xD66,
- 0xD76,
- 0xD79,
0xD80,
0xD82,
0xD84,
@@ -54609,7 +59487,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x1C3B,
0x1C4A,
0x1C4D,
- 0x1C80,
+ 0x1C89,
0x1CC0,
0x1CC8,
0x1CD0,
@@ -54618,7 +59496,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -54667,7 +59545,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x2100,
0x218C,
0x2190,
- 0x23FB,
+ 0x23FF,
0x2400,
0x2427,
0x2440,
@@ -54719,7 +59597,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -54759,7 +59637,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0xA640,
0xA6F8,
0xA700,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -54769,7 +59647,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0xA840,
0xA878,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8DA,
0xA8E0,
@@ -54893,7 +59771,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x10107,
0x10134,
0x10137,
- 0x1018D,
+ 0x1018F,
0x10190,
0x1019C,
0x101A0,
@@ -54922,6 +59800,10 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -55033,7 +59915,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x11200,
0x11212,
0x11213,
- 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -55078,6 +59960,12 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x11480,
0x114C8,
0x114D0,
@@ -55090,6 +59978,8 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x11645,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x11680,
0x116B8,
0x116C0,
@@ -55106,6 +59996,20 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -55146,6 +60050,12 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -55216,10 +60126,26 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8C7,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -55307,25 +60233,21 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x1F130,
0x1F16C,
0x1F170,
- 0x1F19B,
+ 0x1F1AD,
0x1F1E6,
0x1F203,
0x1F210,
- 0x1F23B,
+ 0x1F23C,
0x1F240,
0x1F249,
0x1F250,
0x1F252,
0x1F300,
- 0x1F57A,
- 0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
- 0x1F6D1,
+ 0x1F6D3,
0x1F6E0,
0x1F6ED,
0x1F6F0,
- 0x1F6F4,
+ 0x1F6F7,
0x1F700,
0x1F774,
0x1F780,
@@ -55341,9 +60263,19 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
0x1F890,
0x1F8AE,
0x1F910,
- 0x1F919,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
0x1F980,
- 0x1F985,
+ 0x1F992,
0x1F9C0,
0x1F9C1,
0x20000,
@@ -55369,7 +60301,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 1047 */
};
static const UV XPosixPunct_invlist[] = { /* for EBCDIC 1047 */
- 321, /* Number of elements */
+ 335, /* 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 */
@@ -55543,7 +60475,7 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC 1047 */
0x2E00,
0x2E2F,
0x2E30,
- 0x2E43,
+ 0x2E45,
0x3001,
0x3004,
0x3008,
@@ -55672,14 +60604,26 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC 1047 */
0x1123E,
0x112A9,
0x112AA,
+ 0x1144B,
+ 0x11450,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x114C6,
0x114C7,
0x115C1,
0x115D8,
0x11641,
0x11644,
+ 0x11660,
+ 0x1166D,
0x1173C,
0x1173F,
+ 0x11C41,
+ 0x11C46,
+ 0x11C70,
+ 0x11C72,
0x12470,
0x12475,
0x16A6E,
@@ -55693,7 +60637,9 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC 1047 */
0x1BC9F,
0x1BCA0,
0x1DA87,
- 0x1DA8C
+ 0x1DA8C,
+ 0x1E95E,
+ 0x1E960
};
static const UV XPosixSpace_invlist[] = { /* for EBCDIC 1047 */
@@ -55727,7 +60673,7 @@ static const UV XPosixSpace_invlist[] = { /* for EBCDIC 1047 */
};
static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
- 1279, /* Number of elements */
+ 1283, /* 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 */
@@ -56929,7 +61875,7 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
0xA7A8,
0xA7A9,
0xA7AA,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B5,
0xA7B6,
@@ -56938,6 +61884,8 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
0xFF3B,
0x10400,
0x10428,
+ 0x104B0,
+ 0x104D4,
0x10C80,
0x10CB3,
0x118A0,
@@ -57004,6 +61952,8 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
0x1D7A9,
0x1D7CA,
0x1D7CB,
+ 0x1E900,
+ 0x1E922,
0x1F130,
0x1F14A,
0x1F150,
@@ -57013,7 +61963,7 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 1047 */
};
static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
- 1335, /* Number of elements */
+ 1385, /* 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 */
@@ -57140,6 +62090,10 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x964,
0x966,
@@ -57318,7 +62272,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -57360,7 +62314,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0xD49,
0xD4A,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -57596,6 +62550,8 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -57604,7 +62560,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -57775,7 +62731,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -57783,7 +62739,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0xA840,
0xA874,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -57948,6 +62904,10 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -58052,6 +63012,8 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x11212,
0x11213,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -58096,6 +63058,10 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C6,
0x114C7,
@@ -58130,6 +63096,20 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -58166,6 +63146,12 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -58264,10 +63250,24 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 1047 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -58448,8 +63448,1291 @@ static const UV ASCII_invlist[] = { /* for EBCDIC 037 */
0xFA
};
+static const UV Assigned_invlist[] = { /* for EBCDIC 037 */
+ 1276, /* 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,
+ 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,
+ 0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 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,
+ 0xAF9,
+ 0xAFA,
+ 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,
+ 0xC5B,
+ 0xC60,
+ 0xC64,
+ 0xC66,
+ 0xC70,
+ 0xC78,
+ 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,
+ 0xD50,
+ 0xD54,
+ 0xD64,
+ 0xD66,
+ 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,
+ 0x13F6,
+ 0x13F8,
+ 0x13FE,
+ 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,
+ 0x1C89,
+ 0x1CC0,
+ 0x1CC8,
+ 0x1CD0,
+ 0x1CF7,
+ 0x1CF8,
+ 0x1CFA,
+ 0x1D00,
+ 0x1DF6,
+ 0x1DFB,
+ 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,
+ 0x2065,
+ 0x2066,
+ 0x2072,
+ 0x2074,
+ 0x208F,
+ 0x2090,
+ 0x209D,
+ 0x20A0,
+ 0x20BF,
+ 0x20D0,
+ 0x20F1,
+ 0x2100,
+ 0x218C,
+ 0x2190,
+ 0x23FF,
+ 0x2400,
+ 0x2427,
+ 0x2440,
+ 0x244B,
+ 0x2460,
+ 0x2B74,
+ 0x2B76,
+ 0x2B96,
+ 0x2B98,
+ 0x2BBA,
+ 0x2BBD,
+ 0x2BC9,
+ 0x2BCA,
+ 0x2BD2,
+ 0x2BEC,
+ 0x2BF0,
+ 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,
+ 0x2E45,
+ 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,
+ 0x9FD6,
+ 0xA000,
+ 0xA48D,
+ 0xA490,
+ 0xA4C7,
+ 0xA4D0,
+ 0xA62C,
+ 0xA640,
+ 0xA6F8,
+ 0xA700,
+ 0xA7AF,
+ 0xA7B0,
+ 0xA7B8,
+ 0xA7F7,
+ 0xA82C,
+ 0xA830,
+ 0xA83A,
+ 0xA840,
+ 0xA878,
+ 0xA880,
+ 0xA8C6,
+ 0xA8CE,
+ 0xA8DA,
+ 0xA8E0,
+ 0xA8FE,
+ 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,
+ 0xAB66,
+ 0xAB70,
+ 0xABEE,
+ 0xABF0,
+ 0xABFA,
+ 0xAC00,
+ 0xD7A4,
+ 0xD7B0,
+ 0xD7C7,
+ 0xD7CB,
+ 0xD7FC,
+ 0xD800,
+ 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,
+ 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,
+ 0x1018F,
+ 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,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
+ 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,
+ 0x108E0,
+ 0x108F3,
+ 0x108F4,
+ 0x108F6,
+ 0x108FB,
+ 0x1091C,
+ 0x1091F,
+ 0x1093A,
+ 0x1093F,
+ 0x10940,
+ 0x10980,
+ 0x109B8,
+ 0x109BC,
+ 0x109D0,
+ 0x109D2,
+ 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,
+ 0x10C80,
+ 0x10CB3,
+ 0x10CC0,
+ 0x10CF3,
+ 0x10CFA,
+ 0x10D00,
+ 0x10E60,
+ 0x10E7F,
+ 0x11000,
+ 0x1104E,
+ 0x11052,
+ 0x11070,
+ 0x1107F,
+ 0x110C2,
+ 0x110D0,
+ 0x110E9,
+ 0x110F0,
+ 0x110FA,
+ 0x11100,
+ 0x11135,
+ 0x11136,
+ 0x11144,
+ 0x11150,
+ 0x11177,
+ 0x11180,
+ 0x111CE,
+ 0x111D0,
+ 0x111E0,
+ 0x111E1,
+ 0x111F5,
+ 0x11200,
+ 0x11212,
+ 0x11213,
+ 0x1123F,
+ 0x11280,
+ 0x11287,
+ 0x11288,
+ 0x11289,
+ 0x1128A,
+ 0x1128E,
+ 0x1128F,
+ 0x1129E,
+ 0x1129F,
+ 0x112AA,
+ 0x112B0,
+ 0x112EB,
+ 0x112F0,
+ 0x112FA,
+ 0x11300,
+ 0x11304,
+ 0x11305,
+ 0x1130D,
+ 0x1130F,
+ 0x11311,
+ 0x11313,
+ 0x11329,
+ 0x1132A,
+ 0x11331,
+ 0x11332,
+ 0x11334,
+ 0x11335,
+ 0x1133A,
+ 0x1133C,
+ 0x11345,
+ 0x11347,
+ 0x11349,
+ 0x1134B,
+ 0x1134E,
+ 0x11350,
+ 0x11351,
+ 0x11357,
+ 0x11358,
+ 0x1135D,
+ 0x11364,
+ 0x11366,
+ 0x1136D,
+ 0x11370,
+ 0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
+ 0x11480,
+ 0x114C8,
+ 0x114D0,
+ 0x114DA,
+ 0x11580,
+ 0x115B6,
+ 0x115B8,
+ 0x115DE,
+ 0x11600,
+ 0x11645,
+ 0x11650,
+ 0x1165A,
+ 0x11660,
+ 0x1166D,
+ 0x11680,
+ 0x116B8,
+ 0x116C0,
+ 0x116CA,
+ 0x11700,
+ 0x1171A,
+ 0x1171D,
+ 0x1172C,
+ 0x11730,
+ 0x11740,
+ 0x118A0,
+ 0x118F3,
+ 0x118FF,
+ 0x11900,
+ 0x11AC0,
+ 0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
+ 0x12000,
+ 0x1239A,
+ 0x12400,
+ 0x1246F,
+ 0x12470,
+ 0x12475,
+ 0x12480,
+ 0x12544,
+ 0x13000,
+ 0x1342F,
+ 0x14400,
+ 0x14647,
+ 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,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
+ 0x1B000,
+ 0x1B002,
+ 0x1BC00,
+ 0x1BC6B,
+ 0x1BC70,
+ 0x1BC7D,
+ 0x1BC80,
+ 0x1BC89,
+ 0x1BC90,
+ 0x1BC9A,
+ 0x1BC9C,
+ 0x1BCA4,
+ 0x1D000,
+ 0x1D0F6,
+ 0x1D100,
+ 0x1D127,
+ 0x1D129,
+ 0x1D1E9,
+ 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,
+ 0x1DA8C,
+ 0x1DA9B,
+ 0x1DAA0,
+ 0x1DAA1,
+ 0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
+ 0x1E800,
+ 0x1E8C5,
+ 0x1E8C7,
+ 0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
+ 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,
+ 0x1F1AD,
+ 0x1F1E6,
+ 0x1F203,
+ 0x1F210,
+ 0x1F23C,
+ 0x1F240,
+ 0x1F249,
+ 0x1F250,
+ 0x1F252,
+ 0x1F300,
+ 0x1F6D3,
+ 0x1F6E0,
+ 0x1F6ED,
+ 0x1F6F0,
+ 0x1F6F7,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F910,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
+ 0x1F980,
+ 0x1F992,
+ 0x1F9C0,
+ 0x1F9C1,
+ 0x20000,
+ 0x2A6D7,
+ 0x2A700,
+ 0x2B735,
+ 0x2B740,
+ 0x2B81E,
+ 0x2B820,
+ 0x2CEA2,
+ 0x2F800,
+ 0x2FA1E,
+ 0xE0001,
+ 0xE0002,
+ 0xE0020,
+ 0xE0080,
+ 0xE0100,
+ 0xE01F0,
+ 0xF0000,
+ 0xFFFFE,
+ 0x100000,
+ 0x10FFFE
+};
+
static const UV Cased_invlist[] = { /* for EBCDIC 037 */
- 285, /* Number of elements */
+ 293, /* 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 */
@@ -58540,6 +64823,8 @@ static const UV Cased_invlist[] = { /* for EBCDIC 037 */
0x13F6,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D00,
0x1DC0,
0x1E00,
@@ -58645,7 +64930,7 @@ static const UV Cased_invlist[] = { /* for EBCDIC 037 */
0xA78B,
0xA78F,
0xA790,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F8,
@@ -58666,6 +64951,10 @@ static const UV Cased_invlist[] = { /* for EBCDIC 037 */
0xFF5B,
0x10400,
0x10450,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10C80,
0x10CB3,
0x10CC0,
@@ -58732,6 +65021,8 @@ static const UV Cased_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1E900,
+ 0x1E944,
0x1F130,
0x1F14A,
0x1F150,
@@ -58797,7 +65088,7 @@ static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 037 */
};
static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
- 275, /* Number of elements */
+ 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 */
@@ -58875,8 +65166,6 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
0x265,
0x267,
0x268,
- 0x26A,
- 0x26B,
0x26D,
0x26F,
0x270,
@@ -58956,6 +65245,8 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
0x13F6,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D79,
0x1D7A,
0x1D7D,
@@ -59053,7 +65344,7 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
0xA790,
0xA794,
0xA796,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xAB53,
@@ -59070,12 +65361,18 @@ static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
0xFF5B,
0x10400,
0x10450,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10C80,
0x10CB3,
0x10CC0,
0x10CF3,
0x118A0,
- 0x118E0
+ 0x118E0,
+ 0x1E900,
+ 0x1E944
};
static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 037 */
@@ -59149,7 +65446,7 @@ static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
- 1502, /* Number of elements */
+ 1615, /* 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 */
@@ -59216,6 +65513,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x82E,
0x859,
0x85C,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x903,
0x904,
@@ -59364,6 +65663,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0xD4A,
0xD4D,
0xD4E,
+ 0xD4F,
0xD57,
0xD58,
0xD62,
@@ -59472,6 +65772,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x180B,
0x180E,
0x180F,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x1920,
@@ -59558,10 +65860,11 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x1CFA,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x200B,
0x200C,
+ 0x200D,
0x200E,
0x2010,
0x2028,
@@ -59570,6 +65873,14 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x2070,
0x20D0,
0x20F1,
+ 0x261D,
+ 0x261E,
+ 0x26F9,
+ 0x26FA,
+ 0x270A,
+ 0x270E,
+ 0x2764,
+ 0x2765,
0x2CEF,
0x2CF2,
0x2D7F,
@@ -59602,7 +65913,7 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0xA882,
0xA8B4,
0xA8C4,
- 0xA8C5,
+ 0xA8C6,
0xA8E0,
0xA8F2,
0xA926,
@@ -60529,6 +66840,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x111B6,
0x111BF,
0x111C1,
+ 0x111C2,
+ 0x111C4,
0x111CA,
0x111CD,
0x1122C,
@@ -60538,6 +66851,8 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x11235,
0x11236,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x112DF,
0x112E0,
0x112E3,
@@ -60564,6 +66879,13 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x1136D,
0x11370,
0x11375,
+ 0x11435,
+ 0x11438,
+ 0x11440,
+ 0x11442,
+ 0x11445,
+ 0x11446,
+ 0x11447,
0x114B0,
0x114B1,
0x114B3,
@@ -60608,6 +66930,22 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x11726,
0x11727,
0x1172C,
+ 0x11C2F,
+ 0x11C30,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3E,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CAA,
+ 0x11CB1,
+ 0x11CB2,
+ 0x11CB4,
+ 0x11CB5,
+ 0x11CB7,
0x16AF0,
0x16AF5,
0x16B30,
@@ -60647,11 +66985,83 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E8D0,
0x1E8D7,
+ 0x1E944,
+ 0x1E94B,
0x1F1E6,
0x1F200,
+ 0x1F385,
+ 0x1F386,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
+ 0x1F3FB,
+ 0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
+ 0x1F48B,
+ 0x1F48C,
+ 0x1F4AA,
+ 0x1F4AB,
+ 0x1F575,
+ 0x1F576,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
+ 0x1F5E8,
+ 0x1F5E9,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
+ 0x1F650,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
0xE0000,
+ 0xE0020,
+ 0xE0080,
0xE0100,
0xE01F0,
0xE1000
@@ -60661,23 +67071,28 @@ static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_REGEXEC_C)
-#define GCB_ENUM_COUNT 14
+#define GCB_ENUM_COUNT 19
typedef enum {
GCB_Other = 0,
GCB_CR = 1,
GCB_Control = 2,
- GCB_Extend = 3,
- GCB_L = 4,
- GCB_LF = 5,
- GCB_LV = 6,
- GCB_LVT = 7,
- GCB_Prepend = 8,
- GCB_Regional_Indicator = 9,
- GCB_SpacingMark = 10,
- GCB_T = 11,
- GCB_V = 12,
- GCB_EDGE = 13
+ GCB_E_Base = 3,
+ GCB_E_Base_GAZ = 4,
+ GCB_E_Modifier = 5,
+ GCB_Extend = 6,
+ GCB_Glue_After_Zwj = 7,
+ GCB_L = 8,
+ GCB_LF = 9,
+ GCB_LV = 10,
+ GCB_LVT = 11,
+ GCB_Prepend = 12,
+ GCB_Regional_Indicator = 13,
+ GCB_SpacingMark = 14,
+ GCB_T = 15,
+ GCB_V = 16,
+ GCB_ZWJ = 17,
+ GCB_EDGE = 18
} GCB_enum;
static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
@@ -60705,7 +67120,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -60716,7 +67131,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -60724,7 +67139,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -60745,6 +67160,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Prepend,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Other,
GCB_Extend,
@@ -60891,6 +67308,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_SpacingMark,
GCB_Extend,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -61003,6 +67421,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_SpacingMark,
@@ -61090,6 +67510,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Control,
GCB_Extend,
+ GCB_ZWJ,
GCB_Control,
GCB_Other,
GCB_Control,
@@ -61098,6 +67519,14 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_Extend,
@@ -62040,7 +68469,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
- GCB_Control,
+ GCB_Prepend,
GCB_Other,
GCB_Extend,
GCB_Other,
@@ -62057,6 +68486,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_SpacingMark,
GCB_Other,
+ GCB_Prepend,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_SpacingMark,
@@ -62067,6 +68498,8 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Extend,
GCB_Other,
GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
@@ -62092,6 +68525,13 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_SpacingMark,
GCB_Extend,
@@ -62136,6 +68576,22 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_SpacingMark,
GCB_Extend,
GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_SpacingMark,
+ GCB_Extend,
+ GCB_Other,
GCB_Extend,
GCB_Other,
GCB_Extend,
@@ -62177,8 +68633,80 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
GCB_Other,
GCB_Extend,
GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
+ GCB_Extend,
+ GCB_Other,
GCB_Regional_Indicator,
GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Modifier,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base_GAZ,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Glue_After_Zwj,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_E_Base,
+ GCB_Other,
+ GCB_Control,
+ GCB_Extend,
GCB_Control,
GCB_Extend,
GCB_Control,
@@ -62190,7 +68718,7 @@ static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_UTF8_C)
static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
- 1337, /* Number of elements */
+ 1387, /* 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 */
@@ -62315,6 +68843,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x964,
0x966,
@@ -62493,7 +69025,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -62535,7 +69067,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0xD49,
0xD4A,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -62771,6 +69303,8 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -62779,7 +69313,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -62948,7 +69482,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -62956,7 +69490,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0xA840,
0xA874,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -63133,6 +69667,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -63237,6 +69775,8 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -63281,6 +69821,10 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C6,
0x114C7,
@@ -63315,6 +69859,20 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -63351,6 +69909,12 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -63449,10 +70013,24 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -63534,7 +70112,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
};
static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
- 1151, /* Number of elements */
+ 1183, /* 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 */
@@ -63661,6 +70239,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
0x904,
0x93A,
0x93D,
@@ -63789,6 +70369,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0xC5B,
0xC60,
0xC62,
+ 0xC80,
+ 0xC81,
0xC85,
0xC8D,
0xC8E,
@@ -63817,6 +70399,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0xD3E,
0xD4E,
0xD4F,
+ 0xD54,
+ 0xD57,
0xD5F,
0xD62,
0xD7A,
@@ -64011,6 +70595,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -64178,7 +70764,7 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -64365,6 +70951,10 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0x103D6,
0x10400,
0x1049E,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -64487,6 +71077,10 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0x11351,
0x1135D,
0x11362,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
0x11480,
0x114B0,
0x114C4,
@@ -64511,6 +71105,14 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C72,
+ 0x11C90,
0x12000,
0x1239A,
0x12400,
@@ -64541,6 +71143,12 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0x16F51,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -64613,6 +71221,8 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -64696,7 +71306,7 @@ static const UV _Perl_IDStart_invlist[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
- 2168, /* Number of elements */
+ 2279, /* 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 */
@@ -64854,6 +71464,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x82E,
0x859,
0x85C,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -65151,6 +71763,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x180F,
0x1810,
0x181A,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x1920,
@@ -65215,7 +71829,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1CFA,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1FFD,
0x1FFE,
@@ -65224,6 +71838,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x2008,
0x200B,
0x200C,
+ 0x200D,
+ 0x200E,
0x2010,
0x2011,
0x2012,
@@ -65306,6 +71922,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x2618,
0x2619,
0x261A,
+ 0x261D,
+ 0x261E,
0x2620,
0x2639,
0x263C,
@@ -65332,15 +71950,19 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x26F1,
0x26F6,
0x26F7,
+ 0x26F9,
+ 0x26FA,
0x26FB,
0x26FD,
0x2705,
0x2708,
+ 0x270A,
0x270E,
0x275B,
0x2761,
0x2762,
0x2764,
+ 0x2765,
0x2768,
0x2769,
0x276A,
@@ -65445,6 +72067,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x2E40,
0x2E42,
0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -65595,7 +72218,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8D0,
0xA8DA,
@@ -66570,6 +73193,15 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0xFF71,
0xFF9E,
0xFFA0,
+ 0xFFBF,
+ 0xFFC2,
+ 0xFFC8,
+ 0xFFCA,
+ 0xFFD0,
+ 0xFFD2,
+ 0xFFD8,
+ 0xFFDA,
+ 0xFFDD,
0xFFE0,
0xFFE1,
0xFFE2,
@@ -66662,6 +73294,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1123A,
0x1123B,
0x1123D,
+ 0x1123E,
+ 0x1123F,
0x112A9,
0x112AA,
0x112DF,
@@ -66686,6 +73320,14 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1136D,
0x11370,
0x11375,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x1144F,
+ 0x11450,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
0x114B0,
0x114C4,
0x114D0,
@@ -66706,6 +73348,8 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x11643,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x116AB,
0x116B8,
0x116C0,
@@ -66718,6 +73362,21 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1173F,
0x118E0,
0x118EA,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C46,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C70,
+ 0x11C71,
+ 0x11C72,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12470,
0x12475,
0x13258,
@@ -66754,6 +73413,12 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x16F7F,
0x16F8F,
0x16F93,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC9D,
@@ -66786,44 +73451,73 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E8D0,
0x1E8D7,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1F000,
- 0x1F02C,
- 0x1F030,
- 0x1F094,
- 0x1F0A0,
- 0x1F0AF,
- 0x1F0B1,
- 0x1F0C0,
- 0x1F0C1,
- 0x1F0D0,
- 0x1F0D1,
- 0x1F0F6,
+ 0x1F100,
+ 0x1F10D,
+ 0x1F110,
+ 0x1F12F,
+ 0x1F130,
+ 0x1F16C,
+ 0x1F170,
+ 0x1F1AD,
0x1F1E6,
0x1F200,
- 0x1F203,
- 0x1F210,
- 0x1F23B,
- 0x1F240,
- 0x1F249,
- 0x1F250,
- 0x1F252,
- 0x1F300,
+ 0x1F385,
+ 0x1F386,
0x1F39C,
0x1F39E,
0x1F3B5,
0x1F3B7,
0x1F3BC,
0x1F3BD,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
0x1F3FB,
0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
0x1F4A0,
0x1F4A1,
0x1F4A2,
0x1F4A3,
0x1F4A4,
0x1F4A5,
+ 0x1F4AA,
+ 0x1F4AB,
0x1F4AF,
0x1F4B0,
0x1F4B1,
@@ -66834,30 +73528,57 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
0x1F525,
0x1F532,
0x1F54A,
+ 0x1F575,
+ 0x1F576,
0x1F57A,
0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
0x1F5D4,
0x1F5DC,
0x1F5F4,
0x1F5FA,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
0x1F650,
0x1F676,
0x1F679,
0x1F67C,
0x1F680,
- 0x1F6D1,
- 0x1F6E0,
- 0x1F6ED,
- 0x1F6F0,
- 0x1F6F4,
- 0x1F910,
- 0x1F919,
- 0x1F980,
- 0x1F985,
- 0x1F9C0,
- 0x1F9C1,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F700,
+ 0x1F774,
+ 0x1F780,
+ 0x1F7D5,
+ 0x1F800,
+ 0x1F80C,
+ 0x1F810,
+ 0x1F848,
+ 0x1F850,
+ 0x1F85A,
+ 0x1F860,
+ 0x1F888,
+ 0x1F890,
+ 0x1F8AE,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
+ 0x1FFFE,
0x20000,
0x2FFFE,
0x30000,
@@ -66874,7 +73595,7 @@ static const UV _Perl_LB_invlist[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_REGEXEC_C)
-#define LB_ENUM_COUNT 36
+#define LB_ENUM_COUNT 39
typedef enum {
LB_Alphabetic = 0,
@@ -66887,32 +73608,35 @@ typedef enum {
LB_Close_Punctuation = 7,
LB_Combining_Mark = 8,
LB_Contingent_Break = 9,
- LB_Exclamation = 10,
- LB_Glue = 11,
- LB_H2 = 12,
- LB_H3 = 13,
- LB_Hebrew_Letter = 14,
- LB_Hyphen = 15,
- LB_Ideographic = 16,
- LB_Infix_Numeric = 17,
- LB_Inseparable = 18,
- LB_JL = 19,
- LB_JT = 20,
- LB_JV = 21,
- LB_Line_Feed = 22,
- LB_Mandatory_Break = 23,
- LB_Next_Line = 24,
- LB_Nonstarter = 25,
- LB_Numeric = 26,
- LB_Open_Punctuation = 27,
- LB_Postfix_Numeric = 28,
- LB_Prefix_Numeric = 29,
- LB_Quotation = 30,
- LB_Regional_Indicator = 31,
- LB_Space = 32,
- LB_Word_Joiner = 33,
- LB_ZWSpace = 34,
- LB_EDGE = 35
+ LB_E_Base = 10,
+ LB_E_Modifier = 11,
+ LB_Exclamation = 12,
+ LB_Glue = 13,
+ LB_H2 = 14,
+ LB_H3 = 15,
+ LB_Hebrew_Letter = 16,
+ LB_Hyphen = 17,
+ LB_Ideographic = 18,
+ LB_Infix_Numeric = 19,
+ LB_Inseparable = 20,
+ LB_JL = 21,
+ LB_JT = 22,
+ LB_JV = 23,
+ LB_Line_Feed = 24,
+ LB_Mandatory_Break = 25,
+ LB_Next_Line = 26,
+ LB_Nonstarter = 27,
+ LB_Numeric = 28,
+ LB_Open_Punctuation = 29,
+ LB_Postfix_Numeric = 30,
+ LB_Prefix_Numeric = 31,
+ LB_Quotation = 32,
+ LB_Regional_Indicator = 33,
+ LB_Space = 34,
+ LB_Word_Joiner = 35,
+ LB_ZWJ = 36,
+ LB_ZWSpace = 37,
+ LB_EDGE = 38
} LB_enum;
static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
@@ -67079,6 +73803,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Combining_Mark,
LB_Alphabetic,
LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
LB_Break_After,
LB_Numeric,
LB_Alphabetic,
@@ -67373,6 +74099,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Exclamation,
LB_Numeric,
LB_Alphabetic,
@@ -67440,6 +74168,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Break_After,
LB_ZWSpace,
LB_Combining_Mark,
+ LB_ZWJ,
+ LB_Combining_Mark,
LB_Break_After,
LB_Glue,
LB_Break_After,
@@ -67522,6 +74252,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -67548,14 +74280,18 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
LB_Alphabetic,
LB_Quotation,
LB_Alphabetic,
LB_Exclamation,
+ LB_Ideographic,
LB_Alphabetic,
LB_Open_Punctuation,
LB_Close_Punctuation,
@@ -67660,6 +74396,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Break_After,
LB_Open_Punctuation,
+ LB_Break_After,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -68781,10 +75518,19 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Open_Punctuation,
LB_Close_Punctuation,
LB_Nonstarter,
- LB_Alphabetic,
+ LB_Ideographic,
LB_Nonstarter,
- LB_Alphabetic,
+ LB_Ideographic,
LB_Nonstarter,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
LB_Alphabetic,
LB_Postfix_Numeric,
LB_Prefix_Numeric,
@@ -68878,6 +75624,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Combining_Mark,
@@ -68904,6 +75652,14 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
LB_Combining_Mark,
@@ -68922,6 +75678,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
+ LB_Break_Before,
+ LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
LB_Numeric,
@@ -68934,6 +75692,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Numeric,
LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Break_After,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Break_Before,
+ LB_Exclamation,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
LB_Break_After,
LB_Alphabetic,
LB_Open_Punctuation,
@@ -68970,6 +75743,12 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
+ LB_Nonstarter,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Combining_Mark,
@@ -69004,9 +75783,21 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Combining_Mark,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Combining_Mark,
LB_Alphabetic,
- LB_Ideographic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Combining_Mark,
+ LB_Alphabetic,
+ LB_Numeric,
+ LB_Alphabetic,
+ LB_Open_Punctuation,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -69016,9 +75807,10 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
+ LB_Ideographic,
LB_Regional_Indicator,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -69026,17 +75818,27 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Modifier,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
LB_Ideographic,
- LB_Alphabetic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
@@ -69044,6 +75846,8 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -69054,15 +75858,36 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
LB_Alphabetic,
LB_Quotation,
LB_Nonstarter,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
+ LB_Alphabetic,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -69073,6 +75898,16 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
+ LB_E_Base,
+ LB_Ideographic,
LB_Alphabetic,
LB_Ideographic,
LB_Alphabetic,
@@ -69091,7 +75926,7 @@ static const LB_enum _Perl_LB_invmap[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
- 2916, /* Number of elements */
+ 2977, /* 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 */
@@ -69818,6 +76653,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -70022,6 +76861,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xC64,
0xC66,
0xC70,
+ 0xC80,
0xC81,
0xC84,
0xC85,
@@ -70069,6 +76909,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xD4A,
0xD4E,
0xD4F,
+ 0xD54,
0xD57,
0xD58,
0xD5F,
@@ -70308,6 +77149,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1820,
0x1878,
0x1880,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x18AB,
@@ -70381,6 +77224,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1C5A,
0x1C7E,
0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -70395,7 +77239,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1D00,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1E01,
0x1E02,
@@ -71239,7 +78083,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xA7A8,
0xA7A9,
0xA7AA,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B5,
0xA7B6,
@@ -71263,7 +78107,7 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8D0,
0xA8DA,
@@ -71511,6 +78355,10 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -71645,6 +78493,8 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1123A,
0x1123B,
0x1123D,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -71694,6 +78544,13 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x1144D,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114B0,
0x114C4,
@@ -71742,6 +78599,23 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C43,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -71786,6 +78660,12 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x16F8F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -71917,10 +78797,26 @@ static const UV _Perl_SB_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E922,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -72762,6 +79658,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Format,
SB_Extend,
SB_OLetter,
SB_Extend,
@@ -72966,6 +79866,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Numeric,
SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -73013,6 +79914,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Extend,
SB_OLetter,
SB_Other,
+ SB_OLetter,
SB_Extend,
SB_Other,
SB_OLetter,
@@ -73254,6 +80156,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_OLetter,
SB_Extend,
SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -73324,6 +80228,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Numeric,
SB_OLetter,
SB_STerm,
+ SB_Lower,
SB_Other,
SB_Extend,
SB_Other,
@@ -74455,6 +81360,10 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Numeric,
SB_Other,
+ SB_Upper,
+ SB_Other,
+ SB_Lower,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -74589,6 +81498,8 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_STerm,
SB_Other,
+ SB_Extend,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -74641,6 +81552,13 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_OLetter,
SB_Extend,
SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Extend,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -74689,6 +81607,23 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_OLetter,
SB_Other,
SB_OLetter,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_OLetter,
+ SB_STerm,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
SB_Other,
SB_OLetter,
SB_Other,
@@ -74740,6 +81675,12 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_OLetter,
SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
+ SB_OLetter,
+ SB_Other,
SB_Extend,
SB_STerm,
SB_Format,
@@ -74861,10 +81802,26 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Extend,
SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
+ SB_Extend,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_Extend,
SB_Other,
+ SB_Upper,
+ SB_Lower,
+ SB_Extend,
+ SB_Other,
+ SB_Numeric,
+ SB_Other,
SB_OLetter,
SB_Other,
SB_OLetter,
@@ -74951,7 +81908,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
SB_Other,
SB_Format,
SB_Other,
- SB_Format,
+ SB_Extend,
SB_Other,
SB_Extend,
SB_Other
@@ -74962,7 +81919,7 @@ static const SB_enum _Perl_SB_invmap[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_PERL_C)
static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
- 1554, /* Number of elements */
+ 1676, /* 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 */
@@ -75156,6 +82113,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x904,
0x93A,
@@ -75360,6 +82321,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xC64,
0xC66,
0xC70,
+ 0xC80,
0xC81,
0xC84,
0xC85,
@@ -75407,6 +82369,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xD4A,
0xD4E,
0xD4F,
+ 0xD54,
0xD57,
0xD58,
0xD5F,
@@ -75594,6 +82557,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1820,
0x1878,
0x1880,
+ 0x1885,
+ 0x1887,
0x18A9,
0x18AA,
0x18AB,
@@ -75649,6 +82614,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -75663,7 +82630,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1D00,
0x1DC0,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1E00,
0x1F16,
0x1F18,
@@ -75705,6 +82672,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x2000,
0x200B,
0x200C,
+ 0x200D,
0x200E,
0x2010,
0x2018,
@@ -75765,6 +82733,14 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x2189,
0x24B6,
0x24EA,
+ 0x261D,
+ 0x261E,
+ 0x26F9,
+ 0x26FA,
+ 0x270A,
+ 0x270E,
+ 0x2764,
+ 0x2765,
0x2C00,
0x2C2F,
0x2C30,
@@ -75862,7 +82838,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -75879,7 +82855,7 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0xA880,
0xA882,
0xA8B4,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -76089,6 +83065,10 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -76210,6 +83190,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x11213,
0x1122C,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -76258,6 +83240,12 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x11435,
+ 0x11447,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114B0,
0x114C4,
@@ -76297,6 +83285,22 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C2F,
+ 0x11C37,
+ 0x11C38,
+ 0x11C40,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -76336,6 +83340,8 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x16F8F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
0x1B000,
0x1B001,
0x1BC00,
@@ -76436,10 +83442,25 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E944,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -76514,6 +83535,64 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
0x1F18A,
0x1F1E6,
0x1F200,
+ 0x1F385,
+ 0x1F386,
+ 0x1F3C3,
+ 0x1F3C5,
+ 0x1F3CA,
+ 0x1F3CC,
+ 0x1F3FB,
+ 0x1F400,
+ 0x1F442,
+ 0x1F444,
+ 0x1F446,
+ 0x1F451,
+ 0x1F466,
+ 0x1F46A,
+ 0x1F46E,
+ 0x1F46F,
+ 0x1F470,
+ 0x1F479,
+ 0x1F47C,
+ 0x1F47D,
+ 0x1F481,
+ 0x1F484,
+ 0x1F485,
+ 0x1F488,
+ 0x1F48B,
+ 0x1F48C,
+ 0x1F4AA,
+ 0x1F4AB,
+ 0x1F575,
+ 0x1F576,
+ 0x1F57A,
+ 0x1F57B,
+ 0x1F590,
+ 0x1F591,
+ 0x1F595,
+ 0x1F597,
+ 0x1F5E8,
+ 0x1F5E9,
+ 0x1F645,
+ 0x1F648,
+ 0x1F64B,
+ 0x1F650,
+ 0x1F6A3,
+ 0x1F6A4,
+ 0x1F6B4,
+ 0x1F6B7,
+ 0x1F6C0,
+ 0x1F6C1,
+ 0x1F918,
+ 0x1F91F,
+ 0x1F926,
+ 0x1F927,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93A,
+ 0x1F93C,
+ 0x1F93F,
0xE0001,
0xE0002,
0xE0020,
@@ -76526,29 +83605,34 @@ static const UV _Perl_WB_invlist[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_REGEXEC_C)
-#define WB_ENUM_COUNT 20
+#define WB_ENUM_COUNT 25
typedef enum {
WB_Other = 0,
WB_ALetter = 1,
WB_CR = 2,
WB_Double_Quote = 3,
- WB_Extend = 4,
- WB_ExtendNumLet = 5,
- WB_Format = 6,
- WB_Hebrew_Letter = 7,
- WB_Katakana = 8,
- WB_LF = 9,
- WB_MidLetter = 10,
- WB_MidNum = 11,
- WB_MidNumLet = 12,
- WB_Newline = 13,
- WB_Numeric = 14,
- WB_Perl_Tailored_HSpace = 15,
- WB_Regional_Indicator = 16,
- WB_Single_Quote = 17,
- WB_EDGE = 18,
- WB_UNKNOWN = 19
+ WB_E_Base = 4,
+ WB_E_Base_GAZ = 5,
+ WB_E_Modifier = 6,
+ WB_Extend = 7,
+ WB_ExtendNumLet = 8,
+ WB_Format = 9,
+ WB_Glue_After_Zwj = 10,
+ WB_Hebrew_Letter = 11,
+ WB_Katakana = 12,
+ WB_LF = 13,
+ WB_MidLetter = 14,
+ WB_MidNum = 15,
+ WB_MidNumLet = 16,
+ WB_Newline = 17,
+ WB_Numeric = 18,
+ WB_Perl_Tailored_HSpace = 19,
+ WB_Regional_Indicator = 20,
+ WB_Single_Quote = 21,
+ WB_ZWJ = 22,
+ WB_EDGE = 23,
+ WB_UNKNOWN = 24
} WB_enum;
static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
@@ -76742,6 +83826,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Format,
WB_Extend,
WB_ALetter,
WB_Extend,
@@ -76946,6 +84034,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_Numeric,
WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -76993,6 +84082,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_ALetter,
@@ -77182,6 +84272,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Extend,
WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -77235,6 +84327,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Numeric,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Extend,
WB_Other,
WB_Extend,
@@ -77291,6 +84385,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Perl_Tailored_HSpace,
WB_Other,
WB_Extend,
+ WB_ZWJ,
WB_Format,
WB_Other,
WB_MidNumLet,
@@ -77300,7 +84395,7 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_MidLetter,
WB_Newline,
WB_Format,
- WB_Perl_Tailored_HSpace,
+ WB_ExtendNumLet,
WB_Other,
WB_ExtendNumLet,
WB_Other,
@@ -77351,6 +84446,14 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_ALetter,
WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -77714,6 +84817,10 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Extend,
WB_Other,
WB_Extend,
@@ -77796,6 +84903,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_ALetter,
@@ -77848,6 +84957,12 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_Numeric,
@@ -77886,6 +85001,22 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_ALetter,
WB_Other,
WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_ALetter,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_ALetter,
+ WB_Other,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -77922,6 +85053,8 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Extend,
WB_ALetter,
WB_Other,
+ WB_ALetter,
+ WB_Other,
WB_Katakana,
WB_Other,
WB_ALetter,
@@ -78022,11 +85155,26 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_Extend,
WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
+ WB_Extend,
+ WB_Other,
WB_ALetter,
WB_Other,
WB_Extend,
WB_Other,
WB_ALetter,
+ WB_Extend,
+ WB_Other,
+ WB_Numeric,
+ WB_Other,
+ WB_ALetter,
WB_Other,
WB_ALetter,
WB_Other,
@@ -78100,11 +85248,69 @@ static const WB_enum _Perl_WB_invmap[] = { /* for EBCDIC 037 */
WB_Other,
WB_Regional_Indicator,
WB_Other,
- WB_Format,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Modifier,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base_GAZ,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_Glue_After_Zwj,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
+ WB_Other,
+ WB_E_Base,
WB_Other,
WB_Format,
WB_Other,
WB_Extend,
+ WB_Other,
+ WB_Extend,
WB_Other
};
@@ -78227,7 +85433,7 @@ static const UV XPerlSpace_invlist[] = { /* for EBCDIC 037 */
};
static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
- 1317, /* Number of elements */
+ 1377, /* 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 */
@@ -78356,6 +85562,10 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E0,
0x8E3,
0x8EA,
0x8F0,
@@ -78542,7 +85752,7 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -78586,7 +85796,7 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0xD4D,
0xD4E,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -78830,6 +86040,8 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -79003,7 +86215,7 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -79018,6 +86230,8 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0xA874,
0xA880,
0xA8C4,
+ 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8F2,
@@ -79176,6 +86390,10 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -79278,6 +86496,8 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0x11235,
0x11237,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -79318,6 +86538,14 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0x11358,
0x1135D,
0x11364,
+ 0x11400,
+ 0x11442,
+ 0x11443,
+ 0x11446,
+ 0x11447,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C2,
0x114C4,
@@ -79356,6 +86584,22 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -79390,6 +86634,12 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0x16F7F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -79464,8 +86714,24 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
0x1D7CC,
0x1D7CE,
0x1D800,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
+ 0x1E947,
+ 0x1E948,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -79551,7 +86817,7 @@ static const UV XPosixAlnum_invlist[] = { /* for EBCDIC 037 */
};
static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
- 1257, /* Number of elements */
+ 1311, /* 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 */
@@ -79682,6 +86948,10 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0x859,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E0,
0x8E3,
0x8EA,
0x8F0,
@@ -79858,7 +87128,7 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0xC5B,
0xC60,
0xC64,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -79900,7 +87170,7 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0xD4D,
0xD4E,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -80122,6 +87392,8 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0x1C50,
0x1C5A,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CE9,
0x1CED,
0x1CEE,
@@ -80297,7 +87569,7 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -80312,6 +87584,8 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0xA874,
0xA880,
0xA8C4,
+ 0xA8C5,
+ 0xA8C6,
0xA8F2,
0xA8F8,
0xA8FB,
@@ -80462,6 +87736,10 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0x103D6,
0x10400,
0x1049E,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -80558,6 +87836,8 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0x11235,
0x11237,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -80596,6 +87876,12 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0x11358,
0x1135D,
0x11364,
+ 0x11400,
+ 0x11442,
+ 0x11443,
+ 0x11446,
+ 0x11447,
+ 0x1144B,
0x11480,
0x114C2,
0x114C4,
@@ -80626,6 +87912,20 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C3F,
+ 0x11C40,
+ 0x11C41,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -80656,6 +87956,12 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0x16F7F,
0x16F93,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -80728,8 +88034,22 @@ static const UV XPosixAlpha_invlist[] = { /* for EBCDIC 037 */
0x1D7C3,
0x1D7C4,
0x1D7CC,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
+ 0x1E900,
+ 0x1E944,
+ 0x1E947,
+ 0x1E948,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -80848,7 +88168,7 @@ static const UV XPosixCntrl_invlist[] = { /* for EBCDIC 037 */
};
static const UV XPosixDigit_invlist[] = { /* for EBCDIC 037 */
- 103, /* Number of elements */
+ 109, /* 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 */
@@ -80939,6 +88259,8 @@ static const UV XPosixDigit_invlist[] = { /* for EBCDIC 037 */
0x111DA,
0x112F0,
0x112FA,
+ 0x11450,
+ 0x1145A,
0x114D0,
0x114DA,
0x11650,
@@ -80949,16 +88271,20 @@ static const UV XPosixDigit_invlist[] = { /* for EBCDIC 037 */
0x1173A,
0x118E0,
0x118EA,
+ 0x11C50,
+ 0x11C5A,
0x16A60,
0x16A6A,
0x16B50,
0x16B5A,
0x1D7CE,
- 0x1D800
+ 0x1D800,
+ 0x1E950,
+ 0x1E95A
};
static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
- 1237, /* Number of elements */
+ 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 */
@@ -81013,7 +88339,9 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x85F,
0x8A0,
0x8B5,
- 0x8E3,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
0x984,
0x985,
0x98D,
@@ -81186,8 +88514,6 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0xC66,
0xC70,
0xC78,
- 0xC80,
- 0xC81,
0xC84,
0xC85,
0xC8D,
@@ -81228,14 +88554,10 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0xD46,
0xD49,
0xD4A,
- 0xD4F,
- 0xD57,
- 0xD58,
- 0xD5F,
+ 0xD50,
+ 0xD54,
0xD64,
0xD66,
- 0xD76,
- 0xD79,
0xD80,
0xD82,
0xD84,
@@ -81438,7 +88760,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x1C3B,
0x1C4A,
0x1C4D,
- 0x1C80,
+ 0x1C89,
0x1CC0,
0x1CC8,
0x1CD0,
@@ -81447,7 +88769,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -81500,7 +88822,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x2100,
0x218C,
0x2190,
- 0x23FB,
+ 0x23FF,
0x2400,
0x2427,
0x2440,
@@ -81552,7 +88874,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -81592,7 +88914,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0xA640,
0xA6F8,
0xA700,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -81602,7 +88924,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0xA840,
0xA878,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8DA,
0xA8E0,
@@ -81726,7 +89048,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x10107,
0x10134,
0x10137,
- 0x1018D,
+ 0x1018F,
0x10190,
0x1019C,
0x101A0,
@@ -81755,6 +89077,10 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -81866,7 +89192,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x11200,
0x11212,
0x11213,
- 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -81911,6 +89237,12 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x11480,
0x114C8,
0x114D0,
@@ -81923,6 +89255,8 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x11645,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x11680,
0x116B8,
0x116C0,
@@ -81939,6 +89273,20 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -81979,6 +89327,12 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -82049,10 +89403,26 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8C7,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -82140,25 +89510,21 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x1F130,
0x1F16C,
0x1F170,
- 0x1F19B,
+ 0x1F1AD,
0x1F1E6,
0x1F203,
0x1F210,
- 0x1F23B,
+ 0x1F23C,
0x1F240,
0x1F249,
0x1F250,
0x1F252,
0x1F300,
- 0x1F57A,
- 0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
- 0x1F6D1,
+ 0x1F6D3,
0x1F6E0,
0x1F6ED,
0x1F6F0,
- 0x1F6F4,
+ 0x1F6F7,
0x1F700,
0x1F774,
0x1F780,
@@ -82174,9 +89540,19 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
0x1F890,
0x1F8AE,
0x1F910,
- 0x1F919,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
0x1F980,
- 0x1F985,
+ 0x1F992,
0x1F9C0,
0x1F9C1,
0x20000,
@@ -82202,7 +89578,7 @@ static const UV XPosixGraph_invlist[] = { /* for EBCDIC 037 */
};
static const UV XPosixLower_invlist[] = { /* for EBCDIC 037 */
- 1283, /* Number of elements */
+ 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 */
@@ -82767,6 +90143,8 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC 037 */
0x588,
0x13F8,
0x13FE,
+ 0x1C80,
+ 0x1C89,
0x1D00,
0x1DC0,
0x1E01,
@@ -83429,6 +90807,8 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC 037 */
0xFF5B,
0x10428,
0x10450,
+ 0x104D8,
+ 0x104FC,
0x10CC0,
0x10CF3,
0x118C0,
@@ -83488,11 +90868,13 @@ static const UV XPosixLower_invlist[] = { /* for EBCDIC 037 */
0x1D7C4,
0x1D7CA,
0x1D7CB,
- 0x1D7CC
+ 0x1D7CC,
+ 0x1E922,
+ 0x1E944
};
static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
- 1231, /* Number of elements */
+ 1281, /* 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 */
@@ -83547,7 +90929,9 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x85F,
0x8A0,
0x8B5,
- 0x8E3,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
0x984,
0x985,
0x98D,
@@ -83720,8 +91104,6 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0xC66,
0xC70,
0xC78,
- 0xC80,
- 0xC81,
0xC84,
0xC85,
0xC8D,
@@ -83762,14 +91144,10 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0xD46,
0xD49,
0xD4A,
- 0xD4F,
- 0xD57,
- 0xD58,
- 0xD5F,
+ 0xD50,
+ 0xD54,
0xD64,
0xD66,
- 0xD76,
- 0xD79,
0xD80,
0xD82,
0xD84,
@@ -83970,7 +91348,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x1C3B,
0x1C4A,
0x1C4D,
- 0x1C80,
+ 0x1C89,
0x1CC0,
0x1CC8,
0x1CD0,
@@ -83979,7 +91357,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -84028,7 +91406,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x2100,
0x218C,
0x2190,
- 0x23FB,
+ 0x23FF,
0x2400,
0x2427,
0x2440,
@@ -84080,7 +91458,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x2DD8,
0x2DDF,
0x2DE0,
- 0x2E43,
+ 0x2E45,
0x2E80,
0x2E9A,
0x2E9B,
@@ -84120,7 +91498,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0xA640,
0xA6F8,
0xA700,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -84130,7 +91508,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0xA840,
0xA878,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8CE,
0xA8DA,
0xA8E0,
@@ -84254,7 +91632,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x10107,
0x10134,
0x10137,
- 0x1018D,
+ 0x1018F,
0x10190,
0x1019C,
0x101A0,
@@ -84283,6 +91661,10 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -84394,7 +91776,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x11200,
0x11212,
0x11213,
- 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -84439,6 +91821,12 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1145A,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x11480,
0x114C8,
0x114D0,
@@ -84451,6 +91839,8 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x11645,
0x11650,
0x1165A,
+ 0x11660,
+ 0x1166D,
0x11680,
0x116B8,
0x116C0,
@@ -84467,6 +91857,20 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C46,
+ 0x11C50,
+ 0x11C6D,
+ 0x11C70,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -84507,6 +91911,12 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -84577,10 +91987,26 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8C7,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
+ 0x1E95E,
+ 0x1E960,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -84668,25 +92094,21 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x1F130,
0x1F16C,
0x1F170,
- 0x1F19B,
+ 0x1F1AD,
0x1F1E6,
0x1F203,
0x1F210,
- 0x1F23B,
+ 0x1F23C,
0x1F240,
0x1F249,
0x1F250,
0x1F252,
0x1F300,
- 0x1F57A,
- 0x1F57B,
- 0x1F5A4,
- 0x1F5A5,
- 0x1F6D1,
+ 0x1F6D3,
0x1F6E0,
0x1F6ED,
0x1F6F0,
- 0x1F6F4,
+ 0x1F6F7,
0x1F700,
0x1F774,
0x1F780,
@@ -84702,9 +92124,19 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
0x1F890,
0x1F8AE,
0x1F910,
- 0x1F919,
+ 0x1F91F,
+ 0x1F920,
+ 0x1F928,
+ 0x1F930,
+ 0x1F931,
+ 0x1F933,
+ 0x1F93F,
+ 0x1F940,
+ 0x1F94C,
+ 0x1F950,
+ 0x1F95F,
0x1F980,
- 0x1F985,
+ 0x1F992,
0x1F9C0,
0x1F9C1,
0x20000,
@@ -84730,7 +92162,7 @@ static const UV XPosixPrint_invlist[] = { /* for EBCDIC 037 */
};
static const UV XPosixPunct_invlist[] = { /* for EBCDIC 037 */
- 323, /* Number of elements */
+ 337, /* 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 */
@@ -84906,7 +92338,7 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC 037 */
0x2E00,
0x2E2F,
0x2E30,
- 0x2E43,
+ 0x2E45,
0x3001,
0x3004,
0x3008,
@@ -85035,14 +92467,26 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC 037 */
0x1123E,
0x112A9,
0x112AA,
+ 0x1144B,
+ 0x11450,
+ 0x1145B,
+ 0x1145C,
+ 0x1145D,
+ 0x1145E,
0x114C6,
0x114C7,
0x115C1,
0x115D8,
0x11641,
0x11644,
+ 0x11660,
+ 0x1166D,
0x1173C,
0x1173F,
+ 0x11C41,
+ 0x11C46,
+ 0x11C70,
+ 0x11C72,
0x12470,
0x12475,
0x16A6E,
@@ -85056,7 +92500,9 @@ static const UV XPosixPunct_invlist[] = { /* for EBCDIC 037 */
0x1BC9F,
0x1BCA0,
0x1DA87,
- 0x1DA8C
+ 0x1DA8C,
+ 0x1E95E,
+ 0x1E960
};
static const UV XPosixSpace_invlist[] = { /* for EBCDIC 037 */
@@ -85090,7 +92536,7 @@ static const UV XPosixSpace_invlist[] = { /* for EBCDIC 037 */
};
static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
- 1275, /* Number of elements */
+ 1279, /* 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 */
@@ -86288,7 +93734,7 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
0xA7A8,
0xA7A9,
0xA7AA,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B5,
0xA7B6,
@@ -86297,6 +93743,8 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
0xFF3B,
0x10400,
0x10428,
+ 0x104B0,
+ 0x104D4,
0x10C80,
0x10CB3,
0x118A0,
@@ -86363,6 +93811,8 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
0x1D7A9,
0x1D7CA,
0x1D7CB,
+ 0x1E900,
+ 0x1E922,
0x1F130,
0x1F14A,
0x1F150,
@@ -86372,7 +93822,7 @@ static const UV XPosixUpper_invlist[] = { /* for EBCDIC 037 */
};
static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
- 1331, /* Number of elements */
+ 1381, /* 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 */
@@ -86495,6 +93945,10 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x85C,
0x8A0,
0x8B5,
+ 0x8B6,
+ 0x8BE,
+ 0x8D4,
+ 0x8E2,
0x8E3,
0x964,
0x966,
@@ -86673,7 +94127,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0xC64,
0xC66,
0xC70,
- 0xC81,
+ 0xC80,
0xC84,
0xC85,
0xC8D,
@@ -86715,7 +94169,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0xD49,
0xD4A,
0xD4F,
- 0xD57,
+ 0xD54,
0xD58,
0xD5F,
0xD64,
@@ -86951,6 +94405,8 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x1C4A,
0x1C4D,
0x1C7E,
+ 0x1C80,
+ 0x1C89,
0x1CD0,
0x1CD3,
0x1CD4,
@@ -86959,7 +94415,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x1CFA,
0x1D00,
0x1DF6,
- 0x1DFC,
+ 0x1DFB,
0x1F16,
0x1F18,
0x1F1E,
@@ -87130,7 +94586,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0xA722,
0xA789,
0xA78B,
- 0xA7AE,
+ 0xA7AF,
0xA7B0,
0xA7B8,
0xA7F7,
@@ -87138,7 +94594,7 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0xA840,
0xA874,
0xA880,
- 0xA8C5,
+ 0xA8C6,
0xA8D0,
0xA8DA,
0xA8E0,
@@ -87303,6 +94759,10 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x1049E,
0x104A0,
0x104AA,
+ 0x104B0,
+ 0x104D4,
+ 0x104D8,
+ 0x104FC,
0x10500,
0x10528,
0x10530,
@@ -87407,6 +94867,8 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x11212,
0x11213,
0x11238,
+ 0x1123E,
+ 0x1123F,
0x11280,
0x11287,
0x11288,
@@ -87451,6 +94913,10 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x1136D,
0x11370,
0x11375,
+ 0x11400,
+ 0x1144B,
+ 0x11450,
+ 0x1145A,
0x11480,
0x114C6,
0x114C7,
@@ -87485,6 +94951,20 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x11900,
0x11AC0,
0x11AF9,
+ 0x11C00,
+ 0x11C09,
+ 0x11C0A,
+ 0x11C37,
+ 0x11C38,
+ 0x11C41,
+ 0x11C50,
+ 0x11C5A,
+ 0x11C72,
+ 0x11C90,
+ 0x11C92,
+ 0x11CA8,
+ 0x11CA9,
+ 0x11CB7,
0x12000,
0x1239A,
0x12400,
@@ -87521,6 +95001,12 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x16F7F,
0x16F8F,
0x16FA0,
+ 0x16FE0,
+ 0x16FE1,
+ 0x17000,
+ 0x187ED,
+ 0x18800,
+ 0x18AF3,
0x1B000,
0x1B002,
0x1BC00,
@@ -87619,10 +95105,24 @@ static const UV XPosixWord_invlist[] = { /* for EBCDIC 037 */
0x1DAA0,
0x1DAA1,
0x1DAB0,
+ 0x1E000,
+ 0x1E007,
+ 0x1E008,
+ 0x1E019,
+ 0x1E01B,
+ 0x1E022,
+ 0x1E023,
+ 0x1E025,
+ 0x1E026,
+ 0x1E02B,
0x1E800,
0x1E8C5,
0x1E8D0,
0x1E8D7,
+ 0x1E900,
+ 0x1E94B,
+ 0x1E950,
+ 0x1E95A,
0x1EE00,
0x1EE04,
0x1EE05,
@@ -87735,160 +95235,180 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC 037 */
#if defined(PERL_IN_REGEXEC_C)
-static const bool GCB_table[14][14] = {
+#define GCB_NOBREAK 0
+#define GCB_BREAKABLE 1
+#define GCB_RI_then_RI 2
+#define GCB_EX_then_EM 3
+
+static const U8 GCB_table[19][19] = {
/* 'edg' stands for 'EDGE' */
-/* XX CR CN EX L LF LV LVT PP RI SM T V edg */
-/* XX */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 },
-/* CR */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* CN */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* EX */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 },
-/* L */ { 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1 },
-/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* LV */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1 },
-/* LVT*/ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1 },
-/* PP */ { 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
-/* RI */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1 },
-/* SM */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 },
-/* T */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1 },
-/* V */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1 },
-/* edg*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }
+/* XX CR CN EB EBG EM EX GAZ L LF LV LVT PP RI SM T V ZWJ edg */
+/* XX */ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* CR */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* CN */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* EB */ { 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* EBG*/ { 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* EM */ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* EX */ { 1, 1, 1, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* GAZ*/ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* L */ { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1 },
+/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* LV */ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 },
+/* LVT*/ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1 },
+/* PP */ { 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
+/* RI */ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 0, 1 },
+/* SM */ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* T */ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1 },
+/* V */ { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1 },
+/* ZWJ*/ { 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* edg*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }
};
#define LB_NOBREAK 0
#define LB_BREAKABLE 1
#define LB_NOBREAK_EVEN_WITH_SP_BETWEEN 2
-#define LB_CM_foo 3
+#define LB_CM_ZWJ_foo 3
#define LB_SP_foo 6
#define LB_PR_or_PO_then_OP_or_HY 9
#define LB_SY_or_IS_then_various 11
#define LB_HY_or_BA_then_foo 13
-#define LB_various_then_PO_or_PR 16
+#define LB_RI_then_RI 15
+#define LB_various_then_PO_or_PR 32
-static const U8 LB_table[36][36] = {
+static const U8 LB_table[39][39] = {
/* 'edg' stands for 'EDGE' */
-/* AL BA BB B2 SY CR CP CL CM CB EX GL H2 H3 HL HY ID IS IN JL JT JV LF BK NL NS NU OP PO PR QU RI SP WJ ZW edg */
-/* AL */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* BA */ {14, 0,14,14, 2, 0, 2, 2, 0, 1, 2,14,14,14,14, 0,14, 2,14,14,14,14, 0, 0, 0, 0,14,14,14,14, 0,14, 0, 0, 0, 1 },
-/* BB */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
-/* B2 */ { 1, 0, 1, 2, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* SY */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0,12, 1,17,17, 0, 1, 0, 0, 0, 1 },
-/* CR */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* CP */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 0, 1,17,17, 0, 1, 0, 0, 0, 1 },
-/* CL */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 1, 1,17,17, 0, 1, 0, 0, 0, 1 },
-/* CM */ { 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 1 },
-/* CB */ { 1, 1, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* EX */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* GL */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
-/* H2 */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 },
-/* H3 */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 },
-/* HL */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* HY */ {14, 0,14,14, 2, 0, 2, 2, 0, 1, 2,14,14,14,14, 0,14, 2,14,14,14,14, 0, 0, 0, 0,13,14,14,14, 0,14, 0, 0, 0, 1 },
-/* ID */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 },
-/* IS */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0,12, 1,17,17, 0, 1, 0, 0, 0, 1 },
-/* IN */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* JL */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 1, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 },
-/* JT */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 },
-/* JV */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1 },
-/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* BK */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* NL */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* NS */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* NU */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 2, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1 },
-/* OP */ { 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 1 },
-/* PO */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* PR */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 0, 0, 1 },
-/* QU */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1 },
-/* RI */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1 },
-/* SP */ { 7, 7, 7, 7, 8, 0, 8, 8, 7, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 8, 0, 1 },
-/* WJ */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
-/* ZW */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1 },
-/* edg*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+/* AL BA BB B2 SY CR CP CL CM CB EB EM EX GL H2 H3 HL HY ID IS IN JL JT JV LF BK NL NS NU OP PO PR QU RI SP WJ ZWJ ZW edg */
+/* AL */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 },
+/* BA */ {14, 0,14,14, 2, 0, 2, 2, 0, 1,14,14, 2,14,14,14,14, 0,14, 2,14,14,14,14, 0, 0, 0, 0,14,14,14,14, 0,14, 0, 0, 0, 0, 1 },
+/* BB */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
+/* B2 */ { 1, 0, 1, 2, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* SY */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0,12, 1,33,33, 0, 1, 0, 0, 0, 0, 1 },
+/* CR */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* CP */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 0, 1,33,33, 0, 1, 0, 0, 0, 0, 1 },
+/* CL */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, 1, 1,33,33, 0, 1, 0, 0, 0, 0, 1 },
+/* CM */ { 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 0, 1 },
+/* CB */ { 1, 1, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* EB */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 0, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* EM */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* EX */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* GL */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
+/* H2 */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* H3 */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* HL */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 },
+/* HY */ {14, 0,14,14, 2, 0, 2, 2, 0, 1,14,14, 2,14,14,14,14, 0,14, 2,14,14,14,14, 0, 0, 0, 0,13,14,14,14, 0,14, 0, 0, 0, 0, 1 },
+/* ID */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* IS */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0,12, 1,33,33, 0, 1, 0, 0, 0, 0, 1 },
+/* IN */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* JL */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 0, 0, 1, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* JT */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* JV */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* LF */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* BK */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* NL */ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+/* NS */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* NU */ { 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 },
+/* OP */ { 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 1 },
+/* PO */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* PR */ { 0, 0, 1, 1, 2, 0, 2, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,10, 1, 1, 0, 1, 0, 0, 0, 0, 1 },
+/* QU */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
+/* RI */ { 1, 0, 1, 1, 2, 0, 2, 2, 0, 1, 1, 1, 2, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0,15, 0, 0, 0, 0, 1 },
+/* SP */ { 7, 7, 7, 7, 8, 0, 8, 8, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 0, 8, 7, 0, 1 },
+/* WJ */ { 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
+/* ZWJ*/ { 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 0, 3, 0, 0, 1 },
+/* ZW */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1 },
+/* edg*/ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
#define WB_NOBREAK 0
#define WB_BREAKABLE 1
#define WB_hs_then_hs 2
-#define WB_Ex_or_FO_then_foo 3
+#define WB_Ex_or_FO_or_ZWJ_then_foo 3
#define WB_DQ_then_HL 4
#define WB_HL_then_DQ 6
#define WB_LE_or_HL_then_MB_or_ML_or_SQ 8
#define WB_MB_or_ML_or_SQ_then_LE_or_HL 10
#define WB_MB_or_MN_or_SQ_then_NU 12
#define WB_NU_then_MB_or_MN_or_SQ 14
+#define WB_RI_then_RI 16
-static const U8 WB_table[19][19] = {
- /* 'Ext' stands for 'Extend'; 'edg' stands for 'EDGE'; 'hs' stands
- * for 'Perl_Tailored_HSpace'; 'unk' stands for 'UNKNOWN' */
-/* XX LE CR DQ Ext EX FO HL KA LF ML MN MB NL NU hs RI SQ edg */
-/* XX */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* LE */ { 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 9, 1 },
-/* CR */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1 },
-/* DQ */ { 1, 1, 1, 1, 0, 1, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* Ext*/ { 3, 3, 1, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1 },
-/* EX */ { 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1 },
-/* FO */ { 3, 3, 1, 3, 0, 3, 0, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 1 },
-/* HL */ { 1, 0, 1, 7, 0, 0, 0, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 8, 1 },
-/* KA */ { 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* LF */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1 },
-/* ML */ { 1,11, 1, 1, 0, 1, 0,11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
-/* MN */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 1 },
-/* MB */ { 1,11, 1, 1, 0, 1, 0,11, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 1 },
-/* NL */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1 },
-/* NU */ { 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1,15,15, 1, 0, 1, 1,15, 1 },
-/* hs */ { 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 2, 1, 1, 1 },
-/* RI */ { 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1 },
-/* SQ */ { 1,11, 1, 1, 0, 1, 0,11, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 1 },
-/* edg*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }
+static const U8 WB_table[24][24] = {
+ /* 'Ext' stands for 'Extend'; 'edg' stands for 'EDGE'; 'hs' stands for
+ * 'Perl_Tailored_HSpace'; 'unk' stands for 'UNKNOWN' */
+/* XX LE CR DQ EB EBG EM Ext EX FO GAZ HL KA LF ML MN MB NL NU hs RI SQ ZWJ edg */
+/* XX */ { 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
+/* LE */ { 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 9, 0, 1 },
+/* CR */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1 },
+/* DQ */ { 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
+/* EB */ { 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
+/* EBG*/ { 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
+/* EM */ { 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
+/* Ext*/ { 3, 3, 1, 3, 3, 3, 3, 0, 3, 0, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 0, 1 },
+/* EX */ { 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1 },
+/* FO */ { 3, 3, 1, 3, 3, 3, 3, 0, 3, 0, 3, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 0, 1 },
+/* GAZ*/ { 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
+/* HL */ { 1, 0, 1, 7, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 9, 1, 9, 1, 0, 1, 1, 8, 0, 1 },
+/* KA */ { 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
+/* LF */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1 },
+/* ML */ { 1,11, 1, 1, 1, 1, 1, 0, 1, 0, 1,11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1 },
+/* MN */ { 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 0, 1 },
+/* MB */ { 1,11, 1, 1, 1, 1, 1, 0, 1, 0, 1,11, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 0, 1 },
+/* NL */ { 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1 },
+/* NU */ { 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1,15,15, 1, 0, 1, 1,15, 0, 1 },
+/* hs */ { 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 2, 1, 1, 0, 1 },
+/* RI */ { 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,16, 1, 0, 1 },
+/* SQ */ { 1,11, 1, 1, 1, 1, 1, 0, 1, 0, 1,11, 1, 1, 1, 1, 1, 1,13, 1, 1, 1, 0, 1 },
+/* ZWJ*/ { 3, 3, 1, 3, 3, 0, 3, 0, 3, 0, 0, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 0, 1 },
+/* edg*/ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0 }
};
#endif /* defined(PERL_IN_REGEXEC_C) */
/* Generated from:
- * cb3170dd603ad12ba0299440e99e8f50a8afde60ade2ffcbf1ff4a8a53854b90 lib/Unicode/UCD.pm
- * ae98bec7e4f0564758eed81eca5015481ba32581f8a735a825b71b3bba714450 lib/unicore/ArabicShaping.txt
- * 1687fe5994eb7e5c0dab8503fc2a1b3b479d91af9d3b8055941c9bd791f7d0b5 lib/unicore/BidiBrackets.txt
- * 350d1302116194b0b21def287434b55c5088098fbc726e879f7420a391965643 lib/unicore/BidiMirroring.txt
- * 288fc7b85c76bda296e296c8465f1f4baeb456cb814430dfaa0f546bfbe86b4a lib/unicore/Blocks.txt
- * 86e075f2ede997b3fa5965516c75190b5a88bb82d302272d9c3179b7a57af03f lib/unicore/CaseFolding.txt
- * 2fafee5be73bf2817ee669c53c504a6c4aa02ac7344194af18511aea2e05d750 lib/unicore/CompositionExclusions.txt
- * 302f6d6171dc9c6165db86d0226b7923a64cea06c493d339d35436bf137606a3 lib/unicore/DAge.txt
- * ff666dece87dfdbdbf04a2e26a0bfb52c4ba98db1f8965b0b01ddb9e15f97476 lib/unicore/DCoreProperties.txt
- * 6cc76100d402d7dd12bd769ac61158b91e71aad58c8333abb848f1b9c9fdde2d lib/unicore/DNormalizationProps.txt
- * ccc571829b384b8a2c24b7a62f8aa6a891a6e8c48f08513ef84fd6da26dba4bb lib/unicore/EastAsianWidth.txt
- * 2320db06cf88c755ec7b9cfec96dd9e1d774173521dbc3ee7985377c2ab90d32 lib/unicore/HangulSyllableType.txt
- * e52216b5fdb04910e06e94f01cabdf70656b0077c92b756c7b38822626d572f2 lib/unicore/IndicPositionalCategory.txt
- * 4db71a39102e173095cb8bda8b4c35e78fe6b365e443c584b19f081d8c4894fc lib/unicore/IndicSyllabicCategory.txt
- * eeb30346bb545bb45ff16486d9234397bfe1a195bb12b54fc1d9f48f87e8aa5e lib/unicore/Jamo.txt
- * 13e2b7087bcca3163272e64e34e480534bd2f8353a0245c26e6642566f59a60d lib/unicore/LineBreak.txt
- * 9bb54cd7b5509779f269fa60341bcbfca8da8f17d3c4999e44a5a51671d3c402 lib/unicore/NameAliases.txt
- * e4c29d9ceefbe2382af819ac7646265a9e4ea599ce04a90d31bec97cfaa2848f lib/unicore/NamedSequences.txt
- * 70d40297f1bf91397fbdab5a770c12100733e67c5c3398446c5e950715d5e535 lib/unicore/PropList.txt
- * 03a440f2a4b9151043a6bb53d4a4e528b73238079f9d686dc2a5846e6895588a lib/unicore/PropValueAliases.txt
- * 8e8b48c2080d31aa6713f5535aad94a1f7bc9a65cc52563724e5e69b0a3b4196 lib/unicore/PropertyAliases.txt
- * 45d42b1ecbac2263c1c63c95104e63ea64313eb99be94542e040aea11c449f6c lib/unicore/ScriptExtensions.txt
- * 79fbd73ad82c30fdb67d36a349d12667bd58d3e9da6a8ce7dd26383b637ba85f lib/unicore/Scripts.txt
- * fb2025dae3b9b17649b6e379c1cdbddf50641267ca6d2446caeccf4a141fe167 lib/unicore/SpecialCasing.txt
- * 38b17e1118206489a7e0ab5d29d7932212d38838df7d3ec025ecb58e8798ec20 lib/unicore/UnicodeData.txt
- * 0cedd6e0f5cadf57ce9cfc96beccfd083b0faa0809a631a777cd25f0316bfabb lib/unicore/auxiliary/GCBTest.txt
- * 230005412f9a47128e37bc52330766aaa0b5522a53737a89cff66e891e14527a lib/unicore/auxiliary/GraphemeBreakProperty.txt
- * 149b14ab93b06c887a958fb16d0ad01193063ef69cc14f10338ae4d0accd6c28 lib/unicore/auxiliary/LBTest.txt
- * 41bf82452d71ce15eda8c9bb1bb0c20b72205acaaf503e3cb84734ed8e85d33a lib/unicore/auxiliary/SBTest.txt
- * d3b45cdb0a73eeb9d25158336583dfc1e6f64da59537acb0008988b40e6b3b63 lib/unicore/auxiliary/SentenceBreakProperty.txt
- * a661f42a54f7cc4dded72a61c508be2b482f912d4b6cf140335010f0c684dbb9 lib/unicore/auxiliary/WBTest.txt
- * c255bd2e1f163373510679bf4b272eee97b635bfce2a6550d6c10fe5c917f01a lib/unicore/auxiliary/WordBreakProperty.txt
- * 16dac6f1c164a4f52741b71221a8aafb6acb52cd8a436af139da6e93d86efdfb lib/unicore/extracted/DBidiClass.txt
- * c4e78efc041668548117f7462af03b28dfbb2caca5d46a1ae78ae0ce0bb26c4a lib/unicore/extracted/DBinaryProperties.txt
- * 5886bb44aae8f2821663f742793cb91d4ed0923c6840f3bfb73530e37030abf8 lib/unicore/extracted/DCombiningClass.txt
- * 9edba3785ed0e6e46e10f67e2dd0ec3cb0799b7f75f526fe918429576060352e lib/unicore/extracted/DDecompositionType.txt
- * b774387f79b27ae4268ae89450f971408dc9bbbb523426482ab4375c962bd922 lib/unicore/extracted/DEastAsianWidth.txt
- * ba4207d2464077e807b20caf063041142afc0a8a38c328c5c23b3417c9f2da33 lib/unicore/extracted/DGeneralCategory.txt
- * 29fdd151266595eb1b37715937afe0727bb632a2bc1130f0d2314040175df82e lib/unicore/extracted/DJoinGroup.txt
- * 7725fe247da06986e43e89fd316b8b22a0619546d0c1ed499a94b25e9164c150 lib/unicore/extracted/DJoinType.txt
- * 1a0687fb9c6c4567e853913549df0944fe40821279a3e9cdaa6ab8679bc286fd lib/unicore/extracted/DLineBreak.txt
- * 40bcfed3ca727c19e1331f6c33806231d5f7eeeabd2e6a9e06a3740c85d0c250 lib/unicore/extracted/DNumType.txt
- * a18d502bad39d527ac5586d7bc93e29f565859e3bcc24ada627eff606d6f5fed lib/unicore/extracted/DNumValues.txt
- * 285aef7ed2bf69724b1fa9bba177640636f666e1a5dd0ba5e538d4790129bbfe lib/unicore/mktables
- * 462c9aaa608fb2014cd9649af1c5c009485c60b9c8b15b89401fdc10cf6161c6 lib/unicore/version
+ * 59e717586b720a821ee0d7397679d5322e38b49f6fb7840545aedf669c733b70 lib/Unicode/UCD.pm
+ * 47cb62a53beea6d0263e2147331c7e751853c9327225d95bbe2d9e1dc3e1aa44 lib/unicore/ArabicShaping.txt
+ * 153f0a100c315f9f3945e78f57137611d36c44b3a975919c499fd403413fede8 lib/unicore/BidiBrackets.txt
+ * fbe806975c1bf9fc9960bbaa39ff6290c42c7da8315f9cd459109b024cc1c485 lib/unicore/BidiMirroring.txt
+ * 612127d4889032e55d82522e4a0c19793bda8aa8da14ecb3c696d17c83e6be13 lib/unicore/Blocks.txt
+ * 37d40cf8c2c35637f4a04e746814e1fc4eb764c272bed9238a87ee96a4866857 lib/unicore/CaseFolding.txt
+ * 5623df16856ad4007c60bdfff6f054e087521becd24cb4006be69c3a1d851aee lib/unicore/CompositionExclusions.txt
+ * 5cb15b04693c43df16e0d304deca049e93b001445d163184e0ff1b7c8c852146 lib/unicore/DAge.txt
+ * 6662c7e30b572df5d948c092692f52bcc79ab36d49a063a73d6435042db6fb3b lib/unicore/DCoreProperties.txt
+ * 02d8e12cea7c61a9f3cc5fbf8eaceadf8da23fe83d60c64cf647088830b810cc lib/unicore/DNormalizationProps.txt
+ * 3382cb4980e0021e9d4312f2d099315cfab6100ce0ff63a22d6937bfa720bcb7 lib/unicore/EastAsianWidth.txt
+ * cb02ff25c375e78c82afffc852180eae7fc17c2f4434e697107720d05c52b26e lib/unicore/HangulSyllableType.txt
+ * 850043bc9db08eddb271e43ed9176b865df76745a5fb6e9a4a1d9e54e5036471 lib/unicore/IndicPositionalCategory.txt
+ * 90a3a00a5f5810850986c9279849b03c2f3133cfeeefb0554e851dd5ad7324dc lib/unicore/IndicSyllabicCategory.txt
+ * bbd36a8d27f76e0fe0f2b0ca2827ac80da4b4a8d5247f0b0670fcaaac68ae6e1 lib/unicore/Jamo.txt
+ * e2698584982ccd96e0c688bbcd4d2c48a23805baa0a0084388ef2e50ebd30aad lib/unicore/LineBreak.txt
+ * 9d5353b1d318e72a63a49aa6a6a051d350382ea44b2cf31fe925bb94ce7e129b lib/unicore/NameAliases.txt
+ * 009477f536f63016d901aeb1a4c820ad291e30e72ee9eb9ac1dfb6294a8a9bcc lib/unicore/NamedSequences.txt
+ * f413ea8dbd3858de72f3148b47dd0586019761357d1481e3b65f3a025bc27f82 lib/unicore/PropList.txt
+ * 56582d9875c1997876cf09305ccfc83448195de5d84d6374c78efaffeca4dfd7 lib/unicore/PropValueAliases.txt
+ * 047ab0f815b6d1b30a863d6fcbd49e6358e168a3bd6c7189e80ab9863957d222 lib/unicore/PropertyAliases.txt
+ * cde011921972dffe3e30dcbc7afbf069bf2eb01269097111dd7533b4c524caac lib/unicore/ScriptExtensions.txt
+ * fba415952f5654145acad220dc2b878f815c673474d2bb4928934e3ba6ccca1d lib/unicore/Scripts.txt
+ * dfc4f159c5c68328114ff17cd520451714a72ff48657287e5fe2f64344980695 lib/unicore/SpecialCasing.txt
+ * 68dfc414d28257b9b5d6ddbb8b466c768c00ebdf6cbf7784364a9b6cad55ee8f lib/unicore/UnicodeData.txt
+ * c76e7ed44a602f85161758ec54d2bcbcb7baf38f97720605a3e81ce02af47061 lib/unicore/auxiliary/GCBTest.txt
+ * 4bb8931857e0a698fd2ec4a51a84c6de33e48a50d8b4bf0b57d960c41d77a191 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 0c609ae4a32a89905c004010ef29885df3c60a941311a1a6e16003333d7fcdc8 lib/unicore/auxiliary/LBTest.txt
+ * 26afdd5f38561167807b0f191af55b05761029ae6be2b7fe85b88f28effc66b5 lib/unicore/auxiliary/SBTest.txt
+ * 53982766eeaf26674e7e2ec956c52846d52992ea9f4f1a202d488fb5cd76dd10 lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 7f60beacc5ec5671edb56db36defc90cfc0016de4fd2bdfde7a3e4ec209840ce lib/unicore/auxiliary/WBTest.txt
+ * cb2db065c77287e0f1d35b8c9b473d848b7566a1670439f67c357ca393084043 lib/unicore/auxiliary/WordBreakProperty.txt
+ * 73573a4bee7f7377d936bc1710cd578001d00ba516e72ee54e906ae51a8c1fcb lib/unicore/extracted/DBidiClass.txt
+ * ae8f55d8bb2bb69a63f70eef38cf5921fc3ba8e06d4d88f37950d32313a14754 lib/unicore/extracted/DBinaryProperties.txt
+ * cf263ac4848d47264300139f97ed15c2c22896d2cef411483cbe292098c08bea lib/unicore/extracted/DCombiningClass.txt
+ * 5bac89caf8d1fa23fcbbbf4d49ea0699b680ef1a73cbfa0daaac38c993906a74 lib/unicore/extracted/DDecompositionType.txt
+ * e17138d36cd91f0e0d16437780a887c5ac637bde0de370b96f08a3424fcc322f lib/unicore/extracted/DEastAsianWidth.txt
+ * fad25c183f4d439622c6be33c22ed709cdc4ac19feef0250527cf319a06952fe lib/unicore/extracted/DGeneralCategory.txt
+ * c0d080b188fbe67dead10a3897dd2ca23da862c7f0b03508a92dcf27cd7e1f41 lib/unicore/extracted/DJoinGroup.txt
+ * 3a8f8642084ed23b0de52af72dea0ff3d0b6928e6c7442832c663899e2b85e9d lib/unicore/extracted/DJoinType.txt
+ * 37f6186253da9824bdb27f4ad867bfe8c25d4dc6bdb2f05585e40a034675a348 lib/unicore/extracted/DLineBreak.txt
+ * ef24061b5a5dc93d7e90c2e34530ec757180ee75d872cba65ffc946e52624ae8 lib/unicore/extracted/DNumType.txt
+ * a197371fec9a1b517058b440841f60f9378d81682084eef8db22a88cb2f96e90 lib/unicore/extracted/DNumValues.txt
+ * 79a7216aceb1d291f2857085545fdda289518bc540a09bc0a15cde105d76028d lib/unicore/mktables
+ * cdecb300baad839a6f62791229f551a4fa33f3cbdca08e378dc976466354e778 lib/unicore/version
* 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
- * 12bd58cb9d5a99f631ca95e269f7f9c90dacaf81020efa5d95a995f3cdc19200 regen/mk_invlists.pl
+ * 9534d0cc3914fa1f5d574332c3199605c3d14f8691a0729d68d8498ac2b36280 regen/mk_invlists.pl
* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/config.h b/Master/tlpkg/tlperl/lib/CORE/config.h
index 6e242f71fa1..35e03ab63a7 100644
--- a/Master/tlpkg/tlperl/lib/CORE/config.h
+++ b/Master/tlpkg/tlperl/lib/CORE/config.h
@@ -9,7 +9,7 @@
/* Package name : perl5
* Source directory :
- * Configuration time: Tue Apr 11 15:40:25 2017
+ * Configuration time: Sun Feb 18 10:08:38 2018
* Configured by : siepo
* Target system :
*/
@@ -182,7 +182,7 @@
#define HAS_GETLOGIN /**/
/* HAS_GETPGID:
- * This symbol, if defined, indicates to the C program that
+ * This symbol, if defined, indicates to the C program that
* the getpgid(pid) function is available to get the
* process group id.
*/
@@ -641,8 +641,8 @@
* This symbol holds the type used for the second argument to
* getgroups() and setgroups(). Usually, this is the same as
* gidtype (gid_t) , but sometimes it isn't.
- * It can be int, ushort, gid_t, etc...
- * It may be necessary to include <sys/types.h> to get any
+ * It can be int, ushort, gid_t, etc...
+ * It may be necessary to include <sys/types.h> to get any
* typedef'ed information. This is only required if you have
* getgroups() or setgroups()..
*/
@@ -1398,7 +1398,7 @@
* 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:\\tlperl\\lib" /**/
+#define ARCHLIB "c:\\tlperl526\\lib" /**/
/*#define ARCHLIB_EXP "" / **/
/* BIN:
@@ -1413,8 +1413,8 @@
* This symbol, if defined, indicates that we'd like to relocate entries
* in @INC at run time based on the location of the perl binary.
*/
-#define BIN "c:\\tlperl\\bin" /**/
-#define BIN_EXP "c:\\tlperl\\bin" /**/
+#define BIN "c:\\tlperl526\\bin" /**/
+#define BIN_EXP "c:\\tlperl526\\bin" /**/
#define PERL_RELOCATABLE_INC "undef" /**/
/* PERL_INC_VERSION_LIST:
@@ -1452,7 +1452,7 @@
* 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 "c:\\tlperl\\lib" /**/
+#define PRIVLIB "c:\\tlperl526\\lib" /**/
#define PRIVLIB_EXP (PerlEnv_lib_path(PERL_VERSION_STRING, NULL)) /**/
/* SITEARCH:
@@ -1470,7 +1470,7 @@
* 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:\\tlperl\\site\\lib" /**/
+#define SITEARCH "c:\\tlperl526\\site\\lib" /**/
/*#define SITEARCH_EXP "" / **/
/* SITELIB:
@@ -1493,7 +1493,7 @@
* 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:\\tlperl\\site\\lib" /**/
+#define SITELIB "c:\\tlperl526\\site\\lib" /**/
#define SITELIB_EXP (PerlEnv_sitelib_path(PERL_VERSION_STRING, NULL)) /**/
#define SITELIB_STEM "" /**/
@@ -1538,7 +1538,7 @@
* feature tests from Configure are generally more reliable.
*/
#define OSNAME "MSWin32" /**/
-#define OSVERS "6.1" /**/
+#define OSVERS "10.0" /**/
/* CAT2:
* This macro concatenates 2 tokens together.
@@ -1907,9 +1907,34 @@
* LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE
* LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE
* LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE
+ * LONG_DOUBLE_IS_VAX_H_FLOAT
* LONG_DOUBLE_IS_UNKNOWN_FORMAT
* It is only defined if the system supports long doubles.
*/
+/* LONG_DOUBLE_STYLE_IEEE:
+ * This symbol, if defined, indicates that the long double
+ * is any of the IEEE 754 style long doubles:
+ * LONG_DOUBLE_STYLE_IEEE_STD, LONG_DOUBLE_STYLE_IEEE_EXTENDED,
+ * LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE.
+ */
+/* LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE:
+ * This symbol, if defined, indicates that the long double is
+ * the 128-bit double-double.
+ */
+/* LONG_DOUBLE_STYLE_IEEE_EXTENDED:
+ * This symbol, if defined, indicates that the long double is
+ * the 80-bit IEEE 754. Note that despite the 'extended' this
+ * is less than the 'std', since this is an extension of
+ * the double precision.
+ */
+/* LONG_DOUBLE_STYLE_IEEE_STD:
+ * This symbol, if defined, indicates that the long double is
+ * the 128-bit IEEE 754.
+ */
+/* LONG_DOUBLE_STYLE_VAX:
+ * This symbol, if defined, indicates that the long double is
+ * the 128-bit VAX format H.
+ */
/*#define HAS_LDEXPL / **/
#define HAS_LONG_DOUBLE /**/
#ifdef HAS_LONG_DOUBLE
@@ -1924,9 +1949,15 @@
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE 6
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE 7
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE 8
+#define LONG_DOUBLE_IS_VAX_H_FLOAT 9
#define LONG_DOUBLE_IS_UNKNOWN_FORMAT -1
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE /* back-compat */
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE /* back-compat */
+#undef LONG_DOUBLE_STYLE_IEEE
+#undef LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE
+#define LONG_DOUBLE_STYLE_IEEE_EXTENDED
+#undef LONG_DOUBLE_STYLE_IEEE_STD
+#undef LONG_DOUBLE_STYLE_VAX
#endif
/* HAS_LONG_LONG:
@@ -2845,6 +2876,13 @@
*/
/*#define HAS_FUTIMES / **/
+/* HAS_GAI_STRERROR:
+ * This symbol, if defined, indicates that the gai_strerror routine
+ * is available to translate error codes returned by getaddrinfo()
+ * into human readable strings.
+ */
+/*#define HAS_GAI_STRERROR / **/
+
/* HAS_GETADDRINFO:
* This symbol, if defined, indicates that the getaddrinfo() function
* is available for use.
@@ -3211,9 +3249,19 @@
* This symbol, if defined, indicates that the uselocale routine is
* available to set the current locale for the calling thread.
*/
+/* HAS_QUERYLOCALE:
+ * This symbol, if defined, indicates that the querylocale routine is
+ * available to return the name of the locale for a category mask.
+ */
+/* I_XLOCALE:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <xlocale.h> to get uselocale() and its friends.
+ */
/*#define HAS_NEWLOCALE / **/
/*#define HAS_FREELOCALE / **/
/*#define HAS_USELOCALE / **/
+/*#define HAS_QUERYLOCALE / **/
+/*#define I_XLOCALE / **/
/* HAS_NEXTAFTER:
* This symbol, if defined, indicates that the nextafter routine is
@@ -3467,6 +3515,13 @@
*/
/*#define HAS_FSTATVFS / **/
+/* HAS_STRERROR_L:
+ * This symbol, if defined, indicates that the strerror_l routine is
+ * available to return the error message for a given errno value in
+ * a particular locale (identified by a locale_t object).
+ */
+/*#define HAS_STRERROR_L / **/
+
/* HAS_STRFTIME:
* This symbol, if defined, indicates that the strftime routine is
* available to do time formatting.
@@ -3646,6 +3701,12 @@
*/
/*#define HAS_WRITEV / **/
+/* DEFAULT_INC_EXCLUDES_DOT:
+ * This symbol, if defined, removes the legacy default behavior of
+ * including '.' at the end of @INC.
+ */
+#define DEFAULT_INC_EXCLUDES_DOT /**/
+
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
@@ -3918,8 +3979,46 @@
* DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
* DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
* DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+ * DOUBLE_IS_VAX_F_FLOAT
+ * DOUBLE_IS_VAX_D_FLOAT
+ * DOUBLE_IS_VAX_G_FLOAT
+ * DOUBLE_IS_IBM_SINGLE_32_BIT
+ * DOUBLE_IS_IBM_DOUBLE_64_BIT
+ * DOUBLE_IS_CRAY_SINGLE_64_BIT
* DOUBLE_IS_UNKNOWN_FORMAT
*/
+/* DOUBLE_HAS_INF:
+ * This symbol, if defined, indicates that the double has
+ * the infinity.
+ */
+/* DOUBLE_HAS_NAN:
+ * This symbol, if defined, indicates that the double has
+ * the not-a-number.
+ */
+/* DOUBLE_HAS_NEGATIVE_ZERO:
+ * This symbol, if defined, indicates that the double has
+ * the negative_zero.
+ */
+/* DOUBLE_HAS_SUBNORMALS:
+ * This symbol, if defined, indicates that the double has
+ * the subnormals (denormals).
+ */
+/* DOUBLE_STYLE_CRAY:
+ * This symbol, if defined, indicates that the double is
+ * the 64-bit CRAY mainframe format.
+ */
+/* DOUBLE_STYLE_IBM:
+ * This symbol, if defined, indicates that the double is
+ * the 64-bit IBM mainframe format.
+ */
+/* DOUBLE_STYLE_IEEE:
+ * This symbol, if defined, indicates that the double is
+ * the 64-bit IEEE 754.
+ */
+/* DOUBLE_STYLE_VAX:
+ * This symbol, if defined, indicates that the double is
+ * the 64-bit VAX format D or G.
+ */
#define DOUBLEKIND 3 /**/
#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN 1
#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN 2
@@ -3929,11 +4028,25 @@
#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6
#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7
#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8
+#define DOUBLE_IS_VAX_F_FLOAT 9
+#define DOUBLE_IS_VAX_D_FLOAT 10
+#define DOUBLE_IS_VAX_G_FLOAT 11
+#define DOUBLE_IS_IBM_SINGLE_32_BIT 12
+#define DOUBLE_IS_IBM_DOUBLE_64_BIT 13
+#define DOUBLE_IS_CRAY_SINGLE_64_BIT 14
#define DOUBLE_IS_UNKNOWN_FORMAT -1
/*#define PERL_PRIfldbl "Lf" / **/
/*#define PERL_PRIgldbl "Lg" / **/
/*#define PERL_PRIeldbl "Le" / **/
/*#define PERL_SCNfldbl "Lf" / **/
+#define DOUBLE_HAS_INF
+#define DOUBLE_HAS_NAN
+#define DOUBLE_HAS_NEGATIVE_ZERO
+#define DOUBLE_HAS_SUBNORMALS
+#undef DOUBLE_STYLE_CRAY
+#undef DOUBLE_STYLE_IBM
+#define DOUBLE_STYLE_IEEE
+#undef DOUBLE_STYLE_VAX
/* DOUBLEMANTBITS:
* This symbol, if defined, tells how many mantissa bits
diff --git a/Master/tlpkg/tlperl/lib/CORE/cop.h b/Master/tlpkg/tlperl/lib/CORE/cop.h
index da295722c6d..0443e24c667 100644
--- a/Master/tlpkg/tlperl/lib/CORE/cop.h
+++ b/Master/tlpkg/tlperl/lib/CORE/cop.h
@@ -609,10 +609,10 @@ struct block_format {
/* Restore old @_ */
#define CX_POP_SAVEARRAY(cx) \
STMT_START { \
- AV *av = GvAV(PL_defgv); \
+ AV *cx_pop_savearray_av = GvAV(PL_defgv); \
GvAV(PL_defgv) = cx->blk_sub.savearray; \
cx->blk_sub.savearray = NULL; \
- SvREFCNT_dec(av); \
+ SvREFCNT_dec(cx_pop_savearray_av); \
} STMT_END
/* junk in @_ spells trouble when cloning CVs and in pp_caller(), so don't
@@ -640,8 +640,11 @@ struct block_eval {
blku_gimme is actually also only 2 bits, so could be merged with something.
*/
-#define CxOLD_IN_EVAL(cx) (((cx)->blk_u16) & 0x7F)
-#define CxOLD_OP_TYPE(cx) (((cx)->blk_u16) >> 7)
+/* blk_u16 bit usage for eval contexts: */
+
+#define CxOLD_IN_EVAL(cx) (((cx)->blk_u16) & 0x3F) /* saved PL in_eval */
+#define CxEVAL_TXT_REFCNTED(cx) (((cx)->blk_u16) & 0x40) /* cur_text rc++ */
+#define CxOLD_OP_TYPE(cx) (((cx)->blk_u16) >> 7) /* type of eval op */
/* loop context */
struct block_loop {
@@ -961,6 +964,7 @@ L<perlcall>.
#define EVAL_KEEPERR 4 /* set by Perl_call_sv if G_KEEPERR */
#define EVAL_INREQUIRE 8 /* The code is being required. */
#define EVAL_RE_REPARSING 0x10 /* eval_sv() called with G_RE_REPARSING */
+/* if adding extra bits, make sure they can fit in CxOLD_OP_TYPE() */
/* Support for switching (stack and block) contexts.
* This ensures magic doesn't invalidate local stack and cx pointers.
diff --git a/Master/tlpkg/tlperl/lib/CORE/dosish.h b/Master/tlpkg/tlperl/lib/CORE/dosish.h
index c1305cdc408..1dc932260a5 100644
--- a/Master/tlpkg/tlperl/lib/CORE/dosish.h
+++ b/Master/tlpkg/tlperl/lib/CORE/dosish.h
@@ -56,7 +56,7 @@
HINTS_REFCNT_TERM; OP_CHECK_MUTEX_TERM; \
OP_REFCNT_TERM; PERLIO_TERM; MALLOC_TERM; LOCALE_TERM;
#endif
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
/* USEMYBINMODE
* This symbol, if defined, indicates that the program should
diff --git a/Master/tlpkg/tlperl/lib/CORE/embed.h b/Master/tlpkg/tlperl/lib/CORE/embed.h
index 42c65b2eb04..5352f536f80 100644
--- a/Master/tlpkg/tlperl/lib/CORE/embed.h
+++ b/Master/tlpkg/tlperl/lib/CORE/embed.h
@@ -27,23 +27,26 @@
/* Hide global symbols */
#define Gv_AMupdate(a,b) Perl_Gv_AMupdate(aTHX_ a,b)
+#define _force_out_malformed_utf8_message(a,b,c,d) Perl__force_out_malformed_utf8_message(aTHX_ a,b,c,d)
#define _is_in_locale_category(a,b) Perl__is_in_locale_category(aTHX_ a,b)
#define _is_uni_FOO(a,b) Perl__is_uni_FOO(aTHX_ a,b)
#define _is_uni_perl_idcont(a) Perl__is_uni_perl_idcont(aTHX_ a)
#define _is_uni_perl_idstart(a) Perl__is_uni_perl_idstart(aTHX_ a)
-#define _is_utf8_FOO(a,b) Perl__is_utf8_FOO(aTHX_ a,b)
+#define _is_utf8_FOO(a,b,c,d,e,f,g,h) Perl__is_utf8_FOO(aTHX_ a,b,c,d,e,f,g,h)
+#define _is_utf8_FOO_with_len(a,b,c) Perl__is_utf8_FOO_with_len(aTHX_ a,b,c)
+#define _is_utf8_char_helper Perl__is_utf8_char_helper
#define _is_utf8_idcont(a) Perl__is_utf8_idcont(aTHX_ a)
#define _is_utf8_idstart(a) Perl__is_utf8_idstart(aTHX_ a)
#define _is_utf8_mark(a) Perl__is_utf8_mark(aTHX_ a)
-#define _is_utf8_perl_idcont(a) Perl__is_utf8_perl_idcont(aTHX_ a)
-#define _is_utf8_perl_idstart(a) Perl__is_utf8_perl_idstart(aTHX_ a)
+#define _is_utf8_perl_idcont_with_len(a,b) Perl__is_utf8_perl_idcont_with_len(aTHX_ a,b)
+#define _is_utf8_perl_idstart_with_len(a,b) Perl__is_utf8_perl_idstart_with_len(aTHX_ a,b)
#define _is_utf8_xidcont(a) Perl__is_utf8_xidcont(aTHX_ a)
#define _is_utf8_xidstart(a) Perl__is_utf8_xidstart(aTHX_ a)
#define _to_uni_fold_flags(a,b,c,d) Perl__to_uni_fold_flags(aTHX_ a,b,c,d)
-#define _to_utf8_fold_flags(a,b,c,d) Perl__to_utf8_fold_flags(aTHX_ a,b,c,d)
-#define _to_utf8_lower_flags(a,b,c,d) Perl__to_utf8_lower_flags(aTHX_ a,b,c,d)
-#define _to_utf8_title_flags(a,b,c,d) Perl__to_utf8_title_flags(aTHX_ a,b,c,d)
-#define _to_utf8_upper_flags(a,b,c,d) Perl__to_utf8_upper_flags(aTHX_ a,b,c,d)
+#define _to_utf8_fold_flags(a,b,c,d,e,f,g) Perl__to_utf8_fold_flags(aTHX_ a,b,c,d,e,f,g)
+#define _to_utf8_lower_flags(a,b,c,d,e,f,g) Perl__to_utf8_lower_flags(aTHX_ a,b,c,d,e,f,g)
+#define _to_utf8_title_flags(a,b,c,d,e,f,g) Perl__to_utf8_title_flags(aTHX_ a,b,c,d,e,f,g)
+#define _to_utf8_upper_flags(a,b,c,d,e,f,g) Perl__to_utf8_upper_flags(aTHX_ a,b,c,d,e,f,g)
#define amagic_call(a,b,c,d) Perl_amagic_call(aTHX_ a,b,c,d)
#define amagic_deref_call(a,b) Perl_amagic_deref_call(aTHX_ a,b)
#define apply_attrs_string(a,b,c,d) Perl_apply_attrs_string(aTHX_ a,b,c,d)
@@ -61,6 +64,7 @@
#define av_push(a,b) Perl_av_push(aTHX_ a,b)
#define av_shift(a) Perl_av_shift(aTHX_ a)
#define av_store(a,b,c) Perl_av_store(aTHX_ a,b,c)
+#define av_top_index(a) S_av_top_index(aTHX_ a)
#define av_undef(a) Perl_av_undef(aTHX_ a)
#define av_unshift(a,b) Perl_av_unshift(aTHX_ a,b)
#define block_end(a,b) Perl_block_end(aTHX_ a,b)
@@ -217,6 +221,7 @@
#define gv_stashpv(a,b) Perl_gv_stashpv(aTHX_ a,b)
#define gv_stashpvn(a,b,c) Perl_gv_stashpvn(aTHX_ a,b,c)
#define gv_stashsv(a,b) Perl_gv_stashsv(aTHX_ a,b)
+#define hv_bucket_ratio(a) Perl_hv_bucket_ratio(aTHX_ a)
#define hv_clear(a) Perl_hv_clear(aTHX_ a)
#define hv_clear_placeholders(a) Perl_hv_clear_placeholders(aTHX_ a)
#define hv_common(a,b,c,d,e,f,g,h) Perl_hv_common(aTHX_ a,b,c,d,e,f,g,h)
@@ -238,12 +243,15 @@
#define init_i18nl14n(a) Perl_init_i18nl14n(aTHX_ a)
#define init_stacks() Perl_init_stacks(aTHX)
#define init_tm(a) Perl_init_tm(aTHX_ a)
-#define instr Perl_instr
#define intro_my() Perl_intro_my(aTHX)
#define isALNUM_lazy(a) Perl_isALNUM_lazy(aTHX_ a)
#define isIDFIRST_lazy(a) Perl_isIDFIRST_lazy(aTHX_ a)
-#define is_invariant_string Perl_is_invariant_string
+#define is_c9strict_utf8_string S_is_c9strict_utf8_string
+#define is_c9strict_utf8_string_loclen S_is_c9strict_utf8_string_loclen
#define is_lvalue_sub() Perl_is_lvalue_sub(aTHX)
+#define is_safe_syscall(a,b,c,d) S_is_safe_syscall(aTHX_ a,b,c,d)
+#define is_strict_utf8_string S_is_strict_utf8_string
+#define is_strict_utf8_string_loclen S_is_strict_utf8_string_loclen
#define is_uni_alnum(a) Perl_is_uni_alnum(aTHX_ a)
#define is_uni_alnum_lc(a) Perl_is_uni_alnum_lc(aTHX_ a)
#define is_uni_alnumc(a) Perl_is_uni_alnumc(aTHX_ a)
@@ -282,9 +290,11 @@
#define is_utf8_char Perl_is_utf8_char
#define is_utf8_cntrl(a) Perl_is_utf8_cntrl(aTHX_ a)
#define is_utf8_digit(a) Perl_is_utf8_digit(aTHX_ a)
+#define is_utf8_fixed_width_buf_loclen_flags S_is_utf8_fixed_width_buf_loclen_flags
#define is_utf8_graph(a) Perl_is_utf8_graph(aTHX_ a)
#define is_utf8_idcont(a) Perl_is_utf8_idcont(aTHX_ a)
#define is_utf8_idfirst(a) Perl_is_utf8_idfirst(aTHX_ a)
+#define is_utf8_invariant_string S_is_utf8_invariant_string
#define is_utf8_lower(a) Perl_is_utf8_lower(aTHX_ a)
#define is_utf8_mark(a) Perl_is_utf8_mark(aTHX_ a)
#define is_utf8_perl_space(a) Perl_is_utf8_perl_space(aTHX_ a)
@@ -294,8 +304,11 @@
#define is_utf8_punct(a) Perl_is_utf8_punct(aTHX_ a)
#define is_utf8_space(a) Perl_is_utf8_space(aTHX_ a)
#define is_utf8_string Perl_is_utf8_string
+#define is_utf8_string_flags S_is_utf8_string_flags
#define is_utf8_string_loclen Perl_is_utf8_string_loclen
+#define is_utf8_string_loclen_flags S_is_utf8_string_loclen_flags
#define is_utf8_upper(a) Perl_is_utf8_upper(aTHX_ a)
+#define is_utf8_valid_partial_char_flags S_is_utf8_valid_partial_char_flags
#define is_utf8_xdigit(a) Perl_is_utf8_xdigit(aTHX_ a)
#define is_utf8_xidcont(a) Perl_is_utf8_xidcont(aTHX_ a)
#define is_utf8_xidfirst(a) Perl_is_utf8_xidfirst(aTHX_ a)
@@ -421,10 +434,10 @@
#define new_numeric(a) Perl_new_numeric(aTHX_ a)
#define new_stackinfo(a,b) Perl_new_stackinfo(aTHX_ a,b)
#define new_version(a) Perl_new_version(aTHX_ a)
-#define ninstr Perl_ninstr
#define nothreadhook() Perl_nothreadhook(aTHX)
#define op_append_elem(a,b,c) Perl_op_append_elem(aTHX_ a,b,c)
#define op_append_list(a,b,c) Perl_op_append_list(aTHX_ a,b,c)
+#define op_class(a) Perl_op_class(aTHX_ a)
#define op_contextualize(a,b) Perl_op_contextualize(aTHX_ a,b)
#define op_convert_list(a,b,c) Perl_op_convert_list(aTHX_ a,b,c)
#define op_dump(a) Perl_op_dump(aTHX_ a)
@@ -443,7 +456,9 @@
#define pad_add_name_pvn(a,b,c,d,e) Perl_pad_add_name_pvn(aTHX_ a,b,c,d,e)
#define pad_add_name_sv(a,b,c,d) Perl_pad_add_name_sv(aTHX_ a,b,c,d)
#define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b)
+#ifndef NO_MATHOMS
#define pad_compname_type(a) Perl_pad_compname_type(aTHX_ a)
+#endif
#define pad_findmy_pv(a,b) Perl_pad_findmy_pv(aTHX_ a,b)
#define pad_findmy_pvn(a,b,c) Perl_pad_findmy_pvn(aTHX_ a,b,c)
#define pad_findmy_sv(a,b) Perl_pad_findmy_sv(aTHX_ a,b)
@@ -632,6 +647,9 @@
#define sv_newmortal() Perl_sv_newmortal(aTHX)
#define sv_newref(a) Perl_sv_newref(aTHX_ a)
#define sv_nosharing(a) Perl_sv_nosharing(aTHX_ a)
+#ifndef NO_MATHOMS
+#define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a)
+#endif
#define sv_nv(a) Perl_sv_nv(aTHX_ a)
#define sv_peek(a) Perl_sv_peek(aTHX_ a)
#define sv_pos_b2u(a,b) Perl_sv_pos_b2u(aTHX_ a,b)
@@ -652,18 +670,24 @@
#define sv_report_used() Perl_sv_report_used(aTHX)
#define sv_reset(a,b) Perl_sv_reset(aTHX_ a,b)
#define sv_rvweaken(a) Perl_sv_rvweaken(aTHX_ a)
+#define sv_set_undef(a) Perl_sv_set_undef(aTHX_ a)
#define sv_setiv(a,b) Perl_sv_setiv(aTHX_ a,b)
#define sv_setiv_mg(a,b) Perl_sv_setiv_mg(aTHX_ a,b)
#define sv_setnv(a,b) Perl_sv_setnv(aTHX_ a,b)
#define sv_setnv_mg(a,b) Perl_sv_setnv_mg(aTHX_ a,b)
#define sv_setpv(a,b) Perl_sv_setpv(aTHX_ a,b)
+#define sv_setpv_bufsize(a,b,c) Perl_sv_setpv_bufsize(aTHX_ a,b,c)
#define sv_setpv_mg(a,b) Perl_sv_setpv_mg(aTHX_ a,b)
#ifndef PERL_IMPLICIT_CONTEXT
#define sv_setpvf Perl_sv_setpvf
#define sv_setpvf_mg Perl_sv_setpvf_mg
#endif
+#ifndef NO_MATHOMS
#define sv_setpviv(a,b) Perl_sv_setpviv(aTHX_ a,b)
+#endif
+#ifndef NO_MATHOMS
#define sv_setpviv_mg(a,b) Perl_sv_setpviv_mg(aTHX_ a,b)
+#endif
#define sv_setpvn(a,b,c) Perl_sv_setpvn(aTHX_ a,b,c)
#define sv_setpvn_mg(a,b,c) Perl_sv_setpvn_mg(aTHX_ a,b,c)
#define sv_setref_iv(a,b,c) Perl_sv_setref_iv(aTHX_ a,b,c)
@@ -696,8 +720,6 @@
#define sv_vsetpvf(a,b,c) Perl_sv_vsetpvf(aTHX_ a,b,c)
#define sv_vsetpvf_mg(a,b,c) Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
#define sv_vsetpvfn(a,b,c,d,e,f,g) Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g)
-#define swash_fetch(a,b,c) Perl_swash_fetch(aTHX_ a,b,c)
-#define swash_init(a,b,c,d,e) Perl_swash_init(aTHX_ a,b,c,d,e)
#define sync_locale() Perl_sync_locale(aTHX)
#define taint_env() Perl_taint_env(aTHX)
#define taint_proper(a,b) Perl_taint_proper(aTHX_ a,b)
@@ -716,17 +738,20 @@
#define utf16_to_utf8_reversed(a,b,c,d) Perl_utf16_to_utf8_reversed(aTHX_ a,b,c,d)
#define utf8_distance(a,b) Perl_utf8_distance(aTHX_ a,b)
#define utf8_hop Perl_utf8_hop
+#define utf8_hop_back Perl_utf8_hop_back
+#define utf8_hop_forward Perl_utf8_hop_forward
+#define utf8_hop_safe Perl_utf8_hop_safe
#define utf8_length(a,b) Perl_utf8_length(aTHX_ a,b)
#define utf8_to_bytes(a,b) Perl_utf8_to_bytes(aTHX_ a,b)
#define utf8_to_uvchr(a,b) Perl_utf8_to_uvchr(aTHX_ a,b)
#define utf8_to_uvuni(a,b) Perl_utf8_to_uvuni(aTHX_ a,b)
#define utf8_to_uvuni_buf(a,b,c) Perl_utf8_to_uvuni_buf(aTHX_ a,b,c)
-#define utf8n_to_uvchr(a,b,c,d) Perl_utf8n_to_uvchr(aTHX_ a,b,c,d)
+#define utf8n_to_uvchr_error(a,b,c,d,e) Perl_utf8n_to_uvchr_error(aTHX_ a,b,c,d,e)
#define utf8n_to_uvuni(a,b,c,d) Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
#define uvoffuni_to_utf8_flags(a,b,c) Perl_uvoffuni_to_utf8_flags(aTHX_ a,b,c)
#define uvuni_to_utf8(a,b) Perl_uvuni_to_utf8(aTHX_ a,b)
#define uvuni_to_utf8_flags(a,b,c) Perl_uvuni_to_utf8_flags(aTHX_ a,b,c)
-#define valid_utf8_to_uvchr(a,b) Perl_valid_utf8_to_uvchr(aTHX_ a,b)
+#define valid_utf8_to_uvchr Perl_valid_utf8_to_uvchr
#define valid_utf8_to_uvuni(a,b) Perl_valid_utf8_to_uvuni(aTHX_ a,b)
#define vcmp(a,b) Perl_vcmp(aTHX_ a,b)
#define vcroak(a,b) Perl_vcroak(aTHX_ a,b)
@@ -752,12 +777,12 @@
#define whichsig_pvn(a,b) Perl_whichsig_pvn(aTHX_ a,b)
#define whichsig_sv(a) Perl_whichsig_sv(aTHX_ a)
#define wrap_op_checker(a,b,c) Perl_wrap_op_checker(aTHX_ a,b,c)
+#if !(defined(HAS_MEMMEM))
+#define ninstr Perl_ninstr
+#endif
#if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO))
#define csighandler Perl_csighandler
#endif
-#if !(defined(NO_MATHOMS))
-#define sv_nounlocking(a) Perl_sv_nounlocking(aTHX_ a)
-#endif
#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
#define my_bzero Perl_my_bzero
#endif
@@ -778,9 +803,6 @@
#define my_popen(a,b) Perl_my_popen(aTHX_ a,b)
#endif
#if !defined(PERL_NO_INLINE_FUNCTIONS)
-#define _is_utf8_char_slow S__is_utf8_char_slow
-#define append_utf8_from_native_byte S_append_utf8_from_native_byte
-#define av_top_index(a) S_av_top_index(aTHX_ a)
#define cx_popblock(a) S_cx_popblock(aTHX_ a)
#define cx_popeval(a) S_cx_popeval(aTHX_ a)
#define cx_popformat(a) S_cx_popformat(aTHX_ a)
@@ -799,7 +821,6 @@
#define cx_pushsub(a,b,c,d) S_cx_pushsub(aTHX_ a,b,c,d)
#define cx_pushwhen(a) S_cx_pushwhen(aTHX_ a)
#define cx_topblock(a) S_cx_topblock(aTHX_ a)
-#define is_safe_syscall(a,b,c,d) S_is_safe_syscall(aTHX_ a,b,c,d)
#endif
#if defined(DEBUGGING)
#define pad_setsv(a,b) Perl_pad_setsv(aTHX_ a,b)
@@ -844,12 +865,6 @@
#define warn_nocontext Perl_warn_nocontext
#define warner_nocontext Perl_warner_nocontext
#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
-#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
-#endif
-#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
-#define _get_regclass_nonbitmap_data(a,b,c,d,e,f) Perl__get_regclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
-#endif
#if defined(PERL_OP_PARENT)
#define op_parent Perl_op_parent
#endif
@@ -923,8 +938,8 @@
#define do_spawn_nowait(a) Perl_do_spawn_nowait(aTHX_ a)
#endif
#if defined(PERL_CORE) || defined(PERL_EXT)
-#define _get_encoding() Perl__get_encoding(aTHX)
#define _warn_problematic_locale Perl__warn_problematic_locale
+#define append_utf8_from_native_byte S_append_utf8_from_native_byte
#define av_reify(a) Perl_av_reify(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)
@@ -942,29 +957,33 @@
#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 sv_only_taint_gmagic S_sv_only_taint_gmagic
+#define swash_fetch(a,b,c) Perl_swash_fetch(aTHX_ a,b,c)
+#define swash_init(a,b,c,d,e) Perl_swash_init(aTHX_ a,b,c,d,e)
#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)
# if !defined(PERL_EXT_RE_BUILD)
# if defined(PERL_IN_REGCOMP_C)
+#define _append_range_to_invlist(a,b,c) S__append_range_to_invlist(aTHX_ a,b,c)
+#define _invlist_array_init S__invlist_array_init
#define get_invlist_previous_index_addr S_get_invlist_previous_index_addr
#define invlist_clear(a) S_invlist_clear(aTHX_ a)
+#define invlist_extend(a,b) S_invlist_extend(aTHX_ a,b)
+#define invlist_max S_invlist_max
#define invlist_previous_index S_invlist_previous_index
#define invlist_replace_list_destroys_src(a,b) S_invlist_replace_list_destroys_src(aTHX_ a,b)
#define invlist_set_previous_index S_invlist_set_previous_index
#define invlist_trim S_invlist_trim
# endif
# endif
-# if !defined(PERL_NO_INLINE_FUNCTIONS)
-#define sv_only_taint_gmagic S_sv_only_taint_gmagic
-# endif
# if defined(DEBUGGING)
# if defined(PERL_IN_REGCOMP_C)
#define dump_trie(a,b,c,d) S_dump_trie(aTHX_ a,b,c,d)
#define dump_trie_interim_list(a,b,c,d,e) S_dump_trie_interim_list(aTHX_ a,b,c,d,e)
#define dump_trie_interim_table(a,b,c,d,e) S_dump_trie_interim_table(aTHX_ a,b,c,d,e)
#define dumpuntil(a,b,c,d,e,f,g,h) S_dumpuntil(aTHX_ a,b,c,d,e,f,g,h)
-#define put_charclass_bitmap_innards(a,b,c,d,e) S_put_charclass_bitmap_innards(aTHX_ a,b,c,d,e)
+#define put_charclass_bitmap_innards(a,b,c,d,e,f) S_put_charclass_bitmap_innards(aTHX_ a,b,c,d,e,f)
#define put_charclass_bitmap_innards_common(a,b,c,d,e,f) S_put_charclass_bitmap_innards_common(aTHX_ a,b,c,d,e,f)
#define put_charclass_bitmap_innards_invlist(a,b) S_put_charclass_bitmap_innards_invlist(aTHX_ a,b)
#define put_code_point(a,b) S_put_code_point(aTHX_ a,b)
@@ -984,6 +1003,11 @@
#endif
# endif
# endif
+# if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
+# if defined(PERL_IN_REGCOMP_C)
+#define dump_regex_sets_structures(a,b,c,d) S_dump_regex_sets_structures(aTHX_ a,b,c,d)
+# endif
+# endif
# if defined(PERL_ANY_COW)
#define sv_setsv_cow(a,b) Perl_sv_setsv_cow(aTHX_ a,b)
# endif
@@ -991,8 +1015,6 @@
#define sv_or_pv_pos_u2b(a,b,c,d) S_sv_or_pv_pos_u2b(aTHX_ a,b,c,d)
# endif
# if defined(PERL_IN_REGCOMP_C)
-#define _append_range_to_invlist(a,b,c) S__append_range_to_invlist(aTHX_ a,b,c)
-#define _invlist_array_init S__invlist_array_init
#define _make_exactf_invlist(a,b) S__make_exactf_invlist(aTHX_ a,b)
#define add_above_Latin1_folds(a,b,c) S_add_above_Latin1_folds(aTHX_ a,b,c)
#define add_cp_to_invlist(a,b) S_add_cp_to_invlist(aTHX_ a,b)
@@ -1011,13 +1033,11 @@
#define handle_regex_sets(a,b,c,d,e) S_handle_regex_sets(aTHX_ a,b,c,d,e)
#define invlist_clone(a) S_invlist_clone(aTHX_ a)
#define invlist_contents(a,b) S_invlist_contents(aTHX_ a,b)
-#define invlist_extend(a,b) S_invlist_extend(aTHX_ a,b)
#define invlist_highest S_invlist_highest
#define invlist_is_iterating S_invlist_is_iterating
#define invlist_iterfinish S_invlist_iterfinish
#define invlist_iterinit S_invlist_iterinit
#define invlist_iternext S_invlist_iternext
-#define invlist_max S_invlist_max
#define invlist_set_len(a,b,c) S_invlist_set_len(aTHX_ a,b,c)
#define is_ssc_worth_it S_is_ssc_worth_it
#define join_exact(a,b,c,d,e,f,g) S_join_exact(aTHX_ a,b,c,d,e,f,g)
@@ -1029,7 +1049,6 @@
#define reg(a,b,c,d) S_reg(aTHX_ a,b,c,d)
#define reg2Lanode(a,b,c,d) S_reg2Lanode(aTHX_ a,b,c,d)
#define reg_node(a,b) S_reg_node(aTHX_ a,b)
-#define reg_recode(a,b) S_reg_recode(aTHX_ a,b)
#define reg_scan_name(a,b) S_reg_scan_name(aTHX_ a,b)
#define reg_skipcomment S_reg_skipcomment
#define reganode(a,b,c) S_reganode(aTHX_ a,b,c)
@@ -1063,8 +1082,10 @@
# endif
# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
#define _invlistEQ(a,b,c) Perl__invlistEQ(aTHX_ a,b,c)
+#define _new_invlist_C_array(a) Perl__new_invlist_C_array(aTHX_ a)
# endif
# if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
+#define _get_regclass_nonbitmap_data(a,b,c,d,e,f) Perl__get_regclass_nonbitmap_data(aTHX_ a,b,c,d,e,f)
#define _load_PL_utf8_foldclosures() Perl__load_PL_utf8_foldclosures(aTHX)
#ifndef PERL_IMPLICIT_CONTEXT
#define re_printf Perl_re_printf
@@ -1104,29 +1125,36 @@
#define advance_one_LB(a,b,c) S_advance_one_LB(aTHX_ a,b,c)
#define advance_one_SB(a,b,c) S_advance_one_SB(aTHX_ a,b,c)
#define advance_one_WB(a,b,c,d) S_advance_one_WB(aTHX_ a,b,c,d)
+#define backup_one_GCB(a,b,c) S_backup_one_GCB(aTHX_ a,b,c)
#define backup_one_LB(a,b,c) S_backup_one_LB(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 isGCB(a,b,c,d,e) S_isGCB(aTHX_ a,b,c,d,e)
#define isLB(a,b,c,d,e,f) S_isLB(aTHX_ a,b,c,d,e,f)
#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 regcp_restore(a,b,c) S_regcp_restore(aTHX_ a,b,c _aDEPTH)
+#define regcppop(a,b) S_regcppop(aTHX_ a,b _aDEPTH)
+#define regcppush(a,b,c) S_regcppush(aTHX_ a,b,c _aDEPTH)
#define reghop3 S_reghop3
#define reghop4 S_reghop4
#define reghopmaybe3 S_reghopmaybe3
#define reginclass(a,b,c,d,e) S_reginclass(aTHX_ a,b,c,d,e)
#define regmatch(a,b,c) S_regmatch(aTHX_ a,b,c)
-#define regrepeat(a,b,c,d,e,f) S_regrepeat(aTHX_ a,b,c,d,e,f)
+#define regrepeat(a,b,c,d,e) S_regrepeat(aTHX_ a,b,c,d,e _aDEPTH)
#define regtry(a,b) S_regtry(aTHX_ a,b)
#define to_byte_substr(a) S_to_byte_substr(aTHX_ a)
#define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a)
# endif
+# if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
+#define _is_grapheme(a,b,c,d) Perl__is_grapheme(aTHX_ a,b,c,d)
+# endif
+# if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+#define isFOO_lc(a,b) Perl_isFOO_lc(aTHX_ a,b)
+# endif
# if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
#define _to_fold_latin1(a,b,c,d) Perl__to_fold_latin1(aTHX_ a,b,c,d)
# endif
@@ -1134,6 +1162,9 @@
#ifdef PERL_CORE
#define Slab_Alloc(a) Perl_Slab_Alloc(aTHX_ a)
#define Slab_Free(a) Perl_Slab_Free(aTHX_ a)
+#define _byte_dump_string(a,b,c) Perl__byte_dump_string(aTHX_ a,b,c)
+#define abort_execution(a,b) Perl_abort_execution(aTHX_ a,b)
+#define alloc_LOGOP(a,b,c) Perl_alloc_LOGOP(aTHX_ a,b,c)
#define allocmy(a,b,c) Perl_allocmy(aTHX_ a,b,c)
#define amagic_is_enabled(a) Perl_amagic_is_enabled(aTHX_ a)
#define apply(a,b,c) Perl_apply(aTHX_ a,b,c)
@@ -1194,6 +1225,7 @@
#define core_prototype(a,b,c,d) Perl_core_prototype(aTHX_ a,b,c,d)
#define coresub_op(a,b,c) Perl_coresub_op(aTHX_ a,b,c)
#define create_eval_scope(a,b) Perl_create_eval_scope(aTHX_ a,b)
+#define croak_caller Perl_croak_caller
#define croak_no_mem Perl_croak_no_mem
#define croak_popstack Perl_croak_popstack
#define custom_op_get_field(a,b) Perl_custom_op_get_field(aTHX_ a,b)
@@ -1206,6 +1238,7 @@
#define deb_stack_all() Perl_deb_stack_all(aTHX)
#define defelem_target(a,b) Perl_defelem_target(aTHX_ a,b)
#define delete_eval_scope() Perl_delete_eval_scope(aTHX)
+#define delimcpy_no_escape Perl_delimcpy_no_escape
#define die_unwind(a) Perl_die_unwind(aTHX_ a)
#define do_aexec5(a,b,c,d,e) Perl_do_aexec5(aTHX_ a,b,c,d,e)
#define do_dump_pad(a,b,c,d) Perl_do_dump_pad(aTHX_ a,b,c,d)
@@ -1318,6 +1351,7 @@
#define newXS_len_flags(a,b,c,d,e,f,g) Perl_newXS_len_flags(aTHX_ a,b,c,d,e,f,g)
#define nextargv(a,b) Perl_nextargv(aTHX_ a,b)
#define noperl_die Perl_noperl_die
+#define notify_parser_that_changed_to_utf8() Perl_notify_parser_that_changed_to_utf8(aTHX)
#define oopsAV(a) Perl_oopsAV(aTHX_ a)
#define oopsHV(a) Perl_oopsHV(aTHX_ a)
#define op_unscope(a) Perl_op_unscope(aTHX_ a)
@@ -1331,7 +1365,6 @@
#define pad_push(a,b) Perl_pad_push(aTHX_ a,b)
#define pad_swipe(a,b) Perl_pad_swipe(aTHX_ a,b)
#define padlist_store(a,b,c) Perl_padlist_store(aTHX_ a,b,c)
-#define parse_subsignature() Perl_parse_subsignature(aTHX)
#define parse_unicode_opts(a) Perl_parse_unicode_opts(aTHX_ a)
#define parser_free(a) Perl_parser_free(aTHX_ a)
#define peep(a) Perl_peep(aTHX_ a)
@@ -1382,6 +1415,7 @@
#define yyerror_pv(a,b) Perl_yyerror_pv(aTHX_ a,b)
#define yyerror_pvn(a,b,c) Perl_yyerror_pvn(aTHX_ a,b,c)
#define yyparse(a) Perl_yyparse(aTHX_ a)
+#define yyquit() Perl_yyquit(aTHX)
#define yyunlex() Perl_yyunlex(aTHX)
# if !(defined(DEBUGGING))
# if !defined(NV_PRESERVES_UV)
@@ -1454,6 +1488,9 @@
#define printbuf(a,b) S_printbuf(aTHX_ a,b)
#define tokereport(a,b) S_tokereport(aTHX_ a,b)
# endif
+# if defined(USE_LOCALE) && defined(PERL_IN_LOCALE_C)
+#define print_collxfrm_input_and_return(a,b,c,d) S_print_collxfrm_input_and_return(aTHX_ a,b,c,d)
+# endif
# endif
# if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
#define dump_sv_child(a) Perl_dump_sv_child(aTHX_ a)
@@ -1527,7 +1564,7 @@
#define gv_fetchmeth_internal(a,b,c,d,e,f) S_gv_fetchmeth_internal(aTHX_ a,b,c,d,e,f)
#define gv_init_svtype(a,b) S_gv_init_svtype(aTHX_ a,b)
#define gv_is_in_main(a,b,c) S_gv_is_in_main(aTHX_ a,b,c)
-#define gv_magicalize(a,b,c,d,e,f) S_gv_magicalize(aTHX_ a,b,c,d,e,f)
+#define gv_magicalize(a,b,c,d,e) S_gv_magicalize(aTHX_ a,b,c,d,e)
#define gv_magicalize_isa(a) S_gv_magicalize_isa(aTHX_ a)
#define gv_stashpvn_internal(a,b,c) S_gv_stashpvn_internal(aTHX_ a,b,c)
#define gv_stashsvpvn_cached(a,b,c,d) S_gv_stashsvpvn_cached(aTHX_ a,b,c,d)
@@ -1552,6 +1589,11 @@
#define share_hek_flags(a,b,c,d) S_share_hek_flags(aTHX_ a,b,c,d)
#define unshare_hek_or_pvn(a,b,c,d) S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
# endif
+# if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C)
+# if defined(USE_LOCALE_COLLATE)
+#define _mem_collxfrm(a,b,c,d) Perl__mem_collxfrm(aTHX_ a,b,c,d)
+# endif
+# endif
# if defined(PERL_IN_MALLOC_C)
#define adjust_size_and_find_bucket S_adjust_size_and_find_bucket
# endif
@@ -1770,7 +1812,7 @@
#define lop(a,b,c) S_lop(aTHX_ a,b,c)
#define missingterm(a) S_missingterm(aTHX_ a)
#define no_op(a,b) S_no_op(aTHX_ a,b)
-#define parse_ident(a,b,c,d,e) S_parse_ident(aTHX_ a,b,c,d,e)
+#define parse_ident(a,b,c,d,e,f) S_parse_ident(aTHX_ a,b,c,d,e,f)
#define pending_ident() S_pending_ident(aTHX)
#define scan_const(a) S_scan_const(aTHX_ a)
#define scan_formline(a) S_scan_formline(aTHX_ a)
@@ -1797,11 +1839,19 @@
# endif
# if defined(PERL_IN_UTF8_C)
#define _to_utf8_case(a,b,c,d,e,f,g) S__to_utf8_case(aTHX_ a,b,c,d,e,f,g)
+#define check_and_deprecate(a,b,c,d,e,f) S_check_and_deprecate(aTHX_ a,b,c,d,e,f)
#define check_locale_boundary_crossing(a,b,c,d) S_check_locale_boundary_crossing(aTHX_ a,b,c,d)
+#define does_utf8_overflow S_does_utf8_overflow
+#define isFF_OVERLONG S_isFF_OVERLONG
#define is_utf8_common(a,b,c,d) S_is_utf8_common(aTHX_ a,b,c,d)
+#define is_utf8_common_with_len(a,b,c,d,e) S_is_utf8_common_with_len(aTHX_ a,b,c,d,e)
+#define is_utf8_cp_above_31_bits S_is_utf8_cp_above_31_bits
+#define is_utf8_overlong_given_start_byte_ok S_is_utf8_overlong_given_start_byte_ok
#define swash_scan_list_line(a,b,c,d,e,f,g) S_swash_scan_list_line(aTHX_ a,b,c,d,e,f,g)
#define swatch_get(a,b,c) S_swatch_get(aTHX_ a,b,c)
#define to_lower_latin1 S_to_lower_latin1
+#define unexpected_non_continuation_text(a,b,c,d) S_unexpected_non_continuation_text(aTHX_ a,b,c,d)
+#define warn_on_first_deprecated_use(a,b,c,d,e) S_warn_on_first_deprecated_use(aTHX_ a,b,c,d,e)
# endif
# if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
#define _to_upper_title_latin1(a,b,c,d) Perl__to_upper_title_latin1(aTHX_ a,b,c,d)
@@ -1837,7 +1887,9 @@
# endif
# if defined(USE_LOCALE_COLLATE)
#define magic_setcollxfrm(a,b) Perl_magic_setcollxfrm(aTHX_ a,b)
+#ifndef NO_MATHOMS
#define mem_collxfrm(a,b,c) Perl_mem_collxfrm(aTHX_ a,b,c)
+#endif
# endif
# if defined(USE_PERLIO)
#define PerlIO_restore_errno(a) Perl_PerlIO_restore_errno(aTHX_ a)
diff --git a/Master/tlpkg/tlperl/lib/CORE/embedvar.h b/Master/tlpkg/tlperl/lib/CORE/embedvar.h
index 7e551be0215..a33f213efca 100644
--- a/Master/tlpkg/tlperl/lib/CORE/embedvar.h
+++ b/Master/tlpkg/tlperl/lib/CORE/embedvar.h
@@ -42,6 +42,7 @@
#define PL_AboveLatin1 (vTHX->IAboveLatin1)
#define PL_Argv (vTHX->IArgv)
+#define PL_Assigned_invlist (vTHX->IAssigned_invlist)
#define PL_Cmd (vTHX->ICmd)
#define PL_DBcontrol (vTHX->IDBcontrol)
#define PL_DBcv (vTHX->IDBcv)
@@ -109,6 +110,7 @@
#define PL_curcopdb (vTHX->Icurcopdb)
#define PL_curpad (vTHX->Icurpad)
#define PL_curpm (vTHX->Icurpm)
+#define PL_curpm_under (vTHX->Icurpm_under)
#define PL_curstack (vTHX->Icurstack)
#define PL_curstackinfo (vTHX->Icurstackinfo)
#define PL_curstash (vTHX->Icurstash)
@@ -140,7 +142,6 @@
#define PL_e_script (vTHX->Ie_script)
#define PL_efloatbuf (vTHX->Iefloatbuf)
#define PL_efloatsize (vTHX->Iefloatsize)
-#define PL_encoding (vTHX->Iencoding)
#define PL_endav (vTHX->Iendav)
#define PL_envgv (vTHX->Ienvgv)
#define PL_errgv (vTHX->Ierrgv)
@@ -168,6 +169,7 @@
#define PL_in_clean_objs (vTHX->Iin_clean_objs)
#define PL_in_eval (vTHX->Iin_eval)
#define PL_in_load_module (vTHX->Iin_load_module)
+#define PL_in_utf8_COLLATE_locale (vTHX->Iin_utf8_COLLATE_locale)
#define PL_in_utf8_CTYPE_locale (vTHX->Iin_utf8_CTYPE_locale)
#define PL_incgv (vTHX->Iincgv)
#define PL_initav (vTHX->Iinitav)
@@ -184,7 +186,6 @@
#define PL_lastgotoprobe (vTHX->Ilastgotoprobe)
#define PL_laststatval (vTHX->Ilaststatval)
#define PL_laststype (vTHX->Ilaststype)
-#define PL_lex_encoding (vTHX->Ilex_encoding)
#define PL_localizing (vTHX->Ilocalizing)
#define PL_localpatches (vTHX->Ilocalpatches)
#define PL_lockhook (vTHX->Ilockhook)
@@ -196,7 +197,6 @@
#define PL_markstack_max (vTHX->Imarkstack_max)
#define PL_markstack_ptr (vTHX->Imarkstack_ptr)
#define PL_max_intro_pending (vTHX->Imax_intro_pending)
-#define PL_maxo (vTHX->Imaxo)
#define PL_maxsysfd (vTHX->Imaxsysfd)
#define PL_memory_debug_header (vTHX->Imemory_debug_header)
#define PL_mess_sv (vTHX->Imess_sv)
@@ -280,6 +280,7 @@
#define PL_scopestack_max (vTHX->Iscopestack_max)
#define PL_scopestack_name (vTHX->Iscopestack_name)
#define PL_secondgv (vTHX->Isecondgv)
+#define PL_seen_deprecated_macro (vTHX->Iseen_deprecated_macro)
#define PL_sharehook (vTHX->Isharehook)
#define PL_sig_pending (vTHX->Isig_pending)
#define PL_sighandlerp (vTHX->Isighandlerp)
@@ -308,6 +309,9 @@
#define PL_stderrgv (vTHX->Istderrgv)
#define PL_stdingv (vTHX->Istdingv)
#define PL_strtab (vTHX->Istrtab)
+#define PL_strxfrm_NUL_replacement (vTHX->Istrxfrm_NUL_replacement)
+#define PL_strxfrm_is_behaved (vTHX->Istrxfrm_is_behaved)
+#define PL_strxfrm_max_cp (vTHX->Istrxfrm_max_cp)
#define PL_sub_generation (vTHX->Isub_generation)
#define PL_subline (vTHX->Isubline)
#define PL_subname (vTHX->Isubname)
@@ -363,6 +367,8 @@
#if defined(PERL_GLOBAL_STRUCT)
+#define PL_C_locale_obj (my_vars->GC_locale_obj)
+#define PL_GC_locale_obj (my_vars->GC_locale_obj)
#define PL_appctx (my_vars->Gappctx)
#define PL_Gappctx (my_vars->Gappctx)
#define PL_check (my_vars->Gcheck)
@@ -411,6 +417,10 @@
#define PL_Gperlio_fd_refcnt_size (my_vars->Gperlio_fd_refcnt_size)
#define PL_perlio_mutex (my_vars->Gperlio_mutex)
#define PL_Gperlio_mutex (my_vars->Gperlio_mutex)
+#ifdef __VMS
+#define PL_perllib_sep (my_vars->Gperllib_sep)
+#define PL_Gperllib_sep (my_vars->Gperllib_sep)
+#endif
#define PL_ppaddr (my_vars->Gppaddr)
#define PL_Gppaddr (my_vars->Gppaddr)
#ifdef OS2
diff --git a/Master/tlpkg/tlperl/lib/CORE/feature.h b/Master/tlpkg/tlperl/lib/CORE/feature.h
index a527e06e841..838d64883b5 100644
--- a/Master/tlpkg/tlperl/lib/CORE/feature.h
+++ b/Master/tlpkg/tlperl/lib/CORE/feature.h
@@ -76,12 +76,6 @@
FEATURE_IS_ENABLED("evalbytes")) \
)
-#define FEATURE_POSTDEREF_IS_ENABLED \
- ( \
- CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
- FEATURE_IS_ENABLED("postderef") \
- )
-
#define FEATURE_ARYBASE_IS_ENABLED \
( \
CURRENT_FEATURE_BUNDLE <= FEATURE_BUNDLE_511 \
@@ -109,12 +103,6 @@
FEATURE_IS_ENABLED("refaliasing") \
)
-#define FEATURE_LEXSUBS_IS_ENABLED \
- ( \
- CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
- FEATURE_IS_ENABLED("lexsubs") \
- )
-
#define FEATURE_POSTDEREF_QQ_IS_ENABLED \
( \
CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_523 \
@@ -130,6 +118,12 @@
FEATURE_IS_ENABLED("unieval")) \
)
+#define FEATURE_MYREF_IS_ENABLED \
+ ( \
+ CURRENT_FEATURE_BUNDLE == FEATURE_BUNDLE_CUSTOM && \
+ FEATURE_IS_ENABLED("myref") \
+ )
+
#define FEATURE_UNICODE_IS_ENABLED \
( \
(CURRENT_FEATURE_BUNDLE >= FEATURE_BUNDLE_511 && \
diff --git a/Master/tlpkg/tlperl/lib/CORE/gv.h b/Master/tlpkg/tlperl/lib/CORE/gv.h
index e3357bc4de6..488f2cc87fe 100644
--- a/Master/tlpkg/tlperl/lib/CORE/gv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/gv.h
@@ -52,7 +52,6 @@ struct gp {
(*({ GV * const _gvname_hek = (GV *) (gv); \
assert(isGV_with_GP(_gvname_hek)); \
assert(SvTYPE(_gvname_hek) == SVt_PVGV || SvTYPE(_gvname_hek) >= SVt_PVLV); \
- assert(!SvVALID(_gvname_hek)); \
&(GvXPVGV(_gvname_hek)->xiv_u.xivu_namehek); \
}))
# define GvNAME_get(gv) ({ assert(GvNAME_HEK(gv)); (char *)HEK_KEY(GvNAME_HEK(gv)); })
diff --git a/Master/tlpkg/tlperl/lib/CORE/handy.h b/Master/tlpkg/tlperl/lib/CORE/handy.h
index 932a874c260..80f9cf4b764 100644
--- a/Master/tlpkg/tlperl/lib/CORE/handy.h
+++ b/Master/tlpkg/tlperl/lib/CORE/handy.h
@@ -277,6 +277,15 @@ typedef U64TYPE U64;
/* Unused by core; should be deprecated */
#define Ctl(ch) ((ch) & 037)
+#if defined(PERL_CORE) || defined(PERL_EXT)
+# ifndef MIN
+# define MIN(a,b) ((a) < (b) ? (a) : (b))
+# endif
+# ifndef MAX
+# define MAX(a,b) ((a) > (b) ? (a) : (b))
+# endif
+#endif
+
/* This is a helper macro to avoid preprocessor issues, replaced by nothing
* unless under DEBUGGING, where it expands to an assert of its argument,
* followed by a comma (hence the comma operator). If we just used a straight
@@ -408,14 +417,7 @@ a string/length pair.
Perl_gv_fetchpvn_flags(aTHX_ namebeg, len, add, sv_type)
#define sv_catxmlpvs(dsv, str, utf8) \
Perl_sv_catxmlpvn(aTHX_ dsv, STR_WITH_LEN(str), utf8)
-#define hv_fetchs(hv,key,lval) \
- ((SV **)Perl_hv_common(aTHX_ (hv), NULL, STR_WITH_LEN(key), 0, \
- (lval) ? (HV_FETCH_JUST_SV | HV_FETCH_LVALUE) \
- : HV_FETCH_JUST_SV, NULL, 0))
-#define hv_stores(hv,key,val) \
- ((SV **)Perl_hv_common(aTHX_ (hv), NULL, STR_WITH_LEN(key), 0, \
- (HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), (val), 0))
#define lex_stuff_pvs(pv,flags) Perl_lex_stuff_pvn(aTHX_ STR_WITH_LEN(pv), flags)
@@ -472,15 +474,25 @@ Returns zero if non-equal, or non-zero if equal.
=cut
*/
+
#define strNE(s1,s2) (strcmp(s1,s2))
#define strEQ(s1,s2) (!strcmp(s1,s2))
#define strLT(s1,s2) (strcmp(s1,s2) < 0)
#define strLE(s1,s2) (strcmp(s1,s2) <= 0)
#define strGT(s1,s2) (strcmp(s1,s2) > 0)
#define strGE(s1,s2) (strcmp(s1,s2) >= 0)
+
#define strnNE(s1,s2,l) (strncmp(s1,s2,l))
#define strnEQ(s1,s2,l) (!strncmp(s1,s2,l))
+/* These names are controversial, so guarding against their being used in more
+ * places than they already are. strBEGs and StrStartsWith are potential
+ * candidates */
+#if defined(PERL_IN_DOIO_C) || defined(PERL_IN_GV_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_LOCALE_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_TOKE_C) || defined(PERL_EXT)
+#define strNEs(s1,s2) (strncmp(s1,"" s2 "", sizeof(s2)-1))
+#define strEQs(s1,s2) (!strncmp(s1,"" s2 "", sizeof(s2)-1))
+#endif
+
#ifdef HAS_MEMCMP
# define memNE(s1,s2,l) (memcmp(s1,s2,l))
# define memEQ(s1,s2,l) (!memcmp(s1,s2,l))
@@ -489,10 +501,22 @@ Returns zero if non-equal, or non-zero if equal.
# define memEQ(s1,s2,l) (!bcmp(s1,s2,l))
#endif
+/* memEQ and memNE where second comparand is a string constant */
#define memEQs(s1, l, s2) \
- (sizeof(s2)-1 == l && memEQ(s1, ("" s2 ""), (sizeof(s2)-1)))
+ (((sizeof(s2)-1) == (l)) && memEQ((s1), ("" s2 ""), (sizeof(s2)-1)))
#define memNEs(s1, l, s2) !memEQs(s1, l, s2)
+/* memEQ and memNE where second comparand is a string constant
+ * and we can assume the length of s1 is at least that of the string */
+#define _memEQs(s1, s2) \
+ (memEQ((s1), ("" s2 ""), (sizeof(s2)-1)))
+#define _memNEs(s1, s2) (memNE((s1),("" s2 ""),(sizeof(s2)-1)))
+
+#define memLT(s1,s2,l) (memcmp(s1,s2,l) < 0)
+#define memLE(s1,s2,l) (memcmp(s1,s2,l) <= 0)
+#define memGT(s1,s2,l) (memcmp(s1,s2,l) > 0)
+#define memGE(s1,s2,l) (memcmp(s1,s2,l) >= 0)
+
/*
* Character classes.
*
@@ -529,28 +553,50 @@ represented by that octet is (or on non-ASCII platforms, corresponds to) an
ASCII character in the named class based on platform, Unicode, and Perl rules.
If the input is a number that doesn't fit in an octet, FALSE is returned.
-Variant C<isFOO_A> (e.g., C<isALPHA_A()>) is identical to the base function
-with no suffix C<"_A">.
+Variant C<isI<FOO>_A> (e.g., C<isALPHA_A()>) is identical to the base function
+with no suffix C<"_A">. This variant is used to emphasize by its name that
+only ASCII-range characters can return TRUE.
-Variant C<isFOO_L1> imposes the Latin-1 (or EBCDIC equivlalent) character set
+Variant C<isI<FOO>_L1> imposes the Latin-1 (or EBCDIC equivalent) character set
onto the platform. That is, the code points that are ASCII are unaffected,
since ASCII is a subset of Latin-1. But the non-ASCII code points are treated
as if they are Latin-1 characters. For example, C<isWORDCHAR_L1()> will return
true when called with the code point 0xDF, which is a word character in both
ASCII and EBCDIC (though it represents different characters in each).
-Variant C<isFOO_uvchr> is like the C<isFOO_L1> variant, but accepts any UV code
+Variant C<isI<FOO>_uvchr> is like the C<isI<FOO>_L1> variant, but accepts any UV code
point as input. If the code point is larger than 255, Unicode rules are used
to determine if it is in the character class. For example,
C<isWORDCHAR_uvchr(0x100)> returns TRUE, since 0x100 is LATIN CAPITAL LETTER A
WITH MACRON in Unicode, and is a word character.
-Variant C<isFOO_utf8> is like C<isFOO_uvchr>, but the input is a pointer to a
-(known to be well-formed) UTF-8 encoded string (C<U8*> or C<char*>, and
-possibly containing embedded C<NUL> characters). The classification of just
-the first (possibly multi-byte) character in the string is tested.
-
-Variant C<isFOO_LC> is like the C<isFOO_A> and C<isFOO_L1> variants, but the
+Variant C<isI<FOO>_utf8_safe> is like C<isI<FOO>_uvchr>, but is used for UTF-8
+encoded strings. Each call classifies one character, even if the string
+contains many. This variant takes two parameters. The first, C<p>, is a
+pointer to the first byte of the character to be classified. (Recall that it
+may take more than one byte to represent a character in UTF-8 strings.) The
+second parameter, C<e>, points to anywhere in the string beyond the first
+character, up to one byte past the end of the entire string. The suffix
+C<_safe> in the function's name indicates that it will not attempt to read
+beyond S<C<e - 1>>, provided that the constraint S<C<s E<lt> e>> is true (this
+is asserted for in C<-DDEBUGGING> builds). If the UTF-8 for the input
+character is malformed in some way, the program may croak, or the function may
+return FALSE, at the discretion of the implementation, and subject to change in
+future releases.
+
+Variant C<isI<FOO>_utf8> is like C<isI<FOO>_utf8_safe>, but takes just a single
+parameter, C<p>, which has the same meaning as the corresponding parameter does
+in C<isI<FOO>_utf8_safe>. The function therefore can't check if it is reading
+beyond the end of the string. Starting in Perl v5.30, it will take a second
+parameter, becoming a synonym for C<isI<FOO>_utf8_safe>. At that time every
+program that uses it will have to be changed to successfully compile. In the
+meantime, the first runtime call to C<isI<FOO>_utf8> from each call point in the
+program will raise a deprecation warning, enabled by default. You can convert
+your program now to use C<isI<FOO>_utf8_safe>, and avoid the warnings, and get an
+extra measure of protection, or you can wait until v5.30, when you'll be forced
+to add the C<e> parameter.
+
+Variant C<isI<FOO>_LC> is like the C<isI<FOO>_A> and C<isI<FOO>_L1> variants, but the
result is based on the current locale, which is what C<LC> in the name stands
for. If Perl can determine that the current locale is a UTF-8 locale, it uses
the published Unicode rules; otherwise, it uses the C library function that
@@ -560,22 +606,43 @@ returned if the input won't fit into an octet. On some platforms where the C
library function is known to be defective, Perl changes its result to follow
the POSIX standard's rules.
-Variant C<isFOO_LC_uvchr> is like C<isFOO_LC>, but is defined on any UV. It
-returns the same as C<isFOO_LC> for input code points less than 256, and
+Variant C<isI<FOO>_LC_uvchr> is like C<isI<FOO>_LC>, but is defined on any UV. It
+returns the same as C<isI<FOO>_LC> for input code points less than 256, and
returns the hard-coded, not-affected-by-locale, Unicode results for larger ones.
-Variant C<isFOO_LC_utf8> is like C<isFOO_LC_uvchr>, but the input is a pointer
-to a (known to be well-formed) UTF-8 encoded string (C<U8*> or C<char*>, and
-possibly containing embedded C<NUL> characters). The classification of just
-the first (possibly multi-byte) character in the string is tested.
+Variant C<isI<FOO>_LC_utf8_safe> is like C<isI<FOO>_LC_uvchr>, but is used for UTF-8
+encoded strings. Each call classifies one character, even if the string
+contains many. This variant takes two parameters. The first, C<p>, is a
+pointer to the first byte of the character to be classified. (Recall that it
+may take more than one byte to represent a character in UTF-8 strings.) The
+second parameter, C<e>, points to anywhere in the string beyond the first
+character, up to one byte past the end of the entire string. The suffix
+C<_safe> in the function's name indicates that it will not attempt to read
+beyond S<C<e - 1>>, provided that the constraint S<C<s E<lt> e>> is true (this
+is asserted for in C<-DDEBUGGING> builds). If the UTF-8 for the input
+character is malformed in some way, the program may croak, or the function may
+return FALSE, at the discretion of the implementation, and subject to change in
+future releases.
+
+Variant C<isI<FOO>_LC_utf8> is like C<isI<FOO>_LC_utf8_safe>, but takes just a single
+parameter, C<p>, which has the same meaning as the corresponding parameter does
+in C<isI<FOO>_LC_utf8_safe>. The function therefore can't check if it is reading
+beyond the end of the string. Starting in Perl v5.30, it will take a second
+parameter, becoming a synonym for C<isI<FOO>_LC_utf8_safe>. At that time every
+program that uses it will have to be changed to successfully compile. In the
+meantime, the first runtime call to C<isI<FOO>_LC_utf8> from each call point in
+the program will raise a deprecation warning, enabled by default. You can
+convert your program now to use C<isI<FOO>_LC_utf8_safe>, and avoid the warnings,
+and get an extra measure of protection, or you can wait until v5.30, when
+you'll be forced to add the C<e> parameter.
=for apidoc Am|bool|isALPHA|char ch
Returns a boolean indicating whether the specified character is an
alphabetic character, analogous to C<m/[[:alpha:]]/>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isALPHA_A>, C<isALPHA_L1>, C<isALPHA_uvchr>, C<isALPHA_utf8>, C<isALPHA_LC>,
-C<isALPHA_LC_uvchr>, and C<isALPHA_LC_utf8>.
+C<isALPHA_A>, C<isALPHA_L1>, C<isALPHA_uvchr>, C<isALPHA_utf8_safe>,
+C<isALPHA_LC>, C<isALPHA_LC_uvchr>, and C<isALPHA_LC_utf8_safe>.
=for apidoc Am|bool|isALPHANUMERIC|char ch
Returns a boolean indicating whether the specified character is a either an
@@ -583,8 +650,8 @@ alphabetic character or decimal digit, analogous to C<m/[[:alnum:]]/>.
See the L<top of this section|/Character classification> for an explanation of
variants
C<isALPHANUMERIC_A>, C<isALPHANUMERIC_L1>, C<isALPHANUMERIC_uvchr>,
-C<isALPHANUMERIC_utf8>, C<isALPHANUMERIC_LC>, C<isALPHANUMERIC_LC_uvchr>, and
-C<isALPHANUMERIC_LC_utf8>.
+C<isALPHANUMERIC_utf8_safe>, C<isALPHANUMERIC_LC>, C<isALPHANUMERIC_LC_uvchr>,
+and C<isALPHANUMERIC_LC_utf8_safe>.
=for apidoc Am|bool|isASCII|char ch
Returns a boolean indicating whether the specified character is one of the 128
@@ -594,36 +661,36 @@ character corresponds to an ASCII character. Variants C<isASCII_A()> and
C<isASCII_L1()> are identical to C<isASCII()>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isASCII_uvchr>, C<isASCII_utf8>, C<isASCII_LC>, C<isASCII_LC_uvchr>, and
-C<isASCII_LC_utf8>. Note, however, that some platforms do not have the C
+C<isASCII_uvchr>, C<isASCII_utf8_safe>, C<isASCII_LC>, C<isASCII_LC_uvchr>, and
+C<isASCII_LC_utf8_safe>. Note, however, that some platforms do not have the C
library routine C<isascii()>. In these cases, the variants whose names contain
C<LC> are the same as the corresponding ones without.
Also note, that because all ASCII characters are UTF-8 invariant (meaning they
have the exact same representation (always a single byte) whether encoded in
UTF-8 or not), C<isASCII> will give the correct results when called with any
-byte in any string encoded or not in UTF-8. And similarly C<isASCII_utf8> will
-work properly on any string encoded or not in UTF-8.
+byte in any string encoded or not in UTF-8. And similarly C<isASCII_utf8_safe>
+will work properly on any string encoded or not in UTF-8.
=for apidoc Am|bool|isBLANK|char ch
Returns a boolean indicating whether the specified character is a
character considered to be a blank, analogous to C<m/[[:blank:]]/>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isBLANK_A>, C<isBLANK_L1>, C<isBLANK_uvchr>, C<isBLANK_utf8>, C<isBLANK_LC>,
-C<isBLANK_LC_uvchr>, and C<isBLANK_LC_utf8>. Note, however, that some
-platforms do not have the C library routine C<isblank()>. In these cases, the
-variants whose names contain C<LC> are the same as the corresponding ones
-without.
+C<isBLANK_A>, C<isBLANK_L1>, C<isBLANK_uvchr>, C<isBLANK_utf8_safe>,
+C<isBLANK_LC>, C<isBLANK_LC_uvchr>, and C<isBLANK_LC_utf8_safe>. Note,
+however, that some platforms do not have the C library routine
+C<isblank()>. In these cases, the variants whose names contain C<LC> are
+the same as the corresponding ones without.
=for apidoc Am|bool|isCNTRL|char ch
Returns a boolean indicating whether the specified character is a
control character, analogous to C<m/[[:cntrl:]]/>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isCNTRL_A>, C<isCNTRL_L1>, C<isCNTRL_uvchr>, C<isCNTRL_utf8>, C<isCNTRL_LC>,
-C<isCNTRL_LC_uvchr>, and C<isCNTRL_LC_utf8>
-On EBCDIC platforms, you almost always want to use the C<isCNTRL_L1> variant.
+C<isCNTRL_A>, C<isCNTRL_L1>, C<isCNTRL_uvchr>, C<isCNTRL_utf8_safe>,
+C<isCNTRL_LC>, C<isCNTRL_LC_uvchr>, and C<isCNTRL_LC_utf8_safe> On EBCDIC
+platforms, you almost always want to use the C<isCNTRL_L1> variant.
=for apidoc Am|bool|isDIGIT|char ch
Returns a boolean indicating whether the specified character is a
@@ -631,24 +698,23 @@ digit, analogous to C<m/[[:digit:]]/>.
Variants C<isDIGIT_A> and C<isDIGIT_L1> are identical to C<isDIGIT>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isDIGIT_uvchr>, C<isDIGIT_utf8>, C<isDIGIT_LC>, C<isDIGIT_LC_uvchr>, and
-C<isDIGIT_LC_utf8>.
+C<isDIGIT_uvchr>, C<isDIGIT_utf8_safe>, C<isDIGIT_LC>, C<isDIGIT_LC_uvchr>, and
+C<isDIGIT_LC_utf8_safe>.
=for apidoc Am|bool|isGRAPH|char ch
Returns a boolean indicating whether the specified character is a
graphic character, analogous to C<m/[[:graph:]]/>.
See the L<top of this section|/Character classification> for an explanation of
-variants
-C<isGRAPH_A>, C<isGRAPH_L1>, C<isGRAPH_uvchr>, C<isGRAPH_utf8>, C<isGRAPH_LC>,
-C<isGRAPH_LC_uvchr>, and C<isGRAPH_LC_utf8>.
+variants C<isGRAPH_A>, C<isGRAPH_L1>, C<isGRAPH_uvchr>, C<isGRAPH_utf8_safe>,
+C<isGRAPH_LC>, C<isGRAPH_LC_uvchr>, and C<isGRAPH_LC_utf8_safe>.
=for apidoc Am|bool|isLOWER|char ch
Returns a boolean indicating whether the specified character is a
lowercase character, analogous to C<m/[[:lower:]]/>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isLOWER_A>, C<isLOWER_L1>, C<isLOWER_uvchr>, C<isLOWER_utf8>, C<isLOWER_LC>,
-C<isLOWER_LC_uvchr>, and C<isLOWER_LC_utf8>.
+C<isLOWER_A>, C<isLOWER_L1>, C<isLOWER_uvchr>, C<isLOWER_utf8_safe>,
+C<isLOWER_LC>, C<isLOWER_LC_uvchr>, and C<isLOWER_LC_utf8_safe>.
=for apidoc Am|bool|isOCTAL|char ch
Returns a boolean indicating whether the specified character is an
@@ -663,9 +729,8 @@ Note that the definition of what is punctuation isn't as
straightforward as one might desire. See L<perlrecharclass/POSIX Character
Classes> for details.
See the L<top of this section|/Character classification> for an explanation of
-variants
-C<isPUNCT_A>, C<isPUNCT_L1>, C<isPUNCT_uvchr>, C<isPUNCT_utf8>, C<isPUNCT_LC>,
-C<isPUNCT_LC_uvchr>, and C<isPUNCT_LC_utf8>.
+variants C<isPUNCT_A>, C<isPUNCT_L1>, C<isPUNCT_uvchr>, C<isPUNCT_utf8_safe>,
+C<isPUNCT_LC>, C<isPUNCT_LC_uvchr>, and C<isPUNCT_LC_utf8_safe>.
=for apidoc Am|bool|isSPACE|char ch
Returns a boolean indicating whether the specified character is a
@@ -678,8 +743,8 @@ in the non-locale variants, was that C<isSPACE()> did not match a vertical tab.
(See L</isPSXSPC> for a macro that matches a vertical tab in all releases.)
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isSPACE_A>, C<isSPACE_L1>, C<isSPACE_uvchr>, C<isSPACE_utf8>, C<isSPACE_LC>,
-C<isSPACE_LC_uvchr>, and C<isSPACE_LC_utf8>.
+C<isSPACE_A>, C<isSPACE_L1>, C<isSPACE_uvchr>, C<isSPACE_utf8_safe>,
+C<isSPACE_LC>, C<isSPACE_LC_uvchr>, and C<isSPACE_LC_utf8_safe>.
=for apidoc Am|bool|isPSXSPC|char ch
(short for Posix Space)
@@ -692,24 +757,23 @@ C<isSPACE()> forms don't match a Vertical Tab, and the C<isPSXSPC()> forms do.
Otherwise they are identical. Thus this macro is analogous to what
C<m/[[:space:]]/> matches in a regular expression.
See the L<top of this section|/Character classification> for an explanation of
-variants C<isPSXSPC_A>, C<isPSXSPC_L1>, C<isPSXSPC_uvchr>, C<isPSXSPC_utf8>,
-C<isPSXSPC_LC>, C<isPSXSPC_LC_uvchr>, and C<isPSXSPC_LC_utf8>.
+variants C<isPSXSPC_A>, C<isPSXSPC_L1>, C<isPSXSPC_uvchr>, C<isPSXSPC_utf8_safe>,
+C<isPSXSPC_LC>, C<isPSXSPC_LC_uvchr>, and C<isPSXSPC_LC_utf8_safe>.
=for apidoc Am|bool|isUPPER|char ch
Returns a boolean indicating whether the specified character is an
uppercase character, analogous to C<m/[[:upper:]]/>.
See the L<top of this section|/Character classification> for an explanation of
-variants
-C<isUPPER_A>, C<isUPPER_L1>, C<isUPPER_uvchr>, C<isUPPER_utf8>, C<isUPPER_LC>,
-C<isUPPER_LC_uvchr>, and C<isUPPER_LC_utf8>.
+variants C<isUPPER_A>, C<isUPPER_L1>, C<isUPPER_uvchr>, C<isUPPER_utf8_safe>,
+C<isUPPER_LC>, C<isUPPER_LC_uvchr>, and C<isUPPER_LC_utf8_safe>.
=for apidoc Am|bool|isPRINT|char ch
Returns a boolean indicating whether the specified character is a
printable character, analogous to C<m/[[:print:]]/>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isPRINT_A>, C<isPRINT_L1>, C<isPRINT_uvchr>, C<isPRINT_utf8>, C<isPRINT_LC>,
-C<isPRINT_LC_uvchr>, and C<isPRINT_LC_utf8>.
+C<isPRINT_A>, C<isPRINT_L1>, C<isPRINT_uvchr>, C<isPRINT_utf8_safe>,
+C<isPRINT_LC>, C<isPRINT_LC_uvchr>, and C<isPRINT_LC_utf8_safe>.
=for apidoc Am|bool|isWORDCHAR|char ch
Returns a boolean indicating whether the specified character is a character
@@ -721,10 +785,10 @@ C<isALNUM()> is a synonym provided for backward compatibility, even though a
word character includes more than the standard C language meaning of
alphanumeric.
See the L<top of this section|/Character classification> for an explanation of
-variants
-C<isWORDCHAR_A>, C<isWORDCHAR_L1>, C<isWORDCHAR_uvchr>, and C<isWORDCHAR_utf8>.
-C<isWORDCHAR_LC>, C<isWORDCHAR_LC_uvchr>, and C<isWORDCHAR_LC_utf8> are also as
-described there, but additionally include the platform's native underscore.
+variants C<isWORDCHAR_A>, C<isWORDCHAR_L1>, C<isWORDCHAR_uvchr>, and
+C<isWORDCHAR_utf8_safe>. C<isWORDCHAR_LC>, C<isWORDCHAR_LC_uvchr>, and
+C<isWORDCHAR_LC_utf8_safe> are also as described there, but additionally
+include the platform's native underscore.
=for apidoc Am|bool|isXDIGIT|char ch
Returns a boolean indicating whether the specified character is a hexadecimal
@@ -732,8 +796,8 @@ digit. In the ASCII range these are C<[0-9A-Fa-f]>. Variants C<isXDIGIT_A()>
and C<isXDIGIT_L1()> are identical to C<isXDIGIT()>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isXDIGIT_uvchr>, C<isXDIGIT_utf8>, C<isXDIGIT_LC>, C<isXDIGIT_LC_uvchr>, and
-C<isXDIGIT_LC_utf8>.
+C<isXDIGIT_uvchr>, C<isXDIGIT_utf8_safe>, C<isXDIGIT_LC>, C<isXDIGIT_LC_uvchr>,
+and C<isXDIGIT_LC_utf8_safe>.
=for apidoc Am|bool|isIDFIRST|char ch
Returns a boolean indicating whether the specified character can be the first
@@ -742,8 +806,8 @@ the official Unicode property C<XID_Start>. The difference is that this
returns true only if the input character also matches L</isWORDCHAR>.
See the L<top of this section|/Character classification> for an explanation of
variants
-C<isIDFIRST_A>, C<isIDFIRST_L1>, C<isIDFIRST_uvchr>, C<isIDFIRST_utf8>,
-C<isIDFIRST_LC>, C<isIDFIRST_LC_uvchr>, and C<isIDFIRST_LC_utf8>.
+C<isIDFIRST_A>, C<isIDFIRST_L1>, C<isIDFIRST_uvchr>, C<isIDFIRST_utf8_safe>,
+C<isIDFIRST_LC>, C<isIDFIRST_LC_uvchr>, and C<isIDFIRST_LC_utf8_safe>.
=for apidoc Am|bool|isIDCONT|char ch
Returns a boolean indicating whether the specified character can be the
@@ -753,8 +817,8 @@ difference is that this returns true only if the input character also matches
L</isWORDCHAR>. See the L<top of this section|/Character classification> for
an
explanation of variants C<isIDCONT_A>, C<isIDCONT_L1>, C<isIDCONT_uvchr>,
-C<isIDCONT_utf8>, C<isIDCONT_LC>, C<isIDCONT_LC_uvchr>, and
-C<isIDCONT_LC_utf8>.
+C<isIDCONT_utf8_safe>, C<isIDCONT_LC>, C<isIDCONT_LC_uvchr>, and
+C<isIDCONT_LC_utf8_safe>.
=head1 Miscellaneous Functions
@@ -763,6 +827,16 @@ Returns the value of an ASCII-range hex digit and advances the string pointer.
Behaviour is only well defined when isXDIGIT(*str) is true.
=head1 Character case changing
+Perl uses "full" Unicode case mappings. This means that converting a single
+character to another case may result in a sequence of more than one character.
+For example, the uppercase of C<E<223>> (LATIN SMALL LETTER SHARP S) is the two
+character sequence C<SS>. This presents some complications The lowercase of
+all characters in the range 0..255 is a single character, and thus
+C<L</toLOWER_L1>> is furnished. But, C<toUPPER_L1> can't exist, as it couldn't
+return a valid result for all legal inputs. Instead C<L</toUPPER_uvchr>> has
+an API that does allow every possible legal result to be returned.) Likewise
+no other function that is crippled by not being able to give the correct
+results for the full range of possible inputs has been implemented here.
=for apidoc Am|U8|toUPPER|U8 ch
Converts the specified character to uppercase. If the input is anything but an
@@ -777,18 +851,38 @@ that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
bytes since the uppercase version may be longer than the original character.
The first code point of the uppercased version is returned
-(but note, as explained just above, that there may be more.)
+(but note, as explained at L<the top of this section|/Character case
+changing>, that there may be more.)
-=for apidoc Am|UV|toUPPER_utf8|U8* p|U8* s|STRLEN* lenp
-Converts the UTF-8 encoded character at C<p> to its uppercase version, and
+=for apidoc Am|UV|toUPPER_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+Converts the first UTF-8 encoded character in the sequence starting at C<p> and
+extending no further than S<C<e - 1>> to its uppercase version, and
stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. Note
that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
bytes since the uppercase version may be longer than the original character.
The first code point of the uppercased version is returned
-(but note, as explained just above, that there may be more.)
+(but note, as explained at L<the top of this section|/Character case
+changing>, that there may be more).
+
+The suffix C<_safe> in the function's name indicates that it will not attempt
+to read beyond S<C<e - 1>>, provided that the constraint S<C<s E<lt> e>> is
+true (this is asserted for in C<-DDEBUGGING> builds). If the UTF-8 for the
+input character is malformed in some way, the program may croak, or the
+function may return the REPLACEMENT CHARACTER, at the discretion of the
+implementation, and subject to change in future releases.
-The input character at C<p> is assumed to be well-formed.
+=for apidoc Am|UV|toUPPER_utf8|U8* p|U8* s|STRLEN* lenp
+This is like C<L</toUPPER_utf8_safe>>, but doesn't have the C<e>
+parameter The function therefore can't check if it is reading
+beyond the end of the string. Starting in Perl v5.30, it will take the C<e>
+parameter, becoming a synonym for C<toUPPER_utf8_safe>. At that time every
+program that uses it will have to be changed to successfully compile. In the
+meantime, the first runtime call to C<toUPPER_utf8> from each call point in the
+program will raise a deprecation warning, enabled by default. You can convert
+your program now to use C<toUPPER_utf8_safe>, and avoid the warnings, and get an
+extra measure of protection, or you can wait until v5.30, when you'll be forced
+to add the C<e> parameter.
=for apidoc Am|U8|toFOLD|U8 ch
Converts the specified character to foldcase. If the input is anything but an
@@ -804,18 +898,38 @@ that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
bytes since the foldcase version may be longer than the original character.
The first code point of the foldcased version is returned
-(but note, as explained just above, that there may be more.)
+(but note, as explained at L<the top of this section|/Character case
+changing>, that there may be more).
-=for apidoc Am|UV|toFOLD_utf8|U8* p|U8* s|STRLEN* lenp
-Converts the UTF-8 encoded character at C<p> to its foldcase version, and
+=for apidoc Am|UV|toFOLD_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+Converts the first UTF-8 encoded character in the sequence starting at C<p> and
+extending no further than S<C<e - 1>> to its foldcase version, and
stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. Note
that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
bytes since the foldcase version may be longer than the original character.
The first code point of the foldcased version is returned
-(but note, as explained just above, that there may be more.)
+(but note, as explained at L<the top of this section|/Character case
+changing>, that there may be more).
-The input character at C<p> is assumed to be well-formed.
+The suffix C<_safe> in the function's name indicates that it will not attempt
+to read beyond S<C<e - 1>>, provided that the constraint S<C<s E<lt> e>> is
+true (this is asserted for in C<-DDEBUGGING> builds). If the UTF-8 for the
+input character is malformed in some way, the program may croak, or the
+function may return the REPLACEMENT CHARACTER, at the discretion of the
+implementation, and subject to change in future releases.
+
+=for apidoc Am|UV|toFOLD_utf8|U8* p|U8* s|STRLEN* lenp
+This is like C<L</toFOLD_utf8_safe>>, but doesn't have the C<e>
+parameter The function therefore can't check if it is reading
+beyond the end of the string. Starting in Perl v5.30, it will take the C<e>
+parameter, becoming a synonym for C<toFOLD_utf8_safe>. At that time every
+program that uses it will have to be changed to successfully compile. In the
+meantime, the first runtime call to C<toFOLD_utf8> from each call point in the
+program will raise a deprecation warning, enabled by default. You can convert
+your program now to use C<toFOLD_utf8_safe>, and avoid the warnings, and get an
+extra measure of protection, or you can wait until v5.30, when you'll be forced
+to add the C<e> parameter.
=for apidoc Am|U8|toLOWER|U8 ch
Converts the specified character to lowercase. If the input is anything but an
@@ -838,18 +952,39 @@ that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
bytes since the lowercase version may be longer than the original character.
The first code point of the lowercased version is returned
-(but note, as explained just above, that there may be more.)
+(but note, as explained at L<the top of this section|/Character case
+changing>, that there may be more).
-=for apidoc Am|UV|toLOWER_utf8|U8* p|U8* s|STRLEN* lenp
-Converts the UTF-8 encoded character at C<p> to its lowercase version, and
+
+=for apidoc Am|UV|toLOWER_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+Converts the first UTF-8 encoded character in the sequence starting at C<p> and
+extending no further than S<C<e - 1>> to its lowercase version, and
stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. Note
that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
bytes since the lowercase version may be longer than the original character.
The first code point of the lowercased version is returned
-(but note, as explained just above, that there may be more.)
+(but note, as explained at L<the top of this section|/Character case
+changing>, that there may be more).
-The input character at C<p> is assumed to be well-formed.
+The suffix C<_safe> in the function's name indicates that it will not attempt
+to read beyond S<C<e - 1>>, provided that the constraint S<C<s E<lt> e>> is
+true (this is asserted for in C<-DDEBUGGING> builds). If the UTF-8 for the
+input character is malformed in some way, the program may croak, or the
+function may return the REPLACEMENT CHARACTER, at the discretion of the
+implementation, and subject to change in future releases.
+
+=for apidoc Am|UV|toLOWER_utf8|U8* p|U8* s|STRLEN* lenp
+This is like C<L</toLOWER_utf8_safe>>, but doesn't have the C<e>
+parameter The function therefore can't check if it is reading
+beyond the end of the string. Starting in Perl v5.30, it will take the C<e>
+parameter, becoming a synonym for C<toLOWER_utf8_safe>. At that time every
+program that uses it will have to be changed to successfully compile. In the
+meantime, the first runtime call to C<toLOWER_utf8> from each call point in the
+program will raise a deprecation warning, enabled by default. You can convert
+your program now to use C<toLOWER_utf8_safe>, and avoid the warnings, and get an
+extra measure of protection, or you can wait until v5.30, when you'll be forced
+to add the C<e> parameter.
=for apidoc Am|U8|toTITLE|U8 ch
Converts the specified character to titlecase. If the input is anything but an
@@ -866,23 +1001,44 @@ that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
bytes since the titlecase version may be longer than the original character.
The first code point of the titlecased version is returned
-(but note, as explained just above, that there may be more.)
+(but note, as explained at L<the top of this section|/Character case
+changing>, that there may be more).
-=for apidoc Am|UV|toTITLE_utf8|U8* p|U8* s|STRLEN* lenp
-Converts the UTF-8 encoded character at C<p> to its titlecase version, and
+=for apidoc Am|UV|toTITLE_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
+Converts the first UTF-8 encoded character in the sequence starting at C<p> and
+extending no further than S<C<e - 1>> to its titlecase version, and
stores that in UTF-8 in C<s>, and its length in bytes in C<lenp>. Note
that the buffer pointed to by C<s> needs to be at least C<UTF8_MAXBYTES_CASE+1>
bytes since the titlecase version may be longer than the original character.
The first code point of the titlecased version is returned
-(but note, as explained just above, that there may be more.)
+(but note, as explained at L<the top of this section|/Character case
+changing>, that there may be more).
+
+The suffix C<_safe> in the function's name indicates that it will not attempt
+to read beyond S<C<e - 1>>, provided that the constraint S<C<s E<lt> e>> is
+true (this is asserted for in C<-DDEBUGGING> builds). If the UTF-8 for the
+input character is malformed in some way, the program may croak, or the
+function may return the REPLACEMENT CHARACTER, at the discretion of the
+implementation, and subject to change in future releases.
-The input character at C<p> is assumed to be well-formed.
+=for apidoc Am|UV|toTITLE_utf8|U8* p|U8* s|STRLEN* lenp
+This is like C<L</toLOWER_utf8_safe>>, but doesn't have the C<e>
+parameter The function therefore can't check if it is reading
+beyond the end of the string. Starting in Perl v5.30, it will take the C<e>
+parameter, becoming a synonym for C<toTITLE_utf8_safe>. At that time every
+program that uses it will have to be changed to successfully compile. In the
+meantime, the first runtime call to C<toTITLE_utf8> from each call point in the
+program will raise a deprecation warning, enabled by default. You can convert
+your program now to use C<toTITLE_utf8_safe>, and avoid the warnings, and get an
+extra measure of protection, or you can wait until v5.30, when you'll be forced
+to add the C<e> parameter.
=cut
XXX Still undocumented isVERTWS_uvchr and _utf8; it's unclear what their names
-really should be. Also toUPPER_LC and toFOLD_LC, which are subject to change.
+really should be. Also toUPPER_LC and toFOLD_LC, which are subject to change,
+and aren't general purpose as they don't work on U+DF, and assert against that.
Note that these macros are repeated in Devel::PPPort, so should also be
patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
@@ -910,7 +1066,10 @@ patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
* of operands. Well, they are, but that is kind of the point.
*/
#ifndef __COVERITY__
-#define FITS_IN_8_BITS(c) ((sizeof(c) == 1) || !(((WIDEST_UTYPE)(c)) & ~0xFF))
+ /* The '| 0' part ensures a compiler error if c is not integer (like e.g., a
+ * pointer) */
+#define FITS_IN_8_BITS(c) ( (sizeof(c) == 1) \
+ || !(((WIDEST_UTYPE)((c) | 0)) & ~0xFF))
#else
#define FITS_IN_8_BITS(c) (1)
#endif
@@ -925,14 +1084,23 @@ patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
/* There is a simple definition of ASCII for ASCII platforms. But the
* EBCDIC one isn't so simple, so is defined using table look-up like the
* other macros below.
- * The '| 0' part ensures that c is an integer (and not e.g. a pointer) */
+ *
+ * The cast here is used instead of '(c) >= 0', because some compilers emit
+ * a warning that that test is always true when the parameter is an
+ * unsigned type. khw supposes that it could be written as
+ * && ((c) == '\0' || (c) > 0)
+ * to avoid the message, but the cast will likely avoid extra branches even
+ * with stupid compilers.
+ *
+ * The '| 0' part ensures a compiler error if c is not integer (like e.g.,
+ * a pointer) */
# define isASCII(c) ((WIDEST_UTYPE)((c) | 0) < 128)
#endif
-/* The lower 3 bits in both the ASCII and EBCDIC representations of '0' are 0,
- * and the 8 possible permutations of those bits exactly comprise the 8 octal
- * digits */
-#define isOCTAL_A(c) cBOOL(FITS_IN_8_BITS(c) && (0xF8 & (c)) == '0')
+/* Take the eight possible bit patterns of the lower 3 bits and you get the
+ * lower 3 bits of the 8 octal digits, in both ASCII and EBCDIC, so those bits
+ * can be ignored. If the rest match '0', we have an octal */
+#define isOCTAL_A(c) (((WIDEST_UTYPE)((c) | 0) & ~7) == '0')
#ifdef H_PERL /* If have access to perl.h, lookup in its table */
@@ -955,7 +1123,7 @@ patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
# define _CC_PRINT 6 /* [:print:] */
# define _CC_ALPHANUMERIC 7 /* [:alnum:] */
# define _CC_GRAPH 8 /* [:graph:] */
-# define _CC_CASED 9 /* [:lower:] and [:upper:] under /i */
+# define _CC_CASED 9 /* [:lower:] or [:upper:] under /i */
#define _FIRST_NON_SWASH_CC 10
/* The character classes above are implemented with swashes. The second group
@@ -968,6 +1136,9 @@ patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
* above ASCII in the latter case) */
# define _CC_SPACE 10 /* \s, [:space:] */
+# define _CC_PSXSPC _CC_SPACE /* XXX Temporary, can be removed
+ when the deprecated isFOO_utf8()
+ functions are removed */
# define _CC_BLANK 11 /* [:blank:] */
# define _CC_XDIGIT 12 /* [:xdigit:] */
# define _CC_CNTRL 13 /* [:cntrl:] */
@@ -987,6 +1158,9 @@ patched there. The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
# define _CC_IS_IN_SOME_FOLD 22
# define _CC_MNEMONIC_CNTRL 23
+# define _CC_IDCONT 24 /* XXX Temporary, can be removed when the deprecated
+ isFOO_utf8() functions are removed */
+
/* This next group is only used on EBCDIC platforms, so theoretically could be
* shared with something entirely different that's only on ASCII platforms */
# define _CC_UTF8_START_BYTE_IS_FOR_AT_LEAST_SURROGATE 28
@@ -1141,82 +1315,75 @@ END_EXTERN_C
/* If we don't have perl.h, we are compiling a utility program. Below we
* hard-code various macro definitions that wouldn't otherwise be available
- * to it. Most are coded based on first principals. First some ones common
- * to both ASCII and EBCDIC */
+ * to it. Most are coded based on first principles. These are written to
+ * avoid EBCDIC vs. ASCII #ifdef's as much as possible. */
# define isDIGIT_A(c) ((c) <= '9' && (c) >= '0')
# define isBLANK_A(c) ((c) == ' ' || (c) == '\t')
-# define isSPACE_A(c) (isBLANK_A(c) \
- || (c) == '\n' \
- || (c) == '\r' \
- || (c) == '\v' \
+# define isSPACE_A(c) (isBLANK_A(c) \
+ || (c) == '\n' \
+ || (c) == '\r' \
+ || (c) == '\v' \
|| (c) == '\f')
-# ifdef EBCDIC /* There are gaps between 'i' and 'j'; 'r' and 's'. Same
- for uppercase. This is ordered to exclude most things
- early */
-# define isLOWER_A(c) ((c) >= 'a' && (c) <= 'z' \
- && ((c) <= 'i' \
- || ((c) >= 'j' && (c) <= 'r') \
- || (c) >= 's'))
-# define isUPPER_A(c) ((c) >= 'A' && (c) <= 'Z' \
- && ((c) <= 'I' \
- || ((c) >= 'J' && (c) <= 'R') \
- || (c) >= 'S'))
-# else /* ASCII platform. */
-# define isLOWER_A(c) ((c) >= 'a' && (c) <= 'z')
-# define isUPPER_A(c) ((c) <= 'Z' && (c) >= 'A')
-# endif
-
- /* Some more ASCII, non-ASCII common definitions */
+ /* On EBCDIC, there are gaps between 'i' and 'j'; 'r' and 's'. Same for
+ * uppercase. The tests for those aren't necessary on ASCII, but hurt only
+ * performance (if optimization isn't on), and allow the same code to be
+ * used for both platform types */
+# define isLOWER_A(c) ((c) >= 'a' && (c) <= 'z' \
+ && ( (c) <= 'i' \
+ || ((c) >= 'j' && (c) <= 'r') \
+ || (c) >= 's'))
+# define isUPPER_A(c) ((c) >= 'A' && (c) <= 'Z' \
+ && ( (c) <= 'I' \
+ || ((c) >= 'J' && (c) <= 'R') \
+ || (c) >= 'S'))
# define isALPHA_A(c) (isUPPER_A(c) || isLOWER_A(c))
# define isALPHANUMERIC_A(c) (isALPHA_A(c) || isDIGIT_A(c))
# define isWORDCHAR_A(c) (isALPHANUMERIC_A(c) || (c) == '_')
# define isIDFIRST_A(c) (isALPHA_A(c) || (c) == '_')
-# define isXDIGIT_A(c) (isDIGIT_A(c) \
- || ((c) >= 'a' && (c) <= 'f') \
+# define isXDIGIT_A(c) (isDIGIT_A(c) \
+ || ((c) >= 'a' && (c) <= 'f') \
|| ((c) <= 'F' && (c) >= 'A'))
+# define isPUNCT_A(c) ((c) == '-' || (c) == '!' || (c) == '"' \
+ || (c) == '#' || (c) == '$' || (c) == '%' \
+ || (c) == '&' || (c) == '\'' || (c) == '(' \
+ || (c) == ')' || (c) == '*' || (c) == '+' \
+ || (c) == ',' || (c) == '.' || (c) == '/' \
+ || (c) == ':' || (c) == ';' || (c) == '<' \
+ || (c) == '=' || (c) == '>' || (c) == '?' \
+ || (c) == '@' || (c) == '[' || (c) == '\\' \
+ || (c) == ']' || (c) == '^' || (c) == '_' \
+ || (c) == '`' || (c) == '{' || (c) == '|' \
+ || (c) == '}' || (c) == '~')
+# define isGRAPH_A(c) (isALPHANUMERIC_A(c) || isPUNCT_A(c))
+# define isPRINT_A(c) (isGRAPH_A(c) || (c) == ' ')
# ifdef EBCDIC
-# define isPUNCT_A(c) ((c) == '-' || (c) == '!' || (c) == '"' \
- || (c) == '#' || (c) == '$' || (c) == '%' \
- || (c) == '&' || (c) == '\'' || (c) == '(' \
- || (c) == ')' || (c) == '*' || (c) == '+' \
- || (c) == ',' || (c) == '.' || (c) == '/' \
- || (c) == ':' || (c) == ';' || (c) == '<' \
- || (c) == '=' || (c) == '>' || (c) == '?' \
- || (c) == '@' || (c) == '[' || (c) == '\\' \
- || (c) == ']' || (c) == '^' || (c) == '_' \
- || (c) == '`' || (c) == '{' || (c) == '|' \
- || (c) == '}' || (c) == '~')
-# define isGRAPH_A(c) (isALPHANUMERIC_A(c) || isPUNCT_A(c))
-# define isPRINT_A(c) (isGRAPH_A(c) || (c) == ' ')
-
-# ifdef QUESTION_MARK_CTRL
-# define _isQMC(c) ((c) == QUESTION_MARK_CTRL)
-# else
-# define _isQMC(c) 0
-# endif
-
- /* I (khw) can't think of a way to define all the ASCII controls
- * without resorting to a libc (locale-sensitive) call. But we know
- * that all controls but the question-mark one are in the range 0-0x3f.
- * This makes sure that all the controls that have names are included,
- * and all controls that are also considered ASCII in the locale. This
- * may include more or fewer than what it actually should, but the
- * wrong ones are less-important controls, so likely won't impact
- * things (keep in mind that this is compiled only if perl.h isn't
- * available). The question mark control is included if available */
-# define isCNTRL_A(c) (((c) < 0x40 && isascii(c)) \
- || (c) == '\0' || (c) == '\a' || (c) == '\b' \
- || (c) == '\f' || (c) == '\n' || (c) == '\r' \
- || (c) == '\t' || (c) == '\v' || _isQMC(c))
-
+ /* The below is accurate for the 3 EBCDIC code pages traditionally
+ * supported by perl. The only difference between them in the controls
+ * is the position of \n, and that is represented symbolically below */
+# define isCNTRL_A(c) ((c) == '\0' || (c) == '\a' || (c) == '\b' \
+ || (c) == '\f' || (c) == '\n' || (c) == '\r' \
+ || (c) == '\t' || (c) == '\v' \
+ || ((c) <= 3 && (c) >= 1) /* SOH, STX, ETX */ \
+ || (c) == 7 /* U+7F DEL */ \
+ || ((c) <= 0x13 && (c) >= 0x0E) /* SO, SI */ \
+ /* DLE, DC[1-3] */ \
+ || (c) == 0x18 /* U+18 CAN */ \
+ || (c) == 0x19 /* U+19 EOM */ \
+ || ((c) <= 0x1F && (c) >= 0x1C) /* [FGRU]S */ \
+ || (c) == 0x26 /* U+17 ETB */ \
+ || (c) == 0x27 /* U+1B ESC */ \
+ || (c) == 0x2D /* U+05 ENQ */ \
+ || (c) == 0x2E /* U+06 ACK */ \
+ || (c) == 0x32 /* U+16 SYN */ \
+ || (c) == 0x37 /* U+04 EOT */ \
+ || (c) == 0x3C /* U+14 DC4 */ \
+ || (c) == 0x3D /* U+15 NAK */ \
+ || (c) == 0x3F)/* U+1A SUB */
# define isASCII(c) (isCNTRL_A(c) || isPRINT_A(c))
-# else /* ASCII platform; things are simpler, and isASCII has already
- been defined */
-# define isGRAPH_A(c) (((c) > ' ' && (c) < 127))
-# define isPRINT_A(c) (isGRAPH_A(c) || (c) == ' ')
-# define isPUNCT_A(c) (isGRAPH_A(c) && (! isALPHANUMERIC_A(c)))
-# define isCNTRL_A(c) (isASCII(c) && (! isPRINT_A(c)))
+# else /* isASCII is already defined for ASCII platforms, so can use that to
+ define isCNTRL */
+# define isCNTRL_A(c) (isASCII(c) && ! isPRINT_A(c))
# endif
/* The _L1 macros may be unnecessary for the utilities; I (khw) added them
@@ -1532,11 +1699,11 @@ END_EXTERN_C
* don't, but experiments show that gcc optimizes them out anyway. */
/* Note that all ignore 'use bytes' */
-#define _generic_uvchr(classnum, above_latin1, c) ((c) < 256 \
- ? _generic_isCC(c, classnum) \
+#define _generic_uvchr(classnum, above_latin1, c) ((c) < 256 \
+ ? _generic_isCC(c, classnum) \
: above_latin1(c))
-#define _generic_swash_uvchr(classnum, c) ((c) < 256 \
- ? _generic_isCC(c, classnum) \
+#define _generic_swash_uvchr(classnum, c) ((c) < 256 \
+ ? _generic_isCC(c, classnum) \
: _is_uni_FOO(classnum, c))
#define isALPHA_uvchr(c) _generic_swash_uvchr(_CC_ALPHA, c)
#define isALPHANUMERIC_uvchr(c) _generic_swash_uvchr(_CC_ALPHANUMERIC, c)
@@ -1545,8 +1712,10 @@ END_EXTERN_C
#define isCNTRL_uvchr(c) isCNTRL_L1(c) /* All controls are in Latin1 */
#define isDIGIT_uvchr(c) _generic_swash_uvchr(_CC_DIGIT, c)
#define isGRAPH_uvchr(c) _generic_swash_uvchr(_CC_GRAPH, c)
-#define isIDCONT_uvchr(c) _generic_uvchr(_CC_WORDCHAR, _is_uni_perl_idcont, c)
-#define isIDFIRST_uvchr(c) _generic_uvchr(_CC_IDFIRST, _is_uni_perl_idstart, c)
+#define isIDCONT_uvchr(c) \
+ _generic_uvchr(_CC_WORDCHAR, _is_uni_perl_idcont, c)
+#define isIDFIRST_uvchr(c) \
+ _generic_uvchr(_CC_IDFIRST, _is_uni_perl_idstart, c)
#define isLOWER_uvchr(c) _generic_swash_uvchr(_CC_LOWER, c)
#define isPRINT_uvchr(c) _generic_swash_uvchr(_CC_PRINT, c)
@@ -1633,33 +1802,75 @@ END_EXTERN_C
* 'utf8' parameter. This relies on the fact that ASCII characters have the
* same representation whether utf8 or not. Note that it assumes that the utf8
* has been validated, and ignores 'use bytes' */
-#define _generic_utf8(classnum, p, utf8) (UTF8_IS_INVARIANT(*(p)) \
- ? _generic_isCC(*(p), classnum) \
- : (UTF8_IS_DOWNGRADEABLE_START(*(p))) \
- ? _generic_isCC( \
- EIGHT_BIT_UTF8_TO_NATIVE(*(p), \
- *((p)+1 )), \
- classnum) \
- : utf8)
+#define _base_generic_utf8(enum_name, name, p, use_locale ) \
+ _is_utf8_FOO(CAT2(_CC_, enum_name), \
+ (const U8 *) p, \
+ "is" STRINGIFY(name) "_utf8", \
+ "is" STRINGIFY(name) "_utf8_safe", \
+ 1, use_locale, __FILE__,__LINE__)
+
+#define _generic_utf8(name, p) _base_generic_utf8(name, name, p, 0)
+
+/* The "_safe" macros make sure that we don't attempt to read beyond 'e', but
+ * they don't otherwise go out of their way to look for malformed UTF-8. If
+ * they can return accurate results without knowing if the input is otherwise
+ * malformed, they do so. For example isASCII is accurate in spite of any
+ * non-length malformations because it looks only at a single byte. Likewise
+ * isDIGIT looks just at the first byte for code points 0-255, as all UTF-8
+ * variant ones return FALSE. But, if the input has to be well-formed in order
+ * for the results to be accurate, the macros will test and if malformed will
+ * call a routine to die
+ *
+ * Except for toke.c, the macros do assume that e > p, asserting that on
+ * DEBUGGING builds. Much code that calls these depends on this being true,
+ * for other reasons. toke.c is treated specially as using the regular
+ * assertion breaks it in many ways. All strings that these operate on there
+ * are supposed to have an extra NUL character at the end, so that *e = \0. A
+ * bunch of code in toke.c assumes that this is true, so the assertion allows
+ * for that */
+#ifdef PERL_IN_TOKE_C
+# define _utf8_safe_assert(p,e) ((e) > (p) || ((e) == (p) && *(p) == '\0'))
+#else
+# define _utf8_safe_assert(p,e) ((e) > (p))
+#endif
+
+#define _generic_utf8_safe(classnum, p, e, above_latin1) \
+ (__ASSERT_(_utf8_safe_assert(p, e)) \
+ (UTF8_IS_INVARIANT(*(p))) \
+ ? _generic_isCC(*(p), classnum) \
+ : (UTF8_IS_DOWNGRADEABLE_START(*(p)) \
+ ? ((LIKELY((e) - (p) > 1 && UTF8_IS_CONTINUATION(*((p)+1)))) \
+ ? _generic_isCC(EIGHT_BIT_UTF8_TO_NATIVE(*(p), *((p)+1 )), \
+ classnum) \
+ : (_force_out_malformed_utf8_message( \
+ (U8 *) (p), (U8 *) (e), 0, 1), 0)) \
+ : above_latin1))
/* Like the above, but calls 'above_latin1(p)' to get the utf8 value.
* 'above_latin1' can be a macro */
-#define _generic_func_utf8(classnum, above_latin1, p) \
- _generic_utf8(classnum, p, above_latin1(p))
+#define _generic_func_utf8_safe(classnum, above_latin1, p, e) \
+ _generic_utf8_safe(classnum, p, e, above_latin1(p, e))
+#define _generic_non_swash_utf8_safe(classnum, above_latin1, p, e) \
+ _generic_utf8_safe(classnum, p, e, \
+ (UNLIKELY((e) - (p) < UTF8SKIP(p)) \
+ ? (_force_out_malformed_utf8_message( \
+ (U8 *) (p), (U8 *) (e), 0, 1), 0) \
+ : above_latin1(p)))
/* Like the above, but passes classnum to _isFOO_utf8(), instead of having an
* 'above_latin1' parameter */
-#define _generic_swash_utf8(classnum, p) \
- _generic_utf8(classnum, p, _is_utf8_FOO(classnum, p))
+#define _generic_swash_utf8_safe(classnum, p, e) \
+_generic_utf8_safe(classnum, p, e, _is_utf8_FOO_with_len(classnum, p, e))
/* Like the above, but should be used only when it is known that there are no
* characters in the upper-Latin1 range (128-255 on ASCII platforms) which the
* class is TRUE for. Hence it can skip the tests for this range.
* 'above_latin1' should include its arguments */
-#define _generic_utf8_no_upper_latin1(classnum, p, above_latin1) \
- (UTF8_IS_INVARIANT(*(p)) \
- ? _generic_isCC(*(p), classnum) \
- : (UTF8_IS_ABOVE_LATIN1(*(p))) \
- ? above_latin1 \
- : 0)
+#define _generic_utf8_safe_no_upper_latin1(classnum, p, e, above_latin1) \
+ (__ASSERT_(_utf8_safe_assert(p, e)) \
+ (UTF8_IS_INVARIANT(*(p))) \
+ ? _generic_isCC(*(p), classnum) \
+ : (UTF8_IS_DOWNGRADEABLE_START(*(p))) \
+ ? 0 /* Note that doesn't check validity for latin1 */ \
+ : above_latin1)
/* NOTE that some of these macros have very similar ones in regcharclass.h.
* For example, there is (at the time of this writing) an 'is_SPACE_utf8()'
@@ -1669,26 +1880,50 @@ END_EXTERN_C
* points; the regcharclass.h ones are implemented as a series of
* "if-else-if-else ..." */
-#define isALPHA_utf8(p) _generic_swash_utf8(_CC_ALPHA, p)
-#define isALPHANUMERIC_utf8(p) _generic_swash_utf8(_CC_ALPHANUMERIC, p)
-#define isASCII_utf8(p) isASCII(*p) /* Because ASCII is invariant under
- utf8, the non-utf8 macro works
- */
-#define isBLANK_utf8(p) _generic_func_utf8(_CC_BLANK, is_HORIZWS_high, p)
+#define isALPHA_utf8(p) _generic_utf8(ALPHA, p)
+#define isALPHANUMERIC_utf8(p) _generic_utf8(ALPHANUMERIC, p)
+#define isASCII_utf8(p) _generic_utf8(ASCII, p)
+#define isBLANK_utf8(p) _generic_utf8(BLANK, p)
+#define isCNTRL_utf8(p) _generic_utf8(CNTRL, p)
+#define isDIGIT_utf8(p) _generic_utf8(DIGIT, p)
+#define isGRAPH_utf8(p) _generic_utf8(GRAPH, p)
+#define isIDCONT_utf8(p) _generic_utf8(IDCONT, p)
+#define isIDFIRST_utf8(p) _generic_utf8(IDFIRST, p)
+#define isLOWER_utf8(p) _generic_utf8(LOWER, p)
+#define isPRINT_utf8(p) _generic_utf8(PRINT, p)
+#define isPSXSPC_utf8(p) _generic_utf8(PSXSPC, p)
+#define isPUNCT_utf8(p) _generic_utf8(PUNCT, p)
+#define isSPACE_utf8(p) _generic_utf8(SPACE, p)
+#define isUPPER_utf8(p) _generic_utf8(UPPER, p)
+#define isVERTWS_utf8(p) _generic_utf8(VERTSPACE, p)
+#define isWORDCHAR_utf8(p) _generic_utf8(WORDCHAR, p)
+#define isXDIGIT_utf8(p) _generic_utf8(XDIGIT, p)
+
+#define isALPHA_utf8_safe(p, e) _generic_swash_utf8_safe(_CC_ALPHA, p, e)
+#define isALPHANUMERIC_utf8_safe(p, e) \
+ _generic_swash_utf8_safe(_CC_ALPHANUMERIC, p, e)
+#define isASCII_utf8_safe(p, e) \
+ /* Because ASCII is invariant under utf8, the non-utf8 macro \
+ * works */ \
+ (__ASSERT_(_utf8_safe_assert(p, e)) isASCII(*(p)))
+#define isBLANK_utf8_safe(p, e) \
+ _generic_non_swash_utf8_safe(_CC_BLANK, is_HORIZWS_high, p, e)
#ifdef EBCDIC
/* Because all controls are UTF-8 invariants in EBCDIC, we can use this
* more efficient macro instead of the more general one */
-# define isCNTRL_utf8(p) isCNTRL_L1(*(p))
+# define isCNTRL_utf8_safe(p, e) \
+ (__ASSERT_(_utf8_safe_assert(p, e)) isCNTRL_L1(*(p)))
#else
-# define isCNTRL_utf8(p) _generic_utf8(_CC_CNTRL, p, 0)
+# define isCNTRL_utf8_safe(p, e) _generic_utf8_safe(_CC_CNTRL, p, e, 0)
#endif
-#define isDIGIT_utf8(p) _generic_utf8_no_upper_latin1(_CC_DIGIT, p, \
- _is_utf8_FOO(_CC_DIGIT, p))
-#define isGRAPH_utf8(p) _generic_swash_utf8(_CC_GRAPH, p)
-#define isIDCONT_utf8(p) _generic_func_utf8(_CC_WORDCHAR, \
- _is_utf8_perl_idcont, p)
+#define isDIGIT_utf8_safe(p, e) \
+ _generic_utf8_safe_no_upper_latin1(_CC_DIGIT, p, e, \
+ _is_utf8_FOO_with_len(_CC_DIGIT, p, e))
+#define isGRAPH_utf8_safe(p, e) _generic_swash_utf8_safe(_CC_GRAPH, p, e)
+#define isIDCONT_utf8_safe(p, e) _generic_func_utf8_safe(_CC_WORDCHAR, \
+ _is_utf8_perl_idcont_with_len, p, e)
/* To prevent S_scan_word in toke.c from hanging, we have to make sure that
* IDFIRST is an alnum. See
@@ -1696,65 +1931,133 @@ END_EXTERN_C
* ever wanted to know about. (In the ASCII range, there isn't a difference.)
* This used to be not the XID version, but we decided to go with the more
* modern Unicode definition */
-#define isIDFIRST_utf8(p) _generic_func_utf8(_CC_IDFIRST, \
- _is_utf8_perl_idstart, p)
-
-#define isLOWER_utf8(p) _generic_swash_utf8(_CC_LOWER, p)
-#define isPRINT_utf8(p) _generic_swash_utf8(_CC_PRINT, p)
-#define isPSXSPC_utf8(p) isSPACE_utf8(p)
-#define isPUNCT_utf8(p) _generic_swash_utf8(_CC_PUNCT, p)
-#define isSPACE_utf8(p) _generic_func_utf8(_CC_SPACE, is_XPERLSPACE_high, p)
-#define isUPPER_utf8(p) _generic_swash_utf8(_CC_UPPER, p)
-#define isVERTWS_utf8(p) _generic_func_utf8(_CC_VERTSPACE, is_VERTWS_high, p)
-#define isWORDCHAR_utf8(p) _generic_swash_utf8(_CC_WORDCHAR, p)
-#define isXDIGIT_utf8(p) _generic_utf8_no_upper_latin1(_CC_XDIGIT, p, \
- is_XDIGIT_high(p))
+#define isIDFIRST_utf8_safe(p, e) \
+ _generic_func_utf8_safe(_CC_IDFIRST, \
+ _is_utf8_perl_idstart_with_len, (U8 *) (p), (U8 *) (e))
+
+#define isLOWER_utf8_safe(p, e) _generic_swash_utf8_safe(_CC_LOWER, p, e)
+#define isPRINT_utf8_safe(p, e) _generic_swash_utf8_safe(_CC_PRINT, p, e)
+#define isPSXSPC_utf8_safe(p, e) isSPACE_utf8_safe(p, e)
+#define isPUNCT_utf8_safe(p, e) _generic_swash_utf8_safe(_CC_PUNCT, p, e)
+#define isSPACE_utf8_safe(p, e) \
+ _generic_non_swash_utf8_safe(_CC_SPACE, is_XPERLSPACE_high, p, e)
+#define isUPPER_utf8_safe(p, e) _generic_swash_utf8_safe(_CC_UPPER, p, e)
+#define isVERTWS_utf8_safe(p, e) \
+ _generic_non_swash_utf8_safe(_CC_VERTSPACE, is_VERTWS_high, p, e)
+#define isWORDCHAR_utf8_safe(p, e) \
+ _generic_swash_utf8_safe(_CC_WORDCHAR, p, e)
+#define isXDIGIT_utf8_safe(p, e) \
+ _generic_utf8_safe_no_upper_latin1(_CC_XDIGIT, p, e, \
+ (UNLIKELY((e) - (p) < UTF8SKIP(p)) \
+ ? (_force_out_malformed_utf8_message( \
+ (U8 *) (p), (U8 *) (e), 0, 1), 0) \
+ : is_XDIGIT_high(p)))
#define toFOLD_utf8(p,s,l) to_utf8_fold(p,s,l)
#define toLOWER_utf8(p,s,l) to_utf8_lower(p,s,l)
#define toTITLE_utf8(p,s,l) to_utf8_title(p,s,l)
#define toUPPER_utf8(p,s,l) to_utf8_upper(p,s,l)
+/* For internal core use only, subject to change */
+#define _toFOLD_utf8_flags(p,e,s,l,f) _to_utf8_fold_flags (p,e,s,l,f, "", 0)
+#define _toLOWER_utf8_flags(p,e,s,l,f) _to_utf8_lower_flags(p,e,s,l,f, "", 0)
+#define _toTITLE_utf8_flags(p,e,s,l,f) _to_utf8_title_flags(p,e,s,l,f, "", 0)
+#define _toUPPER_utf8_flags(p,e,s,l,f) _to_utf8_upper_flags(p,e,s,l,f, "", 0)
+
+#define toFOLD_utf8_safe(p,e,s,l) _toFOLD_utf8_flags(p,e,s,l, FOLD_FLAGS_FULL)
+#define toLOWER_utf8_safe(p,e,s,l) _toLOWER_utf8_flags(p,e,s,l, 0)
+#define toTITLE_utf8_safe(p,e,s,l) _toTITLE_utf8_flags(p,e,s,l, 0)
+#define toUPPER_utf8_safe(p,e,s,l) _toUPPER_utf8_flags(p,e,s,l, 0)
+
/* For internal core Perl use only: the base macros for defining macros like
* isALPHA_LC_utf8. These are like _generic_utf8, but if the first code point
* in 'p' is within the 0-255 range, it uses locale rules from the passed-in
* 'macro' parameter */
-#define _generic_LC_utf8(macro, p, utf8) \
- (UTF8_IS_INVARIANT(*(p)) \
- ? macro(*(p)) \
- : (UTF8_IS_DOWNGRADEABLE_START(*(p))) \
- ? macro(EIGHT_BIT_UTF8_TO_NATIVE(*(p), *((p)+1)))\
- : utf8)
-
-#define _generic_LC_swash_utf8(macro, classnum, p) \
- _generic_LC_utf8(macro, p, _is_utf8_FOO(classnum, p))
-#define _generic_LC_func_utf8(macro, above_latin1, p) \
- _generic_LC_utf8(macro, p, above_latin1(p))
-
-#define isALPHANUMERIC_LC_utf8(p) _generic_LC_swash_utf8(isALPHANUMERIC_LC, \
- _CC_ALPHANUMERIC, p)
-#define isALPHA_LC_utf8(p) _generic_LC_swash_utf8(isALPHA_LC, _CC_ALPHA, p)
-#define isASCII_LC_utf8(p) isASCII_LC(*p)
-#define isBLANK_LC_utf8(p) _generic_LC_func_utf8(isBLANK_LC, \
- is_HORIZWS_high, p)
-#define isCNTRL_LC_utf8(p) _generic_LC_utf8(isCNTRL_LC, p, 0)
-#define isDIGIT_LC_utf8(p) _generic_LC_swash_utf8(isDIGIT_LC, _CC_DIGIT, p)
-#define isGRAPH_LC_utf8(p) _generic_LC_swash_utf8(isGRAPH_LC, _CC_GRAPH, p)
-#define isIDCONT_LC_utf8(p) _generic_LC_func_utf8(isIDCONT_LC, \
- _is_utf8_perl_idcont, p)
-#define isIDFIRST_LC_utf8(p) _generic_LC_func_utf8(isIDFIRST_LC, \
- _is_utf8_perl_idstart, p)
-#define isLOWER_LC_utf8(p) _generic_LC_swash_utf8(isLOWER_LC, _CC_LOWER, p)
-#define isPRINT_LC_utf8(p) _generic_LC_swash_utf8(isPRINT_LC, _CC_PRINT, p)
-#define isPSXSPC_LC_utf8(p) isSPACE_LC_utf8(p)
-#define isPUNCT_LC_utf8(p) _generic_LC_swash_utf8(isPUNCT_LC, _CC_PUNCT, p)
-#define isSPACE_LC_utf8(p) _generic_LC_func_utf8(isSPACE_LC, \
- is_XPERLSPACE_high, p)
-#define isUPPER_LC_utf8(p) _generic_LC_swash_utf8(isUPPER_LC, _CC_UPPER, p)
-#define isWORDCHAR_LC_utf8(p) _generic_LC_swash_utf8(isWORDCHAR_LC, \
- _CC_WORDCHAR, p)
-#define isXDIGIT_LC_utf8(p) _generic_LC_func_utf8(isXDIGIT_LC, \
- is_XDIGIT_high, p)
+#define _generic_LC_utf8(name, p) _base_generic_utf8(name, name, p, 1)
+
+#define isALPHA_LC_utf8(p) _generic_LC_utf8(ALPHA, p)
+#define isALPHANUMERIC_LC_utf8(p) _generic_LC_utf8(ALPHANUMERIC, p)
+#define isASCII_LC_utf8(p) _generic_LC_utf8(ASCII, p)
+#define isBLANK_LC_utf8(p) _generic_LC_utf8(BLANK, p)
+#define isCNTRL_LC_utf8(p) _generic_LC_utf8(CNTRL, p)
+#define isDIGIT_LC_utf8(p) _generic_LC_utf8(DIGIT, p)
+#define isGRAPH_LC_utf8(p) _generic_LC_utf8(GRAPH, p)
+#define isIDCONT_LC_utf8(p) _generic_LC_utf8(IDCONT, p)
+#define isIDFIRST_LC_utf8(p) _generic_LC_utf8(IDFIRST, p)
+#define isLOWER_LC_utf8(p) _generic_LC_utf8(LOWER, p)
+#define isPRINT_LC_utf8(p) _generic_LC_utf8(PRINT, p)
+#define isPSXSPC_LC_utf8(p) _generic_LC_utf8(PSXSPC, p)
+#define isPUNCT_LC_utf8(p) _generic_LC_utf8(PUNCT, p)
+#define isSPACE_LC_utf8(p) _generic_LC_utf8(SPACE, p)
+#define isUPPER_LC_utf8(p) _generic_LC_utf8(UPPER, p)
+#define isWORDCHAR_LC_utf8(p) _generic_LC_utf8(WORDCHAR, p)
+#define isXDIGIT_LC_utf8(p) _generic_LC_utf8(XDIGIT, p)
+
+/* For internal core Perl use only: the base macros for defining macros like
+ * isALPHA_LC_utf8_safe. These are like _generic_utf8, but if the first code
+ * point in 'p' is within the 0-255 range, it uses locale rules from the
+ * passed-in 'macro' parameter */
+#define _generic_LC_utf8_safe(macro, p, e, above_latin1) \
+ (__ASSERT_(_utf8_safe_assert(p, e)) \
+ (UTF8_IS_INVARIANT(*(p))) \
+ ? macro(*(p)) \
+ : (UTF8_IS_DOWNGRADEABLE_START(*(p)) \
+ ? ((LIKELY((e) - (p) > 1 && UTF8_IS_CONTINUATION(*((p)+1)))) \
+ ? macro(EIGHT_BIT_UTF8_TO_NATIVE(*(p), *((p)+1))) \
+ : (_force_out_malformed_utf8_message( \
+ (U8 *) (p), (U8 *) (e), 0, 1), 0)) \
+ : above_latin1))
+
+#define _generic_LC_swash_utf8_safe(macro, classnum, p, e) \
+ _generic_LC_utf8_safe(macro, p, e, \
+ _is_utf8_FOO_with_len(classnum, p, e))
+
+#define _generic_LC_func_utf8_safe(macro, above_latin1, p, e) \
+ _generic_LC_utf8_safe(macro, p, e, above_latin1(p, e))
+
+#define _generic_LC_non_swash_utf8_safe(classnum, above_latin1, p, e) \
+ _generic_LC_utf8_safe(classnum, p, e, \
+ (UNLIKELY((e) - (p) < UTF8SKIP(p)) \
+ ? (_force_out_malformed_utf8_message( \
+ (U8 *) (p), (U8 *) (e), 0, 1), 0) \
+ : above_latin1(p)))
+
+#define isALPHANUMERIC_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isALPHANUMERIC_LC, \
+ _CC_ALPHANUMERIC, p, e)
+#define isALPHA_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isALPHA_LC, _CC_ALPHA, p, e)
+#define isASCII_LC_utf8_safe(p, e) \
+ (__ASSERT_(_utf8_safe_assert(p, e)) isASCII_LC(*(p)))
+#define isBLANK_LC_utf8_safe(p, e) \
+ _generic_LC_non_swash_utf8_safe(isBLANK_LC, is_HORIZWS_high, p, e)
+#define isCNTRL_LC_utf8_safe(p, e) \
+ _generic_LC_utf8_safe(isCNTRL_LC, p, e, 0)
+#define isDIGIT_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isDIGIT_LC, _CC_DIGIT, p, e)
+#define isGRAPH_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isGRAPH_LC, _CC_GRAPH, p, e)
+#define isIDCONT_LC_utf8_safe(p, e) \
+ _generic_LC_func_utf8_safe(isIDCONT_LC, \
+ _is_utf8_perl_idcont_with_len, p, e)
+#define isIDFIRST_LC_utf8_safe(p, e) \
+ _generic_LC_func_utf8_safe(isIDFIRST_LC, \
+ _is_utf8_perl_idstart_with_len, p, e)
+#define isLOWER_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isLOWER_LC, _CC_LOWER, p, e)
+#define isPRINT_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isPRINT_LC, _CC_PRINT, p, e)
+#define isPSXSPC_LC_utf8_safe(p, e) isSPACE_LC_utf8_safe(p, e)
+#define isPUNCT_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isPUNCT_LC, _CC_PUNCT, p, e)
+#define isSPACE_LC_utf8_safe(p, e) \
+ _generic_LC_non_swash_utf8_safe(isSPACE_LC, is_XPERLSPACE_high, p, e)
+#define isUPPER_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isUPPER_LC, _CC_UPPER, p, e)
+#define isWORDCHAR_LC_utf8_safe(p, e) \
+ _generic_LC_swash_utf8_safe(isWORDCHAR_LC, _CC_WORDCHAR, p, e)
+#define isXDIGIT_LC_utf8_safe(p, e) \
+ _generic_LC_non_swash_utf8_safe(isXDIGIT_LC, is_XDIGIT_high, p, e)
/* Macros for backwards compatibility and for completeness when the ASCII and
* Latin1 values are identical */
@@ -1860,7 +2163,7 @@ typedef U32 line_t;
=for apidoc Am|void|Newx|void* ptr|int nitems|type
The XSUB-writer's interface to the C C<malloc> function.
-Memory obtained by this should B<ONLY> be freed with L<"Safefree">.
+Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
In 5.9.3, Newx() and friends replace the older New() API, and drops
the first parameter, I<x>, a debug aid which allowed callers to identify
@@ -1872,29 +2175,29 @@ there for use in XS modules supporting older perls.
The XSUB-writer's interface to the C C<malloc> function, with
cast. See also C<L</Newx>>.
-Memory obtained by this should B<ONLY> be freed with L<"Safefree">.
+Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
=for apidoc Am|void|Newxz|void* ptr|int nitems|type
The XSUB-writer's interface to the C C<malloc> function. The allocated
memory is zeroed with C<memzero>. See also C<L</Newx>>.
-Memory obtained by this should B<ONLY> be freed with L<"Safefree">.
+Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
=for apidoc Am|void|Renew|void* ptr|int nitems|type
The XSUB-writer's interface to the C C<realloc> function.
-Memory obtained by this should B<ONLY> be freed with L<"Safefree">.
+Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
=for apidoc Am|void|Renewc|void* ptr|int nitems|type|cast
The XSUB-writer's interface to the C C<realloc> function, with
cast.
-Memory obtained by this should B<ONLY> be freed with L<"Safefree">.
+Memory obtained by this should B<ONLY> be freed with L</"Safefree">.
=for apidoc Am|void|Safefree|void* ptr
The XSUB-writer's interface to the C C<free> function.
-This should B<ONLY> be used on memory obtained using L<"Newx"> and friends.
+This should B<ONLY> be used on memory obtained using L</"Newx"> and friends.
=for apidoc Am|void|Move|void* src|void* dest|int nitems|type
The XSUB-writer's interface to the C C<memmove> function. The C<src> is the
@@ -2179,6 +2482,12 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
#ifdef PERL_CORE
# define deprecate(s) Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED), \
"Use of " s " is deprecated")
+# define deprecate_disappears_in(when,message) \
+ Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED), \
+ message ", and will disappear in Perl " when)
+# define deprecate_fatal_in(when,message) \
+ Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED), \
+ message ". Its use will be fatal in Perl " when)
#endif
/* Internal macros to deal with gids and uids */
diff --git a/Master/tlpkg/tlperl/lib/CORE/hv.h b/Master/tlpkg/tlperl/lib/CORE/hv.h
index b97b22425e9..8411b5d31fe 100644
--- a/Master/tlpkg/tlperl/lib/CORE/hv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/hv.h
@@ -43,12 +43,17 @@ struct he {
/* hash key -- defined separately for use as shared pointer */
struct hek {
- U32 hek_hash; /* hash of key */
- I32 hek_len; /* length of hash key */
- char hek_key[1]; /* variable-length hash key */
+ U32 hek_hash; /* computed hash of key */
+ I32 hek_len; /* length of the hash key */
+ /* Be careful! Sometimes we store a pointer in the hek_key
+ * buffer, which means it must be 8 byte aligned or things
+ * dont work on aligned platforms like HPUX
+ * Also beware, the last byte of the hek_key buffer is a
+ * hidden flags byte about the key. */
+ char hek_key[1]; /* variable-length hash key */
/* the hash-key is \0-terminated */
/* after the \0 there is a byte for flags, such as whether the key
- is UTF-8 */
+ is UTF-8 or WAS-UTF-8, or an SV */
};
struct shared_he {
@@ -119,7 +124,6 @@ struct xpvhv_aux {
U32 xhv_last_rand; /* last random value for hash traversal,
used to detect each() after insert for warnings */
#endif
- U32 xhv_fill_lazy;
U32 xhv_aux_flags; /* assorted extra flags */
};
@@ -321,7 +325,7 @@ C<SV*>.
((SvOOK(hv) && HvAUX(hv)->xhv_name_u.xhvnameu_name && HvAUX(hv)->xhv_name_count != -1) \
? HEK_UTF8(HvENAME_HEK_NN(hv)) : 0)
-/* the number of keys (including any placeholders) */
+/* the number of keys (including any placeholders) - NOT PART OF THE API */
#define XHvTOTALKEYS(xhv) ((xhv)->xhv_keys)
/*
@@ -457,8 +461,7 @@ C<SV*>.
(val), (hash)))
#define hv_exists_ent(hv, keysv, hash) \
- (hv_common((hv), (keysv), NULL, 0, 0, HV_FETCH_ISEXISTS, 0, (hash)) \
- ? TRUE : FALSE)
+ cBOOL(hv_common((hv), (keysv), NULL, 0, 0, HV_FETCH_ISEXISTS, 0, (hash)))
#define hv_fetch_ent(hv, keysv, lval, hash) \
((HE *) hv_common((hv), (keysv), NULL, 0, 0, \
((lval) ? HV_FETCH_LVALUE : 0), NULL, (hash)))
@@ -476,9 +479,10 @@ C<SV*>.
(HV_FETCH_ISSTORE|HV_FETCH_JUST_SV), \
(val), (hash)))
+
+
#define hv_exists(hv, key, klen) \
- (hv_common_key_len((hv), (key), (klen), HV_FETCH_ISEXISTS, NULL, 0) \
- ? TRUE : FALSE)
+ cBOOL(hv_common_key_len((hv), (key), (klen), HV_FETCH_ISEXISTS, NULL, 0))
#define hv_fetch(hv, key, klen, lval) \
((SV**) hv_common_key_len((hv), (key), (klen), (lval) \
@@ -489,6 +493,24 @@ C<SV*>.
(MUTABLE_SV(hv_common_key_len((hv), (key), (klen), \
(flags) | HV_DELETE, NULL, 0)))
+/* Provide 's' suffix subs for constant strings (and avoid needing to count
+ * chars). See STR_WITH_LEN in handy.h - because these are macros we cant use
+ * STR_WITH_LEN to do the work, we have to unroll it. */
+#define hv_existss(hv, key) \
+ hv_exists((hv), ("" key ""), (sizeof(key)-1))
+
+#define hv_fetchs(hv, key, lval) \
+ hv_fetch((hv), ("" key ""), (sizeof(key)-1), (lval))
+
+#define hv_deletes(hv, key, flags) \
+ hv_delete((hv), ("" key ""), (sizeof(key)-1), (flags))
+
+#define hv_name_sets(hv, name, flags) \
+ hv_name_set((hv),("" name ""),(sizeof(name)-1), flags)
+
+#define hv_stores(hv, key, val) \
+ hv_store((hv), ("" key ""), (sizeof(key)-1), (val), 0)
+
#ifdef PERL_CORE
# define hv_storehek(hv, hek, val) \
hv_common((hv), NULL, HEK_KEY(hek), HEK_LEN(hek), HEK_UTF8(hek), \
diff --git a/Master/tlpkg/tlperl/lib/CORE/hv_func.h b/Master/tlpkg/tlperl/lib/CORE/hv_func.h
index 8866db909f3..d10b5e1d5ef 100755
--- a/Master/tlpkg/tlperl/lib/CORE/hv_func.h
+++ b/Master/tlpkg/tlperl/lib/CORE/hv_func.h
@@ -14,59 +14,33 @@
#if !( 0 \
|| defined(PERL_HASH_FUNC_SIPHASH) \
- || defined(PERL_HASH_FUNC_SDBM) \
- || defined(PERL_HASH_FUNC_DJB2) \
- || defined(PERL_HASH_FUNC_SUPERFAST) \
- || defined(PERL_HASH_FUNC_MURMUR3) \
- || defined(PERL_HASH_FUNC_ONE_AT_A_TIME) \
+ || defined(PERL_HASH_FUNC_SIPHASH13) \
+ || defined(PERL_HASH_FUNC_HYBRID_OAATHU_SIPHASH13) \
|| defined(PERL_HASH_FUNC_ONE_AT_A_TIME_HARD) \
- || defined(PERL_HASH_FUNC_ONE_AT_A_TIME_OLD) \
- || defined(PERL_HASH_FUNC_MURMUR_HASH_64A) \
- || defined(PERL_HASH_FUNC_MURMUR_HASH_64B) \
)
+#if IVSIZE == 8
+#define PERL_HASH_FUNC_HYBRID_OAATHU_SIPHASH13
+#else
#define PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
#endif
+#endif
#if defined(PERL_HASH_FUNC_SIPHASH)
# define PERL_HASH_FUNC "SIPHASH_2_4"
# define PERL_HASH_SEED_BYTES 16
# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_siphash_2_4((seed),(U8*)(str),(len))
-#elif defined(PERL_HASH_FUNC_SUPERFAST)
-# define PERL_HASH_FUNC "SUPERFAST"
-# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_superfast((seed),(U8*)(str),(len))
-#elif defined(PERL_HASH_FUNC_MURMUR3)
-# define PERL_HASH_FUNC "MURMUR3"
-# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_murmur3((seed),(U8*)(str),(len))
-#elif defined(PERL_HASH_FUNC_DJB2)
-# define PERL_HASH_FUNC "DJB2"
-# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_djb2((seed),(U8*)(str),(len))
-#elif defined(PERL_HASH_FUNC_SDBM)
-# define PERL_HASH_FUNC "SDBM"
-# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_sdbm((seed),(U8*)(str),(len))
+#elif defined(PERL_HASH_FUNC_SIPHASH13)
+# define PERL_HASH_FUNC "SIPHASH_1_3"
+# define PERL_HASH_SEED_BYTES 16
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_siphash_1_3((seed),(U8*)(str),(len))
+#elif defined(PERL_HASH_FUNC_HYBRID_OAATHU_SIPHASH13)
+# define PERL_HASH_FUNC "HYBRID_OAATHU_SIPHASH_1_3"
+# define PERL_HASH_SEED_BYTES 24
+# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_oaathu_siphash_1_3((seed),(U8*)(str),(len))
#elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME_HARD)
# define PERL_HASH_FUNC "ONE_AT_A_TIME_HARD"
# define PERL_HASH_SEED_BYTES 8
# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_one_at_a_time_hard((seed),(U8*)(str),(len))
-#elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME)
-# define PERL_HASH_FUNC "ONE_AT_A_TIME"
-# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_one_at_a_time((seed),(U8*)(str),(len))
-#elif defined(PERL_HASH_FUNC_ONE_AT_A_TIME_OLD)
-# define PERL_HASH_FUNC "ONE_AT_A_TIME_OLD"
-# define PERL_HASH_SEED_BYTES 4
-# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_old_one_at_a_time((seed),(U8*)(str),(len))
-#elif defined(PERL_HASH_FUNC_MURMUR_HASH_64A)
-# define PERL_HASH_FUNC "MURMUR_HASH_64A"
-# define PERL_HASH_SEED_BYTES 8
-# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_murmur_hash_64a((seed),(U8*)(str),(len))
-#elif defined(PERL_HASH_FUNC_MURMUR_HASH_64B)
-# define PERL_HASH_FUNC "MURMUR_HASH_64B"
-# define PERL_HASH_SEED_BYTES 8
-# define PERL_HASH_WITH_SEED(seed,hash,str,len) (hash)= S_perl_hash_murmur_hash_64b((seed),(U8*)(str),(len))
#endif
#ifndef PERL_HASH_WITH_SEED
@@ -95,6 +69,11 @@
#define PERL_HASH(hash,str,len) PERL_HASH_WITH_SEED(PERL_HASH_SEED,hash,str,len)
+/* legacy - only mod_perl should be doing this. */
+#ifdef PERL_HASH_INTERNAL_ACCESS
+#define PERL_HASH_INTERNAL(hash,str,len) PERL_HASH(hash,str,len)
+#endif
+
/*-----------------------------------------------------------------------------
* Endianess, misalignment capabilities and util macros
*
@@ -118,7 +97,7 @@
#if (BYTEORDER == 0x1234 || BYTEORDER == 0x12345678) && U32SIZE == 4
/* CPU endian matches murmurhash algorithm, so read 32-bit word directly */
- #define U8TO32_LE(ptr) (*((U32*)(ptr)))
+ #define U8TO32_LE(ptr) (*((const U32*)(ptr)))
#elif BYTEORDER == 0x4321 || BYTEORDER == 0x87654321
/* TODO: Add additional cases below where a compiler provided bswap32 is available */
#if defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 && __GNUC_MINOR__>=3))
@@ -192,333 +171,99 @@
((U64)((p)[7]) << 56))
#define SIPROUND \
- do { \
+ STMT_START { \
v0 += v1; v1=ROTL64(v1,13); v1 ^= v0; v0=ROTL64(v0,32); \
v2 += v3; v3=ROTL64(v3,16); v3 ^= v2; \
v0 += v3; v3=ROTL64(v3,21); v3 ^= v0; \
v2 += v1; v1=ROTL64(v1,17); v1 ^= v2; v2=ROTL64(v2,32); \
- } while(0)
+ } STMT_END
/* SipHash-2-4 */
-PERL_STATIC_INLINE U32
-S_perl_hash_siphash_2_4(const unsigned char * const seed, const unsigned char *in, const STRLEN inlen) {
- /* "somepseudorandomlygeneratedbytes" */
- U64 v0 = UINT64_C(0x736f6d6570736575);
- U64 v1 = UINT64_C(0x646f72616e646f6d);
- U64 v2 = UINT64_C(0x6c7967656e657261);
- U64 v3 = UINT64_C(0x7465646279746573);
-
- U64 b;
- U64 k0 = ((U64*)seed)[0];
- U64 k1 = ((U64*)seed)[1];
- U64 m;
- const int left = inlen & 7;
- const U8 *end = in + inlen - left;
-
- b = ( ( U64 )(inlen) ) << 56;
- v3 ^= k1;
- v2 ^= k0;
- v1 ^= k1;
- v0 ^= k0;
-
- for ( ; in != end; in += 8 )
- {
- m = U8TO64_LE( in );
- v3 ^= m;
- SIPROUND;
- SIPROUND;
- v0 ^= m;
- }
-
- switch( left )
- {
- case 7: b |= ( ( U64 )in[ 6] ) << 48;
- case 6: b |= ( ( U64 )in[ 5] ) << 40;
- case 5: b |= ( ( U64 )in[ 4] ) << 32;
- case 4: b |= ( ( U64 )in[ 3] ) << 24;
- case 3: b |= ( ( U64 )in[ 2] ) << 16;
- case 2: b |= ( ( U64 )in[ 1] ) << 8;
- case 1: b |= ( ( U64 )in[ 0] ); break;
- case 0: break;
- }
-
- v3 ^= b;
- SIPROUND;
- SIPROUND;
- v0 ^= b;
-
- v2 ^= 0xff;
- SIPROUND;
- SIPROUND;
- SIPROUND;
- SIPROUND;
- b = v0 ^ v1 ^ v2 ^ v3;
- return (U32)(b & U32_MAX);
-}
-#endif /* defined(HAS_QUAD) */
-
-/* FYI: This is the "Super-Fast" algorithm mentioned by Bob Jenkins in
- * (http://burtleburtle.net/bob/hash/doobs.html)
- * It is by Paul Hsieh (c) 2004 and is analysed here
- * http://www.azillionmonkeys.com/qed/hash.html
- * license terms are here:
- * http://www.azillionmonkeys.com/qed/weblicense.html
- */
-
-
-PERL_STATIC_INLINE U32
-S_perl_hash_superfast(const unsigned char * const seed, const unsigned char *str, STRLEN len) {
- U32 hash = *((U32*)seed) + (U32)len;
- U32 tmp;
- int rem= len & 3;
- len >>= 2;
-
- for (;len > 0; len--) {
- hash += U8TO16_LE (str);
- tmp = (U8TO16_LE (str+2) << 11) ^ hash;
- hash = (hash << 16) ^ tmp;
- str += 2 * sizeof (U16);
- hash += hash >> 11;
- }
-
- /* Handle end cases */
- switch (rem) { \
- case 3: hash += U8TO16_LE (str);
- hash ^= hash << 16;
- hash ^= str[sizeof (U16)] << 18;
- hash += hash >> 11;
- break;
- case 2: hash += U8TO16_LE (str);
- hash ^= hash << 11;
- hash += hash >> 17;
- break;
- case 1: hash += *str;
- hash ^= hash << 10;
- hash += hash >> 1;
- }
- /* Force "avalanching" of final 127 bits */
- hash ^= hash << 3;
- hash += hash >> 5;
- hash ^= hash << 4;
- hash += hash >> 17;
- hash ^= hash << 25;
- return (hash + (hash >> 6));
-}
-
-
-/*-----------------------------------------------------------------------------
- * MurmurHash3 was written by Austin Appleby, and is placed in the public
- * domain.
- *
- * This implementation was originally written by Shane Day, and is also public domain,
- * and was modified to function as a macro similar to other perl hash functions by
- * Yves Orton.
- *
- * This is a portable ANSI C implementation of MurmurHash3_x86_32 (Murmur3A)
- * with support for progressive processing.
- *
- * If you want to understand the MurmurHash algorithm you would be much better
- * off reading the original source. Just point your browser at:
- * http://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp
- *
- * How does it work?
- *
- * We can only process entire 32 bit chunks of input, except for the very end
- * that may be shorter.
- *
- * To handle endianess I simply use a macro that reads a U32 and define
- * that macro to be a direct read on little endian machines, a read and swap
- * on big endian machines, or a byte-by-byte read if the endianess is unknown.
- */
-
-
-/*-----------------------------------------------------------------------------
- * Core murmurhash algorithm macros */
-
-#define MURMUR_C1 (0xcc9e2d51)
-#define MURMUR_C2 (0x1b873593)
-#define MURMUR_C3 (0xe6546b64)
-#define MURMUR_C4 (0x85ebca6b)
-#define MURMUR_C5 (0xc2b2ae35)
-
-/* This is the main processing body of the algorithm. It operates
- * on each full 32-bits of input. */
-#define MURMUR_DOBLOCK(h1, k1) STMT_START { \
- k1 *= MURMUR_C1; \
- k1 = ROTL32(k1,15); \
- k1 *= MURMUR_C2; \
- \
- h1 ^= k1; \
- h1 = ROTL32(h1,13); \
- h1 = h1 * 5 + MURMUR_C3; \
-} STMT_END
-
-
-/* Append unaligned bytes to carry, forcing hash churn if we have 4 bytes */
-/* cnt=bytes to process, h1=name of h1 var, c=carry, n=bytes in c, ptr/len=payload */
-#define MURMUR_DOBYTES(cnt, h1, c, n, ptr, len) STMT_START { \
- int MURMUR_DOBYTES_i = cnt; \
- while(MURMUR_DOBYTES_i--) { \
- c = c>>8 | *ptr++<<24; \
- n++; len--; \
- if(n==4) { \
- MURMUR_DOBLOCK(h1, c); \
- n = 0; \
- } \
- } \
-} STMT_END
-
-
-/* now we create the hash function */
-PERL_STATIC_INLINE U32
-S_perl_hash_murmur3(const unsigned char * const seed, const unsigned char *ptr, STRLEN len) {
- U32 h1 = *((U32*)seed);
- U32 k1;
- U32 carry = 0;
-
- const unsigned char *end;
- int bytes_in_carry = 0; /* bytes in carry */
- I32 total_length= (I32)len;
-
-#if defined(UNALIGNED_SAFE)
- /* Handle carry: commented out as its only used in incremental mode - it never fires for us
- int i = (4-n) & 3;
- if(i && i <= len) {
- MURMUR_DOBYTES(i, h1, carry, bytes_in_carry, ptr, len);
- }
- */
-
- /* This CPU handles unaligned word access */
- /* Process 32-bit chunks */
- end = ptr + len/4*4;
- for( ; ptr < end ; ptr+=4) {
- k1 = U8TO32_LE(ptr);
- MURMUR_DOBLOCK(h1, k1);
- }
-#else
- /* This CPU does not handle unaligned word access */
-
- /* Consume enough so that the next data byte is word aligned */
- STRLEN i = -PTR2IV(ptr) & 3;
- if(i && i <= len) {
- MURMUR_DOBYTES((int)i, h1, carry, bytes_in_carry, ptr, len);
- }
- /* We're now aligned. Process in aligned blocks. Specialise for each possible carry count */
- end = ptr + len/4*4;
- switch(bytes_in_carry) { /* how many bytes in carry */
- case 0: /* c=[----] w=[3210] b=[3210]=w c'=[----] */
- for( ; ptr < end ; ptr+=4) {
- k1 = U8TO32_LE(ptr);
- MURMUR_DOBLOCK(h1, k1);
- }
- break;
- case 1: /* c=[0---] w=[4321] b=[3210]=c>>24|w<<8 c'=[4---] */
- for( ; ptr < end ; ptr+=4) {
- k1 = carry>>24;
- carry = U8TO32_LE(ptr);
- k1 |= carry<<8;
- MURMUR_DOBLOCK(h1, k1);
- }
- break;
- case 2: /* c=[10--] w=[5432] b=[3210]=c>>16|w<<16 c'=[54--] */
- for( ; ptr < end ; ptr+=4) {
- k1 = carry>>16;
- carry = U8TO32_LE(ptr);
- k1 |= carry<<16;
- MURMUR_DOBLOCK(h1, k1);
- }
- break;
- case 3: /* c=[210-] w=[6543] b=[3210]=c>>8|w<<24 c'=[654-] */
- for( ; ptr < end ; ptr+=4) {
- k1 = carry>>8;
- carry = U8TO32_LE(ptr);
- k1 |= carry<<24;
- MURMUR_DOBLOCK(h1, k1);
- }
- }
-#endif
- /* Advance over whole 32-bit chunks, possibly leaving 1..3 bytes */
- len -= len/4*4;
-
- /* Append any remaining bytes into carry */
- MURMUR_DOBYTES((int)len, h1, carry, bytes_in_carry, ptr, len);
-
- if (bytes_in_carry) {
- k1 = carry >> ( 4 - bytes_in_carry ) * 8;
- k1 *= MURMUR_C1;
- k1 = ROTL32(k1,15);
- k1 *= MURMUR_C2;
- h1 ^= k1;
- }
- h1 ^= total_length;
-
- /* fmix */
- h1 ^= h1 >> 16;
- h1 *= MURMUR_C4;
- h1 ^= h1 >> 13;
- h1 *= MURMUR_C5;
- h1 ^= h1 >> 16;
- return h1;
+#define PERL_SIPHASH_FNC(FNC,SIP_ROUNDS,SIP_FINAL_ROUNDS) \
+PERL_STATIC_INLINE U32 \
+FNC(const unsigned char * const seed, const unsigned char *in, const STRLEN inlen) { \
+ /* "somepseudorandomlygeneratedbytes" */ \
+ U64 v0 = UINT64_C(0x736f6d6570736575); \
+ U64 v1 = UINT64_C(0x646f72616e646f6d); \
+ U64 v2 = UINT64_C(0x6c7967656e657261); \
+ U64 v3 = UINT64_C(0x7465646279746573); \
+ \
+ U64 b; \
+ U64 k0 = ((const U64*)seed)[0]; \
+ U64 k1 = ((const U64*)seed)[1]; \
+ U64 m; \
+ const int left = inlen & 7; \
+ const U8 *end = in + inlen - left; \
+ \
+ b = ( ( U64 )(inlen) ) << 56; \
+ v3 ^= k1; \
+ v2 ^= k0; \
+ v1 ^= k1; \
+ v0 ^= k0; \
+ \
+ for ( ; in != end; in += 8 ) \
+ { \
+ m = U8TO64_LE( in ); \
+ v3 ^= m; \
+ \
+ SIP_ROUNDS; \
+ \
+ v0 ^= m; \
+ } \
+ \
+ switch( left ) \
+ { \
+ case 7: b |= ( ( U64 )in[ 6] ) << 48; \
+ case 6: b |= ( ( U64 )in[ 5] ) << 40; \
+ case 5: b |= ( ( U64 )in[ 4] ) << 32; \
+ case 4: b |= ( ( U64 )in[ 3] ) << 24; \
+ case 3: b |= ( ( U64 )in[ 2] ) << 16; \
+ case 2: b |= ( ( U64 )in[ 1] ) << 8; \
+ case 1: b |= ( ( U64 )in[ 0] ); break; \
+ case 0: break; \
+ } \
+ \
+ v3 ^= b; \
+ \
+ SIP_ROUNDS; \
+ \
+ v0 ^= b; \
+ \
+ v2 ^= 0xff; \
+ \
+ SIP_FINAL_ROUNDS \
+ \
+ b = v0 ^ v1 ^ v2 ^ v3; \
+ return (U32)(b & U32_MAX); \
}
+PERL_SIPHASH_FNC(
+ S_perl_hash_siphash_1_3
+ ,SIPROUND;
+ ,SIPROUND;SIPROUND;SIPROUND;
+)
-PERL_STATIC_INLINE U32
-S_perl_hash_djb2(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
- const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed) + (U32)len;
- while (str < end) {
- hash = ((hash << 5) + hash) + *str++;
- }
- return hash;
-}
+PERL_SIPHASH_FNC(
+ S_perl_hash_siphash_2_4
+ ,SIPROUND;SIPROUND;
+ ,SIPROUND;SIPROUND;SIPROUND;SIPROUND;
+)
-PERL_STATIC_INLINE U32
-S_perl_hash_sdbm(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
- const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed) + (U32)len;
- while (str < end) {
- hash = (hash << 6) + (hash << 16) - hash + *str++;
- }
- return hash;
-}
+#endif /* defined(HAS_QUAD) */
-/* - ONE_AT_A_TIME_HARD is the 5.17+ recommend ONE_AT_A_TIME algorithm
- * - ONE_AT_A_TIME_OLD is the unmodified 5.16 and older algorithm
- * - ONE_AT_A_TIME is a 5.17+ tweak of ONE_AT_A_TIME_OLD to
- * prevent strings of only \0 but different lengths from colliding
- *
- * Security-wise, from best to worst,
- * ONE_AT_A_TIME_HARD > ONE_AT_A_TIME > ONE_AT_A_TIME_OLD
- * There is a big drop-off in security between ONE_AT_A_TIME_HARD and
- * ONE_AT_A_TIME
- * */
+/* - ONE_AT_A_TIME_HARD is the 5.17+ recommend ONE_AT_A_TIME variant */
-/* This is the "One-at-a-Time" algorithm by Bob Jenkins
+/* This is derived from the "One-at-a-Time" algorithm by Bob Jenkins
* from requirements by Colin Plumb.
* (http://burtleburtle.net/bob/hash/doobs.html)
- * With seed/len tweak.
- * */
-PERL_STATIC_INLINE U32
-S_perl_hash_one_at_a_time(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
- const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed) + (U32)len;
- while (str < end) {
- hash += *str++;
- hash += (hash << 10);
- hash ^= (hash >> 6);
- }
- hash += (hash << 3);
- hash ^= (hash >> 11);
- return (hash + (hash << 15));
-}
-
-/* Derived from "One-at-a-Time" algorithm by Bob Jenkins */
+ * Modified by Yves Orton to increase security for Perl 5.17 and later.
+ */
PERL_STATIC_INLINE U32
S_perl_hash_one_at_a_time_hard(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed) + (U32)len;
+ U32 hash = *((const U32*)seed) + (U32)len;
while (str < end) {
hash += (hash << 10);
@@ -550,152 +295,108 @@ S_perl_hash_one_at_a_time_hard(const unsigned char * const seed, const unsigned
return (hash + (hash << 15));
}
-PERL_STATIC_INLINE U32
-S_perl_hash_old_one_at_a_time(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
- const unsigned char * const end = (const unsigned char *)str + len;
- U32 hash = *((U32*)seed);
- while (str < end) {
- hash += *str++;
- hash += (hash << 10);
- hash ^= (hash >> 6);
- }
- hash += (hash << 3);
- hash ^= (hash >> 11);
- return (hash + (hash << 15));
-}
-
-#ifdef PERL_HASH_FUNC_MURMUR_HASH_64A
-/* This code is from Austin Appleby and is in the public domain.
- Altered by Yves Orton to match Perl's hash interface, and to
- return a 32 bit hash.
-
- Note uses unaligned 64 bit loads - will NOT work on machines with
- strict alignment requirements.
-
- Also this code may not be suitable for big-endian machines.
-*/
-
-/* a 64 bit hash where we only use the low 32 bits */
-PERL_STATIC_INLINE U32
-S_perl_hash_murmur_hash_64a (const unsigned char * const seed, const unsigned char *str, const STRLEN len)
-{
- const U64 m = UINT64_C(0xc6a4a7935bd1e995);
- const int r = 47;
- U64 h = *((U64*)seed) ^ len;
- const U64 * data = (const U64 *)str;
- const U64 * end = data + (len/8);
- const unsigned char * data2;
-
- while(data != end)
- {
- U64 k = *data++;
-
- k *= m;
- k ^= k >> r;
- k *= m;
-
- h ^= k;
- h *= m;
- }
-
- data2 = (const unsigned char *)data;
-
- switch(len & 7)
- {
- case 7: h ^= (U64)(data2[6]) << 48; /* fallthrough */
- case 6: h ^= (U64)(data2[5]) << 40; /* fallthrough */
- case 5: h ^= (U64)(data2[4]) << 32; /* fallthrough */
- case 4: h ^= (U64)(data2[3]) << 24; /* fallthrough */
- case 3: h ^= (U64)(data2[2]) << 16; /* fallthrough */
- case 2: h ^= (U64)(data2[1]) << 8; /* fallthrough */
- case 1: h ^= (U64)(data2[0]); /* fallthrough */
- h *= m;
- };
-
- h ^= h >> r;
- h *= m;
- h ^= h >> r;
-
- /* was: return h; */
- return h & 0xFFFFFFFF;
-}
-
-#endif
-
-#ifdef PERL_HASH_FUNC_MURMUR_HASH_64B
-/* This code is from Austin Appleby and is in the public domain.
- Altered by Yves Orton to match Perl's hash interface and return
- a 32 bit value
-
- Note uses unaligned 32 bit loads - will NOT work on machines with
- strict alignment requirements.
-
- Also this code may not be suitable for big-endian machines.
-*/
+#ifdef HAS_QUAD
-/* a 64-bit hash for 32-bit platforms where we only use the low 32 bits */
+/* Hybrid hash function
+ *
+ * For short strings, 16 bytes or shorter, we use an optimised variant
+ * of One At A Time Hard, and for longer strings, we use siphash_1_3.
+ *
+ * The optimisation of One At A Time Hard means we read the key in
+ * reverse from normal, but by doing so we avoid the loop overhead.
+ */
PERL_STATIC_INLINE U32
-S_perl_hash_murmur_hash_64b (const unsigned char * const seed, const unsigned char *str, STRLEN len)
-{
- const U32 m = 0x5bd1e995;
- const int r = 24;
-
- U32 h1 = ((U32 *)seed)[0] ^ len;
- U32 h2 = ((U32 *)seed)[1];
-
- const U32 * data = (const U32 *)str;
-
- while(len >= 8)
- {
- U32 k1, k2;
- k1 = *data++;
- k1 *= m; k1 ^= k1 >> r; k1 *= m;
- h1 *= m; h1 ^= k1;
- len -= 4;
-
- k2 = *data++;
- k2 *= m; k2 ^= k2 >> r; k2 *= m;
- h2 *= m; h2 ^= k2;
- len -= 4;
- }
-
- if(len >= 4)
- {
- U32 k1 = *data++;
- k1 *= m; k1 ^= k1 >> r; k1 *= m;
- h1 *= m; h1 ^= k1;
- len -= 4;
- }
-
- switch(len)
- {
- case 3: h2 ^= ((unsigned char*)data)[2] << 16; /* fallthrough */
- case 2: h2 ^= ((unsigned char*)data)[1] << 8; /* fallthrough */
- case 1: h2 ^= ((unsigned char*)data)[0]; /* fallthrough */
- h2 *= m;
- };
-
- h1 ^= h2 >> 18; h1 *= m;
- h2 ^= h1 >> 22; h2 *= m;
- /*
- The following code has been removed as it is unused
- when only the low 32 bits are used. -- Yves
-
- h1 ^= h2 >> 17; h1 *= m;
-
- U64 h = h1;
-
- h = (h << 32) | h2;
- */
-
- return h2;
+S_perl_hash_oaathu_siphash_1_3(const unsigned char * const seed, const unsigned char *str, const STRLEN len) {
+ U32 hash = *((const U32*)seed) + (U32)len;
+ switch (len) {
+ case 16:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[15];
+ case 15:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[14];
+ case 14:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[13];
+ case 13:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[12];
+ case 12:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[11];
+ case 11:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[10];
+ case 10:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[9];
+ case 9:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[8];
+ case 8:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[7];
+ case 7:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[6];
+ case 6:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[5];
+ case 5:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[4];
+ case 4:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[3];
+ case 3:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[2];
+ case 2:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[1];
+ case 1:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += str[0];
+ case 0:
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += seed[4];
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += seed[5];
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += seed[6];
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ hash += seed[7];
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+
+ hash += (hash << 3);
+ hash ^= (hash >> 11);
+ return (hash + (hash << 15));
+ }
+ return S_perl_hash_siphash_1_3(seed+8, str, len);
}
-#endif
+#endif /* defined(HAS_QUAD) */
-/* legacy - only mod_perl should be doing this. */
-#ifdef PERL_HASH_INTERNAL_ACCESS
-#define PERL_HASH_INTERNAL(hash,str,len) PERL_HASH(hash,str,len)
-#endif
#endif /*compile once*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/inline.h b/Master/tlpkg/tlperl/lib/CORE/inline.h
index 35983d8caeb..12633a36fae 100755
--- a/Master/tlpkg/tlperl/lib/CORE/inline.h
+++ b/Master/tlpkg/tlperl/lib/CORE/inline.h
@@ -125,6 +125,29 @@ PadnameIN_SCOPE(const PADNAME * const pn, const U32 seq)
}
#endif
+/* ------------------------------- pp.h ------------------------------- */
+
+PERL_STATIC_INLINE I32
+S_TOPMARK(pTHX)
+{
+ DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log,
+ "MARK top %p %" IVdf "\n",
+ PL_markstack_ptr,
+ (IV)*PL_markstack_ptr)));
+ return *PL_markstack_ptr;
+}
+
+PERL_STATIC_INLINE I32
+S_POPMARK(pTHX)
+{
+ DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log,
+ "MARK pop %p %" IVdf "\n",
+ (PL_markstack_ptr-1),
+ (IV)*(PL_markstack_ptr-1))));
+ assert((PL_markstack_ptr > PL_markstack) || !"MARK underflow");
+ return *PL_markstack_ptr--;
+}
+
/* ----------------------------- regexp.h ----------------------------- */
PERL_STATIC_INLINE struct regexp *
@@ -233,6 +256,10 @@ GCC_DIAG_RESTORE /* Intentionally left semicolonless. */
/* ------------------------------- utf8.h ------------------------------- */
+/*
+=head1 Unicode Support
+*/
+
PERL_STATIC_INLINE void
S_append_utf8_from_native_byte(const U8 byte, U8** dest)
{
@@ -242,41 +269,912 @@ S_append_utf8_from_native_byte(const U8 byte, U8** dest)
PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE;
if (NATIVE_BYTE_IS_INVARIANT(byte))
- *(*dest)++ = byte;
+ *((*dest)++) = byte;
else {
- *(*dest)++ = UTF8_EIGHT_BIT_HI(byte);
- *(*dest)++ = UTF8_EIGHT_BIT_LO(byte);
+ *((*dest)++) = UTF8_EIGHT_BIT_HI(byte);
+ *((*dest)++) = UTF8_EIGHT_BIT_LO(byte);
}
}
/*
+=for apidoc valid_utf8_to_uvchr
+Like C<L</utf8_to_uvchr_buf>>, but should only be called when it is known that
+the next character in the input UTF-8 string C<s> is well-formed (I<e.g.>,
+it passes C<L</isUTF8_CHAR>>. Surrogates, non-character code points, and
+non-Unicode code points are allowed.
+
+=cut
+
+ */
-A helper function for the macro isUTF8_CHAR(), which should be used instead of
-this function. The macro will handle smaller code points directly saving time,
-using this function as a fall-back for higher code points.
+PERL_STATIC_INLINE UV
+Perl_valid_utf8_to_uvchr(const U8 *s, STRLEN *retlen)
+{
+ const UV expectlen = UTF8SKIP(s);
+ const U8* send = s + expectlen;
+ UV uv = *s;
-Tests if the first bytes of string C<s> form a valid UTF-8 character. 0 is
-returned if the bytes starting at C<s> up to but not including C<e> do not form a
-complete well-formed UTF-8 character; otherwise the number of bytes in the
-character is returned.
+ PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR;
-Note that an INVARIANT (i.e. ASCII on non-EBCDIC) character is a valid UTF-8
-character.
+ if (retlen) {
+ *retlen = expectlen;
+ }
-=cut */
-PERL_STATIC_INLINE STRLEN
-S__is_utf8_char_slow(const U8 *s, const U8 *e)
+ /* An invariant is trivially returned */
+ if (expectlen == 1) {
+ return uv;
+ }
+
+ /* Remove the leading bits that indicate the number of bytes, leaving just
+ * the bits that are part of the value */
+ uv = NATIVE_UTF8_TO_I8(uv) & UTF_START_MASK(expectlen);
+
+ /* Now, loop through the remaining bytes, accumulating each into the
+ * working total as we go. (I khw tried unrolling the loop for up to 4
+ * bytes, but there was no performance improvement) */
+ for (++s; s < send; s++) {
+ uv = UTF8_ACCUMULATE(uv, *s);
+ }
+
+ return UNI_TO_NATIVE(uv);
+
+}
+
+/*
+=for apidoc is_utf8_invariant_string
+
+Returns TRUE if the first C<len> bytes of the string C<s> are the same
+regardless of the UTF-8 encoding of the string (or UTF-EBCDIC encoding on
+EBCDIC machines); otherwise it returns FALSE. That is, it returns TRUE if they
+are UTF-8 invariant. On ASCII-ish machines, all the ASCII characters and only
+the ASCII characters fit this definition. On EBCDIC machines, the ASCII-range
+characters are invariant, but so also are the C1 controls.
+
+If C<len> is 0, it will be calculated using C<strlen(s)>, (which means if you
+use this option, that C<s> can't have embedded C<NUL> characters and has to
+have a terminating C<NUL> byte).
+
+See also
+C<L</is_utf8_string>>,
+C<L</is_utf8_string_flags>>,
+C<L</is_utf8_string_loc>>,
+C<L</is_utf8_string_loc_flags>>,
+C<L</is_utf8_string_loclen>>,
+C<L</is_utf8_string_loclen_flags>>,
+C<L</is_utf8_fixed_width_buf_flags>>,
+C<L</is_utf8_fixed_width_buf_loc_flags>>,
+C<L</is_utf8_fixed_width_buf_loclen_flags>>,
+C<L</is_strict_utf8_string>>,
+C<L</is_strict_utf8_string_loc>>,
+C<L</is_strict_utf8_string_loclen>>,
+C<L</is_c9strict_utf8_string>>,
+C<L</is_c9strict_utf8_string_loc>>,
+and
+C<L</is_c9strict_utf8_string_loclen>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+S_is_utf8_invariant_string(const U8* const s, const STRLEN len)
+{
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+
+ PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING;
+
+ for (; x < send; ++x) {
+ if (!UTF8_IS_INVARIANT(*x))
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/*
+=for apidoc is_utf8_string
+
+Returns TRUE if the first C<len> bytes of string C<s> form a valid
+Perl-extended-UTF-8 string; returns FALSE otherwise. If C<len> is 0, it will
+be calculated using C<strlen(s)> (which means if you use this option, that C<s>
+can't have embedded C<NUL> characters and has to have a terminating C<NUL>
+byte). Note that all characters being ASCII constitute 'a valid UTF-8 string'.
+
+This function considers Perl's extended UTF-8 to be valid. That means that
+code points above Unicode, surrogates, and non-character code points are
+considered valid by this function. Use C<L</is_strict_utf8_string>>,
+C<L</is_c9strict_utf8_string>>, or C<L</is_utf8_string_flags>> to restrict what
+code points are considered valid.
+
+See also
+C<L</is_utf8_invariant_string>>,
+C<L</is_utf8_string_loc>>,
+C<L</is_utf8_string_loclen>>,
+C<L</is_utf8_fixed_width_buf_flags>>,
+C<L</is_utf8_fixed_width_buf_loc_flags>>,
+C<L</is_utf8_fixed_width_buf_loclen_flags>>,
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_string(const U8 *s, const STRLEN len)
+{
+ /* This is now marked pure in embed.fnc, because isUTF8_CHAR now is pure.
+ * Be aware of possible changes to that */
+
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+
+ PERL_ARGS_ASSERT_IS_UTF8_STRING;
+
+ while (x < send) {
+ const STRLEN cur_len = isUTF8_CHAR(x, send);
+ if (UNLIKELY(! cur_len)) {
+ return FALSE;
+ }
+ x += cur_len;
+ }
+
+ return TRUE;
+}
+
+/*
+=for apidoc is_strict_utf8_string
+
+Returns TRUE if the first C<len> bytes of string C<s> form a valid
+UTF-8-encoded string that is fully interchangeable by any application using
+Unicode rules; otherwise it returns FALSE. If C<len> is 0, it will be
+calculated using C<strlen(s)> (which means if you use this option, that C<s>
+can't have embedded C<NUL> characters and has to have a terminating C<NUL>
+byte). Note that all characters being ASCII constitute 'a valid UTF-8 string'.
+
+This function returns FALSE for strings containing any
+code points above the Unicode max of 0x10FFFF, surrogate code points, or
+non-character code points.
+
+See also
+C<L</is_utf8_invariant_string>>,
+C<L</is_utf8_string>>,
+C<L</is_utf8_string_flags>>,
+C<L</is_utf8_string_loc>>,
+C<L</is_utf8_string_loc_flags>>,
+C<L</is_utf8_string_loclen>>,
+C<L</is_utf8_string_loclen_flags>>,
+C<L</is_utf8_fixed_width_buf_flags>>,
+C<L</is_utf8_fixed_width_buf_loc_flags>>,
+C<L</is_utf8_fixed_width_buf_loclen_flags>>,
+C<L</is_strict_utf8_string_loc>>,
+C<L</is_strict_utf8_string_loclen>>,
+C<L</is_c9strict_utf8_string>>,
+C<L</is_c9strict_utf8_string_loc>>,
+and
+C<L</is_c9strict_utf8_string_loclen>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+S_is_strict_utf8_string(const U8 *s, const STRLEN len)
+{
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+
+ PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING;
+
+ while (x < send) {
+ const STRLEN cur_len = isSTRICT_UTF8_CHAR(x, send);
+ if (UNLIKELY(! cur_len)) {
+ return FALSE;
+ }
+ x += cur_len;
+ }
+
+ return TRUE;
+}
+
+/*
+=for apidoc is_c9strict_utf8_string
+
+Returns TRUE if the first C<len> bytes of string C<s> form a valid
+UTF-8-encoded string that conforms to
+L<Unicode Corrigendum #9|http://www.unicode.org/versions/corrigendum9.html>;
+otherwise it returns FALSE. If C<len> is 0, it will be calculated using
+C<strlen(s)> (which means if you use this option, that C<s> can't have embedded
+C<NUL> characters and has to have a terminating C<NUL> byte). Note that all
+characters being ASCII constitute 'a valid UTF-8 string'.
+
+This function returns FALSE for strings containing any code points above the
+Unicode max of 0x10FFFF or surrogate code points, but accepts non-character
+code points per
+L<Corrigendum #9|http://www.unicode.org/versions/corrigendum9.html>.
+
+See also
+C<L</is_utf8_invariant_string>>,
+C<L</is_utf8_string>>,
+C<L</is_utf8_string_flags>>,
+C<L</is_utf8_string_loc>>,
+C<L</is_utf8_string_loc_flags>>,
+C<L</is_utf8_string_loclen>>,
+C<L</is_utf8_string_loclen_flags>>,
+C<L</is_utf8_fixed_width_buf_flags>>,
+C<L</is_utf8_fixed_width_buf_loc_flags>>,
+C<L</is_utf8_fixed_width_buf_loclen_flags>>,
+C<L</is_strict_utf8_string>>,
+C<L</is_strict_utf8_string_loc>>,
+C<L</is_strict_utf8_string_loclen>>,
+C<L</is_c9strict_utf8_string_loc>>,
+and
+C<L</is_c9strict_utf8_string_loclen>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+S_is_c9strict_utf8_string(const U8 *s, const STRLEN len)
+{
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+
+ PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING;
+
+ while (x < send) {
+ const STRLEN cur_len = isC9_STRICT_UTF8_CHAR(x, send);
+ if (UNLIKELY(! cur_len)) {
+ return FALSE;
+ }
+ x += cur_len;
+ }
+
+ return TRUE;
+}
+
+/* The above 3 functions could have been moved into the more general one just
+ * below, and made #defines that call it with the right 'flags'. They are
+ * currently kept separate to increase their chances of getting inlined */
+
+/*
+=for apidoc is_utf8_string_flags
+
+Returns TRUE if the first C<len> bytes of string C<s> form a valid
+UTF-8 string, subject to the restrictions imposed by C<flags>;
+returns FALSE otherwise. If C<len> is 0, it will be calculated
+using C<strlen(s)> (which means if you use this option, that C<s> can't have
+embedded C<NUL> characters and has to have a terminating C<NUL> byte). Note
+that all characters being ASCII constitute 'a valid UTF-8 string'.
+
+If C<flags> is 0, this gives the same results as C<L</is_utf8_string>>; if
+C<flags> is C<UTF8_DISALLOW_ILLEGAL_INTERCHANGE>, this gives the same results
+as C<L</is_strict_utf8_string>>; and if C<flags> is
+C<UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE>, this gives the same results as
+C<L</is_c9strict_utf8_string>>. Otherwise C<flags> may be any
+combination of the C<UTF8_DISALLOW_I<foo>> flags understood by
+C<L</utf8n_to_uvchr>>, with the same meanings.
+
+See also
+C<L</is_utf8_invariant_string>>,
+C<L</is_utf8_string>>,
+C<L</is_utf8_string_loc>>,
+C<L</is_utf8_string_loc_flags>>,
+C<L</is_utf8_string_loclen>>,
+C<L</is_utf8_string_loclen_flags>>,
+C<L</is_utf8_fixed_width_buf_flags>>,
+C<L</is_utf8_fixed_width_buf_loc_flags>>,
+C<L</is_utf8_fixed_width_buf_loclen_flags>>,
+C<L</is_strict_utf8_string>>,
+C<L</is_strict_utf8_string_loc>>,
+C<L</is_strict_utf8_string_loclen>>,
+C<L</is_c9strict_utf8_string>>,
+C<L</is_c9strict_utf8_string_loc>>,
+and
+C<L</is_c9strict_utf8_string_loclen>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+S_is_utf8_string_flags(const U8 *s, const STRLEN len, const U32 flags)
+{
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+
+ PERL_ARGS_ASSERT_IS_UTF8_STRING_FLAGS;
+ assert(0 == (flags & ~(UTF8_DISALLOW_ILLEGAL_INTERCHANGE
+ |UTF8_DISALLOW_ABOVE_31_BIT)));
+
+ if (flags == 0) {
+ return is_utf8_string(s, len);
+ }
+
+ if ((flags & ~UTF8_DISALLOW_ABOVE_31_BIT)
+ == UTF8_DISALLOW_ILLEGAL_INTERCHANGE)
+ {
+ return is_strict_utf8_string(s, len);
+ }
+
+ if ((flags & ~UTF8_DISALLOW_ABOVE_31_BIT)
+ == UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE)
+ {
+ return is_c9strict_utf8_string(s, len);
+ }
+
+ while (x < send) {
+ STRLEN cur_len = isUTF8_CHAR_flags(x, send, flags);
+ if (UNLIKELY(! cur_len)) {
+ return FALSE;
+ }
+ x += cur_len;
+ }
+
+ return TRUE;
+}
+
+/*
+
+=for apidoc is_utf8_string_loc
+
+Like C<L</is_utf8_string>> but stores the location of the failure (in the
+case of "utf8ness failure") or the location C<s>+C<len> (in the case of
+"utf8ness success") in the C<ep> pointer.
+
+See also C<L</is_utf8_string_loclen>>.
+
+=cut
+*/
+
+#define is_utf8_string_loc(s, len, ep) is_utf8_string_loclen(s, len, ep, 0)
+
+/*
+
+=for apidoc is_utf8_string_loclen
+
+Like C<L</is_utf8_string>> but stores the location of the failure (in the
+case of "utf8ness failure") or the location C<s>+C<len> (in the case of
+"utf8ness success") in the C<ep> pointer, and the number of UTF-8
+encoded characters in the C<el> pointer.
+
+See also C<L</is_utf8_string_loc>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+Perl_is_utf8_string_loclen(const U8 *s, const STRLEN len, const U8 **ep, STRLEN *el)
+{
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+ STRLEN outlen = 0;
+
+ PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN;
+
+ while (x < send) {
+ const STRLEN cur_len = isUTF8_CHAR(x, send);
+ if (UNLIKELY(! cur_len)) {
+ break;
+ }
+ x += cur_len;
+ outlen++;
+ }
+
+ if (el)
+ *el = outlen;
+
+ if (ep) {
+ *ep = x;
+ }
+
+ return (x == send);
+}
+
+/*
+
+=for apidoc is_strict_utf8_string_loc
+
+Like C<L</is_strict_utf8_string>> but stores the location of the failure (in the
+case of "utf8ness failure") or the location C<s>+C<len> (in the case of
+"utf8ness success") in the C<ep> pointer.
+
+See also C<L</is_strict_utf8_string_loclen>>.
+
+=cut
+*/
+
+#define is_strict_utf8_string_loc(s, len, ep) \
+ is_strict_utf8_string_loclen(s, len, ep, 0)
+
+/*
+
+=for apidoc is_strict_utf8_string_loclen
+
+Like C<L</is_strict_utf8_string>> but stores the location of the failure (in the
+case of "utf8ness failure") or the location C<s>+C<len> (in the case of
+"utf8ness success") in the C<ep> pointer, and the number of UTF-8
+encoded characters in the C<el> pointer.
+
+See also C<L</is_strict_utf8_string_loc>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+S_is_strict_utf8_string_loclen(const U8 *s, const STRLEN len, const U8 **ep, STRLEN *el)
{
- dTHX; /* The function called below requires thread context */
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+ STRLEN outlen = 0;
- STRLEN actual_len;
+ PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOCLEN;
- PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW;
+ while (x < send) {
+ const STRLEN cur_len = isSTRICT_UTF8_CHAR(x, send);
+ if (UNLIKELY(! cur_len)) {
+ break;
+ }
+ x += cur_len;
+ outlen++;
+ }
+
+ if (el)
+ *el = outlen;
- assert(e >= s);
- utf8n_to_uvchr(s, e - s, &actual_len, UTF8_CHECK_ONLY);
+ if (ep) {
+ *ep = x;
+ }
- return (actual_len == (STRLEN) -1) ? 0 : actual_len;
+ return (x == send);
+}
+
+/*
+
+=for apidoc is_c9strict_utf8_string_loc
+
+Like C<L</is_c9strict_utf8_string>> but stores the location of the failure (in
+the case of "utf8ness failure") or the location C<s>+C<len> (in the case of
+"utf8ness success") in the C<ep> pointer.
+
+See also C<L</is_c9strict_utf8_string_loclen>>.
+
+=cut
+*/
+
+#define is_c9strict_utf8_string_loc(s, len, ep) \
+ is_c9strict_utf8_string_loclen(s, len, ep, 0)
+
+/*
+
+=for apidoc is_c9strict_utf8_string_loclen
+
+Like C<L</is_c9strict_utf8_string>> but stores the location of the failure (in
+the case of "utf8ness failure") or the location C<s>+C<len> (in the case of
+"utf8ness success") in the C<ep> pointer, and the number of UTF-8 encoded
+characters in the C<el> pointer.
+
+See also C<L</is_c9strict_utf8_string_loc>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+S_is_c9strict_utf8_string_loclen(const U8 *s, const STRLEN len, const U8 **ep, STRLEN *el)
+{
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+ STRLEN outlen = 0;
+
+ PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOCLEN;
+
+ while (x < send) {
+ const STRLEN cur_len = isC9_STRICT_UTF8_CHAR(x, send);
+ if (UNLIKELY(! cur_len)) {
+ break;
+ }
+ x += cur_len;
+ outlen++;
+ }
+
+ if (el)
+ *el = outlen;
+
+ if (ep) {
+ *ep = x;
+ }
+
+ return (x == send);
+}
+
+/*
+
+=for apidoc is_utf8_string_loc_flags
+
+Like C<L</is_utf8_string_flags>> but stores the location of the failure (in the
+case of "utf8ness failure") or the location C<s>+C<len> (in the case of
+"utf8ness success") in the C<ep> pointer.
+
+See also C<L</is_utf8_string_loclen_flags>>.
+
+=cut
+*/
+
+#define is_utf8_string_loc_flags(s, len, ep, flags) \
+ is_utf8_string_loclen_flags(s, len, ep, 0, flags)
+
+
+/* The above 3 actual functions could have been moved into the more general one
+ * just below, and made #defines that call it with the right 'flags'. They are
+ * currently kept separate to increase their chances of getting inlined */
+
+/*
+
+=for apidoc is_utf8_string_loclen_flags
+
+Like C<L</is_utf8_string_flags>> but stores the location of the failure (in the
+case of "utf8ness failure") or the location C<s>+C<len> (in the case of
+"utf8ness success") in the C<ep> pointer, and the number of UTF-8
+encoded characters in the C<el> pointer.
+
+See also C<L</is_utf8_string_loc_flags>>.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+S_is_utf8_string_loclen_flags(const U8 *s, const STRLEN len, const U8 **ep, STRLEN *el, const U32 flags)
+{
+ const U8* const send = s + (len ? len : strlen((const char *)s));
+ const U8* x = s;
+ STRLEN outlen = 0;
+
+ PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN_FLAGS;
+ assert(0 == (flags & ~(UTF8_DISALLOW_ILLEGAL_INTERCHANGE
+ |UTF8_DISALLOW_ABOVE_31_BIT)));
+
+ if (flags == 0) {
+ return is_utf8_string_loclen(s, len, ep, el);
+ }
+
+ if ((flags & ~UTF8_DISALLOW_ABOVE_31_BIT)
+ == UTF8_DISALLOW_ILLEGAL_INTERCHANGE)
+ {
+ return is_strict_utf8_string_loclen(s, len, ep, el);
+ }
+
+ if ((flags & ~UTF8_DISALLOW_ABOVE_31_BIT)
+ == UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE)
+ {
+ return is_c9strict_utf8_string_loclen(s, len, ep, el);
+ }
+
+ while (x < send) {
+ const STRLEN cur_len = isUTF8_CHAR_flags(x, send, flags);
+ if (UNLIKELY(! cur_len)) {
+ break;
+ }
+ x += cur_len;
+ outlen++;
+ }
+
+ if (el)
+ *el = outlen;
+
+ if (ep) {
+ *ep = x;
+ }
+
+ return (x == send);
+}
+
+/*
+=for apidoc utf8_distance
+
+Returns the number of UTF-8 characters between the UTF-8 pointers C<a>
+and C<b>.
+
+WARNING: use only if you *know* that the pointers point inside the
+same UTF-8 buffer.
+
+=cut
+*/
+
+PERL_STATIC_INLINE IV
+Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
+{
+ PERL_ARGS_ASSERT_UTF8_DISTANCE;
+
+ return (a < b) ? -1 * (IV) utf8_length(a, b) : (IV) utf8_length(b, a);
+}
+
+/*
+=for apidoc utf8_hop
+
+Return the UTF-8 pointer C<s> displaced by C<off> characters, either
+forward or backward.
+
+WARNING: do not use the following unless you *know* C<off> is within
+the UTF-8 data pointed to by C<s> *and* that on entry C<s> is aligned
+on the first byte of character or just after the last byte of a character.
+
+=cut
+*/
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop(const U8 *s, SSize_t off)
+{
+ PERL_ARGS_ASSERT_UTF8_HOP;
+
+ /* Note: cannot use UTF8_IS_...() too eagerly here since e.g
+ * the bitops (especially ~) can create illegal UTF-8.
+ * In other words: in Perl UTF-8 is not just for Unicode. */
+
+ if (off >= 0) {
+ while (off--)
+ s += UTF8SKIP(s);
+ }
+ else {
+ while (off++) {
+ s--;
+ while (UTF8_IS_CONTINUATION(*s))
+ s--;
+ }
+ }
+ GCC_DIAG_IGNORE(-Wcast-qual);
+ return (U8 *)s;
+ GCC_DIAG_RESTORE;
+}
+
+/*
+=for apidoc utf8_hop_forward
+
+Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
+forward.
+
+C<off> must be non-negative.
+
+C<s> must be before or equal to C<end>.
+
+When moving forward it will not move beyond C<end>.
+
+Will not exceed this limit even if the string is not valid "UTF-8".
+
+=cut
+*/
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
+{
+ PERL_ARGS_ASSERT_UTF8_HOP_FORWARD;
+
+ /* Note: cannot use UTF8_IS_...() too eagerly here since e.g
+ * the bitops (especially ~) can create illegal UTF-8.
+ * In other words: in Perl UTF-8 is not just for Unicode. */
+
+ assert(s <= end);
+ assert(off >= 0);
+
+ while (off--) {
+ STRLEN skip = UTF8SKIP(s);
+ if ((STRLEN)(end - s) <= skip) {
+ GCC_DIAG_IGNORE(-Wcast-qual);
+ return (U8 *)end;
+ GCC_DIAG_RESTORE;
+ }
+ s += skip;
+ }
+
+ GCC_DIAG_IGNORE(-Wcast-qual);
+ return (U8 *)s;
+ GCC_DIAG_RESTORE;
+}
+
+/*
+=for apidoc utf8_hop_back
+
+Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
+backward.
+
+C<off> must be non-positive.
+
+C<s> must be after or equal to C<start>.
+
+When moving backward it will not move before C<start>.
+
+Will not exceed this limit even if the string is not valid "UTF-8".
+
+=cut
+*/
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
+{
+ PERL_ARGS_ASSERT_UTF8_HOP_BACK;
+
+ /* Note: cannot use UTF8_IS_...() too eagerly here since e.g
+ * the bitops (especially ~) can create illegal UTF-8.
+ * In other words: in Perl UTF-8 is not just for Unicode. */
+
+ assert(start <= s);
+ assert(off <= 0);
+
+ while (off++ && s > start) {
+ s--;
+ while (UTF8_IS_CONTINUATION(*s) && s > start)
+ s--;
+ }
+
+ GCC_DIAG_IGNORE(-Wcast-qual);
+ return (U8 *)s;
+ GCC_DIAG_RESTORE;
+}
+
+/*
+=for apidoc utf8_hop_safe
+
+Return the UTF-8 pointer C<s> displaced by up to C<off> characters,
+either forward or backward.
+
+When moving backward it will not move before C<start>.
+
+When moving forward it will not move beyond C<end>.
+
+Will not exceed those limits even if the string is not valid "UTF-8".
+
+=cut
+*/
+
+PERL_STATIC_INLINE U8 *
+Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end)
+{
+ PERL_ARGS_ASSERT_UTF8_HOP_SAFE;
+
+ /* Note: cannot use UTF8_IS_...() too eagerly here since e.g
+ * the bitops (especially ~) can create illegal UTF-8.
+ * In other words: in Perl UTF-8 is not just for Unicode. */
+
+ assert(start <= s && s <= end);
+
+ if (off >= 0) {
+ return utf8_hop_forward(s, off, end);
+ }
+ else {
+ return utf8_hop_back(s, off, start);
+ }
+}
+
+/*
+
+=for apidoc is_utf8_valid_partial_char
+
+Returns 0 if the sequence of bytes starting at C<s> and looking no further than
+S<C<e - 1>> is the UTF-8 encoding, as extended by Perl, for one or more code
+points. Otherwise, it returns 1 if there exists at least one non-empty
+sequence of bytes that when appended to sequence C<s>, starting at position
+C<e> causes the entire sequence to be the well-formed UTF-8 of some code point;
+otherwise returns 0.
+
+In other words this returns TRUE if C<s> points to a partial UTF-8-encoded code
+point.
+
+This is useful when a fixed-length buffer is being tested for being well-formed
+UTF-8, but the final few bytes in it don't comprise a full character; that is,
+it is split somewhere in the middle of the final code point's UTF-8
+representation. (Presumably when the buffer is refreshed with the next chunk
+of data, the new first bytes will complete the partial code point.) This
+function is used to verify that the final bytes in the current buffer are in
+fact the legal beginning of some code point, so that if they aren't, the
+failure can be signalled without having to wait for the next read.
+
+=cut
+*/
+#define is_utf8_valid_partial_char(s, e) \
+ is_utf8_valid_partial_char_flags(s, e, 0)
+
+/*
+
+=for apidoc is_utf8_valid_partial_char_flags
+
+Like C<L</is_utf8_valid_partial_char>>, it returns a boolean giving whether
+or not the input is a valid UTF-8 encoded partial character, but it takes an
+extra parameter, C<flags>, which can further restrict which code points are
+considered valid.
+
+If C<flags> is 0, this behaves identically to
+C<L</is_utf8_valid_partial_char>>. Otherwise C<flags> can be any combination
+of the C<UTF8_DISALLOW_I<foo>> flags accepted by C<L</utf8n_to_uvchr>>. If
+there is any sequence of bytes that can complete the input partial character in
+such a way that a non-prohibited character is formed, the function returns
+TRUE; otherwise FALSE. Non character code points cannot be determined based on
+partial character input. But many of the other possible excluded types can be
+determined from just the first one or two bytes.
+
+=cut
+ */
+
+PERL_STATIC_INLINE bool
+S_is_utf8_valid_partial_char_flags(const U8 * const s, const U8 * const e, const U32 flags)
+{
+ PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS;
+
+ assert(0 == (flags & ~(UTF8_DISALLOW_ILLEGAL_INTERCHANGE
+ |UTF8_DISALLOW_ABOVE_31_BIT)));
+
+ if (s >= e || s + UTF8SKIP(s) <= e) {
+ return FALSE;
+ }
+
+ return cBOOL(_is_utf8_char_helper(s, e, flags));
+}
+
+/*
+
+=for apidoc is_utf8_fixed_width_buf_flags
+
+Returns TRUE if the fixed-width buffer starting at C<s> with length C<len>
+is entirely valid UTF-8, subject to the restrictions given by C<flags>;
+otherwise it returns FALSE.
+
+If C<flags> is 0, any well-formed UTF-8, as extended by Perl, is accepted
+without restriction. If the final few bytes of the buffer do not form a
+complete code point, this will return TRUE anyway, provided that
+C<L</is_utf8_valid_partial_char_flags>> returns TRUE for them.
+
+If C<flags> in non-zero, it can be any combination of the
+C<UTF8_DISALLOW_I<foo>> flags accepted by C<L</utf8n_to_uvchr>>, and with the
+same meanings.
+
+This function differs from C<L</is_utf8_string_flags>> only in that the latter
+returns FALSE if the final few bytes of the string don't form a complete code
+point.
+
+=cut
+ */
+#define is_utf8_fixed_width_buf_flags(s, len, flags) \
+ is_utf8_fixed_width_buf_loclen_flags(s, len, 0, 0, flags)
+
+/*
+
+=for apidoc is_utf8_fixed_width_buf_loc_flags
+
+Like C<L</is_utf8_fixed_width_buf_flags>> but stores the location of the
+failure in the C<ep> pointer. If the function returns TRUE, C<*ep> will point
+to the beginning of any partial character at the end of the buffer; if there is
+no partial character C<*ep> will contain C<s>+C<len>.
+
+See also C<L</is_utf8_fixed_width_buf_loclen_flags>>.
+
+=cut
+*/
+
+#define is_utf8_fixed_width_buf_loc_flags(s, len, loc, flags) \
+ is_utf8_fixed_width_buf_loclen_flags(s, len, loc, 0, flags)
+
+/*
+
+=for apidoc is_utf8_fixed_width_buf_loclen_flags
+
+Like C<L</is_utf8_fixed_width_buf_loc_flags>> but stores the number of
+complete, valid characters found in the C<el> pointer.
+
+=cut
+*/
+
+PERL_STATIC_INLINE bool
+S_is_utf8_fixed_width_buf_loclen_flags(const U8 * const s,
+ const STRLEN len,
+ const U8 **ep,
+ STRLEN *el,
+ const U32 flags)
+{
+ const U8 * maybe_partial;
+
+ PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOCLEN_FLAGS;
+
+ if (! ep) {
+ ep = &maybe_partial;
+ }
+
+ /* If it's entirely valid, return that; otherwise see if the only error is
+ * that the final few bytes are for a partial character */
+ return is_utf8_string_loclen_flags(s, len, ep, el, flags)
+ || is_utf8_valid_partial_char_flags(*ep, s + len, flags);
}
/* ------------------------------- perl.h ----------------------------- */
@@ -601,9 +1499,9 @@ S_cx_pusheval(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv)
cx->blk_eval.cv = NULL; /* later set by doeval_compile() */
cx->blk_eval.cur_top_env = PL_top_env;
- assert(!(PL_in_eval & ~ 0x7F));
+ assert(!(PL_in_eval & ~ 0x3F));
assert(!(PL_op->op_type & ~0x1FF));
- cx->blk_u16 = (PL_in_eval & 0x7F) | ((U16)PL_op->op_type << 7);
+ cx->blk_u16 = (PL_in_eval & 0x3F) | ((U16)PL_op->op_type << 7);
}
@@ -616,16 +1514,19 @@ S_cx_popeval(pTHX_ PERL_CONTEXT *cx)
assert(CxTYPE(cx) == CXt_EVAL);
PL_in_eval = CxOLD_IN_EVAL(cx);
+ assert(!(PL_in_eval & 0xc0));
PL_eval_root = cx->blk_eval.old_eval_root;
sv = cx->blk_eval.cur_text;
- if (sv && SvSCREAM(sv)) {
+ if (sv && CxEVAL_TXT_REFCNTED(cx)) {
cx->blk_eval.cur_text = NULL;
SvREFCNT_dec_NN(sv);
}
sv = cx->blk_eval.old_namesv;
- if (sv && !SvTEMP(sv))/* TEMP implies cx_popeval() re-entrantly called */
- sv_2mortal(sv);
+ if (sv) {
+ cx->blk_eval.old_namesv = NULL;
+ SvREFCNT_dec_NN(sv);
+ }
}
@@ -715,6 +1616,7 @@ S_cx_popwhen(pTHX_ PERL_CONTEXT *cx)
assert(CxTYPE(cx) == CXt_WHEN);
PERL_UNUSED_ARG(cx);
+ PERL_UNUSED_CONTEXT;
/* currently NOOP */
}
@@ -743,8 +1645,91 @@ S_cx_popgiven(pTHX_ PERL_CONTEXT *cx)
SvREFCNT_dec(sv);
}
+/* ------------------ util.h ------------------------------------------- */
+
+/*
+=head1 Miscellaneous Functions
+
+=for apidoc foldEQ
+
+Returns true if the leading C<len> bytes of the strings C<s1> and C<s2> are the
+same
+case-insensitively; false otherwise. Uppercase and lowercase ASCII range bytes
+match themselves and their opposite case counterparts. Non-cased and non-ASCII
+range bytes match only themselves.
+
+=cut
+*/
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ(const char *s1, const char *s2, I32 len)
+{
+ const U8 *a = (const U8 *)s1;
+ const U8 *b = (const U8 *)s2;
+
+ PERL_ARGS_ASSERT_FOLDEQ;
+
+ assert(len >= 0);
+
+ while (len--) {
+ if (*a != *b && *a != PL_fold[*b])
+ return 0;
+ a++,b++;
+ }
+ return 1;
+}
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ_latin1(const char *s1, const char *s2, I32 len)
+{
+ /* Compare non-utf8 using Unicode (Latin1) semantics. Does not work on
+ * MICRO_SIGN, LATIN_SMALL_LETTER_SHARP_S, nor
+ * LATIN_SMALL_LETTER_Y_WITH_DIAERESIS, and does not check for these. Nor
+ * does it check that the strings each have at least 'len' characters */
+
+ const U8 *a = (const U8 *)s1;
+ const U8 *b = (const U8 *)s2;
+
+ PERL_ARGS_ASSERT_FOLDEQ_LATIN1;
+ assert(len >= 0);
+
+ while (len--) {
+ if (*a != *b && *a != PL_fold_latin1[*b]) {
+ return 0;
+ }
+ a++, b++;
+ }
+ return 1;
+}
+/*
+=for apidoc foldEQ_locale
+
+Returns true if the leading C<len> bytes of the strings C<s1> and C<s2> are the
+same case-insensitively in the current locale; false otherwise.
+
+=cut
+*/
+
+PERL_STATIC_INLINE I32
+Perl_foldEQ_locale(const char *s1, const char *s2, I32 len)
+{
+ dVAR;
+ const U8 *a = (const U8 *)s1;
+ const U8 *b = (const U8 *)s2;
+
+ PERL_ARGS_ASSERT_FOLDEQ_LOCALE;
+
+ assert(len >= 0);
+
+ while (len--) {
+ if (*a != *b && *a != PL_fold_locale[*b])
+ return 0;
+ a++,b++;
+ }
+ return 1;
+}
/*
* ex: set ts=8 sts=4 sw=4 et:
diff --git a/Master/tlpkg/tlperl/lib/CORE/intrpvar.h b/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
index 50a9ee0a9eb..d203855314d 100644
--- a/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
+++ b/Master/tlpkg/tlperl/lib/CORE/intrpvar.h
@@ -73,6 +73,7 @@ PERLVAR(I, multideref_pc, UNOP_AUX_item *)
/* Fields used by magic variables such as $@, $/ and so on */
PERLVAR(I, curpm, PMOP *) /* what to do \ interps in REs from */
+PERLVAR(I, curpm_under, PMOP *) /* what to do \ interps in REs from */
PERLVAR(I, tainting, bool) /* doing taint checks */
PERLVARI(I, tainted, bool, FALSE) /* using variables controlled by $< */
@@ -97,9 +98,11 @@ PERLVAR(I, in_eval, U8) /* trap "fatal" errors? */
PERLVAR(I, defgv, GV *) /* the *_ glob */
/*
-=for apidoc mn|bool|PL_dowarn
+=for apidoc mn|U8|PL_dowarn
-The C variable which corresponds to Perl's C<$^W> warning variable.
+The C variable that roughly corresponds to Perl's C<$^W> warning variable.
+However, C<$^W> is treated as a boolean, whereas C<PL_dowarn> is a
+collection of flag bits.
=cut
*/
@@ -245,6 +248,7 @@ PERLVAR(I, exit_flags, U8) /* was exit() unexpected, etc. */
PERLVAR(I, utf8locale, bool) /* utf8 locale detected */
PERLVAR(I, in_utf8_CTYPE_locale, bool)
+PERLVAR(I, in_utf8_COLLATE_locale, bool)
#ifdef USE_LOCALE_CTYPE
PERLVAR(I, warn_locale, SV *)
#endif
@@ -489,8 +493,8 @@ PERLVAR(I, compiling, COP) /* compiling/done executing marker */
PERLVAR(I, compcv, CV *) /* currently compiling subroutine */
PERLVAR(I, comppad_name, PADNAMELIST *) /* variable names for "my" variables */
-PERLVAR(I, comppad_name_fill, I32) /* last "introduced" variable offset */
-PERLVAR(I, comppad_name_floor, I32) /* start of vars in innermost block */
+PERLVAR(I, comppad_name_fill, PADOFFSET)/* last "introduced" variable offset */
+PERLVAR(I, comppad_name_floor, PADOFFSET)/* start of vars in innermost block */
#ifdef HAVE_INTERP_INTERN
PERLVAR(I, sys_intern, struct interp_intern)
@@ -542,27 +546,31 @@ PERLVARA(I, body_roots, PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */
PERLVAR(I, debug, VOL U32) /* flags given to -D switch */
-PERLVARI(I, maxo, int, MAXO) /* maximum number of ops */
+PERLVARI(I, padlist_generation, U32, 1) /* id to identify padlist clones */
PERLVARI(I, runops, runops_proc_t, RUNOPS_DEFAULT)
PERLVAR(I, subname, SV *) /* name of current subroutine */
PERLVAR(I, subline, I32) /* line this subroutine began on */
-PERLVAR(I, min_intro_pending, I32) /* start of vars to introduce */
+PERLVAR(I, min_intro_pending, PADOFFSET)/* start of vars to introduce */
-PERLVAR(I, max_intro_pending, I32) /* end of vars to introduce */
-PERLVAR(I, padix, I32) /* lowest unused index - 1
+PERLVAR(I, max_intro_pending, PADOFFSET)/* end of vars to introduce */
+PERLVAR(I, padix, PADOFFSET) /* lowest unused index - 1
in current "register" pad */
-PERLVAR(I, constpadix, I32) /* lowest unused for constants */
+PERLVAR(I, constpadix, PADOFFSET) /* lowest unused for constants */
-PERLVAR(I, padix_floor, I32) /* how low may inner block reset padix */
+PERLVAR(I, padix_floor, PADOFFSET) /* how low may inner block reset padix */
#ifdef USE_LOCALE_COLLATE
PERLVAR(I, collation_name, char *) /* Name of current collation */
PERLVAR(I, collxfrm_base, Size_t) /* Basic overhead in *xfrm() */
PERLVARI(I, collxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */
PERLVARI(I, collation_ix, U32, 0) /* Collation generation index */
+PERLVARI(I, strxfrm_NUL_replacement, U8, 0) /* Code point to replace NULs */
+PERLVARI(I, strxfrm_is_behaved, bool, TRUE)
+ /* Assume until proven otherwise that it works */
+PERLVARI(I, strxfrm_max_cp, U8, 0) /* Highest collating cp in locale */
PERLVARI(I, collation_standard, bool, TRUE)
/* Assume simple collation */
#endif /* USE_LOCALE_COLLATE */
@@ -622,6 +630,8 @@ PERLVAR(I, GCB_invlist, SV *)
PERLVAR(I, LB_invlist, SV *)
PERLVAR(I, SB_invlist, SV *)
PERLVAR(I, WB_invlist, SV *)
+PERLVAR(I, Assigned_invlist, SV *)
+PERLVAR(I, seen_deprecated_macro, HV *)
PERLVAR(I, last_swash_hv, HV *)
PERLVAR(I, last_swash_tmps, U8 *)
@@ -690,9 +700,6 @@ PERLVARI(I, known_layers, PerlIO_list_t *, NULL)
PERLVARI(I, def_layerlist, PerlIO_list_t *, NULL)
#endif
-PERLVARI(I, encoding, SV *, NULL) /* $^ENCODING */
-PERLVARI(I, lex_encoding, SV *, NULL) /* encoding pragma */
-
PERLVAR(I, utf8_idstart, SV *)
PERLVAR(I, utf8_idcont, SV *)
PERLVAR(I, utf8_xidstart, SV *)
@@ -760,8 +767,6 @@ PERLVAR(I, debug_pad, struct perl_debug_pad) /* always needed because of the re
/* Hook for File::Glob */
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.18.0 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
diff --git a/Master/tlpkg/tlperl/lib/CORE/keywords.h b/Master/tlpkg/tlperl/lib/CORE/keywords.h
index eaa41209df4..2b1d598a4e7 100644
--- a/Master/tlpkg/tlperl/lib/CORE/keywords.h
+++ b/Master/tlpkg/tlperl/lib/CORE/keywords.h
@@ -270,5 +270,5 @@
#define KEY_y 254
/* Generated from:
- * 7e3d76a333c5f9b77d47dd7d423450356b63853a1c2313d3e805042caaa4bc2c regen/keywords.pl
+ * db0472e0ad4f44bd0816cad799d63b60d1bbd7e11cef40ea15bf0d00f69669f6 regen/keywords.pl
* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h b/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
index 7602a781b71..df736642f72 100644
--- a/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
+++ b/Master/tlpkg/tlperl/lib/CORE/l1_char_class_tab.h
@@ -168,7 +168,7 @@
/* U+9D OSC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+9F APC */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
/* U+A1 INVERTED '!' */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_PUNCT)|(1U<<_CC_QUOTEMETA),
/* U+A2 CENT */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
/* U+A3 POUND */ (1U<<_CC_GRAPH)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA),
@@ -336,7 +336,7 @@
/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_UTF8_IS_CONTINUATION),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_UTF8_IS_CONTINUATION),
/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_UTF8_IS_CONTINUATION),
/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_UTF8_IS_CONTINUATION),
/* 0x44 U+E0 I8=A3 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_UTF8_IS_CONTINUATION),
@@ -599,7 +599,7 @@
/* 0x3E U+9E PM */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* 0x3F U+1A SUB */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* 0x40 U+20 SP */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_UTF8_IS_CONTINUATION),
+/* 0x41 U+A0 NBSP */ (1U<<_CC_BLANK)|(1U<<_CC_PRINT)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_UTF8_IS_CONTINUATION),
/* 0x42 U+E2 I8=A1 a with '^' */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_UTF8_IS_CONTINUATION),
/* 0x43 U+E4 I8=A2 a with diaeresis */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_UTF8_IS_CONTINUATION),
/* 0x44 U+E0 I8=A3 a with grave */ (1U<<_CC_ALPHANUMERIC)|(1U<<_CC_ALPHA)|(1U<<_CC_CASED)|(1U<<_CC_CHARNAME_CONT)|(1U<<_CC_GRAPH)|(1U<<_CC_IDFIRST)|(1U<<_CC_LOWER)|(1U<<_CC_PRINT)|(1U<<_CC_WORDCHAR)|(1U<<_CC_IS_IN_SOME_FOLD)|(1U<<_CC_UTF8_IS_CONTINUATION),
diff --git a/Master/tlpkg/tlperl/lib/CORE/libperl524.a b/Master/tlpkg/tlperl/lib/CORE/libperl526.a
index 772447f261d..950815ab2d4 100644..100755
--- a/Master/tlpkg/tlperl/lib/CORE/libperl524.a
+++ b/Master/tlpkg/tlperl/lib/CORE/libperl526.a
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/CORE/metaconfig.h b/Master/tlpkg/tlperl/lib/CORE/metaconfig.h
index 84580f59f0a..f19eee88839 100644
--- a/Master/tlpkg/tlperl/lib/CORE/metaconfig.h
+++ b/Master/tlpkg/tlperl/lib/CORE/metaconfig.h
@@ -10,34 +10,6 @@
* they won't be available unless used. When new symbols are probed
* in Configure, this is the way to force them into availability.
*
- * BOOTSTRAP_CHARSET
- * DOUBLEKIND
- * HAS_ACOSH
- * HAS_ASCTIME64
- * HAS_CTIME64
- * HAS_DIFFTIME64
- * HAS_DLADDR
- * HAS_FEGETROUND
- * HAS_FPCLASSIFY
- * HAS_FREELOCALE
- * HAS_GMTIME64
- * HAS_ISFINITEL
- * HAS_ISINFL
- * HAS_ISLESS
- * HAS_J0
- * HAS_LOCALTIME64
- * HAS_MEMMEM
- * HAS_MKTIME64
- * HAS_NEWLOCALE
- * HAS_PRCTL
- * HAS_PSEUDOFORK
- * HAS_TIMEGM
- * HAS_USELOCALE
- * I16SIZE
- * I64SIZE
- * I8SIZE
- * LOCALTIME_R_NEEDS_TZSET
- * LONG_DOUBLEKIND
- * U8SIZE
- * USE_CBACKTRACE
+ * Symbols should only be here temporarily. Once they are actually used,
+ * they should be removed from here.
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/op.h b/Master/tlpkg/tlperl/lib/CORE/op.h
index 3ded4bb318e..5a29bfbe2c4 100644
--- a/Master/tlpkg/tlperl/lib/CORE/op.h
+++ b/Master/tlpkg/tlperl/lib/CORE/op.h
@@ -123,7 +123,6 @@ Deprecated. Use C<GIMME_V> instead.
/* On OP_NULL, saw a "do". */
/* On OP_EXISTS, treat av as av, not avhv. */
/* On OP_(ENTER|LEAVE)EVAL, don't clear $@ */
- /* On pushre, rx is used as part of split, e.g. split " " */
/* On regcomp, "use re 'eval'" was in scope */
/* On RV2[ACGHS]V, don't create GV--in
defined()*/
@@ -154,7 +153,7 @@ Deprecated. Use C<GIMME_V> instead.
/* There is no room in op_flags for this one, so it has its own bit-
field member (op_folded) instead. The flag is only used to tell
op_convert_list to set op_folded. */
-#define OPf_FOLDED 1<<16
+#define OPf_FOLDED (1<<16)
/* old names; don't use in new code, but don't break them, either */
#define OPf_LIST OPf_WANT_LIST
@@ -261,11 +260,8 @@ struct pmop {
U32 op_pmflags;
union {
OP * op_pmreplroot; /* For OP_SUBST */
-#ifdef USE_ITHREADS
- PADOFFSET op_pmtargetoff; /* For OP_PUSHRE */
-#else
- GV * op_pmtargetgv;
-#endif
+ PADOFFSET op_pmtargetoff; /* For OP_SPLIT lex ary or thr GV */
+ GV * op_pmtargetgv; /* For OP_SPLIT non-threaded GV */
} op_pmreplrootu;
union {
OP * op_pmreplstart; /* Only used in OP_SUBST */
@@ -331,6 +327,10 @@ struct pmop {
* other end instead; this preserves binary compatibility. */
#define PMf_BASE_SHIFT (_RXf_PMf_SHIFT_NEXT+2)
+/* Set by the parser if it discovers an error, so the regex shouldn't be
+ * compiled */
+#define PMf_HAS_ERROR (1U<<(PMf_BASE_SHIFT+4))
+
/* 'use re "taint"' in scope: taint $1 etc. if target tainted */
#define PMf_RETAINT (1U<<(PMf_BASE_SHIFT+5))
@@ -479,6 +479,24 @@ struct loop {
#define kLOOP cLOOPx(kid)
+typedef enum {
+ OPclass_NULL, /* 0 */
+ OPclass_BASEOP, /* 1 */
+ OPclass_UNOP, /* 2 */
+ OPclass_BINOP, /* 3 */
+ OPclass_LOGOP, /* 4 */
+ OPclass_LISTOP, /* 5 */
+ OPclass_PMOP, /* 6 */
+ OPclass_SVOP, /* 7 */
+ OPclass_PADOP, /* 8 */
+ OPclass_PVOP, /* 9 */
+ OPclass_LOOP, /* 10 */
+ OPclass_COP, /* 11 */
+ OPclass_METHOP, /* 12 */
+ OPclass_UNOP_AUX /* 13 */
+} OPclass;
+
+
#ifdef USE_ITHREADS
# define cGVOPx_gv(o) ((GV*)PAD_SVl(cPADOPx(o)->op_padix))
# ifndef PERL_CORE
@@ -913,7 +931,10 @@ Return a short description of the provided OP.
=for apidoc Am|U32|OP_CLASS|OP *o
Return the class of the provided OP: that is, which of the *OP
structures it uses. For core ops this currently gets the information out
-of C<PL_opargs>, which does not always accurately reflect the type used.
+of C<PL_opargs>, which does not always accurately reflect the type used;
+in v5.26 onwards, see also the function C<L</op_class>> which can do a better
+job of determining the used type.
+
For custom ops the type is returned from the registration, and it is up
to the registree to ensure it is accurate. The value returned will be
one of the C<OA_>* constants from F<op.h>.
@@ -1079,7 +1100,8 @@ C<sib> is non-null. For a higher-level interface, see C<L</op_sibling_splice>>.
#if defined(PERL_IN_DOOP_C) || defined(PERL_IN_PP_C)
static const char * const deprecated_above_ff_msg
= "Use of strings with code points over 0xFF as arguments to "
- "%s operator is deprecated";
+ "%s operator is deprecated. This will be a fatal error in "
+ "Perl 5.28";
#endif
diff --git a/Master/tlpkg/tlperl/lib/CORE/opcode.h b/Master/tlpkg/tlperl/lib/CORE/opcode.h
index 5ec8f58e702..5aec1a8ea3d 100644
--- a/Master/tlpkg/tlperl/lib/CORE/opcode.h
+++ b/Master/tlpkg/tlperl/lib/CORE/opcode.h
@@ -159,7 +159,6 @@ EXTCONST char* const PL_op_name[] = {
"padav",
"padhv",
"padany",
- "pushre",
"rv2gv",
"rv2sv",
"av2arylen",
@@ -288,8 +287,8 @@ EXTCONST char* const PL_op_name[] = {
"aslice",
"kvaslice",
"aeach",
- "akeys",
"avalues",
+ "akeys",
"each",
"values",
"keys",
@@ -334,6 +333,9 @@ EXTCONST char* const PL_op_name[] = {
"entersub",
"leavesub",
"leavesublv",
+ "argcheck",
+ "argelem",
+ "argdefelem",
"caller",
"warn",
"die",
@@ -528,6 +530,7 @@ EXTCONST char* const PL_op_name[] = {
"once",
"custom",
"coreargs",
+ "avhvswitch",
"runcv",
"fc",
"padcv",
@@ -560,7 +563,6 @@ EXTCONST char* const PL_op_desc[] = {
"private array",
"private hash",
"private value",
- "push regexp",
"ref-to-glob cast",
"scalar dereference",
"array length",
@@ -642,12 +644,12 @@ EXTCONST char* const PL_op_desc[] = {
"bitwise and (&)",
"bitwise xor (^)",
"bitwise or (|)",
- "numeric bitiwse and (&)",
+ "numeric bitwise and (&)",
"numeric bitwise xor (^)",
"numeric bitwise or (|)",
- "string bitiwse and (&)",
- "string bitwise xor (^)",
- "string bitwise or (|)",
+ "string bitwise and (&.)",
+ "string bitwise xor (^.)",
+ "string bitwise or (|.)",
"negation (-)",
"integer negation (-)",
"not",
@@ -689,8 +691,8 @@ EXTCONST char* const PL_op_desc[] = {
"array slice",
"index/value array slice",
"each on array",
- "keys on array",
"values on array",
+ "keys on array",
"each",
"values",
"keys",
@@ -735,6 +737,9 @@ EXTCONST char* const PL_op_desc[] = {
"subroutine entry",
"subroutine exit",
"lvalue subroutine return",
+ "check subroutine arguments",
+ "subroutine argument",
+ "subroutine argument default value",
"caller",
"warn",
"die",
@@ -929,6 +934,7 @@ EXTCONST char* const PL_op_desc[] = {
"once",
"unknown custom operator",
"CORE:: subroutine",
+ "Array/hash switch",
"__SUB__",
"fc",
"private subroutine",
@@ -975,7 +981,6 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_padav,
Perl_pp_padhv,
Perl_pp_padany, /* implemented by Perl_unimplemented_op */
- Perl_pp_pushre,
Perl_pp_rv2gv,
Perl_pp_rv2sv,
Perl_pp_av2arylen,
@@ -1104,8 +1109,8 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_aslice,
Perl_pp_kvaslice,
Perl_pp_aeach,
- Perl_pp_akeys,
Perl_pp_avalues, /* implemented by Perl_pp_akeys */
+ Perl_pp_akeys,
Perl_pp_each,
Perl_pp_values, /* implemented by Perl_do_kv */
Perl_pp_keys, /* implemented by Perl_do_kv */
@@ -1150,6 +1155,9 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_entersub,
Perl_pp_leavesub,
Perl_pp_leavesublv,
+ Perl_pp_argcheck,
+ Perl_pp_argelem,
+ Perl_pp_argdefelem,
Perl_pp_caller,
Perl_pp_warn,
Perl_pp_die,
@@ -1344,6 +1352,7 @@ EXT Perl_ppaddr_t PL_ppaddr[] /* or perlvars.h */
Perl_pp_once,
Perl_pp_custom, /* implemented by Perl_unimplemented_op */
Perl_pp_coreargs,
+ Perl_pp_avhvswitch,
Perl_pp_runcv,
Perl_pp_fc,
Perl_pp_padcv,
@@ -1386,7 +1395,6 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* padav */
Perl_ck_null, /* padhv */
Perl_ck_null, /* padany */
- Perl_ck_null, /* pushre */
Perl_ck_rvconst, /* rv2gv */
Perl_ck_rvconst, /* rv2sv */
Perl_ck_null, /* av2arylen */
@@ -1515,8 +1523,8 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* aslice */
Perl_ck_null, /* kvaslice */
Perl_ck_each, /* aeach */
- Perl_ck_each, /* akeys */
Perl_ck_each, /* avalues */
+ Perl_ck_each, /* akeys */
Perl_ck_each, /* each */
Perl_ck_each, /* values */
Perl_ck_each, /* keys */
@@ -1561,6 +1569,9 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_subr, /* entersub */
Perl_ck_null, /* leavesub */
Perl_ck_null, /* leavesublv */
+ Perl_ck_null, /* argcheck */
+ Perl_ck_null, /* argelem */
+ Perl_ck_null, /* argdefelem */
Perl_ck_fun, /* caller */
Perl_ck_fun, /* warn */
Perl_ck_fun, /* die */
@@ -1755,6 +1766,7 @@ EXT Perl_check_t PL_check[] /* or perlvars.h */
Perl_ck_null, /* once */
Perl_ck_null, /* custom */
Perl_ck_null, /* coreargs */
+ Perl_ck_null, /* avhvswitch */
Perl_ck_null, /* runcv */
Perl_ck_fun, /* fc */
Perl_ck_null, /* padcv */
@@ -1791,7 +1803,6 @@ EXTCONST U32 PL_opargs[] = {
0x00000040, /* padav */
0x00000040, /* padhv */
0x00000040, /* padany */
- 0x00000540, /* pushre */
0x00000144, /* rv2gv */
0x00000144, /* rv2sv */
0x00000104, /* av2arylen */
@@ -1815,7 +1826,7 @@ EXTCONST U32 PL_opargs[] = {
0x00000304, /* substcont */
0x00001804, /* trans */
0x00001804, /* transr */
- 0x00000004, /* sassign */
+ 0x00011204, /* sassign */
0x00022208, /* aassign */
0x00002b0d, /* chop */
0x00009b8c, /* schop */
@@ -1920,8 +1931,8 @@ EXTCONST U32 PL_opargs[] = {
0x00023401, /* aslice */
0x00023401, /* kvaslice */
0x00003b40, /* aeach */
- 0x00003b08, /* akeys */
0x00003b48, /* avalues */
+ 0x00003b08, /* akeys */
0x00004b40, /* each */
0x00004b48, /* values */
0x00004b08, /* keys */
@@ -1934,7 +1945,7 @@ EXTCONST U32 PL_opargs[] = {
0x00000f44, /* multideref */
0x00091480, /* unpack */
0x0002140f, /* pack */
- 0x00111408, /* split */
+ 0x00111508, /* split */
0x0002140f, /* join */
0x00002401, /* list */
0x00224200, /* lslice */
@@ -1966,6 +1977,9 @@ EXTCONST U32 PL_opargs[] = {
0x00002141, /* entersub */
0x00000100, /* leavesub */
0x00000100, /* leavesublv */
+ 0x00000f00, /* argcheck */
+ 0x00000f00, /* argelem */
+ 0x00000300, /* argdefelem */
0x00009b08, /* caller */
0x0000240d, /* warn */
0x0000240d, /* die */
@@ -2160,6 +2174,7 @@ EXTCONST U32 PL_opargs[] = {
0x00000300, /* once */
0x00000000, /* custom */
0x00000600, /* coreargs */
+ 0x00000108, /* avhvswitch */
0x00000004, /* runcv */
0x00009b8e, /* fc */
0x00000040, /* padcv */
@@ -2179,12 +2194,14 @@ EXTCONST U32 PL_opargs[] = {
END_EXTERN_C
+#define OPpARGELEM_SV 0x00
#define OPpLVREF_SV 0x00
#define OPpARG1_MASK 0x01
#define OPpCOREARGS_DEREF1 0x01
#define OPpENTERSUB_INARGS 0x01
#define OPpSORT_NUMERIC 0x01
#define OPpTRANS_FROM_UTF 0x01
+#define OPpARGELEM_AV 0x02
#define OPpCONST_NOVER 0x02
#define OPpCOREARGS_DEREF2 0x02
#define OPpEVAL_HAS_HH 0x02
@@ -2194,6 +2211,8 @@ END_EXTERN_C
#define OPpSORT_INTEGER 0x02
#define OPpTRANS_TO_UTF 0x02
#define OPpARG2_MASK 0x03
+#define OPpAVHVSWITCH_MASK 0x03
+#define OPpARGELEM_HV 0x04
#define OPpCONST_SHORTCIRCUIT 0x04
#define OPpDONT_INIT_GV 0x04
#define OPpENTERSUB_HASTARG 0x04
@@ -2202,7 +2221,9 @@ END_EXTERN_C
#define OPpLVREF_ELEM 0x04
#define OPpSLICEWARNING 0x04
#define OPpSORT_REVERSE 0x04
+#define OPpSPLIT_IMPLIM 0x04
#define OPpTRANS_IDENTICAL 0x04
+#define OPpARGELEM_MASK 0x06
#define OPpARG3_MASK 0x07
#define OPpPADRANGE_COUNTSHIFT 0x07
#define OPpCONST_STRICT 0x08
@@ -2214,6 +2235,7 @@ END_EXTERN_C
#define OPpMAYBE_LVSUB 0x08
#define OPpREVERSE_INPLACE 0x08
#define OPpSORT_INPLACE 0x08
+#define OPpSPLIT_LEX 0x08
#define OPpTRANS_SQUASH 0x08
#define OPpARG4_MASK 0x0f
#define OPpASSIGN_COMMON_AGG 0x10
@@ -2226,6 +2248,7 @@ END_EXTERN_C
#define OPpMULTIDEREF_EXISTS 0x10
#define OPpOPEN_IN_RAW 0x10
#define OPpSORT_DESCEND 0x10
+#define OPpSPLIT_ASSIGN 0x10
#define OPpSUBSTR_REPL_FIRST 0x10
#define OPpTARGET_MY 0x10
#define OPpASSIGN_COMMON_RC1 0x20
@@ -2259,7 +2282,6 @@ END_EXTERN_C
#define OPpPAD_STATE 0x40
#define OPpREFCOUNTED 0x40
#define OPpREPEAT_DOLIST 0x40
-#define OPpRUNTIME 0x40
#define OPpSLICE 0x40
#define OPpSORT_STABLE 0x40
#define OPpTRANS_GROWS 0x40
@@ -2272,7 +2294,6 @@ END_EXTERN_C
#define OPpOFFBYONE 0x80
#define OPpOPEN_OUT_CRLF 0x80
#define OPpPV_IS_UTF8 0x80
-#define OPpSPLIT_IMPLIM 0x80
#define OPpTRANS_DELETE 0x80
START_EXTERN_C
@@ -2303,6 +2324,7 @@ EXTCONST char PL_op_private_labels[] = {
'<','U','T','F','\0',
'>','U','T','F','\0',
'A','M','P','E','R','\0',
+ 'A','S','S','I','G','N','\0',
'A','V','\0',
'B','A','R','E','\0',
'B','K','W','A','R','D','\0',
@@ -2350,6 +2372,7 @@ EXTCONST char PL_op_private_labels[] = {
'I','N','P','L','A','C','E','\0',
'I','N','T','\0',
'I','T','E','R','\0',
+ 'L','E','X','\0',
'L','I','N','E','N','U','M','\0',
'L','V','\0',
'L','V','D','E','F','E','R','\0',
@@ -2369,7 +2392,6 @@ EXTCONST char PL_op_private_labels[] = {
'R','E','P','L','1','S','T','\0',
'R','E','V','\0',
'R','E','V','E','R','S','E','D','\0',
- 'R','T','I','M','E','\0',
'S','H','O','R','T','\0',
'S','L','I','C','E','\0',
'S','L','I','C','E','W','A','R','N','\0',
@@ -2383,6 +2405,9 @@ EXTCONST char PL_op_private_labels[] = {
'T','A','R','G','M','Y','\0',
'U','N','I','\0',
'U','T','F','\0',
+ 'k','e','y','\0',
+ 'o','f','f','s','e','t','\0',
+ 'r','a','n','g','e','\0',
};
@@ -2401,12 +2426,14 @@ EXTCONST char PL_op_private_labels[] = {
EXTCONST I16 PL_op_private_bitfields[] = {
0, 8, -1,
0, 8, -1,
+ 0, 539, -1,
0, 8, -1,
0, 8, -1,
- 0, 8, -1,
- 0, 8, -1,
- 4, -1, 1, 157, 2, 164, 3, 171, -1,
- 4, -1, 0, 507, 1, 26, 2, 276, 3, 103, -1,
+ 0, 546, -1,
+ 0, 535, -1,
+ 1, -1, 0, 512, 1, 33, 2, 283, -1,
+ 4, -1, 1, 164, 2, 171, 3, 178, -1,
+ 4, -1, 0, 512, 1, 33, 2, 283, 3, 110, -1,
};
@@ -2428,40 +2455,39 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
16, /* padav */
20, /* padhv */
-1, /* padany */
- 26, /* pushre */
- 27, /* rv2gv */
- 34, /* rv2sv */
- 39, /* av2arylen */
- 41, /* rv2cv */
+ 26, /* rv2gv */
+ 33, /* rv2sv */
+ 38, /* av2arylen */
+ 40, /* rv2cv */
-1, /* anoncode */
0, /* prototype */
0, /* refgen */
0, /* srefgen */
0, /* ref */
- 48, /* bless */
- 49, /* backtick */
- 48, /* glob */
+ 47, /* bless */
+ 48, /* backtick */
+ 47, /* glob */
0, /* readline */
-1, /* rcatline */
0, /* regcmaybe */
0, /* regcreset */
0, /* regcomp */
- 26, /* match */
- 26, /* qr */
- 26, /* subst */
- 54, /* substcont */
- 56, /* trans */
- 56, /* transr */
- 63, /* sassign */
- 66, /* aassign */
+ -1, /* match */
+ -1, /* qr */
+ -1, /* subst */
+ 0, /* substcont */
+ 53, /* trans */
+ 53, /* transr */
+ 60, /* sassign */
+ 63, /* aassign */
0, /* chop */
0, /* schop */
- 71, /* chomp */
- 71, /* schomp */
+ 68, /* chomp */
+ 68, /* schomp */
0, /* defined */
0, /* undef */
0, /* study */
- 39, /* pos */
+ 38, /* pos */
0, /* preinc */
0, /* i_preinc */
0, /* predec */
@@ -2470,22 +2496,22 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
0, /* i_postinc */
0, /* postdec */
0, /* i_postdec */
- 73, /* pow */
- 73, /* multiply */
- 73, /* i_multiply */
- 73, /* divide */
- 73, /* i_divide */
- 73, /* modulo */
- 73, /* i_modulo */
- 75, /* repeat */
- 73, /* add */
- 73, /* i_add */
- 73, /* subtract */
- 73, /* i_subtract */
- 73, /* concat */
- 77, /* stringify */
- 73, /* left_shift */
- 73, /* right_shift */
+ 70, /* pow */
+ 70, /* multiply */
+ 70, /* i_multiply */
+ 70, /* divide */
+ 70, /* i_divide */
+ 70, /* modulo */
+ 70, /* i_modulo */
+ 72, /* repeat */
+ 70, /* add */
+ 70, /* i_add */
+ 70, /* subtract */
+ 70, /* i_subtract */
+ 70, /* concat */
+ 74, /* stringify */
+ 70, /* left_shift */
+ 70, /* right_shift */
12, /* lt */
12, /* i_lt */
12, /* gt */
@@ -2510,9 +2536,9 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
12, /* bit_and */
12, /* bit_xor */
12, /* bit_or */
- 73, /* nbit_and */
- 73, /* nbit_xor */
- 73, /* nbit_or */
+ 70, /* nbit_and */
+ 70, /* nbit_xor */
+ 70, /* nbit_or */
12, /* sbit_and */
12, /* sbit_xor */
12, /* sbit_or */
@@ -2520,68 +2546,68 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
0, /* i_negate */
0, /* not */
0, /* complement */
- 71, /* ncomplement */
- 71, /* scomplement */
+ 68, /* ncomplement */
+ 68, /* scomplement */
12, /* smartmatch */
- 77, /* atan2 */
- 71, /* sin */
- 71, /* cos */
- 77, /* rand */
- 77, /* srand */
- 71, /* exp */
- 71, /* log */
- 71, /* sqrt */
- 71, /* int */
- 71, /* hex */
- 71, /* oct */
- 71, /* abs */
- 71, /* length */
- 79, /* substr */
- 82, /* vec */
- 77, /* index */
- 77, /* rindex */
- 48, /* sprintf */
- 48, /* formline */
- 71, /* ord */
- 71, /* chr */
- 77, /* crypt */
+ 74, /* atan2 */
+ 68, /* sin */
+ 68, /* cos */
+ 74, /* rand */
+ 74, /* srand */
+ 68, /* exp */
+ 68, /* log */
+ 68, /* sqrt */
+ 68, /* int */
+ 68, /* hex */
+ 68, /* oct */
+ 68, /* abs */
+ 68, /* length */
+ 76, /* substr */
+ 79, /* vec */
+ 74, /* index */
+ 74, /* rindex */
+ 47, /* sprintf */
+ 47, /* formline */
+ 68, /* ord */
+ 68, /* chr */
+ 74, /* crypt */
0, /* ucfirst */
0, /* lcfirst */
0, /* uc */
0, /* lc */
0, /* quotemeta */
- 84, /* rv2av */
- 90, /* aelemfast */
- 90, /* aelemfast_lex */
- 91, /* aelem */
- 96, /* aslice */
- 99, /* kvaslice */
+ 81, /* rv2av */
+ 87, /* aelemfast */
+ 87, /* aelemfast_lex */
+ 88, /* aelem */
+ 93, /* aslice */
+ 96, /* kvaslice */
0, /* aeach */
- 0, /* akeys */
0, /* avalues */
+ 38, /* akeys */
0, /* each */
0, /* values */
- 39, /* keys */
- 100, /* delete */
- 103, /* exists */
- 105, /* rv2hv */
- 91, /* helem */
- 96, /* hslice */
- 99, /* kvhslice */
- 113, /* multideref */
- 48, /* unpack */
- 48, /* pack */
- 120, /* split */
- 48, /* join */
+ 38, /* keys */
+ 97, /* delete */
+ 100, /* exists */
+ 102, /* rv2hv */
+ 88, /* helem */
+ 93, /* hslice */
+ 96, /* kvhslice */
+ 110, /* multideref */
+ 47, /* unpack */
+ 47, /* pack */
+ 117, /* split */
+ 47, /* join */
122, /* list */
12, /* lslice */
- 48, /* anonlist */
- 48, /* anonhash */
- 48, /* splice */
- 77, /* push */
+ 47, /* anonlist */
+ 47, /* anonhash */
+ 47, /* splice */
+ 74, /* push */
0, /* pop */
0, /* shift */
- 77, /* unshift */
+ 74, /* unshift */
124, /* sort */
131, /* reverse */
0, /* grepstart */
@@ -2603,28 +2629,31 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
137, /* entersub */
144, /* leavesub */
144, /* leavesublv */
- 146, /* caller */
- 48, /* warn */
- 48, /* die */
- 48, /* reset */
+ 0, /* argcheck */
+ 146, /* argelem */
+ 0, /* argdefelem */
+ 148, /* caller */
+ 47, /* warn */
+ 47, /* die */
+ 47, /* reset */
-1, /* lineseq */
- 148, /* nextstate */
- 148, /* dbstate */
+ 150, /* nextstate */
+ 150, /* dbstate */
-1, /* unstack */
-1, /* enter */
- 149, /* leave */
+ 151, /* leave */
-1, /* scope */
- 151, /* enteriter */
- 155, /* iter */
+ 153, /* enteriter */
+ 157, /* iter */
-1, /* enterloop */
- 156, /* leaveloop */
+ 158, /* leaveloop */
-1, /* return */
- 158, /* last */
- 158, /* next */
- 158, /* redo */
- 158, /* dump */
- 158, /* goto */
- 48, /* exit */
+ 160, /* last */
+ 160, /* next */
+ 160, /* redo */
+ 160, /* dump */
+ 160, /* goto */
+ 47, /* exit */
0, /* method_named */
0, /* method_super */
0, /* method_redir */
@@ -2635,143 +2664,143 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
0, /* leavewhen */
-1, /* break */
-1, /* continue */
- 160, /* open */
- 48, /* close */
- 48, /* pipe_op */
- 48, /* fileno */
- 48, /* umask */
- 48, /* binmode */
- 48, /* tie */
+ 162, /* open */
+ 47, /* close */
+ 47, /* pipe_op */
+ 47, /* fileno */
+ 47, /* umask */
+ 47, /* binmode */
+ 47, /* tie */
0, /* untie */
0, /* tied */
- 48, /* dbmopen */
+ 47, /* dbmopen */
0, /* dbmclose */
- 48, /* sselect */
- 48, /* select */
- 48, /* getc */
- 48, /* read */
- 48, /* enterwrite */
+ 47, /* sselect */
+ 47, /* select */
+ 47, /* getc */
+ 47, /* read */
+ 47, /* enterwrite */
144, /* leavewrite */
-1, /* prtf */
-1, /* print */
-1, /* say */
- 48, /* sysopen */
- 48, /* sysseek */
- 48, /* sysread */
- 48, /* syswrite */
- 48, /* eof */
- 48, /* tell */
- 48, /* seek */
- 48, /* truncate */
- 48, /* fcntl */
- 48, /* ioctl */
- 77, /* flock */
- 48, /* send */
- 48, /* recv */
- 48, /* socket */
- 48, /* sockpair */
- 48, /* bind */
- 48, /* connect */
- 48, /* listen */
- 48, /* accept */
- 48, /* shutdown */
- 48, /* gsockopt */
- 48, /* ssockopt */
+ 47, /* sysopen */
+ 47, /* sysseek */
+ 47, /* sysread */
+ 47, /* syswrite */
+ 47, /* eof */
+ 47, /* tell */
+ 47, /* seek */
+ 47, /* truncate */
+ 47, /* fcntl */
+ 47, /* ioctl */
+ 74, /* flock */
+ 47, /* send */
+ 47, /* recv */
+ 47, /* socket */
+ 47, /* sockpair */
+ 47, /* bind */
+ 47, /* connect */
+ 47, /* listen */
+ 47, /* accept */
+ 47, /* shutdown */
+ 47, /* gsockopt */
+ 47, /* ssockopt */
0, /* getsockname */
0, /* getpeername */
0, /* lstat */
0, /* stat */
- 165, /* ftrread */
- 165, /* ftrwrite */
- 165, /* ftrexec */
- 165, /* fteread */
- 165, /* ftewrite */
- 165, /* fteexec */
- 170, /* ftis */
- 170, /* ftsize */
- 170, /* ftmtime */
- 170, /* ftatime */
- 170, /* ftctime */
- 170, /* ftrowned */
- 170, /* fteowned */
- 170, /* ftzero */
- 170, /* ftsock */
- 170, /* ftchr */
- 170, /* ftblk */
- 170, /* ftfile */
- 170, /* ftdir */
- 170, /* ftpipe */
- 170, /* ftsuid */
- 170, /* ftsgid */
- 170, /* ftsvtx */
- 170, /* ftlink */
- 170, /* fttty */
- 170, /* fttext */
- 170, /* ftbinary */
- 77, /* chdir */
- 77, /* chown */
- 71, /* chroot */
- 77, /* unlink */
- 77, /* chmod */
- 77, /* utime */
- 77, /* rename */
- 77, /* link */
- 77, /* symlink */
+ 167, /* ftrread */
+ 167, /* ftrwrite */
+ 167, /* ftrexec */
+ 167, /* fteread */
+ 167, /* ftewrite */
+ 167, /* fteexec */
+ 172, /* ftis */
+ 172, /* ftsize */
+ 172, /* ftmtime */
+ 172, /* ftatime */
+ 172, /* ftctime */
+ 172, /* ftrowned */
+ 172, /* fteowned */
+ 172, /* ftzero */
+ 172, /* ftsock */
+ 172, /* ftchr */
+ 172, /* ftblk */
+ 172, /* ftfile */
+ 172, /* ftdir */
+ 172, /* ftpipe */
+ 172, /* ftsuid */
+ 172, /* ftsgid */
+ 172, /* ftsvtx */
+ 172, /* ftlink */
+ 172, /* fttty */
+ 172, /* fttext */
+ 172, /* ftbinary */
+ 74, /* chdir */
+ 74, /* chown */
+ 68, /* chroot */
+ 74, /* unlink */
+ 74, /* chmod */
+ 74, /* utime */
+ 74, /* rename */
+ 74, /* link */
+ 74, /* symlink */
0, /* readlink */
- 77, /* mkdir */
- 71, /* rmdir */
- 48, /* open_dir */
+ 74, /* mkdir */
+ 68, /* rmdir */
+ 47, /* open_dir */
0, /* readdir */
0, /* telldir */
- 48, /* seekdir */
+ 47, /* seekdir */
0, /* rewinddir */
0, /* closedir */
-1, /* fork */
- 174, /* wait */
- 77, /* waitpid */
- 77, /* system */
- 77, /* exec */
- 77, /* kill */
- 174, /* getppid */
- 77, /* getpgrp */
- 77, /* setpgrp */
- 77, /* getpriority */
- 77, /* setpriority */
- 174, /* time */
+ 176, /* wait */
+ 74, /* waitpid */
+ 74, /* system */
+ 74, /* exec */
+ 74, /* kill */
+ 176, /* getppid */
+ 74, /* getpgrp */
+ 74, /* setpgrp */
+ 74, /* getpriority */
+ 74, /* setpriority */
+ 176, /* time */
-1, /* tms */
0, /* localtime */
- 48, /* gmtime */
+ 47, /* gmtime */
0, /* alarm */
- 77, /* sleep */
- 48, /* shmget */
- 48, /* shmctl */
- 48, /* shmread */
- 48, /* shmwrite */
- 48, /* msgget */
- 48, /* msgctl */
- 48, /* msgsnd */
- 48, /* msgrcv */
- 48, /* semop */
- 48, /* semget */
- 48, /* semctl */
+ 74, /* sleep */
+ 47, /* shmget */
+ 47, /* shmctl */
+ 47, /* shmread */
+ 47, /* shmwrite */
+ 47, /* msgget */
+ 47, /* msgctl */
+ 47, /* msgsnd */
+ 47, /* msgrcv */
+ 47, /* semop */
+ 47, /* semget */
+ 47, /* semctl */
0, /* require */
0, /* dofile */
-1, /* hintseval */
- 175, /* entereval */
+ 177, /* entereval */
144, /* leaveeval */
0, /* entertry */
-1, /* leavetry */
0, /* ghbyname */
- 48, /* ghbyaddr */
+ 47, /* ghbyaddr */
-1, /* ghostent */
0, /* gnbyname */
- 48, /* gnbyaddr */
+ 47, /* gnbyaddr */
-1, /* gnetent */
0, /* gpbyname */
- 48, /* gpbynumber */
+ 47, /* gpbynumber */
-1, /* gprotoent */
- 48, /* gsbyname */
- 48, /* gsbyport */
+ 47, /* gsbyname */
+ 47, /* gsbyport */
-1, /* gservent */
0, /* shostent */
0, /* snetent */
@@ -2792,21 +2821,22 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
-1, /* sgrent */
-1, /* egrent */
-1, /* getlogin */
- 48, /* syscall */
+ 47, /* syscall */
0, /* lock */
0, /* once */
-1, /* custom */
- 181, /* coreargs */
+ 183, /* coreargs */
+ 187, /* avhvswitch */
3, /* runcv */
0, /* fc */
-1, /* padcv */
-1, /* introcv */
-1, /* clonecv */
- 185, /* padrange */
- 187, /* refassign */
- 193, /* lvref */
- 199, /* lvrefslice */
- 200, /* lvavref */
+ 189, /* padrange */
+ 191, /* refassign */
+ 197, /* lvref */
+ 203, /* lvrefslice */
+ 204, /* lvavref */
0, /* anonconst */
};
@@ -2826,68 +2856,68 @@ EXTCONST I16 PL_op_private_bitdef_ix[] = {
*/
EXTCONST U16 PL_op_private_bitdefs[] = {
- 0x0003, /* scalar, prototype, refgen, srefgen, ref, readline, regcmaybe, regcreset, regcomp, chop, schop, defined, undef, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, complement, ucfirst, lcfirst, uc, lc, quotemeta, aeach, akeys, avalues, each, values, pop, shift, grepstart, grepwhile, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, method, method_named, method_super, method_redir, method_redir_super, entergiven, leavegiven, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst */
- 0x2b5c, 0x3d59, /* pushmark */
+ 0x0003, /* scalar, prototype, refgen, srefgen, ref, readline, regcmaybe, regcreset, regcomp, substcont, chop, schop, defined, undef, study, preinc, i_preinc, predec, i_predec, postinc, i_postinc, postdec, i_postdec, negate, i_negate, not, complement, ucfirst, lcfirst, uc, lc, quotemeta, aeach, avalues, each, values, pop, shift, grepstart, grepwhile, mapstart, mapwhile, range, and, or, dor, andassign, orassign, dorassign, method, argcheck, argdefelem, method_named, method_super, method_redir, method_redir_super, entergiven, leavegiven, enterwhen, leavewhen, untie, tied, dbmclose, getsockname, getpeername, lstat, stat, readlink, readdir, telldir, rewinddir, closedir, localtime, alarm, require, dofile, entertry, ghbyname, gnbyname, gpbyname, shostent, snetent, sprotoent, sservent, gpwnam, gpwuid, ggrnam, ggrgid, lock, once, fc, anonconst */
+ 0x2cbc, 0x3df9, /* pushmark */
0x00bd, /* wantarray, runcv */
- 0x03b8, 0x17f0, 0x3e0c, 0x38c8, 0x2f25, /* const */
- 0x2b5c, 0x3079, /* gvsv */
- 0x1655, /* gv */
+ 0x0498, 0x18d0, 0x3eac, 0x3968, 0x3085, /* const */
+ 0x2cbc, 0x31d9, /* gvsv */
+ 0x1735, /* gv */
0x0067, /* gelem, 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, sbit_and, sbit_xor, sbit_or, smartmatch, lslice, xor */
- 0x2b5c, 0x3d58, 0x0257, /* padsv */
- 0x2b5c, 0x3d58, 0x2c4c, 0x3a49, /* padav */
- 0x2b5c, 0x3d58, 0x0534, 0x05d0, 0x2c4c, 0x3a49, /* padhv */
- 0x3819, /* pushre, match, qr, subst */
- 0x2b5c, 0x19d8, 0x0256, 0x2c4c, 0x2e48, 0x3e04, 0x0003, /* rv2gv */
- 0x2b5c, 0x3078, 0x0256, 0x3e04, 0x0003, /* rv2sv */
- 0x2c4c, 0x0003, /* av2arylen, pos, keys */
- 0x2dbc, 0x0e18, 0x0b74, 0x028c, 0x3fc8, 0x3e04, 0x0003, /* rv2cv */
- 0x012f, /* bless, glob, sprintf, formline, unpack, pack, join, anonlist, anonhash, splice, warn, die, reset, exit, close, pipe_op, fileno, umask, binmode, tie, dbmopen, sselect, select, getc, read, enterwrite, sysopen, sysseek, sysread, syswrite, eof, tell, seek, truncate, fcntl, ioctl, send, recv, socket, sockpair, bind, connect, listen, accept, shutdown, gsockopt, ssockopt, open_dir, seekdir, gmtime, shmget, shmctl, shmread, shmwrite, msgget, msgctl, msgsnd, msgrcv, semop, semget, semctl, ghbyaddr, gnbyaddr, gpbynumber, gsbyname, gsbyport, syscall */
- 0x325c, 0x3178, 0x2634, 0x2570, 0x0003, /* backtick */
- 0x3818, 0x0003, /* substcont */
- 0x0f1c, 0x1f58, 0x0754, 0x3b8c, 0x22e8, 0x01e4, 0x0141, /* trans, transr */
- 0x0d5c, 0x0458, 0x0067, /* sassign */
- 0x0a18, 0x0914, 0x0810, 0x2c4c, 0x0067, /* aassign */
- 0x4070, 0x0003, /* chomp, schomp, ncomplement, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, length, ord, chr, chroot, rmdir */
- 0x4070, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract, concat, left_shift, right_shift, nbit_and, nbit_xor, nbit_or */
- 0x12d8, 0x0067, /* repeat */
- 0x4070, 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 */
- 0x3570, 0x2c4c, 0x00cb, /* substr */
- 0x2c4c, 0x0067, /* vec */
- 0x2b5c, 0x3078, 0x2c4c, 0x3a48, 0x3e04, 0x0003, /* rv2av */
- 0x01ff, /* aelemfast, aelemfast_lex */
- 0x2b5c, 0x2a58, 0x0256, 0x2c4c, 0x0067, /* aelem, helem */
- 0x2b5c, 0x2c4c, 0x3a49, /* aslice, hslice */
- 0x2c4d, /* kvaslice, kvhslice */
- 0x2b5c, 0x3998, 0x0003, /* delete */
- 0x3ef8, 0x0003, /* exists */
- 0x2b5c, 0x3078, 0x0534, 0x05d0, 0x2c4c, 0x3a48, 0x3e04, 0x0003, /* rv2hv */
- 0x2b5c, 0x2a58, 0x0f94, 0x18f0, 0x2c4c, 0x3e04, 0x0003, /* multideref */
- 0x23bc, 0x3079, /* split */
- 0x2b5c, 0x2019, /* list */
- 0x3c78, 0x3314, 0x1230, 0x26cc, 0x3668, 0x27c4, 0x2fe1, /* sort */
- 0x26cc, 0x0003, /* reverse */
- 0x28f8, 0x0003, /* flip, flop */
- 0x2b5c, 0x0003, /* cond_expr */
- 0x2b5c, 0x0e18, 0x0256, 0x028c, 0x3fc8, 0x3e04, 0x2481, /* entersub */
- 0x33d8, 0x0003, /* leavesub, leavesublv, leavewrite, leaveeval */
- 0x00bc, 0x012f, /* caller */
- 0x21f5, /* nextstate, dbstate */
- 0x29fc, 0x33d9, /* leave */
- 0x2b5c, 0x3078, 0x0e8c, 0x36e5, /* enteriter */
- 0x36e5, /* iter */
- 0x29fc, 0x0067, /* leaveloop */
- 0x41dc, 0x0003, /* last, next, redo, dump, goto */
- 0x325c, 0x3178, 0x2634, 0x2570, 0x012f, /* open */
- 0x1b90, 0x1dec, 0x1ca8, 0x1a64, 0x0003, /* ftrread, ftrwrite, ftrexec, fteread, ftewrite, fteexec */
- 0x1b90, 0x1dec, 0x1ca8, 0x0003, /* ftis, ftsize, ftmtime, ftatime, ftctime, ftrowned, fteowned, ftzero, ftsock, ftchr, ftblk, ftfile, ftdir, ftpipe, ftsuid, ftsgid, ftsvtx, ftlink, fttty, fttext, ftbinary */
- 0x4071, /* wait, getppid, time */
- 0x3474, 0x0c30, 0x068c, 0x4148, 0x2104, 0x0003, /* entereval */
- 0x2d1c, 0x0018, 0x1144, 0x1061, /* coreargs */
- 0x2b5c, 0x019b, /* padrange */
- 0x2b5c, 0x3d58, 0x0376, 0x284c, 0x1748, 0x0067, /* refassign */
- 0x2b5c, 0x3d58, 0x0376, 0x284c, 0x1748, 0x0003, /* lvref */
- 0x2b5d, /* lvrefslice */
- 0x2b5c, 0x3d58, 0x0003, /* lvavref */
+ 0x2cbc, 0x3df8, 0x03d7, /* padsv */
+ 0x2cbc, 0x3df8, 0x2dac, 0x3ae9, /* padav */
+ 0x2cbc, 0x3df8, 0x0614, 0x06b0, 0x2dac, 0x3ae9, /* padhv */
+ 0x2cbc, 0x1ab8, 0x03d6, 0x2dac, 0x2fa8, 0x3ea4, 0x0003, /* rv2gv */
+ 0x2cbc, 0x31d8, 0x03d6, 0x3ea4, 0x0003, /* rv2sv */
+ 0x2dac, 0x0003, /* av2arylen, pos, akeys, keys */
+ 0x2f1c, 0x0ef8, 0x0c54, 0x028c, 0x4068, 0x3ea4, 0x0003, /* rv2cv */
+ 0x018f, /* bless, glob, sprintf, formline, unpack, pack, join, anonlist, anonhash, splice, warn, die, reset, exit, close, pipe_op, fileno, umask, binmode, tie, dbmopen, sselect, select, getc, read, enterwrite, sysopen, sysseek, sysread, syswrite, eof, tell, seek, truncate, fcntl, ioctl, send, recv, socket, sockpair, bind, connect, listen, accept, shutdown, gsockopt, ssockopt, open_dir, seekdir, gmtime, shmget, shmctl, shmread, shmwrite, msgget, msgctl, msgsnd, msgrcv, semop, semget, semctl, ghbyaddr, gnbyaddr, gpbynumber, gsbyname, gsbyport, syscall */
+ 0x33bc, 0x32d8, 0x2714, 0x2650, 0x0003, /* backtick */
+ 0x0ffc, 0x2038, 0x0834, 0x3c2c, 0x23c8, 0x01e4, 0x0141, /* trans, transr */
+ 0x0e3c, 0x0538, 0x0067, /* sassign */
+ 0x0af8, 0x09f4, 0x08f0, 0x2dac, 0x0067, /* aassign */
+ 0x4110, 0x0003, /* chomp, schomp, ncomplement, scomplement, sin, cos, exp, log, sqrt, int, hex, oct, abs, length, ord, chr, chroot, rmdir */
+ 0x4110, 0x0067, /* pow, multiply, i_multiply, divide, i_divide, modulo, i_modulo, add, i_add, subtract, i_subtract, concat, left_shift, right_shift, nbit_and, nbit_xor, nbit_or */
+ 0x13b8, 0x0067, /* repeat */
+ 0x4110, 0x018f, /* 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 */
+ 0x36d0, 0x2dac, 0x012b, /* substr */
+ 0x2dac, 0x0067, /* vec */
+ 0x2cbc, 0x31d8, 0x2dac, 0x3ae8, 0x3ea4, 0x0003, /* rv2av */
+ 0x025f, /* aelemfast, aelemfast_lex */
+ 0x2cbc, 0x2bb8, 0x03d6, 0x2dac, 0x0067, /* aelem, helem */
+ 0x2cbc, 0x2dac, 0x3ae9, /* aslice, hslice */
+ 0x2dad, /* kvaslice, kvhslice */
+ 0x2cbc, 0x3a38, 0x0003, /* delete */
+ 0x3f98, 0x0003, /* exists */
+ 0x2cbc, 0x31d8, 0x0614, 0x06b0, 0x2dac, 0x3ae8, 0x3ea4, 0x0003, /* rv2hv */
+ 0x2cbc, 0x2bb8, 0x1074, 0x19d0, 0x2dac, 0x3ea4, 0x0003, /* multideref */
+ 0x2cbc, 0x31d8, 0x0350, 0x29cc, 0x2489, /* split */
+ 0x2cbc, 0x20f9, /* list */
+ 0x3d18, 0x3474, 0x1310, 0x27ac, 0x37c8, 0x28a4, 0x3141, /* sort */
+ 0x27ac, 0x0003, /* reverse */
+ 0x2a58, 0x0003, /* flip, flop */
+ 0x2cbc, 0x0003, /* cond_expr */
+ 0x2cbc, 0x0ef8, 0x03d6, 0x028c, 0x4068, 0x3ea4, 0x2561, /* entersub */
+ 0x3538, 0x0003, /* leavesub, leavesublv, leavewrite, leaveeval */
+ 0x02aa, 0x0003, /* argelem */
+ 0x00bc, 0x018f, /* caller */
+ 0x22d5, /* nextstate, dbstate */
+ 0x2b5c, 0x3539, /* leave */
+ 0x2cbc, 0x31d8, 0x0f6c, 0x3845, /* enteriter */
+ 0x3845, /* iter */
+ 0x2b5c, 0x0067, /* leaveloop */
+ 0x427c, 0x0003, /* last, next, redo, dump, goto */
+ 0x33bc, 0x32d8, 0x2714, 0x2650, 0x018f, /* open */
+ 0x1c70, 0x1ecc, 0x1d88, 0x1b44, 0x0003, /* ftrread, ftrwrite, ftrexec, fteread, ftewrite, fteexec */
+ 0x1c70, 0x1ecc, 0x1d88, 0x0003, /* ftis, ftsize, ftmtime, ftatime, ftctime, ftrowned, fteowned, ftzero, ftsock, ftchr, ftblk, ftfile, ftdir, ftpipe, ftsuid, ftsgid, ftsvtx, ftlink, fttty, fttext, ftbinary */
+ 0x4111, /* wait, getppid, time */
+ 0x35d4, 0x0d10, 0x076c, 0x41e8, 0x21e4, 0x0003, /* entereval */
+ 0x2e7c, 0x0018, 0x1224, 0x1141, /* coreargs */
+ 0x2dac, 0x00c7, /* avhvswitch */
+ 0x2cbc, 0x01fb, /* padrange */
+ 0x2cbc, 0x3df8, 0x04f6, 0x292c, 0x1828, 0x0067, /* refassign */
+ 0x2cbc, 0x3df8, 0x04f6, 0x292c, 0x1828, 0x0003, /* lvref */
+ 0x2cbd, /* lvrefslice */
+ 0x2cbc, 0x3df8, 0x0003, /* lvavref */
};
@@ -2909,7 +2939,6 @@ EXTCONST U8 PL_op_private_valid[] = {
/* PADAV */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpPAD_STATE|OPpLVAL_INTRO),
/* PADHV */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpMAYBE_TRUEBOOL|OPpTRUEBOOL|OPpPAD_STATE|OPpLVAL_INTRO),
/* PADANY */ (0),
- /* PUSHRE */ (OPpRUNTIME),
/* RV2GV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpDONT_INIT_GV|OPpMAYBE_LVSUB|OPpDEREF|OPpALLOW_FAKE|OPpLVAL_INTRO),
/* RV2SV */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpDEREF|OPpOUR_INTRO|OPpLVAL_INTRO),
/* AV2ARYLEN */ (OPpARG1_MASK|OPpMAYBE_LVSUB),
@@ -2927,10 +2956,10 @@ EXTCONST U8 PL_op_private_valid[] = {
/* REGCMAYBE */ (OPpARG1_MASK),
/* REGCRESET */ (OPpARG1_MASK),
/* REGCOMP */ (OPpARG1_MASK),
- /* MATCH */ (OPpRUNTIME),
- /* QR */ (OPpRUNTIME),
- /* SUBST */ (OPpRUNTIME),
- /* SUBSTCONT */ (OPpARG1_MASK|OPpRUNTIME),
+ /* MATCH */ (0),
+ /* QR */ (0),
+ /* SUBST */ (0),
+ /* SUBSTCONT */ (OPpARG1_MASK),
/* TRANS */ (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE),
/* TRANSR */ (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL|OPpTRANS_SQUASH|OPpTRANS_COMPLEMENT|OPpTRANS_GROWS|OPpTRANS_DELETE),
/* SASSIGN */ (OPpARG2_MASK|OPpASSIGN_BACKWARDS|OPpASSIGN_CV_TO_GV),
@@ -3038,8 +3067,8 @@ EXTCONST U8 PL_op_private_valid[] = {
/* ASLICE */ (OPpSLICEWARNING|OPpMAYBE_LVSUB|OPpLVAL_INTRO),
/* KVASLICE */ (OPpMAYBE_LVSUB),
/* AEACH */ (OPpARG1_MASK),
- /* AKEYS */ (OPpARG1_MASK),
/* AVALUES */ (OPpARG1_MASK),
+ /* AKEYS */ (OPpARG1_MASK|OPpMAYBE_LVSUB),
/* EACH */ (OPpARG1_MASK),
/* VALUES */ (OPpARG1_MASK),
/* KEYS */ (OPpARG1_MASK|OPpMAYBE_LVSUB),
@@ -3052,7 +3081,7 @@ EXTCONST U8 PL_op_private_valid[] = {
/* MULTIDEREF */ (OPpARG1_MASK|OPpHINT_STRICT_REFS|OPpMAYBE_LVSUB|OPpMULTIDEREF_EXISTS|OPpMULTIDEREF_DELETE|OPpLVAL_DEFER|OPpLVAL_INTRO),
/* UNPACK */ (OPpARG4_MASK),
/* PACK */ (OPpARG4_MASK),
- /* SPLIT */ (OPpOUR_INTRO|OPpSPLIT_IMPLIM),
+ /* SPLIT */ (OPpSPLIT_IMPLIM|OPpSPLIT_LEX|OPpSPLIT_ASSIGN|OPpOUR_INTRO|OPpLVAL_INTRO),
/* JOIN */ (OPpARG4_MASK),
/* LIST */ (OPpLIST_GUESSED|OPpLVAL_INTRO),
/* LSLICE */ (OPpARG2_MASK),
@@ -3084,6 +3113,9 @@ EXTCONST U8 PL_op_private_valid[] = {
/* ENTERSUB */ (OPpENTERSUB_INARGS|OPpHINT_STRICT_REFS|OPpENTERSUB_HASTARG|OPpENTERSUB_AMPER|OPpDEREF|OPpENTERSUB_DB|OPpLVAL_INTRO),
/* LEAVESUB */ (OPpARG1_MASK|OPpREFCOUNTED),
/* LEAVESUBLV */ (OPpARG1_MASK|OPpREFCOUNTED),
+ /* ARGCHECK */ (OPpARG1_MASK),
+ /* ARGELEM */ (OPpARG1_MASK|OPpARGELEM_MASK),
+ /* ARGDEFELEM */ (OPpARG1_MASK),
/* CALLER */ (OPpARG4_MASK|OPpOFFBYONE),
/* WARN */ (OPpARG4_MASK),
/* DIE */ (OPpARG4_MASK),
@@ -3278,6 +3310,7 @@ EXTCONST U8 PL_op_private_valid[] = {
/* ONCE */ (OPpARG1_MASK),
/* CUSTOM */ (0xff),
/* COREARGS */ (OPpCOREARGS_DEREF1|OPpCOREARGS_DEREF2|OPpCOREARGS_SCALARMOD|OPpCOREARGS_PUSHMARK),
+ /* AVHVSWITCH */ (OPpAVHVSWITCH_MASK|OPpMAYBE_LVSUB),
/* RUNCV */ (OPpOFFBYONE),
/* FC */ (OPpARG1_MASK),
/* PADCV */ (0),
diff --git a/Master/tlpkg/tlperl/lib/CORE/opnames.h b/Master/tlpkg/tlperl/lib/CORE/opnames.h
index 065c1a858f3..62bed505deb 100644
--- a/Master/tlpkg/tlperl/lib/CORE/opnames.h
+++ b/Master/tlpkg/tlperl/lib/CORE/opnames.h
@@ -27,390 +27,393 @@ typedef enum opcode {
OP_PADAV = 10,
OP_PADHV = 11,
OP_PADANY = 12,
- OP_PUSHRE = 13,
- OP_RV2GV = 14,
- OP_RV2SV = 15,
- OP_AV2ARYLEN = 16,
- OP_RV2CV = 17,
- OP_ANONCODE = 18,
- OP_PROTOTYPE = 19,
- OP_REFGEN = 20,
- OP_SREFGEN = 21,
- OP_REF = 22,
- OP_BLESS = 23,
- OP_BACKTICK = 24,
- OP_GLOB = 25,
- OP_READLINE = 26,
- OP_RCATLINE = 27,
- OP_REGCMAYBE = 28,
- OP_REGCRESET = 29,
- OP_REGCOMP = 30,
- OP_MATCH = 31,
- OP_QR = 32,
- OP_SUBST = 33,
- OP_SUBSTCONT = 34,
- OP_TRANS = 35,
- OP_TRANSR = 36,
- OP_SASSIGN = 37,
- OP_AASSIGN = 38,
- OP_CHOP = 39,
- OP_SCHOP = 40,
- OP_CHOMP = 41,
- OP_SCHOMP = 42,
- OP_DEFINED = 43,
- OP_UNDEF = 44,
- OP_STUDY = 45,
- OP_POS = 46,
- OP_PREINC = 47,
- OP_I_PREINC = 48,
- OP_PREDEC = 49,
- OP_I_PREDEC = 50,
- OP_POSTINC = 51,
- OP_I_POSTINC = 52,
- OP_POSTDEC = 53,
- OP_I_POSTDEC = 54,
- OP_POW = 55,
- OP_MULTIPLY = 56,
- OP_I_MULTIPLY = 57,
- OP_DIVIDE = 58,
- OP_I_DIVIDE = 59,
- OP_MODULO = 60,
- OP_I_MODULO = 61,
- OP_REPEAT = 62,
- OP_ADD = 63,
- OP_I_ADD = 64,
- OP_SUBTRACT = 65,
- OP_I_SUBTRACT = 66,
- OP_CONCAT = 67,
- OP_STRINGIFY = 68,
- OP_LEFT_SHIFT = 69,
- OP_RIGHT_SHIFT = 70,
- OP_LT = 71,
- OP_I_LT = 72,
- OP_GT = 73,
- OP_I_GT = 74,
- OP_LE = 75,
- OP_I_LE = 76,
- OP_GE = 77,
- OP_I_GE = 78,
- OP_EQ = 79,
- OP_I_EQ = 80,
- OP_NE = 81,
- OP_I_NE = 82,
- OP_NCMP = 83,
- OP_I_NCMP = 84,
- OP_SLT = 85,
- OP_SGT = 86,
- OP_SLE = 87,
- OP_SGE = 88,
- OP_SEQ = 89,
- OP_SNE = 90,
- OP_SCMP = 91,
- OP_BIT_AND = 92,
- OP_BIT_XOR = 93,
- OP_BIT_OR = 94,
- 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_RV2GV = 13,
+ OP_RV2SV = 14,
+ OP_AV2ARYLEN = 15,
+ OP_RV2CV = 16,
+ OP_ANONCODE = 17,
+ OP_PROTOTYPE = 18,
+ OP_REFGEN = 19,
+ OP_SREFGEN = 20,
+ OP_REF = 21,
+ OP_BLESS = 22,
+ OP_BACKTICK = 23,
+ OP_GLOB = 24,
+ OP_READLINE = 25,
+ OP_RCATLINE = 26,
+ OP_REGCMAYBE = 27,
+ OP_REGCRESET = 28,
+ OP_REGCOMP = 29,
+ OP_MATCH = 30,
+ OP_QR = 31,
+ OP_SUBST = 32,
+ OP_SUBSTCONT = 33,
+ OP_TRANS = 34,
+ OP_TRANSR = 35,
+ OP_SASSIGN = 36,
+ OP_AASSIGN = 37,
+ OP_CHOP = 38,
+ OP_SCHOP = 39,
+ OP_CHOMP = 40,
+ OP_SCHOMP = 41,
+ OP_DEFINED = 42,
+ OP_UNDEF = 43,
+ OP_STUDY = 44,
+ OP_POS = 45,
+ OP_PREINC = 46,
+ OP_I_PREINC = 47,
+ OP_PREDEC = 48,
+ OP_I_PREDEC = 49,
+ OP_POSTINC = 50,
+ OP_I_POSTINC = 51,
+ OP_POSTDEC = 52,
+ OP_I_POSTDEC = 53,
+ OP_POW = 54,
+ OP_MULTIPLY = 55,
+ OP_I_MULTIPLY = 56,
+ OP_DIVIDE = 57,
+ OP_I_DIVIDE = 58,
+ OP_MODULO = 59,
+ OP_I_MODULO = 60,
+ OP_REPEAT = 61,
+ OP_ADD = 62,
+ OP_I_ADD = 63,
+ OP_SUBTRACT = 64,
+ OP_I_SUBTRACT = 65,
+ OP_CONCAT = 66,
+ OP_STRINGIFY = 67,
+ OP_LEFT_SHIFT = 68,
+ OP_RIGHT_SHIFT = 69,
+ OP_LT = 70,
+ OP_I_LT = 71,
+ OP_GT = 72,
+ OP_I_GT = 73,
+ OP_LE = 74,
+ OP_I_LE = 75,
+ OP_GE = 76,
+ OP_I_GE = 77,
+ OP_EQ = 78,
+ OP_I_EQ = 79,
+ OP_NE = 80,
+ OP_I_NE = 81,
+ OP_NCMP = 82,
+ OP_I_NCMP = 83,
+ OP_SLT = 84,
+ OP_SGT = 85,
+ OP_SLE = 86,
+ OP_SGE = 87,
+ OP_SEQ = 88,
+ OP_SNE = 89,
+ OP_SCMP = 90,
+ OP_BIT_AND = 91,
+ OP_BIT_XOR = 92,
+ OP_BIT_OR = 93,
+ OP_NBIT_AND = 94,
+ OP_NBIT_XOR = 95,
+ OP_NBIT_OR = 96,
+ OP_SBIT_AND = 97,
+ OP_SBIT_XOR = 98,
+ OP_SBIT_OR = 99,
+ OP_NEGATE = 100,
+ OP_I_NEGATE = 101,
+ OP_NOT = 102,
+ OP_COMPLEMENT = 103,
+ OP_NCOMPLEMENT = 104,
+ OP_SCOMPLEMENT = 105,
+ OP_SMARTMATCH = 106,
+ OP_ATAN2 = 107,
+ OP_SIN = 108,
+ OP_COS = 109,
+ OP_RAND = 110,
+ OP_SRAND = 111,
+ OP_EXP = 112,
+ OP_LOG = 113,
+ OP_SQRT = 114,
+ OP_INT = 115,
+ OP_HEX = 116,
+ OP_OCT = 117,
+ OP_ABS = 118,
+ OP_LENGTH = 119,
+ OP_SUBSTR = 120,
+ OP_VEC = 121,
+ OP_INDEX = 122,
+ OP_RINDEX = 123,
+ OP_SPRINTF = 124,
+ OP_FORMLINE = 125,
+ OP_ORD = 126,
+ OP_CHR = 127,
+ OP_CRYPT = 128,
+ OP_UCFIRST = 129,
+ OP_LCFIRST = 130,
+ OP_UC = 131,
+ OP_LC = 132,
+ OP_QUOTEMETA = 133,
+ OP_RV2AV = 134,
+ OP_AELEMFAST = 135,
+ OP_AELEMFAST_LEX = 136,
+ OP_AELEM = 137,
+ OP_ASLICE = 138,
+ OP_KVASLICE = 139,
+ OP_AEACH = 140,
+ OP_AVALUES = 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_COREARGS = 381,
- OP_RUNCV = 382,
- OP_FC = 383,
- OP_PADCV = 384,
- OP_INTROCV = 385,
- OP_CLONECV = 386,
- OP_PADRANGE = 387,
- OP_REFASSIGN = 388,
- OP_LVREF = 389,
- OP_LVREFSLICE = 390,
- OP_LVAVREF = 391,
- OP_ANONCONST = 392,
+ OP_EACH = 143,
+ OP_VALUES = 144,
+ OP_KEYS = 145,
+ OP_DELETE = 146,
+ OP_EXISTS = 147,
+ OP_RV2HV = 148,
+ OP_HELEM = 149,
+ OP_HSLICE = 150,
+ OP_KVHSLICE = 151,
+ OP_MULTIDEREF = 152,
+ OP_UNPACK = 153,
+ OP_PACK = 154,
+ OP_SPLIT = 155,
+ OP_JOIN = 156,
+ OP_LIST = 157,
+ OP_LSLICE = 158,
+ OP_ANONLIST = 159,
+ OP_ANONHASH = 160,
+ OP_SPLICE = 161,
+ OP_PUSH = 162,
+ OP_POP = 163,
+ OP_SHIFT = 164,
+ OP_UNSHIFT = 165,
+ OP_SORT = 166,
+ OP_REVERSE = 167,
+ OP_GREPSTART = 168,
+ OP_GREPWHILE = 169,
+ OP_MAPSTART = 170,
+ OP_MAPWHILE = 171,
+ OP_RANGE = 172,
+ OP_FLIP = 173,
+ OP_FLOP = 174,
+ OP_AND = 175,
+ OP_OR = 176,
+ OP_XOR = 177,
+ OP_DOR = 178,
+ OP_COND_EXPR = 179,
+ OP_ANDASSIGN = 180,
+ OP_ORASSIGN = 181,
+ OP_DORASSIGN = 182,
+ OP_METHOD = 183,
+ OP_ENTERSUB = 184,
+ OP_LEAVESUB = 185,
+ OP_LEAVESUBLV = 186,
+ OP_ARGCHECK = 187,
+ OP_ARGELEM = 188,
+ OP_ARGDEFELEM = 189,
+ OP_CALLER = 190,
+ OP_WARN = 191,
+ OP_DIE = 192,
+ OP_RESET = 193,
+ OP_LINESEQ = 194,
+ OP_NEXTSTATE = 195,
+ OP_DBSTATE = 196,
+ OP_UNSTACK = 197,
+ OP_ENTER = 198,
+ OP_LEAVE = 199,
+ OP_SCOPE = 200,
+ OP_ENTERITER = 201,
+ OP_ITER = 202,
+ OP_ENTERLOOP = 203,
+ OP_LEAVELOOP = 204,
+ OP_RETURN = 205,
+ OP_LAST = 206,
+ OP_NEXT = 207,
+ OP_REDO = 208,
+ OP_DUMP = 209,
+ OP_GOTO = 210,
+ OP_EXIT = 211,
+ OP_METHOD_NAMED = 212,
+ OP_METHOD_SUPER = 213,
+ OP_METHOD_REDIR = 214,
+ OP_METHOD_REDIR_SUPER = 215,
+ OP_ENTERGIVEN = 216,
+ OP_LEAVEGIVEN = 217,
+ OP_ENTERWHEN = 218,
+ OP_LEAVEWHEN = 219,
+ OP_BREAK = 220,
+ OP_CONTINUE = 221,
+ OP_OPEN = 222,
+ OP_CLOSE = 223,
+ OP_PIPE_OP = 224,
+ OP_FILENO = 225,
+ OP_UMASK = 226,
+ OP_BINMODE = 227,
+ OP_TIE = 228,
+ OP_UNTIE = 229,
+ OP_TIED = 230,
+ OP_DBMOPEN = 231,
+ OP_DBMCLOSE = 232,
+ OP_SSELECT = 233,
+ OP_SELECT = 234,
+ OP_GETC = 235,
+ OP_READ = 236,
+ OP_ENTERWRITE = 237,
+ OP_LEAVEWRITE = 238,
+ OP_PRTF = 239,
+ OP_PRINT = 240,
+ OP_SAY = 241,
+ OP_SYSOPEN = 242,
+ OP_SYSSEEK = 243,
+ OP_SYSREAD = 244,
+ OP_SYSWRITE = 245,
+ OP_EOF = 246,
+ OP_TELL = 247,
+ OP_SEEK = 248,
+ OP_TRUNCATE = 249,
+ OP_FCNTL = 250,
+ OP_IOCTL = 251,
+ OP_FLOCK = 252,
+ OP_SEND = 253,
+ OP_RECV = 254,
+ OP_SOCKET = 255,
+ OP_SOCKPAIR = 256,
+ OP_BIND = 257,
+ OP_CONNECT = 258,
+ OP_LISTEN = 259,
+ OP_ACCEPT = 260,
+ OP_SHUTDOWN = 261,
+ OP_GSOCKOPT = 262,
+ OP_SSOCKOPT = 263,
+ OP_GETSOCKNAME = 264,
+ OP_GETPEERNAME = 265,
+ OP_LSTAT = 266,
+ OP_STAT = 267,
+ OP_FTRREAD = 268,
+ OP_FTRWRITE = 269,
+ OP_FTREXEC = 270,
+ OP_FTEREAD = 271,
+ OP_FTEWRITE = 272,
+ OP_FTEEXEC = 273,
+ OP_FTIS = 274,
+ OP_FTSIZE = 275,
+ OP_FTMTIME = 276,
+ OP_FTATIME = 277,
+ OP_FTCTIME = 278,
+ OP_FTROWNED = 279,
+ OP_FTEOWNED = 280,
+ OP_FTZERO = 281,
+ OP_FTSOCK = 282,
+ OP_FTCHR = 283,
+ OP_FTBLK = 284,
+ OP_FTFILE = 285,
+ OP_FTDIR = 286,
+ OP_FTPIPE = 287,
+ OP_FTSUID = 288,
+ OP_FTSGID = 289,
+ OP_FTSVTX = 290,
+ OP_FTLINK = 291,
+ OP_FTTTY = 292,
+ OP_FTTEXT = 293,
+ OP_FTBINARY = 294,
+ OP_CHDIR = 295,
+ OP_CHOWN = 296,
+ OP_CHROOT = 297,
+ OP_UNLINK = 298,
+ OP_CHMOD = 299,
+ OP_UTIME = 300,
+ OP_RENAME = 301,
+ OP_LINK = 302,
+ OP_SYMLINK = 303,
+ OP_READLINK = 304,
+ OP_MKDIR = 305,
+ OP_RMDIR = 306,
+ OP_OPEN_DIR = 307,
+ OP_READDIR = 308,
+ OP_TELLDIR = 309,
+ OP_SEEKDIR = 310,
+ OP_REWINDDIR = 311,
+ OP_CLOSEDIR = 312,
+ OP_FORK = 313,
+ OP_WAIT = 314,
+ OP_WAITPID = 315,
+ OP_SYSTEM = 316,
+ OP_EXEC = 317,
+ OP_KILL = 318,
+ OP_GETPPID = 319,
+ OP_GETPGRP = 320,
+ OP_SETPGRP = 321,
+ OP_GETPRIORITY = 322,
+ OP_SETPRIORITY = 323,
+ OP_TIME = 324,
+ OP_TMS = 325,
+ OP_LOCALTIME = 326,
+ OP_GMTIME = 327,
+ OP_ALARM = 328,
+ OP_SLEEP = 329,
+ OP_SHMGET = 330,
+ OP_SHMCTL = 331,
+ OP_SHMREAD = 332,
+ OP_SHMWRITE = 333,
+ OP_MSGGET = 334,
+ OP_MSGCTL = 335,
+ OP_MSGSND = 336,
+ OP_MSGRCV = 337,
+ OP_SEMOP = 338,
+ OP_SEMGET = 339,
+ OP_SEMCTL = 340,
+ OP_REQUIRE = 341,
+ OP_DOFILE = 342,
+ OP_HINTSEVAL = 343,
+ OP_ENTEREVAL = 344,
+ OP_LEAVEEVAL = 345,
+ OP_ENTERTRY = 346,
+ OP_LEAVETRY = 347,
+ OP_GHBYNAME = 348,
+ OP_GHBYADDR = 349,
+ OP_GHOSTENT = 350,
+ OP_GNBYNAME = 351,
+ OP_GNBYADDR = 352,
+ OP_GNETENT = 353,
+ OP_GPBYNAME = 354,
+ OP_GPBYNUMBER = 355,
+ OP_GPROTOENT = 356,
+ OP_GSBYNAME = 357,
+ OP_GSBYPORT = 358,
+ OP_GSERVENT = 359,
+ OP_SHOSTENT = 360,
+ OP_SNETENT = 361,
+ OP_SPROTOENT = 362,
+ OP_SSERVENT = 363,
+ OP_EHOSTENT = 364,
+ OP_ENETENT = 365,
+ OP_EPROTOENT = 366,
+ OP_ESERVENT = 367,
+ OP_GPWNAM = 368,
+ OP_GPWUID = 369,
+ OP_GPWENT = 370,
+ OP_SPWENT = 371,
+ OP_EPWENT = 372,
+ OP_GGRNAM = 373,
+ OP_GGRGID = 374,
+ OP_GGRENT = 375,
+ OP_SGRENT = 376,
+ OP_EGRENT = 377,
+ OP_GETLOGIN = 378,
+ OP_SYSCALL = 379,
+ OP_LOCK = 380,
+ OP_ONCE = 381,
+ OP_CUSTOM = 382,
+ OP_COREARGS = 383,
+ OP_AVHVSWITCH = 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 393
+#define MAXO 396
#define OP_FREED MAXO
/* the OP_IS_* macros are optimized to a simple range check because
diff --git a/Master/tlpkg/tlperl/lib/CORE/pad.h b/Master/tlpkg/tlperl/lib/CORE/pad.h
index 7ed10333f20..56d88abc8dc 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pad.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pad.h
@@ -18,13 +18,7 @@
/* offsets within a pad */
-#if PTRSIZE == 4
-typedef U32TYPE PADOFFSET;
-#else
-# if PTRSIZE == 8
-typedef U64TYPE PADOFFSET;
-# endif
-#endif
+typedef SSize_t PADOFFSET; /* signed so that -1 is a valid value */
#define NOT_IN_PAD ((PADOFFSET) -1)
/* B.xs expects the first members of these two structs to line up
diff --git a/Master/tlpkg/tlperl/lib/CORE/parser.h b/Master/tlpkg/tlperl/lib/CORE/parser.h
index 96ab4f5ff57..4187e0a93db 100644
--- a/Master/tlpkg/tlperl/lib/CORE/parser.h
+++ b/Master/tlpkg/tlperl/lib/CORE/parser.h
@@ -42,9 +42,9 @@ typedef struct yy_parser {
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
- int stack_size;
int yylen; /* length of active reduction */
yy_stack_frame *stack; /* base of stack */
+ yy_stack_frame *stack_max1;/* (top-1)th element of allocated stack */
yy_stack_frame *ps; /* current stack frame */
/* lexer state */
@@ -56,8 +56,8 @@ typedef struct yy_parser {
U8 lex_defer; /* state after determined token */
U8 lex_dojoin; /* doing an array interpolation
1 = @{...} 2 = ->@ */
- U8 lex_expect; /* UNUSED */
U8 expect; /* how to interpret ambiguous tokens */
+ bool preambled;
I32 lex_formbrack; /* bracket count at outer format level */
OP *lex_inpat; /* in pattern $) and $| are special */
OP *lex_op; /* extra info to pass back on op */
@@ -68,12 +68,14 @@ typedef struct yy_parser {
SV *lex_stuff; /* runtime pattern from m// or s/// */
I32 multi_start; /* 1st line of multi-line string */
I32 multi_end; /* last line of multi-line string */
- char multi_open; /* delimiter of said string */
- char multi_close; /* delimiter of said string */
- bool preambled;
+ UV multi_open; /* delimiter of said string */
+ UV multi_close; /* delimiter of said string */
bool lex_re_reparsing; /* we're doing G_RE_REPARSING */
+ U8 lex_super_state;/* lexer state to save */
+ U16 lex_sub_inwhat; /* "lex_inwhat" to use in sublex_push */
I32 lex_allbrackets;/* (), [], {}, ?: bracket count */
- SUBLEXINFO sublex_info;
+ OP *lex_sub_op; /* current op in y/// or pattern */
+ SV *lex_sub_repl; /* repl of s/// used in sublex_push */
LEXSHARED *lex_shared;
SV *linestr; /* current chunk of src text */
char *bufptr; /* carries the cursor (current parsing
@@ -96,18 +98,25 @@ typedef struct yy_parser {
HV *in_my_stash; /* declared class of this "my" declaration */
PerlIO *rsfp; /* current source file pointer */
AV *rsfp_filters; /* holds chain of active source filters */
- U8 form_lex_state; /* remember lex_state when parsing fmt */
YYSTYPE nextval[5]; /* value of next token, if any */
I32 nexttype[5]; /* type of next token */
- U32 nexttoke;
-
+ U8 nexttoke;
+ U8 form_lex_state; /* remember lex_state when parsing fmt */
+ U8 lex_fakeeof; /* precedence at which to fake EOF */
+ U8 lex_flags;
COP *saved_curcop; /* the previous PL_curcop */
char tokenbuf[256];
line_t herelines; /* number of lines in here-doc */
line_t preambling; /* line # when processing $ENV{PERL5DB} */
- U8 lex_fakeeof; /* precedence at which to fake EOF */
- U8 lex_flags;
+
+ /* these are valid while parsing a subroutine signature */
+ IV sig_elems; /* number of signature elements seen so far */
+ IV sig_optelems; /* number of optional signature elems seen */
+ char sig_slurpy; /* the sigil of the slurpy var (or null) */
+
+ bool recheck_utf8_validity;
+
PERL_BITFIELD16 in_pod:1; /* lexer is within a =pod section */
PERL_BITFIELD16 filtered:1; /* source filters in evalbytes */
PERL_BITFIELD16 saw_infix_sigil:1; /* saw & or * or % operator */
diff --git a/Master/tlpkg/tlperl/lib/CORE/patchlevel.h b/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
index 0d8ab183f39..a0625032987 100644
--- a/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
+++ b/Master/tlpkg/tlperl/lib/CORE/patchlevel.h
@@ -14,7 +14,7 @@
* exactly on the third column */
#define PERL_REVISION 5 /* age */
-#define PERL_VERSION 24 /* epoch */
+#define PERL_VERSION 26 /* epoch */
#define PERL_SUBVERSION 1 /* generation */
/* The following numbers describe the earliest compatible version of
@@ -35,7 +35,7 @@
changing them should not be necessary.
*/
#define PERL_API_REVISION 5
-#define PERL_API_VERSION 24
+#define PERL_API_VERSION 26
#define PERL_API_SUBVERSION 0
/*
XXX Note: The selection of non-default Configure options, such
@@ -90,8 +90,8 @@
#!perl
die "Usage: perl -x patchlevel.h comment ..." unless @ARGV;
-open PLIN, "patchlevel.h" or die "Couldn't open patchlevel.h : $!";
-open PLOUT, ">patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
+open PLIN, "<", "patchlevel.h" or die "Couldn't open patchlevel.h : $!";
+open PLOUT, ">", "patchlevel.new" or die "Couldn't write on patchlevel.new : $!";
my $seen=0;
while (<PLIN>) {
if (/\t,NULL/ and $seen) {
diff --git a/Master/tlpkg/tlperl/lib/CORE/perl.h b/Master/tlpkg/tlperl/lib/CORE/perl.h
index f8f0069dfa5..7c07afd6c75 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perl.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perl.h
@@ -28,6 +28,16 @@
# include "config.h"
#endif
+/* this is used for functions which take a depth trailing
+ * argument under debugging */
+#ifdef DEBUGGING
+#define _pDEPTH ,U32 depth
+#define _aDEPTH ,depth
+#else
+#define _pDEPTH
+#define _aDEPTH
+#endif
+
/* NOTE 1: that with gcc -std=c89 the __STDC_VERSION__ is *not* defined
* because the __STDC_VERSION__ became a thing only with C90. Therefore,
* with gcc, HAS_C99 will never become true as long as we use -std=c89.
@@ -322,12 +332,7 @@
* or variables/arguments that are used only in certain configurations.
*/
#ifndef PERL_UNUSED_ARG
-# if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
-# include <note.h>
-# define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
-# else
-# define PERL_UNUSED_ARG(x) ((void)sizeof(x))
-# endif
+# define PERL_UNUSED_ARG(x) ((void)sizeof(x))
#endif
#ifndef PERL_UNUSED_VAR
# define PERL_UNUSED_VAR(x) ((void)sizeof(x))
@@ -729,6 +734,10 @@
# include <locale.h>
#endif
+#ifdef I_XLOCALE
+# include <xlocale.h>
+#endif
+
#if !defined(NO_LOCALE) && defined(HAS_SETLOCALE)
# define USE_LOCALE
# define HAS_SKIP_LOCALE_INIT /* Solely for XS code to test for this
@@ -757,10 +766,6 @@
# endif
#endif /* !NO_LOCALE && HAS_SETLOCALE */
-/* Is $^ENCODING set, or are we under the encoding pragma? */
-#define IN_ENCODING UNLIKELY(PL_encoding \
- || (PL_lex_encoding && _get_encoding() != NULL))
-
#include <setjmp.h>
#ifdef I_SYS_PARAM
@@ -1041,9 +1046,8 @@ EXTERN_C int usleep(unsigned int);
# endif
# endif
#else
-# ifndef memcmp
-# define memcmp my_memcmp
-# endif
+# undef memcmp
+# define memcmp my_memcmp
#endif /* HAS_MEMCMP && HAS_SANE_MEMCMP */
#ifndef memzero
@@ -1271,14 +1275,13 @@ EXTERN_C char *crypt(const char *, const char *);
#define CLEAR_ERRSV() STMT_START { \
SV ** const svp = &GvSV(PL_errgv); \
if (!*svp) { \
- goto clresv_newemptypv; \
+ *svp = newSVpvs(""); \
} else if (SvREADONLY(*svp)) { \
SvREFCNT_dec_NN(*svp); \
- clresv_newemptypv: \
*svp = newSVpvs(""); \
} else { \
SV *const errsv = *svp; \
- sv_setpvs(errsv, ""); \
+ SvPVCLEAR(errsv); \
SvPOK_only(errsv); \
if (SvMAGICAL(errsv)) { \
mg_free(errsv); \
@@ -2022,6 +2025,12 @@ extern long double Perl_my_frexpl(long double x, int *e);
# define Perl_isinf(x) isinfq(x)
# define Perl_isnan(x) isnanq(x)
# define Perl_isfinite(x) !(isnanq(x) || isinfq(x))
+# define Perl_fp_class(x) ((x) == 0.0Q ? 0 : isinfq(x) ? 3 : isnanq(x) ? 4 : PERL_ABS(x) < FLT128_MIN ? 2 : 1)
+# define Perl_fp_class_inf(x) (Perl_fp_class(x) == 3)
+# define Perl_fp_class_nan(x) (Perl_fp_class(x) == 4)
+# define Perl_fp_class_norm(x) (Perl_fp_class(x) == 1)
+# define Perl_fp_class_denorm(x) (Perl_fp_class(x) == 2)
+# define Perl_fp_class_zero(x) (Perl_fp_class(x) == 0)
#else
# define NV_DIG DBL_DIG
# ifdef DBL_MANT_DIG
@@ -2666,6 +2675,11 @@ typedef AV PAD;
typedef struct padnamelist PADNAMELIST;
typedef struct padname PADNAME;
+/* enable PERL_OP_PARENT by default */
+#if !defined(PERL_OP_PARENT) && !defined(PERL_NO_OP_PARENT)
+# define PERL_OP_PARENT
+#endif
+
/* enable PERL_COPY_ON_WRITE by default */
#if !defined(PERL_COPY_ON_WRITE) && !defined(PERL_NO_COW)
# define PERL_COPY_ON_WRITE
@@ -3064,6 +3078,8 @@ freeing any remaining Perl interpreters.
*/
#if defined(USE_ITHREADS) && defined(I_PTHREAD) && \
defined(__clang__) && \
+ !defined(PERL_GLOBAL_STRUCT) && \
+ !defined(PERL_GLOBAL_STRUCT_PRIVATE) && \
!defined(SWIG) && \
((!defined(__apple_build_version__) && \
((__clang_major__ == 3 && __clang_minor__ >= 6) || \
@@ -3777,7 +3793,7 @@ EXTERN_C int perl_tsa_mutex_unlock(perl_mutex* mutex)
# define USEMYBINMODE /**/
# include <io.h> /* for setmode() prototype */
# define my_binmode(fp, iotype, mode) \
- (PerlLIO_setmode(fileno(fp), mode) != -1 ? TRUE : FALSE)
+ cBOOL(PerlLIO_setmode(fileno(fp), mode) != -1)
#endif
#ifdef __CYGWIN__
@@ -3789,6 +3805,14 @@ UNION_ANY_DEFINITION;
#else
union any {
void* any_ptr;
+ SV* any_sv;
+ SV** any_svp;
+ GV* any_gv;
+ AV* any_av;
+ HV* any_hv;
+ OP* any_op;
+ char* any_pv;
+ char** any_pvp;
I32 any_i32;
U32 any_u32;
IV any_iv;
@@ -3872,12 +3896,6 @@ typedef struct crypt_data { /* straight from /usr/include/crypt.h */
# define USE_HASH_SEED
#endif
-/* Win32 defines a type 'WORD' in windef.h, and AmigaOS in exec/types.h.
- * This conflicts with the enumerator 'WORD' defined in perly.h.
- * The yytokentype enum is only a debugging aid, so it's not really needed. */
-#if defined(WIN32) || defined(__amigaos4__)
-# define YYTOKENTYPE
-#endif
#include "perly.h"
@@ -3918,14 +3936,6 @@ typedef struct crypt_data { /* straight from /usr/include/crypt.h */
#undef _XPVMG_HEAD
#undef _XPVCV_COMMON
-typedef struct _sublex_info SUBLEXINFO;
-struct _sublex_info {
- U8 super_state; /* lexer state to save */
- U16 sub_inwhat; /* "lex_inwhat" to use */
- OP *sub_op; /* "lex_op" to use */
- SV *repl; /* replacement of s/// or y/// */
-};
-
#include "parser.h"
typedef struct magic_state MGS; /* struct magic_state defined in mg.c */
@@ -4177,34 +4187,34 @@ Gid_t getegid (void);
#define DEBUG_DB_RECURSE_FLAG 0x40000000
#define DEBUG_TOP_FLAG 0x80000000 /* -D was given --> PL_debug |= FLAG */
-# define DEBUG_p_TEST_ (PL_debug & DEBUG_p_FLAG)
-# define DEBUG_s_TEST_ (PL_debug & DEBUG_s_FLAG)
-# define DEBUG_l_TEST_ (PL_debug & DEBUG_l_FLAG)
-# define DEBUG_t_TEST_ (PL_debug & DEBUG_t_FLAG)
-# define DEBUG_o_TEST_ (PL_debug & DEBUG_o_FLAG)
-# define DEBUG_c_TEST_ (PL_debug & DEBUG_c_FLAG)
-# define DEBUG_P_TEST_ (PL_debug & DEBUG_P_FLAG)
-# define DEBUG_m_TEST_ (PL_debug & DEBUG_m_FLAG)
-# define DEBUG_f_TEST_ (PL_debug & DEBUG_f_FLAG)
-# define DEBUG_r_TEST_ (PL_debug & DEBUG_r_FLAG)
-# define DEBUG_x_TEST_ (PL_debug & DEBUG_x_FLAG)
-# define DEBUG_u_TEST_ (PL_debug & DEBUG_u_FLAG)
-# define DEBUG_U_TEST_ (PL_debug & DEBUG_U_FLAG)
-# define DEBUG_H_TEST_ (PL_debug & DEBUG_H_FLAG)
-# define DEBUG_X_TEST_ (PL_debug & DEBUG_X_FLAG)
-# define DEBUG_D_TEST_ (PL_debug & DEBUG_D_FLAG)
-# define DEBUG_S_TEST_ (PL_debug & DEBUG_S_FLAG)
-# define DEBUG_T_TEST_ (PL_debug & DEBUG_T_FLAG)
-# define DEBUG_R_TEST_ (PL_debug & DEBUG_R_FLAG)
-# define DEBUG_J_TEST_ (PL_debug & DEBUG_J_FLAG)
-# define DEBUG_v_TEST_ (PL_debug & DEBUG_v_FLAG)
-# define DEBUG_C_TEST_ (PL_debug & DEBUG_C_FLAG)
-# define DEBUG_A_TEST_ (PL_debug & DEBUG_A_FLAG)
-# define DEBUG_q_TEST_ (PL_debug & DEBUG_q_FLAG)
-# define DEBUG_M_TEST_ (PL_debug & DEBUG_M_FLAG)
-# define DEBUG_B_TEST_ (PL_debug & DEBUG_B_FLAG)
-# define DEBUG_L_TEST_ (PL_debug & DEBUG_L_FLAG)
-# define DEBUG_i_TEST_ (PL_debug & DEBUG_i_FLAG)
+# define DEBUG_p_TEST_ UNLIKELY(PL_debug & DEBUG_p_FLAG)
+# define DEBUG_s_TEST_ UNLIKELY(PL_debug & DEBUG_s_FLAG)
+# define DEBUG_l_TEST_ UNLIKELY(PL_debug & DEBUG_l_FLAG)
+# define DEBUG_t_TEST_ UNLIKELY(PL_debug & DEBUG_t_FLAG)
+# define DEBUG_o_TEST_ UNLIKELY(PL_debug & DEBUG_o_FLAG)
+# define DEBUG_c_TEST_ UNLIKELY(PL_debug & DEBUG_c_FLAG)
+# define DEBUG_P_TEST_ UNLIKELY(PL_debug & DEBUG_P_FLAG)
+# define DEBUG_m_TEST_ UNLIKELY(PL_debug & DEBUG_m_FLAG)
+# define DEBUG_f_TEST_ UNLIKELY(PL_debug & DEBUG_f_FLAG)
+# define DEBUG_r_TEST_ UNLIKELY(PL_debug & DEBUG_r_FLAG)
+# define DEBUG_x_TEST_ UNLIKELY(PL_debug & DEBUG_x_FLAG)
+# define DEBUG_u_TEST_ UNLIKELY(PL_debug & DEBUG_u_FLAG)
+# define DEBUG_U_TEST_ UNLIKELY(PL_debug & DEBUG_U_FLAG)
+# define DEBUG_H_TEST_ UNLIKELY(PL_debug & DEBUG_H_FLAG)
+# define DEBUG_X_TEST_ UNLIKELY(PL_debug & DEBUG_X_FLAG)
+# define DEBUG_D_TEST_ UNLIKELY(PL_debug & DEBUG_D_FLAG)
+# define DEBUG_S_TEST_ UNLIKELY(PL_debug & DEBUG_S_FLAG)
+# define DEBUG_T_TEST_ UNLIKELY(PL_debug & DEBUG_T_FLAG)
+# define DEBUG_R_TEST_ UNLIKELY(PL_debug & DEBUG_R_FLAG)
+# define DEBUG_J_TEST_ UNLIKELY(PL_debug & DEBUG_J_FLAG)
+# define DEBUG_v_TEST_ UNLIKELY(PL_debug & DEBUG_v_FLAG)
+# define DEBUG_C_TEST_ UNLIKELY(PL_debug & DEBUG_C_FLAG)
+# define DEBUG_A_TEST_ UNLIKELY(PL_debug & DEBUG_A_FLAG)
+# define DEBUG_q_TEST_ UNLIKELY(PL_debug & DEBUG_q_FLAG)
+# define DEBUG_M_TEST_ UNLIKELY(PL_debug & DEBUG_M_FLAG)
+# define DEBUG_B_TEST_ UNLIKELY(PL_debug & DEBUG_B_FLAG)
+# define DEBUG_L_TEST_ UNLIKELY(PL_debug & DEBUG_L_FLAG)
+# define DEBUG_i_TEST_ UNLIKELY(PL_debug & DEBUG_i_FLAG)
# define DEBUG_Xv_TEST_ (DEBUG_X_TEST_ && DEBUG_v_TEST_)
# define DEBUG_Uv_TEST_ (DEBUG_U_TEST_ && DEBUG_v_TEST_)
# define DEBUG_Pv_TEST_ (DEBUG_P_TEST_ && DEBUG_v_TEST_)
@@ -4259,21 +4269,30 @@ Gid_t getegid (void);
/* Temporarily turn off memory debugging in case the a
* does memory allocation, either directly or indirectly. */
# define DEBUG_m(a) \
- STMT_START { \
- if (PERL_GET_INTERP) { dTHX; if (DEBUG_m_TEST) {PL_debug&=~DEBUG_m_FLAG; a; PL_debug|=DEBUG_m_FLAG;} } \
+ STMT_START { \
+ if (PERL_GET_INTERP) { \
+ dTHX; \
+ if (DEBUG_m_TEST) { \
+ PL_debug &= ~DEBUG_m_FLAG; \
+ a; \
+ PL_debug |= DEBUG_m_FLAG; \
+ } \
+ } \
} STMT_END
-# define DEBUG__(t, a) \
- STMT_START { \
- if (t) STMT_START {a;} STMT_END; \
- } STMT_END
+# define DEBUG__(t, a) \
+ STMT_START { \
+ if (t) STMT_START {a;} STMT_END; \
+ } STMT_END
# define DEBUG_f(a) DEBUG__(DEBUG_f_TEST, a)
+
#ifndef PERL_EXT_RE_BUILD
# define DEBUG_r(a) DEBUG__(DEBUG_r_TEST, a)
#else
# define DEBUG_r(a) STMT_START {a;} STMT_END
#endif /* PERL_EXT_RE_BUILD */
+
# define DEBUG_x(a) DEBUG__(DEBUG_x_TEST, a)
# define DEBUG_u(a) DEBUG__(DEBUG_u_TEST, a)
# define DEBUG_U(a) DEBUG__(DEBUG_U_TEST, a)
@@ -4780,6 +4799,12 @@ EXTCONST U8 PL_subversion
EXTCONST char PL_uuemap[65]
INIT("`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_");
+/* a special string address whose value is "isa", but which perl knows
+ * to treat as if it were really "DOES" when printing the method name in
+ * the "Can't call method '%s'" error message */
+EXTCONST char PL_isa_DOES[]
+ INIT("isa");
+
#ifdef DOINIT
EXTCONST char PL_uudmap[256] =
# ifdef PERL_MICRO
@@ -5124,7 +5149,7 @@ EXTCONST char* PL_block_type[];
/* These are all the compile time options that affect binary compatibility.
Other compile time options that are binary compatible are in perl.c
- Both are combined for the output of perl -V
+ (in S_Internals_V()). Both are combined for the output of perl -V
However, this string will be embedded in any shared perl library, which will
allow us add a comparison check in perlmain.c in the near future. */
#ifdef DOINIT
@@ -5284,9 +5309,11 @@ EXTCONST char *const PL_phase_names[];
# define PL_dirty cBOOL(PL_phase == PERL_PHASE_DESTRUCT)
# define PL_amagic_generation PL_na
+# define PL_encoding ((SV *)NULL)
#endif /* !PERL_CORE */
#define PL_hints PL_compiling.cop_hints
+#define PL_maxo MAXO
END_EXTERN_C
@@ -5322,6 +5349,8 @@ typedef enum {
/* update exp_name[] in toke.c if adding to this enum */
} expectation;
+#define KEY_sigvar 0xFFFF /* fake keyword representing a signature var */
+
/* Hints are now stored in a dedicated U32, so the bottom 8 bits are no longer
special and there is no need for HINT_PRIVATE_MASK for COPs
However, bitops store HINT_INTEGER in their op_private.
@@ -5709,120 +5738,17 @@ EXTCONST bool PL_valid_types_NV_set[];
/* In C99 we could use designated (named field) union initializers.
* In C89 we need to initialize the member declared first.
+ * In C++ we need extern C initializers.
*
* With the U8_NV version you will want to have inner braces,
- * while with the NV_U8 use just the NV.*/
-#define INFNAN_U8_NV_DECL EXTCONST union { U8 u8[NVSIZE]; NV nv; }
-#define INFNAN_NV_U8_DECL EXTCONST union { NV nv; U8 u8[NVSIZE]; }
-
-#ifdef DOINIT
-
-/* PL_inf and PL_nan initialization.
- *
- * For inf and nan initialization the ultimate fallback is dividing
- * one or zero by zero: however, some compilers will warn or even fail
- * on divide-by-zero, but hopefully something earlier will work.
- *
- * 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,
- * and the math functions might be just generating DBL_MAX, or even zero.
- *
- * Also, do NOT try doing NV_NAN based on NV_INF and trying (NV_INF-NV_INF).
- * Though logically correct, some compilers (like Visual C 2003)
- * falsely misoptimize that to zero (x-x is always zero, right?)
- */
-
-/* The quadmath literals are anon structs which -Wc++-compat doesn't like. */
-GCC_DIAG_IGNORE(-Wc++-compat)
-
-# ifdef USE_QUADMATH
-/* Cannot use HUGE_VALQ for PL_inf because not a compile-time
- * constant. */
-INFNAN_NV_U8_DECL PL_inf = { 1.0Q/0.0Q };
-# elif NVSIZE == LONG_DOUBLESIZE && defined(LONGDBLINFBYTES)
-INFNAN_U8_NV_DECL PL_inf = { { LONGDBLINFBYTES } };
-# elif NVSIZE == DOUBLESIZE && defined(DOUBLEINFBYTES)
-INFNAN_U8_NV_DECL PL_inf = { { DOUBLEINFBYTES } };
-# else
-# if NVSIZE == LONG_DOUBLESIZE && defined(USE_LONG_DOUBLE)
-# if defined(LDBL_INFINITY)
-INFNAN_NV_U8_DECL PL_inf = { LDBL_INFINITY };
-# elif defined(LDBL_INF)
-INFNAN_NV_U8_DECL PL_inf = { LDBL_INF };
-# elif defined(INFINITY)
-INFNAN_NV_U8_DECL PL_inf = { (NV)INFINITY };
-# elif defined(INF)
-INFNAN_NV_U8_DECL PL_inf = { (NV)INF };
-# else
-INFNAN_NV_U8_DECL PL_inf = { 1.0L/0.0L }; /* keep last */
-# endif
-# else
-# if defined(DBL_INFINITY)
-INFNAN_NV_U8_DECL PL_inf = { DBL_INFINITY };
-# elif defined(DBL_INF)
-INFNAN_NV_U8_DECL PL_inf = { DBL_INF };
-# elif defined(INFINITY) /* C99 */
-INFNAN_NV_U8_DECL PL_inf = { (NV)INFINITY };
-# elif defined(INF)
-INFNAN_NV_U8_DECL PL_inf = { (NV)INF };
-# else
-INFNAN_NV_U8_DECL PL_inf = { 1.0/0.0 }; /* keep last */
-# endif
-# endif
-# endif
-
-# ifdef USE_QUADMATH
-/* Cannot use nanq("0") for PL_nan because not a compile-time
- * constant. */
-INFNAN_NV_U8_DECL PL_nan = { 0.0Q/0.0Q };
-# elif NVSIZE == LONG_DOUBLESIZE && defined(LONGDBLNANBYTES)
-INFNAN_U8_NV_DECL PL_nan = { { LONGDBLNANBYTES } };
-# elif NVSIZE == DOUBLESIZE && defined(DOUBLENANBYTES)
-INFNAN_U8_NV_DECL PL_nan = { { DOUBLENANBYTES } };
-# else
-# if NVSIZE == LONG_DOUBLESIZE && defined(USE_LONG_DOUBLE)
-# if defined(LDBL_NAN)
-INFNAN_NV_U8_DECL PL_nan = { LDBL_NAN };
-# elif defined(LDBL_QNAN)
-INFNAN_NV_U8_DECL PL_nan = { LDBL_QNAN };
-# elif defined(NAN)
-INFNAN_NV_U8_DECL PL_nan = { (NV)NAN };
-# else
-INFNAN_NV_U8_DECL PL_nan = { 0.0L/0.0L }; /* keep last */
-# endif
-# else
-# if defined(DBL_NAN)
-INFNAN_NV_U8_DECL PL_nan = { DBL_NAN };
-# elif defined(DBL_QNAN)
-INFNAN_NV_U8_DECL PL_nan = { DBL_QNAN };
-# elif defined(NAN) /* C99 */
-INFNAN_NV_U8_DECL PL_nan = { (NV)NAN };
-# else
-INFNAN_NV_U8_DECL PL_nan = { 0.0/0.0 }; /* keep last */
-# endif
-# endif
-# endif
-
-GCC_DIAG_RESTORE
+ * while with the NV_U8 use just the NV. */
+#ifdef __cplusplus
+#define INFNAN_U8_NV_DECL EXTERN_C const union { U8 u8[NVSIZE]; NV nv; }
+#define INFNAN_NV_U8_DECL EXTERN_C const union { NV nv; U8 u8[NVSIZE]; }
#else
-
-INFNAN_NV_U8_DECL PL_inf;
-INFNAN_NV_U8_DECL PL_nan;
-
-#endif
-
-/* If you have not defined NV_INF/NV_NAN (like for example win32/win32.h),
- * we will define NV_INF/NV_NAN as the nv part of the global const
- * PL_inf/PL_nan. Note, however, that the preexisting NV_INF/NV_NAN
- * might not be a compile-time constant, in which case it cannot be
- * used to initialize PL_inf/PL_nan above. */
-#ifndef NV_INF
-# define NV_INF PL_inf.nv
-#endif
-#ifndef NV_NAN
-# define NV_NAN PL_nan.nv
+#define INFNAN_U8_NV_DECL EXTCONST union { U8 u8[NVSIZE]; NV nv; }
+#define INFNAN_NV_U8_DECL EXTCONST union { NV nv; U8 u8[NVSIZE]; }
#endif
/* if these never got defined, they need defaults */
@@ -5962,14 +5888,31 @@ typedef struct am_table_short AMTS;
/* These locale things are all subject to change */
# define LOCALE_INIT MUTEX_INIT(&PL_locale_mutex)
-# define LOCALE_TERM MUTEX_DESTROY(&PL_locale_mutex)
+
+# ifdef USE_THREAD_SAFE_LOCALE
+# define LOCALE_TERM \
+ STMT_START { \
+ MUTEX_DESTROY(&PL_locale_mutex); \
+ if (PL_C_locale_obj) { \
+ /* Make sure we aren't using the locale \
+ * space we are about to free */ \
+ uselocale(LC_GLOBAL_LOCALE); \
+ freelocale(PL_C_locale_obj); \
+ PL_C_locale_obj = (locale_t) NULL; \
+ } \
+ } STMT_END
+ }
+# else
+# define LOCALE_TERM MUTEX_DESTROY(&PL_locale_mutex)
+# endif
# define LOCALE_LOCK MUTEX_LOCK(&PL_locale_mutex)
# define LOCALE_UNLOCK MUTEX_UNLOCK(&PL_locale_mutex)
/* Returns TRUE if the plain locale pragma without a parameter is in effect
*/
-# define IN_LOCALE_RUNTIME cBOOL(CopHINTS_get(PL_curcop) & HINT_LOCALE)
+# define IN_LOCALE_RUNTIME (PL_curcop \
+ && CopHINTS_get(PL_curcop) & HINT_LOCALE)
/* Returns TRUE if either form of the locale pragma is in effect */
# define IN_SOME_LOCALE_FORM_RUNTIME \
@@ -5990,7 +5933,7 @@ typedef struct am_table_short AMTS;
# define IN_LC_PARTIAL_COMPILETIME cBOOL(PL_hints & HINT_LOCALE_PARTIAL)
# define IN_LC_PARTIAL_RUNTIME \
- cBOOL(CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL)
+ (PL_curcop && CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL)
# define IN_LC_COMPILETIME(category) \
(IN_LC_ALL_COMPILETIME || (IN_LC_PARTIAL_COMPILETIME \
@@ -6029,8 +5972,8 @@ typedef struct am_table_short AMTS;
STMT_START { \
if (! PL_in_utf8_CTYPE_locale && ckWARN(WARN_LOCALE)) { \
Perl_warner(aTHX_ packWARN(WARN_LOCALE), \
- "Wide character (U+%"UVXf") in %s", \
- (UV) cp, OP_DESC(PL_op)); \
+ "Wide character (U+%" UVXf ") in %s",\
+ (UV) cp, OP_DESC(PL_op)); \
} \
} STMT_END
@@ -6039,7 +5982,7 @@ typedef struct am_table_short AMTS;
if (! PL_in_utf8_CTYPE_locale && ckWARN(WARN_LOCALE)) { \
UV cp = utf8_to_uvchr_buf((U8 *) s, (U8 *) send, NULL); \
Perl_warner(aTHX_ packWARN(WARN_LOCALE), \
- "Wide character (U+%"UVXf") in %s", \
+ "Wide character (U+%" UVXf ") in %s", \
(cp == 0) \
? UNICODE_REPLACEMENT \
: (UV) cp, \
@@ -6049,6 +5992,20 @@ typedef struct am_table_short AMTS;
# endif /* PERL_CORE or PERL_IN_XSUB_RE */
+#if defined(USE_ITHREADS) \
+ && defined(HAS_NEWLOCALE) \
+ && defined(LC_ALL_MASK) \
+ && defined(HAS_FREELOCALE) \
+ && defined(HAS_USELOCALE) \
+ && ! defined(NO_THREAD_SAFE_USELOCALE)
+
+ /* The code is written for simplicity to assume that any platform advanced
+ * enough to have the Posix 2008 locale functions has LC_ALL. The test
+ * above makes sure that assumption is valid */
+
+# define USE_THREAD_SAFE_LOCALE
+#endif
+
#else /* No locale usage */
# define LOCALE_INIT
# define LOCALE_TERM
@@ -6230,14 +6187,20 @@ expression, but with an empty argument list, like this:
_restore_LC_NUMERIC_function = &Perl_set_numeric_standard; \
}
-/* Lock to the C locale until unlock is called */
+/* Lock/unlock to the C locale until unlock is called. This needs to be
+ * recursively callable. [perl #128207] */
#define LOCK_LC_NUMERIC_STANDARD() \
(__ASSERT_(PL_numeric_standard) \
- PL_numeric_standard = 2)
-
+ PL_numeric_standard++)
#define UNLOCK_LC_NUMERIC_STANDARD() \
- (__ASSERT_(PL_numeric_standard == 2) \
- PL_numeric_standard = 1)
+ STMT_START { \
+ if (PL_numeric_standard > 1) { \
+ PL_numeric_standard--; \
+ } \
+ else { \
+ assert(0); \
+ } \
+ } STMT_END
#define RESTORE_LC_NUMERIC_UNDERLYING() \
if (_was_local) set_numeric_local();
@@ -6304,7 +6267,7 @@ expression, but with an empty argument list, like this:
# ifdef __hpux
# define strtoll __strtoll /* secret handshake */
# endif
-# ifdef WIN64
+# if defined(WIN64) && defined(_MSC_VER)
# define strtoll _strtoi64 /* secret handshake */
# endif
# if !defined(Strtol) && defined(HAS_STRTOLL)
@@ -6338,7 +6301,7 @@ expression, but with an empty argument list, like this:
# ifdef __hpux
# define strtoull __strtoull /* secret handshake */
# endif
-# ifdef WIN64
+# if defined(WIN64) && defined(_MSC_VER)
# define strtoull _strtoui64 /* secret handshake */
# endif
# if !defined(Strtoul) && defined(HAS_STRTOULL)
@@ -6738,6 +6701,14 @@ 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_VAX_F_FLOAT || \
+ DOUBLEKIND == DOUBLE_IS_VAX_D_FLOAT || \
+ DOUBLEKIND == DOUBLE_IS_VAX_G_FLOAT
+# define DOUBLE_IS_VAX_FLOAT
+#else
+# define DOUBLE_IS_IEEE_FORMAT
+#endif
+
#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
@@ -6755,11 +6726,77 @@ extern void moncontrol(int);
# define DOUBLE_MIX_ENDIAN
#endif
+/* The VAX fp formats are neither consistently little-endian nor
+ * big-endian, and neither are they really IEEE-mixed endian like
+ * the mixed-endian ARM IEEE formats (with swapped bytes).
+ * Ultimately, the VAX format came from the PDP-11.
+ *
+ * The ordering of the parts in VAX floats is quite vexing.
+ * In the below the fraction_n are the mantissa bits.
+ *
+ * The fraction_1 is the most significant (numbering as by DEC/Digital),
+ * while the rightmost bit in each fraction is the least significant:
+ * in other words, big-endian bit order within the fractions.
+ *
+ * The fraction segments themselves would be big-endianly, except that
+ * within 32 bit segments the less significant half comes first, the more
+ * significant after, except that in the format H (used for long doubles)
+ * the first fraction segment is alone, because the exponent is wider.
+ * This means for example that both the most and the least significant
+ * bits can be in the middle of the floats, not at either end.
+ *
+ * References:
+ * http://nssdc.gsfc.nasa.gov/nssdc/formats/VAXFloatingPoint.htm
+ * http://www.quadibloc.com/comp/cp0201.htm
+ * http://h71000.www7.hp.com/doc/82final/6443/6443pro_028.html
+ * (somebody at HP should be fired for the URLs)
+ *
+ * F fraction_2:16 sign:1 exp:8 fraction_1:7
+ * (exponent bias 128, hidden first one-bit)
+ *
+ * D fraction_2:16 sign:1 exp:8 fraction_1:7
+ * fraction_4:16 fraction_3:16
+ * (exponent bias 128, hidden first one-bit)
+ *
+ * G fraction_2:16 sign:1 exp:11 fraction_1:4
+ * fraction_4:16 fraction_3:16
+ * (exponent bias 1024, hidden first one-bit)
+ *
+ * H fraction_1:16 sign:1 exp:15
+ * fraction_3:16 fraction_2:16
+ * fraction_5:16 fraction_4:16
+ * fraction_7:16 fraction_6:16
+ * (exponent bias 16384, hidden first one-bit)
+ * (available only on VAX, and only on Fortran?)
+ *
+ * The formats S, T and X are available on the Alpha (and Itanium,
+ * also known as I64/IA64) and are equivalent with the IEEE-754 formats
+ * binary32, binary64, and binary128 (commonly: float, double, long double).
+ *
+ * S sign:1 exp:8 mantissa:23
+ * (exponent bias 127, hidden first one-bit)
+ *
+ * T sign:1 exp:11 mantissa:52
+ * (exponent bias 1022, hidden first one-bit)
+ *
+ * X sign:1 exp:15 mantissa:112
+ * (exponent bias 16382, hidden first one-bit)
+ *
+ */
+
+#ifdef DOUBLE_IS_VAX_FLOAT
+# define DOUBLE_VAX_ENDIAN
+#endif
+
+#ifdef DOUBLE_IS_IEEE_FORMAT
/* All the basic IEEE formats have the implicit bit,
- * except for the 80-bit extended formats, which will undef this. */
-#define NV_IMPLICIT_BIT
+ * except for the x86 80-bit extended formats, which will undef this.
+ * Also note that the IEEE 754 subnormals (formerly known as denormals)
+ * do not have the implicit bit of one. */
+# define NV_IMPLICIT_BIT
+#endif
-#ifdef LONG_DOUBLEKIND
+#if defined(LONG_DOUBLEKIND) && LONG_DOUBLEKIND != LONG_DOUBLE_IS_DOUBLE
# if LONG_DOUBLEKIND == LONG_DOUBLE_IS_IEEE_754_128_BIT_LITTLE_ENDIAN || \
LONG_DOUBLEKIND == LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN || \
@@ -6783,6 +6820,7 @@ extern void moncontrol(int);
# define LONGDOUBLE_X86_80_BIT
# ifdef USE_LONG_DOUBLE
# undef NV_IMPLICIT_BIT
+# define NV_X86_80_BIT
# endif
# endif
@@ -6793,6 +6831,10 @@ extern void moncontrol(int);
# define LONGDOUBLE_DOUBLEDOUBLE
# endif
+# if LONG_DOUBLEKIND == LONG_DOUBLE_IS_VAX_H_FLOAT
+# define LONGDOUBLE_VAX_ENDIAN
+# endif
+
#endif /* LONG_DOUBLEKIND */
#ifdef USE_QUADMATH /* assume quadmath endianness == native double endianness */
@@ -6813,6 +6855,9 @@ extern void moncontrol(int);
# ifdef DOUBLE_MIX_ENDIAN
# define NV_MIX_ENDIAN
# endif
+# ifdef DOUBLE_VAX_ENDIAN
+# define NV_VAX_ENDIAN
+# endif
#elif NVSIZE == LONG_DOUBLESIZE
# ifdef LONGDOUBLE_LITTLE_ENDIAN
# define NV_LITTLE_ENDIAN
@@ -6823,6 +6868,132 @@ extern void moncontrol(int);
# ifdef LONGDOUBLE_MIX_ENDIAN
# define NV_MIX_ENDIAN
# endif
+# ifdef LONGDOUBLE_VAX_ENDIAN
+# define NV_VAX_ENDIAN
+# endif
+#endif
+
+#ifdef DOUBLE_IS_IEEE_FORMAT
+# define DOUBLE_HAS_INF
+# define DOUBLE_HAS_NAN
+#endif
+
+#ifdef DOUBLE_HAS_NAN
+
+#ifdef DOINIT
+
+/* PL_inf and PL_nan initialization.
+ *
+ * For inf and nan initialization the ultimate fallback is dividing
+ * one or zero by zero: however, some compilers will warn or even fail
+ * on divide-by-zero, but hopefully something earlier will work.
+ *
+ * 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,
+ * and the math functions might be just generating DBL_MAX, or even zero.
+ *
+ * Also, do NOT try doing NV_NAN based on NV_INF and trying (NV_INF-NV_INF).
+ * Though logically correct, some compilers (like Visual C 2003)
+ * falsely misoptimize that to zero (x-x is always zero, right?)
+ *
+ * Finally, note that not all floating point formats define Inf (or NaN).
+ * For the infinity a large number may be used instead. Operations that
+ * under the IEEE floating point would return Inf or NaN may return
+ * either large numbers (positive or negative), or they may cause
+ * a floating point exception or some other fault.
+ */
+
+/* The quadmath literals are anon structs which -Wc++-compat doesn't like. */
+GCC_DIAG_IGNORE(-Wc++-compat)
+
+# ifdef USE_QUADMATH
+/* Cannot use HUGE_VALQ for PL_inf because not a compile-time
+ * constant. */
+INFNAN_NV_U8_DECL PL_inf = { 1.0Q/0.0Q };
+# elif NVSIZE == LONG_DOUBLESIZE && defined(LONGDBLINFBYTES)
+INFNAN_U8_NV_DECL PL_inf = { { LONGDBLINFBYTES } };
+# elif NVSIZE == DOUBLESIZE && defined(DOUBLEINFBYTES)
+INFNAN_U8_NV_DECL PL_inf = { { DOUBLEINFBYTES } };
+# else
+# if NVSIZE == LONG_DOUBLESIZE && defined(USE_LONG_DOUBLE)
+# if defined(LDBL_INFINITY)
+INFNAN_NV_U8_DECL PL_inf = { LDBL_INFINITY };
+# elif defined(LDBL_INF)
+INFNAN_NV_U8_DECL PL_inf = { LDBL_INF };
+# elif defined(INFINITY)
+INFNAN_NV_U8_DECL PL_inf = { (NV)INFINITY };
+# elif defined(INF)
+INFNAN_NV_U8_DECL PL_inf = { (NV)INF };
+# else
+INFNAN_NV_U8_DECL PL_inf = { 1.0L/0.0L }; /* keep last */
+# endif
+# else
+# if defined(DBL_INFINITY)
+INFNAN_NV_U8_DECL PL_inf = { DBL_INFINITY };
+# elif defined(DBL_INF)
+INFNAN_NV_U8_DECL PL_inf = { DBL_INF };
+# elif defined(INFINITY) /* C99 */
+INFNAN_NV_U8_DECL PL_inf = { (NV)INFINITY };
+# elif defined(INF)
+INFNAN_NV_U8_DECL PL_inf = { (NV)INF };
+# else
+INFNAN_NV_U8_DECL PL_inf = { 1.0/0.0 }; /* keep last */
+# endif
+# endif
+# endif
+
+# ifdef USE_QUADMATH
+/* Cannot use nanq("0") for PL_nan because not a compile-time
+ * constant. */
+INFNAN_NV_U8_DECL PL_nan = { 0.0Q/0.0Q };
+# elif NVSIZE == LONG_DOUBLESIZE && defined(LONGDBLNANBYTES)
+INFNAN_U8_NV_DECL PL_nan = { { LONGDBLNANBYTES } };
+# elif NVSIZE == DOUBLESIZE && defined(DOUBLENANBYTES)
+INFNAN_U8_NV_DECL PL_nan = { { DOUBLENANBYTES } };
+# else
+# if NVSIZE == LONG_DOUBLESIZE && defined(USE_LONG_DOUBLE)
+# if defined(LDBL_NAN)
+INFNAN_NV_U8_DECL PL_nan = { LDBL_NAN };
+# elif defined(LDBL_QNAN)
+INFNAN_NV_U8_DECL PL_nan = { LDBL_QNAN };
+# elif defined(NAN)
+INFNAN_NV_U8_DECL PL_nan = { (NV)NAN };
+# else
+INFNAN_NV_U8_DECL PL_nan = { 0.0L/0.0L }; /* keep last */
+# endif
+# else
+# if defined(DBL_NAN)
+INFNAN_NV_U8_DECL PL_nan = { DBL_NAN };
+# elif defined(DBL_QNAN)
+INFNAN_NV_U8_DECL PL_nan = { DBL_QNAN };
+# elif defined(NAN) /* C99 */
+INFNAN_NV_U8_DECL PL_nan = { (NV)NAN };
+# else
+INFNAN_NV_U8_DECL PL_nan = { 0.0/0.0 }; /* keep last */
+# endif
+# endif
+# endif
+
+GCC_DIAG_RESTORE
+
+#else
+
+INFNAN_NV_U8_DECL PL_inf;
+INFNAN_NV_U8_DECL PL_nan;
+
+#endif
+
+/* If you have not defined NV_INF/NV_NAN (like for example win32/win32.h),
+ * we will define NV_INF/NV_NAN as the nv part of the global const
+ * PL_inf/PL_nan. Note, however, that the preexisting NV_INF/NV_NAN
+ * might not be a compile-time constant, in which case it cannot be
+ * used to initialize PL_inf/PL_nan above. */
+#ifndef NV_INF
+# define NV_INF PL_inf.nv
+#endif
+#ifndef NV_NAN
+# define NV_NAN PL_nan.nv
#endif
/* NaNs (not-a-numbers) can carry payload bits, in addition to
@@ -6975,6 +7146,8 @@ extern void moncontrol(int);
# elif DOUBLEKIND == DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
# define NV_NAN_QS_BYTE_OFFSET 5 /* bytes 3 2 1 0 7 6 5 4 (MSB 7) */
# else
+/* For example the VAX formats should never
+ * get here because they do not have NaN. */
# error "Unexpected double format"
# endif
#endif
@@ -7177,6 +7350,10 @@ extern void moncontrol(int);
# error "Unexpected double format"
# endif
#endif
+
+#endif /* DOUBLE_HAS_NAN */
+
+
/*
(KEEP THIS LAST IN perl.h!)
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlapi.h b/Master/tlpkg/tlperl/lib/CORE/perlapi.h
index 7aa445578e8..91f50eb2b02 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlapi.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlapi.h
@@ -99,6 +99,8 @@ END_EXTERN_C
#else /* !PERL_CORE */
+#undef PL_C_locale_obj
+#define PL_C_locale_obj (*Perl_GC_locale_obj_ptr(NULL))
#undef PL_appctx
#define PL_appctx (*Perl_Gappctx_ptr(NULL))
#undef PL_check
@@ -147,6 +149,8 @@ END_EXTERN_C
#define PL_perlio_fd_refcnt_size (*Perl_Gperlio_fd_refcnt_size_ptr(NULL))
#undef PL_perlio_mutex
#define PL_perlio_mutex (*Perl_Gperlio_mutex_ptr(NULL))
+#undef PL_perllib_sep
+#define PL_perllib_sep (*Perl_Gperllib_sep_ptr(NULL))
#undef PL_ppaddr
#define PL_ppaddr (*Perl_Gppaddr_ptr(NULL))
#undef PL_sh_path
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlhost.h b/Master/tlpkg/tlperl/lib/CORE/perlhost.h
index 9963319a929..3260f62a027 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlhost.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlhost.h
@@ -836,15 +836,15 @@ PerlStdIOFdupopen(struct IPerlStdIO* piPerl, FILE* pf)
int fileno = win32_dup(win32_fileno(pf));
/* open the file in the same mode */
- if((pf)->_flag & _IOREAD) {
+ if (PERLIO_FILE_flag(pf) & PERLIO_FILE_flag_RD) {
mode[0] = 'r';
mode[1] = 0;
}
- else if((pf)->_flag & _IOWRT) {
+ else if (PERLIO_FILE_flag(pf) & PERLIO_FILE_flag_WR) {
mode[0] = 'a';
mode[1] = 0;
}
- else if((pf)->_flag & _IORW) {
+ else if (PERLIO_FILE_flag(pf) & PERLIO_FILE_flag_RW) {
mode[0] = 'r';
mode[1] = '+';
mode[2] = 0;
@@ -2177,17 +2177,11 @@ compare(const void *arg1, const void *arg2)
void
CPerlHost::Add(LPCSTR lpStr)
{
- char szBuffer[1024];
LPSTR *lpPtr;
- int index, length = strlen(lpStr)+1;
-
- for(index = 0; lpStr[index] != '\0' && lpStr[index] != '='; ++index)
- szBuffer[index] = lpStr[index];
-
- szBuffer[index] = '\0';
+ STRLEN length = strlen(lpStr)+1;
// replacing ?
- lpPtr = Lookup(szBuffer);
+ lpPtr = Lookup(lpStr);
if (lpPtr != NULL) {
// must allocate things via host memory allocation functions
// rather than perl's Renew() et al, as the perl interpreter
diff --git a/Master/tlpkg/tlperl/lib/CORE/perlvars.h b/Master/tlpkg/tlperl/lib/CORE/perlvars.h
index 5466294963d..884d57c5043 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perlvars.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perlvars.h
@@ -101,6 +101,10 @@ PERLVARI(G, mmap_page_size, IV, 0)
PERLVAR(G, hints_mutex, perl_mutex) /* Mutex for refcounted he refcounting */
PERLVAR(G, locale_mutex, perl_mutex) /* Mutex for setlocale() changing */
+# ifdef HAS_NEWLOCALE
+PERLVAR(G, C_locale_obj, locale_t)
+# endif
+
#endif
#ifdef DEBUGGING
@@ -244,3 +248,10 @@ PERLVAR(G, malloc_mutex, perl_mutex) /* Mutex for malloc */
PERLVARI(G, hash_seed_set, bool, FALSE) /* perl.c */
PERLVARA(G, hash_seed, PERL_HASH_SEED_BYTES, unsigned char) /* perl.c and hv.h */
+
+/* The path separator can vary depending on whether we're running under DCL or
+ * a Unix shell.
+ */
+#ifdef __VMS
+PERLVAR(G, perllib_sep, char)
+#endif
diff --git a/Master/tlpkg/tlperl/lib/CORE/perly.h b/Master/tlpkg/tlperl/lib/CORE/perly.h
index acbdaaec974..a7e9a4348bd 100644
--- a/Master/tlpkg/tlperl/lib/CORE/perly.h
+++ b/Master/tlpkg/tlperl/lib/CORE/perly.h
@@ -4,25 +4,25 @@
Any changes made here will be lost!
*/
-#define PERL_BISON_VERSION 20007
+#define PERL_BISON_VERSION 30000
#ifdef PERL_CORE
-/* A Bison parser, made by GNU Bison 2.7. */
+/* A Bison parser, made by GNU Bison 3.0.2. */
/* Bison interface for Yacc-like parsers in C
-
- Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
-
+
+ Copyright (C) 1984, 1989-1990, 2000-2013 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.
-
+
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/>. */
@@ -35,11 +35,11 @@
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. */
+/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
@@ -47,182 +47,100 @@
extern int yydebug;
#endif
-/* Tokens. */
+/* Token type. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- GRAMPROG = 258,
- GRAMEXPR = 259,
- GRAMBLOCK = 260,
- GRAMBARESTMT = 261,
- GRAMFULLSTMT = 262,
- GRAMSTMTSEQ = 263,
- WORD = 264,
- METHOD = 265,
- FUNCMETH = 266,
- THING = 267,
- PMFUNC = 268,
- PRIVATEREF = 269,
- QWLIST = 270,
- FUNC0OP = 271,
- FUNC0SUB = 272,
- UNIOPSUB = 273,
- LSTOPSUB = 274,
- PLUGEXPR = 275,
- PLUGSTMT = 276,
- LABEL = 277,
- FORMAT = 278,
- SUB = 279,
- ANONSUB = 280,
- PACKAGE = 281,
- USE = 282,
- WHILE = 283,
- UNTIL = 284,
- IF = 285,
- UNLESS = 286,
- ELSE = 287,
- ELSIF = 288,
- CONTINUE = 289,
- FOR = 290,
- GIVEN = 291,
- WHEN = 292,
- DEFAULT = 293,
- LOOPEX = 294,
- DOTDOT = 295,
- YADAYADA = 296,
- FUNC0 = 297,
- FUNC1 = 298,
- FUNC = 299,
- UNIOP = 300,
- LSTOP = 301,
- RELOP = 302,
- EQOP = 303,
- MULOP = 304,
- ADDOP = 305,
- DOLSHARP = 306,
- DO = 307,
- HASHBRACK = 308,
- NOAMP = 309,
- LOCAL = 310,
- MY = 311,
- REQUIRE = 312,
- COLONATTR = 313,
- FORMLBRACK = 314,
- FORMRBRACK = 315,
- PREC_LOW = 316,
- DOROP = 317,
- OROP = 318,
- ANDOP = 319,
- NOTOP = 320,
- ASSIGNOP = 321,
- DORDOR = 322,
- OROR = 323,
- ANDAND = 324,
- BITOROP = 325,
- BITANDOP = 326,
- SHIFTOP = 327,
- MATCHOP = 328,
- REFGEN = 329,
- UMINUS = 330,
- POWOP = 331,
- POSTJOIN = 332,
- POSTDEC = 333,
- POSTINC = 334,
- PREDEC = 335,
- PREINC = 336,
- ARROW = 337
- };
+ enum yytokentype
+ {
+ GRAMPROG = 258,
+ GRAMEXPR = 259,
+ GRAMBLOCK = 260,
+ GRAMBARESTMT = 261,
+ GRAMFULLSTMT = 262,
+ GRAMSTMTSEQ = 263,
+ BAREWORD = 264,
+ METHOD = 265,
+ FUNCMETH = 266,
+ THING = 267,
+ PMFUNC = 268,
+ PRIVATEREF = 269,
+ QWLIST = 270,
+ FUNC0OP = 271,
+ FUNC0SUB = 272,
+ UNIOPSUB = 273,
+ LSTOPSUB = 274,
+ PLUGEXPR = 275,
+ PLUGSTMT = 276,
+ LABEL = 277,
+ FORMAT = 278,
+ SUB = 279,
+ ANONSUB = 280,
+ PACKAGE = 281,
+ USE = 282,
+ WHILE = 283,
+ UNTIL = 284,
+ IF = 285,
+ UNLESS = 286,
+ ELSE = 287,
+ ELSIF = 288,
+ CONTINUE = 289,
+ FOR = 290,
+ GIVEN = 291,
+ WHEN = 292,
+ DEFAULT = 293,
+ LOOPEX = 294,
+ DOTDOT = 295,
+ YADAYADA = 296,
+ FUNC0 = 297,
+ FUNC1 = 298,
+ FUNC = 299,
+ UNIOP = 300,
+ LSTOP = 301,
+ RELOP = 302,
+ EQOP = 303,
+ MULOP = 304,
+ ADDOP = 305,
+ DOLSHARP = 306,
+ DO = 307,
+ HASHBRACK = 308,
+ NOAMP = 309,
+ LOCAL = 310,
+ MY = 311,
+ REQUIRE = 312,
+ COLONATTR = 313,
+ FORMLBRACK = 314,
+ FORMRBRACK = 315,
+ PREC_LOW = 316,
+ OROP = 317,
+ DOROP = 318,
+ ANDOP = 319,
+ NOTOP = 320,
+ ASSIGNOP = 321,
+ OROR = 322,
+ DORDOR = 323,
+ ANDAND = 324,
+ BITOROP = 325,
+ BITANDOP = 326,
+ SHIFTOP = 327,
+ MATCHOP = 328,
+ UMINUS = 329,
+ REFGEN = 330,
+ POWOP = 331,
+ PREINC = 332,
+ PREDEC = 333,
+ POSTINC = 334,
+ POSTDEC = 335,
+ POSTJOIN = 336,
+ ARROW = 337
+ };
#endif
-/* Tokens. */
-#define GRAMPROG 258
-#define GRAMEXPR 259
-#define GRAMBLOCK 260
-#define GRAMBARESTMT 261
-#define GRAMFULLSTMT 262
-#define GRAMSTMTSEQ 263
-#define WORD 264
-#define METHOD 265
-#define FUNCMETH 266
-#define THING 267
-#define PMFUNC 268
-#define PRIVATEREF 269
-#define QWLIST 270
-#define FUNC0OP 271
-#define FUNC0SUB 272
-#define UNIOPSUB 273
-#define LSTOPSUB 274
-#define PLUGEXPR 275
-#define PLUGSTMT 276
-#define LABEL 277
-#define FORMAT 278
-#define SUB 279
-#define ANONSUB 280
-#define PACKAGE 281
-#define USE 282
-#define WHILE 283
-#define UNTIL 284
-#define IF 285
-#define UNLESS 286
-#define ELSE 287
-#define ELSIF 288
-#define CONTINUE 289
-#define FOR 290
-#define GIVEN 291
-#define WHEN 292
-#define DEFAULT 293
-#define LOOPEX 294
-#define DOTDOT 295
-#define YADAYADA 296
-#define FUNC0 297
-#define FUNC1 298
-#define FUNC 299
-#define UNIOP 300
-#define LSTOP 301
-#define RELOP 302
-#define EQOP 303
-#define MULOP 304
-#define ADDOP 305
-#define DOLSHARP 306
-#define DO 307
-#define HASHBRACK 308
-#define NOAMP 309
-#define LOCAL 310
-#define MY 311
-#define REQUIRE 312
-#define COLONATTR 313
-#define FORMLBRACK 314
-#define FORMRBRACK 315
-#define PREC_LOW 316
-#define DOROP 317
-#define OROP 318
-#define ANDOP 319
-#define NOTOP 320
-#define ASSIGNOP 321
-#define DORDOR 322
-#define OROR 323
-#define ANDAND 324
-#define BITOROP 325
-#define BITANDOP 326
-#define SHIFTOP 327
-#define MATCHOP 328
-#define REFGEN 329
-#define UMINUS 330
-#define POWOP 331
-#define POSTJOIN 332
-#define POSTDEC 333
-#define POSTINC 334
-#define PREDEC 335
-#define PREINC 336
-#define ARROW 337
-
-
+/* Value type. */
#ifdef PERL_IN_TOKE_C
static bool
S_is_opval_token(int type) {
switch (type) {
+ case BAREWORD:
case FUNC0OP:
case FUNC0SUB:
case FUNCMETH:
@@ -235,7 +153,6 @@ S_is_opval_token(int type) {
case QWLIST:
case THING:
case UNIOPSUB:
- case WORD:
return 1;
}
return 0;
@@ -243,9 +160,9 @@ S_is_opval_token(int type) {
#endif /* PERL_IN_TOKE_C */
#endif /* PERL_CORE */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef union YYSTYPE
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
{
-/* Line 2058 of yacc.c */
I32 ival; /* __DEFAULT__ (marker for regen_perly.pl;
must always be 1st union member) */
@@ -253,31 +170,17 @@ typedef union YYSTYPE
OP *opval;
GV *gvval;
-
-/* Line 2058 of yacc.c */
-} YYSTYPE;
+};
# define YYSTYPE_IS_TRIVIAL 1
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 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:
- * 703ebd267cf8ca45f9dee9bc0f4b21511117a0c1dca1c8bc9438ce91950217ae perly.y
- * a4923588f219644801577c514014847e1e5240f49413fa3b89d3306fa4874d07 regen_perly.pl
+ * a8b5527eacb1205d15c8c01acb4a8f99b494e5b453ddd68a2a2e7fca4be3302a perly.y
+ * 153cba5d215c1a083a0459c43f4d55c45fd0a7093c197d7247a456dcde21ea53 regen_perly.pl
* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/pp.h b/Master/tlpkg/tlperl/lib/CORE/pp.h
index d3d8f988ee0..3b8f36f4144 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pp.h
@@ -55,9 +55,7 @@ Refetch the stack pointer. Used after a callback. See L<perlcall>.
#define MARK mark
#define TARG targ
-#if defined(DEBUGGING) && defined(PERL_USE_GCC_BRACE_GROUPS)
-
-# define PUSHMARK(p) \
+#define PUSHMARK(p) \
STMT_START { \
I32 * mark_stack_entry; \
if (UNLIKELY((mark_stack_entry = ++PL_markstack_ptr) \
@@ -65,48 +63,20 @@ Refetch the stack pointer. Used after a callback. See L<perlcall>.
mark_stack_entry = markstack_grow(); \
*mark_stack_entry = (I32)((p) - PL_stack_base); \
DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log, \
- "MARK push %p %"IVdf"\n", \
+ "MARK push %p %" IVdf "\n", \
PL_markstack_ptr, (IV)*mark_stack_entry))); \
} STMT_END
-# define TOPMARK \
- ({ \
- DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log, \
- "MARK top %p %"IVdf"\n", \
- PL_markstack_ptr, (IV)*PL_markstack_ptr))); \
- *PL_markstack_ptr; \
- })
+#define TOPMARK S_TOPMARK(aTHX)
+#define POPMARK S_POPMARK(aTHX)
-# define POPMARK \
- ({ \
- DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log, \
- "MARK pop %p %"IVdf"\n", \
- (PL_markstack_ptr-1), (IV)*(PL_markstack_ptr-1)))); \
- assert((PL_markstack_ptr > PL_markstack) || !"MARK underflow");\
- *PL_markstack_ptr--; \
- })
-
-# define INCMARK \
- ({ \
+#define INCMARK \
+ STMT_START { \
DEBUG_s(DEBUG_v(PerlIO_printf(Perl_debug_log, \
- "MARK inc %p %"IVdf"\n", \
+ "MARK inc %p %" IVdf "\n", \
(PL_markstack_ptr+1), (IV)*(PL_markstack_ptr+1)))); \
- *PL_markstack_ptr++; \
- })
-
-#else
-
-# define PUSHMARK(p) \
- STMT_START { \
- I32 * mark_stack_entry; \
- if (UNLIKELY((mark_stack_entry = ++PL_markstack_ptr) == PL_markstack_max)) \
- mark_stack_entry = markstack_grow(); \
- *mark_stack_entry = (I32)((p) - PL_stack_base); \
+ PL_markstack_ptr++; \
} STMT_END
-# define TOPMARK (*PL_markstack_ptr)
-# define POPMARK (*PL_markstack_ptr--)
-# define INCMARK (*PL_markstack_ptr++)
-#endif
#define dSP SV **sp = PL_stack_sp
#define djSP dSP
diff --git a/Master/tlpkg/tlperl/lib/CORE/pp_proto.h b/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
index f919313ed1f..e9315467999 100644
--- a/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
+++ b/Master/tlpkg/tlperl/lib/CORE/pp_proto.h
@@ -19,9 +19,13 @@ PERL_CALLCONV OP *Perl_pp_anoncode(pTHX);
PERL_CALLCONV OP *Perl_pp_anonconst(pTHX);
PERL_CALLCONV OP *Perl_pp_anonhash(pTHX);
PERL_CALLCONV OP *Perl_pp_anonlist(pTHX);
+PERL_CALLCONV OP *Perl_pp_argcheck(pTHX);
+PERL_CALLCONV OP *Perl_pp_argdefelem(pTHX);
+PERL_CALLCONV OP *Perl_pp_argelem(pTHX);
PERL_CALLCONV OP *Perl_pp_aslice(pTHX);
PERL_CALLCONV OP *Perl_pp_atan2(pTHX);
PERL_CALLCONV OP *Perl_pp_av2arylen(pTHX);
+PERL_CALLCONV OP *Perl_pp_avhvswitch(pTHX);
PERL_CALLCONV OP *Perl_pp_backtick(pTHX);
PERL_CALLCONV OP *Perl_pp_bind(pTHX);
PERL_CALLCONV OP *Perl_pp_binmode(pTHX);
@@ -194,7 +198,6 @@ PERL_CALLCONV OP *Perl_pp_prototype(pTHX);
PERL_CALLCONV OP *Perl_pp_prtf(pTHX);
PERL_CALLCONV OP *Perl_pp_push(pTHX);
PERL_CALLCONV OP *Perl_pp_pushmark(pTHX);
-PERL_CALLCONV OP *Perl_pp_pushre(pTHX);
PERL_CALLCONV OP *Perl_pp_qr(pTHX);
PERL_CALLCONV OP *Perl_pp_quotemeta(pTHX);
PERL_CALLCONV OP *Perl_pp_rand(pTHX);
@@ -293,4 +296,9 @@ PERL_CALLCONV OP *Perl_pp_warn(pTHX);
PERL_CALLCONV OP *Perl_pp_xor(pTHX);
PERL_CALLCONV OP *Perl_unimplemented_op(pTHX);
+/* alternative functions */
+#if defined(__GLIBC__) && IVSIZE == 8 && ( __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 8))
+PERL_CALLCONV OP *Perl_pp_i_modulo_glibc_bugfix(pTHX);
+#endif
+
/* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/proto.h b/Master/tlpkg/tlperl/lib/CORE/proto.h
index fb4ee295087..dd938605f84 100644
--- a/Master/tlpkg/tlperl/lib/CORE/proto.h
+++ b/Master/tlpkg/tlperl/lib/CORE/proto.h
@@ -17,30 +17,36 @@
*/
START_EXTERN_C
+#ifndef NO_MATHOMS
PERL_CALLCONV UV ASCII_TO_NEED(const UV enc, const UV ch)
__attribute__deprecated__
__attribute__warn_unused_result__
__attribute__pure__;
+#endif
PERL_CALLCONV int Perl_Gv_AMupdate(pTHX_ HV* stash, bool destructing);
#define PERL_ARGS_ASSERT_GV_AMUPDATE \
assert(stash)
+#ifndef NO_MATHOMS
PERL_CALLCONV UV NATIVE_TO_NEED(const UV enc, const UV ch)
__attribute__deprecated__
__attribute__warn_unused_result__
__attribute__pure__;
+#endif
PERL_CALLCONV const char * Perl_PerlIO_context_layers(pTHX_ const char *mode);
PERL_CALLCONV void* Perl_Slab_Alloc(pTHX_ size_t sz)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV void Perl_Slab_Free(pTHX_ void *op);
#define PERL_ARGS_ASSERT_SLAB_FREE \
assert(op)
-PERL_CALLCONV SV* Perl__get_encoding(pTHX)
- __attribute__pure__;
-
+PERL_CALLCONV char * Perl__byte_dump_string(pTHX_ const U8 * s, const STRLEN len, const bool format);
+#define PERL_ARGS_ASSERT__BYTE_DUMP_STRING \
+ assert(s)
+PERL_CALLCONV void Perl__force_out_malformed_utf8_message(pTHX_ const U8 *const p, const U8 * const e, const U32 flags, const bool die_here);
+#define PERL_ARGS_ASSERT__FORCE_OUT_MALFORMED_UTF8_MESSAGE \
+ assert(p); assert(e)
PERL_CALLCONV bool Perl__is_in_locale_category(pTHX_ const bool compiling, const int category);
PERL_CALLCONV bool Perl__is_uni_FOO(pTHX_ const U8 classnum, const UV c)
__attribute__warn_unused_result__;
@@ -51,10 +57,21 @@ PERL_CALLCONV bool Perl__is_uni_perl_idcont(pTHX_ UV c)
PERL_CALLCONV bool Perl__is_uni_perl_idstart(pTHX_ UV c)
__attribute__warn_unused_result__;
-PERL_CALLCONV bool Perl__is_utf8_FOO(pTHX_ const U8 classnum, const U8 *p)
+PERL_CALLCONV bool Perl__is_utf8_FOO(pTHX_ U8 classnum, const U8 * const p, const char * const name, const char * const alternative, const bool use_utf8, const bool use_locale, const char * const file, const unsigned line)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT__IS_UTF8_FOO \
- assert(p)
+ assert(p); assert(name); assert(alternative); assert(file)
+
+PERL_CALLCONV bool Perl__is_utf8_FOO_with_len(pTHX_ const U8 classnum, const U8 *p, const U8 * const e)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__IS_UTF8_FOO_WITH_LEN \
+ assert(p); assert(e)
+
+PERL_CALLCONV STRLEN Perl__is_utf8_char_helper(const U8 * const s, const U8 * e, const U32 flags)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT__IS_UTF8_CHAR_HELPER \
+ assert(s); assert(e)
PERL_CALLCONV bool Perl__is_utf8_idcont(pTHX_ const U8 *p)
__attribute__warn_unused_result__;
@@ -71,15 +88,15 @@ PERL_CALLCONV bool Perl__is_utf8_mark(pTHX_ const U8 *p)
#define PERL_ARGS_ASSERT__IS_UTF8_MARK \
assert(p)
-PERL_CALLCONV bool Perl__is_utf8_perl_idcont(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl__is_utf8_perl_idcont_with_len(pTHX_ const U8 *p, const U8 * const e)
__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT \
- assert(p)
+#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDCONT_WITH_LEN \
+ assert(p); assert(e)
-PERL_CALLCONV bool Perl__is_utf8_perl_idstart(pTHX_ const U8 *p)
+PERL_CALLCONV bool Perl__is_utf8_perl_idstart_with_len(pTHX_ const U8 *p, const U8 * const e)
__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART \
- assert(p)
+#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART_WITH_LEN \
+ assert(p); assert(e)
PERL_CALLCONV bool Perl__is_utf8_xidcont(pTHX_ const U8 *p)
__attribute__warn_unused_result__;
@@ -94,19 +111,25 @@ PERL_CALLCONV bool Perl__is_utf8_xidstart(pTHX_ const U8 *p)
PERL_CALLCONV UV Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, U8 flags);
#define PERL_ARGS_ASSERT__TO_UNI_FOLD_FLAGS \
assert(p); assert(lenp)
-PERL_CALLCONV UV Perl__to_utf8_fold_flags(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, U8 flags);
+PERL_CALLCONV UV Perl__to_utf8_fold_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, U8 flags, const char * const file, const int line);
#define PERL_ARGS_ASSERT__TO_UTF8_FOLD_FLAGS \
- assert(p); assert(ustrp)
-PERL_CALLCONV UV Perl__to_utf8_lower_flags(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, bool flags);
+ assert(p); assert(ustrp); assert(file)
+PERL_CALLCONV UV Perl__to_utf8_lower_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags, const char * const file, const int line);
#define PERL_ARGS_ASSERT__TO_UTF8_LOWER_FLAGS \
- assert(p); assert(ustrp)
-PERL_CALLCONV UV Perl__to_utf8_title_flags(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, bool flags);
+ assert(p); assert(ustrp); assert(file)
+PERL_CALLCONV UV Perl__to_utf8_title_flags(pTHX_ const U8 *p, const U8* e, U8* ustrp, STRLEN *lenp, bool flags, const char * const file, const int line);
#define PERL_ARGS_ASSERT__TO_UTF8_TITLE_FLAGS \
- assert(p); assert(ustrp)
-PERL_CALLCONV UV Perl__to_utf8_upper_flags(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, bool flags);
+ assert(p); assert(ustrp); assert(file)
+PERL_CALLCONV UV Perl__to_utf8_upper_flags(pTHX_ const U8 *p, const U8 *e, U8* ustrp, STRLEN *lenp, bool flags, const char * const file, const int line);
#define PERL_ARGS_ASSERT__TO_UTF8_UPPER_FLAGS \
- assert(p); assert(ustrp)
+ assert(p); assert(ustrp); assert(file)
PERL_CALLCONV void Perl__warn_problematic_locale(void);
+PERL_CALLCONV_NO_RET void Perl_abort_execution(pTHX_ const char * const msg, const char * const name)
+ __attribute__noreturn__;
+#define PERL_ARGS_ASSERT_ABORT_EXECUTION \
+ assert(msg); assert(name)
+
+PERL_CALLCONV LOGOP* Perl_alloc_LOGOP(pTHX_ I32 type, OP *first, OP *other);
PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name, const STRLEN len, const U32 flags);
#define PERL_ARGS_ASSERT_ALLOCMY \
assert(name)
@@ -117,6 +140,11 @@ PERL_CALLCONV SV * Perl_amagic_deref_call(pTHX_ SV *ref, int method);
#define PERL_ARGS_ASSERT_AMAGIC_DEREF_CALL \
assert(ref)
PERL_CALLCONV bool Perl_amagic_is_enabled(pTHX_ int method);
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE void S_append_utf8_from_native_byte(const U8 byte, U8** dest);
+#define PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE \
+ assert(dest)
+#endif
PERL_CALLCONV I32 Perl_apply(pTHX_ I32 type, SV** mark, SV** sp);
#define PERL_ARGS_ASSERT_APPLY \
assert(mark); assert(sp)
@@ -192,6 +220,13 @@ PERL_CALLCONV SV** Perl_av_store(pTHX_ AV *av, SSize_t key, SV *val);
/* PERL_CALLCONV SSize_t Perl_av_tindex(pTHX_ AV *av)
__attribute__warn_unused_result__; */
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE SSize_t S_av_top_index(pTHX_ AV *av)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_TOP_INDEX \
+ assert(av)
+#endif
+
PERL_CALLCONV void Perl_av_undef(pTHX_ AV *av);
#define PERL_ARGS_ASSERT_AV_UNDEF \
assert(av)
@@ -520,8 +555,14 @@ PERL_CALLCONV void Perl_ck_warner_d(pTHX_ U32 err, const char* pat, ...)
#define PERL_ARGS_ASSERT_CK_WARNER_D \
assert(pat)
-PERL_CALLCONV bool Perl_ckwarn(pTHX_ U32 w);
-PERL_CALLCONV bool Perl_ckwarn_d(pTHX_ U32 w);
+PERL_CALLCONV bool Perl_ckwarn(pTHX_ U32 w)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
+PERL_CALLCONV bool Perl_ckwarn_d(pTHX_ U32 w)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
PERL_CALLCONV void Perl_clear_defarray(pTHX_ AV* av, bool abandon);
#define PERL_ARGS_ASSERT_CLEAR_DEFARRAY \
assert(av)
@@ -545,6 +586,10 @@ PERL_CALLCONV_NO_RET void Perl_croak(pTHX_ const char* pat, ...)
__attribute__noreturn__
__attribute__format__null_ok__(__printf__,pTHX_1,pTHX_2);
+PERL_CALLCONV_NO_RET void Perl_croak_caller(const char* pat, ...)
+ __attribute__noreturn__
+ __attribute__format__null_ok__(__printf__,1,2);
+
PERL_STATIC_NO_RET void S_croak_memory_wrap(void)
__attribute__noreturn__;
@@ -586,9 +631,7 @@ PERL_CALLCONV const char * Perl_custom_op_name(pTHX_ const OP *o)
PERL_CALLCONV void Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop);
#define PERL_ARGS_ASSERT_CUSTOM_OP_REGISTER \
assert(ppaddr); assert(xop)
-/* PERL_CALLCONV const XOP * Perl_custom_op_xop(pTHX_ const OP *o)
- __attribute__pure__; */
-
+/* PERL_CALLCONV const XOP * Perl_custom_op_xop(pTHX_ const OP *o); */
PERL_CALLCONV void Perl_cv_ckproto_len_flags(pTHX_ const CV* cv, const GV* gv, const char* p, const STRLEN len, const U32 flags);
#define PERL_ARGS_ASSERT_CV_CKPROTO_LEN_FLAGS \
assert(cv)
@@ -659,6 +702,9 @@ PERL_CALLCONV void Perl_delete_eval_scope(pTHX);
PERL_CALLCONV char* Perl_delimcpy(char* to, const char* toend, const char* from, const char* fromend, int delim, I32* retlen);
#define PERL_ARGS_ASSERT_DELIMCPY \
assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
+PERL_CALLCONV char* Perl_delimcpy_no_escape(char* to, const char* toend, const char* from, const char* fromend, int delim, I32* retlen);
+#define PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE \
+ assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
PERL_CALLCONV void Perl_despatch_signals(pTHX);
PERL_CALLCONV_NO_RET OP* Perl_die(pTHX_ const char* pat, ...)
__attribute__noreturn__
@@ -674,9 +720,11 @@ PERL_CALLCONV_NO_RET void Perl_die_unwind(pTHX_ SV* msv)
#define PERL_ARGS_ASSERT_DIE_UNWIND \
assert(msv)
-/* PERL_CALLCONV bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV bool Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp);
#define PERL_ARGS_ASSERT_DO_AEXEC \
assert(mark); assert(sp)
+#endif
PERL_CALLCONV bool Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, int fd, int do_report);
#define PERL_ARGS_ASSERT_DO_AEXEC5 \
assert(mark); assert(sp)
@@ -714,9 +762,11 @@ PERL_CALLCONV I32 Perl_do_ncmp(pTHX_ SV *const left, SV *const right)
PERL_CALLCONV void Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o);
#define PERL_ARGS_ASSERT_DO_OP_DUMP \
assert(file)
-/* PERL_CALLCONV bool Perl_do_open(pTHX_ GV* gv, const char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV bool Perl_do_open(pTHX_ GV* gv, const char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp);
#define PERL_ARGS_ASSERT_DO_OPEN \
assert(gv); assert(name)
+#endif
PERL_CALLCONV bool Perl_do_open6(pTHX_ GV *gv, const char *oname, STRLEN len, PerlIO *supplied_fp, SV **svp, U32 num);
#define PERL_ARGS_ASSERT_DO_OPEN6 \
assert(gv); assert(oname)
@@ -756,7 +806,7 @@ PERL_CALLCONV Off_t Perl_do_tell(pTHX_ GV* gv)
PERL_CALLCONV I32 Perl_do_trans(pTHX_ SV* sv);
#define PERL_ARGS_ASSERT_DO_TRANS \
assert(sv)
-PERL_CALLCONV UV Perl_do_vecget(pTHX_ SV* sv, SSize_t offset, int size);
+PERL_CALLCONV UV Perl_do_vecget(pTHX_ SV* sv, STRLEN offset, int size);
#define PERL_ARGS_ASSERT_DO_VECGET \
assert(sv)
PERL_CALLCONV void Perl_do_vecset(pTHX_ SV* sv);
@@ -856,21 +906,21 @@ PERL_CALLCONV PADOFFSET Perl_find_rundefsvoffset(pTHX)
PERL_CALLCONV char* Perl_find_script(pTHX_ const char *scriptname, bool dosearch, const char *const *const search_ext, I32 flags);
#define PERL_ARGS_ASSERT_FIND_SCRIPT \
assert(scriptname)
-PERL_CALLCONV I32 Perl_foldEQ(const char* a, const char* b, I32 len)
- __attribute__pure__;
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE I32 Perl_foldEQ(const char* a, const char* b, I32 len);
#define PERL_ARGS_ASSERT_FOLDEQ \
assert(a); assert(b)
-
-PERL_CALLCONV I32 Perl_foldEQ_latin1(const char* a, const char* b, I32 len)
- __attribute__pure__;
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE I32 Perl_foldEQ_latin1(const char* a, const char* b, I32 len);
#define PERL_ARGS_ASSERT_FOLDEQ_LATIN1 \
assert(a); assert(b)
-
-PERL_CALLCONV I32 Perl_foldEQ_locale(const char* a, const char* b, I32 len)
- __attribute__pure__;
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE I32 Perl_foldEQ_locale(const char* a, const char* b, I32 len);
#define PERL_ARGS_ASSERT_FOLDEQ_LOCALE \
assert(a); assert(b)
-
+#endif
/* PERL_CALLCONV I32 foldEQ_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
PERL_CALLCONV I32 Perl_foldEQ_utf8_flags(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2, U32 flags);
#define PERL_ARGS_ASSERT_FOLDEQ_UTF8_FLAGS \
@@ -961,9 +1011,15 @@ PERL_CALLCONV bool Perl_grok_numeric_radix(pTHX_ const char **sp, const char *se
PERL_CALLCONV UV Perl_grok_oct(pTHX_ const char* start, STRLEN* len_p, I32* flags, NV *result);
#define PERL_ARGS_ASSERT_GROK_OCT \
assert(start); assert(len_p); assert(flags)
-/* PERL_CALLCONV GV* Perl_gv_AVadd(pTHX_ GV *gv); */
-/* PERL_CALLCONV GV* Perl_gv_HVadd(pTHX_ GV *gv); */
-/* PERL_CALLCONV GV* Perl_gv_IOadd(pTHX_ GV* gv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV GV* Perl_gv_AVadd(pTHX_ GV *gv);
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV GV* Perl_gv_HVadd(pTHX_ GV *gv);
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV GV* Perl_gv_IOadd(pTHX_ GV* gv);
+#endif
PERL_CALLCONV GV* Perl_gv_add_by_type(pTHX_ GV *gv, svtype type);
/* PERL_CALLCONV GV* gv_autoload4(pTHX_ HV* stash, const char* name, STRLEN len, I32 method)
__attribute__warn_unused_result__; */
@@ -995,9 +1051,11 @@ PERL_CALLCONV void Perl_gv_dump(pTHX_ GV* gv);
PERL_CALLCONV void Perl_gv_efullname(pTHX_ SV* sv, const GV* gv);
#define PERL_ARGS_ASSERT_GV_EFULLNAME \
assert(sv); assert(gv)
-/* PERL_CALLCONV void Perl_gv_efullname3(pTHX_ SV* sv, const GV* gv, const char* prefix); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_gv_efullname3(pTHX_ SV* sv, const GV* gv, const char* prefix);
#define PERL_ARGS_ASSERT_GV_EFULLNAME3 \
assert(sv); assert(gv)
+#endif
PERL_CALLCONV void Perl_gv_efullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
#define PERL_ARGS_ASSERT_GV_EFULLNAME4 \
assert(sv); assert(gv)
@@ -1027,9 +1085,11 @@ PERL_CALLCONV GV* Perl_gv_fetchmeth_sv(pTHX_ HV* stash, SV* namesv, I32 level, U
PERL_CALLCONV GV* Perl_gv_fetchmeth_sv_autoload(pTHX_ HV* stash, SV* namesv, I32 level, U32 flags);
#define PERL_ARGS_ASSERT_GV_FETCHMETH_SV_AUTOLOAD \
assert(namesv)
-/* PERL_CALLCONV GV* Perl_gv_fetchmethod(pTHX_ HV* stash, const char* name); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV GV* Perl_gv_fetchmethod(pTHX_ HV* stash, const char* name);
#define PERL_ARGS_ASSERT_GV_FETCHMETHOD \
assert(stash); assert(name)
+#endif
PERL_CALLCONV GV* Perl_gv_fetchmethod_autoload(pTHX_ HV* stash, const char* name, I32 autoload);
#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_AUTOLOAD \
assert(stash); assert(name)
@@ -1054,9 +1114,11 @@ PERL_CALLCONV GV* Perl_gv_fetchsv(pTHX_ SV *name, I32 flags, const svtype sv_typ
PERL_CALLCONV void Perl_gv_fullname(pTHX_ SV* sv, const GV* gv);
#define PERL_ARGS_ASSERT_GV_FULLNAME \
assert(sv); assert(gv)
-/* PERL_CALLCONV void Perl_gv_fullname3(pTHX_ SV* sv, const GV* gv, const char* prefix); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_gv_fullname3(pTHX_ SV* sv, const GV* gv, const char* prefix);
#define PERL_ARGS_ASSERT_GV_FULLNAME3 \
assert(sv); assert(gv)
+#endif
PERL_CALLCONV void Perl_gv_fullname4(pTHX_ SV* sv, const GV* gv, const char* prefix, bool keepmain);
#define PERL_ARGS_ASSERT_GV_FULLNAME4 \
assert(sv); assert(gv)
@@ -1097,6 +1159,11 @@ PERL_CALLCONV void Perl_gv_try_downgrade(pTHX_ GV* gv);
PERL_CALLCONV AV** Perl_hv_backreferences_p(pTHX_ HV *hv);
#define PERL_ARGS_ASSERT_HV_BACKREFERENCES_P \
assert(hv)
+PERL_CALLCONV SV* Perl_hv_bucket_ratio(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_HV_BUCKET_RATIO \
+ assert(hv)
+
PERL_CALLCONV void Perl_hv_clear(pTHX_ HV *hv);
PERL_CALLCONV void Perl_hv_clear_placeholders(pTHX_ HV *hv);
#define PERL_ARGS_ASSERT_HV_CLEAR_PLACEHOLDERS \
@@ -1111,12 +1178,16 @@ PERL_CALLCONV HV * Perl_hv_copy_hints_hv(pTHX_ HV *const ohv)
PERL_CALLCONV void Perl_hv_delayfree_ent(pTHX_ HV *hv, HE *entry);
#define PERL_ARGS_ASSERT_HV_DELAYFREE_ENT \
assert(hv)
-/* PERL_CALLCONV SV* Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen, I32 flags); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV SV* Perl_hv_delete(pTHX_ HV *hv, const char *key, I32 klen, I32 flags);
#define PERL_ARGS_ASSERT_HV_DELETE \
assert(key)
-/* PERL_CALLCONV SV* Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash); */
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV SV* Perl_hv_delete_ent(pTHX_ HV *hv, SV *keysv, I32 flags, U32 hash);
#define PERL_ARGS_ASSERT_HV_DELETE_ENT \
assert(keysv)
+#endif
PERL_CALLCONV HE** Perl_hv_eiter_p(pTHX_ HV *hv)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_HV_EITER_P \
@@ -1131,22 +1202,30 @@ PERL_CALLCONV void Perl_hv_ename_add(pTHX_ HV *hv, const char *name, U32 len, U3
PERL_CALLCONV void Perl_hv_ename_delete(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
#define PERL_ARGS_ASSERT_HV_ENAME_DELETE \
assert(hv); assert(name)
-/* PERL_CALLCONV bool Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV bool Perl_hv_exists(pTHX_ HV *hv, const char *key, I32 klen)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_HV_EXISTS \
assert(key)
+#endif
-/* PERL_CALLCONV bool Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV bool Perl_hv_exists_ent(pTHX_ HV *hv, SV *keysv, U32 hash)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_HV_EXISTS_ENT \
assert(keysv)
+#endif
-/* PERL_CALLCONV SV** Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen, I32 lval); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV SV** Perl_hv_fetch(pTHX_ HV *hv, const char *key, I32 klen, I32 lval);
#define PERL_ARGS_ASSERT_HV_FETCH \
assert(key)
-/* PERL_CALLCONV HE* Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, U32 hash); */
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV HE* Perl_hv_fetch_ent(pTHX_ HV *hv, SV *keysv, I32 lval, U32 hash);
#define PERL_ARGS_ASSERT_HV_FETCH_ENT \
assert(keysv)
+#endif
PERL_CALLCONV STRLEN Perl_hv_fill(pTHX_ HV *const hv);
#define PERL_ARGS_ASSERT_HV_FILL \
assert(hv)
@@ -1166,10 +1245,12 @@ PERL_CALLCONV SV* Perl_hv_iterkeysv(pTHX_ HE* entry)
#define PERL_ARGS_ASSERT_HV_ITERKEYSV \
assert(entry)
-/* PERL_CALLCONV HE* Perl_hv_iternext(pTHX_ HV *hv)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV HE* Perl_hv_iternext(pTHX_ HV *hv)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_HV_ITERNEXT \
assert(hv)
+#endif
PERL_CALLCONV HE* Perl_hv_iternext_flags(pTHX_ HV *hv, I32 flags)
__attribute__warn_unused_result__;
@@ -1189,9 +1270,11 @@ PERL_CALLCONV SV* Perl_hv_iterval(pTHX_ HV *hv, HE *entry)
PERL_CALLCONV void Perl_hv_ksplit(pTHX_ HV *hv, IV newmax);
#define PERL_ARGS_ASSERT_HV_KSPLIT \
assert(hv)
-/* PERL_CALLCONV void Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_hv_magic(pTHX_ HV *hv, GV *gv, int how);
#define PERL_ARGS_ASSERT_HV_MAGIC \
assert(hv)
+#endif
PERL_CALLCONV void Perl_hv_name_set(pTHX_ HV *hv, const char *name, U32 len, U32 flags);
#define PERL_ARGS_ASSERT_HV_NAME_SET \
assert(hv)
@@ -1224,13 +1307,25 @@ PERL_CALLCONV SV* Perl_hv_scalar(pTHX_ HV *hv)
#define PERL_ARGS_ASSERT_HV_SCALAR \
assert(hv)
-/* PERL_CALLCONV SV** Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash); */
-/* PERL_CALLCONV HE* Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash); */
-/* PERL_CALLCONV SV** Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV SV** Perl_hv_store(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash);
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV HE* Perl_hv_store_ent(pTHX_ HV *hv, SV *key, SV *val, U32 hash);
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV SV** Perl_hv_store_flags(pTHX_ HV *hv, const char *key, I32 klen, SV *val, U32 hash, int flags);
+#endif
/* PERL_CALLCONV void hv_undef(pTHX_ HV *hv); */
PERL_CALLCONV void Perl_hv_undef_flags(pTHX_ HV *hv, U32 flags);
-/* PERL_CALLCONV I32 ibcmp(pTHX_ const char* a, const char* b, I32 len); */
-/* PERL_CALLCONV I32 ibcmp_locale(pTHX_ const char* a, const char* b, I32 len); */
+/* PERL_CALLCONV I32 ibcmp(pTHX_ const char* a, const char* b, I32 len)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
+
+/* PERL_CALLCONV I32 ibcmp_locale(pTHX_ const char* a, const char* b, I32 len)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
+
/* PERL_CALLCONV I32 ibcmp_utf8(pTHX_ const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2); */
PERL_CALLCONV void Perl_init_argv_symbols(pTHX_ int argc, char **argv);
#define PERL_ARGS_ASSERT_INIT_ARGV_SYMBOLS \
@@ -1244,11 +1339,13 @@ PERL_CALLCONV void Perl_init_stacks(pTHX);
PERL_CALLCONV void Perl_init_tm(pTHX_ struct tm *ptm);
#define PERL_ARGS_ASSERT_INIT_TM \
assert(ptm)
+#ifndef NO_MATHOMS
PERL_CALLCONV char* Perl_instr(const char* big, const char* little)
__attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_INSTR \
assert(big); assert(little)
+#endif
PERL_CALLCONV U32 Perl_intro_my(pTHX);
PERL_CALLCONV OP* Perl_invert(pTHX_ OP* cmd)
@@ -1259,58 +1356,83 @@ PERL_CALLCONV bool Perl_io_close(pTHX_ IO* io, GV *gv, bool not_implicit, bool w
assert(io)
PERL_CALLCONV bool Perl_isALNUM_lazy(pTHX_ const char* p)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_ISALNUM_LAZY \
assert(p)
PERL_CALLCONV bool Perl_isIDFIRST_lazy(pTHX_ const char* p)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_ISIDFIRST_LAZY \
assert(p)
-/* PERL_CALLCONV bool Perl_is_ascii_string(pTHX_ const U8 *s, STRLEN len)
- __attribute__warn_unused_result__; */
+/* PERL_CALLCONV bool Perl_is_ascii_string(const U8* const s, const STRLEN len)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
-PERL_CALLCONV bool Perl_is_invariant_string(const U8 *s, STRLEN len)
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_c9strict_utf8_string(const U8 *s, const STRLEN len)
__attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_INVARIANT_STRING \
+#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING \
assert(s)
+#endif
+
+/* PERL_CALLCONV bool is_c9strict_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep); */
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_c9strict_utf8_string_loclen(const U8 *s, const STRLEN len, const U8 **ep, STRLEN *el);
+#define PERL_ARGS_ASSERT_IS_C9STRICT_UTF8_STRING_LOCLEN \
+ assert(s)
+#endif
+/* PERL_CALLCONV bool Perl_is_invariant_string(const U8* const s, const STRLEN len)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
PERL_CALLCONV I32 Perl_is_lvalue_sub(pTHX)
__attribute__warn_unused_result__;
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char *op_name)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_IS_SAFE_SYSCALL \
+ assert(pv); assert(what); assert(op_name)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_strict_utf8_string(const U8 *s, const STRLEN len)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING \
+ assert(s)
+#endif
+
+/* PERL_CALLCONV bool is_strict_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep); */
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_strict_utf8_string_loclen(const U8 *s, const STRLEN len, const U8 **ep, STRLEN *el);
+#define PERL_ARGS_ASSERT_IS_STRICT_UTF8_STRING_LOCLEN \
+ assert(s)
+#endif
PERL_CALLCONV bool Perl_is_uni_alnum(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_alnum_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_alnumc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_alnumc_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_alpha(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_alpha_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_ascii(pTHX_ UV c)
__attribute__deprecated__
@@ -1344,63 +1466,51 @@ PERL_CALLCONV bool Perl_is_uni_cntrl_lc(pTHX_ UV c)
PERL_CALLCONV bool Perl_is_uni_digit(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_digit_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_graph(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_graph_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_idfirst(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_idfirst_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_lower(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_lower_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_print(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_print_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_punct(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_punct_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_space(pTHX_ UV c)
__attribute__deprecated__
@@ -1414,13 +1524,11 @@ PERL_CALLCONV bool Perl_is_uni_space_lc(pTHX_ UV c)
PERL_CALLCONV bool Perl_is_uni_upper(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_upper_lc(pTHX_ UV c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV bool Perl_is_uni_xdigit(pTHX_ UV c)
__attribute__deprecated__
@@ -1467,9 +1575,11 @@ PERL_CALLCONV STRLEN Perl_is_utf8_char(const U8 *s)
#define PERL_ARGS_ASSERT_IS_UTF8_CHAR \
assert(s)
-/* PERL_CALLCONV STRLEN Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV STRLEN Perl_is_utf8_char_buf(const U8 *buf, const U8 *buf_end);
#define PERL_ARGS_ASSERT_IS_UTF8_CHAR_BUF \
assert(buf); assert(buf_end)
+#endif
PERL_CALLCONV bool Perl_is_utf8_cntrl(pTHX_ const U8 *p)
__attribute__deprecated__
__attribute__warn_unused_result__;
@@ -1482,6 +1592,13 @@ PERL_CALLCONV bool Perl_is_utf8_digit(pTHX_ const U8 *p)
#define PERL_ARGS_ASSERT_IS_UTF8_DIGIT \
assert(p)
+/* PERL_CALLCONV bool is_utf8_fixed_width_buf_flags(const U8 * const s, const STRLEN len, const U32 flags); */
+/* PERL_CALLCONV bool is_utf8_fixed_width_buf_loc_flags(const U8 * const s, const STRLEN len, const U8 **ep, const U32 flags); */
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_utf8_fixed_width_buf_loclen_flags(const U8 * const s, const STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
+#define PERL_ARGS_ASSERT_IS_UTF8_FIXED_WIDTH_BUF_LOCLEN_FLAGS \
+ assert(s)
+#endif
PERL_CALLCONV bool Perl_is_utf8_graph(pTHX_ const U8 *p)
__attribute__deprecated__
__attribute__warn_unused_result__;
@@ -1500,6 +1617,13 @@ PERL_CALLCONV bool Perl_is_utf8_idfirst(pTHX_ const U8 *p)
#define PERL_ARGS_ASSERT_IS_UTF8_IDFIRST \
assert(p)
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_utf8_invariant_string(const U8* const s, STRLEN const len)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_IS_UTF8_INVARIANT_STRING \
+ assert(s)
+#endif
+
PERL_CALLCONV bool Perl_is_utf8_lower(pTHX_ const U8 *p)
__attribute__deprecated__
__attribute__warn_unused_result__;
@@ -1548,21 +1672,53 @@ PERL_CALLCONV bool Perl_is_utf8_space(pTHX_ const U8 *p)
#define PERL_ARGS_ASSERT_IS_UTF8_SPACE \
assert(p)
-PERL_CALLCONV bool Perl_is_utf8_string(const U8 *s, STRLEN len);
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool Perl_is_utf8_string(const U8 *s, const STRLEN len)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_IS_UTF8_STRING \
assert(s)
-/* PERL_CALLCONV bool Perl_is_utf8_string_loc(const U8 *s, STRLEN len, const U8 **ep); */
-#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC \
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_utf8_string_flags(const U8 *s, const STRLEN len, const U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_IS_UTF8_STRING_FLAGS \
assert(s)
-PERL_CALLCONV bool Perl_is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el);
+#endif
+
+#ifndef NO_MATHOMS
+PERL_CALLCONV bool Perl_is_utf8_string_loc(const U8 *s, const STRLEN len, const U8 **ep);
+#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOC \
+ assert(s); assert(ep)
+#endif
+/* PERL_CALLCONV bool is_utf8_string_loc_flags(const U8 *s, const STRLEN len, const U8 **ep, const U32 flags); */
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool Perl_is_utf8_string_loclen(const U8 *s, const STRLEN len, const U8 **ep, STRLEN *el);
#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN \
assert(s)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_utf8_string_loclen_flags(const U8 *s, const STRLEN len, const U8 **ep, STRLEN *el, const U32 flags);
+#define PERL_ARGS_ASSERT_IS_UTF8_STRING_LOCLEN_FLAGS \
+ assert(s)
+#endif
PERL_CALLCONV bool Perl_is_utf8_upper(pTHX_ const U8 *p)
__attribute__deprecated__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_IS_UTF8_UPPER \
assert(p)
+/* PERL_CALLCONV bool is_utf8_valid_partial_char(const U8 * const s, const U8 * const e)
+ __attribute__warn_unused_result__
+ __attribute__pure__; */
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_utf8_valid_partial_char_flags(const U8 * const s, const U8 * const e, const U32 flags)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_IS_UTF8_VALID_PARTIAL_CHAR_FLAGS \
+ assert(s); assert(e)
+#endif
+
PERL_CALLCONV bool Perl_is_utf8_xdigit(pTHX_ const U8 *p)
__attribute__deprecated__
__attribute__warn_unused_result__;
@@ -1581,7 +1737,10 @@ PERL_CALLCONV bool Perl_is_utf8_xidfirst(pTHX_ const U8 *p)
#define PERL_ARGS_ASSERT_IS_UTF8_XIDFIRST \
assert(p)
-PERL_CALLCONV bool Perl_isinfnan(NV nv);
+PERL_CALLCONV bool Perl_isinfnan(NV nv)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+
PERL_CALLCONV bool Perl_isinfnansv(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_ISINFNANSV \
assert(sv)
@@ -1589,6 +1748,7 @@ PERL_CALLCONV OP* Perl_jmaybe(pTHX_ OP *o);
#define PERL_ARGS_ASSERT_JMAYBE \
assert(o)
PERL_CALLCONV I32 Perl_keyword(pTHX_ const char *name, I32 len, bool all_keywords)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_KEYWORD \
assert(name)
@@ -1914,7 +2074,9 @@ PERL_CALLCONV_NO_RET void Perl_my_failure_exit(pTHX)
PERL_CALLCONV I32 Perl_my_fflush_all(pTHX);
PERL_CALLCONV Pid_t Perl_my_fork(void);
-/* PERL_CALLCONV I32 Perl_my_lstat(pTHX); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV I32 Perl_my_lstat(pTHX);
+#endif
PERL_CALLCONV I32 Perl_my_lstat_flags(pTHX_ const U32 flags);
PERL_CALLCONV PerlIO* Perl_my_popen_list(pTHX_ const char* mode, int n, SV ** args);
#define PERL_ARGS_ASSERT_MY_POPEN_LIST \
@@ -1926,7 +2088,9 @@ PERL_CALLCONV int Perl_my_snprintf(char *buffer, const Size_t len, const char *f
assert(buffer); assert(format)
PERL_CALLCONV int Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
-/* PERL_CALLCONV I32 Perl_my_stat(pTHX); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV I32 Perl_my_stat(pTHX);
+#endif
PERL_CALLCONV I32 Perl_my_stat_flags(pTHX_ const U32 flags);
PERL_CALLCONV char* Perl_my_strerror(pTHX_ const int errnum);
PERL_CALLCONV char * Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst)
@@ -1940,35 +2104,31 @@ PERL_CALLCONV int Perl_my_vsnprintf(char *buffer, const Size_t len, const char *
assert(buffer); assert(format)
PERL_CALLCONV OP* Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
PERL_CALLCONV OP* Perl_newANONHASH(pTHX_ OP* o)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newANONLIST(pTHX_ OP* o)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newANONSUB(pTHX_ I32 floor, OP* proto, OP* block);
PERL_CALLCONV OP* Perl_newASSIGNOP(pTHX_ I32 flags, OP* left, I32 optype, OP* right)
- __attribute__malloc__
__attribute__warn_unused_result__;
/* PERL_CALLCONV CV* newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block); */
PERL_CALLCONV CV* Perl_newATTRSUB_x(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block, bool o_is_gv);
-/* PERL_CALLCONV AV* Perl_newAV(pTHX)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV AV* Perl_newAV(pTHX)
+ __attribute__warn_unused_result__;
+#endif
PERL_CALLCONV OP* Perl_newAVREF(pTHX_ OP* o)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWAVREF \
assert(o)
PERL_CALLCONV OP* Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newCONDOP(pTHX_ I32 flags, OP* first, OP* trueop, OP* falseop)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWCONDOP \
assert(first)
@@ -1976,7 +2136,6 @@ PERL_CALLCONV OP* Perl_newCONDOP(pTHX_ I32 flags, OP* first, OP* trueop, OP* fal
PERL_CALLCONV CV* Perl_newCONSTSUB(pTHX_ HV* stash, const char* name, SV* sv);
PERL_CALLCONV CV* Perl_newCONSTSUB_flags(pTHX_ HV* stash, const char* name, STRLEN len, U32 flags, SV* sv);
PERL_CALLCONV OP* Perl_newCVREF(pTHX_ I32 flags, OP* o)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newDEFSVOP(pTHX)
@@ -1984,13 +2143,11 @@ PERL_CALLCONV OP* Perl_newDEFSVOP(pTHX)
PERL_CALLCONV void Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
PERL_CALLCONV OP* Perl_newFOROP(pTHX_ I32 flags, OP* sv, OP* expr, OP* block, OP* cont)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWFOROP \
assert(expr)
PERL_CALLCONV OP* Perl_newGIVENOP(pTHX_ OP* cond, OP* block, PADOFFSET defsv_off)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWGIVENOP \
assert(cond); assert(block)
@@ -1999,67 +2156,59 @@ PERL_CALLCONV GP * Perl_newGP(pTHX_ GV *const gv);
#define PERL_ARGS_ASSERT_NEWGP \
assert(gv)
PERL_CALLCONV OP* Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWGVOP \
assert(gv)
PERL_CALLCONV OP* Perl_newGVREF(pTHX_ I32 type, OP* o)
- __attribute__malloc__
__attribute__warn_unused_result__;
/* PERL_CALLCONV GV* newGVgen(pTHX_ const char* pack); */
PERL_CALLCONV GV* Perl_newGVgen_flags(pTHX_ const char* pack, U32 flags)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWGVGEN_FLAGS \
assert(pack)
-/* PERL_CALLCONV HV* Perl_newHV(pTHX)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV HV* Perl_newHV(pTHX)
+ __attribute__warn_unused_result__;
+#endif
PERL_CALLCONV OP* Perl_newHVREF(pTHX_ OP* o)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWHVREF \
assert(o)
PERL_CALLCONV HV* Perl_newHVhv(pTHX_ HV *hv)
- __attribute__malloc__
__attribute__warn_unused_result__;
-/* PERL_CALLCONV IO* Perl_newIO(pTHX)
- __attribute__malloc__
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV IO* Perl_newIO(pTHX)
+ __attribute__warn_unused_result__;
+#endif
PERL_CALLCONV OP* Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP *first, OP *other)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWLOGOP \
assert(first); assert(other)
PERL_CALLCONV OP* Perl_newLOOPEX(pTHX_ I32 type, OP* label)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWLOOPEX \
assert(label)
PERL_CALLCONV OP* Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP* block)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newMETHOP(pTHX_ I32 type, I32 flags, OP* dynamic_meth)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWMETHOP \
assert(dynamic_meth)
PERL_CALLCONV OP* Perl_newMETHOP_named(pTHX_ I32 type, I32 flags, SV* const_meth)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWMETHOP_NAMED \
assert(const_meth)
@@ -2068,162 +2217,132 @@ PERL_CALLCONV CV * Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, O
#define PERL_ARGS_ASSERT_NEWMYSUB \
assert(o)
PERL_CALLCONV OP* Perl_newNULLLIST(pTHX)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newOP(pTHX_ I32 optype, I32 flags)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV PADNAMELIST * Perl_newPADNAMELIST(size_t max)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV PADNAME * Perl_newPADNAMEouter(PADNAME *outer)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWPADNAMEOUTER \
assert(outer)
PERL_CALLCONV PADNAME * Perl_newPADNAMEpvn(const char *s, STRLEN len)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWPADNAMEPVN \
assert(s)
PERL_CALLCONV OP* Perl_newPMOP(pTHX_ I32 type, I32 flags)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV void Perl_newPROG(pTHX_ OP* o);
#define PERL_ARGS_ASSERT_NEWPROG \
assert(o)
PERL_CALLCONV OP* Perl_newPVOP(pTHX_ I32 type, I32 flags, char* pv)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newRANGE(pTHX_ I32 flags, OP* left, OP* right)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWRANGE \
assert(left); assert(right)
PERL_CALLCONV SV* Perl_newRV(pTHX_ SV *const sv)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWRV \
assert(sv)
PERL_CALLCONV SV* Perl_newRV_noinc(pTHX_ SV *const tmpRef)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWRV_NOINC \
assert(tmpRef)
PERL_CALLCONV OP* Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newSTATEOP(pTHX_ I32 flags, char* label, OP* o)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV CV* Perl_newSTUB(pTHX_ GV *gv, bool fake);
#define PERL_ARGS_ASSERT_NEWSTUB \
assert(gv)
-/* PERL_CALLCONV CV* Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV CV* Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block);
+#endif
PERL_CALLCONV SV* Perl_newSV(pTHX_ const STRLEN len)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVOP \
assert(sv)
PERL_CALLCONV OP* Perl_newSVREF(pTHX_ OP* o)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVREF \
assert(o)
PERL_CALLCONV SV* Perl_newSV_type(pTHX_ const svtype type)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVavdefelem(pTHX_ AV *av, SSize_t ix, bool extendible)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWSVAVDEFELEM \
assert(av)
PERL_CALLCONV SV* Perl_newSVhek(pTHX_ const HEK *const hek)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSViv(pTHX_ const IV i)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVnv(pTHX_ const NV n)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVpv(pTHX_ const char *const s, const STRLEN len)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVpv_share(pTHX_ const char* s, U32 hash)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVpvf(pTHX_ const char *const pat, ...)
- __attribute__malloc__
__attribute__warn_unused_result__
__attribute__format__(__printf__,pTHX_1,pTHX_2);
#define PERL_ARGS_ASSERT_NEWSVPVF \
assert(pat)
PERL_CALLCONV SV* Perl_newSVpvn(pTHX_ const char *const s, const STRLEN len)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVpvn_flags(pTHX_ const char *const s, const STRLEN len, const U32 flags)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVpvn_share(pTHX_ const char* s, I32 len, U32 hash)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVrv(pTHX_ SV *const rv, const char *const classname);
#define PERL_ARGS_ASSERT_NEWSVRV \
assert(rv)
PERL_CALLCONV SV* Perl_newSVsv(pTHX_ SV *const old)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_newSVuv(pTHX_ const UV u)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newUNOP(pTHX_ I32 type, I32 flags, OP* first)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newUNOP_AUX(pTHX_ I32 type, I32 flags, OP* first, UNOP_AUX_item *aux)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV OP* Perl_newWHENOP(pTHX_ OP* cond, OP* block)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWWHENOP \
assert(block)
PERL_CALLCONV OP* Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, OP* expr, OP* block, OP* cont, I32 has_my)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV CV* Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename);
@@ -2244,14 +2363,12 @@ PERL_CALLCONV void Perl_new_ctype(pTHX_ const char* newctype);
assert(newctype)
PERL_CALLCONV void Perl_new_numeric(pTHX_ const char* newcoll);
PERL_CALLCONV PERL_SI* Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_new_version(pTHX_ SV *ver);
#define PERL_ARGS_ASSERT_NEW_VERSION \
assert(ver)
PERL_CALLCONV STRLEN * Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const char *const bits, STRLEN size)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEW_WARNINGS_BITFIELD \
assert(bits)
@@ -2259,11 +2376,6 @@ PERL_CALLCONV STRLEN * Perl_new_warnings_bitfield(pTHX_ STRLEN *buffer, const ch
PERL_CALLCONV PerlIO* Perl_nextargv(pTHX_ GV* gv, bool nomagicopen);
#define PERL_ARGS_ASSERT_NEXTARGV \
assert(gv)
-PERL_CALLCONV char* Perl_ninstr(const char* big, const char* bigend, const char* little, const char* lend)
- __attribute__pure__;
-#define PERL_ARGS_ASSERT_NINSTR \
- assert(big); assert(bigend); assert(little); assert(lend)
-
PERL_CALLCONV_NO_RET void Perl_noperl_die(const char* pat, ...)
__attribute__noreturn__
__attribute__format__(__printf__,1,2);
@@ -2271,6 +2383,7 @@ PERL_CALLCONV_NO_RET void Perl_noperl_die(const char* pat, ...)
assert(pat)
PERL_CALLCONV int Perl_nothreadhook(pTHX);
+PERL_CALLCONV void Perl_notify_parser_that_changed_to_utf8(pTHX);
PERL_CALLCONV OP* Perl_oopsAV(pTHX_ OP* o)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_OOPSAV \
@@ -2283,6 +2396,7 @@ PERL_CALLCONV OP* Perl_oopsHV(pTHX_ OP* o)
PERL_CALLCONV OP* Perl_op_append_elem(pTHX_ I32 optype, OP* first, OP* last);
PERL_CALLCONV OP* Perl_op_append_list(pTHX_ I32 optype, OP* first, OP* last);
+PERL_CALLCONV OPclass Perl_op_class(pTHX_ const OP *o);
PERL_CALLCONV void Perl_op_clear(pTHX_ OP* o);
#define PERL_ARGS_ASSERT_OP_CLEAR \
assert(o)
@@ -2339,8 +2453,10 @@ PERL_CALLCONV void Perl_pad_add_weakref(pTHX_ CV* func);
assert(func)
PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
PERL_CALLCONV void Perl_pad_block_start(pTHX_ int full);
+#ifndef NO_MATHOMS
PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ const PADOFFSET po)
__attribute__warn_unused_result__;
+#endif
PERL_CALLCONV PADOFFSET Perl_pad_findmy_pv(pTHX_ const char* name, U32 flags);
#define PERL_ARGS_ASSERT_PAD_FINDMY_PV \
@@ -2357,7 +2473,6 @@ PERL_CALLCONV void Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv
PERL_CALLCONV void Perl_pad_free(pTHX_ PADOFFSET po);
PERL_CALLCONV OP * Perl_pad_leavemy(pTHX);
PERL_CALLCONV PADLIST* Perl_pad_new(pTHX_ int flags)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV void Perl_pad_push(pTHX_ PADLIST *padlist, int depth);
@@ -2390,9 +2505,6 @@ PERL_CALLCONV OP* Perl_parse_fullstmt(pTHX_ U32 flags);
PERL_CALLCONV SV* Perl_parse_label(pTHX_ U32 flags);
PERL_CALLCONV OP* Perl_parse_listexpr(pTHX_ U32 flags);
PERL_CALLCONV OP* Perl_parse_stmtseq(pTHX_ U32 flags);
-PERL_CALLCONV OP * Perl_parse_subsignature(pTHX)
- __attribute__warn_unused_result__;
-
PERL_CALLCONV OP* Perl_parse_termexpr(pTHX_ U32 flags);
PERL_CALLCONV U32 Perl_parse_unicode_opts(pTHX_ const char **popt);
#define PERL_ARGS_ASSERT_PARSE_UNICODE_OPTS \
@@ -2418,7 +2530,7 @@ PERL_CALLCONV int perl_run(PerlInterpreter *my_perl);
#define PERL_ARGS_ASSERT_PERL_RUN \
assert(my_perl)
PERL_CALLCONV void Perl_pmop_dump(pTHX_ PMOP* pm);
-PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, bool isreg, I32 floor);
+PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP *o, OP *expr, OP *repl, UV flags, I32 floor);
#define PERL_ARGS_ASSERT_PMRUNTIME \
assert(o); assert(expr)
PERL_CALLCONV void Perl_pop_scope(pTHX);
@@ -2448,7 +2560,6 @@ PERL_CALLCONV void* Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *const tbl, const void
PERL_CALLCONV void Perl_ptr_table_free(pTHX_ PTR_TBL_t *const tbl);
PERL_CALLCONV PTR_TBL_t* Perl_ptr_table_new(pTHX)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV void Perl_ptr_table_split(pTHX_ PTR_TBL_t *const tbl);
@@ -2486,7 +2597,6 @@ PERL_CALLCONV REGEXP* Perl_re_op_compile(pTHX_ SV ** const patternp, int pat_cou
#define PERL_ARGS_ASSERT_RE_OP_COMPILE \
assert(eng)
PERL_CALLCONV Malloc_t Perl_realloc(Malloc_t where, MEM_SIZE nbytes)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV void Perl_reentrant_free(pTHX);
@@ -2495,7 +2605,9 @@ PERL_CALLCONV void* Perl_reentrant_retry(const char *f, ...);
#define PERL_ARGS_ASSERT_REENTRANT_RETRY \
assert(f)
PERL_CALLCONV void Perl_reentrant_size(pTHX);
-/* PERL_CALLCONV OP* Perl_ref(pTHX_ OP* o, I32 type); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV OP* Perl_ref(pTHX_ OP* o, I32 type);
+#endif
PERL_CALLCONV HV * Perl_refcounted_he_chain_2hv(pTHX_ const struct refcounted_he *c, U32 flags);
PERL_CALLCONV SV * Perl_refcounted_he_fetch_pv(pTHX_ const struct refcounted_he *chain, const char *key, U32 hash, U32 flags);
#define PERL_ARGS_ASSERT_REFCOUNTED_HE_FETCH_PV \
@@ -2582,6 +2694,7 @@ PERL_CALLCONV void Perl_require_pv(pTHX_ const char* pv);
#define PERL_ARGS_ASSERT_REQUIRE_PV \
assert(pv)
PERL_CALLCONV char* Perl_rninstr(const char* big, const char* bigend, const char* little, const char* lend)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_RNINSTR \
assert(big); assert(bigend); assert(little); assert(lend)
@@ -2611,7 +2724,6 @@ PERL_CALLCONV Malloc_t Perl_safesysmalloc(MEM_SIZE nbytes)
__attribute__warn_unused_result__;
PERL_CALLCONV Malloc_t Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV void Perl_save_I16(pTHX_ I16* intp);
@@ -2650,9 +2762,15 @@ PERL_CALLCONV void Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void
#define PERL_ARGS_ASSERT_SAVE_DESTRUCTOR \
assert(p)
PERL_CALLCONV void Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void* p);
-/* PERL_CALLCONV void Perl_save_freeop(pTHX_ OP* o); */
-/* PERL_CALLCONV void Perl_save_freepv(pTHX_ char* pv); */
-/* PERL_CALLCONV void Perl_save_freesv(pTHX_ SV* sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_save_freeop(pTHX_ OP* o);
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_save_freepv(pTHX_ char* pv);
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_save_freesv(pTHX_ SV* sv);
+#endif
PERL_CALLCONV void Perl_save_generic_pvref(pTHX_ char** str);
#define PERL_ARGS_ASSERT_SAVE_GENERIC_PVREF \
assert(str)
@@ -2691,13 +2809,17 @@ PERL_CALLCONV void Perl_save_list(pTHX_ SV** sarg, I32 maxsarg);
PERL_CALLCONV void Perl_save_long(pTHX_ long* longp);
#define PERL_ARGS_ASSERT_SAVE_LONG \
assert(longp)
-/* PERL_CALLCONV void Perl_save_mortalizesv(pTHX_ SV* sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_save_mortalizesv(pTHX_ SV* sv);
#define PERL_ARGS_ASSERT_SAVE_MORTALIZESV \
assert(sv)
+#endif
PERL_CALLCONV void Perl_save_nogv(pTHX_ GV* gv);
#define PERL_ARGS_ASSERT_SAVE_NOGV \
assert(gv)
-/* PERL_CALLCONV void Perl_save_op(pTHX); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_save_op(pTHX);
+#endif
PERL_CALLCONV void Perl_save_padsv_and_mortalize(pTHX_ PADOFFSET off);
PERL_CALLCONV void Perl_save_pptr(pTHX_ char** pptr);
#define PERL_ARGS_ASSERT_SAVE_PPTR \
@@ -2826,9 +2948,11 @@ PERL_CALLCONV CV* Perl_sv_2cv(pTHX_ SV* sv, HV **const st, GV **const gvp, const
PERL_CALLCONV IO* Perl_sv_2io(pTHX_ SV *const sv);
#define PERL_ARGS_ASSERT_SV_2IO \
assert(sv)
-/* PERL_CALLCONV IV Perl_sv_2iv(pTHX_ SV *sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV IV Perl_sv_2iv(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_2IV \
assert(sv)
+#endif
PERL_CALLCONV IV Perl_sv_2iv_flags(pTHX_ SV *const sv, const I32 flags);
#define PERL_ARGS_ASSERT_SV_2IV_FLAGS \
assert(sv)
@@ -2839,36 +2963,46 @@ PERL_CALLCONV SV* Perl_sv_2num(pTHX_ SV *const sv);
PERL_CALLCONV NV Perl_sv_2nv_flags(pTHX_ SV *const sv, const I32 flags);
#define PERL_ARGS_ASSERT_SV_2NV_FLAGS \
assert(sv)
-/* PERL_CALLCONV char* Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp);
#define PERL_ARGS_ASSERT_SV_2PV \
assert(sv)
+#endif
PERL_CALLCONV char* Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
#define PERL_ARGS_ASSERT_SV_2PV_FLAGS \
assert(sv)
-/* PERL_CALLCONV char* Perl_sv_2pv_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_sv_2pv_nolen(pTHX_ SV* sv)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_2PV_NOLEN \
assert(sv)
+#endif
PERL_CALLCONV char* Perl_sv_2pvbyte(pTHX_ SV *sv, STRLEN *const lp);
#define PERL_ARGS_ASSERT_SV_2PVBYTE \
assert(sv)
-/* PERL_CALLCONV char* Perl_sv_2pvbyte_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_sv_2pvbyte_nolen(pTHX_ SV* sv)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_2PVBYTE_NOLEN \
assert(sv)
+#endif
PERL_CALLCONV char* Perl_sv_2pvutf8(pTHX_ SV *sv, STRLEN *const lp);
#define PERL_ARGS_ASSERT_SV_2PVUTF8 \
assert(sv)
-/* PERL_CALLCONV char* Perl_sv_2pvutf8_nolen(pTHX_ SV* sv)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_sv_2pvutf8_nolen(pTHX_ SV* sv)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_2PVUTF8_NOLEN \
assert(sv)
+#endif
-/* PERL_CALLCONV UV Perl_sv_2uv(pTHX_ SV *sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV UV Perl_sv_2uv(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_2UV \
assert(sv)
+#endif
PERL_CALLCONV UV Perl_sv_2uv_flags(pTHX_ SV *const sv, const I32 flags);
#define PERL_ARGS_ASSERT_SV_2UV_FLAGS \
assert(sv)
@@ -2900,24 +3034,32 @@ PERL_CALLCONV void Perl_sv_catpvf_mg(pTHX_ SV *const sv, const char *const pat,
#define PERL_ARGS_ASSERT_SV_CATPVF_MG \
assert(sv); assert(pat)
-/* PERL_CALLCONV void Perl_sv_catpvn(pTHX_ SV *dsv, const char *sstr, STRLEN len); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_catpvn(pTHX_ SV *dsv, const char *sstr, STRLEN len);
#define PERL_ARGS_ASSERT_SV_CATPVN \
assert(dsv); assert(sstr)
+#endif
PERL_CALLCONV void Perl_sv_catpvn_flags(pTHX_ SV *const dstr, const char *sstr, const STRLEN len, const I32 flags);
#define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS \
assert(dstr); assert(sstr)
-/* PERL_CALLCONV void Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len);
#define PERL_ARGS_ASSERT_SV_CATPVN_MG \
assert(sv); assert(ptr)
-/* PERL_CALLCONV void Perl_sv_catsv(pTHX_ SV *dstr, SV *sstr); */
+#endif
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_catsv(pTHX_ SV *dstr, SV *sstr);
#define PERL_ARGS_ASSERT_SV_CATSV \
assert(dstr)
+#endif
PERL_CALLCONV void Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags);
#define PERL_ARGS_ASSERT_SV_CATSV_FLAGS \
assert(dsv)
-/* PERL_CALLCONV void Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *ssv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *ssv);
#define PERL_ARGS_ASSERT_SV_CATSV_MG \
assert(dsv)
+#endif
PERL_CALLCONV void Perl_sv_chop(pTHX_ SV *const sv, const char *const ptr);
#define PERL_ARGS_ASSERT_SV_CHOP \
assert(sv)
@@ -2930,9 +3072,11 @@ PERL_CALLCONV I32 Perl_sv_cmp(pTHX_ SV *const sv1, SV *const sv2);
PERL_CALLCONV I32 Perl_sv_cmp_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags);
PERL_CALLCONV I32 Perl_sv_cmp_locale(pTHX_ SV *const sv1, SV *const sv2);
PERL_CALLCONV I32 Perl_sv_cmp_locale_flags(pTHX_ SV *const sv1, SV *const sv2, const U32 flags);
-/* PERL_CALLCONV void Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_copypv(pTHX_ SV *const dsv, SV *const ssv);
#define PERL_ARGS_ASSERT_SV_COPYPV \
assert(dsv); assert(ssv)
+#endif
PERL_CALLCONV void Perl_sv_copypv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags);
#define PERL_ARGS_ASSERT_SV_COPYPV_FLAGS \
assert(dsv); assert(ssv)
@@ -2984,13 +3128,13 @@ PERL_CALLCONV bool Perl_sv_does_sv(pTHX_ SV* sv, SV* namesv, U32 flags)
assert(sv); assert(namesv)
PERL_CALLCONV void Perl_sv_dump(pTHX_ SV* sv);
-#define PERL_ARGS_ASSERT_SV_DUMP \
- assert(sv)
/* PERL_CALLCONV I32 sv_eq(pTHX_ SV* sv1, SV* sv2); */
PERL_CALLCONV I32 Perl_sv_eq_flags(pTHX_ SV* sv1, SV* sv2, const U32 flags);
-/* PERL_CALLCONV void Perl_sv_force_normal(pTHX_ SV *sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_force_normal(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL \
assert(sv)
+#endif
PERL_CALLCONV void Perl_sv_force_normal_flags(pTHX_ SV *const sv, const U32 flags);
#define PERL_ARGS_ASSERT_SV_FORCE_NORMAL_FLAGS \
assert(sv)
@@ -2999,11 +3143,9 @@ PERL_CALLCONV void Perl_sv_free2(pTHX_ SV *const sv, const U32 refcnt);
#define PERL_ARGS_ASSERT_SV_FREE2 \
assert(sv)
PERL_CALLCONV void Perl_sv_free_arenas(pTHX);
-PERL_CALLCONV SV* Perl_sv_get_backrefs(SV *const sv)
- __attribute__pure__;
+PERL_CALLCONV SV* Perl_sv_get_backrefs(SV *const sv);
#define PERL_ARGS_ASSERT_SV_GET_BACKREFS \
assert(sv)
-
PERL_CALLCONV char* Perl_sv_gets(pTHX_ SV *const sv, PerlIO *const fp, I32 append);
#define PERL_ARGS_ASSERT_SV_GETS \
assert(sv); assert(fp)
@@ -3012,10 +3154,12 @@ PERL_CALLCONV char* Perl_sv_grow(pTHX_ SV *const sv, STRLEN newlen);
assert(sv)
PERL_CALLCONV void Perl_sv_inc(pTHX_ SV *const sv);
PERL_CALLCONV void Perl_sv_inc_nomg(pTHX_ SV *const sv);
-/* PERL_CALLCONV void Perl_sv_insert(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_insert(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen);
#define PERL_ARGS_ASSERT_SV_INSERT \
assert(bigstr); assert(little)
-PERL_CALLCONV void Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen, const U32 flags);
+#endif
+PERL_CALLCONV void Perl_sv_insert_flags(pTHX_ SV *const bigstr, const STRLEN offset, const STRLEN len, const char *little, const STRLEN littlelen, const U32 flags);
#define PERL_ARGS_ASSERT_SV_INSERT_FLAGS \
assert(bigstr); assert(little)
PERL_CALLCONV int Perl_sv_isa(pTHX_ SV* sv, const char *const name);
@@ -3039,23 +3183,33 @@ PERL_CALLCONV MAGIC * Perl_sv_magicext(pTHX_ SV *const sv, SV *const obj, const
PERL_CALLCONV MAGIC * Perl_sv_magicext_mglob(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_MAGICEXT_MGLOB \
assert(sv)
-/* PERL_CALLCONV SV* Perl_sv_mortalcopy(pTHX_ SV *const oldsv)
- __attribute__malloc__
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV SV* Perl_sv_mortalcopy(pTHX_ SV *const oldsv)
+ __attribute__warn_unused_result__;
+#endif
PERL_CALLCONV SV* Perl_sv_mortalcopy_flags(pTHX_ SV *const oldsv, U32 flags)
- __attribute__malloc__
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_sv_newmortal(pTHX)
__attribute__warn_unused_result__;
PERL_CALLCONV SV* Perl_sv_newref(pTHX_ SV *const sv);
-/* PERL_CALLCONV void Perl_sv_nolocking(pTHX_ SV *sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_nolocking(pTHX_ SV *sv);
+#endif
PERL_CALLCONV void Perl_sv_nosharing(pTHX_ SV *sv);
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv);
+#endif
PERL_CALLCONV NV Perl_sv_nv(pTHX_ SV* sv);
#define PERL_ARGS_ASSERT_SV_NV \
assert(sv)
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_sv_only_taint_gmagic(SV *sv);
+#define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC \
+ assert(sv)
+#endif
PERL_CALLCONV char* Perl_sv_peek(pTHX_ SV* sv);
PERL_CALLCONV void Perl_sv_pos_b2u(pTHX_ SV *const sv, I32 *const offsetp);
#define PERL_ARGS_ASSERT_SV_POS_B2U \
@@ -3069,15 +3223,19 @@ PERL_CALLCONV void Perl_sv_pos_u2b(pTHX_ SV *const sv, I32 *const offsetp, I32 *
PERL_CALLCONV STRLEN Perl_sv_pos_u2b_flags(pTHX_ SV *const sv, STRLEN uoffset, STRLEN *const lenp, U32 flags);
#define PERL_ARGS_ASSERT_SV_POS_U2B_FLAGS \
assert(sv)
-/* PERL_CALLCONV char* Perl_sv_pv(pTHX_ SV *sv)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_sv_pv(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_PV \
assert(sv)
+#endif
-/* PERL_CALLCONV char* Perl_sv_pvbyte(pTHX_ SV *sv)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_sv_pvbyte(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_PVBYTE \
assert(sv)
+#endif
PERL_CALLCONV char* Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp);
#define PERL_ARGS_ASSERT_SV_PVBYTEN \
@@ -3088,19 +3246,23 @@ PERL_CALLCONV char* Perl_sv_pvbyten_force(pTHX_ SV *const sv, STRLEN *const lp);
PERL_CALLCONV char* Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp);
#define PERL_ARGS_ASSERT_SV_PVN \
assert(sv); assert(lp)
-/* PERL_CALLCONV char* Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp);
#define PERL_ARGS_ASSERT_SV_PVN_FORCE \
assert(sv)
+#endif
PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
#define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS \
assert(sv)
PERL_CALLCONV char* Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp);
#define PERL_ARGS_ASSERT_SV_PVN_NOMG \
assert(sv)
-/* PERL_CALLCONV char* Perl_sv_pvutf8(pTHX_ SV *sv)
- __attribute__warn_unused_result__; */
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_sv_pvutf8(pTHX_ SV *sv)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_PVUTF8 \
assert(sv)
+#endif
PERL_CALLCONV char* Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *lp);
#define PERL_ARGS_ASSERT_SV_PVUTF8N \
@@ -3130,6 +3292,9 @@ PERL_CALLCONV void Perl_sv_resetpvn(pTHX_ const char* s, STRLEN len, HV *const s
PERL_CALLCONV SV* Perl_sv_rvweaken(pTHX_ SV *const sv);
#define PERL_ARGS_ASSERT_SV_RVWEAKEN \
assert(sv)
+PERL_CALLCONV void Perl_sv_set_undef(pTHX_ SV *sv);
+#define PERL_ARGS_ASSERT_SV_SET_UNDEF \
+ assert(sv)
PERL_CALLCONV void Perl_sv_sethek(pTHX_ SV *const sv, const HEK *const hek);
#define PERL_ARGS_ASSERT_SV_SETHEK \
assert(sv)
@@ -3148,6 +3313,9 @@ PERL_CALLCONV void Perl_sv_setnv_mg(pTHX_ SV *const sv, const NV num);
PERL_CALLCONV void Perl_sv_setpv(pTHX_ SV *const sv, const char *const ptr);
#define PERL_ARGS_ASSERT_SV_SETPV \
assert(sv)
+PERL_CALLCONV char * Perl_sv_setpv_bufsize(pTHX_ SV *const sv, const STRLEN cur, const STRLEN len);
+#define PERL_ARGS_ASSERT_SV_SETPV_BUFSIZE \
+ assert(sv)
PERL_CALLCONV void Perl_sv_setpv_mg(pTHX_ SV *const sv, const char *const ptr);
#define PERL_ARGS_ASSERT_SV_SETPV_MG \
assert(sv)
@@ -3161,12 +3329,16 @@ PERL_CALLCONV void Perl_sv_setpvf_mg(pTHX_ SV *const sv, const char *const pat,
#define PERL_ARGS_ASSERT_SV_SETPVF_MG \
assert(sv); assert(pat)
+#ifndef NO_MATHOMS
PERL_CALLCONV void Perl_sv_setpviv(pTHX_ SV *const sv, const IV num);
#define PERL_ARGS_ASSERT_SV_SETPVIV \
assert(sv)
+#endif
+#ifndef NO_MATHOMS
PERL_CALLCONV void Perl_sv_setpviv_mg(pTHX_ SV *const sv, const IV iv);
#define PERL_ARGS_ASSERT_SV_SETPVIV_MG \
assert(sv)
+#endif
PERL_CALLCONV void Perl_sv_setpvn(pTHX_ SV *const sv, const char *const ptr, const STRLEN len);
#define PERL_ARGS_ASSERT_SV_SETPVN \
assert(sv)
@@ -3188,9 +3360,11 @@ PERL_CALLCONV SV* Perl_sv_setref_pvn(pTHX_ SV *const rv, const char *const class
PERL_CALLCONV SV* Perl_sv_setref_uv(pTHX_ SV *const rv, const char *const classname, const UV uv);
#define PERL_ARGS_ASSERT_SV_SETREF_UV \
assert(rv)
-/* PERL_CALLCONV void Perl_sv_setsv(pTHX_ SV *dstr, SV *sstr); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_setsv(pTHX_ SV *dstr, SV *sstr);
#define PERL_ARGS_ASSERT_SV_SETSV \
assert(dstr)
+#endif
PERL_CALLCONV void Perl_sv_setsv_flags(pTHX_ SV *dstr, SV *sstr, const I32 flags);
#define PERL_ARGS_ASSERT_SV_SETSV_FLAGS \
assert(dstr)
@@ -3203,9 +3377,11 @@ PERL_CALLCONV void Perl_sv_setuv(pTHX_ SV *const sv, const UV num);
PERL_CALLCONV void Perl_sv_setuv_mg(pTHX_ SV *const sv, const UV u);
#define PERL_ARGS_ASSERT_SV_SETUV_MG \
assert(sv)
-/* PERL_CALLCONV void Perl_sv_taint(pTHX_ SV* sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_taint(pTHX_ SV* sv);
#define PERL_ARGS_ASSERT_SV_TAINT \
assert(sv)
+#endif
PERL_CALLCONV bool Perl_sv_tainted(pTHX_ SV *const sv)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_TAINTED \
@@ -3223,9 +3399,11 @@ PERL_CALLCONV int Perl_sv_unmagic(pTHX_ SV *const sv, const int type);
PERL_CALLCONV int Perl_sv_unmagicext(pTHX_ SV *const sv, const int type, MGVTBL *vtbl);
#define PERL_ARGS_ASSERT_SV_UNMAGICEXT \
assert(sv)
-/* PERL_CALLCONV void Perl_sv_unref(pTHX_ SV* sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_unref(pTHX_ SV* sv);
#define PERL_ARGS_ASSERT_SV_UNREF \
assert(sv)
+#endif
PERL_CALLCONV void Perl_sv_unref_flags(pTHX_ SV *const ref, const U32 flags);
#define PERL_ARGS_ASSERT_SV_UNREF_FLAGS \
assert(ref)
@@ -3235,15 +3413,19 @@ PERL_CALLCONV void Perl_sv_untaint(pTHX_ SV *const sv);
PERL_CALLCONV void Perl_sv_upgrade(pTHX_ SV *const sv, svtype new_type);
#define PERL_ARGS_ASSERT_SV_UPGRADE \
assert(sv)
-/* PERL_CALLCONV void Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len);
#define PERL_ARGS_ASSERT_SV_USEPVN \
assert(sv)
+#endif
PERL_CALLCONV void Perl_sv_usepvn_flags(pTHX_ SV *const sv, char* ptr, const STRLEN len, const U32 flags);
#define PERL_ARGS_ASSERT_SV_USEPVN_FLAGS \
assert(sv)
-/* PERL_CALLCONV void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV void Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len);
#define PERL_ARGS_ASSERT_SV_USEPVN_MG \
assert(sv)
+#endif
PERL_CALLCONV bool Perl_sv_utf8_decode(pTHX_ SV *const sv);
#define PERL_ARGS_ASSERT_SV_UTF8_DECODE \
assert(sv)
@@ -3253,9 +3435,11 @@ PERL_CALLCONV bool Perl_sv_utf8_downgrade(pTHX_ SV *const sv, const bool fail_ok
PERL_CALLCONV void Perl_sv_utf8_encode(pTHX_ SV *const sv);
#define PERL_ARGS_ASSERT_SV_UTF8_ENCODE \
assert(sv)
-/* PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade(pTHX_ SV *sv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE \
assert(sv)
+#endif
/* PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade_flags(pTHX_ SV *const sv, const I32 flags); */
PERL_CALLCONV STRLEN Perl_sv_utf8_upgrade_flags_grow(pTHX_ SV *const sv, const I32 flags, STRLEN extra);
#define PERL_ARGS_ASSERT_SV_UTF8_UPGRADE_FLAGS_GROW \
@@ -3315,42 +3499,55 @@ PERL_CALLCONV UV Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp);
assert(p); assert(lenp)
PERL_CALLCONV U32 Perl_to_uni_lower_lc(pTHX_ U32 c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV UV Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp);
#define PERL_ARGS_ASSERT_TO_UNI_TITLE \
assert(p); assert(lenp)
PERL_CALLCONV U32 Perl_to_uni_title_lc(pTHX_ U32 c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV UV Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp);
#define PERL_ARGS_ASSERT_TO_UNI_UPPER \
assert(p); assert(lenp)
PERL_CALLCONV U32 Perl_to_uni_upper_lc(pTHX_ U32 c)
__attribute__deprecated__
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
PERL_CALLCONV UV Perl_to_utf8_case(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, const char *normal, const char *special)
__attribute__deprecated__;
#define PERL_ARGS_ASSERT_TO_UTF8_CASE \
assert(p); assert(ustrp); assert(swashp); assert(normal)
-/* PERL_CALLCONV UV Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV UV Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
+ __attribute__deprecated__;
#define PERL_ARGS_ASSERT_TO_UTF8_FOLD \
assert(p); assert(ustrp)
-/* PERL_CALLCONV UV Perl_to_utf8_lower(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp); */
+#endif
+
+#ifndef NO_MATHOMS
+PERL_CALLCONV UV Perl_to_utf8_lower(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
+ __attribute__deprecated__;
#define PERL_ARGS_ASSERT_TO_UTF8_LOWER \
assert(p); assert(ustrp)
-/* PERL_CALLCONV UV Perl_to_utf8_title(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp); */
+#endif
+
+#ifndef NO_MATHOMS
+PERL_CALLCONV UV Perl_to_utf8_title(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
+ __attribute__deprecated__;
#define PERL_ARGS_ASSERT_TO_UTF8_TITLE \
assert(p); assert(ustrp)
-/* PERL_CALLCONV UV Perl_to_utf8_upper(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp); */
+#endif
+
+#ifndef NO_MATHOMS
+PERL_CALLCONV UV Perl_to_utf8_upper(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
+ __attribute__deprecated__;
#define PERL_ARGS_ASSERT_TO_UTF8_UPPER \
assert(p); assert(ustrp)
+#endif
+
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 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);
@@ -3370,17 +3567,40 @@ PERL_CALLCONV U8* Perl_utf16_to_utf8(pTHX_ U8* p, U8 *d, I32 bytelen, I32 *newle
PERL_CALLCONV U8* Perl_utf16_to_utf8_reversed(pTHX_ U8* p, U8 *d, I32 bytelen, I32 *newlen);
#define PERL_ARGS_ASSERT_UTF16_TO_UTF8_REVERSED \
assert(p); assert(d); assert(newlen)
-PERL_CALLCONV IV Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
- __attribute__warn_unused_result__
- __attribute__pure__;
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE IV Perl_utf8_distance(pTHX_ const U8 *a, const U8 *b)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_UTF8_DISTANCE \
assert(a); assert(b)
+#endif
-PERL_CALLCONV U8* Perl_utf8_hop(const U8 *s, SSize_t off)
- __attribute__warn_unused_result__
- __attribute__pure__;
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE U8* Perl_utf8_hop(const U8 *s, SSize_t off)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_UTF8_HOP \
assert(s)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE U8* Perl_utf8_hop_back(const U8 *s, SSize_t off, const U8 *start)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_UTF8_HOP_BACK \
+ assert(s); assert(start)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE U8* Perl_utf8_hop_forward(const U8 *s, SSize_t off, const U8 *end)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_UTF8_HOP_FORWARD \
+ assert(s); assert(end)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE U8* Perl_utf8_hop_safe(const U8 *s, SSize_t off, const U8 *start, const U8 *end)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_UTF8_HOP_SAFE \
+ assert(s); assert(start); assert(end)
+#endif
PERL_CALLCONV STRLEN Perl_utf8_length(pTHX_ const U8* s, const U8 *e)
__attribute__warn_unused_result__
@@ -3396,7 +3616,9 @@ PERL_CALLCONV UV Perl_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen)
#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR \
assert(s)
-/* PERL_CALLCONV UV utf8_to_uvchr_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen); */
+PERL_CALLCONV UV Perl_utf8_to_uvchr_buf(pTHX_ const U8 *s, const U8 *send, STRLEN *retlen);
+#define PERL_ARGS_ASSERT_UTF8_TO_UVCHR_BUF \
+ assert(s); assert(send)
PERL_CALLCONV UV Perl_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
__attribute__deprecated__;
#define PERL_ARGS_ASSERT_UTF8_TO_UVUNI \
@@ -3407,9 +3629,12 @@ PERL_CALLCONV UV Perl_utf8_to_uvuni_buf(pTHX_ const U8 *s, const U8 *send, STRLE
#define PERL_ARGS_ASSERT_UTF8_TO_UVUNI_BUF \
assert(s); assert(send)
-PERL_CALLCONV UV Perl_utf8n_to_uvchr(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags);
+PERL_CALLCONV UV Perl_utf8n_to_uvchr(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags);
#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR \
assert(s)
+PERL_CALLCONV UV Perl_utf8n_to_uvchr_error(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, const U32 flags, U32 * errors);
+#define PERL_ARGS_ASSERT_UTF8N_TO_UVCHR_ERROR \
+ assert(s)
PERL_CALLCONV UV Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags);
#define PERL_ARGS_ASSERT_UTF8N_TO_UVUNI \
assert(s)
@@ -3418,7 +3643,7 @@ PERL_CALLCONV void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop
assert(idop)
/* PERL_CALLCONV U8* uvchr_to_utf8(pTHX_ U8 *d, UV uv); */
/* PERL_CALLCONV U8* uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags); */
-PERL_CALLCONV U8* Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
+PERL_CALLCONV U8* Perl_uvoffuni_to_utf8_flags(pTHX_ U8 *d, UV uv, const UV flags);
#define PERL_ARGS_ASSERT_UVOFFUNI_TO_UTF8_FLAGS \
assert(d)
PERL_CALLCONV U8* Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv);
@@ -3427,9 +3652,13 @@ PERL_CALLCONV U8* Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv);
PERL_CALLCONV U8* Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
#define PERL_ARGS_ASSERT_UVUNI_TO_UTF8_FLAGS \
assert(d)
-PERL_CALLCONV UV Perl_valid_utf8_to_uvchr(pTHX_ const U8 *s, STRLEN *retlen);
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE UV Perl_valid_utf8_to_uvchr(const U8 *s, STRLEN *retlen)
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVCHR \
assert(s)
+#endif
+
PERL_CALLCONV UV Perl_valid_utf8_to_uvuni(pTHX_ const U8 *s, STRLEN *retlen)
__attribute__deprecated__;
#define PERL_ARGS_ASSERT_VALID_UTF8_TO_UVUNI \
@@ -3465,7 +3694,6 @@ PERL_CALLCONV SV* Perl_vmess(pTHX_ const char* pat, va_list* args);
#define PERL_ARGS_ASSERT_VMESS \
assert(pat)
PERL_CALLCONV SV* Perl_vnewSVpvf(pTHX_ const char *const pat, va_list *const args)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_VNEWSVPVF \
assert(pat)
@@ -3537,10 +3765,9 @@ PERL_CALLCONV int Perl_yyerror_pv(pTHX_ const char *const s, U32 flags);
#define PERL_ARGS_ASSERT_YYERROR_PV \
assert(s)
PERL_CALLCONV int Perl_yyerror_pvn(pTHX_ const char *const s, STRLEN len, U32 flags);
-#define PERL_ARGS_ASSERT_YYERROR_PVN \
- assert(s)
PERL_CALLCONV int Perl_yylex(pTHX);
PERL_CALLCONV int Perl_yyparse(pTHX_ int gramtype);
+PERL_CALLCONV void Perl_yyquit(pTHX);
PERL_CALLCONV void Perl_yyunlex(pTHX);
#if !(defined(DEBUGGING))
# if !defined(NV_PRESERVES_UV)
@@ -3551,13 +3778,18 @@ STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *const sv);
# endif
# endif
#endif
+#if !(defined(HAS_MEMMEM))
+PERL_CALLCONV char* Perl_ninstr(const char* big, const char* bigend, const char* little, const char* lend)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_NINSTR \
+ assert(big); assert(bigend); assert(little); assert(lend)
+
+#endif
#if !(defined(HAS_SIGACTION) && defined(SA_SIGINFO))
PERL_CALLCONV Signal_t Perl_csighandler(int sig);
PERL_CALLCONV Signal_t Perl_sighandler(int sig);
#endif
-#if !(defined(NO_MATHOMS))
-PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv);
-#endif
#if !(defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION))
PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd);
#define PERL_ARGS_ASSERT_DO_EXEC \
@@ -3571,9 +3803,7 @@ PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ int *index, size_t size);
# endif
#endif
#if !(defined(WIN32))
-/* PERL_CALLCONV char* my_setlocale(pTHX_ int category, const char* locale)
- __attribute__pure__; */
-
+/* PERL_CALLCONV char* my_setlocale(pTHX_ int category, const char* locale); */
#endif
#if !(defined(_MSC_VER))
PERL_CALLCONV_NO_RET int Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg)
@@ -3594,6 +3824,7 @@ PERL_CALLCONV char* Perl_getenv_len(pTHX_ const char *env_elem, unsigned long *l
#endif
#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
PERL_CALLCONV int Perl_my_memcmp(const void* vs1, const void* vs2, size_t len)
+ __attribute__warn_unused_result__
__attribute__pure__;
#define PERL_ARGS_ASSERT_MY_MEMCMP \
assert(vs1); assert(vs2)
@@ -3625,6 +3856,7 @@ PERL_CALLCONV I32 Perl_same_dirent(pTHX_ const char* a, const char* b);
#endif
#if !defined(HAS_SIGNBIT)
PERL_CALLCONV int Perl_signbit(NV f)
+ __attribute__warn_unused_result__
__attribute__pure__;
#endif
@@ -3659,28 +3891,58 @@ STATIC PerlIO * S_doopen_pm(pTHX_ SV *name)
#endif
#if !defined(PERL_EXT_RE_BUILD)
# if defined(PERL_IN_REGCOMP_C)
+STATIC void S__append_range_to_invlist(pTHX_ SV* const invlist, const UV start, const UV end);
+#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \
+ assert(invlist)
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE UV* S__invlist_array_init(SV* const invlist, const bool will_have_0)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT \
+ assert(invlist)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE IV* S_get_invlist_previous_index_addr(SV* invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GET_INVLIST_PREVIOUS_INDEX_ADDR \
assert(invlist)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_invlist_clear(pTHX_ SV* invlist);
#define PERL_ARGS_ASSERT_INVLIST_CLEAR \
assert(invlist)
+#endif
+STATIC void S_invlist_extend(pTHX_ SV* const invlist, const UV len);
+#define PERL_ARGS_ASSERT_INVLIST_EXTEND \
+ assert(invlist)
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE UV S_invlist_max(SV* const invlist)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_INVLIST_MAX \
+ assert(invlist)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE IV S_invlist_previous_index(SV* const invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_INVLIST_PREVIOUS_INDEX \
assert(invlist)
+#endif
STATIC void S_invlist_replace_list_destroys_src(pTHX_ SV *dest, SV *src);
#define PERL_ARGS_ASSERT_INVLIST_REPLACE_LIST_DESTROYS_SRC \
assert(dest); assert(src)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_invlist_set_previous_index(SV* const invlist, const IV index);
#define PERL_ARGS_ASSERT_INVLIST_SET_PREVIOUS_INDEX \
assert(invlist)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_invlist_trim(SV* invlist);
#define PERL_ARGS_ASSERT_INVLIST_TRIM \
assert(invlist)
+#endif
# endif
#endif
#if !defined(PERL_IMPLICIT_SYS)
@@ -3697,81 +3959,96 @@ STATIC SV * S_incpush_if_exists(pTHX_ AV *const av, SV *dir, SV *const stem);
# endif
#endif
#if !defined(PERL_NO_INLINE_FUNCTIONS)
-PERL_STATIC_INLINE STRLEN S__is_utf8_char_slow(const U8 *s, const U8 *e)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__IS_UTF8_CHAR_SLOW \
- assert(s); assert(e)
-
-PERL_STATIC_INLINE void S_append_utf8_from_native_byte(const U8 byte, U8** dest);
-#define PERL_ARGS_ASSERT_APPEND_UTF8_FROM_NATIVE_BYTE \
- assert(dest)
-PERL_STATIC_INLINE SSize_t S_av_top_index(pTHX_ AV *av)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_TOP_INDEX \
- assert(av)
-
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_popblock(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPBLOCK \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_popeval(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPEVAL \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_popformat(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPFORMAT \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_popgiven(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPGIVEN \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_poploop(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPLOOP \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_popsub(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPSUB \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_popsub_args(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPSUB_ARGS \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_popsub_common(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPSUB_COMMON \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_popwhen(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_POPWHEN \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE PERL_CONTEXT * S_cx_pushblock(pTHX_ U8 type, U8 gimme, SV** sp, I32 saveix);
#define PERL_ARGS_ASSERT_CX_PUSHBLOCK \
assert(sp)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_pusheval(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv);
#define PERL_ARGS_ASSERT_CX_PUSHEVAL \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_pushformat(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, GV *gv);
#define PERL_ARGS_ASSERT_CX_PUSHFORMAT \
assert(cx); assert(cv)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_pushgiven(pTHX_ PERL_CONTEXT *cx, SV *orig_defsv);
#define PERL_ARGS_ASSERT_CX_PUSHGIVEN \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_pushloop_for(pTHX_ PERL_CONTEXT *cx, void *itervarp, SV *itersave);
#define PERL_ARGS_ASSERT_CX_PUSHLOOP_FOR \
assert(cx); assert(itervarp)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_pushloop_plain(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_PUSHLOOP_PLAIN \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_pushsub(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, bool hasargs);
#define PERL_ARGS_ASSERT_CX_PUSHSUB \
assert(cx); assert(cv)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_pushwhen(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_PUSHWHEN \
assert(cx)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_cx_topblock(pTHX_ PERL_CONTEXT *cx);
#define PERL_ARGS_ASSERT_CX_TOPBLOCK \
assert(cx)
-PERL_STATIC_INLINE bool S_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char *op_name)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_IS_SAFE_SYSCALL \
- assert(pv); assert(what); assert(op_name)
-
-PERL_STATIC_INLINE bool S_sv_only_taint_gmagic(SV *sv);
-#define PERL_ARGS_ASSERT_SV_ONLY_TAINT_GMAGIC \
- assert(sv)
+#endif
#endif
#if !defined(PERL_NO_UTF16_FILTER)
# if defined(PERL_IN_TOKE_C)
@@ -3839,7 +4116,7 @@ STATIC void S_dump_trie_interim_table(pTHX_ const struct _reg_trie_data *trie, H
STATIC const regnode* S_dumpuntil(pTHX_ const regexp *r, const regnode *start, const regnode *node, const regnode *last, const regnode *plast, SV* sv, I32 indent, U32 depth);
#define PERL_ARGS_ASSERT_DUMPUNTIL \
assert(r); assert(start); assert(node); assert(sv)
-STATIC bool S_put_charclass_bitmap_innards(pTHX_ SV* sv, char* bitmap, SV* nonbitmap_invlist, SV* only_utf8_locale_invlist, const regnode * const node);
+STATIC bool S_put_charclass_bitmap_innards(pTHX_ SV* sv, char* bitmap, SV* nonbitmap_invlist, SV* only_utf8_locale_invlist, const regnode * const node, const bool force_as_is_display);
#define PERL_ARGS_ASSERT_PUT_CHARCLASS_BITMAP_INNARDS \
assert(sv); assert(bitmap)
STATIC SV* S_put_charclass_bitmap_innards_common(pTHX_ SV* invlist, SV* posixes, SV* only_utf8, SV* not_utf8, SV* only_utf8_locale, const bool invert);
@@ -3891,16 +4168,35 @@ STATIC int S_tokereport(pTHX_ I32 rv, const YYSTYPE* lvalp);
# endif
# if defined(USE_LOCALE) && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
PERL_CALLCONV char * Perl__setlocale_debug_string(const int category, const char* const locale, const char* const retval)
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
# endif
+# if defined(USE_LOCALE) && defined(PERL_IN_LOCALE_C)
+STATIC void S_print_collxfrm_input_and_return(pTHX_ const char * const s, const char * const e, const STRLEN * const xlen, const bool is_utf8);
+#define PERL_ARGS_ASSERT_PRINT_COLLXFRM_INPUT_AND_RETURN \
+ assert(s); assert(e)
+# endif
+#endif
+#if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
+# if defined(PERL_IN_REGCOMP_C)
+STATIC void S_dump_regex_sets_structures(pTHX_ RExC_state_t *pRExC_state, AV * stack, const IV fence, AV * fence_stack);
+#define PERL_ARGS_ASSERT_DUMP_REGEX_SETS_STRUCTURES \
+ assert(pRExC_state); assert(stack); assert(fence_stack)
+# endif
#endif
#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
PERL_CALLCONV void Perl_dump_sv_child(pTHX_ SV *sv);
#define PERL_ARGS_ASSERT_DUMP_SV_CHILD \
assert(sv)
#endif
+#if defined(HAS_MEMMEM)
+PERL_CALLCONV char* Perl_ninstr(const char* big, const char* bigend, const char* little, const char* lend)
+ __attribute__warn_unused_result__
+ __attribute__pure__;
+#define PERL_ARGS_ASSERT_NINSTR \
+ assert(big); assert(bigend); assert(little); assert(lend)
+
+#endif
#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
PERL_CALLCONV I32 Perl_do_ipcctl(pTHX_ I32 optype, SV** mark, SV** sp);
#define PERL_ARGS_ASSERT_DO_IPCCTL \
@@ -3950,9 +4246,6 @@ PERL_CALLCONV MEM_SIZE Perl_malloced_size(void *p)
assert(p)
#endif
-#if defined(NO_MATHOMS)
-/* PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv); */
-#endif
#if defined(PERL_ANY_COW)
PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dstr, SV* sstr);
#define PERL_ARGS_ASSERT_SV_SETSV_COW \
@@ -3971,10 +4264,12 @@ PERL_CALLCONV void Perl_opslab_free_nopad(pTHX_ OPSLAB *slab);
PERL_CALLCONV void Perl_parser_free_nexttoke_ops(pTHX_ yy_parser *parser, OPSLAB *slab);
#define PERL_ARGS_ASSERT_PARSER_FREE_NEXTTOKE_OPS \
assert(parser); assert(slab)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE bool S_should_warn_nl(const char *pv)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SHOULD_WARN_NL \
assert(pv)
+#endif
# if defined(PERL_DEBUG_READONLY_OPS)
PERL_CALLCONV void Perl_Slab_to_ro(pTHX_ OPSLAB *slab);
@@ -3986,10 +4281,12 @@ PERL_CALLCONV void Perl_Slab_to_rw(pTHX_ OPSLAB *const slab);
# endif
#endif
#if defined(PERL_CORE) || defined (PERL_EXT)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE STRLEN S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp);
#define PERL_ARGS_ASSERT_SV_OR_PV_POS_U2B \
assert(sv); assert(pv)
#endif
+#endif
#if defined(PERL_CR_FILTER)
# if defined(PERL_IN_TOKE_C)
STATIC I32 S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen);
@@ -4018,7 +4315,9 @@ PERL_CALLCONV OP * Perl_op_refcnt_inc(pTHX_ OP *o);
/* PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd); */
#endif
#if defined(PERL_DONT_CREATE_GVSV)
-/* PERL_CALLCONV GV* Perl_gv_SVadd(pTHX_ GV *gv); */
+#ifndef NO_MATHOMS
+PERL_CALLCONV GV* Perl_gv_SVadd(pTHX_ GV *gv);
+#endif
#endif
#if defined(PERL_GLOBAL_STRUCT)
PERL_CALLCONV struct perl_vars * Perl_GetVars(pTHX);
@@ -4195,32 +4494,38 @@ PERL_CALLCONV void Perl_hv_kill_backrefs(pTHX_ HV *hv);
STATIC bool S_find_default_stash(pTHX_ HV **stash, const char *name, STRLEN len, const U32 is_utf8, const I32 add, const svtype sv_type);
#define PERL_ARGS_ASSERT_FIND_DEFAULT_STASH \
assert(stash); assert(name)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE GV* S_gv_fetchmeth_internal(pTHX_ HV* stash, SV* meth, const char* name, STRLEN len, I32 level, U32 flags);
+#endif
STATIC void S_gv_init_svtype(pTHX_ GV *gv, const svtype sv_type);
#define PERL_ARGS_ASSERT_GV_INIT_SVTYPE \
assert(gv)
STATIC bool S_gv_is_in_main(pTHX_ const char *name, STRLEN len, const U32 is_utf8);
#define PERL_ARGS_ASSERT_GV_IS_IN_MAIN \
assert(name)
-STATIC bool S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, bool addmg, const svtype sv_type);
+STATIC bool S_gv_magicalize(pTHX_ GV *gv, HV *stash, const char *name, STRLEN len, const svtype sv_type);
#define PERL_ARGS_ASSERT_GV_MAGICALIZE \
assert(gv); assert(stash); assert(name)
STATIC void S_gv_magicalize_isa(pTHX_ GV *gv);
#define PERL_ARGS_ASSERT_GV_MAGICALIZE_ISA \
assert(gv)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE HV* S_gv_stashpvn_internal(pTHX_ const char* name, U32 namelen, I32 flags);
#define PERL_ARGS_ASSERT_GV_STASHPVN_INTERNAL \
assert(name)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE HV* S_gv_stashsvpvn_cached(pTHX_ SV *namesv, const char* name, U32 namelen, I32 flags);
+#endif
STATIC void S_maybe_multimagic_gv(pTHX_ GV *gv, const char *name, const svtype sv_type);
#define PERL_ARGS_ASSERT_MAYBE_MULTIMAGIC_GV \
assert(gv); assert(name)
STATIC bool S_parse_gv_stash_name(pTHX_ HV **stash, GV **gv, const char **name, STRLEN *len, const char *nambeg, STRLEN full_len, const U32 is_utf8, const I32 add);
#define PERL_ARGS_ASSERT_PARSE_GV_STASH_NAME \
assert(stash); assert(gv); assert(name); assert(len); assert(nambeg)
-STATIC HV* S_require_tie_mod(pTHX_ GV *gv, const char *varpv, SV* namesv, const char *methpv, const U32 flags);
+STATIC void S_require_tie_mod(pTHX_ GV *gv, const char varname, const char * name, STRLEN len, const U32 flags);
#define PERL_ARGS_ASSERT_REQUIRE_TIE_MOD \
- assert(gv); assert(varpv); assert(namesv); assert(methpv)
+ assert(gv); assert(varname); assert(name)
#endif
#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
PERL_CALLCONV void Perl_sv_add_backref(pTHX_ SV *const tsv, SV *const sv);
@@ -4256,10 +4561,11 @@ PERL_STATIC_NO_RET void S_hv_notallowed(pTHX_ int flags, const char *key, I32 kl
assert(key); assert(msg)
STATIC HE* S_new_he(pTHX)
- __attribute__malloc__
__attribute__warn_unused_result__;
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE U32 S_ptr_hash(PTRV u);
+#endif
STATIC SV * S_refcounted_he_value(pTHX_ const struct refcounted_he *he);
#define PERL_ARGS_ASSERT_REFCOUNTED_HE_VALUE \
assert(he)
@@ -4286,6 +4592,13 @@ PERL_CALLCONV SV* Perl_hfree_next_entry(pTHX_ HV *hv, STRLEN *indexp);
#define PERL_ARGS_ASSERT_HFREE_NEXT_ENTRY \
assert(hv); assert(indexp)
#endif
+#if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C)
+# if defined(USE_LOCALE_COLLATE)
+PERL_CALLCONV char* Perl__mem_collxfrm(pTHX_ const char* input_string, STRLEN len, STRLEN* xlen, bool utf8);
+#define PERL_ARGS_ASSERT__MEM_COLLXFRM \
+ assert(input_string); assert(xlen)
+# endif
+#endif
#if defined(PERL_IN_MALLOC_C)
STATIC int S_adjust_size_and_find_bucket(size_t *nbytes_p);
#define PERL_ARGS_ASSERT_ADJUST_SIZE_AND_FIND_BUCKET \
@@ -4354,7 +4667,7 @@ STATIC void S_finalize_op(pTHX_ OP* o);
STATIC void S_find_and_forget_pmops(pTHX_ OP *o);
#define PERL_ARGS_ASSERT_FIND_AND_FORGET_PMOPS \
assert(o)
-STATIC OP* S_fold_constants(pTHX_ OP *o);
+STATIC OP* S_fold_constants(pTHX_ OP * const o);
#define PERL_ARGS_ASSERT_FOLD_CONSTANTS \
assert(o)
STATIC OP* S_force_list(pTHX_ OP* arg, bool nullit);
@@ -4384,7 +4697,9 @@ STATIC OP * S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp);
STATIC OP* S_newGIVWHENOP(pTHX_ OP* cond, OP *block, I32 enter_opcode, I32 leave_opcode, PADOFFSET entertarg);
#define PERL_ARGS_ASSERT_NEWGIVWHENOP \
assert(block)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE OP* S_newMETHOP_internal(pTHX_ I32 type, I32 flags, OP* dynamic_meth, SV* const_meth);
+#endif
STATIC OP* S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEW_LOGOP \
@@ -4398,12 +4713,16 @@ STATIC OP* S_no_fh_allowed(pTHX_ OP *o)
#define PERL_ARGS_ASSERT_NO_FH_ALLOWED \
assert(o)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE OP* S_op_integerize(pTHX_ OP *o);
#define PERL_ARGS_ASSERT_OP_INTEGERIZE \
assert(o)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE OP* S_op_std_init(pTHX_ OP *o);
#define PERL_ARGS_ASSERT_OP_STD_INIT \
assert(o)
+#endif
STATIC OP* S_pmtrans(pTHX_ OP* o, OP* expr, OP* repl);
#define PERL_ARGS_ASSERT_PMTRANS \
assert(o); assert(expr); assert(repl)
@@ -4437,9 +4756,11 @@ STATIC OP* S_too_many_arguments_pv(pTHX_ OP *o, const char* name, U32 flags);
#define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_PV \
assert(o); assert(name)
# if defined(USE_ITHREADS)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_op_relocate_sv(pTHX_ SV** svp, PADOFFSET* targp);
#define PERL_ARGS_ASSERT_OP_RELOCATE_SV \
assert(svp); assert(targp)
+#endif
# endif
#endif
#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
@@ -4527,7 +4848,7 @@ STATIC void S_destroy_matcher(pTHX_ PMOP* matcher);
#define PERL_ARGS_ASSERT_DESTROY_MATCHER \
assert(matcher)
STATIC OP* S_do_smartmatch(pTHX_ HV* seen_this, HV* seen_other, const bool copied);
-STATIC OP* S_docatch(pTHX_ OP *o)
+STATIC OP* S_docatch(pTHX_ Perl_ppaddr_t firstpp)
__attribute__warn_unused_result__;
STATIC bool S_doeval_compile(pTHX_ U8 gimme, CV* outside, U32 seq, HV* hh);
@@ -4574,10 +4895,12 @@ STATIC bool S_matcher_matches_sv(pTHX_ PMOP* matcher, SV* sv)
STATIC bool S_num_overflow(NV value, I32 fldsize, I32 frcsize)
__attribute__warn_unused_result__;
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE bool S_path_is_searchable(const char *name)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_PATH_IS_SEARCHABLE \
assert(name)
+#endif
STATIC I32 S_run_user_filter(pTHX_ int idx, SV *buf_sv, int maxlen)
__attribute__warn_unused_result__;
@@ -4598,10 +4921,12 @@ STATIC void S_save_lines(pTHX_ AV *array, SV *sv);
STATIC void S_do_oddball(pTHX_ SV **oddkey, SV **firstkey);
#define PERL_ARGS_ASSERT_DO_ODDBALL \
assert(oddkey); assert(firstkey)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE HV* S_opmethod_stash(pTHX_ SV* meth);
#define PERL_ARGS_ASSERT_OPMETHOD_STASH \
assert(meth)
#endif
+#endif
#if defined(PERL_IN_PP_PACK_C)
STATIC int S_div128(pTHX_ SV *pnum, bool *done);
#define PERL_ARGS_ASSERT_DIV128 \
@@ -4690,18 +5015,8 @@ STATIC OP* S_doform(pTHX_ CV *cv, GV *gv, OP *retop);
#define PERL_ARGS_ASSERT_DOFORM \
assert(cv); assert(gv)
STATIC SV * S_space_join_names_mortal(pTHX_ char *const *array);
-#define PERL_ARGS_ASSERT_SPACE_JOIN_NAMES_MORTAL \
- assert(array)
#endif
#if defined(PERL_IN_REGCOMP_C)
-STATIC void S__append_range_to_invlist(pTHX_ SV* const invlist, const UV start, const UV end);
-#define PERL_ARGS_ASSERT__APPEND_RANGE_TO_INVLIST \
- assert(invlist)
-PERL_STATIC_INLINE UV* S__invlist_array_init(SV* const invlist, const bool will_have_0)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT__INVLIST_ARRAY_INIT \
- assert(invlist)
-
STATIC SV* S__make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT__MAKE_EXACTF_INVLIST \
@@ -4710,8 +5025,10 @@ STATIC SV* S__make_exactf_invlist(pTHX_ RExC_state_t *pRExC_state, regnode *node
STATIC void S_add_above_Latin1_folds(pTHX_ RExC_state_t *pRExC_state, const U8 cp, SV** invlist);
#define PERL_ARGS_ASSERT_ADD_ABOVE_LATIN1_FOLDS \
assert(pRExC_state); assert(invlist)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE SV* S_add_cp_to_invlist(pTHX_ SV* invlist, const UV cp)
__attribute__warn_unused_result__;
+#endif
STATIC U32 S_add_data(RExC_state_t* const pRExC_state, const char* const s, const U32 n)
__attribute__warn_unused_result__;
@@ -4721,85 +5038,97 @@ STATIC U32 S_add_data(RExC_state_t* const pRExC_state, const char* const s, cons
STATIC AV* S_add_multi_match(pTHX_ AV* multi_char_matches, SV* multi_string, const STRLEN cp_count);
#define PERL_ARGS_ASSERT_ADD_MULTI_MATCH \
assert(multi_string)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_alloc_maybe_populate_EXACT(pTHX_ RExC_state_t *pRExC_state, regnode *node, I32 *flagp, STRLEN len, UV code_point, bool downgradable);
#define PERL_ARGS_ASSERT_ALLOC_MAYBE_POPULATE_EXACT \
assert(pRExC_state); assert(node); assert(flagp)
+#endif
STATIC const char * S_cntrl_to_mnemonic(const U8 c)
- __attribute__pure__;
+ __attribute__warn_unused_result__;
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE U8 S_compute_EXACTish(RExC_state_t *pRExC_state);
#define PERL_ARGS_ASSERT_COMPUTE_EXACTISH \
assert(pRExC_state)
+#endif
STATIC regnode * S_construct_ahocorasick_from_trie(pTHX_ RExC_state_t *pRExC_state, regnode *source, U32 depth);
#define PERL_ARGS_ASSERT_CONSTRUCT_AHOCORASICK_FROM_TRIE \
assert(pRExC_state); assert(source)
STATIC int S_edit_distance(const UV *src, const UV *tgt, const STRLEN x, const STRLEN y, const SSize_t maxDistance)
- __attribute__pure__;
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_EDIT_DISTANCE \
assert(src); assert(tgt)
STATIC SV* S_get_ANYOF_cp_list_for_ssc(pTHX_ const RExC_state_t *pRExC_state, const regnode_charclass* const node);
#define PERL_ARGS_ASSERT_GET_ANYOF_CP_LIST_FOR_SSC \
assert(pRExC_state); assert(node)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE STRLEN* S_get_invlist_iter_addr(SV* invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GET_INVLIST_ITER_ADDR \
assert(invlist)
+#endif
STATIC bool S_grok_bslash_N(pTHX_ RExC_state_t *pRExC_state, regnode** nodep, UV *code_point_p, int* cp_count, I32 *flagp, const bool strict, const U32 depth);
#define PERL_ARGS_ASSERT_GROK_BSLASH_N \
assert(pRExC_state); assert(flagp)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE regnode* S_handle_named_backref(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, char * parse_start, char ch);
#define PERL_ARGS_ASSERT_HANDLE_NAMED_BACKREF \
assert(pRExC_state); assert(flagp); assert(parse_start)
+#endif
STATIC int S_handle_possible_posix(pTHX_ RExC_state_t *pRExC_state, const char* const s, char ** updated_parse_ptr, AV** posix_warnings, const bool check_only);
#define PERL_ARGS_ASSERT_HANDLE_POSSIBLE_POSIX \
assert(pRExC_state); assert(s)
STATIC regnode* S_handle_regex_sets(pTHX_ RExC_state_t *pRExC_state, SV ** return_invlist, I32 *flagp, U32 depth, char * const oregcomp_parse);
#define PERL_ARGS_ASSERT_HANDLE_REGEX_SETS \
assert(pRExC_state); assert(flagp); assert(oregcomp_parse)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE SV* S_invlist_clone(pTHX_ SV* const invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_INVLIST_CLONE \
assert(invlist)
+#endif
STATIC SV* S_invlist_contents(pTHX_ SV* const invlist, const bool traditional_style)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_INVLIST_CONTENTS \
assert(invlist)
-STATIC void S_invlist_extend(pTHX_ SV* const invlist, const UV len);
-#define PERL_ARGS_ASSERT_INVLIST_EXTEND \
- assert(invlist)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE UV S_invlist_highest(SV* const invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_INVLIST_HIGHEST \
assert(invlist)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE bool S_invlist_is_iterating(SV* const invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_INVLIST_IS_ITERATING \
assert(invlist)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_invlist_iterfinish(SV* invlist);
#define PERL_ARGS_ASSERT_INVLIST_ITERFINISH \
assert(invlist)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_invlist_iterinit(SV* invlist);
#define PERL_ARGS_ASSERT_INVLIST_ITERINIT \
assert(invlist)
+#endif
STATIC bool S_invlist_iternext(SV* invlist, UV* start, UV* end)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_INVLIST_ITERNEXT \
assert(invlist); assert(start); assert(end)
-PERL_STATIC_INLINE UV S_invlist_max(SV* const invlist)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_INVLIST_MAX \
- assert(invlist)
-
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_invlist_set_len(pTHX_ SV* const invlist, const UV len, const bool offset);
#define PERL_ARGS_ASSERT_INVLIST_SET_LEN \
assert(invlist)
+#endif
STATIC bool S_is_ssc_worth_it(const RExC_state_t * pRExC_state, const regnode_ssc * ssc);
#define PERL_ARGS_ASSERT_IS_SSC_WORTH_IT \
assert(pRExC_state); assert(ssc)
@@ -4835,15 +5164,14 @@ STATIC regnode* S_reg2Lanode(pTHX_ RExC_state_t *pRExC_state, const U8 op, const
STATIC regnode* S_reg_node(pTHX_ RExC_state_t *pRExC_state, U8 op);
#define PERL_ARGS_ASSERT_REG_NODE \
assert(pRExC_state)
-STATIC UV S_reg_recode(pTHX_ const U8 value, SV **encp);
-#define PERL_ARGS_ASSERT_REG_RECODE \
- assert(encp)
STATIC SV * S_reg_scan_name(pTHX_ RExC_state_t *pRExC_state, U32 flags);
#define PERL_ARGS_ASSERT_REG_SCAN_NAME \
assert(pRExC_state)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE char * S_reg_skipcomment(RExC_state_t *pRExC_state, char * p);
#define PERL_ARGS_ASSERT_REG_SKIPCOMMENT \
assert(pRExC_state); assert(p)
+#endif
STATIC regnode* S_reganode(pTHX_ RExC_state_t *pRExC_state, U8 op, U32 arg);
#define PERL_ARGS_ASSERT_REGANODE \
assert(pRExC_state)
@@ -4857,11 +5185,11 @@ STATIC regnode* S_regclass(pTHX_ RExC_state_t *pRExC_state, I32 *flagp, U32 dept
#define PERL_ARGS_ASSERT_REGCLASS \
assert(pRExC_state); assert(flagp)
STATIC unsigned int S_regex_set_precedence(const U8 my_operator)
- __attribute__pure__;
+ __attribute__warn_unused_result__;
-STATIC void S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *opnd, U32 depth);
+STATIC void S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *operand, U32 depth);
#define PERL_ARGS_ASSERT_REGINSERT \
- assert(pRExC_state); assert(opnd)
+ assert(pRExC_state); assert(operand)
STATIC regnode* S_regnode_guts(pTHX_ RExC_state_t *pRExC_state, const U8 op, const STRLEN extra_len, const char* const name);
#define PERL_ARGS_ASSERT_REGNODE_GUTS \
assert(pRExC_state); assert(name)
@@ -4880,30 +5208,38 @@ STATIC void S_set_ANYOF_arg(pTHX_ RExC_state_t* const pRExC_state, regnode* cons
STATIC void S_skip_to_be_ignored_text(pTHX_ RExC_state_t *pRExC_state, char ** p, const bool force_to_xmod);
#define PERL_ARGS_ASSERT_SKIP_TO_BE_IGNORED_TEXT \
assert(pRExC_state); assert(p)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_ssc_add_range(pTHX_ regnode_ssc *ssc, UV const start, UV const end);
#define PERL_ARGS_ASSERT_SSC_ADD_RANGE \
assert(ssc)
+#endif
STATIC void S_ssc_and(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *and_with);
#define PERL_ARGS_ASSERT_SSC_AND \
assert(pRExC_state); assert(ssc); assert(and_with)
STATIC void S_ssc_anything(pTHX_ regnode_ssc *ssc);
#define PERL_ARGS_ASSERT_SSC_ANYTHING \
assert(ssc)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_ssc_clear_locale(regnode_ssc *ssc);
#define PERL_ARGS_ASSERT_SSC_CLEAR_LOCALE \
assert(ssc)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_ssc_cp_and(pTHX_ regnode_ssc *ssc, UV const cp);
#define PERL_ARGS_ASSERT_SSC_CP_AND \
assert(ssc)
+#endif
STATIC void S_ssc_finalize(pTHX_ RExC_state_t *pRExC_state, regnode_ssc *ssc);
#define PERL_ARGS_ASSERT_SSC_FINALIZE \
assert(pRExC_state); assert(ssc)
STATIC void S_ssc_init(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc);
#define PERL_ARGS_ASSERT_SSC_INIT \
assert(pRExC_state); assert(ssc)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_ssc_intersection(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert_2nd);
#define PERL_ARGS_ASSERT_SSC_INTERSECTION \
assert(ssc); assert(invlist)
+#endif
STATIC int S_ssc_is_anything(const regnode_ssc *ssc)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SSC_IS_ANYTHING \
@@ -4917,9 +5253,11 @@ STATIC int S_ssc_is_cp_posixl_init(const RExC_state_t *pRExC_state, const regnod
STATIC void S_ssc_or(pTHX_ const RExC_state_t *pRExC_state, regnode_ssc *ssc, const regnode_charclass *or_with);
#define PERL_ARGS_ASSERT_SSC_OR \
assert(pRExC_state); assert(ssc); assert(or_with)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_ssc_union(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert_2nd);
#define PERL_ARGS_ASSERT_SSC_UNION \
assert(ssc); assert(invlist)
+#endif
STATIC SSize_t S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth);
#define PERL_ARGS_ASSERT_STUDY_CHUNK \
assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last)
@@ -4957,17 +5295,21 @@ PERL_CALLCONV SV* Perl__get_swash_invlist(pTHX_ SV* const swash)
#define PERL_ARGS_ASSERT__GET_SWASH_INVLIST \
assert(swash)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE bool S__invlist_contains_cp(SV* const invlist, const UV cp)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP \
assert(invlist)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE UV S__invlist_len(SV* const invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT__INVLIST_LEN \
assert(invlist)
+#endif
-PERL_CALLCONV IV Perl__invlist_search(SV* const invlist, const UV cp)
+PERL_CALLCONV SSize_t Perl__invlist_search(SV* const invlist, const UV cp)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT__INVLIST_SEARCH \
assert(invlist)
@@ -4977,15 +5319,19 @@ PERL_CALLCONV HV* Perl__swash_inversion_hash(pTHX_ SV* const swash)
#define PERL_ARGS_ASSERT__SWASH_INVERSION_HASH \
assert(swash)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE bool* S_get_invlist_offset_addr(SV* invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR \
assert(invlist)
+#endif
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE UV* S_invlist_array(SV* const invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_INVLIST_ARRAY \
assert(invlist)
+#endif
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
@@ -4994,10 +5340,12 @@ PERL_CALLCONV SV* Perl__core_swash_init(pTHX_ const char* pkg, const char* name,
assert(pkg); assert(name); assert(listsv)
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_DQUOTE_C)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE char* S_form_short_octal_warning(pTHX_ const char * const s, const STRLEN len)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_FORM_SHORT_OCTAL_WARNING \
assert(s)
+#endif
PERL_CALLCONV char Perl_grok_bslash_c(pTHX_ const char source, const bool output_warning)
__attribute__warn_unused_result__;
@@ -5012,15 +5360,16 @@ PERL_CALLCONV bool Perl_grok_bslash_x(pTHX_ char** s, UV* uv, const char** error
#define PERL_ARGS_ASSERT_GROK_BSLASH_X \
assert(s); assert(uv); assert(error_msg)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE I32 S_regcurly(const char *s)
- __attribute__warn_unused_result__
- __attribute__pure__;
+ __attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_REGCURLY \
assert(s)
+#endif
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
-PERL_CALLCONV SV* Perl__add_range_to_invlist(pTHX_ SV* invlist, const UV start, const UV end)
+PERL_CALLCONV SV* Perl__add_range_to_invlist(pTHX_ SV* invlist, UV start, UV end)
__attribute__warn_unused_result__;
/* PERL_CALLCONV void _invlist_intersection(pTHX_ SV* const a, SV* const b, SV** i); */
@@ -5068,6 +5417,11 @@ STATIC WB_enum S_advance_one_WB(pTHX_ U8 ** curpos, const U8 * const strend, con
#define PERL_ARGS_ASSERT_ADVANCE_ONE_WB \
assert(curpos); assert(strend)
+STATIC GCB_enum S_backup_one_GCB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_BACKUP_ONE_GCB \
+ assert(strbeg); assert(curpos)
+
STATIC LB_enum S_backup_one_LB(pTHX_ const U8 * const strbeg, U8 ** curpos, const bool utf8_target)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_BACKUP_ONE_LB \
@@ -5088,16 +5442,15 @@ STATIC char* S_find_byclass(pTHX_ regexp * prog, const regnode *c, char *s, cons
#define PERL_ARGS_ASSERT_FIND_BYCLASS \
assert(prog); assert(c); assert(s); assert(strend)
-STATIC bool S_isFOO_lc(pTHX_ const U8 classnum, const U8 character)
- __attribute__warn_unused_result__;
-
STATIC bool S_isFOO_utf8_lc(pTHX_ const U8 classnum, const U8* character)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_ISFOO_UTF8_LC \
assert(character)
-PERL_STATIC_INLINE bool S_isGCB(const GCB_enum before, const GCB_enum after)
+STATIC bool S_isGCB(pTHX_ const GCB_enum before, const GCB_enum after, const U8 * const strbeg, const U8 * const curpos, const bool utf8_target)
__attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_ISGCB \
+ assert(strbeg); assert(curpos)
STATIC bool S_isLB(pTHX_ LB_enum before, LB_enum after, const U8 * const strbeg, const U8 * const curpos, const U8 * const strend, const bool utf8_target)
__attribute__warn_unused_result__;
@@ -5119,10 +5472,13 @@ STATIC I32 S_reg_check_named_buff_matched(const regexp *rex, const regnode *scan
#define PERL_ARGS_ASSERT_REG_CHECK_NAMED_BUFF_MATCHED \
assert(rex); assert(scan)
-STATIC void S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p);
+STATIC void S_regcp_restore(pTHX_ regexp *rex, I32 ix, U32 *maxopenparen_p _pDEPTH);
+#define PERL_ARGS_ASSERT_REGCP_RESTORE \
+ assert(rex); assert(maxopenparen_p)
+STATIC void S_regcppop(pTHX_ regexp *rex, U32 *maxopenparen_p _pDEPTH);
#define PERL_ARGS_ASSERT_REGCPPOP \
assert(rex); assert(maxopenparen_p)
-STATIC CHECKPOINT S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen);
+STATIC CHECKPOINT S_regcppush(pTHX_ const regexp *rex, I32 parenfloor, U32 maxopenparen _pDEPTH);
#define PERL_ARGS_ASSERT_REGCPPUSH \
assert(rex)
STATIC U8* S_reghop3(U8 *s, SSize_t off, const U8 *lim)
@@ -5135,7 +5491,7 @@ STATIC U8* S_reghop4(U8 *s, SSize_t off, const U8 *llim, const U8 *rlim)
#define PERL_ARGS_ASSERT_REGHOP4 \
assert(s); assert(llim); assert(rlim)
-STATIC U8* S_reghopmaybe3(U8 *s, SSize_t off, const U8 *lim)
+STATIC U8* S_reghopmaybe3(U8 *s, SSize_t off, const U8 * const lim)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_REGHOPMAYBE3 \
assert(s); assert(lim)
@@ -5150,7 +5506,7 @@ STATIC SSize_t S_regmatch(pTHX_ regmatch_info *reginfo, char *startpos, regnode
#define PERL_ARGS_ASSERT_REGMATCH \
assert(reginfo); assert(startpos); assert(prog)
-STATIC I32 S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, regmatch_info *const reginfo, I32 max, int depth)
+STATIC I32 S_regrepeat(pTHX_ regexp *prog, char **startposp, const regnode *p, regmatch_info *const reginfo, I32 max _pDEPTH)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_REGREPEAT \
assert(prog); assert(startposp); assert(p); assert(reginfo)
@@ -5167,6 +5523,18 @@ STATIC void S_to_utf8_substr(pTHX_ regexp * prog);
#define PERL_ARGS_ASSERT_TO_UTF8_SUBSTR \
assert(prog)
#endif
+#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
+PERL_CALLCONV bool Perl__is_grapheme(pTHX_ const U8 * strbeg, const U8 * s, const U8 *strend, const UV cp)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT__IS_GRAPHEME \
+ assert(strbeg); assert(s); assert(strend)
+
+#endif
+#if defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+PERL_CALLCONV bool Perl_isFOO_lc(pTHX_ const U8 classnum, const U8 character)
+ __attribute__warn_unused_result__;
+
+#endif
#if defined(PERL_IN_SCOPE_C)
STATIC void S_save_pushptri32ptr(pTHX_ void *const ptr1, const I32 i, void *const ptr2, const int type);
STATIC SV* S_save_scalar_at(pTHX_ SV **sptr, const U32 flags);
@@ -5191,7 +5559,7 @@ STATIC I32 S_expect_number(pTHX_ char **const pattern)
#define PERL_ARGS_ASSERT_EXPECT_NUMBER \
assert(pattern)
-STATIC I32 S_find_array_subscript(pTHX_ const AV *const av, const SV *const val);
+STATIC SSize_t S_find_array_subscript(pTHX_ const AV *const av, const SV *const val);
#define PERL_ARGS_ASSERT_FIND_ARRAY_SUBSCRIPT \
assert(val)
STATIC SV * S_find_hash_subscript(pTHX_ const HV *const hv, const SV *const val);
@@ -5239,9 +5607,11 @@ STATIC STRLEN S_sv_pos_u2b_forwards(const U8 *const start, const U8 *const send,
STATIC STRLEN S_sv_pos_u2b_midway(const U8 *const start, const U8 *send, STRLEN uoffset, const STRLEN uend);
#define PERL_ARGS_ASSERT_SV_POS_U2B_MIDWAY \
assert(start); assert(send)
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE void S_sv_unglob(pTHX_ SV *const sv, U32 flags);
#define PERL_ARGS_ASSERT_SV_UNGLOB \
assert(sv)
+#endif
STATIC char * S_uiv_2buf(char *const buf, const IV iv, UV uv, const int is_uv, char **const peob)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_UIV_2BUF \
@@ -5271,7 +5641,7 @@ STATIC void S_unreferenced_to_tmp_stack(pTHX_ AV *const unreferenced);
# endif
#endif
#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
-PERL_CALLCONV SV * Perl_varname(pTHX_ const GV *const gv, const char gvtype, PADOFFSET targ, const SV *const keyname, I32 aindex, int subscript_type)
+PERL_CALLCONV SV * Perl_varname(pTHX_ const GV *const gv, const char gvtype, PADOFFSET targ, const SV *const keyname, SSize_t aindex, int subscript_type)
__attribute__warn_unused_result__;
#endif
@@ -5306,7 +5676,7 @@ STATIC char* S_force_version(pTHX_ char *s, int guessing);
STATIC char* S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack);
#define PERL_ARGS_ASSERT_FORCE_WORD \
assert(start)
-PERL_STATIC_INLINE SV* S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
+STATIC SV* S_get_and_check_backslash_N_name(pTHX_ const char* s, const char* const e)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_GET_AND_CHECK_BACKSLASH_N_NAME \
assert(s); assert(e)
@@ -5320,7 +5690,7 @@ STATIC int S_intuit_method(pTHX_ char *s, SV *ioname, CV *cv);
STATIC int S_intuit_more(pTHX_ char *s);
#define PERL_ARGS_ASSERT_INTUIT_MORE \
assert(s)
-STATIC I32 S_lop(pTHX_ I32 f, int x, char *s);
+STATIC I32 S_lop(pTHX_ I32 f, U8 x, char *s);
#define PERL_ARGS_ASSERT_LOP \
assert(s)
PERL_STATIC_NO_RET void S_missingterm(pTHX_ char *s)
@@ -5332,7 +5702,7 @@ STATIC SV* S_new_constant(pTHX_ const char *s, STRLEN len, const char *key, STRL
STATIC void S_no_op(pTHX_ const char *const what, char *s);
#define PERL_ARGS_ASSERT_NO_OP \
assert(what)
-STATIC void S_parse_ident(pTHX_ char **s, char **d, char * const e, int allow_package, bool is_utf8);
+STATIC void S_parse_ident(pTHX_ char **s, char **d, char * const e, int allow_package, bool is_utf8, bool check_dollar);
#define PERL_ARGS_ASSERT_PARSE_IDENT \
assert(s); assert(d); assert(e)
STATIC int S_pending_ident(pTHX);
@@ -5423,15 +5793,55 @@ STATIC bool S_isa_lookup(pTHX_ HV *stash, const char * const name, STRLEN len, U
STATIC UV S__to_utf8_case(pTHX_ const UV uv1, const U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, const char *normal, const char *special);
#define PERL_ARGS_ASSERT__TO_UTF8_CASE \
assert(p); assert(ustrp); assert(swashp); assert(normal)
+STATIC U32 S_check_and_deprecate(pTHX_ const U8 * p, const U8 ** e, const unsigned type, const bool use_locale, const char * const file, const unsigned line);
+#define PERL_ARGS_ASSERT_CHECK_AND_DEPRECATE \
+ assert(p); assert(e); assert(file)
STATIC UV S_check_locale_boundary_crossing(pTHX_ const U8* const p, const UV result, U8* const ustrp, STRLEN *lenp)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING \
assert(p); assert(ustrp); assert(lenp)
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_does_utf8_overflow(const U8 * const s, const U8 * e)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_DOES_UTF8_OVERFLOW \
+ assert(s); assert(e)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_isFF_OVERLONG(const U8 * const s, const STRLEN len)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_ISFF_OVERLONG \
+ assert(s)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, SV **swash, const char * const swashname, SV* const invlist)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_IS_UTF8_COMMON \
assert(p); assert(swash); assert(swashname)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_utf8_common_with_len(pTHX_ const U8 *const p, const U8 *const e, SV **swash, const char * const swashname, SV* const invlist)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_IS_UTF8_COMMON_WITH_LEN \
+ assert(p); assert(e); assert(swash); assert(swashname)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_utf8_cp_above_31_bits(const U8 * const s, const U8 * const e)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_IS_UTF8_CP_ABOVE_31_BITS \
+ assert(s); assert(e)
+#endif
+
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE bool S_is_utf8_overlong_given_start_byte_ok(const U8 * const s, const STRLEN len)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_IS_UTF8_OVERLONG_GIVEN_START_BYTE_OK \
+ assert(s)
+#endif
STATIC U8* S_swash_scan_list_line(pTHX_ U8* l, U8* const lend, UV* min, UV* max, UV* val, const bool wants_value, const U8* const typestr)
__attribute__warn_unused_result__;
@@ -5443,9 +5853,17 @@ STATIC SV* S_swatch_get(pTHX_ SV* swash, UV start, UV span)
#define PERL_ARGS_ASSERT_SWATCH_GET \
assert(swash)
-STATIC U8 S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp)
+STATIC U8 S_to_lower_latin1(const U8 c, U8 *p, STRLEN *lenp, const char dummy)
__attribute__warn_unused_result__;
+STATIC char * S_unexpected_non_continuation_text(pTHX_ const U8 * const s, STRLEN print_len, const STRLEN non_cont_byte_pos, const STRLEN expect_len)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_UNEXPECTED_NON_CONTINUATION_TEXT \
+ assert(s)
+
+STATIC void S_warn_on_first_deprecated_use(pTHX_ const char * const name, const char * const alternative, const bool use_locale, const char * const file, const unsigned line);
+#define PERL_ARGS_ASSERT_WARN_ON_FIRST_DEPRECATED_USE \
+ assert(name); assert(alternative); assert(file)
#endif
#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
PERL_CALLCONV UV Perl__to_upper_title_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp, const char S_or_s);
@@ -5530,7 +5948,6 @@ PERL_CALLCONV void Perl_clone_params_del(CLONE_PARAMS *param);
#define PERL_ARGS_ASSERT_CLONE_PARAMS_DEL \
assert(param)
PERL_CALLCONV CLONE_PARAMS * Perl_clone_params_new(PerlInterpreter *const from, PerlInterpreter *const to)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_CLONE_PARAMS_NEW \
assert(from); assert(to)
@@ -5572,7 +5989,6 @@ PERL_CALLCONV struct mro_meta* Perl_mro_meta_dup(pTHX_ struct mro_meta* smeta, C
#define PERL_ARGS_ASSERT_MRO_META_DUP \
assert(smeta); assert(param)
PERL_CALLCONV OP* Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_NEWPADOP \
assert(sv)
@@ -5613,7 +6029,6 @@ PERL_CALLCONV PERL_SI* Perl_si_dup(pTHX_ PERL_SI* si, CLONE_PARAMS* param)
assert(param)
PERL_CALLCONV ANY* Perl_ss_dup(pTHX_ PerlInterpreter* proto_perl, CLONE_PARAMS* param)
- __attribute__malloc__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SS_DUP \
assert(proto_perl); assert(param)
@@ -5641,9 +6056,11 @@ STATIC char* S_stdize_locale(pTHX_ char* locs);
PERL_CALLCONV int Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg);
#define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM \
assert(sv); assert(mg)
-PERL_CALLCONV char* Perl_mem_collxfrm(pTHX_ const char* s, STRLEN len, STRLEN* xlen);
+#ifndef NO_MATHOMS
+PERL_CALLCONV char* Perl_mem_collxfrm(pTHX_ const char* input_string, STRLEN len, STRLEN* xlen);
#define PERL_ARGS_ASSERT_MEM_COLLXFRM \
- assert(s); assert(xlen)
+ assert(input_string); assert(xlen)
+#endif
/* PERL_CALLCONV char* sv_collxfrm(pTHX_ SV *const sv, STRLEN *const nxp); */
PERL_CALLCONV char* Perl_sv_collxfrm_flags(pTHX_ SV *const sv, STRLEN *const nxp, I32 const flags);
#define PERL_ARGS_ASSERT_SV_COLLXFRM_FLAGS \
@@ -5700,9 +6117,7 @@ PERL_CALLCONV const char* Perl_quadmath_format_single(const char* format);
assert(format)
#endif
#if defined(WIN32)
-PERL_CALLCONV char* Perl_my_setlocale(pTHX_ int category, const char* locale)
- __attribute__pure__;
-
+PERL_CALLCONV char* Perl_my_setlocale(pTHX_ int category, const char* locale);
PERL_CALLCONV_NO_RET void win32_croak_not_implemented(const char * fname)
__attribute__noreturn__;
#define PERL_ARGS_ASSERT_WIN32_CROAK_NOT_IMPLEMENTED \
diff --git a/Master/tlpkg/tlperl/lib/CORE/regcharclass.h b/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
index 36fa1fd086a..273176af226 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regcharclass.h
@@ -28,55 +28,55 @@
/*** GENERATED CODE ***/
#define is_LNBREAK_safe(s,e,is_utf8) \
( ((e)-(s) > 2) ? \
- ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1 \
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
: ( is_utf8 ) ? \
- ( ( 0xC2 == ((U8*)s)[0] ) ? \
- ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
- : ( 0x85 == ((U8*)s)[0] ) ) \
+ ( ( 0xC2 == ((const U8*)s)[0] ) ? \
+ ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+ : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+ : ( 0x85 == ((const U8*)s)[0] ) ) \
: ((e)-(s) > 1) ? \
- ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1 \
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
: ( is_utf8 ) ? \
- ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 ) \
- : ( 0x85 == ((U8*)s)[0] ) ) \
+ ( ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
+ : ( 0x85 == ((const U8*)s)[0] ) ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1 \
+ ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) ? 1 \
: ( !( is_utf8 ) ) ? \
- ( 0x85 == ((U8*)s)[0] ) \
+ ( 0x85 == ((const U8*)s)[0] ) \
: 0 ) \
: 0 )
/*** GENERATED CODE ***/
#define is_LNBREAK_utf8_safe(s,e) \
( ((e)-(s) > 2) ? \
- ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
- : ( 0xC2 == ((U8*)s)[0] ) ? \
- ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+ ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1 \
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ : ( 0xC2 == ((const U8*)s)[0] ) ? \
+ ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+ : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1 \
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
- : ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 ) \
+ ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1 \
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
: ((e)-(s) > 0) ? \
- ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) \
+ ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) \
: 0 )
/*** GENERATED CODE ***/
#define is_LNBREAK_latin1_safe(s,e) \
( ((e)-(s) > 1) ? \
- ( ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) || 0x85 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) || 0x85 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
+ ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x85 == ((const U8*)s)[0] )\
: 0 )
/*
@@ -86,13 +86,13 @@
*/
/*** GENERATED CODE ***/
#define is_HORIZWS_high(s) \
-( ( 0xE1 == ((U8*)s)[0] ) ? \
- ( ( ( 0x9A == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xE2 == ((U8*)s)[0] ) ? \
- ( ( 0x80 == ((U8*)s)[1] ) ? \
- ( ( ( ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xE2 == ((const U8*)s)[0] ) ? \
+ ( ( 0x80 == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] <= 0x8A ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_HORIZWS_cp_high(cp) \
@@ -108,7 +108,7 @@
*/
/*** GENERATED CODE ***/
#define is_VERTWS_high(s) \
-( ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
+( ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_VERTWS_cp_high(cp) \
@@ -121,10 +121,10 @@
*/
/*** GENERATED CODE ***/
#define is_XDIGIT_high(s) \
-( ( 0xEF == ((U8*)s)[0] ) ? \
- ( ( 0xBC == ((U8*)s)[1] ) ? \
- ( ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x99 ) || ( 0xA1 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA6 ) ) ? 3 : 0 )\
- : ( ( 0xBD == ((U8*)s)[1] ) && ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )\
+( ( 0xEF == ((const U8*)s)[0] ) ? \
+ ( ( 0xBC == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x99 ) || ( 0xA1 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xA6 ) ) ? 3 : 0 )\
+ : ( ( 0xBD == ((const U8*)s)[1] ) && ( 0x81 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )\
: 0 )
/*** GENERATED CODE ***/
@@ -139,13 +139,13 @@
*/
/*** GENERATED CODE ***/
#define is_XPERLSPACE_high(s) \
-( ( 0xE1 == ((U8*)s)[0] ) ? \
- ( ( ( 0x9A == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xE2 == ((U8*)s)[0] ) ? \
- ( ( 0x80 == ((U8*)s)[1] ) ? \
- ( ( ( ((U8*)s)[2] <= 0x8A ) || ( ((U8*)s)[2] & 0xFE ) == 0xA8 || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xE2 == ((const U8*)s)[0] ) ? \
+ ( ( 0x80 == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] <= 0x8A ) || ( ((const U8*)s)[2] & 0xFE ) == 0xA8 || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_XPERLSPACE_cp_high(cp) \
@@ -163,7 +163,7 @@
*/
/*** GENERATED CODE ***/
#define is_REPLACEMENT_utf8_safe(s,e) \
-( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == ((U8*)s)[0] ) ) && ( 0xBF == ((U8*)s)[1] ) ) && ( 0xBD == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == ((const U8*)s)[0] ) ) && ( 0xBF == ((const U8*)s)[1] ) ) && ( 0xBD == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*
NONCHAR: Non character code points
@@ -171,25 +171,25 @@
\p{_Perl_Nchar}
*/
/*** GENERATED CODE ***/
-#define is_NONCHAR_utf8(s) \
-( ( 0xEF == ((U8*)s)[0] ) ? \
- ( ( 0xB7 == ((U8*)s)[1] ) ? \
- ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ? 3 : 0 ) \
- : ( ( 0xBF == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0xBE ) ) ? 3 : 0 ) \
-: ( 0xF0 == ((U8*)s)[0] ) ? \
- ( ( ( ( ((U8*)s)[1] == 0x9F || ( ( ((U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
-: ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF3 ) ? \
- ( ( ( ( ( ((U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
-: ( ( ( ( 0xF4 == ((U8*)s)[0] ) && ( 0x8F == ((U8*)s)[1] ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )
+#define is_NONCHAR_utf8_safe(s,e) \
+( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
+ ( ( 0xB7 == ((const U8*)s)[1] ) ? \
+ ( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ? 3 : 0 )\
+ : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xBE ) ) ? 3 : 0 )\
+ : ( 0xF0 == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 )\
+ : ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF3 ) ? \
+ ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 )\
+ : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 ) : 0 )
/*
- SURROGATE: Surrogate characters
+ SURROGATE: Surrogate code points
\p{_Perl_Surrogate}
*/
/*** GENERATED CODE ***/
-#define is_SURROGATE_utf8(s) \
-( ( ( 0xED == ((U8*)s)[0] ) && ( ((U8*)s)[1] >= 0xA0 ) ) ? 3 : 0 )
+#define is_SURROGATE_utf8_safe(s,e) \
+( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )
/*
QUOTEMETA: Meta-characters that \Q should quote
@@ -198,53 +198,53 @@
*/
/*** GENERATED CODE ***/
#define is_QUOTEMETA_high(s) \
-( ( 0xCD == ((U8*)s)[0] ) ? \
- ( ( 0x8F == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xD8 == ((U8*)s)[0] ) ? \
- ( ( 0x9C == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xE1 == ((U8*)s)[0] ) ? \
- ( ( 0x85 == ((U8*)s)[1] ) ? \
- ( ( 0x9F == ((U8*)s)[2] || 0xA0 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( 0x9A == ((U8*)s)[1] ) ? \
- ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( 0x9E == ((U8*)s)[1] ) ? \
- ( ( ( ((U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 ) \
- : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
-: ( 0xE2 == ((U8*)s)[0] ) ? \
- ( ( 0x80 == ((U8*)s)[1] ) ? \
- ( ( ((U8*)s)[2] <= 0xBE ) ? 3 : 0 ) \
- : ( 0x81 == ((U8*)s)[1] ) ? \
- ( ( ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
- : ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( ((U8*)s)[2] >= 0x90 ) ? 3 : 0 ) \
- : ( ( 0x87 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xAF ) || ( ((U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
+( ( 0xCD == ((const U8*)s)[0] ) ? \
+ ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xD8 == ((const U8*)s)[0] ) ? \
+ ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( 0x85 == ((const U8*)s)[1] ) ? \
+ ( ( 0x9F == ((const U8*)s)[2] || 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x9A == ((const U8*)s)[1] ) ? \
+ ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( 0x9E == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 ) \
+ : ( ( 0xA0 == ((const U8*)s)[1] ) && ( 0x8B <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
+: ( 0xE2 == ((const U8*)s)[0] ) ? \
+ ( ( 0x80 == ((const U8*)s)[1] ) ? \
+ ( ( ((const U8*)s)[2] <= 0xBE ) ? 3 : 0 ) \
+ : ( 0x81 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x81 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( ((const U8*)s)[2] >= 0x90 ) ? 3 : 0 ) \
+ : ( ( 0x87 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xAF ) || ( ((const U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
3 \
- : ( 0x91 == ((U8*)s)[1] ) ? \
- ( ( ((U8*)s)[2] <= 0x9F ) ? 3 : 0 ) \
- : ( 0x9D == ((U8*)s)[1] ) ? \
- ( ( ((U8*)s)[2] <= 0xB5 ) ? 3 : 0 ) \
- : ( ( 0x9E == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0x94 ) ) ? 3 : 0 ) \
-: ( 0xE3 == ((U8*)s)[0] ) ? \
- ( ( 0x80 == ((U8*)s)[1] ) ? \
- ( ( ( ((U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA0 ) || 0xB0 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( ( 0x85 == ((U8*)s)[1] ) && ( 0xA4 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xEF == ((U8*)s)[0] ) ? \
- ( ( 0xB4 == ((U8*)s)[1] ) ? \
- ( ( ((U8*)s)[2] >= 0xBE ) ? 3 : 0 ) \
- : ( 0xB8 == ((U8*)s)[1] ) ? \
- ( ( ((U8*)s)[2] <= 0x8F ) ? 3 : 0 ) \
- : ( 0xB9 == ((U8*)s)[1] ) ? \
- ( ( 0x85 == ((U8*)s)[2] || 0x86 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( 0xBB == ((U8*)s)[1] ) ? \
- ( ( 0xBF == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( 0xBE == ((U8*)s)[1] ) ? \
- ( ( 0xA0 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0xBF == ((U8*)s)[1] ) && ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
-: ( 0xF0 == ((U8*)s)[0] ) ? \
- ( ( 0x9B == ((U8*)s)[1] ) ? \
- ( ( ( 0xB2 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFC ) == 0xA0 ) ) ? 4 : 0 )\
- : ( ( ( 0x9D == ((U8*)s)[1] ) && ( 0x85 == ((U8*)s)[2] ) ) && ( 0xB3 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
-: ( ( 0xF3 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 4 : 0 )
+ : ( 0x91 == ((const U8*)s)[1] ) ? \
+ ( ( ((const U8*)s)[2] <= 0x9F ) ? 3 : 0 ) \
+ : ( 0x9D == ((const U8*)s)[1] ) ? \
+ ( ( ((const U8*)s)[2] <= 0xB5 ) ? 3 : 0 ) \
+ : ( ( 0x9E == ((const U8*)s)[1] ) && ( ((const U8*)s)[2] >= 0x94 ) ) ? 3 : 0 )\
+: ( 0xE3 == ((const U8*)s)[0] ) ? \
+ ( ( 0x80 == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xA0 ) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xEF == ((const U8*)s)[0] ) ? \
+ ( ( 0xB4 == ((const U8*)s)[1] ) ? \
+ ( ( ((const U8*)s)[2] >= 0xBE ) ? 3 : 0 ) \
+ : ( 0xB8 == ((const U8*)s)[1] ) ? \
+ ( ( ((const U8*)s)[2] <= 0x8F ) ? 3 : 0 ) \
+ : ( 0xB9 == ((const U8*)s)[1] ) ? \
+ ( ( 0x85 == ((const U8*)s)[2] || 0x86 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0xBB == ((const U8*)s)[1] ) ? \
+ ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( 0xBE == ((const U8*)s)[1] ) ? \
+ ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xB0 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((const U8*)s)[0] ) ? \
+ ( ( 0x9B == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFC ) == 0xA0 ) ) ? 4 : 0 )\
+ : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( 0xB3 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
+: ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
@@ -253,215 +253,215 @@
*/
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
-( ( 0x61 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x66 == ((U8*)s)[0] ) ? \
- ( ( 0x66 == ((U8*)s)[1] ) ? \
- ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x68 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x69 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x6A == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x73 == ((U8*)s)[0] ) ? \
- ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x74 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xC5 == ((U8*)s)[0] ) ? \
- ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xCE == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ? \
- ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ? \
- ( ( 0xCD == ((U8*)s)[2] ) ? \
- ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0xB9 == ((U8*)s)[1] ) && ( 0xCD == ((U8*)s)[2] ) ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xCF == ((U8*)s)[0] ) ? \
- ( ( 0x81 == ((U8*)s)[1] ) ? \
- ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x85 == ((U8*)s)[1] ) ? \
- ( ( 0xCC == ((U8*)s)[2] ) ? \
- ( ( 0x93 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x89 == ((U8*)s)[1] ) ? \
- ( ( 0xCD == ((U8*)s)[2] ) ? \
- ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xD5 == ((U8*)s)[0] ) ? \
- ( ( 0xA5 == ((U8*)s)[1] ) ? \
- ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB4 == ((U8*)s)[1] ) ? \
- ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
- : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xE1 == ((U8*)s)[0] ) ? \
- ( ( 0xBC == ((U8*)s)[1] ) ? \
- ( ( ( ( ( ((U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0xBD == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0xB0 ) || ((U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+( ( 0x61 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x66 == ((const U8*)s)[0] ) ? \
+ ( ( 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x68 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x69 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x6A == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x73 == ((const U8*)s)[0] ) ? \
+ ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x74 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCF == ((const U8*)s)[0] ) ? \
+ ( ( 0x81 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x85 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x89 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xD5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+ : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBC == ((const U8*)s)[1] ) ? \
+ ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
( ((e)-(s) > 3) ? \
- ( ( 0x61 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x66 == ((U8*)s)[0] ) ? \
- ( ( 0x66 == ((U8*)s)[1] ) ? \
- ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x68 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x69 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x6A == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x73 == ((U8*)s)[0] ) ? \
- ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x74 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xC5 == ((U8*)s)[0] ) ? \
- ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xCE == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ? \
- ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ? \
- ( ( 0xCD == ((U8*)s)[2] ) ? \
- ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0xB9 == ((U8*)s)[1] ) && ( 0xCD == ((U8*)s)[2] ) ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xCF == ((U8*)s)[0] ) ? \
- ( ( 0x81 == ((U8*)s)[1] ) ? \
- ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x85 == ((U8*)s)[1] ) ? \
- ( ( 0xCC == ((U8*)s)[2] ) ? \
- ( ( 0x93 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x89 == ((U8*)s)[1] ) ? \
- ( ( 0xCD == ((U8*)s)[2] ) ? \
- ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xD5 == ((U8*)s)[0] ) ? \
- ( ( 0xA5 == ((U8*)s)[1] ) ? \
- ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB4 == ((U8*)s)[1] ) ? \
- ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
- : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ ( ( 0x61 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x66 == ((const U8*)s)[0] ) ? \
+ ( ( 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x68 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x69 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x6A == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x73 == ((const U8*)s)[0] ) ? \
+ ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x74 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCF == ((const U8*)s)[0] ) ? \
+ ( ( 0x81 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x85 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x89 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xD5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+ : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
- ( ( 0x61 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x66 == ((U8*)s)[0] ) ? \
- ( ( 0x66 == ((U8*)s)[1] ) ? \
- ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x68 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x69 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x6A == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x73 == ((U8*)s)[0] ) ? \
- ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x74 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0xBC == ((U8*)s)[1] ) ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( 0x61 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x66 == ((const U8*)s)[0] ) ? \
+ ( ( 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x68 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x69 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x6A == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x73 == ((const U8*)s)[0] ) ? \
+ ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x74 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 0x66 == ((U8*)s)[0] ) ? \
- ( ( 0x66 == ((U8*)s)[1] || 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )\
- : ( ( 0x73 == ((U8*)s)[0] ) && ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ) ? 2 : 0 )\
+ ( ( 0x66 == ((const U8*)s)[0] ) ? \
+ ( ( 0x66 == ((const U8*)s)[1] || 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( ( 0x73 == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 0x61 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x66 == ((U8*)s)[0] ) ? \
- ( ( 0x66 == ((U8*)s)[1] ) ? \
- ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x68 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x69 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x6A == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x73 == ((U8*)s)[0] ) ? \
- ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x74 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ? \
- ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xC5 == ((U8*)s)[0] ) ? \
- ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xCE == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ? \
- ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ? \
- ( ( 0xCD == ((U8*)s)[2] ) ? \
- ( ( 0x82 == ((U8*)s)[3] ) ? \
- ( ( ( 0xCE == ((U8*)s)[4] ) && ( 0xB9 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ ( ( 0x61 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x66 == ((const U8*)s)[0] ) ? \
+ ( ( 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x68 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x69 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x6A == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x73 == ((const U8*)s)[0] ) ? \
+ ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x74 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
: 0 ) \
- : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB9 == ((U8*)s)[1] ) ? \
- ( ( 0xCC == ((U8*)s)[2] ) ? \
- ( ( 0x88 == ((U8*)s)[3] ) ? \
- ( ( 0xCC == ((U8*)s)[4] ) ? \
- ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 ) \
- : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB9 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x88 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )\
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
: 0 ) \
- : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: 0 ) \
- : ( 0xCF == ((U8*)s)[0] ) ? \
- ( ( 0x81 == ((U8*)s)[1] ) ? \
- ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x85 == ((U8*)s)[1] ) ? \
- ( ( 0xCC == ((U8*)s)[2] ) ? \
- ( ( 0x88 == ((U8*)s)[3] ) ? \
- ( ( 0xCC == ((U8*)s)[4] ) ? \
- ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 ) \
- : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : ( 0x93 == ((U8*)s)[3] ) ? \
- ( ( 0xCC == ((U8*)s)[4] ) ? \
- ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 4 ) \
- : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : ( 0xCF == ((const U8*)s)[0] ) ? \
+ ( ( 0x81 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x85 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCC == ((const U8*)s)[2] ) ? \
+ ( ( 0x88 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )\
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x93 == ((const U8*)s)[3] ) ? \
+ ( ( 0xCC == ((const U8*)s)[4] ) ? \
+ ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 4 )\
+ : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
: 0 ) \
- : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x89 == ((U8*)s)[1] ) ? \
- ( ( 0xCD == ((U8*)s)[2] ) ? \
- ( ( 0x82 == ((U8*)s)[3] ) ? \
- ( ( ( 0xCE == ((U8*)s)[4] ) && ( 0xB9 == ((U8*)s)[5] ) ) ? 6 : 4 )\
+ : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x89 == ((const U8*)s)[1] ) ? \
+ ( ( 0xCD == ((const U8*)s)[2] ) ? \
+ ( ( 0x82 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
: 0 ) \
- : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xD5 == ((U8*)s)[0] ) ? \
- ( ( 0xA5 == ((U8*)s)[1] ) ? \
- ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB4 == ((U8*)s)[1] ) ? \
- ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
- : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xE1 == ((U8*)s)[0] ) ? \
- ( ( 0xBC == ((U8*)s)[1] ) ? \
- ( ( ( ( ( ((U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0xBD == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0xB0 ) || ((U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xD5 == ((const U8*)s)[0] ) ? \
+ ( ( 0xA5 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
+ : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBC == ((const U8*)s)[1] ) ? \
+ ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
: 0 ) \
: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
@@ -473,15 +473,15 @@
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
( ((e)-(s) > 2) ? \
- ( ( ( ((U8*)s)[0] & 0xDF ) == 0x46 ) ? \
- ( ( ( ((U8*)s)[1] & 0xDF ) == 0x46 ) ? \
- ( ( ( ( ((U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
- : ( ( ( ((U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
- : ( ( ( ((U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( ( ((U8*)s)[0] & 0xDF ) == 0x46 ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
- : ( ( ( ((U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
: 0 )
/*
@@ -491,25 +491,25 @@
*/
/*** GENERATED CODE ***/
#define is_FOLDS_TO_MULTI_utf8(s) \
-( ( 0xC3 == ((U8*)s)[0] ) ? \
- ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ? \
- ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xC5 == ((U8*)s)[0] ) ? \
- ( ( 0x89 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xCE == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
-: ( 0xD6 == ((U8*)s)[0] ) ? \
- ( ( 0x87 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xE1 == ((U8*)s)[0] ) ? \
- ( ( 0xBA == ((U8*)s)[1] ) ? \
- ( ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0xBD == ((U8*)s)[1] ) ? \
- ( ( ( ((U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
- : ( 0xBE == ((U8*)s)[1] ) ? \
- ( ( ( ( ((U8*)s)[2] & 0xE0 ) == 0x80 ) || ( ( ((U8*)s)[2] & 0xF0 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0xB2 ) || ( ( ((U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
- : ( ( 0xBF == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((U8*)s)[2] & 0xF7 ) == 0x84 ) || ((U8*)s)[2] == 0xA4 || ( ( ((U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] <= 0x86 ) || ( 0x93 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x97 ) ) ) ? 3 : 0 )
+( ( 0xC3 == ((const U8*)s)[0] ) ? \
+ ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
+ ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
+: ( 0xD6 == ((const U8*)s)[0] ) ? \
+ ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( 0xBA == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0xBD == ((const U8*)s)[1] ) ? \
+ ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
+ : ( 0xBE == ((const U8*)s)[1] ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xE0 ) == 0x80 ) || ( ( ((const U8*)s)[2] & 0xF0 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFA ) == 0xB2 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
+ : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x84 ) || ((const U8*)s)[2] == 0xA4 || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] <= 0x86 ) || ( 0x93 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x97 ) ) ) ? 3 : 0 )
/*
PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
@@ -518,20 +518,20 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
-( ( ((U8*)s)[0] <= 0x7F ) ? 1 \
-: ( ( ((U8*)s)[0] & 0xFE ) == 0xC2 ) ? \
+( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
+: ( ( ((const U8*)s)[0] & 0xFE ) == 0xC2 ) ? \
2 \
-: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ? \
- ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xC5 == ((U8*)s)[0] ) ? \
- ( ( 0x89 == ((U8*)s)[1] || 0xB8 == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) ? 2 : 0 )\
-: ( 0xCE == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
-: ( 0xE1 == ((U8*)s)[0] ) ? \
- ( ( ( 0xBA == ((U8*)s)[1] ) && ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xE2 == ((U8*)s)[0] ) ? \
- ( ( ( 0x84 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
+: ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
+ ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
+: ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
+: ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xBA == ((const U8*)s)[1] ) && ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xE2 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x84 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
@@ -555,22 +555,22 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
-( ( ((U8*)s)[0] <= 0x7F ) ? 1 \
-: ( ( ((U8*)s)[0] & 0xFE ) == 0xC2 ) ? \
+( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
+: ( ( ((const U8*)s)[0] & 0xFE ) == 0xC2 ) ? \
2 \
-: ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ? \
- ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xC5 == ((U8*)s)[0] ) ? \
- ( ( 0x89 == ((U8*)s)[1] || 0xB8 == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) ? 2 : 0 )\
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( 0xBC == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xCE == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
-: ( 0xE1 == ((U8*)s)[0] ) ? \
- ( ( ( 0xBA == ((U8*)s)[1] ) && ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xE2 == ((U8*)s)[0] ) ? \
- ( ( ( 0x84 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
-: ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
+: ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
+ ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xC5 == ((const U8*)s)[0] ) ? \
+ ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
+: ( 0xE1 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xBA == ((const U8*)s)[1] ) && ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xE2 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x84 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
+: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
@@ -596,13 +596,13 @@
/*** GENERATED CODE ***/
#define is_PATWS_safe(s,e,is_utf8) \
( ( LIKELY((e) > (s)) ) ? \
- ( ( ( 0x09 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x20 == ((U8*)s)[0] ) ? 1\
+ ( ( ( 0x09 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x20 == ((const U8*)s)[0] ) ? 1\
: (! is_utf8 ) ? \
- ( 0x85 == ((U8*)s)[0] ) \
+ ( 0x85 == ((const U8*)s)[0] ) \
: ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \
- ( ( 0xC2 == ((U8*)s)[0] ) ? \
- ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x8E || ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
+ ( ( 0xC2 == ((const U8*)s)[0] ) ? \
+ ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+ : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x8E || ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
: 0 ) \
: 0 )
@@ -630,44 +630,44 @@
/*** GENERATED CODE ***/
#define is_LNBREAK_safe(s,e,is_utf8) \
( ((e)-(s) > 2) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
- : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+ ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
: 0 )
/*** GENERATED CODE ***/
#define is_LNBREAK_utf8_safe(s,e) \
( ((e)-(s) > 2) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
- : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+ ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
: 0 )
/*** GENERATED CODE ***/
#define is_LNBREAK_latin1_safe(s,e) \
( ((e)-(s) > 1) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+ ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
: 0 )
/*
@@ -677,15 +677,15 @@
*/
/*** GENERATED CODE ***/
#define is_HORIZWS_high(s) \
-( ( 0xBC == ((U8*)s)[0] ) ? \
- ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( 0x41 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( 0x56 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( 0xBC == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_HORIZWS_cp_high(cp) \
@@ -701,7 +701,7 @@
*/
/*** GENERATED CODE ***/
#define is_VERTWS_high(s) \
-( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_VERTWS_cp_high(cp) \
@@ -714,9 +714,9 @@
*/
/*** GENERATED CODE ***/
#define is_XDIGIT_high(s) \
-( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x73 == ((U8*)s)[1] ) ) ? ( ( 0x67 == ((U8*)s)[2] ) ?\
- ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
- : ( ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
+ ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
+ : ( ( ( ((const U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
/*** GENERATED CODE ***/
#define is_XDIGIT_cp_high(cp) \
@@ -730,15 +730,15 @@
*/
/*** GENERATED CODE ***/
#define is_XPERLSPACE_high(s) \
-( ( 0xBC == ((U8*)s)[0] ) ? \
- ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( 0x41 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( 0xBC == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_XPERLSPACE_cp_high(cp) \
@@ -756,7 +756,7 @@
*/
/*** GENERATED CODE ***/
#define is_REPLACEMENT_utf8_safe(s,e) \
-( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((U8*)s)[0] ) ) && ( 0x73 == ((U8*)s)[1] ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x71 == ((U8*)s)[3] ) ) ? 4 : 0 )
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x73 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x71 == ((const U8*)s)[3] ) ) ? 4 : 0 )
/*
NONCHAR: Non character code points
@@ -764,107 +764,104 @@
\p{_Perl_Nchar}
*/
/*** GENERATED CODE ***/
-#define is_NONCHAR_utf8(s) \
-( ( 0xDD == ((U8*)s)[0] ) ? \
- ( ( 0x73 == ((U8*)s)[1] ) ? \
- ( ( 0x55 == ((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 )\
- : ( 0x56 == ((U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
- : ( ( 0x73 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
- : 0 ) \
-: ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
-: ( 0xED == ((U8*)s)[0] ) ? \
- ( ( ( ( ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x62 || ( ( ((U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
-: ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )
+#define is_NONCHAR_utf8_safe(s,e) \
+( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
+ ( ( 0x73 == ((const U8*)s)[1] ) ? \
+ ( ( 0x55 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+ : ( 0x56 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
+ : 0 ) \
+ : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
+ ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
+ : ( 0xED == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
+ : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 ) : 0 )
/*
- SURROGATE: Surrogate characters
+ SURROGATE: Surrogate code points
\p{_Perl_Surrogate}
*/
/*** GENERATED CODE ***/
-#define is_SURROGATE_utf8(s) \
-( ( ( ( ( 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 )
+#define is_SURROGATE_utf8_safe(s,e) \
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x65 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
/*
- UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
+ QUOTEMETA: Meta-characters that \Q should quote
- 0xA0 - 0x3FFF
+ \p{_Perl_Quotemeta}
*/
/*** GENERATED CODE ***/
-#define is_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB6 ) ) ?\
- ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
-: ( ( ( ( ( ((U8*)s)[0] & 0xFC ) == 0xB8 ) || ((U8*)s)[0] == 0xBC || ( ( ((U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xCC ) ) && ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ) && ( ( 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 )
+#define is_QUOTEMETA_high_part0(s) \
+( ( 0x41 == ((const U8*)s)[1] || ( 0x54 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x43 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x42 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x62 == ((const U8*)s)[2] || ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x44 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
+ : ( ( 0x53 == ((const U8*)s)[1] ) && ( ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )
-/*
- QUOTEMETA: Meta-characters that \Q should quote
- \p{_Perl_Quotemeta}
-*/
/*** GENERATED CODE ***/
-#define is_QUOTEMETA_high(s) \
-( ( 0xB1 == ((U8*)s)[0] ) ? \
- ( ( 0x56 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xB8 == ((U8*)s)[0] ) ? \
- ( ( ( 0x57 == ((U8*)s)[1] ) && ( 0x70 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xBB == ((U8*)s)[0] ) ? \
- ( ( 0x51 == ((U8*)s)[1] ) ? \
- ( ( 0x73 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xBC == ((U8*)s)[0] ) ? \
- ( ( 0x63 == ((U8*)s)[1] ) ? \
- ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x71 == ((U8*)s)[1] ) && ( 0x63 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xBE == ((U8*)s)[0] ) ? \
- ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x52 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( 0x41 == ((U8*)s)[1] || ( 0x54 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ?\
- ( ( ( 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 )\
- : ( 0x42 == ((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] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
- : ( 0x43 == ((U8*)s)[1] ) ? \
- ( ( ( 0x42 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x62 == ((U8*)s)[2] || ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
- : ( 0x44 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
- : ( ( 0x53 == ((U8*)s)[1] ) && ( ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
-: ( 0xCB == ((U8*)s)[0] ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xE7 ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ((U8*)s)[1] == 0x4A || ( ( ((U8*)s)[1] & 0xFC ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ((U8*)s)[1] == 0x71 ) ?\
- ( ( ( 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 )\
- : ( 0x6A == ((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] <= 0x64 ) ) ? 3 : 0 )\
- : ( ( 0x70 == ((U8*)s)[1] ) && ( ( 0x63 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
-: ( 0xCC == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 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 )\
-: ( 0xCD == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x62 == ((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 )\
-: ( 0xCE == ((U8*)s)[0] ) ? \
- ( ( 0x41 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) || ( 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 )\
- : ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( 0x41 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xDD == ((U8*)s)[0] ) ? \
- ( ( 0x73 == ((U8*)s)[1] ) ? \
- ( ( 0x4A == ((U8*)s)[2] ) ? \
- ( ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 ) \
- : ( 0x57 == ((U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
- : ( 0x59 == ((U8*)s)[2] ) ? \
- ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
- : ( 0x66 == ((U8*)s)[2] ) ? \
- ( ( 0x73 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( 0x71 == ((U8*)s)[2] ) ? \
- ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )\
+#define is_QUOTEMETA_high_part1(s) \
+( ( 0xCB == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xE7 ) == 0x41 ) || ( ( ((const U8*)s)[1] & 0xCE ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ( ( ((const U8*)s)[1] & 0xFC ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFE ) == 0x68 ) || ((const U8*)s)[1] == 0x71 ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x6A == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x64 ) ) ? 3 : 0 )\
+ : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCC == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCD == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x62 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) || ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xDD == ((const U8*)s)[0] ) ? \
+ ( ( 0x73 == ((const U8*)s)[1] ) ? \
+ ( ( 0x4A == ((const U8*)s)[2] ) ? \
+ ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 ) \
+ : ( 0x57 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( 0x59 == ((const U8*)s)[2] ) ? \
+ ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
+ : ( 0x66 == ((const U8*)s)[2] ) ? \
+ ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( 0x71 == ((const U8*)s)[2] ) ? \
+ ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )\
: 0 ) \
-: ( 0xDF == ((U8*)s)[0] ) ? \
- ( ( 0x56 == ((U8*)s)[1] ) ? \
- ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
- : ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) && ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
-: ( ( ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( 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 ) ) && ( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( ((U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
+: ( 0xDF == ((const U8*)s)[0] ) ? \
+ ( ( 0x56 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
+ : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
+: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_QUOTEMETA_high(s) \
+( ( 0xB1 == ((const U8*)s)[0] ) ? \
+ ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBB == ((const U8*)s)[0] ) ? \
+ ( ( 0x51 == ((const U8*)s)[1] ) ? \
+ ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBC == ((const U8*)s)[0] ) ? \
+ ( ( 0x63 == ((const U8*)s)[1] ) ? \
+ ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x71 == ((const U8*)s)[1] ) && ( 0x63 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBE == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
@@ -873,207 +870,215 @@
*/
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
-( ( 0x81 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x88 == ((U8*)s)[0] ) ? \
- ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x89 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x8F == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x91 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA2 == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
- : ( 0xA3 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xAB == ((U8*)s)[0] ) ? \
- ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xB4 == ((U8*)s)[0] ) ? \
- ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
- ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ? \
- ( ( 0xB1 == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x68 == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB5 == ((U8*)s)[0] ) ? \
- ( ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x46 == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x62 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x4A == ((U8*)s)[1] ) ? \
- ( ( 0xB1 == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( 0x67 == ((U8*)s)[1] || 0x68 == ((U8*)s)[1] ) ? \
- ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : 0 )
+( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
+( ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x8F == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xAB == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x68 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x49 == ((const U8*)s)[3] ) ? \
+ ( ( 0xAF == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+ : ( 0xB5 == ((const U8*)s)[0] ) ? \
+ ( ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x49 == ((const U8*)s)[3] ) ? \
+ ( ( 0xAF == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x62 == ((const U8*)s)[3] ) ? \
+ ( ( 0xAF == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
+ : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB8 == ((const U8*)s)[0] ) ? \
+ ( ( 0x52 == ((const U8*)s)[1] ) ? \
+ ( ( 0x46 == ((const U8*)s)[2] ) ? \
+ ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x63 == ((const U8*)s)[2] ) ? \
+ ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? \
+ ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
+( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x8F == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xAB == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB5 == ((const U8*)s)[0] ) ? \
+ ( ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? \
+ ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
( ((e)-(s) > 3) ? \
- ( ( 0x81 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x88 == ((U8*)s)[0] ) ? \
- ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x89 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x8F == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x91 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA2 == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
- : ( 0xA3 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xAB == ((U8*)s)[0] ) ? \
- ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xB4 == ((U8*)s)[0] ) ? \
- ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
- ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ? \
- ( ( 0xB1 == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x68 == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB5 == ((U8*)s)[0] ) ? \
- ( ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x46 == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x62 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x4A == ((U8*)s)[1] ) ? \
- ( ( 0xB1 == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ ( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x8F == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xAB == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB5 == ((const U8*)s)[0] ) ? \
+ ( ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((const U8*)s)[1] ) ? \
+ ( ( 0xB1 == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
- ( ( 0x81 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x88 == ((U8*)s)[0] ) ? \
- ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x89 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x91 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA2 == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
- : ( 0xA3 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( ( ( 0xAB == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
- : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
+ ( ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 0x81 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x88 == ((U8*)s)[0] ) ? \
- ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x89 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x8F == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x91 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA2 == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
- : ( 0xA3 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xAB == ((U8*)s)[0] ) ? \
- ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xB4 == ((U8*)s)[0] ) ? \
- ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
- ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ? \
- ( ( 0xB1 == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? \
- ( ( ( 0xB4 == ((U8*)s)[4] ) && ( 0x68 == ((U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
- : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x68 == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x49 == ((U8*)s)[3] ) ? \
- ( ( 0xAF == ((U8*)s)[4] ) ? \
- ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
- : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : 0 ) \
- : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : 0 ) \
- : ( 0xB5 == ((U8*)s)[0] ) ? \
- ( ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x46 == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x49 == ((U8*)s)[3] ) ? \
- ( ( 0xAF == ((U8*)s)[4] ) ? \
- ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
- : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : ( 0x62 == ((U8*)s)[3] ) ? \
- ( ( 0xAF == ((U8*)s)[4] ) ? \
- ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
- : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
- : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x4A == ((U8*)s)[1] ) ? \
- ( ( 0xB1 == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? \
- ( ( ( 0xB4 == ((U8*)s)[4] ) && ( 0x68 == ((U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
- : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB8 == ((U8*)s)[0] ) ? \
- ( ( 0x52 == ((U8*)s)[1] ) ? \
- ( ( 0x46 == ((U8*)s)[2] ) ? \
- ( ( ( ( 0xB8 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : ( 0x63 == ((U8*)s)[2] ) ? \
- ( ( ( ( 0xB8 == ((U8*)s)[3] ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x46 == ((U8*)s)[5] || 0x52 == ((U8*)s)[5] || 0x54 == ((U8*)s)[5] || 0x65 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : ( ( ( ( 0x72 == ((U8*)s)[2] ) && ( 0xB8 == ((U8*)s)[3] ) ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x65 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : 0 ) \
- : ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( 0x67 == ((U8*)s)[1] || 0x68 == ((U8*)s)[1] ) ? \
- ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : 0 ) \
-: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
+ ( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
@@ -1083,15 +1088,15 @@
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
( ((e)-(s) > 2) ? \
- ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
- ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ? \
- ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
- : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
- : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
- : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
: 0 )
/*
@@ -1101,27 +1106,27 @@
*/
/*** GENERATED CODE ***/
#define is_FOLDS_TO_MULTI_utf8(s) \
-( ( 0x8A == ((U8*)s)[0] ) ? \
- ( ( 0x73 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] || ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ) ?\
- ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8E == ((U8*)s)[0] ) ? \
- ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xB8 == ((U8*)s)[0] ) ? \
- ( ( ( 0x53 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( 0x63 == ((U8*)s)[1] ) ? \
- ( ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x69 == ((U8*)s)[1] ) ? \
- ( ( 0x57 == ((U8*)s)[2] || 0x59 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x65 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x70 == ((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 )\
- : ( 0x71 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) || 0x59 == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x62 || ( 0x65 == ((U8*)s)[2] || 0x66 == ((U8*)s)[2] ) || 0x70 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x72 == ((U8*)s)[1] ) ? \
- ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x53 || ((U8*)s)[2] == 0x59 || ( ( ((U8*)s)[2] & 0xFB ) == 0x62 ) || ((U8*)s)[2] == 0x65 ) ? 3 : 0 )\
- : ( ( 0x73 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x59 || ( ( ((U8*)s)[2] & 0xFE ) == 0x62 ) || ((U8*)s)[2] == 0x65 || ((U8*)s)[2] == 0x66 || ((U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )
+( ( 0x8A == ((const U8*)s)[0] ) ? \
+ ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
+ ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((const U8*)s)[0] ) ? \
+ ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( 0x63 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x69 == ((const U8*)s)[1] ) ? \
+ ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x70 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x71 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) || 0x59 == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x62 || ( 0x65 == ((const U8*)s)[2] || 0x66 == ((const U8*)s)[2] ) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x72 == ((const U8*)s)[1] ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xFE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x53 || ((const U8*)s)[2] == 0x59 || ( ( ((const U8*)s)[2] & 0xFB ) == 0x62 ) || ((const U8*)s)[2] == 0x65 ) ? 3 : 0 )\
+ : ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xFE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) || ((const U8*)s)[2] == 0x65 || ((const U8*)s)[2] == 0x66 || ((const U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )
/*
PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
@@ -1130,22 +1135,22 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
-( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
-: ( 0x80 == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0x8A ) ? \
- ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
-: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] ) ? \
- ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8E == ((U8*)s)[0] ) ? \
- ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8F == ((U8*)s)[0] ) ? \
- ( ( 0x67 == ((U8*)s)[1] || 0x73 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ? \
- ( ( 0x70 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( ( 0x63 == ((U8*)s)[1] ) && ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] ) ? \
+ ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((const U8*)s)[0] ) ? \
+ ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8F == ((const U8*)s)[0] ) ? \
+ ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
@@ -1169,22 +1174,22 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
-( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
-: ( 0x80 == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0x8A ) ? \
- ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
-: ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] ) ? \
- ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8E == ((U8*)s)[0] ) ? \
- ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8F == ((U8*)s)[0] ) ? \
- ( ( 0x67 == ((U8*)s)[1] || 0x73 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xAB == ((U8*)s)[0] || ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ) ?\
- ( ( 0x70 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( ( 0x63 == ((U8*)s)[1] ) && ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] ) ? \
+ ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((const U8*)s)[0] ) ? \
+ ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8F == ((const U8*)s)[0] ) ? \
+ ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xAB == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
+ ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
@@ -1210,10 +1215,10 @@
/*** GENERATED CODE ***/
#define is_PATWS_safe(s,e,is_utf8) \
( ( LIKELY((e) > (s)) ) ? \
- ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
- : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
- ( ( 0x55 == ((U8*)s)[2] || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
+ ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x05 ) || ((const U8*)s)[0] == 0x0B || ( ( ((const U8*)s)[0] & 0xFE ) == 0x0C ) || ((const U8*)s)[0] == 0x25 || ((const U8*)s)[0] == 0x40 ) ? 1\
+ : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
+ ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
: 0 )
/*** GENERATED CODE ***/
@@ -1242,44 +1247,44 @@
/*** GENERATED CODE ***/
#define is_LNBREAK_safe(s,e,is_utf8) \
( ((e)-(s) > 2) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
- : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+ ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
: 0 )
/*** GENERATED CODE ***/
#define is_LNBREAK_utf8_safe(s,e) \
( ((e)-(s) > 2) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
- : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
+ : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+ ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
: 0 )
/*** GENERATED CODE ***/
#define is_LNBREAK_latin1_safe(s,e) \
( ((e)-(s) > 1) ? \
- ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
- : ( 0x0D == ((U8*)s)[0] ) ? \
- ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 ) \
+ ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
+ : ( 0x0D == ((const U8*)s)[0] ) ? \
+ ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
: 0 ) \
: ((e)-(s) > 0) ? \
- ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
+ ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
: 0 )
/*
@@ -1289,15 +1294,15 @@
*/
/*** GENERATED CODE ***/
#define is_HORIZWS_high(s) \
-( ( 0xBD == ((U8*)s)[0] ) ? \
- ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( 0x41 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( 0x56 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( 0xBD == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_HORIZWS_cp_high(cp) \
@@ -1313,7 +1318,7 @@
*/
/*** GENERATED CODE ***/
#define is_VERTWS_high(s) \
-( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_VERTWS_cp_high(cp) \
@@ -1326,9 +1331,9 @@
*/
/*** GENERATED CODE ***/
#define is_XDIGIT_high(s) \
-( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) ? ( ( 0x66 == ((U8*)s)[2] ) ?\
- ( ( ( ( ((U8*)s)[3] & 0xF7 ) == 0x57 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x58 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x62 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) ) ? 4 : 0 )\
- : ( ( 0x67 == ((U8*)s)[2] || 0x68 == ((U8*)s)[2] ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
+( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
+ ( ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0x57 ) || ( ( ((const U8*)s)[3] & 0xFE ) == 0x58 ) || ( ( ((const U8*)s)[3] & 0xFE ) == 0x62 ) || ( ( ((const U8*)s)[3] & 0xFC ) == 0x64 ) ) ? 4 : 0 )\
+ : ( ( 0x67 == ((const U8*)s)[2] || 0x68 == ((const U8*)s)[2] ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
/*** GENERATED CODE ***/
#define is_XDIGIT_cp_high(cp) \
@@ -1342,15 +1347,15 @@
*/
/*** GENERATED CODE ***/
#define is_XPERLSPACE_high(s) \
-( ( 0xBD == ((U8*)s)[0] ) ? \
- ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( 0x41 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( 0xBD == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_XPERLSPACE_cp_high(cp) \
@@ -1368,7 +1373,7 @@
*/
/*** GENERATED CODE ***/
#define is_REPLACEMENT_utf8_safe(s,e) \
-( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((U8*)s)[0] ) ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x70 == ((const U8*)s)[3] ) ) ? 4 : 0 )
/*
NONCHAR: Non character code points
@@ -1376,40 +1381,29 @@
\p{_Perl_Nchar}
*/
/*** GENERATED CODE ***/
-#define is_NONCHAR_utf8(s) \
-( ( 0xDD == ((U8*)s)[0] ) ? \
- ( ( 0x72 == ((U8*)s)[1] ) ? \
- ( ( 0x55 == ((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 )\
- : ( 0x56 == ((U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
- : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : 0 ) \
-: ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
-: ( 0xED == ((U8*)s)[0] ) ? \
- ( ( ( ( ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x5F || ((U8*)s)[1] == 0x63 || ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) || ((U8*)s)[1] == 0x69 || ( ( ((U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) && ( 0x71 == ((U8*)s)[4] || 0x72 == ((U8*)s)[4] ) ) ? 5 : 0 )\
-: ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) && ( 0x71 == ((U8*)s)[4] || 0x72 == ((U8*)s)[4] ) ) ? 5 : 0 )
+#define is_NONCHAR_utf8_safe(s,e) \
+( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
+ ( ( 0x72 == ((const U8*)s)[1] ) ? \
+ ( ( 0x55 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+ : ( 0x56 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[2] ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+ : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
+ ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xED == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( 0x71 == ((const U8*)s)[4] || 0x72 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( 0x71 == ((const U8*)s)[4] || 0x72 == ((const U8*)s)[4] ) ) ? 5 : 0 ) : 0 )
/*
- SURROGATE: Surrogate characters
+ SURROGATE: Surrogate code points
\p{_Perl_Surrogate}
*/
/*** GENERATED CODE ***/
-#define is_SURROGATE_utf8(s) \
-( ( ( ( ( 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 )
-
-/*
- UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
-
- 0xA0 - 0x3FFF
-*/
-/*** GENERATED CODE ***/
-#define is_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB5 ) ) ?\
- ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
-: ( ( ( ((U8*)s)[0] == 0xB7 || ( ( ((U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xCC ) ) && ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ) && ( ( 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 )
+#define is_SURROGATE_utf8_safe(s,e) \
+( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0x64 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
/*
QUOTEMETA: Meta-characters that \Q should quote
@@ -1418,73 +1412,73 @@
*/
/*** GENERATED CODE ***/
#define is_QUOTEMETA_high_part0(s) \
-( ( 0x51 == ((U8*)s)[1] ) ? \
- ( ( 0x72 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
+( ( 0x41 == ((const U8*)s)[1] || ( 0x54 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ? 3 : 0 )\
+ : ( 0x43 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x42 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x44 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
+ : ( ( 0x53 == ((const U8*)s)[1] ) && ( ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )
/*** GENERATED CODE ***/
#define is_QUOTEMETA_high_part1(s) \
-( ( 0xBD == ((U8*)s)[0] ) ? \
- ( ( 0x62 == ((U8*)s)[1] ) ? \
- ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x70 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
-: ( 0xBE == ((U8*)s)[0] ) ? \
- ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x52 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( 0x41 == ((U8*)s)[1] || ( 0x54 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ?\
- ( ( ( 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 )\
- : ( 0x42 == ((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 ) || ( ((U8*)s)[2] & 0xFE ) == 0x70 ) ? 3 : 0 )\
- : ( 0x43 == ((U8*)s)[1] ) ? \
- ( ( ( 0x42 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x63 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
- : ( 0x44 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
- : ( ( 0x53 == ((U8*)s)[1] ) && ( ( 0x57 <= ((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 )\
-: ( 0xCB == ((U8*)s)[0] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x43 ) || ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x68 ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ?\
- ( ( ( 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 )\
- : ( 0x69 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x62 ) ? 3 : 0 )\
- : ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
-: ( 0xCC == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) && ( ( 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 )\
-: ( 0xCD == ((U8*)s)[0] ) ? \
- ( ( ( ( ( ((U8*)s)[1] & 0xF7 ) == 0x57 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x58 ) ) && ( ( 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 )\
-: ( 0xCE == ((U8*)s)[0] ) ? \
- ( ( 0x41 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) || ( 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 )\
- : ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( 0x41 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 ) \
- : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xDD == ((U8*)s)[0] ) ? \
- ( ( 0x72 == ((U8*)s)[1] ) ? \
- ( ( 0x4A == ((U8*)s)[2] ) ? \
- ( ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( 0x57 == ((U8*)s)[2] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
- : ( 0x59 == ((U8*)s)[2] ) ? \
- ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
- : ( 0x65 == ((U8*)s)[2] ) ? \
- ( ( 0x72 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( 0x70 == ((U8*)s)[2] ) ? \
- ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )\
+( ( 0xCB == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x43 ) || ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x68 ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x69 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ? 3 : 0 )\
+ : ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCC == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCD == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ( ((const U8*)s)[1] & 0xF7 ) == 0x57 ) || ( ( ((const U8*)s)[1] & 0xFE ) == 0x58 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xCE == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) || ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xDD == ((const U8*)s)[0] ) ? \
+ ( ( 0x72 == ((const U8*)s)[1] ) ? \
+ ( ( 0x4A == ((const U8*)s)[2] ) ? \
+ ( ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )\
+ : ( 0x57 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( 0x59 == ((const U8*)s)[2] ) ? \
+ ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
+ : ( 0x65 == ((const U8*)s)[2] ) ? \
+ ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( 0x70 == ((const U8*)s)[2] ) ? \
+ ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )\
: 0 ) \
-: ( 0xDF == ((U8*)s)[0] ) ? \
- ( ( 0x56 == ((U8*)s)[1] ) ? \
- ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
- : ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) && ( 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
-: ( ( ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( 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 ) ) ) && ( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || 0x5F == ((U8*)s)[4] || ( 0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
+: ( 0xDF == ((const U8*)s)[0] ) ? \
+ ( ( 0x56 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
+ : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
+: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
/*** GENERATED CODE ***/
#define is_QUOTEMETA_high(s) \
-( ( 0xAF == ((U8*)s)[0] ) ? \
- ( ( 0x56 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xB7 == ((U8*)s)[0] ) ? \
- ( ( ( 0x57 == ((U8*)s)[1] ) && ( 0x6A == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xBC == ((U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
+( ( 0xAF == ((const U8*)s)[0] ) ? \
+ ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB7 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBC == ((const U8*)s)[0] ) ? \
+ ( ( 0x51 == ((const U8*)s)[1] ) ? \
+ ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBD == ((const U8*)s)[0] ) ? \
+ ( ( 0x62 == ((const U8*)s)[1] ) ? \
+ ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
+ : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
+: ( 0xBE == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
@@ -1493,207 +1487,215 @@
*/
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
-( ( 0x81 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x88 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x89 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x8E == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x91 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA2 == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
- : ( 0xA3 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xAA == ((U8*)s)[0] ) ? \
- ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xB3 == ((U8*)s)[0] ) ? \
- ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
- ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x67 == ((U8*)s)[1] ) && ( 0xAF == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB4 == ((U8*)s)[0] ) ? \
- ( ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x46 == ((U8*)s)[1] ) ? \
- ( ( 0xAD == ((U8*)s)[2] ) ? \
- ( ( 0x5F == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x4A == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ? \
- ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0x69 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x6A == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : 0 )
+( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
+( ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x8E == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xAA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xB3 == ((const U8*)s)[0] ) ? \
+ ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x67 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAD == ((const U8*)s)[2] ) ? \
+ ( ( 0x49 == ((const U8*)s)[3] ) ? \
+ ( ( 0xAD == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+ : ( 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAD == ((const U8*)s)[2] ) ? \
+ ( ( 0x49 == ((const U8*)s)[3] ) ? \
+ ( ( 0xAD == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
+ : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x5F == ((const U8*)s)[3] ) ? \
+ ( ( 0xAD == ((const U8*)s)[4] ) ? \
+ ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
+ : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? \
+ ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
+ : 0 ) \
+ : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB7 == ((const U8*)s)[0] ) ? \
+ ( ( 0x52 == ((const U8*)s)[1] ) ? \
+ ( ( 0x46 == ((const U8*)s)[2] ) ? \
+ ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( 0x62 == ((const U8*)s)[2] ) ? \
+ ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
+ : 0 ) \
+ : ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ? \
+ ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
+( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x8E == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xAA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xB3 == ((const U8*)s)[0] ) ? \
+ ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAD == ((const U8*)s)[2] ) ? \
+ ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ? \
+ ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
( ((e)-(s) > 3) ? \
- ( ( 0x81 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x88 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x89 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x8E == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x91 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA2 == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
- : ( 0xA3 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xAA == ((U8*)s)[0] ) ? \
- ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xB3 == ((U8*)s)[0] ) ? \
- ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
- ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x67 == ((U8*)s)[1] ) && ( 0xAF == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB4 == ((U8*)s)[0] ) ? \
- ( ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x46 == ((U8*)s)[1] ) ? \
- ( ( 0xAD == ((U8*)s)[2] ) ? \
- ( ( 0x5F == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x4A == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 ) \
- : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
+ ( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x8E == ((const U8*)s)[0] ) ? \
+ ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xAA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xB3 == ((const U8*)s)[0] ) ? \
+ ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0xB4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x46 == ((const U8*)s)[1] ) ? \
+ ( ( 0xAD == ((const U8*)s)[2] ) ? \
+ ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( 0x4A == ((const U8*)s)[1] ) ? \
+ ( ( 0xAF == ((const U8*)s)[2] ) ? \
+ ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
+ : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
: 0 ) \
: ((e)-(s) > 2) ? \
- ( ( 0x81 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x88 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x89 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x91 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA2 == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
- : ( 0xA3 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( ( ( 0xAA == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
+ ( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] ) ? \
+ ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
+ : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( 0x88 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x89 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x91 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA2 == ((const U8*)s)[0] ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
+ : ( 0xA3 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
- : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
+ ( ( 0x86 == ((const U8*)s)[0] ) ? \
+ ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
+ : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
: 0 )
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
( ((e)-(s) > 5) ? \
- ( ( 0x81 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x86 == ((U8*)s)[0] ) ? \
- ( ( 0x86 == ((U8*)s)[1] ) ? \
- ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 ) \
- : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 ) \
- : ( 0x88 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x89 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0x8E == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x91 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA2 == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
- : ( 0xA3 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ? \
- ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xAA == ((U8*)s)[0] ) ? \
- ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
- : ( 0xB3 == ((U8*)s)[0] ) ? \
- ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ? \
- ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? \
- ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x67 == ((U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
- : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x67 == ((U8*)s)[1] ) ? \
- ( ( 0xAD == ((U8*)s)[2] ) ? \
- ( ( 0x49 == ((U8*)s)[3] ) ? \
- ( ( 0xAD == ((U8*)s)[4] ) ? \
- ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
- : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : 0 ) \
- : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : 0 ) \
- : ( 0xB4 == ((U8*)s)[0] ) ? \
- ( ( 0x42 == ((U8*)s)[1] ) ? \
- ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x46 == ((U8*)s)[1] ) ? \
- ( ( 0xAD == ((U8*)s)[2] ) ? \
- ( ( 0x49 == ((U8*)s)[3] ) ? \
- ( ( 0xAD == ((U8*)s)[4] ) ? \
- ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
- : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : ( 0x5F == ((U8*)s)[3] ) ? \
- ( ( 0xAD == ((U8*)s)[4] ) ? \
- ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
- : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
- : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0x4A == ((U8*)s)[1] ) ? \
- ( ( 0xAF == ((U8*)s)[2] ) ? \
- ( ( 0x43 == ((U8*)s)[3] ) ? \
- ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x67 == ((U8*)s)[5] ) ) ? 6 : 4 )\
- : 0 ) \
- : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
- : ( 0xB7 == ((U8*)s)[0] ) ? \
- ( ( 0x52 == ((U8*)s)[1] ) ? \
- ( ( 0x46 == ((U8*)s)[2] ) ? \
- ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : ( 0x62 == ((U8*)s)[2] ) ? \
- ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x46 == ((U8*)s)[5] || 0x52 == ((U8*)s)[5] || 0x54 == ((U8*)s)[5] || 0x64 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : ( ( ( ( 0x71 == ((U8*)s)[2] ) && ( 0xB7 == ((U8*)s)[3] ) ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x64 == ((U8*)s)[5] ) ) ? 6 : 0 )\
- : 0 ) \
- : ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ? \
- ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : ( ( ( ( 0x69 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x6A == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
- : 0 ) \
-: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
+ ( ( 0x81 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+ : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
+: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
/*
MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
@@ -1703,15 +1705,15 @@
/*** GENERATED CODE ***/
#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
( ((e)-(s) > 2) ? \
- ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
- ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ? \
- ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
- : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
- : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
+ : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
: ((e)-(s) > 1) ? \
- ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
- : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
+ ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
+ : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
: 0 )
/*
@@ -1721,27 +1723,27 @@
*/
/*** GENERATED CODE ***/
#define is_FOLDS_TO_MULTI_utf8(s) \
-( ( 0x80 == ((U8*)s)[0] ) ? \
- ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
- ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8D == ((U8*)s)[0] ) ? \
- ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xB7 == ((U8*)s)[0] ) ? \
- ( ( ( 0x53 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 ) \
-: ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( 0x62 == ((U8*)s)[1] ) ? \
- ( ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x68 == ((U8*)s)[1] ) ? \
- ( ( 0x57 == ((U8*)s)[2] || 0x59 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x6A == ((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 )\
- : ( 0x70 == ((U8*)s)[1] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) || 0x59 == ((U8*)s)[2] || 0x5F == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x64 || 0x6A == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( 0x71 == ((U8*)s)[1] ) ? \
- ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xDE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x53 || ((U8*)s)[2] == 0x59 || ((U8*)s)[2] == 0x5F ) ? 3 : 0 )\
- : ( ( 0x72 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xDE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x59 || ((U8*)s)[2] == 0x5F || ( ( ((U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x65 ) ) ) ? 4 : 0 )
+( ( 0x80 == ((const U8*)s)[0] ) ? \
+ ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
+ ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8D == ((const U8*)s)[0] ) ? \
+ ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xB7 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( 0x62 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x68 == ((const U8*)s)[1] ) ? \
+ ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x6A == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
+ : ( 0x70 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x64 || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( 0x71 == ((const U8*)s)[1] ) ? \
+ ( ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x53 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F ) ? 3 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x65 ) ) ) ? 4 : 0 )
/*
PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
@@ -1750,22 +1752,22 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
-( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x5C ) || ((U8*)s)[0] == 0x5E || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x6C ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ((U8*)s)[0] == 0xB0 || ( ( ((U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
-: ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || 0x8A == ((U8*)s)[0] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
-: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] ) ? \
- ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8D == ((U8*)s)[0] ) ? \
- ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8E == ((U8*)s)[0] ) ? \
- ( ( 0x66 == ((U8*)s)[1] || 0x72 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
- ( ( 0x6A == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( ( 0x62 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x5C ) || ((const U8*)s)[0] == 0x5E || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x6C ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ((const U8*)s)[0] == 0xB0 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] ) ? \
+ ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8D == ((const U8*)s)[0] ) ? \
+ ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((const U8*)s)[0] ) ? \
+ ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
+ ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
@@ -1789,22 +1791,22 @@
*/
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
-( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x5C ) || ((U8*)s)[0] == 0x5E || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x6C ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ((U8*)s)[0] == 0xB0 || ( ( ((U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
-: ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || 0x8A == ((U8*)s)[0] ) ? \
- ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
-: ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] ) ? \
- ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8D == ((U8*)s)[0] ) ? \
- ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0x8E == ((U8*)s)[0] ) ? \
- ( ( 0x66 == ((U8*)s)[1] || 0x72 == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xAA == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
- ( ( 0x6A == ((U8*)s)[1] ) ? 2 : 0 ) \
-: ( 0xBF == ((U8*)s)[0] ) ? \
- ( ( ( 0x62 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( 0xCA == ((U8*)s)[0] ) ? \
- ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
-: ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
+( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x5C ) || ((const U8*)s)[0] == 0x5E || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x6C ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ((const U8*)s)[0] == 0xB0 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
+: ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] ) ? \
+ ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8D == ((const U8*)s)[0] ) ? \
+ ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0x8E == ((const U8*)s)[0] ) ? \
+ ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xAA == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
+ ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
+: ( 0xBF == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( 0xCA == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
+: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
/*** GENERATED CODE ***/
#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
@@ -1830,10 +1832,10 @@
/*** GENERATED CODE ***/
#define is_PATWS_safe(s,e,is_utf8) \
( ( LIKELY((e) > (s)) ) ? \
- ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
- : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
- ( ( 0x55 == ((U8*)s)[2] || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
- : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
+ ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x05 ) || ((const U8*)s)[0] == 0x0B || ( ( ((const U8*)s)[0] & 0xFE ) == 0x0C ) || ((const U8*)s)[0] == 0x25 || ((const U8*)s)[0] == 0x40 ) ? 1\
+ : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
+ ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
+ : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
: 0 )
/*** GENERATED CODE ***/
@@ -1852,52 +1854,52 @@
#endif /* H_REGCHARCLASS */
/* Generated from:
- * cb3170dd603ad12ba0299440e99e8f50a8afde60ade2ffcbf1ff4a8a53854b90 lib/Unicode/UCD.pm
- * ae98bec7e4f0564758eed81eca5015481ba32581f8a735a825b71b3bba714450 lib/unicore/ArabicShaping.txt
- * 1687fe5994eb7e5c0dab8503fc2a1b3b479d91af9d3b8055941c9bd791f7d0b5 lib/unicore/BidiBrackets.txt
- * 350d1302116194b0b21def287434b55c5088098fbc726e879f7420a391965643 lib/unicore/BidiMirroring.txt
- * 288fc7b85c76bda296e296c8465f1f4baeb456cb814430dfaa0f546bfbe86b4a lib/unicore/Blocks.txt
- * 86e075f2ede997b3fa5965516c75190b5a88bb82d302272d9c3179b7a57af03f lib/unicore/CaseFolding.txt
- * 2fafee5be73bf2817ee669c53c504a6c4aa02ac7344194af18511aea2e05d750 lib/unicore/CompositionExclusions.txt
- * 302f6d6171dc9c6165db86d0226b7923a64cea06c493d339d35436bf137606a3 lib/unicore/DAge.txt
- * ff666dece87dfdbdbf04a2e26a0bfb52c4ba98db1f8965b0b01ddb9e15f97476 lib/unicore/DCoreProperties.txt
- * 6cc76100d402d7dd12bd769ac61158b91e71aad58c8333abb848f1b9c9fdde2d lib/unicore/DNormalizationProps.txt
- * ccc571829b384b8a2c24b7a62f8aa6a891a6e8c48f08513ef84fd6da26dba4bb lib/unicore/EastAsianWidth.txt
- * 2320db06cf88c755ec7b9cfec96dd9e1d774173521dbc3ee7985377c2ab90d32 lib/unicore/HangulSyllableType.txt
- * e52216b5fdb04910e06e94f01cabdf70656b0077c92b756c7b38822626d572f2 lib/unicore/IndicPositionalCategory.txt
- * 4db71a39102e173095cb8bda8b4c35e78fe6b365e443c584b19f081d8c4894fc lib/unicore/IndicSyllabicCategory.txt
- * eeb30346bb545bb45ff16486d9234397bfe1a195bb12b54fc1d9f48f87e8aa5e lib/unicore/Jamo.txt
- * 13e2b7087bcca3163272e64e34e480534bd2f8353a0245c26e6642566f59a60d lib/unicore/LineBreak.txt
- * 9bb54cd7b5509779f269fa60341bcbfca8da8f17d3c4999e44a5a51671d3c402 lib/unicore/NameAliases.txt
- * e4c29d9ceefbe2382af819ac7646265a9e4ea599ce04a90d31bec97cfaa2848f lib/unicore/NamedSequences.txt
- * 70d40297f1bf91397fbdab5a770c12100733e67c5c3398446c5e950715d5e535 lib/unicore/PropList.txt
- * 03a440f2a4b9151043a6bb53d4a4e528b73238079f9d686dc2a5846e6895588a lib/unicore/PropValueAliases.txt
- * 8e8b48c2080d31aa6713f5535aad94a1f7bc9a65cc52563724e5e69b0a3b4196 lib/unicore/PropertyAliases.txt
- * 45d42b1ecbac2263c1c63c95104e63ea64313eb99be94542e040aea11c449f6c lib/unicore/ScriptExtensions.txt
- * 79fbd73ad82c30fdb67d36a349d12667bd58d3e9da6a8ce7dd26383b637ba85f lib/unicore/Scripts.txt
- * fb2025dae3b9b17649b6e379c1cdbddf50641267ca6d2446caeccf4a141fe167 lib/unicore/SpecialCasing.txt
- * 38b17e1118206489a7e0ab5d29d7932212d38838df7d3ec025ecb58e8798ec20 lib/unicore/UnicodeData.txt
- * 0cedd6e0f5cadf57ce9cfc96beccfd083b0faa0809a631a777cd25f0316bfabb lib/unicore/auxiliary/GCBTest.txt
- * 230005412f9a47128e37bc52330766aaa0b5522a53737a89cff66e891e14527a lib/unicore/auxiliary/GraphemeBreakProperty.txt
- * 149b14ab93b06c887a958fb16d0ad01193063ef69cc14f10338ae4d0accd6c28 lib/unicore/auxiliary/LBTest.txt
- * 41bf82452d71ce15eda8c9bb1bb0c20b72205acaaf503e3cb84734ed8e85d33a lib/unicore/auxiliary/SBTest.txt
- * d3b45cdb0a73eeb9d25158336583dfc1e6f64da59537acb0008988b40e6b3b63 lib/unicore/auxiliary/SentenceBreakProperty.txt
- * a661f42a54f7cc4dded72a61c508be2b482f912d4b6cf140335010f0c684dbb9 lib/unicore/auxiliary/WBTest.txt
- * c255bd2e1f163373510679bf4b272eee97b635bfce2a6550d6c10fe5c917f01a lib/unicore/auxiliary/WordBreakProperty.txt
- * 16dac6f1c164a4f52741b71221a8aafb6acb52cd8a436af139da6e93d86efdfb lib/unicore/extracted/DBidiClass.txt
- * c4e78efc041668548117f7462af03b28dfbb2caca5d46a1ae78ae0ce0bb26c4a lib/unicore/extracted/DBinaryProperties.txt
- * 5886bb44aae8f2821663f742793cb91d4ed0923c6840f3bfb73530e37030abf8 lib/unicore/extracted/DCombiningClass.txt
- * 9edba3785ed0e6e46e10f67e2dd0ec3cb0799b7f75f526fe918429576060352e lib/unicore/extracted/DDecompositionType.txt
- * b774387f79b27ae4268ae89450f971408dc9bbbb523426482ab4375c962bd922 lib/unicore/extracted/DEastAsianWidth.txt
- * ba4207d2464077e807b20caf063041142afc0a8a38c328c5c23b3417c9f2da33 lib/unicore/extracted/DGeneralCategory.txt
- * 29fdd151266595eb1b37715937afe0727bb632a2bc1130f0d2314040175df82e lib/unicore/extracted/DJoinGroup.txt
- * 7725fe247da06986e43e89fd316b8b22a0619546d0c1ed499a94b25e9164c150 lib/unicore/extracted/DJoinType.txt
- * 1a0687fb9c6c4567e853913549df0944fe40821279a3e9cdaa6ab8679bc286fd lib/unicore/extracted/DLineBreak.txt
- * 40bcfed3ca727c19e1331f6c33806231d5f7eeeabd2e6a9e06a3740c85d0c250 lib/unicore/extracted/DNumType.txt
- * a18d502bad39d527ac5586d7bc93e29f565859e3bcc24ada627eff606d6f5fed lib/unicore/extracted/DNumValues.txt
- * 285aef7ed2bf69724b1fa9bba177640636f666e1a5dd0ba5e538d4790129bbfe lib/unicore/mktables
- * 462c9aaa608fb2014cd9649af1c5c009485c60b9c8b15b89401fdc10cf6161c6 lib/unicore/version
+ * 59e717586b720a821ee0d7397679d5322e38b49f6fb7840545aedf669c733b70 lib/Unicode/UCD.pm
+ * 47cb62a53beea6d0263e2147331c7e751853c9327225d95bbe2d9e1dc3e1aa44 lib/unicore/ArabicShaping.txt
+ * 153f0a100c315f9f3945e78f57137611d36c44b3a975919c499fd403413fede8 lib/unicore/BidiBrackets.txt
+ * fbe806975c1bf9fc9960bbaa39ff6290c42c7da8315f9cd459109b024cc1c485 lib/unicore/BidiMirroring.txt
+ * 612127d4889032e55d82522e4a0c19793bda8aa8da14ecb3c696d17c83e6be13 lib/unicore/Blocks.txt
+ * 37d40cf8c2c35637f4a04e746814e1fc4eb764c272bed9238a87ee96a4866857 lib/unicore/CaseFolding.txt
+ * 5623df16856ad4007c60bdfff6f054e087521becd24cb4006be69c3a1d851aee lib/unicore/CompositionExclusions.txt
+ * 5cb15b04693c43df16e0d304deca049e93b001445d163184e0ff1b7c8c852146 lib/unicore/DAge.txt
+ * 6662c7e30b572df5d948c092692f52bcc79ab36d49a063a73d6435042db6fb3b lib/unicore/DCoreProperties.txt
+ * 02d8e12cea7c61a9f3cc5fbf8eaceadf8da23fe83d60c64cf647088830b810cc lib/unicore/DNormalizationProps.txt
+ * 3382cb4980e0021e9d4312f2d099315cfab6100ce0ff63a22d6937bfa720bcb7 lib/unicore/EastAsianWidth.txt
+ * cb02ff25c375e78c82afffc852180eae7fc17c2f4434e697107720d05c52b26e lib/unicore/HangulSyllableType.txt
+ * 850043bc9db08eddb271e43ed9176b865df76745a5fb6e9a4a1d9e54e5036471 lib/unicore/IndicPositionalCategory.txt
+ * 90a3a00a5f5810850986c9279849b03c2f3133cfeeefb0554e851dd5ad7324dc lib/unicore/IndicSyllabicCategory.txt
+ * bbd36a8d27f76e0fe0f2b0ca2827ac80da4b4a8d5247f0b0670fcaaac68ae6e1 lib/unicore/Jamo.txt
+ * e2698584982ccd96e0c688bbcd4d2c48a23805baa0a0084388ef2e50ebd30aad lib/unicore/LineBreak.txt
+ * 9d5353b1d318e72a63a49aa6a6a051d350382ea44b2cf31fe925bb94ce7e129b lib/unicore/NameAliases.txt
+ * 009477f536f63016d901aeb1a4c820ad291e30e72ee9eb9ac1dfb6294a8a9bcc lib/unicore/NamedSequences.txt
+ * f413ea8dbd3858de72f3148b47dd0586019761357d1481e3b65f3a025bc27f82 lib/unicore/PropList.txt
+ * 56582d9875c1997876cf09305ccfc83448195de5d84d6374c78efaffeca4dfd7 lib/unicore/PropValueAliases.txt
+ * 047ab0f815b6d1b30a863d6fcbd49e6358e168a3bd6c7189e80ab9863957d222 lib/unicore/PropertyAliases.txt
+ * cde011921972dffe3e30dcbc7afbf069bf2eb01269097111dd7533b4c524caac lib/unicore/ScriptExtensions.txt
+ * fba415952f5654145acad220dc2b878f815c673474d2bb4928934e3ba6ccca1d lib/unicore/Scripts.txt
+ * dfc4f159c5c68328114ff17cd520451714a72ff48657287e5fe2f64344980695 lib/unicore/SpecialCasing.txt
+ * 68dfc414d28257b9b5d6ddbb8b466c768c00ebdf6cbf7784364a9b6cad55ee8f lib/unicore/UnicodeData.txt
+ * c76e7ed44a602f85161758ec54d2bcbcb7baf38f97720605a3e81ce02af47061 lib/unicore/auxiliary/GCBTest.txt
+ * 4bb8931857e0a698fd2ec4a51a84c6de33e48a50d8b4bf0b57d960c41d77a191 lib/unicore/auxiliary/GraphemeBreakProperty.txt
+ * 0c609ae4a32a89905c004010ef29885df3c60a941311a1a6e16003333d7fcdc8 lib/unicore/auxiliary/LBTest.txt
+ * 26afdd5f38561167807b0f191af55b05761029ae6be2b7fe85b88f28effc66b5 lib/unicore/auxiliary/SBTest.txt
+ * 53982766eeaf26674e7e2ec956c52846d52992ea9f4f1a202d488fb5cd76dd10 lib/unicore/auxiliary/SentenceBreakProperty.txt
+ * 7f60beacc5ec5671edb56db36defc90cfc0016de4fd2bdfde7a3e4ec209840ce lib/unicore/auxiliary/WBTest.txt
+ * cb2db065c77287e0f1d35b8c9b473d848b7566a1670439f67c357ca393084043 lib/unicore/auxiliary/WordBreakProperty.txt
+ * 73573a4bee7f7377d936bc1710cd578001d00ba516e72ee54e906ae51a8c1fcb lib/unicore/extracted/DBidiClass.txt
+ * ae8f55d8bb2bb69a63f70eef38cf5921fc3ba8e06d4d88f37950d32313a14754 lib/unicore/extracted/DBinaryProperties.txt
+ * cf263ac4848d47264300139f97ed15c2c22896d2cef411483cbe292098c08bea lib/unicore/extracted/DCombiningClass.txt
+ * 5bac89caf8d1fa23fcbbbf4d49ea0699b680ef1a73cbfa0daaac38c993906a74 lib/unicore/extracted/DDecompositionType.txt
+ * e17138d36cd91f0e0d16437780a887c5ac637bde0de370b96f08a3424fcc322f lib/unicore/extracted/DEastAsianWidth.txt
+ * fad25c183f4d439622c6be33c22ed709cdc4ac19feef0250527cf319a06952fe lib/unicore/extracted/DGeneralCategory.txt
+ * c0d080b188fbe67dead10a3897dd2ca23da862c7f0b03508a92dcf27cd7e1f41 lib/unicore/extracted/DJoinGroup.txt
+ * 3a8f8642084ed23b0de52af72dea0ff3d0b6928e6c7442832c663899e2b85e9d lib/unicore/extracted/DJoinType.txt
+ * 37f6186253da9824bdb27f4ad867bfe8c25d4dc6bdb2f05585e40a034675a348 lib/unicore/extracted/DLineBreak.txt
+ * ef24061b5a5dc93d7e90c2e34530ec757180ee75d872cba65ffc946e52624ae8 lib/unicore/extracted/DNumType.txt
+ * a197371fec9a1b517058b440841f60f9378d81682084eef8db22a88cb2f96e90 lib/unicore/extracted/DNumValues.txt
+ * 79a7216aceb1d291f2857085545fdda289518bc540a09bc0a15cde105d76028d lib/unicore/mktables
+ * cdecb300baad839a6f62791229f551a4fa33f3cbdca08e378dc976466354e778 lib/unicore/version
* 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
- * d9c04ac46bdd81bb3e26519f2b8eb6242cb12337205add3f7cf092b0c58dccc4 regen/regcharclass.pl
+ * c468aea5062ef84422219d74e83b6f3216f2823544b445f53ee1af71deeb2044 regen/regcharclass.pl
* 393f8d882713a3ba227351ad0f00ea4839fda74fcf77dcd1cdf31519925adba5 regen/regcharclass_multi_char_folds.pl
* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/regcomp.h b/Master/tlpkg/tlperl/lib/CORE/regcomp.h
index a8842a1bc79..14599fac007 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regcomp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regcomp.h
@@ -107,8 +107,7 @@
Used to make it easier to clone and free arbitrary
data that the regops need. Often the ARG field of
a regop is an index into this structure */
- struct reg_code_block *code_blocks;/* positions of literal (?{}) */
- int num_code_blocks; /* size of code_blocks[] */
+ struct reg_code_blocks *code_blocks;/* positions of literal (?{}) */
regnode program[1]; /* Unwarranted chumminess with compiler. */
} regexp_internal;
@@ -522,7 +521,7 @@ struct regnode_ssc {
|ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD)) \
== ANYOFL_SHARED_UTF8_LOCALE_fold_HAS_MATCHES_nonfold_REQD)
-/* Spare: 0x10 */
+/* Spare: Be sure to change ANYOF_FLAGS_ALL if this gets used 0x10 */
/* If set, the node matches every code point NUM_ANYOF_CODE_POINTS and above.
* Can be in an SSC */
@@ -1054,7 +1053,7 @@ re.pm, especially to the documentation.
/* get_sv() can return NULL during global destruction. */
#define GET_RE_DEBUG_FLAGS DEBUG_r({ \
SV * re_debug_flags_sv = NULL; \
- re_debug_flags_sv = PL_curcop ? get_sv(RE_DEBUG_FLAGS, 1) : NULL; \
+ re_debug_flags_sv = PL_curcop ? get_sv(RE_DEBUG_FLAGS, GV_ADD) : NULL; \
if (re_debug_flags_sv) { \
if (!SvIOK(re_debug_flags_sv)) \
sv_setuv(re_debug_flags_sv, RE_DEBUG_COMPILE_DUMP | RE_DEBUG_EXECUTE_MASK ); \
diff --git a/Master/tlpkg/tlperl/lib/CORE/regexp.h b/Master/tlpkg/tlperl/lib/CORE/regexp.h
index 78aa899625e..9a2b61a18ef 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regexp.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regexp.h
@@ -85,6 +85,14 @@ struct reg_code_block {
REGEXP *src_regex;
};
+/* array of reg_code_block's plus header info */
+
+struct reg_code_blocks {
+ int refcnt; /* we may be pointed to from a regex and from the savestack */
+ int count; /* how many code blocks */
+ struct reg_code_block *cb; /* array of reg_code_block's */
+};
+
/*
The regexp/REGEXP struct, see L<perlreapi> for further documentation
@@ -262,7 +270,7 @@ and check for NULL.
*/
#define SvRX(sv) (Perl_get_re_arg(aTHX_ sv))
-#define SvRXOK(sv) (Perl_get_re_arg(aTHX_ sv) ? TRUE : FALSE)
+#define SvRXOK(sv) cBOOL(Perl_get_re_arg(aTHX_ sv))
/* Flags stored in regexp->extflags
@@ -278,25 +286,26 @@ and check for NULL.
#include "op_reg_common.h"
-#define RXf_PMf_STD_PMMOD (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_NOCAPTURE)
+#define RXf_PMf_STD_PMMOD (RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_FOLD|RXf_PMf_EXTENDED|RXf_PMf_EXTENDED_MORE|RXf_PMf_NOCAPTURE)
#define CASE_STD_PMMOD_FLAGS_PARSE_SET(pmfl, x_count) \
case IGNORE_PAT_MOD: *(pmfl) |= RXf_PMf_FOLD; break; \
case MULTILINE_PAT_MOD: *(pmfl) |= RXf_PMf_MULTILINE; break; \
case SINGLE_PAT_MOD: *(pmfl) |= RXf_PMf_SINGLELINE; break; \
- case XTENDED_PAT_MOD: *(pmfl) |= RXf_PMf_EXTENDED; (x_count)++; break;\
+ case XTENDED_PAT_MOD: if (x_count == 0) { \
+ *(pmfl) |= RXf_PMf_EXTENDED; \
+ *(pmfl) &= ~RXf_PMf_EXTENDED_MORE; \
+ } \
+ else { \
+ *(pmfl) |= RXf_PMf_EXTENDED \
+ |RXf_PMf_EXTENDED_MORE; \
+ } \
+ (x_count)++; break; \
case NOCAPTURE_PAT_MOD: *(pmfl) |= RXf_PMf_NOCAPTURE; break;
-#define STD_PMMOD_FLAGS_PARSE_X_WARN(x_count) \
- if (UNLIKELY((x_count) > 1)) { \
- Perl_ck_warner_d(aTHX_ packWARN2(WARN_DEPRECATED, WARN_REGEXP), \
- "Having more than one /%c regexp modifier is deprecated", \
- XTENDED_PAT_MOD); \
- }
-
/* Note, includes charset ones, assumes 0 is the default for them */
#define STD_PMMOD_FLAGS_CLEAR(pmfl) \
- *(pmfl) &= ~(RXf_PMf_FOLD|RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_EXTENDED|RXf_PMf_CHARSET|RXf_PMf_NOCAPTURE)
+ *(pmfl) &= ~(RXf_PMf_FOLD|RXf_PMf_MULTILINE|RXf_PMf_SINGLELINE|RXf_PMf_EXTENDED|RXf_PMf_EXTENDED_MORE|RXf_PMf_CHARSET|RXf_PMf_NOCAPTURE)
/* chars and strings used as regex pattern modifiers
* Singular is a 'c'har, plural is a "string"
@@ -358,9 +367,8 @@ and check for NULL.
*/
/*
- Set in Perl_pmruntime if op_flags & OPf_SPECIAL, i.e. split. Will
- be used by regex engines to check whether they should set
- RXf_SKIPWHITE
+ Set in Perl_pmruntime for a split. Will be used by regex engines to
+ check whether they should set RXf_SKIPWHITE
*/
#define RXf_SPLIT RXf_PMf_SPLIT
diff --git a/Master/tlpkg/tlperl/lib/CORE/regnodes.h b/Master/tlpkg/tlperl/lib/CORE/regnodes.h
index f820c5684e6..8fe0f41d1be 100644
--- a/Master/tlpkg/tlperl/lib/CORE/regnodes.h
+++ b/Master/tlpkg/tlperl/lib/CORE/regnodes.h
@@ -7,7 +7,7 @@
/* Regops and State definitions */
#define REGNODE_MAX 92
-#define REGMATCH_STATE_MAX 132
+#define REGMATCH_STATE_MAX 134
#define END 0 /* 0000 End of program. */
#define SUCCEED 1 /* 0x01 Return from a subroutine, basically. */
@@ -107,44 +107,46 @@
/* ------------ States ------------- */
#define TRIE_next (REGNODE_MAX + 1) /* state for TRIE */
#define TRIE_next_fail (REGNODE_MAX + 2) /* state for TRIE */
-#define EVAL_AB (REGNODE_MAX + 3) /* state for EVAL */
-#define EVAL_AB_fail (REGNODE_MAX + 4) /* state for EVAL */
-#define CURLYX_end (REGNODE_MAX + 5) /* state for CURLYX */
-#define CURLYX_end_fail (REGNODE_MAX + 6) /* state for CURLYX */
-#define WHILEM_A_pre (REGNODE_MAX + 7) /* state for WHILEM */
-#define WHILEM_A_pre_fail (REGNODE_MAX + 8) /* state for WHILEM */
-#define WHILEM_A_min (REGNODE_MAX + 9) /* state for WHILEM */
-#define WHILEM_A_min_fail (REGNODE_MAX + 10) /* state for WHILEM */
-#define WHILEM_A_max (REGNODE_MAX + 11) /* state for WHILEM */
-#define WHILEM_A_max_fail (REGNODE_MAX + 12) /* state for WHILEM */
-#define WHILEM_B_min (REGNODE_MAX + 13) /* state for WHILEM */
-#define WHILEM_B_min_fail (REGNODE_MAX + 14) /* state for WHILEM */
-#define WHILEM_B_max (REGNODE_MAX + 15) /* state for WHILEM */
-#define WHILEM_B_max_fail (REGNODE_MAX + 16) /* state for WHILEM */
-#define BRANCH_next (REGNODE_MAX + 17) /* state for BRANCH */
-#define BRANCH_next_fail (REGNODE_MAX + 18) /* state for BRANCH */
-#define CURLYM_A (REGNODE_MAX + 19) /* state for CURLYM */
-#define CURLYM_A_fail (REGNODE_MAX + 20) /* state for CURLYM */
-#define CURLYM_B (REGNODE_MAX + 21) /* state for CURLYM */
-#define CURLYM_B_fail (REGNODE_MAX + 22) /* state for CURLYM */
-#define IFMATCH_A (REGNODE_MAX + 23) /* state for IFMATCH */
-#define IFMATCH_A_fail (REGNODE_MAX + 24) /* state for IFMATCH */
-#define CURLY_B_min_known (REGNODE_MAX + 25) /* state for CURLY */
-#define CURLY_B_min_known_fail (REGNODE_MAX + 26) /* state for CURLY */
-#define CURLY_B_min (REGNODE_MAX + 27) /* state for CURLY */
-#define CURLY_B_min_fail (REGNODE_MAX + 28) /* state for CURLY */
-#define CURLY_B_max (REGNODE_MAX + 29) /* state for CURLY */
-#define CURLY_B_max_fail (REGNODE_MAX + 30) /* state for CURLY */
-#define COMMIT_next (REGNODE_MAX + 31) /* state for COMMIT */
-#define COMMIT_next_fail (REGNODE_MAX + 32) /* state for COMMIT */
-#define MARKPOINT_next (REGNODE_MAX + 33) /* state for MARKPOINT */
-#define MARKPOINT_next_fail (REGNODE_MAX + 34) /* state for MARKPOINT */
-#define SKIP_next (REGNODE_MAX + 35) /* state for SKIP */
-#define SKIP_next_fail (REGNODE_MAX + 36) /* state for SKIP */
-#define CUTGROUP_next (REGNODE_MAX + 37) /* state for CUTGROUP */
-#define CUTGROUP_next_fail (REGNODE_MAX + 38) /* state for CUTGROUP */
-#define KEEPS_next (REGNODE_MAX + 39) /* state for KEEPS */
-#define KEEPS_next_fail (REGNODE_MAX + 40) /* state for KEEPS */
+#define EVAL_B (REGNODE_MAX + 3) /* state for EVAL */
+#define EVAL_B_fail (REGNODE_MAX + 4) /* state for EVAL */
+#define EVAL_postponed_AB (REGNODE_MAX + 5) /* state for EVAL */
+#define EVAL_postponed_AB_fail (REGNODE_MAX + 6) /* state for EVAL */
+#define CURLYX_end (REGNODE_MAX + 7) /* state for CURLYX */
+#define CURLYX_end_fail (REGNODE_MAX + 8) /* state for CURLYX */
+#define WHILEM_A_pre (REGNODE_MAX + 9) /* state for WHILEM */
+#define WHILEM_A_pre_fail (REGNODE_MAX + 10) /* state for WHILEM */
+#define WHILEM_A_min (REGNODE_MAX + 11) /* state for WHILEM */
+#define WHILEM_A_min_fail (REGNODE_MAX + 12) /* state for WHILEM */
+#define WHILEM_A_max (REGNODE_MAX + 13) /* state for WHILEM */
+#define WHILEM_A_max_fail (REGNODE_MAX + 14) /* state for WHILEM */
+#define WHILEM_B_min (REGNODE_MAX + 15) /* state for WHILEM */
+#define WHILEM_B_min_fail (REGNODE_MAX + 16) /* state for WHILEM */
+#define WHILEM_B_max (REGNODE_MAX + 17) /* state for WHILEM */
+#define WHILEM_B_max_fail (REGNODE_MAX + 18) /* state for WHILEM */
+#define BRANCH_next (REGNODE_MAX + 19) /* state for BRANCH */
+#define BRANCH_next_fail (REGNODE_MAX + 20) /* state for BRANCH */
+#define CURLYM_A (REGNODE_MAX + 21) /* state for CURLYM */
+#define CURLYM_A_fail (REGNODE_MAX + 22) /* state for CURLYM */
+#define CURLYM_B (REGNODE_MAX + 23) /* state for CURLYM */
+#define CURLYM_B_fail (REGNODE_MAX + 24) /* state for CURLYM */
+#define IFMATCH_A (REGNODE_MAX + 25) /* state for IFMATCH */
+#define IFMATCH_A_fail (REGNODE_MAX + 26) /* state for IFMATCH */
+#define CURLY_B_min_known (REGNODE_MAX + 27) /* state for CURLY */
+#define CURLY_B_min_known_fail (REGNODE_MAX + 28) /* state for CURLY */
+#define CURLY_B_min (REGNODE_MAX + 29) /* state for CURLY */
+#define CURLY_B_min_fail (REGNODE_MAX + 30) /* state for CURLY */
+#define CURLY_B_max (REGNODE_MAX + 31) /* state for CURLY */
+#define CURLY_B_max_fail (REGNODE_MAX + 32) /* state for CURLY */
+#define COMMIT_next (REGNODE_MAX + 33) /* state for COMMIT */
+#define COMMIT_next_fail (REGNODE_MAX + 34) /* state for COMMIT */
+#define MARKPOINT_next (REGNODE_MAX + 35) /* state for MARKPOINT */
+#define MARKPOINT_next_fail (REGNODE_MAX + 36) /* state for MARKPOINT */
+#define SKIP_next (REGNODE_MAX + 37) /* state for SKIP */
+#define SKIP_next_fail (REGNODE_MAX + 38) /* state for SKIP */
+#define CUTGROUP_next (REGNODE_MAX + 39) /* state for CUTGROUP */
+#define CUTGROUP_next_fail (REGNODE_MAX + 40) /* state for CUTGROUP */
+#define KEEPS_next (REGNODE_MAX + 41) /* state for KEEPS */
+#define KEEPS_next_fail (REGNODE_MAX + 42) /* state for KEEPS */
/* PL_regkind[] What type of regop or state is this. */
@@ -248,8 +250,10 @@ EXTCONST U8 PL_regkind[] = {
/* ------------ States ------------- */
TRIE, /* TRIE_next */
TRIE, /* TRIE_next_fail */
- EVAL, /* EVAL_AB */
- EVAL, /* EVAL_AB_fail */
+ EVAL, /* EVAL_B */
+ EVAL, /* EVAL_B_fail */
+ EVAL, /* EVAL_postponed_AB */
+ EVAL, /* EVAL_postponed_AB_fail */
CURLYX, /* CURLYX_end */
CURLYX, /* CURLYX_end_fail */
WHILEM, /* WHILEM_A_pre */
@@ -592,44 +596,46 @@ EXTCONST char * const PL_reg_name[] = {
/* ------------ States ------------- */
"TRIE_next", /* REGNODE_MAX +0x01 */
"TRIE_next_fail", /* REGNODE_MAX +0x02 */
- "EVAL_AB", /* REGNODE_MAX +0x03 */
- "EVAL_AB_fail", /* REGNODE_MAX +0x04 */
- "CURLYX_end", /* REGNODE_MAX +0x05 */
- "CURLYX_end_fail", /* REGNODE_MAX +0x06 */
- "WHILEM_A_pre", /* REGNODE_MAX +0x07 */
- "WHILEM_A_pre_fail", /* REGNODE_MAX +0x08 */
- "WHILEM_A_min", /* REGNODE_MAX +0x09 */
- "WHILEM_A_min_fail", /* REGNODE_MAX +0x0a */
- "WHILEM_A_max", /* REGNODE_MAX +0x0b */
- "WHILEM_A_max_fail", /* REGNODE_MAX +0x0c */
- "WHILEM_B_min", /* REGNODE_MAX +0x0d */
- "WHILEM_B_min_fail", /* REGNODE_MAX +0x0e */
- "WHILEM_B_max", /* REGNODE_MAX +0x0f */
- "WHILEM_B_max_fail", /* REGNODE_MAX +0x10 */
- "BRANCH_next", /* REGNODE_MAX +0x11 */
- "BRANCH_next_fail", /* REGNODE_MAX +0x12 */
- "CURLYM_A", /* REGNODE_MAX +0x13 */
- "CURLYM_A_fail", /* REGNODE_MAX +0x14 */
- "CURLYM_B", /* REGNODE_MAX +0x15 */
- "CURLYM_B_fail", /* REGNODE_MAX +0x16 */
- "IFMATCH_A", /* REGNODE_MAX +0x17 */
- "IFMATCH_A_fail", /* REGNODE_MAX +0x18 */
- "CURLY_B_min_known", /* REGNODE_MAX +0x19 */
- "CURLY_B_min_known_fail", /* REGNODE_MAX +0x1a */
- "CURLY_B_min", /* REGNODE_MAX +0x1b */
- "CURLY_B_min_fail", /* REGNODE_MAX +0x1c */
- "CURLY_B_max", /* REGNODE_MAX +0x1d */
- "CURLY_B_max_fail", /* REGNODE_MAX +0x1e */
- "COMMIT_next", /* REGNODE_MAX +0x1f */
- "COMMIT_next_fail", /* REGNODE_MAX +0x20 */
- "MARKPOINT_next", /* REGNODE_MAX +0x21 */
- "MARKPOINT_next_fail", /* REGNODE_MAX +0x22 */
- "SKIP_next", /* REGNODE_MAX +0x23 */
- "SKIP_next_fail", /* REGNODE_MAX +0x24 */
- "CUTGROUP_next", /* REGNODE_MAX +0x25 */
- "CUTGROUP_next_fail", /* REGNODE_MAX +0x26 */
- "KEEPS_next", /* REGNODE_MAX +0x27 */
- "KEEPS_next_fail", /* REGNODE_MAX +0x28 */
+ "EVAL_B", /* REGNODE_MAX +0x03 */
+ "EVAL_B_fail", /* REGNODE_MAX +0x04 */
+ "EVAL_postponed_AB", /* REGNODE_MAX +0x05 */
+ "EVAL_postponed_AB_fail", /* REGNODE_MAX +0x06 */
+ "CURLYX_end", /* REGNODE_MAX +0x07 */
+ "CURLYX_end_fail", /* REGNODE_MAX +0x08 */
+ "WHILEM_A_pre", /* REGNODE_MAX +0x09 */
+ "WHILEM_A_pre_fail", /* REGNODE_MAX +0x0a */
+ "WHILEM_A_min", /* REGNODE_MAX +0x0b */
+ "WHILEM_A_min_fail", /* REGNODE_MAX +0x0c */
+ "WHILEM_A_max", /* REGNODE_MAX +0x0d */
+ "WHILEM_A_max_fail", /* REGNODE_MAX +0x0e */
+ "WHILEM_B_min", /* REGNODE_MAX +0x0f */
+ "WHILEM_B_min_fail", /* REGNODE_MAX +0x10 */
+ "WHILEM_B_max", /* REGNODE_MAX +0x11 */
+ "WHILEM_B_max_fail", /* REGNODE_MAX +0x12 */
+ "BRANCH_next", /* REGNODE_MAX +0x13 */
+ "BRANCH_next_fail", /* REGNODE_MAX +0x14 */
+ "CURLYM_A", /* REGNODE_MAX +0x15 */
+ "CURLYM_A_fail", /* REGNODE_MAX +0x16 */
+ "CURLYM_B", /* REGNODE_MAX +0x17 */
+ "CURLYM_B_fail", /* REGNODE_MAX +0x18 */
+ "IFMATCH_A", /* REGNODE_MAX +0x19 */
+ "IFMATCH_A_fail", /* REGNODE_MAX +0x1a */
+ "CURLY_B_min_known", /* REGNODE_MAX +0x1b */
+ "CURLY_B_min_known_fail", /* REGNODE_MAX +0x1c */
+ "CURLY_B_min", /* REGNODE_MAX +0x1d */
+ "CURLY_B_min_fail", /* REGNODE_MAX +0x1e */
+ "CURLY_B_max", /* REGNODE_MAX +0x1f */
+ "CURLY_B_max_fail", /* REGNODE_MAX +0x20 */
+ "COMMIT_next", /* REGNODE_MAX +0x21 */
+ "COMMIT_next_fail", /* REGNODE_MAX +0x22 */
+ "MARKPOINT_next", /* REGNODE_MAX +0x23 */
+ "MARKPOINT_next_fail", /* REGNODE_MAX +0x24 */
+ "SKIP_next", /* REGNODE_MAX +0x25 */
+ "SKIP_next_fail", /* REGNODE_MAX +0x26 */
+ "CUTGROUP_next", /* REGNODE_MAX +0x27 */
+ "CUTGROUP_next_fail", /* REGNODE_MAX +0x28 */
+ "KEEPS_next", /* REGNODE_MAX +0x29 */
+ "KEEPS_next_fail", /* REGNODE_MAX +0x2a */
};
#endif /* DOINIT */
diff --git a/Master/tlpkg/tlperl/lib/CORE/scope.h b/Master/tlpkg/tlperl/lib/CORE/scope.h
index 9a504f1bfd8..88c182dc032 100644
--- a/Master/tlpkg/tlperl/lib/CORE/scope.h
+++ b/Master/tlpkg/tlperl/lib/CORE/scope.h
@@ -8,7 +8,7 @@
*
*/
-/* *** these are ordered by number of of auto-popped args */
+/* *** Update arg_counts[] in scope.c if you modify these */
/* zero args */
@@ -17,8 +17,6 @@
#define SAVEt_CLEARSV 2
#define SAVEt_REGCONTEXT 3
-#define SAVEt_ARG0_MAX 3
-
/* one arg */
#define SAVEt_TMPSFLOOR 4
@@ -41,8 +39,6 @@
#define SAVEt_READONLY_OFF 21
#define SAVEt_FREEPADNAME 22
-#define SAVEt_ARG1_MAX 22
-
/* two args */
#define SAVEt_AV 23
@@ -71,8 +67,6 @@
#define SAVEt_ADELETE 46
#define SAVEt_APTR 47
-#define SAVEt_ARG2_MAX 47
-
/* three args */
#define SAVEt_HELEM 48
@@ -173,20 +167,16 @@ Opening bracket on a callback. See C<L</LEAVE>> and L<perlcall>.
=for apidoc Ams||LEAVE
Closing bracket on a callback. See C<L</ENTER>> and L<perlcall>.
-=over
+=for apidoc Ams||ENTER_with_name(name)
-=item ENTER_with_name(name)
-
-Same as C<ENTER>, but when debugging is enabled it also associates the
+Same as C<L</ENTER>>, but when debugging is enabled it also associates the
given literal string with the new scope.
-=item LEAVE_with_name(name)
+=for apidoc Ams||LEAVE_with_name(name)
-Same as C<LEAVE>, but when debugging is enabled it first checks that the
+Same as C<L</LEAVE>>, but when debugging is enabled it first checks that the
scope has the given name. C<name> must be a C<NUL>-terminated literal string.
-=back
-
=cut
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/sv.h b/Master/tlpkg/tlperl/lib/CORE/sv.h
index bfda6bf6cb1..51e9b0ba664 100644
--- a/Master/tlpkg/tlperl/lib/CORE/sv.h
+++ b/Master/tlpkg/tlperl/lib/CORE/sv.h
@@ -155,14 +155,15 @@ typedef enum {
/* *** any alterations to the SV types above need to be reflected in
* SVt_MASK and the various PL_valid_types_* tables. As of this writing those
* tables are in perl.h. There are also two affected names tables in dump.c,
- * one in B.xs, and 'bodies_by_type[]' in sv.c */
+ * one in B.xs, and 'bodies_by_type[]' in sv.c.
+ *
+ * The bits that match 0xf0 are CURRENTLY UNUSED, except that 0xFF means a
+ * freed SV. The bits above that are for flags, like SVf_IOK */
#define SVt_MASK 0xf /* smallest bitmask that covers all types */
#ifndef PERL_CORE
-/* Although Fast Boyer Moore tables are now being stored in PVGVs, for most
- purposes external code wanting to consider PVBM probably needs to think of
- PVMG instead. */
+/* Fast Boyer Moore tables are now stored in magic attached to PVMGs */
# define SVt_PVBM SVt_PVMG
/* Anything wanting to create a reference from clean should ensure that it has
a scalar of type SVt_IV now: */
@@ -269,7 +270,8 @@ struct p5rx {
=head1 SV Manipulation Functions
=for apidoc Am|U32|SvREFCNT|SV* sv
-Returns the value of the object's reference count.
+Returns the value of the object's reference count. Exposed
+to perl code via Internals::SvREFCNT().
=for apidoc Am|SV*|SvREFCNT_inc|SV* sv
Increments the reference count of the given SV, returning the SV.
@@ -368,14 +370,22 @@ perform the upgrade if necessary. See C<L</svtype>>.
#define SVp_IOK 0x00001000 /* has valid non-public integer value */
#define SVp_NOK 0x00002000 /* has valid non-public numeric value */
#define SVp_POK 0x00004000 /* has valid non-public pointer value */
-#define SVp_SCREAM 0x00008000 /* method name is DOES */
- /* eval cx text is ref counted */
+#define SVp_SCREAM 0x00008000 /* currently unused on plain scalars */
#define SVphv_CLONEABLE SVp_SCREAM /* PVHV (stashes) clone its objects */
#define SVpgv_GP SVp_SCREAM /* GV has a valid GP */
#define SVprv_PCS_IMPORTED SVp_SCREAM /* RV is a proxy for a constant
subroutine in another package. Set the
GvIMPORTED_CV_on() if it needs to be
expanded to a real GV */
+
+/* SVf_PROTECT is what SVf_READONLY should have been: i.e. modifying
+ * this SV is completely illegal. However, SVf_READONLY (via
+ * Internals::SvREADONLY()) has come to be seen as a flag that can be
+ * temporarily set and unset by the user to indicate e.g. whether a hash
+ * is "locked". Now, Hash::Util et al only set SVf_READONLY, while core
+ * sets both (SVf_READONLY|SVf_PROTECT) to indicate both to core and user
+ * code that this SV should not be messed with.
+ */
#define SVf_PROTECT 0x00010000 /* very read-only */
#define SVs_PADTMP 0x00020000 /* in use as tmp */
#define SVs_PADSTALE 0x00040000 /* lexical has gone out of scope;
@@ -415,7 +425,12 @@ perform the upgrade if necessary. See C<L</svtype>>.
#define PRIVSHIFT 4 /* (SVp_?OK >> PRIVSHIFT) == SVf_?OK */
-/* Note that SVf_AMAGIC is now only set on stashes. */
+/* SVf_AMAGIC means that the stash *may* have have overload methods. It's
+ * set each time a function is compiled into a stash, and is reset by the
+ * overload code when called for the first time and finds that there are
+ * no overload methods. Note that this used to be set on the object; but
+ * is now only set on stashes.
+ */
#define SVf_AMAGIC 0x10000000 /* has magical overloaded methods */
#define SVf_IsCOW 0x10000000 /* copy on write (shared hash key if
SvLEN == 0) */
@@ -437,28 +452,10 @@ perform the upgrade if necessary. See C<L</svtype>>.
/* Some private flags. */
-/* The SVp_SCREAM|SVpbm_VALID (0x40008000) combination is up for grabs.
- Formerly it was used for pad names, but now it is available. The core
- is careful to avoid setting both flags.
-
- SVf_POK, SVp_POK also set:
- 0x00004400 Normal
- 0x0000C400 method name for DOES (SvSCREAM)
- 0x40004400 FBM compiled (SvVALID)
- 0x4000C400 *** Formerly used for pad names ***
-
- 0x00008000 GV with GP
- 0x00008800 RV with PCS imported
-*/
/* PVAV */
#define SVpav_REAL 0x40000000 /* free old entries */
/* PVHV */
#define SVphv_LAZYDEL 0x40000000 /* entry in xhv_eiter must be deleted */
-/* This is only set true on a PVGV when it's playing "PVBM", but is tested for
- on any regular scalar (anything <= PVLV) */
-#define SVpbm_VALID 0x40000000
-/* Only used in toke.c on an SV stored in PL_lex_repl */
-#define SVrepl_EVAL 0x40000000 /* Replacement part of s///e */
/* IV, PVIV, PVNV, PVMG, PVGV and (I assume) PVLV */
#define SVf_IVisUV 0x80000000 /* use XPVUV instead of XPVIV */
@@ -466,8 +463,6 @@ perform the upgrade if necessary. See C<L</svtype>>.
#define SVpav_REIFY 0x80000000 /* can become real */
/* PVHV */
#define SVphv_HASKFLAGS 0x80000000 /* keys have flag byte after hash */
-/* PVGV when SVpbm_VALID is true */
-#define SVpbm_TAIL 0x80000000 /* string has a fake "\n" appended */
/* RV upwards. However, SVf_ROK and SVp_IOK are exclusive */
#define SVprv_WEAKREF 0x80000000 /* Weak reference */
/* pad name vars only */
@@ -486,16 +481,16 @@ perform the upgrade if necessary. See C<L</svtype>>.
union _xnvu {
NV xnv_nv; /* numeric value, if any */
HV * xgv_stash;
- struct {
- U32 xlow;
- U32 xhigh;
- } xpad_cop_seq; /* used by pad.c for cop_sequence */
+ line_t xnv_lines; /* used internally by S_scan_subst() */
+ bool xnv_bm_tail; /* an SvVALID (BM) SV has an implicit "\n" */
};
union _xivu {
IV xivu_iv; /* integer value */
UV xivu_uv;
HEK * xivu_namehek; /* xpvlv, xpvgv: GvNAME */
+ bool xivu_eval_seen; /* used internally by S_scan_subst() */
+
};
union _xmgu {
@@ -546,7 +541,8 @@ struct xpvlv {
SV* xlv_targ;
char xlv_type; /* k=keys .=pos x=substr v=vec /=join/re
* y=alem/helem/iter t=tie T=tied HE */
- char xlv_flags; /* 1 = negative offset 2 = negative len */
+ char xlv_flags; /* 1 = negative offset 2 = negative len
+ 4 = out of range (vec) */
};
#define xlv_targoff xlv_targoff_u.xlvu_targoff
@@ -563,8 +559,8 @@ struct xpvinvlist {
the list, merely toggle this flag */
};
-/* This structure works in 3 ways - regular scalar, GV with GP, or fast
- Boyer-Moore. */
+/* This structure works in 2 ways - regular scalar, or GV with GP */
+
struct xpvgv {
_XPV_HEAD;
union _xivu xiv_u;
@@ -617,7 +613,7 @@ struct xpvio {
* Perl_filter_add() tries to do with the dirp), hence the
* following union trick (as suggested by Gurusamy Sarathy).
* For further information see Geir Johansen's problem report
- * titled [ID 20000612.002] Perl problem on Cray system
+ * titled [ID 20000612.002 (#3366)] Perl problem on Cray system
* The any pointer (known as IoANY()) will also be a good place
* to hang any IO disciplines to.
*/
@@ -1089,6 +1085,22 @@ C<sv_force_normal> does nothing.
#define SvOBJECT_on(sv) (SvFLAGS(sv) |= SVs_OBJECT)
#define SvOBJECT_off(sv) (SvFLAGS(sv) &= ~SVs_OBJECT)
+/*
+=for apidoc Am|U32|SvREADONLY|SV* sv
+Returns true if the argument is readonly, otherwise returns false.
+Exposed to to perl code via Internals::SvREADONLY().
+
+=for apidoc Am|U32|SvREADONLY_on|SV* sv
+Mark an object as readonly. Exactly what this means depends on the object
+type. Exposed to perl code via Internals::SvREADONLY().
+
+=for apidoc Am|U32|SvREADONLY_off|SV* sv
+Mark an object as not-readonly. Exactly what this mean depends on the
+object type. Exposed to perl code via Internals::SvREADONLY().
+
+=cut
+*/
+
#define SvREADONLY(sv) (SvFLAGS(sv) & (SVf_READONLY|SVf_PROTECT))
#ifdef PERL_CORE
# define SvREADONLY_on(sv) (SvFLAGS(sv) |= (SVf_READONLY|SVf_PROTECT))
@@ -1108,44 +1120,28 @@ C<sv_force_normal> does nothing.
# define SvCOMPILED_off(sv)
#endif
-#define SvEVALED(sv) (SvFLAGS(sv) & SVrepl_EVAL)
-#define SvEVALED_on(sv) (SvFLAGS(sv) |= SVrepl_EVAL)
-#define SvEVALED_off(sv) (SvFLAGS(sv) &= ~SVrepl_EVAL)
#if defined (DEBUGGING) && defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
-# define SvVALID(sv) ({ const SV *const _svvalid = (const SV*)(sv); \
- if (SvFLAGS(_svvalid) & SVpbm_VALID && !SvSCREAM(_svvalid)) \
- assert(!isGV_with_GP(_svvalid)); \
- (SvFLAGS(_svvalid) & SVpbm_VALID); \
- })
-# define SvVALID_on(sv) ({ SV *const _svvalid = MUTABLE_SV(sv); \
- assert(!isGV_with_GP(_svvalid)); \
- assert(!SvSCREAM(_svvalid)); \
- (SvFLAGS(_svvalid) |= SVpbm_VALID); \
- })
-# define SvVALID_off(sv) ({ SV *const _svvalid = MUTABLE_SV(sv); \
- assert(!isGV_with_GP(_svvalid)); \
- assert(!SvSCREAM(_svvalid)); \
- (SvFLAGS(_svvalid) &= ~SVpbm_VALID); \
- })
-
# define SvTAIL(sv) ({ const SV *const _svtail = (const SV *)(sv); \
assert(SvTYPE(_svtail) != SVt_PVAV); \
assert(SvTYPE(_svtail) != SVt_PVHV); \
- assert(!SvSCREAM(_svtail)); \
- (SvFLAGS(sv) & (SVpbm_TAIL|SVpbm_VALID)) \
- == (SVpbm_TAIL|SVpbm_VALID); \
+ assert(!(SvFLAGS(_svtail) & (SVf_NOK|SVp_NOK))); \
+ assert(SvVALID(_svtail)); \
+ ((XPVNV*)SvANY(_svtail))->xnv_u.xnv_bm_tail; \
})
#else
-# define SvVALID(sv) ((SvFLAGS(sv) & SVpbm_VALID) && !SvSCREAM(sv))
-# define SvVALID_on(sv) (SvFLAGS(sv) |= SVpbm_VALID)
-# define SvVALID_off(sv) (SvFLAGS(sv) &= ~SVpbm_VALID)
-# define SvTAIL(sv) ((SvFLAGS(sv) & (SVpbm_TAIL|SVpbm_VALID)) \
- == (SVpbm_TAIL|SVpbm_VALID))
-
+# define SvTAIL(_svtail) (((XPVNV*)SvANY(_svtail))->xnv_u.xnv_bm_tail)
#endif
-#define SvTAIL_on(sv) (SvFLAGS(sv) |= SVpbm_TAIL)
-#define SvTAIL_off(sv) (SvFLAGS(sv) &= ~SVpbm_TAIL)
+
+/* Does the SV have a Boyer-Moore table attached as magic?
+ * 'VALID' is a poor name, but is kept for historical reasons. */
+#define SvVALID(_svvalid) ( \
+ SvPOKp(_svvalid) \
+ && SvSMAGICAL(_svvalid) \
+ && SvMAGIC(_svvalid) \
+ && (SvMAGIC(_svvalid)->mg_type == PERL_MAGIC_bm \
+ || mg_find(_svvalid, PERL_MAGIC_bm)) \
+ )
#define SvRVx(sv) SvRV(sv)
@@ -1525,43 +1521,58 @@ Like C<SvPV> but doesn't set a length variable.
Like C<SvPV_nolen> but doesn't process magic.
=for apidoc Am|IV|SvIV|SV* sv
-Coerces the given SV to an integer and returns it. See C<L</SvIVx>> for a
-version which guarantees to evaluate C<sv> only once.
+Coerces the given SV to IV and returns it. The returned value in many
+circumstances will get stored in C<sv>'s IV slot, but not in all cases. (Use
+C<L</sv_setiv>> to make sure it does).
+
+See C<L</SvIVx>> for a version which guarantees to evaluate C<sv> only once.
=for apidoc Am|IV|SvIV_nomg|SV* sv
Like C<SvIV> but doesn't process magic.
=for apidoc Am|IV|SvIVx|SV* sv
-Coerces the given SV to an integer and returns it.
-Guarantees to evaluate C<sv> only once. Only use
-this if C<sv> is an expression with side effects,
-otherwise use the more efficient C<SvIV>.
+Coerces the given SV to IV and returns it. The returned value in many
+circumstances will get stored in C<sv>'s IV slot, but not in all cases. (Use
+C<L</sv_setiv>> to make sure it does).
+
+This form guarantees to evaluate C<sv> only once. Only use this if C<sv> is an
+expression with side effects, otherwise use the more efficient C<SvIV>.
=for apidoc Am|NV|SvNV|SV* sv
-Coerce the given SV to a double and return it. See C<L</SvNVx>> for a version
-which guarantees to evaluate C<sv> only once.
+Coerces the given SV to NV and returns it. The returned value in many
+circumstances will get stored in C<sv>'s NV slot, but not in all cases. (Use
+C<L</sv_setnv>> to make sure it does).
+
+See C<L</SvNVx>> for a version which guarantees to evaluate C<sv> only once.
=for apidoc Am|NV|SvNV_nomg|SV* sv
Like C<SvNV> but doesn't process magic.
=for apidoc Am|NV|SvNVx|SV* sv
-Coerces the given SV to a double and returns it.
-Guarantees to evaluate C<sv> only once. Only use
-this if C<sv> is an expression with side effects,
-otherwise use the more efficient C<SvNV>.
+Coerces the given SV to NV and returns it. The returned value in many
+circumstances will get stored in C<sv>'s NV slot, but not in all cases. (Use
+C<L</sv_setnv>> to make sure it does).
+
+This form guarantees to evaluate C<sv> only once. Only use this if C<sv> is an
+expression with side effects, otherwise use the more efficient C<SvNV>.
=for apidoc Am|UV|SvUV|SV* sv
-Coerces the given SV to an unsigned integer and returns it. See C<L</SvUVx>>
-for a version which guarantees to evaluate C<sv> only once.
+Coerces the given SV to UV and returns it. The returned value in many
+circumstances will get stored in C<sv>'s UV slot, but not in all cases. (Use
+C<L</sv_setuv>> to make sure it does).
+
+See C<L</SvUVx>> for a version which guarantees to evaluate C<sv> only once.
=for apidoc Am|UV|SvUV_nomg|SV* sv
Like C<SvUV> but doesn't process magic.
=for apidoc Am|UV|SvUVx|SV* sv
-Coerces the given SV to an unsigned integer and
-returns it. Guarantees to evaluate C<sv> only once. Only
-use this if C<sv> is an expression with side effects,
-otherwise use the more efficient C<SvUV>.
+Coerces the given SV to UV and returns it. The returned value in many
+circumstances will get stored in C<sv>'s UV slot, but not in all cases. (Use
+C<L</sv_setuv>> to make sure it does).
+
+This form guarantees to evaluate C<sv> only once. Only use this if C<sv> is an
+expression with side effects, otherwise use the more efficient C<SvUV>.
=for apidoc Am|bool|SvTRUE|SV* sv
Returns a boolean indicating whether Perl would evaluate the SV as true or
@@ -1814,10 +1825,10 @@ Like C<sv_utf8_upgrade>, but doesn't do magic on C<sv>.
#define SvSHARED_HASH(sv) (0 + SvSHARED_HEK_FROM_PV(SvPVX_const(sv))->hek_hash)
/* flag values for sv_*_flags functions */
+#define SV_UTF8_NO_ENCODING 0 /* No longer used */
#define SV_IMMEDIATE_UNREF 1
#define SV_GMAGIC 2
#define SV_COW_DROP_PV 4
-#define SV_UTF8_NO_ENCODING 8
#define SV_NOSTEAL 16
#define SV_CONST_RETURN 32
#define SV_MUTABLE_RETURN 64
@@ -2021,9 +2032,17 @@ Returns a pointer to the character
buffer. SV must be of type >= C<SVt_PV>. One
alternative is to call C<sv_grow> if you are not sure of the type of SV.
+You might mistakenly think that C<len> is the number of bytes to add to the
+existing size, but instead it is the total size C<sv> should be.
+
+=for apidoc Am|char *|SvPVCLEAR|SV* sv
+Ensures that sv is a SVt_PV and that its SvCUR is 0, and that it is
+properly null terminated. Equivalent to sv_setpvs(""), but more efficient.
+
=cut
*/
+#define SvPVCLEAR(sv) sv_setpv_bufsize(sv,0,0)
#define SvSHARE(sv) PL_sharehook(aTHX_ sv)
#define SvLOCK(sv) PL_lockhook(aTHX_ sv)
#define SvUNLOCK(sv) PL_unlockhook(aTHX_ sv)
diff --git a/Master/tlpkg/tlperl/lib/CORE/time64.h b/Master/tlpkg/tlperl/lib/CORE/time64.h
index 6f60bce8330..78efc73489b 100644
--- a/Master/tlpkg/tlperl/lib/CORE/time64.h
+++ b/Master/tlpkg/tlperl/lib/CORE/time64.h
@@ -32,7 +32,8 @@ struct TM64 {
* Otherwise, if we are on android, use const but
* not with g++.
*/
-# if defined(__GLIBC__) || (defined(__ANDROID__) && !defined(__cplusplus)) || defined(__QNX__)
+# if defined(__GLIBC__) || (defined(__ANDROID__) && !defined(__cplusplus)) \
+ || defined(__QNX__) || defined(__CYGWIN__)
const
# endif
char *tm_zone;
diff --git a/Master/tlpkg/tlperl/lib/CORE/uconfig.h b/Master/tlpkg/tlperl/lib/CORE/uconfig.h
index c050a08328e..6832f6f73d7 100644
--- a/Master/tlpkg/tlperl/lib/CORE/uconfig.h
+++ b/Master/tlpkg/tlperl/lib/CORE/uconfig.h
@@ -182,7 +182,7 @@
/*#define HAS_GETLOGIN / **/
/* HAS_GETPGID:
- * This symbol, if defined, indicates to the C program that
+ * This symbol, if defined, indicates to the C program that
* the getpgid(pid) function is available to get the
* process group id.
*/
@@ -641,8 +641,8 @@
* This symbol holds the type used for the second argument to
* getgroups() and setgroups(). Usually, this is the same as
* gidtype (gid_t) , but sometimes it isn't.
- * It can be int, ushort, gid_t, etc...
- * It may be necessary to include <sys/types.h> to get any
+ * It can be int, ushort, gid_t, etc...
+ * It may be necessary to include <sys/types.h> to get any
* typedef'ed information. This is only required if you have
* getgroups() or setgroups()..
*/
@@ -1398,8 +1398,8 @@
* 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 "/usr/local/lib/perl5/5.24/unknown" / **/
-/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.24/unknown" / **/
+/*#define ARCHLIB "/usr/local/lib/perl5/5.26/unknown" / **/
+/*#define ARCHLIB_EXP "/usr/local/lib/perl5/5.26/unknown" / **/
/* BIN:
* This symbol holds the path of the bin directory where the package will
@@ -1452,8 +1452,8 @@
* 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 "/usr/local/lib/perl5/5.24" /**/
-#define PRIVLIB_EXP "/usr/local/lib/perl5/5.24" /**/
+#define PRIVLIB "/usr/local/lib/perl5/5.26" /**/
+#define PRIVLIB_EXP "/usr/local/lib/perl5/5.26" /**/
/* SITEARCH:
* This symbol contains the name of the private library for this package.
@@ -1470,8 +1470,8 @@
* 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 "/usr/local/lib/perl5/5.24/unknown" / **/
-/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.24/unknown" / **/
+/*#define SITEARCH "/usr/local/lib/perl5/5.26/unknown" / **/
+/*#define SITEARCH_EXP "/usr/local/lib/perl5/5.26/unknown" / **/
/* SITELIB:
* This symbol contains the name of the private library for this package.
@@ -1493,8 +1493,8 @@
* 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 "/usr/local/lib/perl5/5.24" /**/
-#define SITELIB_EXP "/usr/local/lib/perl5/5.24" /**/
+#define SITELIB "/usr/local/lib/perl5/5.26" /**/
+#define SITELIB_EXP "/usr/local/lib/perl5/5.26" /**/
#define SITELIB_STEM "/usr/local/lib/perl5" /**/
/* PERL_VENDORARCH:
@@ -1907,9 +1907,34 @@
* LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE
* LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE
* LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE
+ * LONG_DOUBLE_IS_VAX_H_FLOAT
* LONG_DOUBLE_IS_UNKNOWN_FORMAT
* It is only defined if the system supports long doubles.
*/
+/* LONG_DOUBLE_STYLE_IEEE:
+ * This symbol, if defined, indicates that the long double
+ * is any of the IEEE 754 style long doubles:
+ * LONG_DOUBLE_STYLE_IEEE_STD, LONG_DOUBLE_STYLE_IEEE_EXTENDED,
+ * LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE.
+ */
+/* LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE:
+ * This symbol, if defined, indicates that the long double is
+ * the 128-bit double-double.
+ */
+/* LONG_DOUBLE_STYLE_IEEE_EXTENDED:
+ * This symbol, if defined, indicates that the long double is
+ * the 80-bit IEEE 754. Note that despite the 'extended' this
+ * is less than the 'std', since this is an extension of
+ * the double precision.
+ */
+/* LONG_DOUBLE_STYLE_IEEE_STD:
+ * This symbol, if defined, indicates that the long double is
+ * the 128-bit IEEE 754.
+ */
+/* LONG_DOUBLE_STYLE_VAX:
+ * This symbol, if defined, indicates that the long double is
+ * the 128-bit VAX format H.
+ */
/*#define HAS_LDEXPL / **/
/*#define HAS_LONG_DOUBLE / **/
#ifdef HAS_LONG_DOUBLE
@@ -1924,9 +1949,15 @@
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE 6
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE 7
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE 8
+#define LONG_DOUBLE_IS_VAX_H_FLOAT 9
#define LONG_DOUBLE_IS_UNKNOWN_FORMAT -1
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE /* back-compat */
#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE /* back-compat */
+#undef LONG_DOUBLE_STYLE_IEEE
+#undef LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE
+#undef LONG_DOUBLE_STYLE_IEEE_EXTENDED
+#undef LONG_DOUBLE_STYLE_IEEE_STD
+#undef LONG_DOUBLE_STYLE_VAX
#endif
/* HAS_LONG_LONG:
@@ -2845,6 +2876,13 @@
*/
/*#define HAS_FUTIMES / **/
+/* HAS_GAI_STRERROR:
+ * This symbol, if defined, indicates that the gai_strerror routine
+ * is available to translate error codes returned by getaddrinfo()
+ * into human readable strings.
+ */
+/*#define HAS_GAI_STRERROR / **/
+
/* HAS_GETADDRINFO:
* This symbol, if defined, indicates that the getaddrinfo() function
* is available for use.
@@ -3211,9 +3249,19 @@
* This symbol, if defined, indicates that the uselocale routine is
* available to set the current locale for the calling thread.
*/
+/* HAS_QUERYLOCALE:
+ * This symbol, if defined, indicates that the querylocale routine is
+ * available to return the name of the locale for a category mask.
+ */
+/* I_XLOCALE:
+ * This symbol, if defined, indicates to the C program that it should
+ * include <xlocale.h> to get uselocale() and its friends.
+ */
/*#define HAS_NEWLOCALE / **/
/*#define HAS_FREELOCALE / **/
/*#define HAS_USELOCALE / **/
+/*#define HAS_QUERYLOCALE / **/
+/*#define I_XLOCALE / **/
/* HAS_NEXTAFTER:
* This symbol, if defined, indicates that the nextafter routine is
@@ -3467,6 +3515,13 @@
*/
/*#define HAS_FSTATVFS / **/
+/* HAS_STRERROR_L:
+ * This symbol, if defined, indicates that the strerror_l routine is
+ * available to return the error message for a given errno value in
+ * a particular locale (identified by a locale_t object).
+ */
+/*#define HAS_STRERROR_L / **/
+
/* HAS_STRFTIME:
* This symbol, if defined, indicates that the strftime routine is
* available to do time formatting.
@@ -3646,6 +3701,12 @@
*/
/*#define HAS_WRITEV / **/
+/* DEFAULT_INC_EXCLUDES_DOT:
+ * This symbol, if defined, removes the legacy default behavior of
+ * including '.' at the end of @INC.
+ */
+/*#define DEFAULT_INC_EXCLUDES_DOT / **/
+
/* USE_DYNAMIC_LOADING:
* This symbol, if defined, indicates that dynamic loading of
* some sort is available.
@@ -3918,8 +3979,46 @@
* DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN
* DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE
* DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE
+ * DOUBLE_IS_VAX_F_FLOAT
+ * DOUBLE_IS_VAX_D_FLOAT
+ * DOUBLE_IS_VAX_G_FLOAT
+ * DOUBLE_IS_IBM_SINGLE_32_BIT
+ * DOUBLE_IS_IBM_DOUBLE_64_BIT
+ * DOUBLE_IS_CRAY_SINGLE_64_BIT
* DOUBLE_IS_UNKNOWN_FORMAT
*/
+/* DOUBLE_HAS_INF:
+ * This symbol, if defined, indicates that the double has
+ * the infinity.
+ */
+/* DOUBLE_HAS_NAN:
+ * This symbol, if defined, indicates that the double has
+ * the not-a-number.
+ */
+/* DOUBLE_HAS_NEGATIVE_ZERO:
+ * This symbol, if defined, indicates that the double has
+ * the negative_zero.
+ */
+/* DOUBLE_HAS_SUBNORMALS:
+ * This symbol, if defined, indicates that the double has
+ * the subnormals (denormals).
+ */
+/* DOUBLE_STYLE_CRAY:
+ * This symbol, if defined, indicates that the double is
+ * the 64-bit CRAY mainframe format.
+ */
+/* DOUBLE_STYLE_IBM:
+ * This symbol, if defined, indicates that the double is
+ * the 64-bit IBM mainframe format.
+ */
+/* DOUBLE_STYLE_IEEE:
+ * This symbol, if defined, indicates that the double is
+ * the 64-bit IEEE 754.
+ */
+/* DOUBLE_STYLE_VAX:
+ * This symbol, if defined, indicates that the double is
+ * the 64-bit VAX format D or G.
+ */
#define DOUBLEKIND 3 /**/
#define DOUBLE_IS_IEEE_754_32_BIT_LITTLE_ENDIAN 1
#define DOUBLE_IS_IEEE_754_32_BIT_BIG_ENDIAN 2
@@ -3929,11 +4028,25 @@
#define DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 6
#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_LE_BE 7
#define DOUBLE_IS_IEEE_754_64_BIT_MIXED_ENDIAN_BE_LE 8
+#define DOUBLE_IS_VAX_F_FLOAT 9
+#define DOUBLE_IS_VAX_D_FLOAT 10
+#define DOUBLE_IS_VAX_G_FLOAT 11
+#define DOUBLE_IS_IBM_SINGLE_32_BIT 12
+#define DOUBLE_IS_IBM_DOUBLE_64_BIT 13
+#define DOUBLE_IS_CRAY_SINGLE_64_BIT 14
#define DOUBLE_IS_UNKNOWN_FORMAT -1
/*#define PERL_PRIfldbl "llf" / **/
/*#define PERL_PRIgldbl "llg" / **/
/*#define PERL_PRIeldbl "lle" / **/
/*#define PERL_SCNfldbl "llf" / **/
+#define DOUBLE_HAS_INF
+#define DOUBLE_HAS_NAN
+#define DOUBLE_HAS_NEGATIVE_ZERO
+#define DOUBLE_HAS_SUBNORMALS
+#undef DOUBLE_STYLE_CRAY
+#undef DOUBLE_STYLE_IBM
+#define DOUBLE_STYLE_IEEE
+#undef DOUBLE_STYLE_VAX
/* DOUBLEMANTBITS:
* This symbol, if defined, tells how many mantissa bits
@@ -5241,6 +5354,6 @@
#endif
/* Generated from:
- * ce61c4f18e82f6356cdae44c5336ceac1d3253033d7449651927f5633be5c3c2 config_h.SH
- * fc611849cb5b1e14ec1687b255dac15414cc5e2e11b192d94e08136cfe277f75 uconfig.sh
+ * a0cea6273c16c1c5d8625665c84bda01926ce960c26873d4e5596b5b02a53e92 config_h.SH
+ * b1c042726e6a17692921b6947c4e7c196c5c0cee011667ba719b15af7c31e669 uconfig.sh
* ex: set ro: */
diff --git a/Master/tlpkg/tlperl/lib/CORE/unicode_constants.h b/Master/tlpkg/tlperl/lib/CORE/unicode_constants.h
index bffaffedb2e..1c0e62e3569 100755
--- a/Master/tlpkg/tlperl/lib/CORE/unicode_constants.h
+++ b/Master/tlpkg/tlperl/lib/CORE/unicode_constants.h
@@ -21,7 +21,31 @@
* "_TAIL" if instead it represents all but the first byte. This, and
* with no additional suffix are both string constants */
-#define UNICODE_MAJOR_VERSION 8
+/*
+=head1 Unicode Support
+
+=for apidoc AmU|placeholder|BOM_UTF8
+
+This is a macro that evaluates to a string constant of the UTF-8 bytes that
+define the Unicode BYTE ORDER MARK (U+FEFF) for the platform that perl
+is compiled on. This allows code to use a mnemonic for this character that
+works on both ASCII and EBCDIC platforms.
+S<C<sizeof(BOM_UTF8) - 1>> can be used to get its length in
+bytes.
+
+=for apidoc AmU|placeholder|REPLACEMENT_CHARACTER_UTF8
+
+This is a macro that evaluates to a string constant of the UTF-8 bytes that
+define the Unicode REPLACEMENT CHARACTER (U+FFFD) for the platform that perl
+is compiled on. This allows code to use a mnemonic for this character that
+works on both ASCII and EBCDIC platforms.
+S<C<sizeof(REPLACEMENT_CHARACTER_UTF8) - 1>> can be used to get its length in
+bytes.
+
+=cut
+*/
+
+#define UNICODE_MAJOR_VERSION 9
#define UNICODE_DOT_VERSION 0
#define UNICODE_DOT_DOT_VERSION 0
@@ -45,6 +69,10 @@
# define BOM_UTF8_FIRST_BYTE 0xEF /* U+FEFF */
# define BOM_UTF8_TAIL "\xBB\xBF" /* U+FEFF */
+# define BOM_UTF8 "\xEF\xBB\xBF" /* U+FEFF */
+
+# define REPLACEMENT_CHARACTER_UTF8 "\xEF\xBF\xBD" /* U+FFFD */
+
# define NBSP_NATIVE 0xA0 /* U+00A0 */
# define NBSP_UTF8 "\xC2\xA0" /* U+00A0 */
@@ -84,6 +112,10 @@
# define BOM_UTF8_FIRST_BYTE 0xDD /* U+FEFF */
# define BOM_UTF8_TAIL "\x73\x66\x73" /* U+FEFF */
+# define BOM_UTF8 "\xDD\x73\x66\x73" /* U+FEFF */
+
+# define REPLACEMENT_CHARACTER_UTF8 "\xDD\x73\x73\x71" /* U+FFFD */
+
# define NBSP_NATIVE 0x41 /* U+00A0 */
# define NBSP_UTF8 "\x80\x41" /* U+00A0 */
@@ -123,6 +155,10 @@
# define BOM_UTF8_FIRST_BYTE 0xDD /* U+FEFF */
# define BOM_UTF8_TAIL "\x72\x65\x72" /* U+FEFF */
+# define BOM_UTF8 "\xDD\x72\x65\x72" /* U+FEFF */
+
+# define REPLACEMENT_CHARACTER_UTF8 "\xDD\x72\x72\x70" /* U+FFFD */
+
# define NBSP_NATIVE 0x41 /* U+00A0 */
# define NBSP_UTF8 "\x78\x41" /* U+00A0 */
@@ -141,10 +177,10 @@
#endif /* EBCDIC 037 */
/* The number of code points not matching \pC */
-#define NON_OTHER_COUNT_FOR_USE_ONLY_BY_REGCOMP_DOT_C 120522
+#define NON_OTHER_COUNT_FOR_USE_ONLY_BY_REGCOMP_DOT_C 128021
/* The highest code point that has any type of case change */
-#define HIGHEST_CASE_CHANGING_CP_FOR_USE_ONLY_BY_UTF8_DOT_C 0x118DF
+#define HIGHEST_CASE_CHANGING_CP_FOR_USE_ONLY_BY_UTF8_DOT_C 0x1E943
#endif /* H_UNICODE_CONSTANTS */
diff --git a/Master/tlpkg/tlperl/lib/CORE/unixish.h b/Master/tlpkg/tlperl/lib/CORE/unixish.h
index e05cb6a4f34..4cd8e438339 100644
--- a/Master/tlpkg/tlperl/lib/CORE/unixish.h
+++ b/Master/tlpkg/tlperl/lib/CORE/unixish.h
@@ -159,7 +159,7 @@ int afstat(int fd, struct stat *statb);
#define BIT_BUCKET "/dev/null"
-#define dXSUB_SYS
+#define dXSUB_SYS dNOOP
#ifndef NO_ENVIRON_ARRAY
#define USE_ENVIRON_ARRAY
diff --git a/Master/tlpkg/tlperl/lib/CORE/utf8.h b/Master/tlpkg/tlperl/lib/CORE/utf8.h
index c954b42ff5d..59e8972822f 100644
--- a/Master/tlpkg/tlperl/lib/CORE/utf8.h
+++ b/Master/tlpkg/tlperl/lib/CORE/utf8.h
@@ -50,14 +50,21 @@ Search for the string "utf8" in this document.
=for apidoc is_ascii_string
-This is a misleadingly-named synonym for L</is_invariant_string>.
+This is a misleadingly-named synonym for L</is_utf8_invariant_string>.
On ASCII-ish platforms, the name isn't misleading: the ASCII-range characters
are exactly the UTF-8 invariants. But EBCDIC machines have more invariants
-than just the ASCII characters, so C<is_invariant_string> is preferred.
+than just the ASCII characters, so C<is_utf8_invariant_string> is preferred.
+
+=for apidoc is_invariant_string
+
+This is a somewhat misleadingly-named synonym for L</is_utf8_invariant_string>.
+C<is_utf8_invariant_string> is preferred, as it indicates under what conditions
+the string is invariant.
=cut
*/
-#define is_ascii_string(s, len) is_invariant_string(s, len)
+#define is_ascii_string(s, len) is_utf8_invariant_string(s, len)
+#define is_invariant_string(s, len) is_utf8_invariant_string(s, len)
#define uvchr_to_utf8(a,b) uvchr_to_utf8_flags(a,b,0)
#define uvchr_to_utf8_flags(d,uv,flags) \
@@ -65,15 +72,19 @@ than just the ASCII characters, so C<is_invariant_string> is preferred.
#define utf8_to_uvchr_buf(s, e, lenp) \
utf8n_to_uvchr(s, (U8*)(e) - (U8*)(s), lenp, \
ckWARN_d(WARN_UTF8) ? 0 : UTF8_ALLOW_ANY)
+#define utf8n_to_uvchr(s, len, lenp, flags) \
+ utf8n_to_uvchr_error(s, len, lenp, flags, 0)
#define to_uni_fold(c, p, lenp) _to_uni_fold_flags(c, p, lenp, FOLD_FLAGS_FULL)
-#define to_utf8_fold(c, p, lenp) _to_utf8_fold_flags(c, p, lenp, FOLD_FLAGS_FULL)
-#define to_utf8_lower(a,b,c) _to_utf8_lower_flags(a,b,c,0)
-#define to_utf8_upper(a,b,c) _to_utf8_upper_flags(a,b,c,0)
-#define to_utf8_title(a,b,c) _to_utf8_title_flags(a,b,c,0)
-/* Source backward compatibility. */
-#define is_utf8_string_loc(s, len, ep) is_utf8_string_loclen(s, len, ep, 0)
+#define to_utf8_fold(s, r, lenr) \
+ _to_utf8_fold_flags (s, NULL, r, lenr, FOLD_FLAGS_FULL, __FILE__, __LINE__)
+#define to_utf8_lower(s, r, lenr) \
+ _to_utf8_lower_flags(s, NULL, r ,lenr, 0, __FILE__, __LINE__)
+#define to_utf8_upper(s, r, lenr) \
+ _to_utf8_upper_flags(s, NULL, r, lenr, 0, __FILE__, __LINE__)
+#define to_utf8_title(s, r, lenr) \
+ _to_utf8_title_flags(s, NULL, r, lenr ,0, __FILE__, __LINE__)
#define foldEQ_utf8(s1, pe1, l1, u1, s2, pe2, l2, u2) \
foldEQ_utf8_flags(s1, pe1, l1, u1, s2, pe2, l2, u2, 0)
@@ -156,8 +167,8 @@ END_EXTERN_C
* rarely do we need to distinguish them. The term "NATIVE_UTF8" applies to
* whichever one is applicable on the current platform */
#ifdef PERL_SMALL_MACRO_BUFFER
-#define NATIVE_UTF8_TO_I8(ch) (ch)
-#define I8_TO_NATIVE_UTF8(ch) (ch)
+#define NATIVE_UTF8_TO_I8(ch) ((U8) (ch))
+#define I8_TO_NATIVE_UTF8(ch) ((U8) (ch))
#else
#define NATIVE_UTF8_TO_I8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch)))
#define I8_TO_NATIVE_UTF8(ch) (__ASSERT_(FITS_IN_8_BITS(ch)) ((U8) (ch)))
@@ -169,24 +180,30 @@ END_EXTERN_C
/*
- The following table is from Unicode 3.2.
+ The following table is from Unicode 3.2, plus the Perl extensions for above
+ U+10FFFF
- Code Points 1st Byte 2nd Byte 3rd Byte 4th Byte
+ Code Points 1st Byte 2nd Byte 3rd 4th 5th 6th 7th 8th-13th
U+0000..U+007F 00..7F
U+0080..U+07FF * C2..DF 80..BF
- U+0800..U+0FFF E0 * A0..BF 80..BF
- U+1000..U+CFFF E1..EC 80..BF 80..BF
- U+D000..U+D7FF ED 80..9F 80..BF
- U+D800..U+DFFF ED A0..BF 80..BF (surrogates)
- U+E000..U+FFFF EE..EF 80..BF 80..BF
- U+10000..U+3FFFF F0 * 90..BF 80..BF 80..BF
- U+40000..U+FFFFF F1..F3 80..BF 80..BF 80..BF
- U+100000..U+10FFFF F4 80..8F 80..BF 80..BF
- Below are non-Unicode code points
- U+110000..U+13FFFF F4 90..BF 80..BF 80..BF
- U+110000..U+1FFFFF F5..F7 80..BF 80..BF 80..BF
- U+200000..: F8.. * 88..BF 80..BF 80..BF 80..BF
+ U+0800..U+0FFF E0 * A0..BF 80..BF
+ U+1000..U+CFFF E1..EC 80..BF 80..BF
+ U+D000..U+D7FF ED 80..9F 80..BF
+ U+D800..U+DFFF ED A0..BF 80..BF (surrogates)
+ U+E000..U+FFFF EE..EF 80..BF 80..BF
+ U+10000..U+3FFFF F0 * 90..BF 80..BF 80..BF
+ U+40000..U+FFFFF F1..F3 80..BF 80..BF 80..BF
+ U+100000..U+10FFFF F4 80..8F 80..BF 80..BF
+ Below are above-Unicode code points
+ U+110000..U+13FFFF F4 90..BF 80..BF 80..BF
+ U+110000..U+1FFFFF F5..F7 80..BF 80..BF 80..BF
+ U+200000..U+FFFFFF F8 * 88..BF 80..BF 80..BF 80..BF
+U+1000000..U+3FFFFFF F9..FB 80..BF 80..BF 80..BF 80..BF
+U+4000000..U+3FFFFFFF FC * 84..BF 80..BF 80..BF 80..BF 80..BF
+U+40000000..U+7FFFFFFF FD 80..BF 80..BF 80..BF 80..BF 80..BF
+U+80000000..U+FFFFFFFFF FE * 82..BF 80..BF 80..BF 80..BF 80..BF 80..BF
+U+1000000000.. FF 80..BF 80..BF 80..BF 80..BF 80..BF * 81..BF 80..BF
Note the gaps before several of the byte entries above marked by '*'. These are
caused by legal UTF-8 avoiding non-shortest encodings: it is technically
@@ -210,17 +227,36 @@ As you can see, the continuation bytes all begin with C<10>, and the
leading bits of the start byte tell how many bytes there are in the
encoded character.
-Perl's extended UTF-8 means we can have start bytes up to FF.
+Perl's extended UTF-8 means we can have start bytes up through FF, though any
+beginning with FF yields a code point that is too large for 32-bit ASCII
+platforms. FF signals to use 13 bytes for the encoded character. This breaks
+the paradigm that the number of leading bits gives how many total bytes there
+are in the character.
*/
+/* Anything larger than this will overflow the word if it were converted into a UV */
+#if defined(UV_IS_QUAD)
+# define HIGHEST_REPRESENTABLE_UTF8 "\xFF\x80\x8F\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"
+#else
+# define HIGHEST_REPRESENTABLE_UTF8 "\xFE\x83\xBF\xBF\xBF\xBF\xBF"
+#endif
+
/* Is the representation of the Unicode code point 'cp' the same regardless of
* being encoded in UTF-8 or not? */
#define OFFUNI_IS_INVARIANT(cp) isASCII(cp)
-/* Is the representation of the code point 'cp' the same regardless of
- * being encoded in UTF-8 or not? 'cp' is native if < 256; Unicode otherwise
- * */
+/*
+=for apidoc Am|bool|UVCHR_IS_INVARIANT|UV cp
+
+Evaluates to 1 if the representation of code point C<cp> is the same whether or
+not it is encoded in UTF-8; otherwise evaluates to 0. UTF-8 invariant
+characters can be copied as-is when converting to/from UTF-8, saving time.
+C<cp> is Unicode if above 255; otherwise is platform-native.
+
+=cut
+ */
+
#define UVCHR_IS_INVARIANT(cp) OFFUNI_IS_INVARIANT(cp)
/* This defines the bits that are to be in the continuation bytes of a multi-byte
@@ -275,6 +311,104 @@ Perl's extended UTF-8 means we can have start bytes up to FF.
* encounter */
#define isUTF8_POSSIBLY_PROBLEMATIC(c) ((U8) c >= 0xED)
+/* A helper macro for isUTF8_CHAR, so use that one instead of this. This was
+ * generated by regen/regcharclass.pl, and then moved here. Then it was
+ * hand-edited to add some LIKELY() calls, presuming that malformations are
+ * unlikely. The lines that generated it were then commented out. This was
+ * done because it takes on the order of 10 minutes to generate, and is never
+ * going to change, unless the generated code is improved, and figuring out
+ * the LIKELYs there would be hard.
+ *
+ UTF8_CHAR: Matches legal UTF-8 variant code points up through 0x1FFFFFF
+
+ 0x80 - 0x1FFFFF
+*/
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0xC2 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) ? \
+ ( LIKELY( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 ) \
+: ( 0xE0 == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xE1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEF ) ? \
+ ( LIKELY( ( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( 0x90 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xBF ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+: ( ( ( ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF7 ) && LIKELY( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) ) && LIKELY( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) && LIKELY( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )
+
+/* The above macro handles UTF-8 that has this start byte as the maximum */
+#define _IS_UTF8_CHAR_HIGHEST_START_BYTE 0xF7
+
+/* A helper macro for isSTRICT_UTF8_CHAR, so use that one instead of this.
+ * Like is_UTF8_CHAR_utf8_no_length_checks(), this was moved here and LIKELYs
+ * added manually.
+ *
+ STRICT_UTF8_CHAR: Matches legal Unicode UTF-8 variant code points, no
+ surrrogates nor non-character code points
+*/
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0xC2 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) ? \
+ ( LIKELY( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 ) \
+: ( 0xE0 == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( ( 0xE1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) || 0xEE == ((const U8*)s)[0] ) ?\
+ ( ( ( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xED == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0x80 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xEF == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x80 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xB6 ) || ( 0xB8 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xBE ) ) ?\
+ ( LIKELY( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ? 3 : 0 ) \
+ : ( 0xB7 == ((const U8*)s)[1] ) ? \
+ ( LIKELY( ( ((const U8*)s)[2] & 0xF0 ) == 0x80 || ( ((const U8*)s)[2] & 0xF0 ) == 0xB0 ) ? 3 : 0 )\
+ : ( ( 0xBF == ((const U8*)s)[1] ) && ( 0x80 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xBD ) ) ? 3 : 0 )\
+: ( 0xF0 == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x90 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x9E ) || ( 0xA0 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xAE ) || ( 0xB0 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xBE ) ) ?\
+ ( LIKELY( ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+ : ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) ? \
+ ( ( 0x80 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xBE ) ? \
+ ( LIKELY( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 ) \
+ : LIKELY( ( 0xBF == ((const U8*)s)[2] ) && ( 0x80 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF3 ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xC8 ) == 0x80 ) || ( ( ((const U8*)s)[1] & 0xCC ) == 0x88 ) || ( ( ((const U8*)s)[1] & 0xCE ) == 0x8C ) || ( ( ((const U8*)s)[1] & 0xCF ) == 0x8E ) ) ?\
+ ( LIKELY( ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+ : ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) ? \
+ ( ( 0x80 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xBE ) ? \
+ ( LIKELY( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 ) \
+ : LIKELY( ( 0xBF == ((const U8*)s)[2] ) && ( 0x80 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xF4 == ((const U8*)s)[0] ) ? \
+ ( ( 0x80 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x8E ) ? \
+ ( LIKELY( ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+ : ( 0x8F == ((const U8*)s)[1] ) ? \
+ ( ( 0x80 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xBE ) ? \
+ ( LIKELY( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ? 4 : 0 ) \
+ : LIKELY( ( 0xBF == ((const U8*)s)[2] ) && ( 0x80 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0xBD ) ) ? 4 : 0 )\
+ : 0 ) \
+: 0 )
+
+/* Similarly,
+ C9_STRICT_UTF8_CHAR: Matches legal Unicode UTF-8 variant code
+ points, no surrogates
+ 0x0080 - 0xD7FF
+ 0xE000 - 0x10FFFF
+*/
+/*** GENERATED CODE ***/
+#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0xC2 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) ? \
+ ( LIKELY( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 ) \
+: ( 0xE0 == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( ( 0xE1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) || ( ((const U8*)s)[0] & 0xFE ) == 0xEE ) ?\
+ ( LIKELY( ( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xED == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ((const U8*)s)[1] & 0xE0 ) == 0x80 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
+: ( 0xF0 == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( 0x90 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xBF ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+: ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF3 ) ? \
+ ( LIKELY( ( ( ( ((const U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
+: LIKELY( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xF0 ) == 0x80 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((const U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )
+
#endif /* EBCDIC vs ASCII */
/* 2**UTF_ACCUMULATION_SHIFT - 1 */
@@ -338,11 +472,14 @@ encoded as UTF-8. C<cp> is a native (ASCII or EBCDIC) code point if less than
*/
#define UVCHR_SKIP(uv) ( UVCHR_IS_INVARIANT(uv) ? 1 : __BASE_UNI_SKIP(uv))
-/* As explained in the comments for __COMMON_UNI_SKIP, 32 start bytes with
+/* The largest code point representable by two UTF-8 bytes on this platform.
+ * As explained in the comments for __COMMON_UNI_SKIP, 32 start bytes with
* UTF_ACCUMULATION_SHIFT bits of information each */
#define MAX_UTF8_TWO_BYTE (32 * (1U << UTF_ACCUMULATION_SHIFT) - 1)
-/* constrained by EBCDIC which has 5 bits per continuation byte */
+/* The largest code point representable by two UTF-8 bytes on any platform that
+ * Perl runs on. This value is constrained by EBCDIC which has 5 bits per
+ * continuation byte */
#define MAX_PORTABLE_UTF8_TWO_BYTE (32 * (1U << 5) - 1)
/* The maximum number of UTF-8 bytes a single Unicode character can
@@ -396,17 +533,11 @@ encoded as UTF-8. C<cp> is a native (ASCII or EBCDIC) code point if less than
| ((NATIVE_UTF8_TO_I8((U8)new)) \
& UTF_CONTINUATION_MASK))
-/* If a value is anded with this, and the result is non-zero, then using the
- * original value in UTF8_ACCUMULATE will overflow, shifting bits off the left
- * */
-#define UTF_ACCUMULATION_OVERFLOW_MASK \
- (((UV) UTF_CONTINUATION_MASK) << ((sizeof(UV) * CHARBITS) \
- - UTF_ACCUMULATION_SHIFT))
-
/* This works in the face of malformed UTF-8. */
-#define UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(s, e) (UTF8_IS_DOWNGRADEABLE_START(*s) \
- && ( (e) - (s) > 1) \
- && UTF8_IS_CONTINUATION(*((s)+1)))
+#define UTF8_IS_NEXT_CHAR_DOWNGRADEABLE(s, e) \
+ ( UTF8_IS_DOWNGRADEABLE_START(*(s)) \
+ && ( (e) - (s) > 1) \
+ && UTF8_IS_CONTINUATION(*((s)+1)))
/* Number of bytes a code point occupies in UTF-8. */
#define NATIVE_SKIP(uv) UVCHR_SKIP(uv)
@@ -464,13 +595,27 @@ only) byte is pointed to by C<s>.
* through 255 */
#define UNI_IS_INVARIANT(cp) UVCHR_IS_INVARIANT(cp)
-/* Is the byte 'c' the same character when encoded in UTF-8 as when not. This
- * works on both UTF-8 encoded strings and non-encoded, as it returns TRUE in
- * each for the exact same set of bit patterns. It is valid on a subset of
- * what UVCHR_IS_INVARIANT is valid on, so can just use that; and the compiler
- * should optimize out anything extraneous given the implementation of the
- * latter. The |0 makes sure this isn't mistakenly called with a ptr argument.
- * */
+/*
+=for apidoc Am|bool|UTF8_IS_INVARIANT|char c
+
+Evaluates to 1 if the byte C<c> represents the same character when encoded in
+UTF-8 as when not; otherwise evaluates to 0. UTF-8 invariant characters can be
+copied as-is when converting to/from UTF-8, saving time.
+
+In spite of the name, this macro gives the correct result if the input string
+from which C<c> comes is not encoded in UTF-8.
+
+See C<L</UVCHR_IS_INVARIANT>> for checking if a UV is invariant.
+
+=cut
+
+The reason it works on both UTF-8 encoded strings and non-UTF-8 encoded, is
+that it returns TRUE in each for the exact same set of bit patterns. It is
+valid on a subset of what UVCHR_IS_INVARIANT is valid on, so can just use that;
+and the compiler should optimize out anything extraneous given the
+implementation of the latter. The |0 makes sure this isn't mistakenly called
+with a ptr argument.
+*/
#define UTF8_IS_INVARIANT(c) UVCHR_IS_INVARIANT((c) | 0)
/* Like the above, but its name implies a non-UTF8 input, which as the comments
@@ -533,20 +678,37 @@ only) byte is pointed to by C<s>.
* beginning of a utf8 character. Now that foo_utf8() determines that itself,
* no need to do it again here
*/
-#define isIDFIRST_lazy_if(p,UTF) ((IN_BYTES || !UTF) \
- ? isIDFIRST(*(p)) \
- : isIDFIRST_utf8((const U8*)p))
-#define isWORDCHAR_lazy_if(p,UTF) ((IN_BYTES || (!UTF)) \
- ? isWORDCHAR(*(p)) \
- : isWORDCHAR_utf8((const U8*)p))
-#define isALNUM_lazy_if(p,UTF) isWORDCHAR_lazy_if(p,UTF)
+#define isIDFIRST_lazy_if(p,UTF) \
+ _is_utf8_FOO(_CC_IDFIRST, (const U8 *) p, "isIDFIRST_lazy_if", \
+ "isIDFIRST_lazy_if_safe", \
+ cBOOL(UTF && ! IN_BYTES), 0, __FILE__,__LINE__)
+
+#define isIDFIRST_lazy_if_safe(p, e, UTF) \
+ ((IN_BYTES || !UTF) \
+ ? isIDFIRST(*(p)) \
+ : isIDFIRST_utf8_safe(p, e))
+
+#define isWORDCHAR_lazy_if(p,UTF) \
+ _is_utf8_FOO(_CC_IDFIRST, (const U8 *) p, "isWORDCHAR_lazy_if", \
+ "isWORDCHAR_lazy_if_safe", \
+ cBOOL(UTF && ! IN_BYTES), 0, __FILE__,__LINE__)
+
+#define isWORDCHAR_lazy_if_safe(p, e, UTF) \
+ ((IN_BYTES || !UTF) \
+ ? isWORDCHAR(*(p)) \
+ : isWORDCHAR_utf8_safe((U8 *) p, (U8 *) e))
+
+#define isALNUM_lazy_if(p,UTF) \
+ _is_utf8_FOO(_CC_IDFIRST, (const U8 *) p, "isALNUM_lazy_if", \
+ "isWORDCHAR_lazy_if_safe", \
+ cBOOL(UTF && ! IN_BYTES), 0, __FILE__,__LINE__)
#define UTF8_MAXLEN UTF8_MAXBYTES
/* A Unicode character can fold to up to 3 characters */
#define UTF8_MAX_FOLD_CHAR_EXPAND 3
-#define IN_BYTES (CopHINTS_get(PL_curcop) & HINT_BYTES)
+#define IN_BYTES UNLIKELY(CopHINTS_get(PL_curcop) & HINT_BYTES)
/*
@@ -565,49 +727,65 @@ case any call to string overloading updates the internal UTF-8 encoding flag.
* Is so within 'feature unicode_strings' or 'locale :not_characters', and not
* within 'use bytes'. UTF-8 locales are not tested for here, but perhaps
* could be */
-#define IN_UNI_8_BIT \
- (((CopHINTS_get(PL_curcop) & (HINT_UNI_8_BIT)) \
- || (CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL \
- /* -1 below is for :not_characters */ \
- && _is_in_locale_category(FALSE, -1))) \
- && ! IN_BYTES)
+#define IN_UNI_8_BIT \
+ (( ( (CopHINTS_get(PL_curcop) & HINT_UNI_8_BIT)) \
+ || ( CopHINTS_get(PL_curcop) & HINT_LOCALE_PARTIAL \
+ /* -1 below is for :not_characters */ \
+ && _is_in_locale_category(FALSE, -1))) \
+ && (! IN_BYTES))
#define UTF8_ALLOW_EMPTY 0x0001 /* Allow a zero length string */
+#define UTF8_GOT_EMPTY UTF8_ALLOW_EMPTY
/* Allow first byte to be a continuation byte */
#define UTF8_ALLOW_CONTINUATION 0x0002
+#define UTF8_GOT_CONTINUATION UTF8_ALLOW_CONTINUATION
-/* Allow second... bytes to be non-continuation bytes */
+/* Unexpected continuation byte */
#define UTF8_ALLOW_NON_CONTINUATION 0x0004
+#define UTF8_GOT_NON_CONTINUATION UTF8_ALLOW_NON_CONTINUATION
/* expecting more bytes than were available in the string */
#define UTF8_ALLOW_SHORT 0x0008
+#define UTF8_GOT_SHORT UTF8_ALLOW_SHORT
-/* Overlong sequence; i.e., the code point can be specified in fewer bytes. */
+/* Overlong sequence; i.e., the code point can be specified in fewer bytes.
+ * First one will convert the overlong to the REPLACEMENT CHARACTER; second
+ * will return what the overlong evaluates to */
#define UTF8_ALLOW_LONG 0x0010
+#define UTF8_ALLOW_LONG_AND_ITS_VALUE (UTF8_ALLOW_LONG|0x0020)
+#define UTF8_GOT_LONG UTF8_ALLOW_LONG
+
+#define UTF8_ALLOW_OVERFLOW 0x0080
+#define UTF8_GOT_OVERFLOW UTF8_ALLOW_OVERFLOW
-#define UTF8_DISALLOW_SURROGATE 0x0020 /* Unicode surrogates */
-#define UTF8_WARN_SURROGATE 0x0040
+#define UTF8_DISALLOW_SURROGATE 0x0100 /* Unicode surrogates */
+#define UTF8_GOT_SURROGATE UTF8_DISALLOW_SURROGATE
+#define UTF8_WARN_SURROGATE 0x0200
-#define UTF8_DISALLOW_NONCHAR 0x0080 /* Unicode non-character */
-#define UTF8_WARN_NONCHAR 0x0100 /* code points */
+#define UTF8_DISALLOW_NONCHAR 0x0400 /* Unicode non-character */
+#define UTF8_GOT_NONCHAR UTF8_DISALLOW_NONCHAR
+#define UTF8_WARN_NONCHAR 0x0800 /* code points */
-#define UTF8_DISALLOW_SUPER 0x0200 /* Super-set of Unicode: code */
-#define UTF8_WARN_SUPER 0x0400 /* points above the legal max */
+#define UTF8_DISALLOW_SUPER 0x1000 /* Super-set of Unicode: code */
+#define UTF8_GOT_SUPER UTF8_DISALLOW_SUPER
+#define UTF8_WARN_SUPER 0x2000 /* points above the legal max */
/* Code points which never were part of the original UTF-8 standard, which only
* went up to 2 ** 31 - 1. Note that these all overflow a signed 32-bit word,
* The first byte of these code points is FE or FF on ASCII platforms. If the
* first byte is FF, it will overflow a 32-bit word. */
-#define UTF8_DISALLOW_ABOVE_31_BIT 0x0800
-#define UTF8_WARN_ABOVE_31_BIT 0x1000
+#define UTF8_DISALLOW_ABOVE_31_BIT 0x4000
+#define UTF8_GOT_ABOVE_31_BIT UTF8_DISALLOW_ABOVE_31_BIT
+#define UTF8_WARN_ABOVE_31_BIT 0x8000
/* For back compat, these old names are misleading for UTF_EBCDIC */
#define UTF8_DISALLOW_FE_FF UTF8_DISALLOW_ABOVE_31_BIT
#define UTF8_WARN_FE_FF UTF8_WARN_ABOVE_31_BIT
-#define UTF8_CHECK_ONLY 0x2000
+#define UTF8_CHECK_ONLY 0x10000
+#define _UTF8_NO_CONFIDENCE_IN_CURLEN 0x20000 /* Internal core use only */
/* For backwards source compatibility. They do nothing, as the default now
* includes what they used to mean. The first one's meaning was to allow the
@@ -615,47 +793,107 @@ case any call to string overloading updates the internal UTF-8 encoding flag.
#define UTF8_ALLOW_FFFF 0
#define UTF8_ALLOW_SURROGATE 0
+/* C9 refers to Unicode Corrigendum #9: allows but discourages non-chars */
+#define UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE \
+ (UTF8_DISALLOW_SUPER|UTF8_DISALLOW_SURROGATE)
+#define UTF8_WARN_ILLEGAL_C9_INTERCHANGE (UTF8_WARN_SUPER|UTF8_WARN_SURROGATE)
+
#define UTF8_DISALLOW_ILLEGAL_INTERCHANGE \
- ( UTF8_DISALLOW_SUPER|UTF8_DISALLOW_NONCHAR \
- |UTF8_DISALLOW_SURROGATE)
+ (UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE|UTF8_DISALLOW_NONCHAR)
#define UTF8_WARN_ILLEGAL_INTERCHANGE \
- (UTF8_WARN_SUPER|UTF8_WARN_NONCHAR|UTF8_WARN_SURROGATE)
-#define UTF8_ALLOW_ANY \
- (~( UTF8_DISALLOW_ILLEGAL_INTERCHANGE|UTF8_DISALLOW_ABOVE_31_BIT \
- |UTF8_WARN_ILLEGAL_INTERCHANGE|UTF8_WARN_ABOVE_31_BIT))
-#define UTF8_ALLOW_ANYUV \
- (UTF8_ALLOW_EMPTY \
- & ~(UTF8_DISALLOW_ILLEGAL_INTERCHANGE|UTF8_WARN_ILLEGAL_INTERCHANGE))
-#define UTF8_ALLOW_DEFAULT (ckWARN(WARN_UTF8) ? 0 : \
- UTF8_ALLOW_ANYUV)
-
-/* Several of the macros below have a second parameter that is currently
- * unused; but could be used in the future to make sure that the input is
- * well-formed. */
-
-#define UTF8_IS_SURROGATE(s, e) cBOOL(is_SURROGATE_utf8(s))
-#define UTF8_IS_REPLACEMENT(s, send) cBOOL(is_REPLACEMENT_utf8_safe(s,send))
-
-/* ASCII EBCDIC I8
+ (UTF8_WARN_ILLEGAL_C9_INTERCHANGE|UTF8_WARN_NONCHAR)
+
+/* This is typically used for code that processes UTF-8 input and doesn't want
+ * to have to deal with any malformations that might be present. All such will
+ * be safely replaced by the REPLACEMENT CHARACTER, unless other flags
+ * overriding this are also present. */
+#define UTF8_ALLOW_ANY ( UTF8_ALLOW_CONTINUATION \
+ |UTF8_ALLOW_NON_CONTINUATION \
+ |UTF8_ALLOW_SHORT \
+ |UTF8_ALLOW_LONG \
+ |UTF8_ALLOW_OVERFLOW)
+
+/* Accept any Perl-extended UTF-8 that evaluates to any UV on the platform, but
+ * not any malformed. This is the default. (Note that UVs above IV_MAX are
+ * deprecated. */
+#define UTF8_ALLOW_ANYUV 0
+#define UTF8_ALLOW_DEFAULT UTF8_ALLOW_ANYUV
+
+/*
+=for apidoc Am|bool|UTF8_IS_SURROGATE|const U8 *s|const U8 *e
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8 that represents one
+of the Unicode surrogate code points; otherwise it evaluates to 0. If
+non-zero, the value gives how many bytes starting at C<s> comprise the code
+point's representation.
+
+=cut
+ */
+#define UTF8_IS_SURROGATE(s, e) is_SURROGATE_utf8_safe(s, e)
+
+
+#define UTF8_IS_REPLACEMENT(s, send) is_REPLACEMENT_utf8_safe(s,send)
+
+/*
+=for apidoc Am|bool|UTF8_IS_SUPER|const U8 *s|const U8 *e
+
+Recall that Perl recognizes an extension to UTF-8 that can encode code
+points larger than the ones defined by Unicode, which are 0..0x10FFFF.
+
+This macro evaluates to non-zero if the first few bytes of the string starting
+at C<s> and looking no further than S<C<e - 1>> are from this UTF-8 extension;
+otherwise it evaluates to 0. If non-zero, the value gives how many bytes
+starting at C<s> comprise the code point's representation.
+
+0 is returned if the bytes are not well-formed extended UTF-8, or if they
+represent a code point that cannot fit in a UV on the current platform. Hence
+this macro can give different results when run on a 64-bit word machine than on
+one with a 32-bit word size.
+
+Note that it is deprecated to have code points that are larger than what can
+fit in an IV on the current machine.
+
+=cut
+
+ * ASCII EBCDIC I8
* U+10FFFF: \xF4\x8F\xBF\xBF \xF9\xA1\xBF\xBF\xBF max legal Unicode
* U+110000: \xF4\x90\x80\x80 \xF9\xA2\xA0\xA0\xA0
* U+110001: \xF4\x90\x80\x81 \xF9\xA2\xA0\xA0\xA1
- *
- * BE AWARE that this test doesn't rule out malformed code points, in
- * particular overlongs */
-#ifdef EBCDIC /* Both versions assume well-formed UTF8 */
-# define UTF8_IS_SUPER(s, e) (NATIVE_UTF8_TO_I8(* (U8*) (s)) >= 0xF9 \
- && (NATIVE_UTF8_TO_I8(* (U8*) (s)) > 0xF9 \
- || (NATIVE_UTF8_TO_I8(* ((U8*) (s) + 1)) >= 0xA2)))
+ */
+#ifdef EBCDIC
+# define UTF8_IS_SUPER(s, e) \
+ (( LIKELY((e) > (s) + 4) \
+ && NATIVE_UTF8_TO_I8(*(s)) >= 0xF9 \
+ && ( NATIVE_UTF8_TO_I8(*(s)) > 0xF9 \
+ || (NATIVE_UTF8_TO_I8(*((s) + 1)) >= 0xA2)) \
+ && LIKELY((s) + UTF8SKIP(s) <= (e))) \
+ ? _is_utf8_char_helper(s, s + UTF8SKIP(s), 0) : 0)
#else
-# define UTF8_IS_SUPER(s, e) (*(U8*) (s) >= 0xF4 \
- && (*(U8*) (s) > 0xF4 || (*((U8*) (s) + 1) >= 0x90)))
+# define UTF8_IS_SUPER(s, e) \
+ (( LIKELY((e) > (s) + 3) \
+ && (*(U8*) (s)) >= 0xF4 \
+ && ((*(U8*) (s)) > 0xF4 || (*((U8*) (s) + 1) >= 0x90))\
+ && LIKELY((s) + UTF8SKIP(s) <= (e))) \
+ ? _is_utf8_char_helper(s, s + UTF8SKIP(s), 0) : 0)
#endif
/* These are now machine generated, and the 'given' clause is no longer
* applicable */
#define UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC(s, e) \
- cBOOL(is_NONCHAR_utf8(s))
+ cBOOL(is_NONCHAR_utf8_safe(s,e))
+
+/*
+=for apidoc Am|bool|UTF8_IS_NONCHAR|const U8 *s|const U8 *e
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8 that represents one
+of the Unicode non-character code points; otherwise it evaluates to 0. If
+non-zero, the value gives how many bytes starting at C<s> comprise the code
+point's representation.
+
+=cut
+ */
#define UTF8_IS_NONCHAR(s, e) \
UTF8_IS_NONCHAR_GIVEN_THAT_NON_SUPER_AND_GE_PROBLEMATIC(s, e)
@@ -676,10 +914,14 @@ case any call to string overloading updates the internal UTF-8 encoding flag.
#define UNICODE_DISALLOW_NONCHAR 0x0020
#define UNICODE_DISALLOW_SUPER 0x0040
#define UNICODE_DISALLOW_ABOVE_31_BIT 0x0080
+#define UNICODE_WARN_ILLEGAL_C9_INTERCHANGE \
+ (UNICODE_WARN_SURROGATE|UNICODE_WARN_SUPER)
#define UNICODE_WARN_ILLEGAL_INTERCHANGE \
- (UNICODE_WARN_SURROGATE|UNICODE_WARN_NONCHAR|UNICODE_WARN_SUPER)
+ (UNICODE_WARN_ILLEGAL_C9_INTERCHANGE|UNICODE_WARN_NONCHAR)
+#define UNICODE_DISALLOW_ILLEGAL_C9_INTERCHANGE \
+ (UNICODE_DISALLOW_SURROGATE|UNICODE_DISALLOW_SUPER)
#define UNICODE_DISALLOW_ILLEGAL_INTERCHANGE \
- (UNICODE_DISALLOW_SURROGATE|UNICODE_DISALLOW_NONCHAR|UNICODE_DISALLOW_SUPER)
+ (UNICODE_DISALLOW_ILLEGAL_C9_INTERCHANGE|UNICODE_DISALLOW_NONCHAR)
/* For backward source compatibility, as are now the default */
#define UNICODE_ALLOW_SURROGATE 0
@@ -752,75 +994,168 @@ case any call to string overloading updates the internal UTF-8 encoding flag.
#define SHARP_S_SKIP 2
-/* If you want to exclude surrogates, and beyond legal Unicode, see the blame
- * log for earlier versions which gave details for these */
+/*
-/* A helper macro for isUTF8_CHAR, so use that one, and not this one. This is
- * retained solely for backwards compatibility and may be deprecated and
- * removed in a future Perl version.
- *
- * regen/regcharclass.pl generates is_UTF8_CHAR_utf8() macros for up to these
- * number of bytes. So this has to be coordinated with that file */
-#ifdef EBCDIC
-# define IS_UTF8_CHAR_FAST(n) ((n) <= 3)
-#else
-# define IS_UTF8_CHAR_FAST(n) ((n) <= 4)
-#endif
+=for apidoc Am|STRLEN|isUTF8_CHAR|const U8 *s|const U8 *e
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8, as extended by Perl,
+that represents some code point; otherwise it evaluates to 0. If non-zero, the
+value gives how many bytes starting at C<s> comprise the code point's
+representation. Any bytes remaining before C<e>, but beyond the ones needed to
+form the first code point in C<s>, are not examined.
+
+The code point can be any that will fit in a UV on this machine, using Perl's
+extension to official UTF-8 to represent those higher than the Unicode maximum
+of 0x10FFFF. That means that this macro is used to efficiently decide if the
+next few bytes in C<s> is legal UTF-8 for a single character.
+
+Use C<L</isSTRICT_UTF8_CHAR>> to restrict the acceptable code points to those
+defined by Unicode to be fully interchangeable across applications;
+C<L</isC9_STRICT_UTF8_CHAR>> to use the L<Unicode Corrigendum
+#9|http://www.unicode.org/versions/corrigendum9.html> definition of allowable
+code points; and C<L</isUTF8_CHAR_flags>> for a more customized definition.
+
+Use C<L</is_utf8_string>>, C<L</is_utf8_string_loc>>, and
+C<L</is_utf8_string_loclen>> to check entire strings.
+
+Note that it is deprecated to use code points higher than what will fit in an
+IV. This macro does not raise any warnings for such code points, treating them
+as valid.
+
+Note also that a UTF-8 INVARIANT character (i.e. ASCII on non-EBCDIC machines)
+is a valid UTF-8 character.
+
+=cut
+*/
+
+#define isUTF8_CHAR(s, e) \
+ (UNLIKELY((e) <= (s)) \
+ ? 0 \
+ : (UTF8_IS_INVARIANT(*s)) \
+ ? 1 \
+ : UNLIKELY(((e) - (s)) < UTF8SKIP(s)) \
+ ? 0 \
+ : LIKELY(NATIVE_UTF8_TO_I8(*s) <= _IS_UTF8_CHAR_HIGHEST_START_BYTE) \
+ ? is_UTF8_CHAR_utf8_no_length_checks(s) \
+ : _is_utf8_char_helper(s, e, 0))
+
+#define is_utf8_char_buf(buf, buf_end) isUTF8_CHAR(buf, buf_end)
-#ifndef EBCDIC
-/* A helper macro for isUTF8_CHAR, so use that one instead of this. This was
- * generated by regen/regcharclass.pl, and then moved here. The lines that
- * generated it were then commented out. This was done solely because it takes
- * on the order of 10 minutes to generate, and is never going to change, unless
- * the generated code is improved.
- *
- * The EBCDIC versions have been cut to not cover all of legal Unicode,
- * otherwise they take too long to generate; besides there is a separate one
- * for each code page, so they are in regcharclass.h instead of here */
/*
- UTF8_CHAR: Matches legal UTF-8 encoded characters from 2 through 4 bytes
- 0x80 - 0x1FFFFF
+=for apidoc Am|STRLEN|isSTRICT_UTF8_CHAR|const U8 *s|const U8 *e
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8 that represents some
+Unicode code point completely acceptable for open interchange between all
+applications; otherwise it evaluates to 0. If non-zero, the value gives how
+many bytes starting at C<s> comprise the code point's representation. Any
+bytes remaining before C<e>, but beyond the ones needed to form the first code
+point in C<s>, are not examined.
+
+The largest acceptable code point is the Unicode maximum 0x10FFFF, and must not
+be a surrogate nor a non-character code point. Thus this excludes any code
+point from Perl's extended UTF-8.
+
+This is used to efficiently decide if the next few bytes in C<s> is
+legal Unicode-acceptable UTF-8 for a single character.
+
+Use C<L</isC9_STRICT_UTF8_CHAR>> to use the L<Unicode Corrigendum
+#9|http://www.unicode.org/versions/corrigendum9.html> definition of allowable
+code points; C<L</isUTF8_CHAR>> to check for Perl's extended UTF-8;
+and C<L</isUTF8_CHAR_flags>> for a more customized definition.
+
+Use C<L</is_strict_utf8_string>>, C<L</is_strict_utf8_string_loc>>, and
+C<L</is_strict_utf8_string_loclen>> to check entire strings.
+
+=cut
*/
-/*** GENERATED CODE ***/
-#define is_UTF8_CHAR_utf8_no_length_checks(s) \
-( ( 0xC2 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xDF ) ? \
- ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ? 2 : 0 ) \
-: ( 0xE0 == ((U8*)s)[0] ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xE0 ) == 0xA0 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
-: ( 0xE1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xEF ) ? \
- ( ( ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )\
-: ( 0xF0 == ((U8*)s)[0] ) ? \
- ( ( ( ( 0x90 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )\
-: ( ( ( ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF7 ) && ( ( ((U8*)s)[1] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[2] & 0xC0 ) == 0x80 ) ) && ( ( ((U8*)s)[3] & 0xC0 ) == 0x80 ) ) ? 4 : 0 )
-#endif
+
+#define isSTRICT_UTF8_CHAR(s, e) \
+ (UNLIKELY((e) <= (s)) \
+ ? 0 \
+ : (UTF8_IS_INVARIANT(*s)) \
+ ? 1 \
+ : UNLIKELY(((e) - (s)) < UTF8SKIP(s)) \
+ ? 0 \
+ : is_STRICT_UTF8_CHAR_utf8_no_length_checks(s))
/*
-=for apidoc Am|STRLEN|isUTF8_CHAR|const U8 *s|const U8 *e
+=for apidoc Am|STRLEN|isC9_STRICT_UTF8_CHAR|const U8 *s|const U8 *e
-Returns the number of bytes beginning at C<s> which form a legal UTF-8 (or
-UTF-EBCDIC) encoded character, looking no further than S<C<e - s>> bytes into
-C<s>. Returns 0 if the sequence starting at C<s> through S<C<e - 1>> is not
-well-formed UTF-8.
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8 that represents some
+Unicode non-surrogate code point; otherwise it evaluates to 0. If non-zero,
+the value gives how many bytes starting at C<s> comprise the code point's
+representation. Any bytes remaining before C<e>, but beyond the ones needed to
+form the first code point in C<s>, are not examined.
-Note that an INVARIANT character (i.e. ASCII on non-EBCDIC
-machines) is a valid UTF-8 character.
+The largest acceptable code point is the Unicode maximum 0x10FFFF. This
+differs from C<L</isSTRICT_UTF8_CHAR>> only in that it accepts non-character
+code points. This corresponds to
+L<Unicode Corrigendum #9|http://www.unicode.org/versions/corrigendum9.html>.
+which said that non-character code points are merely discouraged rather than
+completely forbidden in open interchange. See
+L<perlunicode/Noncharacter code points>.
+
+Use C<L</isUTF8_CHAR>> to check for Perl's extended UTF-8; and
+C<L</isUTF8_CHAR_flags>> for a more customized definition.
+
+Use C<L</is_c9strict_utf8_string>>, C<L</is_c9strict_utf8_string_loc>>, and
+C<L</is_c9strict_utf8_string_loclen>> to check entire strings.
=cut
*/
-#define isUTF8_CHAR(s, e) (UNLIKELY((e) <= (s)) \
- ? 0 \
- : (UTF8_IS_INVARIANT(*s)) \
- ? 1 \
- : UNLIKELY(((e) - (s)) < UTF8SKIP(s)) \
- ? 0 \
- : LIKELY(IS_UTF8_CHAR_FAST(UTF8SKIP(s))) \
- ? is_UTF8_CHAR_utf8_no_length_checks(s) \
- : _is_utf8_char_slow(s, e))
+#define isC9_STRICT_UTF8_CHAR(s, e) \
+ (UNLIKELY((e) <= (s)) \
+ ? 0 \
+ : (UTF8_IS_INVARIANT(*s)) \
+ ? 1 \
+ : UNLIKELY(((e) - (s)) < UTF8SKIP(s)) \
+ ? 0 \
+ : is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s))
-#define is_utf8_char_buf(buf, buf_end) isUTF8_CHAR(buf, buf_end)
+/*
+
+=for apidoc Am|STRLEN|isUTF8_CHAR_flags|const U8 *s|const U8 *e| const U32 flags
+
+Evaluates to non-zero if the first few bytes of the string starting at C<s> and
+looking no further than S<C<e - 1>> are well-formed UTF-8, as extended by Perl,
+that represents some code point, subject to the restrictions given by C<flags>;
+otherwise it evaluates to 0. If non-zero, the value gives how many bytes
+starting at C<s> comprise the code point's representation. Any bytes remaining
+before C<e>, but beyond the ones needed to form the first code point in C<s>,
+are not examined.
+
+If C<flags> is 0, this gives the same results as C<L</isUTF8_CHAR>>;
+if C<flags> is C<UTF8_DISALLOW_ILLEGAL_INTERCHANGE>, this gives the same results
+as C<L</isSTRICT_UTF8_CHAR>>;
+and if C<flags> is C<UTF8_DISALLOW_ILLEGAL_C9_INTERCHANGE>, this gives
+the same results as C<L</isC9_STRICT_UTF8_CHAR>>.
+Otherwise C<flags> may be any combination of the C<UTF8_DISALLOW_I<foo>> flags
+understood by C<L</utf8n_to_uvchr>>, with the same meanings.
+
+The three alternative macros are for the most commonly needed validations; they
+are likely to run somewhat faster than this more general one, as they can be
+inlined into your code.
+
+Use L</is_utf8_string_flags>, L</is_utf8_string_loc_flags>, and
+L</is_utf8_string_loclen_flags> to check entire strings.
+
+=cut
+*/
+
+#define isUTF8_CHAR_flags(s, e, flags) \
+ (UNLIKELY((e) <= (s)) \
+ ? 0 \
+ : (UTF8_IS_INVARIANT(*s)) \
+ ? 1 \
+ : UNLIKELY(((e) - (s)) < UTF8SKIP(s)) \
+ ? 0 \
+ : _is_utf8_char_helper(s, e, flags))
/* Do not use; should be deprecated. Use isUTF8_CHAR() instead; this is
* retained solely for backwards compatibility */
diff --git a/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h b/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
index 10b666afe27..08b934b129f 100644
--- a/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
+++ b/Master/tlpkg/tlperl/lib/CORE/utfebcdic.h
@@ -185,8 +185,36 @@ U+40000000..U+FFFFFFFF ttuuuuuvvvvvwwwwwzzzzzyyyyyxxxxx 11111111 10100000 101000
For 32-bit words, the 2nd through 7th bytes effectively function as leading
zeros. Above 32 bits, these fill up, with each byte yielding 5 bits of
information, so that with 13 continuation bytes, we can handle 65 bits, just
-above what a 64 bit word can hold */
+above what a 64 bit word can hold
+ The following table gives the I8:
+
+ I8 Code Points 1st Byte 2nd Byte 3rd 4th 5th 6th 7th 8th 9th-14th
+
+ 0x0000..0x009F 00..9F
+ 0x00A0..0x00FF * C5..C7 A0..BF
+ U+0100..U+03FF C8..DF A0..BF
+ U+0400..U+3FFF * E1..EF A0..BF A0..BF
+ U+4000..U+7FFF F0 * B0..BF A0..BF A0..BF
+ U+8000..U+D7FF F1 A0..B5 A0..BF A0..BF
+ U+D800..U+DFFF F1 B6..B7 A0..BF A0..BF (surrogates)
+ U+E000..U+FFFF F1 B8..BF A0..BF A0..BF
+ U+10000..U+3FFFF F2..F7 A0..BF A0..BF A0..BF
+ U+40000..U+FFFFF F8 * A8..BF A0..BF A0..BF A0..BF
+ U+100000..U+10FFFF F9 A0..A1 A0..BF A0..BF A0..BF
+ Below are above-Unicode code points
+ U+110000..U+1FFFFF F9 A2..BF A0..BF A0..BF A0..BF
+ U+200000..U+3FFFFF FA..FB A0..BF A0..BF A0..BF A0..BF
+ U+400000..U+1FFFFFF FC * A4..BF A0..BF A0..BF A0..BF A0..BF
+U+2000000..U+3FFFFFF FD A0..BF A0..BF A0..BF A0..BF A0..BF
+U+4000000..U+3FFFFFFF FE * A2..BF A0..BF A0..BF A0..BF A0..BF A0..BF
+U+40000000.. FF A0..BF A0..BF A0..BF A0..BF A0..BF A0..BF * A1..BF A0..BF
+
+Note the gaps before several of the byte entries above marked by '*'. These are
+caused by legal UTF-8 avoiding non-shortest encodings: it is technically
+possible to UTF-8-encode a single code point in different ways, but that is
+explicitly forbidden, and the shortest possible encoding should always be used
+(and that is what Perl does). */
/* This is a fundamental property of UTF-EBCDIC */
#define OFFUNI_IS_INVARIANT(c) (((UV)(c)) < 0xA0)
@@ -240,6 +268,256 @@ above what a 64 bit word can hold */
* for more */
#define QUESTION_MARK_CTRL LATIN1_TO_NATIVE(0x9F)
+/* Any I8 string larger than this will overflow the word if it were converted into a UV */
+#if defined(UV_IS_QUAD)
+# define HIGHEST_REPRESENTABLE_UTF8 "\xFF\xAF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"
+#else
+# define HIGHEST_REPRESENTABLE_UTF8 "\xFF\xA0\xA0\xA0\xA0\xA0\xA0\xA3\xBF\xBF\xBF\xBF\xBF\xBF"
+#endif
+
+/* Helper macros for isUTF8_CHAR_foo, so use those instead of this. These were
+ * generated by regen/regcharclass.pl, and then moved here. Then they were
+ * hand-edited to add some LIKELY() calls, presuming that malformations are
+ * unlikely. The lines that generated it were then commented out. This was
+ * done because it takes on the order of 10 minutes to generate, and is never
+ * going to change, unless the generated code is improved, and figuring out the
+ * LIKELYs there would be hard.
+ *
+ */
+
+#if '^' == 95 /* CP 1047 */
+/* UTF8_CHAR: Matches legal UTF-EBCDIC variant code points up through 0x1FFFFFF
+
+ 0xA0 - 0x1FFFFF
+*/
+
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB6 ) ) ?\
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
+ ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xDC == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+: ( ( 0xDD <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) || 0xE1 == ((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
+ ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+: ( 0xED == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
+
+/* UTF8_CHAR_STRICT: Matches legal Unicode UTF-8 variant code points, no
+ surrrogates nor non-character code points */
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) \
+( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
+ ( LIKELY( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+ : ( 0x73 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ?\
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+ : LIKELY( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 )\
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) \
+( ( 0xED == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ((const U8*)s)[1] & 0xEF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xF9 ) == 0x51 ) || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) ?\
+ ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
+ : ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ?\
+ ( LIKELY( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
+ : ( 0x73 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ?\
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ? 5 : 0 )\
+ : LIKELY( ( 0x73 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFE ) == 0x70 ) ) ? 5 : 0 )\
+ : 0 ) \
+ : 0 ) \
+: ( 0xEE == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] ) ? \
+ ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ?\
+ ( LIKELY( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
+ : ( 0x73 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ?\
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ? 5 : 0 )\
+ : LIKELY( ( 0x73 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFE ) == 0x70 ) ) ? 5 : 0 )\
+ : 0 ) \
+ : 0 ) \
+: 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB6 ) ) ?\
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
+ ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xDC == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+: ( 0xDD == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x64 ) || ( 0x67 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
+ ( LIKELY( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+ : ( 0x73 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x54 ) || ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ?\
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+ : ( 0x55 == ((const U8*)s)[2] ) ? \
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( 0x56 == ((const U8*)s)[2] ) ? \
+ ( LIKELY( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
+ : LIKELY( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xDE == ((const U8*)s)[0] || 0xE1 == ((const U8*)s)[0] || 0xEB == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+: ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ? is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
+
+/* C9_STRICT_UTF8_CHAR: Matches legal Unicode UTF-8 variant code points
+ including non-character code points, no surrogates
+ 0x00A0 - 0xD7FF
+ 0xE000 - 0x10FFFF
+*/
+/*** GENERATED CODE ***/
+#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB6 ) ) ?\
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
+: ( ( ( ((const U8*)s)[0] & 0xFC ) == 0xB8 ) || ((const U8*)s)[0] == 0xBC || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
+ ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
+: ( 0xDC == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+: ( 0xDD == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x64 ) || ( 0x67 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+: ( ( ((const U8*)s)[0] & 0xFE ) == 0xDE || 0xE1 == ((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
+ ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
+: ( 0xED == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )\
+: LIKELY( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] || 0x42 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
+
+#endif
+
+#if '^' == 176 /* CP 037 */
+
+/*** GENERATED CODE ***/
+#define is_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB5 ) ) ?\
+ ( LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
+ ( LIKELY( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xDC == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+: ( ( 0xDD <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xDF ) || 0xE1 == ((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
+ ( LIKELY( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+: ( 0xED == ((const U8*)s)[0] ) ? \
+ ( LIKELY( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && LIKELY( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && LIKELY( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
+
+/* XXX Below do not have LIKELY() added */
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) \
+( ( ( ( ((const U8*)s)[1] & 0xEF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xF9 ) == 0x51 ) || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ((const U8*)s)[1] == 0x71 ) ?\
+ ( ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
+ : ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ?\
+ ( ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
+ : ( 0x72 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFE ) == 0x70 ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ? 5 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || 0x70 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 ) \
+ : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) \
+( ( 0xEE == ((const U8*)s)[0] ) ? \
+ ( ( 0x41 == ((const U8*)s)[1] ) ? \
+ ( ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
+ : ( 0x42 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ?\
+ ( ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
+ : ( 0x72 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFE ) == 0x70 ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ? 5 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[3] ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || 0x70 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
+ : 0 ) \
+ : 0 ) \
+: 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part2(s) \
+( ( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks_part3(s) \
+( ( 0xDD == ((const U8*)s)[0] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( ((const U8*)s)[1] & 0xFE ) == 0x62 || ( 0x66 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFE ) == 0x70 ) ?\
+ ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+ : ( 0x72 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x54 ) || ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+ : ( 0x55 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
+ : ( 0x56 == ((const U8*)s)[2] ) ? \
+ ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || 0x70 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xDE == ((const U8*)s)[0] || 0xE1 == ((const U8*)s)[0] || 0xEB == ((const U8*)s)[0] ) ?\
+ ( ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+: ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFE ) == 0x70 ) ?\
+ ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+ : ( 0x72 == ((const U8*)s)[1] ) ? \
+ ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
+ : ( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || 0x70 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
+ : 0 ) \
+: ( 0xED == ((const U8*)s)[0] ) ? is_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : is_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
+
+
+/*** GENERATED CODE ***/
+#define is_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB5 ) ) ?\
+ ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
+: ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
+ ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xDC == ((const U8*)s)[0] ) ? is_STRICT_UTF8_CHAR_utf8_no_length_checks_part2(s) : is_STRICT_UTF8_CHAR_utf8_no_length_checks_part3(s) )
+
+/* C9_STRICT_UTF8_CHAR: Matches legal Unicode UTF-8 variant code points
+ including non-character code points, no surrogates
+ 0x00A0 - 0xD7FF
+ 0xE000 - 0x10FFFF
+*/
+/*** GENERATED CODE ***/
+#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) \
+( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) \
+( ( ((const U8*)s)[0] == 0xB7 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0xCC ) ) ?\
+ ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
+: ( 0xDC == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+: ( 0xDD == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( ((const U8*)s)[1] & 0xFE ) == 0x62 || ( 0x66 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+: ( ( ((const U8*)s)[0] & 0xFE ) == 0xDE || 0xE1 == ((const U8*)s)[0] || ( 0xEA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xEC ) ) ?\
+ ( ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
+: ( 0xED == ((const U8*)s)[0] ) ? \
+ ( ( ( ( ( ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )\
+: ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] || 0x42 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
+
+
+/*** GENERATED CODE ***/
+#define is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks(s) \
+( ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || ( 0x8A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xB5 ) ) ? is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part0(s) : is_C9_STRICT_UTF8_CHAR_utf8_no_length_checks_part1(s) )
+
+#endif
+
+/* is_UTF8_CHAR_utf8_no_length_checks() in both code pages handles UTF-8 that
+ * has this start byte (expressed in I8) as the maximum */
+#define _IS_UTF8_CHAR_HIGHEST_START_BYTE 0xF9
+
/*
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/util.h b/Master/tlpkg/tlperl/lib/CORE/util.h
index 3310b119d8e..12a1c470eef 100644
--- a/Master/tlpkg/tlperl/lib/CORE/util.h
+++ b/Master/tlpkg/tlperl/lib/CORE/util.h
@@ -8,6 +8,10 @@
*
*/
+#ifndef PERL_UTIL_H_
+#define PERL_UTIL_H_
+
+
#ifdef VMS
# define PERL_FILE_IS_ABSOLUTE(f) \
(*(f) == '/' \
@@ -229,6 +233,15 @@ means arg not present, 1 is empty string/null byte */
# define HS_CXT cv
#endif
+#define instr(haystack, needle) strstr(haystack, needle)
+
+#ifdef HAS_MEMMEM
+# define ninstr(big, bigend, little, lend) \
+ ((char *) memmem(big, bigend - big, little, lend - little))
+#endif
+
+#endif /* PERL_UTIL_H_ */
+
/*
* ex: set ts=8 sts=4 sw=4 et:
*/
diff --git a/Master/tlpkg/tlperl/lib/CORE/vdir.h b/Master/tlpkg/tlperl/lib/CORE/vdir.h
index b5c6bc6f454..9ff225eb16b 100644
--- a/Master/tlpkg/tlperl/lib/CORE/vdir.h
+++ b/Master/tlpkg/tlperl/lib/CORE/vdir.h
@@ -203,7 +203,8 @@ int VDir::SetDirA(char const *pPath, int index)
void VDir::FromEnvA(char *pEnv, int index)
{ /* gets the directory for index from the environment variable. */
while (*pEnv != '\0') {
- if ((pEnv[0] == '=') && (DriveIndex(pEnv[1]) == index)) {
+ if ((pEnv[0] == '=') && (DriveIndex(pEnv[1]) == index)
+ && pEnv[2] == ':' && pEnv[3] == '=') {
SetDirA(&pEnv[4], index);
break;
}
@@ -215,7 +216,8 @@ void VDir::FromEnvA(char *pEnv, int index)
void VDir::FromEnvW(WCHAR *pEnv, int index)
{ /* gets the directory for index from the environment variable. */
while (*pEnv != '\0') {
- if ((pEnv[0] == '=') && (DriveIndex((char)pEnv[1]) == index)) {
+ if ((pEnv[0] == '=') && (DriveIndex((char)pEnv[1]) == index)
+ && pEnv[2] == ':' && pEnv[3] == '=') {
SetDirW(&pEnv[4], index);
break;
}
diff --git a/Master/tlpkg/tlperl/lib/CORE/warnings.h b/Master/tlpkg/tlperl/lib/CORE/warnings.h
index 337bef374c0..01668377fce 100644
--- a/Master/tlpkg/tlperl/lib/CORE/warnings.h
+++ b/Master/tlpkg/tlperl/lib/CORE/warnings.h
@@ -111,12 +111,18 @@
#define WARN_MISSING 64
#define WARN_REDUNDANT 65
+/* Warnings Categories added in Perl 5.025 */
+
+#define WARN_EXPERIMENTAL__DECLARED_REFS 66
+
#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 cBOOL(PL_curcop->cop_warnings != pWARN_STD)
-#define isLEXWARN_off cBOOL(PL_curcop->cop_warnings == pWARN_STD)
+#define isLEXWARN_on \
+ cBOOL(PL_curcop && PL_curcop->cop_warnings != pWARN_STD)
+#define isLEXWARN_off \
+ cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD)
#define isWARN_ONCE (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
#define isWARN_on(c,x) (IsSet((U8 *)(c + 1), 2*(x)))
#define isWARNf_on(c,x) (IsSet((U8 *)(c + 1), 2*(x)+1))
@@ -126,6 +132,64 @@
: (STRLEN*)CopyD(p, PerlMemShared_malloc(sizeof(*p)+*p), sizeof(*p)+*p, \
char))
+/*
+
+=head1 Warning and Dieing
+
+=for apidoc Am|bool|ckWARN|U32 w
+
+Returns a boolean as to whether or not warnings are enabled for the warning
+category C<w>. If the category is by default enabled even if not within the
+scope of S<C<use warnings>>, instead use the L</ckWARN_d> macro.
+
+=for apidoc Am|bool|ckWARN_d|U32 w
+
+Like C<L</ckWARN>>, but for use if and only if the warning category is by
+default enabled even if not within the scope of S<C<use warnings>>.
+
+=for apidoc Am|bool|ckWARN2|U32 w1|U32 w2
+
+Like C<L</ckWARN>>, but takes two warnings categories as input, and returns
+TRUE if either is enabled. If either category is by default enabled even if
+not within the scope of S<C<use warnings>>, instead use the L</ckWARN2_d>
+macro. The categories must be completely independent, one may not be
+subclassed from the other.
+
+=for apidoc Am|bool|ckWARN2_d|U32 w1|U32 w2
+
+Like C<L</ckWARN2>>, but for use if and only if either warning category is by
+default enabled even if not within the scope of S<C<use warnings>>.
+
+=for apidoc Am|bool|ckWARN3|U32 w1|U32 w2|U32 w3
+
+Like C<L</ckWARN2>>, but takes three warnings categories as input, and returns
+TRUE if any is enabled. If any of the categories is by default enabled even
+if not within the scope of S<C<use warnings>>, instead use the L</ckWARN3_d>
+macro. The categories must be completely independent, one may not be
+subclassed from any other.
+
+=for apidoc Am|bool|ckWARN3_d|U32 w1|U32 w2|U32 w3
+
+Like C<L</ckWARN3>>, but for use if and only if any of the warning categories
+is by default enabled even if not within the scope of S<C<use warnings>>.
+
+=for apidoc Am|bool|ckWARN4|U32 w1|U32 w2|U32 w3|U32 w4
+
+Like C<L</ckWARN3>>, but takes four warnings categories as input, and returns
+TRUE if any is enabled. If any of the categories is by default enabled even
+if not within the scope of S<C<use warnings>>, instead use the L</ckWARN4_d>
+macro. The categories must be completely independent, one may not be
+subclassed from any other.
+
+=for apidoc Am|bool|ckWARN4_d|U32 w1|U32 w2|U32 w3|U32 w4
+
+Like C<L</ckWARN4>>, but for use if and only if any of the warning categories
+is by default enabled even if not within the scope of S<C<use warnings>>.
+
+=cut
+
+*/
+
#define ckWARN(w) Perl_ckwarn(aTHX_ packWARN(w))
/* The w1, w2 ... should be independent warnings categories; one shouldn't be
@@ -157,7 +221,8 @@
#define unpackWARN4(x) (((x) >>24) & 0xFF)
#define ckDEAD(x) \
- ( ! specialWARN(PL_curcop->cop_warnings) && \
+ (PL_curcop && \
+ !specialWARN(PL_curcop->cop_warnings) && \
( isWARNf_on(PL_curcop->cop_warnings, WARN_ALL) || \
isWARNf_on(PL_curcop->cop_warnings, unpackWARN1(x)) || \
isWARNf_on(PL_curcop->cop_warnings, unpackWARN2(x)) || \
diff --git a/Master/tlpkg/tlperl/lib/CORE/win32.h b/Master/tlpkg/tlperl/lib/CORE/win32.h
index 9b79e009f1e..6de9c9b7264 100644
--- a/Master/tlpkg/tlperl/lib/CORE/win32.h
+++ b/Master/tlpkg/tlperl/lib/CORE/win32.h
@@ -262,13 +262,13 @@ typedef unsigned short mode_t;
#define snprintf _snprintf
#define vsnprintf _vsnprintf
-/* on VC2003, msvcrt.lib is missing these symbols */
+/* on VS2003, msvcrt.lib is missing these symbols */
#if _MSC_VER >= 1300 && _MSC_VER < 1400
# pragma intrinsic(_rotl64,_rotr64)
#endif
-# pragma warning(push)
-# pragma warning(disable:4756;disable:4056)
+#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
@@ -277,8 +277,8 @@ double S_Infinity() {
folding INF is creating -INF */
return (DBL_MAX+DBL_MAX);
}
-# pragma warning(pop)
-# define NV_INF S_Infinity()
+#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,
@@ -290,10 +290,64 @@ double S_Infinity() {
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)
+#define NV_NAN ((NV)__PL_nan_u.__d)
+
+/* The CRT was rewritten in VS2015. */
+#if _MSC_VER >= 1900
+
+/* No longer declared in stdio.h */
+char *gets(char* buffer);
+
+#define tzname _tzname
+
+/* From corecrt_internal_stdio.h: */
+typedef struct
+{
+ union
+ {
+ FILE _public_file;
+ char* _ptr;
+ };
+
+ char* _base;
+ int _cnt;
+ long _flags;
+ long _file;
+ int _charbuf;
+ int _bufsiz;
+ char* _tmpfname;
+ CRITICAL_SECTION _lock;
+} __crt_stdio_stream_data;
+
+#define PERLIO_FILE_flag_RD 0x0001 /* _IOREAD */
+#define PERLIO_FILE_flag_WR 0x0002 /* _IOWRITE */
+#define PERLIO_FILE_flag_RW 0x0004 /* _IOUPDATE */
+#define PERLIO_FILE_ptr(f) (((__crt_stdio_stream_data*)(f))->_ptr)
+#define PERLIO_FILE_base(f) (((__crt_stdio_stream_data*)(f))->_base)
+#define PERLIO_FILE_cnt(f) (((__crt_stdio_stream_data*)(f))->_cnt)
+#define PERLIO_FILE_flag(f) ((int)(((__crt_stdio_stream_data*)(f))->_flags))
+#define PERLIO_FILE_file(f) ((int)(((__crt_stdio_stream_data*)(f))->_file))
+
+#endif
#endif /* _MSC_VER */
+#if (!defined(_MSC_VER)) || (defined(_MSC_VER) && _MSC_VER < 1900)
+
+/* Note: PERLIO_FILE_ptr/base/cnt are not actually used for GCC or <VS2015
+ * since FILE_ptr/base/cnt do the same thing anyway but it doesn't hurt to
+ * define them all here for completeness. */
+#define PERLIO_FILE_flag_RD _IOREAD /* 0x001 */
+#define PERLIO_FILE_flag_WR _IOWRT /* 0x002 */
+#define PERLIO_FILE_flag_RW _IORW /* 0x080 */
+#define PERLIO_FILE_ptr(f) ((f)->_ptr)
+#define PERLIO_FILE_base(f) ((f)->_base)
+#define PERLIO_FILE_cnt(f) ((f)->_cnt)
+#define PERLIO_FILE_flag(f) ((f)->_flag)
+#define PERLIO_FILE_file(f) ((f)->_file)
+
+#endif
+
#ifdef __MINGW32__ /* Minimal Gnu-Win32 */
typedef long uid_t;
@@ -545,21 +599,31 @@ void win32_wait_for_children(pTHX);
# define PERL_WAIT_FOR_CHILDREN win32_wait_for_children(aTHX)
#endif
+/* The following ioinfo struct manipulations had been removed but were
+ * reinstated to fix RT#120091/118059. However, they do not work with
+ * the rewritten CRT in VS2015 so they are removed once again for VS2015
+ * onwards, which will therefore suffer from the reintroduction of the
+ * close socket bug. */
+#if (!defined(_MSC_VER)) || (defined(_MSC_VER) && _MSC_VER < 1900)
+
#ifdef PERL_CORE
+
/* C doesn't like repeat struct definitions */
#if defined(__MINGW32__) && (__MINGW32_MAJOR_VERSION>=3)
-#undef _CRTIMP
+# undef _CRTIMP
#endif
#ifndef _CRTIMP
-#define _CRTIMP __declspec(dllimport)
+# define _CRTIMP __declspec(dllimport)
#endif
-/* VV 2005 has multiple ioinfo struct definitions through VC 2005's release life
- * VC 2008-2012 have been stable but do not assume future VCs will have the
+/* VS2005 has multiple ioinfo struct definitions through VS2005's release life
+ * VS2008-2012 have been stable but do not assume future VSs will have the
* same ioinfo struct, just because past struct stability. If research is done
- * on the CRTs of future VS, the version check can be bumped up so the newer
- * VC uses a fixed ioinfo size.
+ * on the CRTs of future VSs, the version check can be bumped up so the newer
+ * VS uses a fixed ioinfo size. (Actually, only VS2013 (_MSC_VER 1800) hasn't
+ * been looked at; after that we cannot use the ioinfo struct anyway (see the
+ * #if above).)
*/
#if ! (_MSC_VER < 1400 || (_MSC_VER >= 1500 && _MSC_VER <= 1700) \
|| defined(__MINGW32__))
@@ -582,7 +646,7 @@ typedef struct {
# if _MSC_VER >= 1400 && _MSC_VER < 1500
# error "This ioinfo struct is incomplete for Visual C 2005"
# endif
-/* VC 2005 CRT has at least 3 different definitions of this struct based on the
+/* VS2005 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
@@ -636,9 +700,12 @@ EXTERN_C _CRTIMP ioinfo* __pioinfo[];
#endif
/* since we are not doing a dup2(), this works fine */
-# define _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = (intptr_t)osfh)
+#define _set_osfhnd(fh, osfh) (void)(_osfhnd(fh) = (intptr_t)osfh)
+
#endif /* PERL_CORE */
+#endif /* !defined(_MSC_VER) || _MSC_VER<1900 */
+
/* IO.xs and POSIX.xs define PERLIO_NOT_STDIO to 1 */
#if defined(PERL_EXT_IO) || defined(PERL_EXT_POSIX)
#undef PERLIO_NOT_STDIO
diff --git a/Master/tlpkg/tlperl/lib/CPAN.pm b/Master/tlpkg/tlperl/lib/CPAN.pm
index 25bf3494a8e..4f028505f8e 100644
--- a/Master/tlpkg/tlperl/lib/CPAN.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN.pm
@@ -2,7 +2,7 @@
# vim: ts=4 sts=4 sw=4:
use strict;
package CPAN;
-$CPAN::VERSION = '2.11_01';
+$CPAN::VERSION = '2.18';
$CPAN::VERSION =~ s/_//;
# we need to run chdir all over and we would get at wrong libraries
@@ -14,6 +14,7 @@ BEGIN {
$inc = File::Spec->rel2abs($inc) unless ref $inc;
}
}
+ $SIG{WINCH} = 'IGNORE' if exists $SIG{WINCH};
}
use CPAN::Author;
use CPAN::HandleConfig;
@@ -460,7 +461,7 @@ Enter 'h' for help.
}
for my $class (qw(Module Distribution)) {
# again unsafe meta access?
- for my $dm (keys %{$CPAN::META->{readwrite}{"CPAN::$class"}}) {
+ for my $dm (sort keys %{$CPAN::META->{readwrite}{"CPAN::$class"}}) {
next unless $CPAN::META->{readwrite}{"CPAN::$class"}{$dm}{incommandcolor};
CPAN->debug("BUG: $class '$dm' was in command state, resetting");
delete $CPAN::META->{readwrite}{"CPAN::$class"}{$dm}{incommandcolor};
@@ -708,13 +709,14 @@ sub checklock {
my $otherpid = <$fh>;
my $otherhost = <$fh>;
$fh->close;
- if (defined $otherpid && $otherpid) {
+ if (defined $otherpid && length $otherpid) {
chomp $otherpid;
}
- if (defined $otherhost && $otherhost) {
+ if (defined $otherhost && length $otherhost) {
chomp $otherhost;
}
my $thishost = hostname();
+ my $ask_if_degraded_wanted = 0;
if (defined $otherhost && defined $thishost &&
$otherhost ne '' && $thishost ne '' &&
$otherhost ne $thishost) {
@@ -732,31 +734,7 @@ There seems to be running another CPAN process (pid $otherpid). Contacting...
});
if (kill 0, $otherpid or $!{EPERM}) {
$CPAN::Frontend->mywarn(qq{Other job is running.\n});
- my($ans) =
- CPAN::Shell::colorable_makemaker_prompt
- (qq{Shall I try to run in downgraded }.
- qq{mode? (Y/n)},"y");
- if ($ans =~ /^y/i) {
- $CPAN::Frontend->mywarn("Running in downgraded mode (experimental).
-Please report if something unexpected happens\n");
- $RUN_DEGRADED = 1;
- for ($CPAN::Config) {
- # XXX
- # $_->{build_dir_reuse} = 0; # 2006-11-17 akoenig Why was that?
- $_->{commandnumber_in_prompt} = 0; # visibility
- $_->{histfile} = ""; # who should win otherwise?
- $_->{cache_metadata} = 0; # better would be a lock?
- $_->{use_sqlite} = 0; # better would be a write lock!
- $_->{auto_commit} = 0; # we are violent, do not persist
- $_->{test_report} = 0; # Oliver Paukstadt had sent wrong reports in degraded mode
- }
- } else {
- $CPAN::Frontend->mydie("
-You may want to kill the other job and delete the lockfile. On UNIX try:
- kill $otherpid
- rm $lockfile
-");
- }
+ $ask_if_degraded_wanted = 1;
} elsif (-w $lockfile) {
my($ans) =
CPAN::Shell::colorable_makemaker_prompt
@@ -773,10 +751,46 @@ You may want to kill the other job and delete the lockfile. On UNIX try:
qq{ and then rerun us.\n}
);
}
+ } elsif ($^O eq "MSWin32") {
+ $CPAN::Frontend->mywarn(
+ qq{
+There seems to be running another CPAN process according to '$lockfile'.
+});
+ $ask_if_degraded_wanted = 1;
} else {
$CPAN::Frontend->mydie(sprintf("CPAN.pm panic: Found invalid lockfile ".
"'$lockfile', please remove. Cannot proceed.\n"));
}
+ if ($ask_if_degraded_wanted) {
+ my($ans) =
+ CPAN::Shell::colorable_makemaker_prompt
+ (qq{Shall I try to run in downgraded }.
+ qq{mode? (Y/n)},"y");
+ if ($ans =~ /^y/i) {
+ $CPAN::Frontend->mywarn("Running in downgraded mode (experimental).
+Please report if something unexpected happens\n");
+ $RUN_DEGRADED = 1;
+ for ($CPAN::Config) {
+ # XXX
+ # $_->{build_dir_reuse} = 0; # 2006-11-17 akoenig Why was that?
+ $_->{commandnumber_in_prompt} = 0; # visibility
+ $_->{histfile} = ""; # who should win otherwise?
+ $_->{cache_metadata} = 0; # better would be a lock?
+ $_->{use_sqlite} = 0; # better would be a write lock!
+ $_->{auto_commit} = 0; # we are violent, do not persist
+ $_->{test_report} = 0; # Oliver Paukstadt had sent wrong reports in degraded mode
+ }
+ } else {
+ my $msg = "You may want to kill the other job and delete the lockfile.";
+ if (defined $otherpid) {
+ $msg .= " Something like:
+ kill $otherpid
+ rm $lockfile
+";
+ }
+ $CPAN::Frontend->mydie("\n$msg");
+ }
+ }
}
my $dotcpan = $CPAN::Config->{cpan_home};
eval { File::Path::mkpath($dotcpan);};
@@ -1050,6 +1064,16 @@ sub has_usable {
},
],
'Net::FTP' => [
+ sub {
+ my $var = $CPAN::Config->{ftp_proxy} || $ENV{ftp_proxy};
+ if ($var and $var =~ /^http:/i) {
+ # rt #110833
+ for ("Net::FTP cannot handle http proxy") {
+ $CPAN::Frontend->mywarn($_);
+ die $_;
+ }
+ }
+ },
sub {require Net::FTP},
sub {require Net::Config},
],
@@ -1356,8 +1380,8 @@ sub _list_sorted_descending_is_tested {
keys %{$self->{is_tested}};
if ($foul) {
$CPAN::Frontend->mywarn("Lost build_dir detected ($foul), giving up all cached test results of currently running session.\n");
- for my $dbd (keys %{$self->{is_tested}}) { # distro-build-dir
- SEARCH: for my $d ($CPAN::META->all_objects("CPAN::Distribution")) {
+ for my $dbd (sort keys %{$self->{is_tested}}) { # distro-build-dir
+ SEARCH: for my $d (sort { $a->id cmp $b->id } $CPAN::META->all_objects("CPAN::Distribution")) {
if ($d->{build_dir} && $d->{build_dir} eq $dbd) {
$CPAN::Frontend->mywarn(sprintf "Flushing cache for %s\n", $d->pretty_id);
$d->fforce("");
@@ -1973,6 +1997,10 @@ the form
Modulename=arg0,arg1,arg2,arg3,...
+eg:
+
+ CPAN::Plugin::Flurb=dir,/opt/pkgs/flurb/raw,verbose,1
+
At run time, each listed plugin is instantiated as a singleton object
by running the equivalent of this pseudo code:
@@ -2093,6 +2121,9 @@ currently defined:
bzip2 path to external prg
cache_metadata use serializer to cache metadata
check_sigs if signatures should be verified
+ cleanup_after_install
+ remove build directory immediately after a
+ successful install
colorize_debug Term::ANSIColor attributes for debugging output
colorize_output boolean if Term::ANSIColor should colorize output
colorize_print Term::ANSIColor attributes for normal output
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Bundle.pm b/Master/tlpkg/tlperl/lib/CPAN/Bundle.pm
index 1525dde5e32..3b4e93d8bf6 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Bundle.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Bundle.pm
@@ -8,7 +8,7 @@ use CPAN::Module;
use vars qw(
$VERSION
);
-$VERSION = "5.5001";
+$VERSION = "5.5003";
sub look {
my $self = shift;
@@ -21,6 +21,11 @@ sub undelay {
delete $self->{later};
for my $c ( $self->contains ) {
my $obj = CPAN::Shell->expandany($c) or next;
+ if ($obj->id eq $self->id){
+ my $id = $obj->id;
+ $CPAN::Frontend->mywarn("$id seems to contain itself, skipping\n");
+ next;
+ }
$obj->undelay;
}
}
@@ -39,7 +44,12 @@ sub color_cmd_tmps {
&& $color==1
&& $self->{incommandcolor}==$color;
if ($depth>=$CPAN::MAX_RECURSION) {
- die(CPAN::Exception::RecursiveDependency->new($ancestors));
+ my $e = CPAN::Exception::RecursiveDependency->new($ancestors);
+ if ($e->is_resolvable) {
+ return $self->{incommandcolor}=2;
+ } else {
+ die $e;
+ }
}
# warn "color_cmd_tmps $depth $color " . $self->id; # sleep 1;
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Distribution.pm b/Master/tlpkg/tlperl/lib/CPAN/Distribution.pm
index 092b781ac2e..64976eb7bbd 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Distribution.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Distribution.pm
@@ -8,7 +8,7 @@ use CPAN::InfoObj;
use File::Path ();
@CPAN::Distribution::ISA = qw(CPAN::InfoObj);
use vars qw($VERSION);
-$VERSION = "2.04";
+$VERSION = "2.18";
# no prepare, because prepare is not a command on the shell command line
# TODO: clear instance cache on reload
@@ -207,17 +207,22 @@ sub color_cmd_tmps {
&& $self->{incommandcolor}==$color;
$CPAN::MAX_RECURSION||=0; # silence 'once' warnings
if ($depth>=$CPAN::MAX_RECURSION) {
- die(CPAN::Exception::RecursiveDependency->new($ancestors));
+ my $e = CPAN::Exception::RecursiveDependency->new($ancestors);
+ if ($e->is_resolvable) {
+ return $self->{incommandcolor}=2;
+ } else {
+ die $e;
+ }
}
# warn "color_cmd_tmps $depth $color " . $self->id; # sleep 1;
my $prereq_pm = $self->prereq_pm;
if (defined $prereq_pm) {
# XXX also optional_req & optional_breq? -- xdg, 2012-04-01
# A: no, optional deps may recurse -- ak, 2014-05-07
- PREREQ: for my $pre (
+ PREREQ: for my $pre (sort(
keys %{$prereq_pm->{requires}||{}},
keys %{$prereq_pm->{build_requires}||{}},
- ) {
+ )) {
next PREREQ if $pre eq "perl";
my $premo;
unless ($premo = CPAN::Shell->expand("Module",$pre)) {
@@ -251,7 +256,7 @@ sub as_string {
#-> sub CPAN::Distribution::containsmods ;
sub containsmods {
my $self = shift;
- return keys %{$self->{CONTAINSMODS}} if exists $self->{CONTAINSMODS};
+ return sort keys %{$self->{CONTAINSMODS}} if exists $self->{CONTAINSMODS};
my $dist_id = $self->{ID};
for my $mod ($CPAN::META->all_objects("CPAN::Module")) {
my $mod_file = $mod->cpan_file or next;
@@ -264,7 +269,7 @@ sub containsmods {
}
$self->{CONTAINSMODS}{$mod_id} = undef if $mod_file eq $dist_id;
}
- keys %{$self->{CONTAINSMODS}||={}};
+ sort keys %{$self->{CONTAINSMODS}||={}};
}
#-> sub CPAN::Distribution::upload_date ;
@@ -372,6 +377,7 @@ sub get {
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ # local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # get
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -517,105 +523,66 @@ See also http://rt.cpan.org/Ticket/Display.html?id=38932\n");
@readdir = grep { $_ ne "pax_global_header" } @readdir;
}
$dh->close;
- my ($packagedir);
- # XXX here we want in each branch File::Temp to protect all build_dir directories
- if (CPAN->has_usable("File::Temp")) {
- my $tdir_base;
- my $from_dir;
- my @dirents;
- if (@readdir == 1 && -d $readdir[0]) {
- $tdir_base = $readdir[0];
- $from_dir = File::Spec->catdir(File::Spec->curdir,$readdir[0]);
- my $dh2;
- unless ($dh2 = DirHandle->new($from_dir)) {
- my($mode) = (stat $from_dir)[2];
- my $why = sprintf
- (
- "Couldn't opendir '%s', mode '%o': %s",
- $from_dir,
- $mode,
- $!,
- );
- $CPAN::Frontend->mywarn("$why\n");
- $self->{writemakefile} = CPAN::Distrostatus->new("NO -- $why");
- return;
- }
- @dirents = grep $_ !~ /^\.\.?(?!\n)\Z/s, $dh2->read; ### MAC??
- } else {
- my $userid = $self->cpan_userid;
- CPAN->debug("userid[$userid]");
- if (!$userid or $userid eq "N/A") {
- $userid = "anon";
- }
- $tdir_base = $userid;
- $from_dir = File::Spec->curdir;
- @dirents = @readdir;
+ my $tdir_base;
+ my $from_dir;
+ my @dirents;
+ if (@readdir == 1 && -d $readdir[0]) {
+ $tdir_base = $readdir[0];
+ $from_dir = File::Spec->catdir(File::Spec->curdir,$readdir[0]);
+ my $dh2;
+ unless ($dh2 = DirHandle->new($from_dir)) {
+ my($mode) = (stat $from_dir)[2];
+ my $why = sprintf
+ (
+ "Couldn't opendir '%s', mode '%o': %s",
+ $from_dir,
+ $mode,
+ $!,
+ );
+ $CPAN::Frontend->mywarn("$why\n");
+ $self->{writemakefile} = CPAN::Distrostatus->new("NO -- $why");
+ return;
}
- eval { File::Path::mkpath $builddir; };
- if ($@) {
- $CPAN::Frontend->mydie("Cannot create directory $builddir: $@");
+ @dirents = grep $_ !~ /^\.\.?(?!\n)\Z/s, $dh2->read; ### MAC??
+ } else {
+ my $userid = $self->cpan_userid;
+ CPAN->debug("userid[$userid]");
+ if (!$userid or $userid eq "N/A") {
+ $userid = "anon";
}
- $packagedir = File::Temp::tempdir(
- "$tdir_base-XXXXXX",
- DIR => $builddir,
- CLEANUP => 0,
- );
- chmod 0777 &~ umask, $packagedir; # may fail
- my $f;
- for $f (@dirents) { # is already without "." and ".."
- my $from = File::Spec->catfile($from_dir,$f);
- my $to = File::Spec->catfile($packagedir,$f);
- unless (File::Copy::move($from,$to)) {
- my $err = $!;
- $from = File::Spec->rel2abs($from);
- Carp::confess("Couldn't move $from to $to: $err");
- }
+ $tdir_base = $userid;
+ $from_dir = File::Spec->curdir;
+ @dirents = @readdir;
+ }
+ eval { File::Path::mkpath $builddir; };
+ if ($@) {
+ $CPAN::Frontend->mydie("Cannot create directory $builddir: $@");
+ }
+ my $packagedir;
+ my $eexist = $CPAN::META->has_usable("Errno") ? &Errno::EEXIST : undef;
+ for(my $suffix = 0; ; $suffix++) {
+ $packagedir = File::Spec->catdir($builddir, "$tdir_base-$suffix");
+ my $parent = $builddir;
+ mkdir($packagedir, 0777) and last;
+ if((defined($eexist) && $! != $eexist) || $suffix == 999) {
+ $CPAN::Frontend->mydie("Cannot create directory $packagedir: $!\n");
}
- } else { # older code below, still better than nothing when there is no File::Temp
- my($distdir);
- if (@readdir == 1 && -d $readdir[0]) {
- $distdir = $readdir[0];
- $packagedir = File::Spec->catdir($builddir,$distdir);
- $self->debug("packagedir[$packagedir]builddir[$builddir]distdir[$distdir]")
- if $CPAN::DEBUG;
- -d $packagedir and $CPAN::Frontend->myprint("Removing previously used ".
- "$packagedir\n");
- File::Path::rmtree($packagedir);
- unless (File::Copy::move($distdir,$packagedir)) {
- $CPAN::Frontend->unrecoverable_error(<<EOF);
-Couldn't move '$distdir' to '$packagedir': $!
-
-Cannot continue: Please find the reason why I cannot move
-$builddir/tmp-$$/$distdir
-to
-$packagedir
-and fix the problem, then retry
-
-EOF
- }
- $self->debug(sprintf("moved distdir[%s] to packagedir[%s] -e[%s]-d[%s]",
- $distdir,
- $packagedir,
- -e $packagedir,
- -d $packagedir,
- )) if $CPAN::DEBUG;
- } else {
- my $userid = $self->cpan_userid;
- CPAN->debug("userid[$userid]") if $CPAN::DEBUG;
- if (!$userid or $userid eq "N/A") {
- $userid = "anon";
- }
- my $pragmatic_dir = $userid . '000';
- $pragmatic_dir =~ s/\W_//g;
- $pragmatic_dir++ while -d "../$pragmatic_dir";
- $packagedir = File::Spec->catdir($builddir,$pragmatic_dir);
- $self->debug("packagedir[$packagedir]") if $CPAN::DEBUG;
- File::Path::mkpath($packagedir);
- my($f);
- for $f (@readdir) { # is already without "." and ".."
- my $to = File::Spec->catdir($packagedir,$f);
- File::Copy::move($f,$to) or Carp::confess("Couldn't move $f to $to: $!");
- }
+ }
+ my $f;
+ for $f (@dirents) { # is already without "." and ".."
+ my $from = File::Spec->catfile($from_dir,$f);
+ my $to = File::Spec->catfile($packagedir,$f);
+ unless (File::Copy::move($from,$to)) {
+ my $err = $!;
+ $from = File::Spec->rel2abs($from);
+ $CPAN::Frontend->mydie(
+ "Couldn't move $from to $to: $err; #82295? ".
+ "CPAN::VERSION=$CPAN::VERSION; ".
+ "File::Copy::VERSION=$File::Copy::VERSION; ".
+ "$from " . (-e $from ? "exists; " : "does not exist; ").
+ "$to " . (-e $to ? "exists; " : "does not exist; ").
+ "cwd=" . CPAN::anycwd() . ";"
+ );
}
}
$self->{build_dir} = $packagedir;
@@ -734,7 +701,7 @@ sub satisfy_configure_requires {
return 1 unless @prereq;
$self->debug(\@prereq) if $CPAN::DEBUG;
if ($self->{configure_requires_later}) {
- for my $k (keys %{$self->{configure_requires_later_for}||{}}) {
+ for my $k (sort keys %{$self->{configure_requires_later_for}||{}}) {
if ($self->{configure_requires_later_for}{$k}>1) {
my $type = "";
for my $p (@prereq) {
@@ -1336,6 +1303,7 @@ Could not determine which directory to use for looking at $dist.
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ # local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # look
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -1855,6 +1823,7 @@ sub prepare {
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # prepare
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -2149,6 +2118,7 @@ is part of the perl-%s distribution. To install that, you need to run
? $ENV{PERL5LIB}
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # make
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
@@ -2228,7 +2198,7 @@ is part of the perl-%s distribution. To install that, you need to run
"system()\n");
}
}
- my $system_ok;
+ my ($system_ok, $system_err);
if ($want_expect) {
# XXX probably want to check _should_report here and
# warn about not being able to use CPAN::Reporter with expect
@@ -2240,7 +2210,9 @@ is part of the perl-%s distribution. To install that, you need to run
$system_ok = ! $ret;
}
else {
- $system_ok = system($system) == 0;
+ my $rc = system($system);
+ $system_ok = $rc == 0;
+ $system_err = $! if $rc == -1;
}
$self->introduce_myself;
if ( $system_ok ) {
@@ -2250,6 +2222,7 @@ is part of the perl-%s distribution. To install that, you need to run
$self->{writemakefile} ||= CPAN::Distrostatus->new("YES");
$self->{make} = CPAN::Distrostatus->new("NO");
$CPAN::Frontend->mywarn(" $system -- NOT OK\n");
+ $CPAN::Frontend->mywarn(" $system_err\n") if defined $system_err;
}
$self->store_persistent_state;
@@ -2855,7 +2828,7 @@ sub unsat_prereq {
$CPAN::META->has_usable("CPAN::Meta::Requirements")
or die "CPAN::Meta::Requirements not available";
my $merged = CPAN::Meta::Requirements->from_string_hash($merged_hash);
- my @merged = $merged->required_modules;
+ my @merged = sort $merged->required_modules;
CPAN->debug("all merged_prereqs[@merged]") if $CPAN::DEBUG;
NEED: for my $need_module ( @merged ) {
my $need_version = $merged->requirements_for_module($need_module);
@@ -2869,9 +2842,23 @@ sub unsat_prereq {
$CPAN::SQLite->search("CPAN::Module",$need_module);
}
$nmo = $CPAN::META->instance("CPAN::Module",$need_module);
- next if $nmo->uptodate;
$inst_file = $nmo->inst_file || '';
$available_file = $nmo->available_file || '';
+ $available_version = $nmo->available_version;
+ if ($nmo->uptodate) {
+ my $accepts = eval {
+ $merged->accepts_module($need_module, $available_version);
+ };
+ unless ($accepts) {
+ my $rq = $merged->requirements_for_module( $need_module );
+ $CPAN::Frontend->mywarn(
+ "Warning: Version '$available_version' of ".
+ "'$need_module' is up to date but does not ".
+ "fulfill requirements ($rq). I will continue, ".
+ "but chances to succeed are low.\n");
+ }
+ next NEED;
+ }
# if they have not specified a version, we accept any installed one
if ( $available_file
@@ -2884,8 +2871,6 @@ sub unsat_prereq {
next NEED;
}
}
-
- $available_version = $nmo->available_version;
}
# We only want to install prereqs if either they're not installed
@@ -3263,7 +3248,8 @@ sub prereq_pm {
}
my $areq;
my $do_replace;
- while (my($k,$v) = each %{$req||{}}) {
+ foreach my $k (sort keys %{$req||{}}) {
+ my $v = $req->{$k};
next unless defined $v;
if ($v =~ /\d/) {
$areq->{$k} = $v;
@@ -3500,6 +3486,7 @@ sub test {
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # test
$CPAN::META->set_perl5lib;
local $ENV{MAKEFLAGS}; # protect us from outer make calls
local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
@@ -3664,7 +3651,7 @@ sub _make_test_illuminate_prereqs {
my @prereq;
# local $CPAN::DEBUG = 16; # Distribution
- for my $m (keys %{$self->{sponsored_mods}}) {
+ for my $m (sort keys %{$self->{sponsored_mods}}) {
next unless $self->{sponsored_mods}{$m} > 0;
my $m_obj = CPAN::Shell->expand("Module",$m) or next;
# XXX we need available_version which reflects
@@ -3973,6 +3960,7 @@ sub install {
: ($ENV{PERLLIB} || "");
local $ENV{PERL5OPT} = defined $ENV{PERL5OPT} ? $ENV{PERL5OPT} : "";
+ local $ENV{PERL_USE_UNSAFE_INC} = exists $ENV{PERL_USE_UNSAFE_INC} ? $ENV{PERL_USE_UNSAFE_INC} : 1; # install
$CPAN::META->set_perl5lib;
local $ENV{PERL_MM_USE_DEFAULT} = 1 if $CPAN::Config->{use_prompt_default};
local $ENV{NONINTERACTIVE_TESTING} = 1 if $CPAN::Config->{use_prompt_default};
@@ -3992,6 +3980,15 @@ sub install {
$CPAN::Frontend->myprint(" $system -- OK\n");
$CPAN::META->is_installed($self->{build_dir});
$self->{install} = CPAN::Distrostatus->new("YES");
+ if ($CPAN::Config->{'cleanup_after_install'}) {
+ my $parent = File::Spec->catdir( $self->{build_dir}, File::Spec->updir );
+ chdir $parent or $CPAN::Frontend->mydie("Couldn't chdir to $parent: $!\n");
+ File::Path::rmtree($self->{build_dir});
+ my $yml = "$self->{build_dir}.yml";
+ if (-e $yml) {
+ unlink $yml or $CPAN::Frontend->mydie("Couldn't unlink $yml: $!\n");
+ }
+ }
} else {
$self->{install} = CPAN::Distrostatus->new("NO");
$CPAN::Frontend->mywarn(" $system -- NOT OK\n");
@@ -4018,7 +4015,9 @@ sub install {
}
}
delete $self->{force_update};
- $self->store_persistent_state;
+ unless ($CPAN::Config->{'cleanup_after_install'}) {
+ $self->store_persistent_state;
+ }
$self->post_install();
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Exception/RecursiveDependency.pm b/Master/tlpkg/tlperl/lib/CPAN/Exception/RecursiveDependency.pm
index b928ad74e31..82e82346efa 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Exception/RecursiveDependency.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Exception/RecursiveDependency.pm
@@ -7,7 +7,16 @@ use overload '""' => "as_string";
use vars qw(
$VERSION
);
-$VERSION = "5.5";
+$VERSION = "5.5001";
+
+{
+ package CPAN::Exception::RecursiveDependency::na;
+ use overload '""' => "as_string";
+ sub new { bless {}, shift };
+ sub as_string { "N/A" };
+}
+
+my $NA = CPAN::Exception::RecursiveDependency::na->new;
# a module sees its distribution (no version)
# a distribution sees its prereqs (which are module names) (usually with versions)
@@ -25,12 +34,13 @@ sub new {
}
}
my $in_loop = 0;
- for my $i (0..$#deps) {
+ my %mark;
+ DWALK: for my $i (0..$#deps) {
my $x = $deps[$i]{name};
$in_loop ||= $loop_starts_with && $x eq $loop_starts_with;
my $xo = CPAN::Shell->expandany($x) or next;
if ($xo->isa("CPAN::Module")) {
- my $have = $xo->inst_version || "N/A";
+ my $have = $xo->inst_version || $NA;
my($want,$d,$want_type);
if ($i>0 and $d = $deps[$i-1]{name}) {
my $do = CPAN::Shell->expandany($d);
@@ -54,13 +64,27 @@ sub new {
$deps[$i]{want_type} = $want_type;
$deps[$i]{want} = $want;
$deps[$i]{display_as} = "$x (have: $have; $want_type$want)";
+ if ((! ref $have || !$have->isa('CPAN::Exception::RecursiveDependency::na'))
+ && CPAN::Version->vge($have, $want)) {
+ # https://rt.cpan.org/Ticket/Display.html?id=115340
+ undef $loop_starts_with;
+ last DWALK;
+ }
} elsif ($xo->isa("CPAN::Distribution")) {
- $deps[$i]{display_as} = $xo->pretty_id;
+ my $pretty = $deps[$i]{display_as} = $xo->pretty_id;
+ my $mark_as;
if ($in_loop) {
- $xo->{make} = CPAN::Distrostatus->new("NO cannot resolve circular dependency");
+ $mark_as = CPAN::Distrostatus->new("NO cannot resolve circular dependency");
} else {
- $xo->{make} = CPAN::Distrostatus->new("NO one dependency ($loop_starts_with) is a circular dependency");
+ $mark_as = CPAN::Distrostatus->new("NO one dependency ($loop_starts_with) is a circular dependency");
}
+ $mark{$pretty} = { xo => $xo, mark_as => $mark_as };
+ }
+ }
+ if ($loop_starts_with) {
+ while (my($k,$v) = each %mark) {
+ my $xo = $v->{xo};
+ $xo->{make} = $v->{mark_as};
$xo->store_persistent_state; # otherwise I will not reach
# all involved parties for
# the next session
@@ -69,6 +93,10 @@ sub new {
bless { deps => \@deps, loop_starts_with => $loop_starts_with }, $class;
}
+sub is_resolvable {
+ ! defined shift->{loop_starts_with};
+}
+
sub as_string {
my($self) = shift;
my $deps = $self->{deps};
diff --git a/Master/tlpkg/tlperl/lib/CPAN/FTP.pm b/Master/tlpkg/tlperl/lib/CPAN/FTP.pm
index 831f234d3ce..a43ea02e9e8 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/FTP.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/FTP.pm
@@ -14,7 +14,7 @@ use vars qw($connect_to_internet_ok $Ua $Thesite $ThesiteURL $Themethod);
use vars qw(
$VERSION
);
-$VERSION = "5.5006";
+$VERSION = "5.5008";
#-> sub CPAN::FTP::ftp_statistics
# if they want to rewrite, they need to pass in a filehandle
@@ -35,13 +35,19 @@ sub _ftp_statistics {
while (!CPAN::_flock($fh, $locktype|LOCK_NB)) {
$waitstart ||= localtime();
if ($sleep>3) {
- $CPAN::Frontend->mywarn("Waiting for a read lock on '$file' (since $waitstart)\n");
+ my $now = localtime();
+ $CPAN::Frontend->mywarn("$now: waiting for read lock on '$file' (since $waitstart)\n");
}
- $CPAN::Frontend->mysleep($sleep);
+ sleep($sleep); # this sleep must not be overridden;
+ # Frontend->mysleep with AUTOMATED_TESTING has
+ # provoked complete lock contention on my NFS
if ($sleep <= 3) {
$sleep+=0.33;
- } elsif ($sleep <=6) {
+ } elsif ($sleep <= 6) {
$sleep+=0.11;
+ } else {
+ # retry to get a fresh handle. If it is NFS and the handle is stale, we will never get an flock
+ open $fh, "+>>$file" or $CPAN::Frontend->mydie("Could not open '$file': $!");
}
}
my $stats = eval { CPAN->_yaml_loadfile($file); };
@@ -659,7 +665,7 @@ sub hostdleasy { #called from hostdlxxx
# Net::FTP can still succeed where LWP fails. So we do not
# skip Net::FTP anymore when LWP is available.
}
- } elsif ($url =~ /^http:/ && $CPAN::META->has_usable('HTTP::Tiny')) {
+ } elsif ($url =~ /^http:/i && $CPAN::META->has_usable('HTTP::Tiny')) {
require CPAN::HTTP::Client;
my $chc = CPAN::HTTP::Client->new(
proxy => $CPAN::Config->{http_proxy} || $ENV{http_proxy},
diff --git a/Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm b/Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm
index 918e009a2bc..531c1152a85 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/FirstTime.pm
@@ -10,7 +10,7 @@ use File::Path ();
use File::Spec ();
use CPAN::Mirrors ();
use vars qw($VERSION $auto_config);
-$VERSION = "5.5307";
+$VERSION = "5.5310";
=head1 NAME
@@ -124,6 +124,14 @@ checks will be performed at all.
Always try to check and verify signatures if a SIGNATURE file is in
the package and Module::Signature is installed (yes/no)?
+=item cleanup_after_install
+
+Users who install modules and do not intend to look back, can free
+occupied disk space quickly by letting CPAN.pm cleanup each build
+directory immediately after a successful install.
+
+Remove build directory after a successful install? (yes/no)?
+
=item colorize_output
When you have Term::ANSIColor installed, you can turn on colorized
@@ -775,7 +783,7 @@ sub init {
}
} elsif (0 == length $matcher) {
} elsif (0 && $matcher eq "~") { # extremely buggy, but a nice idea
- my @unconfigured = grep { not exists $CPAN::Config->{$_}
+ my @unconfigured = sort grep { not exists $CPAN::Config->{$_}
or not defined $CPAN::Config->{$_}
or not length $CPAN::Config->{$_}
} keys %$CPAN::Config;
@@ -881,6 +889,7 @@ sub init {
my_dflt_prompt(index_expire => 1, $matcher);
my_prompt_loop(scan_cache => 'atstart', $matcher, 'atstart|atexit|never');
+ my_yn_prompt(cleanup_after_install => 0, $matcher);
#
#= cache_metadata
@@ -1300,8 +1309,9 @@ sub init {
$CPAN::Frontend->myprint("\nWriting $configpm for bootstrap...\n");
delete $CPAN::Config->{install_help}; # temporary only
CPAN::HandleConfig->commit;
- my $dist;
- if ( $dist = CPAN::Shell->expand('Module', 'local::lib')->distribution ) {
+ my($dist, $locallib);
+ $locallib = CPAN::Shell->expand('Module', 'local::lib');
+ if ( $locallib and $dist = $locallib->distribution ) {
# this is a hack to force bootstrapping
$dist->{prefs}{pl}{commandline} = "$^X Makefile.PL --bootstrap";
# Set @INC for this process so we find things as they bootstrap
diff --git a/Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm b/Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
index e596cbcd6c5..c72439f92cb 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/HandleConfig.pm
@@ -12,7 +12,7 @@ CPAN::HandleConfig - internal configuration handling for CPAN.pm
=cut
-$VERSION = "5.5006"; # see also CPAN::Config::VERSION at end of file
+$VERSION = "5.5008"; # see also CPAN::Config::VERSION at end of file
%can = (
commit => "Commit changes to disk",
@@ -42,6 +42,7 @@ $VERSION = "5.5006"; # see also CPAN::Config::VERSION at end of file
"bzip2",
"cache_metadata",
"check_sigs",
+ "cleanup_after_install",
"colorize_debug",
"colorize_output",
"colorize_print",
@@ -250,7 +251,7 @@ sub prettyprint {
sprintf "\t%-18s => %s\n",
"[$_]",
defined $v->{$_} ? "[$v->{$_}]" : "undef"
- } keys %$v;
+ } sort keys %$v;
}
$CPAN::Frontend->myprint(
join(
@@ -384,9 +385,9 @@ sub neatvalue {
return join "", @m;
}
return "$v" unless $t eq 'HASH';
- my(@m, $key, $val);
- while (($key,$val) = each %$v) {
- last unless defined $key; # cautious programming in case (undef,undef) is true
+ my @m;
+ foreach my $key (sort keys %$v) {
+ my $val = $v->{$key};
push(@m,"q[$key]=>".$self->neatvalue($val)) ;
}
return "{ ".join(', ',@m)." }";
@@ -769,7 +770,7 @@ sub prefs_lookup {
use strict;
use vars qw($AUTOLOAD $VERSION);
- $VERSION = "5.5006";
+ $VERSION = "5.5008";
# formerly CPAN::HandleConfig was known as CPAN::Config
sub AUTOLOAD { ## no critic
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Index.pm b/Master/tlpkg/tlperl/lib/CPAN/Index.pm
index 8205d78bd02..59e75dcaeed 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Index.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Index.pm
@@ -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.9601";
+$VERSION = "2.12";
@CPAN::Index::ISA = qw(CPAN::Debug);
$LAST_TIME ||= 0;
$DATE_OF_03 ||= 0;
@@ -528,7 +528,7 @@ sub rd_modlist {
my $until = keys(%$ret);
my $painted = 0;
CPAN->debug(sprintf "until[%d]", $until) if $CPAN::DEBUG;
- for (keys %$ret) {
+ for (sort keys %$ret) {
my $obj = $CPAN::META->instance("CPAN::Module",$_);
delete $ret->{$_}{modid}; # not needed here, maybe elsewhere
$obj->set(%{$ret->{$_}});
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta.pm
index afbb221855a..4a8e65c0fc1 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
#pod =head1 SYNOPSIS
#pod
@@ -650,7 +650,7 @@ CPAN::Meta - the distribution metadata for a CPAN dist
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -1031,11 +1031,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 CONTRIBUTORS
-=for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Ken Williams Lars Dieckow Leon Timmermans majensen Mark Fowler Matt S Trout Michael G. Schwern mohawk2 moznion Niko Tyni Olaf Alders Olivier Mengué Randy Sims Tomohiro Hosaka
+=for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Benjamin Noggle Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov David Golden Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Kent Fredric Ken Williams Lars Dieckow Leon Timmermans majensen Mark Fowler Matt S Trout Michael G. Schwern Mohammad Anwar mohawk2 moznion Niko Tyni Olaf Alders Olivier Mengué Randy Sims Tomohiro Hosaka
=over 4
@@ -1049,6 +1053,10 @@ Avar Arnfjord Bjarmason <avar@cpan.org>
=item *
+Benjamin Noggle <agwind@users.noreply.github.com>
+
+=item *
+
Christopher J. Madsen <cjm@cpan.org>
=item *
@@ -1065,6 +1073,10 @@ Damyan Ivanov <dam@cpan.org>
=item *
+David Golden <xdg@xdg.me>
+
+=item *
+
Eric Wilhelm <ewilhelm@cpan.org>
=item *
@@ -1085,6 +1097,10 @@ Kenichi Ishigaki <ishigaki@cpan.org>
=item *
+Kent Fredric <kentfredric@gmail.com>
+
+=item *
+
Ken Williams <kwilliams@cpan.org>
=item *
@@ -1113,6 +1129,10 @@ Michael G. Schwern <mschwern@cpan.org>
=item *
+Mohammad S Anwar <mohammad.anwar@yahoo.com>
+
+=item *
+
mohawk2 <mohawk2@users.noreply.github.com>
=item *
@@ -1143,7 +1163,7 @@ Tomohiro Hosaka <bokutin@bokut.in>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm
index 03806bc82bf..0a52dcc2e6e 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Converter.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta::Converter;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
#pod =head1 SYNOPSIS
#pod
@@ -43,22 +43,36 @@ BEGIN {
# Perl 5.10.0 didn't have "is_qv" in version.pm
*_is_qv = version->can('is_qv') ? sub { $_[0]->is_qv } : sub { exists $_[0]->{qv} };
+# We limit cloning to a maximum depth to bail out on circular data
+# structures. While actual cycle detection might be technically better,
+# we expect circularity in META data structures to be rare and generally
+# the result of user error. Therefore, a depth counter is lower overhead.
+our $DCLONE_MAXDEPTH = 1024;
+our $_CLONE_DEPTH;
+
sub _dclone {
- my $ref = shift;
-
- # if an object is in the data structure and doesn't specify how to
- # turn itself into JSON, we just stringify the object. That does the
- # right thing for typical things that might be there, like version objects,
- # Path::Class objects, etc.
- no warnings 'once';
- no warnings 'redefine';
- local *UNIVERSAL::TO_JSON = sub { "$_[0]" };
-
- my $json = Parse::CPAN::Meta->json_backend()->new
- ->utf8
- ->allow_blessed
- ->convert_blessed;
- $json->decode($json->encode($ref))
+ my ( $ref ) = @_;
+ return $ref unless my $reftype = ref $ref;
+
+ local $_CLONE_DEPTH = defined $_CLONE_DEPTH ? $_CLONE_DEPTH - 1 : $DCLONE_MAXDEPTH;
+ die "Depth Limit $DCLONE_MAXDEPTH Exceeded" if $_CLONE_DEPTH == 0;
+
+ return [ map { _dclone( $_ ) } @{$ref} ] if 'ARRAY' eq $reftype;
+ return { map { $_ => _dclone( $ref->{$_} ) } keys %{$ref} } if 'HASH' eq $reftype;
+
+ if ( 'SCALAR' eq $reftype ) {
+ my $new = _dclone(${$ref});
+ return \$new;
+ }
+
+ # We can't know if TO_JSON gives us cloned data, so refs must recurse
+ if ( eval { $ref->can('TO_JSON') } ) {
+ my $data = $ref->TO_JSON;
+ return ref $data ? _dclone( $data ) : $data;
+ }
+
+ # Just stringify everything else
+ return "$ref";
}
my %known_specs = (
@@ -333,7 +347,7 @@ sub _no_index_directory {
my ($element, $key, $meta, $version) = @_;
return unless $element;
- # cleanup wrong format
+ # clean up wrong format
if ( ! ref $element ) {
my $item = $element;
$element = { directory => [ $item ], file => [ $item ] };
@@ -421,7 +435,7 @@ sub _version_map {
}
elsif ( ref $element eq 'ARRAY' ) {
my $hashref = { map { $_ => 0 } @$element };
- return _version_map($hashref); # cleanup any weird stuff
+ return _version_map($hashref); # clean up any weird stuff
}
elsif ( ref $element eq '' && length $element ) {
return { $element => 0 }
@@ -1499,7 +1513,7 @@ CPAN::Meta::Converter - Convert CPAN distribution metadata structures
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -1622,11 +1636,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm
index 9dac4f42185..f6103495c72 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Feature.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta::Feature;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
use CPAN::Meta::Prereqs;
@@ -77,7 +77,7 @@ CPAN::Meta::Feature - an optional feature provided by a CPAN distribution
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 DESCRIPTION
@@ -132,11 +132,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm
index f4cac5e59a9..aeeade94a37 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
package CPAN::Meta::History;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
1;
@@ -22,7 +22,7 @@ CPAN::Meta::History - history of CPAN Meta Spec changes
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 DESCRIPTION
@@ -304,11 +304,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod
index cd3bb9c3f68..5932f5a6e74 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_0.pod
@@ -21,7 +21,12 @@ Conversion from the original HTML to POD format
=item *
Include list of valid licenses from L<Module::Build> 0.17 rather than
-linking to the module.
+linking to the module, with minor updates to text and links to reflect
+versions at the time of publication.
+
+=item *
+
+Fixed some dead links to point to active resources.
=back
@@ -43,16 +48,17 @@ install it.
F<META.yml> files are written in the L<YAML|http://www.yaml.org/> format. The
reasons we chose YAML instead of, say, XML or Data::Dumper are discussed in
-L<this thread|http://archive.develooper.com/makemaker@perl.org/msg00405.html>
+L<this thread|http://www.nntp.perl.org/group/perl.makemaker/2002/04/msg406.html>
on the MakeMaker mailing list.
-The first line of a F<META.yml> file should be a valid L<YAML document header|http://www.yaml.org/spec/#.Document>
+The first line of a F<META.yml> file should be a valid
+L<YAML document header|http://yaml.org/spec/history/2002-10-31.html#syntax-document>
like C<"--- #YAML:1.0">
=head1 Fields
The rest of the META.yml file is one big YAML
-L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->,
+L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>,
whose keys are described here.
=over 4
@@ -87,28 +93,29 @@ Must be one of the following licenses:
The distribution may be copied and redistributed under the same terms as perl
itself (this is by far the most common licensing option for modules on CPAN).
-This is a dual license, in which the user may choose between either the GPL or
-the Artistic license.
+This is a dual license, in which the user may choose between either the GPL
+version 1 or the Artistic version 1 license.
=item gpl
-The distribution is distributed under the terms of the Gnu General Public
-License (L<http://www.opensource.org/licenses/gpl-license.php>).
+The distribution is distributed under the terms of the GNU General Public
+License version 2 (L<http://opensource.org/licenses/GPL-2.0>).
=item lgpl
-The distribution is distributed under the terms of the Gnu Lesser General
-Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+The distribution is distributed under the terms of the GNU Lesser General
+Public License version 2 (L<http://opensource.org/licenses/LGPL-2.1>).
=item artistic
-The distribution is licensed under the Artistic License, as specified by the
-Artistic file in the standard perl distribution.
+The distribution is licensed under the Artistic License version 1, as specified
+by the Artistic file in the standard perl distribution
+(L<http://opensource.org/licenses/Artistic-Perl-1.0>).
=item bsd
-The distribution is licensed under the BSD License
-(L<http://www.opensource.org/licenses/bsd-license.php>).
+The distribution is licensed under the BSD 3-Clause License
+(L<http://opensource.org/licenses/BSD-3-Clause>).
=item open_source
@@ -118,7 +125,7 @@ license listed at L<http://www.opensource.org/licenses/>.
=item unrestricted
The distribution is licensed under a license that is B<not> approved by
-L<www.opensource.org|http://www.opensource.org> but that allows distribution
+L<www.opensource.org|http://www.opensource.org/> but that allows distribution
without restrictions.
=item restrictive
@@ -143,10 +150,11 @@ Example:
Data::Dumper: 0
File::Find: 1.03
-A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+A YAML L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>
indicating the Perl modules this distribution requires for proper
operation. The keys are the module names, and the values are version
-specifications as described in the L<Module::Build|documentation for Module::Build's "requires" parameter>.
+specifications as described in the
+L<documentation for Module::Build's "requires" parameter|Module::Build::API/requires>.
I<Note: the exact nature of the fancy specifications like
C<< ">= 1.2, != 1.5, < 2.0" >> is subject to
@@ -160,7 +168,7 @@ Example:
Data::Dumper: 0
File::Find: 1.03
-A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+A YAML L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>
indicating the Perl modules this distribution recommends for enhanced
operation.
@@ -171,7 +179,7 @@ Example:
Data::Dumper: 0
File::Find: 1.03
-A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+A YAML L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>
indicating the Perl modules required for building and/or testing of
this distribution. These dependencies are not required after the
module is installed.
@@ -183,7 +191,7 @@ Example:
Data::Dumper: 0
File::Find: 1.03
-A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+A YAML L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>
indicating the Perl modules that cannot be installed while this
distribution is installed. This is a pretty uncommon situation.
@@ -200,7 +208,7 @@ sensing the environment, etc.) as part of its build/install process.
Currently L<Module::Build> doesn't actually do anything with
this flag - it's probably going to be up to higher-level tools like
-L<CPAN|CPAN.pm> to do something useful with it. It can potentially
+L<CPAN.pm|CPAN> to do something useful with it. It can potentially
bring lots of security, packaging, and convenience improvements.
=item generated_by
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod
index 7b4b2f41ce6..e0428a5e83c 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_1.pod
@@ -21,7 +21,12 @@ Conversion from the original HTML to POD format
=item *
Include list of valid licenses from L<Module::Build> 0.18 rather than
-linking to the module.
+linking to the module, with minor updates to text and links to reflect
+versions at the time of publication.
+
+=item *
+
+Fixed some dead links to point to active resources.
=back
@@ -43,16 +48,17 @@ install it.
F<META.yml> files are written in the L<YAML|http://www.yaml.org/> format. The
reasons we chose YAML instead of, say, XML or Data::Dumper are discussed in
-L<this thread|http://archive.develooper.com/makemaker@perl.org/msg00405.html>
+L<this thread|http://www.nntp.perl.org/group/perl.makemaker/2002/04/msg406.html>
on the MakeMaker mailing list.
-The first line of a F<META.yml> file should be a valid L<YAML document header|http://www.yaml.org/spec/#.Document>
+The first line of a F<META.yml> file should be a valid
+L<YAML document header|http://yaml.org/spec/history/2002-10-31.html#syntax-document>
like C<"--- #YAML:1.0">
=head1 Fields
The rest of the META.yml file is one big YAML
-L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->,
+L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>,
whose keys are described here.
=over 4
@@ -102,28 +108,29 @@ Must be one of the following licenses:
The distribution may be copied and redistributed under the same terms as perl
itself (this is by far the most common licensing option for modules on CPAN).
-This is a dual license, in which the user may choose between either the GPL or
-the Artistic license.
+This is a dual license, in which the user may choose between either the GPL
+version 1 or the Artistic version 1 license.
=item gpl
-The distribution is distributed under the terms of the Gnu General Public
-License (L<http://www.opensource.org/licenses/gpl-license.php>).
+The distribution is distributed under the terms of the GNU General Public
+License version 2 (L<http://opensource.org/licenses/GPL-2.0>).
=item lgpl
-The distribution is distributed under the terms of the Gnu Lesser General
-Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+The distribution is distributed under the terms of the GNU Lesser General
+Public License version 2 (L<http://opensource.org/licenses/LGPL-2.1>).
=item artistic
-The distribution is licensed under the Artistic License, as specified by the
-Artistic file in the standard perl distribution.
+The distribution is licensed under the Artistic License version 1, as specified
+by the Artistic file in the standard perl distribution
+(L<http://opensource.org/licenses/Artistic-Perl-1.0>).
=item bsd
-The distribution is licensed under the BSD License
-(L<http://www.opensource.org/licenses/bsd-license.php>).
+The distribution is licensed under the BSD 3-Clause License
+(L<http://opensource.org/licenses/BSD-3-Clause>).
=item open_source
@@ -133,7 +140,7 @@ license listed at L<http://www.opensource.org/licenses/>.
=item unrestricted
The distribution is licensed under a license that is B<not> approved by
-L<www.opensource.org|http://www.opensource.org> but that allows distribution
+L<www.opensource.org|http://www.opensource.org/> but that allows distribution
without restrictions.
=item restrictive
@@ -175,10 +182,11 @@ Example:
Data::Dumper: 0
File::Find: 1.03
-A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+A YAML L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>
indicating the Perl modules this distribution requires for proper
operation. The keys are the module names, and the values are version
-specifications as described in the L<Module::Build|documentation for Module::Build's "requires" parameter>.
+specifications as described in the
+L<documentation for Module::Build's "requires" parameter|Module::Build::API/requires>.
I<Note: the exact nature of the fancy specifications like
C<< ">= 1.2, != 1.5, < 2.0" >> is subject to
@@ -192,7 +200,7 @@ Example:
Data::Dumper: 0
File::Find: 1.03
-A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+A YAML L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>
indicating the Perl modules this distribution recommends for enhanced
operation.
@@ -203,7 +211,7 @@ Example:
Data::Dumper: 0
File::Find: 1.03
-A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+A YAML L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>
indicating the Perl modules required for building and/or testing of
this distribution. These dependencies are not required after the
module is installed.
@@ -215,7 +223,7 @@ Example:
Data::Dumper: 0
File::Find: 1.03
-A YAML L<mapping|http://www.yaml.org/spec/#.-syntax-mapping-Mapping->
+A YAML L<mapping|http://yaml.org/spec/history/2002-10-31.html#syntax-mapping>
indicating the Perl modules that cannot be installed while this
distribution is installed. This is a pretty uncommon situation.
@@ -239,7 +247,7 @@ sensing the environment, etc.) as part of its build/install process.
Currently L<Module::Build> doesn't actually do anything with
this flag - it's probably going to be up to higher-level tools like
-L<CPAN|CPAN.pm> to do something useful with it. It can potentially
+L<CPAN.pm|CPAN> to do something useful with it. It can potentially
bring lots of security, packaging, and convenience improvements.
=item generated_by
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod
index 48867b2b350..1cb471fd2f2 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_2.pod
@@ -21,7 +21,12 @@ Various spelling corrections
=item *
Include list of valid licenses from L<Module::Build> 0.2611 rather than
-linking to the module.
+linking to the module, with minor updates to text and links to reflect
+versions at the time of publication.
+
+=item *
+
+Fixed some dead links to point to active resources.
=back
@@ -96,21 +101,15 @@ XML or Data::Dumper:
=item *
-Module::Build design plans
-
-L<http://nntp.x.perl.org/group/perl.makemaker/406>
+L<Module::Build design plans|http://www.nntp.perl.org/group/perl.makemaker/2002/04/msg407.html>
=item *
-Not keen on YAML
-
-L<http://nntp.x.perl.org/group/perl.module-authors/1353>
+L<Not keen on YAML|http://www.nntp.perl.org/group/perl.module-authors/2003/11/msg1353.html>
=item *
-META Concerns
-
-L<http://nntp.x.perl.org/group/perl.module-authors/1385>
+L<META Concerns|http://www.nntp.perl.org/group/perl.module-authors/2003/11/msg1385.html>
=back
@@ -136,8 +135,8 @@ well (ex. python, ruby).
=head1 VERSION SPECIFICATIONS
-Some fields require a version specification (ex. L<"requires">,
-L<"recommends">, L<"build_requires">, etc.). This section details the
+Some fields require a version specification (ex. L</requires>,
+L</recommends>, L</build_requires>, etc.). This section details the
version specifications that are currently supported.
If a single version is listed, then that version is considered to be
@@ -242,28 +241,29 @@ Must be one of the following licenses:
The distribution may be copied and redistributed under the same terms as perl
itself (this is by far the most common licensing option for modules on CPAN).
-This is a dual license, in which the user may choose between either the GPL or
-the Artistic license.
+This is a dual license, in which the user may choose between either the GPL
+version 1 or the Artistic version 1 license.
=item gpl
-The distribution is distributed under the terms of the Gnu General Public
-License (L<http://www.opensource.org/licenses/gpl-license.php>).
+The distribution is distributed under the terms of the GNU General Public
+License version 2 (L<http://opensource.org/licenses/GPL-2.0>).
=item lgpl
-The distribution is distributed under the terms of the Gnu Lesser General
-Public License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+The distribution is distributed under the terms of the GNU Lesser General
+Public License version 2 (L<http://opensource.org/licenses/LGPL-2.1>).
=item artistic
-The distribution is licensed under the Artistic License, as specified by the
-Artistic file in the standard perl distribution.
+The distribution is licensed under the Artistic License version 1, as specified
+by the Artistic file in the standard perl distribution
+(L<http://opensource.org/licenses/Artistic-Perl-1.0>).
=item bsd
-The distribution is licensed under the BSD License
-(L<http://www.opensource.org/licenses/bsd-license.php>).
+The distribution is licensed under the BSD 3-Clause License
+(L<http://opensource.org/licenses/BSD-3-Clause>).
=item open_source
@@ -273,7 +273,7 @@ license listed at L<http://www.opensource.org/licenses/>.
=item unrestricted
The distribution is licensed under a license that is B<not> approved by
-L<www.opensource.org|http://www.opensource.org> but that allows distribution
+L<www.opensource.org|http://www.opensource.org/> but that allows distribution
without restrictions.
=item restrictive
@@ -341,9 +341,9 @@ Example:
I<(Spec 1.1) [optional] {map} A YAML sequence of names for optional features
which are made available when its requirements are met. For each
-feature a description is provided along with any of L<"requires">,
-L<"build_requires">, L<"conflicts">, L<"requires_packages">,
-L<"requires_os">, and L<"excludes_os"> which have the same meaning in
+feature a description is provided along with any of L</requires>,
+L</build_requires>, L</conflicts>, C<requires_packages>,
+C<requires_os>, and C<excludes_os> which have the same meaning in
this subcontext as described elsewhere in this document.>
=head2 build_requires
@@ -394,7 +394,7 @@ If this field is omitted, it defaults to 1 (true).
=head2 private
I<(Deprecated)> (Spec 1.0) [optional] {map} This field has been renamed to
-L</"no_index">. See below.
+L</no_index>. See below.
=head2 provides
@@ -416,7 +416,7 @@ cases, is) used by distribution and automation mechanisms like PAUSE,
CPAN, and search.cpan.org to build indexes saying in which
distribution various packages can be found.
-When using tools like C<Module::Build> that can generate the
+When using tools like L<Module::Build> that can generate the
C<provides> mapping for your distribution automatically, make sure you
examine what it generates to make sure it makes sense - indexers will
usually trust the C<provides> field if it's present, rather than
@@ -536,23 +536,23 @@ tool. RWS]
=head1 SEE ALSO
-CPAN, L<http://www.cpan.org/>
+L<CPAN|http://www.cpan.org/>
-CPAN.pm, L<http://search.cpan.org/author/ANDK/CPAN/>
+L<CPAN.pm|CPAN>
-CPANPLUS, L<http://search.cpan.org/author/KANE/CPANPLUS/>
+L<CPANPLUS>
-Data::Dumper, L<http://search.cpan.org/author/ILYAM/Data-Dumper/>
+L<Data::Dumper>
-ExtUtils::MakeMaker, L<http://search.cpan.org/author/MSCHWERN/ExtUtils-MakeMaker/>
+L<ExtUtils::MakeMaker>
-Module::Build, L<http://search.cpan.org/author/KWILLIAMS/Module-Build/>
+L<Module::Build>
-Module::Install, L<http://search.cpan.org/author/KWILLIAMS/Module-Install/>
+L<Module::Install>
-XML, L<http://www.w3.org/XML/>
+L<XML|http://www.w3.org/XML/>
-YAML, L<http://www.yaml.org/>
+L<YAML|http://www.yaml.org/>
=head1 HISTORY
@@ -574,7 +574,7 @@ Created version 1.0 of this document.
=item *
-Added the L</"dynamic_config"> field, which was missing from the initial
+Added the L</dynamic_config> field, which was missing from the initial
version.
=back
@@ -594,12 +594,12 @@ L<http://nntp.x.perl.org/group/> site.
=item *
-Added and deprecated the L<"private"> field.
+Added and deprecated the L</private> field.
=item *
-Added L<"abstract">, L<"configure">, L<"requires_packages">,
-L<"requires_os">, L<"excludes_os">, and L<"no_index"> fields.
+Added L</abstract>, C<configure>, C<requires_packages>,
+C<requires_os>, C<excludes_os>, and L</no_index> fields.
=item *
@@ -613,15 +613,15 @@ Bumped version.
=item *
-Added L<"generation">, L<"authored_by"> fields.
+Added C<generation>, C<authored_by> fields.
=item *
-Add alternative proposal to the L<"recommends"> field.
+Add alternative proposal to the L</recommends> field.
=item *
-Add proposal for a L<"requires_build_tools"> field.
+Add proposal for a C<requires_build_tools> field.
=back
@@ -635,7 +635,7 @@ Added link to latest version of this specification on CPAN.
=item *
-Added section L<"VERSION SPECIFICATIONS">.
+Added section L</"VERSION SPECIFICATIONS">.
=item *
@@ -643,7 +643,7 @@ Chang name from Module::Build::META-spec to CPAN::META::Specification.
=item *
-Add proposal for L<"auto_regenerate"> field.
+Add proposal for C<auto_regenerate> field.
=back
@@ -653,15 +653,15 @@ Add proposal for L<"auto_regenerate"> field.
=item *
-Add L<"index"> field as a compliment to L<"no_index">
+Add C<index> field as a compliment to L</no_index>
=item *
-Add L<"keywords"> field as a means to aid searching distributions.
+Add L</keywords> field as a means to aid searching distributions.
=item *
-Add L<"TERMINOLOGY"> section to explain certain terms that may be
+Add L</TERMINOLOGY> section to explain certain terms that may be
ambiguous.
=back
@@ -679,7 +679,7 @@ more like records of brainstorming.
=item *
-Changed C<authored_by> to C<author>, since that's always been what
+Changed C<authored_by> to L</author>, since that's always been what
it's actually called in actual F<META.yml> files.
=item *
@@ -689,12 +689,12 @@ operators.
=item *
-Noted that the C<distribution_type> field is basically meaningless,
+Noted that the L</distribution_type> field is basically meaningless,
and shouldn't really be used.
=item *
-Clarified C<dynamic_config> a bit.
+Clarified L</dynamic_config> a bit.
=back
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod
index b075adccde6..9e889cd5970 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_3.pod
@@ -21,7 +21,12 @@ Various spelling corrections
=item *
Include list of valid licenses from L<Module::Build> 0.2805 rather than
-linking to the module.
+linking to the module, with minor updates to text and links to reflect
+versions at the time of publication.
+
+=item *
+
+Fixed some dead links to point to active resources.
=back
@@ -94,17 +99,17 @@ XML or Data::Dumper:
=over 4
-=item Module::Build design plans
+=item *
-L<http://nntp.x.perl.org/group/perl.makemaker/406>
+L<Module::Build design plans|http://www.nntp.perl.org/group/perl.makemaker/2002/04/msg407.html>
-=item Not keen on YAML
+=item *
-L<http://nntp.x.perl.org/group/perl.module-authors/1353>
+L<Not keen on YAML|http://www.nntp.perl.org/group/perl.module-authors/2003/11/msg1353.html>
-=item META Concerns
+=item *
-L<http://nntp.x.perl.org/group/perl.module-authors/1385>
+L<META Concerns|http://www.nntp.perl.org/group/perl.module-authors/2003/11/msg1385.html>
=back
@@ -206,39 +211,40 @@ Must be one of the following licenses:
=item apache
-The distribution is licensed under the Apache Software License
-(L<http://opensource.org/licenses/apachepl.php>).
+The distribution is licensed under the Apache Software License version 1.1
+(L<http://opensource.org/licenses/Apache-1.1>).
=item artistic
-The distribution is licensed under the Artistic License, as specified by the
-Artistic file in the standard perl distribution.
+The distribution is licensed under the Artistic License version 1, as specified
+by the Artistic file in the standard perl distribution
+(L<http://opensource.org/licenses/Artistic-Perl-1.0>).
=item bsd
-The distribution is licensed under the BSD License
-(L<http://www.opensource.org/licenses/bsd-license.php>).
+The distribution is licensed under the BSD 3-Clause License
+(L<http://opensource.org/licenses/BSD-3-Clause>).
=item gpl
-The distribution is licensed under the terms of the Gnu General Public License
-(L<http://www.opensource.org/licenses/gpl-license.php>).
+The distribution is distributed under the terms of the GNU General Public
+License version 2 (L<http://opensource.org/licenses/GPL-2.0>).
=item lgpl
-The distribution is licensed under the terms of the Gnu Lesser General Public
-License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+The distribution is distributed under the terms of the GNU Lesser General
+Public License version 2 (L<http://opensource.org/licenses/LGPL-2.1>).
=item mit
The distribution is licensed under the MIT License
-(L<http://opensource.org/licenses/mit-license.php>).
+(L<http://opensource.org/licenses/MIT>).
=item mozilla
The distribution is licensed under the Mozilla Public License.
-(L<http://opensource.org/licenses/mozilla1.0.php> or
-L<http://opensource.org/licenses/mozilla1.1.php>)
+(L<http://opensource.org/licenses/MPL-1.0> or
+L<http://opensource.org/licenses/MPL-1.1>)
=item open_source
@@ -249,8 +255,8 @@ license listed at L<http://www.opensource.org/licenses/>.
The distribution may be copied and redistributed under the same terms as perl
itself (this is by far the most common licensing option for modules on CPAN).
-This is a dual license, in which the user may choose between either the GPL or
-the Artistic license.
+This is a dual license, in which the user may choose between either the GPL
+version 1 or the Artistic version 1 license.
=item restrictive
@@ -292,7 +298,7 @@ Example:
(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules this
distribution requires for proper operation. The keys are the module
names, and the values are version specifications as described in
-L<VERSION SPECIFICATIONS>.
+L</"VERSION SPECIFICATIONS">.
=head2 recommends
@@ -305,7 +311,7 @@ Example:
(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules
this distribution recommends for enhanced operation. The keys are the
module names, and the values are version specifications as described
-in L<VERSION SPECIFICATIONS>.
+in L</"VERSION SPECIFICATIONS">.
@@ -327,9 +333,9 @@ Example:
I<(Spec 1.1) [optional] {map} A YAML sequence of names for optional features
which are made available when its requirements are met. For each
-feature a description is provided along with any of L<"requires">,
-L<"build_requires">, L<"conflicts">, L<"requires_packages">,
-L<"requires_os">, and L<"excludes_os"> which have the same meaning in
+feature a description is provided along with any of L</requires>,
+L</build_requires>, L</conflicts>, C<requires_packages>,
+C<requires_os>, and C<excludes_os> which have the same meaning in
this subcontext as described elsewhere in this document.>
=head2 build_requires
@@ -343,7 +349,7 @@ Example:
(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules
required for building and/or testing of this distribution. The keys
are the module names, and the values are version specifications as
-described in L<VERSION SPECIFICATIONS>. These dependencies are not
+described in L</"VERSION SPECIFICATIONS">. These dependencies are not
required after the module is installed.
=head2 conflicts
@@ -358,7 +364,7 @@ Example:
cannot be installed while this distribution is installed. This is a
pretty uncommon situation. The keys for C<conflicts> are the module
names, and the values are version specifications as described in
-L<VERSION SPECIFICATIONS>.
+L</"VERSION SPECIFICATIONS">.
=head2 dynamic_config
@@ -385,7 +391,7 @@ If this field is omitted, it defaults to 1 (true).
=head2 private
I<(Deprecated)> (Spec 1.0) [optional] {map} This field has been renamed to
-L</"no_index">. See below.
+L</no_index>. See below.
=head2 provides
@@ -407,7 +413,7 @@ cases, is) used by distribution and automation mechanisms like PAUSE,
CPAN, and search.cpan.org to build indexes saying in which
distribution various packages can be found.
-When using tools like C<Module::Build> that can generate the
+When using tools like L<Module::Build> that can generate the
C<provides> mapping for your distribution automatically, make sure you
examine what it generates to make sure it makes sense - indexers will
usually trust the C<provides> field if it's present, rather than
@@ -437,7 +443,7 @@ directories, packages, and namespaces that are private
and indexing tools. This is useful when no C<provides> field is
present.
-For example, C<search.cpan.org> excludes items listed in C<no_index>
+For example, L<http://search.cpan.org/> excludes items listed in C<no_index>
when searching for POD, meaning files in these directories will not
converted to HTML and made public - which is useful if you have
example or test PODs that you don't want the search engine to go
@@ -534,8 +540,8 @@ tool. RWS]
=head1 VERSION SPECIFICATIONS
-Some fields require a version specification (ex. L<"requires">,
-L<"recommends">, L<"build_requires">, etc.) to indicate the particular
+Some fields require a version specification (ex. L</requires>,
+L</recommends>, L</build_requires>, etc.) to indicate the particular
versionZ<>(s) of some other module that may be required as a
prerequisite. This section details the version specification formats
that are currently supported.
@@ -559,23 +565,23 @@ together using commas. The specification C<E<gt>= 1.2, != 1.5, E<lt>
=head1 SEE ALSO
-CPAN, L<http://www.cpan.org/>
+L<CPAN|http://www.cpan.org/>
-CPAN.pm, L<http://search.cpan.org/dist/CPAN/>
+L<CPAN.pm|CPAN>
-CPANPLUS, L<http://search.cpan.org/dist/CPANPLUS/>
+L<CPANPLUS>
-Data::Dumper, L<http://search.cpan.org/dist/Data-Dumper/>
+L<Data::Dumper>
-ExtUtils::MakeMaker, L<http://search.cpan.org/dist/ExtUtils-MakeMaker/>
+L<ExtUtils::MakeMaker>
-Module::Build, L<http://search.cpan.org/dist/Module-Build/>
+L<Module::Build>
-Module::Install, L<http://search.cpan.org/dist/Module-Install/>
+L<Module::Install>
-XML, L<http://www.w3.org/XML/>
+L<XML|http://www.w3.org/XML/>
-YAML, L<http://www.yaml.org/>
+L<YAML|http://www.yaml.org/>
=head1 HISTORY
@@ -597,7 +603,7 @@ Created version 1.0 of this document.
=item *
-Added the L</"dynamic_config"> field, which was missing from the initial
+Added the L</dynamic_config> field, which was missing from the initial
version.
=back
@@ -617,12 +623,12 @@ L<http://nntp.x.perl.org/group/> site.
=item *
-Added and deprecated the L<"private"> field.
+Added and deprecated the L</private> field.
=item *
-Added L<"abstract">, L<"configure">, L<"requires_packages">,
-L<"requires_os">, L<"excludes_os">, and L<"no_index"> fields.
+Added L</abstract>, C<configure>, C<requires_packages>,
+C<requires_os>, C<excludes_os>, and L</no_index> fields.
=item *
@@ -636,15 +642,15 @@ Bumped version.
=item *
-Added L<"generation">, L<"authored_by"> fields.
+Added C<generation>, C<authored_by> fields.
=item *
-Add alternative proposal to the L<"recommends"> field.
+Add alternative proposal to the L</recommends> field.
=item *
-Add proposal for a L<"requires_build_tools"> field.
+Add proposal for a C<requires_build_tools> field.
=back
@@ -658,7 +664,7 @@ Added link to latest version of this specification on CPAN.
=item *
-Added section L<"VERSION SPECIFICATIONS">.
+Added section L</"VERSION SPECIFICATIONS">.
=item *
@@ -666,7 +672,7 @@ Chang name from Module::Build::META-spec to CPAN::META::Specification.
=item *
-Add proposal for L<"auto_regenerate"> field.
+Add proposal for C<auto_regenerate> field.
=back
@@ -676,15 +682,15 @@ Add proposal for L<"auto_regenerate"> field.
=item *
-Add L<"index"> field as a compliment to L<"no_index">
+Add C<index> field as a compliment to L</no_index>
=item *
-Add L<"keywords"> field as a means to aid searching distributions.
+Add L</keywords> field as a means to aid searching distributions.
=item *
-Add L<"TERMINOLOGY"> section to explain certain terms that may be
+Add L</TERMINOLOGY> section to explain certain terms that may be
ambiguous.
=back
@@ -702,7 +708,7 @@ more like records of brainstorming.
=item *
-Changed C<authored_by> to C<author>, since that's always been what
+Changed C<authored_by> to L</author>, since that's always been what
it's actually called in actual F<META.yml> files.
=item *
@@ -712,12 +718,12 @@ operators.
=item *
-Noted that the C<distribution_type> field is basically meaningless,
+Noted that the L</distribution_type> field is basically meaningless,
and shouldn't really be used.
=item *
-Clarified C<dynamic_config> a bit.
+Clarified L</dynamic_config> a bit.
=back
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod
index 471296ce291..932f1ed94b3 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/History/Meta_1_4.pod
@@ -21,7 +21,12 @@ Various spelling corrections
=item *
Include list of valid licenses from L<Module::Build> 0.2807 rather than
-linking to the module.
+linking to the module, with minor updates to text and links to reflect
+versions at the time of publication.
+
+=item *
+
+Fixed some dead links to point to active resources.
=back
@@ -84,35 +89,6 @@ and the latest development version (which may include things that
won't make it into the stable version) can always be found at
L<http://module-build.sourceforge.net/META-spec-blead.html>.>
-=begin MAINTAINER
-
-The master source for the META spec is META-spec.pod. META-spec.html
-is built (manually) from META-spec.pod whenever there are changes, and
-the two files should generally be checked in together. Ideally it
-would happen through a trigger or something, but it doesn't.
-
-Ken has a cron job that copies the latest bleeding-edge version of the
-spec (HTML version) to Sourceforge whenever his laptop is turned on:
-
- 21 * * * * svn cat http://svn.perl.org/modules/Module-Build/trunk/website/META-spec.html \
- | ssh kwilliams@shell.sourceforge.net \
- 'cat > /home/groups/m/mo/module-build/htdocs/META-spec-blead.html'
-
-The numbered revisions of the spec at
-L<"http://module-build.sourceforge.net/"> are captures of the spec at
-opportune moments. A couple of symlinks also exist for convenience:
-
- -rw-r--r-- 1 kwilliams 24585 Oct 10 17:21 META-spec-blead.html
- lrwxrwxrwx 1 kwilliams 19 Jan 19 2007 META-spec-current.html -> META-spec-v1.3.html
- lrwxrwxrwx 1 kwilliams 22 Jan 19 2007 META-spec.html -> META-spec-current.html
- -rw-r--r-- 1 kwilliams 5830 Jul 25 2005 META-spec-v1.0.html
- -rw-r--r-- 1 kwilliams 7847 Jul 25 2005 META-spec-v1.1.html
- -rw-r--r-- 1 kwilliams 22635 Aug 23 2005 META-spec-v1.2.html
- -rw-r--r-- 1 kwilliams 24086 Nov 4 2006 META-spec-v1.3.html
-
-=end MAINTAINER
-
-
=head1 FORMAT
F<META.yml> files are written in the YAML format (see
@@ -123,17 +99,17 @@ XML or Data::Dumper:
=over 4
-=item Module::Build design plans
+=item *
-L<http://nntp.x.perl.org/group/perl.makemaker/406>
+L<Module::Build design plans|http://www.nntp.perl.org/group/perl.makemaker/2002/04/msg407.html>
-=item Not keen on YAML
+=item *
-L<http://nntp.x.perl.org/group/perl.module-authors/1353>
+L<Not keen on YAML|http://www.nntp.perl.org/group/perl.module-authors/2003/11/msg1353.html>
-=item META Concerns
+=item *
-L<http://nntp.x.perl.org/group/perl.module-authors/1385>
+L<META Concerns|http://www.nntp.perl.org/group/perl.module-authors/2003/11/msg1385.html>
=back
@@ -235,39 +211,40 @@ Must be one of the following licenses:
=item apache
-The distribution is licensed under the Apache Software License
-(L<http://opensource.org/licenses/apachepl.php>).
+The distribution is licensed under the Apache Software License version 1.1
+(L<http://opensource.org/licenses/Apache-1.1>).
=item artistic
-The distribution is licensed under the Artistic License, as specified by the
-Artistic file in the standard perl distribution.
+The distribution is licensed under the Artistic License version 1, as specified
+by the Artistic file in the standard perl distribution
+(L<http://opensource.org/licenses/Artistic-Perl-1.0>).
=item bsd
-The distribution is licensed under the BSD License
-(L<http://www.opensource.org/licenses/bsd-license.php>).
+The distribution is licensed under the BSD 3-Clause License
+(L<http://opensource.org/licenses/BSD-3-Clause>).
=item gpl
-The distribution is licensed under the terms of the Gnu General Public License
-(L<http://www.opensource.org/licenses/gpl-license.php>).
+The distribution is distributed under the terms of the GNU General Public
+License version 2 (L<http://opensource.org/licenses/GPL-2.0>).
=item lgpl
-The distribution is licensed under the terms of the Gnu Lesser General Public
-License (L<http://www.opensource.org/licenses/lgpl-license.php>).
+The distribution is distributed under the terms of the GNU Lesser General
+Public License version 2 (L<http://opensource.org/licenses/LGPL-2.1>).
=item mit
The distribution is licensed under the MIT License
-(L<http://opensource.org/licenses/mit-license.php>).
+(L<http://opensource.org/licenses/MIT>).
=item mozilla
The distribution is licensed under the Mozilla Public License.
-(L<http://opensource.org/licenses/mozilla1.0.php> or
-L<http://opensource.org/licenses/mozilla1.1.php>)
+(L<http://opensource.org/licenses/MPL-1.0> or
+L<http://opensource.org/licenses/MPL-1.1>)
=item open_source
@@ -355,8 +332,8 @@ Example:
I<(Spec 1.1) [optional] {map} A YAML mapping of names for optional features
which are made available when its requirements are met. For each
-feature a description is provided along with any of L<"requires">,
-L<"build_requires">, and L<"conflicts">, which have the same meaning in
+feature a description is provided along with any of L</requires>,
+L</build_requires>, and L</conflicts>, which have the same meaning in
this subcontext as described elsewhere in this document.>
=head2 build_requires
@@ -371,7 +348,7 @@ Example:
prerequisites required for building and/or testing of this
distribution. The keys are the names of the prerequisites (module
names or 'perl'), and the values are version specifications as
-described in L<VERSION SPECIFICATIONS>. These dependencies are not
+described in L</"VERSION SPECIFICATIONS">. These dependencies are not
required after the distribution is installed.
=head2 configure_requires
@@ -385,9 +362,9 @@ Example:
(Spec 1.4) [optional] {map} A YAML mapping indicating the Perl prerequisites
required before configuring this distribution. The keys are the
-names of the prerequisites (module names or 'perl'), and the values are version specifications as described
-in L<VERSION SPECIFICATIONS>. These dependencies are not required
-after the distribution is installed.
+names of the prerequisites (module names or 'perl'), and the values are version
+specifications as described in L</"VERSION SPECIFICATIONS">. These
+dependencies are not required after the distribution is installed.
=head2 conflicts
@@ -401,7 +378,7 @@ Example:
cannot be installed while this distribution is installed. This is a
pretty uncommon situation. The keys for C<conflicts> are the item
names (module names or 'perl'), and the values are version
-specifications as described in L<VERSION SPECIFICATIONS>.
+specifications as described in L</"VERSION SPECIFICATIONS">.
=head2 dynamic_config
@@ -428,7 +405,7 @@ If this field is omitted, it defaults to 1 (true).
=head2 private
I<(Deprecated)> (Spec 1.0) [optional] {map} This field has been renamed to
-L</"no_index">. See below.
+L</no_index>. See below.
=head2 provides
@@ -450,7 +427,7 @@ cases, is) used by distribution and automation mechanisms like PAUSE,
CPAN, and search.cpan.org to build indexes saying in which
distribution various packages can be found.
-When using tools like C<Module::Build> that can generate the
+When using tools like L<Module::Build> that can generate the
C<provides> mapping for your distribution automatically, make sure you
examine what it generates to make sure it makes sense - indexers will
usually trust the C<provides> field if it's present, rather than
@@ -480,7 +457,7 @@ directories, packages, and namespaces that are private
and indexing tools. This is useful when no C<provides> field is
present.
-For example, C<search.cpan.org> excludes items listed in C<no_index>
+For example, L<http://search.cpan.org/> excludes items listed in C<no_index>
when searching for POD, meaning files in these directories will not
converted to HTML and made public - which is useful if you have
example or test PODs that you don't want the search engine to go
@@ -577,8 +554,8 @@ tool. RWS]
=head1 VERSION SPECIFICATIONS
-Some fields require a version specification (ex. L<"requires">,
-L<"recommends">, L<"build_requires">, etc.) to indicate the particular
+Some fields require a version specification (ex. L</requires>,
+L</recommends>, L</build_requires>, etc.) to indicate the particular
versionZ<>(s) of some other module that may be required as a
prerequisite. This section details the version specification formats
that are currently supported.
@@ -602,23 +579,23 @@ together using commas. The specification C<E<gt>= 1.2, != 1.5, E<lt>
=head1 SEE ALSO
-CPAN, L<http://www.cpan.org/>
+L<CPAN|http://www.cpan.org/>
-CPAN.pm, L<http://search.cpan.org/dist/CPAN/>
+L<CPAN.pm|CPAN>
-CPANPLUS, L<http://search.cpan.org/dist/CPANPLUS/>
+L<CPANPLUS>
-Data::Dumper, L<http://search.cpan.org/dist/Data-Dumper/>
+L<Data::Dumper>
-ExtUtils::MakeMaker, L<http://search.cpan.org/dist/ExtUtils-MakeMaker/>
+L<ExtUtils::MakeMaker>
-Module::Build, L<http://search.cpan.org/dist/Module-Build/>
+L<Module::Build>
-Module::Install, L<http://search.cpan.org/dist/Module-Install/>
+L<Module::Install>
-XML, L<http://www.w3.org/XML/>
+L<XML|http://www.w3.org/XML/>
-YAML, L<http://www.yaml.org/>
+L<YAML|http://www.yaml.org/>
=head1 HISTORY
@@ -640,7 +617,7 @@ Created version 1.0 of this document.
=item *
-Added the L</"dynamic_config"> field, which was missing from the initial
+Added the L</dynamic_config> field, which was missing from the initial
version.
=back
@@ -660,12 +637,12 @@ L<http://nntp.x.perl.org/group/> site.
=item *
-Added and deprecated the L<"private"> field.
+Added and deprecated the L</private> field.
=item *
-Added L<"abstract">, L<"configure">, L<"requires_packages">,
-L<"requires_os">, L<"excludes_os">, and L<"no_index"> fields.
+Added L</abstract>, C<configure>, C<requires_packages>,
+C<requires_os>, C<excludes_os>, and L</no_index> fields.
=item *
@@ -679,15 +656,15 @@ Bumped version.
=item *
-Added L<"generation">, L<"authored_by"> fields.
+Added C<generation>, C<authored_by> fields.
=item *
-Add alternative proposal to the L<"recommends"> field.
+Add alternative proposal to the L</recommends> field.
=item *
-Add proposal for a L<"requires_build_tools"> field.
+Add proposal for a C<requires_build_tools> field.
=back
@@ -701,7 +678,7 @@ Added link to latest version of this specification on CPAN.
=item *
-Added section L<"VERSION SPECIFICATIONS">.
+Added section L</"VERSION SPECIFICATIONS">.
=item *
@@ -709,7 +686,7 @@ Chang name from Module::Build::META-spec to CPAN::META::Specification.
=item *
-Add proposal for L<"auto_regenerate"> field.
+Add proposal for C<auto_regenerate> field.
=back
@@ -719,15 +696,15 @@ Add proposal for L<"auto_regenerate"> field.
=item *
-Add L<"index"> field as a compliment to L<"no_index">
+Add C<index> field as a compliment to L</no_index>
=item *
-Add L<"keywords"> field as a means to aid searching distributions.
+Add L</keywords> field as a means to aid searching distributions.
=item *
-Add L<"TERMINOLOGY"> section to explain certain terms that may be
+Add L</TERMINOLOGY> section to explain certain terms that may be
ambiguous.
=back
@@ -745,7 +722,7 @@ more like records of brainstorming.
=item *
-Changed C<authored_by> to C<author>, since that's always been what
+Changed C<authored_by> to L</author>, since that's always been what
it's actually called in actual F<META.yml> files.
=item *
@@ -755,12 +732,12 @@ operators.
=item *
-Noted that the C<distribution_type> field is basically meaningless,
+Noted that the L</distribution_type> field is basically meaningless,
and shouldn't really be used.
=item *
-Clarified C<dynamic_config> a bit.
+Clarified L</dynamic_config> a bit.
=back
@@ -781,7 +758,7 @@ module that doesn't actually exist.
=item *
-Added C<configure_requires>.
+Added L</configure_requires>.
=back
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm
index 05a18ea9732..3604eae4022 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Merge.pm
@@ -3,7 +3,7 @@ use warnings;
package CPAN::Meta::Merge;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
use Carp qw/croak/;
use Scalar::Util qw/blessed/;
@@ -73,7 +73,7 @@ sub _uniq_map {
return $left;
}
-sub _improvize {
+sub _improvise {
my ($left, $right, $path) = @_;
my ($name) = reverse @{$path};
if ($name =~ /^x_/) {
@@ -154,9 +154,9 @@ my %default = (
homepage => \&_identical,
bugtracker => \&_uniq_map,
repository => \&_uniq_map,
- ':default' => \&_improvize,
+ ':default' => \&_improvise,
},
- ':default' => \&_improvize,
+ ':default' => \&_improvise,
);
sub new {
@@ -182,7 +182,8 @@ my %coderef_for = (
set_addition => \&_set_addition,
uniq_map => \&_uniq_map,
identical => \&_identical,
- improvize => \&_improvize,
+ improvise => \&_improvise,
+ improvize => \&_improvise, # [sic] for backwards compatibility
);
sub _coerce_mapping {
@@ -250,7 +251,7 @@ CPAN::Meta::Merge - Merging CPAN Meta fragments
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -268,11 +269,60 @@ argument, C<version>, declaring the version of the meta-spec that must be
used for the merge. It can optionally take an C<extra_mappings> argument
that allows one to add additional merging functions for specific elements.
+The C<extra_mappings> arguments takes a hash ref with the same type of
+structure as described in L<CPAN::Meta::Spec>, except with its values as
+one of the L<defined merge strategies|/"MERGE STRATEGIES"> or a code ref
+to a merging function.
+
+ my $merger = CPAN::Meta::Merge->new(
+ default_version => '2',
+ extra_mappings => {
+ 'optional_features' => \&custom_merge_function,
+ 'x_custom' => 'set_addition',
+ 'x_meta_meta' => {
+ name => 'identical',
+ tags => 'set_addition',
+ }
+ }
+ );
+
=head2 merge(@fragments)
Merge all C<@fragments> together. It will accept both CPAN::Meta objects and
(possibly incomplete) hashrefs of metadata.
+=head1 MERGE STRATEGIES
+
+C<merge> uses various strategies to combine different elements of the CPAN::Meta objects. The following strategies can be used with the extra_mappings argument of C<new>:
+
+=over
+
+=item identical
+
+The elements must be identical
+
+=item set_addition
+
+The union of two array refs
+
+ [ a, b ] U [ a, c] = [ a, b, c ]
+
+=item uniq_map
+
+Key value pairs from the right hash are merged to the left hash. Key
+collisions are only allowed if their values are the same. This merge
+function will recurse into nested hash refs following the same merge
+rules.
+
+=item improvise
+
+This merge strategy will try to pick the appropriate predefined strategy
+based on what element type. Array refs will try to use the
+C<set_addition> strategy, Hash refs will try to use the C<uniq_map>
+strategy, and everything else will try the C<identical> strategy.
+
+=back
+
=head1 AUTHORS
=over 4
@@ -285,11 +335,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm
index 8a13eb13c81..d4e93fd8a5c 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Prereqs.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta::Prereqs;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
#pod =head1 DESCRIPTION
#pod
@@ -45,6 +45,7 @@ use CPAN::Meta::Requirements 2.121;
#pod
#pod =cut
+# note we also accept anything matching /\Ax_/i
sub __legal_phases { qw(configure build test runtime develop) }
sub __legal_types { qw(requires recommends suggests conflicts) }
@@ -114,6 +115,40 @@ sub requirements_for {
return $req;
}
+#pod =method phases
+#pod
+#pod my @phases = $prereqs->phases;
+#pod
+#pod This method returns the list of all phases currently populated in the prereqs
+#pod object, suitable for iterating.
+#pod
+#pod =cut
+
+sub phases {
+ my ($self) = @_;
+
+ my %is_legal_phase = map {; $_ => 1 } $self->__legal_phases;
+ grep { /\Ax_/i or $is_legal_phase{$_} } keys %{ $self->{prereqs} };
+}
+
+#pod =method types_in
+#pod
+#pod my @runtime_types = $prereqs->types_in('runtime');
+#pod
+#pod This method returns the list of all types currently populated in the prereqs
+#pod object for the provided phase, suitable for iterating.
+#pod
+#pod =cut
+
+sub types_in {
+ my ($self, $phase) = @_;
+
+ return unless $phase =~ /\Ax_/i or grep { $phase eq $_ } $self->__legal_phases;
+
+ my %is_legal_type = map {; $_ => 1 } $self->__legal_types;
+ grep { /\Ax_/i or $is_legal_type{$_} } keys %{ $self->{prereqs}{$phase} };
+}
+
#pod =method with_merged_prereqs
#pod
#pod my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );
@@ -139,8 +174,9 @@ sub with_merged_prereqs {
my %new_arg;
- for my $phase ($self->__legal_phases) {
- for my $type ($self->__legal_types) {
+ for my $phase (__uniq(map { $_->phases } @prereq_objs)) {
+ for my $type (__uniq(map { $_->types_in($phase) } @prereq_objs)) {
+
my $req = CPAN::Meta::Requirements->new;
for my $prereq (@prereq_objs) {
@@ -215,8 +251,8 @@ sub as_string_hash {
my %hash;
- for my $phase ($self->__legal_phases) {
- for my $type ($self->__legal_types) {
+ for my $phase ($self->phases) {
+ for my $type ($self->types_in($phase)) {
my $req = $self->requirements_for($phase, $type);
next unless $req->required_modules;
@@ -271,6 +307,11 @@ sub clone {
my $clone = (ref $self)->new( $self->as_string_hash );
}
+sub __uniq {
+ my (%s, $u);
+ grep { defined($_) ? !$s{$_}++ : !$u++ } @_;
+}
+
1;
# ABSTRACT: a set of distribution prerequisites by phase and type
@@ -285,7 +326,7 @@ CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 DESCRIPTION
@@ -333,6 +374,20 @@ be added to as needed.
If C<$phase> or C<$type> are undefined or otherwise invalid, an exception will
be raised.
+=head2 phases
+
+ my @phases = $prereqs->phases;
+
+This method returns the list of all phases currently populated in the prereqs
+object, suitable for iterating.
+
+=head2 types_in
+
+ my @runtime_types = $prereqs->types_in('runtime');
+
+This method returns the list of all types currently populated in the prereqs
+object for the provided phase, suitable for iterating.
+
=head2 with_merged_prereqs
my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );
@@ -405,11 +460,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm
index 9056940b51a..16e7495938d 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Spec.pm
@@ -8,7 +8,7 @@ use strict;
use warnings;
package CPAN::Meta::Spec;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
1;
@@ -29,7 +29,7 @@ CPAN::Meta::Spec - specification for CPAN distribution metadata
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -159,7 +159,8 @@ constraints on the values of a data element.
=head2 Boolean
A I<Boolean> is used to provide a true or false value. It B<must> be
-represented as a defined value.
+represented as a defined value that is either "1" or "0" or stringifies
+to those values.
=head2 String
@@ -1196,6 +1197,10 @@ L<Module::Build>
L<Module::Install>
+=item *
+
+L<CPAN::Meta::History::Meta_1_4>
+
=back
=head1 HISTORY
@@ -1223,11 +1228,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm b/Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm
index eddaa107302..a2256dea662 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Meta/Validator.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
package CPAN::Meta::Validator;
-our $VERSION = '2.150005';
+our $VERSION = '2.150010';
#pod =head1 SYNOPSIS
#pod
@@ -669,8 +669,8 @@ sub check_list {
#pod
#pod boolean($self,$key,$value)
#pod
-#pod Validates for a boolean value. Currently these values are '1', '0', 'true',
-#pod 'false', however the latter 2 may be removed.
+#pod Validates for a boolean value: a defined value that is either "1" or "0" or
+#pod stringifies to those values.
#pod
#pod =item *
#pod
@@ -833,7 +833,7 @@ sub version {
sub boolean {
my ($self,$key,$value) = @_;
if(defined $value) {
- return 1 if($value =~ /^(0|1|true|false)$/);
+ return 1 if($value =~ /^(0|1)$/);
} else {
$value = '<undef>';
}
@@ -996,7 +996,7 @@ CPAN::Meta::Validator - validate CPAN distribution metadata structures
=head1 VERSION
-version 2.150005
+version 2.150010
=head1 SYNOPSIS
@@ -1124,8 +1124,8 @@ are both valid. A leading 'v' like 'v1.2.3' is also valid.
boolean($self,$key,$value)
-Validates for a boolean value. Currently these values are '1', '0', 'true',
-'false', however the latter 2 may be removed.
+Validates for a boolean value: a defined value that is either "1" or "0" or
+stringifies to those values.
=item *
@@ -1193,11 +1193,15 @@ David Golden <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
+=item *
+
+Adam Kennedy <adamk@cpan.org>
+
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2010 by David Golden and Ricardo Signes.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Mirrors.pm b/Master/tlpkg/tlperl/lib/CPAN/Mirrors.pm
index 37e7ce0ef9f..4ceca0458cc 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Mirrors.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Mirrors.pm
@@ -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.9601";
+$VERSION = "2.12";
use Carp;
use FileHandle;
@@ -82,7 +82,7 @@ Return a list of continents based on those defined in F<MIRRORED.BY>.
sub continents {
my ($self) = @_;
- return keys %{$self->{geography}};
+ return sort keys %{$self->{geography}};
}
=item countries( [CONTINENTS] )
@@ -99,7 +99,7 @@ sub countries {
@continents = $self->continents unless @continents;
my @countries;
for my $c (@continents) {
- push @countries, keys %{ $self->{geography}{$c} };
+ push @countries, sort keys %{ $self->{geography}{$c} };
}
return @countries;
}
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Module.pm b/Master/tlpkg/tlperl/lib/CPAN/Module.pm
index bf1226c0f04..62ca42caf00 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Module.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Module.pm
@@ -7,7 +7,7 @@ use strict;
use vars qw(
$VERSION
);
-$VERSION = "5.5002";
+$VERSION = "5.5003";
BEGIN {
# alarm() is not implemented in perl 5.6.x and earlier under Windows
@@ -104,7 +104,12 @@ sub color_cmd_tmps {
# so we can break it
}
if ($depth>=$CPAN::MAX_RECURSION) {
- die(CPAN::Exception::RecursiveDependency->new($ancestors));
+ my $e = CPAN::Exception::RecursiveDependency->new($ancestors);
+ if ($e->is_resolvable) {
+ return $self->{incommandcolor}=2;
+ } else {
+ die $e;
+ }
}
# warn "color_cmd_tmps $depth $color " . $self->id; # sleep 1;
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Plugin.pm b/Master/tlpkg/tlperl/lib/CPAN/Plugin.pm
index 646d86b2cc9..77ad19b7763 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Plugin.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Plugin.pm
@@ -3,7 +3,7 @@ package CPAN::Plugin;
use strict;
use warnings;
-our $VERSION = '0.95';
+our $VERSION = '0.96';
require CPAN;
@@ -94,8 +94,8 @@ CPAN::Plugin - Base class for CPAN shell extensions
=head1 SYNOPSIS
- package My::Plugin;
- use base 'CPAN::Plugin';
+ package CPAN::Plugin::Flurb;
+ use parent 'CPAN::Plugin';
sub post_test {
my ($self, $distribution_object) = @_;
diff --git a/Master/tlpkg/tlperl/lib/CPAN/Shell.pm b/Master/tlpkg/tlperl/lib/CPAN/Shell.pm
index 43e2fb9fa0b..ab2f07e2ceb 100644
--- a/Master/tlpkg/tlperl/lib/CPAN/Shell.pm
+++ b/Master/tlpkg/tlperl/lib/CPAN/Shell.pm
@@ -47,7 +47,7 @@ use vars qw(
"CPAN/Tarzip.pm",
"CPAN/Version.pm",
);
-$VERSION = "5.5005";
+$VERSION = "5.5006";
# record the initial timestamp for reload.
$reload = { map {$INC{$_} ? ($_,(stat $INC{$_})[9]) : ()} @relo };
@CPAN::Shell::ISA = qw(CPAN::Debug);
@@ -174,8 +174,8 @@ Download, Test, Make, Install...
test make test (implies make) readme display these README files
install make install (implies test) perldoc display POD documentation
-Upgrade
- r WORDs or /REGEXP/ or NONE report updates for some/matching/all modules
+Upgrade installed modules
+ r WORDs or /REGEXP/ or NONE report updates for some/matching/all
upgrade WORDs or /REGEXP/ or NONE upgrade some/matching/all modules
Pragmas
@@ -517,14 +517,14 @@ sub hosts {
$s->{dltime} += $dltime;
}
my $res;
- for my $url (keys %{$S{ok}}) {
+ for my $url (sort keys %{$S{ok}}) {
next if $S{ok}{$url}{dltime} == 0; # div by zero
push @{$res->{ok}}, [@{$S{ok}{$url}}{qw(n dlsize dltime)},
$S{ok}{$url}{dlsize}/$S{ok}{$url}{dltime},
$url,
];
}
- for my $url (keys %{$S{no}}) {
+ for my $url (sort keys %{$S{no}}) {
push @{$res->{no}}, [$S{no}{$url},
$url,
];
@@ -637,6 +637,10 @@ sub _reload_this {
}
CPAN->debug(sprintf("reload file[%s] content[%s...]",$file,substr($content,0,128)))
if $CPAN::DEBUG;
+ my $includefile;
+ if ($includefile = $INC{$f} and -e $includefile) {
+ $f = $includefile;
+ }
delete $INC{$f};
local @INC = @inc;
eval "require '$f'";
@@ -1107,7 +1111,7 @@ sub failed {
sub find_failed {
my($self,$only_id) = @_;
my @failed;
- DIST: for my $d ($CPAN::META->all_objects("CPAN::Distribution")) {
+ DIST: for my $d (sort { $a->id cmp $b->id } $CPAN::META->all_objects("CPAN::Distribution")) {
my $failed = "";
NAY: for my $nosayer ( # order matters!
"unwrapped",
diff --git a/Master/tlpkg/tlperl/lib/Carp.pm b/Master/tlpkg/tlperl/lib/Carp.pm
index 92f88661af6..05052b9ef6e 100644
--- a/Master/tlpkg/tlperl/lib/Carp.pm
+++ b/Master/tlpkg/tlperl/lib/Carp.pm
@@ -87,7 +87,7 @@ BEGIN {
}
}
-our $VERSION = '1.40';
+our $VERSION = '1.42';
$VERSION =~ tr/_//d;
our $MaxEvalLen = 0;
@@ -474,7 +474,7 @@ sub ret_backtrace {
eval {
CORE::die;
};
- if($@ =~ /^Died at .*(, <.*?> line \d+).$/ ) {
+ if($@ =~ /^Died at .*(, <.*?> (?:line|chunk) \d+).$/ ) {
$mess .= $1;
}
}
@@ -636,7 +636,7 @@ Carp - alternative warn and die for modules
# cluck, longmess and shortmess not exported by default
use Carp qw(cluck longmess shortmess);
- cluck "This is how we got here!";
+ cluck "This is how we got here!"; # warn with stack backtrace
$long_message = longmess( "message from cluck() or confess()" );
$short_message = shortmess( "message from carp() or croak()" );
diff --git a/Master/tlpkg/tlperl/lib/Carp/Heavy.pm b/Master/tlpkg/tlperl/lib/Carp/Heavy.pm
index b05d7583c22..f9c584a42b5 100644
--- a/Master/tlpkg/tlperl/lib/Carp/Heavy.pm
+++ b/Master/tlpkg/tlperl/lib/Carp/Heavy.pm
@@ -2,7 +2,7 @@ package Carp::Heavy;
use Carp ();
-our $VERSION = '1.40';
+our $VERSION = '1.42';
$VERSION =~ tr/_//d;
# Carp::Heavy was merged into Carp in version 1.12. Any mismatched versions
diff --git a/Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm b/Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
index d9e25bde1f2..ce5245fe4b6 100644
--- a/Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
+++ b/Master/tlpkg/tlperl/lib/Compress/Raw/Bzip2.pm
@@ -11,7 +11,7 @@ use Carp ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
-$VERSION = '2.069';
+$VERSION = '2.074';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -364,13 +364,13 @@ L<File::GlobMapper|File::GlobMapper>, L<Archive::Zip|Archive::Zip>,
L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
-The primary site for the bzip2 program is F<http://www.bzip.org>.
+The primary site for the bzip2 program is L<http://www.bzip.org>.
See the module L<Compress::Bzip2|Compress::Bzip2>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -378,7 +378,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm b/Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
index 59a6100ebfa..4ff590087d9 100644
--- a/Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
+++ b/Master/tlpkg/tlperl/lib/Compress/Raw/Zlib.pm
@@ -10,7 +10,7 @@ use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD, %DEFLATE_CONSTANTS, @DEFLATE_CONSTANTS);
-$VERSION = '2.069';
+$VERSION = '2.074';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -1568,21 +1568,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1590,7 +1590,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Compress/Zlib.pm b/Master/tlpkg/tlperl/lib/Compress/Zlib.pm
index 897b1e26b54..86da8340ff0 100644
--- a/Master/tlpkg/tlperl/lib/Compress/Zlib.pm
+++ b/Master/tlpkg/tlperl/lib/Compress/Zlib.pm
@@ -7,17 +7,17 @@ use Carp ;
use IO::Handle ;
use Scalar::Util qw(dualvar);
-use IO::Compress::Base::Common 2.069 ;
-use Compress::Raw::Zlib 2.069 ;
-use IO::Compress::Gzip 2.069 ;
-use IO::Uncompress::Gunzip 2.069 ;
+use IO::Compress::Base::Common 2.074 ;
+use Compress::Raw::Zlib 2.074 ;
+use IO::Compress::Gzip 2.074 ;
+use IO::Uncompress::Gunzip 2.074 ;
use strict ;
use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -461,7 +461,7 @@ sub inflate
package Compress::Zlib ;
-use IO::Compress::Gzip::Constants 2.069 ;
+use IO::Compress::Gzip::Constants 2.074 ;
sub memGzip($)
{
@@ -1478,21 +1478,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1500,7 +1500,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 1995-2015 Paul Marquess. All rights reserved.
+Copyright (c) 1995-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Config.pm b/Master/tlpkg/tlperl/lib/Config.pm
index 261fdceb3c7..dc2c6cac2e6 100644
--- a/Master/tlpkg/tlperl/lib/Config.pm
+++ b/Master/tlpkg/tlperl/lib/Config.pm
@@ -10,7 +10,7 @@ use strict;
use warnings;
use vars '%Config', '$VERSION';
-$VERSION = "5.024001";
+$VERSION = "5.026001";
# Skip @Config::EXPORT because it only contains %Config, which we special
# case below as it's not a function. @Config::EXPORT won't change in the
@@ -56,11 +56,11 @@ sub import {
return;
}
-die "$0: Perl lib version (5.24.1) doesn't match executable '$^X' version ($])"
+die "$0: Perl lib version (5.26.1) doesn't match executable '$^X' version ($])"
unless $^V;
-$^V eq 5.24.1
- or die sprintf "%s: Perl lib version (5.24.1) doesn't match executable '$^X' version (%vd)", $0, $^V;
+$^V eq 5.26.1
+ or die sprintf "%s: Perl lib version (5.26.1) doesn't match executable '$^X' version (%vd)", $0, $^V;
sub FETCH {
@@ -85,7 +85,7 @@ sub AUTOLOAD {
my $rootdir = __FILE__;
$rootdir =~ s![\\/][^\\/]*[\\/][^\\/]*$!!;
$rootdir =~ s!/!\\!g;
-my $mingdir = "x:\\wprogs\\mingw";
+my $mingdir = "\\\\VBOXSVR\\mingw32";
# tie returns the object, so the value returned to require will be true.
tie %Config, 'Config', {
@@ -103,7 +103,7 @@ tie %Config, 'Config', {
ldlibpthname => '',
libpth => "$mingdir\\lib",
osname => 'MSWin32',
- osvers => '6.1',
+ osvers => '10.0',
path_sep => ';',
privlibexp => "$rootdir\\lib",
scriptdir => "$rootdir\\bin",
@@ -112,5 +112,5 @@ tie %Config, 'Config', {
so => 'dll',
useithreads => 'define',
usevendorprefix => undef,
- version => '5.24.1',
+ version => '5.26.1',
};
diff --git a/Master/tlpkg/tlperl/lib/Config.pm.orig b/Master/tlpkg/tlperl/lib/Config.pm.orig
index be4cd2c56a8..71bbb5d5192 100644
--- a/Master/tlpkg/tlperl/lib/Config.pm.orig
+++ b/Master/tlpkg/tlperl/lib/Config.pm.orig
@@ -10,7 +10,7 @@ use strict;
use warnings;
use vars '%Config', '$VERSION';
-$VERSION = "5.024001";
+$VERSION = "5.026001";
# Skip @Config::EXPORT because it only contains %Config, which we special
# case below as it's not a function. @Config::EXPORT won't change in the
@@ -56,11 +56,11 @@ sub import {
return;
}
-die "$0: Perl lib version (5.24.1) doesn't match executable '$^X' version ($])"
+die "$0: Perl lib version (5.26.1) doesn't match executable '$^X' version ($])"
unless $^V;
-$^V eq 5.24.1
- or die sprintf "%s: Perl lib version (5.24.1) doesn't match executable '$^X' version (%vd)", $0, $^V;
+$^V eq 5.26.1
+ or die sprintf "%s: Perl lib version (5.26.1) doesn't match executable '$^X' version (%vd)", $0, $^V;
sub FETCH {
@@ -84,7 +84,7 @@ sub AUTOLOAD {
# tie returns the object, so the value returned to require will be true.
tie %Config, 'Config', {
- archlibexp => 'c:\\tlperl\\lib',
+ archlibexp => 'c:\\tlperl526\\lib',
archname => 'MSWin32-x86-multi-thread',
cc => 'gcc',
d_readlink => undef,
@@ -96,16 +96,16 @@ tie %Config, 'Config', {
inc_version_list => '',
intsize => '4',
ldlibpthname => '',
- libpth => 'X:\\wprogs\\mingw\\lib',
+ libpth => '\\\\VBOXSVR\\mingw32\\lib',
osname => 'MSWin32',
- osvers => '6.1',
+ osvers => '10.0',
path_sep => ';',
- privlibexp => 'c:\\tlperl\\lib',
- scriptdir => 'c:\\tlperl\\bin',
- sitearchexp => 'c:\\tlperl\\site\\lib',
- sitelibexp => 'c:\\tlperl\\site\\lib',
+ privlibexp => 'c:\\tlperl526\\lib',
+ scriptdir => 'c:\\tlperl526\\bin',
+ sitearchexp => 'c:\\tlperl526\\site\\lib',
+ sitelibexp => 'c:\\tlperl526\\site\\lib',
so => 'dll',
useithreads => 'define',
usevendorprefix => undef,
- version => '5.24.1',
+ version => '5.26.1',
};
diff --git a/Master/tlpkg/tlperl/lib/Config.pod b/Master/tlpkg/tlperl/lib/Config.pod
index dd2408a39de..6cfcade34cf 100644
--- a/Master/tlpkg/tlperl/lib/Config.pod
+++ b/Master/tlpkg/tlperl/lib/Config.pod
@@ -1283,6 +1283,62 @@ This variable conditionally defines C<DLSYM_NEEDS_UNDERSCORE>, which
indicates that we need to prepend an underscore to the symbol
name before calling dlsym().
+=item C<d_double_has_inf>
+
+From F<infnan.U>:
+
+This variable conditionally defines the symbol C<DOUBLE_HAS_INF>
+which indicates that the double type has an infinity.
+
+=item C<d_double_has_nan>
+
+From F<infnan.U>:
+
+This variable conditionally defines the symbol C<DOUBLE_HAS_INF>
+which indicates that the double type has a not-a-number.
+
+=item C<d_double_has_negative_zero>
+
+From F<infnan.U>:
+
+This variable conditionally defines the symbol C<DOUBLE_HAS_NEGATIVE_ZERO>
+which indicates that the double type has a negative zero.
+
+=item C<d_double_has_subnormals>
+
+From F<infnan.U>:
+
+This variable conditionally defines the symbol C<DOUBLE_HAS_SUBNORMALS>
+which indicates that the double type has subnormals (denormals).
+
+=item C<d_double_style_cray>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the symbol C<DOUBLE_STYLE_CRAY>
+which indicates that the double is the 64-bit C<CRAY> mainframe format.
+
+=item C<d_double_style_ibm>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the symbol C<DOUBLE_STYLE_IBM>,
+which indicates that the double is the 64-bit C<IBM> mainframe format.
+
+=item C<d_double_style_ieee>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the symbol C<DOUBLE_STYLE_IEEE>,
+which indicates that the double is the 64-bit C<IEEE> 754.
+
+=item C<d_double_style_vax>
+
+From F<longdblfio.U>:
+
+This variable conditionally defines the symbol C<DOUBLE_STYLE_VAX>,
+which indicates that the double is the 64-bit C<VAX> format D or G.
+
=item C<d_dosuid>
From F<d_dosuid.U>:
@@ -1770,6 +1826,15 @@ From F<d_futimes.U>:
This variable conditionally defines the C<HAS_FUTIMES> symbol, which
indicates to the C program that the futimes() routine is available.
+=item C<d_gai_strerror>
+
+From F<d_gai_strerror.U>:
+
+This variable conditionally defines the C<HAS_GAI_STRERROR> symbol
+if the gai_strerror() routine is available and can be used to
+translate error codes returned by getaddrinfo() into human
+readable strings.
+
=item C<d_Gconvert>
From F<d_gconvert.U>:
@@ -2681,6 +2746,45 @@ From F<d_longdbl.U>:
This variable conditionally defines C<HAS_LONG_DOUBLE> if
the long double type is supported.
+=item C<d_long_double_style_ieee>
+
+From F<d_longdbl.U>:
+
+This variable conditionally defines C<LONG_DOUBLE_STYLE_IEEE>
+if the long double is any of the C<IEEE> 754 style long doubles:
+C<LONG_DOUBLE_STYLE_IEEE_STD>, C<LONG_DOUBLE_STYLE_IEEE_EXTENDED>,
+C<LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE>.
+
+=item C<d_long_double_style_ieee_doubledouble>
+
+From F<d_longdbl.U>:
+
+This variable conditionally defines C<LONG_DOUBLE_STYLE_IEEE_DOUBLEDOUBLE>
+if the long double is the 128-bit C<IEEE> 754 double-double.
+
+=item C<d_long_double_style_ieee_extended>
+
+From F<d_longdbl.U>:
+
+This variable conditionally defines C<LONG_DOUBLE_STYLE_IEEE_EXTENDED>
+if the long double is the 80-bit C<IEEE> 754 extended precision.
+Note that despite the C<extended> this is less than the C<std>,
+since thisis an extension of the double precision.
+
+=item C<d_long_double_style_ieee_std>
+
+From F<d_longdbl.U>:
+
+This variable conditionally defines C<LONG_DOUBLE_STYLE_IEEE_STD>
+if the long double is the 128-bit C<IEEE> 754.
+
+=item C<d_long_double_style_vax>
+
+From F<d_longdbl.U>:
+
+This variable conditionally defines C<LONG_DOUBLE_STYLE_VAX>
+if the long double is the 128-bit C<VAX> format H.
+
=item C<d_longlong>
From F<d_longlong.U>:
@@ -3435,6 +3539,14 @@ From F<quadtype.U>:
This variable, if defined, tells that there's a 64-bit integer type,
quadtype.
+=item C<d_querylocale>
+
+From F<d_newlocale.U>:
+
+This variable conditionally defines the C<HAS_QUERYLOCALE> symbol, which
+indicates to the C program that the querylocale() routine is available
+to return the name of the locale for a category mask.
+
=item C<d_random_r>
From F<d_random_r.U>:
@@ -4344,6 +4456,15 @@ From F<d_strerror.U>:
This variable conditionally defines C<HAS_STRERROR> if strerror() is
available to translate error numbers to strings.
+=item C<d_strerror_l>
+
+From F<d_strerror_l.U>:
+
+This variable conditionally defines the C<HAS_STRERROR_L> symbol, which
+indicates to the C program that the strerror_l() routine is available
+to return the error message for a given errno value in a particular
+locale (identified by a locale_t object).
+
=item C<d_strerror_r>
From F<d_strerror_r.U>:
@@ -4891,6 +5012,12 @@ This variable contains the patch version number of
Berkeley C<DB> found in the <db.h> header file.
For C<DB> version 1 this is always 0.
+=item C<default_inc_excludes_dot>
+
+From F<defaultincdot.U>:
+
+When defined, remove the legacy F<.> from @C<INC>
+
=item C<direntrytype>
From F<i_dirent.U>:
@@ -4933,6 +5060,12 @@ This variable, if defined, encodes the type of a double:
6 = C<IEEE> 754 128-bit big endian,
7 = C<IEEE> 754 64-bit mixed endian le-be,
8 = C<IEEE> 754 64-bit mixed endian be-le,
+9 = C<VAX> 32bit little endian F float format
+10 = C<VAX> 64bit little endian D float format
+11 = C<VAX> 64bit little endian G float format
+12 = C<IBM> 32bit format
+13 = C<IBM> 64bit format
+14 = Cray 64bit format
-1 = unknown format.
=item C<doublemantbits>
@@ -4990,6 +5123,14 @@ From F<dtraceobject.U>:
Whether we need to build an object file with the dtrace tool.
+=item C<dtracexnolibs>
+
+From F<dtraceobject.U>:
+
+Whether dtrace accepts -xnolibs. If available we call dtrace -h
+and dtrace -G with -xnolibs to allow dtrace to run in a jail on
+FreeBSD.
+
=item C<dynamic_ext>
From F<Extensions.U>:
@@ -7019,8 +7160,9 @@ This variable, if defined, encodes the type of a long double:
4 = x86 80-bit big endian,
5 = double-double 128-bit little endian,
6 = double-double 128-bit big endian,
-7 = 128-bit mixed double-double (64-bit LEs in C<BE>),
-8 = 128-bit mixed double-double (64-bit BEs in C<LE>),
+7 = 128-bit mixed-endian double-double (64-bit LEs in C<BE>),
+8 = 128-bit mixed-endian double-double (64-bit BEs in C<LE>),
+9 = 128-bit C<PDP>-style mixed-endian long doubles,
-1 = unknown format.
=item C<longdblmantbits>
diff --git a/Master/tlpkg/tlperl/lib/Config/Perl/V.pm b/Master/tlpkg/tlperl/lib/Config/Perl/V.pm
index 79999fb43a7..9e9c09c9fa5 100755
--- a/Master/tlpkg/tlperl/lib/Config/Perl/V.pm
+++ b/Master/tlpkg/tlperl/lib/Config/Perl/V.pm
@@ -8,8 +8,8 @@ use warnings;
use Config;
use Exporter;
use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
-$VERSION = "0.25";
-@ISA = ("Exporter");
+$VERSION = "0.28";
+@ISA = qw( Exporter );
@EXPORT_OK = qw( plv2hash summary myconfig signature );
%EXPORT_TAGS = (
all => [ @EXPORT_OK ],
@@ -54,6 +54,7 @@ my %BTD = map { $_ => 0 } qw(
PERL_MEM_LOG_STDERR
PERL_MEM_LOG_TIMESTAMP
PERL_NEW_COPY_ON_WRITE
+ PERL_OP_PARENT
PERL_PERTURB_KEYS_DETERMINISTIC
PERL_PERTURB_KEYS_DISABLED
PERL_PERTURB_KEYS_RANDOM
@@ -61,6 +62,7 @@ my %BTD = map { $_ => 0 } qw(
PERL_RELOCATABLE_INCPUSH
PERL_USE_DEVEL
PERL_USE_SAFE_PUTENV
+ SILENT_NO_TAINT_SUPPORT
UNLINK_ALL_VERSIONS
USE_ATTRIBUTES_FOR_PERLIO
USE_FAST_STDIO
@@ -159,7 +161,7 @@ my @config_vars = qw(
useithreads usemultiplicity
useperlio d_sfio uselargefiles usesocks
use64bitint use64bitall uselongdouble
- usemymalloc bincompat5005
+ usemymalloc default_inc_excludes_dot bincompat5005
cc ccflags
optimize
@@ -188,8 +190,7 @@ my %empty_build = (
patches => [],
);
-sub _make_derived
-{
+sub _make_derived {
my $conf = shift;
for ( [ lseektype => "Off_t" ],
@@ -228,11 +229,12 @@ sub _make_derived
$conf->{config}{git_describe} ||= $conf->{config}{perl_patchlevel};
}
+ $conf->{config}{$_} ||= "undef" for grep m/^(?:use|def)/ => @config_vars;
+
$conf;
} # _make_derived
-sub plv2hash
-{
+sub plv2hash {
my %config;
my $pv = join "\n" => @_;
@@ -253,6 +255,15 @@ sub plv2hash
$config{git_commit_id} = $2;
}
+ # these are always last on line and can have multiple quotation styles
+ for my $k (qw( ccflags ldflags lddlflags )) {
+ $pv =~ s{, \s* $k \s*=\s* (.*) \s*$}{}mx or next;
+ my $v = $1;
+ $v =~ s/\s*,\s*$//;
+ $v =~ s/^(['"])(.*)\1$/$2/;
+ $config{$k} = $v;
+ }
+
if (my %kv = ($pv =~ m{\b
(\w+) # key
\s*= # assign
@@ -297,8 +308,7 @@ sub plv2hash
});
} # plv2hash
-sub summary
-{
+sub summary {
my $conf = shift || myconfig ();
ref $conf eq "HASH" &&
exists $conf->{config} && exists $conf->{build} or return;
@@ -310,14 +320,14 @@ sub summary
d_longdbl d_longlong use64bitall use64bitint useithreads
uselongdouble usemultiplicity usemymalloc useperlio useshrplib
doublesize intsize ivsize nvsize longdblsize longlongsize lseeksize
+ default_inc_excludes_dot
);
$info{$_}++ for grep { $conf->{build}{options}{$_} } keys %{$conf->{build}{options}};
return \%info;
} # summary
-sub signature
-{
+sub signature {
eval { require Digest::MD5 };
$@ and return "00000000000000000000000000000000";
@@ -328,8 +338,7 @@ sub signature
} sort keys %$conf);
} # signature
-sub myconfig
-{
+sub myconfig {
my $args = shift;
my %args = ref $args eq "HASH" ? %$args :
ref $args eq "ARRAY" ? @$args : ();
@@ -537,7 +546,7 @@ H.Merijn Brand <h.m.brand@xs4all.nl>
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2009-2015 H.Merijn Brand
+Copyright (C) 2009-2016 H.Merijn Brand
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Config_heavy.pl b/Master/tlpkg/tlperl/lib/Config_heavy.pl
index 9703d649253..c47204dc405 100644
--- a/Master/tlpkg/tlperl/lib/Config_heavy.pl
+++ b/Master/tlpkg/tlperl/lib/Config_heavy.pl
@@ -29,20 +29,17 @@ sub _V {
my ($bincompat, $non_bincompat, $date, @patches) = Internals::V();
- my $opts = join ' ', sort split ' ', "$bincompat $non_bincompat";
-
- # wrap at 76 columns.
-
- $opts =~ s/(?=.{53})(.{1,53}) /$1\n /mg;
+ my @opts = sort split ' ', "$bincompat $non_bincompat";
print Config::myconfig();
print "\nCharacteristics of this binary (from libperl): \n";
- print " Compile-time options: $opts\n";
+ print " Compile-time options:\n";
+ print " $_\n" for @opts;
if (@patches) {
print " Locally applied patches:\n";
- print "\t$_\n" foreach @patches;
+ print " $_\n" foreach @patches;
}
print " Built under MSWin32\n";
@@ -76,32 +73,67 @@ our $summary = <<'!END!';
Summary of my $package (revision $revision $version_patchlevel_string) configuration:
$git_commit_id_title $git_commit_id$git_ancestor_line
Platform:
- osname=$osname, osvers=$osvers, archname=$archname
+ osname=$osname
+ osvers=$osvers
+ archname=$archname
uname='$myuname'
config_args='$config_args'
- hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction
- useithreads=$useithreads, usemultiplicity=$usemultiplicity
- use64bitint=$use64bitint, use64bitall=$use64bitall, uselongdouble=$uselongdouble
- usemymalloc=$usemymalloc, bincompat5005=undef
+ hint=$hint
+ useposix=$useposix
+ d_sigaction=$d_sigaction
+ useithreads=$useithreads
+ usemultiplicity=$usemultiplicity
+ use64bitint=$use64bitint
+ use64bitall=$use64bitall
+ uselongdouble=$uselongdouble
+ usemymalloc=$usemymalloc
+ default_inc_excludes_dot=$default_inc_excludes_dot
+ bincompat5005=undef
Compiler:
- cc='$cc', ccflags ='$ccflags',
- optimize='$optimize',
+ cc='$cc'
+ ccflags ='$ccflags'
+ optimize='$optimize'
cppflags='$cppflags'
- ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers'
- intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder, doublekind=$doublekind
- d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize, longdblkind=$longdblkind
- ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize
- alignbytes=$alignbytes, prototype=$prototype
+ ccversion='$ccversion'
+ gccversion='$gccversion'
+ gccosandvers='$gccosandvers'
+ intsize=$intsize
+ longsize=$longsize
+ ptrsize=$ptrsize
+ doublesize=$doublesize
+ byteorder=$byteorder
+ doublekind=$doublekind
+ d_longlong=$d_longlong
+ longlongsize=$longlongsize
+ d_longdbl=$d_longdbl
+ longdblsize=$longdblsize
+ longdblkind=$longdblkind
+ ivtype='$ivtype'
+ ivsize=$ivsize
+ nvtype='$nvtype'
+ nvsize=$nvsize
+ Off_t='$lseektype'
+ lseeksize=$lseeksize
+ alignbytes=$alignbytes
+ prototype=$prototype
Linker and Libraries:
- ld='$ld', ldflags ='$ldflags'
+ ld='$ld'
+ ldflags ='$ldflags'
libpth=$libpth
libs=$libs
perllibs=$perllibs
- libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl
+ libc=$libc
+ so=$so
+ useshrplib=$useshrplib
+ libperl=$libperl
gnulibc_version='$gnulibc_version'
Dynamic Linking:
- dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags'
- cccdlflags='$cccdlflags', lddlflags='$lddlflags'
+ dlsrc=$dlsrc
+ dlext=$dlext
+ d_dlsymun=$d_dlsymun
+ ccdlflags='$ccdlflags'
+ cccdlflags='$cccdlflags'
+ lddlflags='$lddlflags'
!END!
my $summary_expanded;
@@ -128,7 +160,7 @@ sub myconfig {
my $rootdir = __FILE__;
$rootdir =~ s![\\/][^\\/]*[\\/][^\\/]*$!!;
$rootdir =~ s!/!\\!g;
-my $mingdir = "x:\\wprogs\\mingw";
+my $mingdir = "\\\\VBOXSVR\\mingw32";
local *_ = \my $a;
$_ = <<"!END!";
@@ -139,15 +171,15 @@ Header=''
Id='\$Id'
Locker=''
Log='\$Log'
-PATCHLEVEL='24'
+PATCHLEVEL='26'
PERL_API_REVISION='5'
PERL_API_SUBVERSION='0'
-PERL_API_VERSION='24'
+PERL_API_VERSION='26'
PERL_CONFIG_SH='true'
PERL_PATCHLEVEL=''
PERL_REVISION='5'
PERL_SUBVERSION='1'
-PERL_VERSION='24'
+PERL_VERSION='26'
RCSfile='\$RCSfile'
Revision='\$Revision'
SUBVERSION='1'
@@ -163,13 +195,14 @@ ansi2knr=''
aphostname=''
api_revision='5'
api_subversion='0'
-api_version='24'
-api_versionstring='5.24.0'
+api_version='26'
+api_versionstring='5.26.0'
ar='ar'
archlib='$rootdir\\lib'
archlibexp='$rootdir\\lib'
archname64=''
archname='MSWin32-x86-multi-thread'
+archname64=''
archobjs=''
asctime_r_proto='0'
awk='awk'
@@ -194,7 +227,7 @@ ccsymbols=''
ccversion=''
cf_by='siepo'
cf_email='tex-live\@tug.org'
-cf_time='Tue Apr 11 15:40:25 2017'
+cf_time='Sun Feb 18 10:08:38 2018'
charbits='8'
chgrp=''
chmod=''
@@ -289,8 +322,8 @@ d_ctime_r='undef'
d_cuserid='undef'
d_dbl_dig='define'
d_dbminitproto='undef'
-d_difftime64='undef'
d_difftime='define'
+d_difftime64='undef'
d_dir_dd_fd='undef'
d_dirfd='undef'
d_dirnamlen='define'
@@ -299,6 +332,14 @@ d_dlerror='define'
d_dlopen='define'
d_dlsymun='undef'
d_dosuid='undef'
+d_double_has_inf='define'
+d_double_has_nan='define'
+d_double_has_negative_zero='define'
+d_double_has_subnormals='define'
+d_double_style_cray='undef'
+d_double_style_ibm='undef'
+d_double_style_ieee='define'
+d_double_style_vax='undef'
d_drand48_r='undef'
d_drand48proto='undef'
d_dup2='define'
@@ -363,6 +404,7 @@ d_fsync='undef'
d_ftello='undef'
d_ftime='define'
d_futimes='undef'
+d_gai_strerror='undef'
d_gdbm_ndbm_h_uses_prototypes='undef'
d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
@@ -400,8 +442,8 @@ d_getpbyname='define'
d_getpbynumber='define'
d_getpent='undef'
d_getpgid='undef'
-d_getpgrp2='undef'
d_getpgrp='undef'
+d_getpgrp2='undef'
d_getppid='undef'
d_getprior='undef'
d_getprotobyname_r='undef'
@@ -475,6 +517,11 @@ d_lockf='undef'
d_log1p='undef'
d_log2='undef'
d_logb='undef'
+d_long_double_style_ieee='undef'
+d_long_double_style_ieee_doubledouble='undef'
+d_long_double_style_ieee_extended='define'
+d_long_double_style_ieee_std='undef'
+d_long_double_style_vax='undef'
d_longdbl='define'
d_longlong='define'
d_lrint='undef'
@@ -500,8 +547,8 @@ d_mkdtemp='undef'
d_mkfifo='undef'
d_mkstemp='undef'
d_mkstemps='undef'
-d_mktime64='undef'
d_mktime='define'
+d_mktime64='undef'
d_mmap='undef'
d_modfl='undef'
d_modfl_pow32_bug='undef'
@@ -563,9 +610,10 @@ d_pwpasswd='undef'
d_pwquota='undef'
d_qgcvt='undef'
d_quad='define'
+d_querylocale='undef'
d_random_r='undef'
-d_readdir64_r='undef'
d_readdir='define'
+d_readdir64_r='undef'
d_readdir_r='undef'
d_readlink='undef'
d_readv='undef'
@@ -610,8 +658,8 @@ d_setnent='undef'
d_setnetent_r='undef'
d_setpent='undef'
d_setpgid='undef'
-d_setpgrp2='undef'
d_setpgrp='undef'
+d_setpgrp2='undef'
d_setprior='undef'
d_setproctitle='undef'
d_setprotoent_r='undef'
@@ -679,6 +727,7 @@ d_strcoll='define'
d_strctcpy='define'
d_strerrm='strerror(e)'
d_strerror='define'
+d_strerror_l='undef'
d_strerror_r='undef'
d_strftime='define'
d_strlcat='undef'
@@ -752,6 +801,7 @@ db_prefixtype='int'
db_version_major='0'
db_version_minor='0'
db_version_patch='0'
+default_inc_excludes_dot='define'
direntrytype='struct direct'
dlext='dll'
dlltool='dlltool'
@@ -779,7 +829,7 @@ endservent_r_proto='0'
eunicefix=':'
exe_ext='.exe'
expr='expr'
-extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Params/Check Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
extern_C='extern'
extras=''
fflushNULL='define'
@@ -796,7 +846,7 @@ full_csh=''
full_sed=''
gccansipedantic=''
gccosandvers=''
-gccversion='6.3.0'
+gccversion='7.3.0'
getgrent_r_proto='0'
getgrgid_r_proto='0'
getgrnam_r_proto='0'
@@ -936,6 +986,7 @@ i_values='undef'
i_varargs='undef'
i_varhdr='varargs.h'
i_vfork='undef'
+i_xlocale='undef'
ignore_versioned_solibs=''
inc_version_list=''
inc_version_list_init='0'
@@ -977,7 +1028,7 @@ issymlink=''
ivdformat='"ld"'
ivsize='4'
ivtype='long'
-known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
ksh=''
ld='g++'
lddlflags='-mdll -s -L"$rootdir\\lib\\CORE" -L"$mingdir\\lib"'
@@ -987,7 +1038,7 @@ ldlibpthname=''
less='less'
lib_ext='.a'
libc=''
-libperl='libperl524.a'
+libperl='libperl526.a'
libpth='$mingdir\\lib'
libs='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
libsdirs=''
@@ -1051,7 +1102,7 @@ netdb_net_type='long'
nm='nm'
nm_opt=''
nm_so_opt=''
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
+nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
nroff=''
nvEUformat='"E"'
nvFUformat='"F"'
@@ -1070,15 +1121,15 @@ old_pthread_create_joinable=''
optimize='-s -O2'
orderlib='false'
osname='MSWin32'
-osvers='6.1'
+osvers='10.0'
otherlibdirs=''
package='perl5'
pager='more /e'
passcat=''
-patchlevel='24'
+patchlevel='26'
path_sep=';'
-perl5=''
perl='perl'
+perl5=''
perl_patchlevel=''
perl_static_inline='static __inline__'
perladmin=''
@@ -1300,8 +1351,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.24.1'
-version_patchlevel_string='version 24 subversion 1'
+version='5.26.1'
+version_patchlevel_string='version 26 subversion 1'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
diff --git a/Master/tlpkg/tlperl/lib/Config_heavy.pl.orig b/Master/tlpkg/tlperl/lib/Config_heavy.pl.orig
index 22133cecc0e..49a84858a22 100644
--- a/Master/tlpkg/tlperl/lib/Config_heavy.pl.orig
+++ b/Master/tlpkg/tlperl/lib/Config_heavy.pl.orig
@@ -29,20 +29,17 @@ sub _V {
my ($bincompat, $non_bincompat, $date, @patches) = Internals::V();
- my $opts = join ' ', sort split ' ', "$bincompat $non_bincompat";
-
- # wrap at 76 columns.
-
- $opts =~ s/(?=.{53})(.{1,53}) /$1\n /mg;
+ my @opts = sort split ' ', "$bincompat $non_bincompat";
print Config::myconfig();
print "\nCharacteristics of this binary (from libperl): \n";
- print " Compile-time options: $opts\n";
+ print " Compile-time options:\n";
+ print " $_\n" for @opts;
if (@patches) {
print " Locally applied patches:\n";
- print "\t$_\n" foreach @patches;
+ print " $_\n" foreach @patches;
}
print " Built under MSWin32\n";
@@ -69,39 +66,74 @@ sub header_files {
util.h);
}
-### Configured by: siepo@W7_64
+### Configured by: siepo@DESKTOP-AN8JETL
### Target system: WIN32
our $summary = <<'!END!';
Summary of my $package (revision $revision $version_patchlevel_string) configuration:
$git_commit_id_title $git_commit_id$git_ancestor_line
Platform:
- osname=$osname, osvers=$osvers, archname=$archname
+ osname=$osname
+ osvers=$osvers
+ archname=$archname
uname='$myuname'
config_args='$config_args'
- hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction
- useithreads=$useithreads, usemultiplicity=$usemultiplicity
- use64bitint=$use64bitint, use64bitall=$use64bitall, uselongdouble=$uselongdouble
- usemymalloc=$usemymalloc, bincompat5005=undef
+ hint=$hint
+ useposix=$useposix
+ d_sigaction=$d_sigaction
+ useithreads=$useithreads
+ usemultiplicity=$usemultiplicity
+ use64bitint=$use64bitint
+ use64bitall=$use64bitall
+ uselongdouble=$uselongdouble
+ usemymalloc=$usemymalloc
+ default_inc_excludes_dot=$default_inc_excludes_dot
+ bincompat5005=undef
Compiler:
- cc='$cc', ccflags ='$ccflags',
- optimize='$optimize',
+ cc='$cc'
+ ccflags ='$ccflags'
+ optimize='$optimize'
cppflags='$cppflags'
- ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers'
- intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder, doublekind=$doublekind
- d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize, longdblkind=$longdblkind
- ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize
- alignbytes=$alignbytes, prototype=$prototype
+ ccversion='$ccversion'
+ gccversion='$gccversion'
+ gccosandvers='$gccosandvers'
+ intsize=$intsize
+ longsize=$longsize
+ ptrsize=$ptrsize
+ doublesize=$doublesize
+ byteorder=$byteorder
+ doublekind=$doublekind
+ d_longlong=$d_longlong
+ longlongsize=$longlongsize
+ d_longdbl=$d_longdbl
+ longdblsize=$longdblsize
+ longdblkind=$longdblkind
+ ivtype='$ivtype'
+ ivsize=$ivsize
+ nvtype='$nvtype'
+ nvsize=$nvsize
+ Off_t='$lseektype'
+ lseeksize=$lseeksize
+ alignbytes=$alignbytes
+ prototype=$prototype
Linker and Libraries:
- ld='$ld', ldflags ='$ldflags'
+ ld='$ld'
+ ldflags ='$ldflags'
libpth=$libpth
libs=$libs
perllibs=$perllibs
- libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl
+ libc=$libc
+ so=$so
+ useshrplib=$useshrplib
+ libperl=$libperl
gnulibc_version='$gnulibc_version'
Dynamic Linking:
- dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags'
- cccdlflags='$cccdlflags', lddlflags='$lddlflags'
+ dlsrc=$dlsrc
+ dlext=$dlext
+ d_dlsymun=$d_dlsymun
+ ccdlflags='$ccdlflags'
+ cccdlflags='$cccdlflags'
+ lddlflags='$lddlflags'
!END!
my $summary_expanded;
@@ -134,15 +166,15 @@ Header=''
Id='$Id'
Locker=''
Log='$Log'
-PATCHLEVEL='24'
+PATCHLEVEL='26'
PERL_API_REVISION='5'
PERL_API_SUBVERSION='0'
-PERL_API_VERSION='24'
+PERL_API_VERSION='26'
PERL_CONFIG_SH='true'
PERL_PATCHLEVEL=''
PERL_REVISION='5'
PERL_SUBVERSION='1'
-PERL_VERSION='24'
+PERL_VERSION='26'
RCSfile='$RCSfile'
Revision='$Revision'
SUBVERSION='1'
@@ -158,20 +190,20 @@ ansi2knr=''
aphostname=''
api_revision='5'
api_subversion='0'
-api_version='24'
-api_versionstring='5.24.0'
+api_version='26'
+api_versionstring='5.26.0'
ar='ar'
-archlib='c:\tlperl\lib'
-archlibexp='c:\tlperl\lib'
-archname64=''
+archlib='c:\tlperl526\lib'
+archlibexp='c:\tlperl526\lib'
archname='MSWin32-x86-multi-thread'
+archname64=''
archobjs=''
asctime_r_proto='0'
awk='awk'
baserev='5'
bash=''
-bin='c:\tlperl\bin'
-binexp='c:\tlperl\bin'
+bin='c:\tlperl526\bin'
+binexp='c:\tlperl526\bin'
bison=''
bootstrap_charset='undef'
byacc='byacc'
@@ -188,8 +220,8 @@ ccname='gcc'
ccsymbols=''
ccversion=''
cf_by='siepo'
-cf_email='siepo@W7_64'
-cf_time='Tue Apr 11 15:40:25 2017'
+cf_email='siepo@DESKTOP-AN8JETL'
+cf_time='Sun Feb 18 10:08:38 2018'
charbits='8'
chgrp=''
chmod=''
@@ -284,8 +316,8 @@ d_ctime_r='undef'
d_cuserid='undef'
d_dbl_dig='define'
d_dbminitproto='undef'
-d_difftime64='undef'
d_difftime='define'
+d_difftime64='undef'
d_dir_dd_fd='undef'
d_dirfd='undef'
d_dirnamlen='define'
@@ -294,6 +326,14 @@ d_dlerror='define'
d_dlopen='define'
d_dlsymun='undef'
d_dosuid='undef'
+d_double_has_inf='define'
+d_double_has_nan='define'
+d_double_has_negative_zero='define'
+d_double_has_subnormals='define'
+d_double_style_cray='undef'
+d_double_style_ibm='undef'
+d_double_style_ieee='define'
+d_double_style_vax='undef'
d_drand48_r='undef'
d_drand48proto='undef'
d_dup2='define'
@@ -358,6 +398,7 @@ d_fsync='undef'
d_ftello='undef'
d_ftime='define'
d_futimes='undef'
+d_gai_strerror='undef'
d_gdbm_ndbm_h_uses_prototypes='undef'
d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
@@ -395,8 +436,8 @@ d_getpbyname='define'
d_getpbynumber='define'
d_getpent='undef'
d_getpgid='undef'
-d_getpgrp2='undef'
d_getpgrp='undef'
+d_getpgrp2='undef'
d_getppid='undef'
d_getprior='undef'
d_getprotobyname_r='undef'
@@ -470,6 +511,11 @@ d_lockf='undef'
d_log1p='undef'
d_log2='undef'
d_logb='undef'
+d_long_double_style_ieee='undef'
+d_long_double_style_ieee_doubledouble='undef'
+d_long_double_style_ieee_extended='define'
+d_long_double_style_ieee_std='undef'
+d_long_double_style_vax='undef'
d_longdbl='define'
d_longlong='define'
d_lrint='undef'
@@ -495,8 +541,8 @@ d_mkdtemp='undef'
d_mkfifo='undef'
d_mkstemp='undef'
d_mkstemps='undef'
-d_mktime64='undef'
d_mktime='define'
+d_mktime64='undef'
d_mmap='undef'
d_modfl='undef'
d_modfl_pow32_bug='undef'
@@ -558,9 +604,10 @@ d_pwpasswd='undef'
d_pwquota='undef'
d_qgcvt='undef'
d_quad='define'
+d_querylocale='undef'
d_random_r='undef'
-d_readdir64_r='undef'
d_readdir='define'
+d_readdir64_r='undef'
d_readdir_r='undef'
d_readlink='undef'
d_readv='undef'
@@ -605,8 +652,8 @@ d_setnent='undef'
d_setnetent_r='undef'
d_setpent='undef'
d_setpgid='undef'
-d_setpgrp2='undef'
d_setpgrp='undef'
+d_setpgrp2='undef'
d_setprior='undef'
d_setproctitle='undef'
d_setprotoent_r='undef'
@@ -674,6 +721,7 @@ d_strcoll='define'
d_strctcpy='define'
d_strerrm='strerror(e)'
d_strerror='define'
+d_strerror_l='undef'
d_strerror_r='undef'
d_strftime='define'
d_strlcat='undef'
@@ -747,6 +795,7 @@ db_prefixtype='int'
db_version_major='0'
db_version_minor='0'
db_version_patch='0'
+default_inc_excludes_dot='define'
direntrytype='struct direct'
dlext='dll'
dlltool='dlltool'
@@ -774,7 +823,7 @@ endservent_r_proto='0'
eunicefix=':'
exe_ext='.exe'
expr='expr'
-extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Params/Check Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
extern_C='extern'
extras=''
fflushNULL='define'
@@ -791,7 +840,7 @@ full_csh=''
full_sed=''
gccansipedantic=''
gccosandvers=''
-gccversion='6.3.0'
+gccversion='7.3.0'
getgrent_r_proto='0'
getgrgid_r_proto='0'
getgrnam_r_proto='0'
@@ -931,29 +980,30 @@ i_values='undef'
i_varargs='undef'
i_varhdr='varargs.h'
i_vfork='undef'
+i_xlocale='undef'
ignore_versioned_solibs=''
inc_version_list=''
inc_version_list_init='0'
-incpath='X:\wprogs\mingw\include'
+incpath='\\VBOXSVR\mingw32\include'
inews=''
initialinstalllocation=''
-installarchlib='c:\tlperl\lib'
-installbin='c:\tlperl\bin'
+installarchlib='c:\tlperl526\lib'
+installbin='c:\tlperl526\bin'
installhtml1dir=''
installhtml3dir=''
-installhtmldir='c:\tlperl\html'
-installhtmlhelpdir='c:\tlperl\htmlhelp'
-installman1dir='c:\tlperl\man\man1'
-installman3dir='c:\tlperl\man\man3'
-installprefix='c:\tlperl'
-installprefixexp='c:\tlperl'
-installprivlib='c:\tlperl\lib'
-installscript='c:\tlperl\bin'
-installsitearch='c:\tlperl\site\lib'
-installsitebin='c:\tlperl\bin'
+installhtmldir='c:\tlperl526\html'
+installhtmlhelpdir='c:\tlperl526\htmlhelp'
+installman1dir='c:\tlperl526\man\man1'
+installman3dir='c:\tlperl526\man\man3'
+installprefix='c:\tlperl526'
+installprefixexp='c:\tlperl526'
+installprivlib='c:\tlperl526\lib'
+installscript='c:\tlperl526\bin'
+installsitearch='c:\tlperl526\site\lib'
+installsitebin='c:\tlperl526\bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='c:\tlperl\site\lib'
+installsitelib='c:\tlperl526\site\lib'
installsiteman1dir=''
installsiteman3dir=''
installsitescript=''
@@ -972,18 +1022,18 @@ issymlink=''
ivdformat='"ld"'
ivsize='4'
ivtype='long'
-known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
+known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version'
ksh=''
ld='g++'
-lddlflags='-mdll -s -L"c:\tlperl\lib\CORE" -L"X:\wprogs\mingw\lib"'
-ldflags='-s -L"c:\tlperl\lib\CORE" -L"X:\wprogs\mingw\lib"'
+lddlflags='-mdll -s -L"c:\tlperl526\lib\CORE" -L"\\VBOXSVR\mingw32\lib"'
+ldflags='-s -L"c:\tlperl526\lib\CORE" -L"\\VBOXSVR\mingw32\lib"'
ldflags_uselargefiles=''
ldlibpthname=''
less='less'
lib_ext='.a'
libc=''
-libperl='libperl524.a'
-libpth='X:\wprogs\mingw\lib'
+libperl='libperl526.a'
+libpth='\\VBOXSVR\mingw32\lib'
libs='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
libsdirs=''
libsfiles=''
@@ -1019,11 +1069,11 @@ make_set_make='#'
mallocobj='malloc.o'
mallocsrc='malloc.c'
malloctype='void *'
-man1dir='c:\tlperl\man\man1'
-man1direxp='c:\tlperl\man\man1'
+man1dir='c:\tlperl526\man\man1'
+man1direxp='c:\tlperl526\man\man1'
man1ext='1'
-man3dir='c:\tlperl\man\man3'
-man3direxp='c:\tlperl\man\man3'
+man3dir='c:\tlperl526\man\man3'
+man3direxp='c:\tlperl526\man\man3'
man3ext='3'
mips_type=''
mistrustnm=''
@@ -1046,7 +1096,7 @@ netdb_net_type='long'
nm='nm'
nm_opt=''
nm_so_opt=''
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
+nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version'
nroff=''
nvEUformat='"E"'
nvFUformat='"F"'
@@ -1065,30 +1115,30 @@ old_pthread_create_joinable=''
optimize='-s -O2'
orderlib='false'
osname='MSWin32'
-osvers='6.1'
+osvers='10.0'
otherlibdirs=''
package='perl5'
pager='more /e'
passcat=''
-patchlevel='24'
+patchlevel='26'
path_sep=';'
-perl5=''
perl='perl'
+perl5=''
perl_patchlevel=''
perl_static_inline='static __inline__'
perladmin=''
perllibs='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
-perlpath='c:\tlperl\bin\perl.exe'
+perlpath='c:\tlperl526\bin\perl.exe'
pg=''
phostname='hostname'
pidtype='int'
plibpth=''
pmake=''
pr=''
-prefix='c:\tlperl'
-prefixexp='c:\tlperl'
-privlib='c:\tlperl\lib'
-privlibexp='c:\tlperl\lib'
+prefix='c:\tlperl526'
+prefixexp='c:\tlperl526'
+privlib='c:\tlperl526\lib'
+privlibexp='c:\tlperl526\lib'
procselfexe=''
prototype='define'
ptrsize='4'
@@ -1126,8 +1176,8 @@ sPRIu64='"lu"'
sPRIx64='"lx"'
sSCNfldbl='"Lf"'
sched_yield=''
-scriptdir='c:\tlperl\bin'
-scriptdirexp='c:\tlperl\bin'
+scriptdir='c:\tlperl526\bin'
+scriptdirexp='c:\tlperl526\bin'
sed='sed'
seedfunc='Perl_drand48_init'
selectminbits='32'
@@ -1154,23 +1204,23 @@ sig_num='0 1 2 21 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 20
sig_num_init='0, 1, 2, 21, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0'
sig_size='27'
signal_t='void'
-sitearch='c:\tlperl\site\lib'
-sitearchexp='c:\tlperl\site\lib'
-sitebin='c:\tlperl\site\bin'
-sitebinexp='c:\tlperl\site\bin'
+sitearch='c:\tlperl526\site\lib'
+sitearchexp='c:\tlperl526\site\lib'
+sitebin='c:\tlperl526\site\bin'
+sitebinexp='c:\tlperl526\site\bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='c:\tlperl\site\lib'
+sitelib='c:\tlperl526\site\lib'
sitelib_stem=''
-sitelibexp='c:\tlperl\site\lib'
+sitelibexp='c:\tlperl526\site\lib'
siteman1dir=''
siteman1direxp=''
siteman3dir=''
siteman3direxp=''
-siteprefix='c:\tlperl\site'
-siteprefixexp='c:\tlperl\site'
+siteprefix='c:\tlperl526\site'
+siteprefixexp='c:\tlperl526\site'
sitescript=''
sitescriptexp=''
sizesize='4'
@@ -1295,8 +1345,8 @@ vendorprefix=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.24.1'
-version_patchlevel_string='version 24 subversion 1'
+version='5.26.1'
+version_patchlevel_string='version 26 subversion 1'
versiononly='undef'
vi=''
xlibpth='/usr/lib/386 /lib/386'
@@ -1315,7 +1365,7 @@ my $config_sh_len = length $_;
our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL';
ccflags_nolargefiles=' -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY -fwrapv -fno-strict-aliasing -mms-bitfields'
-ldflags_nolargefiles='-s -L"c:\tlperl\lib\CORE" -L"X:\wprogs\mingw\lib"'
+ldflags_nolargefiles='-s -L"c:\tlperl526\lib\CORE" -L"\\VBOXSVR\mingw32\lib"'
libs_nolargefiles='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32'
libswanted_nolargefiles=''
EOVIRTUAL
diff --git a/Master/tlpkg/tlperl/lib/Cwd.pm b/Master/tlpkg/tlperl/lib/Cwd.pm
index 3b6388938a1..ce142cfe690 100644
--- a/Master/tlpkg/tlperl/lib/Cwd.pm
+++ b/Master/tlpkg/tlperl/lib/Cwd.pm
@@ -3,7 +3,7 @@ use strict;
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
-$VERSION = '3.63_01';
+$VERSION = '3.67';
my $xs_version = $VERSION;
$VERSION =~ tr/_//d;
diff --git a/Master/tlpkg/tlperl/lib/Data/Dumper.pm b/Master/tlpkg/tlperl/lib/Data/Dumper.pm
index 13be89d8fbd..00f6326ee13 100644
--- a/Master/tlpkg/tlperl/lib/Data/Dumper.pm
+++ b/Master/tlpkg/tlperl/lib/Data/Dumper.pm
@@ -10,16 +10,15 @@
package Data::Dumper;
BEGIN {
- $VERSION = '2.160'; # Don't forget to set version and release
+ $VERSION = '2.167'; # Don't forget to set version and release
} # date in POD below!
#$| = 1;
use 5.006_001;
require Exporter;
-require overload;
-use Carp;
+use Carp ();
BEGIN {
@ISA = qw(Exporter);
@@ -70,7 +69,7 @@ $Maxrecurse = 1000 unless defined $Maxrecurse;
sub new {
my($c, $v, $n) = @_;
- croak "Usage: PACKAGE->new(ARRAYREF, [ARRAYREF])"
+ Carp::croak("Usage: PACKAGE->new(ARRAYREF, [ARRAYREF])")
unless (defined($v) && (ref($v) eq 'ARRAY'));
$n = [] unless (defined($n) && (ref($n) eq 'ARRAY'));
@@ -170,11 +169,11 @@ sub Seen {
$s->{seen}{$id} = [$k, $v];
}
else {
- carp "Only refs supported, ignoring non-ref item \$$k";
+ Carp::carp("Only refs supported, ignoring non-ref item \$$k");
}
}
else {
- carp "Value of ref must be defined; ignoring undefined item \$$k";
+ Carp::carp("Value of ref must be defined; ignoring undefined item \$$k");
}
}
return $s;
@@ -195,7 +194,7 @@ sub Values {
return $s;
}
else {
- croak "Argument to Values, if provided, must be array ref";
+ Carp::croak("Argument to Values, if provided, must be array ref");
}
}
else {
@@ -214,7 +213,7 @@ sub Names {
return $s;
}
else {
- croak "Argument to Names, if provided, must be array ref";
+ Carp::croak("Argument to Names, if provided, must be array ref");
}
}
else {
@@ -227,7 +226,6 @@ sub DESTROY {}
sub Dump {
return &Dumpxs
unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl})
- || $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse})
# Use pure perl version on earlier releases on EBCDIC platforms
|| (! $IS_ASCII && $] lt 5.021_010);
@@ -439,7 +437,7 @@ sub _dump {
if (ref($s->{sortkeys}) eq 'CODE') {
$keys = $s->{sortkeys}($val);
unless (ref($keys) eq 'ARRAY') {
- carp "Sortkeys subroutine did not return ARRAYREF";
+ Carp::carp("Sortkeys subroutine did not return ARRAYREF");
$keys = [];
}
}
@@ -487,16 +485,16 @@ sub _dump {
require B::Deparse;
my $sub = 'sub ' . (B::Deparse->new)->coderef2text($val);
$pad = $s->{sep} . $s->{pad} . $s->{apad} . $s->{xpad} x ($s->{level} - 1);
- $sub =~ s/\n/$pad/gse;
+ $sub =~ s/\n/$pad/gs;
$out .= $sub;
}
else {
$out .= 'sub { "DUMMY" }';
- carp "Encountered CODE ref, using dummy placeholder" if $s->{purity};
+ Carp::carp("Encountered CODE ref, using dummy placeholder") if $s->{purity};
}
}
else {
- croak "Can't handle '$realtype' type";
+ Carp::croak("Can't handle '$realtype' type");
}
if ($realpack and !$no_bless) { # we have a blessed ref
@@ -1212,9 +1210,10 @@ $Data::Dumper::Deparse I<or> $I<OBJ>->Deparse(I<[NEWVAL]>)
Can be set to a boolean value to control whether code references are
turned into perl source code. If set to a true value, C<B::Deparse>
-will be used to get the source of the code reference. Using this option
-will force using the Perl implementation of the dumper, since the fast
-XSUB implementation doesn't support it.
+will be used to get the source of the code reference. In older versions,
+using this option imposed a significant performance penalty when dumping
+parts of a data structure other than code references, but that is no
+longer the case.
Caution : use this option only if you know that your coderefs will be
properly reconstructed by C<B::Deparse>.
@@ -1435,15 +1434,9 @@ the C<Deparse> flag), an anonymous subroutine that
contains the string '"DUMMY"' will be inserted in its place, and a warning
will be printed if C<Purity> is set. You can C<eval> the result, but bear
in mind that the anonymous sub that gets created is just a placeholder.
-Someday, perl will have a switch to cache-on-demand the string
-representation of a compiled piece of code, I hope. If you have prior
-knowledge of all the code refs that your data structures are likely
-to have, you can use the C<Seen> method to pre-seed the internal reference
-table and make the dumped output point to them, instead. See L</EXAMPLES>
-above.
-
-The C<Deparse> flag makes Dump() run slower, since the XSUB
-implementation does not support it.
+Even using the C<Deparse> flag will in some cases produce results that
+behave differently after being passed to C<eval>; see the documentation
+for L<B::Deparse>.
SCALAR objects have the weirdest looking C<bless> workaround.
@@ -1466,13 +1459,13 @@ be to use the C<Sortkeys> filter of Data::Dumper.
Gurusamy Sarathy gsar@activestate.com
-Copyright (c) 1996-2014 Gurusamy Sarathy. All rights reserved.
+Copyright (c) 1996-2017 Gurusamy Sarathy. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=head1 VERSION
-Version 2.160 (January 12 2016)
+Version 2.167 (January 4 2017)
=head1 SEE ALSO
diff --git a/Master/tlpkg/tlperl/lib/Devel/PPPort.pm b/Master/tlpkg/tlperl/lib/Devel/PPPort.pm
index 47d69fd906d..eef8f56f802 100644
--- a/Master/tlpkg/tlperl/lib/Devel/PPPort.pm
+++ b/Master/tlpkg/tlperl/lib/Devel/PPPort.pm
@@ -128,11 +128,14 @@ in older Perl releases:
aTHXR_
AvFILLp
boolSV
+ C_ARRAY_END
+ C_ARRAY_LENGTH
call_argv
call_method
call_pv
call_sv
caller_cx
+ cBOOL
ckWARN
CopFILE
CopFILE_set
@@ -172,7 +175,6 @@ in older Perl releases:
G_METHOD
get_av
get_cv
- get_cvn_flags
get_cvs
get_hv
get_sv
@@ -184,10 +186,8 @@ in older Perl releases:
grok_oct
gv_fetchpvn_flags
gv_fetchpvs
- gv_fetchsv
gv_stashpvn
gv_stashpvs
- GvSVn
HEf_SVKEY
HeUTF8
hv_fetchs
@@ -210,7 +210,6 @@ in older Perl releases:
isBLANK
isCNTRL
isGRAPH
- isGV_with_GP
isPRINT
isPSXSPC
isPUNCT
@@ -265,6 +264,11 @@ in older Perl releases:
NVff
NVgf
NVTYPE
+ OpHAS_SIBLING
+ OpLASTSIB_set
+ OpMAYBESIB_set
+ OpMORESIB_set
+ OpSIBLING
packWARN
PERL_ABS
PERL_BCDVERSION
@@ -347,6 +351,7 @@ in older Perl releases:
PERL_UNUSED_ARG
PERL_UNUSED_CONTEXT
PERL_UNUSED_DECL
+ PERL_UNUSED_RESULT
PERL_UNUSED_VAR
PERL_UQUAD_MAX
PERL_UQUAD_MIN
@@ -513,6 +518,8 @@ in older Perl releases:
SvREFCNT_inc_void
SvREFCNT_inc_void_NN
SvRV_set
+ SvRX
+ SvRXOK
SvSHARED_HASH
SvSTASH_set
SvUOK
@@ -606,7 +613,7 @@ Perl below which it is unsupported:
=over 4
-=item perl 5.21.8
+=item perl 5.24.0
BhkDISABLE
BhkENABLE
@@ -631,6 +638,9 @@ Perl below which it is unsupported:
PadnamelistMAX
PadnamelistREFCNT
PadnamelistREFCNT_dec
+ RESTORE_LC_NUMERIC
+ STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
+ STORE_LC_NUMERIC_SET_TO_NEEDED
XS_APIVERSION_BOOTCHECK
XS_EXTERNAL
XS_INTERNAL
@@ -648,14 +658,53 @@ Perl below which it is unsupported:
reentrant_retry
reentrant_size
ref
- sv_get_backrefs
sv_setref_pvs
+=item perl 5.23.9
+
+ toFOLD_uvchr
+ toLOWER_uvchr
+ toTITLE_uvchr
+ toUPPER_uvchr
+
+=item perl 5.23.8
+
+ clear_defarray
+ cx_popblock
+ cx_popeval
+ cx_popformat
+ cx_popgiven
+ cx_poploop
+ cx_popsub
+ cx_popsub_args
+ cx_popsub_common
+ cx_popwhen
+ cx_pushblock
+ cx_pusheval
+ cx_pushformat
+ cx_pushgiven
+ cx_pushloop_for
+ cx_pushloop_plain
+ cx_pushsub
+ cx_pushwhen
+ cx_topblock
+ leave_adjust_stacks
+ savetmps
+
+=item perl 5.22.0
+
+ UVCHR_SKIP
+
+=item perl 5.21.10
+
+ DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+
+=item perl 5.21.8
+
+ sv_get_backrefs
+
=item perl 5.21.7
- OpHAS_SIBLING
- OpSIBLING
- OpSIBLING_set
PadnameUTF8
is_invariant_string
newPADNAMELIST
@@ -686,7 +735,6 @@ Perl below which it is unsupported:
=item perl 5.21.2
grok_number_flags
- op_parent
op_sibling_splice
=item perl 5.21.1
@@ -834,7 +882,6 @@ Perl below which it is unsupported:
gv_fetchmethod_pvn_flags
gv_fetchmethod_sv_flags
gv_init_pv
- gv_init_pvn
gv_init_sv
newGVgen_flags
sv_derived_from_pv
@@ -843,6 +890,7 @@ Perl below which it is unsupported:
sv_does_pv
sv_does_pvn
sv_does_sv
+ sv_ref
whichsig_pv
whichsig_pvn
whichsig_sv
@@ -1054,8 +1102,6 @@ Perl below which it is unsupported:
=item perl 5.9.5
Perl_signbit
- SvRX
- SvRXOK
av_create_and_push
av_create_and_unshift_one
gv_fetchfile_flags
@@ -1228,10 +1274,6 @@ Perl below which it is unsupported:
sv_nosharing
sv_recode_to_utf8
sv_uni_display
- toFOLD_uni
- toLOWER_uni
- toTITLE_uni
- toUPPER_uni
to_uni_fold
to_uni_lower
to_uni_title
@@ -1301,8 +1343,10 @@ Perl below which it is unsupported:
=item perl 5.6.0
+ DO_UTF8
PERL_SYS_INIT3
PL_check
+ POPul
SvIOK_UV
SvIOK_notUV
SvIOK_only_UV
@@ -1319,6 +1363,7 @@ Perl below which it is unsupported:
SvUTF8
SvUTF8_off
SvUTF8_on
+ UTF8SKIP
av_delete
av_exists
call_atexit
@@ -1491,6 +1536,7 @@ Perl below which it is unsupported:
CopyD
MoveD
do_binmode
+ my_bcopy
save_aelem
save_helem
@@ -1500,6 +1546,7 @@ Perl below which it is unsupported:
G_VOID
HePV
HeSVKEY_set
+ POPu
SvSetMagicSV
SvSetMagicSV_nosteal
SvSetSV_nosteal
@@ -1621,7 +1668,7 @@ package Devel::PPPort;
use strict;
use vars qw($VERSION $data);
-$VERSION = '3.32';
+$VERSION = '3.35';
sub _init_data
{
@@ -1877,6 +1924,7 @@ SKIP
|> -----------------------------------------------------------------------------------------
|> PL_parser NEED_PL_parser NEED_PL_parser_GLOBAL
|> PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL
+|> SvRX() NEED_SvRX NEED_SvRX_GLOBAL
|> caller_cx() NEED_caller_cx NEED_caller_cx_GLOBAL
|> eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL
|> grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL
@@ -1884,6 +1932,7 @@ SKIP
|> grok_number() NEED_grok_number NEED_grok_number_GLOBAL
|> grok_numeric_radix() NEED_grok_numeric_radix NEED_grok_numeric_radix_GLOBAL
|> grok_oct() NEED_grok_oct NEED_grok_oct_GLOBAL
+|> gv_fetchpvn_flags() NEED_gv_fetchpvn_flags NEED_gv_fetchpvn_flags_GLOBAL
|> load_module() NEED_load_module NEED_load_module_GLOBAL
|> mg_findext() NEED_mg_findext NEED_mg_findext_GLOBAL
|> my_snprintf() NEED_my_snprintf NEED_my_snprintf_GLOBAL
@@ -2109,9 +2158,9 @@ my %API = map { /^(\w+)\|([^|]*)\|([^|]*)\|(\w*)$/
ASCII_TO_NEED||5.007001|n
AvFILLp|5.004050||p
AvFILL|||
-BhkDISABLE||5.021008|
-BhkENABLE||5.021008|
-BhkENTRY_set||5.021008|
+BhkDISABLE||5.024000|
+BhkENABLE||5.024000|
+BhkENTRY_set||5.024000|
BhkENTRY|||
BhkFLAGS|||
CALL_BLOCK_HOOKS|||
@@ -2119,6 +2168,8 @@ CLASS|||n
CPERLscope|5.005000||p
CX_CURPAD_SAVE|||
CX_CURPAD_SV|||
+C_ARRAY_END|5.013002||p
+C_ARRAY_LENGTH|5.008001||p
CopFILEAV|5.006000||p
CopFILEGV_set|5.006000||p
CopFILEGV|5.006000||p
@@ -2135,8 +2186,10 @@ Copy|||
CvPADLIST||5.008001|
CvSTASH|||
CvWEAKOUTSIDE|||
+DECLARATION_FOR_LC_NUMERIC_MANIPULATION||5.021010|n
DEFSV_set|5.010001||p
DEFSV|5.004050||p
+DO_UTF8||5.006000|
END_EXTERN_C|5.005000||p
ENTER|||
ERRSV|5.004050||p
@@ -2158,7 +2211,6 @@ GetVars|||
GvAV|||
GvCV|||
GvHV|||
-GvSVn|5.009003||p
GvSV|||
Gv_AMupdate||5.011000|
HEf_SVKEY|5.003070||p
@@ -2197,7 +2249,7 @@ LEAVE|||
LINKLIST||5.013006|
LVRET|||
MARK|||
-MULTICALL||5.021008|
+MULTICALL||5.024000|
MUTABLE_PTR|5.010001||p
MUTABLE_SV|5.010001||p
MY_CXT_CLONE|5.009002||p
@@ -2226,9 +2278,11 @@ OP_NAME||5.007003|
OP_TYPE_IS_OR_WAS||5.019010|
OP_TYPE_IS||5.019007|
ORIGMARK|||
-OpHAS_SIBLING||5.021007|
-OpSIBLING_set||5.021007|
-OpSIBLING||5.021007|
+OpHAS_SIBLING|5.021007||p
+OpLASTSIB_set|5.021011||p
+OpMAYBESIB_set|5.021011||p
+OpMORESIB_set|5.021011||p
+OpSIBLING|5.021007||p
PAD_BASE_SV|||
PAD_CLONE_VARS|||
PAD_COMPNAME_FLAGS|||
@@ -2248,7 +2302,7 @@ PAD_SV|||
PERLIO_FUNCS_CAST|5.009003||p
PERLIO_FUNCS_DECL|5.009003||p
PERL_ABS|5.008001||p
-PERL_BCDVERSION|5.021008||p
+PERL_BCDVERSION|5.024000||p
PERL_GCC_BRACE_GROUPS_FORBIDDEN|5.008001||p
PERL_HASH|5.003070||p
PERL_INT_MAX|5.003070||p
@@ -2266,14 +2320,14 @@ PERL_MAGIC_envelem|5.007002||p
PERL_MAGIC_env|5.007002||p
PERL_MAGIC_ext|5.007002||p
PERL_MAGIC_fm|5.007002||p
-PERL_MAGIC_glob|5.021008||p
+PERL_MAGIC_glob|5.024000||p
PERL_MAGIC_isaelem|5.007002||p
PERL_MAGIC_isa|5.007002||p
-PERL_MAGIC_mutex|5.021008||p
+PERL_MAGIC_mutex|5.024000||p
PERL_MAGIC_nkeys|5.007002||p
-PERL_MAGIC_overload_elem|5.021008||p
+PERL_MAGIC_overload_elem|5.024000||p
PERL_MAGIC_overload_table|5.007002||p
-PERL_MAGIC_overload|5.021008||p
+PERL_MAGIC_overload|5.024000||p
PERL_MAGIC_pos|5.007002||p
PERL_MAGIC_qr|5.007002||p
PERL_MAGIC_regdata|5.007002||p
@@ -2321,7 +2375,7 @@ PERL_SIGNALS_UNSAFE_FLAG|5.008001||p
PERL_SUBVERSION|5.006000||p
PERL_SYS_INIT3||5.006000|
PERL_SYS_INIT|||
-PERL_SYS_TERM||5.021008|
+PERL_SYS_TERM||5.024000|
PERL_UCHAR_MAX|5.003070||p
PERL_UCHAR_MIN|5.003070||p
PERL_UINT_MAX|5.003070||p
@@ -2331,6 +2385,7 @@ PERL_ULONG_MIN|5.003070||p
PERL_UNUSED_ARG|5.009003||p
PERL_UNUSED_CONTEXT|5.009004||p
PERL_UNUSED_DECL|5.007002||p
+PERL_UNUSED_RESULT|5.021001||p
PERL_UNUSED_VAR|5.007002||p
PERL_UQUAD_MAX|5.003070||p
PERL_UQUAD_MIN|5.003070||p
@@ -2343,13 +2398,13 @@ PL_DBsingle|||pn
PL_DBsub|||pn
PL_DBtrace|||pn
PL_Sv|5.005000||p
-PL_bufend|5.021008||p
-PL_bufptr|5.021008||p
+PL_bufend|5.024000||p
+PL_bufptr|5.024000||p
PL_check||5.006000|
PL_compiling|5.004050||p
PL_comppad_name||5.017004|
PL_comppad||5.008001|
-PL_copline|5.021008||p
+PL_copline|5.024000||p
PL_curcop|5.004050||p
PL_curpad||5.005000|
PL_curstash|5.004050||p
@@ -2359,18 +2414,18 @@ PL_diehook|5.004050||p
PL_dirty|5.004050||p
PL_dowarn|||pn
PL_errgv|5.004050||p
-PL_error_count|5.021008||p
-PL_expect|5.021008||p
+PL_error_count|5.024000||p
+PL_expect|5.024000||p
PL_hexdigit|5.005000||p
PL_hints|5.005000||p
-PL_in_my_stash|5.021008||p
-PL_in_my|5.021008||p
+PL_in_my_stash|5.024000||p
+PL_in_my|5.024000||p
PL_keyword_plugin||5.011002|
PL_last_in_gv|||n
PL_laststatval|5.005000||p
-PL_lex_state|5.021008||p
-PL_lex_stuff|5.021008||p
-PL_linestr|5.021008||p
+PL_lex_state|5.024000||p
+PL_lex_stuff|5.024000||p
+PL_linestr|5.024000||p
PL_modglobal||5.005000|n
PL_na|5.004050||pn
PL_no_modify|5.006000||p
@@ -2382,8 +2437,8 @@ PL_perl_destruct_level|5.004050||p
PL_perldb|5.004050||p
PL_ppaddr|5.006000||p
PL_rpeepp||5.013005|n
-PL_rsfp_filters|5.021008||p
-PL_rsfp|5.021008||p
+PL_rsfp_filters|5.024000||p
+PL_rsfp|5.024000||p
PL_rs|||n
PL_signals|5.008001||p
PL_stack_base|5.004050||p
@@ -2396,8 +2451,8 @@ PL_sv_undef|5.004050||pn
PL_sv_yes|5.004050||pn
PL_tainted|5.004050||p
PL_tainting|5.004050||p
-PL_tokenbuf|5.021008||p
-POP_MULTICALL||5.021008|
+PL_tokenbuf|5.024000||p
+POP_MULTICALL||5.024000|
POPi|||n
POPl|||n
POPn|||n
@@ -2405,6 +2460,8 @@ POPpbytex||5.007001|n
POPpx||5.005030|n
POPp|||n
POPs|||n
+POPul||5.006000|n
+POPu||5.004000|n
PTR2IV|5.006000||p
PTR2NV|5.006000||p
PTR2UV|5.006000||p
@@ -2412,7 +2469,7 @@ PTR2nat|5.009003||p
PTR2ul|5.007001||p
PTRV|5.006000||p
PUSHMARK|||
-PUSH_MULTICALL||5.021008|
+PUSH_MULTICALL||5.024000|
PUSHi|||
PUSHmortal|5.009002||p
PUSHn|||
@@ -2420,29 +2477,29 @@ PUSHp|||
PUSHs|||
PUSHu|5.004000||p
PUTBACK|||
-PadARRAY||5.021008|
-PadMAX||5.021008|
-PadlistARRAY||5.021008|
-PadlistMAX||5.021008|
-PadlistNAMESARRAY||5.021008|
-PadlistNAMESMAX||5.021008|
-PadlistNAMES||5.021008|
+PadARRAY||5.024000|
+PadMAX||5.024000|
+PadlistARRAY||5.024000|
+PadlistMAX||5.024000|
+PadlistNAMESARRAY||5.024000|
+PadlistNAMESMAX||5.024000|
+PadlistNAMES||5.024000|
PadlistREFCNT||5.017004|
PadnameIsOUR|||
PadnameIsSTATE|||
-PadnameLEN||5.021008|
+PadnameLEN||5.024000|
PadnameOURSTASH|||
PadnameOUTER|||
-PadnamePV||5.021008|
-PadnameREFCNT_dec||5.021008|
-PadnameREFCNT||5.021008|
-PadnameSV||5.021008|
+PadnamePV||5.024000|
+PadnameREFCNT_dec||5.024000|
+PadnameREFCNT||5.024000|
+PadnameSV||5.024000|
PadnameTYPE|||
PadnameUTF8||5.021007|
-PadnamelistARRAY||5.021008|
-PadnamelistMAX||5.021008|
-PadnamelistREFCNT_dec||5.021008|
-PadnamelistREFCNT||5.021008|
+PadnamelistARRAY||5.024000|
+PadnamelistMAX||5.024000|
+PadnamelistREFCNT_dec||5.024000|
+PadnamelistREFCNT||5.024000|
PerlIO_clearerr||5.007003|
PerlIO_close||5.007003|
PerlIO_context_layers||5.009004|
@@ -2474,6 +2531,7 @@ PoisonNew|5.009004||p
PoisonWith|5.009004||p
Poison|5.008000||p
READ_XDIGIT||5.017006|
+RESTORE_LC_NUMERIC||5.024000|
RETVAL|||n
Renewc|||
Renew|||
@@ -2488,6 +2546,8 @@ START_EXTERN_C|5.005000||p
START_MY_CXT|5.007003||p
STMT_END|||p
STMT_START|||p
+STORE_LC_NUMERIC_FORCE_TO_UNDERLYING||5.024000|
+STORE_LC_NUMERIC_SET_TO_NEEDED||5.024000|
STR_WITH_LEN|5.009003||p
ST|||
SV_CONST_RETURN|5.009003||p
@@ -2625,8 +2685,8 @@ SvROK_on|||
SvROK|||
SvRV_set|5.009003||p
SvRV|||
-SvRXOK||5.009005|
-SvRX||5.009005|
+SvRXOK|5.009005||p
+SvRX|5.009005||p
SvSETMAGIC|||
SvSHARED_HASH|5.009003||p
SvSHARE||5.007003|
@@ -2660,7 +2720,9 @@ SvVOK||5.008001|
SvVSTRING_mg|5.009004||p
THIS|||n
UNDERBAR|5.009002||p
+UTF8SKIP||5.006000|
UTF8_MAXBYTES|5.009002||p
+UVCHR_SKIP||5.022000|
UVSIZE|5.006000||p
UVTYPE|5.006000||p
UVXf|5.007001||p
@@ -2669,7 +2731,7 @@ UVuf|5.006000||p
UVxf|5.006000||p
WARN_ALL|5.006000||p
WARN_AMBIGUOUS|5.006000||p
-WARN_ASSERTIONS|5.021008||p
+WARN_ASSERTIONS|5.024000||p
WARN_BAREWORD|5.006000||p
WARN_CLOSED|5.006000||p
WARN_CLOSURE|5.006000||p
@@ -2742,18 +2804,18 @@ XST_mPV|||
XST_mUNDEF|||
XST_mUV|5.008001||p
XST_mYES|||
-XS_APIVERSION_BOOTCHECK||5.021008|
-XS_EXTERNAL||5.021008|
-XS_INTERNAL||5.021008|
-XS_VERSION_BOOTCHECK||5.021008|
+XS_APIVERSION_BOOTCHECK||5.024000|
+XS_EXTERNAL||5.024000|
+XS_INTERNAL||5.024000|
+XS_VERSION_BOOTCHECK||5.024000|
XS_VERSION|||
XSprePUSH|5.006000||p
XS|||
-XopDISABLE||5.021008|
-XopENABLE||5.021008|
-XopENTRYCUSTOM||5.021008|
-XopENTRY_set||5.021008|
-XopENTRY||5.021008|
+XopDISABLE||5.024000|
+XopENABLE||5.024000|
+XopENTRYCUSTOM||5.024000|
+XopENTRY_set||5.024000|
+XopENTRY||5.024000|
XopFLAGS||5.013007|
ZeroD|5.009002||p
Zero|||
@@ -2764,9 +2826,9 @@ _core_swash_init|||
_get_encoding|||
_get_regclass_nonbitmap_data|||
_get_swash_invlist|||
+_invlistEQ|||
_invlist_array_init|||n
_invlist_contains_cp|||n
-_invlist_contents|||
_invlist_dump|||
_invlist_intersection_maybe_complement_2nd|||
_invlist_intersection|||
@@ -2796,12 +2858,14 @@ _make_exactf_invlist|||
_new_invlist_C_array|||
_new_invlist|||
_pMY_CXT|5.007003||p
+_setlocale_debug_string|||n
_setup_canned_invlist|||
_swash_inversion_hash|||
_swash_to_invlist|||
_to_fold_latin1|||
_to_uni_fold_flags||5.014000|
_to_upper_title_latin1|||
+_to_utf8_case|||
_to_utf8_fold_flags||5.019009|
_to_utf8_lower_flags||5.019009|
_to_utf8_title_flags||5.019009|
@@ -2809,17 +2873,17 @@ _to_utf8_upper_flags||5.019009|
_warn_problematic_locale|||n
aMY_CXT_|5.007003||p
aMY_CXT|5.007003||p
-aTHXR_|5.021008||p
-aTHXR|5.021008||p
+aTHXR_|5.024000||p
+aTHXR|5.024000||p
aTHX_|5.006000||p
aTHX|5.006000||p
-aassign_common_vars|||
add_above_Latin1_folds|||
add_cp_to_invlist|||
add_data|||n
add_multi_match|||
add_utf16_textfilter|||
adjust_size_and_find_bucket|||n
+advance_one_LB|||
advance_one_SB|||
advance_one_WB|||
alloc_maybe_populate_EXACT|||
@@ -2867,6 +2931,7 @@ av_top_index||5.017009|
av_undef|||
av_unshift|||
ax|||n
+backup_one_LB|||
backup_one_SB|||
backup_one_WB|||
bad_type_gv|||
@@ -2883,6 +2948,7 @@ boot_core_mro|||
bytes_cmp_utf8||5.013007|
bytes_from_utf8||5.007001|
bytes_to_utf8||5.006001|
+cBOOL|5.013000||p
call_argv|5.006000||p
call_atexit||5.006000|
call_list||5.004000|
@@ -2911,6 +2977,7 @@ ck_warner||5.011001|v
ckwarn_common|||
ckwarn_d||5.009003|
ckwarn||5.009003|
+clear_defarray||5.023008|
clear_placeholders|||
clear_special_blocks|||
clone_params_del|||n
@@ -2938,14 +3005,13 @@ cophh_fetch_pvs||5.013007|
cophh_fetch_pv||5.013007|
cophh_fetch_sv||5.013007|
cophh_free||5.013007|
-cophh_new_empty||5.021008|
+cophh_new_empty||5.024000|
cophh_store_pvn||5.013007|
cophh_store_pvs||5.013007|
cophh_store_pv||5.013007|
cophh_store_sv||5.013007|
core_prototype|||
coresub_op|||
-could_it_be_a_POSIX_class|||n
cr_textfilter|||
create_eval_scope|||
croak_memory_wrap||5.019003|n
@@ -2982,6 +3048,24 @@ cvgv_set|||
cvstash_set|||
cx_dump||5.005000|
cx_dup|||
+cx_popblock||5.023008|
+cx_popeval||5.023008|
+cx_popformat||5.023008|
+cx_popgiven||5.023008|
+cx_poploop||5.023008|
+cx_popsub_args||5.023008|
+cx_popsub_common||5.023008|
+cx_popsub||5.023008|
+cx_popwhen||5.023008|
+cx_pushblock||5.023008|
+cx_pusheval||5.023008|
+cx_pushformat||5.023008|
+cx_pushgiven||5.023008|
+cx_pushloop_for||5.023008|
+cx_pushloop_plain||5.023008|
+cx_pushsub||5.023008|
+cx_pushwhen||5.023008|
+cx_topblock||5.023008|
cxinc|||
dAXMARK|5.009003||p
dAX|5.007002||p
@@ -2994,7 +3078,7 @@ dNOOP|5.006000||p
dORIGMARK|||
dSP|||
dTHR|5.004050||p
-dTHXR|5.021008||p
+dTHXR|5.024000||p
dTHXa|5.006000||p
dTHXoa|5.006000||p
dTHX|5.006000||p
@@ -3082,7 +3166,7 @@ do_vecget|||
do_vecset|||
do_vop|||
docatch|||
-doeval|||
+doeval_compile|||
dofile|||
dofindlabel|||
doform|||
@@ -3091,7 +3175,7 @@ dooneliner|||
doopen_pm|||
doparseform|||
dopoptoeval|||
-dopoptogiven|||
+dopoptogivenfor|||
dopoptolabel|||
dopoptoloop|||
dopoptosub_at|||
@@ -3101,6 +3185,10 @@ dounwind|||
dowantarray|||
drand48_init_r|||n
drand48_r|||n
+dtrace_probe_call|||
+dtrace_probe_load|||
+dtrace_probe_op|||
+dtrace_probe_phase|||
dump_all_perl|||
dump_all||5.006000|
dump_c_backtrace|||
@@ -3120,6 +3208,7 @@ dump_trie|||
dump_vindent||5.006000|
dumpuntil|||
dup_attrlist|||
+edit_distance|||n
emulate_cop_io|||
eval_pv|5.006000||p
eval_sv|5.006000||p
@@ -3144,7 +3233,6 @@ find_in_my_stash|||
find_lexical_cv|||
find_runcv_where|||
find_runcv||5.008001|
-find_rundefsv2|||
find_rundefsvoffset||5.009002|
find_rundefsv||5.013002|
find_script|||
@@ -3183,7 +3271,7 @@ get_av|5.006000||p
get_c_backtrace_dump|||
get_c_backtrace|||
get_context||5.006000|n
-get_cvn_flags|5.009005||p
+get_cvn_flags|||
get_cvs|5.011000||p
get_cv|5.006000||p
get_db_sub|||
@@ -3257,12 +3345,12 @@ gv_fetchmeth|||
gv_fetchpvn_flags|5.009002||p
gv_fetchpvs|5.009004||p
gv_fetchpv|||
-gv_fetchsv|5.009002||p
+gv_fetchsv|||
gv_fullname3||5.003070|
gv_fullname4||5.006001|
gv_fullname|||
gv_handler||5.007001|
-gv_init_pvn||5.015004|
+gv_init_pvn|||
gv_init_pv||5.015004|
gv_init_svtype|||
gv_init_sv||5.015004|
@@ -3280,6 +3368,8 @@ gv_stashpv|||
gv_stashsvpvn_cached|||
gv_stashsv|||
gv_try_downgrade|||
+handle_named_backref|||
+handle_possible_posix|||
handle_regex_sets|||
he_dup|||
hek_dup|||
@@ -3367,7 +3457,9 @@ intuit_method|||
intuit_more|||
invert|||
invlist_array|||n
+invlist_clear|||
invlist_clone|||
+invlist_contents|||
invlist_extend|||
invlist_highest|||n
invlist_is_iterating|||n
@@ -3376,6 +3468,7 @@ invlist_iterinit|||n
invlist_iternext|||n
invlist_max|||n
invlist_previous_index|||n
+invlist_replace_list_destroys_src|||
invlist_set_len|||
invlist_set_previous_index|||n
invlist_trim|||n
@@ -3393,10 +3486,10 @@ isFOO_lc|||
isFOO_utf8_lc|||
isGCB|||n
isGRAPH|5.006000||p
-isGV_with_GP|5.009004||p
isIDCONT||5.017008|
isIDFIRST_lazy||5.021001|
isIDFIRST|||
+isLB|||
isLOWER|||
isOCTAL||5.013005|
isPRINT|5.004000||p
@@ -3483,7 +3576,7 @@ jmaybe|||
join_exact|||
keyword_plugin_standard|||
keyword|||
-leave_common|||
+leave_adjust_stacks||5.023008|
leave_scope|||
lex_bufutf8||5.011002|
lex_discard_to||5.011002|
@@ -3590,7 +3683,10 @@ memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
mem_collxfrm|||
+mem_log_alloc|||n
mem_log_common|||n
+mem_log_free|||n
+mem_log_realloc|||n
mess_alloc|||
mess_nocontext|||vn
mess_sv||5.013001|
@@ -3639,7 +3735,7 @@ multideref_stringify|||
my_atof2||5.007002|
my_atof||5.006000|
my_attrs|||
-my_bcopy|||n
+my_bcopy||5.004050|n
my_bytes_to_utf8|||n
my_bzero|||n
my_chsize|||
@@ -3654,7 +3750,7 @@ my_fflush_all||5.006000|
my_fork||5.007003|n
my_kid|||
my_lstat_flags|||
-my_lstat||5.021008|
+my_lstat||5.024000|
my_memcmp|||n
my_memset|||n
my_pclose||5.003070|
@@ -3666,7 +3762,7 @@ my_snprintf|5.009004||pvn
my_socketpair||5.007003|n
my_sprintf|5.009003||pvn
my_stat_flags|||
-my_stat||5.021008|
+my_stat||5.024000|
my_strerror||5.021001|
my_strftime||5.007002|
my_strlcat|5.009004||pn
@@ -3795,7 +3891,7 @@ op_linklist||5.013006|
op_lvalue_flags|||
op_lvalue||5.013007|
op_null||5.007002|
-op_parent||5.021002|n
+op_parent|||n
op_prepend_elem||5.013006|
op_refcnt_dec|||
op_refcnt_inc|||
@@ -3813,6 +3909,7 @@ opmethod_stash|||
opslab_force_free|||
opslab_free_nopad|||
opslab_free|||
+output_or_return_posix_warnings|||
pMY_CXT_|5.007003||p
pMY_CXT|5.007003||p
pTHX_|5.006000||p
@@ -3912,6 +4009,8 @@ ptr_table_new||5.009005|
ptr_table_split||5.009005|
ptr_table_store||5.009005|
push_scope|||
+put_charclass_bitmap_innards_common|||
+put_charclass_bitmap_innards_invlist|||
put_charclass_bitmap_innards|||
put_code_point|||
put_range|||
@@ -3926,14 +4025,17 @@ quadmath_format_single|||n
re_compile||5.009005|
re_croak2|||
re_dup_guts|||
+re_exec_indentf|||v
+re_indentf|||v
re_intuit_start||5.019001|
re_intuit_string||5.006000|
re_op_compile|||
+re_printf|||v
realloc||5.007002|n
-reentrant_free||5.021008|
-reentrant_init||5.021008|
-reentrant_retry||5.021008|vn
-reentrant_size||5.021008|
+reentrant_free||5.024000|
+reentrant_init||5.024000|
+reentrant_retry||5.024000|vn
+reentrant_size||5.024000|
ref_array_or_hash|||
refcounted_he_chain_2hv|||
refcounted_he_fetch_pvn|||
@@ -3949,7 +4051,7 @@ refcounted_he_new_sv|||
refcounted_he_value|||
refkids|||
refto|||
-ref||5.021008|
+ref||5.024000|
reg2Lanode|||
reg_check_named_buff_matched|||n
reg_named_buff_all||5.009005|
@@ -3981,6 +4083,7 @@ regdump_extflags|||
regdump_intflags|||
regdump||5.005000|
regdupe_internal|||
+regex_set_precedence|||n
regexec_flags||5.005000|
regfree_internal||5.009005|
reghop3|||n
@@ -3992,9 +4095,7 @@ reginsert|||
regmatch|||
regnext||5.005000|
regnode_guts|||
-regpatws|||n
regpiece|||
-regpposixcc|||
regprop|||
regrepeat|||
regtail_study|||
@@ -4035,7 +4136,6 @@ save_I8||5.006000|
save_adelete||5.011000|
save_aelem_flags||5.011000|
save_aelem||5.004050|
-save_aliased_sv|||
save_alloc||5.006000|
save_aptr|||
save_ary|||
@@ -4092,6 +4192,7 @@ savesharedsvpv||5.013006|
savestack_grow_cnt||5.008001|
savestack_grow|||
savesvpv||5.009002|
+savetmps||5.023008|
sawparens|||
scalar_mod_type|||n
scalarboolean|||
@@ -4133,6 +4234,7 @@ should_warn_nl|||n
si_dup|||
sighandler|||n
simplify_sort|||
+skip_to_be_ignored_text|||
skipspace_flags|||
softref2xv|||
sortcv_stacked|||
@@ -4274,7 +4376,7 @@ sv_kill_backrefs|||
sv_len_utf8_nomg|||
sv_len_utf8||5.006000|
sv_len|||
-sv_magic_portable|5.021008|5.004000|p
+sv_magic_portable|5.024000|5.004000|p
sv_magicext_mglob|||
sv_magicext||5.007003|
sv_magic|||
@@ -4311,8 +4413,7 @@ sv_pvutf8||5.006000|
sv_pv||5.006000|
sv_recode_to_utf8||5.007003|
sv_reftype|||
-sv_ref|||
-sv_release_COW|||
+sv_ref||5.015004|
sv_replace|||
sv_report_used|||
sv_resetpvn|||
@@ -4338,7 +4439,7 @@ sv_setpv|||
sv_setref_iv|||
sv_setref_nv|||
sv_setref_pvn|||
-sv_setref_pvs||5.021008|
+sv_setref_pvs||5.024000|
sv_setref_pv|||
sv_setref_uv||5.007001|
sv_setsv_cow|||
@@ -4394,19 +4495,19 @@ taint_env|||
taint_proper|||
tied_method|||v
tmps_grow_p|||
-toFOLD_uni||5.007003|
toFOLD_utf8||5.019001|
+toFOLD_uvchr||5.023009|
toFOLD||5.019001|
toLOWER_L1||5.019001|
toLOWER_LC||5.004000|
-toLOWER_uni||5.007003|
toLOWER_utf8||5.015007|
+toLOWER_uvchr||5.023009|
toLOWER|||
-toTITLE_uni||5.007003|
toTITLE_utf8||5.015007|
+toTITLE_uvchr||5.023009|
toTITLE||5.019001|
-toUPPER_uni||5.007003|
toUPPER_utf8||5.015007|
+toUPPER_uvchr||5.023009|
toUPPER|||
to_byte_substr|||
to_lower_latin1|||n
@@ -5805,6 +5906,67 @@ __DATA__
#ifndef Newxz
# define Newxz(v,n,t) Newz(0,v,n,t)
#endif
+#ifndef PERL_MAGIC_qr
+# define PERL_MAGIC_qr 'r'
+#endif
+#ifndef cBOOL
+# define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0)
+#endif
+
+#ifndef OpHAS_SIBLING
+# define OpHAS_SIBLING(o) (cBOOL((o)->op_sibling))
+#endif
+
+#ifndef OpSIBLING
+# define OpSIBLING(o) (0 + (o)->op_sibling)
+#endif
+
+#ifndef OpMORESIB_set
+# define OpMORESIB_set(o, sib) ((o)->op_sibling = (sib))
+#endif
+
+#ifndef OpLASTSIB_set
+# define OpLASTSIB_set(o, parent) ((o)->op_sibling = NULL)
+#endif
+
+#ifndef OpMAYBESIB_set
+# define OpMAYBESIB_set(o, sib, parent) ((o)->op_sibling = (sib))
+#endif
+
+#ifndef SvRX
+#if defined(NEED_SvRX)
+static void * DPPP_(my_SvRX)(pTHX_ SV *rv);
+static
+#else
+extern void * DPPP_(my_SvRX)(pTHX_ SV *rv);
+#endif
+
+#ifdef SvRX
+# undef SvRX
+#endif
+#define SvRX(a) DPPP_(my_SvRX)(aTHX_ a)
+
+#if defined(NEED_SvRX) || defined(NEED_SvRX_GLOBAL)
+
+void *
+DPPP_(my_SvRX)(pTHX_ SV *rv)
+{
+ if (SvROK(rv)) {
+ SV *sv = SvRV(rv);
+ if (SvMAGICAL(sv)) {
+ MAGIC *mg = mg_find(sv, PERL_MAGIC_qr);
+ if (mg && mg->mg_obj) {
+ return mg->mg_obj;
+ }
+ }
+ }
+ return 0;
+}
+#endif
+#endif
+#ifndef SvRXOK
+# define SvRXOK(sv) (!!SvRX(sv))
+#endif
#ifndef PERL_UNUSED_DECL
# ifdef HASATTRIBUTE
@@ -5838,6 +6000,14 @@ __DATA__
# define PERL_UNUSED_CONTEXT
# endif
#endif
+
+#ifndef PERL_UNUSED_RESULT
+# if defined(__GNUC__) && defined(HASATTRIBUTE_WARN_UNUSED_RESULT)
+# define PERL_UNUSED_RESULT(v) STMT_START { __typeof__(v) z = (v); (void)sizeof(z); } STMT_END
+# else
+# define PERL_UNUSED_RESULT(v) ((void)(v))
+# endif
+#endif
#ifndef NOOP
# define NOOP /*EMPTY*/(void)0
#endif
@@ -6172,6 +6342,13 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*);
#endif
#endif
+#ifndef C_ARRAY_LENGTH
+# define C_ARRAY_LENGTH(a) (sizeof(a)/sizeof((a)[0]))
+#endif
+
+#ifndef C_ARRAY_END
+# define C_ARRAY_END(a) ((a) + C_ARRAY_LENGTH(a))
+#endif
#ifndef PERL_SIGNALS_UNSAFE_FLAG
@@ -6292,7 +6469,7 @@ extern yy_parser DPPP_(dummy_PL_parser);
/* PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf depends on PL_parser */
/* Warning: PL_expect, PL_copline, PL_rsfp, PL_rsfp_filters, PL_linestr, PL_bufptr, PL_bufend, PL_lex_state, PL_lex_stuff, PL_tokenbuf
* Do not use this variable unless you know exactly what you're
- * doint. It is internal to the perl parser and may change or even
+ * doing. It is internal to the perl parser and may change or even
* be removed in the future. As of perl 5.9.5, you have to check
* for (PL_parser != NULL) for this variable to have any effect.
* An always non-NULL PL_parser dummy is provided for earlier
@@ -7494,6 +7671,33 @@ DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash)
#ifndef HvNAMELEN_get
# define HvNAMELEN_get(hv) (HvNAME_get(hv) ? (I32)strlen(HvNAME_get(hv)) : 0)
#endif
+
+#ifndef gv_fetchpvn_flags
+#if defined(NEED_gv_fetchpvn_flags)
+static GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types);
+static
+#else
+extern GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types);
+#endif
+
+#ifdef gv_fetchpvn_flags
+# undef gv_fetchpvn_flags
+#endif
+#define gv_fetchpvn_flags(a,b,c,d) DPPP_(my_gv_fetchpvn_flags)(aTHX_ a,b,c,d)
+#define Perl_gv_fetchpvn_flags DPPP_(my_gv_fetchpvn_flags)
+
+#if defined(NEED_gv_fetchpvn_flags) || defined(NEED_gv_fetchpvn_flags_GLOBAL)
+
+GV*
+DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types) {
+ char *namepv = savepvn(name, len);
+ GV* stash = gv_fetchpv(namepv, TRUE, SVt_PVHV);
+ Safefree(namepv);
+ return stash;
+}
+
+#endif
+#endif
#ifndef GvSVn
# define GvSVn(gv) GvSV(gv)
#endif
@@ -7502,16 +7706,16 @@ DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash)
# define isGV_with_GP(gv) isGV(gv)
#endif
-#ifndef gv_fetchpvn_flags
-# define gv_fetchpvn_flags(name, len, flags, svt) gv_fetchpv(name, flags, svt)
-#endif
-
#ifndef gv_fetchsv
# define gv_fetchsv(name, flags, svt) gv_fetchpv(SvPV_nolen_const(name), flags, svt)
#endif
#ifndef get_cvn_flags
# define get_cvn_flags(name, namelen, flags) get_cv(name, flags)
#endif
+
+#ifndef gv_init_pvn
+# define gv_init_pvn(gv, stash, ptr, len, flags) gv_init(gv, stash, ptr, len, flags & GV_ADDMULTI ? TRUE : FALSE)
+#endif
#ifndef WARN_ALL
# define WARN_ALL 0
#endif
@@ -7799,13 +8003,16 @@ DPPP_(my_warner)(U32 err, const char *pat, ...)
# define HEf_SVKEY -2
#endif
+#ifndef MUTABLE_PTR
#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN)
# define MUTABLE_PTR(p) ({ void *_p = (p); _p; })
#else
# define MUTABLE_PTR(p) ((void *) (p))
#endif
-
-#define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p))
+#endif
+#ifndef MUTABLE_SV
+# define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p))
+#endif
/* end of random bits */
#ifndef PERL_MAGIC_sv
diff --git a/Master/tlpkg/tlperl/lib/Devel/Peek.pm b/Master/tlpkg/tlperl/lib/Devel/Peek.pm
index c0483ca1449..4ce8b4531b9 100644
--- a/Master/tlpkg/tlperl/lib/Devel/Peek.pm
+++ b/Master/tlpkg/tlperl/lib/Devel/Peek.pm
@@ -3,7 +3,7 @@
package Devel::Peek;
-$VERSION = '1.23';
+$VERSION = '1.26';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -133,7 +133,9 @@ means no limit.
If C<use Devel::Peek> directive has a C<:opd=FLAGS> argument,
this switches on debugging of opcode dispatch. C<FLAGS> should be a
-combination of C<s>, C<t>, and C<P> (see B<-D> flags in L<perlrun>).
+combination of C<s>, C<t>, and C<P> (see
+L<< B<-D> flags in perlrun|perlrun/B<-D>I<letters> >>).
+
C<:opd> is a shortcut for C<:opd=st>.
=head2 Runtime debugging
@@ -352,7 +354,6 @@ The output:
ARRAY = 0xc7e820
FILL = 0
MAX = 0
- ARYLEN = 0x0
FLAGS = (REAL)
Elt No. 0
SV = IV(0xc70f88) at 0xc70f98
@@ -384,7 +385,6 @@ The output:
ARRAY = 0x1585820
FILL = 1
MAX = 1
- ARYLEN = 0x0
FLAGS = (REAL)
Elt No. 0
SV = IV(0x1577f88) at 0x1577f98
@@ -548,7 +548,7 @@ inside a 5th eval in the program;
=item *
-it is not currently executed (see C<DEPTH>);
+it is not currently executed (because C<DEPTH> is 0);
=item *
diff --git a/Master/tlpkg/tlperl/lib/Devel/SelfStubber.pm b/Master/tlpkg/tlperl/lib/Devel/SelfStubber.pm
index e47cd3a3326..781dd9f3e97 100644
--- a/Master/tlpkg/tlperl/lib/Devel/SelfStubber.pm
+++ b/Master/tlpkg/tlperl/lib/Devel/SelfStubber.pm
@@ -4,7 +4,7 @@ require SelfLoader;
@ISA = qw(SelfLoader);
@EXPORT = 'AUTOLOAD';
$JUST_STUBS = 1;
-$VERSION = 1.05;
+$VERSION = 1.06;
sub Version {$VERSION}
# Use as
@@ -39,7 +39,7 @@ sub stub {
my (@BEFORE_DATA, @AFTER_DATA, @AFTER_END);
@DATA = @STUBS = ();
- open($fh,$mod_file) || die "Unable to open $mod_file";
+ open($fh,'<',$mod_file) || die "Unable to open $mod_file";
local $/ = "\n";
while(defined ($line = <$fh>) and $line !~ m/^__DATA__/) {
push(@BEFORE_DATA,$line);
diff --git a/Master/tlpkg/tlperl/lib/Digest/MD5.pm b/Master/tlpkg/tlperl/lib/Digest/MD5.pm
index bb92ddb44a9..bc0fec720a1 100644
--- a/Master/tlpkg/tlperl/lib/Digest/MD5.pm
+++ b/Master/tlpkg/tlperl/lib/Digest/MD5.pm
@@ -3,7 +3,7 @@ package Digest::MD5;
use strict;
use vars qw($VERSION @ISA @EXPORT_OK);
-$VERSION = '2.54';
+$VERSION = '2.55';
require Exporter;
*import = \&Exporter::import;
diff --git a/Master/tlpkg/tlperl/lib/Digest/SHA.pm b/Master/tlpkg/tlperl/lib/Digest/SHA.pm
index e696decea45..e2c58f66e19 100644
--- a/Master/tlpkg/tlperl/lib/Digest/SHA.pm
+++ b/Master/tlpkg/tlperl/lib/Digest/SHA.pm
@@ -4,11 +4,11 @@ require 5.003000;
use strict;
use warnings;
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-use Fcntl;
+use vars qw($VERSION @ISA @EXPORT_OK);
+use Fcntl qw(O_RDONLY);
use integer;
-$VERSION = '5.95_01';
+$VERSION = '5.96';
require Exporter;
require DynaLoader;
@@ -813,7 +813,7 @@ darkness and moored it in so perfect a calm and in so brilliant a light"
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2003-2015 Mark Shelor
+Copyright (C) 2003-2016 Mark Shelor
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/DynaLoader.pm b/Master/tlpkg/tlperl/lib/DynaLoader.pm
index 87df3b55f50..dcffeb2fc91 100644
--- a/Master/tlpkg/tlperl/lib/DynaLoader.pm
+++ b/Master/tlpkg/tlperl/lib/DynaLoader.pm
@@ -16,7 +16,7 @@ package DynaLoader;
# Tim.Bunce@ig.co.uk, August 1994
BEGIN {
- $VERSION = '1.38';
+ $VERSION = '1.42';
}
use Config;
@@ -173,7 +173,7 @@ sub bootstrap {
$bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library
if (-s $bs) { # only read file if it's not empty
print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug;
- eval { do $bs; };
+ eval { local @INC = ('.'); do $bs; };
warn "$bs: $@\n" if $@;
}
diff --git a/Master/tlpkg/tlperl/lib/Encode.pm b/Master/tlpkg/tlperl/lib/Encode.pm
index dce6c5415e9..57b4292279c 100644
--- a/Master/tlpkg/tlperl/lib/Encode.pm
+++ b/Master/tlpkg/tlperl/lib/Encode.pm
@@ -1,10 +1,10 @@
#
-# $Id: Encode.pm,v 2.80 2016/01/25 14:54:01 dankogai Exp $
+# $Id: Encode.pm,v 2.88 2016/11/29 23:30:30 dankogai Exp dankogai $
#
package Encode;
use strict;
use warnings;
-our $VERSION = sprintf "%d.%02d_01", q$Revision: 2.80 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.88 $ =~ /(\d+)/g;
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
use XSLoader ();
XSLoader::load( __PACKAGE__, $VERSION );
@@ -15,7 +15,7 @@ use Exporter 5.57 'import';
our @EXPORT = qw(
decode decode_utf8 encode encode_utf8 str2bytes bytes2str
- encodings find_encoding clone_encoding
+ encodings find_encoding find_mime_encoding clone_encoding
);
our @FB_FLAGS = qw(
DIE_ON_ERR WARN_ON_ERR RETURN_ON_ERR LEAVE_SRC
@@ -102,6 +102,8 @@ sub define_encoding {
sub getEncoding {
my ( $class, $name, $skip_external ) = @_;
+ defined($name) or return;
+
$name =~ s/\s+//g; # https://rt.cpan.org/Ticket/Display.html?id=65796
ref($name) && $name->can('renew') and return $name;
@@ -130,6 +132,14 @@ sub find_encoding($;$) {
return __PACKAGE__->getEncoding( $name, $skip_external );
}
+sub find_mime_encoding($;$) {
+ my ( $mime_name, $skip_external ) = @_;
+ eval { require Encode::MIME::Name; };
+ $@ and return;
+ my $name = Encode::MIME::Name::get_encode_name( $mime_name );
+ return find_encoding( $name, $skip_external );
+}
+
sub resolve_alias($) {
my $obj = find_encoding(shift);
defined $obj and return $obj->name;
@@ -220,14 +230,41 @@ sub from_to($$$;$) {
require Carp;
Carp::croak("Unknown encoding '$to'");
}
- my $uni = $f->decode($string);
- $_[0] = $string = $t->encode( $uni, $check );
+
+ # For Unicode, warnings need to be caught and re-issued at this level
+ # so that callers can disable utf8 warnings lexically.
+ my $uni;
+ if ( ref($f) eq 'Encode::Unicode' ) {
+ my $warn = '';
+ {
+ local $SIG{__WARN__} = sub { $warn = shift };
+ $uni = $f->decode($string);
+ }
+ warnings::warnif('utf8', $warn) if length $warn;
+ }
+ else {
+ $uni = $f->decode($string);
+ }
+
+ if ( ref($t) eq 'Encode::Unicode' ) {
+ my $warn = '';
+ {
+ local $SIG{__WARN__} = sub { $warn = shift };
+ $_[0] = $string = $t->encode( $uni, $check );
+ }
+ warnings::warnif('utf8', $warn) if length $warn;
+ }
+ else {
+ $_[0] = $string = $t->encode( $uni, $check );
+ }
+
return undef if ( $check && length($uni) );
return defined( $_[0] ) ? length($string) : undef;
}
sub encode_utf8($) {
my ($str) = @_;
+ return undef unless defined $str;
utf8::encode($str);
return $str;
}
@@ -470,6 +507,10 @@ I<ENCODING> and returns a sequence of octets. I<ENCODING> can be either a
canonical name or an alias. For encoding names and aliases, see
L</"Defining Aliases">. For CHECK, see L</"Handling Malformed Data">.
+B<CAVEAT>: the input scalar I<STRING> might be modified in-place depending
+on what is set in CHECK. See L</LEAVE_SRC> if you want your inputs to be
+left unchanged.
+
For example, to convert a string from Perl's internal format into
ISO-8859-1, also known as Latin1:
@@ -494,6 +535,10 @@ 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">.
+B<CAVEAT>: the input scalar I<OCTETS> might be modified in-place depending
+on what is set in CHECK. See L</LEAVE_SRC> if you want your inputs to be
+left unchanged.
+
For example, to convert ISO-8859-1 data into a string in Perl's
internal format:
@@ -542,6 +587,20 @@ name of the encoding object.
See L<Encode::Encoding> for details.
+=head3 find_mime_encoding
+
+ [$obj =] find_mime_encoding(MIME_ENCODING)
+
+Returns the I<encoding object> corresponding to I<MIME_ENCODING>. Acts
+same as C<find_encoding()> but C<mime_name()> of returned object must
+match to I<MIME_ENCODING>. So as opposite of C<find_encoding()>
+canonical names and aliases are not used when searching for object.
+
+ find_mime_encoding("utf8"); # returns undef because "utf8" is not valid I<MIME_ENCODING>
+ find_mime_encoding("utf-8"); # returns encode object "utf-8-strict"
+ find_mime_encoding("UTF-8"); # same as "utf-8" because I<MIME_ENCODING> is case insensitive
+ find_mime_encoding("utf-8-strict"); returns undef because "utf-8-strict" is not valid I<MIME_ENCODING>
+
=head3 from_to
[$length =] from_to($octets, FROM_ENC, TO_ENC [, CHECK])
@@ -609,6 +668,10 @@ Because not all sequences of octets are valid UTF-8,
it is quite possible for this function to fail.
For CHECK, see L</"Handling Malformed Data">.
+B<CAVEAT>: the input I<$octets> might be modified in-place depending on
+what is set in CHECK. See L</LEAVE_SRC> if you want your inputs to be
+left unchanged.
+
=head2 Listing available encodings
use Encode;
diff --git a/Master/tlpkg/tlperl/lib/Encode/Alias.pm b/Master/tlpkg/tlperl/lib/Encode/Alias.pm
index 04ad4967c98..0a252560f5d 100644
--- a/Master/tlpkg/tlperl/lib/Encode/Alias.pm
+++ b/Master/tlpkg/tlperl/lib/Encode/Alias.pm
@@ -2,7 +2,7 @@ package Encode::Alias;
use strict;
use warnings;
no warnings 'redefine';
-our $VERSION = do { my @r = ( q$Revision: 2.20 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 2.21 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG};
use Exporter 'import';
@@ -79,8 +79,10 @@ sub find_alias {
sub define_alias {
while (@_) {
- my ( $alias, $name ) = splice( @_, 0, 2 );
- unshift( @Alias, $alias => $name ); # newer one has precedence
+ my $alias = shift;
+ my $name = shift;
+ unshift( @Alias, $alias => $name ) # newer one has precedence
+ if defined $alias;
if ( ref($alias) ) {
# clear %Alias cache to allow overrides
@@ -96,10 +98,14 @@ sub define_alias {
}
}
}
- else {
+ elsif (defined $alias) {
DEBUG and warn "delete \$Alias\{$alias\}";
delete $Alias{$alias};
}
+ elsif (DEBUG) {
+ require Carp;
+ Carp::croak("undef \$alias");
+ }
}
}
diff --git a/Master/tlpkg/tlperl/lib/Encode/CN/HZ.pm b/Master/tlpkg/tlperl/lib/Encode/CN/HZ.pm
index f035d821f57..4510b0b400e 100644
--- a/Master/tlpkg/tlperl/lib/Encode/CN/HZ.pm
+++ b/Master/tlpkg/tlperl/lib/Encode/CN/HZ.pm
@@ -5,7 +5,7 @@ use warnings;
use utf8 ();
use vars qw($VERSION);
-$VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+$VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use Encode qw(:fallbacks);
@@ -49,7 +49,8 @@ sub decode ($$;$) {
else { # GB mode; the byte ranges are as in RFC 1843.
no warnings 'uninitialized';
if ( $str =~ s/^((?:[\x21-\x77][\x21-\x7E])+)// ) {
- $ret .= $GB->decode( $1, $chk );
+ my $prefix = $1;
+ $ret .= $GB->decode( $prefix, $chk );
}
elsif ( $str =~ s/^\x7E\x7D// ) { # '~}'
$in_ascii = 1;
diff --git a/Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm b/Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm
index ba6adba4758..ad14dba3740 100644
--- a/Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm
+++ b/Master/tlpkg/tlperl/lib/Encode/MIME/Header.pm
@@ -1,22 +1,25 @@
package Encode::MIME::Header;
use strict;
use warnings;
-no warnings 'redefine';
-our $VERSION = do { my @r = ( q$Revision: 2.19 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
-use Encode qw(find_encoding encode_utf8 decode_utf8);
-use MIME::Base64;
-use Carp;
+our $VERSION = do { my @r = ( q$Revision: 2.24 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+
+use Carp ();
+use Encode ();
+use MIME::Base64 ();
my %seed = (
- decode_b => '1', # decodes 'B' encoding ?
- decode_q => '1', # decodes 'Q' encoding ?
- encode => 'B', # encode with 'B' or 'Q' ?
- bpl => 75, # bytes per line
+ decode_b => 1, # decodes 'B' encoding ?
+ decode_q => 1, # decodes 'Q' encoding ?
+ encode => 'B', # encode with 'B' or 'Q' ?
+ charset => 'UTF-8', # encode charset
+ bpl => 75, # bytes per line
);
-$Encode::Encoding{'MIME-Header'} =
- bless { %seed, Name => 'MIME-Header', } => __PACKAGE__;
+$Encode::Encoding{'MIME-Header'} = bless {
+ %seed,
+ Name => 'MIME-Header',
+} => __PACKAGE__;
$Encode::Encoding{'MIME-B'} = bless {
%seed,
@@ -26,7 +29,7 @@ $Encode::Encoding{'MIME-B'} = bless {
$Encode::Encoding{'MIME-Q'} = bless {
%seed,
- decode_q => 1,
+ decode_b => 0,
encode => 'Q',
Name => 'MIME-Q',
} => __PACKAGE__;
@@ -36,150 +39,265 @@ use parent qw(Encode::Encoding);
sub needs_lines { 1 }
sub perlio_ok { 0 }
+# RFC 2047 and RFC 2231 grammar
+my $re_charset = qr/[!"#\$%&'+\-0-9A-Z\\\^_`a-z\{\|\}~]+/;
+my $re_language = qr/[A-Za-z]{1,8}(?:-[0-9A-Za-z]{1,8})*/;
+my $re_encoding = qr/[QqBb]/;
+my $re_encoded_text = qr/[^\?]*/;
+my $re_encoded_word = qr/=\?$re_charset(?:\*$re_language)?\?$re_encoding\?$re_encoded_text\?=/;
+my $re_capture_encoded_word = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding\?$re_encoded_text)\?=/;
+my $re_capture_encoded_word_split = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding)\?($re_encoded_text)\?=/;
+
+# in strict mode check also for valid base64 characters and also for valid quoted printable codes
+my $re_encoding_strict_b = qr/[Bb]/;
+my $re_encoding_strict_q = qr/[Qq]/;
+my $re_encoded_text_strict_b = qr/[0-9A-Za-z\+\/]*={0,2}/;
+my $re_encoded_text_strict_q = qr/(?:[^\?\s=]|=[0-9A-Fa-f]{2})*/;
+my $re_encoded_word_strict = qr/=\?$re_charset(?:\*$re_language)?\?(?:$re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/;
+my $re_capture_encoded_word_strict = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/;
+
+my $re_newline = qr/(?:\r\n|[\r\n])/;
+
+# in strict mode encoded words must be always separated by spaces or tabs (or folded newline)
+# except in comments when separator between words and comment round brackets can be omitted
+my $re_word_begin_strict = qr/(?:(?:[ \t]|\A)\(?|(?:[^\\]|\A)\)\()/;
+my $re_word_sep_strict = qr/(?:$re_newline?[ \t])+/;
+my $re_word_end_strict = qr/(?:\)\(|\)?(?:$re_newline?[ \t]|\z))/;
+
+my $re_match = qr/()((?:$re_encoded_word\s*)*$re_encoded_word)()/;
+my $re_match_strict = qr/($re_word_begin_strict)((?:$re_encoded_word_strict$re_word_sep_strict)*$re_encoded_word_strict)(?=$re_word_end_strict)/;
+
+my $re_capture = qr/$re_capture_encoded_word(?:\s*)?/;
+my $re_capture_strict = qr/$re_capture_encoded_word_strict$re_word_sep_strict?/;
+
+our $STRICT_DECODE = 0;
+
sub decode($$;$) {
- use utf8;
- my ( $obj, $str, $chk ) = @_;
- # zap spaces between encoded words
- $str =~ s/\?=\s+=\?/\?==\?/gos;
-
- # multi-line header to single line
- $str =~ s/(?:\r\n|[\r\n])[ \t]//gos;
-
- 1 while ( $str =~
- s/(=\?[-0-9A-Za-z_]+\?[Qq]\?)([^?]*?)\?=\1([^?]*?\?=)/$1$2$3/ )
- ; # Concat consecutive QP encoded mime headers
- # Fixes breaking inside multi-byte characters
-
- $str =~ s{
- =\? # begin encoded word
- ([-0-9A-Za-z_]+) # charset (encoding)
- (?:\*[A-Za-z]{1,8}(?:-[A-Za-z]{1,8})*)? # language (RFC 2231)
- \?([QqBb])\? # delimiter
- (.*?) # Base64-encodede contents
- \?= # end encoded word
- }{
- if (uc($2) eq 'B'){
- $obj->{decode_b} or croak qq(MIME "B" unsupported);
- decode_b($1, $3, $chk);
- } elsif (uc($2) eq 'Q'){
- $obj->{decode_q} or croak qq(MIME "Q" unsupported);
- decode_q($1, $3, $chk);
- } else {
- croak qq(MIME "$2" encoding is nonexistent!);
+ my ($obj, $str, $chk) = @_;
+
+ my $re_match_decode = $STRICT_DECODE ? $re_match_strict : $re_match;
+ my $re_capture_decode = $STRICT_DECODE ? $re_capture_strict : $re_capture;
+
+ my $stop = 0;
+ my $output = substr($str, 0, 0); # to propagate taintedness
+
+ # decode each line separately, match whole continuous folded line at one call
+ 1 while not $stop and $str =~ s{^((?:[^\r\n]*(?:$re_newline[ \t])?)*)($re_newline)?}{
+
+ my $line = $1;
+ my $sep = defined $2 ? $2 : '';
+
+ $stop = 1 unless length($line) or length($sep);
+
+ # NOTE: this code partially could break $chk support
+ # in non strict mode concat consecutive encoded mime words with same charset, language and encoding
+ # fixes breaking inside multi-byte characters
+ 1 while not $STRICT_DECODE and $line =~ s/$re_capture_encoded_word_split\s*=\?\1\2\?\3\?($re_encoded_text)\?=/=\?$1$2\?$3\?$4$5\?=/so;
+
+ # process sequence of encoded MIME words at once
+ 1 while not $stop and $line =~ s{^(.*?)$re_match_decode}{
+
+ my $begin = $1 . $2;
+ my $words = $3;
+
+ $begin =~ tr/\r\n//d;
+ $output .= $begin;
+
+ # decode one MIME word
+ 1 while not $stop and $words =~ s{^(.*?)($re_capture_decode)}{
+
+ $output .= $1;
+ my $orig = $2;
+ my $charset = $3;
+ my ($mime_enc, $text) = split /\?/, $5;
+
+ $text =~ tr/\r\n//d;
+
+ my $enc = Encode::find_mime_encoding($charset);
+
+ # in non strict mode allow also perl encoding aliases
+ if ( not defined $enc and not $STRICT_DECODE ) {
+ # make sure that decoded string will be always strict UTF-8
+ $charset = 'UTF-8' if lc($charset) eq 'utf8';
+ $enc = Encode::find_encoding($charset);
+ }
+
+ if ( not defined $enc ) {
+ Carp::croak qq(Unknown charset "$charset") if not ref $chk and $chk & Encode::DIE_ON_ERR;
+ Carp::carp qq(Unknown charset "$charset") if not ref $chk and $chk & Encode::WARN_ON_ERR;
+ $stop = 1 if not ref $chk and $chk & Encode::RETURN_ON_ERR;
+ $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; # $orig mime word is separated by whitespace
+ $stop ? $orig : '';
+ } else {
+ if ( uc($mime_enc) eq 'B' and $obj->{decode_b} ) {
+ my $decoded = _decode_b($enc, $text, $chk);
+ $stop = 1 if not defined $decoded and not ref $chk and $chk & Encode::RETURN_ON_ERR;
+ $output .= (defined $decoded ? $decoded : $text) unless $stop;
+ $stop ? $orig : '';
+ } elsif ( uc($mime_enc) eq 'Q' and $obj->{decode_q} ) {
+ my $decoded = _decode_q($enc, $text, $chk);
+ $stop = 1 if not defined $decoded and not ref $chk and $chk & Encode::RETURN_ON_ERR;
+ $output .= (defined $decoded ? $decoded : $text) unless $stop;
+ $stop ? $orig : '';
+ } else {
+ Carp::croak qq(MIME "$mime_enc" unsupported) if not ref $chk and $chk & Encode::DIE_ON_ERR;
+ Carp::carp qq(MIME "$mime_enc" unsupported) if not ref $chk and $chk & Encode::WARN_ON_ERR;
+ $stop = 1 if not ref $chk and $chk & Encode::RETURN_ON_ERR;
+ $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; # $orig mime word is separated by whitespace
+ $stop ? $orig : '';
+ }
+ }
+
+ }se;
+
+ if ( not $stop ) {
+ $output .= $words;
+ $words = '';
+ }
+
+ $words;
+
+ }se;
+
+ if ( not $stop ) {
+ $line =~ tr/\r\n//d;
+ $output .= $line . $sep;
+ $line = '';
+ $sep = '';
}
- }egox;
- $_[1] = $str if $chk;
- return $str;
-}
-sub decode_b {
- my $enc = shift;
- my $d = find_encoding($enc) or croak qq(Unknown encoding "$enc");
- my $db64 = decode_base64(shift);
- my $chk = shift;
- return $d->name eq 'utf8'
- ? Encode::decode_utf8($db64)
- : $d->decode( $db64, $chk || Encode::FB_PERLQQ );
-}
+ $line . $sep;
-sub decode_q {
- my ( $enc, $q, $chk ) = @_;
- my $d = find_encoding($enc) or croak qq(Unknown encoding "$enc");
- $q =~ s/_/ /go;
- $q =~ s/=([0-9A-Fa-f]{2})/pack("C", hex($1))/ego;
- return $d->name eq 'utf8'
- ? Encode::decode_utf8($q)
- : $d->decode( $q, $chk || Encode::FB_PERLQQ );
-}
+ }se;
-my $especials =
- join( '|' => map { quotemeta( chr($_) ) }
- unpack( "C*", qq{()<>,;:"'/[]?=} ) );
+ $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC);
+ return $output;
+}
-my $re_encoded_word = qr{
- =\? # begin encoded word
- (?:[-0-9A-Za-z_]+) # charset (encoding)
- (?:\*[A-Za-z]{1,8}(?:-[A-Za-z]{1,8})*)? # language (RFC 2231)
- \?(?:[QqBb])\? # delimiter
- (?:.*?) # Base64-encodede contents
- \?= # end encoded word
-}xo;
+sub _decode_b {
+ my ($enc, $text, $chk) = @_;
+ # MIME::Base64::decode ignores everything after a '=' padding character
+ # in non strict mode split string after each sequence of padding characters and decode each substring
+ my $octets = $STRICT_DECODE ?
+ MIME::Base64::decode($text) :
+ join('', map { MIME::Base64::decode($_) } split /(?<==)(?=[^=])/, $text);
+ return _decode_octets($enc, $octets, $chk);
+}
-my $re_especials = qr{$re_encoded_word|$especials}xo;
+sub _decode_q {
+ my ($enc, $text, $chk) = @_;
+ $text =~ s/_/ /go;
+ $text =~ s/=([0-9A-Fa-f]{2})/pack('C', hex($1))/ego;
+ return _decode_octets($enc, $text, $chk);
+}
-# cf:
-# https://rt.cpan.org/Ticket/Display.html?id=88717
-# https://www.ietf.org/rfc/rfc0822.txt
-my $re_linear_white_space = qr{(?:[ \t]|\r\n?)};
+sub _decode_octets {
+ my ($enc, $octets, $chk) = @_;
+ $chk &= ~Encode::LEAVE_SRC if not ref $chk and $chk;
+ local $Carp::CarpLevel = $Carp::CarpLevel + 1; # propagate Carp messages back to caller
+ my $output = $enc->decode($octets, $chk);
+ return undef if not ref $chk and $chk and $octets ne '';
+ return $output;
+}
sub encode($$;$) {
- my ( $obj, $str, $chk ) = @_;
- my @line = ();
- for my $line ( split /\r\n|[\r\n]/o, $str ) {
- my ( @word, @subline );
- if ($line =~ /\A([\w\-]+:\s+)(.*)\z/o) {
- push @word, $1, $obj->_encode($2); # "X-Header-Name: ..."
+ my ($obj, $str, $chk) = @_;
+ my $output = $obj->_fold_line($obj->_encode_string($str, $chk));
+ $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC);
+ return $output . substr($str, 0, 0); # to propagate taintedness
+}
+
+sub _fold_line {
+ my ($obj, $line) = @_;
+ my $bpl = $obj->{bpl};
+ my $output = '';
+
+ while ( length($line) ) {
+ if ( $line =~ s/^(.{0,$bpl})(\s|\z)// ) {
+ $output .= $1;
+ $output .= "\r\n" . $2 if length($line);
+ } elsif ( $line =~ s/(\s)(.*)$// ) {
+ $output .= $line;
+ $line = $2;
+ $output .= "\r\n" . $1 if length($line);
} else {
- push @word, $obj->_encode($line); # anything else
+ $output .= $line;
+ last;
}
- my $subline = '';
- for my $word (@word) {
- use bytes ();
- if ( bytes::length($subline) + bytes::length($word) >
- $obj->{bpl} - 1 )
- {
- push @subline, $subline;
- $subline = '';
- }
- $subline .= ' ' if ($subline =~ /\?=$/ and $word =~ /^=\?/);
- $subline .= $word;
- }
- length($subline) and push @subline, $subline;
- push @line, join( "\n " => grep !/^$/, @subline );
}
- $_[1] = '' if $chk;
- return (substr($str, 0, 0) . join( "\n", @line ));
-}
-
-use constant HEAD => '=?UTF-8?';
-use constant TAIL => '?=';
-use constant SINGLE => { B => \&_encode_b, Q => \&_encode_q, };
-sub _encode {
- my ( $o, $str ) = @_;
- my $enc = $o->{encode};
- my $llen = ( $o->{bpl} - length(HEAD) - 2 - length(TAIL) );
+ return $output;
+}
- # to coerce a floating-point arithmetics, the following contains
- # .0 in numbers -- dankogai
- $llen *= $enc eq 'B' ? 3.0 / 4.0 : 1.0 / 3.0;
+sub _encode_string {
+ my ($obj, $str, $chk) = @_;
+ my $wordlen = $obj->{bpl} > 76 ? 76 : $obj->{bpl};
+ my $enc = Encode::find_mime_encoding($obj->{charset});
+ my $enc_chk = (not ref $chk and $chk) ? ($chk | Encode::LEAVE_SRC) : $chk;
my @result = ();
- my $chunk = '';
- while ( length( my $chr = substr( $str, 0, 1, '' ) ) ) {
- use bytes ();
- if ( bytes::length($chunk) + bytes::length($chr) > $llen ) {
- push @result, SINGLE->{$enc}($chunk);
- $chunk = '';
+ my $octets = '';
+ while ( length( my $chr = substr($str, 0, 1, '') ) ) {
+ my $seq;
+ {
+ local $Carp::CarpLevel = $Carp::CarpLevel + 1; # propagate Carp messages back to caller
+ $seq = $enc->encode($chr, $enc_chk);
+ }
+ if ( not length($seq) ) {
+ substr($str, 0, 0, $chr);
+ last;
+ }
+ if ( $obj->_encoded_word_len($octets . $seq) > $wordlen ) {
+ push @result, $obj->_encode_word($octets);
+ $octets = '';
}
- $chunk .= $chr;
+ $octets .= $seq;
}
- length($chunk) and push @result, SINGLE->{$enc}($chunk);
- return @result;
+ length($octets) and push @result, $obj->_encode_word($octets);
+ $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC);
+ return join(' ', @result);
+}
+
+sub _encode_word {
+ my ($obj, $octets) = @_;
+ my $charset = $obj->{charset};
+ my $encode = $obj->{encode};
+ my $text = $encode eq 'B' ? _encode_b($octets) : _encode_q($octets);
+ return "=?$charset?$encode?$text?=";
+}
+
+sub _encoded_word_len {
+ my ($obj, $octets) = @_;
+ my $charset = $obj->{charset};
+ my $encode = $obj->{encode};
+ my $text_len = $encode eq 'B' ? _encoded_b_len($octets) : _encoded_q_len($octets);
+ return length("=?$charset?$encode??=") + $text_len;
}
sub _encode_b {
- HEAD . 'B?' . encode_base64( encode_utf8(shift), '' ) . TAIL;
+ my ($octets) = @_;
+ return MIME::Base64::encode($octets, '');
+}
+
+sub _encoded_b_len {
+ my ($octets) = @_;
+ return ( length($octets) + 2 ) / 3 * 4;
}
+my $re_invalid_q_char = qr/[^0-9A-Za-z !*+\-\/]/;
+
sub _encode_q {
- my $chunk = shift;
- $chunk = encode_utf8($chunk);
- $chunk =~ s{
- ([^0-9A-Za-z])
- }{
- join("" => map {sprintf "=%02X", $_} unpack("C*", $1))
- }egox;
- return HEAD . 'Q?' . $chunk . TAIL;
+ my ($octets) = @_;
+ $octets =~ s{($re_invalid_q_char)}{
+ join('', map { sprintf('=%02X', $_) } unpack('C*', $1))
+ }egox;
+ $octets =~ s/ /_/go;
+ return $octets;
+}
+
+sub _encoded_q_len {
+ my ($octets) = @_;
+ my $invalid_count = () = $octets =~ /$re_invalid_q_char/sgo;
+ return ( $invalid_count * 3 ) + ( length($octets) - $invalid_count );
}
1;
@@ -187,55 +305,119 @@ __END__
=head1 NAME
-Encode::MIME::Header -- MIME 'B' and 'Q' header encoding
+Encode::MIME::Header -- MIME encoding for an unstructured email header
=head1 SYNOPSIS
- use Encode qw/encode decode/;
- $utf8 = decode('MIME-Header', $header);
- $header = encode('MIME-Header', $utf8);
+ use Encode qw(encode decode);
-=head1 ABSTRACT
+ my $mime_str = encode("MIME-Header", "Sample:Text \N{U+263A}");
+ # $mime_str is "=?UTF-8?B?U2FtcGxlOlRleHQg4pi6?="
-This module implements RFC 2047 Mime Header Encoding. There are 3
-variant encoding names; C<MIME-Header>, C<MIME-B> and C<MIME-Q>. The
-difference is described below
+ my $mime_q_str = encode("MIME-Q", "Sample:Text \N{U+263A}");
+ # $mime_q_str is "=?UTF-8?Q?Sample=3AText_=E2=98=BA?="
- decode() encode()
- ----------------------------------------------
- MIME-Header Both B and Q =?UTF-8?B?....?=
- MIME-B B only; Q croaks =?UTF-8?B?....?=
- MIME-Q Q only; B croaks =?UTF-8?Q?....?=
+ my $str = decode("MIME-Header",
+ "=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\r\n " .
+ "=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?="
+ );
+ # $str is "If you can read this you understand the example."
-=head1 DESCRIPTION
+ use Encode qw(decode :fallbacks);
+ use Encode::MIME::Header;
+ local $Encode::MIME::Header::STRICT_DECODE = 1;
+ my $strict_string = decode("MIME-Header", $mime_string, FB_CROAK);
+ # use strict decoding and croak on errors
-When you decode(=?I<encoding>?I<X>?I<ENCODED WORD>?=), I<ENCODED WORD>
-is extracted and decoded for I<X> encoding (B for Base64, Q for
-Quoted-Printable). Then the decoded chunk is fed to
-decode(I<encoding>). So long as I<encoding> is supported by Encode,
-any source encoding is fine.
+=head1 ABSTRACT
-When you encode, it just encodes UTF-8 string with I<X> encoding then
-quoted with =?UTF-8?I<X>?....?= . The parts that RFC 2047 forbids to
-encode are left as is and long lines are folded within 76 bytes per
-line.
+This module implements L<RFC 2047|https://tools.ietf.org/html/rfc2047> MIME
+encoding for an unstructured field body of the email header. It can also be
+used for L<RFC 822|https://tools.ietf.org/html/rfc822> 'text' token. However,
+it cannot be used directly for the whole header with the field name or for the
+structured header fields like From, To, Cc, Message-Id, etc... There are 3
+encoding names supported by this module: C<MIME-Header>, C<MIME-B> and
+C<MIME-Q>.
-=head1 BUGS
+=head1 DESCRIPTION
-It would be nice to support encoding to non-UTF8, such as =?ISO-2022-JP?
-and =?ISO-8859-1?= but that makes the implementation too complicated.
-These days major mail agents all support =?UTF-8? so I think it is
-just good enough.
+Decode method takes an unstructured field body of the email header (or
+L<RFC 822|https://tools.ietf.org/html/rfc822> 'text' token) as its input and
+decodes each MIME encoded-word from input string to a sequence of bytes
+according to L<RFC 2047|https://tools.ietf.org/html/rfc2047> and
+L<RFC 2231|https://tools.ietf.org/html/rfc2231>. Subsequently, each sequence
+of bytes with the corresponding MIME charset is decoded with
+L<the Encode module|Encode> and finally, one output string is returned. Text
+parts of the input string which do not contain MIME encoded-word stay
+unmodified in the output string. Folded newlines between two consecutive MIME
+encoded-words are discarded, others are preserved in the output string.
+C<MIME-B> can decode Base64 variant, C<MIME-Q> can decode Quoted-Printable
+variant and C<MIME-Header> can decode both of them. If L<Encode module|Encode>
+does not support particular MIME charset or chosen variant then an action based
+on L<CHECK flags|Encode/Handling Malformed Data> is performed (by default, the
+MIME encoded-word is not decoded).
+
+Encode method takes a scalar string as its input and uses
+L<strict UTF-8|Encode/UTF-8 vs. utf8 vs. UTF8> encoder for encoding it to UTF-8
+bytes. Then a sequence of UTF-8 bytes is encoded into MIME encoded-words
+(C<MIME-Header> and C<MIME-B> use a Base64 variant while C<MIME-Q> uses a
+Quoted-Printable variant) where each MIME encoded-word is limited to 75
+characters. MIME encoded-words are separated by C<CRLF SPACE> and joined to
+one output string. Output string is suitable for unstructured field body of
+the email header.
+
+Both encode and decode methods propagate
+L<CHECK flags|Encode/Handling Malformed Data> when encoding and decoding the
+MIME charset.
-Due to popular demand, 'MIME-Header-ISO_2022_JP' was introduced by
-Makamaka. Thre are still too many MUAs especially cellular phone
-handsets which does not grok UTF-8.
+=head1 BUGS
-=head1 SEE ALSO
+Versions prior to 2.22 (part of Encode 2.83) have a malfunctioning decoder
+and encoder. The MIME encoder infamously inserted additional spaces or
+discarded white spaces between consecutive MIME encoded-words, which led to
+invalid MIME headers produced by this module. The MIME decoder had a tendency
+to discard white spaces, incorrectly interpret data or attempt to decode Base64
+MIME encoded-words as Quoted-Printable. These problems were fixed in version
+2.22. It is highly recommended not to use any version prior 2.22!
+
+Versions prior to 2.24 (part of Encode 2.87) ignored
+L<CHECK flags|Encode/Handling Malformed Data>. The MIME encoder used
+L<not strict utf8|Encode/UTF-8 vs. utf8 vs. UTF8> encoder for input Unicode
+strings which could lead to invalid UTF-8 sequences. MIME decoder used also
+L<not strict utf8|Encode/UTF-8 vs. utf8 vs. UTF8> decoder and additionally
+called the decode method with a C<Encode::FB_PERLQQ> flag (thus user-specified
+L<CHECK flags|Encode/Handling Malformed Data> were ignored). Moreover, it
+automatically croaked when a MIME encoded-word contained unknown encoding.
+Since version 2.24, this module uses
+L<strict UTF-8|Encode/UTF-8 vs. utf8 vs. UTF8> encoder and decoder. And
+L<CHECK flags|Encode/Handling Malformed Data> are correctly propagated.
+
+Since version 2.22 (part of Encode 2.83), the MIME encoder should be fully
+compliant to L<RFC 2047|https://tools.ietf.org/html/rfc2047> and
+L<RFC 2231|https://tools.ietf.org/html/rfc2231>. Due to the aforementioned
+bugs in previous versions of the MIME encoder, there is a I<less strict>
+compatible mode for the MIME decoder which is used by default. It should be
+able to decode MIME encoded-words encoded by pre 2.22 versions of this module.
+However, note that this is not correct according to
+L<RFC 2047|https://tools.ietf.org/html/rfc2047>.
+
+In default I<not strict> mode the MIME decoder attempts to decode every substring
+which looks like a MIME encoded-word. Therefore, the MIME encoded-words do not
+need to be separated by white space. To enforce a correct I<strict> mode, set
+variable C<$Encode::MIME::Header::STRICT_DECODE> to 1 e.g. by localizing:
+
+ use Encode::MIME::Header;
+ local $Encode::MIME::Header::STRICT_DECODE = 1;
+
+=head1 AUTHORS
+
+Pali E<lt>pali@cpan.orgE<gt>
-L<Encode>
+=head1 SEE ALSO
-RFC 2047, L<http://www.faqs.org/rfcs/rfc2047.html> and many other
-locations.
+L<Encode>,
+L<RFC 822|https://tools.ietf.org/html/rfc822>,
+L<RFC 2047|https://tools.ietf.org/html/rfc2047>,
+L<RFC 2231|https://tools.ietf.org/html/rfc2231>
=cut
diff --git a/Master/tlpkg/tlperl/lib/Encode/MIME/Header/ISO_2022_JP.pm b/Master/tlpkg/tlperl/lib/Encode/MIME/Header/ISO_2022_JP.pm
index 86955c83f1f..86e66c371c9 100644
--- a/Master/tlpkg/tlperl/lib/Encode/MIME/Header/ISO_2022_JP.pm
+++ b/Master/tlpkg/tlperl/lib/Encode/MIME/Header/ISO_2022_JP.pm
@@ -6,7 +6,7 @@ use warnings;
use parent qw(Encode::MIME::Header);
$Encode::Encoding{'MIME-Header-ISO_2022_JP'} =
- bless { encode => 'B', bpl => 76, Name => 'MIME-Header-ISO_2022_JP' } =>
+ bless { decode_b => '1', decode_q => '1', encode => 'B', bpl => 76, Name => 'MIME-Header-ISO_2022_JP' } =>
__PACKAGE__;
use constant HEAD => '=?ISO-2022-JP?B?';
@@ -14,7 +14,7 @@ use constant TAIL => '?=';
use Encode::CJKConstants qw(%RE);
-our $VERSION = do { my @r = ( q$Revision: 1.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 1.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
# I owe the below codes totally to
# Jcode by Dan Kogai & http://www.din.or.jp/~ohzaki/perl.htm#JP_Base64
diff --git a/Master/tlpkg/tlperl/lib/Encode/MIME/Name.pm b/Master/tlpkg/tlperl/lib/Encode/MIME/Name.pm
index 10d86a746dc..1a8d788aecc 100644
--- a/Master/tlpkg/tlperl/lib/Encode/MIME/Name.pm
+++ b/Master/tlpkg/tlperl/lib/Encode/MIME/Name.pm
@@ -1,8 +1,9 @@
package Encode::MIME::Name;
use strict;
use warnings;
-our $VERSION = do { my @r = ( q$Revision: 1.1 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+our $VERSION = do { my @r = ( q$Revision: 1.2 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
+# NOTE: This table must be 1:1 mapping
our %MIME_NAME_OF = (
'AdobeStandardEncoding' => 'Adobe-Standard-Encoding',
'AdobeSymbol' => 'Adobe-Symbol-Encoding',
@@ -43,7 +44,7 @@ our %MIME_NAME_OF = (
'hp-roman8' => 'hp-roman8',
'hz' => 'HZ-GB-2312',
'iso-2022-jp' => 'ISO-2022-JP',
- 'iso-2022-jp-1' => 'ISO-2022-JP',
+ 'iso-2022-jp-1' => 'ISO-2022-JP-1',
'iso-2022-kr' => 'ISO-2022-KR',
'iso-8859-1' => 'ISO-8859-1',
'iso-8859-10' => 'ISO-8859-10',
@@ -73,13 +74,20 @@ our %MIME_NAME_OF = (
'UTF-32BE' => 'UTF-32BE',
'UTF-32LE' => 'UTF-32LE',
'UTF-7' => 'UTF-7',
- 'utf8' => 'UTF-8',
'utf-8-strict' => 'UTF-8',
'viscii' => 'VISCII',
);
+# NOTE: %MIME_NAME_OF is still 1:1 mapping
+our %ENCODE_NAME_OF = map { uc $MIME_NAME_OF{$_} => $_ } keys %MIME_NAME_OF;
+
+# Add additional 1:N mapping
+$MIME_NAME_OF{'utf8'} = 'UTF-8';
+
sub get_mime_name($) { $MIME_NAME_OF{$_[0]} };
+sub get_encode_name($) { $ENCODE_NAME_OF{uc $_[0]} };
+
1;
__END__
diff --git a/Master/tlpkg/tlperl/lib/Encode/Supported.pod b/Master/tlpkg/tlperl/lib/Encode/Supported.pod
index c731509a816..b23f6ca83ec 100644
--- a/Master/tlpkg/tlperl/lib/Encode/Supported.pod
+++ b/Master/tlpkg/tlperl/lib/Encode/Supported.pod
@@ -367,7 +367,7 @@ Unicode character should belong).
Not very popular. Needs CNS 11643-1 and -2 which are not available in
this module. CNS 11643 is supported (via euc-tw) in Encode::HanExtra.
-Autrijus Tang may add support for this encoding in his module in future.
+Audrey Tang may add support for this encoding in her module in future.
=item Various HP-UX encodings
diff --git a/Master/tlpkg/tlperl/lib/Encode/Unicode.pm b/Master/tlpkg/tlperl/lib/Encode/Unicode.pm
index 7dec3e38159..fc1d3d1382f 100644
--- a/Master/tlpkg/tlperl/lib/Encode/Unicode.pm
+++ b/Master/tlpkg/tlperl/lib/Encode/Unicode.pm
@@ -4,7 +4,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.15_01 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r };
use XSLoader;
XSLoader::load( __PACKAGE__, $VERSION );
diff --git a/Master/tlpkg/tlperl/lib/Encode/_T.e2x b/Master/tlpkg/tlperl/lib/Encode/_T.e2x
index 6cf5f293d54..7b9a67e43d7 100644
--- a/Master/tlpkg/tlperl/lib/Encode/_T.e2x
+++ b/Master/tlpkg/tlperl/lib/Encode/_T.e2x
@@ -2,6 +2,8 @@ use strict;
# Adjust the number here!
use Test::More tests => 2;
-use_ok('Encode');
-use_ok('Encode::$_Name_');
+BEGIN {
+ use_ok('Encode');
+ use_ok('Encode::$_Name_');
+}
# Add more test here!
diff --git a/Master/tlpkg/tlperl/lib/Errno.pm b/Master/tlpkg/tlperl/lib/Errno.pm
index bd5fb6d0f72..89a4181f4e2 100644
--- a/Master/tlpkg/tlperl/lib/Errno.pm
+++ b/Master/tlpkg/tlperl/lib/Errno.pm
@@ -1,6 +1,7 @@
# -*- buffer-read-only: t -*-
#
-# This file is auto-generated. ***ANY*** changes here will be lost
+# This file is auto-generated by ext/Errno/Errno_pm.PL.
+# ***ANY*** changes here will be lost.
#
package Errno;
@@ -9,10 +10,10 @@ use strict;
use Config;
"$Config{'archname'}-$Config{'osvers'}" eq
-"MSWin32-x86-multi-thread-6.1" or
- die "Errno architecture (MSWin32-x86-multi-thread-6.1) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
+"MSWin32-x86-multi-thread-10.0" or
+ die "Errno architecture (MSWin32-x86-multi-thread-10.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})";
-our $VERSION = "1.25";
+our $VERSION = "1.28";
$VERSION = eval $VERSION;
our @ISA = 'Exporter';
@@ -684,6 +685,7 @@ BEGIN {
ERROR_INVALID_OPLOCK_PROTOCOL => 301,
ERROR_DISK_TOO_FRAGMENTED => 302,
ERROR_DELETE_PENDING => 303,
+ ERROR_INVALID_TOKEN => 315,
ERROR_MR_MID_NOT_FOUND => 317,
ERROR_SCOPE_NOT_FOUND => 318,
ERROR_INVALID_ADDRESS => 487,
@@ -2514,17 +2516,17 @@ our %EXPORT_TAGS = (
ETXTBSY EUSERS EWOULDBLOCK EXDEV
)],
WINSOCK => [qw(
- WSAEAFNOSUPPORT WSAEPFNOSUPPORT WSAEPROCLIM WSAEINPROGRESS
- WSAENAMETOOLONG WSAENETDOWN WSAETIMEDOUT WSAESHUTDOWN
- WSAEINVALIDPROVIDER WSAENETRESET WSAETOOMANYREFS WSAEINVAL
- WSAEADDRNOTAVAIL WSAEREMOTE WSAENOMORE WSAENETUNREACH WSAEWOULDBLOCK
- WSAEUSERS WSAECONNREFUSED WSAENOBUFS WSAEBADF WSAEHOSTUNREACH
- WSAEMSGSIZE WSAEPROVIDERFAILEDINIT WSAEINTR WSAEPROTONOSUPPORT
- WSAENOTCONN WSAEFAULT WSAEINVALIDPROCTABLE WSAECONNRESET WSAESTALE
- WSAEOPNOTSUPP WSAEADDRINUSE WSAENOPROTOOPT WSAELOOP WSAEDESTADDRREQ
- WSAEDQUOT WSAENOTSOCK WSAESOCKTNOSUPPORT WSAEALREADY WSAEPROTOTYPE
- WSAECANCELLED WSAECONNABORTED WSAEREFUSED WSAEISCONN WSAEDISCON
- WSAEHOSTDOWN WSAENOTEMPTY WSAEACCES WSAEMFILE
+ WSAEHOSTDOWN WSAENOTCONN WSAELOOP WSAESHUTDOWN WSAENOMORE WSAEALREADY
+ WSAEINVAL WSAENETDOWN WSAEPROVIDERFAILEDINIT WSAEMFILE WSAEFAULT
+ WSAEOPNOTSUPP WSAEREMOTE WSAENOPROTOOPT WSAEACCES WSAECONNABORTED
+ WSAENOBUFS WSAECONNRESET WSAEPROTONOSUPPORT WSAEINVALIDPROCTABLE
+ WSAESOCKTNOSUPPORT WSAEISCONN WSAESTALE WSAEDQUOT WSAEPFNOSUPPORT
+ WSAEHOSTUNREACH WSAETOOMANYREFS WSAEAFNOSUPPORT WSAEINTR
+ WSAEADDRNOTAVAIL WSAENETRESET WSAECANCELLED WSAENOTEMPTY WSAEREFUSED
+ WSAEDISCON WSAENOTSOCK WSAEMSGSIZE WSAEADDRINUSE WSAENETUNREACH
+ WSAEDESTADDRREQ WSAEINVALIDPROVIDER WSAENAMETOOLONG WSAEUSERS
+ WSAETIMEDOUT WSAEPROTOTYPE WSAEBADF WSAEWOULDBLOCK WSAEINPROGRESS
+ WSAEPROCLIM WSAECONNREFUSED
)],
);
@@ -2542,6 +2544,7 @@ sub STORE {
Carp::confess("ERRNO hash is read only!");
}
+# This is the true return value
*CLEAR = *DELETE = \*STORE; # Typeglob aliasing uses less space
sub NEXTKEY {
@@ -2558,7 +2561,9 @@ sub EXISTS {
exists $err{$errname};
}
-tie %!, __PACKAGE__; # Returns an object, objects are true.
+sub _tie_it {
+ tie %{$_[0]}, __PACKAGE__;
+}
__END__
@@ -2583,9 +2588,8 @@ file. These are included in a second export tag, C<:WINSOCK>.
C<Errno> also makes C<%!> magic such that each element of C<%!> has a
non-zero value only if C<$!> is set to that value. For example:
- use Errno;
-
- unless (open(FH, "/fangorn/spouse")) {
+ my $fh;
+ unless (open($fh, "<", "/fangorn/spouse")) {
if ($!{ENOENT}) {
warn "Get a wife!\n";
} else {
@@ -2597,6 +2601,9 @@ If a specified constant C<EFOO> does not exist on the system, C<$!{EFOO}>
returns C<"">. You may use C<exists $!{EFOO}> to check whether the
constant is available on the system.
+Perl automatically loads C<Errno> the first time you use C<%!>, so you don't
+need an explicit C<use>.
+
=head1 CAVEATS
Importing a particular constant may not be very portable, because the
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm
index 34e85decfbe..c9ff022f033 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Command.pm
@@ -7,7 +7,7 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
@ISA = qw(Exporter);
@EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
dos2unix);
-$VERSION = '7.10_02';
+$VERSION = '7.24';
$VERSION = eval $VERSION;
my $Is_VMS = $^O eq 'VMS';
@@ -350,6 +350,7 @@ sub dos2unix {
open ORIG, $_ or do { warn "dos2unix can't open $_: $!"; return };
open TEMP, ">$temp" or
do { warn "dos2unix can't create .dos2unix_tmp: $!"; return };
+ binmode ORIG; binmode TEMP;
while (my $line = <ORIG>) {
$line =~ s/\015\012/\012/g;
print TEMP $line;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm
index b4385fc8c60..69779b2912e 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Command/MM.pm
@@ -10,14 +10,20 @@ our @ISA = qw(Exporter);
our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist test_s cp_nonempty);
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
my $Is_VMS = $^O eq 'VMS';
-eval { require Time::HiRes; die unless Time::HiRes->can("stat"); };
-*mtime = $@ ?
- sub { [ stat($_[0])]->[9] } :
- sub { [Time::HiRes::stat($_[0])]->[9] } ;
+sub mtime {
+ no warnings 'redefine';
+ local $@;
+ *mtime = (eval { require Time::HiRes } && defined &Time::HiRes::stat)
+ ? sub { (Time::HiRes::stat($_[0]))[9] }
+ : sub { ( stat($_[0]))[9] }
+ ;
+ goto &mtime;
+}
=head1 NAME
@@ -213,8 +219,8 @@ sub perllocal_install {
: @ARGV;
my $pod;
- $pod = sprintf <<POD, scalar localtime;
- =head2 %s: C<$type> L<$name|$name>
+ $pod = sprintf <<'POD', scalar(localtime), $type, $name, $name;
+ =head2 %s: C<%s> L<%s|%s>
=over 4
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm
index 9305b5dc133..b26bf7382e0 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Embed.pm
@@ -10,7 +10,7 @@ use vars qw(@ISA @EXPORT $VERSION
use strict;
# This is not a dual-life module, so no need for development version numbers
-$VERSION = '1.33';
+$VERSION = '1.34';
@ISA = qw(Exporter);
@EXPORT = qw(&xsinit &ldopts
@@ -199,7 +199,7 @@ sub ldopts {
push @archives, $archive;
if(-e ($extra = File::Spec->catdir($_,"auto",$root,"extralibs.ld"))) {
local(*FH);
- if(open(FH, $extra)) {
+ if(open(FH, '<', $extra)) {
my($libs) = <FH>; chomp $libs;
push @potential_libs, split /\s+/, $libs;
}
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
index ed38f8fe5d9..7b2ca535ce7 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist.pm
@@ -2,7 +2,8 @@ package ExtUtils::Liblist;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
use File::Spec;
require ExtUtils::Liblist::Kid;
@@ -16,9 +17,9 @@ sub ext {
sub lsdir {
shift;
my $rex = qr/$_[1]/;
- opendir DIR, $_[0];
- my @out = grep /$rex/, readdir DIR;
- closedir DIR;
+ opendir my $dir_fh, $_[0];
+ my @out = grep /$rex/, readdir $dir_fh;
+ closedir $dir_fh;
return @out;
}
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
index 93183a3792a..a7fae86276d 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Liblist/Kid.pm
@@ -11,7 +11,8 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
use ExtUtils::MakeMaker::Config;
use Cwd 'cwd';
@@ -337,7 +338,7 @@ sub _win32_ext {
$libs_seen{$fullname} = 1 if $path; # why is this a special case?
}
- my @libs = keys %libs_seen;
+ my @libs = sort keys %libs_seen;
return ( '', '', '', '', ( $give_libs ? \@libs : () ) ) unless @extralibs;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm
index a8a176bc394..b3279323881 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM.pm
@@ -3,7 +3,8 @@ package ExtUtils::MM;
use strict;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
index bb7e6105a5f..ea646606fc4 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_AIX.pm
@@ -1,14 +1,12 @@
package ExtUtils::MM_AIX;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
-use ExtUtils::MakeMaker qw(neatvalue);
-
-
=head1 NAME
ExtUtils::MM_AIX - AIX specific subclass of ExtUtils::MM_Unix
@@ -35,36 +33,26 @@ Define DL_FUNCS and DL_VARS and write the *.exp files.
sub dlsyms {
my($self,%attribs) = @_;
+ return '' unless $self->needs_linking;
+ my @m;
+ # these will need XSMULTI-fying but maybe that already happens
+ push @m,"\ndynamic :: $self->{BASEEXT}.exp\n\n"
+ unless $self->{SKIPHASH}{'dynamic'}; # dynamic and static are subs, so...
+ push @m,"\nstatic :: $self->{BASEEXT}.exp\n\n"
+ unless $self->{SKIPHASH}{'static'}; # we avoid a warning if we tick them
+ join "\n", @m, $self->xs_dlsyms_iterator(\%attribs);
+}
- return '' unless $self->needs_linking();
-
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || [];
- my(@m);
-
- push(@m,"
-dynamic :: $self->{BASEEXT}.exp
-
-") unless $self->{SKIPHASH}{'dynamic'}; # dynamic and static are subs, so...
-
- push(@m,"
-static :: $self->{BASEEXT}.exp
+=head3 xs_dlsyms_ext
-") unless $self->{SKIPHASH}{'static'}; # we avoid a warning if we tick them
+On AIX, is C<.exp>.
- push(@m,"
-$self->{BASEEXT}.exp: Makefile.PL
-",' $(PERLRUN) -e \'use ExtUtils::Mksymlists; \\
- Mksymlists("NAME" => "',$self->{NAME},'", "DL_FUNCS" => ',
- neatvalue($funcs), ', "FUNCLIST" => ', neatvalue($funclist),
- ', "DL_VARS" => ', neatvalue($vars), ');\'
-');
+=cut
- join('',@m);
+sub xs_dlsyms_ext {
+ '.exp';
}
-
=head1 AUTHOR
Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
index 7679dc415a6..433a8dd7a31 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Any.pm
@@ -1,7 +1,8 @@
package ExtUtils::MM_Any;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
use Carp;
use File::Spec;
@@ -9,7 +10,7 @@ use File::Basename;
BEGIN { our @ISA = qw(File::Spec); }
# We need $Verbose
-use ExtUtils::MakeMaker qw($Verbose);
+use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
use ExtUtils::MakeMaker::Config;
@@ -17,9 +18,10 @@ use ExtUtils::MakeMaker::Config;
# So we don't have to keep calling the methods over and over again,
# we have these globals to cache the values. Faster and shrtr.
my $Curdir = __PACKAGE__->curdir;
-my $Rootdir = __PACKAGE__->rootdir;
-my $Updir = __PACKAGE__->updir;
+#my $Updir = __PACKAGE__->updir;
+my $METASPEC_URL = 'https://metacpan.org/pod/CPAN::Meta::Spec';
+my $METASPEC_V = 2;
=head1 NAME
@@ -348,6 +350,34 @@ sub _expand_macros {
}
+=head3 make_type
+
+Returns a suitable string describing the type of makefile being written.
+
+=cut
+
+# override if this isn't suitable!
+sub make_type { return 'Unix-style'; }
+
+
+=head3 stashmeta
+
+ my @recipelines = $MM->stashmeta($text, $file);
+
+Generates a set of C<@recipelines> which will result in the literal
+C<$text> ending up in literal C<$file> when the recipe is executed. Call
+it once, with all the text you want in C<$file>. Make macros will not
+be expanded, so the locations will be fixed at configure-time, not
+at build-time.
+
+=cut
+
+sub stashmeta {
+ my($self, $text, $file) = @_;
+ $self->echo($text, $file, { allow_variables => 0, append => 0 });
+}
+
+
=head3 echo
my @commands = $MM->echo($text);
@@ -367,7 +397,7 @@ all C<$>.
Example of use:
- my $make = map "\t$_\n", $MM->echo($text, $file);
+ my $make = join '', map "\t$_\n", $MM->echo($text, $file);
=cut
@@ -480,13 +510,14 @@ Usage might be something like:
$oneliner = $MM->oneliner('print "Foo\n"');
$make = '$oneliner > somefile';
-All dollar signs must be doubled in the $perl_code if you expect them
-to be interpreted normally, otherwise it will be considered a make
-macro. Also remember to quote make macros else it might be used as a
-bareword. For example:
+Dollar signs in the $perl_code will be protected from make using the
+C<quote_literal> method, unless they are recognised as being a make
+variable, C<$(varname)>, in which case they will be left for make
+to expand. Remember to quote make macros else it might be used as a
+bareword. For example:
# Assign the value of the $(VERSION_FROM) make macro to $vf.
- $oneliner = $MM->oneliner('$$vf = "$(VERSION_FROM)"');
+ $oneliner = $MM->oneliner('$vf = "$(VERSION_FROM)"');
Its currently very simple and may be expanded sometime in the figure
to include more flexible code and switches.
@@ -620,6 +651,11 @@ The blibdirs.ts target is deprecated. Depend on blibdirs instead.
=cut
+sub _xs_list_basenames {
+ my ($self) = @_;
+ map { (my $b = $_) =~ s/\.xs$//; $b } sort keys %{ $self->{XS} };
+}
+
sub blibdirs_target {
my $self = shift;
@@ -628,6 +664,14 @@ sub blibdirs_target {
bin script
man1dir man3dir
);
+ if ($self->{XSMULTI}) {
+ for my $ext ($self->_xs_list_basenames) {
+ my ($v, $d, $f) = File::Spec->splitpath($ext);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $d[0] eq 'lib';
+ push @dirs, $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+ }
+ }
my @exists = map { $_.'$(DFSEP).exists' } @dirs;
@@ -666,6 +710,10 @@ clean :: clean_subdirs
');
my @files = sort values %{$self->{XS}}; # .c files from *.xs files
+ push @files, map {
+ my $file = $_;
+ map { $file.$_ } $self->{OBJ_EXT}, qw(.def _def.old .bs .bso .exp .base);
+ } $self->_xs_list_basenames;
my @dirs = qw(blib);
# Normally these are all under blib but they might have been
@@ -862,6 +910,110 @@ MAKE_FRAG
}
+=head3 xs_dlsyms_ext
+
+Returns file-extension for C<xs_make_dlsyms> method's output file,
+including any "." character.
+
+=cut
+
+sub xs_dlsyms_ext {
+ die "Pure virtual method";
+}
+
+=head3 xs_dlsyms_extra
+
+Returns any extra text to be prepended to the C<$extra> argument of
+C<xs_make_dlsyms>.
+
+=cut
+
+sub xs_dlsyms_extra {
+ '';
+}
+
+=head3 xs_dlsyms_iterator
+
+Iterates over necessary shared objects, calling C<xs_make_dlsyms> method
+for each with appropriate arguments.
+
+=cut
+
+sub xs_dlsyms_iterator {
+ my ($self, $attribs) = @_;
+ if ($self->{XSMULTI}) {
+ my @m;
+ for my $ext ($self->_xs_list_basenames) {
+ my @parts = File::Spec->splitdir($ext);
+ shift @parts if $parts[0] eq 'lib';
+ my $name = join '::', @parts;
+ push @m, $self->xs_make_dlsyms(
+ $attribs,
+ $ext . $self->xs_dlsyms_ext,
+ "$ext.xs",
+ $name,
+ $parts[-1],
+ {}, [], {}, [],
+ $self->xs_dlsyms_extra . q!, 'FILE' => ! . neatvalue($ext),
+ );
+ }
+ return join "\n", @m;
+ } else {
+ return $self->xs_make_dlsyms(
+ $attribs,
+ $self->{BASEEXT} . $self->xs_dlsyms_ext,
+ 'Makefile.PL',
+ $self->{NAME},
+ $self->{DLBASE},
+ $attribs->{DL_FUNCS} || $self->{DL_FUNCS} || {},
+ $attribs->{FUNCLIST} || $self->{FUNCLIST} || [],
+ $attribs->{IMPORTS} || $self->{IMPORTS} || {},
+ $attribs->{DL_VARS} || $self->{DL_VARS} || [],
+ $self->xs_dlsyms_extra,
+ );
+ }
+}
+
+=head3 xs_make_dlsyms
+
+ $self->xs_make_dlsyms(
+ \%attribs, # hashref from %attribs in caller
+ "$self->{BASEEXT}.def", # output file for Makefile target
+ 'Makefile.PL', # dependency
+ $self->{NAME}, # shared object's "name"
+ $self->{DLBASE}, # last ::-separated part of name
+ $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {}, # various params
+ $attribs{FUNCLIST} || $self->{FUNCLIST} || [],
+ $attribs{IMPORTS} || $self->{IMPORTS} || {},
+ $attribs{DL_VARS} || $self->{DL_VARS} || [],
+ # optional extra param that will be added as param to Mksymlists
+ );
+
+Utility method that returns Makefile snippet to call C<Mksymlists>.
+
+=cut
+
+sub xs_make_dlsyms {
+ my ($self, $attribs, $target, $dep, $name, $dlbase, $funcs, $funclist, $imports, $vars, $extra) = @_;
+ my @m = (
+ "\n$target: $dep\n",
+ q! $(PERLRUN) -MExtUtils::Mksymlists \\
+ -e "Mksymlists('NAME'=>\"!, $name,
+ q!\", 'DLBASE' => '!,$dlbase,
+ # The above two lines quoted differently to work around
+ # a bug in the 4DOS/4NT command line interpreter. The visible
+ # result of the bug was files named q('extension_name',) *with the
+ # single quotes and the comma* in the extension build directories.
+ q!', 'DL_FUNCS' => !,neatvalue($funcs),
+ q!, 'FUNCLIST' => !,neatvalue($funclist),
+ q!, 'IMPORTS' => !,neatvalue($imports),
+ q!, 'DL_VARS' => !, neatvalue($vars)
+ );
+ push @m, $extra if defined $extra;
+ push @m, qq!);"\n!;
+ join '', @m;
+}
+
=head3 dynamic (o)
Defines the dynamic target.
@@ -873,7 +1025,7 @@ sub dynamic {
my($self) = shift;
'
-dynamic :: $(FIRST_MAKEFILE) $(BOOTSTRAP) $(INST_DYNAMIC)
+dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC)
$(NOECHO) $(NOOP)
';
}
@@ -921,14 +1073,14 @@ sub manifypods_target {
}
my $manify = <<END;
-manifypods : pure_all $dependencies
+manifypods : pure_all config $dependencies
END
my @man_cmds;
foreach my $section (qw(1 3)) {
my $pods = $self->{"MAN${section}PODS"};
- my $p2m = sprintf <<CMD, $] > 5.008 ? " -u" : "";
- \$(NOECHO) \$(POD2MAN) --section=$section --perm_rw=\$(PERM_RW)%s
+ my $p2m = sprintf <<'CMD', $section, $] > 5.008 ? " -u" : "";
+ $(NOECHO) $(POD2MAN) --section=%s --perm_rw=$(PERM_RW)%s
CMD
push @man_cmds, $self->split_command($p2m, map {($_,$pods->{$_})} sort keys %$pods);
}
@@ -939,12 +1091,16 @@ CMD
return $manify;
}
-sub _has_cpan_meta {
- return eval {
- require CPAN::Meta;
- CPAN::Meta->VERSION(2.112150);
- 1;
- };
+{
+ my $has_cpan_meta;
+ sub _has_cpan_meta {
+ return $has_cpan_meta if defined $has_cpan_meta;
+ return $has_cpan_meta = !!eval {
+ require CPAN::Meta;
+ CPAN::Meta->VERSION(2.112150);
+ 1;
+ };
+ }
}
=head3 metafile_target
@@ -966,34 +1122,18 @@ metafile :
$(NOECHO) $(NOOP)
MAKE_FRAG
- my %metadata = $self->metafile_data(
+ my $metadata = $self->metafile_data(
$self->{META_ADD} || {},
$self->{META_MERGE} || {},
);
- _fix_metadata_before_conversion( \%metadata );
-
- # paper over validation issues, but still complain, necessary because
- # there's no guarantee that the above will fix ALL errors
- my $meta = eval { CPAN::Meta->create( \%metadata, { lazy_validation => 1 } ) };
- warn $@ if $@ and
- $@ !~ /encountered CODE.*, but JSON can only represent references to arrays or hashes/;
+ my $meta = $self->_fix_metadata_before_conversion( $metadata );
- # use the original metadata straight if the conversion failed
- # or if it can't be stringified.
- if( !$meta ||
- !eval { $meta->as_string( { version => "1.4" } ) } ||
- !eval { $meta->as_string }
- )
- {
- $meta = bless \%metadata, 'CPAN::Meta';
- }
-
- my @write_metayml = $self->echo(
+ my @write_metayml = $self->stashmeta(
$meta->as_string({version => "1.4"}), 'META_new.yml'
);
- my @write_metajson = $self->echo(
- $meta->as_string(), 'META_new.json'
+ my @write_metajson = $self->stashmeta(
+ $meta->as_string({version => "2.0"}), 'META_new.json'
);
my $metayml = join("\n\t", @write_metayml);
@@ -1014,7 +1154,7 @@ MAKE_FRAG
=head3 _fix_metadata_before_conversion
- _fix_metadata_before_conversion( \%metadata );
+ $mm->_fix_metadata_before_conversion( \%metadata );
Fixes errors in the metadata before it's handed off to CPAN::Meta for
conversion. This hopefully results in something that can be used further
@@ -1025,7 +1165,7 @@ on, no guarantee is made though.
=cut
sub _fix_metadata_before_conversion {
- my ( $metadata ) = @_;
+ my ( $self, $metadata ) = @_;
# we should never be called unless this already passed but
# prefer to be defensive in case somebody else calls this
@@ -1034,18 +1174,24 @@ sub _fix_metadata_before_conversion {
my $bad_version = $metadata->{version} &&
!CPAN::Meta::Validator->new->version( 'version', $metadata->{version} );
-
# just delete all invalid versions
if( $bad_version ) {
warn "Can't parse version '$metadata->{version}'\n";
$metadata->{version} = '';
}
- my $validator = CPAN::Meta::Validator->new( $metadata );
- return if $validator->is_valid;
-
+ my $validator2 = CPAN::Meta::Validator->new( $metadata );
+ my @errors;
+ push @errors, $validator2->errors if !$validator2->is_valid;
+ my $validator14 = CPAN::Meta::Validator->new(
+ {
+ %$metadata,
+ 'meta-spec' => { version => 1.4 },
+ }
+ );
+ push @errors, $validator14->errors if !$validator14->is_valid;
# fix non-camelcase custom resource keys (only other trick we know)
- for my $error ( $validator->errors ) {
+ for my $error ( @errors ) {
my ( $key ) = ( $error =~ /Custom resource '(.*)' must be in CamelCase./ );
next if !$key;
@@ -1053,17 +1199,39 @@ sub _fix_metadata_before_conversion {
( my $new_key = $key ) =~ s/[^_a-zA-Z]//g;
# if that doesn't work, uppercase first one
- $new_key = ucfirst $new_key if !$validator->custom_1( $new_key );
+ $new_key = ucfirst $new_key if !$validator14->custom_1( $new_key );
# copy to new key if that worked
$metadata->{resources}{$new_key} = $metadata->{resources}{$key}
- if $validator->custom_1( $new_key );
+ if $validator14->custom_1( $new_key );
# and delete old one in any case
delete $metadata->{resources}{$key};
}
- return;
+ # paper over validation issues, but still complain, necessary because
+ # there's no guarantee that the above will fix ALL errors
+ my $meta = eval { CPAN::Meta->create( $metadata, { lazy_validation => 1 } ) };
+ warn $@ if $@ and
+ $@ !~ /encountered CODE.*, but JSON can only represent references to arrays or hashes/;
+
+ # use the original metadata straight if the conversion failed
+ # or if it can't be stringified.
+ if( !$meta ||
+ !eval { $meta->as_string( { version => $METASPEC_V } ) } ||
+ !eval { $meta->as_string }
+ ) {
+ $meta = bless $metadata, 'CPAN::Meta';
+ }
+
+ my $now_license = $meta->as_struct({ version => 2 })->{license};
+ if ($self->{LICENSE} and $self->{LICENSE} ne 'unknown' and
+ @{$now_license} == 1 and $now_license->[0] eq 'unknown'
+ ) {
+ warn "Invalid LICENSE value '$self->{LICENSE}' ignored\n";
+ }
+
+ $meta;
}
@@ -1104,10 +1272,10 @@ sub _hash_merge {
=head3 metafile_data
- my @metadata_pairs = $mm->metafile_data(\%meta_add, \%meta_merge);
+ my $metadata_hashref = $mm->metafile_data(\%meta_add, \%meta_merge);
Returns the data which MakeMaker turns into the META.yml file
-and the META.json file.
+and the META.json file. It is always in version 2.0 of the format.
Values of %meta_add will overwrite any existing metadata in those
keys. %meta_merge will be merged with them.
@@ -1118,48 +1286,59 @@ sub metafile_data {
my $self = shift;
my($meta_add, $meta_merge) = @_;
+ $meta_add ||= {};
+ $meta_merge ||= {};
+
+ my $version = _normalize_version($self->{VERSION});
+ my $release_status = ($version =~ /_/) ? 'unstable' : 'stable';
my %meta = (
# required
- name => $self->{DISTNAME},
- version => _normalize_version($self->{VERSION}),
abstract => $self->{ABSTRACT} || 'unknown',
- license => $self->{LICENSE} || 'unknown',
+ author => defined($self->{AUTHOR}) ? $self->{AUTHOR} : ['unknown'],
dynamic_config => 1,
-
- # optional
- distribution_type => $self->{PM} ? 'module' : 'script',
-
- no_index => {
- directory => [qw(t inc)]
- },
-
generated_by => "ExtUtils::MakeMaker version $ExtUtils::MakeMaker::VERSION",
+ license => [ $self->{LICENSE} || 'unknown' ],
'meta-spec' => {
- url => 'http://module-build.sourceforge.net/META-spec-v1.4.html',
- version => 1.4
+ url => $METASPEC_URL,
+ version => $METASPEC_V,
},
+ name => $self->{DISTNAME},
+ release_status => $release_status,
+ version => $version,
+
+ # optional
+ no_index => { directory => [qw(t inc)] },
);
+ $self->_add_requirements_to_meta(\%meta);
- # The author key is required and it takes a list.
- $meta{author} = defined $self->{AUTHOR} ? $self->{AUTHOR} : [];
+ if (!eval { require JSON::PP; require CPAN::Meta::Converter; CPAN::Meta::Converter->VERSION(2.141170) }) {
+ return \%meta;
+ }
- {
- my $vers = _metaspec_version( $meta_add, $meta_merge );
- my $method = $vers =~ m!^2!
- ? '_add_requirements_to_meta_v2'
- : '_add_requirements_to_meta_v1_4';
- %meta = $self->$method( %meta );
+ # needs to be based on the original version
+ my $v1_add = _metaspec_version($meta_add) !~ /^2/;
+
+ for my $frag ($meta_add, $meta_merge) {
+ $frag = CPAN::Meta::Converter->new($frag, default_version => "1.4")->upgrade_fragment;
}
+ # if we upgraded a 1.x _ADD fragment, we gave it a prereqs key that
+ # will override all prereqs, which is more than the user asked for;
+ # instead, we'll go inside the prereqs and override all those
while( my($key, $val) = each %$meta_add ) {
- $meta{$key} = $val;
+ if ($v1_add and $key eq 'prereqs') {
+ $meta{$key}{$_} = $val->{$_} for keys %$val;
+ } elsif ($key ne 'meta-spec') {
+ $meta{$key} = $val;
+ }
}
while( my($key, $val) = each %$meta_merge ) {
+ next if $key eq 'meta-spec';
$self->_hash_merge(\%meta, $key, $val);
}
- return %meta;
+ return \%meta;
}
@@ -1167,84 +1346,61 @@ sub metafile_data {
=cut
+sub _add_requirements_to_meta {
+ my ( $self, $meta ) = @_;
+ # Check the original args so we can tell between the user setting it
+ # to an empty hash and it just being initialized.
+ $meta->{prereqs}{configure}{requires} = $self->{ARGS}{CONFIGURE_REQUIRES}
+ ? $self->{CONFIGURE_REQUIRES}
+ : { 'ExtUtils::MakeMaker' => 0, };
+ $meta->{prereqs}{build}{requires} = $self->{ARGS}{BUILD_REQUIRES}
+ ? $self->{BUILD_REQUIRES}
+ : { 'ExtUtils::MakeMaker' => 0, };
+ $meta->{prereqs}{test}{requires} = $self->{TEST_REQUIRES}
+ if $self->{ARGS}{TEST_REQUIRES};
+ $meta->{prereqs}{runtime}{requires} = $self->{PREREQ_PM}
+ if $self->{ARGS}{PREREQ_PM};
+ $meta->{prereqs}{runtime}{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION})
+ if $self->{MIN_PERL_VERSION};
+}
+
+# spec version of given fragment - if not given, assume 1.4
sub _metaspec_version {
- my ( $meta_add, $meta_merge ) = @_;
- return $meta_add->{'meta-spec'}->{version}
- if defined $meta_add->{'meta-spec'}
- and defined $meta_add->{'meta-spec'}->{version};
- return $meta_merge->{'meta-spec'}->{version}
- if defined $meta_merge->{'meta-spec'}
- and defined $meta_merge->{'meta-spec'}->{version};
+ my ( $meta ) = @_;
+ return $meta->{'meta-spec'}->{version}
+ if defined $meta->{'meta-spec'}
+ and defined $meta->{'meta-spec'}->{version};
return '1.4';
}
sub _add_requirements_to_meta_v1_4 {
- my ( $self, %meta ) = @_;
-
+ my ( $self, $meta ) = @_;
# Check the original args so we can tell between the user setting it
# to an empty hash and it just being initialized.
if( $self->{ARGS}{CONFIGURE_REQUIRES} ) {
- $meta{configure_requires} = $self->{CONFIGURE_REQUIRES};
+ $meta->{configure_requires} = $self->{CONFIGURE_REQUIRES};
} else {
- $meta{configure_requires} = {
+ $meta->{configure_requires} = {
'ExtUtils::MakeMaker' => 0,
};
}
-
if( $self->{ARGS}{BUILD_REQUIRES} ) {
- $meta{build_requires} = $self->{BUILD_REQUIRES};
+ $meta->{build_requires} = $self->{BUILD_REQUIRES};
} else {
- $meta{build_requires} = {
+ $meta->{build_requires} = {
'ExtUtils::MakeMaker' => 0,
};
}
-
if( $self->{ARGS}{TEST_REQUIRES} ) {
- $meta{build_requires} = {
- %{ $meta{build_requires} },
+ $meta->{build_requires} = {
+ %{ $meta->{build_requires} },
%{ $self->{TEST_REQUIRES} },
};
}
-
- $meta{requires} = $self->{PREREQ_PM}
+ $meta->{requires} = $self->{PREREQ_PM}
if defined $self->{PREREQ_PM};
- $meta{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION})
+ $meta->{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION})
if $self->{MIN_PERL_VERSION};
-
- return %meta;
-}
-
-sub _add_requirements_to_meta_v2 {
- my ( $self, %meta ) = @_;
-
- # Check the original args so we can tell between the user setting it
- # to an empty hash and it just being initialized.
- if( $self->{ARGS}{CONFIGURE_REQUIRES} ) {
- $meta{prereqs}{configure}{requires} = $self->{CONFIGURE_REQUIRES};
- } else {
- $meta{prereqs}{configure}{requires} = {
- 'ExtUtils::MakeMaker' => 0,
- };
- }
-
- if( $self->{ARGS}{BUILD_REQUIRES} ) {
- $meta{prereqs}{build}{requires} = $self->{BUILD_REQUIRES};
- } else {
- $meta{prereqs}{build}{requires} = {
- 'ExtUtils::MakeMaker' => 0,
- };
- }
-
- if( $self->{ARGS}{TEST_REQUIRES} ) {
- $meta{prereqs}{test}{requires} = $self->{TEST_REQUIRES};
- }
-
- $meta{prereqs}{runtime}{requires} = $self->{PREREQ_PM}
- if $self->{ARGS}{PREREQ_PM};
- $meta{prereqs}{runtime}{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION})
- if $self->{MIN_PERL_VERSION};
-
- return %meta;
}
# Adapted from Module::Build::Base
@@ -1253,7 +1409,7 @@ sub _normalize_version {
$version = 0 unless defined $version;
if ( ref $version eq 'version' ) { # version objects
- $version = $version->is_qv ? $version->normal : $version->stringify;
+ $version = $version->stringify;
}
elsif ( $version =~ /^[^v][^.]*\.[^.]+\./ ) { # no leading v, multiple dots
# normalize string tuples without "v": "1.2.3" -> "v1.2.3"
@@ -1426,12 +1582,12 @@ sub distmeta_target {
$self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd']),
exit unless -e q{META.yml};
eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) }
- or print "Could not add META.yml to MANIFEST: $${'@'}\n"
+ or die "Could not add META.yml to MANIFEST: ${'@'}"
CODE
$self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd'])
exit unless -f q{META.json};
eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) }
- or print "Could not add META.json to MANIFEST: $${'@'}\n"
+ or die "Could not add META.json to MANIFEST: ${'@'}"
CODE
);
@@ -1464,21 +1620,15 @@ sub mymeta {
my $v2 = 1;
unless ( $mymeta ) {
- my @metadata = $self->metafile_data(
+ $mymeta = $self->metafile_data(
$self->{META_ADD} || {},
$self->{META_MERGE} || {},
);
- $mymeta = {@metadata};
$v2 = 0;
}
# Overwrite the non-configure dependency hashes
-
- my $method = $v2
- ? '_add_requirements_to_meta_v2'
- : '_add_requirements_to_meta_v1_4';
-
- $mymeta = { $self->$method( %$mymeta ) };
+ $self->_add_requirements_to_meta($mymeta);
$mymeta->{dynamic_config} = 0;
@@ -1530,13 +1680,9 @@ sub write_mymeta {
return unless _has_cpan_meta();
- _fix_metadata_before_conversion( $mymeta );
+ my $meta_obj = $self->_fix_metadata_before_conversion( $mymeta );
- # this can still blow up
- # not sure if i should just eval this and skip file creation if it
- # blows up
- my $meta_obj = CPAN::Meta->new( $mymeta, { lazy_validation => 1 } );
- $meta_obj->save( 'MYMETA.json' );
+ $meta_obj->save( 'MYMETA.json', { version => "2.0" } );
$meta_obj->save( 'MYMETA.yml', { version => "1.4" } );
return 1;
}
@@ -1574,8 +1720,8 @@ sub realclean {
}
# Occasionally files are repeated several times from different sources
- { my(%f) = map { ($_ => 1) } @files; @files = keys %f; }
- { my(%d) = map { ($_ => 1) } @dirs; @dirs = keys %d; }
+ { my(%f) = map { ($_ => 1) } @files; @files = sort keys %f; }
+ { my(%d) = map { ($_ => 1) } @dirs; @dirs = sort keys %d; }
my $rm_cmd = join "\n\t", map { "$_" }
$self->split_command('- $(RM_F)', @files);
@@ -1584,7 +1730,7 @@ sub realclean {
my $m = sprintf <<'MAKE', $rm_cmd, $rmf_cmd;
# Delete temporary files (via clean) and also delete dist files
-realclean purge :: clean realclean_subdirs
+realclean purge :: realclean_subdirs
%s
%s
MAKE
@@ -1606,28 +1752,20 @@ target to call realclean on any subdirectories which contain Makefiles.
sub realclean_subdirs_target {
my $self = shift;
-
- return <<'NOOP_FRAG' unless @{$self->{DIR}};
-realclean_subdirs :
- $(NOECHO) $(NOOP)
-NOOP_FRAG
-
- my $rclean = "realclean_subdirs :\n";
-
+ my @m = <<'EOF';
+# so clean is forced to complete before realclean_subdirs runs
+realclean_subdirs : clean
+EOF
+ return join '', @m, "\t\$(NOECHO) \$(NOOP)\n" unless @{$self->{DIR}};
foreach my $dir (@{$self->{DIR}}) {
foreach my $makefile ('$(MAKEFILE_OLD)', '$(FIRST_MAKEFILE)' ) {
- my $subrclean .= $self->oneliner(sprintf <<'CODE', $dir, ($makefile) x 2);
-chdir '%s'; system '$(MAKE) $(USEMAKEFILE) %s realclean' if -f '%s';
+ my $subrclean .= $self->oneliner(_sprintf562 <<'CODE', $dir, $makefile);
+chdir '%1$s'; system '$(MAKE) $(USEMAKEFILE) %2$s realclean' if -f '%2$s';
CODE
-
- $rclean .= sprintf <<'RCLEAN', $subrclean;
- - %s
-RCLEAN
-
+ push @m, "\t- $subrclean\n";
}
}
-
- return $rclean;
+ return join '', @m;
}
@@ -1666,7 +1804,7 @@ sub distsignature_target {
my $add_sign = $self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd']);
eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) }
- or print "Could not add SIGNATURE to MANIFEST: $${'@'}\n"
+ or die "Could not add SIGNATURE to MANIFEST: ${'@'}"
CODE
my $sign_dist = $self->cd('$(DISTVNAME)' => 'cpansign -s');
@@ -1700,7 +1838,7 @@ sub special_targets {
my $make_frag = <<'MAKE_FRAG';
.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT)
-.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir
+.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static
MAKE_FRAG
@@ -2291,7 +2429,7 @@ sub init_others {
if ( $self->{OBJECT} ) {
$self->{OBJECT} = join(" ", @{$self->{OBJECT}}) if ref $self->{OBJECT};
$self->{OBJECT} =~ s!\.o(bj)?\b!\$(OBJ_EXT)!g;
- } elsif ( $self->{MAGICXS} && @{$self->{O_FILES}||[]} ) {
+ } elsif ( ($self->{MAGICXS} || $self->{XSMULTI}) && @{$self->{O_FILES}||[]} ) {
$self->{OBJECT} = join(" ", @{$self->{O_FILES}});
$self->{OBJECT} =~ s!\.o(bj)?\b!\$(OBJ_EXT)!g;
} else {
@@ -2659,38 +2797,50 @@ sub find_tests {
my $tests = $mm->find_tests_recursive;
Returns a string suitable for feeding to the shell to return all
-tests in t/ but recursively.
+tests in t/ but recursively. Equivalent to
+
+ my $tests = $mm->find_tests_recursive_in('t');
=cut
sub find_tests_recursive {
- my($self) = shift;
- return '' unless -d 't';
+ my $self = shift;
+ return $self->find_tests_recursive_in('t');
+}
+
+=head3 find_tests_recursive_in
+
+ my $tests = $mm->find_tests_recursive_in($dir);
+
+Returns a string suitable for feeding to the shell to return all
+tests in $dir recursively.
+
+=cut
+
+sub find_tests_recursive_in {
+ my($self, $dir) = @_;
+ return '' unless -d $dir;
require File::Find;
- my %testfiles;
+ my $base_depth = grep { $_ ne '' } File::Spec->splitdir( (File::Spec->splitpath($dir))[1] );
+ my %depths;
my $wanted = sub {
return unless m!\.t$!;
my ($volume,$directories,$file) =
File::Spec->splitpath( $File::Find::name );
- my @dirs = File::Spec->splitdir( $directories );
- for ( @dirs ) {
- next if $_ eq 't';
- unless ( $_ ) {
- $_ = '*.t';
- next;
- }
- $_ = '*';
- }
- my $testfile = join '/', @dirs;
- $testfiles{ $testfile } = 1;
+ my $depth = grep { $_ ne '' } File::Spec->splitdir( $directories );
+ $depth -= $base_depth;
+ $depths{ $depth } = 1;
};
- File::Find::find( $wanted, 't' );
+ File::Find::find( $wanted, $dir );
- return join ' ', sort keys %testfiles;
+ return join ' ',
+ map { $dir . '/*' x $_ . '.t' }
+ sort { $a <=> $b }
+ keys %depths;
}
=head3 extra_clean_files
@@ -2764,6 +2914,39 @@ sub platform_constants {
return '';
}
+=head3 post_constants (o)
+
+Returns an empty string per default. Dedicated to overrides from
+within Makefile.PL after all constants have been defined.
+
+=cut
+
+sub post_constants {
+ "";
+}
+
+=head3 post_initialize (o)
+
+Returns an empty string per default. Used in Makefile.PLs to add some
+chunk of text to the Makefile after the object is initialized.
+
+=cut
+
+sub post_initialize {
+ "";
+}
+
+=head3 postamble (o)
+
+Returns an empty string. Can be used in Makefile.PLs to write some
+text to the Makefile at the end.
+
+=cut
+
+sub postamble {
+ "";
+}
+
=begin private
=head3 _PREREQ_PRINT
@@ -2799,7 +2982,7 @@ sub _PREREQ_PRINT {
Implements PRINT_PREREQ, a slightly different version of PREREQ_PRINT
added by Redhat to, I think, support generating RPMs from Perl modules.
-Should not include BUILD_REQUIRES as RPMs do not incluide them.
+Should not include BUILD_REQUIRES as RPMs do not include them.
Refactored out of MakeMaker->new().
@@ -2825,24 +3008,6 @@ sub _PRINT_PREREQ {
=begin private
-=head3 _all_prereqs
-
- my $prereqs = $self->_all_prereqs;
-
-Returns a hash ref of both PREREQ_PM and BUILD_REQUIRES.
-
-=end private
-
-=cut
-
-sub _all_prereqs {
- my $self = shift;
-
- return { %{$self->{PREREQ_PM}}, %{$self->{BUILD_REQUIRES}} };
-}
-
-=begin private
-
=head3 _perl_header_files
my $perl_header_files= $self->_perl_header_files;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
index 3015f2dd655..9ede7971464 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_BeOS.pm
@@ -26,7 +26,8 @@ require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
=item os_flavor
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
index 659d430ffde..e180a44530e 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Cygwin.pm
@@ -9,7 +9,8 @@ require ExtUtils::MM_Unix;
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
=head1 NAME
@@ -86,7 +87,7 @@ sub init_linker {
if ($Config{useshrplib} eq 'true') {
my $libperl = '$(PERL_INC)' .'/'. "$Config{libperl}";
if( $] >= 5.006002 ) {
- $libperl =~ s/a$/dll.a/;
+ $libperl =~ s/(dll\.)?a$/dll.a/;
}
$self->{PERL_ARCHIVE} = $libperl;
} else {
@@ -129,16 +130,31 @@ But for new archdir dll's use the same rebase address if the old exists.
sub dynamic_lib {
my($self, %attribs) = @_;
my $s = ExtUtils::MM_Unix::dynamic_lib($self, %attribs);
- my $ori = "$self->{INSTALLARCHLIB}/auto/$self->{FULLEXT}/$self->{BASEEXT}.$self->{DLEXT}";
- if (-e $ori) {
- my $imagebase = `/bin/objdump -p $ori | /bin/grep ImageBase | /bin/cut -c12-`;
- chomp $imagebase;
- if ($imagebase gt "40000000") {
- my $LDDLFLAGS = $self->{LDDLFLAGS};
- $LDDLFLAGS =~ s/-Wl,--enable-auto-image-base/-Wl,--image-base=0x$imagebase/;
- $s =~ s/ \$\(LDDLFLAGS\) / $LDDLFLAGS /m;
- }
- }
+ return '' unless $s;
+ return $s unless %{$self->{XS}};
+
+ # do an ephemeral rebase so the new DLL fits to the current rebase map
+ $s .= "\t/bin/find \$\(INST_ARCHLIB\)/auto -xdev -name \\*.$self->{DLEXT} | /bin/rebase -sOT -" if (( $Config{myarchname} eq 'i686-cygwin' ) and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} ));
+ $s;
+}
+
+=item install
+
+Rebase dll's with the global rebase database after installation.
+
+=cut
+
+sub install {
+ my($self, %attribs) = @_;
+ my $s = ExtUtils::MM_Unix::install($self, %attribs);
+ return '' unless $s;
+ return $s unless %{$self->{XS}};
+
+ my $INSTALLDIRS = $self->{INSTALLDIRS};
+ my $INSTALLLIB = $self->{"INSTALL". ($INSTALLDIRS eq 'perl' ? 'ARCHLIB' : uc($INSTALLDIRS)."ARCH")};
+ my $dop = "\$\(DESTDIR\)$INSTALLLIB/auto/";
+ my $dll = "$dop/$self->{FULLEXT}/$self->{BASEEXT}.$self->{DLEXT}";
+ $s =~ s|^(pure_install :: pure_\$\(INSTALLDIRS\)_install\n\t)\$\(NOECHO\) \$\(NOOP\)\n|$1\$(CHMOD) \$(PERM_RWX) $dll\n\t/bin/find $dop -xdev -name \\*.$self->{DLEXT} \| /bin/rebase -sOT -\n|m if (( $Config{myarchname} eq 'i686-cygwin') and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} ));
$s;
}
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
index e89c632cb1a..a453278b2fd 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_DOS.pm
@@ -2,7 +2,8 @@ package ExtUtils::MM_DOS;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
index b6e7c5b86ce..03dfe27376c 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Darwin.pm
@@ -7,7 +7,8 @@ BEGIN {
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
index 7323bf12551..8207502f71a 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_MacOS.pm
@@ -2,7 +2,8 @@ package ExtUtils::MM_MacOS;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
sub new {
die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker';
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
index 967b5d4c8d6..6ec9b7cb8ff 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_NW5.pm
@@ -22,17 +22,18 @@ use strict;
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
-use ExtUtils::MakeMaker qw( &neatvalue );
+use ExtUtils::MakeMaker qw(&neatvalue &_sprintf562);
$ENV{EMXSHELL} = 'sh'; # to run `commands`
-my $BORLAND = $Config{'cc'} =~ /^bcc/i;
-my $GCC = $Config{'cc'} =~ /^gcc/i;
+my $BORLAND = $Config{'cc'} =~ /\bbcc/i;
+my $GCC = $Config{'cc'} =~ /\bgcc/i;
=item os_flavor
@@ -122,148 +123,78 @@ sub platform_constants {
return $make_frag;
}
+=item static_lib_pure_cmd
-=item const_cccmd
+Defines how to run the archive utility
=cut
-sub const_cccmd {
- my($self,$libperl)=@_;
- return $self->{CONST_CCCMD} if $self->{CONST_CCCMD};
- return '' unless $self->needs_linking();
- return $self->{CONST_CCCMD} = <<'MAKE_FRAG';
-CCCMD = $(CC) $(CCFLAGS) $(INC) $(OPTIMIZE) \
- $(PERLTYPE) $(MPOLLUTE) -o $@ \
- -DVERSION=\"$(VERSION)\" -DXS_VERSION=\"$(XS_VERSION)\"
-MAKE_FRAG
-
-}
-
-
-=item static_lib
-
-=cut
-
-sub static_lib {
- my($self) = @_;
-
- return '' unless $self->has_link_code;
-
- my $m = <<'END';
-$(INST_STATIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(RM_RF) $@
-END
-
- # If this extension has it's own library (eg SDBM_File)
- # then copy that to $(INST_STATIC) and add $(OBJECT) into it.
- $m .= <<'END' if $self->{MYEXTLIB};
- $self->{CP} $(MYEXTLIB) $@
-END
-
- my $ar_arg;
- if( $BORLAND ) {
- $ar_arg = '$@ $(OBJECT:^"+")';
- }
- elsif( $GCC ) {
- $ar_arg = '-ru $@ $(OBJECT)';
- }
- else {
- $ar_arg = '-type library -o $@ $(OBJECT)';
- }
-
- $m .= sprintf <<'END', $ar_arg;
- $(AR) %s
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)\extralibs.ld
- $(CHMOD) 755 $@
-END
-
- $m .= <<'END' if $self->{PERL_SRC};
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)\ext.libs
-
-
-END
- return $m;
+sub static_lib_pure_cmd {
+ my ($self, $src) = @_;
+ $src =~ s/(\$\(\w+)(\))/$1:^"+"$2/g if $BORLAND;
+ sprintf qq{\t\$(AR) %s\n}, ($BORLAND ? '$@ ' . $src
+ : ($GCC ? '-ru $@ ' . $src
+ : '-type library -o $@ ' . $src));
}
=item dynamic_lib
-Defines how to produce the *.so (or equivalent) files.
+Override of utility methods for OS-specific work.
=cut
-sub dynamic_lib {
- my($self, %attribs) = @_;
- return '' unless $self->needs_linking(); #might be because of a subdir
-
- return '' unless $self->has_link_code;
-
- my($otherldflags) = $attribs{OTHERLDFLAGS} || ($BORLAND ? 'c0d32.obj': '');
- my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
- my($ldfrom) = '$(LDFROM)';
-
- (my $boot = $self->{NAME}) =~ s/:/_/g;
-
- my $m = <<'MAKE_FRAG';
-# This section creates the dynamically loadable $(INST_DYNAMIC)
-# from $(OBJECT) and possibly $(MYEXTLIB).
-OTHERLDFLAGS = '.$otherldflags.'
-INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
-
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_;
+ my @m;
+ # Taking care of long names like FileHandle, ByteLoader, SDBM_File etc
+ if ($to =~ /^\$/) {
+ if ($self->{NLM_SHORT_NAME}) {
+ # deal with shortnames
+ my $newto = q{$(INST_AUTODIR)\\$(NLM_SHORT_NAME).$(DLEXT)};
+ push @m, "$to: $newto\n\n";
+ $to = $newto;
+ }
+ } else {
+ my ($v, $d, $f) = File::Spec->splitpath($to);
+ # relies on $f having a literal "." in it, unlike for $(OBJ_EXT)
+ if ($f =~ /[^\.]{9}\./) {
+ # 9+ chars before '.', need to shorten
+ $f = substr $f, 0, 8;
+ }
+ my $newto = File::Spec->catpath($v, $d, $f);
+ push @m, "$to: $newto\n\n";
+ $to = $newto;
+ }
+ # bits below should be in dlsyms, not here
+ # 1 2 3 4
+ push @m, _sprintf562 <<'MAKE_FRAG', $to, $from, $todir, $exportlist;
# Create xdc data for an MT safe NLM in case of mpk build
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(NOECHO) $(ECHO) Export boot_$(BOOT_SYMBOL) > $(BASEEXT).def
- $(NOECHO) $(ECHO) $(BASE_IMPORT) >> $(BASEEXT).def
- $(NOECHO) $(ECHO) Import @$(PERL_INC)\perl.imp >> $(BASEEXT).def
+%1$s: %2$s $(MYEXTLIB) $(BOOTSTRAP) %3$s$(DFSEP).exists
+ $(NOECHO) $(ECHO) Export boot_$(BOOT_SYMBOL) > %4$s
+ $(NOECHO) $(ECHO) $(BASE_IMPORT) >> %4$s
+ $(NOECHO) $(ECHO) Import @$(PERL_INC)\perl.imp >> %4$s
MAKE_FRAG
-
-
if ( $self->{CCFLAGS} =~ m/ -DMPK_ON /) {
- $m .= <<'MAKE_FRAG';
- $(MPKTOOL) $(XDCFLAGS) $(BASEEXT).xdc
- $(NOECHO) $(ECHO) xdcdata $(BASEEXT).xdc >> $(BASEEXT).def
+ (my $xdc = $exportlist) =~ s#def\z#xdc#;
+ $xdc = '$(BASEEXT).xdc';
+ push @m, sprintf <<'MAKE_FRAG', $xdc, $exportlist;
+ $(MPKTOOL) $(XDCFLAGS) %s
+ $(NOECHO) $(ECHO) xdcdata $(BASEEXT).xdc >> %s
MAKE_FRAG
}
-
# Reconstruct the X.Y.Z version.
my $version = join '.', map { sprintf "%d", $_ }
$] =~ /(\d)\.(\d{3})(\d{2})/;
- $m .= sprintf ' $(LD) $(LDFLAGS) $(OBJECT:.obj=.obj) -desc "Perl %s Extension ($(BASEEXT)) XS_VERSION: $(XS_VERSION)" -nlmversion $(NLM_VERSION)', $version;
-
- # Taking care of long names like FileHandle, ByteLoader, SDBM_File etc
- if($self->{NLM_SHORT_NAME}) {
- # In case of nlms with names exceeding 8 chars, build nlm in the
- # current dir, rename and move to auto\lib.
- $m .= q{ -o $(NLM_SHORT_NAME).$(DLEXT)}
- } else {
- $m .= q{ -o $(INST_AUTODIR)\\$(BASEEXT).$(DLEXT)}
- }
-
- # Add additional lib files if any (SDBM_File)
- $m .= q{ $(MYEXTLIB) } if $self->{MYEXTLIB};
-
- $m .= q{ $(PERL_INC)\Main.lib -commandfile $(BASEEXT).def}."\n";
-
- if($self->{NLM_SHORT_NAME}) {
- $m .= <<'MAKE_FRAG';
- if exist $(INST_AUTODIR)\$(NLM_SHORT_NAME).$(DLEXT) del $(INST_AUTODIR)\$(NLM_SHORT_NAME).$(DLEXT)
- move $(NLM_SHORT_NAME).$(DLEXT) $(INST_AUTODIR)
-MAKE_FRAG
- }
-
- $m .= <<'MAKE_FRAG';
-
+ push @m, sprintf <<'EOF', $from, $version, $to, $exportlist;
+ $(LD) $(LDFLAGS) %s -desc "Perl %s Extension ($(BASEEXT)) XS_VERSION: $(XS_VERSION)" -nlmversion $(NLM_VERSION) -o %s $(MYEXTLIB) $(PERL_INC)\Main.lib -commandfile %s
$(CHMOD) 755 $@
-MAKE_FRAG
-
- return $m;
+EOF
+ join '', @m;
}
-
1;
__END__
=back
=cut
-
-
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
index 598087ca19f..f23ec5a2a6c 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_OS2.pm
@@ -5,7 +5,8 @@ use strict;
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@@ -49,33 +50,12 @@ MAKE_TEXT
sub dlsyms {
my($self,%attribs) = @_;
-
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || [];
- my($imports) = $attribs{IMPORTS} || $self->{IMPORTS} || {};
- my(@m);
- (my $boot = $self->{NAME}) =~ s/:/_/g;
-
- if (not $self->{SKIPHASH}{'dynamic'}) {
- push(@m,"
-$self->{BASEEXT}.def: Makefile.PL
-",
- ' $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e \'use ExtUtils::Mksymlists; \\
- Mksymlists("NAME" => "$(NAME)", "DLBASE" => "$(DLBASE)", ',
- '"VERSION" => "$(VERSION)", "DISTNAME" => "$(DISTNAME)", ',
- '"INSTALLDIRS" => "$(INSTALLDIRS)", ',
- '"DL_FUNCS" => ',neatvalue($funcs),
- ', "FUNCLIST" => ',neatvalue($funclist),
- ', "IMPORTS" => ',neatvalue($imports),
- ', "DL_VARS" => ', neatvalue($vars), ');\'
-');
- }
if ($self->{IMPORTS} && %{$self->{IMPORTS}}) {
# Make import files (needed for static build)
-d 'tmp_imp' or mkdir 'tmp_imp', 0777 or die "Can't mkdir tmp_imp";
open my $imp, '>', 'tmpimp.imp' or die "Can't open tmpimp.imp";
- while (my($name, $exp) = each %{$self->{IMPORTS}}) {
+ foreach my $name (sort keys %{$self->{IMPORTS}}) {
+ my $exp = $self->{IMPORTS}->{$name};
my ($lib, $id) = ($exp =~ /(.*)\.(.*)/) or die "Malformed IMPORT `$exp'";
print $imp "$name $lib $id ?\n";
}
@@ -88,21 +68,26 @@ $self->{BASEEXT}.def: Makefile.PL
system "cd tmp_imp; $Config::Config{ar} x ../tmpimp$Config::Config{lib_ext}"
and die "Cannot extract import objects: $!, \$?=$?";
}
- join('',@m);
+ return '' if $self->{SKIPHASH}{'dynamic'};
+ $self->xs_dlsyms_iterator(\%attribs);
}
-sub static_lib {
- my($self) = @_;
- my $old = $self->ExtUtils::MM_Unix::static_lib();
- return $old unless $self->{IMPORTS} && %{$self->{IMPORTS}};
+sub xs_dlsyms_ext {
+ '.def';
+}
- my @chunks = split /\n{2,}/, $old;
- shift @chunks unless length $chunks[0]; # Empty lines at the start
- $chunks[0] .= <<'EOC';
+sub xs_dlsyms_extra {
+ join '', map { qq{, "$_" => "\$($_)"} } qw(VERSION DISTNAME INSTALLDIRS);
+}
- $(AR) $(AR_STATIC_ARGS) $@ tmp_imp/* && $(RANLIB) $@
+sub static_lib_pure_cmd {
+ my($self) = @_;
+ my $old = $self->SUPER::static_lib_pure_cmd;
+ return $old unless $self->{IMPORTS} && %{$self->{IMPORTS}};
+ $old . <<'EOC';
+ $(AR) $(AR_STATIC_ARGS) "$@" tmp_imp/*
+ $(RANLIB) "$@"
EOC
- return join "\n\n". '', @chunks;
}
sub replace_manpage_separator {
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
index 1bdc6e0f97f..6475983eb86 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_QNX.pm
@@ -1,7 +1,8 @@
package ExtUtils::MM_QNX;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
index 6d85d944df4..e7e65ef2ade 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_UWIN.pm
@@ -1,7 +1,8 @@
package ExtUtils::MM_UWIN;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
index 009b18ee085..66a24d7838b 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Unix.pm
@@ -7,15 +7,14 @@ use strict;
use Carp;
use ExtUtils::MakeMaker::Config;
use File::Basename qw(basename dirname);
-use DirHandle;
our %Config_Override;
-use ExtUtils::MakeMaker qw($Verbose neatvalue);
+use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
# If we make $VERSION an our variable parse_version() breaks
use vars qw($VERSION);
-$VERSION = '7.10_02';
+$VERSION = '7.24';
$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
require ExtUtils::MM_Any;
@@ -98,7 +97,6 @@ something that used to be in here, look in MM_Any.
# So we don't have to keep calling the methods over and over again,
# we have these globals to cache the values. Faster and shrtr.
my $Curdir = __PACKAGE__->curdir;
-my $Rootdir = __PACKAGE__->rootdir;
my $Updir = __PACKAGE__->updir;
@@ -143,31 +141,36 @@ sub c_o {
};
}
- push @m, qq{
-.c.s:
- $command -S $flags \$*.c
+ my $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*.s') : '';
+ push @m, sprintf <<'EOF', $command, $flags, $m_o;
-.c\$(OBJ_EXT):
- $command $flags \$*.c
+.c.s :
+ %s -S %s $*.c %s
+EOF
-.cpp\$(OBJ_EXT):
- $command $flags \$*.cpp
+ my @exts = qw(c cpp cxx cc);
+ push @exts, 'C' if !$Is{OS2} and !$Is{Win32} and !$Is{Dos}; #Case-specific
+ $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : '';
+ for my $ext (@exts) {
+ push @m, "\n.$ext\$(OBJ_EXT) :\n\t$command $flags \$*.$ext" . ( $m_o ? " $m_o" : '' ) . "\n";
+ }
+ return join "", @m;
+}
-.cxx\$(OBJ_EXT):
- $command $flags \$*.cxx
-.cc\$(OBJ_EXT):
- $command $flags \$*.cc
-};
+=item xs_obj_opt
- push @m, qq{
-.C\$(OBJ_EXT):
- $command $flags \$*.C
-} if !$Is{OS2} and !$Is{Win32} and !$Is{Dos}; #Case-specific
+Takes the object file as an argument, and returns the portion of compile
+command-line that will output to the specified object file.
- return join "", @m;
+=cut
+
+sub xs_obj_opt {
+ my ($self, $output_file) = @_;
+ "-o $output_file";
}
+
=item cflags (o)
Does very much the same as the cflags script in the perl
@@ -284,9 +287,6 @@ sub cflags {
$pollute = '$(PERL_MALLOC_DEF)';
}
- $self->{CCFLAGS} = quote_paren($self->{CCFLAGS});
- $self->{OPTIMIZE} = quote_paren($self->{OPTIMIZE});
-
return $self->{CFLAGS} = qq{
CCFLAGS = $self->{CCFLAGS}
OPTIMIZE = $self->{OPTIMIZE}
@@ -337,7 +337,6 @@ END
foreach my $key (@{$self->{CONFIG}}){
# SITE*EXP macros are defined in &constants; avoid duplicates here
next if $once_only{$key};
- $self->{uc $key} = quote_paren($self->{uc $key});
push @m, uc($key) , ' = ' , $self->{uc $key}, "\n";
$once_only{$key} = 1;
}
@@ -455,9 +454,9 @@ MM_REVISION = $self->{MM_REVISION}
push @m, "
# Handy lists of source code files:
XS_FILES = ".$self->wraplist(sort keys %{$self->{XS}})."
-C_FILES = ".$self->wraplist(@{$self->{C}})."
-O_FILES = ".$self->wraplist(@{$self->{O_FILES}})."
-H_FILES = ".$self->wraplist(@{$self->{H}})."
+C_FILES = ".$self->wraplist(sort @{$self->{C}})."
+O_FILES = ".$self->wraplist(sort @{$self->{O_FILES}})."
+H_FILES = ".$self->wraplist(sort @{$self->{H}})."
MAN1PODS = ".$self->wraplist(sort keys %{$self->{MAN1PODS}})."
MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})."
";
@@ -466,7 +465,7 @@ MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})."
push @m, q{
# Where is the Config information that we are using/depend on
CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h
-} if -e File::Spec->catfile( $self->{PERL_INC}, 'config.h' );
+} if -e $self->catfile( $self->{PERL_INC}, 'config.h' );
push @m, qq{
@@ -492,10 +491,7 @@ PERL_ARCHIVE_AFTER = $self->{PERL_ARCHIVE_AFTER}
push @m, "
-TO_INST_PM = ".$self->wraplist(sort keys %{$self->{PM}})."
-
-PM_TO_BLIB = ".$self->wraplist(map { ($_ => $self->{PM}->{$_}) } sort keys %{$self->{PM}})."
-";
+TO_INST_PM = ".$self->wraplist(map $self->quote_dep($_), sort keys %{$self->{PM}})."\n";
join('',@m);
}
@@ -510,8 +506,9 @@ Same as macro for the depend attribute.
sub depend {
my($self,%attribs) = @_;
my(@m,$key,$val);
- while (($key,$val) = each %attribs){
- last unless defined $key;
+ for my $key (sort keys %attribs){
+ my $val = $attribs{$key};
+ next unless defined $key and defined $val;
push @m, "$key : $val\n";
}
join "", @m;
@@ -883,25 +880,43 @@ Defines targets for bootstrap files.
sub dynamic_bs {
my($self, %attribs) = @_;
- return '
-BOOTSTRAP =
-' unless $self->has_link_code();
-
- my $target = $Is{VMS} ? '$(MMS$TARGET)' : '$@';
-
- return sprintf <<'MAKE_FRAG', ($target) x 2;
-BOOTSTRAP = $(BASEEXT).bs
-
+ return "\nBOOTSTRAP =\n" unless $self->has_link_code();
+ my @exts;
+ if ($self->{XSMULTI}) {
+ @exts = $self->_xs_list_basenames;
+ } else {
+ @exts = '$(BASEEXT)';
+ }
+ return join "\n",
+ "BOOTSTRAP = @{[map { qq{$_.bs} } @exts]}\n",
+ map { $self->_xs_make_bs($_) } @exts;
+}
+
+sub _xs_make_bs {
+ my ($self, $basename) = @_;
+ my ($v, $d, $f) = File::Spec->splitpath($basename);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $self->{XSMULTI} and $d[0] eq 'lib';
+ my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+ $instdir = '$(INST_ARCHAUTODIR)' if $basename eq '$(BASEEXT)';
+ my $instfile = $self->catfile($instdir, "$f.bs");
+ my $exists = "$instdir\$(DFSEP).exists"; # match blibdirs_target
+ # 1 2 3
+ return _sprintf562 <<'MAKE_FRAG', $basename, $instfile, $exists;
# As Mkbootstrap might not write a file (if none is required)
# we use touch to prevent make continually trying to remake it.
# The DynaLoader only reads a non-empty file.
-$(BOOTSTRAP) : $(FIRST_MAKEFILE) $(BOOTDEP) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(NOECHO) $(ECHO) "Running Mkbootstrap for $(NAME) ($(BSLOADLIBS))"
+%1$s.bs : $(FIRST_MAKEFILE) $(BOOTDEP)
+ $(NOECHO) $(ECHO) "Running Mkbootstrap for %1$s ($(BSLOADLIBS))"
$(NOECHO) $(PERLRUN) \
"-MExtUtils::Mkbootstrap" \
- -e "Mkbootstrap('$(BASEEXT)','$(BSLOADLIBS)');"
- $(NOECHO) $(TOUCH) "%s"
- $(CHMOD) $(PERM_RW) "%s"
+ -e "Mkbootstrap('%1$s','$(BSLOADLIBS)');"
+ $(NOECHO) $(TOUCH) "%1$s.bs"
+ $(CHMOD) $(PERM_RW) "%1$s.bs"
+
+%2$s : %1$s.bs %3$s
+ $(NOECHO) $(RM_RF) %2$s
+ - $(CP_NONEMPTY) %1$s.bs %2$s $(PERM_RW)
MAKE_FRAG
}
@@ -914,31 +929,84 @@ Defines how to produce the *.so (or equivalent) files.
sub dynamic_lib {
my($self, %attribs) = @_;
return '' unless $self->needs_linking(); #might be because of a subdir
-
return '' unless $self->has_link_code;
+ my @m = $self->xs_dynamic_lib_macros(\%attribs);
+ my @libs;
+ if ($self->{XSMULTI}) {
+ my @exts = $self->_xs_list_basenames;
+ for my $ext (@exts) {
+ my ($v, $d, $f) = File::Spec->splitpath($ext);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $d[0] eq 'lib';
+ my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+
+ # Dynamic library names may need special handling.
+ eval { require DynaLoader };
+ if (defined &DynaLoader::mod2fname) {
+ $f = &DynaLoader::mod2fname([@d, $f]);
+ }
- my($otherldflags) = $attribs{OTHERLDFLAGS} || "";
- my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
- my($armaybe) = $attribs{ARMAYBE} || $self->{ARMAYBE} || ":";
- my($ldfrom) = '$(LDFROM)';
- $armaybe = 'ar' if ($Is{OSF} and $armaybe eq ':');
- my(@m);
- my $ld_opt = $Is{OS2} ? '$(OPTIMIZE) ' : ''; # Useful on other systems too?
+ my $instfile = $self->catfile($instdir, "$f.\$(DLEXT)");
+ my $objfile = $self->_xsbuild_value('xs', $ext, 'OBJECT');
+ $objfile = "$ext\$(OBJ_EXT)" unless defined $objfile;
+ my $ldfrom = $self->_xsbuild_value('xs', $ext, 'LDFROM');
+ $ldfrom = $objfile unless defined $ldfrom;
+ my $exportlist = "$ext.def";
+ push @libs, [ $objfile, $instfile, $instdir, $ldfrom, $exportlist ];
+ }
+ } else {
+ @libs = ([ qw($(OBJECT) $(INST_DYNAMIC) $(INST_ARCHAUTODIR) $(LDFROM) $(EXPORT_LIST)) ]);
+ }
+ push @m, map { $self->xs_make_dynamic_lib(\%attribs, @$_); } @libs;
+
+ return join("\n",@m);
+}
+
+=item xs_dynamic_lib_macros
+
+Defines the macros for the C<dynamic_lib> section.
+
+=cut
+
+sub xs_dynamic_lib_macros {
+ my ($self, $attribs) = @_;
+ my $otherldflags = $attribs->{OTHERLDFLAGS} || "";
+ my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || "";
+ my $armaybe = $self->_xs_armaybe($attribs);
+ my $ld_opt = $Is{OS2} ? '$(OPTIMIZE) ' : ''; # Useful on other systems too?
my $ld_fix = $Is{OS2} ? '|| ( $(RM_F) $@ && sh -c false )' : '';
- push(@m,'
-# This section creates the dynamically loadable $(INST_DYNAMIC)
-# from $(OBJECT) and possibly $(MYEXTLIB).
-ARMAYBE = '.$armaybe.'
-OTHERLDFLAGS = '.$ld_opt.$otherldflags.'
-INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
-INST_DYNAMIC_FIX = '.$ld_fix.'
-
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)
-');
+ sprintf <<'EOF', $armaybe, $ld_opt.$otherldflags, $inst_dynamic_dep, $ld_fix;
+# This section creates the dynamically loadable objects from relevant
+# objects and possibly $(MYEXTLIB).
+ARMAYBE = %s
+OTHERLDFLAGS = %s
+INST_DYNAMIC_DEP = %s
+INST_DYNAMIC_FIX = %s
+EOF
+}
+
+sub _xs_armaybe {
+ my ($self, $attribs) = @_;
+ my $armaybe = $attribs->{ARMAYBE} || $self->{ARMAYBE} || ":";
+ $armaybe = 'ar' if ($Is{OSF} and $armaybe eq ':');
+ $armaybe;
+}
+
+=item xs_make_dynamic_lib
+
+Defines the recipes for the C<dynamic_lib> section.
+
+=cut
+
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $object, $to, $todir, $ldfrom, $exportlist) = @_;
+ $exportlist = '' if $exportlist ne '$(EXPORT_LIST)';
+ my $armaybe = $self->_xs_armaybe($attribs);
+ my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP)'."\n", $to, $object, $todir, $exportlist;
if ($armaybe ne ':'){
- $ldfrom = 'tmp$(LIB_EXT)';
- push(@m,' $(ARMAYBE) cr '.$ldfrom.' $(OBJECT)'."\n");
- push(@m,' $(RANLIB) '."$ldfrom\n");
+ $ldfrom = 'tmp$(LIB_EXT)';
+ push(@m," \$(ARMAYBE) cr $ldfrom $object\n");
+ push(@m," \$(RANLIB) $ldfrom\n");
}
$ldfrom = "-all $ldfrom -none" if $Is{OSF};
@@ -951,16 +1019,14 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPO
# is using them. This is painful if one for instance tries to restart
# a failed build because the link command will fail unnecessarily 'cos
# the shared object/library is 'busy'.
- push(@m,' $(RM_F) $@
-');
+ push(@m," \$(RM_F) \$\@\n");
my $libs = '$(LDLOADLIBS)';
-
if (($Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') {
- # Use nothing on static perl platforms, and to the flags needed
- # to link against the shared libperl library on shared perl
- # platforms. We peek at lddlflags to see if we need -Wl,-R
- # or -R to add paths to the run-time library search path.
+ # Use nothing on static perl platforms, and to the flags needed
+ # to link against the shared libperl library on shared perl
+ # platforms. We peek at lddlflags to see if we need -Wl,-R
+ # or -R to add paths to the run-time library search path.
if ($Config{'lddlflags'} =~ /-Wl,-R/) {
$libs .= ' "-L$(PERL_INC)" "-Wl,-R$(INSTALLARCHLIB)/CORE" "-Wl,-R$(PERL_ARCHLIB)/CORE" -lperl';
} elsif ($Config{'lddlflags'} =~ /-R/) {
@@ -974,22 +1040,16 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPO
my $ld_run_path_shell = "";
if ($self->{LD_RUN_PATH} ne "") {
- $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
+ $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
}
- push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $ldfrom, $libs;
- %s$(LD) %s $(LDDLFLAGS) %s $(OTHERLDFLAGS) -o $@ $(MYEXTLIB) \
- $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) $(EXPORT_LIST) \
+ push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist;
+ %s$(LD) %s $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
+ $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \
$(INST_DYNAMIC_FIX)
-MAKE
-
- push @m, <<'MAKE';
$(CHMOD) $(PERM_RWX) $@
- $(NOECHO) $(RM_RF) $(BOOTSTRAP)
- - $(CP_NONEMPTY) $(BOOTSTRAP) $(INST_BOOT) $(PERM_RW)
MAKE
-
- return join('',@m);
+ join '', @m;
}
=item exescan
@@ -1050,21 +1110,26 @@ WARNING
}
foreach my $name (@$names){
- foreach my $dir (@$dirs){
+ my ($abs, $use_dir);
+ if ($self->file_name_is_absolute($name)) { # /foo/bar
+ $abs = $name;
+ } elsif ($self->canonpath($name) eq
+ $self->canonpath(basename($name))) { # foo
+ $use_dir = 1;
+ } else { # foo/bar
+ $abs = $self->catfile($Curdir, $name);
+ }
+ foreach my $dir ($use_dir ? @$dirs : 1){
next unless defined $dir; # $self->{PERL_SRC} may be undefined
- my ($abs, $val);
- if ($self->file_name_is_absolute($name)) { # /foo/bar
- $abs = $name;
- } elsif ($self->canonpath($name) eq
- $self->canonpath(basename($name))) { # foo
- $abs = $self->catfile($dir, $name);
- } else { # foo/bar
- $abs = $self->catfile($Curdir, $name);
- }
+
+ $abs = $self->catfile($dir, $name)
+ if $use_dir;
+
print "Checking $abs\n" if ($trace >= 2);
next unless $self->maybe_command($abs);
print "Executing $abs\n" if ($trace >= 2);
+ my $val;
my $version_check = qq{"$abs" -le "require $ver; print qq{VER_OK}"};
# To avoid using the unportable 2>&1 to suppress STDERR,
@@ -1191,11 +1256,12 @@ sub _fixin_replace_shebang {
= reverse grep { $self->file_name_is_absolute($_) } $self->path;
$interpreter = '';
- foreach my $dir (@absdirs) {
- if ( $self->maybe_command($cmd) ) {
+ foreach my $dir (@absdirs) {
+ my $maybefile = $self->catfile($dir,$cmd);
+ if ( $self->maybe_command($maybefile) ) {
warn "Ignoring $interpreter in $file\n"
if $Verbose && $interpreter;
- $interpreter = $self->catfile( $dir, $cmd );
+ $interpreter = $maybefile;
}
}
}
@@ -1451,7 +1517,10 @@ sub init_MAN3PODS {
# To force inclusion, just name it "Configure.pod", or override
# MAN3PODS
foreach my $name (keys %manifypods) {
- if ($self->{PERL_CORE} and $name =~ /(config|setup).*\.pm/is) {
+ if (
+ ($self->{PERL_CORE} and $name =~ /(config|setup).*\.pm/is) or
+ ( $name =~ m/^README\.pod$/i ) # don't manify top-level README.pod
+ ) {
delete $manifypods{$name};
next;
}
@@ -1562,7 +1631,14 @@ sub init_PM {
$inst = $self->libscan($inst);
print "libscan($path) => '$inst'\n" if ($Verbose >= 2);
return unless $inst;
- $self->{PM}{$path} = $inst;
+ if ($self->{XSMULTI} and $inst =~ /\.xs\z/) {
+ my($base); ($base = $path) =~ s/\.xs\z//;
+ $self->{XS}{$path} = "$base.c";
+ push @{$self->{C}}, "$base.c";
+ push @{$self->{O_FILES}}, "$base$self->{OBJ_EXT}";
+ } else {
+ $self->{PM}{$path} = $inst;
+ }
}, @{$self->{PMLIBDIRS}});
}
}
@@ -1987,19 +2063,22 @@ sub init_PERL {
$self->{PERL_CORE} = $ENV{PERL_CORE} unless exists $self->{PERL_CORE};
$self->{PERL_CORE} = 0 unless defined $self->{PERL_CORE};
+ # Make sure perl can find itself before it's installed.
+ my $lib_paths = $self->{UNINSTALLED_PERL} || $self->{PERL_CORE}
+ ? ( $self->{PERL_ARCHLIB} && $self->{PERL_LIB} && $self->{PERL_ARCHLIB} ne $self->{PERL_LIB} ) ?
+ q{ "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)"} : q{ "-I$(PERL_LIB)"}
+ : undef;
+ my $inst_lib_paths = $self->{INST_ARCHLIB} ne $self->{INST_LIB}
+ ? 'RUN)'.$perlflags.' "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"'
+ : 'RUN)'.$perlflags.' "-I$(INST_LIB)"';
# How do we run perl?
foreach my $perl (qw(PERL FULLPERL ABSPERL)) {
my $run = $perl.'RUN';
$self->{$run} = qq{\$($perl)};
+ $self->{$run} .= $lib_paths if $lib_paths;
- # Make sure perl can find itself before it's installed.
- $self->{$run} .= q{ "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)"}
- if $self->{UNINSTALLED_PERL} || $self->{PERL_CORE};
-
- $self->{$perl.'RUNINST'} =
- sprintf q{$(%sRUN)%s "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"},
- $perl, $perlflags;
+ $self->{$perl.'RUNINST'} = '$('.$perl.$inst_lib_paths;
}
return 1;
@@ -2076,6 +2155,31 @@ sub init_xs {
$self->catfile('$(INST_ARCHAUTODIR)', '$(DLBASE).$(DLEXT)');
$self->{INST_BOOT} =
$self->catfile('$(INST_ARCHAUTODIR)', '$(BASEEXT).bs');
+ if ($self->{XSMULTI}) {
+ my @exts = $self->_xs_list_basenames;
+ my (@statics, @dynamics, @boots);
+ for my $ext (@exts) {
+ my ($v, $d, $f) = File::Spec->splitpath($ext);
+ my @d = File::Spec->splitdir($d);
+ shift @d if defined $d[0] and $d[0] eq 'lib';
+ my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+ my $instfile = $self->catfile($instdir, $f);
+ push @statics, "$instfile\$(LIB_EXT)";
+
+ # Dynamic library names may need special handling.
+ my $dynfile = $instfile;
+ eval { require DynaLoader };
+ if (defined &DynaLoader::mod2fname) {
+ $dynfile = $self->catfile($instdir, &DynaLoader::mod2fname([@d, $f]));
+ }
+
+ push @dynamics, "$dynfile.\$(DLEXT)";
+ push @boots, "$instfile.bs";
+ }
+ $self->{INST_STATIC} = join ' ', @statics;
+ $self->{INST_DYNAMIC} = join ' ', @dynamics;
+ $self->{INST_BOOT} = join ' ', @boots;
+ }
} else {
$self->{INST_STATIC} = '';
$self->{INST_DYNAMIC} = '';
@@ -2192,7 +2296,7 @@ doc_perl_install :: all
-$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" $(INSTALLPRIVLIB) \
+ "installed into" "$(INSTALLPRIVLIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
@@ -2203,7 +2307,7 @@ doc_site_install :: all
-$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" $(INSTALLSITELIB) \
+ "installed into" "$(INSTALLSITELIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
@@ -2214,7 +2318,7 @@ doc_vendor_install :: all
-$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)"
-$(NOECHO) $(DOC_INSTALL) \
"Module" "$(NAME)" \
- "installed into" $(INSTALLVENDORLIB) \
+ "installed into" "$(INSTALLVENDORLIB)" \
LINKTYPE "$(LINKTYPE)" \
VERSION "$(VERSION)" \
EXE_FILES "$(EXE_FILES)" \
@@ -2249,7 +2353,7 @@ sub installbin {
my($self) = shift;
return "" unless $self->{EXE_FILES} && ref $self->{EXE_FILES} eq "ARRAY";
- my @exefiles = @{$self->{EXE_FILES}};
+ my @exefiles = sort @{$self->{EXE_FILES}};
return "" unless @exefiles;
@exefiles = map vmsify($_), @exefiles if $Is{VMS};
@@ -2265,7 +2369,7 @@ sub installbin {
$to = vmsify($to) if $Is{VMS};
$fromto{$from} = $to;
}
- my @to = values %fromto;
+ my @to = sort values %fromto;
my @m;
push(@m, qq{
@@ -2281,17 +2385,16 @@ realclean ::
push @m, map "\t$_\n", $self->split_command('$(RM_F)', @to);
push @m, "\n";
-
# A target for each exe file.
- while (my($from,$to) = each %fromto) {
- last unless defined $from;
-
- push @m, sprintf <<'MAKE', $to, $from, $to, $from, $to, $to, $to;
-%s : %s $(FIRST_MAKEFILE) $(INST_SCRIPT)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists
- $(NOECHO) $(RM_F) %s
- $(CP) %s %s
- $(FIXIN) %s
- -$(NOECHO) $(CHMOD) $(PERM_RWX) %s
+ my @froms = sort keys %fromto;
+ for my $from (@froms) {
+ # 1 2
+ push @m, _sprintf562 <<'MAKE', $from, $fromto{$from};
+%2$s : %1$s $(FIRST_MAKEFILE) $(INST_SCRIPT)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists
+ $(NOECHO) $(RM_F) %2$s
+ $(CP) %1$s %2$s
+ $(FIXIN) %2$s
+ -$(NOECHO) $(CHMOD) $(PERM_RWX) %2$s
MAKE
@@ -2300,18 +2403,21 @@ MAKE
join "", @m;
}
-
=item linkext (o)
Defines the linkext target which in turn defines the LINKTYPE.
=cut
+# LINKTYPE => static or dynamic or ''
sub linkext {
my($self, %attribs) = @_;
- # LINKTYPE => static or dynamic or ''
- my($linktype) = defined $attribs{LINKTYPE} ?
- $attribs{LINKTYPE} : '$(LINKTYPE)';
+ my $linktype = $attribs{LINKTYPE};
+ $linktype = $self->{LINKTYPE} unless defined $linktype;
+ if (defined $linktype and $linktype eq '') {
+ warn "Warning: LINKTYPE set to '', no longer necessary\n";
+ }
+ $linktype = '$(LINKTYPE)' unless defined $linktype;
"
linkext :: $linktype
\$(NOECHO) \$(NOOP)
@@ -2326,14 +2432,13 @@ all entries in the directory that match the regular expression.
=cut
sub lsdir {
- my($self) = shift;
- my($dir, $regex) = @_;
- my(@ls);
- my $dh = new DirHandle;
- $dh->open($dir || ".") or return ();
- @ls = $dh->read;
- $dh->close;
- @ls = grep(/$regex/, @ls) if $regex;
+ # $self
+ my(undef, $dir, $regex) = @_;
+ opendir(my $dh, defined($dir) ? $dir : ".")
+ or return;
+ my @ls = readdir $dh;
+ closedir $dh;
+ @ls = grep(/$regex/, @ls) if defined $regex;
@ls;
}
@@ -2346,9 +2451,9 @@ into the Makefile.
sub macro {
my($self,%attribs) = @_;
- my(@m,$key,$val);
- while (($key,$val) = each %attribs){
- last unless defined $key;
+ my @m;
+ foreach my $key (sort keys %attribs) {
+ my $val = $attribs{$key};
push @m, "$key = $val\n";
}
join "", @m;
@@ -2369,11 +2474,13 @@ sub makeaperl {
my($self, %attribs) = @_;
my($makefilename, $searchdirs, $static, $extra, $perlinc, $target, $tmp, $libperl) =
@attribs{qw(MAKE DIRS STAT EXTRA INCL TARGET TMP LIBPERL)};
+ s/^(.*)/"-I$1"/ for @{$perlinc || []};
my(@m);
push @m, "
# --- MakeMaker makeaperl section ---
MAP_TARGET = $target
FULLPERL = $self->{FULLPERL}
+MAP_PERLINC = @{$perlinc || []}
";
return join '', @m if $self->{PARENT};
@@ -2381,10 +2488,10 @@ FULLPERL = $self->{FULLPERL}
unless ($self->{MAKEAPERL}) {
push @m, q{
-$(MAP_TARGET) :: static $(MAKE_APERL_FILE)
+$(MAP_TARGET) :: $(MAKE_APERL_FILE)
$(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@
-$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
+$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib
$(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
$(NOECHO) $(PERLRUNINST) \
Makefile.PL DIR="}, $dir, q{" \
@@ -2392,23 +2499,18 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=};
foreach (@ARGV){
- if( /\s/ ){
- s/=(.*)/='$1'/;
+ my $arg = $_; # avoid lvalue aliasing
+ if ( $arg =~ /(^.*?=)(.*['\s].*)/ ) {
+ $arg = $1 . $self->quote_literal($2);
}
- push @m, " \\\n\t\t$_";
+ push @m, " \\\n\t\t$arg";
}
-# push @m, map( " \\\n\t\t$_", @ARGV );
push @m, "\n";
return join '', @m;
}
-
-
- my($cccmd, $linkcmd, $lperl);
-
-
- $cccmd = $self->const_cccmd($libperl);
+ my $cccmd = $self->const_cccmd($libperl);
$cccmd =~ s/^CCCMD\s*=\s*//;
$cccmd =~ s/\$\(INC\)/ "-I$self->{PERL_INC}" /;
$cccmd .= " $Config{cccdlflags}"
@@ -2416,7 +2518,7 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
$cccmd =~ s/\(CC\)/\(PERLMAINCC\)/;
# The front matter of the linkcommand...
- $linkcmd = join ' ', "\$(CC)",
+ my $linkcmd = join ' ', "\$(CC)",
grep($_, @Config{qw(ldflags ccdlflags)});
$linkcmd =~ s/\s+/ /g;
$linkcmd =~ s,(perl\.exp),\$(PERL_INC)/$1,;
@@ -2424,6 +2526,10 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
# Which *.a files could we make use of...
my %static;
require File::Find;
+ # don't use File::Spec here because on Win32 F::F still uses "/"
+ my $installed_version = join('/',
+ 'auto', $self->{FULLEXT}, "$self->{BASEEXT}$self->{LIB_EXT}"
+ );
File::Find::find(sub {
return unless m/\Q$self->{LIB_EXT}\E$/;
@@ -2469,7 +2575,7 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
# Once the patch to minimod.PL is in the distribution, I can
# drop it
- return if $File::Find::name =~ m:auto/$self->{FULLEXT}/$self->{BASEEXT}$self->{LIB_EXT}\z:;
+ return if $File::Find::name =~ m:\Q$installed_version\E\z:;
use Cwd 'cwd';
$static{cwd() . "/" . $_}++;
}, grep( -d $_, @{$searchdirs || []}) );
@@ -2493,15 +2599,16 @@ $(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
# MAP_STATIC doesn't look into subdirs yet. Once "all" is made and we
# regenerate the Makefiles, MAP_STATIC and the dependencies for
# extralibs.all are computed correctly
+ my @map_static = reverse sort keys %static;
push @m, "
MAP_LINKCMD = $linkcmd
-MAP_PERLINC = @{$perlinc || []}
-MAP_STATIC = ",
-join(" \\\n\t", reverse sort keys %static), "
+MAP_STATIC = ", join(" \\\n\t", map { qq{"$_"} } @map_static), "
+MAP_STATICDEP = ", join(' ', map { $self->quote_dep($_) } @map_static), "
MAP_PRELIBS = $Config{perllibs} $Config{cryptlib}
";
+ my $lperl;
if (defined $libperl) {
($lperl = $libperl) =~ s/\$\(A\)/$self->{LIB_EXT}/;
}
@@ -2522,17 +2629,20 @@ MAP_PRELIBS = $Config{perllibs} $Config{cryptlib}
}
}
- print "Warning: $libperl not found
- If you're going to build a static perl binary, make sure perl is installed
- otherwise ignore this warning\n"
- unless (-f $lperl || defined($self->{PERL_SRC}));
+ print <<EOF unless -f $lperl || defined($self->{PERL_SRC});
+Warning: $libperl not found
+If you're going to build a static perl binary, make sure perl is installed
+otherwise ignore this warning
+EOF
}
# SUNOS ld does not take the full path to a shared library
my $llibperl = $libperl ? '$(MAP_LIBPERL)' : '-lperl';
+ my $libperl_dep = $self->quote_dep($libperl);
push @m, "
MAP_LIBPERL = $libperl
+MAP_LIBPERLDEP = $libperl_dep
LLIBPERL = $llibperl
";
@@ -2546,25 +2656,29 @@ $(INST_ARCHAUTODIR)/extralibs.all : $(INST_ARCHAUTODIR)$(DFSEP).exists '.join("
push @m, "\tcat $catfile >> \$\@\n";
}
-push @m, "
-\$(MAP_TARGET) :: $tmp/perlmain\$(OBJ_EXT) \$(MAP_LIBPERL) \$(MAP_STATIC) \$(INST_ARCHAUTODIR)/extralibs.all
- \$(MAP_LINKCMD) -o \$\@ \$(OPTIMIZE) $tmp/perlmain\$(OBJ_EXT) \$(LDFROM) \$(MAP_STATIC) \$(LLIBPERL) `cat \$(INST_ARCHAUTODIR)/extralibs.all` \$(MAP_PRELIBS)
- \$(NOECHO) \$(ECHO) 'To install the new \"\$(MAP_TARGET)\" binary, call'
- \$(NOECHO) \$(ECHO) ' \$(MAKE) \$(USEMAKEFILE) $makefilename inst_perl MAP_TARGET=\$(MAP_TARGET)'
- \$(NOECHO) \$(ECHO) 'To remove the intermediate files say'
- \$(NOECHO) \$(ECHO) ' \$(MAKE) \$(USEMAKEFILE) $makefilename map_clean'
+ my $ldfrom = $self->{XSMULTI} ? '' : '$(LDFROM)';
+ # 1 2 3 4
+ push @m, _sprintf562 <<'EOF', $tmp, $ldfrom, $self->xs_obj_opt('$@'), $makefilename;
+$(MAP_TARGET) :: %1$s/perlmain$(OBJ_EXT) $(MAP_LIBPERLDEP) $(MAP_STATICDEP) $(INST_ARCHAUTODIR)/extralibs.all
+ $(MAP_LINKCMD) %2$s $(OPTIMIZE) %1$s/perlmain$(OBJ_EXT) %3$s $(MAP_STATIC) "$(LLIBPERL)" `cat $(INST_ARCHAUTODIR)/extralibs.all` $(MAP_PRELIBS)
+ $(NOECHO) $(ECHO) "To install the new '$(MAP_TARGET)' binary, call"
+ $(NOECHO) $(ECHO) " $(MAKE) $(USEMAKEFILE) %4$s inst_perl MAP_TARGET=$(MAP_TARGET)"
+ $(NOECHO) $(ECHO) " $(MAKE) $(USEMAKEFILE) %4$s map_clean"
-$tmp/perlmain\$(OBJ_EXT): $tmp/perlmain.c
-";
+%1$s/perlmain\$(OBJ_EXT): %1$s/perlmain.c
+EOF
push @m, "\t".$self->cd($tmp, qq[$cccmd "-I\$(PERL_INC)" perlmain.c])."\n";
- push @m, qq{
-$tmp/perlmain.c: $makefilename}, q{
+ my $maybe_DynaLoader = $Config{usedl} ? 'q(DynaLoader)' : '';
+ push @m, _sprintf562 <<'EOF', $tmp, $makefilename, $maybe_DynaLoader;
+
+%1$s/perlmain.c: %2$s
$(NOECHO) $(ECHO) Writing $@
- $(NOECHO) $(PERL) $(MAP_PERLINC) "-MExtUtils::Miniperl" \\
- -e "writemain(grep s#.*/auto/##s, split(q| |, q|$(MAP_STATIC)|))" > $@t && $(MV) $@t $@
+ $(NOECHO) $(PERL) $(MAP_PERLINC) "-MExtUtils::Miniperl" \
+ -e "writemain(grep(s#.*/auto/##s, @ARGV), %3$s)" $(MAP_STATIC) > $@t
+ $(MV) $@t $@
-};
+EOF
push @m, "\t", q{$(NOECHO) $(PERL) "$(INSTALLSCRIPT)/fixpmain"
} if (defined (&Dos::UseLFN) && Dos::UseLFN()==0);
@@ -2694,6 +2808,7 @@ sub parse_abstract {
local $/ = "\n";
open(my $fh, '<', $parsefile) or die "Could not open '$parsefile': $!";
+ binmode $fh;
my $inpod = 0;
my $pod_encoding;
my $package = $self->{DISTNAME};
@@ -2701,7 +2816,7 @@ sub parse_abstract {
while (<$fh>) {
$inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;
next if !$inpod;
- chop;
+ s#\r*\n\z##; # handle CRLF input
if ( /^=encoding\s*(.*)$/i ) {
$pod_encoding = $1;
@@ -2766,7 +2881,7 @@ sub parse_version {
next if $inpod || /^\s*#/;
chop;
next if /^\s*(if|unless|elsif)/;
- if ( m{^ \s* package \s+ \w[\w\:\']* \s+ (v?[0-9._]+) \s* ; }x ) {
+ if ( m{^ \s* package \s+ \w[\w\:\']* \s+ (v?[0-9._]+) \s* (;|\{) }x ) {
local $^W = 0;
$result = $1;
}
@@ -2811,7 +2926,16 @@ sub get_version {
=item pasthru (o)
Defines the string that is passed to recursive make calls in
-subdirectories.
+subdirectories. The variables like C<PASTHRU_DEFINE> are used in each
+level, and passed downwards on the command-line with e.g. the value of
+that level's DEFINE. Example:
+
+ # Level 0 has DEFINE = -Dfunky
+ # This code will define level 0's PASTHRU=PASTHRU_DEFINE="$(DEFINE)
+ # $(PASTHRU_DEFINE)"
+ # Level 0's $(CCCMD) will include macros $(DEFINE) and $(PASTHRU_DEFINE)
+ # So will level 1's, so when level 1 compiles, it will get right values
+ # And so ad infinitum
=cut
@@ -2832,8 +2956,14 @@ sub pasthru {
}
foreach my $key (qw(DEFINE INC)) {
- next unless defined $self->{$key};
- push @pasthru, "PASTHRU_$key=\"\$(PASTHRU_$key)\"";
+ # default to the make var
+ my $val = qq{\$($key)};
+ # expand within perl if given since need to use quote_literal
+ # since INC might include space-protecting ""!
+ chomp($val = $self->{$key}) if defined $self->{$key};
+ $val .= " \$(PASTHRU_$key)";
+ my $quoted = $self->quote_literal($val);
+ push @pasthru, qq{PASTHRU_$key=$quoted};
}
push @m, "\nPASTHRU = ", join ($sep, @pasthru), "\n";
@@ -2913,7 +3043,7 @@ pm_to_blib({\@ARGV}, '$autodir', q[\$(PM_FILTER)], '\$(PERM_DIR)')
CODE
my @cmds = $self->split_command($pm_to_blib,
- map { ($_, $self->{PM}->{$_}) } sort keys %{$self->{PM}});
+ map { ($self->quote_literal($_) => $self->quote_literal($self->{PM}->{$_})) } sort keys %{$self->{PM}});
$r .= join '', map { "\t\$(NOECHO) $_\n" } @cmds;
$r .= qq{\t\$(NOECHO) \$(TOUCH) pm_to_blib\n};
@@ -2921,39 +3051,6 @@ CODE
return $r;
}
-=item post_constants (o)
-
-Returns an empty string per default. Dedicated to overrides from
-within Makefile.PL after all constants have been defined.
-
-=cut
-
-sub post_constants{
- "";
-}
-
-=item post_initialize (o)
-
-Returns an empty string per default. Used in Makefile.PLs to add some
-chunk of text to the Makefile after the object is initialized.
-
-=cut
-
-sub post_initialize {
- "";
-}
-
-=item postamble (o)
-
-Returns an empty string. Can be used in Makefile.PLs to write some
-text to the Makefile at the end.
-
-=cut
-
-sub postamble {
- "";
-}
-
# transform dot-separated version string into comma-separated quadruple
# examples: '1.2.3.4.5' => '1,2,3,4'
# '1.2.3' => '1,2,3,0'
@@ -2977,25 +3074,23 @@ sub ppd {
$abstract =~ s/</&lt;/g;
$abstract =~ s/>/&gt;/g;
- my $author = join(', ',@{$self->{AUTHOR} || []});
+ my $author = join(', ',@{ ref $self->{AUTHOR} eq 'ARRAY' ? $self->{AUTHOR} : [ $self->{AUTHOR} || '']});
$author =~ s/</&lt;/g;
$author =~ s/>/&gt;/g;
- my $ppd_file = '$(DISTNAME).ppd';
+ my $ppd_file = "$self->{DISTNAME}.ppd";
- my @ppd_cmds = $self->echo(<<'PPD_HTML', $ppd_file, { append => 0, allow_variables => 1 });
-<SOFTPKG NAME="$(DISTNAME)" VERSION="$(VERSION)">
-PPD_HTML
+ my @ppd_chunks = qq(<SOFTPKG NAME="$self->{DISTNAME}" VERSION="$self->{VERSION}">\n);
- my $ppd_xml = sprintf <<'PPD_HTML', $abstract, $author;
+ push @ppd_chunks, sprintf <<'PPD_HTML', $abstract, $author;
<ABSTRACT>%s</ABSTRACT>
<AUTHOR>%s</AUTHOR>
PPD_HTML
- $ppd_xml .= " <IMPLEMENTATION>\n";
+ push @ppd_chunks, " <IMPLEMENTATION>\n";
if ( $self->{MIN_PERL_VERSION} ) {
my $min_perl_version = $self->_ppd_version($self->{MIN_PERL_VERSION});
- $ppd_xml .= sprintf <<'PPD_PERLVERS', $min_perl_version;
+ push @ppd_chunks, sprintf <<'PPD_PERLVERS', $min_perl_version;
<PERLCORE VERSION="%s" />
PPD_PERLVERS
@@ -3015,7 +3110,7 @@ PPD_PERLVERS
my %attrs = ( NAME => $name );
$attrs{VERSION} = $version if $version;
my $attrs = join " ", map { qq[$_="$attrs{$_}"] } sort keys %attrs;
- $ppd_xml .= qq( <REQUIRE $attrs />\n);
+ push @ppd_chunks, qq( <REQUIRE $attrs />\n);
}
my $archname = $Config{archname};
@@ -3025,28 +3120,28 @@ PPD_PERLVERS
# version that changes when binary compatibility may change
$archname .= "-$Config{PERL_REVISION}.$Config{PERL_VERSION}";
}
- $ppd_xml .= sprintf <<'PPD_OUT', $archname;
+ push @ppd_chunks, sprintf <<'PPD_OUT', $archname;
<ARCHITECTURE NAME="%s" />
PPD_OUT
if ($self->{PPM_INSTALL_SCRIPT}) {
if ($self->{PPM_INSTALL_EXEC}) {
- $ppd_xml .= sprintf qq{ <INSTALL EXEC="%s">%s</INSTALL>\n},
+ push @ppd_chunks, sprintf qq{ <INSTALL EXEC="%s">%s</INSTALL>\n},
$self->{PPM_INSTALL_EXEC}, $self->{PPM_INSTALL_SCRIPT};
}
else {
- $ppd_xml .= sprintf qq{ <INSTALL>%s</INSTALL>\n},
+ push @ppd_chunks, sprintf qq{ <INSTALL>%s</INSTALL>\n},
$self->{PPM_INSTALL_SCRIPT};
}
}
if ($self->{PPM_UNINSTALL_SCRIPT}) {
if ($self->{PPM_UNINSTALL_EXEC}) {
- $ppd_xml .= sprintf qq{ <UNINSTALL EXEC="%s">%s</UNINSTALL>\n},
+ push @ppd_chunks, sprintf qq{ <UNINSTALL EXEC="%s">%s</UNINSTALL>\n},
$self->{PPM_UNINSTALL_EXEC}, $self->{PPM_UNINSTALL_SCRIPT};
}
else {
- $ppd_xml .= sprintf qq{ <UNINSTALL>%s</UNINSTALL>\n},
+ push @ppd_chunks, sprintf qq{ <UNINSTALL>%s</UNINSTALL>\n},
$self->{PPM_UNINSTALL_SCRIPT};
}
}
@@ -3054,13 +3149,13 @@ PPD_OUT
my ($bin_location) = $self->{BINARY_LOCATION} || '';
$bin_location =~ s/\\/\\\\/g;
- $ppd_xml .= sprintf <<'PPD_XML', $bin_location;
+ push @ppd_chunks, sprintf <<'PPD_XML', $bin_location;
<CODEBASE HREF="%s" />
</IMPLEMENTATION>
</SOFTPKG>
PPD_XML
- push @ppd_cmds, $self->echo($ppd_xml, $ppd_file, { append => 1 });
+ my @ppd_cmds = $self->stashmeta(join('', @ppd_chunks), $ppd_file);
return sprintf <<'PPD_OUT', join "\n\t", @ppd_cmds;
# Creates a PPD (Perl Package Description) for a binary distribution.
@@ -3138,29 +3233,29 @@ sub processPL {
foreach my $plfile (sort keys %$pl_files) {
my $list = ref($pl_files->{$plfile})
? $pl_files->{$plfile}
- : [$pl_files->{$plfile}];
+ : [$pl_files->{$plfile}];
- foreach my $target (@$list) {
+ foreach my $target (@$list) {
if( $Is{VMS} ) {
$plfile = vmsify($self->eliminate_macros($plfile));
$target = vmsify($self->eliminate_macros($target));
}
- # Normally a .PL file runs AFTER pm_to_blib so it can have
- # blib in its @INC and load the just built modules. BUT if
- # the generated module is something in $(TO_INST_PM) which
- # pm_to_blib depends on then it can't depend on pm_to_blib
- # else we have a dependency loop.
- my $pm_dep;
- my $perlrun;
- if( defined $self->{PM}{$target} ) {
- $pm_dep = '';
- $perlrun = 'PERLRUN';
- }
- else {
- $pm_dep = 'pm_to_blib';
- $perlrun = 'PERLRUNINST';
- }
+ # Normally a .PL file runs AFTER pm_to_blib so it can have
+ # blib in its @INC and load the just built modules. BUT if
+ # the generated module is something in $(TO_INST_PM) which
+ # pm_to_blib depends on then it can't depend on pm_to_blib
+ # else we have a dependency loop.
+ my $pm_dep;
+ my $perlrun;
+ if( defined $self->{PM}{$target} ) {
+ $pm_dep = '';
+ $perlrun = 'PERLRUN';
+ }
+ else {
+ $pm_dep = 'pm_to_blib';
+ $perlrun = 'PERLRUNINST';
+ }
$m .= <<MAKE_FRAG;
@@ -3171,7 +3266,7 @@ $target :: $plfile $pm_dep
\$($perlrun) $plfile $target
MAKE_FRAG
- }
+ }
}
return $m;
@@ -3338,29 +3433,86 @@ static :: $(FIRST_MAKEFILE) $(INST_STATIC)
';
}
-=item static_lib (o)
+sub static_lib {
+ my($self) = @_;
+ return '' unless $self->has_link_code;
+ my(@m);
+ my @libs;
+ if ($self->{XSMULTI}) {
+ for my $ext ($self->_xs_list_basenames) {
+ my ($v, $d, $f) = File::Spec->splitpath($ext);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $d[0] eq 'lib';
+ my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f);
+ my $instfile = $self->catfile($instdir, "$f\$(LIB_EXT)");
+ my $objfile = "$ext\$(OBJ_EXT)";
+ push @libs, [ $objfile, $instfile, $instdir ];
+ }
+ } else {
+ @libs = ([ qw($(OBJECT) $(INST_STATIC) $(INST_ARCHAUTODIR)) ]);
+ }
+ push @m, map { $self->xs_make_static_lib(@$_); } @libs;
+ join "\n", @m;
+}
+
+=item xs_make_static_lib
-Defines how to produce the *.a (or equivalent) files.
+Defines the recipes for the C<static_lib> section.
=cut
-sub static_lib {
- my($self) = @_;
- return '' unless $self->has_link_code;
+sub xs_make_static_lib {
+ my ($self, $from, $to, $todir) = @_;
+ my @m = sprintf '%s: %s $(MYEXTLIB) %s$(DFSEP).exists'."\n", $to, $from, $todir;
+ push @m, "\t\$(RM_F) \"\$\@\"\n";
+ push @m, $self->static_lib_fixtures;
+ push @m, $self->static_lib_pure_cmd($from);
+ push @m, "\t\$(CHMOD) \$(PERM_RWX) \$\@\n";
+ push @m, $self->static_lib_closures($todir);
+ join '', @m;
+}
- my(@m);
- push(@m, <<'END');
+=item static_lib_closures
-$(INST_STATIC) : $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(RM_RF) $@
-END
+Records C<$(EXTRALIBS)> in F<extralibs.ld> and F<$(PERL_SRC)/ext.libs>.
+
+=cut
+sub static_lib_closures {
+ my ($self, $todir) = @_;
+ my @m = sprintf <<'MAKE_FRAG', $todir;
+ $(NOECHO) $(ECHO) "$(EXTRALIBS)" > %s$(DFSEP)extralibs.ld
+MAKE_FRAG
+ # Old mechanism - still available:
+ push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS};
+ $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)$(DFSEP)ext.libs
+MAKE_FRAG
+ @m;
+}
+
+=item static_lib_fixtures
+
+Handles copying C<$(MYEXTLIB)> as starter for final static library that
+then gets added to.
+
+=cut
+
+sub static_lib_fixtures {
+ my ($self) = @_;
# If this extension has its own library (eg SDBM_File)
# then copy that to $(INST_STATIC) and add $(OBJECT) into it.
- push(@m, <<'MAKE_FRAG') if $self->{MYEXTLIB};
- $(CP) $(MYEXTLIB) "$@"
-MAKE_FRAG
+ return unless $self->{MYEXTLIB};
+ "\t\$(CP) \$(MYEXTLIB) \"\$\@\"\n";
+}
+
+=item static_lib_pure_cmd
+
+Defines how to run the archive utility.
+=cut
+
+sub static_lib_pure_cmd {
+ my ($self, $from) = @_;
my $ar;
if (exists $self->{FULL_AR} && -x $self->{FULL_AR}) {
# Prefer the absolute pathed ar if available so that PATH
@@ -3369,18 +3521,10 @@ MAKE_FRAG
} else {
$ar = 'AR';
}
- push @m, sprintf <<'MAKE_FRAG', $ar;
- $(%s) $(AR_STATIC_ARGS) $@ $(OBJECT) && $(RANLIB) $@
- $(CHMOD) $(PERM_RWX) $@
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" > "$(INST_ARCHAUTODIR)/extralibs.ld"
+ sprintf <<'MAKE_FRAG', $ar, $from;
+ $(%s) $(AR_STATIC_ARGS) "$@" %s
+ $(RANLIB) "$@"
MAKE_FRAG
-
- # Old mechanism - still available:
- push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS};
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> "$(PERL_SRC)/ext.libs"
-MAKE_FRAG
-
- join('', @m);
}
=item staticmake (o)
@@ -3459,15 +3603,16 @@ sub subdirs {
# subdirectories containing further Makefile.PL scripts.
# It calls the subdir_x() method for each subdirectory.
foreach my $dir (@{$self->{DIR}}){
- push(@m, $self->subdir_x($dir));
+ push @m, $self->subdir_x($dir);
#### print "Including $dir subdirectory\n";
}
if (@m){
- unshift(@m, "
+ unshift @m, <<'EOF';
+
# The default clean, realclean and test targets in this Makefile
# have automatically been given entries for each subdir.
-");
+EOF
} else {
push(@m, "\n# none")
}
@@ -3481,8 +3626,6 @@ Defines the test targets.
=cut
sub test {
-# --- Test and Installation Sections ---
-
my($self, %attribs) = @_;
my $tests = $attribs{TESTS} || '';
if (!$tests && -d 't' && defined $attribs{RECURSIVE_TEST_FILES}) {
@@ -3494,8 +3637,9 @@ sub test {
# have to do this because nmake is broken
$tests =~ s!/!\\!g if $self->is_make_type('nmake');
# note: 'test.pl' name is also hardcoded in init_dirscan()
- my(@m);
- push(@m,"
+ my @m;
+ my $default_testtype = $Config{usedl} ? 'dynamic' : 'static';
+ push @m, <<EOF;
TEST_VERBOSE=0
TEST_TYPE=test_\$(LINKTYPE)
TEST_FILE = test.pl
@@ -3503,56 +3647,59 @@ TEST_FILES = $tests
TESTDB_SW = -d
testdb :: testdb_\$(LINKTYPE)
+ \$(NOECHO) \$(NOOP)
-test :: \$(TEST_TYPE) subdirs-test
-
-subdirs-test ::
+test :: \$(TEST_TYPE)
\$(NOECHO) \$(NOOP)
-");
+# Occasionally we may face this degenerate target:
+test_ : test_$default_testtype
+ \$(NOECHO) \$(NOOP)
- foreach my $dir (@{ $self->{DIR} }) {
- my $test = $self->cd($dir, '$(MAKE) test $(PASTHRU)');
+EOF
- push @m, <<END
-subdirs-test ::
- \$(NOECHO) $test
+ for my $linktype (qw(dynamic static)) {
+ my $directdeps = "$linktype pure_all";
+ push @m, "subdirs-test_$linktype :: $directdeps\n";
+ foreach my $dir (@{ $self->{DIR} }) {
+ my $test = $self->cd($dir, "\$(MAKE) test_$linktype \$(PASTHRU)");
+ push @m, "\t\$(NOECHO) $test\n";
+ }
+ push @m, "\n";
+ if ($tests or -f "test.pl") {
+ for my $testspec ([ '', '' ], [ 'db', ' $(TESTDB_SW)' ]) {
+ my ($db, $switch) = @$testspec;
+ my ($command, $deps);
+ # if testdb, build all but don't test all
+ $deps = $db eq 'db' ? $directdeps : "subdirs-test_$linktype";
+ if ($linktype eq 'static' and $self->needs_linking) {
+ my $target = File::Spec->rel2abs('$(MAP_TARGET)');
+ $command = qq{"$target" \$(MAP_PERLINC)};
+ $deps .= ' $(MAP_TARGET)';
+ } else {
+ $command = '$(FULLPERLRUN)' . $switch;
+ }
+ push @m, "test${db}_$linktype :: $deps\n";
+ if ($db eq 'db') {
+ push @m, $self->test_via_script($command, '$(TEST_FILE)')
+ } else {
+ push @m, $self->test_via_script($command, '$(TEST_FILE)')
+ if -f "test.pl";
+ push @m, $self->test_via_harness($command, '$(TEST_FILES)')
+ if $tests;
+ }
+ push @m, "\n";
+ }
+ } else {
+ push @m, _sprintf562 <<'EOF', $linktype;
+testdb_%1$s test_%1$s :: subdirs-test_%1$s
+ $(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.'
-END
+EOF
+ }
}
- push(@m, "\t\$(NOECHO) \$(ECHO) 'No tests defined for \$(NAME) extension.'\n")
- unless $tests or -f "test.pl" or @{$self->{DIR}};
- push(@m, "\n");
-
- push(@m, "test_dynamic :: pure_all\n");
- push(@m, $self->test_via_harness('$(FULLPERLRUN)', '$(TEST_FILES)'))
- if $tests;
- push(@m, $self->test_via_script('$(FULLPERLRUN)', '$(TEST_FILE)'))
- if -f "test.pl";
- push(@m, "\n");
-
- push(@m, "testdb_dynamic :: pure_all\n");
- push(@m, $self->test_via_script('$(FULLPERLRUN) $(TESTDB_SW)',
- '$(TEST_FILE)'));
- push(@m, "\n");
-
- # Occasionally we may face this degenerate target:
- push @m, "test_ : test_dynamic\n\n";
-
- if ($self->needs_linking()) {
- push(@m, "test_static :: pure_all \$(MAP_TARGET)\n");
- push(@m, $self->test_via_harness('./$(MAP_TARGET)', '$(TEST_FILES)')) if $tests;
- push(@m, $self->test_via_script('./$(MAP_TARGET)', '$(TEST_FILE)')) if -f "test.pl";
- push(@m, "\n");
- push(@m, "testdb_static :: pure_all \$(MAP_TARGET)\n");
- push(@m, $self->test_via_script('./$(MAP_TARGET) $(TESTDB_SW)', '$(TEST_FILE)'));
- push(@m, "\n");
- } else {
- push @m, "test_static :: test_dynamic\n";
- push @m, "testdb_static :: testdb_dynamic\n";
- }
- join("", @m);
+ join "", @m;
}
=item test_via_harness (override)
@@ -3605,7 +3752,7 @@ sub tool_xsubpp {
}
die "ExtUtils::MM_Unix::tool_xsubpp : Can't find xsubpp" if !$foundxsubpp;
- my $tmdir = File::Spec->catdir($self->{PERL_LIB},"ExtUtils");
+ my $tmdir = $self->catdir($self->{PERL_LIB},"ExtUtils");
my(@tmdeps) = $self->catfile($tmdir,'typemap');
if( $self->{TYPEMAPS} ){
foreach my $typemap (@{$self->{TYPEMAPS}}){
@@ -3613,12 +3760,21 @@ sub tool_xsubpp {
warn "Typemap $typemap not found.\n";
}
else {
- push(@tmdeps, $typemap);
+ $typemap = vmsify($typemap) if $Is{VMS};
+ push(@tmdeps, $typemap);
}
}
}
push(@tmdeps, "typemap") if -f "typemap";
- my @tmargs = map(qq{-typemap "$_"}, @tmdeps);
+ # absolutised because with deep-located typemaps, eg "lib/XS/typemap",
+ # if xsubpp is called from top level with
+ # $(XSUBPP) ... -typemap "lib/XS/typemap" "lib/XS/Test.xs"
+ # it says:
+ # Can't find lib/XS/type map in (fulldir)/lib/XS
+ # because ExtUtils::ParseXS::process_file chdir's to .xs file's
+ # location. This is the only way to get all specified typemaps used,
+ # wherever located.
+ my @tmargs = map { '-typemap '.$self->quote_literal(File::Spec->rel2abs($_)) } @tmdeps;
$_ = $self->quote_dep($_) for @tmdeps;
if( exists $self->{XSOPT} ){
unshift( @tmargs, $self->{XSOPT} );
@@ -3679,19 +3835,21 @@ sub top_targets {
push @m, $self->all_target, "\n" unless $self->{SKIPHASH}{'all'};
- push @m, '
+ push @m, sprintf <<'EOF';
pure_all :: config pm_to_blib subdirs linkext
$(NOECHO) $(NOOP)
+ $(NOECHO) $(NOOP)
+
subdirs :: $(MYEXTLIB)
$(NOECHO) $(NOOP)
config :: $(FIRST_MAKEFILE) blibdirs
$(NOECHO) $(NOOP)
-';
+EOF
push @m, '
-$(O_FILES): $(H_FILES)
+$(O_FILES) : $(H_FILES)
' if @{$self->{O_FILES} || []} && @{$self->{H} || []};
push @m, q{
@@ -3728,7 +3886,8 @@ sub xs_c {
return '' unless $self->needs_linking();
'
.xs.c:
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(XSUBPP_EXTRA_ARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.c
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(XSUBPP_EXTRA_ARGS) $*.xs > $*.xsc
+ $(MV) $*.xsc $*.c
';
}
@@ -3743,27 +3902,73 @@ sub xs_cpp {
return '' unless $self->needs_linking();
'
.xs.cpp:
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.cpp
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc
+ $(MV) $*.xsc $*.cpp
';
}
=item xs_o (o)
-Defines suffix rules to go from XS to object files directly. This is
-only intended for broken make implementations.
+Defines suffix rules to go from XS to object files directly. This was
+originally only intended for broken make implementations, but is now
+necessary for per-XS file under C<XSMULTI>, since each XS file might
+have an individual C<$(VERSION)>.
=cut
-sub xs_o { # many makes are too dumb to use xs_c then c_o
- my($self) = shift;
+sub xs_o {
+ my ($self) = @_;
return '' unless $self->needs_linking();
- '
-.xs$(OBJ_EXT):
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.c
- $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c
-';
+ my $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : '';
+ my $frag = '';
+ # dmake makes noise about ambiguous rule
+ $frag .= sprintf <<'EOF', $m_o unless $self->is_make_type('dmake');
+.xs$(OBJ_EXT) :
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc
+ $(MV) $*.xsc $*.c
+ $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c %s
+EOF
+ if ($self->{XSMULTI}) {
+ for my $ext ($self->_xs_list_basenames) {
+ my $pmfile = "$ext.pm";
+ croak "$ext.xs has no matching $pmfile: $!" unless -f $pmfile;
+ my $version = $self->parse_version($pmfile);
+ my $cccmd = $self->{CONST_CCCMD};
+ $cccmd =~ s/^\s*CCCMD\s*=\s*//;
+ $cccmd =~ s/\$\(DEFINE_VERSION\)/-DVERSION=\\"$version\\"/;
+ $cccmd =~ s/\$\(XS_DEFINE_VERSION\)/-DXS_VERSION=\\"$version\\"/;
+ $self->_xsbuild_replace_macro($cccmd, 'xs', $ext, 'INC');
+ my $define = '$(DEFINE)';
+ $self->_xsbuild_replace_macro($define, 'xs', $ext, 'DEFINE');
+ # 1 2 3 4
+ $frag .= _sprintf562 <<'EOF', $ext, $cccmd, $m_o, $define;
+
+%1$s$(OBJ_EXT): %1$s.xs
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc
+ $(MV) $*.xsc $*.c
+ %2$s $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) %4$s $*.c %3$s
+EOF
+ }
+ }
+ $frag;
}
+# param gets modified
+sub _xsbuild_replace_macro {
+ my ($self, undef, $xstype, $ext, $varname) = @_;
+ my $value = $self->_xsbuild_value($xstype, $ext, $varname);
+ return unless defined $value;
+ $_[1] =~ s/\$\($varname\)/$value/;
+}
+
+sub _xsbuild_value {
+ my ($self, $xstype, $ext, $varname) = @_;
+ return $self->{XSBUILD}{$xstype}{$ext}{$varname}
+ if $self->{XSBUILD}{$xstype}{$ext}{$varname};
+ return $self->{XSBUILD}{$xstype}{all}{$varname}
+ if $self->{XSBUILD}{$xstype}{all}{$varname};
+ ();
+}
1;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
index 60dd8713fc2..ed3ec8cab08 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VMS.pm
@@ -15,13 +15,14 @@ BEGIN {
use File::Basename;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-use ExtUtils::MakeMaker qw($Verbose neatvalue);
+use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
our $Revision = $ExtUtils::MakeMaker::Revision;
@@ -302,15 +303,22 @@ sub maybe_command {
=item pasthru (override)
-VMS has $(MMSQUALIFIERS) which is a listing of all the original command line
-options. This is used in every invocation of make in the VMS Makefile so
-PASTHRU should not be necessary. Using PASTHRU tends to blow commands past
-the 256 character limit.
+The list of macro definitions to be passed through must be specified using
+the /MACRO qualifier and must not add another /DEFINE qualifier. We prepend
+our own comma here to the contents of $(PASTHRU_DEFINE) because it is often
+empty and a comma always present in CCFLAGS would generate a missing
+qualifier value error.
=cut
sub pasthru {
- return "PASTHRU=\n";
+ my($self) = shift;
+ my $pasthru = $self->SUPER::pasthru;
+ $pasthru =~ s|(PASTHRU\s*=\s*)|$1/MACRO=(|;
+ $pasthru =~ s|\n\z|)\n|m;
+ $pasthru =~ s|/defi?n?e?=\(?([^\),]+)\)?|,$1|ig;
+
+ return $pasthru;
}
@@ -725,13 +733,14 @@ sub cflags {
my $term = $1;
$term =~ s:^\((.+)\)$:$1:;
push @terms, $term;
- }
+ }
if ($type eq 'Def') {
push @terms, qw[ $(DEFINE_VERSION) $(XS_DEFINE_VERSION) ];
}
if (@terms) {
$quals =~ s:/${type}i?n?e?=[^/]+::ig;
- $quals .= "/${type}ine=(" . join(',',@terms) . ')';
+ # PASTHRU_DEFINE will have its own comma
+ $quals .= "/${type}ine=(" . join(',',@terms) . ($type eq 'Def' ? '$(PASTHRU_DEFINE)' : '') . ')';
}
}
@@ -884,13 +893,13 @@ sub c_o {
return '' unless $self->needs_linking();
'
.c$(OBJ_EXT) :
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c
+ $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
.cpp$(OBJ_EXT) :
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cpp
+ $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cpp /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
.cxx$(OBJ_EXT) :
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cxx
+ $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cxx /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
';
}
@@ -906,7 +915,8 @@ sub xs_c {
return '' unless $self->needs_linking();
'
.xs.c :
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET)
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).xsc
+ $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c
';
}
@@ -916,85 +926,211 @@ Use MM[SK] macros, and VMS command line for C compiler.
=cut
-sub xs_o { # many makes are too dumb to use xs_c then c_o
- my($self) = @_;
+sub xs_o {
+ my ($self) = @_;
return '' unless $self->needs_linking();
- '
+ my $frag = '
.xs$(OBJ_EXT) :
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).c
- $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).xsc
+ $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c
+ $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
';
+ if ($self->{XSMULTI}) {
+ for my $ext ($self->_xs_list_basenames) {
+ my $version = $self->parse_version("$ext.pm");
+ my $ccflags = $self->{CCFLAGS};
+ $ccflags =~ s/\$\(DEFINE_VERSION\)/\"VERSION_MACRO=\\"\"$version\\"\"/;
+ $ccflags =~ s/\$\(XS_DEFINE_VERSION\)/\"XS_VERSION_MACRO=\\"\"$version\\"\"/;
+ $self->_xsbuild_replace_macro($ccflags, 'xs', $ext, 'INC');
+ $self->_xsbuild_replace_macro($ccflags, 'xs', $ext, 'DEFINE');
+
+ $frag .= _sprintf562 <<'EOF', $ext, $ccflags;
+
+%1$s$(OBJ_EXT) : %1$s.xs
+ $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs > $(MMS$TARGET_NAME).xsc
+ $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c
+ $(CC)%2$s$(OPTIMIZE) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT)
+EOF
+ }
+ }
+ $frag;
}
+=item _xsbuild_replace_macro (override)
-=item dlsyms (override)
+There is no simple replacement possible since a qualifier and all its
+subqualifiers must be considered together, so we use our own utility
+routine for the replacement.
-Create VMS linker options files specifying universal symbols for this
-extension's shareable image, and listing other shareable images or
-libraries to which it should be linked.
+=cut
+
+sub _xsbuild_replace_macro {
+ my ($self, undef, $xstype, $ext, $varname) = @_;
+ my $value = $self->_xsbuild_value($xstype, $ext, $varname);
+ return unless defined $value;
+ $_[1] = _vms_replace_qualifier($self, $_[1], $value, $varname);
+}
+
+=item _xsbuild_value (override)
+
+Convert the extension spec to Unix format, as that's what will
+match what's in the XSBUILD data structure.
=cut
-sub dlsyms {
- my($self,%attribs) = @_;
+sub _xsbuild_value {
+ my ($self, $xstype, $ext, $varname) = @_;
+ $ext = unixify($ext);
+ return $self->SUPER::_xsbuild_value($xstype, $ext, $varname);
+}
- return '' unless $self->needs_linking();
+sub _vms_replace_qualifier {
+ my ($self, $flags, $newflag, $macro) = @_;
+ my $qual_type;
+ my $type_suffix;
+ my $quote_subquals = 0;
+ my @subquals_new = split /\s+/, $newflag;
+
+ if ($macro eq 'DEFINE') {
+ $qual_type = 'Def';
+ $type_suffix = 'ine';
+ map { $_ =~ s/^-D// } @subquals_new;
+ $quote_subquals = 1;
+ }
+ elsif ($macro eq 'INC') {
+ $qual_type = 'Inc';
+ $type_suffix = 'lude';
+ map { $_ =~ s/^-I//; $_ = $self->fixpath($_) } @subquals_new;
+ }
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || [];
- my(@m);
+ my @subquals = ();
+ while ($flags =~ m:/${qual_type}\S{0,4}=([^/]+):ig) {
+ my $term = $1;
+ $term =~ s/\"//g;
+ $term =~ s:^\((.+)\)$:$1:;
+ push @subquals, split /,/, $term;
+ }
+ for my $new (@subquals_new) {
+ my ($sq_new, $sqval_new) = split /=/, $new;
+ my $replaced_old = 0;
+ for my $old (@subquals) {
+ my ($sq, $sqval) = split /=/, $old;
+ if ($sq_new eq $sq) {
+ $old = $sq_new;
+ $old .= '=' . $sqval_new if defined($sqval_new) and length($sqval_new);
+ $replaced_old = 1;
+ last;
+ }
+ }
+ push @subquals, $new unless $replaced_old;
+ }
- unless ($self->{SKIPHASH}{'dynamic'}) {
- push(@m,'
-dynamic :: $(INST_ARCHAUTODIR)$(BASEEXT).opt
- $(NOECHO) $(NOOP)
-');
+ if (@subquals) {
+ $flags =~ s:/${qual_type}\S{0,4}=[^/]+::ig;
+ # add quotes if requested but not for unexpanded macros
+ map { $_ = qq/"$_"/ if $_ !~ m/^\$\(/ } @subquals if $quote_subquals;
+ $flags .= "/${qual_type}$type_suffix=(" . join(',',@subquals) . ')';
}
- push(@m,'
-static :: $(INST_ARCHAUTODIR)$(BASEEXT).opt
- $(NOECHO) $(NOOP)
-') unless $self->{SKIPHASH}{'static'};
+ return $flags;
+}
- push @m,'
-$(INST_ARCHAUTODIR)$(BASEEXT).opt : $(BASEEXT).opt
- $(CP) $(MMS$SOURCE) $(MMS$TARGET)
-$(BASEEXT).opt : Makefile.PL
- $(PERLRUN) -e "use ExtUtils::Mksymlists;" -
- ',qq[-e "Mksymlists('NAME' => '$self->{NAME}', 'DL_FUNCS' => ],
- neatvalue($funcs),q[, 'DL_VARS' => ],neatvalue($vars),
- q[, 'FUNCLIST' => ],neatvalue($funclist),qq[)"\n];
-
- push @m, ' $(PERL) -e "print ""$(INST_STATIC)/Include=';
- if ($self->{OBJECT} =~ /\bBASEEXT\b/ or
- $self->{OBJECT} =~ /\b$self->{BASEEXT}\b/i) {
- push @m, ($Config{d_vms_case_sensitive_symbols}
- ? uc($self->{BASEEXT}) :'$(BASEEXT)');
- }
- else { # We don't have a "main" object file, so pull 'em all in
- # Upcase module names if linker is being case-sensitive
- my($upcase) = $Config{d_vms_case_sensitive_symbols};
- my(@omods) = split ' ', $self->eliminate_macros($self->{OBJECT});
- for (@omods) {
- s/\.[^.]*$//; # Trim off file type
- s[\$\(\w+_EXT\)][]; # even as a macro
- s/.*[:>\/\]]//; # Trim off dir spec
- $_ = uc if $upcase;
- };
-
- my(@lines);
- my $tmp = shift @omods;
- foreach my $elt (@omods) {
- $tmp .= ",$elt";
- if (length($tmp) > 80) { push @lines, $tmp; $tmp = ''; }
+sub xs_dlsyms_ext {
+ '.opt';
+}
+
+=item dlsyms (override)
+
+Create VMS linker options files specifying universal symbols for this
+extension's shareable image(s), and listing other shareable images or
+libraries to which it should be linked.
+
+=cut
+
+sub dlsyms {
+ my ($self, %attribs) = @_;
+ return '' unless $self->needs_linking;
+ $self->xs_dlsyms_iterator;
+}
+
+sub xs_make_dlsyms {
+ my ($self, $attribs, $target, $dep, $name, $dlbase, $funcs, $funclist, $imports, $vars, $extra) = @_;
+ my @m;
+ my $instloc;
+ if ($self->{XSMULTI}) {
+ my ($v, $d, $f) = File::Spec->splitpath($target);
+ my @d = File::Spec->splitdir($d);
+ shift @d if $d[0] eq 'lib';
+ $instloc = $self->catfile('$(INST_ARCHLIB)', 'auto', @d, $f);
+ push @m,"\ndynamic :: $instloc\n\t\$(NOECHO) \$(NOOP)\n"
+ unless $self->{SKIPHASH}{'dynamic'};
+ push @m,"\nstatic :: $instloc\n\t\$(NOECHO) \$(NOOP)\n"
+ unless $self->{SKIPHASH}{'static'};
+ push @m, "\n", sprintf <<'EOF', $instloc, $target;
+%s : %s
+ $(CP) $(MMS$SOURCE) $(MMS$TARGET)
+EOF
+ }
+ else {
+ push @m,"\ndynamic :: \$(INST_ARCHAUTODIR)$self->{BASEEXT}.opt\n\t\$(NOECHO) \$(NOOP)\n"
+ unless $self->{SKIPHASH}{'dynamic'};
+ push @m,"\nstatic :: \$(INST_ARCHAUTODIR)$self->{BASEEXT}.opt\n\t\$(NOECHO) \$(NOOP)\n"
+ unless $self->{SKIPHASH}{'static'};
+ push @m, "\n", sprintf <<'EOF', $target;
+$(INST_ARCHAUTODIR)$(BASEEXT).opt : %s
+ $(CP) $(MMS$SOURCE) $(MMS$TARGET)
+EOF
+ }
+ push @m,
+ "\n$target : $dep\n\t",
+ q!$(PERLRUN) -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>'!, $name,
+ q!', 'DLBASE' => '!,$dlbase,
+ q!', 'DL_FUNCS' => !,neatvalue($funcs),
+ q!, 'FUNCLIST' => !,neatvalue($funclist),
+ q!, 'IMPORTS' => !,neatvalue($imports),
+ q!, 'DL_VARS' => !, neatvalue($vars);
+ push @m, $extra if defined $extra;
+ push @m, qq!);"\n\t!;
+ # Can't use dlbase as it's been through mod2fname.
+ my $olb_base = basename($target, '.opt');
+ if ($self->{XSMULTI}) {
+ # We've been passed everything but the kitchen sink -- and the location of the
+ # static library we're using to build the dynamic library -- so concoct that
+ # location from what we do have.
+ my $olb_dir = $self->catdir(dirname($instloc), $olb_base);
+ push @m, qq!\$(PERL) -e "print ""${olb_dir}${olb_base}\$(LIB_EXT)/Include=!;
+ push @m, ($Config{d_vms_case_sensitive_symbols} ? uc($olb_base) : $olb_base);
+ push @m, '\n' . $olb_dir . $olb_base . '$(LIB_EXT)/Library\n"";" >>$(MMS$TARGET)',"\n";
+ }
+ else {
+ push @m, qq!\$(PERL) -e "print ""\$(INST_ARCHAUTODIR)${olb_base}\$(LIB_EXT)/Include=!;
+ if ($self->{OBJECT} =~ /\bBASEEXT\b/ or
+ $self->{OBJECT} =~ /\b$self->{BASEEXT}\b/i) {
+ push @m, ($Config{d_vms_case_sensitive_symbols}
+ ? uc($self->{BASEEXT}) :'$(BASEEXT)');
+ }
+ else { # We don't have a "main" object file, so pull 'em all in
+ # Upcase module names if linker is being case-sensitive
+ my($upcase) = $Config{d_vms_case_sensitive_symbols};
+ my(@omods) = split ' ', $self->eliminate_macros($self->{OBJECT});
+ for (@omods) {
+ s/\.[^.]*$//; # Trim off file type
+ s[\$\(\w+_EXT\)][]; # even as a macro
+ s/.*[:>\/\]]//; # Trim off dir spec
+ $_ = uc if $upcase;
+ };
+ my(@lines);
+ my $tmp = shift @omods;
+ foreach my $elt (@omods) {
+ $tmp .= ",$elt";
+ if (length($tmp) > 80) { push @lines, $tmp; $tmp = ''; }
+ }
+ push @lines, $tmp;
+ push @m, '(', join( qq[, -\\n\\t"";" >>\$(MMS\$TARGET)\n\t\$(PERL) -e "print ""], @lines),')';
}
- push @lines, $tmp;
- push @m, '(', join( qq[, -\\n\\t"";" >>\$(MMS\$TARGET)\n\t\$(PERL) -e "print ""], @lines),')';
+ push @m, '\n$(INST_ARCHAUTODIR)' . $olb_base . '$(LIB_EXT)/Library\n"";" >>$(MMS$TARGET)',"\n";
}
- push @m, '\n$(INST_STATIC)/Library\n"";" >>$(MMS$TARGET)',"\n";
-
if (length $self->{LDLOADLIBS}) {
my($line) = '';
foreach my $lib (split ' ', $self->{LDLOADLIBS}) {
@@ -1007,9 +1143,19 @@ $(BASEEXT).opt : Makefile.PL
}
push @m, "\t\$(PERL) -e \"print qq{$line}\" >>\$(MMS\$TARGET)\n" if $line;
}
+ join '', @m;
+}
- join('',@m);
+=item xs_obj_opt
+
+Override to fixup -o flags.
+
+=cut
+
+sub xs_obj_opt {
+ my ($self, $output_file) = @_;
+ "/OBJECT=$output_file";
}
=item dynamic_lib (override)
@@ -1018,54 +1164,58 @@ Use VMS Link command.
=cut
-sub dynamic_lib {
- my($self, %attribs) = @_;
- return '' unless $self->needs_linking(); #might be because of a subdir
-
- return '' unless $self->has_link_code();
+sub xs_dynamic_lib_macros {
+ my ($self, $attribs) = @_;
+ my $otherldflags = $attribs->{OTHERLDFLAGS} || "";
+ my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || "";
+ sprintf <<'EOF', $otherldflags, $inst_dynamic_dep;
+# This section creates the dynamically loadable objects from relevant
+# objects and possibly $(MYEXTLIB).
+OTHERLDFLAGS = %s
+INST_DYNAMIC_DEP = %s
+EOF
+}
- my($otherldflags) = $attribs{OTHERLDFLAGS} || "";
- my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_;
my $shr = $Config{'dbgprefix'} . 'PerlShr';
- my(@m);
- push @m,"
-
-OTHERLDFLAGS = $otherldflags
-INST_DYNAMIC_DEP = $inst_dynamic_dep
-
-";
- push @m, '
-$(INST_DYNAMIC) : $(INST_STATIC) $(PERL_INC)perlshr_attr.opt $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVE) $(INST_DYNAMIC_DEP)
- If F$TrnLNm("',$shr,'").eqs."" Then Define/NoLog/User ',"$shr Sys\$Share:$shr.$Config{'dlext'}",'
- Link $(LDFLAGS) /Shareable=$(MMS$TARGET)$(OTHERLDFLAGS) $(BASEEXT).opt/Option,$(PERL_INC)perlshr_attr.opt/Option
-';
-
- join('',@m);
+ $exportlist =~ s/.def$/.opt/; # it's a linker options file
+ # 1 2 3 4 5
+ _sprintf562 <<'EOF', $to, $todir, $exportlist, $shr, "$shr Sys\$Share:$shr.$Config{'dlext'}";
+%1$s : $(INST_STATIC) $(PERL_INC)perlshr_attr.opt %2$s$(DFSEP).exists %3$s $(PERL_ARCHIVE) $(INST_DYNAMIC_DEP)
+ If F$TrnLNm("%4$s").eqs."" Then Define/NoLog/User %5$s
+ Link $(LDFLAGS) /Shareable=$(MMS$TARGET)$(OTHERLDFLAGS) %3$s/Option,$(PERL_INC)perlshr_attr.opt/Option
+EOF
}
-
-=item static_lib (override)
+=item xs_make_static_lib (override)
Use VMS commands to manipulate object library.
=cut
-sub static_lib {
- my($self) = @_;
- return '' unless $self->needs_linking();
-
- return '
-$(INST_STATIC) :
- $(NOECHO) $(NOOP)
-' unless ($self->{OBJECT} or @{$self->{C} || []} or $self->{MYEXTLIB});
+sub xs_make_static_lib {
+ my ($self, $object, $to, $todir) = @_;
+
+ my @objects;
+ if ($self->{XSMULTI}) {
+ # The extension name should be the main object file name minus file type.
+ my $lib = $object;
+ $lib =~ s/\$\(OBJ_EXT\)\z//;
+ my $override = $self->_xsbuild_value('xs', $lib, 'OBJECT');
+ $object = $override if defined $override;
+ @objects = map { $self->fixpath($_,0) } split /(?<!\^)\s+/, $object;
+ }
+ else {
+ push @objects, $object;
+ }
- my(@m);
- push @m,'
-# Rely on suffix rule for update action
-$(OBJECT) : $(INST_ARCHAUTODIR)$(DFSEP).exists
+ my @m;
+ for my $obj (@objects) {
+ push(@m, sprintf "\n%s : %s\$(DFSEP).exists", $obj, $todir);
+ }
+ push(@m, sprintf "\n\n%s : %s \$(MYEXTLIB)\n", $to, (join ' ', @objects));
-$(INST_STATIC) : $(OBJECT) $(MYEXTLIB)
-';
# If this extension has its own library (eg SDBM_File)
# then copy that to $(INST_STATIC) and add $(OBJECT) into it.
push(@m, "\t",'$(CP) $(MYEXTLIB) $(MMS$TARGET)',"\n") if $self->{MYEXTLIB};
@@ -1076,8 +1226,11 @@ $(INST_STATIC) : $(OBJECT) $(MYEXTLIB)
# 'cause it's a library and you can't stick them in other libraries.
# In that case, we use $OBJECT instead and hope for the best
if ($self->{MYEXTLIB}) {
- push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(OBJECT)',"\n");
- } else {
+ for my $obj (@objects) {
+ push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) ' . $obj,"\n");
+ }
+ }
+ else {
push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST)',"\n");
}
@@ -1359,7 +1512,7 @@ $(PERL_ARCHLIB)Config.pm : $(PERL_SRC)config.sh
]);
}
- push(@m, join(" ", map($self->fixpath($_,0),values %{$self->{XS}}))." : \$(XSUBPPDEPS)\n")
+ push(@m, join(" ", map($self->fixpath($_,0),sort values %{$self->{XS}}))." : \$(XSUBPPDEPS)\n")
if %{$self->{XS}};
join('',@m);
@@ -1469,7 +1622,7 @@ $(MAP_TARGET) :: $(MAKE_APERL_FILE)
# (e.g. Intuit::DWIM will precede Intuit, so unresolved
# references from [.intuit.dwim]dwim.obj can be found
# in [.intuit]intuit.olb).
- for (sort { length($a) <=> length($b) } keys %olbs) {
+ for (sort { length($a) <=> length($b) || $a cmp $b } keys %olbs) {
next unless $olbs{$_} =~ /\Q$self->{LIB_EXT}\E$/;
my($dir) = $self->fixpath($_,1);
my($extralibs) = $dir . "extralibs.ld";
@@ -1615,7 +1768,7 @@ map_clean :
=item maketext_filter (override)
-Insure that colons marking targets are preceded by space, in order
+Ensure that colons marking targets are preceded by space, in order
to distinguish the target delimiter from a colon appearing as
part of a filespec.
@@ -1778,7 +1931,7 @@ sub oneliner {
=item B<echo>
perl trips up on "<foo>" thinking it's an input redirect. So we use the
-native Write command instead. Besides, its faster.
+native Write command instead. Besides, it's faster.
=cut
@@ -1975,7 +2128,12 @@ sub eliminate_macros {
$complex = 1;
}
}
- else { ($macro = unixify($self->{$macro})) =~ s#/\Z(?!\n)##; }
+ else {
+ $macro = $self->{$macro};
+ # Don't unixify if there is unescaped whitespace
+ $macro = unixify($macro) unless ($macro =~ /(?<!\^)\s/);
+ $macro =~ s#/\Z(?!\n)##;
+ }
$npath = "$head$macro$tail";
}
}
@@ -2072,6 +2230,15 @@ sub is_make_type {
}
+=item make_type (override)
+
+Returns a suitable string describing the type of makefile being written.
+
+=cut
+
+sub make_type { "$Config{make}-style"; }
+
+
=back
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
index 07ad95f409a..c176118d4d3 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_VOS.pm
@@ -1,7 +1,8 @@
package ExtUtils::MM_VOS;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
index 0a2fb606f45..9844d837b7b 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win32.pm
@@ -22,25 +22,26 @@ the semantics.
use ExtUtils::MakeMaker::Config;
use File::Basename;
use File::Spec;
-use ExtUtils::MakeMaker qw( neatvalue );
+use ExtUtils::MakeMaker qw(neatvalue _sprintf562);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
$ENV{EMXSHELL} = 'sh'; # to run `commands`
-my ( $BORLAND, $GCC, $DLLTOOL ) = _identify_compiler_environment( \%Config );
+my ( $BORLAND, $GCC, $MSVC ) = _identify_compiler_environment( \%Config );
sub _identify_compiler_environment {
my ( $config ) = @_;
- my $BORLAND = $config->{cc} =~ /^bcc/i ? 1 : 0;
+ my $BORLAND = $config->{cc} =~ /\bbcc/i ? 1 : 0;
my $GCC = $config->{cc} =~ /\bgcc\b/i ? 1 : 0;
- my $DLLTOOL = $config->{dlltool} || 'dlltool';
+ my $MSVC = $config->{cc} =~ /\b(?:cl|icl)/i ? 1 : 0; # MSVC can come as clarm.exe, icl=Intel C
- return ( $BORLAND, $GCC, $DLLTOOL );
+ return ( $BORLAND, $GCC, $MSVC );
}
@@ -54,31 +55,18 @@ sub _identify_compiler_environment {
sub dlsyms {
my($self,%attribs) = @_;
+ return '' if $self->{SKIPHASH}{'dynamic'};
+ $self->xs_dlsyms_iterator(\%attribs);
+}
- my($funcs) = $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {};
- my($vars) = $attribs{DL_VARS} || $self->{DL_VARS} || [];
- my($funclist) = $attribs{FUNCLIST} || $self->{FUNCLIST} || [];
- my($imports) = $attribs{IMPORTS} || $self->{IMPORTS} || {};
- my(@m);
-
- if (not $self->{SKIPHASH}{'dynamic'}) {
- push(@m,"
-$self->{BASEEXT}.def: Makefile.PL
-",
- q! $(PERLRUN) -MExtUtils::Mksymlists \\
- -e "Mksymlists('NAME'=>\"!, $self->{NAME},
- q!\", 'DLBASE' => '!,$self->{DLBASE},
- # The above two lines quoted differently to work around
- # a bug in the 4DOS/4NT command line interpreter. The visible
- # result of the bug was files named q('extension_name',) *with the
- # single quotes and the comma* in the extension build directories.
- q!', 'DL_FUNCS' => !,neatvalue($funcs),
- q!, 'FUNCLIST' => !,neatvalue($funclist),
- q!, 'IMPORTS' => !,neatvalue($imports),
- q!, 'DL_VARS' => !, neatvalue($vars), q!);"
-!);
- }
- join('',@m);
+=item xs_dlsyms_ext
+
+On Win32, is C<.def>.
+
+=cut
+
+sub xs_dlsyms_ext {
+ '.def';
}
=item replace_manpage_separator
@@ -292,104 +280,76 @@ MAKE_FRAG
return $make_frag;
}
+=item static_lib_pure_cmd
-=item static_lib
-
-Changes how to run the linker.
-
-The rest is duplicate code from MM_Unix. Should move the linker code
-to its own method.
+Defines how to run the archive utility
=cut
-sub static_lib {
- my($self) = @_;
- return '' unless $self->has_link_code;
-
- my(@m);
- push(@m, <<'END');
-$(INST_STATIC): $(OBJECT) $(MYEXTLIB) $(INST_ARCHAUTODIR)$(DFSEP).exists
- $(RM_RF) $@
-END
-
- # If this extension has its own library (eg SDBM_File)
- # then copy that to $(INST_STATIC) and add $(OBJECT) into it.
- push @m, <<'MAKE_FRAG' if $self->{MYEXTLIB};
- $(CP) $(MYEXTLIB) $@
-MAKE_FRAG
-
- push @m,
-q{ $(AR) }.($BORLAND ? '$@ $(OBJECT:^"+")'
- : ($GCC ? '-ru $@ $(OBJECT)'
- : '-out:$@ $(OBJECT)')).q{
- $(CHMOD) $(PERM_RWX) $@
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)\extralibs.ld
-};
-
- # Old mechanism - still available:
- push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS};
- $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)\ext.libs
-MAKE_FRAG
-
- join('', @m);
+sub static_lib_pure_cmd {
+ my ($self, $from) = @_;
+ $from =~ s/(\$\(\w+)(\))/$1:^"+"$2/g if $BORLAND;
+ sprintf qq{\t\$(AR) %s\n}, ($BORLAND ? '$@ ' . $from
+ : ($GCC ? '-ru $@ ' . $from
+ : '-out:$@ ' . $from));
}
-
=item dynamic_lib
-Complicated stuff for Win32 that I don't understand. :(
+Methods are overridden here: not dynamic_lib itself, but the utility
+ones that do the OS-specific work.
=cut
-sub dynamic_lib {
- my($self, %attribs) = @_;
- return '' unless $self->needs_linking(); #might be because of a subdir
-
- return '' unless $self->has_link_code;
-
- my($otherldflags) = $attribs{OTHERLDFLAGS} || ($BORLAND ? 'c0d32.obj': '');
- my($inst_dynamic_dep) = $attribs{INST_DYNAMIC_DEP} || "";
- my($ldfrom) = '$(LDFROM)';
- my(@m);
-
- push(@m,'
-# This section creates the dynamically loadable $(INST_DYNAMIC)
-# from $(OBJECT) and possibly $(MYEXTLIB).
-OTHERLDFLAGS = '.$otherldflags.'
-INST_DYNAMIC_DEP = '.$inst_dynamic_dep.'
-
-$(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $(BOOTSTRAP) $(INST_ARCHAUTODIR)$(DFSEP).exists $(EXPORT_LIST) $(PERL_ARCHIVEDEP) $(INST_DYNAMIC_DEP)
-');
+sub xs_make_dynamic_lib {
+ my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_;
+ my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(INST_DYNAMIC_DEP)'."\n", $to, $from, $todir, $exportlist;
if ($GCC) {
- push(@m,
- q{ }.$DLLTOOL.q{ --def $(EXPORT_LIST) --output-exp dll.exp
- $(LD) -o $@ -Wl,--base-file -Wl,dll.base $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp
- }.$DLLTOOL.q{ --def $(EXPORT_LIST) --base-file dll.base --output-exp dll.exp
- $(LD) -o $@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) dll.exp });
+ # per https://rt.cpan.org/Ticket/Display.html?id=78395 no longer
+ # uses dlltool - relies on post 2002 MinGW
+ # 1 2
+ push @m, _sprintf562 <<'EOF', $exportlist, $ldfrom;
+ $(LD) %1$s -o $@ $(LDDLFLAGS) %2$s $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -Wl,--enable-auto-image-base
+EOF
} elsif ($BORLAND) {
- push(@m,
- q{ $(LD) $(LDDLFLAGS) $(OTHERLDFLAGS) }.$ldfrom.q{,$@,,}
- .($self->is_make_type('dmake')
- ? q{"$(PERL_ARCHIVE:s,/,\,)" $(LDLOADLIBS:s,/,\,) }
- .q{$(MYEXTLIB:s,/,\,),$(EXPORT_LIST:s,/,\,)}
- : q{"$(subst /,\,$(PERL_ARCHIVE))" $(subst /,\,$(LDLOADLIBS)) }
- .q{$(subst /,\,$(MYEXTLIB)),$(subst /,\,$(EXPORT_LIST))})
- .q{,$(RESFILES)});
+ my $ldargs = $self->is_make_type('dmake')
+ ? q{"$(PERL_ARCHIVE:s,/,\,)" $(LDLOADLIBS:s,/,\,) $(MYEXTLIB:s,/,\,),}
+ : q{"$(subst /,\,$(PERL_ARCHIVE))" $(subst /,\,$(LDLOADLIBS)) $(subst /,\,$(MYEXTLIB)),};
+ my $subbed;
+ if ($exportlist eq '$(EXPORT_LIST)') {
+ $subbed = $self->is_make_type('dmake')
+ ? q{$(EXPORT_LIST:s,/,\,)}
+ : q{$(subst /,\,$(EXPORT_LIST))};
+ } else {
+ # in XSMULTI, exportlist is per-XS, so have to sub in perl not make
+ ($subbed = $exportlist) =~ s#/#\\#g;
+ }
+ push @m, sprintf <<'EOF', $ldfrom, $ldargs . $subbed;
+ $(LD) $(LDDLFLAGS) $(OTHERLDFLAGS) %s,$@,,%s,$(RESFILES)
+EOF
} else { # VC
- push(@m,
- q{ $(LD) -out:$@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) }
- .q{$(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -def:$(EXPORT_LIST)});
-
+ push @m, sprintf <<'EOF', $ldfrom, $exportlist;
+ $(LD) -out:$@ $(LDDLFLAGS) %s $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -def:%s
+EOF
# Embed the manifest file if it exists
- push(@m, q{
- if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2
+ push(@m, q{ if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2
if exist $@.manifest del $@.manifest});
}
- push @m, '
- $(CHMOD) $(PERM_RWX) $@
-';
+ push @m, "\n\t\$(CHMOD) \$(PERM_RWX) \$\@\n";
+
+ join '', @m;
+}
- join('',@m);
+sub xs_dynamic_lib_macros {
+ my ($self, $attribs) = @_;
+ my $otherldflags = $attribs->{OTHERLDFLAGS} || ($BORLAND ? 'c0d32.obj': '');
+ my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || "";
+ sprintf <<'EOF', $otherldflags, $inst_dynamic_dep;
+# This section creates the dynamically loadable objects from relevant
+# objects and possibly $(MYEXTLIB).
+OTHERLDFLAGS = %s
+INST_DYNAMIC_DEP = %s
+EOF
}
=item extra_clean_files
@@ -458,14 +418,16 @@ EOF
return $self->SUPER::quote_dep($arg);
}
-=item xs_o
-This target is stubbed out. Not sure why.
+=item xs_obj_opt
+
+Override to fixup -o flags for MSVC.
=cut
-sub xs_o {
- return ''
+sub xs_obj_opt {
+ my ($self, $output_file) = @_;
+ ($MSVC ? "/Fo" : "-o ") . $output_file;
}
@@ -478,7 +440,10 @@ banner.
sub pasthru {
my($self) = shift;
- return "PASTHRU = " . ($self->is_make_type('nmake') ? "-nologo" : "");
+ my $old = $self->SUPER::pasthru;
+ return $old unless $self->is_make_type('nmake');
+ $old =~ s/(PASTHRU\s*=\s*)/$1 -nologo /;
+ $old;
}
@@ -658,6 +623,23 @@ PERLTYPE = $self->{PERLTYPE}
}
+=item make_type
+
+Returns a suitable string describing the type of makefile being written.
+
+=cut
+
+sub make_type {
+ my ($self) = @_;
+ my $make = $self->make;
+ $make = +( File::Spec->splitpath( $make ) )[-1];
+ $make =~ s!\.exe$!!i;
+ if ( $make =~ m![^A-Z0-9]!i ) {
+ ($make) = grep { m!make!i } split m![^A-Z0-9]!i, $make;
+ }
+ return "$make-style";
+}
+
1;
__END__
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
index 096f28d7e27..0d6f0e31bfc 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MM_Win95.pm
@@ -2,7 +2,8 @@ package ExtUtils::MM_Win95;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
@@ -26,59 +27,10 @@ to get MakeMaker playing nice with command.com and other Win9Xisms.
=head2 Overridden methods
Most of these make up for limitations in the Win9x/nmake command shell.
-Mostly its lack of &&.
=over 4
-=item xs_c
-
-The && problem.
-
-=cut
-
-sub xs_c {
- my($self) = shift;
- return '' unless $self->needs_linking();
- '
-.xs.c:
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c
- '
-}
-
-
-=item xs_cpp
-
-The && problem
-
-=cut
-
-sub xs_cpp {
- my($self) = shift;
- return '' unless $self->needs_linking();
- '
-.xs.cpp:
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.cpp
- ';
-}
-
-=item xs_o
-
-The && problem.
-
-=cut
-
-sub xs_o {
- my($self) = shift;
- return '' unless $self->needs_linking();
- '
-.xs$(OBJ_EXT):
- $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.c
- $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) $*.c
- ';
-}
-
-
=item max_exec_len
Win98 chokes on things like Encode if we set the max length to nmake's max
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm
index 5a080ea8c47..779c791297c 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MY.pm
@@ -3,7 +3,8 @@ package ExtUtils::MY;
use strict;
require ExtUtils::MM;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
our @ISA = qw(ExtUtils::MM);
{
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
index 42b174fe347..d579256e86e 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker.pm
@@ -12,7 +12,7 @@ use Carp;
use File::Path;
my $CAN_DECODE = eval { require ExtUtils::MakeMaker::Locale; }; # 2 birds, 1 stone
eval { ExtUtils::MakeMaker::Locale::reinit('UTF-8') }
- if $CAN_DECODE and $ExtUtils::MakeMaker::Locale::ENCODING_LOCALE eq 'US-ASCII';
+ if $CAN_DECODE and Encode::find_encoding('locale')->name eq 'ascii';
our $Verbose = 0; # exported
our @Parent; # needs to be localized
@@ -24,7 +24,7 @@ my %Recognized_Att_Keys;
our %macro_fsentity; # whether a macro is a filesystem name
our %macro_dep; # whether a macro is a dependency
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval]
# Emulate something resembling CVS $Revision$
@@ -36,7 +36,8 @@ our $Filename = __FILE__; # referenced outside MakeMaker
our @ISA = qw(Exporter);
our @EXPORT = qw(&WriteMakefile $Verbose &prompt);
our @EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists
- &WriteEmptyMakefile);
+ &WriteEmptyMakefile &open_for_writing &write_file_via_tmp
+ &_sprintf562);
# These will go away once the last of the Win32 & VMS specific code is
# purged.
@@ -54,6 +55,15 @@ require ExtUtils::MY; # XXX pre-5.8 versions of ExtUtils::Embed expect
# This will go when Embed is its own CPAN module.
+# 5.6.2 can't do sprintf "%1$s" - this can only do %s
+sub _sprintf562 {
+ my ($format, @args) = @_;
+ for (my $i = 1; $i <= @args; $i++) {
+ $format =~ s#%$i\$s#$args[$i-1]#g;
+ }
+ $format;
+}
+
sub WriteMakefile {
croak "WriteMakefile: Need even number of args" if @_ % 2;
@@ -106,6 +116,7 @@ my %Special_Sigs = (
SKIP => 'ARRAY',
TYPEMAPS => 'ARRAY',
XS => 'HASH',
+ XSBUILD => 'HASH',
VERSION => ['version',''],
_KEEP_AFTER_FLUSH => '',
@@ -141,7 +152,8 @@ sub _convert_compat_attrs { #result of running several times should be same
sub _verify_att {
my($att) = @_;
- while( my($key, $val) = each %$att ) {
+ foreach my $key (sort keys %$att) {
+ my $val = $att->{$key};
my $sig = $Att_Sigs{$key};
unless( defined $sig ) {
warn "WARNING: $key is not a known parameter.\n";
@@ -301,9 +313,9 @@ sub full_setup {
PERM_DIR PERM_RW PERM_RWX MAGICXS
PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE
PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
- SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS XSOPT XSPROTOARG
- XS_VERSION clean depend dist dynamic_lib linkext macro realclean
- tool_autosplit
+ SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS
+ XSBUILD XSMULTI XSOPT XSPROTOARG XS_VERSION
+ clean depend dist dynamic_lib linkext macro realclean tool_autosplit
MAN1EXT MAN3EXT
@@ -405,6 +417,14 @@ sub full_setup {
);
}
+sub _has_cpan_meta_requirements {
+ return eval {
+ require CPAN::Meta::Requirements;
+ CPAN::Meta::Requirements->VERSION(2.130);
+ require B; # CMR requires this, for core we have to too.
+ };
+}
+
sub new {
my($class,$self) = @_;
my($key);
@@ -423,12 +443,53 @@ sub new {
bless $self, "MM";
# Cleanup all the module requirement bits
+ my %key2cmr;
for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) {
$self->{$key} ||= {};
- $self->clean_versions( $key );
+ if (_has_cpan_meta_requirements) {
+ my $cmr = CPAN::Meta::Requirements->from_string_hash(
+ $self->{$key},
+ {
+ bad_version_hook => sub {
+ #no warnings 'numeric'; # module doesn't use warnings
+ my $fallback;
+ if ( $_[0] =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) {
+ $fallback = sprintf "%f", $_[0];
+ } else {
+ ($fallback) = $_[0] ? ($_[0] =~ /^([0-9.]+)/) : 0;
+ $fallback += 0;
+ carp "Unparsable version '$_[0]' for prerequisite $_[1] treated as $fallback";
+ }
+ version->new($fallback);
+ },
+ },
+ );
+ $self->{$key} = $cmr->as_string_hash;
+ $key2cmr{$key} = $cmr;
+ } else {
+ for my $module (sort keys %{ $self->{$key} }) {
+ my $version = $self->{$key}->{$module};
+ my $fallback = 0;
+ if (!defined($version) or !length($version)) {
+ carp "Undefined requirement for $module treated as '0' (CPAN::Meta::Requirements not available)";
+ }
+ elsif ($version =~ /^\d+(?:\.\d+(?:_\d+)*)?$/) {
+ next;
+ }
+ else {
+ if ( $version =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) {
+ $fallback = sprintf "%f", $version;
+ } else {
+ ($fallback) = $version ? ($version =~ /^([0-9.]+)/) : 0;
+ $fallback += 0;
+ carp "Unparsable version '$version' for prerequisite $module treated as $fallback (CPAN::Meta::Requirements not available)";
+ }
+ }
+ $self->{$key}->{$module} = $fallback;
+ }
+ }
}
-
if ("@ARGV" =~ /\bPREREQ_PRINT\b/) {
$self->_PREREQ_PRINT;
}
@@ -495,9 +556,24 @@ END
my(%initial_att) = %$self; # record initial attributes
my(%unsatisfied) = ();
- my $prereqs = $self->_all_prereqs;
- foreach my $prereq (sort keys %$prereqs) {
- my $required_version = $prereqs->{$prereq};
+ my %prereq2version;
+ my $cmr;
+ if (_has_cpan_meta_requirements) {
+ $cmr = CPAN::Meta::Requirements->new;
+ for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) {
+ $cmr->add_requirements($key2cmr{$key}) if $key2cmr{$key};
+ }
+ foreach my $prereq ($cmr->required_modules) {
+ $prereq2version{$prereq} = $cmr->requirements_for_module($prereq);
+ }
+ } else {
+ for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) {
+ next unless my $module2version = $self->{$key};
+ $prereq2version{$_} = $module2version->{$_} for keys %$module2version;
+ }
+ }
+ foreach my $prereq (sort keys %prereq2version) {
+ my $required_version = $prereq2version{$prereq};
my $pr_version = 0;
my $installed_file;
@@ -516,6 +592,18 @@ END
$installed_file = MM->_installed_file_for_module($prereq);
$pr_version = MM->parse_version($installed_file) if $installed_file;
$pr_version = 0 if $pr_version eq 'undef';
+ if ( !eval { version->new( $pr_version ); 1 } ) {
+ #no warnings 'numeric'; # module doesn't use warnings
+ my $fallback;
+ if ( $pr_version =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) {
+ $fallback = sprintf '%f', $pr_version;
+ } else {
+ ($fallback) = $pr_version ? ($pr_version =~ /^([0-9.]+)/) : 0;
+ $fallback += 0;
+ carp "Unparsable version '$pr_version' for installed prerequisite $prereq treated as $fallback";
+ }
+ $pr_version = $fallback;
+ }
}
# convert X.Y_Z alpha version #s to X.YZ for easier comparisons
@@ -529,13 +617,17 @@ END
$unsatisfied{$prereq} = 'not installed';
}
- elsif ($pr_version < $required_version ){
+ elsif (
+ $cmr
+ ? !$cmr->accepts_module($prereq, $pr_version)
+ : $required_version > $pr_version
+ ) {
warn sprintf "Warning: prerequisite %s %s not found. We have %s.\n",
$prereq, $required_version, ($pr_version || 'unknown version')
unless $self->{PREREQ_FATAL}
or $UNDER_CORE;
- $unsatisfied{$prereq} = $required_version ? $required_version : 'unknown version' ;
+ $unsatisfied{$prereq} = $required_version || 'unknown version' ;
}
}
@@ -671,7 +763,9 @@ END
$self->init_others();
$self->init_platform();
$self->init_PERM();
- my($argv) = neatvalue(\@ARGV);
+ my @args = @ARGV;
+ @args = map { Encode::decode(locale => $_) } @args if $CAN_DECODE;
+ my($argv) = neatvalue(\@args);
$argv =~ s/^\[/(/;
$argv =~ s/\]$/)/;
@@ -757,6 +851,7 @@ sub WriteEmptyMakefile {
croak "WriteEmptyMakefile: Need an even number of args" if @_ % 2;
my %att = @_;
+ $att{DIR} = [] unless $att{DIR}; # don't recurse by default
my $self = MM->new(\%att);
my $new = $self->{MAKEFILE};
@@ -771,6 +866,14 @@ sub WriteEmptyMakefile {
print $mfh <<'EOP';
all :
+manifypods :
+
+subdirs :
+
+dynamic :
+
+static :
+
clean :
install :
@@ -779,6 +882,10 @@ makemakerdflt :
test :
+test_dynamic :
+
+test_static :
+
EOP
close $mfh or die "close $new for write: $!";
}
@@ -1051,7 +1158,7 @@ sub _run_hintfile {
my($hint_file) = shift;
local($@, $!);
- warn "Processing hints file $hint_file\n";
+ print "Processing hints file $hint_file\n" if $Verbose;
# Just in case the ./ isn't on the hint file, which File::Spec can
# often strip off, we bung the curdir into @INC
@@ -1065,69 +1172,34 @@ sub _run_hintfile {
sub mv_all_methods {
my($from,$to) = @_;
-
- # Here you see the *current* list of methods that are overridable
- # from Makefile.PL via MY:: subroutines. As of VERSION 5.07 I'm
- # still trying to reduce the list to some reasonable minimum --
- # because I want to make it easier for the user. A.K.
-
local $SIG{__WARN__} = sub {
# can't use 'no warnings redefined', 5.6 only
warn @_ unless $_[0] =~ /^Subroutine .* redefined/
};
foreach my $method (@Overridable) {
-
- # We cannot say "next" here. Nick might call MY->makeaperl
- # which isn't defined right now
-
- # Above statement was written at 4.23 time when Tk-b8 was
- # around. As Tk-b9 only builds with 5.002something and MM 5 is
- # standard, we try to enable the next line again. It was
- # commented out until MM 5.23
-
next unless defined &{"${from}::$method"};
+ no strict 'refs'; ## no critic
+ *{"${to}::$method"} = \&{"${from}::$method"};
+
+ # If we delete a method, then it will be undefined and cannot
+ # be called. But as long as we have Makefile.PLs that rely on
+ # %MY:: being intact, we have to fill the hole with an
+ # inheriting method:
{
- no strict 'refs'; ## no critic
- *{"${to}::$method"} = \&{"${from}::$method"};
-
- # If we delete a method, then it will be undefined and cannot
- # be called. But as long as we have Makefile.PLs that rely on
- # %MY:: being intact, we have to fill the hole with an
- # inheriting method:
-
- {
- package MY;
- my $super = "SUPER::".$method;
- *{$method} = sub {
- shift->$super(@_);
- };
- }
+ package MY;
+ my $super = "SUPER::".$method;
+ *{$method} = sub {
+ shift->$super(@_);
+ };
}
}
-
- # We have to clean out %INC also, because the current directory is
- # changed frequently and Graham Barr prefers to get his version
- # out of a History.pl file which is "required" so wouldn't get
- # loaded again in another extension requiring a History.pl
-
- # With perl5.002_01 the deletion of entries in %INC caused Tk-b11
- # to core dump in the middle of a require statement. The required
- # file was Tk/MMutil.pm. The consequence is, we have to be
- # extremely careful when we try to give perl a reason to reload a
- # library with same name. The workaround prefers to drop nothing
- # from %INC and teach the writers not to use such libraries.
-
-# my $inc;
-# foreach $inc (keys %INC) {
-# #warn "***$inc*** deleted";
-# delete $INC{$inc};
-# }
}
sub skipcheck {
my($self) = shift;
my($section) = @_;
+ return 'skipped' if $section eq 'metafile' && $UNDER_CORE;
if ($section eq 'dynamic') {
print "Warning (non-fatal): Target 'dynamic' depends on targets ",
"in skipped section 'dynamic_bs'\n"
@@ -1150,64 +1222,63 @@ sub skipcheck {
return '';
}
+# returns filehandle, dies on fail. :raw so no :crlf
+sub open_for_writing {
+ my ($file) = @_;
+ open my $fh ,">", $file or die "Unable to open $file: $!";
+ my @layers = ':raw';
+ push @layers, join ' ', ':encoding(locale)' if $CAN_DECODE;
+ binmode $fh, join ' ', @layers;
+ $fh;
+}
+
sub flush {
my $self = shift;
- # This needs a bit more work for more wacky OSen
- my $type = 'Unix-style';
- if ( $self->os_flavor_is('Win32') ) {
- my $make = $self->make;
- $make = +( File::Spec->splitpath( $make ) )[-1];
- $make =~ s!\.exe$!!i;
- $type = $make . '-style';
- }
- elsif ( $Is_VMS ) {
- $type = $Config{make} . '-style';
- }
-
my $finalname = $self->{MAKEFILE};
- print "Generating a $type $finalname\n";
- print "Writing $finalname for $self->{NAME}\n";
+ printf "Generating a %s %s\n", $self->make_type, $finalname if $Verbose || !$self->{PARENT};
+ print "Writing $finalname for $self->{NAME}\n" if $Verbose || !$self->{PARENT};
unlink($finalname, "MakeMaker.tmp", $Is_VMS ? 'Descrip.MMS' : ());
- open(my $fh,">", "MakeMaker.tmp")
- or die "Unable to open MakeMaker.tmp: $!";
- binmode $fh, ':encoding(locale)' if $CAN_DECODE;
- for my $chunk (@{$self->{RESULT}}) {
+ write_file_via_tmp($finalname, $self->{RESULT});
+
+ # Write MYMETA.yml to communicate metadata up to the CPAN clients
+ print "Writing MYMETA.yml and MYMETA.json\n"
+ if !$self->{NO_MYMETA} and $self->write_mymeta( $self->mymeta );
+
+ # save memory
+ if ($self->{PARENT} && !$self->{_KEEP_AFTER_FLUSH}) {
+ my %keep = map { ($_ => 1) } qw(NEEDS_LINKING HAS_LINK_CODE);
+ delete $self->{$_} for grep !$keep{$_}, keys %$self;
+ }
+
+ system("$Config::Config{eunicefix} $finalname")
+ if $Config::Config{eunicefix} ne ":";
+
+ return;
+}
+
+sub write_file_via_tmp {
+ my ($finalname, $contents) = @_;
+ my $fh = open_for_writing("MakeMaker.tmp");
+ die "write_file_via_tmp: 2nd arg must be ref" unless ref $contents;
+ for my $chunk (@$contents) {
my $to_write = $chunk;
utf8::encode $to_write if !$CAN_DECODE && $] > 5.008;
print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!";
}
-
- close $fh
- or die "Can't write to MakeMaker.tmp: $!";
+ close $fh or die "Can't write to MakeMaker.tmp: $!";
_rename("MakeMaker.tmp", $finalname) or
warn "rename MakeMaker.tmp => $finalname: $!";
- chmod 0644, $finalname unless $Is_VMS;
-
- unless ($self->{NO_MYMETA}) {
- # Write MYMETA.yml to communicate metadata up to the CPAN clients
- if ( $self->write_mymeta( $self->mymeta ) ) {
- print "Writing MYMETA.yml and MYMETA.json\n";
- }
-
- }
- my %keep = map { ($_ => 1) } qw(NEEDS_LINKING HAS_LINK_CODE);
- if ($self->{PARENT} && !$self->{_KEEP_AFTER_FLUSH}) {
- foreach (keys %$self) { # safe memory
- delete $self->{$_} unless $keep{$_};
- }
- }
-
- system("$Config::Config{eunicefix} $finalname") unless $Config::Config{eunicefix} eq ":";
+ chmod 0644, $finalname if !$Is_VMS;
+ return;
}
# This is a rename for OS's where the target must be unlinked first.
sub _rename {
my($src, $dest) = @_;
- chmod 0666, $dest;
- unlink $dest;
+ _unlink($dest);
return rename $src, $dest;
}
@@ -1283,36 +1354,6 @@ sub _find_magic_vstring {
return $tvalue;
}
-
-# Look for weird version numbers, warn about them and set them to 0
-# before CPAN::Meta chokes.
-sub clean_versions {
- my($self, $key) = @_;
- my $reqs = $self->{$key};
- for my $module (keys %$reqs) {
- my $v = $reqs->{$module};
- my $printable = _find_magic_vstring($v);
- $v = $printable if length $printable;
- my $version = eval {
- local $SIG{__WARN__} = sub {
- # simulate "use warnings FATAL => 'all'" for vintage perls
- die @_;
- };
- version->new($v)->stringify;
- };
- if( $@ || $reqs->{$module} eq '' ) {
- if ( $] < 5.008 && $v !~ /^v?[\d_\.]+$/ ) {
- $v = sprintf "v%vd", $v unless $v eq '';
- }
- carp "Unparsable version '$v' for prerequisite $module";
- $reqs->{$module} = 0;
- }
- else {
- $reqs->{$module} = $version;
- }
- }
-}
-
sub selfdocument {
my($self) = @_;
my(@m);
@@ -1326,6 +1367,16 @@ sub selfdocument {
push @m, "# $key => $v";
}
}
+ # added here as selfdocument is not overridable
+ push @m, <<'EOF';
+
+# here so even if top_targets is overridden, these will still be defined
+# gmake will silently still work if any are .PHONY-ed but nmake won't
+EOF
+ push @m, join "\n", map "$_ ::\n\t\$(NOECHO) \$(NOOP)\n",
+ # config is so manifypods won't puke if no subdirs
+ grep !$self->{SKIPHASH}{$_},
+ qw(static dynamic config);
join "\n", @m;
}
@@ -1415,6 +1466,23 @@ MakeMaker also checks for any files matching glob("t/*.t"). It will
execute all matching files in alphabetical order via the
L<Test::Harness> module with the C<-I> switches set correctly.
+You can also organize your tests within subdirectories in the F<t/> directory.
+To do so, use the F<test> directive in your I<Makefile.PL>. For example, if you
+had tests in:
+
+ t/foo
+ t/foo/bar
+
+You could tell make to run tests in both of those directories with the
+following directives:
+
+ test => {TESTS => 't/*/*.t t/*/*/*.t'}
+ test => {TESTS => 't/foo/*.t t/foo/bar/*.t'}
+
+The first will run all test files in all first-level subdirectories and all
+subdirectories they contain. The second will run tests in only the F<t/foo>
+and F<t/foo/bar>.
+
If you'd like to see the raw output of your tests, set the
C<TEST_VERBOSE> variable to true.
@@ -2381,7 +2449,14 @@ passed to subdirectory makes.
=item PERL
-Perl binary for tasks that can be done by miniperl.
+Perl binary for tasks that can be done by miniperl. If it contains
+spaces or other shell metacharacters, it needs to be quoted in a way
+that protects them, since this value is intended to be inserted in a
+shell command line in the Makefile. E.g.:
+
+ # Perl executable lives in "C:/Program Files/Perl/bin"
+ # Normally you don't need to set this yourself!
+ $ perl Makefile.PL PERL='"C:/Program Files/Perl/bin/perl.exe" -w'
=item PERL_CORE
@@ -2480,7 +2555,9 @@ Desired permission for executable files. Defaults to C<755>.
MakeMaker can run programs to generate files for you at build time.
By default any file named *.PL (except Makefile.PL and Build.PL) in
the top level directory will be assumed to be a Perl program and run
-passing its own basename in as an argument. For example...
+passing its own basename in as an argument. This basename is actually a build
+target, and there is an intention, but not a requirement, that the *.PL file
+make the file passed to to as an argument. For example...
perl foo.PL foo
@@ -2490,6 +2567,8 @@ and the value is passed in as the first argument when the PL file is run.
PL_FILES => {'bin/foobar.PL' => 'bin/foobar'}
+ PL_FILES => {'foo.PL' => 'foo.c'}
+
Would run bin/foobar.PL like this:
perl bin/foobar.PL bin/foobar
@@ -2508,8 +2587,14 @@ INST_ARCH in their C<@INC>, so the just built modules can be
accessed... unless the PL file is making a module (or anything else in
PM) in which case it is run B<before> pm_to_blib and does not include
INST_LIB and INST_ARCH in its C<@INC>. This apparently odd behavior
-is there for backwards compatibility (and it's somewhat DWIM).
-
+is there for backwards compatibility (and it's somewhat DWIM). The argument
+passed to the .PL is set up as a target to build in the Makefile. In other
+sections such as C<postamble> you can specify a dependency on the
+filename/argument that the .PL is supposed (or will have, now that that is
+is a dependency) to generate. Note the file to be generated will still be
+generated and the .PL will still run even without an explicit dependency created
+by you, since the C<all> target still depends on running all eligible to run.PL
+files.
=item PM
@@ -2536,24 +2621,23 @@ Defining PM in the Makefile.PL will override PMLIBDIRS.
A filter program, in the traditional Unix sense (input from stdin, output
to stdout) that is passed on each .pm file during the build (in the
pm_to_blib() phase). It is empty by default, meaning no filtering is done.
+You could use:
-Great care is necessary when defining the command if quoting needs to be
-done. For instance, you would need to say:
+ PM_FILTER => 'perl -ne "print unless /^\\#/"',
- {'PM_FILTER' => 'grep -v \\"^\\#\\"'}
+to remove all the leading comments on the fly during the build. In order
+to be as portable as possible, please consider using a Perl one-liner
+rather than Unix (or other) utilities, as above. The # is escaped for
+the Makefile, since what is going to be generated will then be:
-to remove all the leading comments on the fly during the build. The
-extra \\ are necessary, unfortunately, because this variable is interpolated
-within the context of a Perl program built on the command line, and double
-quotes are what is used with the -e switch to build that command line. The
-# is escaped for the Makefile, since what is going to be generated will then
-be:
+ PM_FILTER = perl -ne "print unless /^\#/"
- PM_FILTER = grep -v \"^\#\"
-
-Without the \\ before the #, we'd have the start of a Makefile comment,
+Without the \ before the #, we'd have the start of a Makefile comment,
and the macro would be incorrectly defined.
+You will almost certainly be better off using the C<PL_FILES> system,
+instead. See above, or the L<ExtUtils::MakeMaker::FAQ> entry.
+
=item POLLUTE
Release 5.005 grandfathered old global symbol names by providing preprocessor
@@ -2623,8 +2707,11 @@ doesn't. See L<Test::More/BAIL_OUT> for more details.
A hash of modules that are needed to run your module. The keys are
the module names ie. Test::More, and the minimum version is the
value. If the required version number is 0 any version will do.
+The versions given may be a Perl v-string (see L<version>) or a range
+(see L<CPAN::Meta::Requirements>).
-This will go into the C<requires> field of your F<META.yml> and the C<runtime> of the C<prereqs> field of your F<META.json>.
+This will go into the C<requires> field of your F<META.yml> and the
+C<runtime> of the C<prereqs> field of your F<META.json>.
PREREQ_PM => {
# Require Test::More at least 0.47
@@ -2793,6 +2880,49 @@ Hashref of .xs files. MakeMaker will default this. e.g.
The .c files will automatically be included in the list of files
deleted by a make clean.
+=item XSBUILD
+
+Hashref with options controlling the operation of C<XSMULTI>:
+
+ {
+ xs => {
+ all => {
+ # options applying to all .xs files for this distribution
+ },
+ 'lib/Class/Name/File' => { # specifically for this file
+ DEFINE => '-Dfunktastic', # defines for only this file
+ INC => "-I$funkyliblocation", # include flags for only this file
+ # OBJECT => 'lib/Class/Name/File$(OBJ_EXT)', # default
+ LDFROM => "lib/Class/Name/File\$(OBJ_EXT) $otherfile\$(OBJ_EXT)", # what's linked
+ },
+ },
+ }
+
+Note C<xs> is the file-extension. More possibilities may arise in the
+future. Note that object names are specified without their XS extension.
+
+C<LDFROM> defaults to the same as C<OBJECT>. C<OBJECT> defaults to,
+for C<XSMULTI>, just the XS filename with the extension replaced with
+the compiler-specific object-file extension.
+
+The distinction between C<OBJECT> and C<LDFROM>: C<OBJECT> is the make
+target, so make will try to build it. However, C<LDFROM> is what will
+actually be linked together to make the shared object or static library
+(SO/SL), so if you override it, make sure it includes what you want to
+make the final SO/SL, almost certainly including the XS basename with
+C<$(OBJ_EXT)> appended.
+
+=item XSMULTI
+
+When this is set to C<1>, multiple XS files may be placed under F<lib/>
+next to their corresponding C<*.pm> files (this is essential for compiling
+with the correct C<VERSION> values). This feature should be considered
+experimental, and details of it may change.
+
+This feature was inspired by, and small portions of code copied from,
+L<ExtUtils::MakeMaker::BigHelper>. Hopefully this feature will render
+that module mainly obsolete.
+
=item XSOPT
String of options to pass to xsubpp. This might include C<-C++> or
@@ -3112,13 +3242,13 @@ part of the 'distdir' target (and thus the 'dist' target). This is intended to
seamlessly and rapidly populate CPAN with module meta-data. If you wish to
shut this feature off, set the C<NO_META> C<WriteMakefile()> flag to true.
-At the 2008 QA Hackathon in Oslo, Perl module toolchain maintainers agrees
+At the 2008 QA Hackathon in Oslo, Perl module toolchain maintainers agreed
to use the CPAN Meta format to communicate post-configuration requirements
between toolchain components. These files, F<MYMETA.json> and F<MYMETA.yml>,
are generated when F<Makefile.PL> generates a F<Makefile> (if L<CPAN::Meta>
-is installed). Clients like L<CPAN> or L<CPANPLUS> will read this
+is installed). Clients like L<CPAN> or L<CPANPLUS> will read these
files to see what prerequisites must be fulfilled before building or testing
-the distribution. If you with to shut this feature off, set the C<NO_MYMETA>
+the distribution. If you wish to shut this feature off, set the C<NO_MYMETA>
C<WriteMakeFile()> flag to true.
=head2 Disabling an extension
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
index 707e3bf7c03..bce9c66dee6 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Config.pm
@@ -2,7 +2,8 @@ package ExtUtils::MakeMaker::Config;
use strict;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
use Config ();
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
index d3aa100fb9f..179c9d6f30a 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/FAQ.pod
@@ -1,6 +1,7 @@
package ExtUtils::MakeMaker::FAQ;
-our $VERSION = '7.10_01';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
1;
__END__
@@ -21,8 +22,12 @@ FAQs, tricks and tips for C<ExtUtils::MakeMaker>.
=item How do I install a module into my home directory?
If you're not the Perl administrator you probably don't have
-permission to install a module to its default location. Then you
-should install it for your own use into your home directory like so:
+permission to install a module to its default location. Ways of handling
+this with a B<lot> less manual effort on your part are L<perlbrew>
+and L<local::lib>.
+
+Otherwise, you can install it for your own use into your home directory
+like so:
# Non-unix folks, replace ~ with /path/to/your/home/dir
perl Makefile.PL INSTALL_BASE=~
@@ -41,7 +46,6 @@ reason, do it the long way.
use lib "/path/to/your/home/dir/lib/perl5";
-
=item How do I get MakeMaker and Module::Build to install to the same place?
Module::Build, as of 0.28, supports two ways to install to the same
@@ -99,8 +103,10 @@ Two ways. One is to build the module normally...
make
make test
-...and then set the PERL5LIB environment variable to point at the
-blib/lib and blib/arch directories.
+...and then use L<blib> to point Perl at the built but uninstalled module:
+
+ perl -Mblib script.pl
+ perl -Mblib -e '...'
The other is to install the module in a temporary location.
@@ -112,20 +118,89 @@ The other is to install the module in a temporary location.
And then set PERL5LIB to F<~/tmp/lib/perl5>. This works well when you
have multiple modules to work with. It also ensures that the module
goes through its full installation process which may modify it.
+Again, L<local::lib> may assist you here.
+
+=item How can I organize tests into subdirectories and have them run?
+
+Let's take the following test directory structure:
+
+ t/foo/sometest.t
+ t/bar/othertest.t
+ t/bar/baz/anothertest.t
+
+Now, inside of the C<WriteMakeFile()> function in your F<Makefile.PL>, specify
+where your tests are located with the C<test> directive:
+
+ test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
+
+The first entry in the string will run all tests in the top-level F<t/>
+directory. The second will run all test files located in any subdirectory under
+F<t/>. The third, runs all test files within any subdirectory within any other
+subdirectory located under F<t/>.
+
+Note that you do not have to use wildcards. You can specify explicitly which
+subdirectories to run tests in:
+
+ test => {TESTS => 't/*.t t/foo/*.t t/bar/baz/*.t'}
=item PREFIX vs INSTALL_BASE from Module::Build::Cookbook
The behavior of PREFIX is complicated and depends closely on how your
-Perl is configured. The resulting installation locations will vary from
-machine to machine and even different installations of Perl on the same machine.
-Because of this, its difficult to document where prefix will place your modules.
+Perl is configured. The resulting installation locations will vary
+from machine to machine and even different installations of Perl on the
+same machine. Because of this, its difficult to document where prefix
+will place your modules.
+
+In contrast, INSTALL_BASE has predictable, easy to explain installation
+locations. Now that Module::Build and MakeMaker both have INSTALL_BASE
+there is little reason to use PREFIX other than to preserve your existing
+installation locations. If you are starting a fresh Perl installation we
+encourage you to use INSTALL_BASE. If you have an existing installation
+installed via PREFIX, consider moving it to an installation structure
+matching INSTALL_BASE and using that instead.
+
+=item Generating *.pm files with substitutions eg of $VERSION
+
+If you want to configure your module files for local conditions, or to
+automatically insert a version number, you can use EUMM's C<PL_FILES>
+capability, where it will automatically run each F<*.PL> it finds to
+generate its basename. For instance:
+
+ # Makefile.PL:
+ require 'common.pl';
+ my $version = get_version();
+ my @pms = qw(Foo.pm);
+ WriteMakefile(
+ NAME => 'Foo',
+ VERSION => $version,
+ PM => { map { ($_ => "\$(INST_LIB)/$_") } @pms },
+ clean => { FILES => join ' ', @pms },
+ );
-In contrast, INSTALL_BASE has predictable, easy to explain installation locations.
-Now that Module::Build and MakeMaker both have INSTALL_BASE there is little reason
-to use PREFIX other than to preserve your existing installation locations. If you
-are starting a fresh Perl installation we encourage you to use INSTALL_BASE. If
-you have an existing installation installed via PREFIX, consider moving it to an
-installation structure matching INSTALL_BASE and using that instead.
+ # common.pl:
+ sub get_version { '0.04' }
+ sub process { my $v = get_version(); s/__VERSION__/$v/g; }
+ 1;
+
+ # Foo.pm.PL:
+ require 'common.pl';
+ $_ = join '', <DATA>;
+ process();
+ my $file = shift;
+ open my $fh, '>', $file or die "$file: $!";
+ print $fh $_;
+ __DATA__
+ package Foo;
+ our $VERSION = '__VERSION__';
+ 1;
+
+You may notice that C<PL_FILES> is not specified above, since the default
+of mapping each .PL file to its basename works well.
+
+If the generated module were architecture-specific, you could replace
+C<$(INST_LIB)> above with C<$(INST_ARCHLIB)>, although if you locate
+modules under F<lib>, that would involve ensuring any C<lib/> in front
+of the module location were removed.
=back
@@ -184,16 +259,16 @@ Its primary advantages are:
=back
-Module::Build was long the official heir apparent to MakeMaker. The rate of
-both its development and adoption has slowed in recent years, though, and it is
-unclear what the future holds for it. That said, Module::Build set the stage
-for I<something> to become the heir to MakeMaker. MakeMaker's maintainers have
-long said that it is a dead end and should be kept functioning, but not
-extended with new features. It's complicated enough as it is!
+Module::Build was long the official heir apparent to MakeMaker. The
+rate of both its development and adoption has slowed in recent years,
+though, and it is unclear what the future holds for it. That said,
+Module::Build set the stage for I<something> to become the heir to
+MakeMaker. MakeMaker's maintainers have long said that it is a dead
+end and should be kept functioning, while being cautious about extending
+with new features.
=back
-
=head2 Module Writing
=over 4
@@ -207,8 +282,14 @@ modules in your dist, $VERSION is really just bookkeeping and all that's
important is it goes up every time the module is changed. Doing this
by hand is a pain and you often forget.
-Simplest way to do it automatically is to use your version control
-system's revision number (you are using version control, right?).
+Probably the easiest way to do this is using F<perl-reversion> in
+L<Perl::Version>:
+
+ perl-reversion -bump
+
+If your version control system supports revision numbers (git doesn't
+easily), the simplest way to do it automatically is to use its revision
+number (you are using version control, right?).
In CVS, RCS and SVN you use $Revision$ (see the documentation of your
version control system for details). Every time the file is checked
@@ -300,7 +381,7 @@ do that. Use at your own risk. Have fun blowing holes in your foot.
We recommend ptar from Archive::Tar not older than 1.66 with '-C' option.
-=item Which zip should I use on Windows for '[nd]make zipdist'?
+=item Which zip should I use on Windows for '[ndg]make zipdist'?
We recommend InfoZIP: L<http://www.info-zip.org/Zip.html>
@@ -309,9 +390,7 @@ We recommend InfoZIP: L<http://www.info-zip.org/Zip.html>
=head2 XS
-=over 4
-
-=item How do I prevent "object version X.XX does not match bootstrap parameter Y.YY" errors?
+=head3 How do I prevent "object version X.XX does not match bootstrap parameter Y.YY" errors?
XS code is very sensitive to the module version number and will
complain if the version number in your Perl module doesn't match. If
@@ -326,12 +405,28 @@ WriteMakefile() arguments.
depend => { '$(FIRST_MAKEFILE)' => '$(VERSION_FROM)' }
-=item How do I make two or more XS files coexist in the same directory?
+=head3 How do I make two or more XS files coexist in the same directory?
Sometimes you need to have two and more XS files in the same package.
-One way to go is to put them into separate directories, but sometimes
-this is not the most suitable solution. The following technique allows
-you to put two (and more) XS files in the same directory.
+There are three ways: C<XSMULTI>, separate directories, and bootstrapping
+one XS from another.
+
+=head4 XSMULTI
+
+Structure your modules so they are all located under F<lib>, such that
+C<Foo::Bar> is in F<lib/Foo/Bar.pm> and F<lib/Foo/Bar.xs>, etc. Have your
+top-level C<WriteMakefile> set the variable C<XSMULTI> to a true value.
+
+Er, that's it.
+
+=head4 Separate directories
+
+Put each XS files into separate directories, each with their own
+F<Makefile.PL>. Make sure each of those F<Makefile.PL>s has the correct
+C<CFLAGS>, C<INC>, C<LIBS> etc. You will need to make sure the top-level
+F<Makefile.PL> refers to each of these using C<DIR>.
+
+=head4 Bootstrapping
Let's assume that we have a package C<Cool::Foo>, which includes
C<Cool::Foo> and C<Cool::Bar> modules each having a separate XS
@@ -446,12 +541,113 @@ And of course a very basic test:
This tip has been brought to you by Nick Ing-Simmons and Stas Bekman.
+An alternative way to achieve this can be seen in L<Gtk2::CodeGen>
+and L<Glib::CodeGen>.
+
=back
+=head1 DESIGN
+
+=head2 MakeMaker object hierarchy (simplified)
+
+What most people need to know (superclasses on top.)
+
+ ExtUtils::MM_Any
+ |
+ ExtUtils::MM_Unix
+ |
+ ExtUtils::MM_{Current OS}
+ |
+ ExtUtils::MakeMaker
+ |
+ MY
+
+The object actually used is of the class MY which allows you to
+override bits of MakeMaker inside your Makefile.PL by declaring
+MY::foo() methods.
+
+=head2 MakeMaker object hierarchy (real)
+
+Here's how it really works:
+
+ ExtUtils::MM_Any
+ |
+ ExtUtils::MM_Unix
+ |
+ ExtUtils::Liblist::Kid ExtUtils::MM_{Current OS} (if necessary)
+ | |
+ ExtUtils::Liblist ExtUtils::MakeMaker |
+ | | |
+ | | |-----------------------
+ ExtUtils::MM
+ | |
+ ExtUtils::MY MM (created by ExtUtils::MM)
+ | |
+ MY (created by ExtUtils::MY) |
+ . |
+ (mixin) |
+ . |
+ PACK### (created each call to ExtUtils::MakeMaker->new)
+
+NOTE: Yes, this is a mess. See
+L<http://archive.develooper.com/makemaker@perl.org/msg00134.html>
+for some history.
+
+NOTE: When ExtUtils::MM is loaded it chooses a superclass for MM from
+amongst the ExtUtils::MM_* modules based on the current operating
+system.
+
+NOTE: ExtUtils::MM_{Current OS} represents one of the ExtUtils::MM_*
+modules except ExtUtils::MM_Any chosen based on your operating system.
+
+NOTE: The main object used by MakeMaker is a PACK### object, *not*
+ExtUtils::MakeMaker. It is, effectively, a subclass of MY,
+ExtUtils::Makemaker, ExtUtils::Liblist and ExtUtils::MM_{Current OS}
+
+NOTE: The methods in MY are simply copied into PACK### rather than
+MY being a superclass of PACK###. I don't remember the rationale.
+
+NOTE: ExtUtils::Liblist should be removed from the inheritence hiearchy
+and simply be called as functions.
+
+NOTE: Modules like File::Spec and Exporter have been omitted for clarity.
+
+
+=head2 The MM_* hierarchy
+
+ MM_Win95 MM_NW5
+ \ /
+ MM_BeOS MM_Cygwin MM_OS2 MM_VMS MM_Win32 MM_DOS MM_UWIN
+ \ | | | / / /
+ ------------------------------------------------
+ | |
+ MM_Unix |
+ | |
+ MM_Any
+
+NOTE: Each direct MM_Unix subclass is also an MM_Any subclass. This
+is a temporary hack because MM_Unix overrides some MM_Any methods with
+Unix specific code. It allows the non-Unix modules to see the
+original MM_Any implementations.
+
+NOTE: Modules like File::Spec and Exporter have been omitted for clarity.
+
=head1 PATCHING
If you have a question you'd like to see added to the FAQ (whether or
-not you have the answer) please send it to makemaker@perl.org.
+not you have the answer) please either:
+
+=over 2
+
+=item * make a pull request on the MakeMaker github repository
+
+=item * raise a issue on the MakeMaker github repository
+
+=item * file an RT ticket
+
+=item * email makemaker@perl.org
+
+=back
=head1 AUTHOR
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm
index 68fcd4c5b84..bec2cc15a48 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Locale.pm
@@ -1,7 +1,8 @@
package ExtUtils::MakeMaker::Locale;
use strict;
-our $VERSION = "7.10";
+our $VERSION = "7.24";
+$VERSION = eval $VERSION;
use base 'Exporter';
our @EXPORT_OK = qw(
@@ -27,11 +28,8 @@ sub _init {
eval {
unless (defined &GetConsoleCP) {
require Win32;
- # no point falling back to Win32::GetConsoleCP from this
- # as added same time, 0.45
- eval { Win32::GetConsoleCP() };
# manually "import" it since Win32->import refuses
- *GetConsoleCP = sub { &Win32::GetConsoleCP } unless $@;
+ *GetConsoleCP = sub { &Win32::GetConsoleCP } if defined &Win32::GetConsoleCP;
}
unless (defined &GetConsoleCP) {
require Win32::API;
@@ -51,18 +49,17 @@ sub _init {
require Win32;
eval { Win32::GetConsoleCP() };
# manually "import" it since Win32->import refuses
- *GetInputCP = sub { &Win32::GetConsoleCP } unless $@;
- *GetOutputCP = sub { &Win32::GetConsoleOutputCP } unless $@;
+ *GetInputCP = sub { &Win32::GetConsoleCP } if defined &Win32::GetConsoleCP;
+ *GetOutputCP = sub { &Win32::GetConsoleOutputCP } if defined &Win32::GetConsoleOutputCP;
};
unless (defined &GetInputCP) {
eval {
# try Win32::Console module for codepage to use
require Win32::Console;
- eval { Win32::Console::InputCP() };
*GetInputCP = sub { &Win32::Console::InputCP }
- unless $@;
+ if defined &Win32::Console::InputCP;
*GetOutputCP = sub { &Win32::Console::OutputCP }
- unless $@;
+ if defined &Win32::Console::OutputCP;
};
}
unless (defined &GetInputCP) {
@@ -137,7 +134,7 @@ Encode::Alias::define_alias(sub {
sub _flush_aliases {
no strict 'refs';
- for my $a (keys %Encode::Alias::Alias) {
+ for my $a (sort keys %Encode::Alias::Alias) {
if (defined ${"ENCODING_" . uc($a)}) {
delete $Encode::Alias::Alias{$a};
warn "Flushed alias cache for $a" if DEBUG;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
index 7e53baa525b..76c08d1bed9 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/Tutorial.pod
@@ -1,6 +1,7 @@
package ExtUtils::MakeMaker::Tutorial;
-our $VERSION = '7.10_01';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
=head1 NAME
@@ -103,8 +104,39 @@ is F<lib/Foo/Bar.pm>.
=item t/
Tests for your modules go here. Each test filename ends with a .t.
-So F<t/foo.t>/ 'make test' will run these tests. The directory is flat,
-you cannot, for example, have t/foo/bar.t run by 'make test'.
+So F<t/foo.t> 'make test' will run these tests.
+
+Typically, the F<t/> test directory is flat, with all test files located
+directly within it. However, you can nest tests within subdirectories, for
+example:
+
+ t/foo/subdir_test.t
+
+To do this, you need to inform C<WriteMakeFile()> in your I<Makefile.PL> file
+in the following fashion:
+
+ test => {TESTS => 't/*.t t/*/*.t'}
+
+That will run all tests in F<t/>, as well as all tests in all subdirectories
+that reside under F<t/>. You can nest as deeply as makes sense for your project.
+Simply add another entry in the test location string. For example, to test:
+
+ t/foo/bar/subdir_test.t
+
+You would use the following C<test> directive:
+
+ test => {TESTS => 't/*.t t/*/*/*.t}
+
+Note that in the above example, tests in the first subdirectory will not be
+run. To run all tests in the intermediary subdirectory preceeding the one
+the test files are in, you need to explicitly note it:
+
+ test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'}
+
+You don't need to specify wildcards if you only want to test within specific
+subdirectories. The following example will only run tests in F<t/foo>:
+
+ test => {TESTS => 't/foo/*.t'}
Tests are run from the top level of your distribution. So inside a test
you would refer to ./lib to enter the lib directory, for example.
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm
index 35cd2ab9b30..bcfaaa342c5 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/MakeMaker/version.pm
@@ -10,12 +10,13 @@
package ExtUtils::MakeMaker::version;
-use 5.006002;
+use 5.006001;
use strict;
use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
-$VERSION = '7.10_01';
+$VERSION = '7.24';
+$VERSION = eval $VERSION;
$CLASS = 'version';
{
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
index 61c66df7ed1..5d397b1bdef 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Miniperl.pm
@@ -8,7 +8,7 @@ use vars qw($VERSION @ISA @EXPORT);
@ISA = qw(Exporter);
@EXPORT = qw(writemain);
-$VERSION = '1.05';
+$VERSION = '1.06';
# blead will run this with miniperl, hence we can't use autodie or File::Temp
my $temp;
@@ -36,10 +36,10 @@ sub writemain{
my(@exts) = @_;
printf $fh <<'EOF!HEAD', xsi_header();
-/* miniperlmain.c
+/* miniperlmain.c or perlmain.c - a generated file
*
* Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
- * 2004, 2005, 2006, 2007, by Larry Wall and others
+ * 2004, 2005, 2006, 2007, 2016 by Larry Wall 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.
@@ -56,11 +56,18 @@ sub writemain{
/* This file contains the main() function for the perl interpreter.
* Note that miniperlmain.c contains main() for the 'miniperl' binary,
- * while perlmain.c contains main() for the 'perl' binary.
+ * while perlmain.c contains main() for the 'perl' binary. The typical
+ * difference being that the latter includes Dynaloader.
*
* Miniperl is like perl except that it does not support dynamic loading,
* and in fact is used to build the dynamic modules needed for the 'real'
* perl executable.
+ *
+ * The content of the body of this generated file is mostly contained
+ * in Miniperl.pm - edit that file if you want to change anything.
+ * miniperlmain.c is generated by running regen/miniperlmain.pl.pl, while
+ * perlmain.c is built automatically by Makefile (so the former is
+ * included in the tarball while the latter isn't).
*/
#ifdef OEMVS
@@ -217,7 +224,7 @@ __END__
=head1 NAME
-ExtUtils::Miniperl - write the C code for perlmain.c
+ExtUtils::Miniperl - write the C code for miniperlmain.c and perlmain.c
=head1 SYNOPSIS
@@ -230,18 +237,21 @@ ExtUtils::Miniperl - write the C code for perlmain.c
=head1 DESCRIPTION
-C<writemain()> takes an argument list of directories containing archive
+C<writemain()> takes an argument list of zero or more 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
+perl binary. It writes a corresponding F<miniperlmain.c> or 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 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
-L<ExtUtils::MakeMaker>. So under normal circumstances you won't have to
-deal with this module directly.
+The typical usage is from within perl's own Makefile (to build
+F<perlmain.c>) or from F<regen/miniperlmain.pl> (to build miniperlmain.c).
+So under normal circumstances you won't have to deal with this module
+directly.
=head1 SEE ALSO
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
index dc2310e0f98..5eea8bc67e4 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Mkbootstrap.pm
@@ -3,7 +3,8 @@ package ExtUtils::Mkbootstrap;
# There's just too much Dynaloader incest here to turn on strict vars.
use strict 'refs';
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
require Exporter;
our @ISA = ('Exporter');
@@ -47,7 +48,7 @@ sub Mkbootstrap {
my(@all) = (@bsloadlibs, @DynaLoader::dl_resolve_using);
my($method) = '';
- if (@all){
+ if (@all || (defined $DynaLoader::bscode && length $DynaLoader::bscode)){
open my $bs, ">", "$baseext.bs"
or die "Unable to open $baseext.bs: $!";
print "Writing $baseext.bs\n";
@@ -56,13 +57,15 @@ sub Mkbootstrap {
print $bs "# Do not edit this file, changes will be lost.\n";
print $bs "# This file was automatically generated by the\n";
print $bs "# Mkbootstrap routine in ExtUtils::Mkbootstrap (v$VERSION).\n";
- print $bs "\@DynaLoader::dl_resolve_using = ";
- # If @all contains names in the form -lxxx or -Lxxx then it's asking for
- # runtime library location so we automatically add a call to dl_findfile()
- if (" @all" =~ m/ -[lLR]/){
- print $bs " dl_findfile(qw(\n @all\n ));\n";
- }else{
- print $bs " qw(@all);\n";
+ if (@all) {
+ print $bs "\@DynaLoader::dl_resolve_using = ";
+ # If @all contains names in the form -lxxx or -Lxxx then it's asking for
+ # runtime library location so we automatically add a call to dl_findfile()
+ if (" @all" =~ m/ -[lLR]/){
+ print $bs " dl_findfile(qw(\n @all\n ));\n";
+ } else {
+ print $bs " qw(@all);\n";
+ }
}
# write extra code if *_BS says so
print $bs $DynaLoader::bscode if $DynaLoader::bscode;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
index 37180b89605..0cfb22ac28f 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Mksymlists.pm
@@ -10,7 +10,8 @@ use Config;
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
sub Mksymlists {
my(%spec) = @_;
@@ -135,7 +136,7 @@ sub _write_win32 {
open( my $def, ">", "$data->{FILE}.def" )
or croak("Can't create $data->{FILE}.def: $!\n");
# put library name in quotes (it could be a keyword, like 'Alias')
- if ($Config::Config{'cc'} !~ /^gcc/i) {
+ if ($Config::Config{'cc'} !~ /\bgcc/i) {
print $def "LIBRARY \"$data->{DLBASE}\"\n";
}
print $def "EXPORTS\n ";
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
index 32d74e18e8d..5aec25d80b1 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pm
@@ -11,7 +11,7 @@ use Symbol;
our $VERSION;
BEGIN {
- $VERSION = '3.31';
+ $VERSION = '3.34';
}
use ExtUtils::ParseXS::Constants $VERSION;
use ExtUtils::ParseXS::CountLines $VERSION;
@@ -686,7 +686,7 @@ EOF
var => $_,
do_setmagic => $self->{DoSetMagic},
do_push => undef,
- } ) for grep $self->{in_out}->{$_} =~ /OUT$/, keys %{ $self->{in_out} };
+ } ) for grep $self->{in_out}->{$_} =~ /OUT$/, sort keys %{ $self->{in_out} };
my $prepush_done;
# all OUTPUT done, so now push the return value on the stack
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod
index 6bec01482cf..80bf13fd071 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS.pod
@@ -20,7 +20,7 @@ ExtUtils::ParseXS - converts Perl XS code into C code
optimize => 1,
prototypes => 1,
);
-
+
# Legacy non-OO interface using a singleton:
use ExtUtils::ParseXS qw(process_file);
process_file( filename => 'foo.xs' );
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
index 2319a24c2c8..dfc74de9352 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Constants.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use Symbol;
-our $VERSION = '3.31';
+our $VERSION = '3.34';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
index 222a95c245d..98251a87087 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/CountLines.pm
@@ -1,7 +1,7 @@
package ExtUtils::ParseXS::CountLines;
use strict;
-our $VERSION = '3.31';
+our $VERSION = '3.34';
our $SECTION_END_MARKER;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
index 73153326e91..833753ba933 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Eval.pm
@@ -2,7 +2,7 @@ package ExtUtils::ParseXS::Eval;
use strict;
use warnings;
-our $VERSION = '3.31';
+our $VERSION = '3.34';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
index 41a9f6de57c..b2e8cb89f75 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/ParseXS/Utilities.pm
@@ -5,7 +5,7 @@ use Exporter;
use File::Spec;
use ExtUtils::ParseXS::Constants ();
-our $VERSION = '3.31';
+our $VERSION = '3.34';
our (@ISA, @EXPORT_OK);
@ISA = qw(Exporter);
@@ -472,7 +472,7 @@ S_croak_xs_usage(const CV *const cv, const char *const params)
Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
} else {
/* Pants. I don't think that it should be possible to get here. */
- Perl_croak_nocontext("Usage: CODE(0x%"UVxf")(%s)", PTR2UV(cv), params);
+ Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
}
}
#undef PERL_ARGS_ASSERT_CROAK_XS_USAGE
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
index 48d623ef71d..51af88c5a10 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.31';
+our $VERSION = '3.34';
require ExtUtils::ParseXS;
require ExtUtils::ParseXS::Constants;
@@ -22,7 +22,7 @@ ExtUtils::Typemaps - Read/Write/Modify Perl/XS typemap files
# $typemap = ExtUtils::Typemaps->new();
# alternatively create an in-memory typemap by parsing a string
# $typemap = ExtUtils::Typemaps->new(string => $sometypemap);
-
+
# add a mapping
$typemap->add_typemap(ctype => 'NV', xstype => 'T_NV');
$typemap->add_inputmap(
@@ -33,13 +33,13 @@ ExtUtils::Typemaps - Read/Write/Modify Perl/XS typemap files
);
$typemap->add_string(string => $typemapstring);
# will be parsed and merged
-
+
# remove a mapping (same for remove_typemap and remove_outputmap...)
$typemap->remove_inputmap(xstype => 'SomeType');
-
+
# save a typemap to a file
$typemap->write(file => 'anotherfile.map');
-
+
# merge the other typemap into this one
$typemap->merge(typemap => $another_typemap);
@@ -536,7 +536,7 @@ sub get_outputmap {
Write the typemap to a file. Optionally takes a C<file> argument. If given, the
typemap will be written to the specified file. If not, the typemap is written
-to the currently stored file name (see C<-E<gt>file> above, this defaults to the file
+to the currently stored file name (see L</file> above, this defaults to the file
it was read from if any).
=cut
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm
index ffed504f9ff..c9491a195b7 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Cmd.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::Cmd;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.31';
+our $VERSION = '3.34';
use ExtUtils::Typemaps;
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm
index 86c646d543e..ff620d8db62 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/InputMap.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::InputMap;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.31';
+our $VERSION = '3.34';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm
index 32cf9f93270..c454c489b45 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/OutputMap.pm
@@ -2,7 +2,7 @@ package ExtUtils::Typemaps::OutputMap;
use 5.006001;
use strict;
use warnings;
-our $VERSION = '3.31';
+our $VERSION = '3.34';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
index abe93cb8ebe..764e4b68d84 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/Typemaps/Type.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
require ExtUtils::Typemaps;
-our $VERSION = '3.31';
+our $VERSION = '3.34';
=head1 NAME
diff --git a/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm b/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm
index 1756998c4d1..0e774664ffa 100644
--- a/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm
+++ b/Master/tlpkg/tlperl/lib/ExtUtils/testlib.pm
@@ -3,7 +3,8 @@ package ExtUtils::testlib;
use strict;
use warnings;
-our $VERSION = '7.10_02';
+our $VERSION = '7.24';
+$VERSION = eval $VERSION;
use Cwd;
use File::Spec;
diff --git a/Master/tlpkg/tlperl/lib/File/Copy.pm b/Master/tlpkg/tlperl/lib/File/Copy.pm
index 842bd31cefe..47e6429771a 100644
--- a/Master/tlpkg/tlperl/lib/File/Copy.pm
+++ b/Master/tlpkg/tlperl/lib/File/Copy.pm
@@ -22,7 +22,7 @@ sub syscopy;
sub cp;
sub mv;
-$VERSION = '2.31';
+$VERSION = '2.32';
require Exporter;
@ISA = qw(Exporter);
@@ -479,6 +479,11 @@ from the input filespec, then all timestamps other than the
revision date are propagated. If this parameter is not supplied,
it defaults to 0.
+C<rmscopy> is VMS specific and cannot be exported; it must be
+referenced by its full name, e.g.:
+
+ File::Copy::rmscopy($from, $to) or die $!;
+
Like C<copy>, C<rmscopy> returns 1 on success. If an error occurs,
it sets C<$!>, deletes the output file, and returns 0.
diff --git a/Master/tlpkg/tlperl/lib/File/Fetch.pm b/Master/tlpkg/tlperl/lib/File/Fetch.pm
index de2ab123363..acfa442841a 100644
--- a/Master/tlpkg/tlperl/lib/File/Fetch.pm
+++ b/Master/tlpkg/tlperl/lib/File/Fetch.pm
@@ -22,7 +22,7 @@ use vars qw[ $VERBOSE $PREFER_BIN $FROM_EMAIL $USER_AGENT
$FTP_PASSIVE $TIMEOUT $DEBUG $WARN $FORCEIPV4
];
-$VERSION = '0.48_01';
+$VERSION = '0.52';
$VERSION = eval $VERSION; # avoid warnings with development releases
$PREFER_BIN = 0; # XXX TODO implement
$FROM_EMAIL = 'File-Fetch@example.com';
@@ -39,6 +39,7 @@ $FORCEIPV4 = 0;
### methods available to fetch the file depending on the scheme
$METHODS = {
http => [ qw|lwp httptiny wget curl lftp fetch httplite lynx iosock| ],
+ https => [ qw|lwp wget curl| ],
ftp => [ qw|lwp netftp wget curl lftp fetch ncftp ftp| ],
file => [ qw|lwp lftp file| ],
rsync => [ qw|rsync| ],
@@ -51,6 +52,9 @@ local $Params::Check::VERBOSE = 1;
local $Module::Load::Conditional::VERBOSE = 0;
local $Module::Load::Conditional::VERBOSE = 0;
+### Fix CVE-2016-1238 ###
+local $Module::Load::Conditional::FORCE_SAFE_INC = 1;
+
### see what OS we are on, important for file:// uris ###
use constant ON_WIN => ($^O eq 'MSWin32');
use constant ON_VMS => ($^O eq 'VMS');
@@ -164,6 +168,7 @@ http://www.abc.net.au/ the contents retrieved may be from a remote file called
path => { default => '/' },
file => { required => 1 },
uri => { required => 1 },
+ userinfo => { default => '' },
vol => { default => '' }, # windows for file:// uris
share => { default => '' }, # windows for file:// uris
file_default => { default => 'file_default' },
@@ -401,7 +406,7 @@ sub _parse_uri {
} else {
### using anything but qw() in hash slices may produce warnings
### in older perls :-(
- @{$href}{ qw(host path) } = $uri =~ m|([^/]*)(/.*)$|s;
+ @{$href}{ qw(userinfo host path) } = $uri =~ m|(?:([^\@:]*:[^\:\@]*)@)?([^/]*)(/.*)$|s;
}
### split the path into file + dir ###
@@ -567,8 +572,10 @@ sub _lwp_fetch {
};
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
+ if ($self->scheme eq 'https') {
+ $use_list->{'LWP::Protocol::https'} = '0';
+ }
+
unless( can_load( modules => $use_list ) ) {
$METHOD_FAIL->{'lwp'} = 1;
return;
@@ -582,7 +589,12 @@ sub _lwp_fetch {
### special rules apply for file:// uris ###
$uri->scheme( $self->scheme );
$uri->host( $self->scheme eq 'file' ? '' : $self->host );
- $uri->userinfo("anonymous:$FROM_EMAIL") if $self->scheme ne 'file';
+
+ if ($self->userinfo) {
+ $uri->userinfo($self->userinfo);
+ } elsif ($self->scheme ne 'file') {
+ $uri->userinfo("anonymous:$FROM_EMAIL");
+ }
### set up the useragent object
my $ua = LWP::UserAgent->new();
@@ -621,8 +633,6 @@ sub _httptiny_fetch {
};
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
unless( can_load(modules => $use_list) ) {
$METHOD_FAIL->{'httptiny'} = 1;
return;
@@ -659,11 +669,9 @@ sub _httplite_fetch {
### modules required to download with lwp ###
my $use_list = {
'HTTP::Lite' => '2.2',
-
+ 'MIME::Base64' => '0',
};
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
unless( can_load(modules => $use_list) ) {
$METHOD_FAIL->{'httplite'} = 1;
return;
@@ -679,6 +687,11 @@ sub _httplite_fetch {
$http->{timeout} = $TIMEOUT if $TIMEOUT;
$http->http11_mode(1);
+ if ($self->userinfo) {
+ my $encoded = MIME::Base64::encode($self->userinfo, '');
+ $http->add_req_header("Authorization", "Basic $encoded");
+ }
+
my $fh = FileHandle->new;
unless ( $fh->open($to,'>') ) {
@@ -739,8 +752,6 @@ sub _iosock_fetch {
'IO::Select' => '0.0',
};
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
unless( can_load(modules => $use_list) ) {
$METHOD_FAIL->{'iosock'} = 1;
return;
@@ -822,8 +833,6 @@ sub _netftp_fetch {
check( $tmpl, \%hash ) or return;
### required modules ###
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
my $use_list = { 'Net::FTP' => 0 };
unless( can_load( modules => $use_list ) ) {
@@ -1512,7 +1521,7 @@ Below is a mapping of what utilities will be used in what order
for what schemes, if available:
file => LWP, lftp, file
- http => LWP, HTTP::Lite, wget, curl, lftp, fetch, lynx, iosock
+ http => LWP, HTTP::Tiny, wget, curl, lftp, fetch, HTTP::Lite, lynx, iosock
ftp => LWP, Net::FTP, wget, curl, lftp, fetch, ncftp, ftp
rsync => rsync
git => git
diff --git a/Master/tlpkg/tlperl/lib/File/Glob.pm b/Master/tlpkg/tlperl/lib/File/Glob.pm
index c0b5a4720d9..c619749fa0f 100644
--- a/Master/tlpkg/tlperl/lib/File/Glob.pm
+++ b/Master/tlpkg/tlperl/lib/File/Glob.pm
@@ -37,7 +37,7 @@ pop @{$EXPORT_TAGS{bsd_glob}}; # no "glob"
@EXPORT_OK = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob');
-$VERSION = '1.26';
+$VERSION = '1.28';
sub import {
require Exporter;
@@ -75,6 +75,12 @@ if ($^O =~ /^(?:MSWin32|VMS|os2|dos|riscos)$/) {
# File::Glob::glob() is deprecated because its prototype is different from
# CORE::glob() (use bsd_glob() instead)
sub glob {
+ use 5.024;
+ use warnings ();
+ warnings::warnif (deprecated =>
+ "File::Glob::glob() will disappear in perl 5.30. " .
+ "Use File::Glob::bsd_glob() instead.") unless state $warned ++;
+
splice @_, 1; # no flags
goto &bsd_glob;
}
@@ -176,10 +182,15 @@ means this will loop forever:
=head3 C<bsd_glob>
This function, which is included in the two export tags listed above,
-takes one or two arguments. The first is the glob pattern. The second is
-a set of flags ORed together. The available flags are listed below under
-L</POSIX FLAGS>. If the second argument is omitted, C<GLOB_CSH> (or
-C<GLOB_CSH|GLOB_NOCASE> on VMS and DOSish systems) is used by default.
+takes one or two arguments. The first is the glob pattern. The
+second, if given, is a set of flags ORed together. The available
+flags and the default set of flags are listed below under L</POSIX FLAGS>.
+
+Remember that to use the named constants for flags you must import
+them, for example with C<:bsd_glob> described above. If not imported,
+and C<use strict> is not in effect, then the constants will be
+treated as bareword strings, which won't do what you what.
+
=head3 C<:nocase> and C<:case>
@@ -196,7 +207,9 @@ uses this internally.
=head2 POSIX FLAGS
-The POSIX defined flags for bsd_glob() are:
+If no flags argument is give then C<GLOB_CSH> is set, and on VMS and
+Windows systems, C<GLOB_NOCASE> too. Otherwise the flags to use are
+determined solely by the flags argument. The POSIX defined flags are:
=over 4
diff --git a/Master/tlpkg/tlperl/lib/File/GlobMapper.pm b/Master/tlpkg/tlperl/lib/File/GlobMapper.pm
index 76d4bed1178..a96cf3e8324 100644
--- a/Master/tlpkg/tlperl/lib/File/GlobMapper.pm
+++ b/Master/tlpkg/tlperl/lib/File/GlobMapper.pm
@@ -149,7 +149,7 @@ sub _parseBit
if ($2 eq ',')
{
- return _unmatched "("
+ return _unmatched("(")
if $depth ;
$out .= '|';
@@ -160,7 +160,7 @@ sub _parseBit
}
elsif ($2 eq ')')
{
- return _unmatched ")"
+ return _unmatched(")")
if ! $depth ;
-- $depth ;
@@ -170,22 +170,22 @@ sub _parseBit
# TODO -- quotemeta & check no '/'
# TODO -- check for \] & other \ within the []
$string =~ s#(.*?\])##
- or return _unmatched "[" ;
+ or return _unmatched("[");
$out .= "$1)" ;
}
elsif ($2 eq ']')
{
- return _unmatched "]" ;
+ return _unmatched("]");
}
elsif ($2 eq '{' || $2 eq '}')
{
- return _retError "Nested {} not allowed" ;
+ return _retError("Nested {} not allowed");
}
}
$out .= quotemeta $string;
- return _unmatched "("
+ return _unmatched("(")
if $depth ;
return $out ;
@@ -219,7 +219,7 @@ sub _parseInputGlob
}
elsif ($2 eq ')')
{
- return _unmatched ")"
+ return _unmatched(")")
if ! $depth ;
-- $depth ;
@@ -229,16 +229,16 @@ sub _parseInputGlob
# TODO -- quotemeta & check no '/' or '(' or ')'
# TODO -- check for \] & other \ within the []
$string =~ s#(.*?\])##
- or return _unmatched "[";
+ or return _unmatched("[");
$out .= "$1)" ;
}
elsif ($2 eq ']')
{
- return _unmatched "]" ;
+ return _unmatched("]");
}
elsif ($2 eq '}')
{
- return _unmatched "}" ;
+ return _unmatched("}");
}
elsif ($2 eq '{')
{
@@ -248,7 +248,7 @@ sub _parseInputGlob
my $tmp ;
unless ( $string =~ s/(.*?)$noPreBS\}//)
{
- return _unmatched "{";
+ return _unmatched("{");
}
#$string =~ s#(.*?)\}##;
@@ -263,7 +263,7 @@ sub _parseInputGlob
}
}
- return _unmatched "("
+ return _unmatched("(")
if $depth ;
$out .= quotemeta $string ;
diff --git a/Master/tlpkg/tlperl/lib/File/Spec.pm b/Master/tlpkg/tlperl/lib/File/Spec.pm
index 3ef0f339db3..a9a76194701 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec.pm
@@ -3,7 +3,7 @@ package File::Spec;
use strict;
use vars qw(@ISA $VERSION);
-$VERSION = '3.63_01';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
my %module = (MacOS => 'Mac',
@@ -158,10 +158,13 @@ Returns a string representation of the parent directory.
=item no_upwards
-Given a list of file names, strip out those that refer to a parent
-directory. (Does not strip symlinks, only '.', '..', and equivalents.)
+Given a list of files in a directory (such as from C<readdir()>),
+strip out C<'.'> and C<'..'>.
- @paths = File::Spec->no_upwards( @paths );
+B<SECURITY NOTE:> This does NOT filter paths containing C<'..'>, like
+C<'../../../../etc/passwd'>, only literal matches to C<'.'> and C<'..'>.
+
+ @paths = File::Spec->no_upwards( readdir $dirhandle );
=item case_tolerant
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm b/Master/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm
index 7a5889cec49..8d3796e1237 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/AmigaOS.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.64';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm b/Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
index 10b14c4b9a6..745df86ee5e 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Cygwin.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.63_01';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm b/Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm
index 9b9e1fae587..959261a58e5 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Epoc.pm
@@ -3,7 +3,7 @@ package File::Spec::Epoc;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '3.63_01';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
require File::Spec::Unix;
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Functions.pm b/Master/tlpkg/tlperl/lib/File/Spec/Functions.pm
index a4e1b1bb338..cb7532e57f4 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Functions.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Functions.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
-$VERSION = '3.63_01';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
require Exporter;
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Mac.pm b/Master/tlpkg/tlperl/lib/File/Spec/Mac.pm
index 22424f32510..192cc8da9b2 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Mac.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Mac.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.63_01';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
@@ -121,7 +121,7 @@ doesn't alter the path, i.e. these arguments are ignored. (When a ""
is passed as the first argument, it has a special meaning, see
(6)). This way, a colon ":" is handled like a "." (curdir) on Unix,
while an empty string "" is generally ignored (see
-C<Unix-E<gt>canonpath()> ). Likewise, a "::" is handled like a ".."
+L<File::Spec::Unix/canonpath()> ). Likewise, a "::" is handled like a ".."
(updir), and a ":::" is handled like a "../.." etc. E.g.
catdir("a",":",":","b") = ":a:b:"
@@ -168,7 +168,7 @@ their Unix counterparts:
# (e.g. "HD:a:")
However, this approach is limited to the first arguments following
-"root" (again, see C<Unix-E<gt>canonpath()> ). If there are more
+"root" (again, see L<File::Spec::Unix/canonpath()>. If there are more
arguments that move up the directory tree, an invalid path going
beyond root can be created.
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/OS2.pm b/Master/tlpkg/tlperl/lib/File/Spec/OS2.pm
index 0119042c9c0..1e201ebade2 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/OS2.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/OS2.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.63_01';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Unix.pm b/Master/tlpkg/tlperl/lib/File/Spec/Unix.pm
index 9598dbb3621..ff3599acf61 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Unix.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Unix.pm
@@ -3,7 +3,7 @@ package File::Spec::Unix;
use strict;
use vars qw($VERSION);
-$VERSION = '3.63_01';
+$VERSION = '3.67';
my $xs_version = $VERSION;
$VERSION =~ tr/_//d;
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm b/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
index c0cc1e50434..fb4351f086b 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/VMS.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.63_01';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
@@ -97,7 +97,7 @@ sub canonpath {
# [-.-. ==> [--.
# .-.-] ==> .--]
# [-.-] ==> [--]
- 1 while ($path =~ s/(?<!\^)([\[\.])[^\]\.]+\.-(-+)([\]\.])/$1$2$3/);
+ 1 while ($path =~ s/(?<!\^)([\[\.])(?:\^.|[^\]\.])+\.-(-+)([\]\.])/$1$2$3/);
# That loop does the following
# with any amount (minimum 2)
# of dashes:
@@ -108,11 +108,11 @@ sub canonpath {
#
# And then, the remaining cases
$path =~ s/(?<!\^)\[\.-/[-/; # [.- ==> [-
- $path =~ s/(?<!\^)\.[^\]\.]+\.-\./\./g; # .foo.-. ==> .
- $path =~ s/(?<!\^)\[[^\]\.]+\.-\./\[/g; # [foo.-. ==> [
- $path =~ s/(?<!\^)\.[^\]\.]+\.-\]/\]/g; # .foo.-] ==> ]
+ $path =~ s/(?<!\^)\.(?:\^.|[^\]\.])+\.-\./\./g; # .foo.-. ==> .
+ $path =~ s/(?<!\^)\[(?:\^.|[^\]\.])+\.-\./\[/g; # [foo.-. ==> [
+ $path =~ s/(?<!\^)\.(?:\^.|[^\]\.])+\.-\]/\]/g; # .foo.-] ==> ]
# [foo.-] ==> [000000]
- $path =~ s/(?<!\^)\[[^\]\.]+\.-\]/\[000000\]/g;
+ $path =~ s/(?<!\^)\[(?:\^.|[^\]\.])+\.-\]/\[000000\]/g;
# [] ==>
$path =~ s/(?<!\^)\[\]// unless $path eq '[]';
return $unix_rpt ? unixify($path) : $path;
diff --git a/Master/tlpkg/tlperl/lib/File/Spec/Win32.pm b/Master/tlpkg/tlperl/lib/File/Spec/Win32.pm
index 578d61b37f8..17f1c5a1901 100644
--- a/Master/tlpkg/tlperl/lib/File/Spec/Win32.pm
+++ b/Master/tlpkg/tlperl/lib/File/Spec/Win32.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw(@ISA $VERSION);
require File::Spec::Unix;
-$VERSION = '3.63_01';
+$VERSION = '3.67';
$VERSION =~ tr/_//d;
@ISA = qw(File::Spec::Unix);
diff --git a/Master/tlpkg/tlperl/lib/FileHandle.pm b/Master/tlpkg/tlperl/lib/FileHandle.pm
index 6b3636a089d..133221bb6b5 100644
--- a/Master/tlpkg/tlperl/lib/FileHandle.pm
+++ b/Master/tlpkg/tlperl/lib/FileHandle.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
our($VERSION, @ISA, @EXPORT, @EXPORT_OK);
-$VERSION = "2.02";
+$VERSION = "2.03";
require IO::File;
@ISA = qw(IO::File);
@@ -36,7 +36,7 @@ require IO::File;
#
# Everything we're willing to export, we must first import.
#
-import IO::Handle grep { !defined(&$_) } @EXPORT, @EXPORT_OK;
+IO::Handle->import( grep { !defined(&$_) } @EXPORT, @EXPORT_OK );
#
# Some people call "FileHandle::function", so all the functions
@@ -88,8 +88,8 @@ sub import {
#
sub pipe {
- my $r = new IO::Handle;
- my $w = new IO::Handle;
+ my $r = IO::Handle->new;
+ my $w = IO::Handle->new;
CORE::pipe($r, $w) or return undef;
($r, $w);
}
diff --git a/Master/tlpkg/tlperl/lib/Filter/Simple.pm b/Master/tlpkg/tlperl/lib/Filter/Simple.pm
index 82129192b82..44a5f734551 100644
--- a/Master/tlpkg/tlperl/lib/Filter/Simple.pm
+++ b/Master/tlpkg/tlperl/lib/Filter/Simple.pm
@@ -4,7 +4,7 @@ use Text::Balanced ':ALL';
use vars qw{ $VERSION @EXPORT };
-$VERSION = '0.92';
+$VERSION = '0.93';
use Filter::Util::Call;
use Carp;
@@ -198,6 +198,7 @@ sub gen_filter_import {
if ($terminator{terminator} &&
m/$terminator{terminator}/) {
$lastline = $_;
+ $count++;
last;
}
$data .= $_;
diff --git a/Master/tlpkg/tlperl/lib/Getopt/Long.pm b/Master/tlpkg/tlperl/lib/Getopt/Long.pm
index fdc96bd20cf..5e1834f3caf 100644
--- a/Master/tlpkg/tlperl/lib/Getopt/Long.pm
+++ b/Master/tlpkg/tlperl/lib/Getopt/Long.pm
@@ -4,8 +4,8 @@
# Author : Johan Vromans
# Created On : Tue Sep 11 15:00:12 1990
# Last Modified By: Johan Vromans
-# Last Modified On: Thu Oct 8 14:57:49 2015
-# Update Count : 1697
+# Last Modified On: Thu Jun 9 14:50:37 2016
+# Update Count : 1699
# Status : Released
################ Module Preamble ################
@@ -17,10 +17,10 @@ use 5.004;
use strict;
use vars qw($VERSION);
-$VERSION = 2.48;
+$VERSION = 2.49;
# For testing versions only.
use vars qw($VERSION_STRING);
-$VERSION_STRING = "2.48";
+$VERSION_STRING = "2.49";
use Exporter;
use vars qw(@ISA @EXPORT @EXPORT_OK);
@@ -1112,7 +1112,7 @@ sub FindOption ($$$$$) {
if ( $gnu_compat ) {
my $optargtype = 0; # 0 = none, 1 = empty, 2 = nonempty
$optargtype = ( !defined($optarg) ? 0 : ( (length($optarg) == 0) ? 1 : 2 ) );
- return (1, $opt, $ctl, undef)
+ return (1, $opt, $ctl, defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : undef)
if (($optargtype == 0) && !$mand);
return (1, $opt, $ctl, $type eq 's' ? '' : 0)
if $optargtype == 1; # --foo= -> return nothing
@@ -1451,7 +1451,7 @@ sub VersionMessage(@) {
my $v = $main::VERSION;
my $fh = $pa->{-output} ||
- ($pa->{-exitval} eq "NOEXIT" || $pa->{-exitval} < 2) ? \*STDOUT : \*STDERR;
+ ( ($pa->{-exitval} eq "NOEXIT" || $pa->{-exitval} < 2) ? \*STDOUT : \*STDERR );
print $fh (defined($pa->{-message}) ? $pa->{-message} : (),
$0, defined $v ? " version $v" : (),
diff --git a/Master/tlpkg/tlperl/lib/Getopt/Std.pm b/Master/tlpkg/tlperl/lib/Getopt/Std.pm
index b7f8132b381..5b8878dbb86 100644
--- a/Master/tlpkg/tlperl/lib/Getopt/Std.pm
+++ b/Master/tlpkg/tlperl/lib/Getopt/Std.pm
@@ -4,7 +4,7 @@ require Exporter;
=head1 NAME
-getopt, getopts - Process single-character switches with switch clustering
+Getopt::Std - Process single-character switches with switch clustering
=head1 SYNOPSIS
@@ -81,7 +81,7 @@ and version_mess() with the switches string as an argument.
@ISA = qw(Exporter);
@EXPORT = qw(getopt getopts);
-$VERSION = '1.11';
+$VERSION = '1.12';
# uncomment the next line to disable 1.03-backward compatibility paranoia
# $STANDARD_HELP_VERSION = 1;
diff --git a/Master/tlpkg/tlperl/lib/HTTP/Tiny.pm b/Master/tlpkg/tlperl/lib/HTTP/Tiny.pm
index f9e51845bb4..541befe9048 100644
--- a/Master/tlpkg/tlperl/lib/HTTP/Tiny.pm
+++ b/Master/tlpkg/tlperl/lib/HTTP/Tiny.pm
@@ -4,9 +4,9 @@ use strict;
use warnings;
# ABSTRACT: A small, simple, correct HTTP/1.1 client
-our $VERSION = '0.056_001';
+our $VERSION = '0.070';
-use Carp ();
+sub _croak { require Carp; Carp::croak(@_) }
#pod =method new
#pod
@@ -15,35 +15,34 @@ use Carp ();
#pod This constructor returns a new HTTP::Tiny object. Valid attributes include:
#pod
#pod =for :list
-#pod * C<agent> —
-#pod A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If C<agent> — ends in a space character, the default user-agent string is appended.
-#pod * C<cookie_jar> —
-#pod An instance of L<HTTP::CookieJar> — or equivalent class that supports the C<add> and C<cookie_header> methods
-#pod * C<default_headers> —
-#pod A hashref of default headers to apply to requests
-#pod * C<local_address> —
-#pod The local IP address to bind to
-#pod * C<keep_alive> —
-#pod Whether to reuse the last connection (if for the same scheme, host and port) (defaults to 1)
-#pod * C<max_redirect> —
-#pod Maximum number of redirects allowed (defaults to 5)
-#pod * C<max_size> —
-#pod Maximum response size in bytes (only when not using a data callback). If defined, responses larger than this will return an exception.
-#pod * C<http_proxy> —
-#pod URL of a proxy server to use for HTTP connections (default is C<$ENV{http_proxy}> — if set)
-#pod * C<https_proxy> —
-#pod URL of a proxy server to use for HTTPS connections (default is C<$ENV{https_proxy}> — if set)
-#pod * C<proxy> —
-#pod URL of a generic proxy server for both HTTP and HTTPS connections (default is C<$ENV{all_proxy}> — if set)
-#pod * C<no_proxy> —
-#pod List of domain suffixes that should not be proxied. Must be a comma-separated string or an array reference. (default is C<$ENV{no_proxy}> —)
-#pod * C<timeout> —
-#pod Request timeout in seconds (default is 60)
-#pod * C<verify_SSL> —
-#pod A boolean that indicates whether to validate the SSL certificate of an C<https> —
-#pod connection (default is false)
-#pod * C<SSL_options> —
-#pod A hashref of C<SSL_*> — options to pass through to L<IO::Socket::SSL>
+#pod * C<agent> — A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If
+#pod C<agent> — ends in a space character, the default user-agent string is
+#pod appended.
+#pod * C<cookie_jar> — An instance of L<HTTP::CookieJar> — or equivalent class
+#pod that supports the C<add> and C<cookie_header> methods
+#pod * C<default_headers> — A hashref of default headers to apply to requests
+#pod * C<local_address> — The local IP address to bind to
+#pod * C<keep_alive> — Whether to reuse the last connection (if for the same
+#pod scheme, host and port) (defaults to 1)
+#pod * C<max_redirect> — Maximum number of redirects allowed (defaults to 5)
+#pod * C<max_size> — Maximum response size in bytes (only when not using a data
+#pod callback). If defined, responses larger than this will return an
+#pod exception.
+#pod * C<http_proxy> — URL of a proxy server to use for HTTP connections
+#pod (default is C<$ENV{http_proxy}> — if set)
+#pod * C<https_proxy> — URL of a proxy server to use for HTTPS connections
+#pod (default is C<$ENV{https_proxy}> — if set)
+#pod * C<proxy> — URL of a generic proxy server for both HTTP and HTTPS
+#pod connections (default is C<$ENV{all_proxy}> — if set)
+#pod * C<no_proxy> — List of domain suffixes that should not be proxied. Must
+#pod be a comma-separated string or an array reference. (default is
+#pod C<$ENV{no_proxy}> —)
+#pod * C<timeout> — Request timeout in seconds (default is 60) If a socket open,
+#pod read or write takes longer than the timeout, an exception is thrown.
+#pod * C<verify_SSL> — A boolean that indicates whether to validate the SSL
+#pod certificate of an C<https> — connection (default is false)
+#pod * C<SSL_options> — A hashref of C<SSL_*> — options to pass through to
+#pod L<IO::Socket::SSL>
#pod
#pod Passing an explicit C<undef> for C<proxy>, C<http_proxy> or C<https_proxy> will
#pod prevent getting the corresponding proxies from the environment.
@@ -66,7 +65,7 @@ my @attributes;
BEGIN {
@attributes = qw(
cookie_jar default_headers http_proxy https_proxy keep_alive
- local_address max_redirect max_size proxy no_proxy timeout
+ local_address max_redirect max_size proxy no_proxy
SSL_options verify_SSL
);
my %persist_ok = map {; $_ => 1 } qw(
@@ -95,12 +94,23 @@ sub agent {
return $self->{agent};
}
+sub timeout {
+ my ($self, $timeout) = @_;
+ if ( @_ > 1 ) {
+ $self->{timeout} = $timeout;
+ if ($self->{handle}) {
+ $self->{handle}->timeout($timeout);
+ }
+ }
+ return $self->{timeout};
+}
+
sub new {
my($class, %args) = @_;
my $self = {
max_redirect => 5,
- timeout => 60,
+ timeout => defined $args{timeout} ? $args{timeout} : 60,
keep_alive => 1,
verify_SSL => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default
no_proxy => $ENV{no_proxy},
@@ -197,7 +207,7 @@ for my $sub_name ( qw/get head put post delete/ ) {
sub $sub_name {
my (\$self, \$url, \$args) = \@_;
\@_ == 2 || (\@_ == 3 && ref \$args eq 'HASH')
- or Carp::croak(q/Usage: \$http->$sub_name(URL, [HASHREF])/ . "\n");
+ or _croak(q/Usage: \$http->$sub_name(URL, [HASHREF])/ . "\n");
return \$self->request('$req_method', \$url, \$args || {});
}
HERE
@@ -226,7 +236,7 @@ HERE
sub post_form {
my ($self, $url, $data, $args) = @_;
(@_ == 3 || @_ == 4 && ref $args eq 'HASH')
- or Carp::croak(q/Usage: $http->post_form(URL, DATAREF, [HASHREF])/ . "\n");
+ or _croak(q/Usage: $http->post_form(URL, DATAREF, [HASHREF])/ . "\n");
my $headers = {};
while ( my ($key, $value) = each %{$args->{headers} || {}} ) {
@@ -271,7 +281,16 @@ sub post_form {
sub mirror {
my ($self, $url, $file, $args) = @_;
@_ == 3 || (@_ == 4 && ref $args eq 'HASH')
- or Carp::croak(q/Usage: $http->mirror(URL, FILE, [HASHREF])/ . "\n");
+ or _croak(q/Usage: $http->mirror(URL, FILE, [HASHREF])/ . "\n");
+
+ if ( exists $args->{headers} ) {
+ my $headers = {};
+ while ( my ($key, $value) = each %{$args->{headers} || {}} ) {
+ $headers->{lc $key} = $value;
+ }
+ $args->{headers} = $headers;
+ }
+
if ( -e $file and my $mtime = (stat($file))[9] ) {
$args->{headers}{'if-modified-since'} ||= $self->_http_date($mtime);
}
@@ -279,16 +298,16 @@ sub mirror {
require Fcntl;
sysopen my $fh, $tempfile, Fcntl::O_CREAT()|Fcntl::O_EXCL()|Fcntl::O_WRONLY()
- or Carp::croak(qq/Error: Could not create temporary file $tempfile for downloading: $!\n/);
+ or _croak(qq/Error: Could not create temporary file $tempfile for downloading: $!\n/);
binmode $fh;
$args->{data_callback} = sub { print {$fh} $_[0] };
my $response = $self->request('GET', $url, $args);
close $fh
- or Carp::croak(qq/Error: Caught error closing temporary file $tempfile: $!\n/);
+ or _croak(qq/Error: Caught error closing temporary file $tempfile: $!\n/);
if ( $response->{success} ) {
rename $tempfile, $file
- or Carp::croak(qq/Error replacing $file with $tempfile: $!\n/);
+ or _croak(qq/Error replacing $file with $tempfile: $!\n/);
my $lm = $response->{headers}{'last-modified'};
if ( $lm and my $mtime = $self->_parse_http_date($lm) ) {
utime $mtime, $mtime, $file;
@@ -337,6 +356,11 @@ sub mirror {
#pod * C<data_callback> —
#pod A code reference that will be called for each chunks of the response
#pod body received.
+#pod * C<peer> —
+#pod Override host resolution and force all connections to go only to a
+#pod specific peer address, regardless of the URL of the request. This will
+#pod include any redirections! This options should be used with extreme
+#pod caution (e.g. debugging or very special circumstances).
#pod
#pod The C<Host> header is generated from the URL in accordance with RFC 2616. It
#pod is a fatal error to specify C<Host> in the C<headers> option. Other headers
@@ -378,6 +402,10 @@ sub mirror {
#pod A hashref of header fields. All header field names will be normalized
#pod to be lower case. If a header is repeated, the value will be an arrayref;
#pod it will otherwise be a scalar string containing the value
+#pod * C<redirects>
+#pod If this field exists, it is an arrayref of response hash references from
+#pod redirects in the same order that redirections occurred. If it does
+#pod not exist, then no redirections occurred.
#pod
#pod On an exception during the execution of the request, the C<status> field will
#pod contain 599, and the C<content> field will contain the text of the exception.
@@ -389,7 +417,7 @@ my %idempotent = map { $_ => 1 } qw/GET HEAD PUT DELETE OPTIONS TRACE/;
sub request {
my ($self, $method, $url, $args) = @_;
@_ == 3 || (@_ == 4 && ref $args eq 'HASH')
- or Carp::croak(q/Usage: $http->request(METHOD, URL, [HASHREF])/ . "\n");
+ or _croak(q/Usage: $http->request(METHOD, URL, [HASHREF])/ . "\n");
$args ||= {}; # we keep some state in this during _request
# RFC 2616 Section 8.1.4 mandates a single retry on broken socket
@@ -403,6 +431,7 @@ sub request {
if (my $e = $@) {
# maybe we got a response hash thrown from somewhere deep
if ( ref $e eq 'HASH' && exists $e->{status} ) {
+ $e->{redirects} = delete $args->{_redirects} if @{ $args->{_redirects} || []};
return $e;
}
@@ -417,7 +446,8 @@ sub request {
headers => {
'content-type' => 'text/plain',
'content-length' => length $e,
- }
+ },
+ ( @{$args->{_redirects} || []} ? (redirects => delete $args->{_redirects}) : () ),
};
}
return $response;
@@ -440,13 +470,13 @@ sub request {
sub www_form_urlencode {
my ($self, $data) = @_;
(@_ == 2 && ref $data)
- or Carp::croak(q/Usage: $http->www_form_urlencode(DATAREF)/ . "\n");
+ or _croak(q/Usage: $http->www_form_urlencode(DATAREF)/ . "\n");
(ref $data eq 'HASH' || ref $data eq 'ARRAY')
- or Carp::croak("form data must be a hash or array reference\n");
+ or _croak("form data must be a hash or array reference\n");
my @params = ref $data eq 'HASH' ? %$data : @$data;
@params % 2 == 0
- or Carp::croak("form data reference must have an even number of terms\n");
+ or _croak("form data reference must have an even number of terms\n");
my @terms;
while( @params ) {
@@ -513,6 +543,41 @@ sub can_ssl {
wantarray ? ($ok, $reason) : $ok;
}
+#pod =method connected
+#pod
+#pod $host = $http->connected;
+#pod ($host, $port) = $http->connected;
+#pod
+#pod Indicates if a connection to a peer is being kept alive, per the C<keep_alive>
+#pod option.
+#pod
+#pod In scalar context, returns the peer host and port, joined with a colon, or
+#pod C<undef> (if no peer is connected).
+#pod In list context, returns the peer host and port or an empty list (if no peer
+#pod is connected).
+#pod
+#pod B<Note>: This method cannot reliably be used to discover whether the remote
+#pod host has closed its end of the socket.
+#pod
+#pod =cut
+
+sub connected {
+ my ($self) = @_;
+
+ # If a socket exists...
+ if ($self->{handle} && $self->{handle}{fh}) {
+ my $socket = $self->{handle}{fh};
+
+ # ...and is connected, return the peer host and port.
+ if ($socket->connected) {
+ return wantarray
+ ? ($socket->peerhost, $socket->peerport)
+ : join(':', $socket->peerhost, $socket->peerport);
+ }
+ }
+ return;
+}
+
#--------------------------------------------------------------------------#
# private methods
#--------------------------------------------------------------------------#
@@ -543,17 +608,19 @@ sub _request {
headers => {},
};
+ my $peer = $args->{peer} || $host;
+
# We remove the cached handle so it is not reused in the case of redirect.
# If all is well, it will be recached at the end of _request. We only
# reuse for the same scheme, host and port
my $handle = delete $self->{handle};
if ( $handle ) {
- unless ( $handle->can_reuse( $scheme, $host, $port ) ) {
+ unless ( $handle->can_reuse( $scheme, $host, $port, $peer ) ) {
$handle->close;
undef $handle;
}
}
- $handle ||= $self->_open_handle( $request, $scheme, $host, $port );
+ $handle ||= $self->_open_handle( $request, $scheme, $host, $port, $peer );
$self->_prepare_headers_and_cb($request, $args, $url, $auth);
$handle->write_request($request);
@@ -563,11 +630,7 @@ sub _request {
until (substr($response->{status},0,1) ne '1');
$self->_update_cookie_jar( $url, $response ) if $self->{cookie_jar};
-
- if ( my @redir_args = $self->_maybe_redirect($request, $response, $args) ) {
- $handle->close;
- return $self->_request(@redir_args, $args);
- }
+ my @redir_args = $self->_maybe_redirect($request, $response, $args);
my $known_message_length;
if ($method eq 'HEAD' || $response->{status} =~ /^[23]04/) {
@@ -575,7 +638,9 @@ sub _request {
$known_message_length = 1;
}
else {
- my $data_cb = $self->_prepare_data_cb($response, $args);
+ # Ignore any data callbacks during redirection.
+ my $cb_args = @redir_args ? +{} : $args;
+ my $data_cb = $self->_prepare_data_cb($response, $cb_args);
$known_message_length = $handle->read_body($data_cb, $response);
}
@@ -592,11 +657,21 @@ sub _request {
$response->{success} = substr( $response->{status}, 0, 1 ) eq '2';
$response->{url} = $url;
+
+ # Push the current response onto the stack of redirects if redirecting.
+ if (@redir_args) {
+ push @{$args->{_redirects}}, $response;
+ return $self->_request(@redir_args, $args);
+ }
+
+ # Copy the stack of redirects into the response before returning.
+ $response->{redirects} = delete $args->{_redirects}
+ if @{$args->{_redirects}};
return $response;
}
sub _open_handle {
- my ($self, $request, $scheme, $host, $port) = @_;
+ my ($self, $request, $scheme, $host, $port, $peer) = @_;
my $handle = HTTP::Tiny::Handle->new(
timeout => $self->{timeout},
@@ -610,7 +685,7 @@ sub _open_handle {
return $self->_proxy_connect( $request, $handle );
}
else {
- return $handle->connect($scheme, $host, $port);
+ return $handle->connect($scheme, $host, $port, $peer);
}
}
@@ -619,14 +694,14 @@ sub _proxy_connect {
my @proxy_vars;
if ( $request->{scheme} eq 'https' ) {
- Carp::croak(qq{No https_proxy defined}) unless $self->{https_proxy};
+ _croak(qq{No https_proxy defined}) unless $self->{https_proxy};
@proxy_vars = $self->_split_proxy( https_proxy => $self->{https_proxy} );
if ( $proxy_vars[0] eq 'https' ) {
- Carp::croak(qq{Can't proxy https over https: $request->{uri} via $self->{https_proxy}});
+ _croak(qq{Can't proxy https over https: $request->{uri} via $self->{https_proxy}});
}
}
else {
- Carp::croak(qq{No http_proxy defined}) unless $self->{http_proxy};
+ _croak(qq{No http_proxy defined}) unless $self->{http_proxy};
@proxy_vars = $self->_split_proxy( http_proxy => $self->{http_proxy} );
}
@@ -636,7 +711,7 @@ sub _proxy_connect {
$self->_add_basic_auth_header( $request, 'proxy-authorization' => $p_auth );
}
- $handle->connect($p_scheme, $p_host, $p_port);
+ $handle->connect($p_scheme, $p_host, $p_port, $p_host);
if ($request->{scheme} eq 'https') {
$self->_create_proxy_tunnel( $request, $handle );
@@ -658,7 +733,7 @@ sub _split_proxy {
defined($scheme) && length($scheme) && length($host) && length($port)
&& $path_query eq '/'
) {
- Carp::croak(qq{$type URL must be in format http[s]://[auth@]<host>:<port>/\n});
+ _croak(qq{$type URL must be in format http[s]://[auth@]<host>:<port>/\n});
}
return ($scheme, $host, $port, $auth);
@@ -710,6 +785,7 @@ sub _prepare_headers_and_cb {
next unless defined;
while (my ($k, $v) = each %$_) {
$request->{headers}{lc $k} = $v;
+ $request->{header_case}{lc $k} = $k;
}
}
@@ -806,7 +882,7 @@ sub _validate_cookie_jar {
# duck typing
for my $method ( qw/add cookie_header/ ) {
- Carp::croak(qq/Cookie jar must provide the '$method' method\n/)
+ _croak(qq/Cookie jar must provide the '$method' method\n/)
unless ref($jar) && ref($jar)->can($method);
}
@@ -817,9 +893,11 @@ sub _maybe_redirect {
my ($self, $request, $response, $args) = @_;
my $headers = $response->{headers};
my ($status, $method) = ($response->{status}, $request->{method});
+ $args->{_redirects} ||= [];
+
if (($status eq '303' or ($status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/))
and $headers->{location}
- and ++$args->{redirects} <= $self->{max_redirect}
+ and @{$args->{_redirects}} < $self->{max_redirect}
) {
my $location = ($headers->{location} =~ /^\//)
? "$request->{scheme}://$request->{host_port}$headers->{location}"
@@ -915,6 +993,7 @@ use warnings;
use Errno qw[EINTR EPIPE];
use IO::Socket qw[SOCK_STREAM];
+use Socket qw[SOL_SOCKET SO_KEEPALIVE];
# PERL_HTTP_TINY_IPV4_ONLY is a private environment variable to force old
# behavior if someone is unable to boostrap CPAN from a new perl install; it is
@@ -936,6 +1015,7 @@ my $Printable = sub {
};
my $Token = qr/[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/;
+my $Field_Content = qr/[[:print:]]+ (?: [\x20\x09]+ [[:print:]]+ )*/x;
sub new {
my ($class, %args) = @_;
@@ -950,9 +1030,20 @@ sub new {
}, $class;
}
+sub timeout {
+ my ($self, $timeout) = @_;
+ if ( @_ > 1 ) {
+ $self->{timeout} = $timeout;
+ if ( $self->{fh} && $self->{fh}->can('timeout') ) {
+ $self->{fh}->timeout($timeout);
+ }
+ }
+ return $self->{timeout};
+}
+
sub connect {
- @_ == 4 || die(q/Usage: $handle->connect(scheme, host, port)/ . "\n");
- my ($self, $scheme, $host, $port) = @_;
+ @_ == 5 || die(q/Usage: $handle->connect(scheme, host, port, peer)/ . "\n");
+ my ($self, $scheme, $host, $port, $peer) = @_;
if ( $scheme eq 'https' ) {
$self->_assert_ssl;
@@ -961,23 +1052,30 @@ sub connect {
die(qq/Unsupported URL scheme '$scheme'\n/);
}
$self->{fh} = $SOCKET_CLASS->new(
- PeerHost => $host,
+ PeerHost => $peer,
PeerPort => $port,
$self->{local_address} ?
( LocalAddr => $self->{local_address} ) : (),
Proto => 'tcp',
Type => SOCK_STREAM,
Timeout => $self->{timeout},
- KeepAlive => !!$self->{keep_alive}
) or die(qq/Could not connect to '$host:$port': $@\n/);
binmode($self->{fh})
or die(qq/Could not binmode() socket: '$!'\n/);
+ if ( $self->{keep_alive} ) {
+ unless ( defined( $self->{fh}->setsockopt( SOL_SOCKET, SO_KEEPALIVE, 1 ) ) ) {
+ CORE::close($self->{fh});
+ die(qq/Could not set SO_KEEPALIVE on socket: '$!'\n/);
+ }
+ }
+
$self->start_ssl($host) if $scheme eq 'https';
$self->{scheme} = $scheme;
$self->{host} = $host;
+ $self->{peer} = $peer;
$self->{port} = $port;
$self->{pid} = $$;
$self->{tid} = _get_tid();
@@ -1174,38 +1272,72 @@ sub read_header_lines {
sub write_request {
@_ == 2 || die(q/Usage: $handle->write_request(request)/ . "\n");
my($self, $request) = @_;
- $self->write_request_header(@{$request}{qw/method uri headers/});
+ $self->write_request_header(@{$request}{qw/method uri headers header_case/});
$self->write_body($request) if $request->{cb};
return;
}
-my %HeaderCase = (
- 'content-md5' => 'Content-MD5',
- 'etag' => 'ETag',
- 'te' => 'TE',
- 'www-authenticate' => 'WWW-Authenticate',
- 'x-xss-protection' => 'X-XSS-Protection',
+# Standard request header names/case from HTTP/1.1 RFCs
+my @rfc_request_headers = qw(
+ Accept Accept-Charset Accept-Encoding Accept-Language Authorization
+ Cache-Control Connection Content-Length Expect From Host
+ If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since
+ Max-Forwards Pragma Proxy-Authorization Range Referer TE Trailer
+ Transfer-Encoding Upgrade User-Agent Via
+);
+
+my @other_request_headers = qw(
+ Content-Encoding Content-MD5 Content-Type Cookie DNT Date Origin
+ X-XSS-Protection
);
+my %HeaderCase = map { lc($_) => $_ } @rfc_request_headers, @other_request_headers;
+
# to avoid multiple small writes and hence nagle, you can pass the method line or anything else to
# combine writes.
sub write_header_lines {
- (@_ == 2 || @_ == 3 && ref $_[1] eq 'HASH') || die(q/Usage: $handle->write_header_lines(headers[,prefix])/ . "\n");
- my($self, $headers, $prefix_data) = @_;
+ (@_ >= 2 && @_ <= 4 && ref $_[1] eq 'HASH') || die(q/Usage: $handle->write_header_lines(headers, [header_case, prefix])/ . "\n");
+ my($self, $headers, $header_case, $prefix_data) = @_;
+ $header_case ||= {};
my $buf = (defined $prefix_data ? $prefix_data : '');
+
+ # Per RFC, control fields should be listed first
+ my %seen;
+ for my $k ( qw/host cache-control expect max-forwards pragma range te/ ) {
+ next unless exists $headers->{$k};
+ $seen{$k}++;
+ my $field_name = $HeaderCase{$k};
+ my $v = $headers->{$k};
+ for (ref $v eq 'ARRAY' ? @$v : $v) {
+ $_ = '' unless defined $_;
+ $buf .= "$field_name: $_\x0D\x0A";
+ }
+ }
+
+ # Other headers sent in arbitrary order
while (my ($k, $v) = each %$headers) {
my $field_name = lc $k;
+ next if $seen{$field_name};
if (exists $HeaderCase{$field_name}) {
$field_name = $HeaderCase{$field_name};
}
else {
+ if (exists $header_case->{$field_name}) {
+ $field_name = $header_case->{$field_name};
+ }
+ else {
+ $field_name =~ s/\b(\w)/\u$1/g;
+ }
$field_name =~ /\A $Token+ \z/xo
or die(q/Invalid HTTP header field name: / . $Printable->($field_name) . "\n");
- $field_name =~ s/\b(\w)/\u$1/g;
$HeaderCase{lc $field_name} = $field_name;
}
for (ref $v eq 'ARRAY' ? @$v : $v) {
+ # unwrap a field value if pre-wrapped by user
+ s/\x0D?\x0A\s+/ /g;
+ die(qq/Invalid HTTP header field value ($field_name): / . $Printable->($_). "\n")
+ unless $_ eq '' || /\A $Field_Content \z/xo;
$_ = '' unless defined $_;
$buf .= "$field_name: $_\x0D\x0A";
}
@@ -1332,8 +1464,12 @@ sub write_chunked_body {
$self->write($chunk);
}
$self->write("0\x0D\x0A");
- $self->write_header_lines($request->{trailer_cb}->())
- if ref $request->{trailer_cb} eq 'CODE';
+ if ( ref $request->{trailer_cb} eq 'CODE' ) {
+ $self->write_header_lines($request->{trailer_cb}->())
+ }
+ else {
+ $self->write("\x0D\x0A");
+ }
return $len;
}
@@ -1360,10 +1496,10 @@ sub read_response_header {
}
sub write_request_header {
- @_ == 4 || die(q/Usage: $handle->write_request_header(method, request_uri, headers)/ . "\n");
- my ($self, $method, $request_uri, $headers) = @_;
+ @_ == 5 || die(q/Usage: $handle->write_request_header(method, request_uri, headers, header_case)/ . "\n");
+ my ($self, $method, $request_uri, $headers, $header_case) = @_;
- return $self->write_header_lines($headers, "$method $request_uri HTTP/1.1\x0D\x0A");
+ return $self->write_header_lines($headers, $header_case, "$method $request_uri HTTP/1.1\x0D\x0A");
}
sub _do_timeout {
@@ -1418,7 +1554,7 @@ sub _assert_ssl {
}
sub can_reuse {
- my ($self,$scheme,$host,$port) = @_;
+ my ($self,$scheme,$host,$port,$peer) = @_;
return 0 if
$self->{pid} != $$
|| $self->{tid} != _get_tid()
@@ -1426,6 +1562,7 @@ sub can_reuse {
|| $scheme ne $self->{scheme}
|| $host ne $self->{host}
|| $port ne $self->{port}
+ || $peer ne $self->{peer}
|| eval { $self->can_read(0) }
|| $@ ;
return 1;
@@ -1436,11 +1573,16 @@ sub can_reuse {
sub _find_CA_file {
my $self = shift();
- if ( $self->{SSL_options}->{SSL_ca_file} ) {
- unless ( -r $self->{SSL_options}->{SSL_ca_file} ) {
- die qq/SSL_ca_file '$self->{SSL_options}->{SSL_ca_file}' not found or not readable\n/;
+ my $ca_file =
+ defined( $self->{SSL_options}->{SSL_ca_file} )
+ ? $self->{SSL_options}->{SSL_ca_file}
+ : $ENV{SSL_CERT_FILE};
+
+ if ( defined $ca_file ) {
+ unless ( -r $ca_file ) {
+ die qq/SSL_ca_file '$ca_file' not found or not readable\n/;
}
- return $self->{SSL_options}->{SSL_ca_file};
+ return $ca_file;
}
local @INC = @INC;
@@ -1516,7 +1658,7 @@ HTTP::Tiny - A small, simple, correct HTTP/1.1 client
=head1 VERSION
-version 0.056
+version 0.070
=head1 SYNOPSIS
@@ -1605,7 +1747,7 @@ C<no_proxy> — List of domain suffixes that should not be proxied. Must be a c
=item *
-C<timeout> — Request timeout in seconds (default is 60)
+C<timeout> — Request timeout in seconds (default is 60) If a socket open, read or write takes longer than the timeout, an exception is thrown.
=item *
@@ -1725,6 +1867,10 @@ C<trailer_callback> — A code reference that will be called if it exists to pro
C<data_callback> — A code reference that will be called for each chunks of the response body received.
+=item *
+
+C<peer> — Override host resolution and force all connections to go only to a specific peer address, regardless of the URL of the request. This will include any redirections! This options should be used with extreme caution (e.g. debugging or very special circumstances).
+
=back
The C<Host> header is generated from the URL in accordance with RFC 2616. It
@@ -1774,6 +1920,10 @@ C<content> — The body of the response. If the response does not have any cont
C<headers> — A hashref of header fields. All header field names will be normalized to be lower case. If a header is repeated, the value will be an arrayref; it will otherwise be a scalar string containing the value
+=item *
+
+C<redirects> If this field exists, it is an arrayref of response hash references from redirects in the same order that redirections occurred. If it does not exist, then no redirections occurred.
+
=back
On an exception during the execution of the request, the C<status> field will
@@ -1806,6 +1956,22 @@ In scalar context, returns a boolean indicating if SSL is available.
In list context, returns the boolean and a (possibly multi-line) string of
errors indicating why SSL isn't available.
+=head2 connected
+
+ $host = $http->connected;
+ ($host, $port) = $http->connected;
+
+Indicates if a connection to a peer is being kept alive, per the C<keep_alive>
+option.
+
+In scalar context, returns the peer host and port, joined with a colon, or
+C<undef> (if no peer is connected).
+In list context, returns the peer host and port or an empty list (if no peer
+is connected).
+
+B<Note>: This method cannot reliably be used to discover whether the remote
+host has closed its end of the socket.
+
=for Pod::Coverage SSL_options
agent
cookie_jar
@@ -1867,6 +2033,10 @@ attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. If you are
concerned about security, you should enable this option.
Certificate verification requires a file containing trusted CA certificates.
+
+If the environment variable C<SSL_CERT_FILE> is present, HTTP::Tiny
+will try to find a CA certificate file in that location.
+
If the L<Mozilla::CA> module is installed, HTTP::Tiny will use the CA file
included with it as a source of trusted CA's. (This means you trust Mozilla,
the author of Mozilla::CA, the CPAN mirror where you got Mozilla::CA, the
@@ -2025,6 +2195,13 @@ Only 'chunked' C<Transfer-Encoding> is supported.
There is no support for a Request-URI of '*' for the 'OPTIONS' request.
+=item *
+
+Headers mentioned in the RFCs and some other, well-known headers are
+generated with their canonical case. Other headers are sent in the
+case provided by the user. Except for control headers (which are sent first),
+headers are sent in arbitrary order.
+
=back
Despite the limitations listed above, HTTP::Tiny is considered
@@ -2104,7 +2281,7 @@ David Golden <dagolden@cpan.org>
=head1 CONTRIBUTORS
-=for stopwords Alan Gardner Alessandro Ghedini Brad Gilbert Chris Nehren Weyl Claes Jakobsson Clinton Gormley Dean Pearce Edward Zborowski James Raspass Jeremy Mates Jess Robinson Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Olaf Alders Olivier Mengué Petr Písař Sören Kornetzki Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook
+=for stopwords Alan Gardner Alessandro Ghedini A. Sinan Unur Brad Gilbert brian m. carlson Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Golden Dean Pearce Edward Zborowski James Raspass Jeremy Mates Jess Robinson Karen Etheridge Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Nicolas Rochelemagne Olaf Alders Olivier Mengué Petr Písař SkyMarshal Sören Kornetzki Steve Grazzini Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook
=over 4
@@ -2118,10 +2295,18 @@ Alessandro Ghedini <al3xbio@gmail.com>
=item *
+A. Sinan Unur <nanis@cpan.org>
+
+=item *
+
Brad Gilbert <bgills@cpan.org>
=item *
+brian m. carlson <sandals@crustytoothpaste.net>
+
+=item *
+
Chris Nehren <apeiron@cpan.org>
=item *
@@ -2138,6 +2323,14 @@ Clinton Gormley <clint@traveljury.com>
=item *
+Craig A. Berry <craigberry@mac.com>
+
+=item *
+
+David Golden <xdg@xdg.me>
+
+=item *
+
Dean Pearce <pearce@pythian.com>
=item *
@@ -2158,6 +2351,10 @@ Jess Robinson <castaway@desert-island.me.uk>
=item *
+Karen Etheridge <ether@cpan.org>
+
+=item *
+
Lukas Eklund <leklund@gmail.com>
=item *
@@ -2174,6 +2371,10 @@ Mike Doherty <doherty@cpan.org>
=item *
+Nicolas Rochelemagne <rochelemagne@cpanel.net>
+
+=item *
+
Olaf Alders <olaf@wundersolutions.com>
=item *
@@ -2186,10 +2387,18 @@ Petr Písař <ppisar@redhat.com>
=item *
+SkyMarshal <skymarshal1729@gmail.com>
+
+=item *
+
Sören Kornetzki <soeren.kornetzki@delti.com>
=item *
+Steve Grazzini <steve.grazzini@grantstreet.com>
+
+=item *
+
Syohei YOSHIDA <syohex@gmail.com>
=item *
@@ -2208,7 +2417,7 @@ Tony Cook <tony@develop-help.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2015 by Christian Hansen.
+This software is copyright (c) 2016 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.
diff --git a/Master/tlpkg/tlperl/lib/Hash/Util.pm b/Master/tlpkg/tlperl/lib/Hash/Util.pm
index a947b9a76ef..1a9e9ac8103 100644
--- a/Master/tlpkg/tlperl/lib/Hash/Util.pm
+++ b/Master/tlpkg/tlperl/lib/Hash/Util.pm
@@ -34,10 +34,18 @@ our @EXPORT_OK = qw(
lock_hashref_recurse unlock_hashref_recurse
hash_traversal_mask
+
+ bucket_ratio
+ used_buckets
+ num_buckets
);
-our $VERSION = '0.19';
-require XSLoader;
-XSLoader::load();
+BEGIN {
+ # make sure all our XS routines are available early so their prototypes
+ # are correctly applied in the following code.
+ our $VERSION = '0.22';
+ require XSLoader;
+ XSLoader::load();
+}
sub import {
my $class = shift;
@@ -168,7 +176,7 @@ Both routines return a reference to the hash operated on.
sub lock_ref_keys {
my($hash, @keys) = @_;
- Internals::hv_clear_placeholders %$hash;
+ _clear_placeholders(%$hash);
if( @keys ) {
my %keys = map { ($_ => 1) } @keys;
my %original_keys = map { ($_ => 1) } keys %$hash;
@@ -203,6 +211,19 @@ sub unlock_ref_keys {
sub lock_keys (\%;@) { lock_ref_keys(@_) }
sub unlock_keys (\%) { unlock_ref_keys(@_) }
+#=item B<_clear_placeholders>
+#
+# This function removes any placeholder keys from a hash. See Perl_hv_clear_placeholders()
+# in hv.c for what it does exactly. It is currently exposed as XS by universal.c and
+# injected into the Hash::Util namespace.
+#
+# It is not intended for use outside of this module, and may be changed
+# or removed without notice or deprecation cycle.
+#
+#=cut
+#
+# sub _clear_placeholders {} # just in case someone searches...
+
=item B<lock_keys_plus>
lock_keys_plus(%hash,@additional_keys)
@@ -221,7 +242,7 @@ Returns a reference to %hash
sub lock_ref_keys_plus {
my ($hash,@keys) = @_;
my @delete;
- Internals::hv_clear_placeholders(%$hash);
+ _clear_placeholders(%$hash);
foreach my $key (@keys) {
unless (exists($hash->{$key})) {
$hash->{$key}=undef;
@@ -727,6 +748,29 @@ order. B<Note> that this does B<not> guarantee that B<two> hashes will produce
the same key order for the same hash seed and traversal mask, items that
collide into one bucket may have different orders regardless of this setting.
+=item B<bucket_ratio>
+
+This function behaves the same way that scalar(%hash) behaved prior to
+Perl 5.25. Specifically if the hash is tied, then it calls the SCALAR tied
+hash method, if untied then if the hash is empty it return 0, otherwise it
+returns a string containing the number of used buckets in the hash,
+followed by a slash, followed by the total number of buckets in the hash.
+
+ my %hash=("foo"=>1);
+ print Hash::Util::bucket_ratio(%hash); # prints "1/8"
+
+=item B<used_buckets>
+
+This function returns the count of used buckets in the hash. It is expensive
+to calculate and the value is NOT cached, so avoid use of this function
+in production code.
+
+=item B<num_buckets>
+
+This function returns the total number of buckets the hash holds, or would
+hold if the array were created. (When a hash is freshly created the array
+may not be allocated even though this value will be non-zero.)
+
=back
=head2 Operating on references to hashes.
diff --git a/Master/tlpkg/tlperl/lib/I18N/LangTags.pm b/Master/tlpkg/tlperl/lib/I18N/LangTags.pm
index 9bac7077e70..c4d9ceab3d6 100644
--- a/Master/tlpkg/tlperl/lib/I18N/LangTags.pm
+++ b/Master/tlpkg/tlperl/lib/I18N/LangTags.pm
@@ -19,7 +19,7 @@ require Exporter;
);
%EXPORT_TAGS = ('ALL' => \@EXPORT_OK);
-$VERSION = "0.40";
+$VERSION = "0.42";
sub uniq { my %seen; return grep(!($seen{$_}++), @_); } # a util function
@@ -460,7 +460,7 @@ interaction looks like:
So far so good. But suppose the way you're implementing this is:
my %greetings;
- die unless open(IN, "<in.dat");
+ die unless open(IN, "<", "in.dat");
while(<IN>) {
chomp;
next unless /^([^=]+)=(.+)/s;
@@ -502,7 +502,7 @@ program with:
use I18N::LangTags qw(encode_language_tag);
my %greetings;
- die unless open(IN, "<in.dat");
+ die unless open(IN, "<", "in.dat");
while(<IN>) {
chomp;
next unless /^([^=]+)=(.+)/s;
diff --git a/Master/tlpkg/tlperl/lib/I18N/LangTags/Detect.pm b/Master/tlpkg/tlperl/lib/I18N/LangTags/Detect.pm
index a877fbfc7f7..a0f3d1db8d2 100644
--- a/Master/tlpkg/tlperl/lib/I18N/LangTags/Detect.pm
+++ b/Master/tlpkg/tlperl/lib/I18N/LangTags/Detect.pm
@@ -11,7 +11,7 @@ use vars qw( @ISA $VERSION $MATCH_SUPERS $USING_LANGUAGE_TAGS
BEGIN { unless(defined &DEBUG) { *DEBUG = sub () {0} } }
# define the constant 'DEBUG' at compile-time
-$VERSION = "1.05_01";
+$VERSION = "1.06";
@ISA = ();
use I18N::LangTags qw(alternate_language_tags locale2language_tag);
diff --git a/Master/tlpkg/tlperl/lib/IO.pm b/Master/tlpkg/tlperl/lib/IO.pm
index 44b312b6a3e..a9a585269bc 100644
--- a/Master/tlpkg/tlperl/lib/IO.pm
+++ b/Master/tlpkg/tlperl/lib/IO.pm
@@ -7,7 +7,7 @@ use Carp;
use strict;
use warnings;
-our $VERSION = "1.36_01";
+our $VERSION = "1.38";
XSLoader::load 'IO', $VERSION;
sub import {
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
index 61955504c91..99773e8160e 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Bzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
+use IO::Compress::Base::Common 2.074 qw(:Status);
-use Compress::Raw::Bzip2 2.069 ;
+use Compress::Raw::Bzip2 2.074 ;
our ($VERSION);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
sub mkCompObject
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
index 8ea7e69915f..1edd3fa62a3 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Deflate.pm
@@ -4,13 +4,13 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
-use Compress::Raw::Zlib 2.069 qw( !crc32 !adler32 ) ;
+use IO::Compress::Base::Common 2.074 qw(:Status);
+use Compress::Raw::Zlib 2.074 qw( !crc32 !adler32 ) ;
require Exporter;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@ISA = qw(Exporter);
@EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS;
%EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS;
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
index 7ec9b33f557..71dee011ff9 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Adapter/Identity.pm
@@ -4,10 +4,10 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
+use IO::Compress::Base::Common 2.074 qw(:Status);
our ($VERSION);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
sub mkCompObject
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Base.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Base.pm
index 0b672914b6c..74eac6fba6f 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Base.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Base.pm
@@ -6,7 +6,7 @@ require 5.006 ;
use strict ;
use warnings;
-use IO::Compress::Base::Common 2.069 ;
+use IO::Compress::Base::Common 2.074 ;
use IO::File (); ;
use Scalar::Util ();
@@ -18,9 +18,9 @@ use Symbol();
#use bytes;
our (@ISA, $VERSION);
-@ISA = qw(Exporter IO::File);
+@ISA = qw(IO::File Exporter);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
#Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16.
@@ -1033,7 +1033,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1041,7 +1041,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm
index ef0eb7257e1..c82c99a441d 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Base/Common.pm
@@ -11,7 +11,7 @@ use File::GlobMapper;
require Exporter;
our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE);
@ISA = qw(Exporter);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@EXPORT = qw( isaFilehandle isaFilename isaScalar
whatIsInput whatIsOutput
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
index 2ef5cb588e5..5fa5f584d28 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Bzip2.pm
@@ -5,19 +5,19 @@ use warnings;
use bytes;
require Exporter ;
-use IO::Compress::Base 2.069 ;
+use IO::Compress::Base 2.074 ;
-use IO::Compress::Base::Common 2.069 qw();
-use IO::Compress::Adapter::Bzip2 2.069 ;
+use IO::Compress::Base::Common 2.074 qw();
+use IO::Compress::Adapter::Bzip2 2.074 ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$Bzip2Error = '';
-@ISA = qw(Exporter IO::Compress::Base);
+@ISA = qw(IO::Compress::Base Exporter);
@EXPORT_OK = qw( $Bzip2Error bzip2 ) ;
%EXPORT_TAGS = %IO::Compress::Base::EXPORT_TAGS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -51,7 +51,7 @@ sub getExtraParams
{
my $self = shift ;
- use IO::Compress::Base::Common 2.069 qw(:Parse);
+ use IO::Compress::Base::Common 2.074 qw(:Parse);
return (
'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned, 1],
@@ -784,13 +784,13 @@ L<File::GlobMapper|File::GlobMapper>, L<Archive::Zip|Archive::Zip>,
L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
-The primary site for the bzip2 program is F<http://www.bzip.org>.
+The primary site for the bzip2 program is L<http://www.bzip.org>.
See the module L<Compress::Bzip2|Compress::Bzip2>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -798,7 +798,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
index 33a262a444b..379ad9cd73d 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Deflate.pm
@@ -8,19 +8,19 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.069 ();
-use IO::Compress::Adapter::Deflate 2.069 ;
+use IO::Compress::RawDeflate 2.074 ();
+use IO::Compress::Adapter::Deflate 2.074 ;
-use IO::Compress::Zlib::Constants 2.069 ;
-use IO::Compress::Base::Common 2.069 qw();
+use IO::Compress::Zlib::Constants 2.074 ;
+use IO::Compress::Base::Common 2.074 qw();
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$DeflateError = '';
-@ISA = qw(Exporter IO::Compress::RawDeflate);
+@ISA = qw(IO::Compress::RawDeflate Exporter);
@EXPORT_OK = qw( $DeflateError deflate ) ;
%EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ;
@@ -910,21 +910,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -932,7 +932,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/FAQ.pod b/Master/tlpkg/tlperl/lib/IO/Compress/FAQ.pod
index 7f51b6c4c15..7099418443d 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/FAQ.pod
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/FAQ.pod
@@ -199,7 +199,7 @@ L<ftp://ftp.info-zip.org/pub/infozip/doc/>
The primary reference for gzip files is RFC 1952
L<http://www.faqs.org/rfcs/rfc1952.html>
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head2 Dealing with concatenated gzip files
@@ -235,7 +235,7 @@ C<IO::Uncompress::Gunzip> use the C<MultiStream> option as shown in the
previous section.
See the section titled "The BGZF compression format" in
-F<http://samtools.github.io/hts-specs/SAMv1.pdf> for a definition of
+L<http://samtools.github.io/hts-specs/SAMv1.pdf> for a definition of
C<bgzip>.
=head1 ZLIB
@@ -243,13 +243,13 @@ C<bgzip>.
=head2 Zlib Resources
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
=head1 Bzip2
=head2 Bzip2 Resources
-The primary site for bzip2 is F<http://www.bzip.org>.
+The primary site for bzip2 is L<http://www.bzip.org>.
=head2 Dealing with Concatenated bzip2 files
@@ -296,7 +296,7 @@ must include the C<MultiStream> option, like this.
Below is a mod_perl Apache compression module, called C<Apache::GZip>,
taken from
-F<http://perl.apache.org/docs/tutorials/tips/mod_perl_tricks/mod_perl_tricks.html#On_the_Fly_Compression>
+L<http://perl.apache.org/docs/tutorials/tips/mod_perl_tricks/mod_perl_tricks.html#On_the_Fly_Compression>
package Apache::GZip;
#File: Apache::GZip.pm
@@ -668,7 +668,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -676,7 +676,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
index 800421124b3..db017646245 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Gzip.pm
@@ -8,12 +8,12 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.069 () ;
-use IO::Compress::Adapter::Deflate 2.069 ;
+use IO::Compress::RawDeflate 2.074 () ;
+use IO::Compress::Adapter::Deflate 2.074 ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::Gzip::Constants 2.069 ;
-use IO::Compress::Zlib::Extra 2.069 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::Gzip::Constants 2.074 ;
+use IO::Compress::Zlib::Extra 2.074 ;
BEGIN
{
@@ -25,10 +25,10 @@ BEGIN
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$GzipError = '' ;
-@ISA = qw(Exporter IO::Compress::RawDeflate);
+@ISA = qw(IO::Compress::RawDeflate Exporter);
@EXPORT_OK = qw( $GzipError gzip ) ;
%EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ;
@@ -1222,21 +1222,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1244,7 +1244,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm
index 950bdb0ac44..8186bf325ef 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Gzip/Constants.pm
@@ -9,7 +9,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names);
our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@ISA = qw(Exporter);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm b/Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
index 2a553014deb..bc1b71eefe8 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/RawDeflate.pm
@@ -6,18 +6,18 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base 2.069 ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::Adapter::Deflate 2.069 ;
+use IO::Compress::Base 2.074 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::Adapter::Deflate 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$RawDeflateError = '';
-@ISA = qw(Exporter IO::Compress::Base);
+@ISA = qw(IO::Compress::Base Exporter);
@EXPORT_OK = qw( $RawDeflateError rawdeflate ) ;
push @EXPORT_OK, @IO::Compress::Adapter::Deflate::EXPORT_OK ;
@@ -116,8 +116,8 @@ sub getExtraParams
return getZlibParams();
}
-use IO::Compress::Base::Common 2.069 qw(:Parse);
-use Compress::Raw::Zlib 2.069 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+use IO::Compress::Base::Common 2.074 qw(:Parse);
+use Compress::Raw::Zlib 2.074 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
our %PARAMS = (
#'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED],
'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION],
@@ -966,21 +966,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -988,7 +988,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm
index 98e4f501a3a..07c72d6706f 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Zip.pm
@@ -4,30 +4,30 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::RawDeflate 2.069 ();
-use IO::Compress::Adapter::Deflate 2.069 ;
-use IO::Compress::Adapter::Identity 2.069 ;
-use IO::Compress::Zlib::Extra 2.069 ;
-use IO::Compress::Zip::Constants 2.069 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::RawDeflate 2.074 ();
+use IO::Compress::Adapter::Deflate 2.074 ;
+use IO::Compress::Adapter::Identity 2.074 ;
+use IO::Compress::Zlib::Extra 2.074 ;
+use IO::Compress::Zip::Constants 2.074 ;
use File::Spec();
use Config;
-use Compress::Raw::Zlib 2.069 ();
+use Compress::Raw::Zlib 2.074 ();
BEGIN
{
eval { require IO::Compress::Adapter::Bzip2 ;
- import IO::Compress::Adapter::Bzip2 2.069 ;
+ import IO::Compress::Adapter::Bzip2 2.074 ;
require IO::Compress::Bzip2 ;
- import IO::Compress::Bzip2 2.069 ;
+ import IO::Compress::Bzip2 2.074 ;
} ;
eval { require IO::Compress::Adapter::Lzma ;
- import IO::Compress::Adapter::Lzma 2.069 ;
+ import IO::Compress::Adapter::Lzma 2.074 ;
require IO::Compress::Lzma ;
- import IO::Compress::Lzma 2.069 ;
+ import IO::Compress::Lzma 2.074 ;
} ;
}
@@ -36,10 +36,10 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$ZipError = '';
-@ISA = qw(Exporter IO::Compress::RawDeflate);
+@ISA = qw(IO::Compress::RawDeflate Exporter);
@EXPORT_OK = qw( $ZipError zip ) ;
%EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ;
@@ -1936,21 +1936,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1958,7 +1958,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
index d72d0dc69c4..7e38f1b9aac 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Zip/Constants.pm
@@ -7,7 +7,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@ISA = qw(Exporter);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
index 70f2db1997a..02d8d365175 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Constants.pm
@@ -9,7 +9,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
@ISA = qw(Exporter);
diff --git a/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm b/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
index 92ca20521f1..f710309e7b2 100644
--- a/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Compress/Zlib/Extra.pm
@@ -8,9 +8,9 @@ use bytes;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
-use IO::Compress::Gzip::Constants 2.069 ;
+use IO::Compress::Gzip::Constants 2.074 ;
sub ExtraFieldError
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Socket/IP.pm b/Master/tlpkg/tlperl/lib/IO/Socket/IP.pm
index 3266fab792a..1bf6b0ea89b 100644
--- a/Master/tlpkg/tlperl/lib/IO/Socket/IP.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Socket/IP.pm
@@ -7,7 +7,7 @@ package IO::Socket::IP;
# $VERSION needs to be set before use base 'IO::Socket'
# - https://rt.cpan.org/Ticket/Display.html?id=92107
BEGIN {
- $VERSION = '0.37';
+ $VERSION = '0.38';
}
use strict;
@@ -265,6 +265,22 @@ If true, set the C<SO_REUSEPORT> sockopt (not all OSes implement this sockopt)
If true, set the C<SO_BROADCAST> sockopt
+=item Sockopts => ARRAY
+
+An optional array of other socket options to apply after the three listed
+above. The value is an ARRAY containing 2- or 3-element ARRAYrefs. Each inner
+array relates to a single option, giving the level and option name, and an
+optional value. If the value element is missing, it will be given the value of
+a platform-sized integer 1 constant (i.e. suitable to enable most of the
+common boolean options).
+
+For example, both options given below are equivalent to setting C<ReuseAddr>.
+
+ Sockopts => [
+ [ SOL_SOCKET, SO_REUSEADDR ],
+ [ SOL_SOCKET, SO_REUSEADDR, pack( "i", 1 ) ],
+ ]
+
=item V6Only => BOOL
If defined, set the C<IPV6_V6ONLY> sockopt when creating C<PF_INET6> sockets
@@ -504,10 +520,27 @@ sub _io_socket_ip__configure
}
}
+ my $INT_1 = pack "i", 1;
+
my @sockopts_enabled;
- push @sockopts_enabled, SO_REUSEADDR if $arg->{ReuseAddr};
- push @sockopts_enabled, SO_REUSEPORT if $arg->{ReusePort};
- push @sockopts_enabled, SO_BROADCAST if $arg->{Broadcast};
+ push @sockopts_enabled, [ SOL_SOCKET, SO_REUSEADDR, $INT_1 ] if $arg->{ReuseAddr};
+ push @sockopts_enabled, [ SOL_SOCKET, SO_REUSEPORT, $INT_1 ] if $arg->{ReusePort};
+ push @sockopts_enabled, [ SOL_SOCKET, SO_BROADCAST, $INT_1 ] if $arg->{Broadcast};
+
+ if( my $sockopts = $arg->{Sockopts} ) {
+ ref $sockopts eq "ARRAY" or croak "Expected 'Sockopts' to be an ARRAY ref";
+ foreach ( @$sockopts ) {
+ ref $_ eq "ARRAY" or croak "Bad Sockopts item - expected ARRAYref";
+ @$_ >= 2 and @$_ <= 3 or
+ croak "Bad Sockopts item - expected 2 or 3 elements";
+
+ my ( $level, $optname, $value ) = @$_;
+ # TODO: consider more sanity checking on argument values
+
+ defined $value or $value = $INT_1;
+ push @sockopts_enabled, [ $level, $optname, $value ];
+ }
+ }
my $blocking = $arg->{Blocking};
defined $blocking or $blocking = 1;
@@ -607,7 +640,8 @@ sub setup
$self->blocking( 0 ) unless ${*$self}{io_socket_ip_blocking};
foreach my $sockopt ( @{ ${*$self}{io_socket_ip_sockopts} } ) {
- $self->setsockopt( SOL_SOCKET, $sockopt, pack "i", 1 ) or ( $@ = "$!", return undef );
+ my ( $level, $optname, $value ) = @$sockopt;
+ $self->setsockopt( $level, $optname, $value ) or ( $@ = "$!", return undef );
}
if( defined ${*$self}{io_socket_ip_v6only} and defined $AF_INET6 and $info->{family} == $AF_INET6 ) {
@@ -685,6 +719,7 @@ sub connect :method
}
elsif( not( $err == EINPROGRESS or $err == EWOULDBLOCK ) ) {
# Failed for some other reason
+ $self->blocking( $was_blocking );
return undef;
}
elsif( !$was_blocking ) {
@@ -694,6 +729,7 @@ sub connect :method
my $vec = ''; vec( $vec, $self->fileno, 1 ) = 1;
if( !select( undef, $vec, $vec, $timeout ) ) {
+ $self->blocking( $was_blocking );
$! = ETIMEDOUT;
return undef;
}
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
index 3d8fefcf7d1..2bd5e24236d 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Bunzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
+use IO::Compress::Base::Common 2.074 qw(:Status);
-use Compress::Raw::Bzip2 2.069 ;
+use Compress::Raw::Bzip2 2.074 ;
our ($VERSION, @ISA);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
sub mkUncompObject
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
index 840a34fccd4..3327fbc4bcc 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Identity.pm
@@ -4,14 +4,14 @@ use warnings;
use strict;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
+use IO::Compress::Base::Common 2.074 qw(:Status);
use IO::Compress::Zip::Constants ;
our ($VERSION);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
-use Compress::Raw::Zlib 2.069 ();
+use Compress::Raw::Zlib 2.074 ();
sub mkUncompObject
{
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
index d23eb900bfb..256d8409dd2 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Adapter/Inflate.pm
@@ -2,13 +2,13 @@ package IO::Uncompress::Adapter::Inflate;
use strict;
use warnings;
-#use bytes;
+use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status);
-use Compress::Raw::Zlib 2.069 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
+use IO::Compress::Base::Common 2.074 qw(:Status);
+use Compress::Raw::Zlib 2.074 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
our ($VERSION);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
index 637e6299b1b..40264960fdc 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyInflate.pm
@@ -6,25 +6,25 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 ();
+use IO::Compress::Base::Common 2.074 ();
-use IO::Uncompress::Adapter::Inflate 2.069 ();
+use IO::Uncompress::Adapter::Inflate 2.074 ();
-use IO::Uncompress::Base 2.069 ;
-use IO::Uncompress::Gunzip 2.069 ;
-use IO::Uncompress::Inflate 2.069 ;
-use IO::Uncompress::RawInflate 2.069 ;
-use IO::Uncompress::Unzip 2.069 ;
+use IO::Uncompress::Base 2.074 ;
+use IO::Uncompress::Gunzip 2.074 ;
+use IO::Uncompress::Inflate 2.074 ;
+use IO::Uncompress::RawInflate 2.074 ;
+use IO::Uncompress::Unzip 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$AnyInflateError = '';
-@ISA = qw( Exporter IO::Uncompress::Base );
+@ISA = qw(IO::Uncompress::Base Exporter);
@EXPORT_OK = qw( $AnyInflateError anyinflate ) ;
%EXPORT_TAGS = %IO::Uncompress::Base::DEFLATE_CONSTANTS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -48,7 +48,7 @@ sub anyinflate
sub getExtraParams
{
- use IO::Compress::Base::Common 2.069 qw(:Parse);
+ use IO::Compress::Base::Common 2.074 qw(:Parse);
return ( 'rawinflate' => [Parse_boolean, 0] ) ;
}
@@ -973,21 +973,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -995,7 +995,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
index 92a04a45d9d..e149a129ac6 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/AnyUncompress.pm
@@ -4,19 +4,19 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 ();
+use IO::Compress::Base::Common 2.074 ();
-use IO::Uncompress::Base 2.069 ;
+use IO::Uncompress::Base 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$AnyUncompressError = '';
-@ISA = qw( Exporter IO::Uncompress::Base );
+@ISA = qw(IO::Uncompress::Base Exporter);
@EXPORT_OK = qw( $AnyUncompressError anyuncompress ) ;
%EXPORT_TAGS = %IO::Uncompress::Base::DEFLATE_CONSTANTS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -29,22 +29,22 @@ BEGIN
{
local @INC = @INC;
pop @INC if $INC[-1] eq '.';
- eval ' use IO::Uncompress::Adapter::Inflate 2.069 ;';
- eval ' use IO::Uncompress::Adapter::Bunzip2 2.069 ;';
- eval ' use IO::Uncompress::Adapter::LZO 2.069 ;';
- eval ' use IO::Uncompress::Adapter::Lzf 2.069 ;';
- eval ' use IO::Uncompress::Adapter::UnLzma 2.069 ;';
- eval ' use IO::Uncompress::Adapter::UnXz 2.069 ;';
-
- eval ' use IO::Uncompress::Bunzip2 2.069 ;';
- eval ' use IO::Uncompress::UnLzop 2.069 ;';
- eval ' use IO::Uncompress::Gunzip 2.069 ;';
- eval ' use IO::Uncompress::Inflate 2.069 ;';
- eval ' use IO::Uncompress::RawInflate 2.069 ;';
- eval ' use IO::Uncompress::Unzip 2.069 ;';
- eval ' use IO::Uncompress::UnLzf 2.069 ;';
- eval ' use IO::Uncompress::UnLzma 2.069 ;';
- eval ' use IO::Uncompress::UnXz 2.069 ;';
+ eval ' use IO::Uncompress::Adapter::Inflate 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::Bunzip2 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::LZO 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::Lzf 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::UnLzma 2.074 ;';
+ eval ' use IO::Uncompress::Adapter::UnXz 2.074 ;';
+
+ eval ' use IO::Uncompress::Bunzip2 2.074 ;';
+ eval ' use IO::Uncompress::UnLzop 2.074 ;';
+ eval ' use IO::Uncompress::Gunzip 2.074 ;';
+ eval ' use IO::Uncompress::Inflate 2.074 ;';
+ eval ' use IO::Uncompress::RawInflate 2.074 ;';
+ eval ' use IO::Uncompress::Unzip 2.074 ;';
+ eval ' use IO::Uncompress::UnLzf 2.074 ;';
+ eval ' use IO::Uncompress::UnLzma 2.074 ;';
+ eval ' use IO::Uncompress::UnXz 2.074 ;';
}
sub new
@@ -1019,7 +1019,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1027,7 +1027,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
index 0906f34f2a8..4ba3efab16d 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Base.pm
@@ -3,18 +3,18 @@ package IO::Uncompress::Base ;
use strict ;
use warnings;
-#use bytes;
+use bytes;
our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS);
-@ISA = qw(Exporter IO::File);
+@ISA = qw(IO::File Exporter);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
use constant G_EOF => 0 ;
use constant G_ERR => -1 ;
-use IO::Compress::Base::Common 2.069 ;
+use IO::Compress::Base::Common 2.074 ;
use IO::File ;
use Symbol;
@@ -1541,7 +1541,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1549,7 +1549,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
index 97bc415878a..26556b7625f 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Bunzip2.pm
@@ -4,18 +4,18 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status );
+use IO::Compress::Base::Common 2.074 qw(:Status );
-use IO::Uncompress::Base 2.069 ;
-use IO::Uncompress::Adapter::Bunzip2 2.069 ;
+use IO::Uncompress::Base 2.074 ;
+use IO::Uncompress::Adapter::Bunzip2 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$Bunzip2Error = '';
-@ISA = qw( Exporter IO::Uncompress::Base );
+@ISA = qw(IO::Uncompress::Base Exporter);
@EXPORT_OK = qw( $Bunzip2Error bunzip2 ) ;
#%EXPORT_TAGS = %IO::Uncompress::Base::EXPORT_TAGS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -889,13 +889,13 @@ L<File::GlobMapper|File::GlobMapper>, L<Archive::Zip|Archive::Zip>,
L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
-The primary site for the bzip2 program is F<http://www.bzip.org>.
+The primary site for the bzip2 program is L<http://www.bzip.org>.
See the module L<Compress::Bzip2|Compress::Bzip2>
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -903,7 +903,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
index a27f39d5287..90af4b1b623 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Gunzip.pm
@@ -9,18 +9,18 @@ use strict ;
use warnings;
use bytes;
-use IO::Uncompress::RawInflate 2.069 ;
+use IO::Uncompress::RawInflate 2.074 ;
-use Compress::Raw::Zlib 2.069 () ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::Gzip::Constants 2.069 ;
-use IO::Compress::Zlib::Extra 2.069 ;
+use Compress::Raw::Zlib 2.074 () ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::Gzip::Constants 2.074 ;
+use IO::Compress::Zlib::Extra 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $GunzipError);
-@ISA = qw( Exporter IO::Uncompress::RawInflate );
+@ISA = qw(IO::Uncompress::RawInflate Exporter);
@EXPORT_OK = qw( $GunzipError gunzip );
%EXPORT_TAGS = %IO::Uncompress::RawInflate::DEFLATE_CONSTANTS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -28,7 +28,7 @@ Exporter::export_ok_tags('all');
$GunzipError = '';
-$VERSION = '2.069_001';
+$VERSION = '2.074';
sub new
{
@@ -1096,21 +1096,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1118,7 +1118,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
index db0f70cb2ea..4e1b246fac8 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Inflate.pm
@@ -5,18 +5,18 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Compress::Zlib::Constants 2.069 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Compress::Zlib::Constants 2.074 ;
-use IO::Uncompress::RawInflate 2.069 ;
+use IO::Uncompress::RawInflate 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$InflateError = '';
-@ISA = qw( Exporter IO::Uncompress::RawInflate );
+@ISA = qw(IO::Uncompress::RawInflate Exporter);
@EXPORT_OK = qw( $InflateError inflate ) ;
%EXPORT_TAGS = %IO::Uncompress::RawInflate::DEFLATE_CONSTANTS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -968,21 +968,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -990,7 +990,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
index 20a91626423..831940301db 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/RawInflate.pm
@@ -3,21 +3,21 @@ package IO::Uncompress::RawInflate ;
use strict ;
use warnings;
-#use bytes;
+use bytes;
-use Compress::Raw::Zlib 2.069 ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
+use Compress::Raw::Zlib 2.074 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
-use IO::Uncompress::Base 2.069 ;
-use IO::Uncompress::Adapter::Inflate 2.069 ;
+use IO::Uncompress::Base 2.074 ;
+use IO::Uncompress::Adapter::Inflate 2.074 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$RawInflateError = '';
-@ISA = qw( Exporter IO::Uncompress::Base );
+@ISA = qw(IO::Uncompress::Base Exporter);
@EXPORT_OK = qw( $RawInflateError rawinflate ) ;
%DEFLATE_CONSTANTS = ();
%EXPORT_TAGS = %IO::Uncompress::Base::EXPORT_TAGS ;
@@ -1096,21 +1096,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1118,7 +1118,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm b/Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
index 5394ec899df..5a35e018a68 100644
--- a/Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
+++ b/Master/tlpkg/tlperl/lib/IO/Uncompress/Unzip.pm
@@ -6,22 +6,22 @@ require 5.006 ;
use strict ;
use warnings;
-#use bytes;
+use bytes;
use IO::File;
-use IO::Uncompress::RawInflate 2.069 ;
-use IO::Compress::Base::Common 2.069 qw(:Status );
-use IO::Uncompress::Adapter::Inflate 2.069 ;
-use IO::Uncompress::Adapter::Identity 2.069 ;
-use IO::Compress::Zlib::Extra 2.069 ;
-use IO::Compress::Zip::Constants 2.069 ;
+use IO::Uncompress::RawInflate 2.074 ;
+use IO::Compress::Base::Common 2.074 qw(:Status );
+use IO::Uncompress::Adapter::Inflate 2.074 ;
+use IO::Uncompress::Adapter::Identity 2.074 ;
+use IO::Compress::Zlib::Extra 2.074 ;
+use IO::Compress::Zip::Constants 2.074 ;
-use Compress::Raw::Zlib 2.069 () ;
+use Compress::Raw::Zlib 2.074 () ;
BEGIN
{
eval{ require IO::Uncompress::Adapter::Bunzip2 ;
- import IO::Uncompress::Adapter::Bunzip2 } ;
+ import IO::Uncompress::Adapter::Bunzip2 } ;
eval{ require IO::Uncompress::Adapter::UnLzma ;
import IO::Uncompress::Adapter::UnLzma } ;
}
@@ -31,10 +31,10 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup);
-$VERSION = '2.069_001';
+$VERSION = '2.074';
$UnzipError = '';
-@ISA = qw(Exporter IO::Uncompress::RawInflate);
+@ISA = qw(IO::Uncompress::RawInflate Exporter);
@EXPORT_OK = qw( $UnzipError unzip );
%EXPORT_TAGS = %IO::Uncompress::RawInflate::EXPORT_TAGS ;
push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ;
@@ -1839,21 +1839,21 @@ L<Archive::Tar|Archive::Tar>,
L<IO::Zlib|IO::Zlib>
For RFC 1950, 1951 and 1952 see
-F<http://www.faqs.org/rfcs/rfc1950.html>,
-F<http://www.faqs.org/rfcs/rfc1951.html> and
-F<http://www.faqs.org/rfcs/rfc1952.html>
+L<http://www.faqs.org/rfcs/rfc1950.html>,
+L<http://www.faqs.org/rfcs/rfc1951.html> and
+L<http://www.faqs.org/rfcs/rfc1952.html>
The I<zlib> compression library was written by Jean-loup Gailly
-F<gzip@prep.ai.mit.edu> and Mark Adler F<madler@alumni.caltech.edu>.
+C<gzip@prep.ai.mit.edu> and Mark Adler C<madler@alumni.caltech.edu>.
The primary site for the I<zlib> compression library is
-F<http://www.zlib.org>.
+L<http://www.zlib.org>.
-The primary site for gzip is F<http://www.gzip.org>.
+The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, F<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@cpan.org>.
=head1 MODIFICATION HISTORY
@@ -1861,7 +1861,7 @@ See the Changes file.
=head1 COPYRIGHT AND LICENSE
-Copyright (c) 2005-2015 Paul Marquess. All rights reserved.
+Copyright (c) 2005-2017 Paul Marquess. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/IPC/Cmd.pm b/Master/tlpkg/tlperl/lib/IPC/Cmd.pm
index 4705f044338..c0e25a22fb3 100644
--- a/Master/tlpkg/tlperl/lib/IPC/Cmd.pm
+++ b/Master/tlpkg/tlperl/lib/IPC/Cmd.pm
@@ -18,7 +18,7 @@ BEGIN {
$HAVE_MONOTONIC
];
- $VERSION = '0.92_01';
+ $VERSION = '0.96';
$VERBOSE = 0;
$DEBUG = 0;
$WARN = 1;
@@ -60,6 +60,8 @@ use Text::ParseWords (); # import ONLY if needed!
use Module::Load::Conditional qw[can_load];
use Locale::Maketext::Simple Style => 'gettext';
+local $Module::Load::Conditional::FORCE_SAFE_INC = 1;
+
=pod
=head1 NAME
@@ -142,8 +144,6 @@ sub can_use_ipc_run {
return if IS_WIN98;
### if we don't have ipc::run, we obviously can't use it.
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
return unless can_load(
modules => { 'IPC::Run' => '0.55' },
verbose => ($WARN && $verbose),
@@ -171,8 +171,6 @@ sub can_use_ipc_open3 {
### IPC::Open3 works on every non-VMS platform, but it can't
### capture buffers on win32 :(
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
return unless can_load(
modules => { map {$_ => '0.0'} qw|IPC::Open3 IO::Select Symbol| },
verbose => ($WARN && $verbose),
@@ -403,6 +401,14 @@ sub adjust_monotonic_start_time {
}
}
+sub uninstall_signals {
+ return unless defined($IPC::Cmd::{'__old_signals'});
+
+ foreach my $sig_name (keys %{$IPC::Cmd::{'__old_signals'}}) {
+ $SIG{$sig_name} = $IPC::Cmd::{'__old_signals'}->{$sig_name};
+ }
+}
+
# incompatible with POSIX::SigAction
#
sub install_layered_signal {
@@ -415,6 +421,10 @@ sub install_layered_signal {
Carp::confess("install_layered_signal expects coderef")
if !ref($handler_code) || ref($handler_code) ne 'CODE';
+ $IPC::Cmd::{'__old_signals'} = {}
+ unless defined($IPC::Cmd::{'__old_signals'});
+ $IPC::Cmd::{'__old_signals'}->{$s} = $SIG{$s};
+
my $previous_handler = $SIG{$s};
my $sig_handler = sub {
@@ -572,7 +582,8 @@ sub open3_run {
# it will terminate only after child
# has terminated (except for SIGKILL,
# which is specially handled)
- foreach my $s (keys %SIG) {
+ SIGNAL: foreach my $s (keys %SIG) {
+ next SIGNAL if $s eq '__WARN__' or $s eq '__DIE__'; # Skip and don't clobber __DIE__ & __WARN__
my $sig_handler;
$sig_handler = sub {
kill("$s", $pid);
@@ -848,18 +859,15 @@ sub run_forked {
# prepare sockets to read from child
- $flags = 0;
- fcntl($child_stdout_socket, POSIX::F_GETFL, $flags) || Carp::confess "can't fnctl F_GETFL: $!";
+ $flags = fcntl($child_stdout_socket, POSIX::F_GETFL, 0) || Carp::confess "can't fnctl F_GETFL: $!";
$flags |= POSIX::O_NONBLOCK;
fcntl($child_stdout_socket, POSIX::F_SETFL, $flags) || Carp::confess "can't fnctl F_SETFL: $!";
- $flags = 0;
- fcntl($child_stderr_socket, POSIX::F_GETFL, $flags) || Carp::confess "can't fnctl F_GETFL: $!";
+ $flags = fcntl($child_stderr_socket, POSIX::F_GETFL, 0) || Carp::confess "can't fnctl F_GETFL: $!";
$flags |= POSIX::O_NONBLOCK;
fcntl($child_stderr_socket, POSIX::F_SETFL, $flags) || Carp::confess "can't fnctl F_SETFL: $!";
- $flags = 0;
- fcntl($child_info_socket, POSIX::F_GETFL, $flags) || Carp::confess "can't fnctl F_GETFL: $!";
+ $flags = fcntl($child_info_socket, POSIX::F_GETFL, 0) || Carp::confess "can't fnctl F_GETFL: $!";
$flags |= POSIX::O_NONBLOCK;
fcntl($child_info_socket, POSIX::F_SETFL, $flags) || Carp::confess "can't fnctl F_SETFL: $!";
@@ -1149,6 +1157,8 @@ sub run_forked {
delete($SIG{'CHLD'});
}
+ uninstall_signals();
+
return $o;
}
else {
@@ -1937,6 +1947,8 @@ sub _pp_child_error {
1;
+__END__
+
=head2 $q = QUOTE
Returns the character used for quoting strings on this platform. This is
@@ -1951,8 +1963,6 @@ You can use it as follows:
This makes sure that C<foo bar> is treated as a string, rather than two
separate arguments to the C<echo> function.
-__END__
-
=head1 HOW IT WORKS
C<run> will try to execute your command using the following logic:
diff --git a/Master/tlpkg/tlperl/lib/Internals.pod b/Master/tlpkg/tlperl/lib/Internals.pod
new file mode 100755
index 00000000000..4a1144afd6d
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Internals.pod
@@ -0,0 +1,78 @@
+=head1 NAME
+
+Internals - Reserved special namespace for internals related functions
+
+=head1 SYNOPSIS
+
+ $is_ro= Internals::SvREADONLY($x)
+ $refcnt= Internals::SvREFCNT($x)
+ hv_clear_placeholders(%hash);
+
+=head1 DESCRIPTION
+
+The Internals namespace is used by the core Perl development team to
+expose certain low level internals routines for testing and other purposes.
+
+In theory these routines were not and are not intended to be used outside
+of the perl core, and are subject to change and removal at any time.
+
+In practice people have come to depend on these over the years, despite
+being historically undocumented, so we will provide some level of
+forward compatibility for some time. Nevertheless you can assume that any
+routine documented here is experimental or deprecated and you should find
+alternatives to their use.
+
+=head2 FUNCTIONS
+
+=over 4
+
+=item SvREFCNT(THING [, $value])
+
+Historically Perl has been a refcounted language. This means that each
+variable tracks how many things reference it, and when the variable is no
+longer referenced it will automatically free itself. In theory Perl code
+should not have to care about this, and in a future version Perl might
+change to some other strategy, although in practice this is unlikely.
+
+This function allows one to violate the abstraction of variables and get
+or set the refcount of a variable, and in generally is really only useful
+in code that is testing refcount behavior.
+
+*NOTE* You are strongly discouraged from using this function in non-test
+code and especially discouraged from using the set form of this function.
+The results of doing so may result in segmentation faults or other undefined
+behavior.
+
+=item SvREADONLY(THING, [, $value])
+
+Set or get whether a variable is readonly or not. Exactly what the
+readonly flag means depend on the type of the variable affected and the
+version of perl used.
+
+You are strongly discouraged from using this function directly. It is used
+by various core modules, like C<Hash::Util>, and the C<constant> pragma
+to implement higher-level behavior which should be used instead.
+
+See the core implementation for the exact meaning of the readonly flag for
+each internal variable type.
+
+=item hv_clear_placeholders(%hash)
+
+Clear any placeholders from a locked hash. Should not be used directly.
+You should use the wrapper functions providewd by Hash::Util instead.
+As of 5.25 also available as C< Hash::Util::_clear_placeholders(%hash) >
+
+=back
+
+=head1 AUTHOR
+
+Perl core development team.
+
+=head1 SEE ALSO
+
+L<perlguts>
+L<Hash::Util>
+L<constant>
+universal.c
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/JSON/PP.pm b/Master/tlpkg/tlperl/lib/JSON/PP.pm
index 1e29eee039f..9337ce9a769 100644
--- a/Master/tlpkg/tlperl/lib/JSON/PP.pm
+++ b/Master/tlpkg/tlperl/lib/JSON/PP.pm
@@ -11,7 +11,7 @@ use Carp ();
use B ();
#use Devel::Peek;
-$JSON::PP::VERSION = '2.27300_01';
+$JSON::PP::VERSION = '2.27400_02';
@JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json);
@@ -52,7 +52,7 @@ BEGIN {
allow_barekey escape_slash as_nonblessed
);
- # Perl version check, Unicode handling is enable?
+ # Perl version check, Unicode handling is enabled?
# Helper module sets @JSON::PP::_properties.
if ($] < 5.008 ) {
my $helper = $] >= 5.006 ? 'JSON::PP::Compat5006' : 'JSON::PP::Compat5005';
@@ -608,7 +608,7 @@ BEGIN {
my $text; # json data
my $at; # offset
- my $ch; # 1chracter
+ my $ch; # first character
my $len; # text length (changed according to UTF8 or NON UTF8)
# INTERNAL
my $depth; # nest counter
@@ -617,7 +617,7 @@ BEGIN {
my $utf8_len; # utf8 byte length
# FLAGS
my $utf8; # must be utf8
- my $max_depth; # max nest nubmer of objects and arrays
+ my $max_depth; # max nest number of objects and arrays
my $max_size;
my $relaxed;
my $cb_object;
@@ -1045,8 +1045,9 @@ BEGIN {
sub number {
my $n = '';
my $v;
+ my $is_dec;
- # According to RFC4627, hex or oct digts are invalid.
+ # According to RFC4627, hex or oct digits are invalid.
if($ch eq '0'){
my $peek = substr($text,$at,1);
my $hex = $peek =~ /[xX]/; # 0 or 1
@@ -1087,6 +1088,7 @@ BEGIN {
if(defined $ch and $ch eq '.'){
$n .= '.';
+ $is_dec = 1;
next_chr;
if (!defined $ch or $ch !~ /\d/) {
@@ -1142,7 +1144,7 @@ BEGIN {
return Math::BigFloat->new($v);
}
- return 0+$v;
+ return $is_dec ? $v/1.0 : 0+$v;
}
@@ -1316,7 +1318,7 @@ BEGIN {
$_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
if ( $_[0]->{_incr_parser}->{incr_parsing} ) {
- Carp::croak("incr_text can not be called when the incremental parser already started parsing");
+ Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
}
$_[0]->{_incr_parser}->{incr_text};
}
@@ -1385,7 +1387,7 @@ BEGIN {
}
-# shamely copied and modified from JSON::XS code.
+# shamelessly copied and modified from JSON::XS code.
$JSON::PP::true = do { bless \(my $dummy = 1), "JSON::PP::Boolean" };
$JSON::PP::false = do { bless \(my $dummy = 0), "JSON::PP::Boolean" };
@@ -1566,7 +1568,7 @@ sub _incr_parse {
sub incr_text {
if ( $_[0]->{incr_parsing} ) {
- Carp::croak("incr_text can not be called when the incremental parser already started parsing");
+ Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
}
$_[0]->{incr_text};
}
@@ -1626,13 +1628,13 @@ JSON::PP - JSON::XS compatible pure-Perl module.
=head1 VERSION
- 2.27300
+ 2.27400
L<JSON::XS> 2.27 (~2.30) compatible.
=head1 NOTE
-JSON::PP had been inculded in JSON distribution (CPAN module).
+JSON::PP had been included in JSON distribution (CPAN module).
It was a perl core module in Perl 5.14.
=head1 DESCRIPTION
@@ -1671,7 +1673,7 @@ MAPPING section below to learn about those.
There is no guessing, no generating of illegal JSON texts by default,
and only JSON is accepted as input by default (the latter is a security feature).
-But when some options are set, loose chcking features are available.
+But when some options are set, loose checking features are available.
=back
@@ -1729,11 +1731,11 @@ Perl.
=head1 HOW DO I DECODE A DATA FROM OUTER AND ENCODE TO OUTER
-This section supposes that your perl vresion is 5.8 or later.
+This section supposes that your perl version is 5.8 or later.
If you know a JSON text from an outer world - a network, a file content, and so on,
is encoded in UTF-8, you should use C<decode_json> or C<JSON> module object
-with C<utf8> enable. And the decoded result will contain UNICODE characters.
+with C<utf8> enabled. And the decoded result will contain UNICODE characters.
# from network
my $json = JSON::PP->new->utf8;
@@ -1760,7 +1762,7 @@ If an outer data is not encoded in UTF-8, firstly you should C<decode> it.
# $unicode_json_text = <$fh>;
In this case, C<$unicode_json_text> is of course UNICODE string.
-So you B<cannot> use C<decode_json> nor C<JSON> module object with C<utf8> enable.
+So you B<cannot> use C<decode_json> nor C<JSON> module object with C<utf8> enabled.
Instead of them, you use C<JSON> module object with C<utf8> disable.
$perl_scalar = $json->utf8(0)->decode( $unicode_json_text );
@@ -1774,7 +1776,7 @@ And now, you want to convert your C<$perl_scalar> into JSON data and
send it to an outer world - a network or a file content, and so on.
Your data usually contains UNICODE strings and you want the converted data to be encoded
-in UTF-8, you should use C<encode_json> or C<JSON> module object with C<utf8> enable.
+in UTF-8, you should use C<encode_json> or C<JSON> module object with C<utf8> enabled.
print encode_json( $perl_scalar ); # to a network? file? or display?
# or
@@ -1783,7 +1785,7 @@ in UTF-8, you should use C<encode_json> or C<JSON> module object with C<utf8> en
If C<$perl_scalar> does not contain UNICODE but C<$encoding>-encoded strings
for some reason, then its characters are regarded as B<latin1> for perl
(because it does not concern with your $encoding).
-You B<cannot> use C<encode_json> nor C<JSON> module object with C<utf8> enable.
+You B<cannot> use C<encode_json> nor C<JSON> module object with C<utf8> enabled.
Instead of them, you use C<JSON> module object with C<utf8> disable.
Note that the resulted text is a UNICODE string but no problem to print it.
@@ -1811,7 +1813,7 @@ Basically, check to L<JSON> or L<JSON::XS>.
$json = JSON::PP->new
-Rturns a new JSON::PP object that can be used to de/encode JSON
+Returns a new JSON::PP object that can be used to de/encode JSON
strings.
All boolean flags described below are by default I<disabled>.
@@ -2019,7 +2021,7 @@ as key-value pairs have no inherent ordering in Perl.
This setting has no effect when decoding JSON texts.
-If you want your own sorting routine, you can give a code referece
+If you want your own sorting routine, you can give a code reference
or a subroutine name to C<sort_by>. See to C<JSON::PP OWN METHODS>.
=head2 allow_nonref
@@ -2217,10 +2219,10 @@ given character in a string.
If no argument is given, the highest possible setting will be used, which
is rarely useful.
-See L<JSON::XS/SSECURITY CONSIDERATIONS> for more info on why this is useful.
+See L<JSON::XS/SECURITY CONSIDERATIONS> for more info on why this is useful.
When a large value (100 or more) was set and it de/encodes a deep nested object/text,
-it may raise a warning 'Deep recursion on subroutin' at the perl runtime phase.
+it may raise a warning 'Deep recursion on subroutine' at the perl runtime phase.
=head2 max_size
@@ -2237,7 +2239,7 @@ effect on C<encode> (yet).
If no argument is given, the limit check will be deactivated (same as when
C<0> is specified).
-See L<JSON::XS/SSECURITY CONSIDERATIONS> for more info on why this is useful.
+See L<JSON::XS/SECURITY CONSIDERATIONS> for more info on why this is useful.
=head2 encode
@@ -2288,7 +2290,7 @@ to see if a full JSON object is available, but is much more efficient
This module will only attempt to parse the JSON text once it is sure it
has enough text to get a decisive result, using a very simple but
truly incremental parser. This means that it sometimes won't stop as
-early as the full parser, for example, it doesn't detect parenthese
+early as the full parser, for example, it doesn't detect parentheses
mismatches. The only thing it guarantees is that it starts decoding as
soon as a syntactically valid JSON text has been seen. This means you need
to set resource limits (e.g. C<max_size>) to ensure the parser will stop
@@ -2319,7 +2321,7 @@ If the method is called in scalar context, then it will try to extract
exactly I<one> JSON object. If that is successful, it will return this
object, otherwise it will return C<undef>. If there is a parse error,
this method will croak just as C<decode> would do (one can then use
-C<incr_skip> to skip the errornous part). This is the most common way of
+C<incr_skip> to skip the erroneous part). This is the most common way of
using the method.
And finally, in list context, it will try to extract as many objects
@@ -2375,7 +2377,7 @@ unchanged, to skip the text parsed so far and to reset the parse state.
This completely resets the incremental parser, that is, after this call,
it will be as if the parser had never parsed anything.
-This is useful if you want ot repeatedly parse JSON objects and want to
+This is useful if you want to repeatedly parse JSON objects and want to
ignore any trailing data, which means you have to reset the parser after
each successful decode.
@@ -2420,29 +2422,29 @@ If C<$enable> is true (or missing), then C<decode> will convert
the big integer Perl cannot handle as integer into a L<Math::BigInt>
object and convert a floating number (any) into a L<Math::BigFloat>.
-On the contary, C<encode> converts C<Math::BigInt> objects and C<Math::BigFloat>
-objects into JSON numbers with C<allow_blessed> enable.
+On the contrary, C<encode> converts C<Math::BigInt> objects and C<Math::BigFloat>
+objects into JSON numbers with C<allow_blessed> enabled.
$json->allow_nonref->allow_blessed->allow_bignum;
$bigfloat = $json->decode('2.000000000000000000000000001');
print $json->encode($bigfloat);
# => 2.000000000000000000000000001
-See to L<JSON::XS/MAPPING> aboout the normal conversion of JSON number.
+See to L<JSON::XS/MAPPING> about the normal conversion of JSON number.
=head2 loose
$json = $json->loose([$enable])
The unescaped [\x00-\x1f\x22\x2f\x5c] strings are invalid in JSON strings
-and the module doesn't allow to C<decode> to these (except for \x2f).
+and the module doesn't allow you to C<decode> to these (except for \x2f).
If C<$enable> is true (or missing), then C<decode> will accept these
unescaped strings.
$json->loose->decode(qq|["abc
def"]|);
-See L<JSON::XS/SSECURITY CONSIDERATIONS>.
+See L<JSON::XS/SECURITY CONSIDERATIONS>.
=head2 escape_slash
@@ -2554,7 +2556,7 @@ it as an integer value. If that fails, it will try to represent it as
a numeric (floating point) value if that is possible without loss of
precision. Otherwise it will preserve the number as a string value (in
which case you lose roundtripping ability, as the JSON number will be
-re-encoded toa JSON string).
+re-encoded to a JSON string).
Numbers containing a fractional or exponential part will always be
represented as numeric (floating point) values, possibly at a loss of
@@ -2564,9 +2566,9 @@ the JSON number will still be re-encoded as a JSON number).
Note that precision is not accuracy - binary floating point values cannot
represent most decimal fractions exactly, and when converting from and to
floating point, C<JSON> only guarantees precision up to but not including
-the leats significant bit.
+the least significant bit.
-When C<allow_bignum> is enable, the big integers
+When C<allow_bignum> is enabled, the big integers
and the numeric can be optionally converted into L<Math::BigInt> and
L<Math::BigFloat> objects.
@@ -2574,7 +2576,7 @@ L<Math::BigFloat> objects.
These JSON atoms become C<JSON::PP::true> and C<JSON::PP::false>,
respectively. They are overloaded to act almost exactly like the numbers
-C<1> and C<0>. You can check wether a scalar is a JSON boolean by using
+C<1> and C<0>. You can check whether a scalar is a JSON boolean by using
the C<JSON::is_bool> function.
print JSON::PP::true . "\n";
@@ -2592,7 +2594,7 @@ C<JSON> will install these missing overloading features to the backend modules.
A JSON null atom becomes C<undef> in Perl.
-C<JSON::PP::null> returns C<unddef>.
+C<JSON::PP::null> returns C<undef>.
=back
@@ -2678,9 +2680,9 @@ You can force the type to be a number by numifying it:
my $x = "3"; # some variable containing a string
$x += 0; # numify it, ensuring it will be dumped as a number
- $x *= 1; # same thing, the choise is yours.
+ $x *= 1; # same thing, the choice is yours.
-You can not currently force the type in other, less obscure, ways.
+You cannot currently force the type in other, less obscure, ways.
Note that numerical precision has the same meaning as under Perl (so
binary to decimal conversion follows the same rules as in Perl, which
@@ -2691,7 +2693,7 @@ error to pass those in.
=item Big Number
-When C<allow_bignum> is enable,
+When C<allow_bignum> is enabled,
C<encode> converts C<Math::BigInt> objects and C<Math::BigFloat>
objects into JSON numbers.
@@ -2710,7 +2712,7 @@ Perl can handle Unicode and the JSON::PP de/encode methods also work properly.
$json->allow_nonref->encode(chr hex 3042);
$json->allow_nonref->encode(chr hex 12345);
-Reuturns C<"\u3042"> and C<"\ud808\udf45"> respectively.
+Returns C<"\u3042"> and C<"\ud808\udf45"> respectively.
$json->allow_nonref->decode('"\u3042"');
$json->allow_nonref->decode('"\ud808\udf45"');
@@ -2727,7 +2729,7 @@ Perl can handle Unicode and the JSON::PP de/encode methods also work.
=head2 Perl 5.005
-Perl 5.005 is a byte sementics world -- all strings are sequences of bytes.
+Perl 5.005 is a byte semantics world -- all strings are sequences of bytes.
That means the unicode handling is not available.
In encoding,
@@ -2746,7 +2748,7 @@ In decoding,
$json->decode('"\u00e3\u0081\u0082"');
The returned is a byte sequence C<0xE3 0x81 0x82> for UTF-8 encoded
-japanese character (C<HIRAGANA LETTER A>).
+Japanese character (C<HIRAGANA LETTER A>).
And if it is represented in Unicode code point, C<U+3042>.
Next,
@@ -2787,7 +2789,7 @@ Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
=head1 COPYRIGHT AND LICENSE
-Copyright 2007-2014 by Makamaka Hannyaharamitu
+Copyright 2007-2016 by Makamaka Hannyaharamitu
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/List/Util.pm b/Master/tlpkg/tlperl/lib/List/Util.pm
index 75866aa6c6b..23473fc627b 100644
--- a/Master/tlpkg/tlperl/lib/List/Util.pm
+++ b/Master/tlpkg/tlperl/lib/List/Util.pm
@@ -7,14 +7,15 @@
package List::Util;
use strict;
+use warnings;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(
- all any first min max minstr maxstr none notall product reduce sum sum0 shuffle
+ all any first min max minstr maxstr none notall product reduce sum sum0 shuffle uniq uniqnum uniqstr
pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst
);
-our $VERSION = "1.42_02";
+our $VERSION = "1.46_02";
our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -38,17 +39,21 @@ sub import
sub List::Util::_Pair::key { shift->[0] }
sub List::Util::_Pair::value { shift->[1] }
-1;
-
-__END__
-
=head1 NAME
List::Util - A selection of general-utility list subroutines
=head1 SYNOPSIS
- use List::Util qw(first max maxstr min minstr reduce shuffle sum);
+ use List::Util qw(
+ reduce any all none notall first
+
+ max maxstr min minstr product sum sum0
+
+ pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap
+
+ shuffle uniq uniqnum uniqstr
+ );
=head1 DESCRIPTION
@@ -67,7 +72,9 @@ The following set of functions all reduce a list down to a single value.
=cut
-=head2 $result = reduce { BLOCK } @list
+=head2 reduce
+
+ $result = reduce { BLOCK } @list
Reduces C<@list> by calling C<BLOCK> in a scalar context multiple times,
setting C<$a> and C<$b> each time. The first call will be with C<$a> and C<$b>
@@ -107,6 +114,20 @@ C<undef> being returned
$foo = reduce { $a + $b } 0, @values; # sum with 0 identity value
+The above example code blocks also suggest how to use C<reduce> to build a
+more efficient combined version of one of these basic functions and a C<map>
+block. For example, to find the total length of the all the strings in a list,
+we could use
+
+ $total = sum map { length } @strings;
+
+However, this produces a list of temporary integer values as long as the
+original list of strings, only to reduce it down to a single value again. We
+can compute the same result more efficiently by using C<reduce> with a code
+block that accumulates lengths by writing this instead as:
+
+ $total = reduce { $a + length $b } 0, @strings
+
The remaining list-reduction functions are all specialisations of this generic
idea.
@@ -289,22 +310,23 @@ Instead, write this using a lexical variable:
I<Since version 1.29.>
A convenient shortcut to operating on even-sized lists of pairs, this function
-returns a list of ARRAY references, each containing two items from the given
-list. It is a more efficient version of
+returns a list of C<ARRAY> references, each containing two items from the
+given list. It is a more efficient version of
@pairs = pairmap { [ $a, $b ] } @kvlist
It is most convenient to use in a C<foreach> loop, for example:
- foreach my $pair ( pairs @KVLIST ) {
+ foreach my $pair ( pairs @kvlist ) {
my ( $key, $value ) = @$pair;
...
}
-Since version C<1.39> these ARRAY references are blessed objects, recognising
-the two methods C<key> and C<value>. The following code is equivalent:
+Since version C<1.39> these C<ARRAY> references are blessed objects,
+recognising the two methods C<key> and C<value>. The following code is
+equivalent:
- foreach my $pair ( pairs @KVLIST ) {
+ foreach my $pair ( pairs @kvlist ) {
my $key = $pair->key;
my $value = $pair->value;
...
@@ -316,7 +338,7 @@ the two methods C<key> and C<value>. The following code is equivalent:
I<Since version 1.42.>
-The inverse function to C<pairs>; this function takes a list of ARRAY
+The inverse function to C<pairs>; this function takes a list of C<ARRAY>
references containing two elements each, and returns a flattened list of the
two values from each of the pairs, in order. This is notionally equivalent to
@@ -454,6 +476,72 @@ Returns the values of the input in a random order
@cards = shuffle 0..51 # 0..51 in a random order
+=head2 uniq
+
+ my @subset = uniq @values
+
+I<Since version 1.45.>
+
+Filters a list of values to remove subsequent duplicates, as judged by a
+DWIM-ish string equality or C<undef> test. Preserves the order of unique
+elements, and retains the first value of any duplicate set.
+
+ my $count = uniq @values
+
+In scalar context, returns the number of elements that would have been
+returned as a list.
+
+The C<undef> value is treated by this function as distinct from the empty
+string, and no warning will be produced. It is left as-is in the returned
+list. Subsequent C<undef> values are still considered identical to the first,
+and will be removed.
+
+=head2 uniqnum
+
+ my @subset = uniqnum @values
+
+I<Since version 1.44.>
+
+Filters a list of values to remove subsequent duplicates, as judged by a
+numerical equality test. Preserves the order of unique elements, and retains
+the first value of any duplicate set.
+
+ my $count = uniqnum @values
+
+In scalar context, returns the number of elements that would have been
+returned as a list.
+
+Note that C<undef> is treated much as other numerical operations treat it; it
+compares equal to zero but additionally produces a warning if such warnings
+are enabled (C<use warnings 'uninitialized';>). In addition, an C<undef> in
+the returned list is coerced into a numerical zero, so that the entire list of
+values returned by C<uniqnum> are well-behaved as numbers.
+
+Note also that multiple IEEE C<NaN> values are treated as duplicates of
+each other, regardless of any differences in their payloads, and despite
+the fact that C<< 0+'NaN' == 0+'NaN' >> yields false.
+
+=head2 uniqstr
+
+ my @subset = uniqstr @values
+
+I<Since version 1.45.>
+
+Filters a list of values to remove subsequent duplicates, as judged by a
+string equality test. Preserves the order of unique elements, and retains the
+first value of any duplicate set.
+
+ my $count = uniqstr @values
+
+In scalar context, returns the number of elements that would have been
+returned as a list.
+
+Note that C<undef> is treated much as other string operations treat it; it
+compares equal to the empty string but additionally produces a warning if such
+warnings are enabled (C<use warnings 'uninitialized';>). In addition, an
+C<undef> in the returned list is coerced into an empty string, so that the
+entire list of values returned by C<uniqstr> are well-behaved as strings.
+
=cut
=head1 KNOWN BUGS
@@ -501,6 +589,21 @@ afterwards. Lexical variables that are only used during the lifetime of the
block's execution will take their individual values for each invocation, as
normal.
+=head2 uniqnum() on oversized bignums
+
+Due to the way that C<uniqnum()> compares numbers, it cannot distinguish
+differences between bignums (especially bigints) that are too large to fit in
+the native platform types. For example,
+
+ my $x = Math::BigInt->new( "1" x 100 );
+ my $y = $x + 1;
+
+ say for uniqnum( $x, $y );
+
+Will print just the value of C<$x>, believing that C<$y> is a numerically-
+equivalent value. This bug does not affect C<uniqstr()>, which will correctly
+observe that the two values stringify to different strings.
+
=head1 SUGGESTED ADDITIONS
The following are additions that have been requested, but I have been reluctant
@@ -528,3 +631,5 @@ Recent additions and current maintenance by
Paul Evans, <leonerd@leonerd.org.uk>.
=cut
+
+1;
diff --git a/Master/tlpkg/tlperl/lib/List/Util/XS.pm b/Master/tlpkg/tlperl/lib/List/Util/XS.pm
index fca0738e5a7..783499c35f6 100644
--- a/Master/tlpkg/tlperl/lib/List/Util/XS.pm
+++ b/Master/tlpkg/tlperl/lib/List/Util/XS.pm
@@ -1,8 +1,9 @@
package List::Util::XS;
use strict;
+use warnings;
use List::Util;
-our $VERSION = "1.42_02"; # FIXUP
+our $VERSION = "1.46_02"; # FIXUP
$VERSION = eval $VERSION; # FIXUP
1;
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes.pm
index 118c277c5b4..bbe6ab50dd5 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes.pm
@@ -1,7 +1,7 @@
package Locale::Codes;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -31,7 +31,7 @@ our($VERSION,%Data,%Retired);
# $Retired{ TYPE }{ CODESET }{ code }{ CODE } = NAME
# { name }{ NAME } = [CODE,NAME] (the key is lowercase)
-$VERSION='3.37';
+$VERSION='3.42';
#=======================================================================
#
@@ -40,7 +40,7 @@ $VERSION='3.37';
#=======================================================================
sub _code {
- return 1 if (@_ > 3);
+ return (1) if (@_ > 3);
my($type,$code,$codeset) = @_;
$code = '' if (! defined $code);
@@ -51,7 +51,7 @@ sub _code {
if (! defined($codeset) || $codeset eq '');
$codeset = lc($codeset);
return (1) if (! exists $ALL_CODESETS{$type}{'codesets'}{$codeset});
- return (0,$code,$codeset) if (! $code);
+ return (0,$code,$codeset) if ($code eq '');
# Determine the properties of the codeset
@@ -104,8 +104,7 @@ sub _code2name {
$code = $Data{$type}{'codealias'}{$codeset}{$code}
if (exists $Data{$type}{'codealias'}{$codeset}{$code});
- if (exists $Data{$type}{'code2id'}{$codeset} &&
- exists $Data{$type}{'code2id'}{$codeset}{$code}) {
+ if (exists $Data{$type}{'code2id'}{$codeset}{$code}) {
my ($id,$i) = @{ $Data{$type}{'code2id'}{$codeset}{$code} };
my $name = $Data{$type}{'id2names'}{$id}[$i];
return $name;
@@ -130,7 +129,7 @@ sub _name2code {
$name = lc($name);
my $retired = 0;
- if (@args > 0 && $args[$#args] && $args[$#args] eq 'retired') {
+ if (@args > 0 && $args[$#args] eq 'retired') {
pop(@args);
$retired = 1;
}
@@ -159,7 +158,22 @@ sub _name2code {
sub _code2code {
my($type,@args) = @_;
- (@args == 3) or croak "${type}_code2code() takes 3 arguments!";
+
+ # For tests, we'll ALWAYS have $nowarn
+ my $nowarn = 0;
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
+
+ if (@args != 3) {
+ if (! $nowarn) { # uncoverable branch true
+ croak "${type}_code2code() takes 3 arguments!"; # uncoverable statement
+ }
+ return undef;
+ }
my($code,$inset,$outset) = @args;
my($err,$tmp);
@@ -182,7 +196,7 @@ sub _code2code {
sub _all_codes {
my($type,@args) = @_;
my $retired = 0;
- if (@args > 0 && $args[$#args] && $args[$#args] eq 'retired') {
+ if (@args > 0 && $args[$#args] eq 'retired') {
pop(@args);
$retired = 1;
}
@@ -190,9 +204,6 @@ sub _all_codes {
my ($err,$tmp,$codeset) = _code($type,'',@args);
return () if ($err);
- if (! exists $Data{$type}{'code2id'}{$codeset}) {
- return ();
- }
my @codes = keys %{ $Data{$type}{'code2id'}{$codeset} };
push(@codes,keys %{ $Retired{$type}{$codeset}{'code'} }) if ($retired);
return (sort @codes);
@@ -207,7 +218,7 @@ sub _all_codes {
sub _all_names {
my($type,@args) = @_;
my $retired = 0;
- if (@args > 0 && $args[$#args] && $args[$#args] eq 'retired') {
+ if (@args > 0 && $args[$#args] eq 'retired') {
pop(@args);
$retired = 1;
}
@@ -245,28 +256,35 @@ sub _all_names {
sub _rename {
my($type,$code,$new_name,@args) = @_;
+ # For tests, we'll ALWAYS have $nowarn
my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
my $codeset = shift(@args);
my $err;
($err,$code,$codeset) = _code($type,$code,$codeset);
if (! $codeset) {
- carp "rename_$type(): unknown codeset\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ carp "rename_$type(): unknown codeset\n"; # uncoverable statement
+ }
return 0;
}
- $code = $Data{$type}{'codealias'}{$codeset}{$code}
- if (exists $Data{$type}{'codealias'}{$codeset}{$code});
-
# Check that $code exists in the codeset.
my $id;
if (exists $Data{$type}{'code2id'}{$codeset}{$code}) {
$id = $Data{$type}{'code2id'}{$codeset}{$code}[0];
} else {
- carp "rename_$type(): unknown code: $code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ carp "rename_$type(): unknown code: $code\n"; # uncoverable statement
+ }
return 0;
}
@@ -287,8 +305,11 @@ sub _rename {
my ($new_id,$i) = @{ $Data{$type}{'alias2id'}{lc($new_name)} };
if ($new_id != $id) {
# Case 1
- carp "rename_$type(): rename to an existing $type not allowed\n"
- unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "rename_$type(): rename to an existing $type not allowed\n";
+ }
+
return 0;
}
@@ -321,15 +342,23 @@ sub _rename {
sub _add_code {
my($type,$code,$name,@args) = @_;
+ # For tests, we'll ALWAYS have $nowarn
my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
my $codeset = shift(@args);
my $err;
($err,$code,$codeset) = _code($type,$code,$codeset);
if (! $codeset) {
- carp "add_$type(): unknown codeset\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ carp "add_$type(): unknown codeset\n"; # uncoverable statement
+ }
return 0;
}
@@ -337,7 +366,9 @@ sub _add_code {
if (exists $Data{$type}{'code2id'}{$codeset}{$code} ||
exists $Data{$type}{'codealias'}{$codeset}{$code}) {
- carp "add_$type(): code already in use: $code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ carp "add_$type(): code already in use: $code\n";# uncoverable statement
+ }
return 0;
}
@@ -349,7 +380,10 @@ sub _add_code {
if (exists $Data{$type}{'alias2id'}{lc($name)}) {
($id,$i) = @{ $Data{$type}{'alias2id'}{lc($name)} };
if (exists $Data{$type}{'id2code'}{$codeset}{$id}) {
- carp "add_$type(): name already in use: $name\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "add_$type(): name already in use: $name\n";
+ }
return 0;
}
@@ -379,25 +413,33 @@ sub _add_code {
sub _delete_code {
my($type,$code,@args) = @_;
+ # For tests, we'll ALWAYS have $nowarn
my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
my $codeset = shift(@args);
my $err;
($err,$code,$codeset) = _code($type,$code,$codeset);
if (! $codeset) {
- carp "delete_$type(): unknown codeset\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ carp "delete_$type(): unknown codeset\n"; # uncoverable statement
+ }
return 0;
}
- $code = $Data{$type}{'codealias'}{$codeset}{$code}
- if (exists $Data{$type}{'codealias'}{$codeset}{$code});
-
# Check that $code is valid.
if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
- carp "delete_$type(): code does not exist: $code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "delete_$type(): code does not exist: $code\n";
+ }
return 0;
}
@@ -439,9 +481,16 @@ sub _delete_code {
#=======================================================================
sub _add_alias {
- my($type,$name,$new_name,$nowarn) = @_;
+ my($type,$name,$new_name,@args) = @_;
- $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0);
+ # For tests, we'll ALWAYS have $nowarn
+ my $nowarn = 0;
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
# Check that $name is used and $new_name is new.
@@ -449,12 +498,18 @@ sub _add_alias {
if (exists $Data{$type}{'alias2id'}{lc($name)}) {
$id = $Data{$type}{'alias2id'}{lc($name)}[0];
} else {
- carp "add_${type}_alias(): name does not exist: $name\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "add_${type}_alias(): name does not exist: $name\n";
+ }
return 0;
}
if (exists $Data{$type}{'alias2id'}{lc($new_name)}) {
- carp "add_${type}_alias(): alias already in use: $new_name\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "add_${type}_alias(): alias already in use: $new_name\n";
+ }
return 0;
}
@@ -480,9 +535,16 @@ sub _add_alias {
#=======================================================================
sub _delete_alias {
- my($type,$name,$nowarn) = @_;
+ my($type,$name,@args) = @_;
- $nowarn = (defined($nowarn) && $nowarn eq "nowarn" ? 1 : 0);
+ # For tests, we'll ALWAYS have $nowarn
+ my $nowarn = 0;
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
# Check that $name is used.
@@ -490,14 +552,19 @@ sub _delete_alias {
if (exists $Data{$type}{'alias2id'}{lc($name)}) {
($id,$i) = @{ $Data{$type}{'alias2id'}{lc($name)} };
} else {
- carp "delete_${type}_alias(): name does not exist: $name\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "delete_${type}_alias(): name does not exist: $name\n";
+ }
return 0;
}
my $n = $#{ $Data{$type}{'id2names'}{$id} } + 1;
if ($n == 1) {
- carp "delete_${type}_alias(): only one name defined (use _delete_${type} instead)\n"
- unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "delete_${type}_alias(): only one name defined (use _delete_${type} instead)\n";
+ }
return 0;
}
@@ -511,15 +578,15 @@ sub _delete_alias {
# Set to 0 if I = $i
# Decrement if I > $i
- foreach my $codeset (keys %{ $Data{'code2id'} }) {
- foreach my $code (keys %{ $Data{'code2id'}{$codeset} }) {
- my($jd,$j) = @{ $Data{'code2id'}{$codeset}{$code} };
+ foreach my $codeset (keys %{ $Data{$type}{'code2id'} }) {
+ foreach my $code (keys %{ $Data{$type}{'code2id'}{$codeset} }) {
+ my($jd,$j) = @{ $Data{$type}{'code2id'}{$codeset}{$code} };
next if ($jd ne $id ||
$j < $i);
if ($i == $j) {
- $Data{'code2id'}{$codeset}{$code}[1] = 0;
+ $Data{$type}{'code2id'}{$codeset}{$code}[1] = 0;
} else {
- $Data{'code2id'}{$codeset}{$code}[1]--;
+ $Data{$type}{'code2id'}{$codeset}{$code}[1]--;
}
}
}
@@ -539,27 +606,35 @@ sub _delete_alias {
sub _rename_code {
my($type,$code,$new_code,@args) = @_;
+ # For tests, we'll ALWAYS have $nowarn
my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
my $codeset = shift(@args);
my $err;
($err,$code,$codeset) = _code($type,$code,$codeset);
- ($err,$new_code,$codeset) = _code($type,$new_code,$codeset)
- if (! $err);
if (! $codeset) {
- carp "rename_$type(): unknown codeset\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ carp "rename_${type}_code(): unknown codeset\n"; # uncoverable statement
+ }
return 0;
}
- $code = $Data{$type}{'codealias'}{$codeset}{$code}
- if (exists $Data{$type}{'codealias'}{$codeset}{$code});
+ ($err,$new_code,$codeset) = _code($type,$new_code,$codeset);
# Check that $code exists in the codeset.
if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
- carp "rename_$type(): unknown code: $code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "rename_${type}_code(): unknown code: $code\n";
+ }
return 0;
}
@@ -586,13 +661,19 @@ sub _rename_code {
} else {
# Case 2
- carp "rename_$type(): new code already in use: $new_code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "rename_${type}_code(): new code already in use: $new_code\n";
+ }
return 0;
}
} elsif (exists $Data{$type}{'code2id'}{$codeset}{$new_code}) {
# Case 3
- carp "rename_$type(): new code already in use: $new_code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "rename_${type}_code(): new code already in use: $new_code\n";
+ }
return 0;
}
@@ -620,34 +701,46 @@ sub _rename_code {
sub _add_code_alias {
my($type,$code,$new_code,@args) = @_;
+ # For tests, we'll ALWAYS have $nowarn
my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
my $codeset = shift(@args);
my $err;
($err,$code,$codeset) = _code($type,$code,$codeset);
- ($err,$new_code,$codeset) = _code($type,$new_code,$codeset)
- if (! $err);
if (! $codeset) {
- carp "add_${type}_code_alias(): unknown codeset\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "add_${type}_code_alias(): unknown codeset\n";
+ }
return 0;
}
- $code = $Data{$type}{'codealias'}{$codeset}{$code}
- if (exists $Data{$type}{'codealias'}{$codeset}{$code});
+ ($err,$new_code,$codeset) = _code($type,$new_code,$codeset);
# Check that $code exists in the codeset and that $new_code
# does not exist.
if (! exists $Data{$type}{'code2id'}{$codeset}{$code}) {
- carp "add_${type}_code_alias(): unknown code: $code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "add_${type}_code_alias(): unknown code: $code\n";
+ }
return 0;
}
if (exists $Data{$type}{'code2id'}{$codeset}{$new_code} ||
exists $Data{$type}{'codealias'}{$codeset}{$new_code}) {
- carp "add_${type}_code_alias(): code already in use: $new_code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "add_${type}_code_alias(): code already in use: $new_code\n";
+ }
return 0;
}
@@ -660,7 +753,7 @@ sub _add_code_alias {
#=======================================================================
#
-# _delete_code_alias ( TYPE,CODE,CODESET )
+# _delete_code_alias ( TYPE,ALIAS,CODESET )
#
# Deletes an alias for the code.
#
@@ -669,22 +762,34 @@ sub _add_code_alias {
sub _delete_code_alias {
my($type,$code,@args) = @_;
+ # For tests, we'll ALWAYS have $nowarn
my $nowarn = 0;
- $nowarn = 1, pop(@args) if (@args && $args[$#args] eq "nowarn");
+ if (@args) { # uncoverable branch false
+ if ($args[$#args] eq "nowarn") { # uncoverable branch false
+ $nowarn = 1;
+ pop(@args);
+ }
+ }
my $codeset = shift(@args);
my $err;
($err,$code,$codeset) = Locale::Codes::_code($type,$code,$codeset);
if (! $codeset) {
- carp "delete_${type}_code_alias(): unknown codeset\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "delete_${type}_code_alias(): unknown codeset\n";
+ }
return 0;
}
# Check that $code exists in the codeset as an alias.
if (! exists $Data{$type}{'codealias'}{$codeset}{$code}) {
- carp "delete_${type}_code_alias(): no alias defined: $code\n" unless ($nowarn);
+ if (! $nowarn) { # uncoverable branch true
+ # uncoverable statement
+ carp "delete_${type}_code_alias(): no alias defined: $code\n";
+ }
return 0;
}
@@ -704,5 +809,5 @@ sub _delete_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes.pod b/Master/tlpkg/tlperl/lib/Locale/Codes.pod
index 106f0bab1cc..d52c82f4354 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes.pod
@@ -264,6 +264,59 @@ A history of changes made to this distribution.
=back
+=head1 BUGS AND QUESTIONS
+
+If you find a bug in Locale::Codes, there are three ways to send it to me.
+Any of them are fine, so use the method that is easiest for you.
+
+=over 4
+
+=item Direct email
+
+You are welcome to send it directly to me by email. The email address
+to use is: sbeck@cpan.org.
+
+=item CPAN Bug Tracking
+
+You can submit it using the CPAN tracking too. This can be done at the
+following URL:
+
+L<http://rt.cpan.org/Public/Dist/Display.html?Name=Locale-Codes>
+
+=item GitHub
+
+You can submit it as an issue on GitHub. This can be done at the following
+URL:
+
+L<https://github.com/SBECK-github/Locale-Codes>
+
+=back
+
+Please do not use other means to report bugs (such as Usenet newsgroups,
+or forums for a specific OS or Linux distribution) as it is impossible
+for me to keep up with all of them.
+
+When filing a bug report, please include the following information:
+
+=over 4
+
+=item B<Locale::Codes version>
+
+Please include the version of Locale::Codes you are using. You can get
+this by using the script:
+
+ use Locale::Codes::Country;
+ print $Locale::Codes::VERSION,"\n";
+
+=back
+
+If you want to report missing or incorrect codes, you must be running the
+most recent version of Locale::Codes.
+
+If you find any problems with the documentation (errors, typos, or items
+that are not clear), please send them to me. I welcome any suggestions
+that will allow me to improve the documentation.
+
=head1 AUTHOR
Locale::Country and Locale::Language were originally written by Neil
@@ -291,7 +344,7 @@ perl problem tracker at:
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001 Michael Hennecke (Locale::Currency)
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/API.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/API.pod
index f196461ea01..8ad363e3bd7 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/API.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/API.pod
@@ -327,7 +327,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod
index 199aa96d5b8..e40f4acd97a 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Changes.pod
@@ -22,13 +22,65 @@ September, December). I will also check on request, so if a code
changes that you use, feel free to contact me. Any time there are new
codes, I will add them to the module and release a new version.
-=head1 VERSION 3.41 (planned 2016-12-01; sbeck)
+=head1 VERSION 3.46 (planned 2017-12-01; sbeck)
-=head1 VERSION 3.40 (planned 2016-09-01; sbeck)
+=head1 VERSION 3.45 (planned 2017-09-01; sbeck)
-=head1 VERSION 3.39 (planned 2016-06-01; sbeck)
+=head1 VERSION 3.44 (planned 2017-06-01; sbeck)
-=head1 VERSION 3.38 (planned 2016-03-01; sbeck)
+=head1 VERSION 3.43 (planned 2017-03-01; sbeck)
+
+=head1 VERSION 3.42 (2016-11-30; sbeck)
+
+=over 4
+
+=item B<Added Czech republic aliases back in>
+
+Common Czech republic aliases disappeared from the standards, so I added
+them back in. Rob Emery
+
+=back
+
+=head1 VERSION 3.41 (2016-11-18; sbeck)
+
+NEW CODE(s) (Jiri Bohac noted that they were needed so this was release a
+couple weeks earlier than planned)
+
+=head1 VERSION 3.40 (2016-09-01; sbeck)
+
+NEW CODE(s)
+
+=head1 VERSION 3.39 (2016-05-31; sbeck)
+
+No new codes (for the existing codesets).
+
+=over 4
+
+=item B<Added UN codes back in>
+
+The UN codes have been added back in as their own list of codes.
+Jarkko Hietaniemi
+
+=item B<Added GENC codes>
+
+The GENC codes have been added. These are the new US Government codes
+that replace the FIPS-10 codes. They are based on, but not identical to
+the ISO 3166 codes.
+
+=back
+
+=head1 VERSION 3.38 (2016-03-02; sbeck)
+
+NEW CODE(s)
+
+=over 4
+
+=item B<Tests reworked>
+
+Improved test suite (and made some changes to Codes.pm) based on Devel::Cover.
+Test suite now has 100% coverage.
+
+=back
=head1 VERSION 3.37 (2015-12-01; sbeck)
@@ -772,7 +824,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm
index 44e8f6da7f8..d17a17cf39a 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Constants.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Constants;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -17,12 +17,17 @@ require Exporter;
our($VERSION,@ISA,@EXPORT);
our(%ALL_CODESETS);
-$VERSION='3.37';
+$VERSION='3.42';
@ISA = qw(Exporter);
@EXPORT = qw(LOCALE_CODE_ALPHA_2
LOCALE_CODE_ALPHA_3
LOCALE_CODE_NUMERIC
LOCALE_CODE_DOM
+ LOCALE_CODE_UN_NUMERIC
+ LOCALE_CODE_UN_ALPHA_3
+ LOCALE_CODE_GENC_ALPHA_2
+ LOCALE_CODE_GENC_ALPHA_3
+ LOCALE_CODE_GENC_NUMERIC
LOCALE_LANG_ALPHA_2
LOCALE_LANG_ALPHA_3
@@ -47,17 +52,27 @@ $VERSION='3.37';
# Constants
#-----------------------------------------------------------------------
-use constant LOCALE_CODE_ALPHA_2 => 'alpha-2';
-use constant LOCALE_CODE_ALPHA_3 => 'alpha-3';
-use constant LOCALE_CODE_NUMERIC => 'numeric';
-use constant LOCALE_CODE_DOM => 'dom';
+use constant LOCALE_CODE_ALPHA_2 => 'alpha-2';
+use constant LOCALE_CODE_ALPHA_3 => 'alpha-3';
+use constant LOCALE_CODE_NUMERIC => 'numeric';
+use constant LOCALE_CODE_DOM => 'dom';
+use constant LOCALE_CODE_UN_ALPHA_3 => 'un-alpha-3';
+use constant LOCALE_CODE_UN_NUMERIC => 'un-numeric';
+use constant LOCALE_CODE_GENC_ALPHA_2 => 'genc-alpha-2';
+use constant LOCALE_CODE_GENC_ALPHA_3 => 'genc-alpha-3';
+use constant LOCALE_CODE_GENC_NUMERIC => 'genc-numeric';
$ALL_CODESETS{'country'} = {
'default' => 'alpha-2',
- 'codesets' => { 'alpha-2' => ['lc'],
- 'alpha-3' => ['lc'],
- 'numeric' => ['numeric',3],
- 'dom' => ['lc'],
+ 'codesets' => { 'alpha-2' => ['lc'],
+ 'alpha-3' => ['lc'],
+ 'numeric' => ['numeric',3],
+ 'dom' => ['lc'],
+ 'un-alpha-3' => ['uc'],
+ 'un-numeric' => ['numeric',3],
+ 'genc-alpha-2' => ['uc'],
+ 'genc-alpha-3' => ['uc'],
+ 'genc-numeric' => ['numeric',3],
}
};
@@ -126,5 +141,5 @@ $ALL_CODESETS{'langfam'} = {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm
index a182431dc0a..102f60f294b 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Country;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -22,7 +22,7 @@ use Locale::Codes::Country_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.37';
+$VERSION='3.42';
@ISA = qw(Exporter);
@EXPORT = qw(code2country
country2code
@@ -96,5 +96,5 @@ sub delete_country_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod
index f827732ca7d..e4aee7274e5 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Country.pod
@@ -70,6 +70,23 @@ The IANA is responsible for delegating management of the top level country
domains. The country domains are the two-letter (lowercase) codes from ISO 3166
with a few other additions.
+=item B<un-alpha-3, LOCALE_CODE_UN_ALPHA_3>
+
+=item B<un-numeric, LOCALE_CODE_UN_NUMERIC>
+
+The UN maintains a list of codes that is similar, but not identical, to the
+standard ISO 3166 lists. They maintain a 3-letter code (similar to alpha-3)
+and a numeric code (similar to numeric).
+
+=item B<genc-alpha-2, LOCALE_CODE_GENC_ALPHA_2>
+
+=item B<genc-alpha-3, LOCALE_CODE_GENC_ALPHA_3>
+
+=item B<genc-numeric, LOCALE_CODE_GENC_NUMERIC>
+
+The GENC codes are the US Government codes that replace the FIPS-11 codes.
+They are based on, but not identical to the standard ISO 3166 lists.
+
=back
NOTE: As of version 3.27, the FIPS code set is no longer supported. See the
@@ -143,12 +160,15 @@ Official source of the top-level domain names.
=item L<http://unstats.un.org/unsd/methods/m49/m49alpha.htm>
-The source of the official ISO 3166-1 three-letter codes and
-three-digit codes.
+The source of the UN codes.
+
+Previously, this table was treated as a source of the ISO 3166 data,
+but I found that the table was incomplete, so I stopped using it.
+Later, it was added back in as it's own list of codes.
+
+=item L<https://nsgreg.nga.mil/genc/discovery>
-For some reason, this table is incomplete! Several countries are
-missing from it, and I cannot find them anywhere on the UN site. I
-no longer use this as a source of data.
+The source of the GENC codes.
=item L<https://www.cia.gov/library/publications/the-world-factbook/appendix/print_appendix-d.html>
@@ -174,7 +194,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm
index 11262e8548a..b446900b502 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::Country_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:41:05 EST 2015
+# Generated on: Tue Nov 29 15:43:30 EST 2016
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
-$Locale::Codes::Data{'country'}{'id'} = '0250';
+$Locale::Codes::Data{'country'}{'id'} = '0283';
$Locale::Codes::Data{'country'}{'id2names'} = {
q(0001) => [
@@ -105,6 +105,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
],
q(0028) => [
q(Bonaire, Sint Eustatius and Saba),
+ q(Bonaire, Sint Eustatius, and Saba),
],
q(0029) => [
q(Bosnia and Herzegovina),
@@ -238,6 +239,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Cyprus),
],
q(0060) => [
+ q(Czechia),
q(Czech Republic),
q(The Czech Republic),
q(Czech Republic, The),
@@ -456,6 +458,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(The Democratic People's Republic of Korea),
q(Democratic People's Republic of Korea),
q(North Korea),
+ q(Korea, North),
],
q(0119) => [
q(Korea, The Republic of),
@@ -465,6 +468,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(The Republic of Korea),
q(Republic of Korea),
q(South Korea),
+ q(Korea, South),
],
q(0120) => [
q(Kuwait),
@@ -477,6 +481,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(The Lao People's Democratic Republic),
q(Lao People's Democratic Republic, The),
q(Lao People's Democratic Republic (The)),
+ q(Laos),
],
q(0123) => [
q(Latvia),
@@ -573,6 +578,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Moldova (Republic of)),
q(The Republic of Moldova),
q(Republic of Moldova),
+ q(Moldova),
],
q(0147) => [
q(Monaco),
@@ -706,6 +712,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(The Russian Federation),
q(Russian Federation, The),
q(Russian Federation (The)),
+ q(Russia),
],
q(0184) => [
q(Rwanda),
@@ -717,6 +724,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(0186) => [
q(Saint Helena, Ascension and Tristan da Cunha),
q(Saint Helena),
+ q(Saint Helena, Ascension, and Tristan Da Cunha),
],
q(0187) => [
q(Saint Kitts and Nevis),
@@ -765,6 +773,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
],
q(0201) => [
q(Sint Maarten (Dutch part)),
+ q(Sint Maarten),
],
q(0202) => [
q(Slovakia),
@@ -787,6 +796,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(0207) => [
q(South Georgia and the South Sandwich Islands),
q(South Georgia and the Islands),
+ q(South Georgia and South Sandwich Islands),
],
q(0208) => [
q(South Sudan),
@@ -838,6 +848,7 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Tanzania, United Republic of),
q(Tanzania (United Republic of)),
q(United Republic of Tanzania),
+ q(Tanzania),
],
q(0221) => [
q(Thailand),
@@ -986,6 +997,109 @@ $Locale::Codes::Data{'country'}{'id2names'} = {
q(Republic of Zimbabwe, The),
q(Republic of Zimbabwe (The)),
],
+ q(0250) => [
+ q(Channel Islands),
+ ],
+ q(0251) => [
+ q(Sark),
+ ],
+ q(0252) => [
+ q(Akrotiri),
+ ],
+ q(0253) => [
+ q(Ashmore and Cartier Islands),
+ ],
+ q(0254) => [
+ q(Baker Island),
+ ],
+ q(0255) => [
+ q(Bassas Da India),
+ ],
+ q(0256) => [
+ q(Clipperton Island),
+ ],
+ q(0257) => [
+ q(Coral Sea Islands),
+ ],
+ q(0258) => [
+ q(Dhekelia),
+ ],
+ q(0259) => [
+ q(Diego Garcia),
+ ],
+ q(0260) => [
+ q(Entity 1),
+ q(Entity 2),
+ q(Entity 3),
+ q(Entity 4),
+ q(Entity 5),
+ ],
+ q(0261) => [
+ q(Entity 6),
+ ],
+ q(0262) => [
+ q(Europa Island),
+ ],
+ q(0263) => [
+ q(Gaza Strip),
+ ],
+ q(0264) => [
+ q(Glorioso Islands),
+ ],
+ q(0265) => [
+ q(Guantanamo Bay Naval Base),
+ ],
+ q(0266) => [
+ q(Howland Island),
+ ],
+ q(0267) => [
+ q(Jan Mayen),
+ ],
+ q(0268) => [
+ q(Jarvis Island),
+ ],
+ q(0269) => [
+ q(Johnston Atoll),
+ ],
+ q(0270) => [
+ q(Juan de Nova Island),
+ ],
+ q(0271) => [
+ q(Kingman Reef),
+ ],
+ q(0272) => [
+ q(Kosovo),
+ ],
+ q(0273) => [
+ q(Midway Islands),
+ ],
+ q(0274) => [
+ q(Navassa Island),
+ ],
+ q(0275) => [
+ q(Palmyra Atoll),
+ ],
+ q(0276) => [
+ q(Paracel Islands),
+ ],
+ q(0277) => [
+ q(Spratly Islands),
+ ],
+ q(0278) => [
+ q(Svalbard),
+ ],
+ q(0279) => [
+ q(Tromelin Island),
+ ],
+ q(0280) => [
+ q(Unknown),
+ ],
+ q(0281) => [
+ q(Wake Island),
+ ],
+ q(0282) => [
+ q(West Bank),
+ ],
};
$Locale::Codes::Data{'country'}{'alias2id'} = {
@@ -993,6 +1107,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0001),
q(0),
],
+ q(akrotiri) => [
+ q(0252),
+ q(0),
+ ],
q(aland islands) => [
q(0002),
q(0),
@@ -1041,6 +1159,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0013),
q(0),
],
+ q(ashmore and cartier islands) => [
+ q(0253),
+ q(0),
+ ],
q(australia) => [
q(0014),
q(0),
@@ -1069,6 +1191,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0018),
q(0),
],
+ q(baker island) => [
+ q(0254),
+ q(0),
+ ],
q(bangladesh) => [
q(0019),
q(0),
@@ -1077,6 +1203,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0020),
q(0),
],
+ q(bassas da india) => [
+ q(0255),
+ q(0),
+ ],
q(belarus) => [
q(0021),
q(0),
@@ -1117,6 +1247,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0028),
q(0),
],
+ q(bonaire, sint eustatius, and saba) => [
+ q(0028),
+ q(1),
+ ],
q(bosnia and herzegovina) => [
q(0029),
q(0),
@@ -1217,6 +1351,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0044),
q(0),
],
+ q(channel islands) => [
+ q(0250),
+ q(0),
+ ],
q(chile) => [
q(0045),
q(0),
@@ -1237,6 +1375,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0047),
q(0),
],
+ q(clipperton island) => [
+ q(0256),
+ q(0),
+ ],
q(cocos (keeling) islands) => [
q(0048),
q(0),
@@ -1329,6 +1471,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0053),
q(2),
],
+ q(coral sea islands) => [
+ q(0257),
+ q(0),
+ ],
q(costa rica) => [
q(0054),
q(0),
@@ -1355,15 +1501,19 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(czech republic) => [
q(0060),
- q(0),
+ q(1),
],
q(czech republic (the)) => [
q(0060),
- q(3),
+ q(4),
],
q(czech republic, the) => [
q(0060),
- q(2),
+ q(3),
+ ],
+ q(czechia) => [
+ q(0060),
+ q(0),
],
q(democratic people's republic of korea) => [
q(0118),
@@ -1381,6 +1531,14 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0061),
q(0),
],
+ q(dhekelia) => [
+ q(0258),
+ q(0),
+ ],
+ q(diego garcia) => [
+ q(0259),
+ q(0),
+ ],
q(djibouti) => [
q(0062),
q(0),
@@ -1417,6 +1575,30 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0067),
q(0),
],
+ q(entity 1) => [
+ q(0260),
+ q(0),
+ ],
+ q(entity 2) => [
+ q(0260),
+ q(1),
+ ],
+ q(entity 3) => [
+ q(0260),
+ q(2),
+ ],
+ q(entity 4) => [
+ q(0260),
+ q(3),
+ ],
+ q(entity 5) => [
+ q(0260),
+ q(4),
+ ],
+ q(entity 6) => [
+ q(0261),
+ q(0),
+ ],
q(equatorial guinea) => [
q(0068),
q(0),
@@ -1433,6 +1615,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0071),
q(0),
],
+ q(europa island) => [
+ q(0262),
+ q(0),
+ ],
q(faeroe islands) => [
q(0073),
q(4),
@@ -1521,6 +1707,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0081),
q(2),
],
+ q(gaza strip) => [
+ q(0263),
+ q(0),
+ ],
q(georgia) => [
q(0082),
q(0),
@@ -1537,6 +1727,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0085),
q(0),
],
+ q(glorioso islands) => [
+ q(0264),
+ q(0),
+ ],
q(great britain) => [
q(0235),
q(4),
@@ -1561,6 +1755,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0090),
q(0),
],
+ q(guantanamo bay naval base) => [
+ q(0265),
+ q(0),
+ ],
q(guatemala) => [
q(0091),
q(0),
@@ -1629,6 +1827,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0100),
q(3),
],
+ q(howland island) => [
+ q(0266),
+ q(0),
+ ],
q(hungary) => [
q(0101),
q(0),
@@ -1693,18 +1895,34 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0111),
q(0),
],
+ q(jan mayen) => [
+ q(0267),
+ q(0),
+ ],
q(japan) => [
q(0112),
q(0),
],
+ q(jarvis island) => [
+ q(0268),
+ q(0),
+ ],
q(jersey) => [
q(0113),
q(0),
],
+ q(johnston atoll) => [
+ q(0269),
+ q(0),
+ ],
q(jordan) => [
q(0114),
q(0),
],
+ q(juan de nova island) => [
+ q(0270),
+ q(0),
+ ],
q(kazakhstan) => [
q(0115),
q(0),
@@ -1721,6 +1939,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0116),
q(0),
],
+ q(kingman reef) => [
+ q(0271),
+ q(0),
+ ],
q(kiribati) => [
q(0117),
q(0),
@@ -1745,10 +1967,18 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0118),
q(2),
],
+ q(korea, north) => [
+ q(0118),
+ q(7),
+ ],
q(korea, republic of) => [
q(0119),
q(2),
],
+ q(korea, south) => [
+ q(0119),
+ q(7),
+ ],
q(korea, the democratic people's republic of) => [
q(0118),
q(0),
@@ -1757,6 +1987,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0119),
q(0),
],
+ q(kosovo) => [
+ q(0272),
+ q(0),
+ ],
q(kuwait) => [
q(0120),
q(0),
@@ -1777,6 +2011,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0122),
q(2),
],
+ q(laos) => [
+ q(0122),
+ q(4),
+ ],
q(latvia) => [
q(0123),
q(0),
@@ -1921,6 +2159,14 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0145),
q(4),
],
+ q(midway islands) => [
+ q(0273),
+ q(0),
+ ],
+ q(moldova) => [
+ q(0146),
+ q(6),
+ ],
q(moldova (republic of)) => [
q(0146),
q(3),
@@ -1973,6 +2219,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0155),
q(0),
],
+ q(navassa island) => [
+ q(0274),
+ q(0),
+ ],
q(nepal) => [
q(0156),
q(0),
@@ -2065,6 +2315,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0170),
q(0),
],
+ q(palmyra atoll) => [
+ q(0275),
+ q(0),
+ ],
q(panama) => [
q(0171),
q(0),
@@ -2073,6 +2327,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0172),
q(0),
],
+ q(paracel islands) => [
+ q(0276),
+ q(0),
+ ],
q(paraguay) => [
q(0173),
q(0),
@@ -2173,6 +2431,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0182),
q(0),
],
+ q(russia) => [
+ q(0183),
+ q(4),
+ ],
q(russian federation) => [
q(0183),
q(0),
@@ -2201,6 +2463,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0186),
q(0),
],
+ q(saint helena, ascension, and tristan da cunha) => [
+ q(0186),
+ q(2),
+ ],
q(saint kitts and nevis) => [
q(0187),
q(0),
@@ -2249,6 +2515,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0194),
q(0),
],
+ q(sark) => [
+ q(0251),
+ q(0),
+ ],
q(saudi arabia) => [
q(0195),
q(0),
@@ -2273,6 +2543,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0200),
q(0),
],
+ q(sint maarten) => [
+ q(0201),
+ q(1),
+ ],
q(sint maarten (dutch part)) => [
q(0201),
q(0),
@@ -2305,6 +2579,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0206),
q(0),
],
+ q(south georgia and south sandwich islands) => [
+ q(0207),
+ q(2),
+ ],
q(south georgia and the islands) => [
q(0207),
q(1),
@@ -2325,6 +2603,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0209),
q(0),
],
+ q(spratly islands) => [
+ q(0277),
+ q(0),
+ ],
q(sri lanka) => [
q(0210),
q(0),
@@ -2349,6 +2631,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0212),
q(0),
],
+ q(svalbard) => [
+ q(0278),
+ q(0),
+ ],
q(svalbard and jan mayen) => [
q(0213),
q(0),
@@ -2401,6 +2687,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0219),
q(0),
],
+ q(tanzania) => [
+ q(0220),
+ q(3),
+ ],
q(tanzania (united republic of)) => [
q(0220),
q(1),
@@ -2455,7 +2745,7 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
],
q(the czech republic) => [
q(0060),
- q(1),
+ q(2),
],
q(the democratic people's republic of korea) => [
q(0118),
@@ -2645,6 +2935,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0226),
q(0),
],
+ q(tromelin island) => [
+ q(0279),
+ q(0),
+ ],
q(tunisia) => [
q(0227),
q(0),
@@ -2765,6 +3059,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0237),
q(6),
],
+ q(unknown) => [
+ q(0280),
+ q(0),
+ ],
q(uruguay) => [
q(0238),
q(0),
@@ -2841,6 +3139,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0244),
q(3),
],
+ q(wake island) => [
+ q(0281),
+ q(0),
+ ],
q(wallis and futuna) => [
q(0245),
q(0),
@@ -2849,6 +3151,10 @@ $Locale::Codes::Data{'country'}{'alias2id'} = {
q(0245),
q(1),
],
+ q(west bank) => [
+ q(0282),
+ q(0),
+ ],
q(western sahara) => [
q(0246),
q(0),
@@ -5874,6 +6180,3356 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
},
+ q(genc-alpha-2) => {
+ q(A1) => [
+ q(0280),
+ q(0),
+ ],
+ q(A2) => [
+ q(0265),
+ q(0),
+ ],
+ q(A3) => [
+ q(0261),
+ q(0),
+ ],
+ q(AD) => [
+ q(0006),
+ q(0),
+ ],
+ q(AE) => [
+ q(0234),
+ q(0),
+ ],
+ q(AF) => [
+ q(0001),
+ q(0),
+ ],
+ q(AG) => [
+ q(0010),
+ q(0),
+ ],
+ q(AI) => [
+ q(0008),
+ q(0),
+ ],
+ q(AL) => [
+ q(0003),
+ q(0),
+ ],
+ q(AM) => [
+ q(0012),
+ q(0),
+ ],
+ q(AO) => [
+ q(0007),
+ q(0),
+ ],
+ q(AQ) => [
+ q(0009),
+ q(0),
+ ],
+ q(AR) => [
+ q(0011),
+ q(0),
+ ],
+ q(AS) => [
+ q(0005),
+ q(0),
+ ],
+ q(AT) => [
+ q(0015),
+ q(0),
+ ],
+ q(AU) => [
+ q(0014),
+ q(0),
+ ],
+ q(AW) => [
+ q(0013),
+ q(0),
+ ],
+ q(AZ) => [
+ q(0016),
+ q(0),
+ ],
+ q(BA) => [
+ q(0029),
+ q(0),
+ ],
+ q(BB) => [
+ q(0020),
+ q(0),
+ ],
+ q(BD) => [
+ q(0019),
+ q(0),
+ ],
+ q(BE) => [
+ q(0022),
+ q(0),
+ ],
+ q(BF) => [
+ q(0036),
+ q(0),
+ ],
+ q(BG) => [
+ q(0035),
+ q(0),
+ ],
+ q(BH) => [
+ q(0018),
+ q(0),
+ ],
+ q(BI) => [
+ q(0037),
+ q(0),
+ ],
+ q(BJ) => [
+ q(0024),
+ q(0),
+ ],
+ q(BL) => [
+ q(0185),
+ q(0),
+ ],
+ q(BM) => [
+ q(0025),
+ q(0),
+ ],
+ q(BN) => [
+ q(0034),
+ q(0),
+ ],
+ q(BO) => [
+ q(0027),
+ q(0),
+ ],
+ q(BQ) => [
+ q(0028),
+ q(1),
+ ],
+ q(BR) => [
+ q(0032),
+ q(0),
+ ],
+ q(BS) => [
+ q(0017),
+ q(0),
+ ],
+ q(BT) => [
+ q(0026),
+ q(0),
+ ],
+ q(BV) => [
+ q(0031),
+ q(0),
+ ],
+ q(BW) => [
+ q(0030),
+ q(0),
+ ],
+ q(BY) => [
+ q(0021),
+ q(0),
+ ],
+ q(BZ) => [
+ q(0023),
+ q(0),
+ ],
+ q(CA) => [
+ q(0041),
+ q(0),
+ ],
+ q(CC) => [
+ q(0048),
+ q(0),
+ ],
+ q(CD) => [
+ q(0051),
+ q(0),
+ ],
+ q(CF) => [
+ q(0043),
+ q(0),
+ ],
+ q(CG) => [
+ q(0052),
+ q(0),
+ ],
+ q(CH) => [
+ q(0216),
+ q(0),
+ ],
+ q(CI) => [
+ q(0055),
+ q(0),
+ ],
+ q(CK) => [
+ q(0053),
+ q(0),
+ ],
+ q(CL) => [
+ q(0045),
+ q(0),
+ ],
+ q(CM) => [
+ q(0040),
+ q(0),
+ ],
+ q(CN) => [
+ q(0046),
+ q(0),
+ ],
+ q(CO) => [
+ q(0049),
+ q(0),
+ ],
+ q(CP) => [
+ q(0256),
+ q(0),
+ ],
+ q(CR) => [
+ q(0054),
+ q(0),
+ ],
+ q(CU) => [
+ q(0057),
+ q(0),
+ ],
+ q(CV) => [
+ q(0038),
+ q(0),
+ ],
+ q(CW) => [
+ q(0058),
+ q(0),
+ ],
+ q(CX) => [
+ q(0047),
+ q(0),
+ ],
+ q(CY) => [
+ q(0059),
+ q(0),
+ ],
+ q(CZ) => [
+ q(0060),
+ q(0),
+ ],
+ q(DE) => [
+ q(0083),
+ q(0),
+ ],
+ q(DG) => [
+ q(0259),
+ q(0),
+ ],
+ q(DJ) => [
+ q(0062),
+ q(0),
+ ],
+ q(DK) => [
+ q(0061),
+ q(0),
+ ],
+ q(DM) => [
+ q(0063),
+ q(0),
+ ],
+ q(DO) => [
+ q(0064),
+ q(0),
+ ],
+ q(DZ) => [
+ q(0004),
+ q(0),
+ ],
+ q(EC) => [
+ q(0065),
+ q(0),
+ ],
+ q(EE) => [
+ q(0070),
+ q(0),
+ ],
+ q(EG) => [
+ q(0066),
+ q(0),
+ ],
+ q(EH) => [
+ q(0246),
+ q(0),
+ ],
+ q(ER) => [
+ q(0069),
+ q(0),
+ ],
+ q(ES) => [
+ q(0209),
+ q(0),
+ ],
+ q(ET) => [
+ q(0071),
+ q(0),
+ ],
+ q(FI) => [
+ q(0075),
+ q(0),
+ ],
+ q(FJ) => [
+ q(0074),
+ q(0),
+ ],
+ q(FK) => [
+ q(0072),
+ q(0),
+ ],
+ q(FM) => [
+ q(0145),
+ q(0),
+ ],
+ q(FO) => [
+ q(0073),
+ q(0),
+ ],
+ q(FR) => [
+ q(0076),
+ q(0),
+ ],
+ q(GA) => [
+ q(0080),
+ q(0),
+ ],
+ q(GB) => [
+ q(0235),
+ q(0),
+ ],
+ q(GD) => [
+ q(0088),
+ q(0),
+ ],
+ q(GE) => [
+ q(0082),
+ q(0),
+ ],
+ q(GF) => [
+ q(0077),
+ q(0),
+ ],
+ q(GG) => [
+ q(0092),
+ q(0),
+ ],
+ q(GH) => [
+ q(0084),
+ q(0),
+ ],
+ q(GI) => [
+ q(0085),
+ q(0),
+ ],
+ q(GL) => [
+ q(0087),
+ q(0),
+ ],
+ q(GM) => [
+ q(0081),
+ q(0),
+ ],
+ q(GN) => [
+ q(0093),
+ q(0),
+ ],
+ q(GP) => [
+ q(0089),
+ q(0),
+ ],
+ q(GQ) => [
+ q(0068),
+ q(0),
+ ],
+ q(GR) => [
+ q(0086),
+ q(0),
+ ],
+ q(GS) => [
+ q(0207),
+ q(2),
+ ],
+ q(GT) => [
+ q(0091),
+ q(0),
+ ],
+ q(GU) => [
+ q(0090),
+ q(0),
+ ],
+ q(GW) => [
+ q(0094),
+ q(0),
+ ],
+ q(GY) => [
+ q(0095),
+ q(0),
+ ],
+ q(HK) => [
+ q(0100),
+ q(0),
+ ],
+ q(HM) => [
+ q(0097),
+ q(0),
+ ],
+ q(HN) => [
+ q(0099),
+ q(0),
+ ],
+ q(HR) => [
+ q(0056),
+ q(0),
+ ],
+ q(HT) => [
+ q(0096),
+ q(0),
+ ],
+ q(HU) => [
+ q(0101),
+ q(0),
+ ],
+ q(ID) => [
+ q(0104),
+ q(0),
+ ],
+ q(IE) => [
+ q(0107),
+ q(0),
+ ],
+ q(IL) => [
+ q(0109),
+ q(0),
+ ],
+ q(IM) => [
+ q(0108),
+ q(0),
+ ],
+ q(IN) => [
+ q(0103),
+ q(0),
+ ],
+ q(IO) => [
+ q(0033),
+ q(0),
+ ],
+ q(IQ) => [
+ q(0106),
+ q(0),
+ ],
+ q(IR) => [
+ q(0105),
+ q(0),
+ ],
+ q(IS) => [
+ q(0102),
+ q(0),
+ ],
+ q(IT) => [
+ q(0110),
+ q(0),
+ ],
+ q(JE) => [
+ q(0113),
+ q(0),
+ ],
+ q(JM) => [
+ q(0111),
+ q(0),
+ ],
+ q(JO) => [
+ q(0114),
+ q(0),
+ ],
+ q(JP) => [
+ q(0112),
+ q(0),
+ ],
+ q(KE) => [
+ q(0116),
+ q(0),
+ ],
+ q(KG) => [
+ q(0121),
+ q(0),
+ ],
+ q(KH) => [
+ q(0039),
+ q(0),
+ ],
+ q(KI) => [
+ q(0117),
+ q(0),
+ ],
+ q(KM) => [
+ q(0050),
+ q(0),
+ ],
+ q(KN) => [
+ q(0187),
+ q(0),
+ ],
+ q(KP) => [
+ q(0118),
+ q(7),
+ ],
+ q(KR) => [
+ q(0119),
+ q(7),
+ ],
+ q(KW) => [
+ q(0120),
+ q(0),
+ ],
+ q(KY) => [
+ q(0042),
+ q(0),
+ ],
+ q(KZ) => [
+ q(0115),
+ q(0),
+ ],
+ q(LA) => [
+ q(0122),
+ q(4),
+ ],
+ q(LB) => [
+ q(0124),
+ q(0),
+ ],
+ q(LC) => [
+ q(0188),
+ q(0),
+ ],
+ q(LI) => [
+ q(0128),
+ q(0),
+ ],
+ q(LK) => [
+ q(0210),
+ q(0),
+ ],
+ q(LR) => [
+ q(0126),
+ q(0),
+ ],
+ q(LS) => [
+ q(0125),
+ q(0),
+ ],
+ q(LT) => [
+ q(0129),
+ q(0),
+ ],
+ q(LU) => [
+ q(0130),
+ q(0),
+ ],
+ q(LV) => [
+ q(0123),
+ q(0),
+ ],
+ q(LY) => [
+ q(0127),
+ q(0),
+ ],
+ q(MA) => [
+ q(0151),
+ q(0),
+ ],
+ q(MC) => [
+ q(0147),
+ q(0),
+ ],
+ q(MD) => [
+ q(0146),
+ q(6),
+ ],
+ q(ME) => [
+ q(0149),
+ q(0),
+ ],
+ q(MF) => [
+ q(0189),
+ q(0),
+ ],
+ q(MG) => [
+ q(0133),
+ q(0),
+ ],
+ q(MH) => [
+ q(0139),
+ q(0),
+ ],
+ q(MK) => [
+ q(0132),
+ q(0),
+ ],
+ q(ML) => [
+ q(0137),
+ q(0),
+ ],
+ q(MM) => [
+ q(0153),
+ q(0),
+ ],
+ q(MN) => [
+ q(0148),
+ q(0),
+ ],
+ q(MO) => [
+ q(0131),
+ q(0),
+ ],
+ q(MP) => [
+ q(0165),
+ q(0),
+ ],
+ q(MQ) => [
+ q(0140),
+ q(0),
+ ],
+ q(MR) => [
+ q(0141),
+ q(0),
+ ],
+ q(MS) => [
+ q(0150),
+ q(0),
+ ],
+ q(MT) => [
+ q(0138),
+ q(0),
+ ],
+ q(MU) => [
+ q(0142),
+ q(0),
+ ],
+ q(MV) => [
+ q(0136),
+ q(0),
+ ],
+ q(MW) => [
+ q(0134),
+ q(0),
+ ],
+ q(MX) => [
+ q(0144),
+ q(0),
+ ],
+ q(MY) => [
+ q(0135),
+ q(0),
+ ],
+ q(MZ) => [
+ q(0152),
+ q(0),
+ ],
+ q(NA) => [
+ q(0154),
+ q(0),
+ ],
+ q(NC) => [
+ q(0158),
+ q(0),
+ ],
+ q(NE) => [
+ q(0161),
+ q(0),
+ ],
+ q(NF) => [
+ q(0164),
+ q(0),
+ ],
+ q(NG) => [
+ q(0162),
+ q(0),
+ ],
+ q(NI) => [
+ q(0160),
+ q(0),
+ ],
+ q(NL) => [
+ q(0157),
+ q(0),
+ ],
+ q(NO) => [
+ q(0166),
+ q(0),
+ ],
+ q(NP) => [
+ q(0156),
+ q(0),
+ ],
+ q(NR) => [
+ q(0155),
+ q(0),
+ ],
+ q(NU) => [
+ q(0163),
+ q(0),
+ ],
+ q(NZ) => [
+ q(0159),
+ q(0),
+ ],
+ q(OM) => [
+ q(0167),
+ q(0),
+ ],
+ q(PA) => [
+ q(0171),
+ q(0),
+ ],
+ q(PE) => [
+ q(0174),
+ q(0),
+ ],
+ q(PF) => [
+ q(0078),
+ q(0),
+ ],
+ q(PG) => [
+ q(0172),
+ q(0),
+ ],
+ q(PH) => [
+ q(0175),
+ q(0),
+ ],
+ q(PK) => [
+ q(0168),
+ q(0),
+ ],
+ q(PL) => [
+ q(0177),
+ q(0),
+ ],
+ q(PM) => [
+ q(0190),
+ q(0),
+ ],
+ q(PN) => [
+ q(0176),
+ q(0),
+ ],
+ q(PR) => [
+ q(0179),
+ q(0),
+ ],
+ q(PT) => [
+ q(0178),
+ q(0),
+ ],
+ q(PW) => [
+ q(0169),
+ q(0),
+ ],
+ q(PY) => [
+ q(0173),
+ q(0),
+ ],
+ q(QA) => [
+ q(0180),
+ q(0),
+ ],
+ q(QM) => [
+ q(0273),
+ q(0),
+ ],
+ q(QS) => [
+ q(0255),
+ q(0),
+ ],
+ q(QU) => [
+ q(0270),
+ q(0),
+ ],
+ q(QW) => [
+ q(0281),
+ q(0),
+ ],
+ q(QX) => [
+ q(0264),
+ q(0),
+ ],
+ q(QZ) => [
+ q(0252),
+ q(0),
+ ],
+ q(RE) => [
+ q(0181),
+ q(0),
+ ],
+ q(RO) => [
+ q(0182),
+ q(0),
+ ],
+ q(RS) => [
+ q(0197),
+ q(0),
+ ],
+ q(RU) => [
+ q(0183),
+ q(4),
+ ],
+ q(RW) => [
+ q(0184),
+ q(0),
+ ],
+ q(SA) => [
+ q(0195),
+ q(0),
+ ],
+ q(SB) => [
+ q(0204),
+ q(0),
+ ],
+ q(SC) => [
+ q(0198),
+ q(0),
+ ],
+ q(SD) => [
+ q(0211),
+ q(0),
+ ],
+ q(SE) => [
+ q(0215),
+ q(0),
+ ],
+ q(SG) => [
+ q(0200),
+ q(0),
+ ],
+ q(SH) => [
+ q(0186),
+ q(2),
+ ],
+ q(SI) => [
+ q(0203),
+ q(0),
+ ],
+ q(SK) => [
+ q(0202),
+ q(0),
+ ],
+ q(SL) => [
+ q(0199),
+ q(0),
+ ],
+ q(SM) => [
+ q(0193),
+ q(0),
+ ],
+ q(SN) => [
+ q(0196),
+ q(0),
+ ],
+ q(SO) => [
+ q(0205),
+ q(0),
+ ],
+ q(SR) => [
+ q(0212),
+ q(0),
+ ],
+ q(SS) => [
+ q(0208),
+ q(0),
+ ],
+ q(ST) => [
+ q(0194),
+ q(0),
+ ],
+ q(SV) => [
+ q(0067),
+ q(0),
+ ],
+ q(SX) => [
+ q(0201),
+ q(1),
+ ],
+ q(SY) => [
+ q(0217),
+ q(0),
+ ],
+ q(SZ) => [
+ q(0214),
+ q(0),
+ ],
+ q(TC) => [
+ q(0230),
+ q(0),
+ ],
+ q(TD) => [
+ q(0044),
+ q(0),
+ ],
+ q(TF) => [
+ q(0079),
+ q(0),
+ ],
+ q(TG) => [
+ q(0223),
+ q(0),
+ ],
+ q(TH) => [
+ q(0221),
+ q(0),
+ ],
+ q(TJ) => [
+ q(0219),
+ q(0),
+ ],
+ q(TK) => [
+ q(0224),
+ q(0),
+ ],
+ q(TL) => [
+ q(0222),
+ q(0),
+ ],
+ q(TM) => [
+ q(0229),
+ q(0),
+ ],
+ q(TN) => [
+ q(0227),
+ q(0),
+ ],
+ q(TO) => [
+ q(0225),
+ q(0),
+ ],
+ q(TR) => [
+ q(0228),
+ q(0),
+ ],
+ q(TT) => [
+ q(0226),
+ q(0),
+ ],
+ q(TV) => [
+ q(0231),
+ q(0),
+ ],
+ q(TW) => [
+ q(0218),
+ q(0),
+ ],
+ q(TZ) => [
+ q(0220),
+ q(3),
+ ],
+ q(UA) => [
+ q(0233),
+ q(0),
+ ],
+ q(UG) => [
+ q(0232),
+ q(0),
+ ],
+ q(US) => [
+ q(0237),
+ q(0),
+ ],
+ q(UY) => [
+ q(0238),
+ q(0),
+ ],
+ q(UZ) => [
+ q(0239),
+ q(0),
+ ],
+ q(VA) => [
+ q(0098),
+ q(0),
+ ],
+ q(VC) => [
+ q(0191),
+ q(0),
+ ],
+ q(VE) => [
+ q(0241),
+ q(0),
+ ],
+ q(VG) => [
+ q(0243),
+ q(0),
+ ],
+ q(VI) => [
+ q(0244),
+ q(0),
+ ],
+ q(VN) => [
+ q(0242),
+ q(0),
+ ],
+ q(VU) => [
+ q(0240),
+ q(0),
+ ],
+ q(WF) => [
+ q(0245),
+ q(0),
+ ],
+ q(WS) => [
+ q(0192),
+ q(0),
+ ],
+ q(XA) => [
+ q(0253),
+ q(0),
+ ],
+ q(XB) => [
+ q(0254),
+ q(0),
+ ],
+ q(XC) => [
+ q(0257),
+ q(0),
+ ],
+ q(XD) => [
+ q(0258),
+ q(0),
+ ],
+ q(XE) => [
+ q(0262),
+ q(0),
+ ],
+ q(XG) => [
+ q(0263),
+ q(0),
+ ],
+ q(XH) => [
+ q(0266),
+ q(0),
+ ],
+ q(XJ) => [
+ q(0267),
+ q(0),
+ ],
+ q(XK) => [
+ q(0272),
+ q(0),
+ ],
+ q(XL) => [
+ q(0275),
+ q(0),
+ ],
+ q(XM) => [
+ q(0271),
+ q(0),
+ ],
+ q(XP) => [
+ q(0276),
+ q(0),
+ ],
+ q(XQ) => [
+ q(0268),
+ q(0),
+ ],
+ q(XR) => [
+ q(0278),
+ q(0),
+ ],
+ q(XS) => [
+ q(0277),
+ q(0),
+ ],
+ q(XT) => [
+ q(0279),
+ q(0),
+ ],
+ q(XU) => [
+ q(0269),
+ q(0),
+ ],
+ q(XV) => [
+ q(0274),
+ q(0),
+ ],
+ q(XW) => [
+ q(0282),
+ q(0),
+ ],
+ q(YE) => [
+ q(0247),
+ q(0),
+ ],
+ q(YT) => [
+ q(0143),
+ q(0),
+ ],
+ q(ZA) => [
+ q(0206),
+ q(0),
+ ],
+ q(ZM) => [
+ q(0248),
+ q(0),
+ ],
+ q(ZW) => [
+ q(0249),
+ q(0),
+ ],
+ q([None Assigned]) => [
+ q(0260),
+ q(4),
+ ],
+ },
+ q(genc-alpha-3) => {
+ q(ABW) => [
+ q(0013),
+ q(0),
+ ],
+ q(AFG) => [
+ q(0001),
+ q(0),
+ ],
+ q(AGO) => [
+ q(0007),
+ q(0),
+ ],
+ q(AIA) => [
+ q(0008),
+ q(0),
+ ],
+ q(ALB) => [
+ q(0003),
+ q(0),
+ ],
+ q(AND) => [
+ q(0006),
+ q(0),
+ ],
+ q(ARE) => [
+ q(0234),
+ q(0),
+ ],
+ q(ARG) => [
+ q(0011),
+ q(0),
+ ],
+ q(ARM) => [
+ q(0012),
+ q(0),
+ ],
+ q(ASM) => [
+ q(0005),
+ q(0),
+ ],
+ q(ATA) => [
+ q(0009),
+ q(0),
+ ],
+ q(ATF) => [
+ q(0079),
+ q(0),
+ ],
+ q(ATG) => [
+ q(0010),
+ q(0),
+ ],
+ q(AUS) => [
+ q(0014),
+ q(0),
+ ],
+ q(AUT) => [
+ q(0015),
+ q(0),
+ ],
+ q(AX1) => [
+ q(0280),
+ q(0),
+ ],
+ q(AX2) => [
+ q(0265),
+ q(0),
+ ],
+ q(AX3) => [
+ q(0261),
+ q(0),
+ ],
+ q(AZE) => [
+ q(0016),
+ q(0),
+ ],
+ q(BDI) => [
+ q(0037),
+ q(0),
+ ],
+ q(BEL) => [
+ q(0022),
+ q(0),
+ ],
+ q(BEN) => [
+ q(0024),
+ q(0),
+ ],
+ q(BES) => [
+ q(0028),
+ q(1),
+ ],
+ q(BFA) => [
+ q(0036),
+ q(0),
+ ],
+ q(BGD) => [
+ q(0019),
+ q(0),
+ ],
+ q(BGR) => [
+ q(0035),
+ q(0),
+ ],
+ q(BHR) => [
+ q(0018),
+ q(0),
+ ],
+ q(BHS) => [
+ q(0017),
+ q(0),
+ ],
+ q(BIH) => [
+ q(0029),
+ q(0),
+ ],
+ q(BLM) => [
+ q(0185),
+ q(0),
+ ],
+ q(BLR) => [
+ q(0021),
+ q(0),
+ ],
+ q(BLZ) => [
+ q(0023),
+ q(0),
+ ],
+ q(BMU) => [
+ q(0025),
+ q(0),
+ ],
+ q(BOL) => [
+ q(0027),
+ q(0),
+ ],
+ q(BRA) => [
+ q(0032),
+ q(0),
+ ],
+ q(BRB) => [
+ q(0020),
+ q(0),
+ ],
+ q(BRN) => [
+ q(0034),
+ q(0),
+ ],
+ q(BTN) => [
+ q(0026),
+ q(0),
+ ],
+ q(BVT) => [
+ q(0031),
+ q(0),
+ ],
+ q(BWA) => [
+ q(0030),
+ q(0),
+ ],
+ q(CAF) => [
+ q(0043),
+ q(0),
+ ],
+ q(CAN) => [
+ q(0041),
+ q(0),
+ ],
+ q(CCK) => [
+ q(0048),
+ q(0),
+ ],
+ q(CHE) => [
+ q(0216),
+ q(0),
+ ],
+ q(CHL) => [
+ q(0045),
+ q(0),
+ ],
+ q(CHN) => [
+ q(0046),
+ q(0),
+ ],
+ q(CIV) => [
+ q(0055),
+ q(0),
+ ],
+ q(CMR) => [
+ q(0040),
+ q(0),
+ ],
+ q(COD) => [
+ q(0051),
+ q(0),
+ ],
+ q(COG) => [
+ q(0052),
+ q(0),
+ ],
+ q(COK) => [
+ q(0053),
+ q(0),
+ ],
+ q(COL) => [
+ q(0049),
+ q(0),
+ ],
+ q(COM) => [
+ q(0050),
+ q(0),
+ ],
+ q(CPT) => [
+ q(0256),
+ q(0),
+ ],
+ q(CPV) => [
+ q(0038),
+ q(0),
+ ],
+ q(CRI) => [
+ q(0054),
+ q(0),
+ ],
+ q(CUB) => [
+ q(0057),
+ q(0),
+ ],
+ q(CUW) => [
+ q(0058),
+ q(0),
+ ],
+ q(CXR) => [
+ q(0047),
+ q(0),
+ ],
+ q(CYM) => [
+ q(0042),
+ q(0),
+ ],
+ q(CYP) => [
+ q(0059),
+ q(0),
+ ],
+ q(CZE) => [
+ q(0060),
+ q(0),
+ ],
+ q(DEU) => [
+ q(0083),
+ q(0),
+ ],
+ q(DGA) => [
+ q(0259),
+ q(0),
+ ],
+ q(DJI) => [
+ q(0062),
+ q(0),
+ ],
+ q(DMA) => [
+ q(0063),
+ q(0),
+ ],
+ q(DNK) => [
+ q(0061),
+ q(0),
+ ],
+ q(DOM) => [
+ q(0064),
+ q(0),
+ ],
+ q(DZA) => [
+ q(0004),
+ q(0),
+ ],
+ q(ECU) => [
+ q(0065),
+ q(0),
+ ],
+ q(EGY) => [
+ q(0066),
+ q(0),
+ ],
+ q(ERI) => [
+ q(0069),
+ q(0),
+ ],
+ q(ESH) => [
+ q(0246),
+ q(0),
+ ],
+ q(ESP) => [
+ q(0209),
+ q(0),
+ ],
+ q(EST) => [
+ q(0070),
+ q(0),
+ ],
+ q(ETH) => [
+ q(0071),
+ q(0),
+ ],
+ q(FIN) => [
+ q(0075),
+ q(0),
+ ],
+ q(FJI) => [
+ q(0074),
+ q(0),
+ ],
+ q(FLK) => [
+ q(0072),
+ q(0),
+ ],
+ q(FRA) => [
+ q(0076),
+ q(0),
+ ],
+ q(FRO) => [
+ q(0073),
+ q(0),
+ ],
+ q(FSM) => [
+ q(0145),
+ q(0),
+ ],
+ q(GAB) => [
+ q(0080),
+ q(0),
+ ],
+ q(GBR) => [
+ q(0235),
+ q(0),
+ ],
+ q(GEO) => [
+ q(0082),
+ q(0),
+ ],
+ q(GGY) => [
+ q(0092),
+ q(0),
+ ],
+ q(GHA) => [
+ q(0084),
+ q(0),
+ ],
+ q(GIB) => [
+ q(0085),
+ q(0),
+ ],
+ q(GIN) => [
+ q(0093),
+ q(0),
+ ],
+ q(GLP) => [
+ q(0089),
+ q(0),
+ ],
+ q(GMB) => [
+ q(0081),
+ q(0),
+ ],
+ q(GNB) => [
+ q(0094),
+ q(0),
+ ],
+ q(GNQ) => [
+ q(0068),
+ q(0),
+ ],
+ q(GRC) => [
+ q(0086),
+ q(0),
+ ],
+ q(GRD) => [
+ q(0088),
+ q(0),
+ ],
+ q(GRL) => [
+ q(0087),
+ q(0),
+ ],
+ q(GTM) => [
+ q(0091),
+ q(0),
+ ],
+ q(GUF) => [
+ q(0077),
+ q(0),
+ ],
+ q(GUM) => [
+ q(0090),
+ q(0),
+ ],
+ q(GUY) => [
+ q(0095),
+ q(0),
+ ],
+ q(HKG) => [
+ q(0100),
+ q(0),
+ ],
+ q(HMD) => [
+ q(0097),
+ q(0),
+ ],
+ q(HND) => [
+ q(0099),
+ q(0),
+ ],
+ q(HRV) => [
+ q(0056),
+ q(0),
+ ],
+ q(HTI) => [
+ q(0096),
+ q(0),
+ ],
+ q(HUN) => [
+ q(0101),
+ q(0),
+ ],
+ q(IDN) => [
+ q(0104),
+ q(0),
+ ],
+ q(IMN) => [
+ q(0108),
+ q(0),
+ ],
+ q(IND) => [
+ q(0103),
+ q(0),
+ ],
+ q(IOT) => [
+ q(0033),
+ q(0),
+ ],
+ q(IRL) => [
+ q(0107),
+ q(0),
+ ],
+ q(IRN) => [
+ q(0105),
+ q(0),
+ ],
+ q(IRQ) => [
+ q(0106),
+ q(0),
+ ],
+ q(ISL) => [
+ q(0102),
+ q(0),
+ ],
+ q(ISR) => [
+ q(0109),
+ q(0),
+ ],
+ q(ITA) => [
+ q(0110),
+ q(0),
+ ],
+ q(JAM) => [
+ q(0111),
+ q(0),
+ ],
+ q(JEY) => [
+ q(0113),
+ q(0),
+ ],
+ q(JOR) => [
+ q(0114),
+ q(0),
+ ],
+ q(JPN) => [
+ q(0112),
+ q(0),
+ ],
+ q(KAZ) => [
+ q(0115),
+ q(0),
+ ],
+ q(KEN) => [
+ q(0116),
+ q(0),
+ ],
+ q(KGZ) => [
+ q(0121),
+ q(0),
+ ],
+ q(KHM) => [
+ q(0039),
+ q(0),
+ ],
+ q(KIR) => [
+ q(0117),
+ q(0),
+ ],
+ q(KNA) => [
+ q(0187),
+ q(0),
+ ],
+ q(KOR) => [
+ q(0119),
+ q(7),
+ ],
+ q(KWT) => [
+ q(0120),
+ q(0),
+ ],
+ q(LAO) => [
+ q(0122),
+ q(4),
+ ],
+ q(LBN) => [
+ q(0124),
+ q(0),
+ ],
+ q(LBR) => [
+ q(0126),
+ q(0),
+ ],
+ q(LBY) => [
+ q(0127),
+ q(0),
+ ],
+ q(LCA) => [
+ q(0188),
+ q(0),
+ ],
+ q(LIE) => [
+ q(0128),
+ q(0),
+ ],
+ q(LKA) => [
+ q(0210),
+ q(0),
+ ],
+ q(LSO) => [
+ q(0125),
+ q(0),
+ ],
+ q(LTU) => [
+ q(0129),
+ q(0),
+ ],
+ q(LUX) => [
+ q(0130),
+ q(0),
+ ],
+ q(LVA) => [
+ q(0123),
+ q(0),
+ ],
+ q(MAC) => [
+ q(0131),
+ q(0),
+ ],
+ q(MAF) => [
+ q(0189),
+ q(0),
+ ],
+ q(MAR) => [
+ q(0151),
+ q(0),
+ ],
+ q(MCO) => [
+ q(0147),
+ q(0),
+ ],
+ q(MDA) => [
+ q(0146),
+ q(6),
+ ],
+ q(MDG) => [
+ q(0133),
+ q(0),
+ ],
+ q(MDV) => [
+ q(0136),
+ q(0),
+ ],
+ q(MEX) => [
+ q(0144),
+ q(0),
+ ],
+ q(MHL) => [
+ q(0139),
+ q(0),
+ ],
+ q(MKD) => [
+ q(0132),
+ q(0),
+ ],
+ q(MLI) => [
+ q(0137),
+ q(0),
+ ],
+ q(MLT) => [
+ q(0138),
+ q(0),
+ ],
+ q(MMR) => [
+ q(0153),
+ q(0),
+ ],
+ q(MNE) => [
+ q(0149),
+ q(0),
+ ],
+ q(MNG) => [
+ q(0148),
+ q(0),
+ ],
+ q(MNP) => [
+ q(0165),
+ q(0),
+ ],
+ q(MOZ) => [
+ q(0152),
+ q(0),
+ ],
+ q(MRT) => [
+ q(0141),
+ q(0),
+ ],
+ q(MSR) => [
+ q(0150),
+ q(0),
+ ],
+ q(MTQ) => [
+ q(0140),
+ q(0),
+ ],
+ q(MUS) => [
+ q(0142),
+ q(0),
+ ],
+ q(MWI) => [
+ q(0134),
+ q(0),
+ ],
+ q(MYS) => [
+ q(0135),
+ q(0),
+ ],
+ q(MYT) => [
+ q(0143),
+ q(0),
+ ],
+ q(NAM) => [
+ q(0154),
+ q(0),
+ ],
+ q(NCL) => [
+ q(0158),
+ q(0),
+ ],
+ q(NER) => [
+ q(0161),
+ q(0),
+ ],
+ q(NFK) => [
+ q(0164),
+ q(0),
+ ],
+ q(NGA) => [
+ q(0162),
+ q(0),
+ ],
+ q(NIC) => [
+ q(0160),
+ q(0),
+ ],
+ q(NIU) => [
+ q(0163),
+ q(0),
+ ],
+ q(NLD) => [
+ q(0157),
+ q(0),
+ ],
+ q(NOR) => [
+ q(0166),
+ q(0),
+ ],
+ q(NPL) => [
+ q(0156),
+ q(0),
+ ],
+ q(NRU) => [
+ q(0155),
+ q(0),
+ ],
+ q(NZL) => [
+ q(0159),
+ q(0),
+ ],
+ q(OMN) => [
+ q(0167),
+ q(0),
+ ],
+ q(PAK) => [
+ q(0168),
+ q(0),
+ ],
+ q(PAN) => [
+ q(0171),
+ q(0),
+ ],
+ q(PCN) => [
+ q(0176),
+ q(0),
+ ],
+ q(PER) => [
+ q(0174),
+ q(0),
+ ],
+ q(PHL) => [
+ q(0175),
+ q(0),
+ ],
+ q(PLW) => [
+ q(0169),
+ q(0),
+ ],
+ q(PNG) => [
+ q(0172),
+ q(0),
+ ],
+ q(POL) => [
+ q(0177),
+ q(0),
+ ],
+ q(PRI) => [
+ q(0179),
+ q(0),
+ ],
+ q(PRK) => [
+ q(0118),
+ q(7),
+ ],
+ q(PRT) => [
+ q(0178),
+ q(0),
+ ],
+ q(PRY) => [
+ q(0173),
+ q(0),
+ ],
+ q(PYF) => [
+ q(0078),
+ q(0),
+ ],
+ q(QAT) => [
+ q(0180),
+ q(0),
+ ],
+ q(REU) => [
+ q(0181),
+ q(0),
+ ],
+ q(ROU) => [
+ q(0182),
+ q(0),
+ ],
+ q(RUS) => [
+ q(0183),
+ q(4),
+ ],
+ q(RWA) => [
+ q(0184),
+ q(0),
+ ],
+ q(SAU) => [
+ q(0195),
+ q(0),
+ ],
+ q(SDN) => [
+ q(0211),
+ q(0),
+ ],
+ q(SEN) => [
+ q(0196),
+ q(0),
+ ],
+ q(SGP) => [
+ q(0200),
+ q(0),
+ ],
+ q(SGS) => [
+ q(0207),
+ q(2),
+ ],
+ q(SHN) => [
+ q(0186),
+ q(2),
+ ],
+ q(SLB) => [
+ q(0204),
+ q(0),
+ ],
+ q(SLE) => [
+ q(0199),
+ q(0),
+ ],
+ q(SLV) => [
+ q(0067),
+ q(0),
+ ],
+ q(SMR) => [
+ q(0193),
+ q(0),
+ ],
+ q(SOM) => [
+ q(0205),
+ q(0),
+ ],
+ q(SPM) => [
+ q(0190),
+ q(0),
+ ],
+ q(SRB) => [
+ q(0197),
+ q(0),
+ ],
+ q(SSD) => [
+ q(0208),
+ q(0),
+ ],
+ q(STP) => [
+ q(0194),
+ q(0),
+ ],
+ q(SUR) => [
+ q(0212),
+ q(0),
+ ],
+ q(SVK) => [
+ q(0202),
+ q(0),
+ ],
+ q(SVN) => [
+ q(0203),
+ q(0),
+ ],
+ q(SWE) => [
+ q(0215),
+ q(0),
+ ],
+ q(SWZ) => [
+ q(0214),
+ q(0),
+ ],
+ q(SXM) => [
+ q(0201),
+ q(1),
+ ],
+ q(SYC) => [
+ q(0198),
+ q(0),
+ ],
+ q(SYR) => [
+ q(0217),
+ q(0),
+ ],
+ q(TCA) => [
+ q(0230),
+ q(0),
+ ],
+ q(TCD) => [
+ q(0044),
+ q(0),
+ ],
+ q(TGO) => [
+ q(0223),
+ q(0),
+ ],
+ q(THA) => [
+ q(0221),
+ q(0),
+ ],
+ q(TJK) => [
+ q(0219),
+ q(0),
+ ],
+ q(TKL) => [
+ q(0224),
+ q(0),
+ ],
+ q(TKM) => [
+ q(0229),
+ q(0),
+ ],
+ q(TLS) => [
+ q(0222),
+ q(0),
+ ],
+ q(TON) => [
+ q(0225),
+ q(0),
+ ],
+ q(TTO) => [
+ q(0226),
+ q(0),
+ ],
+ q(TUN) => [
+ q(0227),
+ q(0),
+ ],
+ q(TUR) => [
+ q(0228),
+ q(0),
+ ],
+ q(TUV) => [
+ q(0231),
+ q(0),
+ ],
+ q(TWN) => [
+ q(0218),
+ q(0),
+ ],
+ q(TZA) => [
+ q(0220),
+ q(3),
+ ],
+ q(UGA) => [
+ q(0232),
+ q(0),
+ ],
+ q(UKR) => [
+ q(0233),
+ q(0),
+ ],
+ q(URY) => [
+ q(0238),
+ q(0),
+ ],
+ q(USA) => [
+ q(0237),
+ q(0),
+ ],
+ q(UZB) => [
+ q(0239),
+ q(0),
+ ],
+ q(VAT) => [
+ q(0098),
+ q(0),
+ ],
+ q(VCT) => [
+ q(0191),
+ q(0),
+ ],
+ q(VEN) => [
+ q(0241),
+ q(0),
+ ],
+ q(VGB) => [
+ q(0243),
+ q(0),
+ ],
+ q(VIR) => [
+ q(0244),
+ q(0),
+ ],
+ q(VNM) => [
+ q(0242),
+ q(0),
+ ],
+ q(VUT) => [
+ q(0240),
+ q(0),
+ ],
+ q(WLF) => [
+ q(0245),
+ q(0),
+ ],
+ q(WSM) => [
+ q(0192),
+ q(0),
+ ],
+ q(XAC) => [
+ q(0253),
+ q(0),
+ ],
+ q(XAZ) => [
+ q(0260),
+ q(0),
+ ],
+ q(XBI) => [
+ q(0255),
+ q(0),
+ ],
+ q(XBK) => [
+ q(0254),
+ q(0),
+ ],
+ q(XCR) => [
+ q(0260),
+ q(1),
+ ],
+ q(XCS) => [
+ q(0257),
+ q(0),
+ ],
+ q(XCY) => [
+ q(0260),
+ q(2),
+ ],
+ q(XEU) => [
+ q(0262),
+ q(0),
+ ],
+ q(XGL) => [
+ q(0264),
+ q(0),
+ ],
+ q(XGZ) => [
+ q(0263),
+ q(0),
+ ],
+ q(XHO) => [
+ q(0266),
+ q(0),
+ ],
+ q(XJA) => [
+ q(0269),
+ q(0),
+ ],
+ q(XJM) => [
+ q(0267),
+ q(0),
+ ],
+ q(XJN) => [
+ q(0270),
+ q(0),
+ ],
+ q(XJV) => [
+ q(0268),
+ q(0),
+ ],
+ q(XKM) => [
+ q(0260),
+ q(3),
+ ],
+ q(XKN) => [
+ q(0260),
+ q(4),
+ ],
+ q(XKR) => [
+ q(0271),
+ q(0),
+ ],
+ q(XKS) => [
+ q(0272),
+ q(0),
+ ],
+ q(XMW) => [
+ q(0273),
+ q(0),
+ ],
+ q(XNV) => [
+ q(0274),
+ q(0),
+ ],
+ q(XPL) => [
+ q(0275),
+ q(0),
+ ],
+ q(XPR) => [
+ q(0276),
+ q(0),
+ ],
+ q(XQZ) => [
+ q(0252),
+ q(0),
+ ],
+ q(XSP) => [
+ q(0277),
+ q(0),
+ ],
+ q(XSV) => [
+ q(0278),
+ q(0),
+ ],
+ q(XTR) => [
+ q(0279),
+ q(0),
+ ],
+ q(XWB) => [
+ q(0282),
+ q(0),
+ ],
+ q(XWK) => [
+ q(0281),
+ q(0),
+ ],
+ q(XXD) => [
+ q(0258),
+ q(0),
+ ],
+ q(YEM) => [
+ q(0247),
+ q(0),
+ ],
+ q(ZAF) => [
+ q(0206),
+ q(0),
+ ],
+ q(ZMB) => [
+ q(0248),
+ q(0),
+ ],
+ q(ZWE) => [
+ q(0249),
+ q(0),
+ ],
+ },
+ q(genc-numeric) => {
+ q(004) => [
+ q(0001),
+ q(0),
+ ],
+ q(008) => [
+ q(0003),
+ q(0),
+ ],
+ q(010) => [
+ q(0009),
+ q(0),
+ ],
+ q(012) => [
+ q(0004),
+ q(0),
+ ],
+ q(016) => [
+ q(0005),
+ q(0),
+ ],
+ q(020) => [
+ q(0006),
+ q(0),
+ ],
+ q(024) => [
+ q(0007),
+ q(0),
+ ],
+ q(028) => [
+ q(0010),
+ q(0),
+ ],
+ q(031) => [
+ q(0016),
+ q(0),
+ ],
+ q(032) => [
+ q(0011),
+ q(0),
+ ],
+ q(036) => [
+ q(0014),
+ q(0),
+ ],
+ q(040) => [
+ q(0015),
+ q(0),
+ ],
+ q(044) => [
+ q(0017),
+ q(0),
+ ],
+ q(048) => [
+ q(0018),
+ q(0),
+ ],
+ q(050) => [
+ q(0019),
+ q(0),
+ ],
+ q(051) => [
+ q(0012),
+ q(0),
+ ],
+ q(052) => [
+ q(0020),
+ q(0),
+ ],
+ q(056) => [
+ q(0022),
+ q(0),
+ ],
+ q(060) => [
+ q(0025),
+ q(0),
+ ],
+ q(064) => [
+ q(0026),
+ q(0),
+ ],
+ q(068) => [
+ q(0027),
+ q(0),
+ ],
+ q(070) => [
+ q(0029),
+ q(0),
+ ],
+ q(072) => [
+ q(0030),
+ q(0),
+ ],
+ q(074) => [
+ q(0031),
+ q(0),
+ ],
+ q(076) => [
+ q(0032),
+ q(0),
+ ],
+ q(084) => [
+ q(0023),
+ q(0),
+ ],
+ q(086) => [
+ q(0033),
+ q(0),
+ ],
+ q(090) => [
+ q(0204),
+ q(0),
+ ],
+ q(092) => [
+ q(0243),
+ q(0),
+ ],
+ q(096) => [
+ q(0034),
+ q(0),
+ ],
+ q(100) => [
+ q(0035),
+ q(0),
+ ],
+ q(104) => [
+ q(0153),
+ q(0),
+ ],
+ q(108) => [
+ q(0037),
+ q(0),
+ ],
+ q(112) => [
+ q(0021),
+ q(0),
+ ],
+ q(116) => [
+ q(0039),
+ q(0),
+ ],
+ q(120) => [
+ q(0040),
+ q(0),
+ ],
+ q(124) => [
+ q(0041),
+ q(0),
+ ],
+ q(132) => [
+ q(0038),
+ q(0),
+ ],
+ q(136) => [
+ q(0042),
+ q(0),
+ ],
+ q(140) => [
+ q(0043),
+ q(0),
+ ],
+ q(144) => [
+ q(0210),
+ q(0),
+ ],
+ q(148) => [
+ q(0044),
+ q(0),
+ ],
+ q(152) => [
+ q(0045),
+ q(0),
+ ],
+ q(156) => [
+ q(0046),
+ q(0),
+ ],
+ q(158) => [
+ q(0218),
+ q(0),
+ ],
+ q(162) => [
+ q(0047),
+ q(0),
+ ],
+ q(166) => [
+ q(0048),
+ q(0),
+ ],
+ q(170) => [
+ q(0049),
+ q(0),
+ ],
+ q(174) => [
+ q(0050),
+ q(0),
+ ],
+ q(175) => [
+ q(0143),
+ q(0),
+ ],
+ q(178) => [
+ q(0052),
+ q(0),
+ ],
+ q(180) => [
+ q(0051),
+ q(0),
+ ],
+ q(184) => [
+ q(0053),
+ q(0),
+ ],
+ q(188) => [
+ q(0054),
+ q(0),
+ ],
+ q(191) => [
+ q(0056),
+ q(0),
+ ],
+ q(192) => [
+ q(0057),
+ q(0),
+ ],
+ q(196) => [
+ q(0059),
+ q(0),
+ ],
+ q(203) => [
+ q(0060),
+ q(0),
+ ],
+ q(204) => [
+ q(0024),
+ q(0),
+ ],
+ q(208) => [
+ q(0061),
+ q(0),
+ ],
+ q(212) => [
+ q(0063),
+ q(0),
+ ],
+ q(214) => [
+ q(0064),
+ q(0),
+ ],
+ q(218) => [
+ q(0065),
+ q(0),
+ ],
+ q(222) => [
+ q(0067),
+ q(0),
+ ],
+ q(226) => [
+ q(0068),
+ q(0),
+ ],
+ q(231) => [
+ q(0071),
+ q(0),
+ ],
+ q(232) => [
+ q(0069),
+ q(0),
+ ],
+ q(233) => [
+ q(0070),
+ q(0),
+ ],
+ q(234) => [
+ q(0073),
+ q(0),
+ ],
+ q(238) => [
+ q(0072),
+ q(0),
+ ],
+ q(239) => [
+ q(0207),
+ q(2),
+ ],
+ q(242) => [
+ q(0074),
+ q(0),
+ ],
+ q(246) => [
+ q(0075),
+ q(0),
+ ],
+ q(250) => [
+ q(0076),
+ q(0),
+ ],
+ q(254) => [
+ q(0077),
+ q(0),
+ ],
+ q(258) => [
+ q(0078),
+ q(0),
+ ],
+ q(260) => [
+ q(0079),
+ q(0),
+ ],
+ q(262) => [
+ q(0062),
+ q(0),
+ ],
+ q(266) => [
+ q(0080),
+ q(0),
+ ],
+ q(268) => [
+ q(0082),
+ q(0),
+ ],
+ q(270) => [
+ q(0081),
+ q(0),
+ ],
+ q(276) => [
+ q(0083),
+ q(0),
+ ],
+ q(288) => [
+ q(0084),
+ q(0),
+ ],
+ q(292) => [
+ q(0085),
+ q(0),
+ ],
+ q(296) => [
+ q(0117),
+ q(0),
+ ],
+ q(300) => [
+ q(0086),
+ q(0),
+ ],
+ q(304) => [
+ q(0087),
+ q(0),
+ ],
+ q(308) => [
+ q(0088),
+ q(0),
+ ],
+ q(312) => [
+ q(0089),
+ q(0),
+ ],
+ q(316) => [
+ q(0090),
+ q(0),
+ ],
+ q(320) => [
+ q(0091),
+ q(0),
+ ],
+ q(324) => [
+ q(0093),
+ q(0),
+ ],
+ q(328) => [
+ q(0095),
+ q(0),
+ ],
+ q(332) => [
+ q(0096),
+ q(0),
+ ],
+ q(334) => [
+ q(0097),
+ q(0),
+ ],
+ q(336) => [
+ q(0098),
+ q(0),
+ ],
+ q(340) => [
+ q(0099),
+ q(0),
+ ],
+ q(344) => [
+ q(0100),
+ q(0),
+ ],
+ q(348) => [
+ q(0101),
+ q(0),
+ ],
+ q(352) => [
+ q(0102),
+ q(0),
+ ],
+ q(356) => [
+ q(0103),
+ q(0),
+ ],
+ q(360) => [
+ q(0104),
+ q(0),
+ ],
+ q(364) => [
+ q(0105),
+ q(0),
+ ],
+ q(368) => [
+ q(0106),
+ q(0),
+ ],
+ q(372) => [
+ q(0107),
+ q(0),
+ ],
+ q(376) => [
+ q(0109),
+ q(0),
+ ],
+ q(380) => [
+ q(0110),
+ q(0),
+ ],
+ q(384) => [
+ q(0055),
+ q(0),
+ ],
+ q(388) => [
+ q(0111),
+ q(0),
+ ],
+ q(392) => [
+ q(0112),
+ q(0),
+ ],
+ q(398) => [
+ q(0115),
+ q(0),
+ ],
+ q(400) => [
+ q(0114),
+ q(0),
+ ],
+ q(404) => [
+ q(0116),
+ q(0),
+ ],
+ q(408) => [
+ q(0118),
+ q(7),
+ ],
+ q(410) => [
+ q(0119),
+ q(7),
+ ],
+ q(414) => [
+ q(0120),
+ q(0),
+ ],
+ q(417) => [
+ q(0121),
+ q(0),
+ ],
+ q(418) => [
+ q(0122),
+ q(4),
+ ],
+ q(422) => [
+ q(0124),
+ q(0),
+ ],
+ q(426) => [
+ q(0125),
+ q(0),
+ ],
+ q(428) => [
+ q(0123),
+ q(0),
+ ],
+ q(430) => [
+ q(0126),
+ q(0),
+ ],
+ q(434) => [
+ q(0127),
+ q(0),
+ ],
+ q(438) => [
+ q(0128),
+ q(0),
+ ],
+ q(440) => [
+ q(0129),
+ q(0),
+ ],
+ q(442) => [
+ q(0130),
+ q(0),
+ ],
+ q(446) => [
+ q(0131),
+ q(0),
+ ],
+ q(450) => [
+ q(0133),
+ q(0),
+ ],
+ q(454) => [
+ q(0134),
+ q(0),
+ ],
+ q(458) => [
+ q(0135),
+ q(0),
+ ],
+ q(462) => [
+ q(0136),
+ q(0),
+ ],
+ q(466) => [
+ q(0137),
+ q(0),
+ ],
+ q(470) => [
+ q(0138),
+ q(0),
+ ],
+ q(474) => [
+ q(0140),
+ q(0),
+ ],
+ q(478) => [
+ q(0141),
+ q(0),
+ ],
+ q(480) => [
+ q(0142),
+ q(0),
+ ],
+ q(484) => [
+ q(0144),
+ q(0),
+ ],
+ q(492) => [
+ q(0147),
+ q(0),
+ ],
+ q(496) => [
+ q(0148),
+ q(0),
+ ],
+ q(498) => [
+ q(0146),
+ q(6),
+ ],
+ q(499) => [
+ q(0149),
+ q(0),
+ ],
+ q(500) => [
+ q(0150),
+ q(0),
+ ],
+ q(504) => [
+ q(0151),
+ q(0),
+ ],
+ q(508) => [
+ q(0152),
+ q(0),
+ ],
+ q(512) => [
+ q(0167),
+ q(0),
+ ],
+ q(516) => [
+ q(0154),
+ q(0),
+ ],
+ q(520) => [
+ q(0155),
+ q(0),
+ ],
+ q(524) => [
+ q(0156),
+ q(0),
+ ],
+ q(528) => [
+ q(0157),
+ q(0),
+ ],
+ q(531) => [
+ q(0058),
+ q(0),
+ ],
+ q(533) => [
+ q(0013),
+ q(0),
+ ],
+ q(534) => [
+ q(0201),
+ q(1),
+ ],
+ q(535) => [
+ q(0028),
+ q(1),
+ ],
+ q(540) => [
+ q(0158),
+ q(0),
+ ],
+ q(548) => [
+ q(0240),
+ q(0),
+ ],
+ q(554) => [
+ q(0159),
+ q(0),
+ ],
+ q(558) => [
+ q(0160),
+ q(0),
+ ],
+ q(562) => [
+ q(0161),
+ q(0),
+ ],
+ q(566) => [
+ q(0162),
+ q(0),
+ ],
+ q(570) => [
+ q(0163),
+ q(0),
+ ],
+ q(574) => [
+ q(0164),
+ q(0),
+ ],
+ q(578) => [
+ q(0166),
+ q(0),
+ ],
+ q(580) => [
+ q(0165),
+ q(0),
+ ],
+ q(583) => [
+ q(0145),
+ q(0),
+ ],
+ q(584) => [
+ q(0139),
+ q(0),
+ ],
+ q(585) => [
+ q(0169),
+ q(0),
+ ],
+ q(586) => [
+ q(0168),
+ q(0),
+ ],
+ q(591) => [
+ q(0171),
+ q(0),
+ ],
+ q(598) => [
+ q(0172),
+ q(0),
+ ],
+ q(600) => [
+ q(0173),
+ q(0),
+ ],
+ q(604) => [
+ q(0174),
+ q(0),
+ ],
+ q(608) => [
+ q(0175),
+ q(0),
+ ],
+ q(612) => [
+ q(0176),
+ q(0),
+ ],
+ q(616) => [
+ q(0177),
+ q(0),
+ ],
+ q(620) => [
+ q(0178),
+ q(0),
+ ],
+ q(624) => [
+ q(0094),
+ q(0),
+ ],
+ q(626) => [
+ q(0222),
+ q(0),
+ ],
+ q(630) => [
+ q(0179),
+ q(0),
+ ],
+ q(634) => [
+ q(0180),
+ q(0),
+ ],
+ q(638) => [
+ q(0181),
+ q(0),
+ ],
+ q(642) => [
+ q(0182),
+ q(0),
+ ],
+ q(643) => [
+ q(0183),
+ q(4),
+ ],
+ q(646) => [
+ q(0184),
+ q(0),
+ ],
+ q(652) => [
+ q(0185),
+ q(0),
+ ],
+ q(654) => [
+ q(0186),
+ q(2),
+ ],
+ q(659) => [
+ q(0187),
+ q(0),
+ ],
+ q(660) => [
+ q(0008),
+ q(0),
+ ],
+ q(662) => [
+ q(0188),
+ q(0),
+ ],
+ q(663) => [
+ q(0189),
+ q(0),
+ ],
+ q(666) => [
+ q(0190),
+ q(0),
+ ],
+ q(670) => [
+ q(0191),
+ q(0),
+ ],
+ q(674) => [
+ q(0193),
+ q(0),
+ ],
+ q(678) => [
+ q(0194),
+ q(0),
+ ],
+ q(682) => [
+ q(0195),
+ q(0),
+ ],
+ q(686) => [
+ q(0196),
+ q(0),
+ ],
+ q(688) => [
+ q(0197),
+ q(0),
+ ],
+ q(690) => [
+ q(0198),
+ q(0),
+ ],
+ q(694) => [
+ q(0199),
+ q(0),
+ ],
+ q(702) => [
+ q(0200),
+ q(0),
+ ],
+ q(703) => [
+ q(0202),
+ q(0),
+ ],
+ q(704) => [
+ q(0242),
+ q(0),
+ ],
+ q(705) => [
+ q(0203),
+ q(0),
+ ],
+ q(706) => [
+ q(0205),
+ q(0),
+ ],
+ q(710) => [
+ q(0206),
+ q(0),
+ ],
+ q(716) => [
+ q(0249),
+ q(0),
+ ],
+ q(724) => [
+ q(0209),
+ q(0),
+ ],
+ q(728) => [
+ q(0208),
+ q(0),
+ ],
+ q(729) => [
+ q(0211),
+ q(0),
+ ],
+ q(732) => [
+ q(0246),
+ q(0),
+ ],
+ q(740) => [
+ q(0212),
+ q(0),
+ ],
+ q(748) => [
+ q(0214),
+ q(0),
+ ],
+ q(752) => [
+ q(0215),
+ q(0),
+ ],
+ q(756) => [
+ q(0216),
+ q(0),
+ ],
+ q(760) => [
+ q(0217),
+ q(0),
+ ],
+ q(762) => [
+ q(0219),
+ q(0),
+ ],
+ q(764) => [
+ q(0221),
+ q(0),
+ ],
+ q(768) => [
+ q(0223),
+ q(0),
+ ],
+ q(772) => [
+ q(0224),
+ q(0),
+ ],
+ q(776) => [
+ q(0225),
+ q(0),
+ ],
+ q(780) => [
+ q(0226),
+ q(0),
+ ],
+ q(784) => [
+ q(0234),
+ q(0),
+ ],
+ q(788) => [
+ q(0227),
+ q(0),
+ ],
+ q(792) => [
+ q(0228),
+ q(0),
+ ],
+ q(795) => [
+ q(0229),
+ q(0),
+ ],
+ q(796) => [
+ q(0230),
+ q(0),
+ ],
+ q(798) => [
+ q(0231),
+ q(0),
+ ],
+ q(800) => [
+ q(0232),
+ q(0),
+ ],
+ q(804) => [
+ q(0233),
+ q(0),
+ ],
+ q(807) => [
+ q(0132),
+ q(0),
+ ],
+ q(818) => [
+ q(0066),
+ q(0),
+ ],
+ q(826) => [
+ q(0235),
+ q(0),
+ ],
+ q(831) => [
+ q(0092),
+ q(0),
+ ],
+ q(832) => [
+ q(0113),
+ q(0),
+ ],
+ q(833) => [
+ q(0108),
+ q(0),
+ ],
+ q(834) => [
+ q(0220),
+ q(3),
+ ],
+ q(840) => [
+ q(0237),
+ q(0),
+ ],
+ q(850) => [
+ q(0244),
+ q(0),
+ ],
+ q(854) => [
+ q(0036),
+ q(0),
+ ],
+ q(858) => [
+ q(0238),
+ q(0),
+ ],
+ q(860) => [
+ q(0239),
+ q(0),
+ ],
+ q(862) => [
+ q(0241),
+ q(0),
+ ],
+ q(876) => [
+ q(0245),
+ q(0),
+ ],
+ q(882) => [
+ q(0192),
+ q(0),
+ ],
+ q(887) => [
+ q(0247),
+ q(0),
+ ],
+ q(894) => [
+ q(0248),
+ q(0),
+ ],
+ q(900) => [
+ q(0252),
+ q(0),
+ ],
+ q(901) => [
+ q(0272),
+ q(0),
+ ],
+ q(902) => [
+ q(0253),
+ q(0),
+ ],
+ q(903) => [
+ q(0254),
+ q(0),
+ ],
+ q(904) => [
+ q(0255),
+ q(0),
+ ],
+ q(905) => [
+ q(0256),
+ q(0),
+ ],
+ q(906) => [
+ q(0257),
+ q(0),
+ ],
+ q(907) => [
+ q(0258),
+ q(0),
+ ],
+ q(908) => [
+ q(0259),
+ q(0),
+ ],
+ q(909) => [
+ q(0260),
+ q(0),
+ ],
+ q(910) => [
+ q(0260),
+ q(1),
+ ],
+ q(911) => [
+ q(0260),
+ q(2),
+ ],
+ q(912) => [
+ q(0260),
+ q(3),
+ ],
+ q(913) => [
+ q(0260),
+ q(4),
+ ],
+ q(914) => [
+ q(0261),
+ q(0),
+ ],
+ q(915) => [
+ q(0262),
+ q(0),
+ ],
+ q(916) => [
+ q(0263),
+ q(0),
+ ],
+ q(917) => [
+ q(0264),
+ q(0),
+ ],
+ q(918) => [
+ q(0265),
+ q(0),
+ ],
+ q(919) => [
+ q(0266),
+ q(0),
+ ],
+ q(920) => [
+ q(0267),
+ q(0),
+ ],
+ q(921) => [
+ q(0268),
+ q(0),
+ ],
+ q(922) => [
+ q(0269),
+ q(0),
+ ],
+ q(923) => [
+ q(0270),
+ q(0),
+ ],
+ q(924) => [
+ q(0271),
+ q(0),
+ ],
+ q(925) => [
+ q(0273),
+ q(0),
+ ],
+ q(926) => [
+ q(0274),
+ q(0),
+ ],
+ q(927) => [
+ q(0275),
+ q(0),
+ ],
+ q(928) => [
+ q(0276),
+ q(0),
+ ],
+ q(929) => [
+ q(0277),
+ q(0),
+ ],
+ q(930) => [
+ q(0278),
+ q(0),
+ ],
+ q(931) => [
+ q(0279),
+ q(0),
+ ],
+ q(932) => [
+ q(0280),
+ q(0),
+ ],
+ q(933) => [
+ q(0281),
+ q(0),
+ ],
+ q(934) => [
+ q(0282),
+ q(0),
+ ],
+ },
q(numeric) => {
q(004) => [
q(0001),
@@ -6872,6 +10528,1634 @@ $Locale::Codes::Data{'country'}{'code2id'} = {
q(0),
],
},
+ q(un-alpha-3) => {
+ q(ABW) => [
+ q(0013),
+ q(0),
+ ],
+ q(AFG) => [
+ q(0001),
+ q(0),
+ ],
+ q(AGO) => [
+ q(0007),
+ q(0),
+ ],
+ q(AIA) => [
+ q(0008),
+ q(0),
+ ],
+ q(ALA) => [
+ q(0002),
+ q(0),
+ ],
+ q(ALB) => [
+ q(0003),
+ q(0),
+ ],
+ q(AND) => [
+ q(0006),
+ q(0),
+ ],
+ q(ARG) => [
+ q(0011),
+ q(0),
+ ],
+ q(ARM) => [
+ q(0012),
+ q(0),
+ ],
+ q(ASM) => [
+ q(0005),
+ q(0),
+ ],
+ q(ATG) => [
+ q(0010),
+ q(0),
+ ],
+ q(AUS) => [
+ q(0014),
+ q(0),
+ ],
+ q(AUT) => [
+ q(0015),
+ q(0),
+ ],
+ q(AZE) => [
+ q(0016),
+ q(0),
+ ],
+ q(BDI) => [
+ q(0037),
+ q(0),
+ ],
+ q(BEL) => [
+ q(0022),
+ q(0),
+ ],
+ q(BEN) => [
+ q(0024),
+ q(0),
+ ],
+ q(BES) => [
+ q(0028),
+ q(0),
+ ],
+ q(BFA) => [
+ q(0036),
+ q(0),
+ ],
+ q(BGD) => [
+ q(0019),
+ q(0),
+ ],
+ q(BGR) => [
+ q(0035),
+ q(0),
+ ],
+ q(BHR) => [
+ q(0018),
+ q(0),
+ ],
+ q(BHS) => [
+ q(0017),
+ q(0),
+ ],
+ q(BIH) => [
+ q(0029),
+ q(0),
+ ],
+ q(BLM) => [
+ q(0185),
+ q(0),
+ ],
+ q(BLR) => [
+ q(0021),
+ q(0),
+ ],
+ q(BLZ) => [
+ q(0023),
+ q(0),
+ ],
+ q(BMU) => [
+ q(0025),
+ q(0),
+ ],
+ q(BOL) => [
+ q(0027),
+ q(0),
+ ],
+ q(BRA) => [
+ q(0032),
+ q(0),
+ ],
+ q(BRB) => [
+ q(0020),
+ q(0),
+ ],
+ q(BRN) => [
+ q(0034),
+ q(0),
+ ],
+ q(BTN) => [
+ q(0026),
+ q(0),
+ ],
+ q(BWA) => [
+ q(0030),
+ q(0),
+ ],
+ q(CAF) => [
+ q(0043),
+ q(0),
+ ],
+ q(CAN) => [
+ q(0041),
+ q(0),
+ ],
+ q(CHL) => [
+ q(0045),
+ q(0),
+ ],
+ q(CHN) => [
+ q(0046),
+ q(0),
+ ],
+ q(CIV) => [
+ q(0055),
+ q(0),
+ ],
+ q(CMR) => [
+ q(0040),
+ q(0),
+ ],
+ q(COD) => [
+ q(0051),
+ q(0),
+ ],
+ q(COG) => [
+ q(0052),
+ q(0),
+ ],
+ q(COK) => [
+ q(0053),
+ q(0),
+ ],
+ q(COL) => [
+ q(0049),
+ q(0),
+ ],
+ q(COM) => [
+ q(0050),
+ q(0),
+ ],
+ q(CPV) => [
+ q(0038),
+ q(0),
+ ],
+ q(CRI) => [
+ q(0054),
+ q(0),
+ ],
+ q(CUB) => [
+ q(0057),
+ q(0),
+ ],
+ q(CUW) => [
+ q(0058),
+ q(0),
+ ],
+ q(CYM) => [
+ q(0042),
+ q(0),
+ ],
+ q(CYP) => [
+ q(0059),
+ q(0),
+ ],
+ q(CZE) => [
+ q(0060),
+ q(0),
+ ],
+ q(DEU) => [
+ q(0083),
+ q(0),
+ ],
+ q(DJI) => [
+ q(0062),
+ q(0),
+ ],
+ q(DMA) => [
+ q(0063),
+ q(0),
+ ],
+ q(DNK) => [
+ q(0061),
+ q(0),
+ ],
+ q(DOM) => [
+ q(0064),
+ q(0),
+ ],
+ q(DZA) => [
+ q(0004),
+ q(0),
+ ],
+ q(ECU) => [
+ q(0065),
+ q(0),
+ ],
+ q(EGY) => [
+ q(0066),
+ q(0),
+ ],
+ q(ERI) => [
+ q(0069),
+ q(0),
+ ],
+ q(ESP) => [
+ q(0209),
+ q(0),
+ ],
+ q(EST) => [
+ q(0070),
+ q(0),
+ ],
+ q(ETH) => [
+ q(0071),
+ q(0),
+ ],
+ q(FIN) => [
+ q(0075),
+ q(0),
+ ],
+ q(FJI) => [
+ q(0074),
+ q(0),
+ ],
+ q(FLK) => [
+ q(0072),
+ q(0),
+ ],
+ q(FRA) => [
+ q(0076),
+ q(0),
+ ],
+ q(FRO) => [
+ q(0073),
+ q(0),
+ ],
+ q(FSM) => [
+ q(0145),
+ q(0),
+ ],
+ q(GAB) => [
+ q(0080),
+ q(0),
+ ],
+ q(GEO) => [
+ q(0082),
+ q(0),
+ ],
+ q(GGY) => [
+ q(0092),
+ q(0),
+ ],
+ q(GHA) => [
+ q(0084),
+ q(0),
+ ],
+ q(GIB) => [
+ q(0085),
+ q(0),
+ ],
+ q(GIN) => [
+ q(0093),
+ q(0),
+ ],
+ q(GLP) => [
+ q(0089),
+ q(0),
+ ],
+ q(GMB) => [
+ q(0081),
+ q(0),
+ ],
+ q(GNB) => [
+ q(0094),
+ q(0),
+ ],
+ q(GNQ) => [
+ q(0068),
+ q(0),
+ ],
+ q(GRC) => [
+ q(0086),
+ q(0),
+ ],
+ q(GRD) => [
+ q(0088),
+ q(0),
+ ],
+ q(GRL) => [
+ q(0087),
+ q(0),
+ ],
+ q(GTM) => [
+ q(0091),
+ q(0),
+ ],
+ q(GUF) => [
+ q(0077),
+ q(0),
+ ],
+ q(GUM) => [
+ q(0090),
+ q(0),
+ ],
+ q(GUY) => [
+ q(0095),
+ q(0),
+ ],
+ q(HKG) => [
+ q(0100),
+ q(0),
+ ],
+ q(HND) => [
+ q(0099),
+ q(0),
+ ],
+ q(HRV) => [
+ q(0056),
+ q(0),
+ ],
+ q(HTI) => [
+ q(0096),
+ q(0),
+ ],
+ q(HUN) => [
+ q(0101),
+ q(0),
+ ],
+ q(IDN) => [
+ q(0104),
+ q(0),
+ ],
+ q(IMN) => [
+ q(0108),
+ q(0),
+ ],
+ q(IND) => [
+ q(0103),
+ q(0),
+ ],
+ q(IRL) => [
+ q(0107),
+ q(0),
+ ],
+ q(IRN) => [
+ q(0105),
+ q(0),
+ ],
+ q(IRQ) => [
+ q(0106),
+ q(0),
+ ],
+ q(ISL) => [
+ q(0102),
+ q(0),
+ ],
+ q(ISR) => [
+ q(0109),
+ q(0),
+ ],
+ q(ITA) => [
+ q(0110),
+ q(0),
+ ],
+ q(JAM) => [
+ q(0111),
+ q(0),
+ ],
+ q(JEY) => [
+ q(0113),
+ q(0),
+ ],
+ q(JOR) => [
+ q(0114),
+ q(0),
+ ],
+ q(JPN) => [
+ q(0112),
+ q(0),
+ ],
+ q(KAZ) => [
+ q(0115),
+ q(0),
+ ],
+ q(KEN) => [
+ q(0116),
+ q(0),
+ ],
+ q(KGZ) => [
+ q(0121),
+ q(0),
+ ],
+ q(KHM) => [
+ q(0039),
+ q(0),
+ ],
+ q(KIR) => [
+ q(0117),
+ q(0),
+ ],
+ q(KNA) => [
+ q(0187),
+ q(0),
+ ],
+ q(KOR) => [
+ q(0119),
+ q(0),
+ ],
+ q(KWT) => [
+ q(0120),
+ q(0),
+ ],
+ q(LAO) => [
+ q(0122),
+ q(0),
+ ],
+ q(LBN) => [
+ q(0124),
+ q(0),
+ ],
+ q(LBR) => [
+ q(0126),
+ q(0),
+ ],
+ q(LBY) => [
+ q(0127),
+ q(0),
+ ],
+ q(LCA) => [
+ q(0188),
+ q(0),
+ ],
+ q(LIE) => [
+ q(0128),
+ q(0),
+ ],
+ q(LKA) => [
+ q(0210),
+ q(0),
+ ],
+ q(LSO) => [
+ q(0125),
+ q(0),
+ ],
+ q(LTU) => [
+ q(0129),
+ q(0),
+ ],
+ q(LUX) => [
+ q(0130),
+ q(0),
+ ],
+ q(LVA) => [
+ q(0123),
+ q(0),
+ ],
+ q(MAC) => [
+ q(0131),
+ q(0),
+ ],
+ q(MAF) => [
+ q(0189),
+ q(0),
+ ],
+ q(MAR) => [
+ q(0151),
+ q(0),
+ ],
+ q(MCO) => [
+ q(0147),
+ q(0),
+ ],
+ q(MDA) => [
+ q(0146),
+ q(0),
+ ],
+ q(MDG) => [
+ q(0133),
+ q(0),
+ ],
+ q(MDV) => [
+ q(0136),
+ q(0),
+ ],
+ q(MEX) => [
+ q(0144),
+ q(0),
+ ],
+ q(MHL) => [
+ q(0139),
+ q(0),
+ ],
+ q(MLI) => [
+ q(0137),
+ q(0),
+ ],
+ q(MLT) => [
+ q(0138),
+ q(0),
+ ],
+ q(MMR) => [
+ q(0153),
+ q(0),
+ ],
+ q(MNE) => [
+ q(0149),
+ q(0),
+ ],
+ q(MNG) => [
+ q(0148),
+ q(0),
+ ],
+ q(MNP) => [
+ q(0165),
+ q(0),
+ ],
+ q(MOZ) => [
+ q(0152),
+ q(0),
+ ],
+ q(MRT) => [
+ q(0141),
+ q(0),
+ ],
+ q(MSR) => [
+ q(0150),
+ q(0),
+ ],
+ q(MTQ) => [
+ q(0140),
+ q(0),
+ ],
+ q(MUS) => [
+ q(0142),
+ q(0),
+ ],
+ q(MWI) => [
+ q(0134),
+ q(0),
+ ],
+ q(MYS) => [
+ q(0135),
+ q(0),
+ ],
+ q(MYT) => [
+ q(0143),
+ q(0),
+ ],
+ q(NAM) => [
+ q(0154),
+ q(0),
+ ],
+ q(NCL) => [
+ q(0158),
+ q(0),
+ ],
+ q(NER) => [
+ q(0161),
+ q(0),
+ ],
+ q(NFK) => [
+ q(0164),
+ q(0),
+ ],
+ q(NGA) => [
+ q(0162),
+ q(0),
+ ],
+ q(NIC) => [
+ q(0160),
+ q(0),
+ ],
+ q(NIU) => [
+ q(0163),
+ q(0),
+ ],
+ q(NLD) => [
+ q(0157),
+ q(0),
+ ],
+ q(NOR) => [
+ q(0166),
+ q(0),
+ ],
+ q(NPL) => [
+ q(0156),
+ q(0),
+ ],
+ q(NRU) => [
+ q(0155),
+ q(0),
+ ],
+ q(NZL) => [
+ q(0159),
+ q(0),
+ ],
+ q(OMN) => [
+ q(0167),
+ q(0),
+ ],
+ q(PAK) => [
+ q(0168),
+ q(0),
+ ],
+ q(PAN) => [
+ q(0171),
+ q(0),
+ ],
+ q(PCN) => [
+ q(0176),
+ q(0),
+ ],
+ q(PER) => [
+ q(0174),
+ q(0),
+ ],
+ q(PHL) => [
+ q(0175),
+ q(0),
+ ],
+ q(PLW) => [
+ q(0169),
+ q(0),
+ ],
+ q(PNG) => [
+ q(0172),
+ q(0),
+ ],
+ q(POL) => [
+ q(0177),
+ q(0),
+ ],
+ q(PRI) => [
+ q(0179),
+ q(0),
+ ],
+ q(PRK) => [
+ q(0118),
+ q(0),
+ ],
+ q(PRT) => [
+ q(0178),
+ q(0),
+ ],
+ q(PRY) => [
+ q(0173),
+ q(0),
+ ],
+ q(PSE) => [
+ q(0170),
+ q(0),
+ ],
+ q(PYF) => [
+ q(0078),
+ q(0),
+ ],
+ q(QAT) => [
+ q(0180),
+ q(0),
+ ],
+ q(REU) => [
+ q(0181),
+ q(0),
+ ],
+ q(ROU) => [
+ q(0182),
+ q(0),
+ ],
+ q(RUS) => [
+ q(0183),
+ q(0),
+ ],
+ q(RWA) => [
+ q(0184),
+ q(0),
+ ],
+ q(SAU) => [
+ q(0195),
+ q(0),
+ ],
+ q(SEN) => [
+ q(0196),
+ q(0),
+ ],
+ q(SGP) => [
+ q(0200),
+ q(0),
+ ],
+ q(SHN) => [
+ q(0186),
+ q(0),
+ ],
+ q(SLB) => [
+ q(0204),
+ q(0),
+ ],
+ q(SLE) => [
+ q(0199),
+ q(0),
+ ],
+ q(SLV) => [
+ q(0067),
+ q(0),
+ ],
+ q(SMR) => [
+ q(0193),
+ q(0),
+ ],
+ q(SOM) => [
+ q(0205),
+ q(0),
+ ],
+ q(SPM) => [
+ q(0190),
+ q(0),
+ ],
+ q(SRB) => [
+ q(0197),
+ q(0),
+ ],
+ q(SSD) => [
+ q(0208),
+ q(0),
+ ],
+ q(STP) => [
+ q(0194),
+ q(0),
+ ],
+ q(SVK) => [
+ q(0202),
+ q(0),
+ ],
+ q(SVN) => [
+ q(0203),
+ q(0),
+ ],
+ q(SXM) => [
+ q(0201),
+ q(0),
+ ],
+ q(SYC) => [
+ q(0198),
+ q(0),
+ ],
+ q(TCD) => [
+ q(0044),
+ q(0),
+ ],
+ q(VAT) => [
+ q(0098),
+ q(0),
+ ],
+ q(VCT) => [
+ q(0191),
+ q(0),
+ ],
+ q(VGB) => [
+ q(0243),
+ q(0),
+ ],
+ q(WSM) => [
+ q(0192),
+ q(0),
+ ],
+ q(ZAF) => [
+ q(0206),
+ q(0),
+ ],
+ },
+ q(un-numeric) => {
+ q(004) => [
+ q(0001),
+ q(0),
+ ],
+ q(008) => [
+ q(0003),
+ q(0),
+ ],
+ q(012) => [
+ q(0004),
+ q(0),
+ ],
+ q(016) => [
+ q(0005),
+ q(0),
+ ],
+ q(020) => [
+ q(0006),
+ q(0),
+ ],
+ q(024) => [
+ q(0007),
+ q(0),
+ ],
+ q(028) => [
+ q(0010),
+ q(0),
+ ],
+ q(031) => [
+ q(0016),
+ q(0),
+ ],
+ q(032) => [
+ q(0011),
+ q(0),
+ ],
+ q(036) => [
+ q(0014),
+ q(0),
+ ],
+ q(040) => [
+ q(0015),
+ q(0),
+ ],
+ q(044) => [
+ q(0017),
+ q(0),
+ ],
+ q(048) => [
+ q(0018),
+ q(0),
+ ],
+ q(050) => [
+ q(0019),
+ q(0),
+ ],
+ q(051) => [
+ q(0012),
+ q(0),
+ ],
+ q(052) => [
+ q(0020),
+ q(0),
+ ],
+ q(056) => [
+ q(0022),
+ q(0),
+ ],
+ q(060) => [
+ q(0025),
+ q(0),
+ ],
+ q(064) => [
+ q(0026),
+ q(0),
+ ],
+ q(068) => [
+ q(0027),
+ q(0),
+ ],
+ q(070) => [
+ q(0029),
+ q(0),
+ ],
+ q(072) => [
+ q(0030),
+ q(0),
+ ],
+ q(076) => [
+ q(0032),
+ q(0),
+ ],
+ q(084) => [
+ q(0023),
+ q(0),
+ ],
+ q(090) => [
+ q(0204),
+ q(0),
+ ],
+ q(092) => [
+ q(0243),
+ q(0),
+ ],
+ q(096) => [
+ q(0034),
+ q(0),
+ ],
+ q(100) => [
+ q(0035),
+ q(0),
+ ],
+ q(104) => [
+ q(0153),
+ q(0),
+ ],
+ q(108) => [
+ q(0037),
+ q(0),
+ ],
+ q(112) => [
+ q(0021),
+ q(0),
+ ],
+ q(116) => [
+ q(0039),
+ q(0),
+ ],
+ q(120) => [
+ q(0040),
+ q(0),
+ ],
+ q(124) => [
+ q(0041),
+ q(0),
+ ],
+ q(132) => [
+ q(0038),
+ q(0),
+ ],
+ q(136) => [
+ q(0042),
+ q(0),
+ ],
+ q(140) => [
+ q(0043),
+ q(0),
+ ],
+ q(144) => [
+ q(0210),
+ q(0),
+ ],
+ q(148) => [
+ q(0044),
+ q(0),
+ ],
+ q(152) => [
+ q(0045),
+ q(0),
+ ],
+ q(156) => [
+ q(0046),
+ q(0),
+ ],
+ q(170) => [
+ q(0049),
+ q(0),
+ ],
+ q(174) => [
+ q(0050),
+ q(0),
+ ],
+ q(175) => [
+ q(0143),
+ q(0),
+ ],
+ q(178) => [
+ q(0052),
+ q(0),
+ ],
+ q(180) => [
+ q(0051),
+ q(0),
+ ],
+ q(184) => [
+ q(0053),
+ q(0),
+ ],
+ q(188) => [
+ q(0054),
+ q(0),
+ ],
+ q(191) => [
+ q(0056),
+ q(0),
+ ],
+ q(192) => [
+ q(0057),
+ q(0),
+ ],
+ q(196) => [
+ q(0059),
+ q(0),
+ ],
+ q(203) => [
+ q(0060),
+ q(0),
+ ],
+ q(204) => [
+ q(0024),
+ q(0),
+ ],
+ q(208) => [
+ q(0061),
+ q(0),
+ ],
+ q(212) => [
+ q(0063),
+ q(0),
+ ],
+ q(214) => [
+ q(0064),
+ q(0),
+ ],
+ q(218) => [
+ q(0065),
+ q(0),
+ ],
+ q(222) => [
+ q(0067),
+ q(0),
+ ],
+ q(226) => [
+ q(0068),
+ q(0),
+ ],
+ q(231) => [
+ q(0071),
+ q(0),
+ ],
+ q(232) => [
+ q(0069),
+ q(0),
+ ],
+ q(233) => [
+ q(0070),
+ q(0),
+ ],
+ q(234) => [
+ q(0073),
+ q(0),
+ ],
+ q(238) => [
+ q(0072),
+ q(0),
+ ],
+ q(242) => [
+ q(0074),
+ q(0),
+ ],
+ q(246) => [
+ q(0075),
+ q(0),
+ ],
+ q(248) => [
+ q(0002),
+ q(0),
+ ],
+ q(250) => [
+ q(0076),
+ q(0),
+ ],
+ q(254) => [
+ q(0077),
+ q(0),
+ ],
+ q(258) => [
+ q(0078),
+ q(0),
+ ],
+ q(262) => [
+ q(0062),
+ q(0),
+ ],
+ q(266) => [
+ q(0080),
+ q(0),
+ ],
+ q(268) => [
+ q(0082),
+ q(0),
+ ],
+ q(270) => [
+ q(0081),
+ q(0),
+ ],
+ q(275) => [
+ q(0170),
+ q(0),
+ ],
+ q(276) => [
+ q(0083),
+ q(0),
+ ],
+ q(288) => [
+ q(0084),
+ q(0),
+ ],
+ q(292) => [
+ q(0085),
+ q(0),
+ ],
+ q(296) => [
+ q(0117),
+ q(0),
+ ],
+ q(300) => [
+ q(0086),
+ q(0),
+ ],
+ q(304) => [
+ q(0087),
+ q(0),
+ ],
+ q(308) => [
+ q(0088),
+ q(0),
+ ],
+ q(312) => [
+ q(0089),
+ q(0),
+ ],
+ q(316) => [
+ q(0090),
+ q(0),
+ ],
+ q(320) => [
+ q(0091),
+ q(0),
+ ],
+ q(324) => [
+ q(0093),
+ q(0),
+ ],
+ q(328) => [
+ q(0095),
+ q(0),
+ ],
+ q(332) => [
+ q(0096),
+ q(0),
+ ],
+ q(336) => [
+ q(0098),
+ q(0),
+ ],
+ q(340) => [
+ q(0099),
+ q(0),
+ ],
+ q(344) => [
+ q(0100),
+ q(0),
+ ],
+ q(348) => [
+ q(0101),
+ q(0),
+ ],
+ q(352) => [
+ q(0102),
+ q(0),
+ ],
+ q(356) => [
+ q(0103),
+ q(0),
+ ],
+ q(360) => [
+ q(0104),
+ q(0),
+ ],
+ q(364) => [
+ q(0105),
+ q(0),
+ ],
+ q(368) => [
+ q(0106),
+ q(0),
+ ],
+ q(372) => [
+ q(0107),
+ q(0),
+ ],
+ q(376) => [
+ q(0109),
+ q(0),
+ ],
+ q(380) => [
+ q(0110),
+ q(0),
+ ],
+ q(384) => [
+ q(0055),
+ q(0),
+ ],
+ q(388) => [
+ q(0111),
+ q(0),
+ ],
+ q(392) => [
+ q(0112),
+ q(0),
+ ],
+ q(398) => [
+ q(0115),
+ q(0),
+ ],
+ q(400) => [
+ q(0114),
+ q(0),
+ ],
+ q(404) => [
+ q(0116),
+ q(0),
+ ],
+ q(408) => [
+ q(0118),
+ q(0),
+ ],
+ q(410) => [
+ q(0119),
+ q(0),
+ ],
+ q(414) => [
+ q(0120),
+ q(0),
+ ],
+ q(417) => [
+ q(0121),
+ q(0),
+ ],
+ q(418) => [
+ q(0122),
+ q(0),
+ ],
+ q(422) => [
+ q(0124),
+ q(0),
+ ],
+ q(426) => [
+ q(0125),
+ q(0),
+ ],
+ q(428) => [
+ q(0123),
+ q(0),
+ ],
+ q(430) => [
+ q(0126),
+ q(0),
+ ],
+ q(434) => [
+ q(0127),
+ q(0),
+ ],
+ q(438) => [
+ q(0128),
+ q(0),
+ ],
+ q(440) => [
+ q(0129),
+ q(0),
+ ],
+ q(442) => [
+ q(0130),
+ q(0),
+ ],
+ q(446) => [
+ q(0131),
+ q(0),
+ ],
+ q(450) => [
+ q(0133),
+ q(0),
+ ],
+ q(454) => [
+ q(0134),
+ q(0),
+ ],
+ q(458) => [
+ q(0135),
+ q(0),
+ ],
+ q(462) => [
+ q(0136),
+ q(0),
+ ],
+ q(466) => [
+ q(0137),
+ q(0),
+ ],
+ q(470) => [
+ q(0138),
+ q(0),
+ ],
+ q(474) => [
+ q(0140),
+ q(0),
+ ],
+ q(478) => [
+ q(0141),
+ q(0),
+ ],
+ q(480) => [
+ q(0142),
+ q(0),
+ ],
+ q(484) => [
+ q(0144),
+ q(0),
+ ],
+ q(492) => [
+ q(0147),
+ q(0),
+ ],
+ q(496) => [
+ q(0148),
+ q(0),
+ ],
+ q(498) => [
+ q(0146),
+ q(0),
+ ],
+ q(499) => [
+ q(0149),
+ q(0),
+ ],
+ q(500) => [
+ q(0150),
+ q(0),
+ ],
+ q(504) => [
+ q(0151),
+ q(0),
+ ],
+ q(508) => [
+ q(0152),
+ q(0),
+ ],
+ q(512) => [
+ q(0167),
+ q(0),
+ ],
+ q(516) => [
+ q(0154),
+ q(0),
+ ],
+ q(520) => [
+ q(0155),
+ q(0),
+ ],
+ q(524) => [
+ q(0156),
+ q(0),
+ ],
+ q(528) => [
+ q(0157),
+ q(0),
+ ],
+ q(531) => [
+ q(0058),
+ q(0),
+ ],
+ q(533) => [
+ q(0013),
+ q(0),
+ ],
+ q(534) => [
+ q(0201),
+ q(0),
+ ],
+ q(535) => [
+ q(0028),
+ q(0),
+ ],
+ q(540) => [
+ q(0158),
+ q(0),
+ ],
+ q(554) => [
+ q(0159),
+ q(0),
+ ],
+ q(558) => [
+ q(0160),
+ q(0),
+ ],
+ q(562) => [
+ q(0161),
+ q(0),
+ ],
+ q(566) => [
+ q(0162),
+ q(0),
+ ],
+ q(570) => [
+ q(0163),
+ q(0),
+ ],
+ q(574) => [
+ q(0164),
+ q(0),
+ ],
+ q(578) => [
+ q(0166),
+ q(0),
+ ],
+ q(580) => [
+ q(0165),
+ q(0),
+ ],
+ q(583) => [
+ q(0145),
+ q(0),
+ ],
+ q(584) => [
+ q(0139),
+ q(0),
+ ],
+ q(585) => [
+ q(0169),
+ q(0),
+ ],
+ q(586) => [
+ q(0168),
+ q(0),
+ ],
+ q(591) => [
+ q(0171),
+ q(0),
+ ],
+ q(598) => [
+ q(0172),
+ q(0),
+ ],
+ q(600) => [
+ q(0173),
+ q(0),
+ ],
+ q(604) => [
+ q(0174),
+ q(0),
+ ],
+ q(608) => [
+ q(0175),
+ q(0),
+ ],
+ q(612) => [
+ q(0176),
+ q(0),
+ ],
+ q(616) => [
+ q(0177),
+ q(0),
+ ],
+ q(620) => [
+ q(0178),
+ q(0),
+ ],
+ q(624) => [
+ q(0094),
+ q(0),
+ ],
+ q(630) => [
+ q(0179),
+ q(0),
+ ],
+ q(634) => [
+ q(0180),
+ q(0),
+ ],
+ q(638) => [
+ q(0181),
+ q(0),
+ ],
+ q(642) => [
+ q(0182),
+ q(0),
+ ],
+ q(643) => [
+ q(0183),
+ q(0),
+ ],
+ q(646) => [
+ q(0184),
+ q(0),
+ ],
+ q(652) => [
+ q(0185),
+ q(0),
+ ],
+ q(654) => [
+ q(0186),
+ q(0),
+ ],
+ q(659) => [
+ q(0187),
+ q(0),
+ ],
+ q(660) => [
+ q(0008),
+ q(0),
+ ],
+ q(662) => [
+ q(0188),
+ q(0),
+ ],
+ q(663) => [
+ q(0189),
+ q(0),
+ ],
+ q(666) => [
+ q(0190),
+ q(0),
+ ],
+ q(670) => [
+ q(0191),
+ q(0),
+ ],
+ q(674) => [
+ q(0193),
+ q(0),
+ ],
+ q(678) => [
+ q(0194),
+ q(0),
+ ],
+ q(680) => [
+ q(0251),
+ q(0),
+ ],
+ q(682) => [
+ q(0195),
+ q(0),
+ ],
+ q(686) => [
+ q(0196),
+ q(0),
+ ],
+ q(688) => [
+ q(0197),
+ q(0),
+ ],
+ q(690) => [
+ q(0198),
+ q(0),
+ ],
+ q(694) => [
+ q(0199),
+ q(0),
+ ],
+ q(702) => [
+ q(0200),
+ q(0),
+ ],
+ q(703) => [
+ q(0202),
+ q(0),
+ ],
+ q(705) => [
+ q(0203),
+ q(0),
+ ],
+ q(706) => [
+ q(0205),
+ q(0),
+ ],
+ q(710) => [
+ q(0206),
+ q(0),
+ ],
+ q(724) => [
+ q(0209),
+ q(0),
+ ],
+ q(728) => [
+ q(0208),
+ q(0),
+ ],
+ q(818) => [
+ q(0066),
+ q(0),
+ ],
+ q(830) => [
+ q(0250),
+ q(0),
+ ],
+ q(831) => [
+ q(0092),
+ q(0),
+ ],
+ q(832) => [
+ q(0113),
+ q(0),
+ ],
+ q(833) => [
+ q(0108),
+ q(0),
+ ],
+ q(854) => [
+ q(0036),
+ q(0),
+ ],
+ q(882) => [
+ q(0192),
+ q(0),
+ ],
+ },
};
$Locale::Codes::Data{'country'}{'id2code'} = {
@@ -7628,6 +12912,840 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0248) => q(zm),
q(0249) => q(zw),
},
+ q(genc-alpha-2) => {
+ q(0001) => q(AF),
+ q(0003) => q(AL),
+ q(0004) => q(DZ),
+ q(0005) => q(AS),
+ q(0006) => q(AD),
+ q(0007) => q(AO),
+ q(0008) => q(AI),
+ q(0009) => q(AQ),
+ q(0010) => q(AG),
+ q(0011) => q(AR),
+ q(0012) => q(AM),
+ q(0013) => q(AW),
+ q(0014) => q(AU),
+ q(0015) => q(AT),
+ q(0016) => q(AZ),
+ q(0017) => q(BS),
+ q(0018) => q(BH),
+ q(0019) => q(BD),
+ q(0020) => q(BB),
+ q(0021) => q(BY),
+ q(0022) => q(BE),
+ q(0023) => q(BZ),
+ q(0024) => q(BJ),
+ q(0025) => q(BM),
+ q(0026) => q(BT),
+ q(0027) => q(BO),
+ q(0028) => q(BQ),
+ q(0029) => q(BA),
+ q(0030) => q(BW),
+ q(0031) => q(BV),
+ q(0032) => q(BR),
+ q(0033) => q(IO),
+ q(0034) => q(BN),
+ q(0035) => q(BG),
+ q(0036) => q(BF),
+ q(0037) => q(BI),
+ q(0038) => q(CV),
+ q(0039) => q(KH),
+ q(0040) => q(CM),
+ q(0041) => q(CA),
+ q(0042) => q(KY),
+ q(0043) => q(CF),
+ q(0044) => q(TD),
+ q(0045) => q(CL),
+ q(0046) => q(CN),
+ q(0047) => q(CX),
+ q(0048) => q(CC),
+ q(0049) => q(CO),
+ q(0050) => q(KM),
+ q(0051) => q(CD),
+ q(0052) => q(CG),
+ q(0053) => q(CK),
+ q(0054) => q(CR),
+ q(0055) => q(CI),
+ q(0056) => q(HR),
+ q(0057) => q(CU),
+ q(0058) => q(CW),
+ q(0059) => q(CY),
+ q(0060) => q(CZ),
+ q(0061) => q(DK),
+ q(0062) => q(DJ),
+ q(0063) => q(DM),
+ q(0064) => q(DO),
+ q(0065) => q(EC),
+ q(0066) => q(EG),
+ q(0067) => q(SV),
+ q(0068) => q(GQ),
+ q(0069) => q(ER),
+ q(0070) => q(EE),
+ q(0071) => q(ET),
+ q(0072) => q(FK),
+ q(0073) => q(FO),
+ q(0074) => q(FJ),
+ q(0075) => q(FI),
+ q(0076) => q(FR),
+ q(0077) => q(GF),
+ q(0078) => q(PF),
+ q(0079) => q(TF),
+ q(0080) => q(GA),
+ q(0081) => q(GM),
+ q(0082) => q(GE),
+ q(0083) => q(DE),
+ q(0084) => q(GH),
+ q(0085) => q(GI),
+ q(0086) => q(GR),
+ q(0087) => q(GL),
+ q(0088) => q(GD),
+ q(0089) => q(GP),
+ q(0090) => q(GU),
+ q(0091) => q(GT),
+ q(0092) => q(GG),
+ q(0093) => q(GN),
+ q(0094) => q(GW),
+ q(0095) => q(GY),
+ q(0096) => q(HT),
+ q(0097) => q(HM),
+ q(0098) => q(VA),
+ q(0099) => q(HN),
+ q(0100) => q(HK),
+ q(0101) => q(HU),
+ q(0102) => q(IS),
+ q(0103) => q(IN),
+ q(0104) => q(ID),
+ q(0105) => q(IR),
+ q(0106) => q(IQ),
+ q(0107) => q(IE),
+ q(0108) => q(IM),
+ q(0109) => q(IL),
+ q(0110) => q(IT),
+ q(0111) => q(JM),
+ q(0112) => q(JP),
+ q(0113) => q(JE),
+ q(0114) => q(JO),
+ q(0115) => q(KZ),
+ q(0116) => q(KE),
+ q(0117) => q(KI),
+ q(0118) => q(KP),
+ q(0119) => q(KR),
+ q(0120) => q(KW),
+ q(0121) => q(KG),
+ q(0122) => q(LA),
+ q(0123) => q(LV),
+ q(0124) => q(LB),
+ q(0125) => q(LS),
+ q(0126) => q(LR),
+ q(0127) => q(LY),
+ q(0128) => q(LI),
+ q(0129) => q(LT),
+ q(0130) => q(LU),
+ q(0131) => q(MO),
+ q(0132) => q(MK),
+ q(0133) => q(MG),
+ q(0134) => q(MW),
+ q(0135) => q(MY),
+ q(0136) => q(MV),
+ q(0137) => q(ML),
+ q(0138) => q(MT),
+ q(0139) => q(MH),
+ q(0140) => q(MQ),
+ q(0141) => q(MR),
+ q(0142) => q(MU),
+ q(0143) => q(YT),
+ q(0144) => q(MX),
+ q(0145) => q(FM),
+ q(0146) => q(MD),
+ q(0147) => q(MC),
+ q(0148) => q(MN),
+ q(0149) => q(ME),
+ q(0150) => q(MS),
+ q(0151) => q(MA),
+ q(0152) => q(MZ),
+ q(0153) => q(MM),
+ q(0154) => q(NA),
+ q(0155) => q(NR),
+ q(0156) => q(NP),
+ q(0157) => q(NL),
+ q(0158) => q(NC),
+ q(0159) => q(NZ),
+ q(0160) => q(NI),
+ q(0161) => q(NE),
+ q(0162) => q(NG),
+ q(0163) => q(NU),
+ q(0164) => q(NF),
+ q(0165) => q(MP),
+ q(0166) => q(NO),
+ q(0167) => q(OM),
+ q(0168) => q(PK),
+ q(0169) => q(PW),
+ q(0171) => q(PA),
+ q(0172) => q(PG),
+ q(0173) => q(PY),
+ q(0174) => q(PE),
+ q(0175) => q(PH),
+ q(0176) => q(PN),
+ q(0177) => q(PL),
+ q(0178) => q(PT),
+ q(0179) => q(PR),
+ q(0180) => q(QA),
+ q(0181) => q(RE),
+ q(0182) => q(RO),
+ q(0183) => q(RU),
+ q(0184) => q(RW),
+ q(0185) => q(BL),
+ q(0186) => q(SH),
+ q(0187) => q(KN),
+ q(0188) => q(LC),
+ q(0189) => q(MF),
+ q(0190) => q(PM),
+ q(0191) => q(VC),
+ q(0192) => q(WS),
+ q(0193) => q(SM),
+ q(0194) => q(ST),
+ q(0195) => q(SA),
+ q(0196) => q(SN),
+ q(0197) => q(RS),
+ q(0198) => q(SC),
+ q(0199) => q(SL),
+ q(0200) => q(SG),
+ q(0201) => q(SX),
+ q(0202) => q(SK),
+ q(0203) => q(SI),
+ q(0204) => q(SB),
+ q(0205) => q(SO),
+ q(0206) => q(ZA),
+ q(0207) => q(GS),
+ q(0208) => q(SS),
+ q(0209) => q(ES),
+ q(0210) => q(LK),
+ q(0211) => q(SD),
+ q(0212) => q(SR),
+ q(0214) => q(SZ),
+ q(0215) => q(SE),
+ q(0216) => q(CH),
+ q(0217) => q(SY),
+ q(0218) => q(TW),
+ q(0219) => q(TJ),
+ q(0220) => q(TZ),
+ q(0221) => q(TH),
+ q(0222) => q(TL),
+ q(0223) => q(TG),
+ q(0224) => q(TK),
+ q(0225) => q(TO),
+ q(0226) => q(TT),
+ q(0227) => q(TN),
+ q(0228) => q(TR),
+ q(0229) => q(TM),
+ q(0230) => q(TC),
+ q(0231) => q(TV),
+ q(0232) => q(UG),
+ q(0233) => q(UA),
+ q(0234) => q(AE),
+ q(0235) => q(GB),
+ q(0237) => q(US),
+ q(0238) => q(UY),
+ q(0239) => q(UZ),
+ q(0240) => q(VU),
+ q(0241) => q(VE),
+ q(0242) => q(VN),
+ q(0243) => q(VG),
+ q(0244) => q(VI),
+ q(0245) => q(WF),
+ q(0246) => q(EH),
+ q(0247) => q(YE),
+ q(0248) => q(ZM),
+ q(0249) => q(ZW),
+ q(0252) => q(QZ),
+ q(0253) => q(XA),
+ q(0254) => q(XB),
+ q(0255) => q(QS),
+ q(0256) => q(CP),
+ q(0257) => q(XC),
+ q(0258) => q(XD),
+ q(0259) => q(DG),
+ q(0260) => q([None Assigned]),
+ q(0261) => q(A3),
+ q(0262) => q(XE),
+ q(0263) => q(XG),
+ q(0264) => q(QX),
+ q(0265) => q(A2),
+ q(0266) => q(XH),
+ q(0267) => q(XJ),
+ q(0268) => q(XQ),
+ q(0269) => q(XU),
+ q(0270) => q(QU),
+ q(0271) => q(XM),
+ q(0272) => q(XK),
+ q(0273) => q(QM),
+ q(0274) => q(XV),
+ q(0275) => q(XL),
+ q(0276) => q(XP),
+ q(0277) => q(XS),
+ q(0278) => q(XR),
+ q(0279) => q(XT),
+ q(0280) => q(A1),
+ q(0281) => q(QW),
+ q(0282) => q(XW),
+ },
+ q(genc-alpha-3) => {
+ q(0001) => q(AFG),
+ q(0003) => q(ALB),
+ q(0004) => q(DZA),
+ q(0005) => q(ASM),
+ q(0006) => q(AND),
+ q(0007) => q(AGO),
+ q(0008) => q(AIA),
+ q(0009) => q(ATA),
+ q(0010) => q(ATG),
+ q(0011) => q(ARG),
+ q(0012) => q(ARM),
+ q(0013) => q(ABW),
+ q(0014) => q(AUS),
+ q(0015) => q(AUT),
+ q(0016) => q(AZE),
+ q(0017) => q(BHS),
+ q(0018) => q(BHR),
+ q(0019) => q(BGD),
+ q(0020) => q(BRB),
+ q(0021) => q(BLR),
+ q(0022) => q(BEL),
+ q(0023) => q(BLZ),
+ q(0024) => q(BEN),
+ q(0025) => q(BMU),
+ q(0026) => q(BTN),
+ q(0027) => q(BOL),
+ q(0028) => q(BES),
+ q(0029) => q(BIH),
+ q(0030) => q(BWA),
+ q(0031) => q(BVT),
+ q(0032) => q(BRA),
+ q(0033) => q(IOT),
+ q(0034) => q(BRN),
+ q(0035) => q(BGR),
+ q(0036) => q(BFA),
+ q(0037) => q(BDI),
+ q(0038) => q(CPV),
+ q(0039) => q(KHM),
+ q(0040) => q(CMR),
+ q(0041) => q(CAN),
+ q(0042) => q(CYM),
+ q(0043) => q(CAF),
+ q(0044) => q(TCD),
+ q(0045) => q(CHL),
+ q(0046) => q(CHN),
+ q(0047) => q(CXR),
+ q(0048) => q(CCK),
+ q(0049) => q(COL),
+ q(0050) => q(COM),
+ q(0051) => q(COD),
+ q(0052) => q(COG),
+ q(0053) => q(COK),
+ q(0054) => q(CRI),
+ q(0055) => q(CIV),
+ q(0056) => q(HRV),
+ q(0057) => q(CUB),
+ q(0058) => q(CUW),
+ q(0059) => q(CYP),
+ q(0060) => q(CZE),
+ q(0061) => q(DNK),
+ q(0062) => q(DJI),
+ q(0063) => q(DMA),
+ q(0064) => q(DOM),
+ q(0065) => q(ECU),
+ q(0066) => q(EGY),
+ q(0067) => q(SLV),
+ q(0068) => q(GNQ),
+ q(0069) => q(ERI),
+ q(0070) => q(EST),
+ q(0071) => q(ETH),
+ q(0072) => q(FLK),
+ q(0073) => q(FRO),
+ q(0074) => q(FJI),
+ q(0075) => q(FIN),
+ q(0076) => q(FRA),
+ q(0077) => q(GUF),
+ q(0078) => q(PYF),
+ q(0079) => q(ATF),
+ q(0080) => q(GAB),
+ q(0081) => q(GMB),
+ q(0082) => q(GEO),
+ q(0083) => q(DEU),
+ q(0084) => q(GHA),
+ q(0085) => q(GIB),
+ q(0086) => q(GRC),
+ q(0087) => q(GRL),
+ q(0088) => q(GRD),
+ q(0089) => q(GLP),
+ q(0090) => q(GUM),
+ q(0091) => q(GTM),
+ q(0092) => q(GGY),
+ q(0093) => q(GIN),
+ q(0094) => q(GNB),
+ q(0095) => q(GUY),
+ q(0096) => q(HTI),
+ q(0097) => q(HMD),
+ q(0098) => q(VAT),
+ q(0099) => q(HND),
+ q(0100) => q(HKG),
+ q(0101) => q(HUN),
+ q(0102) => q(ISL),
+ q(0103) => q(IND),
+ q(0104) => q(IDN),
+ q(0105) => q(IRN),
+ q(0106) => q(IRQ),
+ q(0107) => q(IRL),
+ q(0108) => q(IMN),
+ q(0109) => q(ISR),
+ q(0110) => q(ITA),
+ q(0111) => q(JAM),
+ q(0112) => q(JPN),
+ q(0113) => q(JEY),
+ q(0114) => q(JOR),
+ q(0115) => q(KAZ),
+ q(0116) => q(KEN),
+ q(0117) => q(KIR),
+ q(0118) => q(PRK),
+ q(0119) => q(KOR),
+ q(0120) => q(KWT),
+ q(0121) => q(KGZ),
+ q(0122) => q(LAO),
+ q(0123) => q(LVA),
+ q(0124) => q(LBN),
+ q(0125) => q(LSO),
+ q(0126) => q(LBR),
+ q(0127) => q(LBY),
+ q(0128) => q(LIE),
+ q(0129) => q(LTU),
+ q(0130) => q(LUX),
+ q(0131) => q(MAC),
+ q(0132) => q(MKD),
+ q(0133) => q(MDG),
+ q(0134) => q(MWI),
+ q(0135) => q(MYS),
+ q(0136) => q(MDV),
+ q(0137) => q(MLI),
+ q(0138) => q(MLT),
+ q(0139) => q(MHL),
+ q(0140) => q(MTQ),
+ q(0141) => q(MRT),
+ q(0142) => q(MUS),
+ q(0143) => q(MYT),
+ q(0144) => q(MEX),
+ q(0145) => q(FSM),
+ q(0146) => q(MDA),
+ q(0147) => q(MCO),
+ q(0148) => q(MNG),
+ q(0149) => q(MNE),
+ q(0150) => q(MSR),
+ q(0151) => q(MAR),
+ q(0152) => q(MOZ),
+ q(0153) => q(MMR),
+ q(0154) => q(NAM),
+ q(0155) => q(NRU),
+ q(0156) => q(NPL),
+ q(0157) => q(NLD),
+ q(0158) => q(NCL),
+ q(0159) => q(NZL),
+ q(0160) => q(NIC),
+ q(0161) => q(NER),
+ q(0162) => q(NGA),
+ q(0163) => q(NIU),
+ q(0164) => q(NFK),
+ q(0165) => q(MNP),
+ q(0166) => q(NOR),
+ q(0167) => q(OMN),
+ q(0168) => q(PAK),
+ q(0169) => q(PLW),
+ q(0171) => q(PAN),
+ q(0172) => q(PNG),
+ q(0173) => q(PRY),
+ q(0174) => q(PER),
+ q(0175) => q(PHL),
+ q(0176) => q(PCN),
+ q(0177) => q(POL),
+ q(0178) => q(PRT),
+ q(0179) => q(PRI),
+ q(0180) => q(QAT),
+ q(0181) => q(REU),
+ q(0182) => q(ROU),
+ q(0183) => q(RUS),
+ q(0184) => q(RWA),
+ q(0185) => q(BLM),
+ q(0186) => q(SHN),
+ q(0187) => q(KNA),
+ q(0188) => q(LCA),
+ q(0189) => q(MAF),
+ q(0190) => q(SPM),
+ q(0191) => q(VCT),
+ q(0192) => q(WSM),
+ q(0193) => q(SMR),
+ q(0194) => q(STP),
+ q(0195) => q(SAU),
+ q(0196) => q(SEN),
+ q(0197) => q(SRB),
+ q(0198) => q(SYC),
+ q(0199) => q(SLE),
+ q(0200) => q(SGP),
+ q(0201) => q(SXM),
+ q(0202) => q(SVK),
+ q(0203) => q(SVN),
+ q(0204) => q(SLB),
+ q(0205) => q(SOM),
+ q(0206) => q(ZAF),
+ q(0207) => q(SGS),
+ q(0208) => q(SSD),
+ q(0209) => q(ESP),
+ q(0210) => q(LKA),
+ q(0211) => q(SDN),
+ q(0212) => q(SUR),
+ q(0214) => q(SWZ),
+ q(0215) => q(SWE),
+ q(0216) => q(CHE),
+ q(0217) => q(SYR),
+ q(0218) => q(TWN),
+ q(0219) => q(TJK),
+ q(0220) => q(TZA),
+ q(0221) => q(THA),
+ q(0222) => q(TLS),
+ q(0223) => q(TGO),
+ q(0224) => q(TKL),
+ q(0225) => q(TON),
+ q(0226) => q(TTO),
+ q(0227) => q(TUN),
+ q(0228) => q(TUR),
+ q(0229) => q(TKM),
+ q(0230) => q(TCA),
+ q(0231) => q(TUV),
+ q(0232) => q(UGA),
+ q(0233) => q(UKR),
+ q(0234) => q(ARE),
+ q(0235) => q(GBR),
+ q(0237) => q(USA),
+ q(0238) => q(URY),
+ q(0239) => q(UZB),
+ q(0240) => q(VUT),
+ q(0241) => q(VEN),
+ q(0242) => q(VNM),
+ q(0243) => q(VGB),
+ q(0244) => q(VIR),
+ q(0245) => q(WLF),
+ q(0246) => q(ESH),
+ q(0247) => q(YEM),
+ q(0248) => q(ZMB),
+ q(0249) => q(ZWE),
+ q(0252) => q(XQZ),
+ q(0253) => q(XAC),
+ q(0254) => q(XBK),
+ q(0255) => q(XBI),
+ q(0256) => q(CPT),
+ q(0257) => q(XCS),
+ q(0258) => q(XXD),
+ q(0259) => q(DGA),
+ q(0260) => q(XKN),
+ q(0261) => q(AX3),
+ q(0262) => q(XEU),
+ q(0263) => q(XGZ),
+ q(0264) => q(XGL),
+ q(0265) => q(AX2),
+ q(0266) => q(XHO),
+ q(0267) => q(XJM),
+ q(0268) => q(XJV),
+ q(0269) => q(XJA),
+ q(0270) => q(XJN),
+ q(0271) => q(XKR),
+ q(0272) => q(XKS),
+ q(0273) => q(XMW),
+ q(0274) => q(XNV),
+ q(0275) => q(XPL),
+ q(0276) => q(XPR),
+ q(0277) => q(XSP),
+ q(0278) => q(XSV),
+ q(0279) => q(XTR),
+ q(0280) => q(AX1),
+ q(0281) => q(XWK),
+ q(0282) => q(XWB),
+ },
+ q(genc-numeric) => {
+ q(0001) => q(004),
+ q(0003) => q(008),
+ q(0004) => q(012),
+ q(0005) => q(016),
+ q(0006) => q(020),
+ q(0007) => q(024),
+ q(0008) => q(660),
+ q(0009) => q(010),
+ q(0010) => q(028),
+ q(0011) => q(032),
+ q(0012) => q(051),
+ q(0013) => q(533),
+ q(0014) => q(036),
+ q(0015) => q(040),
+ q(0016) => q(031),
+ q(0017) => q(044),
+ q(0018) => q(048),
+ q(0019) => q(050),
+ q(0020) => q(052),
+ q(0021) => q(112),
+ q(0022) => q(056),
+ q(0023) => q(084),
+ q(0024) => q(204),
+ q(0025) => q(060),
+ q(0026) => q(064),
+ q(0027) => q(068),
+ q(0028) => q(535),
+ q(0029) => q(070),
+ q(0030) => q(072),
+ q(0031) => q(074),
+ q(0032) => q(076),
+ q(0033) => q(086),
+ q(0034) => q(096),
+ q(0035) => q(100),
+ q(0036) => q(854),
+ q(0037) => q(108),
+ q(0038) => q(132),
+ q(0039) => q(116),
+ q(0040) => q(120),
+ q(0041) => q(124),
+ q(0042) => q(136),
+ q(0043) => q(140),
+ q(0044) => q(148),
+ q(0045) => q(152),
+ q(0046) => q(156),
+ q(0047) => q(162),
+ q(0048) => q(166),
+ q(0049) => q(170),
+ q(0050) => q(174),
+ q(0051) => q(180),
+ q(0052) => q(178),
+ q(0053) => q(184),
+ q(0054) => q(188),
+ q(0055) => q(384),
+ q(0056) => q(191),
+ q(0057) => q(192),
+ q(0058) => q(531),
+ q(0059) => q(196),
+ q(0060) => q(203),
+ q(0061) => q(208),
+ q(0062) => q(262),
+ q(0063) => q(212),
+ q(0064) => q(214),
+ q(0065) => q(218),
+ q(0066) => q(818),
+ q(0067) => q(222),
+ q(0068) => q(226),
+ q(0069) => q(232),
+ q(0070) => q(233),
+ q(0071) => q(231),
+ q(0072) => q(238),
+ q(0073) => q(234),
+ q(0074) => q(242),
+ q(0075) => q(246),
+ q(0076) => q(250),
+ q(0077) => q(254),
+ q(0078) => q(258),
+ q(0079) => q(260),
+ q(0080) => q(266),
+ q(0081) => q(270),
+ q(0082) => q(268),
+ q(0083) => q(276),
+ q(0084) => q(288),
+ q(0085) => q(292),
+ q(0086) => q(300),
+ q(0087) => q(304),
+ q(0088) => q(308),
+ q(0089) => q(312),
+ q(0090) => q(316),
+ q(0091) => q(320),
+ q(0092) => q(831),
+ q(0093) => q(324),
+ q(0094) => q(624),
+ q(0095) => q(328),
+ q(0096) => q(332),
+ q(0097) => q(334),
+ q(0098) => q(336),
+ q(0099) => q(340),
+ q(0100) => q(344),
+ q(0101) => q(348),
+ q(0102) => q(352),
+ q(0103) => q(356),
+ q(0104) => q(360),
+ q(0105) => q(364),
+ q(0106) => q(368),
+ q(0107) => q(372),
+ q(0108) => q(833),
+ q(0109) => q(376),
+ q(0110) => q(380),
+ q(0111) => q(388),
+ q(0112) => q(392),
+ q(0113) => q(832),
+ q(0114) => q(400),
+ q(0115) => q(398),
+ q(0116) => q(404),
+ q(0117) => q(296),
+ q(0118) => q(408),
+ q(0119) => q(410),
+ q(0120) => q(414),
+ q(0121) => q(417),
+ q(0122) => q(418),
+ q(0123) => q(428),
+ q(0124) => q(422),
+ q(0125) => q(426),
+ q(0126) => q(430),
+ q(0127) => q(434),
+ q(0128) => q(438),
+ q(0129) => q(440),
+ q(0130) => q(442),
+ q(0131) => q(446),
+ q(0132) => q(807),
+ q(0133) => q(450),
+ q(0134) => q(454),
+ q(0135) => q(458),
+ q(0136) => q(462),
+ q(0137) => q(466),
+ q(0138) => q(470),
+ q(0139) => q(584),
+ q(0140) => q(474),
+ q(0141) => q(478),
+ q(0142) => q(480),
+ q(0143) => q(175),
+ q(0144) => q(484),
+ q(0145) => q(583),
+ q(0146) => q(498),
+ q(0147) => q(492),
+ q(0148) => q(496),
+ q(0149) => q(499),
+ q(0150) => q(500),
+ q(0151) => q(504),
+ q(0152) => q(508),
+ q(0153) => q(104),
+ q(0154) => q(516),
+ q(0155) => q(520),
+ q(0156) => q(524),
+ q(0157) => q(528),
+ q(0158) => q(540),
+ q(0159) => q(554),
+ q(0160) => q(558),
+ q(0161) => q(562),
+ q(0162) => q(566),
+ q(0163) => q(570),
+ q(0164) => q(574),
+ q(0165) => q(580),
+ q(0166) => q(578),
+ q(0167) => q(512),
+ q(0168) => q(586),
+ q(0169) => q(585),
+ q(0171) => q(591),
+ q(0172) => q(598),
+ q(0173) => q(600),
+ q(0174) => q(604),
+ q(0175) => q(608),
+ q(0176) => q(612),
+ q(0177) => q(616),
+ q(0178) => q(620),
+ q(0179) => q(630),
+ q(0180) => q(634),
+ q(0181) => q(638),
+ q(0182) => q(642),
+ q(0183) => q(643),
+ q(0184) => q(646),
+ q(0185) => q(652),
+ q(0186) => q(654),
+ q(0187) => q(659),
+ q(0188) => q(662),
+ q(0189) => q(663),
+ q(0190) => q(666),
+ q(0191) => q(670),
+ q(0192) => q(882),
+ q(0193) => q(674),
+ q(0194) => q(678),
+ q(0195) => q(682),
+ q(0196) => q(686),
+ q(0197) => q(688),
+ q(0198) => q(690),
+ q(0199) => q(694),
+ q(0200) => q(702),
+ q(0201) => q(534),
+ q(0202) => q(703),
+ q(0203) => q(705),
+ q(0204) => q(090),
+ q(0205) => q(706),
+ q(0206) => q(710),
+ q(0207) => q(239),
+ q(0208) => q(728),
+ q(0209) => q(724),
+ q(0210) => q(144),
+ q(0211) => q(729),
+ q(0212) => q(740),
+ q(0214) => q(748),
+ q(0215) => q(752),
+ q(0216) => q(756),
+ q(0217) => q(760),
+ q(0218) => q(158),
+ q(0219) => q(762),
+ q(0220) => q(834),
+ q(0221) => q(764),
+ q(0222) => q(626),
+ q(0223) => q(768),
+ q(0224) => q(772),
+ q(0225) => q(776),
+ q(0226) => q(780),
+ q(0227) => q(788),
+ q(0228) => q(792),
+ q(0229) => q(795),
+ q(0230) => q(796),
+ q(0231) => q(798),
+ q(0232) => q(800),
+ q(0233) => q(804),
+ q(0234) => q(784),
+ q(0235) => q(826),
+ q(0237) => q(840),
+ q(0238) => q(858),
+ q(0239) => q(860),
+ q(0240) => q(548),
+ q(0241) => q(862),
+ q(0242) => q(704),
+ q(0243) => q(092),
+ q(0244) => q(850),
+ q(0245) => q(876),
+ q(0246) => q(732),
+ q(0247) => q(887),
+ q(0248) => q(894),
+ q(0249) => q(716),
+ q(0252) => q(900),
+ q(0253) => q(902),
+ q(0254) => q(903),
+ q(0255) => q(904),
+ q(0256) => q(905),
+ q(0257) => q(906),
+ q(0258) => q(907),
+ q(0259) => q(908),
+ q(0260) => q(913),
+ q(0261) => q(914),
+ q(0262) => q(915),
+ q(0263) => q(916),
+ q(0264) => q(917),
+ q(0265) => q(918),
+ q(0266) => q(919),
+ q(0267) => q(920),
+ q(0268) => q(921),
+ q(0269) => q(922),
+ q(0270) => q(923),
+ q(0271) => q(924),
+ q(0272) => q(901),
+ q(0273) => q(925),
+ q(0274) => q(926),
+ q(0275) => q(927),
+ q(0276) => q(928),
+ q(0277) => q(929),
+ q(0278) => q(930),
+ q(0279) => q(931),
+ q(0280) => q(932),
+ q(0281) => q(933),
+ q(0282) => q(934),
+ },
q(numeric) => {
q(0001) => q(004),
q(0002) => q(248),
@@ -7879,6 +13997,416 @@ $Locale::Codes::Data{'country'}{'id2code'} = {
q(0248) => q(894),
q(0249) => q(716),
},
+ q(un-alpha-3) => {
+ q(0001) => q(AFG),
+ q(0002) => q(ALA),
+ q(0003) => q(ALB),
+ q(0004) => q(DZA),
+ q(0005) => q(ASM),
+ q(0006) => q(AND),
+ q(0007) => q(AGO),
+ q(0008) => q(AIA),
+ q(0010) => q(ATG),
+ q(0011) => q(ARG),
+ q(0012) => q(ARM),
+ q(0013) => q(ABW),
+ q(0014) => q(AUS),
+ q(0015) => q(AUT),
+ q(0016) => q(AZE),
+ q(0017) => q(BHS),
+ q(0018) => q(BHR),
+ q(0019) => q(BGD),
+ q(0020) => q(BRB),
+ q(0021) => q(BLR),
+ q(0022) => q(BEL),
+ q(0023) => q(BLZ),
+ q(0024) => q(BEN),
+ q(0025) => q(BMU),
+ q(0026) => q(BTN),
+ q(0027) => q(BOL),
+ q(0028) => q(BES),
+ q(0029) => q(BIH),
+ q(0030) => q(BWA),
+ q(0032) => q(BRA),
+ q(0034) => q(BRN),
+ q(0035) => q(BGR),
+ q(0036) => q(BFA),
+ q(0037) => q(BDI),
+ q(0038) => q(CPV),
+ q(0039) => q(KHM),
+ q(0040) => q(CMR),
+ q(0041) => q(CAN),
+ q(0042) => q(CYM),
+ q(0043) => q(CAF),
+ q(0044) => q(TCD),
+ q(0045) => q(CHL),
+ q(0046) => q(CHN),
+ q(0049) => q(COL),
+ q(0050) => q(COM),
+ q(0051) => q(COD),
+ q(0052) => q(COG),
+ q(0053) => q(COK),
+ q(0054) => q(CRI),
+ q(0055) => q(CIV),
+ q(0056) => q(HRV),
+ q(0057) => q(CUB),
+ q(0058) => q(CUW),
+ q(0059) => q(CYP),
+ q(0060) => q(CZE),
+ q(0061) => q(DNK),
+ q(0062) => q(DJI),
+ q(0063) => q(DMA),
+ q(0064) => q(DOM),
+ q(0065) => q(ECU),
+ q(0066) => q(EGY),
+ q(0067) => q(SLV),
+ q(0068) => q(GNQ),
+ q(0069) => q(ERI),
+ q(0070) => q(EST),
+ q(0071) => q(ETH),
+ q(0072) => q(FLK),
+ q(0073) => q(FRO),
+ q(0074) => q(FJI),
+ q(0075) => q(FIN),
+ q(0076) => q(FRA),
+ q(0077) => q(GUF),
+ q(0078) => q(PYF),
+ q(0080) => q(GAB),
+ q(0081) => q(GMB),
+ q(0082) => q(GEO),
+ q(0083) => q(DEU),
+ q(0084) => q(GHA),
+ q(0085) => q(GIB),
+ q(0086) => q(GRC),
+ q(0087) => q(GRL),
+ q(0088) => q(GRD),
+ q(0089) => q(GLP),
+ q(0090) => q(GUM),
+ q(0091) => q(GTM),
+ q(0092) => q(GGY),
+ q(0093) => q(GIN),
+ q(0094) => q(GNB),
+ q(0095) => q(GUY),
+ q(0096) => q(HTI),
+ q(0098) => q(VAT),
+ q(0099) => q(HND),
+ q(0100) => q(HKG),
+ q(0101) => q(HUN),
+ q(0102) => q(ISL),
+ q(0103) => q(IND),
+ q(0104) => q(IDN),
+ q(0105) => q(IRN),
+ q(0106) => q(IRQ),
+ q(0107) => q(IRL),
+ q(0108) => q(IMN),
+ q(0109) => q(ISR),
+ q(0110) => q(ITA),
+ q(0111) => q(JAM),
+ q(0112) => q(JPN),
+ q(0113) => q(JEY),
+ q(0114) => q(JOR),
+ q(0115) => q(KAZ),
+ q(0116) => q(KEN),
+ q(0117) => q(KIR),
+ q(0118) => q(PRK),
+ q(0119) => q(KOR),
+ q(0120) => q(KWT),
+ q(0121) => q(KGZ),
+ q(0122) => q(LAO),
+ q(0123) => q(LVA),
+ q(0124) => q(LBN),
+ q(0125) => q(LSO),
+ q(0126) => q(LBR),
+ q(0127) => q(LBY),
+ q(0128) => q(LIE),
+ q(0129) => q(LTU),
+ q(0130) => q(LUX),
+ q(0131) => q(MAC),
+ q(0133) => q(MDG),
+ q(0134) => q(MWI),
+ q(0135) => q(MYS),
+ q(0136) => q(MDV),
+ q(0137) => q(MLI),
+ q(0138) => q(MLT),
+ q(0139) => q(MHL),
+ q(0140) => q(MTQ),
+ q(0141) => q(MRT),
+ q(0142) => q(MUS),
+ q(0143) => q(MYT),
+ q(0144) => q(MEX),
+ q(0145) => q(FSM),
+ q(0146) => q(MDA),
+ q(0147) => q(MCO),
+ q(0148) => q(MNG),
+ q(0149) => q(MNE),
+ q(0150) => q(MSR),
+ q(0151) => q(MAR),
+ q(0152) => q(MOZ),
+ q(0153) => q(MMR),
+ q(0154) => q(NAM),
+ q(0155) => q(NRU),
+ q(0156) => q(NPL),
+ q(0157) => q(NLD),
+ q(0158) => q(NCL),
+ q(0159) => q(NZL),
+ q(0160) => q(NIC),
+ q(0161) => q(NER),
+ q(0162) => q(NGA),
+ q(0163) => q(NIU),
+ q(0164) => q(NFK),
+ q(0165) => q(MNP),
+ q(0166) => q(NOR),
+ q(0167) => q(OMN),
+ q(0168) => q(PAK),
+ q(0169) => q(PLW),
+ q(0170) => q(PSE),
+ q(0171) => q(PAN),
+ q(0172) => q(PNG),
+ q(0173) => q(PRY),
+ q(0174) => q(PER),
+ q(0175) => q(PHL),
+ q(0176) => q(PCN),
+ q(0177) => q(POL),
+ q(0178) => q(PRT),
+ q(0179) => q(PRI),
+ q(0180) => q(QAT),
+ q(0181) => q(REU),
+ q(0182) => q(ROU),
+ q(0183) => q(RUS),
+ q(0184) => q(RWA),
+ q(0185) => q(BLM),
+ q(0186) => q(SHN),
+ q(0187) => q(KNA),
+ q(0188) => q(LCA),
+ q(0189) => q(MAF),
+ q(0190) => q(SPM),
+ q(0191) => q(VCT),
+ q(0192) => q(WSM),
+ q(0193) => q(SMR),
+ q(0194) => q(STP),
+ q(0195) => q(SAU),
+ q(0196) => q(SEN),
+ q(0197) => q(SRB),
+ q(0198) => q(SYC),
+ q(0199) => q(SLE),
+ q(0200) => q(SGP),
+ q(0201) => q(SXM),
+ q(0202) => q(SVK),
+ q(0203) => q(SVN),
+ q(0204) => q(SLB),
+ q(0205) => q(SOM),
+ q(0206) => q(ZAF),
+ q(0208) => q(SSD),
+ q(0209) => q(ESP),
+ q(0210) => q(LKA),
+ q(0243) => q(VGB),
+ },
+ q(un-numeric) => {
+ q(0001) => q(004),
+ q(0002) => q(248),
+ q(0003) => q(008),
+ q(0004) => q(012),
+ q(0005) => q(016),
+ q(0006) => q(020),
+ q(0007) => q(024),
+ q(0008) => q(660),
+ q(0010) => q(028),
+ q(0011) => q(032),
+ q(0012) => q(051),
+ q(0013) => q(533),
+ q(0014) => q(036),
+ q(0015) => q(040),
+ q(0016) => q(031),
+ q(0017) => q(044),
+ q(0018) => q(048),
+ q(0019) => q(050),
+ q(0020) => q(052),
+ q(0021) => q(112),
+ q(0022) => q(056),
+ q(0023) => q(084),
+ q(0024) => q(204),
+ q(0025) => q(060),
+ q(0026) => q(064),
+ q(0027) => q(068),
+ q(0028) => q(535),
+ q(0029) => q(070),
+ q(0030) => q(072),
+ q(0032) => q(076),
+ q(0034) => q(096),
+ q(0035) => q(100),
+ q(0036) => q(854),
+ q(0037) => q(108),
+ q(0038) => q(132),
+ q(0039) => q(116),
+ q(0040) => q(120),
+ q(0041) => q(124),
+ q(0042) => q(136),
+ q(0043) => q(140),
+ q(0044) => q(148),
+ q(0045) => q(152),
+ q(0046) => q(156),
+ q(0049) => q(170),
+ q(0050) => q(174),
+ q(0051) => q(180),
+ q(0052) => q(178),
+ q(0053) => q(184),
+ q(0054) => q(188),
+ q(0055) => q(384),
+ q(0056) => q(191),
+ q(0057) => q(192),
+ q(0058) => q(531),
+ q(0059) => q(196),
+ q(0060) => q(203),
+ q(0061) => q(208),
+ q(0062) => q(262),
+ q(0063) => q(212),
+ q(0064) => q(214),
+ q(0065) => q(218),
+ q(0066) => q(818),
+ q(0067) => q(222),
+ q(0068) => q(226),
+ q(0069) => q(232),
+ q(0070) => q(233),
+ q(0071) => q(231),
+ q(0072) => q(238),
+ q(0073) => q(234),
+ q(0074) => q(242),
+ q(0075) => q(246),
+ q(0076) => q(250),
+ q(0077) => q(254),
+ q(0078) => q(258),
+ q(0080) => q(266),
+ q(0081) => q(270),
+ q(0082) => q(268),
+ q(0083) => q(276),
+ q(0084) => q(288),
+ q(0085) => q(292),
+ q(0086) => q(300),
+ q(0087) => q(304),
+ q(0088) => q(308),
+ q(0089) => q(312),
+ q(0090) => q(316),
+ q(0091) => q(320),
+ q(0092) => q(831),
+ q(0093) => q(324),
+ q(0094) => q(624),
+ q(0095) => q(328),
+ q(0096) => q(332),
+ q(0098) => q(336),
+ q(0099) => q(340),
+ q(0100) => q(344),
+ q(0101) => q(348),
+ q(0102) => q(352),
+ q(0103) => q(356),
+ q(0104) => q(360),
+ q(0105) => q(364),
+ q(0106) => q(368),
+ q(0107) => q(372),
+ q(0108) => q(833),
+ q(0109) => q(376),
+ q(0110) => q(380),
+ q(0111) => q(388),
+ q(0112) => q(392),
+ q(0113) => q(832),
+ q(0114) => q(400),
+ q(0115) => q(398),
+ q(0116) => q(404),
+ q(0117) => q(296),
+ q(0118) => q(408),
+ q(0119) => q(410),
+ q(0120) => q(414),
+ q(0121) => q(417),
+ q(0122) => q(418),
+ q(0123) => q(428),
+ q(0124) => q(422),
+ q(0125) => q(426),
+ q(0126) => q(430),
+ q(0127) => q(434),
+ q(0128) => q(438),
+ q(0129) => q(440),
+ q(0130) => q(442),
+ q(0131) => q(446),
+ q(0133) => q(450),
+ q(0134) => q(454),
+ q(0135) => q(458),
+ q(0136) => q(462),
+ q(0137) => q(466),
+ q(0138) => q(470),
+ q(0139) => q(584),
+ q(0140) => q(474),
+ q(0141) => q(478),
+ q(0142) => q(480),
+ q(0143) => q(175),
+ q(0144) => q(484),
+ q(0145) => q(583),
+ q(0146) => q(498),
+ q(0147) => q(492),
+ q(0148) => q(496),
+ q(0149) => q(499),
+ q(0150) => q(500),
+ q(0151) => q(504),
+ q(0152) => q(508),
+ q(0153) => q(104),
+ q(0154) => q(516),
+ q(0155) => q(520),
+ q(0156) => q(524),
+ q(0157) => q(528),
+ q(0158) => q(540),
+ q(0159) => q(554),
+ q(0160) => q(558),
+ q(0161) => q(562),
+ q(0162) => q(566),
+ q(0163) => q(570),
+ q(0164) => q(574),
+ q(0165) => q(580),
+ q(0166) => q(578),
+ q(0167) => q(512),
+ q(0168) => q(586),
+ q(0169) => q(585),
+ q(0170) => q(275),
+ q(0171) => q(591),
+ q(0172) => q(598),
+ q(0173) => q(600),
+ q(0174) => q(604),
+ q(0175) => q(608),
+ q(0176) => q(612),
+ q(0177) => q(616),
+ q(0178) => q(620),
+ q(0179) => q(630),
+ q(0180) => q(634),
+ q(0181) => q(638),
+ q(0182) => q(642),
+ q(0183) => q(643),
+ q(0184) => q(646),
+ q(0185) => q(652),
+ q(0186) => q(654),
+ q(0187) => q(659),
+ q(0188) => q(662),
+ q(0189) => q(663),
+ q(0190) => q(666),
+ q(0191) => q(670),
+ q(0192) => q(882),
+ q(0193) => q(674),
+ q(0194) => q(678),
+ q(0195) => q(682),
+ q(0196) => q(686),
+ q(0197) => q(688),
+ q(0198) => q(690),
+ q(0199) => q(694),
+ q(0200) => q(702),
+ q(0201) => q(534),
+ q(0202) => q(703),
+ q(0203) => q(705),
+ q(0204) => q(090),
+ q(0205) => q(706),
+ q(0206) => q(710),
+ q(0208) => q(728),
+ q(0209) => q(724),
+ q(0210) => q(144),
+ q(0243) => q(092),
+ q(0250) => q(830),
+ q(0251) => q(680),
+ },
};
1;
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm
index c07e44a4bdc..94bcb30bbe1 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Country_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::Country_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Nov 18 09:22:54 EST 2016
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Retired{'country'}{'alpha-2'}{'code'} = {
q(an) => q(Netherlands Antilles),
@@ -308,6 +308,15 @@ $Locale::Codes::Retired{'country'}{'dom'}{'code'} = {
q(uk) => q(United Kingdom),
};
+$Locale::Codes::Retired{'country'}{'genc-alpha-2'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'country'}{'genc-alpha-3'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'country'}{'genc-numeric'}{'code'} = {
+};
+
$Locale::Codes::Retired{'country'}{'numeric'}{'code'} = {
q(010) => q(Antarctica),
q(074) => q(Bouvet Island),
@@ -327,6 +336,12 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'code'} = {
q(891) => q(Serbia and Montenegro),
};
+$Locale::Codes::Retired{'country'}{'un-alpha-3'}{'code'} = {
+};
+
+$Locale::Codes::Retired{'country'}{'un-numeric'}{'code'} = {
+};
+
$Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
q(bolivia) => [ q(bo), q(Bolivia) ],
q(bolivia, plurinational state of) => [ q(bo), q(Bolivia, Plurinational State of) ],
@@ -334,6 +349,7 @@ $Locale::Codes::Retired{'country'}{'alpha-2'}{'name'} = {
q(bosnia and herzegowina) => [ q(ba), q(Bosnia and Herzegowina) ],
q(cape verde) => [ q(cv), q(Cape Verde) ],
q(congo, the democratic republic of the) => [ q(cd), q(Congo, The Democratic Republic of the) ],
+ q(czech republic) => [ q(cz), q(Czech Republic) ],
q(east timor) => [ q(tl), q(East Timor) ],
q(falkland islands (malvinas)) => [ q(fk), q(Falkland Islands (Malvinas)) ],
q(france, metropolitan) => [ q(fx), q(France, Metropolitan) ],
@@ -392,6 +408,7 @@ $Locale::Codes::Retired{'country'}{'alpha-3'}{'name'} = {
q(christmas island) => [ q(cxr), q(Christmas Island) ],
q(cocos (keeling) islands) => [ q(cck), q(Cocos (Keeling) Islands) ],
q(congo, the democratic republic of the) => [ q(cod), q(Congo, The Democratic Republic of the) ],
+ q(czech republic) => [ q(cze), q(Czech Republic) ],
q(democratic people's republic of korea) => [ q(prk), q(Democratic People's Republic of Korea) ],
q(democratic republic of the congo) => [ q(cod), q(Democratic Republic of the Congo) ],
q(east timor) => [ q(tls), q(East Timor) ],
@@ -465,6 +482,7 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
q(bonaire, sint eustatius and saba) => [ q(BQ), q(Bonaire, Sint Eustatius and Saba) ],
q(cape verde) => [ q(cv), q(Cape Verde) ],
q(congo, the democratic republic of the) => [ q(cd), q(Congo, The Democratic Republic of the) ],
+ q(czech republic) => [ q(cz), q(Czech Republic) ],
q(east timor) => [ q(tp), q(East Timor) ],
q(european union) => [ q(eu), q(European Union) ],
q(falkland islands (malvinas)) => [ q(fk), q(Falkland Islands (Malvinas)) ],
@@ -498,6 +516,18 @@ $Locale::Codes::Retired{'country'}{'dom'}{'name'} = {
q(yugoslavia ) => [ q(YU), q(Yugoslavia ) ],
};
+$Locale::Codes::Retired{'country'}{'genc-alpha-2'}{'name'} = {
+ q(czech republic) => [ q(CZ), q(Czech Republic) ],
+};
+
+$Locale::Codes::Retired{'country'}{'genc-alpha-3'}{'name'} = {
+ q(czech republic) => [ q(CZE), q(Czech Republic) ],
+};
+
+$Locale::Codes::Retired{'country'}{'genc-numeric'}{'name'} = {
+ q(czech republic) => [ q(203), q(Czech Republic) ],
+};
+
$Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(antarctica) => [ q(010), q(Antarctica) ],
q(bolivia) => [ q(068), q(Bolivia) ],
@@ -515,6 +545,7 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(christmas island) => [ q(162), q(Christmas Island) ],
q(cocos (keeling) islands) => [ q(166), q(Cocos (Keeling) Islands) ],
q(congo, the democratic republic of the) => [ q(180), q(Congo, The Democratic Republic of the) ],
+ q(czech republic) => [ q(203), q(Czech Republic) ],
q(democratic people's republic of korea) => [ q(408), q(Democratic People's Republic of Korea) ],
q(democratic republic of the congo) => [ q(180), q(Democratic Republic of the Congo) ],
q(east timor) => [ q(626), q(East Timor) ],
@@ -582,5 +613,13 @@ $Locale::Codes::Retired{'country'}{'numeric'}{'name'} = {
q(zaire) => [ q(180), q(Zaire) ],
};
+$Locale::Codes::Retired{'country'}{'un-alpha-3'}{'name'} = {
+ q(czech republic) => [ q(CZE), q(Czech Republic) ],
+};
+
+$Locale::Codes::Retired{'country'}{'un-numeric'}{'name'} = {
+ q(czech republic) => [ q(203), q(Czech Republic) ],
+};
+
1;
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm
index 3d1f406383f..35d9e7a5fa3 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Currency;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -22,7 +22,7 @@ use Locale::Codes::Currency_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.37';
+$VERSION='3.42';
@ISA = qw(Exporter);
@EXPORT = qw(code2currency
currency2code
@@ -94,5 +94,5 @@ sub delete_currency_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod
index bc5ea0d668b..60bf9d9eae0 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency.pod
@@ -83,7 +83,7 @@ This is the set of three-digit numeric codes from ISO 4217.
=item B<Locale::Codes::Currency::add_currency_code_alias(CODE ,NEW_CODE [,CODESET])>
-=item B<Locale::Codes::Currency::delete_currency_code_alias( ODE [,CODESET])>
+=item B<Locale::Codes::Currency::delete_currency_code_alias( CODE [,CODESET])>
These routines are all documented in the L<Locale::Codes::API> man page.
@@ -118,7 +118,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001 Michael Hennecke
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm
index d1d39b7002e..d55bef32020 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::Currency_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:02 EST 2015
+# Generated on: Tue Nov 29 15:43:48 EST 2016
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Data{'currency'}{'id'} = '0177';
@@ -65,7 +65,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Barbados Dollar),
],
q(0017) => [
- q(Belarussian Ruble),
+ q(Belarusian Ruble),
],
q(0018) => [
q(Belize Dollar),
@@ -77,10 +77,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Bermudian Dollar),
],
q(0021) => [
- q(Ngultrum),
+ q(Indian Rupee),
],
q(0022) => [
- q(Indian Rupee),
+ q(Ngultrum),
],
q(0023) => [
q(Boliviano),
@@ -125,10 +125,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Cayman Islands Dollar),
],
q(0037) => [
- q(Unidad de Fomento),
+ q(Chilean Peso),
],
q(0038) => [
- q(Chilean Peso),
+ q(Unidad de Fomento),
],
q(0039) => [
q(Yuan Renminbi),
@@ -155,10 +155,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Kuna),
],
q(0047) => [
- q(Peso Convertible),
+ q(Cuban Peso),
],
q(0048) => [
- q(Cuban Peso),
+ q(Peso Convertible),
],
q(0049) => [
q(Netherlands Antillean Guilder),
@@ -308,7 +308,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Malagasy Ariary),
],
q(0098) => [
- q(Kwacha),
+ q(Malawi Kwacha),
],
q(0099) => [
q(Malaysian Ringgit),
@@ -374,7 +374,7 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(Guarani),
],
q(0120) => [
- q(Nuevo Sol),
+ q(Sol),
],
q(0121) => [
q(Philippine Peso),
@@ -494,10 +494,10 @@ $Locale::Codes::Data{'currency'}{'id2names'} = {
q(US Dollar (Next day)),
],
q(0160) => [
- q(Uruguay Peso en Unidades Indexadas (URUIURUI)),
+ q(Peso Uruguayo),
],
q(0161) => [
- q(Peso Uruguayo),
+ q(Uruguay Peso en Unidades Indexadas (URUIURUI)),
],
q(0162) => [
q(Uzbekistan Sum),
@@ -599,7 +599,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0016),
q(0),
],
- q(belarussian ruble) => [
+ q(belarusian ruble) => [
q(0017),
q(0),
],
@@ -676,7 +676,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(chilean peso) => [
- q(0038),
+ q(0037),
q(0),
],
q(colombian peso) => [
@@ -704,7 +704,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(cuban peso) => [
- q(0048),
+ q(0047),
q(0),
],
q(czech koruna) => [
@@ -812,7 +812,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(indian rupee) => [
- q(0022),
+ q(0021),
q(0),
],
q(iranian rial) => [
@@ -851,10 +851,6 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0086),
q(0),
],
- q(kwacha) => [
- q(0098),
- q(0),
- ],
q(kwanza) => [
q(0006),
q(0),
@@ -903,6 +899,10 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0097),
q(0),
],
+ q(malawi kwacha) => [
+ q(0098),
+ q(0),
+ ],
q(malaysian ringgit) => [
q(0099),
q(0),
@@ -968,7 +968,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(ngultrum) => [
- q(0021),
+ q(0022),
q(0),
],
q(north korean won) => [
@@ -979,10 +979,6 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0027),
q(0),
],
- q(nuevo sol) => [
- q(0120),
- q(0),
- ],
q(ouguiya) => [
q(0101),
q(0),
@@ -1004,11 +1000,11 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(peso convertible) => [
- q(0047),
+ q(0048),
q(0),
],
q(peso uruguayo) => [
- q(0161),
+ q(0160),
q(0),
],
q(philippine peso) => [
@@ -1095,6 +1091,10 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0134),
q(0),
],
+ q(sol) => [
+ q(0120),
+ q(0),
+ ],
q(solomon islands dollar) => [
q(0136),
q(0),
@@ -1188,7 +1188,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(unidad de fomento) => [
- q(0037),
+ q(0038),
q(0),
],
q(unidad de valor real) => [
@@ -1196,7 +1196,7 @@ $Locale::Codes::Data{'currency'}{'alias2id'} = {
q(0),
],
q(uruguay peso en unidades indexadas (uruiurui)) => [
- q(0160),
+ q(0161),
q(0),
],
q(us dollar) => [
@@ -1344,13 +1344,17 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(BTN) => [
- q(0021),
+ q(0022),
q(0),
],
q(BWP) => [
q(0026),
q(0),
],
+ q(BYN) => [
+ q(0017),
+ q(0),
+ ],
q(BYR) => [
q(0017),
q(0),
@@ -1380,11 +1384,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(CLF) => [
- q(0037),
+ q(0038),
q(0),
],
q(CLP) => [
- q(0038),
+ q(0037),
q(0),
],
q(CNY) => [
@@ -1404,11 +1408,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(CUC) => [
- q(0047),
+ q(0048),
q(0),
],
q(CUP) => [
- q(0048),
+ q(0047),
q(0),
],
q(CVE) => [
@@ -1520,7 +1524,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(INR) => [
- q(0022),
+ q(0021),
q(0),
],
q(IQD) => [
@@ -1856,11 +1860,11 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(UYI) => [
- q(0160),
+ q(0161),
q(0),
],
q(UYU) => [
- q(0161),
+ q(0160),
q(0),
],
q(UZS) => [
@@ -2002,7 +2006,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(064) => [
- q(0021),
+ q(0022),
q(0),
],
q(068) => [
@@ -2054,7 +2058,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(152) => [
- q(0038),
+ q(0037),
q(0),
],
q(156) => [
@@ -2078,7 +2082,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(192) => [
- q(0048),
+ q(0047),
q(0),
],
q(203) => [
@@ -2158,7 +2162,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(356) => [
- q(0022),
+ q(0021),
q(0),
],
q(360) => [
@@ -2450,7 +2454,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(858) => [
- q(0161),
+ q(0160),
q(0),
],
q(860) => [
@@ -2470,13 +2474,17 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(931) => [
- q(0047),
+ q(0048),
q(0),
],
q(932) => [
q(0168),
q(0),
],
+ q(933) => [
+ q(0017),
+ q(0),
+ ],
q(934) => [
q(0155),
q(0),
@@ -2494,7 +2502,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(940) => [
- q(0160),
+ q(0161),
q(0),
],
q(941) => [
@@ -2654,7 +2662,7 @@ $Locale::Codes::Data{'currency'}{'code2id'} = {
q(0),
],
q(990) => [
- q(0037),
+ q(0038),
q(0),
],
q(994) => [
@@ -2690,8 +2698,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0018) => q(BZD),
q(0019) => q(XOF),
q(0020) => q(BMD),
- q(0021) => q(BTN),
- q(0022) => q(INR),
+ q(0021) => q(INR),
+ q(0022) => q(BTN),
q(0023) => q(BOB),
q(0024) => q(BOV),
q(0025) => q(BAM),
@@ -2706,8 +2714,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0034) => q(XAF),
q(0035) => q(CAD),
q(0036) => q(KYD),
- q(0037) => q(CLF),
- q(0038) => q(CLP),
+ q(0037) => q(CLP),
+ q(0038) => q(CLF),
q(0039) => q(CNY),
q(0040) => q(COP),
q(0041) => q(COU),
@@ -2716,8 +2724,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0044) => q(NZD),
q(0045) => q(CRC),
q(0046) => q(HRK),
- q(0047) => q(CUC),
- q(0048) => q(CUP),
+ q(0047) => q(CUP),
+ q(0048) => q(CUC),
q(0049) => q(ANG),
q(0050) => q(CZK),
q(0051) => q(DKK),
@@ -2829,8 +2837,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0157) => q(UAH),
q(0158) => q(AED),
q(0159) => q(USN),
- q(0160) => q(UYI),
- q(0161) => q(UYU),
+ q(0160) => q(UYU),
+ q(0161) => q(UYI),
q(0162) => q(UZS),
q(0163) => q(VUV),
q(0164) => q(VEF),
@@ -2868,8 +2876,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0018) => q(084),
q(0019) => q(952),
q(0020) => q(060),
- q(0021) => q(064),
- q(0022) => q(356),
+ q(0021) => q(356),
+ q(0022) => q(064),
q(0023) => q(068),
q(0024) => q(984),
q(0025) => q(977),
@@ -2884,8 +2892,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0034) => q(950),
q(0035) => q(124),
q(0036) => q(136),
- q(0037) => q(990),
- q(0038) => q(152),
+ q(0037) => q(152),
+ q(0038) => q(990),
q(0039) => q(156),
q(0040) => q(170),
q(0041) => q(970),
@@ -2894,8 +2902,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0044) => q(554),
q(0045) => q(188),
q(0046) => q(191),
- q(0047) => q(931),
- q(0048) => q(192),
+ q(0047) => q(192),
+ q(0048) => q(931),
q(0049) => q(532),
q(0050) => q(203),
q(0051) => q(208),
@@ -3007,8 +3015,8 @@ $Locale::Codes::Data{'currency'}{'id2code'} = {
q(0157) => q(980),
q(0158) => q(784),
q(0159) => q(997),
- q(0160) => q(940),
- q(0161) => q(858),
+ q(0160) => q(858),
+ q(0161) => q(940),
q(0162) => q(860),
q(0163) => q(548),
q(0164) => q(937),
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm
index 483238fe87f..9ee38872a26 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Currency_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::Currency_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Nov 18 09:22:54 EST 2016
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Retired{'currency'}{'alpha'}{'code'} = {
q(ADP) => q(Andorran Peseta),
@@ -78,6 +78,7 @@ $Locale::Codes::Retired{'currency'}{'num'}{'code'} = {
$Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(andorran peseta) => [ q(ADP), q(Andorran Peseta) ],
q(aruban guilder) => [ q(AWG), q(Aruban Guilder) ],
+ q(belarussian ruble) => [ q(BYR), q(Belarussian Ruble) ],
q(belgian franc) => [ q(BEF), q(Belgian Franc) ],
q(bermudian dollar (customarily known as bermuda dollar)) => [ q(BMD), q(Bermudian Dollar (customarily known as Bermuda Dollar)) ],
q(bolivar) => [ q(VEB), q(Bolivar) ],
@@ -110,6 +111,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(karbovanets) => [ q(UAK), q(Karbovanets) ],
q(kroon) => [ q(EEK), q(Kroon) ],
q(kuna) => [ q(HRK), q(Kuna) ],
+ q(kwacha) => [ q(MWK), q(Kwacha) ],
q(kwanza reajustado) => [ q(AOR), q(Kwanza Reajustado) ],
q(latvian lats) => [ q(LVL), q(Latvian Lats) ],
q(leu) => [ q(RON), q(Leu) ],
@@ -130,6 +132,7 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
q(new manat) => [ q(TMT), q(New Manat) ],
q(new romanian leu) => [ q(RON), q(New Romanian Leu) ],
q(new zaire) => [ q(ZRN), q(New Zaire) ],
+ q(nuevo sol) => [ q(PEN), q(Nuevo Sol) ],
q(portuguese escudo) => [ q(PTE), q(Portuguese Escudo) ],
q(saint helena pound) => [ q(SHP), q(Saint Helena Pound) ],
q(schilling) => [ q(ATS), q(Schilling) ],
@@ -153,16 +156,19 @@ $Locale::Codes::Retired{'currency'}{'alpha'}{'name'} = {
};
$Locale::Codes::Retired{'currency'}{'num'}{'name'} = {
+ q(belarussian ruble) => [ q(974), q(Belarussian Ruble) ],
q(bolivar fuerte) => [ q(937), q(Bolivar Fuerte) ],
q(cape verde escudo) => [ q(132), q(Cape Verde Escudo) ],
q(cedi) => [ q(936), q(Cedi) ],
q(croatian kuna) => [ q(191), q(Croatian Kuna) ],
+ q(kwacha) => [ q(454), q(Kwacha) ],
q(latvian lats) => [ q(428), q(Latvian Lats) ],
q(leu) => [ q(946), q(Leu) ],
q(lithuanian litas) => [ q(440), q(Lithuanian Litas) ],
q(metical) => [ q(943), q(Metical) ],
q(new manat) => [ q(934), q(New Manat) ],
q(new romanian leu) => [ q(946), q(New Romanian Leu) ],
+ q(nuevo sol) => [ q(604), q(Nuevo Sol) ],
q(saint helena pound) => [ q(654), q(Saint Helena Pound) ],
q(unidades de fomento) => [ q(990), q(Unidades de fomento) ],
q(us dollar (same day)) => [ q(998), q(US Dollar (Same day)) ],
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm
index 6376da26fe9..1f700b44039 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pm
@@ -1,5 +1,5 @@
package Locale::Codes::LangExt;
-# Copyright (c) 2011-2015 Sullivan Beck
+# Copyright (c) 2011-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -20,7 +20,7 @@ use Locale::Codes::LangExt_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.37';
+$VERSION='3.42';
@ISA = qw(Exporter);
@EXPORT = qw(code2langext
langext2code
@@ -91,5 +91,5 @@ sub delete_langext_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod
index 271a5ac78da..5d97492a176 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt.pod
@@ -108,7 +108,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2015 Sullivan Beck
+ Copyright (c) 2011-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm
index e2e1834603f..5552ea20ddc 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangExt_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:16 EST 2015
+# Generated on: Fri Nov 18 09:18:36 EST 2016
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
-$Locale::Codes::Data{'langext'}{'id'} = '0230';
+$Locale::Codes::Data{'langext'}{'id'} = '0232';
$Locale::Codes::Data{'langext'}{'id2names'} = {
q(0001) => [
@@ -381,6 +381,7 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
],
q(0120) => [
q(Loncong),
+ q(Sekak),
],
q(0121) => [
q(Lubu),
@@ -510,212 +511,218 @@ $Locale::Codes::Data{'langext'}{'id2names'} = {
q(Sudanese Creole Arabic),
],
q(0163) => [
- q(Pakistan Sign Language),
+ q(Papua New Guinean Sign Language),
],
q(0164) => [
- q(Peruvian Sign Language),
+ q(Pakistan Sign Language),
],
q(0165) => [
- q(Providencia Sign Language),
+ q(Peruvian Sign Language),
],
q(0166) => [
- q(Persian Sign Language),
+ q(Providencia Sign Language),
],
q(0167) => [
- q(Plains Indian Sign Language),
+ q(Persian Sign Language),
],
q(0168) => [
- q(Central Malay),
+ q(Plains Indian Sign Language),
],
q(0169) => [
- q(Penang Sign Language),
+ q(Central Malay),
],
q(0170) => [
- q(Puerto Rican Sign Language),
+ q(Penang Sign Language),
],
q(0171) => [
- q(Polish Sign Language),
+ q(Puerto Rican Sign Language),
],
q(0172) => [
- q(Philippine Sign Language),
+ q(Polish Sign Language),
],
q(0173) => [
- q(Portuguese Sign Language),
+ q(Philippine Sign Language),
],
q(0174) => [
+ q(Portuguese Sign Language),
+ ],
+ q(0175) => [
q(Paraguayan Sign Language),
q(Lengua de Senas del Paraguay),
],
- q(0175) => [
+ q(0176) => [
q(Romanian Sign Language),
],
- q(0176) => [
+ q(0177) => [
q(Rennellese Sign Language),
],
- q(0177) => [
+ q(0178) => [
q(Russian Sign Language),
],
- q(0178) => [
+ q(0179) => [
+ q(Miriwoong Sign Language),
+ ],
+ q(0180) => [
q(Saudi Arabian Sign Language),
],
- q(0179) => [
+ q(0181) => [
q(Langue des signes de Belgique Francophone),
q(French Belgian Sign Language),
],
- q(0180) => [
+ q(0182) => [
q(South African Sign Language),
],
- q(0181) => [
+ q(0183) => [
q(Swiss-German Sign Language),
],
- q(0182) => [
+ q(0184) => [
q(Sierra Leone Sign Language),
],
- q(0183) => [
+ q(0185) => [
q(Chadian Arabic),
],
- q(0184) => [
+ q(0186) => [
q(Swiss-Italian Sign Language),
],
- q(0185) => [
+ q(0187) => [
q(Singapore Sign Language),
],
- q(0186) => [
+ q(0188) => [
q(Albanian Sign Language),
],
- q(0187) => [
+ q(0189) => [
q(Sri Lankan Sign Language),
],
- q(0188) => [
+ q(0190) => [
q(Shihhi Arabic),
],
- q(0189) => [
+ q(0191) => [
q(Spanish Sign Language),
],
- q(0190) => [
+ q(0192) => [
q(Swiss-French Sign Language),
],
- q(0191) => [
+ q(0193) => [
q(Slovakian Sign Language),
],
- q(0192) => [
+ q(0194) => [
q(Congo Swahili),
],
- q(0193) => [
+ q(0195) => [
q(Swahili (individual language)),
q(Kiswahili),
],
- q(0194) => [
+ q(0196) => [
q(Swedish Sign Language),
],
- q(0195) => [
+ q(0197) => [
q(Al-Sayyid Bedouin Sign Language),
],
- q(0196) => [
+ q(0198) => [
q(Temuan),
],
- q(0197) => [
+ q(0199) => [
q(Tunisian Sign Language),
],
- q(0198) => [
+ q(0200) => [
q(Turkish Sign Language),
q(Turk Isaret Dili),
],
- q(0199) => [
+ q(0201) => [
q(Thai Sign Language),
],
- q(0200) => [
+ q(0202) => [
q(Taiwan Sign Language),
],
- q(0201) => [
+ q(0203) => [
q(Tebul Sign Language),
],
- q(0202) => [
+ q(0204) => [
q(Tanzanian Sign Language),
],
- q(0203) => [
+ q(0205) => [
q(Ugandan Sign Language),
],
- q(0204) => [
+ q(0206) => [
q(Uruguayan Sign Language),
],
- q(0205) => [
+ q(0207) => [
q(Ukrainian Sign Language),
],
- q(0206) => [
+ q(0208) => [
q(Urubu-Kaapor Sign Language),
q(Kaapor Sign Language),
],
- q(0207) => [
+ q(0209) => [
q(Urak Lawoi'),
],
- q(0208) => [
+ q(0210) => [
q(Northern Uzbek),
],
- q(0209) => [
+ q(0211) => [
q(Southern Uzbek),
],
- q(0210) => [
+ q(0212) => [
q(Vlaamse Gebarentaal),
q(Flemish Sign Language),
],
- q(0211) => [
+ q(0213) => [
q(Kaur),
],
- q(0212) => [
+ q(0214) => [
q(Tenggarong Kutai Malay),
],
- q(0213) => [
+ q(0215) => [
q(Moldova Sign Language),
],
- q(0214) => [
+ q(0216) => [
q(Venezuelan Sign Language),
],
- q(0215) => [
+ q(0217) => [
q(Valencian Sign Language),
q(Llengua de signes valenciana),
],
- q(0216) => [
+ q(0218) => [
q(Wu Chinese),
],
- q(0217) => [
+ q(0219) => [
q(Kenyan Sign Language),
],
- q(0218) => [
+ q(0220) => [
q(Malaysian Sign Language),
],
- q(0219) => [
+ q(0221) => [
q(Manado Malay),
],
- q(0220) => [
+ q(0222) => [
q(Moroccan Sign Language),
],
- q(0221) => [
+ q(0223) => [
q(Yolnu Sign Language),
],
- q(0222) => [
+ q(0224) => [
q(Yan-nhanu Sign Language),
],
- q(0223) => [
+ q(0225) => [
q(Yugoslavian Sign Language),
],
- q(0224) => [
+ q(0226) => [
q(Yue Chinese),
q(Cantonese),
],
- q(0225) => [
+ q(0227) => [
q(Zimbabwe Sign Language),
],
- q(0226) => [
+ q(0228) => [
q(Malay (individual language)),
],
- q(0227) => [
+ q(0229) => [
q(Negeri Sembilan Malay),
],
- q(0228) => [
+ q(0230) => [
q(Zambian Sign Language),
],
- q(0229) => [
+ q(0231) => [
q(Standard Malay),
],
};
@@ -730,11 +737,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(al-sayyid bedouin sign language) => [
- q(0195),
+ q(0197),
q(0),
],
q(albanian sign language) => [
- q(0186),
+ q(0188),
q(0),
],
q(algerian arabic) => [
@@ -834,7 +841,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(cantonese) => [
- q(0224),
+ q(0226),
q(1),
],
q(catalan sign language) => [
@@ -842,11 +849,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(central malay) => [
- q(0168),
+ q(0169),
q(0),
],
q(chadian arabic) => [
- q(0183),
+ q(0185),
q(0),
],
q(chadian sign language) => [
@@ -878,7 +885,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(congo swahili) => [
- q(0192),
+ q(0194),
q(0),
],
q(costa rican sign language) => [
@@ -958,11 +965,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(flemish sign language) => [
- q(0210),
+ q(0212),
q(1),
],
q(french belgian sign language) => [
- q(0179),
+ q(0181),
q(1),
],
q(french sign language) => [
@@ -1134,11 +1141,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(kaapor sign language) => [
- q(0206),
+ q(0208),
q(1),
],
q(kaur) => [
- q(0211),
+ q(0213),
q(0),
],
q(kedah malay) => [
@@ -1146,7 +1153,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(kenyan sign language) => [
- q(0217),
+ q(0219),
q(0),
],
q(kerinci) => [
@@ -1154,7 +1161,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(kiswahili) => [
- q(0193),
+ q(0195),
q(1),
],
q(konkani (individual language)) => [
@@ -1174,7 +1181,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(langue des signes de belgique francophone) => [
- q(0179),
+ q(0181),
q(0),
],
q(laos sign language) => [
@@ -1194,7 +1201,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(1),
],
q(lengua de senas del paraguay) => [
- q(0174),
+ q(0175),
q(1),
],
q(lengua de senas panamenas) => [
@@ -1222,7 +1229,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(2),
],
q(llengua de signes valenciana) => [
- q(0215),
+ q(0217),
q(1),
],
q(loncong) => [
@@ -1242,11 +1249,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(malay (individual language)) => [
- q(0226),
+ q(0228),
q(0),
],
q(malaysian sign language) => [
- q(0218),
+ q(0220),
q(0),
],
q(maltese sign language) => [
@@ -1254,7 +1261,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(manado malay) => [
- q(0219),
+ q(0221),
q(0),
],
q(mandarin chinese) => [
@@ -1301,8 +1308,12 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0139),
q(0),
],
+ q(miriwoong sign language) => [
+ q(0179),
+ q(0),
+ ],
q(moldova sign language) => [
- q(0213),
+ q(0215),
q(0),
],
q(monastic sign language) => [
@@ -1318,7 +1329,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(moroccan sign language) => [
- q(0220),
+ q(0222),
q(0),
],
q(mozambican sign language) => [
@@ -1338,7 +1349,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(negeri sembilan malay) => [
- q(0227),
+ q(0229),
q(0),
],
q(nepalese sign language) => [
@@ -1370,7 +1381,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(northern uzbek) => [
- q(0208),
+ q(0210),
q(0),
],
q(norwegian sign language) => [
@@ -1394,15 +1405,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(pakistan sign language) => [
- q(0163),
+ q(0164),
q(0),
],
q(panamanian sign language) => [
q(0127),
q(0),
],
+ q(papua new guinean sign language) => [
+ q(0163),
+ q(0),
+ ],
q(paraguayan sign language) => [
- q(0174),
+ q(0175),
q(0),
],
q(pattani malay) => [
@@ -1414,35 +1429,35 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(penang sign language) => [
- q(0169),
+ q(0170),
q(0),
],
q(persian sign language) => [
- q(0166),
+ q(0167),
q(0),
],
q(peruvian sign language) => [
- q(0164),
+ q(0165),
q(0),
],
q(philippine sign language) => [
- q(0172),
+ q(0173),
q(0),
],
q(plains indian sign language) => [
- q(0167),
+ q(0168),
q(0),
],
q(polish sign language) => [
- q(0171),
+ q(0172),
q(0),
],
q(portuguese sign language) => [
- q(0173),
+ q(0174),
q(0),
],
q(providencia sign language) => [
- q(0165),
+ q(0166),
q(0),
],
q(pu-xian chinese) => [
@@ -1450,7 +1465,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(puerto rican sign language) => [
- q(0170),
+ q(0171),
q(0),
],
q(quebec sign language) => [
@@ -1458,15 +1473,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(rennellese sign language) => [
- q(0176),
+ q(0177),
q(0),
],
q(romanian sign language) => [
- q(0175),
+ q(0176),
q(0),
],
q(russian sign language) => [
- q(0177),
+ q(0178),
q(0),
],
q(sabah malay) => [
@@ -1486,31 +1501,35 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(saudi arabian sign language) => [
- q(0178),
+ q(0180),
q(0),
],
+ q(sekak) => [
+ q(0120),
+ q(1),
+ ],
q(selangor sign language) => [
q(0113),
q(0),
],
q(shihhi arabic) => [
- q(0188),
+ q(0190),
q(0),
],
q(sierra leone sign language) => [
- q(0182),
+ q(0184),
q(0),
],
q(singapore sign language) => [
- q(0185),
+ q(0187),
q(0),
],
q(slovakian sign language) => [
- q(0191),
+ q(0193),
q(0),
],
q(south african sign language) => [
- q(0180),
+ q(0182),
q(0),
],
q(south levantine arabic) => [
@@ -1518,15 +1537,15 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(southern uzbek) => [
- q(0209),
+ q(0211),
q(0),
],
q(spanish sign language) => [
- q(0189),
+ q(0191),
q(0),
],
q(sri lankan sign language) => [
- q(0187),
+ q(0189),
q(0),
],
q(standard arabic) => [
@@ -1538,7 +1557,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(standard malay) => [
- q(0229),
+ q(0231),
q(0),
],
q(sudanese arabic) => [
@@ -1554,23 +1573,23 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(2),
],
q(swahili (individual language)) => [
- q(0193),
+ q(0195),
q(0),
],
q(swedish sign language) => [
- q(0194),
+ q(0196),
q(0),
],
q(swiss-french sign language) => [
- q(0190),
+ q(0192),
q(0),
],
q(swiss-german sign language) => [
- q(0181),
+ q(0183),
q(0),
],
q(swiss-italian sign language) => [
- q(0184),
+ q(0186),
q(0),
],
q(ta'izzi-adeni arabic) => [
@@ -1578,7 +1597,7 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(taiwan sign language) => [
- q(0200),
+ q(0202),
q(0),
],
q(tajiki arabic) => [
@@ -1586,23 +1605,23 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(tanzanian sign language) => [
- q(0202),
+ q(0204),
q(0),
],
q(tebul sign language) => [
- q(0201),
+ q(0203),
q(0),
],
q(temuan) => [
- q(0196),
+ q(0198),
q(0),
],
q(tenggarong kutai malay) => [
- q(0212),
+ q(0214),
q(0),
],
q(thai sign language) => [
- q(0199),
+ q(0201),
q(0),
],
q(trinidad and tobago sign language) => [
@@ -1614,35 +1633,35 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(tunisian sign language) => [
- q(0197),
+ q(0199),
q(0),
],
q(turk isaret dili) => [
- q(0198),
+ q(0200),
q(1),
],
q(turkish sign language) => [
- q(0198),
+ q(0200),
q(0),
],
q(ugandan sign language) => [
- q(0203),
+ q(0205),
q(0),
],
q(ukrainian sign language) => [
- q(0205),
+ q(0207),
q(0),
],
q(urak lawoi') => [
- q(0207),
+ q(0209),
q(0),
],
q(urubu-kaapor sign language) => [
- q(0206),
+ q(0208),
q(0),
],
q(uruguayan sign language) => [
- q(0204),
+ q(0206),
q(0),
],
q(uzbeki arabic) => [
@@ -1650,19 +1669,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(valencian sign language) => [
- q(0215),
+ q(0217),
q(0),
],
q(venezuelan sign language) => [
- q(0214),
+ q(0216),
q(0),
],
q(vlaamse gebarentaal) => [
- q(0210),
+ q(0212),
q(0),
],
q(wu chinese) => [
- q(0216),
+ q(0218),
q(0),
],
q(xiang chinese) => [
@@ -1670,11 +1689,11 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(yan-nhanu sign language) => [
- q(0222),
+ q(0224),
q(0),
],
q(yolnu sign language) => [
- q(0221),
+ q(0223),
q(0),
],
q(yucatec maya sign language) => [
@@ -1682,19 +1701,19 @@ $Locale::Codes::Data{'langext'}{'alias2id'} = {
q(0),
],
q(yue chinese) => [
- q(0224),
+ q(0226),
q(0),
],
q(yugoslavian sign language) => [
- q(0223),
+ q(0225),
q(0),
],
q(zambian sign language) => [
- q(0228),
+ q(0230),
q(0),
],
q(zimbabwe sign language) => [
- q(0225),
+ q(0227),
q(0),
],
};
@@ -2349,274 +2368,282 @@ $Locale::Codes::Data{'langext'}{'code2id'} = {
q(0162),
q(0),
],
- q(pks) => [
+ q(pgz) => [
q(0163),
q(0),
],
- q(prl) => [
+ q(pks) => [
q(0164),
q(0),
],
- q(prz) => [
+ q(prl) => [
q(0165),
q(0),
],
- q(psc) => [
+ q(prz) => [
q(0166),
q(0),
],
- q(psd) => [
+ q(psc) => [
q(0167),
q(0),
],
- q(pse) => [
+ q(psd) => [
q(0168),
q(0),
],
- q(psg) => [
+ q(pse) => [
q(0169),
q(0),
],
- q(psl) => [
+ q(psg) => [
q(0170),
q(0),
],
- q(pso) => [
+ q(psl) => [
q(0171),
q(0),
],
- q(psp) => [
+ q(pso) => [
q(0172),
q(0),
],
- q(psr) => [
+ q(psp) => [
q(0173),
q(0),
],
- q(pys) => [
+ q(psr) => [
q(0174),
q(0),
],
- q(rms) => [
+ q(pys) => [
q(0175),
q(0),
],
- q(rsi) => [
+ q(rms) => [
q(0176),
q(0),
],
- q(rsl) => [
+ q(rsi) => [
q(0177),
q(0),
],
- q(sdl) => [
+ q(rsl) => [
q(0178),
q(0),
],
- q(sfb) => [
+ q(rsm) => [
q(0179),
q(0),
],
- q(sfs) => [
+ q(sdl) => [
q(0180),
q(0),
],
- q(sgg) => [
+ q(sfb) => [
q(0181),
q(0),
],
- q(sgx) => [
+ q(sfs) => [
q(0182),
q(0),
],
- q(shu) => [
+ q(sgg) => [
q(0183),
q(0),
],
- q(slf) => [
+ q(sgx) => [
q(0184),
q(0),
],
- q(sls) => [
+ q(shu) => [
q(0185),
q(0),
],
- q(sqk) => [
+ q(slf) => [
q(0186),
q(0),
],
- q(sqs) => [
+ q(sls) => [
q(0187),
q(0),
],
- q(ssh) => [
+ q(sqk) => [
q(0188),
q(0),
],
- q(ssp) => [
+ q(sqs) => [
q(0189),
q(0),
],
- q(ssr) => [
+ q(ssh) => [
q(0190),
q(0),
],
- q(svk) => [
+ q(ssp) => [
q(0191),
q(0),
],
- q(swc) => [
+ q(ssr) => [
q(0192),
q(0),
],
- q(swh) => [
+ q(svk) => [
q(0193),
q(0),
],
- q(swl) => [
+ q(swc) => [
q(0194),
q(0),
],
- q(syy) => [
+ q(swh) => [
q(0195),
q(0),
],
- q(tmw) => [
+ q(swl) => [
q(0196),
q(0),
],
- q(tse) => [
+ q(syy) => [
q(0197),
q(0),
],
- q(tsm) => [
+ q(tmw) => [
q(0198),
q(0),
],
- q(tsq) => [
+ q(tse) => [
q(0199),
q(0),
],
- q(tss) => [
+ q(tsm) => [
q(0200),
q(0),
],
- q(tsy) => [
+ q(tsq) => [
q(0201),
q(0),
],
- q(tza) => [
+ q(tss) => [
q(0202),
q(0),
],
- q(ugn) => [
+ q(tsy) => [
q(0203),
q(0),
],
- q(ugy) => [
+ q(tza) => [
q(0204),
q(0),
],
- q(ukl) => [
+ q(ugn) => [
q(0205),
q(0),
],
- q(uks) => [
+ q(ugy) => [
q(0206),
q(0),
],
- q(urk) => [
+ q(ukl) => [
q(0207),
q(0),
],
- q(uzn) => [
+ q(uks) => [
q(0208),
q(0),
],
- q(uzs) => [
+ q(urk) => [
q(0209),
q(0),
],
- q(vgt) => [
+ q(uzn) => [
q(0210),
q(0),
],
- q(vkk) => [
+ q(uzs) => [
q(0211),
q(0),
],
- q(vkt) => [
+ q(vgt) => [
q(0212),
q(0),
],
- q(vsi) => [
+ q(vkk) => [
q(0213),
q(0),
],
- q(vsl) => [
+ q(vkt) => [
q(0214),
q(0),
],
- q(vsv) => [
+ q(vsi) => [
q(0215),
q(0),
],
- q(wuu) => [
+ q(vsl) => [
q(0216),
q(0),
],
- q(xki) => [
+ q(vsv) => [
q(0217),
q(0),
],
- q(xml) => [
+ q(wuu) => [
q(0218),
q(0),
],
- q(xmm) => [
+ q(xki) => [
q(0219),
q(0),
],
- q(xms) => [
+ q(xml) => [
q(0220),
q(0),
],
- q(ygs) => [
+ q(xmm) => [
q(0221),
q(0),
],
- q(yhs) => [
+ q(xms) => [
q(0222),
q(0),
],
- q(ysl) => [
+ q(ygs) => [
q(0223),
q(0),
],
- q(yue) => [
+ q(yhs) => [
q(0224),
q(0),
],
- q(zib) => [
+ q(ysl) => [
q(0225),
q(0),
],
- q(zlm) => [
+ q(yue) => [
q(0226),
q(0),
],
- q(zmi) => [
+ q(zib) => [
q(0227),
q(0),
],
- q(zsl) => [
+ q(zlm) => [
q(0228),
q(0),
],
- q(zsm) => [
+ q(zmi) => [
q(0229),
q(0),
],
+ q(zsl) => [
+ q(0230),
+ q(0),
+ ],
+ q(zsm) => [
+ q(0231),
+ q(0),
+ ],
},
};
@@ -2784,73 +2811,75 @@ $Locale::Codes::Data{'langext'}{'id2code'} = {
q(0160) => q(ors),
q(0161) => q(pel),
q(0162) => q(pga),
- q(0163) => q(pks),
- q(0164) => q(prl),
- q(0165) => q(prz),
- q(0166) => q(psc),
- q(0167) => q(psd),
- q(0168) => q(pse),
- q(0169) => q(psg),
- q(0170) => q(psl),
- q(0171) => q(pso),
- q(0172) => q(psp),
- q(0173) => q(psr),
- q(0174) => q(pys),
- q(0175) => q(rms),
- q(0176) => q(rsi),
- q(0177) => q(rsl),
- q(0178) => q(sdl),
- q(0179) => q(sfb),
- q(0180) => q(sfs),
- q(0181) => q(sgg),
- q(0182) => q(sgx),
- q(0183) => q(shu),
- q(0184) => q(slf),
- q(0185) => q(sls),
- q(0186) => q(sqk),
- q(0187) => q(sqs),
- q(0188) => q(ssh),
- q(0189) => q(ssp),
- q(0190) => q(ssr),
- q(0191) => q(svk),
- q(0192) => q(swc),
- q(0193) => q(swh),
- q(0194) => q(swl),
- q(0195) => q(syy),
- q(0196) => q(tmw),
- q(0197) => q(tse),
- q(0198) => q(tsm),
- q(0199) => q(tsq),
- q(0200) => q(tss),
- q(0201) => q(tsy),
- q(0202) => q(tza),
- q(0203) => q(ugn),
- q(0204) => q(ugy),
- q(0205) => q(ukl),
- q(0206) => q(uks),
- q(0207) => q(urk),
- q(0208) => q(uzn),
- q(0209) => q(uzs),
- q(0210) => q(vgt),
- q(0211) => q(vkk),
- q(0212) => q(vkt),
- q(0213) => q(vsi),
- q(0214) => q(vsl),
- q(0215) => q(vsv),
- q(0216) => q(wuu),
- q(0217) => q(xki),
- q(0218) => q(xml),
- q(0219) => q(xmm),
- q(0220) => q(xms),
- q(0221) => q(ygs),
- q(0222) => q(yhs),
- q(0223) => q(ysl),
- q(0224) => q(yue),
- q(0225) => q(zib),
- q(0226) => q(zlm),
- q(0227) => q(zmi),
- q(0228) => q(zsl),
- q(0229) => q(zsm),
+ q(0163) => q(pgz),
+ q(0164) => q(pks),
+ q(0165) => q(prl),
+ q(0166) => q(prz),
+ q(0167) => q(psc),
+ q(0168) => q(psd),
+ q(0169) => q(pse),
+ q(0170) => q(psg),
+ q(0171) => q(psl),
+ q(0172) => q(pso),
+ q(0173) => q(psp),
+ q(0174) => q(psr),
+ q(0175) => q(pys),
+ q(0176) => q(rms),
+ q(0177) => q(rsi),
+ q(0178) => q(rsl),
+ q(0179) => q(rsm),
+ q(0180) => q(sdl),
+ q(0181) => q(sfb),
+ q(0182) => q(sfs),
+ q(0183) => q(sgg),
+ q(0184) => q(sgx),
+ q(0185) => q(shu),
+ q(0186) => q(slf),
+ q(0187) => q(sls),
+ q(0188) => q(sqk),
+ q(0189) => q(sqs),
+ q(0190) => q(ssh),
+ q(0191) => q(ssp),
+ q(0192) => q(ssr),
+ q(0193) => q(svk),
+ q(0194) => q(swc),
+ q(0195) => q(swh),
+ q(0196) => q(swl),
+ q(0197) => q(syy),
+ q(0198) => q(tmw),
+ q(0199) => q(tse),
+ q(0200) => q(tsm),
+ q(0201) => q(tsq),
+ q(0202) => q(tss),
+ q(0203) => q(tsy),
+ q(0204) => q(tza),
+ q(0205) => q(ugn),
+ q(0206) => q(ugy),
+ q(0207) => q(ukl),
+ q(0208) => q(uks),
+ q(0209) => q(urk),
+ q(0210) => q(uzn),
+ q(0211) => q(uzs),
+ q(0212) => q(vgt),
+ q(0213) => q(vkk),
+ q(0214) => q(vkt),
+ q(0215) => q(vsi),
+ q(0216) => q(vsl),
+ q(0217) => q(vsv),
+ q(0218) => q(wuu),
+ q(0219) => q(xki),
+ q(0220) => q(xml),
+ q(0221) => q(xmm),
+ q(0222) => q(xms),
+ q(0223) => q(ygs),
+ q(0224) => q(yhs),
+ q(0225) => q(ysl),
+ q(0226) => q(yue),
+ q(0227) => q(zib),
+ q(0228) => q(zlm),
+ q(0229) => q(zmi),
+ q(0230) => q(zsl),
+ q(0231) => q(zsm),
},
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm
index a0ec2d28176..5bfa072ef7f 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangExt_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangExt_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Nov 18 09:22:54 EST 2016
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Retired{'langext'}{'alpha'}{'code'} = {
q(yds) => q(Yiddish Sign Language),
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm
index fccec91784b..08d934a9784 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pm
@@ -1,5 +1,5 @@
package Locale::Codes::LangFam;
-# Copyright (c) 2011-2015 Sullivan Beck
+# Copyright (c) 2011-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -20,7 +20,7 @@ use Locale::Codes::LangFam_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.37';
+$VERSION='3.42';
@ISA = qw(Exporter);
@EXPORT = qw(code2langfam
langfam2code
@@ -91,5 +91,5 @@ sub delete_langfam_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod
index acf71f5c910..478edb84b51 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam.pod
@@ -108,7 +108,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2015 Sullivan Beck
+ Copyright (c) 2011-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm
index 090806199ab..df5d47cfb41 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangFam_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:25 EST 2015
+# Generated on: Fri Nov 18 09:18:43 EST 2016
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Data{'langfam'}{'id'} = '0116';
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm
index 2fce4216977..d53fe5cd2ac 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangFam_Retired.pm
@@ -10,7 +10,7 @@ use warnings;
require 5.002;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Retired{'langfam'}{'alpha'}{'code'} = {
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm
index 23b20cffb05..a038eb7681e 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pm
@@ -1,5 +1,5 @@
package Locale::Codes::LangVar;
-# Copyright (c) 2011-2015 Sullivan Beck
+# Copyright (c) 2011-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -20,7 +20,7 @@ use Locale::Codes::LangVar_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.37';
+$VERSION='3.42';
@ISA = qw(Exporter);
@EXPORT = qw(code2langvar
langvar2code
@@ -92,5 +92,5 @@ sub delete_langvar_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod
index b815e13cb7f..6e6b895c79a 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar.pod
@@ -110,7 +110,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
- Copyright (c) 2011-2015 Sullivan Beck
+ Copyright (c) 2011-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm
index 7613dd056c6..a560edeb3e1 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangVar_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:22 EST 2015
+# Generated on: Fri Nov 18 09:18:40 EST 2016
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
-$Locale::Codes::Data{'langvar'}{'id'} = '0073';
+$Locale::Codes::Data{'langvar'}{'id'} = '0077';
$Locale::Codes::Data{'langvar'}{'id2names'} = {
q(0001) => [
@@ -63,102 +63,114 @@ $Locale::Codes::Data{'langvar'}{'id2names'} = {
q(The Barlavento dialect group of Kabuverdianu),
],
q(0016) => [
- q(Buddhist Hybrid Sanskrit),
+ q(Basic English),
],
q(0017) => [
- q(Biscayan dialect of Basque),
+ q(Buddhist Hybrid Sanskrit),
],
q(0018) => [
+ q(Biscayan dialect of Basque),
+ ],
+ q(0019) => [
q(The San Giorgio dialect of Resian),
q(The Bila dialect of Resian),
],
- q(0019) => [
+ q(0020) => [
q(Slovene in Bohoric alphabet),
],
- q(0020) => [
+ q(0021) => [
q(Boontling),
],
- q(0021) => [
+ q(0022) => [
q(Portuguese-Brazilian Orthographic Convention of 1945 (Convencao Ortografica Luso-Brasileira de 1945)),
],
- q(0022) => [
+ q(0023) => [
+ q(Cornu-English),
+ q(Cornish English),
+ q(Anglo-Cornish),
+ ],
+ q(0024) => [
q(Slovene in Dajnko alphabet),
],
- q(0023) => [
+ q(0025) => [
q(Serbian with Ekavian pronunciation),
],
- q(0024) => [
+ q(0026) => [
q(Early Modern English (1500-1700)),
],
- q(0025) => [
+ q(0027) => [
q(International Phonetic Alphabet),
],
- q(0026) => [
+ q(0028) => [
+ q(North American Phonetic Alphabet),
+ q(Americanist Phonetic Notation),
+ ],
+ q(0029) => [
q(Uralic Phonetic Alphabet),
],
- q(0027) => [
+ q(0030) => [
q(X-SAMPA transcription),
],
- q(0028) => [
+ q(0031) => [
q(Hepburn romanization),
],
- q(0029) => [
+ q(0032) => [
q(Norwegian in Hognorsk (High Norwegian) orthography),
],
- q(0030) => [
+ q(0033) => [
q(Serbian with Ijekavian pronunciation),
],
- q(0031) => [
+ q(0034) => [
q(Epic Sanskrit),
],
- q(0032) => [
+ q(0035) => [
q(Jauer dialect of Romansh),
],
- q(0033) => [
+ q(0036) => [
q(Jyutping Cantonese Romanization),
],
- q(0034) => [
+ q(0037) => [
q(Common Cornish orthography of Revived Cornish),
],
- q(0035) => [
+ q(0038) => [
q(The Kociewie dialect of Polish),
],
- q(0036) => [
+ q(0039) => [
q(Standard Cornish orthography of Revived Cornish),
q(Kernowek Standard),
],
- q(0037) => [
+ q(0040) => [
q(Classical Sanskrit),
],
- q(0038) => [
+ q(0041) => [
q(The Lipovaz dialect of Resian),
q(The Lipovec dialect of Resian),
],
- q(0039) => [
+ q(0042) => [
q(Post-1917 Russian orthography),
],
- q(0040) => [
+ q(0043) => [
q(Slovene in Metelko alphabet),
],
- q(0041) => [
+ q(0044) => [
q(Monotonic Greek),
],
- q(0042) => [
+ q(0045) => [
q(Ndyuka dialect),
q(Aukan dialect),
],
- q(0043) => [
+ q(0046) => [
q(Natisone dialect),
q(Nadiza dialect),
],
- q(0044) => [
+ q(0047) => [
q(Newfoundland English),
],
- q(0045) => [
+ q(0048) => [
q(The Gniva dialect of Resian),
q(The Njiva dialect of Resian),
],
- q(0046) => [
+ q(0049) => [
q(Volapuk nulik),
q(Volapuk perevidol),
q(Volapuk nuladik),
@@ -167,89 +179,92 @@ $Locale::Codes::Data{'langvar'}{'id2names'} = {
q(Revised Volapuk),
q(Modern Volapuk),
],
- q(0047) => [
+ q(0050) => [
q(The Oseacco dialect of Resian),
q(The Osojane dialect of Resian),
],
- q(0048) => [
+ q(0051) => [
q(Oxford English Dictionary spelling),
],
- q(0049) => [
+ q(0052) => [
q(Pamaka dialect),
],
- q(0050) => [
+ q(0053) => [
q(Petrine orthography),
],
- q(0051) => [
+ q(0054) => [
q(Pinyin romanization),
],
- q(0052) => [
+ q(0055) => [
q(Polytonic Greek),
],
- q(0053) => [
+ q(0056) => [
q(Puter idiom of Romansh),
],
- q(0054) => [
+ q(0057) => [
q(Volapuk rigik),
q(Schleyer's Volapuk),
q(Original Volapuk),
q(Classic Volapuk),
],
- q(0055) => [
+ q(0058) => [
q(Resian),
q(Resianic),
q(Rezijan),
],
- q(0056) => [
+ q(0059) => [
q(Rumantsch Grischun),
],
- q(0057) => [
+ q(0060) => [
q(Scottish Standard English),
],
- q(0058) => [
+ q(0061) => [
q(Scouse),
],
- q(0059) => [
+ q(0062) => [
+ q(Simplified form),
+ ],
+ q(0063) => [
q(The Stolvizza dialect of Resian),
q(The Solbica dialect of Resian),
],
- q(0060) => [
+ q(0064) => [
q(The Sotavento dialect group of Kabuverdianu),
],
- q(0061) => [
+ q(0065) => [
q(Surmiran idiom of Romansh),
],
- q(0062) => [
+ q(0066) => [
q(Sursilvan idiom of Romansh),
],
- q(0063) => [
+ q(0067) => [
q(Sutsilvan idiom of Romansh),
],
- q(0064) => [
+ q(0068) => [
q(Belarusian in Taraskievica orthography),
],
- q(0065) => [
+ q(0069) => [
q(Unified Cornish orthography of Revived Cornish),
],
- q(0066) => [
+ q(0070) => [
q(Unified Cornish Revised orthography of Revived Cornish),
],
- q(0067) => [
+ q(0071) => [
q(Ulster dialect of Scots),
],
- q(0068) => [
+ q(0072) => [
q(Unifon phonetic alphabet),
],
- q(0069) => [
+ q(0073) => [
q(Vedic Sanskrit),
],
- q(0070) => [
+ q(0074) => [
q(Valencian),
],
- q(0071) => [
+ q(0075) => [
q(Vallader idiom of Romansh),
],
- q(0072) => [
+ q(0076) => [
q(Wade-Giles romanization),
],
};
@@ -267,16 +282,28 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0009),
q(0),
],
+ q(americanist phonetic notation) => [
+ q(0028),
+ q(1),
+ ],
+ q(anglo-cornish) => [
+ q(0023),
+ q(2),
+ ],
q(aukan dialect) => [
- q(0042),
+ q(0045),
q(1),
],
+ q(basic english) => [
+ q(0016),
+ q(0),
+ ],
q(belarusian in taraskievica orthography) => [
- q(0064),
+ q(0068),
q(0),
],
q(biscayan dialect of basque) => [
- q(0017),
+ q(0018),
q(0),
],
q(boni dialect) => [
@@ -284,31 +311,39 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(1),
],
q(boontling) => [
- q(0020),
+ q(0021),
q(0),
],
q(buddhist hybrid sanskrit) => [
- q(0016),
+ q(0017),
q(0),
],
q(classic volapuk) => [
- q(0054),
+ q(0057),
q(3),
],
q(classical sanskrit) => [
- q(0037),
+ q(0040),
q(0),
],
q(common cornish orthography of revived cornish) => [
- q(0034),
+ q(0037),
+ q(0),
+ ],
+ q(cornish english) => [
+ q(0023),
+ q(1),
+ ],
+ q(cornu-english) => [
+ q(0023),
q(0),
],
q(de jong's volapuk) => [
- q(0046),
+ q(0049),
q(3),
],
q(early modern english (1500-1700)) => [
- q(0024),
+ q(0026),
q(0),
],
q(early modern french) => [
@@ -320,7 +355,7 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(epic sanskrit) => [
- q(0031),
+ q(0034),
q(0),
],
q(german orthography of 1996) => [
@@ -328,23 +363,23 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(hepburn romanization) => [
- q(0028),
+ q(0031),
q(0),
],
q(international phonetic alphabet) => [
- q(0025),
+ q(0027),
q(0),
],
q(jauer dialect of romansh) => [
- q(0032),
+ q(0035),
q(0),
],
q(jyutping cantonese romanization) => [
- q(0033),
+ q(0036),
q(0),
],
q(kernowek standard) => [
- q(0036),
+ q(0039),
q(1),
],
q(late middle french (to 1606)) => [
@@ -352,39 +387,43 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(modern volapuk) => [
- q(0046),
+ q(0049),
q(6),
],
q(monotonic greek) => [
- q(0041),
+ q(0044),
q(0),
],
q(nadiza dialect) => [
- q(0043),
+ q(0046),
q(1),
],
q(natisone dialect) => [
- q(0043),
+ q(0046),
q(0),
],
q(ndyuka dialect) => [
- q(0042),
+ q(0045),
q(0),
],
q(new volapuk) => [
- q(0046),
+ q(0049),
q(4),
],
q(newfoundland english) => [
- q(0044),
+ q(0047),
+ q(0),
+ ],
+ q(north american phonetic alphabet) => [
+ q(0028),
q(0),
],
q(norwegian in hognorsk (high norwegian) orthography) => [
- q(0029),
+ q(0032),
q(0),
],
q(original volapuk) => [
- q(0054),
+ q(0057),
q(2),
],
q(orthographic formulation of 1943 - official in brazil (formulario ortografico de 1943 - oficial no brasil)) => [
@@ -392,23 +431,23 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(oxford english dictionary spelling) => [
- q(0048),
+ q(0051),
q(0),
],
q(pamaka dialect) => [
- q(0049),
+ q(0052),
q(0),
],
q(petrine orthography) => [
- q(0050),
+ q(0053),
q(0),
],
q(pinyin romanization) => [
- q(0051),
+ q(0054),
q(0),
],
q(polytonic greek) => [
- q(0052),
+ q(0055),
q(0),
],
q(portuguese language orthographic agreement of 1990 (acordo ortografico da lingua portuguesa de 1990)) => [
@@ -416,71 +455,75 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(portuguese-brazilian orthographic convention of 1945 (convencao ortografica luso-brasileira de 1945)) => [
- q(0021),
+ q(0022),
q(0),
],
q(post-1917 russian orthography) => [
- q(0039),
+ q(0042),
q(0),
],
q(puter idiom of romansh) => [
- q(0053),
+ q(0056),
q(0),
],
q(resian) => [
- q(0055),
+ q(0058),
q(0),
],
q(resianic) => [
- q(0055),
+ q(0058),
q(1),
],
q(revised volapuk) => [
- q(0046),
+ q(0049),
q(5),
],
q(rezijan) => [
- q(0055),
+ q(0058),
q(2),
],
q(rumantsch grischun) => [
- q(0056),
+ q(0059),
q(0),
],
q(schleyer's volapuk) => [
- q(0054),
+ q(0057),
q(1),
],
q(scottish standard english) => [
- q(0057),
+ q(0060),
q(0),
],
q(scouse) => [
- q(0058),
+ q(0061),
q(0),
],
q(serbian with ekavian pronunciation) => [
- q(0023),
+ q(0025),
q(0),
],
q(serbian with ijekavian pronunciation) => [
- q(0030),
+ q(0033),
+ q(0),
+ ],
+ q(simplified form) => [
+ q(0062),
q(0),
],
q(slovene in bohoric alphabet) => [
- q(0019),
+ q(0020),
q(0),
],
q(slovene in dajnko alphabet) => [
- q(0022),
+ q(0024),
q(0),
],
q(slovene in metelko alphabet) => [
- q(0040),
+ q(0043),
q(0),
],
q(standard cornish orthography of revived cornish) => [
- q(0036),
+ q(0039),
q(0),
],
q(standardized resian orthography) => [
@@ -488,15 +531,15 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(surmiran idiom of romansh) => [
- q(0061),
+ q(0065),
q(0),
],
q(sursilvan idiom of romansh) => [
- q(0062),
+ q(0066),
q(0),
],
q(sutsilvan idiom of romansh) => [
- q(0063),
+ q(0067),
q(0),
],
q(the balanka dialect of anii) => [
@@ -508,51 +551,51 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(the bila dialect of resian) => [
- q(0018),
+ q(0019),
q(1),
],
q(the gniva dialect of resian) => [
- q(0045),
+ q(0048),
q(0),
],
q(the kociewie dialect of polish) => [
- q(0035),
+ q(0038),
q(0),
],
q(the lipovaz dialect of resian) => [
- q(0038),
+ q(0041),
q(0),
],
q(the lipovec dialect of resian) => [
- q(0038),
+ q(0041),
q(1),
],
q(the njiva dialect of resian) => [
- q(0045),
+ q(0048),
q(1),
],
q(the oseacco dialect of resian) => [
- q(0047),
+ q(0050),
q(0),
],
q(the osojane dialect of resian) => [
- q(0047),
+ q(0050),
q(1),
],
q(the san giorgio dialect of resian) => [
- q(0018),
+ q(0019),
q(0),
],
q(the solbica dialect of resian) => [
- q(0059),
+ q(0063),
q(1),
],
q(the sotavento dialect group of kabuverdianu) => [
- q(0060),
+ q(0064),
q(0),
],
q(the stolvizza dialect of resian) => [
- q(0059),
+ q(0063),
q(0),
],
q(traditional german orthography) => [
@@ -560,15 +603,15 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(ulster dialect of scots) => [
- q(0067),
+ q(0071),
q(0),
],
q(unified cornish orthography of revived cornish) => [
- q(0065),
+ q(0069),
q(0),
],
q(unified cornish revised orthography of revived cornish) => [
- q(0066),
+ q(0070),
q(0),
],
q(unified turkic latin alphabet (historical)) => [
@@ -576,43 +619,43 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(unifon phonetic alphabet) => [
- q(0068),
+ q(0072),
q(0),
],
q(uralic phonetic alphabet) => [
- q(0026),
+ q(0029),
q(0),
],
q(valencian) => [
- q(0070),
+ q(0074),
q(0),
],
q(vallader idiom of romansh) => [
- q(0071),
+ q(0075),
q(0),
],
q(vedic sanskrit) => [
- q(0069),
+ q(0073),
q(0),
],
q(volapuk nuladik) => [
- q(0046),
+ q(0049),
q(2),
],
q(volapuk nulik) => [
- q(0046),
+ q(0049),
q(0),
],
q(volapuk perevidol) => [
- q(0046),
+ q(0049),
q(1),
],
q(volapuk rigik) => [
- q(0054),
+ q(0057),
q(0),
],
q(wade-giles romanization) => [
- q(0072),
+ q(0076),
q(0),
],
q(western armenian) => [
@@ -620,7 +663,7 @@ $Locale::Codes::Data{'langvar'}{'alias2id'} = {
q(0),
],
q(x-sampa transcription) => [
- q(0027),
+ q(0030),
q(0),
],
};
@@ -687,234 +730,250 @@ $Locale::Codes::Data{'langvar'}{'code2id'} = {
q(0015),
q(0),
],
- q(bauddha) => [
+ q(basiceng) => [
q(0016),
q(0),
],
- q(biscayan) => [
+ q(bauddha) => [
q(0017),
q(0),
],
- q(biske) => [
+ q(biscayan) => [
q(0018),
q(0),
],
- q(bohoric) => [
+ q(biske) => [
q(0019),
q(0),
],
- q(boont) => [
+ q(bohoric) => [
q(0020),
q(0),
],
- q(colb1945) => [
+ q(boont) => [
q(0021),
q(0),
],
- q(dajnko) => [
+ q(colb1945) => [
q(0022),
q(0),
],
- q(ekavsk) => [
+ q(cornu) => [
q(0023),
q(0),
],
- q(emodeng) => [
+ q(dajnko) => [
q(0024),
q(0),
],
- q(fonipa) => [
+ q(ekavsk) => [
q(0025),
q(0),
],
- q(fonupa) => [
+ q(emodeng) => [
q(0026),
q(0),
],
- q(fonxsamp) => [
+ q(fonipa) => [
q(0027),
q(0),
],
- q(hepburn) => [
+ q(fonnapa) => [
q(0028),
q(0),
],
- q(hognorsk) => [
+ q(fonupa) => [
q(0029),
q(0),
],
- q(ijekavsk) => [
+ q(fonxsamp) => [
q(0030),
q(0),
],
- q(itihasa) => [
+ q(hepburn) => [
q(0031),
q(0),
],
- q(jauer) => [
+ q(hognorsk) => [
q(0032),
q(0),
],
- q(jyutping) => [
+ q(ijekavsk) => [
q(0033),
q(0),
],
- q(kkcor) => [
+ q(itihasa) => [
q(0034),
q(0),
],
- q(kociewie) => [
+ q(jauer) => [
q(0035),
q(0),
],
- q(kscor) => [
+ q(jyutping) => [
q(0036),
q(0),
],
- q(laukika) => [
+ q(kkcor) => [
q(0037),
q(0),
],
- q(lipaw) => [
+ q(kociewie) => [
q(0038),
q(0),
],
- q(luna1918) => [
+ q(kscor) => [
q(0039),
q(0),
],
- q(metelko) => [
+ q(laukika) => [
q(0040),
q(0),
],
- q(monoton) => [
+ q(lipaw) => [
q(0041),
q(0),
],
- q(ndyuka) => [
+ q(luna1918) => [
q(0042),
q(0),
],
- q(nedis) => [
+ q(metelko) => [
q(0043),
q(0),
],
- q(newfound) => [
+ q(monoton) => [
q(0044),
q(0),
],
- q(njiva) => [
+ q(ndyuka) => [
q(0045),
q(0),
],
- q(nulik) => [
+ q(nedis) => [
q(0046),
q(0),
],
- q(osojs) => [
+ q(newfound) => [
q(0047),
q(0),
],
- q(oxendict) => [
+ q(njiva) => [
q(0048),
q(0),
],
- q(pamaka) => [
+ q(nulik) => [
q(0049),
q(0),
],
- q(petr1708) => [
+ q(osojs) => [
q(0050),
q(0),
],
- q(pinyin) => [
+ q(oxendict) => [
q(0051),
q(0),
],
- q(polyton) => [
+ q(pamaka) => [
q(0052),
q(0),
],
- q(puter) => [
+ q(petr1708) => [
q(0053),
q(0),
],
- q(rigik) => [
+ q(pinyin) => [
q(0054),
q(0),
],
- q(rozaj) => [
+ q(polyton) => [
q(0055),
q(0),
],
- q(rumgr) => [
+ q(puter) => [
q(0056),
q(0),
],
- q(scotland) => [
+ q(rigik) => [
q(0057),
q(0),
],
- q(scouse) => [
+ q(rozaj) => [
q(0058),
q(0),
],
- q(solba) => [
+ q(rumgr) => [
q(0059),
q(0),
],
- q(sotav) => [
+ q(scotland) => [
q(0060),
q(0),
],
- q(surmiran) => [
+ q(scouse) => [
q(0061),
q(0),
],
- q(sursilv) => [
+ q(simple) => [
q(0062),
q(0),
],
- q(sutsilv) => [
+ q(solba) => [
q(0063),
q(0),
],
- q(tarask) => [
+ q(sotav) => [
q(0064),
q(0),
],
- q(uccor) => [
+ q(surmiran) => [
q(0065),
q(0),
],
- q(ucrcor) => [
+ q(sursilv) => [
q(0066),
q(0),
],
- q(ulster) => [
+ q(sutsilv) => [
q(0067),
q(0),
],
- q(unifon) => [
+ q(tarask) => [
q(0068),
q(0),
],
- q(vaidika) => [
+ q(uccor) => [
q(0069),
q(0),
],
- q(valencia) => [
+ q(ucrcor) => [
q(0070),
q(0),
],
- q(vallader) => [
+ q(ulster) => [
q(0071),
q(0),
],
- q(wadegile) => [
+ q(unifon) => [
q(0072),
q(0),
],
+ q(vaidika) => [
+ q(0073),
+ q(0),
+ ],
+ q(valencia) => [
+ q(0074),
+ q(0),
+ ],
+ q(vallader) => [
+ q(0075),
+ q(0),
+ ],
+ q(wadegile) => [
+ q(0076),
+ q(0),
+ ],
},
};
@@ -935,63 +994,67 @@ $Locale::Codes::Data{'langvar'}{'id2code'} = {
q(0013) => q(baku1926),
q(0014) => q(balanka),
q(0015) => q(barla),
- q(0016) => q(bauddha),
- q(0017) => q(biscayan),
- q(0018) => q(biske),
- q(0019) => q(bohoric),
- q(0020) => q(boont),
- q(0021) => q(colb1945),
- q(0022) => q(dajnko),
- q(0023) => q(ekavsk),
- q(0024) => q(emodeng),
- q(0025) => q(fonipa),
- q(0026) => q(fonupa),
- q(0027) => q(fonxsamp),
- q(0028) => q(hepburn),
- q(0029) => q(hognorsk),
- q(0030) => q(ijekavsk),
- q(0031) => q(itihasa),
- q(0032) => q(jauer),
- q(0033) => q(jyutping),
- q(0034) => q(kkcor),
- q(0035) => q(kociewie),
- q(0036) => q(kscor),
- q(0037) => q(laukika),
- q(0038) => q(lipaw),
- q(0039) => q(luna1918),
- q(0040) => q(metelko),
- q(0041) => q(monoton),
- q(0042) => q(ndyuka),
- q(0043) => q(nedis),
- q(0044) => q(newfound),
- q(0045) => q(njiva),
- q(0046) => q(nulik),
- q(0047) => q(osojs),
- q(0048) => q(oxendict),
- q(0049) => q(pamaka),
- q(0050) => q(petr1708),
- q(0051) => q(pinyin),
- q(0052) => q(polyton),
- q(0053) => q(puter),
- q(0054) => q(rigik),
- q(0055) => q(rozaj),
- q(0056) => q(rumgr),
- q(0057) => q(scotland),
- q(0058) => q(scouse),
- q(0059) => q(solba),
- q(0060) => q(sotav),
- q(0061) => q(surmiran),
- q(0062) => q(sursilv),
- q(0063) => q(sutsilv),
- q(0064) => q(tarask),
- q(0065) => q(uccor),
- q(0066) => q(ucrcor),
- q(0067) => q(ulster),
- q(0068) => q(unifon),
- q(0069) => q(vaidika),
- q(0070) => q(valencia),
- q(0071) => q(vallader),
- q(0072) => q(wadegile),
+ q(0016) => q(basiceng),
+ q(0017) => q(bauddha),
+ q(0018) => q(biscayan),
+ q(0019) => q(biske),
+ q(0020) => q(bohoric),
+ q(0021) => q(boont),
+ q(0022) => q(colb1945),
+ q(0023) => q(cornu),
+ q(0024) => q(dajnko),
+ q(0025) => q(ekavsk),
+ q(0026) => q(emodeng),
+ q(0027) => q(fonipa),
+ q(0028) => q(fonnapa),
+ q(0029) => q(fonupa),
+ q(0030) => q(fonxsamp),
+ q(0031) => q(hepburn),
+ q(0032) => q(hognorsk),
+ q(0033) => q(ijekavsk),
+ q(0034) => q(itihasa),
+ q(0035) => q(jauer),
+ q(0036) => q(jyutping),
+ q(0037) => q(kkcor),
+ q(0038) => q(kociewie),
+ q(0039) => q(kscor),
+ q(0040) => q(laukika),
+ q(0041) => q(lipaw),
+ q(0042) => q(luna1918),
+ q(0043) => q(metelko),
+ q(0044) => q(monoton),
+ q(0045) => q(ndyuka),
+ q(0046) => q(nedis),
+ q(0047) => q(newfound),
+ q(0048) => q(njiva),
+ q(0049) => q(nulik),
+ q(0050) => q(osojs),
+ q(0051) => q(oxendict),
+ q(0052) => q(pamaka),
+ q(0053) => q(petr1708),
+ q(0054) => q(pinyin),
+ q(0055) => q(polyton),
+ q(0056) => q(puter),
+ q(0057) => q(rigik),
+ q(0058) => q(rozaj),
+ q(0059) => q(rumgr),
+ q(0060) => q(scotland),
+ q(0061) => q(scouse),
+ q(0062) => q(simple),
+ q(0063) => q(solba),
+ q(0064) => q(sotav),
+ q(0065) => q(surmiran),
+ q(0066) => q(sursilv),
+ q(0067) => q(sutsilv),
+ q(0068) => q(tarask),
+ q(0069) => q(uccor),
+ q(0070) => q(ucrcor),
+ q(0071) => q(ulster),
+ q(0072) => q(unifon),
+ q(0073) => q(vaidika),
+ q(0074) => q(valencia),
+ q(0075) => q(vallader),
+ q(0076) => q(wadegile),
},
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm
index 3ebef842303..8b023ddce1e 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/LangVar_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::LangVar_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Nov 18 09:22:54 EST 2016
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Retired{'langvar'}{'alpha'}{'code'} = {
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm
index 4109d6c204f..0e3d03e63ea 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Language;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -22,7 +22,7 @@ use Locale::Codes::Language_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.37';
+$VERSION='3.42';
@ISA = qw(Exporter);
@EXPORT = qw(code2language
language2code
@@ -95,5 +95,5 @@ sub delete_language_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod
index 123d2a8e667..42ebe3ac84b 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Language.pod
@@ -129,7 +129,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm
index 51abf1bcb0e..f71447c0d7e 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::Language_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:41:14 EST 2015
+# Generated on: Tue Nov 29 15:43:44 EST 2016
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
-$Locale::Codes::Data{'language'}{'id'} = '7976';
+$Locale::Codes::Data{'language'}{'id'} = '7958';
$Locale::Codes::Data{'language'}{'id2names'} = {
q(0001) => [
@@ -1088,6 +1088,7 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(0328) => [
q(Oriya),
q(Oriya (macrolanguage)),
+ q(Odia (macrolanguage)),
],
q(0329) => [
q(Oromo),
@@ -3357,7 +3358,7 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(Bamu),
],
q(1070) => [
- q(Baga Binari),
+ q(Baga Pokur),
],
q(1071) => [
q(Bariai),
@@ -3666,20627 +3667,20585 @@ $Locale::Codes::Data{'language'}{'id2names'} = {
q(Bo (Laos)),
],
q(1172) => [
- q(Baga Mboteni),
- ],
- q(1173) => [
q(Western Balochi),
],
- q(1174) => [
+ q(1173) => [
q(Baga Koga),
],
- q(1175) => [
+ q(1174) => [
q(Eastern Balochi),
],
- q(1176) => [
+ q(1175) => [
q(Bagri),
],
- q(1177) => [
+ q(1176) => [
q(Bawm Chin),
],
- q(1178) => [
+ q(1177) => [
q(Tagabawa),
],
- q(1179) => [
+ q(1178) => [
q(Bughotu),
],
- q(1180) => [
+ q(1179) => [
q(Mbongno),
],
- q(1181) => [
+ q(1180) => [
q(Warkay-Bipim),
],
- q(1182) => [
+ q(1181) => [
q(Bhatri),
],
- q(1183) => [
+ q(1182) => [
q(Balkan Gagauz Turkish),
],
- q(1184) => [
+ q(1183) => [
q(Benggoi),
],
- q(1185) => [
+ q(1184) => [
q(Banggai),
],
- q(1186) => [
+ q(1185) => [
q(Bharia),
],
- q(1187) => [
+ q(1186) => [
q(Bhili),
],
- q(1188) => [
+ q(1187) => [
q(Biga),
],
- q(1189) => [
+ q(1188) => [
q(Bhadrawahi),
],
- q(1190) => [
+ q(1189) => [
q(Bhaya),
],
- q(1191) => [
+ q(1190) => [
q(Odiai),
],
- q(1192) => [
+ q(1191) => [
q(Binandere),
],
- q(1193) => [
+ q(1192) => [
q(Bukharic),
],
- q(1194) => [
+ q(1193) => [
q(Bhilali),
],
- q(1195) => [
+ q(1194) => [
q(Bahing),
],
- q(1196) => [
+ q(1195) => [
q(Bimin),
],
- q(1197) => [
+ q(1196) => [
q(Bathari),
],
- q(1198) => [
+ q(1197) => [
q(Bohtan Neo-Aramaic),
],
- q(1199) => [
+ q(1198) => [
q(Bima),
],
- q(1200) => [
+ q(1199) => [
q(Tukang Besi South),
],
- q(1201) => [
+ q(1200) => [
q(Bara Malagasy),
],
- q(1202) => [
+ q(1201) => [
q(Buwal),
],
- q(1203) => [
+ q(1202) => [
q(Bhattiyali),
],
- q(1204) => [
+ q(1203) => [
q(Bhunjia),
],
- q(1205) => [
+ q(1204) => [
q(Bahau),
],
- q(1206) => [
+ q(1205) => [
q(Biak),
],
- q(1207) => [
+ q(1206) => [
q(Bhalay),
],
- q(1208) => [
+ q(1207) => [
q(Bhele),
],
- q(1209) => [
+ q(1208) => [
q(Bada (Indonesia)),
],
- q(1210) => [
+ q(1209) => [
q(Badimaya),
],
- q(1211) => [
+ q(1210) => [
q(Bissa),
q(Bisa),
],
- q(1212) => [
+ q(1211) => [
q(Bikaru),
],
- q(1213) => [
+ q(1212) => [
q(Bidiyo),
],
- q(1214) => [
+ q(1213) => [
q(Bepour),
],
- q(1215) => [
+ q(1214) => [
q(Biafada),
],
- q(1216) => [
+ q(1215) => [
q(Biangai),
],
- q(1217) => [
+ q(1216) => [
q(Vaghat-Ya-Bijim-Legeri),
],
- q(1218) => [
+ q(1217) => [
q(Bile),
],
- q(1219) => [
+ q(1218) => [
q(Bimoba),
],
- q(1220) => [
+ q(1219) => [
q(Nai),
],
- q(1221) => [
+ q(1220) => [
q(Bila),
],
- q(1222) => [
+ q(1221) => [
q(Bipi),
],
- q(1223) => [
+ q(1222) => [
q(Bisorio),
],
- q(1224) => [
+ q(1223) => [
q(Berinomo),
],
- q(1225) => [
+ q(1224) => [
q(Biete),
],
- q(1226) => [
+ q(1225) => [
q(Southern Birifor),
],
- q(1227) => [
+ q(1226) => [
q(Kol (Cameroon)),
],
- q(1228) => [
+ q(1227) => [
q(Bijori),
],
- q(1229) => [
+ q(1228) => [
q(Birhor),
],
- q(1230) => [
+ q(1229) => [
q(Baloi),
],
- q(1231) => [
+ q(1230) => [
q(Budza),
],
- q(1232) => [
+ q(1231) => [
q(Banggarla),
],
- q(1233) => [
+ q(1232) => [
q(Bariji),
],
- q(1234) => [
+ q(1233) => [
q(Biao-Jiao Mien),
],
- q(1235) => [
+ q(1234) => [
q(Barzani Jewish Neo-Aramaic),
],
- q(1236) => [
+ q(1235) => [
q(Bidyogo),
],
- q(1237) => [
+ q(1236) => [
q(Bahinemo),
],
- q(1238) => [
+ q(1237) => [
q(Burji),
],
- q(1239) => [
+ q(1238) => [
q(Kanauji),
],
- q(1240) => [
+ q(1239) => [
q(Barok),
],
- q(1241) => [
+ q(1240) => [
q(Bulu (Papua New Guinea)),
],
- q(1242) => [
+ q(1241) => [
q(Bajelani),
],
- q(1243) => [
+ q(1242) => [
q(Banjar),
],
- q(1244) => [
+ q(1243) => [
q(Mid-Southern Banda),
],
- q(1245) => [
+ q(1244) => [
q(Fanamaket),
],
- q(1246) => [
+ q(1245) => [
q(Binumarien),
],
- q(1247) => [
+ q(1246) => [
q(Bajan),
],
- q(1248) => [
+ q(1247) => [
q(Balanta-Ganja),
],
- q(1249) => [
+ q(1248) => [
q(Busuu),
],
- q(1250) => [
+ q(1249) => [
q(Bedjond),
],
- q(1251) => [
+ q(1250) => [
q(Bakwe),
],
- q(1252) => [
+ q(1251) => [
q(Banao Itneg),
],
- q(1253) => [
+ q(1252) => [
q(Bayali),
],
- q(1254) => [
+ q(1253) => [
q(Baruga),
],
- q(1255) => [
+ q(1254) => [
q(Kyak),
],
- q(1256) => [
+ q(1255) => [
q(Baka (Cameroon)),
],
- q(1257) => [
+ q(1256) => [
q(Binukid),
q(Talaandig),
],
- q(1258) => [
+ q(1257) => [
q(Beeke),
],
- q(1259) => [
+ q(1258) => [
q(Buraka),
],
- q(1260) => [
+ q(1259) => [
q(Bakoko),
],
- q(1261) => [
+ q(1260) => [
q(Baki),
],
- q(1262) => [
+ q(1261) => [
q(Pande),
],
- q(1263) => [
+ q(1262) => [
q(Brokskat),
],
- q(1264) => [
+ q(1263) => [
q(Berik),
],
- q(1265) => [
+ q(1264) => [
q(Kom (Cameroon)),
],
- q(1266) => [
+ q(1265) => [
q(Bukitan),
],
- q(1267) => [
+ q(1266) => [
q(Kwa'),
],
- q(1268) => [
+ q(1267) => [
q(Boko (Democratic Republic of Congo)),
],
- q(1269) => [
+ q(1268) => [
q(Bakairi),
],
- q(1270) => [
+ q(1269) => [
q(Bakumpai),
],
- q(1271) => [
+ q(1270) => [
q(Northern Sorsoganon),
],
- q(1272) => [
+ q(1271) => [
q(Boloki),
],
- q(1273) => [
+ q(1272) => [
q(Buhid),
],
- q(1274) => [
+ q(1273) => [
q(Bekwarra),
],
- q(1275) => [
+ q(1274) => [
q(Bekwel),
],
- q(1276) => [
+ q(1275) => [
q(Baikeno),
],
- q(1277) => [
+ q(1276) => [
q(Bokyi),
],
- q(1278) => [
+ q(1277) => [
q(Bungku),
],
- q(1279) => [
+ q(1278) => [
q(Bilua),
],
- q(1280) => [
+ q(1279) => [
q(Bella Coola),
],
- q(1281) => [
+ q(1280) => [
q(Bolango),
],
- q(1282) => [
+ q(1281) => [
q(Balanta-Kentohe),
],
- q(1283) => [
+ q(1282) => [
q(Buol),
],
- q(1284) => [
+ q(1283) => [
q(Balau),
],
- q(1285) => [
+ q(1284) => [
q(Kuwaa),
],
- q(1286) => [
+ q(1285) => [
q(Bolia),
],
- q(1287) => [
+ q(1286) => [
q(Bolongan),
],
- q(1288) => [
+ q(1287) => [
q(Pa'o Karen),
q(Pa'O),
],
- q(1289) => [
+ q(1288) => [
q(Biloxi),
],
- q(1290) => [
+ q(1289) => [
q(Beli (Sudan)),
],
- q(1291) => [
+ q(1290) => [
q(Southern Catanduanes Bikol),
],
- q(1292) => [
+ q(1291) => [
q(Anii),
],
- q(1293) => [
+ q(1292) => [
q(Blablanga),
],
- q(1294) => [
+ q(1293) => [
q(Baluan-Pam),
],
- q(1295) => [
+ q(1294) => [
q(Blang),
],
- q(1296) => [
+ q(1295) => [
q(Balaesang),
],
- q(1297) => [
+ q(1296) => [
q(Tai Dam),
],
- q(1298) => [
+ q(1297) => [
q(Bolo),
],
- q(1299) => [
+ q(1298) => [
q(Balangao),
],
- q(1300) => [
+ q(1299) => [
q(Mag-Indi Ayta),
],
- q(1301) => [
+ q(1300) => [
q(Notre),
],
- q(1302) => [
+ q(1301) => [
q(Balantak),
],
- q(1303) => [
+ q(1302) => [
q(Lame),
],
- q(1304) => [
+ q(1303) => [
q(Bembe),
],
- q(1305) => [
+ q(1304) => [
q(Biem),
],
- q(1306) => [
+ q(1305) => [
q(Baga Manduri),
],
- q(1307) => [
+ q(1306) => [
q(Limassa),
],
- q(1308) => [
+ q(1307) => [
q(Bom),
],
- q(1309) => [
+ q(1308) => [
q(Bamwe),
],
- q(1310) => [
+ q(1309) => [
q(Kein),
],
- q(1311) => [
+ q(1310) => [
q(Bagirmi),
],
- q(1312) => [
+ q(1311) => [
q(Bote-Majhi),
],
- q(1313) => [
+ q(1312) => [
q(Ghayavi),
],
- q(1314) => [
+ q(1313) => [
q(Bomboli),
],
- q(1315) => [
+ q(1314) => [
q(Northern Betsimisaraka Malagasy),
],
- q(1316) => [
+ q(1315) => [
q(Bina (Papua New Guinea)),
],
- q(1317) => [
+ q(1316) => [
q(Bambalang),
],
- q(1318) => [
+ q(1317) => [
q(Bulgebi),
],
- q(1319) => [
+ q(1318) => [
q(Bomu),
],
- q(1320) => [
+ q(1319) => [
q(Muinane),
],
- q(1321) => [
+ q(1320) => [
q(Bilma Kanuri),
],
- q(1322) => [
+ q(1321) => [
q(Biao Mon),
],
- q(1323) => [
+ q(1322) => [
q(Somba-Siawari),
],
- q(1324) => [
+ q(1323) => [
q(Bum),
],
- q(1325) => [
+ q(1324) => [
q(Bomwali),
],
- q(1326) => [
+ q(1325) => [
q(Baimak),
],
- q(1327) => [
+ q(1326) => [
q(Baramu),
],
- q(1328) => [
+ q(1327) => [
q(Bonerate),
],
- q(1329) => [
+ q(1328) => [
q(Bookan),
],
- q(1330) => [
+ q(1329) => [
q(Bontok),
],
- q(1331) => [
+ q(1330) => [
q(Banda (Indonesia)),
],
- q(1332) => [
+ q(1331) => [
q(Bintauna),
],
- q(1333) => [
+ q(1332) => [
q(Masiwang),
],
- q(1334) => [
+ q(1333) => [
q(Benga),
],
- q(1335) => [
+ q(1334) => [
q(Bangi),
],
- q(1336) => [
+ q(1335) => [
q(Eastern Tawbuid),
],
- q(1337) => [
+ q(1336) => [
q(Bierebo),
],
- q(1338) => [
+ q(1337) => [
q(Boon),
],
- q(1339) => [
+ q(1338) => [
q(Batanga),
],
- q(1340) => [
+ q(1339) => [
q(Bunun),
],
- q(1341) => [
+ q(1340) => [
q(Bantoanon),
],
- q(1342) => [
+ q(1341) => [
q(Bola),
],
- q(1343) => [
+ q(1342) => [
q(Bantik),
],
- q(1344) => [
+ q(1343) => [
q(Butmas-Tur),
],
- q(1345) => [
+ q(1344) => [
q(Bundeli),
],
- q(1346) => [
+ q(1345) => [
q(Bentong),
],
- q(1347) => [
+ q(1346) => [
q(Bonerif),
q(Beneraf),
q(Edwas),
],
- q(1348) => [
+ q(1347) => [
q(Bisis),
],
- q(1349) => [
+ q(1348) => [
q(Bangubangu),
],
- q(1350) => [
+ q(1349) => [
q(Bintulu),
],
- q(1351) => [
+ q(1350) => [
q(Beezen),
],
- q(1352) => [
+ q(1351) => [
q(Bora),
],
- q(1353) => [
+ q(1352) => [
q(Aweer),
],
- q(1354) => [
+ q(1353) => [
q(Mundabli),
],
- q(1355) => [
+ q(1354) => [
q(Bolon),
],
- q(1356) => [
+ q(1355) => [
q(Bamako Sign Language),
],
- q(1357) => [
+ q(1356) => [
q(Boma),
],
- q(1358) => [
+ q(1357) => [
q(Barbareno),
],
- q(1359) => [
+ q(1358) => [
q(Anjam),
],
- q(1360) => [
+ q(1359) => [
q(Bonjo),
],
- q(1361) => [
+ q(1360) => [
q(Bole),
],
- q(1362) => [
+ q(1361) => [
q(Berom),
],
- q(1363) => [
+ q(1362) => [
q(Bine),
],
- q(1364) => [
+ q(1363) => [
q(Tiemacewe Bozo),
],
- q(1365) => [
+ q(1364) => [
q(Bonkiman),
],
- q(1366) => [
+ q(1365) => [
q(Bogaya),
],
- q(1367) => [
+ q(1366) => [
q(Bororo),
],
- q(1368) => [
+ q(1367) => [
q(Bongo),
],
- q(1369) => [
+ q(1368) => [
q(Bondei),
],
- q(1370) => [
+ q(1369) => [
q(Tuwuli),
],
- q(1371) => [
+ q(1370) => [
q(Rema),
],
- q(1372) => [
+ q(1371) => [
q(Buamu),
],
- q(1373) => [
+ q(1372) => [
q(Bodo (Central African Republic)),
],
- q(1374) => [
+ q(1373) => [
q(Tieyaxo Bozo),
],
- q(1375) => [
+ q(1374) => [
q(Daakaka),
],
- q(1376) => [
+ q(1375) => [
q(Barbacoas),
],
- q(1377) => [
+ q(1376) => [
q(Banda-Banda),
],
- q(1378) => [
+ q(1377) => [
q(Bonggo),
],
- q(1379) => [
+ q(1378) => [
q(Botlikh),
],
- q(1380) => [
+ q(1379) => [
q(Bagupi),
],
- q(1381) => [
+ q(1380) => [
q(Binji),
],
- q(1382) => [
+ q(1381) => [
q(Orowe),
q('Oroe),
],
- q(1383) => [
+ q(1382) => [
q(Broome Pearling Lugger Pidgin),
],
- q(1384) => [
+ q(1383) => [
q(Biyom),
],
- q(1385) => [
+ q(1384) => [
q(Dzao Min),
],
- q(1386) => [
+ q(1385) => [
q(Anasi),
],
- q(1387) => [
+ q(1386) => [
q(Kaure),
],
- q(1388) => [
+ q(1387) => [
q(Banda Malay),
],
- q(1389) => [
+ q(1388) => [
q(Koronadal Blaan),
],
- q(1390) => [
+ q(1389) => [
q(Sarangani Blaan),
],
- q(1391) => [
+ q(1390) => [
q(Barrow Point),
],
- q(1392) => [
+ q(1391) => [
q(Bongu),
],
- q(1393) => [
+ q(1392) => [
q(Bian Marind),
],
- q(1394) => [
+ q(1393) => [
q(Bo (Papua New Guinea)),
],
- q(1395) => [
+ q(1394) => [
q(Palya Bareli),
],
- q(1396) => [
+ q(1395) => [
q(Bishnupriya),
],
- q(1397) => [
+ q(1396) => [
q(Bilba),
],
- q(1398) => [
+ q(1397) => [
q(Tchumbuli),
],
- q(1399) => [
+ q(1398) => [
q(Bagusa),
],
- q(1400) => [
+ q(1399) => [
q(Boko (Benin)),
q(Boo),
],
- q(1401) => [
+ q(1400) => [
q(Bung),
],
- q(1402) => [
+ q(1401) => [
q(Baga Kaloum),
],
- q(1403) => [
+ q(1402) => [
q(Bago-Kusuntu),
],
- q(1404) => [
+ q(1403) => [
q(Baima),
],
- q(1405) => [
+ q(1404) => [
q(Bakhtiari),
],
- q(1406) => [
+ q(1405) => [
q(Bandial),
],
- q(1407) => [
+ q(1406) => [
q(Banda-Mbres),
],
- q(1408) => [
+ q(1407) => [
q(Bilakura),
],
- q(1409) => [
+ q(1408) => [
q(Wumboko),
],
- q(1410) => [
+ q(1409) => [
q(Bulgarian Sign Language),
],
- q(1411) => [
+ q(1410) => [
q(Balo),
],
- q(1412) => [
+ q(1411) => [
q(Busa),
],
- q(1413) => [
+ q(1412) => [
q(Biritai),
],
- q(1414) => [
+ q(1413) => [
q(Burusu),
],
- q(1415) => [
+ q(1414) => [
q(Bosngun),
],
- q(1416) => [
+ q(1415) => [
q(Bamukumbit),
],
- q(1417) => [
+ q(1416) => [
q(Boguru),
],
- q(1418) => [
+ q(1417) => [
q(Koro Wachi),
q(Begbere-Ejar),
],
- q(1419) => [
+ q(1418) => [
q(Buru (Nigeria)),
],
- q(1420) => [
+ q(1419) => [
q(Baangi),
],
- q(1421) => [
+ q(1420) => [
q(Bengkala Sign Language),
],
- q(1422) => [
+ q(1421) => [
q(Bakaka),
],
- q(1423) => [
+ q(1422) => [
q(Lave),
],
- q(1424) => [
+ q(1423) => [
q(Berbice Creole Dutch),
],
- q(1425) => [
+ q(1424) => [
q(Baraamu),
],
- q(1426) => [
+ q(1425) => [
q(Bera),
],
- q(1427) => [
+ q(1426) => [
q(Baure),
],
- q(1428) => [
+ q(1427) => [
q(Brahui),
],
- q(1429) => [
+ q(1428) => [
q(Mokpwe),
],
- q(1430) => [
+ q(1429) => [
q(Bieria),
],
- q(1431) => [
+ q(1430) => [
q(Birked),
],
- q(1432) => [
+ q(1431) => [
q(Birwa),
],
- q(1433) => [
+ q(1432) => [
q(Barambu),
],
- q(1434) => [
+ q(1433) => [
q(Boruca),
],
- q(1435) => [
+ q(1434) => [
q(Brokkat),
],
- q(1436) => [
+ q(1435) => [
q(Barapasi),
],
- q(1437) => [
+ q(1436) => [
q(Breri),
],
- q(1438) => [
+ q(1437) => [
q(Birao),
],
- q(1439) => [
+ q(1438) => [
q(Baras),
],
- q(1440) => [
+ q(1439) => [
q(Bitare),
],
- q(1441) => [
+ q(1440) => [
q(Eastern Bru),
],
- q(1442) => [
+ q(1441) => [
q(Western Bru),
],
- q(1443) => [
+ q(1442) => [
q(Bellari),
],
- q(1444) => [
+ q(1443) => [
q(Bodo (India)),
],
- q(1445) => [
+ q(1444) => [
q(Burui),
],
- q(1446) => [
+ q(1445) => [
q(Bilbil),
],
- q(1447) => [
+ q(1446) => [
q(Abinomn),
],
- q(1448) => [
+ q(1447) => [
q(Brunei Bisaya),
],
- q(1449) => [
+ q(1448) => [
q(Bassari),
q(Oniyan),
],
- q(1450) => [
+ q(1449) => [
q(Wushi),
],
- q(1451) => [
+ q(1450) => [
q(Bauchi),
],
- q(1452) => [
+ q(1451) => [
q(Bashkardi),
],
- q(1453) => [
+ q(1452) => [
q(Kati),
],
- q(1454) => [
+ q(1453) => [
q(Bassossi),
],
- q(1455) => [
+ q(1454) => [
q(Bangwinji),
],
- q(1456) => [
+ q(1455) => [
q(Burushaski),
],
- q(1457) => [
+ q(1456) => [
q(Basa-Gumna),
],
- q(1458) => [
+ q(1457) => [
q(Busami),
],
- q(1459) => [
+ q(1458) => [
q(Barasana-Eduria),
],
- q(1460) => [
+ q(1459) => [
q(Buso),
],
- q(1461) => [
+ q(1460) => [
q(Baga Sitemu),
],
- q(1462) => [
+ q(1461) => [
q(Bassa),
],
- q(1463) => [
+ q(1462) => [
q(Bassa-Kontagora),
],
- q(1464) => [
+ q(1463) => [
q(Akoose),
],
- q(1465) => [
+ q(1464) => [
q(Basketo),
],
- q(1466) => [
+ q(1465) => [
q(Bahonsuai),
],
- q(1467) => [
+ q(1466) => [
q(Baga Sobane),
],
- q(1468) => [
+ q(1467) => [
q(Baiso),
],
- q(1469) => [
+ q(1468) => [
q(Yangkam),
],
- q(1470) => [
+ q(1469) => [
q(Sabah Bisaya),
],
- q(1471) => [
+ q(1470) => [
q(Bata),
],
- q(1472) => [
+ q(1471) => [
q(Bati (Cameroon)),
],
- q(1473) => [
+ q(1472) => [
q(Batak Dairi),
],
- q(1474) => [
+ q(1473) => [
q(Gamo-Ningi),
],
- q(1475) => [
+ q(1474) => [
q(Birgit),
],
- q(1476) => [
+ q(1475) => [
q(Gagnoa Bete),
],
- q(1477) => [
+ q(1476) => [
q(Biatah Bidayuh),
],
- q(1478) => [
+ q(1477) => [
q(Burate),
],
- q(1479) => [
+ q(1478) => [
q(Bacanese Malay),
],
- q(1480) => [
- q(Bhatola),
- ],
- q(1481) => [
+ q(1479) => [
q(Batak Mandailing),
],
- q(1482) => [
+ q(1480) => [
q(Ratagnon),
],
- q(1483) => [
+ q(1481) => [
q(Rinconada Bikol),
],
- q(1484) => [
+ q(1482) => [
q(Budibud),
],
- q(1485) => [
+ q(1483) => [
q(Batek),
],
- q(1486) => [
+ q(1484) => [
q(Baetora),
],
- q(1487) => [
+ q(1485) => [
q(Batak Simalungun),
],
- q(1488) => [
+ q(1486) => [
q(Bete-Bendi),
],
- q(1489) => [
+ q(1487) => [
q(Batu),
],
- q(1490) => [
+ q(1488) => [
q(Bateri),
],
- q(1491) => [
+ q(1489) => [
q(Butuanon),
],
- q(1492) => [
+ q(1490) => [
q(Batak Karo),
],
- q(1493) => [
+ q(1491) => [
q(Bobot),
],
- q(1494) => [
+ q(1492) => [
q(Batak Alas-Kluet),
],
- q(1495) => [
+ q(1493) => [
q(Bua),
],
- q(1496) => [
+ q(1494) => [
q(Bushi),
],
- q(1497) => [
+ q(1495) => [
q(Ntcham),
],
- q(1498) => [
+ q(1496) => [
q(Beothuk),
],
- q(1499) => [
+ q(1497) => [
q(Bushoong),
],
- q(1500) => [
+ q(1498) => [
q(Younuo Bunu),
],
- q(1501) => [
+ q(1499) => [
q(Bongili),
],
- q(1502) => [
+ q(1500) => [
q(Basa-Gurmana),
],
- q(1503) => [
+ q(1501) => [
q(Bugawac),
],
- q(1504) => [
+ q(1502) => [
q(Bulu (Cameroon)),
],
- q(1505) => [
+ q(1503) => [
q(Sherbro),
],
- q(1506) => [
+ q(1504) => [
q(Terei),
],
- q(1507) => [
+ q(1505) => [
q(Busoa),
],
- q(1508) => [
+ q(1506) => [
q(Brem),
],
- q(1509) => [
+ q(1507) => [
q(Bokobaru),
],
- q(1510) => [
+ q(1508) => [
q(Bungain),
],
- q(1511) => [
+ q(1509) => [
q(Budu),
],
- q(1512) => [
+ q(1510) => [
q(Bun),
],
- q(1513) => [
+ q(1511) => [
q(Bubi),
],
- q(1514) => [
+ q(1512) => [
q(Boghom),
],
- q(1515) => [
+ q(1513) => [
q(Bullom So),
],
- q(1516) => [
+ q(1514) => [
q(Bukwen),
],
- q(1517) => [
+ q(1515) => [
q(Barein),
],
- q(1518) => [
+ q(1516) => [
q(Bube),
],
- q(1519) => [
+ q(1517) => [
q(Baelelea),
],
- q(1520) => [
+ q(1518) => [
q(Baeggu),
],
- q(1521) => [
+ q(1519) => [
q(Berau Malay),
],
- q(1522) => [
+ q(1520) => [
q(Boor),
],
- q(1523) => [
+ q(1521) => [
q(Bonkeng),
],
- q(1524) => [
+ q(1522) => [
q(Bure),
],
- q(1525) => [
+ q(1523) => [
q(Belanda Viri),
],
- q(1526) => [
+ q(1524) => [
q(Baan),
],
- q(1527) => [
+ q(1525) => [
q(Bukat),
],
- q(1528) => [
+ q(1526) => [
q(Bolivian Sign Language),
],
- q(1529) => [
+ q(1527) => [
q(Bamunka),
],
- q(1530) => [
+ q(1528) => [
q(Buna),
],
- q(1531) => [
+ q(1529) => [
q(Bolgo),
],
- q(1532) => [
+ q(1530) => [
q(Bumang),
],
- q(1533) => [
+ q(1531) => [
q(Birri),
],
- q(1534) => [
+ q(1532) => [
q(Burarra),
],
- q(1535) => [
+ q(1533) => [
q(Bati (Indonesia)),
],
- q(1536) => [
+ q(1534) => [
q(Bukit Malay),
],
- q(1537) => [
+ q(1535) => [
q(Baniva),
],
- q(1538) => [
+ q(1536) => [
q(Boga),
],
- q(1539) => [
+ q(1537) => [
q(Dibole),
],
- q(1540) => [
+ q(1538) => [
q(Baybayanon),
],
- q(1541) => [
+ q(1539) => [
q(Bauzi),
],
- q(1542) => [
+ q(1540) => [
q(Bwatoo),
],
- q(1543) => [
+ q(1541) => [
q(Namosi-Naitasiri-Serua),
],
- q(1544) => [
+ q(1542) => [
q(Bwile),
],
- q(1545) => [
+ q(1543) => [
q(Bwaidoka),
],
- q(1546) => [
+ q(1544) => [
q(Bwe Karen),
],
- q(1547) => [
+ q(1545) => [
q(Boselewa),
],
- q(1548) => [
+ q(1546) => [
q(Barwe),
],
- q(1549) => [
+ q(1547) => [
q(Bishuo),
],
- q(1550) => [
+ q(1548) => [
q(Baniwa),
],
- q(1551) => [
+ q(1549) => [
q(Laa Laa Bwamu),
],
- q(1552) => [
+ q(1550) => [
q(Bauwaki),
],
- q(1553) => [
+ q(1551) => [
q(Bwela),
],
- q(1554) => [
+ q(1552) => [
q(Biwat),
],
- q(1555) => [
+ q(1553) => [
q(Wunai Bunu),
],
- q(1556) => [
+ q(1554) => [
q(Boro (Ethiopia)),
q(Borna (Ethiopia)),
],
- q(1557) => [
+ q(1555) => [
q(Mandobo Bawah),
],
- q(1558) => [
+ q(1556) => [
q(Southern Bobo Madare),
],
- q(1559) => [
+ q(1557) => [
q(Bura-Pabir),
],
- q(1560) => [
+ q(1558) => [
q(Bomboma),
],
- q(1561) => [
+ q(1559) => [
q(Bafaw-Balong),
],
- q(1562) => [
+ q(1560) => [
q(Buli (Ghana)),
],
- q(1563) => [
+ q(1561) => [
q(Bwa),
],
- q(1564) => [
+ q(1562) => [
q(Bu-Nao Bunu),
],
- q(1565) => [
+ q(1563) => [
q(Cwi Bwamu),
],
- q(1566) => [
+ q(1564) => [
q(Bwisi),
],
- q(1567) => [
+ q(1565) => [
q(Tairaha),
],
- q(1568) => [
+ q(1566) => [
q(Belanda Bor),
],
- q(1569) => [
+ q(1567) => [
q(Molengue),
],
- q(1570) => [
+ q(1568) => [
q(Pela),
],
- q(1571) => [
+ q(1569) => [
q(Birale),
],
- q(1572) => [
+ q(1570) => [
q(Bilur),
q(Minigir),
],
- q(1573) => [
+ q(1571) => [
q(Bangala),
],
- q(1574) => [
+ q(1572) => [
q(Buhutu),
],
- q(1575) => [
+ q(1573) => [
q(Pirlatapa),
],
- q(1576) => [
+ q(1574) => [
q(Bayungu),
],
- q(1577) => [
+ q(1575) => [
q(Bukusu),
q(Lubukusu),
],
- q(1578) => [
+ q(1576) => [
q(Jalkunan),
],
- q(1579) => [
+ q(1577) => [
q(Mongolia Buriat),
],
- q(1580) => [
+ q(1578) => [
q(Burduna),
],
- q(1581) => [
+ q(1579) => [
q(Barikanchi),
],
- q(1582) => [
+ q(1580) => [
q(Bebil),
],
- q(1583) => [
+ q(1581) => [
q(Beele),
],
- q(1584) => [
+ q(1582) => [
q(Russia Buriat),
],
- q(1585) => [
+ q(1583) => [
q(Busam),
],
- q(1586) => [
+ q(1584) => [
q(China Buriat),
],
- q(1587) => [
+ q(1585) => [
q(Berakou),
],
- q(1588) => [
+ q(1586) => [
q(Bankagooma),
],
- q(1589) => [
+ q(1587) => [
q(Binahari),
],
- q(1590) => [
+ q(1588) => [
q(Batak),
],
- q(1591) => [
+ q(1589) => [
q(Bikya),
],
- q(1592) => [
+ q(1590) => [
q(Ubaghara),
],
- q(1593) => [
+ q(1591) => [
q(Benyadu'),
],
- q(1594) => [
+ q(1592) => [
q(Pouye),
],
- q(1595) => [
+ q(1593) => [
q(Bete),
],
- q(1596) => [
+ q(1594) => [
q(Baygo),
],
- q(1597) => [
+ q(1595) => [
q(Bhujel),
],
- q(1598) => [
+ q(1596) => [
q(Buyu),
],
- q(1599) => [
+ q(1597) => [
q(Bina (Nigeria)),
],
- q(1600) => [
+ q(1598) => [
q(Biao),
],
- q(1601) => [
+ q(1599) => [
q(Bayono),
],
- q(1602) => [
+ q(1600) => [
q(Bidyara),
],
- q(1603) => [
+ q(1601) => [
q(Biyo),
],
- q(1604) => [
+ q(1602) => [
q(Bumaji),
],
- q(1605) => [
+ q(1603) => [
q(Basay),
],
- q(1606) => [
+ q(1604) => [
q(Baruya),
q(Yipma),
],
- q(1607) => [
+ q(1605) => [
q(Burak),
],
- q(1608) => [
+ q(1606) => [
q(Berti),
],
- q(1609) => [
+ q(1607) => [
q(Medumba),
],
- q(1610) => [
+ q(1608) => [
q(Belhariya),
],
- q(1611) => [
+ q(1609) => [
q(Qaqet),
],
- q(1612) => [
+ q(1610) => [
q(Banaro),
],
- q(1613) => [
+ q(1611) => [
q(Bandi),
],
- q(1614) => [
+ q(1612) => [
q(Andio),
],
- q(1615) => [
+ q(1613) => [
q(Southern Betsimisaraka Malagasy),
],
- q(1616) => [
+ q(1614) => [
q(Bribri),
],
- q(1617) => [
+ q(1615) => [
q(Jenaama Bozo),
],
- q(1618) => [
+ q(1616) => [
q(Boikin),
],
- q(1619) => [
+ q(1617) => [
q(Babuza),
],
- q(1620) => [
+ q(1618) => [
q(Mapos Buang),
],
- q(1621) => [
+ q(1619) => [
q(Bisu),
],
- q(1622) => [
+ q(1620) => [
q(Belize Kriol English),
],
- q(1623) => [
+ q(1621) => [
q(Nicaragua Creole English),
],
- q(1624) => [
+ q(1622) => [
q(Boano (Sulawesi)),
],
- q(1625) => [
+ q(1623) => [
q(Bolondo),
],
- q(1626) => [
+ q(1624) => [
q(Boano (Maluku)),
],
- q(1627) => [
+ q(1625) => [
q(Bozaba),
],
- q(1628) => [
+ q(1626) => [
q(Kemberano),
],
- q(1629) => [
+ q(1627) => [
q(Buli (Indonesia)),
],
- q(1630) => [
+ q(1628) => [
q(Biri),
],
- q(1631) => [
+ q(1629) => [
q(Brazilian Sign Language),
],
- q(1632) => [
+ q(1630) => [
q(Brithenig),
],
- q(1633) => [
+ q(1631) => [
q(Burmeso),
],
- q(1634) => [
+ q(1632) => [
q(Naami),
],
- q(1635) => [
+ q(1633) => [
q(Basa (Nigeria)),
],
- q(1636) => [
+ q(1634) => [
q(Kelengazxo Bozo),
],
- q(1637) => [
+ q(1635) => [
q(Obanliku),
],
- q(1638) => [
+ q(1636) => [
q(Evant),
],
- q(1639) => [
+ q(1637) => [
q(Chorti),
],
- q(1640) => [
+ q(1638) => [
q(Garifuna),
],
- q(1641) => [
+ q(1639) => [
q(Chuj),
],
- q(1642) => [
+ q(1640) => [
q(Lehar),
q(Laalaa),
],
- q(1643) => [
+ q(1641) => [
q(Southern Carrier),
],
- q(1644) => [
+ q(1642) => [
q(Nivacle),
],
- q(1645) => [
+ q(1643) => [
q(Cahuarano),
],
- q(1646) => [
+ q(1644) => [
q(Chane),
],
- q(1647) => [
+ q(1645) => [
q(Kaqchikel),
q(Cakchiquel),
],
- q(1648) => [
+ q(1646) => [
q(Carolinian),
],
- q(1649) => [
+ q(1647) => [
q(Cemuhi),
],
- q(1650) => [
+ q(1648) => [
q(Chambri),
],
- q(1651) => [
+ q(1649) => [
q(Chacobo),
],
- q(1652) => [
+ q(1650) => [
q(Chipaya),
],
- q(1653) => [
+ q(1651) => [
q(Car Nicobarese),
],
- q(1654) => [
+ q(1652) => [
q(Tsimane),
],
- q(1655) => [
+ q(1653) => [
q(Cavinena),
],
- q(1656) => [
+ q(1654) => [
q(Callawalla),
],
- q(1657) => [
+ q(1655) => [
q(Chiquitano),
],
- q(1658) => [
+ q(1656) => [
q(Cayuga),
],
- q(1659) => [
+ q(1657) => [
q(Canichana),
],
- q(1660) => [
+ q(1658) => [
q(Cabiyari),
],
- q(1661) => [
+ q(1659) => [
q(Carapana),
],
- q(1662) => [
+ q(1660) => [
q(Carijona),
],
- q(1663) => [
- q(Chipiajes),
- ],
- q(1664) => [
+ q(1661) => [
q(Chimila),
],
- q(1665) => [
- q(Cagua),
- ],
- q(1666) => [
+ q(1662) => [
q(Chachi),
],
- q(1667) => [
+ q(1663) => [
q(Ede Cabe),
],
- q(1668) => [
+ q(1664) => [
q(Chavacano),
],
- q(1669) => [
+ q(1665) => [
q(Bualkhaw Chin),
],
- q(1670) => [
+ q(1666) => [
q(Nyahkur),
],
- q(1671) => [
+ q(1667) => [
q(Izora),
],
- q(1672) => [
+ q(1668) => [
q(Tsucuba),
q(Cuba),
],
- q(1673) => [
+ q(1669) => [
q(Cashibo-Cacataibo),
],
- q(1674) => [
+ q(1670) => [
q(Cashinahua),
],
- q(1675) => [
+ q(1671) => [
q(Chayahuita),
],
- q(1676) => [
+ q(1672) => [
q(Candoshi-Shapra),
],
- q(1677) => [
+ q(1673) => [
q(Cacua),
],
- q(1678) => [
+ q(1674) => [
q(Kinabalian),
],
- q(1679) => [
+ q(1675) => [
q(Carabayo),
],
- q(1680) => [
+ q(1676) => [
q(Cauca),
],
- q(1681) => [
+ q(1677) => [
q(Chamicuro),
],
- q(1682) => [
+ q(1678) => [
q(Cafundo Creole),
],
- q(1683) => [
+ q(1679) => [
q(Chopi),
],
- q(1684) => [
+ q(1680) => [
q(Samba Daka),
],
- q(1685) => [
+ q(1681) => [
q(Atsam),
],
- q(1686) => [
+ q(1682) => [
q(Kasanga),
],
- q(1687) => [
+ q(1683) => [
q(Cutchi-Swahili),
],
- q(1688) => [
+ q(1684) => [
q(Malaccan Creole Malay),
],
- q(1689) => [
+ q(1685) => [
q(Comaltepec Chinantec),
],
- q(1690) => [
+ q(1686) => [
q(Chakma),
],
- q(1691) => [
+ q(1687) => [
q(Cacaopera),
],
- q(1692) => [
+ q(1688) => [
q(Choni),
],
- q(1693) => [
+ q(1689) => [
q(Chenchu),
],
- q(1694) => [
+ q(1690) => [
q(Chiru),
],
- q(1695) => [
+ q(1691) => [
q(Chamari),
],
- q(1696) => [
+ q(1692) => [
q(Chambeali),
],
- q(1697) => [
+ q(1693) => [
q(Chodri),
],
- q(1698) => [
+ q(1694) => [
q(Churahi),
],
- q(1699) => [
+ q(1695) => [
q(Chepang),
],
- q(1700) => [
+ q(1696) => [
q(Chaudangsi),
],
- q(1701) => [
+ q(1697) => [
q(Min Dong Chinese),
],
- q(1702) => [
+ q(1698) => [
q(Cinda-Regi-Tiyal),
],
- q(1703) => [
+ q(1699) => [
q(Chadian Sign Language),
],
- q(1704) => [
+ q(1700) => [
q(Chadong),
],
- q(1705) => [
+ q(1701) => [
q(Koda),
],
- q(1706) => [
+ q(1702) => [
q(Lower Chehalis),
],
- q(1707) => [
+ q(1703) => [
q(Chamacoco),
],
- q(1708) => [
+ q(1704) => [
q(Eastern Khumi Chin),
],
- q(1709) => [
+ q(1705) => [
q(Cen),
],
- q(1710) => [
+ q(1706) => [
q(Centuum),
],
- q(1711) => [
+ q(1707) => [
q(Dijim-Bwilim),
],
- q(1712) => [
+ q(1708) => [
q(Cara),
],
- q(1713) => [
+ q(1709) => [
q(Como Karim),
],
- q(1714) => [
+ q(1710) => [
q(Falam Chin),
],
- q(1715) => [
+ q(1711) => [
q(Changriwa),
],
- q(1716) => [
+ q(1712) => [
q(Kagayanen),
],
- q(1717) => [
+ q(1713) => [
q(Chiga),
],
- q(1718) => [
+ q(1714) => [
q(Chocangacakha),
],
- q(1719) => [
+ q(1715) => [
q(Catawba),
],
- q(1720) => [
+ q(1716) => [
q(Highland Oaxaca Chontal),
],
- q(1721) => [
+ q(1717) => [
q(Tabasco Chontal),
],
- q(1722) => [
+ q(1718) => [
q(Chinook),
],
- q(1723) => [
+ q(1719) => [
q(Ojitlan Chinantec),
],
- q(1724) => [
+ q(1720) => [
q(Cahuilla),
],
- q(1725) => [
+ q(1721) => [
q(Quiotepec Chinantec),
],
- q(1726) => [
+ q(1722) => [
q(Cholon),
],
- q(1727) => [
+ q(1723) => [
q(Chuwabu),
],
- q(1728) => [
+ q(1724) => [
q(Chantyal),
],
- q(1729) => [
+ q(1725) => [
q(Ozumacin Chinantec),
],
- q(1730) => [
+ q(1726) => [
q(Cia-Cia),
],
- q(1731) => [
+ q(1727) => [
q(Ci Gbe),
],
- q(1732) => [
+ q(1728) => [
q(Chickasaw),
],
- q(1733) => [
+ q(1729) => [
q(Chimariko),
],
- q(1734) => [
+ q(1730) => [
q(Cineni),
],
- q(1735) => [
+ q(1731) => [
q(Chinali),
],
- q(1736) => [
+ q(1732) => [
q(Chitkuli Kinnauri),
],
- q(1737) => [
+ q(1733) => [
q(Cimbrian),
],
- q(1738) => [
+ q(1734) => [
q(Cinta Larga),
],
- q(1739) => [
+ q(1735) => [
q(Chiapanec),
],
- q(1740) => [
+ q(1736) => [
q(Tiri),
q(Hamea),
q(Mea),
],
- q(1741) => [
+ q(1737) => [
q(Chippewa),
],
- q(1742) => [
+ q(1738) => [
q(Chaima),
],
- q(1743) => [
+ q(1739) => [
q(Western Cham),
],
- q(1744) => [
+ q(1740) => [
q(Chru),
],
- q(1745) => [
+ q(1741) => [
q(Upper Chehalis),
],
- q(1746) => [
+ q(1742) => [
q(Chamalal),
],
- q(1747) => [
+ q(1743) => [
q(Chokwe),
],
- q(1748) => [
+ q(1744) => [
q(Eastern Cham),
],
- q(1749) => [
+ q(1745) => [
q(Chenapian),
],
- q(1750) => [
+ q(1746) => [
q(Asheninka Pajonal),
],
- q(1751) => [
+ q(1747) => [
q(Cabecar),
],
- q(1752) => [
+ q(1748) => [
q(Shor),
],
- q(1753) => [
+ q(1749) => [
q(Chuave),
],
- q(1754) => [
+ q(1750) => [
q(Jinyu Chinese),
],
- q(1755) => [
+ q(1751) => [
q(Central Kurdish),
],
- q(1756) => [
+ q(1752) => [
q(Chak),
],
- q(1757) => [
+ q(1753) => [
q(Cibak),
],
- q(1758) => [
+ q(1754) => [
q(Kaang Chin),
],
- q(1759) => [
+ q(1755) => [
q(Anufo),
],
- q(1760) => [
+ q(1756) => [
q(Kajakse),
],
- q(1761) => [
+ q(1757) => [
q(Kairak),
],
- q(1762) => [
+ q(1758) => [
q(Tayo),
],
- q(1763) => [
+ q(1759) => [
q(Chukot),
],
- q(1764) => [
+ q(1760) => [
q(Koasati),
],
- q(1765) => [
+ q(1761) => [
q(Kavalan),
],
- q(1766) => [
+ q(1762) => [
q(Caka),
],
- q(1767) => [
+ q(1763) => [
q(Cakfem-Mushere),
],
- q(1768) => [
+ q(1764) => [
q(Cakchiquel-Quiche Mixed Language),
],
- q(1769) => [
+ q(1765) => [
q(Ron),
],
- q(1770) => [
+ q(1766) => [
q(Chilcotin),
],
- q(1771) => [
+ q(1767) => [
q(Chaldean Neo-Aramaic),
],
- q(1772) => [
+ q(1768) => [
q(Lealao Chinantec),
],
- q(1773) => [
+ q(1769) => [
q(Chilisso),
],
- q(1774) => [
+ q(1770) => [
q(Chakali),
],
- q(1775) => [
+ q(1771) => [
q(Laitu Chin),
],
- q(1776) => [
+ q(1772) => [
q(Idu-Mishmi),
],
- q(1777) => [
+ q(1773) => [
q(Chala),
],
- q(1778) => [
+ q(1774) => [
q(Clallam),
],
- q(1779) => [
+ q(1775) => [
q(Lowland Oaxaca Chontal),
],
- q(1780) => [
+ q(1776) => [
q(Lautu Chin),
],
- q(1781) => [
+ q(1777) => [
q(Caluyanun),
],
- q(1782) => [
+ q(1778) => [
q(Chulym),
],
- q(1783) => [
+ q(1779) => [
q(Eastern Highland Chatino),
],
- q(1784) => [
+ q(1780) => [
q(Maa),
],
- q(1785) => [
+ q(1781) => [
q(Cerma),
],
- q(1786) => [
+ q(1782) => [
q(Classical Mongolian),
],
- q(1787) => [
+ q(1783) => [
q(Embera-Chami),
],
- q(1788) => [
+ q(1784) => [
q(Campalagian),
],
- q(1789) => [
+ q(1785) => [
q(Michigamea),
],
- q(1790) => [
+ q(1786) => [
q(Mandarin Chinese),
],
- q(1791) => [
+ q(1787) => [
q(Central Mnong),
],
- q(1792) => [
+ q(1788) => [
q(Mro-Khimi Chin),
],
- q(1793) => [
+ q(1789) => [
q(Messapic),
],
- q(1794) => [
+ q(1790) => [
q(Camtho),
],
- q(1795) => [
+ q(1791) => [
q(Changthang),
],
- q(1796) => [
+ q(1792) => [
q(Chinbon Chin),
],
- q(1797) => [
+ q(1793) => [
q(Coong),
],
- q(1798) => [
+ q(1794) => [
q(Northern Qiang),
],
- q(1799) => [
+ q(1795) => [
+ q(Hakha Chin),
q(Haka Chin),
],
- q(1800) => [
+ q(1796) => [
q(Ashaninka),
],
- q(1801) => [
+ q(1797) => [
q(Khumi Chin),
],
- q(1802) => [
+ q(1798) => [
q(Lalana Chinantec),
],
- q(1803) => [
+ q(1799) => [
q(Con),
],
- q(1804) => [
+ q(1800) => [
q(Central Asmat),
],
- q(1805) => [
+ q(1801) => [
q(Tepetotutla Chinantec),
],
- q(1806) => [
+ q(1802) => [
q(Chenoua),
],
- q(1807) => [
+ q(1803) => [
q(Ngawn Chin),
],
- q(1808) => [
+ q(1804) => [
q(Middle Cornish),
],
- q(1809) => [
+ q(1805) => [
q(Cocos Islands Malay),
],
- q(1810) => [
+ q(1806) => [
q(Chicomuceltec),
],
- q(1811) => [
+ q(1807) => [
q(Cocopa),
],
- q(1812) => [
+ q(1808) => [
q(Cocama-Cocamilla),
],
- q(1813) => [
+ q(1809) => [
q(Koreguaje),
],
- q(1814) => [
+ q(1810) => [
q(Colorado),
],
- q(1815) => [
+ q(1811) => [
q(Chong),
],
- q(1816) => [
+ q(1812) => [
q(Chonyi-Dzihana-Kauma),
q(Chichonyi-Chidzihana-Chikauma),
],
- q(1817) => [
+ q(1813) => [
q(Cochimi),
],
- q(1818) => [
+ q(1814) => [
q(Santa Teresa Cora),
],
- q(1819) => [
+ q(1815) => [
q(Columbia-Wenatchi),
],
- q(1820) => [
+ q(1816) => [
q(Comanche),
],
- q(1821) => [
+ q(1817) => [
q(Cofan),
],
- q(1822) => [
+ q(1818) => [
q(Comox),
],
- q(1823) => [
+ q(1819) => [
q(Coquille),
],
- q(1824) => [
+ q(1820) => [
q(Caquinte),
],
- q(1825) => [
+ q(1821) => [
q(Wamey),
],
- q(1826) => [
+ q(1822) => [
q(Cao Miao),
],
- q(1827) => [
+ q(1823) => [
q(Cowlitz),
],
- q(1828) => [
+ q(1824) => [
q(Nanti),
],
- q(1829) => [
- q(Coyaima),
- ],
- q(1830) => [
+ q(1825) => [
q(Chochotec),
],
- q(1831) => [
+ q(1826) => [
q(Palantla Chinantec),
],
- q(1832) => [
+ q(1827) => [
q(Ucayali-Yurua Asheninka),
],
- q(1833) => [
+ q(1828) => [
q(Ajyininka Apurucayali),
],
- q(1834) => [
+ q(1829) => [
q(Cappadocian Greek),
],
- q(1835) => [
+ q(1830) => [
q(Chinese Pidgin English),
],
- q(1836) => [
+ q(1831) => [
q(Cherepon),
],
- q(1837) => [
+ q(1832) => [
q(Kpeego),
],
- q(1838) => [
+ q(1833) => [
q(Capiznon),
],
- q(1839) => [
+ q(1834) => [
q(Pichis Asheninka),
],
- q(1840) => [
+ q(1835) => [
q(Pu-Xian Chinese),
],
- q(1841) => [
+ q(1836) => [
q(South Ucayali Asheninka),
],
- q(1842) => [
+ q(1837) => [
q(Chuanqiandian Cluster Miao),
],
- q(1843) => [
- q(Chilean Quechua),
- ],
- q(1844) => [
+ q(1838) => [
q(Chara),
],
- q(1845) => [
+ q(1839) => [
q(Island Carib),
],
- q(1846) => [
+ q(1840) => [
q(Lonwolwol),
],
- q(1847) => [
+ q(1841) => [
q(Coeur d'Alene),
],
- q(1848) => [
+ q(1842) => [
q(Caramanta),
],
- q(1849) => [
+ q(1843) => [
q(Michif),
],
- q(1850) => [
+ q(1844) => [
q(Saotomense),
],
- q(1851) => [
+ q(1845) => [
q(Southern East Cree),
],
- q(1852) => [
+ q(1846) => [
q(Plains Cree),
],
- q(1853) => [
+ q(1847) => [
q(Northern East Cree),
],
- q(1854) => [
+ q(1848) => [
q(Moose Cree),
],
- q(1855) => [
+ q(1849) => [
q(El Nayar Cora),
],
- q(1856) => [
+ q(1850) => [
q(Crow),
],
- q(1857) => [
+ q(1851) => [
q(Iyo'wujwa Chorote),
],
- q(1858) => [
+ q(1852) => [
q(Carolina Algonquian),
],
- q(1859) => [
+ q(1853) => [
q(Seselwa Creole French),
],
- q(1860) => [
+ q(1854) => [
q(Iyojwa'ja Chorote),
],
- q(1861) => [
+ q(1855) => [
q(Chaura),
],
- q(1862) => [
+ q(1856) => [
q(Chrau),
],
- q(1863) => [
+ q(1857) => [
q(Carrier),
],
- q(1864) => [
+ q(1858) => [
q(Cori),
],
- q(1865) => [
+ q(1859) => [
q(Cruzeno),
],
- q(1866) => [
+ q(1860) => [
q(Chiltepec Chinantec),
],
- q(1867) => [
+ q(1861) => [
q(Catalan Sign Language),
q(Lengua de senas catalana),
q(Llengua de Signes Catalana),
],
- q(1868) => [
+ q(1862) => [
q(Chiangmai Sign Language),
],
- q(1869) => [
+ q(1863) => [
q(Czech Sign Language),
],
- q(1870) => [
+ q(1864) => [
q(Cuba Sign Language),
],
- q(1871) => [
+ q(1865) => [
q(Chilean Sign Language),
],
- q(1872) => [
+ q(1866) => [
q(Asho Chin),
],
- q(1873) => [
+ q(1867) => [
q(Coast Miwok),
],
- q(1874) => [
+ q(1868) => [
q(Songlai Chin),
],
- q(1875) => [
+ q(1869) => [
q(Jola-Kasa),
],
- q(1876) => [
+ q(1870) => [
q(Chinese Sign Language),
],
- q(1877) => [
+ q(1871) => [
q(Central Sierra Miwok),
],
- q(1878) => [
+ q(1872) => [
q(Colombian Sign Language),
],
- q(1879) => [
+ q(1873) => [
q(Sochiapam Chinantec),
q(Sochiapan Chinantec),
],
- q(1880) => [
+ q(1874) => [
q(Croatia Sign Language),
],
- q(1881) => [
+ q(1875) => [
q(Costa Rican Sign Language),
],
- q(1882) => [
+ q(1876) => [
q(Southern Ohlone),
],
- q(1883) => [
+ q(1877) => [
q(Northern Ohlone),
],
- q(1884) => [
+ q(1878) => [
q(Sumtu Chin),
],
- q(1885) => [
+ q(1879) => [
q(Swampy Cree),
],
- q(1886) => [
+ q(1880) => [
q(Siyin Chin),
],
- q(1887) => [
+ q(1881) => [
q(Coos),
],
- q(1888) => [
+ q(1882) => [
q(Tataltepec Chatino),
],
- q(1889) => [
+ q(1883) => [
q(Chetco),
],
- q(1890) => [
+ q(1884) => [
q(Tedim Chin),
],
- q(1891) => [
+ q(1885) => [
q(Tepinapa Chinantec),
],
- q(1892) => [
+ q(1886) => [
q(Chittagonian),
],
- q(1893) => [
+ q(1887) => [
q(Thaiphum Chin),
],
- q(1894) => [
+ q(1888) => [
q(Tlacoatzintepec Chinantec),
],
- q(1895) => [
+ q(1889) => [
q(Chitimacha),
],
- q(1896) => [
+ q(1890) => [
q(Chhintange),
],
- q(1897) => [
+ q(1891) => [
q(Embera-Catio),
],
- q(1898) => [
+ q(1892) => [
q(Western Highland Chatino),
],
- q(1899) => [
+ q(1893) => [
q(Northern Catanduanes Bikol),
],
- q(1900) => [
+ q(1894) => [
q(Wayanad Chetti),
],
- q(1901) => [
+ q(1895) => [
q(Chol),
],
- q(1902) => [
+ q(1896) => [
q(Zacatepec Chatino),
],
- q(1903) => [
+ q(1897) => [
q(Cua),
],
- q(1904) => [
+ q(1898) => [
q(Cubeo),
],
- q(1905) => [
+ q(1899) => [
q(Usila Chinantec),
],
- q(1906) => [
+ q(1900) => [
q(Cung),
],
- q(1907) => [
+ q(1901) => [
q(Chuka),
q(Gichuka),
],
- q(1908) => [
+ q(1902) => [
q(Cuiba),
],
- q(1909) => [
+ q(1903) => [
q(Mashco Piro),
],
- q(1910) => [
+ q(1904) => [
q(San Blas Kuna),
],
- q(1911) => [
+ q(1905) => [
q(Culina),
q(Kulina),
],
- q(1912) => [
- q(Cumeral),
- ],
- q(1913) => [
+ q(1906) => [
q(Cumanagoto),
],
- q(1914) => [
+ q(1907) => [
q(Cupeno),
],
- q(1915) => [
+ q(1908) => [
q(Cun),
],
- q(1916) => [
+ q(1909) => [
q(Chhulung),
],
- q(1917) => [
+ q(1910) => [
q(Teutila Cuicatec),
],
- q(1918) => [
+ q(1911) => [
q(Tai Ya),
],
- q(1919) => [
+ q(1912) => [
q(Cuvok),
],
- q(1920) => [
+ q(1913) => [
q(Chukwa),
],
- q(1921) => [
+ q(1914) => [
q(Tepeuxila Cuicatec),
],
- q(1922) => [
+ q(1915) => [
q(Chug),
],
- q(1923) => [
+ q(1916) => [
q(Valle Nacional Chinantec),
],
- q(1924) => [
+ q(1917) => [
q(Kabwa),
],
- q(1925) => [
+ q(1918) => [
q(Maindo),
],
- q(1926) => [
+ q(1919) => [
q(Woods Cree),
],
- q(1927) => [
+ q(1920) => [
q(Kwere),
],
- q(1928) => [
+ q(1921) => [
q(Chewong),
q(Cheq Wong),
],
- q(1929) => [
+ q(1922) => [
q(Kuwaataay),
],
- q(1930) => [
+ q(1923) => [
q(Nopala Chatino),
],
- q(1931) => [
+ q(1924) => [
q(Cayubaba),
],
- q(1932) => [
+ q(1925) => [
q(Cuyonon),
],
- q(1933) => [
+ q(1926) => [
q(Huizhou Chinese),
],
- q(1934) => [
+ q(1927) => [
q(Knaanic),
],
- q(1935) => [
+ q(1928) => [
q(Zenzontepec Chatino),
],
- q(1936) => [
+ q(1929) => [
q(Min Zhong Chinese),
],
- q(1937) => [
+ q(1930) => [
q(Zotung Chin),
],
- q(1938) => [
+ q(1931) => [
q(Dangaleat),
],
- q(1939) => [
+ q(1932) => [
q(Dambi),
],
- q(1940) => [
+ q(1933) => [
q(Marik),
],
- q(1941) => [
+ q(1934) => [
q(Duupa),
],
- q(1942) => [
+ q(1935) => [
q(Dagbani),
],
- q(1943) => [
+ q(1936) => [
q(Gwahatike),
],
- q(1944) => [
+ q(1937) => [
q(Day),
],
- q(1945) => [
+ q(1938) => [
q(Dar Fur Daju),
],
- q(1946) => [
+ q(1939) => [
q(Dahalo),
],
- q(1947) => [
+ q(1940) => [
q(Damakawa),
],
- q(1948) => [
+ q(1941) => [
q(Daai Chin),
],
- q(1949) => [
+ q(1942) => [
q(Dandami Maria),
],
- q(1950) => [
+ q(1943) => [
q(Daho-Doo),
],
- q(1951) => [
+ q(1944) => [
q(Dar Sila Daju),
],
- q(1952) => [
+ q(1945) => [
q(Taita),
q(Dawida),
],
- q(1953) => [
+ q(1946) => [
q(Davawenyo),
],
- q(1954) => [
+ q(1947) => [
q(Dayi),
],
- q(1955) => [
+ q(1948) => [
q(Dao),
],
- q(1956) => [
+ q(1949) => [
q(Bangime),
],
- q(1957) => [
+ q(1950) => [
q(Deno),
],
- q(1958) => [
+ q(1951) => [
q(Dadiya),
],
- q(1959) => [
+ q(1952) => [
q(Dabe),
],
- q(1960) => [
+ q(1953) => [
q(Edopi),
],
- q(1961) => [
+ q(1954) => [
q(Dogul Dom Dogon),
],
- q(1962) => [
+ q(1955) => [
q(Doka),
],
- q(1963) => [
+ q(1956) => [
q(Ida'an),
],
- q(1964) => [
+ q(1957) => [
q(Dyirbal),
],
- q(1965) => [
+ q(1958) => [
q(Duguri),
],
- q(1966) => [
+ q(1959) => [
q(Duriankere),
],
- q(1967) => [
+ q(1960) => [
q(Dulbu),
],
- q(1968) => [
+ q(1961) => [
q(Duwai),
],
- q(1969) => [
+ q(1962) => [
q(Daba),
],
- q(1970) => [
+ q(1963) => [
q(Dabarre),
],
- q(1971) => [
+ q(1964) => [
q(Ben Tey Dogon),
],
- q(1972) => [
+ q(1965) => [
q(Bondum Dom Dogon),
],
- q(1973) => [
+ q(1966) => [
q(Dungu),
],
- q(1974) => [
+ q(1967) => [
q(Bankan Tey Dogon),
],
- q(1975) => [
+ q(1968) => [
q(Dibiyaso),
],
- q(1976) => [
+ q(1969) => [
q(Deccan),
],
- q(1977) => [
+ q(1970) => [
q(Negerhollands),
],
- q(1978) => [
+ q(1971) => [
q(Dadi Dadi),
],
- q(1979) => [
+ q(1972) => [
q(Dongotono),
],
- q(1980) => [
+ q(1973) => [
q(Doondo),
],
- q(1981) => [
+ q(1974) => [
q(Fataluku),
],
- q(1982) => [
+ q(1975) => [
q(West Goodenough),
],
- q(1983) => [
+ q(1976) => [
q(Jaru),
],
- q(1984) => [
+ q(1977) => [
q(Dendi (Benin)),
],
- q(1985) => [
+ q(1978) => [
q(Dido),
],
- q(1986) => [
+ q(1979) => [
q(Dhudhuroa),
],
- q(1987) => [
+ q(1980) => [
q(Donno So Dogon),
],
- q(1988) => [
+ q(1981) => [
q(Dawera-Daweloor),
],
- q(1989) => [
+ q(1982) => [
q(Dagik),
],
- q(1990) => [
+ q(1983) => [
q(Dedua),
],
- q(1991) => [
+ q(1984) => [
q(Dewoin),
],
- q(1992) => [
+ q(1985) => [
q(Dezfuli),
],
- q(1993) => [
+ q(1986) => [
q(Degema),
],
- q(1994) => [
+ q(1987) => [
q(Dehwari),
],
- q(1995) => [
+ q(1988) => [
q(Demisa),
],
- q(1996) => [
+ q(1989) => [
q(Dek),
],
- q(1997) => [
+ q(1990) => [
q(Dem),
],
- q(1998) => [
+ q(1991) => [
q(Pidgin Delaware),
],
- q(1999) => [
+ q(1992) => [
q(Dendi (Central African Republic)),
],
- q(2000) => [
+ q(1993) => [
q(Deori),
],
- q(2001) => [
+ q(1994) => [
q(Desano),
],
- q(2002) => [
+ q(1995) => [
q(Domung),
],
- q(2003) => [
+ q(1996) => [
q(Dengese),
],
- q(2004) => [
+ q(1997) => [
q(Southern Dagaare),
],
- q(2005) => [
+ q(1998) => [
q(Bunoge Dogon),
],
- q(2006) => [
+ q(1999) => [
q(Casiguran Dumagat Agta),
],
- q(2007) => [
+ q(2000) => [
q(Dagaari Dioula),
],
- q(2008) => [
+ q(2001) => [
q(Degenan),
],
- q(2009) => [
+ q(2002) => [
q(Doga),
],
- q(2010) => [
+ q(2003) => [
q(Dghwede),
],
- q(2011) => [
+ q(2004) => [
q(Northern Dagara),
],
- q(2012) => [
+ q(2005) => [
q(Dagba),
],
- q(2013) => [
+ q(2006) => [
q(Andaandi),
q(Dongolawi),
],
- q(2014) => [
+ q(2007) => [
q(Dagoman),
],
- q(2015) => [
+ q(2008) => [
q(Dogri (individual language)),
],
- q(2016) => [
+ q(2009) => [
q(Dogoso),
],
- q(2017) => [
+ q(2010) => [
q(Ndra'ngith),
],
- q(2018) => [
+ q(2011) => [
q(Degaru),
],
- q(2019) => [
+ q(2012) => [
q(Daungwurrung),
],
- q(2020) => [
+ q(2013) => [
q(Doghoro),
],
- q(2021) => [
+ q(2014) => [
q(Daga),
],
- q(2022) => [
+ q(2015) => [
q(Dhundari),
],
- q(2023) => [
+ q(2016) => [
+ q(Dhangu-Djangu),
q(Dhangu),
q(Djangu),
],
- q(2024) => [
+ q(2017) => [
q(Dhimal),
],
- q(2025) => [
+ q(2018) => [
q(Dhalandji),
],
- q(2026) => [
+ q(2019) => [
q(Zemba),
],
- q(2027) => [
+ q(2020) => [
q(Dhanki),
],
- q(2028) => [
+ q(2021) => [
q(Dhodia),
],
- q(2029) => [
+ q(2022) => [
q(Dhargari),
],
- q(2030) => [
+ q(2023) => [
q(Dhaiso),
],
- q(2031) => [
+ q(2024) => [
q(Dhurga),
],
- q(2032) => [
+ q(2025) => [
q(Dehu),
q(Drehu),
],
- q(2033) => [
+ q(2026) => [
q(Dhanwar (Nepal)),
],
- q(2034) => [
+ q(2027) => [
q(Dhungaloo),
],
- q(2035) => [
+ q(2028) => [
q(Dia),
],
- q(2036) => [
+ q(2029) => [
q(South Central Dinka),
],
- q(2037) => [
+ q(2030) => [
q(Lakota Dida),
],
- q(2038) => [
+ q(2031) => [
q(Didinga),
],
- q(2039) => [
+ q(2032) => [
q(Dieri),
],
- q(2040) => [
+ q(2033) => [
q(Digo),
q(Chidigo),
],
- q(2041) => [
+ q(2034) => [
q(Kumiai),
],
- q(2042) => [
+ q(2035) => [
q(Dimbong),
],
- q(2043) => [
+ q(2036) => [
q(Dai),
],
- q(2044) => [
+ q(2037) => [
q(Southwestern Dinka),
],
- q(2045) => [
+ q(2038) => [
q(Dilling),
],
- q(2046) => [
+ q(2039) => [
q(Dime),
],
- q(2047) => [
+ q(2040) => [
q(Dibo),
],
- q(2048) => [
+ q(2041) => [
q(Northeastern Dinka),
],
- q(2049) => [
+ q(2042) => [
q(Dimli (individual language)),
],
- q(2050) => [
+ q(2043) => [
q(Dirim),
],
- q(2051) => [
+ q(2044) => [
q(Dimasa),
],
- q(2052) => [
+ q(2045) => [
q(Dirari),
],
- q(2053) => [
+ q(2046) => [
q(Diriku),
],
- q(2054) => [
+ q(2047) => [
q(Northwestern Dinka),
],
- q(2055) => [
+ q(2048) => [
q(Dixon Reef),
],
- q(2056) => [
+ q(2049) => [
q(Diuwe),
],
- q(2057) => [
+ q(2050) => [
q(Ding),
],
- q(2058) => [
+ q(2051) => [
q(Djadjawurrung),
],
- q(2059) => [
+ q(2052) => [
q(Djinba),
],
- q(2060) => [
+ q(2053) => [
q(Dar Daju Daju),
],
- q(2061) => [
+ q(2054) => [
q(Djamindjung),
],
- q(2062) => [
+ q(2055) => [
q(Zarma),
],
- q(2063) => [
+ q(2056) => [
q(Djangun),
],
- q(2064) => [
+ q(2057) => [
q(Djinang),
],
- q(2065) => [
+ q(2058) => [
q(Djeebbana),
],
- q(2066) => [
+ q(2059) => [
q(Eastern Maroon Creole),
q(Businenge Tongo),
q(Nenge),
],
- q(2067) => [
+ q(2060) => [
q(Jamsay Dogon),
],
- q(2068) => [
+ q(2061) => [
q(Djauan),
],
- q(2069) => [
+ q(2062) => [
q(Jangkang),
],
- q(2070) => [
+ q(2063) => [
q(Djambarrpuyngu),
],
- q(2071) => [
+ q(2064) => [
q(Kapriman),
],
- q(2072) => [
+ q(2065) => [
q(Djawi),
],
- q(2073) => [
+ q(2066) => [
q(Dakpakha),
],
- q(2074) => [
+ q(2067) => [
q(Dakka),
],
- q(2075) => [
+ q(2068) => [
q(Kuijau),
],
- q(2076) => [
+ q(2069) => [
q(Southeastern Dinka),
],
- q(2077) => [
+ q(2070) => [
q(Mazagway),
],
- q(2078) => [
+ q(2071) => [
q(Dolgan),
],
- q(2079) => [
+ q(2072) => [
q(Dahalik),
],
- q(2080) => [
+ q(2073) => [
q(Dalmatian),
],
- q(2081) => [
+ q(2074) => [
q(Darlong),
],
- q(2082) => [
+ q(2075) => [
q(Duma),
],
- q(2083) => [
+ q(2076) => [
q(Mombo Dogon),
],
- q(2084) => [
+ q(2077) => [
q(Gavak),
],
- q(2085) => [
+ q(2078) => [
q(Madhi Madhi),
],
- q(2086) => [
+ q(2079) => [
q(Dugwor),
],
- q(2087) => [
+ q(2080) => [
q(Upper Kinabatangan),
],
- q(2088) => [
+ q(2081) => [
q(Domaaki),
],
- q(2089) => [
+ q(2082) => [
q(Dameli),
],
- q(2090) => [
+ q(2083) => [
q(Dama),
],
- q(2091) => [
+ q(2084) => [
q(Kemedzung),
],
- q(2092) => [
+ q(2085) => [
q(East Damar),
],
- q(2093) => [
+ q(2086) => [
q(Dampelas),
],
- q(2094) => [
+ q(2087) => [
q(Dubu),
q(Tebi),
],
- q(2095) => [
+ q(2088) => [
q(Dumpas),
],
- q(2096) => [
+ q(2089) => [
q(Mudburra),
],
- q(2097) => [
+ q(2090) => [
q(Dema),
],
- q(2098) => [
+ q(2091) => [
q(Demta),
q(Sowari),
],
- q(2099) => [
+ q(2092) => [
q(Upper Grand Valley Dani),
],
- q(2100) => [
+ q(2093) => [
q(Daonda),
],
- q(2101) => [
+ q(2094) => [
q(Ndendeule),
],
- q(2102) => [
+ q(2095) => [
q(Dungan),
],
- q(2103) => [
+ q(2096) => [
q(Lower Grand Valley Dani),
],
- q(2104) => [
+ q(2097) => [
q(Dan),
],
- q(2105) => [
+ q(2098) => [
q(Dengka),
],
- q(2106) => [
+ q(2099) => [
q(Dzuungoo),
],
- q(2107) => [
+ q(2100) => [
q(Danaru),
],
- q(2108) => [
+ q(2101) => [
q(Mid Grand Valley Dani),
],
- q(2109) => [
+ q(2102) => [
q(Danau),
],
- q(2110) => [
+ q(2103) => [
q(Danu),
],
- q(2111) => [
+ q(2104) => [
q(Western Dani),
],
- q(2112) => [
+ q(2105) => [
q(Deni),
],
- q(2113) => [
+ q(2106) => [
q(Dom),
],
- q(2114) => [
+ q(2107) => [
q(Dobu),
],
- q(2115) => [
+ q(2108) => [
q(Northern Dong),
],
- q(2116) => [
+ q(2109) => [
q(Doe),
],
- q(2117) => [
+ q(2110) => [
q(Domu),
],
- q(2118) => [
+ q(2111) => [
q(Dong),
],
- q(2119) => [
+ q(2112) => [
q(Dondo),
],
- q(2120) => [
+ q(2113) => [
q(Doso),
],
- q(2121) => [
+ q(2114) => [
q(Toura (Papua New Guinea)),
],
- q(2122) => [
+ q(2115) => [
q(Dongo),
],
- q(2123) => [
+ q(2116) => [
q(Lukpa),
],
- q(2124) => [
+ q(2117) => [
q(Dominican Sign Language),
],
- q(2125) => [
+ q(2118) => [
q(Dori'o),
],
- q(2126) => [
+ q(2119) => [
q(Dogose),
],
- q(2127) => [
+ q(2120) => [
q(Dass),
],
- q(2128) => [
+ q(2121) => [
q(Dombe),
],
- q(2129) => [
+ q(2122) => [
q(Doyayo),
],
- q(2130) => [
+ q(2123) => [
q(Bussa),
],
- q(2131) => [
+ q(2124) => [
q(Dompo),
],
- q(2132) => [
+ q(2125) => [
q(Dorze),
],
- q(2133) => [
+ q(2126) => [
q(Papar),
],
- q(2134) => [
+ q(2127) => [
q(Dair),
],
- q(2135) => [
+ q(2128) => [
q(Minderico),
],
- q(2136) => [
+ q(2129) => [
q(Darmiya),
],
- q(2137) => [
+ q(2130) => [
q(Dolpo),
],
- q(2138) => [
+ q(2131) => [
q(Rungus),
],
- q(2139) => [
- q(C'lela),
+ q(2132) => [
+ q(C'Lela),
],
- q(2140) => [
+ q(2133) => [
q(Paakantyi),
],
- q(2141) => [
+ q(2134) => [
q(West Damar),
],
- q(2142) => [
+ q(2135) => [
q(Daro-Matu Melanau),
],
- q(2143) => [
+ q(2136) => [
q(Dura),
],
- q(2144) => [
+ q(2137) => [
q(Dororo),
],
- q(2145) => [
+ q(2138) => [
q(Gedeo),
],
- q(2146) => [
+ q(2139) => [
q(Drents),
],
- q(2147) => [
+ q(2140) => [
q(Rukai),
],
- q(2148) => [
+ q(2141) => [
q(Darai),
],
- q(2149) => [
+ q(2142) => [
q(Dutch Sign Language),
],
- q(2150) => [
+ q(2143) => [
q(Daasanach),
],
- q(2151) => [
+ q(2144) => [
q(Disa),
],
- q(2152) => [
+ q(2145) => [
q(Danish Sign Language),
],
- q(2153) => [
+ q(2146) => [
q(Dusner),
],
- q(2154) => [
+ q(2147) => [
q(Desiya),
],
- q(2155) => [
+ q(2148) => [
q(Tadaksahak),
],
- q(2156) => [
+ q(2149) => [
q(Daur),
],
- q(2157) => [
+ q(2150) => [
q(Labuk-Kinabatangan Kadazan),
],
- q(2158) => [
+ q(2151) => [
q(Ditidaht),
],
- q(2159) => [
+ q(2152) => [
q(Adithinngithigh),
],
- q(2160) => [
+ q(2153) => [
q(Ana Tinga Dogon),
],
- q(2161) => [
+ q(2154) => [
q(Tene Kan Dogon),
],
- q(2162) => [
+ q(2155) => [
q(Tomo Kan Dogon),
],
- q(2163) => [
+ q(2156) => [
+ q(Daats'iin),
+ ],
+ q(2157) => [
q(Tommo So Dogon),
],
- q(2164) => [
+ q(2158) => [
+ q(Kadazan Dusun),
q(Central Dusun),
],
- q(2165) => [
+ q(2159) => [
q(Lotud),
],
- q(2166) => [
+ q(2160) => [
q(Toro So Dogon),
],
- q(2167) => [
+ q(2161) => [
q(Toro Tegu Dogon),
],
- q(2168) => [
+ q(2162) => [
q(Tebul Ure Dogon),
],
- q(2169) => [
+ q(2163) => [
q(Dotyali),
],
- q(2170) => [
+ q(2164) => [
q(Dubli),
],
- q(2171) => [
+ q(2165) => [
q(Duna),
],
- q(2172) => [
+ q(2166) => [
q(Hun-Saare),
],
- q(2173) => [
+ q(2167) => [
q(Umiray Dumaget Agta),
],
- q(2174) => [
+ q(2168) => [
q(Dumbea),
q(Drubea),
],
- q(2175) => [
+ q(2169) => [
q(Duruma),
q(Chiduruma),
],
- q(2176) => [
+ q(2170) => [
q(Dungra Bhil),
],
- q(2177) => [
+ q(2171) => [
q(Dumun),
],
- q(2178) => [
- q(Dhuwal),
- ],
- q(2179) => [
+ q(2172) => [
q(Uyajitaya),
],
- q(2180) => [
+ q(2173) => [
q(Alabat Island Agta),
],
- q(2181) => [
+ q(2174) => [
q(Dusun Deyah),
],
- q(2182) => [
+ q(2175) => [
q(Dupaninan Agta),
],
- q(2183) => [
+ q(2176) => [
q(Duano),
],
- q(2184) => [
+ q(2177) => [
q(Dusun Malang),
],
- q(2185) => [
+ q(2178) => [
q(Dii),
],
- q(2186) => [
+ q(2179) => [
q(Dumi),
],
- q(2187) => [
+ q(2180) => [
q(Drung),
],
- q(2188) => [
+ q(2181) => [
q(Duvle),
],
- q(2189) => [
+ q(2182) => [
q(Dusun Witu),
],
- q(2190) => [
+ q(2183) => [
q(Duungooma),
],
- q(2191) => [
+ q(2184) => [
q(Dicamay Agta),
],
- q(2192) => [
- q(Duli),
+ q(2185) => [
+ q(Duli-Gey),
],
- q(2193) => [
+ q(2186) => [
q(Duau),
],
- q(2194) => [
+ q(2187) => [
q(Diri),
],
- q(2195) => [
+ q(2188) => [
q(Dawro),
],
- q(2196) => [
+ q(2189) => [
q(Dutton World Speedwords),
],
- q(2197) => [
+ q(2190) => [
+ q(Dhuwal),
+ ],
+ q(2191) => [
q(Dawawa),
],
- q(2198) => [
+ q(2192) => [
+ q(Dhuwaya),
+ ],
+ q(2193) => [
q(Dyan),
],
- q(2199) => [
+ q(2194) => [
q(Dyaberdyaber),
],
- q(2200) => [
+ q(2195) => [
q(Dyugun),
],
- q(2201) => [
+ q(2196) => [
q(Villa Viciosa Agta),
],
- q(2202) => [
+ q(2197) => [
q(Djimini Senoufo),
],
- q(2203) => [
+ q(2198) => [
q(Yanda Dom Dogon),
],
- q(2204) => [
+ q(2199) => [
q(Dyangadi),
],
- q(2205) => [
+ q(2200) => [
q(Jola-Fonyi),
],
- q(2206) => [
+ q(2201) => [
q(Dyaabugay),
],
- q(2207) => [
+ q(2202) => [
q(Tunzu),
],
- q(2208) => [
+ q(2203) => [
q(Djiwarli),
],
- q(2209) => [
+ q(2204) => [
q(Dazaga),
],
- q(2210) => [
+ q(2205) => [
q(Dzalakha),
],
- q(2211) => [
+ q(2206) => [
q(Dzando),
],
- q(2212) => [
+ q(2207) => [
q(Karenggapa),
],
- q(2213) => [
+ q(2208) => [
q(Ebughu),
],
- q(2214) => [
+ q(2209) => [
q(Eastern Bontok),
],
- q(2215) => [
+ q(2210) => [
q(Teke-Ebo),
],
- q(2216) => [
+ q(2211) => [
q(Ebrie),
],
- q(2217) => [
+ q(2212) => [
q(Embu),
q(Kiembu),
],
- q(2218) => [
+ q(2213) => [
q(Eteocretan),
],
- q(2219) => [
+ q(2214) => [
q(Ecuadorian Sign Language),
],
- q(2220) => [
+ q(2215) => [
q(Eteocypriot),
],
- q(2221) => [
+ q(2216) => [
q(E),
],
- q(2222) => [
+ q(2217) => [
q(Efai),
],
- q(2223) => [
+ q(2218) => [
q(Efe),
],
- q(2224) => [
+ q(2219) => [
q(Ega),
],
- q(2225) => [
+ q(2220) => [
q(Emilian),
],
- q(2226) => [
+ q(2221) => [
q(Eggon),
],
- q(2227) => [
+ q(2222) => [
q(Ehueun),
],
- q(2228) => [
+ q(2223) => [
q(Eipomek),
],
- q(2229) => [
+ q(2224) => [
q(Eitiep),
],
- q(2230) => [
+ q(2225) => [
q(Askopan),
],
- q(2231) => [
+ q(2226) => [
q(Ejamat),
],
- q(2232) => [
+ q(2227) => [
q(Eastern Karnic),
],
- q(2233) => [
+ q(2228) => [
q(Ekit),
],
- q(2234) => [
+ q(2229) => [
q(Ekari),
],
- q(2235) => [
+ q(2230) => [
q(Eki),
],
- q(2236) => [
+ q(2231) => [
q(Standard Estonian),
],
- q(2237) => [
+ q(2232) => [
q(Kol (Bangladesh)),
q(Kol),
],
- q(2238) => [
+ q(2233) => [
q(Elip),
],
- q(2239) => [
+ q(2234) => [
q(Koti),
],
- q(2240) => [
+ q(2235) => [
q(Ekpeye),
],
- q(2241) => [
+ q(2236) => [
q(Yace),
],
- q(2242) => [
+ q(2237) => [
q(Eastern Kayah),
],
- q(2243) => [
+ q(2238) => [
q(Elepi),
],
- q(2244) => [
+ q(2239) => [
q(El Hugeirat),
],
- q(2245) => [
+ q(2240) => [
q(Nding),
],
- q(2246) => [
+ q(2241) => [
q(Elkei),
],
- q(2247) => [
+ q(2242) => [
q(Eleme),
],
- q(2248) => [
+ q(2243) => [
q(El Molo),
],
- q(2249) => [
+ q(2244) => [
q(Elu),
],
- q(2250) => [
+ q(2245) => [
q(Emai-Iuleha-Ora),
],
- q(2251) => [
+ q(2246) => [
q(Embaloh),
],
- q(2252) => [
+ q(2247) => [
q(Emerillon),
],
- q(2253) => [
+ q(2248) => [
q(Eastern Meohang),
],
- q(2254) => [
+ q(2249) => [
q(Mussau-Emira),
],
- q(2255) => [
+ q(2250) => [
q(Eastern Maninkakan),
],
- q(2256) => [
+ q(2251) => [
q(Mamulique),
],
- q(2257) => [
+ q(2252) => [
q(Eman),
],
- q(2258) => [
+ q(2253) => [
q(Northern Embera),
],
- q(2259) => [
+ q(2254) => [
q(Pacific Gulf Yupik),
],
- q(2260) => [
+ q(2255) => [
q(Eastern Muria),
],
- q(2261) => [
+ q(2256) => [
q(Emplawas),
],
- q(2262) => [
+ q(2257) => [
q(Erromintxela),
],
- q(2263) => [
+ q(2258) => [
q(Epigraphic Mayan),
],
- q(2264) => [
+ q(2259) => [
q(Apali),
],
- q(2265) => [
+ q(2260) => [
q(Markweeta),
],
- q(2266) => [
+ q(2261) => [
q(En),
],
- q(2267) => [
+ q(2262) => [
q(Ende),
],
- q(2268) => [
+ q(2263) => [
q(Forest Enets),
],
- q(2269) => [
+ q(2264) => [
q(Tundra Enets),
],
- q(2270) => [
+ q(2265) => [
q(Enlhet),
],
- q(2271) => [
+ q(2266) => [
q(Engenni),
],
- q(2272) => [
+ q(2267) => [
q(Enggano),
],
- q(2273) => [
+ q(2268) => [
q(Enga),
],
- q(2274) => [
+ q(2269) => [
q(Emumu),
q(Emem),
],
- q(2275) => [
+ q(2270) => [
q(Enu),
],
- q(2276) => [
+ q(2271) => [
q(Enwan (Edu State)),
],
- q(2277) => [
+ q(2272) => [
q(Enwan (Akwa Ibom State)),
],
- q(2278) => [
+ q(2273) => [
q(Enxet),
],
- q(2279) => [
+ q(2274) => [
q(Beti (Cote d'Ivoire)),
],
- q(2280) => [
+ q(2275) => [
q(Epie),
],
- q(2281) => [
+ q(2276) => [
q(Eravallan),
],
- q(2282) => [
+ q(2277) => [
q(Sie),
],
- q(2283) => [
+ q(2278) => [
q(Eruwa),
],
- q(2284) => [
+ q(2279) => [
q(Ogea),
],
- q(2285) => [
+ q(2280) => [
q(South Efate),
],
- q(2286) => [
+ q(2281) => [
q(Horpa),
],
- q(2287) => [
+ q(2282) => [
q(Erre),
],
- q(2288) => [
+ q(2283) => [
q(Ersu),
],
- q(2289) => [
+ q(2284) => [
q(Eritai),
],
- q(2290) => [
+ q(2285) => [
q(Erokwanas),
],
- q(2291) => [
+ q(2286) => [
q(Ese Ejja),
],
- q(2292) => [
+ q(2287) => [
+ q(Aheri Gondi),
+ ],
+ q(2288) => [
q(Eshtehardi),
],
- q(2293) => [
+ q(2289) => [
q(North Alaskan Inupiatun),
],
- q(2294) => [
+ q(2290) => [
q(Northwest Alaska Inupiatun),
],
- q(2295) => [
+ q(2291) => [
q(Egypt Sign Language),
],
- q(2296) => [
+ q(2292) => [
q(Esuma),
],
- q(2297) => [
+ q(2293) => [
q(Salvadoran Sign Language),
],
- q(2298) => [
+ q(2294) => [
q(Estonian Sign Language),
],
- q(2299) => [
+ q(2295) => [
q(Esselen),
],
- q(2300) => [
+ q(2296) => [
q(Central Siberian Yupik),
],
- q(2301) => [
+ q(2297) => [
q(Central Yupik),
],
- q(2302) => [
+ q(2298) => [
q(Eskayan),
],
- q(2303) => [
+ q(2299) => [
q(Etebi),
],
- q(2304) => [
+ q(2300) => [
q(Etchemin),
],
- q(2305) => [
+ q(2301) => [
q(Ethiopian Sign Language),
],
- q(2306) => [
+ q(2302) => [
q(Eton (Vanuatu)),
],
- q(2307) => [
+ q(2303) => [
q(Eton (Cameroon)),
],
- q(2308) => [
+ q(2304) => [
q(Edolo),
],
- q(2309) => [
+ q(2305) => [
q(Yekhee),
],
- q(2310) => [
+ q(2306) => [
q(Etruscan),
],
- q(2311) => [
+ q(2307) => [
q(Ejagham),
],
- q(2312) => [
+ q(2308) => [
q(Eten),
],
- q(2313) => [
+ q(2309) => [
q(Semimi),
],
- q(2314) => [
+ q(2310) => [
q(Even),
],
- q(2315) => [
+ q(2311) => [
q(Uvbie),
],
- q(2316) => [
+ q(2312) => [
q(Evenki),
],
- q(2317) => [
+ q(2313) => [
q(Extremaduran),
],
- q(2318) => [
+ q(2314) => [
q(Eyak),
],
- q(2319) => [
+ q(2315) => [
q(Keiyo),
],
- q(2320) => [
+ q(2316) => [
q(Ezaa),
],
- q(2321) => [
+ q(2317) => [
q(Uzekwe),
],
- q(2322) => [
+ q(2318) => [
q(Fasu),
],
- q(2323) => [
+ q(2319) => [
q(Fa d'Ambu),
],
- q(2324) => [
+ q(2320) => [
q(Wagi),
],
- q(2325) => [
+ q(2321) => [
q(Fagani),
],
- q(2326) => [
+ q(2322) => [
q(Finongan),
],
- q(2327) => [
+ q(2323) => [
q(Baissa Fali),
],
- q(2328) => [
+ q(2324) => [
q(Faiwol),
],
- q(2329) => [
+ q(2325) => [
q(Faita),
],
- q(2330) => [
+ q(2326) => [
q(Fang (Cameroon)),
],
- q(2331) => [
+ q(2327) => [
q(South Fali),
],
- q(2332) => [
+ q(2328) => [
q(Fam),
],
- q(2333) => [
+ q(2329) => [
q(Palor),
],
- q(2334) => [
+ q(2330) => [
q(Fataleka),
],
- q(2335) => [
+ q(2331) => [
q(Fayu),
],
- q(2336) => [
+ q(2332) => [
q(Fala),
],
- q(2337) => [
+ q(2333) => [
q(Southwestern Fars),
],
- q(2338) => [
+ q(2334) => [
q(Northwestern Fars),
],
- q(2339) => [
+ q(2335) => [
q(West Albay Bikol),
],
- q(2340) => [
+ q(2336) => [
q(Quebec Sign Language),
],
- q(2341) => [
+ q(2337) => [
q(Feroge),
],
- q(2342) => [
+ q(2338) => [
q(Foia Foia),
],
- q(2343) => [
+ q(2339) => [
q(Maasina Fulfulde),
],
- q(2344) => [
+ q(2340) => [
q(Fongoro),
],
- q(2345) => [
+ q(2341) => [
q(Nobiin),
],
- q(2346) => [
+ q(2342) => [
q(Fyer),
],
- q(2347) => [
+ q(2343) => [
q(Fipa),
],
- q(2348) => [
+ q(2344) => [
q(Firan),
],
- q(2349) => [
+ q(2345) => [
q(Tornedalen Finnish),
],
- q(2350) => [
+ q(2346) => [
q(Fiwaga),
],
- q(2351) => [
+ q(2347) => [
q(Kirya-Konzel),
],
- q(2352) => [
+ q(2348) => [
q(Kven Finnish),
],
- q(2353) => [
+ q(2349) => [
q(Kalispel-Pend d'Oreille),
],
- q(2354) => [
+ q(2350) => [
q(Foau),
],
- q(2355) => [
+ q(2351) => [
q(Fali),
],
- q(2356) => [
+ q(2352) => [
q(North Fali),
],
- q(2357) => [
+ q(2353) => [
q(Flinders Island),
],
- q(2358) => [
+ q(2354) => [
q(Fuliiru),
],
- q(2359) => [
+ q(2355) => [
q(Flaaitaal),
q(Tsotsitaal),
],
- q(2360) => [
+ q(2356) => [
q(Fe'fe'),
],
- q(2361) => [
+ q(2357) => [
q(Far Western Muria),
],
- q(2362) => [
+ q(2358) => [
+ q(Fanbak),
+ ],
+ q(2359) => [
q(Fanagalo),
],
- q(2363) => [
+ q(2360) => [
q(Fania),
],
- q(2364) => [
+ q(2361) => [
q(Foodo),
],
- q(2365) => [
+ q(2362) => [
q(Foi),
],
- q(2366) => [
+ q(2363) => [
q(Foma),
],
- q(2367) => [
+ q(2364) => [
q(Fore),
],
- q(2368) => [
+ q(2365) => [
q(Siraya),
],
- q(2369) => [
+ q(2366) => [
q(Fernando Po Creole English),
],
- q(2370) => [
+ q(2367) => [
q(Fas),
],
- q(2371) => [
+ q(2368) => [
q(Cajun French),
],
- q(2372) => [
+ q(2369) => [
q(Fordata),
],
- q(2373) => [
+ q(2370) => [
q(Frankish),
],
- q(2374) => [
+ q(2371) => [
q(Arpitan),
q(Francoprovencal),
],
- q(2375) => [
+ q(2372) => [
q(Forak),
],
- q(2376) => [
+ q(2373) => [
q(Fortsenal),
],
- q(2377) => [
+ q(2374) => [
q(Finnish Sign Language),
],
- q(2378) => [
+ q(2375) => [
q(French Sign Language),
],
- q(2379) => [
+ q(2376) => [
q(Finland-Swedish Sign Language),
q(finlandssvenskt teckensprak),
q(suomenruotsalainen viittomakieli),
],
- q(2380) => [
+ q(2377) => [
q(Adamawa Fulfulde),
],
- q(2381) => [
+ q(2378) => [
q(Pulaar),
],
- q(2382) => [
+ q(2379) => [
q(East Futuna),
],
- q(2383) => [
+ q(2380) => [
q(Borgu Fulfulde),
],
- q(2384) => [
+ q(2381) => [
q(Pular),
],
- q(2385) => [
+ q(2382) => [
q(Western Niger Fulfulde),
],
- q(2386) => [
+ q(2383) => [
q(Bagirmi Fulfulde),
],
- q(2387) => [
+ q(2384) => [
q(Ko),
],
- q(2388) => [
+ q(2385) => [
q(Fum),
],
- q(2389) => [
+ q(2386) => [
q(Fulnio),
],
- q(2390) => [
+ q(2387) => [
q(Central-Eastern Niger Fulfulde),
],
- q(2391) => [
+ q(2388) => [
q(Futuna-Aniwa),
],
- q(2392) => [
+ q(2389) => [
q(Furu),
],
- q(2393) => [
+ q(2390) => [
q(Nigerian Fulfulde),
],
- q(2394) => [
+ q(2391) => [
q(Fuyug),
],
- q(2395) => [
+ q(2392) => [
q(Fur),
],
- q(2396) => [
+ q(2393) => [
q(Fwai),
],
- q(2397) => [
+ q(2394) => [
q(Fwe),
],
- q(2398) => [
+ q(2395) => [
q(Gabri),
],
- q(2399) => [
+ q(2396) => [
q(Mixed Great Andamanese),
],
- q(2400) => [
+ q(2397) => [
q(Gaddang),
],
- q(2401) => [
+ q(2398) => [
q(Guarequena),
],
- q(2402) => [
+ q(2399) => [
q(Gende),
],
- q(2403) => [
+ q(2400) => [
q(Gagauz),
],
- q(2404) => [
+ q(2401) => [
q(Alekano),
],
- q(2405) => [
+ q(2402) => [
q(Borei),
],
- q(2406) => [
+ q(2403) => [
q(Gadsup),
],
- q(2407) => [
+ q(2404) => [
q(Gamkonora),
],
- q(2408) => [
+ q(2405) => [
q(Galolen),
],
- q(2409) => [
+ q(2406) => [
q(Kandawo),
],
- q(2410) => [
+ q(2407) => [
q(Gan Chinese),
],
- q(2411) => [
+ q(2408) => [
q(Gants),
],
- q(2412) => [
+ q(2409) => [
q(Gal),
],
- q(2413) => [
+ q(2410) => [
q(Gata'),
],
- q(2414) => [
+ q(2411) => [
q(Galeya),
],
- q(2415) => [
+ q(2412) => [
q(Adiwasi Garasia),
],
- q(2416) => [
+ q(2413) => [
q(Kenati),
],
- q(2417) => [
+ q(2414) => [
q(Mudhili Gadaba),
],
- q(2418) => [
+ q(2415) => [
q(Nobonob),
],
- q(2419) => [
+ q(2416) => [
q(Borana-Arsi-Guji Oromo),
],
- q(2420) => [
+ q(2417) => [
q(West Central Oromo),
],
- q(2421) => [
+ q(2418) => [
q(Kaytetye),
],
- q(2422) => [
+ q(2419) => [
q(Karadjeri),
],
- q(2423) => [
+ q(2420) => [
q(Niksek),
],
- q(2424) => [
+ q(2421) => [
q(Gaikundi),
],
- q(2425) => [
+ q(2422) => [
q(Gbanziri),
],
- q(2426) => [
+ q(2423) => [
q(Defi Gbe),
],
- q(2427) => [
+ q(2424) => [
q(Galela),
],
- q(2428) => [
+ q(2425) => [
q(Bodo Gadaba),
],
- q(2429) => [
+ q(2426) => [
q(Gaddi),
],
- q(2430) => [
+ q(2427) => [
q(Gamit),
],
- q(2431) => [
+ q(2428) => [
q(Garhwali),
],
- q(2432) => [
+ q(2429) => [
q(Mo'da),
],
- q(2433) => [
+ q(2430) => [
q(Northern Grebo),
],
- q(2434) => [
+ q(2431) => [
q(Gbaya-Bossangoa),
],
- q(2435) => [
+ q(2432) => [
q(Gbaya-Bozoum),
],
- q(2436) => [
+ q(2433) => [
q(Gbagyi),
],
- q(2437) => [
+ q(2434) => [
q(Gbesi Gbe),
],
- q(2438) => [
+ q(2435) => [
q(Gagadu),
],
- q(2439) => [
+ q(2436) => [
q(Gbanu),
],
- q(2440) => [
+ q(2437) => [
q(Gabi-Gabi),
],
- q(2441) => [
+ q(2438) => [
q(Eastern Xwla Gbe),
],
- q(2442) => [
+ q(2439) => [
q(Gbari),
],
- q(2443) => [
+ q(2440) => [
q(Zoroastrian Dari),
],
- q(2444) => [
+ q(2441) => [
q(Mali),
],
- q(2445) => [
+ q(2442) => [
q(Ganggalida),
],
- q(2446) => [
+ q(2443) => [
q(Galice),
],
- q(2447) => [
+ q(2444) => [
q(Guadeloupean Creole French),
],
- q(2448) => [
+ q(2445) => [
q(Grenadian Creole English),
],
- q(2449) => [
+ q(2446) => [
q(Gaina),
],
- q(2450) => [
+ q(2447) => [
q(Guianese Creole French),
],
- q(2451) => [
+ q(2448) => [
q(Colonia Tovar German),
],
- q(2452) => [
+ q(2449) => [
q(Gade Lohar),
],
- q(2453) => [
+ q(2450) => [
q(Pottangi Ollar Gadaba),
],
- q(2454) => [
+ q(2451) => [
q(Gugu Badhun),
],
- q(2455) => [
+ q(2452) => [
q(Gedaged),
],
- q(2456) => [
+ q(2453) => [
q(Gude),
],
- q(2457) => [
+ q(2454) => [
q(Guduf-Gava),
],
- q(2458) => [
+ q(2455) => [
q(Ga'dang),
],
- q(2459) => [
+ q(2456) => [
q(Gadjerawang),
],
- q(2460) => [
+ q(2457) => [
q(Gundi),
],
- q(2461) => [
+ q(2458) => [
q(Gurdjar),
],
- q(2462) => [
+ q(2459) => [
q(Gadang),
],
- q(2463) => [
+ q(2460) => [
q(Dirasha),
],
- q(2464) => [
+ q(2461) => [
q(Laal),
],
- q(2465) => [
+ q(2462) => [
q(Umanakaina),
],
- q(2466) => [
+ q(2463) => [
q(Ghodoberi),
],
- q(2467) => [
+ q(2464) => [
q(Mehri),
],
- q(2468) => [
+ q(2465) => [
q(Wipi),
],
- q(2469) => [
+ q(2466) => [
q(Ghandruk Sign Language),
],
- q(2470) => [
+ q(2467) => [
q(Kungardutyi),
],
- q(2471) => [
+ q(2468) => [
q(Gudu),
],
- q(2472) => [
+ q(2469) => [
q(Godwari),
],
- q(2473) => [
+ q(2470) => [
q(Geruma),
],
- q(2474) => [
+ q(2471) => [
q(Kire),
],
- q(2475) => [
+ q(2472) => [
q(Gboloo Grebo),
],
- q(2476) => [
+ q(2473) => [
q(Gade),
],
- q(2477) => [
+ q(2474) => [
q(Gengle),
],
- q(2478) => [
+ q(2475) => [
q(Hutterite German),
q(Hutterisch),
],
- q(2479) => [
+ q(2476) => [
q(Gebe),
],
- q(2480) => [
+ q(2477) => [
q(Gen),
],
- q(2481) => [
- q(Yiwom),
+ q(2478) => [
+ q(Ywom),
],
- q(2482) => [
+ q(2479) => [
q(ut-Ma'in),
],
- q(2483) => [
+ q(2480) => [
q(Geme),
],
- q(2484) => [
+ q(2481) => [
q(Geser-Gorom),
],
- q(2485) => [
+ q(2482) => [
q(Eviya),
],
- q(2486) => [
+ q(2483) => [
q(Gera),
],
- q(2487) => [
+ q(2484) => [
q(Garre),
],
- q(2488) => [
+ q(2485) => [
q(Enya),
],
- q(2489) => [
+ q(2486) => [
q(Patpatar),
],
- q(2490) => [
+ q(2487) => [
q(Gafat),
],
- q(2491) => [
+ q(2488) => [
q(Gao),
],
- q(2492) => [
+ q(2489) => [
q(Gbii),
],
- q(2493) => [
+ q(2490) => [
q(Gugadj),
],
- q(2494) => [
+ q(2491) => [
q(Guragone),
],
- q(2495) => [
+ q(2492) => [
q(Gurgula),
],
- q(2496) => [
+ q(2493) => [
q(Kungarakany),
],
- q(2497) => [
+ q(2494) => [
q(Ganglau),
],
- q(2498) => [
- q(Eastern Gurung),
- ],
- q(2499) => [
- q(Southern Gondi),
- ],
- q(2500) => [
+ q(2495) => [
q(Gitua),
],
- q(2501) => [
+ q(2496) => [
q(Gagu),
q(Gban),
],
- q(2502) => [
+ q(2497) => [
q(Gogodala),
],
- q(2503) => [
+ q(2498) => [
q(Ghadames),
],
- q(2504) => [
+ q(2499) => [
q(Hiberno-Scottish Gaelic),
],
- q(2505) => [
+ q(2500) => [
q(Southern Ghale),
],
- q(2506) => [
+ q(2501) => [
q(Northern Ghale),
],
- q(2507) => [
+ q(2502) => [
q(Geko Karen),
],
- q(2508) => [
+ q(2503) => [
q(Ghulfan),
],
- q(2509) => [
+ q(2504) => [
q(Ghanongga),
],
- q(2510) => [
+ q(2505) => [
q(Ghomara),
],
- q(2511) => [
+ q(2506) => [
q(Ghera),
],
- q(2512) => [
+ q(2507) => [
q(Guhu-Samane),
],
- q(2513) => [
+ q(2508) => [
q(Kuke),
q(Kutang Ghale),
],
- q(2514) => [
+ q(2509) => [
q(Kitja),
],
- q(2515) => [
+ q(2510) => [
q(Gibanawa),
],
- q(2516) => [
+ q(2511) => [
q(Gail),
],
- q(2517) => [
+ q(2512) => [
q(Gidar),
],
- q(2518) => [
+ q(2513) => [
q(Goaria),
],
- q(2519) => [
+ q(2514) => [
q(Githabul),
],
- q(2520) => [
+ q(2515) => [
q(Gimi (Eastern Highlands)),
],
- q(2521) => [
+ q(2516) => [
q(Hinukh),
],
- q(2522) => [
+ q(2517) => [
q(Gimi (West New Britain)),
],
- q(2523) => [
+ q(2518) => [
q(Green Gelao),
],
- q(2524) => [
+ q(2519) => [
q(Red Gelao),
],
- q(2525) => [
+ q(2520) => [
q(North Giziga),
],
- q(2526) => [
+ q(2521) => [
q(Gitxsan),
],
- q(2527) => [
+ q(2522) => [
q(Mulao),
],
- q(2528) => [
+ q(2523) => [
q(White Gelao),
],
- q(2529) => [
+ q(2524) => [
q(Gilima),
],
- q(2530) => [
+ q(2525) => [
q(Giyug),
],
- q(2531) => [
+ q(2526) => [
q(South Giziga),
],
- q(2532) => [
+ q(2527) => [
q(Geji),
],
- q(2533) => [
+ q(2528) => [
q(Kachi Koli),
],
- q(2534) => [
+ q(2529) => [
q(Gunditjmara),
],
- q(2535) => [
+ q(2530) => [
q(Gonja),
],
- q(2536) => [
+ q(2531) => [
+ q(Gurindji Kriol),
+ ],
+ q(2532) => [
q(Gujari),
],
- q(2537) => [
+ q(2533) => [
q(Guya),
],
- q(2538) => [
+ q(2534) => [
q(Ndai),
],
- q(2539) => [
+ q(2535) => [
q(Gokana),
],
- q(2540) => [
+ q(2536) => [
q(Kok-Nar),
],
- q(2541) => [
+ q(2537) => [
q(Guinea Kpelle),
],
- q(2542) => [
+ q(2538) => [
q(Ungkue),
q(=/Ungkue),
],
- q(2543) => [
+ q(2539) => [
q(Bon Gula),
],
- q(2544) => [
+ q(2540) => [
q(Nanai),
],
- q(2545) => [
+ q(2541) => [
q(Northwest Pashai),
q(Northwest Pashayi),
],
- q(2546) => [
+ q(2542) => [
q(Guliguli),
],
- q(2547) => [
+ q(2543) => [
q(Gula Iro),
],
- q(2548) => [
+ q(2544) => [
q(Gilaki),
],
- q(2549) => [
+ q(2545) => [
q(Garlali),
],
- q(2550) => [
+ q(2546) => [
q(Galambu),
],
- q(2551) => [
+ q(2547) => [
q(Glaro-Twabo),
],
- q(2552) => [
+ q(2548) => [
q(Gula (Chad)),
],
- q(2553) => [
+ q(2549) => [
q(Glavda),
],
- q(2554) => [
+ q(2550) => [
q(Gule),
],
- q(2555) => [
+ q(2551) => [
q(Gambera),
],
- q(2556) => [
+ q(2552) => [
q(Gula'alaa),
],
- q(2557) => [
+ q(2553) => [
q(Maghdi),
],
- q(2558) => [
+ q(2554) => [
q(Magyi),
],
- q(2559) => [
+ q(2555) => [
q(Middle Low German),
],
- q(2560) => [
+ q(2556) => [
q(Gbaya-Mbodomo),
],
- q(2561) => [
+ q(2557) => [
q(Gimnime),
],
- q(2562) => [
+ q(2558) => [
q(Gumalu),
],
- q(2563) => [
+ q(2559) => [
q(Gamo),
],
- q(2564) => [
+ q(2560) => [
q(Magoma),
],
- q(2565) => [
+ q(2561) => [
q(Mycenaean Greek),
],
- q(2566) => [
+ q(2562) => [
q(Mgbolizhia),
],
- q(2567) => [
+ q(2563) => [
q(Kaansa),
],
- q(2568) => [
+ q(2564) => [
q(Gangte),
],
- q(2569) => [
+ q(2565) => [
q(Guanche),
],
- q(2570) => [
+ q(2566) => [
q(Zulgo-Gemzek),
],
- q(2571) => [
+ q(2567) => [
q(Ganang),
],
- q(2572) => [
+ q(2568) => [
q(Ngangam),
],
- q(2573) => [
+ q(2569) => [
q(Lere),
],
- q(2574) => [
+ q(2570) => [
q(Gooniyandi),
],
- q(2575) => [
+ q(2571) => [
q(//Gana),
q(Gana),
],
- q(2576) => [
+ q(2572) => [
q(Gangulu),
],
- q(2577) => [
+ q(2573) => [
q(Ginuman),
],
- q(2578) => [
+ q(2574) => [
q(Gumatj),
],
- q(2579) => [
+ q(2575) => [
q(Northern Gondi),
],
- q(2580) => [
+ q(2576) => [
q(Gureng Gureng),
],
- q(2581) => [
+ q(2577) => [
q(Guntai),
],
- q(2582) => [
+ q(2578) => [
q(Gnau),
],
- q(2583) => [
+ q(2579) => [
q(Western Bolivian Guarani),
],
- q(2584) => [
+ q(2580) => [
q(Ganzi),
],
- q(2585) => [
+ q(2581) => [
q(Guro),
],
- q(2586) => [
+ q(2582) => [
q(Playero),
],
- q(2587) => [
+ q(2583) => [
q(Gorakor),
],
- q(2588) => [
+ q(2584) => [
q(Godie),
],
- q(2589) => [
+ q(2585) => [
q(Gongduk),
],
- q(2590) => [
+ q(2586) => [
q(Gofa),
],
- q(2591) => [
+ q(2587) => [
q(Gogo),
],
- q(2592) => [
+ q(2588) => [
q(Gobasi),
],
- q(2593) => [
+ q(2589) => [
q(Gowlan),
],
- q(2594) => [
+ q(2590) => [
q(Gowli),
],
- q(2595) => [
+ q(2591) => [
q(Gola),
],
- q(2596) => [
+ q(2592) => [
q(Goan Konkani),
],
- q(2597) => [
+ q(2593) => [
q(Gone Dau),
],
- q(2598) => [
+ q(2594) => [
q(Yeretuar),
],
- q(2599) => [
+ q(2595) => [
q(Gorap),
],
- q(2600) => [
+ q(2596) => [
q(Gronings),
],
- q(2601) => [
+ q(2597) => [
q(Gavar),
],
- q(2602) => [
+ q(2598) => [
q(Gorowa),
],
- q(2603) => [
+ q(2599) => [
q(Gobu),
],
- q(2604) => [
+ q(2600) => [
q(Goundo),
],
- q(2605) => [
+ q(2601) => [
q(Gozarkhani),
],
- q(2606) => [
+ q(2602) => [
q(Gupa-Abawa),
],
- q(2607) => [
+ q(2603) => [
q(Ghanaian Pidgin English),
],
- q(2608) => [
+ q(2604) => [
q(Taiap),
],
- q(2609) => [
+ q(2605) => [
q(Ga'anda),
],
- q(2610) => [
+ q(2606) => [
q(Guiqiong),
],
- q(2611) => [
+ q(2607) => [
q(Guana (Brazil)),
],
- q(2612) => [
+ q(2608) => [
q(Gor),
],
- q(2613) => [
+ q(2609) => [
q(Qau),
],
- q(2614) => [
+ q(2610) => [
q(Rajput Garasia),
],
- q(2615) => [
+ q(2611) => [
q(Guruntum-Mbaaru),
],
- q(2616) => [
+ q(2612) => [
q(Madi),
],
- q(2617) => [
+ q(2613) => [
q(Gbiri-Niragu),
],
- q(2618) => [
+ q(2614) => [
q(Ghari),
],
- q(2619) => [
+ q(2615) => [
q(Southern Grebo),
],
- q(2620) => [
+ q(2616) => [
q(Kota Marudu Talantang),
],
- q(2621) => [
+ q(2617) => [
q(Groma),
],
- q(2622) => [
+ q(2618) => [
q(Gorovu),
],
- q(2623) => [
+ q(2619) => [
q(Taznatit),
],
- q(2624) => [
+ q(2620) => [
q(Gresi),
],
- q(2625) => [
+ q(2621) => [
q(Garo),
],
- q(2626) => [
+ q(2622) => [
q(Kistane),
],
- q(2627) => [
+ q(2623) => [
q(Central Grebo),
],
- q(2628) => [
+ q(2624) => [
q(Gweda),
],
- q(2629) => [
+ q(2625) => [
q(Guriaso),
],
- q(2630) => [
+ q(2626) => [
q(Barclayville Grebo),
],
- q(2631) => [
+ q(2627) => [
q(Guramalum),
],
- q(2632) => [
+ q(2628) => [
q(Ghanaian Sign Language),
],
- q(2633) => [
+ q(2629) => [
q(German Sign Language),
],
- q(2634) => [
+ q(2630) => [
q(Gusilay),
],
- q(2635) => [
+ q(2631) => [
q(Guatemalan Sign Language),
],
- q(2636) => [
+ q(2632) => [
+ q(Nema),
q(Gusan),
],
- q(2637) => [
+ q(2633) => [
q(Southwest Gbaya),
],
- q(2638) => [
+ q(2634) => [
q(Wasembo),
],
- q(2639) => [
+ q(2635) => [
q(Greek Sign Language),
],
- q(2640) => [
+ q(2636) => [
q(Guato),
],
- q(2641) => [
+ q(2637) => [
q(Aghu-Tharnggala),
],
- q(2642) => [
+ q(2638) => [
q(Shiki),
],
- q(2643) => [
+ q(2639) => [
q(Guajajara),
],
- q(2644) => [
+ q(2640) => [
q(Wayuu),
],
- q(2645) => [
+ q(2641) => [
q(Yocoboue Dida),
],
- q(2646) => [
+ q(2642) => [
q(Gurinji),
],
- q(2647) => [
+ q(2643) => [
q(Gupapuyngu),
],
- q(2648) => [
+ q(2644) => [
q(Paraguayan Guarani),
],
- q(2649) => [
+ q(2645) => [
q(Guahibo),
],
- q(2650) => [
+ q(2646) => [
q(Eastern Bolivian Guarani),
],
- q(2651) => [
+ q(2647) => [
q(Gumuz),
],
- q(2652) => [
+ q(2648) => [
q(Sea Island Creole English),
],
- q(2653) => [
+ q(2649) => [
q(Guambiano),
],
- q(2654) => [
+ q(2650) => [
q(Mbya Guarani),
],
- q(2655) => [
+ q(2651) => [
q(Guayabero),
],
- q(2656) => [
+ q(2652) => [
q(Gunwinggu),
],
- q(2657) => [
+ q(2653) => [
q(Ache),
],
- q(2658) => [
+ q(2654) => [
q(Farefare),
],
- q(2659) => [
+ q(2655) => [
q(Guinean Sign Language),
],
- q(2660) => [
+ q(2656) => [
q(Maleku Jaika),
],
- q(2661) => [
+ q(2657) => [
q(Yanomamo),
],
- q(2662) => [
- q(Gey),
- ],
- q(2663) => [
+ q(2658) => [
q(Gun),
],
- q(2664) => [
+ q(2659) => [
q(Gourmanchema),
],
- q(2665) => [
+ q(2660) => [
q(Gusii),
q(Ekegusii),
],
- q(2666) => [
+ q(2661) => [
q(Guana (Paraguay)),
],
- q(2667) => [
+ q(2662) => [
q(Guanano),
],
- q(2668) => [
+ q(2663) => [
q(Duwet),
],
- q(2669) => [
+ q(2664) => [
q(Golin),
],
- q(2670) => [
+ q(2665) => [
q(Guaja),
],
- q(2671) => [
+ q(2666) => [
q(Gulay),
],
- q(2672) => [
+ q(2667) => [
q(Gurmana),
],
- q(2673) => [
+ q(2668) => [
q(Kuku-Yalanji),
],
- q(2674) => [
+ q(2669) => [
q(Gaviao Do Jiparana),
],
- q(2675) => [
+ q(2670) => [
q(Para Gaviao),
],
- q(2676) => [
- q(Western Gurung),
+ q(2671) => [
+ q(Gurung),
],
- q(2677) => [
+ q(2672) => [
q(Gumawana),
],
- q(2678) => [
+ q(2673) => [
q(Guyani),
],
- q(2679) => [
+ q(2674) => [
q(Mbato),
],
- q(2680) => [
+ q(2675) => [
q(Gwa),
],
- q(2681) => [
+ q(2676) => [
q(Kalami),
],
- q(2682) => [
+ q(2677) => [
q(Gawwada),
],
- q(2683) => [
+ q(2678) => [
q(Gweno),
],
- q(2684) => [
+ q(2679) => [
q(Gowro),
],
- q(2685) => [
+ q(2680) => [
q(Moo),
],
- q(2686) => [
+ q(2681) => [
q(/Gwi),
q(Gwi),
],
- q(2687) => [
+ q(2682) => [
q(Awngthim),
],
- q(2688) => [
+ q(2683) => [
q(Gwandara),
],
- q(2689) => [
+ q(2684) => [
q(Gwere),
],
- q(2690) => [
+ q(2685) => [
q(Gawar-Bati),
],
- q(2691) => [
+ q(2686) => [
q(Guwamu),
],
- q(2692) => [
+ q(2687) => [
q(Kwini),
],
- q(2693) => [
+ q(2688) => [
q(Gua),
],
- q(2694) => [
+ q(2689) => [
q(We Southern),
],
- q(2695) => [
+ q(2690) => [
q(Northwest Gbaya),
],
- q(2696) => [
+ q(2691) => [
q(Garus),
],
- q(2697) => [
+ q(2692) => [
q(Kayardild),
],
- q(2698) => [
+ q(2693) => [
q(Gyem),
],
- q(2699) => [
+ q(2694) => [
q(Gungabula),
],
- q(2700) => [
+ q(2695) => [
q(Gbayi),
],
- q(2701) => [
+ q(2696) => [
q(Gyele),
],
- q(2702) => [
+ q(2697) => [
q(Gayil),
],
- q(2703) => [
+ q(2698) => [
q(Ngabere),
],
- q(2704) => [
+ q(2699) => [
q(Guyanese Creole English),
],
- q(2705) => [
+ q(2700) => [
q(Guarayu),
],
- q(2706) => [
+ q(2701) => [
q(Gunya),
],
- q(2707) => [
+ q(2702) => [
q(Ganza),
],
- q(2708) => [
+ q(2703) => [
q(Gazi),
],
- q(2709) => [
+ q(2704) => [
q(Gane),
],
- q(2710) => [
+ q(2705) => [
q(Han),
],
- q(2711) => [
+ q(2706) => [
q(Hanoi Sign Language),
],
- q(2712) => [
+ q(2707) => [
q(Gurani),
],
- q(2713) => [
+ q(2708) => [
q(Hatam),
],
- q(2714) => [
+ q(2709) => [
q(Eastern Oromo),
],
- q(2715) => [
+ q(2710) => [
q(Haiphong Sign Language),
],
- q(2716) => [
+ q(2711) => [
q(Hanga),
],
- q(2717) => [
+ q(2712) => [
q(Hahon),
],
- q(2718) => [
+ q(2713) => [
q(Hajong),
],
- q(2719) => [
+ q(2714) => [
q(Hakka Chinese),
],
- q(2720) => [
+ q(2715) => [
q(Halang),
],
- q(2721) => [
+ q(2716) => [
q(Hewa),
],
- q(2722) => [
+ q(2717) => [
q(Hangaza),
],
- q(2723) => [
+ q(2718) => [
q(Hako),
],
- q(2724) => [
+ q(2719) => [
q(Hupla),
],
- q(2725) => [
+ q(2720) => [
q(Ha),
],
- q(2726) => [
+ q(2721) => [
q(Harari),
],
- q(2727) => [
+ q(2722) => [
q(Haisla),
],
- q(2728) => [
+ q(2723) => [
q(Havu),
],
- q(2729) => [
+ q(2724) => [
q(Southern Haida),
],
- q(2730) => [
+ q(2725) => [
q(Haya),
],
- q(2731) => [
+ q(2726) => [
q(Hazaragi),
],
- q(2732) => [
+ q(2727) => [
q(Hamba),
],
- q(2733) => [
+ q(2728) => [
q(Huba),
],
- q(2734) => [
+ q(2729) => [
q(Heiban),
],
- q(2735) => [
+ q(2730) => [
q(Ancient Hebrew),
],
- q(2736) => [
+ q(2731) => [
q(Habu),
],
- q(2737) => [
+ q(2732) => [
q(Andaman Creole Hindi),
],
- q(2738) => [
+ q(2733) => [
q(Huichol),
],
- q(2739) => [
+ q(2734) => [
q(Northern Haida),
],
- q(2740) => [
+ q(2735) => [
q(Honduras Sign Language),
],
- q(2741) => [
+ q(2736) => [
q(Hadiyya),
],
- q(2742) => [
+ q(2737) => [
q(Northern Qiandong Miao),
],
- q(2743) => [
+ q(2738) => [
q(Herde),
],
- q(2744) => [
+ q(2739) => [
q(Helong),
],
- q(2745) => [
+ q(2740) => [
q(Hehe),
],
- q(2746) => [
+ q(2741) => [
q(Heiltsuk),
],
- q(2747) => [
+ q(2742) => [
q(Hemba),
],
- q(2748) => [
+ q(2743) => [
q(Hai//om),
q(Haiom),
],
- q(2749) => [
+ q(2744) => [
q(Haigwai),
],
- q(2750) => [
+ q(2745) => [
q(Hoia Hoia),
],
- q(2751) => [
+ q(2746) => [
q(Kerak),
],
- q(2752) => [
+ q(2747) => [
q(Hoyahoya),
],
- q(2753) => [
+ q(2748) => [
q(Lamang),
],
- q(2754) => [
+ q(2749) => [
q(Hibito),
],
- q(2755) => [
+ q(2750) => [
q(Hidatsa),
],
- q(2756) => [
+ q(2751) => [
q(Fiji Hindi),
],
- q(2757) => [
+ q(2752) => [
q(Kamwe),
],
- q(2758) => [
+ q(2753) => [
q(Pamosu),
],
- q(2759) => [
+ q(2754) => [
q(Hinduri),
],
- q(2760) => [
+ q(2755) => [
q(Hijuk),
],
- q(2761) => [
+ q(2756) => [
q(Seit-Kaitetu),
],
- q(2762) => [
+ q(2757) => [
q(Tsoa),
],
- q(2763) => [
+ q(2758) => [
q(Himarima),
],
- q(2764) => [
+ q(2759) => [
q(Hiw),
],
- q(2765) => [
+ q(2760) => [
q(Hixkaryana),
],
- q(2766) => [
+ q(2761) => [
q(Haji),
],
- q(2767) => [
+ q(2762) => [
q(Kahe),
],
- q(2768) => [
+ q(2763) => [
q(Hunde),
],
- q(2769) => [
+ q(2764) => [
q(Hunjara-Kaina Ke),
],
- q(2770) => [
+ q(2765) => [
q(Hong Kong Sign Language),
q(Heung Kong Sau Yue),
],
- q(2771) => [
+ q(2766) => [
q(Halia),
],
- q(2772) => [
+ q(2767) => [
q(Halbi),
],
- q(2773) => [
+ q(2768) => [
q(Halang Doan),
],
- q(2774) => [
+ q(2769) => [
q(Hlersu),
],
- q(2775) => [
+ q(2770) => [
q(Matu Chin),
],
- q(2776) => [
+ q(2771) => [
q(Hieroglyphic Luwian),
],
- q(2777) => [
+ q(2772) => [
q(Southern Mashan Hmong),
q(Southern Mashan Miao),
],
- q(2778) => [
+ q(2773) => [
q(Humburi Senni Songhay),
],
- q(2779) => [
+ q(2774) => [
q(Central Huishui Hmong),
q(Central Huishui Miao),
],
- q(2780) => [
+ q(2775) => [
q(Large Flowery Miao),
q(A-hmaos),
q(Da-Hua Miao),
],
- q(2781) => [
+ q(2776) => [
q(Eastern Huishui Hmong),
q(Eastern Huishui Miao),
],
- q(2782) => [
+ q(2777) => [
q(Hmong Don),
],
- q(2783) => [
+ q(2778) => [
q(Southwestern Guiyang Hmong),
],
- q(2784) => [
+ q(2779) => [
q(Southwestern Huishui Hmong),
q(Southwestern Huishui Miao),
],
- q(2785) => [
+ q(2780) => [
q(Northern Huishui Hmong),
q(Northern Huishui Miao),
],
- q(2786) => [
+ q(2781) => [
q(Ge),
q(Gejia),
],
- q(2787) => [
+ q(2782) => [
q(Maek),
],
- q(2788) => [
+ q(2783) => [
q(Luopohe Hmong),
q(Luopohe Miao),
],
- q(2789) => [
+ q(2784) => [
q(Central Mashan Hmong),
q(Central Mashan Miao),
],
- q(2790) => [
+ q(2785) => [
q(Northern Mashan Hmong),
q(Northern Mashan Miao),
],
- q(2791) => [
+ q(2786) => [
q(Eastern Qiandong Miao),
],
- q(2792) => [
+ q(2787) => [
q(Hmar),
],
- q(2793) => [
+ q(2788) => [
q(Southern Qiandong Miao),
],
- q(2794) => [
+ q(2789) => [
q(Hamtai),
],
- q(2795) => [
+ q(2790) => [
q(Hamap),
],
- q(2796) => [
+ q(2791) => [
q(Hmong Do),
],
- q(2797) => [
+ q(2792) => [
q(Western Mashan Hmong),
q(Western Mashan Miao),
],
- q(2798) => [
+ q(2793) => [
q(Southern Guiyang Hmong),
q(Southern Guiyang Miao),
],
- q(2799) => [
+ q(2794) => [
q(Hmong Shua),
q(Sinicized Miao),
],
- q(2800) => [
+ q(2795) => [
q(Mina (Cameroon)),
],
- q(2801) => [
+ q(2796) => [
q(Southern Hindko),
],
- q(2802) => [
+ q(2797) => [
q(Chhattisgarhi),
],
- q(2803) => [
+ q(2798) => [
q(//Ani),
q(Ani),
],
- q(2804) => [
+ q(2799) => [
q(Hani),
],
- q(2805) => [
+ q(2800) => [
q(Hmong Njua),
q(Mong Leng),
q(Mong Njua),
],
- q(2806) => [
+ q(2801) => [
q(Hanunoo),
],
- q(2807) => [
+ q(2802) => [
q(Northern Hindko),
],
- q(2808) => [
+ q(2803) => [
q(Caribbean Hindustani),
],
- q(2809) => [
+ q(2804) => [
q(Hung),
],
- q(2810) => [
+ q(2805) => [
q(Hoava),
],
- q(2811) => [
+ q(2806) => [
q(Mari (Madang Province)),
],
- q(2812) => [
+ q(2807) => [
q(Ho),
],
- q(2813) => [
+ q(2808) => [
q(Holma),
],
- q(2814) => [
+ q(2809) => [
q(Horom),
],
- q(2815) => [
+ q(2810) => [
q(Hobyot),
],
- q(2816) => [
+ q(2811) => [
q(Holikachuk),
],
- q(2817) => [
+ q(2812) => [
q(Hadothi),
q(Haroti),
],
- q(2818) => [
+ q(2813) => [
q(Holu),
],
- q(2819) => [
+ q(2814) => [
q(Homa),
],
- q(2820) => [
+ q(2815) => [
q(Holoholo),
],
- q(2821) => [
+ q(2816) => [
q(Hopi),
],
- q(2822) => [
+ q(2817) => [
q(Horo),
],
- q(2823) => [
+ q(2818) => [
q(Ho Chi Minh City Sign Language),
],
- q(2824) => [
+ q(2819) => [
q(Hote),
q(Male),
],
- q(2825) => [
+ q(2820) => [
q(Hovongan),
],
- q(2826) => [
+ q(2821) => [
q(Honi),
],
- q(2827) => [
+ q(2822) => [
q(Holiya),
],
- q(2828) => [
+ q(2823) => [
q(Hozo),
],
- q(2829) => [
+ q(2824) => [
q(Hpon),
],
- q(2830) => [
+ q(2825) => [
q(Hawai'i Sign Language (HSL)),
q(Hawai'i Pidgin Sign Language),
],
- q(2831) => [
+ q(2826) => [
q(Hrangkhol),
],
- q(2832) => [
+ q(2827) => [
q(Niwer Mil),
],
- q(2833) => [
+ q(2828) => [
q(Hre),
],
- q(2834) => [
+ q(2829) => [
q(Haruku),
],
- q(2835) => [
+ q(2830) => [
q(Horned Miao),
],
- q(2836) => [
+ q(2831) => [
q(Haroi),
],
- q(2837) => [
+ q(2832) => [
q(Nhirrpi),
],
- q(2838) => [
+ q(2833) => [
q(Hertevin),
],
- q(2839) => [
+ q(2834) => [
q(Hruso),
],
- q(2840) => [
+ q(2835) => [
q(Warwar Feni),
],
- q(2841) => [
+ q(2836) => [
q(Hunsrik),
],
- q(2842) => [
+ q(2837) => [
q(Harzani),
],
- q(2843) => [
+ q(2838) => [
q(Hungarian Sign Language),
],
- q(2844) => [
+ q(2839) => [
q(Hausa Sign Language),
],
- q(2845) => [
+ q(2840) => [
q(Xiang Chinese),
],
- q(2846) => [
+ q(2841) => [
q(Harsusi),
],
- q(2847) => [
+ q(2842) => [
q(Hoti),
],
- q(2848) => [
+ q(2843) => [
q(Minica Huitoto),
],
- q(2849) => [
+ q(2844) => [
q(Hadza),
],
- q(2850) => [
+ q(2845) => [
q(Hitu),
],
- q(2851) => [
+ q(2846) => [
q(Middle Hittite),
],
- q(2852) => [
+ q(2847) => [
q(Huambisa),
],
- q(2853) => [
+ q(2848) => [
q(=/Hua),
q(Hua),
],
- q(2854) => [
+ q(2849) => [
q(Huaulu),
],
- q(2855) => [
+ q(2850) => [
q(San Francisco Del Mar Huave),
],
- q(2856) => [
+ q(2851) => [
q(Humene),
],
- q(2857) => [
+ q(2852) => [
q(Huachipaeri),
],
- q(2858) => [
+ q(2853) => [
q(Huilliche),
],
- q(2859) => [
+ q(2854) => [
q(Huli),
],
- q(2860) => [
+ q(2855) => [
q(Northern Guiyang Hmong),
q(Northern Guiyang Miao),
],
- q(2861) => [
+ q(2856) => [
q(Hulung),
],
- q(2862) => [
+ q(2857) => [
q(Hula),
],
- q(2863) => [
+ q(2858) => [
q(Hungana),
],
- q(2864) => [
+ q(2859) => [
q(Hu),
],
- q(2865) => [
+ q(2860) => [
q(Tsat),
],
- q(2866) => [
+ q(2861) => [
q(Halkomelem),
],
- q(2867) => [
+ q(2862) => [
q(Huastec),
],
- q(2868) => [
+ q(2863) => [
q(Humla),
],
- q(2869) => [
+ q(2864) => [
q(Murui Huitoto),
],
- q(2870) => [
+ q(2865) => [
q(San Mateo Del Mar Huave),
],
- q(2871) => [
+ q(2866) => [
q(Hukumina),
],
- q(2872) => [
+ q(2867) => [
q(Nupode Huitoto),
],
- q(2873) => [
+ q(2868) => [
q(Hulaula),
],
- q(2874) => [
+ q(2869) => [
q(Hunzib),
],
- q(2875) => [
+ q(2870) => [
q(Haitian Vodoun Culture Language),
],
- q(2876) => [
+ q(2871) => [
q(San Dionisio Del Mar Huave),
],
- q(2877) => [
+ q(2872) => [
q(Haveke),
],
- q(2878) => [
+ q(2873) => [
q(Sabu),
],
- q(2879) => [
+ q(2874) => [
q(Santa Maria Del Mar Huave),
],
- q(2880) => [
+ q(2875) => [
q(Wane),
],
- q(2881) => [
+ q(2876) => [
q(Hawai'i Creole English),
q(Hawai'i Pidgin),
],
- q(2882) => [
+ q(2877) => [
q(Hwana),
],
- q(2883) => [
+ q(2878) => [
q(Hya),
],
- q(2884) => [
+ q(2879) => [
q(Iaai),
],
- q(2885) => [
+ q(2880) => [
q(Iatmul),
],
- q(2886) => [
- q(Iapama),
- ],
- q(2887) => [
+ q(2881) => [
q(Purari),
],
- q(2888) => [
+ q(2882) => [
q(Ibibio),
],
- q(2889) => [
+ q(2883) => [
q(Iwaidja),
],
- q(2890) => [
+ q(2884) => [
q(Akpes),
],
- q(2891) => [
+ q(2885) => [
q(Ibanag),
],
- q(2892) => [
+ q(2886) => [
q(Ibaloi),
],
- q(2893) => [
+ q(2887) => [
q(Agoi),
],
- q(2894) => [
+ q(2888) => [
q(Ibino),
],
- q(2895) => [
+ q(2889) => [
q(Ibuoro),
],
- q(2896) => [
+ q(2890) => [
q(Ibu),
],
- q(2897) => [
+ q(2891) => [
q(Ibani),
],
- q(2898) => [
+ q(2892) => [
q(Ede Ica),
],
- q(2899) => [
+ q(2893) => [
q(Etkywan),
],
- q(2900) => [
+ q(2894) => [
q(Icelandic Sign Language),
],
- q(2901) => [
+ q(2895) => [
q(Islander Creole English),
],
- q(2902) => [
+ q(2896) => [
q(Idakho-Isukha-Tiriki),
q(Luidakho-Luisukha-Lutirichi),
],
- q(2903) => [
+ q(2897) => [
q(Indo-Portuguese),
],
- q(2904) => [
+ q(2898) => [
q(Idon),
q(Ajiya),
],
- q(2905) => [
+ q(2899) => [
q(Ede Idaca),
],
- q(2906) => [
+ q(2900) => [
q(Idere),
],
- q(2907) => [
+ q(2901) => [
q(Idi),
],
- q(2908) => [
+ q(2902) => [
q(Indri),
],
- q(2909) => [
+ q(2903) => [
q(Idesa),
],
- q(2910) => [
+ q(2904) => [
q(Idate),
],
- q(2911) => [
+ q(2905) => [
q(Idoma),
],
- q(2912) => [
+ q(2906) => [
q(Amganad Ifugao),
],
- q(2913) => [
+ q(2907) => [
q(Batad Ifugao),
q(Ayangan Ifugao),
],
- q(2914) => [
+ q(2908) => [
q(Ife),
],
- q(2915) => [
+ q(2909) => [
q(Ifo),
],
- q(2916) => [
+ q(2910) => [
q(Tuwali Ifugao),
],
- q(2917) => [
+ q(2911) => [
q(Teke-Fuumu),
],
- q(2918) => [
+ q(2912) => [
q(Mayoyao Ifugao),
],
- q(2919) => [
+ q(2913) => [
q(Keley-I Kallahan),
],
- q(2920) => [
+ q(2914) => [
q(Ebira),
],
- q(2921) => [
+ q(2915) => [
q(Igede),
],
- q(2922) => [
+ q(2916) => [
q(Igana),
],
- q(2923) => [
+ q(2917) => [
q(Igala),
],
- q(2924) => [
+ q(2918) => [
q(Kanggape),
],
- q(2925) => [
+ q(2919) => [
q(Ignaciano),
],
- q(2926) => [
+ q(2920) => [
q(Isebe),
],
- q(2927) => [
+ q(2921) => [
q(Interglossa),
],
- q(2928) => [
+ q(2922) => [
q(Igwe),
],
- q(2929) => [
+ q(2923) => [
q(Iha Based Pidgin),
],
- q(2930) => [
+ q(2924) => [
q(Ihievbe),
],
- q(2931) => [
+ q(2925) => [
q(Iha),
],
- q(2932) => [
+ q(2926) => [
q(Bidhawal),
],
- q(2933) => [
+ q(2927) => [
q(Thiin),
],
- q(2934) => [
+ q(2928) => [
q(Izon),
],
- q(2935) => [
+ q(2929) => [
q(Biseni),
],
- q(2936) => [
+ q(2930) => [
q(Ede Ije),
],
- q(2937) => [
+ q(2931) => [
q(Kalabari),
],
- q(2938) => [
+ q(2932) => [
q(Southeast Ijo),
],
- q(2939) => [
+ q(2933) => [
q(Eastern Canadian Inuktitut),
],
- q(2940) => [
+ q(2934) => [
q(Iko),
],
- q(2941) => [
+ q(2935) => [
q(Ika),
],
- q(2942) => [
+ q(2936) => [
q(Ikulu),
],
- q(2943) => [
+ q(2937) => [
q(Olulumo-Ikom),
],
- q(2944) => [
+ q(2938) => [
q(Ikpeshi),
],
- q(2945) => [
+ q(2939) => [
q(Ikaranggal),
],
- q(2946) => [
+ q(2940) => [
q(Inuit Sign Language),
],
- q(2947) => [
+ q(2941) => [
q(Inuinnaqtun),
q(Western Canadian Inuktitut),
],
- q(2948) => [
+ q(2942) => [
q(Iku-Gora-Ankwa),
],
- q(2949) => [
+ q(2943) => [
q(Ikwere),
],
- q(2950) => [
+ q(2944) => [
q(Ik),
],
- q(2951) => [
+ q(2945) => [
q(Ikizu),
],
- q(2952) => [
+ q(2946) => [
q(Ile Ape),
],
- q(2953) => [
+ q(2947) => [
q(Ila),
],
- q(2954) => [
+ q(2948) => [
q(Garig-Ilgar),
],
- q(2955) => [
+ q(2949) => [
q(Ili Turki),
],
- q(2956) => [
+ q(2950) => [
q(Ilongot),
],
- q(2957) => [
- q(Iranun),
+ q(2951) => [
+ q(Iranun (Malaysia)),
],
- q(2958) => [
+ q(2952) => [
+ q(Iranun (Philippines)),
+ ],
+ q(2953) => [
q(International Sign),
],
- q(2959) => [
+ q(2954) => [
q(Ili'uun),
],
- q(2960) => [
+ q(2955) => [
q(Ilue),
],
- q(2961) => [
+ q(2956) => [
q(Mala Malasar),
],
- q(2962) => [
+ q(2957) => [
q(Anamgura),
],
- q(2963) => [
+ q(2958) => [
q(Miluk),
],
- q(2964) => [
+ q(2959) => [
q(Imonda),
],
- q(2965) => [
+ q(2960) => [
q(Imbongu),
],
- q(2966) => [
+ q(2961) => [
q(Imroing),
],
- q(2967) => [
+ q(2962) => [
q(Marsian),
],
- q(2968) => [
+ q(2963) => [
q(Milyan),
],
- q(2969) => [
+ q(2964) => [
q(Inga),
],
- q(2970) => [
+ q(2965) => [
q(Degexit'an),
],
- q(2971) => [
+ q(2966) => [
q(Jungle Inga),
],
- q(2972) => [
+ q(2967) => [
q(Indonesian Sign Language),
],
- q(2973) => [
+ q(2968) => [
q(Minaean),
],
- q(2974) => [
+ q(2969) => [
q(Isinai),
],
- q(2975) => [
+ q(2970) => [
q(Inoke-Yate),
],
- q(2976) => [
+ q(2971) => [
q(Inapari),
],
- q(2977) => [
+ q(2972) => [
q(Indian Sign Language),
],
- q(2978) => [
+ q(2973) => [
q(Intha),
],
- q(2979) => [
+ q(2974) => [
q(Ineseno),
],
- q(2980) => [
+ q(2975) => [
q(Inor),
],
- q(2981) => [
+ q(2976) => [
q(Tuma-Irumu),
],
- q(2982) => [
+ q(2977) => [
q(Iowa-Oto),
],
- q(2983) => [
+ q(2978) => [
q(Ipili),
],
- q(2984) => [
+ q(2979) => [
q(Ipiko),
],
- q(2985) => [
+ q(2980) => [
q(Iquito),
],
- q(2986) => [
+ q(2981) => [
q(Ikwo),
],
- q(2987) => [
+ q(2982) => [
q(Iresim),
],
- q(2988) => [
+ q(2983) => [
q(Irarutu),
],
- q(2989) => [
+ q(2984) => [
q(Irigwe),
],
- q(2990) => [
+ q(2985) => [
q(Iraqw),
],
- q(2991) => [
+ q(2986) => [
q(Irantxe),
],
- q(2992) => [
+ q(2987) => [
q(Ir),
],
- q(2993) => [
+ q(2988) => [
q(Irula),
],
- q(2994) => [
+ q(2989) => [
q(Kamberau),
],
- q(2995) => [
+ q(2990) => [
q(Iraya),
],
- q(2996) => [
+ q(2991) => [
q(Isabi),
],
- q(2997) => [
+ q(2992) => [
q(Isconahua),
],
- q(2998) => [
+ q(2993) => [
q(Isnag),
],
- q(2999) => [
+ q(2994) => [
q(Italian Sign Language),
],
- q(3000) => [
+ q(2995) => [
q(Irish Sign Language),
],
- q(3001) => [
+ q(2996) => [
q(Esan),
],
- q(3002) => [
+ q(2997) => [
q(Nkem-Nkum),
],
- q(3003) => [
+ q(2998) => [
q(Ishkashimi),
],
- q(3004) => [
+ q(2999) => [
q(Masimasi),
],
- q(3005) => [
+ q(3000) => [
q(Isanzu),
],
- q(3006) => [
+ q(3001) => [
q(Isoko),
],
- q(3007) => [
+ q(3002) => [
q(Israeli Sign Language),
],
- q(3008) => [
+ q(3003) => [
q(Istriot),
],
- q(3009) => [
+ q(3004) => [
q(Isu (Menchum Division)),
],
- q(3010) => [
+ q(3005) => [
q(Binongan Itneg),
],
- q(3011) => [
+ q(3006) => [
+ q(Southern Tidung),
+ ],
+ q(3007) => [
q(Itene),
],
- q(3012) => [
+ q(3008) => [
q(Inlaod Itneg),
],
- q(3013) => [
+ q(3009) => [
q(Judeo-Italian),
],
- q(3014) => [
+ q(3010) => [
q(Itelmen),
],
- q(3015) => [
+ q(3011) => [
q(Itu Mbon Uzo),
],
- q(3016) => [
+ q(3012) => [
q(Itonama),
],
- q(3017) => [
+ q(3013) => [
q(Iteri),
],
- q(3018) => [
+ q(3014) => [
q(Isekiri),
],
- q(3019) => [
+ q(3015) => [
q(Maeng Itneg),
],
- q(3020) => [
+ q(3016) => [
q(Itawit),
],
- q(3021) => [
+ q(3017) => [
q(Ito),
],
- q(3022) => [
+ q(3018) => [
q(Itik),
],
- q(3023) => [
+ q(3019) => [
q(Moyadan Itneg),
],
- q(3024) => [
+ q(3020) => [
q(Itza),
],
- q(3025) => [
+ q(3021) => [
q(Iu Mien),
],
- q(3026) => [
+ q(3022) => [
q(Ibatan),
],
- q(3027) => [
+ q(3023) => [
q(Ivatan),
],
- q(3028) => [
+ q(3024) => [
q(I-Wak),
],
- q(3029) => [
+ q(3025) => [
q(Iwam),
],
- q(3030) => [
+ q(3026) => [
q(Iwur),
],
- q(3031) => [
+ q(3027) => [
q(Sepik Iwam),
],
- q(3032) => [
+ q(3028) => [
q(Ixcatec),
],
- q(3033) => [
+ q(3029) => [
q(Ixil),
],
- q(3034) => [
+ q(3030) => [
q(Iyayu),
],
- q(3035) => [
+ q(3031) => [
q(Mesaka),
],
- q(3036) => [
+ q(3032) => [
q(Yaka (Congo)),
],
- q(3037) => [
+ q(3033) => [
q(Ingrian),
],
- q(3038) => [
+ q(3034) => [
q(Izere),
],
- q(3039) => [
+ q(3035) => [
q(Izii),
],
- q(3040) => [
+ q(3036) => [
q(Jamamadi),
],
- q(3041) => [
+ q(3037) => [
q(Hyam),
],
- q(3042) => [
+ q(3038) => [
q(Popti'),
q(Jakalteko),
],
- q(3043) => [
+ q(3039) => [
q(Jahanka),
],
- q(3044) => [
+ q(3040) => [
q(Yabem),
],
- q(3045) => [
+ q(3041) => [
q(Jara),
],
- q(3046) => [
+ q(3042) => [
q(Jah Hut),
],
- q(3047) => [
+ q(3043) => [
q(Zazao),
],
- q(3048) => [
+ q(3044) => [
q(Jakun),
],
- q(3049) => [
+ q(3045) => [
q(Yalahatan),
],
- q(3050) => [
+ q(3046) => [
q(Jamaican Creole English),
],
- q(3051) => [
+ q(3047) => [
q(Jandai),
],
- q(3052) => [
+ q(3048) => [
q(Yanyuwa),
],
- q(3053) => [
+ q(3049) => [
q(Yaqay),
],
- q(3054) => [
+ q(3050) => [
q(New Caledonian Javanese),
],
- q(3055) => [
+ q(3051) => [
q(Jakati),
],
- q(3056) => [
+ q(3052) => [
q(Yaur),
],
- q(3057) => [
+ q(3053) => [
q(Jambi Malay),
],
- q(3058) => [
+ q(3054) => [
q(Yan-nhangu),
],
- q(3059) => [
+ q(3055) => [
q(Jawe),
],
- q(3060) => [
+ q(3056) => [
q(Judeo-Berber),
],
- q(3061) => [
+ q(3057) => [
q(Badjiri),
],
- q(3062) => [
+ q(3058) => [
q(Arandai),
],
- q(3063) => [
+ q(3059) => [
q(Barikewa),
],
- q(3064) => [
+ q(3060) => [
q(Nafusi),
],
- q(3065) => [
+ q(3061) => [
q(Jofotek-Bromnya),
],
- q(3066) => [
+ q(3062) => [
q(Jabuti),
],
- q(3067) => [
+ q(3063) => [
q(Jukun Takum),
],
- q(3068) => [
+ q(3064) => [
q(Yawijibaya),
],
- q(3069) => [
+ q(3065) => [
q(Jamaican Country Sign Language),
],
- q(3070) => [
+ q(3066) => [
q(Krymchak),
],
- q(3071) => [
+ q(3067) => [
q(Jad),
],
- q(3072) => [
+ q(3068) => [
q(Jadgali),
],
- q(3073) => [
+ q(3069) => [
q(Judeo-Tat),
],
- q(3074) => [
+ q(3070) => [
q(Jebero),
],
- q(3075) => [
+ q(3071) => [
q(Jerung),
],
- q(3076) => [
+ q(3072) => [
q(Jeng),
],
- q(3077) => [
+ q(3073) => [
q(Jeh),
],
- q(3078) => [
+ q(3074) => [
q(Yei),
],
- q(3079) => [
+ q(3075) => [
q(Jeri Kuo),
],
- q(3080) => [
+ q(3076) => [
q(Yelmek),
],
- q(3081) => [
+ q(3077) => [
q(Dza),
],
- q(3082) => [
+ q(3078) => [
q(Jere),
],
- q(3083) => [
+ q(3079) => [
q(Manem),
],
- q(3084) => [
+ q(3080) => [
q(Jonkor Bourmataguil),
],
- q(3085) => [
+ q(3081) => [
q(Ngbee),
],
- q(3086) => [
+ q(3082) => [
q(Judeo-Georgian),
],
- q(3087) => [
+ q(3083) => [
q(Gwak),
],
- q(3088) => [
+ q(3084) => [
q(Ngomba),
],
- q(3089) => [
+ q(3085) => [
q(Jehai),
],
- q(3090) => [
+ q(3086) => [
q(Jhankot Sign Language),
],
- q(3091) => [
+ q(3087) => [
q(Jina),
],
- q(3092) => [
+ q(3088) => [
q(Jibu),
],
- q(3093) => [
+ q(3089) => [
q(Tol),
],
- q(3094) => [
+ q(3090) => [
q(Bu),
],
- q(3095) => [
+ q(3091) => [
q(Jilbe),
],
- q(3096) => [
+ q(3092) => [
q(Djingili),
],
- q(3097) => [
+ q(3093) => [
q(sTodsde),
q(Shangzhai),
],
- q(3098) => [
+ q(3094) => [
q(Jiiddu),
],
- q(3099) => [
+ q(3095) => [
q(Jilim),
],
- q(3100) => [
+ q(3096) => [
q(Jimi (Cameroon)),
],
- q(3101) => [
+ q(3097) => [
q(Jiamao),
],
- q(3102) => [
+ q(3098) => [
q(Guanyinqiao),
q(Lavrung),
],
- q(3103) => [
+ q(3099) => [
q(Jita),
],
- q(3104) => [
+ q(3100) => [
q(Youle Jinuo),
],
- q(3105) => [
+ q(3101) => [
q(Shuar),
],
- q(3106) => [
+ q(3102) => [
q(Buyuan Jinuo),
],
- q(3107) => [
+ q(3103) => [
q(Jejueo),
],
- q(3108) => [
+ q(3104) => [
q(Bankal),
],
- q(3109) => [
+ q(3105) => [
+ q(Kaera),
+ ],
+ q(3106) => [
q(Mobwa Karen),
],
- q(3110) => [
+ q(3107) => [
q(Kubo),
],
- q(3111) => [
+ q(3108) => [
q(Paku Karen),
],
- q(3112) => [
+ q(3109) => [
q(Koro (India)),
],
- q(3113) => [
+ q(3110) => [
q(Labir),
],
- q(3114) => [
+ q(3111) => [
q(Ngile),
],
- q(3115) => [
+ q(3112) => [
q(Jamaican Sign Language),
],
- q(3116) => [
+ q(3113) => [
q(Dima),
],
- q(3117) => [
+ q(3114) => [
q(Zumbun),
],
- q(3118) => [
+ q(3115) => [
q(Machame),
],
- q(3119) => [
+ q(3116) => [
q(Yamdena),
],
- q(3120) => [
+ q(3117) => [
q(Jimi (Nigeria)),
],
- q(3121) => [
+ q(3118) => [
q(Jumli),
],
- q(3122) => [
+ q(3119) => [
q(Makuri Naga),
],
- q(3123) => [
+ q(3120) => [
q(Kamara),
],
- q(3124) => [
+ q(3121) => [
q(Mashi (Nigeria)),
],
- q(3125) => [
+ q(3122) => [
q(Mouwase),
],
- q(3126) => [
+ q(3123) => [
q(Western Juxtlahuaca Mixtec),
],
- q(3127) => [
+ q(3124) => [
q(Jangshung),
],
- q(3128) => [
+ q(3125) => [
q(Jandavra),
],
- q(3129) => [
+ q(3126) => [
q(Yangman),
],
- q(3130) => [
+ q(3127) => [
q(Janji),
],
- q(3131) => [
+ q(3128) => [
q(Yemsa),
],
- q(3132) => [
+ q(3129) => [
q(Rawat),
],
- q(3133) => [
+ q(3130) => [
q(Jaunsari),
],
- q(3134) => [
+ q(3131) => [
q(Joba),
],
- q(3135) => [
+ q(3132) => [
q(Wojenaka),
],
- q(3136) => [
+ q(3133) => [
q(Jogi),
],
- q(3137) => [
+ q(3134) => [
q(Jora),
],
- q(3138) => [
+ q(3135) => [
q(Jordanian Sign Language),
],
- q(3139) => [
+ q(3136) => [
q(Jowulu),
],
- q(3140) => [
+ q(3137) => [
q(Jewish Palestinian Aramaic),
],
- q(3141) => [
+ q(3138) => [
q(Jaqaru),
],
- q(3142) => [
+ q(3139) => [
q(Jarai),
],
- q(3143) => [
+ q(3140) => [
q(Jiru),
],
- q(3144) => [
+ q(3141) => [
q(Jorto),
],
- q(3145) => [
+ q(3142) => [
q(Japreria),
],
- q(3146) => [
+ q(3143) => [
q(Japanese Sign Language),
],
- q(3147) => [
+ q(3144) => [
q(Juma),
],
- q(3148) => [
+ q(3145) => [
q(Wannu),
],
- q(3149) => [
+ q(3146) => [
q(Jurchen),
],
- q(3150) => [
+ q(3147) => [
q(Worodougou),
],
- q(3151) => [
+ q(3148) => [
q(Hone),
],
- q(3152) => [
+ q(3149) => [
q(Ngadjuri),
],
- q(3153) => [
+ q(3150) => [
q(Wapan),
],
- q(3154) => [
+ q(3151) => [
q(Jirel),
],
- q(3155) => [
+ q(3152) => [
q(Jumjum),
],
- q(3156) => [
+ q(3153) => [
q(Juang),
],
- q(3157) => [
+ q(3154) => [
q(Jiba),
],
- q(3158) => [
+ q(3155) => [
q(Hupde),
],
- q(3159) => [
+ q(3156) => [
q(Juruna),
],
- q(3160) => [
+ q(3157) => [
q(Jumla Sign Language),
],
- q(3161) => [
+ q(3158) => [
q(Jutish),
],
- q(3162) => [
+ q(3159) => [
q(Ju),
],
- q(3163) => [
+ q(3160) => [
q(Wapha),
],
- q(3164) => [
+ q(3161) => [
q(Juray),
],
- q(3165) => [
+ q(3162) => [
q(Javindo),
],
- q(3166) => [
+ q(3163) => [
q(Caribbean Javanese),
],
- q(3167) => [
+ q(3164) => [
q(Jwira-Pepesa),
],
- q(3168) => [
+ q(3165) => [
q(Jiarong),
],
- q(3169) => [
+ q(3166) => [
q(Judeo-Yemeni Arabic),
],
- q(3170) => [
+ q(3167) => [
q(Jaya),
],
- q(3171) => [
+ q(3168) => [
q(Adara),
],
- q(3172) => [
+ q(3169) => [
q(Ketangalan),
],
- q(3173) => [
+ q(3170) => [
q(Katso),
],
- q(3174) => [
+ q(3171) => [
q(Kajaman),
],
- q(3175) => [
+ q(3172) => [
q(Kara (Central African Republic)),
],
- q(3176) => [
+ q(3173) => [
q(Karekare),
],
- q(3177) => [
+ q(3174) => [
q(Jju),
],
- q(3178) => [
+ q(3175) => [
+ q(Kalanguya),
q(Kayapa Kallahan),
],
- q(3179) => [
+ q(3176) => [
q(Xaasongaxango),
],
- q(3180) => [
+ q(3177) => [
q(Bezhta),
],
- q(3181) => [
+ q(3178) => [
q(Capanahua),
],
- q(3182) => [
+ q(3179) => [
q(Katukina),
],
- q(3183) => [
+ q(3180) => [
q(Kao),
],
- q(3184) => [
+ q(3181) => [
q(Kamayura),
],
- q(3185) => [
+ q(3182) => [
q(Kalarko),
],
- q(3186) => [
+ q(3183) => [
q(Kaxuiana),
],
- q(3187) => [
+ q(3184) => [
q(Kadiweu),
],
- q(3188) => [
+ q(3185) => [
q(Kanju),
],
- q(3189) => [
+ q(3186) => [
q(Khamba),
],
- q(3190) => [
+ q(3187) => [
q(Camsa),
],
- q(3191) => [
+ q(3188) => [
q(Kaptiau),
],
- q(3192) => [
+ q(3189) => [
q(Kari),
],
- q(3193) => [
+ q(3190) => [
q(Grass Koiari),
],
- q(3194) => [
+ q(3191) => [
q(Kanembu),
],
- q(3195) => [
+ q(3192) => [
q(Iwal),
],
- q(3196) => [
+ q(3193) => [
q(Kare (Central African Republic)),
],
- q(3197) => [
+ q(3194) => [
q(Keliko),
],
- q(3198) => [
+ q(3195) => [
q(Kabiye),
],
- q(3199) => [
+ q(3196) => [
q(Kamano),
],
- q(3200) => [
+ q(3197) => [
q(Kafa),
],
- q(3201) => [
+ q(3198) => [
q(Kande),
],
- q(3202) => [
+ q(3199) => [
q(Abadi),
],
- q(3203) => [
+ q(3200) => [
q(Kabutra),
],
- q(3204) => [
+ q(3201) => [
q(Dera (Indonesia)),
],
- q(3205) => [
+ q(3202) => [
q(Kaiep),
],
- q(3206) => [
+ q(3203) => [
q(Ap Ma),
],
- q(3207) => [
+ q(3204) => [
q(Manga Kanuri),
],
- q(3208) => [
+ q(3205) => [
q(Duhwa),
],
- q(3209) => [
+ q(3206) => [
q(Khanty),
],
- q(3210) => [
+ q(3207) => [
q(Kawacha),
],
- q(3211) => [
+ q(3208) => [
q(Lubila),
],
- q(3212) => [
+ q(3209) => [
q(Ngkalmpw Kanum),
],
- q(3213) => [
+ q(3210) => [
q(Kaivi),
],
- q(3214) => [
+ q(3211) => [
q(Ukaan),
],
- q(3215) => [
+ q(3212) => [
q(Tyap),
],
- q(3216) => [
+ q(3213) => [
q(Vono),
],
- q(3217) => [
+ q(3214) => [
q(Kamantan),
],
- q(3218) => [
+ q(3215) => [
q(Kobiana),
],
- q(3219) => [
+ q(3216) => [
q(Kalanga),
],
- q(3220) => [
+ q(3217) => [
q(Kela (Papua New Guinea)),
q(Kala),
],
- q(3221) => [
+ q(3218) => [
q(Gula (Central African Republic)),
],
- q(3222) => [
+ q(3219) => [
q(Nubi),
],
- q(3223) => [
+ q(3220) => [
q(Kinalakna),
],
- q(3224) => [
+ q(3221) => [
q(Kanga),
],
- q(3225) => [
+ q(3222) => [
q(Kamo),
],
- q(3226) => [
+ q(3223) => [
q(Katla),
],
- q(3227) => [
+ q(3224) => [
q(Koenoem),
],
- q(3228) => [
+ q(3225) => [
q(Kaian),
],
- q(3229) => [
+ q(3226) => [
q(Kami (Tanzania)),
],
- q(3230) => [
+ q(3227) => [
q(Kete),
],
- q(3231) => [
+ q(3228) => [
q(Kabwari),
],
- q(3232) => [
+ q(3229) => [
q(Kachama-Ganjule),
],
- q(3233) => [
+ q(3230) => [
q(Korandje),
],
- q(3234) => [
+ q(3231) => [
q(Konongo),
],
- q(3235) => [
+ q(3232) => [
q(Worimi),
],
- q(3236) => [
+ q(3233) => [
q(Kutu),
],
- q(3237) => [
+ q(3234) => [
q(Yankunytjatjara),
],
- q(3238) => [
+ q(3235) => [
q(Makonde),
],
- q(3239) => [
+ q(3236) => [
q(Mamusi),
],
- q(3240) => [
+ q(3237) => [
q(Seba),
],
- q(3241) => [
+ q(3238) => [
q(Tem),
],
- q(3242) => [
+ q(3239) => [
q(Kumam),
],
- q(3243) => [
+ q(3240) => [
q(Karamojong),
],
- q(3244) => [
+ q(3241) => [
q(Numee),
q(Kwenyi),
],
- q(3245) => [
+ q(3242) => [
q(Tsikimba),
],
- q(3246) => [
+ q(3243) => [
q(Kagoma),
],
- q(3247) => [
+ q(3244) => [
q(Kunda),
],
- q(3248) => [
+ q(3245) => [
q(Kaningdon-Nindem),
],
- q(3249) => [
+ q(3246) => [
q(Koch),
],
- q(3250) => [
+ q(3247) => [
q(Karaim),
],
- q(3251) => [
+ q(3248) => [
q(Kuy),
],
- q(3252) => [
+ q(3249) => [
q(Kadaru),
],
- q(3253) => [
+ q(3250) => [
q(Koneraw),
],
- q(3254) => [
+ q(3251) => [
q(Kam),
],
- q(3255) => [
+ q(3252) => [
q(Keder),
q(Keijar),
],
- q(3256) => [
+ q(3253) => [
q(Kwaja),
],
- q(3257) => [
+ q(3254) => [
q(Kabuverdianu),
],
- q(3258) => [
+ q(3255) => [
q(Kele),
],
- q(3259) => [
+ q(3256) => [
q(Keiga),
],
- q(3260) => [
+ q(3257) => [
q(Kerewe),
],
- q(3261) => [
+ q(3258) => [
q(Eastern Keres),
],
- q(3262) => [
+ q(3259) => [
q(Kpessi),
],
- q(3263) => [
+ q(3260) => [
q(Tese),
],
- q(3264) => [
+ q(3261) => [
q(Keak),
],
- q(3265) => [
+ q(3262) => [
q(Kei),
],
- q(3266) => [
+ q(3263) => [
q(Kadar),
],
- q(3267) => [
+ q(3264) => [
q(Kekchi),
],
- q(3268) => [
+ q(3265) => [
q(Kela (Democratic Republic of Congo)),
],
- q(3269) => [
+ q(3266) => [
q(Kemak),
],
- q(3270) => [
+ q(3267) => [
q(Kenyang),
],
- q(3271) => [
+ q(3268) => [
q(Kakwa),
],
- q(3272) => [
+ q(3269) => [
q(Kaikadi),
],
- q(3273) => [
+ q(3270) => [
q(Kamar),
],
- q(3274) => [
+ q(3271) => [
q(Kera),
],
- q(3275) => [
+ q(3272) => [
q(Kugbo),
],
- q(3276) => [
+ q(3273) => [
q(Ket),
],
- q(3277) => [
+ q(3274) => [
q(Akebu),
],
- q(3278) => [
+ q(3275) => [
q(Kanikkaran),
],
- q(3279) => [
+ q(3276) => [
q(West Kewa),
],
- q(3280) => [
+ q(3277) => [
q(Kukna),
],
- q(3281) => [
+ q(3278) => [
q(Kupia),
],
- q(3282) => [
+ q(3279) => [
q(Kukele),
],
- q(3283) => [
+ q(3280) => [
q(Kodava),
],
- q(3284) => [
+ q(3281) => [
q(Northwestern Kolami),
],
- q(3285) => [
+ q(3282) => [
q(Konda-Dora),
],
- q(3286) => [
+ q(3283) => [
q(Korra Koraga),
],
- q(3287) => [
+ q(3284) => [
q(Kota (India)),
],
- q(3288) => [
+ q(3285) => [
q(Koya),
],
- q(3289) => [
+ q(3286) => [
q(Kudiya),
],
- q(3290) => [
+ q(3287) => [
q(Kurichiya),
],
- q(3291) => [
+ q(3288) => [
q(Kannada Kurumba),
],
- q(3292) => [
+ q(3289) => [
q(Kemiehua),
],
- q(3293) => [
+ q(3290) => [
q(Kinnauri),
],
- q(3294) => [
+ q(3291) => [
q(Kung),
],
- q(3295) => [
+ q(3292) => [
q(Khunsari),
],
- q(3296) => [
+ q(3293) => [
q(Kuk),
],
- q(3297) => [
+ q(3294) => [
q(Koro (Cote d'Ivoire)),
],
- q(3298) => [
+ q(3295) => [
q(Korwa),
],
- q(3299) => [
+ q(3296) => [
q(Korku),
],
- q(3300) => [
- q(Kachchi),
+ q(3297) => [
+ q(Kachhi),
+ q(Kutchi),
],
- q(3301) => [
+ q(3298) => [
q(Bilaspuri),
],
- q(3302) => [
+ q(3299) => [
q(Kanjari),
],
- q(3303) => [
+ q(3300) => [
q(Katkari),
],
- q(3304) => [
+ q(3301) => [
q(Kurmukar),
],
- q(3305) => [
+ q(3302) => [
q(Kharam Naga),
],
- q(3306) => [
+ q(3303) => [
q(Kullu Pahari),
],
- q(3307) => [
+ q(3304) => [
q(Kumaoni),
],
- q(3308) => [
+ q(3305) => [
q(Koromfe),
],
- q(3309) => [
+ q(3306) => [
q(Koyaga),
],
- q(3310) => [
+ q(3307) => [
q(Kawe),
],
- q(3311) => [
- q(Kasseng),
- ],
- q(3312) => [
+ q(3308) => [
q(Kataang),
],
- q(3313) => [
+ q(3309) => [
q(Komering),
],
- q(3314) => [
+ q(3310) => [
q(Kube),
],
- q(3315) => [
+ q(3311) => [
q(Kusunda),
],
- q(3316) => [
+ q(3312) => [
q(Selangor Sign Language),
],
- q(3317) => [
+ q(3313) => [
q(Gamale Kham),
],
- q(3318) => [
+ q(3314) => [
q(Kaiwa),
],
- q(3319) => [
+ q(3315) => [
q(Kunggari),
],
- q(3320) => [
+ q(3316) => [
q(Karipuna),
],
- q(3321) => [
+ q(3317) => [
q(Karingani),
],
- q(3322) => [
+ q(3318) => [
q(Krongo),
],
- q(3323) => [
+ q(3319) => [
q(Kaingang),
],
- q(3324) => [
+ q(3320) => [
q(Kamoro),
],
- q(3325) => [
+ q(3321) => [
q(Abun),
],
- q(3326) => [
+ q(3322) => [
q(Kumbainggar),
],
- q(3327) => [
+ q(3323) => [
q(Somyev),
],
- q(3328) => [
+ q(3324) => [
q(Kobol),
],
- q(3329) => [
+ q(3325) => [
q(Karas),
],
- q(3330) => [
+ q(3326) => [
q(Karon Dori),
],
- q(3331) => [
+ q(3327) => [
q(Kamaru),
],
- q(3332) => [
+ q(3328) => [
q(Kyerung),
],
- q(3333) => [
+ q(3329) => [
q(Lu),
],
- q(3334) => [
+ q(3330) => [
q(Tukang Besi North),
],
- q(3335) => [
+ q(3331) => [
q(Badi Kanum),
],
- q(3336) => [
+ q(3332) => [
q(Korowai),
],
- q(3337) => [
+ q(3333) => [
q(Khuen),
],
- q(3338) => [
+ q(3334) => [
q(Khams Tibetan),
],
- q(3339) => [
+ q(3335) => [
q(Kehu),
],
- q(3340) => [
+ q(3336) => [
q(Kuturmi),
],
- q(3341) => [
+ q(3337) => [
q(Halh Mongolian),
],
- q(3342) => [
+ q(3338) => [
q(Lusi),
],
- q(3343) => [
+ q(3339) => [
q(Khandesi),
],
- q(3344) => [
+ q(3340) => [
q(Kapori),
q(Kapauri),
],
- q(3345) => [
+ q(3341) => [
q(Koyra Chiini Songhay),
],
- q(3346) => [
+ q(3342) => [
q(Kharia),
],
- q(3347) => [
+ q(3343) => [
q(Kasua),
],
- q(3348) => [
+ q(3344) => [
q(Khamti),
],
- q(3349) => [
+ q(3345) => [
q(Nkhumbi),
],
- q(3350) => [
+ q(3346) => [
q(Khvarshi),
],
- q(3351) => [
+ q(3347) => [
q(Khowar),
],
- q(3352) => [
+ q(3348) => [
q(Kanu),
],
- q(3353) => [
+ q(3349) => [
q(Kele (Democratic Republic of Congo)),
],
- q(3354) => [
+ q(3350) => [
q(Keapara),
],
- q(3355) => [
+ q(3351) => [
q(Kim),
],
- q(3356) => [
+ q(3352) => [
q(Koalib),
],
- q(3357) => [
+ q(3353) => [
q(Kickapoo),
],
- q(3358) => [
+ q(3354) => [
q(Koshin),
],
- q(3359) => [
+ q(3355) => [
q(Kibet),
],
- q(3360) => [
+ q(3356) => [
q(Eastern Parbate Kham),
],
- q(3361) => [
+ q(3357) => [
q(Kimaama),
q(Kimaghima),
],
- q(3362) => [
+ q(3358) => [
q(Kilmeri),
],
- q(3363) => [
+ q(3359) => [
q(Kitsai),
],
- q(3364) => [
+ q(3360) => [
q(Kilivila),
],
- q(3365) => [
+ q(3361) => [
q(Kariya),
],
- q(3366) => [
+ q(3362) => [
q(Karagas),
],
- q(3367) => [
+ q(3363) => [
q(Kiowa),
],
- q(3368) => [
+ q(3364) => [
q(Sheshi Kham),
],
- q(3369) => [
+ q(3365) => [
q(Kosadle),
q(Kosare),
],
- q(3370) => [
+ q(3366) => [
q(Kis),
],
- q(3371) => [
+ q(3367) => [
q(Agob),
],
- q(3372) => [
+ q(3368) => [
q(Kirmanjki (individual language)),
],
- q(3373) => [
+ q(3369) => [
q(Kimbu),
],
- q(3374) => [
+ q(3370) => [
q(Northeast Kiwai),
],
- q(3375) => [
+ q(3371) => [
q(Khiamniungan Naga),
],
- q(3376) => [
+ q(3372) => [
q(Kirikiri),
],
- q(3377) => [
+ q(3373) => [
q(Kisi),
],
- q(3378) => [
+ q(3374) => [
q(Mlap),
],
- q(3379) => [
+ q(3375) => [
q(Q'anjob'al),
q(Kanjobal),
],
- q(3380) => [
+ q(3376) => [
q(Coastal Konjo),
],
- q(3381) => [
+ q(3377) => [
q(Southern Kiwai),
],
- q(3382) => [
+ q(3378) => [
q(Kisar),
],
- q(3383) => [
+ q(3379) => [
q(Khalaj),
],
- q(3384) => [
+ q(3380) => [
q(Khmu),
],
- q(3385) => [
+ q(3381) => [
q(Khakas),
],
- q(3386) => [
+ q(3382) => [
q(Zabana),
],
- q(3387) => [
+ q(3383) => [
q(Khinalugh),
],
- q(3388) => [
+ q(3384) => [
q(Highland Konjo),
],
- q(3389) => [
+ q(3385) => [
q(Western Parbate Kham),
],
- q(3390) => [
+ q(3386) => [
q(Khang),
],
- q(3391) => [
+ q(3387) => [
q(Kunjen),
],
- q(3392) => [
+ q(3388) => [
q(Harijan Kinnauri),
],
- q(3393) => [
+ q(3389) => [
q(Pwo Eastern Karen),
],
- q(3394) => [
+ q(3390) => [
q(Western Keres),
],
- q(3395) => [
+ q(3391) => [
q(Kurudu),
],
- q(3396) => [
+ q(3392) => [
q(East Kewa),
],
- q(3397) => [
+ q(3393) => [
q(Phrae Pwo Karen),
],
- q(3398) => [
+ q(3394) => [
q(Kashaya),
],
- q(3399) => [
+ q(3395) => [
q(Kaikavian Literary Language),
],
- q(3400) => [
+ q(3396) => [
q(Ramopa),
],
- q(3401) => [
+ q(3397) => [
q(Erave),
],
- q(3402) => [
+ q(3398) => [
q(Bumthangkha),
],
- q(3403) => [
+ q(3399) => [
q(Kakanda),
],
- q(3404) => [
+ q(3400) => [
q(Kwerisa),
],
- q(3405) => [
+ q(3401) => [
q(Odoodee),
],
- q(3406) => [
+ q(3402) => [
q(Kinuku),
],
- q(3407) => [
+ q(3403) => [
q(Kakabe),
],
- q(3408) => [
+ q(3404) => [
q(Kalaktang Monpa),
],
- q(3409) => [
+ q(3405) => [
q(Mabaka Valley Kalinga),
],
- q(3410) => [
+ q(3406) => [
q(Khun),
],
- q(3411) => [
+ q(3407) => [
q(Kagulu),
],
- q(3412) => [
+ q(3408) => [
q(Kako),
],
- q(3413) => [
+ q(3409) => [
q(Kokota),
],
- q(3414) => [
+ q(3410) => [
q(Kosarek Yale),
],
- q(3415) => [
+ q(3411) => [
q(Kiong),
],
- q(3416) => [
+ q(3412) => [
q(Kon Keu),
],
- q(3417) => [
+ q(3413) => [
q(Karko),
],
- q(3418) => [
+ q(3414) => [
q(Gugubera),
],
- q(3419) => [
+ q(3415) => [
q(Kaiku),
],
- q(3420) => [
+ q(3416) => [
q(Kir-Balar),
],
- q(3421) => [
+ q(3417) => [
q(Giiwo),
],
- q(3422) => [
+ q(3418) => [
q(Koi),
],
- q(3423) => [
+ q(3419) => [
q(Tumi),
],
- q(3424) => [
+ q(3420) => [
q(Kangean),
],
- q(3425) => [
+ q(3421) => [
q(Teke-Kukuya),
],
- q(3426) => [
+ q(3422) => [
q(Kohin),
],
- q(3427) => [
+ q(3423) => [
q(Guguyimidjir),
],
- q(3428) => [
+ q(3424) => [
q(Kaska),
],
- q(3429) => [
+ q(3425) => [
q(Klamath-Modoc),
],
- q(3430) => [
+ q(3426) => [
q(Kiliwa),
],
- q(3431) => [
+ q(3427) => [
q(Kolbila),
],
- q(3432) => [
+ q(3428) => [
q(Gamilaraay),
],
- q(3433) => [
+ q(3429) => [
q(Kulung (Nepal)),
],
- q(3434) => [
+ q(3430) => [
q(Kendeje),
],
- q(3435) => [
+ q(3431) => [
q(Tagakaulo),
],
- q(3436) => [
+ q(3432) => [
q(Weliki),
],
- q(3437) => [
+ q(3433) => [
q(Kalumpang),
],
- q(3438) => [
+ q(3434) => [
q(Turkic Khalaj),
],
- q(3439) => [
+ q(3435) => [
q(Kono (Nigeria)),
],
- q(3440) => [
+ q(3436) => [
q(Kagan Kalagan),
],
- q(3441) => [
+ q(3437) => [
q(Migum),
],
- q(3442) => [
+ q(3438) => [
q(Kalenjin),
],
- q(3443) => [
+ q(3439) => [
q(Kapya),
],
- q(3444) => [
+ q(3440) => [
q(Kamasa),
],
- q(3445) => [
+ q(3441) => [
q(Rumu),
],
- q(3446) => [
+ q(3442) => [
q(Khaling),
],
- q(3447) => [
+ q(3443) => [
q(Kalasha),
],
- q(3448) => [
+ q(3444) => [
q(Nukna),
],
- q(3449) => [
+ q(3445) => [
q(Klao),
],
- q(3450) => [
+ q(3446) => [
q(Maskelynes),
],
- q(3451) => [
+ q(3447) => [
q(Lindu),
],
- q(3452) => [
+ q(3448) => [
q(Koluwawa),
],
- q(3453) => [
+ q(3449) => [
q(Kalao),
],
- q(3454) => [
+ q(3450) => [
q(Kabola),
],
- q(3455) => [
+ q(3451) => [
q(Konni),
],
- q(3456) => [
+ q(3452) => [
q(Southern Dong),
],
- q(3457) => [
+ q(3453) => [
q(Majukayang Kalinga),
],
- q(3458) => [
+ q(3454) => [
q(Bakole),
],
- q(3459) => [
+ q(3455) => [
q(Kare (Papua New Guinea)),
],
- q(3460) => [
+ q(3456) => [
q(Kate),
],
- q(3461) => [
+ q(3457) => [
q(Kalam),
],
- q(3462) => [
+ q(3458) => [
q(Kami (Nigeria)),
],
- q(3463) => [
+ q(3459) => [
q(Kumarbhag Paharia),
],
- q(3464) => [
+ q(3460) => [
q(Limos Kalinga),
],
- q(3465) => [
+ q(3461) => [
q(Tanudan Kalinga),
],
- q(3466) => [
+ q(3462) => [
q(Kom (India)),
],
- q(3467) => [
+ q(3463) => [
q(Awtuw),
],
- q(3468) => [
+ q(3464) => [
q(Kwoma),
],
- q(3469) => [
+ q(3465) => [
q(Gimme),
],
- q(3470) => [
+ q(3466) => [
q(Kwama),
],
- q(3471) => [
+ q(3467) => [
q(Northern Kurdish),
],
- q(3472) => [
+ q(3468) => [
q(Kamasau),
],
- q(3473) => [
+ q(3469) => [
q(Kemtuik),
],
- q(3474) => [
+ q(3470) => [
q(Kanite),
],
- q(3475) => [
+ q(3471) => [
q(Karipuna Creole French),
],
- q(3476) => [
+ q(3472) => [
q(Komo (Democratic Republic of Congo)),
],
- q(3477) => [
+ q(3473) => [
q(Waboda),
],
- q(3478) => [
+ q(3474) => [
q(Koma),
],
- q(3479) => [
+ q(3475) => [
q(Khorasani Turkish),
],
- q(3480) => [
+ q(3476) => [
q(Dera (Nigeria)),
],
- q(3481) => [
+ q(3477) => [
q(Lubuagan Kalinga),
],
- q(3482) => [
+ q(3478) => [
q(Central Kanuri),
],
- q(3483) => [
+ q(3479) => [
q(Konda),
],
- q(3484) => [
+ q(3480) => [
q(Kankanaey),
],
- q(3485) => [
+ q(3481) => [
q(Mankanya),
],
- q(3486) => [
+ q(3482) => [
q(Koongo),
],
- q(3487) => [
+ q(3483) => [
q(Kanufi),
],
- q(3488) => [
+ q(3484) => [
q(Western Kanjobal),
],
- q(3489) => [
+ q(3485) => [
q(Kuranko),
],
- q(3490) => [
+ q(3486) => [
q(Keninjal),
],
- q(3491) => [
+ q(3487) => [
q(Kanamari),
],
- q(3492) => [
+ q(3488) => [
q(Konkani (individual language)),
],
- q(3493) => [
+ q(3489) => [
q(Kono (Sierra Leone)),
],
- q(3494) => [
+ q(3490) => [
q(Kwanja),
],
- q(3495) => [
+ q(3491) => [
q(Kintaq),
],
- q(3496) => [
+ q(3492) => [
q(Kaningra),
],
- q(3497) => [
+ q(3493) => [
q(Kensiu),
],
- q(3498) => [
+ q(3494) => [
q(Panoan Katukina),
],
- q(3499) => [
+ q(3495) => [
q(Kono (Guinea)),
],
- q(3500) => [
+ q(3496) => [
q(Tabo),
],
- q(3501) => [
+ q(3497) => [
q(Kung-Ekoka),
],
- q(3502) => [
+ q(3498) => [
q(Kendayan),
q(Salako),
],
- q(3503) => [
+ q(3499) => [
q(Kanyok),
],
- q(3504) => [
+ q(3500) => [
q(Kalamse),
],
- q(3505) => [
+ q(3501) => [
q(Konomala),
],
- q(3506) => [
+ q(3502) => [
q(Kpati),
],
- q(3507) => [
+ q(3503) => [
q(Kodi),
],
- q(3508) => [
+ q(3504) => [
q(Kacipo-Balesi),
],
- q(3509) => [
+ q(3505) => [
q(Kubi),
],
- q(3510) => [
+ q(3506) => [
q(Cogui),
q(Kogi),
],
- q(3511) => [
+ q(3507) => [
q(Koyo),
],
- q(3512) => [
+ q(3508) => [
q(Komi-Permyak),
],
- q(3513) => [
+ q(3509) => [
q(Kol (Papua New Guinea)),
],
- q(3514) => [
+ q(3510) => [
q(Konzo),
],
- q(3515) => [
+ q(3511) => [
q(Waube),
],
- q(3516) => [
+ q(3512) => [
q(Kota (Gabon)),
],
- q(3517) => [
+ q(3513) => [
q(Lagwan),
],
- q(3518) => [
+ q(3514) => [
q(Koke),
],
- q(3519) => [
+ q(3515) => [
q(Kudu-Camo),
],
- q(3520) => [
+ q(3516) => [
q(Kugama),
],
- q(3521) => [
- q(Coxima),
- ],
- q(3522) => [
+ q(3517) => [
q(Koyukon),
],
- q(3523) => [
+ q(3518) => [
q(Korak),
],
- q(3524) => [
+ q(3519) => [
q(Kutto),
],
- q(3525) => [
+ q(3520) => [
q(Mullu Kurumba),
],
- q(3526) => [
+ q(3521) => [
q(Curripaco),
],
- q(3527) => [
+ q(3522) => [
q(Koba),
],
- q(3528) => [
+ q(3523) => [
q(Komba),
],
- q(3529) => [
+ q(3524) => [
q(Kapingamarangi),
],
- q(3530) => [
+ q(3525) => [
q(Kplang),
],
- q(3531) => [
+ q(3526) => [
q(Kofei),
],
- q(3532) => [
+ q(3527) => [
q(Karaja),
],
- q(3533) => [
+ q(3528) => [
q(Kpan),
],
- q(3534) => [
+ q(3529) => [
q(Kpala),
],
- q(3535) => [
+ q(3530) => [
q(Koho),
],
- q(3536) => [
+ q(3531) => [
q(Kepkiriwat),
],
- q(3537) => [
+ q(3532) => [
q(Ikposo),
],
- q(3538) => [
+ q(3533) => [
q(Korupun-Sela),
],
- q(3539) => [
+ q(3534) => [
q(Korafe-Yegha),
],
- q(3540) => [
+ q(3535) => [
q(Tehit),
],
- q(3541) => [
+ q(3536) => [
q(Karata),
],
- q(3542) => [
+ q(3537) => [
q(Kafoa),
],
- q(3543) => [
+ q(3538) => [
q(Komi-Zyrian),
],
- q(3544) => [
+ q(3539) => [
q(Kobon),
],
- q(3545) => [
+ q(3540) => [
q(Mountain Koiali),
],
- q(3546) => [
+ q(3541) => [
q(Koryak),
],
- q(3547) => [
+ q(3542) => [
q(Kupsabiny),
],
- q(3548) => [
+ q(3543) => [
q(Mum),
],
- q(3549) => [
+ q(3544) => [
q(Kovai),
],
- q(3550) => [
+ q(3545) => [
q(Doromu-Koki),
],
- q(3551) => [
+ q(3546) => [
q(Koy Sanjaq Surat),
],
- q(3552) => [
+ q(3547) => [
q(Kalagan),
],
- q(3553) => [
+ q(3548) => [
q(Kakabai),
],
- q(3554) => [
+ q(3549) => [
q(Khe),
],
- q(3555) => [
+ q(3550) => [
q(Kisankasa),
],
- q(3556) => [
+ q(3551) => [
q(Koitabu),
],
- q(3557) => [
+ q(3552) => [
q(Koromira),
],
- q(3558) => [
+ q(3553) => [
q(Kotafon Gbe),
],
- q(3559) => [
+ q(3554) => [
q(Kyenele),
],
- q(3560) => [
+ q(3555) => [
q(Khisa),
],
- q(3561) => [
+ q(3556) => [
q(Kaonde),
],
- q(3562) => [
+ q(3557) => [
q(Eastern Krahn),
],
- q(3563) => [
+ q(3558) => [
q(Kimre),
],
- q(3564) => [
+ q(3559) => [
q(Krenak),
],
- q(3565) => [
+ q(3560) => [
q(Kimaragang),
],
- q(3566) => [
+ q(3561) => [
q(Northern Kissi),
],
- q(3567) => [
+ q(3562) => [
q(Klias River Kadazan),
],
- q(3568) => [
+ q(3563) => [
q(Seroa),
],
- q(3569) => [
+ q(3564) => [
q(Okolod),
],
- q(3570) => [
+ q(3565) => [
q(Kandas),
],
- q(3571) => [
+ q(3566) => [
q(Mser),
],
- q(3572) => [
+ q(3567) => [
q(Koorete),
],
- q(3573) => [
+ q(3568) => [
q(Korana),
],
- q(3574) => [
+ q(3569) => [
q(Kumhali),
],
- q(3575) => [
+ q(3570) => [
q(Karkin),
],
- q(3576) => [
+ q(3571) => [
q(Kairui-Midiki),
],
- q(3577) => [
+ q(3572) => [
q(Panara),
],
- q(3578) => [
+ q(3573) => [
q(Koro (Vanuatu)),
],
- q(3579) => [
+ q(3574) => [
q(Kurama),
],
- q(3580) => [
+ q(3575) => [
q(Krio),
],
- q(3581) => [
+ q(3576) => [
q(Kinaray-A),
],
- q(3582) => [
+ q(3577) => [
q(Kerek),
],
- q(3583) => [
+ q(3578) => [
q(Krim),
],
- q(3584) => [
+ q(3579) => [
q(Sapo),
],
- q(3585) => [
+ q(3580) => [
q(Korop),
],
- q(3586) => [
+ q(3581) => [
q(Kru'ng 2),
],
- q(3587) => [
+ q(3582) => [
q(Gbaya (Sudan)),
],
- q(3588) => [
+ q(3583) => [
q(Tumari Kanuri),
],
- q(3589) => [
+ q(3584) => [
q(Kavet),
],
- q(3590) => [
+ q(3585) => [
q(Western Krahn),
],
- q(3591) => [
+ q(3586) => [
q(Karon),
],
- q(3592) => [
+ q(3587) => [
q(Kryts),
],
- q(3593) => [
+ q(3588) => [
q(Sota Kanum),
],
- q(3594) => [
+ q(3589) => [
q(Shuwa-Zamani),
],
- q(3595) => [
+ q(3590) => [
q(Shambala),
],
- q(3596) => [
+ q(3591) => [
q(Southern Kalinga),
],
- q(3597) => [
+ q(3592) => [
q(Kuanua),
],
- q(3598) => [
+ q(3593) => [
q(Kuni),
],
- q(3599) => [
+ q(3594) => [
q(Bafia),
],
- q(3600) => [
+ q(3595) => [
q(Kusaghe),
],
- q(3601) => [
+ q(3596) => [
q(Kolsch),
],
- q(3602) => [
+ q(3597) => [
q(Krisa),
q(I'saka),
],
- q(3603) => [
+ q(3598) => [
q(Uare),
],
- q(3604) => [
+ q(3599) => [
q(Kansa),
],
- q(3605) => [
+ q(3600) => [
q(Kumalu),
],
- q(3606) => [
+ q(3601) => [
q(Kumba),
],
- q(3607) => [
+ q(3602) => [
q(Kasiguranin),
],
- q(3608) => [
+ q(3603) => [
q(Kofa),
],
- q(3609) => [
+ q(3604) => [
q(Kaba),
],
- q(3610) => [
+ q(3605) => [
q(Kwaami),
],
- q(3611) => [
+ q(3606) => [
q(Borong),
],
- q(3612) => [
+ q(3607) => [
q(Southern Kisi),
],
- q(3613) => [
+ q(3608) => [
q(Winye),
],
- q(3614) => [
+ q(3609) => [
q(Khamyang),
],
- q(3615) => [
+ q(3610) => [
q(Kusu),
],
- q(3616) => [
+ q(3611) => [
q(S'gaw Karen),
],
- q(3617) => [
+ q(3612) => [
q(Kedang),
],
- q(3618) => [
+ q(3613) => [
q(Kharia Thar),
],
- q(3619) => [
+ q(3614) => [
q(Kodaku),
],
- q(3620) => [
+ q(3615) => [
q(Katua),
],
- q(3621) => [
+ q(3616) => [
q(Kambaata),
],
- q(3622) => [
+ q(3617) => [
q(Kholok),
],
- q(3623) => [
+ q(3618) => [
q(Kokata),
],
- q(3624) => [
+ q(3619) => [
q(Nubri),
],
- q(3625) => [
+ q(3620) => [
q(Kwami),
],
- q(3626) => [
+ q(3621) => [
q(Kalkutung),
],
- q(3627) => [
+ q(3622) => [
q(Karanga),
],
- q(3628) => [
+ q(3623) => [
q(North Muyu),
],
- q(3629) => [
+ q(3624) => [
q(Plapo Krumen),
],
- q(3630) => [
+ q(3625) => [
q(Kaniet),
],
- q(3631) => [
+ q(3626) => [
q(Koroshi),
],
- q(3632) => [
+ q(3627) => [
q(Kurti),
],
- q(3633) => [
+ q(3628) => [
q(Karitiana),
],
- q(3634) => [
+ q(3629) => [
q(Kuot),
],
- q(3635) => [
+ q(3630) => [
q(Kaduo),
],
- q(3636) => [
+ q(3631) => [
q(Katabaga),
],
- q(3637) => [
- q(Kota Marudu Tinagas),
- ],
- q(3638) => [
+ q(3632) => [
q(South Muyu),
],
- q(3639) => [
+ q(3633) => [
q(Ketum),
],
- q(3640) => [
+ q(3634) => [
q(Kituba (Democratic Republic of Congo)),
],
- q(3641) => [
+ q(3635) => [
q(Eastern Katu),
],
- q(3642) => [
+ q(3636) => [
q(Kato),
],
- q(3643) => [
+ q(3637) => [
q(Kaxarari),
],
- q(3644) => [
+ q(3638) => [
q(Kango (Bas-Uele District)),
],
- q(3645) => [
+ q(3639) => [
q(Ju/'hoan),
q(Juhoan),
],
- q(3646) => [
+ q(3640) => [
q(Kutep),
],
- q(3647) => [
+ q(3641) => [
q(Kwinsu),
],
- q(3648) => [
+ q(3642) => [
q('Auhelawa),
],
- q(3649) => [
+ q(3643) => [
q(Kuman (Papua New Guinea)),
],
- q(3650) => [
+ q(3644) => [
q(Western Katu),
],
- q(3651) => [
+ q(3645) => [
q(Kupa),
],
- q(3652) => [
+ q(3646) => [
q(Kushi),
],
- q(3653) => [
+ q(3647) => [
q(Kuikuro-Kalapalo),
],
- q(3654) => [
+ q(3648) => [
q(Kuria),
],
- q(3655) => [
+ q(3649) => [
q(Kepo'),
],
- q(3656) => [
+ q(3650) => [
q(Kulere),
],
- q(3657) => [
+ q(3651) => [
q(Kunama),
],
- q(3658) => [
+ q(3652) => [
q(Kumukio),
],
- q(3659) => [
+ q(3653) => [
q(Kunimaipa),
],
- q(3660) => [
+ q(3654) => [
q(Kusaal),
],
- q(3661) => [
+ q(3655) => [
q(Upper Kuskokwim),
],
- q(3662) => [
+ q(3656) => [
q(Kur),
],
- q(3663) => [
+ q(3657) => [
q(Kpagua),
],
- q(3664) => [
+ q(3658) => [
q(Kukatja),
],
- q(3665) => [
+ q(3659) => [
q(Kuuku-Ya'u),
],
- q(3666) => [
+ q(3660) => [
q(Kunza),
],
- q(3667) => [
+ q(3661) => [
q(Bagvalal),
],
- q(3668) => [
+ q(3662) => [
q(Kubu),
],
- q(3669) => [
+ q(3663) => [
q(Kove),
],
- q(3670) => [
+ q(3664) => [
q(Kui (Indonesia)),
],
- q(3671) => [
+ q(3665) => [
q(Kalabakan),
],
- q(3672) => [
+ q(3666) => [
q(Kabalai),
],
- q(3673) => [
+ q(3667) => [
q(Kuni-Boazi),
],
- q(3674) => [
+ q(3668) => [
q(Komodo),
],
- q(3675) => [
+ q(3669) => [
q(Kwang),
],
- q(3676) => [
+ q(3670) => [
q(Psikye),
],
- q(3677) => [
+ q(3671) => [
q(Korean Sign Language),
],
- q(3678) => [
+ q(3672) => [
q(Kayaw),
],
- q(3679) => [
+ q(3673) => [
q(Kendem),
],
- q(3680) => [
+ q(3674) => [
q(Border Kuna),
],
- q(3681) => [
+ q(3675) => [
q(Dobel),
],
- q(3682) => [
+ q(3676) => [
q(Kompane),
],
- q(3683) => [
+ q(3677) => [
q(Geba Karen),
],
- q(3684) => [
+ q(3678) => [
q(Kerinci),
],
- q(3685) => [
- q(Kunggara),
- ],
- q(3686) => [
+ q(3679) => [
q(Lahta Karen),
q(Lahta),
],
- q(3687) => [
+ q(3680) => [
q(Yinbaw Karen),
],
- q(3688) => [
+ q(3681) => [
q(Kola),
],
- q(3689) => [
+ q(3682) => [
q(Wersing),
],
- q(3690) => [
+ q(3683) => [
q(Parkari Koli),
],
- q(3691) => [
+ q(3684) => [
q(Yintale Karen),
q(Yintale),
],
- q(3692) => [
+ q(3685) => [
q(Tsakwambo),
q(Tsaukambo),
],
- q(3693) => [
+ q(3686) => [
q(Daw),
],
- q(3694) => [
+ q(3687) => [
q(Kwa),
],
- q(3695) => [
+ q(3688) => [
q(Likwala),
],
- q(3696) => [
+ q(3689) => [
q(Kwaio),
],
- q(3697) => [
+ q(3690) => [
q(Kwerba),
],
- q(3698) => [
+ q(3691) => [
q(Kwara'ae),
],
- q(3699) => [
+ q(3692) => [
q(Sara Kaba Deme),
],
- q(3700) => [
+ q(3693) => [
q(Kowiai),
],
- q(3701) => [
+ q(3694) => [
q(Awa-Cuaiquer),
],
- q(3702) => [
+ q(3695) => [
q(Kwanga),
],
- q(3703) => [
+ q(3696) => [
q(Kwakiutl),
],
- q(3704) => [
+ q(3697) => [
q(Kofyar),
],
- q(3705) => [
+ q(3698) => [
q(Kwambi),
],
- q(3706) => [
+ q(3699) => [
q(Kwangali),
],
- q(3707) => [
+ q(3700) => [
q(Kwomtari),
],
- q(3708) => [
+ q(3701) => [
q(Kodia),
],
- q(3709) => [
+ q(3702) => [
q(Kwer),
],
- q(3710) => [
+ q(3703) => [
q(Kwese),
],
- q(3711) => [
+ q(3704) => [
q(Kwesten),
],
- q(3712) => [
+ q(3705) => [
q(Kwakum),
],
- q(3713) => [
+ q(3706) => [
q(Sara Kaba Naa),
],
- q(3714) => [
+ q(3707) => [
q(Kwinti),
],
- q(3715) => [
+ q(3708) => [
q(Khirwar),
],
- q(3716) => [
+ q(3709) => [
q(San Salvador Kongo),
],
- q(3717) => [
+ q(3710) => [
q(Kwadi),
],
- q(3718) => [
+ q(3711) => [
q(Kairiru),
],
- q(3719) => [
+ q(3712) => [
q(Krobu),
],
- q(3720) => [
+ q(3713) => [
q(Konso),
q(Khonso),
],
- q(3721) => [
+ q(3714) => [
q(Brunei),
],
- q(3722) => [
+ q(3715) => [
q(Manumanaw Karen),
q(Manumanaw),
],
- q(3723) => [
+ q(3716) => [
q(Karo (Ethiopia)),
],
- q(3724) => [
+ q(3717) => [
q(Keningau Murut),
],
- q(3725) => [
+ q(3718) => [
q(Kulfa),
],
- q(3726) => [
+ q(3719) => [
q(Zayein Karen),
],
- q(3727) => [
+ q(3720) => [
q(Nepali Kurux),
],
- q(3728) => [
+ q(3721) => [
q(Northern Khmer),
],
- q(3729) => [
+ q(3722) => [
q(Kanowit-Tanjong Melanau),
],
- q(3730) => [
+ q(3723) => [
q(Kanoe),
],
- q(3731) => [
+ q(3724) => [
q(Wadiyara Koli),
],
- q(3732) => [
+ q(3725) => [
q(Smarky Kanum),
],
- q(3733) => [
+ q(3726) => [
q(Koro (Papua New Guinea)),
],
- q(3734) => [
+ q(3727) => [
q(Kangjia),
],
- q(3735) => [
+ q(3728) => [
q(Koiwat),
],
- q(3736) => [
+ q(3729) => [
q(Kui (India)),
],
- q(3737) => [
+ q(3730) => [
q(Kuvi),
],
- q(3738) => [
+ q(3731) => [
q(Konai),
],
- q(3739) => [
+ q(3732) => [
q(Likuba),
],
- q(3740) => [
+ q(3733) => [
q(Kayong),
],
- q(3741) => [
+ q(3734) => [
q(Kerewo),
],
- q(3742) => [
+ q(3735) => [
q(Kwaya),
],
- q(3743) => [
+ q(3736) => [
q(Butbut Kalinga),
],
- q(3744) => [
+ q(3737) => [
q(Kyaka),
],
- q(3745) => [
+ q(3738) => [
q(Karey),
],
- q(3746) => [
+ q(3739) => [
q(Krache),
],
- q(3747) => [
+ q(3740) => [
q(Kouya),
],
- q(3748) => [
+ q(3741) => [
q(Keyagana),
],
- q(3749) => [
+ q(3742) => [
q(Karok),
],
- q(3750) => [
+ q(3743) => [
q(Kiput),
],
- q(3751) => [
+ q(3744) => [
q(Karao),
],
- q(3752) => [
+ q(3745) => [
q(Kamayo),
],
- q(3753) => [
+ q(3746) => [
q(Kalapuya),
],
- q(3754) => [
+ q(3747) => [
q(Kpatili),
],
- q(3755) => [
+ q(3748) => [
q(Northern Binukidnon),
],
- q(3756) => [
+ q(3749) => [
q(Kelon),
],
- q(3757) => [
+ q(3750) => [
q(Kang),
],
- q(3758) => [
+ q(3751) => [
q(Kenga),
],
- q(3759) => [
+ q(3752) => [
q(Kuruaya),
],
- q(3760) => [
+ q(3753) => [
q(Baram Kayan),
],
- q(3761) => [
+ q(3754) => [
q(Kayagar),
],
- q(3762) => [
+ q(3755) => [
q(Western Kayah),
],
- q(3763) => [
+ q(3756) => [
q(Kayort),
],
- q(3764) => [
+ q(3757) => [
q(Kudmali),
],
- q(3765) => [
+ q(3758) => [
q(Rapoisi),
],
- q(3766) => [
+ q(3759) => [
q(Kambaira),
],
- q(3767) => [
+ q(3760) => [
q(Kayabi),
],
- q(3768) => [
+ q(3761) => [
q(Western Karaboro),
],
- q(3769) => [
+ q(3762) => [
q(Kaibobo),
],
- q(3770) => [
+ q(3763) => [
q(Bondoukou Kulango),
],
- q(3771) => [
+ q(3764) => [
q(Kadai),
],
- q(3772) => [
+ q(3765) => [
q(Kosena),
],
- q(3773) => [
+ q(3766) => [
q(Da'a Kaili),
],
- q(3774) => [
+ q(3767) => [
q(Kikai),
],
- q(3775) => [
+ q(3768) => [
q(Kelabit),
],
- q(3776) => [
- q(Coastal Kadazan),
- ],
- q(3777) => [
+ q(3769) => [
q(Kazukuru),
],
- q(3778) => [
+ q(3770) => [
q(Kayeli),
],
- q(3779) => [
+ q(3771) => [
q(Kais),
],
- q(3780) => [
+ q(3772) => [
q(Kokola),
],
- q(3781) => [
+ q(3773) => [
q(Kaningi),
],
- q(3782) => [
+ q(3774) => [
q(Kaidipang),
],
- q(3783) => [
+ q(3775) => [
q(Kaike),
],
- q(3784) => [
+ q(3776) => [
q(Karang),
],
- q(3785) => [
+ q(3777) => [
q(Sugut Dusun),
],
- q(3786) => [
- q(Tambunan Dusun),
- ],
- q(3787) => [
+ q(3778) => [
q(Kayupulau),
],
- q(3788) => [
+ q(3779) => [
q(Komyandaret),
],
- q(3789) => [
+ q(3780) => [
q(Kariri-Xoco),
],
- q(3790) => [
+ q(3781) => [
q(Kamarian),
],
- q(3791) => [
+ q(3782) => [
q(Kango (Tshopo District)),
],
- q(3792) => [
+ q(3783) => [
q(Kalabra),
],
- q(3793) => [
+ q(3784) => [
q(Southern Subanen),
],
- q(3794) => [
+ q(3785) => [
q(Linear A),
],
- q(3795) => [
+ q(3786) => [
q(Lacandon),
],
- q(3796) => [
+ q(3787) => [
q(Pattani),
],
- q(3797) => [
+ q(3788) => [
q(Lafofa),
],
- q(3798) => [
+ q(3789) => [
q(Langi),
],
- q(3799) => [
+ q(3790) => [
q(Lambya),
],
- q(3800) => [
+ q(3791) => [
q(Lango (Uganda)),
],
- q(3801) => [
+ q(3792) => [
q(Laka (Nigeria)),
],
- q(3802) => [
+ q(3793) => [
q(Lalia),
],
- q(3803) => [
+ q(3794) => [
q(Laru),
],
- q(3804) => [
+ q(3795) => [
q(Laka (Chad)),
],
- q(3805) => [
+ q(3796) => [
q(Qabiao),
],
- q(3806) => [
+ q(3797) => [
q(Larteh),
],
- q(3807) => [
+ q(3798) => [
q(Lama (Togo)),
],
- q(3808) => [
+ q(3799) => [
q(Laba),
],
- q(3809) => [
+ q(3800) => [
q(Lauje),
],
- q(3810) => [
+ q(3801) => [
q(Tiwa),
],
- q(3811) => [
+ q(3802) => [
q(Lama Bai),
],
- q(3812) => [
+ q(3803) => [
q(Aribwatsa),
],
- q(3813) => [
+ q(3804) => [
q(Lui),
],
- q(3814) => [
+ q(3805) => [
q(Label),
],
- q(3815) => [
+ q(3806) => [
q(Lakkia),
],
- q(3816) => [
+ q(3807) => [
q(Lak),
],
- q(3817) => [
+ q(3808) => [
q(Tinani),
],
- q(3818) => [
+ q(3809) => [
q(Laopang),
],
- q(3819) => [
+ q(3810) => [
q(La'bi),
],
- q(3820) => [
+ q(3811) => [
q(Ladakhi),
],
- q(3821) => [
+ q(3812) => [
q(Central Bontok),
],
- q(3822) => [
+ q(3813) => [
q(Libon Bikol),
],
- q(3823) => [
+ q(3814) => [
q(Lodhi),
],
- q(3824) => [
+ q(3815) => [
q(Lamet),
],
- q(3825) => [
+ q(3816) => [
q(Laven),
],
- q(3826) => [
+ q(3817) => [
q(Wampar),
],
- q(3827) => [
+ q(3818) => [
q(Lohorung),
],
- q(3828) => [
+ q(3819) => [
q(Libyan Sign Language),
],
- q(3829) => [
+ q(3820) => [
q(Lachi),
],
- q(3830) => [
+ q(3821) => [
q(Labu),
],
- q(3831) => [
+ q(3822) => [
q(Lavatbura-Lamusong),
],
- q(3832) => [
+ q(3823) => [
q(Tolaki),
],
- q(3833) => [
+ q(3824) => [
q(Lawangan),
],
- q(3834) => [
+ q(3825) => [
q(Lamu-Lamu),
],
- q(3835) => [
+ q(3826) => [
q(Lardil),
],
- q(3836) => [
+ q(3827) => [
q(Legenyem),
],
- q(3837) => [
+ q(3828) => [
q(Lola),
],
- q(3838) => [
+ q(3829) => [
q(Loncong),
+ q(Sekak),
],
- q(3839) => [
+ q(3830) => [
q(Lubu),
],
- q(3840) => [
+ q(3831) => [
q(Luchazi),
],
- q(3841) => [
+ q(3832) => [
q(Lisela),
],
- q(3842) => [
+ q(3833) => [
q(Tungag),
],
- q(3843) => [
+ q(3834) => [
q(Western Lawa),
],
- q(3844) => [
+ q(3835) => [
q(Luhu),
],
- q(3845) => [
+ q(3836) => [
q(Lisabata-Nuniali),
],
- q(3846) => [
+ q(3837) => [
q(Kla-Dan),
],
- q(3847) => [
+ q(3838) => [
q(Duya),
],
- q(3848) => [
+ q(3839) => [
q(Luri),
],
- q(3849) => [
+ q(3840) => [
q(Lenyima),
],
- q(3850) => [
+ q(3841) => [
q(Lamja-Dengsa-Tola),
],
- q(3851) => [
+ q(3842) => [
q(Laari),
],
- q(3852) => [
+ q(3843) => [
q(Lemoro),
],
- q(3853) => [
+ q(3844) => [
q(Leelau),
],
- q(3854) => [
+ q(3845) => [
q(Kaan),
],
- q(3855) => [
+ q(3846) => [
q(Landoma),
],
- q(3856) => [
+ q(3847) => [
q(Laadan),
],
- q(3857) => [
+ q(3848) => [
q(Loo),
],
- q(3858) => [
+ q(3849) => [
q(Tso),
],
- q(3859) => [
+ q(3850) => [
q(Lufu),
],
- q(3860) => [
+ q(3851) => [
q(Lega-Shabunda),
],
- q(3861) => [
+ q(3852) => [
q(Lala-Bisa),
],
- q(3862) => [
+ q(3853) => [
q(Leco),
],
- q(3863) => [
+ q(3854) => [
q(Lendu),
],
- q(3864) => [
+ q(3855) => [
q(Lyele),
],
- q(3865) => [
+ q(3856) => [
q(Lelemi),
],
- q(3866) => [
+ q(3857) => [
q(Lenje),
],
- q(3867) => [
+ q(3858) => [
q(Lemio),
],
- q(3868) => [
+ q(3859) => [
q(Lengola),
],
- q(3869) => [
+ q(3860) => [
q(Leipon),
],
- q(3870) => [
+ q(3861) => [
q(Lele (Democratic Republic of Congo)),
],
- q(3871) => [
+ q(3862) => [
q(Nomaande),
],
- q(3872) => [
+ q(3863) => [
q(Lenca),
],
- q(3873) => [
+ q(3864) => [
q(Leti (Cameroon)),
],
- q(3874) => [
+ q(3865) => [
q(Lepcha),
],
- q(3875) => [
+ q(3866) => [
q(Lembena),
],
- q(3876) => [
+ q(3867) => [
q(Lenkau),
],
- q(3877) => [
+ q(3868) => [
q(Lese),
],
- q(3878) => [
+ q(3869) => [
q(Lesing-Gelimi),
q(Amio-Gelimi),
],
- q(3879) => [
+ q(3870) => [
q(Kara (Papua New Guinea)),
],
- q(3880) => [
+ q(3871) => [
q(Lamma),
],
- q(3881) => [
+ q(3872) => [
q(Ledo Kaili),
],
- q(3882) => [
+ q(3873) => [
q(Luang),
],
- q(3883) => [
+ q(3874) => [
q(Lemolang),
],
- q(3884) => [
+ q(3875) => [
q(Lefa),
],
- q(3885) => [
+ q(3876) => [
q(Lingua Franca Nova),
],
- q(3886) => [
+ q(3877) => [
q(Lungga),
],
- q(3887) => [
+ q(3878) => [
q(Laghu),
],
- q(3888) => [
+ q(3879) => [
q(Lugbara),
],
- q(3889) => [
+ q(3880) => [
q(Laghuu),
],
- q(3890) => [
+ q(3881) => [
q(Lengilu),
],
- q(3891) => [
+ q(3882) => [
q(Lingarak),
q(Neverver),
],
- q(3892) => [
+ q(3883) => [
q(Wala),
],
- q(3893) => [
+ q(3884) => [
q(Lega-Mwenga),
],
- q(3894) => [
+ q(3885) => [
q(Opuuo),
],
- q(3895) => [
+ q(3886) => [
q(Logba),
],
- q(3896) => [
+ q(3887) => [
q(Lengo),
],
- q(3897) => [
+ q(3888) => [
q(Pahi),
],
- q(3898) => [
+ q(3889) => [
q(Longgu),
],
- q(3899) => [
+ q(3890) => [
q(Ligenza),
],
- q(3900) => [
+ q(3891) => [
q(Laha (Viet Nam)),
],
- q(3901) => [
+ q(3892) => [
q(Laha (Indonesia)),
],
- q(3902) => [
+ q(3893) => [
q(Lahu Shi),
],
- q(3903) => [
+ q(3894) => [
q(Lahul Lohar),
],
- q(3904) => [
+ q(3895) => [
q(Lhomi),
],
- q(3905) => [
+ q(3896) => [
q(Lahanan),
],
- q(3906) => [
+ q(3897) => [
q(Lhokpu),
],
- q(3907) => [
+ q(3898) => [
q(Mlahso),
],
- q(3908) => [
+ q(3899) => [
q(Lo-Toga),
],
- q(3909) => [
+ q(3900) => [
q(Lahu),
],
- q(3910) => [
+ q(3901) => [
q(West-Central Limba),
],
- q(3911) => [
+ q(3902) => [
q(Likum),
],
- q(3912) => [
+ q(3903) => [
q(Hlai),
],
- q(3913) => [
+ q(3904) => [
q(Nyindrou),
],
- q(3914) => [
+ q(3905) => [
q(Likila),
],
- q(3915) => [
+ q(3906) => [
q(Limbu),
],
- q(3916) => [
+ q(3907) => [
q(Ligbi),
],
- q(3917) => [
+ q(3908) => [
q(Lihir),
],
- q(3918) => [
+ q(3909) => [
q(Ligurian),
],
- q(3919) => [
+ q(3910) => [
q(Lika),
],
- q(3920) => [
+ q(3911) => [
q(Lillooet),
],
- q(3921) => [
+ q(3912) => [
q(Liki),
],
- q(3922) => [
+ q(3913) => [
q(Sekpele),
],
- q(3923) => [
+ q(3914) => [
q(Libido),
],
- q(3924) => [
+ q(3915) => [
q(Liberian English),
],
- q(3925) => [
+ q(3916) => [
q(Lisu),
],
- q(3926) => [
+ q(3917) => [
q(Logorik),
],
- q(3927) => [
+ q(3918) => [
q(Liv),
],
- q(3928) => [
+ q(3919) => [
q(Col),
],
- q(3929) => [
+ q(3920) => [
q(Liabuku),
],
- q(3930) => [
+ q(3921) => [
q(Banda-Bambari),
],
- q(3931) => [
+ q(3922) => [
q(Libinza),
],
- q(3932) => [
+ q(3923) => [
q(Golpa),
],
- q(3933) => [
+ q(3924) => [
q(Rampi),
],
- q(3934) => [
+ q(3925) => [
q(Laiyolo),
],
- q(3935) => [
+ q(3926) => [
q(Li'o),
],
- q(3936) => [
+ q(3927) => [
q(Lampung Api),
],
- q(3937) => [
+ q(3928) => [
q(Yirandali),
],
- q(3938) => [
+ q(3929) => [
q(Yuru),
],
- q(3939) => [
+ q(3930) => [
q(Lakalei),
],
- q(3940) => [
+ q(3931) => [
q(Kabras),
q(Lukabaras),
],
- q(3941) => [
+ q(3932) => [
q(Kucong),
],
- q(3942) => [
+ q(3933) => [
q(Lakonde),
],
- q(3943) => [
+ q(3934) => [
q(Kenyi),
],
- q(3944) => [
+ q(3935) => [
q(Lakha),
],
- q(3945) => [
+ q(3936) => [
q(Laki),
],
- q(3946) => [
+ q(3937) => [
q(Remun),
],
- q(3947) => [
+ q(3938) => [
q(Laeko-Libuat),
],
- q(3948) => [
+ q(3939) => [
q(Kalaamaya),
],
- q(3949) => [
+ q(3940) => [
q(Lakon),
q(Vure),
],
- q(3950) => [
+ q(3941) => [
q(Khayo),
q(Olukhayo),
],
- q(3951) => [
+ q(3942) => [
q(Pari),
],
- q(3952) => [
+ q(3943) => [
q(Kisa),
q(Olushisa),
],
- q(3953) => [
+ q(3944) => [
q(Lakota),
],
- q(3954) => [
+ q(3945) => [
q(Kungkari),
],
- q(3955) => [
+ q(3946) => [
q(Lokoya),
],
- q(3956) => [
+ q(3947) => [
q(Lala-Roba),
],
- q(3957) => [
+ q(3948) => [
q(Lolo),
],
- q(3958) => [
+ q(3949) => [
q(Lele (Guinea)),
],
- q(3959) => [
+ q(3950) => [
q(Ladin),
],
- q(3960) => [
+ q(3951) => [
q(Lele (Papua New Guinea)),
],
- q(3961) => [
+ q(3952) => [
q(Hermit),
],
- q(3962) => [
+ q(3953) => [
q(Lole),
],
- q(3963) => [
+ q(3954) => [
q(Lamu),
],
- q(3964) => [
+ q(3955) => [
q(Teke-Laali),
],
- q(3965) => [
+ q(3956) => [
q(Ladji Ladji),
],
- q(3966) => [
+ q(3957) => [
q(Lelak),
],
- q(3967) => [
+ q(3958) => [
q(Lilau),
],
- q(3968) => [
+ q(3959) => [
q(Lasalimu),
],
- q(3969) => [
+ q(3960) => [
q(Lele (Chad)),
],
- q(3970) => [
+ q(3961) => [
q(Khlor),
],
- q(3971) => [
+ q(3962) => [
q(North Efate),
],
- q(3972) => [
+ q(3963) => [
q(Lolak),
],
- q(3973) => [
+ q(3964) => [
q(Lithuanian Sign Language),
],
- q(3974) => [
+ q(3965) => [
q(Lau),
],
- q(3975) => [
+ q(3966) => [
q(Lauan),
],
- q(3976) => [
+ q(3967) => [
q(East Limba),
],
- q(3977) => [
+ q(3968) => [
q(Merei),
],
- q(3978) => [
+ q(3969) => [
q(Limilngan),
],
- q(3979) => [
+ q(3970) => [
q(Lumun),
],
- q(3980) => [
+ q(3971) => [
q(Peve),
],
- q(3981) => [
+ q(3972) => [
q(South Lembata),
],
- q(3982) => [
+ q(3973) => [
q(Lamogai),
],
- q(3983) => [
+ q(3974) => [
q(Lambichhong),
],
- q(3984) => [
+ q(3975) => [
q(Lombi),
],
- q(3985) => [
+ q(3976) => [
q(West Lembata),
],
- q(3986) => [
+ q(3977) => [
q(Lamkang),
],
- q(3987) => [
+ q(3978) => [
q(Hano),
],
- q(3988) => [
+ q(3979) => [
q(Lambadi),
],
- q(3989) => [
+ q(3980) => [
q(Lombard),
],
- q(3990) => [
+ q(3981) => [
q(Limbum),
],
- q(3991) => [
+ q(3982) => [
q(Lamatuka),
],
- q(3992) => [
+ q(3983) => [
q(Lamalera),
],
- q(3993) => [
+ q(3984) => [
q(Lamenu),
],
- q(3994) => [
+ q(3985) => [
q(Lomaiviti),
],
- q(3995) => [
+ q(3986) => [
q(Lake Miwok),
],
- q(3996) => [
+ q(3987) => [
q(Laimbue),
],
- q(3997) => [
+ q(3988) => [
q(Lamboya),
],
- q(3998) => [
+ q(3989) => [
q(Lumbee),
],
- q(3999) => [
+ q(3990) => [
q(Langbashe),
],
- q(4000) => [
+ q(3991) => [
q(Mbalanhu),
],
- q(4001) => [
+ q(3992) => [
q(Lundayeh),
q(Lun Bawang),
],
- q(4002) => [
+ q(3993) => [
q(Langobardic),
],
- q(4003) => [
+ q(3994) => [
q(Lanoh),
],
- q(4004) => [
+ q(3995) => [
q(Daantanai'),
],
- q(4005) => [
+ q(3996) => [
q(Leningitij),
],
- q(4006) => [
+ q(3997) => [
q(South Central Banda),
],
- q(4007) => [
+ q(3998) => [
q(Langam),
],
- q(4008) => [
+ q(3999) => [
q(Lorediakarkar),
],
- q(4009) => [
+ q(4000) => [
q(Lango (Sudan)),
],
- q(4010) => [
+ q(4001) => [
q(Lamnso'),
],
- q(4011) => [
+ q(4002) => [
q(Longuda),
],
- q(4012) => [
+ q(4003) => [
q(Lanima),
],
- q(4013) => [
+ q(4004) => [
q(Lonzo),
],
- q(4014) => [
+ q(4005) => [
q(Loloda),
],
- q(4015) => [
+ q(4006) => [
q(Lobi),
],
- q(4016) => [
+ q(4007) => [
q(Inonhan),
],
- q(4017) => [
+ q(4008) => [
q(Saluan),
],
- q(4018) => [
+ q(4009) => [
q(Logol),
],
- q(4019) => [
+ q(4010) => [
q(Logo),
],
- q(4020) => [
+ q(4011) => [
q(Narim),
],
- q(4021) => [
+ q(4012) => [
q(Loma (Cote d'Ivoire)),
],
- q(4022) => [
+ q(4013) => [
q(Lou),
],
- q(4023) => [
+ q(4014) => [
q(Loko),
],
- q(4024) => [
+ q(4015) => [
q(Loma (Liberia)),
],
- q(4025) => [
+ q(4016) => [
q(Malawi Lomwe),
],
- q(4026) => [
+ q(4017) => [
q(Lombo),
],
- q(4027) => [
+ q(4018) => [
q(Lopa),
],
- q(4028) => [
+ q(4019) => [
q(Lobala),
],
- q(4029) => [
+ q(4020) => [
q(Teen),
],
- q(4030) => [
+ q(4021) => [
q(Loniu),
],
- q(4031) => [
+ q(4022) => [
q(Otuho),
],
- q(4032) => [
- q(Louisiana Creole French),
+ q(4023) => [
+ q(Louisiana Creole),
],
- q(4033) => [
+ q(4024) => [
q(Lopi),
],
- q(4034) => [
+ q(4025) => [
q(Tampias Lobu),
],
- q(4035) => [
+ q(4026) => [
q(Loun),
],
- q(4036) => [
+ q(4027) => [
q(Loke),
],
- q(4037) => [
+ q(4028) => [
q(Lelepa),
],
- q(4038) => [
+ q(4029) => [
q(Lepki),
],
- q(4039) => [
+ q(4030) => [
q(Long Phuri Naga),
],
- q(4040) => [
+ q(4031) => [
q(Lipo),
],
- q(4041) => [
+ q(4032) => [
q(Lopit),
],
- q(4042) => [
+ q(4033) => [
q(Rara Bakati'),
],
- q(4043) => [
+ q(4034) => [
q(Northern Luri),
],
- q(4044) => [
+ q(4035) => [
q(Laurentian),
],
- q(4045) => [
+ q(4036) => [
q(Laragia),
],
- q(4046) => [
+ q(4037) => [
q(Marachi),
q(Olumarachi),
],
- q(4047) => [
+ q(4038) => [
q(Loarki),
],
- q(4048) => [
+ q(4039) => [
q(Lari),
],
- q(4049) => [
+ q(4040) => [
q(Marama),
q(Olumarama),
],
- q(4050) => [
+ q(4041) => [
q(Lorang),
],
- q(4051) => [
+ q(4042) => [
q(Laro),
],
- q(4052) => [
+ q(4043) => [
q(Southern Yamphu),
],
- q(4053) => [
+ q(4044) => [
q(Larantuka Malay),
],
- q(4054) => [
+ q(4045) => [
q(Larevat),
],
- q(4055) => [
+ q(4046) => [
q(Lemerig),
],
- q(4056) => [
+ q(4047) => [
q(Lasgerdi),
],
- q(4057) => [
+ q(4048) => [
q(Lishana Deni),
],
- q(4058) => [
+ q(4049) => [
q(Lusengo),
],
- q(4059) => [
+ q(4050) => [
q(Lyons Sign Language),
],
- q(4060) => [
+ q(4051) => [
q(Lish),
],
- q(4061) => [
+ q(4052) => [
q(Lashi),
],
- q(4062) => [
+ q(4053) => [
q(Latvian Sign Language),
],
- q(4063) => [
+ q(4054) => [
q(Saamia),
q(Olusamia),
],
- q(4064) => [
+ q(4055) => [
q(Laos Sign Language),
],
- q(4065) => [
+ q(4056) => [
q(Panamanian Sign Language),
q(Lengua de Senas Panamenas),
],
- q(4066) => [
+ q(4057) => [
q(Aruop),
],
- q(4067) => [
+ q(4058) => [
q(Lasi),
],
- q(4068) => [
+ q(4059) => [
q(Trinidad and Tobago Sign Language),
],
- q(4069) => [
+ q(4060) => [
q(Mauritian Sign Language),
],
- q(4070) => [
+ q(4061) => [
q(Late Middle Chinese),
],
- q(4071) => [
+ q(4062) => [
q(Latgalian),
],
- q(4072) => [
+ q(4063) => [
q(Leti (Indonesia)),
],
- q(4073) => [
+ q(4064) => [
q(Latunde),
],
- q(4074) => [
+ q(4065) => [
q(Tsotso),
q(Olutsotso),
],
- q(4075) => [
+ q(4066) => [
q(Tachoni),
q(Lutachoni),
],
- q(4076) => [
+ q(4067) => [
q(Latu),
],
- q(4077) => [
+ q(4068) => [
q(Aringa),
],
- q(4078) => [
+ q(4069) => [
q(Ludian),
],
- q(4079) => [
+ q(4070) => [
q(Luvale),
],
- q(4080) => [
+ q(4071) => [
q(Laua),
],
- q(4081) => [
+ q(4072) => [
q(Luna),
],
- q(4082) => [
+ q(4073) => [
q(Lunanakha),
],
- q(4083) => [
+ q(4074) => [
q(Olu'bo),
],
- q(4084) => [
+ q(4075) => [
q(Luimbi),
],
- q(4085) => [
+ q(4076) => [
q(Lumbu),
],
- q(4086) => [
+ q(4077) => [
q(Lucumi),
],
- q(4087) => [
+ q(4078) => [
q(Laura),
],
- q(4088) => [
+ q(4079) => [
q(Lushootseed),
],
- q(4089) => [
+ q(4080) => [
q(Lumba-Yakkha),
],
- q(4090) => [
+ q(4081) => [
q(Luwati),
],
- q(4091) => [
+ q(4082) => [
q(Luo (Cameroon)),
],
- q(4092) => [
+ q(4083) => [
q(Luyia),
q(Oluluyia),
],
- q(4093) => [
+ q(4084) => [
q(Southern Luri),
],
- q(4094) => [
+ q(4085) => [
q(Maku'a),
],
- q(4095) => [
+ q(4086) => [
q(Lavukaleve),
],
- q(4096) => [
+ q(4087) => [
q(Standard Latvian),
],
- q(4097) => [
+ q(4088) => [
q(Levuka),
],
- q(4098) => [
+ q(4089) => [
q(Lwalu),
],
- q(4099) => [
+ q(4090) => [
q(Lewo Eleng),
],
- q(4100) => [
+ q(4091) => [
q(Wanga),
q(Oluwanga),
],
- q(4101) => [
+ q(4092) => [
q(White Lachi),
],
- q(4102) => [
+ q(4093) => [
q(Eastern Lawa),
],
- q(4103) => [
+ q(4094) => [
q(Laomian),
],
- q(4104) => [
+ q(4095) => [
q(Luwo),
],
- q(4105) => [
+ q(4096) => [
q(Lewotobi),
],
- q(4106) => [
+ q(4097) => [
q(Lawu),
],
- q(4107) => [
+ q(4098) => [
q(Lewo),
],
- q(4108) => [
+ q(4099) => [
q(Layakha),
],
- q(4109) => [
+ q(4100) => [
q(Lyngngam),
],
- q(4110) => [
+ q(4101) => [
q(Luyana),
],
- q(4111) => [
+ q(4102) => [
q(Literary Chinese),
],
- q(4112) => [
+ q(4103) => [
q(Litzlitz),
],
- q(4113) => [
+ q(4104) => [
q(Leinong Naga),
],
- q(4114) => [
+ q(4105) => [
q(Laz),
],
- q(4115) => [
+ q(4106) => [
q(San Jeronimo Tecoatl Mazatec),
],
- q(4116) => [
+ q(4107) => [
q(Yutanduchi Mixtec),
],
- q(4117) => [
+ q(4108) => [
q(Bo-Rukul),
],
- q(4118) => [
+ q(4109) => [
q(Mafa),
],
- q(4119) => [
+ q(4110) => [
q(Jalapa De Diaz Mazatec),
],
- q(4120) => [
+ q(4111) => [
q(Mam),
],
- q(4121) => [
+ q(4112) => [
q(Chiquihuitlan Mazatec),
],
- q(4122) => [
+ q(4113) => [
q(San Francisco Matlatzinca),
],
- q(4123) => [
+ q(4114) => [
q(Huautla Mazatec),
],
- q(4124) => [
+ q(4115) => [
q(Satere-Mawe),
],
- q(4125) => [
+ q(4116) => [
q(Mampruli),
],
- q(4126) => [
+ q(4117) => [
q(North Moluccan Malay),
],
- q(4127) => [
+ q(4118) => [
q(Central Mazahua),
],
- q(4128) => [
+ q(4119) => [
q(Higaonon),
],
- q(4129) => [
+ q(4120) => [
q(Western Bukidnon Manobo),
],
- q(4130) => [
+ q(4121) => [
q(Macushi),
],
- q(4131) => [
+ q(4122) => [
q(Dibabawon Manobo),
],
- q(4132) => [
+ q(4123) => [
q(Molale),
],
- q(4133) => [
+ q(4124) => [
q(Baba Malay),
],
- q(4134) => [
+ q(4125) => [
q(Mangseng),
],
- q(4135) => [
+ q(4126) => [
q(Ilianen Manobo),
],
- q(4136) => [
+ q(4127) => [
q(Nadeb),
],
- q(4137) => [
+ q(4128) => [
q(Malol),
],
- q(4138) => [
+ q(4129) => [
q(Maxakali),
],
- q(4139) => [
+ q(4130) => [
q(Ombamba),
],
- q(4140) => [
+ q(4131) => [
q(Macaguan),
],
- q(4141) => [
+ q(4132) => [
q(Mbo (Cameroon)),
],
- q(4142) => [
+ q(4133) => [
q(Malayo),
],
- q(4143) => [
+ q(4134) => [
q(Maisin),
],
- q(4144) => [
+ q(4135) => [
q(Nukak Maku),
],
- q(4145) => [
+ q(4136) => [
q(Sarangani Manobo),
],
- q(4146) => [
+ q(4137) => [
q(Matigsalug Manobo),
],
- q(4147) => [
+ q(4138) => [
q(Mbula-Bwazza),
],
- q(4148) => [
+ q(4139) => [
q(Mbulungish),
],
- q(4149) => [
+ q(4140) => [
q(Maring),
],
- q(4150) => [
+ q(4141) => [
q(Mari (East Sepik Province)),
],
- q(4151) => [
+ q(4142) => [
q(Memoni),
],
- q(4152) => [
+ q(4143) => [
q(Amoltepec Mixtec),
],
- q(4153) => [
+ q(4144) => [
q(Maca),
],
- q(4154) => [
+ q(4145) => [
q(Machiguenga),
],
- q(4155) => [
+ q(4146) => [
q(Bitur),
],
- q(4156) => [
+ q(4147) => [
q(Sharanahua),
],
- q(4157) => [
+ q(4148) => [
q(Itundujia Mixtec),
],
- q(4158) => [
+ q(4149) => [
q(Matses),
],
- q(4159) => [
+ q(4150) => [
q(Mapoyo),
],
- q(4160) => [
+ q(4151) => [
q(Maquiritari),
],
- q(4161) => [
+ q(4152) => [
q(Mese),
],
- q(4162) => [
+ q(4153) => [
q(Mvanip),
],
- q(4163) => [
+ q(4154) => [
q(Mbunda),
],
- q(4164) => [
+ q(4155) => [
q(Macaguaje),
],
- q(4165) => [
+ q(4156) => [
q(Malaccan Creole Portuguese),
],
- q(4166) => [
+ q(4157) => [
q(Masana),
],
- q(4167) => [
+ q(4158) => [
q(Coatlan Mixe),
],
- q(4168) => [
+ q(4159) => [
q(Makaa),
],
- q(4169) => [
+ q(4160) => [
q(Ese),
],
- q(4170) => [
+ q(4161) => [
q(Menya),
],
- q(4171) => [
+ q(4162) => [
q(Mambai),
],
- q(4172) => [
+ q(4163) => [
q(Mengisa),
],
- q(4173) => [
+ q(4164) => [
q(Cameroon Mambila),
],
- q(4174) => [
+ q(4165) => [
q(Minanibai),
],
- q(4175) => [
+ q(4166) => [
q(Mawa (Chad)),
],
- q(4176) => [
+ q(4167) => [
q(Mpiemo),
],
- q(4177) => [
+ q(4168) => [
q(South Watut),
],
- q(4178) => [
+ q(4169) => [
q(Mawan),
],
- q(4179) => [
+ q(4170) => [
q(Mada (Nigeria)),
],
- q(4180) => [
+ q(4171) => [
q(Morigi),
],
- q(4181) => [
+ q(4172) => [
q(Male (Papua New Guinea)),
],
- q(4182) => [
+ q(4173) => [
q(Mbum),
],
- q(4183) => [
+ q(4174) => [
q(Maba (Chad)),
],
- q(4184) => [
+ q(4175) => [
q(Massalat),
],
- q(4185) => [
+ q(4176) => [
q(Maguindanaon),
],
- q(4186) => [
+ q(4177) => [
q(Mamvu),
],
- q(4187) => [
+ q(4178) => [
q(Mangbetu),
],
- q(4188) => [
+ q(4179) => [
q(Mangbutu),
],
- q(4189) => [
+ q(4180) => [
q(Maltese Sign Language),
],
- q(4190) => [
+ q(4181) => [
q(Mayogo),
],
- q(4191) => [
+ q(4182) => [
q(Mbati),
],
- q(4192) => [
+ q(4183) => [
q(Mbala),
],
- q(4193) => [
+ q(4184) => [
q(Mbole),
],
- q(4194) => [
+ q(4185) => [
q(Maria (Papua New Guinea)),
],
- q(4195) => [
+ q(4186) => [
q(Mbere),
],
- q(4196) => [
+ q(4187) => [
q(Mboko),
],
- q(4197) => [
+ q(4188) => [
q(Santa Lucia Monteverde Mixtec),
],
- q(4198) => [
+ q(4189) => [
q(Mbosi),
],
- q(4199) => [
+ q(4190) => [
q(Dizin),
],
- q(4200) => [
+ q(4191) => [
q(Male (Ethiopia)),
],
- q(4201) => [
+ q(4192) => [
q(Surui Do Para),
],
- q(4202) => [
+ q(4193) => [
q(Menka),
],
- q(4203) => [
+ q(4194) => [
q(Ikobi),
],
- q(4204) => [
+ q(4195) => [
q(Mara),
],
- q(4205) => [
+ q(4196) => [
q(Melpa),
],
- q(4206) => [
+ q(4197) => [
q(Mengen),
],
- q(4207) => [
+ q(4198) => [
q(Megam),
],
- q(4208) => [
+ q(4199) => [
q(Southwestern Tlaxiaco Mixtec),
],
- q(4209) => [
+ q(4200) => [
q(Midob),
],
- q(4210) => [
+ q(4201) => [
q(Meyah),
],
- q(4211) => [
+ q(4202) => [
q(Mekeo),
],
- q(4212) => [
+ q(4203) => [
q(Central Melanau),
],
- q(4213) => [
+ q(4204) => [
q(Mangala),
],
- q(4214) => [
+ q(4205) => [
q(Kedah Malay),
],
- q(4215) => [
+ q(4206) => [
q(Miriwung),
],
- q(4216) => [
+ q(4207) => [
q(Merey),
],
- q(4217) => [
+ q(4208) => [
q(Meru),
],
- q(4218) => [
+ q(4209) => [
q(Masmaje),
],
- q(4219) => [
+ q(4210) => [
q(Mato),
],
- q(4220) => [
+ q(4211) => [
q(Motu),
],
- q(4221) => [
+ q(4212) => [
q(Mano),
],
- q(4222) => [
+ q(4213) => [
q(Maaka),
],
- q(4223) => [
+ q(4214) => [
q(Hassaniyya),
],
- q(4224) => [
+ q(4215) => [
q(Menominee),
],
- q(4225) => [
+ q(4216) => [
q(Pattani Malay),
],
- q(4226) => [
+ q(4217) => [
q(Bangka),
],
- q(4227) => [
+ q(4218) => [
q(Mba),
],
- q(4228) => [
+ q(4219) => [
q(Mendankwe-Nkwen),
],
- q(4229) => [
+ q(4220) => [
q(Morisyen),
],
- q(4230) => [
+ q(4221) => [
q(Naki),
],
- q(4231) => [
+ q(4222) => [
q(Mogofin),
],
- q(4232) => [
+ q(4223) => [
q(Matal),
],
- q(4233) => [
+ q(4224) => [
q(Wandala),
],
- q(4234) => [
+ q(4225) => [
q(Mefele),
],
- q(4235) => [
+ q(4226) => [
q(North Mofu),
],
- q(4236) => [
+ q(4227) => [
q(Putai),
],
- q(4237) => [
+ q(4228) => [
q(Marghi South),
],
- q(4238) => [
+ q(4229) => [
q(Cross River Mbembe),
],
- q(4239) => [
+ q(4230) => [
q(Mbe),
],
- q(4240) => [
+ q(4231) => [
q(Makassar Malay),
],
- q(4241) => [
+ q(4232) => [
q(Moba),
],
- q(4242) => [
+ q(4233) => [
q(Marithiel),
],
- q(4243) => [
+ q(4234) => [
q(Mexican Sign Language),
],
- q(4244) => [
+ q(4235) => [
q(Mokerang),
],
- q(4245) => [
+ q(4236) => [
q(Mbwela),
],
- q(4246) => [
+ q(4237) => [
q(Mandjak),
],
- q(4247) => [
+ q(4238) => [
q(Mulaha),
],
- q(4248) => [
+ q(4239) => [
q(Melo),
],
- q(4249) => [
+ q(4240) => [
q(Mayo),
],
- q(4250) => [
+ q(4241) => [
q(Mabaan),
],
- q(4251) => [
+ q(4242) => [
q(Mararit),
],
- q(4252) => [
+ q(4243) => [
q(Morokodo),
],
- q(4253) => [
+ q(4244) => [
q(Moru),
],
- q(4254) => [
+ q(4245) => [
q(Mango),
],
- q(4255) => [
+ q(4246) => [
q(Maklew),
],
- q(4256) => [
+ q(4247) => [
q(Mpumpong),
],
- q(4257) => [
+ q(4248) => [
q(Makhuwa-Meetto),
],
- q(4258) => [
+ q(4249) => [
q(Lijili),
],
- q(4259) => [
+ q(4250) => [
q(Abureni),
],
- q(4260) => [
+ q(4251) => [
q(Mawes),
],
- q(4261) => [
+ q(4252) => [
q(Maleu-Kilenge),
],
- q(4262) => [
+ q(4253) => [
q(Mambae),
],
- q(4263) => [
+ q(4254) => [
q(Mbangi),
],
- q(4264) => [
+ q(4255) => [
q(Meta'),
],
- q(4265) => [
+ q(4256) => [
q(Eastern Magar),
],
- q(4266) => [
+ q(4257) => [
q(Malila),
],
- q(4267) => [
+ q(4258) => [
q(Mambwe-Lungu),
],
- q(4268) => [
+ q(4259) => [
q(Manda (Tanzania)),
],
- q(4269) => [
+ q(4260) => [
q(Mongol),
],
- q(4270) => [
+ q(4261) => [
q(Mailu),
],
- q(4271) => [
+ q(4262) => [
q(Matengo),
],
- q(4272) => [
+ q(4263) => [
q(Matumbi),
],
- q(4273) => [
+ q(4264) => [
q(Mbunga),
],
- q(4274) => [
+ q(4265) => [
q(Mbugwe),
],
- q(4275) => [
+ q(4266) => [
q(Manda (India)),
],
- q(4276) => [
+ q(4267) => [
q(Mahongwe),
],
- q(4277) => [
+ q(4268) => [
q(Mocho),
],
- q(4278) => [
+ q(4269) => [
q(Mbugu),
],
- q(4279) => [
+ q(4270) => [
q(Besisi),
q(Mah Meri),
],
- q(4280) => [
+ q(4271) => [
q(Mamaa),
],
- q(4281) => [
+ q(4272) => [
q(Margu),
],
- q(4282) => [
+ q(4273) => [
q(Ma'di),
],
- q(4283) => [
+ q(4274) => [
q(Mogholi),
],
- q(4284) => [
+ q(4275) => [
q(Mungaka),
],
- q(4285) => [
+ q(4276) => [
q(Mauwake),
],
- q(4286) => [
+ q(4277) => [
q(Makhuwa-Moniga),
],
- q(4287) => [
+ q(4278) => [
q(Mocheno),
],
- q(4288) => [
+ q(4279) => [
q(Mashi (Zambia)),
],
- q(4289) => [
+ q(4280) => [
q(Balinese Malay),
],
- q(4290) => [
+ q(4281) => [
q(Mandan),
],
- q(4291) => [
+ q(4282) => [
q(Eastern Mari),
],
- q(4292) => [
+ q(4283) => [
q(Buru (Indonesia)),
],
- q(4293) => [
+ q(4284) => [
q(Mandahuaca),
],
- q(4294) => [
+ q(4285) => [
q(Digaro-Mishmi),
q(Darang Deng),
],
- q(4295) => [
+ q(4286) => [
q(Mbukushu),
],
- q(4296) => [
+ q(4287) => [
q(Maru),
q(Lhaovo),
],
- q(4297) => [
+ q(4288) => [
q(Ma'anyan),
],
- q(4298) => [
+ q(4289) => [
q(Mor (Mor Islands)),
],
- q(4299) => [
+ q(4290) => [
q(Miami),
],
- q(4300) => [
+ q(4291) => [
q(Atatlahuca Mixtec),
],
- q(4301) => [
+ q(4292) => [
q(Mandaic),
],
- q(4302) => [
+ q(4293) => [
q(Ocotepec Mixtec),
],
- q(4303) => [
+ q(4294) => [
q(Mofu-Gudur),
],
- q(4304) => [
+ q(4295) => [
q(San Miguel El Grande Mixtec),
],
- q(4305) => [
+ q(4296) => [
q(Chayuco Mixtec),
],
- q(4306) => [
+ q(4297) => [
q(Chigmecatitlan Mixtec),
],
- q(4307) => [
+ q(4298) => [
q(Abar),
q(Mungbam),
],
- q(4308) => [
+ q(4299) => [
q(Mikasuki),
],
- q(4309) => [
+ q(4300) => [
q(Penoles Mixtec),
],
- q(4310) => [
+ q(4301) => [
q(Alacatlatzala Mixtec),
],
- q(4311) => [
+ q(4302) => [
q(Pinotepa Nacional Mixtec),
],
- q(4312) => [
+ q(4303) => [
q(Apasco-Apoala Mixtec),
],
- q(4313) => [
+ q(4304) => [
q(Miskito),
],
- q(4314) => [
+ q(4305) => [
q(Isthmus Mixe),
],
- q(4315) => [
+ q(4306) => [
q(Southern Puebla Mixtec),
],
- q(4316) => [
+ q(4307) => [
q(Cacaloxtepec Mixtec),
],
- q(4317) => [
+ q(4308) => [
q(Akoye),
],
- q(4318) => [
+ q(4309) => [
q(Mixtepec Mixtec),
],
- q(4319) => [
+ q(4310) => [
q(Ayutla Mixtec),
],
- q(4320) => [
+ q(4311) => [
q(Coatzospan Mixtec),
],
- q(4321) => [
+ q(4312) => [
+ q(Makalero),
+ ],
+ q(4313) => [
q(San Juan Colorado Mixtec),
],
- q(4322) => [
+ q(4314) => [
q(Northwest Maidu),
],
- q(4323) => [
+ q(4315) => [
q(Muskum),
],
- q(4324) => [
+ q(4316) => [
q(Tu),
],
- q(4325) => [
+ q(4317) => [
q(Mwera (Nyasa)),
],
- q(4326) => [
+ q(4318) => [
q(Kim Mun),
],
- q(4327) => [
+ q(4319) => [
q(Mawak),
],
- q(4328) => [
+ q(4320) => [
q(Matukar),
],
- q(4329) => [
+ q(4321) => [
q(Mandeali),
],
- q(4330) => [
+ q(4322) => [
q(Medebur),
],
- q(4331) => [
+ q(4323) => [
q(Ma (Papua New Guinea)),
],
- q(4332) => [
+ q(4324) => [
q(Malankuravan),
],
- q(4333) => [
+ q(4325) => [
q(Malapandaram),
],
- q(4334) => [
+ q(4326) => [
q(Malaryan),
],
- q(4335) => [
+ q(4327) => [
q(Malavedan),
],
- q(4336) => [
+ q(4328) => [
q(Miship),
],
- q(4337) => [
+ q(4329) => [
q(Sauria Paharia),
],
- q(4338) => [
+ q(4330) => [
q(Manna-Dora),
],
- q(4339) => [
+ q(4331) => [
q(Mannan),
],
- q(4340) => [
+ q(4332) => [
q(Karbi),
],
- q(4341) => [
+ q(4333) => [
q(Mahali),
],
- q(4342) => [
+ q(4334) => [
q(Mahican),
],
- q(4343) => [
+ q(4335) => [
q(Majhi),
],
- q(4344) => [
+ q(4336) => [
q(Mbre),
],
- q(4345) => [
+ q(4337) => [
q(Mal Paharia),
],
- q(4346) => [
+ q(4338) => [
q(Siliput),
],
- q(4347) => [
+ q(4339) => [
q(Mawchi),
],
- q(4348) => [
+ q(4340) => [
q(Miya),
],
- q(4349) => [
+ q(4341) => [
q(Mak (China)),
],
- q(4350) => [
+ q(4342) => [
q(Dhatki),
],
- q(4351) => [
+ q(4343) => [
q(Mokilese),
],
- q(4352) => [
+ q(4344) => [
q(Byep),
],
- q(4353) => [
+ q(4345) => [
q(Mokole),
],
- q(4354) => [
+ q(4346) => [
q(Moklen),
],
- q(4355) => [
+ q(4347) => [
q(Kupang Malay),
],
- q(4356) => [
+ q(4348) => [
q(Mingang Doso),
],
- q(4357) => [
+ q(4349) => [
q(Moikodi),
],
- q(4358) => [
+ q(4350) => [
q(Bay Miwok),
],
- q(4359) => [
+ q(4351) => [
q(Malas),
],
- q(4360) => [
+ q(4352) => [
q(Silacayoapan Mixtec),
],
- q(4361) => [
+ q(4353) => [
q(Vamale),
],
- q(4362) => [
+ q(4354) => [
q(Konyanka Maninka),
],
- q(4363) => [
+ q(4355) => [
q(Mafea),
],
- q(4364) => [
+ q(4356) => [
q(Kituba (Congo)),
],
- q(4365) => [
+ q(4357) => [
q(Kinamiging Manobo),
],
- q(4366) => [
+ q(4358) => [
q(East Makian),
],
- q(4367) => [
+ q(4359) => [
q(Makasae),
],
- q(4368) => [
+ q(4360) => [
q(Malo),
],
- q(4369) => [
+ q(4361) => [
q(Mbule),
],
- q(4370) => [
+ q(4362) => [
q(Cao Lan),
],
- q(4371) => [
+ q(4363) => [
q(Manambu),
],
- q(4372) => [
+ q(4364) => [
q(Mal),
],
- q(4373) => [
+ q(4365) => [
q(Mape),
],
- q(4374) => [
+ q(4366) => [
q(Malimpung),
],
- q(4375) => [
+ q(4367) => [
q(Miltu),
],
- q(4376) => [
+ q(4368) => [
q(Ilwana),
q(Kiwilwana),
],
- q(4377) => [
+ q(4369) => [
q(Malua Bay),
],
- q(4378) => [
+ q(4370) => [
q(Mulam),
],
- q(4379) => [
+ q(4371) => [
q(Malango),
],
- q(4380) => [
+ q(4372) => [
q(Mlomp),
],
- q(4381) => [
+ q(4373) => [
q(Bargam),
],
- q(4382) => [
+ q(4374) => [
q(Western Maninkakan),
],
- q(4383) => [
+ q(4375) => [
q(Vame),
],
- q(4384) => [
+ q(4376) => [
q(Masalit),
],
- q(4385) => [
+ q(4377) => [
q(To'abaita),
],
- q(4386) => [
+ q(4378) => [
q(Motlav),
q(Mwotlap),
],
- q(4387) => [
+ q(4379) => [
q(Moloko),
],
- q(4388) => [
+ q(4380) => [
q(Malfaxal),
q(Naha'ai),
],
- q(4389) => [
+ q(4381) => [
q(Malaynon),
],
- q(4390) => [
+ q(4382) => [
q(Mama),
],
- q(4391) => [
+ q(4383) => [
q(Momina),
],
- q(4392) => [
+ q(4384) => [
q(Michoacan Mazahua),
],
- q(4393) => [
+ q(4385) => [
q(Maonan),
],
- q(4394) => [
+ q(4386) => [
q(Mae),
],
- q(4395) => [
+ q(4387) => [
q(Mundat),
],
- q(4396) => [
+ q(4388) => [
q(North Ambrym),
],
- q(4397) => [
+ q(4389) => [
q(Mehinaku),
],
- q(4398) => [
+ q(4390) => [
q(Musar),
],
- q(4399) => [
+ q(4391) => [
q(Majhwar),
],
- q(4400) => [
+ q(4392) => [
q(Mukha-Dora),
],
- q(4401) => [
+ q(4393) => [
q(Man Met),
],
- q(4402) => [
+ q(4394) => [
q(Maii),
],
- q(4403) => [
+ q(4395) => [
q(Mamanwa),
],
- q(4404) => [
+ q(4396) => [
q(Mangga Buang),
],
- q(4405) => [
+ q(4397) => [
q(Siawi),
],
- q(4406) => [
+ q(4398) => [
q(Musak),
],
- q(4407) => [
+ q(4399) => [
q(Western Xiangxi Miao),
],
- q(4408) => [
+ q(4400) => [
q(Malalamai),
],
- q(4409) => [
+ q(4401) => [
q(Mmaala),
],
- q(4410) => [
+ q(4402) => [
q(Miriti),
],
- q(4411) => [
+ q(4403) => [
q(Emae),
],
- q(4412) => [
+ q(4404) => [
q(Madak),
],
- q(4413) => [
+ q(4405) => [
q(Migaama),
],
- q(4414) => [
+ q(4406) => [
q(Mabaale),
],
- q(4415) => [
+ q(4407) => [
q(Mbula),
],
- q(4416) => [
+ q(4408) => [
q(Muna),
],
- q(4417) => [
+ q(4409) => [
q(Monde),
],
- q(4418) => [
+ q(4410) => [
q(Naba),
],
- q(4419) => [
+ q(4411) => [
q(Mundani),
],
- q(4420) => [
+ q(4412) => [
q(Eastern Mnong),
],
- q(4421) => [
+ q(4413) => [
q(Mono (Democratic Republic of Congo)),
],
- q(4422) => [
+ q(4414) => [
q(Munji),
],
- q(4423) => [
+ q(4415) => [
q(Mandinka),
],
- q(4424) => [
+ q(4416) => [
q(Tiale),
],
- q(4425) => [
+ q(4417) => [
q(Mapena),
],
- q(4426) => [
+ q(4418) => [
q(Southern Mnong),
],
- q(4427) => [
+ q(4419) => [
q(Min Bei Chinese),
],
- q(4428) => [
+ q(4420) => [
q(Minriq),
],
- q(4429) => [
+ q(4421) => [
q(Mono (USA)),
],
- q(4430) => [
+ q(4422) => [
q(Mansi),
],
- q(4431) => [
+ q(4423) => [
q(Mer),
],
- q(4432) => [
+ q(4424) => [
q(Rennell-Bellona),
],
- q(4433) => [
+ q(4425) => [
q(Mon),
],
- q(4434) => [
+ q(4426) => [
q(Manikion),
],
- q(4435) => [
+ q(4427) => [
q(Manyawa),
],
- q(4436) => [
+ q(4428) => [
q(Moni),
],
- q(4437) => [
+ q(4429) => [
q(Mwan),
],
- q(4438) => [
+ q(4430) => [
q(Mocovi),
],
- q(4439) => [
+ q(4431) => [
q(Mobilian),
],
- q(4440) => [
+ q(4432) => [
q(Montagnais),
],
- q(4441) => [
+ q(4433) => [
q(Mongondow),
],
- q(4442) => [
+ q(4434) => [
q(Mboi),
],
- q(4443) => [
+ q(4435) => [
q(Monzombo),
],
- q(4444) => [
+ q(4436) => [
q(Morori),
],
- q(4445) => [
+ q(4437) => [
q(Mangue),
],
- q(4446) => [
+ q(4438) => [
q(Monom),
],
- q(4447) => [
+ q(4439) => [
q(Mopan Maya),
],
- q(4448) => [
+ q(4440) => [
q(Mor (Bomberai Peninsula)),
],
- q(4449) => [
+ q(4441) => [
q(Moro),
],
- q(4450) => [
+ q(4442) => [
q(Mogum),
],
- q(4451) => [
+ q(4443) => [
q(Mohave),
],
- q(4452) => [
+ q(4444) => [
q(Moi (Congo)),
],
- q(4453) => [
+ q(4445) => [
q(Molima),
],
- q(4454) => [
+ q(4446) => [
q(Shekkacho),
],
- q(4455) => [
+ q(4447) => [
q(Mukulu),
q(Gergiko),
],
- q(4456) => [
+ q(4448) => [
q(Mpoto),
],
- q(4457) => [
+ q(4449) => [
q(Mullukmulluk),
],
- q(4458) => [
+ q(4450) => [
q(Mangarayi),
],
- q(4459) => [
+ q(4451) => [
q(Machinere),
],
- q(4460) => [
+ q(4452) => [
q(Majang),
],
- q(4461) => [
+ q(4453) => [
q(Marba),
],
- q(4462) => [
+ q(4454) => [
q(Maung),
],
- q(4463) => [
+ q(4455) => [
q(Mpade),
],
- q(4464) => [
+ q(4456) => [
q(Martu Wangka),
],
- q(4465) => [
+ q(4457) => [
q(Mbara (Chad)),
],
- q(4466) => [
+ q(4458) => [
q(Middle Watut),
],
- q(4467) => [
+ q(4459) => [
q(Yosondua Mixtec),
],
- q(4468) => [
+ q(4460) => [
q(Mindiri),
],
- q(4469) => [
+ q(4461) => [
q(Miu),
],
- q(4470) => [
+ q(4462) => [
q(Migabac),
],
- q(4471) => [
+ q(4463) => [
q(Matis),
],
- q(4472) => [
+ q(4464) => [
q(Vangunu),
],
- q(4473) => [
+ q(4465) => [
q(Dadibi),
],
- q(4474) => [
+ q(4466) => [
q(Mian),
],
- q(4475) => [
+ q(4467) => [
q(Makurap),
],
- q(4476) => [
+ q(4468) => [
q(Mungkip),
],
- q(4477) => [
+ q(4469) => [
q(Mapidian),
],
- q(4478) => [
+ q(4470) => [
q(Misima-Panaeati),
],
- q(4479) => [
+ q(4471) => [
q(Mapia),
],
- q(4480) => [
+ q(4472) => [
q(Mpi),
],
- q(4481) => [
+ q(4473) => [
q(Maba (Indonesia)),
],
- q(4482) => [
+ q(4474) => [
q(Mbuko),
],
- q(4483) => [
+ q(4475) => [
q(Mangole),
],
- q(4484) => [
+ q(4476) => [
q(Matepi),
],
- q(4485) => [
+ q(4477) => [
q(Momuna),
],
- q(4486) => [
+ q(4478) => [
q(Kota Bangun Kutai Malay),
],
- q(4487) => [
+ q(4479) => [
q(Tlazoyaltepec Mixtec),
],
- q(4488) => [
+ q(4480) => [
q(Mariri),
],
- q(4489) => [
+ q(4481) => [
q(Mamasa),
],
- q(4490) => [
+ q(4482) => [
q(Rajah Kabunsuwan Manobo),
],
- q(4491) => [
+ q(4483) => [
q(Mbelime),
],
- q(4492) => [
+ q(4484) => [
q(South Marquesan),
],
- q(4493) => [
+ q(4485) => [
q(Moronene),
],
- q(4494) => [
+ q(4486) => [
q(Modole),
],
- q(4495) => [
+ q(4487) => [
q(Manipa),
],
- q(4496) => [
+ q(4488) => [
q(Minokok),
],
- q(4497) => [
+ q(4489) => [
q(Mander),
],
- q(4498) => [
+ q(4490) => [
q(West Makian),
],
- q(4499) => [
+ q(4491) => [
q(Mok),
],
- q(4500) => [
+ q(4492) => [
q(Mandari),
],
- q(4501) => [
+ q(4493) => [
q(Mosimo),
],
- q(4502) => [
+ q(4494) => [
q(Murupi),
],
- q(4503) => [
+ q(4495) => [
q(Mamuju),
],
- q(4504) => [
+ q(4496) => [
q(Manggarai),
],
- q(4505) => [
+ q(4497) => [
q(Pano),
],
- q(4506) => [
+ q(4498) => [
q(Mlabri),
],
- q(4507) => [
+ q(4499) => [
q(Marino),
],
- q(4508) => [
+ q(4500) => [
q(Maricopa),
],
- q(4509) => [
+ q(4501) => [
q(Western Magar),
],
- q(4510) => [
+ q(4502) => [
q(Martha's Vineyard Sign Language),
],
- q(4511) => [
+ q(4503) => [
q(Elseng),
],
- q(4512) => [
+ q(4504) => [
q(Mising),
],
- q(4513) => [
+ q(4505) => [
q(Mara Chin),
],
- q(4514) => [
+ q(4506) => [
q(Western Mari),
],
- q(4515) => [
+ q(4507) => [
q(Hmwaveke),
],
- q(4516) => [
+ q(4508) => [
q(Mortlockese),
],
- q(4517) => [
+ q(4509) => [
q(Merlav),
q(Mwerlap),
],
- q(4518) => [
+ q(4510) => [
q(Cheke Holo),
],
- q(4519) => [
+ q(4511) => [
q(Mru),
],
- q(4520) => [
+ q(4512) => [
q(Morouas),
],
- q(4521) => [
+ q(4513) => [
q(North Marquesan),
],
- q(4522) => [
+ q(4514) => [
q(Maria (India)),
],
- q(4523) => [
+ q(4515) => [
q(Maragus),
],
- q(4524) => [
+ q(4516) => [
q(Marghi Central),
],
- q(4525) => [
+ q(4517) => [
q(Mono (Cameroon)),
],
- q(4526) => [
+ q(4518) => [
q(Mangareva),
],
- q(4527) => [
+ q(4519) => [
q(Maranao),
],
- q(4528) => [
+ q(4520) => [
q(Maremgi),
q(Dineor),
],
- q(4529) => [
+ q(4521) => [
q(Mandaya),
],
- q(4530) => [
+ q(4522) => [
q(Marind),
],
- q(4531) => [
+ q(4523) => [
q(Masbatenyo),
],
- q(4532) => [
+ q(4524) => [
q(Sankaran Maninka),
],
- q(4533) => [
+ q(4525) => [
q(Yucatec Maya Sign Language),
],
- q(4534) => [
+ q(4526) => [
q(Musey),
],
- q(4535) => [
+ q(4527) => [
q(Mekwei),
],
- q(4536) => [
+ q(4528) => [
q(Moraid),
],
- q(4537) => [
+ q(4529) => [
q(Masikoro Malagasy),
],
- q(4538) => [
+ q(4530) => [
q(Sabah Malay),
],
- q(4539) => [
+ q(4531) => [
q(Ma (Democratic Republic of Congo)),
],
- q(4540) => [
+ q(4532) => [
q(Mansaka),
],
- q(4541) => [
+ q(4533) => [
q(Molof),
q(Poule),
],
- q(4542) => [
+ q(4534) => [
q(Agusan Manobo),
],
- q(4543) => [
+ q(4535) => [
q(Vures),
],
- q(4544) => [
+ q(4536) => [
q(Mombum),
],
- q(4545) => [
+ q(4537) => [
q(Maritsaua),
],
- q(4546) => [
+ q(4538) => [
q(Caac),
],
- q(4547) => [
+ q(4539) => [
q(Mongolian Sign Language),
],
- q(4548) => [
+ q(4540) => [
q(West Masela),
],
- q(4549) => [
+ q(4541) => [
q(Musom),
],
- q(4550) => [
+ q(4542) => [
q(Maslam),
],
- q(4551) => [
+ q(4543) => [
q(Mansoanka),
],
- q(4552) => [
+ q(4544) => [
q(Moresada),
],
- q(4553) => [
+ q(4545) => [
q(Aruamu),
],
- q(4554) => [
+ q(4546) => [
q(Momare),
],
- q(4555) => [
+ q(4547) => [
q(Cotabato Manobo),
],
- q(4556) => [
+ q(4548) => [
q(Anyin Morofo),
],
- q(4557) => [
+ q(4549) => [
q(Munit),
],
- q(4558) => [
+ q(4550) => [
q(Mualang),
],
- q(4559) => [
+ q(4551) => [
q(Mono (Solomon Islands)),
],
- q(4560) => [
+ q(4552) => [
q(Murik (Papua New Guinea)),
],
- q(4561) => [
+ q(4553) => [
q(Una),
],
- q(4562) => [
+ q(4554) => [
q(Munggui),
],
- q(4563) => [
+ q(4555) => [
q(Maiwa (Papua New Guinea)),
],
- q(4564) => [
+ q(4556) => [
q(Moskona),
],
- q(4565) => [
+ q(4557) => [
q(Mbe'),
],
- q(4566) => [
+ q(4558) => [
q(Montol),
],
- q(4567) => [
+ q(4559) => [
q(Mator),
],
- q(4568) => [
+ q(4560) => [
q(Matagalpa),
],
- q(4569) => [
+ q(4561) => [
q(Totontepec Mixe),
],
- q(4570) => [
+ q(4562) => [
q(Wichi Lhamtes Nocten),
],
- q(4571) => [
+ q(4563) => [
q(Muong),
],
- q(4572) => [
+ q(4564) => [
q(Mewari),
],
- q(4573) => [
+ q(4565) => [
q(Yora),
],
- q(4574) => [
+ q(4566) => [
q(Mota),
],
- q(4575) => [
+ q(4567) => [
q(Tututepec Mixtec),
],
- q(4576) => [
+ q(4568) => [
q(Asaro'o),
],
- q(4577) => [
+ q(4569) => [
q(Southern Binukidnon),
],
- q(4578) => [
+ q(4570) => [
q(Tidaa Mixtec),
],
- q(4579) => [
+ q(4571) => [
q(Nabi),
],
- q(4580) => [
+ q(4572) => [
q(Mundang),
],
- q(4581) => [
+ q(4573) => [
q(Mubi),
],
- q(4582) => [
+ q(4574) => [
q(Ajumbu),
],
- q(4583) => [
+ q(4575) => [
q(Mednyj Aleut),
],
- q(4584) => [
+ q(4576) => [
q(Media Lengua),
],
- q(4585) => [
+ q(4577) => [
q(Musgu),
],
- q(4586) => [
+ q(4578) => [
q(Mundu),
],
- q(4587) => [
+ q(4579) => [
q(Musi),
],
- q(4588) => [
+ q(4580) => [
q(Mabire),
],
- q(4589) => [
+ q(4581) => [
q(Mugom),
],
- q(4590) => [
+ q(4582) => [
q(Maiwala),
],
- q(4591) => [
+ q(4583) => [
q(Nyong),
],
- q(4592) => [
+ q(4584) => [
q(Malvi),
],
- q(4593) => [
+ q(4585) => [
q(Eastern Xiangxi Miao),
],
- q(4594) => [
+ q(4586) => [
q(Murle),
],
- q(4595) => [
+ q(4587) => [
q(Western Muria),
],
- q(4596) => [
+ q(4588) => [
q(Yaaku),
],
- q(4597) => [
+ q(4589) => [
q(Muthuvan),
],
- q(4598) => [
+ q(4590) => [
q(Bo-Ung),
],
- q(4599) => [
+ q(4591) => [
q(Muyang),
],
- q(4600) => [
+ q(4592) => [
q(Mursi),
],
- q(4601) => [
+ q(4593) => [
q(Manam),
],
- q(4602) => [
+ q(4594) => [
q(Mattole),
],
- q(4603) => [
+ q(4595) => [
q(Mamboru),
],
- q(4604) => [
+ q(4596) => [
q(Marwari (Pakistan)),
],
- q(4605) => [
+ q(4597) => [
q(Peripheral Mongolian),
],
- q(4606) => [
+ q(4598) => [
q(Yucuane Mixtec),
],
- q(4607) => [
+ q(4599) => [
q(Mulgi),
],
- q(4608) => [
+ q(4600) => [
q(Miyako),
],
- q(4609) => [
+ q(4601) => [
q(Mekmek),
],
- q(4610) => [
+ q(4602) => [
q(Mbara (Australia)),
],
- q(4611) => [
+ q(4603) => [
q(Muya),
],
- q(4612) => [
+ q(4604) => [
q(Minaveha),
],
- q(4613) => [
+ q(4605) => [
q(Marovo),
],
- q(4614) => [
+ q(4606) => [
q(Duri),
],
- q(4615) => [
+ q(4607) => [
q(Moere),
],
- q(4616) => [
+ q(4608) => [
q(Marau),
],
- q(4617) => [
+ q(4609) => [
q(Massep),
],
- q(4618) => [
+ q(4610) => [
q(Mpotovoro),
],
- q(4619) => [
+ q(4611) => [
q(Marfa),
],
- q(4620) => [
+ q(4612) => [
q(Tagal Murut),
],
- q(4621) => [
+ q(4613) => [
q(Machinga),
],
- q(4622) => [
+ q(4614) => [
q(Meoswar),
],
- q(4623) => [
+ q(4615) => [
q(Indus Kohistani),
],
- q(4624) => [
+ q(4616) => [
q(Mesqan),
],
- q(4625) => [
+ q(4617) => [
q(Mwatebu),
],
- q(4626) => [
+ q(4618) => [
q(Juwal),
],
- q(4627) => [
+ q(4619) => [
q(Are),
],
- q(4628) => [
+ q(4620) => [
q(Mwera (Chimwera)),
],
- q(4629) => [
+ q(4621) => [
q(Murrinh-Patha),
],
- q(4630) => [
+ q(4622) => [
q(Aiklep),
],
- q(4631) => [
+ q(4623) => [
q(Mouk-Aria),
],
- q(4632) => [
+ q(4624) => [
q(Labo),
q(Ninde),
],
- q(4633) => [
+ q(4625) => [
q(Kita Maninkakan),
],
- q(4634) => [
+ q(4626) => [
q(Sar),
],
- q(4635) => [
+ q(4627) => [
q(Nyamwanga),
],
- q(4636) => [
+ q(4628) => [
q(Central Maewo),
],
- q(4637) => [
+ q(4629) => [
q(Kala Lagaw Ya),
],
- q(4638) => [
+ q(4630) => [
q(Mun Chin),
],
- q(4639) => [
+ q(4631) => [
q(Mwimbi-Muthambi),
],
- q(4640) => [
+ q(4632) => [
q(Moken),
],
- q(4641) => [
+ q(4633) => [
q(Mittu),
],
- q(4642) => [
+ q(4634) => [
q(Mentawai),
],
- q(4643) => [
+ q(4635) => [
q(Hmong Daw),
],
- q(4644) => [
+ q(4636) => [
q(Mediak),
],
- q(4645) => [
+ q(4637) => [
q(Mosiro),
],
- q(4646) => [
+ q(4638) => [
q(Moingi),
],
- q(4647) => [
+ q(4639) => [
q(Northwest Oaxaca Mixtec),
],
- q(4648) => [
+ q(4640) => [
q(Tezoatlan Mixtec),
],
- q(4649) => [
+ q(4641) => [
q(Manyika),
],
- q(4650) => [
+ q(4642) => [
q(Modang),
],
- q(4651) => [
+ q(4643) => [
q(Mele-Fila),
],
- q(4652) => [
+ q(4644) => [
q(Malgbe),
],
- q(4653) => [
+ q(4645) => [
q(Mbangala),
],
- q(4654) => [
+ q(4646) => [
q(Mvuba),
],
- q(4655) => [
+ q(4647) => [
q(Mozarabic),
],
- q(4656) => [
+ q(4648) => [
q(Miju-Mishmi),
q(Geman Deng),
],
- q(4657) => [
+ q(4649) => [
q(Monumbo),
],
- q(4658) => [
+ q(4650) => [
q(Maxi Gbe),
],
- q(4659) => [
+ q(4651) => [
q(Meramera),
],
- q(4660) => [
+ q(4652) => [
q(Moi (Indonesia)),
],
- q(4661) => [
+ q(4653) => [
q(Mbowe),
],
- q(4662) => [
+ q(4654) => [
q(Tlahuitoltepec Mixe),
],
- q(4663) => [
+ q(4655) => [
q(Juquila Mixe),
],
- q(4664) => [
+ q(4656) => [
q(Murik (Malaysia)),
],
- q(4665) => [
+ q(4657) => [
q(Huitepec Mixtec),
],
- q(4666) => [
+ q(4658) => [
q(Jamiltepec Mixtec),
],
- q(4667) => [
+ q(4659) => [
q(Mada (Cameroon)),
],
- q(4668) => [
+ q(4660) => [
q(Metlatonoc Mixtec),
],
- q(4669) => [
+ q(4661) => [
q(Namo),
],
- q(4670) => [
+ q(4662) => [
q(Mahou),
q(Mawukakan),
],
- q(4671) => [
+ q(4663) => [
q(Southeastern Nochixtlan Mixtec),
],
- q(4672) => [
+ q(4664) => [
q(Central Masela),
],
- q(4673) => [
+ q(4665) => [
q(Mbay),
],
- q(4674) => [
+ q(4666) => [
q(Mayeka),
],
- q(4675) => [
+ q(4667) => [
q(Maramba),
],
- q(4676) => [
+ q(4668) => [
q(Myene),
],
- q(4677) => [
+ q(4669) => [
q(Bambassi),
],
- q(4678) => [
+ q(4670) => [
q(Manta),
],
- q(4679) => [
+ q(4671) => [
q(Makah),
],
- q(4680) => [
+ q(4672) => [
q(Mina (India)),
],
- q(4681) => [
+ q(4673) => [
q(Mangayat),
],
- q(4682) => [
+ q(4674) => [
q(Mamara Senoufo),
],
- q(4683) => [
+ q(4675) => [
q(Moma),
],
- q(4684) => [
+ q(4676) => [
q(Me'en),
],
- q(4685) => [
+ q(4677) => [
q(Anfillo),
],
- q(4686) => [
+ q(4678) => [
q(Piraha),
],
- q(4687) => [
+ q(4679) => [
q(Muniche),
],
- q(4688) => [
+ q(4680) => [
q(Mesmes),
],
- q(4689) => [
+ q(4681) => [
q(Munduruku),
],
- q(4690) => [
+ q(4682) => [
q(Muyuw),
],
- q(4691) => [
+ q(4683) => [
q(Masaaba),
],
- q(4692) => [
+ q(4684) => [
q(Macuna),
],
- q(4693) => [
+ q(4685) => [
q(Classical Mandaic),
],
- q(4694) => [
+ q(4686) => [
q(Santa Maria Zacatepec Mixtec),
],
- q(4695) => [
+ q(4687) => [
q(Tumzabt),
],
- q(4696) => [
+ q(4688) => [
q(Madagascar Sign Language),
],
- q(4697) => [
+ q(4689) => [
q(Malimba),
],
- q(4698) => [
+ q(4690) => [
q(Morawa),
],
- q(4699) => [
+ q(4691) => [
q(Monastic Sign Language),
],
- q(4700) => [
+ q(4692) => [
q(Wichi Lhamtes Guisnay),
],
- q(4701) => [
+ q(4693) => [
q(Ixcatlan Mazatec),
],
- q(4702) => [
+ q(4694) => [
q(Manya),
],
- q(4703) => [
+ q(4695) => [
q(Nigeria Mambila),
],
- q(4704) => [
+ q(4696) => [
q(Mazatlan Mixe),
],
- q(4705) => [
+ q(4697) => [
q(Mumuye),
],
- q(4706) => [
+ q(4698) => [
q(Mazanderani),
],
- q(4707) => [
+ q(4699) => [
q(Matipuhy),
],
- q(4708) => [
+ q(4700) => [
q(Movima),
],
- q(4709) => [
+ q(4701) => [
q(Mori Atas),
],
- q(4710) => [
+ q(4702) => [
q(Marubo),
],
- q(4711) => [
+ q(4703) => [
q(Macanese),
],
- q(4712) => [
+ q(4704) => [
q(Mintil),
],
- q(4713) => [
+ q(4705) => [
q(Inapang),
],
- q(4714) => [
+ q(4706) => [
q(Manza),
],
- q(4715) => [
+ q(4707) => [
q(Deg),
],
- q(4716) => [
+ q(4708) => [
q(Mawayana),
],
- q(4717) => [
+ q(4709) => [
q(Mozambican Sign Language),
],
- q(4718) => [
+ q(4710) => [
q(Maiadomu),
],
- q(4719) => [
+ q(4711) => [
q(Namla),
],
- q(4720) => [
+ q(4712) => [
q(Southern Nambikuara),
],
- q(4721) => [
+ q(4713) => [
q(Narak),
],
- q(4722) => [
- q(Nijadali),
- ],
- q(4723) => [
+ q(4714) => [
q(Naka'ela),
],
- q(4724) => [
+ q(4715) => [
q(Nabak),
],
- q(4725) => [
+ q(4716) => [
q(Naga Pidgin),
],
- q(4726) => [
+ q(4717) => [
q(Nalu),
],
- q(4727) => [
+ q(4718) => [
q(Nakanai),
],
- q(4728) => [
+ q(4719) => [
q(Nalik),
],
- q(4729) => [
+ q(4720) => [
q(Ngan'gityemerri),
],
- q(4730) => [
+ q(4721) => [
q(Min Nan Chinese),
],
- q(4731) => [
+ q(4722) => [
q(Naaba),
],
- q(4732) => [
+ q(4723) => [
q(Khoekhoe),
q(Nama (Namibia)),
],
- q(4733) => [
+ q(4724) => [
q(Iguta),
],
- q(4734) => [
+ q(4725) => [
q(Naasioi),
],
- q(4735) => [
+ q(4726) => [
q(Cahungwarya),
q(Hungworo),
],
- q(4736) => [
+ q(4727) => [
q(Nawuri),
],
- q(4737) => [
+ q(4728) => [
q(Nakwi),
],
- q(4738) => [
+ q(4729) => [
q(Narrinyeri),
],
- q(4739) => [
+ q(4730) => [
q(Coatepec Nahuatl),
],
- q(4740) => [
+ q(4731) => [
q(Nyemba),
],
- q(4741) => [
+ q(4732) => [
q(Ndoe),
],
- q(4742) => [
+ q(4733) => [
q(Chang Naga),
],
- q(4743) => [
+ q(4734) => [
q(Ngbinda),
],
- q(4744) => [
+ q(4735) => [
q(Konyak Naga),
],
- q(4745) => [
+ q(4736) => [
q(Nagarchal),
],
- q(4746) => [
+ q(4737) => [
q(Ngamo),
],
- q(4747) => [
+ q(4738) => [
q(Mao Naga),
],
- q(4748) => [
+ q(4739) => [
q(Ngarinman),
],
- q(4749) => [
+ q(4740) => [
q(Nake),
],
- q(4750) => [
+ q(4741) => [
q(Ngbaka Ma'bo),
],
- q(4751) => [
+ q(4742) => [
q(Kuri),
],
- q(4752) => [
+ q(4743) => [
q(Nkukoli),
],
- q(4753) => [
+ q(4744) => [
q(Nnam),
],
- q(4754) => [
+ q(4745) => [
q(Nggem),
],
- q(4755) => [
+ q(4746) => [
q(Numana-Nunku-Gbantu-Numbu),
],
- q(4756) => [
+ q(4747) => [
q(Namibian Sign Language),
],
- q(4757) => [
+ q(4748) => [
q(Na),
],
- q(4758) => [
+ q(4749) => [
q(Rongmei Naga),
],
- q(4759) => [
+ q(4750) => [
q(Ngamambo),
],
- q(4760) => [
+ q(4751) => [
q(Southern Ngbandi),
],
- q(4761) => [
+ q(4752) => [
q(Ningera),
],
- q(4762) => [
+ q(4753) => [
q(Iyo),
],
- q(4763) => [
+ q(4754) => [
q(Central Nicobarese),
],
- q(4764) => [
+ q(4755) => [
q(Ponam),
],
- q(4765) => [
+ q(4756) => [
q(Nachering),
],
- q(4766) => [
+ q(4757) => [
q(Yale),
],
- q(4767) => [
+ q(4758) => [
q(Notsi),
],
- q(4768) => [
+ q(4759) => [
q(Nisga'a),
],
- q(4769) => [
+ q(4760) => [
q(Central Huasteca Nahuatl),
],
- q(4770) => [
+ q(4761) => [
q(Classical Nahuatl),
],
- q(4771) => [
+ q(4762) => [
q(Northern Puebla Nahuatl),
],
- q(4772) => [
+ q(4763) => [
q(Nakara),
],
- q(4773) => [
+ q(4764) => [
q(Michoacan Nahuatl),
],
- q(4774) => [
+ q(4765) => [
q(Nambo),
],
- q(4775) => [
+ q(4766) => [
q(Nauna),
],
- q(4776) => [
+ q(4767) => [
q(Sibe),
],
- q(4777) => [
+ q(4768) => [
q(Ndaktup),
],
- q(4778) => [
+ q(4769) => [
q(Ncane),
],
- q(4779) => [
+ q(4770) => [
q(Nicaraguan Sign Language),
],
- q(4780) => [
+ q(4771) => [
q(Chothe Naga),
],
- q(4781) => [
+ q(4772) => [
q(Chumburung),
],
- q(4782) => [
+ q(4773) => [
q(Central Puebla Nahuatl),
],
- q(4783) => [
+ q(4774) => [
q(Natchez),
],
- q(4784) => [
+ q(4775) => [
q(Ndasa),
],
- q(4785) => [
+ q(4776) => [
q(Kenswei Nsei),
],
- q(4786) => [
+ q(4777) => [
q(Ndau),
],
- q(4787) => [
+ q(4778) => [
q(Nde-Nsele-Nta),
],
- q(4788) => [
+ q(4779) => [
q(Nadruvian),
],
- q(4789) => [
+ q(4780) => [
q(Ndengereko),
],
- q(4790) => [
+ q(4781) => [
q(Ndali),
],
- q(4791) => [
+ q(4782) => [
q(Samba Leko),
],
- q(4792) => [
+ q(4783) => [
q(Ndamba),
],
- q(4793) => [
+ q(4784) => [
q(Ndaka),
],
- q(4794) => [
+ q(4785) => [
q(Ndolo),
],
- q(4795) => [
+ q(4786) => [
q(Ndam),
],
- q(4796) => [
+ q(4787) => [
q(Ngundi),
],
- q(4797) => [
+ q(4788) => [
q(Ndo),
],
- q(4798) => [
+ q(4789) => [
q(Ndombe),
],
- q(4799) => [
+ q(4790) => [
q(Ndoola),
],
- q(4800) => [
+ q(4791) => [
q(Ndunga),
],
- q(4801) => [
+ q(4792) => [
q(Dugun),
],
- q(4802) => [
+ q(4793) => [
q(Ndut),
],
- q(4803) => [
+ q(4794) => [
q(Ndobo),
],
- q(4804) => [
+ q(4795) => [
q(Nduga),
],
- q(4805) => [
+ q(4796) => [
q(Lutos),
],
- q(4806) => [
+ q(4797) => [
q(Ndogo),
],
- q(4807) => [
+ q(4798) => [
q(Eastern Ngad'a),
],
- q(4808) => [
+ q(4799) => [
q(Toura (Cote d'Ivoire)),
],
- q(4809) => [
+ q(4800) => [
q(Nedebang),
],
- q(4810) => [
+ q(4801) => [
q(Nde-Gbite),
],
- q(4811) => [
+ q(4802) => [
q(Nelemwa-Nixumwak),
],
- q(4812) => [
+ q(4803) => [
q(Nefamese),
],
- q(4813) => [
+ q(4804) => [
q(Negidal),
],
- q(4814) => [
+ q(4805) => [
q(Nyenkha),
],
- q(4815) => [
+ q(4806) => [
q(Neo-Hittite),
],
- q(4816) => [
+ q(4807) => [
q(Neko),
],
- q(4817) => [
+ q(4808) => [
q(Neku),
],
- q(4818) => [
+ q(4809) => [
q(Nemi),
],
- q(4819) => [
+ q(4810) => [
q(Nengone),
],
- q(4820) => [
+ q(4811) => [
q(Na-Meo),
],
- q(4821) => [
+ q(4812) => [
q(North Central Mixe),
],
- q(4822) => [
+ q(4813) => [
q(Yahadian),
],
- q(4823) => [
+ q(4814) => [
q(Bhoti Kinnauri),
],
- q(4824) => [
+ q(4815) => [
q(Nete),
],
- q(4825) => [
+ q(4816) => [
q(Neo),
],
- q(4826) => [
+ q(4817) => [
q(Nyaheun),
],
- q(4827) => [
+ q(4818) => [
q(Neme),
],
- q(4828) => [
+ q(4819) => [
q(Neyo),
],
- q(4829) => [
+ q(4820) => [
q(Nez Perce),
],
- q(4830) => [
+ q(4821) => [
q(Dhao),
],
- q(4831) => [
+ q(4822) => [
q(Ahwai),
],
- q(4832) => [
+ q(4823) => [
q(Ayiwo),
q(Aiwoo),
],
- q(4833) => [
+ q(4824) => [
q(Nafaanra),
],
- q(4834) => [
+ q(4825) => [
q(Mfumte),
],
- q(4835) => [
+ q(4826) => [
q(Ngbaka),
],
- q(4836) => [
+ q(4827) => [
q(Northern Ngbandi),
],
- q(4837) => [
+ q(4828) => [
q(Ngombe (Democratic Republic of Congo)),
],
- q(4838) => [
+ q(4829) => [
q(Ngando (Central African Republic)),
],
- q(4839) => [
+ q(4830) => [
q(Ngemba),
],
- q(4840) => [
+ q(4831) => [
q(Ngbaka Manza),
],
- q(4841) => [
+ q(4832) => [
q(N/u),
q(Nu),
],
- q(4842) => [
+ q(4833) => [
q(Ngizim),
],
- q(4843) => [
+ q(4834) => [
q(Ngie),
],
- q(4844) => [
+ q(4835) => [
q(Dalabon),
],
- q(4845) => [
+ q(4836) => [
q(Lomwe),
],
- q(4846) => [
+ q(4837) => [
q(Ngatik Men's Creole),
],
- q(4847) => [
+ q(4838) => [
q(Ngwo),
],
- q(4848) => [
+ q(4839) => [
q(Ngoni),
],
- q(4849) => [
+ q(4840) => [
q(Ngulu),
],
- q(4850) => [
+ q(4841) => [
q(Ngurimi),
q(Ngoreme),
],
- q(4851) => [
+ q(4842) => [
q(Engdewu),
],
- q(4852) => [
+ q(4843) => [
q(Gvoko),
],
- q(4853) => [
+ q(4844) => [
q(Ngeq),
],
- q(4854) => [
+ q(4845) => [
q(Guerrero Nahuatl),
],
- q(4855) => [
+ q(4846) => [
q(Nagumi),
],
- q(4856) => [
+ q(4847) => [
q(Ngwaba),
],
- q(4857) => [
+ q(4848) => [
q(Nggwahyi),
],
- q(4858) => [
+ q(4849) => [
q(Tibea),
],
- q(4859) => [
+ q(4850) => [
q(Ngungwel),
],
- q(4860) => [
+ q(4851) => [
q(Nhanda),
],
- q(4861) => [
+ q(4852) => [
q(Beng),
],
- q(4862) => [
+ q(4853) => [
q(Tabasco Nahuatl),
],
- q(4863) => [
+ q(4854) => [
q(Chiripa),
q(Ava Guarani),
],
- q(4864) => [
+ q(4855) => [
q(Eastern Huasteca Nahuatl),
],
- q(4865) => [
+ q(4856) => [
q(Nhuwala),
],
- q(4866) => [
+ q(4857) => [
q(Tetelcingo Nahuatl),
],
- q(4867) => [
+ q(4858) => [
q(Nahari),
],
- q(4868) => [
+ q(4859) => [
q(Zacatlan-Ahuacatlan-Tepetzintla Nahuatl),
],
- q(4869) => [
+ q(4860) => [
q(Isthmus-Cosoleacaque Nahuatl),
],
- q(4870) => [
+ q(4861) => [
q(Morelos Nahuatl),
],
- q(4871) => [
+ q(4862) => [
q(Central Nahuatl),
],
- q(4872) => [
+ q(4863) => [
q(Takuu),
],
- q(4873) => [
+ q(4864) => [
q(Isthmus-Pajapan Nahuatl),
],
- q(4874) => [
+ q(4865) => [
q(Huaxcaleca Nahuatl),
],
- q(4875) => [
+ q(4866) => [
q(Naro),
],
- q(4876) => [
+ q(4867) => [
q(Ometepec Nahuatl),
],
- q(4877) => [
+ q(4868) => [
q(Noone),
],
- q(4878) => [
+ q(4869) => [
q(Temascaltepec Nahuatl),
],
- q(4879) => [
+ q(4870) => [
q(Western Huasteca Nahuatl),
],
- q(4880) => [
+ q(4871) => [
q(Isthmus-Mecayapan Nahuatl),
],
- q(4881) => [
+ q(4872) => [
q(Northern Oaxaca Nahuatl),
],
- q(4882) => [
+ q(4873) => [
q(Santa Maria La Alta Nahuatl),
],
- q(4883) => [
+ q(4874) => [
q(Nakame),
],
- q(4884) => [
+ q(4875) => [
q(Ngandi),
],
- q(4885) => [
+ q(4876) => [
q(Niellim),
],
- q(4886) => [
+ q(4877) => [
q(Nek),
],
- q(4887) => [
+ q(4878) => [
q(Ngalakan),
],
- q(4888) => [
+ q(4879) => [
q(Nyiha (Tanzania)),
],
- q(4889) => [
+ q(4880) => [
q(Nii),
],
- q(4890) => [
+ q(4881) => [
q(Ngaju),
],
- q(4891) => [
+ q(4882) => [
q(Southern Nicobarese),
],
- q(4892) => [
+ q(4883) => [
q(Nila),
],
- q(4893) => [
+ q(4884) => [
q(Nilamba),
],
- q(4894) => [
+ q(4885) => [
q(Ninzo),
],
- q(4895) => [
+ q(4886) => [
q(Nganasan),
],
- q(4896) => [
+ q(4887) => [
q(Nandi),
],
- q(4897) => [
+ q(4888) => [
q(Nimboran),
],
- q(4898) => [
+ q(4889) => [
q(Nimi),
],
- q(4899) => [
+ q(4890) => [
q(Southeastern Kolami),
],
- q(4900) => [
+ q(4891) => [
q(Gilyak),
],
- q(4901) => [
+ q(4892) => [
q(Nimo),
],
- q(4902) => [
+ q(4893) => [
q(Hema),
],
- q(4903) => [
+ q(4894) => [
q(Ngiti),
],
- q(4904) => [
+ q(4895) => [
q(Ningil),
],
- q(4905) => [
+ q(4896) => [
q(Nzanyi),
],
- q(4906) => [
+ q(4897) => [
q(Nocte Naga),
],
- q(4907) => [
+ q(4898) => [
q(Ndonde Hamba),
],
- q(4908) => [
+ q(4899) => [
q(Lotha Naga),
],
- q(4909) => [
+ q(4900) => [
q(Gudanji),
],
- q(4910) => [
+ q(4901) => [
q(Njen),
],
- q(4911) => [
+ q(4902) => [
q(Njalgulgule),
],
- q(4912) => [
+ q(4903) => [
q(Angami Naga),
],
- q(4913) => [
+ q(4904) => [
q(Liangmai Naga),
],
- q(4914) => [
+ q(4905) => [
q(Ao Naga),
],
- q(4915) => [
+ q(4906) => [
q(Njerep),
],
- q(4916) => [
+ q(4907) => [
q(Nisa),
],
- q(4917) => [
+ q(4908) => [
q(Ndyuka-Trio Pidgin),
],
- q(4918) => [
+ q(4909) => [
q(Ngadjunmaya),
],
- q(4919) => [
+ q(4910) => [
q(Kunyi),
],
- q(4920) => [
+ q(4911) => [
q(Njyem),
],
- q(4921) => [
+ q(4912) => [
q(Nyishi),
],
- q(4922) => [
+ q(4913) => [
q(Nkoya),
],
- q(4923) => [
+ q(4914) => [
q(Khoibu Naga),
],
- q(4924) => [
+ q(4915) => [
q(Nkongho),
],
- q(4925) => [
+ q(4916) => [
q(Koireng),
],
- q(4926) => [
+ q(4917) => [
q(Duke),
],
- q(4927) => [
+ q(4918) => [
q(Inpui Naga),
],
- q(4928) => [
+ q(4919) => [
q(Nekgini),
],
- q(4929) => [
+ q(4920) => [
q(Khezha Naga),
],
- q(4930) => [
+ q(4921) => [
q(Thangal Naga),
],
- q(4931) => [
+ q(4922) => [
q(Nakai),
],
- q(4932) => [
+ q(4923) => [
q(Nokuku),
],
- q(4933) => [
+ q(4924) => [
q(Namat),
],
- q(4934) => [
+ q(4925) => [
q(Nkangala),
],
- q(4935) => [
+ q(4926) => [
q(Nkonya),
],
- q(4936) => [
+ q(4927) => [
q(Niuatoputapu),
],
- q(4937) => [
+ q(4928) => [
q(Nkami),
],
- q(4938) => [
+ q(4929) => [
q(Nukuoro),
],
- q(4939) => [
+ q(4930) => [
q(North Asmat),
],
- q(4940) => [
+ q(4931) => [
q(Nyika (Tanzania)),
],
- q(4941) => [
+ q(4932) => [
q(Bouna Kulango),
],
- q(4942) => [
+ q(4933) => [
q(Nyika (Malawi and Zambia)),
],
- q(4943) => [
+ q(4934) => [
q(Nkutu),
],
- q(4944) => [
+ q(4935) => [
q(Nkoroo),
],
- q(4945) => [
+ q(4936) => [
q(Nkari),
],
- q(4946) => [
+ q(4937) => [
q(Ngombale),
],
- q(4947) => [
+ q(4938) => [
q(Nalca),
],
- q(4948) => [
+ q(4939) => [
q(East Nyala),
],
- q(4949) => [
+ q(4940) => [
q(Gela),
],
- q(4950) => [
+ q(4941) => [
q(Grangali),
],
- q(4951) => [
+ q(4942) => [
q(Nyali),
],
- q(4952) => [
+ q(4943) => [
q(Ninia Yali),
],
- q(4953) => [
+ q(4944) => [
q(Nihali),
],
- q(4954) => [
+ q(4945) => [
q(Ngul),
],
- q(4955) => [
+ q(4946) => [
q(Lao Naga),
],
- q(4956) => [
+ q(4947) => [
q(Nchumbulu),
],
- q(4957) => [
+ q(4948) => [
q(Orizaba Nahuatl),
],
- q(4958) => [
+ q(4949) => [
q(Walangama),
],
- q(4959) => [
+ q(4950) => [
q(Nahali),
],
- q(4960) => [
+ q(4951) => [
q(Nyamal),
],
- q(4961) => [
+ q(4952) => [
q(Nalogo),
],
- q(4962) => [
+ q(4953) => [
q(Maram Naga),
],
- q(4963) => [
+ q(4954) => [
q(Big Nambas),
q(V'enen Taut),
],
- q(4964) => [
+ q(4955) => [
q(Ngam),
],
- q(4965) => [
+ q(4956) => [
q(Ndumu),
],
- q(4966) => [
+ q(4957) => [
q(Mzieme Naga),
],
- q(4967) => [
+ q(4958) => [
q(Tangkhul Naga (India)),
],
- q(4968) => [
+ q(4959) => [
q(Kwasio),
],
- q(4969) => [
+ q(4960) => [
q(Monsang Naga),
],
- q(4970) => [
+ q(4961) => [
q(Nyam),
],
- q(4971) => [
+ q(4962) => [
q(Ngombe (Central African Republic)),
],
- q(4972) => [
+ q(4963) => [
q(Namakura),
],
- q(4973) => [
+ q(4964) => [
q(Ndemli),
],
- q(4974) => [
+ q(4965) => [
q(Manangba),
],
- q(4975) => [
+ q(4966) => [
q(!Xoo),
q(Xoo),
],
- q(4976) => [
+ q(4967) => [
q(Moyon Naga),
],
- q(4977) => [
+ q(4968) => [
q(Nimanbur),
],
- q(4978) => [
+ q(4969) => [
q(Nambya),
],
- q(4979) => [
+ q(4970) => [
q(Nimbari),
],
- q(4980) => [
+ q(4971) => [
q(Letemboi),
],
- q(4981) => [
+ q(4972) => [
q(Namonuito),
],
- q(4982) => [
+ q(4973) => [
q(Northeast Maidu),
],
- q(4983) => [
+ q(4974) => [
q(Ngamini),
],
- q(4984) => [
+ q(4975) => [
q(Nimoa),
q(Rifao),
],
- q(4985) => [
+ q(4976) => [
q(Nama (Papua New Guinea)),
],
- q(4986) => [
+ q(4977) => [
q(Namuyi),
],
- q(4987) => [
+ q(4978) => [
q(Nawdm),
],
- q(4988) => [
+ q(4979) => [
q(Nyangumarta),
],
- q(4989) => [
+ q(4980) => [
q(Nande),
],
- q(4990) => [
+ q(4981) => [
q(Nancere),
],
- q(4991) => [
+ q(4982) => [
q(West Ambae),
],
- q(4992) => [
+ q(4983) => [
q(Ngandyera),
],
- q(4993) => [
+ q(4984) => [
q(Ngaing),
],
- q(4994) => [
+ q(4985) => [
q(Maring Naga),
],
- q(4995) => [
+ q(4986) => [
q(Ngiemboon),
],
- q(4996) => [
+ q(4987) => [
q(North Nuaulu),
],
- q(4997) => [
+ q(4988) => [
q(Nyangatom),
],
- q(4998) => [
+ q(4989) => [
q(Nankina),
],
- q(4999) => [
+ q(4990) => [
q(Northern Rengma Naga),
],
- q(5000) => [
+ q(4991) => [
q(Namia),
],
- q(5001) => [
+ q(4992) => [
q(Ngete),
],
- q(5002) => [
+ q(4993) => [
q(Wancho Naga),
],
- q(5003) => [
+ q(4994) => [
q(Ngindo),
],
- q(5004) => [
+ q(4995) => [
q(Narungga),
],
- q(5005) => [
+ q(4996) => [
q(Ningye),
],
- q(5006) => [
+ q(4997) => [
q(Nanticoke),
],
- q(5007) => [
+ q(4998) => [
q(Dwang),
],
- q(5008) => [
+ q(4999) => [
q(Nugunu (Australia)),
],
- q(5009) => [
+ q(5000) => [
q(Southern Nuni),
],
- q(5010) => [
+ q(5001) => [
q(Nyangga),
],
- q(5011) => [
+ q(5002) => [
q(Nda'nda'),
],
- q(5012) => [
+ q(5003) => [
q(Woun Meu),
],
- q(5013) => [
+ q(5004) => [
q(Nuk),
],
- q(5014) => [
+ q(5005) => [
q(Northern Thai),
],
- q(5015) => [
+ q(5006) => [
q(Nimadi),
],
- q(5016) => [
+ q(5007) => [
q(Nomane),
],
- q(5017) => [
+ q(5008) => [
q(Nomu),
],
- q(5018) => [
+ q(5009) => [
q(Noiri),
],
- q(5019) => [
+ q(5010) => [
q(Nonuya),
],
- q(5020) => [
+ q(5011) => [
q(Nooksack),
],
- q(5021) => [
+ q(5012) => [
q(Nomlaki),
],
- q(5022) => [
+ q(5013) => [
q(Nocaman),
],
- q(5023) => [
+ q(5014) => [
q(Numanggang),
],
- q(5024) => [
+ q(5015) => [
q(Ngongo),
],
- q(5025) => [
+ q(5016) => [
q(Eastern Nisu),
],
- q(5026) => [
+ q(5017) => [
q(Nomatsiguenga),
],
- q(5027) => [
+ q(5018) => [
q(Ewage-Notu),
],
- q(5028) => [
+ q(5019) => [
q(Novial),
],
- q(5029) => [
+ q(5020) => [
q(Nyambo),
],
- q(5030) => [
+ q(5021) => [
q(Noy),
],
- q(5031) => [
+ q(5022) => [
q(Nayi),
],
- q(5032) => [
+ q(5023) => [
q(Nar Phu),
],
- q(5033) => [
+ q(5024) => [
q(Nupbikha),
],
- q(5034) => [
+ q(5025) => [
q(Ponyo-Gongwang Naga),
],
- q(5035) => [
+ q(5026) => [
q(Phom Naga),
],
- q(5036) => [
+ q(5027) => [
q(Nepali (individual language)),
],
- q(5037) => [
+ q(5028) => [
q(Southeastern Puebla Nahuatl),
],
- q(5038) => [
+ q(5029) => [
q(Mondropolon),
],
- q(5039) => [
+ q(5030) => [
q(Pochuri Naga),
],
- q(5040) => [
+ q(5031) => [
q(Nipsan),
],
- q(5041) => [
+ q(5032) => [
q(Puimei Naga),
],
- q(5042) => [
+ q(5033) => [
q(Napu),
],
- q(5043) => [
+ q(5034) => [
q(Southern Nago),
],
- q(5044) => [
+ q(5035) => [
q(Kura Ede Nago),
],
- q(5045) => [
+ q(5036) => [
q(Ndom),
],
- q(5046) => [
+ q(5037) => [
q(Nen),
],
- q(5047) => [
+ q(5038) => [
q(Kyan-Karyaw Naga),
],
- q(5048) => [
+ q(5039) => [
q(Akyaung Ari Naga),
],
- q(5049) => [
+ q(5040) => [
q(Ngom),
],
- q(5050) => [
+ q(5041) => [
q(Nara),
],
- q(5051) => [
+ q(5042) => [
q(Noric),
],
- q(5052) => [
+ q(5043) => [
q(Southern Rengma Naga),
],
- q(5053) => [
+ q(5044) => [
q(Jerriais),
q(Guernesiais),
],
- q(5054) => [
+ q(5045) => [
q(Narango),
],
- q(5055) => [
+ q(5046) => [
q(Chokri Naga),
],
- q(5056) => [
+ q(5047) => [
q(Ngarla),
],
- q(5057) => [
+ q(5048) => [
q(Ngarluma),
],
- q(5058) => [
+ q(5049) => [
q(Narom),
],
- q(5059) => [
+ q(5050) => [
q(Norn),
],
- q(5060) => [
+ q(5051) => [
q(North Picene),
],
- q(5061) => [
+ q(5052) => [
q(Norra),
q(Nora),
],
- q(5062) => [
+ q(5053) => [
q(Northern Kalapuya),
],
- q(5063) => [
+ q(5054) => [
q(Narua),
],
- q(5064) => [
+ q(5055) => [
q(Ngurmbur),
],
- q(5065) => [
+ q(5056) => [
q(Lala),
],
- q(5066) => [
+ q(5057) => [
q(Sangtam Naga),
],
- q(5067) => [
+ q(5058) => [
q(Nshi),
],
- q(5068) => [
+ q(5059) => [
q(Southern Nisu),
],
- q(5069) => [
+ q(5060) => [
q(Nsenga),
],
- q(5070) => [
+ q(5061) => [
q(Northwestern Nisu),
],
- q(5071) => [
+ q(5062) => [
q(Ngasa),
],
- q(5072) => [
+ q(5063) => [
q(Ngoshie),
],
- q(5073) => [
+ q(5064) => [
q(Nigerian Sign Language),
],
- q(5074) => [
+ q(5065) => [
q(Naskapi),
],
- q(5075) => [
+ q(5066) => [
q(Norwegian Sign Language),
],
- q(5076) => [
+ q(5067) => [
q(Sumi Naga),
],
- q(5077) => [
+ q(5068) => [
q(Nehan),
],
- q(5078) => [
+ q(5069) => [
q(Nepalese Sign Language),
],
- q(5079) => [
+ q(5070) => [
q(Northern Sierra Miwok),
],
- q(5080) => [
+ q(5071) => [
q(Maritime Sign Language),
],
- q(5081) => [
+ q(5072) => [
q(Nali),
],
- q(5082) => [
+ q(5073) => [
q(Tase Naga),
],
- q(5083) => [
+ q(5074) => [
q(Sierra Negra Nahuatl),
],
- q(5084) => [
+ q(5075) => [
q(Southwestern Nisu),
],
- q(5085) => [
+ q(5076) => [
q(Navut),
],
- q(5086) => [
+ q(5077) => [
q(Nsongo),
],
- q(5087) => [
+ q(5078) => [
q(Nasal),
],
- q(5088) => [
+ q(5079) => [
q(Nisenan),
],
- q(5089) => [
+ q(5080) => [
+ q(Northern Tidung),
+ ],
+ q(5081) => [
q(Nathembo),
],
- q(5090) => [
+ q(5082) => [
q(Ngantangarra),
],
- q(5091) => [
+ q(5083) => [
q(Natioro),
],
- q(5092) => [
+ q(5084) => [
q(Ngaanyatjarra),
],
- q(5093) => [
+ q(5085) => [
q(Ikoma-Nata-Isenye),
],
- q(5094) => [
+ q(5086) => [
q(Nateni),
],
- q(5095) => [
+ q(5087) => [
q(Ntomba),
],
- q(5096) => [
+ q(5088) => [
q(Northern Tepehuan),
],
- q(5097) => [
+ q(5089) => [
q(Delo),
],
- q(5098) => [
- q(Natagaimas),
- ],
- q(5099) => [
+ q(5090) => [
q(Natugu),
],
- q(5100) => [
+ q(5091) => [
q(Nottoway),
],
- q(5101) => [
+ q(5092) => [
q(Tangkhul Naga (Myanmar)),
],
- q(5102) => [
+ q(5093) => [
q(Mantsi),
],
- q(5103) => [
+ q(5094) => [
q(Natanzi),
],
- q(5104) => [
+ q(5095) => [
q(Yuanga),
],
- q(5105) => [
+ q(5096) => [
q(Nukuini),
],
- q(5106) => [
+ q(5097) => [
q(Ngala),
],
- q(5107) => [
+ q(5098) => [
q(Ngundu),
],
- q(5108) => [
+ q(5099) => [
q(Nusu),
],
- q(5109) => [
+ q(5100) => [
q(Nungali),
],
- q(5110) => [
+ q(5101) => [
q(Ndunda),
],
- q(5111) => [
+ q(5102) => [
q(Ngumbi),
],
- q(5112) => [
+ q(5103) => [
q(Nyole),
],
- q(5113) => [
+ q(5104) => [
q(Nuu-chah-nulth),
q(Nuuchahnulth),
],
- q(5114) => [
+ q(5105) => [
q(Nusa Laut),
],
- q(5115) => [
+ q(5106) => [
q(Niuafo'ou),
],
- q(5116) => [
+ q(5107) => [
q(Anong),
],
- q(5117) => [
+ q(5108) => [
q(Nguon),
],
- q(5118) => [
+ q(5109) => [
q(Nupe-Nupe-Tako),
],
- q(5119) => [
+ q(5110) => [
q(Nukumanu),
],
- q(5120) => [
+ q(5111) => [
q(Nukuria),
],
- q(5121) => [
+ q(5112) => [
q(Nuer),
],
- q(5122) => [
+ q(5113) => [
q(Nung (Viet Nam)),
],
- q(5123) => [
+ q(5114) => [
q(Ngbundu),
],
- q(5124) => [
+ q(5115) => [
q(Northern Nuni),
],
- q(5125) => [
+ q(5116) => [
q(Nguluwan),
],
- q(5126) => [
+ q(5117) => [
q(Mehek),
],
- q(5127) => [
+ q(5118) => [
q(Nunggubuyu),
],
- q(5128) => [
+ q(5119) => [
q(Tlamacazapa Nahuatl),
],
- q(5129) => [
+ q(5120) => [
q(Nasarian),
],
- q(5130) => [
+ q(5121) => [
q(Namiae),
],
- q(5131) => [
+ q(5122) => [
q(Nyokon),
],
- q(5132) => [
+ q(5123) => [
q(Nawathinehena),
],
- q(5133) => [
+ q(5124) => [
q(Nyabwa),
],
- q(5134) => [
+ q(5125) => [
q(Ngwe),
],
- q(5135) => [
+ q(5126) => [
q(Ngayawung),
],
- q(5136) => [
+ q(5127) => [
q(Southwest Tanna),
],
- q(5137) => [
+ q(5128) => [
q(Nyamusa-Molo),
],
- q(5138) => [
+ q(5129) => [
q(Nauo),
],
- q(5139) => [
+ q(5130) => [
q(Nawaru),
],
- q(5140) => [
+ q(5131) => [
q(Middle Newar),
],
- q(5141) => [
+ q(5132) => [
q(Nottoway-Meherrin),
],
- q(5142) => [
+ q(5133) => [
q(Nauete),
],
- q(5143) => [
+ q(5134) => [
q(Ngando (Democratic Republic of Congo)),
],
- q(5144) => [
+ q(5135) => [
q(Nage),
],
- q(5145) => [
+ q(5136) => [
q(Ngad'a),
],
- q(5146) => [
+ q(5137) => [
q(Nindi),
],
- q(5147) => [
+ q(5138) => [
q(Koki Naga),
],
- q(5148) => [
+ q(5139) => [
q(South Nuaulu),
],
- q(5149) => [
+ q(5140) => [
q(Numidian),
],
- q(5150) => [
+ q(5141) => [
q(Ngawun),
],
- q(5151) => [
+ q(5142) => [
q(Ndambomo),
],
- q(5152) => [
+ q(5143) => [
q(Naxi),
],
- q(5153) => [
+ q(5144) => [
q(Ninggerum),
],
- q(5154) => [
+ q(5145) => [
q(Narau),
],
- q(5155) => [
+ q(5146) => [
q(Nafri),
],
- q(5156) => [
+ q(5147) => [
q(Nyangbo),
],
- q(5157) => [
+ q(5148) => [
q(Nyanga-li),
],
- q(5158) => [
+ q(5149) => [
q(Nyore),
q(Olunyole),
],
- q(5159) => [
+ q(5150) => [
q(Nyengo),
],
- q(5160) => [
+ q(5151) => [
q(Giryama),
q(Kigiryama),
],
- q(5161) => [
+ q(5152) => [
q(Nyindu),
],
- q(5162) => [
+ q(5153) => [
q(Nyigina),
],
- q(5163) => [
+ q(5154) => [
q(Ama (Sudan)),
],
- q(5164) => [
+ q(5155) => [
q(Nyanga),
],
- q(5165) => [
+ q(5156) => [
q(Nyaneka),
],
- q(5166) => [
+ q(5157) => [
q(Nyeu),
],
- q(5167) => [
+ q(5158) => [
q(Nyang'i),
],
- q(5168) => [
+ q(5159) => [
q(Nayini),
],
- q(5169) => [
+ q(5160) => [
q(Nyiha (Malawi)),
],
- q(5170) => [
+ q(5161) => [
q(Nyunga),
],
- q(5171) => [
+ q(5162) => [
q(Nyawaygi),
],
- q(5172) => [
+ q(5163) => [
q(Nyungwe),
],
- q(5173) => [
+ q(5164) => [
q(Nyulnyul),
],
- q(5174) => [
+ q(5165) => [
q(Nyaw),
],
- q(5175) => [
+ q(5166) => [
q(Nganyaywana),
],
- q(5176) => [
+ q(5167) => [
q(Nyakyusa-Ngonde),
],
- q(5177) => [
+ q(5168) => [
q(Tigon Mbembe),
],
- q(5178) => [
+ q(5169) => [
q(Njebi),
],
- q(5179) => [
+ q(5170) => [
q(Nzakara),
],
- q(5180) => [
+ q(5171) => [
q(Zeme Naga),
],
- q(5181) => [
+ q(5172) => [
q(New Zealand Sign Language),
],
- q(5182) => [
+ q(5173) => [
q(Teke-Nzikou),
],
- q(5183) => [
+ q(5174) => [
q(Nzakambay),
],
- q(5184) => [
+ q(5175) => [
q(Nanga Dama Dogon),
],
- q(5185) => [
+ q(5176) => [
q(Orok),
],
- q(5186) => [
+ q(5177) => [
q(Oroch),
],
- q(5187) => [
+ q(5178) => [
q(Old Aramaic (up to 700 BCE)),
q(Ancient Aramaic (up to 700 BCE)),
],
- q(5188) => [
+ q(5179) => [
q(Old Avar),
],
- q(5189) => [
+ q(5180) => [
q(Obispeno),
],
- q(5190) => [
+ q(5181) => [
q(Southern Bontok),
],
- q(5191) => [
+ q(5182) => [
q(Oblo),
],
- q(5192) => [
+ q(5183) => [
q(Moabite),
],
- q(5193) => [
+ q(5184) => [
q(Obo Manobo),
],
- q(5194) => [
+ q(5185) => [
q(Old Burmese),
],
- q(5195) => [
+ q(5186) => [
q(Old Breton),
],
- q(5196) => [
+ q(5187) => [
q(Obulom),
],
- q(5197) => [
+ q(5188) => [
q(Ocaina),
],
- q(5198) => [
+ q(5189) => [
q(Old Chinese),
],
- q(5199) => [
+ q(5190) => [
q(Old Cornish),
],
- q(5200) => [
+ q(5191) => [
q(Atzingo Matlatzinca),
],
- q(5201) => [
+ q(5192) => [
q(Odut),
],
- q(5202) => [
+ q(5193) => [
q(Od),
],
- q(5203) => [
+ q(5194) => [
q(Old Dutch),
],
- q(5204) => [
+ q(5195) => [
q(Odual),
],
- q(5205) => [
+ q(5196) => [
q(Ofo),
],
- q(5206) => [
+ q(5197) => [
q(Old Frisian),
],
- q(5207) => [
+ q(5198) => [
q(Efutop),
],
- q(5208) => [
+ q(5199) => [
q(Ogbia),
],
- q(5209) => [
+ q(5200) => [
q(Ogbah),
],
- q(5210) => [
+ q(5201) => [
q(Old Georgian),
],
- q(5211) => [
+ q(5202) => [
q(Ogbogolo),
],
- q(5212) => [
+ q(5203) => [
q(Khana),
],
- q(5213) => [
+ q(5204) => [
q(Ogbronuagum),
],
- q(5214) => [
+ q(5205) => [
q(Old Hittite),
],
- q(5215) => [
+ q(5206) => [
q(Old Hungarian),
],
- q(5216) => [
+ q(5207) => [
q(Oirata),
],
- q(5217) => [
+ q(5208) => [
q(Inebu One),
],
- q(5218) => [
+ q(5209) => [
q(Northwestern Ojibwa),
],
- q(5219) => [
+ q(5210) => [
q(Central Ojibwa),
],
- q(5220) => [
+ q(5211) => [
q(Eastern Ojibwa),
],
- q(5221) => [
+ q(5212) => [
q(Old Japanese),
],
- q(5222) => [
+ q(5213) => [
q(Severn Ojibwa),
],
- q(5223) => [
+ q(5214) => [
q(Ontong Java),
],
- q(5224) => [
+ q(5215) => [
q(Western Ojibwa),
],
- q(5225) => [
+ q(5216) => [
q(Okanagan),
],
- q(5226) => [
+ q(5217) => [
q(Okobo),
],
- q(5227) => [
+ q(5218) => [
q(Okodia),
],
- q(5228) => [
+ q(5219) => [
q(Okpe (Southwestern Edo)),
],
- q(5229) => [
+ q(5220) => [
q(Koko Babangk),
],
- q(5230) => [
+ q(5221) => [
q(Koresh-e Rostam),
],
- q(5231) => [
+ q(5222) => [
q(Okiek),
],
- q(5232) => [
+ q(5223) => [
q(Oko-Juwoi),
],
- q(5233) => [
+ q(5224) => [
q(Kwamtim One),
],
- q(5234) => [
+ q(5225) => [
q(Old Kentish Sign Language),
],
- q(5235) => [
+ q(5226) => [
q(Middle Korean (10th-16th cent.)),
],
- q(5236) => [
+ q(5227) => [
q(Oki-No-Erabu),
],
- q(5237) => [
+ q(5228) => [
q(Old Korean (3rd-9th cent.)),
],
- q(5238) => [
+ q(5229) => [
q(Kirike),
],
- q(5239) => [
+ q(5230) => [
q(Oko-Eni-Osayen),
],
- q(5240) => [
+ q(5231) => [
q(Oku),
],
- q(5241) => [
+ q(5232) => [
q(Orokaiva),
],
- q(5242) => [
+ q(5233) => [
q(Okpe (Northwestern Edo)),
],
- q(5243) => [
+ q(5234) => [
q(Walungge),
],
- q(5244) => [
+ q(5235) => [
q(Mochi),
],
- q(5245) => [
+ q(5236) => [
q(Olekha),
],
- q(5246) => [
+ q(5237) => [
q(Olkol),
],
- q(5247) => [
+ q(5238) => [
q(Oloma),
],
- q(5248) => [
+ q(5239) => [
q(Livvi),
],
- q(5249) => [
+ q(5240) => [
q(Olrat),
],
- q(5250) => [
+ q(5241) => [
q(Old Lithuanian),
],
- q(5251) => [
+ q(5242) => [
+ q(Kuvale),
+ ],
+ q(5243) => [
q(Omaha-Ponca),
],
- q(5252) => [
+ q(5244) => [
q(East Ambae),
],
- q(5253) => [
+ q(5245) => [
q(Mochica),
],
- q(5254) => [
- q(Omejes),
- ],
- q(5255) => [
+ q(5246) => [
q(Omagua),
],
- q(5256) => [
+ q(5247) => [
q(Omi),
],
- q(5257) => [
+ q(5248) => [
q(Omok),
],
- q(5258) => [
+ q(5249) => [
q(Ombo),
],
- q(5259) => [
+ q(5250) => [
q(Minoan),
],
- q(5260) => [
+ q(5251) => [
q(Utarmbung),
],
- q(5261) => [
+ q(5252) => [
q(Old Manipuri),
],
- q(5262) => [
+ q(5253) => [
q(Old Marathi),
],
- q(5263) => [
+ q(5254) => [
q(Omotik),
],
- q(5264) => [
+ q(5255) => [
q(Omurano),
],
- q(5265) => [
+ q(5256) => [
q(South Tairora),
],
- q(5266) => [
+ q(5257) => [
q(Old Mon),
],
- q(5267) => [
+ q(5258) => [
q(Ona),
],
- q(5268) => [
+ q(5259) => [
q(Lingao),
],
- q(5269) => [
+ q(5260) => [
q(Oneida),
],
- q(5270) => [
+ q(5261) => [
q(Olo),
],
- q(5271) => [
+ q(5262) => [
q(Onin),
],
- q(5272) => [
+ q(5263) => [
q(Onjob),
],
- q(5273) => [
+ q(5264) => [
q(Kabore One),
],
- q(5274) => [
+ q(5265) => [
q(Onobasulu),
],
- q(5275) => [
+ q(5266) => [
q(Onondaga),
],
- q(5276) => [
+ q(5267) => [
q(Sartang),
],
- q(5277) => [
+ q(5268) => [
q(Northern One),
],
- q(5278) => [
+ q(5269) => [
q(Ono),
],
- q(5279) => [
+ q(5270) => [
q(Ontenu),
],
- q(5280) => [
+ q(5271) => [
q(Unua),
],
- q(5281) => [
+ q(5272) => [
q(Old Nubian),
],
- q(5282) => [
+ q(5273) => [
q(Onin Based Pidgin),
],
- q(5283) => [
+ q(5274) => [
q(Tohono O'odham),
],
- q(5284) => [
+ q(5275) => [
q(Ong),
],
- q(5285) => [
+ q(5276) => [
q(Onge),
],
- q(5286) => [
+ q(5277) => [
q(Oorlams),
],
- q(5287) => [
+ q(5278) => [
q(Old Ossetic),
],
- q(5288) => [
+ q(5279) => [
q(Okpamheri),
],
- q(5289) => [
+ q(5280) => [
q(Kopkaka),
],
- q(5290) => [
+ q(5281) => [
q(Oksapmin),
],
- q(5291) => [
+ q(5282) => [
q(Opao),
],
- q(5292) => [
+ q(5283) => [
q(Opata),
],
- q(5293) => [
+ q(5284) => [
q(Ofaye),
],
- q(5294) => [
+ q(5285) => [
q(Oroha),
],
- q(5295) => [
+ q(5286) => [
q(Orma),
],
- q(5296) => [
+ q(5287) => [
q(Orejon),
],
- q(5297) => [
+ q(5288) => [
q(Oring),
],
- q(5298) => [
+ q(5289) => [
q(Oroqen),
],
- q(5299) => [
+ q(5290) => [
q(Orang Kanaq),
],
- q(5300) => [
+ q(5291) => [
q(Orokolo),
],
- q(5301) => [
+ q(5292) => [
q(Oruma),
],
- q(5302) => [
+ q(5293) => [
q(Orang Seletar),
],
- q(5303) => [
+ q(5294) => [
q(Adivasi Oriya),
],
- q(5304) => [
+ q(5295) => [
q(Ormuri),
],
- q(5305) => [
+ q(5296) => [
q(Old Russian),
],
- q(5306) => [
+ q(5297) => [
q(Oro Win),
],
- q(5307) => [
+ q(5298) => [
q(Oro),
],
- q(5308) => [
+ q(5299) => [
+ q(Odia (individual language)),
q(Oriya (individual language)),
],
- q(5309) => [
+ q(5300) => [
q(Ormu),
],
- q(5310) => [
+ q(5301) => [
q(Oscan),
],
- q(5311) => [
+ q(5302) => [
q(Osing),
],
- q(5312) => [
+ q(5303) => [
q(Ososo),
],
- q(5313) => [
+ q(5304) => [
q(Old Spanish),
],
- q(5314) => [
+ q(5305) => [
q(Osatu),
],
- q(5315) => [
+ q(5306) => [
q(Southern One),
],
- q(5316) => [
+ q(5307) => [
q(Old Saxon),
],
- q(5317) => [
+ q(5308) => [
q(Old Tibetan),
],
- q(5318) => [
+ q(5309) => [
q(Ot Danum),
],
- q(5319) => [
+ q(5310) => [
q(Mezquital Otomi),
],
- q(5320) => [
+ q(5311) => [
q(Oti),
],
- q(5321) => [
+ q(5312) => [
q(Old Turkish),
],
- q(5322) => [
+ q(5313) => [
q(Tilapa Otomi),
],
- q(5323) => [
+ q(5314) => [
q(Eastern Highland Otomi),
],
- q(5324) => [
+ q(5315) => [
q(Tenango Otomi),
],
- q(5325) => [
+ q(5316) => [
q(Queretaro Otomi),
],
- q(5326) => [
+ q(5317) => [
q(Otoro),
],
- q(5327) => [
+ q(5318) => [
q(Estado de Mexico Otomi),
],
- q(5328) => [
+ q(5319) => [
q(Temoaya Otomi),
],
- q(5329) => [
+ q(5320) => [
q(Otuke),
],
- q(5330) => [
+ q(5321) => [
q(Ottawa),
],
- q(5331) => [
+ q(5322) => [
q(Texcatepec Otomi),
],
- q(5332) => [
+ q(5323) => [
q(Old Tamil),
],
- q(5333) => [
+ q(5324) => [
q(Ixtenco Otomi),
],
- q(5334) => [
+ q(5325) => [
q(Tagargrent),
],
- q(5335) => [
+ q(5326) => [
q(Glio-Oubi),
],
- q(5336) => [
+ q(5327) => [
q(Oune),
],
- q(5337) => [
+ q(5328) => [
q(Old Uighur),
],
- q(5338) => [
+ q(5329) => [
q(Ouma),
],
- q(5339) => [
+ q(5330) => [
+ q(Ovdalian),
+ q(Elfdalian),
+ ],
+ q(5331) => [
q(Owiniga),
],
- q(5340) => [
+ q(5332) => [
q(Old Welsh),
],
- q(5341) => [
+ q(5333) => [
q(Oy),
],
- q(5342) => [
+ q(5334) => [
q(Oyda),
],
- q(5343) => [
+ q(5335) => [
q(Wayampi),
],
- q(5344) => [
+ q(5336) => [
q(Oya'oya),
],
- q(5345) => [
+ q(5337) => [
q(Koonzime),
],
- q(5346) => [
+ q(5338) => [
q(Parecis),
],
- q(5347) => [
+ q(5339) => [
q(Pacoh),
],
- q(5348) => [
+ q(5340) => [
q(Paumari),
],
- q(5349) => [
+ q(5341) => [
q(Pagibete),
],
- q(5350) => [
+ q(5342) => [
q(Paranawat),
],
- q(5351) => [
+ q(5343) => [
q(Tenharim),
],
- q(5352) => [
+ q(5344) => [
q(Pe),
],
- q(5353) => [
+ q(5345) => [
q(Parakana),
],
- q(5354) => [
+ q(5346) => [
q(Northern Paiute),
],
- q(5355) => [
+ q(5347) => [
q(Parya),
],
- q(5356) => [
+ q(5348) => [
q(Panamint),
q(Timbisha),
],
- q(5357) => [
+ q(5349) => [
q(Papasena),
],
- q(5358) => [
+ q(5350) => [
q(Papitalai),
],
- q(5359) => [
+ q(5351) => [
q(Pakaasnovos),
],
- q(5360) => [
+ q(5352) => [
q(Pawnee),
],
- q(5361) => [
+ q(5353) => [
q(Pankarare),
],
- q(5362) => [
+ q(5354) => [
q(Pech),
],
- q(5363) => [
+ q(5355) => [
q(Pankararu),
],
- q(5364) => [
+ q(5356) => [
q(Paez),
],
- q(5365) => [
+ q(5357) => [
q(Patamona),
],
- q(5366) => [
+ q(5358) => [
q(Mezontla Popoloca),
],
- q(5367) => [
+ q(5359) => [
q(Coyotepec Popoloca),
],
- q(5368) => [
+ q(5360) => [
q(Paraujano),
],
- q(5369) => [
+ q(5361) => [
q(E'napa Woromaipu),
],
- q(5370) => [
+ q(5362) => [
q(Parkwa),
],
- q(5371) => [
+ q(5363) => [
q(Mak (Nigeria)),
],
- q(5372) => [
+ q(5364) => [
q(Kpasam),
],
- q(5373) => [
+ q(5365) => [
q(Papel),
],
- q(5374) => [
+ q(5366) => [
q(Badyara),
],
- q(5375) => [
+ q(5367) => [
q(Pangwa),
],
- q(5376) => [
+ q(5368) => [
q(Central Pame),
],
- q(5377) => [
+ q(5369) => [
q(Southern Pashto),
],
- q(5378) => [
+ q(5370) => [
q(Northern Pashto),
],
- q(5379) => [
+ q(5371) => [
q(Pnar),
],
- q(5380) => [
+ q(5372) => [
q(Pyu (Papua New Guinea)),
],
- q(5381) => [
+ q(5373) => [
q(Santa Ines Ahuatempan Popoloca),
],
- q(5382) => [
+ q(5374) => [
q(Pear),
],
- q(5383) => [
+ q(5375) => [
q(Bouyei),
],
- q(5384) => [
+ q(5376) => [
q(Picard),
],
- q(5385) => [
+ q(5377) => [
q(Ruching Palaung),
],
- q(5386) => [
+ q(5378) => [
q(Paliyan),
],
- q(5387) => [
+ q(5379) => [
q(Paniya),
],
- q(5388) => [
+ q(5380) => [
q(Pardhan),
],
- q(5389) => [
+ q(5381) => [
q(Duruwa),
],
- q(5390) => [
+ q(5382) => [
q(Parenga),
],
- q(5391) => [
+ q(5383) => [
q(Paite Chin),
],
- q(5392) => [
+ q(5384) => [
q(Pardhi),
],
- q(5393) => [
+ q(5385) => [
q(Nigerian Pidgin),
],
- q(5394) => [
+ q(5386) => [
q(Piti),
],
- q(5395) => [
+ q(5387) => [
q(Pacahuara),
],
- q(5396) => [
+ q(5388) => [
q(Pyapun),
],
- q(5397) => [
+ q(5389) => [
q(Anam),
],
- q(5398) => [
+ q(5390) => [
q(Pennsylvania German),
],
- q(5399) => [
+ q(5391) => [
q(Pa Di),
],
- q(5400) => [
+ q(5392) => [
q(Podena),
q(Fedan),
],
- q(5401) => [
+ q(5393) => [
q(Padoe),
],
- q(5402) => [
+ q(5394) => [
q(Plautdietsch),
],
- q(5403) => [
+ q(5395) => [
q(Kayan),
],
- q(5404) => [
+ q(5396) => [
q(Peranakan Indonesian),
],
- q(5405) => [
+ q(5397) => [
q(Eastern Pomo),
],
- q(5406) => [
+ q(5398) => [
q(Mala (Papua New Guinea)),
],
- q(5407) => [
+ q(5399) => [
q(Taje),
],
- q(5408) => [
+ q(5400) => [
q(Northeastern Pomo),
],
- q(5409) => [
+ q(5401) => [
q(Pengo),
],
- q(5410) => [
+ q(5402) => [
q(Bonan),
],
- q(5411) => [
+ q(5403) => [
q(Chichimeca-Jonaz),
],
- q(5412) => [
+ q(5404) => [
q(Northern Pomo),
],
- q(5413) => [
+ q(5405) => [
q(Penchal),
],
- q(5414) => [
+ q(5406) => [
q(Pekal),
],
- q(5415) => [
+ q(5407) => [
q(Phende),
],
- q(5416) => [
+ q(5408) => [
q(Kunja),
],
- q(5417) => [
+ q(5409) => [
q(Southern Pomo),
],
- q(5418) => [
+ q(5410) => [
q(Iranian Persian),
],
- q(5419) => [
+ q(5411) => [
q(Pemono),
],
- q(5420) => [
+ q(5412) => [
q(Petats),
],
- q(5421) => [
+ q(5413) => [
q(Petjo),
],
- q(5422) => [
+ q(5414) => [
q(Eastern Penan),
],
- q(5423) => [
+ q(5415) => [
q(Paafang),
],
- q(5424) => [
+ q(5416) => [
q(Peere),
],
- q(5425) => [
+ q(5417) => [
q(Pfaelzisch),
],
- q(5426) => [
+ q(5418) => [
q(Sudanese Creole Arabic),
],
- q(5427) => [
+ q(5419) => [
q(Gandhari),
],
- q(5428) => [
+ q(5420) => [
q(Pangwali),
],
- q(5429) => [
+ q(5421) => [
q(Pagi),
],
- q(5430) => [
+ q(5422) => [
q(Rerep),
],
- q(5431) => [
+ q(5423) => [
q(Primitive Irish),
],
- q(5432) => [
+ q(5424) => [
q(Paelignian),
],
- q(5433) => [
+ q(5425) => [
q(Pangseng),
],
- q(5434) => [
+ q(5426) => [
q(Pagu),
],
- q(5435) => [
+ q(5427) => [
+ q(Papua New Guinean Sign Language),
+ ],
+ q(5428) => [
q(Pa-Hng),
],
- q(5436) => [
+ q(5429) => [
q(Phudagi),
],
- q(5437) => [
+ q(5430) => [
q(Phuong),
],
- q(5438) => [
+ q(5431) => [
q(Phukha),
],
- q(5439) => [
+ q(5432) => [
q(Phake),
],
- q(5440) => [
+ q(5433) => [
q(Phalura),
q(Palula),
],
- q(5441) => [
+ q(5434) => [
q(Phimbi),
],
- q(5442) => [
+ q(5435) => [
q(Phunoi),
],
- q(5443) => [
+ q(5436) => [
q(Phana'),
],
- q(5444) => [
+ q(5437) => [
q(Pahari-Potwari),
],
- q(5445) => [
+ q(5438) => [
q(Phu Thai),
],
- q(5446) => [
+ q(5439) => [
q(Phuan),
],
- q(5447) => [
+ q(5440) => [
q(Pahlavani),
],
- q(5448) => [
+ q(5441) => [
q(Phangduwali),
],
- q(5449) => [
+ q(5442) => [
q(Pima Bajo),
],
- q(5450) => [
+ q(5443) => [
q(Yine),
],
- q(5451) => [
+ q(5444) => [
q(Pinji),
],
- q(5452) => [
+ q(5445) => [
q(Piaroa),
],
- q(5453) => [
+ q(5446) => [
q(Piro),
],
- q(5454) => [
+ q(5447) => [
q(Pingelapese),
],
- q(5455) => [
+ q(5448) => [
q(Pisabo),
],
- q(5456) => [
+ q(5449) => [
q(Pitcairn-Norfolk),
],
- q(5457) => [
+ q(5450) => [
q(Pini),
],
- q(5458) => [
+ q(5451) => [
q(Pijao),
],
- q(5459) => [
+ q(5452) => [
q(Yom),
],
- q(5460) => [
+ q(5453) => [
q(Powhatan),
],
- q(5461) => [
+ q(5454) => [
q(Piame),
],
- q(5462) => [
+ q(5455) => [
q(Piapoco),
],
- q(5463) => [
+ q(5456) => [
q(Pero),
],
- q(5464) => [
+ q(5457) => [
q(Piratapuyo),
],
- q(5465) => [
+ q(5458) => [
q(Pijin),
],
- q(5466) => [
+ q(5459) => [
q(Pitta Pitta),
],
- q(5467) => [
+ q(5460) => [
q(Pintupi-Luritja),
],
- q(5468) => [
+ q(5461) => [
q(Pileni),
q(Vaeakau-Taumako),
],
- q(5469) => [
+ q(5462) => [
q(Pimbwe),
],
- q(5470) => [
+ q(5463) => [
q(Piu),
],
- q(5471) => [
+ q(5464) => [
q(Piya-Kwonci),
],
- q(5472) => [
+ q(5465) => [
q(Pije),
],
- q(5473) => [
+ q(5466) => [
q(Pitjantjatjara),
],
- q(5474) => [
+ q(5467) => [
q(Ardhamagadhi Prakrit),
],
- q(5475) => [
+ q(5468) => [
q(Pokomo),
q(Kipfokomo),
],
- q(5476) => [
+ q(5469) => [
q(Paekche),
],
- q(5477) => [
+ q(5470) => [
q(Pak-Tong),
],
- q(5478) => [
+ q(5471) => [
q(Pankhu),
],
- q(5479) => [
+ q(5472) => [
q(Pakanha),
],
- q(5480) => [
+ q(5473) => [
q(Pokoot),
],
- q(5481) => [
+ q(5474) => [
q(Pukapuka),
],
- q(5482) => [
+ q(5475) => [
q(Attapady Kurumba),
],
- q(5483) => [
+ q(5476) => [
q(Pakistan Sign Language),
],
- q(5484) => [
+ q(5477) => [
q(Maleng),
],
- q(5485) => [
+ q(5478) => [
q(Paku),
],
- q(5486) => [
+ q(5479) => [
q(Miani),
],
- q(5487) => [
+ q(5480) => [
q(Polonombauk),
],
- q(5488) => [
+ q(5481) => [
q(Central Palawano),
],
- q(5489) => [
+ q(5482) => [
q(Polari),
],
- q(5490) => [
+ q(5483) => [
q(Palu'e),
],
- q(5491) => [
+ q(5484) => [
q(Pilaga),
],
- q(5492) => [
+ q(5485) => [
q(Paulohi),
],
- q(5493) => [
+ q(5486) => [
q(Polci),
],
- q(5494) => [
+ q(5487) => [
q(Kohistani Shina),
],
- q(5495) => [
+ q(5488) => [
q(Shwe Palaung),
],
- q(5496) => [
+ q(5489) => [
q(Palenquero),
],
- q(5497) => [
+ q(5490) => [
q(Oluta Popoluca),
],
- q(5498) => [
+ q(5491) => [
q(Palpa),
],
- q(5499) => [
+ q(5492) => [
q(Palaic),
],
- q(5500) => [
+ q(5493) => [
q(Palaka Senoufo),
],
- q(5501) => [
+ q(5494) => [
q(San Marcos Tlacoyalco Popoloca),
q(San Marcos Tlalcoyalco Popoloca),
],
- q(5502) => [
+ q(5495) => [
q(Plateau Malagasy),
],
- q(5503) => [
+ q(5496) => [
q(Palikur),
],
- q(5504) => [
+ q(5497) => [
q(Southwest Palawano),
],
- q(5505) => [
+ q(5498) => [
q(Brooke's Point Palawano),
],
- q(5506) => [
+ q(5499) => [
q(Bolyu),
],
- q(5507) => [
+ q(5500) => [
q(Paluan),
],
- q(5508) => [
+ q(5501) => [
q(Paama),
],
- q(5509) => [
+ q(5502) => [
q(Pambia),
],
- q(5510) => [
- q(Palumata),
- ],
- q(5511) => [
+ q(5503) => [
q(Pallanganmiddang),
],
- q(5512) => [
+ q(5504) => [
q(Pwaamei),
],
- q(5513) => [
+ q(5505) => [
q(Pamona),
],
- q(5514) => [
+ q(5506) => [
q(Maharastri Prakrit),
],
- q(5515) => [
+ q(5507) => [
q(Northern Pumi),
],
- q(5516) => [
+ q(5508) => [
q(Southern Pumi),
],
- q(5517) => [
+ q(5509) => [
q(Pamlico),
],
- q(5518) => [
+ q(5510) => [
q(Lingua Franca),
],
- q(5519) => [
+ q(5511) => [
q(Pomo),
],
- q(5520) => [
+ q(5512) => [
q(Pam),
],
- q(5521) => [
+ q(5513) => [
q(Pom),
],
- q(5522) => [
+ q(5514) => [
q(Northern Pame),
],
- q(5523) => [
+ q(5515) => [
q(Paynamar),
],
- q(5524) => [
+ q(5516) => [
q(Piemontese),
],
- q(5525) => [
+ q(5517) => [
q(Tuamotuan),
],
- q(5526) => [
+ q(5518) => [
q(Plains Miwok),
],
- q(5527) => [
+ q(5519) => [
q(Poumei Naga),
],
- q(5528) => [
+ q(5520) => [
q(Papuan Malay),
],
- q(5529) => [
+ q(5521) => [
q(Southern Pame),
],
- q(5530) => [
+ q(5522) => [
q(Punan Bah-Biau),
],
- q(5531) => [
+ q(5523) => [
q(Western Panjabi),
],
- q(5532) => [
+ q(5524) => [
q(Pannei),
],
- q(5533) => [
+ q(5525) => [
q(Western Penan),
],
- q(5534) => [
+ q(5526) => [
q(Pongu),
],
- q(5535) => [
+ q(5527) => [
q(Penrhyn),
],
- q(5536) => [
+ q(5528) => [
q(Aoheng),
],
- q(5537) => [
+ q(5529) => [
q(Pinjarup),
],
- q(5538) => [
+ q(5530) => [
q(Paunaka),
],
- q(5539) => [
+ q(5531) => [
q(Paleni),
],
- q(5540) => [
+ q(5532) => [
q(Punan Batu 1),
],
- q(5541) => [
+ q(5533) => [
q(Pinai-Hagahai),
],
- q(5542) => [
+ q(5534) => [
q(Panobo),
],
- q(5543) => [
+ q(5535) => [
q(Pancana),
],
- q(5544) => [
+ q(5536) => [
q(Pana (Burkina Faso)),
],
- q(5545) => [
+ q(5537) => [
q(Panim),
],
- q(5546) => [
+ q(5538) => [
q(Ponosakan),
],
- q(5547) => [
+ q(5539) => [
q(Pontic),
],
- q(5548) => [
+ q(5540) => [
q(Jiongnai Bunu),
],
- q(5549) => [
+ q(5541) => [
q(Pinigura),
],
- q(5550) => [
+ q(5542) => [
q(Panytyima),
],
- q(5551) => [
+ q(5543) => [
q(Phong-Kniang),
],
- q(5552) => [
+ q(5544) => [
q(Pinyin),
],
- q(5553) => [
+ q(5545) => [
q(Pana (Central African Republic)),
],
- q(5554) => [
+ q(5546) => [
q(Poqomam),
],
- q(5555) => [
- q(Ponares),
- ],
- q(5556) => [
+ q(5547) => [
q(San Juan Atzingo Popoloca),
],
- q(5557) => [
+ q(5548) => [
q(Poke),
],
- q(5558) => [
+ q(5549) => [
q(Potiguara),
],
- q(5559) => [
+ q(5550) => [
q(Poqomchi'),
],
- q(5560) => [
+ q(5551) => [
q(Highland Popoluca),
],
- q(5561) => [
+ q(5552) => [
q(Pokanga),
],
- q(5562) => [
+ q(5553) => [
q(Southeastern Pomo),
],
- q(5563) => [
+ q(5554) => [
q(Central Pomo),
],
- q(5564) => [
+ q(5555) => [
q(Pwapwa),
],
- q(5565) => [
+ q(5556) => [
q(Texistepec Popoluca),
],
- q(5566) => [
+ q(5557) => [
q(Sayula Popoluca),
],
- q(5567) => [
+ q(5558) => [
q(Potawatomi),
],
- q(5568) => [
+ q(5559) => [
q(Upper Guinea Crioulo),
],
- q(5569) => [
+ q(5560) => [
q(San Felipe Otlaltepec Popoloca),
],
- q(5570) => [
+ q(5561) => [
q(Polabian),
],
- q(5571) => [
+ q(5562) => [
q(Pogolo),
],
- q(5572) => [
- q(Pao),
- ],
- q(5573) => [
+ q(5563) => [
q(Papi),
],
- q(5574) => [
+ q(5564) => [
q(Paipai),
],
- q(5575) => [
+ q(5565) => [
q(Uma),
],
- q(5576) => [
+ q(5566) => [
q(Pipil),
q(Nicarao),
],
- q(5577) => [
+ q(5567) => [
q(Papuma),
],
- q(5578) => [
+ q(5568) => [
q(Papapana),
],
- q(5579) => [
+ q(5569) => [
q(Folopa),
],
- q(5580) => [
+ q(5570) => [
q(Pelende),
],
- q(5581) => [
+ q(5571) => [
q(Pei),
],
- q(5582) => [
+ q(5572) => [
q(San Luis Temalacayuca Popoloca),
],
- q(5583) => [
+ q(5573) => [
q(Pare),
],
- q(5584) => [
+ q(5574) => [
q(Papora),
],
- q(5585) => [
+ q(5575) => [
q(Pa'a),
],
- q(5586) => [
+ q(5576) => [
q(Malecite-Passamaquoddy),
],
- q(5587) => [
+ q(5577) => [
q(Lua'),
],
- q(5588) => [
+ q(5578) => [
q(Parachi),
],
- q(5589) => [
+ q(5579) => [
q(Parsi-Dari),
],
- q(5590) => [
+ q(5580) => [
q(Principense),
],
- q(5591) => [
+ q(5581) => [
q(Paranan),
],
- q(5592) => [
+ q(5582) => [
q(Prussian),
],
- q(5593) => [
+ q(5583) => [
q(Porohanon),
],
- q(5594) => [
+ q(5584) => [
q(Paici),
],
- q(5595) => [
+ q(5585) => [
q(Parauk),
],
- q(5596) => [
+ q(5586) => [
q(Peruvian Sign Language),
],
- q(5597) => [
+ q(5587) => [
q(Kibiri),
],
- q(5598) => [
+ q(5588) => [
q(Prasuni),
],
- q(5599) => [
+ q(5589) => [
q(Parsi),
],
- q(5600) => [
+ q(5590) => [
q(Asheninka Perene),
],
- q(5601) => [
+ q(5591) => [
q(Puri),
],
- q(5602) => [
+ q(5592) => [
q(Dari),
q(Afghan Persian),
],
- q(5603) => [
+ q(5593) => [
q(Phai),
],
- q(5604) => [
+ q(5594) => [
q(Puragi),
],
- q(5605) => [
+ q(5595) => [
q(Parawen),
],
- q(5606) => [
+ q(5596) => [
q(Purik),
],
- q(5607) => [
- q(Pray 3),
- ],
- q(5608) => [
+ q(5597) => [
q(Providencia Sign Language),
],
- q(5609) => [
+ q(5598) => [
q(Asue Awyu),
],
- q(5610) => [
+ q(5599) => [
q(Persian Sign Language),
],
- q(5611) => [
+ q(5600) => [
q(Plains Indian Sign Language),
],
- q(5612) => [
+ q(5601) => [
q(Central Malay),
],
- q(5613) => [
+ q(5602) => [
q(Penang Sign Language),
],
- q(5614) => [
+ q(5603) => [
q(Southwest Pashai),
q(Southwest Pashayi),
],
- q(5615) => [
+ q(5604) => [
q(Southeast Pashai),
q(Southeast Pashayi),
],
- q(5616) => [
+ q(5605) => [
q(Puerto Rican Sign Language),
],
- q(5617) => [
+ q(5606) => [
q(Pauserna),
],
- q(5618) => [
+ q(5607) => [
q(Panasuan),
],
- q(5619) => [
+ q(5608) => [
q(Polish Sign Language),
],
- q(5620) => [
+ q(5609) => [
q(Philippine Sign Language),
],
- q(5621) => [
+ q(5610) => [
q(Pasi),
],
- q(5622) => [
+ q(5611) => [
q(Portuguese Sign Language),
],
- q(5623) => [
+ q(5612) => [
q(Kaulong),
],
- q(5624) => [
+ q(5613) => [
q(Central Pashto),
],
- q(5625) => [
+ q(5614) => [
q(Sauraseni Prakrit),
],
- q(5626) => [
+ q(5615) => [
q(Port Sandwich),
],
- q(5627) => [
+ q(5616) => [
q(Piscataway),
],
- q(5628) => [
+ q(5617) => [
q(Pai Tavytera),
],
- q(5629) => [
+ q(5618) => [
q(Pataxo Ha-Ha-Hae),
],
- q(5630) => [
+ q(5619) => [
q(Pintiini),
],
- q(5631) => [
+ q(5620) => [
q(Patani),
],
- q(5632) => [
+ q(5621) => [
q(Zo'e),
],
- q(5633) => [
+ q(5622) => [
q(Patep),
],
- q(5634) => [
+ q(5623) => [
q(Pattapu),
],
- q(5635) => [
+ q(5624) => [
q(Piamatsina),
],
- q(5636) => [
+ q(5625) => [
q(Enrekang),
],
- q(5637) => [
+ q(5626) => [
q(Bambam),
],
- q(5638) => [
+ q(5627) => [
q(Port Vato),
],
- q(5639) => [
+ q(5628) => [
q(Pentlatch),
],
- q(5640) => [
+ q(5629) => [
q(Pathiya),
],
- q(5641) => [
+ q(5630) => [
q(Western Highland Purepecha),
],
- q(5642) => [
+ q(5631) => [
q(Purum),
],
- q(5643) => [
+ q(5632) => [
q(Punan Merap),
],
- q(5644) => [
+ q(5633) => [
q(Punan Aput),
],
- q(5645) => [
+ q(5634) => [
q(Puelche),
],
- q(5646) => [
+ q(5635) => [
q(Punan Merah),
],
- q(5647) => [
+ q(5636) => [
q(Phuie),
],
- q(5648) => [
+ q(5637) => [
q(Puinave),
],
- q(5649) => [
+ q(5638) => [
q(Punan Tubu),
],
- q(5650) => [
+ q(5639) => [
q(Pu Ko),
],
- q(5651) => [
+ q(5640) => [
q(Puma),
],
- q(5652) => [
+ q(5641) => [
q(Puoc),
],
- q(5653) => [
+ q(5642) => [
q(Pulabu),
],
- q(5654) => [
+ q(5643) => [
q(Puquina),
],
- q(5655) => [
+ q(5644) => [
q(Purubora),
],
- q(5656) => [
+ q(5645) => [
q(Putoh),
],
- q(5657) => [
+ q(5646) => [
q(Punu),
],
- q(5658) => [
+ q(5647) => [
q(Puluwatese),
],
- q(5659) => [
+ q(5648) => [
q(Puare),
],
- q(5660) => [
+ q(5649) => [
q(Purisimeno),
],
- q(5661) => [
+ q(5650) => [
q(Pawaia),
],
- q(5662) => [
+ q(5651) => [
q(Panawa),
],
- q(5663) => [
+ q(5652) => [
q(Gapapaiwa),
],
- q(5664) => [
+ q(5653) => [
q(Patwin),
],
- q(5665) => [
+ q(5654) => [
q(Molbog),
],
- q(5666) => [
+ q(5655) => [
q(Paiwan),
],
- q(5667) => [
+ q(5656) => [
q(Pwo Western Karen),
],
- q(5668) => [
+ q(5657) => [
q(Powari),
],
- q(5669) => [
+ q(5658) => [
q(Pwo Northern Karen),
],
- q(5670) => [
+ q(5659) => [
q(Quetzaltepec Mixe),
],
- q(5671) => [
+ q(5660) => [
q(Pye Krumen),
],
- q(5672) => [
+ q(5661) => [
q(Fyam),
],
- q(5673) => [
+ q(5662) => [
q(Poyanawa),
],
- q(5674) => [
+ q(5663) => [
q(Paraguayan Sign Language),
q(Lengua de Senas del Paraguay),
],
- q(5675) => [
+ q(5664) => [
q(Puyuma),
],
- q(5676) => [
+ q(5665) => [
q(Pyu (Myanmar)),
],
- q(5677) => [
+ q(5666) => [
q(Pyen),
],
- q(5678) => [
+ q(5667) => [
q(Para Naga),
],
- q(5679) => [
+ q(5668) => [
q(Quapaw),
],
- q(5680) => [
+ q(5669) => [
q(Huallaga Huanuco Quechua),
],
- q(5681) => [
+ q(5670) => [
q(K'iche'),
q(Quiche),
],
- q(5682) => [
+ q(5671) => [
q(Calderon Highland Quichua),
],
- q(5683) => [
+ q(5672) => [
q(Lambayeque Quechua),
],
- q(5684) => [
+ q(5673) => [
q(Chimborazo Highland Quichua),
],
- q(5685) => [
+ q(5674) => [
q(South Bolivian Quechua),
],
- q(5686) => [
+ q(5675) => [
q(Quileute),
],
- q(5687) => [
+ q(5676) => [
q(Chachapoyas Quechua),
],
- q(5688) => [
+ q(5677) => [
q(North Bolivian Quechua),
],
- q(5689) => [
+ q(5678) => [
q(Sipacapense),
],
- q(5690) => [
+ q(5679) => [
q(Quinault),
],
- q(5691) => [
+ q(5680) => [
q(Southern Pastaza Quechua),
],
- q(5692) => [
+ q(5681) => [
q(Quinqui),
],
- q(5693) => [
+ q(5682) => [
q(Yanahuanca Pasco Quechua),
],
- q(5694) => [
+ q(5683) => [
q(Santiago del Estero Quichua),
],
- q(5695) => [
+ q(5684) => [
q(Sacapulteco),
],
- q(5696) => [
+ q(5685) => [
q(Tena Lowland Quichua),
],
- q(5697) => [
+ q(5686) => [
q(Yauyos Quechua),
],
- q(5698) => [
+ q(5687) => [
q(Ayacucho Quechua),
],
- q(5699) => [
+ q(5688) => [
q(Cusco Quechua),
],
- q(5700) => [
+ q(5689) => [
q(Ambo-Pasco Quechua),
],
- q(5701) => [
+ q(5690) => [
q(Cajamarca Quechua),
],
- q(5702) => [
+ q(5691) => [
q(Eastern Apurimac Quechua),
],
- q(5703) => [
+ q(5692) => [
q(Huamalies-Dos de Mayo Huanuco Quechua),
],
- q(5704) => [
+ q(5693) => [
q(Imbabura Highland Quichua),
],
- q(5705) => [
+ q(5694) => [
q(Loja Highland Quichua),
],
- q(5706) => [
+ q(5695) => [
q(Cajatambo North Lima Quechua),
],
- q(5707) => [
+ q(5696) => [
q(Margos-Yarowilca-Lauricocha Quechua),
],
- q(5708) => [
+ q(5697) => [
q(North Junin Quechua),
],
- q(5709) => [
+ q(5698) => [
q(Napo Lowland Quechua),
],
- q(5710) => [
+ q(5699) => [
q(Pacaraos Quechua),
],
- q(5711) => [
+ q(5700) => [
q(San Martin Quechua),
],
- q(5712) => [
+ q(5701) => [
q(Huaylla Wanca Quechua),
],
- q(5713) => [
+ q(5702) => [
q(Queyu),
],
- q(5714) => [
+ q(5703) => [
q(Northern Pastaza Quichua),
],
- q(5715) => [
+ q(5704) => [
q(Corongo Ancash Quechua),
],
- q(5716) => [
+ q(5705) => [
q(Classical Quechua),
],
- q(5717) => [
+ q(5706) => [
q(Huaylas Ancash Quechua),
],
- q(5718) => [
+ q(5707) => [
q(Kuman (Russia)),
],
- q(5719) => [
+ q(5708) => [
q(Sihuas Ancash Quechua),
],
- q(5720) => [
+ q(5709) => [
q(Kwalhioqua-Tlatskanai),
],
- q(5721) => [
+ q(5710) => [
q(Chiquian Ancash Quechua),
],
- q(5722) => [
+ q(5711) => [
q(Chincha Quechua),
],
- q(5723) => [
+ q(5712) => [
q(Panao Huanuco Quechua),
],
- q(5724) => [
+ q(5713) => [
q(Salasaca Highland Quichua),
],
- q(5725) => [
+ q(5714) => [
q(Northern Conchucos Ancash Quechua),
],
- q(5726) => [
+ q(5715) => [
q(Southern Conchucos Ancash Quechua),
],
- q(5727) => [
+ q(5716) => [
q(Puno Quechua),
],
- q(5728) => [
+ q(5717) => [
q(Qashqa'i),
],
- q(5729) => [
+ q(5718) => [
q(Canar Highland Quichua),
],
- q(5730) => [
+ q(5719) => [
q(Southern Qiang),
],
- q(5731) => [
+ q(5720) => [
q(Santa Ana de Tusi Pasco Quechua),
],
- q(5732) => [
+ q(5721) => [
q(Arequipa-La Union Quechua),
],
- q(5733) => [
+ q(5722) => [
q(Jauja Wanca Quechua),
],
- q(5734) => [
+ q(5723) => [
q(Quenya),
],
- q(5735) => [
+ q(5724) => [
q(Quiripi),
],
- q(5736) => [
+ q(5725) => [
q(Dungmali),
],
- q(5737) => [
+ q(5726) => [
q(Camling),
],
- q(5738) => [
+ q(5727) => [
q(Rasawa),
],
- q(5739) => [
+ q(5728) => [
q(Rade),
],
- q(5740) => [
+ q(5729) => [
q(Western Meohang),
],
- q(5741) => [
+ q(5730) => [
q(Logooli),
q(Lulogooli),
],
- q(5742) => [
+ q(5731) => [
q(Rabha),
],
- q(5743) => [
+ q(5732) => [
q(Ramoaaina),
],
- q(5744) => [
+ q(5733) => [
q(Tulu-Bohuai),
],
- q(5745) => [
+ q(5734) => [
q(Ralte),
],
- q(5746) => [
+ q(5735) => [
q(Canela),
],
- q(5747) => [
+ q(5736) => [
q(Riantana),
],
- q(5748) => [
+ q(5737) => [
q(Rao),
],
- q(5749) => [
+ q(5738) => [
q(Saam),
],
- q(5750) => [
+ q(5739) => [
q(Tegali),
],
- q(5751) => [
+ q(5740) => [
q(Razajerdi),
],
- q(5752) => [
+ q(5741) => [
q(Raute),
],
- q(5753) => [
+ q(5742) => [
q(Sampang),
],
- q(5754) => [
+ q(5743) => [
q(Rawang),
],
- q(5755) => [
+ q(5744) => [
q(Rang),
],
- q(5756) => [
+ q(5745) => [
q(Rapa),
],
- q(5757) => [
+ q(5746) => [
q(Rahambuu),
],
- q(5758) => [
+ q(5747) => [
q(Rumai Palaung),
],
- q(5759) => [
+ q(5748) => [
q(Northern Bontok),
],
- q(5760) => [
+ q(5749) => [
q(Miraya Bikol),
],
- q(5761) => [
+ q(5750) => [
q(Barababaraba),
],
- q(5762) => [
+ q(5751) => [
q(Reunion Creole French),
],
- q(5763) => [
+ q(5752) => [
q(Rudbari),
],
- q(5764) => [
+ q(5753) => [
q(Rerau),
],
- q(5765) => [
+ q(5754) => [
q(Rembong),
],
- q(5766) => [
+ q(5755) => [
q(Rejang Kayan),
],
- q(5767) => [
+ q(5756) => [
q(Kara (Tanzania)),
],
- q(5768) => [
+ q(5757) => [
q(Reli),
],
- q(5769) => [
+ q(5758) => [
q(Rejang),
],
- q(5770) => [
+ q(5759) => [
q(Rendille),
],
- q(5771) => [
+ q(5760) => [
q(Remo),
],
- q(5772) => [
+ q(5761) => [
q(Rengao),
],
- q(5773) => [
+ q(5762) => [
q(Rer Bare),
],
- q(5774) => [
+ q(5763) => [
q(Reshe),
],
- q(5775) => [
+ q(5764) => [
q(Retta),
],
- q(5776) => [
+ q(5765) => [
q(Reyesano),
],
- q(5777) => [
+ q(5766) => [
q(Roria),
],
- q(5778) => [
+ q(5767) => [
q(Romano-Greek),
],
- q(5779) => [
+ q(5768) => [
q(Rangkas),
],
- q(5780) => [
+ q(5769) => [
q(Romagnol),
],
- q(5781) => [
+ q(5770) => [
q(Resigaro),
],
- q(5782) => [
+ q(5771) => [
q(Southern Roglai),
],
- q(5783) => [
+ q(5772) => [
q(Ringgou),
],
- q(5784) => [
+ q(5773) => [
q(Rohingya),
],
- q(5785) => [
+ q(5774) => [
q(Yahang),
],
- q(5786) => [
+ q(5775) => [
q(Riang (India)),
],
- q(5787) => [
+ q(5776) => [
q(Rien),
],
- q(5788) => [
+ q(5777) => [
q(Tarifit),
],
- q(5789) => [
+ q(5778) => [
q(Riang (Myanmar)),
],
- q(5790) => [
+ q(5779) => [
q(Nyaturu),
],
- q(5791) => [
+ q(5780) => [
q(Nungu),
],
- q(5792) => [
+ q(5781) => [
q(Ribun),
],
- q(5793) => [
+ q(5782) => [
q(Ritarungo),
],
- q(5794) => [
+ q(5783) => [
q(Riung),
],
- q(5795) => [
+ q(5784) => [
q(Rajong),
],
- q(5796) => [
+ q(5785) => [
q(Raji),
],
- q(5797) => [
+ q(5786) => [
q(Rajbanshi),
],
- q(5798) => [
+ q(5787) => [
q(Kraol),
],
- q(5799) => [
+ q(5788) => [
q(Rikbaktsa),
],
- q(5800) => [
+ q(5789) => [
q(Rakahanga-Manihiki),
],
- q(5801) => [
+ q(5790) => [
q(Rakhine),
],
- q(5802) => [
+ q(5791) => [
q(Marka),
],
- q(5803) => [
+ q(5792) => [
q(Rangpuri),
q(Kamta),
],
- q(5804) => [
+ q(5793) => [
q(Arakwal),
],
- q(5805) => [
+ q(5794) => [
q(Rama),
],
- q(5806) => [
+ q(5795) => [
q(Rembarunga),
],
- q(5807) => [
+ q(5796) => [
q(Carpathian Romani),
],
- q(5808) => [
+ q(5797) => [
q(Traveller Danish),
],
- q(5809) => [
+ q(5798) => [
q(Angloromani),
],
- q(5810) => [
+ q(5799) => [
q(Kalo Finnish Romani),
],
- q(5811) => [
+ q(5800) => [
q(Traveller Norwegian),
],
- q(5812) => [
+ q(5801) => [
q(Murkim),
],
- q(5813) => [
+ q(5802) => [
q(Lomavren),
],
- q(5814) => [
+ q(5803) => [
q(Romkun),
],
- q(5815) => [
+ q(5804) => [
q(Baltic Romani),
],
- q(5816) => [
+ q(5805) => [
q(Roma),
],
- q(5817) => [
+ q(5806) => [
q(Balkan Romani),
],
- q(5818) => [
+ q(5807) => [
q(Sinte Romani),
],
- q(5819) => [
+ q(5808) => [
q(Rempi),
],
- q(5820) => [
+ q(5809) => [
q(Calo),
],
- q(5821) => [
+ q(5810) => [
q(Romanian Sign Language),
],
- q(5822) => [
+ q(5811) => [
q(Domari),
],
- q(5823) => [
+ q(5812) => [
q(Tavringer Romani),
],
- q(5824) => [
+ q(5813) => [
q(Romanova),
],
- q(5825) => [
+ q(5814) => [
q(Welsh Romani),
],
- q(5826) => [
+ q(5815) => [
q(Romam),
],
- q(5827) => [
+ q(5816) => [
q(Vlax Romani),
],
- q(5828) => [
+ q(5817) => [
q(Marma),
],
- q(5829) => [
- q(Runa),
- ],
- q(5830) => [
+ q(5818) => [
q(Ruund),
],
- q(5831) => [
+ q(5819) => [
q(Ronga),
],
- q(5832) => [
+ q(5820) => [
q(Ranglong),
],
- q(5833) => [
+ q(5821) => [
q(Roon),
],
- q(5834) => [
+ q(5822) => [
q(Rongpo),
],
- q(5835) => [
+ q(5823) => [
q(Nari Nari),
],
- q(5836) => [
+ q(5824) => [
q(Rungwa),
],
- q(5837) => [
+ q(5825) => [
q(Tae'),
],
- q(5838) => [
+ q(5826) => [
q(Cacgia Roglai),
],
- q(5839) => [
+ q(5827) => [
q(Rogo),
],
- q(5840) => [
+ q(5828) => [
q(Ronji),
],
- q(5841) => [
+ q(5829) => [
q(Rombo),
],
- q(5842) => [
+ q(5830) => [
q(Northern Roglai),
],
- q(5843) => [
+ q(5831) => [
q(Romblomanon),
],
- q(5844) => [
+ q(5832) => [
q(Rotokas),
],
- q(5845) => [
+ q(5833) => [
q(Kriol),
],
- q(5846) => [
+ q(5834) => [
q(Rongga),
],
- q(5847) => [
+ q(5835) => [
q(Runga),
],
- q(5848) => [
+ q(5836) => [
q(Dela-Oenale),
],
- q(5849) => [
+ q(5837) => [
q(Repanbitip),
],
- q(5850) => [
+ q(5838) => [
q(Rapting),
],
- q(5851) => [
+ q(5839) => [
q(Ririo),
],
- q(5852) => [
+ q(5840) => [
q(Waima),
],
- q(5853) => [
+ q(5841) => [
q(Arritinngithigh),
],
- q(5854) => [
+ q(5842) => [
q(Romano-Serbian),
],
- q(5855) => [
+ q(5843) => [
q(Rennellese Sign Language),
],
- q(5856) => [
+ q(5844) => [
q(Russian Sign Language),
],
- q(5857) => [
+ q(5845) => [
+ q(Miriwoong Sign Language),
+ ],
+ q(5846) => [
q(Rungtu Chin),
],
- q(5858) => [
+ q(5847) => [
q(Ratahan),
],
- q(5859) => [
+ q(5848) => [
q(Rotuman),
],
- q(5860) => [
+ q(5849) => [
q(Yurats),
],
- q(5861) => [
+ q(5850) => [
q(Rathawi),
],
- q(5862) => [
+ q(5851) => [
q(Gungu),
],
- q(5863) => [
+ q(5852) => [
q(Ruuli),
],
- q(5864) => [
+ q(5853) => [
q(Rusyn),
],
- q(5865) => [
+ q(5854) => [
q(Luguru),
],
- q(5866) => [
+ q(5855) => [
q(Roviana),
],
- q(5867) => [
+ q(5856) => [
q(Ruga),
],
- q(5868) => [
+ q(5857) => [
q(Rufiji),
],
- q(5869) => [
+ q(5858) => [
q(Che),
],
- q(5870) => [
+ q(5859) => [
q(Istro Romanian),
],
- q(5871) => [
+ q(5860) => [
q(Megleno Romanian),
],
- q(5872) => [
+ q(5861) => [
q(Rutul),
],
- q(5873) => [
+ q(5862) => [
q(Lanas Lobu),
],
- q(5874) => [
+ q(5863) => [
q(Mala (Nigeria)),
],
- q(5875) => [
+ q(5864) => [
q(Ruma),
],
- q(5876) => [
+ q(5865) => [
q(Rawo),
],
- q(5877) => [
+ q(5866) => [
q(Rwa),
],
- q(5878) => [
+ q(5867) => [
q(Amba (Uganda)),
],
- q(5879) => [
+ q(5868) => [
q(Rawa),
],
- q(5880) => [
+ q(5869) => [
q(Marwari (India)),
],
- q(5881) => [
+ q(5870) => [
q(Ngardi),
],
- q(5882) => [
+ q(5871) => [
q(Karuwali),
],
- q(5883) => [
+ q(5872) => [
q(Northern Amami-Oshima),
],
- q(5884) => [
+ q(5873) => [
q(Yaeyama),
],
- q(5885) => [
+ q(5874) => [
q(Central Okinawan),
],
- q(5886) => [
+ q(5875) => [
+ q(Razihi),
+ ],
+ q(5876) => [
q(Saba),
],
- q(5887) => [
+ q(5877) => [
q(Buglere),
],
- q(5888) => [
+ q(5878) => [
q(Meskwaki),
],
- q(5889) => [
+ q(5879) => [
q(Sabane),
],
- q(5890) => [
+ q(5880) => [
q(Safaliba),
],
- q(5891) => [
+ q(5881) => [
q(Sahu),
],
- q(5892) => [
+ q(5882) => [
q(Sake),
],
- q(5893) => [
+ q(5883) => [
q(Sause),
],
- q(5894) => [
+ q(5884) => [
q(Samburu),
],
- q(5895) => [
+ q(5885) => [
q(Saraveca),
],
- q(5896) => [
+ q(5886) => [
q(Saleman),
],
- q(5897) => [
+ q(5887) => [
q(Saafi-Saafi),
],
- q(5898) => [
+ q(5888) => [
q(Sawi),
],
- q(5899) => [
+ q(5889) => [
q(Sa),
],
- q(5900) => [
+ q(5890) => [
q(Saya),
],
- q(5901) => [
+ q(5891) => [
q(Saurashtra),
],
- q(5902) => [
+ q(5892) => [
q(Ngambay),
],
- q(5903) => [
+ q(5893) => [
q(Simbo),
],
- q(5904) => [
+ q(5894) => [
q(Kele (Papua New Guinea)),
],
- q(5905) => [
+ q(5895) => [
q(Southern Samo),
],
- q(5906) => [
+ q(5896) => [
q(Saliba),
],
- q(5907) => [
+ q(5897) => [
q(Chabu),
q(Shabo),
],
- q(5908) => [
+ q(5898) => [
q(Seget),
],
- q(5909) => [
+ q(5899) => [
q(Sori-Harengan),
],
- q(5910) => [
+ q(5900) => [
q(Seti),
],
- q(5911) => [
+ q(5901) => [
q(Surbakhal),
],
- q(5912) => [
+ q(5902) => [
q(Safwa),
],
- q(5913) => [
+ q(5903) => [
q(Botolan Sambal),
],
- q(5914) => [
+ q(5904) => [
q(Sagala),
],
- q(5915) => [
+ q(5905) => [
q(Sindhi Bhil),
],
- q(5916) => [
+ q(5906) => [
q(Sabum),
],
- q(5917) => [
+ q(5907) => [
q(Sangu (Tanzania)),
],
- q(5918) => [
+ q(5908) => [
q(Sileibi),
],
- q(5919) => [
+ q(5909) => [
q(Sembakung Murut),
],
- q(5920) => [
+ q(5910) => [
q(Subiya),
],
- q(5921) => [
+ q(5911) => [
q(Kimki),
],
- q(5922) => [
+ q(5912) => [
q(Stod Bhoti),
],
- q(5923) => [
+ q(5913) => [
q(Sabine),
],
- q(5924) => [
+ q(5914) => [
q(Simba),
],
- q(5925) => [
+ q(5915) => [
q(Seberuang),
],
- q(5926) => [
+ q(5916) => [
q(Soli),
],
- q(5927) => [
+ q(5917) => [
q(Sara Kaba),
],
- q(5928) => [
+ q(5918) => [
q(Chut),
],
- q(5929) => [
+ q(5919) => [
q(Dongxiang),
],
- q(5930) => [
+ q(5920) => [
q(San Miguel Creole French),
],
- q(5931) => [
+ q(5921) => [
q(Sanggau),
],
- q(5932) => [
+ q(5922) => [
q(Sakachep),
],
- q(5933) => [
+ q(5923) => [
q(Sri Lankan Creole Malay),
],
- q(5934) => [
+ q(5924) => [
q(Sadri),
],
- q(5935) => [
+ q(5925) => [
q(Shina),
],
- q(5936) => [
+ q(5926) => [
q(Helambu Sherpa),
],
- q(5937) => [
+ q(5927) => [
q(Sa'och),
],
- q(5938) => [
+ q(5928) => [
q(North Slavey),
],
- q(5939) => [
+ q(5929) => [
q(Shumcho),
],
- q(5940) => [
+ q(5930) => [
q(Sheni),
],
- q(5941) => [
+ q(5931) => [
q(Sha),
],
- q(5942) => [
+ q(5932) => [
q(Sicel),
],
- q(5943) => [
+ q(5933) => [
q(Toraja-Sa'dan),
],
- q(5944) => [
+ q(5934) => [
q(Shabak),
],
- q(5945) => [
+ q(5935) => [
q(Sassarese Sardinian),
],
- q(5946) => [
+ q(5936) => [
q(Surubu),
],
- q(5947) => [
+ q(5937) => [
q(Sarli),
],
- q(5948) => [
+ q(5938) => [
q(Savi),
],
- q(5949) => [
+ q(5939) => [
q(Southern Kurdish),
],
- q(5950) => [
+ q(5940) => [
q(Suundi),
],
- q(5951) => [
+ q(5941) => [
q(Sos Kundi),
],
- q(5952) => [
+ q(5942) => [
q(Saudi Arabian Sign Language),
],
- q(5953) => [
+ q(5943) => [
q(Semandang),
],
- q(5954) => [
+ q(5944) => [
q(Gallurese Sardinian),
],
- q(5955) => [
+ q(5945) => [
q(Bukar-Sadung Bidayuh),
],
- q(5956) => [
+ q(5946) => [
q(Sherdukpen),
],
- q(5957) => [
+ q(5947) => [
q(Oraon Sadri),
],
- q(5958) => [
+ q(5948) => [
q(Sened),
],
- q(5959) => [
+ q(5949) => [
q(Shuadit),
],
- q(5960) => [
+ q(5950) => [
q(Sarudu),
],
- q(5961) => [
+ q(5951) => [
q(Sibu Melanau),
],
- q(5962) => [
+ q(5952) => [
q(Sallands),
],
- q(5963) => [
+ q(5953) => [
q(Semai),
],
- q(5964) => [
+ q(5954) => [
q(Shempire Senoufo),
],
- q(5965) => [
+ q(5955) => [
q(Sechelt),
],
- q(5966) => [
+ q(5956) => [
q(Sedang),
],
- q(5967) => [
+ q(5957) => [
q(Seneca),
],
- q(5968) => [
+ q(5958) => [
q(Cebaara Senoufo),
],
- q(5969) => [
+ q(5959) => [
q(Segeju),
],
- q(5970) => [
+ q(5960) => [
q(Sena),
],
- q(5971) => [
+ q(5961) => [
q(Seri),
],
- q(5972) => [
+ q(5962) => [
q(Sene),
],
- q(5973) => [
+ q(5963) => [
q(Sekani),
],
- q(5974) => [
+ q(5964) => [
q(Nanerige Senoufo),
],
- q(5975) => [
+ q(5965) => [
q(Suarmin),
],
- q(5976) => [
+ q(5966) => [
q(Sicite Senoufo),
],
- q(5977) => [
+ q(5967) => [
q(Senara Senoufo),
],
- q(5978) => [
+ q(5968) => [
q(Serrano),
],
- q(5979) => [
+ q(5969) => [
q(Koyraboro Senni Songhai),
],
- q(5980) => [
+ q(5970) => [
q(Sentani),
],
- q(5981) => [
+ q(5971) => [
q(Serui-Laut),
],
- q(5982) => [
+ q(5972) => [
q(Nyarafolo Senoufo),
],
- q(5983) => [
+ q(5973) => [
q(Sewa Bay),
],
- q(5984) => [
+ q(5974) => [
q(Secoya),
],
- q(5985) => [
+ q(5975) => [
q(Senthang Chin),
],
- q(5986) => [
+ q(5976) => [
q(Langue des signes de Belgique Francophone),
q(French Belgian Sign Language),
],
- q(5987) => [
+ q(5977) => [
q(Eastern Subanen),
],
- q(5988) => [
+ q(5978) => [
q(Small Flowery Miao),
],
- q(5989) => [
+ q(5979) => [
q(South African Sign Language),
],
- q(5990) => [
+ q(5980) => [
q(Sehwi),
],
- q(5991) => [
+ q(5981) => [
q(Mag-antsi Ayta),
],
- q(5992) => [
+ q(5982) => [
q(Kipsigis),
],
- q(5993) => [
+ q(5983) => [
q(Surigaonon),
],
- q(5994) => [
+ q(5984) => [
q(Segai),
],
- q(5995) => [
+ q(5985) => [
q(Swiss-German Sign Language),
],
- q(5996) => [
+ q(5986) => [
q(Shughni),
],
- q(5997) => [
+ q(5987) => [
q(Suga),
],
- q(5998) => [
+ q(5988) => [
q(Surgujia),
],
- q(5999) => [
+ q(5989) => [
q(Sangkong),
],
- q(6000) => [
+ q(5990) => [
q(Singa),
],
- q(6001) => [
+ q(5991) => [
q(Singpho),
],
- q(6002) => [
+ q(5992) => [
q(Sangisari),
],
- q(6003) => [
+ q(5993) => [
q(Samogitian),
],
- q(6004) => [
+ q(5994) => [
q(Brokpake),
],
- q(6005) => [
+ q(5995) => [
q(Salas),
],
- q(6006) => [
+ q(5996) => [
q(Sebat Bet Gurage),
],
- q(6007) => [
+ q(5997) => [
q(Sierra Leone Sign Language),
],
- q(6008) => [
+ q(5998) => [
q(Sanglechi),
],
- q(6009) => [
+ q(5999) => [
q(Sursurunga),
],
- q(6010) => [
+ q(6000) => [
q(Shall-Zwall),
],
- q(6011) => [
+ q(6001) => [
q(Ninam),
],
- q(6012) => [
+ q(6002) => [
q(Sonde),
],
- q(6013) => [
+ q(6003) => [
q(Kundal Shahi),
],
- q(6014) => [
+ q(6004) => [
q(Sheko),
],
- q(6015) => [
+ q(6005) => [
q(Shua),
],
- q(6016) => [
+ q(6006) => [
q(Shoshoni),
],
- q(6017) => [
+ q(6007) => [
q(Tachelhit),
],
- q(6018) => [
+ q(6008) => [
q(Shatt),
],
- q(6019) => [
+ q(6009) => [
q(Shilluk),
],
- q(6020) => [
+ q(6010) => [
q(Shendu),
],
- q(6021) => [
+ q(6011) => [
q(Shahrudi),
],
- q(6022) => [
+ q(6012) => [
q(Shanga),
],
- q(6023) => [
+ q(6013) => [
q(Shipibo-Conibo),
],
- q(6024) => [
+ q(6014) => [
q(Sala),
],
- q(6025) => [
+ q(6015) => [
q(Shi),
],
- q(6026) => [
+ q(6016) => [
q(Shuswap),
],
- q(6027) => [
+ q(6017) => [
q(Shasta),
],
- q(6028) => [
+ q(6018) => [
q(Chadian Arabic),
],
- q(6029) => [
+ q(6019) => [
q(Shehri),
],
- q(6030) => [
+ q(6020) => [
q(Shwai),
],
- q(6031) => [
+ q(6021) => [
q(She),
],
- q(6032) => [
+ q(6022) => [
q(Tachawit),
],
- q(6033) => [
+ q(6023) => [
q(Syenara Senoufo),
],
- q(6034) => [
+ q(6024) => [
q(Akkala Sami),
],
- q(6035) => [
+ q(6025) => [
q(Sebop),
],
- q(6036) => [
+ q(6026) => [
q(Simaa),
],
- q(6037) => [
+ q(6027) => [
q(Siamou),
],
- q(6038) => [
+ q(6028) => [
q(Paasaal),
],
- q(6039) => [
+ q(6029) => [
q(Zire),
q(Sishee),
],
- q(6040) => [
+ q(6030) => [
q(Shom Peng),
],
- q(6041) => [
+ q(6031) => [
q(Numbami),
],
- q(6042) => [
+ q(6032) => [
q(Sikiana),
],
- q(6043) => [
+ q(6033) => [
q(Tumulung Sisaala),
],
- q(6044) => [
+ q(6034) => [
q(Mende (Papua New Guinea)),
],
- q(6045) => [
+ q(6035) => [
q(Sikkimese),
],
- q(6046) => [
+ q(6036) => [
q(Sonia),
],
- q(6047) => [
+ q(6037) => [
q(Siri),
],
- q(6048) => [
+ q(6038) => [
q(Siuslaw),
],
- q(6049) => [
+ q(6039) => [
q(Sinagen),
],
- q(6050) => [
+ q(6040) => [
q(Sumariup),
],
- q(6051) => [
+ q(6041) => [
q(Siwai),
],
- q(6052) => [
+ q(6042) => [
q(Sumau),
],
- q(6053) => [
+ q(6043) => [
q(Sivandi),
],
- q(6054) => [
+ q(6044) => [
q(Siwi),
],
- q(6055) => [
+ q(6045) => [
q(Epena),
],
- q(6056) => [
+ q(6046) => [
q(Sajau Basap),
],
- q(6057) => [
+ q(6047) => [
q(Kildin Sami),
],
- q(6058) => [
+ q(6048) => [
q(Pite Sami),
],
- q(6059) => [
+ q(6049) => [
q(Assangori),
],
- q(6060) => [
+ q(6050) => [
q(Kemi Sami),
],
- q(6061) => [
+ q(6051) => [
q(Sajalong),
q(Miji),
],
- q(6062) => [
+ q(6052) => [
q(Mapun),
],
- q(6063) => [
+ q(6053) => [
q(Sindarin),
],
- q(6064) => [
+ q(6054) => [
q(Xibe),
],
- q(6065) => [
+ q(6055) => [
q(Surjapuri),
],
- q(6066) => [
+ q(6056) => [
q(Siar-Lak),
],
- q(6067) => [
+ q(6057) => [
q(Senhaja De Srair),
],
- q(6068) => [
+ q(6058) => [
q(Ter Sami),
],
- q(6069) => [
+ q(6059) => [
q(Ume Sami),
],
- q(6070) => [
+ q(6060) => [
q(Shawnee),
],
- q(6071) => [
+ q(6061) => [
q(Skagit),
],
- q(6072) => [
+ q(6062) => [
q(Saek),
],
- q(6073) => [
+ q(6063) => [
q(Ma Manda),
],
- q(6074) => [
+ q(6064) => [
q(Southern Sierra Miwok),
],
- q(6075) => [
+ q(6065) => [
q(Seke (Vanuatu)),
],
- q(6076) => [
+ q(6066) => [
q(Sakirabia),
],
- q(6077) => [
+ q(6067) => [
q(Sakalava Malagasy),
],
- q(6078) => [
+ q(6068) => [
q(Sikule),
],
- q(6079) => [
+ q(6069) => [
q(Sika),
],
- q(6080) => [
+ q(6070) => [
q(Seke (Nepal)),
],
- q(6081) => [
+ q(6071) => [
q(Sok),
],
- q(6082) => [
+ q(6072) => [
q(Kutong),
],
- q(6083) => [
+ q(6073) => [
q(Kolibugan Subanon),
],
- q(6084) => [
+ q(6074) => [
q(Seko Tengah),
],
- q(6085) => [
+ q(6075) => [
q(Sekapan),
],
- q(6086) => [
+ q(6076) => [
q(Sininkere),
],
- q(6087) => [
+ q(6077) => [
q(Saraiki),
q(Seraiki),
],
- q(6088) => [
+ q(6078) => [
q(Maia),
],
- q(6089) => [
+ q(6079) => [
q(Sakata),
],
- q(6090) => [
+ q(6080) => [
q(Sakao),
],
- q(6091) => [
+ q(6081) => [
q(Skou),
],
- q(6092) => [
+ q(6082) => [
q(Skepi Creole Dutch),
],
- q(6093) => [
+ q(6083) => [
q(Seko Padang),
],
- q(6094) => [
+ q(6084) => [
q(Sikaiana),
],
- q(6095) => [
+ q(6085) => [
q(Sekar),
],
- q(6096) => [
+ q(6086) => [
q(Sissala),
],
- q(6097) => [
+ q(6087) => [
q(Sholaga),
],
- q(6098) => [
+ q(6088) => [
q(Swiss-Italian Sign Language),
],
- q(6099) => [
+ q(6089) => [
q(Selungai Murut),
],
- q(6100) => [
+ q(6090) => [
q(Southern Puget Sound Salish),
],
- q(6101) => [
+ q(6091) => [
q(Lower Silesian),
],
- q(6102) => [
+ q(6092) => [
q(Saluma),
],
- q(6103) => [
+ q(6093) => [
q(Salt-Yui),
],
- q(6104) => [
+ q(6094) => [
q(Pangutaran Sama),
],
- q(6105) => [
+ q(6095) => [
q(Salinan),
],
- q(6106) => [
+ q(6096) => [
q(Lamaholot),
],
- q(6107) => [
+ q(6097) => [
q(Salchuq),
],
- q(6108) => [
+ q(6098) => [
q(Salar),
],
- q(6109) => [
+ q(6099) => [
q(Singapore Sign Language),
],
- q(6110) => [
+ q(6100) => [
q(Sila),
],
- q(6111) => [
+ q(6101) => [
q(Selaru),
],
- q(6112) => [
+ q(6102) => [
q(Sialum),
],
- q(6113) => [
+ q(6103) => [
q(Salampasu),
],
- q(6114) => [
+ q(6104) => [
q(Selayar),
],
- q(6115) => [
+ q(6105) => [
q(Ma'ya),
],
- q(6116) => [
+ q(6106) => [
q(Simbari),
],
- q(6117) => [
+ q(6107) => [
q(Som),
],
- q(6118) => [
+ q(6108) => [
q(Sama),
],
- q(6119) => [
+ q(6109) => [
q(Auwe),
],
- q(6120) => [
+ q(6110) => [
q(Simbali),
],
- q(6121) => [
+ q(6111) => [
q(Samei),
],
- q(6122) => [
+ q(6112) => [
q(Bolinao),
],
- q(6123) => [
+ q(6113) => [
q(Central Sama),
],
- q(6124) => [
+ q(6114) => [
q(Musasa),
],
- q(6125) => [
+ q(6115) => [
q(Samaritan),
],
- q(6126) => [
+ q(6116) => [
q(Samo),
],
- q(6127) => [
+ q(6117) => [
q(Simeulue),
],
- q(6128) => [
+ q(6118) => [
q(Simte),
],
- q(6129) => [
+ q(6119) => [
q(Somray),
],
- q(6130) => [
+ q(6120) => [
q(Samvedi),
],
- q(6131) => [
+ q(6121) => [
q(Sumbawa),
],
- q(6132) => [
+ q(6122) => [
q(Samba),
],
- q(6133) => [
+ q(6123) => [
q(Semnani),
],
- q(6134) => [
+ q(6124) => [
q(Simeku),
],
- q(6135) => [
+ q(6125) => [
q(Sebuyau),
],
- q(6136) => [
+ q(6126) => [
q(Sinaugoro),
],
- q(6137) => [
+ q(6127) => [
q(Bau Bidayuh),
],
- q(6138) => [
+ q(6128) => [
q(Noon),
],
- q(6139) => [
+ q(6129) => [
q(Sanga (Democratic Republic of Congo)),
],
- q(6140) => [
+ q(6130) => [
q(Shinabo),
],
- q(6141) => [
+ q(6131) => [
q(Sensi),
],
- q(6142) => [
+ q(6132) => [
q(Riverain Sango),
],
- q(6143) => [
+ q(6133) => [
q(Sangil),
],
- q(6144) => [
+ q(6134) => [
q(Southern Ma'di),
],
- q(6145) => [
+ q(6135) => [
q(Siona),
],
- q(6146) => [
+ q(6136) => [
q(Snohomish),
],
- q(6147) => [
+ q(6137) => [
q(Siane),
],
- q(6148) => [
+ q(6138) => [
q(Sangu (Gabon)),
],
- q(6149) => [
+ q(6139) => [
q(Sihan),
],
- q(6150) => [
+ q(6140) => [
q(South West Bay),
q(Nahavaq),
],
- q(6151) => [
+ q(6141) => [
q(Senggi),
q(Viid),
],
- q(6152) => [
+ q(6142) => [
q(Sa'ban),
],
- q(6153) => [
+ q(6143) => [
q(Selee),
],
- q(6154) => [
+ q(6144) => [
q(Sam),
],
- q(6155) => [
+ q(6145) => [
q(Saniyo-Hiyewe),
],
- q(6156) => [
+ q(6146) => [
q(Sinsauru),
],
- q(6157) => [
+ q(6147) => [
q(Thai Song),
],
- q(6158) => [
+ q(6148) => [
q(Sobei),
],
- q(6159) => [
+ q(6149) => [
q(So (Democratic Republic of Congo)),
],
- q(6160) => [
+ q(6150) => [
q(Songoora),
],
- q(6161) => [
+ q(6151) => [
q(Songomeno),
],
- q(6162) => [
+ q(6152) => [
q(Aka),
],
- q(6163) => [
+ q(6153) => [
q(Sonha),
],
- q(6164) => [
+ q(6154) => [
q(Soi),
],
- q(6165) => [
+ q(6155) => [
q(Sokoro),
],
- q(6166) => [
+ q(6156) => [
q(Solos),
],
- q(6167) => [
+ q(6157) => [
q(Songo),
],
- q(6168) => [
+ q(6158) => [
q(Songe),
],
- q(6169) => [
+ q(6159) => [
q(Kanasi),
],
- q(6170) => [
+ q(6160) => [
q(Somrai),
],
- q(6171) => [
+ q(6161) => [
q(Seeku),
],
- q(6172) => [
+ q(6162) => [
q(Southern Thai),
],
- q(6173) => [
+ q(6163) => [
q(Sonsorol),
],
- q(6174) => [
+ q(6164) => [
q(Sowanda),
],
- q(6175) => [
+ q(6165) => [
q(Swo),
],
- q(6176) => [
+ q(6166) => [
q(Miyobe),
],
- q(6177) => [
+ q(6167) => [
q(Temi),
],
- q(6178) => [
+ q(6168) => [
q(Sepa (Indonesia)),
],
- q(6179) => [
+ q(6169) => [
q(Sape),
],
- q(6180) => [
+ q(6170) => [
q(Saep),
],
- q(6181) => [
+ q(6171) => [
q(Sepa (Papua New Guinea)),
],
- q(6182) => [
+ q(6172) => [
q(Sian),
],
- q(6183) => [
+ q(6173) => [
q(Saponi),
],
- q(6184) => [
+ q(6174) => [
q(Sengo),
],
- q(6185) => [
+ q(6175) => [
q(Selepet),
],
- q(6186) => [
+ q(6176) => [
q(Akukem),
],
- q(6187) => [
+ q(6177) => [
q(Sanapana),
],
- q(6188) => [
+ q(6178) => [
q(Spokane),
],
- q(6189) => [
+ q(6179) => [
q(Supyire Senoufo),
],
- q(6190) => [
+ q(6180) => [
q(Loreto-Ucayali Spanish),
],
- q(6191) => [
+ q(6181) => [
q(Saparua),
],
- q(6192) => [
+ q(6182) => [
q(Saposa),
],
- q(6193) => [
+ q(6183) => [
q(Spiti Bhoti),
],
- q(6194) => [
+ q(6184) => [
q(Sapuan),
],
- q(6195) => [
+ q(6185) => [
q(Sambalpuri),
q(Kosli),
],
- q(6196) => [
+ q(6186) => [
q(South Picene),
],
- q(6197) => [
+ q(6187) => [
q(Sabaot),
],
- q(6198) => [
+ q(6188) => [
q(Shama-Sambuga),
],
- q(6199) => [
+ q(6189) => [
q(Shau),
],
- q(6200) => [
+ q(6190) => [
q(Albanian Sign Language),
],
- q(6201) => [
+ q(6191) => [
q(Suma),
],
- q(6202) => [
+ q(6192) => [
q(Susquehannock),
],
- q(6203) => [
+ q(6193) => [
q(Sorkhei),
],
- q(6204) => [
+ q(6194) => [
q(Sou),
],
- q(6205) => [
+ q(6195) => [
q(Siculo Arabic),
],
- q(6206) => [
+ q(6196) => [
q(Sri Lankan Sign Language),
],
- q(6207) => [
+ q(6197) => [
q(Soqotri),
],
- q(6208) => [
+ q(6198) => [
q(Squamish),
],
- q(6209) => [
+ q(6199) => [
q(Saruga),
],
- q(6210) => [
+ q(6200) => [
q(Sora),
],
- q(6211) => [
+ q(6201) => [
q(Logudorese Sardinian),
],
- q(6212) => [
+ q(6202) => [
q(Sara),
],
- q(6213) => [
+ q(6203) => [
q(Nafi),
],
- q(6214) => [
+ q(6204) => [
q(Sulod),
],
- q(6215) => [
+ q(6205) => [
q(Sarikoli),
],
- q(6216) => [
+ q(6206) => [
q(Siriano),
],
- q(6217) => [
+ q(6207) => [
q(Serudung Murut),
],
- q(6218) => [
+ q(6208) => [
q(Isirawa),
],
- q(6219) => [
+ q(6209) => [
q(Saramaccan),
],
- q(6220) => [
+ q(6210) => [
q(Campidanese Sardinian),
],
- q(6221) => [
+ q(6211) => [
q(Siriono),
],
- q(6222) => [
+ q(6212) => [
q(Sarsi),
],
- q(6223) => [
+ q(6213) => [
q(Sauri),
],
- q(6224) => [
+ q(6214) => [
q(Surui),
],
- q(6225) => [
+ q(6215) => [
q(Southern Sorsoganon),
],
- q(6226) => [
+ q(6216) => [
q(Serua),
],
- q(6227) => [
+ q(6217) => [
q(Sirmauri),
],
- q(6228) => [
+ q(6218) => [
q(Sera),
],
- q(6229) => [
+ q(6219) => [
q(Shahmirzadi),
],
- q(6230) => [
+ q(6220) => [
q(Southern Sama),
],
- q(6231) => [
+ q(6221) => [
q(Suba-Simbiti),
],
- q(6232) => [
+ q(6222) => [
q(Siroi),
],
- q(6233) => [
+ q(6223) => [
q(Balangingi),
q(Bangingih Sama),
],
- q(6234) => [
+ q(6224) => [
q(Thao),
],
- q(6235) => [
+ q(6225) => [
q(Seimat),
],
- q(6236) => [
+ q(6226) => [
q(Shihhi Arabic),
],
- q(6237) => [
+ q(6227) => [
q(Sansi),
],
- q(6238) => [
+ q(6228) => [
q(Sausi),
],
- q(6239) => [
+ q(6229) => [
q(Sunam),
],
- q(6240) => [
+ q(6230) => [
q(Western Sisaala),
],
- q(6241) => [
+ q(6231) => [
q(Semnam),
],
- q(6242) => [
+ q(6232) => [
q(Waata),
],
- q(6243) => [
+ q(6233) => [
q(Sissano),
],
- q(6244) => [
+ q(6234) => [
q(Spanish Sign Language),
],
- q(6245) => [
+ q(6235) => [
q(So'a),
],
- q(6246) => [
+ q(6236) => [
q(Swiss-French Sign Language),
],
- q(6247) => [
+ q(6237) => [
q(So),
],
- q(6248) => [
+ q(6238) => [
q(Sinasina),
],
- q(6249) => [
+ q(6239) => [
q(Susuami),
],
- q(6250) => [
+ q(6240) => [
q(Shark Bay),
],
- q(6251) => [
+ q(6241) => [
q(Samberigi),
],
- q(6252) => [
+ q(6242) => [
q(Saho),
],
- q(6253) => [
+ q(6243) => [
q(Sengseng),
],
- q(6254) => [
+ q(6244) => [
q(Settla),
],
- q(6255) => [
+ q(6245) => [
q(Northern Subanen),
],
- q(6256) => [
+ q(6246) => [
q(Sentinel),
],
- q(6257) => [
+ q(6247) => [
q(Liana-Seti),
],
- q(6258) => [
+ q(6248) => [
q(Seta),
],
- q(6259) => [
+ q(6249) => [
q(Trieng),
],
- q(6260) => [
+ q(6250) => [
q(Shelta),
],
- q(6261) => [
+ q(6251) => [
q(Bulo Stieng),
],
- q(6262) => [
+ q(6252) => [
q(Matya Samo),
],
- q(6263) => [
+ q(6253) => [
q(Arammba),
],
- q(6264) => [
+ q(6254) => [
q(Stellingwerfs),
],
- q(6265) => [
+ q(6255) => [
q(Setaman),
],
- q(6266) => [
+ q(6256) => [
q(Owa),
],
- q(6267) => [
+ q(6257) => [
q(Stoney),
],
- q(6268) => [
+ q(6258) => [
q(Southeastern Tepehuan),
],
- q(6269) => [
+ q(6259) => [
q(Saterfriesisch),
],
- q(6270) => [
+ q(6260) => [
q(Straits Salish),
],
- q(6271) => [
+ q(6261) => [
q(Shumashti),
],
- q(6272) => [
+ q(6262) => [
q(Budeh Stieng),
],
- q(6273) => [
+ q(6263) => [
q(Samtao),
],
- q(6274) => [
+ q(6264) => [
q(Silt'e),
],
- q(6275) => [
+ q(6265) => [
q(Satawalese),
],
- q(6276) => [
+ q(6266) => [
q(Siberian Tatar),
],
- q(6277) => [
+ q(6267) => [
q(Sulka),
],
- q(6278) => [
+ q(6268) => [
q(Suku),
],
- q(6279) => [
+ q(6269) => [
q(Western Subanon),
],
- q(6280) => [
+ q(6270) => [
q(Suena),
],
- q(6281) => [
+ q(6271) => [
q(Suganga),
],
- q(6282) => [
+ q(6272) => [
q(Suki),
],
- q(6283) => [
+ q(6273) => [
q(Shubi),
],
- q(6284) => [
+ q(6274) => [
q(Suri),
],
- q(6285) => [
+ q(6275) => [
q(Mwaghavul),
],
- q(6286) => [
+ q(6276) => [
q(Subtiaba),
],
- q(6287) => [
+ q(6277) => [
q(Puroik),
],
- q(6288) => [
+ q(6278) => [
q(Sumbwa),
],
- q(6289) => [
+ q(6279) => [
q(Suya),
],
- q(6290) => [
+ q(6280) => [
q(Sunwar),
],
- q(6291) => [
+ q(6281) => [
q(Svan),
],
- q(6292) => [
+ q(6282) => [
q(Ulau-Suain),
],
- q(6293) => [
+ q(6283) => [
q(Vincentian Creole English),
],
- q(6294) => [
+ q(6284) => [
q(Serili),
],
- q(6295) => [
+ q(6285) => [
q(Slovakian Sign Language),
],
- q(6296) => [
+ q(6286) => [
q(Slavomolisano),
],
- q(6297) => [
- q(Savara),
- ],
- q(6298) => [
+ q(6287) => [
q(Savosavo),
],
- q(6299) => [
+ q(6288) => [
q(Skalvian),
],
- q(6300) => [
+ q(6289) => [
q(Maore Comorian),
],
- q(6301) => [
+ q(6290) => [
q(Congo Swahili),
],
- q(6302) => [
+ q(6291) => [
q(Sere),
],
- q(6303) => [
+ q(6292) => [
q(Swabian),
],
- q(6304) => [
+ q(6293) => [
q(Swahili (individual language)),
q(Kiswahili),
],
- q(6305) => [
+ q(6294) => [
q(Sui),
],
- q(6306) => [
+ q(6295) => [
q(Sira),
],
- q(6307) => [
+ q(6296) => [
q(Malawi Sena),
],
- q(6308) => [
+ q(6297) => [
q(Swedish Sign Language),
],
- q(6309) => [
+ q(6298) => [
q(Samosa),
],
- q(6310) => [
+ q(6299) => [
q(Sawknah),
],
- q(6311) => [
+ q(6300) => [
q(Shanenawa),
],
- q(6312) => [
+ q(6301) => [
q(Suau),
],
- q(6313) => [
+ q(6302) => [
q(Sharwa),
],
- q(6314) => [
+ q(6303) => [
q(Saweru),
],
- q(6315) => [
+ q(6304) => [
q(Seluwasan),
],
- q(6316) => [
+ q(6305) => [
q(Sawila),
],
- q(6317) => [
+ q(6306) => [
q(Suwawa),
],
- q(6318) => [
+ q(6307) => [
q(Shekhawati),
],
- q(6319) => [
+ q(6308) => [
q(Sowa),
],
- q(6320) => [
+ q(6309) => [
q(Suruaha),
],
- q(6321) => [
+ q(6310) => [
q(Sarua),
],
- q(6322) => [
+ q(6311) => [
q(Suba),
],
- q(6323) => [
+ q(6312) => [
q(Sicanian),
],
- q(6324) => [
+ q(6313) => [
q(Sighu),
],
- q(6325) => [
+ q(6314) => [
q(Shixing),
],
- q(6326) => [
+ q(6315) => [
q(Southern Kalapuya),
],
- q(6327) => [
+ q(6316) => [
q(Selian),
],
- q(6328) => [
+ q(6317) => [
q(Samre),
],
- q(6329) => [
+ q(6318) => [
q(Sangir),
],
- q(6330) => [
+ q(6319) => [
q(Sorothaptic),
],
- q(6331) => [
+ q(6320) => [
q(Saaroa),
],
- q(6332) => [
+ q(6321) => [
q(Sasaru),
],
- q(6333) => [
+ q(6322) => [
q(Upper Saxon),
],
- q(6334) => [
+ q(6323) => [
q(Saxwe Gbe),
],
- q(6335) => [
+ q(6324) => [
q(Siang),
],
- q(6336) => [
+ q(6325) => [
q(Central Subanen),
],
- q(6337) => [
+ q(6326) => [
q(Seki),
],
- q(6338) => [
+ q(6327) => [
q(Sukur),
],
- q(6339) => [
+ q(6328) => [
q(Sylheti),
],
- q(6340) => [
+ q(6329) => [
q(Maya Samo),
],
- q(6341) => [
+ q(6330) => [
q(Senaya),
],
- q(6342) => [
+ q(6331) => [
q(Suoy),
],
- q(6343) => [
+ q(6332) => [
q(Sinyar),
],
- q(6344) => [
+ q(6333) => [
q(Kagate),
],
- q(6345) => [
+ q(6334) => [
q(Samay),
],
- q(6346) => [
+ q(6335) => [
q(Al-Sayyid Bedouin Sign Language),
],
- q(6347) => [
+ q(6336) => [
q(Semelai),
],
- q(6348) => [
+ q(6337) => [
q(Ngalum),
],
- q(6349) => [
+ q(6338) => [
q(Semaq Beri),
],
- q(6350) => [
+ q(6339) => [
q(Seru),
],
- q(6351) => [
+ q(6340) => [
q(Seze),
],
- q(6352) => [
+ q(6341) => [
q(Sengele),
],
- q(6353) => [
+ q(6342) => [
q(Silesian),
],
- q(6354) => [
+ q(6343) => [
q(Sula),
],
- q(6355) => [
+ q(6344) => [
q(Suabo),
],
- q(6356) => [
+ q(6345) => [
q(Isu (Fako Division)),
],
- q(6357) => [
+ q(6346) => [
q(Sawai),
],
- q(6358) => [
+ q(6347) => [
q(Lower Tanana),
],
- q(6359) => [
+ q(6348) => [
q(Tabassaran),
],
- q(6360) => [
+ q(6349) => [
q(Lowland Tarahumara),
],
- q(6361) => [
+ q(6350) => [
q(Tause),
],
- q(6362) => [
+ q(6351) => [
q(Tariana),
],
- q(6363) => [
+ q(6352) => [
q(Tapirape),
],
- q(6364) => [
+ q(6353) => [
q(Tagoi),
],
- q(6365) => [
+ q(6354) => [
q(Eastern Tamang),
],
- q(6366) => [
+ q(6355) => [
q(Tala),
],
- q(6367) => [
+ q(6356) => [
q(Tal),
],
- q(6368) => [
+ q(6357) => [
q(Tangale),
],
- q(6369) => [
+ q(6358) => [
q(Yami),
],
- q(6370) => [
+ q(6359) => [
q(Taabwa),
],
- q(6371) => [
+ q(6360) => [
q(Tamasheq),
],
- q(6372) => [
+ q(6361) => [
q(Central Tarahumara),
],
- q(6373) => [
+ q(6362) => [
q(Tay Boi),
],
- q(6374) => [
+ q(6363) => [
q(Upper Tanana),
],
- q(6375) => [
+ q(6364) => [
q(Tatuyo),
],
- q(6376) => [
+ q(6365) => [
q(Tai),
],
- q(6377) => [
+ q(6366) => [
q(Tamki),
],
- q(6378) => [
+ q(6367) => [
q(Atayal),
],
- q(6379) => [
+ q(6368) => [
q(Tocho),
],
- q(6380) => [
+ q(6369) => [
q(Aikana),
],
- q(6381) => [
+ q(6370) => [
q(Tapeba),
],
- q(6382) => [
+ q(6371) => [
q(Takia),
],
- q(6383) => [
+ q(6372) => [
q(Kaki Ae),
],
- q(6384) => [
+ q(6373) => [
q(Tanimbili),
],
- q(6385) => [
+ q(6374) => [
q(Mandara),
],
- q(6386) => [
+ q(6375) => [
q(North Tairora),
],
- q(6387) => [
+ q(6376) => [
q(Thurawal),
],
- q(6388) => [
+ q(6377) => [
q(Gaam),
],
- q(6389) => [
+ q(6378) => [
q(Tiang),
],
- q(6390) => [
+ q(6379) => [
q(Calamian Tagbanwa),
],
- q(6391) => [
+ q(6380) => [
q(Tboli),
],
- q(6392) => [
+ q(6381) => [
q(Tagbu),
],
- q(6393) => [
+ q(6382) => [
q(Barro Negro Tunebo),
],
- q(6394) => [
+ q(6383) => [
q(Tawala),
],
- q(6395) => [
+ q(6384) => [
q(Taworta),
q(Diebroud),
],
- q(6396) => [
+ q(6385) => [
q(Tumtum),
],
- q(6397) => [
+ q(6386) => [
q(Tanguat),
],
- q(6398) => [
+ q(6387) => [
q(Tembo (Kitembo)),
],
- q(6399) => [
+ q(6388) => [
q(Tubar),
],
- q(6400) => [
+ q(6389) => [
q(Tobo),
],
- q(6401) => [
+ q(6390) => [
q(Tagbanwa),
],
- q(6402) => [
+ q(6391) => [
q(Kapin),
],
- q(6403) => [
+ q(6392) => [
q(Tabaru),
],
- q(6404) => [
+ q(6393) => [
q(Ditammari),
],
- q(6405) => [
+ q(6394) => [
q(Ticuna),
],
- q(6406) => [
+ q(6395) => [
q(Tanacross),
],
- q(6407) => [
+ q(6396) => [
q(Datooga),
],
- q(6408) => [
+ q(6397) => [
q(Tafi),
],
- q(6409) => [
+ q(6398) => [
q(Southern Tutchone),
],
- q(6410) => [
+ q(6399) => [
q(Malinaltepec Me'phaa),
q(Malinaltepec Tlapanec),
],
- q(6411) => [
+ q(6400) => [
q(Tamagario),
],
- q(6412) => [
+ q(6401) => [
q(Turks And Caicos Creole English),
],
- q(6413) => [
+ q(6402) => [
q(Wara),
],
- q(6414) => [
+ q(6403) => [
q(Tchitchege),
],
- q(6415) => [
+ q(6404) => [
q(Taman (Myanmar)),
],
- q(6416) => [
+ q(6405) => [
q(Tanahmerah),
],
- q(6417) => [
+ q(6406) => [
q(Tichurong),
],
- q(6418) => [
+ q(6407) => [
q(Taungyo),
],
- q(6419) => [
+ q(6408) => [
q(Tawr Chin),
],
- q(6420) => [
+ q(6409) => [
q(Kaiy),
],
- q(6421) => [
+ q(6410) => [
q(Torres Strait Creole),
],
- q(6422) => [
+ q(6411) => [
q(T'en),
],
- q(6423) => [
+ q(6412) => [
q(Southeastern Tarahumara),
],
- q(6424) => [
+ q(6413) => [
q(Tecpatlan Totonac),
],
- q(6425) => [
+ q(6414) => [
q(Toda),
],
- q(6426) => [
+ q(6415) => [
q(Tulu),
],
- q(6427) => [
+ q(6416) => [
q(Thado Chin),
],
- q(6428) => [
+ q(6417) => [
q(Tagdal),
],
- q(6429) => [
+ q(6418) => [
q(Panchpargania),
],
- q(6430) => [
+ q(6419) => [
q(Embera-Tado),
],
- q(6431) => [
+ q(6420) => [
q(Tai Nua),
],
- q(6432) => [
+ q(6421) => [
q(Tiranige Diga Dogon),
],
- q(6433) => [
+ q(6422) => [
q(Talieng),
],
- q(6434) => [
+ q(6423) => [
q(Western Tamang),
],
- q(6435) => [
+ q(6424) => [
q(Thulung),
],
- q(6436) => [
+ q(6425) => [
q(Tomadino),
],
- q(6437) => [
+ q(6426) => [
q(Tajio),
],
- q(6438) => [
+ q(6427) => [
q(Tambas),
],
- q(6439) => [
+ q(6428) => [
q(Sur),
],
- q(6440) => [
+ q(6429) => [
+ q(Taruma),
+ ],
+ q(6430) => [
q(Tondano),
],
- q(6441) => [
+ q(6431) => [
q(Teme),
],
- q(6442) => [
+ q(6432) => [
q(Tita),
],
- q(6443) => [
+ q(6433) => [
q(Todrah),
],
- q(6444) => [
+ q(6434) => [
q(Doutai),
],
- q(6445) => [
+ q(6435) => [
q(Tetun Dili),
],
- q(6446) => [
- q(Tempasuk Dusun),
- ],
- q(6447) => [
+ q(6436) => [
q(Toro),
],
- q(6448) => [
+ q(6437) => [
q(Tandroy-Mahafaly Malagasy),
],
- q(6449) => [
+ q(6438) => [
q(Tadyawan),
],
- q(6450) => [
+ q(6439) => [
q(Temiar),
],
- q(6451) => [
+ q(6440) => [
q(Tetete),
],
- q(6452) => [
+ q(6441) => [
q(Terik),
],
- q(6453) => [
+ q(6442) => [
q(Tepo Krumen),
],
- q(6454) => [
+ q(6443) => [
q(Huehuetla Tepehua),
],
- q(6455) => [
+ q(6444) => [
q(Teressa),
],
- q(6456) => [
+ q(6445) => [
q(Teke-Tege),
],
- q(6457) => [
+ q(6446) => [
q(Tehuelche),
],
- q(6458) => [
+ q(6447) => [
q(Torricelli),
],
- q(6459) => [
+ q(6448) => [
q(Ibali Teke),
],
- q(6460) => [
+ q(6449) => [
q(Tama (Colombia)),
],
- q(6461) => [
+ q(6450) => [
q(Teso),
],
- q(6462) => [
+ q(6451) => [
q(Tepecano),
],
- q(6463) => [
+ q(6452) => [
q(Temein),
],
- q(6464) => [
+ q(6453) => [
q(Tengger),
],
- q(6465) => [
+ q(6454) => [
q(Soo),
],
- q(6466) => [
+ q(6455) => [
q(Teor),
],
- q(6467) => [
+ q(6456) => [
q(Tewa (USA)),
],
- q(6468) => [
+ q(6457) => [
q(Tennet),
],
- q(6469) => [
+ q(6458) => [
q(Tulishi),
],
- q(6470) => [
+ q(6459) => [
q(Tofin Gbe),
],
- q(6471) => [
+ q(6460) => [
q(Tanaina),
],
- q(6472) => [
+ q(6461) => [
q(Tefaro),
],
- q(6473) => [
+ q(6462) => [
q(Teribe),
],
- q(6474) => [
+ q(6463) => [
q(Ternate),
],
- q(6475) => [
+ q(6464) => [
q(Sagalla),
],
- q(6476) => [
+ q(6465) => [
q(Tobilung),
],
- q(6477) => [
+ q(6466) => [
q(Tigak),
],
- q(6478) => [
+ q(6467) => [
q(Ciwogai),
],
- q(6479) => [
+ q(6468) => [
q(Eastern Gorkha Tamang),
],
- q(6480) => [
+ q(6469) => [
q(Chalikha),
],
- q(6481) => [
+ q(6470) => [
q(Tobagonian Creole English),
],
- q(6482) => [
+ q(6471) => [
q(Lawunuia),
],
- q(6483) => [
+ q(6472) => [
q(Tagin),
],
- q(6484) => [
+ q(6473) => [
q(Tandaganon),
],
- q(6485) => [
+ q(6474) => [
q(Sudest),
],
- q(6486) => [
+ q(6475) => [
q(Tangoa),
],
- q(6487) => [
+ q(6476) => [
q(Tring),
],
- q(6488) => [
+ q(6477) => [
q(Tareng),
],
- q(6489) => [
+ q(6478) => [
q(Nume),
],
- q(6490) => [
+ q(6479) => [
q(Central Tagbanwa),
],
- q(6491) => [
+ q(6480) => [
q(Tanggu),
],
- q(6492) => [
+ q(6481) => [
q(Tingui-Boto),
],
- q(6493) => [
+ q(6482) => [
q(Tagwana Senoufo),
],
- q(6494) => [
+ q(6483) => [
q(Tagish),
],
- q(6495) => [
+ q(6484) => [
q(Togoyo),
],
- q(6496) => [
+ q(6485) => [
q(Tagalaka),
],
- q(6497) => [
- q(Tai Hang Tong),
- ],
- q(6498) => [
+ q(6486) => [
q(Thayore),
],
- q(6499) => [
+ q(6487) => [
q(Chitwania Tharu),
],
- q(6500) => [
+ q(6488) => [
q(Thangmi),
],
- q(6501) => [
+ q(6489) => [
q(Northern Tarahumara),
],
- q(6502) => [
+ q(6490) => [
q(Tai Long),
],
- q(6503) => [
+ q(6491) => [
q(Tharaka),
q(Kitharaka),
],
- q(6504) => [
+ q(6492) => [
q(Dangaura Tharu),
],
- q(6505) => [
+ q(6493) => [
q(Aheu),
],
- q(6506) => [
+ q(6494) => [
q(Thachanadan),
],
- q(6507) => [
+ q(6495) => [
q(Thompson),
],
- q(6508) => [
+ q(6496) => [
q(Kochila Tharu),
],
- q(6509) => [
+ q(6497) => [
q(Rana Tharu),
],
- q(6510) => [
+ q(6498) => [
q(Thakali),
],
- q(6511) => [
+ q(6499) => [
q(Tahltan),
],
- q(6512) => [
+ q(6500) => [
q(Thuri),
],
- q(6513) => [
+ q(6501) => [
q(Tahaggart Tamahaq),
],
- q(6514) => [
+ q(6502) => [
q(Thudam),
],
- q(6515) => [
+ q(6503) => [
q(Tha),
],
- q(6516) => [
+ q(6504) => [
q(Tayart Tamajeq),
],
- q(6517) => [
+ q(6505) => [
q(Tidikelt Tamazight),
],
- q(6518) => [
+ q(6506) => [
q(Tira),
],
- q(6519) => [
- q(Tidong),
- ],
- q(6520) => [
+ q(6507) => [
q(Tifal),
],
- q(6521) => [
+ q(6508) => [
q(Timugon Murut),
],
- q(6522) => [
+ q(6509) => [
q(Tiene),
],
- q(6523) => [
+ q(6510) => [
q(Tilung),
],
- q(6524) => [
+ q(6511) => [
q(Tikar),
],
- q(6525) => [
+ q(6512) => [
q(Tillamook),
],
- q(6526) => [
+ q(6513) => [
q(Timbe),
],
- q(6527) => [
+ q(6514) => [
q(Tindi),
],
- q(6528) => [
+ q(6515) => [
q(Teop),
],
- q(6529) => [
+ q(6516) => [
q(Trimuris),
],
- q(6530) => [
+ q(6517) => [
q(Tiefo),
],
- q(6531) => [
+ q(6518) => [
q(Masadiit Itneg),
],
- q(6532) => [
+ q(6519) => [
q(Tinigua),
],
- q(6533) => [
+ q(6520) => [
q(Adasen),
],
- q(6534) => [
+ q(6521) => [
q(Tiwi),
],
- q(6535) => [
+ q(6522) => [
q(Southern Tiwa),
],
- q(6536) => [
+ q(6523) => [
q(Tiruray),
],
- q(6537) => [
+ q(6524) => [
q(Tai Hongjin),
],
- q(6538) => [
+ q(6525) => [
q(Tajuasohn),
],
- q(6539) => [
+ q(6526) => [
q(Tunjung),
],
- q(6540) => [
+ q(6527) => [
q(Northern Tujia),
],
- q(6541) => [
+ q(6528) => [
q(Tai Laing),
],
- q(6542) => [
+ q(6529) => [
q(Timucua),
],
- q(6543) => [
+ q(6530) => [
q(Tonjon),
],
- q(6544) => [
+ q(6531) => [
q(Temacine Tamazight),
],
- q(6545) => [
+ q(6532) => [
q(Southern Tujia),
],
- q(6546) => [
+ q(6533) => [
q(Tjurruru),
],
- q(6547) => [
+ q(6534) => [
q(Djabwurrung),
],
- q(6548) => [
+ q(6535) => [
q(Truka),
],
- q(6549) => [
+ q(6536) => [
q(Buksa),
],
- q(6550) => [
+ q(6537) => [
q(Tukudede),
],
- q(6551) => [
+ q(6538) => [
q(Takwane),
],
- q(6552) => [
+ q(6539) => [
q(Tukumanfed),
],
- q(6553) => [
+ q(6540) => [
q(Tesaka Malagasy),
],
- q(6554) => [
+ q(6541) => [
q(Takelma),
],
- q(6555) => [
+ q(6542) => [
q(Toku-No-Shima),
],
- q(6556) => [
+ q(6543) => [
q(Tikopia),
],
- q(6557) => [
+ q(6544) => [
q(Tee),
],
- q(6558) => [
+ q(6545) => [
q(Tsakhur),
],
- q(6559) => [
+ q(6546) => [
q(Takestani),
],
- q(6560) => [
+ q(6547) => [
q(Kathoriya Tharu),
],
- q(6561) => [
+ q(6548) => [
q(Upper Necaxa Totonac),
],
- q(6562) => [
+ q(6549) => [
q(Mur Pano),
],
- q(6563) => [
+ q(6550) => [
q(Teanu),
],
- q(6564) => [
+ q(6551) => [
q(Tangko),
],
- q(6565) => [
+ q(6552) => [
q(Takua),
],
- q(6566) => [
+ q(6553) => [
q(Southwestern Tepehuan),
],
- q(6567) => [
+ q(6554) => [
q(Tobelo),
],
- q(6568) => [
+ q(6555) => [
q(Yecuatla Totonac),
],
- q(6569) => [
+ q(6556) => [
q(Talaud),
],
- q(6570) => [
+ q(6557) => [
q(Telefol),
],
- q(6571) => [
+ q(6558) => [
q(Tofanma),
],
- q(6572) => [
+ q(6559) => [
q(Talinga-Bwisi),
],
- q(6573) => [
+ q(6560) => [
q(Taloki),
],
- q(6574) => [
+ q(6561) => [
q(Tetela),
],
- q(6575) => [
+ q(6562) => [
q(Tolomako),
],
- q(6576) => [
+ q(6563) => [
q(Talondo'),
],
- q(6577) => [
+ q(6564) => [
q(Talodi),
],
- q(6578) => [
+ q(6565) => [
q(Filomena Mata-Coahuitlan Totonac),
],
- q(6579) => [
+ q(6566) => [
q(Tai Loi),
],
- q(6580) => [
+ q(6567) => [
q(Talise),
],
- q(6581) => [
+ q(6568) => [
q(Tambotalo),
],
- q(6582) => [
+ q(6569) => [
+ q(Sou Nama),
q(Teluti),
],
- q(6583) => [
+ q(6570) => [
q(Tulehu),
],
- q(6584) => [
+ q(6571) => [
q(Taliabu),
],
- q(6585) => [
+ q(6572) => [
q(Khehek),
],
- q(6586) => [
+ q(6573) => [
q(Talysh),
],
- q(6587) => [
+ q(6574) => [
q(Tama (Chad)),
],
- q(6588) => [
+ q(6575) => [
q(Katbol),
q(Avava),
],
- q(6589) => [
+ q(6576) => [
q(Tumak),
],
- q(6590) => [
+ q(6577) => [
q(Haruai),
],
- q(6591) => [
+ q(6578) => [
q(Tremembe),
],
- q(6592) => [
+ q(6579) => [
q(Toba-Maskoy),
],
- q(6593) => [
+ q(6580) => [
q(Ternateno),
],
- q(6594) => [
+ q(6581) => [
q(Tutuba),
],
- q(6595) => [
+ q(6582) => [
q(Samarokena),
],
- q(6596) => [
+ q(6583) => [
q(Northwestern Tamang),
],
- q(6597) => [
+ q(6584) => [
q(Tamnim Citak),
],
- q(6598) => [
+ q(6585) => [
q(Tai Thanh),
],
- q(6599) => [
+ q(6586) => [
q(Taman (Indonesia)),
],
- q(6600) => [
+ q(6587) => [
q(Temoq),
],
- q(6601) => [
- q(Tai Mene),
- ],
- q(6602) => [
+ q(6588) => [
q(Tumleo),
],
- q(6603) => [
+ q(6589) => [
q(Jewish Babylonian Aramaic (ca. 200-1200 CE)),
],
- q(6604) => [
+ q(6590) => [
q(Tima),
],
- q(6605) => [
+ q(6591) => [
q(Tasmate),
],
- q(6606) => [
+ q(6592) => [
q(Iau),
],
- q(6607) => [
+ q(6593) => [
q(Tembo (Motembo)),
],
- q(6608) => [
+ q(6594) => [
q(Temuan),
],
- q(6609) => [
+ q(6595) => [
q(Tami),
],
- q(6610) => [
+ q(6596) => [
q(Tamanaku),
],
- q(6611) => [
+ q(6597) => [
q(Tacana),
],
- q(6612) => [
+ q(6598) => [
q(Western Tunebo),
],
- q(6613) => [
+ q(6599) => [
q(Tanimuca-Retuara),
],
- q(6614) => [
+ q(6600) => [
q(Angosturas Tunebo),
],
- q(6615) => [
- q(Tinoc Kallahan),
- ],
- q(6616) => [
+ q(6601) => [
q(Tobanga),
],
- q(6617) => [
+ q(6602) => [
q(Maiani),
],
- q(6618) => [
+ q(6603) => [
q(Tandia),
],
- q(6619) => [
+ q(6604) => [
q(Kwamera),
],
- q(6620) => [
+ q(6605) => [
q(Lenakel),
],
- q(6621) => [
+ q(6606) => [
q(Tabla),
],
- q(6622) => [
+ q(6607) => [
q(North Tanna),
],
- q(6623) => [
+ q(6608) => [
q(Toromono),
],
- q(6624) => [
+ q(6609) => [
q(Whitesands),
],
- q(6625) => [
+ q(6610) => [
q(Taino),
],
- q(6626) => [
+ q(6611) => [
q(Menik),
],
- q(6627) => [
+ q(6612) => [
q(Tenis),
],
- q(6628) => [
+ q(6613) => [
q(Tontemboan),
],
- q(6629) => [
+ q(6614) => [
q(Tay Khang),
],
- q(6630) => [
+ q(6615) => [
q(Tangchangya),
],
- q(6631) => [
+ q(6616) => [
q(Tonsawang),
],
- q(6632) => [
+ q(6617) => [
q(Tanema),
],
- q(6633) => [
+ q(6618) => [
q(Tongwe),
],
- q(6634) => [
- q(Tonga (Thailand)),
+ q(6619) => [
+ q(Ten'edn),
],
- q(6635) => [
+ q(6620) => [
q(Toba),
],
- q(6636) => [
+ q(6621) => [
q(Coyutla Totonac),
],
- q(6637) => [
+ q(6622) => [
q(Toma),
],
- q(6638) => [
- q(Tomedes),
- ],
- q(6639) => [
+ q(6623) => [
q(Gizrra),
],
- q(6640) => [
+ q(6624) => [
q(Gitonga),
],
- q(6641) => [
+ q(6625) => [
q(Tonga (Zambia)),
],
- q(6642) => [
+ q(6626) => [
q(Tojolabal),
],
- q(6643) => [
+ q(6627) => [
q(Tolowa),
],
- q(6644) => [
+ q(6628) => [
q(Tombulu),
],
- q(6645) => [
+ q(6629) => [
q(Xicotepec De Juarez Totonac),
],
- q(6646) => [
+ q(6630) => [
q(Papantla Totonac),
],
- q(6647) => [
+ q(6631) => [
q(Toposa),
],
- q(6648) => [
+ q(6632) => [
q(Togbo-Vara Banda),
],
- q(6649) => [
+ q(6633) => [
q(Highland Totonac),
],
- q(6650) => [
+ q(6634) => [
q(Tho),
],
- q(6651) => [
+ q(6635) => [
q(Upper Taromi),
],
- q(6652) => [
+ q(6636) => [
q(Jemez),
],
- q(6653) => [
+ q(6637) => [
q(Tobian),
],
- q(6654) => [
+ q(6638) => [
q(Topoiyo),
],
- q(6655) => [
+ q(6639) => [
q(To),
],
- q(6656) => [
+ q(6640) => [
q(Taupota),
],
- q(6657) => [
+ q(6641) => [
q(Azoyu Me'phaa),
q(Azoyu Tlapanec),
],
- q(6658) => [
+ q(6642) => [
q(Tippera),
],
- q(6659) => [
+ q(6643) => [
q(Tarpia),
],
- q(6660) => [
+ q(6644) => [
q(Kula),
],
- q(6661) => [
+ q(6645) => [
q(Tapiete),
],
- q(6662) => [
+ q(6646) => [
q(Tupinikin),
],
- q(6663) => [
+ q(6647) => [
q(Tlacoapa Me'phaa),
q(Tlacoapa Tlapanec),
],
- q(6664) => [
+ q(6648) => [
q(Tampulma),
],
- q(6665) => [
+ q(6649) => [
q(Tupinamba),
],
- q(6666) => [
+ q(6650) => [
q(Tai Pao),
],
- q(6667) => [
+ q(6651) => [
q(Pisaflores Tepehua),
],
- q(6668) => [
+ q(6652) => [
q(Tukpa),
],
- q(6669) => [
+ q(6653) => [
q(Tupari),
],
- q(6670) => [
+ q(6654) => [
q(Tlachichilco Tepehua),
],
- q(6671) => [
+ q(6655) => [
q(Tampuan),
],
- q(6672) => [
+ q(6656) => [
q(Tanapag),
],
- q(6673) => [
+ q(6657) => [
q(Tupi),
],
- q(6674) => [
+ q(6658) => [
q(Acatepec Me'phaa),
q(Acatepec Tlapanec),
],
- q(6675) => [
+ q(6659) => [
q(Trumai),
],
- q(6676) => [
+ q(6660) => [
q(Tinputz),
],
- q(6677) => [
+ q(6661) => [
q(Tembe),
],
- q(6678) => [
+ q(6662) => [
q(Lehali),
],
- q(6679) => [
+ q(6663) => [
q(Turumsa),
],
- q(6680) => [
+ q(6664) => [
q(Tenino),
],
- q(6681) => [
+ q(6665) => [
q(Toaripi),
],
- q(6682) => [
+ q(6666) => [
q(Tomoip),
],
- q(6683) => [
+ q(6667) => [
q(Tunni),
],
- q(6684) => [
+ q(6668) => [
q(Torona),
],
- q(6685) => [
+ q(6669) => [
q(Western Totonac),
],
- q(6686) => [
+ q(6670) => [
q(Touo),
],
- q(6687) => [
+ q(6671) => [
q(Tonkawa),
],
- q(6688) => [
+ q(6672) => [
q(Tirahi),
],
- q(6689) => [
+ q(6673) => [
q(Terebu),
],
- q(6690) => [
+ q(6674) => [
q(Copala Triqui),
],
- q(6691) => [
+ q(6675) => [
q(Turi),
],
- q(6692) => [
+ q(6676) => [
q(East Tarangan),
],
- q(6693) => [
+ q(6677) => [
q(Trinidadian Creole English),
],
- q(6694) => [
+ q(6678) => [
q(Lishan Didan),
],
- q(6695) => [
+ q(6679) => [
q(Turaka),
],
- q(6696) => [
+ q(6680) => [
q(Trio),
],
- q(6697) => [
+ q(6681) => [
q(Toram),
],
- q(6698) => [
+ q(6682) => [
q(Traveller Scottish),
],
- q(6699) => [
+ q(6683) => [
q(Tregami),
],
- q(6700) => [
+ q(6684) => [
q(Trinitario),
],
- q(6701) => [
+ q(6685) => [
q(Tarao Naga),
],
- q(6702) => [
+ q(6686) => [
q(Kok Borok),
],
- q(6703) => [
+ q(6687) => [
q(San Martin Itunyoso Triqui),
],
- q(6704) => [
+ q(6688) => [
q(Taushiro),
],
- q(6705) => [
+ q(6689) => [
q(Chicahuaxtla Triqui),
],
- q(6706) => [
+ q(6690) => [
q(Tunggare),
],
- q(6707) => [
+ q(6691) => [
q(Turoyo),
q(Surayt),
],
- q(6708) => [
+ q(6692) => [
q(Taroko),
],
- q(6709) => [
+ q(6693) => [
q(Torwali),
],
- q(6710) => [
+ q(6694) => [
q(Tringgus-Sembaan Bidayuh),
],
- q(6711) => [
+ q(6695) => [
q(Turung),
],
- q(6712) => [
+ q(6696) => [
q(Tora),
],
- q(6713) => [
+ q(6697) => [
q(Tsaangi),
],
- q(6714) => [
+ q(6698) => [
q(Tsamai),
],
- q(6715) => [
+ q(6699) => [
q(Tswa),
],
- q(6716) => [
+ q(6700) => [
q(Tsakonian),
],
- q(6717) => [
+ q(6701) => [
q(Tunisian Sign Language),
],
- q(6718) => [
+ q(6702) => [
q(Tausug),
],
- q(6719) => [
+ q(6703) => [
q(Tsuvan),
],
- q(6720) => [
+ q(6704) => [
q(Tshangla),
],
- q(6721) => [
+ q(6705) => [
q(Tseku),
],
- q(6722) => [
+ q(6706) => [
q(Ts'un-Lao),
],
- q(6723) => [
+ q(6707) => [
q(Turkish Sign Language),
q(Turk Isaret Dili),
],
- q(6724) => [
+ q(6708) => [
q(Northern Toussian),
],
- q(6725) => [
+ q(6709) => [
q(Thai Sign Language),
],
- q(6726) => [
+ q(6710) => [
q(Akei),
],
- q(6727) => [
+ q(6711) => [
q(Taiwan Sign Language),
],
- q(6728) => [
+ q(6712) => [
q(Tondi Songway Kiini),
],
- q(6729) => [
+ q(6713) => [
q(Tsou),
],
- q(6730) => [
+ q(6714) => [
q(Tsogo),
],
- q(6731) => [
+ q(6715) => [
q(Tsishingini),
],
- q(6732) => [
+ q(6716) => [
q(Mubami),
],
- q(6733) => [
+ q(6717) => [
q(Tebul Sign Language),
],
- q(6734) => [
+ q(6718) => [
q(Purepecha),
],
- q(6735) => [
+ q(6719) => [
q(Tutelo),
],
- q(6736) => [
+ q(6720) => [
q(Gaa),
],
- q(6737) => [
+ q(6721) => [
q(Tektiteko),
],
- q(6738) => [
+ q(6722) => [
q(Tauade),
],
- q(6739) => [
+ q(6723) => [
q(Bwanabwana),
],
- q(6740) => [
+ q(6724) => [
q(Tuotomb),
],
- q(6741) => [
+ q(6725) => [
q(Tutong),
],
- q(6742) => [
+ q(6726) => [
q(Upper Ta'oih),
],
- q(6743) => [
+ q(6727) => [
q(Tobati),
],
- q(6744) => [
+ q(6728) => [
q(Tooro),
],
- q(6745) => [
+ q(6729) => [
q(Totoro),
],
- q(6746) => [
+ q(6730) => [
q(Totela),
],
- q(6747) => [
+ q(6731) => [
q(Northern Tutchone),
],
- q(6748) => [
+ q(6732) => [
q(Towei),
],
- q(6749) => [
+ q(6733) => [
q(Lower Ta'oih),
],
- q(6750) => [
+ q(6734) => [
q(Tombelala),
],
- q(6751) => [
+ q(6735) => [
q(Tawallammat Tamajaq),
],
- q(6752) => [
+ q(6736) => [
q(Tera),
],
- q(6753) => [
+ q(6737) => [
q(Northeastern Thai),
],
- q(6754) => [
+ q(6738) => [
q(Muslim Tat),
],
- q(6755) => [
+ q(6739) => [
q(Torau),
],
- q(6756) => [
+ q(6740) => [
q(Titan),
],
- q(6757) => [
+ q(6741) => [
q(Long Wat),
],
- q(6758) => [
+ q(6742) => [
q(Sikaritai),
],
- q(6759) => [
+ q(6743) => [
q(Tsum),
],
- q(6760) => [
+ q(6744) => [
q(Wiarumus),
],
- q(6761) => [
+ q(6745) => [
q(Tubatulabal),
],
- q(6762) => [
+ q(6746) => [
q(Mutu),
],
- q(6763) => [
+ q(6747) => [
q(Tuxa),
],
- q(6764) => [
+ q(6748) => [
q(Tuyuca),
],
- q(6765) => [
+ q(6749) => [
q(Central Tunebo),
],
- q(6766) => [
+ q(6750) => [
q(Tunia),
],
- q(6767) => [
+ q(6751) => [
q(Taulil),
],
- q(6768) => [
+ q(6752) => [
q(Tupuri),
],
- q(6769) => [
+ q(6753) => [
q(Tugutil),
],
- q(6770) => [
+ q(6754) => [
q(Tula),
],
- q(6771) => [
+ q(6755) => [
q(Tunica),
],
- q(6772) => [
+ q(6756) => [
q(Tucano),
],
- q(6773) => [
+ q(6757) => [
q(Tedaga),
],
- q(6774) => [
+ q(6758) => [
q(Tuscarora),
],
- q(6775) => [
+ q(6759) => [
q(Tututni),
],
- q(6776) => [
+ q(6760) => [
q(Turkana),
],
- q(6777) => [
+ q(6761) => [
q(Tuxinawa),
],
- q(6778) => [
+ q(6762) => [
q(Tugen),
],
- q(6779) => [
+ q(6763) => [
q(Turka),
],
- q(6780) => [
+ q(6764) => [
q(Vaghua),
],
- q(6781) => [
+ q(6765) => [
q(Tsuvadi),
],
- q(6782) => [
+ q(6766) => [
q(Te'un),
],
- q(6783) => [
+ q(6767) => [
q(Southeast Ambrym),
],
- q(6784) => [
+ q(6768) => [
q(Tela-Masbuar),
],
- q(6785) => [
+ q(6769) => [
q(Tavoyan),
],
- q(6786) => [
+ q(6770) => [
q(Tidore),
],
- q(6787) => [
+ q(6771) => [
q(Taveta),
],
- q(6788) => [
+ q(6772) => [
q(Tutsa Naga),
],
- q(6789) => [
+ q(6773) => [
q(Tunen),
],
- q(6790) => [
+ q(6774) => [
q(Sedoa),
],
- q(6791) => [
+ q(6775) => [
q(Timor Pidgin),
],
- q(6792) => [
+ q(6776) => [
q(Twana),
],
- q(6793) => [
+ q(6777) => [
q(Western Tawbuid),
],
- q(6794) => [
+ q(6778) => [
q(Teshenawa),
],
- q(6795) => [
+ q(6779) => [
q(Twents),
],
- q(6796) => [
+ q(6780) => [
q(Tewa (Indonesia)),
],
- q(6797) => [
+ q(6781) => [
q(Northern Tiwa),
],
- q(6798) => [
+ q(6782) => [
q(Tereweng),
],
- q(6799) => [
+ q(6783) => [
q(Tai Don),
],
- q(6800) => [
+ q(6784) => [
q(Tawara),
],
- q(6801) => [
+ q(6785) => [
q(Tawang Monpa),
],
- q(6802) => [
+ q(6786) => [
q(Twendi),
],
- q(6803) => [
+ q(6787) => [
q(Tswapong),
],
- q(6804) => [
+ q(6788) => [
q(Ere),
],
- q(6805) => [
+ q(6789) => [
q(Tasawaq),
],
- q(6806) => [
+ q(6790) => [
q(Southwestern Tarahumara),
],
- q(6807) => [
+ q(6791) => [
q(Turiwara),
],
- q(6808) => [
+ q(6792) => [
q(Termanu),
],
- q(6809) => [
+ q(6793) => [
q(Tuwari),
],
- q(6810) => [
+ q(6794) => [
q(Tewe),
],
- q(6811) => [
+ q(6795) => [
q(Tawoyan),
],
- q(6812) => [
+ q(6796) => [
q(Tombonuo),
],
- q(6813) => [
+ q(6797) => [
q(Tokharian B),
],
- q(6814) => [
+ q(6798) => [
q(Tsetsaut),
],
- q(6815) => [
+ q(6799) => [
q(Totoli),
],
- q(6816) => [
+ q(6800) => [
q(Tangut),
],
- q(6817) => [
+ q(6801) => [
q(Thracian),
],
- q(6818) => [
+ q(6802) => [
q(Ikpeng),
],
- q(6819) => [
+ q(6803) => [
q(Tarjumo),
],
- q(6820) => [
+ q(6804) => [
q(Tomini),
],
- q(6821) => [
+ q(6805) => [
q(West Tarangan),
],
- q(6822) => [
+ q(6806) => [
q(Toto),
],
- q(6823) => [
+ q(6807) => [
q(Tii),
],
- q(6824) => [
+ q(6808) => [
q(Tartessian),
],
- q(6825) => [
+ q(6809) => [
q(Tonsea),
],
- q(6826) => [
+ q(6810) => [
q(Citak),
],
- q(6827) => [
+ q(6811) => [
q(Kayapo),
],
- q(6828) => [
+ q(6812) => [
q(Tatana),
],
- q(6829) => [
+ q(6813) => [
q(Tanosy Malagasy),
],
- q(6830) => [
+ q(6814) => [
q(Tauya),
],
- q(6831) => [
+ q(6815) => [
q(Kyanga),
],
- q(6832) => [
+ q(6816) => [
q(O'du),
],
- q(6833) => [
+ q(6817) => [
q(Teke-Tsaayi),
],
- q(6834) => [
+ q(6818) => [
q(Tai Do),
+ q(Tai Yo),
],
- q(6835) => [
+ q(6819) => [
q(Thu Lao),
],
- q(6836) => [
+ q(6820) => [
q(Kombai),
],
- q(6837) => [
+ q(6821) => [
q(Thaypan),
],
- q(6838) => [
+ q(6822) => [
q(Tai Daeng),
],
- q(6839) => [
+ q(6823) => [
q(Tay Sa Pa),
],
- q(6840) => [
+ q(6824) => [
q(Tay Tac),
],
- q(6841) => [
+ q(6825) => [
q(Kua),
],
- q(6842) => [
+ q(6826) => [
q(Teke-Tyee),
],
- q(6843) => [
+ q(6827) => [
q(Tay),
],
- q(6844) => [
+ q(6828) => [
q(Tanzanian Sign Language),
],
- q(6845) => [
+ q(6829) => [
q(Tzeltal),
],
- q(6846) => [
+ q(6830) => [
q(Tz'utujil),
],
- q(6847) => [
+ q(6831) => [
q(Talossan),
],
- q(6848) => [
+ q(6832) => [
q(Central Atlas Tamazight),
],
- q(6849) => [
+ q(6833) => [
q(Tugun),
],
- q(6850) => [
+ q(6834) => [
q(Tzotzil),
],
- q(6851) => [
+ q(6835) => [
q(Tabriak),
],
- q(6852) => [
+ q(6836) => [
q(Uamue),
],
- q(6853) => [
+ q(6837) => [
q(Kuan),
],
- q(6854) => [
+ q(6838) => [
q(Tairuma),
],
- q(6855) => [
+ q(6839) => [
q(Ubang),
],
- q(6856) => [
+ q(6840) => [
q(Ubi),
],
- q(6857) => [
+ q(6841) => [
q(Buhi'non Bikol),
],
- q(6858) => [
+ q(6842) => [
q(Ubir),
],
- q(6859) => [
+ q(6843) => [
q(Umbu-Ungu),
],
- q(6860) => [
+ q(6844) => [
q(Ubykh),
],
- q(6861) => [
+ q(6845) => [
q(Uda),
],
- q(6862) => [
+ q(6846) => [
q(Udihe),
],
- q(6863) => [
+ q(6847) => [
q(Muduga),
],
- q(6864) => [
+ q(6848) => [
q(Udi),
],
- q(6865) => [
+ q(6849) => [
q(Ujir),
],
- q(6866) => [
+ q(6850) => [
q(Wuzlam),
],
- q(6867) => [
+ q(6851) => [
q(Uduk),
],
- q(6868) => [
+ q(6852) => [
q(Kioko),
],
- q(6869) => [
+ q(6853) => [
q(Ufim),
],
- q(6870) => [
+ q(6854) => [
q(Kuku-Ugbanh),
],
- q(6871) => [
+ q(6855) => [
q(Ughele),
],
- q(6872) => [
+ q(6856) => [
q(Ugandan Sign Language),
],
- q(6873) => [
+ q(6857) => [
q(Ugong),
],
- q(6874) => [
+ q(6858) => [
q(Uruguayan Sign Language),
],
- q(6875) => [
+ q(6859) => [
q(Uhami),
],
- q(6876) => [
+ q(6860) => [
q(Damal),
],
- q(6877) => [
+ q(6861) => [
q(Uisai),
],
- q(6878) => [
+ q(6862) => [
q(Iyive),
],
- q(6879) => [
+ q(6863) => [
q(Tanjijili),
],
- q(6880) => [
+ q(6864) => [
q(Kaburi),
],
- q(6881) => [
+ q(6865) => [
q(Ukuriguma),
],
- q(6882) => [
+ q(6866) => [
q(Ukhwejo),
],
- q(6883) => [
+ q(6867) => [
q(Ukrainian Sign Language),
],
- q(6884) => [
+ q(6868) => [
q(Ukpe-Bayobiri),
],
- q(6885) => [
+ q(6869) => [
q(Ukwa),
],
- q(6886) => [
+ q(6870) => [
q(Urubu-Kaapor Sign Language),
q(Kaapor Sign Language),
],
- q(6887) => [
+ q(6871) => [
q(Ukue),
],
- q(6888) => [
+ q(6872) => [
q(Ukwuani-Aboh-Ndoni),
],
- q(6889) => [
+ q(6873) => [
q(Kuuk-Yak),
],
- q(6890) => [
+ q(6874) => [
q(Fungwa),
],
- q(6891) => [
+ q(6875) => [
q(Ulukwumi),
],
- q(6892) => [
+ q(6876) => [
q(Ulch),
],
- q(6893) => [
+ q(6877) => [
q(Lule),
],
- q(6894) => [
+ q(6878) => [
q(Usku),
q(Afra),
],
- q(6895) => [
+ q(6879) => [
q(Ulithian),
],
- q(6896) => [
+ q(6880) => [
q(Meriam),
],
- q(6897) => [
+ q(6881) => [
q(Ullatan),
],
- q(6898) => [
+ q(6882) => [
q(Ulumanda'),
],
- q(6899) => [
+ q(6883) => [
q(Unserdeutsch),
],
- q(6900) => [
+ q(6884) => [
q(Uma' Lung),
],
- q(6901) => [
+ q(6885) => [
q(Ulwa),
],
- q(6902) => [
+ q(6886) => [
q(Umatilla),
],
- q(6903) => [
+ q(6887) => [
q(Marrucinian),
],
- q(6904) => [
+ q(6888) => [
q(Umbindhamu),
],
- q(6905) => [
+ q(6889) => [
q(Umbuygamu),
],
- q(6906) => [
+ q(6890) => [
q(Ukit),
],
- q(6907) => [
+ q(6891) => [
q(Umon),
],
- q(6908) => [
+ q(6892) => [
q(Makyan Naga),
],
- q(6909) => [
+ q(6893) => [
q(Umotina),
],
- q(6910) => [
+ q(6894) => [
q(Umpila),
],
- q(6911) => [
+ q(6895) => [
q(Umbugarla),
],
- q(6912) => [
+ q(6896) => [
q(Pendau),
],
- q(6913) => [
+ q(6897) => [
q(Munsee),
],
- q(6914) => [
+ q(6898) => [
q(North Watut),
],
- q(6915) => [
+ q(6899) => [
q(Uneme),
],
- q(6916) => [
+ q(6900) => [
q(Ngarinyin),
],
- q(6917) => [
+ q(6901) => [
q(Enawene-Nawe),
],
- q(6918) => [
+ q(6902) => [
q(Unami),
],
- q(6919) => [
+ q(6903) => [
q(Kurnai),
],
- q(6920) => [
+ q(6904) => [
q(Mundari),
],
- q(6921) => [
+ q(6905) => [
q(Unubahe),
],
- q(6922) => [
+ q(6906) => [
q(Munda),
],
- q(6923) => [
+ q(6907) => [
q(Unde Kaili),
],
- q(6924) => [
+ q(6908) => [
q(Umeda),
],
- q(6925) => [
+ q(6909) => [
q(Uripiv-Wala-Rano-Atchin),
],
- q(6926) => [
+ q(6910) => [
q(Urarina),
],
- q(6927) => [
+ q(6911) => [
q(Urubu-Kaapor),
q(Kaapor),
],
- q(6928) => [
+ q(6912) => [
q(Urningangg),
],
- q(6929) => [
+ q(6913) => [
q(Uru),
],
- q(6930) => [
+ q(6914) => [
q(Uradhi),
],
- q(6931) => [
+ q(6915) => [
q(Urigina),
],
- q(6932) => [
+ q(6916) => [
q(Urhobo),
],
- q(6933) => [
+ q(6917) => [
q(Urim),
],
- q(6934) => [
+ q(6918) => [
q(Urak Lawoi'),
],
- q(6935) => [
+ q(6919) => [
q(Urali),
],
- q(6936) => [
+ q(6920) => [
q(Urapmin),
],
- q(6937) => [
+ q(6921) => [
q(Uruangnirin),
],
- q(6938) => [
+ q(6922) => [
q(Ura (Papua New Guinea)),
],
- q(6939) => [
+ q(6923) => [
q(Uru-Pa-In),
],
- q(6940) => [
+ q(6924) => [
q(Lehalurup),
q(Loyop),
],
- q(6941) => [
+ q(6925) => [
q(Urat),
],
- q(6942) => [
+ q(6926) => [
q(Urumi),
],
- q(6943) => [
+ q(6927) => [
q(Uruava),
],
- q(6944) => [
+ q(6928) => [
q(Sop),
],
- q(6945) => [
+ q(6929) => [
q(Urimo),
],
- q(6946) => [
+ q(6930) => [
q(Orya),
],
- q(6947) => [
+ q(6931) => [
q(Uru-Eu-Wau-Wau),
],
- q(6948) => [
+ q(6932) => [
q(Usarufa),
],
- q(6949) => [
+ q(6933) => [
q(Ushojo),
],
- q(6950) => [
+ q(6934) => [
q(Usui),
],
- q(6951) => [
+ q(6935) => [
q(Usaghade),
],
- q(6952) => [
+ q(6936) => [
q(Uspanteco),
],
- q(6953) => [
+ q(6937) => [
q(Uya),
],
- q(6954) => [
+ q(6938) => [
q(Otank),
],
- q(6955) => [
+ q(6939) => [
q(Ute-Southern Paiute),
],
- q(6956) => [
+ q(6940) => [
q(Amba (Solomon Islands)),
],
- q(6957) => [
+ q(6941) => [
q(Etulo),
],
- q(6958) => [
+ q(6942) => [
q(Utu),
],
- q(6959) => [
+ q(6943) => [
q(Urum),
],
- q(6960) => [
+ q(6944) => [
q(Kulon-Pazeh),
],
- q(6961) => [
+ q(6945) => [
q(Ura (Vanuatu)),
],
- q(6962) => [
+ q(6946) => [
q(U),
],
- q(6963) => [
+ q(6947) => [
q(West Uvean),
q(Fagauvea),
],
- q(6964) => [
+ q(6948) => [
q(Uri),
],
- q(6965) => [
+ q(6949) => [
q(Lote),
],
- q(6966) => [
+ q(6950) => [
q(Kuku-Uwanh),
],
- q(6967) => [
+ q(6951) => [
q(Doko-Uyanga),
],
- q(6968) => [
+ q(6952) => [
q(Northern Uzbek),
],
- q(6969) => [
+ q(6953) => [
q(Southern Uzbek),
],
- q(6970) => [
+ q(6954) => [
q(Vaagri Booli),
],
- q(6971) => [
+ q(6955) => [
q(Vale),
],
- q(6972) => [
+ q(6956) => [
q(Vafsi),
],
- q(6973) => [
+ q(6957) => [
q(Vagla),
],
- q(6974) => [
+ q(6958) => [
q(Varhadi-Nagpuri),
],
- q(6975) => [
+ q(6959) => [
q(Sekele),
q(Northwestern Kung),
- q(Northwestern Kung),
q(Vasekele),
],
- q(6976) => [
+ q(6960) => [
q(Vehes),
],
- q(6977) => [
+ q(6961) => [
q(Vanimo),
],
- q(6978) => [
+ q(6962) => [
q(Valman),
],
- q(6979) => [
+ q(6963) => [
q(Vao),
],
- q(6980) => [
+ q(6964) => [
q(Vaiphei),
],
- q(6981) => [
+ q(6965) => [
q(Huarijio),
],
- q(6982) => [
+ q(6966) => [
q(Vasavi),
],
- q(6983) => [
+ q(6967) => [
q(Vanuma),
],
- q(6984) => [
+ q(6968) => [
q(Varli),
],
- q(6985) => [
+ q(6969) => [
q(Wayu),
],
- q(6986) => [
+ q(6970) => [
q(Southeast Babar),
],
- q(6987) => [
+ q(6971) => [
q(Southwestern Bontok),
],
- q(6988) => [
+ q(6972) => [
q(Venetian),
],
- q(6989) => [
+ q(6973) => [
q(Veddah),
],
- q(6990) => [
+ q(6974) => [
q(Veluws),
],
- q(6991) => [
+ q(6975) => [
q(Vemgo-Mabas),
],
- q(6992) => [
+ q(6976) => [
q(Ventureno),
],
- q(6993) => [
+ q(6977) => [
q(Veps),
],
- q(6994) => [
+ q(6978) => [
q(Mom Jango),
],
- q(6995) => [
+ q(6979) => [
q(Vaghri),
],
- q(6996) => [
+ q(6980) => [
q(Vlaamse Gebarentaal),
q(Flemish Sign Language),
],
- q(6997) => [
+ q(6981) => [
q(Virgin Islands Creole English),
],
- q(6998) => [
+ q(6982) => [
q(Vidunda),
],
- q(6999) => [
+ q(6983) => [
q(Vili),
],
- q(7000) => [
+ q(6984) => [
q(Viemo),
],
- q(7001) => [
+ q(6985) => [
q(Vilela),
],
- q(7002) => [
+ q(6986) => [
q(Vinza),
],
- q(7003) => [
+ q(6987) => [
q(Vishavan),
],
- q(7004) => [
+ q(6988) => [
q(Viti),
],
- q(7005) => [
+ q(6989) => [
q(Iduna),
],
- q(7006) => [
+ q(6990) => [
q(Kariyarra),
],
- q(7007) => [
+ q(6991) => [
q(Ija-Zuba),
],
- q(7008) => [
+ q(6992) => [
q(Kujarge),
],
- q(7009) => [
+ q(6993) => [
q(Kaur),
],
- q(7010) => [
+ q(6994) => [
q(Kulisusu),
],
- q(7011) => [
+ q(6995) => [
q(Kamakan),
],
- q(7012) => [
+ q(6996) => [
q(Kodeoha),
],
- q(7013) => [
+ q(6997) => [
q(Korlai Creole Portuguese),
],
- q(7014) => [
+ q(6998) => [
q(Tenggarong Kutai Malay),
],
- q(7015) => [
+ q(6999) => [
q(Kurrama),
],
- q(7016) => [
+ q(7000) => [
q(Valpei),
],
- q(7017) => [
+ q(7001) => [
q(Vlaams),
],
- q(7018) => [
+ q(7002) => [
q(Martuyhunira),
],
- q(7019) => [
+ q(7003) => [
q(Barbaram),
],
- q(7020) => [
+ q(7004) => [
q(Juxtlahuaca Mixtec),
],
- q(7021) => [
+ q(7005) => [
q(Mudu Koraga),
],
- q(7022) => [
+ q(7006) => [
q(East Masela),
],
- q(7023) => [
+ q(7007) => [
q(Mainfrankisch),
],
- q(7024) => [
+ q(7008) => [
q(Lungalunga),
],
- q(7025) => [
+ q(7009) => [
q(Maraghei),
],
- q(7026) => [
+ q(7010) => [
q(Miwa),
],
- q(7027) => [
+ q(7011) => [
q(Ixtayutla Mixtec),
],
- q(7028) => [
+ q(7012) => [
q(Makhuwa-Shirima),
],
- q(7029) => [
+ q(7013) => [
q(Malgana),
],
- q(7030) => [
+ q(7014) => [
q(Mitlatongo Mixtec),
],
- q(7031) => [
+ q(7015) => [
q(Soyaltepec Mazatec),
],
- q(7032) => [
+ q(7016) => [
q(Soyaltepec Mixtec),
],
- q(7033) => [
+ q(7017) => [
q(Marenje),
],
- q(7034) => [
+ q(7018) => [
q(Moksela),
],
- q(7035) => [
+ q(7019) => [
q(Muluridyi),
],
- q(7036) => [
+ q(7020) => [
q(Valley Maidu),
],
- q(7037) => [
+ q(7021) => [
q(Makhuwa),
],
- q(7038) => [
+ q(7022) => [
q(Tamazola Mixtec),
],
- q(7039) => [
+ q(7023) => [
q(Ayautla Mazatec),
],
- q(7040) => [
+ q(7024) => [
q(Mazatlan Mazatec),
],
- q(7041) => [
+ q(7025) => [
q(Vano),
q(Lovono),
],
- q(7042) => [
+ q(7026) => [
q(Vinmavis),
q(Neve'ei),
],
- q(7043) => [
+ q(7027) => [
q(Vunapu),
],
- q(7044) => [
+ q(7028) => [
q(Voro),
],
- q(7045) => [
+ q(7029) => [
q(Vera'a),
],
- q(7046) => [
+ q(7030) => [
q(Varisi),
],
- q(7047) => [
+ q(7031) => [
q(Burmbar),
q(Banam Bay),
],
- q(7048) => [
+ q(7032) => [
q(Moldova Sign Language),
],
- q(7049) => [
+ q(7033) => [
q(Venezuelan Sign Language),
],
- q(7050) => [
+ q(7034) => [
q(Valencian Sign Language),
q(Llengua de signes valenciana),
],
- q(7051) => [
+ q(7035) => [
q(Vitou),
],
- q(7052) => [
+ q(7036) => [
q(Vumbu),
],
- q(7053) => [
+ q(7037) => [
q(Vunjo),
],
- q(7054) => [
+ q(7038) => [
q(Vute),
],
- q(7055) => [
+ q(7039) => [
q(Awa (China)),
],
- q(7056) => [
+ q(7040) => [
q(Walla Walla),
],
- q(7057) => [
+ q(7041) => [
q(Wab),
],
- q(7058) => [
+ q(7042) => [
q(Wasco-Wishram),
],
- q(7059) => [
+ q(7043) => [
q(Wandamen),
],
- q(7060) => [
+ q(7044) => [
q(Walser),
],
- q(7061) => [
+ q(7045) => [
q(Wakona),
],
- q(7062) => [
+ q(7046) => [
q(Wa'ema),
],
- q(7063) => [
+ q(7047) => [
q(Watubela),
],
- q(7064) => [
+ q(7048) => [
q(Wares),
],
- q(7065) => [
+ q(7049) => [
q(Waffa),
],
- q(7066) => [
+ q(7050) => [
q(Wampanoag),
],
- q(7067) => [
+ q(7051) => [
q(Wan),
],
- q(7068) => [
+ q(7052) => [
q(Wappo),
],
- q(7069) => [
+ q(7053) => [
q(Wapishana),
],
- q(7070) => [
+ q(7054) => [
q(Wageman),
],
- q(7071) => [
+ q(7055) => [
q(Kaninuwa),
],
- q(7072) => [
+ q(7056) => [
q(Waura),
],
- q(7073) => [
+ q(7057) => [
q(Waka),
],
- q(7074) => [
+ q(7058) => [
q(Waiwai),
],
- q(7075) => [
+ q(7059) => [
q(Watam),
q(Marangis),
],
- q(7076) => [
+ q(7060) => [
q(Wayana),
],
- q(7077) => [
+ q(7061) => [
q(Wampur),
],
- q(7078) => [
+ q(7062) => [
q(Warao),
],
- q(7079) => [
+ q(7063) => [
q(Wabo),
],
- q(7080) => [
+ q(7064) => [
q(Waritai),
],
- q(7081) => [
+ q(7065) => [
q(Wanda),
],
- q(7082) => [
+ q(7066) => [
q(Vwanji),
],
- q(7083) => [
+ q(7067) => [
q(Alagwa),
],
- q(7084) => [
+ q(7068) => [
q(Waigali),
],
- q(7085) => [
+ q(7069) => [
q(Wakhi),
],
- q(7086) => [
+ q(7070) => [
q(Wa),
],
- q(7087) => [
+ q(7071) => [
q(Warlpiri),
],
- q(7088) => [
+ q(7072) => [
q(Waddar),
],
- q(7089) => [
+ q(7073) => [
q(Wagdi),
],
- q(7090) => [
+ q(7074) => [
q(Wanman),
],
- q(7091) => [
+ q(7075) => [
q(Wajarri),
],
- q(7092) => [
+ q(7076) => [
q(Woi),
],
- q(7093) => [
+ q(7077) => [
q(Yanomami),
],
- q(7094) => [
+ q(7078) => [
q(Waci Gbe),
],
- q(7095) => [
+ q(7079) => [
q(Wandji),
],
- q(7096) => [
+ q(7080) => [
q(Wadaginam),
],
- q(7097) => [
+ q(7081) => [
q(Wadjiginy),
],
- q(7098) => [
+ q(7082) => [
q(Wadikali),
],
- q(7099) => [
+ q(7083) => [
q(Wadjigu),
],
- q(7100) => [
+ q(7084) => [
q(Wadjabangayi),
],
- q(7101) => [
+ q(7085) => [
q(Wewaw),
],
- q(7102) => [
+ q(7086) => [
q(We Western),
],
- q(7103) => [
+ q(7087) => [
q(Wedau),
],
- q(7104) => [
+ q(7088) => [
q(Wergaia),
],
- q(7105) => [
+ q(7089) => [
q(Weh),
],
- q(7106) => [
+ q(7090) => [
q(Kiunum),
],
- q(7107) => [
+ q(7091) => [
q(Weme Gbe),
],
- q(7108) => [
+ q(7092) => [
q(Wemale),
],
- q(7109) => [
+ q(7093) => [
q(Westphalien),
],
- q(7110) => [
+ q(7094) => [
q(Weri),
],
- q(7111) => [
+ q(7095) => [
q(Cameroon Pidgin),
],
- q(7112) => [
+ q(7096) => [
q(Perai),
],
- q(7113) => [
+ q(7097) => [
q(Rawngtu Chin),
],
- q(7114) => [
+ q(7098) => [
q(Wejewa),
],
- q(7115) => [
+ q(7099) => [
q(Yafi),
q(Zorop),
],
- q(7116) => [
+ q(7100) => [
q(Wagaya),
],
- q(7117) => [
+ q(7101) => [
q(Wagawaga),
],
- q(7118) => [
+ q(7102) => [
q(Wangganguru),
],
- q(7119) => [
+ q(7103) => [
q(Wahgi),
],
- q(7120) => [
+ q(7104) => [
q(Waigeo),
],
- q(7121) => [
+ q(7105) => [
q(Wirangu),
],
- q(7122) => [
+ q(7106) => [
q(Warrgamay),
],
- q(7123) => [
+ q(7107) => [
+ q(Sou Upaa),
q(Manusela),
],
- q(7124) => [
+ q(7108) => [
q(North Wahgi),
],
- q(7125) => [
+ q(7109) => [
q(Wahau Kenyah),
],
- q(7126) => [
+ q(7110) => [
q(Wahau Kayan),
],
- q(7127) => [
+ q(7111) => [
q(Southern Toussian),
],
- q(7128) => [
+ q(7112) => [
q(Wichita),
],
- q(7129) => [
+ q(7113) => [
q(Wik-Epa),
],
- q(7130) => [
+ q(7114) => [
q(Wik-Keyangan),
],
- q(7131) => [
+ q(7115) => [
q(Wik-Ngathana),
],
- q(7132) => [
+ q(7116) => [
q(Wik-Me'anha),
],
- q(7133) => [
+ q(7117) => [
q(Minidien),
],
- q(7134) => [
+ q(7118) => [
q(Wik-Iiyanh),
],
- q(7135) => [
+ q(7119) => [
q(Wikalkan),
],
- q(7136) => [
+ q(7120) => [
q(Wilawila),
],
- q(7137) => [
+ q(7121) => [
q(Wik-Mungkan),
],
- q(7138) => [
+ q(7122) => [
q(Ho-Chunk),
],
- q(7139) => [
+ q(7123) => [
q(Wirafed),
],
- q(7140) => [
+ q(7124) => [
q(Wiru),
],
- q(7141) => [
+ q(7125) => [
q(Vitu),
],
- q(7142) => [
+ q(7126) => [
q(Wiyot),
],
- q(7143) => [
+ q(7127) => [
q(Waja),
],
- q(7144) => [
+ q(7128) => [
q(Warji),
],
- q(7145) => [
+ q(7129) => [
q(Kw'adza),
],
- q(7146) => [
+ q(7130) => [
q(Kumbaran),
],
- q(7147) => [
+ q(7131) => [
q(Wakde),
q(Mo),
],
- q(7148) => [
+ q(7132) => [
q(Kalanadi),
],
- q(7149) => [
+ q(7133) => [
q(Kunduvadi),
],
- q(7150) => [
+ q(7134) => [
q(Wakawaka),
],
- q(7151) => [
+ q(7135) => [
q(Wangkayutyuru),
],
- q(7152) => [
+ q(7136) => [
q(Walio),
],
- q(7153) => [
+ q(7137) => [
q(Mwali Comorian),
],
- q(7154) => [
+ q(7138) => [
q(Wolane),
],
- q(7155) => [
+ q(7139) => [
q(Kunbarlang),
],
- q(7156) => [
+ q(7140) => [
q(Waioli),
],
- q(7157) => [
+ q(7141) => [
q(Wailaki),
],
- q(7158) => [
+ q(7142) => [
q(Wali (Sudan)),
],
- q(7159) => [
+ q(7143) => [
q(Middle Welsh),
],
- q(7160) => [
+ q(7144) => [
q(Wolio),
],
- q(7161) => [
+ q(7145) => [
q(Wailapa),
],
- q(7162) => [
+ q(7146) => [
q(Wallisian),
],
- q(7163) => [
+ q(7147) => [
q(Wuliwuli),
],
- q(7164) => [
+ q(7148) => [
q(Wichi Lhamtes Vejoz),
],
- q(7165) => [
+ q(7149) => [
q(Walak),
],
- q(7166) => [
+ q(7150) => [
q(Wali (Ghana)),
],
- q(7167) => [
+ q(7151) => [
q(Waling),
],
- q(7168) => [
+ q(7152) => [
q(Mawa (Nigeria)),
],
- q(7169) => [
+ q(7153) => [
q(Wambaya),
],
- q(7170) => [
+ q(7154) => [
q(Wamas),
],
- q(7171) => [
+ q(7155) => [
q(Mamainde),
],
- q(7172) => [
+ q(7156) => [
q(Wambule),
],
- q(7173) => [
+ q(7157) => [
q(Waima'a),
],
- q(7174) => [
+ q(7158) => [
q(Wamin),
],
- q(7175) => [
+ q(7159) => [
q(Maiwa (Indonesia)),
],
- q(7176) => [
+ q(7160) => [
q(Waamwang),
],
- q(7177) => [
+ q(7161) => [
q(Wom (Papua New Guinea)),
],
- q(7178) => [
+ q(7162) => [
q(Wambon),
],
- q(7179) => [
+ q(7163) => [
q(Walmajarri),
],
- q(7180) => [
+ q(7164) => [
q(Mwani),
],
- q(7181) => [
+ q(7165) => [
q(Womo),
],
- q(7182) => [
+ q(7166) => [
q(Wanambre),
],
- q(7183) => [
+ q(7167) => [
q(Wantoat),
],
- q(7184) => [
+ q(7168) => [
q(Wandarang),
],
- q(7185) => [
+ q(7169) => [
q(Waneci),
],
- q(7186) => [
+ q(7170) => [
q(Wanggom),
],
- q(7187) => [
+ q(7171) => [
q(Ndzwani Comorian),
],
- q(7188) => [
+ q(7172) => [
q(Wanukaka),
],
- q(7189) => [
+ q(7173) => [
q(Wanggamala),
],
- q(7190) => [
+ q(7174) => [
q(Wunumara),
],
- q(7191) => [
+ q(7175) => [
q(Wano),
],
- q(7192) => [
+ q(7176) => [
q(Wanap),
],
- q(7193) => [
+ q(7177) => [
q(Usan),
],
- q(7194) => [
+ q(7178) => [
q(Wintu),
],
- q(7195) => [
+ q(7179) => [
q(Wanyi),
],
- q(7196) => [
+ q(7180) => [
q(Tyaraity),
],
- q(7197) => [
+ q(7181) => [
q(We Northern),
],
- q(7198) => [
+ q(7182) => [
q(Wogeo),
],
- q(7199) => [
+ q(7183) => [
q(Wolani),
],
- q(7200) => [
+ q(7184) => [
q(Woleaian),
],
- q(7201) => [
+ q(7185) => [
q(Gambian Wolof),
],
- q(7202) => [
+ q(7186) => [
q(Wogamusin),
],
- q(7203) => [
+ q(7187) => [
q(Kamang),
],
- q(7204) => [
+ q(7188) => [
q(Longto),
],
- q(7205) => [
+ q(7189) => [
q(Wom (Nigeria)),
],
- q(7206) => [
+ q(7190) => [
q(Wongo),
],
- q(7207) => [
+ q(7191) => [
q(Manombai),
],
- q(7208) => [
+ q(7192) => [
q(Woria),
],
- q(7209) => [
+ q(7193) => [
q(Hanga Hundi),
],
- q(7210) => [
+ q(7194) => [
q(Wawonii),
],
- q(7211) => [
+ q(7195) => [
q(Weyto),
],
- q(7212) => [
+ q(7196) => [
q(Maco),
],
- q(7213) => [
+ q(7197) => [
q(Warapu),
],
- q(7214) => [
+ q(7198) => [
q(Warluwara),
],
- q(7215) => [
+ q(7199) => [
q(Warduji),
],
- q(7216) => [
+ q(7200) => [
q(Warungu),
],
- q(7217) => [
+ q(7201) => [
q(Wiradhuri),
],
- q(7218) => [
+ q(7202) => [
q(Wariyangga),
],
- q(7219) => [
+ q(7203) => [
q(Garrwa),
],
- q(7220) => [
+ q(7204) => [
q(Warlmanpa),
],
- q(7221) => [
+ q(7205) => [
q(Warumungu),
],
- q(7222) => [
+ q(7206) => [
q(Warnang),
],
- q(7223) => [
+ q(7207) => [
q(Worrorra),
],
- q(7224) => [
+ q(7208) => [
q(Waropen),
],
- q(7225) => [
+ q(7209) => [
q(Wardaman),
],
- q(7226) => [
+ q(7210) => [
q(Waris),
],
- q(7227) => [
+ q(7211) => [
q(Waru),
],
- q(7228) => [
+ q(7212) => [
q(Waruna),
],
- q(7229) => [
+ q(7213) => [
q(Gugu Warra),
],
- q(7230) => [
+ q(7214) => [
q(Wae Rana),
],
- q(7231) => [
+ q(7215) => [
q(Merwari),
],
- q(7232) => [
+ q(7216) => [
q(Waray (Australia)),
],
- q(7233) => [
+ q(7217) => [
q(Warembori),
],
- q(7234) => [
+ q(7218) => [
+ q(Adilabad Gondi),
+ ],
+ q(7219) => [
q(Wusi),
],
- q(7235) => [
+ q(7220) => [
q(Waskia),
],
- q(7236) => [
+ q(7221) => [
q(Owenia),
],
- q(7237) => [
+ q(7222) => [
q(Wasa),
],
- q(7238) => [
+ q(7223) => [
q(Wasu),
],
- q(7239) => [
+ q(7224) => [
q(Wotapuri-Katarqalai),
],
- q(7240) => [
+ q(7225) => [
q(Watiwa),
],
- q(7241) => [
+ q(7226) => [
q(Wathawurrung),
],
- q(7242) => [
+ q(7227) => [
q(Berta),
],
- q(7243) => [
+ q(7228) => [
q(Watakataui),
],
- q(7244) => [
+ q(7229) => [
q(Mewati),
],
- q(7245) => [
+ q(7230) => [
q(Wotu),
],
- q(7246) => [
+ q(7231) => [
q(Wikngenchera),
],
- q(7247) => [
+ q(7232) => [
q(Wunambal),
],
- q(7248) => [
+ q(7233) => [
q(Wudu),
],
- q(7249) => [
+ q(7234) => [
q(Wutunhua),
],
- q(7250) => [
+ q(7235) => [
q(Silimo),
],
- q(7251) => [
+ q(7236) => [
q(Wumbvu),
],
- q(7252) => [
+ q(7237) => [
q(Bungu),
],
- q(7253) => [
+ q(7238) => [
q(Wurrugu),
],
- q(7254) => [
+ q(7239) => [
q(Wutung),
],
- q(7255) => [
+ q(7240) => [
q(Wu Chinese),
],
- q(7256) => [
+ q(7241) => [
q(Wuvulu-Aua),
],
- q(7257) => [
+ q(7242) => [
q(Wulna),
],
- q(7258) => [
+ q(7243) => [
q(Wauyai),
],
- q(7259) => [
+ q(7244) => [
q(Waama),
],
- q(7260) => [
+ q(7245) => [
q(Wakabunga),
],
- q(7261) => [
+ q(7246) => [
q(Wetamut),
q(Dorig),
],
- q(7262) => [
+ q(7247) => [
q(Warrwa),
],
- q(7263) => [
+ q(7248) => [
q(Wawa),
],
- q(7264) => [
+ q(7249) => [
q(Waxianghua),
],
- q(7265) => [
+ q(7250) => [
q(Wardandi),
],
- q(7266) => [
+ q(7251) => [
q(Wyandot),
],
- q(7267) => [
+ q(7252) => [
q(Wangaaybuwan-Ngiyambaa),
],
- q(7268) => [
+ q(7253) => [
q(Woiwurrung),
],
- q(7269) => [
+ q(7254) => [
q(Wymysorys),
],
- q(7270) => [
+ q(7255) => [
q(Wayoro),
],
- q(7271) => [
+ q(7256) => [
q(Western Fijian),
],
- q(7272) => [
+ q(7257) => [
q(Andalusian Arabic),
],
- q(7273) => [
+ q(7258) => [
q(Sambe),
],
- q(7274) => [
+ q(7259) => [
q(Kachari),
],
- q(7275) => [
+ q(7260) => [
q(Adai),
],
- q(7276) => [
+ q(7261) => [
q(Aequian),
],
- q(7277) => [
+ q(7262) => [
q(Aghwan),
],
- q(7278) => [
+ q(7263) => [
q(Kaimbe),
],
- q(7279) => [
+ q(7264) => [
q(Ararandewara),
],
- q(7280) => [
+ q(7265) => [
+ q(Maku),
+ ],
+ q(7266) => [
q(/Xam),
q(Xam),
],
- q(7281) => [
+ q(7267) => [
q(Xamtanga),
],
- q(7282) => [
+ q(7268) => [
q(Khao),
],
- q(7283) => [
+ q(7269) => [
q(Apalachee),
],
- q(7284) => [
+ q(7270) => [
q(Aquitanian),
],
- q(7285) => [
+ q(7271) => [
q(Karami),
],
- q(7286) => [
+ q(7272) => [
q(Kamas),
],
- q(7287) => [
+ q(7273) => [
q(Katawixi),
],
- q(7288) => [
+ q(7274) => [
q(Kauwera),
],
- q(7289) => [
+ q(7275) => [
q(Xavante),
],
- q(7290) => [
+ q(7276) => [
q(Kawaiisu),
],
- q(7291) => [
+ q(7277) => [
q(Kayan Mahakam),
],
- q(7292) => [
- q(Kamba (Brazil)),
- ],
- q(7293) => [
+ q(7278) => [
q(Lower Burdekin),
],
- q(7294) => [
+ q(7279) => [
q(Bactrian),
],
- q(7295) => [
+ q(7280) => [
q(Bindal),
],
- q(7296) => [
+ q(7281) => [
q(Bigambal),
],
- q(7297) => [
+ q(7282) => [
q(Bunganditj),
],
- q(7298) => [
+ q(7283) => [
q(Kombio),
],
- q(7299) => [
+ q(7284) => [
q(Birrpayi),
],
- q(7300) => [
+ q(7285) => [
q(Middle Breton),
],
- q(7301) => [
+ q(7286) => [
q(Kenaboi),
],
- q(7302) => [
+ q(7287) => [
q(Bolgarian),
],
- q(7303) => [
+ q(7288) => [
q(Bibbulman),
],
- q(7304) => [
+ q(7289) => [
q(Kambera),
],
- q(7305) => [
+ q(7290) => [
q(Kambiwa),
],
- q(7306) => [
- q(Kabixi),
- ],
- q(7307) => [
+ q(7291) => [
q(Batyala),
],
- q(7308) => [
+ q(7292) => [
q(Cumbric),
],
- q(7309) => [
+ q(7293) => [
q(Camunic),
],
- q(7310) => [
+ q(7294) => [
q(Celtiberian),
],
- q(7311) => [
+ q(7295) => [
q(Cisalpine Gaulish),
],
- q(7312) => [
+ q(7296) => [
q(Chemakum),
q(Chimakum),
],
- q(7313) => [
+ q(7297) => [
q(Classical Armenian),
],
- q(7314) => [
+ q(7298) => [
q(Comecrudo),
],
- q(7315) => [
+ q(7299) => [
q(Cotoname),
],
- q(7316) => [
+ q(7300) => [
q(Chorasmian),
],
- q(7317) => [
+ q(7301) => [
q(Carian),
],
- q(7318) => [
+ q(7302) => [
q(Classical Tibetan),
],
- q(7319) => [
+ q(7303) => [
q(Curonian),
],
- q(7320) => [
+ q(7304) => [
q(Chuvantsy),
],
- q(7321) => [
+ q(7305) => [
q(Coahuilteco),
],
- q(7322) => [
+ q(7306) => [
q(Cayuse),
],
- q(7323) => [
+ q(7307) => [
q(Darkinyung),
],
- q(7324) => [
+ q(7308) => [
q(Dacian),
],
- q(7325) => [
+ q(7309) => [
q(Dharuk),
],
- q(7326) => [
+ q(7310) => [
q(Edomite),
],
- q(7327) => [
+ q(7311) => [
q(Malayic Dayak),
],
- q(7328) => [
+ q(7312) => [
q(Eblan),
],
- q(7329) => [
+ q(7313) => [
q(Hdi),
],
- q(7330) => [
+ q(7314) => [
q(//Xegwi),
q(Xegwi),
],
- q(7331) => [
+ q(7315) => [
q(Kelo),
],
- q(7332) => [
+ q(7316) => [
q(Kembayan),
],
- q(7333) => [
+ q(7317) => [
q(Epi-Olmec),
],
- q(7334) => [
+ q(7318) => [
q(Xerente),
],
- q(7335) => [
+ q(7319) => [
q(Kesawai),
],
- q(7336) => [
+ q(7320) => [
q(Xeta),
],
- q(7337) => [
+ q(7321) => [
q(Keoru-Ahia),
],
- q(7338) => [
+ q(7322) => [
q(Faliscan),
],
- q(7339) => [
+ q(7323) => [
q(Galatian),
],
- q(7340) => [
+ q(7324) => [
q(Gbin),
],
- q(7341) => [
+ q(7325) => [
q(Gudang),
],
- q(7342) => [
+ q(7326) => [
q(Gabrielino-Fernandeno),
],
- q(7343) => [
+ q(7327) => [
q(Goreng),
],
- q(7344) => [
+ q(7328) => [
q(Garingbal),
],
- q(7345) => [
+ q(7329) => [
q(Galindan),
],
- q(7346) => [
+ q(7330) => [
q(Dharumbal),
q(Guwinmal),
],
- q(7347) => [
+ q(7331) => [
q(Garza),
],
- q(7348) => [
+ q(7332) => [
q(Unggumi),
],
- q(7349) => [
+ q(7333) => [
q(Guwa),
],
- q(7350) => [
+ q(7334) => [
q(Harami),
],
- q(7351) => [
+ q(7335) => [
q(Hunnic),
],
- q(7352) => [
+ q(7336) => [
q(Hadrami),
],
- q(7353) => [
+ q(7337) => [
q(Khetrani),
],
- q(7354) => [
+ q(7338) => [
q(Hernican),
],
- q(7355) => [
+ q(7339) => [
q(Hattic),
],
- q(7356) => [
+ q(7340) => [
q(Hurrian),
],
- q(7357) => [
+ q(7341) => [
q(Khua),
],
- q(7358) => [
+ q(7342) => [
q(Iberian),
],
- q(7359) => [
+ q(7343) => [
q(Xiri),
],
- q(7360) => [
+ q(7344) => [
q(Illyrian),
],
- q(7361) => [
+ q(7345) => [
q(Xinca),
],
- q(7362) => [
- q(Xipinawa),
- ],
- q(7363) => [
+ q(7346) => [
q(Xiriana),
],
- q(7364) => [
+ q(7347) => [
q(Kisan),
],
- q(7365) => [
+ q(7348) => [
q(Indus Valley Language),
],
- q(7366) => [
+ q(7349) => [
q(Xipaya),
],
- q(7367) => [
+ q(7350) => [
q(Minjungbal),
],
- q(7368) => [
+ q(7351) => [
q(Jaitmatang),
],
- q(7369) => [
+ q(7352) => [
q(Kalkoti),
],
- q(7370) => [
+ q(7353) => [
q(Northern Nago),
],
- q(7371) => [
+ q(7354) => [
q(Kho'ini),
],
- q(7372) => [
+ q(7355) => [
q(Mendalam Kayan),
],
- q(7373) => [
+ q(7356) => [
q(Kereho),
],
- q(7374) => [
+ q(7357) => [
q(Khengkha),
],
- q(7375) => [
+ q(7358) => [
q(Kagoro),
],
- q(7376) => [
- q(Karahawyana),
- ],
- q(7377) => [
+ q(7359) => [
q(Kenyan Sign Language),
],
- q(7378) => [
+ q(7360) => [
q(Kajali),
],
- q(7379) => [
+ q(7361) => [
q(Kaco'),
],
- q(7380) => [
+ q(7362) => [
q(Mainstream Kenyah),
],
- q(7381) => [
+ q(7363) => [
q(Kayan River Kayan),
],
- q(7382) => [
+ q(7364) => [
q(Kiorr),
],
- q(7383) => [
+ q(7365) => [
q(Kabatei),
],
- q(7384) => [
+ q(7366) => [
q(Koroni),
],
- q(7385) => [
+ q(7367) => [
q(Xakriaba),
],
- q(7386) => [
+ q(7368) => [
q(Kumbewaha),
],
- q(7387) => [
+ q(7369) => [
q(Kantosi),
],
- q(7388) => [
+ q(7370) => [
q(Kaamba),
],
- q(7389) => [
+ q(7371) => [
q(Kgalagadi),
],
- q(7390) => [
+ q(7372) => [
q(Kembra),
],
- q(7391) => [
+ q(7373) => [
q(Karore),
],
- q(7392) => [
+ q(7374) => [
q(Uma' Lasan),
],
- q(7393) => [
+ q(7375) => [
q(Kurtokha),
],
- q(7394) => [
+ q(7376) => [
q(Kamula),
],
- q(7395) => [
+ q(7377) => [
q(Loup B),
],
- q(7396) => [
+ q(7378) => [
q(Lycian),
],
- q(7397) => [
+ q(7379) => [
q(Lydian),
],
- q(7398) => [
+ q(7380) => [
q(Lemnian),
],
- q(7399) => [
+ q(7381) => [
q(Ligurian (Ancient)),
],
- q(7400) => [
+ q(7382) => [
q(Liburnian),
],
- q(7401) => [
+ q(7383) => [
q(Alanic),
],
- q(7402) => [
+ q(7384) => [
q(Loup A),
],
- q(7403) => [
+ q(7385) => [
q(Lepontic),
],
- q(7404) => [
+ q(7386) => [
q(Lusitanian),
],
- q(7405) => [
+ q(7387) => [
q(Cuneiform Luwian),
],
- q(7406) => [
+ q(7388) => [
q(Elymian),
],
- q(7407) => [
+ q(7389) => [
q(Mushungulu),
],
- q(7408) => [
+ q(7390) => [
q(Mbonga),
],
- q(7409) => [
+ q(7391) => [
q(Makhuwa-Marrevone),
],
- q(7410) => [
+ q(7392) => [
q(Mbudum),
],
- q(7411) => [
+ q(7393) => [
q(Median),
],
- q(7412) => [
+ q(7394) => [
q(Mingrelian),
],
- q(7413) => [
+ q(7395) => [
q(Mengaka),
],
- q(7414) => [
+ q(7396) => [
q(Kuku-Muminh),
],
- q(7415) => [
+ q(7397) => [
q(Majera),
],
- q(7416) => [
+ q(7398) => [
q(Ancient Macedonian),
],
- q(7417) => [
+ q(7399) => [
q(Malaysian Sign Language),
],
- q(7418) => [
+ q(7400) => [
q(Manado Malay),
],
- q(7419) => [
+ q(7401) => [
q(Manichaean Middle Persian),
],
- q(7420) => [
+ q(7402) => [
q(Morerebi),
],
- q(7421) => [
+ q(7403) => [
q(Kuku-Mu'inh),
],
- q(7422) => [
+ q(7404) => [
q(Kuku-Mangk),
],
- q(7423) => [
+ q(7405) => [
q(Meroitic),
],
- q(7424) => [
+ q(7406) => [
q(Moroccan Sign Language),
],
- q(7425) => [
+ q(7407) => [
q(Matbat),
],
- q(7426) => [
+ q(7408) => [
q(Kamu),
],
- q(7427) => [
+ q(7409) => [
q(Antankarana Malagasy),
q(Tankarana Malagasy),
],
- q(7428) => [
+ q(7410) => [
q(Tsimihety Malagasy),
],
- q(7429) => [
+ q(7411) => [
q(Maden),
],
- q(7430) => [
+ q(7412) => [
q(Mayaguduna),
],
- q(7431) => [
+ q(7413) => [
q(Mori Bawah),
],
- q(7432) => [
+ q(7414) => [
q(Ancient North Arabian),
],
- q(7433) => [
+ q(7415) => [
q(Kanakanabu),
],
- q(7434) => [
+ q(7416) => [
q(Middle Mongolian),
],
- q(7435) => [
+ q(7417) => [
q(Kuanhua),
],
- q(7436) => [
+ q(7418) => [
q(Ngarigu),
],
- q(7437) => [
+ q(7419) => [
q(Nganakarti),
],
- q(7438) => [
+ q(7420) => [
q(Northern Kankanay),
],
- q(7439) => [
+ q(7421) => [
q(Anglo-Norman),
],
- q(7440) => [
+ q(7422) => [
q(Kangri),
],
- q(7441) => [
+ q(7423) => [
q(Kanashi),
],
- q(7442) => [
+ q(7424) => [
q(Narragansett),
],
- q(7443) => [
+ q(7425) => [
q(Nukunul),
],
- q(7444) => [
+ q(7426) => [
q(Nyiyaparli),
],
- q(7445) => [
+ q(7427) => [
q(Kenzi),
q(Mattoki),
],
- q(7446) => [
+ q(7428) => [
q(O'chi'chi'),
],
- q(7447) => [
+ q(7429) => [
q(Kokoda),
],
- q(7448) => [
+ q(7430) => [
q(Soga),
],
- q(7449) => [
+ q(7431) => [
q(Kominimung),
],
- q(7450) => [
+ q(7432) => [
q(Xokleng),
],
- q(7451) => [
+ q(7433) => [
q(Komo (Sudan)),
],
- q(7452) => [
+ q(7434) => [
q(Konkomba),
],
- q(7453) => [
+ q(7435) => [
q(Xukuru),
],
- q(7454) => [
+ q(7436) => [
q(Kopar),
],
- q(7455) => [
+ q(7437) => [
q(Korubo),
],
- q(7456) => [
+ q(7438) => [
q(Kowaki),
],
- q(7457) => [
+ q(7439) => [
q(Pirriya),
],
- q(7458) => [
+ q(7440) => [
q(Pecheneg),
],
- q(7459) => [
+ q(7441) => [
q(Liberia Kpelle),
],
- q(7460) => [
+ q(7442) => [
q(Phrygian),
],
- q(7461) => [
+ q(7443) => [
q(Pictish),
],
- q(7462) => [
+ q(7444) => [
q(Mpalitjanh),
],
- q(7463) => [
+ q(7445) => [
q(Kulina Pano),
],
- q(7464) => [
+ q(7446) => [
q(Pumpokol),
],
- q(7465) => [
+ q(7447) => [
q(Kapinawa),
],
- q(7466) => [
+ q(7448) => [
q(Pochutec),
],
- q(7467) => [
+ q(7449) => [
q(Puyo-Paekche),
],
- q(7468) => [
+ q(7450) => [
q(Mohegan-Pequot),
],
- q(7469) => [
+ q(7451) => [
q(Parthian),
],
- q(7470) => [
+ q(7452) => [
q(Pisidian),
],
- q(7471) => [
+ q(7453) => [
q(Punthamara),
],
- q(7472) => [
+ q(7454) => [
q(Punic),
],
- q(7473) => [
+ q(7455) => [
q(Puyo),
],
- q(7474) => [
+ q(7456) => [
q(Karakhanid),
],
- q(7475) => [
+ q(7457) => [
q(Qatabanian),
],
- q(7476) => [
+ q(7458) => [
q(Kraho),
],
- q(7477) => [
+ q(7459) => [
q(Eastern Karaboro),
],
- q(7478) => [
+ q(7460) => [
q(Gundungurra),
],
- q(7479) => [
+ q(7461) => [
q(Kreye),
],
- q(7480) => [
+ q(7462) => [
q(Minang),
],
- q(7481) => [
+ q(7463) => [
q(Krikati-Timbira),
],
- q(7482) => [
+ q(7464) => [
q(Armazic),
],
- q(7483) => [
+ q(7465) => [
q(Arin),
],
- q(7484) => [
+ q(7466) => [
q(Karranga),
],
- q(7485) => [
+ q(7467) => [
q(Raetic),
],
- q(7486) => [
+ q(7468) => [
q(Aranama-Tamique),
],
- q(7487) => [
+ q(7469) => [
q(Marriammu),
],
- q(7488) => [
+ q(7470) => [
q(Karawa),
],
- q(7489) => [
+ q(7471) => [
q(Sabaean),
],
- q(7490) => [
+ q(7472) => [
q(Sambal),
],
- q(7491) => [
+ q(7473) => [
q(Scythian),
],
- q(7492) => [
+ q(7474) => [
q(Sidetic),
],
- q(7493) => [
+ q(7475) => [
q(Sempan),
],
- q(7494) => [
+ q(7476) => [
q(Shamang),
],
- q(7495) => [
+ q(7477) => [
q(Sio),
],
- q(7496) => [
+ q(7478) => [
q(South Slavey),
],
- q(7497) => [
+ q(7479) => [
q(Kasem),
],
- q(7498) => [
+ q(7480) => [
q(Sanga (Nigeria)),
],
- q(7499) => [
+ q(7481) => [
q(Solano),
],
- q(7500) => [
+ q(7482) => [
q(Silopi),
],
- q(7501) => [
+ q(7483) => [
q(Makhuwa-Saka),
],
- q(7502) => [
+ q(7484) => [
q(Sherpa),
],
- q(7503) => [
+ q(7485) => [
q(Assan),
],
- q(7504) => [
+ q(7486) => [
q(Sanuma),
],
- q(7505) => [
+ q(7487) => [
q(Sudovian),
],
- q(7506) => [
+ q(7488) => [
q(Saisiyat),
],
- q(7507) => [
+ q(7489) => [
q(Alcozauca Mixtec),
],
- q(7508) => [
+ q(7490) => [
q(Chazumba Mixtec),
],
- q(7509) => [
+ q(7491) => [
q(Katcha-Kadugli-Miri),
],
- q(7510) => [
+ q(7492) => [
q(Diuxi-Tilantongo Mixtec),
],
- q(7511) => [
+ q(7493) => [
q(Ketengban),
],
- q(7512) => [
+ q(7494) => [
q(Transalpine Gaulish),
],
- q(7513) => [
+ q(7495) => [
q(Yitha Yitha),
],
- q(7514) => [
+ q(7496) => [
q(Sinicahua Mixtec),
],
- q(7515) => [
+ q(7497) => [
q(San Juan Teita Mixtec),
],
- q(7516) => [
+ q(7498) => [
q(Tijaltepec Mixtec),
],
- q(7517) => [
+ q(7499) => [
q(Magdalena Penasco Mixtec),
],
- q(7518) => [
+ q(7500) => [
q(Northern Tlaxiaco Mixtec),
],
- q(7519) => [
+ q(7501) => [
q(Tokharian A),
],
- q(7520) => [
+ q(7502) => [
q(San Miguel Piedras Mixtec),
],
- q(7521) => [
+ q(7503) => [
q(Tumshuqese),
],
- q(7522) => [
+ q(7504) => [
q(Early Tripuri),
],
- q(7523) => [
+ q(7505) => [
q(Sindihui Mixtec),
],
- q(7524) => [
+ q(7506) => [
q(Tacahua Mixtec),
],
- q(7525) => [
+ q(7507) => [
q(Cuyamecalco Mixtec),
],
- q(7526) => [
+ q(7508) => [
q(Thawa),
],
- q(7527) => [
+ q(7509) => [
q(Tawande),
],
- q(7528) => [
+ q(7510) => [
q(Yoloxochitl Mixtec),
],
- q(7529) => [
+ q(7511) => [
q(Tasmanian),
],
- q(7530) => [
+ q(7512) => [
q(Alu Kurumba),
],
- q(7531) => [
+ q(7513) => [
q(Betta Kurumba),
],
- q(7532) => [
+ q(7514) => [
q(Umiida),
],
- q(7533) => [
+ q(7515) => [
q(Kunigami),
],
- q(7534) => [
+ q(7516) => [
q(Jennu Kurumba),
],
- q(7535) => [
+ q(7517) => [
q(Ngunawal),
],
- q(7536) => [
+ q(7518) => [
q(Umbrian),
],
- q(7537) => [
+ q(7519) => [
q(Unggaranggu),
],
- q(7538) => [
+ q(7520) => [
q(Kuo),
],
- q(7539) => [
+ q(7521) => [
q(Upper Umpqua),
],
- q(7540) => [
+ q(7522) => [
q(Urartian),
],
- q(7541) => [
+ q(7523) => [
q(Kuthant),
],
- q(7542) => [
+ q(7524) => [
q(Kxoe),
],
- q(7543) => [
+ q(7525) => [
q(Venetic),
],
- q(7544) => [
+ q(7526) => [
q(Kamviri),
],
- q(7545) => [
+ q(7527) => [
q(Vandalic),
],
- q(7546) => [
+ q(7528) => [
q(Volscian),
],
- q(7547) => [
+ q(7529) => [
q(Vestinian),
],
- q(7548) => [
+ q(7530) => [
q(Kwaza),
],
- q(7549) => [
+ q(7531) => [
q(Woccon),
],
- q(7550) => [
+ q(7532) => [
q(Wadi Wadi),
],
- q(7551) => [
+ q(7533) => [
q(Xwela Gbe),
],
- q(7552) => [
+ q(7534) => [
q(Kwegu),
],
- q(7553) => [
+ q(7535) => [
q(Wajuk),
],
- q(7554) => [
+ q(7536) => [
q(Wangkumara),
],
- q(7555) => [
+ q(7537) => [
q(Western Xwla Gbe),
],
- q(7556) => [
+ q(7538) => [
q(Written Oirat),
],
- q(7557) => [
+ q(7539) => [
q(Kwerba Mamberamo),
],
- q(7558) => [
+ q(7540) => [
q(Wotjobaluk),
],
- q(7559) => [
+ q(7541) => [
q(Wemba Wemba),
],
- q(7560) => [
+ q(7542) => [
q(Boro (Ghana)),
],
- q(7561) => [
+ q(7543) => [
q(Ke'o),
],
- q(7562) => [
+ q(7544) => [
q(Minkin),
],
- q(7563) => [
+ q(7545) => [
q(Koropo),
],
- q(7564) => [
+ q(7546) => [
q(Tambora),
],
- q(7565) => [
+ q(7547) => [
q(Yaygir),
],
- q(7566) => [
+ q(7548) => [
q(Yandjibara),
],
- q(7567) => [
+ q(7549) => [
q(Mayi-Yapi),
],
- q(7568) => [
+ q(7550) => [
q(Mayi-Kulan),
],
- q(7569) => [
+ q(7551) => [
q(Yalakalore),
],
- q(7570) => [
+ q(7552) => [
q(Mayi-Thakurti),
],
- q(7571) => [
+ q(7553) => [
q(Yorta Yorta),
],
- q(7572) => [
+ q(7554) => [
q(Zhang-Zhung),
],
- q(7573) => [
+ q(7555) => [
q(Zemgalian),
],
- q(7574) => [
+ q(7556) => [
q(Ancient Zapotec),
],
- q(7575) => [
+ q(7557) => [
q(Yaminahua),
],
- q(7576) => [
+ q(7558) => [
q(Yuhup),
],
- q(7577) => [
+ q(7559) => [
q(Pass Valley Yali),
],
- q(7578) => [
+ q(7560) => [
q(Yagua),
],
- q(7579) => [
+ q(7561) => [
q(Pume),
],
- q(7580) => [
+ q(7562) => [
q(Yaka (Democratic Republic of Congo)),
],
- q(7581) => [
+ q(7563) => [
q(Yamana),
],
- q(7582) => [
+ q(7564) => [
q(Yazgulyam),
],
- q(7583) => [
+ q(7565) => [
q(Yagnobi),
],
- q(7584) => [
+ q(7566) => [
q(Banda-Yangere),
],
- q(7585) => [
+ q(7567) => [
q(Yakama),
],
- q(7586) => [
+ q(7568) => [
q(Yalunka),
],
- q(7587) => [
+ q(7569) => [
q(Yamba),
],
- q(7588) => [
+ q(7570) => [
q(Mayangna),
],
- q(7589) => [
+ q(7571) => [
q(Yaqui),
],
- q(7590) => [
+ q(7572) => [
q(Yabarana),
],
- q(7591) => [
+ q(7573) => [
q(Nugunu (Cameroon)),
],
- q(7592) => [
+ q(7574) => [
q(Yambeta),
],
- q(7593) => [
+ q(7575) => [
q(Yuwana),
],
- q(7594) => [
+ q(7576) => [
q(Yangben),
],
- q(7595) => [
+ q(7577) => [
q(Yawalapiti),
],
- q(7596) => [
+ q(7578) => [
q(Yauma),
],
- q(7597) => [
+ q(7579) => [
q(Agwagwune),
],
- q(7598) => [
+ q(7580) => [
q(Lokaa),
],
- q(7599) => [
+ q(7581) => [
q(Yala),
],
- q(7600) => [
+ q(7582) => [
q(Yemba),
],
- q(7601) => [
+ q(7583) => [
q(West Yugur),
],
- q(7602) => [
+ q(7584) => [
q(Yakha),
],
- q(7603) => [
+ q(7585) => [
q(Yamphu),
],
- q(7604) => [
+ q(7586) => [
q(Hasha),
],
- q(7605) => [
+ q(7587) => [
q(Bokha),
],
- q(7606) => [
+ q(7588) => [
q(Yukuben),
],
- q(7607) => [
+ q(7589) => [
q(Yaben),
],
- q(7608) => [
+ q(7590) => [
q(Yabaana),
],
- q(7609) => [
+ q(7591) => [
q(Yabong),
],
- q(7610) => [
+ q(7592) => [
q(Yawiyo),
],
- q(7611) => [
+ q(7593) => [
q(Yaweyuha),
],
- q(7612) => [
+ q(7594) => [
q(Chesu),
],
- q(7613) => [
+ q(7595) => [
q(Lolopo),
],
- q(7614) => [
+ q(7596) => [
q(Yucuna),
],
- q(7615) => [
+ q(7597) => [
q(Chepya),
],
- q(7616) => [
+ q(7598) => [
q(Yanda),
],
- q(7617) => [
+ q(7599) => [
q(Eastern Yiddish),
],
- q(7618) => [
+ q(7600) => [
q(Yangum Dey),
],
- q(7619) => [
+ q(7601) => [
q(Yidgha),
],
- q(7620) => [
+ q(7602) => [
q(Yoidik),
],
- q(7621) => [
+ q(7603) => [
q(Ravula),
],
- q(7622) => [
+ q(7604) => [
q(Yeniche),
],
- q(7623) => [
+ q(7605) => [
q(Yimas),
],
- q(7624) => [
+ q(7606) => [
q(Yeni),
],
- q(7625) => [
+ q(7607) => [
q(Yevanic),
],
- q(7626) => [
+ q(7608) => [
q(Yela),
],
- q(7627) => [
+ q(7609) => [
q(Tarok),
],
- q(7628) => [
+ q(7610) => [
q(Nyankpa),
],
- q(7629) => [
+ q(7611) => [
q(Yetfa),
],
- q(7630) => [
+ q(7612) => [
q(Yerukula),
],
- q(7631) => [
+ q(7613) => [
q(Yapunda),
],
- q(7632) => [
+ q(7614) => [
q(Yeyi),
],
- q(7633) => [
+ q(7615) => [
q(Malyangapa),
],
- q(7634) => [
+ q(7616) => [
q(Yiningayi),
],
- q(7635) => [
+ q(7617) => [
q(Yangum Gel),
],
- q(7636) => [
+ q(7618) => [
q(Yagomi),
],
- q(7637) => [
+ q(7619) => [
q(Gepo),
],
- q(7638) => [
+ q(7620) => [
q(Yagaria),
],
- q(7639) => [
+ q(7621) => [
q(Yolnu Sign Language),
],
- q(7640) => [
+ q(7622) => [
q(Yugul),
],
- q(7641) => [
+ q(7623) => [
q(Yagwoia),
],
- q(7642) => [
+ q(7624) => [
q(Baha Buyang),
],
- q(7643) => [
+ q(7625) => [
q(Judeo-Iraqi Arabic),
],
- q(7644) => [
+ q(7626) => [
q(Hlepho Phowa),
],
- q(7645) => [
+ q(7627) => [
q(Yan-nhanu Sign Language),
],
- q(7646) => [
+ q(7628) => [
q(Yinggarda),
],
- q(7647) => [
+ q(7629) => [
q(Wusa Nasu),
],
- q(7648) => [
+ q(7630) => [
q(Western Yiddish),
],
- q(7649) => [
+ q(7631) => [
q(Yidiny),
],
- q(7650) => [
+ q(7632) => [
q(Yindjibarndi),
],
- q(7651) => [
+ q(7633) => [
q(Dongshanba Lalo),
],
- q(7652) => [
+ q(7634) => [
q(Yindjilandji),
],
- q(7653) => [
+ q(7635) => [
q(Yimchungru Naga),
],
- q(7654) => [
+ q(7636) => [
q(Yinchia),
],
- q(7655) => [
+ q(7637) => [
q(Pholo),
],
- q(7656) => [
+ q(7638) => [
q(Miqie),
],
- q(7657) => [
+ q(7639) => [
q(North Awyu),
],
- q(7658) => [
+ q(7640) => [
q(Yis),
],
- q(7659) => [
+ q(7641) => [
q(Eastern Lalu),
],
- q(7660) => [
+ q(7642) => [
q(Awu),
],
- q(7661) => [
+ q(7643) => [
q(Northern Nisu),
],
- q(7662) => [
+ q(7644) => [
q(Axi Yi),
],
- q(7663) => [
+ q(7645) => [
q(Azhe),
],
- q(7664) => [
+ q(7646) => [
q(Yakan),
],
- q(7665) => [
+ q(7647) => [
q(Northern Yukaghir),
],
- q(7666) => [
+ q(7648) => [
q(Yoke),
],
- q(7667) => [
+ q(7649) => [
q(Yakaikeke),
],
- q(7668) => [
+ q(7650) => [
q(Khlula),
],
- q(7669) => [
+ q(7651) => [
q(Kap),
],
- q(7670) => [
+ q(7652) => [
q(Kua-nsi),
],
- q(7671) => [
+ q(7653) => [
q(Yasa),
],
- q(7672) => [
+ q(7654) => [
q(Yekora),
],
- q(7673) => [
+ q(7655) => [
q(Kathu),
],
- q(7674) => [
+ q(7656) => [
q(Kuamasi),
],
- q(7675) => [
+ q(7657) => [
q(Yakoma),
],
- q(7676) => [
+ q(7658) => [
q(Yaul),
],
- q(7677) => [
+ q(7659) => [
q(Yaleba),
],
- q(7678) => [
+ q(7660) => [
q(Yele),
],
- q(7679) => [
+ q(7661) => [
q(Yelogu),
],
- q(7680) => [
+ q(7662) => [
q(Angguruk Yali),
],
- q(7681) => [
+ q(7663) => [
q(Yil),
],
- q(7682) => [
+ q(7664) => [
q(Limi),
],
- q(7683) => [
+ q(7665) => [
q(Langnian Buyang),
],
- q(7684) => [
+ q(7666) => [
q(Naluo Yi),
],
- q(7685) => [
+ q(7667) => [
q(Yalarnnga),
],
- q(7686) => [
+ q(7668) => [
q(Aribwaung),
],
- q(7687) => [
+ q(7669) => [
q(Nyalayu),
q(Nyelayu),
],
- q(7688) => [
+ q(7670) => [
q(Yambes),
],
- q(7689) => [
+ q(7671) => [
q(Southern Muji),
],
- q(7690) => [
+ q(7672) => [
q(Muda),
],
- q(7691) => [
+ q(7673) => [
q(Yameo),
],
- q(7692) => [
+ q(7674) => [
q(Yamongeri),
],
- q(7693) => [
+ q(7675) => [
q(Mili),
],
- q(7694) => [
+ q(7676) => [
q(Moji),
],
- q(7695) => [
+ q(7677) => [
q(Makwe),
],
- q(7696) => [
+ q(7678) => [
q(Iamalele),
],
- q(7697) => [
+ q(7679) => [
q(Maay),
],
- q(7698) => [
+ q(7680) => [
q(Yamna),
q(Sunum),
],
- q(7699) => [
+ q(7681) => [
q(Yangum Mon),
],
- q(7700) => [
+ q(7682) => [
q(Yamap),
],
- q(7701) => [
+ q(7683) => [
q(Qila Muji),
],
- q(7702) => [
+ q(7684) => [
q(Malasar),
],
- q(7703) => [
+ q(7685) => [
q(Mysian),
],
- q(7704) => [
+ q(7686) => [
q(Northern Muji),
],
- q(7705) => [
+ q(7687) => [
q(Muzi),
],
- q(7706) => [
+ q(7688) => [
q(Aluo),
],
- q(7707) => [
+ q(7689) => [
q(Yandruwandha),
],
- q(7708) => [
+ q(7690) => [
q(Lang'e),
],
- q(7709) => [
+ q(7691) => [
q(Yango),
],
- q(7710) => [
+ q(7692) => [
q(Naukan Yupik),
],
- q(7711) => [
+ q(7693) => [
q(Yangulam),
],
- q(7712) => [
+ q(7694) => [
q(Yana),
],
- q(7713) => [
+ q(7695) => [
q(Yong),
],
- q(7714) => [
+ q(7696) => [
q(Yendang),
],
- q(7715) => [
+ q(7697) => [
q(Yansi),
],
- q(7716) => [
+ q(7698) => [
q(Yahuna),
],
- q(7717) => [
+ q(7699) => [
q(Yoba),
],
- q(7718) => [
+ q(7700) => [
q(Yogad),
],
- q(7719) => [
+ q(7701) => [
q(Yonaguni),
],
- q(7720) => [
+ q(7702) => [
q(Yokuts),
],
- q(7721) => [
+ q(7703) => [
q(Yola),
],
- q(7722) => [
+ q(7704) => [
q(Yombe),
],
- q(7723) => [
+ q(7705) => [
q(Yongkom),
],
- q(7724) => [
+ q(7706) => [
q(Yotti),
],
- q(7725) => [
+ q(7707) => [
q(Yoron),
],
- q(7726) => [
+ q(7708) => [
q(Yoy),
],
- q(7727) => [
+ q(7709) => [
q(Phala),
],
- q(7728) => [
+ q(7710) => [
q(Labo Phowa),
],
- q(7729) => [
+ q(7711) => [
q(Phola),
],
- q(7730) => [
+ q(7712) => [
q(Phupha),
],
- q(7731) => [
+ q(7713) => [
q(Phuma),
],
- q(7732) => [
+ q(7714) => [
q(Ani Phowa),
],
- q(7733) => [
+ q(7715) => [
q(Alo Phola),
],
- q(7734) => [
+ q(7716) => [
q(Phupa),
],
- q(7735) => [
+ q(7717) => [
q(Phuza),
],
- q(7736) => [
+ q(7718) => [
q(Yerakai),
],
- q(7737) => [
+ q(7719) => [
q(Yareba),
],
- q(7738) => [
+ q(7720) => [
q(Yaoure),
],
- q(7739) => [
- q(Yari),
- ],
- q(7740) => [
+ q(7721) => [
q(Nenets),
],
- q(7741) => [
+ q(7722) => [
q(Nhengatu),
],
- q(7742) => [
+ q(7723) => [
q(Yirrk-Mel),
],
- q(7743) => [
+ q(7724) => [
q(Yerong),
],
- q(7744) => [
+ q(7725) => [
+ q(Yaroame),
+ ],
+ q(7726) => [
q(Yarsun),
],
- q(7745) => [
+ q(7727) => [
q(Yarawata),
],
- q(7746) => [
+ q(7728) => [
q(Yarluyandi),
],
- q(7747) => [
+ q(7729) => [
q(Yassic),
],
- q(7748) => [
+ q(7730) => [
q(Samatao),
],
- q(7749) => [
+ q(7731) => [
q(Sonaga),
],
- q(7750) => [
+ q(7732) => [
q(Yugoslavian Sign Language),
],
- q(7751) => [
+ q(7733) => [
q(Sani),
],
- q(7752) => [
+ q(7734) => [
q(Nisi (China)),
],
- q(7753) => [
+ q(7735) => [
q(Southern Lolopo),
],
- q(7754) => [
+ q(7736) => [
q(Sirenik Yupik),
],
- q(7755) => [
+ q(7737) => [
q(Yessan-Mayo),
],
- q(7756) => [
+ q(7738) => [
q(Sanie),
],
- q(7757) => [
+ q(7739) => [
q(Talu),
],
- q(7758) => [
+ q(7740) => [
q(Tanglang),
],
- q(7759) => [
+ q(7741) => [
q(Thopho),
],
- q(7760) => [
+ q(7742) => [
q(Yout Wam),
],
- q(7761) => [
+ q(7743) => [
q(Yatay),
],
- q(7762) => [
+ q(7744) => [
q(Yucateco),
q(Yucatec Maya),
],
- q(7763) => [
+ q(7745) => [
q(Yugambal),
],
- q(7764) => [
+ q(7746) => [
q(Yuchi),
],
- q(7765) => [
+ q(7747) => [
q(Judeo-Tripolitanian Arabic),
],
- q(7766) => [
+ q(7748) => [
q(Yue Chinese),
q(Cantonese),
],
- q(7767) => [
+ q(7749) => [
q(Havasupai-Walapai-Yavapai),
],
- q(7768) => [
+ q(7750) => [
q(Yug),
],
- q(7769) => [
+ q(7751) => [
q(Yuruti),
],
- q(7770) => [
+ q(7752) => [
q(Karkar-Yuri),
],
- q(7771) => [
+ q(7753) => [
q(Yuki),
],
- q(7772) => [
+ q(7754) => [
q(Yulu),
],
- q(7773) => [
+ q(7755) => [
q(Quechan),
],
- q(7774) => [
+ q(7756) => [
q(Bena (Nigeria)),
],
- q(7775) => [
+ q(7757) => [
q(Yukpa),
],
- q(7776) => [
+ q(7758) => [
q(Yuqui),
],
- q(7777) => [
+ q(7759) => [
q(Yurok),
],
- q(7778) => [
+ q(7760) => [
q(Yopno),
],
- q(7779) => [
+ q(7761) => [
q(Yau (Morobe Province)),
],
- q(7780) => [
+ q(7762) => [
q(Southern Yukaghir),
],
- q(7781) => [
+ q(7763) => [
q(East Yugur),
],
- q(7782) => [
+ q(7764) => [
q(Yuracare),
],
- q(7783) => [
+ q(7765) => [
q(Yawa),
],
- q(7784) => [
+ q(7766) => [
q(Yavitero),
],
- q(7785) => [
+ q(7767) => [
q(Kalou),
],
- q(7786) => [
+ q(7768) => [
q(Yinhawangka),
],
- q(7787) => [
+ q(7769) => [
q(Western Lalu),
],
- q(7788) => [
+ q(7770) => [
q(Yawanawa),
],
- q(7789) => [
+ q(7771) => [
q(Wuding-Luquan Yi),
],
- q(7790) => [
+ q(7772) => [
q(Yawuru),
],
- q(7791) => [
+ q(7773) => [
q(Xishanba Lalo),
q(Central Lalo),
],
- q(7792) => [
+ q(7774) => [
q(Wumeng Nasu),
],
- q(7793) => [
+ q(7775) => [
q(Yawarawarga),
],
- q(7794) => [
+ q(7776) => [
q(Mayawali),
],
- q(7795) => [
+ q(7777) => [
q(Yagara),
],
- q(7796) => [
+ q(7778) => [
q(Yardliyawarra),
],
- q(7797) => [
+ q(7779) => [
q(Yinwum),
],
- q(7798) => [
+ q(7780) => [
q(Yuyu),
],
- q(7799) => [
+ q(7781) => [
q(Yabula Yabula),
],
- q(7800) => [
+ q(7782) => [
q(Yir Yoront),
],
- q(7801) => [
+ q(7783) => [
q(Yau (Sandaun Province)),
],
- q(7802) => [
+ q(7784) => [
q(Ayizi),
],
- q(7803) => [
+ q(7785) => [
q(E'ma Buyang),
],
- q(7804) => [
+ q(7786) => [
q(Zokhuo),
],
- q(7805) => [
+ q(7787) => [
q(Sierra de Juarez Zapotec),
],
- q(7806) => [
+ q(7788) => [
+ q(Western Tlacolula Valley Zapotec),
q(San Juan Guelavia Zapotec),
],
- q(7807) => [
+ q(7789) => [
q(Ocotlan Zapotec),
],
- q(7808) => [
+ q(7790) => [
q(Cajonos Zapotec),
],
- q(7809) => [
+ q(7791) => [
q(Yareni Zapotec),
],
- q(7810) => [
+ q(7792) => [
q(Ayoquesco Zapotec),
],
- q(7811) => [
+ q(7793) => [
q(Zaghawa),
],
- q(7812) => [
+ q(7794) => [
q(Zangwal),
],
- q(7813) => [
+ q(7795) => [
q(Isthmus Zapotec),
],
- q(7814) => [
+ q(7796) => [
q(Zaramo),
],
- q(7815) => [
+ q(7797) => [
q(Zanaki),
],
- q(7816) => [
+ q(7798) => [
q(Zauzou),
],
- q(7817) => [
+ q(7799) => [
q(Miahuatlan Zapotec),
],
- q(7818) => [
+ q(7800) => [
q(Ozolotepec Zapotec),
],
- q(7819) => [
+ q(7801) => [
q(Aloapam Zapotec),
],
- q(7820) => [
+ q(7802) => [
q(Rincon Zapotec),
],
- q(7821) => [
+ q(7803) => [
q(Santo Domingo Albarradas Zapotec),
],
- q(7822) => [
+ q(7804) => [
q(Tabaa Zapotec),
],
- q(7823) => [
+ q(7805) => [
q(Zangskari),
],
- q(7824) => [
+ q(7806) => [
q(Yatzachi Zapotec),
],
- q(7825) => [
+ q(7807) => [
q(Mitla Zapotec),
],
- q(7826) => [
+ q(7808) => [
q(Xadani Zapotec),
],
- q(7827) => [
+ q(7809) => [
q(Zayse-Zergulla),
q(Zaysete),
],
- q(7828) => [
+ q(7810) => [
q(Zari),
],
- q(7829) => [
+ q(7811) => [
q(Central Berawan),
],
- q(7830) => [
+ q(7812) => [
q(East Berawan),
],
- q(7831) => [
+ q(7813) => [
q(Batui),
],
- q(7832) => [
+ q(7814) => [
q(West Berawan),
],
- q(7833) => [
+ q(7815) => [
q(Coatecas Altas Zapotec),
],
- q(7834) => [
+ q(7816) => [
q(Central Hongshuihe Zhuang),
],
- q(7835) => [
+ q(7817) => [
q(Ngazidja Comorian),
],
- q(7836) => [
+ q(7818) => [
q(Zeeuws),
],
- q(7837) => [
+ q(7819) => [
q(Zenag),
],
- q(7838) => [
+ q(7820) => [
q(Eastern Hongshuihe Zhuang),
],
- q(7839) => [
+ q(7821) => [
q(Kinga),
],
- q(7840) => [
+ q(7822) => [
q(Guibei Zhuang),
],
- q(7841) => [
+ q(7823) => [
q(Minz Zhuang),
],
- q(7842) => [
+ q(7824) => [
q(Guibian Zhuang),
],
- q(7843) => [
+ q(7825) => [
q(Magori),
],
- q(7844) => [
+ q(7826) => [
q(Zhaba),
],
- q(7845) => [
+ q(7827) => [
q(Dai Zhuang),
],
- q(7846) => [
+ q(7828) => [
q(Zhire),
],
- q(7847) => [
+ q(7829) => [
q(Nong Zhuang),
],
- q(7848) => [
+ q(7830) => [
q(Zhoa),
],
- q(7849) => [
+ q(7831) => [
q(Zia),
],
- q(7850) => [
+ q(7832) => [
q(Zimbabwe Sign Language),
],
- q(7851) => [
+ q(7833) => [
q(Zimakani),
],
- q(7852) => [
+ q(7834) => [
q(Zialo),
],
- q(7853) => [
+ q(7835) => [
q(Mesme),
],
- q(7854) => [
+ q(7836) => [
q(Zinza),
],
- q(7855) => [
+ q(7837) => [
q(Ziriya),
],
- q(7856) => [
+ q(7838) => [
q(Zigula),
],
- q(7857) => [
+ q(7839) => [
q(Zizilivakan),
],
- q(7858) => [
+ q(7840) => [
q(Kaimbulawa),
],
- q(7859) => [
+ q(7841) => [
q(Koibal),
],
- q(7860) => [
+ q(7842) => [
q(Kadu),
],
- q(7861) => [
+ q(7843) => [
q(Koguryo),
],
- q(7862) => [
+ q(7844) => [
q(Khorezmian),
],
- q(7863) => [
+ q(7845) => [
q(Karankawa),
],
- q(7864) => [
+ q(7846) => [
q(Kanan),
],
- q(7865) => [
+ q(7847) => [
q(Kott),
],
- q(7866) => [
+ q(7848) => [
q(Sao Paulo Kaingang),
],
- q(7867) => [
+ q(7849) => [
q(Zakhring),
],
- q(7868) => [
+ q(7850) => [
q(Kitan),
],
- q(7869) => [
+ q(7851) => [
q(Kaurna),
],
- q(7870) => [
+ q(7852) => [
q(Krevinian),
],
- q(7871) => [
+ q(7853) => [
q(Khazar),
],
- q(7872) => [
+ q(7854) => [
q(Liujiang Zhuang),
],
- q(7873) => [
+ q(7855) => [
q(Malay (individual language)),
],
- q(7874) => [
+ q(7856) => [
q(Lianshan Zhuang),
],
- q(7875) => [
+ q(7857) => [
q(Liuqian Zhuang),
],
- q(7876) => [
+ q(7858) => [
q(Manda (Australia)),
],
- q(7877) => [
+ q(7859) => [
q(Zimba),
],
- q(7878) => [
+ q(7860) => [
q(Margany),
],
- q(7879) => [
+ q(7861) => [
q(Maridan),
],
- q(7880) => [
+ q(7862) => [
q(Mangerr),
],
- q(7881) => [
+ q(7863) => [
q(Mfinu),
],
- q(7882) => [
+ q(7864) => [
q(Marti Ke),
],
- q(7883) => [
+ q(7865) => [
q(Makolkol),
],
- q(7884) => [
+ q(7866) => [
q(Negeri Sembilan Malay),
],
- q(7885) => [
+ q(7867) => [
q(Maridjabin),
],
- q(7886) => [
+ q(7868) => [
q(Mandandanyi),
],
- q(7887) => [
+ q(7869) => [
q(Madngele),
],
- q(7888) => [
+ q(7870) => [
q(Marimanindji),
],
- q(7889) => [
+ q(7871) => [
q(Mbangwe),
],
- q(7890) => [
+ q(7872) => [
q(Molo),
],
- q(7891) => [
+ q(7873) => [
q(Mpuono),
],
- q(7892) => [
+ q(7874) => [
q(Mituku),
],
- q(7893) => [
+ q(7875) => [
q(Maranunggu),
],
- q(7894) => [
+ q(7876) => [
q(Mbesa),
],
- q(7895) => [
+ q(7877) => [
q(Maringarr),
],
- q(7896) => [
+ q(7878) => [
q(Muruwari),
],
- q(7897) => [
+ q(7879) => [
q(Mbariman-Gudhinma),
],
- q(7898) => [
+ q(7880) => [
q(Mbo (Democratic Republic of Congo)),
],
- q(7899) => [
+ q(7881) => [
q(Bomitaba),
],
- q(7900) => [
+ q(7882) => [
q(Mariyedi),
],
- q(7901) => [
+ q(7883) => [
q(Mbandja),
],
- q(7902) => [
+ q(7884) => [
q(Zan Gula),
],
- q(7903) => [
+ q(7885) => [
q(Zande (individual language)),
],
- q(7904) => [
+ q(7886) => [
q(Mang),
],
- q(7905) => [
+ q(7887) => [
q(Manangkari),
],
- q(7906) => [
+ q(7888) => [
q(Mangas),
],
- q(7907) => [
+ q(7889) => [
q(Copainala Zoque),
],
- q(7908) => [
+ q(7890) => [
q(Chimalapa Zoque),
],
- q(7909) => [
+ q(7891) => [
q(Zou),
],
- q(7910) => [
+ q(7892) => [
q(Asuncion Mixtepec Zapotec),
],
- q(7911) => [
+ q(7893) => [
q(Tabasco Zoque),
],
- q(7912) => [
+ q(7894) => [
q(Rayon Zoque),
],
- q(7913) => [
+ q(7895) => [
q(Francisco Leon Zoque),
],
- q(7914) => [
+ q(7896) => [
q(Lachiguiri Zapotec),
],
- q(7915) => [
+ q(7897) => [
q(Yautepec Zapotec),
],
- q(7916) => [
+ q(7898) => [
q(Choapan Zapotec),
],
- q(7917) => [
+ q(7899) => [
q(Southeastern Ixtlan Zapotec),
],
- q(7918) => [
+ q(7900) => [
q(Petapa Zapotec),
],
- q(7919) => [
+ q(7901) => [
q(San Pedro Quiatoni Zapotec),
],
- q(7920) => [
+ q(7902) => [
q(Guevea De Humboldt Zapotec),
],
- q(7921) => [
+ q(7903) => [
q(Totomachapan Zapotec),
],
- q(7922) => [
+ q(7904) => [
q(Santa Maria Quiegolani Zapotec),
],
- q(7923) => [
+ q(7905) => [
q(Quiavicuzas Zapotec),
],
- q(7924) => [
+ q(7906) => [
q(Tlacolulita Zapotec),
],
- q(7925) => [
+ q(7907) => [
q(Lachixio Zapotec),
],
- q(7926) => [
+ q(7908) => [
q(Mixtepec Zapotec),
],
- q(7927) => [
+ q(7909) => [
q(Santa Ines Yatzechi Zapotec),
],
- q(7928) => [
+ q(7910) => [
q(Amatlan Zapotec),
],
- q(7929) => [
+ q(7911) => [
q(El Alto Zapotec),
],
- q(7930) => [
+ q(7912) => [
q(Zoogocho Zapotec),
],
- q(7931) => [
+ q(7913) => [
q(Santiago Xanica Zapotec),
],
- q(7932) => [
+ q(7914) => [
q(Coatlan Zapotec),
],
- q(7933) => [
+ q(7915) => [
q(San Vicente Coatlan Zapotec),
],
- q(7934) => [
+ q(7916) => [
q(Yalalag Zapotec),
],
- q(7935) => [
+ q(7917) => [
q(Chichicapan Zapotec),
],
- q(7936) => [
+ q(7918) => [
q(Zaniza Zapotec),
],
- q(7937) => [
+ q(7919) => [
q(San Baltazar Loxicha Zapotec),
],
- q(7938) => [
+ q(7920) => [
q(Mazaltepec Zapotec),
],
- q(7939) => [
+ q(7921) => [
q(Texmelucan Zapotec),
],
- q(7940) => [
+ q(7922) => [
q(Qiubei Zhuang),
],
- q(7941) => [
+ q(7923) => [
q(Kara (Korea)),
],
- q(7942) => [
+ q(7924) => [
q(Mirgan),
],
- q(7943) => [
+ q(7925) => [
q(Zerenkel),
],
- q(7944) => [
+ q(7926) => [
q(Zaparo),
],
- q(7945) => [
+ q(7927) => [
q(Zarphatic),
],
- q(7946) => [
+ q(7928) => [
q(Mairasi),
],
- q(7947) => [
+ q(7929) => [
q(Sarasira),
],
- q(7948) => [
+ q(7930) => [
q(Kaskean),
],
- q(7949) => [
+ q(7931) => [
q(Zambian Sign Language),
],
- q(7950) => [
+ q(7932) => [
q(Standard Malay),
],
- q(7951) => [
+ q(7933) => [
q(Southern Rincon Zapotec),
],
- q(7952) => [
+ q(7934) => [
q(Sukurum),
],
- q(7953) => [
+ q(7935) => [
q(Elotepec Zapotec),
],
- q(7954) => [
+ q(7936) => [
q(Xanaguia Zapotec),
],
- q(7955) => [
+ q(7937) => [
q(Lapaguia-Guivini Zapotec),
],
- q(7956) => [
+ q(7938) => [
q(San Agustin Mixtepec Zapotec),
],
- q(7957) => [
+ q(7939) => [
q(Santa Catarina Albarradas Zapotec),
],
- q(7958) => [
+ q(7940) => [
q(Loxicha Zapotec),
],
- q(7959) => [
+ q(7941) => [
q(Quioquitani-Quieri Zapotec),
],
- q(7960) => [
+ q(7942) => [
q(Tilquiapan Zapotec),
],
- q(7961) => [
+ q(7943) => [
q(Tejalapan Zapotec),
],
- q(7962) => [
+ q(7944) => [
q(Guila Zapotec),
],
- q(7963) => [
+ q(7945) => [
q(Zaachila Zapotec),
],
- q(7964) => [
+ q(7946) => [
q(Yatee Zapotec),
],
- q(7965) => [
+ q(7947) => [
q(Zeem),
],
- q(7966) => [
+ q(7948) => [
q(Tokano),
],
- q(7967) => [
+ q(7949) => [
q(Kumzari),
],
- q(7968) => [
+ q(7950) => [
q(Zumaya),
],
- q(7969) => [
+ q(7951) => [
q(Zay),
],
- q(7970) => [
+ q(7952) => [
q(Yongbei Zhuang),
],
- q(7971) => [
+ q(7953) => [
q(Yang Zhuang),
],
- q(7972) => [
+ q(7954) => [
q(Youjiang Zhuang),
],
- q(7973) => [
+ q(7955) => [
q(Yongnan Zhuang),
],
- q(7974) => [
+ q(7956) => [
q(Zyphe Chin),
],
- q(7975) => [
+ q(7957) => [
q(Zuojiang Zhuang),
],
};
$Locale::Codes::Data{'language'}{'alias2id'} = {
q(!xoo) => [
- q(4975),
+ q(4966),
q(0),
],
q('are'are) => [
@@ -24294,39 +24253,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q('auhelawa) => [
- q(3648),
+ q(3642),
q(0),
],
q('oroe) => [
- q(1382),
+ q(1381),
q(1),
],
q(//ani) => [
- q(2803),
+ q(2798),
q(0),
],
q(//gana) => [
- q(2575),
+ q(2571),
q(0),
],
q(//xegwi) => [
- q(7330),
+ q(7314),
q(0),
],
q(/gwi) => [
- q(2686),
+ q(2681),
q(0),
],
q(/xam) => [
- q(7280),
+ q(7266),
q(0),
],
q(=/hua) => [
- q(2853),
+ q(2848),
q(0),
],
q(=/ungkue) => [
- q(2542),
+ q(2538),
q(1),
],
q(a'ou) => [
@@ -24338,7 +24297,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(a-hmaos) => [
- q(2780),
+ q(2775),
q(1),
],
q(a-pucikwar) => [
@@ -24354,7 +24313,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abadi) => [
- q(3202),
+ q(3199),
q(0),
],
q(abaga) => [
@@ -24370,7 +24329,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abar) => [
- q(4307),
+ q(4298),
q(0),
],
q(abau) => [
@@ -24394,7 +24353,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abinomn) => [
- q(1447),
+ q(1446),
q(0),
],
q(abipon) => [
@@ -24438,7 +24397,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abun) => [
- q(3325),
+ q(3321),
q(0),
],
q(abure) => [
@@ -24446,15 +24405,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(abureni) => [
- q(4259),
+ q(4250),
q(0),
],
q(acatepec me'phaa) => [
- q(6674),
+ q(6658),
q(0),
],
q(acatepec tlapanec) => [
- q(6674),
+ q(6658),
q(1),
],
q(achagua) => [
@@ -24466,7 +24425,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ache) => [
- q(2657),
+ q(2653),
q(0),
],
q(acheron) => [
@@ -24506,11 +24465,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(adai) => [
- q(7275),
+ q(7260),
q(0),
],
q(adamawa fulfulde) => [
- q(2380),
+ q(2377),
q(0),
],
q(adamorobe sign language) => [
@@ -24530,11 +24489,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(adara) => [
- q(3171),
+ q(3168),
q(0),
],
q(adasen) => [
- q(6533),
+ q(6520),
q(0),
],
q(adele) => [
@@ -24549,20 +24508,24 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0610),
q(0),
],
+ q(adilabad gondi) => [
+ q(7218),
+ q(0),
+ ],
q(adioukrou) => [
q(0611),
q(0),
],
q(adithinngithigh) => [
- q(2159),
+ q(2152),
q(0),
],
q(adivasi oriya) => [
- q(5303),
+ q(5294),
q(0),
],
q(adiwasi garasia) => [
- q(2415),
+ q(2412),
q(0),
],
q(adnyamathanha) => [
@@ -24598,7 +24561,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aequian) => [
- q(7276),
+ q(7261),
q(0),
],
q(aer) => [
@@ -24614,7 +24577,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(afghan persian) => [
- q(5602),
+ q(5592),
q(1),
],
q(afghan sign language) => [
@@ -24626,7 +24589,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(afra) => [
- q(6894),
+ q(6878),
q(1),
],
q(afrihili) => [
@@ -24670,7 +24633,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aghu-tharnggala) => [
- q(2641),
+ q(2637),
q(0),
],
q(aghul) => [
@@ -24678,7 +24641,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aghwan) => [
- q(7277),
+ q(7262),
q(0),
],
q(agi) => [
@@ -24686,11 +24649,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(agob) => [
- q(3371),
+ q(3367),
q(0),
],
q(agoi) => [
- q(2893),
+ q(2887),
q(0),
],
q(aguacateco) => [
@@ -24710,7 +24673,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(agusan manobo) => [
- q(4542),
+ q(4534),
q(0),
],
q(agutaynen) => [
@@ -24718,7 +24681,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(agwagwune) => [
- q(7597),
+ q(7579),
q(0),
],
q(ahan) => [
@@ -24729,8 +24692,12 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0677),
q(0),
],
+ q(aheri gondi) => [
+ q(2287),
+ q(0),
+ ],
q(aheu) => [
- q(6505),
+ q(6493),
q(0),
],
q(ahirani) => [
@@ -24746,7 +24713,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ahwai) => [
- q(4831),
+ q(4822),
q(0),
],
q(ai-cham) => [
@@ -24758,11 +24725,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aikana) => [
- q(6380),
+ q(6369),
q(0),
],
q(aiklep) => [
- q(4630),
+ q(4622),
q(0),
],
q(aimaq) => [
@@ -24806,7 +24773,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aiwoo) => [
- q(4832),
+ q(4823),
q(1),
],
q(aja (benin)) => [
@@ -24826,15 +24793,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ajiya) => [
- q(2904),
+ q(2898),
q(1),
],
q(ajumbu) => [
- q(4582),
+ q(4574),
q(0),
],
q(ajyininka apurucayali) => [
- q(1833),
+ q(1828),
q(0),
],
q(ak) => [
@@ -24842,7 +24809,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aka) => [
- q(6162),
+ q(6152),
q(0),
],
q(aka-bea) => [
@@ -24894,11 +24861,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akebu) => [
- q(3277),
+ q(3274),
q(0),
],
q(akei) => [
- q(6726),
+ q(6710),
q(0),
],
q(akeu) => [
@@ -24918,7 +24885,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akkala sami) => [
- q(6034),
+ q(6024),
q(0),
],
q(aklanon) => [
@@ -24930,11 +24897,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akoose) => [
- q(1464),
+ q(1463),
q(0),
],
q(akoye) => [
- q(4317),
+ q(4308),
q(0),
],
q(akpa) => [
@@ -24942,7 +24909,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akpes) => [
- q(2890),
+ q(2884),
q(0),
],
q(akrukay) => [
@@ -24950,7 +24917,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akukem) => [
- q(6186),
+ q(6176),
q(0),
],
q(akuku) => [
@@ -24974,11 +24941,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(akyaung ari naga) => [
- q(5048),
+ q(5039),
q(0),
],
q(al-sayyid bedouin sign language) => [
- q(6346),
+ q(6335),
q(0),
],
q(alaba-k'abeena) => [
@@ -24990,7 +24957,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alabat island agta) => [
- q(2180),
+ q(2173),
q(0),
],
q(alacalufan languages) => [
@@ -24998,7 +24965,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alacatlatzala mixtec) => [
- q(4310),
+ q(4301),
q(0),
],
q(alago) => [
@@ -25006,7 +24973,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alagwa) => [
- q(7083),
+ q(7067),
q(0),
],
q(alak) => [
@@ -25022,7 +24989,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alanic) => [
- q(7401),
+ q(7383),
q(0),
],
q(alapmunte) => [
@@ -25042,11 +25009,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(albanian sign language) => [
- q(6200),
+ q(6190),
q(0),
],
q(alcozauca mixtec) => [
- q(7507),
+ q(7489),
q(0),
],
q(alege) => [
@@ -25054,7 +25021,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alekano) => [
- q(2404),
+ q(2401),
q(0),
],
q(alemannic) => [
@@ -25106,11 +25073,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alo phola) => [
- q(7733),
+ q(7715),
q(0),
],
q(aloapam zapotec) => [
- q(7819),
+ q(7801),
q(0),
],
q(alor) => [
@@ -25130,7 +25097,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(alu kurumba) => [
- q(7530),
+ q(7512),
q(0),
],
q(alugu) => [
@@ -25146,7 +25113,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aluo) => [
- q(7706),
+ q(7688),
q(0),
],
q(alur) => [
@@ -25170,7 +25137,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ama (sudan)) => [
- q(5163),
+ q(5154),
q(0),
],
q(amahai) => [
@@ -25210,15 +25177,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(amatlan zapotec) => [
- q(7928),
+ q(7910),
q(0),
],
q(amba (solomon islands)) => [
- q(6956),
+ q(6940),
q(0),
],
q(amba (uganda)) => [
- q(5878),
+ q(5867),
q(0),
],
q(ambai) => [
@@ -25250,7 +25217,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ambo-pasco quechua) => [
- q(5700),
+ q(5689),
q(0),
],
q(ambonese malay) => [
@@ -25286,7 +25253,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(amganad ifugao) => [
- q(2912),
+ q(2906),
q(0),
],
q(amharic) => [
@@ -25298,7 +25265,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(amio-gelimi) => [
- q(3878),
+ q(3869),
q(1),
],
q(amis) => [
@@ -25314,7 +25281,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(amoltepec mixtec) => [
- q(4152),
+ q(4143),
q(0),
],
q(ampanang) => [
@@ -25342,7 +25309,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ana tinga dogon) => [
- q(2160),
+ q(2153),
q(0),
],
q(anaang) => [
@@ -25358,7 +25325,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anam) => [
- q(5397),
+ q(5389),
q(0),
],
q(anambe) => [
@@ -25366,11 +25333,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anamgura) => [
- q(2962),
+ q(2957),
q(0),
],
q(anasi) => [
- q(1386),
+ q(1385),
q(0),
],
q(anca) => [
@@ -25378,7 +25345,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ancient aramaic (up to 700 bce)) => [
- q(5187),
+ q(5178),
q(1),
],
q(ancient greek (to 1453)) => [
@@ -25386,23 +25353,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(ancient hebrew) => [
- q(2735),
+ q(2730),
q(0),
],
q(ancient macedonian) => [
- q(7416),
+ q(7398),
q(0),
],
q(ancient north arabian) => [
- q(7432),
+ q(7414),
q(0),
],
q(ancient zapotec) => [
- q(7574),
+ q(7556),
q(0),
],
q(andaandi) => [
- q(2013),
+ q(2006),
q(0),
],
q(andai) => [
@@ -25414,11 +25381,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(andalusian arabic) => [
- q(7272),
+ q(7257),
q(0),
],
q(andaman creole hindi) => [
- q(2737),
+ q(2732),
q(0),
],
q(andaqui) => [
@@ -25442,7 +25409,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(andio) => [
- q(1614),
+ q(1612),
q(0),
],
q(andoa) => [
@@ -25470,7 +25437,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anfillo) => [
- q(4685),
+ q(4677),
q(0),
],
q(angaataha) => [
@@ -25494,11 +25461,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(angami naga) => [
- q(4912),
+ q(4903),
q(0),
],
q(angguruk yali) => [
- q(7680),
+ q(7662),
q(0),
],
q(angika) => [
@@ -25510,11 +25477,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anglo-norman) => [
- q(7439),
+ q(7421),
q(0),
],
q(angloromani) => [
- q(5809),
+ q(5798),
q(0),
],
q(angolar) => [
@@ -25530,7 +25497,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(angosturas tunebo) => [
- q(6614),
+ q(6600),
q(0),
],
q(anguthimri) => [
@@ -25538,15 +25505,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ani) => [
- q(2803),
+ q(2798),
q(1),
],
q(ani phowa) => [
- q(7732),
+ q(7714),
q(0),
],
q(anii) => [
- q(1292),
+ q(1291),
q(0),
],
q(animere) => [
@@ -25558,7 +25525,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anjam) => [
- q(1359),
+ q(1358),
q(0),
],
q(ankave) => [
@@ -25570,7 +25537,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anong) => [
- q(5116),
+ q(5107),
q(0),
],
q(anor) => [
@@ -25590,7 +25557,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(antankarana malagasy) => [
- q(7427),
+ q(7409),
q(0),
],
q(antigua and barbuda creole english) => [
@@ -25606,7 +25573,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anufo) => [
- q(1759),
+ q(1755),
q(0),
],
q(anuki) => [
@@ -25626,15 +25593,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(anyin morofo) => [
- q(4556),
+ q(4548),
q(0),
],
q(ao naga) => [
- q(4914),
+ q(4905),
q(0),
],
q(aoheng) => [
- q(5536),
+ q(5528),
q(0),
],
q(aore) => [
@@ -25642,7 +25609,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ap ma) => [
- q(3206),
+ q(3203),
q(0),
],
q(apache languages) => [
@@ -25650,7 +25617,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(apalachee) => [
- q(7283),
+ q(7269),
q(0),
],
q(apalai) => [
@@ -25658,11 +25625,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(apali) => [
- q(2264),
+ q(2259),
q(0),
],
q(apasco-apoala mixtec) => [
- q(4312),
+ q(4303),
q(0),
],
q(apatani) => [
@@ -25694,7 +25661,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aquitanian) => [
- q(7284),
+ q(7270),
q(0),
],
q(arabana) => [
@@ -25718,7 +25685,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arakwal) => [
- q(5804),
+ q(5793),
q(0),
],
q(aralle-tabulahan) => [
@@ -25726,7 +25693,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arammba) => [
- q(6263),
+ q(6253),
q(0),
],
q(aranadan) => [
@@ -25734,11 +25701,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aranama-tamique) => [
- q(7486),
+ q(7468),
q(0),
],
q(arandai) => [
- q(3062),
+ q(3058),
q(0),
],
q(araona) => [
@@ -25754,7 +25721,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ararandewara) => [
- q(7279),
+ q(7264),
q(0),
],
q(arauan languages) => [
@@ -25794,11 +25761,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ardhamagadhi prakrit) => [
- q(5474),
+ q(5467),
q(0),
],
q(are) => [
- q(4627),
+ q(4619),
q(0),
],
q(areba) => [
@@ -25810,7 +25777,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arequipa-la union quechua) => [
- q(5732),
+ q(5721),
q(0),
],
q(argentine sign language) => [
@@ -25842,11 +25809,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aribwatsa) => [
- q(3812),
+ q(3803),
q(0),
],
q(aribwaung) => [
- q(7686),
+ q(7668),
q(0),
],
q(arifama-miniafia) => [
@@ -25870,11 +25837,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arin) => [
- q(7483),
+ q(7465),
q(0),
],
q(aringa) => [
- q(4077),
+ q(4068),
q(0),
],
q(arma) => [
@@ -25882,7 +25849,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(armazic) => [
- q(7482),
+ q(7464),
q(0),
],
q(armenian) => [
@@ -25914,11 +25881,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(arpitan) => [
- q(2374),
+ q(2371),
q(0),
],
q(arritinngithigh) => [
- q(5853),
+ q(5841),
q(0),
],
q(arta) => [
@@ -25938,7 +25905,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aruamu) => [
- q(4553),
+ q(4545),
q(0),
],
q(aruek) => [
@@ -25950,7 +25917,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(aruop) => [
- q(4066),
+ q(4057),
q(0),
],
q(arutani) => [
@@ -25966,7 +25933,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(asaro'o) => [
- q(4576),
+ q(4568),
q(0),
],
q(asas) => [
@@ -25974,7 +25941,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ashaninka) => [
- q(1800),
+ q(1796),
q(0),
],
q(ashe) => [
@@ -25982,11 +25949,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(asheninka pajonal) => [
- q(1750),
+ q(1746),
q(0),
],
q(asheninka perene) => [
- q(5600),
+ q(5590),
q(0),
],
q(ashkun) => [
@@ -25994,7 +25961,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(asho chin) => [
- q(1872),
+ q(1866),
q(0),
],
q(ashtiani) => [
@@ -26006,7 +25973,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(askopan) => [
- q(2230),
+ q(2225),
q(0),
],
q(asoa) => [
@@ -26018,11 +25985,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(assan) => [
- q(7503),
+ q(7485),
q(0),
],
q(assangori) => [
- q(6059),
+ q(6049),
q(0),
],
q(assiniboine) => [
@@ -26050,7 +26017,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(asue awyu) => [
- q(5609),
+ q(5598),
q(0),
],
q(asumboa) => [
@@ -26058,7 +26025,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(asuncion mixtepec zapotec) => [
- q(7910),
+ q(7892),
q(0),
],
q(asuri) => [
@@ -26082,11 +26049,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(atatlahuca mixtec) => [
- q(4300),
+ q(4291),
q(0),
],
q(atayal) => [
- q(6378),
+ q(6367),
q(0),
],
q(atemble) => [
@@ -26134,7 +26101,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(atsam) => [
- q(1685),
+ q(1681),
q(0),
],
q(atsugewi) => [
@@ -26142,7 +26109,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(attapady kurumba) => [
- q(5482),
+ q(5475),
q(0),
],
q(attie) => [
@@ -26150,7 +26117,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(atzingo matlatzinca) => [
- q(5200),
+ q(5191),
q(0),
],
q(au) => [
@@ -26202,7 +26169,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(auwe) => [
- q(6119),
+ q(6109),
q(0),
],
q(auye) => [
@@ -26214,7 +26181,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ava guarani) => [
- q(4863),
+ q(4854),
q(1),
],
q(ava-canoeiro) => [
@@ -26234,7 +26201,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(avava) => [
- q(6588),
+ q(6575),
q(1),
],
q(avestan) => [
@@ -26250,7 +26217,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(awa (china)) => [
- q(7055),
+ q(7039),
q(0),
],
q(awa (papua new guinea)) => [
@@ -26258,7 +26225,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(awa-cuaiquer) => [
- q(3701),
+ q(3694),
q(0),
],
q(awabakal) => [
@@ -26290,7 +26257,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(aweer) => [
- q(1353),
+ q(1352),
q(0),
],
q(awera) => [
@@ -26318,15 +26285,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(awngthim) => [
- q(2687),
+ q(2682),
q(0),
],
q(awtuw) => [
- q(3467),
+ q(3463),
q(0),
],
q(awu) => [
- q(7660),
+ q(7642),
q(0),
],
q(awun) => [
@@ -26346,7 +26313,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(axi yi) => [
- q(7662),
+ q(7644),
q(0),
],
q(ayabadhu) => [
@@ -26354,15 +26321,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ayacucho quechua) => [
- q(5698),
+ q(5687),
q(0),
],
q(ayangan ifugao) => [
- q(2913),
+ q(2907),
q(1),
],
q(ayautla mazatec) => [
- q(7039),
+ q(7023),
q(0),
],
q(ayere) => [
@@ -26378,11 +26345,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ayiwo) => [
- q(4832),
+ q(4823),
q(0),
],
q(ayizi) => [
- q(7802),
+ q(7784),
q(0),
],
q(ayizo gbe) => [
@@ -26394,7 +26361,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ayoquesco zapotec) => [
- q(7810),
+ q(7792),
q(0),
],
q(ayoreo) => [
@@ -26406,7 +26373,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ayutla mixtec) => [
- q(4319),
+ q(4310),
q(0),
],
q(azerbaijani) => [
@@ -26418,23 +26385,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(azhe) => [
- q(7663),
+ q(7645),
q(0),
],
q(azoyu me'phaa) => [
- q(6657),
+ q(6641),
q(0),
],
q(azoyu tlapanec) => [
- q(6657),
+ q(6641),
q(1),
],
q(baan) => [
- q(1526),
+ q(1524),
q(0),
],
q(baangi) => [
- q(1420),
+ q(1419),
q(0),
],
q(baatonum) => [
@@ -26446,7 +26413,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baba malay) => [
- q(4133),
+ q(4124),
q(0),
],
q(babalia creole arabic) => [
@@ -26474,7 +26441,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(babuza) => [
- q(1619),
+ q(1617),
q(0),
],
q(bacama) => [
@@ -26482,15 +26449,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bacanese malay) => [
- q(1479),
+ q(1478),
q(0),
],
q(bactrian) => [
- q(7294),
+ q(7279),
q(0),
],
q(bada (indonesia)) => [
- q(1209),
+ q(1208),
q(0),
],
q(bada (nigeria)) => [
@@ -26510,15 +26477,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(badi kanum) => [
- q(3335),
+ q(3331),
q(0),
],
q(badimaya) => [
- q(1210),
+ q(1209),
q(0),
],
q(badjiri) => [
- q(3061),
+ q(3057),
q(0),
],
q(badui) => [
@@ -26526,19 +26493,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(badyara) => [
- q(5374),
+ q(5366),
q(0),
],
q(baeggu) => [
- q(1520),
+ q(1518),
q(0),
],
q(baelelea) => [
- q(1519),
+ q(1517),
q(0),
],
q(baetora) => [
- q(1486),
+ q(1484),
q(0),
],
q(bafanji) => [
@@ -26546,43 +26513,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bafaw-balong) => [
- q(1561),
+ q(1559),
q(0),
],
q(bafia) => [
- q(3599),
+ q(3594),
q(0),
],
q(bafut) => [
q(1139),
q(0),
],
- q(baga binari) => [
- q(1070),
- q(0),
- ],
q(baga kaloum) => [
- q(1402),
+ q(1401),
q(0),
],
q(baga koga) => [
- q(1174),
+ q(1173),
q(0),
],
q(baga manduri) => [
- q(1306),
+ q(1305),
q(0),
],
- q(baga mboteni) => [
- q(1172),
+ q(baga pokur) => [
+ q(1070),
q(0),
],
q(baga sitemu) => [
- q(1461),
+ q(1460),
q(0),
],
q(baga sobane) => [
- q(1467),
+ q(1466),
q(0),
],
q(bagheli) => [
@@ -26590,35 +26553,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bagirmi) => [
- q(1311),
+ q(1310),
q(0),
],
q(bagirmi fulfulde) => [
- q(2386),
+ q(2383),
q(0),
],
q(bago-kusuntu) => [
- q(1403),
+ q(1402),
q(0),
],
q(bagri) => [
- q(1176),
+ q(1175),
q(0),
],
q(bagupi) => [
- q(1380),
+ q(1379),
q(0),
],
q(bagusa) => [
- q(1399),
+ q(1398),
q(0),
],
q(bagvalal) => [
- q(3667),
+ q(3661),
q(0),
],
q(baha buyang) => [
- q(7642),
+ q(7624),
q(0),
],
q(baham) => [
@@ -26634,15 +26597,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bahau) => [
- q(1205),
+ q(1204),
q(0),
],
q(bahinemo) => [
- q(1237),
+ q(1236),
q(0),
],
q(bahing) => [
- q(1195),
+ q(1194),
q(0),
],
q(bahnar) => [
@@ -26650,7 +26613,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bahonsuai) => [
- q(1466),
+ q(1465),
q(0),
],
q(bai) => [
@@ -26662,15 +26625,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baikeno) => [
- q(1276),
+ q(1275),
q(0),
],
q(baima) => [
- q(1404),
+ q(1403),
q(0),
],
q(baimak) => [
- q(1326),
+ q(1325),
q(0),
],
q(bainouk-gunyaamolo) => [
@@ -26686,23 +26649,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baiso) => [
- q(1468),
+ q(1467),
q(0),
],
q(baissa fali) => [
- q(2327),
+ q(2323),
q(0),
],
q(bajan) => [
- q(1247),
+ q(1246),
q(0),
],
q(bajelani) => [
- q(1242),
+ q(1241),
q(0),
],
q(baka (cameroon)) => [
- q(1256),
+ q(1255),
q(0),
],
q(baka (sudan)) => [
@@ -26710,27 +26673,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bakairi) => [
- q(1269),
+ q(1268),
q(0),
],
q(bakaka) => [
- q(1422),
+ q(1421),
q(0),
],
q(bakhtiari) => [
- q(1405),
+ q(1404),
q(0),
],
q(baki) => [
- q(1261),
+ q(1260),
q(0),
],
q(bakoko) => [
- q(1260),
+ q(1259),
q(0),
],
q(bakole) => [
- q(3458),
+ q(3454),
q(0),
],
q(bakpinka) => [
@@ -26738,39 +26701,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bakumpai) => [
- q(1270),
+ q(1269),
q(0),
],
q(bakwe) => [
- q(1251),
+ q(1250),
q(0),
],
q(balaesang) => [
- q(1296),
+ q(1295),
q(0),
],
q(balangao) => [
- q(1299),
+ q(1298),
q(0),
],
q(balangingi) => [
- q(6233),
+ q(6223),
q(0),
],
q(balanta-ganja) => [
- q(1248),
+ q(1247),
q(0),
],
q(balanta-kentohe) => [
- q(1282),
+ q(1281),
q(0),
],
q(balantak) => [
- q(1302),
+ q(1301),
q(0),
],
q(balau) => [
- q(1284),
+ q(1283),
q(0),
],
q(baldemu) => [
@@ -26790,23 +26753,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(balinese malay) => [
- q(4289),
+ q(4280),
q(0),
],
q(balkan gagauz turkish) => [
- q(1183),
+ q(1182),
q(0),
],
q(balkan romani) => [
- q(5817),
+ q(5806),
q(0),
],
q(balo) => [
- q(1411),
+ q(1410),
q(0),
],
q(baloi) => [
- q(1230),
+ q(1229),
q(0),
],
q(balti) => [
@@ -26818,11 +26781,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baltic romani) => [
- q(5815),
+ q(5804),
q(0),
],
q(baluan-pam) => [
- q(1294),
+ q(1293),
q(0),
],
q(baluchi) => [
@@ -26830,7 +26793,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bamako sign language) => [
- q(1356),
+ q(1355),
q(0),
],
q(bamali) => [
@@ -26838,11 +26801,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bambalang) => [
- q(1317),
+ q(1316),
q(0),
],
q(bambam) => [
- q(5637),
+ q(5626),
q(0),
],
q(bambara) => [
@@ -26850,7 +26813,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bambassi) => [
- q(4677),
+ q(4669),
q(0),
],
q(bambili-bambui) => [
@@ -26870,7 +26833,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bamukumbit) => [
- q(1416),
+ q(1415),
q(0),
],
q(bamun) => [
@@ -26878,11 +26841,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bamunka) => [
- q(1529),
+ q(1527),
q(0),
],
q(bamwe) => [
- q(1309),
+ q(1308),
q(0),
],
q(ban khor sign language) => [
@@ -26894,19 +26857,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(banam bay) => [
- q(7047),
+ q(7031),
q(1),
],
q(banao itneg) => [
- q(1252),
+ q(1251),
q(0),
],
q(banaro) => [
- q(1612),
+ q(1610),
q(0),
],
q(banda (indonesia)) => [
- q(1331),
+ q(1330),
q(0),
],
q(banda languages) => [
@@ -26914,19 +26877,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(banda malay) => [
- q(1388),
+ q(1387),
q(0),
],
q(banda-bambari) => [
- q(3930),
+ q(3921),
q(0),
],
q(banda-banda) => [
- q(1377),
+ q(1376),
q(0),
],
q(banda-mbres) => [
- q(1407),
+ q(1406),
q(0),
],
q(banda-ndele) => [
@@ -26934,15 +26897,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(banda-yangere) => [
- q(7584),
+ q(7566),
q(0),
],
q(bandi) => [
- q(1613),
+ q(1611),
q(0),
],
q(bandial) => [
- q(1406),
+ q(1405),
q(0),
],
q(bandjalang) => [
@@ -26950,7 +26913,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bangala) => [
- q(1573),
+ q(1571),
q(0),
],
q(bangandu) => [
@@ -26962,27 +26925,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(banggai) => [
- q(1185),
+ q(1184),
q(0),
],
q(banggarla) => [
- q(1232),
+ q(1231),
q(0),
],
q(bangi) => [
- q(1335),
+ q(1334),
q(0),
],
q(bangime) => [
- q(1956),
+ q(1949),
q(0),
],
q(bangingih sama) => [
- q(6233),
+ q(6223),
q(1),
],
q(bangka) => [
- q(4226),
+ q(4217),
q(0),
],
q(bangolan) => [
@@ -26990,35 +26953,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bangubangu) => [
- q(1349),
+ q(1348),
q(0),
],
q(bangwinji) => [
- q(1455),
+ q(1454),
q(0),
],
q(baniva) => [
- q(1537),
+ q(1535),
q(0),
],
q(baniwa) => [
- q(1550),
+ q(1548),
q(0),
],
q(banjar) => [
- q(1243),
+ q(1242),
q(0),
],
q(bankagooma) => [
- q(1588),
+ q(1586),
q(0),
],
q(bankal) => [
- q(3108),
+ q(3104),
q(0),
],
q(bankan tey dogon) => [
- q(1974),
+ q(1967),
q(0),
],
q(bankon) => [
@@ -27038,11 +27001,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bantik) => [
- q(1343),
+ q(1342),
q(0),
],
q(bantoanon) => [
- q(1341),
+ q(1340),
q(0),
],
q(bantu (other)) => [
@@ -27058,15 +27021,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bara malagasy) => [
- q(1201),
+ q(1200),
q(0),
],
q(baraamu) => [
- q(1425),
+ q(1424),
q(0),
],
q(barababaraba) => [
- q(5761),
+ q(5750),
q(0),
],
q(barai) => [
@@ -27078,7 +27041,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(baram kayan) => [
- q(3760),
+ q(3753),
q(0),
],
q(barama) => [
@@ -27086,39 +27049,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(barambu) => [
- q(1433),
+ q(1432),
q(0),
],
q(baramu) => [
- q(1327),
+ q(1326),
q(0),
],
q(barapasi) => [
- q(1436),
+ q(1435),
q(0),
],
q(baras) => [
- q(1439),
+ q(1438),
q(0),
],
q(barasana-eduria) => [
- q(1459),
+ q(1458),
q(0),
],
q(barbacoas) => [
- q(1376),
+ q(1375),
q(0),
],
q(barbaram) => [
- q(7019),
+ q(7003),
q(0),
],
q(barbareno) => [
- q(1358),
+ q(1357),
q(0),
],
q(barclayville grebo) => [
- q(2630),
+ q(2626),
q(0),
],
q(bardi) => [
@@ -27130,11 +27093,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(barein) => [
- q(1517),
+ q(1515),
q(0),
],
q(bargam) => [
- q(4381),
+ q(4373),
q(0),
],
q(bari) => [
@@ -27146,19 +27109,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bariji) => [
- q(1233),
+ q(1232),
q(0),
],
q(barikanchi) => [
- q(1581),
+ q(1579),
q(0),
],
q(barikewa) => [
- q(3063),
+ q(3059),
q(0),
],
q(barok) => [
- q(1240),
+ q(1239),
q(0),
],
q(barombi) => [
@@ -27166,27 +27129,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(barro negro tunebo) => [
- q(6393),
+ q(6382),
q(0),
],
q(barrow point) => [
- q(1391),
+ q(1390),
q(0),
],
q(baruga) => [
- q(1254),
+ q(1253),
q(0),
],
q(baruya) => [
- q(1606),
+ q(1604),
q(0),
],
q(barwe) => [
- q(1548),
+ q(1546),
q(0),
],
q(barzani jewish neo-aramaic) => [
- q(1235),
+ q(1234),
q(0),
],
q(basa) => [
@@ -27198,15 +27161,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(basa (nigeria)) => [
- q(1635),
+ q(1633),
q(0),
],
q(basa-gumna) => [
- q(1457),
+ q(1456),
q(0),
],
q(basa-gurmana) => [
- q(1502),
+ q(1500),
q(0),
],
q(basap) => [
@@ -27214,11 +27177,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(basay) => [
- q(1605),
+ q(1603),
q(0),
],
q(bashkardi) => [
- q(1452),
+ q(1451),
q(0),
],
q(bashkir) => [
@@ -27226,7 +27189,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(basketo) => [
- q(1465),
+ q(1464),
q(0),
],
q(basque) => [
@@ -27238,35 +27201,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bassa) => [
- q(1462),
+ q(1461),
q(0),
],
q(bassa-kontagora) => [
- q(1463),
+ q(1462),
q(0),
],
q(bassari) => [
- q(1449),
+ q(1448),
q(0),
],
q(bassossi) => [
- q(1454),
+ q(1453),
q(0),
],
q(bata) => [
- q(1471),
+ q(1470),
q(0),
],
q(batad ifugao) => [
- q(2913),
+ q(2907),
q(0),
],
q(batak) => [
- q(1590),
+ q(1588),
q(0),
],
q(batak alas-kluet) => [
- q(1494),
+ q(1492),
q(0),
],
q(batak angkola) => [
@@ -27274,11 +27237,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batak dairi) => [
- q(1473),
+ q(1472),
q(0),
],
q(batak karo) => [
- q(1492),
+ q(1490),
q(0),
],
q(batak languages) => [
@@ -27286,11 +27249,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batak mandailing) => [
- q(1481),
+ q(1479),
q(0),
],
q(batak simalungun) => [
- q(1487),
+ q(1485),
q(0),
],
q(batak toba) => [
@@ -27298,27 +27261,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batanga) => [
- q(1339),
+ q(1338),
q(0),
],
q(batek) => [
- q(1485),
+ q(1483),
q(0),
],
q(bateri) => [
- q(1490),
+ q(1488),
q(0),
],
q(bathari) => [
- q(1197),
+ q(1196),
q(0),
],
q(bati (cameroon)) => [
- q(1472),
+ q(1471),
q(0),
],
q(bati (indonesia)) => [
- q(1535),
+ q(1533),
q(0),
],
q(bats) => [
@@ -27326,11 +27289,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batu) => [
- q(1489),
+ q(1487),
q(0),
],
q(batui) => [
- q(7831),
+ q(7813),
q(0),
],
q(batuley) => [
@@ -27338,7 +27301,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(batyala) => [
- q(7307),
+ q(7291),
q(0),
],
q(bau) => [
@@ -27346,15 +27309,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bau bidayuh) => [
- q(6137),
+ q(6127),
q(0),
],
q(bauchi) => [
- q(1451),
+ q(1450),
q(0),
],
q(baure) => [
- q(1427),
+ q(1426),
q(0),
],
q(bauria) => [
@@ -27362,11 +27325,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bauwaki) => [
- q(1552),
+ q(1550),
q(0),
],
q(bauzi) => [
- q(1541),
+ q(1539),
q(0),
],
q(bavarian) => [
@@ -27374,27 +27337,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bawm chin) => [
- q(1177),
+ q(1176),
q(0),
],
q(bay miwok) => [
- q(4358),
+ q(4350),
q(0),
],
q(bayali) => [
- q(1253),
+ q(1252),
q(0),
],
q(baybayanon) => [
- q(1540),
+ q(1538),
q(0),
],
q(baygo) => [
- q(1596),
+ q(1594),
q(0),
],
q(bayono) => [
- q(1601),
+ q(1599),
q(0),
],
q(bayot) => [
@@ -27402,7 +27365,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bayungu) => [
- q(1576),
+ q(1574),
q(0),
],
q(bazigar) => [
@@ -27430,7 +27393,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bebil) => [
- q(1582),
+ q(1580),
q(0),
],
q(bedawiyet) => [
@@ -27438,7 +27401,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(bedjond) => [
- q(1250),
+ q(1249),
q(0),
],
q(bedoanas) => [
@@ -27446,11 +27409,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(beeke) => [
- q(1258),
+ q(1257),
q(0),
],
q(beele) => [
- q(1583),
+ q(1581),
q(0),
],
q(beembe) => [
@@ -27458,7 +27421,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(beezen) => [
- q(1351),
+ q(1350),
q(0),
],
q(befang) => [
@@ -27466,7 +27429,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(begbere-ejar) => [
- q(1418),
+ q(1417),
q(1),
],
q(beja) => [
@@ -27478,11 +27441,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bekwarra) => [
- q(1274),
+ q(1273),
q(0),
],
q(bekwel) => [
- q(1275),
+ q(1274),
q(0),
],
q(belait) => [
@@ -27490,11 +27453,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(belanda bor) => [
- q(1568),
+ q(1566),
q(0),
],
q(belanda viri) => [
- q(1525),
+ q(1523),
q(0),
],
q(belarusian) => [
@@ -27502,7 +27465,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(belhariya) => [
- q(1610),
+ q(1608),
q(0),
],
q(beli (papua new guinea)) => [
@@ -27510,19 +27473,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(beli (sudan)) => [
- q(1290),
+ q(1289),
q(0),
],
q(belize kriol english) => [
- q(1622),
+ q(1620),
q(0),
],
q(bella coola) => [
- q(1280),
+ q(1279),
q(0),
],
q(bellari) => [
- q(1443),
+ q(1442),
q(0),
],
q(bemba) => [
@@ -27534,15 +27497,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(bembe) => [
- q(1304),
+ q(1303),
q(0),
],
q(ben tey dogon) => [
- q(1971),
+ q(1964),
q(0),
],
q(bena (nigeria)) => [
- q(7774),
+ q(7756),
q(0),
],
q(bena (tanzania)) => [
@@ -27566,15 +27529,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(beneraf) => [
- q(1347),
+ q(1346),
q(1),
],
q(beng) => [
- q(4861),
+ q(4852),
q(0),
],
q(benga) => [
- q(1334),
+ q(1333),
q(0),
],
q(bengali) => [
@@ -27582,39 +27545,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(benggoi) => [
- q(1184),
+ q(1183),
q(0),
],
q(bengkala sign language) => [
- q(1421),
+ q(1420),
q(0),
],
q(bentong) => [
- q(1346),
+ q(1345),
q(0),
],
q(benyadu') => [
- q(1593),
+ q(1591),
q(0),
],
q(beothuk) => [
- q(1498),
+ q(1496),
q(0),
],
q(bepour) => [
- q(1214),
+ q(1213),
q(0),
],
q(bera) => [
- q(1426),
+ q(1425),
q(0),
],
q(berakou) => [
- q(1587),
+ q(1585),
q(0),
],
q(berau malay) => [
- q(1521),
+ q(1519),
q(0),
],
q(berber languages) => [
@@ -27622,31 +27585,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(berbice creole dutch) => [
- q(1424),
+ q(1423),
q(0),
],
q(berik) => [
- q(1264),
+ q(1263),
q(0),
],
q(berinomo) => [
- q(1224),
+ q(1223),
q(0),
],
q(berom) => [
- q(1362),
+ q(1361),
q(0),
],
q(berta) => [
- q(7242),
+ q(7227),
q(0),
],
q(berti) => [
- q(1608),
+ q(1606),
q(0),
],
q(besisi) => [
- q(4279),
+ q(4270),
q(0),
],
q(besme) => [
@@ -27666,63 +27629,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bete) => [
- q(1595),
+ q(1593),
q(0),
],
q(bete-bendi) => [
- q(1488),
+ q(1486),
q(0),
],
q(beti (cote d'ivoire)) => [
- q(2279),
+ q(2274),
q(0),
],
q(betta kurumba) => [
- q(7531),
+ q(7513),
q(0),
],
q(bezhta) => [
- q(3180),
+ q(3177),
q(0),
],
q(bhadrawahi) => [
- q(1189),
+ q(1188),
q(0),
],
q(bhalay) => [
- q(1207),
+ q(1206),
q(0),
],
q(bharia) => [
- q(1186),
- q(0),
- ],
- q(bhatola) => [
- q(1480),
+ q(1185),
q(0),
],
q(bhatri) => [
- q(1182),
+ q(1181),
q(0),
],
q(bhattiyali) => [
- q(1203),
+ q(1202),
q(0),
],
q(bhaya) => [
- q(1190),
+ q(1189),
q(0),
],
q(bhele) => [
- q(1208),
+ q(1207),
q(0),
],
q(bhilali) => [
- q(1194),
+ q(1193),
q(0),
],
q(bhili) => [
- q(1187),
+ q(1186),
q(0),
],
q(bhojpuri) => [
@@ -27730,19 +27689,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bhoti kinnauri) => [
- q(4823),
+ q(4814),
q(0),
],
q(bhujel) => [
- q(1597),
+ q(1595),
q(0),
],
q(bhunjia) => [
- q(1204),
+ q(1203),
q(0),
],
q(biafada) => [
- q(1215),
+ q(1214),
q(0),
],
q(biage) => [
@@ -27750,7 +27709,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(biak) => [
- q(1206),
+ q(1205),
q(0),
],
q(biali) => [
@@ -27758,75 +27717,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bian marind) => [
- q(1393),
+ q(1392),
q(0),
],
q(biangai) => [
- q(1216),
+ q(1215),
q(0),
],
q(biao) => [
- q(1600),
+ q(1598),
q(0),
],
q(biao mon) => [
- q(1322),
+ q(1321),
q(0),
],
q(biao-jiao mien) => [
- q(1234),
+ q(1233),
q(0),
],
q(biatah bidayuh) => [
- q(1477),
+ q(1476),
q(0),
],
q(bibbulman) => [
- q(7303),
+ q(7288),
q(0),
],
q(bidhawal) => [
- q(2932),
+ q(2926),
q(0),
],
q(bidiyo) => [
- q(1213),
+ q(1212),
q(0),
],
q(bidyara) => [
- q(1602),
+ q(1600),
q(0),
],
q(bidyogo) => [
- q(1236),
+ q(1235),
q(0),
],
q(biem) => [
- q(1305),
+ q(1304),
q(0),
],
q(bierebo) => [
- q(1337),
+ q(1336),
q(0),
],
q(bieria) => [
- q(1430),
+ q(1429),
q(0),
],
q(biete) => [
- q(1225),
+ q(1224),
q(0),
],
q(big nambas) => [
- q(4963),
+ q(4954),
q(0),
],
q(biga) => [
- q(1188),
+ q(1187),
q(0),
],
q(bigambal) => [
- q(7296),
+ q(7281),
q(0),
],
q(bihari languages) => [
@@ -27834,11 +27793,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bijori) => [
- q(1228),
+ q(1227),
q(0),
],
q(bikaru) => [
- q(1212),
+ q(1211),
q(0),
],
q(bikol) => [
@@ -27846,31 +27805,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bikya) => [
- q(1591),
+ q(1589),
q(0),
],
q(bila) => [
- q(1221),
+ q(1220),
q(0),
],
q(bilakura) => [
- q(1408),
+ q(1407),
q(0),
],
q(bilaspuri) => [
- q(3301),
+ q(3298),
q(0),
],
q(bilba) => [
- q(1397),
+ q(1396),
q(0),
],
q(bilbil) => [
- q(1446),
+ q(1445),
q(0),
],
q(bile) => [
- q(1218),
+ q(1217),
q(0),
],
q(bilin) => [
@@ -27878,55 +27837,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(bilma kanuri) => [
- q(1321),
+ q(1320),
q(0),
],
q(biloxi) => [
- q(1289),
+ q(1288),
q(0),
],
q(bilua) => [
- q(1279),
+ q(1278),
q(0),
],
q(bilur) => [
- q(1572),
+ q(1570),
q(0),
],
q(bima) => [
- q(1199),
+ q(1198),
q(0),
],
q(bimin) => [
- q(1196),
+ q(1195),
q(0),
],
q(bimoba) => [
- q(1219),
+ q(1218),
q(0),
],
q(bina (nigeria)) => [
- q(1599),
+ q(1597),
q(0),
],
q(bina (papua new guinea)) => [
- q(1316),
+ q(1315),
q(0),
],
q(binahari) => [
- q(1589),
+ q(1587),
q(0),
],
q(binandere) => [
- q(1192),
+ q(1191),
q(0),
],
q(bindal) => [
- q(7295),
+ q(7280),
q(0),
],
q(bine) => [
- q(1363),
+ q(1362),
q(0),
],
q(bini) => [
@@ -27934,91 +27893,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(binji) => [
- q(1381),
+ q(1380),
q(0),
],
q(binongan itneg) => [
- q(3010),
+ q(3005),
q(0),
],
q(bintauna) => [
- q(1332),
+ q(1331),
q(0),
],
q(bintulu) => [
- q(1350),
+ q(1349),
q(0),
],
q(binukid) => [
- q(1257),
+ q(1256),
q(0),
],
q(binumarien) => [
- q(1246),
+ q(1245),
q(0),
],
q(bipi) => [
- q(1222),
+ q(1221),
q(0),
],
q(birale) => [
- q(1571),
+ q(1569),
q(0),
],
q(birao) => [
- q(1438),
+ q(1437),
q(0),
],
q(birgit) => [
- q(1475),
+ q(1474),
q(0),
],
q(birhor) => [
- q(1229),
+ q(1228),
q(0),
],
q(biri) => [
- q(1630),
+ q(1628),
q(0),
],
q(biritai) => [
- q(1413),
+ q(1412),
q(0),
],
q(birked) => [
- q(1431),
+ q(1430),
q(0),
],
q(birri) => [
- q(1533),
+ q(1531),
q(0),
],
q(birrpayi) => [
- q(7299),
+ q(7284),
q(0),
],
q(birwa) => [
- q(1432),
+ q(1431),
q(0),
],
q(bisa) => [
- q(1211),
+ q(1210),
q(1),
],
q(biseni) => [
- q(2935),
+ q(2929),
q(0),
],
q(bishnupriya) => [
- q(1396),
+ q(1395),
q(0),
],
q(bishuo) => [
- q(1549),
+ q(1547),
q(0),
],
q(bisis) => [
- q(1348),
+ q(1347),
q(0),
],
q(bislama) => [
@@ -28026,15 +27985,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bisorio) => [
- q(1223),
+ q(1222),
q(0),
],
q(bissa) => [
- q(1211),
+ q(1210),
q(0),
],
q(bisu) => [
- q(1621),
+ q(1619),
q(0),
],
q(bit) => [
@@ -28042,27 +28001,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bitare) => [
- q(1440),
+ q(1439),
q(0),
],
q(bitur) => [
- q(4155),
+ q(4146),
q(0),
],
q(biwat) => [
- q(1554),
+ q(1552),
q(0),
],
q(biyo) => [
- q(1603),
+ q(1601),
q(0),
],
q(biyom) => [
- q(1384),
+ q(1383),
q(0),
],
q(blablanga) => [
- q(1293),
+ q(1292),
q(0),
],
q(blafe) => [
@@ -28074,7 +28033,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(blang) => [
- q(1295),
+ q(1294),
q(0),
],
q(blin) => [
@@ -28098,23 +28057,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bo (papua new guinea)) => [
- q(1394),
+ q(1393),
q(0),
],
q(bo-rukul) => [
- q(4117),
+ q(4108),
q(0),
],
q(bo-ung) => [
- q(4598),
+ q(4590),
q(0),
],
q(boano (maluku)) => [
- q(1626),
+ q(1624),
q(0),
],
q(boano (sulawesi)) => [
- q(1624),
+ q(1622),
q(0),
],
q(bobongko) => [
@@ -28122,19 +28081,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bobot) => [
- q(1493),
+ q(1491),
q(0),
],
q(bodo (central african republic)) => [
- q(1373),
+ q(1372),
q(0),
],
q(bodo (india)) => [
- q(1444),
+ q(1443),
q(0),
],
q(bodo gadaba) => [
- q(2428),
+ q(2425),
q(0),
],
q(bodo parja) => [
@@ -28146,31 +28105,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(boga) => [
- q(1538),
+ q(1536),
q(0),
],
q(bogaya) => [
- q(1366),
+ q(1365),
q(0),
],
q(boghom) => [
- q(1514),
+ q(1512),
q(0),
],
q(boguru) => [
- q(1417),
+ q(1416),
q(0),
],
q(bohtan neo-aramaic) => [
- q(1198),
+ q(1197),
q(0),
],
q(boikin) => [
- q(1618),
+ q(1616),
q(0),
],
q(bokha) => [
- q(7605),
+ q(7587),
q(0),
],
q(bokmal, norwegian) => [
@@ -28178,15 +28137,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(boko (benin)) => [
- q(1400),
+ q(1399),
q(0),
],
q(boko (democratic republic of congo)) => [
- q(1268),
+ q(1267),
q(0),
],
q(bokobaru) => [
- q(1509),
+ q(1507),
q(0),
],
q(bokoto) => [
@@ -28194,103 +28153,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bokyi) => [
- q(1277),
+ q(1276),
q(0),
],
q(bola) => [
- q(1342),
+ q(1341),
q(0),
],
q(bolango) => [
- q(1281),
+ q(1280),
q(0),
],
q(bole) => [
- q(1361),
+ q(1360),
q(0),
],
q(bolgarian) => [
- q(7302),
+ q(7287),
q(0),
],
q(bolgo) => [
- q(1531),
+ q(1529),
q(0),
],
q(bolia) => [
- q(1286),
+ q(1285),
q(0),
],
q(bolinao) => [
- q(6122),
+ q(6112),
q(0),
],
q(bolivian sign language) => [
- q(1528),
+ q(1526),
q(0),
],
q(bolo) => [
- q(1298),
+ q(1297),
q(0),
],
q(boloki) => [
- q(1272),
+ q(1271),
q(0),
],
q(bolon) => [
- q(1355),
+ q(1354),
q(0),
],
q(bolondo) => [
- q(1625),
+ q(1623),
q(0),
],
q(bolongan) => [
- q(1287),
+ q(1286),
q(0),
],
q(bolyu) => [
- q(5506),
+ q(5499),
q(0),
],
q(bom) => [
- q(1308),
+ q(1307),
q(0),
],
q(boma) => [
- q(1357),
+ q(1356),
q(0),
],
q(bomboli) => [
- q(1314),
+ q(1313),
q(0),
],
q(bomboma) => [
- q(1560),
+ q(1558),
q(0),
],
q(bomitaba) => [
- q(7899),
+ q(7881),
q(0),
],
q(bomu) => [
- q(1319),
+ q(1318),
q(0),
],
q(bomwali) => [
- q(1325),
+ q(1324),
q(0),
],
q(bon gula) => [
- q(2543),
+ q(2539),
q(0),
],
q(bonan) => [
- q(5410),
+ q(5402),
q(0),
],
q(bondei) => [
- q(1369),
+ q(1368),
q(0),
],
q(bondo) => [
@@ -28298,19 +28257,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bondoukou kulango) => [
- q(3770),
+ q(3763),
q(0),
],
q(bondum dom dogon) => [
- q(1972),
+ q(1965),
q(0),
],
q(bonerate) => [
- q(1328),
+ q(1327),
q(0),
],
q(bonerif) => [
- q(1347),
+ q(1346),
q(0),
],
q(bonggi) => [
@@ -28318,103 +28277,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bonggo) => [
- q(1378),
+ q(1377),
q(0),
],
q(bongili) => [
- q(1501),
+ q(1499),
q(0),
],
q(bongo) => [
- q(1368),
+ q(1367),
q(0),
],
q(bongu) => [
- q(1392),
+ q(1391),
q(0),
],
q(bonjo) => [
- q(1360),
+ q(1359),
q(0),
],
q(bonkeng) => [
- q(1523),
+ q(1521),
q(0),
],
q(bonkiman) => [
- q(1365),
+ q(1364),
q(0),
],
q(bontok) => [
- q(1330),
+ q(1329),
q(0),
],
q(boo) => [
- q(1400),
+ q(1399),
q(1),
],
q(bookan) => [
- q(1329),
+ q(1328),
q(0),
],
q(boon) => [
- q(1338),
+ q(1337),
q(0),
],
q(boor) => [
- q(1522),
+ q(1520),
q(0),
],
q(bora) => [
- q(1352),
+ q(1351),
q(0),
],
q(borana-arsi-guji oromo) => [
- q(2419),
+ q(2416),
q(0),
],
q(border kuna) => [
- q(3680),
+ q(3674),
q(0),
],
q(borei) => [
- q(2405),
+ q(2402),
q(0),
],
q(borgu fulfulde) => [
- q(2383),
+ q(2380),
q(0),
],
q(borna (ethiopia)) => [
- q(1556),
+ q(1554),
q(1),
],
q(boro (ethiopia)) => [
- q(1556),
+ q(1554),
q(0),
],
q(boro (ghana)) => [
- q(7560),
+ q(7542),
q(0),
],
q(borong) => [
- q(3611),
+ q(3606),
q(0),
],
q(bororo) => [
- q(1367),
+ q(1366),
q(0),
],
q(boruca) => [
- q(1434),
+ q(1433),
q(0),
],
q(boselewa) => [
- q(1547),
+ q(1545),
q(0),
],
q(bosngun) => [
- q(1415),
+ q(1414),
q(0),
],
q(bosnian) => [
@@ -28422,27 +28381,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bote-majhi) => [
- q(1312),
+ q(1311),
q(0),
],
q(botlikh) => [
- q(1379),
+ q(1378),
q(0),
],
q(botolan sambal) => [
- q(5913),
+ q(5903),
q(0),
],
q(bouna kulango) => [
- q(4941),
+ q(4932),
q(0),
],
q(bouyei) => [
- q(5383),
+ q(5375),
q(0),
],
q(bozaba) => [
- q(1627),
+ q(1625),
q(0),
],
q(bragat) => [
@@ -28450,7 +28409,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(brahui) => [
- q(1428),
+ q(1427),
q(0),
],
q(braj) => [
@@ -28458,15 +28417,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(brazilian sign language) => [
- q(1631),
+ q(1629),
q(0),
],
q(brem) => [
- q(1508),
+ q(1506),
q(0),
],
q(breri) => [
- q(1437),
+ q(1436),
q(0),
],
q(breton) => [
@@ -28474,11 +28433,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bribri) => [
- q(1616),
+ q(1614),
q(0),
],
q(brithenig) => [
- q(1632),
+ q(1630),
q(0),
],
q(british sign language) => [
@@ -28486,59 +28445,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(brokkat) => [
- q(1435),
+ q(1434),
q(0),
],
q(brokpake) => [
- q(6004),
+ q(5994),
q(0),
],
q(brokskat) => [
- q(1263),
+ q(1262),
q(0),
],
q(brooke's point palawano) => [
- q(5505),
+ q(5498),
q(0),
],
q(broome pearling lugger pidgin) => [
- q(1383),
+ q(1382),
q(0),
],
q(brunei) => [
- q(3721),
+ q(3714),
q(0),
],
q(brunei bisaya) => [
- q(1448),
+ q(1447),
q(0),
],
q(bu) => [
- q(3094),
+ q(3090),
q(0),
],
q(bu-nao bunu) => [
- q(1564),
+ q(1562),
q(0),
],
q(bua) => [
- q(1495),
+ q(1493),
q(0),
],
q(bualkhaw chin) => [
- q(1669),
+ q(1665),
q(0),
],
q(buamu) => [
- q(1372),
+ q(1371),
q(0),
],
q(bube) => [
- q(1518),
+ q(1516),
q(0),
],
q(bubi) => [
- q(1513),
+ q(1511),
q(0),
],
q(bubia) => [
@@ -28546,11 +28505,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(budeh stieng) => [
- q(6272),
+ q(6262),
q(0),
],
q(budibud) => [
- q(1484),
+ q(1482),
q(0),
],
q(budong-budong) => [
@@ -28558,7 +28517,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(budu) => [
- q(1511),
+ q(1509),
q(0),
],
q(budukh) => [
@@ -28570,7 +28529,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(budza) => [
- q(1231),
+ q(1230),
q(0),
],
q(bugan) => [
@@ -28578,11 +28537,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bugawac) => [
- q(1503),
+ q(1501),
q(0),
],
q(bughotu) => [
- q(1179),
+ q(1178),
q(0),
],
q(buginese) => [
@@ -28590,7 +28549,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buglere) => [
- q(5887),
+ q(5877),
q(0),
],
q(bugun) => [
@@ -28598,35 +28557,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buhi'non bikol) => [
- q(6857),
+ q(6841),
q(0),
],
q(buhid) => [
- q(1273),
+ q(1272),
q(0),
],
q(buhutu) => [
- q(1574),
+ q(1572),
q(0),
],
q(bukar-sadung bidayuh) => [
- q(5955),
+ q(5945),
q(0),
],
q(bukat) => [
- q(1527),
+ q(1525),
q(0),
],
q(bukharic) => [
- q(1193),
+ q(1192),
q(0),
],
q(bukit malay) => [
- q(1536),
+ q(1534),
q(0),
],
q(bukitan) => [
- q(1266),
+ q(1265),
q(0),
],
q(bukiyip) => [
@@ -28634,15 +28593,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(buksa) => [
- q(6549),
+ q(6536),
q(0),
],
q(bukusu) => [
- q(1577),
+ q(1575),
q(0),
],
q(bukwen) => [
- q(1516),
+ q(1514),
q(0),
],
q(bulgarian) => [
@@ -28650,47 +28609,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bulgarian sign language) => [
- q(1410),
+ q(1409),
q(0),
],
q(bulgebi) => [
- q(1318),
+ q(1317),
q(0),
],
q(buli (ghana)) => [
- q(1562),
+ q(1560),
q(0),
],
q(buli (indonesia)) => [
- q(1629),
+ q(1627),
q(0),
],
q(bullom so) => [
- q(1515),
+ q(1513),
q(0),
],
q(bulo stieng) => [
- q(6261),
+ q(6251),
q(0),
],
q(bulu (cameroon)) => [
- q(1504),
+ q(1502),
q(0),
],
q(bulu (papua new guinea)) => [
- q(1241),
+ q(1240),
q(0),
],
q(bum) => [
- q(1324),
+ q(1323),
q(0),
],
q(bumaji) => [
- q(1604),
+ q(1602),
q(0),
],
q(bumang) => [
- q(1532),
+ q(1530),
q(0),
],
q(bumbita arapesh) => [
@@ -28698,15 +28657,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bumthangkha) => [
- q(3402),
+ q(3398),
q(0),
],
q(bun) => [
- q(1512),
+ q(1510),
q(0),
],
q(buna) => [
- q(1530),
+ q(1528),
q(0),
],
q(bunaba) => [
@@ -28722,67 +28681,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bundeli) => [
- q(1345),
+ q(1344),
q(0),
],
q(bung) => [
- q(1401),
+ q(1400),
q(0),
],
q(bungain) => [
- q(1510),
+ q(1508),
q(0),
],
q(bunganditj) => [
- q(7297),
+ q(7282),
q(0),
],
q(bungku) => [
- q(1278),
+ q(1277),
q(0),
],
q(bungu) => [
- q(7252),
+ q(7237),
q(0),
],
q(bunoge dogon) => [
- q(2005),
+ q(1998),
q(0),
],
q(bunun) => [
- q(1340),
+ q(1339),
q(0),
],
q(buol) => [
- q(1283),
+ q(1282),
q(0),
],
q(bura-pabir) => [
- q(1559),
+ q(1557),
q(0),
],
q(burak) => [
- q(1607),
+ q(1605),
q(0),
],
q(buraka) => [
- q(1259),
+ q(1258),
q(0),
],
q(burarra) => [
- q(1534),
+ q(1532),
q(0),
],
q(burate) => [
- q(1478),
+ q(1477),
q(0),
],
q(burduna) => [
- q(1580),
+ q(1578),
q(0),
],
q(bure) => [
- q(1524),
+ q(1522),
q(0),
],
q(buriat) => [
@@ -28790,11 +28749,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burji) => [
- q(1238),
+ q(1237),
q(0),
],
q(burmbar) => [
- q(7047),
+ q(7031),
q(0),
],
q(burmese) => [
@@ -28802,19 +28761,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burmeso) => [
- q(1633),
+ q(1631),
q(0),
],
q(buru (indonesia)) => [
- q(4292),
+ q(4283),
q(0),
],
q(buru (nigeria)) => [
- q(1419),
+ q(1418),
q(0),
],
q(burui) => [
- q(1445),
+ q(1444),
q(0),
],
q(burumakok) => [
@@ -28830,11 +28789,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(burushaski) => [
- q(1456),
+ q(1455),
q(0),
],
q(burusu) => [
- q(1414),
+ q(1413),
q(0),
],
q(buruwai) => [
@@ -28842,15 +28801,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(busa) => [
- q(1412),
+ q(1411),
q(0),
],
q(busam) => [
- q(1585),
+ q(1583),
q(0),
],
q(busami) => [
- q(1458),
+ q(1457),
q(0),
],
q(busang kayan) => [
@@ -28858,47 +28817,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(bushi) => [
- q(1496),
+ q(1494),
q(0),
],
q(bushoong) => [
- q(1499),
+ q(1497),
q(0),
],
q(businenge tongo) => [
- q(2066),
+ q(2059),
q(1),
],
q(buso) => [
- q(1460),
+ q(1459),
q(0),
],
q(busoa) => [
- q(1507),
+ q(1505),
q(0),
],
q(bussa) => [
- q(2130),
+ q(2123),
q(0),
],
q(busuu) => [
- q(1249),
+ q(1248),
q(0),
],
q(butbut kalinga) => [
- q(3743),
+ q(3736),
q(0),
],
q(butmas-tur) => [
- q(1344),
+ q(1343),
q(0),
],
q(butuanon) => [
- q(1491),
+ q(1489),
q(0),
],
q(buwal) => [
- q(1202),
+ q(1201),
q(0),
],
q(buxinhua) => [
@@ -28906,43 +28865,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(buyu) => [
- q(1598),
+ q(1596),
q(0),
],
q(buyuan jinuo) => [
- q(3106),
+ q(3102),
q(0),
],
q(bwa) => [
- q(1563),
+ q(1561),
q(0),
],
q(bwaidoka) => [
- q(1545),
+ q(1543),
q(0),
],
q(bwanabwana) => [
- q(6739),
+ q(6723),
q(0),
],
q(bwatoo) => [
- q(1542),
+ q(1540),
q(0),
],
q(bwe karen) => [
- q(1546),
+ q(1544),
q(0),
],
q(bwela) => [
- q(1553),
+ q(1551),
q(0),
],
q(bwile) => [
- q(1544),
+ q(1542),
q(0),
],
q(bwisi) => [
- q(1566),
+ q(1564),
q(0),
],
q(byangsi) => [
@@ -28950,39 +28909,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(byep) => [
- q(4352),
+ q(4344),
q(0),
],
q(c'lela) => [
- q(2139),
+ q(2132),
q(0),
],
q(caac) => [
- q(4546),
+ q(4538),
q(0),
],
q(cabecar) => [
- q(1751),
+ q(1747),
q(0),
],
q(cabiyari) => [
- q(1660),
+ q(1658),
q(0),
],
q(cacaloxtepec mixtec) => [
- q(4316),
+ q(4307),
q(0),
],
q(cacaopera) => [
- q(1691),
+ q(1687),
q(0),
],
q(cacgia roglai) => [
- q(5838),
+ q(5826),
q(0),
],
q(cacua) => [
- q(1677),
+ q(1673),
q(0),
],
q(caddo) => [
@@ -28994,215 +28953,211 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cafundo creole) => [
- q(1682),
- q(0),
- ],
- q(cagua) => [
- q(1665),
+ q(1678),
q(0),
],
q(cahuarano) => [
- q(1645),
+ q(1643),
q(0),
],
q(cahuilla) => [
- q(1724),
+ q(1720),
q(0),
],
q(cahungwarya) => [
- q(4735),
+ q(4726),
q(0),
],
q(cajamarca quechua) => [
- q(5701),
+ q(5690),
q(0),
],
q(cajatambo north lima quechua) => [
- q(5706),
+ q(5695),
q(0),
],
q(cajonos zapotec) => [
- q(7808),
+ q(7790),
q(0),
],
q(cajun french) => [
- q(2371),
+ q(2368),
q(0),
],
q(caka) => [
- q(1766),
+ q(1762),
q(0),
],
q(cakchiquel) => [
- q(1647),
+ q(1645),
q(1),
],
q(cakchiquel-quiche mixed language) => [
- q(1768),
+ q(1764),
q(0),
],
q(cakfem-mushere) => [
- q(1767),
+ q(1763),
q(0),
],
q(calamian tagbanwa) => [
- q(6390),
+ q(6379),
q(0),
],
q(calderon highland quichua) => [
- q(5682),
+ q(5671),
q(0),
],
q(callawalla) => [
- q(1656),
+ q(1654),
q(0),
],
q(calo) => [
- q(5820),
+ q(5809),
q(0),
],
q(caluyanun) => [
- q(1781),
+ q(1777),
q(0),
],
q(cameroon mambila) => [
- q(4173),
+ q(4164),
q(0),
],
q(cameroon pidgin) => [
- q(7111),
+ q(7095),
q(0),
],
q(camling) => [
- q(5737),
+ q(5726),
q(0),
],
q(campalagian) => [
- q(1788),
+ q(1784),
q(0),
],
q(campidanese sardinian) => [
- q(6220),
+ q(6210),
q(0),
],
q(camsa) => [
- q(3190),
+ q(3187),
q(0),
],
q(camtho) => [
- q(1794),
+ q(1790),
q(0),
],
q(camunic) => [
- q(7309),
+ q(7293),
q(0),
],
q(canar highland quichua) => [
- q(5729),
+ q(5718),
q(0),
],
q(candoshi-shapra) => [
- q(1676),
+ q(1672),
q(0),
],
q(canela) => [
- q(5746),
+ q(5735),
q(0),
],
q(canichana) => [
- q(1659),
+ q(1657),
q(0),
],
q(cantonese) => [
- q(7766),
+ q(7748),
q(1),
],
q(cao lan) => [
- q(4370),
+ q(4362),
q(0),
],
q(cao miao) => [
- q(1826),
+ q(1822),
q(0),
],
q(capanahua) => [
- q(3181),
+ q(3178),
q(0),
],
q(capiznon) => [
- q(1838),
+ q(1833),
q(0),
],
q(cappadocian greek) => [
- q(1834),
+ q(1829),
q(0),
],
q(caquinte) => [
- q(1824),
+ q(1820),
q(0),
],
q(car nicobarese) => [
- q(1653),
+ q(1651),
q(0),
],
q(cara) => [
- q(1712),
+ q(1708),
q(0),
],
q(carabayo) => [
- q(1679),
+ q(1675),
q(0),
],
q(caramanta) => [
- q(1848),
+ q(1842),
q(0),
],
q(carapana) => [
- q(1661),
+ q(1659),
q(0),
],
q(carian) => [
- q(7317),
+ q(7301),
q(0),
],
q(caribbean hindustani) => [
- q(2808),
+ q(2803),
q(0),
],
q(caribbean javanese) => [
- q(3166),
+ q(3163),
q(0),
],
q(carijona) => [
- q(1662),
+ q(1660),
q(0),
],
q(carolina algonquian) => [
- q(1858),
+ q(1852),
q(0),
],
q(carolinian) => [
- q(1648),
+ q(1646),
q(0),
],
q(carpathian romani) => [
- q(5807),
+ q(5796),
q(0),
],
q(carrier) => [
- q(1863),
+ q(1857),
q(0),
],
q(cashibo-cacataibo) => [
- q(1673),
+ q(1669),
q(0),
],
q(cashinahua) => [
- q(1674),
+ q(1670),
q(0),
],
q(casiguran dumagat agta) => [
- q(2006),
+ q(1999),
q(0),
],
q(castilian) => [
@@ -29218,15 +29173,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(catalan sign language) => [
- q(1867),
+ q(1861),
q(0),
],
q(catawba) => [
- q(1719),
+ q(1715),
q(0),
],
q(cauca) => [
- q(1680),
+ q(1676),
q(0),
],
q(caucasian languages) => [
@@ -29234,23 +29189,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cavinena) => [
- q(1655),
+ q(1653),
q(0),
],
q(cayubaba) => [
- q(1931),
+ q(1924),
q(0),
],
q(cayuga) => [
- q(1658),
+ q(1656),
q(0),
],
q(cayuse) => [
- q(7322),
+ q(7306),
q(0),
],
q(cebaara senoufo) => [
- q(5968),
+ q(5958),
q(0),
],
q(cebuano) => [
@@ -29258,7 +29213,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(celtiberian) => [
- q(7310),
+ q(7294),
q(0),
],
q(celtic languages) => [
@@ -29266,11 +29221,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cemuhi) => [
- q(1649),
+ q(1647),
q(0),
],
q(cen) => [
- q(1709),
+ q(1705),
q(0),
],
q(central american indian languages) => [
@@ -29278,11 +29233,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central asmat) => [
- q(1804),
+ q(1800),
q(0),
],
q(central atlas tamazight) => [
- q(6848),
+ q(6832),
q(0),
],
q(central awyu) => [
@@ -29298,7 +29253,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central berawan) => [
- q(7829),
+ q(7811),
q(0),
],
q(central bikol) => [
@@ -29306,7 +29261,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central bontok) => [
- q(3821),
+ q(3812),
q(0),
],
q(central cagayan agta) => [
@@ -29314,31 +29269,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central dusun) => [
- q(2164),
- q(0),
+ q(2158),
+ q(1),
],
q(central grebo) => [
- q(2627),
+ q(2623),
q(0),
],
q(central hongshuihe zhuang) => [
- q(7834),
+ q(7816),
q(0),
],
q(central huasteca nahuatl) => [
- q(4769),
+ q(4760),
q(0),
],
q(central huishui hmong) => [
- q(2779),
+ q(2774),
q(0),
],
q(central huishui miao) => [
- q(2779),
+ q(2774),
q(1),
],
q(central kanuri) => [
- q(3482),
+ q(3478),
q(0),
],
q(central khmer) => [
@@ -29346,19 +29301,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central kurdish) => [
- q(1755),
+ q(1751),
q(0),
],
q(central lalo) => [
- q(7791),
+ q(7773),
q(1),
],
q(central maewo) => [
- q(4636),
+ q(4628),
q(0),
],
q(central malay) => [
- q(5612),
+ q(5601),
q(0),
],
q(central malayo-polynesian languages) => [
@@ -29366,79 +29321,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central masela) => [
- q(4672),
+ q(4664),
q(0),
],
q(central mashan hmong) => [
- q(2789),
+ q(2784),
q(0),
],
q(central mashan miao) => [
- q(2789),
+ q(2784),
q(1),
],
q(central mazahua) => [
- q(4127),
+ q(4118),
q(0),
],
q(central melanau) => [
- q(4212),
+ q(4203),
q(0),
],
q(central mnong) => [
- q(1791),
+ q(1787),
q(0),
],
q(central nahuatl) => [
- q(4871),
+ q(4862),
q(0),
],
q(central nicobarese) => [
- q(4763),
+ q(4754),
q(0),
],
q(central ojibwa) => [
- q(5219),
+ q(5210),
q(0),
],
q(central okinawan) => [
- q(5885),
+ q(5874),
q(0),
],
q(central palawano) => [
- q(5488),
+ q(5481),
q(0),
],
q(central pame) => [
- q(5376),
+ q(5368),
q(0),
],
q(central pashto) => [
- q(5624),
+ q(5613),
q(0),
],
q(central pomo) => [
- q(5563),
+ q(5554),
q(0),
],
q(central puebla nahuatl) => [
- q(4782),
+ q(4773),
q(0),
],
q(central sama) => [
- q(6123),
+ q(6113),
q(0),
],
q(central siberian yupik) => [
- q(2300),
+ q(2296),
q(0),
],
q(central sierra miwok) => [
- q(1877),
+ q(1871),
q(0),
],
q(central subanen) => [
- q(6336),
+ q(6325),
q(0),
],
q(central sudanic languages) => [
@@ -29446,55 +29401,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(central tagbanwa) => [
- q(6490),
+ q(6479),
q(0),
],
q(central tarahumara) => [
- q(6372),
+ q(6361),
q(0),
],
q(central tunebo) => [
- q(6765),
+ q(6749),
q(0),
],
q(central yupik) => [
- q(2301),
+ q(2297),
q(0),
],
q(central-eastern niger fulfulde) => [
- q(2390),
+ q(2387),
q(0),
],
q(centuum) => [
- q(1710),
+ q(1706),
q(0),
],
q(cerma) => [
- q(1785),
+ q(1781),
q(0),
],
q(chabu) => [
- q(5907),
+ q(5897),
q(0),
],
q(chachapoyas quechua) => [
- q(5687),
+ q(5676),
q(0),
],
q(chachi) => [
- q(1666),
+ q(1662),
q(0),
],
q(chacobo) => [
- q(1651),
+ q(1649),
q(0),
],
q(chadian arabic) => [
- q(6028),
+ q(6018),
q(0),
],
q(chadian sign language) => [
- q(1703),
+ q(1699),
q(0),
],
q(chadic languages) => [
@@ -29502,7 +29457,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chadong) => [
- q(1704),
+ q(1700),
q(0),
],
q(chagatai) => [
@@ -29510,51 +29465,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chaima) => [
- q(1742),
+ q(1738),
q(0),
],
q(chak) => [
- q(1756),
+ q(1752),
q(0),
],
q(chakali) => [
- q(1774),
+ q(1770),
q(0),
],
q(chakma) => [
- q(1690),
+ q(1686),
q(0),
],
q(chala) => [
- q(1777),
+ q(1773),
q(0),
],
q(chaldean neo-aramaic) => [
- q(1771),
+ q(1767),
q(0),
],
q(chalikha) => [
- q(6480),
+ q(6469),
q(0),
],
q(chamacoco) => [
- q(1707),
+ q(1703),
q(0),
],
q(chamalal) => [
- q(1746),
+ q(1742),
q(0),
],
q(chamari) => [
- q(1695),
+ q(1691),
q(0),
],
q(chambeali) => [
- q(1696),
+ q(1692),
q(0),
],
q(chambri) => [
- q(1650),
+ q(1648),
q(0),
],
q(chamic languages) => [
@@ -29562,7 +29517,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chamicuro) => [
- q(1681),
+ q(1677),
q(0),
],
q(chamorro) => [
@@ -29570,55 +29525,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chane) => [
- q(1646),
+ q(1644),
q(0),
],
q(chang naga) => [
- q(4742),
+ q(4733),
q(0),
],
q(changriwa) => [
- q(1715),
+ q(1711),
q(0),
],
q(changthang) => [
- q(1795),
+ q(1791),
q(0),
],
q(chantyal) => [
- q(1728),
+ q(1724),
q(0),
],
q(chara) => [
- q(1844),
+ q(1838),
q(0),
],
q(chaudangsi) => [
- q(1700),
+ q(1696),
q(0),
],
q(chaura) => [
- q(1861),
+ q(1855),
q(0),
],
q(chavacano) => [
- q(1668),
+ q(1664),
q(0),
],
q(chayahuita) => [
- q(1675),
+ q(1671),
q(0),
],
q(chayuco mixtec) => [
- q(4305),
+ q(4296),
q(0),
],
q(chazumba mixtec) => [
- q(7508),
+ q(7490),
q(0),
],
q(che) => [
- q(5869),
+ q(5858),
q(0),
],
q(chechen) => [
@@ -29626,39 +29581,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cheke holo) => [
- q(4518),
+ q(4510),
q(0),
],
q(chemakum) => [
- q(7312),
+ q(7296),
q(0),
],
q(chenapian) => [
- q(1749),
+ q(1745),
q(0),
],
q(chenchu) => [
- q(1693),
+ q(1689),
q(0),
],
q(chenoua) => [
- q(1806),
+ q(1802),
q(0),
],
q(chepang) => [
- q(1699),
+ q(1695),
q(0),
],
q(chepya) => [
- q(7615),
+ q(7597),
q(0),
],
q(cheq wong) => [
- q(1928),
+ q(1921),
q(1),
],
q(cherepon) => [
- q(1836),
+ q(1831),
q(0),
],
q(cherokee) => [
@@ -29666,11 +29621,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chesu) => [
- q(7612),
+ q(7594),
q(0),
],
q(chetco) => [
- q(1889),
+ q(1883),
q(0),
],
q(chewa) => [
@@ -29678,7 +29633,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(chewong) => [
- q(1928),
+ q(1921),
q(0),
],
q(cheyenne) => [
@@ -29686,23 +29641,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chhattisgarhi) => [
- q(2802),
+ q(2797),
q(0),
],
q(chhintange) => [
- q(1896),
+ q(1890),
q(0),
],
q(chhulung) => [
- q(1916),
+ q(1909),
q(0),
],
q(chiangmai sign language) => [
- q(1868),
+ q(1862),
q(0),
],
q(chiapanec) => [
- q(1739),
+ q(1735),
q(0),
],
q(chibcha) => [
@@ -29714,7 +29669,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chicahuaxtla triqui) => [
- q(6705),
+ q(6689),
q(0),
],
q(chichewa) => [
@@ -29722,95 +29677,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chichicapan zapotec) => [
- q(7935),
+ q(7917),
q(0),
],
q(chichimeca-jonaz) => [
- q(5411),
+ q(5403),
q(0),
],
q(chichonyi-chidzihana-chikauma) => [
- q(1816),
+ q(1812),
q(1),
],
q(chickasaw) => [
- q(1732),
+ q(1728),
q(0),
],
q(chicomuceltec) => [
- q(1810),
+ q(1806),
q(0),
],
q(chidigo) => [
- q(2040),
+ q(2033),
q(1),
],
q(chiduruma) => [
- q(2175),
+ q(2169),
q(1),
],
q(chiga) => [
- q(1717),
+ q(1713),
q(0),
],
q(chigmecatitlan mixtec) => [
- q(4306),
+ q(4297),
q(0),
],
q(chilcotin) => [
- q(1770),
- q(0),
- ],
- q(chilean quechua) => [
- q(1843),
+ q(1766),
q(0),
],
q(chilean sign language) => [
- q(1871),
+ q(1865),
q(0),
],
q(chilisso) => [
- q(1773),
+ q(1769),
q(0),
],
q(chiltepec chinantec) => [
- q(1866),
+ q(1860),
q(0),
],
q(chimakum) => [
- q(7312),
+ q(7296),
q(1),
],
q(chimalapa zoque) => [
- q(7908),
+ q(7890),
q(0),
],
q(chimariko) => [
- q(1733),
+ q(1729),
q(0),
],
q(chimborazo highland quichua) => [
- q(5684),
+ q(5673),
q(0),
],
q(chimila) => [
- q(1664),
+ q(1661),
q(0),
],
q(china buriat) => [
- q(1586),
+ q(1584),
q(0),
],
q(chinali) => [
- q(1735),
+ q(1731),
q(0),
],
q(chinbon chin) => [
- q(1796),
+ q(1792),
q(0),
],
q(chincha quechua) => [
- q(5722),
+ q(5711),
q(0),
],
q(chinese) => [
@@ -29822,11 +29773,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chinese pidgin english) => [
- q(1835),
+ q(1830),
q(0),
],
q(chinese sign language) => [
- q(1876),
+ q(1870),
q(0),
],
q(chini) => [
@@ -29834,7 +29785,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(chinook) => [
- q(1722),
+ q(1718),
q(0),
],
q(chinook jargon) => [
@@ -29842,67 +29793,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chipaya) => [
- q(1652),
+ q(1650),
q(0),
],
q(chipewyan) => [
q(0084),
q(0),
],
- q(chipiajes) => [
- q(1663),
- q(0),
- ],
q(chippewa) => [
- q(1741),
+ q(1737),
q(0),
],
q(chiquian ancash quechua) => [
- q(5721),
+ q(5710),
q(0),
],
q(chiquihuitlan mazatec) => [
- q(4121),
+ q(4112),
q(0),
],
q(chiquitano) => [
- q(1657),
+ q(1655),
q(0),
],
q(chiripa) => [
- q(4863),
+ q(4854),
q(0),
],
q(chiru) => [
- q(1694),
+ q(1690),
q(0),
],
q(chitimacha) => [
- q(1895),
+ q(1889),
q(0),
],
q(chitkuli kinnauri) => [
- q(1736),
+ q(1732),
q(0),
],
q(chittagonian) => [
- q(1892),
+ q(1886),
q(0),
],
q(chitwania tharu) => [
- q(6499),
+ q(6487),
q(0),
],
q(choapan zapotec) => [
- q(7916),
+ q(7898),
q(0),
],
q(chocangacakha) => [
- q(1718),
+ q(1714),
q(0),
],
q(chochotec) => [
- q(1830),
+ q(1825),
q(0),
],
q(choctaw) => [
@@ -29910,59 +29857,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chodri) => [
- q(1697),
+ q(1693),
q(0),
],
q(chokri naga) => [
- q(5055),
+ q(5046),
q(0),
],
q(chokwe) => [
- q(1747),
+ q(1743),
q(0),
],
q(chol) => [
- q(1901),
+ q(1895),
q(0),
],
q(cholon) => [
- q(1726),
+ q(1722),
q(0),
],
q(chong) => [
- q(1815),
+ q(1811),
q(0),
],
q(choni) => [
- q(1692),
+ q(1688),
q(0),
],
q(chonyi-dzihana-kauma) => [
- q(1816),
+ q(1812),
q(0),
],
q(chopi) => [
- q(1683),
+ q(1679),
q(0),
],
q(chorasmian) => [
- q(7316),
+ q(7300),
q(0),
],
q(chorti) => [
- q(1639),
+ q(1637),
q(0),
],
q(chothe naga) => [
- q(4780),
+ q(4771),
q(0),
],
q(chrau) => [
- q(1862),
+ q(1856),
q(0),
],
q(chru) => [
- q(1744),
+ q(1740),
q(0),
],
q(chuang) => [
@@ -29970,43 +29917,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(chuanqiandian cluster miao) => [
- q(1842),
+ q(1837),
q(0),
],
q(chuave) => [
- q(1753),
+ q(1749),
q(0),
],
q(chug) => [
- q(1922),
+ q(1915),
q(0),
],
q(chuj) => [
- q(1641),
+ q(1639),
q(0),
],
q(chuka) => [
- q(1907),
+ q(1901),
q(0),
],
q(chukot) => [
- q(1763),
+ q(1759),
q(0),
],
q(chukwa) => [
- q(1920),
+ q(1913),
q(0),
],
q(chulym) => [
- q(1782),
+ q(1778),
q(0),
],
q(chumburung) => [
- q(4781),
+ q(4772),
q(0),
],
q(churahi) => [
- q(1698),
+ q(1694),
q(0),
],
q(church slavic) => [
@@ -30018,7 +29965,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(chut) => [
- q(5928),
+ q(5918),
q(0),
],
q(chuukese) => [
@@ -30026,7 +29973,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chuvantsy) => [
- q(7320),
+ q(7304),
q(0),
],
q(chuvash) => [
@@ -30034,19 +29981,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(chuwabu) => [
- q(1727),
+ q(1723),
q(0),
],
q(ci gbe) => [
- q(1731),
+ q(1727),
q(0),
],
q(cia-cia) => [
- q(1730),
+ q(1726),
q(0),
],
q(cibak) => [
- q(1757),
+ q(1753),
q(0),
],
q(cicipu) => [
@@ -30054,23 +30001,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cimbrian) => [
- q(1737),
+ q(1733),
q(0),
],
q(cinda-regi-tiyal) => [
- q(1702),
+ q(1698),
q(0),
],
q(cineni) => [
- q(1734),
+ q(1730),
q(0),
],
q(cinta larga) => [
- q(1738),
+ q(1734),
q(0),
],
q(cisalpine gaulish) => [
- q(7311),
+ q(7295),
q(0),
],
q(cishingini) => [
@@ -30078,31 +30025,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(citak) => [
- q(6826),
+ q(6810),
q(0),
],
q(ciwogai) => [
- q(6478),
+ q(6467),
q(0),
],
q(clallam) => [
- q(1778),
+ q(1774),
q(0),
],
q(classical armenian) => [
- q(7313),
+ q(7297),
q(0),
],
q(classical mandaic) => [
- q(4693),
+ q(4685),
q(0),
],
q(classical mongolian) => [
- q(1786),
+ q(1782),
q(0),
],
q(classical nahuatl) => [
- q(4770),
+ q(4761),
q(0),
],
q(classical nepal bhasa) => [
@@ -30114,7 +30061,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(classical quechua) => [
- q(5716),
+ q(5705),
q(0),
],
q(classical syriac) => [
@@ -30122,119 +30069,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(classical tibetan) => [
- q(7318),
+ q(7302),
q(0),
],
q(coahuilteco) => [
- q(7321),
+ q(7305),
q(0),
],
q(coast miwok) => [
- q(1873),
- q(0),
- ],
- q(coastal kadazan) => [
- q(3776),
+ q(1867),
q(0),
],
q(coastal konjo) => [
- q(3380),
+ q(3376),
q(0),
],
q(coatecas altas zapotec) => [
- q(7833),
+ q(7815),
q(0),
],
q(coatepec nahuatl) => [
- q(4739),
+ q(4730),
q(0),
],
q(coatlan mixe) => [
- q(4167),
+ q(4158),
q(0),
],
q(coatlan zapotec) => [
- q(7932),
+ q(7914),
q(0),
],
q(coatzospan mixtec) => [
- q(4320),
+ q(4311),
q(0),
],
q(cocama-cocamilla) => [
- q(1812),
+ q(1808),
q(0),
],
q(cochimi) => [
- q(1817),
+ q(1813),
q(0),
],
q(cocopa) => [
- q(1811),
+ q(1807),
q(0),
],
q(cocos islands malay) => [
- q(1809),
+ q(1805),
q(0),
],
q(coeur d'alene) => [
- q(1847),
+ q(1841),
q(0),
],
q(cofan) => [
- q(1821),
+ q(1817),
q(0),
],
q(cogui) => [
- q(3510),
+ q(3506),
q(0),
],
q(col) => [
- q(3928),
+ q(3919),
q(0),
],
q(colombian sign language) => [
- q(1878),
+ q(1872),
q(0),
],
q(colonia tovar german) => [
- q(2451),
+ q(2448),
q(0),
],
q(colorado) => [
- q(1814),
+ q(1810),
q(0),
],
q(columbia-wenatchi) => [
- q(1819),
+ q(1815),
q(0),
],
q(comaltepec chinantec) => [
- q(1689),
+ q(1685),
q(0),
],
q(comanche) => [
- q(1820),
+ q(1816),
q(0),
],
q(comecrudo) => [
- q(7314),
+ q(7298),
q(0),
],
q(como karim) => [
- q(1713),
+ q(1709),
q(0),
],
q(comox) => [
- q(1822),
+ q(1818),
q(0),
],
q(con) => [
- q(1803),
+ q(1799),
q(0),
],
q(congo swahili) => [
- q(6301),
+ q(6290),
q(0),
],
q(cook islands maori) => [
@@ -30242,19 +30185,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(coong) => [
- q(1797),
+ q(1793),
q(0),
],
q(coos) => [
- q(1887),
+ q(1881),
q(0),
],
q(copainala zoque) => [
- q(7907),
+ q(7889),
q(0),
],
q(copala triqui) => [
- q(6690),
+ q(6674),
q(0),
],
q(coptic) => [
@@ -30262,11 +30205,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(coquille) => [
- q(1823),
+ q(1819),
q(0),
],
q(cori) => [
- q(1864),
+ q(1858),
q(0),
],
q(cornish) => [
@@ -30274,7 +30217,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(corongo ancash quechua) => [
- q(5715),
+ q(5704),
q(0),
],
q(corsican) => [
@@ -30282,35 +30225,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(costa rican sign language) => [
- q(1881),
+ q(1875),
q(0),
],
q(cotabato manobo) => [
- q(4555),
+ q(4547),
q(0),
],
q(cotoname) => [
- q(7315),
+ q(7299),
q(0),
],
q(cowlitz) => [
- q(1827),
- q(0),
- ],
- q(coxima) => [
- q(3521),
- q(0),
- ],
- q(coyaima) => [
- q(1829),
+ q(1823),
q(0),
],
q(coyotepec popoloca) => [
- q(5367),
+ q(5359),
q(0),
],
q(coyutla totonac) => [
- q(6636),
+ q(6621),
q(0),
],
q(cree) => [
@@ -30362,7 +30297,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(croatia sign language) => [
- q(1880),
+ q(1874),
q(0),
],
q(croatian) => [
@@ -30370,79 +30305,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cross river mbembe) => [
- q(4238),
+ q(4229),
q(0),
],
q(crow) => [
- q(1856),
+ q(1850),
q(0),
],
q(cruzeno) => [
- q(1865),
+ q(1859),
q(0),
],
q(cua) => [
- q(1903),
+ q(1897),
q(0),
],
q(cuba) => [
- q(1672),
+ q(1668),
q(1),
],
q(cuba sign language) => [
- q(1870),
+ q(1864),
q(0),
],
q(cubeo) => [
- q(1904),
+ q(1898),
q(0),
],
q(cuiba) => [
- q(1908),
+ q(1902),
q(0),
],
q(culina) => [
- q(1911),
+ q(1905),
q(0),
],
q(cumanagoto) => [
- q(1913),
+ q(1906),
q(0),
],
q(cumbric) => [
- q(7308),
- q(0),
- ],
- q(cumeral) => [
- q(1912),
+ q(7292),
q(0),
],
q(cun) => [
- q(1915),
+ q(1908),
q(0),
],
q(cuneiform luwian) => [
- q(7405),
+ q(7387),
q(0),
],
q(cung) => [
- q(1906),
+ q(1900),
q(0),
],
q(cupeno) => [
- q(1914),
+ q(1907),
q(0),
],
q(curonian) => [
- q(7319),
+ q(7303),
q(0),
],
q(curripaco) => [
- q(3526),
+ q(3521),
q(0),
],
q(cusco quechua) => [
- q(5699),
+ q(5688),
q(0),
],
q(cushitic languages) => [
@@ -30450,23 +30381,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(cutchi-swahili) => [
- q(1687),
+ q(1683),
q(0),
],
q(cuvok) => [
- q(1919),
+ q(1912),
q(0),
],
q(cuyamecalco mixtec) => [
- q(7525),
+ q(7507),
q(0),
],
q(cuyonon) => [
- q(1932),
+ q(1925),
q(0),
],
q(cwi bwamu) => [
- q(1565),
+ q(1563),
q(0),
],
q(cypriot arabic) => [
@@ -30478,111 +30409,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(czech sign language) => [
- q(1869),
+ q(1863),
q(0),
],
q(da'a kaili) => [
- q(3773),
+ q(3766),
q(0),
],
q(da-hua miao) => [
- q(2780),
+ q(2775),
q(2),
],
q(daai chin) => [
- q(1948),
+ q(1941),
q(0),
],
q(daakaka) => [
- q(1375),
+ q(1374),
q(0),
],
q(daantanai') => [
- q(4004),
+ q(3995),
q(0),
],
q(daasanach) => [
- q(2150),
+ q(2143),
+ q(0),
+ ],
+ q(daats'iin) => [
+ q(2156),
q(0),
],
q(daba) => [
- q(1969),
+ q(1962),
q(0),
],
q(dabarre) => [
- q(1970),
+ q(1963),
q(0),
],
q(dabe) => [
- q(1959),
+ q(1952),
q(0),
],
q(dacian) => [
- q(7324),
+ q(7308),
q(0),
],
q(dadi dadi) => [
- q(1978),
+ q(1971),
q(0),
],
q(dadibi) => [
- q(4473),
+ q(4465),
q(0),
],
q(dadiya) => [
- q(1958),
+ q(1951),
q(0),
],
q(daga) => [
- q(2021),
+ q(2014),
q(0),
],
q(dagaari dioula) => [
- q(2007),
+ q(2000),
q(0),
],
q(dagba) => [
- q(2012),
+ q(2005),
q(0),
],
q(dagbani) => [
- q(1942),
+ q(1935),
q(0),
],
q(dagik) => [
- q(1989),
+ q(1982),
q(0),
],
q(dagoman) => [
- q(2014),
+ q(2007),
q(0),
],
q(dahalik) => [
- q(2079),
+ q(2072),
q(0),
],
q(dahalo) => [
- q(1946),
+ q(1939),
q(0),
],
q(daho-doo) => [
- q(1950),
+ q(1943),
q(0),
],
q(dai) => [
- q(2043),
+ q(2036),
q(0),
],
q(dai zhuang) => [
- q(7845),
+ q(7827),
q(0),
],
q(dair) => [
- q(2134),
+ q(2127),
q(0),
],
q(dakka) => [
- q(2074),
+ q(2067),
q(0),
],
q(dakota) => [
@@ -30590,15 +30525,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dakpakha) => [
- q(2073),
+ q(2066),
q(0),
],
q(dalabon) => [
- q(4844),
+ q(4835),
q(0),
],
q(dalmatian) => [
- q(2080),
+ q(2073),
q(0),
],
q(daloa bete) => [
@@ -30606,51 +30541,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dama) => [
- q(2090),
+ q(2083),
q(0),
],
q(damakawa) => [
- q(1947),
+ q(1940),
q(0),
],
q(damal) => [
- q(6876),
+ q(6860),
q(0),
],
q(dambi) => [
- q(1939),
+ q(1932),
q(0),
],
q(dameli) => [
- q(2089),
+ q(2082),
q(0),
],
q(dampelas) => [
- q(2093),
+ q(2086),
q(0),
],
q(dan) => [
- q(2104),
+ q(2097),
q(0),
],
q(danaru) => [
- q(2107),
+ q(2100),
q(0),
],
q(danau) => [
- q(2109),
+ q(2102),
q(0),
],
q(dandami maria) => [
- q(1949),
+ q(1942),
q(0),
],
q(dangaleat) => [
- q(1938),
+ q(1931),
q(0),
],
q(dangaura tharu) => [
- q(6504),
+ q(6492),
q(0),
],
q(danish) => [
@@ -30658,7 +30593,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(danish sign language) => [
- q(2152),
+ q(2145),
q(0),
],
q(dano) => [
@@ -30666,35 +30601,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(danu) => [
- q(2110),
+ q(2103),
q(0),
],
q(dao) => [
- q(1955),
+ q(1948),
q(0),
],
q(daonda) => [
- q(2100),
+ q(2093),
q(0),
],
q(dar daju daju) => [
- q(2060),
+ q(2053),
q(0),
],
q(dar fur daju) => [
- q(1945),
+ q(1938),
q(0),
],
q(dar sila daju) => [
- q(1951),
+ q(1944),
q(0),
],
q(darai) => [
- q(2148),
+ q(2141),
q(0),
],
q(darang deng) => [
- q(4294),
+ q(4285),
q(1),
],
q(dargwa) => [
@@ -30702,83 +30637,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dari) => [
- q(5602),
+ q(5592),
q(0),
],
q(darkinyung) => [
- q(7323),
+ q(7307),
q(0),
],
q(darlong) => [
- q(2081),
+ q(2074),
q(0),
],
q(darmiya) => [
- q(2136),
+ q(2129),
q(0),
],
q(daro-matu melanau) => [
- q(2142),
+ q(2135),
q(0),
],
q(dass) => [
- q(2127),
+ q(2120),
q(0),
],
q(datooga) => [
- q(6407),
+ q(6396),
q(0),
],
q(daungwurrung) => [
- q(2019),
+ q(2012),
q(0),
],
q(daur) => [
- q(2156),
+ q(2149),
q(0),
],
q(davawenyo) => [
- q(1953),
+ q(1946),
q(0),
],
q(daw) => [
- q(3693),
+ q(3686),
q(0),
],
q(dawawa) => [
- q(2197),
+ q(2191),
q(0),
],
q(dawera-daweloor) => [
- q(1988),
+ q(1981),
q(0),
],
q(dawida) => [
- q(1952),
+ q(1945),
q(1),
],
q(dawro) => [
- q(2195),
+ q(2188),
q(0),
],
q(day) => [
- q(1944),
+ q(1937),
q(0),
],
q(dayi) => [
- q(1954),
+ q(1947),
q(0),
],
q(dazaga) => [
- q(2209),
+ q(2204),
q(0),
],
q(deccan) => [
- q(1976),
+ q(1969),
q(0),
],
q(dedua) => [
- q(1990),
+ q(1983),
q(0),
],
q(defaka) => [
@@ -30786,43 +30721,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(defi gbe) => [
- q(2426),
+ q(2423),
q(0),
],
q(deg) => [
- q(4715),
+ q(4707),
q(0),
],
q(degaru) => [
- q(2018),
+ q(2011),
q(0),
],
q(degema) => [
- q(1993),
+ q(1986),
q(0),
],
q(degenan) => [
- q(2008),
+ q(2001),
q(0),
],
q(degexit'an) => [
- q(2970),
+ q(2965),
q(0),
],
q(dehu) => [
- q(2032),
+ q(2025),
q(0),
],
q(dehwari) => [
- q(1994),
+ q(1987),
q(0),
],
q(dek) => [
- q(1996),
+ q(1989),
q(0),
],
q(dela-oenale) => [
- q(5848),
+ q(5836),
q(0),
],
q(delaware) => [
@@ -30830,31 +30765,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(delo) => [
- q(5097),
+ q(5089),
q(0),
],
q(dem) => [
- q(1997),
+ q(1990),
q(0),
],
q(dema) => [
- q(2097),
+ q(2090),
q(0),
],
q(demisa) => [
- q(1995),
+ q(1988),
q(0),
],
q(demta) => [
- q(2098),
+ q(2091),
q(0),
],
q(dendi (benin)) => [
- q(1984),
+ q(1977),
q(0),
],
q(dendi (central african republic)) => [
- q(1999),
+ q(1992),
q(0),
],
q(dene suline) => [
@@ -30862,19 +30797,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(dengese) => [
- q(2003),
+ q(1996),
q(0),
],
q(dengka) => [
- q(2105),
+ q(2098),
q(0),
],
q(deni) => [
- q(2112),
+ q(2105),
q(0),
],
q(deno) => [
- q(1957),
+ q(1950),
q(0),
],
q(denya) => [
@@ -30882,79 +30817,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(deori) => [
- q(2000),
+ q(1993),
q(0),
],
q(dera (indonesia)) => [
- q(3204),
+ q(3201),
q(0),
],
q(dera (nigeria)) => [
- q(3480),
+ q(3476),
q(0),
],
q(desano) => [
- q(2001),
+ q(1994),
q(0),
],
q(desiya) => [
- q(2154),
+ q(2147),
q(0),
],
q(dewoin) => [
- q(1991),
+ q(1984),
q(0),
],
q(dezfuli) => [
- q(1992),
+ q(1985),
q(0),
],
q(dghwede) => [
- q(2010),
+ q(2003),
q(0),
],
q(dhaiso) => [
- q(2030),
+ q(2023),
q(0),
],
q(dhalandji) => [
- q(2025),
+ q(2018),
q(0),
],
q(dhangu) => [
- q(2023),
+ q(2016),
+ q(1),
+ ],
+ q(dhangu-djangu) => [
+ q(2016),
q(0),
],
q(dhanki) => [
- q(2027),
+ q(2020),
q(0),
],
q(dhanwar (nepal)) => [
- q(2033),
+ q(2026),
q(0),
],
q(dhao) => [
- q(4830),
+ q(4821),
q(0),
],
q(dhargari) => [
- q(2029),
+ q(2022),
q(0),
],
q(dharuk) => [
- q(7325),
+ q(7309),
q(0),
],
q(dharumbal) => [
- q(7346),
+ q(7330),
q(0),
],
q(dhatki) => [
- q(4350),
+ q(4342),
q(0),
],
q(dhimal) => [
- q(2024),
+ q(2017),
q(0),
],
q(dhivehi) => [
@@ -30962,7 +30901,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(dhodia) => [
- q(2028),
+ q(2021),
q(0),
],
q(dhofari arabic) => [
@@ -30974,99 +30913,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(dhudhuroa) => [
- q(1986),
+ q(1979),
q(0),
],
q(dhundari) => [
- q(2022),
+ q(2015),
q(0),
],
q(dhungaloo) => [
- q(2034),
+ q(2027),
q(0),
],
q(dhurga) => [
- q(2031),
+ q(2024),
q(0),
],
q(dhuwal) => [
- q(2178),
+ q(2190),
+ q(0),
+ ],
+ q(dhuwaya) => [
+ q(2192),
q(0),
],
q(dia) => [
- q(2035),
+ q(2028),
q(0),
],
q(dibabawon manobo) => [
- q(4131),
+ q(4122),
q(0),
],
q(dibiyaso) => [
- q(1975),
+ q(1968),
q(0),
],
q(dibo) => [
- q(2047),
+ q(2040),
q(0),
],
q(dibole) => [
- q(1539),
+ q(1537),
q(0),
],
q(dicamay agta) => [
- q(2191),
+ q(2184),
q(0),
],
q(didinga) => [
- q(2038),
+ q(2031),
q(0),
],
q(dido) => [
- q(1985),
+ q(1978),
q(0),
],
q(diebroud) => [
- q(6395),
+ q(6384),
q(1),
],
q(dieri) => [
- q(2039),
+ q(2032),
q(0),
],
q(digaro-mishmi) => [
- q(4294),
+ q(4285),
q(0),
],
q(digo) => [
- q(2040),
+ q(2033),
q(0),
],
q(dii) => [
- q(2185),
+ q(2178),
q(0),
],
q(dijim-bwilim) => [
- q(1711),
+ q(1707),
q(0),
],
q(dilling) => [
- q(2045),
+ q(2038),
q(0),
],
q(dima) => [
- q(3116),
+ q(3113),
q(0),
],
q(dimasa) => [
- q(2051),
+ q(2044),
q(0),
],
q(dimbong) => [
- q(2042),
+ q(2035),
q(0),
],
q(dime) => [
- q(2046),
+ q(2039),
q(0),
],
q(dimili) => [
@@ -31078,7 +31021,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(dimli (individual language)) => [
- q(2049),
+ q(2042),
q(0),
],
q(dimli (macrolanguage)) => [
@@ -31086,11 +31029,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(6),
],
q(dineor) => [
- q(4528),
+ q(4520),
q(1),
],
q(ding) => [
- q(2057),
+ q(2050),
q(0),
],
q(dinka) => [
@@ -31098,43 +31041,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dirari) => [
- q(2052),
+ q(2045),
q(0),
],
q(dirasha) => [
- q(2463),
+ q(2460),
q(0),
],
q(diri) => [
- q(2194),
+ q(2187),
q(0),
],
q(diriku) => [
- q(2053),
+ q(2046),
q(0),
],
q(dirim) => [
- q(2050),
+ q(2043),
q(0),
],
q(disa) => [
- q(2151),
+ q(2144),
q(0),
],
q(ditammari) => [
- q(6404),
+ q(6393),
q(0),
],
q(ditidaht) => [
- q(2158),
+ q(2151),
q(0),
],
q(diuwe) => [
- q(2056),
+ q(2049),
q(0),
],
q(diuxi-tilantongo mixtec) => [
- q(7510),
+ q(7492),
q(0),
],
q(divehi) => [
@@ -31142,95 +31085,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dixon reef) => [
- q(2055),
+ q(2048),
q(0),
],
q(dizin) => [
- q(4199),
+ q(4190),
q(0),
],
q(djabwurrung) => [
- q(6547),
+ q(6534),
q(0),
],
q(djadjawurrung) => [
- q(2058),
+ q(2051),
q(0),
],
q(djambarrpuyngu) => [
- q(2070),
+ q(2063),
q(0),
],
q(djamindjung) => [
- q(2061),
+ q(2054),
q(0),
],
q(djangu) => [
- q(2023),
- q(1),
+ q(2016),
+ q(2),
],
q(djangun) => [
- q(2063),
+ q(2056),
q(0),
],
q(djauan) => [
- q(2068),
+ q(2061),
q(0),
],
q(djawi) => [
- q(2072),
+ q(2065),
q(0),
],
q(djeebbana) => [
- q(2065),
+ q(2058),
q(0),
],
q(djimini senoufo) => [
- q(2202),
+ q(2197),
q(0),
],
q(djinang) => [
- q(2064),
+ q(2057),
q(0),
],
q(djinba) => [
- q(2059),
+ q(2052),
q(0),
],
q(djingili) => [
- q(3096),
+ q(3092),
q(0),
],
q(djiwarli) => [
- q(2208),
+ q(2203),
q(0),
],
q(dobel) => [
- q(3681),
+ q(3675),
q(0),
],
q(dobu) => [
- q(2114),
+ q(2107),
q(0),
],
q(doe) => [
- q(2116),
+ q(2109),
q(0),
],
q(doga) => [
- q(2009),
+ q(2002),
q(0),
],
q(doghoro) => [
- q(2020),
+ q(2013),
q(0),
],
q(dogose) => [
- q(2126),
+ q(2119),
q(0),
],
q(dogoso) => [
- q(2016),
+ q(2009),
q(0),
],
q(dogri) => [
@@ -31238,7 +31181,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dogri (individual language)) => [
- q(2015),
+ q(2008),
q(0),
],
q(dogri (macrolanguage)) => [
@@ -31250,127 +31193,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dogul dom dogon) => [
- q(1961),
+ q(1954),
q(0),
],
q(doka) => [
- q(1962),
+ q(1955),
q(0),
],
q(doko-uyanga) => [
- q(6967),
+ q(6951),
q(0),
],
q(dolgan) => [
- q(2078),
+ q(2071),
q(0),
],
q(dolpo) => [
- q(2137),
+ q(2130),
q(0),
],
q(dom) => [
- q(2113),
+ q(2106),
q(0),
],
q(domaaki) => [
- q(2088),
+ q(2081),
q(0),
],
q(domari) => [
- q(5822),
+ q(5811),
q(0),
],
q(dombe) => [
- q(2128),
+ q(2121),
q(0),
],
q(dominican sign language) => [
- q(2124),
+ q(2117),
q(0),
],
q(dompo) => [
- q(2131),
+ q(2124),
q(0),
],
q(domu) => [
- q(2117),
+ q(2110),
q(0),
],
q(domung) => [
- q(2002),
+ q(1995),
q(0),
],
q(dondo) => [
- q(2119),
+ q(2112),
q(0),
],
q(dong) => [
- q(2118),
+ q(2111),
q(0),
],
q(dongo) => [
- q(2122),
+ q(2115),
q(0),
],
q(dongolawi) => [
- q(2013),
+ q(2006),
q(1),
],
q(dongotono) => [
- q(1979),
+ q(1972),
q(0),
],
q(dongshanba lalo) => [
- q(7651),
+ q(7633),
q(0),
],
q(dongxiang) => [
- q(5929),
+ q(5919),
q(0),
],
q(donno so dogon) => [
- q(1987),
+ q(1980),
q(0),
],
q(doondo) => [
- q(1980),
+ q(1973),
q(0),
],
q(dori'o) => [
- q(2125),
+ q(2118),
q(0),
],
q(dorig) => [
- q(7261),
+ q(7246),
q(1),
],
q(doromu-koki) => [
- q(3550),
+ q(3545),
q(0),
],
q(dororo) => [
- q(2144),
+ q(2137),
q(0),
],
q(dorze) => [
- q(2132),
+ q(2125),
q(0),
],
q(doso) => [
- q(2120),
+ q(2113),
q(0),
],
q(dotyali) => [
- q(2169),
+ q(2163),
q(0),
],
q(doutai) => [
- q(6444),
+ q(6434),
q(0),
],
q(doyayo) => [
- q(2129),
+ q(2122),
q(0),
],
q(dravidian languages) => [
@@ -31378,19 +31321,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(drehu) => [
- q(2032),
+ q(2025),
q(1),
],
q(drents) => [
- q(2146),
+ q(2139),
q(0),
],
q(drubea) => [
- q(2174),
+ q(2168),
q(1),
],
q(drung) => [
- q(2187),
+ q(2180),
q(0),
],
q(duala) => [
@@ -31398,127 +31341,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(duano) => [
- q(2183),
+ q(2176),
q(0),
],
q(duau) => [
- q(2193),
+ q(2186),
q(0),
],
q(dubli) => [
- q(2170),
+ q(2164),
q(0),
],
q(dubu) => [
- q(2094),
+ q(2087),
q(0),
],
q(dugun) => [
- q(4801),
+ q(4792),
q(0),
],
q(duguri) => [
- q(1965),
+ q(1958),
q(0),
],
q(dugwor) => [
- q(2086),
+ q(2079),
q(0),
],
q(duhwa) => [
- q(3208),
+ q(3205),
q(0),
],
q(duke) => [
- q(4926),
+ q(4917),
q(0),
],
q(dulbu) => [
- q(1967),
+ q(1960),
q(0),
],
- q(duli) => [
- q(2192),
+ q(duli-gey) => [
+ q(2185),
q(0),
],
q(duma) => [
- q(2082),
+ q(2075),
q(0),
],
q(dumbea) => [
- q(2174),
+ q(2168),
q(0),
],
q(dumi) => [
- q(2186),
+ q(2179),
q(0),
],
q(dumpas) => [
- q(2095),
+ q(2088),
q(0),
],
q(dumun) => [
- q(2177),
+ q(2171),
q(0),
],
q(duna) => [
- q(2171),
+ q(2165),
q(0),
],
q(dungan) => [
- q(2102),
+ q(2095),
q(0),
],
q(dungmali) => [
- q(5736),
+ q(5725),
q(0),
],
q(dungra bhil) => [
- q(2176),
+ q(2170),
q(0),
],
q(dungu) => [
- q(1973),
+ q(1966),
q(0),
],
q(dupaninan agta) => [
- q(2182),
+ q(2175),
q(0),
],
q(dura) => [
- q(2143),
+ q(2136),
q(0),
],
q(duri) => [
- q(4614),
+ q(4606),
q(0),
],
q(duriankere) => [
- q(1966),
+ q(1959),
q(0),
],
q(duruma) => [
- q(2175),
+ q(2169),
q(0),
],
q(duruwa) => [
- q(5389),
+ q(5381),
q(0),
],
q(dusner) => [
- q(2153),
+ q(2146),
q(0),
],
q(dusun deyah) => [
- q(2181),
+ q(2174),
q(0),
],
q(dusun malang) => [
- q(2184),
+ q(2177),
q(0),
],
q(dusun witu) => [
- q(2189),
+ q(2182),
q(0),
],
q(dutch) => [
@@ -31526,7 +31469,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dutch sign language) => [
- q(2149),
+ q(2142),
q(0),
],
q(dutch, middle (ca.1050-1350)) => [
@@ -31534,59 +31477,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dutton world speedwords) => [
- q(2196),
+ q(2189),
q(0),
],
q(duungooma) => [
- q(2190),
+ q(2183),
q(0),
],
q(duupa) => [
- q(1941),
+ q(1934),
q(0),
],
q(duvle) => [
- q(2188),
+ q(2181),
q(0),
],
q(duwai) => [
- q(1968),
+ q(1961),
q(0),
],
q(duwet) => [
- q(2668),
+ q(2663),
q(0),
],
q(duya) => [
- q(3847),
+ q(3838),
q(0),
],
q(dwang) => [
- q(5007),
+ q(4998),
q(0),
],
q(dyaabugay) => [
- q(2206),
+ q(2201),
q(0),
],
q(dyaberdyaber) => [
- q(2199),
+ q(2194),
q(0),
],
q(dyan) => [
- q(2198),
+ q(2193),
q(0),
],
q(dyangadi) => [
- q(2204),
+ q(2199),
q(0),
],
q(dyirbal) => [
- q(1964),
+ q(1957),
q(0),
],
q(dyugun) => [
- q(2200),
+ q(2195),
q(0),
],
q(dyula) => [
@@ -31594,19 +31537,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dza) => [
- q(3081),
+ q(3077),
q(0),
],
q(dzalakha) => [
- q(2210),
+ q(2205),
q(0),
],
q(dzando) => [
- q(2211),
+ q(2206),
q(0),
],
q(dzao min) => [
- q(1385),
+ q(1384),
q(0),
],
q(dzodinka) => [
@@ -31618,39 +31561,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(dzuungoo) => [
- q(2106),
+ q(2099),
q(0),
],
q(e) => [
- q(2221),
+ q(2216),
q(0),
],
q(e'ma buyang) => [
- q(7803),
+ q(7785),
q(0),
],
q(e'napa woromaipu) => [
- q(5369),
+ q(5361),
q(0),
],
q(early tripuri) => [
- q(7522),
+ q(7504),
q(0),
],
q(east ambae) => [
- q(5252),
+ q(5244),
q(0),
],
q(east berawan) => [
- q(7830),
+ q(7812),
q(0),
],
q(east damar) => [
- q(2092),
+ q(2085),
q(0),
],
q(east futuna) => [
- q(2382),
+ q(2379),
q(0),
],
q(east germanic languages) => [
@@ -31658,23 +31601,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(east kewa) => [
- q(3396),
+ q(3392),
q(0),
],
q(east limba) => [
- q(3976),
+ q(3967),
q(0),
],
q(east makian) => [
- q(4366),
+ q(4358),
q(0),
],
q(east masela) => [
- q(7022),
+ q(7006),
q(0),
],
q(east nyala) => [
- q(4948),
+ q(4939),
q(0),
],
q(east slavic languages) => [
@@ -31682,11 +31625,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(east tarangan) => [
- q(6692),
+ q(6676),
q(0),
],
q(east yugur) => [
- q(7781),
+ q(7763),
q(0),
],
q(eastern abnaki) => [
@@ -31698,7 +31641,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern apurimac quechua) => [
- q(5702),
+ q(5691),
q(0),
],
q(eastern arrernte) => [
@@ -31706,27 +31649,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern balochi) => [
- q(1175),
+ q(1174),
q(0),
],
q(eastern bolivian guarani) => [
- q(2650),
+ q(2646),
q(0),
],
q(eastern bontok) => [
- q(2214),
+ q(2209),
q(0),
],
q(eastern bru) => [
- q(1441),
+ q(1440),
q(0),
],
q(eastern canadian inuktitut) => [
- q(2939),
+ q(2933),
q(0),
],
q(eastern cham) => [
- q(1748),
+ q(1744),
q(0),
],
q(eastern durango nahuatl) => [
@@ -31742,75 +31685,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern gorkha tamang) => [
- q(6479),
- q(0),
- ],
- q(eastern gurung) => [
- q(2498),
+ q(6468),
q(0),
],
q(eastern highland chatino) => [
- q(1783),
+ q(1779),
q(0),
],
q(eastern highland otomi) => [
- q(5323),
+ q(5314),
q(0),
],
q(eastern hongshuihe zhuang) => [
- q(7838),
+ q(7820),
q(0),
],
q(eastern huasteca nahuatl) => [
- q(4864),
+ q(4855),
q(0),
],
q(eastern huishui hmong) => [
- q(2781),
+ q(2776),
q(0),
],
q(eastern huishui miao) => [
- q(2781),
+ q(2776),
q(1),
],
q(eastern karaboro) => [
- q(7477),
+ q(7459),
q(0),
],
q(eastern karnic) => [
- q(2232),
+ q(2227),
q(0),
],
q(eastern katu) => [
- q(3641),
+ q(3635),
q(0),
],
q(eastern kayah) => [
- q(2242),
+ q(2237),
q(0),
],
q(eastern keres) => [
- q(3261),
+ q(3258),
q(0),
],
q(eastern khumi chin) => [
- q(1708),
+ q(1704),
q(0),
],
q(eastern krahn) => [
- q(3562),
+ q(3557),
q(0),
],
q(eastern lalu) => [
- q(7659),
+ q(7641),
q(0),
],
q(eastern lawa) => [
- q(4102),
+ q(4093),
q(0),
],
q(eastern magar) => [
- q(4265),
+ q(4256),
q(0),
],
q(eastern malayo-polynesian languages) => [
@@ -31818,63 +31757,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern maninkakan) => [
- q(2255),
+ q(2250),
q(0),
],
q(eastern mari) => [
- q(4291),
+ q(4282),
q(0),
],
q(eastern maroon creole) => [
- q(2066),
+ q(2059),
q(0),
],
q(eastern meohang) => [
- q(2253),
+ q(2248),
q(0),
],
q(eastern mnong) => [
- q(4420),
+ q(4412),
q(0),
],
q(eastern muria) => [
- q(2260),
+ q(2255),
q(0),
],
q(eastern ngad'a) => [
- q(4807),
+ q(4798),
q(0),
],
q(eastern nisu) => [
- q(5025),
+ q(5016),
q(0),
],
q(eastern ojibwa) => [
- q(5220),
+ q(5211),
q(0),
],
q(eastern oromo) => [
- q(2714),
+ q(2709),
q(0),
],
q(eastern parbate kham) => [
- q(3360),
+ q(3356),
q(0),
],
q(eastern penan) => [
- q(5422),
+ q(5414),
q(0),
],
q(eastern pomo) => [
- q(5405),
+ q(5397),
q(0),
],
q(eastern qiandong miao) => [
- q(2791),
+ q(2786),
q(0),
],
q(eastern subanen) => [
- q(5987),
+ q(5977),
q(0),
],
q(eastern sudanic languages) => [
@@ -31882,59 +31821,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eastern tamang) => [
- q(6365),
+ q(6354),
q(0),
],
q(eastern tawbuid) => [
- q(1336),
+ q(1335),
q(0),
],
q(eastern xiangxi miao) => [
- q(4593),
+ q(4585),
q(0),
],
q(eastern xwla gbe) => [
- q(2441),
+ q(2438),
q(0),
],
q(eastern yiddish) => [
- q(7617),
+ q(7599),
q(0),
],
q(ebira) => [
- q(2920),
+ q(2914),
q(0),
],
q(eblan) => [
- q(7328),
+ q(7312),
q(0),
],
q(ebrie) => [
- q(2216),
+ q(2211),
q(0),
],
q(ebughu) => [
- q(2213),
+ q(2208),
q(0),
],
q(ecuadorian sign language) => [
- q(2219),
+ q(2214),
q(0),
],
q(ede cabe) => [
- q(1667),
+ q(1663),
q(0),
],
q(ede ica) => [
- q(2898),
+ q(2892),
q(0),
],
q(ede idaca) => [
- q(2905),
+ q(2899),
q(0),
],
q(ede ije) => [
- q(2936),
+ q(2930),
q(0),
],
q(edera awyu) => [
@@ -31946,27 +31885,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(edolo) => [
- q(2308),
+ q(2304),
q(0),
],
q(edomite) => [
- q(7326),
+ q(7310),
q(0),
],
q(edopi) => [
- q(1960),
+ q(1953),
q(0),
],
q(edwas) => [
- q(1347),
+ q(1346),
q(2),
],
q(efai) => [
- q(2222),
+ q(2217),
q(0),
],
q(efe) => [
- q(2223),
+ q(2218),
q(0),
],
q(efik) => [
@@ -31974,19 +31913,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(efutop) => [
- q(5207),
+ q(5198),
q(0),
],
q(ega) => [
- q(2224),
+ q(2219),
q(0),
],
q(eggon) => [
- q(2226),
+ q(2221),
q(0),
],
q(egypt sign language) => [
- q(2295),
+ q(2291),
q(0),
],
q(egyptian (ancient)) => [
@@ -32002,23 +31941,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ehueun) => [
- q(2227),
+ q(2222),
q(0),
],
q(eipomek) => [
- q(2228),
+ q(2223),
q(0),
],
q(eitiep) => [
- q(2229),
+ q(2224),
q(0),
],
q(ejagham) => [
- q(2311),
+ q(2307),
q(0),
],
q(ejamat) => [
- q(2231),
+ q(2226),
q(0),
],
q(ekajuk) => [
@@ -32026,39 +31965,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ekari) => [
- q(2234),
+ q(2229),
q(0),
],
q(ekegusii) => [
- q(2665),
+ q(2660),
q(1),
],
q(eki) => [
- q(2235),
+ q(2230),
q(0),
],
q(ekit) => [
- q(2233),
+ q(2228),
q(0),
],
q(ekpeye) => [
- q(2240),
+ q(2235),
q(0),
],
q(el alto zapotec) => [
- q(7929),
+ q(7911),
q(0),
],
q(el hugeirat) => [
- q(2244),
+ q(2239),
q(0),
],
q(el molo) => [
- q(2248),
+ q(2243),
q(0),
],
q(el nayar cora) => [
- q(1855),
+ q(1849),
q(0),
],
q(elamite) => [
@@ -32066,23 +32005,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eleme) => [
- q(2247),
+ q(2242),
q(0),
],
q(elepi) => [
- q(2243),
+ q(2238),
q(0),
],
+ q(elfdalian) => [
+ q(5330),
+ q(1),
+ ],
q(elip) => [
- q(2238),
+ q(2233),
q(0),
],
q(elkei) => [
- q(2246),
+ q(2241),
q(0),
],
q(elotepec zapotec) => [
- q(7953),
+ q(7935),
q(0),
],
q(eloyi) => [
@@ -32090,31 +32033,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(elseng) => [
- q(4511),
+ q(4503),
q(0),
],
q(elu) => [
- q(2249),
+ q(2244),
q(0),
],
q(elymian) => [
- q(7406),
+ q(7388),
q(0),
],
q(emae) => [
- q(4411),
+ q(4403),
q(0),
],
q(emai-iuleha-ora) => [
- q(2250),
+ q(2245),
q(0),
],
q(eman) => [
- q(2257),
+ q(2252),
q(0),
],
q(embaloh) => [
- q(2251),
+ q(2246),
q(0),
],
q(embera-baudo) => [
@@ -32122,67 +32065,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(embera-catio) => [
- q(1897),
+ q(1891),
q(0),
],
q(embera-chami) => [
- q(1787),
+ q(1783),
q(0),
],
q(embera-tado) => [
- q(6430),
+ q(6419),
q(0),
],
q(embu) => [
- q(2217),
+ q(2212),
q(0),
],
q(emem) => [
- q(2274),
+ q(2269),
q(1),
],
q(emerillon) => [
- q(2252),
+ q(2247),
q(0),
],
q(emilian) => [
- q(2225),
+ q(2220),
q(0),
],
q(emplawas) => [
- q(2261),
+ q(2256),
q(0),
],
q(emumu) => [
- q(2274),
+ q(2269),
q(0),
],
q(en) => [
- q(2266),
+ q(2261),
q(0),
],
q(enawene-nawe) => [
- q(6917),
+ q(6901),
q(0),
],
q(ende) => [
- q(2267),
+ q(2262),
q(0),
],
q(enga) => [
- q(2273),
+ q(2268),
q(0),
],
q(engdewu) => [
- q(4851),
+ q(4842),
q(0),
],
q(engenni) => [
- q(2271),
+ q(2266),
q(0),
],
q(enggano) => [
- q(2272),
+ q(2267),
q(0),
],
q(english) => [
@@ -32202,83 +32145,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(enlhet) => [
- q(2270),
+ q(2265),
q(0),
],
q(enrekang) => [
- q(5636),
+ q(5625),
q(0),
],
q(enu) => [
- q(2275),
+ q(2270),
q(0),
],
q(enwan (akwa ibom state)) => [
- q(2277),
+ q(2272),
q(0),
],
q(enwan (edu state)) => [
- q(2276),
+ q(2271),
q(0),
],
q(enxet) => [
- q(2278),
+ q(2273),
q(0),
],
q(enya) => [
- q(2488),
+ q(2485),
q(0),
],
q(epena) => [
- q(6055),
+ q(6045),
q(0),
],
q(epi-olmec) => [
- q(7333),
+ q(7317),
q(0),
],
q(epie) => [
- q(2280),
+ q(2275),
q(0),
],
q(epigraphic mayan) => [
- q(2263),
+ q(2258),
q(0),
],
q(eravallan) => [
- q(2281),
+ q(2276),
q(0),
],
q(erave) => [
- q(3401),
+ q(3397),
q(0),
],
q(ere) => [
- q(6804),
+ q(6788),
q(0),
],
q(eritai) => [
- q(2289),
+ q(2284),
q(0),
],
q(erokwanas) => [
- q(2290),
+ q(2285),
q(0),
],
q(erre) => [
- q(2287),
+ q(2282),
q(0),
],
q(erromintxela) => [
- q(2262),
+ q(2257),
q(0),
],
q(ersu) => [
- q(2288),
+ q(2283),
q(0),
],
q(eruwa) => [
- q(2283),
+ q(2278),
q(0),
],
q(erzya) => [
@@ -32286,19 +32229,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(esan) => [
- q(3001),
+ q(2996),
q(0),
],
q(ese) => [
- q(4169),
+ q(4160),
q(0),
],
q(ese ejja) => [
- q(2291),
+ q(2286),
q(0),
],
q(eshtehardi) => [
- q(2292),
+ q(2288),
q(0),
],
q(esimbi) => [
@@ -32306,7 +32249,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(eskayan) => [
- q(2302),
+ q(2298),
q(0),
],
q(eskimo-aleut languages) => [
@@ -32318,11 +32261,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(esselen) => [
- q(2299),
+ q(2295),
q(0),
],
q(estado de mexico otomi) => [
- q(5327),
+ q(5318),
q(0),
],
q(estonian) => [
@@ -32330,75 +32273,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(estonian sign language) => [
- q(2298),
+ q(2294),
q(0),
],
q(esuma) => [
- q(2296),
+ q(2292),
q(0),
],
q(etchemin) => [
- q(2304),
+ q(2300),
q(0),
],
q(etebi) => [
- q(2303),
+ q(2299),
q(0),
],
q(eten) => [
- q(2312),
+ q(2308),
q(0),
],
q(eteocretan) => [
- q(2218),
+ q(2213),
q(0),
],
q(eteocypriot) => [
- q(2220),
+ q(2215),
q(0),
],
q(ethiopian sign language) => [
- q(2305),
+ q(2301),
q(0),
],
q(etkywan) => [
- q(2899),
+ q(2893),
q(0),
],
q(eton (cameroon)) => [
- q(2307),
+ q(2303),
q(0),
],
q(eton (vanuatu)) => [
- q(2306),
+ q(2302),
q(0),
],
q(etruscan) => [
- q(2310),
+ q(2306),
q(0),
],
q(etulo) => [
- q(6957),
+ q(6941),
q(0),
],
q(evant) => [
- q(1638),
+ q(1636),
q(0),
],
q(even) => [
- q(2314),
+ q(2310),
q(0),
],
q(evenki) => [
- q(2316),
+ q(2312),
q(0),
],
q(eviya) => [
- q(2485),
+ q(2482),
q(0),
],
q(ewage-notu) => [
- q(5027),
+ q(5018),
q(0),
],
q(ewe) => [
@@ -32410,27 +32353,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(extremaduran) => [
- q(2317),
+ q(2313),
q(0),
],
q(eyak) => [
- q(2318),
+ q(2314),
q(0),
],
q(ezaa) => [
- q(2320),
+ q(2316),
q(0),
],
q(fa d'ambu) => [
- q(2323),
+ q(2319),
q(0),
],
q(fagani) => [
- q(2325),
+ q(2321),
q(0),
],
q(fagauvea) => [
- q(6963),
+ q(6947),
q(1),
],
q(faire atta) => [
@@ -32438,39 +32381,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(faita) => [
- q(2329),
+ q(2325),
q(0),
],
q(faiwol) => [
- q(2328),
+ q(2324),
q(0),
],
q(fala) => [
- q(2336),
+ q(2332),
q(0),
],
q(falam chin) => [
- q(1714),
+ q(1710),
q(0),
],
q(fali) => [
- q(2355),
+ q(2351),
q(0),
],
q(faliscan) => [
- q(7338),
+ q(7322),
q(0),
],
q(fam) => [
- q(2332),
+ q(2328),
q(0),
],
q(fanagalo) => [
- q(2362),
+ q(2359),
q(0),
],
q(fanamaket) => [
- q(1245),
+ q(1244),
+ q(0),
+ ],
+ q(fanbak) => [
+ q(2358),
q(0),
],
q(fang) => [
@@ -32478,7 +32425,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fang (cameroon)) => [
- q(2330),
+ q(2326),
q(0),
],
q(fang (equatorial guinea)) => [
@@ -32486,7 +32433,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(fania) => [
- q(2363),
+ q(2360),
q(0),
],
q(fanti) => [
@@ -32494,11 +32441,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(far western muria) => [
- q(2361),
+ q(2357),
q(0),
],
q(farefare) => [
- q(2658),
+ q(2654),
q(0),
],
q(faroese) => [
@@ -32506,31 +32453,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fas) => [
- q(2370),
+ q(2367),
q(0),
],
q(fasu) => [
- q(2322),
+ q(2318),
q(0),
],
q(fataleka) => [
- q(2334),
+ q(2330),
q(0),
],
q(fataluku) => [
- q(1981),
+ q(1974),
q(0),
],
q(fayu) => [
- q(2335),
+ q(2331),
q(0),
],
q(fe'fe') => [
- q(2360),
+ q(2356),
q(0),
],
q(fedan) => [
- q(5400),
+ q(5392),
q(1),
],
q(fembe) => [
@@ -32538,15 +32485,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fernando po creole english) => [
- q(2369),
+ q(2366),
q(0),
],
q(feroge) => [
- q(2341),
+ q(2337),
q(0),
],
q(fiji hindi) => [
- q(2756),
+ q(2751),
q(0),
],
q(fijian) => [
@@ -32558,15 +32505,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(filomena mata-coahuitlan totonac) => [
- q(6578),
+ q(6565),
q(0),
],
q(finland-swedish sign language) => [
- q(2379),
+ q(2376),
q(0),
],
q(finlandssvenskt teckensprak) => [
- q(2379),
+ q(2376),
q(1),
],
q(finnish) => [
@@ -32574,7 +32521,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(finnish sign language) => [
- q(2377),
+ q(2374),
q(0),
],
q(finno-ugrian languages) => [
@@ -32582,23 +32529,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(finongan) => [
- q(2326),
+ q(2322),
q(0),
],
q(fipa) => [
- q(2347),
+ q(2343),
q(0),
],
q(firan) => [
- q(2348),
+ q(2344),
q(0),
],
q(fiwaga) => [
- q(2350),
+ q(2346),
q(0),
],
q(flaaitaal) => [
- q(2359),
+ q(2355),
q(0),
],
q(flemish) => [
@@ -32606,31 +32553,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(flemish sign language) => [
- q(6996),
+ q(6980),
q(1),
],
q(flinders island) => [
- q(2357),
+ q(2353),
q(0),
],
q(foau) => [
- q(2354),
+ q(2350),
q(0),
],
q(foi) => [
- q(2365),
+ q(2362),
q(0),
],
q(foia foia) => [
- q(2342),
+ q(2338),
q(0),
],
q(folopa) => [
- q(5579),
+ q(5569),
q(0),
],
q(foma) => [
- q(2366),
+ q(2363),
q(0),
],
q(fon) => [
@@ -32638,27 +32585,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fongoro) => [
- q(2344),
+ q(2340),
q(0),
],
q(foodo) => [
- q(2364),
+ q(2361),
q(0),
],
q(forak) => [
- q(2375),
+ q(2372),
q(0),
],
q(fordata) => [
- q(2372),
+ q(2369),
q(0),
],
q(fore) => [
- q(2367),
+ q(2364),
q(0),
],
q(forest enets) => [
- q(2268),
+ q(2263),
q(0),
],
q(formosan languages) => [
@@ -32666,19 +32613,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fortsenal) => [
- q(2376),
+ q(2373),
q(0),
],
q(francisco leon zoque) => [
- q(7913),
+ q(7895),
q(0),
],
q(francoprovencal) => [
- q(2374),
+ q(2371),
q(1),
],
q(frankish) => [
- q(2373),
+ q(2370),
q(0),
],
q(french) => [
@@ -32686,11 +32633,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(french belgian sign language) => [
- q(5986),
+ q(5976),
q(1),
],
q(french sign language) => [
- q(2378),
+ q(2375),
q(0),
],
q(french, middle (ca.1400-1600)) => [
@@ -32714,51 +32661,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(fuliiru) => [
- q(2358),
+ q(2354),
q(0),
],
q(fulnio) => [
- q(2389),
+ q(2386),
q(0),
],
q(fum) => [
- q(2388),
+ q(2385),
q(0),
],
q(fungwa) => [
- q(6890),
+ q(6874),
q(0),
],
q(fur) => [
- q(2395),
+ q(2392),
q(0),
],
q(furu) => [
- q(2392),
+ q(2389),
q(0),
],
q(futuna-aniwa) => [
- q(2391),
+ q(2388),
q(0),
],
q(fuyug) => [
- q(2394),
+ q(2391),
q(0),
],
q(fwai) => [
- q(2396),
+ q(2393),
q(0),
],
q(fwe) => [
- q(2397),
+ q(2394),
q(0),
],
q(fyam) => [
- q(5672),
+ q(5661),
q(0),
],
q(fyer) => [
- q(2346),
+ q(2342),
q(0),
],
q(ga) => [
@@ -32766,59 +32713,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ga'anda) => [
- q(2609),
+ q(2605),
q(0),
],
q(ga'dang) => [
- q(2458),
+ q(2455),
q(0),
],
q(gaa) => [
- q(6736),
+ q(6720),
q(0),
],
q(gaam) => [
- q(6388),
+ q(6377),
q(0),
],
q(gabi-gabi) => [
- q(2440),
+ q(2437),
q(0),
],
q(gabri) => [
- q(2398),
+ q(2395),
q(0),
],
q(gabrielino-fernandeno) => [
- q(7342),
+ q(7326),
q(0),
],
q(gadang) => [
- q(2462),
+ q(2459),
q(0),
],
q(gaddang) => [
- q(2400),
+ q(2397),
q(0),
],
q(gaddi) => [
- q(2429),
+ q(2426),
q(0),
],
q(gade) => [
- q(2476),
+ q(2473),
q(0),
],
q(gade lohar) => [
- q(2452),
+ q(2449),
q(0),
],
q(gadjerawang) => [
- q(2459),
+ q(2456),
q(0),
],
q(gadsup) => [
- q(2406),
+ q(2403),
q(0),
],
q(gaelic) => [
@@ -32826,23 +32773,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gafat) => [
- q(2490),
+ q(2487),
q(0),
],
q(gagadu) => [
- q(2438),
+ q(2435),
q(0),
],
q(gagauz) => [
- q(2403),
+ q(2400),
q(0),
],
q(gagnoa bete) => [
- q(1476),
+ q(1475),
q(0),
],
q(gagu) => [
- q(2501),
+ q(2496),
q(0),
],
q(gahri) => [
@@ -32850,35 +32797,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gaikundi) => [
- q(2424),
+ q(2421),
q(0),
],
q(gail) => [
- q(2516),
+ q(2511),
q(0),
],
q(gaina) => [
- q(2449),
+ q(2446),
q(0),
],
q(gal) => [
- q(2412),
+ q(2409),
q(0),
],
q(galambu) => [
- q(2550),
+ q(2546),
q(0),
],
q(galatian) => [
- q(7339),
+ q(7323),
q(0),
],
q(galela) => [
- q(2427),
+ q(2424),
q(0),
],
q(galeya) => [
- q(2414),
+ q(2411),
q(0),
],
q(galibi carib) => [
@@ -32886,7 +32833,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(galice) => [
- q(2446),
+ q(2443),
q(0),
],
q(galician) => [
@@ -32894,11 +32841,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(galindan) => [
- q(7345),
+ q(7329),
q(0),
],
q(gallurese sardinian) => [
- q(5954),
+ q(5944),
q(0),
],
q(galo) => [
@@ -32906,51 +32853,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(galolen) => [
- q(2408),
+ q(2405),
q(0),
],
q(gamale kham) => [
- q(3317),
+ q(3313),
q(0),
],
q(gambera) => [
- q(2555),
+ q(2551),
q(0),
],
q(gambian wolof) => [
- q(7201),
+ q(7185),
q(0),
],
q(gamilaraay) => [
- q(3432),
+ q(3428),
q(0),
],
q(gamit) => [
- q(2430),
+ q(2427),
q(0),
],
q(gamkonora) => [
- q(2407),
+ q(2404),
q(0),
],
q(gamo) => [
- q(2563),
+ q(2559),
q(0),
],
q(gamo-ningi) => [
- q(1474),
+ q(1473),
q(0),
],
q(gan chinese) => [
- q(2410),
+ q(2407),
q(0),
],
q(gana) => [
- q(2575),
+ q(2571),
q(1),
],
q(ganang) => [
- q(2571),
+ q(2567),
q(0),
],
q(ganda) => [
@@ -32958,115 +32905,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gandhari) => [
- q(5427),
+ q(5419),
q(0),
],
q(gane) => [
- q(2709),
+ q(2704),
q(0),
],
q(ganggalida) => [
- q(2445),
+ q(2442),
q(0),
],
q(ganglau) => [
- q(2497),
+ q(2494),
q(0),
],
q(gangte) => [
- q(2568),
+ q(2564),
q(0),
],
q(gangulu) => [
- q(2576),
+ q(2572),
q(0),
],
q(gants) => [
- q(2411),
+ q(2408),
q(0),
],
q(ganza) => [
- q(2707),
+ q(2702),
q(0),
],
q(ganzi) => [
- q(2584),
+ q(2580),
q(0),
],
q(gao) => [
- q(2491),
+ q(2488),
q(0),
],
q(gapapaiwa) => [
- q(5663),
+ q(5652),
q(0),
],
q(garhwali) => [
- q(2431),
+ q(2428),
q(0),
],
q(garifuna) => [
- q(1640),
+ q(1638),
q(0),
],
q(garig-ilgar) => [
- q(2954),
+ q(2948),
q(0),
],
q(garingbal) => [
- q(7344),
+ q(7328),
q(0),
],
q(garlali) => [
- q(2549),
+ q(2545),
q(0),
],
q(garo) => [
- q(2625),
+ q(2621),
q(0),
],
q(garre) => [
- q(2487),
+ q(2484),
q(0),
],
q(garrwa) => [
- q(7219),
+ q(7203),
q(0),
],
q(garus) => [
- q(2696),
+ q(2691),
q(0),
],
q(garza) => [
- q(7347),
+ q(7331),
q(0),
],
q(gata') => [
- q(2413),
+ q(2410),
q(0),
],
q(gavak) => [
- q(2084),
+ q(2077),
q(0),
],
q(gavar) => [
- q(2601),
+ q(2597),
q(0),
],
q(gaviao do jiparana) => [
- q(2674),
+ q(2669),
q(0),
],
q(gawar-bati) => [
- q(2690),
+ q(2685),
q(0),
],
q(gawwada) => [
- q(2682),
+ q(2677),
q(0),
],
q(gayil) => [
- q(2702),
+ q(2697),
q(0),
],
q(gayo) => [
@@ -33074,27 +33021,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gazi) => [
- q(2708),
+ q(2703),
q(0),
],
q(gbagyi) => [
- q(2436),
+ q(2433),
q(0),
],
q(gban) => [
- q(2501),
+ q(2496),
q(1),
],
q(gbanu) => [
- q(2439),
+ q(2436),
q(0),
],
q(gbanziri) => [
- q(2425),
+ q(2422),
q(0),
],
q(gbari) => [
- q(2442),
+ q(2439),
q(0),
],
q(gbaya) => [
@@ -33106,63 +33053,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(gbaya (sudan)) => [
- q(3587),
+ q(3582),
q(0),
],
q(gbaya-bossangoa) => [
- q(2434),
+ q(2431),
q(0),
],
q(gbaya-bozoum) => [
- q(2435),
+ q(2432),
q(0),
],
q(gbaya-mbodomo) => [
- q(2560),
+ q(2556),
q(0),
],
q(gbayi) => [
- q(2700),
+ q(2695),
q(0),
],
q(gbesi gbe) => [
- q(2437),
+ q(2434),
q(0),
],
q(gbii) => [
- q(2492),
+ q(2489),
q(0),
],
q(gbin) => [
- q(7340),
+ q(7324),
q(0),
],
q(gbiri-niragu) => [
- q(2617),
+ q(2613),
q(0),
],
q(gboloo grebo) => [
- q(2475),
+ q(2472),
q(0),
],
q(ge) => [
- q(2786),
+ q(2781),
q(0),
],
q(geba karen) => [
- q(3683),
+ q(3677),
q(0),
],
q(gebe) => [
- q(2479),
+ q(2476),
q(0),
],
q(gedaged) => [
- q(2455),
+ q(2452),
q(0),
],
q(gedeo) => [
- q(2145),
+ q(2138),
q(0),
],
q(geez) => [
@@ -33170,39 +33117,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(geji) => [
- q(2532),
+ q(2527),
q(0),
],
q(gejia) => [
- q(2786),
+ q(2781),
q(1),
],
q(geko karen) => [
- q(2507),
+ q(2502),
q(0),
],
q(gela) => [
- q(4949),
+ q(4940),
q(0),
],
q(geman deng) => [
- q(4656),
+ q(4648),
q(1),
],
q(geme) => [
- q(2483),
+ q(2480),
q(0),
],
q(gen) => [
- q(2480),
+ q(2477),
q(0),
],
q(gende) => [
- q(2402),
+ q(2399),
q(0),
],
q(gengle) => [
- q(2477),
+ q(2474),
q(0),
],
q(georgian) => [
@@ -33210,15 +33157,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gepo) => [
- q(7637),
+ q(7619),
q(0),
],
q(gera) => [
- q(2486),
+ q(2483),
q(0),
],
q(gergiko) => [
- q(4455),
+ q(4447),
q(1),
],
q(german) => [
@@ -33226,7 +33173,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(german sign language) => [
- q(2633),
+ q(2629),
q(0),
],
q(german, low) => [
@@ -33246,43 +33193,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(geruma) => [
- q(2473),
+ q(2470),
q(0),
],
q(geser-gorom) => [
- q(2484),
- q(0),
- ],
- q(gey) => [
- q(2662),
+ q(2481),
q(0),
],
q(ghadames) => [
- q(2503),
+ q(2498),
q(0),
],
q(ghanaian pidgin english) => [
- q(2607),
+ q(2603),
q(0),
],
q(ghanaian sign language) => [
- q(2632),
+ q(2628),
q(0),
],
q(ghandruk sign language) => [
- q(2469),
+ q(2466),
q(0),
],
q(ghanongga) => [
- q(2509),
+ q(2504),
q(0),
],
q(ghari) => [
- q(2618),
+ q(2614),
q(0),
],
q(ghayavi) => [
- q(1313),
+ q(1312),
q(0),
],
q(gheg albanian) => [
@@ -33290,11 +33233,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ghera) => [
- q(2511),
+ q(2506),
q(0),
],
q(ghodoberi) => [
- q(2466),
+ q(2463),
q(0),
],
q(ghomala') => [
@@ -33302,7 +33245,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ghomara) => [
- q(2510),
+ q(2505),
q(0),
],
q(ghotuo) => [
@@ -33310,7 +33253,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ghulfan) => [
- q(2508),
+ q(2503),
q(0),
],
q(giangan) => [
@@ -33318,19 +33261,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gibanawa) => [
- q(2515),
+ q(2510),
q(0),
],
q(gichuka) => [
- q(1907),
+ q(1901),
q(1),
],
q(gidar) => [
- q(2517),
+ q(2512),
q(0),
],
q(giiwo) => [
- q(3421),
+ q(3417),
q(0),
],
q(gikuyu) => [
@@ -33342,7 +33285,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gilaki) => [
- q(2548),
+ q(2544),
q(0),
],
q(gilbertese) => [
@@ -33350,31 +33293,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gilima) => [
- q(2529),
+ q(2524),
q(0),
],
q(gilyak) => [
- q(4900),
+ q(4891),
q(0),
],
q(gimi (eastern highlands)) => [
- q(2520),
+ q(2515),
q(0),
],
q(gimi (west new britain)) => [
- q(2522),
+ q(2517),
q(0),
],
q(gimme) => [
- q(3469),
+ q(3465),
q(0),
],
q(gimnime) => [
- q(2561),
+ q(2557),
q(0),
],
q(ginuman) => [
- q(2577),
+ q(2573),
q(0),
],
q(ginyanga) => [
@@ -33386,71 +33329,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(giryama) => [
- q(5160),
+ q(5151),
q(0),
],
q(githabul) => [
- q(2519),
+ q(2514),
q(0),
],
q(gitonga) => [
- q(6640),
+ q(6624),
q(0),
],
q(gitua) => [
- q(2500),
+ q(2495),
q(0),
],
q(gitxsan) => [
- q(2526),
+ q(2521),
q(0),
],
q(giyug) => [
- q(2530),
+ q(2525),
q(0),
],
q(gizrra) => [
- q(6639),
+ q(6623),
q(0),
],
q(glaro-twabo) => [
- q(2551),
+ q(2547),
q(0),
],
q(glavda) => [
- q(2553),
+ q(2549),
q(0),
],
q(glio-oubi) => [
- q(5335),
+ q(5326),
q(0),
],
q(gnau) => [
- q(2582),
+ q(2578),
q(0),
],
q(goan konkani) => [
- q(2596),
+ q(2592),
q(0),
],
q(goaria) => [
- q(2518),
+ q(2513),
q(0),
],
q(gobasi) => [
- q(2592),
+ q(2588),
q(0),
],
q(gobu) => [
- q(2603),
+ q(2599),
q(0),
],
q(godie) => [
- q(2588),
+ q(2584),
q(0),
],
q(godwari) => [
- q(2472),
+ q(2469),
q(0),
],
q(goemai) => [
@@ -33458,31 +33401,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gofa) => [
- q(2590),
+ q(2586),
q(0),
],
q(gogo) => [
- q(2591),
+ q(2587),
q(0),
],
q(gogodala) => [
- q(2502),
+ q(2497),
q(0),
],
q(gokana) => [
- q(2539),
+ q(2535),
q(0),
],
q(gola) => [
- q(2595),
+ q(2591),
q(0),
],
q(golin) => [
- q(2669),
+ q(2664),
q(0),
],
q(golpa) => [
- q(3932),
+ q(3923),
q(0),
],
q(gondi) => [
@@ -33490,35 +33433,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gone dau) => [
- q(2597),
+ q(2593),
q(0),
],
q(gongduk) => [
- q(2589),
+ q(2585),
q(0),
],
q(gonja) => [
- q(2535),
+ q(2530),
q(0),
],
q(gooniyandi) => [
- q(2574),
+ q(2570),
q(0),
],
q(gor) => [
- q(2612),
+ q(2608),
q(0),
],
q(gorakor) => [
- q(2587),
+ q(2583),
q(0),
],
q(gorap) => [
- q(2599),
+ q(2595),
q(0),
],
q(goreng) => [
- q(7343),
+ q(7327),
q(0),
],
q(gorontalo) => [
@@ -33526,11 +33469,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gorovu) => [
- q(2622),
+ q(2618),
q(0),
],
q(gorowa) => [
- q(2602),
+ q(2598),
q(0),
],
q(gothic) => [
@@ -33538,35 +33481,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(goundo) => [
- q(2604),
+ q(2600),
q(0),
],
q(gourmanchema) => [
- q(2664),
+ q(2659),
q(0),
],
q(gowlan) => [
- q(2593),
+ q(2589),
q(0),
],
q(gowli) => [
- q(2594),
+ q(2590),
q(0),
],
q(gowro) => [
- q(2684),
+ q(2679),
q(0),
],
q(gozarkhani) => [
- q(2605),
+ q(2601),
q(0),
],
q(grangali) => [
- q(4950),
+ q(4941),
q(0),
],
q(grass koiari) => [
- q(3193),
+ q(3190),
q(0),
],
q(grebo) => [
@@ -33582,7 +33525,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(greek sign language) => [
- q(2639),
+ q(2635),
q(0),
],
q(greek, ancient (to 1453)) => [
@@ -33594,7 +33537,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(green gelao) => [
- q(2523),
+ q(2518),
q(0),
],
q(greenlandic) => [
@@ -33602,19 +33545,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(grenadian creole english) => [
- q(2448),
+ q(2445),
q(0),
],
q(gresi) => [
- q(2624),
+ q(2620),
q(0),
],
q(groma) => [
- q(2621),
+ q(2617),
q(0),
],
q(gronings) => [
- q(2600),
+ q(2596),
q(0),
],
q(gros ventre) => [
@@ -33622,47 +33565,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gua) => [
- q(2693),
+ q(2688),
q(0),
],
q(guadeloupean creole french) => [
- q(2447),
+ q(2444),
q(0),
],
q(guahibo) => [
- q(2649),
+ q(2645),
q(0),
],
q(guaja) => [
- q(2670),
+ q(2665),
q(0),
],
q(guajajara) => [
- q(2643),
+ q(2639),
q(0),
],
q(guambiano) => [
- q(2653),
+ q(2649),
q(0),
],
q(guana (brazil)) => [
- q(2611),
+ q(2607),
q(0),
],
q(guana (paraguay)) => [
- q(2666),
+ q(2661),
q(0),
],
q(guanano) => [
- q(2667),
+ q(2662),
q(0),
],
q(guanche) => [
- q(2569),
+ q(2565),
q(0),
],
q(guanyinqiao) => [
- q(3102),
+ q(3098),
q(0),
],
q(guarani) => [
@@ -33670,47 +33613,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(guarayu) => [
- q(2705),
+ q(2700),
q(0),
],
q(guarequena) => [
- q(2401),
+ q(2398),
q(0),
],
q(guatemalan sign language) => [
- q(2635),
+ q(2631),
q(0),
],
q(guato) => [
- q(2640),
+ q(2636),
q(0),
],
q(guayabero) => [
- q(2655),
+ q(2651),
q(0),
],
q(gudang) => [
- q(7341),
+ q(7325),
q(0),
],
q(gudanji) => [
- q(4909),
+ q(4900),
q(0),
],
q(gude) => [
- q(2456),
+ q(2453),
q(0),
],
q(gudu) => [
- q(2471),
+ q(2468),
q(0),
],
q(guduf-gava) => [
- q(2457),
+ q(2454),
q(0),
],
q(guernesiais) => [
- q(5053),
+ q(5044),
q(1),
],
q(guerrero amuzgo) => [
@@ -33718,43 +33661,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(guerrero nahuatl) => [
- q(4854),
+ q(4845),
q(0),
],
q(guevea de humboldt zapotec) => [
- q(7920),
+ q(7902),
q(0),
],
q(gugadj) => [
- q(2493),
+ q(2490),
q(0),
],
q(gugu badhun) => [
- q(2454),
+ q(2451),
q(0),
],
q(gugu warra) => [
- q(7229),
+ q(7213),
q(0),
],
q(gugubera) => [
- q(3418),
+ q(3414),
q(0),
],
q(guguyimidjir) => [
- q(3427),
+ q(3423),
q(0),
],
q(guhu-samane) => [
- q(2512),
+ q(2507),
q(0),
],
q(guianese creole french) => [
- q(2450),
+ q(2447),
q(0),
],
q(guibei zhuang) => [
- q(7840),
+ q(7822),
q(0),
],
q(guiberoua bete) => [
@@ -33762,23 +33705,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(guibian zhuang) => [
- q(7842),
+ q(7824),
q(0),
],
q(guila zapotec) => [
- q(7962),
+ q(7944),
q(0),
],
q(guinea kpelle) => [
- q(2541),
+ q(2537),
q(0),
],
q(guinean sign language) => [
- q(2659),
+ q(2655),
q(0),
],
q(guiqiong) => [
- q(2610),
+ q(2606),
q(0),
],
q(gujarati) => [
@@ -33786,31 +33729,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gujari) => [
- q(2536),
+ q(2532),
q(0),
],
q(gula (central african republic)) => [
- q(3221),
+ q(3218),
q(0),
],
q(gula (chad)) => [
- q(2552),
+ q(2548),
q(0),
],
q(gula iro) => [
- q(2547),
+ q(2543),
q(0),
],
q(gula'alaa) => [
- q(2556),
+ q(2552),
q(0),
],
q(gulay) => [
- q(2671),
+ q(2666),
q(0),
],
q(gule) => [
- q(2554),
+ q(2550),
q(0),
],
q(gulf arabic) => [
@@ -33818,163 +33761,171 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(guliguli) => [
- q(2546),
+ q(2542),
q(0),
],
q(gumalu) => [
- q(2562),
+ q(2558),
q(0),
],
q(gumatj) => [
- q(2578),
+ q(2574),
q(0),
],
q(gumawana) => [
- q(2677),
+ q(2672),
q(0),
],
q(gumuz) => [
- q(2651),
+ q(2647),
q(0),
],
q(gun) => [
- q(2663),
+ q(2658),
q(0),
],
q(gundi) => [
- q(2460),
+ q(2457),
q(0),
],
q(gunditjmara) => [
- q(2534),
+ q(2529),
q(0),
],
q(gundungurra) => [
- q(7478),
+ q(7460),
q(0),
],
q(gungabula) => [
- q(2699),
+ q(2694),
q(0),
],
q(gungu) => [
- q(5862),
+ q(5851),
q(0),
],
q(guntai) => [
- q(2581),
+ q(2577),
q(0),
],
q(gunwinggu) => [
- q(2656),
+ q(2652),
q(0),
],
q(gunya) => [
- q(2706),
+ q(2701),
q(0),
],
q(gupa-abawa) => [
- q(2606),
+ q(2602),
q(0),
],
q(gupapuyngu) => [
- q(2647),
+ q(2643),
q(0),
],
q(guragone) => [
- q(2494),
+ q(2491),
q(0),
],
q(guramalum) => [
- q(2631),
+ q(2627),
q(0),
],
q(gurani) => [
- q(2712),
+ q(2707),
q(0),
],
q(gurdjar) => [
- q(2461),
+ q(2458),
q(0),
],
q(gureng gureng) => [
- q(2580),
+ q(2576),
q(0),
],
q(gurgula) => [
- q(2495),
+ q(2492),
q(0),
],
q(guriaso) => [
- q(2629),
+ q(2625),
+ q(0),
+ ],
+ q(gurindji kriol) => [
+ q(2531),
q(0),
],
q(gurinji) => [
- q(2646),
+ q(2642),
q(0),
],
q(gurmana) => [
- q(2672),
+ q(2667),
q(0),
],
q(guro) => [
- q(2585),
+ q(2581),
+ q(0),
+ ],
+ q(gurung) => [
+ q(2671),
q(0),
],
q(guruntum-mbaaru) => [
- q(2615),
+ q(2611),
q(0),
],
q(gusan) => [
- q(2636),
- q(0),
+ q(2632),
+ q(1),
],
q(gusii) => [
- q(2665),
+ q(2660),
q(0),
],
q(gusilay) => [
- q(2634),
+ q(2630),
q(0),
],
q(guwa) => [
- q(7349),
+ q(7333),
q(0),
],
q(guwamu) => [
- q(2691),
+ q(2686),
q(0),
],
q(guwinmal) => [
- q(7346),
+ q(7330),
q(1),
],
q(guya) => [
- q(2537),
+ q(2533),
q(0),
],
q(guyanese creole english) => [
- q(2704),
+ q(2699),
q(0),
],
q(guyani) => [
- q(2678),
+ q(2673),
q(0),
],
q(gvoko) => [
- q(4852),
+ q(4843),
q(0),
],
q(gwa) => [
- q(2680),
+ q(2675),
q(0),
],
q(gwahatike) => [
- q(1943),
+ q(1936),
q(0),
],
q(gwak) => [
- q(3087),
+ q(3083),
q(0),
],
q(gwamhi-wuri) => [
@@ -33982,23 +33933,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gwandara) => [
- q(2688),
+ q(2683),
q(0),
],
q(gweda) => [
- q(2628),
+ q(2624),
q(0),
],
q(gweno) => [
- q(2683),
+ q(2678),
q(0),
],
q(gwere) => [
- q(2689),
+ q(2684),
q(0),
],
q(gwi) => [
- q(2686),
+ q(2681),
q(1),
],
q(gwich'in) => [
@@ -34006,31 +33957,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(gyele) => [
- q(2701),
+ q(2696),
q(0),
],
q(gyem) => [
- q(2698),
+ q(2693),
q(0),
],
q(ha) => [
- q(2725),
+ q(2720),
q(0),
],
q(habu) => [
- q(2736),
+ q(2731),
q(0),
],
q(hadiyya) => [
- q(2741),
+ q(2736),
q(0),
],
q(hadothi) => [
- q(2817),
+ q(2812),
q(0),
],
q(hadrami) => [
- q(7352),
+ q(7336),
q(0),
],
q(hadrami arabic) => [
@@ -34038,7 +33989,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hadza) => [
- q(2849),
+ q(2844),
q(0),
],
q(haeke) => [
@@ -34046,11 +33997,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hahon) => [
- q(2717),
+ q(2712),
q(0),
],
q(hai//om) => [
- q(2748),
+ q(2743),
q(0),
],
q(haida) => [
@@ -34058,19 +34009,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(haigwai) => [
- q(2749),
+ q(2744),
q(0),
],
q(haiom) => [
- q(2748),
+ q(2743),
q(1),
],
q(haiphong sign language) => [
- q(2715),
+ q(2710),
q(0),
],
q(haisla) => [
- q(2727),
+ q(2722),
q(0),
],
q(haitian) => [
@@ -34082,63 +34033,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(haitian vodoun culture language) => [
- q(2875),
+ q(2870),
q(0),
],
q(haji) => [
- q(2766),
+ q(2761),
q(0),
],
q(hajong) => [
- q(2718),
+ q(2713),
q(0),
],
q(haka chin) => [
- q(1799),
+ q(1795),
+ q(1),
+ ],
+ q(hakha chin) => [
+ q(1795),
q(0),
],
q(hakka chinese) => [
- q(2719),
+ q(2714),
q(0),
],
q(hako) => [
- q(2723),
+ q(2718),
q(0),
],
q(halang) => [
- q(2720),
+ q(2715),
q(0),
],
q(halang doan) => [
- q(2773),
+ q(2768),
q(0),
],
q(halbi) => [
- q(2772),
+ q(2767),
q(0),
],
q(halh mongolian) => [
- q(3341),
+ q(3337),
q(0),
],
q(halia) => [
- q(2771),
+ q(2766),
q(0),
],
q(halkomelem) => [
- q(2866),
+ q(2861),
q(0),
],
q(hamap) => [
- q(2795),
+ q(2790),
q(0),
],
q(hamba) => [
- q(2732),
+ q(2727),
q(0),
],
q(hamea) => [
- q(1740),
+ q(1736),
q(1),
],
q(hamer-banna) => [
@@ -34146,71 +34101,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hamtai) => [
- q(2794),
+ q(2789),
q(0),
],
q(han) => [
- q(2710),
+ q(2705),
q(0),
],
q(hanga) => [
- q(2716),
+ q(2711),
q(0),
],
q(hanga hundi) => [
- q(7209),
+ q(7193),
q(0),
],
q(hangaza) => [
- q(2722),
+ q(2717),
q(0),
],
q(hani) => [
- q(2804),
+ q(2799),
q(0),
],
q(hano) => [
- q(3987),
+ q(3978),
q(0),
],
q(hanoi sign language) => [
- q(2711),
+ q(2706),
q(0),
],
q(hanunoo) => [
- q(2806),
+ q(2801),
q(0),
],
q(harami) => [
- q(7350),
+ q(7334),
q(0),
],
q(harari) => [
- q(2726),
+ q(2721),
q(0),
],
q(harijan kinnauri) => [
- q(3392),
+ q(3388),
q(0),
],
q(haroi) => [
- q(2836),
+ q(2831),
q(0),
],
q(haroti) => [
- q(2817),
+ q(2812),
q(1),
],
q(harsusi) => [
- q(2846),
+ q(2841),
q(0),
],
q(haruai) => [
- q(6590),
+ q(6577),
q(0),
],
q(haruku) => [
- q(2834),
+ q(2829),
q(0),
],
q(haryanvi) => [
@@ -34218,23 +34173,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(harzani) => [
- q(2842),
+ q(2837),
q(0),
],
q(hasha) => [
- q(7604),
+ q(7586),
q(0),
],
q(hassaniyya) => [
- q(4223),
+ q(4214),
q(0),
],
q(hatam) => [
- q(2713),
+ q(2708),
q(0),
],
q(hattic) => [
- q(7355),
+ q(7339),
q(0),
],
q(hausa) => [
@@ -34242,35 +34197,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hausa sign language) => [
- q(2844),
+ q(2839),
q(0),
],
q(havasupai-walapai-yavapai) => [
- q(7767),
+ q(7749),
q(0),
],
q(haveke) => [
- q(2877),
+ q(2872),
q(0),
],
q(havu) => [
- q(2728),
+ q(2723),
q(0),
],
q(hawai'i creole english) => [
- q(2881),
+ q(2876),
q(0),
],
q(hawai'i pidgin) => [
- q(2881),
+ q(2876),
q(1),
],
q(hawai'i pidgin sign language) => [
- q(2830),
+ q(2825),
q(1),
],
q(hawai'i sign language (hsl)) => [
- q(2830),
+ q(2825),
q(0),
],
q(hawaiian) => [
@@ -34278,15 +34233,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(haya) => [
- q(2730),
+ q(2725),
q(0),
],
q(hazaragi) => [
- q(2731),
+ q(2726),
q(0),
],
q(hdi) => [
- q(7329),
+ q(7313),
q(0),
],
q(hebrew) => [
@@ -34294,35 +34249,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hehe) => [
- q(2745),
+ q(2740),
q(0),
],
q(heiban) => [
- q(2734),
+ q(2729),
q(0),
],
q(heiltsuk) => [
- q(2746),
+ q(2741),
q(0),
],
q(helambu sherpa) => [
- q(5936),
+ q(5926),
q(0),
],
q(helong) => [
- q(2744),
+ q(2739),
q(0),
],
q(hema) => [
- q(4902),
+ q(4893),
q(0),
],
q(hemba) => [
- q(2747),
+ q(2742),
q(0),
],
q(herde) => [
- q(2743),
+ q(2738),
q(0),
],
q(herero) => [
@@ -34330,23 +34285,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hermit) => [
- q(3961),
+ q(3952),
q(0),
],
q(hernican) => [
- q(7354),
+ q(7338),
q(0),
],
q(hertevin) => [
- q(2838),
+ q(2833),
q(0),
],
q(heung kong sau yue) => [
- q(2770),
+ q(2765),
q(1),
],
q(hewa) => [
- q(2721),
+ q(2716),
q(0),
],
q(heyo) => [
@@ -34354,35 +34309,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hiberno-scottish gaelic) => [
- q(2504),
+ q(2499),
q(0),
],
q(hibito) => [
- q(2754),
+ q(2749),
q(0),
],
q(hidatsa) => [
- q(2755),
+ q(2750),
q(0),
],
q(hieroglyphic luwian) => [
- q(2776),
+ q(2771),
q(0),
],
q(higaonon) => [
- q(4128),
+ q(4119),
q(0),
],
q(highland konjo) => [
- q(3388),
+ q(3384),
q(0),
],
q(highland oaxaca chontal) => [
- q(1720),
+ q(1716),
q(0),
],
q(highland popoluca) => [
- q(5560),
+ q(5551),
q(0),
],
q(highland puebla nahuatl) => [
@@ -34390,7 +34345,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(highland totonac) => [
- q(6649),
+ q(6633),
q(0),
],
q(hijazi arabic) => [
@@ -34398,7 +34353,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hijuk) => [
- q(2760),
+ q(2755),
q(0),
],
q(hiligaynon) => [
@@ -34410,7 +34365,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(himarima) => [
- q(2763),
+ q(2758),
q(0),
],
q(hindi) => [
@@ -34418,11 +34373,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hinduri) => [
- q(2759),
+ q(2754),
q(0),
],
q(hinukh) => [
- q(2521),
+ q(2516),
q(0),
],
q(hiri motu) => [
@@ -34434,31 +34389,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hitu) => [
- q(2850),
+ q(2845),
q(0),
],
q(hiw) => [
- q(2764),
+ q(2759),
q(0),
],
q(hixkaryana) => [
- q(2765),
+ q(2760),
q(0),
],
q(hlai) => [
- q(3912),
+ q(3903),
q(0),
],
q(hlepho phowa) => [
- q(7644),
+ q(7626),
q(0),
],
q(hlersu) => [
- q(2774),
+ q(2769),
q(0),
],
q(hmar) => [
- q(2792),
+ q(2787),
q(0),
],
q(hmong) => [
@@ -34466,23 +34421,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hmong daw) => [
- q(4643),
+ q(4635),
q(0),
],
q(hmong do) => [
- q(2796),
+ q(2791),
q(0),
],
q(hmong don) => [
- q(2782),
+ q(2777),
q(0),
],
q(hmong njua) => [
- q(2805),
+ q(2800),
q(0),
],
q(hmong shua) => [
- q(2799),
+ q(2794),
q(0),
],
q(hmong-mien languages) => [
@@ -34490,31 +34445,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hmwaveke) => [
- q(4515),
+ q(4507),
q(0),
],
q(ho) => [
- q(2812),
+ q(2807),
q(0),
],
q(ho chi minh city sign language) => [
- q(2823),
+ q(2818),
q(0),
],
q(ho-chunk) => [
- q(7138),
+ q(7122),
q(0),
],
q(hoava) => [
- q(2810),
+ q(2805),
q(0),
],
q(hobyot) => [
- q(2815),
+ q(2810),
q(0),
],
q(hoia hoia) => [
- q(2750),
+ q(2745),
q(0),
],
q(hokan languages) => [
@@ -34522,223 +34477,223 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(holikachuk) => [
- q(2816),
+ q(2811),
q(0),
],
q(holiya) => [
- q(2827),
+ q(2822),
q(0),
],
q(holma) => [
- q(2813),
+ q(2808),
q(0),
],
q(holoholo) => [
- q(2820),
+ q(2815),
q(0),
],
q(holu) => [
- q(2818),
+ q(2813),
q(0),
],
q(homa) => [
- q(2819),
+ q(2814),
q(0),
],
q(honduras sign language) => [
- q(2740),
+ q(2735),
q(0),
],
q(hone) => [
- q(3151),
+ q(3148),
q(0),
],
q(hong kong sign language) => [
- q(2770),
+ q(2765),
q(0),
],
q(honi) => [
- q(2826),
+ q(2821),
q(0),
],
q(hopi) => [
- q(2821),
+ q(2816),
q(0),
],
q(horned miao) => [
- q(2835),
+ q(2830),
q(0),
],
q(horo) => [
- q(2822),
+ q(2817),
q(0),
],
q(horom) => [
- q(2814),
+ q(2809),
q(0),
],
q(horpa) => [
- q(2286),
+ q(2281),
q(0),
],
q(hote) => [
- q(2824),
+ q(2819),
q(0),
],
q(hoti) => [
- q(2847),
+ q(2842),
q(0),
],
q(hovongan) => [
- q(2825),
+ q(2820),
q(0),
],
q(hoyahoya) => [
- q(2752),
+ q(2747),
q(0),
],
q(hozo) => [
- q(2828),
+ q(2823),
q(0),
],
q(hpon) => [
- q(2829),
+ q(2824),
q(0),
],
q(hrangkhol) => [
- q(2831),
+ q(2826),
q(0),
],
q(hre) => [
- q(2833),
+ q(2828),
q(0),
],
q(hruso) => [
- q(2839),
+ q(2834),
q(0),
],
q(hu) => [
- q(2864),
+ q(2859),
q(0),
],
q(hua) => [
- q(2853),
+ q(2848),
q(1),
],
q(huachipaeri) => [
- q(2857),
+ q(2852),
q(0),
],
q(huallaga huanuco quechua) => [
- q(5680),
+ q(5669),
q(0),
],
q(huamalies-dos de mayo huanuco quechua) => [
- q(5703),
+ q(5692),
q(0),
],
q(huambisa) => [
- q(2852),
+ q(2847),
q(0),
],
q(huarijio) => [
- q(6981),
+ q(6965),
q(0),
],
q(huastec) => [
- q(2867),
+ q(2862),
q(0),
],
q(huaulu) => [
- q(2854),
+ q(2849),
q(0),
],
q(huautla mazatec) => [
- q(4123),
+ q(4114),
q(0),
],
q(huaxcaleca nahuatl) => [
- q(4874),
+ q(4865),
q(0),
],
q(huaylas ancash quechua) => [
- q(5717),
+ q(5706),
q(0),
],
q(huaylla wanca quechua) => [
- q(5712),
+ q(5701),
q(0),
],
q(huba) => [
- q(2733),
+ q(2728),
q(0),
],
q(huehuetla tepehua) => [
- q(6454),
+ q(6443),
q(0),
],
q(huichol) => [
- q(2738),
+ q(2733),
q(0),
],
q(huilliche) => [
- q(2858),
+ q(2853),
q(0),
],
q(huitepec mixtec) => [
- q(4665),
+ q(4657),
q(0),
],
q(huizhou chinese) => [
- q(1933),
+ q(1926),
q(0),
],
q(hukumina) => [
- q(2871),
+ q(2866),
q(0),
],
q(hula) => [
- q(2862),
+ q(2857),
q(0),
],
q(hulaula) => [
- q(2873),
+ q(2868),
q(0),
],
q(huli) => [
- q(2859),
+ q(2854),
q(0),
],
q(hulung) => [
- q(2861),
+ q(2856),
q(0),
],
q(humburi senni songhay) => [
- q(2778),
+ q(2773),
q(0),
],
q(humene) => [
- q(2856),
+ q(2851),
q(0),
],
q(humla) => [
- q(2868),
+ q(2863),
q(0),
],
q(hun-saare) => [
- q(2172),
+ q(2166),
q(0),
],
q(hunde) => [
- q(2768),
+ q(2763),
q(0),
],
q(hung) => [
- q(2809),
+ q(2804),
q(0),
],
q(hungana) => [
- q(2863),
+ q(2858),
q(0),
],
q(hungarian) => [
@@ -34746,27 +34701,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hungarian sign language) => [
- q(2843),
+ q(2838),
q(0),
],
q(hungworo) => [
- q(4735),
+ q(4726),
q(1),
],
q(hunjara-kaina ke) => [
- q(2769),
+ q(2764),
q(0),
],
q(hunnic) => [
- q(7351),
+ q(7335),
q(0),
],
q(hunsrik) => [
- q(2841),
+ q(2836),
q(0),
],
q(hunzib) => [
- q(2874),
+ q(2869),
q(0),
],
q(hupa) => [
@@ -34774,71 +34729,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(hupde) => [
- q(3158),
+ q(3155),
q(0),
],
q(hupla) => [
- q(2724),
+ q(2719),
q(0),
],
q(hurrian) => [
- q(7356),
+ q(7340),
q(0),
],
q(hutterisch) => [
- q(2478),
+ q(2475),
q(1),
],
q(hutterite german) => [
- q(2478),
+ q(2475),
q(0),
],
q(hwana) => [
- q(2882),
+ q(2877),
q(0),
],
q(hya) => [
- q(2883),
+ q(2878),
q(0),
],
q(hyam) => [
- q(3041),
+ q(3037),
q(0),
],
q(i'saka) => [
- q(3602),
+ q(3597),
q(1),
],
q(i-wak) => [
- q(3028),
+ q(3024),
q(0),
],
q(iaai) => [
- q(2884),
+ q(2879),
q(0),
],
q(iamalele) => [
- q(7696),
- q(0),
- ],
- q(iapama) => [
- q(2886),
+ q(7678),
q(0),
],
q(iatmul) => [
- q(2885),
+ q(2880),
q(0),
],
q(iau) => [
- q(6606),
+ q(6592),
q(0),
],
q(ibali teke) => [
- q(6459),
+ q(6448),
q(0),
],
q(ibaloi) => [
- q(2892),
+ q(2886),
q(0),
],
q(iban) => [
@@ -34846,35 +34797,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ibanag) => [
- q(2891),
+ q(2885),
q(0),
],
q(ibani) => [
- q(2897),
+ q(2891),
q(0),
],
q(ibatan) => [
- q(3026),
+ q(3022),
q(0),
],
q(iberian) => [
- q(7358),
+ q(7342),
q(0),
],
q(ibibio) => [
- q(2888),
+ q(2882),
q(0),
],
q(ibino) => [
- q(2894),
+ q(2888),
q(0),
],
q(ibu) => [
- q(2896),
+ q(2890),
q(0),
],
q(ibuoro) => [
- q(2895),
+ q(2889),
q(0),
],
q(icelandic) => [
@@ -34882,7 +34833,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(icelandic sign language) => [
- q(2900),
+ q(2894),
q(0),
],
q(iceve-maci) => [
@@ -34890,27 +34841,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ida'an) => [
- q(1963),
+ q(1956),
q(0),
],
q(idakho-isukha-tiriki) => [
- q(2902),
+ q(2896),
q(0),
],
q(idate) => [
- q(2910),
+ q(2904),
q(0),
],
q(idere) => [
- q(2906),
+ q(2900),
q(0),
],
q(idesa) => [
- q(2909),
+ q(2903),
q(0),
],
q(idi) => [
- q(2907),
+ q(2901),
q(0),
],
q(ido) => [
@@ -34918,35 +34869,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(idoma) => [
- q(2911),
+ q(2905),
q(0),
],
q(idon) => [
- q(2904),
+ q(2898),
q(0),
],
q(idu-mishmi) => [
- q(1776),
+ q(1772),
q(0),
],
q(iduna) => [
- q(7005),
+ q(6989),
q(0),
],
q(ife) => [
- q(2914),
+ q(2908),
q(0),
],
q(ifo) => [
- q(2915),
+ q(2909),
q(0),
],
q(igala) => [
- q(2923),
+ q(2917),
q(0),
],
q(igana) => [
- q(2922),
+ q(2916),
q(0),
],
q(igbo) => [
@@ -34954,11 +34905,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(igede) => [
- q(2921),
+ q(2915),
q(0),
],
q(ignaciano) => [
- q(2925),
+ q(2919),
q(0),
],
q(igo) => [
@@ -34966,27 +34917,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(iguta) => [
- q(4733),
+ q(4724),
q(0),
],
q(igwe) => [
- q(2928),
+ q(2922),
q(0),
],
q(iha) => [
- q(2931),
+ q(2925),
q(0),
],
q(iha based pidgin) => [
- q(2929),
+ q(2923),
q(0),
],
q(ihievbe) => [
- q(2930),
+ q(2924),
q(0),
],
q(ija-zuba) => [
- q(7007),
+ q(6991),
q(0),
],
q(ijo languages) => [
@@ -34994,83 +34945,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ik) => [
- q(2950),
+ q(2944),
q(0),
],
q(ika) => [
- q(2941),
+ q(2935),
q(0),
],
q(ikaranggal) => [
- q(2945),
+ q(2939),
q(0),
],
q(ikizu) => [
- q(2951),
+ q(2945),
q(0),
],
q(iko) => [
- q(2940),
+ q(2934),
q(0),
],
q(ikobi) => [
- q(4203),
+ q(4194),
q(0),
],
q(ikoma-nata-isenye) => [
- q(5093),
+ q(5085),
q(0),
],
q(ikpeng) => [
- q(6818),
+ q(6802),
q(0),
],
q(ikpeshi) => [
- q(2944),
+ q(2938),
q(0),
],
q(ikposo) => [
- q(3537),
+ q(3532),
q(0),
],
q(iku-gora-ankwa) => [
- q(2948),
+ q(2942),
q(0),
],
q(ikulu) => [
- q(2942),
+ q(2936),
q(0),
],
q(ikwere) => [
- q(2949),
+ q(2943),
q(0),
],
q(ikwo) => [
- q(2986),
+ q(2981),
q(0),
],
q(ila) => [
- q(2953),
+ q(2947),
q(0),
],
q(ile ape) => [
- q(2952),
+ q(2946),
q(0),
],
q(ili turki) => [
- q(2955),
+ q(2949),
q(0),
],
q(ili'uun) => [
- q(2959),
+ q(2954),
q(0),
],
q(ilianen manobo) => [
- q(4135),
+ q(4126),
q(0),
],
q(illyrian) => [
- q(7360),
+ q(7344),
q(0),
],
q(iloko) => [
@@ -35078,27 +35029,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ilongot) => [
- q(2956),
+ q(2950),
q(0),
],
q(ilue) => [
- q(2960),
+ q(2955),
q(0),
],
q(ilwana) => [
- q(4376),
+ q(4368),
q(0),
],
q(imbabura highland quichua) => [
- q(5704),
+ q(5693),
q(0),
],
q(imbongu) => [
- q(2965),
+ q(2960),
q(0),
],
q(imonda) => [
- q(2964),
+ q(2959),
q(0),
],
q(imperial aramaic (700-300 bce)) => [
@@ -35106,7 +35057,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(imroing) => [
- q(2966),
+ q(2961),
q(0),
],
q(inabaknon) => [
@@ -35114,11 +35065,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(inapang) => [
- q(4713),
+ q(4705),
q(0),
],
q(inapari) => [
- q(2976),
+ q(2971),
q(0),
],
q(inari sami) => [
@@ -35126,7 +35077,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(indian sign language) => [
- q(2977),
+ q(2972),
q(0),
],
q(indic languages) => [
@@ -35142,7 +35093,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(indo-portuguese) => [
- q(2903),
+ q(2897),
q(0),
],
q(indonesian) => [
@@ -35154,35 +35105,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(indonesian sign language) => [
- q(2972),
+ q(2967),
q(0),
],
q(indri) => [
- q(2908),
+ q(2902),
q(0),
],
q(indus kohistani) => [
- q(4623),
+ q(4615),
q(0),
],
q(indus valley language) => [
- q(7365),
+ q(7348),
q(0),
],
q(inebu one) => [
- q(5217),
+ q(5208),
q(0),
],
q(ineseno) => [
- q(2979),
+ q(2974),
q(0),
],
q(inga) => [
- q(2969),
+ q(2964),
q(0),
],
q(ingrian) => [
- q(3037),
+ q(3033),
q(0),
],
q(ingush) => [
@@ -35190,27 +35141,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(inlaod itneg) => [
- q(3012),
+ q(3008),
q(0),
],
q(inoke-yate) => [
- q(2975),
+ q(2970),
q(0),
],
q(inonhan) => [
- q(4016),
+ q(4007),
q(0),
],
q(inor) => [
- q(2980),
+ q(2975),
q(0),
],
q(inpui naga) => [
- q(4927),
+ q(4918),
q(0),
],
q(interglossa) => [
- q(2927),
+ q(2921),
q(0),
],
q(interlingua (international auxiliary language association)) => [
@@ -35222,19 +35173,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(international sign) => [
- q(2958),
+ q(2953),
q(0),
],
q(intha) => [
- q(2978),
+ q(2973),
q(0),
],
q(inuinnaqtun) => [
- q(2947),
+ q(2941),
q(0),
],
q(inuit sign language) => [
- q(2946),
+ q(2940),
q(0),
],
q(inuktitut) => [
@@ -35246,7 +35197,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(iowa-oto) => [
- q(2982),
+ q(2977),
q(0),
],
q(ipalapa amuzgo) => [
@@ -35254,11 +35205,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ipiko) => [
- q(2984),
+ q(2979),
q(0),
],
q(ipili) => [
- q(2983),
+ q(2978),
q(0),
],
q(ipulo) => [
@@ -35266,11 +35217,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(iquito) => [
- q(2985),
+ q(2980),
q(0),
],
q(ir) => [
- q(2992),
+ q(2987),
q(0),
],
q(iranian languages) => [
@@ -35278,35 +35229,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(iranian persian) => [
- q(5418),
+ q(5410),
q(0),
],
q(irantxe) => [
- q(2991),
+ q(2986),
q(0),
],
- q(iranun) => [
- q(2957),
+ q(iranun (malaysia)) => [
+ q(2951),
+ q(0),
+ ],
+ q(iranun (philippines)) => [
+ q(2952),
q(0),
],
q(iraqw) => [
- q(2990),
+ q(2985),
q(0),
],
q(irarutu) => [
- q(2988),
+ q(2983),
q(0),
],
q(iraya) => [
- q(2995),
+ q(2990),
q(0),
],
q(iresim) => [
- q(2987),
+ q(2982),
q(0),
],
q(irigwe) => [
- q(2989),
+ q(2984),
q(0),
],
q(irish) => [
@@ -35314,7 +35269,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(irish sign language) => [
- q(3000),
+ q(2995),
q(0),
],
q(irish, middle (900-1200)) => [
@@ -35330,15 +35285,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(irula) => [
- q(2993),
+ q(2988),
q(0),
],
q(isabi) => [
- q(2996),
+ q(2991),
q(0),
],
q(isanzu) => [
- q(3005),
+ q(3000),
q(0),
],
q(isarog agta) => [
@@ -35346,83 +35301,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(isconahua) => [
- q(2997),
+ q(2992),
q(0),
],
q(isebe) => [
- q(2926),
+ q(2920),
q(0),
],
q(isekiri) => [
- q(3018),
+ q(3014),
q(0),
],
q(ishkashimi) => [
- q(3003),
+ q(2998),
q(0),
],
q(isinai) => [
- q(2974),
+ q(2969),
q(0),
],
q(isirawa) => [
- q(6218),
+ q(6208),
q(0),
],
q(island carib) => [
- q(1845),
+ q(1839),
q(0),
],
q(islander creole english) => [
- q(2901),
+ q(2895),
q(0),
],
q(isnag) => [
- q(2998),
+ q(2993),
q(0),
],
q(isoko) => [
- q(3006),
+ q(3001),
q(0),
],
q(israeli sign language) => [
- q(3007),
+ q(3002),
q(0),
],
q(isthmus mixe) => [
- q(4314),
+ q(4305),
q(0),
],
q(isthmus zapotec) => [
- q(7813),
+ q(7795),
q(0),
],
q(isthmus-cosoleacaque nahuatl) => [
- q(4869),
+ q(4860),
q(0),
],
q(isthmus-mecayapan nahuatl) => [
- q(4880),
+ q(4871),
q(0),
],
q(isthmus-pajapan nahuatl) => [
- q(4873),
+ q(4864),
q(0),
],
q(istriot) => [
- q(3008),
+ q(3003),
q(0),
],
q(istro romanian) => [
- q(5870),
+ q(5859),
q(0),
],
q(isu (fako division)) => [
- q(6356),
+ q(6345),
q(0),
],
q(isu (menchum division)) => [
- q(3009),
+ q(3004),
q(0),
],
q(italian) => [
@@ -35430,7 +35385,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(italian sign language) => [
- q(2999),
+ q(2994),
q(0),
],
q(italic languages) => [
@@ -35438,51 +35393,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(itawit) => [
- q(3020),
+ q(3016),
q(0),
],
q(itelmen) => [
- q(3014),
+ q(3010),
q(0),
],
q(itene) => [
- q(3011),
+ q(3007),
q(0),
],
q(iteri) => [
- q(3017),
+ q(3013),
q(0),
],
q(itik) => [
- q(3022),
+ q(3018),
q(0),
],
q(ito) => [
- q(3021),
+ q(3017),
q(0),
],
q(itonama) => [
- q(3016),
+ q(3012),
q(0),
],
q(itu mbon uzo) => [
- q(3015),
+ q(3011),
q(0),
],
q(itundujia mixtec) => [
- q(4157),
+ q(4148),
q(0),
],
q(itza) => [
- q(3024),
+ q(3020),
q(0),
],
q(iu mien) => [
- q(3025),
+ q(3021),
q(0),
],
q(ivatan) => [
- q(3027),
+ q(3023),
q(0),
],
q(ivbie north-okpela-arhe) => [
@@ -35490,95 +35445,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(iwaidja) => [
- q(2889),
+ q(2883),
q(0),
],
q(iwal) => [
- q(3195),
+ q(3192),
q(0),
],
q(iwam) => [
- q(3029),
+ q(3025),
q(0),
],
q(iwur) => [
- q(3030),
+ q(3026),
q(0),
],
q(ixcatec) => [
- q(3032),
+ q(3028),
q(0),
],
q(ixcatlan mazatec) => [
- q(4701),
+ q(4693),
q(0),
],
q(ixil) => [
- q(3033),
+ q(3029),
q(0),
],
q(ixtayutla mixtec) => [
- q(7027),
+ q(7011),
q(0),
],
q(ixtenco otomi) => [
- q(5333),
+ q(5324),
q(0),
],
q(iyayu) => [
- q(3034),
+ q(3030),
q(0),
],
q(iyive) => [
- q(6878),
+ q(6862),
q(0),
],
q(iyo) => [
- q(4762),
+ q(4753),
q(0),
],
q(iyo'wujwa chorote) => [
- q(1857),
+ q(1851),
q(0),
],
q(iyojwa'ja chorote) => [
- q(1860),
+ q(1854),
q(0),
],
q(izere) => [
- q(3038),
+ q(3034),
q(0),
],
q(izii) => [
- q(3039),
+ q(3035),
q(0),
],
q(izon) => [
- q(2934),
+ q(2928),
q(0),
],
q(izora) => [
- q(1671),
+ q(1667),
q(0),
],
q(jabuti) => [
- q(3066),
+ q(3062),
q(0),
],
q(jad) => [
- q(3071),
+ q(3067),
q(0),
],
q(jadgali) => [
- q(3072),
+ q(3068),
q(0),
],
q(jah hut) => [
- q(3046),
+ q(3042),
q(0),
],
q(jahanka) => [
- q(3043),
+ q(3039),
q(0),
],
q(jair awyu) => [
@@ -35586,75 +35541,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(jaitmatang) => [
- q(7368),
+ q(7351),
q(0),
],
q(jakalteko) => [
- q(3042),
+ q(3038),
q(1),
],
q(jakati) => [
- q(3055),
+ q(3051),
q(0),
],
q(jakun) => [
- q(3048),
+ q(3044),
q(0),
],
q(jalapa de diaz mazatec) => [
- q(4119),
+ q(4110),
q(0),
],
q(jalkunan) => [
- q(1578),
+ q(1576),
q(0),
],
q(jamaican country sign language) => [
- q(3069),
+ q(3065),
q(0),
],
q(jamaican creole english) => [
- q(3050),
+ q(3046),
q(0),
],
q(jamaican sign language) => [
- q(3115),
+ q(3112),
q(0),
],
q(jamamadi) => [
- q(3040),
+ q(3036),
q(0),
],
q(jambi malay) => [
- q(3057),
+ q(3053),
q(0),
],
q(jamiltepec mixtec) => [
- q(4666),
+ q(4658),
q(0),
],
q(jamsay dogon) => [
- q(2067),
+ q(2060),
q(0),
],
q(jandai) => [
- q(3051),
+ q(3047),
q(0),
],
q(jandavra) => [
- q(3128),
+ q(3125),
q(0),
],
q(jangkang) => [
- q(2069),
+ q(2062),
q(0),
],
q(jangshung) => [
- q(3127),
+ q(3124),
q(0),
],
q(janji) => [
- q(3130),
+ q(3127),
q(0),
],
q(japanese) => [
@@ -35666,23 +35621,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(japanese sign language) => [
- q(3146),
+ q(3143),
q(0),
],
q(japreria) => [
- q(3145),
+ q(3142),
q(0),
],
q(jaqaru) => [
- q(3141),
+ q(3138),
q(0),
],
q(jara) => [
- q(3045),
+ q(3041),
q(0),
],
q(jarai) => [
- q(3142),
+ q(3139),
q(0),
],
q(jarawa (india)) => [
@@ -35690,15 +35645,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(jaru) => [
- q(1983),
+ q(1976),
q(0),
],
q(jauja wanca quechua) => [
- q(5733),
+ q(5722),
q(0),
],
q(jaunsari) => [
- q(3133),
+ q(3130),
q(0),
],
q(javanese) => [
@@ -35706,91 +35661,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(javindo) => [
- q(3165),
+ q(3162),
q(0),
],
q(jawe) => [
- q(3059),
+ q(3055),
q(0),
],
q(jaya) => [
- q(3170),
+ q(3167),
q(0),
],
q(jebero) => [
- q(3074),
+ q(3070),
q(0),
],
q(jeh) => [
- q(3077),
+ q(3073),
q(0),
],
q(jehai) => [
- q(3089),
+ q(3085),
q(0),
],
q(jejueo) => [
- q(3107),
+ q(3103),
q(0),
],
q(jemez) => [
- q(6652),
+ q(6636),
q(0),
],
q(jenaama bozo) => [
- q(1617),
+ q(1615),
q(0),
],
q(jeng) => [
- q(3076),
+ q(3072),
q(0),
],
q(jennu kurumba) => [
- q(7534),
+ q(7516),
q(0),
],
q(jere) => [
- q(3082),
+ q(3078),
q(0),
],
q(jeri kuo) => [
- q(3079),
+ q(3075),
q(0),
],
q(jerriais) => [
- q(5053),
+ q(5044),
q(0),
],
q(jerung) => [
- q(3075),
+ q(3071),
q(0),
],
q(jewish babylonian aramaic (ca. 200-1200 ce)) => [
- q(6603),
+ q(6589),
q(0),
],
q(jewish palestinian aramaic) => [
- q(3140),
+ q(3137),
q(0),
],
q(jhankot sign language) => [
- q(3090),
+ q(3086),
q(0),
],
q(jiamao) => [
- q(3101),
+ q(3097),
q(0),
],
q(jiarong) => [
- q(3168),
+ q(3165),
q(0),
],
q(jiba) => [
- q(3157),
+ q(3154),
q(0),
],
q(jibu) => [
- q(3092),
+ q(3088),
q(0),
],
q(jicarilla apache) => [
@@ -35798,27 +35753,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(jiiddu) => [
- q(3098),
+ q(3094),
q(0),
],
q(jilbe) => [
- q(3095),
+ q(3091),
q(0),
],
q(jilim) => [
- q(3099),
+ q(3095),
q(0),
],
q(jimi (cameroon)) => [
- q(3100),
+ q(3096),
q(0),
],
q(jimi (nigeria)) => [
- q(3120),
+ q(3117),
q(0),
],
q(jina) => [
- q(3091),
+ q(3087),
q(0),
],
q(jingpho) => [
@@ -35826,79 +35781,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(jinyu chinese) => [
- q(1754),
+ q(1750),
q(0),
],
q(jiongnai bunu) => [
- q(5548),
+ q(5540),
q(0),
],
q(jirel) => [
- q(3154),
+ q(3151),
q(0),
],
q(jiru) => [
- q(3143),
+ q(3140),
q(0),
],
q(jita) => [
- q(3103),
+ q(3099),
q(0),
],
q(jju) => [
- q(3177),
+ q(3174),
q(0),
],
q(joba) => [
- q(3134),
+ q(3131),
q(0),
],
q(jofotek-bromnya) => [
- q(3065),
+ q(3061),
q(0),
],
q(jogi) => [
- q(3136),
+ q(3133),
q(0),
],
q(jola-fonyi) => [
- q(2205),
+ q(2200),
q(0),
],
q(jola-kasa) => [
- q(1875),
+ q(1869),
q(0),
],
q(jonkor bourmataguil) => [
- q(3084),
+ q(3080),
q(0),
],
q(jora) => [
- q(3137),
+ q(3134),
q(0),
],
q(jordanian sign language) => [
- q(3138),
+ q(3135),
q(0),
],
q(jorto) => [
- q(3144),
+ q(3141),
q(0),
],
q(jowulu) => [
- q(3139),
+ q(3136),
q(0),
],
q(ju) => [
- q(3162),
+ q(3159),
q(0),
],
q(ju/'hoan) => [
- q(3645),
+ q(3639),
q(0),
],
q(juang) => [
- q(3156),
+ q(3153),
q(0),
],
q(judeo-arabic) => [
@@ -35906,19 +35861,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(judeo-berber) => [
- q(3060),
+ q(3056),
q(0),
],
q(judeo-georgian) => [
- q(3086),
+ q(3082),
q(0),
],
q(judeo-iraqi arabic) => [
- q(7643),
+ q(7625),
q(0),
],
q(judeo-italian) => [
- q(3013),
+ q(3009),
q(0),
],
q(judeo-moroccan arabic) => [
@@ -35930,11 +35885,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(judeo-tat) => [
- q(3073),
+ q(3069),
q(0),
],
q(judeo-tripolitanian arabic) => [
- q(7765),
+ q(7747),
q(0),
],
q(judeo-tunisian arabic) => [
@@ -35942,39 +35897,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(judeo-yemeni arabic) => [
- q(3169),
+ q(3166),
q(0),
],
q(juhoan) => [
- q(3645),
+ q(3639),
q(1),
],
q(jukun takum) => [
- q(3067),
+ q(3063),
q(0),
],
q(juma) => [
- q(3147),
+ q(3144),
q(0),
],
q(jumjum) => [
- q(3155),
+ q(3152),
q(0),
],
q(jumla sign language) => [
- q(3160),
+ q(3157),
q(0),
],
q(jumli) => [
- q(3121),
+ q(3118),
q(0),
],
q(jungle inga) => [
- q(2971),
+ q(2966),
q(0),
],
q(juquila mixe) => [
- q(4663),
+ q(4655),
q(0),
],
q(jur modo) => [
@@ -35982,67 +35937,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(juray) => [
- q(3164),
+ q(3161),
q(0),
],
q(jurchen) => [
- q(3149),
+ q(3146),
q(0),
],
q(juruna) => [
- q(3159),
+ q(3156),
q(0),
],
q(jutish) => [
- q(3161),
+ q(3158),
q(0),
],
q(juwal) => [
- q(4626),
+ q(4618),
q(0),
],
q(juxtlahuaca mixtec) => [
- q(7020),
+ q(7004),
q(0),
],
q(jwira-pepesa) => [
- q(3167),
+ q(3164),
q(0),
],
q(k'iche') => [
- q(5681),
+ q(5670),
q(0),
],
q(kaamba) => [
- q(7388),
+ q(7370),
q(0),
],
q(kaan) => [
- q(3854),
+ q(3845),
q(0),
],
q(kaang chin) => [
- q(1758),
+ q(1754),
q(0),
],
q(kaansa) => [
- q(2567),
+ q(2563),
q(0),
],
q(kaapor) => [
- q(6927),
+ q(6911),
q(1),
],
q(kaapor sign language) => [
- q(6886),
+ q(6870),
q(1),
],
q(kaba) => [
- q(3609),
+ q(3604),
q(0),
],
q(kabalai) => [
- q(3672),
+ q(3666),
q(0),
],
q(kabardian) => [
@@ -36050,47 +36005,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kabatei) => [
- q(7383),
- q(0),
- ],
- q(kabixi) => [
- q(7306),
+ q(7365),
q(0),
],
q(kabiye) => [
- q(3198),
+ q(3195),
q(0),
],
q(kabola) => [
- q(3454),
+ q(3450),
q(0),
],
q(kabore one) => [
- q(5273),
+ q(5264),
q(0),
],
q(kabras) => [
- q(3940),
+ q(3931),
q(0),
],
q(kaburi) => [
- q(6880),
+ q(6864),
q(0),
],
q(kabutra) => [
- q(3203),
+ q(3200),
q(0),
],
q(kabuverdianu) => [
- q(3257),
+ q(3254),
q(0),
],
q(kabwa) => [
- q(1924),
+ q(1917),
q(0),
],
q(kabwari) => [
- q(3231),
+ q(3228),
q(0),
],
q(kabyle) => [
@@ -36098,19 +36049,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kachama-ganjule) => [
- q(3232),
+ q(3229),
q(0),
],
q(kachari) => [
- q(7274),
+ q(7259),
q(0),
],
- q(kachchi) => [
- q(3300),
+ q(kachhi) => [
+ q(3297),
q(0),
],
q(kachi koli) => [
- q(2533),
+ q(2528),
q(0),
],
q(kachin) => [
@@ -36118,71 +36069,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kacipo-balesi) => [
- q(3508),
+ q(3504),
q(0),
],
q(kaco') => [
- q(7379),
+ q(7361),
q(0),
],
q(kadai) => [
- q(3771),
+ q(3764),
q(0),
],
q(kadar) => [
- q(3266),
+ q(3263),
q(0),
],
q(kadaru) => [
- q(3252),
+ q(3249),
+ q(0),
+ ],
+ q(kadazan dusun) => [
+ q(2158),
q(0),
],
q(kadiweu) => [
- q(3187),
+ q(3184),
q(0),
],
q(kadu) => [
- q(7860),
+ q(7842),
q(0),
],
q(kaduo) => [
- q(3635),
+ q(3630),
+ q(0),
+ ],
+ q(kaera) => [
+ q(3105),
q(0),
],
q(kafa) => [
- q(3200),
+ q(3197),
q(0),
],
q(kafoa) => [
- q(3542),
+ q(3537),
q(0),
],
q(kagan kalagan) => [
- q(3440),
+ q(3436),
q(0),
],
q(kagate) => [
- q(6344),
+ q(6333),
q(0),
],
q(kagayanen) => [
- q(1716),
+ q(1712),
q(0),
],
q(kagoma) => [
- q(3246),
+ q(3243),
q(0),
],
q(kagoro) => [
- q(7375),
+ q(7358),
q(0),
],
q(kagulu) => [
- q(3411),
+ q(3407),
q(0),
],
q(kahe) => [
- q(2767),
+ q(2762),
q(0),
],
q(kahua) => [
@@ -36190,119 +36149,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kaian) => [
- q(3228),
+ q(3225),
q(0),
],
q(kaibobo) => [
- q(3769),
+ q(3762),
q(0),
],
q(kaidipang) => [
- q(3782),
+ q(3774),
q(0),
],
q(kaiep) => [
- q(3205),
+ q(3202),
q(0),
],
q(kaikadi) => [
- q(3272),
+ q(3269),
q(0),
],
q(kaikavian literary language) => [
- q(3399),
+ q(3395),
q(0),
],
q(kaike) => [
- q(3783),
+ q(3775),
q(0),
],
q(kaiku) => [
- q(3419),
+ q(3415),
q(0),
],
q(kaimbe) => [
- q(7278),
+ q(7263),
q(0),
],
q(kaimbulawa) => [
- q(7858),
+ q(7840),
q(0),
],
q(kaingang) => [
- q(3323),
+ q(3319),
q(0),
],
q(kairak) => [
- q(1761),
+ q(1757),
q(0),
],
q(kairiru) => [
- q(3718),
+ q(3711),
q(0),
],
q(kairui-midiki) => [
- q(3576),
+ q(3571),
q(0),
],
q(kais) => [
- q(3779),
+ q(3771),
q(0),
],
q(kaivi) => [
- q(3213),
+ q(3210),
q(0),
],
q(kaiwa) => [
- q(3318),
+ q(3314),
q(0),
],
q(kaiy) => [
- q(6420),
+ q(6409),
q(0),
],
q(kajakse) => [
- q(1760),
+ q(1756),
q(0),
],
q(kajali) => [
- q(7378),
+ q(7360),
q(0),
],
q(kajaman) => [
- q(3174),
+ q(3171),
q(0),
],
q(kakabai) => [
- q(3553),
+ q(3548),
q(0),
],
q(kakabe) => [
- q(3407),
+ q(3403),
q(0),
],
q(kakanda) => [
- q(3403),
+ q(3399),
q(0),
],
q(kaki ae) => [
- q(6383),
+ q(6372),
q(0),
],
q(kako) => [
- q(3412),
+ q(3408),
q(0),
],
q(kakwa) => [
- q(3271),
+ q(3268),
q(0),
],
q(kala) => [
- q(3220),
+ q(3217),
q(1),
],
q(kala lagaw ya) => [
- q(4637),
+ q(4629),
q(0),
],
q(kalaallisut) => [
@@ -36310,79 +36269,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kalaamaya) => [
- q(3948),
+ q(3939),
q(0),
],
q(kalabakan) => [
- q(3671),
+ q(3665),
q(0),
],
q(kalabari) => [
- q(2937),
+ q(2931),
q(0),
],
q(kalabra) => [
- q(3792),
+ q(3783),
q(0),
],
q(kalagan) => [
- q(3552),
+ q(3547),
q(0),
],
q(kalaktang monpa) => [
- q(3408),
+ q(3404),
q(0),
],
q(kalam) => [
- q(3461),
+ q(3457),
q(0),
],
q(kalami) => [
- q(2681),
+ q(2676),
q(0),
],
q(kalamse) => [
- q(3504),
+ q(3500),
q(0),
],
q(kalanadi) => [
- q(7148),
+ q(7132),
q(0),
],
q(kalanga) => [
- q(3219),
+ q(3216),
+ q(0),
+ ],
+ q(kalanguya) => [
+ q(3175),
q(0),
],
q(kalao) => [
- q(3453),
+ q(3449),
q(0),
],
q(kalapuya) => [
- q(3753),
+ q(3746),
q(0),
],
q(kalarko) => [
- q(3185),
+ q(3182),
q(0),
],
q(kalasha) => [
- q(3447),
+ q(3443),
q(0),
],
q(kalenjin) => [
- q(3442),
+ q(3438),
q(0),
],
q(kalispel-pend d'oreille) => [
- q(2353),
+ q(2349),
q(0),
],
q(kalkoti) => [
- q(7369),
+ q(7352),
q(0),
],
q(kalkutung) => [
- q(3626),
+ q(3621),
q(0),
],
q(kalmyk) => [
@@ -36390,11 +36353,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kalo finnish romani) => [
- q(5810),
+ q(5799),
q(0),
],
q(kalou) => [
- q(7785),
+ q(7767),
q(0),
],
q(kaluli) => [
@@ -36402,247 +36365,243 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kalumpang) => [
- q(3437),
+ q(3433),
q(0),
],
q(kam) => [
- q(3254),
+ q(3251),
q(0),
],
q(kamakan) => [
- q(7011),
+ q(6995),
q(0),
],
q(kamang) => [
- q(7203),
+ q(7187),
q(0),
],
q(kamano) => [
- q(3199),
+ q(3196),
q(0),
],
q(kamantan) => [
- q(3217),
+ q(3214),
q(0),
],
q(kamar) => [
- q(3273),
+ q(3270),
q(0),
],
q(kamara) => [
- q(3123),
+ q(3120),
q(0),
],
q(kamarian) => [
- q(3790),
+ q(3781),
q(0),
],
q(kamaru) => [
- q(3331),
+ q(3327),
q(0),
],
q(kamas) => [
- q(7286),
+ q(7272),
q(0),
],
q(kamasa) => [
- q(3444),
+ q(3440),
q(0),
],
q(kamasau) => [
- q(3472),
+ q(3468),
q(0),
],
q(kamayo) => [
- q(3752),
+ q(3745),
q(0),
],
q(kamayura) => [
- q(3184),
+ q(3181),
q(0),
],
q(kamba) => [
q(0212),
q(0),
],
- q(kamba (brazil)) => [
- q(7292),
- q(0),
- ],
q(kamba (kenya)) => [
q(0212),
q(1),
],
q(kambaata) => [
- q(3621),
+ q(3616),
q(0),
],
q(kambaira) => [
- q(3766),
+ q(3759),
q(0),
],
q(kambera) => [
- q(7304),
+ q(7289),
q(0),
],
q(kamberau) => [
- q(2994),
+ q(2989),
q(0),
],
q(kambiwa) => [
- q(7305),
+ q(7290),
q(0),
],
q(kami (nigeria)) => [
- q(3462),
+ q(3458),
q(0),
],
q(kami (tanzania)) => [
- q(3229),
+ q(3226),
q(0),
],
q(kamo) => [
- q(3225),
+ q(3222),
q(0),
],
q(kamoro) => [
- q(3324),
+ q(3320),
q(0),
],
q(kamta) => [
- q(5803),
+ q(5792),
q(1),
],
q(kamu) => [
- q(7426),
+ q(7408),
q(0),
],
q(kamula) => [
- q(7394),
+ q(7376),
q(0),
],
q(kamviri) => [
- q(7544),
+ q(7526),
q(0),
],
q(kamwe) => [
- q(2757),
+ q(2752),
q(0),
],
q(kanakanabu) => [
- q(7433),
+ q(7415),
q(0),
],
q(kanamari) => [
- q(3491),
+ q(3487),
q(0),
],
q(kanan) => [
- q(7864),
+ q(7846),
q(0),
],
q(kanashi) => [
- q(7441),
+ q(7423),
q(0),
],
q(kanasi) => [
- q(6169),
+ q(6159),
q(0),
],
q(kanauji) => [
- q(1239),
+ q(1238),
q(0),
],
q(kandas) => [
- q(3570),
+ q(3565),
q(0),
],
q(kandawo) => [
- q(2409),
+ q(2406),
q(0),
],
q(kande) => [
- q(3201),
+ q(3198),
q(0),
],
q(kanembu) => [
- q(3194),
+ q(3191),
q(0),
],
q(kang) => [
- q(3757),
+ q(3750),
q(0),
],
q(kanga) => [
- q(3224),
+ q(3221),
q(0),
],
q(kangean) => [
- q(3424),
+ q(3420),
q(0),
],
q(kanggape) => [
- q(2924),
+ q(2918),
q(0),
],
q(kangjia) => [
- q(3734),
+ q(3727),
q(0),
],
q(kango (bas-uele district)) => [
- q(3644),
+ q(3638),
q(0),
],
q(kango (tshopo district)) => [
- q(3791),
+ q(3782),
q(0),
],
q(kangri) => [
- q(7440),
+ q(7422),
q(0),
],
q(kaniet) => [
- q(3630),
+ q(3625),
q(0),
],
q(kanikkaran) => [
- q(3278),
+ q(3275),
q(0),
],
q(kaningdon-nindem) => [
- q(3248),
+ q(3245),
q(0),
],
q(kaningi) => [
- q(3781),
+ q(3773),
q(0),
],
q(kaningra) => [
- q(3496),
+ q(3492),
q(0),
],
q(kaninuwa) => [
- q(7071),
+ q(7055),
q(0),
],
q(kanite) => [
- q(3474),
+ q(3470),
q(0),
],
q(kanjari) => [
- q(3302),
+ q(3299),
q(0),
],
q(kanjobal) => [
- q(3379),
+ q(3375),
q(1),
],
q(kanju) => [
- q(3188),
+ q(3185),
q(0),
],
q(kankanaey) => [
- q(3484),
+ q(3480),
q(0),
],
q(kannada) => [
@@ -36650,31 +36609,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kannada kurumba) => [
- q(3291),
+ q(3288),
q(0),
],
q(kanoe) => [
- q(3730),
+ q(3723),
q(0),
],
q(kanowit-tanjong melanau) => [
- q(3729),
+ q(3722),
q(0),
],
q(kansa) => [
- q(3604),
+ q(3599),
q(0),
],
q(kantosi) => [
- q(7387),
+ q(7369),
q(0),
],
q(kanu) => [
- q(3352),
+ q(3348),
q(0),
],
q(kanufi) => [
- q(3487),
+ q(3483),
q(0),
],
q(kanuri) => [
@@ -36682,19 +36641,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kanyok) => [
- q(3503),
+ q(3499),
q(0),
],
q(kao) => [
- q(3183),
+ q(3180),
q(0),
],
q(kaonde) => [
- q(3561),
+ q(3556),
q(0),
],
q(kap) => [
- q(7669),
+ q(7651),
q(0),
],
q(kapampangan) => [
@@ -36702,55 +36661,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(kapauri) => [
- q(3344),
+ q(3340),
q(1),
],
q(kapin) => [
- q(6402),
+ q(6391),
q(0),
],
q(kapinawa) => [
- q(7465),
+ q(7447),
q(0),
],
q(kapingamarangi) => [
- q(3529),
+ q(3524),
q(0),
],
q(kapori) => [
- q(3344),
+ q(3340),
q(0),
],
q(kapriman) => [
- q(2071),
+ q(2064),
q(0),
],
q(kaptiau) => [
- q(3191),
+ q(3188),
q(0),
],
q(kapya) => [
- q(3443),
+ q(3439),
q(0),
],
q(kaqchikel) => [
- q(1647),
+ q(1645),
q(0),
],
q(kara (central african republic)) => [
- q(3175),
+ q(3172),
q(0),
],
q(kara (korea)) => [
- q(7941),
+ q(7923),
q(0),
],
q(kara (papua new guinea)) => [
- q(3879),
+ q(3870),
q(0),
],
q(kara (tanzania)) => [
- q(5767),
+ q(5756),
q(0),
],
q(kara-kalpak) => [
@@ -36762,79 +36721,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(karadjeri) => [
- q(2422),
+ q(2419),
q(0),
],
q(karagas) => [
- q(3366),
- q(0),
- ],
- q(karahawyana) => [
- q(7376),
+ q(3362),
q(0),
],
q(karaim) => [
- q(3250),
+ q(3247),
q(0),
],
q(karaja) => [
- q(3532),
+ q(3527),
q(0),
],
q(karakhanid) => [
- q(7474),
+ q(7456),
q(0),
],
q(karami) => [
- q(7285),
+ q(7271),
q(0),
],
q(karamojong) => [
- q(3243),
+ q(3240),
q(0),
],
q(karang) => [
- q(3784),
+ q(3776),
q(0),
],
q(karanga) => [
- q(3627),
+ q(3622),
q(0),
],
q(karankawa) => [
- q(7863),
+ q(7845),
q(0),
],
q(karao) => [
- q(3751),
+ q(3744),
q(0),
],
q(karas) => [
- q(3329),
+ q(3325),
q(0),
],
q(karata) => [
- q(3541),
+ q(3536),
q(0),
],
q(karawa) => [
- q(7488),
+ q(7470),
q(0),
],
q(karbi) => [
- q(4340),
+ q(4332),
q(0),
],
q(kare (central african republic)) => [
- q(3196),
+ q(3193),
q(0),
],
q(kare (papua new guinea)) => [
- q(3459),
+ q(3455),
q(0),
],
q(karekare) => [
- q(3176),
+ q(3173),
q(0),
],
q(karelian) => [
@@ -36846,55 +36801,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(karenggapa) => [
- q(2212),
+ q(2207),
q(0),
],
q(karey) => [
- q(3745),
+ q(3738),
q(0),
],
q(kari) => [
- q(3192),
+ q(3189),
q(0),
],
q(karingani) => [
- q(3321),
+ q(3317),
q(0),
],
q(karipuna) => [
- q(3320),
+ q(3316),
q(0),
],
q(karipuna creole french) => [
- q(3475),
+ q(3471),
q(0),
],
q(kariri-xoco) => [
- q(3789),
+ q(3780),
q(0),
],
q(karitiana) => [
- q(3633),
+ q(3628),
q(0),
],
q(kariya) => [
- q(3365),
+ q(3361),
q(0),
],
q(kariyarra) => [
- q(7006),
+ q(6990),
q(0),
],
q(karkar-yuri) => [
- q(7770),
+ q(7752),
q(0),
],
q(karkin) => [
- q(3575),
+ q(3570),
q(0),
],
q(karko) => [
- q(3417),
+ q(3413),
q(0),
],
q(karnai) => [
@@ -36906,43 +36861,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(karo (ethiopia)) => [
- q(3723),
+ q(3716),
q(0),
],
q(karok) => [
- q(3749),
+ q(3742),
q(0),
],
q(karon) => [
- q(3591),
+ q(3586),
q(0),
],
q(karon dori) => [
- q(3330),
+ q(3326),
q(0),
],
q(karore) => [
- q(7391),
+ q(7373),
q(0),
],
q(karranga) => [
- q(7484),
+ q(7466),
q(0),
],
q(karuwali) => [
- q(5882),
+ q(5871),
q(0),
],
q(kasanga) => [
- q(1686),
+ q(1682),
q(0),
],
q(kasem) => [
- q(7497),
+ q(7479),
q(0),
],
q(kashaya) => [
- q(3398),
+ q(3394),
q(0),
],
q(kashmiri) => [
@@ -36954,123 +36909,119 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kasiguranin) => [
- q(3607),
+ q(3602),
q(0),
],
q(kaska) => [
- q(3428),
+ q(3424),
q(0),
],
q(kaskean) => [
- q(7948),
- q(0),
- ],
- q(kasseng) => [
- q(3311),
+ q(7930),
q(0),
],
q(kasua) => [
- q(3347),
+ q(3343),
q(0),
],
q(kataang) => [
- q(3312),
+ q(3308),
q(0),
],
q(katabaga) => [
- q(3636),
+ q(3631),
q(0),
],
q(katawixi) => [
- q(7287),
+ q(7273),
q(0),
],
q(katbol) => [
- q(6588),
+ q(6575),
q(0),
],
q(katcha-kadugli-miri) => [
- q(7509),
+ q(7491),
q(0),
],
q(kate) => [
- q(3460),
+ q(3456),
q(0),
],
q(kathoriya tharu) => [
- q(6560),
+ q(6547),
q(0),
],
q(kathu) => [
- q(7673),
+ q(7655),
q(0),
],
q(kati) => [
- q(1453),
+ q(1452),
q(0),
],
q(katkari) => [
- q(3303),
+ q(3300),
q(0),
],
q(katla) => [
- q(3226),
+ q(3223),
q(0),
],
q(kato) => [
- q(3642),
+ q(3636),
q(0),
],
q(katso) => [
- q(3173),
+ q(3170),
q(0),
],
q(katua) => [
- q(3620),
+ q(3615),
q(0),
],
q(katukina) => [
- q(3182),
+ q(3179),
q(0),
],
q(kaulong) => [
- q(5623),
+ q(5612),
q(0),
],
q(kaur) => [
- q(7009),
+ q(6993),
q(0),
],
q(kaure) => [
- q(1387),
+ q(1386),
q(0),
],
q(kaurna) => [
- q(7869),
+ q(7851),
q(0),
],
q(kauwera) => [
- q(7288),
+ q(7274),
q(0),
],
q(kavalan) => [
- q(1765),
+ q(1761),
q(0),
],
q(kavet) => [
- q(3589),
+ q(3584),
q(0),
],
q(kawacha) => [
- q(3210),
+ q(3207),
q(0),
],
q(kawaiisu) => [
- q(7290),
+ q(7276),
q(0),
],
q(kawe) => [
- q(3310),
+ q(3307),
q(0),
],
q(kawi) => [
@@ -37078,67 +37029,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kaxarari) => [
- q(3643),
+ q(3637),
q(0),
],
q(kaxuiana) => [
- q(3186),
+ q(3183),
q(0),
],
q(kayabi) => [
- q(3767),
+ q(3760),
q(0),
],
q(kayagar) => [
- q(3761),
+ q(3754),
q(0),
],
q(kayan) => [
- q(5403),
+ q(5395),
q(0),
],
q(kayan mahakam) => [
- q(7291),
+ q(7277),
q(0),
],
q(kayan river kayan) => [
- q(7381),
+ q(7363),
q(0),
],
q(kayapa kallahan) => [
- q(3178),
- q(0),
+ q(3175),
+ q(1),
],
q(kayapo) => [
- q(6827),
+ q(6811),
q(0),
],
q(kayardild) => [
- q(2697),
+ q(2692),
q(0),
],
q(kayaw) => [
- q(3678),
+ q(3672),
q(0),
],
q(kayeli) => [
- q(3778),
+ q(3770),
q(0),
],
q(kayong) => [
- q(3740),
+ q(3733),
q(0),
],
q(kayort) => [
- q(3763),
+ q(3756),
q(0),
],
q(kaytetye) => [
- q(2421),
+ q(2418),
q(0),
],
q(kayupulau) => [
- q(3787),
+ q(3778),
q(0),
],
q(kazakh) => [
@@ -37146,323 +37097,323 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kazukuru) => [
- q(3777),
+ q(3769),
q(0),
],
q(ke'o) => [
- q(7561),
+ q(7543),
q(0),
],
q(keak) => [
- q(3264),
+ q(3261),
q(0),
],
q(keapara) => [
- q(3354),
+ q(3350),
q(0),
],
q(kedah malay) => [
- q(4214),
+ q(4205),
q(0),
],
q(kedang) => [
- q(3617),
+ q(3612),
q(0),
],
q(keder) => [
- q(3255),
+ q(3252),
q(0),
],
q(kehu) => [
- q(3339),
+ q(3335),
q(0),
],
q(kei) => [
- q(3265),
+ q(3262),
q(0),
],
q(keiga) => [
- q(3259),
+ q(3256),
q(0),
],
q(keijar) => [
- q(3255),
+ q(3252),
q(1),
],
q(kein) => [
- q(1310),
+ q(1309),
q(0),
],
q(keiyo) => [
- q(2319),
+ q(2315),
q(0),
],
q(kekchi) => [
- q(3267),
+ q(3264),
q(0),
],
q(kela (democratic republic of congo)) => [
- q(3268),
+ q(3265),
q(0),
],
q(kela (papua new guinea)) => [
- q(3220),
+ q(3217),
q(0),
],
q(kelabit) => [
- q(3775),
+ q(3768),
q(0),
],
q(kele) => [
- q(3258),
+ q(3255),
q(0),
],
q(kele (democratic republic of congo)) => [
- q(3353),
+ q(3349),
q(0),
],
q(kele (papua new guinea)) => [
- q(5904),
+ q(5894),
q(0),
],
q(kelengazxo bozo) => [
- q(1636),
+ q(1634),
q(0),
],
q(keley-i kallahan) => [
- q(2919),
+ q(2913),
q(0),
],
q(keliko) => [
- q(3197),
+ q(3194),
q(0),
],
q(kelo) => [
- q(7331),
+ q(7315),
q(0),
],
q(kelon) => [
- q(3756),
+ q(3749),
q(0),
],
q(kemak) => [
- q(3269),
+ q(3266),
q(0),
],
q(kembayan) => [
- q(7332),
+ q(7316),
q(0),
],
q(kemberano) => [
- q(1628),
+ q(1626),
q(0),
],
q(kembra) => [
- q(7390),
+ q(7372),
q(0),
],
q(kemedzung) => [
- q(2091),
+ q(2084),
q(0),
],
q(kemi sami) => [
- q(6060),
+ q(6050),
q(0),
],
q(kemiehua) => [
- q(3292),
+ q(3289),
q(0),
],
q(kemtuik) => [
- q(3473),
+ q(3469),
q(0),
],
q(kenaboi) => [
- q(7301),
+ q(7286),
q(0),
],
q(kenati) => [
- q(2416),
+ q(2413),
q(0),
],
q(kendayan) => [
- q(3502),
+ q(3498),
q(0),
],
q(kendeje) => [
- q(3434),
+ q(3430),
q(0),
],
q(kendem) => [
- q(3679),
+ q(3673),
q(0),
],
q(kenga) => [
- q(3758),
+ q(3751),
q(0),
],
q(keningau murut) => [
- q(3724),
+ q(3717),
q(0),
],
q(keninjal) => [
- q(3490),
+ q(3486),
q(0),
],
q(kensiu) => [
- q(3497),
+ q(3493),
q(0),
],
q(kenswei nsei) => [
- q(4785),
+ q(4776),
q(0),
],
q(kenyan sign language) => [
- q(7377),
+ q(7359),
q(0),
],
q(kenyang) => [
- q(3270),
+ q(3267),
q(0),
],
q(kenyi) => [
- q(3943),
+ q(3934),
q(0),
],
q(kenzi) => [
- q(7445),
+ q(7427),
q(0),
],
q(keoru-ahia) => [
- q(7337),
+ q(7321),
q(0),
],
q(kepkiriwat) => [
- q(3536),
+ q(3531),
q(0),
],
q(kepo') => [
- q(3655),
+ q(3649),
q(0),
],
q(kera) => [
- q(3274),
+ q(3271),
q(0),
],
q(kerak) => [
- q(2751),
+ q(2746),
q(0),
],
q(kereho) => [
- q(7373),
+ q(7356),
q(0),
],
q(kerek) => [
- q(3582),
+ q(3577),
q(0),
],
q(kerewe) => [
- q(3260),
+ q(3257),
q(0),
],
q(kerewo) => [
- q(3741),
+ q(3734),
q(0),
],
q(kerinci) => [
- q(3684),
+ q(3678),
q(0),
],
q(kesawai) => [
- q(7335),
+ q(7319),
q(0),
],
q(ket) => [
- q(3276),
+ q(3273),
q(0),
],
q(ketangalan) => [
- q(3172),
+ q(3169),
q(0),
],
q(kete) => [
- q(3230),
+ q(3227),
q(0),
],
q(ketengban) => [
- q(7511),
+ q(7493),
q(0),
],
q(ketum) => [
- q(3639),
+ q(3633),
q(0),
],
q(keyagana) => [
- q(3748),
+ q(3741),
q(0),
],
q(kgalagadi) => [
- q(7389),
+ q(7371),
q(0),
],
q(khakas) => [
- q(3385),
+ q(3381),
q(0),
],
q(khalaj) => [
- q(3383),
+ q(3379),
q(0),
],
q(khaling) => [
- q(3446),
+ q(3442),
q(0),
],
q(khamba) => [
- q(3189),
+ q(3186),
q(0),
],
q(khams tibetan) => [
- q(3338),
+ q(3334),
q(0),
],
q(khamti) => [
- q(3348),
+ q(3344),
q(0),
],
q(khamyang) => [
- q(3614),
+ q(3609),
q(0),
],
q(khana) => [
- q(5212),
+ q(5203),
q(0),
],
q(khandesi) => [
- q(3343),
+ q(3339),
q(0),
],
q(khang) => [
- q(3390),
+ q(3386),
q(0),
],
q(khanty) => [
- q(3209),
+ q(3206),
q(0),
],
q(khao) => [
- q(7282),
+ q(7268),
q(0),
],
q(kharam naga) => [
- q(3305),
+ q(3302),
q(0),
],
q(kharia) => [
- q(3346),
+ q(3342),
q(0),
],
q(kharia thar) => [
- q(3618),
+ q(3613),
q(0),
],
q(khasi) => [
@@ -37470,71 +37421,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(khayo) => [
- q(3950),
+ q(3941),
q(0),
],
q(khazar) => [
- q(7871),
+ q(7853),
q(0),
],
q(khe) => [
- q(3554),
+ q(3549),
q(0),
],
q(khehek) => [
- q(6585),
+ q(6572),
q(0),
],
q(khengkha) => [
- q(7374),
+ q(7357),
q(0),
],
q(khetrani) => [
- q(7353),
+ q(7337),
q(0),
],
q(khezha naga) => [
- q(4929),
+ q(4920),
q(0),
],
q(khiamniungan naga) => [
- q(3375),
+ q(3371),
q(0),
],
q(khinalugh) => [
- q(3387),
+ q(3383),
q(0),
],
q(khirwar) => [
- q(3715),
+ q(3708),
q(0),
],
q(khisa) => [
- q(3560),
+ q(3555),
q(0),
],
q(khlor) => [
- q(3970),
+ q(3961),
q(0),
],
q(khlula) => [
- q(7668),
+ q(7650),
q(0),
],
q(khmu) => [
- q(3384),
+ q(3380),
q(0),
],
q(kho'ini) => [
- q(7371),
+ q(7354),
q(0),
],
q(khoekhoe) => [
- q(4732),
+ q(4723),
q(0),
],
q(khoibu naga) => [
- q(4923),
+ q(4914),
q(0),
],
q(khoisan languages) => [
@@ -37542,19 +37493,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kholok) => [
- q(3622),
+ q(3617),
q(0),
],
q(khonso) => [
- q(3720),
+ q(3713),
q(1),
],
q(khorasani turkish) => [
- q(3479),
+ q(3475),
q(0),
],
q(khorezmian) => [
- q(7862),
+ q(7844),
q(0),
],
q(khotanese) => [
@@ -37562,55 +37513,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(khowar) => [
- q(3351),
+ q(3347),
q(0),
],
q(khua) => [
- q(7357),
+ q(7341),
q(0),
],
q(khuen) => [
- q(3337),
+ q(3333),
q(0),
],
q(khumi chin) => [
- q(1801),
+ q(1797),
q(0),
],
q(khun) => [
- q(3410),
+ q(3406),
q(0),
],
q(khunsari) => [
- q(3295),
+ q(3292),
q(0),
],
q(khvarshi) => [
- q(3350),
+ q(3346),
q(0),
],
q(kibet) => [
- q(3359),
+ q(3355),
q(0),
],
q(kibiri) => [
- q(5597),
+ q(5587),
q(0),
],
q(kickapoo) => [
- q(3357),
+ q(3353),
q(0),
],
q(kiembu) => [
- q(2217),
+ q(2212),
q(1),
],
q(kigiryama) => [
- q(5160),
+ q(5151),
q(1),
],
q(kikai) => [
- q(3774),
+ q(3767),
q(0),
],
q(kikuyu) => [
@@ -37618,43 +37569,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kildin sami) => [
- q(6057),
+ q(6047),
q(0),
],
q(kilivila) => [
- q(3364),
+ q(3360),
q(0),
],
q(kiliwa) => [
- q(3430),
+ q(3426),
q(0),
],
q(kilmeri) => [
- q(3362),
+ q(3358),
q(0),
],
q(kim) => [
- q(3355),
+ q(3351),
q(0),
],
q(kim mun) => [
- q(4326),
+ q(4318),
q(0),
],
q(kimaama) => [
- q(3361),
+ q(3357),
q(0),
],
q(kimaghima) => [
- q(3361),
+ q(3357),
q(1),
],
q(kimaragang) => [
- q(3565),
+ q(3560),
q(0),
],
q(kimbu) => [
- q(3373),
+ q(3369),
q(0),
],
q(kimbundu) => [
@@ -37662,43 +37613,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kimki) => [
- q(5921),
+ q(5911),
q(0),
],
q(kimre) => [
- q(3563),
+ q(3558),
q(0),
],
q(kinabalian) => [
- q(1678),
+ q(1674),
q(0),
],
q(kinalakna) => [
- q(3223),
+ q(3220),
q(0),
],
q(kinamiging manobo) => [
- q(4365),
+ q(4357),
q(0),
],
q(kinaray-a) => [
- q(3581),
+ q(3576),
q(0),
],
q(kinga) => [
- q(7839),
+ q(7821),
q(0),
],
q(kinnauri) => [
- q(3293),
+ q(3290),
q(0),
],
q(kintaq) => [
- q(3495),
+ q(3491),
q(0),
],
q(kinuku) => [
- q(3406),
+ q(3402),
q(0),
],
q(kinyarwanda) => [
@@ -37706,19 +37657,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kioko) => [
- q(6868),
+ q(6852),
q(0),
],
q(kiong) => [
- q(3415),
+ q(3411),
q(0),
],
q(kiorr) => [
- q(7382),
+ q(7364),
q(0),
],
q(kiowa) => [
- q(3367),
+ q(3363),
q(0),
],
q(kiowa apache) => [
@@ -37726,19 +37677,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kipfokomo) => [
- q(5475),
+ q(5468),
q(1),
],
q(kipsigis) => [
- q(5992),
+ q(5982),
q(0),
],
q(kiput) => [
- q(3750),
+ q(3743),
q(0),
],
q(kir-balar) => [
- q(3420),
+ q(3416),
q(0),
],
q(kirdki) => [
@@ -37746,7 +37697,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(kire) => [
- q(2474),
+ q(2471),
q(0),
],
q(kirghiz) => [
@@ -37754,11 +37705,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kirike) => [
- q(5238),
+ q(5229),
q(0),
],
q(kirikiri) => [
- q(3376),
+ q(3372),
q(0),
],
q(kirmanjki) => [
@@ -37766,7 +37717,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(4),
],
q(kirmanjki (individual language)) => [
- q(3372),
+ q(3368),
q(0),
],
q(kirmanjki (macrolanguage)) => [
@@ -37774,91 +37725,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(7),
],
q(kirya-konzel) => [
- q(2351),
+ q(2347),
q(0),
],
q(kis) => [
- q(3370),
+ q(3366),
q(0),
],
q(kisa) => [
- q(3952),
+ q(3943),
q(0),
],
q(kisan) => [
- q(7364),
+ q(7347),
q(0),
],
q(kisankasa) => [
- q(3555),
+ q(3550),
q(0),
],
q(kisar) => [
- q(3382),
+ q(3378),
q(0),
],
q(kisi) => [
- q(3377),
+ q(3373),
q(0),
],
q(kistane) => [
- q(2626),
+ q(2622),
q(0),
],
q(kiswahili) => [
- q(6304),
+ q(6293),
q(1),
],
q(kita maninkakan) => [
- q(4633),
+ q(4625),
q(0),
],
q(kitan) => [
- q(7868),
+ q(7850),
q(0),
],
q(kitharaka) => [
- q(6503),
+ q(6491),
q(1),
],
q(kitja) => [
- q(2514),
+ q(2509),
q(0),
],
q(kitsai) => [
- q(3363),
+ q(3359),
q(0),
],
q(kituba (congo)) => [
- q(4364),
+ q(4356),
q(0),
],
q(kituba (democratic republic of congo)) => [
- q(3640),
+ q(3634),
q(0),
],
q(kiunum) => [
- q(7106),
+ q(7090),
q(0),
],
q(kiwilwana) => [
- q(4376),
+ q(4368),
q(1),
],
q(kla-dan) => [
- q(3846),
+ q(3837),
q(0),
],
q(klamath-modoc) => [
- q(3429),
+ q(3425),
q(0),
],
q(klao) => [
- q(3449),
+ q(3445),
q(0),
],
q(klias river kadazan) => [
- q(3567),
+ q(3562),
q(0),
],
q(klingon) => [
@@ -37866,103 +37817,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(knaanic) => [
- q(1934),
+ q(1927),
q(0),
],
q(ko) => [
- q(2387),
+ q(2384),
q(0),
],
q(koalib) => [
- q(3356),
+ q(3352),
q(0),
],
q(koasati) => [
- q(1764),
+ q(1760),
q(0),
],
q(koba) => [
- q(3527),
+ q(3522),
q(0),
],
q(kobiana) => [
- q(3218),
+ q(3215),
q(0),
],
q(kobol) => [
- q(3328),
+ q(3324),
q(0),
],
q(kobon) => [
- q(3544),
+ q(3539),
q(0),
],
q(koch) => [
- q(3249),
+ q(3246),
q(0),
],
q(kochila tharu) => [
- q(6508),
+ q(6496),
q(0),
],
q(koda) => [
- q(1705),
+ q(1701),
q(0),
],
q(kodaku) => [
- q(3619),
+ q(3614),
q(0),
],
q(kodava) => [
- q(3283),
+ q(3280),
q(0),
],
q(kodeoha) => [
- q(7012),
+ q(6996),
q(0),
],
q(kodi) => [
- q(3507),
+ q(3503),
q(0),
],
q(kodia) => [
- q(3708),
+ q(3701),
q(0),
],
q(koenoem) => [
- q(3227),
+ q(3224),
q(0),
],
q(kofa) => [
- q(3608),
+ q(3603),
q(0),
],
q(kofei) => [
- q(3531),
+ q(3526),
q(0),
],
q(kofyar) => [
- q(3704),
+ q(3697),
q(0),
],
q(kogi) => [
- q(3510),
+ q(3506),
q(1),
],
q(koguryo) => [
- q(7861),
+ q(7843),
q(0),
],
q(kohin) => [
- q(3426),
+ q(3422),
q(0),
],
q(kohistani shina) => [
- q(5494),
+ q(5487),
q(0),
],
q(koho) => [
- q(3535),
+ q(3530),
q(0),
],
q(kohumono) => [
@@ -37970,123 +37921,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(koi) => [
- q(3422),
+ q(3418),
q(0),
],
q(koibal) => [
- q(7859),
+ q(7841),
q(0),
],
q(koireng) => [
- q(4925),
+ q(4916),
q(0),
],
q(koitabu) => [
- q(3556),
+ q(3551),
q(0),
],
q(koiwat) => [
- q(3735),
+ q(3728),
q(0),
],
q(kok borok) => [
- q(6702),
+ q(6686),
q(0),
],
q(kok-nar) => [
- q(2540),
+ q(2536),
q(0),
],
q(kokata) => [
- q(3623),
+ q(3618),
q(0),
],
q(koke) => [
- q(3518),
+ q(3514),
q(0),
],
q(koki naga) => [
- q(5147),
+ q(5138),
q(0),
],
q(koko babangk) => [
- q(5229),
+ q(5220),
q(0),
],
q(kokoda) => [
- q(7447),
+ q(7429),
q(0),
],
q(kokola) => [
- q(3780),
+ q(3772),
q(0),
],
q(kokota) => [
- q(3413),
+ q(3409),
q(0),
],
q(kol) => [
- q(2237),
+ q(2232),
q(1),
],
q(kol (bangladesh)) => [
- q(2237),
+ q(2232),
q(0),
],
q(kol (cameroon)) => [
- q(1227),
+ q(1226),
q(0),
],
q(kol (papua new guinea)) => [
- q(3513),
+ q(3509),
q(0),
],
q(kola) => [
- q(3688),
+ q(3681),
q(0),
],
q(kolbila) => [
- q(3431),
+ q(3427),
q(0),
],
q(kolibugan subanon) => [
- q(6083),
+ q(6073),
q(0),
],
q(kolsch) => [
- q(3601),
+ q(3596),
q(0),
],
q(koluwawa) => [
- q(3452),
+ q(3448),
q(0),
],
q(kom (cameroon)) => [
- q(1265),
+ q(1264),
q(0),
],
q(kom (india)) => [
- q(3466),
+ q(3462),
q(0),
],
q(koma) => [
- q(3478),
+ q(3474),
q(0),
],
q(komba) => [
- q(3528),
+ q(3523),
q(0),
],
q(kombai) => [
- q(6836),
+ q(6820),
q(0),
],
q(kombio) => [
- q(7298),
+ q(7283),
q(0),
],
q(komering) => [
- q(3313),
+ q(3309),
q(0),
],
q(komi) => [
@@ -38094,39 +38045,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(komi-permyak) => [
- q(3512),
+ q(3508),
q(0),
],
q(komi-zyrian) => [
- q(3543),
+ q(3538),
q(0),
],
q(kominimung) => [
- q(7449),
+ q(7431),
q(0),
],
q(komo (democratic republic of congo)) => [
- q(3476),
+ q(3472),
q(0),
],
q(komo (sudan)) => [
- q(7451),
+ q(7433),
q(0),
],
q(komodo) => [
- q(3674),
+ q(3668),
q(0),
],
q(kompane) => [
- q(3682),
+ q(3676),
q(0),
],
q(komyandaret) => [
- q(3788),
+ q(3779),
q(0),
],
q(kon keu) => [
- q(3416),
+ q(3412),
q(0),
],
q(konabere) => [
@@ -38134,19 +38085,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(konai) => [
- q(3738),
+ q(3731),
q(0),
],
q(konda) => [
- q(3483),
+ q(3479),
q(0),
],
q(konda-dora) => [
- q(3285),
+ q(3282),
q(0),
],
q(koneraw) => [
- q(3253),
+ q(3250),
q(0),
],
q(kongo) => [
@@ -38158,7 +38109,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(konkani (individual language)) => [
- q(3492),
+ q(3488),
q(0),
],
q(konkani (macrolanguage)) => [
@@ -38166,83 +38117,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(konkomba) => [
- q(7452),
+ q(7434),
q(0),
],
q(konni) => [
- q(3455),
+ q(3451),
q(0),
],
q(kono (guinea)) => [
- q(3499),
+ q(3495),
q(0),
],
q(kono (nigeria)) => [
- q(3439),
+ q(3435),
q(0),
],
q(kono (sierra leone)) => [
- q(3493),
+ q(3489),
q(0),
],
q(konomala) => [
- q(3505),
+ q(3501),
q(0),
],
q(konongo) => [
- q(3234),
+ q(3231),
q(0),
],
q(konso) => [
- q(3720),
+ q(3713),
q(0),
],
q(konyak naga) => [
- q(4744),
+ q(4735),
q(0),
],
q(konyanka maninka) => [
- q(4362),
+ q(4354),
q(0),
],
q(konzo) => [
- q(3514),
+ q(3510),
q(0),
],
q(koongo) => [
- q(3486),
+ q(3482),
q(0),
],
q(koonzime) => [
- q(5345),
+ q(5337),
q(0),
],
q(koorete) => [
- q(3572),
+ q(3567),
q(0),
],
q(kopar) => [
- q(7454),
+ q(7436),
q(0),
],
q(kopkaka) => [
- q(5289),
+ q(5280),
q(0),
],
q(korafe-yegha) => [
- q(3539),
+ q(3534),
q(0),
],
q(korak) => [
- q(3523),
+ q(3518),
q(0),
],
q(korana) => [
- q(3573),
+ q(3568),
q(0),
],
q(korandje) => [
- q(3233),
+ q(3230),
q(0),
],
q(kordofanian languages) => [
@@ -38254,87 +38205,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(korean sign language) => [
- q(3677),
+ q(3671),
q(0),
],
q(koreguaje) => [
- q(1813),
+ q(1809),
q(0),
],
q(koresh-e rostam) => [
- q(5230),
+ q(5221),
q(0),
],
q(korku) => [
- q(3299),
+ q(3296),
q(0),
],
q(korlai creole portuguese) => [
- q(7013),
+ q(6997),
q(0),
],
q(koro (cote d'ivoire)) => [
- q(3297),
+ q(3294),
q(0),
],
q(koro (india)) => [
- q(3112),
+ q(3109),
q(0),
],
q(koro (papua new guinea)) => [
- q(3733),
+ q(3726),
q(0),
],
q(koro (vanuatu)) => [
- q(3578),
+ q(3573),
q(0),
],
q(koro wachi) => [
- q(1418),
+ q(1417),
q(0),
],
q(koromfe) => [
- q(3308),
+ q(3305),
q(0),
],
q(koromira) => [
- q(3557),
+ q(3552),
q(0),
],
q(koronadal blaan) => [
- q(1389),
+ q(1388),
q(0),
],
q(koroni) => [
- q(7384),
+ q(7366),
q(0),
],
q(korop) => [
- q(3585),
+ q(3580),
q(0),
],
q(koropo) => [
- q(7563),
+ q(7545),
q(0),
],
q(koroshi) => [
- q(3631),
+ q(3626),
q(0),
],
q(korowai) => [
- q(3336),
+ q(3332),
q(0),
],
q(korra koraga) => [
- q(3286),
+ q(3283),
q(0),
],
q(korubo) => [
- q(7455),
+ q(7437),
q(0),
],
q(korupun-sela) => [
- q(3538),
+ q(3533),
q(0),
],
q(korur) => [
@@ -38342,35 +38293,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(korwa) => [
- q(3298),
+ q(3295),
q(0),
],
q(koryak) => [
- q(3546),
+ q(3541),
q(0),
],
q(kosadle) => [
- q(3369),
+ q(3365),
q(0),
],
q(kosare) => [
- q(3369),
+ q(3365),
q(1),
],
q(kosarek yale) => [
- q(3414),
+ q(3410),
q(0),
],
q(kosena) => [
- q(3772),
+ q(3765),
q(0),
],
q(koshin) => [
- q(3358),
+ q(3354),
q(0),
],
q(kosli) => [
- q(6195),
+ q(6185),
q(1),
],
q(kosraean) => [
@@ -38378,27 +38329,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kota (gabon)) => [
- q(3516),
+ q(3512),
q(0),
],
q(kota (india)) => [
- q(3287),
+ q(3284),
q(0),
],
q(kota bangun kutai malay) => [
- q(4486),
+ q(4478),
q(0),
],
q(kota marudu talantang) => [
- q(2620),
- q(0),
- ],
- q(kota marudu tinagas) => [
- q(3637),
+ q(2616),
q(0),
],
q(kotafon gbe) => [
- q(3558),
+ q(3553),
q(0),
],
q(kotava) => [
@@ -38406,87 +38353,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(koti) => [
- q(2239),
+ q(2234),
q(0),
],
q(kott) => [
- q(7865),
+ q(7847),
q(0),
],
q(kouya) => [
- q(3747),
+ q(3740),
q(0),
],
q(kovai) => [
- q(3549),
+ q(3544),
q(0),
],
q(kove) => [
- q(3669),
+ q(3663),
q(0),
],
q(kowaki) => [
- q(7456),
+ q(7438),
q(0),
],
q(kowiai) => [
- q(3700),
+ q(3693),
q(0),
],
q(koy sanjaq surat) => [
- q(3551),
+ q(3546),
q(0),
],
q(koya) => [
- q(3288),
+ q(3285),
q(0),
],
q(koyaga) => [
- q(3309),
+ q(3306),
q(0),
],
q(koyo) => [
- q(3511),
+ q(3507),
q(0),
],
q(koyra chiini songhay) => [
- q(3345),
+ q(3341),
q(0),
],
q(koyraboro senni songhai) => [
- q(5979),
+ q(5969),
q(0),
],
q(koyukon) => [
- q(3522),
+ q(3517),
q(0),
],
q(kpagua) => [
- q(3663),
+ q(3657),
q(0),
],
q(kpala) => [
- q(3534),
+ q(3529),
q(0),
],
q(kpan) => [
- q(3533),
+ q(3528),
q(0),
],
q(kpasam) => [
- q(5372),
+ q(5364),
q(0),
],
q(kpati) => [
- q(3506),
+ q(3502),
q(0),
],
q(kpatili) => [
- q(3754),
+ q(3747),
q(0),
],
q(kpeego) => [
- q(1837),
+ q(1832),
q(0),
],
q(kpelle) => [
@@ -38494,63 +38441,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kpessi) => [
- q(3262),
+ q(3259),
q(0),
],
q(kplang) => [
- q(3530),
+ q(3525),
q(0),
],
q(krache) => [
- q(3746),
+ q(3739),
q(0),
],
q(kraho) => [
- q(7476),
+ q(7458),
q(0),
],
q(kraol) => [
- q(5798),
+ q(5787),
q(0),
],
q(krenak) => [
- q(3564),
+ q(3559),
q(0),
],
q(krevinian) => [
- q(7870),
+ q(7852),
q(0),
],
q(kreye) => [
- q(7479),
+ q(7461),
q(0),
],
q(krikati-timbira) => [
- q(7481),
+ q(7463),
q(0),
],
q(krim) => [
- q(3583),
+ q(3578),
q(0),
],
q(krio) => [
- q(3580),
+ q(3575),
q(0),
],
q(kriol) => [
- q(5845),
+ q(5833),
q(0),
],
q(krisa) => [
- q(3602),
+ q(3597),
q(0),
],
q(krobu) => [
- q(3719),
+ q(3712),
q(0),
],
q(krongo) => [
- q(3322),
+ q(3318),
q(0),
],
q(kru languages) => [
@@ -38558,39 +38505,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kru'ng 2) => [
- q(3586),
+ q(3581),
q(0),
],
q(krymchak) => [
- q(3070),
+ q(3066),
q(0),
],
q(kryts) => [
- q(3592),
+ q(3587),
q(0),
],
q(kua) => [
- q(6841),
+ q(6825),
q(0),
],
q(kua-nsi) => [
- q(7670),
+ q(7652),
q(0),
],
q(kuamasi) => [
- q(7674),
+ q(7656),
q(0),
],
q(kuan) => [
- q(6853),
+ q(6837),
q(0),
],
q(kuanhua) => [
- q(7435),
+ q(7417),
q(0),
],
q(kuanua) => [
- q(3597),
+ q(3592),
q(0),
],
q(kuanyama) => [
@@ -38598,143 +38545,143 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kube) => [
- q(3314),
+ q(3310),
q(0),
],
q(kubi) => [
- q(3509),
+ q(3505),
q(0),
],
q(kubo) => [
- q(3110),
+ q(3107),
q(0),
],
q(kubu) => [
- q(3668),
+ q(3662),
q(0),
],
q(kucong) => [
- q(3941),
+ q(3932),
q(0),
],
q(kudiya) => [
- q(3289),
+ q(3286),
q(0),
],
q(kudmali) => [
- q(3764),
+ q(3757),
q(0),
],
q(kudu-camo) => [
- q(3519),
+ q(3515),
q(0),
],
q(kugama) => [
- q(3520),
+ q(3516),
q(0),
],
q(kugbo) => [
- q(3275),
+ q(3272),
q(0),
],
q(kui (india)) => [
- q(3736),
+ q(3729),
q(0),
],
q(kui (indonesia)) => [
- q(3670),
+ q(3664),
q(0),
],
q(kuijau) => [
- q(2075),
+ q(2068),
q(0),
],
q(kuikuro-kalapalo) => [
- q(3653),
+ q(3647),
q(0),
],
q(kujarge) => [
- q(7008),
+ q(6992),
q(0),
],
q(kuk) => [
- q(3296),
+ q(3293),
q(0),
],
q(kukatja) => [
- q(3664),
+ q(3658),
q(0),
],
q(kuke) => [
- q(2513),
+ q(2508),
q(0),
],
q(kukele) => [
- q(3282),
+ q(3279),
q(0),
],
q(kukna) => [
- q(3280),
+ q(3277),
q(0),
],
q(kuku-mangk) => [
- q(7422),
+ q(7404),
q(0),
],
q(kuku-mu'inh) => [
- q(7421),
+ q(7403),
q(0),
],
q(kuku-muminh) => [
- q(7414),
+ q(7396),
q(0),
],
q(kuku-ugbanh) => [
- q(6870),
+ q(6854),
q(0),
],
q(kuku-uwanh) => [
- q(6966),
+ q(6950),
q(0),
],
q(kuku-yalanji) => [
- q(2673),
+ q(2668),
q(0),
],
q(kula) => [
- q(6660),
+ q(6644),
q(0),
],
q(kulere) => [
- q(3656),
+ q(3650),
q(0),
],
q(kulfa) => [
- q(3725),
+ q(3718),
q(0),
],
q(kulina) => [
- q(1911),
+ q(1905),
q(1),
],
q(kulina pano) => [
- q(7463),
+ q(7445),
q(0),
],
q(kulisusu) => [
- q(7010),
+ q(6994),
q(0),
],
q(kullu pahari) => [
- q(3306),
+ q(3303),
q(0),
],
q(kulon-pazeh) => [
- q(6960),
+ q(6944),
q(0),
],
q(kulung (nepal)) => [
- q(3433),
+ q(3429),
q(0),
],
q(kulung (nigeria)) => [
@@ -38742,55 +38689,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kumalu) => [
- q(3605),
+ q(3600),
q(0),
],
q(kumam) => [
- q(3242),
+ q(3239),
q(0),
],
q(kuman (papua new guinea)) => [
- q(3649),
+ q(3643),
q(0),
],
q(kuman (russia)) => [
- q(5718),
+ q(5707),
q(0),
],
q(kumaoni) => [
- q(3307),
+ q(3304),
q(0),
],
q(kumarbhag paharia) => [
- q(3463),
+ q(3459),
q(0),
],
q(kumba) => [
- q(3606),
+ q(3601),
q(0),
],
q(kumbainggar) => [
- q(3326),
+ q(3322),
q(0),
],
q(kumbaran) => [
- q(7146),
+ q(7130),
q(0),
],
q(kumbewaha) => [
- q(7386),
+ q(7368),
q(0),
],
q(kumhali) => [
- q(3574),
+ q(3569),
q(0),
],
q(kumiai) => [
- q(2041),
+ q(2034),
q(0),
],
q(kumukio) => [
- q(3658),
+ q(3652),
q(0),
],
q(kumyk) => [
@@ -38798,127 +38745,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kumzari) => [
- q(7967),
+ q(7949),
q(0),
],
q(kunama) => [
- q(3657),
+ q(3651),
q(0),
],
q(kunbarlang) => [
- q(7155),
+ q(7139),
q(0),
],
q(kunda) => [
- q(3247),
+ q(3244),
q(0),
],
q(kundal shahi) => [
- q(6013),
+ q(6003),
q(0),
],
q(kunduvadi) => [
- q(7149),
+ q(7133),
q(0),
],
q(kung) => [
- q(3294),
+ q(3291),
q(0),
],
q(kung-ekoka) => [
- q(3501),
+ q(3497),
q(0),
],
q(kungarakany) => [
- q(2496),
+ q(2493),
q(0),
],
q(kungardutyi) => [
- q(2470),
- q(0),
- ],
- q(kunggara) => [
- q(3685),
+ q(2467),
q(0),
],
q(kunggari) => [
- q(3319),
+ q(3315),
q(0),
],
q(kungkari) => [
- q(3954),
+ q(3945),
q(0),
],
q(kuni) => [
- q(3598),
+ q(3593),
q(0),
],
q(kuni-boazi) => [
- q(3673),
+ q(3667),
q(0),
],
q(kunigami) => [
- q(7533),
+ q(7515),
q(0),
],
q(kunimaipa) => [
- q(3659),
+ q(3653),
q(0),
],
q(kunja) => [
- q(5416),
+ q(5408),
q(0),
],
q(kunjen) => [
- q(3391),
+ q(3387),
q(0),
],
q(kunyi) => [
- q(4919),
+ q(4910),
q(0),
],
q(kunza) => [
- q(3666),
+ q(3660),
q(0),
],
q(kuo) => [
- q(7538),
+ q(7520),
q(0),
],
q(kuot) => [
- q(3634),
+ q(3629),
q(0),
],
q(kupa) => [
- q(3651),
+ q(3645),
q(0),
],
q(kupang malay) => [
- q(4355),
+ q(4347),
q(0),
],
q(kupia) => [
- q(3281),
+ q(3278),
q(0),
],
q(kupsabiny) => [
- q(3547),
+ q(3542),
q(0),
],
q(kur) => [
- q(3662),
+ q(3656),
q(0),
],
q(kura ede nago) => [
- q(5044),
+ q(5035),
q(0),
],
q(kurama) => [
- q(3579),
+ q(3574),
q(0),
],
q(kuranko) => [
- q(3489),
+ q(3485),
q(0),
],
q(kurdish) => [
@@ -38926,43 +38869,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kuri) => [
- q(4751),
+ q(4742),
q(0),
],
q(kuria) => [
- q(3654),
+ q(3648),
q(0),
],
q(kurichiya) => [
- q(3290),
+ q(3287),
q(0),
],
q(kurmukar) => [
- q(3304),
+ q(3301),
q(0),
],
q(kurnai) => [
- q(6919),
+ q(6903),
q(0),
],
q(kurrama) => [
- q(7015),
+ q(6999),
q(0),
],
q(kurti) => [
- q(3632),
+ q(3627),
q(0),
],
q(kurtokha) => [
- q(7393),
+ q(7375),
q(0),
],
q(kuruaya) => [
- q(3759),
+ q(3752),
q(0),
],
q(kurudu) => [
- q(3395),
+ q(3391),
q(0),
],
q(kurukh) => [
@@ -38970,27 +38913,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kusaal) => [
- q(3660),
+ q(3654),
q(0),
],
q(kusaghe) => [
- q(3600),
+ q(3595),
q(0),
],
q(kushi) => [
- q(3652),
+ q(3646),
q(0),
],
q(kusu) => [
- q(3615),
+ q(3610),
q(0),
],
q(kusunda) => [
- q(3315),
+ q(3311),
q(0),
],
q(kutang ghale) => [
- q(2513),
+ q(2508),
+ q(1),
+ ],
+ q(kutchi) => [
+ q(3297),
q(1),
],
q(kutenai) => [
@@ -38998,131 +38945,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(kutep) => [
- q(3646),
+ q(3640),
q(0),
],
q(kuthant) => [
- q(7541),
+ q(7523),
q(0),
],
q(kutong) => [
- q(6082),
+ q(6072),
q(0),
],
q(kutto) => [
- q(3524),
+ q(3519),
q(0),
],
q(kutu) => [
- q(3236),
+ q(3233),
q(0),
],
q(kuturmi) => [
- q(3340),
+ q(3336),
q(0),
],
q(kuuk-yak) => [
- q(6889),
+ q(6873),
q(0),
],
q(kuuku-ya'u) => [
- q(3665),
+ q(3659),
+ q(0),
+ ],
+ q(kuvale) => [
+ q(5242),
q(0),
],
q(kuvi) => [
- q(3737),
+ q(3730),
q(0),
],
q(kuwaa) => [
- q(1285),
+ q(1284),
q(0),
],
q(kuwaataay) => [
- q(1929),
+ q(1922),
q(0),
],
q(kuy) => [
- q(3251),
+ q(3248),
q(0),
],
q(kven finnish) => [
- q(2352),
+ q(2348),
q(0),
],
q(kw'adza) => [
- q(7145),
+ q(7129),
q(0),
],
q(kwa) => [
- q(3694),
+ q(3687),
q(0),
],
q(kwa') => [
- q(1267),
+ q(1266),
q(0),
],
q(kwaami) => [
- q(3610),
+ q(3605),
q(0),
],
q(kwadi) => [
- q(3717),
+ q(3710),
q(0),
],
q(kwaio) => [
- q(3696),
+ q(3689),
q(0),
],
q(kwaja) => [
- q(3256),
+ q(3253),
q(0),
],
q(kwakiutl) => [
- q(3703),
+ q(3696),
q(0),
],
q(kwakum) => [
- q(3712),
+ q(3705),
q(0),
],
q(kwalhioqua-tlatskanai) => [
- q(5720),
+ q(5709),
q(0),
],
q(kwama) => [
- q(3470),
+ q(3466),
q(0),
],
q(kwambi) => [
- q(3705),
+ q(3698),
q(0),
],
q(kwamera) => [
- q(6619),
+ q(6604),
q(0),
],
q(kwami) => [
- q(3625),
+ q(3620),
q(0),
],
q(kwamtim one) => [
- q(5233),
+ q(5224),
q(0),
],
q(kwang) => [
- q(3675),
+ q(3669),
q(0),
],
q(kwanga) => [
- q(3702),
+ q(3695),
q(0),
],
q(kwangali) => [
- q(3706),
+ q(3699),
q(0),
],
q(kwanja) => [
- q(3494),
+ q(3490),
q(0),
],
q(kwanyama) => [
@@ -39130,103 +39081,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(kwara'ae) => [
- q(3698),
+ q(3691),
q(0),
],
q(kwasio) => [
- q(4968),
+ q(4959),
q(0),
],
q(kwaya) => [
- q(3742),
+ q(3735),
q(0),
],
q(kwaza) => [
- q(7548),
+ q(7530),
q(0),
],
q(kwegu) => [
- q(7552),
+ q(7534),
q(0),
],
q(kwenyi) => [
- q(3244),
+ q(3241),
q(1),
],
q(kwer) => [
- q(3709),
+ q(3702),
q(0),
],
q(kwerba) => [
- q(3697),
+ q(3690),
q(0),
],
q(kwerba mamberamo) => [
- q(7557),
+ q(7539),
q(0),
],
q(kwere) => [
- q(1927),
+ q(1920),
q(0),
],
q(kwerisa) => [
- q(3404),
+ q(3400),
q(0),
],
q(kwese) => [
- q(3710),
+ q(3703),
q(0),
],
q(kwesten) => [
- q(3711),
+ q(3704),
q(0),
],
q(kwini) => [
- q(2692),
+ q(2687),
q(0),
],
q(kwinsu) => [
- q(3647),
+ q(3641),
q(0),
],
q(kwinti) => [
- q(3714),
+ q(3707),
q(0),
],
q(kwoma) => [
- q(3468),
+ q(3464),
q(0),
],
q(kwomtari) => [
- q(3707),
+ q(3700),
q(0),
],
q(kxoe) => [
- q(7542),
+ q(7524),
q(0),
],
q(kyak) => [
- q(1255),
+ q(1254),
q(0),
],
q(kyaka) => [
- q(3744),
+ q(3737),
q(0),
],
q(kyan-karyaw naga) => [
- q(5047),
+ q(5038),
q(0),
],
q(kyanga) => [
- q(6831),
+ q(6815),
q(0),
],
q(kyenele) => [
- q(3559),
+ q(3554),
q(0),
],
q(kyerung) => [
- q(3332),
+ q(3328),
q(0),
],
q(kyrgyz) => [
@@ -39234,79 +39185,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(la'bi) => [
- q(3819),
+ q(3810),
q(0),
],
q(laa laa bwamu) => [
- q(1551),
+ q(1549),
q(0),
],
q(laadan) => [
- q(3856),
+ q(3847),
q(0),
],
q(laal) => [
- q(2464),
+ q(2461),
q(0),
],
q(laalaa) => [
- q(1642),
+ q(1640),
q(1),
],
q(laari) => [
- q(3851),
+ q(3842),
q(0),
],
q(laba) => [
- q(3808),
+ q(3799),
q(0),
],
q(label) => [
- q(3814),
+ q(3805),
q(0),
],
q(labir) => [
- q(3113),
+ q(3110),
q(0),
],
q(labo) => [
- q(4632),
+ q(4624),
q(0),
],
q(labo phowa) => [
- q(7728),
+ q(7710),
q(0),
],
q(labu) => [
- q(3830),
+ q(3821),
q(0),
],
q(labuk-kinabatangan kadazan) => [
- q(2157),
+ q(2150),
q(0),
],
q(lacandon) => [
- q(3795),
+ q(3786),
q(0),
],
q(lachi) => [
- q(3829),
+ q(3820),
q(0),
],
q(lachiguiri zapotec) => [
- q(7914),
+ q(7896),
q(0),
],
q(lachixio zapotec) => [
- q(7925),
+ q(7907),
q(0),
],
q(ladakhi) => [
- q(3820),
+ q(3811),
q(0),
],
q(ladin) => [
- q(3959),
+ q(3950),
q(0),
],
q(ladino) => [
@@ -39314,39 +39265,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ladji ladji) => [
- q(3965),
+ q(3956),
q(0),
],
q(laeko-libuat) => [
- q(3947),
+ q(3938),
q(0),
],
q(lafofa) => [
- q(3797),
+ q(3788),
q(0),
],
q(laghu) => [
- q(3887),
+ q(3878),
q(0),
],
q(laghuu) => [
- q(3889),
+ q(3880),
q(0),
],
q(lagwan) => [
- q(3517),
+ q(3513),
q(0),
],
q(laha (indonesia)) => [
- q(3901),
+ q(3892),
q(0),
],
q(laha (viet nam)) => [
- q(3900),
+ q(3891),
q(0),
],
q(lahanan) => [
- q(3905),
+ q(3896),
q(0),
],
q(lahnda) => [
@@ -39354,127 +39305,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lahta) => [
- q(3686),
+ q(3679),
q(1),
],
q(lahta karen) => [
- q(3686),
+ q(3679),
q(0),
],
q(lahu) => [
- q(3909),
+ q(3900),
q(0),
],
q(lahu shi) => [
- q(3902),
+ q(3893),
q(0),
],
q(lahul lohar) => [
- q(3903),
+ q(3894),
q(0),
],
q(laimbue) => [
- q(3996),
+ q(3987),
q(0),
],
q(laitu chin) => [
- q(1775),
+ q(1771),
q(0),
],
q(laiyolo) => [
- q(3934),
+ q(3925),
q(0),
],
q(lak) => [
- q(3816),
+ q(3807),
q(0),
],
q(laka (chad)) => [
- q(3804),
+ q(3795),
q(0),
],
q(laka (nigeria)) => [
- q(3801),
+ q(3792),
q(0),
],
q(lakalei) => [
- q(3939),
+ q(3930),
q(0),
],
q(lake miwok) => [
- q(3995),
+ q(3986),
q(0),
],
q(lakha) => [
- q(3944),
+ q(3935),
q(0),
],
q(laki) => [
- q(3945),
+ q(3936),
q(0),
],
q(lakkia) => [
- q(3815),
+ q(3806),
q(0),
],
q(lakon) => [
- q(3949),
+ q(3940),
q(0),
],
q(lakonde) => [
- q(3942),
+ q(3933),
q(0),
],
q(lakota) => [
- q(3953),
+ q(3944),
q(0),
],
q(lakota dida) => [
- q(2037),
+ q(2030),
q(0),
],
q(lala) => [
- q(5065),
+ q(5056),
q(0),
],
q(lala-bisa) => [
- q(3861),
+ q(3852),
q(0),
],
q(lala-roba) => [
- q(3956),
+ q(3947),
q(0),
],
q(lalana chinantec) => [
- q(1802),
+ q(1798),
q(0),
],
q(lalia) => [
- q(3802),
+ q(3793),
q(0),
],
q(lama (togo)) => [
- q(3807),
+ q(3798),
q(0),
],
q(lama bai) => [
- q(3811),
+ q(3802),
q(0),
],
q(lamaholot) => [
- q(6106),
+ q(6096),
q(0),
],
q(lamalera) => [
- q(3992),
+ q(3983),
q(0),
],
q(lamang) => [
- q(2753),
+ q(2748),
q(0),
],
q(lamatuka) => [
- q(3991),
+ q(3982),
q(0),
],
q(lamba) => [
@@ -39482,59 +39433,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lambadi) => [
- q(3988),
+ q(3979),
q(0),
],
q(lambayeque quechua) => [
- q(5683),
+ q(5672),
q(0),
],
q(lambichhong) => [
- q(3983),
+ q(3974),
q(0),
],
q(lamboya) => [
- q(3997),
+ q(3988),
q(0),
],
q(lambya) => [
- q(3799),
+ q(3790),
q(0),
],
q(lame) => [
- q(1303),
+ q(1302),
q(0),
],
q(lamenu) => [
- q(3993),
+ q(3984),
q(0),
],
q(lamet) => [
- q(3824),
+ q(3815),
q(0),
],
q(lamja-dengsa-tola) => [
- q(3850),
+ q(3841),
q(0),
],
q(lamkang) => [
- q(3986),
+ q(3977),
q(0),
],
q(lamma) => [
- q(3880),
+ q(3871),
q(0),
],
q(lamnso') => [
- q(4010),
+ q(4001),
q(0),
],
q(lamogai) => [
- q(3982),
+ q(3973),
q(0),
],
q(lampung api) => [
- q(3936),
+ q(3927),
q(0),
],
q(lampung nyo) => [
@@ -39542,15 +39493,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lamu) => [
- q(3963),
+ q(3954),
q(0),
],
q(lamu-lamu) => [
- q(3834),
+ q(3825),
q(0),
],
q(lanas lobu) => [
- q(5873),
+ q(5862),
q(0),
],
q(land dayak languages) => [
@@ -39558,51 +39509,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(landoma) => [
- q(3855),
+ q(3846),
q(0),
],
q(lang'e) => [
- q(7708),
+ q(7690),
q(0),
],
q(langam) => [
- q(4007),
+ q(3998),
q(0),
],
q(langbashe) => [
- q(3999),
+ q(3990),
q(0),
],
q(langi) => [
- q(3798),
+ q(3789),
q(0),
],
q(langnian buyang) => [
- q(7683),
+ q(7665),
q(0),
],
q(lango (sudan)) => [
- q(4009),
+ q(4000),
q(0),
],
q(lango (uganda)) => [
- q(3800),
+ q(3791),
q(0),
],
q(langobardic) => [
- q(4002),
+ q(3993),
q(0),
],
q(langue des signes de belgique francophone) => [
- q(5986),
+ q(5976),
q(0),
],
q(lanima) => [
- q(4012),
+ q(4003),
q(0),
],
q(lanoh) => [
- q(4003),
+ q(3994),
q(0),
],
q(lao) => [
@@ -39610,47 +39561,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lao naga) => [
- q(4955),
+ q(4946),
q(0),
],
q(laomian) => [
- q(4103),
+ q(4094),
q(0),
],
q(laopang) => [
- q(3818),
+ q(3809),
q(0),
],
q(laos sign language) => [
- q(4064),
+ q(4055),
q(0),
],
q(lapaguia-guivini zapotec) => [
- q(7955),
+ q(7937),
q(0),
],
q(laragia) => [
- q(4045),
+ q(4036),
q(0),
],
q(larantuka malay) => [
- q(4053),
+ q(4044),
q(0),
],
q(lardil) => [
- q(3835),
+ q(3826),
q(0),
],
q(larevat) => [
- q(4054),
+ q(4045),
q(0),
],
q(large flowery miao) => [
- q(2780),
+ q(2775),
q(0),
],
q(lari) => [
- q(4048),
+ q(4039),
q(0),
],
q(larike-wakasihu) => [
@@ -39658,39 +39609,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(laro) => [
- q(4051),
+ q(4042),
q(0),
],
q(larteh) => [
- q(3806),
+ q(3797),
q(0),
],
q(laru) => [
- q(3803),
+ q(3794),
q(0),
],
q(lasalimu) => [
- q(3968),
+ q(3959),
q(0),
],
q(lasgerdi) => [
- q(4056),
+ q(4047),
q(0),
],
q(lashi) => [
- q(4061),
+ q(4052),
q(0),
],
q(lasi) => [
- q(4067),
+ q(4058),
q(0),
],
q(late middle chinese) => [
- q(4070),
+ q(4061),
q(0),
],
q(latgalian) => [
- q(4071),
+ q(4062),
q(0),
],
q(latin) => [
@@ -39698,11 +39649,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(latu) => [
- q(4076),
+ q(4067),
q(0),
],
q(latunde) => [
- q(4073),
+ q(4064),
q(0),
],
q(latvian) => [
@@ -39710,103 +39661,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(latvian sign language) => [
- q(4062),
+ q(4053),
q(0),
],
q(lau) => [
- q(3974),
+ q(3965),
q(0),
],
q(laua) => [
- q(4080),
+ q(4071),
q(0),
],
q(lauan) => [
- q(3975),
+ q(3966),
q(0),
],
q(lauje) => [
- q(3809),
+ q(3800),
q(0),
],
q(laura) => [
- q(4087),
+ q(4078),
q(0),
],
q(laurentian) => [
- q(4044),
+ q(4035),
q(0),
],
q(lautu chin) => [
- q(1780),
+ q(1776),
q(0),
],
q(lavatbura-lamusong) => [
- q(3831),
+ q(3822),
q(0),
],
q(lave) => [
- q(1423),
+ q(1422),
q(0),
],
q(laven) => [
- q(3825),
+ q(3816),
q(0),
],
q(lavrung) => [
- q(3102),
+ q(3098),
q(1),
],
q(lavukaleve) => [
- q(4095),
+ q(4086),
q(0),
],
q(lawangan) => [
- q(3833),
+ q(3824),
q(0),
],
q(lawu) => [
- q(4106),
+ q(4097),
q(0),
],
q(lawunuia) => [
- q(6482),
+ q(6471),
q(0),
],
q(layakha) => [
- q(4108),
+ q(4099),
q(0),
],
q(laz) => [
- q(4114),
+ q(4105),
q(0),
],
q(lealao chinantec) => [
- q(1772),
+ q(1768),
q(0),
],
q(leco) => [
- q(3862),
+ q(3853),
q(0),
],
q(ledo kaili) => [
- q(3881),
+ q(3872),
q(0),
],
q(leelau) => [
- q(3853),
+ q(3844),
q(0),
],
q(lefa) => [
- q(3884),
+ q(3875),
q(0),
],
q(lega-mwenga) => [
- q(3893),
+ q(3884),
q(0),
],
q(lega-shabunda) => [
- q(3860),
+ q(3851),
q(0),
],
q(legbo) => [
@@ -39814,131 +39765,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(legenyem) => [
- q(3836),
+ q(3827),
q(0),
],
q(lehali) => [
- q(6678),
+ q(6662),
q(0),
],
q(lehalurup) => [
- q(6940),
+ q(6924),
q(0),
],
q(lehar) => [
- q(1642),
+ q(1640),
q(0),
],
q(leinong naga) => [
- q(4113),
+ q(4104),
q(0),
],
q(leipon) => [
- q(3869),
+ q(3860),
q(0),
],
q(lelak) => [
- q(3966),
+ q(3957),
q(0),
],
q(lele (chad)) => [
- q(3969),
+ q(3960),
q(0),
],
q(lele (democratic republic of congo)) => [
- q(3870),
+ q(3861),
q(0),
],
q(lele (guinea)) => [
- q(3958),
+ q(3949),
q(0),
],
q(lele (papua new guinea)) => [
- q(3960),
+ q(3951),
q(0),
],
q(lelemi) => [
- q(3865),
+ q(3856),
q(0),
],
q(lelepa) => [
- q(4037),
+ q(4028),
q(0),
],
q(lembena) => [
- q(3875),
+ q(3866),
q(0),
],
q(lemerig) => [
- q(4055),
+ q(4046),
q(0),
],
q(lemio) => [
- q(3867),
+ q(3858),
q(0),
],
q(lemnian) => [
- q(7398),
+ q(7380),
q(0),
],
q(lemolang) => [
- q(3883),
+ q(3874),
q(0),
],
q(lemoro) => [
- q(3852),
+ q(3843),
q(0),
],
q(lenakel) => [
- q(6620),
+ q(6605),
q(0),
],
q(lenca) => [
- q(3872),
+ q(3863),
q(0),
],
q(lendu) => [
- q(3863),
+ q(3854),
q(0),
],
q(lengilu) => [
- q(3890),
+ q(3881),
q(0),
],
q(lengo) => [
- q(3896),
+ q(3887),
q(0),
],
q(lengola) => [
- q(3868),
+ q(3859),
q(0),
],
q(lengua de senas catalana) => [
- q(1867),
+ q(1861),
q(1),
],
q(lengua de senas del paraguay) => [
- q(5674),
+ q(5663),
q(1),
],
q(lengua de senas panamenas) => [
- q(4065),
+ q(4056),
q(1),
],
q(leningitij) => [
- q(4005),
+ q(3996),
q(0),
],
q(lenje) => [
- q(3866),
+ q(3857),
q(0),
],
q(lenkau) => [
- q(3876),
+ q(3867),
q(0),
],
q(lenyima) => [
- q(3849),
+ q(3840),
q(0),
],
q(leonese) => [
@@ -39946,39 +39897,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(lepcha) => [
- q(3874),
+ q(3865),
q(0),
],
q(lepki) => [
- q(4038),
+ q(4029),
q(0),
],
q(lepontic) => [
- q(7403),
+ q(7385),
q(0),
],
q(lere) => [
- q(2573),
+ q(2569),
q(0),
],
q(lese) => [
- q(3877),
+ q(3868),
q(0),
],
q(lesing-gelimi) => [
- q(3878),
+ q(3869),
q(0),
],
q(letemboi) => [
- q(4980),
+ q(4971),
q(0),
],
q(leti (cameroon)) => [
- q(3873),
+ q(3864),
q(0),
],
q(leti (indonesia)) => [
- q(4072),
+ q(4063),
q(0),
],
q(letzeburgesch) => [
@@ -39986,19 +39937,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(levuka) => [
- q(4097),
+ q(4088),
q(0),
],
q(lewo) => [
- q(4107),
+ q(4098),
q(0),
],
q(lewo eleng) => [
- q(4099),
+ q(4090),
q(0),
],
q(lewotobi) => [
- q(4105),
+ q(4096),
q(0),
],
q(leyigha) => [
@@ -40010,59 +39961,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lhaovo) => [
- q(4296),
+ q(4287),
q(1),
],
q(lhokpu) => [
- q(3906),
+ q(3897),
q(0),
],
q(lhomi) => [
- q(3904),
+ q(3895),
q(0),
],
q(li'o) => [
- q(3935),
+ q(3926),
q(0),
],
q(liabuku) => [
- q(3929),
+ q(3920),
q(0),
],
q(liana-seti) => [
- q(6257),
+ q(6247),
q(0),
],
q(liangmai naga) => [
- q(4913),
+ q(4904),
q(0),
],
q(lianshan zhuang) => [
- q(7874),
+ q(7856),
q(0),
],
q(liberia kpelle) => [
- q(7459),
+ q(7441),
q(0),
],
q(liberian english) => [
- q(3924),
+ q(3915),
q(0),
],
q(libido) => [
- q(3923),
+ q(3914),
q(0),
],
q(libinza) => [
- q(3931),
+ q(3922),
q(0),
],
q(libon bikol) => [
- q(3822),
+ q(3813),
q(0),
],
q(liburnian) => [
- q(7400),
+ q(7382),
q(0),
],
q(libyan arabic) => [
@@ -40070,75 +40021,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(libyan sign language) => [
- q(3828),
+ q(3819),
q(0),
],
q(ligbi) => [
- q(3916),
+ q(3907),
q(0),
],
q(ligenza) => [
- q(3899),
+ q(3890),
q(0),
],
q(ligurian) => [
- q(3918),
+ q(3909),
q(0),
],
q(ligurian (ancient)) => [
- q(7399),
+ q(7381),
q(0),
],
q(lihir) => [
- q(3917),
+ q(3908),
q(0),
],
q(lijili) => [
- q(4258),
+ q(4249),
q(0),
],
q(lika) => [
- q(3919),
+ q(3910),
q(0),
],
q(liki) => [
- q(3921),
+ q(3912),
q(0),
],
q(likila) => [
- q(3914),
+ q(3905),
q(0),
],
q(likuba) => [
- q(3739),
+ q(3732),
q(0),
],
q(likum) => [
- q(3911),
+ q(3902),
q(0),
],
q(likwala) => [
- q(3695),
+ q(3688),
q(0),
],
q(lilau) => [
- q(3967),
+ q(3958),
q(0),
],
q(lillooet) => [
- q(3920),
+ q(3911),
q(0),
],
q(limassa) => [
- q(1307),
+ q(1306),
q(0),
],
q(limbu) => [
- q(3915),
+ q(3906),
q(0),
],
q(limbum) => [
- q(3990),
+ q(3981),
q(0),
],
q(limburgan) => [
@@ -40154,23 +40105,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(limi) => [
- q(7682),
+ q(7664),
q(0),
],
q(limilngan) => [
- q(3978),
+ q(3969),
q(0),
],
q(limos kalinga) => [
- q(3464),
+ q(3460),
q(0),
],
q(lindu) => [
- q(3451),
+ q(3447),
q(0),
],
q(linear a) => [
- q(3794),
+ q(3785),
q(0),
],
q(lingala) => [
@@ -40178,19 +40129,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lingao) => [
- q(5268),
+ q(5259),
q(0),
],
q(lingarak) => [
- q(3891),
+ q(3882),
q(0),
],
q(lingua franca) => [
- q(5518),
+ q(5510),
q(0),
],
q(lingua franca nova) => [
- q(3885),
+ q(3876),
q(0),
],
q(lipan apache) => [
@@ -40198,27 +40149,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lipo) => [
- q(4040),
+ q(4031),
q(0),
],
q(lisabata-nuniali) => [
- q(3845),
+ q(3836),
q(0),
],
q(lisela) => [
- q(3841),
+ q(3832),
q(0),
],
q(lish) => [
- q(4060),
+ q(4051),
q(0),
],
q(lishan didan) => [
- q(6694),
+ q(6678),
q(0),
],
q(lishana deni) => [
- q(4057),
+ q(4048),
q(0),
],
q(lishanid noshan) => [
@@ -40226,11 +40177,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lisu) => [
- q(3925),
+ q(3916),
q(0),
],
q(literary chinese) => [
- q(4111),
+ q(4102),
q(0),
],
q(lithuanian) => [
@@ -40238,87 +40189,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lithuanian sign language) => [
- q(3973),
+ q(3964),
q(0),
],
q(litzlitz) => [
- q(4112),
+ q(4103),
q(0),
],
q(liujiang zhuang) => [
- q(7872),
+ q(7854),
q(0),
],
q(liuqian zhuang) => [
- q(7875),
+ q(7857),
q(0),
],
q(liv) => [
- q(3927),
+ q(3918),
q(0),
],
q(livvi) => [
- q(5248),
+ q(5239),
q(0),
],
q(llengua de signes catalana) => [
- q(1867),
+ q(1861),
q(2),
],
q(llengua de signes valenciana) => [
- q(7050),
+ q(7034),
q(1),
],
q(lo-toga) => [
- q(3908),
+ q(3899),
q(0),
],
q(loarki) => [
- q(4047),
+ q(4038),
q(0),
],
q(lobala) => [
- q(4028),
+ q(4019),
q(0),
],
q(lobi) => [
- q(4015),
+ q(4006),
q(0),
],
q(lodhi) => [
- q(3823),
+ q(3814),
q(0),
],
q(logba) => [
- q(3895),
+ q(3886),
q(0),
],
q(logo) => [
- q(4019),
+ q(4010),
q(0),
],
q(logol) => [
- q(4018),
+ q(4009),
q(0),
],
q(logooli) => [
- q(5741),
+ q(5730),
q(0),
],
q(logorik) => [
- q(3926),
+ q(3917),
q(0),
],
q(logudorese sardinian) => [
- q(6211),
+ q(6201),
q(0),
],
q(lohorung) => [
- q(3827),
+ q(3818),
q(0),
],
q(loja highland quichua) => [
- q(5705),
+ q(5694),
q(0),
],
q(lojban) => [
@@ -40326,175 +40277,175 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lokaa) => [
- q(7598),
+ q(7580),
q(0),
],
q(loke) => [
- q(4036),
+ q(4027),
q(0),
],
q(loko) => [
- q(4023),
+ q(4014),
q(0),
],
q(lokoya) => [
- q(3955),
+ q(3946),
q(0),
],
q(lola) => [
- q(3837),
+ q(3828),
q(0),
],
q(lolak) => [
- q(3972),
+ q(3963),
q(0),
],
q(lole) => [
- q(3962),
+ q(3953),
q(0),
],
q(lolo) => [
- q(3957),
+ q(3948),
q(0),
],
q(loloda) => [
- q(4014),
+ q(4005),
q(0),
],
q(lolopo) => [
- q(7613),
+ q(7595),
q(0),
],
q(loma (cote d'ivoire)) => [
- q(4021),
+ q(4012),
q(0),
],
q(loma (liberia)) => [
- q(4024),
+ q(4015),
q(0),
],
q(lomaiviti) => [
- q(3994),
+ q(3985),
q(0),
],
q(lomavren) => [
- q(5813),
+ q(5802),
q(0),
],
q(lombard) => [
- q(3989),
+ q(3980),
q(0),
],
q(lombi) => [
- q(3984),
+ q(3975),
q(0),
],
q(lombo) => [
- q(4026),
+ q(4017),
q(0),
],
q(lomwe) => [
- q(4845),
+ q(4836),
q(0),
],
q(loncong) => [
- q(3838),
+ q(3829),
q(0),
],
q(long phuri naga) => [
- q(4039),
+ q(4030),
q(0),
],
q(long wat) => [
- q(6757),
+ q(6741),
q(0),
],
q(longgu) => [
- q(3898),
+ q(3889),
q(0),
],
q(longto) => [
- q(7204),
+ q(7188),
q(0),
],
q(longuda) => [
- q(4011),
+ q(4002),
q(0),
],
q(loniu) => [
- q(4030),
+ q(4021),
q(0),
],
q(lonwolwol) => [
- q(1846),
+ q(1840),
q(0),
],
q(lonzo) => [
- q(4013),
+ q(4004),
q(0),
],
q(loo) => [
- q(3857),
+ q(3848),
q(0),
],
q(lopa) => [
- q(4027),
+ q(4018),
q(0),
],
q(lopi) => [
- q(4033),
+ q(4024),
q(0),
],
q(lopit) => [
- q(4041),
+ q(4032),
q(0),
],
q(lorang) => [
- q(4050),
+ q(4041),
q(0),
],
q(lorediakarkar) => [
- q(4008),
+ q(3999),
q(0),
],
q(loreto-ucayali spanish) => [
- q(6190),
+ q(6180),
q(0),
],
q(lote) => [
- q(6965),
+ q(6949),
q(0),
],
q(lotha naga) => [
- q(4908),
+ q(4899),
q(0),
],
q(lotud) => [
- q(2165),
+ q(2159),
q(0),
],
q(lou) => [
- q(4022),
+ q(4013),
q(0),
],
- q(louisiana creole french) => [
- q(4032),
+ q(louisiana creole) => [
+ q(4023),
q(0),
],
q(loun) => [
- q(4035),
+ q(4026),
q(0),
],
q(loup a) => [
- q(7402),
+ q(7384),
q(0),
],
q(loup b) => [
- q(7395),
+ q(7377),
q(0),
],
q(lovono) => [
- q(7041),
+ q(7025),
q(1),
],
q(low german) => [
@@ -40506,19 +40457,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(lower burdekin) => [
- q(7293),
+ q(7278),
q(0),
],
q(lower chehalis) => [
- q(1706),
+ q(1702),
q(0),
],
q(lower grand valley dani) => [
- q(2103),
+ q(2096),
q(0),
],
q(lower silesian) => [
- q(6101),
+ q(6091),
q(0),
],
q(lower sorbian) => [
@@ -40530,27 +40481,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lower ta'oih) => [
- q(6749),
+ q(6733),
q(0),
],
q(lower tanana) => [
- q(6358),
+ q(6347),
q(0),
],
q(lowland oaxaca chontal) => [
- q(1779),
+ q(1775),
q(0),
],
q(lowland tarahumara) => [
- q(6360),
+ q(6349),
q(0),
],
q(loxicha zapotec) => [
- q(7958),
+ q(7940),
q(0),
],
q(loyop) => [
- q(6940),
+ q(6924),
q(1),
],
q(lozi) => [
@@ -40558,15 +40509,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lu) => [
- q(3333),
+ q(3329),
q(0),
],
q(lua') => [
- q(5587),
+ q(5577),
q(0),
],
q(luang) => [
- q(3882),
+ q(3873),
q(0),
],
q(luba-katanga) => [
@@ -40578,59 +40529,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lubila) => [
- q(3211),
+ q(3208),
q(0),
],
q(lubu) => [
- q(3839),
+ q(3830),
q(0),
],
q(lubuagan kalinga) => [
- q(3481),
+ q(3477),
q(0),
],
q(lubukusu) => [
- q(1577),
+ q(1575),
q(1),
],
q(luchazi) => [
- q(3840),
+ q(3831),
q(0),
],
q(lucumi) => [
- q(4086),
+ q(4077),
q(0),
],
q(ludian) => [
- q(4078),
+ q(4069),
q(0),
],
q(lufu) => [
- q(3859),
+ q(3850),
q(0),
],
q(lugbara) => [
- q(3888),
+ q(3879),
q(0),
],
q(luguru) => [
- q(5865),
+ q(5854),
q(0),
],
q(luhu) => [
- q(3844),
+ q(3835),
q(0),
],
q(lui) => [
- q(3813),
+ q(3804),
q(0),
],
q(luidakho-luisukha-lutirichi) => [
- q(2902),
+ q(2896),
q(1),
],
q(luimbi) => [
- q(4084),
+ q(4075),
q(0),
],
q(luiseno) => [
@@ -40638,15 +40589,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lukabaras) => [
- q(3940),
+ q(3931),
q(1),
],
q(lukpa) => [
- q(2123),
+ q(2116),
q(0),
],
q(lule) => [
- q(6893),
+ q(6877),
q(0),
],
q(lule sami) => [
@@ -40654,35 +40605,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lulogooli) => [
- q(5741),
+ q(5730),
q(1),
],
q(lumba-yakkha) => [
- q(4089),
+ q(4080),
q(0),
],
q(lumbee) => [
- q(3998),
+ q(3989),
q(0),
],
q(lumbu) => [
- q(4085),
+ q(4076),
q(0),
],
q(lumun) => [
- q(3979),
+ q(3970),
q(0),
],
q(lun bawang) => [
- q(4001),
+ q(3992),
q(1),
],
q(luna) => [
- q(4081),
+ q(4072),
q(0),
],
q(lunanakha) => [
- q(4082),
+ q(4073),
q(0),
],
q(lunda) => [
@@ -40690,19 +40641,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lundayeh) => [
- q(4001),
+ q(3992),
q(0),
],
q(lungalunga) => [
- q(7024),
+ q(7008),
q(0),
],
q(lungga) => [
- q(3886),
+ q(3877),
q(0),
],
q(luo (cameroon)) => [
- q(4091),
+ q(4082),
q(0),
],
q(luo (kenya and tanzania)) => [
@@ -40710,19 +40661,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(luopohe hmong) => [
- q(2788),
+ q(2783),
q(0),
],
q(luopohe miao) => [
- q(2788),
+ q(2783),
q(1),
],
q(luri) => [
- q(3848),
+ q(3839),
q(0),
],
q(lusengo) => [
- q(4058),
+ q(4049),
q(0),
],
q(lushai) => [
@@ -40730,35 +40681,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(lushootseed) => [
- q(4088),
+ q(4079),
q(0),
],
q(lusi) => [
- q(3342),
+ q(3338),
q(0),
],
q(lusitanian) => [
- q(7404),
+ q(7386),
q(0),
],
q(lutachoni) => [
- q(4075),
+ q(4066),
q(1),
],
q(lutos) => [
- q(4805),
+ q(4796),
q(0),
],
q(luvale) => [
- q(4079),
+ q(4070),
q(0),
],
q(luwati) => [
- q(4090),
+ q(4081),
q(0),
],
q(luwo) => [
- q(4104),
+ q(4095),
q(0),
],
q(luxembourgish) => [
@@ -40766,115 +40717,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(luyana) => [
- q(4110),
+ q(4101),
q(0),
],
q(luyia) => [
- q(4092),
+ q(4083),
q(0),
],
q(lwalu) => [
- q(4098),
+ q(4089),
q(0),
],
q(lycian) => [
- q(7396),
+ q(7378),
q(0),
],
q(lydian) => [
- q(7397),
+ q(7379),
q(0),
],
q(lyele) => [
- q(3864),
+ q(3855),
q(0),
],
q(lyngngam) => [
- q(4109),
+ q(4100),
q(0),
],
q(lyons sign language) => [
- q(4059),
+ q(4050),
q(0),
],
q(ma (democratic republic of congo)) => [
- q(4539),
+ q(4531),
q(0),
],
q(ma (papua new guinea)) => [
- q(4331),
+ q(4323),
q(0),
],
q(ma manda) => [
- q(6073),
+ q(6063),
q(0),
],
q(ma'anyan) => [
- q(4297),
+ q(4288),
q(0),
],
q(ma'di) => [
- q(4282),
+ q(4273),
q(0),
],
q(ma'ya) => [
- q(6115),
+ q(6105),
q(0),
],
q(maa) => [
- q(1784),
+ q(1780),
q(0),
],
q(maaka) => [
- q(4222),
+ q(4213),
q(0),
],
q(maasina fulfulde) => [
- q(2343),
+ q(2339),
q(0),
],
q(maay) => [
- q(7697),
+ q(7679),
q(0),
],
q(maba (chad)) => [
- q(4183),
+ q(4174),
q(0),
],
q(maba (indonesia)) => [
- q(4481),
+ q(4473),
q(0),
],
q(mabaale) => [
- q(4414),
+ q(4406),
q(0),
],
q(mabaan) => [
- q(4250),
+ q(4241),
q(0),
],
q(mabaka valley kalinga) => [
- q(3409),
+ q(3405),
q(0),
],
q(mabire) => [
- q(4588),
+ q(4580),
q(0),
],
q(maca) => [
- q(4153),
+ q(4144),
q(0),
],
q(macaguaje) => [
- q(4164),
+ q(4155),
q(0),
],
q(macaguan) => [
- q(4140),
+ q(4131),
q(0),
],
q(macanese) => [
- q(4711),
+ q(4703),
q(0),
],
q(macedo-romanian) => [
@@ -40886,63 +40837,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(machame) => [
- q(3118),
+ q(3115),
q(0),
],
q(machiguenga) => [
- q(4154),
+ q(4145),
q(0),
],
q(machinere) => [
- q(4459),
+ q(4451),
q(0),
],
q(machinga) => [
- q(4621),
+ q(4613),
q(0),
],
q(maco) => [
- q(7212),
+ q(7196),
q(0),
],
q(macuna) => [
- q(4692),
+ q(4684),
q(0),
],
q(macushi) => [
- q(4130),
+ q(4121),
q(0),
],
q(mada (cameroon)) => [
- q(4667),
+ q(4659),
q(0),
],
q(mada (nigeria)) => [
- q(4179),
+ q(4170),
q(0),
],
q(madagascar sign language) => [
- q(4696),
+ q(4688),
q(0),
],
q(madak) => [
- q(4412),
+ q(4404),
q(0),
],
q(maden) => [
- q(7429),
+ q(7411),
q(0),
],
q(madhi madhi) => [
- q(2085),
+ q(2078),
q(0),
],
q(madi) => [
- q(2616),
+ q(2612),
q(0),
],
q(madngele) => [
- q(7887),
+ q(7869),
q(0),
],
q(madurese) => [
@@ -40950,31 +40901,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mae) => [
- q(4394),
+ q(4386),
q(0),
],
q(maek) => [
- q(2787),
+ q(2782),
q(0),
],
q(maeng itneg) => [
- q(3019),
+ q(3015),
q(0),
],
q(mafa) => [
- q(4118),
+ q(4109),
q(0),
],
q(mafea) => [
- q(4363),
+ q(4355),
q(0),
],
q(mag-antsi ayta) => [
- q(5991),
+ q(5981),
q(0),
],
q(mag-indi ayta) => [
- q(1300),
+ q(1299),
q(0),
],
q(magahi) => [
@@ -40986,39 +40937,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(magdalena penasco mixtec) => [
- q(7517),
+ q(7499),
q(0),
],
q(maghdi) => [
- q(2557),
+ q(2553),
q(0),
],
q(magoma) => [
- q(2564),
+ q(2560),
q(0),
],
q(magori) => [
- q(7843),
+ q(7825),
q(0),
],
q(maguindanaon) => [
- q(4185),
+ q(4176),
q(0),
],
q(magyi) => [
- q(2558),
+ q(2554),
q(0),
],
q(mah meri) => [
- q(4279),
+ q(4270),
q(1),
],
q(mahali) => [
- q(4341),
+ q(4333),
q(0),
],
q(maharastri prakrit) => [
- q(5514),
+ q(5506),
q(0),
],
q(mahasu pahari) => [
@@ -41026,15 +40977,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mahican) => [
- q(4342),
+ q(4334),
q(0),
],
q(mahongwe) => [
- q(4276),
+ q(4267),
q(0),
],
q(mahou) => [
- q(4670),
+ q(4662),
q(0),
],
q(mai brat) => [
@@ -41042,43 +40993,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(maia) => [
- q(6088),
+ q(6078),
q(0),
],
q(maiadomu) => [
- q(4718),
+ q(4710),
q(0),
],
q(maiani) => [
- q(6617),
+ q(6602),
q(0),
],
q(maii) => [
- q(4402),
+ q(4394),
q(0),
],
q(mailu) => [
- q(4270),
+ q(4261),
q(0),
],
q(maindo) => [
- q(1925),
+ q(1918),
q(0),
],
q(mainfrankisch) => [
- q(7023),
+ q(7007),
q(0),
],
q(mainstream kenyah) => [
- q(7380),
+ q(7362),
q(0),
],
q(mairasi) => [
- q(7946),
+ q(7928),
q(0),
],
q(maisin) => [
- q(4143),
+ q(4134),
q(0),
],
q(maithili) => [
@@ -41086,55 +41037,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(maiwa (indonesia)) => [
- q(7175),
+ q(7159),
q(0),
],
q(maiwa (papua new guinea)) => [
- q(4563),
+ q(4555),
q(0),
],
q(maiwala) => [
- q(4590),
+ q(4582),
q(0),
],
q(majang) => [
- q(4460),
+ q(4452),
q(0),
],
q(majera) => [
- q(7415),
+ q(7397),
q(0),
],
q(majhi) => [
- q(4343),
+ q(4335),
q(0),
],
q(majhwar) => [
- q(4399),
+ q(4391),
q(0),
],
q(majukayang kalinga) => [
- q(3457),
+ q(3453),
q(0),
],
q(mak (china)) => [
- q(4349),
+ q(4341),
q(0),
],
q(mak (nigeria)) => [
- q(5371),
+ q(5363),
q(0),
],
q(makaa) => [
- q(4168),
+ q(4159),
q(0),
],
q(makah) => [
- q(4679),
+ q(4671),
+ q(0),
+ ],
+ q(makalero) => [
+ q(4312),
q(0),
],
q(makasae) => [
- q(4367),
+ q(4359),
q(0),
],
q(makasar) => [
@@ -41142,7 +41097,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(makassar malay) => [
- q(4240),
+ q(4231),
q(0),
],
q(makayam) => [
@@ -41150,87 +41105,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(makhuwa) => [
- q(7037),
+ q(7021),
q(0),
],
q(makhuwa-marrevone) => [
- q(7409),
+ q(7391),
q(0),
],
q(makhuwa-meetto) => [
- q(4257),
+ q(4248),
q(0),
],
q(makhuwa-moniga) => [
- q(4286),
+ q(4277),
q(0),
],
q(makhuwa-saka) => [
- q(7501),
+ q(7483),
q(0),
],
q(makhuwa-shirima) => [
- q(7028),
+ q(7012),
q(0),
],
q(maklew) => [
- q(4255),
+ q(4246),
q(0),
],
q(makolkol) => [
- q(7883),
+ q(7865),
q(0),
],
q(makonde) => [
- q(3238),
+ q(3235),
+ q(0),
+ ],
+ q(maku) => [
+ q(7265),
q(0),
],
q(maku'a) => [
- q(4094),
+ q(4085),
q(0),
],
q(makurap) => [
- q(4475),
+ q(4467),
q(0),
],
q(makuri naga) => [
- q(3122),
+ q(3119),
q(0),
],
q(makwe) => [
- q(7695),
+ q(7677),
q(0),
],
q(makyan naga) => [
- q(6908),
+ q(6892),
q(0),
],
q(mal) => [
- q(4372),
+ q(4364),
q(0),
],
q(mal paharia) => [
- q(4345),
+ q(4337),
q(0),
],
q(mala (nigeria)) => [
- q(5874),
+ q(5863),
q(0),
],
q(mala (papua new guinea)) => [
- q(5406),
+ q(5398),
q(0),
],
q(mala malasar) => [
- q(2961),
+ q(2956),
q(0),
],
q(malaccan creole malay) => [
- q(1688),
+ q(1684),
q(0),
],
q(malaccan creole portuguese) => [
- q(4165),
+ q(4156),
q(0),
],
q(malagasy) => [
@@ -41238,43 +41197,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(malalamai) => [
- q(4408),
+ q(4400),
q(0),
],
q(malango) => [
- q(4379),
+ q(4371),
q(0),
],
q(malankuravan) => [
- q(4332),
+ q(4324),
q(0),
],
q(malapandaram) => [
- q(4333),
+ q(4325),
q(0),
],
q(malaryan) => [
- q(4334),
+ q(4326),
q(0),
],
q(malas) => [
- q(4359),
+ q(4351),
q(0),
],
q(malasar) => [
- q(7702),
+ q(7684),
q(0),
],
q(malavedan) => [
- q(4335),
+ q(4327),
q(0),
],
q(malawi lomwe) => [
- q(4025),
+ q(4016),
q(0),
],
q(malawi sena) => [
- q(6307),
+ q(6296),
q(0),
],
q(malay) => [
@@ -41282,7 +41241,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(malay (individual language)) => [
- q(7873),
+ q(7855),
q(0),
],
q(malay (macrolanguage)) => [
@@ -41294,15 +41253,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(malayic dayak) => [
- q(7327),
+ q(7311),
q(0),
],
q(malaynon) => [
- q(4389),
+ q(4381),
q(0),
],
q(malayo) => [
- q(4142),
+ q(4133),
q(0),
],
q(malayo-polynesian languages) => [
@@ -41310,7 +41269,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(malaysian sign language) => [
- q(7417),
+ q(7399),
q(0),
],
q(malba birifor) => [
@@ -41322,75 +41281,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(male) => [
- q(2824),
+ q(2819),
q(1),
],
q(male (ethiopia)) => [
- q(4200),
+ q(4191),
q(0),
],
q(male (papua new guinea)) => [
- q(4181),
+ q(4172),
q(0),
],
q(malecite-passamaquoddy) => [
- q(5586),
+ q(5576),
q(0),
],
q(maleku jaika) => [
- q(2660),
+ q(2656),
q(0),
],
q(maleng) => [
- q(5484),
+ q(5477),
q(0),
],
q(maleu-kilenge) => [
- q(4261),
+ q(4252),
q(0),
],
q(malfaxal) => [
- q(4388),
+ q(4380),
q(0),
],
q(malgana) => [
- q(7029),
+ q(7013),
q(0),
],
q(malgbe) => [
- q(4652),
+ q(4644),
q(0),
],
q(mali) => [
- q(2444),
+ q(2441),
q(0),
],
q(malila) => [
- q(4266),
+ q(4257),
q(0),
],
q(malimba) => [
- q(4697),
+ q(4689),
q(0),
],
q(malimpung) => [
- q(4374),
+ q(4366),
q(0),
],
q(malinaltepec me'phaa) => [
- q(6410),
+ q(6399),
q(0),
],
q(malinaltepec tlapanec) => [
- q(6410),
+ q(6399),
q(1),
],
q(malo) => [
- q(4368),
+ q(4360),
q(0),
],
q(malol) => [
- q(4137),
+ q(4128),
q(0),
],
q(maltese) => [
@@ -41398,107 +41357,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(maltese sign language) => [
- q(4189),
+ q(4180),
q(0),
],
q(malua bay) => [
- q(4377),
+ q(4369),
q(0),
],
q(malvi) => [
- q(4592),
+ q(4584),
q(0),
],
q(malyangapa) => [
- q(7633),
+ q(7615),
q(0),
],
q(mam) => [
- q(4120),
+ q(4111),
q(0),
],
q(mama) => [
- q(4390),
+ q(4382),
q(0),
],
q(mamaa) => [
- q(4280),
+ q(4271),
q(0),
],
q(mamainde) => [
- q(7171),
+ q(7155),
q(0),
],
q(mamanwa) => [
- q(4403),
+ q(4395),
q(0),
],
q(mamara senoufo) => [
- q(4682),
+ q(4674),
q(0),
],
q(mamasa) => [
- q(4489),
+ q(4481),
q(0),
],
q(mambae) => [
- q(4262),
+ q(4253),
q(0),
],
q(mambai) => [
- q(4171),
+ q(4162),
q(0),
],
q(mamboru) => [
- q(4603),
+ q(4595),
q(0),
],
q(mambwe-lungu) => [
- q(4267),
+ q(4258),
q(0),
],
q(mampruli) => [
- q(4125),
+ q(4116),
q(0),
],
q(mamuju) => [
- q(4503),
+ q(4495),
q(0),
],
q(mamulique) => [
- q(2256),
+ q(2251),
q(0),
],
q(mamusi) => [
- q(3239),
+ q(3236),
q(0),
],
q(mamvu) => [
- q(4186),
+ q(4177),
q(0),
],
q(man met) => [
- q(4401),
+ q(4393),
q(0),
],
q(manado malay) => [
- q(7418),
+ q(7400),
q(0),
],
q(manam) => [
- q(4601),
+ q(4593),
q(0),
],
q(manambu) => [
- q(4371),
+ q(4363),
q(0),
],
q(manangba) => [
- q(4974),
+ q(4965),
q(0),
],
q(manangkari) => [
- q(7905),
+ q(7887),
q(0),
],
q(manchu) => [
@@ -41506,31 +41465,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(manda (australia)) => [
- q(7876),
+ q(7858),
q(0),
],
q(manda (india)) => [
- q(4275),
+ q(4266),
q(0),
],
q(manda (tanzania)) => [
- q(4268),
+ q(4259),
q(0),
],
q(mandahuaca) => [
- q(4293),
+ q(4284),
q(0),
],
q(mandaic) => [
- q(4301),
+ q(4292),
q(0),
],
q(mandan) => [
- q(4290),
+ q(4281),
q(0),
],
q(mandandanyi) => [
- q(7886),
+ q(7868),
q(0),
],
q(mandar) => [
@@ -41538,19 +41497,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mandara) => [
- q(6385),
+ q(6374),
q(0),
],
q(mandari) => [
- q(4500),
+ q(4492),
q(0),
],
q(mandarin chinese) => [
- q(1790),
+ q(1786),
q(0),
],
q(mandaya) => [
- q(4529),
+ q(4521),
q(0),
],
q(mande languages) => [
@@ -41558,11 +41517,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mandeali) => [
- q(4329),
+ q(4321),
q(0),
],
q(mander) => [
- q(4497),
+ q(4489),
q(0),
],
q(manding) => [
@@ -41574,11 +41533,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mandinka) => [
- q(4423),
+ q(4415),
q(0),
],
q(mandjak) => [
- q(4246),
+ q(4237),
q(0),
],
q(mandobo atas) => [
@@ -41586,79 +41545,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mandobo bawah) => [
- q(1557),
+ q(1555),
q(0),
],
q(manem) => [
- q(3083),
+ q(3079),
q(0),
],
q(mang) => [
- q(7904),
+ q(7886),
q(0),
],
q(manga kanuri) => [
- q(3207),
+ q(3204),
q(0),
],
q(mangala) => [
- q(4213),
+ q(4204),
q(0),
],
q(mangarayi) => [
- q(4458),
+ q(4450),
q(0),
],
q(mangareva) => [
- q(4526),
+ q(4518),
q(0),
],
q(mangas) => [
- q(7906),
+ q(7888),
q(0),
],
q(mangayat) => [
- q(4681),
+ q(4673),
q(0),
],
q(mangbetu) => [
- q(4187),
+ q(4178),
q(0),
],
q(mangbutu) => [
- q(4188),
+ q(4179),
q(0),
],
q(mangerr) => [
- q(7880),
+ q(7862),
q(0),
],
q(mangga buang) => [
- q(4404),
+ q(4396),
q(0),
],
q(manggarai) => [
- q(4504),
+ q(4496),
q(0),
],
q(mango) => [
- q(4254),
+ q(4245),
q(0),
],
q(mangole) => [
- q(4483),
+ q(4475),
q(0),
],
q(mangseng) => [
- q(4134),
+ q(4125),
q(0),
],
q(mangue) => [
- q(4445),
+ q(4437),
q(0),
],
q(manichaean middle persian) => [
- q(7419),
+ q(7401),
q(0),
],
q(manide) => [
@@ -41666,11 +41625,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(manikion) => [
- q(4434),
+ q(4426),
q(0),
],
q(manipa) => [
- q(4495),
+ q(4487),
q(0),
],
q(manipuri) => [
@@ -41678,19 +41637,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mankanya) => [
- q(3485),
+ q(3481),
q(0),
],
q(manna-dora) => [
- q(4338),
+ q(4330),
q(0),
],
q(mannan) => [
- q(4339),
+ q(4331),
q(0),
],
q(mano) => [
- q(4221),
+ q(4212),
q(0),
],
q(manobo languages) => [
@@ -41698,71 +41657,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(manombai) => [
- q(7207),
+ q(7191),
q(0),
],
q(mansaka) => [
- q(4540),
+ q(4532),
q(0),
],
q(mansi) => [
- q(4430),
+ q(4422),
q(0),
],
q(mansoanka) => [
- q(4551),
+ q(4543),
q(0),
],
q(manta) => [
- q(4678),
+ q(4670),
q(0),
],
q(mantsi) => [
- q(5102),
+ q(5093),
q(0),
],
q(manumanaw) => [
- q(3722),
+ q(3715),
q(1),
],
q(manumanaw karen) => [
- q(3722),
+ q(3715),
q(0),
],
q(manusela) => [
- q(7123),
- q(0),
+ q(7107),
+ q(1),
],
q(manx) => [
q(0156),
q(0),
],
q(manya) => [
- q(4702),
+ q(4694),
q(0),
],
q(manyawa) => [
- q(4435),
+ q(4427),
q(0),
],
q(manyika) => [
- q(4649),
+ q(4641),
q(0),
],
q(manza) => [
- q(4714),
+ q(4706),
q(0),
],
q(mao naga) => [
- q(4747),
+ q(4738),
q(0),
],
q(maonan) => [
- q(4393),
+ q(4385),
q(0),
],
q(maore comorian) => [
- q(6300),
+ q(6289),
q(0),
],
q(maori) => [
@@ -41770,27 +41729,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mape) => [
- q(4373),
+ q(4365),
q(0),
],
q(mapena) => [
- q(4425),
+ q(4417),
q(0),
],
q(mapia) => [
- q(4479),
+ q(4471),
q(0),
],
q(mapidian) => [
- q(4477),
+ q(4469),
q(0),
],
q(mapos buang) => [
- q(1620),
+ q(1618),
q(0),
],
q(mapoyo) => [
- q(4159),
+ q(4150),
q(0),
],
q(mapuche) => [
@@ -41802,59 +41761,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mapun) => [
- q(6062),
+ q(6052),
q(0),
],
q(maquiritari) => [
- q(4160),
+ q(4151),
q(0),
],
q(mara) => [
- q(4204),
+ q(4195),
q(0),
],
q(mara chin) => [
- q(4513),
+ q(4505),
q(0),
],
q(marachi) => [
- q(4046),
+ q(4037),
q(0),
],
q(maraghei) => [
- q(7025),
+ q(7009),
q(0),
],
q(maragus) => [
- q(4523),
+ q(4515),
q(0),
],
q(maram naga) => [
- q(4962),
+ q(4953),
q(0),
],
q(marama) => [
- q(4049),
+ q(4040),
q(0),
],
q(maramba) => [
- q(4675),
+ q(4667),
q(0),
],
q(maranao) => [
- q(4527),
+ q(4519),
q(0),
],
q(marangis) => [
- q(7075),
+ q(7059),
q(1),
],
q(maranunggu) => [
- q(7893),
+ q(7875),
q(0),
],
q(mararit) => [
- q(4251),
+ q(4242),
q(0),
],
q(marathi) => [
@@ -41862,43 +41821,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(marau) => [
- q(4616),
+ q(4608),
q(0),
],
q(marba) => [
- q(4461),
+ q(4453),
q(0),
],
q(maremgi) => [
- q(4528),
+ q(4520),
q(0),
],
q(marenje) => [
- q(7033),
+ q(7017),
q(0),
],
q(marfa) => [
- q(4619),
+ q(4611),
q(0),
],
q(margany) => [
- q(7878),
+ q(7860),
q(0),
],
q(marghi central) => [
- q(4524),
+ q(4516),
q(0),
],
q(marghi south) => [
- q(4237),
+ q(4228),
q(0),
],
q(margos-yarowilca-lauricocha quechua) => [
- q(5707),
+ q(5696),
q(0),
],
q(margu) => [
- q(4281),
+ q(4272),
q(0),
],
q(mari) => [
@@ -41906,11 +41865,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mari (east sepik province)) => [
- q(4150),
+ q(4141),
q(0),
],
q(mari (madang province)) => [
- q(2811),
+ q(2806),
q(0),
],
q(mari (russia)) => [
@@ -41918,95 +41877,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(maria (india)) => [
- q(4522),
+ q(4514),
q(0),
],
q(maria (papua new guinea)) => [
- q(4194),
+ q(4185),
q(0),
],
q(maricopa) => [
- q(4508),
+ q(4500),
q(0),
],
q(maridan) => [
- q(7879),
+ q(7861),
q(0),
],
q(maridjabin) => [
- q(7885),
+ q(7867),
q(0),
],
q(marik) => [
- q(1940),
+ q(1933),
q(0),
],
q(marimanindji) => [
- q(7888),
+ q(7870),
q(0),
],
q(marind) => [
- q(4530),
+ q(4522),
q(0),
],
q(maring) => [
- q(4149),
+ q(4140),
q(0),
],
q(maring naga) => [
- q(4994),
+ q(4985),
q(0),
],
q(maringarr) => [
- q(7895),
+ q(7877),
q(0),
],
q(marino) => [
- q(4507),
+ q(4499),
q(0),
],
q(mariri) => [
- q(4488),
+ q(4480),
q(0),
],
q(marithiel) => [
- q(4242),
+ q(4233),
q(0),
],
q(maritime sign language) => [
- q(5080),
+ q(5071),
q(0),
],
q(maritsaua) => [
- q(4545),
+ q(4537),
q(0),
],
q(mariyedi) => [
- q(7900),
+ q(7882),
q(0),
],
q(marka) => [
- q(5802),
+ q(5791),
q(0),
],
q(markweeta) => [
- q(2265),
+ q(2260),
q(0),
],
q(marma) => [
- q(5828),
+ q(5817),
q(0),
],
q(marovo) => [
- q(4613),
+ q(4605),
q(0),
],
q(marriammu) => [
- q(7487),
+ q(7469),
q(0),
],
q(marrucinian) => [
- q(6903),
+ q(6887),
q(0),
],
q(marshallese) => [
@@ -42014,31 +41973,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(marsian) => [
- q(2967),
+ q(2962),
q(0),
],
q(martha's vineyard sign language) => [
- q(4510),
+ q(4502),
q(0),
],
q(marti ke) => [
- q(7882),
+ q(7864),
q(0),
],
q(martu wangka) => [
- q(4464),
+ q(4456),
q(0),
],
q(martuyhunira) => [
- q(7018),
+ q(7002),
q(0),
],
q(maru) => [
- q(4296),
+ q(4287),
q(0),
],
q(marubo) => [
- q(4710),
+ q(4702),
q(0),
],
q(marwari) => [
@@ -42046,19 +42005,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(marwari (india)) => [
- q(5880),
+ q(5869),
q(0),
],
q(marwari (pakistan)) => [
- q(4604),
+ q(4596),
q(0),
],
q(masaaba) => [
- q(4691),
+ q(4683),
q(0),
],
q(masadiit itneg) => [
- q(6531),
+ q(6518),
q(0),
],
q(masai) => [
@@ -42066,95 +42025,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(masalit) => [
- q(4384),
+ q(4376),
q(0),
],
q(masana) => [
- q(4166),
+ q(4157),
q(0),
],
q(masbatenyo) => [
- q(4531),
+ q(4523),
q(0),
],
q(mashco piro) => [
- q(1909),
+ q(1903),
q(0),
],
q(mashi (nigeria)) => [
- q(3124),
+ q(3121),
q(0),
],
q(mashi (zambia)) => [
- q(4288),
+ q(4279),
q(0),
],
q(masikoro malagasy) => [
- q(4537),
+ q(4529),
q(0),
],
q(masimasi) => [
- q(3004),
+ q(2999),
q(0),
],
q(masiwang) => [
- q(1333),
+ q(1332),
q(0),
],
q(maskelynes) => [
- q(3450),
+ q(3446),
q(0),
],
q(maslam) => [
- q(4550),
+ q(4542),
q(0),
],
q(masmaje) => [
- q(4218),
+ q(4209),
q(0),
],
q(massalat) => [
- q(4184),
+ q(4175),
q(0),
],
q(massep) => [
- q(4617),
+ q(4609),
q(0),
],
q(matagalpa) => [
- q(4568),
+ q(4560),
q(0),
],
q(matal) => [
- q(4232),
+ q(4223),
q(0),
],
q(matbat) => [
- q(7425),
+ q(7407),
q(0),
],
q(matengo) => [
- q(4271),
+ q(4262),
q(0),
],
q(matepi) => [
- q(4484),
+ q(4476),
q(0),
],
q(matigsalug manobo) => [
- q(4146),
+ q(4137),
q(0),
],
q(matipuhy) => [
- q(4707),
+ q(4699),
q(0),
],
q(matis) => [
- q(4471),
+ q(4463),
q(0),
],
q(mato) => [
- q(4219),
+ q(4210),
q(0),
],
q(mato grosso arara) => [
@@ -42162,95 +42121,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mator) => [
- q(4567),
+ q(4559),
q(0),
],
q(matses) => [
- q(4158),
+ q(4149),
q(0),
],
q(mattoki) => [
- q(7445),
+ q(7427),
q(1),
],
q(mattole) => [
- q(4602),
+ q(4594),
q(0),
],
q(matu chin) => [
- q(2775),
+ q(2770),
q(0),
],
q(matukar) => [
- q(4328),
+ q(4320),
q(0),
],
q(matumbi) => [
- q(4272),
+ q(4263),
q(0),
],
q(matya samo) => [
- q(6262),
+ q(6252),
q(0),
],
q(maung) => [
- q(4462),
+ q(4454),
q(0),
],
q(mauritian sign language) => [
- q(4069),
+ q(4060),
q(0),
],
q(mauwake) => [
- q(4285),
+ q(4276),
q(0),
],
q(mawa (chad)) => [
- q(4175),
+ q(4166),
q(0),
],
q(mawa (nigeria)) => [
- q(7168),
+ q(7152),
q(0),
],
q(mawak) => [
- q(4327),
+ q(4319),
q(0),
],
q(mawan) => [
- q(4178),
+ q(4169),
q(0),
],
q(mawayana) => [
- q(4716),
+ q(4708),
q(0),
],
q(mawchi) => [
- q(4347),
+ q(4339),
q(0),
],
q(mawes) => [
- q(4260),
+ q(4251),
q(0),
],
q(mawukakan) => [
- q(4670),
+ q(4662),
q(1),
],
q(maxakali) => [
- q(4138),
+ q(4129),
q(0),
],
q(maxi gbe) => [
- q(4658),
+ q(4650),
q(0),
],
q(maya samo) => [
- q(6340),
+ q(6329),
q(0),
],
q(mayaguduna) => [
- q(7430),
+ q(7412),
q(0),
],
q(mayan languages) => [
@@ -42258,219 +42217,219 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mayangna) => [
- q(7588),
+ q(7570),
q(0),
],
q(mayawali) => [
- q(7794),
+ q(7776),
q(0),
],
q(mayeka) => [
- q(4674),
+ q(4666),
q(0),
],
q(mayi-kulan) => [
- q(7568),
+ q(7550),
q(0),
],
q(mayi-thakurti) => [
- q(7570),
+ q(7552),
q(0),
],
q(mayi-yapi) => [
- q(7567),
+ q(7549),
q(0),
],
q(mayo) => [
- q(4249),
+ q(4240),
q(0),
],
q(mayogo) => [
- q(4190),
+ q(4181),
q(0),
],
q(mayoyao ifugao) => [
- q(2918),
+ q(2912),
q(0),
],
q(mazagway) => [
- q(2077),
+ q(2070),
q(0),
],
q(mazaltepec zapotec) => [
- q(7938),
+ q(7920),
q(0),
],
q(mazanderani) => [
- q(4706),
+ q(4698),
q(0),
],
q(mazatlan mazatec) => [
- q(7040),
+ q(7024),
q(0),
],
q(mazatlan mixe) => [
- q(4704),
+ q(4696),
q(0),
],
q(mba) => [
- q(4227),
+ q(4218),
q(0),
],
q(mbala) => [
- q(4192),
+ q(4183),
q(0),
],
q(mbalanhu) => [
- q(4000),
+ q(3991),
q(0),
],
q(mbandja) => [
- q(7901),
+ q(7883),
q(0),
],
q(mbangala) => [
- q(4653),
+ q(4645),
q(0),
],
q(mbangi) => [
- q(4263),
+ q(4254),
q(0),
],
q(mbangwe) => [
- q(7889),
+ q(7871),
q(0),
],
q(mbara (australia)) => [
- q(4610),
+ q(4602),
q(0),
],
q(mbara (chad)) => [
- q(4465),
+ q(4457),
q(0),
],
q(mbariman-gudhinma) => [
- q(7897),
+ q(7879),
q(0),
],
q(mbati) => [
- q(4191),
+ q(4182),
q(0),
],
q(mbato) => [
- q(2679),
+ q(2674),
q(0),
],
q(mbay) => [
- q(4673),
+ q(4665),
q(0),
],
q(mbe) => [
- q(4239),
+ q(4230),
q(0),
],
q(mbe') => [
- q(4565),
+ q(4557),
q(0),
],
q(mbelime) => [
- q(4491),
+ q(4483),
q(0),
],
q(mbere) => [
- q(4195),
+ q(4186),
q(0),
],
q(mbesa) => [
- q(7894),
+ q(7876),
q(0),
],
q(mbo (cameroon)) => [
- q(4141),
+ q(4132),
q(0),
],
q(mbo (democratic republic of congo)) => [
- q(7898),
+ q(7880),
q(0),
],
q(mboi) => [
- q(4442),
+ q(4434),
q(0),
],
q(mboko) => [
- q(4196),
+ q(4187),
q(0),
],
q(mbole) => [
- q(4193),
+ q(4184),
q(0),
],
q(mbonga) => [
- q(7408),
+ q(7390),
q(0),
],
q(mbongno) => [
- q(1180),
+ q(1179),
q(0),
],
q(mbosi) => [
- q(4198),
+ q(4189),
q(0),
],
q(mbowe) => [
- q(4661),
+ q(4653),
q(0),
],
q(mbre) => [
- q(4344),
+ q(4336),
q(0),
],
q(mbudum) => [
- q(7410),
+ q(7392),
q(0),
],
q(mbugu) => [
- q(4278),
+ q(4269),
q(0),
],
q(mbugwe) => [
- q(4274),
+ q(4265),
q(0),
],
q(mbuko) => [
- q(4482),
+ q(4474),
q(0),
],
q(mbukushu) => [
- q(4295),
+ q(4286),
q(0),
],
q(mbula) => [
- q(4415),
+ q(4407),
q(0),
],
q(mbula-bwazza) => [
- q(4147),
+ q(4138),
q(0),
],
q(mbule) => [
- q(4369),
+ q(4361),
q(0),
],
q(mbulungish) => [
- q(4148),
+ q(4139),
q(0),
],
q(mbum) => [
- q(4182),
+ q(4173),
q(0),
],
q(mbunda) => [
- q(4163),
+ q(4154),
q(0),
],
q(mbunga) => [
- q(4273),
+ q(4264),
q(0),
],
q(mburku) => [
@@ -42478,103 +42437,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mbwela) => [
- q(4245),
+ q(4236),
q(0),
],
q(mbya guarani) => [
- q(2654),
+ q(2650),
q(0),
],
q(me'en) => [
- q(4684),
+ q(4676),
q(0),
],
q(mea) => [
- q(1740),
+ q(1736),
q(2),
],
q(medebur) => [
- q(4330),
+ q(4322),
q(0),
],
q(media lengua) => [
- q(4584),
+ q(4576),
q(0),
],
q(mediak) => [
- q(4644),
+ q(4636),
q(0),
],
q(median) => [
- q(7411),
+ q(7393),
q(0),
],
q(mednyj aleut) => [
- q(4583),
+ q(4575),
q(0),
],
q(medumba) => [
- q(1609),
+ q(1607),
q(0),
],
q(mefele) => [
- q(4234),
+ q(4225),
q(0),
],
q(megam) => [
- q(4207),
+ q(4198),
q(0),
],
q(megleno romanian) => [
- q(5871),
+ q(5860),
q(0),
],
q(mehek) => [
- q(5126),
+ q(5117),
q(0),
],
q(mehinaku) => [
- q(4397),
+ q(4389),
q(0),
],
q(mehri) => [
- q(2467),
+ q(2464),
q(0),
],
q(mekeo) => [
- q(4211),
+ q(4202),
q(0),
],
q(mekmek) => [
- q(4609),
+ q(4601),
q(0),
],
q(mekwei) => [
- q(4535),
+ q(4527),
q(0),
],
q(mele-fila) => [
- q(4651),
+ q(4643),
q(0),
],
q(melo) => [
- q(4248),
+ q(4239),
q(0),
],
q(melpa) => [
- q(4205),
+ q(4196),
q(0),
],
q(memoni) => [
- q(4151),
+ q(4142),
q(0),
],
q(mendalam kayan) => [
- q(7372),
+ q(7355),
q(0),
],
q(mendankwe-nkwen) => [
- q(4228),
+ q(4219),
q(0),
],
q(mende) => [
@@ -42582,7 +42541,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mende (papua new guinea)) => [
- q(6044),
+ q(6034),
q(0),
],
q(mende (sierra leone)) => [
@@ -42590,79 +42549,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(mengaka) => [
- q(7413),
+ q(7395),
q(0),
],
q(mengen) => [
- q(4206),
+ q(4197),
q(0),
],
q(mengisa) => [
- q(4172),
+ q(4163),
q(0),
],
q(menik) => [
- q(6626),
+ q(6611),
q(0),
],
q(menka) => [
- q(4202),
+ q(4193),
q(0),
],
q(menominee) => [
- q(4224),
+ q(4215),
q(0),
],
q(mentawai) => [
- q(4642),
+ q(4634),
q(0),
],
q(menya) => [
- q(4170),
+ q(4161),
q(0),
],
q(meoswar) => [
- q(4622),
+ q(4614),
q(0),
],
q(mer) => [
- q(4431),
+ q(4423),
q(0),
],
q(meramera) => [
- q(4659),
+ q(4651),
q(0),
],
q(merei) => [
- q(3977),
+ q(3968),
q(0),
],
q(merey) => [
- q(4216),
+ q(4207),
q(0),
],
q(meriam) => [
- q(6896),
+ q(6880),
q(0),
],
q(merlav) => [
- q(4517),
+ q(4509),
q(0),
],
q(meroitic) => [
- q(7423),
+ q(7405),
q(0),
],
q(meru) => [
- q(4217),
+ q(4208),
q(0),
],
q(merwari) => [
- q(7231),
+ q(7215),
q(0),
],
q(mesaka) => [
- q(3035),
+ q(3031),
q(0),
],
q(mescalero-chiricahua apache) => [
@@ -42670,19 +42629,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mese) => [
- q(4161),
+ q(4152),
q(0),
],
q(meskwaki) => [
- q(5888),
+ q(5878),
q(0),
],
q(mesme) => [
- q(7853),
+ q(7835),
q(0),
],
q(mesmes) => [
- q(4688),
+ q(4680),
q(0),
],
q(mesopotamian arabic) => [
@@ -42690,55 +42649,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mesqan) => [
- q(4624),
+ q(4616),
q(0),
],
q(messapic) => [
- q(1793),
+ q(1789),
q(0),
],
q(meta') => [
- q(4264),
+ q(4255),
q(0),
],
q(metlatonoc mixtec) => [
- q(4668),
+ q(4660),
q(0),
],
q(mewari) => [
- q(4572),
+ q(4564),
q(0),
],
q(mewati) => [
- q(7244),
+ q(7229),
q(0),
],
q(mexican sign language) => [
- q(4243),
+ q(4234),
q(0),
],
q(meyah) => [
- q(4210),
+ q(4201),
q(0),
],
q(mezontla popoloca) => [
- q(5366),
+ q(5358),
q(0),
],
q(mezquital otomi) => [
- q(5319),
+ q(5310),
q(0),
],
q(mfinu) => [
- q(7881),
+ q(7863),
q(0),
],
q(mfumte) => [
- q(4834),
+ q(4825),
q(0),
],
q(mgbolizhia) => [
- q(2566),
+ q(2562),
q(0),
],
q(mi'kmaq) => [
@@ -42746,35 +42705,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(miahuatlan zapotec) => [
- q(7817),
+ q(7799),
q(0),
],
q(miami) => [
- q(4299),
+ q(4290),
q(0),
],
q(mian) => [
- q(4474),
+ q(4466),
q(0),
],
q(miani) => [
- q(5486),
+ q(5479),
q(0),
],
q(michif) => [
- q(1849),
+ q(1843),
q(0),
],
q(michigamea) => [
- q(1789),
+ q(1785),
q(0),
],
q(michoacan mazahua) => [
- q(4392),
+ q(4384),
q(0),
],
q(michoacan nahuatl) => [
- q(4773),
+ q(4764),
q(0),
],
q(micmac) => [
@@ -42782,11 +42741,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(mid grand valley dani) => [
- q(2108),
+ q(2101),
q(0),
],
q(mid-southern banda) => [
- q(1244),
+ q(1243),
q(0),
],
q(middle armenian) => [
@@ -42794,11 +42753,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(middle breton) => [
- q(7300),
+ q(7285),
q(0),
],
q(middle cornish) => [
- q(1808),
+ q(1804),
q(0),
],
q(middle dutch (ca. 1050-1350)) => [
@@ -42818,7 +42777,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(middle hittite) => [
- q(2851),
+ q(2846),
q(0),
],
q(middle irish (900-1200)) => [
@@ -42826,103 +42785,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(middle korean (10th-16th cent.)) => [
- q(5235),
+ q(5226),
q(0),
],
q(middle low german) => [
- q(2559),
+ q(2555),
q(0),
],
q(middle mongolian) => [
- q(7434),
+ q(7416),
q(0),
],
q(middle newar) => [
- q(5140),
+ q(5131),
q(0),
],
q(middle watut) => [
- q(4466),
+ q(4458),
q(0),
],
q(middle welsh) => [
- q(7159),
+ q(7143),
q(0),
],
q(midob) => [
- q(4209),
+ q(4200),
q(0),
],
q(migaama) => [
- q(4413),
+ q(4405),
q(0),
],
q(migabac) => [
- q(4470),
+ q(4462),
q(0),
],
q(migum) => [
- q(3441),
+ q(3437),
q(0),
],
q(miji) => [
- q(6061),
+ q(6051),
q(1),
],
q(miju-mishmi) => [
- q(4656),
+ q(4648),
q(0),
],
q(mikasuki) => [
- q(4308),
+ q(4299),
q(0),
],
q(mili) => [
- q(7693),
+ q(7675),
q(0),
],
q(miltu) => [
- q(4375),
+ q(4367),
q(0),
],
q(miluk) => [
- q(2963),
+ q(2958),
q(0),
],
q(milyan) => [
- q(2968),
+ q(2963),
q(0),
],
q(min bei chinese) => [
- q(4427),
+ q(4419),
q(0),
],
q(min dong chinese) => [
- q(1701),
+ q(1697),
q(0),
],
q(min nan chinese) => [
- q(4730),
+ q(4721),
q(0),
],
q(min zhong chinese) => [
- q(1936),
+ q(1929),
q(0),
],
q(mina (cameroon)) => [
- q(2800),
+ q(2795),
q(0),
],
q(mina (india)) => [
- q(4680),
+ q(4672),
q(0),
],
q(minaean) => [
- q(2973),
+ q(2968),
q(0),
],
q(minang) => [
- q(7480),
+ q(7462),
q(0),
],
q(minangkabau) => [
@@ -42930,71 +42889,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(minanibai) => [
- q(4174),
+ q(4165),
q(0),
],
q(minaveha) => [
- q(4612),
+ q(4604),
q(0),
],
q(minderico) => [
- q(2135),
+ q(2128),
q(0),
],
q(mindiri) => [
- q(4468),
+ q(4460),
q(0),
],
q(mingang doso) => [
- q(4356),
+ q(4348),
q(0),
],
q(mingrelian) => [
- q(7412),
+ q(7394),
q(0),
],
q(minica huitoto) => [
- q(2848),
+ q(2843),
q(0),
],
q(minidien) => [
- q(7133),
+ q(7117),
q(0),
],
q(minigir) => [
- q(1572),
+ q(1570),
q(1),
],
q(minjungbal) => [
- q(7367),
+ q(7350),
q(0),
],
q(minkin) => [
- q(7562),
+ q(7544),
q(0),
],
q(minoan) => [
- q(5259),
+ q(5250),
q(0),
],
q(minokok) => [
- q(4496),
+ q(4488),
q(0),
],
q(minriq) => [
- q(4428),
+ q(4420),
q(0),
],
q(mintil) => [
- q(4712),
+ q(4704),
q(0),
],
q(minz zhuang) => [
- q(7841),
+ q(7823),
q(0),
],
q(miqie) => [
- q(7656),
+ q(7638),
q(0),
],
q(mirandese) => [
@@ -43002,103 +42961,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(miraya bikol) => [
- q(5760),
+ q(5749),
q(0),
],
q(mirgan) => [
- q(7942),
+ q(7924),
q(0),
],
q(miriti) => [
- q(4410),
+ q(4402),
+ q(0),
+ ],
+ q(miriwoong sign language) => [
+ q(5845),
q(0),
],
q(miriwung) => [
- q(4215),
+ q(4206),
q(0),
],
q(miship) => [
- q(4336),
+ q(4328),
q(0),
],
q(misima-panaeati) => [
- q(4478),
+ q(4470),
q(0),
],
q(mising) => [
- q(4512),
+ q(4504),
q(0),
],
q(miskito) => [
- q(4313),
+ q(4304),
q(0),
],
q(mitla zapotec) => [
- q(7825),
+ q(7807),
q(0),
],
q(mitlatongo mixtec) => [
- q(7030),
+ q(7014),
q(0),
],
q(mittu) => [
- q(4641),
+ q(4633),
q(0),
],
q(mituku) => [
- q(7892),
+ q(7874),
q(0),
],
q(miu) => [
- q(4469),
+ q(4461),
q(0),
],
q(miwa) => [
- q(7026),
+ q(7010),
q(0),
],
q(mixed great andamanese) => [
- q(2399),
+ q(2396),
q(0),
],
q(mixtepec mixtec) => [
- q(4318),
+ q(4309),
q(0),
],
q(mixtepec zapotec) => [
- q(7926),
+ q(7908),
q(0),
],
q(miya) => [
- q(4348),
+ q(4340),
q(0),
],
q(miyako) => [
- q(4608),
+ q(4600),
q(0),
],
q(miyobe) => [
- q(6176),
+ q(6166),
q(0),
],
q(mlabri) => [
- q(4506),
+ q(4498),
q(0),
],
q(mlahso) => [
- q(3907),
+ q(3898),
q(0),
],
q(mlap) => [
- q(3378),
+ q(3374),
q(0),
],
q(mlomp) => [
- q(4380),
+ q(4372),
q(0),
],
q(mmaala) => [
- q(4409),
+ q(4401),
q(0),
],
q(mmen) => [
@@ -43106,23 +43069,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mo) => [
- q(7147),
+ q(7131),
q(1),
],
q(mo'da) => [
- q(2432),
+ q(2429),
q(0),
],
q(moabite) => [
- q(5192),
+ q(5183),
q(0),
],
q(moba) => [
- q(4241),
+ q(4232),
q(0),
],
q(mobilian) => [
- q(4439),
+ q(4431),
q(0),
],
q(mobumrin aizi) => [
@@ -43130,31 +43093,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mobwa karen) => [
- q(3109),
+ q(3106),
q(0),
],
q(mocheno) => [
- q(4287),
+ q(4278),
q(0),
],
q(mochi) => [
- q(5244),
+ q(5235),
q(0),
],
q(mochica) => [
- q(5253),
+ q(5245),
q(0),
],
q(mocho) => [
- q(4277),
+ q(4268),
q(0),
],
q(mocovi) => [
- q(4438),
+ q(4430),
q(0),
],
q(modang) => [
- q(4650),
+ q(4642),
q(0),
],
q(modern greek (1453-)) => [
@@ -43162,31 +43125,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(modole) => [
- q(4494),
+ q(4486),
q(0),
],
q(moere) => [
- q(4615),
+ q(4607),
q(0),
],
q(mofu-gudur) => [
- q(4303),
+ q(4294),
q(0),
],
q(mogholi) => [
- q(4283),
+ q(4274),
q(0),
],
q(mogofin) => [
- q(4231),
+ q(4222),
q(0),
],
q(mogum) => [
- q(4450),
+ q(4442),
q(0),
],
q(mohave) => [
- q(4451),
+ q(4443),
q(0),
],
q(mohawk) => [
@@ -43194,59 +43157,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mohegan-pequot) => [
- q(7468),
+ q(7450),
q(0),
],
q(moi (congo)) => [
- q(4452),
+ q(4444),
q(0),
],
q(moi (indonesia)) => [
- q(4660),
+ q(4652),
q(0),
],
q(moikodi) => [
- q(4357),
+ q(4349),
q(0),
],
q(moingi) => [
- q(4646),
+ q(4638),
q(0),
],
q(moji) => [
- q(7694),
+ q(7676),
q(0),
],
q(mok) => [
- q(4499),
+ q(4491),
q(0),
],
q(moken) => [
- q(4640),
+ q(4632),
q(0),
],
q(mokerang) => [
- q(4244),
+ q(4235),
q(0),
],
q(mokilese) => [
- q(4351),
+ q(4343),
q(0),
],
q(moklen) => [
- q(4354),
+ q(4346),
q(0),
],
q(mokole) => [
- q(4353),
+ q(4345),
q(0),
],
q(mokpwe) => [
- q(1429),
+ q(1428),
q(0),
],
q(moksela) => [
- q(7034),
+ q(7018),
q(0),
],
q(moksha) => [
@@ -43254,11 +43217,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(molale) => [
- q(4132),
+ q(4123),
q(0),
],
q(molbog) => [
- q(5665),
+ q(5654),
q(0),
],
q(moldavian) => [
@@ -43266,7 +43229,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(moldova sign language) => [
- q(7048),
+ q(7032),
q(0),
],
q(moldovan) => [
@@ -43274,11 +43237,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(molengue) => [
- q(1569),
+ q(1567),
q(0),
],
q(molima) => [
- q(4453),
+ q(4445),
q(0),
],
q(molmo one) => [
@@ -43286,47 +43249,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(molo) => [
- q(7890),
+ q(7872),
q(0),
],
q(molof) => [
- q(4541),
+ q(4533),
q(0),
],
q(moloko) => [
- q(4387),
+ q(4379),
q(0),
],
q(mom jango) => [
- q(6994),
+ q(6978),
q(0),
],
q(moma) => [
- q(4683),
+ q(4675),
q(0),
],
q(momare) => [
- q(4554),
+ q(4546),
q(0),
],
q(mombo dogon) => [
- q(2083),
+ q(2076),
q(0),
],
q(mombum) => [
- q(4544),
+ q(4536),
q(0),
],
q(momina) => [
- q(4391),
+ q(4383),
q(0),
],
q(momuna) => [
- q(4485),
+ q(4477),
q(0),
],
q(mon) => [
- q(4433),
+ q(4425),
q(0),
],
q(mon-khmer languages) => [
@@ -43334,15 +43297,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(monastic sign language) => [
- q(4699),
+ q(4691),
q(0),
],
q(monde) => [
- q(4417),
+ q(4409),
q(0),
],
q(mondropolon) => [
- q(5038),
+ q(5029),
q(0),
],
q(mong) => [
@@ -43350,11 +43313,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(mong leng) => [
- q(2805),
+ q(2800),
q(1),
],
q(mong njua) => [
- q(2805),
+ q(2800),
q(2),
],
q(mongo) => [
@@ -43362,11 +43325,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mongol) => [
- q(4269),
+ q(4260),
q(0),
],
q(mongolia buriat) => [
- q(1579),
+ q(1577),
q(0),
],
q(mongolian) => [
@@ -43378,115 +43341,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mongolian sign language) => [
- q(4547),
+ q(4539),
q(0),
],
q(mongondow) => [
- q(4441),
+ q(4433),
q(0),
],
q(moni) => [
- q(4436),
+ q(4428),
q(0),
],
q(mono (cameroon)) => [
- q(4525),
+ q(4517),
q(0),
],
q(mono (democratic republic of congo)) => [
- q(4421),
+ q(4413),
q(0),
],
q(mono (solomon islands)) => [
- q(4559),
+ q(4551),
q(0),
],
q(mono (usa)) => [
- q(4429),
+ q(4421),
q(0),
],
q(monom) => [
- q(4446),
+ q(4438),
q(0),
],
q(monsang naga) => [
- q(4969),
+ q(4960),
q(0),
],
q(montagnais) => [
- q(4440),
+ q(4432),
q(0),
],
q(montol) => [
- q(4566),
+ q(4558),
q(0),
],
q(monumbo) => [
- q(4657),
+ q(4649),
q(0),
],
q(monzombo) => [
- q(4443),
+ q(4435),
q(0),
],
q(moo) => [
- q(2685),
+ q(2680),
q(0),
],
q(moose cree) => [
- q(1854),
+ q(1848),
q(0),
],
q(mopan maya) => [
- q(4447),
+ q(4439),
q(0),
],
q(mor (bomberai peninsula)) => [
- q(4448),
+ q(4440),
q(0),
],
q(mor (mor islands)) => [
- q(4298),
+ q(4289),
q(0),
],
q(moraid) => [
- q(4536),
+ q(4528),
q(0),
],
q(morawa) => [
- q(4698),
+ q(4690),
q(0),
],
q(morelos nahuatl) => [
- q(4870),
+ q(4861),
q(0),
],
q(morerebi) => [
- q(7420),
+ q(7402),
q(0),
],
q(moresada) => [
- q(4552),
+ q(4544),
q(0),
],
q(mori atas) => [
- q(4709),
+ q(4701),
q(0),
],
q(mori bawah) => [
- q(7431),
+ q(7413),
q(0),
],
q(morigi) => [
- q(4180),
+ q(4171),
q(0),
],
q(morisyen) => [
- q(4229),
+ q(4220),
q(0),
],
q(moro) => [
- q(4449),
+ q(4441),
q(0),
],
q(moroccan arabic) => [
@@ -43494,11 +43457,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(moroccan sign language) => [
- q(7424),
+ q(7406),
q(0),
],
q(morokodo) => [
- q(4252),
+ q(4243),
q(0),
],
q(morom) => [
@@ -43506,35 +43469,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(moronene) => [
- q(4493),
+ q(4485),
q(0),
],
q(morori) => [
- q(4444),
+ q(4436),
q(0),
],
q(morouas) => [
- q(4520),
+ q(4512),
q(0),
],
q(mortlockese) => [
- q(4516),
+ q(4508),
q(0),
],
q(moru) => [
- q(4253),
+ q(4244),
q(0),
],
q(mosimo) => [
- q(4501),
+ q(4493),
q(0),
],
q(mosiro) => [
- q(4645),
+ q(4637),
q(0),
],
q(moskona) => [
- q(4564),
+ q(4556),
q(0),
],
q(mossi) => [
@@ -43542,79 +43505,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mota) => [
- q(4574),
+ q(4566),
q(0),
],
q(motlav) => [
- q(4386),
+ q(4378),
q(0),
],
q(motu) => [
- q(4220),
+ q(4211),
q(0),
],
q(mouk-aria) => [
- q(4631),
+ q(4623),
q(0),
],
q(mountain koiali) => [
- q(3545),
+ q(3540),
q(0),
],
q(mouwase) => [
- q(3125),
+ q(3122),
q(0),
],
q(movima) => [
- q(4708),
+ q(4700),
q(0),
],
q(moyadan itneg) => [
- q(3023),
+ q(3019),
q(0),
],
q(moyon naga) => [
- q(4976),
+ q(4967),
q(0),
],
q(mozambican sign language) => [
- q(4717),
+ q(4709),
q(0),
],
q(mozarabic) => [
- q(4655),
+ q(4647),
q(0),
],
q(mpade) => [
- q(4463),
+ q(4455),
q(0),
],
q(mpalitjanh) => [
- q(7462),
+ q(7444),
q(0),
],
q(mpi) => [
- q(4480),
+ q(4472),
q(0),
],
q(mpiemo) => [
- q(4176),
+ q(4167),
q(0),
],
q(mpoto) => [
- q(4456),
+ q(4448),
q(0),
],
q(mpotovoro) => [
- q(4618),
+ q(4610),
q(0),
],
q(mpumpong) => [
- q(4256),
+ q(4247),
q(0),
],
q(mpuono) => [
- q(7891),
+ q(7873),
q(0),
],
q(mpur) => [
@@ -43622,15 +43585,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mro-khimi chin) => [
- q(1792),
+ q(1788),
q(0),
],
q(mru) => [
- q(4519),
+ q(4511),
q(0),
],
q(mser) => [
- q(3571),
+ q(3566),
q(0),
],
q(mt. iraya agta) => [
@@ -43642,35 +43605,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mualang) => [
- q(4558),
+ q(4550),
q(0),
],
q(mubami) => [
- q(6732),
+ q(6716),
q(0),
],
q(mubi) => [
- q(4581),
+ q(4573),
q(0),
],
q(muda) => [
- q(7690),
+ q(7672),
q(0),
],
q(mudburra) => [
- q(2096),
+ q(2089),
q(0),
],
q(mudhili gadaba) => [
- q(2417),
+ q(2414),
q(0),
],
q(mudu koraga) => [
- q(7021),
+ q(7005),
q(0),
],
q(muduga) => [
- q(6863),
+ q(6847),
q(0),
],
q(mufian) => [
@@ -43678,43 +43641,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mugom) => [
- q(4589),
+ q(4581),
q(0),
],
q(muinane) => [
- q(1320),
+ q(1319),
q(0),
],
q(mukha-dora) => [
- q(4400),
+ q(4392),
q(0),
],
q(mukulu) => [
- q(4455),
+ q(4447),
q(0),
],
q(mulaha) => [
- q(4247),
+ q(4238),
q(0),
],
q(mulam) => [
- q(4378),
+ q(4370),
q(0),
],
q(mulao) => [
- q(2527),
+ q(2522),
q(0),
],
q(mulgi) => [
- q(4607),
+ q(4599),
q(0),
],
q(mullu kurumba) => [
- q(3525),
+ q(3520),
q(0),
],
q(mullukmulluk) => [
- q(4457),
+ q(4449),
q(0),
],
q(multiple languages) => [
@@ -43722,27 +43685,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(muluridyi) => [
- q(7035),
+ q(7019),
q(0),
],
q(mum) => [
- q(3548),
+ q(3543),
q(0),
],
q(mumuye) => [
- q(4705),
+ q(4697),
q(0),
],
q(mun chin) => [
- q(4638),
+ q(4630),
q(0),
],
q(muna) => [
- q(4416),
+ q(4408),
q(0),
],
q(munda) => [
- q(6922),
+ q(6906),
q(0),
],
q(munda languages) => [
@@ -43750,71 +43713,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(mundabli) => [
- q(1354),
+ q(1353),
q(0),
],
q(mundang) => [
- q(4580),
+ q(4572),
q(0),
],
q(mundani) => [
- q(4419),
+ q(4411),
q(0),
],
q(mundari) => [
- q(6920),
+ q(6904),
q(0),
],
q(mundat) => [
- q(4395),
+ q(4387),
q(0),
],
q(mundu) => [
- q(4586),
+ q(4578),
q(0),
],
q(munduruku) => [
- q(4689),
+ q(4681),
q(0),
],
q(mungaka) => [
- q(4284),
+ q(4275),
q(0),
],
q(mungbam) => [
- q(4307),
+ q(4298),
q(1),
],
q(munggui) => [
- q(4562),
+ q(4554),
q(0),
],
q(mungkip) => [
- q(4476),
+ q(4468),
q(0),
],
q(muniche) => [
- q(4687),
+ q(4679),
q(0),
],
q(munit) => [
- q(4557),
+ q(4549),
q(0),
],
q(munji) => [
- q(4422),
+ q(4414),
q(0),
],
q(munsee) => [
- q(6913),
+ q(6897),
q(0),
],
q(muong) => [
- q(4571),
+ q(4563),
q(0),
],
q(mur pano) => [
- q(6562),
+ q(6549),
q(0),
],
q(muratayak) => [
@@ -43822,171 +43785,171 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(murik (malaysia)) => [
- q(4664),
+ q(4656),
q(0),
],
q(murik (papua new guinea)) => [
- q(4560),
+ q(4552),
q(0),
],
q(murkim) => [
- q(5812),
+ q(5801),
q(0),
],
q(murle) => [
- q(4594),
+ q(4586),
q(0),
],
q(murrinh-patha) => [
- q(4629),
+ q(4621),
q(0),
],
q(mursi) => [
- q(4600),
+ q(4592),
q(0),
],
q(murui huitoto) => [
- q(2869),
+ q(2864),
q(0),
],
q(murupi) => [
- q(4502),
+ q(4494),
q(0),
],
q(muruwari) => [
- q(7896),
+ q(7878),
q(0),
],
q(musak) => [
- q(4406),
+ q(4398),
q(0),
],
q(musar) => [
- q(4398),
+ q(4390),
q(0),
],
q(musasa) => [
- q(6124),
+ q(6114),
q(0),
],
q(musey) => [
- q(4534),
+ q(4526),
q(0),
],
q(musgu) => [
- q(4585),
+ q(4577),
q(0),
],
q(mushungulu) => [
- q(7407),
+ q(7389),
q(0),
],
q(musi) => [
- q(4587),
+ q(4579),
q(0),
],
q(muskum) => [
- q(4323),
+ q(4315),
q(0),
],
q(muslim tat) => [
- q(6754),
+ q(6738),
q(0),
],
q(musom) => [
- q(4549),
+ q(4541),
q(0),
],
q(mussau-emira) => [
- q(2254),
+ q(2249),
q(0),
],
q(muthuvan) => [
- q(4597),
+ q(4589),
q(0),
],
q(mutu) => [
- q(6762),
+ q(6746),
q(0),
],
q(muya) => [
- q(4611),
+ q(4603),
q(0),
],
q(muyang) => [
- q(4599),
+ q(4591),
q(0),
],
q(muyuw) => [
- q(4690),
+ q(4682),
q(0),
],
q(muzi) => [
- q(7705),
+ q(7687),
q(0),
],
q(mvanip) => [
- q(4162),
+ q(4153),
q(0),
],
q(mvuba) => [
- q(4654),
+ q(4646),
q(0),
],
q(mwaghavul) => [
- q(6285),
+ q(6275),
q(0),
],
q(mwali comorian) => [
- q(7153),
+ q(7137),
q(0),
],
q(mwan) => [
- q(4437),
+ q(4429),
q(0),
],
q(mwani) => [
- q(7180),
+ q(7164),
q(0),
],
q(mwatebu) => [
- q(4625),
+ q(4617),
q(0),
],
q(mwera (chimwera)) => [
- q(4628),
+ q(4620),
q(0),
],
q(mwera (nyasa)) => [
- q(4325),
+ q(4317),
q(0),
],
q(mwerlap) => [
- q(4517),
+ q(4509),
q(1),
],
q(mwimbi-muthambi) => [
- q(4639),
+ q(4631),
q(0),
],
q(mwotlap) => [
- q(4386),
+ q(4378),
q(1),
],
q(mycenaean greek) => [
- q(2565),
+ q(2561),
q(0),
],
q(myene) => [
- q(4676),
+ q(4668),
q(0),
],
q(mysian) => [
- q(7703),
+ q(7685),
q(0),
],
q(mzieme naga) => [
- q(4966),
+ q(4957),
q(0),
],
q(n'ko) => [
@@ -43994,11 +43957,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(n/u) => [
- q(4841),
+ q(4832),
q(0),
],
q(na) => [
- q(4757),
+ q(4748),
q(0),
],
q(na-dene languages) => [
@@ -44006,91 +43969,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(na-meo) => [
- q(4820),
+ q(4811),
q(0),
],
q(naaba) => [
- q(4731),
+ q(4722),
q(0),
],
q(naami) => [
- q(1634),
+ q(1632),
q(0),
],
q(naasioi) => [
- q(4734),
+ q(4725),
q(0),
],
q(naba) => [
- q(4418),
+ q(4410),
q(0),
],
q(nabak) => [
- q(4724),
+ q(4715),
q(0),
],
q(nabi) => [
- q(4579),
+ q(4571),
q(0),
],
q(nachering) => [
- q(4765),
+ q(4756),
q(0),
],
q(nadeb) => [
- q(4136),
+ q(4127),
q(0),
],
q(nadruvian) => [
- q(4788),
+ q(4779),
q(0),
],
q(nafaanra) => [
- q(4833),
+ q(4824),
q(0),
],
q(nafi) => [
- q(6213),
+ q(6203),
q(0),
],
q(nafri) => [
- q(5155),
+ q(5146),
q(0),
],
q(nafusi) => [
- q(3064),
+ q(3060),
q(0),
],
q(naga pidgin) => [
- q(4725),
+ q(4716),
q(0),
],
q(nagarchal) => [
- q(4745),
+ q(4736),
q(0),
],
q(nage) => [
- q(5144),
+ q(5135),
q(0),
],
q(nagumi) => [
- q(4855),
+ q(4846),
q(0),
],
q(naha'ai) => [
- q(4388),
+ q(4380),
q(1),
],
q(nahali) => [
- q(4959),
+ q(4950),
q(0),
],
q(nahari) => [
- q(4867),
+ q(4858),
q(0),
],
q(nahavaq) => [
- q(6150),
+ q(6140),
q(1),
],
q(nahuatl languages) => [
@@ -44098,7 +44061,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nai) => [
- q(1220),
+ q(1219),
q(0),
],
q(najdi arabic) => [
@@ -44106,151 +44069,151 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(naka'ela) => [
- q(4723),
+ q(4714),
q(0),
],
q(nakai) => [
- q(4931),
+ q(4922),
q(0),
],
q(nakame) => [
- q(4883),
+ q(4874),
q(0),
],
q(nakanai) => [
- q(4727),
+ q(4718),
q(0),
],
q(nakara) => [
- q(4772),
+ q(4763),
q(0),
],
q(nake) => [
- q(4749),
+ q(4740),
q(0),
],
q(naki) => [
- q(4230),
+ q(4221),
q(0),
],
q(nakwi) => [
- q(4737),
+ q(4728),
q(0),
],
q(nalca) => [
- q(4947),
+ q(4938),
q(0),
],
q(nali) => [
- q(5081),
+ q(5072),
q(0),
],
q(nalik) => [
- q(4728),
+ q(4719),
q(0),
],
q(nalogo) => [
- q(4961),
+ q(4952),
q(0),
],
q(nalu) => [
- q(4726),
+ q(4717),
q(0),
],
q(naluo yi) => [
- q(7684),
+ q(7666),
q(0),
],
q(nama (namibia)) => [
- q(4732),
+ q(4723),
q(1),
],
q(nama (papua new guinea)) => [
- q(4985),
+ q(4976),
q(0),
],
q(namakura) => [
- q(4972),
+ q(4963),
q(0),
],
q(namat) => [
- q(4933),
+ q(4924),
q(0),
],
q(nambo) => [
- q(4774),
+ q(4765),
q(0),
],
q(nambya) => [
- q(4978),
+ q(4969),
q(0),
],
q(namia) => [
- q(5000),
+ q(4991),
q(0),
],
q(namiae) => [
- q(5130),
+ q(5121),
q(0),
],
q(namibian sign language) => [
- q(4756),
+ q(4747),
q(0),
],
q(namla) => [
- q(4719),
+ q(4711),
q(0),
],
q(namo) => [
- q(4669),
+ q(4661),
q(0),
],
q(namonuito) => [
- q(4981),
+ q(4972),
q(0),
],
q(namosi-naitasiri-serua) => [
- q(1543),
+ q(1541),
q(0),
],
q(namuyi) => [
- q(4986),
+ q(4977),
q(0),
],
q(nanai) => [
- q(2544),
+ q(2540),
q(0),
],
q(nancere) => [
- q(4990),
+ q(4981),
q(0),
],
q(nande) => [
- q(4989),
+ q(4980),
q(0),
],
q(nandi) => [
- q(4896),
+ q(4887),
q(0),
],
q(nanerige senoufo) => [
- q(5974),
+ q(5964),
q(0),
],
q(nanga dama dogon) => [
- q(5184),
+ q(5175),
q(0),
],
q(nankina) => [
- q(4998),
+ q(4989),
q(0),
],
q(nanti) => [
- q(1828),
+ q(1824),
q(0),
],
q(nanticoke) => [
- q(5006),
+ q(4997),
q(0),
],
q(nanubae) => [
@@ -44258,83 +44221,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(napo lowland quechua) => [
- q(5709),
+ q(5698),
q(0),
],
q(napu) => [
- q(5042),
+ q(5033),
q(0),
],
q(nar phu) => [
- q(5032),
+ q(5023),
q(0),
],
q(nara) => [
- q(5050),
+ q(5041),
q(0),
],
q(narak) => [
- q(4721),
+ q(4713),
q(0),
],
q(narango) => [
- q(5054),
+ q(5045),
q(0),
],
q(narau) => [
- q(5154),
+ q(5145),
q(0),
],
q(nari nari) => [
- q(5835),
+ q(5823),
q(0),
],
q(narim) => [
- q(4020),
+ q(4011),
q(0),
],
q(naro) => [
- q(4875),
+ q(4866),
q(0),
],
q(narom) => [
- q(5058),
+ q(5049),
q(0),
],
q(narragansett) => [
- q(7442),
+ q(7424),
q(0),
],
q(narrinyeri) => [
- q(4738),
+ q(4729),
q(0),
],
q(narua) => [
- q(5063),
+ q(5054),
q(0),
],
q(narungga) => [
- q(5004),
+ q(4995),
q(0),
],
q(nasal) => [
- q(5087),
+ q(5078),
q(0),
],
q(nasarian) => [
- q(5129),
+ q(5120),
q(0),
],
q(naskapi) => [
- q(5074),
- q(0),
- ],
- q(natagaimas) => [
- q(5098),
+ q(5065),
q(0),
],
q(natanzi) => [
- q(5103),
+ q(5094),
q(0),
],
q(nataoran amis) => [
@@ -44342,39 +44301,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(natchez) => [
- q(4783),
+ q(4774),
q(0),
],
q(nateni) => [
- q(5094),
+ q(5086),
q(0),
],
q(nathembo) => [
- q(5089),
+ q(5081),
q(0),
],
q(natioro) => [
- q(5091),
+ q(5083),
q(0),
],
q(natugu) => [
- q(5099),
+ q(5090),
q(0),
],
q(nauete) => [
- q(5142),
+ q(5133),
q(0),
],
q(naukan yupik) => [
- q(7710),
+ q(7692),
q(0),
],
q(nauna) => [
- q(4775),
+ q(4766),
q(0),
],
q(nauo) => [
- q(5138),
+ q(5129),
q(0),
],
q(nauru) => [
@@ -44390,91 +44349,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(navut) => [
- q(5085),
+ q(5076),
q(0),
],
q(nawaru) => [
- q(5139),
+ q(5130),
q(0),
],
q(nawathinehena) => [
- q(5132),
+ q(5123),
q(0),
],
q(nawdm) => [
- q(4987),
+ q(4978),
q(0),
],
q(nawuri) => [
- q(4736),
+ q(4727),
q(0),
],
q(naxi) => [
- q(5152),
+ q(5143),
q(0),
],
q(nayi) => [
- q(5031),
+ q(5022),
q(0),
],
q(nayini) => [
- q(5168),
+ q(5159),
q(0),
],
q(ncane) => [
- q(4778),
+ q(4769),
q(0),
],
q(nchumbulu) => [
- q(4956),
+ q(4947),
q(0),
],
q(nda'nda') => [
- q(5011),
+ q(5002),
q(0),
],
q(ndai) => [
- q(2538),
+ q(2534),
q(0),
],
q(ndaka) => [
- q(4793),
+ q(4784),
q(0),
],
q(ndaktup) => [
- q(4777),
+ q(4768),
q(0),
],
q(ndali) => [
- q(4790),
+ q(4781),
q(0),
],
q(ndam) => [
- q(4795),
+ q(4786),
q(0),
],
q(ndamba) => [
- q(4792),
+ q(4783),
q(0),
],
q(ndambomo) => [
- q(5151),
+ q(5142),
q(0),
],
q(ndasa) => [
- q(4784),
+ q(4775),
q(0),
],
q(ndau) => [
- q(4786),
+ q(4777),
q(0),
],
q(nde-gbite) => [
- q(4810),
+ q(4801),
q(0),
],
q(nde-nsele-nta) => [
- q(4787),
+ q(4778),
q(0),
],
q(ndebele, north) => [
@@ -44486,51 +44445,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ndemli) => [
- q(4973),
+ q(4964),
q(0),
],
q(ndendeule) => [
- q(2101),
+ q(2094),
q(0),
],
q(ndengereko) => [
- q(4789),
+ q(4780),
q(0),
],
q(nding) => [
- q(2245),
+ q(2240),
q(0),
],
q(ndo) => [
- q(4797),
+ q(4788),
q(0),
],
q(ndobo) => [
- q(4803),
+ q(4794),
q(0),
],
q(ndoe) => [
- q(4741),
+ q(4732),
q(0),
],
q(ndogo) => [
- q(4806),
+ q(4797),
q(0),
],
q(ndolo) => [
- q(4794),
+ q(4785),
q(0),
],
q(ndom) => [
- q(5045),
+ q(5036),
q(0),
],
q(ndombe) => [
- q(4798),
+ q(4789),
q(0),
],
q(ndonde hamba) => [
- q(4907),
+ q(4898),
q(0),
],
q(ndonga) => [
@@ -44538,39 +44497,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ndoola) => [
- q(4799),
+ q(4790),
q(0),
],
q(ndra'ngith) => [
- q(2017),
+ q(2010),
q(0),
],
q(nduga) => [
- q(4804),
+ q(4795),
q(0),
],
q(ndumu) => [
- q(4965),
+ q(4956),
q(0),
],
q(ndunda) => [
- q(5110),
+ q(5101),
q(0),
],
q(ndunga) => [
- q(4800),
+ q(4791),
q(0),
],
q(ndut) => [
- q(4802),
+ q(4793),
q(0),
],
q(ndyuka-trio pidgin) => [
- q(4917),
+ q(4908),
q(0),
],
q(ndzwani comorian) => [
- q(7187),
+ q(7171),
q(0),
],
q(neapolitan) => [
@@ -44578,59 +44537,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nedebang) => [
- q(4809),
+ q(4800),
q(0),
],
q(nefamese) => [
- q(4812),
+ q(4803),
q(0),
],
q(negerhollands) => [
- q(1977),
+ q(1970),
q(0),
],
q(negeri sembilan malay) => [
- q(7884),
+ q(7866),
q(0),
],
q(negidal) => [
- q(4813),
+ q(4804),
q(0),
],
q(nehan) => [
- q(5077),
+ q(5068),
q(0),
],
q(nek) => [
- q(4886),
+ q(4877),
q(0),
],
q(nekgini) => [
- q(4928),
+ q(4919),
q(0),
],
q(neko) => [
- q(4816),
+ q(4807),
q(0),
],
q(neku) => [
- q(4817),
+ q(4808),
q(0),
],
q(nelemwa-nixumwak) => [
- q(4811),
+ q(4802),
+ q(0),
+ ],
+ q(nema) => [
+ q(2632),
q(0),
],
q(neme) => [
- q(4827),
+ q(4818),
q(0),
],
q(nemi) => [
- q(4818),
+ q(4809),
q(0),
],
q(nen) => [
- q(5046),
+ q(5037),
q(0),
],
q(nend) => [
@@ -44638,23 +44601,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nenets) => [
- q(7740),
+ q(7721),
q(0),
],
q(nenge) => [
- q(2066),
+ q(2059),
q(2),
],
q(nengone) => [
- q(4819),
+ q(4810),
q(0),
],
q(neo) => [
- q(4825),
+ q(4816),
q(0),
],
q(neo-hittite) => [
- q(4815),
+ q(4806),
q(0),
],
q(nepal bhasa) => [
@@ -44662,7 +44625,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nepalese sign language) => [
- q(5078),
+ q(5069),
q(0),
],
q(nepali) => [
@@ -44670,7 +44633,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nepali (individual language)) => [
- q(5036),
+ q(5027),
q(0),
],
q(nepali (macrolanguage)) => [
@@ -44678,27 +44641,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(nepali kurux) => [
- q(3727),
+ q(3720),
q(0),
],
q(nete) => [
- q(4824),
+ q(4815),
q(0),
],
q(neve'ei) => [
- q(7042),
+ q(7026),
q(1),
],
q(neverver) => [
- q(3891),
+ q(3882),
q(1),
],
q(new caledonian javanese) => [
- q(3054),
+ q(3050),
q(0),
],
q(new zealand sign language) => [
- q(5181),
+ q(5172),
q(0),
],
q(newari) => [
@@ -44706,135 +44669,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(neyo) => [
- q(4828),
+ q(4819),
q(0),
],
q(nez perce) => [
- q(4829),
+ q(4820),
q(0),
],
q(ngaanyatjarra) => [
- q(5092),
+ q(5084),
q(0),
],
q(ngabere) => [
- q(2703),
+ q(2698),
q(0),
],
q(ngad'a) => [
- q(5145),
+ q(5136),
q(0),
],
q(ngadjunmaya) => [
- q(4918),
+ q(4909),
q(0),
],
q(ngadjuri) => [
- q(3152),
+ q(3149),
q(0),
],
q(ngaing) => [
- q(4993),
+ q(4984),
q(0),
],
q(ngaju) => [
- q(4890),
+ q(4881),
q(0),
],
q(ngala) => [
- q(5106),
+ q(5097),
q(0),
],
q(ngalakan) => [
- q(4887),
+ q(4878),
q(0),
],
q(ngalum) => [
- q(6348),
+ q(6337),
q(0),
],
q(ngam) => [
- q(4964),
+ q(4955),
q(0),
],
q(ngamambo) => [
- q(4759),
+ q(4750),
q(0),
],
q(ngambay) => [
- q(5902),
+ q(5892),
q(0),
],
q(ngamini) => [
- q(4983),
+ q(4974),
q(0),
],
q(ngamo) => [
- q(4746),
+ q(4737),
q(0),
],
q(ngan'gityemerri) => [
- q(4729),
+ q(4720),
q(0),
],
q(nganakarti) => [
- q(7437),
+ q(7419),
q(0),
],
q(nganasan) => [
- q(4895),
+ q(4886),
q(0),
],
q(ngandi) => [
- q(4884),
+ q(4875),
q(0),
],
q(ngando (central african republic)) => [
- q(4838),
+ q(4829),
q(0),
],
q(ngando (democratic republic of congo)) => [
- q(5143),
+ q(5134),
q(0),
],
q(ngandyera) => [
- q(4992),
+ q(4983),
q(0),
],
q(ngangam) => [
- q(2572),
+ q(2568),
q(0),
],
q(ngantangarra) => [
- q(5090),
+ q(5082),
q(0),
],
q(nganyaywana) => [
- q(5175),
+ q(5166),
q(0),
],
q(ngardi) => [
- q(5881),
+ q(5870),
q(0),
],
q(ngarigu) => [
- q(7436),
+ q(7418),
q(0),
],
q(ngarinman) => [
- q(4748),
+ q(4739),
q(0),
],
q(ngarinyin) => [
- q(6916),
+ q(6900),
q(0),
],
q(ngarla) => [
- q(5056),
+ q(5047),
q(0),
],
q(ngarluma) => [
- q(5057),
+ q(5048),
q(0),
],
q(ngas) => [
@@ -44842,51 +44805,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ngasa) => [
- q(5071),
+ q(5062),
q(0),
],
q(ngatik men's creole) => [
- q(4846),
+ q(4837),
q(0),
],
q(ngawn chin) => [
- q(1807),
+ q(1803),
q(0),
],
q(ngawun) => [
- q(5150),
+ q(5141),
q(0),
],
q(ngayawung) => [
- q(5135),
+ q(5126),
q(0),
],
q(ngazidja comorian) => [
- q(7835),
+ q(7817),
q(0),
],
q(ngbaka) => [
- q(4835),
+ q(4826),
q(0),
],
q(ngbaka ma'bo) => [
- q(4750),
+ q(4741),
q(0),
],
q(ngbaka manza) => [
- q(4840),
+ q(4831),
q(0),
],
q(ngbee) => [
- q(3085),
+ q(3081),
q(0),
],
q(ngbinda) => [
- q(4743),
+ q(4734),
q(0),
],
q(ngbundu) => [
- q(5123),
+ q(5114),
q(0),
],
q(ngelima) => [
@@ -44894,159 +44857,159 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ngemba) => [
- q(4839),
+ q(4830),
q(0),
],
q(ngeq) => [
- q(4853),
+ q(4844),
q(0),
],
q(ngete) => [
- q(5001),
+ q(4992),
q(0),
],
q(nggem) => [
- q(4754),
+ q(4745),
q(0),
],
q(nggwahyi) => [
- q(4857),
+ q(4848),
q(0),
],
q(ngie) => [
- q(4843),
+ q(4834),
q(0),
],
q(ngiemboon) => [
- q(4995),
+ q(4986),
q(0),
],
q(ngile) => [
- q(3114),
+ q(3111),
q(0),
],
q(ngindo) => [
- q(5003),
+ q(4994),
q(0),
],
q(ngiti) => [
- q(4903),
+ q(4894),
q(0),
],
q(ngizim) => [
- q(4842),
+ q(4833),
q(0),
],
q(ngkalmpw kanum) => [
- q(3212),
+ q(3209),
q(0),
],
q(ngom) => [
- q(5049),
+ q(5040),
q(0),
],
q(ngomba) => [
- q(3088),
+ q(3084),
q(0),
],
q(ngombale) => [
- q(4946),
+ q(4937),
q(0),
],
q(ngombe (central african republic)) => [
- q(4971),
+ q(4962),
q(0),
],
q(ngombe (democratic republic of congo)) => [
- q(4837),
+ q(4828),
q(0),
],
q(ngongo) => [
- q(5024),
+ q(5015),
q(0),
],
q(ngoni) => [
- q(4848),
+ q(4839),
q(0),
],
q(ngoreme) => [
- q(4850),
+ q(4841),
q(1),
],
q(ngoshie) => [
- q(5072),
+ q(5063),
q(0),
],
q(ngul) => [
- q(4954),
+ q(4945),
q(0),
],
q(ngulu) => [
- q(4849),
+ q(4840),
q(0),
],
q(nguluwan) => [
- q(5125),
+ q(5116),
q(0),
],
q(ngumbi) => [
- q(5111),
+ q(5102),
q(0),
],
q(ngunawal) => [
- q(7535),
+ q(7517),
q(0),
],
q(ngundi) => [
- q(4796),
+ q(4787),
q(0),
],
q(ngundu) => [
- q(5107),
+ q(5098),
q(0),
],
q(ngungwel) => [
- q(4859),
+ q(4850),
q(0),
],
q(nguon) => [
- q(5117),
+ q(5108),
q(0),
],
q(ngurimi) => [
- q(4850),
+ q(4841),
q(0),
],
q(ngurmbur) => [
- q(5064),
+ q(5055),
q(0),
],
q(ngwaba) => [
- q(4856),
+ q(4847),
q(0),
],
q(ngwe) => [
- q(5134),
+ q(5125),
q(0),
],
q(ngwo) => [
- q(4847),
+ q(4838),
q(0),
],
q(nhanda) => [
- q(4860),
+ q(4851),
q(0),
],
q(nhengatu) => [
- q(7741),
+ q(7722),
q(0),
],
q(nhirrpi) => [
- q(2837),
+ q(2832),
q(0),
],
q(nhuwala) => [
- q(4865),
+ q(4856),
q(0),
],
q(nias) => [
@@ -45054,19 +45017,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nicaragua creole english) => [
- q(1623),
+ q(1621),
q(0),
],
q(nicaraguan sign language) => [
- q(4779),
+ q(4770),
q(0),
],
q(nicarao) => [
- q(5576),
+ q(5566),
q(1),
],
q(niellim) => [
- q(4885),
+ q(4876),
q(0),
],
q(niger-kordofanian languages) => [
@@ -45074,43 +45037,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nigeria mambila) => [
- q(4703),
+ q(4695),
q(0),
],
q(nigerian fulfulde) => [
- q(2393),
+ q(2390),
q(0),
],
q(nigerian pidgin) => [
- q(5393),
+ q(5385),
q(0),
],
q(nigerian sign language) => [
- q(5073),
+ q(5064),
q(0),
],
q(nihali) => [
- q(4953),
+ q(4944),
q(0),
],
q(nii) => [
- q(4889),
- q(0),
- ],
- q(nijadali) => [
- q(4722),
+ q(4880),
q(0),
],
q(niksek) => [
- q(2423),
+ q(2420),
q(0),
],
q(nila) => [
- q(4892),
+ q(4883),
q(0),
],
q(nilamba) => [
- q(4893),
+ q(4884),
q(0),
],
q(nilo-saharan languages) => [
@@ -45118,95 +45077,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nimadi) => [
- q(5015),
+ q(5006),
q(0),
],
q(nimanbur) => [
- q(4977),
+ q(4968),
q(0),
],
q(nimbari) => [
- q(4979),
+ q(4970),
q(0),
],
q(nimboran) => [
- q(4897),
+ q(4888),
q(0),
],
q(nimi) => [
- q(4898),
+ q(4889),
q(0),
],
q(nimo) => [
- q(4901),
+ q(4892),
q(0),
],
q(nimoa) => [
- q(4984),
+ q(4975),
q(0),
],
q(ninam) => [
- q(6011),
+ q(6001),
q(0),
],
q(ninde) => [
- q(4632),
+ q(4624),
q(1),
],
q(nindi) => [
- q(5146),
+ q(5137),
q(0),
],
q(ningera) => [
- q(4761),
+ q(4752),
q(0),
],
q(ninggerum) => [
- q(5153),
+ q(5144),
q(0),
],
q(ningil) => [
- q(4904),
+ q(4895),
q(0),
],
q(ningye) => [
- q(5005),
+ q(4996),
q(0),
],
q(ninia yali) => [
- q(4952),
+ q(4943),
q(0),
],
q(ninzo) => [
- q(4894),
+ q(4885),
q(0),
],
q(nipsan) => [
- q(5040),
+ q(5031),
q(0),
],
q(nisa) => [
- q(4916),
+ q(4907),
q(0),
],
q(nisenan) => [
- q(5088),
+ q(5079),
q(0),
],
q(nisga'a) => [
- q(4768),
+ q(4759),
q(0),
],
q(nisi (china)) => [
- q(7752),
+ q(7734),
q(0),
],
q(niuafo'ou) => [
- q(5115),
+ q(5106),
q(0),
],
q(niuatoputapu) => [
- q(4936),
+ q(4927),
q(0),
],
q(niuean) => [
@@ -45214,79 +45173,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nivacle) => [
- q(1644),
+ q(1642),
q(0),
],
q(niwer mil) => [
- q(2832),
+ q(2827),
q(0),
],
q(njalgulgule) => [
- q(4911),
+ q(4902),
q(0),
],
q(njebi) => [
- q(5178),
+ q(5169),
q(0),
],
q(njen) => [
- q(4910),
+ q(4901),
q(0),
],
q(njerep) => [
- q(4915),
+ q(4906),
q(0),
],
q(njyem) => [
- q(4920),
+ q(4911),
q(0),
],
q(nkami) => [
- q(4937),
+ q(4928),
q(0),
],
q(nkangala) => [
- q(4934),
+ q(4925),
q(0),
],
q(nkari) => [
- q(4945),
+ q(4936),
q(0),
],
q(nkem-nkum) => [
- q(3002),
+ q(2997),
q(0),
],
q(nkhumbi) => [
- q(3349),
+ q(3345),
q(0),
],
q(nkongho) => [
- q(4924),
+ q(4915),
q(0),
],
q(nkonya) => [
- q(4935),
+ q(4926),
q(0),
],
q(nkoroo) => [
- q(4944),
+ q(4935),
q(0),
],
q(nkoya) => [
- q(4922),
+ q(4913),
q(0),
],
q(nkukoli) => [
- q(4752),
+ q(4743),
q(0),
],
q(nkutu) => [
- q(4943),
+ q(4934),
q(0),
],
q(nnam) => [
- q(4753),
+ q(4744),
q(0),
],
q(no linguistic content) => [
@@ -45294,19 +45253,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nobiin) => [
- q(2345),
+ q(2341),
q(0),
],
q(nobonob) => [
- q(2418),
+ q(2415),
q(0),
],
q(nocaman) => [
- q(5022),
+ q(5013),
q(0),
],
q(nocte naga) => [
- q(4906),
+ q(4897),
q(0),
],
q(nogai) => [
@@ -45314,71 +45273,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(noiri) => [
- q(5018),
+ q(5009),
q(0),
],
q(nokuku) => [
- q(4932),
+ q(4923),
q(0),
],
q(nomaande) => [
- q(3871),
+ q(3862),
q(0),
],
q(nomane) => [
- q(5016),
+ q(5007),
q(0),
],
q(nomatsiguenga) => [
- q(5026),
+ q(5017),
q(0),
],
q(nomlaki) => [
- q(5021),
+ q(5012),
q(0),
],
q(nomu) => [
- q(5017),
+ q(5008),
q(0),
],
q(nong zhuang) => [
- q(7847),
+ q(7829),
q(0),
],
q(nonuya) => [
- q(5019),
+ q(5010),
q(0),
],
q(nooksack) => [
- q(5020),
+ q(5011),
q(0),
],
q(noon) => [
- q(6138),
+ q(6128),
q(0),
],
q(noone) => [
- q(4877),
+ q(4868),
q(0),
],
q(nopala chatino) => [
- q(1930),
+ q(1923),
q(0),
],
q(nora) => [
- q(5061),
+ q(5052),
q(1),
],
q(noric) => [
- q(5051),
+ q(5042),
q(0),
],
q(norn) => [
- q(5059),
+ q(5050),
q(0),
],
q(norra) => [
- q(5061),
+ q(5052),
q(0),
],
q(norse, old) => [
@@ -45386,11 +45345,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north alaskan inupiatun) => [
- q(2293),
+ q(2289),
q(0),
],
q(north ambrym) => [
- q(4396),
+ q(4388),
q(0),
],
q(north american indian languages) => [
@@ -45398,11 +45357,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north asmat) => [
- q(4939),
+ q(4930),
q(0),
],
q(north awyu) => [
- q(7657),
+ q(7639),
q(0),
],
q(north azerbaijani) => [
@@ -45414,7 +45373,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north bolivian quechua) => [
- q(5688),
+ q(5677),
q(0),
],
q(north caucasian languages) => [
@@ -45422,15 +45381,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north central mixe) => [
- q(4821),
+ q(4812),
q(0),
],
q(north efate) => [
- q(3971),
+ q(3962),
q(0),
],
q(north fali) => [
- q(2356),
+ q(2352),
q(0),
],
q(north germanic languages) => [
@@ -45438,11 +45397,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north giziga) => [
- q(2525),
+ q(2520),
q(0),
],
q(north junin quechua) => [
- q(5708),
+ q(5697),
q(0),
],
q(north levantine arabic) => [
@@ -45450,7 +45409,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north marquesan) => [
- q(4521),
+ q(4513),
q(0),
],
q(north mesopotamian arabic) => [
@@ -45458,15 +45417,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(north mofu) => [
- q(4235),
+ q(4226),
q(0),
],
q(north moluccan malay) => [
- q(4126),
+ q(4117),
q(0),
],
q(north muyu) => [
- q(3628),
+ q(3623),
q(0),
],
q(north ndebele) => [
@@ -45474,39 +45433,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(north nuaulu) => [
- q(4996),
+ q(4987),
q(0),
],
q(north picene) => [
- q(5060),
+ q(5051),
q(0),
],
q(north slavey) => [
- q(5938),
+ q(5928),
q(0),
],
q(north tairora) => [
- q(6386),
+ q(6375),
q(0),
],
q(north tanna) => [
- q(6622),
+ q(6607),
q(0),
],
q(north wahgi) => [
- q(7124),
+ q(7108),
q(0),
],
q(north watut) => [
- q(6914),
+ q(6898),
q(0),
],
q(northeast kiwai) => [
- q(3374),
+ q(3370),
q(0),
],
q(northeast maidu) => [
- q(4982),
+ q(4973),
q(0),
],
q(northeast pashai) => [
@@ -45518,15 +45477,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(northeastern dinka) => [
- q(2048),
+ q(2041),
q(0),
],
q(northeastern pomo) => [
- q(5408),
+ q(5400),
q(0),
],
q(northeastern thai) => [
- q(6753),
+ q(6737),
q(0),
],
q(northern alta) => [
@@ -45538,7 +45497,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(northern amami-oshima) => [
- q(5883),
+ q(5872),
q(0),
],
q(northern bai) => [
@@ -45546,11 +45505,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(northern betsimisaraka malagasy) => [
- q(1315),
+ q(1314),
q(0),
],
q(northern binukidnon) => [
- q(3755),
+ q(3748),
q(0),
],
q(northern bobo madare) => [
@@ -45558,31 +45517,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(northern bontok) => [
- q(5759),
+ q(5748),
q(0),
],
q(northern catanduanes bikol) => [
- q(1899),
+ q(1893),
q(0),
],
q(northern conchucos ancash quechua) => [
- q(5725),
+ q(5714),
q(0),
],
q(northern dagara) => [
- q(2011),
+ q(2004),
q(0),
],
q(northern dong) => [
- q(2115),
+ q(2108),
q(0),
],
q(northern east cree) => [
- q(1853),
+ q(1847),
q(0),
],
q(northern embera) => [
- q(2258),
+ q(2253),
q(0),
],
q(northern frisian) => [
@@ -45590,147 +45549,147 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(northern ghale) => [
- q(2506),
+ q(2501),
q(0),
],
q(northern gondi) => [
- q(2579),
+ q(2575),
q(0),
],
q(northern grebo) => [
- q(2433),
+ q(2430),
q(0),
],
q(northern guiyang hmong) => [
- q(2860),
+ q(2855),
q(0),
],
q(northern guiyang miao) => [
- q(2860),
+ q(2855),
q(1),
],
q(northern haida) => [
- q(2739),
+ q(2734),
q(0),
],
q(northern hindko) => [
- q(2807),
+ q(2802),
q(0),
],
q(northern huishui hmong) => [
- q(2785),
+ q(2780),
q(0),
],
q(northern huishui miao) => [
- q(2785),
+ q(2780),
q(1),
],
q(northern kalapuya) => [
- q(5062),
+ q(5053),
q(0),
],
q(northern kankanay) => [
- q(7438),
+ q(7420),
q(0),
],
q(northern khmer) => [
- q(3728),
+ q(3721),
q(0),
],
q(northern kissi) => [
- q(3566),
+ q(3561),
q(0),
],
q(northern kurdish) => [
- q(3471),
+ q(3467),
q(0),
],
q(northern luri) => [
- q(4043),
+ q(4034),
q(0),
],
q(northern mashan hmong) => [
- q(2790),
+ q(2785),
q(0),
],
q(northern mashan miao) => [
- q(2790),
+ q(2785),
q(1),
],
q(northern muji) => [
- q(7704),
+ q(7686),
q(0),
],
q(northern nago) => [
- q(7370),
+ q(7353),
q(0),
],
q(northern ngbandi) => [
- q(4836),
+ q(4827),
q(0),
],
q(northern nisu) => [
- q(7661),
+ q(7643),
q(0),
],
q(northern nuni) => [
- q(5124),
+ q(5115),
q(0),
],
q(northern oaxaca nahuatl) => [
- q(4881),
+ q(4872),
q(0),
],
q(northern ohlone) => [
- q(1883),
+ q(1877),
q(0),
],
q(northern one) => [
- q(5277),
+ q(5268),
q(0),
],
q(northern paiute) => [
- q(5354),
+ q(5346),
q(0),
],
q(northern pame) => [
- q(5522),
+ q(5514),
q(0),
],
q(northern pashto) => [
- q(5378),
+ q(5370),
q(0),
],
q(northern pastaza quichua) => [
- q(5714),
+ q(5703),
q(0),
],
q(northern pomo) => [
- q(5412),
+ q(5404),
q(0),
],
q(northern puebla nahuatl) => [
- q(4771),
+ q(4762),
q(0),
],
q(northern pumi) => [
- q(5515),
+ q(5507),
q(0),
],
q(northern qiandong miao) => [
- q(2742),
+ q(2737),
q(0),
],
q(northern qiang) => [
- q(1798),
+ q(1794),
q(0),
],
q(northern rengma naga) => [
- q(4999),
+ q(4990),
q(0),
],
q(northern roglai) => [
- q(5842),
+ q(5830),
q(0),
],
q(northern sami) => [
@@ -45738,11 +45697,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(northern sierra miwok) => [
- q(5079),
+ q(5070),
q(0),
],
q(northern sorsoganon) => [
- q(1271),
+ q(1270),
q(0),
],
q(northern sotho) => [
@@ -45750,99 +45709,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(northern subanen) => [
- q(6255),
+ q(6245),
q(0),
],
q(northern tarahumara) => [
- q(6501),
+ q(6489),
q(0),
],
q(northern tepehuan) => [
- q(5096),
+ q(5088),
q(0),
],
q(northern thai) => [
- q(5014),
+ q(5005),
+ q(0),
+ ],
+ q(northern tidung) => [
+ q(5080),
q(0),
],
q(northern tiwa) => [
- q(6797),
+ q(6781),
q(0),
],
q(northern tlaxiaco mixtec) => [
- q(7518),
+ q(7500),
q(0),
],
q(northern toussian) => [
- q(6724),
+ q(6708),
q(0),
],
q(northern tujia) => [
- q(6540),
+ q(6527),
q(0),
],
q(northern tutchone) => [
- q(6747),
+ q(6731),
q(0),
],
q(northern uzbek) => [
- q(6968),
+ q(6952),
q(0),
],
q(northern yukaghir) => [
- q(7665),
+ q(7647),
q(0),
],
q(northwest alaska inupiatun) => [
- q(2294),
+ q(2290),
q(0),
],
q(northwest gbaya) => [
- q(2695),
+ q(2690),
q(0),
],
q(northwest maidu) => [
- q(4322),
+ q(4314),
q(0),
],
q(northwest oaxaca mixtec) => [
- q(4647),
+ q(4639),
q(0),
],
q(northwest pashai) => [
- q(2545),
+ q(2541),
q(0),
],
q(northwest pashayi) => [
- q(2545),
+ q(2541),
q(1),
],
q(northwestern dinka) => [
- q(2054),
+ q(2047),
q(0),
],
q(northwestern fars) => [
- q(2338),
+ q(2334),
q(0),
],
q(northwestern kolami) => [
- q(3284),
+ q(3281),
q(0),
],
q(northwestern kung) => [
- q(6975),
- q(2),
+ q(6959),
+ q(1),
],
q(northwestern nisu) => [
- q(5070),
+ q(5061),
q(0),
],
q(northwestern ojibwa) => [
- q(5218),
+ q(5209),
q(0),
],
q(northwestern tamang) => [
- q(6596),
+ q(6583),
q(0),
],
q(norwegian) => [
@@ -45858,7 +45821,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(norwegian sign language) => [
- q(5075),
+ q(5066),
q(0),
],
q(not applicable) => [
@@ -45866,51 +45829,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(notre) => [
- q(1301),
+ q(1300),
q(0),
],
q(notsi) => [
- q(4767),
+ q(4758),
q(0),
],
q(nottoway) => [
- q(5100),
+ q(5091),
q(0),
],
q(nottoway-meherrin) => [
- q(5141),
+ q(5132),
q(0),
],
q(novial) => [
- q(5028),
+ q(5019),
q(0),
],
q(noy) => [
- q(5030),
+ q(5021),
q(0),
],
q(nsenga) => [
- q(5069),
+ q(5060),
q(0),
],
q(nshi) => [
- q(5067),
+ q(5058),
q(0),
],
q(nsongo) => [
- q(5086),
+ q(5077),
q(0),
],
q(ntcham) => [
- q(1497),
+ q(1495),
q(0),
],
q(ntomba) => [
- q(5095),
+ q(5087),
q(0),
],
q(nu) => [
- q(4841),
+ q(4832),
q(1),
],
q(nubaca) => [
@@ -45918,7 +45881,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nubi) => [
- q(3222),
+ q(3219),
q(0),
],
q(nubian languages) => [
@@ -45926,91 +45889,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nubri) => [
- q(3624),
+ q(3619),
q(0),
],
q(nuer) => [
- q(5121),
+ q(5112),
q(0),
],
q(nugunu (australia)) => [
- q(5008),
+ q(4999),
q(0),
],
q(nugunu (cameroon)) => [
- q(7591),
+ q(7573),
q(0),
],
q(nuk) => [
- q(5013),
+ q(5004),
q(0),
],
q(nukak maku) => [
- q(4144),
+ q(4135),
q(0),
],
q(nukna) => [
- q(3448),
+ q(3444),
q(0),
],
q(nukuini) => [
- q(5105),
+ q(5096),
q(0),
],
q(nukumanu) => [
- q(5119),
+ q(5110),
q(0),
],
q(nukunul) => [
- q(7443),
+ q(7425),
q(0),
],
q(nukuoro) => [
- q(4938),
+ q(4929),
q(0),
],
q(nukuria) => [
- q(5120),
+ q(5111),
q(0),
],
q(numana-nunku-gbantu-numbu) => [
- q(4755),
+ q(4746),
q(0),
],
q(numanggang) => [
- q(5023),
+ q(5014),
q(0),
],
q(numbami) => [
- q(6041),
+ q(6031),
q(0),
],
q(nume) => [
- q(6489),
+ q(6478),
q(0),
],
q(numee) => [
- q(3244),
+ q(3241),
q(0),
],
q(numidian) => [
- q(5149),
+ q(5140),
q(0),
],
q(nung (viet nam)) => [
- q(5122),
+ q(5113),
q(0),
],
q(nungali) => [
- q(5109),
+ q(5100),
q(0),
],
q(nunggubuyu) => [
- q(5127),
+ q(5118),
q(0),
],
q(nungu) => [
- q(5791),
+ q(5780),
q(0),
],
q(nuosu) => [
@@ -46018,75 +45981,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(nupbikha) => [
- q(5033),
+ q(5024),
q(0),
],
q(nupe-nupe-tako) => [
- q(5118),
+ q(5109),
q(0),
],
q(nupode huitoto) => [
- q(2872),
+ q(2867),
q(0),
],
q(nusa laut) => [
- q(5114),
+ q(5105),
q(0),
],
q(nusu) => [
- q(5108),
+ q(5099),
q(0),
],
q(nuu-chah-nulth) => [
- q(5113),
+ q(5104),
q(0),
],
q(nuuchahnulth) => [
- q(5113),
+ q(5104),
q(1),
],
q(nyabwa) => [
- q(5133),
+ q(5124),
q(0),
],
q(nyaheun) => [
- q(4826),
+ q(4817),
q(0),
],
q(nyahkur) => [
- q(1670),
+ q(1666),
q(0),
],
q(nyakyusa-ngonde) => [
- q(5176),
+ q(5167),
q(0),
],
q(nyalayu) => [
- q(7687),
+ q(7669),
q(0),
],
q(nyali) => [
- q(4951),
+ q(4942),
q(0),
],
q(nyam) => [
- q(4970),
+ q(4961),
q(0),
],
q(nyamal) => [
- q(4960),
+ q(4951),
q(0),
],
q(nyambo) => [
- q(5029),
+ q(5020),
q(0),
],
q(nyamusa-molo) => [
- q(5137),
+ q(5128),
q(0),
],
q(nyamwanga) => [
- q(4635),
+ q(4627),
q(0),
],
q(nyamwezi) => [
@@ -46094,35 +46057,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nyaneka) => [
- q(5165),
+ q(5156),
q(0),
],
q(nyang'i) => [
- q(5167),
+ q(5158),
q(0),
],
q(nyanga) => [
- q(5164),
+ q(5155),
q(0),
],
q(nyanga-li) => [
- q(5157),
+ q(5148),
q(0),
],
q(nyangatom) => [
- q(4997),
+ q(4988),
q(0),
],
q(nyangbo) => [
- q(5156),
+ q(5147),
q(0),
],
q(nyangga) => [
- q(5010),
+ q(5001),
q(0),
],
q(nyangumarta) => [
- q(4988),
+ q(4979),
q(0),
],
q(nyanja) => [
@@ -46134,79 +46097,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nyankpa) => [
- q(7628),
+ q(7610),
q(0),
],
q(nyarafolo senoufo) => [
- q(5982),
+ q(5972),
q(0),
],
q(nyaturu) => [
- q(5790),
+ q(5779),
q(0),
],
q(nyaw) => [
- q(5174),
+ q(5165),
q(0),
],
q(nyawaygi) => [
- q(5171),
+ q(5162),
q(0),
],
q(nyelayu) => [
- q(7687),
+ q(7669),
q(1),
],
q(nyemba) => [
- q(4740),
+ q(4731),
q(0),
],
q(nyengo) => [
- q(5159),
+ q(5150),
q(0),
],
q(nyenkha) => [
- q(4814),
+ q(4805),
q(0),
],
q(nyeu) => [
- q(5166),
+ q(5157),
q(0),
],
q(nyigina) => [
- q(5162),
+ q(5153),
q(0),
],
q(nyiha (malawi)) => [
- q(5169),
+ q(5160),
q(0),
],
q(nyiha (tanzania)) => [
- q(4888),
+ q(4879),
q(0),
],
q(nyika (malawi and zambia)) => [
- q(4942),
+ q(4933),
q(0),
],
q(nyika (tanzania)) => [
- q(4940),
+ q(4931),
q(0),
],
q(nyindrou) => [
- q(3913),
+ q(3904),
q(0),
],
q(nyindu) => [
- q(5161),
+ q(5152),
q(0),
],
q(nyishi) => [
- q(4921),
+ q(4912),
q(0),
],
q(nyiyaparli) => [
- q(7444),
+ q(7426),
q(0),
],
q(nynorsk, norwegian) => [
@@ -46214,19 +46177,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(nyokon) => [
- q(5131),
+ q(5122),
q(0),
],
q(nyole) => [
- q(5112),
+ q(5103),
q(0),
],
q(nyong) => [
- q(4591),
+ q(4583),
q(0),
],
q(nyore) => [
- q(5158),
+ q(5149),
q(0),
],
q(nyoro) => [
@@ -46234,27 +46197,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(nyulnyul) => [
- q(5173),
+ q(5164),
q(0),
],
q(nyunga) => [
- q(5170),
+ q(5161),
q(0),
],
q(nyungwe) => [
- q(5172),
+ q(5163),
q(0),
],
q(nzakambay) => [
- q(5183),
+ q(5174),
q(0),
],
q(nzakara) => [
- q(5179),
+ q(5170),
q(0),
],
q(nzanyi) => [
- q(4905),
+ q(4896),
q(0),
],
q(nzima) => [
@@ -46262,27 +46225,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(o'chi'chi') => [
- q(7446),
+ q(7428),
q(0),
],
q(o'du) => [
- q(6832),
+ q(6816),
q(0),
],
q(obanliku) => [
- q(1637),
+ q(1635),
q(0),
],
q(obispeno) => [
- q(5189),
+ q(5180),
q(0),
],
q(oblo) => [
- q(5191),
+ q(5182),
q(0),
],
q(obo manobo) => [
- q(5193),
+ q(5184),
q(0),
],
q(obokuitai) => [
@@ -46294,11 +46257,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(obulom) => [
- q(5196),
+ q(5187),
q(0),
],
q(ocaina) => [
- q(5197),
+ q(5188),
q(0),
],
q(occidental) => [
@@ -46310,35 +46273,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ocotepec mixtec) => [
- q(4302),
+ q(4293),
q(0),
],
q(ocotlan zapotec) => [
- q(7807),
+ q(7789),
q(0),
],
q(od) => [
- q(5202),
+ q(5193),
q(0),
],
+ q(odia (individual language)) => [
+ q(5299),
+ q(0),
+ ],
+ q(odia (macrolanguage)) => [
+ q(0328),
+ q(2),
+ ],
q(odiai) => [
- q(1191),
+ q(1190),
q(0),
],
q(odoodee) => [
- q(3405),
+ q(3401),
q(0),
],
q(odual) => [
- q(5204),
+ q(5195),
q(0),
],
q(odut) => [
- q(5201),
+ q(5192),
q(0),
],
q(ofaye) => [
- q(5293),
+ q(5284),
q(0),
],
q(official aramaic (700-300 bce)) => [
@@ -46346,27 +46317,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ofo) => [
- q(5205),
+ q(5196),
q(0),
],
q(ogbah) => [
- q(5209),
+ q(5200),
q(0),
],
q(ogbia) => [
- q(5208),
+ q(5199),
q(0),
],
q(ogbogolo) => [
- q(5211),
+ q(5202),
q(0),
],
q(ogbronuagum) => [
- q(5213),
+ q(5204),
q(0),
],
q(ogea) => [
- q(2284),
+ q(2279),
q(0),
],
q(oirat) => [
@@ -46374,7 +46345,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(oirata) => [
- q(5216),
+ q(5207),
q(0),
],
q(ojibwa) => [
@@ -46382,71 +46353,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ojitlan chinantec) => [
- q(1723),
+ q(1719),
q(0),
],
q(okanagan) => [
- q(5225),
+ q(5216),
q(0),
],
q(oki-no-erabu) => [
- q(5236),
+ q(5227),
q(0),
],
q(okiek) => [
- q(5231),
+ q(5222),
q(0),
],
q(oko-eni-osayen) => [
- q(5239),
+ q(5230),
q(0),
],
q(oko-juwoi) => [
- q(5232),
+ q(5223),
q(0),
],
q(okobo) => [
- q(5226),
+ q(5217),
q(0),
],
q(okodia) => [
- q(5227),
+ q(5218),
q(0),
],
q(okolod) => [
- q(3569),
+ q(3564),
q(0),
],
q(okpamheri) => [
- q(5288),
+ q(5279),
q(0),
],
q(okpe (northwestern edo)) => [
- q(5242),
+ q(5233),
q(0),
],
q(okpe (southwestern edo)) => [
- q(5228),
+ q(5219),
q(0),
],
q(oksapmin) => [
- q(5290),
+ q(5281),
q(0),
],
q(oku) => [
- q(5240),
+ q(5231),
q(0),
],
q(old aramaic (up to 700 bce)) => [
- q(5187),
+ q(5178),
q(0),
],
q(old avar) => [
- q(5188),
+ q(5179),
q(0),
],
q(old breton) => [
- q(5195),
+ q(5186),
q(0),
],
q(old bulgarian) => [
@@ -46454,11 +46425,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(old burmese) => [
- q(5194),
+ q(5185),
q(0),
],
q(old chinese) => [
- q(5198),
+ q(5189),
q(0),
],
q(old church slavonic) => [
@@ -46466,11 +46437,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(4),
],
q(old cornish) => [
- q(5199),
+ q(5190),
q(0),
],
q(old dutch) => [
- q(5203),
+ q(5194),
q(0),
],
q(old english (ca. 450-1100)) => [
@@ -46482,11 +46453,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old frisian) => [
- q(5206),
+ q(5197),
q(0),
],
q(old georgian) => [
- q(5210),
+ q(5201),
q(0),
],
q(old high german (ca. 750-1050)) => [
@@ -46494,11 +46465,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old hittite) => [
- q(5214),
+ q(5205),
q(0),
],
q(old hungarian) => [
- q(5215),
+ q(5206),
q(0),
],
q(old irish (to 900)) => [
@@ -46506,31 +46477,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old japanese) => [
- q(5221),
+ q(5212),
q(0),
],
q(old kentish sign language) => [
- q(5234),
+ q(5225),
q(0),
],
q(old korean (3rd-9th cent.)) => [
- q(5237),
+ q(5228),
q(0),
],
q(old lithuanian) => [
- q(5250),
+ q(5241),
q(0),
],
q(old manipuri) => [
- q(5261),
+ q(5252),
q(0),
],
q(old marathi) => [
- q(5262),
+ q(5253),
q(0),
],
q(old mon) => [
- q(5266),
+ q(5257),
q(0),
],
q(old newari) => [
@@ -46542,7 +46513,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old nubian) => [
- q(5281),
+ q(5272),
q(0),
],
q(old occitan (to 1500)) => [
@@ -46550,7 +46521,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(old ossetic) => [
- q(5287),
+ q(5278),
q(0),
],
q(old persian (ca. 600-400 b.c.)) => [
@@ -46562,11 +46533,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old russian) => [
- q(5305),
+ q(5296),
q(0),
],
q(old saxon) => [
- q(5316),
+ q(5307),
q(0),
],
q(old slavonic) => [
@@ -46574,103 +46545,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(old spanish) => [
- q(5313),
+ q(5304),
q(0),
],
q(old tamil) => [
- q(5332),
+ q(5323),
q(0),
],
q(old tibetan) => [
- q(5317),
+ q(5308),
q(0),
],
q(old turkish) => [
- q(5321),
+ q(5312),
q(0),
],
q(old uighur) => [
- q(5337),
+ q(5328),
q(0),
],
q(old welsh) => [
- q(5340),
+ q(5332),
q(0),
],
q(olekha) => [
- q(5245),
+ q(5236),
q(0),
],
q(olkol) => [
- q(5246),
+ q(5237),
q(0),
],
q(olo) => [
- q(5270),
+ q(5261),
q(0),
],
q(oloma) => [
- q(5247),
+ q(5238),
q(0),
],
q(olrat) => [
- q(5249),
+ q(5240),
q(0),
],
q(olu'bo) => [
- q(4083),
+ q(4074),
q(0),
],
q(olukhayo) => [
- q(3950),
+ q(3941),
q(1),
],
q(olulumo-ikom) => [
- q(2943),
+ q(2937),
q(0),
],
q(oluluyia) => [
- q(4092),
+ q(4083),
q(1),
],
q(olumarachi) => [
- q(4046),
+ q(4037),
q(1),
],
q(olumarama) => [
- q(4049),
+ q(4040),
q(1),
],
q(olunyole) => [
- q(5158),
+ q(5149),
q(1),
],
q(olusamia) => [
- q(4063),
+ q(4054),
q(1),
],
q(olushisa) => [
- q(3952),
+ q(3943),
q(1),
],
q(oluta popoluca) => [
- q(5497),
+ q(5490),
q(0),
],
q(olutsotso) => [
- q(4074),
+ q(4065),
q(1),
],
q(oluwanga) => [
- q(4100),
+ q(4091),
q(1),
],
q(omagua) => [
- q(5255),
+ q(5246),
q(0),
],
q(omaha-ponca) => [
- q(5251),
+ q(5243),
q(0),
],
q(omani arabic) => [
@@ -46678,23 +46649,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ombamba) => [
- q(4139),
+ q(4130),
q(0),
],
q(ombo) => [
- q(5258),
- q(0),
- ],
- q(omejes) => [
- q(5254),
+ q(5249),
q(0),
],
q(ometepec nahuatl) => [
- q(4876),
+ q(4867),
q(0),
],
q(omi) => [
- q(5256),
+ q(5247),
q(0),
],
q(omie) => [
@@ -46702,7 +46669,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(omok) => [
- q(5257),
+ q(5248),
q(0),
],
q(omotic languages) => [
@@ -46710,99 +46677,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(omotik) => [
- q(5263),
+ q(5254),
q(0),
],
q(omurano) => [
- q(5264),
+ q(5255),
q(0),
],
q(ona) => [
- q(5267),
+ q(5258),
q(0),
],
q(oneida) => [
- q(5269),
+ q(5260),
q(0),
],
q(ong) => [
- q(5284),
+ q(5275),
q(0),
],
q(onge) => [
- q(5285),
+ q(5276),
q(0),
],
q(onin) => [
- q(5271),
+ q(5262),
q(0),
],
q(onin based pidgin) => [
- q(5282),
+ q(5273),
q(0),
],
q(oniyan) => [
- q(1449),
+ q(1448),
q(1),
],
q(onjob) => [
- q(5272),
+ q(5263),
q(0),
],
q(ono) => [
- q(5278),
+ q(5269),
q(0),
],
q(onobasulu) => [
- q(5274),
+ q(5265),
q(0),
],
q(onondaga) => [
- q(5275),
+ q(5266),
q(0),
],
q(ontenu) => [
- q(5279),
+ q(5270),
q(0),
],
q(ontong java) => [
- q(5223),
+ q(5214),
q(0),
],
q(oorlams) => [
- q(5286),
+ q(5277),
q(0),
],
q(opao) => [
- q(5291),
+ q(5282),
q(0),
],
q(opata) => [
- q(5292),
+ q(5283),
q(0),
],
q(opuuo) => [
- q(3894),
+ q(3885),
q(0),
],
q(orang kanaq) => [
- q(5299),
+ q(5290),
q(0),
],
q(orang seletar) => [
- q(5302),
+ q(5293),
q(0),
],
q(oraon sadri) => [
- q(5957),
+ q(5947),
q(0),
],
q(orejon) => [
- q(5296),
+ q(5287),
q(0),
],
q(oring) => [
- q(5297),
+ q(5288),
q(0),
],
q(oriya) => [
@@ -46810,51 +46777,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(oriya (individual language)) => [
- q(5308),
- q(0),
+ q(5299),
+ q(1),
],
q(oriya (macrolanguage)) => [
q(0328),
q(1),
],
q(orizaba nahuatl) => [
- q(4957),
+ q(4948),
q(0),
],
q(orma) => [
- q(5295),
+ q(5286),
q(0),
],
q(ormu) => [
- q(5309),
+ q(5300),
q(0),
],
q(ormuri) => [
- q(5304),
+ q(5295),
q(0),
],
q(oro) => [
- q(5307),
+ q(5298),
q(0),
],
q(oro win) => [
- q(5306),
+ q(5297),
q(0),
],
q(oroch) => [
- q(5186),
+ q(5177),
q(0),
],
q(oroha) => [
- q(5294),
+ q(5285),
q(0),
],
q(orok) => [
- q(5185),
+ q(5176),
q(0),
],
q(orokaiva) => [
- q(5241),
+ q(5232),
q(0),
],
q(oroko) => [
@@ -46862,7 +46829,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(orokolo) => [
- q(5300),
+ q(5291),
q(0),
],
q(oromo) => [
@@ -46870,19 +46837,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(oroqen) => [
- q(5298),
+ q(5289),
q(0),
],
q(orowe) => [
- q(1382),
+ q(1381),
q(0),
],
q(oruma) => [
- q(5301),
+ q(5292),
q(0),
],
q(orya) => [
- q(6946),
+ q(6930),
q(0),
],
q(osage) => [
@@ -46890,19 +46857,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(osatu) => [
- q(5314),
+ q(5305),
q(0),
],
q(oscan) => [
- q(5310),
+ q(5301),
q(0),
],
q(osing) => [
- q(5311),
+ q(5302),
q(0),
],
q(ososo) => [
- q(5312),
+ q(5303),
q(0),
],
q(ossetian) => [
@@ -46914,15 +46881,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(ot danum) => [
- q(5318),
+ q(5309),
q(0),
],
q(otank) => [
- q(6954),
+ q(6938),
q(0),
],
q(oti) => [
- q(5320),
+ q(5311),
q(0),
],
q(oto-manguean languages) => [
@@ -46934,11 +46901,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(otoro) => [
- q(5326),
+ q(5317),
q(0),
],
q(ottawa) => [
- q(5330),
+ q(5321),
q(0),
],
q(ottoman turkish (1500-1928)) => [
@@ -46946,131 +46913,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(otuho) => [
- q(4031),
+ q(4022),
q(0),
],
q(otuke) => [
- q(5329),
+ q(5320),
q(0),
],
q(ouma) => [
- q(5338),
+ q(5329),
q(0),
],
q(oune) => [
- q(5336),
+ q(5327),
+ q(0),
+ ],
+ q(ovdalian) => [
+ q(5330),
q(0),
],
q(owa) => [
- q(6266),
+ q(6256),
q(0),
],
q(owenia) => [
- q(7236),
+ q(7221),
q(0),
],
q(owiniga) => [
- q(5339),
+ q(5331),
q(0),
],
q(oy) => [
- q(5341),
+ q(5333),
q(0),
],
q(oya'oya) => [
- q(5344),
+ q(5336),
q(0),
],
q(oyda) => [
- q(5342),
+ q(5334),
q(0),
],
q(ozolotepec zapotec) => [
- q(7818),
+ q(7800),
q(0),
],
q(ozumacin chinantec) => [
- q(1729),
+ q(1725),
q(0),
],
q(pa di) => [
- q(5399),
+ q(5391),
q(0),
],
q(pa'a) => [
- q(5585),
+ q(5575),
q(0),
],
q(pa'o) => [
- q(1288),
+ q(1287),
q(1),
],
q(pa'o karen) => [
- q(1288),
+ q(1287),
q(0),
],
q(pa-hng) => [
- q(5435),
+ q(5428),
q(0),
],
q(paafang) => [
- q(5423),
+ q(5415),
q(0),
],
q(paakantyi) => [
- q(2140),
+ q(2133),
q(0),
],
q(paama) => [
- q(5508),
+ q(5501),
q(0),
],
q(paasaal) => [
- q(6038),
+ q(6028),
q(0),
],
q(pacahuara) => [
- q(5395),
+ q(5387),
q(0),
],
q(pacaraos quechua) => [
- q(5710),
+ q(5699),
q(0),
],
q(pacific gulf yupik) => [
- q(2259),
+ q(2254),
q(0),
],
q(pacoh) => [
- q(5347),
+ q(5339),
q(0),
],
q(padoe) => [
- q(5401),
+ q(5393),
q(0),
],
q(paekche) => [
- q(5476),
+ q(5469),
q(0),
],
q(paelignian) => [
- q(5432),
+ q(5424),
q(0),
],
q(paez) => [
- q(5364),
+ q(5356),
q(0),
],
q(pagi) => [
- q(5429),
+ q(5421),
q(0),
],
q(pagibete) => [
- q(5349),
+ q(5341),
q(0),
],
q(pagu) => [
- q(5434),
+ q(5426),
q(0),
],
q(pahanan agta) => [
@@ -47078,15 +47049,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pahari-potwari) => [
- q(5444),
+ q(5437),
q(0),
],
q(pahi) => [
- q(3897),
+ q(3888),
q(0),
],
q(pahlavani) => [
- q(5447),
+ q(5440),
q(0),
],
q(pahlavi) => [
@@ -47094,47 +47065,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pai tavytera) => [
- q(5628),
+ q(5617),
q(0),
],
q(paici) => [
- q(5594),
+ q(5584),
q(0),
],
q(paipai) => [
- q(5574),
+ q(5564),
q(0),
],
q(paite chin) => [
- q(5391),
+ q(5383),
q(0),
],
q(paiwan) => [
- q(5666),
+ q(5655),
q(0),
],
q(pak-tong) => [
- q(5477),
+ q(5470),
q(0),
],
q(pakaasnovos) => [
- q(5359),
+ q(5351),
q(0),
],
q(pakanha) => [
- q(5479),
+ q(5472),
q(0),
],
q(pakistan sign language) => [
- q(5483),
+ q(5476),
q(0),
],
q(paku) => [
- q(5485),
+ q(5478),
q(0),
],
q(paku karen) => [
- q(3111),
+ q(3108),
q(0),
],
q(pal) => [
@@ -47142,15 +47113,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(palaic) => [
- q(5499),
+ q(5492),
q(0),
],
q(palaka senoufo) => [
- q(5500),
+ q(5493),
q(0),
],
q(palantla chinantec) => [
- q(1831),
+ q(1826),
q(0),
],
q(palauan) => [
@@ -47158,11 +47129,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(paleni) => [
- q(5539),
+ q(5531),
q(0),
],
q(palenquero) => [
- q(5496),
+ q(5489),
q(0),
],
q(pali) => [
@@ -47170,63 +47141,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(palikur) => [
- q(5503),
+ q(5496),
q(0),
],
q(paliyan) => [
- q(5386),
+ q(5378),
q(0),
],
q(pallanganmiddang) => [
- q(5511),
+ q(5503),
q(0),
],
q(palor) => [
- q(2333),
+ q(2329),
q(0),
],
q(palpa) => [
- q(5498),
+ q(5491),
q(0),
],
q(palu'e) => [
- q(5490),
+ q(5483),
q(0),
],
q(paluan) => [
- q(5507),
+ q(5500),
q(0),
],
q(palula) => [
- q(5440),
+ q(5433),
q(1),
],
- q(palumata) => [
- q(5510),
- q(0),
- ],
q(palya bareli) => [
- q(1395),
+ q(1394),
q(0),
],
q(pam) => [
- q(5520),
+ q(5512),
q(0),
],
q(pambia) => [
- q(5509),
+ q(5502),
q(0),
],
q(pamlico) => [
- q(5517),
+ q(5509),
q(0),
],
q(pamona) => [
- q(5513),
+ q(5505),
q(0),
],
q(pamosu) => [
- q(2758),
+ q(2753),
q(0),
],
q(pampanga) => [
@@ -47238,47 +47205,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pana (burkina faso)) => [
- q(5544),
+ q(5536),
q(0),
],
q(pana (central african republic)) => [
- q(5553),
+ q(5545),
q(0),
],
q(panamanian sign language) => [
- q(4065),
+ q(4056),
q(0),
],
q(panamint) => [
- q(5356),
+ q(5348),
q(0),
],
q(panao huanuco quechua) => [
- q(5723),
+ q(5712),
q(0),
],
q(panara) => [
- q(3577),
+ q(3572),
q(0),
],
q(panasuan) => [
- q(5618),
+ q(5607),
q(0),
],
q(panawa) => [
- q(5662),
+ q(5651),
q(0),
],
q(pancana) => [
- q(5543),
+ q(5535),
q(0),
],
q(panchpargania) => [
- q(6429),
+ q(6418),
q(0),
],
q(pande) => [
- q(1262),
+ q(1261),
q(0),
],
q(pangasinan) => [
@@ -47286,27 +47253,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pangseng) => [
- q(5433),
+ q(5425),
q(0),
],
q(pangutaran sama) => [
- q(6104),
+ q(6094),
q(0),
],
q(pangwa) => [
- q(5375),
+ q(5367),
q(0),
],
q(pangwali) => [
- q(5428),
+ q(5420),
q(0),
],
q(panim) => [
- q(5545),
+ q(5537),
q(0),
],
q(paniya) => [
- q(5387),
+ q(5379),
q(0),
],
q(panjabi) => [
@@ -47314,31 +47281,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pankarare) => [
- q(5361),
+ q(5353),
q(0),
],
q(pankararu) => [
- q(5363),
+ q(5355),
q(0),
],
q(pankhu) => [
- q(5478),
+ q(5471),
q(0),
],
q(pannei) => [
- q(5532),
+ q(5524),
q(0),
],
q(pano) => [
- q(4505),
+ q(4497),
q(0),
],
q(panoan katukina) => [
- q(3498),
+ q(3494),
q(0),
],
q(panobo) => [
- q(5542),
+ q(5534),
q(0),
],
q(panyi bai) => [
@@ -47346,35 +47313,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(panytyima) => [
- q(5550),
- q(0),
- ],
- q(pao) => [
- q(5572),
+ q(5542),
q(0),
],
q(papantla totonac) => [
- q(6646),
+ q(6630),
q(0),
],
q(papapana) => [
- q(5578),
+ q(5568),
q(0),
],
q(papar) => [
- q(2133),
+ q(2126),
q(0),
],
q(papasena) => [
- q(5357),
+ q(5349),
q(0),
],
q(papel) => [
- q(5373),
+ q(5365),
q(0),
],
q(papi) => [
- q(5573),
+ q(5563),
q(0),
],
q(papiamento) => [
@@ -47382,11 +47345,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(papitalai) => [
- q(5358),
+ q(5350),
q(0),
],
q(papora) => [
- q(5584),
+ q(5574),
+ q(0),
+ ],
+ q(papua new guinean sign language) => [
+ q(5427),
q(0),
],
q(papuan languages) => [
@@ -47394,11 +47361,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(papuan malay) => [
- q(5528),
+ q(5520),
q(0),
],
q(papuma) => [
- q(5577),
+ q(5567),
q(0),
],
q(para arara) => [
@@ -47406,95 +47373,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(para gaviao) => [
- q(2675),
+ q(2670),
q(0),
],
q(para naga) => [
- q(5678),
+ q(5667),
q(0),
],
q(parachi) => [
- q(5588),
+ q(5578),
q(0),
],
q(paraguayan guarani) => [
- q(2648),
+ q(2644),
q(0),
],
q(paraguayan sign language) => [
- q(5674),
+ q(5663),
q(0),
],
q(parakana) => [
- q(5353),
+ q(5345),
q(0),
],
q(paranan) => [
- q(5591),
+ q(5581),
q(0),
],
q(paranawat) => [
- q(5350),
+ q(5342),
q(0),
],
q(paraujano) => [
- q(5368),
+ q(5360),
q(0),
],
q(parauk) => [
- q(5595),
+ q(5585),
q(0),
],
q(parawen) => [
- q(5605),
+ q(5595),
q(0),
],
q(pardhan) => [
- q(5388),
+ q(5380),
q(0),
],
q(pardhi) => [
- q(5392),
+ q(5384),
q(0),
],
q(pare) => [
- q(5583),
+ q(5573),
q(0),
],
q(parecis) => [
- q(5346),
+ q(5338),
q(0),
],
q(parenga) => [
- q(5390),
+ q(5382),
q(0),
],
q(pari) => [
- q(3951),
+ q(3942),
q(0),
],
q(parkari koli) => [
- q(3690),
+ q(3683),
q(0),
],
q(parkwa) => [
- q(5370),
+ q(5362),
q(0),
],
q(parsi) => [
- q(5599),
+ q(5589),
q(0),
],
q(parsi-dari) => [
- q(5589),
+ q(5579),
q(0),
],
q(parthian) => [
- q(7469),
+ q(7451),
q(0),
],
q(parya) => [
- q(5355),
+ q(5347),
q(0),
],
q(pashto) => [
@@ -47502,63 +47469,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(pasi) => [
- q(5621),
+ q(5610),
q(0),
],
q(pass valley yali) => [
- q(7577),
+ q(7559),
q(0),
],
q(patamona) => [
- q(5365),
+ q(5357),
q(0),
],
q(patani) => [
- q(5631),
+ q(5620),
q(0),
],
q(pataxo ha-ha-hae) => [
- q(5629),
+ q(5618),
q(0),
],
q(patep) => [
- q(5633),
+ q(5622),
q(0),
],
q(pathiya) => [
- q(5640),
+ q(5629),
q(0),
],
q(patpatar) => [
- q(2489),
+ q(2486),
q(0),
],
q(pattani) => [
- q(3796),
+ q(3787),
q(0),
],
q(pattani malay) => [
- q(4225),
+ q(4216),
q(0),
],
q(pattapu) => [
- q(5634),
+ q(5623),
q(0),
],
q(patwin) => [
- q(5664),
+ q(5653),
q(0),
],
q(paulohi) => [
- q(5492),
+ q(5485),
q(0),
],
q(paumari) => [
- q(5348),
+ q(5340),
q(0),
],
q(paunaka) => [
- q(5538),
+ q(5530),
q(0),
],
q(pauri bareli) => [
@@ -47566,35 +47533,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pauserna) => [
- q(5617),
+ q(5606),
q(0),
],
q(pawaia) => [
- q(5661),
+ q(5650),
q(0),
],
q(pawnee) => [
- q(5360),
+ q(5352),
q(0),
],
q(paynamar) => [
- q(5523),
+ q(5515),
q(0),
],
q(pe) => [
- q(5352),
+ q(5344),
q(0),
],
q(pear) => [
- q(5382),
+ q(5374),
q(0),
],
q(pech) => [
- q(5362),
+ q(5354),
q(0),
],
q(pecheneg) => [
- q(7458),
+ q(7440),
q(0),
],
q(pedi) => [
@@ -47602,19 +47569,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(peere) => [
- q(5424),
+ q(5416),
q(0),
],
q(pei) => [
- q(5581),
+ q(5571),
q(0),
],
q(pekal) => [
- q(5414),
+ q(5406),
q(0),
],
q(pela) => [
- q(1570),
+ q(1568),
q(0),
],
q(pele-ata) => [
@@ -47622,7 +47589,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pelende) => [
- q(5580),
+ q(5570),
q(0),
],
q(pemon) => [
@@ -47630,55 +47597,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pemono) => [
- q(5419),
+ q(5411),
q(0),
],
q(penang sign language) => [
- q(5613),
+ q(5602),
q(0),
],
q(penchal) => [
- q(5413),
+ q(5405),
q(0),
],
q(pendau) => [
- q(6912),
+ q(6896),
q(0),
],
q(pengo) => [
- q(5409),
+ q(5401),
q(0),
],
q(pennsylvania german) => [
- q(5398),
+ q(5390),
q(0),
],
q(penoles mixtec) => [
- q(4309),
+ q(4300),
q(0),
],
q(penrhyn) => [
- q(5535),
+ q(5527),
q(0),
],
q(pentlatch) => [
- q(5639),
+ q(5628),
q(0),
],
q(perai) => [
- q(7112),
+ q(7096),
q(0),
],
q(peranakan indonesian) => [
- q(5404),
+ q(5396),
q(0),
],
q(peripheral mongolian) => [
- q(4605),
+ q(4597),
q(0),
],
q(pero) => [
- q(5463),
+ q(5456),
q(0),
],
q(persian) => [
@@ -47686,7 +47653,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(persian sign language) => [
- q(5610),
+ q(5599),
q(0),
],
q(persian, old (ca.600-400 b.c.)) => [
@@ -47694,55 +47661,55 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(peruvian sign language) => [
- q(5596),
+ q(5586),
q(0),
],
q(petapa zapotec) => [
- q(7918),
+ q(7900),
q(0),
],
q(petats) => [
- q(5420),
+ q(5412),
q(0),
],
q(petjo) => [
- q(5421),
+ q(5413),
q(0),
],
q(peve) => [
- q(3980),
+ q(3971),
q(0),
],
q(pfaelzisch) => [
- q(5425),
+ q(5417),
q(0),
],
q(phai) => [
- q(5603),
+ q(5593),
q(0),
],
q(phake) => [
- q(5439),
+ q(5432),
q(0),
],
q(phala) => [
- q(7727),
+ q(7709),
q(0),
],
q(phalura) => [
- q(5440),
+ q(5433),
q(0),
],
q(phana') => [
- q(5443),
+ q(5436),
q(0),
],
q(phangduwali) => [
- q(5448),
+ q(5441),
q(0),
],
q(phende) => [
- q(5415),
+ q(5407),
q(0),
],
q(philippine languages) => [
@@ -47750,11 +47717,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(philippine sign language) => [
- q(5620),
+ q(5609),
q(0),
],
q(phimbi) => [
- q(5441),
+ q(5434),
q(0),
],
q(phoenician) => [
@@ -47762,127 +47729,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(phola) => [
- q(7729),
+ q(7711),
q(0),
],
q(pholo) => [
- q(7655),
+ q(7637),
q(0),
],
q(phom naga) => [
- q(5035),
+ q(5026),
q(0),
],
q(phong-kniang) => [
- q(5551),
+ q(5543),
q(0),
],
q(phrae pwo karen) => [
- q(3397),
+ q(3393),
q(0),
],
q(phrygian) => [
- q(7460),
+ q(7442),
q(0),
],
q(phu thai) => [
- q(5445),
+ q(5438),
q(0),
],
q(phuan) => [
- q(5446),
+ q(5439),
q(0),
],
q(phudagi) => [
- q(5436),
+ q(5429),
q(0),
],
q(phuie) => [
- q(5647),
+ q(5636),
q(0),
],
q(phukha) => [
- q(5438),
+ q(5431),
q(0),
],
q(phuma) => [
- q(7731),
+ q(7713),
q(0),
],
q(phunoi) => [
- q(5442),
+ q(5435),
q(0),
],
q(phuong) => [
- q(5437),
+ q(5430),
q(0),
],
q(phupa) => [
- q(7734),
+ q(7716),
q(0),
],
q(phupha) => [
- q(7730),
+ q(7712),
q(0),
],
q(phuza) => [
- q(7735),
+ q(7717),
q(0),
],
q(piamatsina) => [
- q(5635),
+ q(5624),
q(0),
],
q(piame) => [
- q(5461),
+ q(5454),
q(0),
],
q(piapoco) => [
- q(5462),
+ q(5455),
q(0),
],
q(piaroa) => [
- q(5452),
+ q(5445),
q(0),
],
q(picard) => [
- q(5384),
+ q(5376),
q(0),
],
q(pichis asheninka) => [
- q(1839),
+ q(1834),
q(0),
],
q(pictish) => [
- q(7461),
+ q(7443),
q(0),
],
q(pidgin delaware) => [
- q(1998),
+ q(1991),
q(0),
],
q(piemontese) => [
- q(5524),
+ q(5516),
q(0),
],
q(pijao) => [
- q(5458),
+ q(5451),
q(0),
],
q(pije) => [
- q(5472),
+ q(5465),
q(0),
],
q(pijin) => [
- q(5465),
+ q(5458),
q(0),
],
q(pilaga) => [
- q(5491),
+ q(5484),
q(0),
],
q(pileni) => [
- q(5468),
+ q(5461),
q(0),
],
q(pilipino) => [
@@ -47890,167 +47857,167 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(pima bajo) => [
- q(5449),
+ q(5442),
q(0),
],
q(pimbwe) => [
- q(5469),
+ q(5462),
q(0),
],
q(pinai-hagahai) => [
- q(5541),
+ q(5533),
q(0),
],
q(pingelapese) => [
- q(5454),
+ q(5447),
q(0),
],
q(pini) => [
- q(5457),
+ q(5450),
q(0),
],
q(pinigura) => [
- q(5549),
+ q(5541),
q(0),
],
q(pinjarup) => [
- q(5537),
+ q(5529),
q(0),
],
q(pinji) => [
- q(5451),
+ q(5444),
q(0),
],
q(pinotepa nacional mixtec) => [
- q(4311),
+ q(4302),
q(0),
],
q(pintiini) => [
- q(5630),
+ q(5619),
q(0),
],
q(pintupi-luritja) => [
- q(5467),
+ q(5460),
q(0),
],
q(pinyin) => [
- q(5552),
+ q(5544),
q(0),
],
q(pipil) => [
- q(5576),
+ q(5566),
q(0),
],
q(piraha) => [
- q(4686),
+ q(4678),
q(0),
],
q(piratapuyo) => [
- q(5464),
+ q(5457),
q(0),
],
q(pirlatapa) => [
- q(1575),
+ q(1573),
q(0),
],
q(piro) => [
- q(5453),
+ q(5446),
q(0),
],
q(pirriya) => [
- q(7457),
+ q(7439),
q(0),
],
q(pisabo) => [
- q(5455),
+ q(5448),
q(0),
],
q(pisaflores tepehua) => [
- q(6667),
+ q(6651),
q(0),
],
q(piscataway) => [
- q(5627),
+ q(5616),
q(0),
],
q(pisidian) => [
- q(7470),
+ q(7452),
q(0),
],
q(pitcairn-norfolk) => [
- q(5456),
+ q(5449),
q(0),
],
q(pite sami) => [
- q(6058),
+ q(6048),
q(0),
],
q(piti) => [
- q(5394),
+ q(5386),
q(0),
],
q(pitjantjatjara) => [
- q(5473),
+ q(5466),
q(0),
],
q(pitta pitta) => [
- q(5466),
+ q(5459),
q(0),
],
q(piu) => [
- q(5470),
+ q(5463),
q(0),
],
q(piya-kwonci) => [
- q(5471),
+ q(5464),
q(0),
],
q(plains cree) => [
- q(1852),
+ q(1846),
q(0),
],
q(plains indian sign language) => [
- q(5611),
+ q(5600),
q(0),
],
q(plains miwok) => [
- q(5526),
+ q(5518),
q(0),
],
q(plapo krumen) => [
- q(3629),
+ q(3624),
q(0),
],
q(plateau malagasy) => [
- q(5502),
+ q(5495),
q(0),
],
q(plautdietsch) => [
- q(5402),
+ q(5394),
q(0),
],
q(playero) => [
- q(2586),
+ q(2582),
q(0),
],
q(pnar) => [
- q(5379),
+ q(5371),
q(0),
],
q(pochuri naga) => [
- q(5039),
+ q(5030),
q(0),
],
q(pochutec) => [
- q(7466),
+ q(7448),
q(0),
],
q(podena) => [
- q(5400),
+ q(5392),
q(0),
],
q(pogolo) => [
- q(5571),
+ q(5562),
q(0),
],
q(pohnpeian) => [
@@ -48058,31 +48025,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(pokanga) => [
- q(5561),
+ q(5552),
q(0),
],
q(poke) => [
- q(5557),
+ q(5548),
q(0),
],
q(pokomo) => [
- q(5475),
+ q(5468),
q(0),
],
q(pokoot) => [
- q(5480),
+ q(5473),
q(0),
],
q(polabian) => [
- q(5570),
+ q(5561),
q(0),
],
q(polari) => [
- q(5489),
+ q(5482),
q(0),
],
q(polci) => [
- q(5493),
+ q(5486),
q(0),
],
q(polish) => [
@@ -48090,67 +48057,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(polish sign language) => [
- q(5619),
+ q(5608),
q(0),
],
q(polonombauk) => [
- q(5487),
+ q(5480),
q(0),
],
q(pom) => [
- q(5521),
+ q(5513),
q(0),
],
q(pomo) => [
- q(5519),
+ q(5511),
q(0),
],
q(ponam) => [
- q(4764),
- q(0),
- ],
- q(ponares) => [
- q(5555),
+ q(4755),
q(0),
],
q(pongu) => [
- q(5534),
+ q(5526),
q(0),
],
q(ponosakan) => [
- q(5546),
+ q(5538),
q(0),
],
q(pontic) => [
- q(5547),
+ q(5539),
q(0),
],
q(ponyo-gongwang naga) => [
- q(5034),
+ q(5025),
q(0),
],
q(popti') => [
- q(3042),
+ q(3038),
q(0),
],
q(poqomam) => [
- q(5554),
+ q(5546),
q(0),
],
q(poqomchi') => [
- q(5559),
+ q(5550),
q(0),
],
q(porohanon) => [
- q(5593),
+ q(5583),
q(0),
],
q(port sandwich) => [
- q(5626),
+ q(5615),
q(0),
],
q(port vato) => [
- q(5638),
+ q(5627),
q(0),
],
q(portuguese) => [
@@ -48158,7 +48121,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(portuguese sign language) => [
- q(5622),
+ q(5611),
q(0),
],
q(portuguese-based creoles and pidgins) => [
@@ -48166,39 +48129,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(potawatomi) => [
- q(5567),
+ q(5558),
q(0),
],
q(potiguara) => [
- q(5558),
+ q(5549),
q(0),
],
q(pottangi ollar gadaba) => [
- q(2453),
+ q(2450),
q(0),
],
q(poule) => [
- q(4541),
+ q(4533),
q(1),
],
q(poumei naga) => [
- q(5527),
+ q(5519),
q(0),
],
q(pouye) => [
- q(1594),
+ q(1592),
q(0),
],
q(powari) => [
- q(5668),
+ q(5657),
q(0),
],
q(powhatan) => [
- q(5460),
+ q(5453),
q(0),
],
q(poyanawa) => [
- q(5673),
+ q(5662),
q(0),
],
q(prakrit languages) => [
@@ -48206,19 +48169,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(prasuni) => [
- q(5598),
- q(0),
- ],
- q(pray 3) => [
- q(5607),
+ q(5588),
q(0),
],
q(primitive irish) => [
- q(5431),
+ q(5423),
q(0),
],
q(principense) => [
- q(5590),
+ q(5580),
q(0),
],
q(provencal) => [
@@ -48230,27 +48189,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(providencia sign language) => [
- q(5608),
+ q(5597),
q(0),
],
q(prussian) => [
- q(5592),
+ q(5582),
q(0),
],
q(psikye) => [
- q(3676),
+ q(3670),
q(0),
],
q(pu ko) => [
- q(5650),
+ q(5639),
q(0),
],
q(pu-xian chinese) => [
- q(1840),
+ q(1835),
q(0),
],
q(puare) => [
- q(5659),
+ q(5648),
q(0),
],
q(pudtol atta) => [
@@ -48258,79 +48217,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(puelche) => [
- q(5645),
+ q(5634),
q(0),
],
q(puerto rican sign language) => [
- q(5616),
+ q(5605),
q(0),
],
q(puimei naga) => [
- q(5041),
+ q(5032),
q(0),
],
q(puinave) => [
- q(5648),
+ q(5637),
q(0),
],
q(pukapuka) => [
- q(5481),
+ q(5474),
q(0),
],
q(pulaar) => [
- q(2381),
+ q(2378),
q(0),
],
q(pulabu) => [
- q(5653),
+ q(5642),
q(0),
],
q(pular) => [
- q(2384),
+ q(2381),
q(0),
],
q(puluwatese) => [
- q(5658),
+ q(5647),
q(0),
],
q(puma) => [
- q(5651),
+ q(5640),
q(0),
],
q(pume) => [
- q(7579),
+ q(7561),
q(0),
],
q(pumpokol) => [
- q(7464),
+ q(7446),
q(0),
],
q(punan aput) => [
- q(5644),
+ q(5633),
q(0),
],
q(punan bah-biau) => [
- q(5530),
+ q(5522),
q(0),
],
q(punan batu 1) => [
- q(5540),
+ q(5532),
q(0),
],
q(punan merah) => [
- q(5646),
+ q(5635),
q(0),
],
q(punan merap) => [
- q(5643),
+ q(5632),
q(0),
],
q(punan tubu) => [
- q(5649),
+ q(5638),
q(0),
],
q(punic) => [
- q(7472),
+ q(7454),
q(0),
],
q(punjabi) => [
@@ -48338,59 +48297,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(puno quechua) => [
- q(5727),
+ q(5716),
q(0),
],
q(punthamara) => [
- q(7471),
+ q(7453),
q(0),
],
q(punu) => [
- q(5657),
+ q(5646),
q(0),
],
q(puoc) => [
- q(5652),
+ q(5641),
q(0),
],
q(puquina) => [
- q(5654),
+ q(5643),
q(0),
],
q(puragi) => [
- q(5604),
+ q(5594),
q(0),
],
q(purari) => [
- q(2887),
+ q(2881),
q(0),
],
q(purepecha) => [
- q(6734),
+ q(6718),
q(0),
],
q(puri) => [
- q(5601),
+ q(5591),
q(0),
],
q(purik) => [
- q(5606),
+ q(5596),
q(0),
],
q(purisimeno) => [
- q(5660),
+ q(5649),
q(0),
],
q(puroik) => [
- q(6287),
+ q(6277),
q(0),
],
q(purubora) => [
- q(5655),
+ q(5644),
q(0),
],
q(purum) => [
- q(5642),
+ q(5631),
q(0),
],
q(pushto) => [
@@ -48398,11 +48357,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(putai) => [
- q(4236),
+ q(4227),
q(0),
],
q(putoh) => [
- q(5656),
+ q(5645),
q(0),
],
q(putukwam) => [
@@ -48410,79 +48369,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(puyo) => [
- q(7473),
+ q(7455),
q(0),
],
q(puyo-paekche) => [
- q(7467),
+ q(7449),
q(0),
],
q(puyuma) => [
- q(5675),
+ q(5664),
q(0),
],
q(pwaamei) => [
- q(5512),
+ q(5504),
q(0),
],
q(pwapwa) => [
- q(5564),
+ q(5555),
q(0),
],
q(pwo eastern karen) => [
- q(3393),
+ q(3389),
q(0),
],
q(pwo northern karen) => [
- q(5669),
+ q(5658),
q(0),
],
q(pwo western karen) => [
- q(5667),
+ q(5656),
q(0),
],
q(pyapun) => [
- q(5396),
+ q(5388),
q(0),
],
q(pye krumen) => [
- q(5671),
+ q(5660),
q(0),
],
q(pyen) => [
- q(5677),
+ q(5666),
q(0),
],
q(pyu (myanmar)) => [
- q(5676),
+ q(5665),
q(0),
],
q(pyu (papua new guinea)) => [
- q(5380),
+ q(5372),
q(0),
],
q(q'anjob'al) => [
- q(3379),
+ q(3375),
q(0),
],
q(qabiao) => [
- q(3805),
+ q(3796),
q(0),
],
q(qaqet) => [
- q(1611),
+ q(1609),
q(0),
],
q(qashqa'i) => [
- q(5728),
+ q(5717),
q(0),
],
q(qatabanian) => [
- q(7475),
+ q(7457),
q(0),
],
q(qau) => [
- q(2613),
+ q(2609),
q(0),
],
q(qawasqar) => [
@@ -48490,7 +48449,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(qila muji) => [
- q(7701),
+ q(7683),
q(0),
],
q(qimant) => [
@@ -48498,19 +48457,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(qiubei zhuang) => [
- q(7940),
+ q(7922),
q(0),
],
q(quapaw) => [
- q(5679),
+ q(5668),
q(0),
],
q(quebec sign language) => [
- q(2340),
+ q(2336),
q(0),
],
q(quechan) => [
- q(7773),
+ q(7755),
q(0),
],
q(quechua) => [
@@ -48522,71 +48481,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(quenya) => [
- q(5734),
+ q(5723),
q(0),
],
q(queretaro otomi) => [
- q(5325),
+ q(5316),
q(0),
],
q(quetzaltepec mixe) => [
- q(5670),
+ q(5659),
q(0),
],
q(queyu) => [
- q(5713),
+ q(5702),
q(0),
],
q(quiavicuzas zapotec) => [
- q(7923),
+ q(7905),
q(0),
],
q(quiche) => [
- q(5681),
+ q(5670),
q(1),
],
q(quileute) => [
- q(5686),
+ q(5675),
q(0),
],
q(quinault) => [
- q(5690),
+ q(5679),
q(0),
],
q(quinqui) => [
- q(5692),
+ q(5681),
q(0),
],
q(quioquitani-quieri zapotec) => [
- q(7959),
+ q(7941),
q(0),
],
q(quiotepec chinantec) => [
- q(1725),
+ q(1721),
q(0),
],
q(quiripi) => [
- q(5735),
+ q(5724),
q(0),
],
q(rabha) => [
- q(5742),
+ q(5731),
q(0),
],
q(rade) => [
- q(5739),
+ q(5728),
q(0),
],
q(raetic) => [
- q(7485),
+ q(7467),
q(0),
],
q(rahambuu) => [
- q(5757),
+ q(5746),
q(0),
],
q(rajah kabunsuwan manobo) => [
- q(4490),
+ q(4482),
q(0),
],
q(rajasthani) => [
@@ -48594,75 +48553,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rajbanshi) => [
- q(5797),
+ q(5786),
q(0),
],
q(raji) => [
- q(5796),
+ q(5785),
q(0),
],
q(rajong) => [
- q(5795),
+ q(5784),
q(0),
],
q(rajput garasia) => [
- q(2614),
+ q(2610),
q(0),
],
q(rakahanga-manihiki) => [
- q(5800),
+ q(5789),
q(0),
],
q(rakhine) => [
- q(5801),
+ q(5790),
q(0),
],
q(ralte) => [
- q(5745),
+ q(5734),
q(0),
],
q(rama) => [
- q(5805),
+ q(5794),
q(0),
],
q(ramoaaina) => [
- q(5743),
+ q(5732),
q(0),
],
q(ramopa) => [
- q(3400),
+ q(3396),
q(0),
],
q(rampi) => [
- q(3933),
+ q(3924),
q(0),
],
q(rana tharu) => [
- q(6509),
+ q(6497),
q(0),
],
q(rang) => [
- q(5755),
+ q(5744),
q(0),
],
q(rangkas) => [
- q(5779),
+ q(5768),
q(0),
],
q(ranglong) => [
- q(5832),
+ q(5820),
q(0),
],
q(rangpuri) => [
- q(5803),
+ q(5792),
q(0),
],
q(rao) => [
- q(5748),
+ q(5737),
q(0),
],
q(rapa) => [
- q(5756),
+ q(5745),
q(0),
],
q(rapanui) => [
@@ -48670,15 +48629,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rapoisi) => [
- q(3765),
+ q(3758),
q(0),
],
q(rapting) => [
- q(5850),
+ q(5838),
q(0),
],
q(rara bakati') => [
- q(4042),
+ q(4033),
q(0),
],
q(rarotongan) => [
@@ -48686,19 +48645,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rasawa) => [
- q(5738),
+ q(5727),
q(0),
],
q(ratagnon) => [
- q(1482),
+ q(1480),
q(0),
],
q(ratahan) => [
- q(5858),
+ q(5847),
q(0),
],
q(rathawi) => [
- q(5861),
+ q(5850),
q(0),
],
q(rathwi bareli) => [
@@ -48706,43 +48665,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(raute) => [
- q(5752),
+ q(5741),
q(0),
],
q(ravula) => [
- q(7621),
+ q(7603),
q(0),
],
q(rawa) => [
- q(5879),
+ q(5868),
q(0),
],
q(rawang) => [
- q(5754),
+ q(5743),
q(0),
],
q(rawat) => [
- q(3132),
+ q(3129),
q(0),
],
q(rawngtu chin) => [
- q(7113),
+ q(7097),
q(0),
],
q(rawo) => [
- q(5876),
+ q(5865),
q(0),
],
q(rayon zoque) => [
- q(7912),
+ q(7894),
q(0),
],
q(razajerdi) => [
- q(5751),
+ q(5740),
+ q(0),
+ ],
+ q(razihi) => [
+ q(5875),
q(0),
],
q(red gelao) => [
- q(2524),
+ q(2519),
q(0),
],
q(reel) => [
@@ -48750,31 +48713,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rejang) => [
- q(5769),
+ q(5758),
q(0),
],
q(rejang kayan) => [
- q(5766),
+ q(5755),
q(0),
],
q(reli) => [
- q(5768),
+ q(5757),
q(0),
],
q(rema) => [
- q(1371),
+ q(1370),
q(0),
],
q(rembarunga) => [
- q(5806),
+ q(5795),
q(0),
],
q(rembong) => [
- q(5765),
+ q(5754),
q(0),
],
q(remo) => [
- q(5771),
+ q(5760),
q(0),
],
q(remontado dumagat) => [
@@ -48782,43 +48745,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(rempi) => [
- q(5819),
+ q(5808),
q(0),
],
q(remun) => [
- q(3946),
+ q(3937),
q(0),
],
q(rendille) => [
- q(5770),
+ q(5759),
q(0),
],
q(rengao) => [
- q(5772),
+ q(5761),
q(0),
],
q(rennell-bellona) => [
- q(4432),
+ q(4424),
q(0),
],
q(rennellese sign language) => [
- q(5855),
+ q(5843),
q(0),
],
q(repanbitip) => [
- q(5849),
+ q(5837),
q(0),
],
q(rer bare) => [
- q(5773),
+ q(5762),
q(0),
],
q(rerau) => [
- q(5764),
+ q(5753),
q(0),
],
q(rerep) => [
- q(5430),
+ q(5422),
q(0),
],
q(reserved for local use) => [
@@ -48826,99 +48789,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(reshe) => [
- q(5774),
+ q(5763),
q(0),
],
q(resigaro) => [
- q(5781),
+ q(5770),
q(0),
],
q(retta) => [
- q(5775),
+ q(5764),
q(0),
],
q(reunion creole french) => [
- q(5762),
+ q(5751),
q(0),
],
q(reyesano) => [
- q(5776),
+ q(5765),
q(0),
],
q(riang (india)) => [
- q(5786),
+ q(5775),
q(0),
],
q(riang (myanmar)) => [
- q(5789),
+ q(5778),
q(0),
],
q(riantana) => [
- q(5747),
+ q(5736),
q(0),
],
q(ribun) => [
- q(5792),
+ q(5781),
q(0),
],
q(rien) => [
- q(5787),
+ q(5776),
q(0),
],
q(rifao) => [
- q(4984),
+ q(4975),
q(1),
],
q(rikbaktsa) => [
- q(5799),
+ q(5788),
q(0),
],
q(rincon zapotec) => [
- q(7820),
+ q(7802),
q(0),
],
q(rinconada bikol) => [
- q(1483),
+ q(1481),
q(0),
],
q(ringgou) => [
- q(5783),
+ q(5772),
q(0),
],
q(ririo) => [
- q(5851),
+ q(5839),
q(0),
],
q(ritarungo) => [
- q(5793),
+ q(5782),
q(0),
],
q(riung) => [
- q(5794),
+ q(5783),
q(0),
],
q(riverain sango) => [
- q(6142),
+ q(6132),
q(0),
],
q(rogo) => [
- q(5839),
+ q(5827),
q(0),
],
q(rohingya) => [
- q(5784),
+ q(5773),
q(0),
],
q(roma) => [
- q(5816),
+ q(5805),
q(0),
],
q(romagnol) => [
- q(5780),
+ q(5769),
q(0),
],
q(romam) => [
- q(5826),
+ q(5815),
q(0),
],
q(romance languages) => [
@@ -48930,19 +48893,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(romanian sign language) => [
- q(5821),
+ q(5810),
q(0),
],
q(romano-greek) => [
- q(5778),
+ q(5767),
q(0),
],
q(romano-serbian) => [
- q(5854),
+ q(5842),
q(0),
],
q(romanova) => [
- q(5824),
+ q(5813),
q(0),
],
q(romansh) => [
@@ -48954,95 +48917,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(romblomanon) => [
- q(5843),
+ q(5831),
q(0),
],
q(rombo) => [
- q(5841),
+ q(5829),
q(0),
],
q(romkun) => [
- q(5814),
+ q(5803),
q(0),
],
q(ron) => [
- q(1769),
+ q(1765),
q(0),
],
q(ronga) => [
- q(5831),
+ q(5819),
q(0),
],
q(rongga) => [
- q(5846),
+ q(5834),
q(0),
],
q(rongmei naga) => [
- q(4758),
+ q(4749),
q(0),
],
q(rongpo) => [
- q(5834),
+ q(5822),
q(0),
],
q(ronji) => [
- q(5840),
+ q(5828),
q(0),
],
q(roon) => [
- q(5833),
+ q(5821),
q(0),
],
q(roria) => [
- q(5777),
+ q(5766),
q(0),
],
q(rotokas) => [
- q(5844),
+ q(5832),
q(0),
],
q(rotuman) => [
- q(5859),
+ q(5848),
q(0),
],
q(roviana) => [
- q(5866),
+ q(5855),
q(0),
],
q(ruching palaung) => [
- q(5385),
+ q(5377),
q(0),
],
q(rudbari) => [
- q(5763),
+ q(5752),
q(0),
],
q(rufiji) => [
- q(5868),
+ q(5857),
q(0),
],
q(ruga) => [
- q(5867),
+ q(5856),
q(0),
],
q(rukai) => [
- q(2147),
+ q(2140),
q(0),
],
q(ruma) => [
- q(5875),
+ q(5864),
q(0),
],
q(rumai palaung) => [
- q(5758),
+ q(5747),
q(0),
],
q(rumu) => [
- q(3445),
- q(0),
- ],
- q(runa) => [
- q(5829),
+ q(3441),
q(0),
],
q(rundi) => [
@@ -49050,23 +49009,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(runga) => [
- q(5847),
+ q(5835),
q(0),
],
q(rungtu chin) => [
- q(5857),
+ q(5846),
q(0),
],
q(rungus) => [
- q(2138),
+ q(2131),
q(0),
],
q(rungwa) => [
- q(5836),
+ q(5824),
q(0),
],
q(russia buriat) => [
- q(1584),
+ q(1582),
q(0),
],
q(russian) => [
@@ -49074,35 +49033,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(russian sign language) => [
- q(5856),
+ q(5844),
q(0),
],
q(rusyn) => [
- q(5864),
+ q(5853),
q(0),
],
q(rutul) => [
- q(5872),
+ q(5861),
q(0),
],
q(ruuli) => [
- q(5863),
+ q(5852),
q(0),
],
q(ruund) => [
- q(5830),
+ q(5818),
q(0),
],
q(rwa) => [
- q(5877),
+ q(5866),
q(0),
],
q(s'gaw karen) => [
- q(3616),
+ q(3611),
q(0),
],
q(sa) => [
- q(5899),
+ q(5889),
q(0),
],
q(sa'a) => [
@@ -49110,83 +49069,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sa'ban) => [
- q(6152),
+ q(6142),
q(0),
],
q(sa'och) => [
- q(5937),
+ q(5927),
q(0),
],
q(saafi-saafi) => [
- q(5897),
+ q(5887),
q(0),
],
q(saam) => [
- q(5749),
+ q(5738),
q(0),
],
q(saamia) => [
- q(4063),
+ q(4054),
q(0),
],
q(saaroa) => [
- q(6331),
+ q(6320),
q(0),
],
q(saba) => [
- q(5886),
+ q(5876),
q(0),
],
q(sabaean) => [
- q(7489),
+ q(7471),
q(0),
],
q(sabah bisaya) => [
- q(1470),
+ q(1469),
q(0),
],
q(sabah malay) => [
- q(4538),
+ q(4530),
q(0),
],
q(sabane) => [
- q(5889),
+ q(5879),
q(0),
],
q(sabaot) => [
- q(6197),
+ q(6187),
q(0),
],
q(sabine) => [
- q(5923),
+ q(5913),
q(0),
],
q(sabu) => [
- q(2878),
+ q(2873),
q(0),
],
q(sabum) => [
- q(5916),
+ q(5906),
q(0),
],
q(sacapulteco) => [
- q(5695),
+ q(5684),
q(0),
],
q(sadri) => [
- q(5934),
+ q(5924),
q(0),
],
q(saek) => [
- q(6072),
+ q(6062),
q(0),
],
q(saep) => [
- q(6180),
+ q(6170),
q(0),
],
q(safaliba) => [
- q(5890),
+ q(5880),
q(0),
],
q(safeyoka) => [
@@ -49194,23 +49153,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(safwa) => [
- q(5912),
+ q(5902),
q(0),
],
q(sagala) => [
- q(5914),
+ q(5904),
q(0),
],
q(sagalla) => [
- q(6475),
+ q(6464),
q(0),
],
q(saho) => [
- q(6252),
+ q(6242),
q(0),
],
q(sahu) => [
- q(5891),
+ q(5881),
q(0),
],
q(saidi arabic) => [
@@ -49222,23 +49181,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(saisiyat) => [
- q(7506),
+ q(7488),
q(0),
],
q(sajalong) => [
- q(6061),
+ q(6051),
q(0),
],
q(sajau basap) => [
- q(6056),
+ q(6046),
q(0),
],
q(sakachep) => [
- q(5932),
+ q(5922),
q(0),
],
q(sakalava malagasy) => [
- q(6077),
+ q(6067),
q(0),
],
q(sakan) => [
@@ -49246,59 +49205,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(sakao) => [
- q(6090),
+ q(6080),
q(0),
],
q(sakata) => [
- q(6089),
+ q(6079),
q(0),
],
q(sake) => [
- q(5892),
+ q(5882),
q(0),
],
q(sakirabia) => [
- q(6076),
+ q(6066),
q(0),
],
q(sala) => [
- q(6024),
+ q(6014),
q(0),
],
q(salako) => [
- q(3502),
+ q(3498),
q(1),
],
q(salampasu) => [
- q(6113),
+ q(6103),
q(0),
],
q(salar) => [
- q(6108),
+ q(6098),
q(0),
],
q(salas) => [
- q(6005),
+ q(5995),
q(0),
],
q(salasaca highland quichua) => [
- q(5724),
+ q(5713),
q(0),
],
q(salchuq) => [
- q(6107),
+ q(6097),
q(0),
],
q(saleman) => [
- q(5896),
+ q(5886),
q(0),
],
q(saliba) => [
- q(5906),
+ q(5896),
q(0),
],
q(salinan) => [
- q(6105),
+ q(6095),
q(0),
],
q(salishan languages) => [
@@ -49306,35 +49265,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sallands) => [
- q(5962),
+ q(5952),
q(0),
],
q(salt-yui) => [
- q(6103),
+ q(6093),
q(0),
],
q(saluan) => [
- q(4017),
+ q(4008),
q(0),
],
q(saluma) => [
- q(6102),
+ q(6092),
q(0),
],
q(salvadoran sign language) => [
- q(2297),
+ q(2293),
q(0),
],
q(sam) => [
- q(6154),
+ q(6144),
q(0),
],
q(sama) => [
- q(6118),
+ q(6108),
q(0),
],
q(samaritan) => [
- q(6125),
+ q(6115),
q(0),
],
q(samaritan aramaic) => [
@@ -49342,51 +49301,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(samarokena) => [
- q(6595),
+ q(6582),
q(0),
],
q(samatao) => [
- q(7748),
+ q(7730),
q(0),
],
q(samay) => [
- q(6345),
+ q(6334),
q(0),
],
q(samba) => [
- q(6132),
+ q(6122),
q(0),
],
q(samba daka) => [
- q(1684),
+ q(1680),
q(0),
],
q(samba leko) => [
- q(4791),
+ q(4782),
q(0),
],
q(sambal) => [
- q(7490),
+ q(7472),
q(0),
],
q(sambalpuri) => [
- q(6195),
+ q(6185),
q(0),
],
q(sambe) => [
- q(7273),
+ q(7258),
q(0),
],
q(samberigi) => [
- q(6251),
+ q(6241),
q(0),
],
q(samburu) => [
- q(5894),
+ q(5884),
q(0),
],
q(samei) => [
- q(6121),
+ q(6111),
q(0),
],
q(sami languages) => [
@@ -49394,7 +49353,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(samo) => [
- q(6126),
+ q(6116),
q(0),
],
q(samoan) => [
@@ -49402,11 +49361,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(samogitian) => [
- q(6003),
+ q(5993),
q(0),
],
q(samosa) => [
- q(6309),
+ q(6298),
q(0),
],
q(samoyedic languages) => [
@@ -49414,103 +49373,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sampang) => [
- q(5753),
+ q(5742),
q(0),
],
q(samre) => [
- q(6328),
+ q(6317),
q(0),
],
q(samtao) => [
- q(6273),
+ q(6263),
q(0),
],
q(samvedi) => [
- q(6130),
+ q(6120),
q(0),
],
q(san agustin mixtepec zapotec) => [
- q(7956),
+ q(7938),
q(0),
],
q(san baltazar loxicha zapotec) => [
- q(7937),
+ q(7919),
q(0),
],
q(san blas kuna) => [
- q(1910),
+ q(1904),
q(0),
],
q(san dionisio del mar huave) => [
- q(2876),
+ q(2871),
q(0),
],
q(san felipe otlaltepec popoloca) => [
- q(5569),
+ q(5560),
q(0),
],
q(san francisco del mar huave) => [
- q(2855),
+ q(2850),
q(0),
],
q(san francisco matlatzinca) => [
- q(4122),
+ q(4113),
q(0),
],
q(san jeronimo tecoatl mazatec) => [
- q(4115),
+ q(4106),
q(0),
],
q(san juan atzingo popoloca) => [
- q(5556),
+ q(5547),
q(0),
],
q(san juan colorado mixtec) => [
- q(4321),
+ q(4313),
q(0),
],
q(san juan guelavia zapotec) => [
- q(7806),
- q(0),
+ q(7788),
+ q(1),
],
q(san juan teita mixtec) => [
- q(7515),
+ q(7497),
q(0),
],
q(san luis temalacayuca popoloca) => [
- q(5582),
+ q(5572),
q(0),
],
q(san marcos tlacoyalco popoloca) => [
- q(5501),
+ q(5494),
q(0),
],
q(san marcos tlalcoyalco popoloca) => [
- q(5501),
+ q(5494),
q(1),
],
q(san martin itunyoso triqui) => [
- q(6703),
+ q(6687),
q(0),
],
q(san martin quechua) => [
- q(5711),
+ q(5700),
q(0),
],
q(san mateo del mar huave) => [
- q(2870),
+ q(2865),
q(0),
],
q(san miguel creole french) => [
- q(5930),
+ q(5920),
q(0),
],
q(san miguel el grande mixtec) => [
- q(4304),
+ q(4295),
q(0),
],
q(san miguel piedras mixtec) => [
- q(7520),
+ q(7502),
q(0),
],
q(san pedro amuzgos amuzgo) => [
@@ -49518,15 +49477,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(san pedro quiatoni zapotec) => [
- q(7919),
+ q(7901),
q(0),
],
q(san salvador kongo) => [
- q(3716),
+ q(3709),
q(0),
],
q(san vicente coatlan zapotec) => [
- q(7933),
+ q(7915),
q(0),
],
q(sanaani arabic) => [
@@ -49534,7 +49493,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sanapana) => [
- q(6187),
+ q(6177),
q(0),
],
q(sandawe) => [
@@ -49542,35 +49501,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sanga (democratic republic of congo)) => [
- q(6139),
+ q(6129),
q(0),
],
q(sanga (nigeria)) => [
- q(7498),
+ q(7480),
q(0),
],
q(sanggau) => [
- q(5931),
+ q(5921),
q(0),
],
q(sangil) => [
- q(6143),
+ q(6133),
q(0),
],
q(sangir) => [
- q(6329),
+ q(6318),
q(0),
],
q(sangisari) => [
- q(6002),
+ q(5992),
q(0),
],
q(sangkong) => [
- q(5999),
+ q(5989),
q(0),
],
q(sanglechi) => [
- q(6008),
+ q(5998),
q(0),
],
q(sango) => [
@@ -49578,35 +49537,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sangtam naga) => [
- q(5066),
+ q(5057),
q(0),
],
q(sangu (gabon)) => [
- q(6148),
+ q(6138),
q(0),
],
q(sangu (tanzania)) => [
- q(5917),
+ q(5907),
q(0),
],
q(sani) => [
- q(7751),
+ q(7733),
q(0),
],
q(sanie) => [
- q(7756),
+ q(7738),
q(0),
],
q(saniyo-hiyewe) => [
- q(6155),
+ q(6145),
q(0),
],
q(sankaran maninka) => [
- q(4532),
+ q(4524),
q(0),
],
q(sansi) => [
- q(6237),
+ q(6227),
q(0),
],
q(sanskrit) => [
@@ -49614,43 +49573,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(santa ana de tusi pasco quechua) => [
- q(5731),
+ q(5720),
q(0),
],
q(santa catarina albarradas zapotec) => [
- q(7957),
+ q(7939),
q(0),
],
q(santa ines ahuatempan popoloca) => [
- q(5381),
+ q(5373),
q(0),
],
q(santa ines yatzechi zapotec) => [
- q(7927),
+ q(7909),
q(0),
],
q(santa lucia monteverde mixtec) => [
- q(4197),
+ q(4188),
q(0),
],
q(santa maria del mar huave) => [
- q(2879),
+ q(2874),
q(0),
],
q(santa maria la alta nahuatl) => [
- q(4882),
+ q(4873),
q(0),
],
q(santa maria quiegolani zapotec) => [
- q(7922),
+ q(7904),
q(0),
],
q(santa maria zacatepec mixtec) => [
- q(4694),
+ q(4686),
q(0),
],
q(santa teresa cora) => [
- q(1818),
+ q(1814),
q(0),
],
q(santali) => [
@@ -49658,95 +49617,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(santiago del estero quichua) => [
- q(5694),
+ q(5683),
q(0),
],
q(santiago xanica zapotec) => [
- q(7931),
+ q(7913),
q(0),
],
q(santo domingo albarradas zapotec) => [
- q(7821),
+ q(7803),
q(0),
],
q(sanuma) => [
- q(7504),
+ q(7486),
q(0),
],
q(sao paulo kaingang) => [
- q(7866),
+ q(7848),
q(0),
],
q(saotomense) => [
- q(1850),
+ q(1844),
q(0),
],
q(saparua) => [
- q(6191),
+ q(6181),
q(0),
],
q(sape) => [
- q(6179),
+ q(6169),
q(0),
],
q(sapo) => [
- q(3584),
+ q(3579),
q(0),
],
q(saponi) => [
- q(6183),
+ q(6173),
q(0),
],
q(saposa) => [
- q(6192),
+ q(6182),
q(0),
],
q(sapuan) => [
- q(6194),
+ q(6184),
q(0),
],
q(sar) => [
- q(4634),
+ q(4626),
q(0),
],
q(sara) => [
- q(6212),
+ q(6202),
q(0),
],
q(sara kaba) => [
- q(5927),
+ q(5917),
q(0),
],
q(sara kaba deme) => [
- q(3699),
+ q(3692),
q(0),
],
q(sara kaba naa) => [
- q(3713),
+ q(3706),
q(0),
],
q(saraiki) => [
- q(6087),
+ q(6077),
q(0),
],
q(saramaccan) => [
- q(6219),
+ q(6209),
q(0),
],
q(sarangani blaan) => [
- q(1390),
+ q(1389),
q(0),
],
q(sarangani manobo) => [
- q(4145),
+ q(4136),
q(0),
],
q(sarasira) => [
- q(7947),
+ q(7929),
q(0),
],
q(saraveca) => [
- q(5895),
+ q(5885),
q(0),
],
q(sardinian) => [
@@ -49758,31 +49717,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sarikoli) => [
- q(6215),
+ q(6205),
q(0),
],
q(sarli) => [
- q(5947),
+ q(5937),
q(0),
],
q(sarsi) => [
- q(6222),
+ q(6212),
q(0),
],
q(sartang) => [
- q(5276),
+ q(5267),
q(0),
],
q(sarua) => [
- q(6321),
+ q(6310),
q(0),
],
q(sarudu) => [
- q(5960),
+ q(5950),
q(0),
],
q(saruga) => [
- q(6209),
+ q(6199),
q(0),
],
q(sasak) => [
@@ -49790,83 +49749,79 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sasaru) => [
- q(6332),
+ q(6321),
q(0),
],
q(sassarese sardinian) => [
- q(5945),
+ q(5935),
q(0),
],
q(satawalese) => [
- q(6275),
+ q(6265),
q(0),
],
q(satere-mawe) => [
- q(4124),
+ q(4115),
q(0),
],
q(saterfriesisch) => [
- q(6269),
+ q(6259),
q(0),
],
q(saudi arabian sign language) => [
- q(5952),
+ q(5942),
q(0),
],
q(sauraseni prakrit) => [
- q(5625),
+ q(5614),
q(0),
],
q(saurashtra) => [
- q(5901),
+ q(5891),
q(0),
],
q(sauri) => [
- q(6223),
+ q(6213),
q(0),
],
q(sauria paharia) => [
- q(4337),
+ q(4329),
q(0),
],
q(sause) => [
- q(5893),
+ q(5883),
q(0),
],
q(sausi) => [
- q(6238),
- q(0),
- ],
- q(savara) => [
- q(6297),
+ q(6228),
q(0),
],
q(savi) => [
- q(5948),
+ q(5938),
q(0),
],
q(savosavo) => [
- q(6298),
+ q(6287),
q(0),
],
q(sawai) => [
- q(6357),
+ q(6346),
q(0),
],
q(saweru) => [
- q(6314),
+ q(6303),
q(0),
],
q(sawi) => [
- q(5898),
+ q(5888),
q(0),
],
q(sawila) => [
- q(6316),
+ q(6305),
q(0),
],
q(sawknah) => [
- q(6310),
+ q(6299),
q(0),
],
q(saxon, low) => [
@@ -49874,15 +49829,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(3),
],
q(saxwe gbe) => [
- q(6334),
+ q(6323),
q(0),
],
q(saya) => [
- q(5900),
+ q(5890),
q(0),
],
q(sayula popoluca) => [
- q(5566),
+ q(5557),
q(0),
],
q(scots) => [
@@ -49894,139 +49849,143 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(scythian) => [
- q(7491),
+ q(7473),
q(0),
],
q(sea island creole english) => [
- q(2652),
+ q(2648),
q(0),
],
q(seba) => [
- q(3240),
+ q(3237),
q(0),
],
q(sebat bet gurage) => [
- q(6006),
+ q(5996),
q(0),
],
q(seberuang) => [
- q(5925),
+ q(5915),
q(0),
],
q(sebop) => [
- q(6035),
+ q(6025),
q(0),
],
q(sebuyau) => [
- q(6135),
+ q(6125),
q(0),
],
q(sechelt) => [
- q(5965),
+ q(5955),
q(0),
],
q(secoya) => [
- q(5984),
+ q(5974),
q(0),
],
q(sedang) => [
- q(5966),
+ q(5956),
q(0),
],
q(sedoa) => [
- q(6790),
+ q(6774),
q(0),
],
q(seeku) => [
- q(6171),
+ q(6161),
q(0),
],
q(segai) => [
- q(5994),
+ q(5984),
q(0),
],
q(segeju) => [
- q(5969),
+ q(5959),
q(0),
],
q(seget) => [
- q(5908),
+ q(5898),
q(0),
],
q(sehwi) => [
- q(5990),
+ q(5980),
q(0),
],
q(seimat) => [
- q(6235),
+ q(6225),
q(0),
],
q(seit-kaitetu) => [
- q(2761),
+ q(2756),
q(0),
],
+ q(sekak) => [
+ q(3829),
+ q(1),
+ ],
q(sekani) => [
- q(5973),
+ q(5963),
q(0),
],
q(sekapan) => [
- q(6085),
+ q(6075),
q(0),
],
q(sekar) => [
- q(6095),
+ q(6085),
q(0),
],
q(seke (nepal)) => [
- q(6080),
+ q(6070),
q(0),
],
q(seke (vanuatu)) => [
- q(6075),
+ q(6065),
q(0),
],
q(sekele) => [
- q(6975),
+ q(6959),
q(0),
],
q(seki) => [
- q(6337),
+ q(6326),
q(0),
],
q(seko padang) => [
- q(6093),
+ q(6083),
q(0),
],
q(seko tengah) => [
- q(6084),
+ q(6074),
q(0),
],
q(sekpele) => [
- q(3922),
+ q(3913),
q(0),
],
q(selangor sign language) => [
- q(3316),
+ q(3312),
q(0),
],
q(selaru) => [
- q(6111),
+ q(6101),
q(0),
],
q(selayar) => [
- q(6114),
+ q(6104),
q(0),
],
q(selee) => [
- q(6153),
+ q(6143),
q(0),
],
q(selepet) => [
- q(6185),
+ q(6175),
q(0),
],
q(selian) => [
- q(6327),
+ q(6316),
q(0),
],
q(selkup) => [
@@ -50034,35 +49993,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(selungai murut) => [
- q(6099),
+ q(6089),
q(0),
],
q(seluwasan) => [
- q(6315),
+ q(6304),
q(0),
],
q(semai) => [
- q(5963),
+ q(5953),
q(0),
],
q(semandang) => [
- q(5953),
+ q(5943),
q(0),
],
q(semaq beri) => [
- q(6349),
+ q(6338),
q(0),
],
q(sembakung murut) => [
- q(5919),
+ q(5909),
q(0),
],
q(semelai) => [
- q(6347),
+ q(6336),
q(0),
],
q(semimi) => [
- q(2313),
+ q(2309),
q(0),
],
q(semitic languages) => [
@@ -50070,83 +50029,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(semnam) => [
- q(6241),
+ q(6231),
q(0),
],
q(semnani) => [
- q(6133),
+ q(6123),
q(0),
],
q(sempan) => [
- q(7493),
+ q(7475),
q(0),
],
q(sena) => [
- q(5970),
+ q(5960),
q(0),
],
q(senara senoufo) => [
- q(5977),
+ q(5967),
q(0),
],
q(senaya) => [
- q(6341),
+ q(6330),
q(0),
],
q(sene) => [
- q(5972),
+ q(5962),
q(0),
],
q(seneca) => [
- q(5967),
+ q(5957),
q(0),
],
q(sened) => [
- q(5958),
+ q(5948),
q(0),
],
q(sengele) => [
- q(6352),
+ q(6341),
q(0),
],
q(senggi) => [
- q(6151),
+ q(6141),
q(0),
],
q(sengo) => [
- q(6184),
+ q(6174),
q(0),
],
q(sengseng) => [
- q(6253),
+ q(6243),
q(0),
],
q(senhaja de srair) => [
- q(6067),
+ q(6057),
q(0),
],
q(sensi) => [
- q(6141),
+ q(6131),
q(0),
],
q(sentani) => [
- q(5980),
+ q(5970),
q(0),
],
q(senthang chin) => [
- q(5985),
+ q(5975),
q(0),
],
q(sentinel) => [
- q(6256),
+ q(6246),
q(0),
],
q(sepa (indonesia)) => [
- q(6178),
+ q(6168),
q(0),
],
q(sepa (papua new guinea)) => [
- q(6181),
+ q(6171),
q(0),
],
q(sepedi) => [
@@ -50154,15 +50113,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(sepik iwam) => [
- q(3031),
+ q(3027),
q(0),
],
q(sera) => [
- q(6228),
+ q(6218),
q(0),
],
q(seraiki) => [
- q(6087),
+ q(6077),
q(1),
],
q(serbian) => [
@@ -50174,7 +50133,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sere) => [
- q(6302),
+ q(6291),
q(0),
],
q(serer) => [
@@ -50182,103 +50141,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(seri) => [
- q(5971),
+ q(5961),
q(0),
],
q(serili) => [
- q(6294),
+ q(6284),
q(0),
],
q(seroa) => [
- q(3568),
+ q(3563),
q(0),
],
q(serrano) => [
- q(5978),
+ q(5968),
q(0),
],
q(seru) => [
- q(6350),
+ q(6339),
q(0),
],
q(serua) => [
- q(6226),
+ q(6216),
q(0),
],
q(serudung murut) => [
- q(6217),
+ q(6207),
q(0),
],
q(serui-laut) => [
- q(5981),
+ q(5971),
q(0),
],
q(seselwa creole french) => [
- q(1859),
+ q(1853),
q(0),
],
q(seta) => [
- q(6258),
+ q(6248),
q(0),
],
q(setaman) => [
- q(6265),
+ q(6255),
q(0),
],
q(seti) => [
- q(5910),
+ q(5900),
q(0),
],
q(settla) => [
- q(6254),
+ q(6244),
q(0),
],
q(severn ojibwa) => [
- q(5222),
+ q(5213),
q(0),
],
q(sewa bay) => [
- q(5983),
+ q(5973),
q(0),
],
q(seze) => [
- q(6351),
+ q(6340),
q(0),
],
q(sha) => [
- q(5941),
+ q(5931),
q(0),
],
q(shabak) => [
- q(5944),
+ q(5934),
q(0),
],
q(shabo) => [
- q(5907),
+ q(5897),
q(1),
],
q(shahmirzadi) => [
- q(6229),
+ q(6219),
q(0),
],
q(shahrudi) => [
- q(6021),
+ q(6011),
q(0),
],
q(shall-zwall) => [
- q(6010),
+ q(6000),
q(0),
],
q(shama-sambuga) => [
- q(6198),
+ q(6188),
q(0),
],
q(shamang) => [
- q(7494),
+ q(7476),
q(0),
],
q(shambala) => [
- q(3595),
+ q(3590),
q(0),
],
q(shan) => [
@@ -50286,135 +50245,135 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(shanenawa) => [
- q(6311),
+ q(6300),
q(0),
],
q(shanga) => [
- q(6022),
+ q(6012),
q(0),
],
q(shangzhai) => [
- q(3097),
+ q(3093),
q(1),
],
q(sharanahua) => [
- q(4156),
+ q(4147),
q(0),
],
q(shark bay) => [
- q(6250),
+ q(6240),
q(0),
],
q(sharwa) => [
- q(6313),
+ q(6302),
q(0),
],
q(shasta) => [
- q(6027),
+ q(6017),
q(0),
],
q(shatt) => [
- q(6018),
+ q(6008),
q(0),
],
q(shau) => [
- q(6199),
+ q(6189),
q(0),
],
q(shawnee) => [
- q(6070),
+ q(6060),
q(0),
],
q(she) => [
- q(6031),
+ q(6021),
q(0),
],
q(shehri) => [
- q(6029),
+ q(6019),
q(0),
],
q(shekhawati) => [
- q(6318),
+ q(6307),
q(0),
],
q(shekkacho) => [
- q(4454),
+ q(4446),
q(0),
],
q(sheko) => [
- q(6014),
+ q(6004),
q(0),
],
q(shelta) => [
- q(6260),
+ q(6250),
q(0),
],
q(shempire senoufo) => [
- q(5964),
+ q(5954),
q(0),
],
q(shendu) => [
- q(6020),
+ q(6010),
q(0),
],
q(sheni) => [
- q(5940),
+ q(5930),
q(0),
],
q(sherbro) => [
- q(1505),
+ q(1503),
q(0),
],
q(sherdukpen) => [
- q(5956),
+ q(5946),
q(0),
],
q(sherpa) => [
- q(7502),
+ q(7484),
q(0),
],
q(sheshi kham) => [
- q(3368),
+ q(3364),
q(0),
],
q(shi) => [
- q(6025),
+ q(6015),
q(0),
],
q(shihhi arabic) => [
- q(6236),
+ q(6226),
q(0),
],
q(shiki) => [
- q(2642),
+ q(2638),
q(0),
],
q(shilluk) => [
- q(6019),
+ q(6009),
q(0),
],
q(shina) => [
- q(5935),
+ q(5925),
q(0),
],
q(shinabo) => [
- q(6140),
+ q(6130),
q(0),
],
q(shipibo-conibo) => [
- q(6023),
+ q(6013),
q(0),
],
q(shixing) => [
- q(6325),
+ q(6314),
q(0),
],
q(sholaga) => [
- q(6097),
+ q(6087),
q(0),
],
q(shom peng) => [
- q(6040),
+ q(6030),
q(0),
],
q(shona) => [
@@ -50426,103 +50385,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(shor) => [
- q(1752),
+ q(1748),
q(0),
],
q(shoshoni) => [
- q(6016),
+ q(6006),
q(0),
],
q(shua) => [
- q(6015),
+ q(6005),
q(0),
],
q(shuadit) => [
- q(5959),
+ q(5949),
q(0),
],
q(shuar) => [
- q(3105),
+ q(3101),
q(0),
],
q(shubi) => [
- q(6283),
+ q(6273),
q(0),
],
q(shughni) => [
- q(5996),
+ q(5986),
q(0),
],
q(shumashti) => [
- q(6271),
+ q(6261),
q(0),
],
q(shumcho) => [
- q(5939),
+ q(5929),
q(0),
],
q(shuswap) => [
- q(6026),
+ q(6016),
q(0),
],
q(shuwa-zamani) => [
- q(3594),
+ q(3589),
q(0),
],
q(shwai) => [
- q(6030),
+ q(6020),
q(0),
],
q(shwe palaung) => [
- q(5495),
+ q(5488),
q(0),
],
q(sialum) => [
- q(6112),
+ q(6102),
q(0),
],
q(siamou) => [
- q(6037),
+ q(6027),
q(0),
],
q(sian) => [
- q(6182),
+ q(6172),
q(0),
],
q(siane) => [
- q(6147),
+ q(6137),
q(0),
],
q(siang) => [
- q(6335),
+ q(6324),
q(0),
],
q(siar-lak) => [
- q(6066),
+ q(6056),
q(0),
],
q(siawi) => [
- q(4405),
+ q(4397),
q(0),
],
q(sibe) => [
- q(4776),
+ q(4767),
q(0),
],
q(siberian tatar) => [
- q(6276),
+ q(6266),
q(0),
],
q(sibu melanau) => [
- q(5961),
+ q(5951),
q(0),
],
q(sicanian) => [
- q(6323),
+ q(6312),
q(0),
],
q(sicel) => [
- q(5942),
+ q(5932),
q(0),
],
q(sichuan yi) => [
@@ -50534,11 +50493,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sicite senoufo) => [
- q(5976),
+ q(5966),
q(0),
],
q(siculo arabic) => [
- q(6205),
+ q(6195),
q(0),
],
q(sidamo) => [
@@ -50546,27 +50505,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sidetic) => [
- q(7492),
+ q(7474),
q(0),
],
q(sie) => [
- q(2282),
+ q(2277),
q(0),
],
q(sierra de juarez zapotec) => [
- q(7805),
+ q(7787),
q(0),
],
q(sierra leone sign language) => [
- q(6007),
+ q(5997),
q(0),
],
q(sierra negra nahuatl) => [
- q(5083),
+ q(5074),
q(0),
],
q(sighu) => [
- q(6324),
+ q(6313),
q(0),
],
q(sign languages) => [
@@ -50574,31 +50533,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sihan) => [
- q(6149),
+ q(6139),
q(0),
],
q(sihuas ancash quechua) => [
- q(5719),
+ q(5708),
q(0),
],
q(sika) => [
- q(6079),
+ q(6069),
q(0),
],
q(sikaiana) => [
- q(6094),
+ q(6084),
q(0),
],
q(sikaritai) => [
- q(6758),
+ q(6742),
q(0),
],
q(sikiana) => [
- q(6042),
+ q(6032),
q(0),
],
q(sikkimese) => [
- q(6045),
+ q(6035),
q(0),
],
q(siksika) => [
@@ -50606,87 +50565,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sikule) => [
- q(6078),
+ q(6068),
q(0),
],
q(sila) => [
- q(6110),
+ q(6100),
q(0),
],
q(silacayoapan mixtec) => [
- q(4360),
+ q(4352),
q(0),
],
q(sileibi) => [
- q(5918),
+ q(5908),
q(0),
],
q(silesian) => [
- q(6353),
+ q(6342),
q(0),
],
q(silimo) => [
- q(7250),
+ q(7235),
q(0),
],
q(siliput) => [
- q(4346),
+ q(4338),
q(0),
],
q(silopi) => [
- q(7500),
+ q(7482),
q(0),
],
q(silt'e) => [
- q(6274),
+ q(6264),
q(0),
],
q(simaa) => [
- q(6036),
+ q(6026),
q(0),
],
q(simba) => [
- q(5924),
+ q(5914),
q(0),
],
q(simbali) => [
- q(6120),
+ q(6110),
q(0),
],
q(simbari) => [
- q(6116),
+ q(6106),
q(0),
],
q(simbo) => [
- q(5903),
+ q(5893),
q(0),
],
q(simeku) => [
- q(6134),
+ q(6124),
q(0),
],
q(simeulue) => [
- q(6127),
+ q(6117),
q(0),
],
q(simte) => [
- q(6128),
+ q(6118),
q(0),
],
q(sinagen) => [
- q(6049),
+ q(6039),
q(0),
],
q(sinasina) => [
- q(6248),
+ q(6238),
q(0),
],
q(sinaugoro) => [
- q(6136),
+ q(6126),
q(0),
],
q(sindarin) => [
- q(6063),
+ q(6053),
q(0),
],
q(sindhi) => [
@@ -50694,23 +50653,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sindhi bhil) => [
- q(5915),
+ q(5905),
q(0),
],
q(sindihui mixtec) => [
- q(7523),
+ q(7505),
q(0),
],
q(singa) => [
- q(6000),
+ q(5990),
q(0),
],
q(singapore sign language) => [
- q(6109),
+ q(6099),
q(0),
],
q(singpho) => [
- q(6001),
+ q(5991),
q(0),
],
q(sinhala) => [
@@ -50722,15 +50681,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(sinicahua mixtec) => [
- q(7514),
+ q(7496),
q(0),
],
q(sinicized miao) => [
- q(2799),
+ q(2794),
q(1),
],
q(sininkere) => [
- q(6086),
+ q(6076),
q(0),
],
q(sino-tibetan languages) => [
@@ -50738,23 +50697,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sinsauru) => [
- q(6156),
+ q(6146),
q(0),
],
q(sinte romani) => [
- q(5818),
+ q(5807),
q(0),
],
q(sinyar) => [
- q(6343),
+ q(6332),
q(0),
],
q(sio) => [
- q(7495),
+ q(7477),
q(0),
],
q(siona) => [
- q(6145),
+ q(6135),
q(0),
],
q(siouan languages) => [
@@ -50762,67 +50721,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sipacapense) => [
- q(5689),
+ q(5678),
q(0),
],
q(sira) => [
- q(6306),
+ q(6295),
q(0),
],
q(siraya) => [
- q(2368),
+ q(2365),
q(0),
],
q(sirenik yupik) => [
- q(7754),
+ q(7736),
q(0),
],
q(siri) => [
- q(6047),
+ q(6037),
q(0),
],
q(siriano) => [
- q(6216),
+ q(6206),
q(0),
],
q(siriono) => [
- q(6221),
+ q(6211),
q(0),
],
q(sirmauri) => [
- q(6227),
+ q(6217),
q(0),
],
q(siroi) => [
- q(6232),
+ q(6222),
q(0),
],
q(sishee) => [
- q(6039),
+ q(6029),
q(1),
],
q(sissala) => [
- q(6096),
+ q(6086),
q(0),
],
q(sissano) => [
- q(6243),
+ q(6233),
q(0),
],
q(siuslaw) => [
- q(6048),
+ q(6038),
q(0),
],
q(sivandi) => [
- q(6053),
+ q(6043),
q(0),
],
q(siwai) => [
- q(6051),
+ q(6041),
q(0),
],
q(siwi) => [
- q(6054),
+ q(6044),
q(0),
],
q(siwu) => [
@@ -50830,19 +50789,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(siyin chin) => [
- q(1886),
+ q(1880),
q(0),
],
q(skagit) => [
- q(6071),
+ q(6061),
q(0),
],
q(skalvian) => [
- q(6299),
+ q(6288),
q(0),
],
q(skepi creole dutch) => [
- q(6092),
+ q(6082),
q(0),
],
q(skolt sami) => [
@@ -50850,7 +50809,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(skou) => [
- q(6091),
+ q(6081),
q(0),
],
q(slave (athapascan)) => [
@@ -50862,7 +50821,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(slavomolisano) => [
- q(6296),
+ q(6286),
q(0),
],
q(slovak) => [
@@ -50870,7 +50829,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(slovakian sign language) => [
- q(6295),
+ q(6285),
q(0),
],
q(slovenian) => [
@@ -50878,43 +50837,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(small flowery miao) => [
- q(5988),
+ q(5978),
q(0),
],
q(smarky kanum) => [
- q(3732),
+ q(3725),
q(0),
],
q(snohomish) => [
- q(6146),
+ q(6136),
q(0),
],
q(so) => [
- q(6247),
+ q(6237),
q(0),
],
q(so (democratic republic of congo)) => [
- q(6159),
+ q(6149),
q(0),
],
q(so'a) => [
- q(6245),
+ q(6235),
q(0),
],
q(sobei) => [
- q(6158),
+ q(6148),
q(0),
],
q(sochiapam chinantec) => [
- q(1879),
+ q(1873),
q(0),
],
q(sochiapan chinantec) => [
- q(1879),
+ q(1873),
q(1),
],
q(soga) => [
- q(7448),
+ q(7430),
q(0),
],
q(sogdian) => [
@@ -50922,23 +50881,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(soi) => [
- q(6164),
+ q(6154),
q(0),
],
q(sok) => [
- q(6081),
+ q(6071),
q(0),
],
q(sokoro) => [
- q(6165),
+ q(6155),
q(0),
],
q(solano) => [
- q(7499),
+ q(7481),
q(0),
],
q(soli) => [
- q(5926),
+ q(5916),
q(0),
],
q(solong) => [
@@ -50946,11 +50905,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(solos) => [
- q(6166),
+ q(6156),
q(0),
],
q(som) => [
- q(6117),
+ q(6107),
q(0),
],
q(somali) => [
@@ -50958,31 +50917,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(somba-siawari) => [
- q(1323),
+ q(1322),
q(0),
],
q(somrai) => [
- q(6170),
+ q(6160),
q(0),
],
q(somray) => [
- q(6129),
+ q(6119),
q(0),
],
q(somyev) => [
- q(3327),
+ q(3323),
q(0),
],
q(sonaga) => [
- q(7749),
+ q(7731),
q(0),
],
q(sonde) => [
- q(6012),
+ q(6002),
q(0),
],
q(songe) => [
- q(6168),
+ q(6158),
q(0),
],
q(songhai languages) => [
@@ -50990,27 +50949,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(songlai chin) => [
- q(1874),
+ q(1868),
q(0),
],
q(songo) => [
- q(6167),
+ q(6157),
q(0),
],
q(songomeno) => [
- q(6161),
+ q(6151),
q(0),
],
q(songoora) => [
- q(6160),
+ q(6150),
q(0),
],
q(sonha) => [
- q(6163),
+ q(6153),
q(0),
],
q(sonia) => [
- q(6046),
+ q(6036),
q(0),
],
q(soninke) => [
@@ -51018,23 +50977,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sonsorol) => [
- q(6173),
+ q(6163),
q(0),
],
q(soo) => [
- q(6465),
+ q(6454),
q(0),
],
q(sop) => [
- q(6944),
+ q(6928),
q(0),
],
q(soqotri) => [
- q(6207),
+ q(6197),
q(0),
],
q(sora) => [
- q(6210),
+ q(6200),
q(0),
],
q(sorbian languages) => [
@@ -51042,15 +51001,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sori-harengan) => [
- q(5909),
+ q(5899),
q(0),
],
q(sorkhei) => [
- q(6203),
+ q(6193),
q(0),
],
q(sorothaptic) => [
- q(6330),
+ q(6319),
q(0),
],
q(sorsogon ayta) => [
@@ -51058,11 +51017,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sos kundi) => [
- q(5951),
+ q(5941),
q(0),
],
q(sota kanum) => [
- q(3593),
+ q(3588),
q(0),
],
q(sotho, southern) => [
@@ -51070,11 +51029,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sou) => [
- q(6204),
+ q(6194),
+ q(0),
+ ],
+ q(sou nama) => [
+ q(6569),
+ q(0),
+ ],
+ q(sou upaa) => [
+ q(7107),
q(0),
],
q(south african sign language) => [
- q(5989),
+ q(5979),
q(0),
],
q(south american indian (other)) => [
@@ -51094,7 +51061,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(south bolivian quechua) => [
- q(5685),
+ q(5674),
q(0),
],
q(south caucasian languages) => [
@@ -51102,27 +51069,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(south central banda) => [
- q(4006),
+ q(3997),
q(0),
],
q(south central dinka) => [
- q(2036),
+ q(2029),
q(0),
],
q(south efate) => [
- q(2285),
+ q(2280),
q(0),
],
q(south fali) => [
- q(2331),
+ q(2327),
q(0),
],
q(south giziga) => [
- q(2531),
+ q(2526),
q(0),
],
q(south lembata) => [
- q(3981),
+ q(3972),
q(0),
],
q(south levantine arabic) => [
@@ -51130,11 +51097,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(south marquesan) => [
- q(4492),
+ q(4484),
q(0),
],
q(south muyu) => [
- q(3638),
+ q(3632),
q(0),
],
q(south ndebele) => [
@@ -51142,15 +51109,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(south nuaulu) => [
- q(5148),
+ q(5139),
q(0),
],
q(south picene) => [
- q(6196),
+ q(6186),
q(0),
],
q(south slavey) => [
- q(7496),
+ q(7478),
q(0),
],
q(south slavic languages) => [
@@ -51158,71 +51125,71 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(south tairora) => [
- q(5265),
+ q(5256),
q(0),
],
q(south ucayali asheninka) => [
- q(1841),
+ q(1836),
q(0),
],
q(south watut) => [
- q(4177),
+ q(4168),
q(0),
],
q(south west bay) => [
- q(6150),
+ q(6140),
q(0),
],
q(southeast ambrym) => [
- q(6783),
+ q(6767),
q(0),
],
q(southeast babar) => [
- q(6986),
+ q(6970),
q(0),
],
q(southeast ijo) => [
- q(2938),
+ q(2932),
q(0),
],
q(southeast pashai) => [
- q(5615),
+ q(5604),
q(0),
],
q(southeast pashayi) => [
- q(5615),
+ q(5604),
q(1),
],
q(southeastern dinka) => [
- q(2076),
+ q(2069),
q(0),
],
q(southeastern ixtlan zapotec) => [
- q(7917),
+ q(7899),
q(0),
],
q(southeastern kolami) => [
- q(4899),
+ q(4890),
q(0),
],
q(southeastern nochixtlan mixtec) => [
- q(4671),
+ q(4663),
q(0),
],
q(southeastern pomo) => [
- q(5562),
+ q(5553),
q(0),
],
q(southeastern puebla nahuatl) => [
- q(5037),
+ q(5028),
q(0),
],
q(southeastern tarahumara) => [
- q(6423),
+ q(6412),
q(0),
],
q(southeastern tepehuan) => [
- q(6268),
+ q(6258),
q(0),
],
q(southern alta) => [
@@ -51250,207 +51217,203 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(southern betsimisaraka malagasy) => [
- q(1615),
+ q(1613),
q(0),
],
q(southern binukidnon) => [
- q(4577),
+ q(4569),
q(0),
],
q(southern birifor) => [
- q(1226),
+ q(1225),
q(0),
],
q(southern bobo madare) => [
- q(1558),
+ q(1556),
q(0),
],
q(southern bontok) => [
- q(5190),
+ q(5181),
q(0),
],
q(southern carrier) => [
- q(1643),
+ q(1641),
q(0),
],
q(southern catanduanes bikol) => [
- q(1291),
+ q(1290),
q(0),
],
q(southern conchucos ancash quechua) => [
- q(5726),
+ q(5715),
q(0),
],
q(southern dagaare) => [
- q(2004),
+ q(1997),
q(0),
],
q(southern dong) => [
- q(3456),
+ q(3452),
q(0),
],
q(southern east cree) => [
- q(1851),
+ q(1845),
q(0),
],
q(southern ghale) => [
- q(2505),
- q(0),
- ],
- q(southern gondi) => [
- q(2499),
+ q(2500),
q(0),
],
q(southern grebo) => [
- q(2619),
+ q(2615),
q(0),
],
q(southern guiyang hmong) => [
- q(2798),
+ q(2793),
q(0),
],
q(southern guiyang miao) => [
- q(2798),
+ q(2793),
q(1),
],
q(southern haida) => [
- q(2729),
+ q(2724),
q(0),
],
q(southern hindko) => [
- q(2801),
+ q(2796),
q(0),
],
q(southern kalapuya) => [
- q(6326),
+ q(6315),
q(0),
],
q(southern kalinga) => [
- q(3596),
+ q(3591),
q(0),
],
q(southern kisi) => [
- q(3612),
+ q(3607),
q(0),
],
q(southern kiwai) => [
- q(3381),
+ q(3377),
q(0),
],
q(southern kurdish) => [
- q(5949),
+ q(5939),
q(0),
],
q(southern lolopo) => [
- q(7753),
+ q(7735),
q(0),
],
q(southern luri) => [
- q(4093),
+ q(4084),
q(0),
],
q(southern ma'di) => [
- q(6144),
+ q(6134),
q(0),
],
q(southern mashan hmong) => [
- q(2777),
+ q(2772),
q(0),
],
q(southern mashan miao) => [
- q(2777),
+ q(2772),
q(1),
],
q(southern mnong) => [
- q(4426),
+ q(4418),
q(0),
],
q(southern muji) => [
- q(7689),
+ q(7671),
q(0),
],
q(southern nago) => [
- q(5043),
+ q(5034),
q(0),
],
q(southern nambikuara) => [
- q(4720),
+ q(4712),
q(0),
],
q(southern ngbandi) => [
- q(4760),
+ q(4751),
q(0),
],
q(southern nicobarese) => [
- q(4891),
+ q(4882),
q(0),
],
q(southern nisu) => [
- q(5068),
+ q(5059),
q(0),
],
q(southern nuni) => [
- q(5009),
+ q(5000),
q(0),
],
q(southern ohlone) => [
- q(1882),
+ q(1876),
q(0),
],
q(southern one) => [
- q(5315),
+ q(5306),
q(0),
],
q(southern pame) => [
- q(5529),
+ q(5521),
q(0),
],
q(southern pashto) => [
- q(5377),
+ q(5369),
q(0),
],
q(southern pastaza quechua) => [
- q(5691),
+ q(5680),
q(0),
],
q(southern pomo) => [
- q(5417),
+ q(5409),
q(0),
],
q(southern puebla mixtec) => [
- q(4315),
+ q(4306),
q(0),
],
q(southern puget sound salish) => [
- q(6100),
+ q(6090),
q(0),
],
q(southern pumi) => [
- q(5516),
+ q(5508),
q(0),
],
q(southern qiandong miao) => [
- q(2793),
+ q(2788),
q(0),
],
q(southern qiang) => [
- q(5730),
+ q(5719),
q(0),
],
q(southern rengma naga) => [
- q(5052),
+ q(5043),
q(0),
],
q(southern rincon zapotec) => [
- q(7951),
+ q(7933),
q(0),
],
q(southern roglai) => [
- q(5782),
+ q(5771),
q(0),
],
q(southern sama) => [
- q(6230),
+ q(6220),
q(0),
],
q(southern sami) => [
@@ -51458,15 +51421,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(southern samo) => [
- q(5905),
+ q(5895),
q(0),
],
q(southern sierra miwok) => [
- q(6074),
+ q(6064),
q(0),
],
q(southern sorsoganon) => [
- q(6225),
+ q(6215),
q(0),
],
q(southern sotho) => [
@@ -51474,119 +51437,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(southern subanen) => [
- q(3793),
+ q(3784),
q(0),
],
q(southern thai) => [
- q(6172),
+ q(6162),
+ q(0),
+ ],
+ q(southern tidung) => [
+ q(3006),
q(0),
],
q(southern tiwa) => [
- q(6535),
+ q(6522),
q(0),
],
q(southern toussian) => [
- q(7127),
+ q(7111),
q(0),
],
q(southern tujia) => [
- q(6545),
+ q(6532),
q(0),
],
q(southern tutchone) => [
- q(6409),
+ q(6398),
q(0),
],
q(southern uzbek) => [
- q(6969),
+ q(6953),
q(0),
],
q(southern yamphu) => [
- q(4052),
+ q(4043),
q(0),
],
q(southern yukaghir) => [
- q(7780),
+ q(7762),
q(0),
],
q(southwest gbaya) => [
- q(2637),
+ q(2633),
q(0),
],
q(southwest palawano) => [
- q(5504),
+ q(5497),
q(0),
],
q(southwest pashai) => [
- q(5614),
+ q(5603),
q(0),
],
q(southwest pashayi) => [
- q(5614),
+ q(5603),
q(1),
],
q(southwest tanna) => [
- q(5136),
+ q(5127),
q(0),
],
q(southwestern bontok) => [
- q(6987),
+ q(6971),
q(0),
],
q(southwestern dinka) => [
- q(2044),
+ q(2037),
q(0),
],
q(southwestern fars) => [
- q(2337),
+ q(2333),
q(0),
],
q(southwestern guiyang hmong) => [
- q(2783),
+ q(2778),
q(0),
],
q(southwestern huishui hmong) => [
- q(2784),
+ q(2779),
q(0),
],
q(southwestern huishui miao) => [
- q(2784),
+ q(2779),
q(1),
],
q(southwestern nisu) => [
- q(5084),
+ q(5075),
q(0),
],
q(southwestern tarahumara) => [
- q(6806),
+ q(6790),
q(0),
],
q(southwestern tepehuan) => [
- q(6566),
+ q(6553),
q(0),
],
q(southwestern tlaxiaco mixtec) => [
- q(4208),
+ q(4199),
q(0),
],
q(sowa) => [
- q(6319),
+ q(6308),
q(0),
],
q(sowanda) => [
- q(6174),
+ q(6164),
q(0),
],
q(sowari) => [
- q(2098),
+ q(2091),
q(1),
],
q(soyaltepec mazatec) => [
- q(7031),
+ q(7015),
q(0),
],
q(soyaltepec mixtec) => [
- q(7032),
+ q(7016),
q(0),
],
q(spanish) => [
@@ -51594,19 +51561,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(spanish sign language) => [
- q(6244),
+ q(6234),
q(0),
],
q(spiti bhoti) => [
- q(6193),
+ q(6183),
q(0),
],
q(spokane) => [
- q(6188),
+ q(6178),
q(0),
],
q(squamish) => [
- q(6208),
+ q(6198),
q(0),
],
q(sranan tongo) => [
@@ -51614,11 +51581,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sri lankan creole malay) => [
- q(5933),
+ q(5923),
q(0),
],
q(sri lankan sign language) => [
- q(6206),
+ q(6196),
q(0),
],
q(standard arabic) => [
@@ -51626,15 +51593,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(standard estonian) => [
- q(2236),
+ q(2231),
q(0),
],
q(standard latvian) => [
- q(4096),
+ q(4087),
q(0),
],
q(standard malay) => [
- q(7950),
+ q(7932),
q(0),
],
q(standard moroccan tamazight) => [
@@ -51642,51 +51609,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(stellingwerfs) => [
- q(6264),
+ q(6254),
q(0),
],
q(stod bhoti) => [
- q(5922),
+ q(5912),
q(0),
],
q(stodsde) => [
- q(3097),
+ q(3093),
q(0),
],
q(stoney) => [
- q(6267),
+ q(6257),
q(0),
],
q(straits salish) => [
- q(6270),
+ q(6260),
q(0),
],
q(suabo) => [
- q(6355),
+ q(6344),
q(0),
],
q(suarmin) => [
- q(5975),
+ q(5965),
q(0),
],
q(suau) => [
- q(6312),
+ q(6301),
q(0),
],
q(suba) => [
- q(6322),
+ q(6311),
q(0),
],
q(suba-simbiti) => [
- q(6231),
+ q(6221),
q(0),
],
q(subiya) => [
- q(5920),
+ q(5910),
q(0),
],
q(subtiaba) => [
- q(6286),
+ q(6276),
q(0),
],
q(sudanese arabic) => [
@@ -51694,43 +51661,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sudanese creole arabic) => [
- q(5426),
+ q(5418),
q(0),
],
q(sudest) => [
- q(6485),
+ q(6474),
q(0),
],
q(sudovian) => [
- q(7505),
+ q(7487),
q(0),
],
q(suena) => [
- q(6280),
+ q(6270),
q(0),
],
q(suga) => [
- q(5997),
+ q(5987),
q(0),
],
q(suganga) => [
- q(6281),
+ q(6271),
q(0),
],
q(sugut dusun) => [
- q(3785),
+ q(3777),
q(0),
],
q(sui) => [
- q(6305),
+ q(6294),
q(0),
],
q(suki) => [
- q(6282),
+ q(6272),
q(0),
],
q(suku) => [
- q(6278),
+ q(6268),
q(0),
],
q(sukuma) => [
@@ -51738,43 +51705,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sukur) => [
- q(6338),
+ q(6327),
q(0),
],
q(sukurum) => [
- q(7952),
+ q(7934),
q(0),
],
q(sula) => [
- q(6354),
+ q(6343),
q(0),
],
q(sulka) => [
- q(6277),
+ q(6267),
q(0),
],
q(sulod) => [
- q(6214),
+ q(6204),
q(0),
],
q(suma) => [
- q(6201),
+ q(6191),
q(0),
],
q(sumariup) => [
- q(6050),
+ q(6040),
q(0),
],
q(sumau) => [
- q(6052),
+ q(6042),
q(0),
],
q(sumbawa) => [
- q(6131),
+ q(6121),
q(0),
],
q(sumbwa) => [
- q(6288),
+ q(6278),
q(0),
],
q(sumerian) => [
@@ -51782,15 +51749,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sumi naga) => [
- q(5076),
+ q(5067),
q(0),
],
q(sumtu chin) => [
- q(1884),
+ q(1878),
q(0),
],
q(sunam) => [
- q(6239),
+ q(6229),
q(0),
],
q(sundanese) => [
@@ -51798,75 +51765,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(sunum) => [
- q(7698),
+ q(7680),
q(1),
],
q(sunwar) => [
- q(6290),
+ q(6280),
q(0),
],
q(suomenruotsalainen viittomakieli) => [
- q(2379),
+ q(2376),
q(2),
],
q(suoy) => [
- q(6342),
+ q(6331),
q(0),
],
q(supyire senoufo) => [
- q(6189),
+ q(6179),
q(0),
],
q(sur) => [
- q(6439),
+ q(6428),
q(0),
],
q(surayt) => [
- q(6707),
+ q(6691),
q(1),
],
q(surbakhal) => [
- q(5911),
+ q(5901),
q(0),
],
q(surgujia) => [
- q(5998),
+ q(5988),
q(0),
],
q(suri) => [
- q(6284),
+ q(6274),
q(0),
],
q(surigaonon) => [
- q(5993),
+ q(5983),
q(0),
],
q(surjapuri) => [
- q(6065),
+ q(6055),
q(0),
],
q(sursurunga) => [
- q(6009),
+ q(5999),
q(0),
],
q(suruaha) => [
- q(6320),
+ q(6309),
q(0),
],
q(surubu) => [
- q(5946),
+ q(5936),
q(0),
],
q(surui) => [
- q(6224),
+ q(6214),
q(0),
],
q(surui do para) => [
- q(4201),
+ q(4192),
q(0),
],
q(susquehannock) => [
- q(6202),
+ q(6192),
q(0),
],
q(susu) => [
@@ -51874,27 +51841,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(susuami) => [
- q(6249),
+ q(6239),
q(0),
],
q(suundi) => [
- q(5950),
+ q(5940),
q(0),
],
q(suwawa) => [
- q(6317),
+ q(6306),
q(0),
],
q(suya) => [
- q(6289),
+ q(6279),
q(0),
],
q(svan) => [
- q(6291),
+ q(6281),
q(0),
],
q(swabian) => [
- q(6303),
+ q(6292),
q(0),
],
q(swahili) => [
@@ -51902,7 +51869,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(swahili (individual language)) => [
- q(6304),
+ q(6293),
q(0),
],
q(swahili (macrolanguage)) => [
@@ -51910,7 +51877,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(swampy cree) => [
- q(1885),
+ q(1879),
q(0),
],
q(swati) => [
@@ -51922,7 +51889,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(swedish sign language) => [
- q(6308),
+ q(6297),
q(0),
],
q(swiss german) => [
@@ -51930,27 +51897,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(swiss-french sign language) => [
- q(6246),
+ q(6236),
q(0),
],
q(swiss-german sign language) => [
- q(5995),
+ q(5985),
q(0),
],
q(swiss-italian sign language) => [
- q(6098),
+ q(6088),
q(0),
],
q(swo) => [
- q(6175),
+ q(6165),
q(0),
],
q(syenara senoufo) => [
- q(6033),
+ q(6023),
q(0),
],
q(sylheti) => [
- q(6339),
+ q(6328),
q(0),
],
q(syriac) => [
@@ -51958,7 +51925,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(t'en) => [
- q(6422),
+ q(6411),
q(0),
],
q(ta'izzi-adeni arabic) => [
@@ -51966,95 +51933,95 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(taabwa) => [
- q(6370),
+ q(6359),
q(0),
],
q(tabaa zapotec) => [
- q(7822),
+ q(7804),
q(0),
],
q(tabaru) => [
- q(6403),
+ q(6392),
q(0),
],
q(tabasco chontal) => [
- q(1721),
+ q(1717),
q(0),
],
q(tabasco nahuatl) => [
- q(4862),
+ q(4853),
q(0),
],
q(tabasco zoque) => [
- q(7911),
+ q(7893),
q(0),
],
q(tabassaran) => [
- q(6359),
+ q(6348),
q(0),
],
q(tabla) => [
- q(6621),
+ q(6606),
q(0),
],
q(tabo) => [
- q(3500),
+ q(3496),
q(0),
],
q(tabriak) => [
- q(6851),
+ q(6835),
q(0),
],
q(tacahua mixtec) => [
- q(7524),
+ q(7506),
q(0),
],
q(tacana) => [
- q(6611),
+ q(6597),
q(0),
],
q(tachawit) => [
- q(6032),
+ q(6022),
q(0),
],
q(tachelhit) => [
- q(6017),
+ q(6007),
q(0),
],
q(tachoni) => [
- q(4075),
+ q(4066),
q(0),
],
q(tadaksahak) => [
- q(2155),
+ q(2148),
q(0),
],
q(tadyawan) => [
- q(6449),
+ q(6438),
q(0),
],
q(tae') => [
- q(5837),
+ q(5825),
q(0),
],
q(tafi) => [
- q(6408),
+ q(6397),
q(0),
],
q(tagabawa) => [
- q(1178),
+ q(1177),
q(0),
],
q(tagakaulo) => [
- q(3435),
+ q(3431),
q(0),
],
q(tagal murut) => [
- q(4620),
+ q(4612),
q(0),
],
q(tagalaka) => [
- q(6496),
+ q(6485),
q(0),
],
q(tagalog) => [
@@ -52062,39 +52029,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tagargrent) => [
- q(5334),
+ q(5325),
q(0),
],
q(tagbanwa) => [
- q(6401),
+ q(6390),
q(0),
],
q(tagbu) => [
- q(6392),
+ q(6381),
q(0),
],
q(tagdal) => [
- q(6428),
+ q(6417),
q(0),
],
q(tagin) => [
- q(6483),
+ q(6472),
q(0),
],
q(tagish) => [
- q(6494),
+ q(6483),
q(0),
],
q(tagoi) => [
- q(6364),
+ q(6353),
q(0),
],
q(tagwana senoufo) => [
- q(6493),
+ q(6482),
q(0),
],
q(tahaggart tamahaq) => [
- q(6513),
+ q(6501),
q(0),
],
q(tahitian) => [
@@ -52102,39 +52069,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tahltan) => [
- q(6511),
+ q(6499),
q(0),
],
q(tai) => [
- q(6376),
+ q(6365),
q(0),
],
q(tai daeng) => [
- q(6838),
+ q(6822),
q(0),
],
q(tai dam) => [
- q(1297),
+ q(1296),
q(0),
],
q(tai do) => [
- q(6834),
+ q(6818),
q(0),
],
q(tai don) => [
- q(6799),
- q(0),
- ],
- q(tai hang tong) => [
- q(6497),
+ q(6783),
q(0),
],
q(tai hongjin) => [
- q(6537),
+ q(6524),
q(0),
],
q(tai laing) => [
- q(6541),
+ q(6528),
q(0),
],
q(tai languages) => [
@@ -52142,35 +52105,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tai loi) => [
- q(6579),
+ q(6566),
q(0),
],
q(tai long) => [
- q(6502),
- q(0),
- ],
- q(tai mene) => [
- q(6601),
+ q(6490),
q(0),
],
q(tai nua) => [
- q(6431),
+ q(6420),
q(0),
],
q(tai pao) => [
- q(6666),
+ q(6650),
q(0),
],
q(tai thanh) => [
- q(6598),
+ q(6585),
q(0),
],
q(tai ya) => [
- q(1918),
+ q(1911),
q(0),
],
+ q(tai yo) => [
+ q(6818),
+ q(1),
+ ],
q(taiap) => [
- q(2608),
+ q(2604),
q(0),
],
q(taikat) => [
@@ -52182,27 +52145,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(taino) => [
- q(6625),
+ q(6610),
q(0),
],
q(tairaha) => [
- q(1567),
+ q(1565),
q(0),
],
q(tairuma) => [
- q(6854),
+ q(6838),
q(0),
],
q(taita) => [
- q(1952),
+ q(1945),
q(0),
],
q(taiwan sign language) => [
- q(6727),
+ q(6711),
q(0),
],
q(taje) => [
- q(5407),
+ q(5399),
q(0),
],
q(tajik) => [
@@ -52214,115 +52177,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tajio) => [
- q(6437),
+ q(6426),
q(0),
],
q(tajuasohn) => [
- q(6538),
+ q(6525),
q(0),
],
q(takelma) => [
- q(6554),
+ q(6541),
q(0),
],
q(takestani) => [
- q(6559),
+ q(6546),
q(0),
],
q(takia) => [
- q(6382),
+ q(6371),
q(0),
],
q(takua) => [
- q(6565),
+ q(6552),
q(0),
],
q(takuu) => [
- q(4872),
+ q(4863),
q(0),
],
q(takwane) => [
- q(6551),
+ q(6538),
q(0),
],
q(tal) => [
- q(6367),
+ q(6356),
q(0),
],
q(tala) => [
- q(6366),
+ q(6355),
q(0),
],
q(talaandig) => [
- q(1257),
+ q(1256),
q(1),
],
q(talaud) => [
- q(6569),
+ q(6556),
q(0),
],
q(taliabu) => [
- q(6584),
+ q(6571),
q(0),
],
q(talieng) => [
- q(6433),
+ q(6422),
q(0),
],
q(talinga-bwisi) => [
- q(6572),
+ q(6559),
q(0),
],
q(talise) => [
- q(6580),
+ q(6567),
q(0),
],
q(talodi) => [
- q(6577),
+ q(6564),
q(0),
],
q(taloki) => [
- q(6573),
+ q(6560),
q(0),
],
q(talondo') => [
- q(6576),
+ q(6563),
q(0),
],
q(talossan) => [
- q(6847),
+ q(6831),
q(0),
],
q(talu) => [
- q(7757),
+ q(7739),
q(0),
],
q(talysh) => [
- q(6586),
+ q(6573),
q(0),
],
q(tama (chad)) => [
- q(6587),
+ q(6574),
q(0),
],
q(tama (colombia)) => [
- q(6460),
+ q(6449),
q(0),
],
q(tamagario) => [
- q(6411),
+ q(6400),
q(0),
],
q(taman (indonesia)) => [
- q(6599),
+ q(6586),
q(0),
],
q(taman (myanmar)) => [
- q(6415),
+ q(6404),
q(0),
],
q(tamanaku) => [
- q(6610),
+ q(6596),
q(0),
],
q(tamashek) => [
@@ -52330,31 +52293,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tamasheq) => [
- q(6371),
+ q(6360),
q(0),
],
q(tamazola mixtec) => [
- q(7038),
+ q(7022),
q(0),
],
q(tambas) => [
- q(6438),
+ q(6427),
q(0),
],
q(tambora) => [
- q(7564),
+ q(7546),
q(0),
],
q(tambotalo) => [
- q(6581),
- q(0),
- ],
- q(tambunan dusun) => [
- q(3786),
+ q(6568),
q(0),
],
q(tami) => [
- q(6609),
+ q(6595),
q(0),
],
q(tamil) => [
@@ -52362,127 +52321,127 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tamki) => [
- q(6377),
+ q(6366),
q(0),
],
q(tamnim citak) => [
- q(6597),
+ q(6584),
q(0),
],
q(tampias lobu) => [
- q(4034),
+ q(4025),
q(0),
],
q(tampuan) => [
- q(6671),
+ q(6655),
q(0),
],
q(tampulma) => [
- q(6664),
+ q(6648),
q(0),
],
q(tanacross) => [
- q(6406),
+ q(6395),
q(0),
],
q(tanahmerah) => [
- q(6416),
+ q(6405),
q(0),
],
q(tanaina) => [
- q(6471),
+ q(6460),
q(0),
],
q(tanapag) => [
- q(6672),
+ q(6656),
q(0),
],
q(tandaganon) => [
- q(6484),
+ q(6473),
q(0),
],
q(tandia) => [
- q(6618),
+ q(6603),
q(0),
],
q(tandroy-mahafaly malagasy) => [
- q(6448),
+ q(6437),
q(0),
],
q(tanema) => [
- q(6632),
+ q(6617),
q(0),
],
q(tangale) => [
- q(6368),
+ q(6357),
q(0),
],
q(tangchangya) => [
- q(6630),
+ q(6615),
q(0),
],
q(tanggu) => [
- q(6491),
+ q(6480),
q(0),
],
q(tangkhul naga (india)) => [
- q(4967),
+ q(4958),
q(0),
],
q(tangkhul naga (myanmar)) => [
- q(5101),
+ q(5092),
q(0),
],
q(tangko) => [
- q(6564),
+ q(6551),
q(0),
],
q(tanglang) => [
- q(7758),
+ q(7740),
q(0),
],
q(tangoa) => [
- q(6486),
+ q(6475),
q(0),
],
q(tanguat) => [
- q(6397),
+ q(6386),
q(0),
],
q(tangut) => [
- q(6816),
+ q(6800),
q(0),
],
q(tanimbili) => [
- q(6384),
+ q(6373),
q(0),
],
q(tanimuca-retuara) => [
- q(6613),
+ q(6599),
q(0),
],
q(tanjijili) => [
- q(6879),
+ q(6863),
q(0),
],
q(tankarana malagasy) => [
- q(7427),
+ q(7409),
q(1),
],
q(tanosy malagasy) => [
- q(6829),
+ q(6813),
q(0),
],
q(tanudan kalinga) => [
- q(3465),
+ q(3461),
q(0),
],
q(tanzanian sign language) => [
- q(6844),
+ q(6828),
q(0),
],
q(tapeba) => [
- q(6381),
+ q(6370),
q(0),
],
q(tapei) => [
@@ -52490,71 +52449,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tapiete) => [
- q(6661),
+ q(6645),
q(0),
],
q(tapirape) => [
- q(6363),
+ q(6352),
q(0),
],
q(tarao naga) => [
- q(6701),
+ q(6685),
q(0),
],
q(tareng) => [
- q(6488),
+ q(6477),
q(0),
],
q(tariana) => [
- q(6362),
+ q(6351),
q(0),
],
q(tarifit) => [
- q(5788),
+ q(5777),
q(0),
],
q(tarjumo) => [
- q(6819),
+ q(6803),
q(0),
],
q(tarok) => [
- q(7627),
+ q(7609),
q(0),
],
q(taroko) => [
- q(6708),
+ q(6692),
q(0),
],
q(tarpia) => [
- q(6659),
+ q(6643),
q(0),
],
q(tartessian) => [
- q(6824),
+ q(6808),
+ q(0),
+ ],
+ q(taruma) => [
+ q(6429),
q(0),
],
q(tasawaq) => [
- q(6805),
+ q(6789),
q(0),
],
q(tase naga) => [
- q(5082),
+ q(5073),
q(0),
],
q(tasmanian) => [
- q(7529),
+ q(7511),
q(0),
],
q(tasmate) => [
- q(6605),
+ q(6591),
q(0),
],
q(tataltepec chatino) => [
- q(1888),
+ q(1882),
q(0),
],
q(tatana) => [
- q(6828),
+ q(6812),
q(0),
],
q(tatar) => [
@@ -52562,103 +52525,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tatuyo) => [
- q(6375),
+ q(6364),
q(0),
],
q(tauade) => [
- q(6738),
+ q(6722),
q(0),
],
q(taulil) => [
- q(6767),
+ q(6751),
q(0),
],
q(taungyo) => [
- q(6418),
+ q(6407),
q(0),
],
q(taupota) => [
- q(6656),
+ q(6640),
q(0),
],
q(tause) => [
- q(6361),
+ q(6350),
q(0),
],
q(taushiro) => [
- q(6704),
+ q(6688),
q(0),
],
q(tausug) => [
- q(6718),
+ q(6702),
q(0),
],
q(tauya) => [
- q(6830),
+ q(6814),
q(0),
],
q(taveta) => [
- q(6787),
+ q(6771),
q(0),
],
q(tavoyan) => [
- q(6785),
+ q(6769),
q(0),
],
q(tavringer romani) => [
- q(5823),
+ q(5812),
q(0),
],
q(tawala) => [
- q(6394),
+ q(6383),
q(0),
],
q(tawallammat tamajaq) => [
- q(6751),
+ q(6735),
q(0),
],
q(tawande) => [
- q(7527),
+ q(7509),
q(0),
],
q(tawang monpa) => [
- q(6801),
+ q(6785),
q(0),
],
q(tawara) => [
- q(6800),
+ q(6784),
q(0),
],
q(taworta) => [
- q(6395),
+ q(6384),
q(0),
],
q(tawoyan) => [
- q(6811),
+ q(6795),
q(0),
],
q(tawr chin) => [
- q(6419),
+ q(6408),
q(0),
],
q(tay) => [
- q(6843),
+ q(6827),
q(0),
],
q(tay boi) => [
- q(6373),
+ q(6362),
q(0),
],
q(tay khang) => [
- q(6629),
+ q(6614),
q(0),
],
q(tay sa pa) => [
- q(6839),
+ q(6823),
q(0),
],
q(tay tac) => [
- q(6840),
+ q(6824),
q(0),
],
q(tayabas ayta) => [
@@ -52666,131 +52629,131 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tayart tamajeq) => [
- q(6516),
+ q(6504),
q(0),
],
q(tayo) => [
- q(1762),
+ q(1758),
q(0),
],
q(taznatit) => [
- q(2623),
+ q(2619),
q(0),
],
q(tboli) => [
- q(6391),
+ q(6380),
q(0),
],
q(tchitchege) => [
- q(6414),
+ q(6403),
q(0),
],
q(tchumbuli) => [
- q(1398),
+ q(1397),
q(0),
],
q(te'un) => [
- q(6782),
+ q(6766),
q(0),
],
q(teanu) => [
- q(6563),
+ q(6550),
q(0),
],
q(tebi) => [
- q(2094),
+ q(2087),
q(1),
],
q(tebul sign language) => [
- q(6733),
+ q(6717),
q(0),
],
q(tebul ure dogon) => [
- q(2168),
+ q(2162),
q(0),
],
q(tecpatlan totonac) => [
- q(6424),
+ q(6413),
q(0),
],
q(tedaga) => [
- q(6773),
+ q(6757),
q(0),
],
q(tedim chin) => [
- q(1890),
+ q(1884),
q(0),
],
q(tee) => [
- q(6557),
+ q(6544),
q(0),
],
q(teen) => [
- q(4029),
+ q(4020),
q(0),
],
q(tefaro) => [
- q(6472),
+ q(6461),
q(0),
],
q(tegali) => [
- q(5750),
+ q(5739),
q(0),
],
q(tehit) => [
- q(3540),
+ q(3535),
q(0),
],
q(tehuelche) => [
- q(6457),
+ q(6446),
q(0),
],
q(tejalapan zapotec) => [
- q(7961),
+ q(7943),
q(0),
],
q(teke-ebo) => [
- q(2215),
+ q(2210),
q(0),
],
q(teke-fuumu) => [
- q(2917),
+ q(2911),
q(0),
],
q(teke-kukuya) => [
- q(3425),
+ q(3421),
q(0),
],
q(teke-laali) => [
- q(3964),
+ q(3955),
q(0),
],
q(teke-nzikou) => [
- q(5182),
+ q(5173),
q(0),
],
q(teke-tege) => [
- q(6456),
+ q(6445),
q(0),
],
q(teke-tsaayi) => [
- q(6833),
+ q(6817),
q(0),
],
q(teke-tyee) => [
- q(6842),
+ q(6826),
q(0),
],
q(tektiteko) => [
- q(6737),
+ q(6721),
q(0),
],
q(tela-masbuar) => [
- q(6784),
+ q(6768),
q(0),
],
q(telefol) => [
- q(6570),
+ q(6557),
q(0),
],
q(telugu) => [
@@ -52798,63 +52761,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(teluti) => [
- q(6582),
- q(0),
+ q(6569),
+ q(1),
],
q(tem) => [
- q(3241),
+ q(3238),
q(0),
],
q(temacine tamazight) => [
- q(6544),
+ q(6531),
q(0),
],
q(temascaltepec nahuatl) => [
- q(4878),
+ q(4869),
q(0),
],
q(tembe) => [
- q(6677),
+ q(6661),
q(0),
],
q(tembo (kitembo)) => [
- q(6398),
+ q(6387),
q(0),
],
q(tembo (motembo)) => [
- q(6607),
+ q(6593),
q(0),
],
q(teme) => [
- q(6441),
+ q(6431),
q(0),
],
q(temein) => [
- q(6463),
+ q(6452),
q(0),
],
q(temi) => [
- q(6177),
+ q(6167),
q(0),
],
q(temiar) => [
- q(6450),
+ q(6439),
q(0),
],
q(temoaya otomi) => [
- q(5328),
+ q(5319),
q(0),
],
q(temoq) => [
- q(6600),
+ q(6587),
q(0),
],
- q(tempasuk dusun) => [
- q(6446),
+ q(temuan) => [
+ q(6594),
q(0),
],
- q(temuan) => [
- q(6608),
+ q(ten'edn) => [
+ q(6619),
q(0),
],
q(tena) => [
@@ -52862,83 +52825,83 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(tena lowland quichua) => [
- q(5696),
+ q(5685),
q(0),
],
q(tenango otomi) => [
- q(5324),
+ q(5315),
q(0),
],
q(tene kan dogon) => [
- q(2161),
+ q(2154),
q(0),
],
q(tenggarong kutai malay) => [
- q(7014),
+ q(6998),
q(0),
],
q(tengger) => [
- q(6464),
+ q(6453),
q(0),
],
q(tenharim) => [
- q(5351),
+ q(5343),
q(0),
],
q(tenino) => [
- q(6680),
+ q(6664),
q(0),
],
q(tenis) => [
- q(6627),
+ q(6612),
q(0),
],
q(tennet) => [
- q(6468),
+ q(6457),
q(0),
],
q(teop) => [
- q(6528),
+ q(6515),
q(0),
],
q(teor) => [
- q(6466),
+ q(6455),
q(0),
],
q(tepecano) => [
- q(6462),
+ q(6451),
q(0),
],
q(tepetotutla chinantec) => [
- q(1805),
+ q(1801),
q(0),
],
q(tepeuxila cuicatec) => [
- q(1921),
+ q(1914),
q(0),
],
q(tepinapa chinantec) => [
- q(1891),
+ q(1885),
q(0),
],
q(tepo krumen) => [
- q(6453),
+ q(6442),
q(0),
],
q(ter sami) => [
- q(6068),
+ q(6058),
q(0),
],
q(tera) => [
- q(6752),
+ q(6736),
q(0),
],
q(terebu) => [
- q(6689),
+ q(6673),
q(0),
],
q(terei) => [
- q(1506),
+ q(1504),
q(0),
],
q(tereno) => [
@@ -52946,59 +52909,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(teressa) => [
- q(6455),
+ q(6444),
q(0),
],
q(tereweng) => [
- q(6798),
+ q(6782),
q(0),
],
q(teribe) => [
- q(6473),
+ q(6462),
q(0),
],
q(terik) => [
- q(6452),
+ q(6441),
q(0),
],
q(termanu) => [
- q(6808),
+ q(6792),
q(0),
],
q(ternate) => [
- q(6474),
+ q(6463),
q(0),
],
q(ternateno) => [
- q(6593),
+ q(6580),
q(0),
],
q(tesaka malagasy) => [
- q(6553),
+ q(6540),
q(0),
],
q(tese) => [
- q(3263),
+ q(3260),
q(0),
],
q(teshenawa) => [
- q(6794),
+ q(6778),
q(0),
],
q(teso) => [
- q(6461),
+ q(6450),
q(0),
],
q(tetela) => [
- q(6574),
+ q(6561),
q(0),
],
q(tetelcingo nahuatl) => [
- q(4866),
+ q(4857),
q(0),
],
q(tetete) => [
- q(6451),
+ q(6440),
q(0),
],
q(tetum) => [
@@ -53006,51 +52969,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tetun dili) => [
- q(6445),
+ q(6435),
q(0),
],
q(teutila cuicatec) => [
- q(1917),
+ q(1910),
q(0),
],
q(tewa (indonesia)) => [
- q(6796),
+ q(6780),
q(0),
],
q(tewa (usa)) => [
- q(6467),
+ q(6456),
q(0),
],
q(tewe) => [
- q(6810),
+ q(6794),
q(0),
],
q(texcatepec otomi) => [
- q(5331),
+ q(5322),
q(0),
],
q(texistepec popoluca) => [
- q(5565),
+ q(5556),
q(0),
],
q(texmelucan zapotec) => [
- q(7939),
+ q(7921),
q(0),
],
q(tezoatlan mixtec) => [
- q(4648),
+ q(4640),
q(0),
],
q(tha) => [
- q(6515),
+ q(6503),
q(0),
],
q(thachanadan) => [
- q(6506),
+ q(6494),
q(0),
],
q(thado chin) => [
- q(6427),
+ q(6416),
q(0),
],
q(thai) => [
@@ -53058,87 +53021,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(thai sign language) => [
- q(6725),
+ q(6709),
q(0),
],
q(thai song) => [
- q(6157),
+ q(6147),
q(0),
],
q(thaiphum chin) => [
- q(1893),
+ q(1887),
q(0),
],
q(thakali) => [
- q(6510),
+ q(6498),
q(0),
],
q(thangal naga) => [
- q(4930),
+ q(4921),
q(0),
],
q(thangmi) => [
- q(6500),
+ q(6488),
q(0),
],
q(thao) => [
- q(6234),
+ q(6224),
q(0),
],
q(tharaka) => [
- q(6503),
+ q(6491),
q(0),
],
q(thawa) => [
- q(7526),
+ q(7508),
q(0),
],
q(thayore) => [
- q(6498),
+ q(6486),
q(0),
],
q(thaypan) => [
- q(6837),
+ q(6821),
q(0),
],
q(thiin) => [
- q(2933),
+ q(2927),
q(0),
],
q(tho) => [
- q(6650),
+ q(6634),
q(0),
],
q(thompson) => [
- q(6507),
+ q(6495),
q(0),
],
q(thopho) => [
- q(7759),
+ q(7741),
q(0),
],
q(thracian) => [
- q(6817),
+ q(6801),
q(0),
],
q(thu lao) => [
- q(6835),
+ q(6819),
q(0),
],
q(thudam) => [
- q(6514),
+ q(6502),
q(0),
],
q(thulung) => [
- q(6435),
+ q(6424),
q(0),
],
q(thurawal) => [
- q(6387),
+ q(6376),
q(0),
],
q(thuri) => [
- q(6512),
+ q(6500),
q(0),
],
q(tiagbamrin aizi) => [
@@ -53146,15 +53109,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tiale) => [
- q(4424),
+ q(4416),
q(0),
],
q(tiang) => [
- q(6389),
+ q(6378),
q(0),
],
q(tibea) => [
- q(4858),
+ q(4849),
q(0),
],
q(tibetan) => [
@@ -53166,55 +53129,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tichurong) => [
- q(6417),
+ q(6406),
q(0),
],
q(ticuna) => [
- q(6405),
+ q(6394),
q(0),
],
q(tidaa mixtec) => [
- q(4578),
+ q(4570),
q(0),
],
q(tidikelt tamazight) => [
- q(6517),
- q(0),
- ],
- q(tidong) => [
- q(6519),
+ q(6505),
q(0),
],
q(tidore) => [
- q(6786),
+ q(6770),
q(0),
],
q(tiefo) => [
- q(6530),
+ q(6517),
q(0),
],
q(tiemacewe bozo) => [
- q(1364),
+ q(1363),
q(0),
],
q(tiene) => [
- q(6522),
+ q(6509),
q(0),
],
q(tieyaxo bozo) => [
- q(1374),
+ q(1373),
q(0),
],
q(tifal) => [
- q(6520),
+ q(6507),
q(0),
],
q(tigak) => [
- q(6477),
+ q(6466),
q(0),
],
q(tigon mbembe) => [
- q(5177),
+ q(5168),
q(0),
],
q(tigre) => [
@@ -53226,47 +53185,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tii) => [
- q(6823),
+ q(6807),
q(0),
],
q(tijaltepec mixtec) => [
- q(7516),
+ q(7498),
q(0),
],
q(tikar) => [
- q(6524),
+ q(6511),
q(0),
],
q(tikopia) => [
- q(6556),
+ q(6543),
q(0),
],
q(tilapa otomi) => [
- q(5322),
+ q(5313),
q(0),
],
q(tillamook) => [
- q(6525),
+ q(6512),
q(0),
],
q(tilquiapan zapotec) => [
- q(7960),
+ q(7942),
q(0),
],
q(tilung) => [
- q(6523),
+ q(6510),
q(0),
],
q(tima) => [
- q(6604),
+ q(6590),
q(0),
],
q(timbe) => [
- q(6526),
+ q(6513),
q(0),
],
q(timbisha) => [
- q(5356),
+ q(5348),
q(1),
],
q(timne) => [
@@ -53274,71 +53233,67 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(timor pidgin) => [
- q(6791),
+ q(6775),
q(0),
],
q(timucua) => [
- q(6542),
+ q(6529),
q(0),
],
q(timugon murut) => [
- q(6521),
+ q(6508),
q(0),
],
q(tinani) => [
- q(3817),
+ q(3808),
q(0),
],
q(tindi) => [
- q(6527),
+ q(6514),
q(0),
],
q(tingui-boto) => [
- q(6492),
+ q(6481),
q(0),
],
q(tinigua) => [
- q(6532),
- q(0),
- ],
- q(tinoc kallahan) => [
- q(6615),
+ q(6519),
q(0),
],
q(tinputz) => [
- q(6676),
+ q(6660),
q(0),
],
q(tippera) => [
- q(6658),
+ q(6642),
q(0),
],
q(tira) => [
- q(6518),
+ q(6506),
q(0),
],
q(tirahi) => [
- q(6688),
+ q(6672),
q(0),
],
q(tiranige diga dogon) => [
- q(6432),
+ q(6421),
q(0),
],
q(tiri) => [
- q(1740),
+ q(1736),
q(0),
],
q(tiruray) => [
- q(6536),
+ q(6523),
q(0),
],
q(tita) => [
- q(6442),
+ q(6432),
q(0),
],
q(titan) => [
- q(6756),
+ q(6740),
q(0),
],
q(tiv) => [
@@ -53346,47 +53301,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tiwa) => [
- q(3810),
+ q(3801),
q(0),
],
q(tiwi) => [
- q(6534),
+ q(6521),
q(0),
],
q(tjurruru) => [
- q(6546),
+ q(6533),
q(0),
],
q(tlachichilco tepehua) => [
- q(6670),
+ q(6654),
q(0),
],
q(tlacoapa me'phaa) => [
- q(6663),
+ q(6647),
q(0),
],
q(tlacoapa tlapanec) => [
- q(6663),
+ q(6647),
q(1),
],
q(tlacoatzintepec chinantec) => [
- q(1894),
+ q(1888),
q(0),
],
q(tlacolulita zapotec) => [
- q(7924),
+ q(7906),
q(0),
],
q(tlahuitoltepec mixe) => [
- q(4662),
+ q(4654),
q(0),
],
q(tlamacazapa nahuatl) => [
- q(5128),
+ q(5119),
q(0),
],
q(tlazoyaltepec mixtec) => [
- q(4487),
+ q(4479),
q(0),
],
q(tlhingan-hol) => [
@@ -53398,51 +53353,51 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(to) => [
- q(6655),
+ q(6639),
q(0),
],
q(to'abaita) => [
- q(4385),
+ q(4377),
q(0),
],
q(toaripi) => [
- q(6681),
+ q(6665),
q(0),
],
q(toba) => [
- q(6635),
+ q(6620),
q(0),
],
q(toba-maskoy) => [
- q(6592),
+ q(6579),
q(0),
],
q(tobagonian creole english) => [
- q(6481),
+ q(6470),
q(0),
],
q(tobanga) => [
- q(6616),
+ q(6601),
q(0),
],
q(tobati) => [
- q(6743),
+ q(6727),
q(0),
],
q(tobelo) => [
- q(6567),
+ q(6554),
q(0),
],
q(tobian) => [
- q(6653),
+ q(6637),
q(0),
],
q(tobilung) => [
- q(6476),
+ q(6465),
q(0),
],
q(tobo) => [
- q(6400),
+ q(6389),
q(0),
],
q(tocantins asurini) => [
@@ -53450,39 +53405,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tocho) => [
- q(6379),
+ q(6368),
q(0),
],
q(toda) => [
- q(6425),
+ q(6414),
q(0),
],
q(todrah) => [
- q(6443),
+ q(6433),
q(0),
],
q(tofanma) => [
- q(6571),
+ q(6558),
q(0),
],
q(tofin gbe) => [
- q(6470),
+ q(6459),
q(0),
],
q(togbo-vara banda) => [
- q(6648),
+ q(6632),
q(0),
],
q(togoyo) => [
- q(6495),
+ q(6484),
q(0),
],
q(tohono o'odham) => [
- q(5283),
+ q(5274),
q(0),
],
q(tojolabal) => [
- q(6642),
+ q(6626),
q(0),
],
q(tok pisin) => [
@@ -53490,7 +53445,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tokano) => [
- q(7966),
+ q(7948),
q(0),
],
q(tokelau) => [
@@ -53498,79 +53453,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tokharian a) => [
- q(7519),
+ q(7501),
q(0),
],
q(tokharian b) => [
- q(6813),
+ q(6797),
q(0),
],
q(toku-no-shima) => [
- q(6555),
+ q(6542),
q(0),
],
q(tol) => [
- q(3093),
+ q(3089),
q(0),
],
q(tolaki) => [
- q(3832),
+ q(3823),
q(0),
],
q(tolomako) => [
- q(6575),
+ q(6562),
q(0),
],
q(tolowa) => [
- q(6643),
+ q(6627),
q(0),
],
q(toma) => [
- q(6637),
+ q(6622),
q(0),
],
q(tomadino) => [
- q(6436),
+ q(6425),
q(0),
],
q(tombelala) => [
- q(6750),
+ q(6734),
q(0),
],
q(tombonuo) => [
- q(6812),
+ q(6796),
q(0),
],
q(tombulu) => [
- q(6644),
- q(0),
- ],
- q(tomedes) => [
- q(6638),
+ q(6628),
q(0),
],
q(tomini) => [
- q(6820),
+ q(6804),
q(0),
],
q(tommo so dogon) => [
- q(2163),
+ q(2157),
q(0),
],
q(tomo kan dogon) => [
- q(2162),
+ q(2155),
q(0),
],
q(tomoip) => [
- q(6682),
+ q(6666),
q(0),
],
q(tondano) => [
- q(6440),
+ q(6430),
q(0),
],
q(tondi songway kiini) => [
- q(6728),
+ q(6712),
q(0),
],
q(tonga) => [
@@ -53581,104 +53532,100 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0435),
q(0),
],
- q(tonga (thailand)) => [
- q(6634),
- q(0),
- ],
q(tonga (tonga islands)) => [
q(0436),
q(0),
],
q(tonga (zambia)) => [
- q(6641),
+ q(6625),
q(0),
],
q(tongwe) => [
- q(6633),
+ q(6618),
q(0),
],
q(tonjon) => [
- q(6543),
+ q(6530),
q(0),
],
q(tonkawa) => [
- q(6687),
+ q(6671),
q(0),
],
q(tonsawang) => [
- q(6631),
+ q(6616),
q(0),
],
q(tonsea) => [
- q(6825),
+ q(6809),
q(0),
],
q(tontemboan) => [
- q(6628),
+ q(6613),
q(0),
],
q(tooro) => [
- q(6744),
+ q(6728),
q(0),
],
q(topoiyo) => [
- q(6654),
+ q(6638),
q(0),
],
q(toposa) => [
- q(6647),
+ q(6631),
q(0),
],
q(tora) => [
- q(6712),
+ q(6696),
q(0),
],
q(toraja-sa'dan) => [
- q(5943),
+ q(5933),
q(0),
],
q(toram) => [
- q(6697),
+ q(6681),
q(0),
],
q(torau) => [
- q(6755),
+ q(6739),
q(0),
],
q(tornedalen finnish) => [
- q(2349),
+ q(2345),
q(0),
],
q(toro) => [
- q(6447),
+ q(6436),
q(0),
],
q(toro so dogon) => [
- q(2166),
+ q(2160),
q(0),
],
q(toro tegu dogon) => [
- q(2167),
+ q(2161),
q(0),
],
q(toromono) => [
- q(6623),
+ q(6608),
q(0),
],
q(torona) => [
- q(6684),
+ q(6668),
q(0),
],
q(torres strait creole) => [
- q(6421),
+ q(6410),
q(0),
],
q(torricelli) => [
- q(6458),
+ q(6447),
q(0),
],
q(torwali) => [
- q(6709),
+ q(6693),
q(0),
],
q(tosk albanian) => [
@@ -53686,43 +53633,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(totela) => [
- q(6746),
+ q(6730),
q(0),
],
q(toto) => [
- q(6822),
+ q(6806),
q(0),
],
q(totoli) => [
- q(6815),
+ q(6799),
q(0),
],
q(totomachapan zapotec) => [
- q(7921),
+ q(7903),
q(0),
],
q(totontepec mixe) => [
- q(4569),
+ q(4561),
q(0),
],
q(totoro) => [
- q(6745),
+ q(6729),
q(0),
],
q(touo) => [
- q(6686),
+ q(6670),
q(0),
],
q(toura (cote d'ivoire)) => [
- q(4808),
+ q(4799),
q(0),
],
q(toura (papua new guinea)) => [
- q(2121),
+ q(2114),
q(0),
],
q(towei) => [
- q(6748),
+ q(6732),
q(0),
],
q(trans-new guinea languages) => [
@@ -53730,123 +53677,123 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(transalpine gaulish) => [
- q(7512),
+ q(7494),
q(0),
],
q(traveller danish) => [
- q(5808),
+ q(5797),
q(0),
],
q(traveller norwegian) => [
- q(5811),
+ q(5800),
q(0),
],
q(traveller scottish) => [
- q(6698),
+ q(6682),
q(0),
],
q(tregami) => [
- q(6699),
+ q(6683),
q(0),
],
q(tremembe) => [
- q(6591),
+ q(6578),
q(0),
],
q(trieng) => [
- q(6259),
+ q(6249),
q(0),
],
q(trimuris) => [
- q(6529),
+ q(6516),
q(0),
],
q(tring) => [
- q(6487),
+ q(6476),
q(0),
],
q(tringgus-sembaan bidayuh) => [
- q(6710),
+ q(6694),
q(0),
],
q(trinidad and tobago sign language) => [
- q(4068),
+ q(4059),
q(0),
],
q(trinidadian creole english) => [
- q(6693),
+ q(6677),
q(0),
],
q(trinitario) => [
- q(6700),
+ q(6684),
q(0),
],
q(trio) => [
- q(6696),
+ q(6680),
q(0),
],
q(truka) => [
- q(6548),
+ q(6535),
q(0),
],
q(trumai) => [
- q(6675),
+ q(6659),
q(0),
],
q(ts'un-lao) => [
- q(6722),
+ q(6706),
q(0),
],
q(tsaangi) => [
- q(6713),
+ q(6697),
q(0),
],
q(tsakhur) => [
- q(6558),
+ q(6545),
q(0),
],
q(tsakonian) => [
- q(6716),
+ q(6700),
q(0),
],
q(tsakwambo) => [
- q(3692),
+ q(3685),
q(0),
],
q(tsamai) => [
- q(6714),
+ q(6698),
q(0),
],
q(tsat) => [
- q(2865),
+ q(2860),
q(0),
],
q(tsaukambo) => [
- q(3692),
+ q(3685),
q(1),
],
q(tseku) => [
- q(6721),
+ q(6705),
q(0),
],
q(tsetsaut) => [
- q(6814),
+ q(6798),
q(0),
],
q(tshangla) => [
- q(6720),
+ q(6704),
q(0),
],
q(tsikimba) => [
- q(3245),
+ q(3242),
q(0),
],
q(tsimane) => [
- q(1654),
+ q(1652),
q(0),
],
q(tsimihety malagasy) => [
- q(7428),
+ q(7410),
q(0),
],
q(tsimshian) => [
@@ -53854,19 +53801,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tsishingini) => [
- q(6731),
+ q(6715),
q(0),
],
q(tso) => [
- q(3858),
+ q(3849),
q(0),
],
q(tsoa) => [
- q(2762),
+ q(2757),
q(0),
],
q(tsogo) => [
- q(6730),
+ q(6714),
q(0),
],
q(tsonga) => [
@@ -53874,35 +53821,35 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tsotsitaal) => [
- q(2359),
+ q(2355),
q(1),
],
q(tsotso) => [
- q(4074),
+ q(4065),
q(0),
],
q(tsou) => [
- q(6729),
+ q(6713),
q(0),
],
q(tsucuba) => [
- q(1672),
+ q(1668),
q(0),
],
q(tsum) => [
- q(6759),
+ q(6743),
q(0),
],
q(tsuvadi) => [
- q(6781),
+ q(6765),
q(0),
],
q(tsuvan) => [
- q(6719),
+ q(6703),
q(0),
],
q(tswa) => [
- q(6715),
+ q(6699),
q(0),
],
q(tswana) => [
@@ -53910,47 +53857,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tswapong) => [
- q(6803),
+ q(6787),
q(0),
],
q(tu) => [
- q(4324),
+ q(4316),
q(0),
],
q(tuamotuan) => [
- q(5525),
+ q(5517),
q(0),
],
q(tubar) => [
- q(6399),
+ q(6388),
q(0),
],
q(tubatulabal) => [
- q(6761),
+ q(6745),
q(0),
],
q(tucano) => [
- q(6772),
+ q(6756),
q(0),
],
q(tugen) => [
- q(6778),
+ q(6762),
q(0),
],
q(tugun) => [
- q(6849),
+ q(6833),
q(0),
],
q(tugutil) => [
- q(6769),
+ q(6753),
q(0),
],
q(tukang besi north) => [
- q(3334),
+ q(3330),
q(0),
],
q(tukang besi south) => [
- q(1200),
+ q(1199),
q(0),
],
q(tuki) => [
@@ -53958,47 +53905,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tukpa) => [
- q(6668),
+ q(6652),
q(0),
],
q(tukudede) => [
- q(6550),
+ q(6537),
q(0),
],
q(tukumanfed) => [
- q(6552),
+ q(6539),
q(0),
],
q(tula) => [
- q(6770),
+ q(6754),
q(0),
],
q(tulehu) => [
- q(6583),
+ q(6570),
q(0),
],
q(tulishi) => [
- q(6469),
+ q(6458),
q(0),
],
q(tulu) => [
- q(6426),
+ q(6415),
q(0),
],
q(tulu-bohuai) => [
- q(5744),
+ q(5733),
q(0),
],
q(tuma-irumu) => [
- q(2981),
+ q(2976),
q(0),
],
q(tumak) => [
- q(6589),
+ q(6576),
q(0),
],
q(tumari kanuri) => [
- q(3588),
+ q(3583),
q(0),
],
q(tumbuka) => [
@@ -54006,43 +53953,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tumi) => [
- q(3423),
+ q(3419),
q(0),
],
q(tumleo) => [
- q(6602),
+ q(6588),
q(0),
],
q(tumshuqese) => [
- q(7521),
+ q(7503),
q(0),
],
q(tumtum) => [
- q(6396),
+ q(6385),
q(0),
],
q(tumulung sisaala) => [
- q(6043),
+ q(6033),
q(0),
],
q(tumzabt) => [
- q(4695),
+ q(4687),
q(0),
],
q(tundra enets) => [
- q(2269),
+ q(2264),
q(0),
],
q(tunen) => [
- q(6789),
+ q(6773),
q(0),
],
q(tungag) => [
- q(3842),
+ q(3833),
q(0),
],
q(tunggare) => [
- q(6706),
+ q(6690),
q(0),
],
q(tungus languages) => [
@@ -54050,11 +53997,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tunia) => [
- q(6766),
+ q(6750),
q(0),
],
q(tunica) => [
- q(6771),
+ q(6755),
q(0),
],
q(tunisian arabic) => [
@@ -54062,31 +54009,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tunisian sign language) => [
- q(6717),
+ q(6701),
q(0),
],
q(tunjung) => [
- q(6539),
+ q(6526),
q(0),
],
q(tunni) => [
- q(6683),
+ q(6667),
q(0),
],
q(tunzu) => [
- q(2207),
+ q(2202),
q(0),
],
q(tuotomb) => [
- q(6740),
+ q(6724),
q(0),
],
q(tupari) => [
- q(6669),
+ q(6653),
q(0),
],
q(tupi) => [
- q(6673),
+ q(6657),
q(0),
],
q(tupi languages) => [
@@ -54094,43 +54041,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tupinamba) => [
- q(6665),
+ q(6649),
q(0),
],
q(tupinikin) => [
- q(6662),
+ q(6646),
q(0),
],
q(tupuri) => [
- q(6768),
+ q(6752),
q(0),
],
q(turaka) => [
- q(6695),
+ q(6679),
q(0),
],
q(turi) => [
- q(6691),
+ q(6675),
q(0),
],
q(turiwara) => [
- q(6807),
+ q(6791),
q(0),
],
q(turk isaret dili) => [
- q(6723),
+ q(6707),
q(1),
],
q(turka) => [
- q(6779),
+ q(6763),
q(0),
],
q(turkana) => [
- q(6776),
+ q(6760),
q(0),
],
q(turkic khalaj) => [
- q(3438),
+ q(3434),
q(0),
],
q(turkic languages) => [
@@ -54142,7 +54089,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(turkish sign language) => [
- q(6723),
+ q(6707),
q(0),
],
q(turkish, ottoman (1500-1928)) => [
@@ -54154,47 +54101,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(turks and caicos creole english) => [
- q(6412),
+ q(6401),
q(0),
],
q(turoyo) => [
- q(6707),
+ q(6691),
q(0),
],
q(turumsa) => [
- q(6679),
+ q(6663),
q(0),
],
q(turung) => [
- q(6711),
+ q(6695),
q(0),
],
q(tuscarora) => [
- q(6774),
+ q(6758),
q(0),
],
q(tutelo) => [
- q(6735),
+ q(6719),
q(0),
],
q(tutong) => [
- q(6741),
+ q(6725),
q(0),
],
q(tutsa naga) => [
- q(6788),
+ q(6772),
q(0),
],
q(tutuba) => [
- q(6594),
+ q(6581),
q(0),
],
q(tututepec mixtec) => [
- q(4575),
+ q(4567),
q(0),
],
q(tututni) => [
- q(6775),
+ q(6759),
q(0),
],
q(tuvalu) => [
@@ -54206,39 +54153,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tuwali ifugao) => [
- q(2916),
+ q(2910),
q(0),
],
q(tuwari) => [
- q(6809),
+ q(6793),
q(0),
],
q(tuwuli) => [
- q(1370),
+ q(1369),
q(0),
],
q(tuxa) => [
- q(6763),
+ q(6747),
q(0),
],
q(tuxinawa) => [
- q(6777),
+ q(6761),
q(0),
],
q(tuyuca) => [
- q(6764),
+ q(6748),
q(0),
],
q(twana) => [
- q(6792),
+ q(6776),
q(0),
],
q(twendi) => [
- q(6802),
+ q(6786),
q(0),
],
q(twents) => [
- q(6795),
+ q(6779),
q(0),
],
q(twi) => [
@@ -54246,27 +54193,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(tyap) => [
- q(3215),
+ q(3212),
q(0),
],
q(tyaraity) => [
- q(7196),
+ q(7180),
q(0),
],
q(tz'utujil) => [
- q(6846),
+ q(6830),
q(0),
],
q(tzeltal) => [
- q(6845),
+ q(6829),
q(0),
],
q(tzotzil) => [
- q(6850),
+ q(6834),
q(0),
],
q(u) => [
- q(6962),
+ q(6946),
q(0),
],
q(uab meto) => [
@@ -54274,47 +54221,47 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uamue) => [
- q(6852),
+ q(6836),
q(0),
],
q(uare) => [
- q(3603),
+ q(3598),
q(0),
],
q(ubaghara) => [
- q(1592),
+ q(1590),
q(0),
],
q(ubang) => [
- q(6855),
+ q(6839),
q(0),
],
q(ubi) => [
- q(6856),
+ q(6840),
q(0),
],
q(ubir) => [
- q(6858),
+ q(6842),
q(0),
],
q(ubykh) => [
- q(6860),
+ q(6844),
q(0),
],
q(ucayali-yurua asheninka) => [
- q(1832),
+ q(1827),
q(0),
],
q(uda) => [
- q(6861),
+ q(6845),
q(0),
],
q(udi) => [
- q(6864),
+ q(6848),
q(0),
],
q(udihe) => [
- q(6862),
+ q(6846),
q(0),
],
q(udmurt) => [
@@ -54322,15 +54269,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uduk) => [
- q(6867),
+ q(6851),
q(0),
],
q(ufim) => [
- q(6869),
+ q(6853),
q(0),
],
q(ugandan sign language) => [
- q(6872),
+ q(6856),
q(0),
],
q(ugaritic) => [
@@ -54338,15 +54285,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ughele) => [
- q(6871),
+ q(6855),
q(0),
],
q(ugong) => [
- q(6873),
+ q(6857),
q(0),
],
q(uhami) => [
- q(6875),
+ q(6859),
q(0),
],
q(uighur) => [
@@ -54354,27 +54301,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uisai) => [
- q(6877),
+ q(6861),
q(0),
],
q(ujir) => [
- q(6865),
+ q(6849),
q(0),
],
q(ukaan) => [
- q(3214),
+ q(3211),
q(0),
],
q(ukhwejo) => [
- q(6882),
+ q(6866),
q(0),
],
q(ukit) => [
- q(6906),
+ q(6890),
q(0),
],
q(ukpe-bayobiri) => [
- q(6884),
+ q(6868),
q(0),
],
q(ukpet-ehom) => [
@@ -54386,87 +54333,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ukrainian sign language) => [
- q(6883),
+ q(6867),
q(0),
],
q(ukue) => [
- q(6887),
+ q(6871),
q(0),
],
q(ukuriguma) => [
- q(6881),
+ q(6865),
q(0),
],
q(ukwa) => [
- q(6885),
+ q(6869),
q(0),
],
q(ukwuani-aboh-ndoni) => [
- q(6888),
+ q(6872),
q(0),
],
q(ulau-suain) => [
- q(6292),
+ q(6282),
q(0),
],
q(ulch) => [
- q(6892),
+ q(6876),
q(0),
],
q(ulithian) => [
- q(6895),
+ q(6879),
q(0),
],
q(ullatan) => [
- q(6897),
+ q(6881),
q(0),
],
q(ulukwumi) => [
- q(6891),
+ q(6875),
q(0),
],
q(ulumanda') => [
- q(6898),
+ q(6882),
q(0),
],
q(ulwa) => [
- q(6901),
+ q(6885),
q(0),
],
q(uma) => [
- q(5575),
+ q(5565),
q(0),
],
q(uma' lasan) => [
- q(7392),
+ q(7374),
q(0),
],
q(uma' lung) => [
- q(6900),
+ q(6884),
q(0),
],
q(umanakaina) => [
- q(2465),
+ q(2462),
q(0),
],
q(umatilla) => [
- q(6902),
+ q(6886),
q(0),
],
q(umbindhamu) => [
- q(6904),
+ q(6888),
q(0),
],
q(umbrian) => [
- q(7536),
+ q(7518),
q(0),
],
q(umbu-ungu) => [
- q(6859),
+ q(6843),
q(0),
],
q(umbugarla) => [
- q(6911),
+ q(6895),
q(0),
],
q(umbundu) => [
@@ -54474,43 +54421,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(umbuygamu) => [
- q(6905),
+ q(6889),
q(0),
],
q(ume sami) => [
- q(6069),
+ q(6059),
q(0),
],
q(umeda) => [
- q(6924),
+ q(6908),
q(0),
],
q(umiida) => [
- q(7532),
+ q(7514),
q(0),
],
q(umiray dumaget agta) => [
- q(2173),
+ q(2167),
q(0),
],
q(umon) => [
- q(6907),
+ q(6891),
q(0),
],
q(umotina) => [
- q(6909),
+ q(6893),
q(0),
],
q(umpila) => [
- q(6910),
+ q(6894),
q(0),
],
q(una) => [
- q(4561),
+ q(4553),
q(0),
],
q(unami) => [
- q(6918),
+ q(6902),
q(0),
],
q(uncoded languages) => [
@@ -54518,7 +54465,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(unde kaili) => [
- q(6923),
+ q(6907),
q(0),
],
q(undetermined) => [
@@ -54530,59 +54477,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uneme) => [
- q(6915),
+ q(6899),
q(0),
],
q(unggaranggu) => [
- q(7537),
+ q(7519),
q(0),
],
q(unggumi) => [
- q(7348),
+ q(7332),
q(0),
],
q(ungkue) => [
- q(2542),
+ q(2538),
q(0),
],
q(unserdeutsch) => [
- q(6899),
+ q(6883),
q(0),
],
q(unua) => [
- q(5280),
+ q(5271),
q(0),
],
q(unubahe) => [
- q(6921),
+ q(6905),
q(0),
],
q(upper chehalis) => [
- q(1745),
+ q(1741),
q(0),
],
q(upper grand valley dani) => [
- q(2099),
+ q(2092),
q(0),
],
q(upper guinea crioulo) => [
- q(5568),
+ q(5559),
q(0),
],
q(upper kinabatangan) => [
- q(2087),
+ q(2080),
q(0),
],
q(upper kuskokwim) => [
- q(3661),
+ q(3655),
q(0),
],
q(upper necaxa totonac) => [
- q(6561),
+ q(6548),
q(0),
],
q(upper saxon) => [
- q(6333),
+ q(6322),
q(0),
],
q(upper sorbian) => [
@@ -54590,39 +54537,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(upper ta'oih) => [
- q(6742),
+ q(6726),
q(0),
],
q(upper tanana) => [
- q(6374),
+ q(6363),
q(0),
],
q(upper taromi) => [
- q(6651),
+ q(6635),
q(0),
],
q(upper umpqua) => [
- q(7539),
+ q(7521),
q(0),
],
q(ura (papua new guinea)) => [
- q(6938),
+ q(6922),
q(0),
],
q(ura (vanuatu)) => [
- q(6961),
+ q(6945),
q(0),
],
q(uradhi) => [
- q(6930),
+ q(6914),
q(0),
],
q(urak lawoi') => [
- q(6934),
+ q(6918),
q(0),
],
q(urali) => [
- q(6935),
+ q(6919),
q(0),
],
q(uralic languages) => [
@@ -54630,19 +54577,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(urapmin) => [
- q(6936),
+ q(6920),
q(0),
],
q(urarina) => [
- q(6926),
+ q(6910),
q(0),
],
q(urartian) => [
- q(7540),
+ q(7522),
q(0),
],
q(urat) => [
- q(6941),
+ q(6925),
q(0),
],
q(urdu) => [
@@ -54650,115 +54597,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(urhobo) => [
- q(6932),
+ q(6916),
q(0),
],
q(uri) => [
- q(6964),
+ q(6948),
q(0),
],
q(urigina) => [
- q(6931),
+ q(6915),
q(0),
],
q(urim) => [
- q(6933),
+ q(6917),
q(0),
],
q(urimo) => [
- q(6945),
+ q(6929),
q(0),
],
q(uripiv-wala-rano-atchin) => [
- q(6925),
+ q(6909),
q(0),
],
q(urningangg) => [
- q(6928),
+ q(6912),
q(0),
],
q(uru) => [
- q(6929),
+ q(6913),
q(0),
],
q(uru-eu-wau-wau) => [
- q(6947),
+ q(6931),
q(0),
],
q(uru-pa-in) => [
- q(6939),
+ q(6923),
q(0),
],
q(uruangnirin) => [
- q(6937),
+ q(6921),
q(0),
],
q(uruava) => [
- q(6943),
+ q(6927),
q(0),
],
q(urubu-kaapor) => [
- q(6927),
+ q(6911),
q(0),
],
q(urubu-kaapor sign language) => [
- q(6886),
+ q(6870),
q(0),
],
q(uruguayan sign language) => [
- q(6874),
+ q(6858),
q(0),
],
q(urum) => [
- q(6959),
+ q(6943),
q(0),
],
q(urumi) => [
- q(6942),
+ q(6926),
q(0),
],
q(usaghade) => [
- q(6951),
+ q(6935),
q(0),
],
q(usan) => [
- q(7193),
+ q(7177),
q(0),
],
q(usarufa) => [
- q(6948),
+ q(6932),
q(0),
],
q(ushojo) => [
- q(6949),
+ q(6933),
q(0),
],
q(usila chinantec) => [
- q(1905),
+ q(1899),
q(0),
],
q(usku) => [
- q(6894),
+ q(6878),
q(0),
],
q(uspanteco) => [
- q(6952),
+ q(6936),
q(0),
],
q(usui) => [
- q(6950),
+ q(6934),
q(0),
],
q(ut-ma'in) => [
- q(2482),
+ q(2479),
q(0),
],
q(utarmbung) => [
- q(5260),
+ q(5251),
q(0),
],
q(ute-southern paiute) => [
- q(6955),
+ q(6939),
q(0),
],
q(uto-aztecan languages) => [
@@ -54766,19 +54713,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(utu) => [
- q(6958),
+ q(6942),
q(0),
],
q(uvbie) => [
- q(2315),
+ q(2311),
q(0),
],
q(uya) => [
- q(6953),
+ q(6937),
q(0),
],
q(uyajitaya) => [
- q(2179),
+ q(2172),
q(0),
],
q(uyghur) => [
@@ -54794,39 +54741,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(uzekwe) => [
- q(2321),
+ q(2317),
q(0),
],
q(v'enen taut) => [
- q(4963),
+ q(4954),
q(1),
],
q(vaagri booli) => [
- q(6970),
+ q(6954),
q(0),
],
q(vaeakau-taumako) => [
- q(5468),
+ q(5461),
q(1),
],
q(vafsi) => [
- q(6972),
+ q(6956),
q(0),
],
q(vaghat-ya-bijim-legeri) => [
- q(1217),
+ q(1216),
q(0),
],
q(vaghri) => [
- q(6995),
+ q(6979),
q(0),
],
q(vaghua) => [
- q(6780),
+ q(6764),
q(0),
],
q(vagla) => [
- q(6973),
+ q(6957),
q(0),
],
q(vai) => [
@@ -54834,11 +54781,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(vaiphei) => [
- q(6980),
+ q(6964),
q(0),
],
q(vale) => [
- q(6971),
+ q(6955),
q(0),
],
q(valencian) => [
@@ -54846,91 +54793,91 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(valencian sign language) => [
- q(7050),
+ q(7034),
q(0),
],
q(valle nacional chinantec) => [
- q(1923),
+ q(1916),
q(0),
],
q(valley maidu) => [
- q(7036),
+ q(7020),
q(0),
],
q(valman) => [
- q(6978),
+ q(6962),
q(0),
],
q(valpei) => [
- q(7016),
+ q(7000),
q(0),
],
q(vamale) => [
- q(4361),
+ q(4353),
q(0),
],
q(vame) => [
- q(4383),
+ q(4375),
q(0),
],
q(vandalic) => [
- q(7545),
+ q(7527),
q(0),
],
q(vangunu) => [
- q(4472),
+ q(4464),
q(0),
],
q(vanimo) => [
- q(6977),
+ q(6961),
q(0),
],
q(vano) => [
- q(7041),
+ q(7025),
q(0),
],
q(vanuma) => [
- q(6983),
+ q(6967),
q(0),
],
q(vao) => [
- q(6979),
+ q(6963),
q(0),
],
q(varhadi-nagpuri) => [
- q(6974),
+ q(6958),
q(0),
],
q(varisi) => [
- q(7046),
+ q(7030),
q(0),
],
q(varli) => [
- q(6984),
+ q(6968),
q(0),
],
q(vasavi) => [
- q(6982),
+ q(6966),
q(0),
],
q(vasekele) => [
- q(6975),
- q(3),
+ q(6959),
+ q(2),
],
q(veddah) => [
- q(6989),
+ q(6973),
q(0),
],
q(vehes) => [
- q(6976),
+ q(6960),
q(0),
],
q(veluws) => [
- q(6990),
+ q(6974),
q(0),
],
q(vemgo-mabas) => [
- q(6991),
+ q(6975),
q(0),
],
q(venda) => [
@@ -54938,15 +54885,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(venetian) => [
- q(6988),
+ q(6972),
q(0),
],
q(venetic) => [
- q(7543),
+ q(7525),
q(0),
],
q(venezuelan sign language) => [
- q(7049),
+ q(7033),
q(0),
],
q(vengo) => [
@@ -54954,27 +54901,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(ventureno) => [
- q(6992),
+ q(6976),
q(0),
],
q(veps) => [
- q(6993),
+ q(6977),
q(0),
],
q(vera'a) => [
- q(7045),
+ q(7029),
q(0),
],
q(vestinian) => [
- q(7547),
+ q(7529),
q(0),
],
q(vidunda) => [
- q(6998),
+ q(6982),
q(0),
],
q(viemo) => [
- q(7000),
+ q(6984),
q(0),
],
q(vietnamese) => [
@@ -54982,63 +54929,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(viid) => [
- q(6151),
+ q(6141),
q(1),
],
q(vilela) => [
- q(7001),
+ q(6985),
q(0),
],
q(vili) => [
- q(6999),
+ q(6983),
q(0),
],
q(villa viciosa agta) => [
- q(2201),
+ q(2196),
q(0),
],
q(vincentian creole english) => [
- q(6293),
+ q(6283),
q(0),
],
q(vinmavis) => [
- q(7042),
+ q(7026),
q(0),
],
q(vinza) => [
- q(7002),
+ q(6986),
q(0),
],
q(virgin islands creole english) => [
- q(6997),
+ q(6981),
q(0),
],
q(vishavan) => [
- q(7003),
+ q(6987),
q(0),
],
q(viti) => [
- q(7004),
+ q(6988),
q(0),
],
q(vitou) => [
- q(7051),
+ q(7035),
q(0),
],
q(vitu) => [
- q(7141),
+ q(7125),
q(0),
],
q(vlaams) => [
- q(7017),
+ q(7001),
q(0),
],
q(vlaamse gebarentaal) => [
- q(6996),
+ q(6980),
q(0),
],
q(vlax romani) => [
- q(5827),
+ q(5816),
q(0),
],
q(volapuk) => [
@@ -55046,15 +54993,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(volscian) => [
- q(7546),
+ q(7528),
q(0),
],
q(vono) => [
- q(3216),
+ q(3213),
q(0),
],
q(voro) => [
- q(7044),
+ q(7028),
q(0),
],
q(votic) => [
@@ -55062,163 +55009,163 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(vumbu) => [
- q(7052),
+ q(7036),
q(0),
],
q(vunapu) => [
- q(7043),
+ q(7027),
q(0),
],
q(vunjo) => [
- q(7053),
+ q(7037),
q(0),
],
q(vure) => [
- q(3949),
+ q(3940),
q(1),
],
q(vures) => [
- q(4543),
+ q(4535),
q(0),
],
q(vute) => [
- q(7054),
+ q(7038),
q(0),
],
q(vwanji) => [
- q(7082),
+ q(7066),
q(0),
],
q(wa) => [
- q(7086),
+ q(7070),
q(0),
],
q(wa'ema) => [
- q(7062),
+ q(7046),
q(0),
],
q(waama) => [
- q(7259),
+ q(7244),
q(0),
],
q(waamwang) => [
- q(7176),
+ q(7160),
q(0),
],
q(waata) => [
- q(6242),
+ q(6232),
q(0),
],
q(wab) => [
- q(7057),
+ q(7041),
q(0),
],
q(wabo) => [
- q(7079),
+ q(7063),
q(0),
],
q(waboda) => [
- q(3477),
+ q(3473),
q(0),
],
q(waci gbe) => [
- q(7094),
+ q(7078),
q(0),
],
q(wadaginam) => [
- q(7096),
+ q(7080),
q(0),
],
q(waddar) => [
- q(7088),
+ q(7072),
q(0),
],
q(wadi wadi) => [
- q(7550),
+ q(7532),
q(0),
],
q(wadikali) => [
- q(7098),
+ q(7082),
q(0),
],
q(wadiyara koli) => [
- q(3731),
+ q(3724),
q(0),
],
q(wadjabangayi) => [
- q(7100),
+ q(7084),
q(0),
],
q(wadjiginy) => [
- q(7097),
+ q(7081),
q(0),
],
q(wadjigu) => [
- q(7099),
+ q(7083),
q(0),
],
q(wae rana) => [
- q(7230),
+ q(7214),
q(0),
],
q(waffa) => [
- q(7065),
+ q(7049),
q(0),
],
q(wagawaga) => [
- q(7117),
+ q(7101),
q(0),
],
q(wagaya) => [
- q(7116),
+ q(7100),
q(0),
],
q(wagdi) => [
- q(7089),
+ q(7073),
q(0),
],
q(wageman) => [
- q(7070),
+ q(7054),
q(0),
],
q(wagi) => [
- q(2324),
+ q(2320),
q(0),
],
q(wahau kayan) => [
- q(7126),
+ q(7110),
q(0),
],
q(wahau kenyah) => [
- q(7125),
+ q(7109),
q(0),
],
q(wahgi) => [
- q(7119),
+ q(7103),
q(0),
],
q(waigali) => [
- q(7084),
+ q(7068),
q(0),
],
q(waigeo) => [
- q(7120),
+ q(7104),
q(0),
],
q(wailaki) => [
- q(7157),
+ q(7141),
q(0),
],
q(wailapa) => [
- q(7161),
+ q(7145),
q(0),
],
q(waima) => [
- q(5852),
+ q(5840),
q(0),
],
q(waima'a) => [
- q(7173),
+ q(7157),
q(0),
],
q(waimaha) => [
@@ -55230,31 +55177,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(waioli) => [
- q(7156),
+ q(7140),
q(0),
],
q(waiwai) => [
- q(7074),
+ q(7058),
q(0),
],
q(waja) => [
- q(7143),
+ q(7127),
q(0),
],
q(wajarri) => [
- q(7091),
+ q(7075),
q(0),
],
q(wajuk) => [
- q(7553),
+ q(7535),
q(0),
],
q(waka) => [
- q(7073),
+ q(7057),
q(0),
],
q(wakabunga) => [
- q(7260),
+ q(7245),
q(0),
],
q(wakashan languages) => [
@@ -55262,27 +55209,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(wakawaka) => [
- q(7150),
+ q(7134),
q(0),
],
q(wakde) => [
- q(7147),
+ q(7131),
q(0),
],
q(wakhi) => [
- q(7085),
+ q(7069),
q(0),
],
q(wakona) => [
- q(7061),
+ q(7045),
q(0),
],
q(wala) => [
- q(3892),
+ q(3883),
q(0),
],
q(walak) => [
- q(7165),
+ q(7149),
q(0),
],
q(walamo) => [
@@ -55290,31 +55237,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(walangama) => [
- q(4958),
+ q(4949),
q(0),
],
q(wali (ghana)) => [
- q(7166),
+ q(7150),
q(0),
],
q(wali (sudan)) => [
- q(7158),
+ q(7142),
q(0),
],
q(waling) => [
- q(7167),
+ q(7151),
q(0),
],
q(walio) => [
- q(7152),
+ q(7136),
q(0),
],
q(walla walla) => [
- q(7056),
+ q(7040),
q(0),
],
q(wallisian) => [
- q(7162),
+ q(7146),
q(0),
],
q(walloon) => [
@@ -55322,63 +55269,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(walmajarri) => [
- q(7179),
+ q(7163),
q(0),
],
q(walser) => [
- q(7060),
+ q(7044),
q(0),
],
q(walungge) => [
- q(5243),
+ q(5234),
q(0),
],
q(wamas) => [
- q(7170),
+ q(7154),
q(0),
],
q(wambaya) => [
- q(7169),
+ q(7153),
q(0),
],
q(wambon) => [
- q(7178),
+ q(7162),
q(0),
],
q(wambule) => [
- q(7172),
+ q(7156),
q(0),
],
q(wamey) => [
- q(1825),
+ q(1821),
q(0),
],
q(wamin) => [
- q(7174),
+ q(7158),
q(0),
],
q(wampanoag) => [
- q(7066),
+ q(7050),
q(0),
],
q(wampar) => [
- q(3826),
+ q(3817),
q(0),
],
q(wampur) => [
- q(7077),
+ q(7061),
q(0),
],
q(wan) => [
- q(7067),
+ q(7051),
q(0),
],
q(wanambre) => [
- q(7182),
+ q(7166),
q(0),
],
q(wanap) => [
- q(7192),
+ q(7176),
q(0),
],
q(wanbasana) => [
@@ -55386,87 +55333,87 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(wancho naga) => [
- q(5002),
+ q(4993),
q(0),
],
q(wanda) => [
- q(7081),
+ q(7065),
q(0),
],
q(wandala) => [
- q(4233),
+ q(4224),
q(0),
],
q(wandamen) => [
- q(7059),
+ q(7043),
q(0),
],
q(wandarang) => [
- q(7184),
+ q(7168),
q(0),
],
q(wandji) => [
- q(7095),
+ q(7079),
q(0),
],
q(wane) => [
- q(2880),
+ q(2875),
q(0),
],
q(waneci) => [
- q(7185),
+ q(7169),
q(0),
],
q(wanga) => [
- q(4100),
+ q(4091),
q(0),
],
q(wangaaybuwan-ngiyambaa) => [
- q(7267),
+ q(7252),
q(0),
],
q(wanggamala) => [
- q(7189),
+ q(7173),
q(0),
],
q(wangganguru) => [
- q(7118),
+ q(7102),
q(0),
],
q(wanggom) => [
- q(7186),
+ q(7170),
q(0),
],
q(wangkayutyuru) => [
- q(7151),
+ q(7135),
q(0),
],
q(wangkumara) => [
- q(7554),
+ q(7536),
q(0),
],
q(wanman) => [
- q(7090),
+ q(7074),
q(0),
],
q(wannu) => [
- q(3148),
+ q(3145),
q(0),
],
q(wano) => [
- q(7191),
+ q(7175),
q(0),
],
q(wantoat) => [
- q(7183),
+ q(7167),
q(0),
],
q(wanukaka) => [
- q(7188),
+ q(7172),
q(0),
],
q(wanyi) => [
- q(7195),
+ q(7179),
q(0),
],
q(waorani) => [
@@ -55474,19 +55421,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(wapan) => [
- q(3153),
+ q(3150),
q(0),
],
q(wapha) => [
- q(3163),
+ q(3160),
q(0),
],
q(wapishana) => [
- q(7069),
+ q(7053),
q(0),
],
q(wappo) => [
- q(7068),
+ q(7052),
q(0),
],
q(war-jaintia) => [
@@ -55494,15 +55441,15 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(wara) => [
- q(6413),
+ q(6402),
q(0),
],
q(warao) => [
- q(7078),
+ q(7062),
q(0),
],
q(warapu) => [
- q(7213),
+ q(7197),
q(0),
],
q(waray) => [
@@ -55510,7 +55457,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(waray (australia)) => [
- q(7232),
+ q(7216),
q(0),
],
q(waray (philippines)) => [
@@ -55518,103 +55465,103 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(wardaman) => [
- q(7225),
+ q(7209),
q(0),
],
q(wardandi) => [
- q(7265),
+ q(7250),
q(0),
],
q(warduji) => [
- q(7215),
+ q(7199),
q(0),
],
q(warembori) => [
- q(7233),
+ q(7217),
q(0),
],
q(wares) => [
- q(7064),
+ q(7048),
q(0),
],
q(waris) => [
- q(7226),
+ q(7210),
q(0),
],
q(waritai) => [
- q(7080),
+ q(7064),
q(0),
],
q(wariyangga) => [
- q(7218),
+ q(7202),
q(0),
],
q(warji) => [
- q(7144),
+ q(7128),
q(0),
],
q(warkay-bipim) => [
- q(1181),
+ q(1180),
q(0),
],
q(warlmanpa) => [
- q(7220),
+ q(7204),
q(0),
],
q(warlpiri) => [
- q(7087),
+ q(7071),
q(0),
],
q(warluwara) => [
- q(7214),
+ q(7198),
q(0),
],
q(warnang) => [
- q(7222),
+ q(7206),
q(0),
],
q(waropen) => [
- q(7224),
+ q(7208),
q(0),
],
q(warrgamay) => [
- q(7122),
+ q(7106),
q(0),
],
q(warrwa) => [
- q(7262),
+ q(7247),
q(0),
],
q(waru) => [
- q(7227),
+ q(7211),
q(0),
],
q(warumungu) => [
- q(7221),
+ q(7205),
q(0),
],
q(waruna) => [
- q(7228),
+ q(7212),
q(0),
],
q(warungu) => [
- q(7216),
+ q(7200),
q(0),
],
q(warwar feni) => [
- q(2840),
+ q(2835),
q(0),
],
q(wasa) => [
- q(7237),
+ q(7222),
q(0),
],
q(wasco-wishram) => [
- q(7058),
+ q(7042),
q(0),
],
q(wasembo) => [
- q(2638),
+ q(2634),
q(0),
],
q(washo) => [
@@ -55622,107 +55569,107 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(waskia) => [
- q(7235),
+ q(7220),
q(0),
],
q(wasu) => [
- q(7238),
+ q(7223),
q(0),
],
q(watakataui) => [
- q(7243),
+ q(7228),
q(0),
],
q(watam) => [
- q(7075),
+ q(7059),
q(0),
],
q(wathawurrung) => [
- q(7241),
+ q(7226),
q(0),
],
q(watiwa) => [
- q(7240),
+ q(7225),
q(0),
],
q(watubela) => [
- q(7063),
+ q(7047),
q(0),
],
q(waube) => [
- q(3515),
+ q(3511),
q(0),
],
q(waura) => [
- q(7072),
+ q(7056),
q(0),
],
q(wauyai) => [
- q(7258),
+ q(7243),
q(0),
],
q(wawa) => [
- q(7263),
+ q(7248),
q(0),
],
q(wawonii) => [
- q(7210),
+ q(7194),
q(0),
],
q(waxianghua) => [
- q(7264),
+ q(7249),
q(0),
],
q(wayampi) => [
- q(5343),
+ q(5335),
q(0),
],
q(wayana) => [
- q(7076),
+ q(7060),
q(0),
],
q(wayanad chetti) => [
- q(1900),
+ q(1894),
q(0),
],
q(wayoro) => [
- q(7270),
+ q(7255),
q(0),
],
q(wayu) => [
- q(6985),
+ q(6969),
q(0),
],
q(wayuu) => [
- q(2644),
+ q(2640),
q(0),
],
q(we northern) => [
- q(7197),
+ q(7181),
q(0),
],
q(we southern) => [
- q(2694),
+ q(2689),
q(0),
],
q(we western) => [
- q(7102),
+ q(7086),
q(0),
],
q(wedau) => [
- q(7103),
+ q(7087),
q(0),
],
q(weh) => [
- q(7105),
+ q(7089),
q(0),
],
q(wejewa) => [
- q(7114),
+ q(7098),
q(0),
],
q(weliki) => [
- q(3436),
+ q(3432),
q(0),
],
q(welsh) => [
@@ -55730,43 +55677,43 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(welsh romani) => [
- q(5825),
+ q(5814),
q(0),
],
q(wemale) => [
- q(7108),
+ q(7092),
q(0),
],
q(wemba wemba) => [
- q(7559),
+ q(7541),
q(0),
],
q(weme gbe) => [
- q(7107),
+ q(7091),
q(0),
],
q(wergaia) => [
- q(7104),
+ q(7088),
q(0),
],
q(weri) => [
- q(7110),
+ q(7094),
q(0),
],
q(wersing) => [
- q(3689),
+ q(3682),
q(0),
],
q(west albay bikol) => [
- q(2339),
+ q(2335),
q(0),
],
q(west ambae) => [
- q(4991),
+ q(4982),
q(0),
],
q(west berawan) => [
- q(7832),
+ q(7814),
q(0),
],
q(west central banda) => [
@@ -55774,7 +55721,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(west central oromo) => [
- q(2420),
+ q(2417),
q(0),
],
q(west coast bajau) => [
@@ -55782,7 +55729,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(west damar) => [
- q(2141),
+ q(2134),
q(0),
],
q(west germanic languages) => [
@@ -55790,23 +55737,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(west goodenough) => [
- q(1982),
+ q(1975),
q(0),
],
q(west kewa) => [
- q(3279),
+ q(3276),
q(0),
],
q(west lembata) => [
- q(3985),
+ q(3976),
q(0),
],
q(west makian) => [
- q(4498),
+ q(4490),
q(0),
],
q(west masela) => [
- q(4548),
+ q(4540),
q(0),
],
q(west slavic languages) => [
@@ -55814,19 +55761,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(west tarangan) => [
- q(6821),
+ q(6805),
q(0),
],
q(west uvean) => [
- q(6963),
+ q(6947),
q(0),
],
q(west yugur) => [
- q(7601),
+ q(7583),
q(0),
],
q(west-central limba) => [
- q(3910),
+ q(3901),
q(0),
],
q(western abnaki) => [
@@ -55842,31 +55789,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(western balochi) => [
- q(1173),
+ q(1172),
q(0),
],
q(western bolivian guarani) => [
- q(2583),
+ q(2579),
q(0),
],
q(western bru) => [
- q(1442),
+ q(1441),
q(0),
],
q(western bukidnon manobo) => [
- q(4129),
+ q(4120),
q(0),
],
q(western canadian inuktitut) => [
- q(2947),
+ q(2941),
q(1),
],
q(western cham) => [
- q(1743),
+ q(1739),
q(0),
],
q(western dani) => [
- q(2111),
+ q(2104),
q(0),
],
q(western durango nahuatl) => [
@@ -55874,67 +55821,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(western fijian) => [
- q(7271),
+ q(7256),
q(0),
],
q(western frisian) => [
q(0142),
q(0),
],
- q(western gurung) => [
- q(2676),
- q(0),
- ],
q(western highland chatino) => [
- q(1898),
+ q(1892),
q(0),
],
q(western highland purepecha) => [
- q(5641),
+ q(5630),
q(0),
],
q(western huasteca nahuatl) => [
- q(4879),
+ q(4870),
q(0),
],
q(western juxtlahuaca mixtec) => [
- q(3126),
+ q(3123),
q(0),
],
q(western kanjobal) => [
- q(3488),
+ q(3484),
q(0),
],
q(western karaboro) => [
- q(3768),
+ q(3761),
q(0),
],
q(western katu) => [
- q(3650),
+ q(3644),
q(0),
],
q(western kayah) => [
- q(3762),
+ q(3755),
q(0),
],
q(western keres) => [
- q(3394),
+ q(3390),
q(0),
],
q(western krahn) => [
- q(3590),
+ q(3585),
q(0),
],
q(western lalu) => [
- q(7787),
+ q(7769),
q(0),
],
q(western lawa) => [
- q(3843),
+ q(3834),
q(0),
],
q(western magar) => [
- q(4509),
+ q(4501),
q(0),
],
q(western malayo-polynesian languages) => [
@@ -55942,27 +55885,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(western maninkakan) => [
- q(4382),
+ q(4374),
q(0),
],
q(western mari) => [
- q(4514),
+ q(4506),
q(0),
],
q(western mashan hmong) => [
- q(2797),
+ q(2792),
q(0),
],
q(western mashan miao) => [
- q(2797),
+ q(2792),
q(1),
],
q(western meohang) => [
- q(5740),
+ q(5729),
q(0),
],
q(western muria) => [
- q(4595),
+ q(4587),
q(0),
],
q(western neo-aramaic) => [
@@ -55970,11 +55913,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(western niger fulfulde) => [
- q(2385),
+ q(2382),
q(0),
],
q(western ojibwa) => [
- q(5224),
+ q(5215),
q(0),
],
q(western pahari languages) => [
@@ -55982,191 +55925,195 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(western panjabi) => [
- q(5531),
+ q(5523),
q(0),
],
q(western parbate kham) => [
- q(3389),
+ q(3385),
q(0),
],
q(western penan) => [
- q(5533),
+ q(5525),
q(0),
],
q(western sisaala) => [
- q(6240),
+ q(6230),
q(0),
],
q(western subanon) => [
- q(6279),
+ q(6269),
q(0),
],
q(western tamang) => [
- q(6434),
+ q(6423),
q(0),
],
q(western tawbuid) => [
- q(6793),
+ q(6777),
+ q(0),
+ ],
+ q(western tlacolula valley zapotec) => [
+ q(7788),
q(0),
],
q(western totonac) => [
- q(6685),
+ q(6669),
q(0),
],
q(western tunebo) => [
- q(6612),
+ q(6598),
q(0),
],
q(western xiangxi miao) => [
- q(4407),
+ q(4399),
q(0),
],
q(western xwla gbe) => [
- q(7555),
+ q(7537),
q(0),
],
q(western yiddish) => [
- q(7648),
+ q(7630),
q(0),
],
q(westphalien) => [
- q(7109),
+ q(7093),
q(0),
],
q(wetamut) => [
- q(7261),
+ q(7246),
q(0),
],
q(wewaw) => [
- q(7101),
+ q(7085),
q(0),
],
q(weyto) => [
- q(7211),
+ q(7195),
q(0),
],
q(white gelao) => [
- q(2528),
+ q(2523),
q(0),
],
q(white lachi) => [
- q(4101),
+ q(4092),
q(0),
],
q(whitesands) => [
- q(6624),
+ q(6609),
q(0),
],
q(wiarumus) => [
- q(6760),
+ q(6744),
q(0),
],
q(wichi lhamtes guisnay) => [
- q(4700),
+ q(4692),
q(0),
],
q(wichi lhamtes nocten) => [
- q(4570),
+ q(4562),
q(0),
],
q(wichi lhamtes vejoz) => [
- q(7164),
+ q(7148),
q(0),
],
q(wichita) => [
- q(7128),
+ q(7112),
q(0),
],
q(wik-epa) => [
- q(7129),
+ q(7113),
q(0),
],
q(wik-iiyanh) => [
- q(7134),
+ q(7118),
q(0),
],
q(wik-keyangan) => [
- q(7130),
+ q(7114),
q(0),
],
q(wik-me'anha) => [
- q(7132),
+ q(7116),
q(0),
],
q(wik-mungkan) => [
- q(7137),
+ q(7121),
q(0),
],
q(wik-ngathana) => [
- q(7131),
+ q(7115),
q(0),
],
q(wikalkan) => [
- q(7135),
+ q(7119),
q(0),
],
q(wikngenchera) => [
- q(7246),
+ q(7231),
q(0),
],
q(wilawila) => [
- q(7136),
+ q(7120),
q(0),
],
q(wintu) => [
- q(7194),
+ q(7178),
q(0),
],
q(winye) => [
- q(3613),
+ q(3608),
q(0),
],
q(wipi) => [
- q(2468),
+ q(2465),
q(0),
],
q(wiradhuri) => [
- q(7217),
+ q(7201),
q(0),
],
q(wirafed) => [
- q(7139),
+ q(7123),
q(0),
],
q(wirangu) => [
- q(7121),
+ q(7105),
q(0),
],
q(wiru) => [
- q(7140),
+ q(7124),
q(0),
],
q(wiyot) => [
- q(7142),
+ q(7126),
q(0),
],
q(woccon) => [
- q(7549),
+ q(7531),
q(0),
],
q(wogamusin) => [
- q(7202),
+ q(7186),
q(0),
],
q(wogeo) => [
- q(7198),
+ q(7182),
q(0),
],
q(woi) => [
- q(7092),
+ q(7076),
q(0),
],
q(woiwurrung) => [
- q(7268),
+ q(7253),
q(0),
],
q(wojenaka) => [
- q(3135),
+ q(3132),
q(0),
],
q(wolaitta) => [
@@ -56174,11 +56121,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(2),
],
q(wolane) => [
- q(7154),
+ q(7138),
q(0),
],
q(wolani) => [
- q(7199),
+ q(7183),
q(0),
],
q(wolaytta) => [
@@ -56186,11 +56133,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(1),
],
q(woleaian) => [
- q(7200),
+ q(7184),
q(0),
],
q(wolio) => [
- q(7160),
+ q(7144),
q(0),
],
q(wolof) => [
@@ -56198,167 +56145,167 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(wom (nigeria)) => [
- q(7205),
+ q(7189),
q(0),
],
q(wom (papua new guinea)) => [
- q(7177),
+ q(7161),
q(0),
],
q(womo) => [
- q(7181),
+ q(7165),
q(0),
],
q(wongo) => [
- q(7206),
+ q(7190),
q(0),
],
q(woods cree) => [
- q(1926),
+ q(1919),
q(0),
],
q(woria) => [
- q(7208),
+ q(7192),
q(0),
],
q(worimi) => [
- q(3235),
+ q(3232),
q(0),
],
q(worodougou) => [
- q(3150),
+ q(3147),
q(0),
],
q(worrorra) => [
- q(7223),
+ q(7207),
q(0),
],
q(wotapuri-katarqalai) => [
- q(7239),
+ q(7224),
q(0),
],
q(wotjobaluk) => [
- q(7558),
+ q(7540),
q(0),
],
q(wotu) => [
- q(7245),
+ q(7230),
q(0),
],
q(woun meu) => [
- q(5012),
+ q(5003),
q(0),
],
q(written oirat) => [
- q(7556),
+ q(7538),
q(0),
],
q(wu chinese) => [
- q(7255),
+ q(7240),
q(0),
],
q(wuding-luquan yi) => [
- q(7789),
+ q(7771),
q(0),
],
q(wudu) => [
- q(7248),
+ q(7233),
q(0),
],
q(wuliwuli) => [
- q(7163),
+ q(7147),
q(0),
],
q(wulna) => [
- q(7257),
+ q(7242),
q(0),
],
q(wumboko) => [
- q(1409),
+ q(1408),
q(0),
],
q(wumbvu) => [
- q(7251),
+ q(7236),
q(0),
],
q(wumeng nasu) => [
- q(7792),
+ q(7774),
q(0),
],
q(wunai bunu) => [
- q(1555),
+ q(1553),
q(0),
],
q(wunambal) => [
- q(7247),
+ q(7232),
q(0),
],
q(wunumara) => [
- q(7190),
+ q(7174),
q(0),
],
q(wurrugu) => [
- q(7253),
+ q(7238),
q(0),
],
q(wusa nasu) => [
- q(7647),
+ q(7629),
q(0),
],
q(wushi) => [
- q(1450),
+ q(1449),
q(0),
],
q(wusi) => [
- q(7234),
+ q(7219),
q(0),
],
q(wutung) => [
- q(7254),
+ q(7239),
q(0),
],
q(wutunhua) => [
- q(7249),
+ q(7234),
q(0),
],
q(wuvulu-aua) => [
- q(7256),
+ q(7241),
q(0),
],
q(wuzlam) => [
- q(6866),
+ q(6850),
q(0),
],
q(wyandot) => [
- q(7266),
+ q(7251),
q(0),
],
q(wymysorys) => [
- q(7269),
+ q(7254),
q(0),
],
q(xaasongaxango) => [
- q(3179),
+ q(3176),
q(0),
],
q(xadani zapotec) => [
- q(7826),
+ q(7808),
q(0),
],
q(xakriaba) => [
- q(7385),
+ q(7367),
q(0),
],
q(xam) => [
- q(7280),
+ q(7266),
q(1),
],
q(xamtanga) => [
- q(7281),
+ q(7267),
q(0),
],
q(xanaguia zapotec) => [
- q(7954),
+ q(7936),
q(0),
],
q(xaracuu) => [
@@ -56370,19 +56317,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(xavante) => [
- q(7289),
+ q(7275),
q(0),
],
q(xegwi) => [
- q(7330),
+ q(7314),
q(1),
],
q(xerente) => [
- q(7334),
+ q(7318),
q(0),
],
q(xeta) => [
- q(7336),
+ q(7320),
q(0),
],
q(xhosa) => [
@@ -56390,19 +56337,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(xiang chinese) => [
- q(2845),
+ q(2840),
q(0),
],
q(xibe) => [
- q(6064),
+ q(6054),
q(0),
],
q(xicotepec de juarez totonac) => [
- q(6645),
+ q(6629),
q(0),
],
q(xinca) => [
- q(7361),
+ q(7345),
q(0),
],
q(xingu asurini) => [
@@ -56410,115 +56357,111 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(xipaya) => [
- q(7366),
- q(0),
- ],
- q(xipinawa) => [
- q(7362),
+ q(7349),
q(0),
],
q(xiri) => [
- q(7359),
+ q(7343),
q(0),
],
q(xiriana) => [
- q(7363),
+ q(7346),
q(0),
],
q(xishanba lalo) => [
- q(7791),
+ q(7773),
q(0),
],
q(xokleng) => [
- q(7450),
+ q(7432),
q(0),
],
q(xoo) => [
- q(4975),
+ q(4966),
q(1),
],
q(xukuru) => [
- q(7453),
+ q(7435),
q(0),
],
q(xwela gbe) => [
- q(7551),
+ q(7533),
q(0),
],
q(yaaku) => [
- q(4596),
+ q(4588),
q(0),
],
q(yabaana) => [
- q(7608),
+ q(7590),
q(0),
],
q(yabarana) => [
- q(7590),
+ q(7572),
q(0),
],
q(yabem) => [
- q(3044),
+ q(3040),
q(0),
],
q(yaben) => [
- q(7607),
+ q(7589),
q(0),
],
q(yabong) => [
- q(7609),
+ q(7591),
q(0),
],
q(yabula yabula) => [
- q(7799),
+ q(7781),
q(0),
],
q(yace) => [
- q(2241),
+ q(2236),
q(0),
],
q(yaeyama) => [
- q(5884),
+ q(5873),
q(0),
],
q(yafi) => [
- q(7115),
+ q(7099),
q(0),
],
q(yagara) => [
- q(7795),
+ q(7777),
q(0),
],
q(yagaria) => [
- q(7638),
+ q(7620),
q(0),
],
q(yagnobi) => [
- q(7583),
+ q(7565),
q(0),
],
q(yagomi) => [
- q(7636),
+ q(7618),
q(0),
],
q(yagua) => [
- q(7578),
+ q(7560),
q(0),
],
q(yagwoia) => [
- q(7641),
+ q(7623),
q(0),
],
q(yahadian) => [
- q(4822),
+ q(4813),
q(0),
],
q(yahang) => [
- q(5785),
+ q(5774),
q(0),
],
q(yahuna) => [
- q(7716),
+ q(7698),
q(0),
],
q(yaka (central african republic)) => [
@@ -56526,31 +56469,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yaka (congo)) => [
- q(3036),
+ q(3032),
q(0),
],
q(yaka (democratic republic of congo)) => [
- q(7580),
+ q(7562),
q(0),
],
q(yakaikeke) => [
- q(7667),
+ q(7649),
q(0),
],
q(yakama) => [
- q(7585),
+ q(7567),
q(0),
],
q(yakan) => [
- q(7664),
+ q(7646),
q(0),
],
q(yakha) => [
- q(7602),
+ q(7584),
q(0),
],
q(yakoma) => [
- q(7675),
+ q(7657),
q(0),
],
q(yakut) => [
@@ -56558,115 +56501,115 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yala) => [
- q(7599),
+ q(7581),
q(0),
],
q(yalahatan) => [
- q(3049),
+ q(3045),
q(0),
],
q(yalakalore) => [
- q(7569),
+ q(7551),
q(0),
],
q(yalalag zapotec) => [
- q(7934),
+ q(7916),
q(0),
],
q(yalarnnga) => [
- q(7685),
+ q(7667),
q(0),
],
q(yale) => [
- q(4766),
+ q(4757),
q(0),
],
q(yaleba) => [
- q(7677),
+ q(7659),
q(0),
],
q(yalunka) => [
- q(7586),
+ q(7568),
q(0),
],
q(yamana) => [
- q(7581),
+ q(7563),
q(0),
],
q(yamap) => [
- q(7700),
+ q(7682),
q(0),
],
q(yamba) => [
- q(7587),
+ q(7569),
q(0),
],
q(yambes) => [
- q(7688),
+ q(7670),
q(0),
],
q(yambeta) => [
- q(7592),
+ q(7574),
q(0),
],
q(yamdena) => [
- q(3119),
+ q(3116),
q(0),
],
q(yameo) => [
- q(7691),
+ q(7673),
q(0),
],
q(yami) => [
- q(6369),
+ q(6358),
q(0),
],
q(yaminahua) => [
- q(7575),
+ q(7557),
q(0),
],
q(yamna) => [
- q(7698),
+ q(7680),
q(0),
],
q(yamongeri) => [
- q(7692),
+ q(7674),
q(0),
],
q(yamphu) => [
- q(7603),
+ q(7585),
q(0),
],
q(yan-nhangu) => [
- q(3058),
+ q(3054),
q(0),
],
q(yan-nhanu sign language) => [
- q(7645),
+ q(7627),
q(0),
],
q(yana) => [
- q(7712),
+ q(7694),
q(0),
],
q(yanahuanca pasco quechua) => [
- q(5693),
+ q(5682),
q(0),
],
q(yanda) => [
- q(7616),
+ q(7598),
q(0),
],
q(yanda dom dogon) => [
- q(2203),
+ q(2198),
q(0),
],
q(yandjibara) => [
- q(7566),
+ q(7548),
q(0),
],
q(yandruwandha) => [
- q(7707),
+ q(7689),
q(0),
],
q(yanesha') => [
@@ -56674,59 +56617,59 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yang zhuang) => [
- q(7971),
+ q(7953),
q(0),
],
q(yangben) => [
- q(7594),
+ q(7576),
q(0),
],
q(yangkam) => [
- q(1469),
+ q(1468),
q(0),
],
q(yangman) => [
- q(3129),
+ q(3126),
q(0),
],
q(yango) => [
- q(7709),
+ q(7691),
q(0),
],
q(yangulam) => [
- q(7711),
+ q(7693),
q(0),
],
q(yangum dey) => [
- q(7618),
+ q(7600),
q(0),
],
q(yangum gel) => [
- q(7635),
+ q(7617),
q(0),
],
q(yangum mon) => [
- q(7699),
+ q(7681),
q(0),
],
q(yankunytjatjara) => [
- q(3237),
+ q(3234),
q(0),
],
q(yanomami) => [
- q(7093),
+ q(7077),
q(0),
],
q(yanomamo) => [
- q(2661),
+ q(2657),
q(0),
],
q(yansi) => [
- q(7715),
+ q(7697),
q(0),
],
q(yanyuwa) => [
- q(3052),
+ q(3048),
q(0),
],
q(yao) => [
@@ -56738,7 +56681,7 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yaoure) => [
- q(7738),
+ q(7720),
q(0),
],
q(yapese) => [
@@ -56746,219 +56689,219 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yapunda) => [
- q(7631),
+ q(7613),
q(0),
],
q(yaqay) => [
- q(3053),
+ q(3049),
q(0),
],
q(yaqui) => [
- q(7589),
+ q(7571),
q(0),
],
q(yarawata) => [
- q(7745),
+ q(7727),
q(0),
],
q(yardliyawarra) => [
- q(7796),
+ q(7778),
q(0),
],
q(yareba) => [
- q(7737),
+ q(7719),
q(0),
],
q(yareni zapotec) => [
- q(7809),
+ q(7791),
q(0),
],
- q(yari) => [
- q(7739),
+ q(yarluyandi) => [
+ q(7728),
q(0),
],
- q(yarluyandi) => [
- q(7746),
+ q(yaroame) => [
+ q(7725),
q(0),
],
q(yarsun) => [
- q(7744),
+ q(7726),
q(0),
],
q(yasa) => [
- q(7671),
+ q(7653),
q(0),
],
q(yassic) => [
- q(7747),
+ q(7729),
q(0),
],
q(yatay) => [
- q(7761),
+ q(7743),
q(0),
],
q(yatee zapotec) => [
- q(7964),
+ q(7946),
q(0),
],
q(yatzachi zapotec) => [
- q(7824),
+ q(7806),
q(0),
],
q(yau (morobe province)) => [
- q(7779),
+ q(7761),
q(0),
],
q(yau (sandaun province)) => [
- q(7801),
+ q(7783),
q(0),
],
q(yaul) => [
- q(7676),
+ q(7658),
q(0),
],
q(yauma) => [
- q(7596),
+ q(7578),
q(0),
],
q(yaur) => [
- q(3056),
+ q(3052),
q(0),
],
q(yautepec zapotec) => [
- q(7915),
+ q(7897),
q(0),
],
q(yauyos quechua) => [
- q(5697),
+ q(5686),
q(0),
],
q(yavitero) => [
- q(7784),
+ q(7766),
q(0),
],
q(yawa) => [
- q(7783),
+ q(7765),
q(0),
],
q(yawalapiti) => [
- q(7595),
+ q(7577),
q(0),
],
q(yawanawa) => [
- q(7788),
+ q(7770),
q(0),
],
q(yawarawarga) => [
- q(7793),
+ q(7775),
q(0),
],
q(yaweyuha) => [
- q(7611),
+ q(7593),
q(0),
],
q(yawijibaya) => [
- q(3068),
+ q(3064),
q(0),
],
q(yawiyo) => [
- q(7610),
+ q(7592),
q(0),
],
q(yawuru) => [
- q(7790),
+ q(7772),
q(0),
],
q(yaygir) => [
- q(7565),
+ q(7547),
q(0),
],
q(yazgulyam) => [
- q(7582),
+ q(7564),
q(0),
],
q(yecuatla totonac) => [
- q(6568),
+ q(6555),
q(0),
],
q(yei) => [
- q(3078),
+ q(3074),
q(0),
],
q(yekhee) => [
- q(2309),
+ q(2305),
q(0),
],
q(yekora) => [
- q(7672),
+ q(7654),
q(0),
],
q(yela) => [
- q(7626),
+ q(7608),
q(0),
],
q(yele) => [
- q(7678),
+ q(7660),
q(0),
],
q(yelmek) => [
- q(3080),
+ q(3076),
q(0),
],
q(yelogu) => [
- q(7679),
+ q(7661),
q(0),
],
q(yemba) => [
- q(7600),
+ q(7582),
q(0),
],
q(yemsa) => [
- q(3131),
+ q(3128),
q(0),
],
q(yendang) => [
- q(7714),
+ q(7696),
q(0),
],
q(yeni) => [
- q(7624),
+ q(7606),
q(0),
],
q(yeniche) => [
- q(7622),
+ q(7604),
q(0),
],
q(yerakai) => [
- q(7736),
+ q(7718),
q(0),
],
q(yeretuar) => [
- q(2598),
+ q(2594),
q(0),
],
q(yerong) => [
- q(7743),
+ q(7724),
q(0),
],
q(yerukula) => [
- q(7630),
+ q(7612),
q(0),
],
q(yessan-mayo) => [
- q(7755),
+ q(7737),
q(0),
],
q(yetfa) => [
- q(7629),
+ q(7611),
q(0),
],
q(yevanic) => [
- q(7625),
+ q(7607),
q(0),
],
q(yeyi) => [
- q(7632),
+ q(7614),
q(0),
],
q(yiddish) => [
@@ -56966,175 +56909,171 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yidgha) => [
- q(7619),
+ q(7601),
q(0),
],
q(yidiny) => [
- q(7649),
+ q(7631),
q(0),
],
q(yil) => [
- q(7681),
+ q(7663),
q(0),
],
q(yimas) => [
- q(7623),
+ q(7605),
q(0),
],
q(yimchungru naga) => [
- q(7653),
+ q(7635),
q(0),
],
q(yinbaw karen) => [
- q(3687),
+ q(3680),
q(0),
],
q(yinchia) => [
- q(7654),
+ q(7636),
q(0),
],
q(yindjibarndi) => [
- q(7650),
+ q(7632),
q(0),
],
q(yindjilandji) => [
- q(7652),
+ q(7634),
q(0),
],
q(yine) => [
- q(5450),
+ q(5443),
q(0),
],
q(yinggarda) => [
- q(7646),
+ q(7628),
q(0),
],
q(yinhawangka) => [
- q(7786),
+ q(7768),
q(0),
],
q(yiningayi) => [
- q(7634),
+ q(7616),
q(0),
],
q(yintale) => [
- q(3691),
+ q(3684),
q(1),
],
q(yintale karen) => [
- q(3691),
+ q(3684),
q(0),
],
q(yinwum) => [
- q(7797),
+ q(7779),
q(0),
],
q(yipma) => [
- q(1606),
+ q(1604),
q(1),
],
q(yir yoront) => [
- q(7800),
+ q(7782),
q(0),
],
q(yirandali) => [
- q(3937),
+ q(3928),
q(0),
],
q(yirrk-mel) => [
- q(7742),
+ q(7723),
q(0),
],
q(yis) => [
- q(7658),
+ q(7640),
q(0),
],
q(yitha yitha) => [
- q(7513),
- q(0),
- ],
- q(yiwom) => [
- q(2481),
+ q(7495),
q(0),
],
q(yoba) => [
- q(7717),
+ q(7699),
q(0),
],
q(yocoboue dida) => [
- q(2645),
+ q(2641),
q(0),
],
q(yogad) => [
- q(7718),
+ q(7700),
q(0),
],
q(yoidik) => [
- q(7620),
+ q(7602),
q(0),
],
q(yoke) => [
- q(7666),
+ q(7648),
q(0),
],
q(yokuts) => [
- q(7720),
+ q(7702),
q(0),
],
q(yola) => [
- q(7721),
+ q(7703),
q(0),
],
q(yolnu sign language) => [
- q(7639),
+ q(7621),
q(0),
],
q(yoloxochitl mixtec) => [
- q(7528),
+ q(7510),
q(0),
],
q(yom) => [
- q(5459),
+ q(5452),
q(0),
],
q(yombe) => [
- q(7722),
+ q(7704),
q(0),
],
q(yonaguni) => [
- q(7719),
+ q(7701),
q(0),
],
q(yong) => [
- q(7713),
+ q(7695),
q(0),
],
q(yongbei zhuang) => [
- q(7970),
+ q(7952),
q(0),
],
q(yongkom) => [
- q(7723),
+ q(7705),
q(0),
],
q(yongnan zhuang) => [
- q(7973),
+ q(7955),
q(0),
],
q(yopno) => [
- q(7778),
+ q(7760),
q(0),
],
q(yora) => [
- q(4573),
+ q(4565),
q(0),
],
q(yoron) => [
- q(7725),
+ q(7707),
q(0),
],
q(yorta yorta) => [
- q(7571),
+ q(7553),
q(0),
],
q(yoruba) => [
@@ -57142,99 +57081,99 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yosondua mixtec) => [
- q(4467),
+ q(4459),
q(0),
],
q(yotti) => [
- q(7724),
+ q(7706),
q(0),
],
q(youjiang zhuang) => [
- q(7972),
+ q(7954),
q(0),
],
q(youle jinuo) => [
- q(3104),
+ q(3100),
q(0),
],
q(younuo bunu) => [
- q(1500),
+ q(1498),
q(0),
],
q(yout wam) => [
- q(7760),
+ q(7742),
q(0),
],
q(yoy) => [
- q(7726),
+ q(7708),
q(0),
],
q(yuanga) => [
- q(5104),
+ q(5095),
q(0),
],
q(yucatec maya) => [
- q(7762),
+ q(7744),
q(1),
],
q(yucatec maya sign language) => [
- q(4533),
+ q(4525),
q(0),
],
q(yucateco) => [
- q(7762),
+ q(7744),
q(0),
],
q(yuchi) => [
- q(7764),
+ q(7746),
q(0),
],
q(yucuane mixtec) => [
- q(4606),
+ q(4598),
q(0),
],
q(yucuna) => [
- q(7614),
+ q(7596),
q(0),
],
q(yue chinese) => [
- q(7766),
+ q(7748),
q(0),
],
q(yug) => [
- q(7768),
+ q(7750),
q(0),
],
q(yugambal) => [
- q(7763),
+ q(7745),
q(0),
],
q(yugoslavian sign language) => [
- q(7750),
+ q(7732),
q(0),
],
q(yugul) => [
- q(7640),
+ q(7622),
q(0),
],
q(yuhup) => [
- q(7576),
+ q(7558),
q(0),
],
q(yuki) => [
- q(7771),
+ q(7753),
q(0),
],
q(yukpa) => [
- q(7775),
+ q(7757),
q(0),
],
q(yukuben) => [
- q(7606),
+ q(7588),
q(0),
],
q(yulu) => [
- q(7772),
+ q(7754),
q(0),
],
q(yupik languages) => [
@@ -57242,59 +57181,63 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(yuqui) => [
- q(7776),
+ q(7758),
q(0),
],
q(yuracare) => [
- q(7782),
+ q(7764),
q(0),
],
q(yurats) => [
- q(5860),
+ q(5849),
q(0),
],
q(yurok) => [
- q(7777),
+ q(7759),
q(0),
],
q(yuru) => [
- q(3938),
+ q(3929),
q(0),
],
q(yuruti) => [
- q(7769),
+ q(7751),
q(0),
],
q(yutanduchi mixtec) => [
- q(4116),
+ q(4107),
q(0),
],
q(yuwana) => [
- q(7593),
+ q(7575),
q(0),
],
q(yuyu) => [
- q(7798),
+ q(7780),
+ q(0),
+ ],
+ q(ywom) => [
+ q(2478),
q(0),
],
q(zaachila zapotec) => [
- q(7963),
+ q(7945),
q(0),
],
q(zabana) => [
- q(3386),
+ q(3382),
q(0),
],
q(zacatepec chatino) => [
- q(1902),
+ q(1896),
q(0),
],
q(zacatlan-ahuacatlan-tepetzintla nahuatl) => [
- q(4868),
+ q(4859),
q(0),
],
q(zaghawa) => [
- q(7811),
+ q(7793),
q(0),
],
q(zaiwa) => [
@@ -57302,23 +57245,23 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zakhring) => [
- q(7867),
+ q(7849),
q(0),
],
q(zambian sign language) => [
- q(7949),
+ q(7931),
q(0),
],
q(zan gula) => [
- q(7902),
+ q(7884),
q(0),
],
q(zanaki) => [
- q(7815),
+ q(7797),
q(0),
],
q(zande (individual language)) => [
- q(7903),
+ q(7885),
q(0),
],
q(zande languages) => [
@@ -57326,19 +57269,19 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zangskari) => [
- q(7823),
+ q(7805),
q(0),
],
q(zangwal) => [
- q(7812),
+ q(7794),
q(0),
],
q(zaniza zapotec) => [
- q(7936),
+ q(7918),
q(0),
],
q(zaparo) => [
- q(7944),
+ q(7926),
q(0),
],
q(zapotec) => [
@@ -57346,39 +57289,39 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zaramo) => [
- q(7814),
+ q(7796),
q(0),
],
q(zari) => [
- q(7828),
+ q(7810),
q(0),
],
q(zarma) => [
- q(2062),
+ q(2055),
q(0),
],
q(zarphatic) => [
- q(7945),
+ q(7927),
q(0),
],
q(zauzou) => [
- q(7816),
+ q(7798),
q(0),
],
q(zay) => [
- q(7969),
+ q(7951),
q(0),
],
q(zayein karen) => [
- q(3726),
+ q(3719),
q(0),
],
q(zayse-zergulla) => [
- q(7827),
+ q(7809),
q(0),
],
q(zaysete) => [
- q(7827),
+ q(7809),
q(1),
],
q(zaza) => [
@@ -57390,31 +57333,31 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(5),
],
q(zazao) => [
- q(3047),
+ q(3043),
q(0),
],
q(zeem) => [
- q(7965),
+ q(7947),
q(0),
],
q(zeeuws) => [
- q(7836),
+ q(7818),
q(0),
],
q(zemba) => [
- q(2026),
+ q(2019),
q(0),
],
q(zeme naga) => [
- q(5180),
+ q(5171),
q(0),
],
q(zemgalian) => [
- q(7573),
+ q(7555),
q(0),
],
q(zenag) => [
- q(7837),
+ q(7819),
q(0),
],
q(zenaga) => [
@@ -57422,27 +57365,27 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zenzontepec chatino) => [
- q(1935),
+ q(1928),
q(0),
],
q(zerenkel) => [
- q(7943),
+ q(7925),
q(0),
],
q(zhaba) => [
- q(7844),
+ q(7826),
q(0),
],
q(zhang-zhung) => [
- q(7572),
+ q(7554),
q(0),
],
q(zhire) => [
- q(7846),
+ q(7828),
q(0),
],
q(zhoa) => [
- q(7848),
+ q(7830),
q(0),
],
q(zhuang) => [
@@ -57450,75 +57393,75 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zia) => [
- q(7849),
+ q(7831),
q(0),
],
q(zialo) => [
- q(7852),
+ q(7834),
q(0),
],
q(zigula) => [
- q(7856),
+ q(7838),
q(0),
],
q(zimakani) => [
- q(7851),
+ q(7833),
q(0),
],
q(zimba) => [
- q(7877),
+ q(7859),
q(0),
],
q(zimbabwe sign language) => [
- q(7850),
+ q(7832),
q(0),
],
q(zinza) => [
- q(7854),
+ q(7836),
q(0),
],
q(zire) => [
- q(6039),
+ q(6029),
q(0),
],
q(ziriya) => [
- q(7855),
+ q(7837),
q(0),
],
q(zizilivakan) => [
- q(7857),
+ q(7839),
q(0),
],
q(zo'e) => [
- q(5632),
+ q(5621),
q(0),
],
q(zokhuo) => [
- q(7804),
+ q(7786),
q(0),
],
q(zoogocho zapotec) => [
- q(7930),
+ q(7912),
q(0),
],
q(zoroastrian dari) => [
- q(2443),
+ q(2440),
q(0),
],
q(zorop) => [
- q(7115),
+ q(7099),
q(1),
],
q(zotung chin) => [
- q(1937),
+ q(1930),
q(0),
],
q(zou) => [
- q(7909),
+ q(7891),
q(0),
],
q(zulgo-gemzek) => [
- q(2570),
+ q(2566),
q(0),
],
q(zulu) => [
@@ -57526,11 +57469,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zumaya) => [
- q(7968),
+ q(7950),
q(0),
],
q(zumbun) => [
- q(3117),
+ q(3114),
q(0),
],
q(zuni) => [
@@ -57538,11 +57481,11 @@ $Locale::Codes::Data{'language'}{'alias2id'} = {
q(0),
],
q(zuojiang zhuang) => [
- q(7975),
+ q(7957),
q(0),
],
q(zyphe chin) => [
- q(7974),
+ q(7956),
q(0),
],
};
@@ -61059,112 +61002,108 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1171),
q(0),
],
- q(bgm) => [
- q(1172),
- q(0),
- ],
q(bgn) => [
- q(1173),
+ q(1172),
q(0),
],
q(bgo) => [
- q(1174),
+ q(1173),
q(0),
],
q(bgp) => [
- q(1175),
+ q(1174),
q(0),
],
q(bgq) => [
- q(1176),
+ q(1175),
q(0),
],
q(bgr) => [
- q(1177),
+ q(1176),
q(0),
],
q(bgs) => [
- q(1178),
+ q(1177),
q(0),
],
q(bgt) => [
- q(1179),
+ q(1178),
q(0),
],
q(bgu) => [
- q(1180),
+ q(1179),
q(0),
],
q(bgv) => [
- q(1181),
+ q(1180),
q(0),
],
q(bgw) => [
- q(1182),
+ q(1181),
q(0),
],
q(bgx) => [
- q(1183),
+ q(1182),
q(0),
],
q(bgy) => [
- q(1184),
+ q(1183),
q(0),
],
q(bgz) => [
- q(1185),
+ q(1184),
q(0),
],
q(bha) => [
- q(1186),
+ q(1185),
q(0),
],
q(bhb) => [
- q(1187),
+ q(1186),
q(0),
],
q(bhc) => [
- q(1188),
+ q(1187),
q(0),
],
q(bhd) => [
- q(1189),
+ q(1188),
q(0),
],
q(bhe) => [
- q(1190),
+ q(1189),
q(0),
],
q(bhf) => [
- q(1191),
+ q(1190),
q(0),
],
q(bhg) => [
- q(1192),
+ q(1191),
q(0),
],
q(bhh) => [
- q(1193),
+ q(1192),
q(0),
],
q(bhi) => [
- q(1194),
+ q(1193),
q(0),
],
q(bhj) => [
- q(1195),
+ q(1194),
q(0),
],
q(bhl) => [
- q(1196),
+ q(1195),
q(0),
],
q(bhm) => [
- q(1197),
+ q(1196),
q(0),
],
q(bhn) => [
- q(1198),
+ q(1197),
q(0),
],
q(bho) => [
@@ -61172,75 +61111,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bhp) => [
- q(1199),
+ q(1198),
q(0),
],
q(bhq) => [
- q(1200),
+ q(1199),
q(0),
],
q(bhr) => [
- q(1201),
+ q(1200),
q(0),
],
q(bhs) => [
- q(1202),
+ q(1201),
q(0),
],
q(bht) => [
- q(1203),
+ q(1202),
q(0),
],
q(bhu) => [
- q(1204),
+ q(1203),
q(0),
],
q(bhv) => [
- q(1205),
+ q(1204),
q(0),
],
q(bhw) => [
- q(1206),
+ q(1205),
q(0),
],
q(bhx) => [
- q(1207),
+ q(1206),
q(0),
],
q(bhy) => [
- q(1208),
+ q(1207),
q(0),
],
q(bhz) => [
- q(1209),
+ q(1208),
q(0),
],
q(bia) => [
- q(1210),
+ q(1209),
q(0),
],
q(bib) => [
- q(1211),
+ q(1210),
q(0),
],
q(bic) => [
- q(1212),
+ q(1211),
q(0),
],
q(bid) => [
- q(1213),
+ q(1212),
q(0),
],
q(bie) => [
- q(1214),
+ q(1213),
q(0),
],
q(bif) => [
- q(1215),
+ q(1214),
q(0),
],
q(big) => [
- q(1216),
+ q(1215),
q(0),
],
q(bih) => [
@@ -61248,7 +61187,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bij) => [
- q(1217),
+ q(1216),
q(0),
],
q(bik) => [
@@ -61256,11 +61195,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bil) => [
- q(1218),
+ q(1217),
q(0),
],
q(bim) => [
- q(1219),
+ q(1218),
q(0),
],
q(bin) => [
@@ -61268,19 +61207,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bio) => [
- q(1220),
+ q(1219),
q(0),
],
q(bip) => [
- q(1221),
+ q(1220),
q(0),
],
q(biq) => [
- q(1222),
+ q(1221),
q(0),
],
q(bir) => [
- q(1223),
+ q(1222),
q(0),
],
q(bis) => [
@@ -61288,223 +61227,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bit) => [
- q(1224),
+ q(1223),
q(0),
],
q(biu) => [
- q(1225),
+ q(1224),
q(0),
],
q(biv) => [
- q(1226),
+ q(1225),
q(0),
],
q(biw) => [
- q(1227),
+ q(1226),
q(0),
],
q(bix) => [
- q(1228),
+ q(1227),
q(0),
],
q(biy) => [
- q(1229),
+ q(1228),
q(0),
],
q(biz) => [
- q(1230),
+ q(1229),
q(0),
],
q(bja) => [
- q(1231),
+ q(1230),
q(0),
],
q(bjb) => [
- q(1232),
+ q(1231),
q(0),
],
q(bjc) => [
- q(1233),
+ q(1232),
q(0),
],
q(bje) => [
- q(1234),
+ q(1233),
q(0),
],
q(bjf) => [
- q(1235),
+ q(1234),
q(0),
],
q(bjg) => [
- q(1236),
+ q(1235),
q(0),
],
q(bjh) => [
- q(1237),
+ q(1236),
q(0),
],
q(bji) => [
- q(1238),
+ q(1237),
q(0),
],
q(bjj) => [
- q(1239),
+ q(1238),
q(0),
],
q(bjk) => [
- q(1240),
+ q(1239),
q(0),
],
q(bjl) => [
- q(1241),
+ q(1240),
q(0),
],
q(bjm) => [
- q(1242),
+ q(1241),
q(0),
],
q(bjn) => [
- q(1243),
+ q(1242),
q(0),
],
q(bjo) => [
- q(1244),
+ q(1243),
q(0),
],
q(bjp) => [
- q(1245),
+ q(1244),
q(0),
],
q(bjr) => [
- q(1246),
+ q(1245),
q(0),
],
q(bjs) => [
- q(1247),
+ q(1246),
q(0),
],
q(bjt) => [
- q(1248),
+ q(1247),
q(0),
],
q(bju) => [
- q(1249),
+ q(1248),
q(0),
],
q(bjv) => [
- q(1250),
+ q(1249),
q(0),
],
q(bjw) => [
- q(1251),
+ q(1250),
q(0),
],
q(bjx) => [
- q(1252),
+ q(1251),
q(0),
],
q(bjy) => [
- q(1253),
+ q(1252),
q(0),
],
q(bjz) => [
- q(1254),
+ q(1253),
q(0),
],
q(bka) => [
- q(1255),
+ q(1254),
q(0),
],
q(bkc) => [
- q(1256),
+ q(1255),
q(0),
],
q(bkd) => [
- q(1257),
+ q(1256),
q(0),
],
q(bkf) => [
- q(1258),
+ q(1257),
q(0),
],
q(bkg) => [
- q(1259),
+ q(1258),
q(0),
],
q(bkh) => [
- q(1260),
+ q(1259),
q(0),
],
q(bki) => [
- q(1261),
+ q(1260),
q(0),
],
q(bkj) => [
- q(1262),
+ q(1261),
q(0),
],
q(bkk) => [
- q(1263),
+ q(1262),
q(0),
],
q(bkl) => [
- q(1264),
+ q(1263),
q(0),
],
q(bkm) => [
- q(1265),
+ q(1264),
q(0),
],
q(bkn) => [
- q(1266),
+ q(1265),
q(0),
],
q(bko) => [
- q(1267),
+ q(1266),
q(0),
],
q(bkp) => [
- q(1268),
+ q(1267),
q(0),
],
q(bkq) => [
- q(1269),
+ q(1268),
q(0),
],
q(bkr) => [
- q(1270),
+ q(1269),
q(0),
],
q(bks) => [
- q(1271),
+ q(1270),
q(0),
],
q(bkt) => [
- q(1272),
+ q(1271),
q(0),
],
q(bku) => [
- q(1273),
+ q(1272),
q(0),
],
q(bkv) => [
- q(1274),
+ q(1273),
q(0),
],
q(bkw) => [
- q(1275),
+ q(1274),
q(0),
],
q(bkx) => [
- q(1276),
+ q(1275),
q(0),
],
q(bky) => [
- q(1277),
+ q(1276),
q(0),
],
q(bkz) => [
- q(1278),
+ q(1277),
q(0),
],
q(bla) => [
@@ -61512,271 +61451,271 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(blb) => [
- q(1279),
+ q(1278),
q(0),
],
q(blc) => [
- q(1280),
+ q(1279),
q(0),
],
q(bld) => [
- q(1281),
+ q(1280),
q(0),
],
q(ble) => [
- q(1282),
+ q(1281),
q(0),
],
q(blf) => [
- q(1283),
+ q(1282),
q(0),
],
q(blg) => [
- q(1284),
+ q(1283),
q(0),
],
q(blh) => [
- q(1285),
+ q(1284),
q(0),
],
q(bli) => [
- q(1286),
+ q(1285),
q(0),
],
q(blj) => [
- q(1287),
+ q(1286),
q(0),
],
q(blk) => [
- q(1288),
+ q(1287),
q(0),
],
q(bll) => [
- q(1289),
+ q(1288),
q(0),
],
q(blm) => [
- q(1290),
+ q(1289),
q(0),
],
q(bln) => [
- q(1291),
+ q(1290),
q(0),
],
q(blo) => [
- q(1292),
+ q(1291),
q(0),
],
q(blp) => [
- q(1293),
+ q(1292),
q(0),
],
q(blq) => [
- q(1294),
+ q(1293),
q(0),
],
q(blr) => [
- q(1295),
+ q(1294),
q(0),
],
q(bls) => [
- q(1296),
+ q(1295),
q(0),
],
q(blt) => [
- q(1297),
+ q(1296),
q(0),
],
q(blv) => [
- q(1298),
+ q(1297),
q(0),
],
q(blw) => [
- q(1299),
+ q(1298),
q(0),
],
q(blx) => [
- q(1300),
+ q(1299),
q(0),
],
q(bly) => [
- q(1301),
+ q(1300),
q(0),
],
q(blz) => [
- q(1302),
+ q(1301),
q(0),
],
q(bma) => [
- q(1303),
+ q(1302),
q(0),
],
q(bmb) => [
- q(1304),
+ q(1303),
q(0),
],
q(bmc) => [
- q(1305),
+ q(1304),
q(0),
],
q(bmd) => [
- q(1306),
+ q(1305),
q(0),
],
q(bme) => [
- q(1307),
+ q(1306),
q(0),
],
q(bmf) => [
- q(1308),
+ q(1307),
q(0),
],
q(bmg) => [
- q(1309),
+ q(1308),
q(0),
],
q(bmh) => [
- q(1310),
+ q(1309),
q(0),
],
q(bmi) => [
- q(1311),
+ q(1310),
q(0),
],
q(bmj) => [
- q(1312),
+ q(1311),
q(0),
],
q(bmk) => [
- q(1313),
+ q(1312),
q(0),
],
q(bml) => [
- q(1314),
+ q(1313),
q(0),
],
q(bmm) => [
- q(1315),
+ q(1314),
q(0),
],
q(bmn) => [
- q(1316),
+ q(1315),
q(0),
],
q(bmo) => [
- q(1317),
+ q(1316),
q(0),
],
q(bmp) => [
- q(1318),
+ q(1317),
q(0),
],
q(bmq) => [
- q(1319),
+ q(1318),
q(0),
],
q(bmr) => [
- q(1320),
+ q(1319),
q(0),
],
q(bms) => [
- q(1321),
+ q(1320),
q(0),
],
q(bmt) => [
- q(1322),
+ q(1321),
q(0),
],
q(bmu) => [
- q(1323),
+ q(1322),
q(0),
],
q(bmv) => [
- q(1324),
+ q(1323),
q(0),
],
q(bmw) => [
- q(1325),
+ q(1324),
q(0),
],
q(bmx) => [
- q(1326),
+ q(1325),
q(0),
],
q(bmz) => [
- q(1327),
+ q(1326),
q(0),
],
q(bna) => [
- q(1328),
+ q(1327),
q(0),
],
q(bnb) => [
- q(1329),
+ q(1328),
q(0),
],
q(bnc) => [
- q(1330),
+ q(1329),
q(0),
],
q(bnd) => [
- q(1331),
+ q(1330),
q(0),
],
q(bne) => [
- q(1332),
+ q(1331),
q(0),
],
q(bnf) => [
- q(1333),
+ q(1332),
q(0),
],
q(bng) => [
- q(1334),
+ q(1333),
q(0),
],
q(bni) => [
- q(1335),
+ q(1334),
q(0),
],
q(bnj) => [
- q(1336),
+ q(1335),
q(0),
],
q(bnk) => [
- q(1337),
+ q(1336),
q(0),
],
q(bnl) => [
- q(1338),
+ q(1337),
q(0),
],
q(bnm) => [
- q(1339),
+ q(1338),
q(0),
],
q(bnn) => [
- q(1340),
+ q(1339),
q(0),
],
q(bno) => [
- q(1341),
+ q(1340),
q(0),
],
q(bnp) => [
- q(1342),
+ q(1341),
q(0),
],
q(bnq) => [
- q(1343),
+ q(1342),
q(0),
],
q(bnr) => [
- q(1344),
+ q(1343),
q(0),
],
q(bns) => [
- q(1345),
+ q(1344),
q(0),
],
q(bnt) => [
@@ -61784,91 +61723,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(bnu) => [
- q(1346),
+ q(1345),
q(0),
],
q(bnv) => [
- q(1347),
+ q(1346),
q(0),
],
q(bnw) => [
- q(1348),
+ q(1347),
q(0),
],
q(bnx) => [
- q(1349),
+ q(1348),
q(0),
],
q(bny) => [
- q(1350),
+ q(1349),
q(0),
],
q(bnz) => [
- q(1351),
+ q(1350),
q(0),
],
q(boa) => [
- q(1352),
+ q(1351),
q(0),
],
q(bob) => [
- q(1353),
+ q(1352),
q(0),
],
q(boe) => [
- q(1354),
+ q(1353),
q(0),
],
q(bof) => [
- q(1355),
+ q(1354),
q(0),
],
q(bog) => [
- q(1356),
+ q(1355),
q(0),
],
q(boh) => [
- q(1357),
+ q(1356),
q(0),
],
q(boi) => [
- q(1358),
+ q(1357),
q(0),
],
q(boj) => [
- q(1359),
+ q(1358),
q(0),
],
q(bok) => [
- q(1360),
+ q(1359),
q(0),
],
q(bol) => [
- q(1361),
+ q(1360),
q(0),
],
q(bom) => [
- q(1362),
+ q(1361),
q(0),
],
q(bon) => [
- q(1363),
+ q(1362),
q(0),
],
q(boo) => [
- q(1364),
+ q(1363),
q(0),
],
q(bop) => [
- q(1365),
+ q(1364),
q(0),
],
q(boq) => [
- q(1366),
+ q(1365),
q(0),
],
q(bor) => [
- q(1367),
+ q(1366),
q(0),
],
q(bos) => [
@@ -61876,223 +61815,223 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bot) => [
- q(1368),
+ q(1367),
q(0),
],
q(bou) => [
- q(1369),
+ q(1368),
q(0),
],
q(bov) => [
- q(1370),
+ q(1369),
q(0),
],
q(bow) => [
- q(1371),
+ q(1370),
q(0),
],
q(box) => [
- q(1372),
+ q(1371),
q(0),
],
q(boy) => [
- q(1373),
+ q(1372),
q(0),
],
q(boz) => [
- q(1374),
+ q(1373),
q(0),
],
q(bpa) => [
- q(1375),
+ q(1374),
q(0),
],
q(bpb) => [
- q(1376),
+ q(1375),
q(0),
],
q(bpd) => [
- q(1377),
+ q(1376),
q(0),
],
q(bpg) => [
- q(1378),
+ q(1377),
q(0),
],
q(bph) => [
- q(1379),
+ q(1378),
q(0),
],
q(bpi) => [
- q(1380),
+ q(1379),
q(0),
],
q(bpj) => [
- q(1381),
+ q(1380),
q(0),
],
q(bpk) => [
- q(1382),
+ q(1381),
q(0),
],
q(bpl) => [
- q(1383),
+ q(1382),
q(0),
],
q(bpm) => [
- q(1384),
+ q(1383),
q(0),
],
q(bpn) => [
- q(1385),
+ q(1384),
q(0),
],
q(bpo) => [
- q(1386),
+ q(1385),
q(0),
],
q(bpp) => [
- q(1387),
+ q(1386),
q(0),
],
q(bpq) => [
- q(1388),
+ q(1387),
q(0),
],
q(bpr) => [
- q(1389),
+ q(1388),
q(0),
],
q(bps) => [
- q(1390),
+ q(1389),
q(0),
],
q(bpt) => [
- q(1391),
+ q(1390),
q(0),
],
q(bpu) => [
- q(1392),
+ q(1391),
q(0),
],
q(bpv) => [
- q(1393),
+ q(1392),
q(0),
],
q(bpw) => [
- q(1394),
+ q(1393),
q(0),
],
q(bpx) => [
- q(1395),
+ q(1394),
q(0),
],
q(bpy) => [
- q(1396),
+ q(1395),
q(0),
],
q(bpz) => [
- q(1397),
+ q(1396),
q(0),
],
q(bqa) => [
- q(1398),
+ q(1397),
q(0),
],
q(bqb) => [
- q(1399),
+ q(1398),
q(0),
],
q(bqc) => [
- q(1400),
+ q(1399),
q(0),
],
q(bqd) => [
- q(1401),
+ q(1400),
q(0),
],
q(bqf) => [
- q(1402),
+ q(1401),
q(0),
],
q(bqg) => [
- q(1403),
+ q(1402),
q(0),
],
q(bqh) => [
- q(1404),
+ q(1403),
q(0),
],
q(bqi) => [
- q(1405),
+ q(1404),
q(0),
],
q(bqj) => [
- q(1406),
+ q(1405),
q(0),
],
q(bqk) => [
- q(1407),
+ q(1406),
q(0),
],
q(bql) => [
- q(1408),
+ q(1407),
q(0),
],
q(bqm) => [
- q(1409),
+ q(1408),
q(0),
],
q(bqn) => [
- q(1410),
+ q(1409),
q(0),
],
q(bqo) => [
- q(1411),
+ q(1410),
q(0),
],
q(bqp) => [
- q(1412),
+ q(1411),
q(0),
],
q(bqq) => [
- q(1413),
+ q(1412),
q(0),
],
q(bqr) => [
- q(1414),
+ q(1413),
q(0),
],
q(bqs) => [
- q(1415),
+ q(1414),
q(0),
],
q(bqt) => [
- q(1416),
+ q(1415),
q(0),
],
q(bqu) => [
- q(1417),
+ q(1416),
q(0),
],
q(bqv) => [
- q(1418),
+ q(1417),
q(0),
],
q(bqw) => [
- q(1419),
+ q(1418),
q(0),
],
q(bqx) => [
- q(1420),
+ q(1419),
q(0),
],
q(bqy) => [
- q(1421),
+ q(1420),
q(0),
],
q(bqz) => [
- q(1422),
+ q(1421),
q(0),
],
q(bra) => [
@@ -62100,15 +62039,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(brb) => [
- q(1423),
+ q(1422),
q(0),
],
q(brc) => [
- q(1424),
+ q(1423),
q(0),
],
q(brd) => [
- q(1425),
+ q(1424),
q(0),
],
q(bre) => [
@@ -62116,283 +62055,279 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(brf) => [
- q(1426),
+ q(1425),
q(0),
],
q(brg) => [
- q(1427),
+ q(1426),
q(0),
],
q(brh) => [
- q(1428),
+ q(1427),
q(0),
],
q(bri) => [
- q(1429),
+ q(1428),
q(0),
],
q(brj) => [
- q(1430),
+ q(1429),
q(0),
],
q(brk) => [
- q(1431),
+ q(1430),
q(0),
],
q(brl) => [
- q(1432),
+ q(1431),
q(0),
],
q(brm) => [
- q(1433),
+ q(1432),
q(0),
],
q(brn) => [
- q(1434),
+ q(1433),
q(0),
],
q(bro) => [
- q(1435),
+ q(1434),
q(0),
],
q(brp) => [
- q(1436),
+ q(1435),
q(0),
],
q(brq) => [
- q(1437),
+ q(1436),
q(0),
],
q(brr) => [
- q(1438),
+ q(1437),
q(0),
],
q(brs) => [
- q(1439),
+ q(1438),
q(0),
],
q(brt) => [
- q(1440),
+ q(1439),
q(0),
],
q(bru) => [
- q(1441),
+ q(1440),
q(0),
],
q(brv) => [
- q(1442),
+ q(1441),
q(0),
],
q(brw) => [
- q(1443),
+ q(1442),
q(0),
],
q(brx) => [
- q(1444),
+ q(1443),
q(0),
],
q(bry) => [
- q(1445),
+ q(1444),
q(0),
],
q(brz) => [
- q(1446),
+ q(1445),
q(0),
],
q(bsa) => [
- q(1447),
+ q(1446),
q(0),
],
q(bsb) => [
- q(1448),
+ q(1447),
q(0),
],
q(bsc) => [
- q(1449),
+ q(1448),
q(0),
],
q(bse) => [
- q(1450),
+ q(1449),
q(0),
],
q(bsf) => [
- q(1451),
+ q(1450),
q(0),
],
q(bsg) => [
- q(1452),
+ q(1451),
q(0),
],
q(bsh) => [
- q(1453),
+ q(1452),
q(0),
],
q(bsi) => [
- q(1454),
+ q(1453),
q(0),
],
q(bsj) => [
- q(1455),
+ q(1454),
q(0),
],
q(bsk) => [
- q(1456),
+ q(1455),
q(0),
],
q(bsl) => [
- q(1457),
+ q(1456),
q(0),
],
q(bsm) => [
- q(1458),
+ q(1457),
q(0),
],
q(bsn) => [
- q(1459),
+ q(1458),
q(0),
],
q(bso) => [
- q(1460),
+ q(1459),
q(0),
],
q(bsp) => [
- q(1461),
+ q(1460),
q(0),
],
q(bsq) => [
- q(1462),
+ q(1461),
q(0),
],
q(bsr) => [
- q(1463),
+ q(1462),
q(0),
],
q(bss) => [
- q(1464),
+ q(1463),
q(0),
],
q(bst) => [
- q(1465),
+ q(1464),
q(0),
],
q(bsu) => [
- q(1466),
+ q(1465),
q(0),
],
q(bsv) => [
- q(1467),
+ q(1466),
q(0),
],
q(bsw) => [
- q(1468),
+ q(1467),
q(0),
],
q(bsx) => [
- q(1469),
+ q(1468),
q(0),
],
q(bsy) => [
- q(1470),
+ q(1469),
q(0),
],
q(bta) => [
- q(1471),
+ q(1470),
q(0),
],
q(btc) => [
- q(1472),
+ q(1471),
q(0),
],
q(btd) => [
- q(1473),
+ q(1472),
q(0),
],
q(bte) => [
- q(1474),
+ q(1473),
q(0),
],
q(btf) => [
- q(1475),
+ q(1474),
q(0),
],
q(btg) => [
- q(1476),
+ q(1475),
q(0),
],
q(bth) => [
- q(1477),
+ q(1476),
q(0),
],
q(bti) => [
- q(1478),
+ q(1477),
q(0),
],
q(btj) => [
- q(1479),
+ q(1478),
q(0),
],
q(btk) => [
q(0062),
q(0),
],
- q(btl) => [
- q(1480),
- q(0),
- ],
q(btm) => [
- q(1481),
+ q(1479),
q(0),
],
q(btn) => [
- q(1482),
+ q(1480),
q(0),
],
q(bto) => [
- q(1483),
+ q(1481),
q(0),
],
q(btp) => [
- q(1484),
+ q(1482),
q(0),
],
q(btq) => [
- q(1485),
+ q(1483),
q(0),
],
q(btr) => [
- q(1486),
+ q(1484),
q(0),
],
q(bts) => [
- q(1487),
+ q(1485),
q(0),
],
q(btt) => [
- q(1488),
+ q(1486),
q(0),
],
q(btu) => [
- q(1489),
+ q(1487),
q(0),
],
q(btv) => [
- q(1490),
+ q(1488),
q(0),
],
q(btw) => [
- q(1491),
+ q(1489),
q(0),
],
q(btx) => [
- q(1492),
+ q(1490),
q(0),
],
q(bty) => [
- q(1493),
+ q(1491),
q(0),
],
q(btz) => [
- q(1494),
+ q(1492),
q(0),
],
q(bua) => [
@@ -62400,23 +62335,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bub) => [
- q(1495),
+ q(1493),
q(0),
],
q(buc) => [
- q(1496),
+ q(1494),
q(0),
],
q(bud) => [
- q(1497),
+ q(1495),
q(0),
],
q(bue) => [
- q(1498),
+ q(1496),
q(0),
],
q(buf) => [
- q(1499),
+ q(1497),
q(0),
],
q(bug) => [
@@ -62424,19 +62359,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(buh) => [
- q(1500),
+ q(1498),
q(0),
],
q(bui) => [
- q(1501),
+ q(1499),
q(0),
],
q(buj) => [
- q(1502),
+ q(1500),
q(0),
],
q(buk) => [
- q(1503),
+ q(1501),
q(0),
],
q(bul) => [
@@ -62444,23 +62379,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bum) => [
- q(1504),
+ q(1502),
q(0),
],
q(bun) => [
- q(1505),
+ q(1503),
q(0),
],
q(buo) => [
- q(1506),
+ q(1504),
q(0),
],
q(bup) => [
- q(1507),
+ q(1505),
q(0),
],
q(buq) => [
- q(1508),
+ q(1506),
q(0),
],
q(bur) => [
@@ -62468,379 +62403,379 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(bus) => [
- q(1509),
+ q(1507),
q(0),
],
q(but) => [
- q(1510),
+ q(1508),
q(0),
],
q(buu) => [
- q(1511),
+ q(1509),
q(0),
],
q(buv) => [
- q(1512),
+ q(1510),
q(0),
],
q(buw) => [
- q(1513),
+ q(1511),
q(0),
],
q(bux) => [
- q(1514),
+ q(1512),
q(0),
],
q(buy) => [
- q(1515),
+ q(1513),
q(0),
],
q(buz) => [
- q(1516),
+ q(1514),
q(0),
],
q(bva) => [
- q(1517),
+ q(1515),
q(0),
],
q(bvb) => [
- q(1518),
+ q(1516),
q(0),
],
q(bvc) => [
- q(1519),
+ q(1517),
q(0),
],
q(bvd) => [
- q(1520),
+ q(1518),
q(0),
],
q(bve) => [
- q(1521),
+ q(1519),
q(0),
],
q(bvf) => [
- q(1522),
+ q(1520),
q(0),
],
q(bvg) => [
- q(1523),
+ q(1521),
q(0),
],
q(bvh) => [
- q(1524),
+ q(1522),
q(0),
],
q(bvi) => [
- q(1525),
+ q(1523),
q(0),
],
q(bvj) => [
- q(1526),
+ q(1524),
q(0),
],
q(bvk) => [
- q(1527),
+ q(1525),
q(0),
],
q(bvl) => [
- q(1528),
+ q(1526),
q(0),
],
q(bvm) => [
- q(1529),
+ q(1527),
q(0),
],
q(bvn) => [
- q(1530),
+ q(1528),
q(0),
],
q(bvo) => [
- q(1531),
+ q(1529),
q(0),
],
q(bvp) => [
- q(1532),
+ q(1530),
q(0),
],
q(bvq) => [
- q(1533),
+ q(1531),
q(0),
],
q(bvr) => [
- q(1534),
+ q(1532),
q(0),
],
q(bvt) => [
- q(1535),
+ q(1533),
q(0),
],
q(bvu) => [
- q(1536),
+ q(1534),
q(0),
],
q(bvv) => [
- q(1537),
+ q(1535),
q(0),
],
q(bvw) => [
- q(1538),
+ q(1536),
q(0),
],
q(bvx) => [
- q(1539),
+ q(1537),
q(0),
],
q(bvy) => [
- q(1540),
+ q(1538),
q(0),
],
q(bvz) => [
- q(1541),
+ q(1539),
q(0),
],
q(bwa) => [
- q(1542),
+ q(1540),
q(0),
],
q(bwb) => [
- q(1543),
+ q(1541),
q(0),
],
q(bwc) => [
- q(1544),
+ q(1542),
q(0),
],
q(bwd) => [
- q(1545),
+ q(1543),
q(0),
],
q(bwe) => [
- q(1546),
+ q(1544),
q(0),
],
q(bwf) => [
- q(1547),
+ q(1545),
q(0),
],
q(bwg) => [
- q(1548),
+ q(1546),
q(0),
],
q(bwh) => [
- q(1549),
+ q(1547),
q(0),
],
q(bwi) => [
- q(1550),
+ q(1548),
q(0),
],
q(bwj) => [
- q(1551),
+ q(1549),
q(0),
],
q(bwk) => [
- q(1552),
+ q(1550),
q(0),
],
q(bwl) => [
- q(1553),
+ q(1551),
q(0),
],
q(bwm) => [
- q(1554),
+ q(1552),
q(0),
],
q(bwn) => [
- q(1555),
+ q(1553),
q(0),
],
q(bwo) => [
- q(1556),
+ q(1554),
q(0),
],
q(bwp) => [
- q(1557),
+ q(1555),
q(0),
],
q(bwq) => [
- q(1558),
+ q(1556),
q(0),
],
q(bwr) => [
- q(1559),
+ q(1557),
q(0),
],
q(bws) => [
- q(1560),
+ q(1558),
q(0),
],
q(bwt) => [
- q(1561),
+ q(1559),
q(0),
],
q(bwu) => [
- q(1562),
+ q(1560),
q(0),
],
q(bww) => [
- q(1563),
+ q(1561),
q(0),
],
q(bwx) => [
- q(1564),
+ q(1562),
q(0),
],
q(bwy) => [
- q(1565),
+ q(1563),
q(0),
],
q(bwz) => [
- q(1566),
+ q(1564),
q(0),
],
q(bxa) => [
- q(1567),
+ q(1565),
q(0),
],
q(bxb) => [
- q(1568),
+ q(1566),
q(0),
],
q(bxc) => [
- q(1569),
+ q(1567),
q(0),
],
q(bxd) => [
- q(1570),
+ q(1568),
q(0),
],
q(bxe) => [
- q(1571),
+ q(1569),
q(0),
],
q(bxf) => [
- q(1572),
+ q(1570),
q(0),
],
q(bxg) => [
- q(1573),
+ q(1571),
q(0),
],
q(bxh) => [
- q(1574),
+ q(1572),
q(0),
],
q(bxi) => [
- q(1575),
+ q(1573),
q(0),
],
q(bxj) => [
- q(1576),
+ q(1574),
q(0),
],
q(bxk) => [
- q(1577),
+ q(1575),
q(0),
],
q(bxl) => [
- q(1578),
+ q(1576),
q(0),
],
q(bxm) => [
- q(1579),
+ q(1577),
q(0),
],
q(bxn) => [
- q(1580),
+ q(1578),
q(0),
],
q(bxo) => [
- q(1581),
+ q(1579),
q(0),
],
q(bxp) => [
- q(1582),
+ q(1580),
q(0),
],
q(bxq) => [
- q(1583),
+ q(1581),
q(0),
],
q(bxr) => [
- q(1584),
+ q(1582),
q(0),
],
q(bxs) => [
- q(1585),
+ q(1583),
q(0),
],
q(bxu) => [
- q(1586),
+ q(1584),
q(0),
],
q(bxv) => [
- q(1587),
+ q(1585),
q(0),
],
q(bxw) => [
- q(1588),
+ q(1586),
q(0),
],
q(bxz) => [
- q(1589),
+ q(1587),
q(0),
],
q(bya) => [
- q(1590),
+ q(1588),
q(0),
],
q(byb) => [
- q(1591),
+ q(1589),
q(0),
],
q(byc) => [
- q(1592),
+ q(1590),
q(0),
],
q(byd) => [
- q(1593),
+ q(1591),
q(0),
],
q(bye) => [
- q(1594),
+ q(1592),
q(0),
],
q(byf) => [
- q(1595),
+ q(1593),
q(0),
],
q(byg) => [
- q(1596),
+ q(1594),
q(0),
],
q(byh) => [
- q(1597),
+ q(1595),
q(0),
],
q(byi) => [
- q(1598),
+ q(1596),
q(0),
],
q(byj) => [
- q(1599),
+ q(1597),
q(0),
],
q(byk) => [
- q(1600),
+ q(1598),
q(0),
],
q(byl) => [
- q(1601),
+ q(1599),
q(0),
],
q(bym) => [
- q(1602),
+ q(1600),
q(0),
],
q(byn) => [
@@ -62848,159 +62783,159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(byo) => [
- q(1603),
+ q(1601),
q(0),
],
q(byp) => [
- q(1604),
+ q(1602),
q(0),
],
q(byq) => [
- q(1605),
+ q(1603),
q(0),
],
q(byr) => [
- q(1606),
+ q(1604),
q(0),
],
q(bys) => [
- q(1607),
+ q(1605),
q(0),
],
q(byt) => [
- q(1608),
+ q(1606),
q(0),
],
q(byv) => [
- q(1609),
+ q(1607),
q(0),
],
q(byw) => [
- q(1610),
+ q(1608),
q(0),
],
q(byx) => [
- q(1611),
+ q(1609),
q(0),
],
q(byz) => [
- q(1612),
+ q(1610),
q(0),
],
q(bza) => [
- q(1613),
+ q(1611),
q(0),
],
q(bzb) => [
- q(1614),
+ q(1612),
q(0),
],
q(bzc) => [
- q(1615),
+ q(1613),
q(0),
],
q(bzd) => [
- q(1616),
+ q(1614),
q(0),
],
q(bze) => [
- q(1617),
+ q(1615),
q(0),
],
q(bzf) => [
- q(1618),
+ q(1616),
q(0),
],
q(bzg) => [
- q(1619),
+ q(1617),
q(0),
],
q(bzh) => [
- q(1620),
+ q(1618),
q(0),
],
q(bzi) => [
- q(1621),
+ q(1619),
q(0),
],
q(bzj) => [
- q(1622),
+ q(1620),
q(0),
],
q(bzk) => [
- q(1623),
+ q(1621),
q(0),
],
q(bzl) => [
- q(1624),
+ q(1622),
q(0),
],
q(bzm) => [
- q(1625),
+ q(1623),
q(0),
],
q(bzn) => [
- q(1626),
+ q(1624),
q(0),
],
q(bzo) => [
- q(1627),
+ q(1625),
q(0),
],
q(bzp) => [
- q(1628),
+ q(1626),
q(0),
],
q(bzq) => [
- q(1629),
+ q(1627),
q(0),
],
q(bzr) => [
- q(1630),
+ q(1628),
q(0),
],
q(bzs) => [
- q(1631),
+ q(1629),
q(0),
],
q(bzt) => [
- q(1632),
+ q(1630),
q(0),
],
q(bzu) => [
- q(1633),
+ q(1631),
q(0),
],
q(bzv) => [
- q(1634),
+ q(1632),
q(0),
],
q(bzw) => [
- q(1635),
+ q(1633),
q(0),
],
q(bzx) => [
- q(1636),
+ q(1634),
q(0),
],
q(bzy) => [
- q(1637),
+ q(1635),
q(0),
],
q(bzz) => [
- q(1638),
+ q(1636),
q(0),
],
q(caa) => [
- q(1639),
+ q(1637),
q(0),
],
q(cab) => [
- q(1640),
+ q(1638),
q(0),
],
q(cac) => [
- q(1641),
+ q(1639),
q(0),
],
q(cad) => [
@@ -63008,19 +62943,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cae) => [
- q(1642),
+ q(1640),
q(0),
],
q(caf) => [
- q(1643),
+ q(1641),
q(0),
],
q(cag) => [
- q(1644),
+ q(1642),
q(0),
],
q(cah) => [
- q(1645),
+ q(1643),
q(0),
],
q(cai) => [
@@ -63028,35 +62963,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(caj) => [
- q(1646),
+ q(1644),
q(0),
],
q(cak) => [
- q(1647),
+ q(1645),
q(0),
],
q(cal) => [
- q(1648),
+ q(1646),
q(0),
],
q(cam) => [
- q(1649),
+ q(1647),
q(0),
],
q(can) => [
- q(1650),
+ q(1648),
q(0),
],
q(cao) => [
- q(1651),
+ q(1649),
q(0),
],
q(cap) => [
- q(1652),
+ q(1650),
q(0),
],
q(caq) => [
- q(1653),
+ q(1651),
q(0),
],
q(car) => [
@@ -63064,7 +62999,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cas) => [
- q(1654),
+ q(1652),
q(0),
],
q(cat) => [
@@ -63076,23 +63011,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cav) => [
- q(1655),
+ q(1653),
q(0),
],
q(caw) => [
- q(1656),
+ q(1654),
q(0),
],
q(cax) => [
- q(1657),
+ q(1655),
q(0),
],
q(cay) => [
- q(1658),
+ q(1656),
q(0),
],
q(caz) => [
- q(1659),
+ q(1657),
q(0),
],
q(cba) => [
@@ -63100,119 +63035,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cbb) => [
- q(1660),
+ q(1658),
q(0),
],
q(cbc) => [
- q(1661),
+ q(1659),
q(0),
],
q(cbd) => [
- q(1662),
- q(0),
- ],
- q(cbe) => [
- q(1663),
+ q(1660),
q(0),
],
q(cbg) => [
- q(1664),
- q(0),
- ],
- q(cbh) => [
- q(1665),
+ q(1661),
q(0),
],
q(cbi) => [
- q(1666),
+ q(1662),
q(0),
],
q(cbj) => [
- q(1667),
+ q(1663),
q(0),
],
q(cbk) => [
- q(1668),
+ q(1664),
q(0),
],
q(cbl) => [
- q(1669),
+ q(1665),
q(0),
],
q(cbn) => [
- q(1670),
+ q(1666),
q(0),
],
q(cbo) => [
- q(1671),
+ q(1667),
q(0),
],
q(cbq) => [
- q(1672),
+ q(1668),
q(0),
],
q(cbr) => [
- q(1673),
+ q(1669),
q(0),
],
q(cbs) => [
- q(1674),
+ q(1670),
q(0),
],
q(cbt) => [
- q(1675),
+ q(1671),
q(0),
],
q(cbu) => [
- q(1676),
+ q(1672),
q(0),
],
q(cbv) => [
- q(1677),
+ q(1673),
q(0),
],
q(cbw) => [
- q(1678),
+ q(1674),
q(0),
],
q(cby) => [
- q(1679),
+ q(1675),
q(0),
],
q(cca) => [
- q(1680),
+ q(1676),
q(0),
],
q(ccc) => [
- q(1681),
+ q(1677),
q(0),
],
q(ccd) => [
- q(1682),
+ q(1678),
q(0),
],
q(cce) => [
- q(1683),
+ q(1679),
q(0),
],
q(ccg) => [
- q(1684),
+ q(1680),
q(0),
],
q(cch) => [
- q(1685),
+ q(1681),
q(0),
],
q(ccj) => [
- q(1686),
+ q(1682),
q(0),
],
q(ccl) => [
- q(1687),
+ q(1683),
q(0),
],
q(ccm) => [
- q(1688),
+ q(1684),
q(0),
],
q(ccn) => [
@@ -63220,15 +63147,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cco) => [
- q(1689),
+ q(1685),
q(0),
],
q(ccp) => [
- q(1690),
+ q(1686),
q(0),
],
q(ccr) => [
- q(1691),
+ q(1687),
q(0),
],
q(ccs) => [
@@ -63236,7 +63163,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cda) => [
- q(1692),
+ q(1688),
q(0),
],
q(cdc) => [
@@ -63248,59 +63175,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cde) => [
- q(1693),
+ q(1689),
q(0),
],
q(cdf) => [
- q(1694),
+ q(1690),
q(0),
],
q(cdg) => [
- q(1695),
+ q(1691),
q(0),
],
q(cdh) => [
- q(1696),
+ q(1692),
q(0),
],
q(cdi) => [
- q(1697),
+ q(1693),
q(0),
],
q(cdj) => [
- q(1698),
+ q(1694),
q(0),
],
q(cdm) => [
- q(1699),
+ q(1695),
q(0),
],
q(cdn) => [
- q(1700),
+ q(1696),
q(0),
],
q(cdo) => [
- q(1701),
+ q(1697),
q(0),
],
q(cdr) => [
- q(1702),
+ q(1698),
q(0),
],
q(cds) => [
- q(1703),
+ q(1699),
q(0),
],
q(cdy) => [
- q(1704),
+ q(1700),
q(0),
],
q(cdz) => [
- q(1705),
+ q(1701),
q(0),
],
q(cea) => [
- q(1706),
+ q(1702),
q(0),
],
q(ceb) => [
@@ -63308,11 +63235,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ceg) => [
- q(1707),
+ q(1703),
q(0),
],
q(cek) => [
- q(1708),
+ q(1704),
q(0),
],
q(cel) => [
@@ -63320,43 +63247,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cen) => [
- q(1709),
+ q(1705),
q(0),
],
q(cet) => [
- q(1710),
+ q(1706),
q(0),
],
q(cfa) => [
- q(1711),
+ q(1707),
q(0),
],
q(cfd) => [
- q(1712),
+ q(1708),
q(0),
],
q(cfg) => [
- q(1713),
+ q(1709),
q(0),
],
q(cfm) => [
- q(1714),
+ q(1710),
q(0),
],
q(cga) => [
- q(1715),
+ q(1711),
q(0),
],
q(cgc) => [
- q(1716),
+ q(1712),
q(0),
],
q(cgg) => [
- q(1717),
+ q(1713),
q(0),
],
q(cgk) => [
- q(1718),
+ q(1714),
q(0),
],
q(cha) => [
@@ -63368,11 +63295,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chc) => [
- q(1719),
+ q(1715),
q(0),
],
q(chd) => [
- q(1720),
+ q(1716),
q(0),
],
q(che) => [
@@ -63380,7 +63307,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chf) => [
- q(1721),
+ q(1717),
q(0),
],
q(chg) => [
@@ -63388,7 +63315,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chh) => [
- q(1722),
+ q(1718),
q(0),
],
q(chi) => [
@@ -63396,7 +63323,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chj) => [
- q(1723),
+ q(1719),
q(0),
],
q(chk) => [
@@ -63404,7 +63331,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chl) => [
- q(1724),
+ q(1720),
q(0),
],
q(chm) => [
@@ -63424,7 +63351,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chq) => [
- q(1725),
+ q(1721),
q(0),
],
q(chr) => [
@@ -63432,7 +63359,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cht) => [
- q(1726),
+ q(1722),
q(0),
],
q(chu) => [
@@ -63444,11 +63371,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chw) => [
- q(1727),
+ q(1723),
q(0),
],
q(chx) => [
- q(1728),
+ q(1724),
q(0),
],
q(chy) => [
@@ -63456,227 +63383,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(chz) => [
- q(1729),
+ q(1725),
q(0),
],
q(cia) => [
- q(1730),
+ q(1726),
q(0),
],
q(cib) => [
- q(1731),
+ q(1727),
q(0),
],
q(cic) => [
- q(1732),
+ q(1728),
q(0),
],
q(cid) => [
- q(1733),
+ q(1729),
q(0),
],
q(cie) => [
- q(1734),
+ q(1730),
q(0),
],
q(cih) => [
- q(1735),
+ q(1731),
q(0),
],
q(cik) => [
- q(1736),
+ q(1732),
q(0),
],
q(cim) => [
- q(1737),
+ q(1733),
q(0),
],
q(cin) => [
- q(1738),
+ q(1734),
q(0),
],
q(cip) => [
- q(1739),
+ q(1735),
q(0),
],
q(cir) => [
- q(1740),
+ q(1736),
q(0),
],
q(ciw) => [
- q(1741),
+ q(1737),
q(0),
],
q(ciy) => [
- q(1742),
+ q(1738),
q(0),
],
q(cja) => [
- q(1743),
+ q(1739),
q(0),
],
q(cje) => [
- q(1744),
+ q(1740),
q(0),
],
q(cjh) => [
- q(1745),
+ q(1741),
q(0),
],
q(cji) => [
- q(1746),
+ q(1742),
q(0),
],
q(cjk) => [
- q(1747),
+ q(1743),
q(0),
],
q(cjm) => [
- q(1748),
+ q(1744),
q(0),
],
q(cjn) => [
- q(1749),
+ q(1745),
q(0),
],
q(cjo) => [
- q(1750),
+ q(1746),
q(0),
],
q(cjp) => [
- q(1751),
+ q(1747),
q(0),
],
q(cjs) => [
- q(1752),
+ q(1748),
q(0),
],
q(cjv) => [
- q(1753),
+ q(1749),
q(0),
],
q(cjy) => [
- q(1754),
+ q(1750),
q(0),
],
q(ckb) => [
- q(1755),
+ q(1751),
q(0),
],
q(ckh) => [
- q(1756),
+ q(1752),
q(0),
],
q(ckl) => [
- q(1757),
+ q(1753),
q(0),
],
q(ckn) => [
- q(1758),
+ q(1754),
q(0),
],
q(cko) => [
- q(1759),
+ q(1755),
q(0),
],
q(ckq) => [
- q(1760),
+ q(1756),
q(0),
],
q(ckr) => [
- q(1761),
+ q(1757),
q(0),
],
q(cks) => [
- q(1762),
+ q(1758),
q(0),
],
q(ckt) => [
- q(1763),
+ q(1759),
q(0),
],
q(cku) => [
- q(1764),
+ q(1760),
q(0),
],
q(ckv) => [
- q(1765),
+ q(1761),
q(0),
],
q(ckx) => [
- q(1766),
+ q(1762),
q(0),
],
q(cky) => [
- q(1767),
+ q(1763),
q(0),
],
q(ckz) => [
- q(1768),
+ q(1764),
q(0),
],
q(cla) => [
- q(1769),
+ q(1765),
q(0),
],
q(clc) => [
- q(1770),
+ q(1766),
q(0),
],
q(cld) => [
- q(1771),
+ q(1767),
q(0),
],
q(cle) => [
- q(1772),
+ q(1768),
q(0),
],
q(clh) => [
- q(1773),
+ q(1769),
q(0),
],
q(cli) => [
- q(1774),
+ q(1770),
q(0),
],
q(clj) => [
- q(1775),
+ q(1771),
q(0),
],
q(clk) => [
- q(1776),
+ q(1772),
q(0),
],
q(cll) => [
- q(1777),
+ q(1773),
q(0),
],
q(clm) => [
- q(1778),
+ q(1774),
q(0),
],
q(clo) => [
- q(1779),
+ q(1775),
q(0),
],
q(clt) => [
- q(1780),
+ q(1776),
q(0),
],
q(clu) => [
- q(1781),
+ q(1777),
q(0),
],
q(clw) => [
- q(1782),
+ q(1778),
q(0),
],
q(cly) => [
- q(1783),
+ q(1779),
q(0),
],
q(cma) => [
- q(1784),
+ q(1780),
q(0),
],
q(cmc) => [
@@ -63684,155 +63611,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cme) => [
- q(1785),
+ q(1781),
q(0),
],
q(cmg) => [
- q(1786),
+ q(1782),
q(0),
],
q(cmi) => [
- q(1787),
+ q(1783),
q(0),
],
q(cml) => [
- q(1788),
+ q(1784),
q(0),
],
q(cmm) => [
- q(1789),
+ q(1785),
q(0),
],
q(cmn) => [
- q(1790),
+ q(1786),
q(0),
],
q(cmo) => [
- q(1791),
+ q(1787),
q(0),
],
q(cmr) => [
- q(1792),
+ q(1788),
q(0),
],
q(cms) => [
- q(1793),
+ q(1789),
q(0),
],
q(cmt) => [
- q(1794),
+ q(1790),
q(0),
],
q(cna) => [
- q(1795),
+ q(1791),
q(0),
],
q(cnb) => [
- q(1796),
+ q(1792),
q(0),
],
q(cnc) => [
- q(1797),
+ q(1793),
q(0),
],
q(cng) => [
- q(1798),
+ q(1794),
q(0),
],
q(cnh) => [
- q(1799),
+ q(1795),
q(0),
],
q(cni) => [
- q(1800),
+ q(1796),
q(0),
],
q(cnk) => [
- q(1801),
+ q(1797),
q(0),
],
q(cnl) => [
- q(1802),
+ q(1798),
q(0),
],
q(cno) => [
- q(1803),
+ q(1799),
q(0),
],
q(cns) => [
- q(1804),
+ q(1800),
q(0),
],
q(cnt) => [
- q(1805),
+ q(1801),
q(0),
],
q(cnu) => [
- q(1806),
+ q(1802),
q(0),
],
q(cnw) => [
- q(1807),
+ q(1803),
q(0),
],
q(cnx) => [
- q(1808),
+ q(1804),
q(0),
],
q(coa) => [
- q(1809),
+ q(1805),
q(0),
],
q(cob) => [
- q(1810),
+ q(1806),
q(0),
],
q(coc) => [
- q(1811),
+ q(1807),
q(0),
],
q(cod) => [
- q(1812),
+ q(1808),
q(0),
],
q(coe) => [
- q(1813),
+ q(1809),
q(0),
],
q(cof) => [
- q(1814),
+ q(1810),
q(0),
],
q(cog) => [
- q(1815),
+ q(1811),
q(0),
],
q(coh) => [
- q(1816),
+ q(1812),
q(0),
],
q(coj) => [
- q(1817),
+ q(1813),
q(0),
],
q(cok) => [
- q(1818),
+ q(1814),
q(0),
],
q(col) => [
- q(1819),
+ q(1815),
q(0),
],
q(com) => [
- q(1820),
+ q(1816),
q(0),
],
q(con) => [
- q(1821),
+ q(1817),
q(0),
],
q(coo) => [
- q(1822),
+ q(1818),
q(0),
],
q(cop) => [
@@ -63840,7 +63767,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(coq) => [
- q(1823),
+ q(1819),
q(0),
],
q(cor) => [
@@ -63852,43 +63779,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cot) => [
- q(1824),
+ q(1820),
q(0),
],
q(cou) => [
- q(1825),
+ q(1821),
q(0),
],
q(cov) => [
- q(1826),
+ q(1822),
q(0),
],
q(cow) => [
- q(1827),
+ q(1823),
q(0),
],
q(cox) => [
- q(1828),
- q(0),
- ],
- q(coy) => [
- q(1829),
+ q(1824),
q(0),
],
q(coz) => [
- q(1830),
+ q(1825),
q(0),
],
q(cpa) => [
- q(1831),
+ q(1826),
q(0),
],
q(cpb) => [
- q(1832),
+ q(1827),
q(0),
],
q(cpc) => [
- q(1833),
+ q(1828),
q(0),
],
q(cpe) => [
@@ -63900,19 +63823,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(2),
],
q(cpg) => [
- q(1834),
+ q(1829),
q(0),
],
q(cpi) => [
- q(1835),
+ q(1830),
q(0),
],
q(cpn) => [
- q(1836),
+ q(1831),
q(0),
],
q(cpo) => [
- q(1837),
+ q(1832),
q(0),
],
q(cpp) => [
@@ -63920,43 +63843,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(2),
],
q(cps) => [
- q(1838),
+ q(1833),
q(0),
],
q(cpu) => [
- q(1839),
+ q(1834),
q(0),
],
q(cpx) => [
- q(1840),
+ q(1835),
q(0),
],
q(cpy) => [
- q(1841),
+ q(1836),
q(0),
],
q(cqd) => [
- q(1842),
- q(0),
- ],
- q(cqu) => [
- q(1843),
+ q(1837),
q(0),
],
q(cra) => [
- q(1844),
+ q(1838),
q(0),
],
q(crb) => [
- q(1845),
+ q(1839),
q(0),
],
q(crc) => [
- q(1846),
+ q(1840),
q(0),
],
q(crd) => [
- q(1847),
+ q(1841),
q(0),
],
q(cre) => [
@@ -63964,11 +63883,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(crf) => [
- q(1848),
+ q(1842),
q(0),
],
q(crg) => [
- q(1849),
+ q(1843),
q(0),
],
q(crh) => [
@@ -63976,31 +63895,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cri) => [
- q(1850),
+ q(1844),
q(0),
],
q(crj) => [
- q(1851),
+ q(1845),
q(0),
],
q(crk) => [
- q(1852),
+ q(1846),
q(0),
],
q(crl) => [
- q(1853),
+ q(1847),
q(0),
],
q(crm) => [
- q(1854),
+ q(1848),
q(0),
],
q(crn) => [
- q(1855),
+ q(1849),
q(0),
],
q(cro) => [
- q(1856),
+ q(1850),
q(0),
],
q(crp) => [
@@ -64008,43 +63927,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(crq) => [
- q(1857),
+ q(1851),
q(0),
],
q(crr) => [
- q(1858),
+ q(1852),
q(0),
],
q(crs) => [
- q(1859),
+ q(1853),
q(0),
],
q(crt) => [
- q(1860),
+ q(1854),
q(0),
],
q(crv) => [
- q(1861),
+ q(1855),
q(0),
],
q(crw) => [
- q(1862),
+ q(1856),
q(0),
],
q(crx) => [
- q(1863),
+ q(1857),
q(0),
],
q(cry) => [
- q(1864),
+ q(1858),
q(0),
],
q(crz) => [
- q(1865),
+ q(1859),
q(0),
],
q(csa) => [
- q(1866),
+ q(1860),
q(0),
],
q(csb) => [
@@ -64052,71 +63971,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(csc) => [
- q(1867),
+ q(1861),
q(0),
],
q(csd) => [
- q(1868),
+ q(1862),
q(0),
],
q(cse) => [
- q(1869),
+ q(1863),
q(0),
],
q(csf) => [
- q(1870),
+ q(1864),
q(0),
],
q(csg) => [
- q(1871),
+ q(1865),
q(0),
],
q(csh) => [
- q(1872),
+ q(1866),
q(0),
],
q(csi) => [
- q(1873),
+ q(1867),
q(0),
],
q(csj) => [
- q(1874),
+ q(1868),
q(0),
],
q(csk) => [
- q(1875),
+ q(1869),
q(0),
],
q(csl) => [
- q(1876),
+ q(1870),
q(0),
],
q(csm) => [
- q(1877),
+ q(1871),
q(0),
],
q(csn) => [
- q(1878),
+ q(1872),
q(0),
],
q(cso) => [
- q(1879),
+ q(1873),
q(0),
],
q(csq) => [
- q(1880),
+ q(1874),
q(0),
],
q(csr) => [
- q(1881),
+ q(1875),
q(0),
],
q(css) => [
- q(1882),
+ q(1876),
q(0),
],
q(cst) => [
- q(1883),
+ q(1877),
q(0),
],
q(csu) => [
@@ -64124,135 +64043,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(csv) => [
- q(1884),
+ q(1878),
q(0),
],
q(csw) => [
- q(1885),
+ q(1879),
q(0),
],
q(csy) => [
- q(1886),
+ q(1880),
q(0),
],
q(csz) => [
- q(1887),
+ q(1881),
q(0),
],
q(cta) => [
- q(1888),
+ q(1882),
q(0),
],
q(ctc) => [
- q(1889),
+ q(1883),
q(0),
],
q(ctd) => [
- q(1890),
+ q(1884),
q(0),
],
q(cte) => [
- q(1891),
+ q(1885),
q(0),
],
q(ctg) => [
- q(1892),
+ q(1886),
q(0),
],
q(cth) => [
- q(1893),
+ q(1887),
q(0),
],
q(ctl) => [
- q(1894),
+ q(1888),
q(0),
],
q(ctm) => [
- q(1895),
+ q(1889),
q(0),
],
q(ctn) => [
- q(1896),
+ q(1890),
q(0),
],
q(cto) => [
- q(1897),
+ q(1891),
q(0),
],
q(ctp) => [
- q(1898),
+ q(1892),
q(0),
],
q(cts) => [
- q(1899),
+ q(1893),
q(0),
],
q(ctt) => [
- q(1900),
+ q(1894),
q(0),
],
q(ctu) => [
- q(1901),
+ q(1895),
q(0),
],
q(ctz) => [
- q(1902),
+ q(1896),
q(0),
],
q(cua) => [
- q(1903),
+ q(1897),
q(0),
],
q(cub) => [
- q(1904),
+ q(1898),
q(0),
],
q(cuc) => [
- q(1905),
+ q(1899),
q(0),
],
q(cug) => [
- q(1906),
+ q(1900),
q(0),
],
q(cuh) => [
- q(1907),
+ q(1901),
q(0),
],
q(cui) => [
- q(1908),
+ q(1902),
q(0),
],
q(cuj) => [
- q(1909),
+ q(1903),
q(0),
],
q(cuk) => [
- q(1910),
+ q(1904),
q(0),
],
q(cul) => [
- q(1911),
- q(0),
- ],
- q(cum) => [
- q(1912),
+ q(1905),
q(0),
],
q(cuo) => [
- q(1913),
+ q(1906),
q(0),
],
q(cup) => [
- q(1914),
+ q(1907),
q(0),
],
q(cuq) => [
- q(1915),
+ q(1908),
q(0),
],
q(cur) => [
- q(1916),
+ q(1909),
q(0),
],
q(cus) => [
@@ -64260,67 +64175,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(cut) => [
- q(1917),
+ q(1910),
q(0),
],
q(cuu) => [
- q(1918),
+ q(1911),
q(0),
],
q(cuv) => [
- q(1919),
+ q(1912),
q(0),
],
q(cuw) => [
- q(1920),
+ q(1913),
q(0),
],
q(cux) => [
- q(1921),
+ q(1914),
q(0),
],
q(cvg) => [
- q(1922),
+ q(1915),
q(0),
],
q(cvn) => [
- q(1923),
+ q(1916),
q(0),
],
q(cwa) => [
- q(1924),
+ q(1917),
q(0),
],
q(cwb) => [
- q(1925),
+ q(1918),
q(0),
],
q(cwd) => [
- q(1926),
+ q(1919),
q(0),
],
q(cwe) => [
- q(1927),
+ q(1920),
q(0),
],
q(cwg) => [
- q(1928),
+ q(1921),
q(0),
],
q(cwt) => [
- q(1929),
+ q(1922),
q(0),
],
q(cya) => [
- q(1930),
+ q(1923),
q(0),
],
q(cyb) => [
- q(1931),
+ q(1924),
q(0),
],
q(cyo) => [
- q(1932),
+ q(1925),
q(0),
],
q(cze) => [
@@ -64328,55 +64243,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(czh) => [
- q(1933),
+ q(1926),
q(0),
],
q(czk) => [
- q(1934),
+ q(1927),
q(0),
],
q(czn) => [
- q(1935),
+ q(1928),
q(0),
],
q(czo) => [
- q(1936),
+ q(1929),
q(0),
],
q(czt) => [
- q(1937),
+ q(1930),
q(0),
],
q(daa) => [
- q(1938),
+ q(1931),
q(0),
],
q(dac) => [
- q(1939),
+ q(1932),
q(0),
],
q(dad) => [
- q(1940),
+ q(1933),
q(0),
],
q(dae) => [
- q(1941),
+ q(1934),
q(0),
],
q(dag) => [
- q(1942),
+ q(1935),
q(0),
],
q(dah) => [
- q(1943),
+ q(1936),
q(0),
],
q(dai) => [
- q(1944),
+ q(1937),
q(0),
],
q(daj) => [
- q(1945),
+ q(1938),
q(0),
],
q(dak) => [
@@ -64384,11 +64299,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dal) => [
- q(1946),
+ q(1939),
q(0),
],
q(dam) => [
- q(1947),
+ q(1940),
q(0),
],
q(dan) => [
@@ -64396,11 +64311,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dao) => [
- q(1948),
+ q(1941),
q(0),
],
q(daq) => [
- q(1949),
+ q(1942),
q(0),
],
q(dar) => [
@@ -64408,23 +64323,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(das) => [
- q(1950),
+ q(1943),
q(0),
],
q(dau) => [
- q(1951),
+ q(1944),
q(0),
],
q(dav) => [
- q(1952),
+ q(1945),
q(0),
],
q(daw) => [
- q(1953),
+ q(1946),
q(0),
],
q(dax) => [
- q(1954),
+ q(1947),
q(0),
],
q(day) => [
@@ -64432,171 +64347,171 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(daz) => [
- q(1955),
+ q(1948),
q(0),
],
q(dba) => [
- q(1956),
+ q(1949),
q(0),
],
q(dbb) => [
- q(1957),
+ q(1950),
q(0),
],
q(dbd) => [
- q(1958),
+ q(1951),
q(0),
],
q(dbe) => [
- q(1959),
+ q(1952),
q(0),
],
q(dbf) => [
- q(1960),
+ q(1953),
q(0),
],
q(dbg) => [
- q(1961),
+ q(1954),
q(0),
],
q(dbi) => [
- q(1962),
+ q(1955),
q(0),
],
q(dbj) => [
- q(1963),
+ q(1956),
q(0),
],
q(dbl) => [
- q(1964),
+ q(1957),
q(0),
],
q(dbm) => [
- q(1965),
+ q(1958),
q(0),
],
q(dbn) => [
- q(1966),
+ q(1959),
q(0),
],
q(dbo) => [
- q(1967),
+ q(1960),
q(0),
],
q(dbp) => [
- q(1968),
+ q(1961),
q(0),
],
q(dbq) => [
- q(1969),
+ q(1962),
q(0),
],
q(dbr) => [
- q(1970),
+ q(1963),
q(0),
],
q(dbt) => [
- q(1971),
+ q(1964),
q(0),
],
q(dbu) => [
- q(1972),
+ q(1965),
q(0),
],
q(dbv) => [
- q(1973),
+ q(1966),
q(0),
],
q(dbw) => [
- q(1974),
+ q(1967),
q(0),
],
q(dby) => [
- q(1975),
+ q(1968),
q(0),
],
q(dcc) => [
- q(1976),
+ q(1969),
q(0),
],
q(dcr) => [
- q(1977),
+ q(1970),
q(0),
],
q(dda) => [
- q(1978),
+ q(1971),
q(0),
],
q(ddd) => [
- q(1979),
+ q(1972),
q(0),
],
q(dde) => [
- q(1980),
+ q(1973),
q(0),
],
q(ddg) => [
- q(1981),
+ q(1974),
q(0),
],
q(ddi) => [
- q(1982),
+ q(1975),
q(0),
],
q(ddj) => [
- q(1983),
+ q(1976),
q(0),
],
q(ddn) => [
- q(1984),
+ q(1977),
q(0),
],
q(ddo) => [
- q(1985),
+ q(1978),
q(0),
],
q(ddr) => [
- q(1986),
+ q(1979),
q(0),
],
q(dds) => [
- q(1987),
+ q(1980),
q(0),
],
q(ddw) => [
- q(1988),
+ q(1981),
q(0),
],
q(dec) => [
- q(1989),
+ q(1982),
q(0),
],
q(ded) => [
- q(1990),
+ q(1983),
q(0),
],
q(dee) => [
- q(1991),
+ q(1984),
q(0),
],
q(def) => [
- q(1992),
+ q(1985),
q(0),
],
q(deg) => [
- q(1993),
+ q(1986),
q(0),
],
q(deh) => [
- q(1994),
+ q(1987),
q(0),
],
q(dei) => [
- q(1995),
+ q(1988),
q(0),
],
q(dek) => [
- q(1996),
+ q(1989),
q(0),
],
q(del) => [
@@ -64604,7 +64519,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dem) => [
- q(1997),
+ q(1990),
q(0),
],
q(den) => [
@@ -64612,75 +64527,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dep) => [
- q(1998),
+ q(1991),
q(0),
],
q(deq) => [
- q(1999),
+ q(1992),
q(0),
],
q(der) => [
- q(2000),
+ q(1993),
q(0),
],
q(des) => [
- q(2001),
+ q(1994),
q(0),
],
q(dev) => [
- q(2002),
+ q(1995),
q(0),
],
q(dez) => [
- q(2003),
+ q(1996),
q(0),
],
q(dga) => [
- q(2004),
+ q(1997),
q(0),
],
q(dgb) => [
- q(2005),
+ q(1998),
q(0),
],
q(dgc) => [
- q(2006),
+ q(1999),
q(0),
],
q(dgd) => [
- q(2007),
+ q(2000),
q(0),
],
q(dge) => [
- q(2008),
+ q(2001),
q(0),
],
q(dgg) => [
- q(2009),
+ q(2002),
q(0),
],
q(dgh) => [
- q(2010),
+ q(2003),
q(0),
],
q(dgi) => [
- q(2011),
+ q(2004),
q(0),
],
q(dgk) => [
- q(2012),
+ q(2005),
q(0),
],
q(dgl) => [
- q(2013),
+ q(2006),
q(0),
],
q(dgn) => [
- q(2014),
+ q(2007),
q(0),
],
q(dgo) => [
- q(2015),
+ q(2008),
q(0),
],
q(dgr) => [
@@ -64688,127 +64603,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dgs) => [
- q(2016),
+ q(2009),
q(0),
],
q(dgt) => [
- q(2017),
+ q(2010),
q(0),
],
q(dgu) => [
- q(2018),
+ q(2011),
q(0),
],
q(dgw) => [
- q(2019),
+ q(2012),
q(0),
],
q(dgx) => [
- q(2020),
+ q(2013),
q(0),
],
q(dgz) => [
- q(2021),
+ q(2014),
q(0),
],
q(dhd) => [
- q(2022),
+ q(2015),
q(0),
],
q(dhg) => [
- q(2023),
+ q(2016),
q(0),
],
q(dhi) => [
- q(2024),
+ q(2017),
q(0),
],
q(dhl) => [
- q(2025),
+ q(2018),
q(0),
],
q(dhm) => [
- q(2026),
+ q(2019),
q(0),
],
q(dhn) => [
- q(2027),
+ q(2020),
q(0),
],
q(dho) => [
- q(2028),
+ q(2021),
q(0),
],
q(dhr) => [
- q(2029),
+ q(2022),
q(0),
],
q(dhs) => [
- q(2030),
+ q(2023),
q(0),
],
q(dhu) => [
- q(2031),
+ q(2024),
q(0),
],
q(dhv) => [
- q(2032),
+ q(2025),
q(0),
],
q(dhw) => [
- q(2033),
+ q(2026),
q(0),
],
q(dhx) => [
- q(2034),
+ q(2027),
q(0),
],
q(dia) => [
- q(2035),
+ q(2028),
q(0),
],
q(dib) => [
- q(2036),
+ q(2029),
q(0),
],
q(dic) => [
- q(2037),
+ q(2030),
q(0),
],
q(did) => [
- q(2038),
+ q(2031),
q(0),
],
q(dif) => [
- q(2039),
+ q(2032),
q(0),
],
q(dig) => [
- q(2040),
+ q(2033),
q(0),
],
q(dih) => [
- q(2041),
+ q(2034),
q(0),
],
q(dii) => [
- q(2042),
+ q(2035),
q(0),
],
q(dij) => [
- q(2043),
+ q(2036),
q(0),
],
q(dik) => [
- q(2044),
+ q(2037),
q(0),
],
q(dil) => [
- q(2045),
+ q(2038),
q(0),
],
q(dim) => [
- q(2046),
+ q(2039),
q(0),
],
q(din) => [
@@ -64816,31 +64731,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dio) => [
- q(2047),
+ q(2040),
q(0),
],
q(dip) => [
- q(2048),
+ q(2041),
q(0),
],
q(diq) => [
- q(2049),
+ q(2042),
q(0),
],
q(dir) => [
- q(2050),
+ q(2043),
q(0),
],
q(dis) => [
- q(2051),
+ q(2044),
q(0),
],
q(dit) => [
- q(2052),
+ q(2045),
q(0),
],
q(diu) => [
- q(2053),
+ q(2046),
q(0),
],
q(div) => [
@@ -64848,151 +64763,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(diw) => [
- q(2054),
+ q(2047),
q(0),
],
q(dix) => [
- q(2055),
+ q(2048),
q(0),
],
q(diy) => [
- q(2056),
+ q(2049),
q(0),
],
q(diz) => [
- q(2057),
+ q(2050),
q(0),
],
q(dja) => [
- q(2058),
+ q(2051),
q(0),
],
q(djb) => [
- q(2059),
+ q(2052),
q(0),
],
q(djc) => [
- q(2060),
+ q(2053),
q(0),
],
q(djd) => [
- q(2061),
+ q(2054),
q(0),
],
q(dje) => [
- q(2062),
+ q(2055),
q(0),
],
q(djf) => [
- q(2063),
+ q(2056),
q(0),
],
q(dji) => [
- q(2064),
+ q(2057),
q(0),
],
q(djj) => [
- q(2065),
+ q(2058),
q(0),
],
q(djk) => [
- q(2066),
+ q(2059),
q(0),
],
q(djm) => [
- q(2067),
+ q(2060),
q(0),
],
q(djn) => [
- q(2068),
+ q(2061),
q(0),
],
q(djo) => [
- q(2069),
+ q(2062),
q(0),
],
q(djr) => [
- q(2070),
+ q(2063),
q(0),
],
q(dju) => [
- q(2071),
+ q(2064),
q(0),
],
q(djw) => [
- q(2072),
+ q(2065),
q(0),
],
q(dka) => [
- q(2073),
+ q(2066),
q(0),
],
q(dkk) => [
- q(2074),
+ q(2067),
q(0),
],
q(dkr) => [
- q(2075),
+ q(2068),
q(0),
],
q(dks) => [
- q(2076),
+ q(2069),
q(0),
],
q(dkx) => [
- q(2077),
+ q(2070),
q(0),
],
q(dlg) => [
- q(2078),
+ q(2071),
q(0),
],
q(dlk) => [
- q(2079),
+ q(2072),
q(0),
],
q(dlm) => [
- q(2080),
+ q(2073),
q(0),
],
q(dln) => [
- q(2081),
+ q(2074),
q(0),
],
q(dma) => [
- q(2082),
+ q(2075),
q(0),
],
q(dmb) => [
- q(2083),
+ q(2076),
q(0),
],
q(dmc) => [
- q(2084),
+ q(2077),
q(0),
],
q(dmd) => [
- q(2085),
+ q(2078),
q(0),
],
q(dme) => [
- q(2086),
+ q(2079),
q(0),
],
q(dmg) => [
- q(2087),
+ q(2080),
q(0),
],
q(dmk) => [
- q(2088),
+ q(2081),
q(0),
],
q(dml) => [
- q(2089),
+ q(2082),
q(0),
],
q(dmm) => [
- q(2090),
+ q(2083),
q(0),
],
q(dmn) => [
@@ -65000,115 +64915,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dmo) => [
- q(2091),
+ q(2084),
q(0),
],
q(dmr) => [
- q(2092),
+ q(2085),
q(0),
],
q(dms) => [
- q(2093),
+ q(2086),
q(0),
],
q(dmu) => [
- q(2094),
+ q(2087),
q(0),
],
q(dmv) => [
- q(2095),
+ q(2088),
q(0),
],
q(dmw) => [
- q(2096),
+ q(2089),
q(0),
],
q(dmx) => [
- q(2097),
+ q(2090),
q(0),
],
q(dmy) => [
- q(2098),
+ q(2091),
q(0),
],
q(dna) => [
- q(2099),
+ q(2092),
q(0),
],
q(dnd) => [
- q(2100),
+ q(2093),
q(0),
],
q(dne) => [
- q(2101),
+ q(2094),
q(0),
],
q(dng) => [
- q(2102),
+ q(2095),
q(0),
],
q(dni) => [
- q(2103),
+ q(2096),
q(0),
],
q(dnj) => [
- q(2104),
+ q(2097),
q(0),
],
q(dnk) => [
- q(2105),
+ q(2098),
q(0),
],
q(dnn) => [
- q(2106),
+ q(2099),
q(0),
],
q(dnr) => [
- q(2107),
+ q(2100),
q(0),
],
q(dnt) => [
- q(2108),
+ q(2101),
q(0),
],
q(dnu) => [
- q(2109),
+ q(2102),
q(0),
],
q(dnv) => [
- q(2110),
+ q(2103),
q(0),
],
q(dnw) => [
- q(2111),
+ q(2104),
q(0),
],
q(dny) => [
- q(2112),
+ q(2105),
q(0),
],
q(doa) => [
- q(2113),
+ q(2106),
q(0),
],
q(dob) => [
- q(2114),
+ q(2107),
q(0),
],
q(doc) => [
- q(2115),
+ q(2108),
q(0),
],
q(doe) => [
- q(2116),
+ q(2109),
q(0),
],
q(dof) => [
- q(2117),
+ q(2110),
q(0),
],
q(doh) => [
- q(2118),
+ q(2111),
q(0),
],
q(doi) => [
@@ -65116,63 +65031,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(dok) => [
- q(2119),
+ q(2112),
q(0),
],
q(dol) => [
- q(2120),
+ q(2113),
q(0),
],
q(don) => [
- q(2121),
+ q(2114),
q(0),
],
q(doo) => [
- q(2122),
+ q(2115),
q(0),
],
q(dop) => [
- q(2123),
+ q(2116),
q(0),
],
q(doq) => [
- q(2124),
+ q(2117),
q(0),
],
q(dor) => [
- q(2125),
+ q(2118),
q(0),
],
q(dos) => [
- q(2126),
+ q(2119),
q(0),
],
q(dot) => [
- q(2127),
+ q(2120),
q(0),
],
q(dov) => [
- q(2128),
+ q(2121),
q(0),
],
q(dow) => [
- q(2129),
+ q(2122),
q(0),
],
q(dox) => [
- q(2130),
+ q(2123),
q(0),
],
q(doy) => [
- q(2131),
+ q(2124),
q(0),
],
q(doz) => [
- q(2132),
+ q(2125),
q(0),
],
q(dpp) => [
- q(2133),
+ q(2126),
q(0),
],
q(dra) => [
@@ -65180,63 +65095,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(drb) => [
- q(2134),
+ q(2127),
q(0),
],
q(drc) => [
- q(2135),
+ q(2128),
q(0),
],
q(drd) => [
- q(2136),
+ q(2129),
q(0),
],
q(dre) => [
- q(2137),
+ q(2130),
q(0),
],
q(drg) => [
- q(2138),
+ q(2131),
q(0),
],
q(dri) => [
- q(2139),
+ q(2132),
q(0),
],
q(drl) => [
- q(2140),
+ q(2133),
q(0),
],
q(drn) => [
- q(2141),
+ q(2134),
q(0),
],
q(dro) => [
- q(2142),
+ q(2135),
q(0),
],
q(drq) => [
- q(2143),
+ q(2136),
q(0),
],
q(drr) => [
- q(2144),
+ q(2137),
q(0),
],
q(drs) => [
- q(2145),
+ q(2138),
q(0),
],
q(drt) => [
- q(2146),
+ q(2139),
q(0),
],
q(dru) => [
- q(2147),
+ q(2140),
q(0),
],
q(dry) => [
- q(2148),
+ q(2141),
q(0),
],
q(dsb) => [
@@ -65244,87 +65159,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dse) => [
- q(2149),
+ q(2142),
q(0),
],
q(dsh) => [
- q(2150),
+ q(2143),
q(0),
],
q(dsi) => [
- q(2151),
+ q(2144),
q(0),
],
q(dsl) => [
- q(2152),
+ q(2145),
q(0),
],
q(dsn) => [
- q(2153),
+ q(2146),
q(0),
],
q(dso) => [
- q(2154),
+ q(2147),
q(0),
],
q(dsq) => [
- q(2155),
+ q(2148),
q(0),
],
q(dta) => [
- q(2156),
+ q(2149),
q(0),
],
q(dtb) => [
- q(2157),
+ q(2150),
q(0),
],
q(dtd) => [
- q(2158),
+ q(2151),
q(0),
],
q(dth) => [
- q(2159),
+ q(2152),
q(0),
],
q(dti) => [
- q(2160),
+ q(2153),
q(0),
],
q(dtk) => [
- q(2161),
+ q(2154),
q(0),
],
q(dtm) => [
- q(2162),
+ q(2155),
+ q(0),
+ ],
+ q(dtn) => [
+ q(2156),
q(0),
],
q(dto) => [
- q(2163),
+ q(2157),
q(0),
],
q(dtp) => [
- q(2164),
+ q(2158),
q(0),
],
q(dtr) => [
- q(2165),
+ q(2159),
q(0),
],
q(dts) => [
- q(2166),
+ q(2160),
q(0),
],
q(dtt) => [
- q(2167),
+ q(2161),
q(0),
],
q(dtu) => [
- q(2168),
+ q(2162),
q(0),
],
q(dty) => [
- q(2169),
+ q(2163),
q(0),
],
q(dua) => [
@@ -65332,47 +65251,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dub) => [
- q(2170),
+ q(2164),
q(0),
],
q(duc) => [
- q(2171),
+ q(2165),
q(0),
],
q(dud) => [
- q(2172),
+ q(2166),
q(0),
],
q(due) => [
- q(2173),
+ q(2167),
q(0),
],
q(duf) => [
- q(2174),
+ q(2168),
q(0),
],
q(dug) => [
- q(2175),
+ q(2169),
q(0),
],
q(duh) => [
- q(2176),
+ q(2170),
q(0),
],
q(dui) => [
- q(2177),
- q(0),
- ],
- q(duj) => [
- q(2178),
+ q(2171),
q(0),
],
q(duk) => [
- q(2179),
+ q(2172),
q(0),
],
q(dul) => [
- q(2180),
+ q(2173),
q(0),
],
q(dum) => [
@@ -65380,27 +65295,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(dun) => [
- q(2181),
+ q(2174),
q(0),
],
q(duo) => [
- q(2182),
+ q(2175),
q(0),
],
q(dup) => [
- q(2183),
+ q(2176),
q(0),
],
q(duq) => [
- q(2184),
+ q(2177),
q(0),
],
q(dur) => [
- q(2185),
+ q(2178),
q(0),
],
q(dus) => [
- q(2186),
+ q(2179),
q(0),
],
q(dut) => [
@@ -65408,79 +65323,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(duu) => [
- q(2187),
+ q(2180),
q(0),
],
q(duv) => [
- q(2188),
+ q(2181),
q(0),
],
q(duw) => [
- q(2189),
+ q(2182),
q(0),
],
q(dux) => [
- q(2190),
+ q(2183),
q(0),
],
q(duy) => [
- q(2191),
+ q(2184),
q(0),
],
q(duz) => [
- q(2192),
+ q(2185),
q(0),
],
q(dva) => [
- q(2193),
+ q(2186),
q(0),
],
q(dwa) => [
- q(2194),
+ q(2187),
q(0),
],
q(dwr) => [
- q(2195),
+ q(2188),
q(0),
],
q(dws) => [
- q(2196),
+ q(2189),
+ q(0),
+ ],
+ q(dwu) => [
+ q(2190),
q(0),
],
q(dww) => [
- q(2197),
+ q(2191),
+ q(0),
+ ],
+ q(dwy) => [
+ q(2192),
q(0),
],
q(dya) => [
- q(2198),
+ q(2193),
q(0),
],
q(dyb) => [
- q(2199),
+ q(2194),
q(0),
],
q(dyd) => [
- q(2200),
+ q(2195),
q(0),
],
q(dyg) => [
- q(2201),
+ q(2196),
q(0),
],
q(dyi) => [
- q(2202),
+ q(2197),
q(0),
],
q(dym) => [
- q(2203),
+ q(2198),
q(0),
],
q(dyn) => [
- q(2204),
+ q(2199),
q(0),
],
q(dyo) => [
- q(2205),
+ q(2200),
q(0),
],
q(dyu) => [
@@ -65488,27 +65411,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(dyy) => [
- q(2206),
+ q(2201),
q(0),
],
q(dza) => [
- q(2207),
+ q(2202),
q(0),
],
q(dze) => [
- q(2208),
+ q(2203),
q(0),
],
q(dzg) => [
- q(2209),
+ q(2204),
q(0),
],
q(dzl) => [
- q(2210),
+ q(2205),
q(0),
],
q(dzn) => [
- q(2211),
+ q(2206),
q(0),
],
q(dzo) => [
@@ -65516,51 +65439,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(eaa) => [
- q(2212),
+ q(2207),
q(0),
],
q(ebg) => [
- q(2213),
+ q(2208),
q(0),
],
q(ebk) => [
- q(2214),
+ q(2209),
q(0),
],
q(ebo) => [
- q(2215),
+ q(2210),
q(0),
],
q(ebr) => [
- q(2216),
+ q(2211),
q(0),
],
q(ebu) => [
- q(2217),
+ q(2212),
q(0),
],
q(ecr) => [
- q(2218),
+ q(2213),
q(0),
],
q(ecs) => [
- q(2219),
+ q(2214),
q(0),
],
q(ecy) => [
- q(2220),
+ q(2215),
q(0),
],
q(eee) => [
- q(2221),
+ q(2216),
q(0),
],
q(efa) => [
- q(2222),
+ q(2217),
q(0),
],
q(efe) => [
- q(2223),
+ q(2218),
q(0),
],
q(efi) => [
@@ -65568,15 +65491,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ega) => [
- q(2224),
+ q(2219),
q(0),
],
q(egl) => [
- q(2225),
+ q(2220),
q(0),
],
q(ego) => [
- q(2226),
+ q(2221),
q(0),
],
q(egx) => [
@@ -65588,23 +65511,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ehu) => [
- q(2227),
+ q(2222),
q(0),
],
q(eip) => [
- q(2228),
+ q(2223),
q(0),
],
q(eit) => [
- q(2229),
+ q(2224),
q(0),
],
q(eiv) => [
- q(2230),
+ q(2225),
q(0),
],
q(eja) => [
- q(2231),
+ q(2226),
q(0),
],
q(eka) => [
@@ -65612,75 +65535,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ekc) => [
- q(2232),
+ q(2227),
q(0),
],
q(eke) => [
- q(2233),
+ q(2228),
q(0),
],
q(ekg) => [
- q(2234),
+ q(2229),
q(0),
],
q(eki) => [
- q(2235),
+ q(2230),
q(0),
],
q(ekk) => [
- q(2236),
+ q(2231),
q(0),
],
q(ekl) => [
- q(2237),
+ q(2232),
q(0),
],
q(ekm) => [
- q(2238),
+ q(2233),
q(0),
],
q(eko) => [
- q(2239),
+ q(2234),
q(0),
],
q(ekp) => [
- q(2240),
+ q(2235),
q(0),
],
q(ekr) => [
- q(2241),
+ q(2236),
q(0),
],
q(eky) => [
- q(2242),
+ q(2237),
q(0),
],
q(ele) => [
- q(2243),
+ q(2238),
q(0),
],
q(elh) => [
- q(2244),
+ q(2239),
q(0),
],
q(eli) => [
- q(2245),
+ q(2240),
q(0),
],
q(elk) => [
- q(2246),
+ q(2241),
q(0),
],
q(elm) => [
- q(2247),
+ q(2242),
q(0),
],
q(elo) => [
- q(2248),
+ q(2243),
q(0),
],
q(elu) => [
- q(2249),
+ q(2244),
q(0),
],
q(elx) => [
@@ -65688,79 +65611,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ema) => [
- q(2250),
+ q(2245),
q(0),
],
q(emb) => [
- q(2251),
+ q(2246),
q(0),
],
q(eme) => [
- q(2252),
+ q(2247),
q(0),
],
q(emg) => [
- q(2253),
+ q(2248),
q(0),
],
q(emi) => [
- q(2254),
+ q(2249),
q(0),
],
q(emk) => [
- q(2255),
+ q(2250),
q(0),
],
q(emm) => [
- q(2256),
+ q(2251),
q(0),
],
q(emn) => [
- q(2257),
+ q(2252),
q(0),
],
q(emp) => [
- q(2258),
+ q(2253),
q(0),
],
q(ems) => [
- q(2259),
+ q(2254),
q(0),
],
q(emu) => [
- q(2260),
+ q(2255),
q(0),
],
q(emw) => [
- q(2261),
+ q(2256),
q(0),
],
q(emx) => [
- q(2262),
+ q(2257),
q(0),
],
q(emy) => [
- q(2263),
+ q(2258),
q(0),
],
q(ena) => [
- q(2264),
+ q(2259),
q(0),
],
q(enb) => [
- q(2265),
+ q(2260),
q(0),
],
q(enc) => [
- q(2266),
+ q(2261),
q(0),
],
q(end) => [
- q(2267),
+ q(2262),
q(0),
],
q(enf) => [
- q(2268),
+ q(2263),
q(0),
],
q(eng) => [
@@ -65768,11 +65691,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(enh) => [
- q(2269),
+ q(2264),
q(0),
],
q(enl) => [
- q(2270),
+ q(2265),
q(0),
],
q(enm) => [
@@ -65780,43 +65703,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(enn) => [
- q(2271),
+ q(2266),
q(0),
],
q(eno) => [
- q(2272),
+ q(2267),
q(0),
],
q(enq) => [
- q(2273),
+ q(2268),
q(0),
],
q(enr) => [
- q(2274),
+ q(2269),
q(0),
],
q(enu) => [
- q(2275),
+ q(2270),
q(0),
],
q(env) => [
- q(2276),
+ q(2271),
q(0),
],
q(enw) => [
- q(2277),
+ q(2272),
q(0),
],
q(enx) => [
- q(2278),
+ q(2273),
q(0),
],
q(eot) => [
- q(2279),
+ q(2274),
q(0),
],
q(epi) => [
- q(2280),
+ q(2275),
q(0),
],
q(epo) => [
@@ -65824,83 +65747,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(era) => [
- q(2281),
+ q(2276),
q(0),
],
q(erg) => [
- q(2282),
+ q(2277),
q(0),
],
q(erh) => [
- q(2283),
+ q(2278),
q(0),
],
q(eri) => [
- q(2284),
+ q(2279),
q(0),
],
q(erk) => [
- q(2285),
+ q(2280),
q(0),
],
q(ero) => [
- q(2286),
+ q(2281),
q(0),
],
q(err) => [
- q(2287),
+ q(2282),
q(0),
],
q(ers) => [
- q(2288),
+ q(2283),
q(0),
],
q(ert) => [
- q(2289),
+ q(2284),
q(0),
],
q(erw) => [
- q(2290),
+ q(2285),
q(0),
],
q(ese) => [
- q(2291),
+ q(2286),
+ q(0),
+ ],
+ q(esg) => [
+ q(2287),
q(0),
],
q(esh) => [
- q(2292),
+ q(2288),
q(0),
],
q(esi) => [
- q(2293),
+ q(2289),
q(0),
],
q(esk) => [
- q(2294),
+ q(2290),
q(0),
],
q(esl) => [
- q(2295),
+ q(2291),
q(0),
],
q(esm) => [
- q(2296),
+ q(2292),
q(0),
],
q(esn) => [
- q(2297),
+ q(2293),
q(0),
],
q(eso) => [
- q(2298),
+ q(2294),
q(0),
],
q(esq) => [
- q(2299),
+ q(2295),
q(0),
],
q(ess) => [
- q(2300),
+ q(2296),
q(0),
],
q(est) => [
@@ -65908,7 +65835,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(esu) => [
- q(2301),
+ q(2297),
q(0),
],
q(esx) => [
@@ -65916,51 +65843,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(esy) => [
- q(2302),
+ q(2298),
q(0),
],
q(etb) => [
- q(2303),
+ q(2299),
q(0),
],
q(etc) => [
- q(2304),
+ q(2300),
q(0),
],
q(eth) => [
- q(2305),
+ q(2301),
q(0),
],
q(etn) => [
- q(2306),
+ q(2302),
q(0),
],
q(eto) => [
- q(2307),
+ q(2303),
q(0),
],
q(etr) => [
- q(2308),
+ q(2304),
q(0),
],
q(ets) => [
- q(2309),
+ q(2305),
q(0),
],
q(ett) => [
- q(2310),
+ q(2306),
q(0),
],
q(etu) => [
- q(2311),
+ q(2307),
q(0),
],
q(etx) => [
- q(2312),
+ q(2308),
q(0),
],
q(etz) => [
- q(2313),
+ q(2309),
q(0),
],
q(euq) => [
@@ -65968,15 +65895,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(eve) => [
- q(2314),
+ q(2310),
q(0),
],
q(evh) => [
- q(2315),
+ q(2311),
q(0),
],
q(evn) => [
- q(2316),
+ q(2312),
q(0),
],
q(ewe) => [
@@ -65988,67 +65915,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ext) => [
- q(2317),
+ q(2313),
q(0),
],
q(eya) => [
- q(2318),
+ q(2314),
q(0),
],
q(eyo) => [
- q(2319),
+ q(2315),
q(0),
],
q(eza) => [
- q(2320),
+ q(2316),
q(0),
],
q(eze) => [
- q(2321),
+ q(2317),
q(0),
],
q(faa) => [
- q(2322),
+ q(2318),
q(0),
],
q(fab) => [
- q(2323),
+ q(2319),
q(0),
],
q(fad) => [
- q(2324),
+ q(2320),
q(0),
],
q(faf) => [
- q(2325),
+ q(2321),
q(0),
],
q(fag) => [
- q(2326),
+ q(2322),
q(0),
],
q(fah) => [
- q(2327),
+ q(2323),
q(0),
],
q(fai) => [
- q(2328),
+ q(2324),
q(0),
],
q(faj) => [
- q(2329),
+ q(2325),
q(0),
],
q(fak) => [
- q(2330),
+ q(2326),
q(0),
],
q(fal) => [
- q(2331),
+ q(2327),
q(0),
],
q(fam) => [
- q(2332),
+ q(2328),
q(0),
],
q(fan) => [
@@ -66060,11 +65987,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fap) => [
- q(2333),
+ q(2329),
q(0),
],
q(far) => [
- q(2334),
+ q(2330),
q(0),
],
q(fat) => [
@@ -66072,51 +65999,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fau) => [
- q(2335),
+ q(2331),
q(0),
],
q(fax) => [
- q(2336),
+ q(2332),
q(0),
],
q(fay) => [
- q(2337),
+ q(2333),
q(0),
],
q(faz) => [
- q(2338),
+ q(2334),
q(0),
],
q(fbl) => [
- q(2339),
+ q(2335),
q(0),
],
q(fcs) => [
- q(2340),
+ q(2336),
q(0),
],
q(fer) => [
- q(2341),
+ q(2337),
q(0),
],
q(ffi) => [
- q(2342),
+ q(2338),
q(0),
],
q(ffm) => [
- q(2343),
+ q(2339),
q(0),
],
q(fgr) => [
- q(2344),
+ q(2340),
q(0),
],
q(fia) => [
- q(2345),
+ q(2341),
q(0),
],
q(fie) => [
- q(2346),
+ q(2342),
q(0),
],
q(fij) => [
@@ -66132,15 +66059,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fip) => [
- q(2347),
+ q(2343),
q(0),
],
q(fir) => [
- q(2348),
+ q(2344),
q(0),
],
q(fit) => [
- q(2349),
+ q(2345),
q(0),
],
q(fiu) => [
@@ -66148,71 +66075,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fiw) => [
- q(2350),
+ q(2346),
q(0),
],
q(fkk) => [
- q(2351),
+ q(2347),
q(0),
],
q(fkv) => [
- q(2352),
+ q(2348),
q(0),
],
q(fla) => [
- q(2353),
+ q(2349),
q(0),
],
q(flh) => [
- q(2354),
+ q(2350),
q(0),
],
q(fli) => [
- q(2355),
+ q(2351),
q(0),
],
q(fll) => [
- q(2356),
+ q(2352),
q(0),
],
q(fln) => [
- q(2357),
+ q(2353),
q(0),
],
q(flr) => [
- q(2358),
+ q(2354),
q(0),
],
q(fly) => [
- q(2359),
+ q(2355),
q(0),
],
q(fmp) => [
- q(2360),
+ q(2356),
q(0),
],
q(fmu) => [
- q(2361),
+ q(2357),
+ q(0),
+ ],
+ q(fnb) => [
+ q(2358),
q(0),
],
q(fng) => [
- q(2362),
+ q(2359),
q(0),
],
q(fni) => [
- q(2363),
+ q(2360),
q(0),
],
q(fod) => [
- q(2364),
+ q(2361),
q(0),
],
q(foi) => [
- q(2365),
+ q(2362),
q(0),
],
q(fom) => [
- q(2366),
+ q(2363),
q(0),
],
q(fon) => [
@@ -66220,11 +66151,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(for) => [
- q(2367),
+ q(2364),
q(0),
],
q(fos) => [
- q(2368),
+ q(2365),
q(0),
],
q(fox) => [
@@ -66232,19 +66163,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fpe) => [
- q(2369),
+ q(2366),
q(0),
],
q(fqs) => [
- q(2370),
+ q(2367),
q(0),
],
q(frc) => [
- q(2371),
+ q(2368),
q(0),
],
q(frd) => [
- q(2372),
+ q(2369),
q(0),
],
q(fre) => [
@@ -66252,7 +66183,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(frk) => [
- q(2373),
+ q(2370),
q(0),
],
q(frm) => [
@@ -66264,11 +66195,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(frp) => [
- q(2374),
+ q(2371),
q(0),
],
q(frq) => [
- q(2375),
+ q(2372),
q(0),
],
q(frr) => [
@@ -66280,7 +66211,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(frt) => [
- q(2376),
+ q(2373),
q(0),
],
q(fry) => [
@@ -66288,47 +66219,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fse) => [
- q(2377),
+ q(2374),
q(0),
],
q(fsl) => [
- q(2378),
+ q(2375),
q(0),
],
q(fss) => [
- q(2379),
+ q(2376),
q(0),
],
q(fub) => [
- q(2380),
+ q(2377),
q(0),
],
q(fuc) => [
- q(2381),
+ q(2378),
q(0),
],
q(fud) => [
- q(2382),
+ q(2379),
q(0),
],
q(fue) => [
- q(2383),
+ q(2380),
q(0),
],
q(fuf) => [
- q(2384),
+ q(2381),
q(0),
],
q(fuh) => [
- q(2385),
+ q(2382),
q(0),
],
q(fui) => [
- q(2386),
+ q(2383),
q(0),
],
q(fuj) => [
- q(2387),
+ q(2384),
q(0),
],
q(ful) => [
@@ -66336,15 +66267,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fum) => [
- q(2388),
+ q(2385),
q(0),
],
q(fun) => [
- q(2389),
+ q(2386),
q(0),
],
q(fuq) => [
- q(2390),
+ q(2387),
q(0),
],
q(fur) => [
@@ -66352,31 +66283,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(fut) => [
- q(2391),
+ q(2388),
q(0),
],
q(fuu) => [
- q(2392),
+ q(2389),
q(0),
],
q(fuv) => [
- q(2393),
+ q(2390),
q(0),
],
q(fuy) => [
- q(2394),
+ q(2391),
q(0),
],
q(fvr) => [
- q(2395),
+ q(2392),
q(0),
],
q(fwa) => [
- q(2396),
+ q(2393),
q(0),
],
q(fwe) => [
- q(2397),
+ q(2394),
q(0),
],
q(gaa) => [
@@ -66384,91 +66315,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gab) => [
- q(2398),
+ q(2395),
q(0),
],
q(gac) => [
- q(2399),
+ q(2396),
q(0),
],
q(gad) => [
- q(2400),
+ q(2397),
q(0),
],
q(gae) => [
- q(2401),
+ q(2398),
q(0),
],
q(gaf) => [
- q(2402),
+ q(2399),
q(0),
],
q(gag) => [
- q(2403),
+ q(2400),
q(0),
],
q(gah) => [
- q(2404),
+ q(2401),
q(0),
],
q(gai) => [
- q(2405),
+ q(2402),
q(0),
],
q(gaj) => [
- q(2406),
+ q(2403),
q(0),
],
q(gak) => [
- q(2407),
+ q(2404),
q(0),
],
q(gal) => [
- q(2408),
+ q(2405),
q(0),
],
q(gam) => [
- q(2409),
+ q(2406),
q(0),
],
q(gan) => [
- q(2410),
+ q(2407),
q(0),
],
q(gao) => [
- q(2411),
+ q(2408),
q(0),
],
q(gap) => [
- q(2412),
+ q(2409),
q(0),
],
q(gaq) => [
- q(2413),
+ q(2410),
q(0),
],
q(gar) => [
- q(2414),
+ q(2411),
q(0),
],
q(gas) => [
- q(2415),
+ q(2412),
q(0),
],
q(gat) => [
- q(2416),
+ q(2413),
q(0),
],
q(gau) => [
- q(2417),
+ q(2414),
q(0),
],
q(gaw) => [
- q(2418),
+ q(2415),
q(0),
],
q(gax) => [
- q(2419),
+ q(2416),
q(0),
],
q(gay) => [
@@ -66476,7 +66407,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gaz) => [
- q(2420),
+ q(2417),
q(0),
],
q(gba) => [
@@ -66484,251 +66415,251 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(gbb) => [
- q(2421),
+ q(2418),
q(0),
],
q(gbd) => [
- q(2422),
+ q(2419),
q(0),
],
q(gbe) => [
- q(2423),
+ q(2420),
q(0),
],
q(gbf) => [
- q(2424),
+ q(2421),
q(0),
],
q(gbg) => [
- q(2425),
+ q(2422),
q(0),
],
q(gbh) => [
- q(2426),
+ q(2423),
q(0),
],
q(gbi) => [
- q(2427),
+ q(2424),
q(0),
],
q(gbj) => [
- q(2428),
+ q(2425),
q(0),
],
q(gbk) => [
- q(2429),
+ q(2426),
q(0),
],
q(gbl) => [
- q(2430),
+ q(2427),
q(0),
],
q(gbm) => [
- q(2431),
+ q(2428),
q(0),
],
q(gbn) => [
- q(2432),
+ q(2429),
q(0),
],
q(gbo) => [
- q(2433),
+ q(2430),
q(0),
],
q(gbp) => [
- q(2434),
+ q(2431),
q(0),
],
q(gbq) => [
- q(2435),
+ q(2432),
q(0),
],
q(gbr) => [
- q(2436),
+ q(2433),
q(0),
],
q(gbs) => [
- q(2437),
+ q(2434),
q(0),
],
q(gbu) => [
- q(2438),
+ q(2435),
q(0),
],
q(gbv) => [
- q(2439),
+ q(2436),
q(0),
],
q(gbw) => [
- q(2440),
+ q(2437),
q(0),
],
q(gbx) => [
- q(2441),
+ q(2438),
q(0),
],
q(gby) => [
- q(2442),
+ q(2439),
q(0),
],
q(gbz) => [
- q(2443),
+ q(2440),
q(0),
],
q(gcc) => [
- q(2444),
+ q(2441),
q(0),
],
q(gcd) => [
- q(2445),
+ q(2442),
q(0),
],
q(gce) => [
- q(2446),
+ q(2443),
q(0),
],
q(gcf) => [
- q(2447),
+ q(2444),
q(0),
],
q(gcl) => [
- q(2448),
+ q(2445),
q(0),
],
q(gcn) => [
- q(2449),
+ q(2446),
q(0),
],
q(gcr) => [
- q(2450),
+ q(2447),
q(0),
],
q(gct) => [
- q(2451),
+ q(2448),
q(0),
],
q(gda) => [
- q(2452),
+ q(2449),
q(0),
],
q(gdb) => [
- q(2453),
+ q(2450),
q(0),
],
q(gdc) => [
- q(2454),
+ q(2451),
q(0),
],
q(gdd) => [
- q(2455),
+ q(2452),
q(0),
],
q(gde) => [
- q(2456),
+ q(2453),
q(0),
],
q(gdf) => [
- q(2457),
+ q(2454),
q(0),
],
q(gdg) => [
- q(2458),
+ q(2455),
q(0),
],
q(gdh) => [
- q(2459),
+ q(2456),
q(0),
],
q(gdi) => [
- q(2460),
+ q(2457),
q(0),
],
q(gdj) => [
- q(2461),
+ q(2458),
q(0),
],
q(gdk) => [
- q(2462),
+ q(2459),
q(0),
],
q(gdl) => [
- q(2463),
+ q(2460),
q(0),
],
q(gdm) => [
- q(2464),
+ q(2461),
q(0),
],
q(gdn) => [
- q(2465),
+ q(2462),
q(0),
],
q(gdo) => [
- q(2466),
+ q(2463),
q(0),
],
q(gdq) => [
- q(2467),
+ q(2464),
q(0),
],
q(gdr) => [
- q(2468),
+ q(2465),
q(0),
],
q(gds) => [
- q(2469),
+ q(2466),
q(0),
],
q(gdt) => [
- q(2470),
+ q(2467),
q(0),
],
q(gdu) => [
- q(2471),
+ q(2468),
q(0),
],
q(gdx) => [
- q(2472),
+ q(2469),
q(0),
],
q(gea) => [
- q(2473),
+ q(2470),
q(0),
],
q(geb) => [
- q(2474),
+ q(2471),
q(0),
],
q(gec) => [
- q(2475),
+ q(2472),
q(0),
],
q(ged) => [
- q(2476),
+ q(2473),
q(0),
],
q(geg) => [
- q(2477),
+ q(2474),
q(0),
],
q(geh) => [
- q(2478),
+ q(2475),
q(0),
],
q(gei) => [
- q(2479),
+ q(2476),
q(0),
],
q(gej) => [
- q(2480),
+ q(2477),
q(0),
],
q(gek) => [
- q(2481),
+ q(2478),
q(0),
],
q(gel) => [
- q(2482),
+ q(2479),
q(0),
],
q(gem) => [
@@ -66740,7 +66671,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(geq) => [
- q(2483),
+ q(2480),
q(0),
],
q(ger) => [
@@ -66748,23 +66679,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ges) => [
- q(2484),
+ q(2481),
q(0),
],
q(gev) => [
- q(2485),
+ q(2482),
q(0),
],
q(gew) => [
- q(2486),
+ q(2483),
q(0),
],
q(gex) => [
- q(2487),
+ q(2484),
q(0),
],
q(gey) => [
- q(2488),
+ q(2485),
q(0),
],
q(gez) => [
@@ -66772,127 +66703,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gfk) => [
- q(2489),
+ q(2486),
q(0),
],
q(gft) => [
- q(2490),
+ q(2487),
q(0),
],
q(gga) => [
- q(2491),
+ q(2488),
q(0),
],
q(ggb) => [
- q(2492),
+ q(2489),
q(0),
],
q(ggd) => [
- q(2493),
+ q(2490),
q(0),
],
q(gge) => [
- q(2494),
+ q(2491),
q(0),
],
q(ggg) => [
- q(2495),
+ q(2492),
q(0),
],
q(ggk) => [
- q(2496),
+ q(2493),
q(0),
],
q(ggl) => [
- q(2497),
- q(0),
- ],
- q(ggn) => [
- q(2498),
- q(0),
- ],
- q(ggo) => [
- q(2499),
+ q(2494),
q(0),
],
q(ggt) => [
- q(2500),
+ q(2495),
q(0),
],
q(ggu) => [
- q(2501),
+ q(2496),
q(0),
],
q(ggw) => [
- q(2502),
+ q(2497),
q(0),
],
q(gha) => [
- q(2503),
+ q(2498),
q(0),
],
q(ghc) => [
- q(2504),
+ q(2499),
q(0),
],
q(ghe) => [
- q(2505),
+ q(2500),
q(0),
],
q(ghh) => [
- q(2506),
+ q(2501),
q(0),
],
q(ghk) => [
- q(2507),
+ q(2502),
q(0),
],
q(ghl) => [
- q(2508),
+ q(2503),
q(0),
],
q(ghn) => [
- q(2509),
+ q(2504),
q(0),
],
q(gho) => [
- q(2510),
+ q(2505),
q(0),
],
q(ghr) => [
- q(2511),
+ q(2506),
q(0),
],
q(ghs) => [
- q(2512),
+ q(2507),
q(0),
],
q(ght) => [
- q(2513),
+ q(2508),
q(0),
],
q(gia) => [
- q(2514),
+ q(2509),
q(0),
],
q(gib) => [
- q(2515),
+ q(2510),
q(0),
],
q(gic) => [
- q(2516),
+ q(2511),
q(0),
],
q(gid) => [
- q(2517),
+ q(2512),
q(0),
],
q(gig) => [
- q(2518),
+ q(2513),
q(0),
],
q(gih) => [
- q(2519),
+ q(2514),
q(0),
],
q(gil) => [
@@ -66900,95 +66823,99 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gim) => [
- q(2520),
+ q(2515),
q(0),
],
q(gin) => [
- q(2521),
+ q(2516),
q(0),
],
q(gip) => [
- q(2522),
+ q(2517),
q(0),
],
q(giq) => [
- q(2523),
+ q(2518),
q(0),
],
q(gir) => [
- q(2524),
+ q(2519),
q(0),
],
q(gis) => [
- q(2525),
+ q(2520),
q(0),
],
q(git) => [
- q(2526),
+ q(2521),
q(0),
],
q(giu) => [
- q(2527),
+ q(2522),
q(0),
],
q(giw) => [
- q(2528),
+ q(2523),
q(0),
],
q(gix) => [
- q(2529),
+ q(2524),
q(0),
],
q(giy) => [
- q(2530),
+ q(2525),
q(0),
],
q(giz) => [
- q(2531),
+ q(2526),
q(0),
],
q(gji) => [
- q(2532),
+ q(2527),
q(0),
],
q(gjk) => [
- q(2533),
+ q(2528),
q(0),
],
q(gjm) => [
- q(2534),
+ q(2529),
q(0),
],
q(gjn) => [
- q(2535),
+ q(2530),
+ q(0),
+ ],
+ q(gjr) => [
+ q(2531),
q(0),
],
q(gju) => [
- q(2536),
+ q(2532),
q(0),
],
q(gka) => [
- q(2537),
+ q(2533),
q(0),
],
q(gke) => [
- q(2538),
+ q(2534),
q(0),
],
q(gkn) => [
- q(2539),
+ q(2535),
q(0),
],
q(gko) => [
- q(2540),
+ q(2536),
q(0),
],
q(gkp) => [
- q(2541),
+ q(2537),
q(0),
],
q(gku) => [
- q(2542),
+ q(2538),
q(0),
],
q(gla) => [
@@ -66996,11 +66923,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(glc) => [
- q(2543),
+ q(2539),
q(0),
],
q(gld) => [
- q(2544),
+ q(2540),
q(0),
],
q(gle) => [
@@ -67012,35 +66939,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(glh) => [
- q(2545),
+ q(2541),
q(0),
],
q(gli) => [
- q(2546),
+ q(2542),
q(0),
],
q(glj) => [
- q(2547),
+ q(2543),
q(0),
],
q(glk) => [
- q(2548),
+ q(2544),
q(0),
],
q(gll) => [
- q(2549),
+ q(2545),
q(0),
],
q(glo) => [
- q(2550),
+ q(2546),
q(0),
],
q(glr) => [
- q(2551),
+ q(2547),
q(0),
],
q(glu) => [
- q(2552),
+ q(2548),
q(0),
],
q(glv) => [
@@ -67048,23 +66975,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(glw) => [
- q(2553),
+ q(2549),
q(0),
],
q(gly) => [
- q(2554),
+ q(2550),
q(0),
],
q(gma) => [
- q(2555),
+ q(2551),
q(0),
],
q(gmb) => [
- q(2556),
+ q(2552),
q(0),
],
q(gmd) => [
- q(2557),
+ q(2553),
q(0),
],
q(gme) => [
@@ -67072,7 +66999,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gmg) => [
- q(2558),
+ q(2554),
q(0),
],
q(gmh) => [
@@ -67080,15 +67007,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(gml) => [
- q(2559),
+ q(2555),
q(0),
],
q(gmm) => [
- q(2560),
+ q(2556),
q(0),
],
q(gmn) => [
- q(2561),
+ q(2557),
q(0),
],
q(gmq) => [
@@ -67096,11 +67023,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gmu) => [
- q(2562),
+ q(2558),
q(0),
],
q(gmv) => [
- q(2563),
+ q(2559),
q(0),
],
q(gmw) => [
@@ -67108,119 +67035,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gmx) => [
- q(2564),
+ q(2560),
q(0),
],
q(gmy) => [
- q(2565),
+ q(2561),
q(0),
],
q(gmz) => [
- q(2566),
+ q(2562),
q(0),
],
q(gna) => [
- q(2567),
+ q(2563),
q(0),
],
q(gnb) => [
- q(2568),
+ q(2564),
q(0),
],
q(gnc) => [
- q(2569),
+ q(2565),
q(0),
],
q(gnd) => [
- q(2570),
+ q(2566),
q(0),
],
q(gne) => [
- q(2571),
+ q(2567),
q(0),
],
q(gng) => [
- q(2572),
+ q(2568),
q(0),
],
q(gnh) => [
- q(2573),
+ q(2569),
q(0),
],
q(gni) => [
- q(2574),
+ q(2570),
q(0),
],
q(gnk) => [
- q(2575),
+ q(2571),
q(0),
],
q(gnl) => [
- q(2576),
+ q(2572),
q(0),
],
q(gnm) => [
- q(2577),
+ q(2573),
q(0),
],
q(gnn) => [
- q(2578),
+ q(2574),
q(0),
],
q(gno) => [
- q(2579),
+ q(2575),
q(0),
],
q(gnq) => [
- q(2575),
+ q(2571),
q(1),
],
q(gnr) => [
- q(2580),
+ q(2576),
q(0),
],
q(gnt) => [
- q(2581),
+ q(2577),
q(0),
],
q(gnu) => [
- q(2582),
+ q(2578),
q(0),
],
q(gnw) => [
- q(2583),
+ q(2579),
q(0),
],
q(gnz) => [
- q(2584),
+ q(2580),
q(0),
],
q(goa) => [
- q(2585),
+ q(2581),
q(0),
],
q(gob) => [
- q(2586),
+ q(2582),
q(0),
],
q(goc) => [
- q(2587),
+ q(2583),
q(0),
],
q(god) => [
- q(2588),
+ q(2584),
q(0),
],
q(goe) => [
- q(2589),
+ q(2585),
q(0),
],
q(gof) => [
- q(2590),
+ q(2586),
q(0),
],
q(gog) => [
- q(2591),
+ q(2587),
q(0),
],
q(goh) => [
@@ -67228,23 +67155,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(goi) => [
- q(2592),
+ q(2588),
q(0),
],
q(goj) => [
- q(2593),
+ q(2589),
q(0),
],
q(gok) => [
- q(2594),
+ q(2590),
q(0),
],
q(gol) => [
- q(2595),
+ q(2591),
q(0),
],
q(gom) => [
- q(2596),
+ q(2592),
q(0),
],
q(gon) => [
@@ -67252,15 +67179,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(goo) => [
- q(2597),
+ q(2593),
q(0),
],
q(gop) => [
- q(2598),
+ q(2594),
q(0),
],
q(goq) => [
- q(2599),
+ q(2595),
q(0),
],
q(gor) => [
@@ -67268,7 +67195,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gos) => [
- q(2600),
+ q(2596),
q(0),
],
q(got) => [
@@ -67276,59 +67203,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gou) => [
- q(2601),
+ q(2597),
q(0),
],
q(gow) => [
- q(2602),
+ q(2598),
q(0),
],
q(gox) => [
- q(2603),
+ q(2599),
q(0),
],
q(goy) => [
- q(2604),
+ q(2600),
q(0),
],
q(goz) => [
- q(2605),
+ q(2601),
q(0),
],
q(gpa) => [
- q(2606),
+ q(2602),
q(0),
],
q(gpe) => [
- q(2607),
+ q(2603),
q(0),
],
q(gpn) => [
- q(2608),
+ q(2604),
q(0),
],
q(gqa) => [
- q(2609),
+ q(2605),
q(0),
],
q(gqi) => [
- q(2610),
+ q(2606),
q(0),
],
q(gqn) => [
- q(2611),
+ q(2607),
q(0),
],
q(gqr) => [
- q(2612),
+ q(2608),
q(0),
],
q(gqu) => [
- q(2613),
+ q(2609),
q(0),
],
q(gra) => [
- q(2614),
+ q(2610),
q(0),
],
q(grb) => [
@@ -67340,7 +67267,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(grd) => [
- q(2615),
+ q(2611),
q(0),
],
q(gre) => [
@@ -67348,19 +67275,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(grg) => [
- q(2616),
+ q(2612),
q(0),
],
q(grh) => [
- q(2617),
+ q(2613),
q(0),
],
q(gri) => [
- q(2618),
+ q(2614),
q(0),
],
q(grj) => [
- q(2619),
+ q(2615),
q(0),
],
q(grk) => [
@@ -67368,7 +67295,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(grm) => [
- q(2620),
+ q(2616),
q(0),
],
q(grn) => [
@@ -67376,79 +67303,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gro) => [
- q(2621),
+ q(2617),
q(0),
],
q(grq) => [
- q(2622),
+ q(2618),
q(0),
],
q(grr) => [
- q(2623),
+ q(2619),
q(0),
],
q(grs) => [
- q(2624),
+ q(2620),
q(0),
],
q(grt) => [
- q(2625),
+ q(2621),
q(0),
],
q(gru) => [
- q(2626),
+ q(2622),
q(0),
],
q(grv) => [
- q(2627),
+ q(2623),
q(0),
],
q(grw) => [
- q(2628),
+ q(2624),
q(0),
],
q(grx) => [
- q(2629),
+ q(2625),
q(0),
],
q(gry) => [
- q(2630),
+ q(2626),
q(0),
],
q(grz) => [
- q(2631),
+ q(2627),
q(0),
],
q(gse) => [
- q(2632),
+ q(2628),
q(0),
],
q(gsg) => [
- q(2633),
+ q(2629),
q(0),
],
q(gsl) => [
- q(2634),
+ q(2630),
q(0),
],
q(gsm) => [
- q(2635),
+ q(2631),
q(0),
],
q(gsn) => [
- q(2636),
+ q(2632),
q(0),
],
q(gso) => [
- q(2637),
+ q(2633),
q(0),
],
q(gsp) => [
- q(2638),
+ q(2634),
q(0),
],
q(gss) => [
- q(2639),
+ q(2635),
q(0),
],
q(gsw) => [
@@ -67456,47 +67383,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gta) => [
- q(2640),
+ q(2636),
q(0),
],
q(gtu) => [
- q(2641),
+ q(2637),
q(0),
],
q(gua) => [
- q(2642),
+ q(2638),
q(0),
],
q(gub) => [
- q(2643),
+ q(2639),
q(0),
],
q(guc) => [
- q(2644),
+ q(2640),
q(0),
],
q(gud) => [
- q(2645),
+ q(2641),
q(0),
],
q(gue) => [
- q(2646),
+ q(2642),
q(0),
],
q(guf) => [
- q(2647),
+ q(2643),
q(0),
],
q(gug) => [
- q(2648),
+ q(2644),
q(0),
],
q(guh) => [
- q(2649),
+ q(2645),
q(0),
],
q(gui) => [
- q(2650),
+ q(2646),
q(0),
],
q(guj) => [
@@ -67504,143 +67431,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(guk) => [
- q(2651),
+ q(2647),
q(0),
],
q(gul) => [
- q(2652),
+ q(2648),
q(0),
],
q(gum) => [
- q(2653),
+ q(2649),
q(0),
],
q(gun) => [
- q(2654),
+ q(2650),
q(0),
],
q(guo) => [
- q(2655),
+ q(2651),
q(0),
],
q(gup) => [
- q(2656),
+ q(2652),
q(0),
],
q(guq) => [
- q(2657),
+ q(2653),
q(0),
],
q(gur) => [
- q(2658),
+ q(2654),
q(0),
],
q(gus) => [
- q(2659),
+ q(2655),
q(0),
],
q(gut) => [
- q(2660),
+ q(2656),
q(0),
],
q(guu) => [
- q(2661),
- q(0),
- ],
- q(guv) => [
- q(2662),
+ q(2657),
q(0),
],
q(guw) => [
- q(2663),
+ q(2658),
q(0),
],
q(gux) => [
- q(2664),
+ q(2659),
q(0),
],
q(guz) => [
- q(2665),
+ q(2660),
q(0),
],
q(gva) => [
- q(2666),
+ q(2661),
q(0),
],
q(gvc) => [
- q(2667),
+ q(2662),
q(0),
],
q(gve) => [
- q(2668),
+ q(2663),
q(0),
],
q(gvf) => [
- q(2669),
+ q(2664),
q(0),
],
q(gvj) => [
- q(2670),
+ q(2665),
q(0),
],
q(gvl) => [
- q(2671),
+ q(2666),
q(0),
],
q(gvm) => [
- q(2672),
+ q(2667),
q(0),
],
q(gvn) => [
- q(2673),
+ q(2668),
q(0),
],
q(gvo) => [
- q(2674),
+ q(2669),
q(0),
],
q(gvp) => [
- q(2675),
+ q(2670),
q(0),
],
q(gvr) => [
- q(2676),
+ q(2671),
q(0),
],
q(gvs) => [
- q(2677),
+ q(2672),
q(0),
],
q(gvy) => [
- q(2678),
+ q(2673),
q(0),
],
q(gwa) => [
- q(2679),
+ q(2674),
q(0),
],
q(gwb) => [
- q(2680),
+ q(2675),
q(0),
],
q(gwc) => [
- q(2681),
+ q(2676),
q(0),
],
q(gwd) => [
- q(2682),
+ q(2677),
q(0),
],
q(gwe) => [
- q(2683),
+ q(2678),
q(0),
],
q(gwf) => [
- q(2684),
+ q(2679),
q(0),
],
q(gwg) => [
- q(2685),
+ q(2680),
q(0),
],
q(gwi) => [
@@ -67648,131 +67571,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(gwj) => [
- q(2686),
+ q(2681),
q(0),
],
q(gwm) => [
- q(2687),
+ q(2682),
q(0),
],
q(gwn) => [
- q(2688),
+ q(2683),
q(0),
],
q(gwr) => [
- q(2689),
+ q(2684),
q(0),
],
q(gwt) => [
- q(2690),
+ q(2685),
q(0),
],
q(gwu) => [
- q(2691),
+ q(2686),
q(0),
],
q(gww) => [
- q(2692),
+ q(2687),
q(0),
],
q(gwx) => [
- q(2693),
+ q(2688),
q(0),
],
q(gxx) => [
- q(2694),
+ q(2689),
q(0),
],
q(gya) => [
- q(2695),
+ q(2690),
q(0),
],
q(gyb) => [
- q(2696),
+ q(2691),
q(0),
],
q(gyd) => [
- q(2697),
+ q(2692),
q(0),
],
q(gye) => [
- q(2698),
+ q(2693),
q(0),
],
q(gyf) => [
- q(2699),
+ q(2694),
q(0),
],
q(gyg) => [
- q(2700),
+ q(2695),
q(0),
],
q(gyi) => [
- q(2701),
+ q(2696),
q(0),
],
q(gyl) => [
- q(2702),
+ q(2697),
q(0),
],
q(gym) => [
- q(2703),
+ q(2698),
q(0),
],
q(gyn) => [
- q(2704),
+ q(2699),
q(0),
],
q(gyr) => [
- q(2705),
+ q(2700),
q(0),
],
q(gyy) => [
- q(2706),
+ q(2701),
q(0),
],
q(gza) => [
- q(2707),
+ q(2702),
q(0),
],
q(gzi) => [
- q(2708),
+ q(2703),
q(0),
],
q(gzn) => [
- q(2709),
+ q(2704),
q(0),
],
q(haa) => [
- q(2710),
+ q(2705),
q(0),
],
q(hab) => [
- q(2711),
+ q(2706),
q(0),
],
q(hac) => [
- q(2712),
+ q(2707),
q(0),
],
q(had) => [
- q(2713),
+ q(2708),
q(0),
],
q(hae) => [
- q(2714),
+ q(2709),
q(0),
],
q(haf) => [
- q(2715),
+ q(2710),
q(0),
],
q(hag) => [
- q(2716),
+ q(2711),
q(0),
],
q(hah) => [
- q(2717),
+ q(2712),
q(0),
],
q(hai) => [
@@ -67780,43 +67703,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(haj) => [
- q(2718),
+ q(2713),
q(0),
],
q(hak) => [
- q(2719),
+ q(2714),
q(0),
],
q(hal) => [
- q(2720),
+ q(2715),
q(0),
],
q(ham) => [
- q(2721),
+ q(2716),
q(0),
],
q(han) => [
- q(2722),
+ q(2717),
q(0),
],
q(hao) => [
- q(2723),
+ q(2718),
q(0),
],
q(hap) => [
- q(2724),
+ q(2719),
q(0),
],
q(haq) => [
- q(2725),
+ q(2720),
q(0),
],
q(har) => [
- q(2726),
+ q(2721),
q(0),
],
q(has) => [
- q(2727),
+ q(2722),
q(0),
],
q(hat) => [
@@ -67828,7 +67751,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hav) => [
- q(2728),
+ q(2723),
q(0),
],
q(haw) => [
@@ -67836,59 +67759,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hax) => [
- q(2729),
+ q(2724),
q(0),
],
q(hay) => [
- q(2730),
+ q(2725),
q(0),
],
q(haz) => [
- q(2731),
+ q(2726),
q(0),
],
q(hba) => [
- q(2732),
+ q(2727),
q(0),
],
q(hbb) => [
- q(2733),
+ q(2728),
q(0),
],
q(hbn) => [
- q(2734),
+ q(2729),
q(0),
],
q(hbo) => [
- q(2735),
+ q(2730),
q(0),
],
q(hbu) => [
- q(2736),
+ q(2731),
q(0),
],
q(hca) => [
- q(2737),
+ q(2732),
q(0),
],
q(hch) => [
- q(2738),
+ q(2733),
q(0),
],
q(hdn) => [
- q(2739),
+ q(2734),
q(0),
],
q(hds) => [
- q(2740),
+ q(2735),
q(0),
],
q(hdy) => [
- q(2741),
+ q(2736),
q(0),
],
q(hea) => [
- q(2742),
+ q(2737),
q(0),
],
q(heb) => [
@@ -67896,23 +67819,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hed) => [
- q(2743),
+ q(2738),
q(0),
],
q(heg) => [
- q(2744),
+ q(2739),
q(0),
],
q(heh) => [
- q(2745),
+ q(2740),
q(0),
],
q(hei) => [
- q(2746),
+ q(2741),
q(0),
],
q(hem) => [
- q(2747),
+ q(2742),
q(0),
],
q(her) => [
@@ -67920,59 +67843,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hgm) => [
- q(2748),
+ q(2743),
q(0),
],
q(hgw) => [
- q(2749),
+ q(2744),
q(0),
],
q(hhi) => [
- q(2750),
+ q(2745),
q(0),
],
q(hhr) => [
- q(2751),
+ q(2746),
q(0),
],
q(hhy) => [
- q(2752),
+ q(2747),
q(0),
],
q(hia) => [
- q(2753),
+ q(2748),
q(0),
],
q(hib) => [
- q(2754),
+ q(2749),
q(0),
],
q(hid) => [
- q(2755),
+ q(2750),
q(0),
],
q(hif) => [
- q(2756),
+ q(2751),
q(0),
],
q(hig) => [
- q(2757),
+ q(2752),
q(0),
],
q(hih) => [
- q(2758),
+ q(2753),
q(0),
],
q(hii) => [
- q(2759),
+ q(2754),
q(0),
],
q(hij) => [
- q(2760),
+ q(2755),
q(0),
],
q(hik) => [
- q(2761),
+ q(2756),
q(0),
],
q(hil) => [
@@ -67988,11 +67911,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hio) => [
- q(2762),
+ q(2757),
q(0),
],
q(hir) => [
- q(2763),
+ q(2758),
q(0),
],
q(hit) => [
@@ -68000,107 +67923,107 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hiw) => [
- q(2764),
+ q(2759),
q(0),
],
q(hix) => [
- q(2765),
+ q(2760),
q(0),
],
q(hji) => [
- q(2766),
+ q(2761),
q(0),
],
q(hka) => [
- q(2767),
+ q(2762),
q(0),
],
q(hke) => [
- q(2768),
+ q(2763),
q(0),
],
q(hkk) => [
- q(2769),
+ q(2764),
q(0),
],
q(hks) => [
- q(2770),
+ q(2765),
q(0),
],
q(hla) => [
- q(2771),
+ q(2766),
q(0),
],
q(hlb) => [
- q(2772),
+ q(2767),
q(0),
],
q(hld) => [
- q(2773),
+ q(2768),
q(0),
],
q(hle) => [
- q(2774),
+ q(2769),
q(0),
],
q(hlt) => [
- q(2775),
+ q(2770),
q(0),
],
q(hlu) => [
- q(2776),
+ q(2771),
q(0),
],
q(hma) => [
- q(2777),
+ q(2772),
q(0),
],
q(hmb) => [
- q(2778),
+ q(2773),
q(0),
],
q(hmc) => [
- q(2779),
+ q(2774),
q(0),
],
q(hmd) => [
- q(2780),
+ q(2775),
q(0),
],
q(hme) => [
- q(2781),
+ q(2776),
q(0),
],
q(hmf) => [
- q(2782),
+ q(2777),
q(0),
],
q(hmg) => [
- q(2783),
+ q(2778),
q(0),
],
q(hmh) => [
- q(2784),
+ q(2779),
q(0),
],
q(hmi) => [
- q(2785),
+ q(2780),
q(0),
],
q(hmj) => [
- q(2786),
+ q(2781),
q(0),
],
q(hmk) => [
- q(2787),
+ q(2782),
q(0),
],
q(hml) => [
- q(2788),
+ q(2783),
q(0),
],
q(hmm) => [
- q(2789),
+ q(2784),
q(0),
],
q(hmn) => [
@@ -68112,35 +68035,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hmp) => [
- q(2790),
+ q(2785),
q(0),
],
q(hmq) => [
- q(2791),
+ q(2786),
q(0),
],
q(hmr) => [
- q(2792),
+ q(2787),
q(0),
],
q(hms) => [
- q(2793),
+ q(2788),
q(0),
],
q(hmt) => [
- q(2794),
+ q(2789),
q(0),
],
q(hmu) => [
- q(2795),
+ q(2790),
q(0),
],
q(hmv) => [
- q(2796),
+ q(2791),
q(0),
],
q(hmw) => [
- q(2797),
+ q(2792),
q(0),
],
q(hmx) => [
@@ -68148,83 +68071,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hmy) => [
- q(2798),
+ q(2793),
q(0),
],
q(hmz) => [
- q(2799),
+ q(2794),
q(0),
],
q(hna) => [
- q(2800),
+ q(2795),
q(0),
],
q(hnd) => [
- q(2801),
+ q(2796),
q(0),
],
q(hne) => [
- q(2802),
+ q(2797),
q(0),
],
q(hnh) => [
- q(2803),
+ q(2798),
q(0),
],
q(hni) => [
- q(2804),
+ q(2799),
q(0),
],
q(hnj) => [
- q(2805),
+ q(2800),
q(0),
],
q(hnn) => [
- q(2806),
+ q(2801),
q(0),
],
q(hno) => [
- q(2807),
+ q(2802),
q(0),
],
q(hns) => [
- q(2808),
+ q(2803),
q(0),
],
q(hnu) => [
- q(2809),
+ q(2804),
q(0),
],
q(hoa) => [
- q(2810),
+ q(2805),
q(0),
],
q(hob) => [
- q(2811),
+ q(2806),
q(0),
],
q(hoc) => [
- q(2812),
+ q(2807),
q(0),
],
q(hod) => [
- q(2813),
+ q(2808),
q(0),
],
q(hoe) => [
- q(2814),
+ q(2809),
q(0),
],
q(hoh) => [
- q(2815),
+ q(2810),
q(0),
],
q(hoi) => [
- q(2816),
+ q(2811),
q(0),
],
q(hoj) => [
- q(2817),
+ q(2812),
q(0),
],
q(hok) => [
@@ -68232,91 +68155,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hol) => [
- q(2818),
+ q(2813),
q(0),
],
q(hom) => [
- q(2819),
+ q(2814),
q(0),
],
q(hoo) => [
- q(2820),
+ q(2815),
q(0),
],
q(hop) => [
- q(2821),
+ q(2816),
q(0),
],
q(hor) => [
- q(2822),
+ q(2817),
q(0),
],
q(hos) => [
- q(2823),
+ q(2818),
q(0),
],
q(hot) => [
- q(2824),
+ q(2819),
q(0),
],
q(hov) => [
- q(2825),
+ q(2820),
q(0),
],
q(how) => [
- q(2826),
+ q(2821),
q(0),
],
q(hoy) => [
- q(2827),
+ q(2822),
q(0),
],
q(hoz) => [
- q(2828),
+ q(2823),
q(0),
],
q(hpo) => [
- q(2829),
+ q(2824),
q(0),
],
q(hps) => [
- q(2830),
+ q(2825),
q(0),
],
q(hra) => [
- q(2831),
+ q(2826),
q(0),
],
q(hrc) => [
- q(2832),
+ q(2827),
q(0),
],
q(hre) => [
- q(2833),
+ q(2828),
q(0),
],
q(hrk) => [
- q(2834),
+ q(2829),
q(0),
],
q(hrm) => [
- q(2835),
+ q(2830),
q(0),
],
q(hro) => [
- q(2836),
+ q(2831),
q(0),
],
q(hrp) => [
- q(2837),
+ q(2832),
q(0),
],
q(hrt) => [
- q(2838),
+ q(2833),
q(0),
],
q(hru) => [
- q(2839),
+ q(2834),
q(0),
],
q(hrv) => [
@@ -68324,15 +68247,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hrw) => [
- q(2840),
+ q(2835),
q(0),
],
q(hrx) => [
- q(2841),
+ q(2836),
q(0),
],
q(hrz) => [
- q(2842),
+ q(2837),
q(0),
],
q(hsb) => [
@@ -68340,87 +68263,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(hsh) => [
- q(2843),
+ q(2838),
q(0),
],
q(hsl) => [
- q(2844),
+ q(2839),
q(0),
],
q(hsn) => [
- q(2845),
+ q(2840),
q(0),
],
q(hss) => [
- q(2846),
+ q(2841),
q(0),
],
q(hti) => [
- q(2847),
+ q(2842),
q(0),
],
q(hto) => [
- q(2848),
+ q(2843),
q(0),
],
q(hts) => [
- q(2849),
+ q(2844),
q(0),
],
q(htu) => [
- q(2850),
+ q(2845),
q(0),
],
q(htx) => [
- q(2851),
+ q(2846),
q(0),
],
q(hub) => [
- q(2852),
+ q(2847),
q(0),
],
q(huc) => [
- q(2853),
+ q(2848),
q(0),
],
q(hud) => [
- q(2854),
+ q(2849),
q(0),
],
q(hue) => [
- q(2855),
+ q(2850),
q(0),
],
q(huf) => [
- q(2856),
+ q(2851),
q(0),
],
q(hug) => [
- q(2857),
+ q(2852),
q(0),
],
q(huh) => [
- q(2858),
+ q(2853),
q(0),
],
q(hui) => [
- q(2859),
+ q(2854),
q(0),
],
q(huj) => [
- q(2860),
+ q(2855),
q(0),
],
q(huk) => [
- q(2861),
+ q(2856),
q(0),
],
q(hul) => [
- q(2862),
+ q(2857),
q(0),
],
q(hum) => [
- q(2863),
+ q(2858),
q(0),
],
q(hun) => [
@@ -68428,7 +68351,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(huo) => [
- q(2864),
+ q(2859),
q(0),
],
q(hup) => [
@@ -68436,79 +68359,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(huq) => [
- q(2865),
+ q(2860),
q(0),
],
q(hur) => [
- q(2866),
+ q(2861),
q(0),
],
q(hus) => [
- q(2867),
+ q(2862),
q(0),
],
q(hut) => [
- q(2868),
+ q(2863),
q(0),
],
q(huu) => [
- q(2869),
+ q(2864),
q(0),
],
q(huv) => [
- q(2870),
+ q(2865),
q(0),
],
q(huw) => [
- q(2871),
+ q(2866),
q(0),
],
q(hux) => [
- q(2872),
+ q(2867),
q(0),
],
q(huy) => [
- q(2873),
+ q(2868),
q(0),
],
q(huz) => [
- q(2874),
+ q(2869),
q(0),
],
q(hvc) => [
- q(2875),
+ q(2870),
q(0),
],
q(hve) => [
- q(2876),
+ q(2871),
q(0),
],
q(hvk) => [
- q(2877),
+ q(2872),
q(0),
],
q(hvn) => [
- q(2878),
+ q(2873),
q(0),
],
q(hvv) => [
- q(2879),
+ q(2874),
q(0),
],
q(hwa) => [
- q(2880),
+ q(2875),
q(0),
],
q(hwc) => [
- q(2881),
+ q(2876),
q(0),
],
q(hwo) => [
- q(2882),
+ q(2877),
q(0),
],
q(hya) => [
- q(2883),
+ q(2878),
q(0),
],
q(hyx) => [
@@ -68516,19 +68439,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(iai) => [
- q(2884),
+ q(2879),
q(0),
],
q(ian) => [
- q(2885),
- q(0),
- ],
- q(iap) => [
- q(2886),
+ q(2880),
q(0),
],
q(iar) => [
- q(2887),
+ q(2881),
q(0),
],
q(iba) => [
@@ -68536,31 +68455,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ibb) => [
- q(2888),
+ q(2882),
q(0),
],
q(ibd) => [
- q(2889),
+ q(2883),
q(0),
],
q(ibe) => [
- q(2890),
+ q(2884),
q(0),
],
q(ibg) => [
- q(2891),
+ q(2885),
q(0),
],
q(ibl) => [
- q(2892),
+ q(2886),
q(0),
],
q(ibm) => [
- q(2893),
+ q(2887),
q(0),
],
q(ibn) => [
- q(2894),
+ q(2888),
q(0),
],
q(ibo) => [
@@ -68568,19 +68487,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ibr) => [
- q(2895),
+ q(2889),
q(0),
],
q(ibu) => [
- q(2896),
+ q(2890),
q(0),
],
q(iby) => [
- q(2897),
+ q(2891),
q(0),
],
q(ica) => [
- q(2898),
+ q(2892),
q(0),
],
q(ice) => [
@@ -68588,39 +68507,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ich) => [
- q(2899),
+ q(2893),
q(0),
],
q(icl) => [
- q(2900),
+ q(2894),
q(0),
],
q(icr) => [
- q(2901),
+ q(2895),
q(0),
],
q(ida) => [
- q(2902),
+ q(2896),
q(0),
],
q(idb) => [
- q(2903),
+ q(2897),
q(0),
],
q(idc) => [
- q(2904),
+ q(2898),
q(0),
],
q(idd) => [
- q(2905),
+ q(2899),
q(0),
],
q(ide) => [
- q(2906),
+ q(2900),
q(0),
],
q(idi) => [
- q(2907),
+ q(2901),
q(0),
],
q(ido) => [
@@ -68628,103 +68547,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(idr) => [
- q(2908),
+ q(2902),
q(0),
],
q(ids) => [
- q(2909),
+ q(2903),
q(0),
],
q(idt) => [
- q(2910),
+ q(2904),
q(0),
],
q(idu) => [
- q(2911),
+ q(2905),
q(0),
],
q(ifa) => [
- q(2912),
+ q(2906),
q(0),
],
q(ifb) => [
- q(2913),
+ q(2907),
q(0),
],
q(ife) => [
- q(2914),
+ q(2908),
q(0),
],
q(iff) => [
- q(2915),
+ q(2909),
q(0),
],
q(ifk) => [
- q(2916),
+ q(2910),
q(0),
],
q(ifm) => [
- q(2917),
+ q(2911),
q(0),
],
q(ifu) => [
- q(2918),
+ q(2912),
q(0),
],
q(ify) => [
- q(2919),
+ q(2913),
q(0),
],
q(igb) => [
- q(2920),
+ q(2914),
q(0),
],
q(ige) => [
- q(2921),
+ q(2915),
q(0),
],
q(igg) => [
- q(2922),
+ q(2916),
q(0),
],
q(igl) => [
- q(2923),
+ q(2917),
q(0),
],
q(igm) => [
- q(2924),
+ q(2918),
q(0),
],
q(ign) => [
- q(2925),
+ q(2919),
q(0),
],
q(igo) => [
- q(2926),
+ q(2920),
q(0),
],
q(igs) => [
- q(2927),
+ q(2921),
q(0),
],
q(igw) => [
- q(2928),
+ q(2922),
q(0),
],
q(ihb) => [
- q(2929),
+ q(2923),
q(0),
],
q(ihi) => [
- q(2930),
+ q(2924),
q(0),
],
q(ihp) => [
- q(2931),
+ q(2925),
q(0),
],
q(ihw) => [
- q(2932),
+ q(2926),
q(0),
],
q(iii) => [
@@ -68732,7 +68651,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(iin) => [
- q(2933),
+ q(2927),
q(0),
],
q(iir) => [
@@ -68740,19 +68659,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ijc) => [
- q(2934),
+ q(2928),
q(0),
],
q(ije) => [
- q(2935),
+ q(2929),
q(0),
],
q(ijj) => [
- q(2936),
+ q(2930),
q(0),
],
q(ijn) => [
- q(2937),
+ q(2931),
q(0),
],
q(ijo) => [
@@ -68760,43 +68679,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ijs) => [
- q(2938),
+ q(2932),
q(0),
],
q(ike) => [
- q(2939),
+ q(2933),
q(0),
],
q(iki) => [
- q(2940),
+ q(2934),
q(0),
],
q(ikk) => [
- q(2941),
+ q(2935),
q(0),
],
q(ikl) => [
- q(2942),
+ q(2936),
q(0),
],
q(iko) => [
- q(2943),
+ q(2937),
q(0),
],
q(ikp) => [
- q(2944),
+ q(2938),
q(0),
],
q(ikr) => [
- q(2945),
+ q(2939),
q(0),
],
q(iks) => [
- q(2946),
+ q(2940),
q(0),
],
q(ikt) => [
- q(2947),
+ q(2941),
q(0),
],
q(iku) => [
@@ -68804,27 +68723,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ikv) => [
- q(2948),
+ q(2942),
q(0),
],
q(ikw) => [
- q(2949),
+ q(2943),
q(0),
],
q(ikx) => [
- q(2950),
+ q(2944),
q(0),
],
q(ikz) => [
- q(2951),
+ q(2945),
q(0),
],
q(ila) => [
- q(2952),
+ q(2946),
q(0),
],
q(ilb) => [
- q(2953),
+ q(2947),
q(0),
],
q(ile) => [
@@ -68832,67 +68751,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ilg) => [
- q(2954),
+ q(2948),
q(0),
],
q(ili) => [
- q(2955),
+ q(2949),
q(0),
],
q(ilk) => [
- q(2956),
+ q(2950),
q(0),
],
- q(ill) => [
- q(2957),
+ q(ilm) => [
+ q(2951),
q(0),
],
q(ilo) => [
q(0193),
q(0),
],
+ q(ilp) => [
+ q(2952),
+ q(0),
+ ],
q(ils) => [
- q(2958),
+ q(2953),
q(0),
],
q(ilu) => [
- q(2959),
+ q(2954),
q(0),
],
q(ilv) => [
- q(2960),
+ q(2955),
q(0),
],
q(ima) => [
- q(2961),
+ q(2956),
q(0),
],
q(imi) => [
- q(2962),
+ q(2957),
q(0),
],
q(iml) => [
- q(2963),
+ q(2958),
q(0),
],
q(imn) => [
- q(2964),
+ q(2959),
q(0),
],
q(imo) => [
- q(2965),
+ q(2960),
q(0),
],
q(imr) => [
- q(2966),
+ q(2961),
q(0),
],
q(ims) => [
- q(2967),
+ q(2962),
q(0),
],
q(imy) => [
- q(2968),
+ q(2963),
q(0),
],
q(ina) => [
@@ -68900,7 +68823,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(inb) => [
- q(2969),
+ q(2964),
q(0),
],
q(inc) => [
@@ -68916,7 +68839,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ing) => [
- q(2970),
+ q(2965),
q(0),
],
q(inh) => [
@@ -68924,55 +68847,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(inj) => [
- q(2971),
+ q(2966),
q(0),
],
q(inl) => [
- q(2972),
+ q(2967),
q(0),
],
q(inm) => [
- q(2973),
+ q(2968),
q(0),
],
q(inn) => [
- q(2974),
+ q(2969),
q(0),
],
q(ino) => [
- q(2975),
+ q(2970),
q(0),
],
q(inp) => [
- q(2976),
+ q(2971),
q(0),
],
q(ins) => [
- q(2977),
+ q(2972),
q(0),
],
q(int) => [
- q(2978),
+ q(2973),
q(0),
],
q(inz) => [
- q(2979),
+ q(2974),
q(0),
],
q(ior) => [
- q(2980),
+ q(2975),
q(0),
],
q(iou) => [
- q(2981),
+ q(2976),
q(0),
],
q(iow) => [
- q(2982),
+ q(2977),
q(0),
],
q(ipi) => [
- q(2983),
+ q(2978),
q(0),
],
q(ipk) => [
@@ -68980,15 +68903,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ipo) => [
- q(2984),
+ q(2979),
q(0),
],
q(iqu) => [
- q(2985),
+ q(2980),
q(0),
],
q(iqw) => [
- q(2986),
+ q(2981),
q(0),
],
q(ira) => [
@@ -68996,23 +68919,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ire) => [
- q(2987),
+ q(2982),
q(0),
],
q(irh) => [
- q(2988),
+ q(2983),
q(0),
],
q(iri) => [
- q(2989),
+ q(2984),
q(0),
],
q(irk) => [
- q(2990),
+ q(2985),
q(0),
],
q(irn) => [
- q(2991),
+ q(2986),
q(0),
],
q(iro) => [
@@ -69020,75 +68943,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(irr) => [
- q(2992),
+ q(2987),
q(0),
],
q(iru) => [
- q(2993),
+ q(2988),
q(0),
],
q(irx) => [
- q(2994),
+ q(2989),
q(0),
],
q(iry) => [
- q(2995),
+ q(2990),
q(0),
],
q(isa) => [
- q(2996),
+ q(2991),
q(0),
],
q(isc) => [
- q(2997),
+ q(2992),
q(0),
],
q(isd) => [
- q(2998),
+ q(2993),
q(0),
],
q(ise) => [
- q(2999),
+ q(2994),
q(0),
],
q(isg) => [
- q(3000),
+ q(2995),
q(0),
],
q(ish) => [
- q(3001),
+ q(2996),
q(0),
],
q(isi) => [
- q(3002),
+ q(2997),
q(0),
],
q(isk) => [
- q(3003),
+ q(2998),
q(0),
],
q(ism) => [
- q(3004),
+ q(2999),
q(0),
],
q(isn) => [
- q(3005),
+ q(3000),
q(0),
],
q(iso) => [
- q(3006),
+ q(3001),
q(0),
],
q(isr) => [
- q(3007),
+ q(3002),
q(0),
],
q(ist) => [
- q(3008),
+ q(3003),
q(0),
],
q(isu) => [
- q(3009),
+ q(3004),
q(0),
],
q(ita) => [
@@ -69096,195 +69019,199 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(itb) => [
- q(3010),
+ q(3005),
q(0),
],
q(itc) => [
q(0513),
q(0),
],
+ q(itd) => [
+ q(3006),
+ q(0),
+ ],
q(ite) => [
- q(3011),
+ q(3007),
q(0),
],
q(iti) => [
- q(3012),
+ q(3008),
q(0),
],
q(itk) => [
- q(3013),
+ q(3009),
q(0),
],
q(itl) => [
- q(3014),
+ q(3010),
q(0),
],
q(itm) => [
- q(3015),
+ q(3011),
q(0),
],
q(ito) => [
- q(3016),
+ q(3012),
q(0),
],
q(itr) => [
- q(3017),
+ q(3013),
q(0),
],
q(its) => [
- q(3018),
+ q(3014),
q(0),
],
q(itt) => [
- q(3019),
+ q(3015),
q(0),
],
q(itv) => [
- q(3020),
+ q(3016),
q(0),
],
q(itw) => [
- q(3021),
+ q(3017),
q(0),
],
q(itx) => [
- q(3022),
+ q(3018),
q(0),
],
q(ity) => [
- q(3023),
+ q(3019),
q(0),
],
q(itz) => [
- q(3024),
+ q(3020),
q(0),
],
q(ium) => [
- q(3025),
+ q(3021),
q(0),
],
q(ivb) => [
- q(3026),
+ q(3022),
q(0),
],
q(ivv) => [
- q(3027),
+ q(3023),
q(0),
],
q(iwk) => [
- q(3028),
+ q(3024),
q(0),
],
q(iwm) => [
- q(3029),
+ q(3025),
q(0),
],
q(iwo) => [
- q(3030),
+ q(3026),
q(0),
],
q(iws) => [
- q(3031),
+ q(3027),
q(0),
],
q(ixc) => [
- q(3032),
+ q(3028),
q(0),
],
q(ixl) => [
- q(3033),
+ q(3029),
q(0),
],
q(iya) => [
- q(3034),
+ q(3030),
q(0),
],
q(iyo) => [
- q(3035),
+ q(3031),
q(0),
],
q(iyx) => [
- q(3036),
+ q(3032),
q(0),
],
q(izh) => [
- q(3037),
+ q(3033),
q(0),
],
q(izr) => [
- q(3038),
+ q(3034),
q(0),
],
q(izz) => [
- q(3039),
+ q(3035),
q(0),
],
q(jaa) => [
- q(3040),
+ q(3036),
q(0),
],
q(jab) => [
- q(3041),
+ q(3037),
q(0),
],
q(jac) => [
- q(3042),
+ q(3038),
q(0),
],
q(jad) => [
- q(3043),
+ q(3039),
q(0),
],
q(jae) => [
- q(3044),
+ q(3040),
q(0),
],
q(jaf) => [
- q(3045),
+ q(3041),
q(0),
],
q(jah) => [
- q(3046),
+ q(3042),
q(0),
],
q(jaj) => [
- q(3047),
+ q(3043),
q(0),
],
q(jak) => [
- q(3048),
+ q(3044),
q(0),
],
q(jal) => [
- q(3049),
+ q(3045),
q(0),
],
q(jam) => [
- q(3050),
+ q(3046),
q(0),
],
q(jan) => [
- q(3051),
+ q(3047),
q(0),
],
q(jao) => [
- q(3052),
+ q(3048),
q(0),
],
q(jaq) => [
- q(3053),
+ q(3049),
q(0),
],
q(jas) => [
- q(3054),
+ q(3050),
q(0),
],
q(jat) => [
- q(3055),
+ q(3051),
q(0),
],
q(jau) => [
- q(3056),
+ q(3052),
q(0),
],
q(jav) => [
@@ -69292,35 +69219,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(jax) => [
- q(3057),
+ q(3053),
q(0),
],
q(jay) => [
- q(3058),
+ q(3054),
q(0),
],
q(jaz) => [
- q(3059),
+ q(3055),
q(0),
],
q(jbe) => [
- q(3060),
+ q(3056),
q(0),
],
q(jbi) => [
- q(3061),
+ q(3057),
q(0),
],
q(jbj) => [
- q(3062),
+ q(3058),
q(0),
],
q(jbk) => [
- q(3063),
+ q(3059),
q(0),
],
q(jbn) => [
- q(3064),
+ q(3060),
q(0),
],
q(jbo) => [
@@ -69328,307 +69255,311 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(jbr) => [
- q(3065),
+ q(3061),
q(0),
],
q(jbt) => [
- q(3066),
+ q(3062),
q(0),
],
q(jbu) => [
- q(3067),
+ q(3063),
q(0),
],
q(jbw) => [
- q(3068),
+ q(3064),
q(0),
],
q(jcs) => [
- q(3069),
+ q(3065),
q(0),
],
q(jct) => [
- q(3070),
+ q(3066),
q(0),
],
q(jda) => [
- q(3071),
+ q(3067),
q(0),
],
q(jdg) => [
- q(3072),
+ q(3068),
q(0),
],
q(jdt) => [
- q(3073),
+ q(3069),
q(0),
],
q(jeb) => [
- q(3074),
+ q(3070),
q(0),
],
q(jee) => [
- q(3075),
+ q(3071),
q(0),
],
q(jeg) => [
- q(3076),
+ q(3072),
q(0),
],
q(jeh) => [
- q(3077),
+ q(3073),
q(0),
],
q(jei) => [
- q(3078),
+ q(3074),
q(0),
],
q(jek) => [
- q(3079),
+ q(3075),
q(0),
],
q(jel) => [
- q(3080),
+ q(3076),
q(0),
],
q(jen) => [
- q(3081),
+ q(3077),
q(0),
],
q(jer) => [
- q(3082),
+ q(3078),
q(0),
],
q(jet) => [
- q(3083),
+ q(3079),
q(0),
],
q(jeu) => [
- q(3084),
+ q(3080),
q(0),
],
q(jgb) => [
- q(3085),
+ q(3081),
q(0),
],
q(jge) => [
- q(3086),
+ q(3082),
q(0),
],
q(jgk) => [
- q(3087),
+ q(3083),
q(0),
],
q(jgo) => [
- q(3088),
+ q(3084),
q(0),
],
q(jhi) => [
- q(3089),
+ q(3085),
q(0),
],
q(jhs) => [
- q(3090),
+ q(3086),
q(0),
],
q(jia) => [
- q(3091),
+ q(3087),
q(0),
],
q(jib) => [
- q(3092),
+ q(3088),
q(0),
],
q(jic) => [
- q(3093),
+ q(3089),
q(0),
],
q(jid) => [
- q(3094),
+ q(3090),
q(0),
],
q(jie) => [
- q(3095),
+ q(3091),
q(0),
],
q(jig) => [
- q(3096),
+ q(3092),
q(0),
],
q(jih) => [
- q(3097),
+ q(3093),
q(0),
],
q(jii) => [
- q(3098),
+ q(3094),
q(0),
],
q(jil) => [
- q(3099),
+ q(3095),
q(0),
],
q(jim) => [
- q(3100),
+ q(3096),
q(0),
],
q(jio) => [
- q(3101),
+ q(3097),
q(0),
],
q(jiq) => [
- q(3102),
+ q(3098),
q(0),
],
q(jit) => [
- q(3103),
+ q(3099),
q(0),
],
q(jiu) => [
- q(3104),
+ q(3100),
q(0),
],
q(jiv) => [
- q(3105),
+ q(3101),
q(0),
],
q(jiy) => [
- q(3106),
+ q(3102),
q(0),
],
q(jje) => [
- q(3107),
+ q(3103),
q(0),
],
q(jjr) => [
- q(3108),
+ q(3104),
+ q(0),
+ ],
+ q(jka) => [
+ q(3105),
q(0),
],
q(jkm) => [
- q(3109),
+ q(3106),
q(0),
],
q(jko) => [
- q(3110),
+ q(3107),
q(0),
],
q(jkp) => [
- q(3111),
+ q(3108),
q(0),
],
q(jkr) => [
- q(3112),
+ q(3109),
q(0),
],
q(jku) => [
- q(3113),
+ q(3110),
q(0),
],
q(jle) => [
- q(3114),
+ q(3111),
q(0),
],
q(jls) => [
- q(3115),
+ q(3112),
q(0),
],
q(jma) => [
- q(3116),
+ q(3113),
q(0),
],
q(jmb) => [
- q(3117),
+ q(3114),
q(0),
],
q(jmc) => [
- q(3118),
+ q(3115),
q(0),
],
q(jmd) => [
- q(3119),
+ q(3116),
q(0),
],
q(jmi) => [
- q(3120),
+ q(3117),
q(0),
],
q(jml) => [
- q(3121),
+ q(3118),
q(0),
],
q(jmn) => [
- q(3122),
+ q(3119),
q(0),
],
q(jmr) => [
- q(3123),
+ q(3120),
q(0),
],
q(jms) => [
- q(3124),
+ q(3121),
q(0),
],
q(jmw) => [
- q(3125),
+ q(3122),
q(0),
],
q(jmx) => [
- q(3126),
+ q(3123),
q(0),
],
q(jna) => [
- q(3127),
+ q(3124),
q(0),
],
q(jnd) => [
- q(3128),
+ q(3125),
q(0),
],
q(jng) => [
- q(3129),
+ q(3126),
q(0),
],
q(jni) => [
- q(3130),
+ q(3127),
q(0),
],
q(jnj) => [
- q(3131),
+ q(3128),
q(0),
],
q(jnl) => [
- q(3132),
+ q(3129),
q(0),
],
q(jns) => [
- q(3133),
+ q(3130),
q(0),
],
q(job) => [
- q(3134),
+ q(3131),
q(0),
],
q(jod) => [
- q(3135),
+ q(3132),
q(0),
],
q(jog) => [
- q(3136),
+ q(3133),
q(0),
],
q(jor) => [
- q(3137),
+ q(3134),
q(0),
],
q(jos) => [
- q(3138),
+ q(3135),
q(0),
],
q(jow) => [
- q(3139),
+ q(3136),
q(0),
],
q(jpa) => [
- q(3140),
+ q(3137),
q(0),
],
q(jpn) => [
@@ -69644,11 +69575,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(jqr) => [
- q(3141),
+ q(3138),
q(0),
],
q(jra) => [
- q(3142),
+ q(3139),
q(0),
],
q(jrb) => [
@@ -69656,115 +69587,115 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(jrr) => [
- q(3143),
+ q(3140),
q(0),
],
q(jrt) => [
- q(3144),
+ q(3141),
q(0),
],
q(jru) => [
- q(3145),
+ q(3142),
q(0),
],
q(jsl) => [
- q(3146),
+ q(3143),
q(0),
],
q(jua) => [
- q(3147),
+ q(3144),
q(0),
],
q(jub) => [
- q(3148),
+ q(3145),
q(0),
],
q(juc) => [
- q(3149),
+ q(3146),
q(0),
],
q(jud) => [
- q(3150),
+ q(3147),
q(0),
],
q(juh) => [
- q(3151),
+ q(3148),
q(0),
],
q(jui) => [
- q(3152),
+ q(3149),
q(0),
],
q(juk) => [
- q(3153),
+ q(3150),
q(0),
],
q(jul) => [
- q(3154),
+ q(3151),
q(0),
],
q(jum) => [
- q(3155),
+ q(3152),
q(0),
],
q(jun) => [
- q(3156),
+ q(3153),
q(0),
],
q(juo) => [
- q(3157),
+ q(3154),
q(0),
],
q(jup) => [
- q(3158),
+ q(3155),
q(0),
],
q(jur) => [
- q(3159),
+ q(3156),
q(0),
],
q(jus) => [
- q(3160),
+ q(3157),
q(0),
],
q(jut) => [
- q(3161),
+ q(3158),
q(0),
],
q(juu) => [
- q(3162),
+ q(3159),
q(0),
],
q(juw) => [
- q(3163),
+ q(3160),
q(0),
],
q(juy) => [
- q(3164),
+ q(3161),
q(0),
],
q(jvd) => [
- q(3165),
+ q(3162),
q(0),
],
q(jvn) => [
- q(3166),
+ q(3163),
q(0),
],
q(jwi) => [
- q(3167),
+ q(3164),
q(0),
],
q(jya) => [
- q(3168),
+ q(3165),
q(0),
],
q(jye) => [
- q(3169),
+ q(3166),
q(0),
],
q(jyy) => [
- q(3170),
+ q(3167),
q(0),
],
q(kaa) => [
@@ -69780,35 +69711,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kad) => [
- q(3171),
+ q(3168),
q(0),
],
q(kae) => [
- q(3172),
+ q(3169),
q(0),
],
q(kaf) => [
- q(3173),
+ q(3170),
q(0),
],
q(kag) => [
- q(3174),
+ q(3171),
q(0),
],
q(kah) => [
- q(3175),
+ q(3172),
q(0),
],
q(kai) => [
- q(3176),
+ q(3173),
q(0),
],
q(kaj) => [
- q(3177),
+ q(3174),
q(0),
],
q(kak) => [
- q(3178),
+ q(3175),
q(0),
],
q(kal) => [
@@ -69824,15 +69755,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kao) => [
- q(3179),
+ q(3176),
q(0),
],
q(kap) => [
- q(3180),
+ q(3177),
q(0),
],
q(kaq) => [
- q(3181),
+ q(3178),
q(0),
],
q(kar) => [
@@ -69848,7 +69779,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kav) => [
- q(3182),
+ q(3179),
q(0),
],
q(kaw) => [
@@ -69856,11 +69787,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kax) => [
- q(3183),
+ q(3180),
q(0),
],
q(kay) => [
- q(3184),
+ q(3181),
q(0),
],
q(kaz) => [
@@ -69868,15 +69799,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kba) => [
- q(3185),
+ q(3182),
q(0),
],
q(kbb) => [
- q(3186),
+ q(3183),
q(0),
],
q(kbc) => [
- q(3187),
+ q(3184),
q(0),
],
q(kbd) => [
@@ -69884,243 +69815,243 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kbe) => [
- q(3188),
+ q(3185),
q(0),
],
q(kbg) => [
- q(3189),
+ q(3186),
q(0),
],
q(kbh) => [
- q(3190),
+ q(3187),
q(0),
],
q(kbi) => [
- q(3191),
+ q(3188),
q(0),
],
q(kbj) => [
- q(3192),
+ q(3189),
q(0),
],
q(kbk) => [
- q(3193),
+ q(3190),
q(0),
],
q(kbl) => [
- q(3194),
+ q(3191),
q(0),
],
q(kbm) => [
- q(3195),
+ q(3192),
q(0),
],
q(kbn) => [
- q(3196),
+ q(3193),
q(0),
],
q(kbo) => [
- q(3197),
+ q(3194),
q(0),
],
q(kbp) => [
- q(3198),
+ q(3195),
q(0),
],
q(kbq) => [
- q(3199),
+ q(3196),
q(0),
],
q(kbr) => [
- q(3200),
+ q(3197),
q(0),
],
q(kbs) => [
- q(3201),
+ q(3198),
q(0),
],
q(kbt) => [
- q(3202),
+ q(3199),
q(0),
],
q(kbu) => [
- q(3203),
+ q(3200),
q(0),
],
q(kbv) => [
- q(3204),
+ q(3201),
q(0),
],
q(kbw) => [
- q(3205),
+ q(3202),
q(0),
],
q(kbx) => [
- q(3206),
+ q(3203),
q(0),
],
q(kby) => [
- q(3207),
+ q(3204),
q(0),
],
q(kbz) => [
- q(3208),
+ q(3205),
q(0),
],
q(kca) => [
- q(3209),
+ q(3206),
q(0),
],
q(kcb) => [
- q(3210),
+ q(3207),
q(0),
],
q(kcc) => [
- q(3211),
+ q(3208),
q(0),
],
q(kcd) => [
- q(3212),
+ q(3209),
q(0),
],
q(kce) => [
- q(3213),
+ q(3210),
q(0),
],
q(kcf) => [
- q(3214),
+ q(3211),
q(0),
],
q(kcg) => [
- q(3215),
+ q(3212),
q(0),
],
q(kch) => [
- q(3216),
+ q(3213),
q(0),
],
q(kci) => [
- q(3217),
+ q(3214),
q(0),
],
q(kcj) => [
- q(3218),
+ q(3215),
q(0),
],
q(kck) => [
- q(3219),
+ q(3216),
q(0),
],
q(kcl) => [
- q(3220),
+ q(3217),
q(0),
],
q(kcm) => [
- q(3221),
+ q(3218),
q(0),
],
q(kcn) => [
- q(3222),
+ q(3219),
q(0),
],
q(kco) => [
- q(3223),
+ q(3220),
q(0),
],
q(kcp) => [
- q(3224),
+ q(3221),
q(0),
],
q(kcq) => [
- q(3225),
+ q(3222),
q(0),
],
q(kcr) => [
- q(3226),
+ q(3223),
q(0),
],
q(kcs) => [
- q(3227),
+ q(3224),
q(0),
],
q(kct) => [
- q(3228),
+ q(3225),
q(0),
],
q(kcu) => [
- q(3229),
+ q(3226),
q(0),
],
q(kcv) => [
- q(3230),
+ q(3227),
q(0),
],
q(kcw) => [
- q(3231),
+ q(3228),
q(0),
],
q(kcx) => [
- q(3232),
+ q(3229),
q(0),
],
q(kcy) => [
- q(3233),
+ q(3230),
q(0),
],
q(kcz) => [
- q(3234),
+ q(3231),
q(0),
],
q(kda) => [
- q(3235),
+ q(3232),
q(0),
],
q(kdc) => [
- q(3236),
+ q(3233),
q(0),
],
q(kdd) => [
- q(3237),
+ q(3234),
q(0),
],
q(kde) => [
- q(3238),
+ q(3235),
q(0),
],
q(kdf) => [
- q(3239),
+ q(3236),
q(0),
],
q(kdg) => [
- q(3240),
+ q(3237),
q(0),
],
q(kdh) => [
- q(3241),
+ q(3238),
q(0),
],
q(kdi) => [
- q(3242),
+ q(3239),
q(0),
],
q(kdj) => [
- q(3243),
+ q(3240),
q(0),
],
q(kdk) => [
- q(3244),
+ q(3241),
q(0),
],
q(kdl) => [
- q(3245),
+ q(3242),
q(0),
],
q(kdm) => [
- q(3246),
+ q(3243),
q(0),
],
q(kdn) => [
- q(3247),
+ q(3244),
q(0),
],
q(kdo) => [
@@ -70128,343 +70059,339 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kdp) => [
- q(3248),
+ q(3245),
q(0),
],
q(kdq) => [
- q(3249),
+ q(3246),
q(0),
],
q(kdr) => [
- q(3250),
+ q(3247),
q(0),
],
q(kdt) => [
- q(3251),
+ q(3248),
q(0),
],
q(kdu) => [
- q(3252),
+ q(3249),
q(0),
],
q(kdw) => [
- q(3253),
+ q(3250),
q(0),
],
q(kdx) => [
- q(3254),
+ q(3251),
q(0),
],
q(kdy) => [
- q(3255),
+ q(3252),
q(0),
],
q(kdz) => [
- q(3256),
+ q(3253),
q(0),
],
q(kea) => [
- q(3257),
+ q(3254),
q(0),
],
q(keb) => [
- q(3258),
+ q(3255),
q(0),
],
q(kec) => [
- q(3259),
+ q(3256),
q(0),
],
q(ked) => [
- q(3260),
+ q(3257),
q(0),
],
q(kee) => [
- q(3261),
+ q(3258),
q(0),
],
q(kef) => [
- q(3262),
+ q(3259),
q(0),
],
q(keg) => [
- q(3263),
+ q(3260),
q(0),
],
q(keh) => [
- q(3264),
+ q(3261),
q(0),
],
q(kei) => [
- q(3265),
+ q(3262),
q(0),
],
q(kej) => [
- q(3266),
+ q(3263),
q(0),
],
q(kek) => [
- q(3267),
+ q(3264),
q(0),
],
q(kel) => [
- q(3268),
+ q(3265),
q(0),
],
q(kem) => [
- q(3269),
+ q(3266),
q(0),
],
q(ken) => [
- q(3270),
+ q(3267),
q(0),
],
q(keo) => [
- q(3271),
+ q(3268),
q(0),
],
q(kep) => [
- q(3272),
+ q(3269),
q(0),
],
q(keq) => [
- q(3273),
+ q(3270),
q(0),
],
q(ker) => [
- q(3274),
+ q(3271),
q(0),
],
q(kes) => [
- q(3275),
+ q(3272),
q(0),
],
q(ket) => [
- q(3276),
+ q(3273),
q(0),
],
q(keu) => [
- q(3277),
+ q(3274),
q(0),
],
q(kev) => [
- q(3278),
+ q(3275),
q(0),
],
q(kew) => [
- q(3279),
+ q(3276),
q(0),
],
q(kex) => [
- q(3280),
+ q(3277),
q(0),
],
q(key) => [
- q(3281),
+ q(3278),
q(0),
],
q(kez) => [
- q(3282),
+ q(3279),
q(0),
],
q(kfa) => [
- q(3283),
+ q(3280),
q(0),
],
q(kfb) => [
- q(3284),
+ q(3281),
q(0),
],
q(kfc) => [
- q(3285),
+ q(3282),
q(0),
],
q(kfd) => [
- q(3286),
+ q(3283),
q(0),
],
q(kfe) => [
- q(3287),
+ q(3284),
q(0),
],
q(kff) => [
- q(3288),
+ q(3285),
q(0),
],
q(kfg) => [
- q(3289),
+ q(3286),
q(0),
],
q(kfh) => [
- q(3290),
+ q(3287),
q(0),
],
q(kfi) => [
- q(3291),
+ q(3288),
q(0),
],
q(kfj) => [
- q(3292),
+ q(3289),
q(0),
],
q(kfk) => [
- q(3293),
+ q(3290),
q(0),
],
q(kfl) => [
- q(3294),
+ q(3291),
q(0),
],
q(kfm) => [
- q(3295),
+ q(3292),
q(0),
],
q(kfn) => [
- q(3296),
+ q(3293),
q(0),
],
q(kfo) => [
- q(3297),
+ q(3294),
q(0),
],
q(kfp) => [
- q(3298),
+ q(3295),
q(0),
],
q(kfq) => [
- q(3299),
+ q(3296),
q(0),
],
q(kfr) => [
- q(3300),
+ q(3297),
q(0),
],
q(kfs) => [
- q(3301),
+ q(3298),
q(0),
],
q(kft) => [
- q(3302),
+ q(3299),
q(0),
],
q(kfu) => [
- q(3303),
+ q(3300),
q(0),
],
q(kfv) => [
- q(3304),
+ q(3301),
q(0),
],
q(kfw) => [
- q(3305),
+ q(3302),
q(0),
],
q(kfx) => [
- q(3306),
+ q(3303),
q(0),
],
q(kfy) => [
- q(3307),
+ q(3304),
q(0),
],
q(kfz) => [
- q(3308),
+ q(3305),
q(0),
],
q(kga) => [
- q(3309),
+ q(3306),
q(0),
],
q(kgb) => [
- q(3310),
- q(0),
- ],
- q(kgc) => [
- q(3311),
+ q(3307),
q(0),
],
q(kgd) => [
- q(3312),
+ q(3308),
q(0),
],
q(kge) => [
- q(3313),
+ q(3309),
q(0),
],
q(kgf) => [
- q(3314),
+ q(3310),
q(0),
],
q(kgg) => [
- q(3315),
+ q(3311),
q(0),
],
q(kgi) => [
- q(3316),
+ q(3312),
q(0),
],
q(kgj) => [
- q(3317),
+ q(3313),
q(0),
],
q(kgk) => [
- q(3318),
+ q(3314),
q(0),
],
q(kgl) => [
- q(3319),
+ q(3315),
q(0),
],
q(kgm) => [
- q(3320),
+ q(3316),
q(0),
],
q(kgn) => [
- q(3321),
+ q(3317),
q(0),
],
q(kgo) => [
- q(3322),
+ q(3318),
q(0),
],
q(kgp) => [
- q(3323),
+ q(3319),
q(0),
],
q(kgq) => [
- q(3324),
+ q(3320),
q(0),
],
q(kgr) => [
- q(3325),
+ q(3321),
q(0),
],
q(kgs) => [
- q(3326),
+ q(3322),
q(0),
],
q(kgt) => [
- q(3327),
+ q(3323),
q(0),
],
q(kgu) => [
- q(3328),
+ q(3324),
q(0),
],
q(kgv) => [
- q(3329),
+ q(3325),
q(0),
],
q(kgw) => [
- q(3330),
+ q(3326),
q(0),
],
q(kgx) => [
- q(3331),
+ q(3327),
q(0),
],
q(kgy) => [
- q(3332),
+ q(3328),
q(0),
],
q(kha) => [
@@ -70472,31 +70399,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(khb) => [
- q(3333),
+ q(3329),
q(0),
],
q(khc) => [
- q(3334),
+ q(3330),
q(0),
],
q(khd) => [
- q(3335),
+ q(3331),
q(0),
],
q(khe) => [
- q(3336),
+ q(3332),
q(0),
],
q(khf) => [
- q(3337),
+ q(3333),
q(0),
],
q(khg) => [
- q(3338),
+ q(3334),
q(0),
],
q(khh) => [
- q(3339),
+ q(3335),
q(0),
],
q(khi) => [
@@ -70504,15 +70431,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(khj) => [
- q(3340),
+ q(3336),
q(0),
],
q(khk) => [
- q(3341),
+ q(3337),
q(0),
],
q(khl) => [
- q(3342),
+ q(3338),
q(0),
],
q(khm) => [
@@ -70520,7 +70447,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(khn) => [
- q(3343),
+ q(3339),
q(0),
],
q(kho) => [
@@ -70528,87 +70455,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(khp) => [
- q(3344),
+ q(3340),
q(0),
],
q(khq) => [
- q(3345),
+ q(3341),
q(0),
],
q(khr) => [
- q(3346),
+ q(3342),
q(0),
],
q(khs) => [
- q(3347),
+ q(3343),
q(0),
],
q(kht) => [
- q(3348),
+ q(3344),
q(0),
],
q(khu) => [
- q(3349),
+ q(3345),
q(0),
],
q(khv) => [
- q(3350),
+ q(3346),
q(0),
],
q(khw) => [
- q(3351),
+ q(3347),
q(0),
],
q(khx) => [
- q(3352),
+ q(3348),
q(0),
],
q(khy) => [
- q(3353),
+ q(3349),
q(0),
],
q(khz) => [
- q(3354),
+ q(3350),
q(0),
],
q(kia) => [
- q(3355),
+ q(3351),
q(0),
],
q(kib) => [
- q(3356),
+ q(3352),
q(0),
],
q(kic) => [
- q(3357),
+ q(3353),
q(0),
],
q(kid) => [
- q(3358),
+ q(3354),
q(0),
],
q(kie) => [
- q(3359),
+ q(3355),
q(0),
],
q(kif) => [
- q(3360),
+ q(3356),
q(0),
],
q(kig) => [
- q(3361),
+ q(3357),
q(0),
],
q(kih) => [
- q(3362),
+ q(3358),
q(0),
],
q(kii) => [
- q(3363),
+ q(3359),
q(0),
],
q(kij) => [
- q(3364),
+ q(3360),
q(0),
],
q(kik) => [
@@ -70616,11 +70543,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kil) => [
- q(3365),
+ q(3361),
q(0),
],
q(kim) => [
- q(3366),
+ q(3362),
q(0),
],
q(kin) => [
@@ -70628,15 +70555,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kio) => [
- q(3367),
+ q(3363),
q(0),
],
q(kip) => [
- q(3368),
+ q(3364),
q(0),
],
q(kiq) => [
- q(3369),
+ q(3365),
q(0),
],
q(kir) => [
@@ -70644,347 +70571,347 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kis) => [
- q(3370),
+ q(3366),
q(0),
],
q(kit) => [
- q(3371),
+ q(3367),
q(0),
],
q(kiu) => [
- q(3372),
+ q(3368),
q(0),
],
q(kiv) => [
- q(3373),
+ q(3369),
q(0),
],
q(kiw) => [
- q(3374),
+ q(3370),
q(0),
],
q(kix) => [
- q(3375),
+ q(3371),
q(0),
],
q(kiy) => [
- q(3376),
+ q(3372),
q(0),
],
q(kiz) => [
- q(3377),
+ q(3373),
q(0),
],
q(kja) => [
- q(3378),
+ q(3374),
q(0),
],
q(kjb) => [
- q(3379),
+ q(3375),
q(0),
],
q(kjc) => [
- q(3380),
+ q(3376),
q(0),
],
q(kjd) => [
- q(3381),
+ q(3377),
q(0),
],
q(kje) => [
- q(3382),
+ q(3378),
q(0),
],
q(kjf) => [
- q(3383),
+ q(3379),
q(0),
],
q(kjg) => [
- q(3384),
+ q(3380),
q(0),
],
q(kjh) => [
- q(3385),
+ q(3381),
q(0),
],
q(kji) => [
- q(3386),
+ q(3382),
q(0),
],
q(kjj) => [
- q(3387),
+ q(3383),
q(0),
],
q(kjk) => [
- q(3388),
+ q(3384),
q(0),
],
q(kjl) => [
- q(3389),
+ q(3385),
q(0),
],
q(kjm) => [
- q(3390),
+ q(3386),
q(0),
],
q(kjn) => [
- q(3391),
+ q(3387),
q(0),
],
q(kjo) => [
- q(3392),
+ q(3388),
q(0),
],
q(kjp) => [
- q(3393),
+ q(3389),
q(0),
],
q(kjq) => [
- q(3394),
+ q(3390),
q(0),
],
q(kjr) => [
- q(3395),
+ q(3391),
q(0),
],
q(kjs) => [
- q(3396),
+ q(3392),
q(0),
],
q(kjt) => [
- q(3397),
+ q(3393),
q(0),
],
q(kju) => [
- q(3398),
+ q(3394),
q(0),
],
q(kjv) => [
- q(3399),
+ q(3395),
q(0),
],
q(kjx) => [
- q(3400),
+ q(3396),
q(0),
],
q(kjy) => [
- q(3401),
+ q(3397),
q(0),
],
q(kjz) => [
- q(3402),
+ q(3398),
q(0),
],
q(kka) => [
- q(3403),
+ q(3399),
q(0),
],
q(kkb) => [
- q(3404),
+ q(3400),
q(0),
],
q(kkc) => [
- q(3405),
+ q(3401),
q(0),
],
q(kkd) => [
- q(3406),
+ q(3402),
q(0),
],
q(kke) => [
- q(3407),
+ q(3403),
q(0),
],
q(kkf) => [
- q(3408),
+ q(3404),
q(0),
],
q(kkg) => [
- q(3409),
+ q(3405),
q(0),
],
q(kkh) => [
- q(3410),
+ q(3406),
q(0),
],
q(kki) => [
- q(3411),
+ q(3407),
q(0),
],
q(kkj) => [
- q(3412),
+ q(3408),
q(0),
],
q(kkk) => [
- q(3413),
+ q(3409),
q(0),
],
q(kkl) => [
- q(3414),
+ q(3410),
q(0),
],
q(kkm) => [
- q(3415),
+ q(3411),
q(0),
],
q(kkn) => [
- q(3416),
+ q(3412),
q(0),
],
q(kko) => [
- q(3417),
+ q(3413),
q(0),
],
q(kkp) => [
- q(3418),
+ q(3414),
q(0),
],
q(kkq) => [
- q(3419),
+ q(3415),
q(0),
],
q(kkr) => [
- q(3420),
+ q(3416),
q(0),
],
q(kks) => [
- q(3421),
+ q(3417),
q(0),
],
q(kkt) => [
- q(3422),
+ q(3418),
q(0),
],
q(kku) => [
- q(3423),
+ q(3419),
q(0),
],
q(kkv) => [
- q(3424),
+ q(3420),
q(0),
],
q(kkw) => [
- q(3425),
+ q(3421),
q(0),
],
q(kkx) => [
- q(3426),
+ q(3422),
q(0),
],
q(kky) => [
- q(3427),
+ q(3423),
q(0),
],
q(kkz) => [
- q(3428),
+ q(3424),
q(0),
],
q(kla) => [
- q(3429),
+ q(3425),
q(0),
],
q(klb) => [
- q(3430),
+ q(3426),
q(0),
],
q(klc) => [
- q(3431),
+ q(3427),
q(0),
],
q(kld) => [
- q(3432),
+ q(3428),
q(0),
],
q(kle) => [
- q(3433),
+ q(3429),
q(0),
],
q(klf) => [
- q(3434),
+ q(3430),
q(0),
],
q(klg) => [
- q(3435),
+ q(3431),
q(0),
],
q(klh) => [
- q(3436),
+ q(3432),
q(0),
],
q(kli) => [
- q(3437),
+ q(3433),
q(0),
],
q(klj) => [
- q(3438),
+ q(3434),
q(0),
],
q(klk) => [
- q(3439),
+ q(3435),
q(0),
],
q(kll) => [
- q(3440),
+ q(3436),
q(0),
],
q(klm) => [
- q(3441),
+ q(3437),
q(0),
],
q(kln) => [
- q(3442),
+ q(3438),
q(0),
],
q(klo) => [
- q(3443),
+ q(3439),
q(0),
],
q(klp) => [
- q(3444),
+ q(3440),
q(0),
],
q(klq) => [
- q(3445),
+ q(3441),
q(0),
],
q(klr) => [
- q(3446),
+ q(3442),
q(0),
],
q(kls) => [
- q(3447),
+ q(3443),
q(0),
],
q(klt) => [
- q(3448),
+ q(3444),
q(0),
],
q(klu) => [
- q(3449),
+ q(3445),
q(0),
],
q(klv) => [
- q(3450),
+ q(3446),
q(0),
],
q(klw) => [
- q(3451),
+ q(3447),
q(0),
],
q(klx) => [
- q(3452),
+ q(3448),
q(0),
],
q(kly) => [
- q(3453),
+ q(3449),
q(0),
],
q(klz) => [
- q(3454),
+ q(3450),
q(0),
],
q(kma) => [
- q(3455),
+ q(3451),
q(0),
],
q(kmb) => [
@@ -70992,231 +70919,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kmc) => [
- q(3456),
+ q(3452),
q(0),
],
q(kmd) => [
- q(3457),
+ q(3453),
q(0),
],
q(kme) => [
- q(3458),
+ q(3454),
q(0),
],
q(kmf) => [
- q(3459),
+ q(3455),
q(0),
],
q(kmg) => [
- q(3460),
+ q(3456),
q(0),
],
q(kmh) => [
- q(3461),
+ q(3457),
q(0),
],
q(kmi) => [
- q(3462),
+ q(3458),
q(0),
],
q(kmj) => [
- q(3463),
+ q(3459),
q(0),
],
q(kmk) => [
- q(3464),
+ q(3460),
q(0),
],
q(kml) => [
- q(3465),
+ q(3461),
q(0),
],
q(kmm) => [
- q(3466),
+ q(3462),
q(0),
],
q(kmn) => [
- q(3467),
+ q(3463),
q(0),
],
q(kmo) => [
- q(3468),
+ q(3464),
q(0),
],
q(kmp) => [
- q(3469),
+ q(3465),
q(0),
],
q(kmq) => [
- q(3470),
+ q(3466),
q(0),
],
q(kmr) => [
- q(3471),
+ q(3467),
q(0),
],
q(kms) => [
- q(3472),
+ q(3468),
q(0),
],
q(kmt) => [
- q(3473),
+ q(3469),
q(0),
],
q(kmu) => [
- q(3474),
+ q(3470),
q(0),
],
q(kmv) => [
- q(3475),
+ q(3471),
q(0),
],
q(kmw) => [
- q(3476),
+ q(3472),
q(0),
],
q(kmx) => [
- q(3477),
+ q(3473),
q(0),
],
q(kmy) => [
- q(3478),
+ q(3474),
q(0),
],
q(kmz) => [
- q(3479),
+ q(3475),
q(0),
],
q(kna) => [
- q(3480),
+ q(3476),
q(0),
],
q(knb) => [
- q(3481),
+ q(3477),
q(0),
],
q(knc) => [
- q(3482),
+ q(3478),
q(0),
],
q(knd) => [
- q(3483),
+ q(3479),
q(0),
],
q(kne) => [
- q(3484),
+ q(3480),
q(0),
],
q(knf) => [
- q(3485),
+ q(3481),
q(0),
],
q(kng) => [
- q(3486),
+ q(3482),
q(0),
],
q(kni) => [
- q(3487),
+ q(3483),
q(0),
],
q(knj) => [
- q(3488),
+ q(3484),
q(0),
],
q(knk) => [
- q(3489),
+ q(3485),
q(0),
],
q(knl) => [
- q(3490),
+ q(3486),
q(0),
],
q(knm) => [
- q(3491),
+ q(3487),
q(0),
],
q(knn) => [
- q(3492),
+ q(3488),
q(0),
],
q(kno) => [
- q(3493),
+ q(3489),
q(0),
],
q(knp) => [
- q(3494),
+ q(3490),
q(0),
],
q(knq) => [
- q(3495),
+ q(3491),
q(0),
],
q(knr) => [
- q(3496),
+ q(3492),
q(0),
],
q(kns) => [
- q(3497),
+ q(3493),
q(0),
],
q(knt) => [
- q(3498),
+ q(3494),
q(0),
],
q(knu) => [
- q(3499),
+ q(3495),
q(0),
],
q(knv) => [
- q(3500),
+ q(3496),
q(0),
],
q(knw) => [
- q(3501),
+ q(3497),
q(0),
],
q(knx) => [
- q(3502),
+ q(3498),
q(0),
],
q(kny) => [
- q(3503),
+ q(3499),
q(0),
],
q(knz) => [
- q(3504),
+ q(3500),
q(0),
],
q(koa) => [
- q(3505),
+ q(3501),
q(0),
],
q(koc) => [
- q(3506),
+ q(3502),
q(0),
],
q(kod) => [
- q(3507),
+ q(3503),
q(0),
],
q(koe) => [
- q(3508),
+ q(3504),
q(0),
],
q(kof) => [
- q(3509),
+ q(3505),
q(0),
],
q(kog) => [
- q(3510),
+ q(3506),
q(0),
],
q(koh) => [
- q(3511),
+ q(3507),
q(0),
],
q(koi) => [
- q(3512),
+ q(3508),
q(0),
],
q(kok) => [
@@ -71224,7 +71151,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(kol) => [
- q(3513),
+ q(3509),
q(0),
],
q(kom) => [
@@ -71236,15 +71163,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(koo) => [
- q(3514),
+ q(3510),
q(0),
],
q(kop) => [
- q(3515),
+ q(3511),
q(0),
],
q(koq) => [
- q(3516),
+ q(3512),
q(0),
],
q(kor) => [
@@ -71256,47 +71183,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kot) => [
- q(3517),
+ q(3513),
q(0),
],
q(kou) => [
- q(3518),
+ q(3514),
q(0),
],
q(kov) => [
- q(3519),
+ q(3515),
q(0),
],
q(kow) => [
- q(3520),
- q(0),
- ],
- q(kox) => [
- q(3521),
+ q(3516),
q(0),
],
q(koy) => [
- q(3522),
+ q(3517),
q(0),
],
q(koz) => [
- q(3523),
+ q(3518),
q(0),
],
q(kpa) => [
- q(3524),
+ q(3519),
q(0),
],
q(kpb) => [
- q(3525),
+ q(3520),
q(0),
],
q(kpc) => [
- q(3526),
+ q(3521),
q(0),
],
q(kpd) => [
- q(3527),
+ q(3522),
q(0),
],
q(kpe) => [
@@ -71304,195 +71227,195 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kpf) => [
- q(3528),
+ q(3523),
q(0),
],
q(kpg) => [
- q(3529),
+ q(3524),
q(0),
],
q(kph) => [
- q(3530),
+ q(3525),
q(0),
],
q(kpi) => [
- q(3531),
+ q(3526),
q(0),
],
q(kpj) => [
- q(3532),
+ q(3527),
q(0),
],
q(kpk) => [
- q(3533),
+ q(3528),
q(0),
],
q(kpl) => [
- q(3534),
+ q(3529),
q(0),
],
q(kpm) => [
- q(3535),
+ q(3530),
q(0),
],
q(kpn) => [
- q(3536),
+ q(3531),
q(0),
],
q(kpo) => [
- q(3537),
+ q(3532),
q(0),
],
q(kpq) => [
- q(3538),
+ q(3533),
q(0),
],
q(kpr) => [
- q(3539),
+ q(3534),
q(0),
],
q(kps) => [
- q(3540),
+ q(3535),
q(0),
],
q(kpt) => [
- q(3541),
+ q(3536),
q(0),
],
q(kpu) => [
- q(3542),
+ q(3537),
q(0),
],
q(kpv) => [
- q(3543),
+ q(3538),
q(0),
],
q(kpw) => [
- q(3544),
+ q(3539),
q(0),
],
q(kpx) => [
- q(3545),
+ q(3540),
q(0),
],
q(kpy) => [
- q(3546),
+ q(3541),
q(0),
],
q(kpz) => [
- q(3547),
+ q(3542),
q(0),
],
q(kqa) => [
- q(3548),
+ q(3543),
q(0),
],
q(kqb) => [
- q(3549),
+ q(3544),
q(0),
],
q(kqc) => [
- q(3550),
+ q(3545),
q(0),
],
q(kqd) => [
- q(3551),
+ q(3546),
q(0),
],
q(kqe) => [
- q(3552),
+ q(3547),
q(0),
],
q(kqf) => [
- q(3553),
+ q(3548),
q(0),
],
q(kqg) => [
- q(3554),
+ q(3549),
q(0),
],
q(kqh) => [
- q(3555),
+ q(3550),
q(0),
],
q(kqi) => [
- q(3556),
+ q(3551),
q(0),
],
q(kqj) => [
- q(3557),
+ q(3552),
q(0),
],
q(kqk) => [
- q(3558),
+ q(3553),
q(0),
],
q(kql) => [
- q(3559),
+ q(3554),
q(0),
],
q(kqm) => [
- q(3560),
+ q(3555),
q(0),
],
q(kqn) => [
- q(3561),
+ q(3556),
q(0),
],
q(kqo) => [
- q(3562),
+ q(3557),
q(0),
],
q(kqp) => [
- q(3563),
+ q(3558),
q(0),
],
q(kqq) => [
- q(3564),
+ q(3559),
q(0),
],
q(kqr) => [
- q(3565),
+ q(3560),
q(0),
],
q(kqs) => [
- q(3566),
+ q(3561),
q(0),
],
q(kqt) => [
- q(3567),
+ q(3562),
q(0),
],
q(kqu) => [
- q(3568),
+ q(3563),
q(0),
],
q(kqv) => [
- q(3569),
+ q(3564),
q(0),
],
q(kqw) => [
- q(3570),
+ q(3565),
q(0),
],
q(kqx) => [
- q(3571),
+ q(3566),
q(0),
],
q(kqy) => [
- q(3572),
+ q(3567),
q(0),
],
q(kqz) => [
- q(3573),
+ q(3568),
q(0),
],
q(kra) => [
- q(3574),
+ q(3569),
q(0),
],
q(krb) => [
- q(3575),
+ q(3570),
q(0),
],
q(krc) => [
@@ -71500,31 +71423,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(krd) => [
- q(3576),
+ q(3571),
q(0),
],
q(kre) => [
- q(3577),
+ q(3572),
q(0),
],
q(krf) => [
- q(3578),
+ q(3573),
q(0),
],
q(krh) => [
- q(3579),
+ q(3574),
q(0),
],
q(kri) => [
- q(3580),
+ q(3575),
q(0),
],
q(krj) => [
- q(3581),
+ q(3576),
q(0),
],
q(krk) => [
- q(3582),
+ q(3577),
q(0),
],
q(krl) => [
@@ -71532,11 +71455,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(krm) => [
- q(3583),
+ q(3578),
q(0),
],
q(krn) => [
- q(3584),
+ q(3579),
q(0),
],
q(kro) => [
@@ -71544,19 +71467,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(krp) => [
- q(3585),
+ q(3580),
q(0),
],
q(krr) => [
- q(3586),
+ q(3581),
q(0),
],
q(krs) => [
- q(3587),
+ q(3582),
q(0),
],
q(krt) => [
- q(3588),
+ q(3583),
q(0),
],
q(kru) => [
@@ -71564,231 +71487,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(krv) => [
- q(3589),
+ q(3584),
q(0),
],
q(krw) => [
- q(3590),
+ q(3585),
q(0),
],
q(krx) => [
- q(3591),
+ q(3586),
q(0),
],
q(kry) => [
- q(3592),
+ q(3587),
q(0),
],
q(krz) => [
- q(3593),
+ q(3588),
q(0),
],
q(ksa) => [
- q(3594),
+ q(3589),
q(0),
],
q(ksb) => [
- q(3595),
+ q(3590),
q(0),
],
q(ksc) => [
- q(3596),
+ q(3591),
q(0),
],
q(ksd) => [
- q(3597),
+ q(3592),
q(0),
],
q(kse) => [
- q(3598),
+ q(3593),
q(0),
],
q(ksf) => [
- q(3599),
+ q(3594),
q(0),
],
q(ksg) => [
- q(3600),
+ q(3595),
q(0),
],
q(ksh) => [
- q(3601),
+ q(3596),
q(0),
],
q(ksi) => [
- q(3602),
+ q(3597),
q(0),
],
q(ksj) => [
- q(3603),
+ q(3598),
q(0),
],
q(ksk) => [
- q(3604),
+ q(3599),
q(0),
],
q(ksl) => [
- q(3605),
+ q(3600),
q(0),
],
q(ksm) => [
- q(3606),
+ q(3601),
q(0),
],
q(ksn) => [
- q(3607),
+ q(3602),
q(0),
],
q(kso) => [
- q(3608),
+ q(3603),
q(0),
],
q(ksp) => [
- q(3609),
+ q(3604),
q(0),
],
q(ksq) => [
- q(3610),
+ q(3605),
q(0),
],
q(ksr) => [
- q(3611),
+ q(3606),
q(0),
],
q(kss) => [
- q(3612),
+ q(3607),
q(0),
],
q(kst) => [
- q(3613),
+ q(3608),
q(0),
],
q(ksu) => [
- q(3614),
+ q(3609),
q(0),
],
q(ksv) => [
- q(3615),
+ q(3610),
q(0),
],
q(ksw) => [
- q(3616),
+ q(3611),
q(0),
],
q(ksx) => [
- q(3617),
+ q(3612),
q(0),
],
q(ksy) => [
- q(3618),
+ q(3613),
q(0),
],
q(ksz) => [
- q(3619),
+ q(3614),
q(0),
],
q(kta) => [
- q(3620),
+ q(3615),
q(0),
],
q(ktb) => [
- q(3621),
+ q(3616),
q(0),
],
q(ktc) => [
- q(3622),
+ q(3617),
q(0),
],
q(ktd) => [
- q(3623),
+ q(3618),
q(0),
],
q(kte) => [
- q(3624),
+ q(3619),
q(0),
],
q(ktf) => [
- q(3625),
+ q(3620),
q(0),
],
q(ktg) => [
- q(3626),
+ q(3621),
q(0),
],
q(kth) => [
- q(3627),
+ q(3622),
q(0),
],
q(kti) => [
- q(3628),
+ q(3623),
q(0),
],
q(ktj) => [
- q(3629),
+ q(3624),
q(0),
],
q(ktk) => [
- q(3630),
+ q(3625),
q(0),
],
q(ktl) => [
- q(3631),
+ q(3626),
q(0),
],
q(ktm) => [
- q(3632),
+ q(3627),
q(0),
],
q(ktn) => [
- q(3633),
+ q(3628),
q(0),
],
q(kto) => [
- q(3634),
+ q(3629),
q(0),
],
q(ktp) => [
- q(3635),
+ q(3630),
q(0),
],
q(ktq) => [
- q(3636),
- q(0),
- ],
- q(ktr) => [
- q(3637),
+ q(3631),
q(0),
],
q(kts) => [
- q(3638),
+ q(3632),
q(0),
],
q(ktt) => [
- q(3639),
+ q(3633),
q(0),
],
q(ktu) => [
- q(3640),
+ q(3634),
q(0),
],
q(ktv) => [
- q(3641),
+ q(3635),
q(0),
],
q(ktw) => [
- q(3642),
+ q(3636),
q(0),
],
q(ktx) => [
- q(3643),
+ q(3637),
q(0),
],
q(kty) => [
- q(3644),
+ q(3638),
q(0),
],
q(ktz) => [
- q(3645),
+ q(3639),
q(0),
],
q(kua) => [
@@ -71796,47 +71715,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kub) => [
- q(3646),
+ q(3640),
q(0),
],
q(kuc) => [
- q(3647),
+ q(3641),
q(0),
],
q(kud) => [
- q(3648),
+ q(3642),
q(0),
],
q(kue) => [
- q(3649),
+ q(3643),
q(0),
],
q(kuf) => [
- q(3650),
+ q(3644),
q(0),
],
q(kug) => [
- q(3651),
+ q(3645),
q(0),
],
q(kuh) => [
- q(3652),
+ q(3646),
q(0),
],
q(kui) => [
- q(3653),
+ q(3647),
q(0),
],
q(kuj) => [
- q(3654),
+ q(3648),
q(0),
],
q(kuk) => [
- q(3655),
+ q(3649),
q(0),
],
q(kul) => [
- q(3656),
+ q(3650),
q(0),
],
q(kum) => [
@@ -71844,19 +71763,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kun) => [
- q(3657),
+ q(3651),
q(0),
],
q(kuo) => [
- q(3658),
+ q(3652),
q(0),
],
q(kup) => [
- q(3659),
+ q(3653),
q(0),
],
q(kuq) => [
- q(3320),
+ q(3316),
q(0),
],
q(kur) => [
@@ -71864,7 +71783,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kus) => [
- q(3660),
+ q(3654),
q(0),
],
q(kut) => [
@@ -71872,543 +71791,531 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(kuu) => [
- q(3661),
+ q(3655),
q(0),
],
q(kuv) => [
- q(3662),
+ q(3656),
q(0),
],
q(kuw) => [
- q(3663),
+ q(3657),
q(0),
],
q(kux) => [
- q(3664),
+ q(3658),
q(0),
],
q(kuy) => [
- q(3665),
+ q(3659),
q(0),
],
q(kuz) => [
- q(3666),
+ q(3660),
q(0),
],
q(kva) => [
- q(3667),
+ q(3661),
q(0),
],
q(kvb) => [
- q(3668),
+ q(3662),
q(0),
],
q(kvc) => [
- q(3669),
+ q(3663),
q(0),
],
q(kvd) => [
- q(3670),
+ q(3664),
q(0),
],
q(kve) => [
- q(3671),
+ q(3665),
q(0),
],
q(kvf) => [
- q(3672),
+ q(3666),
q(0),
],
q(kvg) => [
- q(3673),
+ q(3667),
q(0),
],
q(kvh) => [
- q(3674),
+ q(3668),
q(0),
],
q(kvi) => [
- q(3675),
+ q(3669),
q(0),
],
q(kvj) => [
- q(3676),
+ q(3670),
q(0),
],
q(kvk) => [
- q(3677),
+ q(3671),
q(0),
],
q(kvl) => [
- q(3678),
+ q(3672),
q(0),
],
q(kvm) => [
- q(3679),
+ q(3673),
q(0),
],
q(kvn) => [
- q(3680),
+ q(3674),
q(0),
],
q(kvo) => [
- q(3681),
+ q(3675),
q(0),
],
q(kvp) => [
- q(3682),
+ q(3676),
q(0),
],
q(kvq) => [
- q(3683),
+ q(3677),
q(0),
],
q(kvr) => [
- q(3684),
- q(0),
- ],
- q(kvs) => [
- q(3685),
+ q(3678),
q(0),
],
q(kvt) => [
- q(3686),
+ q(3679),
q(0),
],
q(kvu) => [
- q(3687),
+ q(3680),
q(0),
],
q(kvv) => [
- q(3688),
+ q(3681),
q(0),
],
q(kvw) => [
- q(3689),
+ q(3682),
q(0),
],
q(kvx) => [
- q(3690),
+ q(3683),
q(0),
],
q(kvy) => [
- q(3691),
+ q(3684),
q(0),
],
q(kvz) => [
- q(3692),
+ q(3685),
q(0),
],
q(kwa) => [
- q(3693),
+ q(3686),
q(0),
],
q(kwb) => [
- q(3694),
+ q(3687),
q(0),
],
q(kwc) => [
- q(3695),
+ q(3688),
q(0),
],
q(kwd) => [
- q(3696),
+ q(3689),
q(0),
],
q(kwe) => [
- q(3697),
+ q(3690),
q(0),
],
q(kwf) => [
- q(3698),
+ q(3691),
q(0),
],
q(kwg) => [
- q(3699),
+ q(3692),
q(0),
],
q(kwh) => [
- q(3700),
+ q(3693),
q(0),
],
q(kwi) => [
- q(3701),
+ q(3694),
q(0),
],
q(kwj) => [
- q(3702),
+ q(3695),
q(0),
],
q(kwk) => [
- q(3703),
+ q(3696),
q(0),
],
q(kwl) => [
- q(3704),
+ q(3697),
q(0),
],
q(kwm) => [
- q(3705),
+ q(3698),
q(0),
],
q(kwn) => [
- q(3706),
+ q(3699),
q(0),
],
q(kwo) => [
- q(3707),
+ q(3700),
q(0),
],
q(kwp) => [
- q(3708),
+ q(3701),
q(0),
],
q(kwr) => [
- q(3709),
+ q(3702),
q(0),
],
q(kws) => [
- q(3710),
+ q(3703),
q(0),
],
q(kwt) => [
- q(3711),
+ q(3704),
q(0),
],
q(kwu) => [
- q(3712),
+ q(3705),
q(0),
],
q(kwv) => [
- q(3713),
+ q(3706),
q(0),
],
q(kww) => [
- q(3714),
+ q(3707),
q(0),
],
q(kwx) => [
- q(3715),
+ q(3708),
q(0),
],
q(kwy) => [
- q(3716),
+ q(3709),
q(0),
],
q(kwz) => [
- q(3717),
+ q(3710),
q(0),
],
q(kxa) => [
- q(3718),
+ q(3711),
q(0),
],
q(kxb) => [
- q(3719),
+ q(3712),
q(0),
],
q(kxc) => [
- q(3720),
+ q(3713),
q(0),
],
q(kxd) => [
- q(3721),
+ q(3714),
q(0),
],
q(kxf) => [
- q(3722),
+ q(3715),
q(0),
],
q(kxh) => [
- q(3723),
+ q(3716),
q(0),
],
q(kxi) => [
- q(3724),
+ q(3717),
q(0),
],
q(kxj) => [
- q(3725),
+ q(3718),
q(0),
],
q(kxk) => [
- q(3726),
+ q(3719),
q(0),
],
q(kxl) => [
- q(3727),
+ q(3720),
q(0),
],
q(kxm) => [
- q(3728),
+ q(3721),
q(0),
],
q(kxn) => [
- q(3729),
+ q(3722),
q(0),
],
q(kxo) => [
- q(3730),
+ q(3723),
q(0),
],
q(kxp) => [
- q(3731),
+ q(3724),
q(0),
],
q(kxq) => [
- q(3732),
+ q(3725),
q(0),
],
q(kxr) => [
- q(3733),
+ q(3726),
q(0),
],
q(kxs) => [
- q(3734),
+ q(3727),
q(0),
],
q(kxt) => [
- q(3735),
+ q(3728),
q(0),
],
q(kxu) => [
- q(3736),
+ q(3729),
q(0),
],
q(kxv) => [
- q(3737),
+ q(3730),
q(0),
],
q(kxw) => [
- q(3738),
+ q(3731),
q(0),
],
q(kxx) => [
- q(3739),
+ q(3732),
q(0),
],
q(kxy) => [
- q(3740),
+ q(3733),
q(0),
],
q(kxz) => [
- q(3741),
+ q(3734),
q(0),
],
q(kya) => [
- q(3742),
+ q(3735),
q(0),
],
q(kyb) => [
- q(3743),
+ q(3736),
q(0),
],
q(kyc) => [
- q(3744),
+ q(3737),
q(0),
],
q(kyd) => [
- q(3745),
+ q(3738),
q(0),
],
q(kye) => [
- q(3746),
+ q(3739),
q(0),
],
q(kyf) => [
- q(3747),
+ q(3740),
q(0),
],
q(kyg) => [
- q(3748),
+ q(3741),
q(0),
],
q(kyh) => [
- q(3749),
+ q(3742),
q(0),
],
q(kyi) => [
- q(3750),
+ q(3743),
q(0),
],
q(kyj) => [
- q(3751),
+ q(3744),
q(0),
],
q(kyk) => [
- q(3752),
+ q(3745),
q(0),
],
q(kyl) => [
- q(3753),
+ q(3746),
q(0),
],
q(kym) => [
- q(3754),
+ q(3747),
q(0),
],
q(kyn) => [
- q(3755),
+ q(3748),
q(0),
],
q(kyo) => [
- q(3756),
+ q(3749),
q(0),
],
q(kyp) => [
- q(3757),
+ q(3750),
q(0),
],
q(kyq) => [
- q(3758),
+ q(3751),
q(0),
],
q(kyr) => [
- q(3759),
+ q(3752),
q(0),
],
q(kys) => [
- q(3760),
+ q(3753),
q(0),
],
q(kyt) => [
- q(3761),
+ q(3754),
q(0),
],
q(kyu) => [
- q(3762),
+ q(3755),
q(0),
],
q(kyv) => [
- q(3763),
+ q(3756),
q(0),
],
q(kyw) => [
- q(3764),
+ q(3757),
q(0),
],
q(kyx) => [
- q(3765),
+ q(3758),
q(0),
],
q(kyy) => [
- q(3766),
+ q(3759),
q(0),
],
q(kyz) => [
- q(3767),
+ q(3760),
q(0),
],
q(kza) => [
- q(3768),
+ q(3761),
q(0),
],
q(kzb) => [
- q(3769),
+ q(3762),
q(0),
],
q(kzc) => [
- q(3770),
+ q(3763),
q(0),
],
q(kzd) => [
- q(3771),
+ q(3764),
q(0),
],
q(kze) => [
- q(3772),
+ q(3765),
q(0),
],
q(kzf) => [
- q(3773),
+ q(3766),
q(0),
],
q(kzg) => [
- q(3774),
+ q(3767),
q(0),
],
q(kzi) => [
- q(3775),
- q(0),
- ],
- q(kzj) => [
- q(3776),
+ q(3768),
q(0),
],
q(kzk) => [
- q(3777),
+ q(3769),
q(0),
],
q(kzl) => [
- q(3778),
+ q(3770),
q(0),
],
q(kzm) => [
- q(3779),
+ q(3771),
q(0),
],
q(kzn) => [
- q(3780),
+ q(3772),
q(0),
],
q(kzo) => [
- q(3781),
+ q(3773),
q(0),
],
q(kzp) => [
- q(3782),
+ q(3774),
q(0),
],
q(kzq) => [
- q(3783),
+ q(3775),
q(0),
],
q(kzr) => [
- q(3784),
+ q(3776),
q(0),
],
q(kzs) => [
- q(3785),
- q(0),
- ],
- q(kzt) => [
- q(3786),
+ q(3777),
q(0),
],
q(kzu) => [
- q(3787),
+ q(3778),
q(0),
],
q(kzv) => [
- q(3788),
+ q(3779),
q(0),
],
q(kzw) => [
- q(3789),
+ q(3780),
q(0),
],
q(kzx) => [
- q(3790),
+ q(3781),
q(0),
],
q(kzy) => [
- q(3791),
+ q(3782),
q(0),
],
q(kzz) => [
- q(3792),
+ q(3783),
q(0),
],
q(laa) => [
- q(3793),
+ q(3784),
q(0),
],
q(lab) => [
- q(3794),
+ q(3785),
q(0),
],
q(lac) => [
- q(3795),
+ q(3786),
q(0),
],
q(lad) => [
@@ -72416,15 +72323,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lae) => [
- q(3796),
+ q(3787),
q(0),
],
q(laf) => [
- q(3797),
+ q(3788),
q(0),
],
q(lag) => [
- q(3798),
+ q(3789),
q(0),
],
q(lah) => [
@@ -72432,19 +72339,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lai) => [
- q(3799),
+ q(3790),
q(0),
],
q(laj) => [
- q(3800),
+ q(3791),
q(0),
],
q(lak) => [
- q(3801),
+ q(3792),
q(0),
],
q(lal) => [
- q(3802),
+ q(3793),
q(0),
],
q(lam) => [
@@ -72452,7 +72359,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lan) => [
- q(3803),
+ q(3794),
q(0),
],
q(lao) => [
@@ -72460,19 +72367,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lap) => [
- q(3804),
+ q(3795),
q(0),
],
q(laq) => [
- q(3805),
+ q(3796),
q(0),
],
q(lar) => [
- q(3806),
+ q(3797),
q(0),
],
q(las) => [
- q(3807),
+ q(3798),
q(0),
],
q(lat) => [
@@ -72480,7 +72387,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lau) => [
- q(3808),
+ q(3799),
q(0),
],
q(lav) => [
@@ -72488,303 +72395,303 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(law) => [
- q(3809),
+ q(3800),
q(0),
],
q(lax) => [
- q(3810),
+ q(3801),
q(0),
],
q(lay) => [
- q(3811),
+ q(3802),
q(0),
],
q(laz) => [
- q(3812),
+ q(3803),
q(0),
],
q(lba) => [
- q(3813),
+ q(3804),
q(0),
],
q(lbb) => [
- q(3814),
+ q(3805),
q(0),
],
q(lbc) => [
- q(3815),
+ q(3806),
q(0),
],
q(lbe) => [
- q(3816),
+ q(3807),
q(0),
],
q(lbf) => [
- q(3817),
+ q(3808),
q(0),
],
q(lbg) => [
- q(3818),
+ q(3809),
q(0),
],
q(lbi) => [
- q(3819),
+ q(3810),
q(0),
],
q(lbj) => [
- q(3820),
+ q(3811),
q(0),
],
q(lbk) => [
- q(3821),
+ q(3812),
q(0),
],
q(lbl) => [
- q(3822),
+ q(3813),
q(0),
],
q(lbm) => [
- q(3823),
+ q(3814),
q(0),
],
q(lbn) => [
- q(3824),
+ q(3815),
q(0),
],
q(lbo) => [
- q(3825),
+ q(3816),
q(0),
],
q(lbq) => [
- q(3826),
+ q(3817),
q(0),
],
q(lbr) => [
- q(3827),
+ q(3818),
q(0),
],
q(lbs) => [
- q(3828),
+ q(3819),
q(0),
],
q(lbt) => [
- q(3829),
+ q(3820),
q(0),
],
q(lbu) => [
- q(3830),
+ q(3821),
q(0),
],
q(lbv) => [
- q(3831),
+ q(3822),
q(0),
],
q(lbw) => [
- q(3832),
+ q(3823),
q(0),
],
q(lbx) => [
- q(3833),
+ q(3824),
q(0),
],
q(lby) => [
- q(3834),
+ q(3825),
q(0),
],
q(lbz) => [
- q(3835),
+ q(3826),
q(0),
],
q(lcc) => [
- q(3836),
+ q(3827),
q(0),
],
q(lcd) => [
- q(3837),
+ q(3828),
q(0),
],
q(lce) => [
- q(3838),
+ q(3829),
q(0),
],
q(lcf) => [
- q(3839),
+ q(3830),
q(0),
],
q(lch) => [
- q(3840),
+ q(3831),
q(0),
],
q(lcl) => [
- q(3841),
+ q(3832),
q(0),
],
q(lcm) => [
- q(3842),
+ q(3833),
q(0),
],
q(lcp) => [
- q(3843),
+ q(3834),
q(0),
],
q(lcq) => [
- q(3844),
+ q(3835),
q(0),
],
q(lcs) => [
- q(3845),
+ q(3836),
q(0),
],
q(lda) => [
- q(3846),
+ q(3837),
q(0),
],
q(ldb) => [
- q(3847),
+ q(3838),
q(0),
],
q(ldd) => [
- q(3848),
+ q(3839),
q(0),
],
q(ldg) => [
- q(3849),
+ q(3840),
q(0),
],
q(ldh) => [
- q(3850),
+ q(3841),
q(0),
],
q(ldi) => [
- q(3851),
+ q(3842),
q(0),
],
q(ldj) => [
- q(3852),
+ q(3843),
q(0),
],
q(ldk) => [
- q(3853),
+ q(3844),
q(0),
],
q(ldl) => [
- q(3854),
+ q(3845),
q(0),
],
q(ldm) => [
- q(3855),
+ q(3846),
q(0),
],
q(ldn) => [
- q(3856),
+ q(3847),
q(0),
],
q(ldo) => [
- q(3857),
+ q(3848),
q(0),
],
q(ldp) => [
- q(3858),
+ q(3849),
q(0),
],
q(ldq) => [
- q(3859),
+ q(3850),
q(0),
],
q(lea) => [
- q(3860),
+ q(3851),
q(0),
],
q(leb) => [
- q(3861),
+ q(3852),
q(0),
],
q(lec) => [
- q(3862),
+ q(3853),
q(0),
],
q(led) => [
- q(3863),
+ q(3854),
q(0),
],
q(lee) => [
- q(3864),
+ q(3855),
q(0),
],
q(lef) => [
- q(3865),
+ q(3856),
q(0),
],
q(leh) => [
- q(3866),
+ q(3857),
q(0),
],
q(lei) => [
- q(3867),
+ q(3858),
q(0),
],
q(lej) => [
- q(3868),
+ q(3859),
q(0),
],
q(lek) => [
- q(3869),
+ q(3860),
q(0),
],
q(lel) => [
- q(3870),
+ q(3861),
q(0),
],
q(lem) => [
- q(3871),
+ q(3862),
q(0),
],
q(len) => [
- q(3872),
+ q(3863),
q(0),
],
q(leo) => [
- q(3873),
+ q(3864),
q(0),
],
q(lep) => [
- q(3874),
+ q(3865),
q(0),
],
q(leq) => [
- q(3875),
+ q(3866),
q(0),
],
q(ler) => [
- q(3876),
+ q(3867),
q(0),
],
q(les) => [
- q(3877),
+ q(3868),
q(0),
],
q(let) => [
- q(3878),
+ q(3869),
q(0),
],
q(leu) => [
- q(3879),
+ q(3870),
q(0),
],
q(lev) => [
- q(3880),
+ q(3871),
q(0),
],
q(lew) => [
- q(3881),
+ q(3872),
q(0),
],
q(lex) => [
- q(3882),
+ q(3873),
q(0),
],
q(ley) => [
- q(3883),
+ q(3874),
q(0),
],
q(lez) => [
@@ -72792,151 +72699,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lfa) => [
- q(3884),
+ q(3875),
q(0),
],
q(lfn) => [
- q(3885),
+ q(3876),
q(0),
],
q(lga) => [
- q(3886),
+ q(3877),
q(0),
],
q(lgb) => [
- q(3887),
+ q(3878),
q(0),
],
q(lgg) => [
- q(3888),
+ q(3879),
q(0),
],
q(lgh) => [
- q(3889),
+ q(3880),
q(0),
],
q(lgi) => [
- q(3890),
+ q(3881),
q(0),
],
q(lgk) => [
- q(3891),
+ q(3882),
q(0),
],
q(lgl) => [
- q(3892),
+ q(3883),
q(0),
],
q(lgm) => [
- q(3893),
+ q(3884),
q(0),
],
q(lgn) => [
- q(3894),
+ q(3885),
q(0),
],
q(lgq) => [
- q(3895),
+ q(3886),
q(0),
],
q(lgr) => [
- q(3896),
+ q(3887),
q(0),
],
q(lgt) => [
- q(3897),
+ q(3888),
q(0),
],
q(lgu) => [
- q(3898),
+ q(3889),
q(0),
],
q(lgz) => [
- q(3899),
+ q(3890),
q(0),
],
q(lha) => [
- q(3900),
+ q(3891),
q(0),
],
q(lhh) => [
- q(3901),
+ q(3892),
q(0),
],
q(lhi) => [
- q(3902),
+ q(3893),
q(0),
],
q(lhl) => [
- q(3903),
+ q(3894),
q(0),
],
q(lhm) => [
- q(3904),
+ q(3895),
q(0),
],
q(lhn) => [
- q(3905),
+ q(3896),
q(0),
],
q(lhp) => [
- q(3906),
+ q(3897),
q(0),
],
q(lhs) => [
- q(3907),
+ q(3898),
q(0),
],
q(lht) => [
- q(3908),
+ q(3899),
q(0),
],
q(lhu) => [
- q(3909),
+ q(3900),
q(0),
],
q(lia) => [
- q(3910),
+ q(3901),
q(0),
],
q(lib) => [
- q(3911),
+ q(3902),
q(0),
],
q(lic) => [
- q(3912),
+ q(3903),
q(0),
],
q(lid) => [
- q(3913),
+ q(3904),
q(0),
],
q(lie) => [
- q(3914),
+ q(3905),
q(0),
],
q(lif) => [
- q(3915),
+ q(3906),
q(0),
],
q(lig) => [
- q(3916),
+ q(3907),
q(0),
],
q(lih) => [
- q(3917),
+ q(3908),
q(0),
],
q(lij) => [
- q(3918),
+ q(3909),
q(0),
],
q(lik) => [
- q(3919),
+ q(3910),
q(0),
],
q(lil) => [
- q(3920),
+ q(3911),
q(0),
],
q(lim) => [
@@ -72948,23 +72855,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lio) => [
- q(3921),
+ q(3912),
q(0),
],
q(lip) => [
- q(3922),
+ q(3913),
q(0),
],
q(liq) => [
- q(3923),
+ q(3914),
q(0),
],
q(lir) => [
- q(3924),
+ q(3915),
q(0),
],
q(lis) => [
- q(3925),
+ q(3916),
q(0),
],
q(lit) => [
@@ -72972,395 +72879,395 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(liu) => [
- q(3926),
+ q(3917),
q(0),
],
q(liv) => [
- q(3927),
+ q(3918),
q(0),
],
q(liw) => [
- q(3928),
+ q(3919),
q(0),
],
q(lix) => [
- q(3929),
+ q(3920),
q(0),
],
q(liy) => [
- q(3930),
+ q(3921),
q(0),
],
q(liz) => [
- q(3931),
+ q(3922),
q(0),
],
q(lja) => [
- q(3932),
+ q(3923),
q(0),
],
q(lje) => [
- q(3933),
+ q(3924),
q(0),
],
q(lji) => [
- q(3934),
+ q(3925),
q(0),
],
q(ljl) => [
- q(3935),
+ q(3926),
q(0),
],
q(ljp) => [
- q(3936),
+ q(3927),
q(0),
],
q(ljw) => [
- q(3937),
+ q(3928),
q(0),
],
q(ljx) => [
- q(3938),
+ q(3929),
q(0),
],
q(lka) => [
- q(3939),
+ q(3930),
q(0),
],
q(lkb) => [
- q(3940),
+ q(3931),
q(0),
],
q(lkc) => [
- q(3941),
+ q(3932),
q(0),
],
q(lkd) => [
- q(3942),
+ q(3933),
q(0),
],
q(lke) => [
- q(3943),
+ q(3934),
q(0),
],
q(lkh) => [
- q(3944),
+ q(3935),
q(0),
],
q(lki) => [
- q(3945),
+ q(3936),
q(0),
],
q(lkj) => [
- q(3946),
+ q(3937),
q(0),
],
q(lkl) => [
- q(3947),
+ q(3938),
q(0),
],
q(lkm) => [
- q(3948),
+ q(3939),
q(0),
],
q(lkn) => [
- q(3949),
+ q(3940),
q(0),
],
q(lko) => [
- q(3950),
+ q(3941),
q(0),
],
q(lkr) => [
- q(3951),
+ q(3942),
q(0),
],
q(lks) => [
- q(3952),
+ q(3943),
q(0),
],
q(lkt) => [
- q(3953),
+ q(3944),
q(0),
],
q(lku) => [
- q(3954),
+ q(3945),
q(0),
],
q(lky) => [
- q(3955),
+ q(3946),
q(0),
],
q(lla) => [
- q(3956),
+ q(3947),
q(0),
],
q(llb) => [
- q(3957),
+ q(3948),
q(0),
],
q(llc) => [
- q(3958),
+ q(3949),
q(0),
],
q(lld) => [
- q(3959),
+ q(3950),
q(0),
],
q(lle) => [
- q(3960),
+ q(3951),
q(0),
],
q(llf) => [
- q(3961),
+ q(3952),
q(0),
],
q(llg) => [
- q(3962),
+ q(3953),
q(0),
],
q(llh) => [
- q(3963),
+ q(3954),
q(0),
],
q(lli) => [
- q(3964),
+ q(3955),
q(0),
],
q(llj) => [
- q(3965),
+ q(3956),
q(0),
],
q(llk) => [
- q(3966),
+ q(3957),
q(0),
],
q(lll) => [
- q(3967),
+ q(3958),
q(0),
],
q(llm) => [
- q(3968),
+ q(3959),
q(0),
],
q(lln) => [
- q(3969),
+ q(3960),
q(0),
],
q(llo) => [
- q(3970),
+ q(3961),
q(0),
],
q(llp) => [
- q(3971),
+ q(3962),
q(0),
],
q(llq) => [
- q(3972),
+ q(3963),
q(0),
],
q(lls) => [
- q(3973),
+ q(3964),
q(0),
],
q(llu) => [
- q(3974),
+ q(3965),
q(0),
],
q(llx) => [
- q(3975),
+ q(3966),
q(0),
],
q(lma) => [
- q(3976),
+ q(3967),
q(0),
],
q(lmb) => [
- q(3977),
+ q(3968),
q(0),
],
q(lmc) => [
- q(3978),
+ q(3969),
q(0),
],
q(lmd) => [
- q(3979),
+ q(3970),
q(0),
],
q(lme) => [
- q(3980),
+ q(3971),
q(0),
],
q(lmf) => [
- q(3981),
+ q(3972),
q(0),
],
q(lmg) => [
- q(3982),
+ q(3973),
q(0),
],
q(lmh) => [
- q(3983),
+ q(3974),
q(0),
],
q(lmi) => [
- q(3984),
+ q(3975),
q(0),
],
q(lmj) => [
- q(3985),
+ q(3976),
q(0),
],
q(lmk) => [
- q(3986),
+ q(3977),
q(0),
],
q(lml) => [
- q(3987),
+ q(3978),
q(0),
],
q(lmn) => [
- q(3988),
+ q(3979),
q(0),
],
q(lmo) => [
- q(3989),
+ q(3980),
q(0),
],
q(lmp) => [
- q(3990),
+ q(3981),
q(0),
],
q(lmq) => [
- q(3991),
+ q(3982),
q(0),
],
q(lmr) => [
- q(3992),
+ q(3983),
q(0),
],
q(lmu) => [
- q(3993),
+ q(3984),
q(0),
],
q(lmv) => [
- q(3994),
+ q(3985),
q(0),
],
q(lmw) => [
- q(3995),
+ q(3986),
q(0),
],
q(lmx) => [
- q(3996),
+ q(3987),
q(0),
],
q(lmy) => [
- q(3997),
+ q(3988),
q(0),
],
q(lmz) => [
- q(3998),
+ q(3989),
q(0),
],
q(lna) => [
- q(3999),
+ q(3990),
q(0),
],
q(lnb) => [
- q(4000),
+ q(3991),
q(0),
],
q(lnd) => [
- q(4001),
+ q(3992),
q(0),
],
q(lng) => [
- q(4002),
+ q(3993),
q(0),
],
q(lnh) => [
- q(4003),
+ q(3994),
q(0),
],
q(lni) => [
- q(4004),
+ q(3995),
q(0),
],
q(lnj) => [
- q(4005),
+ q(3996),
q(0),
],
q(lnl) => [
- q(4006),
+ q(3997),
q(0),
],
q(lnm) => [
- q(4007),
+ q(3998),
q(0),
],
q(lnn) => [
- q(4008),
+ q(3999),
q(0),
],
q(lno) => [
- q(4009),
+ q(4000),
q(0),
],
q(lns) => [
- q(4010),
+ q(4001),
q(0),
],
q(lnu) => [
- q(4011),
+ q(4002),
q(0),
],
q(lnw) => [
- q(4012),
+ q(4003),
q(0),
],
q(lnz) => [
- q(4013),
+ q(4004),
q(0),
],
q(loa) => [
- q(4014),
+ q(4005),
q(0),
],
q(lob) => [
- q(4015),
+ q(4006),
q(0),
],
q(loc) => [
- q(4016),
+ q(4007),
q(0),
],
q(loe) => [
- q(4017),
+ q(4008),
q(0),
],
q(lof) => [
- q(4018),
+ q(4009),
q(0),
],
q(log) => [
- q(4019),
+ q(4010),
q(0),
],
q(loh) => [
- q(4020),
+ q(4011),
q(0),
],
q(loi) => [
- q(4021),
+ q(4012),
q(0),
],
q(loj) => [
- q(4022),
+ q(4013),
q(0),
],
q(lok) => [
- q(4023),
+ q(4014),
q(0),
],
q(lol) => [
@@ -73368,55 +73275,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lom) => [
- q(4024),
+ q(4015),
q(0),
],
q(lon) => [
- q(4025),
+ q(4016),
q(0),
],
q(loo) => [
- q(4026),
+ q(4017),
q(0),
],
q(lop) => [
- q(4027),
+ q(4018),
q(0),
],
q(loq) => [
- q(4028),
+ q(4019),
q(0),
],
q(lor) => [
- q(4029),
+ q(4020),
q(0),
],
q(los) => [
- q(4030),
+ q(4021),
q(0),
],
q(lot) => [
- q(4031),
+ q(4022),
q(0),
],
q(lou) => [
- q(4032),
+ q(4023),
q(0),
],
q(lov) => [
- q(4033),
+ q(4024),
q(0),
],
q(low) => [
- q(4034),
+ q(4025),
q(0),
],
q(lox) => [
- q(4035),
+ q(4026),
q(0),
],
q(loy) => [
- q(4036),
+ q(4027),
q(0),
],
q(loz) => [
@@ -73424,163 +73331,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lpa) => [
- q(4037),
+ q(4028),
q(0),
],
q(lpe) => [
- q(4038),
+ q(4029),
q(0),
],
q(lpn) => [
- q(4039),
+ q(4030),
q(0),
],
q(lpo) => [
- q(4040),
+ q(4031),
q(0),
],
q(lpx) => [
- q(4041),
+ q(4032),
q(0),
],
q(lra) => [
- q(4042),
+ q(4033),
q(0),
],
q(lrc) => [
- q(4043),
+ q(4034),
q(0),
],
q(lre) => [
- q(4044),
+ q(4035),
q(0),
],
q(lrg) => [
- q(4045),
+ q(4036),
q(0),
],
q(lri) => [
- q(4046),
+ q(4037),
q(0),
],
q(lrk) => [
- q(4047),
+ q(4038),
q(0),
],
q(lrl) => [
- q(4048),
+ q(4039),
q(0),
],
q(lrm) => [
- q(4049),
+ q(4040),
q(0),
],
q(lrn) => [
- q(4050),
+ q(4041),
q(0),
],
q(lro) => [
- q(4051),
+ q(4042),
q(0),
],
q(lrr) => [
- q(4052),
+ q(4043),
q(0),
],
q(lrt) => [
- q(4053),
+ q(4044),
q(0),
],
q(lrv) => [
- q(4054),
+ q(4045),
q(0),
],
q(lrz) => [
- q(4055),
+ q(4046),
q(0),
],
q(lsa) => [
- q(4056),
+ q(4047),
q(0),
],
q(lsd) => [
- q(4057),
+ q(4048),
q(0),
],
q(lse) => [
- q(4058),
+ q(4049),
q(0),
],
q(lsg) => [
- q(4059),
+ q(4050),
q(0),
],
q(lsh) => [
- q(4060),
+ q(4051),
q(0),
],
q(lsi) => [
- q(4061),
+ q(4052),
q(0),
],
q(lsl) => [
- q(4062),
+ q(4053),
q(0),
],
q(lsm) => [
- q(4063),
+ q(4054),
q(0),
],
q(lso) => [
- q(4064),
+ q(4055),
q(0),
],
q(lsp) => [
- q(4065),
+ q(4056),
q(0),
],
q(lsr) => [
- q(4066),
+ q(4057),
q(0),
],
q(lss) => [
- q(4067),
+ q(4058),
q(0),
],
q(lst) => [
- q(4068),
+ q(4059),
q(0),
],
q(lsy) => [
- q(4069),
+ q(4060),
q(0),
],
q(ltc) => [
- q(4070),
+ q(4061),
q(0),
],
q(ltg) => [
- q(4071),
+ q(4062),
q(0),
],
q(lti) => [
- q(4072),
+ q(4063),
q(0),
],
q(ltn) => [
- q(4073),
+ q(4064),
q(0),
],
q(lto) => [
- q(4074),
+ q(4065),
q(0),
],
q(lts) => [
- q(4075),
+ q(4066),
q(0),
],
q(ltu) => [
- q(4076),
+ q(4067),
q(0),
],
q(ltz) => [
@@ -73596,19 +73503,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(luc) => [
- q(4077),
+ q(4068),
q(0),
],
q(lud) => [
- q(4078),
+ q(4069),
q(0),
],
q(lue) => [
- q(4079),
+ q(4070),
q(0),
],
q(luf) => [
- q(4080),
+ q(4071),
q(0),
],
q(lug) => [
@@ -73620,19 +73527,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(luj) => [
- q(4081),
+ q(4072),
q(0),
],
q(luk) => [
- q(4082),
+ q(4073),
q(0),
],
q(lul) => [
- q(4083),
+ q(4074),
q(0),
],
q(lum) => [
- q(4084),
+ q(4075),
q(0),
],
q(lun) => [
@@ -73644,15 +73551,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lup) => [
- q(4085),
+ q(4076),
q(0),
],
q(luq) => [
- q(4086),
+ q(4077),
q(0),
],
q(lur) => [
- q(4087),
+ q(4078),
q(0),
],
q(lus) => [
@@ -73660,119 +73567,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(lut) => [
- q(4088),
+ q(4079),
q(0),
],
q(luu) => [
- q(4089),
+ q(4080),
q(0),
],
q(luv) => [
- q(4090),
+ q(4081),
q(0),
],
q(luw) => [
- q(4091),
+ q(4082),
q(0),
],
q(luy) => [
- q(4092),
+ q(4083),
q(0),
],
q(luz) => [
- q(4093),
+ q(4084),
q(0),
],
q(lva) => [
- q(4094),
+ q(4085),
q(0),
],
q(lvk) => [
- q(4095),
+ q(4086),
q(0),
],
q(lvs) => [
- q(4096),
+ q(4087),
q(0),
],
q(lvu) => [
- q(4097),
+ q(4088),
q(0),
],
q(lwa) => [
- q(4098),
+ q(4089),
q(0),
],
q(lwe) => [
- q(4099),
+ q(4090),
q(0),
],
q(lwg) => [
- q(4100),
+ q(4091),
q(0),
],
q(lwh) => [
- q(4101),
+ q(4092),
q(0),
],
q(lwl) => [
- q(4102),
+ q(4093),
q(0),
],
q(lwm) => [
- q(4103),
+ q(4094),
q(0),
],
q(lwo) => [
- q(4104),
+ q(4095),
q(0),
],
q(lwt) => [
- q(4105),
+ q(4096),
q(0),
],
q(lwu) => [
- q(4106),
+ q(4097),
q(0),
],
q(lww) => [
- q(4107),
+ q(4098),
q(0),
],
q(lya) => [
- q(4108),
+ q(4099),
q(0),
],
q(lyg) => [
- q(4109),
+ q(4100),
q(0),
],
q(lyn) => [
- q(4110),
+ q(4101),
q(0),
],
q(lzh) => [
- q(4111),
+ q(4102),
q(0),
],
q(lzl) => [
- q(4112),
+ q(4103),
q(0),
],
q(lzn) => [
- q(4113),
+ q(4104),
q(0),
],
q(lzz) => [
- q(4114),
+ q(4105),
q(0),
],
q(maa) => [
- q(4115),
+ q(4106),
q(0),
],
q(mab) => [
- q(4116),
+ q(4107),
q(0),
],
q(mac) => [
@@ -73784,11 +73691,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mae) => [
- q(4117),
+ q(4108),
q(0),
],
q(maf) => [
- q(4118),
+ q(4109),
q(0),
],
q(mag) => [
@@ -73804,7 +73711,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(maj) => [
- q(4119),
+ q(4110),
q(0),
],
q(mak) => [
@@ -73816,7 +73723,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mam) => [
- q(4120),
+ q(4111),
q(0),
],
q(man) => [
@@ -73832,7 +73739,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(maq) => [
- q(4121),
+ q(4112),
q(0),
],
q(mar) => [
@@ -73844,23 +73751,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mat) => [
- q(4122),
+ q(4113),
q(0),
],
q(mau) => [
- q(4123),
+ q(4114),
q(0),
],
q(mav) => [
- q(4124),
+ q(4115),
q(0),
],
q(maw) => [
- q(4125),
+ q(4116),
q(0),
],
q(max) => [
- q(4126),
+ q(4117),
q(0),
],
q(may) => [
@@ -73868,231 +73775,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(maz) => [
- q(4127),
+ q(4118),
q(0),
],
q(mba) => [
- q(4128),
+ q(4119),
q(0),
],
q(mbb) => [
- q(4129),
+ q(4120),
q(0),
],
q(mbc) => [
- q(4130),
+ q(4121),
q(0),
],
q(mbd) => [
- q(4131),
+ q(4122),
q(0),
],
q(mbe) => [
- q(4132),
+ q(4123),
q(0),
],
q(mbf) => [
- q(4133),
+ q(4124),
q(0),
],
q(mbh) => [
- q(4134),
+ q(4125),
q(0),
],
q(mbi) => [
- q(4135),
+ q(4126),
q(0),
],
q(mbj) => [
- q(4136),
+ q(4127),
q(0),
],
q(mbk) => [
- q(4137),
+ q(4128),
q(0),
],
q(mbl) => [
- q(4138),
+ q(4129),
q(0),
],
q(mbm) => [
- q(4139),
+ q(4130),
q(0),
],
q(mbn) => [
- q(4140),
+ q(4131),
q(0),
],
q(mbo) => [
- q(4141),
+ q(4132),
q(0),
],
q(mbp) => [
- q(4142),
+ q(4133),
q(0),
],
q(mbq) => [
- q(4143),
+ q(4134),
q(0),
],
q(mbr) => [
- q(4144),
+ q(4135),
q(0),
],
q(mbs) => [
- q(4145),
+ q(4136),
q(0),
],
q(mbt) => [
- q(4146),
+ q(4137),
q(0),
],
q(mbu) => [
- q(4147),
+ q(4138),
q(0),
],
q(mbv) => [
- q(4148),
+ q(4139),
q(0),
],
q(mbw) => [
- q(4149),
+ q(4140),
q(0),
],
q(mbx) => [
- q(4150),
+ q(4141),
q(0),
],
q(mby) => [
- q(4151),
+ q(4142),
q(0),
],
q(mbz) => [
- q(4152),
+ q(4143),
q(0),
],
q(mca) => [
- q(4153),
+ q(4144),
q(0),
],
q(mcb) => [
- q(4154),
+ q(4145),
q(0),
],
q(mcc) => [
- q(4155),
+ q(4146),
q(0),
],
q(mcd) => [
- q(4156),
+ q(4147),
q(0),
],
q(mce) => [
- q(4157),
+ q(4148),
q(0),
],
q(mcf) => [
- q(4158),
+ q(4149),
q(0),
],
q(mcg) => [
- q(4159),
+ q(4150),
q(0),
],
q(mch) => [
- q(4160),
+ q(4151),
q(0),
],
q(mci) => [
- q(4161),
+ q(4152),
q(0),
],
q(mcj) => [
- q(4162),
+ q(4153),
q(0),
],
q(mck) => [
- q(4163),
+ q(4154),
q(0),
],
q(mcl) => [
- q(4164),
+ q(4155),
q(0),
],
q(mcm) => [
- q(4165),
+ q(4156),
q(0),
],
q(mcn) => [
- q(4166),
+ q(4157),
q(0),
],
q(mco) => [
- q(4167),
+ q(4158),
q(0),
],
q(mcp) => [
- q(4168),
+ q(4159),
q(0),
],
q(mcq) => [
- q(4169),
+ q(4160),
q(0),
],
q(mcr) => [
- q(4170),
+ q(4161),
q(0),
],
q(mcs) => [
- q(4171),
+ q(4162),
q(0),
],
q(mct) => [
- q(4172),
+ q(4163),
q(0),
],
q(mcu) => [
- q(4173),
+ q(4164),
q(0),
],
q(mcv) => [
- q(4174),
+ q(4165),
q(0),
],
q(mcw) => [
- q(4175),
+ q(4166),
q(0),
],
q(mcx) => [
- q(4176),
+ q(4167),
q(0),
],
q(mcy) => [
- q(4177),
+ q(4168),
q(0),
],
q(mcz) => [
- q(4178),
+ q(4169),
q(0),
],
q(mda) => [
- q(4179),
+ q(4170),
q(0),
],
q(mdb) => [
- q(4180),
+ q(4171),
q(0),
],
q(mdc) => [
- q(4181),
+ q(4172),
q(0),
],
q(mdd) => [
- q(4182),
+ q(4173),
q(0),
],
q(mde) => [
- q(4183),
+ q(4174),
q(0),
],
q(mdf) => [
@@ -74100,43 +74007,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mdg) => [
- q(4184),
+ q(4175),
q(0),
],
q(mdh) => [
- q(4185),
+ q(4176),
q(0),
],
q(mdi) => [
- q(4186),
+ q(4177),
q(0),
],
q(mdj) => [
- q(4187),
+ q(4178),
q(0),
],
q(mdk) => [
- q(4188),
+ q(4179),
q(0),
],
q(mdl) => [
- q(4189),
+ q(4180),
q(0),
],
q(mdm) => [
- q(4190),
+ q(4181),
q(0),
],
q(mdn) => [
- q(4191),
+ q(4182),
q(0),
],
q(mdp) => [
- q(4192),
+ q(4183),
q(0),
],
q(mdq) => [
- q(4193),
+ q(4184),
q(0),
],
q(mdr) => [
@@ -74144,83 +74051,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mds) => [
- q(4194),
+ q(4185),
q(0),
],
q(mdt) => [
- q(4195),
+ q(4186),
q(0),
],
q(mdu) => [
- q(4196),
+ q(4187),
q(0),
],
q(mdv) => [
- q(4197),
+ q(4188),
q(0),
],
q(mdw) => [
- q(4198),
+ q(4189),
q(0),
],
q(mdx) => [
- q(4199),
+ q(4190),
q(0),
],
q(mdy) => [
- q(4200),
+ q(4191),
q(0),
],
q(mdz) => [
- q(4201),
+ q(4192),
q(0),
],
q(mea) => [
- q(4202),
+ q(4193),
q(0),
],
q(meb) => [
- q(4203),
+ q(4194),
q(0),
],
q(mec) => [
- q(4204),
+ q(4195),
q(0),
],
q(med) => [
- q(4205),
+ q(4196),
q(0),
],
q(mee) => [
- q(4206),
+ q(4197),
q(0),
],
q(mef) => [
- q(4207),
+ q(4198),
q(0),
],
q(meh) => [
- q(4208),
+ q(4199),
q(0),
],
q(mei) => [
- q(4209),
+ q(4200),
q(0),
],
q(mej) => [
- q(4210),
+ q(4201),
q(0),
],
q(mek) => [
- q(4211),
+ q(4202),
q(0),
],
q(mel) => [
- q(4212),
+ q(4203),
q(0),
],
q(mem) => [
- q(4213),
+ q(4204),
q(0),
],
q(men) => [
@@ -74228,151 +74135,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(meo) => [
- q(4214),
+ q(4205),
q(0),
],
q(mep) => [
- q(4215),
+ q(4206),
q(0),
],
q(meq) => [
- q(4216),
+ q(4207),
q(0),
],
q(mer) => [
- q(4217),
+ q(4208),
q(0),
],
q(mes) => [
- q(4218),
+ q(4209),
q(0),
],
q(met) => [
- q(4219),
+ q(4210),
q(0),
],
q(meu) => [
- q(4220),
+ q(4211),
q(0),
],
q(mev) => [
- q(4221),
+ q(4212),
q(0),
],
q(mew) => [
- q(4222),
+ q(4213),
q(0),
],
q(mey) => [
- q(4223),
+ q(4214),
q(0),
],
q(mez) => [
- q(4224),
+ q(4215),
q(0),
],
q(mfa) => [
- q(4225),
+ q(4216),
q(0),
],
q(mfb) => [
- q(4226),
+ q(4217),
q(0),
],
q(mfc) => [
- q(4227),
+ q(4218),
q(0),
],
q(mfd) => [
- q(4228),
+ q(4219),
q(0),
],
q(mfe) => [
- q(4229),
+ q(4220),
q(0),
],
q(mff) => [
- q(4230),
+ q(4221),
q(0),
],
q(mfg) => [
- q(4231),
+ q(4222),
q(0),
],
q(mfh) => [
- q(4232),
+ q(4223),
q(0),
],
q(mfi) => [
- q(4233),
+ q(4224),
q(0),
],
q(mfj) => [
- q(4234),
+ q(4225),
q(0),
],
q(mfk) => [
- q(4235),
+ q(4226),
q(0),
],
q(mfl) => [
- q(4236),
+ q(4227),
q(0),
],
q(mfm) => [
- q(4237),
+ q(4228),
q(0),
],
q(mfn) => [
- q(4238),
+ q(4229),
q(0),
],
q(mfo) => [
- q(4239),
+ q(4230),
q(0),
],
q(mfp) => [
- q(4240),
+ q(4231),
q(0),
],
q(mfq) => [
- q(4241),
+ q(4232),
q(0),
],
q(mfr) => [
- q(4242),
+ q(4233),
q(0),
],
q(mfs) => [
- q(4243),
+ q(4234),
q(0),
],
q(mft) => [
- q(4244),
+ q(4235),
q(0),
],
q(mfu) => [
- q(4245),
+ q(4236),
q(0),
],
q(mfv) => [
- q(4246),
+ q(4237),
q(0),
],
q(mfw) => [
- q(4247),
+ q(4238),
q(0),
],
q(mfx) => [
- q(4248),
+ q(4239),
q(0),
],
q(mfy) => [
- q(4249),
+ q(4240),
q(0),
],
q(mfz) => [
- q(4250),
+ q(4241),
q(0),
],
q(mga) => [
@@ -74380,203 +74287,203 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(mgb) => [
- q(4251),
+ q(4242),
q(0),
],
q(mgc) => [
- q(4252),
+ q(4243),
q(0),
],
q(mgd) => [
- q(4253),
+ q(4244),
q(0),
],
q(mge) => [
- q(4254),
+ q(4245),
q(0),
],
q(mgf) => [
- q(4255),
+ q(4246),
q(0),
],
q(mgg) => [
- q(4256),
+ q(4247),
q(0),
],
q(mgh) => [
- q(4257),
+ q(4248),
q(0),
],
q(mgi) => [
- q(4258),
+ q(4249),
q(0),
],
q(mgj) => [
- q(4259),
+ q(4250),
q(0),
],
q(mgk) => [
- q(4260),
+ q(4251),
q(0),
],
q(mgl) => [
- q(4261),
+ q(4252),
q(0),
],
q(mgm) => [
- q(4262),
+ q(4253),
q(0),
],
q(mgn) => [
- q(4263),
+ q(4254),
q(0),
],
q(mgo) => [
- q(4264),
+ q(4255),
q(0),
],
q(mgp) => [
- q(4265),
+ q(4256),
q(0),
],
q(mgq) => [
- q(4266),
+ q(4257),
q(0),
],
q(mgr) => [
- q(4267),
+ q(4258),
q(0),
],
q(mgs) => [
- q(4268),
+ q(4259),
q(0),
],
q(mgt) => [
- q(4269),
+ q(4260),
q(0),
],
q(mgu) => [
- q(4270),
+ q(4261),
q(0),
],
q(mgv) => [
- q(4271),
+ q(4262),
q(0),
],
q(mgw) => [
- q(4272),
+ q(4263),
q(0),
],
q(mgy) => [
- q(4273),
+ q(4264),
q(0),
],
q(mgz) => [
- q(4274),
+ q(4265),
q(0),
],
q(mha) => [
- q(4275),
+ q(4266),
q(0),
],
q(mhb) => [
- q(4276),
+ q(4267),
q(0),
],
q(mhc) => [
- q(4277),
+ q(4268),
q(0),
],
q(mhd) => [
- q(4278),
+ q(4269),
q(0),
],
q(mhe) => [
- q(4279),
+ q(4270),
q(0),
],
q(mhf) => [
- q(4280),
+ q(4271),
q(0),
],
q(mhg) => [
- q(4281),
+ q(4272),
q(0),
],
q(mhi) => [
- q(4282),
+ q(4273),
q(0),
],
q(mhj) => [
- q(4283),
+ q(4274),
q(0),
],
q(mhk) => [
- q(4284),
+ q(4275),
q(0),
],
q(mhl) => [
- q(4285),
+ q(4276),
q(0),
],
q(mhm) => [
- q(4286),
+ q(4277),
q(0),
],
q(mhn) => [
- q(4287),
+ q(4278),
q(0),
],
q(mho) => [
- q(4288),
+ q(4279),
q(0),
],
q(mhp) => [
- q(4289),
+ q(4280),
q(0),
],
q(mhq) => [
- q(4290),
+ q(4281),
q(0),
],
q(mhr) => [
- q(4291),
+ q(4282),
q(0),
],
q(mhs) => [
- q(4292),
+ q(4283),
q(0),
],
q(mht) => [
- q(4293),
+ q(4284),
q(0),
],
q(mhu) => [
- q(4294),
+ q(4285),
q(0),
],
q(mhw) => [
- q(4295),
+ q(4286),
q(0),
],
q(mhx) => [
- q(4296),
+ q(4287),
q(0),
],
q(mhy) => [
- q(4297),
+ q(4288),
q(0),
],
q(mhz) => [
- q(4298),
+ q(4289),
q(0),
],
q(mia) => [
- q(4299),
+ q(4290),
q(0),
],
q(mib) => [
- q(4300),
+ q(4291),
q(0),
],
q(mic) => [
@@ -74584,43 +74491,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mid) => [
- q(4301),
+ q(4292),
q(0),
],
q(mie) => [
- q(4302),
+ q(4293),
q(0),
],
q(mif) => [
- q(4303),
+ q(4294),
q(0),
],
q(mig) => [
- q(4304),
+ q(4295),
q(0),
],
q(mih) => [
- q(4305),
+ q(4296),
q(0),
],
q(mii) => [
- q(4306),
+ q(4297),
q(0),
],
q(mij) => [
- q(4307),
+ q(4298),
q(0),
],
q(mik) => [
- q(4308),
+ q(4299),
q(0),
],
q(mil) => [
- q(4309),
+ q(4300),
q(0),
],
q(mim) => [
- q(4310),
+ q(4301),
q(0),
],
q(min) => [
@@ -74628,19 +74535,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mio) => [
- q(4311),
+ q(4302),
q(0),
],
q(mip) => [
- q(4312),
+ q(4303),
q(0),
],
q(miq) => [
- q(4313),
+ q(4304),
q(0),
],
q(mir) => [
- q(4314),
+ q(4305),
q(0),
],
q(mis) => [
@@ -74648,143 +74555,147 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mit) => [
- q(4315),
+ q(4306),
q(0),
],
q(miu) => [
- q(4316),
+ q(4307),
q(0),
],
q(miw) => [
- q(4317),
+ q(4308),
q(0),
],
q(mix) => [
- q(4318),
+ q(4309),
q(0),
],
q(miy) => [
- q(4319),
+ q(4310),
q(0),
],
q(miz) => [
- q(4320),
+ q(4311),
+ q(0),
+ ],
+ q(mjb) => [
+ q(4312),
q(0),
],
q(mjc) => [
- q(4321),
+ q(4313),
q(0),
],
q(mjd) => [
- q(4322),
+ q(4314),
q(0),
],
q(mje) => [
- q(4323),
+ q(4315),
q(0),
],
q(mjg) => [
- q(4324),
+ q(4316),
q(0),
],
q(mjh) => [
- q(4325),
+ q(4317),
q(0),
],
q(mji) => [
- q(4326),
+ q(4318),
q(0),
],
q(mjj) => [
- q(4327),
+ q(4319),
q(0),
],
q(mjk) => [
- q(4328),
+ q(4320),
q(0),
],
q(mjl) => [
- q(4329),
+ q(4321),
q(0),
],
q(mjm) => [
- q(4330),
+ q(4322),
q(0),
],
q(mjn) => [
- q(4331),
+ q(4323),
q(0),
],
q(mjo) => [
- q(4332),
+ q(4324),
q(0),
],
q(mjp) => [
- q(4333),
+ q(4325),
q(0),
],
q(mjq) => [
- q(4334),
+ q(4326),
q(0),
],
q(mjr) => [
- q(4335),
+ q(4327),
q(0),
],
q(mjs) => [
- q(4336),
+ q(4328),
q(0),
],
q(mjt) => [
- q(4337),
+ q(4329),
q(0),
],
q(mju) => [
- q(4338),
+ q(4330),
q(0),
],
q(mjv) => [
- q(4339),
+ q(4331),
q(0),
],
q(mjw) => [
- q(4340),
+ q(4332),
q(0),
],
q(mjx) => [
- q(4341),
+ q(4333),
q(0),
],
q(mjy) => [
- q(4342),
+ q(4334),
q(0),
],
q(mjz) => [
- q(4343),
+ q(4335),
q(0),
],
q(mka) => [
- q(4344),
+ q(4336),
q(0),
],
q(mkb) => [
- q(4345),
+ q(4337),
q(0),
],
q(mkc) => [
- q(4346),
+ q(4338),
q(0),
],
q(mke) => [
- q(4347),
+ q(4339),
q(0),
],
q(mkf) => [
- q(4348),
+ q(4340),
q(0),
],
q(mkg) => [
- q(4349),
+ q(4341),
q(0),
],
q(mkh) => [
@@ -74792,95 +74703,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mki) => [
- q(4350),
+ q(4342),
q(0),
],
q(mkj) => [
- q(4351),
+ q(4343),
q(0),
],
q(mkk) => [
- q(4352),
+ q(4344),
q(0),
],
q(mkl) => [
- q(4353),
+ q(4345),
q(0),
],
q(mkm) => [
- q(4354),
+ q(4346),
q(0),
],
q(mkn) => [
- q(4355),
+ q(4347),
q(0),
],
q(mko) => [
- q(4356),
+ q(4348),
q(0),
],
q(mkp) => [
- q(4357),
+ q(4349),
q(0),
],
q(mkq) => [
- q(4358),
+ q(4350),
q(0),
],
q(mkr) => [
- q(4359),
+ q(4351),
q(0),
],
q(mks) => [
- q(4360),
+ q(4352),
q(0),
],
q(mkt) => [
- q(4361),
+ q(4353),
q(0),
],
q(mku) => [
- q(4362),
+ q(4354),
q(0),
],
q(mkv) => [
- q(4363),
+ q(4355),
q(0),
],
q(mkw) => [
- q(4364),
+ q(4356),
q(0),
],
q(mkx) => [
- q(4365),
+ q(4357),
q(0),
],
q(mky) => [
- q(4366),
+ q(4358),
q(0),
],
q(mkz) => [
- q(4367),
+ q(4359),
q(0),
],
q(mla) => [
- q(4368),
+ q(4360),
q(0),
],
q(mlb) => [
- q(4369),
+ q(4361),
q(0),
],
q(mlc) => [
- q(4370),
+ q(4362),
q(0),
],
q(mle) => [
- q(4371),
+ q(4363),
q(0),
],
q(mlf) => [
- q(4372),
+ q(4364),
q(0),
],
q(mlg) => [
@@ -74888,51 +74799,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mlh) => [
- q(4373),
+ q(4365),
q(0),
],
q(mli) => [
- q(4374),
+ q(4366),
q(0),
],
q(mlj) => [
- q(4375),
+ q(4367),
q(0),
],
q(mlk) => [
- q(4376),
+ q(4368),
q(0),
],
q(mll) => [
- q(4377),
+ q(4369),
q(0),
],
q(mlm) => [
- q(4378),
+ q(4370),
q(0),
],
q(mln) => [
- q(4379),
+ q(4371),
q(0),
],
q(mlo) => [
- q(4380),
+ q(4372),
q(0),
],
q(mlp) => [
- q(4381),
+ q(4373),
q(0),
],
q(mlq) => [
- q(4382),
+ q(4374),
q(0),
],
q(mlr) => [
- q(4383),
+ q(4375),
q(0),
],
q(mls) => [
- q(4384),
+ q(4376),
q(0),
],
q(mlt) => [
@@ -74940,131 +74851,131 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mlu) => [
- q(4385),
+ q(4377),
q(0),
],
q(mlv) => [
- q(4386),
+ q(4378),
q(0),
],
q(mlw) => [
- q(4387),
+ q(4379),
q(0),
],
q(mlx) => [
- q(4388),
+ q(4380),
q(0),
],
q(mlz) => [
- q(4389),
+ q(4381),
q(0),
],
q(mma) => [
- q(4390),
+ q(4382),
q(0),
],
q(mmb) => [
- q(4391),
+ q(4383),
q(0),
],
q(mmc) => [
- q(4392),
+ q(4384),
q(0),
],
q(mmd) => [
- q(4393),
+ q(4385),
q(0),
],
q(mme) => [
- q(4394),
+ q(4386),
q(0),
],
q(mmf) => [
- q(4395),
+ q(4387),
q(0),
],
q(mmg) => [
- q(4396),
+ q(4388),
q(0),
],
q(mmh) => [
- q(4397),
+ q(4389),
q(0),
],
q(mmi) => [
- q(4398),
+ q(4390),
q(0),
],
q(mmj) => [
- q(4399),
+ q(4391),
q(0),
],
q(mmk) => [
- q(4400),
+ q(4392),
q(0),
],
q(mml) => [
- q(4401),
+ q(4393),
q(0),
],
q(mmm) => [
- q(4402),
+ q(4394),
q(0),
],
q(mmn) => [
- q(4403),
+ q(4395),
q(0),
],
q(mmo) => [
- q(4404),
+ q(4396),
q(0),
],
q(mmp) => [
- q(4405),
+ q(4397),
q(0),
],
q(mmq) => [
- q(4406),
+ q(4398),
q(0),
],
q(mmr) => [
- q(4407),
+ q(4399),
q(0),
],
q(mmt) => [
- q(4408),
+ q(4400),
q(0),
],
q(mmu) => [
- q(4409),
+ q(4401),
q(0),
],
q(mmv) => [
- q(4410),
+ q(4402),
q(0),
],
q(mmw) => [
- q(4411),
+ q(4403),
q(0),
],
q(mmx) => [
- q(4412),
+ q(4404),
q(0),
],
q(mmy) => [
- q(4413),
+ q(4405),
q(0),
],
q(mmz) => [
- q(4414),
+ q(4406),
q(0),
],
q(mna) => [
- q(4415),
+ q(4407),
q(0),
],
q(mnb) => [
- q(4416),
+ q(4408),
q(0),
],
q(mnc) => [
@@ -75072,23 +74983,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mnd) => [
- q(4417),
+ q(4409),
q(0),
],
q(mne) => [
- q(4418),
+ q(4410),
q(0),
],
q(mnf) => [
- q(4419),
+ q(4411),
q(0),
],
q(mng) => [
- q(4420),
+ q(4412),
q(0),
],
q(mnh) => [
- q(4421),
+ q(4413),
q(0),
],
q(mni) => [
@@ -75096,23 +75007,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mnj) => [
- q(4422),
+ q(4414),
q(0),
],
q(mnk) => [
- q(4423),
+ q(4415),
q(0),
],
q(mnl) => [
- q(4424),
+ q(4416),
q(0),
],
q(mnm) => [
- q(4425),
+ q(4417),
q(0),
],
q(mnn) => [
- q(4426),
+ q(4418),
q(0),
],
q(mno) => [
@@ -75120,63 +75031,63 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mnp) => [
- q(4427),
+ q(4419),
q(0),
],
q(mnq) => [
- q(4428),
+ q(4420),
q(0),
],
q(mnr) => [
- q(4429),
+ q(4421),
q(0),
],
q(mns) => [
- q(4430),
+ q(4422),
q(0),
],
q(mnu) => [
- q(4431),
+ q(4423),
q(0),
],
q(mnv) => [
- q(4432),
+ q(4424),
q(0),
],
q(mnw) => [
- q(4433),
+ q(4425),
q(0),
],
q(mnx) => [
- q(4434),
+ q(4426),
q(0),
],
q(mny) => [
- q(4435),
+ q(4427),
q(0),
],
q(mnz) => [
- q(4436),
+ q(4428),
q(0),
],
q(moa) => [
- q(4437),
+ q(4429),
q(0),
],
q(moc) => [
- q(4438),
+ q(4430),
q(0),
],
q(mod) => [
- q(4439),
+ q(4431),
q(0),
],
q(moe) => [
- q(4440),
+ q(4432),
q(0),
],
q(mog) => [
- q(4441),
+ q(4433),
q(0),
],
q(moh) => [
@@ -75184,19 +75095,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(moi) => [
- q(4442),
+ q(4434),
q(0),
],
q(moj) => [
- q(4443),
+ q(4435),
q(0),
],
q(mok) => [
- q(4444),
+ q(4436),
q(0),
],
q(mom) => [
- q(4445),
+ q(4437),
q(0),
],
q(mon) => [
@@ -75204,19 +75115,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(moo) => [
- q(4446),
+ q(4438),
q(0),
],
q(mop) => [
- q(4447),
+ q(4439),
q(0),
],
q(moq) => [
- q(4448),
+ q(4440),
q(0),
],
q(mor) => [
- q(4449),
+ q(4441),
q(0),
],
q(mos) => [
@@ -75228,563 +75139,563 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mou) => [
- q(4450),
+ q(4442),
q(0),
],
q(mov) => [
- q(4451),
+ q(4443),
q(0),
],
q(mow) => [
- q(4452),
+ q(4444),
q(0),
],
q(mox) => [
- q(4453),
+ q(4445),
q(0),
],
q(moy) => [
- q(4454),
+ q(4446),
q(0),
],
q(moz) => [
- q(4455),
+ q(4447),
q(0),
],
q(mpa) => [
- q(4456),
+ q(4448),
q(0),
],
q(mpb) => [
- q(4457),
+ q(4449),
q(0),
],
q(mpc) => [
- q(4458),
+ q(4450),
q(0),
],
q(mpd) => [
- q(4459),
+ q(4451),
q(0),
],
q(mpe) => [
- q(4460),
+ q(4452),
q(0),
],
q(mpg) => [
- q(4461),
+ q(4453),
q(0),
],
q(mph) => [
- q(4462),
+ q(4454),
q(0),
],
q(mpi) => [
- q(4463),
+ q(4455),
q(0),
],
q(mpj) => [
- q(4464),
+ q(4456),
q(0),
],
q(mpk) => [
- q(4465),
+ q(4457),
q(0),
],
q(mpl) => [
- q(4466),
+ q(4458),
q(0),
],
q(mpm) => [
- q(4467),
+ q(4459),
q(0),
],
q(mpn) => [
- q(4468),
+ q(4460),
q(0),
],
q(mpo) => [
- q(4469),
+ q(4461),
q(0),
],
q(mpp) => [
- q(4470),
+ q(4462),
q(0),
],
q(mpq) => [
- q(4471),
+ q(4463),
q(0),
],
q(mpr) => [
- q(4472),
+ q(4464),
q(0),
],
q(mps) => [
- q(4473),
+ q(4465),
q(0),
],
q(mpt) => [
- q(4474),
+ q(4466),
q(0),
],
q(mpu) => [
- q(4475),
+ q(4467),
q(0),
],
q(mpv) => [
- q(4476),
+ q(4468),
q(0),
],
q(mpw) => [
- q(4477),
+ q(4469),
q(0),
],
q(mpx) => [
- q(4478),
+ q(4470),
q(0),
],
q(mpy) => [
- q(4479),
+ q(4471),
q(0),
],
q(mpz) => [
- q(4480),
+ q(4472),
q(0),
],
q(mqa) => [
- q(4481),
+ q(4473),
q(0),
],
q(mqb) => [
- q(4482),
+ q(4474),
q(0),
],
q(mqc) => [
- q(4483),
+ q(4475),
q(0),
],
q(mqe) => [
- q(4484),
+ q(4476),
q(0),
],
q(mqf) => [
- q(4485),
+ q(4477),
q(0),
],
q(mqg) => [
- q(4486),
+ q(4478),
q(0),
],
q(mqh) => [
- q(4487),
+ q(4479),
q(0),
],
q(mqi) => [
- q(4488),
+ q(4480),
q(0),
],
q(mqj) => [
- q(4489),
+ q(4481),
q(0),
],
q(mqk) => [
- q(4490),
+ q(4482),
q(0),
],
q(mql) => [
- q(4491),
+ q(4483),
q(0),
],
q(mqm) => [
- q(4492),
+ q(4484),
q(0),
],
q(mqn) => [
- q(4493),
+ q(4485),
q(0),
],
q(mqo) => [
- q(4494),
+ q(4486),
q(0),
],
q(mqp) => [
- q(4495),
+ q(4487),
q(0),
],
q(mqq) => [
- q(4496),
+ q(4488),
q(0),
],
q(mqr) => [
- q(4497),
+ q(4489),
q(0),
],
q(mqs) => [
- q(4498),
+ q(4490),
q(0),
],
q(mqt) => [
- q(4499),
+ q(4491),
q(0),
],
q(mqu) => [
- q(4500),
+ q(4492),
q(0),
],
q(mqv) => [
- q(4501),
+ q(4493),
q(0),
],
q(mqw) => [
- q(4502),
+ q(4494),
q(0),
],
q(mqx) => [
- q(4503),
+ q(4495),
q(0),
],
q(mqy) => [
- q(4504),
+ q(4496),
q(0),
],
q(mqz) => [
- q(4505),
+ q(4497),
q(0),
],
q(mra) => [
- q(4506),
+ q(4498),
q(0),
],
q(mrb) => [
- q(4507),
+ q(4499),
q(0),
],
q(mrc) => [
- q(4508),
+ q(4500),
q(0),
],
q(mrd) => [
- q(4509),
+ q(4501),
q(0),
],
q(mre) => [
- q(4510),
+ q(4502),
q(0),
],
q(mrf) => [
- q(4511),
+ q(4503),
q(0),
],
q(mrg) => [
- q(4512),
+ q(4504),
q(0),
],
q(mrh) => [
- q(4513),
+ q(4505),
q(0),
],
q(mrj) => [
- q(4514),
+ q(4506),
q(0),
],
q(mrk) => [
- q(4515),
+ q(4507),
q(0),
],
q(mrl) => [
- q(4516),
+ q(4508),
q(0),
],
q(mrm) => [
- q(4517),
+ q(4509),
q(0),
],
q(mrn) => [
- q(4518),
+ q(4510),
q(0),
],
q(mro) => [
- q(4519),
+ q(4511),
q(0),
],
q(mrp) => [
- q(4520),
+ q(4512),
q(0),
],
q(mrq) => [
- q(4521),
+ q(4513),
q(0),
],
q(mrr) => [
- q(4522),
+ q(4514),
q(0),
],
q(mrs) => [
- q(4523),
+ q(4515),
q(0),
],
q(mrt) => [
- q(4524),
+ q(4516),
q(0),
],
q(mru) => [
- q(4525),
+ q(4517),
q(0),
],
q(mrv) => [
- q(4526),
+ q(4518),
q(0),
],
q(mrw) => [
- q(4527),
+ q(4519),
q(0),
],
q(mrx) => [
- q(4528),
+ q(4520),
q(0),
],
q(mry) => [
- q(4529),
+ q(4521),
q(0),
],
q(mrz) => [
- q(4530),
+ q(4522),
q(0),
],
q(msb) => [
- q(4531),
+ q(4523),
q(0),
],
q(msc) => [
- q(4532),
+ q(4524),
q(0),
],
q(msd) => [
- q(4533),
+ q(4525),
q(0),
],
q(mse) => [
- q(4534),
+ q(4526),
q(0),
],
q(msf) => [
- q(4535),
+ q(4527),
q(0),
],
q(msg) => [
- q(4536),
+ q(4528),
q(0),
],
q(msh) => [
- q(4537),
+ q(4529),
q(0),
],
q(msi) => [
- q(4538),
+ q(4530),
q(0),
],
q(msj) => [
- q(4539),
+ q(4531),
q(0),
],
q(msk) => [
- q(4540),
+ q(4532),
q(0),
],
q(msl) => [
- q(4541),
+ q(4533),
q(0),
],
q(msm) => [
- q(4542),
+ q(4534),
q(0),
],
q(msn) => [
- q(4543),
+ q(4535),
q(0),
],
q(mso) => [
- q(4544),
+ q(4536),
q(0),
],
q(msp) => [
- q(4545),
+ q(4537),
q(0),
],
q(msq) => [
- q(4546),
+ q(4538),
q(0),
],
q(msr) => [
- q(4547),
+ q(4539),
q(0),
],
q(mss) => [
- q(4548),
+ q(4540),
q(0),
],
q(msu) => [
- q(4549),
+ q(4541),
q(0),
],
q(msv) => [
- q(4550),
+ q(4542),
q(0),
],
q(msw) => [
- q(4551),
+ q(4543),
q(0),
],
q(msx) => [
- q(4552),
+ q(4544),
q(0),
],
q(msy) => [
- q(4553),
+ q(4545),
q(0),
],
q(msz) => [
- q(4554),
+ q(4546),
q(0),
],
q(mta) => [
- q(4555),
+ q(4547),
q(0),
],
q(mtb) => [
- q(4556),
+ q(4548),
q(0),
],
q(mtc) => [
- q(4557),
+ q(4549),
q(0),
],
q(mtd) => [
- q(4558),
+ q(4550),
q(0),
],
q(mte) => [
- q(4559),
+ q(4551),
q(0),
],
q(mtf) => [
- q(4560),
+ q(4552),
q(0),
],
q(mtg) => [
- q(4561),
+ q(4553),
q(0),
],
q(mth) => [
- q(4562),
+ q(4554),
q(0),
],
q(mti) => [
- q(4563),
+ q(4555),
q(0),
],
q(mtj) => [
- q(4564),
+ q(4556),
q(0),
],
q(mtk) => [
- q(4565),
+ q(4557),
q(0),
],
q(mtl) => [
- q(4566),
+ q(4558),
q(0),
],
q(mtm) => [
- q(4567),
+ q(4559),
q(0),
],
q(mtn) => [
- q(4568),
+ q(4560),
q(0),
],
q(mto) => [
- q(4569),
+ q(4561),
q(0),
],
q(mtp) => [
- q(4570),
+ q(4562),
q(0),
],
q(mtq) => [
- q(4571),
+ q(4563),
q(0),
],
q(mtr) => [
- q(4572),
+ q(4564),
q(0),
],
q(mts) => [
- q(4573),
+ q(4565),
q(0),
],
q(mtt) => [
- q(4574),
+ q(4566),
q(0),
],
q(mtu) => [
- q(4575),
+ q(4567),
q(0),
],
q(mtv) => [
- q(4576),
+ q(4568),
q(0),
],
q(mtw) => [
- q(4577),
+ q(4569),
q(0),
],
q(mtx) => [
- q(4578),
+ q(4570),
q(0),
],
q(mty) => [
- q(4579),
+ q(4571),
q(0),
],
q(mua) => [
- q(4580),
+ q(4572),
q(0),
],
q(mub) => [
- q(4581),
+ q(4573),
q(0),
],
q(muc) => [
- q(4582),
+ q(4574),
q(0),
],
q(mud) => [
- q(4583),
+ q(4575),
q(0),
],
q(mue) => [
- q(4584),
+ q(4576),
q(0),
],
q(mug) => [
- q(4585),
+ q(4577),
q(0),
],
q(muh) => [
- q(4586),
+ q(4578),
q(0),
],
q(mui) => [
- q(4587),
+ q(4579),
q(0),
],
q(muj) => [
- q(4588),
+ q(4580),
q(0),
],
q(muk) => [
- q(4589),
+ q(4581),
q(0),
],
q(mul) => [
@@ -75792,7 +75703,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mum) => [
- q(4590),
+ q(4582),
q(0),
],
q(mun) => [
@@ -75800,19 +75711,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(muo) => [
- q(4591),
+ q(4583),
q(0),
],
q(mup) => [
- q(4592),
+ q(4584),
q(0),
],
q(muq) => [
- q(4593),
+ q(4585),
q(0),
],
q(mur) => [
- q(4594),
+ q(4586),
q(0),
],
q(mus) => [
@@ -75820,159 +75731,159 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mut) => [
- q(4595),
+ q(4587),
q(0),
],
q(muu) => [
- q(4596),
+ q(4588),
q(0),
],
q(muv) => [
- q(4597),
+ q(4589),
q(0),
],
q(mux) => [
- q(4598),
+ q(4590),
q(0),
],
q(muy) => [
- q(4599),
+ q(4591),
q(0),
],
q(muz) => [
- q(4600),
+ q(4592),
q(0),
],
q(mva) => [
- q(4601),
+ q(4593),
q(0),
],
q(mvb) => [
- q(4602),
+ q(4594),
q(0),
],
q(mvd) => [
- q(4603),
+ q(4595),
q(0),
],
q(mve) => [
- q(4604),
+ q(4596),
q(0),
],
q(mvf) => [
- q(4605),
+ q(4597),
q(0),
],
q(mvg) => [
- q(4606),
+ q(4598),
q(0),
],
q(mvh) => [
- q(4607),
+ q(4599),
q(0),
],
q(mvi) => [
- q(4608),
+ q(4600),
q(0),
],
q(mvk) => [
- q(4609),
+ q(4601),
q(0),
],
q(mvl) => [
- q(4610),
+ q(4602),
q(0),
],
q(mvm) => [
- q(4611),
+ q(4603),
q(0),
],
q(mvn) => [
- q(4612),
+ q(4604),
q(0),
],
q(mvo) => [
- q(4613),
+ q(4605),
q(0),
],
q(mvp) => [
- q(4614),
+ q(4606),
q(0),
],
q(mvq) => [
- q(4615),
+ q(4607),
q(0),
],
q(mvr) => [
- q(4616),
+ q(4608),
q(0),
],
q(mvs) => [
- q(4617),
+ q(4609),
q(0),
],
q(mvt) => [
- q(4618),
+ q(4610),
q(0),
],
q(mvu) => [
- q(4619),
+ q(4611),
q(0),
],
q(mvv) => [
- q(4620),
+ q(4612),
q(0),
],
q(mvw) => [
- q(4621),
+ q(4613),
q(0),
],
q(mvx) => [
- q(4622),
+ q(4614),
q(0),
],
q(mvy) => [
- q(4623),
+ q(4615),
q(0),
],
q(mvz) => [
- q(4624),
+ q(4616),
q(0),
],
q(mwa) => [
- q(4625),
+ q(4617),
q(0),
],
q(mwb) => [
- q(4626),
+ q(4618),
q(0),
],
q(mwc) => [
- q(4627),
+ q(4619),
q(0),
],
q(mwe) => [
- q(4628),
+ q(4620),
q(0),
],
q(mwf) => [
- q(4629),
+ q(4621),
q(0),
],
q(mwg) => [
- q(4630),
+ q(4622),
q(0),
],
q(mwh) => [
- q(4631),
+ q(4623),
q(0),
],
q(mwi) => [
- q(4632),
+ q(4624),
q(0),
],
q(mwk) => [
- q(4633),
+ q(4625),
q(0),
],
q(mwl) => [
@@ -75980,23 +75891,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mwm) => [
- q(4634),
+ q(4626),
q(0),
],
q(mwn) => [
- q(4635),
+ q(4627),
q(0),
],
q(mwo) => [
- q(4636),
+ q(4628),
q(0),
],
q(mwp) => [
- q(4637),
+ q(4629),
q(0),
],
q(mwq) => [
- q(4638),
+ q(4630),
q(0),
],
q(mwr) => [
@@ -76004,187 +75915,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(mws) => [
- q(4639),
+ q(4631),
q(0),
],
q(mwt) => [
- q(4640),
+ q(4632),
q(0),
],
q(mwu) => [
- q(4641),
+ q(4633),
q(0),
],
q(mwv) => [
- q(4642),
+ q(4634),
q(0),
],
q(mww) => [
- q(4643),
+ q(4635),
q(0),
],
q(mwx) => [
- q(4644),
+ q(4636),
q(0),
],
q(mwy) => [
- q(4645),
+ q(4637),
q(0),
],
q(mwz) => [
- q(4646),
+ q(4638),
q(0),
],
q(mxa) => [
- q(4647),
+ q(4639),
q(0),
],
q(mxb) => [
- q(4648),
+ q(4640),
q(0),
],
q(mxc) => [
- q(4649),
+ q(4641),
q(0),
],
q(mxd) => [
- q(4650),
+ q(4642),
q(0),
],
q(mxe) => [
- q(4651),
+ q(4643),
q(0),
],
q(mxf) => [
- q(4652),
+ q(4644),
q(0),
],
q(mxg) => [
- q(4653),
+ q(4645),
q(0),
],
q(mxh) => [
- q(4654),
+ q(4646),
q(0),
],
q(mxi) => [
- q(4655),
+ q(4647),
q(0),
],
q(mxj) => [
- q(4656),
+ q(4648),
q(0),
],
q(mxk) => [
- q(4657),
+ q(4649),
q(0),
],
q(mxl) => [
- q(4658),
+ q(4650),
q(0),
],
q(mxm) => [
- q(4659),
+ q(4651),
q(0),
],
q(mxn) => [
- q(4660),
+ q(4652),
q(0),
],
q(mxo) => [
- q(4661),
+ q(4653),
q(0),
],
q(mxp) => [
- q(4662),
+ q(4654),
q(0),
],
q(mxq) => [
- q(4663),
+ q(4655),
q(0),
],
q(mxr) => [
- q(4664),
+ q(4656),
q(0),
],
q(mxs) => [
- q(4665),
+ q(4657),
q(0),
],
q(mxt) => [
- q(4666),
+ q(4658),
q(0),
],
q(mxu) => [
- q(4667),
+ q(4659),
q(0),
],
q(mxv) => [
- q(4668),
+ q(4660),
q(0),
],
q(mxw) => [
- q(4669),
+ q(4661),
q(0),
],
q(mxx) => [
- q(4670),
+ q(4662),
q(0),
],
q(mxy) => [
- q(4671),
+ q(4663),
q(0),
],
q(mxz) => [
- q(4672),
+ q(4664),
q(0),
],
q(myb) => [
- q(4673),
+ q(4665),
q(0),
],
q(myc) => [
- q(4674),
+ q(4666),
q(0),
],
q(myd) => [
- q(4675),
+ q(4667),
q(0),
],
q(mye) => [
- q(4676),
+ q(4668),
q(0),
],
q(myf) => [
- q(4677),
+ q(4669),
q(0),
],
q(myg) => [
- q(4678),
+ q(4670),
q(0),
],
q(myh) => [
- q(4679),
+ q(4671),
q(0),
],
q(myi) => [
- q(4680),
+ q(4672),
q(0),
],
q(myj) => [
- q(4681),
+ q(4673),
q(0),
],
q(myk) => [
- q(4682),
+ q(4674),
q(0),
],
q(myl) => [
- q(4683),
+ q(4675),
q(0),
],
q(mym) => [
- q(4684),
+ q(4676),
q(0),
],
q(myn) => [
@@ -76192,23 +76103,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(myo) => [
- q(4685),
+ q(4677),
q(0),
],
q(myp) => [
- q(4686),
+ q(4678),
q(0),
],
q(myr) => [
- q(4687),
+ q(4679),
q(0),
],
q(mys) => [
- q(4688),
+ q(4680),
q(0),
],
q(myu) => [
- q(4689),
+ q(4681),
q(0),
],
q(myv) => [
@@ -76216,147 +76127,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(myw) => [
- q(4690),
+ q(4682),
q(0),
],
q(myx) => [
- q(4691),
+ q(4683),
q(0),
],
q(myy) => [
- q(4692),
+ q(4684),
q(0),
],
q(myz) => [
- q(4693),
+ q(4685),
q(0),
],
q(mza) => [
- q(4694),
+ q(4686),
q(0),
],
q(mzb) => [
- q(4695),
+ q(4687),
q(0),
],
q(mzc) => [
- q(4696),
+ q(4688),
q(0),
],
q(mzd) => [
- q(4697),
+ q(4689),
q(0),
],
q(mze) => [
- q(4698),
+ q(4690),
q(0),
],
q(mzg) => [
- q(4699),
+ q(4691),
q(0),
],
q(mzh) => [
- q(4700),
+ q(4692),
q(0),
],
q(mzi) => [
- q(4701),
+ q(4693),
q(0),
],
q(mzj) => [
- q(4702),
+ q(4694),
q(0),
],
q(mzk) => [
- q(4703),
+ q(4695),
q(0),
],
q(mzl) => [
- q(4704),
+ q(4696),
q(0),
],
q(mzm) => [
- q(4705),
+ q(4697),
q(0),
],
q(mzn) => [
- q(4706),
+ q(4698),
q(0),
],
q(mzo) => [
- q(4707),
+ q(4699),
q(0),
],
q(mzp) => [
- q(4708),
+ q(4700),
q(0),
],
q(mzq) => [
- q(4709),
+ q(4701),
q(0),
],
q(mzr) => [
- q(4710),
+ q(4702),
q(0),
],
q(mzs) => [
- q(4711),
+ q(4703),
q(0),
],
q(mzt) => [
- q(4712),
+ q(4704),
q(0),
],
q(mzu) => [
- q(4713),
+ q(4705),
q(0),
],
q(mzv) => [
- q(4714),
+ q(4706),
q(0),
],
q(mzw) => [
- q(4715),
+ q(4707),
q(0),
],
q(mzx) => [
- q(4716),
+ q(4708),
q(0),
],
q(mzy) => [
- q(4717),
+ q(4709),
q(0),
],
q(mzz) => [
- q(4718),
+ q(4710),
q(0),
],
q(naa) => [
- q(4719),
+ q(4711),
q(0),
],
q(nab) => [
- q(4720),
+ q(4712),
q(0),
],
q(nac) => [
- q(4721),
- q(0),
- ],
- q(nad) => [
- q(4722),
+ q(4713),
q(0),
],
q(nae) => [
- q(4723),
+ q(4714),
q(0),
],
q(naf) => [
- q(4724),
+ q(4715),
q(0),
],
q(nag) => [
- q(4725),
+ q(4716),
q(0),
],
q(nah) => [
@@ -76368,27 +76275,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(naj) => [
- q(4726),
+ q(4717),
q(0),
],
q(nak) => [
- q(4727),
+ q(4718),
q(0),
],
q(nal) => [
- q(4728),
+ q(4719),
q(0),
],
q(nam) => [
- q(4729),
+ q(4720),
q(0),
],
q(nan) => [
- q(4730),
+ q(4721),
q(0),
],
q(nao) => [
- q(4731),
+ q(4722),
q(0),
],
q(nap) => [
@@ -76396,19 +76303,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(naq) => [
- q(4732),
+ q(4723),
q(0),
],
q(nar) => [
- q(4733),
+ q(4724),
q(0),
],
q(nas) => [
- q(4734),
+ q(4725),
q(0),
],
q(nat) => [
- q(4735),
+ q(4726),
q(0),
],
q(nau) => [
@@ -76420,59 +76327,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(naw) => [
- q(4736),
+ q(4727),
q(0),
],
q(nax) => [
- q(4737),
+ q(4728),
q(0),
],
q(nay) => [
- q(4738),
+ q(4729),
q(0),
],
q(naz) => [
- q(4739),
+ q(4730),
q(0),
],
q(nba) => [
- q(4740),
+ q(4731),
q(0),
],
q(nbb) => [
- q(4741),
+ q(4732),
q(0),
],
q(nbc) => [
- q(4742),
+ q(4733),
q(0),
],
q(nbd) => [
- q(4743),
+ q(4734),
q(0),
],
q(nbe) => [
- q(4744),
+ q(4735),
q(0),
],
q(nbg) => [
- q(4745),
+ q(4736),
q(0),
],
q(nbh) => [
- q(4746),
+ q(4737),
q(0),
],
q(nbi) => [
- q(4747),
+ q(4738),
q(0),
],
q(nbj) => [
- q(4748),
+ q(4739),
q(0),
],
q(nbk) => [
- q(4749),
+ q(4740),
q(0),
],
q(nbl) => [
@@ -76480,155 +76387,155 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nbm) => [
- q(4750),
+ q(4741),
q(0),
],
q(nbn) => [
- q(4751),
+ q(4742),
q(0),
],
q(nbo) => [
- q(4752),
+ q(4743),
q(0),
],
q(nbp) => [
- q(4753),
+ q(4744),
q(0),
],
q(nbq) => [
- q(4754),
+ q(4745),
q(0),
],
q(nbr) => [
- q(4755),
+ q(4746),
q(0),
],
q(nbs) => [
- q(4756),
+ q(4747),
q(0),
],
q(nbt) => [
- q(4757),
+ q(4748),
q(0),
],
q(nbu) => [
- q(4758),
+ q(4749),
q(0),
],
q(nbv) => [
- q(4759),
+ q(4750),
q(0),
],
q(nbw) => [
- q(4760),
+ q(4751),
q(0),
],
q(nby) => [
- q(4761),
+ q(4752),
q(0),
],
q(nca) => [
- q(4762),
+ q(4753),
q(0),
],
q(ncb) => [
- q(4763),
+ q(4754),
q(0),
],
q(ncc) => [
- q(4764),
+ q(4755),
q(0),
],
q(ncd) => [
- q(4765),
+ q(4756),
q(0),
],
q(nce) => [
- q(4766),
+ q(4757),
q(0),
],
q(ncf) => [
- q(4767),
+ q(4758),
q(0),
],
q(ncg) => [
- q(4768),
+ q(4759),
q(0),
],
q(nch) => [
- q(4769),
+ q(4760),
q(0),
],
q(nci) => [
- q(4770),
+ q(4761),
q(0),
],
q(ncj) => [
- q(4771),
+ q(4762),
q(0),
],
q(nck) => [
- q(4772),
+ q(4763),
q(0),
],
q(ncl) => [
- q(4773),
+ q(4764),
q(0),
],
q(ncm) => [
- q(4774),
+ q(4765),
q(0),
],
q(ncn) => [
- q(4775),
+ q(4766),
q(0),
],
q(nco) => [
- q(4776),
+ q(4767),
q(0),
],
q(ncp) => [
- q(4777),
+ q(4768),
q(0),
],
q(ncr) => [
- q(4778),
+ q(4769),
q(0),
],
q(ncs) => [
- q(4779),
+ q(4770),
q(0),
],
q(nct) => [
- q(4780),
+ q(4771),
q(0),
],
q(ncu) => [
- q(4781),
+ q(4772),
q(0),
],
q(ncx) => [
- q(4782),
+ q(4773),
q(0),
],
q(ncz) => [
- q(4783),
+ q(4774),
q(0),
],
q(nda) => [
- q(4784),
+ q(4775),
q(0),
],
q(ndb) => [
- q(4785),
+ q(4776),
q(0),
],
q(ndc) => [
- q(4786),
+ q(4777),
q(0),
],
q(ndd) => [
- q(4787),
+ q(4778),
q(0),
],
q(nde) => [
@@ -76636,39 +76543,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ndf) => [
- q(4788),
+ q(4779),
q(0),
],
q(ndg) => [
- q(4789),
+ q(4780),
q(0),
],
q(ndh) => [
- q(4790),
+ q(4781),
q(0),
],
q(ndi) => [
- q(4791),
+ q(4782),
q(0),
],
q(ndj) => [
- q(4792),
+ q(4783),
q(0),
],
q(ndk) => [
- q(4793),
+ q(4784),
q(0),
],
q(ndl) => [
- q(4794),
+ q(4785),
q(0),
],
q(ndm) => [
- q(4795),
+ q(4786),
q(0),
],
q(ndn) => [
- q(4796),
+ q(4787),
q(0),
],
q(ndo) => [
@@ -76676,15 +76583,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ndp) => [
- q(4797),
+ q(4788),
q(0),
],
q(ndq) => [
- q(4798),
+ q(4789),
q(0),
],
q(ndr) => [
- q(4799),
+ q(4790),
q(0),
],
q(nds) => [
@@ -76692,87 +76599,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ndt) => [
- q(4800),
+ q(4791),
q(0),
],
q(ndu) => [
- q(4801),
+ q(4792),
q(0),
],
q(ndv) => [
- q(4802),
+ q(4793),
q(0),
],
q(ndw) => [
- q(4803),
+ q(4794),
q(0),
],
q(ndx) => [
- q(4804),
+ q(4795),
q(0),
],
q(ndy) => [
- q(4805),
+ q(4796),
q(0),
],
q(ndz) => [
- q(4806),
+ q(4797),
q(0),
],
q(nea) => [
- q(4807),
+ q(4798),
q(0),
],
q(neb) => [
- q(4808),
+ q(4799),
q(0),
],
q(nec) => [
- q(4809),
+ q(4800),
q(0),
],
q(ned) => [
- q(4810),
+ q(4801),
q(0),
],
q(nee) => [
- q(4811),
+ q(4802),
q(0),
],
q(nef) => [
- q(4812),
+ q(4803),
q(0),
],
q(neg) => [
- q(4813),
+ q(4804),
q(0),
],
q(neh) => [
- q(4814),
+ q(4805),
q(0),
],
q(nei) => [
- q(4815),
+ q(4806),
q(0),
],
q(nej) => [
- q(4816),
+ q(4807),
q(0),
],
q(nek) => [
- q(4817),
+ q(4808),
q(0),
],
q(nem) => [
- q(4818),
+ q(4809),
q(0),
],
q(nen) => [
- q(4819),
+ q(4810),
q(0),
],
q(neo) => [
- q(4820),
+ q(4811),
q(0),
],
q(nep) => [
@@ -76780,27 +76687,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(neq) => [
- q(4821),
+ q(4812),
q(0),
],
q(ner) => [
- q(4822),
+ q(4813),
q(0),
],
q(nes) => [
- q(4823),
+ q(4814),
q(0),
],
q(net) => [
- q(4824),
+ q(4815),
q(0),
],
q(neu) => [
- q(4825),
+ q(4816),
q(0),
],
q(nev) => [
- q(4826),
+ q(4817),
q(0),
],
q(new) => [
@@ -76808,55 +76715,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(nex) => [
- q(4827),
+ q(4818),
q(0),
],
q(ney) => [
- q(4828),
+ q(4819),
q(0),
],
q(nez) => [
- q(4829),
+ q(4820),
q(0),
],
q(nfa) => [
- q(4830),
+ q(4821),
q(0),
],
q(nfd) => [
- q(4831),
+ q(4822),
q(0),
],
q(nfl) => [
- q(4832),
+ q(4823),
q(0),
],
q(nfr) => [
- q(4833),
+ q(4824),
q(0),
],
q(nfu) => [
- q(4834),
+ q(4825),
q(0),
],
q(nga) => [
- q(4835),
+ q(4826),
q(0),
],
q(ngb) => [
- q(4836),
+ q(4827),
q(0),
],
q(ngc) => [
- q(4837),
+ q(4828),
q(0),
],
q(ngd) => [
- q(4838),
+ q(4829),
q(0),
],
q(nge) => [
- q(4839),
+ q(4830),
q(0),
],
q(ngf) => [
@@ -76864,175 +76771,175 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ngg) => [
- q(4840),
+ q(4831),
q(0),
],
q(ngh) => [
- q(4841),
+ q(4832),
q(0),
],
q(ngi) => [
- q(4842),
+ q(4833),
q(0),
],
q(ngj) => [
- q(4843),
+ q(4834),
q(0),
],
q(ngk) => [
- q(4844),
+ q(4835),
q(0),
],
q(ngl) => [
- q(4845),
+ q(4836),
q(0),
],
q(ngm) => [
- q(4846),
+ q(4837),
q(0),
],
q(ngn) => [
- q(4847),
+ q(4838),
q(0),
],
q(ngo) => [
- q(4848),
+ q(4839),
q(0),
],
q(ngp) => [
- q(4849),
+ q(4840),
q(0),
],
q(ngq) => [
- q(4850),
+ q(4841),
q(0),
],
q(ngr) => [
- q(4851),
+ q(4842),
q(0),
],
q(ngs) => [
- q(4852),
+ q(4843),
q(0),
],
q(ngt) => [
- q(4853),
+ q(4844),
q(0),
],
q(ngu) => [
- q(4854),
+ q(4845),
q(0),
],
q(ngv) => [
- q(4855),
+ q(4846),
q(0),
],
q(ngw) => [
- q(4856),
+ q(4847),
q(0),
],
q(ngx) => [
- q(4857),
+ q(4848),
q(0),
],
q(ngy) => [
- q(4858),
+ q(4849),
q(0),
],
q(ngz) => [
- q(4859),
+ q(4850),
q(0),
],
q(nha) => [
- q(4860),
+ q(4851),
q(0),
],
q(nhb) => [
- q(4861),
+ q(4852),
q(0),
],
q(nhc) => [
- q(4862),
+ q(4853),
q(0),
],
q(nhd) => [
- q(4863),
+ q(4854),
q(0),
],
q(nhe) => [
- q(4864),
+ q(4855),
q(0),
],
q(nhf) => [
- q(4865),
+ q(4856),
q(0),
],
q(nhg) => [
- q(4866),
+ q(4857),
q(0),
],
q(nhh) => [
- q(4867),
+ q(4858),
q(0),
],
q(nhi) => [
- q(4868),
+ q(4859),
q(0),
],
q(nhk) => [
- q(4869),
+ q(4860),
q(0),
],
q(nhm) => [
- q(4870),
+ q(4861),
q(0),
],
q(nhn) => [
- q(4871),
+ q(4862),
q(0),
],
q(nho) => [
- q(4872),
+ q(4863),
q(0),
],
q(nhp) => [
- q(4873),
+ q(4864),
q(0),
],
q(nhq) => [
- q(4874),
+ q(4865),
q(0),
],
q(nhr) => [
- q(4875),
+ q(4866),
q(0),
],
q(nht) => [
- q(4876),
+ q(4867),
q(0),
],
q(nhu) => [
- q(4877),
+ q(4868),
q(0),
],
q(nhv) => [
- q(4878),
+ q(4869),
q(0),
],
q(nhw) => [
- q(4879),
+ q(4870),
q(0),
],
q(nhx) => [
- q(4880),
+ q(4871),
q(0),
],
q(nhy) => [
- q(4881),
+ q(4872),
q(0),
],
q(nhz) => [
- q(4882),
+ q(4873),
q(0),
],
q(nia) => [
@@ -77040,7 +76947,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nib) => [
- q(4883),
+ q(4874),
q(0),
],
q(nic) => [
@@ -77048,67 +76955,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nid) => [
- q(4884),
+ q(4875),
q(0),
],
q(nie) => [
- q(4885),
+ q(4876),
q(0),
],
q(nif) => [
- q(4886),
+ q(4877),
q(0),
],
q(nig) => [
- q(4887),
+ q(4878),
q(0),
],
q(nih) => [
- q(4888),
+ q(4879),
q(0),
],
q(nii) => [
- q(4889),
+ q(4880),
q(0),
],
q(nij) => [
- q(4890),
+ q(4881),
q(0),
],
q(nik) => [
- q(4891),
+ q(4882),
q(0),
],
q(nil) => [
- q(4892),
+ q(4883),
q(0),
],
q(nim) => [
- q(4893),
+ q(4884),
q(0),
],
q(nin) => [
- q(4894),
+ q(4885),
q(0),
],
q(nio) => [
- q(4895),
+ q(4886),
q(0),
],
q(niq) => [
- q(4896),
+ q(4887),
q(0),
],
q(nir) => [
- q(4897),
+ q(4888),
q(0),
],
q(nis) => [
- q(4898),
+ q(4889),
q(0),
],
q(nit) => [
- q(4899),
+ q(4890),
q(0),
],
q(niu) => [
@@ -77116,411 +77023,411 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(niv) => [
- q(4900),
+ q(4891),
q(0),
],
q(niw) => [
- q(4901),
+ q(4892),
q(0),
],
q(nix) => [
- q(4902),
+ q(4893),
q(0),
],
q(niy) => [
- q(4903),
+ q(4894),
q(0),
],
q(niz) => [
- q(4904),
+ q(4895),
q(0),
],
q(nja) => [
- q(4905),
+ q(4896),
q(0),
],
q(njb) => [
- q(4906),
+ q(4897),
q(0),
],
q(njd) => [
- q(4907),
+ q(4898),
q(0),
],
q(njh) => [
- q(4908),
+ q(4899),
q(0),
],
q(nji) => [
- q(4909),
+ q(4900),
q(0),
],
q(njj) => [
- q(4910),
+ q(4901),
q(0),
],
q(njl) => [
- q(4911),
+ q(4902),
q(0),
],
q(njm) => [
- q(4912),
+ q(4903),
q(0),
],
q(njn) => [
- q(4913),
+ q(4904),
q(0),
],
q(njo) => [
- q(4914),
+ q(4905),
q(0),
],
q(njr) => [
- q(4915),
+ q(4906),
q(0),
],
q(njs) => [
- q(4916),
+ q(4907),
q(0),
],
q(njt) => [
- q(4917),
+ q(4908),
q(0),
],
q(nju) => [
- q(4918),
+ q(4909),
q(0),
],
q(njx) => [
- q(4919),
+ q(4910),
q(0),
],
q(njy) => [
- q(4920),
+ q(4911),
q(0),
],
q(njz) => [
- q(4921),
+ q(4912),
q(0),
],
q(nka) => [
- q(4922),
+ q(4913),
q(0),
],
q(nkb) => [
- q(4923),
+ q(4914),
q(0),
],
q(nkc) => [
- q(4924),
+ q(4915),
q(0),
],
q(nkd) => [
- q(4925),
+ q(4916),
q(0),
],
q(nke) => [
- q(4926),
+ q(4917),
q(0),
],
q(nkf) => [
- q(4927),
+ q(4918),
q(0),
],
q(nkg) => [
- q(4928),
+ q(4919),
q(0),
],
q(nkh) => [
- q(4929),
+ q(4920),
q(0),
],
q(nki) => [
- q(4930),
+ q(4921),
q(0),
],
q(nkj) => [
- q(4931),
+ q(4922),
q(0),
],
q(nkk) => [
- q(4932),
+ q(4923),
q(0),
],
q(nkm) => [
- q(4933),
+ q(4924),
q(0),
],
q(nkn) => [
- q(4934),
+ q(4925),
q(0),
],
q(nko) => [
- q(4935),
+ q(4926),
q(0),
],
q(nkp) => [
- q(4936),
+ q(4927),
q(0),
],
q(nkq) => [
- q(4937),
+ q(4928),
q(0),
],
q(nkr) => [
- q(4938),
+ q(4929),
q(0),
],
q(nks) => [
- q(4939),
+ q(4930),
q(0),
],
q(nkt) => [
- q(4940),
+ q(4931),
q(0),
],
q(nku) => [
- q(4941),
+ q(4932),
q(0),
],
q(nkv) => [
- q(4942),
+ q(4933),
q(0),
],
q(nkw) => [
- q(4943),
+ q(4934),
q(0),
],
q(nkx) => [
- q(4944),
+ q(4935),
q(0),
],
q(nkz) => [
- q(4945),
+ q(4936),
q(0),
],
q(nla) => [
- q(4946),
+ q(4937),
q(0),
],
q(nlc) => [
- q(4947),
+ q(4938),
q(0),
],
q(nle) => [
- q(4948),
+ q(4939),
q(0),
],
q(nlg) => [
- q(4949),
+ q(4940),
q(0),
],
q(nli) => [
- q(4950),
+ q(4941),
q(0),
],
q(nlj) => [
- q(4951),
+ q(4942),
q(0),
],
q(nlk) => [
- q(4952),
+ q(4943),
q(0),
],
q(nll) => [
- q(4953),
+ q(4944),
q(0),
],
q(nlo) => [
- q(4954),
+ q(4945),
q(0),
],
q(nlq) => [
- q(4955),
+ q(4946),
q(0),
],
q(nlu) => [
- q(4956),
+ q(4947),
q(0),
],
q(nlv) => [
- q(4957),
+ q(4948),
q(0),
],
q(nlw) => [
- q(4958),
+ q(4949),
q(0),
],
q(nlx) => [
- q(4959),
+ q(4950),
q(0),
],
q(nly) => [
- q(4960),
+ q(4951),
q(0),
],
q(nlz) => [
- q(4961),
+ q(4952),
q(0),
],
q(nma) => [
- q(4962),
+ q(4953),
q(0),
],
q(nmb) => [
- q(4963),
+ q(4954),
q(0),
],
q(nmc) => [
- q(4964),
+ q(4955),
q(0),
],
q(nmd) => [
- q(4965),
+ q(4956),
q(0),
],
q(nme) => [
- q(4966),
+ q(4957),
q(0),
],
q(nmf) => [
- q(4967),
+ q(4958),
q(0),
],
q(nmg) => [
- q(4968),
+ q(4959),
q(0),
],
q(nmh) => [
- q(4969),
+ q(4960),
q(0),
],
q(nmi) => [
- q(4970),
+ q(4961),
q(0),
],
q(nmj) => [
- q(4971),
+ q(4962),
q(0),
],
q(nmk) => [
- q(4972),
+ q(4963),
q(0),
],
q(nml) => [
- q(4973),
+ q(4964),
q(0),
],
q(nmm) => [
- q(4974),
+ q(4965),
q(0),
],
q(nmn) => [
- q(4975),
+ q(4966),
q(0),
],
q(nmo) => [
- q(4976),
+ q(4967),
q(0),
],
q(nmp) => [
- q(4977),
+ q(4968),
q(0),
],
q(nmq) => [
- q(4978),
+ q(4969),
q(0),
],
q(nmr) => [
- q(4979),
+ q(4970),
q(0),
],
q(nms) => [
- q(4980),
+ q(4971),
q(0),
],
q(nmt) => [
- q(4981),
+ q(4972),
q(0),
],
q(nmu) => [
- q(4982),
+ q(4973),
q(0),
],
q(nmv) => [
- q(4983),
+ q(4974),
q(0),
],
q(nmw) => [
- q(4984),
+ q(4975),
q(0),
],
q(nmx) => [
- q(4985),
+ q(4976),
q(0),
],
q(nmy) => [
- q(4986),
+ q(4977),
q(0),
],
q(nmz) => [
- q(4987),
+ q(4978),
q(0),
],
q(nna) => [
- q(4988),
+ q(4979),
q(0),
],
q(nnb) => [
- q(4989),
+ q(4980),
q(0),
],
q(nnc) => [
- q(4990),
+ q(4981),
q(0),
],
q(nnd) => [
- q(4991),
+ q(4982),
q(0),
],
q(nne) => [
- q(4992),
+ q(4983),
q(0),
],
q(nnf) => [
- q(4993),
+ q(4984),
q(0),
],
q(nng) => [
- q(4994),
+ q(4985),
q(0),
],
q(nnh) => [
- q(4995),
+ q(4986),
q(0),
],
q(nni) => [
- q(4996),
+ q(4987),
q(0),
],
q(nnj) => [
- q(4997),
+ q(4988),
q(0),
],
q(nnk) => [
- q(4998),
+ q(4989),
q(0),
],
q(nnl) => [
- q(4999),
+ q(4990),
q(0),
],
q(nnm) => [
- q(5000),
+ q(4991),
q(0),
],
q(nnn) => [
- q(5001),
+ q(4992),
q(0),
],
q(nno) => [
@@ -77528,47 +77435,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nnp) => [
- q(5002),
+ q(4993),
q(0),
],
q(nnq) => [
- q(5003),
+ q(4994),
q(0),
],
q(nnr) => [
- q(5004),
+ q(4995),
q(0),
],
q(nns) => [
- q(5005),
+ q(4996),
q(0),
],
q(nnt) => [
- q(5006),
+ q(4997),
q(0),
],
q(nnu) => [
- q(5007),
+ q(4998),
q(0),
],
q(nnv) => [
- q(5008),
+ q(4999),
q(0),
],
q(nnw) => [
- q(5009),
+ q(5000),
q(0),
],
q(nny) => [
- q(5010),
+ q(5001),
q(0),
],
q(nnz) => [
- q(5011),
+ q(5002),
q(0),
],
q(noa) => [
- q(5012),
+ q(5003),
q(0),
],
q(nob) => [
@@ -77576,19 +77483,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(noc) => [
- q(5013),
+ q(5004),
q(0),
],
q(nod) => [
- q(5014),
+ q(5005),
q(0),
],
q(noe) => [
- q(5015),
+ q(5006),
q(0),
],
q(nof) => [
- q(5016),
+ q(5007),
q(0),
],
q(nog) => [
@@ -77596,27 +77503,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(noh) => [
- q(5017),
+ q(5008),
q(0),
],
q(noi) => [
- q(5018),
+ q(5009),
q(0),
],
q(noj) => [
- q(5019),
+ q(5010),
q(0),
],
q(nok) => [
- q(5020),
+ q(5011),
q(0),
],
q(nol) => [
- q(5021),
+ q(5012),
q(0),
],
q(nom) => [
- q(5022),
+ q(5013),
q(0),
],
q(non) => [
@@ -77624,11 +77531,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(nop) => [
- q(5023),
+ q(5014),
q(0),
],
q(noq) => [
- q(5024),
+ q(5015),
q(0),
],
q(nor) => [
@@ -77636,91 +77543,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nos) => [
- q(5025),
+ q(5016),
q(0),
],
q(not) => [
- q(5026),
+ q(5017),
q(0),
],
q(nou) => [
- q(5027),
+ q(5018),
q(0),
],
q(nov) => [
- q(5028),
+ q(5019),
q(0),
],
q(now) => [
- q(5029),
+ q(5020),
q(0),
],
q(noy) => [
- q(5030),
+ q(5021),
q(0),
],
q(noz) => [
- q(5031),
+ q(5022),
q(0),
],
q(npa) => [
- q(5032),
+ q(5023),
q(0),
],
q(npb) => [
- q(5033),
+ q(5024),
q(0),
],
q(npg) => [
- q(5034),
+ q(5025),
q(0),
],
q(nph) => [
- q(5035),
+ q(5026),
q(0),
],
q(npi) => [
- q(5036),
+ q(5027),
q(0),
],
q(npl) => [
- q(5037),
+ q(5028),
q(0),
],
q(npn) => [
- q(5038),
+ q(5029),
q(0),
],
q(npo) => [
- q(5039),
+ q(5030),
q(0),
],
q(nps) => [
- q(5040),
+ q(5031),
q(0),
],
q(npu) => [
- q(5041),
+ q(5032),
q(0),
],
q(npy) => [
- q(5042),
+ q(5033),
q(0),
],
q(nqg) => [
- q(5043),
+ q(5034),
q(0),
],
q(nqk) => [
- q(5044),
+ q(5035),
q(0),
],
q(nqm) => [
- q(5045),
+ q(5036),
q(0),
],
q(nqn) => [
- q(5046),
+ q(5037),
q(0),
],
q(nqo) => [
@@ -77728,127 +77635,127 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nqq) => [
- q(5047),
+ q(5038),
q(0),
],
q(nqy) => [
- q(5048),
+ q(5039),
q(0),
],
q(nra) => [
- q(5049),
+ q(5040),
q(0),
],
q(nrb) => [
- q(5050),
+ q(5041),
q(0),
],
q(nrc) => [
- q(5051),
+ q(5042),
q(0),
],
q(nre) => [
- q(5052),
+ q(5043),
q(0),
],
q(nrf) => [
- q(5053),
+ q(5044),
q(0),
],
q(nrg) => [
- q(5054),
+ q(5045),
q(0),
],
q(nri) => [
- q(5055),
+ q(5046),
q(0),
],
q(nrk) => [
- q(5056),
+ q(5047),
q(0),
],
q(nrl) => [
- q(5057),
+ q(5048),
q(0),
],
q(nrm) => [
- q(5058),
+ q(5049),
q(0),
],
q(nrn) => [
- q(5059),
+ q(5050),
q(0),
],
q(nrp) => [
- q(5060),
+ q(5051),
q(0),
],
q(nrr) => [
- q(5061),
+ q(5052),
q(0),
],
q(nrt) => [
- q(5062),
+ q(5053),
q(0),
],
q(nru) => [
- q(5063),
+ q(5054),
q(0),
],
q(nrx) => [
- q(5064),
+ q(5055),
q(0),
],
q(nrz) => [
- q(5065),
+ q(5056),
q(0),
],
q(nsa) => [
- q(5066),
+ q(5057),
q(0),
],
q(nsc) => [
- q(5067),
+ q(5058),
q(0),
],
q(nsd) => [
- q(5068),
+ q(5059),
q(0),
],
q(nse) => [
- q(5069),
+ q(5060),
q(0),
],
q(nsf) => [
- q(5070),
+ q(5061),
q(0),
],
q(nsg) => [
- q(5071),
+ q(5062),
q(0),
],
q(nsh) => [
- q(5072),
+ q(5063),
q(0),
],
q(nsi) => [
- q(5073),
+ q(5064),
q(0),
],
q(nsk) => [
- q(5074),
+ q(5065),
q(0),
],
q(nsl) => [
- q(5075),
+ q(5066),
q(0),
],
q(nsm) => [
- q(5076),
+ q(5067),
q(0),
],
q(nsn) => [
- q(5077),
+ q(5068),
q(0),
],
q(nso) => [
@@ -77856,111 +77763,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nsp) => [
- q(5078),
+ q(5069),
q(0),
],
q(nsq) => [
- q(5079),
+ q(5070),
q(0),
],
q(nsr) => [
- q(5080),
+ q(5071),
q(0),
],
q(nss) => [
- q(5081),
+ q(5072),
q(0),
],
q(nst) => [
- q(5082),
+ q(5073),
q(0),
],
q(nsu) => [
- q(5083),
+ q(5074),
q(0),
],
q(nsv) => [
- q(5084),
+ q(5075),
q(0),
],
q(nsw) => [
- q(5085),
+ q(5076),
q(0),
],
q(nsx) => [
- q(5086),
+ q(5077),
q(0),
],
q(nsy) => [
- q(5087),
+ q(5078),
q(0),
],
q(nsz) => [
- q(5088),
+ q(5079),
+ q(0),
+ ],
+ q(ntd) => [
+ q(5080),
q(0),
],
q(nte) => [
- q(5089),
+ q(5081),
q(0),
],
q(ntg) => [
- q(5090),
+ q(5082),
q(0),
],
q(nti) => [
- q(5091),
+ q(5083),
q(0),
],
q(ntj) => [
- q(5092),
+ q(5084),
q(0),
],
q(ntk) => [
- q(5093),
+ q(5085),
q(0),
],
q(ntm) => [
- q(5094),
+ q(5086),
q(0),
],
q(nto) => [
- q(5095),
+ q(5087),
q(0),
],
q(ntp) => [
- q(5096),
+ q(5088),
q(0),
],
q(ntr) => [
- q(5097),
- q(0),
- ],
- q(nts) => [
- q(5098),
+ q(5089),
q(0),
],
q(ntu) => [
- q(5099),
+ q(5090),
q(0),
],
q(ntw) => [
- q(5100),
+ q(5091),
q(0),
],
q(ntx) => [
- q(5101),
+ q(5092),
q(0),
],
q(nty) => [
- q(5102),
+ q(5093),
q(0),
],
q(ntz) => [
- q(5103),
+ q(5094),
q(0),
],
q(nua) => [
- q(5104),
+ q(5095),
q(0),
],
q(nub) => [
@@ -77968,119 +77875,119 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nuc) => [
- q(5105),
+ q(5096),
q(0),
],
q(nud) => [
- q(5106),
+ q(5097),
q(0),
],
q(nue) => [
- q(5107),
+ q(5098),
q(0),
],
q(nuf) => [
- q(5108),
+ q(5099),
q(0),
],
q(nug) => [
- q(5109),
+ q(5100),
q(0),
],
q(nuh) => [
- q(5110),
+ q(5101),
q(0),
],
q(nui) => [
- q(5111),
+ q(5102),
q(0),
],
q(nuj) => [
- q(5112),
+ q(5103),
q(0),
],
q(nuk) => [
- q(5113),
+ q(5104),
q(0),
],
q(nul) => [
- q(5114),
+ q(5105),
q(0),
],
q(num) => [
- q(5115),
+ q(5106),
q(0),
],
q(nun) => [
- q(5116),
+ q(5107),
q(0),
],
q(nuo) => [
- q(5117),
+ q(5108),
q(0),
],
q(nup) => [
- q(5118),
+ q(5109),
q(0),
],
q(nuq) => [
- q(5119),
+ q(5110),
q(0),
],
q(nur) => [
- q(5120),
+ q(5111),
q(0),
],
q(nus) => [
- q(5121),
+ q(5112),
q(0),
],
q(nut) => [
- q(5122),
+ q(5113),
q(0),
],
q(nuu) => [
- q(5123),
+ q(5114),
q(0),
],
q(nuv) => [
- q(5124),
+ q(5115),
q(0),
],
q(nuw) => [
- q(5125),
+ q(5116),
q(0),
],
q(nux) => [
- q(5126),
+ q(5117),
q(0),
],
q(nuy) => [
- q(5127),
+ q(5118),
q(0),
],
q(nuz) => [
- q(5128),
+ q(5119),
q(0),
],
q(nvh) => [
- q(5129),
+ q(5120),
q(0),
],
q(nvm) => [
- q(5130),
+ q(5121),
q(0),
],
q(nvo) => [
- q(5131),
+ q(5122),
q(0),
],
q(nwa) => [
- q(5132),
+ q(5123),
q(0),
],
q(nwb) => [
- q(5133),
+ q(5124),
q(0),
],
q(nwc) => [
@@ -78088,91 +77995,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nwe) => [
- q(5134),
+ q(5125),
q(0),
],
q(nwg) => [
- q(5135),
+ q(5126),
q(0),
],
q(nwi) => [
- q(5136),
+ q(5127),
q(0),
],
q(nwm) => [
- q(5137),
+ q(5128),
q(0),
],
q(nwo) => [
- q(5138),
+ q(5129),
q(0),
],
q(nwr) => [
- q(5139),
+ q(5130),
q(0),
],
q(nwx) => [
- q(5140),
+ q(5131),
q(0),
],
q(nwy) => [
- q(5141),
+ q(5132),
q(0),
],
q(nxa) => [
- q(5142),
+ q(5133),
q(0),
],
q(nxd) => [
- q(5143),
+ q(5134),
q(0),
],
q(nxe) => [
- q(5144),
+ q(5135),
q(0),
],
q(nxg) => [
- q(5145),
+ q(5136),
q(0),
],
q(nxi) => [
- q(5146),
+ q(5137),
q(0),
],
q(nxk) => [
- q(5147),
+ q(5138),
q(0),
],
q(nxl) => [
- q(5148),
+ q(5139),
q(0),
],
q(nxm) => [
- q(5149),
+ q(5140),
q(0),
],
q(nxn) => [
- q(5150),
+ q(5141),
q(0),
],
q(nxo) => [
- q(5151),
+ q(5142),
q(0),
],
q(nxq) => [
- q(5152),
+ q(5143),
q(0),
],
q(nxr) => [
- q(5153),
+ q(5144),
q(0),
],
q(nxu) => [
- q(5154),
+ q(5145),
q(0),
],
q(nxx) => [
- q(5155),
+ q(5146),
q(0),
],
q(nya) => [
@@ -78180,47 +78087,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nyb) => [
- q(5156),
+ q(5147),
q(0),
],
q(nyc) => [
- q(5157),
+ q(5148),
q(0),
],
q(nyd) => [
- q(5158),
+ q(5149),
q(0),
],
q(nye) => [
- q(5159),
+ q(5150),
q(0),
],
q(nyf) => [
- q(5160),
+ q(5151),
q(0),
],
q(nyg) => [
- q(5161),
+ q(5152),
q(0),
],
q(nyh) => [
- q(5162),
+ q(5153),
q(0),
],
q(nyi) => [
- q(5163),
+ q(5154),
q(0),
],
q(nyj) => [
- q(5164),
+ q(5155),
q(0),
],
q(nyk) => [
- q(5165),
+ q(5156),
q(0),
],
q(nyl) => [
- q(5166),
+ q(5157),
q(0),
],
q(nym) => [
@@ -78236,51 +78143,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nyp) => [
- q(5167),
+ q(5158),
q(0),
],
q(nyq) => [
- q(5168),
+ q(5159),
q(0),
],
q(nyr) => [
- q(5169),
+ q(5160),
q(0),
],
q(nys) => [
- q(5170),
+ q(5161),
q(0),
],
q(nyt) => [
- q(5171),
+ q(5162),
q(0),
],
q(nyu) => [
- q(5172),
+ q(5163),
q(0),
],
q(nyv) => [
- q(5173),
+ q(5164),
q(0),
],
q(nyw) => [
- q(5174),
+ q(5165),
q(0),
],
q(nyx) => [
- q(5175),
+ q(5166),
q(0),
],
q(nyy) => [
- q(5176),
+ q(5167),
q(0),
],
q(nza) => [
- q(5177),
+ q(5168),
q(0),
],
q(nzb) => [
- q(5178),
+ q(5169),
q(0),
],
q(nzi) => [
@@ -78288,83 +78195,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(nzk) => [
- q(5179),
+ q(5170),
q(0),
],
q(nzm) => [
- q(5180),
+ q(5171),
q(0),
],
q(nzs) => [
- q(5181),
+ q(5172),
q(0),
],
q(nzu) => [
- q(5182),
+ q(5173),
q(0),
],
q(nzy) => [
- q(5183),
+ q(5174),
q(0),
],
q(nzz) => [
- q(5184),
+ q(5175),
q(0),
],
q(oaa) => [
- q(5185),
+ q(5176),
q(0),
],
q(oac) => [
- q(5186),
+ q(5177),
q(0),
],
q(oar) => [
- q(5187),
+ q(5178),
q(0),
],
q(oav) => [
- q(5188),
+ q(5179),
q(0),
],
q(obi) => [
- q(5189),
+ q(5180),
q(0),
],
q(obk) => [
- q(5190),
+ q(5181),
q(0),
],
q(obl) => [
- q(5191),
+ q(5182),
q(0),
],
q(obm) => [
- q(5192),
+ q(5183),
q(0),
],
q(obo) => [
- q(5193),
+ q(5184),
q(0),
],
q(obr) => [
- q(5194),
+ q(5185),
q(0),
],
q(obt) => [
- q(5195),
+ q(5186),
q(0),
],
q(obu) => [
- q(5196),
+ q(5187),
q(0),
],
q(oca) => [
- q(5197),
+ q(5188),
q(0),
],
q(och) => [
- q(5198),
+ q(5189),
q(0),
],
q(oci) => [
@@ -78372,91 +78279,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(oco) => [
- q(5199),
+ q(5190),
q(0),
],
q(ocu) => [
- q(5200),
+ q(5191),
q(0),
],
q(oda) => [
- q(5201),
+ q(5192),
q(0),
],
q(odk) => [
- q(5202),
+ q(5193),
q(0),
],
q(odt) => [
- q(5203),
+ q(5194),
q(0),
],
q(odu) => [
- q(5204),
+ q(5195),
q(0),
],
q(ofo) => [
- q(5205),
+ q(5196),
q(0),
],
q(ofs) => [
- q(5206),
+ q(5197),
q(0),
],
q(ofu) => [
- q(5207),
+ q(5198),
q(0),
],
q(ogb) => [
- q(5208),
+ q(5199),
q(0),
],
q(ogc) => [
- q(5209),
+ q(5200),
q(0),
],
q(oge) => [
- q(5210),
+ q(5201),
q(0),
],
q(ogg) => [
- q(5211),
+ q(5202),
q(0),
],
q(ogo) => [
- q(5212),
+ q(5203),
q(0),
],
q(ogu) => [
- q(5213),
+ q(5204),
q(0),
],
q(oht) => [
- q(5214),
+ q(5205),
q(0),
],
q(ohu) => [
- q(5215),
+ q(5206),
q(0),
],
q(oia) => [
- q(5216),
+ q(5207),
q(0),
],
q(oin) => [
- q(5217),
+ q(5208),
q(0),
],
q(ojb) => [
- q(5218),
+ q(5209),
q(0),
],
q(ojc) => [
- q(5219),
+ q(5210),
q(0),
],
q(ojg) => [
- q(5220),
+ q(5211),
q(0),
],
q(oji) => [
@@ -78464,167 +78371,167 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ojp) => [
- q(5221),
+ q(5212),
q(0),
],
q(ojs) => [
- q(5222),
+ q(5213),
q(0),
],
q(ojv) => [
- q(5223),
+ q(5214),
q(0),
],
q(ojw) => [
- q(5224),
+ q(5215),
q(0),
],
q(oka) => [
- q(5225),
+ q(5216),
q(0),
],
q(okb) => [
- q(5226),
+ q(5217),
q(0),
],
q(okd) => [
- q(5227),
+ q(5218),
q(0),
],
q(oke) => [
- q(5228),
+ q(5219),
q(0),
],
q(okg) => [
- q(5229),
+ q(5220),
q(0),
],
q(okh) => [
- q(5230),
+ q(5221),
q(0),
],
q(oki) => [
- q(5231),
+ q(5222),
q(0),
],
q(okj) => [
- q(5232),
+ q(5223),
q(0),
],
q(okk) => [
- q(5233),
+ q(5224),
q(0),
],
q(okl) => [
- q(5234),
+ q(5225),
q(0),
],
q(okm) => [
- q(5235),
+ q(5226),
q(0),
],
q(okn) => [
- q(5236),
+ q(5227),
q(0),
],
q(oko) => [
- q(5237),
+ q(5228),
q(0),
],
q(okr) => [
- q(5238),
+ q(5229),
q(0),
],
q(oks) => [
- q(5239),
+ q(5230),
q(0),
],
q(oku) => [
- q(5240),
+ q(5231),
q(0),
],
q(okv) => [
- q(5241),
+ q(5232),
q(0),
],
q(okx) => [
- q(5242),
+ q(5233),
q(0),
],
q(ola) => [
- q(5243),
+ q(5234),
q(0),
],
q(old) => [
- q(5244),
+ q(5235),
q(0),
],
q(ole) => [
- q(5245),
+ q(5236),
q(0),
],
q(olk) => [
- q(5246),
+ q(5237),
q(0),
],
q(olm) => [
- q(5247),
+ q(5238),
q(0),
],
q(olo) => [
- q(5248),
+ q(5239),
q(0),
],
q(olr) => [
- q(5249),
+ q(5240),
q(0),
],
q(olt) => [
- q(5250),
+ q(5241),
+ q(0),
+ ],
+ q(olu) => [
+ q(5242),
q(0),
],
q(oma) => [
- q(5251),
+ q(5243),
q(0),
],
q(omb) => [
- q(5252),
+ q(5244),
q(0),
],
q(omc) => [
- q(5253),
- q(0),
- ],
- q(ome) => [
- q(5254),
+ q(5245),
q(0),
],
q(omg) => [
- q(5255),
+ q(5246),
q(0),
],
q(omi) => [
- q(5256),
+ q(5247),
q(0),
],
q(omk) => [
- q(5257),
+ q(5248),
q(0),
],
q(oml) => [
- q(5258),
+ q(5249),
q(0),
],
q(omn) => [
- q(5259),
+ q(5250),
q(0),
],
q(omo) => [
- q(5260),
+ q(5251),
q(0),
],
q(omp) => [
- q(5261),
+ q(5252),
q(0),
],
q(omq) => [
@@ -78632,15 +78539,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(omr) => [
- q(5262),
+ q(5253),
q(0),
],
q(omt) => [
- q(5263),
+ q(5254),
q(0),
],
q(omu) => [
- q(5264),
+ q(5255),
q(0),
],
q(omv) => [
@@ -78648,139 +78555,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(omw) => [
- q(5265),
+ q(5256),
q(0),
],
q(omx) => [
- q(5266),
+ q(5257),
q(0),
],
q(ona) => [
- q(5267),
+ q(5258),
q(0),
],
q(onb) => [
- q(5268),
+ q(5259),
q(0),
],
q(one) => [
- q(5269),
+ q(5260),
q(0),
],
q(ong) => [
- q(5270),
+ q(5261),
q(0),
],
q(oni) => [
- q(5271),
+ q(5262),
q(0),
],
q(onj) => [
- q(5272),
+ q(5263),
q(0),
],
q(onk) => [
- q(5273),
+ q(5264),
q(0),
],
q(onn) => [
- q(5274),
+ q(5265),
q(0),
],
q(ono) => [
- q(5275),
+ q(5266),
q(0),
],
q(onp) => [
- q(5276),
+ q(5267),
q(0),
],
q(onr) => [
- q(5277),
+ q(5268),
q(0),
],
q(ons) => [
- q(5278),
+ q(5269),
q(0),
],
q(ont) => [
- q(5279),
+ q(5270),
q(0),
],
q(onu) => [
- q(5280),
+ q(5271),
q(0),
],
q(onw) => [
- q(5281),
+ q(5272),
q(0),
],
q(onx) => [
- q(5282),
+ q(5273),
q(0),
],
q(ood) => [
- q(5283),
+ q(5274),
q(0),
],
q(oog) => [
- q(5284),
+ q(5275),
q(0),
],
q(oon) => [
- q(5285),
+ q(5276),
q(0),
],
q(oor) => [
- q(5286),
+ q(5277),
q(0),
],
q(oos) => [
- q(5287),
+ q(5278),
q(0),
],
q(opa) => [
- q(5288),
+ q(5279),
q(0),
],
q(opk) => [
- q(5289),
+ q(5280),
q(0),
],
q(opm) => [
- q(5290),
+ q(5281),
q(0),
],
q(opo) => [
- q(5291),
+ q(5282),
q(0),
],
q(opt) => [
- q(5292),
+ q(5283),
q(0),
],
q(opy) => [
- q(5293),
+ q(5284),
q(0),
],
q(ora) => [
- q(5294),
+ q(5285),
q(0),
],
q(orc) => [
- q(5295),
+ q(5286),
q(0),
],
q(ore) => [
- q(5296),
+ q(5287),
q(0),
],
q(org) => [
- q(5297),
+ q(5288),
q(0),
],
q(orh) => [
- q(5298),
+ q(5289),
q(0),
],
q(ori) => [
@@ -78792,47 +78699,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(orn) => [
- q(5299),
+ q(5290),
q(0),
],
q(oro) => [
- q(5300),
+ q(5291),
q(0),
],
q(orr) => [
- q(5301),
+ q(5292),
q(0),
],
q(ors) => [
- q(5302),
+ q(5293),
q(0),
],
q(ort) => [
- q(5303),
+ q(5294),
q(0),
],
q(oru) => [
- q(5304),
+ q(5295),
q(0),
],
q(orv) => [
- q(5305),
+ q(5296),
q(0),
],
q(orw) => [
- q(5306),
+ q(5297),
q(0),
],
q(orx) => [
- q(5307),
+ q(5298),
q(0),
],
q(ory) => [
- q(5308),
+ q(5299),
q(0),
],
q(orz) => [
- q(5309),
+ q(5300),
q(0),
],
q(osa) => [
@@ -78840,19 +78747,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(osc) => [
- q(5310),
+ q(5301),
q(0),
],
q(osi) => [
- q(5311),
+ q(5302),
q(0),
],
q(oso) => [
- q(5312),
+ q(5303),
q(0),
],
q(osp) => [
- q(5313),
+ q(5304),
q(0),
],
q(oss) => [
@@ -78860,15 +78767,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ost) => [
- q(5314),
+ q(5305),
q(0),
],
q(osu) => [
- q(5315),
+ q(5306),
q(0),
],
q(osx) => [
- q(5316),
+ q(5307),
q(0),
],
q(ota) => [
@@ -78876,35 +78783,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(otb) => [
- q(5317),
+ q(5308),
q(0),
],
q(otd) => [
- q(5318),
+ q(5309),
q(0),
],
q(ote) => [
- q(5319),
+ q(5310),
q(0),
],
q(oti) => [
- q(5320),
+ q(5311),
q(0),
],
q(otk) => [
- q(5321),
+ q(5312),
q(0),
],
q(otl) => [
- q(5322),
+ q(5313),
q(0),
],
q(otm) => [
- q(5323),
+ q(5314),
q(0),
],
q(otn) => [
- q(5324),
+ q(5315),
q(0),
],
q(oto) => [
@@ -78912,87 +78819,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(otq) => [
- q(5325),
+ q(5316),
q(0),
],
q(otr) => [
- q(5326),
+ q(5317),
q(0),
],
q(ots) => [
- q(5327),
+ q(5318),
q(0),
],
q(ott) => [
- q(5328),
+ q(5319),
q(0),
],
q(otu) => [
- q(5329),
+ q(5320),
q(0),
],
q(otw) => [
- q(5330),
+ q(5321),
q(0),
],
q(otx) => [
- q(5331),
+ q(5322),
q(0),
],
q(oty) => [
- q(5332),
+ q(5323),
q(0),
],
q(otz) => [
- q(5333),
+ q(5324),
q(0),
],
q(oua) => [
- q(5334),
+ q(5325),
q(0),
],
q(oub) => [
- q(5335),
+ q(5326),
q(0),
],
q(oue) => [
- q(5336),
+ q(5327),
q(0),
],
q(oui) => [
- q(5337),
+ q(5328),
q(0),
],
q(oum) => [
- q(5338),
+ q(5329),
+ q(0),
+ ],
+ q(ovd) => [
+ q(5330),
q(0),
],
q(owi) => [
- q(5339),
+ q(5331),
q(0),
],
q(owl) => [
- q(5340),
+ q(5332),
q(0),
],
q(oyb) => [
- q(5341),
+ q(5333),
q(0),
],
q(oyd) => [
- q(5342),
+ q(5334),
q(0),
],
q(oym) => [
- q(5343),
+ q(5335),
q(0),
],
q(oyy) => [
- q(5344),
+ q(5336),
q(0),
],
q(ozm) => [
- q(5345),
+ q(5337),
q(0),
],
q(paa) => [
@@ -79000,23 +78911,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pab) => [
- q(5346),
+ q(5338),
q(0),
],
q(pac) => [
- q(5347),
+ q(5339),
q(0),
],
q(pad) => [
- q(5348),
+ q(5340),
q(0),
],
q(pae) => [
- q(5349),
+ q(5341),
q(0),
],
q(paf) => [
- q(5350),
+ q(5342),
q(0),
],
q(pag) => [
@@ -79024,15 +78935,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pah) => [
- q(5351),
+ q(5343),
q(0),
],
q(pai) => [
- q(5352),
+ q(5344),
q(0),
],
q(pak) => [
- q(5353),
+ q(5345),
q(0),
],
q(pal) => [
@@ -79048,7 +78959,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pao) => [
- q(5354),
+ q(5346),
q(0),
],
q(pap) => [
@@ -79056,19 +78967,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(paq) => [
- q(5355),
+ q(5347),
q(0),
],
q(par) => [
- q(5356),
+ q(5348),
q(0),
],
q(pas) => [
- q(5357),
+ q(5349),
q(0),
],
q(pat) => [
- q(5358),
+ q(5350),
q(0),
],
q(pau) => [
@@ -79076,231 +78987,231 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pav) => [
- q(5359),
+ q(5351),
q(0),
],
q(paw) => [
- q(5360),
+ q(5352),
q(0),
],
q(pax) => [
- q(5361),
+ q(5353),
q(0),
],
q(pay) => [
- q(5362),
+ q(5354),
q(0),
],
q(paz) => [
- q(5363),
+ q(5355),
q(0),
],
q(pbb) => [
- q(5364),
+ q(5356),
q(0),
],
q(pbc) => [
- q(5365),
+ q(5357),
q(0),
],
q(pbe) => [
- q(5366),
+ q(5358),
q(0),
],
q(pbf) => [
- q(5367),
+ q(5359),
q(0),
],
q(pbg) => [
- q(5368),
+ q(5360),
q(0),
],
q(pbh) => [
- q(5369),
+ q(5361),
q(0),
],
q(pbi) => [
- q(5370),
+ q(5362),
q(0),
],
q(pbl) => [
- q(5371),
+ q(5363),
q(0),
],
q(pbn) => [
- q(5372),
+ q(5364),
q(0),
],
q(pbo) => [
- q(5373),
+ q(5365),
q(0),
],
q(pbp) => [
- q(5374),
+ q(5366),
q(0),
],
q(pbr) => [
- q(5375),
+ q(5367),
q(0),
],
q(pbs) => [
- q(5376),
+ q(5368),
q(0),
],
q(pbt) => [
- q(5377),
+ q(5369),
q(0),
],
q(pbu) => [
- q(5378),
+ q(5370),
q(0),
],
q(pbv) => [
- q(5379),
+ q(5371),
q(0),
],
q(pby) => [
- q(5380),
+ q(5372),
q(0),
],
q(pca) => [
- q(5381),
+ q(5373),
q(0),
],
q(pcb) => [
- q(5382),
+ q(5374),
q(0),
],
q(pcc) => [
- q(5383),
+ q(5375),
q(0),
],
q(pcd) => [
- q(5384),
+ q(5376),
q(0),
],
q(pce) => [
- q(5385),
+ q(5377),
q(0),
],
q(pcf) => [
- q(5386),
+ q(5378),
q(0),
],
q(pcg) => [
- q(5387),
+ q(5379),
q(0),
],
q(pch) => [
- q(5388),
+ q(5380),
q(0),
],
q(pci) => [
- q(5389),
+ q(5381),
q(0),
],
q(pcj) => [
- q(5390),
+ q(5382),
q(0),
],
q(pck) => [
- q(5391),
+ q(5383),
q(0),
],
q(pcl) => [
- q(5392),
+ q(5384),
q(0),
],
q(pcm) => [
- q(5393),
+ q(5385),
q(0),
],
q(pcn) => [
- q(5394),
+ q(5386),
q(0),
],
q(pcp) => [
- q(5395),
+ q(5387),
q(0),
],
q(pcw) => [
- q(5396),
+ q(5388),
q(0),
],
q(pda) => [
- q(5397),
+ q(5389),
q(0),
],
q(pdc) => [
- q(5398),
+ q(5390),
q(0),
],
q(pdi) => [
- q(5399),
+ q(5391),
q(0),
],
q(pdn) => [
- q(5400),
+ q(5392),
q(0),
],
q(pdo) => [
- q(5401),
+ q(5393),
q(0),
],
q(pdt) => [
- q(5402),
+ q(5394),
q(0),
],
q(pdu) => [
- q(5403),
+ q(5395),
q(0),
],
q(pea) => [
- q(5404),
+ q(5396),
q(0),
],
q(peb) => [
- q(5405),
+ q(5397),
q(0),
],
q(ped) => [
- q(5406),
+ q(5398),
q(0),
],
q(pee) => [
- q(5407),
+ q(5399),
q(0),
],
q(pef) => [
- q(5408),
+ q(5400),
q(0),
],
q(peg) => [
- q(5409),
+ q(5401),
q(0),
],
q(peh) => [
- q(5410),
+ q(5402),
q(0),
],
q(pei) => [
- q(5411),
+ q(5403),
q(0),
],
q(pej) => [
- q(5412),
+ q(5404),
q(0),
],
q(pek) => [
- q(5413),
+ q(5405),
q(0),
],
q(pel) => [
- q(5414),
+ q(5406),
q(0),
],
q(pem) => [
- q(5415),
+ q(5407),
q(0),
],
q(peo) => [
@@ -79308,11 +79219,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(pep) => [
- q(5416),
+ q(5408),
q(0),
],
q(peq) => [
- q(5417),
+ q(5409),
q(0),
],
q(per) => [
@@ -79320,87 +79231,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pes) => [
- q(5418),
+ q(5410),
q(0),
],
q(pev) => [
- q(5419),
+ q(5411),
q(0),
],
q(pex) => [
- q(5420),
+ q(5412),
q(0),
],
q(pey) => [
- q(5421),
+ q(5413),
q(0),
],
q(pez) => [
- q(5422),
+ q(5414),
q(0),
],
q(pfa) => [
- q(5423),
+ q(5415),
q(0),
],
q(pfe) => [
- q(5424),
+ q(5416),
q(0),
],
q(pfl) => [
- q(5425),
+ q(5417),
q(0),
],
q(pga) => [
- q(5426),
+ q(5418),
q(0),
],
q(pgd) => [
- q(5427),
+ q(5419),
q(0),
],
q(pgg) => [
- q(5428),
+ q(5420),
q(0),
],
q(pgi) => [
- q(5429),
+ q(5421),
q(0),
],
q(pgk) => [
- q(5430),
+ q(5422),
q(0),
],
q(pgl) => [
- q(5431),
+ q(5423),
q(0),
],
q(pgn) => [
- q(5432),
+ q(5424),
q(0),
],
q(pgs) => [
- q(5433),
+ q(5425),
q(0),
],
q(pgu) => [
- q(5434),
+ q(5426),
+ q(0),
+ ],
+ q(pgz) => [
+ q(5427),
q(0),
],
q(pha) => [
- q(5435),
+ q(5428),
q(0),
],
q(phd) => [
- q(5436),
+ q(5429),
q(0),
],
q(phg) => [
- q(5437),
+ q(5430),
q(0),
],
q(phh) => [
- q(5438),
+ q(5431),
q(0),
],
q(phi) => [
@@ -79408,15 +79323,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(phk) => [
- q(5439),
+ q(5432),
q(0),
],
q(phl) => [
- q(5440),
+ q(5433),
q(0),
],
q(phm) => [
- q(5441),
+ q(5434),
q(0),
],
q(phn) => [
@@ -79424,199 +79339,199 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pho) => [
- q(5442),
+ q(5435),
q(0),
],
q(phq) => [
- q(5443),
+ q(5436),
q(0),
],
q(phr) => [
- q(5444),
+ q(5437),
q(0),
],
q(pht) => [
- q(5445),
+ q(5438),
q(0),
],
q(phu) => [
- q(5446),
+ q(5439),
q(0),
],
q(phv) => [
- q(5447),
+ q(5440),
q(0),
],
q(phw) => [
- q(5448),
+ q(5441),
q(0),
],
q(pia) => [
- q(5449),
+ q(5442),
q(0),
],
q(pib) => [
- q(5450),
+ q(5443),
q(0),
],
q(pic) => [
- q(5451),
+ q(5444),
q(0),
],
q(pid) => [
- q(5452),
+ q(5445),
q(0),
],
q(pie) => [
- q(5453),
+ q(5446),
q(0),
],
q(pif) => [
- q(5454),
+ q(5447),
q(0),
],
q(pig) => [
- q(5455),
+ q(5448),
q(0),
],
q(pih) => [
- q(5456),
+ q(5449),
q(0),
],
q(pii) => [
- q(5457),
+ q(5450),
q(0),
],
q(pij) => [
- q(5458),
+ q(5451),
q(0),
],
q(pil) => [
- q(5459),
+ q(5452),
q(0),
],
q(pim) => [
- q(5460),
+ q(5453),
q(0),
],
q(pin) => [
- q(5461),
+ q(5454),
q(0),
],
q(pio) => [
- q(5462),
+ q(5455),
q(0),
],
q(pip) => [
- q(5463),
+ q(5456),
q(0),
],
q(pir) => [
- q(5464),
+ q(5457),
q(0),
],
q(pis) => [
- q(5465),
+ q(5458),
q(0),
],
q(pit) => [
- q(5466),
+ q(5459),
q(0),
],
q(piu) => [
- q(5467),
+ q(5460),
q(0),
],
q(piv) => [
- q(5468),
+ q(5461),
q(0),
],
q(piw) => [
- q(5469),
+ q(5462),
q(0),
],
q(pix) => [
- q(5470),
+ q(5463),
q(0),
],
q(piy) => [
- q(5471),
+ q(5464),
q(0),
],
q(piz) => [
- q(5472),
+ q(5465),
q(0),
],
q(pjt) => [
- q(5473),
+ q(5466),
q(0),
],
q(pka) => [
- q(5474),
+ q(5467),
q(0),
],
q(pkb) => [
- q(5475),
+ q(5468),
q(0),
],
q(pkc) => [
- q(5476),
+ q(5469),
q(0),
],
q(pkg) => [
- q(5477),
+ q(5470),
q(0),
],
q(pkh) => [
- q(5478),
+ q(5471),
q(0),
],
q(pkn) => [
- q(5479),
+ q(5472),
q(0),
],
q(pko) => [
- q(5480),
+ q(5473),
q(0),
],
q(pkp) => [
- q(5481),
+ q(5474),
q(0),
],
q(pkr) => [
- q(5482),
+ q(5475),
q(0),
],
q(pks) => [
- q(5483),
+ q(5476),
q(0),
],
q(pkt) => [
- q(5484),
+ q(5477),
q(0),
],
q(pku) => [
- q(5485),
+ q(5478),
q(0),
],
q(pla) => [
- q(5486),
+ q(5479),
q(0),
],
q(plb) => [
- q(5487),
+ q(5480),
q(0),
],
q(plc) => [
- q(5488),
+ q(5481),
q(0),
],
q(pld) => [
- q(5489),
+ q(5482),
q(0),
],
q(ple) => [
- q(5490),
+ q(5483),
q(0),
],
q(plf) => [
@@ -79624,11 +79539,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(plg) => [
- q(5491),
+ q(5484),
q(0),
],
q(plh) => [
- q(5492),
+ q(5485),
q(0),
],
q(pli) => [
@@ -79636,279 +79551,271 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(plj) => [
- q(5493),
+ q(5486),
q(0),
],
q(plk) => [
- q(5494),
+ q(5487),
q(0),
],
q(pll) => [
- q(5495),
+ q(5488),
q(0),
],
q(pln) => [
- q(5496),
+ q(5489),
q(0),
],
q(plo) => [
- q(5497),
+ q(5490),
q(0),
],
q(plp) => [
- q(5498),
+ q(5491),
q(0),
],
q(plq) => [
- q(5499),
+ q(5492),
q(0),
],
q(plr) => [
- q(5500),
+ q(5493),
q(0),
],
q(pls) => [
- q(5501),
+ q(5494),
q(0),
],
q(plt) => [
- q(5502),
+ q(5495),
q(0),
],
q(plu) => [
- q(5503),
+ q(5496),
q(0),
],
q(plv) => [
- q(5504),
+ q(5497),
q(0),
],
q(plw) => [
- q(5505),
+ q(5498),
q(0),
],
q(ply) => [
- q(5506),
+ q(5499),
q(0),
],
q(plz) => [
- q(5507),
+ q(5500),
q(0),
],
q(pma) => [
- q(5508),
+ q(5501),
q(0),
],
q(pmb) => [
- q(5509),
- q(0),
- ],
- q(pmc) => [
- q(5510),
+ q(5502),
q(0),
],
q(pmd) => [
- q(5511),
+ q(5503),
q(0),
],
q(pme) => [
- q(5512),
+ q(5504),
q(0),
],
q(pmf) => [
- q(5513),
+ q(5505),
q(0),
],
q(pmh) => [
- q(5514),
+ q(5506),
q(0),
],
q(pmi) => [
- q(5515),
+ q(5507),
q(0),
],
q(pmj) => [
- q(5516),
+ q(5508),
q(0),
],
q(pmk) => [
- q(5517),
+ q(5509),
q(0),
],
q(pml) => [
- q(5518),
+ q(5510),
q(0),
],
q(pmm) => [
- q(5519),
+ q(5511),
q(0),
],
q(pmn) => [
- q(5520),
+ q(5512),
q(0),
],
q(pmo) => [
- q(5521),
+ q(5513),
q(0),
],
q(pmq) => [
- q(5522),
+ q(5514),
q(0),
],
q(pmr) => [
- q(5523),
+ q(5515),
q(0),
],
q(pms) => [
- q(5524),
+ q(5516),
q(0),
],
q(pmt) => [
- q(5525),
+ q(5517),
q(0),
],
q(pmw) => [
- q(5526),
+ q(5518),
q(0),
],
q(pmx) => [
- q(5527),
+ q(5519),
q(0),
],
q(pmy) => [
- q(5528),
+ q(5520),
q(0),
],
q(pmz) => [
- q(5529),
+ q(5521),
q(0),
],
q(pna) => [
- q(5530),
+ q(5522),
q(0),
],
q(pnb) => [
- q(5531),
+ q(5523),
q(0),
],
q(pnc) => [
- q(5532),
+ q(5524),
q(0),
],
q(pne) => [
- q(5533),
+ q(5525),
q(0),
],
q(png) => [
- q(5534),
+ q(5526),
q(0),
],
q(pnh) => [
- q(5535),
+ q(5527),
q(0),
],
q(pni) => [
- q(5536),
+ q(5528),
q(0),
],
q(pnj) => [
- q(5537),
+ q(5529),
q(0),
],
q(pnk) => [
- q(5538),
+ q(5530),
q(0),
],
q(pnl) => [
- q(5539),
+ q(5531),
q(0),
],
q(pnm) => [
- q(5540),
+ q(5532),
q(0),
],
q(pnn) => [
- q(5541),
+ q(5533),
q(0),
],
q(pno) => [
- q(5542),
+ q(5534),
q(0),
],
q(pnp) => [
- q(5543),
+ q(5535),
q(0),
],
q(pnq) => [
- q(5544),
+ q(5536),
q(0),
],
q(pnr) => [
- q(5545),
+ q(5537),
q(0),
],
q(pns) => [
- q(5546),
+ q(5538),
q(0),
],
q(pnt) => [
- q(5547),
+ q(5539),
q(0),
],
q(pnu) => [
- q(5548),
+ q(5540),
q(0),
],
q(pnv) => [
- q(5549),
+ q(5541),
q(0),
],
q(pnw) => [
- q(5550),
+ q(5542),
q(0),
],
q(pnx) => [
- q(5551),
+ q(5543),
q(0),
],
q(pny) => [
- q(5552),
+ q(5544),
q(0),
],
q(pnz) => [
- q(5553),
+ q(5545),
q(0),
],
q(poc) => [
- q(5554),
- q(0),
- ],
- q(pod) => [
- q(5555),
+ q(5546),
q(0),
],
q(poe) => [
- q(5556),
+ q(5547),
q(0),
],
q(pof) => [
- q(5557),
+ q(5548),
q(0),
],
q(pog) => [
- q(5558),
+ q(5549),
q(0),
],
q(poh) => [
- q(5559),
+ q(5550),
q(0),
],
q(poi) => [
- q(5560),
+ q(5551),
q(0),
],
q(pok) => [
- q(5561),
+ q(5552),
q(0),
],
q(pol) => [
@@ -79916,7 +79823,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pom) => [
- q(5562),
+ q(5553),
q(0),
],
q(pon) => [
@@ -79924,15 +79831,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(poo) => [
- q(5563),
+ q(5554),
q(0),
],
q(pop) => [
- q(5564),
+ q(5555),
q(0),
],
q(poq) => [
- q(5565),
+ q(5556),
q(0),
],
q(por) => [
@@ -79940,87 +79847,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pos) => [
- q(5566),
+ q(5557),
q(0),
],
q(pot) => [
- q(5567),
+ q(5558),
q(0),
],
q(pov) => [
- q(5568),
+ q(5559),
q(0),
],
q(pow) => [
- q(5569),
+ q(5560),
q(0),
],
q(pox) => [
- q(5570),
+ q(5561),
q(0),
],
q(poy) => [
- q(5571),
+ q(5562),
q(0),
],
q(poz) => [
q(0520),
q(0),
],
- q(ppa) => [
- q(5572),
- q(0),
- ],
q(ppe) => [
- q(5573),
+ q(5563),
q(0),
],
q(ppi) => [
- q(5574),
+ q(5564),
q(0),
],
q(ppk) => [
- q(5575),
+ q(5565),
q(0),
],
q(ppl) => [
- q(5576),
+ q(5566),
q(0),
],
q(ppm) => [
- q(5577),
+ q(5567),
q(0),
],
q(ppn) => [
- q(5578),
+ q(5568),
q(0),
],
q(ppo) => [
- q(5579),
+ q(5569),
q(0),
],
q(ppp) => [
- q(5580),
+ q(5570),
q(0),
],
q(ppq) => [
- q(5581),
+ q(5571),
q(0),
],
q(pps) => [
- q(5582),
+ q(5572),
q(0),
],
q(ppt) => [
- q(5583),
+ q(5573),
q(0),
],
q(ppu) => [
- q(5584),
+ q(5574),
q(0),
],
q(pqa) => [
- q(5585),
+ q(5575),
q(0),
],
q(pqe) => [
@@ -80028,7 +79931,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(pqm) => [
- q(5586),
+ q(5576),
q(0),
],
q(pqw) => [
@@ -80040,51 +79943,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(prb) => [
- q(5587),
+ q(5577),
q(0),
],
q(prc) => [
- q(5588),
+ q(5578),
q(0),
],
q(prd) => [
- q(5589),
+ q(5579),
q(0),
],
q(pre) => [
- q(5590),
+ q(5580),
q(0),
],
q(prf) => [
- q(5591),
+ q(5581),
q(0),
],
q(prg) => [
- q(5592),
+ q(5582),
q(0),
],
q(prh) => [
- q(5593),
+ q(5583),
q(0),
],
q(pri) => [
- q(5594),
+ q(5584),
q(0),
],
q(prk) => [
- q(5595),
+ q(5585),
q(0),
],
q(prl) => [
- q(5596),
+ q(5586),
q(0),
],
q(prm) => [
- q(5597),
+ q(5587),
q(0),
],
q(prn) => [
- q(5598),
+ q(5588),
q(0),
],
q(pro) => [
@@ -80092,231 +79995,227 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(prp) => [
- q(5599),
+ q(5589),
q(0),
],
q(prq) => [
- q(5600),
+ q(5590),
q(0),
],
q(prr) => [
- q(5601),
+ q(5591),
q(0),
],
q(prs) => [
- q(5602),
+ q(5592),
q(0),
],
q(prt) => [
- q(5603),
+ q(5593),
q(0),
],
q(pru) => [
- q(5604),
+ q(5594),
q(0),
],
q(prw) => [
- q(5605),
+ q(5595),
q(0),
],
q(prx) => [
- q(5606),
- q(0),
- ],
- q(pry) => [
- q(5607),
+ q(5596),
q(0),
],
q(prz) => [
- q(5608),
+ q(5597),
q(0),
],
q(psa) => [
- q(5609),
+ q(5598),
q(0),
],
q(psc) => [
- q(5610),
+ q(5599),
q(0),
],
q(psd) => [
- q(5611),
+ q(5600),
q(0),
],
q(pse) => [
- q(5612),
+ q(5601),
q(0),
],
q(psg) => [
- q(5613),
+ q(5602),
q(0),
],
q(psh) => [
- q(5614),
+ q(5603),
q(0),
],
q(psi) => [
- q(5615),
+ q(5604),
q(0),
],
q(psl) => [
- q(5616),
+ q(5605),
q(0),
],
q(psm) => [
- q(5617),
+ q(5606),
q(0),
],
q(psn) => [
- q(5618),
+ q(5607),
q(0),
],
q(pso) => [
- q(5619),
+ q(5608),
q(0),
],
q(psp) => [
- q(5620),
+ q(5609),
q(0),
],
q(psq) => [
- q(5621),
+ q(5610),
q(0),
],
q(psr) => [
- q(5622),
+ q(5611),
q(0),
],
q(pss) => [
- q(5623),
+ q(5612),
q(0),
],
q(pst) => [
- q(5624),
+ q(5613),
q(0),
],
q(psu) => [
- q(5625),
+ q(5614),
q(0),
],
q(psw) => [
- q(5626),
+ q(5615),
q(0),
],
q(psy) => [
- q(5627),
+ q(5616),
q(0),
],
q(pta) => [
- q(5628),
+ q(5617),
q(0),
],
q(pth) => [
- q(5629),
+ q(5618),
q(0),
],
q(pti) => [
- q(5630),
+ q(5619),
q(0),
],
q(ptn) => [
- q(5631),
+ q(5620),
q(0),
],
q(pto) => [
- q(5632),
+ q(5621),
q(0),
],
q(ptp) => [
- q(5633),
+ q(5622),
q(0),
],
q(ptq) => [
- q(5634),
+ q(5623),
q(0),
],
q(ptr) => [
- q(5635),
+ q(5624),
q(0),
],
q(ptt) => [
- q(5636),
+ q(5625),
q(0),
],
q(ptu) => [
- q(5637),
+ q(5626),
q(0),
],
q(ptv) => [
- q(5638),
+ q(5627),
q(0),
],
q(ptw) => [
- q(5639),
+ q(5628),
q(0),
],
q(pty) => [
- q(5640),
+ q(5629),
q(0),
],
q(pua) => [
- q(5641),
+ q(5630),
q(0),
],
q(pub) => [
- q(5642),
+ q(5631),
q(0),
],
q(puc) => [
- q(5643),
+ q(5632),
q(0),
],
q(pud) => [
- q(5644),
+ q(5633),
q(0),
],
q(pue) => [
- q(5645),
+ q(5634),
q(0),
],
q(puf) => [
- q(5646),
+ q(5635),
q(0),
],
q(pug) => [
- q(5647),
+ q(5636),
q(0),
],
q(pui) => [
- q(5648),
+ q(5637),
q(0),
],
q(puj) => [
- q(5649),
+ q(5638),
q(0),
],
q(puk) => [
- q(5650),
+ q(5639),
q(0),
],
q(pum) => [
- q(5651),
+ q(5640),
q(0),
],
q(puo) => [
- q(5652),
+ q(5641),
q(0),
],
q(pup) => [
- q(5653),
+ q(5642),
q(0),
],
q(puq) => [
- q(5654),
+ q(5643),
q(0),
],
q(pur) => [
- q(5655),
+ q(5644),
q(0),
],
q(pus) => [
@@ -80324,95 +80223,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(put) => [
- q(5656),
+ q(5645),
q(0),
],
q(puu) => [
- q(5657),
+ q(5646),
q(0),
],
q(puw) => [
- q(5658),
+ q(5647),
q(0),
],
q(pux) => [
- q(5659),
+ q(5648),
q(0),
],
q(puy) => [
- q(5660),
+ q(5649),
q(0),
],
q(pwa) => [
- q(5661),
+ q(5650),
q(0),
],
q(pwb) => [
- q(5662),
+ q(5651),
q(0),
],
q(pwg) => [
- q(5663),
+ q(5652),
q(0),
],
q(pwi) => [
- q(5664),
+ q(5653),
q(0),
],
q(pwm) => [
- q(5665),
+ q(5654),
q(0),
],
q(pwn) => [
- q(5666),
+ q(5655),
q(0),
],
q(pwo) => [
- q(5667),
+ q(5656),
q(0),
],
q(pwr) => [
- q(5668),
+ q(5657),
q(0),
],
q(pww) => [
- q(5669),
+ q(5658),
q(0),
],
q(pxm) => [
- q(5670),
+ q(5659),
q(0),
],
q(pye) => [
- q(5671),
+ q(5660),
q(0),
],
q(pym) => [
- q(5672),
+ q(5661),
q(0),
],
q(pyn) => [
- q(5673),
+ q(5662),
q(0),
],
q(pys) => [
- q(5674),
+ q(5663),
q(0),
],
q(pyu) => [
- q(5675),
+ q(5664),
q(0),
],
q(pyx) => [
- q(5676),
+ q(5665),
q(0),
],
q(pyy) => [
- q(5677),
+ q(5666),
q(0),
],
q(pzn) => [
- q(5678),
+ q(5667),
q(0),
],
q(qtz) => [
@@ -80420,19 +80319,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(qua) => [
- q(5679),
+ q(5668),
q(0),
],
q(qub) => [
- q(5680),
+ q(5669),
q(0),
],
q(quc) => [
- q(5681),
+ q(5670),
q(0),
],
q(qud) => [
- q(5682),
+ q(5671),
q(0),
],
q(que) => [
@@ -80440,139 +80339,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(quf) => [
- q(5683),
+ q(5672),
q(0),
],
q(qug) => [
- q(5684),
+ q(5673),
q(0),
],
q(quh) => [
- q(5685),
+ q(5674),
q(0),
],
q(qui) => [
- q(5686),
+ q(5675),
q(0),
],
q(quk) => [
- q(5687),
+ q(5676),
q(0),
],
q(qul) => [
- q(5688),
+ q(5677),
q(0),
],
q(qum) => [
- q(5689),
+ q(5678),
q(0),
],
q(qun) => [
- q(5690),
+ q(5679),
q(0),
],
q(qup) => [
- q(5691),
+ q(5680),
q(0),
],
q(quq) => [
- q(5692),
+ q(5681),
q(0),
],
q(qur) => [
- q(5693),
+ q(5682),
q(0),
],
q(qus) => [
- q(5694),
+ q(5683),
q(0),
],
q(quv) => [
- q(5695),
+ q(5684),
q(0),
],
q(quw) => [
- q(5696),
+ q(5685),
q(0),
],
q(qux) => [
- q(5697),
+ q(5686),
q(0),
],
q(quy) => [
- q(5698),
+ q(5687),
q(0),
],
q(quz) => [
- q(5699),
+ q(5688),
q(0),
],
q(qva) => [
- q(5700),
+ q(5689),
q(0),
],
q(qvc) => [
- q(5701),
+ q(5690),
q(0),
],
q(qve) => [
- q(5702),
+ q(5691),
q(0),
],
q(qvh) => [
- q(5703),
+ q(5692),
q(0),
],
q(qvi) => [
- q(5704),
+ q(5693),
q(0),
],
q(qvj) => [
- q(5705),
+ q(5694),
q(0),
],
q(qvl) => [
- q(5706),
+ q(5695),
q(0),
],
q(qvm) => [
- q(5707),
+ q(5696),
q(0),
],
q(qvn) => [
- q(5708),
+ q(5697),
q(0),
],
q(qvo) => [
- q(5709),
+ q(5698),
q(0),
],
q(qvp) => [
- q(5710),
+ q(5699),
q(0),
],
q(qvs) => [
- q(5711),
+ q(5700),
q(0),
],
q(qvw) => [
- q(5712),
+ q(5701),
q(0),
],
q(qvy) => [
- q(5713),
+ q(5702),
q(0),
],
q(qvz) => [
- q(5714),
+ q(5703),
q(0),
],
q(qwa) => [
- q(5715),
+ q(5704),
q(0),
],
q(qwc) => [
- q(5716),
+ q(5705),
q(0),
],
q(qwe) => [
@@ -80580,111 +80479,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(qwh) => [
- q(5717),
+ q(5706),
q(0),
],
q(qwm) => [
- q(5718),
+ q(5707),
q(0),
],
q(qws) => [
- q(5719),
+ q(5708),
q(0),
],
q(qwt) => [
- q(5720),
+ q(5709),
q(0),
],
q(qxa) => [
- q(5721),
+ q(5710),
q(0),
],
q(qxc) => [
- q(5722),
+ q(5711),
q(0),
],
q(qxh) => [
- q(5723),
+ q(5712),
q(0),
],
q(qxl) => [
- q(5724),
+ q(5713),
q(0),
],
q(qxn) => [
- q(5725),
+ q(5714),
q(0),
],
q(qxo) => [
- q(5726),
+ q(5715),
q(0),
],
q(qxp) => [
- q(5727),
+ q(5716),
q(0),
],
q(qxq) => [
- q(5728),
+ q(5717),
q(0),
],
q(qxr) => [
- q(5729),
+ q(5718),
q(0),
],
q(qxs) => [
- q(5730),
+ q(5719),
q(0),
],
q(qxt) => [
- q(5731),
+ q(5720),
q(0),
],
q(qxu) => [
- q(5732),
+ q(5721),
q(0),
],
q(qxw) => [
- q(5733),
+ q(5722),
q(0),
],
q(qya) => [
- q(5734),
+ q(5723),
q(0),
],
q(qyp) => [
- q(5735),
+ q(5724),
q(0),
],
q(raa) => [
- q(5736),
+ q(5725),
q(0),
],
q(rab) => [
- q(5737),
+ q(5726),
q(0),
],
q(rac) => [
- q(5738),
+ q(5727),
q(0),
],
q(rad) => [
- q(5739),
+ q(5728),
q(0),
],
q(raf) => [
- q(5740),
+ q(5729),
q(0),
],
q(rag) => [
- q(5741),
+ q(5730),
q(0),
],
q(rah) => [
- q(5742),
+ q(5731),
q(0),
],
q(rai) => [
- q(5743),
+ q(5732),
q(0),
],
q(raj) => [
@@ -80692,23 +80591,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(rak) => [
- q(5744),
+ q(5733),
q(0),
],
q(ral) => [
- q(5745),
+ q(5734),
q(0),
],
q(ram) => [
- q(5746),
+ q(5735),
q(0),
],
q(ran) => [
- q(5747),
+ q(5736),
q(0),
],
q(rao) => [
- q(5748),
+ q(5737),
q(0),
],
q(rap) => [
@@ -80716,7 +80615,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(raq) => [
- q(5749),
+ q(5738),
q(0),
],
q(rar) => [
@@ -80724,351 +80623,347 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ras) => [
- q(5750),
+ q(5739),
q(0),
],
q(rat) => [
- q(5751),
+ q(5740),
q(0),
],
q(rau) => [
- q(5752),
+ q(5741),
q(0),
],
q(rav) => [
- q(5753),
+ q(5742),
q(0),
],
q(raw) => [
- q(5754),
+ q(5743),
q(0),
],
q(rax) => [
- q(5755),
+ q(5744),
q(0),
],
q(ray) => [
- q(5756),
+ q(5745),
q(0),
],
q(raz) => [
- q(5757),
+ q(5746),
q(0),
],
q(rbb) => [
- q(5758),
+ q(5747),
q(0),
],
q(rbk) => [
- q(5759),
+ q(5748),
q(0),
],
q(rbl) => [
- q(5760),
+ q(5749),
q(0),
],
q(rbp) => [
- q(5761),
+ q(5750),
q(0),
],
q(rcf) => [
- q(5762),
+ q(5751),
q(0),
],
q(rdb) => [
- q(5763),
+ q(5752),
q(0),
],
q(rea) => [
- q(5764),
+ q(5753),
q(0),
],
q(reb) => [
- q(5765),
+ q(5754),
q(0),
],
q(ree) => [
- q(5766),
+ q(5755),
q(0),
],
q(reg) => [
- q(5767),
+ q(5756),
q(0),
],
q(rei) => [
- q(5768),
+ q(5757),
q(0),
],
q(rej) => [
- q(5769),
+ q(5758),
q(0),
],
q(rel) => [
- q(5770),
+ q(5759),
q(0),
],
q(rem) => [
- q(5771),
+ q(5760),
q(0),
],
q(ren) => [
- q(5772),
+ q(5761),
q(0),
],
q(rer) => [
- q(5773),
+ q(5762),
q(0),
],
q(res) => [
- q(5774),
+ q(5763),
q(0),
],
q(ret) => [
- q(5775),
+ q(5764),
q(0),
],
q(rey) => [
- q(5776),
+ q(5765),
q(0),
],
q(rga) => [
- q(5777),
+ q(5766),
q(0),
],
q(rge) => [
- q(5778),
+ q(5767),
q(0),
],
q(rgk) => [
- q(5779),
+ q(5768),
q(0),
],
q(rgn) => [
- q(5780),
+ q(5769),
q(0),
],
q(rgr) => [
- q(5781),
+ q(5770),
q(0),
],
q(rgs) => [
- q(5782),
+ q(5771),
q(0),
],
q(rgu) => [
- q(5783),
+ q(5772),
q(0),
],
q(rhg) => [
- q(5784),
+ q(5773),
q(0),
],
q(rhp) => [
- q(5785),
+ q(5774),
q(0),
],
q(ria) => [
- q(5786),
+ q(5775),
q(0),
],
q(rie) => [
- q(5787),
+ q(5776),
q(0),
],
q(rif) => [
- q(5788),
+ q(5777),
q(0),
],
q(ril) => [
- q(5789),
+ q(5778),
q(0),
],
q(rim) => [
- q(5790),
+ q(5779),
q(0),
],
q(rin) => [
- q(5791),
+ q(5780),
q(0),
],
q(rir) => [
- q(5792),
+ q(5781),
q(0),
],
q(rit) => [
- q(5793),
+ q(5782),
q(0),
],
q(riu) => [
- q(5794),
+ q(5783),
q(0),
],
q(rjg) => [
- q(5795),
+ q(5784),
q(0),
],
q(rji) => [
- q(5796),
+ q(5785),
q(0),
],
q(rjs) => [
- q(5797),
+ q(5786),
q(0),
],
q(rka) => [
- q(5798),
+ q(5787),
q(0),
],
q(rkb) => [
- q(5799),
+ q(5788),
q(0),
],
q(rkh) => [
- q(5800),
+ q(5789),
q(0),
],
q(rki) => [
- q(5801),
+ q(5790),
q(0),
],
q(rkm) => [
- q(5802),
+ q(5791),
q(0),
],
q(rkt) => [
- q(5803),
+ q(5792),
q(0),
],
q(rkw) => [
- q(5804),
+ q(5793),
q(0),
],
q(rma) => [
- q(5805),
+ q(5794),
q(0),
],
q(rmb) => [
- q(5806),
+ q(5795),
q(0),
],
q(rmc) => [
- q(5807),
+ q(5796),
q(0),
],
q(rmd) => [
- q(5808),
+ q(5797),
q(0),
],
q(rme) => [
- q(5809),
+ q(5798),
q(0),
],
q(rmf) => [
- q(5810),
+ q(5799),
q(0),
],
q(rmg) => [
- q(5811),
+ q(5800),
q(0),
],
q(rmh) => [
- q(5812),
+ q(5801),
q(0),
],
q(rmi) => [
- q(5813),
+ q(5802),
q(0),
],
q(rmk) => [
- q(5814),
+ q(5803),
q(0),
],
q(rml) => [
- q(5815),
+ q(5804),
q(0),
],
q(rmm) => [
- q(5816),
+ q(5805),
q(0),
],
q(rmn) => [
- q(5817),
+ q(5806),
q(0),
],
q(rmo) => [
- q(5818),
+ q(5807),
q(0),
],
q(rmp) => [
- q(5819),
+ q(5808),
q(0),
],
q(rmq) => [
- q(5820),
+ q(5809),
q(0),
],
q(rms) => [
- q(5821),
+ q(5810),
q(0),
],
q(rmt) => [
- q(5822),
+ q(5811),
q(0),
],
q(rmu) => [
- q(5823),
+ q(5812),
q(0),
],
q(rmv) => [
- q(5824),
+ q(5813),
q(0),
],
q(rmw) => [
- q(5825),
+ q(5814),
q(0),
],
q(rmx) => [
- q(5826),
+ q(5815),
q(0),
],
q(rmy) => [
- q(5827),
+ q(5816),
q(0),
],
q(rmz) => [
- q(5828),
- q(0),
- ],
- q(rna) => [
- q(5829),
+ q(5817),
q(0),
],
q(rnd) => [
- q(5830),
+ q(5818),
q(0),
],
q(rng) => [
- q(5831),
+ q(5819),
q(0),
],
q(rnl) => [
- q(5832),
+ q(5820),
q(0),
],
q(rnn) => [
- q(5833),
+ q(5821),
q(0),
],
q(rnp) => [
- q(5834),
+ q(5822),
q(0),
],
q(rnr) => [
- q(5835),
+ q(5823),
q(0),
],
q(rnw) => [
- q(5836),
+ q(5824),
q(0),
],
q(roa) => [
@@ -81076,27 +80971,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(rob) => [
- q(5837),
+ q(5825),
q(0),
],
q(roc) => [
- q(5838),
+ q(5826),
q(0),
],
q(rod) => [
- q(5839),
+ q(5827),
q(0),
],
q(roe) => [
- q(5840),
+ q(5828),
q(0),
],
q(rof) => [
- q(5841),
+ q(5829),
q(0),
],
q(rog) => [
- q(5842),
+ q(5830),
q(0),
],
q(roh) => [
@@ -81104,7 +80999,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(rol) => [
- q(5843),
+ q(5831),
q(0),
],
q(rom) => [
@@ -81112,107 +81007,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(roo) => [
- q(5844),
+ q(5832),
q(0),
],
q(rop) => [
- q(5845),
+ q(5833),
q(0),
],
q(ror) => [
- q(5846),
+ q(5834),
q(0),
],
q(rou) => [
- q(5847),
+ q(5835),
q(0),
],
q(row) => [
- q(5848),
+ q(5836),
q(0),
],
q(rpn) => [
- q(5849),
+ q(5837),
q(0),
],
q(rpt) => [
- q(5850),
+ q(5838),
q(0),
],
q(rri) => [
- q(5851),
+ q(5839),
q(0),
],
q(rro) => [
- q(5852),
+ q(5840),
q(0),
],
q(rrt) => [
- q(5853),
+ q(5841),
q(0),
],
q(rsb) => [
- q(5854),
+ q(5842),
q(0),
],
q(rsi) => [
- q(5855),
+ q(5843),
q(0),
],
q(rsl) => [
- q(5856),
+ q(5844),
+ q(0),
+ ],
+ q(rsm) => [
+ q(5845),
q(0),
],
q(rtc) => [
- q(5857),
+ q(5846),
q(0),
],
q(rth) => [
- q(5858),
+ q(5847),
q(0),
],
q(rtm) => [
- q(5859),
+ q(5848),
q(0),
],
q(rts) => [
- q(5860),
+ q(5849),
q(0),
],
q(rtw) => [
- q(5861),
+ q(5850),
q(0),
],
q(rub) => [
- q(5862),
+ q(5851),
q(0),
],
q(ruc) => [
- q(5863),
+ q(5852),
q(0),
],
q(rue) => [
- q(5864),
+ q(5853),
q(0),
],
q(ruf) => [
- q(5865),
+ q(5854),
q(0),
],
q(rug) => [
- q(5866),
+ q(5855),
q(0),
],
q(ruh) => [
- q(5867),
+ q(5856),
q(0),
],
q(rui) => [
- q(5868),
+ q(5857),
q(0),
],
q(ruk) => [
- q(5869),
+ q(5858),
q(0),
],
q(rum) => [
@@ -81224,7 +81123,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ruo) => [
- q(5870),
+ q(5859),
q(0),
],
q(rup) => [
@@ -81232,7 +81131,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(2),
],
q(ruq) => [
- q(5871),
+ q(5860),
q(0),
],
q(rus) => [
@@ -81240,71 +81139,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(rut) => [
- q(5872),
+ q(5861),
q(0),
],
q(ruu) => [
- q(5873),
+ q(5862),
q(0),
],
q(ruy) => [
- q(5874),
+ q(5863),
q(0),
],
q(ruz) => [
- q(5875),
+ q(5864),
q(0),
],
q(rwa) => [
- q(5876),
+ q(5865),
q(0),
],
q(rwk) => [
- q(5877),
+ q(5866),
q(0),
],
q(rwm) => [
- q(5878),
+ q(5867),
q(0),
],
q(rwo) => [
- q(5879),
+ q(5868),
q(0),
],
q(rwr) => [
- q(5880),
+ q(5869),
q(0),
],
q(rxd) => [
- q(5881),
+ q(5870),
q(0),
],
q(rxw) => [
- q(5882),
+ q(5871),
q(0),
],
q(ryn) => [
- q(5883),
+ q(5872),
q(0),
],
q(rys) => [
- q(5884),
+ q(5873),
q(0),
],
q(ryu) => [
- q(5885),
+ q(5874),
+ q(0),
+ ],
+ q(rzh) => [
+ q(5875),
q(0),
],
q(saa) => [
- q(5886),
+ q(5876),
q(0),
],
q(sab) => [
- q(5887),
+ q(5877),
q(0),
],
q(sac) => [
- q(5888),
+ q(5878),
q(0),
],
q(sad) => [
@@ -81312,11 +81215,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sae) => [
- q(5889),
+ q(5879),
q(0),
],
q(saf) => [
- q(5890),
+ q(5880),
q(0),
],
q(sag) => [
@@ -81332,11 +81235,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(saj) => [
- q(5891),
+ q(5881),
q(0),
],
q(sak) => [
- q(5892),
+ q(5882),
q(0),
],
q(sal) => [
@@ -81352,15 +81255,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sao) => [
- q(5893),
+ q(5883),
q(0),
],
q(saq) => [
- q(5894),
+ q(5884),
q(0),
],
q(sar) => [
- q(5895),
+ q(5885),
q(0),
],
q(sas) => [
@@ -81372,163 +81275,163 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sau) => [
- q(5896),
+ q(5886),
q(0),
],
q(sav) => [
- q(5897),
+ q(5887),
q(0),
],
q(saw) => [
- q(5898),
+ q(5888),
q(0),
],
q(sax) => [
- q(5899),
+ q(5889),
q(0),
],
q(say) => [
- q(5900),
+ q(5890),
q(0),
],
q(saz) => [
- q(5901),
+ q(5891),
q(0),
],
q(sba) => [
- q(5902),
+ q(5892),
q(0),
],
q(sbb) => [
- q(5903),
+ q(5893),
q(0),
],
q(sbc) => [
- q(5904),
+ q(5894),
q(0),
],
q(sbd) => [
- q(5905),
+ q(5895),
q(0),
],
q(sbe) => [
- q(5906),
+ q(5896),
q(0),
],
q(sbf) => [
- q(5907),
+ q(5897),
q(0),
],
q(sbg) => [
- q(5908),
+ q(5898),
q(0),
],
q(sbh) => [
- q(5909),
+ q(5899),
q(0),
],
q(sbi) => [
- q(5910),
+ q(5900),
q(0),
],
q(sbj) => [
- q(5911),
+ q(5901),
q(0),
],
q(sbk) => [
- q(5912),
+ q(5902),
q(0),
],
q(sbl) => [
- q(5913),
+ q(5903),
q(0),
],
q(sbm) => [
- q(5914),
+ q(5904),
q(0),
],
q(sbn) => [
- q(5915),
+ q(5905),
q(0),
],
q(sbo) => [
- q(5916),
+ q(5906),
q(0),
],
q(sbp) => [
- q(5917),
+ q(5907),
q(0),
],
q(sbq) => [
- q(5918),
+ q(5908),
q(0),
],
q(sbr) => [
- q(5919),
+ q(5909),
q(0),
],
q(sbs) => [
- q(5920),
+ q(5910),
q(0),
],
q(sbt) => [
- q(5921),
+ q(5911),
q(0),
],
q(sbu) => [
- q(5922),
+ q(5912),
q(0),
],
q(sbv) => [
- q(5923),
+ q(5913),
q(0),
],
q(sbw) => [
- q(5924),
+ q(5914),
q(0),
],
q(sbx) => [
- q(5925),
+ q(5915),
q(0),
],
q(sby) => [
- q(5926),
+ q(5916),
q(0),
],
q(sbz) => [
- q(5927),
+ q(5917),
q(0),
],
q(scb) => [
- q(5928),
+ q(5918),
q(0),
],
q(sce) => [
- q(5929),
+ q(5919),
q(0),
],
q(scf) => [
- q(5930),
+ q(5920),
q(0),
],
q(scg) => [
- q(5931),
+ q(5921),
q(0),
],
q(sch) => [
- q(5932),
+ q(5922),
q(0),
],
q(sci) => [
- q(5933),
+ q(5923),
q(0),
],
q(sck) => [
- q(5934),
+ q(5924),
q(0),
],
q(scl) => [
- q(5935),
+ q(5925),
q(0),
],
q(scn) => [
@@ -81540,103 +81443,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(scp) => [
- q(5936),
+ q(5926),
q(0),
],
q(scq) => [
- q(5937),
+ q(5927),
q(0),
],
q(scs) => [
- q(5938),
+ q(5928),
q(0),
],
q(scu) => [
- q(5939),
+ q(5929),
q(0),
],
q(scv) => [
- q(5940),
+ q(5930),
q(0),
],
q(scw) => [
- q(5941),
+ q(5931),
q(0),
],
q(scx) => [
- q(5942),
+ q(5932),
q(0),
],
q(sda) => [
- q(5943),
+ q(5933),
q(0),
],
q(sdb) => [
- q(5944),
+ q(5934),
q(0),
],
q(sdc) => [
- q(5945),
+ q(5935),
q(0),
],
q(sde) => [
- q(5946),
+ q(5936),
q(0),
],
q(sdf) => [
- q(5947),
+ q(5937),
q(0),
],
q(sdg) => [
- q(5948),
+ q(5938),
q(0),
],
q(sdh) => [
- q(5949),
+ q(5939),
q(0),
],
q(sdj) => [
- q(5950),
+ q(5940),
q(0),
],
q(sdk) => [
- q(5951),
+ q(5941),
q(0),
],
q(sdl) => [
- q(5952),
+ q(5942),
q(0),
],
q(sdm) => [
- q(5953),
+ q(5943),
q(0),
],
q(sdn) => [
- q(5954),
+ q(5944),
q(0),
],
q(sdo) => [
- q(5955),
+ q(5945),
q(0),
],
q(sdp) => [
- q(5956),
+ q(5946),
q(0),
],
q(sdr) => [
- q(5957),
+ q(5947),
q(0),
],
q(sds) => [
- q(5958),
+ q(5948),
q(0),
],
q(sdt) => [
- q(5959),
+ q(5949),
q(0),
],
q(sdu) => [
- q(5960),
+ q(5950),
q(0),
],
q(sdv) => [
@@ -81644,55 +81547,55 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sdx) => [
- q(5961),
+ q(5951),
q(0),
],
q(sdz) => [
- q(5962),
+ q(5952),
q(0),
],
q(sea) => [
- q(5963),
+ q(5953),
q(0),
],
q(seb) => [
- q(5964),
+ q(5954),
q(0),
],
q(sec) => [
- q(5965),
+ q(5955),
q(0),
],
q(sed) => [
- q(5966),
+ q(5956),
q(0),
],
q(see) => [
- q(5967),
+ q(5957),
q(0),
],
q(sef) => [
- q(5968),
+ q(5958),
q(0),
],
q(seg) => [
- q(5969),
+ q(5959),
q(0),
],
q(seh) => [
- q(5970),
+ q(5960),
q(0),
],
q(sei) => [
- q(5971),
+ q(5961),
q(0),
],
q(sej) => [
- q(5972),
+ q(5962),
q(0),
],
q(sek) => [
- q(5973),
+ q(5963),
q(0),
],
q(sel) => [
@@ -81704,71 +81607,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sen) => [
- q(5974),
+ q(5964),
q(0),
],
q(seo) => [
- q(5975),
+ q(5965),
q(0),
],
q(sep) => [
- q(5976),
+ q(5966),
q(0),
],
q(seq) => [
- q(5977),
+ q(5967),
q(0),
],
q(ser) => [
- q(5978),
+ q(5968),
q(0),
],
q(ses) => [
- q(5979),
+ q(5969),
q(0),
],
q(set) => [
- q(5980),
+ q(5970),
q(0),
],
q(seu) => [
- q(5981),
+ q(5971),
q(0),
],
q(sev) => [
- q(5982),
+ q(5972),
q(0),
],
q(sew) => [
- q(5983),
+ q(5973),
q(0),
],
q(sey) => [
- q(5984),
+ q(5974),
q(0),
],
q(sez) => [
- q(5985),
+ q(5975),
q(0),
],
q(sfb) => [
- q(5986),
+ q(5976),
q(0),
],
q(sfe) => [
- q(5987),
+ q(5977),
q(0),
],
q(sfm) => [
- q(5988),
+ q(5978),
q(0),
],
q(sfs) => [
- q(5989),
+ q(5979),
q(0),
],
q(sfw) => [
- q(5990),
+ q(5980),
q(0),
],
q(sga) => [
@@ -81776,43 +81679,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(sgb) => [
- q(5991),
+ q(5981),
q(0),
],
q(sgc) => [
- q(5992),
+ q(5982),
q(0),
],
q(sgd) => [
- q(5993),
+ q(5983),
q(0),
],
q(sge) => [
- q(5994),
+ q(5984),
q(0),
],
q(sgg) => [
- q(5995),
+ q(5985),
q(0),
],
q(sgh) => [
- q(5996),
+ q(5986),
q(0),
],
q(sgi) => [
- q(5997),
+ q(5987),
q(0),
],
q(sgj) => [
- q(5998),
+ q(5988),
q(0),
],
q(sgk) => [
- q(5999),
+ q(5989),
q(0),
],
q(sgm) => [
- q(6000),
+ q(5990),
q(0),
],
q(sgn) => [
@@ -81820,87 +81723,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sgp) => [
- q(6001),
+ q(5991),
q(0),
],
q(sgr) => [
- q(6002),
+ q(5992),
q(0),
],
q(sgs) => [
- q(6003),
+ q(5993),
q(0),
],
q(sgt) => [
- q(6004),
+ q(5994),
q(0),
],
q(sgu) => [
- q(6005),
+ q(5995),
q(0),
],
q(sgw) => [
- q(6006),
+ q(5996),
q(0),
],
q(sgx) => [
- q(6007),
+ q(5997),
q(0),
],
q(sgy) => [
- q(6008),
+ q(5998),
q(0),
],
q(sgz) => [
- q(6009),
+ q(5999),
q(0),
],
q(sha) => [
- q(6010),
+ q(6000),
q(0),
],
q(shb) => [
- q(6011),
+ q(6001),
q(0),
],
q(shc) => [
- q(6012),
+ q(6002),
q(0),
],
q(shd) => [
- q(6013),
+ q(6003),
q(0),
],
q(she) => [
- q(6014),
+ q(6004),
q(0),
],
q(shg) => [
- q(6015),
+ q(6005),
q(0),
],
q(shh) => [
- q(6016),
+ q(6006),
q(0),
],
q(shi) => [
- q(6017),
+ q(6007),
q(0),
],
q(shj) => [
- q(6018),
+ q(6008),
q(0),
],
q(shk) => [
- q(6019),
+ q(6009),
q(0),
],
q(shl) => [
- q(6020),
+ q(6010),
q(0),
],
q(shm) => [
- q(6021),
+ q(6011),
q(0),
],
q(shn) => [
@@ -81908,59 +81811,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sho) => [
- q(6022),
+ q(6012),
q(0),
],
q(shp) => [
- q(6023),
+ q(6013),
q(0),
],
q(shq) => [
- q(6024),
+ q(6014),
q(0),
],
q(shr) => [
- q(6025),
+ q(6015),
q(0),
],
q(shs) => [
- q(6026),
+ q(6016),
q(0),
],
q(sht) => [
- q(6027),
+ q(6017),
q(0),
],
q(shu) => [
- q(6028),
+ q(6018),
q(0),
],
q(shv) => [
- q(6029),
+ q(6019),
q(0),
],
q(shw) => [
- q(6030),
+ q(6020),
q(0),
],
q(shx) => [
- q(6031),
+ q(6021),
q(0),
],
q(shy) => [
- q(6032),
+ q(6022),
q(0),
],
q(shz) => [
- q(6033),
+ q(6023),
q(0),
],
q(sia) => [
- q(6034),
+ q(6024),
q(0),
],
q(sib) => [
- q(6035),
+ q(6025),
q(0),
],
q(sid) => [
@@ -81968,39 +81871,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sie) => [
- q(6036),
+ q(6026),
q(0),
],
q(sif) => [
- q(6037),
+ q(6027),
q(0),
],
q(sig) => [
- q(6038),
+ q(6028),
q(0),
],
q(sih) => [
- q(6039),
+ q(6029),
q(0),
],
q(sii) => [
- q(6040),
+ q(6030),
q(0),
],
q(sij) => [
- q(6041),
+ q(6031),
q(0),
],
q(sik) => [
- q(6042),
+ q(6032),
q(0),
],
q(sil) => [
- q(6043),
+ q(6033),
q(0),
],
q(sim) => [
- q(6044),
+ q(6034),
q(0),
],
q(sin) => [
@@ -82012,19 +81915,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sip) => [
- q(6045),
+ q(6035),
q(0),
],
q(siq) => [
- q(6046),
+ q(6036),
q(0),
],
q(sir) => [
- q(6047),
+ q(6037),
q(0),
],
q(sis) => [
- q(6048),
+ q(6038),
q(0),
],
q(sit) => [
@@ -82032,191 +81935,191 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(siu) => [
- q(6049),
+ q(6039),
q(0),
],
q(siv) => [
- q(6050),
+ q(6040),
q(0),
],
q(siw) => [
- q(6051),
+ q(6041),
q(0),
],
q(six) => [
- q(6052),
+ q(6042),
q(0),
],
q(siy) => [
- q(6053),
+ q(6043),
q(0),
],
q(siz) => [
- q(6054),
+ q(6044),
q(0),
],
q(sja) => [
- q(6055),
+ q(6045),
q(0),
],
q(sjb) => [
- q(6056),
+ q(6046),
q(0),
],
q(sjd) => [
- q(6057),
+ q(6047),
q(0),
],
q(sje) => [
- q(6058),
+ q(6048),
q(0),
],
q(sjg) => [
- q(6059),
+ q(6049),
q(0),
],
q(sjk) => [
- q(6060),
+ q(6050),
q(0),
],
q(sjl) => [
- q(6061),
+ q(6051),
q(0),
],
q(sjm) => [
- q(6062),
+ q(6052),
q(0),
],
q(sjn) => [
- q(6063),
+ q(6053),
q(0),
],
q(sjo) => [
- q(6064),
+ q(6054),
q(0),
],
q(sjp) => [
- q(6065),
+ q(6055),
q(0),
],
q(sjr) => [
- q(6066),
+ q(6056),
q(0),
],
q(sjs) => [
- q(6067),
+ q(6057),
q(0),
],
q(sjt) => [
- q(6068),
+ q(6058),
q(0),
],
q(sju) => [
- q(6069),
+ q(6059),
q(0),
],
q(sjw) => [
- q(6070),
+ q(6060),
q(0),
],
q(ska) => [
- q(6071),
+ q(6061),
q(0),
],
q(skb) => [
- q(6072),
+ q(6062),
q(0),
],
q(skc) => [
- q(6073),
+ q(6063),
q(0),
],
q(skd) => [
- q(6074),
+ q(6064),
q(0),
],
q(ske) => [
- q(6075),
+ q(6065),
q(0),
],
q(skf) => [
- q(6076),
+ q(6066),
q(0),
],
q(skg) => [
- q(6077),
+ q(6067),
q(0),
],
q(skh) => [
- q(6078),
+ q(6068),
q(0),
],
q(ski) => [
- q(6079),
+ q(6069),
q(0),
],
q(skj) => [
- q(6080),
+ q(6070),
q(0),
],
q(skk) => [
- q(6081),
+ q(6071),
q(0),
],
q(skm) => [
- q(6082),
+ q(6072),
q(0),
],
q(skn) => [
- q(6083),
+ q(6073),
q(0),
],
q(sko) => [
- q(6084),
+ q(6074),
q(0),
],
q(skp) => [
- q(6085),
+ q(6075),
q(0),
],
q(skq) => [
- q(6086),
+ q(6076),
q(0),
],
q(skr) => [
- q(6087),
+ q(6077),
q(0),
],
q(sks) => [
- q(6088),
+ q(6078),
q(0),
],
q(skt) => [
- q(6089),
+ q(6079),
q(0),
],
q(sku) => [
- q(6090),
+ q(6080),
q(0),
],
q(skv) => [
- q(6091),
+ q(6081),
q(0),
],
q(skw) => [
- q(6092),
+ q(6082),
q(0),
],
q(skx) => [
- q(6093),
+ q(6083),
q(0),
],
q(sky) => [
- q(6094),
+ q(6084),
q(0),
],
q(skz) => [
- q(6095),
+ q(6085),
q(0),
],
q(sla) => [
@@ -82224,47 +82127,47 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(slc) => [
- q(5906),
+ q(5896),
q(0),
],
q(sld) => [
- q(6096),
+ q(6086),
q(0),
],
q(sle) => [
- q(6097),
+ q(6087),
q(0),
],
q(slf) => [
- q(6098),
+ q(6088),
q(0),
],
q(slg) => [
- q(6099),
+ q(6089),
q(0),
],
q(slh) => [
- q(6100),
+ q(6090),
q(0),
],
q(sli) => [
- q(6101),
+ q(6091),
q(0),
],
q(slj) => [
- q(6102),
+ q(6092),
q(0),
],
q(sll) => [
- q(6103),
+ q(6093),
q(0),
],
q(slm) => [
- q(6104),
+ q(6094),
q(0),
],
q(sln) => [
- q(6105),
+ q(6095),
q(0),
],
q(slo) => [
@@ -82272,27 +82175,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(slp) => [
- q(6106),
+ q(6096),
q(0),
],
q(slq) => [
- q(6107),
+ q(6097),
q(0),
],
q(slr) => [
- q(6108),
+ q(6098),
q(0),
],
q(sls) => [
- q(6109),
+ q(6099),
q(0),
],
q(slt) => [
- q(6110),
+ q(6100),
q(0),
],
q(slu) => [
- q(6111),
+ q(6101),
q(0),
],
q(slv) => [
@@ -82300,19 +82203,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(slw) => [
- q(6112),
+ q(6102),
q(0),
],
q(slx) => [
- q(6113),
+ q(6103),
q(0),
],
q(sly) => [
- q(6114),
+ q(6104),
q(0),
],
q(slz) => [
- q(6115),
+ q(6105),
q(0),
],
q(sma) => [
@@ -82320,15 +82223,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smb) => [
- q(6116),
+ q(6106),
q(0),
],
q(smc) => [
- q(6117),
+ q(6107),
q(0),
],
q(smd) => [
- q(6118),
+ q(6108),
q(0),
],
q(sme) => [
@@ -82336,15 +82239,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smf) => [
- q(6119),
+ q(6109),
q(0),
],
q(smg) => [
- q(6120),
+ q(6110),
q(0),
],
q(smh) => [
- q(6121),
+ q(6111),
q(0),
],
q(smi) => [
@@ -82356,15 +82259,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smk) => [
- q(6122),
+ q(6112),
q(0),
],
q(sml) => [
- q(6123),
+ q(6113),
q(0),
],
q(smm) => [
- q(6124),
+ q(6114),
q(0),
],
q(smn) => [
@@ -82376,15 +82279,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smp) => [
- q(6125),
+ q(6115),
q(0),
],
q(smq) => [
- q(6126),
+ q(6116),
q(0),
],
q(smr) => [
- q(6127),
+ q(6117),
q(0),
],
q(sms) => [
@@ -82392,31 +82295,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(smt) => [
- q(6128),
+ q(6118),
q(0),
],
q(smu) => [
- q(6129),
+ q(6119),
q(0),
],
q(smv) => [
- q(6130),
+ q(6120),
q(0),
],
q(smw) => [
- q(6131),
+ q(6121),
q(0),
],
q(smx) => [
- q(6132),
+ q(6122),
q(0),
],
q(smy) => [
- q(6133),
+ q(6123),
q(0),
],
q(smz) => [
- q(6134),
+ q(6124),
q(0),
],
q(sna) => [
@@ -82424,11 +82327,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(snb) => [
- q(6135),
+ q(6125),
q(0),
],
q(snc) => [
- q(6136),
+ q(6126),
q(0),
],
q(snd) => [
@@ -82436,27 +82339,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sne) => [
- q(6137),
+ q(6127),
q(0),
],
q(snf) => [
- q(6138),
+ q(6128),
q(0),
],
q(sng) => [
- q(6139),
+ q(6129),
q(0),
],
q(snh) => [
- q(6140),
+ q(6130),
q(0),
],
q(sni) => [
- q(6141),
+ q(6131),
q(0),
],
q(snj) => [
- q(6142),
+ q(6132),
q(0),
],
q(snk) => [
@@ -82464,79 +82367,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(snl) => [
- q(6143),
+ q(6133),
q(0),
],
q(snm) => [
- q(6144),
+ q(6134),
q(0),
],
q(snn) => [
- q(6145),
+ q(6135),
q(0),
],
q(sno) => [
- q(6146),
+ q(6136),
q(0),
],
q(snp) => [
- q(6147),
+ q(6137),
q(0),
],
q(snq) => [
- q(6148),
+ q(6138),
q(0),
],
q(snr) => [
- q(6149),
+ q(6139),
q(0),
],
q(sns) => [
- q(6150),
+ q(6140),
q(0),
],
q(snu) => [
- q(6151),
+ q(6141),
q(0),
],
q(snv) => [
- q(6152),
+ q(6142),
q(0),
],
q(snw) => [
- q(6153),
+ q(6143),
q(0),
],
q(snx) => [
- q(6154),
+ q(6144),
q(0),
],
q(sny) => [
- q(6155),
+ q(6145),
q(0),
],
q(snz) => [
- q(6156),
+ q(6146),
q(0),
],
q(soa) => [
- q(6157),
+ q(6147),
q(0),
],
q(sob) => [
- q(6158),
+ q(6148),
q(0),
],
q(soc) => [
- q(6159),
+ q(6149),
q(0),
],
q(sod) => [
- q(6160),
+ q(6150),
q(0),
],
q(soe) => [
- q(6161),
+ q(6151),
q(0),
],
q(sog) => [
@@ -82544,23 +82447,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(soh) => [
- q(6162),
+ q(6152),
q(0),
],
q(soi) => [
- q(6163),
+ q(6153),
q(0),
],
q(soj) => [
- q(6164),
+ q(6154),
q(0),
],
q(sok) => [
- q(6165),
+ q(6155),
q(0),
],
q(sol) => [
- q(6166),
+ q(6156),
q(0),
],
q(som) => [
@@ -82572,23 +82475,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(soo) => [
- q(6167),
+ q(6157),
q(0),
],
q(sop) => [
- q(6168),
+ q(6158),
q(0),
],
q(soq) => [
- q(6169),
+ q(6159),
q(0),
],
q(sor) => [
- q(6170),
+ q(6160),
q(0),
],
q(sos) => [
- q(6171),
+ q(6161),
q(0),
],
q(sot) => [
@@ -82596,27 +82499,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sou) => [
- q(6172),
+ q(6162),
q(0),
],
q(sov) => [
- q(6173),
+ q(6163),
q(0),
],
q(sow) => [
- q(6174),
+ q(6164),
q(0),
],
q(sox) => [
- q(6175),
+ q(6165),
q(0),
],
q(soy) => [
- q(6176),
+ q(6166),
q(0),
],
q(soz) => [
- q(6177),
+ q(6167),
q(0),
],
q(spa) => [
@@ -82624,91 +82527,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(spb) => [
- q(6178),
+ q(6168),
q(0),
],
q(spc) => [
- q(6179),
+ q(6169),
q(0),
],
q(spd) => [
- q(6180),
+ q(6170),
q(0),
],
q(spe) => [
- q(6181),
+ q(6171),
q(0),
],
q(spg) => [
- q(6182),
+ q(6172),
q(0),
],
q(spi) => [
- q(6183),
+ q(6173),
q(0),
],
q(spk) => [
- q(6184),
+ q(6174),
q(0),
],
q(spl) => [
- q(6185),
+ q(6175),
q(0),
],
q(spm) => [
- q(6186),
+ q(6176),
q(0),
],
q(spn) => [
- q(6187),
+ q(6177),
q(0),
],
q(spo) => [
- q(6188),
+ q(6178),
q(0),
],
q(spp) => [
- q(6189),
+ q(6179),
q(0),
],
q(spq) => [
- q(6190),
+ q(6180),
q(0),
],
q(spr) => [
- q(6191),
+ q(6181),
q(0),
],
q(sps) => [
- q(6192),
+ q(6182),
q(0),
],
q(spt) => [
- q(6193),
+ q(6183),
q(0),
],
q(spu) => [
- q(6194),
+ q(6184),
q(0),
],
q(spv) => [
- q(6195),
+ q(6185),
q(0),
],
q(spx) => [
- q(6196),
+ q(6186),
q(0),
],
q(spy) => [
- q(6197),
+ q(6187),
q(0),
],
q(sqa) => [
- q(6198),
+ q(6188),
q(0),
],
q(sqh) => [
- q(6199),
+ q(6189),
q(0),
],
q(sqj) => [
@@ -82716,51 +82619,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sqk) => [
- q(6200),
+ q(6190),
q(0),
],
q(sqm) => [
- q(6201),
+ q(6191),
q(0),
],
q(sqn) => [
- q(6202),
+ q(6192),
q(0),
],
q(sqo) => [
- q(6203),
+ q(6193),
q(0),
],
q(sqq) => [
- q(6204),
+ q(6194),
q(0),
],
q(sqr) => [
- q(6205),
+ q(6195),
q(0),
],
q(sqs) => [
- q(6206),
+ q(6196),
q(0),
],
q(sqt) => [
- q(6207),
+ q(6197),
q(0),
],
q(squ) => [
- q(6208),
+ q(6198),
q(0),
],
q(sra) => [
- q(6209),
+ q(6199),
q(0),
],
q(srb) => [
- q(6210),
+ q(6200),
q(0),
],
q(src) => [
- q(6211),
+ q(6201),
q(0),
],
q(srd) => [
@@ -82768,35 +82671,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sre) => [
- q(6212),
+ q(6202),
q(0),
],
q(srf) => [
- q(6213),
+ q(6203),
q(0),
],
q(srg) => [
- q(6214),
+ q(6204),
q(0),
],
q(srh) => [
- q(6215),
+ q(6205),
q(0),
],
q(sri) => [
- q(6216),
+ q(6206),
q(0),
],
q(srk) => [
- q(6217),
+ q(6207),
q(0),
],
q(srl) => [
- q(6218),
+ q(6208),
q(0),
],
q(srm) => [
- q(6219),
+ q(6209),
q(0),
],
q(srn) => [
@@ -82804,7 +82707,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sro) => [
- q(6220),
+ q(6210),
q(0),
],
q(srp) => [
@@ -82812,7 +82715,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(srq) => [
- q(6221),
+ q(6211),
q(0),
],
q(srr) => [
@@ -82820,35 +82723,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(srs) => [
- q(6222),
+ q(6212),
q(0),
],
q(srt) => [
- q(6223),
+ q(6213),
q(0),
],
q(sru) => [
- q(6224),
+ q(6214),
q(0),
],
q(srv) => [
- q(6225),
+ q(6215),
q(0),
],
q(srw) => [
- q(6226),
+ q(6216),
q(0),
],
q(srx) => [
- q(6227),
+ q(6217),
q(0),
],
q(sry) => [
- q(6228),
+ q(6218),
q(0),
],
q(srz) => [
- q(6229),
+ q(6219),
q(0),
],
q(ssa) => [
@@ -82856,87 +82759,87 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ssb) => [
- q(6230),
+ q(6220),
q(0),
],
q(ssc) => [
- q(6231),
+ q(6221),
q(0),
],
q(ssd) => [
- q(6232),
+ q(6222),
q(0),
],
q(sse) => [
- q(6233),
+ q(6223),
q(0),
],
q(ssf) => [
- q(6234),
+ q(6224),
q(0),
],
q(ssg) => [
- q(6235),
+ q(6225),
q(0),
],
q(ssh) => [
- q(6236),
+ q(6226),
q(0),
],
q(ssi) => [
- q(6237),
+ q(6227),
q(0),
],
q(ssj) => [
- q(6238),
+ q(6228),
q(0),
],
q(ssk) => [
- q(6239),
+ q(6229),
q(0),
],
q(ssl) => [
- q(6240),
+ q(6230),
q(0),
],
q(ssm) => [
- q(6241),
+ q(6231),
q(0),
],
q(ssn) => [
- q(6242),
+ q(6232),
q(0),
],
q(sso) => [
- q(6243),
+ q(6233),
q(0),
],
q(ssp) => [
- q(6244),
+ q(6234),
q(0),
],
q(ssq) => [
- q(6245),
+ q(6235),
q(0),
],
q(ssr) => [
- q(6246),
+ q(6236),
q(0),
],
q(sss) => [
- q(6247),
+ q(6237),
q(0),
],
q(sst) => [
- q(6248),
+ q(6238),
q(0),
],
q(ssu) => [
- q(6249),
+ q(6239),
q(0),
],
q(ssv) => [
- q(6250),
+ q(6240),
q(0),
],
q(ssw) => [
@@ -82944,135 +82847,135 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ssx) => [
- q(6251),
+ q(6241),
q(0),
],
q(ssy) => [
- q(6252),
+ q(6242),
q(0),
],
q(ssz) => [
- q(6253),
+ q(6243),
q(0),
],
q(sta) => [
- q(6254),
+ q(6244),
q(0),
],
q(stb) => [
- q(6255),
+ q(6245),
q(0),
],
q(std) => [
- q(6256),
+ q(6246),
q(0),
],
q(ste) => [
- q(6257),
+ q(6247),
q(0),
],
q(stf) => [
- q(6258),
+ q(6248),
q(0),
],
q(stg) => [
- q(6259),
+ q(6249),
q(0),
],
q(sth) => [
- q(6260),
+ q(6250),
q(0),
],
q(sti) => [
- q(6261),
+ q(6251),
q(0),
],
q(stj) => [
- q(6262),
+ q(6252),
q(0),
],
q(stk) => [
- q(6263),
+ q(6253),
q(0),
],
q(stl) => [
- q(6264),
+ q(6254),
q(0),
],
q(stm) => [
- q(6265),
+ q(6255),
q(0),
],
q(stn) => [
- q(6266),
+ q(6256),
q(0),
],
q(sto) => [
- q(6267),
+ q(6257),
q(0),
],
q(stp) => [
- q(6268),
+ q(6258),
q(0),
],
q(stq) => [
- q(6269),
+ q(6259),
q(0),
],
q(str) => [
- q(6270),
+ q(6260),
q(0),
],
q(sts) => [
- q(6271),
+ q(6261),
q(0),
],
q(stt) => [
- q(6272),
+ q(6262),
q(0),
],
q(stu) => [
- q(6273),
+ q(6263),
q(0),
],
q(stv) => [
- q(6274),
+ q(6264),
q(0),
],
q(stw) => [
- q(6275),
+ q(6265),
q(0),
],
q(sty) => [
- q(6276),
+ q(6266),
q(0),
],
q(sua) => [
- q(6277),
+ q(6267),
q(0),
],
q(sub) => [
- q(6278),
+ q(6268),
q(0),
],
q(suc) => [
- q(6279),
+ q(6269),
q(0),
],
q(sue) => [
- q(6280),
+ q(6270),
q(0),
],
q(sug) => [
- q(6281),
+ q(6271),
q(0),
],
q(sui) => [
- q(6282),
+ q(6272),
q(0),
],
q(suj) => [
- q(6283),
+ q(6273),
q(0),
],
q(suk) => [
@@ -83084,11 +82987,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(suq) => [
- q(6284),
+ q(6274),
q(0),
],
q(sur) => [
- q(6285),
+ q(6275),
q(0),
],
q(sus) => [
@@ -83096,15 +82999,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sut) => [
- q(6286),
+ q(6276),
q(0),
],
q(suv) => [
- q(6287),
+ q(6277),
q(0),
],
q(suw) => [
- q(6288),
+ q(6278),
q(0),
],
q(sux) => [
@@ -83112,47 +83015,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(suy) => [
- q(6289),
+ q(6279),
q(0),
],
q(suz) => [
- q(6290),
+ q(6280),
q(0),
],
q(sva) => [
- q(6291),
+ q(6281),
q(0),
],
q(svb) => [
- q(6292),
+ q(6282),
q(0),
],
q(svc) => [
- q(6293),
+ q(6283),
q(0),
],
q(sve) => [
- q(6294),
+ q(6284),
q(0),
],
q(svk) => [
- q(6295),
+ q(6285),
q(0),
],
q(svm) => [
- q(6296),
- q(0),
- ],
- q(svr) => [
- q(6297),
+ q(6286),
q(0),
],
q(svs) => [
- q(6298),
+ q(6287),
q(0),
],
q(svx) => [
- q(6299),
+ q(6288),
q(0),
],
q(swa) => [
@@ -83160,11 +83059,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(swb) => [
- q(6300),
+ q(6289),
q(0),
],
q(swc) => [
- q(6301),
+ q(6290),
q(0),
],
q(swe) => [
@@ -83172,143 +83071,143 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(swf) => [
- q(6302),
+ q(6291),
q(0),
],
q(swg) => [
- q(6303),
+ q(6292),
q(0),
],
q(swh) => [
- q(6304),
+ q(6293),
q(0),
],
q(swi) => [
- q(6305),
+ q(6294),
q(0),
],
q(swj) => [
- q(6306),
+ q(6295),
q(0),
],
q(swk) => [
- q(6307),
+ q(6296),
q(0),
],
q(swl) => [
- q(6308),
+ q(6297),
q(0),
],
q(swm) => [
- q(6309),
+ q(6298),
q(0),
],
q(swn) => [
- q(6310),
+ q(6299),
q(0),
],
q(swo) => [
- q(6311),
+ q(6300),
q(0),
],
q(swp) => [
- q(6312),
+ q(6301),
q(0),
],
q(swq) => [
- q(6313),
+ q(6302),
q(0),
],
q(swr) => [
- q(6314),
+ q(6303),
q(0),
],
q(sws) => [
- q(6315),
+ q(6304),
q(0),
],
q(swt) => [
- q(6316),
+ q(6305),
q(0),
],
q(swu) => [
- q(6317),
+ q(6306),
q(0),
],
q(swv) => [
- q(6318),
+ q(6307),
q(0),
],
q(sww) => [
- q(6319),
+ q(6308),
q(0),
],
q(swx) => [
- q(6320),
+ q(6309),
q(0),
],
q(swy) => [
- q(6321),
+ q(6310),
q(0),
],
q(sxb) => [
- q(6322),
+ q(6311),
q(0),
],
q(sxc) => [
- q(6323),
+ q(6312),
q(0),
],
q(sxe) => [
- q(6324),
+ q(6313),
q(0),
],
q(sxg) => [
- q(6325),
+ q(6314),
q(0),
],
q(sxk) => [
- q(6326),
+ q(6315),
q(0),
],
q(sxl) => [
- q(6327),
+ q(6316),
q(0),
],
q(sxm) => [
- q(6328),
+ q(6317),
q(0),
],
q(sxn) => [
- q(6329),
+ q(6318),
q(0),
],
q(sxo) => [
- q(6330),
+ q(6319),
q(0),
],
q(sxr) => [
- q(6331),
+ q(6320),
q(0),
],
q(sxs) => [
- q(6332),
+ q(6321),
q(0),
],
q(sxu) => [
- q(6333),
+ q(6322),
q(0),
],
q(sxw) => [
- q(6334),
+ q(6323),
q(0),
],
q(sya) => [
- q(6335),
+ q(6324),
q(0),
],
q(syb) => [
- q(6336),
+ q(6325),
q(0),
],
q(syc) => [
@@ -83320,27 +83219,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(syi) => [
- q(6337),
+ q(6326),
q(0),
],
q(syk) => [
- q(6338),
+ q(6327),
q(0),
],
q(syl) => [
- q(6339),
+ q(6328),
q(0),
],
q(sym) => [
- q(6340),
+ q(6329),
q(0),
],
q(syn) => [
- q(6341),
+ q(6330),
q(0),
],
q(syo) => [
- q(6342),
+ q(6331),
q(0),
],
q(syr) => [
@@ -83348,91 +83247,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(sys) => [
- q(6343),
+ q(6332),
q(0),
],
q(syw) => [
- q(6344),
+ q(6333),
q(0),
],
q(syx) => [
- q(6345),
+ q(6334),
q(0),
],
q(syy) => [
- q(6346),
+ q(6335),
q(0),
],
q(sza) => [
- q(6347),
+ q(6336),
q(0),
],
q(szb) => [
- q(6348),
+ q(6337),
q(0),
],
q(szc) => [
- q(6349),
+ q(6338),
q(0),
],
q(szd) => [
- q(6350),
+ q(6339),
q(0),
],
q(sze) => [
- q(6351),
+ q(6340),
q(0),
],
q(szg) => [
- q(6352),
+ q(6341),
q(0),
],
q(szl) => [
- q(6353),
+ q(6342),
q(0),
],
q(szn) => [
- q(6354),
+ q(6343),
q(0),
],
q(szp) => [
- q(6355),
+ q(6344),
q(0),
],
q(szv) => [
- q(6356),
+ q(6345),
q(0),
],
q(szw) => [
- q(6357),
+ q(6346),
q(0),
],
q(taa) => [
- q(6358),
+ q(6347),
q(0),
],
q(tab) => [
- q(6359),
+ q(6348),
q(0),
],
q(tac) => [
- q(6360),
+ q(6349),
q(0),
],
q(tad) => [
- q(6361),
+ q(6350),
q(0),
],
q(tae) => [
- q(6362),
+ q(6351),
q(0),
],
q(taf) => [
- q(6363),
+ q(6352),
q(0),
],
q(tag) => [
- q(6364),
+ q(6353),
q(0),
],
q(tah) => [
@@ -83444,15 +83343,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(taj) => [
- q(6365),
+ q(6354),
q(0),
],
q(tak) => [
- q(6366),
+ q(6355),
q(0),
],
q(tal) => [
- q(6367),
+ q(6356),
q(0),
],
q(tam) => [
@@ -83460,27 +83359,27 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tan) => [
- q(6368),
+ q(6357),
q(0),
],
q(tao) => [
- q(6369),
+ q(6358),
q(0),
],
q(tap) => [
- q(6370),
+ q(6359),
q(0),
],
q(taq) => [
- q(6371),
+ q(6360),
q(0),
],
q(tar) => [
- q(6372),
+ q(6361),
q(0),
],
q(tas) => [
- q(6373),
+ q(6362),
q(0),
],
q(tat) => [
@@ -83488,91 +83387,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tau) => [
- q(6374),
+ q(6363),
q(0),
],
q(tav) => [
- q(6375),
+ q(6364),
q(0),
],
q(taw) => [
- q(6376),
+ q(6365),
q(0),
],
q(tax) => [
- q(6377),
+ q(6366),
q(0),
],
q(tay) => [
- q(6378),
+ q(6367),
q(0),
],
q(taz) => [
- q(6379),
+ q(6368),
q(0),
],
q(tba) => [
- q(6380),
+ q(6369),
q(0),
],
q(tbb) => [
- q(6381),
+ q(6370),
q(0),
],
q(tbc) => [
- q(6382),
+ q(6371),
q(0),
],
q(tbd) => [
- q(6383),
+ q(6372),
q(0),
],
q(tbe) => [
- q(6384),
+ q(6373),
q(0),
],
q(tbf) => [
- q(6385),
+ q(6374),
q(0),
],
q(tbg) => [
- q(6386),
+ q(6375),
q(0),
],
q(tbh) => [
- q(6387),
+ q(6376),
q(0),
],
q(tbi) => [
- q(6388),
+ q(6377),
q(0),
],
q(tbj) => [
- q(6389),
+ q(6378),
q(0),
],
q(tbk) => [
- q(6390),
+ q(6379),
q(0),
],
q(tbl) => [
- q(6391),
+ q(6380),
q(0),
],
q(tbm) => [
- q(6392),
+ q(6381),
q(0),
],
q(tbn) => [
- q(6393),
+ q(6382),
q(0),
],
q(tbo) => [
- q(6394),
+ q(6383),
q(0),
],
q(tbp) => [
- q(6395),
+ q(6384),
q(0),
],
q(tbq) => [
@@ -83580,259 +83479,259 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tbr) => [
- q(6396),
+ q(6385),
q(0),
],
q(tbs) => [
- q(6397),
+ q(6386),
q(0),
],
q(tbt) => [
- q(6398),
+ q(6387),
q(0),
],
q(tbu) => [
- q(6399),
+ q(6388),
q(0),
],
q(tbv) => [
- q(6400),
+ q(6389),
q(0),
],
q(tbw) => [
- q(6401),
+ q(6390),
q(0),
],
q(tbx) => [
- q(6402),
+ q(6391),
q(0),
],
q(tby) => [
- q(6403),
+ q(6392),
q(0),
],
q(tbz) => [
- q(6404),
+ q(6393),
q(0),
],
q(tca) => [
- q(6405),
+ q(6394),
q(0),
],
q(tcb) => [
- q(6406),
+ q(6395),
q(0),
],
q(tcc) => [
- q(6407),
+ q(6396),
q(0),
],
q(tcd) => [
- q(6408),
+ q(6397),
q(0),
],
q(tce) => [
- q(6409),
+ q(6398),
q(0),
],
q(tcf) => [
- q(6410),
+ q(6399),
q(0),
],
q(tcg) => [
- q(6411),
+ q(6400),
q(0),
],
q(tch) => [
- q(6412),
+ q(6401),
q(0),
],
q(tci) => [
- q(6413),
+ q(6402),
q(0),
],
q(tck) => [
- q(6414),
+ q(6403),
q(0),
],
q(tcl) => [
- q(6415),
+ q(6404),
q(0),
],
q(tcm) => [
- q(6416),
+ q(6405),
q(0),
],
q(tcn) => [
- q(6417),
+ q(6406),
q(0),
],
q(tco) => [
- q(6418),
+ q(6407),
q(0),
],
q(tcp) => [
- q(6419),
+ q(6408),
q(0),
],
q(tcq) => [
- q(6420),
+ q(6409),
q(0),
],
q(tcs) => [
- q(6421),
+ q(6410),
q(0),
],
q(tct) => [
- q(6422),
+ q(6411),
q(0),
],
q(tcu) => [
- q(6423),
+ q(6412),
q(0),
],
q(tcw) => [
- q(6424),
+ q(6413),
q(0),
],
q(tcx) => [
- q(6425),
+ q(6414),
q(0),
],
q(tcy) => [
- q(6426),
+ q(6415),
q(0),
],
q(tcz) => [
- q(6427),
+ q(6416),
q(0),
],
q(tda) => [
- q(6428),
+ q(6417),
q(0),
],
q(tdb) => [
- q(6429),
+ q(6418),
q(0),
],
q(tdc) => [
- q(6430),
+ q(6419),
q(0),
],
q(tdd) => [
- q(6431),
+ q(6420),
q(0),
],
q(tde) => [
- q(6432),
+ q(6421),
q(0),
],
q(tdf) => [
- q(6433),
+ q(6422),
q(0),
],
q(tdg) => [
- q(6434),
+ q(6423),
q(0),
],
q(tdh) => [
- q(6435),
+ q(6424),
q(0),
],
q(tdi) => [
- q(6436),
+ q(6425),
q(0),
],
q(tdj) => [
- q(6437),
+ q(6426),
q(0),
],
q(tdk) => [
- q(6438),
+ q(6427),
q(0),
],
q(tdl) => [
- q(6439),
+ q(6428),
+ q(0),
+ ],
+ q(tdm) => [
+ q(6429),
q(0),
],
q(tdn) => [
- q(6440),
+ q(6430),
q(0),
],
q(tdo) => [
- q(6441),
+ q(6431),
q(0),
],
q(tdq) => [
- q(6442),
+ q(6432),
q(0),
],
q(tdr) => [
- q(6443),
+ q(6433),
q(0),
],
q(tds) => [
- q(6444),
+ q(6434),
q(0),
],
q(tdt) => [
- q(6445),
- q(0),
- ],
- q(tdu) => [
- q(6446),
+ q(6435),
q(0),
],
q(tdv) => [
- q(6447),
+ q(6436),
q(0),
],
q(tdx) => [
- q(6448),
+ q(6437),
q(0),
],
q(tdy) => [
- q(6449),
+ q(6438),
q(0),
],
q(tea) => [
- q(6450),
+ q(6439),
q(0),
],
q(teb) => [
- q(6451),
+ q(6440),
q(0),
],
q(tec) => [
- q(6452),
+ q(6441),
q(0),
],
q(ted) => [
- q(6453),
+ q(6442),
q(0),
],
q(tee) => [
- q(6454),
+ q(6443),
q(0),
],
q(tef) => [
- q(6455),
+ q(6444),
q(0),
],
q(teg) => [
- q(6456),
+ q(6445),
q(0),
],
q(teh) => [
- q(6457),
+ q(6446),
q(0),
],
q(tei) => [
- q(6458),
+ q(6447),
q(0),
],
q(tek) => [
- q(6459),
+ q(6448),
q(0),
],
q(tel) => [
@@ -83844,19 +83743,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ten) => [
- q(6460),
+ q(6449),
q(0),
],
q(teo) => [
- q(6461),
+ q(6450),
q(0),
],
q(tep) => [
- q(6462),
+ q(6451),
q(0),
],
q(teq) => [
- q(6463),
+ q(6452),
q(0),
],
q(ter) => [
@@ -83864,7 +83763,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tes) => [
- q(6464),
+ q(6453),
q(0),
],
q(tet) => [
@@ -83872,79 +83771,79 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(teu) => [
- q(6465),
+ q(6454),
q(0),
],
q(tev) => [
- q(6466),
+ q(6455),
q(0),
],
q(tew) => [
- q(6467),
+ q(6456),
q(0),
],
q(tex) => [
- q(6468),
+ q(6457),
q(0),
],
q(tey) => [
- q(6469),
+ q(6458),
q(0),
],
q(tfi) => [
- q(6470),
+ q(6459),
q(0),
],
q(tfn) => [
- q(6471),
+ q(6460),
q(0),
],
q(tfo) => [
- q(6472),
+ q(6461),
q(0),
],
q(tfr) => [
- q(6473),
+ q(6462),
q(0),
],
q(tft) => [
- q(6474),
+ q(6463),
q(0),
],
q(tga) => [
- q(6475),
+ q(6464),
q(0),
],
q(tgb) => [
- q(6476),
+ q(6465),
q(0),
],
q(tgc) => [
- q(6477),
+ q(6466),
q(0),
],
q(tgd) => [
- q(6478),
+ q(6467),
q(0),
],
q(tge) => [
- q(6479),
+ q(6468),
q(0),
],
q(tgf) => [
- q(6480),
+ q(6469),
q(0),
],
q(tgh) => [
- q(6481),
+ q(6470),
q(0),
],
q(tgi) => [
- q(6482),
+ q(6471),
q(0),
],
q(tgj) => [
- q(6483),
+ q(6472),
q(0),
],
q(tgk) => [
@@ -83956,143 +83855,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tgn) => [
- q(6484),
+ q(6473),
q(0),
],
q(tgo) => [
- q(6485),
+ q(6474),
q(0),
],
q(tgp) => [
- q(6486),
+ q(6475),
q(0),
],
q(tgq) => [
- q(6487),
+ q(6476),
q(0),
],
q(tgr) => [
- q(6488),
+ q(6477),
q(0),
],
q(tgs) => [
- q(6489),
+ q(6478),
q(0),
],
q(tgt) => [
- q(6490),
+ q(6479),
q(0),
],
q(tgu) => [
- q(6491),
+ q(6480),
q(0),
],
q(tgv) => [
- q(6492),
+ q(6481),
q(0),
],
q(tgw) => [
- q(6493),
+ q(6482),
q(0),
],
q(tgx) => [
- q(6494),
+ q(6483),
q(0),
],
q(tgy) => [
- q(6495),
+ q(6484),
q(0),
],
q(tgz) => [
- q(6496),
+ q(6485),
q(0),
],
q(tha) => [
q(0426),
q(0),
],
- q(thc) => [
- q(6497),
- q(0),
- ],
q(thd) => [
- q(6498),
+ q(6486),
q(0),
],
q(the) => [
- q(6499),
+ q(6487),
q(0),
],
q(thf) => [
- q(6500),
+ q(6488),
q(0),
],
q(thh) => [
- q(6501),
+ q(6489),
q(0),
],
q(thi) => [
- q(6502),
+ q(6490),
q(0),
],
q(thk) => [
- q(6503),
+ q(6491),
q(0),
],
q(thl) => [
- q(6504),
+ q(6492),
q(0),
],
q(thm) => [
- q(6505),
+ q(6493),
q(0),
],
q(thn) => [
- q(6506),
+ q(6494),
q(0),
],
q(thp) => [
- q(6507),
+ q(6495),
q(0),
],
q(thq) => [
- q(6508),
+ q(6496),
q(0),
],
q(thr) => [
- q(6509),
+ q(6497),
q(0),
],
q(ths) => [
- q(6510),
+ q(6498),
q(0),
],
q(tht) => [
- q(6511),
+ q(6499),
q(0),
],
q(thu) => [
- q(6512),
+ q(6500),
q(0),
],
q(thv) => [
- q(6513),
+ q(6501),
q(0),
],
q(thw) => [
- q(6514),
+ q(6502),
q(0),
],
q(thy) => [
- q(6515),
+ q(6503),
q(0),
],
q(thz) => [
- q(6516),
+ q(6504),
q(0),
],
q(tia) => [
- q(6517),
+ q(6505),
q(0),
],
q(tib) => [
@@ -84100,15 +83995,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tic) => [
- q(6518),
- q(0),
- ],
- q(tid) => [
- q(6519),
+ q(6506),
q(0),
],
q(tif) => [
- q(6520),
+ q(6507),
q(0),
],
q(tig) => [
@@ -84116,43 +84007,43 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tih) => [
- q(6521),
+ q(6508),
q(0),
],
q(tii) => [
- q(6522),
+ q(6509),
q(0),
],
q(tij) => [
- q(6523),
+ q(6510),
q(0),
],
q(tik) => [
- q(6524),
+ q(6511),
q(0),
],
q(til) => [
- q(6525),
+ q(6512),
q(0),
],
q(tim) => [
- q(6526),
+ q(6513),
q(0),
],
q(tin) => [
- q(6527),
+ q(6514),
q(0),
],
q(tio) => [
- q(6528),
+ q(6515),
q(0),
],
q(tip) => [
- q(6529),
+ q(6516),
q(0),
],
q(tiq) => [
- q(6530),
+ q(6517),
q(0),
],
q(tir) => [
@@ -84160,15 +84051,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tis) => [
- q(6531),
+ q(6518),
q(0),
],
q(tit) => [
- q(6532),
+ q(6519),
q(0),
],
q(tiu) => [
- q(6533),
+ q(6520),
q(0),
],
q(tiv) => [
@@ -84176,83 +84067,83 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tiw) => [
- q(6534),
+ q(6521),
q(0),
],
q(tix) => [
- q(6535),
+ q(6522),
q(0),
],
q(tiy) => [
- q(6536),
+ q(6523),
q(0),
],
q(tiz) => [
- q(6537),
+ q(6524),
q(0),
],
q(tja) => [
- q(6538),
+ q(6525),
q(0),
],
q(tjg) => [
- q(6539),
+ q(6526),
q(0),
],
q(tji) => [
- q(6540),
+ q(6527),
q(0),
],
q(tjl) => [
- q(6541),
+ q(6528),
q(0),
],
q(tjm) => [
- q(6542),
+ q(6529),
q(0),
],
q(tjn) => [
- q(6543),
+ q(6530),
q(0),
],
q(tjo) => [
- q(6544),
+ q(6531),
q(0),
],
q(tjs) => [
- q(6545),
+ q(6532),
q(0),
],
q(tju) => [
- q(6546),
+ q(6533),
q(0),
],
q(tjw) => [
- q(6547),
+ q(6534),
q(0),
],
q(tka) => [
- q(6548),
+ q(6535),
q(0),
],
q(tkb) => [
- q(6549),
+ q(6536),
q(0),
],
q(tkd) => [
- q(6550),
+ q(6537),
q(0),
],
q(tke) => [
- q(6551),
+ q(6538),
q(0),
],
q(tkf) => [
- q(6552),
+ q(6539),
q(0),
],
q(tkg) => [
- q(6553),
+ q(6540),
q(0),
],
q(tkl) => [
@@ -84260,75 +84151,75 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tkm) => [
- q(6554),
+ q(6541),
q(0),
],
q(tkn) => [
- q(6555),
+ q(6542),
q(0),
],
q(tkp) => [
- q(6556),
+ q(6543),
q(0),
],
q(tkq) => [
- q(6557),
+ q(6544),
q(0),
],
q(tkr) => [
- q(6558),
+ q(6545),
q(0),
],
q(tks) => [
- q(6559),
+ q(6546),
q(0),
],
q(tkt) => [
- q(6560),
+ q(6547),
q(0),
],
q(tku) => [
- q(6561),
+ q(6548),
q(0),
],
q(tkv) => [
- q(6562),
+ q(6549),
q(0),
],
q(tkw) => [
- q(6563),
+ q(6550),
q(0),
],
q(tkx) => [
- q(6564),
+ q(6551),
q(0),
],
q(tkz) => [
- q(6565),
+ q(6552),
q(0),
],
q(tla) => [
- q(6566),
+ q(6553),
q(0),
],
q(tlb) => [
- q(6567),
+ q(6554),
q(0),
],
q(tlc) => [
- q(6568),
+ q(6555),
q(0),
],
q(tld) => [
- q(6569),
+ q(6556),
q(0),
],
q(tlf) => [
- q(6570),
+ q(6557),
q(0),
],
q(tlg) => [
- q(6571),
+ q(6558),
q(0),
],
q(tlh) => [
@@ -84340,91 +84231,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tlj) => [
- q(6572),
+ q(6559),
q(0),
],
q(tlk) => [
- q(6573),
+ q(6560),
q(0),
],
q(tll) => [
- q(6574),
+ q(6561),
q(0),
],
q(tlm) => [
- q(6575),
+ q(6562),
q(0),
],
q(tln) => [
- q(6576),
+ q(6563),
q(0),
],
q(tlo) => [
- q(6577),
+ q(6564),
q(0),
],
q(tlp) => [
- q(6578),
+ q(6565),
q(0),
],
q(tlq) => [
- q(6579),
+ q(6566),
q(0),
],
q(tlr) => [
- q(6580),
+ q(6567),
q(0),
],
q(tls) => [
- q(6581),
+ q(6568),
q(0),
],
q(tlt) => [
- q(6582),
+ q(6569),
q(0),
],
q(tlu) => [
- q(6583),
+ q(6570),
q(0),
],
q(tlv) => [
- q(6584),
+ q(6571),
q(0),
],
q(tlx) => [
- q(6585),
+ q(6572),
q(0),
],
q(tly) => [
- q(6586),
+ q(6573),
q(0),
],
q(tma) => [
- q(6587),
+ q(6574),
q(0),
],
q(tmb) => [
- q(6588),
+ q(6575),
q(0),
],
q(tmc) => [
- q(6589),
+ q(6576),
q(0),
],
q(tmd) => [
- q(6590),
+ q(6577),
q(0),
],
q(tme) => [
- q(6591),
+ q(6578),
q(0),
],
q(tmf) => [
- q(6592),
+ q(6579),
q(0),
],
q(tmg) => [
- q(6593),
+ q(6580),
q(0),
],
q(tmh) => [
@@ -84432,187 +84323,175 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tmi) => [
- q(6594),
+ q(6581),
q(0),
],
q(tmj) => [
- q(6595),
+ q(6582),
q(0),
],
q(tmk) => [
- q(6596),
+ q(6583),
q(0),
],
q(tml) => [
- q(6597),
+ q(6584),
q(0),
],
q(tmm) => [
- q(6598),
+ q(6585),
q(0),
],
q(tmn) => [
- q(6599),
+ q(6586),
q(0),
],
q(tmo) => [
- q(6600),
- q(0),
- ],
- q(tmp) => [
- q(6601),
+ q(6587),
q(0),
],
q(tmq) => [
- q(6602),
+ q(6588),
q(0),
],
q(tmr) => [
- q(6603),
+ q(6589),
q(0),
],
q(tms) => [
- q(6604),
+ q(6590),
q(0),
],
q(tmt) => [
- q(6605),
+ q(6591),
q(0),
],
q(tmu) => [
- q(6606),
+ q(6592),
q(0),
],
q(tmv) => [
- q(6607),
+ q(6593),
q(0),
],
q(tmw) => [
- q(6608),
+ q(6594),
q(0),
],
q(tmy) => [
- q(6609),
+ q(6595),
q(0),
],
q(tmz) => [
- q(6610),
+ q(6596),
q(0),
],
q(tna) => [
- q(6611),
+ q(6597),
q(0),
],
q(tnb) => [
- q(6612),
+ q(6598),
q(0),
],
q(tnc) => [
- q(6613),
+ q(6599),
q(0),
],
q(tnd) => [
- q(6614),
- q(0),
- ],
- q(tne) => [
- q(6615),
+ q(6600),
q(0),
],
q(tng) => [
- q(6616),
+ q(6601),
q(0),
],
q(tnh) => [
- q(6617),
+ q(6602),
q(0),
],
q(tni) => [
- q(6618),
+ q(6603),
q(0),
],
q(tnk) => [
- q(6619),
+ q(6604),
q(0),
],
q(tnl) => [
- q(6620),
+ q(6605),
q(0),
],
q(tnm) => [
- q(6621),
+ q(6606),
q(0),
],
q(tnn) => [
- q(6622),
+ q(6607),
q(0),
],
q(tno) => [
- q(6623),
+ q(6608),
q(0),
],
q(tnp) => [
- q(6624),
+ q(6609),
q(0),
],
q(tnq) => [
- q(6625),
+ q(6610),
q(0),
],
q(tnr) => [
- q(6626),
+ q(6611),
q(0),
],
q(tns) => [
- q(6627),
+ q(6612),
q(0),
],
q(tnt) => [
- q(6628),
+ q(6613),
q(0),
],
q(tnu) => [
- q(6629),
+ q(6614),
q(0),
],
q(tnv) => [
- q(6630),
+ q(6615),
q(0),
],
q(tnw) => [
- q(6631),
+ q(6616),
q(0),
],
q(tnx) => [
- q(6632),
+ q(6617),
q(0),
],
q(tny) => [
- q(6633),
+ q(6618),
q(0),
],
q(tnz) => [
- q(6634),
+ q(6619),
q(0),
],
q(tob) => [
- q(6635),
+ q(6620),
q(0),
],
q(toc) => [
- q(6636),
+ q(6621),
q(0),
],
q(tod) => [
- q(6637),
- q(0),
- ],
- q(toe) => [
- q(6638),
+ q(6622),
q(0),
],
q(tof) => [
- q(6639),
+ q(6623),
q(0),
],
q(tog) => [
@@ -84620,23 +84499,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(toh) => [
- q(6640),
+ q(6624),
q(0),
],
q(toi) => [
- q(6641),
+ q(6625),
q(0),
],
q(toj) => [
- q(6642),
+ q(6626),
q(0),
],
q(tol) => [
- q(6643),
+ q(6627),
q(0),
],
q(tom) => [
- q(6644),
+ q(6628),
q(0),
],
q(ton) => [
@@ -84644,67 +84523,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(too) => [
- q(6645),
+ q(6629),
q(0),
],
q(top) => [
- q(6646),
+ q(6630),
q(0),
],
q(toq) => [
- q(6647),
+ q(6631),
q(0),
],
q(tor) => [
- q(6648),
+ q(6632),
q(0),
],
q(tos) => [
- q(6649),
+ q(6633),
q(0),
],
q(tou) => [
- q(6650),
+ q(6634),
q(0),
],
q(tov) => [
- q(6651),
+ q(6635),
q(0),
],
q(tow) => [
- q(6652),
+ q(6636),
q(0),
],
q(tox) => [
- q(6653),
+ q(6637),
q(0),
],
q(toy) => [
- q(6654),
+ q(6638),
q(0),
],
q(toz) => [
- q(6655),
+ q(6639),
q(0),
],
q(tpa) => [
- q(6656),
+ q(6640),
q(0),
],
q(tpc) => [
- q(6657),
+ q(6641),
q(0),
],
q(tpe) => [
- q(6658),
+ q(6642),
q(0),
],
q(tpf) => [
- q(6659),
+ q(6643),
q(0),
],
q(tpg) => [
- q(6660),
+ q(6644),
q(0),
],
q(tpi) => [
@@ -84712,151 +84591,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tpj) => [
- q(6661),
+ q(6645),
q(0),
],
q(tpk) => [
- q(6662),
+ q(6646),
q(0),
],
q(tpl) => [
- q(6663),
+ q(6647),
q(0),
],
q(tpm) => [
- q(6664),
+ q(6648),
q(0),
],
q(tpn) => [
- q(6665),
+ q(6649),
q(0),
],
q(tpo) => [
- q(6666),
+ q(6650),
q(0),
],
q(tpp) => [
- q(6667),
+ q(6651),
q(0),
],
q(tpq) => [
- q(6668),
+ q(6652),
q(0),
],
q(tpr) => [
- q(6669),
+ q(6653),
q(0),
],
q(tpt) => [
- q(6670),
+ q(6654),
q(0),
],
q(tpu) => [
- q(6671),
+ q(6655),
q(0),
],
q(tpv) => [
- q(6672),
+ q(6656),
q(0),
],
q(tpw) => [
- q(6673),
+ q(6657),
q(0),
],
q(tpx) => [
- q(6674),
+ q(6658),
q(0),
],
q(tpy) => [
- q(6675),
+ q(6659),
q(0),
],
q(tpz) => [
- q(6676),
+ q(6660),
q(0),
],
q(tqb) => [
- q(6677),
+ q(6661),
q(0),
],
q(tql) => [
- q(6678),
+ q(6662),
q(0),
],
q(tqm) => [
- q(6679),
+ q(6663),
q(0),
],
q(tqn) => [
- q(6680),
+ q(6664),
q(0),
],
q(tqo) => [
- q(6681),
+ q(6665),
q(0),
],
q(tqp) => [
- q(6682),
+ q(6666),
q(0),
],
q(tqq) => [
- q(6683),
+ q(6667),
q(0),
],
q(tqr) => [
- q(6684),
+ q(6668),
q(0),
],
q(tqt) => [
- q(6685),
+ q(6669),
q(0),
],
q(tqu) => [
- q(6686),
+ q(6670),
q(0),
],
q(tqw) => [
- q(6687),
+ q(6671),
q(0),
],
q(tra) => [
- q(6688),
+ q(6672),
q(0),
],
q(trb) => [
- q(6689),
+ q(6673),
q(0),
],
q(trc) => [
- q(6690),
+ q(6674),
q(0),
],
q(trd) => [
- q(6691),
+ q(6675),
q(0),
],
q(tre) => [
- q(6692),
+ q(6676),
q(0),
],
q(trf) => [
- q(6693),
+ q(6677),
q(0),
],
q(trg) => [
- q(6694),
+ q(6678),
q(0),
],
q(trh) => [
- q(6695),
+ q(6679),
q(0),
],
q(tri) => [
- q(6696),
+ q(6680),
q(0),
],
q(trj) => [
- q(6697),
+ q(6681),
q(0),
],
q(trk) => [
@@ -84864,91 +84743,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(trl) => [
- q(6698),
+ q(6682),
q(0),
],
q(trm) => [
- q(6699),
+ q(6683),
q(0),
],
q(trn) => [
- q(6700),
+ q(6684),
q(0),
],
q(tro) => [
- q(6701),
+ q(6685),
q(0),
],
q(trp) => [
- q(6702),
+ q(6686),
q(0),
],
q(trq) => [
- q(6703),
+ q(6687),
q(0),
],
q(trr) => [
- q(6704),
+ q(6688),
q(0),
],
q(trs) => [
- q(6705),
+ q(6689),
q(0),
],
q(trt) => [
- q(6706),
+ q(6690),
q(0),
],
q(tru) => [
- q(6707),
+ q(6691),
q(0),
],
q(trv) => [
- q(6708),
+ q(6692),
q(0),
],
q(trw) => [
- q(6709),
+ q(6693),
q(0),
],
q(trx) => [
- q(6710),
+ q(6694),
q(0),
],
q(try) => [
- q(6711),
+ q(6695),
q(0),
],
q(trz) => [
- q(6712),
+ q(6696),
q(0),
],
q(tsa) => [
- q(6713),
+ q(6697),
q(0),
],
q(tsb) => [
- q(6714),
+ q(6698),
q(0),
],
q(tsc) => [
- q(6715),
+ q(6699),
q(0),
],
q(tsd) => [
- q(6716),
+ q(6700),
q(0),
],
q(tse) => [
- q(6717),
+ q(6701),
q(0),
],
q(tsg) => [
- q(6718),
+ q(6702),
q(0),
],
q(tsh) => [
- q(6719),
+ q(6703),
q(0),
],
q(tsi) => [
@@ -84956,19 +84835,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tsj) => [
- q(6720),
+ q(6704),
q(0),
],
q(tsk) => [
- q(6721),
+ q(6705),
q(0),
],
q(tsl) => [
- q(6722),
+ q(6706),
q(0),
],
q(tsm) => [
- q(6723),
+ q(6707),
q(0),
],
q(tsn) => [
@@ -84980,187 +84859,187 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tsp) => [
- q(6724),
+ q(6708),
q(0),
],
q(tsq) => [
- q(6725),
+ q(6709),
q(0),
],
q(tsr) => [
- q(6726),
+ q(6710),
q(0),
],
q(tss) => [
- q(6727),
+ q(6711),
q(0),
],
q(tst) => [
- q(6728),
+ q(6712),
q(0),
],
q(tsu) => [
- q(6729),
+ q(6713),
q(0),
],
q(tsv) => [
- q(6730),
+ q(6714),
q(0),
],
q(tsw) => [
- q(6731),
+ q(6715),
q(0),
],
q(tsx) => [
- q(6732),
+ q(6716),
q(0),
],
q(tsy) => [
- q(6733),
+ q(6717),
q(0),
],
q(tsz) => [
- q(6734),
+ q(6718),
q(0),
],
q(tta) => [
- q(6735),
+ q(6719),
q(0),
],
q(ttb) => [
- q(6736),
+ q(6720),
q(0),
],
q(ttc) => [
- q(6737),
+ q(6721),
q(0),
],
q(ttd) => [
- q(6738),
+ q(6722),
q(0),
],
q(tte) => [
- q(6739),
+ q(6723),
q(0),
],
q(ttf) => [
- q(6740),
+ q(6724),
q(0),
],
q(ttg) => [
- q(6741),
+ q(6725),
q(0),
],
q(tth) => [
- q(6742),
+ q(6726),
q(0),
],
q(tti) => [
- q(6743),
+ q(6727),
q(0),
],
q(ttj) => [
- q(6744),
+ q(6728),
q(0),
],
q(ttk) => [
- q(6745),
+ q(6729),
q(0),
],
q(ttl) => [
- q(6746),
+ q(6730),
q(0),
],
q(ttm) => [
- q(6747),
+ q(6731),
q(0),
],
q(ttn) => [
- q(6748),
+ q(6732),
q(0),
],
q(tto) => [
- q(6749),
+ q(6733),
q(0),
],
q(ttp) => [
- q(6750),
+ q(6734),
q(0),
],
q(ttq) => [
- q(6751),
+ q(6735),
q(0),
],
q(ttr) => [
- q(6752),
+ q(6736),
q(0),
],
q(tts) => [
- q(6753),
+ q(6737),
q(0),
],
q(ttt) => [
- q(6754),
+ q(6738),
q(0),
],
q(ttu) => [
- q(6755),
+ q(6739),
q(0),
],
q(ttv) => [
- q(6756),
+ q(6740),
q(0),
],
q(ttw) => [
- q(6757),
+ q(6741),
q(0),
],
q(tty) => [
- q(6758),
+ q(6742),
q(0),
],
q(ttz) => [
- q(6759),
+ q(6743),
q(0),
],
q(tua) => [
- q(6760),
+ q(6744),
q(0),
],
q(tub) => [
- q(6761),
+ q(6745),
q(0),
],
q(tuc) => [
- q(6762),
+ q(6746),
q(0),
],
q(tud) => [
- q(6763),
+ q(6747),
q(0),
],
q(tue) => [
- q(6764),
+ q(6748),
q(0),
],
q(tuf) => [
- q(6765),
+ q(6749),
q(0),
],
q(tug) => [
- q(6766),
+ q(6750),
q(0),
],
q(tuh) => [
- q(6767),
+ q(6751),
q(0),
],
q(tui) => [
- q(6768),
+ q(6752),
q(0),
],
q(tuj) => [
- q(6769),
+ q(6753),
q(0),
],
q(tuk) => [
@@ -85168,7 +85047,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tul) => [
- q(6770),
+ q(6754),
q(0),
],
q(tum) => [
@@ -85176,11 +85055,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tun) => [
- q(6771),
+ q(6755),
q(0),
],
q(tuo) => [
- q(6772),
+ q(6756),
q(0),
],
q(tup) => [
@@ -85188,7 +85067,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tuq) => [
- q(6773),
+ q(6757),
q(0),
],
q(tur) => [
@@ -85196,7 +85075,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tus) => [
- q(6774),
+ q(6758),
q(0),
],
q(tut) => [
@@ -85204,11 +85083,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tuu) => [
- q(6775),
+ q(6759),
q(0),
],
q(tuv) => [
- q(6776),
+ q(6760),
q(0),
],
q(tuw) => [
@@ -85216,31 +85095,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tux) => [
- q(6777),
+ q(6761),
q(0),
],
q(tuy) => [
- q(6778),
+ q(6762),
q(0),
],
q(tuz) => [
- q(6779),
+ q(6763),
q(0),
],
q(tva) => [
- q(6780),
+ q(6764),
q(0),
],
q(tvd) => [
- q(6781),
+ q(6765),
q(0),
],
q(tve) => [
- q(6782),
+ q(6766),
q(0),
],
q(tvk) => [
- q(6783),
+ q(6767),
q(0),
],
q(tvl) => [
@@ -85248,67 +85127,67 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tvm) => [
- q(6784),
+ q(6768),
q(0),
],
q(tvn) => [
- q(6785),
+ q(6769),
q(0),
],
q(tvo) => [
- q(6786),
+ q(6770),
q(0),
],
q(tvs) => [
- q(6787),
+ q(6771),
q(0),
],
q(tvt) => [
- q(6788),
+ q(6772),
q(0),
],
q(tvu) => [
- q(6789),
+ q(6773),
q(0),
],
q(tvw) => [
- q(6790),
+ q(6774),
q(0),
],
q(tvy) => [
- q(6791),
+ q(6775),
q(0),
],
q(twa) => [
- q(6792),
+ q(6776),
q(0),
],
q(twb) => [
- q(6793),
+ q(6777),
q(0),
],
q(twc) => [
- q(6794),
+ q(6778),
q(0),
],
q(twd) => [
- q(6795),
+ q(6779),
q(0),
],
q(twe) => [
- q(6796),
+ q(6780),
q(0),
],
q(twf) => [
- q(6797),
+ q(6781),
q(0),
],
q(twg) => [
- q(6798),
+ q(6782),
q(0),
],
q(twh) => [
- q(6799),
+ q(6783),
q(0),
],
q(twi) => [
@@ -85316,171 +85195,171 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(twl) => [
- q(6800),
+ q(6784),
q(0),
],
q(twm) => [
- q(6801),
+ q(6785),
q(0),
],
q(twn) => [
- q(6802),
+ q(6786),
q(0),
],
q(two) => [
- q(6803),
+ q(6787),
q(0),
],
q(twp) => [
- q(6804),
+ q(6788),
q(0),
],
q(twq) => [
- q(6805),
+ q(6789),
q(0),
],
q(twr) => [
- q(6806),
+ q(6790),
q(0),
],
q(twt) => [
- q(6807),
+ q(6791),
q(0),
],
q(twu) => [
- q(6808),
+ q(6792),
q(0),
],
q(tww) => [
- q(6809),
+ q(6793),
q(0),
],
q(twx) => [
- q(6810),
+ q(6794),
q(0),
],
q(twy) => [
- q(6811),
+ q(6795),
q(0),
],
q(txa) => [
- q(6812),
+ q(6796),
q(0),
],
q(txb) => [
- q(6813),
+ q(6797),
q(0),
],
q(txc) => [
- q(6814),
+ q(6798),
q(0),
],
q(txe) => [
- q(6815),
+ q(6799),
q(0),
],
q(txg) => [
- q(6816),
+ q(6800),
q(0),
],
q(txh) => [
- q(6817),
+ q(6801),
q(0),
],
q(txi) => [
- q(6818),
+ q(6802),
q(0),
],
q(txj) => [
- q(6819),
+ q(6803),
q(0),
],
q(txm) => [
- q(6820),
+ q(6804),
q(0),
],
q(txn) => [
- q(6821),
+ q(6805),
q(0),
],
q(txo) => [
- q(6822),
+ q(6806),
q(0),
],
q(txq) => [
- q(6823),
+ q(6807),
q(0),
],
q(txr) => [
- q(6824),
+ q(6808),
q(0),
],
q(txs) => [
- q(6825),
+ q(6809),
q(0),
],
q(txt) => [
- q(6826),
+ q(6810),
q(0),
],
q(txu) => [
- q(6827),
+ q(6811),
q(0),
],
q(txx) => [
- q(6828),
+ q(6812),
q(0),
],
q(txy) => [
- q(6829),
+ q(6813),
q(0),
],
q(tya) => [
- q(6830),
+ q(6814),
q(0),
],
q(tye) => [
- q(6831),
+ q(6815),
q(0),
],
q(tyh) => [
- q(6832),
+ q(6816),
q(0),
],
q(tyi) => [
- q(6833),
+ q(6817),
q(0),
],
q(tyj) => [
- q(6834),
+ q(6818),
q(0),
],
q(tyl) => [
- q(6835),
+ q(6819),
q(0),
],
q(tyn) => [
- q(6836),
+ q(6820),
q(0),
],
q(typ) => [
- q(6837),
+ q(6821),
q(0),
],
q(tyr) => [
- q(6838),
+ q(6822),
q(0),
],
q(tys) => [
- q(6839),
+ q(6823),
q(0),
],
q(tyt) => [
- q(6840),
+ q(6824),
q(0),
],
q(tyu) => [
- q(6841),
+ q(6825),
q(0),
],
q(tyv) => [
@@ -85488,103 +85367,103 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(tyx) => [
- q(6842),
+ q(6826),
q(0),
],
q(tyz) => [
- q(6843),
+ q(6827),
q(0),
],
q(tza) => [
- q(6844),
+ q(6828),
q(0),
],
q(tzh) => [
- q(6845),
+ q(6829),
q(0),
],
q(tzj) => [
- q(6846),
+ q(6830),
q(0),
],
q(tzl) => [
- q(6847),
+ q(6831),
q(0),
],
q(tzm) => [
- q(6848),
+ q(6832),
q(0),
],
q(tzn) => [
- q(6849),
+ q(6833),
q(0),
],
q(tzo) => [
- q(6850),
+ q(6834),
q(0),
],
q(tzx) => [
- q(6851),
+ q(6835),
q(0),
],
q(uam) => [
- q(6852),
+ q(6836),
q(0),
],
q(uan) => [
- q(6853),
+ q(6837),
q(0),
],
q(uar) => [
- q(6854),
+ q(6838),
q(0),
],
q(uba) => [
- q(6855),
+ q(6839),
q(0),
],
q(ubi) => [
- q(6856),
+ q(6840),
q(0),
],
q(ubl) => [
- q(6857),
+ q(6841),
q(0),
],
q(ubr) => [
- q(6858),
+ q(6842),
q(0),
],
q(ubu) => [
- q(6859),
+ q(6843),
q(0),
],
q(uby) => [
- q(6860),
+ q(6844),
q(0),
],
q(uda) => [
- q(6861),
+ q(6845),
q(0),
],
q(ude) => [
- q(6862),
+ q(6846),
q(0),
],
q(udg) => [
- q(6863),
+ q(6847),
q(0),
],
q(udi) => [
- q(6864),
+ q(6848),
q(0),
],
q(udj) => [
- q(6865),
+ q(6849),
q(0),
],
q(udl) => [
- q(6866),
+ q(6850),
q(0),
],
q(udm) => [
@@ -85592,15 +85471,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(udu) => [
- q(6867),
+ q(6851),
q(0),
],
q(ues) => [
- q(6868),
+ q(6852),
q(0),
],
q(ufi) => [
- q(6869),
+ q(6853),
q(0),
],
q(uga) => [
@@ -85608,31 +85487,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ugb) => [
- q(6870),
+ q(6854),
q(0),
],
q(uge) => [
- q(6871),
+ q(6855),
q(0),
],
q(ugn) => [
- q(6872),
+ q(6856),
q(0),
],
q(ugo) => [
- q(6873),
+ q(6857),
q(0),
],
q(ugy) => [
- q(6874),
+ q(6858),
q(0),
],
q(uha) => [
- q(6875),
+ q(6859),
q(0),
],
q(uhn) => [
- q(6876),
+ q(6860),
q(0),
],
q(uig) => [
@@ -85640,39 +85519,39 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(uis) => [
- q(6877),
+ q(6861),
q(0),
],
q(uiv) => [
- q(6878),
+ q(6862),
q(0),
],
q(uji) => [
- q(6879),
+ q(6863),
q(0),
],
q(uka) => [
- q(6880),
+ q(6864),
q(0),
],
q(ukg) => [
- q(6881),
+ q(6865),
q(0),
],
q(ukh) => [
- q(6882),
+ q(6866),
q(0),
],
q(ukl) => [
- q(6883),
+ q(6867),
q(0),
],
q(ukp) => [
- q(6884),
+ q(6868),
q(0),
],
q(ukq) => [
- q(6885),
+ q(6869),
q(0),
],
q(ukr) => [
@@ -85680,71 +85559,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(uks) => [
- q(6886),
+ q(6870),
q(0),
],
q(uku) => [
- q(6887),
+ q(6871),
q(0),
],
q(ukw) => [
- q(6888),
+ q(6872),
q(0),
],
q(uky) => [
- q(6889),
+ q(6873),
q(0),
],
q(ula) => [
- q(6890),
+ q(6874),
q(0),
],
q(ulb) => [
- q(6891),
+ q(6875),
q(0),
],
q(ulc) => [
- q(6892),
+ q(6876),
q(0),
],
q(ule) => [
- q(6893),
+ q(6877),
q(0),
],
q(ulf) => [
- q(6894),
+ q(6878),
q(0),
],
q(uli) => [
- q(6895),
+ q(6879),
q(0),
],
q(ulk) => [
- q(6896),
+ q(6880),
q(0),
],
q(ull) => [
- q(6897),
+ q(6881),
q(0),
],
q(ulm) => [
- q(6898),
+ q(6882),
q(0),
],
q(uln) => [
- q(6899),
+ q(6883),
q(0),
],
q(ulu) => [
- q(6900),
+ q(6884),
q(0),
],
q(ulw) => [
- q(6901),
+ q(6885),
q(0),
],
q(uma) => [
- q(6902),
+ q(6886),
q(0),
],
q(umb) => [
@@ -85752,51 +85631,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(umc) => [
- q(6903),
+ q(6887),
q(0),
],
q(umd) => [
- q(6904),
+ q(6888),
q(0),
],
q(umg) => [
- q(6905),
+ q(6889),
q(0),
],
q(umi) => [
- q(6906),
+ q(6890),
q(0),
],
q(umm) => [
- q(6907),
+ q(6891),
q(0),
],
q(umn) => [
- q(6908),
+ q(6892),
q(0),
],
q(umo) => [
- q(6909),
+ q(6893),
q(0),
],
q(ump) => [
- q(6910),
+ q(6894),
q(0),
],
q(umr) => [
- q(6911),
+ q(6895),
q(0),
],
q(ums) => [
- q(6912),
+ q(6896),
q(0),
],
q(umu) => [
- q(6913),
+ q(6897),
q(0),
],
q(una) => [
- q(6914),
+ q(6898),
q(0),
],
q(und) => [
@@ -85804,59 +85683,59 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(une) => [
- q(6915),
+ q(6899),
q(0),
],
q(ung) => [
- q(6916),
+ q(6900),
q(0),
],
q(unk) => [
- q(6917),
+ q(6901),
q(0),
],
q(unm) => [
- q(6918),
+ q(6902),
q(0),
],
q(unn) => [
- q(6919),
+ q(6903),
q(0),
],
q(unr) => [
- q(6920),
+ q(6904),
q(0),
],
q(unu) => [
- q(6921),
+ q(6905),
q(0),
],
q(unx) => [
- q(6922),
+ q(6906),
q(0),
],
q(unz) => [
- q(6923),
+ q(6907),
q(0),
],
q(upi) => [
- q(6924),
+ q(6908),
q(0),
],
q(upv) => [
- q(6925),
+ q(6909),
q(0),
],
q(ura) => [
- q(6926),
+ q(6910),
q(0),
],
q(urb) => [
- q(6927),
+ q(6911),
q(0),
],
q(urc) => [
- q(6928),
+ q(6912),
q(0),
],
q(urd) => [
@@ -85864,23 +85743,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ure) => [
- q(6929),
+ q(6913),
q(0),
],
q(urf) => [
- q(6930),
+ q(6914),
q(0),
],
q(urg) => [
- q(6931),
+ q(6915),
q(0),
],
q(urh) => [
- q(6932),
+ q(6916),
q(0),
],
q(uri) => [
- q(6933),
+ q(6917),
q(0),
],
q(urj) => [
@@ -85888,139 +85767,139 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(urk) => [
- q(6934),
+ q(6918),
q(0),
],
q(url) => [
- q(6935),
+ q(6919),
q(0),
],
q(urm) => [
- q(6936),
+ q(6920),
q(0),
],
q(urn) => [
- q(6937),
+ q(6921),
q(0),
],
q(uro) => [
- q(6938),
+ q(6922),
q(0),
],
q(urp) => [
- q(6939),
+ q(6923),
q(0),
],
q(urr) => [
- q(6940),
+ q(6924),
q(0),
],
q(urt) => [
- q(6941),
+ q(6925),
q(0),
],
q(uru) => [
- q(6942),
+ q(6926),
q(0),
],
q(urv) => [
- q(6943),
+ q(6927),
q(0),
],
q(urw) => [
- q(6944),
+ q(6928),
q(0),
],
q(urx) => [
- q(6945),
+ q(6929),
q(0),
],
q(ury) => [
- q(6946),
+ q(6930),
q(0),
],
q(urz) => [
- q(6947),
+ q(6931),
q(0),
],
q(usa) => [
- q(6948),
+ q(6932),
q(0),
],
q(ush) => [
- q(6949),
+ q(6933),
q(0),
],
q(usi) => [
- q(6950),
+ q(6934),
q(0),
],
q(usk) => [
- q(6951),
+ q(6935),
q(0),
],
q(usp) => [
- q(6952),
+ q(6936),
q(0),
],
q(usu) => [
- q(6953),
+ q(6937),
q(0),
],
q(uta) => [
- q(6954),
+ q(6938),
q(0),
],
q(ute) => [
- q(6955),
+ q(6939),
q(0),
],
q(utp) => [
- q(6956),
+ q(6940),
q(0),
],
q(utr) => [
- q(6957),
+ q(6941),
q(0),
],
q(utu) => [
- q(6958),
+ q(6942),
q(0),
],
q(uum) => [
- q(6959),
+ q(6943),
q(0),
],
q(uun) => [
- q(6960),
+ q(6944),
q(0),
],
q(uur) => [
- q(6961),
+ q(6945),
q(0),
],
q(uuu) => [
- q(6962),
+ q(6946),
q(0),
],
q(uve) => [
- q(6963),
+ q(6947),
q(0),
],
q(uvh) => [
- q(6964),
+ q(6948),
q(0),
],
q(uvl) => [
- q(6965),
+ q(6949),
q(0),
],
q(uwa) => [
- q(6966),
+ q(6950),
q(0),
],
q(uya) => [
- q(6967),
+ q(6951),
q(0),
],
q(uzb) => [
@@ -86028,31 +85907,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(uzn) => [
- q(6968),
+ q(6952),
q(0),
],
q(uzs) => [
- q(6969),
+ q(6953),
q(0),
],
q(vaa) => [
- q(6970),
+ q(6954),
q(0),
],
q(vae) => [
- q(6971),
+ q(6955),
q(0),
],
q(vaf) => [
- q(6972),
+ q(6956),
q(0),
],
q(vag) => [
- q(6973),
+ q(6957),
q(0),
],
q(vah) => [
- q(6974),
+ q(6958),
q(0),
],
q(vai) => [
@@ -86060,71 +85939,71 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(vaj) => [
- q(6975),
+ q(6959),
q(0),
],
q(val) => [
- q(6976),
+ q(6960),
q(0),
],
q(vam) => [
- q(6977),
+ q(6961),
q(0),
],
q(van) => [
- q(6978),
+ q(6962),
q(0),
],
q(vao) => [
- q(6979),
+ q(6963),
q(0),
],
q(vap) => [
- q(6980),
+ q(6964),
q(0),
],
q(var) => [
- q(6981),
+ q(6965),
q(0),
],
q(vas) => [
- q(6982),
+ q(6966),
q(0),
],
q(vau) => [
- q(6983),
+ q(6967),
q(0),
],
q(vav) => [
- q(6984),
+ q(6968),
q(0),
],
q(vay) => [
- q(6985),
+ q(6969),
q(0),
],
q(vbb) => [
- q(6986),
+ q(6970),
q(0),
],
q(vbk) => [
- q(6987),
+ q(6971),
q(0),
],
q(vec) => [
- q(6988),
+ q(6972),
q(0),
],
q(ved) => [
- q(6989),
+ q(6973),
q(0),
],
q(vel) => [
- q(6990),
+ q(6974),
q(0),
],
q(vem) => [
- q(6991),
+ q(6975),
q(0),
],
q(ven) => [
@@ -86132,31 +86011,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(veo) => [
- q(6992),
+ q(6976),
q(0),
],
q(vep) => [
- q(6993),
+ q(6977),
q(0),
],
q(ver) => [
- q(6994),
+ q(6978),
q(0),
],
q(vgr) => [
- q(6995),
+ q(6979),
q(0),
],
q(vgt) => [
- q(6996),
+ q(6980),
q(0),
],
q(vic) => [
- q(6997),
+ q(6981),
q(0),
],
q(vid) => [
- q(6998),
+ q(6982),
q(0),
],
q(vie) => [
@@ -86164,183 +86043,183 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(vif) => [
- q(6999),
+ q(6983),
q(0),
],
q(vig) => [
- q(7000),
+ q(6984),
q(0),
],
q(vil) => [
- q(7001),
+ q(6985),
q(0),
],
q(vin) => [
- q(7002),
+ q(6986),
q(0),
],
q(vis) => [
- q(7003),
+ q(6987),
q(0),
],
q(vit) => [
- q(7004),
+ q(6988),
q(0),
],
q(viv) => [
- q(7005),
+ q(6989),
q(0),
],
q(vka) => [
- q(7006),
+ q(6990),
q(0),
],
q(vki) => [
- q(7007),
+ q(6991),
q(0),
],
q(vkj) => [
- q(7008),
+ q(6992),
q(0),
],
q(vkk) => [
- q(7009),
+ q(6993),
q(0),
],
q(vkl) => [
- q(7010),
+ q(6994),
q(0),
],
q(vkm) => [
- q(7011),
+ q(6995),
q(0),
],
q(vko) => [
- q(7012),
+ q(6996),
q(0),
],
q(vkp) => [
- q(7013),
+ q(6997),
q(0),
],
q(vkt) => [
- q(7014),
+ q(6998),
q(0),
],
q(vku) => [
- q(7015),
+ q(6999),
q(0),
],
q(vlp) => [
- q(7016),
+ q(7000),
q(0),
],
q(vls) => [
- q(7017),
+ q(7001),
q(0),
],
q(vma) => [
- q(7018),
+ q(7002),
q(0),
],
q(vmb) => [
- q(7019),
+ q(7003),
q(0),
],
q(vmc) => [
- q(7020),
+ q(7004),
q(0),
],
q(vmd) => [
- q(7021),
+ q(7005),
q(0),
],
q(vme) => [
- q(7022),
+ q(7006),
q(0),
],
q(vmf) => [
- q(7023),
+ q(7007),
q(0),
],
q(vmg) => [
- q(7024),
+ q(7008),
q(0),
],
q(vmh) => [
- q(7025),
+ q(7009),
q(0),
],
q(vmi) => [
- q(7026),
+ q(7010),
q(0),
],
q(vmj) => [
- q(7027),
+ q(7011),
q(0),
],
q(vmk) => [
- q(7028),
+ q(7012),
q(0),
],
q(vml) => [
- q(7029),
+ q(7013),
q(0),
],
q(vmm) => [
- q(7030),
+ q(7014),
q(0),
],
q(vmp) => [
- q(7031),
+ q(7015),
q(0),
],
q(vmq) => [
- q(7032),
+ q(7016),
q(0),
],
q(vmr) => [
- q(7033),
+ q(7017),
q(0),
],
q(vms) => [
- q(7034),
+ q(7018),
q(0),
],
q(vmu) => [
- q(7035),
+ q(7019),
q(0),
],
q(vmv) => [
- q(7036),
+ q(7020),
q(0),
],
q(vmw) => [
- q(7037),
+ q(7021),
q(0),
],
q(vmx) => [
- q(7038),
+ q(7022),
q(0),
],
q(vmy) => [
- q(7039),
+ q(7023),
q(0),
],
q(vmz) => [
- q(7040),
+ q(7024),
q(0),
],
q(vnk) => [
- q(7041),
+ q(7025),
q(0),
],
q(vnm) => [
- q(7042),
+ q(7026),
q(0),
],
q(vnp) => [
- q(7043),
+ q(7027),
q(0),
],
q(vol) => [
@@ -86348,7 +86227,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(vor) => [
- q(7044),
+ q(7028),
q(0),
],
q(vot) => [
@@ -86356,91 +86235,91 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(vra) => [
- q(7045),
+ q(7029),
q(0),
],
q(vro) => [
- q(7044),
+ q(7028),
q(0),
],
q(vrs) => [
- q(7046),
+ q(7030),
q(0),
],
q(vrt) => [
- q(7047),
+ q(7031),
q(0),
],
q(vsi) => [
- q(7048),
+ q(7032),
q(0),
],
q(vsl) => [
- q(7049),
+ q(7033),
q(0),
],
q(vsv) => [
- q(7050),
+ q(7034),
q(0),
],
q(vto) => [
- q(7051),
+ q(7035),
q(0),
],
q(vum) => [
- q(7052),
+ q(7036),
q(0),
],
q(vun) => [
- q(7053),
+ q(7037),
q(0),
],
q(vut) => [
- q(7054),
+ q(7038),
q(0),
],
q(vwa) => [
- q(7055),
+ q(7039),
q(0),
],
q(waa) => [
- q(7056),
+ q(7040),
q(0),
],
q(wab) => [
- q(7057),
+ q(7041),
q(0),
],
q(wac) => [
- q(7058),
+ q(7042),
q(0),
],
q(wad) => [
- q(7059),
+ q(7043),
q(0),
],
q(wae) => [
- q(7060),
+ q(7044),
q(0),
],
q(waf) => [
- q(7061),
+ q(7045),
q(0),
],
q(wag) => [
- q(7062),
+ q(7046),
q(0),
],
q(wah) => [
- q(7063),
+ q(7047),
q(0),
],
q(wai) => [
- q(7064),
+ q(7048),
q(0),
],
q(waj) => [
- q(7065),
+ q(7049),
q(0),
],
q(wak) => [
@@ -86452,23 +86331,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(1),
],
q(wam) => [
- q(7066),
+ q(7050),
q(0),
],
q(wan) => [
- q(7067),
+ q(7051),
q(0),
],
q(wao) => [
- q(7068),
+ q(7052),
q(0),
],
q(wap) => [
- q(7069),
+ q(7053),
q(0),
],
q(waq) => [
- q(7070),
+ q(7054),
q(0),
],
q(war) => [
@@ -86480,151 +86359,151 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(wat) => [
- q(7071),
+ q(7055),
q(0),
],
q(wau) => [
- q(7072),
+ q(7056),
q(0),
],
q(wav) => [
- q(7073),
+ q(7057),
q(0),
],
q(waw) => [
- q(7074),
+ q(7058),
q(0),
],
q(wax) => [
- q(7075),
+ q(7059),
q(0),
],
q(way) => [
- q(7076),
+ q(7060),
q(0),
],
q(waz) => [
- q(7077),
+ q(7061),
q(0),
],
q(wba) => [
- q(7078),
+ q(7062),
q(0),
],
q(wbb) => [
- q(7079),
+ q(7063),
q(0),
],
q(wbe) => [
- q(7080),
+ q(7064),
q(0),
],
q(wbf) => [
- q(6413),
+ q(6402),
q(0),
],
q(wbh) => [
- q(7081),
+ q(7065),
q(0),
],
q(wbi) => [
- q(7082),
+ q(7066),
q(0),
],
q(wbj) => [
- q(7083),
+ q(7067),
q(0),
],
q(wbk) => [
- q(7084),
+ q(7068),
q(0),
],
q(wbl) => [
- q(7085),
+ q(7069),
q(0),
],
q(wbm) => [
- q(7086),
+ q(7070),
q(0),
],
q(wbp) => [
- q(7087),
+ q(7071),
q(0),
],
q(wbq) => [
- q(7088),
+ q(7072),
q(0),
],
q(wbr) => [
- q(7089),
+ q(7073),
q(0),
],
q(wbt) => [
- q(7090),
+ q(7074),
q(0),
],
q(wbv) => [
- q(7091),
+ q(7075),
q(0),
],
q(wbw) => [
- q(7092),
+ q(7076),
q(0),
],
q(wca) => [
- q(7093),
+ q(7077),
q(0),
],
q(wci) => [
- q(7094),
+ q(7078),
q(0),
],
q(wdd) => [
- q(7095),
+ q(7079),
q(0),
],
q(wdg) => [
- q(7096),
+ q(7080),
q(0),
],
q(wdj) => [
- q(7097),
+ q(7081),
q(0),
],
q(wdk) => [
- q(7098),
+ q(7082),
q(0),
],
q(wdu) => [
- q(7099),
+ q(7083),
q(0),
],
q(wdy) => [
- q(7100),
+ q(7084),
q(0),
],
q(wea) => [
- q(7101),
+ q(7085),
q(0),
],
q(wec) => [
- q(7102),
+ q(7086),
q(0),
],
q(wed) => [
- q(7103),
+ q(7087),
q(0),
],
q(weg) => [
- q(7104),
+ q(7088),
q(0),
],
q(weh) => [
- q(7105),
+ q(7089),
q(0),
],
q(wei) => [
- q(7106),
+ q(7090),
q(0),
],
q(wel) => [
@@ -86632,7 +86511,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(wem) => [
- q(7107),
+ q(7091),
q(0),
],
q(wen) => [
@@ -86640,211 +86519,211 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(weo) => [
- q(7108),
+ q(7092),
q(0),
],
q(wep) => [
- q(7109),
+ q(7093),
q(0),
],
q(wer) => [
- q(7110),
+ q(7094),
q(0),
],
q(wes) => [
- q(7111),
+ q(7095),
q(0),
],
q(wet) => [
- q(7112),
+ q(7096),
q(0),
],
q(weu) => [
- q(7113),
+ q(7097),
q(0),
],
q(wew) => [
- q(7114),
+ q(7098),
q(0),
],
q(wfg) => [
- q(7115),
+ q(7099),
q(0),
],
q(wga) => [
- q(7116),
+ q(7100),
q(0),
],
q(wgb) => [
- q(7117),
+ q(7101),
q(0),
],
q(wgg) => [
- q(7118),
+ q(7102),
q(0),
],
q(wgi) => [
- q(7119),
+ q(7103),
q(0),
],
q(wgo) => [
- q(7120),
+ q(7104),
q(0),
],
q(wgu) => [
- q(7121),
+ q(7105),
q(0),
],
q(wgy) => [
- q(7122),
+ q(7106),
q(0),
],
q(wha) => [
- q(7123),
+ q(7107),
q(0),
],
q(whg) => [
- q(7124),
+ q(7108),
q(0),
],
q(whk) => [
- q(7125),
+ q(7109),
q(0),
],
q(whu) => [
- q(7126),
+ q(7110),
q(0),
],
q(wib) => [
- q(7127),
+ q(7111),
q(0),
],
q(wic) => [
- q(7128),
+ q(7112),
q(0),
],
q(wie) => [
- q(7129),
+ q(7113),
q(0),
],
q(wif) => [
- q(7130),
+ q(7114),
q(0),
],
q(wig) => [
- q(7131),
+ q(7115),
q(0),
],
q(wih) => [
- q(7132),
+ q(7116),
q(0),
],
q(wii) => [
- q(7133),
+ q(7117),
q(0),
],
q(wij) => [
- q(7134),
+ q(7118),
q(0),
],
q(wik) => [
- q(7135),
+ q(7119),
q(0),
],
q(wil) => [
- q(7136),
+ q(7120),
q(0),
],
q(wim) => [
- q(7137),
+ q(7121),
q(0),
],
q(win) => [
- q(7138),
+ q(7122),
q(0),
],
q(wir) => [
- q(7139),
+ q(7123),
q(0),
],
q(wiu) => [
- q(7140),
+ q(7124),
q(0),
],
q(wiv) => [
- q(7141),
+ q(7125),
q(0),
],
q(wiy) => [
- q(7142),
+ q(7126),
q(0),
],
q(wja) => [
- q(7143),
+ q(7127),
q(0),
],
q(wji) => [
- q(7144),
+ q(7128),
q(0),
],
q(wka) => [
- q(7145),
+ q(7129),
q(0),
],
q(wkb) => [
- q(7146),
+ q(7130),
q(0),
],
q(wkd) => [
- q(7147),
+ q(7131),
q(0),
],
q(wkl) => [
- q(7148),
+ q(7132),
q(0),
],
q(wku) => [
- q(7149),
+ q(7133),
q(0),
],
q(wkw) => [
- q(7150),
+ q(7134),
q(0),
],
q(wky) => [
- q(7151),
+ q(7135),
q(0),
],
q(wla) => [
- q(7152),
+ q(7136),
q(0),
],
q(wlc) => [
- q(7153),
+ q(7137),
q(0),
],
q(wle) => [
- q(7154),
+ q(7138),
q(0),
],
q(wlg) => [
- q(7155),
+ q(7139),
q(0),
],
q(wli) => [
- q(7156),
+ q(7140),
q(0),
],
q(wlk) => [
- q(7157),
+ q(7141),
q(0),
],
q(wll) => [
- q(7158),
+ q(7142),
q(0),
],
q(wlm) => [
- q(7159),
+ q(7143),
q(0),
],
q(wln) => [
@@ -86852,183 +86731,183 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(wlo) => [
- q(7160),
+ q(7144),
q(0),
],
q(wlr) => [
- q(7161),
+ q(7145),
q(0),
],
q(wls) => [
- q(7162),
+ q(7146),
q(0),
],
q(wlu) => [
- q(7163),
+ q(7147),
q(0),
],
q(wlv) => [
- q(7164),
+ q(7148),
q(0),
],
q(wlw) => [
- q(7165),
+ q(7149),
q(0),
],
q(wlx) => [
- q(7166),
+ q(7150),
q(0),
],
q(wly) => [
- q(7167),
+ q(7151),
q(0),
],
q(wma) => [
- q(7168),
+ q(7152),
q(0),
],
q(wmb) => [
- q(7169),
+ q(7153),
q(0),
],
q(wmc) => [
- q(7170),
+ q(7154),
q(0),
],
q(wmd) => [
- q(7171),
+ q(7155),
q(0),
],
q(wme) => [
- q(7172),
+ q(7156),
q(0),
],
q(wmh) => [
- q(7173),
+ q(7157),
q(0),
],
q(wmi) => [
- q(7174),
+ q(7158),
q(0),
],
q(wmm) => [
- q(7175),
+ q(7159),
q(0),
],
q(wmn) => [
- q(7176),
+ q(7160),
q(0),
],
q(wmo) => [
- q(7177),
+ q(7161),
q(0),
],
q(wms) => [
- q(7178),
+ q(7162),
q(0),
],
q(wmt) => [
- q(7179),
+ q(7163),
q(0),
],
q(wmw) => [
- q(7180),
+ q(7164),
q(0),
],
q(wmx) => [
- q(7181),
+ q(7165),
q(0),
],
q(wnb) => [
- q(7182),
+ q(7166),
q(0),
],
q(wnc) => [
- q(7183),
+ q(7167),
q(0),
],
q(wnd) => [
- q(7184),
+ q(7168),
q(0),
],
q(wne) => [
- q(7185),
+ q(7169),
q(0),
],
q(wng) => [
- q(7186),
+ q(7170),
q(0),
],
q(wni) => [
- q(7187),
+ q(7171),
q(0),
],
q(wnk) => [
- q(7188),
+ q(7172),
q(0),
],
q(wnm) => [
- q(7189),
+ q(7173),
q(0),
],
q(wnn) => [
- q(7190),
+ q(7174),
q(0),
],
q(wno) => [
- q(7191),
+ q(7175),
q(0),
],
q(wnp) => [
- q(7192),
+ q(7176),
q(0),
],
q(wnu) => [
- q(7193),
+ q(7177),
q(0),
],
q(wnw) => [
- q(7194),
+ q(7178),
q(0),
],
q(wny) => [
- q(7195),
+ q(7179),
q(0),
],
q(woa) => [
- q(7196),
+ q(7180),
q(0),
],
q(wob) => [
- q(7197),
+ q(7181),
q(0),
],
q(woc) => [
- q(7198),
+ q(7182),
q(0),
],
q(wod) => [
- q(7199),
+ q(7183),
q(0),
],
q(woe) => [
- q(7200),
+ q(7184),
q(0),
],
q(wof) => [
- q(7201),
+ q(7185),
q(0),
],
q(wog) => [
- q(7202),
+ q(7186),
q(0),
],
q(woi) => [
- q(7203),
+ q(7187),
q(0),
],
q(wok) => [
- q(7204),
+ q(7188),
q(0),
],
q(wol) => [
@@ -87036,303 +86915,311 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(wom) => [
- q(7205),
+ q(7189),
q(0),
],
q(won) => [
- q(7206),
+ q(7190),
q(0),
],
q(woo) => [
- q(7207),
+ q(7191),
q(0),
],
q(wor) => [
- q(7208),
+ q(7192),
q(0),
],
q(wos) => [
- q(7209),
+ q(7193),
q(0),
],
q(wow) => [
- q(7210),
+ q(7194),
q(0),
],
q(woy) => [
- q(7211),
+ q(7195),
q(0),
],
q(wpc) => [
- q(7212),
+ q(7196),
q(0),
],
q(wra) => [
- q(7213),
+ q(7197),
q(0),
],
q(wrb) => [
- q(7214),
+ q(7198),
q(0),
],
q(wrd) => [
- q(7215),
+ q(7199),
q(0),
],
q(wrg) => [
- q(7216),
+ q(7200),
q(0),
],
q(wrh) => [
- q(7217),
+ q(7201),
q(0),
],
q(wri) => [
- q(7218),
+ q(7202),
q(0),
],
q(wrk) => [
- q(7219),
+ q(7203),
q(0),
],
q(wrl) => [
- q(7220),
+ q(7204),
q(0),
],
q(wrm) => [
- q(7221),
+ q(7205),
q(0),
],
q(wrn) => [
- q(7222),
+ q(7206),
q(0),
],
q(wro) => [
- q(7223),
+ q(7207),
q(0),
],
q(wrp) => [
- q(7224),
+ q(7208),
q(0),
],
q(wrr) => [
- q(7225),
+ q(7209),
q(0),
],
q(wrs) => [
- q(7226),
+ q(7210),
q(0),
],
q(wru) => [
- q(7227),
+ q(7211),
q(0),
],
q(wrv) => [
- q(7228),
+ q(7212),
q(0),
],
q(wrw) => [
- q(7229),
+ q(7213),
q(0),
],
q(wrx) => [
- q(7230),
+ q(7214),
q(0),
],
q(wry) => [
- q(7231),
+ q(7215),
q(0),
],
q(wrz) => [
- q(7232),
+ q(7216),
q(0),
],
q(wsa) => [
- q(7233),
+ q(7217),
+ q(0),
+ ],
+ q(wsg) => [
+ q(7218),
q(0),
],
q(wsi) => [
- q(7234),
+ q(7219),
q(0),
],
q(wsk) => [
- q(7235),
+ q(7220),
q(0),
],
q(wsr) => [
- q(7236),
+ q(7221),
q(0),
],
q(wss) => [
- q(7237),
+ q(7222),
q(0),
],
q(wsu) => [
- q(7238),
+ q(7223),
q(0),
],
q(wsv) => [
- q(7239),
+ q(7224),
q(0),
],
q(wtf) => [
- q(7240),
+ q(7225),
q(0),
],
q(wth) => [
- q(7241),
+ q(7226),
q(0),
],
q(wti) => [
- q(7242),
+ q(7227),
q(0),
],
q(wtk) => [
- q(7243),
+ q(7228),
q(0),
],
q(wtm) => [
- q(7244),
+ q(7229),
q(0),
],
q(wtw) => [
- q(7245),
+ q(7230),
q(0),
],
q(wua) => [
- q(7246),
+ q(7231),
q(0),
],
q(wub) => [
- q(7247),
+ q(7232),
q(0),
],
q(wud) => [
- q(7248),
+ q(7233),
q(0),
],
q(wuh) => [
- q(7249),
+ q(7234),
q(0),
],
q(wul) => [
- q(7250),
+ q(7235),
q(0),
],
q(wum) => [
- q(7251),
+ q(7236),
q(0),
],
q(wun) => [
- q(7252),
+ q(7237),
q(0),
],
q(wur) => [
- q(7253),
+ q(7238),
q(0),
],
q(wut) => [
- q(7254),
+ q(7239),
q(0),
],
q(wuu) => [
- q(7255),
+ q(7240),
q(0),
],
q(wuv) => [
- q(7256),
+ q(7241),
q(0),
],
q(wux) => [
- q(7257),
+ q(7242),
q(0),
],
q(wuy) => [
- q(7258),
+ q(7243),
q(0),
],
q(wwa) => [
- q(7259),
+ q(7244),
q(0),
],
q(wwb) => [
- q(7260),
+ q(7245),
q(0),
],
q(wwo) => [
- q(7261),
+ q(7246),
q(0),
],
q(wwr) => [
- q(7262),
+ q(7247),
q(0),
],
q(www) => [
- q(7263),
+ q(7248),
q(0),
],
q(wxa) => [
- q(7264),
+ q(7249),
q(0),
],
q(wxw) => [
- q(7265),
+ q(7250),
q(0),
],
q(wya) => [
- q(7266),
+ q(7251),
q(0),
],
q(wyb) => [
- q(7267),
+ q(7252),
q(0),
],
q(wyi) => [
- q(7268),
+ q(7253),
q(0),
],
q(wym) => [
- q(7269),
+ q(7254),
q(0),
],
q(wyr) => [
- q(7270),
+ q(7255),
q(0),
],
q(wyy) => [
- q(7271),
+ q(7256),
q(0),
],
q(xaa) => [
- q(7272),
+ q(7257),
q(0),
],
q(xab) => [
- q(7273),
+ q(7258),
q(0),
],
q(xac) => [
- q(7274),
+ q(7259),
q(0),
],
q(xad) => [
- q(7275),
+ q(7260),
q(0),
],
q(xae) => [
- q(7276),
+ q(7261),
q(0),
],
q(xag) => [
- q(7277),
+ q(7262),
q(0),
],
q(xai) => [
- q(7278),
+ q(7263),
q(0),
],
q(xaj) => [
- q(7279),
+ q(7264),
+ q(0),
+ ],
+ q(xak) => [
+ q(7265),
q(0),
],
q(xal) => [
@@ -87340,271 +87227,263 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(xam) => [
- q(7280),
+ q(7266),
q(0),
],
q(xan) => [
- q(7281),
+ q(7267),
q(0),
],
q(xao) => [
- q(7282),
+ q(7268),
q(0),
],
q(xap) => [
- q(7283),
+ q(7269),
q(0),
],
q(xaq) => [
- q(7284),
+ q(7270),
q(0),
],
q(xar) => [
- q(7285),
+ q(7271),
q(0),
],
q(xas) => [
- q(7286),
+ q(7272),
q(0),
],
q(xat) => [
- q(7287),
+ q(7273),
q(0),
],
q(xau) => [
- q(7288),
+ q(7274),
q(0),
],
q(xav) => [
- q(7289),
+ q(7275),
q(0),
],
q(xaw) => [
- q(7290),
+ q(7276),
q(0),
],
q(xay) => [
- q(7291),
- q(0),
- ],
- q(xba) => [
- q(7292),
+ q(7277),
q(0),
],
q(xbb) => [
- q(7293),
+ q(7278),
q(0),
],
q(xbc) => [
- q(7294),
+ q(7279),
q(0),
],
q(xbd) => [
- q(7295),
+ q(7280),
q(0),
],
q(xbe) => [
- q(7296),
+ q(7281),
q(0),
],
q(xbg) => [
- q(7297),
+ q(7282),
q(0),
],
q(xbi) => [
- q(7298),
+ q(7283),
q(0),
],
q(xbj) => [
- q(7299),
+ q(7284),
q(0),
],
q(xbm) => [
- q(7300),
+ q(7285),
q(0),
],
q(xbn) => [
- q(7301),
+ q(7286),
q(0),
],
q(xbo) => [
- q(7302),
+ q(7287),
q(0),
],
q(xbp) => [
- q(7303),
+ q(7288),
q(0),
],
q(xbr) => [
- q(7304),
+ q(7289),
q(0),
],
q(xbw) => [
- q(7305),
- q(0),
- ],
- q(xbx) => [
- q(7306),
+ q(7290),
q(0),
],
q(xby) => [
- q(7307),
+ q(7291),
q(0),
],
q(xcb) => [
- q(7308),
+ q(7292),
q(0),
],
q(xcc) => [
- q(7309),
+ q(7293),
q(0),
],
q(xce) => [
- q(7310),
+ q(7294),
q(0),
],
q(xcg) => [
- q(7311),
+ q(7295),
q(0),
],
q(xch) => [
- q(7312),
+ q(7296),
q(0),
],
q(xcl) => [
- q(7313),
+ q(7297),
q(0),
],
q(xcm) => [
- q(7314),
+ q(7298),
q(0),
],
q(xcn) => [
- q(7315),
+ q(7299),
q(0),
],
q(xco) => [
- q(7316),
+ q(7300),
q(0),
],
q(xcr) => [
- q(7317),
+ q(7301),
q(0),
],
q(xct) => [
- q(7318),
+ q(7302),
q(0),
],
q(xcu) => [
- q(7319),
+ q(7303),
q(0),
],
q(xcv) => [
- q(7320),
+ q(7304),
q(0),
],
q(xcw) => [
- q(7321),
+ q(7305),
q(0),
],
q(xcy) => [
- q(7322),
+ q(7306),
q(0),
],
q(xda) => [
- q(7323),
+ q(7307),
q(0),
],
q(xdc) => [
- q(7324),
+ q(7308),
q(0),
],
q(xdk) => [
- q(7325),
+ q(7309),
q(0),
],
q(xdm) => [
- q(7326),
+ q(7310),
q(0),
],
q(xdy) => [
- q(7327),
+ q(7311),
q(0),
],
q(xeb) => [
- q(7328),
+ q(7312),
q(0),
],
q(xed) => [
- q(7329),
+ q(7313),
q(0),
],
q(xeg) => [
- q(7330),
+ q(7314),
q(0),
],
q(xel) => [
- q(7331),
+ q(7315),
q(0),
],
q(xem) => [
- q(7332),
+ q(7316),
q(0),
],
q(xep) => [
- q(7333),
+ q(7317),
q(0),
],
q(xer) => [
- q(7334),
+ q(7318),
q(0),
],
q(xes) => [
- q(7335),
+ q(7319),
q(0),
],
q(xet) => [
- q(7336),
+ q(7320),
q(0),
],
q(xeu) => [
- q(7337),
+ q(7321),
q(0),
],
q(xfa) => [
- q(7338),
+ q(7322),
q(0),
],
q(xga) => [
- q(7339),
+ q(7323),
q(0),
],
q(xgb) => [
- q(7340),
+ q(7324),
q(0),
],
q(xgd) => [
- q(7341),
+ q(7325),
q(0),
],
q(xgf) => [
- q(7342),
+ q(7326),
q(0),
],
q(xgg) => [
- q(7343),
+ q(7327),
q(0),
],
q(xgi) => [
- q(7344),
+ q(7328),
q(0),
],
q(xgl) => [
- q(7345),
+ q(7329),
q(0),
],
q(xgm) => [
- q(7346),
+ q(7330),
q(0),
],
q(xgn) => [
@@ -87612,31 +87491,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(xgr) => [
- q(7347),
+ q(7331),
q(0),
],
q(xgu) => [
- q(7348),
+ q(7332),
q(0),
],
q(xgw) => [
- q(7349),
+ q(7333),
q(0),
],
q(xha) => [
- q(7350),
+ q(7334),
q(0),
],
q(xhc) => [
- q(7351),
+ q(7335),
q(0),
],
q(xhd) => [
- q(7352),
+ q(7336),
q(0),
],
q(xhe) => [
- q(7353),
+ q(7337),
q(0),
],
q(xho) => [
@@ -87644,323 +87523,315 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(xhr) => [
- q(7354),
+ q(7338),
q(0),
],
q(xht) => [
- q(7355),
+ q(7339),
q(0),
],
q(xhu) => [
- q(7356),
+ q(7340),
q(0),
],
q(xhv) => [
- q(7357),
+ q(7341),
q(0),
],
q(xib) => [
- q(7358),
+ q(7342),
q(0),
],
q(xii) => [
- q(7359),
+ q(7343),
q(0),
],
q(xil) => [
- q(7360),
+ q(7344),
q(0),
],
q(xin) => [
- q(7361),
- q(0),
- ],
- q(xip) => [
- q(7362),
+ q(7345),
q(0),
],
q(xir) => [
- q(7363),
+ q(7346),
q(0),
],
q(xis) => [
- q(7364),
+ q(7347),
q(0),
],
q(xiv) => [
- q(7365),
+ q(7348),
q(0),
],
q(xiy) => [
- q(7366),
+ q(7349),
q(0),
],
q(xjb) => [
- q(7367),
+ q(7350),
q(0),
],
q(xjt) => [
- q(7368),
+ q(7351),
q(0),
],
q(xka) => [
- q(7369),
+ q(7352),
q(0),
],
q(xkb) => [
- q(7370),
+ q(7353),
q(0),
],
q(xkc) => [
- q(7371),
+ q(7354),
q(0),
],
q(xkd) => [
- q(7372),
+ q(7355),
q(0),
],
q(xke) => [
- q(7373),
+ q(7356),
q(0),
],
q(xkf) => [
- q(7374),
+ q(7357),
q(0),
],
q(xkg) => [
- q(7375),
- q(0),
- ],
- q(xkh) => [
- q(7376),
+ q(7358),
q(0),
],
q(xki) => [
- q(7377),
+ q(7359),
q(0),
],
q(xkj) => [
- q(7378),
+ q(7360),
q(0),
],
q(xkk) => [
- q(7379),
+ q(7361),
q(0),
],
q(xkl) => [
- q(7380),
+ q(7362),
q(0),
],
q(xkn) => [
- q(7381),
+ q(7363),
q(0),
],
q(xko) => [
- q(7382),
+ q(7364),
q(0),
],
q(xkp) => [
- q(7383),
+ q(7365),
q(0),
],
q(xkq) => [
- q(7384),
+ q(7366),
q(0),
],
q(xkr) => [
- q(7385),
+ q(7367),
q(0),
],
q(xks) => [
- q(7386),
+ q(7368),
q(0),
],
q(xkt) => [
- q(7387),
+ q(7369),
q(0),
],
q(xku) => [
- q(7388),
+ q(7370),
q(0),
],
q(xkv) => [
- q(7389),
+ q(7371),
q(0),
],
q(xkw) => [
- q(7390),
+ q(7372),
q(0),
],
q(xkx) => [
- q(7391),
+ q(7373),
q(0),
],
q(xky) => [
- q(7392),
+ q(7374),
q(0),
],
q(xkz) => [
- q(7393),
+ q(7375),
q(0),
],
q(xla) => [
- q(7394),
+ q(7376),
q(0),
],
q(xlb) => [
- q(7395),
+ q(7377),
q(0),
],
q(xlc) => [
- q(7396),
+ q(7378),
q(0),
],
q(xld) => [
- q(7397),
+ q(7379),
q(0),
],
q(xle) => [
- q(7398),
+ q(7380),
q(0),
],
q(xlg) => [
- q(7399),
+ q(7381),
q(0),
],
q(xli) => [
- q(7400),
+ q(7382),
q(0),
],
q(xln) => [
- q(7401),
+ q(7383),
q(0),
],
q(xlo) => [
- q(7402),
+ q(7384),
q(0),
],
q(xlp) => [
- q(7403),
+ q(7385),
q(0),
],
q(xls) => [
- q(7404),
+ q(7386),
q(0),
],
q(xlu) => [
- q(7405),
+ q(7387),
q(0),
],
q(xly) => [
- q(7406),
+ q(7388),
q(0),
],
q(xma) => [
- q(7407),
+ q(7389),
q(0),
],
q(xmb) => [
- q(7408),
+ q(7390),
q(0),
],
q(xmc) => [
- q(7409),
+ q(7391),
q(0),
],
q(xmd) => [
- q(7410),
+ q(7392),
q(0),
],
q(xme) => [
- q(7411),
+ q(7393),
q(0),
],
q(xmf) => [
- q(7412),
+ q(7394),
q(0),
],
q(xmg) => [
- q(7413),
+ q(7395),
q(0),
],
q(xmh) => [
- q(7414),
+ q(7396),
q(0),
],
q(xmj) => [
- q(7415),
+ q(7397),
q(0),
],
q(xmk) => [
- q(7416),
+ q(7398),
q(0),
],
q(xml) => [
- q(7417),
+ q(7399),
q(0),
],
q(xmm) => [
- q(7418),
+ q(7400),
q(0),
],
q(xmn) => [
- q(7419),
+ q(7401),
q(0),
],
q(xmo) => [
- q(7420),
+ q(7402),
q(0),
],
q(xmp) => [
- q(7421),
+ q(7403),
q(0),
],
q(xmq) => [
- q(7422),
+ q(7404),
q(0),
],
q(xmr) => [
- q(7423),
+ q(7405),
q(0),
],
q(xms) => [
- q(7424),
+ q(7406),
q(0),
],
q(xmt) => [
- q(7425),
+ q(7407),
q(0),
],
q(xmu) => [
- q(7426),
+ q(7408),
q(0),
],
q(xmv) => [
- q(7427),
+ q(7409),
q(0),
],
q(xmw) => [
- q(7428),
+ q(7410),
q(0),
],
q(xmx) => [
- q(7429),
+ q(7411),
q(0),
],
q(xmy) => [
- q(7430),
+ q(7412),
q(0),
],
q(xmz) => [
- q(7431),
+ q(7413),
q(0),
],
q(xna) => [
- q(7432),
+ q(7414),
q(0),
],
q(xnb) => [
- q(7433),
+ q(7415),
q(0),
],
q(xnd) => [
@@ -87968,623 +87839,623 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(xng) => [
- q(7434),
+ q(7416),
q(0),
],
q(xnh) => [
- q(7435),
+ q(7417),
q(0),
],
q(xni) => [
- q(7436),
+ q(7418),
q(0),
],
q(xnk) => [
- q(7437),
+ q(7419),
q(0),
],
q(xnn) => [
- q(7438),
+ q(7420),
q(0),
],
q(xno) => [
- q(7439),
+ q(7421),
q(0),
],
q(xnr) => [
- q(7440),
+ q(7422),
q(0),
],
q(xns) => [
- q(7441),
+ q(7423),
q(0),
],
q(xnt) => [
- q(7442),
+ q(7424),
q(0),
],
q(xnu) => [
- q(7443),
+ q(7425),
q(0),
],
q(xny) => [
- q(7444),
+ q(7426),
q(0),
],
q(xnz) => [
- q(7445),
+ q(7427),
q(0),
],
q(xoc) => [
- q(7446),
+ q(7428),
q(0),
],
q(xod) => [
- q(7447),
+ q(7429),
q(0),
],
q(xog) => [
- q(7448),
+ q(7430),
q(0),
],
q(xoi) => [
- q(7449),
+ q(7431),
q(0),
],
q(xok) => [
- q(7450),
+ q(7432),
q(0),
],
q(xom) => [
- q(7451),
+ q(7433),
q(0),
],
q(xon) => [
- q(7452),
+ q(7434),
q(0),
],
q(xoo) => [
- q(7453),
+ q(7435),
q(0),
],
q(xop) => [
- q(7454),
+ q(7436),
q(0),
],
q(xor) => [
- q(7455),
+ q(7437),
q(0),
],
q(xow) => [
- q(7456),
+ q(7438),
q(0),
],
q(xpa) => [
- q(7457),
+ q(7439),
q(0),
],
q(xpc) => [
- q(7458),
+ q(7440),
q(0),
],
q(xpe) => [
- q(7459),
+ q(7441),
q(0),
],
q(xpg) => [
- q(7460),
+ q(7442),
q(0),
],
q(xpi) => [
- q(7461),
+ q(7443),
q(0),
],
q(xpj) => [
- q(7462),
+ q(7444),
q(0),
],
q(xpk) => [
- q(7463),
+ q(7445),
q(0),
],
q(xpm) => [
- q(7464),
+ q(7446),
q(0),
],
q(xpn) => [
- q(7465),
+ q(7447),
q(0),
],
q(xpo) => [
- q(7466),
+ q(7448),
q(0),
],
q(xpp) => [
- q(7467),
+ q(7449),
q(0),
],
q(xpq) => [
- q(7468),
+ q(7450),
q(0),
],
q(xpr) => [
- q(7469),
+ q(7451),
q(0),
],
q(xps) => [
- q(7470),
+ q(7452),
q(0),
],
q(xpt) => [
- q(7471),
+ q(7453),
q(0),
],
q(xpu) => [
- q(7472),
+ q(7454),
q(0),
],
q(xpy) => [
- q(7473),
+ q(7455),
q(0),
],
q(xqa) => [
- q(7474),
+ q(7456),
q(0),
],
q(xqt) => [
- q(7475),
+ q(7457),
q(0),
],
q(xra) => [
- q(7476),
+ q(7458),
q(0),
],
q(xrb) => [
- q(7477),
+ q(7459),
q(0),
],
q(xrd) => [
- q(7478),
+ q(7460),
q(0),
],
q(xre) => [
- q(7479),
+ q(7461),
q(0),
],
q(xrg) => [
- q(7480),
+ q(7462),
q(0),
],
q(xri) => [
- q(7481),
+ q(7463),
q(0),
],
q(xrm) => [
- q(7482),
+ q(7464),
q(0),
],
q(xrn) => [
- q(7483),
+ q(7465),
q(0),
],
q(xrq) => [
- q(7484),
+ q(7466),
q(0),
],
q(xrr) => [
- q(7485),
+ q(7467),
q(0),
],
q(xrt) => [
- q(7486),
+ q(7468),
q(0),
],
q(xru) => [
- q(7487),
+ q(7469),
q(0),
],
q(xrw) => [
- q(7488),
+ q(7470),
q(0),
],
q(xsa) => [
- q(7489),
+ q(7471),
q(0),
],
q(xsb) => [
- q(7490),
+ q(7472),
q(0),
],
q(xsc) => [
- q(7491),
+ q(7473),
q(0),
],
q(xsd) => [
- q(7492),
+ q(7474),
q(0),
],
q(xse) => [
- q(7493),
+ q(7475),
q(0),
],
q(xsh) => [
- q(7494),
+ q(7476),
q(0),
],
q(xsi) => [
- q(7495),
+ q(7477),
q(0),
],
q(xsl) => [
- q(7496),
+ q(7478),
q(0),
],
q(xsm) => [
- q(7497),
+ q(7479),
q(0),
],
q(xsn) => [
- q(7498),
+ q(7480),
q(0),
],
q(xso) => [
- q(7499),
+ q(7481),
q(0),
],
q(xsp) => [
- q(7500),
+ q(7482),
q(0),
],
q(xsq) => [
- q(7501),
+ q(7483),
q(0),
],
q(xsr) => [
- q(7502),
+ q(7484),
q(0),
],
q(xss) => [
- q(7503),
+ q(7485),
q(0),
],
q(xsu) => [
- q(7504),
+ q(7486),
q(0),
],
q(xsv) => [
- q(7505),
+ q(7487),
q(0),
],
q(xsy) => [
- q(7506),
+ q(7488),
q(0),
],
q(xta) => [
- q(7507),
+ q(7489),
q(0),
],
q(xtb) => [
- q(7508),
+ q(7490),
q(0),
],
q(xtc) => [
- q(7509),
+ q(7491),
q(0),
],
q(xtd) => [
- q(7510),
+ q(7492),
q(0),
],
q(xte) => [
- q(7511),
+ q(7493),
q(0),
],
q(xtg) => [
- q(7512),
+ q(7494),
q(0),
],
q(xth) => [
- q(7513),
+ q(7495),
q(0),
],
q(xti) => [
- q(7514),
+ q(7496),
q(0),
],
q(xtj) => [
- q(7515),
+ q(7497),
q(0),
],
q(xtl) => [
- q(7516),
+ q(7498),
q(0),
],
q(xtm) => [
- q(7517),
+ q(7499),
q(0),
],
q(xtn) => [
- q(7518),
+ q(7500),
q(0),
],
q(xto) => [
- q(7519),
+ q(7501),
q(0),
],
q(xtp) => [
- q(7520),
+ q(7502),
q(0),
],
q(xtq) => [
- q(7521),
+ q(7503),
q(0),
],
q(xtr) => [
- q(7522),
+ q(7504),
q(0),
],
q(xts) => [
- q(7523),
+ q(7505),
q(0),
],
q(xtt) => [
- q(7524),
+ q(7506),
q(0),
],
q(xtu) => [
- q(7525),
+ q(7507),
q(0),
],
q(xtv) => [
- q(7526),
+ q(7508),
q(0),
],
q(xtw) => [
- q(7527),
+ q(7509),
q(0),
],
q(xty) => [
- q(7528),
+ q(7510),
q(0),
],
q(xtz) => [
- q(7529),
+ q(7511),
q(0),
],
q(xua) => [
- q(7530),
+ q(7512),
q(0),
],
q(xub) => [
- q(7531),
+ q(7513),
q(0),
],
q(xud) => [
- q(7532),
+ q(7514),
q(0),
],
q(xug) => [
- q(7533),
+ q(7515),
q(0),
],
q(xuj) => [
- q(7534),
+ q(7516),
q(0),
],
q(xul) => [
- q(7535),
+ q(7517),
q(0),
],
q(xum) => [
- q(7536),
+ q(7518),
q(0),
],
q(xun) => [
- q(7537),
+ q(7519),
q(0),
],
q(xuo) => [
- q(7538),
+ q(7520),
q(0),
],
q(xup) => [
- q(7539),
+ q(7521),
q(0),
],
q(xur) => [
- q(7540),
+ q(7522),
q(0),
],
q(xut) => [
- q(7541),
+ q(7523),
q(0),
],
q(xuu) => [
- q(7542),
+ q(7524),
q(0),
],
q(xve) => [
- q(7543),
+ q(7525),
q(0),
],
q(xvi) => [
- q(7544),
+ q(7526),
q(0),
],
q(xvn) => [
- q(7545),
+ q(7527),
q(0),
],
q(xvo) => [
- q(7546),
+ q(7528),
q(0),
],
q(xvs) => [
- q(7547),
+ q(7529),
q(0),
],
q(xwa) => [
- q(7548),
+ q(7530),
q(0),
],
q(xwc) => [
- q(7549),
+ q(7531),
q(0),
],
q(xwd) => [
- q(7550),
+ q(7532),
q(0),
],
q(xwe) => [
- q(7551),
+ q(7533),
q(0),
],
q(xwg) => [
- q(7552),
+ q(7534),
q(0),
],
q(xwj) => [
- q(7553),
+ q(7535),
q(0),
],
q(xwk) => [
- q(7554),
+ q(7536),
q(0),
],
q(xwl) => [
- q(7555),
+ q(7537),
q(0),
],
q(xwo) => [
- q(7556),
+ q(7538),
q(0),
],
q(xwr) => [
- q(7557),
+ q(7539),
q(0),
],
q(xwt) => [
- q(7558),
+ q(7540),
q(0),
],
q(xww) => [
- q(7559),
+ q(7541),
q(0),
],
q(xxb) => [
- q(7560),
+ q(7542),
q(0),
],
q(xxk) => [
- q(7561),
+ q(7543),
q(0),
],
q(xxm) => [
- q(7562),
+ q(7544),
q(0),
],
q(xxr) => [
- q(7563),
+ q(7545),
q(0),
],
q(xxt) => [
- q(7564),
+ q(7546),
q(0),
],
q(xya) => [
- q(7565),
+ q(7547),
q(0),
],
q(xyb) => [
- q(7566),
+ q(7548),
q(0),
],
q(xyj) => [
- q(7567),
+ q(7549),
q(0),
],
q(xyk) => [
- q(7568),
+ q(7550),
q(0),
],
q(xyl) => [
- q(7569),
+ q(7551),
q(0),
],
q(xyt) => [
- q(7570),
+ q(7552),
q(0),
],
q(xyy) => [
- q(7571),
+ q(7553),
q(0),
],
q(xzh) => [
- q(7572),
+ q(7554),
q(0),
],
q(xzm) => [
- q(7573),
+ q(7555),
q(0),
],
q(xzp) => [
- q(7574),
+ q(7556),
q(0),
],
q(yaa) => [
- q(7575),
+ q(7557),
q(0),
],
q(yab) => [
- q(7576),
+ q(7558),
q(0),
],
q(yac) => [
- q(7577),
+ q(7559),
q(0),
],
q(yad) => [
- q(7578),
+ q(7560),
q(0),
],
q(yae) => [
- q(7579),
+ q(7561),
q(0),
],
q(yaf) => [
- q(7580),
+ q(7562),
q(0),
],
q(yag) => [
- q(7581),
+ q(7563),
q(0),
],
q(yah) => [
- q(7582),
+ q(7564),
q(0),
],
q(yai) => [
- q(7583),
+ q(7565),
q(0),
],
q(yaj) => [
- q(7584),
+ q(7566),
q(0),
],
q(yak) => [
- q(7585),
+ q(7567),
q(0),
],
q(yal) => [
- q(7586),
+ q(7568),
q(0),
],
q(yam) => [
- q(7587),
+ q(7569),
q(0),
],
q(yan) => [
- q(7588),
+ q(7570),
q(0),
],
q(yao) => [
@@ -88596,235 +88467,235 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(yaq) => [
- q(7589),
+ q(7571),
q(0),
],
q(yar) => [
- q(7590),
+ q(7572),
q(0),
],
q(yas) => [
- q(7591),
+ q(7573),
q(0),
],
q(yat) => [
- q(7592),
+ q(7574),
q(0),
],
q(yau) => [
- q(7593),
+ q(7575),
q(0),
],
q(yav) => [
- q(7594),
+ q(7576),
q(0),
],
q(yaw) => [
- q(7595),
+ q(7577),
q(0),
],
q(yax) => [
- q(7596),
+ q(7578),
q(0),
],
q(yay) => [
- q(7597),
+ q(7579),
q(0),
],
q(yaz) => [
- q(7598),
+ q(7580),
q(0),
],
q(yba) => [
- q(7599),
+ q(7581),
q(0),
],
q(ybb) => [
- q(7600),
+ q(7582),
q(0),
],
q(ybe) => [
- q(7601),
+ q(7583),
q(0),
],
q(ybh) => [
- q(7602),
+ q(7584),
q(0),
],
q(ybi) => [
- q(7603),
+ q(7585),
q(0),
],
q(ybj) => [
- q(7604),
+ q(7586),
q(0),
],
q(ybk) => [
- q(7605),
+ q(7587),
q(0),
],
q(ybl) => [
- q(7606),
+ q(7588),
q(0),
],
q(ybm) => [
- q(7607),
+ q(7589),
q(0),
],
q(ybn) => [
- q(7608),
+ q(7590),
q(0),
],
q(ybo) => [
- q(7609),
+ q(7591),
q(0),
],
q(ybx) => [
- q(7610),
+ q(7592),
q(0),
],
q(yby) => [
- q(7611),
+ q(7593),
q(0),
],
q(ych) => [
- q(7612),
+ q(7594),
q(0),
],
q(ycl) => [
- q(7613),
+ q(7595),
q(0),
],
q(ycn) => [
- q(7614),
+ q(7596),
q(0),
],
q(ycp) => [
- q(7615),
+ q(7597),
q(0),
],
q(yda) => [
- q(7616),
+ q(7598),
q(0),
],
q(ydd) => [
- q(7617),
+ q(7599),
q(0),
],
q(yde) => [
- q(7618),
+ q(7600),
q(0),
],
q(ydg) => [
- q(7619),
+ q(7601),
q(0),
],
q(ydk) => [
- q(7620),
+ q(7602),
q(0),
],
q(yea) => [
- q(7621),
+ q(7603),
q(0),
],
q(yec) => [
- q(7622),
+ q(7604),
q(0),
],
q(yee) => [
- q(7623),
+ q(7605),
q(0),
],
q(yei) => [
- q(7624),
+ q(7606),
q(0),
],
q(yej) => [
- q(7625),
+ q(7607),
q(0),
],
q(yel) => [
- q(7626),
+ q(7608),
q(0),
],
q(yer) => [
- q(7627),
+ q(7609),
q(0),
],
q(yes) => [
- q(7628),
+ q(7610),
q(0),
],
q(yet) => [
- q(7629),
+ q(7611),
q(0),
],
q(yeu) => [
- q(7630),
+ q(7612),
q(0),
],
q(yev) => [
- q(7631),
+ q(7613),
q(0),
],
q(yey) => [
- q(7632),
+ q(7614),
q(0),
],
q(yga) => [
- q(7633),
+ q(7615),
q(0),
],
q(ygi) => [
- q(7634),
+ q(7616),
q(0),
],
q(ygl) => [
- q(7635),
+ q(7617),
q(0),
],
q(ygm) => [
- q(7636),
+ q(7618),
q(0),
],
q(ygp) => [
- q(7637),
+ q(7619),
q(0),
],
q(ygr) => [
- q(7638),
+ q(7620),
q(0),
],
q(ygs) => [
- q(7639),
+ q(7621),
q(0),
],
q(ygu) => [
- q(7640),
+ q(7622),
q(0),
],
q(ygw) => [
- q(7641),
+ q(7623),
q(0),
],
q(yha) => [
- q(7642),
+ q(7624),
q(0),
],
q(yhd) => [
- q(7643),
+ q(7625),
q(0),
],
q(yhl) => [
- q(7644),
+ q(7626),
q(0),
],
q(yhs) => [
- q(7645),
+ q(7627),
q(0),
],
q(yia) => [
- q(7646),
+ q(7628),
q(0),
],
q(yid) => [
@@ -88832,315 +88703,315 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(yif) => [
- q(2657),
+ q(2653),
q(0),
],
q(yig) => [
- q(7647),
+ q(7629),
q(0),
],
q(yih) => [
- q(7648),
+ q(7630),
q(0),
],
q(yii) => [
- q(7649),
+ q(7631),
q(0),
],
q(yij) => [
- q(7650),
+ q(7632),
q(0),
],
q(yik) => [
- q(7651),
+ q(7633),
q(0),
],
q(yil) => [
- q(7652),
+ q(7634),
q(0),
],
q(yim) => [
- q(7653),
+ q(7635),
q(0),
],
q(yin) => [
- q(7654),
+ q(7636),
q(0),
],
q(yip) => [
- q(7655),
+ q(7637),
q(0),
],
q(yiq) => [
- q(7656),
+ q(7638),
q(0),
],
q(yir) => [
- q(7657),
+ q(7639),
q(0),
],
q(yis) => [
- q(7658),
+ q(7640),
q(0),
],
q(yit) => [
- q(7659),
+ q(7641),
q(0),
],
q(yiu) => [
- q(7660),
+ q(7642),
q(0),
],
q(yiv) => [
- q(7661),
+ q(7643),
q(0),
],
q(yix) => [
- q(7662),
+ q(7644),
q(0),
],
q(yiz) => [
- q(7663),
+ q(7645),
q(0),
],
q(yka) => [
- q(7664),
+ q(7646),
q(0),
],
q(ykg) => [
- q(7665),
+ q(7647),
q(0),
],
q(yki) => [
- q(7666),
+ q(7648),
q(0),
],
q(ykk) => [
- q(7667),
+ q(7649),
q(0),
],
q(ykl) => [
- q(7668),
+ q(7650),
q(0),
],
q(ykm) => [
- q(7669),
+ q(7651),
q(0),
],
q(ykn) => [
- q(7670),
+ q(7652),
q(0),
],
q(yko) => [
- q(7671),
+ q(7653),
q(0),
],
q(ykr) => [
- q(7672),
+ q(7654),
q(0),
],
q(ykt) => [
- q(7673),
+ q(7655),
q(0),
],
q(yku) => [
- q(7674),
+ q(7656),
q(0),
],
q(yky) => [
- q(7675),
+ q(7657),
q(0),
],
q(yla) => [
- q(7676),
+ q(7658),
q(0),
],
q(ylb) => [
- q(7677),
+ q(7659),
q(0),
],
q(yle) => [
- q(7678),
+ q(7660),
q(0),
],
q(ylg) => [
- q(7679),
+ q(7661),
q(0),
],
q(yli) => [
- q(7680),
+ q(7662),
q(0),
],
q(yll) => [
- q(7681),
+ q(7663),
q(0),
],
q(ylm) => [
- q(7682),
+ q(7664),
q(0),
],
q(yln) => [
- q(7683),
+ q(7665),
q(0),
],
q(ylo) => [
- q(7684),
+ q(7666),
q(0),
],
q(ylr) => [
- q(7685),
+ q(7667),
q(0),
],
q(ylu) => [
- q(7686),
+ q(7668),
q(0),
],
q(yly) => [
- q(7687),
+ q(7669),
q(0),
],
q(ymb) => [
- q(7688),
+ q(7670),
q(0),
],
q(ymc) => [
- q(7689),
+ q(7671),
q(0),
],
q(ymd) => [
- q(7690),
+ q(7672),
q(0),
],
q(yme) => [
- q(7691),
+ q(7673),
q(0),
],
q(ymg) => [
- q(7692),
+ q(7674),
q(0),
],
q(ymh) => [
- q(7693),
+ q(7675),
q(0),
],
q(ymi) => [
- q(7694),
+ q(7676),
q(0),
],
q(ymk) => [
- q(7695),
+ q(7677),
q(0),
],
q(yml) => [
- q(7696),
+ q(7678),
q(0),
],
q(ymm) => [
- q(7697),
+ q(7679),
q(0),
],
q(ymn) => [
- q(7698),
+ q(7680),
q(0),
],
q(ymo) => [
- q(7699),
+ q(7681),
q(0),
],
q(ymp) => [
- q(7700),
+ q(7682),
q(0),
],
q(ymq) => [
- q(7701),
+ q(7683),
q(0),
],
q(ymr) => [
- q(7702),
+ q(7684),
q(0),
],
q(yms) => [
- q(7703),
+ q(7685),
q(0),
],
q(ymx) => [
- q(7704),
+ q(7686),
q(0),
],
q(ymz) => [
- q(7705),
+ q(7687),
q(0),
],
q(yna) => [
- q(7706),
+ q(7688),
q(0),
],
q(ynd) => [
- q(7707),
+ q(7689),
q(0),
],
q(yne) => [
- q(7708),
+ q(7690),
q(0),
],
q(yng) => [
- q(7709),
+ q(7691),
q(0),
],
q(ynk) => [
- q(7710),
+ q(7692),
q(0),
],
q(ynl) => [
- q(7711),
+ q(7693),
q(0),
],
q(ynn) => [
- q(7712),
+ q(7694),
q(0),
],
q(yno) => [
- q(7713),
+ q(7695),
q(0),
],
q(ynq) => [
- q(7714),
+ q(7696),
q(0),
],
q(yns) => [
- q(7715),
+ q(7697),
q(0),
],
q(ynu) => [
- q(7716),
+ q(7698),
q(0),
],
q(yob) => [
- q(7717),
+ q(7699),
q(0),
],
q(yog) => [
- q(7718),
+ q(7700),
q(0),
],
q(yoi) => [
- q(7719),
+ q(7701),
q(0),
],
q(yok) => [
- q(7720),
+ q(7702),
q(0),
],
q(yol) => [
- q(7721),
+ q(7703),
q(0),
],
q(yom) => [
- q(7722),
+ q(7704),
q(0),
],
q(yon) => [
- q(7723),
+ q(7705),
q(0),
],
q(yor) => [
@@ -89148,31 +89019,31 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(yot) => [
- q(7724),
+ q(7706),
q(0),
],
q(yox) => [
- q(7725),
+ q(7707),
q(0),
],
q(yoy) => [
- q(7726),
+ q(7708),
q(0),
],
q(ypa) => [
- q(7727),
+ q(7709),
q(0),
],
q(ypb) => [
- q(7728),
+ q(7710),
q(0),
],
q(ypg) => [
- q(7729),
+ q(7711),
q(0),
],
q(yph) => [
- q(7730),
+ q(7712),
q(0),
],
q(ypk) => [
@@ -89180,355 +89051,355 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(ypm) => [
- q(7731),
+ q(7713),
q(0),
],
q(ypn) => [
- q(7732),
+ q(7714),
q(0),
],
q(ypo) => [
- q(7733),
+ q(7715),
q(0),
],
q(ypp) => [
- q(7734),
+ q(7716),
q(0),
],
q(ypz) => [
- q(7735),
+ q(7717),
q(0),
],
q(yra) => [
- q(7736),
+ q(7718),
q(0),
],
q(yrb) => [
- q(7737),
+ q(7719),
q(0),
],
q(yre) => [
- q(7738),
- q(0),
- ],
- q(yri) => [
- q(7739),
+ q(7720),
q(0),
],
q(yrk) => [
- q(7740),
+ q(7721),
q(0),
],
q(yrl) => [
- q(7741),
+ q(7722),
q(0),
],
q(yrm) => [
- q(7742),
+ q(7723),
q(0),
],
q(yrn) => [
- q(7743),
+ q(7724),
+ q(0),
+ ],
+ q(yro) => [
+ q(7725),
q(0),
],
q(yrs) => [
- q(7744),
+ q(7726),
q(0),
],
q(yrw) => [
- q(7745),
+ q(7727),
q(0),
],
q(yry) => [
- q(7746),
+ q(7728),
q(0),
],
q(ysc) => [
- q(7747),
+ q(7729),
q(0),
],
q(ysd) => [
- q(7748),
+ q(7730),
q(0),
],
q(ysg) => [
- q(7749),
+ q(7731),
q(0),
],
q(ysl) => [
- q(7750),
+ q(7732),
q(0),
],
q(ysn) => [
- q(7751),
+ q(7733),
q(0),
],
q(yso) => [
- q(7752),
+ q(7734),
q(0),
],
q(ysp) => [
- q(7753),
+ q(7735),
q(0),
],
q(ysr) => [
- q(7754),
+ q(7736),
q(0),
],
q(yss) => [
- q(7755),
+ q(7737),
q(0),
],
q(ysy) => [
- q(7756),
+ q(7738),
q(0),
],
q(yta) => [
- q(7757),
+ q(7739),
q(0),
],
q(ytl) => [
- q(7758),
+ q(7740),
q(0),
],
q(ytp) => [
- q(7759),
+ q(7741),
q(0),
],
q(ytw) => [
- q(7760),
+ q(7742),
q(0),
],
q(yty) => [
- q(7761),
+ q(7743),
q(0),
],
q(yua) => [
- q(7762),
+ q(7744),
q(0),
],
q(yub) => [
- q(7763),
+ q(7745),
q(0),
],
q(yuc) => [
- q(7764),
+ q(7746),
q(0),
],
q(yud) => [
- q(7765),
+ q(7747),
q(0),
],
q(yue) => [
- q(7766),
+ q(7748),
q(0),
],
q(yuf) => [
- q(7767),
+ q(7749),
q(0),
],
q(yug) => [
- q(7768),
+ q(7750),
q(0),
],
q(yui) => [
- q(7769),
+ q(7751),
q(0),
],
q(yuj) => [
- q(7770),
+ q(7752),
q(0),
],
q(yuk) => [
- q(7771),
+ q(7753),
q(0),
],
q(yul) => [
- q(7772),
+ q(7754),
q(0),
],
q(yum) => [
- q(7773),
+ q(7755),
q(0),
],
q(yun) => [
- q(7774),
+ q(7756),
q(0),
],
q(yup) => [
- q(7775),
+ q(7757),
q(0),
],
q(yuq) => [
- q(7776),
+ q(7758),
q(0),
],
q(yur) => [
- q(7777),
+ q(7759),
q(0),
],
q(yut) => [
- q(7778),
+ q(7760),
q(0),
],
q(yuw) => [
- q(7779),
+ q(7761),
q(0),
],
q(yux) => [
- q(7780),
+ q(7762),
q(0),
],
q(yuy) => [
- q(7781),
+ q(7763),
q(0),
],
q(yuz) => [
- q(7782),
+ q(7764),
q(0),
],
q(yva) => [
- q(7783),
+ q(7765),
q(0),
],
q(yvt) => [
- q(7784),
+ q(7766),
q(0),
],
q(ywa) => [
- q(7785),
+ q(7767),
q(0),
],
q(ywg) => [
- q(7786),
+ q(7768),
q(0),
],
q(ywl) => [
- q(7787),
+ q(7769),
q(0),
],
q(ywn) => [
- q(7788),
+ q(7770),
q(0),
],
q(ywq) => [
- q(7789),
+ q(7771),
q(0),
],
q(ywr) => [
- q(7790),
+ q(7772),
q(0),
],
q(ywt) => [
- q(7791),
+ q(7773),
q(0),
],
q(ywu) => [
- q(7792),
+ q(7774),
q(0),
],
q(yww) => [
- q(7793),
+ q(7775),
q(0),
],
q(yxa) => [
- q(7794),
+ q(7776),
q(0),
],
q(yxg) => [
- q(7795),
+ q(7777),
q(0),
],
q(yxl) => [
- q(7796),
+ q(7778),
q(0),
],
q(yxm) => [
- q(7797),
+ q(7779),
q(0),
],
q(yxu) => [
- q(7798),
+ q(7780),
q(0),
],
q(yxy) => [
- q(7799),
+ q(7781),
q(0),
],
q(yyr) => [
- q(7800),
+ q(7782),
q(0),
],
q(yyu) => [
- q(7801),
+ q(7783),
q(0),
],
q(yyz) => [
- q(7802),
+ q(7784),
q(0),
],
q(yzg) => [
- q(7803),
+ q(7785),
q(0),
],
q(yzk) => [
- q(7804),
+ q(7786),
q(0),
],
q(zaa) => [
- q(7805),
+ q(7787),
q(0),
],
q(zab) => [
- q(7806),
+ q(7788),
q(0),
],
q(zac) => [
- q(7807),
+ q(7789),
q(0),
],
q(zad) => [
- q(7808),
+ q(7790),
q(0),
],
q(zae) => [
- q(7809),
+ q(7791),
q(0),
],
q(zaf) => [
- q(7810),
+ q(7792),
q(0),
],
q(zag) => [
- q(7811),
+ q(7793),
q(0),
],
q(zah) => [
- q(7812),
+ q(7794),
q(0),
],
q(zai) => [
- q(7813),
+ q(7795),
q(0),
],
q(zaj) => [
- q(7814),
+ q(7796),
q(0),
],
q(zak) => [
- q(7815),
+ q(7797),
q(0),
],
q(zal) => [
- q(7816),
+ q(7798),
q(0),
],
q(zam) => [
- q(7817),
+ q(7799),
q(0),
],
q(zao) => [
- q(7818),
+ q(7800),
q(0),
],
q(zap) => [
@@ -89536,51 +89407,51 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zaq) => [
- q(7819),
+ q(7801),
q(0),
],
q(zar) => [
- q(7820),
+ q(7802),
q(0),
],
q(zas) => [
- q(7821),
+ q(7803),
q(0),
],
q(zat) => [
- q(7822),
+ q(7804),
q(0),
],
q(zau) => [
- q(7823),
+ q(7805),
q(0),
],
q(zav) => [
- q(7824),
+ q(7806),
q(0),
],
q(zaw) => [
- q(7825),
+ q(7807),
q(0),
],
q(zax) => [
- q(7826),
+ q(7808),
q(0),
],
q(zay) => [
- q(7827),
+ q(7809),
q(0),
],
q(zaz) => [
- q(7828),
+ q(7810),
q(0),
],
q(zbc) => [
- q(7829),
+ q(7811),
q(0),
],
q(zbe) => [
- q(7830),
+ q(7812),
q(0),
],
q(zbl) => [
@@ -89588,35 +89459,35 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zbt) => [
- q(7831),
+ q(7813),
q(0),
],
q(zbw) => [
- q(7832),
+ q(7814),
q(0),
],
q(zca) => [
- q(7833),
+ q(7815),
q(0),
],
q(zch) => [
- q(7834),
+ q(7816),
q(0),
],
q(zdj) => [
- q(7835),
+ q(7817),
q(0),
],
q(zea) => [
- q(7836),
+ q(7818),
q(0),
],
q(zeg) => [
- q(7837),
+ q(7819),
q(0),
],
q(zeh) => [
- q(7838),
+ q(7820),
q(0),
],
q(zen) => [
@@ -89624,11 +89495,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zga) => [
- q(7839),
+ q(7821),
q(0),
],
q(zgb) => [
- q(7840),
+ q(7822),
q(0),
],
q(zgh) => [
@@ -89636,15 +89507,15 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zgm) => [
- q(7841),
+ q(7823),
q(0),
],
q(zgn) => [
- q(7842),
+ q(7824),
q(0),
],
q(zgr) => [
- q(7843),
+ q(7825),
q(0),
],
q(zha) => [
@@ -89652,23 +89523,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zhb) => [
- q(7844),
+ q(7826),
q(0),
],
q(zhd) => [
- q(7845),
+ q(7827),
q(0),
],
q(zhi) => [
- q(7846),
+ q(7828),
q(0),
],
q(zhn) => [
- q(7847),
+ q(7829),
q(0),
],
q(zhw) => [
- q(7848),
+ q(7830),
q(0),
],
q(zhx) => [
@@ -89676,95 +89547,95 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zia) => [
- q(7849),
+ q(7831),
q(0),
],
q(zib) => [
- q(7850),
+ q(7832),
q(0),
],
q(zik) => [
- q(7851),
+ q(7833),
q(0),
],
q(zil) => [
- q(7852),
+ q(7834),
q(0),
],
q(zim) => [
- q(7853),
+ q(7835),
q(0),
],
q(zin) => [
- q(7854),
+ q(7836),
q(0),
],
q(zir) => [
- q(7855),
+ q(7837),
q(0),
],
q(ziw) => [
- q(7856),
+ q(7838),
q(0),
],
q(ziz) => [
- q(7857),
+ q(7839),
q(0),
],
q(zka) => [
- q(7858),
+ q(7840),
q(0),
],
q(zkb) => [
- q(7859),
+ q(7841),
q(0),
],
q(zkd) => [
- q(7860),
+ q(7842),
q(0),
],
q(zkg) => [
- q(7861),
+ q(7843),
q(0),
],
q(zkh) => [
- q(7862),
+ q(7844),
q(0),
],
q(zkk) => [
- q(7863),
+ q(7845),
q(0),
],
q(zkn) => [
- q(7864),
+ q(7846),
q(0),
],
q(zko) => [
- q(7865),
+ q(7847),
q(0),
],
q(zkp) => [
- q(7866),
+ q(7848),
q(0),
],
q(zkr) => [
- q(7867),
+ q(7849),
q(0),
],
q(zkt) => [
- q(7868),
+ q(7850),
q(0),
],
q(zku) => [
- q(7869),
+ q(7851),
q(0),
],
q(zkv) => [
- q(7870),
+ q(7852),
q(0),
],
q(zkz) => [
- q(7871),
+ q(7853),
q(0),
],
q(zle) => [
@@ -89772,19 +89643,19 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zlj) => [
- q(7872),
+ q(7854),
q(0),
],
q(zlm) => [
- q(7873),
+ q(7855),
q(0),
],
q(zln) => [
- q(7874),
+ q(7856),
q(0),
],
q(zlq) => [
- q(7875),
+ q(7857),
q(0),
],
q(zls) => [
@@ -89796,111 +89667,111 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zma) => [
- q(7876),
+ q(7858),
q(0),
],
q(zmb) => [
- q(7877),
+ q(7859),
q(0),
],
q(zmc) => [
- q(7878),
+ q(7860),
q(0),
],
q(zmd) => [
- q(7879),
+ q(7861),
q(0),
],
q(zme) => [
- q(7880),
+ q(7862),
q(0),
],
q(zmf) => [
- q(7881),
+ q(7863),
q(0),
],
q(zmg) => [
- q(7882),
+ q(7864),
q(0),
],
q(zmh) => [
- q(7883),
+ q(7865),
q(0),
],
q(zmi) => [
- q(7884),
+ q(7866),
q(0),
],
q(zmj) => [
- q(7885),
+ q(7867),
q(0),
],
q(zmk) => [
- q(7886),
+ q(7868),
q(0),
],
q(zml) => [
- q(7887),
+ q(7869),
q(0),
],
q(zmm) => [
- q(7888),
+ q(7870),
q(0),
],
q(zmn) => [
- q(7889),
+ q(7871),
q(0),
],
q(zmo) => [
- q(7890),
+ q(7872),
q(0),
],
q(zmp) => [
- q(7891),
+ q(7873),
q(0),
],
q(zmq) => [
- q(7892),
+ q(7874),
q(0),
],
q(zmr) => [
- q(7893),
+ q(7875),
q(0),
],
q(zms) => [
- q(7894),
+ q(7876),
q(0),
],
q(zmt) => [
- q(7895),
+ q(7877),
q(0),
],
q(zmu) => [
- q(7896),
+ q(7878),
q(0),
],
q(zmv) => [
- q(7897),
+ q(7879),
q(0),
],
q(zmw) => [
- q(7898),
+ q(7880),
q(0),
],
q(zmx) => [
- q(7899),
+ q(7881),
q(0),
],
q(zmy) => [
- q(7900),
+ q(7882),
q(0),
],
q(zmz) => [
- q(7901),
+ q(7883),
q(0),
],
q(zna) => [
- q(7902),
+ q(7884),
q(0),
],
q(znd) => [
@@ -89908,259 +89779,259 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zne) => [
- q(7903),
+ q(7885),
q(0),
],
q(zng) => [
- q(7904),
+ q(7886),
q(0),
],
q(znk) => [
- q(7905),
+ q(7887),
q(0),
],
q(zns) => [
- q(7906),
+ q(7888),
q(0),
],
q(zoc) => [
- q(7907),
+ q(7889),
q(0),
],
q(zoh) => [
- q(7908),
+ q(7890),
q(0),
],
q(zom) => [
- q(7909),
+ q(7891),
q(0),
],
q(zoo) => [
- q(7910),
+ q(7892),
q(0),
],
q(zoq) => [
- q(7911),
+ q(7893),
q(0),
],
q(zor) => [
- q(7912),
+ q(7894),
q(0),
],
q(zos) => [
- q(7913),
+ q(7895),
q(0),
],
q(zpa) => [
- q(7914),
+ q(7896),
q(0),
],
q(zpb) => [
- q(7915),
+ q(7897),
q(0),
],
q(zpc) => [
- q(7916),
+ q(7898),
q(0),
],
q(zpd) => [
- q(7917),
+ q(7899),
q(0),
],
q(zpe) => [
- q(7918),
+ q(7900),
q(0),
],
q(zpf) => [
- q(7919),
+ q(7901),
q(0),
],
q(zpg) => [
- q(7920),
+ q(7902),
q(0),
],
q(zph) => [
- q(7921),
+ q(7903),
q(0),
],
q(zpi) => [
- q(7922),
+ q(7904),
q(0),
],
q(zpj) => [
- q(7923),
+ q(7905),
q(0),
],
q(zpk) => [
- q(7924),
+ q(7906),
q(0),
],
q(zpl) => [
- q(7925),
+ q(7907),
q(0),
],
q(zpm) => [
- q(7926),
+ q(7908),
q(0),
],
q(zpn) => [
- q(7927),
+ q(7909),
q(0),
],
q(zpo) => [
- q(7928),
+ q(7910),
q(0),
],
q(zpp) => [
- q(7929),
+ q(7911),
q(0),
],
q(zpq) => [
- q(7930),
+ q(7912),
q(0),
],
q(zpr) => [
- q(7931),
+ q(7913),
q(0),
],
q(zps) => [
- q(7932),
+ q(7914),
q(0),
],
q(zpt) => [
- q(7933),
+ q(7915),
q(0),
],
q(zpu) => [
- q(7934),
+ q(7916),
q(0),
],
q(zpv) => [
- q(7935),
+ q(7917),
q(0),
],
q(zpw) => [
- q(7936),
+ q(7918),
q(0),
],
q(zpx) => [
- q(7937),
+ q(7919),
q(0),
],
q(zpy) => [
- q(7938),
+ q(7920),
q(0),
],
q(zpz) => [
- q(7939),
+ q(7921),
q(0),
],
q(zqe) => [
- q(7940),
+ q(7922),
q(0),
],
q(zra) => [
- q(7941),
+ q(7923),
q(0),
],
q(zrg) => [
- q(7942),
+ q(7924),
q(0),
],
q(zrn) => [
- q(7943),
+ q(7925),
q(0),
],
q(zro) => [
- q(7944),
+ q(7926),
q(0),
],
q(zrp) => [
- q(7945),
+ q(7927),
q(0),
],
q(zrs) => [
- q(7946),
+ q(7928),
q(0),
],
q(zsa) => [
- q(7947),
+ q(7929),
q(0),
],
q(zsk) => [
- q(7948),
+ q(7930),
q(0),
],
q(zsl) => [
- q(7949),
+ q(7931),
q(0),
],
q(zsm) => [
- q(7950),
+ q(7932),
q(0),
],
q(zsr) => [
- q(7951),
+ q(7933),
q(0),
],
q(zsu) => [
- q(7952),
+ q(7934),
q(0),
],
q(zte) => [
- q(7953),
+ q(7935),
q(0),
],
q(ztg) => [
- q(7954),
+ q(7936),
q(0),
],
q(ztl) => [
- q(7955),
+ q(7937),
q(0),
],
q(ztm) => [
- q(7956),
+ q(7938),
q(0),
],
q(ztn) => [
- q(7957),
+ q(7939),
q(0),
],
q(ztp) => [
- q(7958),
+ q(7940),
q(0),
],
q(ztq) => [
- q(7959),
+ q(7941),
q(0),
],
q(zts) => [
- q(7960),
+ q(7942),
q(0),
],
q(ztt) => [
- q(7961),
+ q(7943),
q(0),
],
q(ztu) => [
- q(7962),
+ q(7944),
q(0),
],
q(ztx) => [
- q(7963),
+ q(7945),
q(0),
],
q(zty) => [
- q(7964),
+ q(7946),
q(0),
],
q(zua) => [
- q(7965),
+ q(7947),
q(0),
],
q(zuh) => [
- q(7966),
+ q(7948),
q(0),
],
q(zul) => [
@@ -90168,7 +90039,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zum) => [
- q(7967),
+ q(7949),
q(0),
],
q(zun) => [
@@ -90176,11 +90047,11 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zuy) => [
- q(7968),
+ q(7950),
q(0),
],
q(zwa) => [
- q(7969),
+ q(7951),
q(0),
],
q(zxx) => [
@@ -90188,23 +90059,23 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zyb) => [
- q(7970),
+ q(7952),
q(0),
],
q(zyg) => [
- q(7971),
+ q(7953),
q(0),
],
q(zyj) => [
- q(7972),
+ q(7954),
q(0),
],
q(zyn) => [
- q(7973),
+ q(7955),
q(0),
],
q(zyp) => [
- q(7974),
+ q(7956),
q(0),
],
q(zza) => [
@@ -90212,7 +90083,7 @@ $Locale::Codes::Data{'language'}{'code2id'} = {
q(0),
],
q(zzj) => [
- q(7975),
+ q(7957),
q(0),
],
},
@@ -93523,6810 +93394,6792 @@ $Locale::Codes::Data{'language'}{'id2code'} = {
q(1169) => q(bgj),
q(1170) => q(bgk),
q(1171) => q(bgl),
- q(1172) => q(bgm),
- q(1173) => q(bgn),
- q(1174) => q(bgo),
- q(1175) => q(bgp),
- q(1176) => q(bgq),
- q(1177) => q(bgr),
- q(1178) => q(bgs),
- q(1179) => q(bgt),
- q(1180) => q(bgu),
- q(1181) => q(bgv),
- q(1182) => q(bgw),
- q(1183) => q(bgx),
- q(1184) => q(bgy),
- q(1185) => q(bgz),
- q(1186) => q(bha),
- q(1187) => q(bhb),
- q(1188) => q(bhc),
- q(1189) => q(bhd),
- q(1190) => q(bhe),
- q(1191) => q(bhf),
- q(1192) => q(bhg),
- q(1193) => q(bhh),
- q(1194) => q(bhi),
- q(1195) => q(bhj),
- q(1196) => q(bhl),
- q(1197) => q(bhm),
- q(1198) => q(bhn),
- q(1199) => q(bhp),
- q(1200) => q(bhq),
- q(1201) => q(bhr),
- q(1202) => q(bhs),
- q(1203) => q(bht),
- q(1204) => q(bhu),
- q(1205) => q(bhv),
- q(1206) => q(bhw),
- q(1207) => q(bhx),
- q(1208) => q(bhy),
- q(1209) => q(bhz),
- q(1210) => q(bia),
- q(1211) => q(bib),
- q(1212) => q(bic),
- q(1213) => q(bid),
- q(1214) => q(bie),
- q(1215) => q(bif),
- q(1216) => q(big),
- q(1217) => q(bij),
- q(1218) => q(bil),
- q(1219) => q(bim),
- q(1220) => q(bio),
- q(1221) => q(bip),
- q(1222) => q(biq),
- q(1223) => q(bir),
- q(1224) => q(bit),
- q(1225) => q(biu),
- q(1226) => q(biv),
- q(1227) => q(biw),
- q(1228) => q(bix),
- q(1229) => q(biy),
- q(1230) => q(biz),
- q(1231) => q(bja),
- q(1232) => q(bjb),
- q(1233) => q(bjc),
- q(1234) => q(bje),
- q(1235) => q(bjf),
- q(1236) => q(bjg),
- q(1237) => q(bjh),
- q(1238) => q(bji),
- q(1239) => q(bjj),
- q(1240) => q(bjk),
- q(1241) => q(bjl),
- q(1242) => q(bjm),
- q(1243) => q(bjn),
- q(1244) => q(bjo),
- q(1245) => q(bjp),
- q(1246) => q(bjr),
- q(1247) => q(bjs),
- q(1248) => q(bjt),
- q(1249) => q(bju),
- q(1250) => q(bjv),
- q(1251) => q(bjw),
- q(1252) => q(bjx),
- q(1253) => q(bjy),
- q(1254) => q(bjz),
- q(1255) => q(bka),
- q(1256) => q(bkc),
- q(1257) => q(bkd),
- q(1258) => q(bkf),
- q(1259) => q(bkg),
- q(1260) => q(bkh),
- q(1261) => q(bki),
- q(1262) => q(bkj),
- q(1263) => q(bkk),
- q(1264) => q(bkl),
- q(1265) => q(bkm),
- q(1266) => q(bkn),
- q(1267) => q(bko),
- q(1268) => q(bkp),
- q(1269) => q(bkq),
- q(1270) => q(bkr),
- q(1271) => q(bks),
- q(1272) => q(bkt),
- q(1273) => q(bku),
- q(1274) => q(bkv),
- q(1275) => q(bkw),
- q(1276) => q(bkx),
- q(1277) => q(bky),
- q(1278) => q(bkz),
- q(1279) => q(blb),
- q(1280) => q(blc),
- q(1281) => q(bld),
- q(1282) => q(ble),
- q(1283) => q(blf),
- q(1284) => q(blg),
- q(1285) => q(blh),
- q(1286) => q(bli),
- q(1287) => q(blj),
- q(1288) => q(blk),
- q(1289) => q(bll),
- q(1290) => q(blm),
- q(1291) => q(bln),
- q(1292) => q(blo),
- q(1293) => q(blp),
- q(1294) => q(blq),
- q(1295) => q(blr),
- q(1296) => q(bls),
- q(1297) => q(blt),
- q(1298) => q(blv),
- q(1299) => q(blw),
- q(1300) => q(blx),
- q(1301) => q(bly),
- q(1302) => q(blz),
- q(1303) => q(bma),
- q(1304) => q(bmb),
- q(1305) => q(bmc),
- q(1306) => q(bmd),
- q(1307) => q(bme),
- q(1308) => q(bmf),
- q(1309) => q(bmg),
- q(1310) => q(bmh),
- q(1311) => q(bmi),
- q(1312) => q(bmj),
- q(1313) => q(bmk),
- q(1314) => q(bml),
- q(1315) => q(bmm),
- q(1316) => q(bmn),
- q(1317) => q(bmo),
- q(1318) => q(bmp),
- q(1319) => q(bmq),
- q(1320) => q(bmr),
- q(1321) => q(bms),
- q(1322) => q(bmt),
- q(1323) => q(bmu),
- q(1324) => q(bmv),
- q(1325) => q(bmw),
- q(1326) => q(bmx),
- q(1327) => q(bmz),
- q(1328) => q(bna),
- q(1329) => q(bnb),
- q(1330) => q(bnc),
- q(1331) => q(bnd),
- q(1332) => q(bne),
- q(1333) => q(bnf),
- q(1334) => q(bng),
- q(1335) => q(bni),
- q(1336) => q(bnj),
- q(1337) => q(bnk),
- q(1338) => q(bnl),
- q(1339) => q(bnm),
- q(1340) => q(bnn),
- q(1341) => q(bno),
- q(1342) => q(bnp),
- q(1343) => q(bnq),
- q(1344) => q(bnr),
- q(1345) => q(bns),
- q(1346) => q(bnu),
- q(1347) => q(bnv),
- q(1348) => q(bnw),
- q(1349) => q(bnx),
- q(1350) => q(bny),
- q(1351) => q(bnz),
- q(1352) => q(boa),
- q(1353) => q(bob),
- q(1354) => q(boe),
- q(1355) => q(bof),
- q(1356) => q(bog),
- q(1357) => q(boh),
- q(1358) => q(boi),
- q(1359) => q(boj),
- q(1360) => q(bok),
- q(1361) => q(bol),
- q(1362) => q(bom),
- q(1363) => q(bon),
- q(1364) => q(boo),
- q(1365) => q(bop),
- q(1366) => q(boq),
- q(1367) => q(bor),
- q(1368) => q(bot),
- q(1369) => q(bou),
- q(1370) => q(bov),
- q(1371) => q(bow),
- q(1372) => q(box),
- q(1373) => q(boy),
- q(1374) => q(boz),
- q(1375) => q(bpa),
- q(1376) => q(bpb),
- q(1377) => q(bpd),
- q(1378) => q(bpg),
- q(1379) => q(bph),
- q(1380) => q(bpi),
- q(1381) => q(bpj),
- q(1382) => q(bpk),
- q(1383) => q(bpl),
- q(1384) => q(bpm),
- q(1385) => q(bpn),
- q(1386) => q(bpo),
- q(1387) => q(bpp),
- q(1388) => q(bpq),
- q(1389) => q(bpr),
- q(1390) => q(bps),
- q(1391) => q(bpt),
- q(1392) => q(bpu),
- q(1393) => q(bpv),
- q(1394) => q(bpw),
- q(1395) => q(bpx),
- q(1396) => q(bpy),
- q(1397) => q(bpz),
- q(1398) => q(bqa),
- q(1399) => q(bqb),
- q(1400) => q(bqc),
- q(1401) => q(bqd),
- q(1402) => q(bqf),
- q(1403) => q(bqg),
- q(1404) => q(bqh),
- q(1405) => q(bqi),
- q(1406) => q(bqj),
- q(1407) => q(bqk),
- q(1408) => q(bql),
- q(1409) => q(bqm),
- q(1410) => q(bqn),
- q(1411) => q(bqo),
- q(1412) => q(bqp),
- q(1413) => q(bqq),
- q(1414) => q(bqr),
- q(1415) => q(bqs),
- q(1416) => q(bqt),
- q(1417) => q(bqu),
- q(1418) => q(bqv),
- q(1419) => q(bqw),
- q(1420) => q(bqx),
- q(1421) => q(bqy),
- q(1422) => q(bqz),
- q(1423) => q(brb),
- q(1424) => q(brc),
- q(1425) => q(brd),
- q(1426) => q(brf),
- q(1427) => q(brg),
- q(1428) => q(brh),
- q(1429) => q(bri),
- q(1430) => q(brj),
- q(1431) => q(brk),
- q(1432) => q(brl),
- q(1433) => q(brm),
- q(1434) => q(brn),
- q(1435) => q(bro),
- q(1436) => q(brp),
- q(1437) => q(brq),
- q(1438) => q(brr),
- q(1439) => q(brs),
- q(1440) => q(brt),
- q(1441) => q(bru),
- q(1442) => q(brv),
- q(1443) => q(brw),
- q(1444) => q(brx),
- q(1445) => q(bry),
- q(1446) => q(brz),
- q(1447) => q(bsa),
- q(1448) => q(bsb),
- q(1449) => q(bsc),
- q(1450) => q(bse),
- q(1451) => q(bsf),
- q(1452) => q(bsg),
- q(1453) => q(bsh),
- q(1454) => q(bsi),
- q(1455) => q(bsj),
- q(1456) => q(bsk),
- q(1457) => q(bsl),
- q(1458) => q(bsm),
- q(1459) => q(bsn),
- q(1460) => q(bso),
- q(1461) => q(bsp),
- q(1462) => q(bsq),
- q(1463) => q(bsr),
- q(1464) => q(bss),
- q(1465) => q(bst),
- q(1466) => q(bsu),
- q(1467) => q(bsv),
- q(1468) => q(bsw),
- q(1469) => q(bsx),
- q(1470) => q(bsy),
- q(1471) => q(bta),
- q(1472) => q(btc),
- q(1473) => q(btd),
- q(1474) => q(bte),
- q(1475) => q(btf),
- q(1476) => q(btg),
- q(1477) => q(bth),
- q(1478) => q(bti),
- q(1479) => q(btj),
- q(1480) => q(btl),
- q(1481) => q(btm),
- q(1482) => q(btn),
- q(1483) => q(bto),
- q(1484) => q(btp),
- q(1485) => q(btq),
- q(1486) => q(btr),
- q(1487) => q(bts),
- q(1488) => q(btt),
- q(1489) => q(btu),
- q(1490) => q(btv),
- q(1491) => q(btw),
- q(1492) => q(btx),
- q(1493) => q(bty),
- q(1494) => q(btz),
- q(1495) => q(bub),
- q(1496) => q(buc),
- q(1497) => q(bud),
- q(1498) => q(bue),
- q(1499) => q(buf),
- q(1500) => q(buh),
- q(1501) => q(bui),
- q(1502) => q(buj),
- q(1503) => q(buk),
- q(1504) => q(bum),
- q(1505) => q(bun),
- q(1506) => q(buo),
- q(1507) => q(bup),
- q(1508) => q(buq),
- q(1509) => q(bus),
- q(1510) => q(but),
- q(1511) => q(buu),
- q(1512) => q(buv),
- q(1513) => q(buw),
- q(1514) => q(bux),
- q(1515) => q(buy),
- q(1516) => q(buz),
- q(1517) => q(bva),
- q(1518) => q(bvb),
- q(1519) => q(bvc),
- q(1520) => q(bvd),
- q(1521) => q(bve),
- q(1522) => q(bvf),
- q(1523) => q(bvg),
- q(1524) => q(bvh),
- q(1525) => q(bvi),
- q(1526) => q(bvj),
- q(1527) => q(bvk),
- q(1528) => q(bvl),
- q(1529) => q(bvm),
- q(1530) => q(bvn),
- q(1531) => q(bvo),
- q(1532) => q(bvp),
- q(1533) => q(bvq),
- q(1534) => q(bvr),
- q(1535) => q(bvt),
- q(1536) => q(bvu),
- q(1537) => q(bvv),
- q(1538) => q(bvw),
- q(1539) => q(bvx),
- q(1540) => q(bvy),
- q(1541) => q(bvz),
- q(1542) => q(bwa),
- q(1543) => q(bwb),
- q(1544) => q(bwc),
- q(1545) => q(bwd),
- q(1546) => q(bwe),
- q(1547) => q(bwf),
- q(1548) => q(bwg),
- q(1549) => q(bwh),
- q(1550) => q(bwi),
- q(1551) => q(bwj),
- q(1552) => q(bwk),
- q(1553) => q(bwl),
- q(1554) => q(bwm),
- q(1555) => q(bwn),
- q(1556) => q(bwo),
- q(1557) => q(bwp),
- q(1558) => q(bwq),
- q(1559) => q(bwr),
- q(1560) => q(bws),
- q(1561) => q(bwt),
- q(1562) => q(bwu),
- q(1563) => q(bww),
- q(1564) => q(bwx),
- q(1565) => q(bwy),
- q(1566) => q(bwz),
- q(1567) => q(bxa),
- q(1568) => q(bxb),
- q(1569) => q(bxc),
- q(1570) => q(bxd),
- q(1571) => q(bxe),
- q(1572) => q(bxf),
- q(1573) => q(bxg),
- q(1574) => q(bxh),
- q(1575) => q(bxi),
- q(1576) => q(bxj),
- q(1577) => q(bxk),
- q(1578) => q(bxl),
- q(1579) => q(bxm),
- q(1580) => q(bxn),
- q(1581) => q(bxo),
- q(1582) => q(bxp),
- q(1583) => q(bxq),
- q(1584) => q(bxr),
- q(1585) => q(bxs),
- q(1586) => q(bxu),
- q(1587) => q(bxv),
- q(1588) => q(bxw),
- q(1589) => q(bxz),
- q(1590) => q(bya),
- q(1591) => q(byb),
- q(1592) => q(byc),
- q(1593) => q(byd),
- q(1594) => q(bye),
- q(1595) => q(byf),
- q(1596) => q(byg),
- q(1597) => q(byh),
- q(1598) => q(byi),
- q(1599) => q(byj),
- q(1600) => q(byk),
- q(1601) => q(byl),
- q(1602) => q(bym),
- q(1603) => q(byo),
- q(1604) => q(byp),
- q(1605) => q(byq),
- q(1606) => q(byr),
- q(1607) => q(bys),
- q(1608) => q(byt),
- q(1609) => q(byv),
- q(1610) => q(byw),
- q(1611) => q(byx),
- q(1612) => q(byz),
- q(1613) => q(bza),
- q(1614) => q(bzb),
- q(1615) => q(bzc),
- q(1616) => q(bzd),
- q(1617) => q(bze),
- q(1618) => q(bzf),
- q(1619) => q(bzg),
- q(1620) => q(bzh),
- q(1621) => q(bzi),
- q(1622) => q(bzj),
- q(1623) => q(bzk),
- q(1624) => q(bzl),
- q(1625) => q(bzm),
- q(1626) => q(bzn),
- q(1627) => q(bzo),
- q(1628) => q(bzp),
- q(1629) => q(bzq),
- q(1630) => q(bzr),
- q(1631) => q(bzs),
- q(1632) => q(bzt),
- q(1633) => q(bzu),
- q(1634) => q(bzv),
- q(1635) => q(bzw),
- q(1636) => q(bzx),
- q(1637) => q(bzy),
- q(1638) => q(bzz),
- q(1639) => q(caa),
- q(1640) => q(cab),
- q(1641) => q(cac),
- q(1642) => q(cae),
- q(1643) => q(caf),
- q(1644) => q(cag),
- q(1645) => q(cah),
- q(1646) => q(caj),
- q(1647) => q(cak),
- q(1648) => q(cal),
- q(1649) => q(cam),
- q(1650) => q(can),
- q(1651) => q(cao),
- q(1652) => q(cap),
- q(1653) => q(caq),
- q(1654) => q(cas),
- q(1655) => q(cav),
- q(1656) => q(caw),
- q(1657) => q(cax),
- q(1658) => q(cay),
- q(1659) => q(caz),
- q(1660) => q(cbb),
- q(1661) => q(cbc),
- q(1662) => q(cbd),
- q(1663) => q(cbe),
- q(1664) => q(cbg),
- q(1665) => q(cbh),
- q(1666) => q(cbi),
- q(1667) => q(cbj),
- q(1668) => q(cbk),
- q(1669) => q(cbl),
- q(1670) => q(cbn),
- q(1671) => q(cbo),
- q(1672) => q(cbq),
- q(1673) => q(cbr),
- q(1674) => q(cbs),
- q(1675) => q(cbt),
- q(1676) => q(cbu),
- q(1677) => q(cbv),
- q(1678) => q(cbw),
- q(1679) => q(cby),
- q(1680) => q(cca),
- q(1681) => q(ccc),
- q(1682) => q(ccd),
- q(1683) => q(cce),
- q(1684) => q(ccg),
- q(1685) => q(cch),
- q(1686) => q(ccj),
- q(1687) => q(ccl),
- q(1688) => q(ccm),
- q(1689) => q(cco),
- q(1690) => q(ccp),
- q(1691) => q(ccr),
- q(1692) => q(cda),
- q(1693) => q(cde),
- q(1694) => q(cdf),
- q(1695) => q(cdg),
- q(1696) => q(cdh),
- q(1697) => q(cdi),
- q(1698) => q(cdj),
- q(1699) => q(cdm),
- q(1700) => q(cdn),
- q(1701) => q(cdo),
- q(1702) => q(cdr),
- q(1703) => q(cds),
- q(1704) => q(cdy),
- q(1705) => q(cdz),
- q(1706) => q(cea),
- q(1707) => q(ceg),
- q(1708) => q(cek),
- q(1709) => q(cen),
- q(1710) => q(cet),
- q(1711) => q(cfa),
- q(1712) => q(cfd),
- q(1713) => q(cfg),
- q(1714) => q(cfm),
- q(1715) => q(cga),
- q(1716) => q(cgc),
- q(1717) => q(cgg),
- q(1718) => q(cgk),
- q(1719) => q(chc),
- q(1720) => q(chd),
- q(1721) => q(chf),
- q(1722) => q(chh),
- q(1723) => q(chj),
- q(1724) => q(chl),
- q(1725) => q(chq),
- q(1726) => q(cht),
- q(1727) => q(chw),
- q(1728) => q(chx),
- q(1729) => q(chz),
- q(1730) => q(cia),
- q(1731) => q(cib),
- q(1732) => q(cic),
- q(1733) => q(cid),
- q(1734) => q(cie),
- q(1735) => q(cih),
- q(1736) => q(cik),
- q(1737) => q(cim),
- q(1738) => q(cin),
- q(1739) => q(cip),
- q(1740) => q(cir),
- q(1741) => q(ciw),
- q(1742) => q(ciy),
- q(1743) => q(cja),
- q(1744) => q(cje),
- q(1745) => q(cjh),
- q(1746) => q(cji),
- q(1747) => q(cjk),
- q(1748) => q(cjm),
- q(1749) => q(cjn),
- q(1750) => q(cjo),
- q(1751) => q(cjp),
- q(1752) => q(cjs),
- q(1753) => q(cjv),
- q(1754) => q(cjy),
- q(1755) => q(ckb),
- q(1756) => q(ckh),
- q(1757) => q(ckl),
- q(1758) => q(ckn),
- q(1759) => q(cko),
- q(1760) => q(ckq),
- q(1761) => q(ckr),
- q(1762) => q(cks),
- q(1763) => q(ckt),
- q(1764) => q(cku),
- q(1765) => q(ckv),
- q(1766) => q(ckx),
- q(1767) => q(cky),
- q(1768) => q(ckz),
- q(1769) => q(cla),
- q(1770) => q(clc),
- q(1771) => q(cld),
- q(1772) => q(cle),
- q(1773) => q(clh),
- q(1774) => q(cli),
- q(1775) => q(clj),
- q(1776) => q(clk),
- q(1777) => q(cll),
- q(1778) => q(clm),
- q(1779) => q(clo),
- q(1780) => q(clt),
- q(1781) => q(clu),
- q(1782) => q(clw),
- q(1783) => q(cly),
- q(1784) => q(cma),
- q(1785) => q(cme),
- q(1786) => q(cmg),
- q(1787) => q(cmi),
- q(1788) => q(cml),
- q(1789) => q(cmm),
- q(1790) => q(cmn),
- q(1791) => q(cmo),
- q(1792) => q(cmr),
- q(1793) => q(cms),
- q(1794) => q(cmt),
- q(1795) => q(cna),
- q(1796) => q(cnb),
- q(1797) => q(cnc),
- q(1798) => q(cng),
- q(1799) => q(cnh),
- q(1800) => q(cni),
- q(1801) => q(cnk),
- q(1802) => q(cnl),
- q(1803) => q(cno),
- q(1804) => q(cns),
- q(1805) => q(cnt),
- q(1806) => q(cnu),
- q(1807) => q(cnw),
- q(1808) => q(cnx),
- q(1809) => q(coa),
- q(1810) => q(cob),
- q(1811) => q(coc),
- q(1812) => q(cod),
- q(1813) => q(coe),
- q(1814) => q(cof),
- q(1815) => q(cog),
- q(1816) => q(coh),
- q(1817) => q(coj),
- q(1818) => q(cok),
- q(1819) => q(col),
- q(1820) => q(com),
- q(1821) => q(con),
- q(1822) => q(coo),
- q(1823) => q(coq),
- q(1824) => q(cot),
- q(1825) => q(cou),
- q(1826) => q(cov),
- q(1827) => q(cow),
- q(1828) => q(cox),
- q(1829) => q(coy),
- q(1830) => q(coz),
- q(1831) => q(cpa),
- q(1832) => q(cpb),
- q(1833) => q(cpc),
- q(1834) => q(cpg),
- q(1835) => q(cpi),
- q(1836) => q(cpn),
- q(1837) => q(cpo),
- q(1838) => q(cps),
- q(1839) => q(cpu),
- q(1840) => q(cpx),
- q(1841) => q(cpy),
- q(1842) => q(cqd),
- q(1843) => q(cqu),
- q(1844) => q(cra),
- q(1845) => q(crb),
- q(1846) => q(crc),
- q(1847) => q(crd),
- q(1848) => q(crf),
- q(1849) => q(crg),
- q(1850) => q(cri),
- q(1851) => q(crj),
- q(1852) => q(crk),
- q(1853) => q(crl),
- q(1854) => q(crm),
- q(1855) => q(crn),
- q(1856) => q(cro),
- q(1857) => q(crq),
- q(1858) => q(crr),
- q(1859) => q(crs),
- q(1860) => q(crt),
- q(1861) => q(crv),
- q(1862) => q(crw),
- q(1863) => q(crx),
- q(1864) => q(cry),
- q(1865) => q(crz),
- q(1866) => q(csa),
- q(1867) => q(csc),
- q(1868) => q(csd),
- q(1869) => q(cse),
- q(1870) => q(csf),
- q(1871) => q(csg),
- q(1872) => q(csh),
- q(1873) => q(csi),
- q(1874) => q(csj),
- q(1875) => q(csk),
- q(1876) => q(csl),
- q(1877) => q(csm),
- q(1878) => q(csn),
- q(1879) => q(cso),
- q(1880) => q(csq),
- q(1881) => q(csr),
- q(1882) => q(css),
- q(1883) => q(cst),
- q(1884) => q(csv),
- q(1885) => q(csw),
- q(1886) => q(csy),
- q(1887) => q(csz),
- q(1888) => q(cta),
- q(1889) => q(ctc),
- q(1890) => q(ctd),
- q(1891) => q(cte),
- q(1892) => q(ctg),
- q(1893) => q(cth),
- q(1894) => q(ctl),
- q(1895) => q(ctm),
- q(1896) => q(ctn),
- q(1897) => q(cto),
- q(1898) => q(ctp),
- q(1899) => q(cts),
- q(1900) => q(ctt),
- q(1901) => q(ctu),
- q(1902) => q(ctz),
- q(1903) => q(cua),
- q(1904) => q(cub),
- q(1905) => q(cuc),
- q(1906) => q(cug),
- q(1907) => q(cuh),
- q(1908) => q(cui),
- q(1909) => q(cuj),
- q(1910) => q(cuk),
- q(1911) => q(cul),
- q(1912) => q(cum),
- q(1913) => q(cuo),
- q(1914) => q(cup),
- q(1915) => q(cuq),
- q(1916) => q(cur),
- q(1917) => q(cut),
- q(1918) => q(cuu),
- q(1919) => q(cuv),
- q(1920) => q(cuw),
- q(1921) => q(cux),
- q(1922) => q(cvg),
- q(1923) => q(cvn),
- q(1924) => q(cwa),
- q(1925) => q(cwb),
- q(1926) => q(cwd),
- q(1927) => q(cwe),
- q(1928) => q(cwg),
- q(1929) => q(cwt),
- q(1930) => q(cya),
- q(1931) => q(cyb),
- q(1932) => q(cyo),
- q(1933) => q(czh),
- q(1934) => q(czk),
- q(1935) => q(czn),
- q(1936) => q(czo),
- q(1937) => q(czt),
- q(1938) => q(daa),
- q(1939) => q(dac),
- q(1940) => q(dad),
- q(1941) => q(dae),
- q(1942) => q(dag),
- q(1943) => q(dah),
- q(1944) => q(dai),
- q(1945) => q(daj),
- q(1946) => q(dal),
- q(1947) => q(dam),
- q(1948) => q(dao),
- q(1949) => q(daq),
- q(1950) => q(das),
- q(1951) => q(dau),
- q(1952) => q(dav),
- q(1953) => q(daw),
- q(1954) => q(dax),
- q(1955) => q(daz),
- q(1956) => q(dba),
- q(1957) => q(dbb),
- q(1958) => q(dbd),
- q(1959) => q(dbe),
- q(1960) => q(dbf),
- q(1961) => q(dbg),
- q(1962) => q(dbi),
- q(1963) => q(dbj),
- q(1964) => q(dbl),
- q(1965) => q(dbm),
- q(1966) => q(dbn),
- q(1967) => q(dbo),
- q(1968) => q(dbp),
- q(1969) => q(dbq),
- q(1970) => q(dbr),
- q(1971) => q(dbt),
- q(1972) => q(dbu),
- q(1973) => q(dbv),
- q(1974) => q(dbw),
- q(1975) => q(dby),
- q(1976) => q(dcc),
- q(1977) => q(dcr),
- q(1978) => q(dda),
- q(1979) => q(ddd),
- q(1980) => q(dde),
- q(1981) => q(ddg),
- q(1982) => q(ddi),
- q(1983) => q(ddj),
- q(1984) => q(ddn),
- q(1985) => q(ddo),
- q(1986) => q(ddr),
- q(1987) => q(dds),
- q(1988) => q(ddw),
- q(1989) => q(dec),
- q(1990) => q(ded),
- q(1991) => q(dee),
- q(1992) => q(def),
- q(1993) => q(deg),
- q(1994) => q(deh),
- q(1995) => q(dei),
- q(1996) => q(dek),
- q(1997) => q(dem),
- q(1998) => q(dep),
- q(1999) => q(deq),
- q(2000) => q(der),
- q(2001) => q(des),
- q(2002) => q(dev),
- q(2003) => q(dez),
- q(2004) => q(dga),
- q(2005) => q(dgb),
- q(2006) => q(dgc),
- q(2007) => q(dgd),
- q(2008) => q(dge),
- q(2009) => q(dgg),
- q(2010) => q(dgh),
- q(2011) => q(dgi),
- q(2012) => q(dgk),
- q(2013) => q(dgl),
- q(2014) => q(dgn),
- q(2015) => q(dgo),
- q(2016) => q(dgs),
- q(2017) => q(dgt),
- q(2018) => q(dgu),
- q(2019) => q(dgw),
- q(2020) => q(dgx),
- q(2021) => q(dgz),
- q(2022) => q(dhd),
- q(2023) => q(dhg),
- q(2024) => q(dhi),
- q(2025) => q(dhl),
- q(2026) => q(dhm),
- q(2027) => q(dhn),
- q(2028) => q(dho),
- q(2029) => q(dhr),
- q(2030) => q(dhs),
- q(2031) => q(dhu),
- q(2032) => q(dhv),
- q(2033) => q(dhw),
- q(2034) => q(dhx),
- q(2035) => q(dia),
- q(2036) => q(dib),
- q(2037) => q(dic),
- q(2038) => q(did),
- q(2039) => q(dif),
- q(2040) => q(dig),
- q(2041) => q(dih),
- q(2042) => q(dii),
- q(2043) => q(dij),
- q(2044) => q(dik),
- q(2045) => q(dil),
- q(2046) => q(dim),
- q(2047) => q(dio),
- q(2048) => q(dip),
- q(2049) => q(diq),
- q(2050) => q(dir),
- q(2051) => q(dis),
- q(2052) => q(dit),
- q(2053) => q(diu),
- q(2054) => q(diw),
- q(2055) => q(dix),
- q(2056) => q(diy),
- q(2057) => q(diz),
- q(2058) => q(dja),
- q(2059) => q(djb),
- q(2060) => q(djc),
- q(2061) => q(djd),
- q(2062) => q(dje),
- q(2063) => q(djf),
- q(2064) => q(dji),
- q(2065) => q(djj),
- q(2066) => q(djk),
- q(2067) => q(djm),
- q(2068) => q(djn),
- q(2069) => q(djo),
- q(2070) => q(djr),
- q(2071) => q(dju),
- q(2072) => q(djw),
- q(2073) => q(dka),
- q(2074) => q(dkk),
- q(2075) => q(dkr),
- q(2076) => q(dks),
- q(2077) => q(dkx),
- q(2078) => q(dlg),
- q(2079) => q(dlk),
- q(2080) => q(dlm),
- q(2081) => q(dln),
- q(2082) => q(dma),
- q(2083) => q(dmb),
- q(2084) => q(dmc),
- q(2085) => q(dmd),
- q(2086) => q(dme),
- q(2087) => q(dmg),
- q(2088) => q(dmk),
- q(2089) => q(dml),
- q(2090) => q(dmm),
- q(2091) => q(dmo),
- q(2092) => q(dmr),
- q(2093) => q(dms),
- q(2094) => q(dmu),
- q(2095) => q(dmv),
- q(2096) => q(dmw),
- q(2097) => q(dmx),
- q(2098) => q(dmy),
- q(2099) => q(dna),
- q(2100) => q(dnd),
- q(2101) => q(dne),
- q(2102) => q(dng),
- q(2103) => q(dni),
- q(2104) => q(dnj),
- q(2105) => q(dnk),
- q(2106) => q(dnn),
- q(2107) => q(dnr),
- q(2108) => q(dnt),
- q(2109) => q(dnu),
- q(2110) => q(dnv),
- q(2111) => q(dnw),
- q(2112) => q(dny),
- q(2113) => q(doa),
- q(2114) => q(dob),
- q(2115) => q(doc),
- q(2116) => q(doe),
- q(2117) => q(dof),
- q(2118) => q(doh),
- q(2119) => q(dok),
- q(2120) => q(dol),
- q(2121) => q(don),
- q(2122) => q(doo),
- q(2123) => q(dop),
- q(2124) => q(doq),
- q(2125) => q(dor),
- q(2126) => q(dos),
- q(2127) => q(dot),
- q(2128) => q(dov),
- q(2129) => q(dow),
- q(2130) => q(dox),
- q(2131) => q(doy),
- q(2132) => q(doz),
- q(2133) => q(dpp),
- q(2134) => q(drb),
- q(2135) => q(drc),
- q(2136) => q(drd),
- q(2137) => q(dre),
- q(2138) => q(drg),
- q(2139) => q(dri),
- q(2140) => q(drl),
- q(2141) => q(drn),
- q(2142) => q(dro),
- q(2143) => q(drq),
- q(2144) => q(drr),
- q(2145) => q(drs),
- q(2146) => q(drt),
- q(2147) => q(dru),
- q(2148) => q(dry),
- q(2149) => q(dse),
- q(2150) => q(dsh),
- q(2151) => q(dsi),
- q(2152) => q(dsl),
- q(2153) => q(dsn),
- q(2154) => q(dso),
- q(2155) => q(dsq),
- q(2156) => q(dta),
- q(2157) => q(dtb),
- q(2158) => q(dtd),
- q(2159) => q(dth),
- q(2160) => q(dti),
- q(2161) => q(dtk),
- q(2162) => q(dtm),
- q(2163) => q(dto),
- q(2164) => q(dtp),
- q(2165) => q(dtr),
- q(2166) => q(dts),
- q(2167) => q(dtt),
- q(2168) => q(dtu),
- q(2169) => q(dty),
- q(2170) => q(dub),
- q(2171) => q(duc),
- q(2172) => q(dud),
- q(2173) => q(due),
- q(2174) => q(duf),
- q(2175) => q(dug),
- q(2176) => q(duh),
- q(2177) => q(dui),
- q(2178) => q(duj),
- q(2179) => q(duk),
- q(2180) => q(dul),
- q(2181) => q(dun),
- q(2182) => q(duo),
- q(2183) => q(dup),
- q(2184) => q(duq),
- q(2185) => q(dur),
- q(2186) => q(dus),
- q(2187) => q(duu),
- q(2188) => q(duv),
- q(2189) => q(duw),
- q(2190) => q(dux),
- q(2191) => q(duy),
- q(2192) => q(duz),
- q(2193) => q(dva),
- q(2194) => q(dwa),
- q(2195) => q(dwr),
- q(2196) => q(dws),
- q(2197) => q(dww),
- q(2198) => q(dya),
- q(2199) => q(dyb),
- q(2200) => q(dyd),
- q(2201) => q(dyg),
- q(2202) => q(dyi),
- q(2203) => q(dym),
- q(2204) => q(dyn),
- q(2205) => q(dyo),
- q(2206) => q(dyy),
- q(2207) => q(dza),
- q(2208) => q(dze),
- q(2209) => q(dzg),
- q(2210) => q(dzl),
- q(2211) => q(dzn),
- q(2212) => q(eaa),
- q(2213) => q(ebg),
- q(2214) => q(ebk),
- q(2215) => q(ebo),
- q(2216) => q(ebr),
- q(2217) => q(ebu),
- q(2218) => q(ecr),
- q(2219) => q(ecs),
- q(2220) => q(ecy),
- q(2221) => q(eee),
- q(2222) => q(efa),
- q(2223) => q(efe),
- q(2224) => q(ega),
- q(2225) => q(egl),
- q(2226) => q(ego),
- q(2227) => q(ehu),
- q(2228) => q(eip),
- q(2229) => q(eit),
- q(2230) => q(eiv),
- q(2231) => q(eja),
- q(2232) => q(ekc),
- q(2233) => q(eke),
- q(2234) => q(ekg),
- q(2235) => q(eki),
- q(2236) => q(ekk),
- q(2237) => q(ekl),
- q(2238) => q(ekm),
- q(2239) => q(eko),
- q(2240) => q(ekp),
- q(2241) => q(ekr),
- q(2242) => q(eky),
- q(2243) => q(ele),
- q(2244) => q(elh),
- q(2245) => q(eli),
- q(2246) => q(elk),
- q(2247) => q(elm),
- q(2248) => q(elo),
- q(2249) => q(elu),
- q(2250) => q(ema),
- q(2251) => q(emb),
- q(2252) => q(eme),
- q(2253) => q(emg),
- q(2254) => q(emi),
- q(2255) => q(emk),
- q(2256) => q(emm),
- q(2257) => q(emn),
- q(2258) => q(emp),
- q(2259) => q(ems),
- q(2260) => q(emu),
- q(2261) => q(emw),
- q(2262) => q(emx),
- q(2263) => q(emy),
- q(2264) => q(ena),
- q(2265) => q(enb),
- q(2266) => q(enc),
- q(2267) => q(end),
- q(2268) => q(enf),
- q(2269) => q(enh),
- q(2270) => q(enl),
- q(2271) => q(enn),
- q(2272) => q(eno),
- q(2273) => q(enq),
- q(2274) => q(enr),
- q(2275) => q(enu),
- q(2276) => q(env),
- q(2277) => q(enw),
- q(2278) => q(enx),
- q(2279) => q(eot),
- q(2280) => q(epi),
- q(2281) => q(era),
- q(2282) => q(erg),
- q(2283) => q(erh),
- q(2284) => q(eri),
- q(2285) => q(erk),
- q(2286) => q(ero),
- q(2287) => q(err),
- q(2288) => q(ers),
- q(2289) => q(ert),
- q(2290) => q(erw),
- q(2291) => q(ese),
- q(2292) => q(esh),
- q(2293) => q(esi),
- q(2294) => q(esk),
- q(2295) => q(esl),
- q(2296) => q(esm),
- q(2297) => q(esn),
- q(2298) => q(eso),
- q(2299) => q(esq),
- q(2300) => q(ess),
- q(2301) => q(esu),
- q(2302) => q(esy),
- q(2303) => q(etb),
- q(2304) => q(etc),
- q(2305) => q(eth),
- q(2306) => q(etn),
- q(2307) => q(eto),
- q(2308) => q(etr),
- q(2309) => q(ets),
- q(2310) => q(ett),
- q(2311) => q(etu),
- q(2312) => q(etx),
- q(2313) => q(etz),
- q(2314) => q(eve),
- q(2315) => q(evh),
- q(2316) => q(evn),
- q(2317) => q(ext),
- q(2318) => q(eya),
- q(2319) => q(eyo),
- q(2320) => q(eza),
- q(2321) => q(eze),
- q(2322) => q(faa),
- q(2323) => q(fab),
- q(2324) => q(fad),
- q(2325) => q(faf),
- q(2326) => q(fag),
- q(2327) => q(fah),
- q(2328) => q(fai),
- q(2329) => q(faj),
- q(2330) => q(fak),
- q(2331) => q(fal),
- q(2332) => q(fam),
- q(2333) => q(fap),
- q(2334) => q(far),
- q(2335) => q(fau),
- q(2336) => q(fax),
- q(2337) => q(fay),
- q(2338) => q(faz),
- q(2339) => q(fbl),
- q(2340) => q(fcs),
- q(2341) => q(fer),
- q(2342) => q(ffi),
- q(2343) => q(ffm),
- q(2344) => q(fgr),
- q(2345) => q(fia),
- q(2346) => q(fie),
- q(2347) => q(fip),
- q(2348) => q(fir),
- q(2349) => q(fit),
- q(2350) => q(fiw),
- q(2351) => q(fkk),
- q(2352) => q(fkv),
- q(2353) => q(fla),
- q(2354) => q(flh),
- q(2355) => q(fli),
- q(2356) => q(fll),
- q(2357) => q(fln),
- q(2358) => q(flr),
- q(2359) => q(fly),
- q(2360) => q(fmp),
- q(2361) => q(fmu),
- q(2362) => q(fng),
- q(2363) => q(fni),
- q(2364) => q(fod),
- q(2365) => q(foi),
- q(2366) => q(fom),
- q(2367) => q(for),
- q(2368) => q(fos),
- q(2369) => q(fpe),
- q(2370) => q(fqs),
- q(2371) => q(frc),
- q(2372) => q(frd),
- q(2373) => q(frk),
- q(2374) => q(frp),
- q(2375) => q(frq),
- q(2376) => q(frt),
- q(2377) => q(fse),
- q(2378) => q(fsl),
- q(2379) => q(fss),
- q(2380) => q(fub),
- q(2381) => q(fuc),
- q(2382) => q(fud),
- q(2383) => q(fue),
- q(2384) => q(fuf),
- q(2385) => q(fuh),
- q(2386) => q(fui),
- q(2387) => q(fuj),
- q(2388) => q(fum),
- q(2389) => q(fun),
- q(2390) => q(fuq),
- q(2391) => q(fut),
- q(2392) => q(fuu),
- q(2393) => q(fuv),
- q(2394) => q(fuy),
- q(2395) => q(fvr),
- q(2396) => q(fwa),
- q(2397) => q(fwe),
- q(2398) => q(gab),
- q(2399) => q(gac),
- q(2400) => q(gad),
- q(2401) => q(gae),
- q(2402) => q(gaf),
- q(2403) => q(gag),
- q(2404) => q(gah),
- q(2405) => q(gai),
- q(2406) => q(gaj),
- q(2407) => q(gak),
- q(2408) => q(gal),
- q(2409) => q(gam),
- q(2410) => q(gan),
- q(2411) => q(gao),
- q(2412) => q(gap),
- q(2413) => q(gaq),
- q(2414) => q(gar),
- q(2415) => q(gas),
- q(2416) => q(gat),
- q(2417) => q(gau),
- q(2418) => q(gaw),
- q(2419) => q(gax),
- q(2420) => q(gaz),
- q(2421) => q(gbb),
- q(2422) => q(gbd),
- q(2423) => q(gbe),
- q(2424) => q(gbf),
- q(2425) => q(gbg),
- q(2426) => q(gbh),
- q(2427) => q(gbi),
- q(2428) => q(gbj),
- q(2429) => q(gbk),
- q(2430) => q(gbl),
- q(2431) => q(gbm),
- q(2432) => q(gbn),
- q(2433) => q(gbo),
- q(2434) => q(gbp),
- q(2435) => q(gbq),
- q(2436) => q(gbr),
- q(2437) => q(gbs),
- q(2438) => q(gbu),
- q(2439) => q(gbv),
- q(2440) => q(gbw),
- q(2441) => q(gbx),
- q(2442) => q(gby),
- q(2443) => q(gbz),
- q(2444) => q(gcc),
- q(2445) => q(gcd),
- q(2446) => q(gce),
- q(2447) => q(gcf),
- q(2448) => q(gcl),
- q(2449) => q(gcn),
- q(2450) => q(gcr),
- q(2451) => q(gct),
- q(2452) => q(gda),
- q(2453) => q(gdb),
- q(2454) => q(gdc),
- q(2455) => q(gdd),
- q(2456) => q(gde),
- q(2457) => q(gdf),
- q(2458) => q(gdg),
- q(2459) => q(gdh),
- q(2460) => q(gdi),
- q(2461) => q(gdj),
- q(2462) => q(gdk),
- q(2463) => q(gdl),
- q(2464) => q(gdm),
- q(2465) => q(gdn),
- q(2466) => q(gdo),
- q(2467) => q(gdq),
- q(2468) => q(gdr),
- q(2469) => q(gds),
- q(2470) => q(gdt),
- q(2471) => q(gdu),
- q(2472) => q(gdx),
- q(2473) => q(gea),
- q(2474) => q(geb),
- q(2475) => q(gec),
- q(2476) => q(ged),
- q(2477) => q(geg),
- q(2478) => q(geh),
- q(2479) => q(gei),
- q(2480) => q(gej),
- q(2481) => q(gek),
- q(2482) => q(gel),
- q(2483) => q(geq),
- q(2484) => q(ges),
- q(2485) => q(gev),
- q(2486) => q(gew),
- q(2487) => q(gex),
- q(2488) => q(gey),
- q(2489) => q(gfk),
- q(2490) => q(gft),
- q(2491) => q(gga),
- q(2492) => q(ggb),
- q(2493) => q(ggd),
- q(2494) => q(gge),
- q(2495) => q(ggg),
- q(2496) => q(ggk),
- q(2497) => q(ggl),
- q(2498) => q(ggn),
- q(2499) => q(ggo),
- q(2500) => q(ggt),
- q(2501) => q(ggu),
- q(2502) => q(ggw),
- q(2503) => q(gha),
- q(2504) => q(ghc),
- q(2505) => q(ghe),
- q(2506) => q(ghh),
- q(2507) => q(ghk),
- q(2508) => q(ghl),
- q(2509) => q(ghn),
- q(2510) => q(gho),
- q(2511) => q(ghr),
- q(2512) => q(ghs),
- q(2513) => q(ght),
- q(2514) => q(gia),
- q(2515) => q(gib),
- q(2516) => q(gic),
- q(2517) => q(gid),
- q(2518) => q(gig),
- q(2519) => q(gih),
- q(2520) => q(gim),
- q(2521) => q(gin),
- q(2522) => q(gip),
- q(2523) => q(giq),
- q(2524) => q(gir),
- q(2525) => q(gis),
- q(2526) => q(git),
- q(2527) => q(giu),
- q(2528) => q(giw),
- q(2529) => q(gix),
- q(2530) => q(giy),
- q(2531) => q(giz),
- q(2532) => q(gji),
- q(2533) => q(gjk),
- q(2534) => q(gjm),
- q(2535) => q(gjn),
- q(2536) => q(gju),
- q(2537) => q(gka),
- q(2538) => q(gke),
- q(2539) => q(gkn),
- q(2540) => q(gko),
- q(2541) => q(gkp),
- q(2542) => q(gku),
- q(2543) => q(glc),
- q(2544) => q(gld),
- q(2545) => q(glh),
- q(2546) => q(gli),
- q(2547) => q(glj),
- q(2548) => q(glk),
- q(2549) => q(gll),
- q(2550) => q(glo),
- q(2551) => q(glr),
- q(2552) => q(glu),
- q(2553) => q(glw),
- q(2554) => q(gly),
- q(2555) => q(gma),
- q(2556) => q(gmb),
- q(2557) => q(gmd),
- q(2558) => q(gmg),
- q(2559) => q(gml),
- q(2560) => q(gmm),
- q(2561) => q(gmn),
- q(2562) => q(gmu),
- q(2563) => q(gmv),
- q(2564) => q(gmx),
- q(2565) => q(gmy),
- q(2566) => q(gmz),
- q(2567) => q(gna),
- q(2568) => q(gnb),
- q(2569) => q(gnc),
- q(2570) => q(gnd),
- q(2571) => q(gne),
- q(2572) => q(gng),
- q(2573) => q(gnh),
- q(2574) => q(gni),
- q(2575) => q(gnq),
- q(2576) => q(gnl),
- q(2577) => q(gnm),
- q(2578) => q(gnn),
- q(2579) => q(gno),
- q(2580) => q(gnr),
- q(2581) => q(gnt),
- q(2582) => q(gnu),
- q(2583) => q(gnw),
- q(2584) => q(gnz),
- q(2585) => q(goa),
- q(2586) => q(gob),
- q(2587) => q(goc),
- q(2588) => q(god),
- q(2589) => q(goe),
- q(2590) => q(gof),
- q(2591) => q(gog),
- q(2592) => q(goi),
- q(2593) => q(goj),
- q(2594) => q(gok),
- q(2595) => q(gol),
- q(2596) => q(gom),
- q(2597) => q(goo),
- q(2598) => q(gop),
- q(2599) => q(goq),
- q(2600) => q(gos),
- q(2601) => q(gou),
- q(2602) => q(gow),
- q(2603) => q(gox),
- q(2604) => q(goy),
- q(2605) => q(goz),
- q(2606) => q(gpa),
- q(2607) => q(gpe),
- q(2608) => q(gpn),
- q(2609) => q(gqa),
- q(2610) => q(gqi),
- q(2611) => q(gqn),
- q(2612) => q(gqr),
- q(2613) => q(gqu),
- q(2614) => q(gra),
- q(2615) => q(grd),
- q(2616) => q(grg),
- q(2617) => q(grh),
- q(2618) => q(gri),
- q(2619) => q(grj),
- q(2620) => q(grm),
- q(2621) => q(gro),
- q(2622) => q(grq),
- q(2623) => q(grr),
- q(2624) => q(grs),
- q(2625) => q(grt),
- q(2626) => q(gru),
- q(2627) => q(grv),
- q(2628) => q(grw),
- q(2629) => q(grx),
- q(2630) => q(gry),
- q(2631) => q(grz),
- q(2632) => q(gse),
- q(2633) => q(gsg),
- q(2634) => q(gsl),
- q(2635) => q(gsm),
- q(2636) => q(gsn),
- q(2637) => q(gso),
- q(2638) => q(gsp),
- q(2639) => q(gss),
- q(2640) => q(gta),
- q(2641) => q(gtu),
- q(2642) => q(gua),
- q(2643) => q(gub),
- q(2644) => q(guc),
- q(2645) => q(gud),
- q(2646) => q(gue),
- q(2647) => q(guf),
- q(2648) => q(gug),
- q(2649) => q(guh),
- q(2650) => q(gui),
- q(2651) => q(guk),
- q(2652) => q(gul),
- q(2653) => q(gum),
- q(2654) => q(gun),
- q(2655) => q(guo),
- q(2656) => q(gup),
- q(2657) => q(yif),
- q(2658) => q(gur),
- q(2659) => q(gus),
- q(2660) => q(gut),
- q(2661) => q(guu),
- q(2662) => q(guv),
- q(2663) => q(guw),
- q(2664) => q(gux),
- q(2665) => q(guz),
- q(2666) => q(gva),
- q(2667) => q(gvc),
- q(2668) => q(gve),
- q(2669) => q(gvf),
- q(2670) => q(gvj),
- q(2671) => q(gvl),
- q(2672) => q(gvm),
- q(2673) => q(gvn),
- q(2674) => q(gvo),
- q(2675) => q(gvp),
- q(2676) => q(gvr),
- q(2677) => q(gvs),
- q(2678) => q(gvy),
- q(2679) => q(gwa),
- q(2680) => q(gwb),
- q(2681) => q(gwc),
- q(2682) => q(gwd),
- q(2683) => q(gwe),
- q(2684) => q(gwf),
- q(2685) => q(gwg),
- q(2686) => q(gwj),
- q(2687) => q(gwm),
- q(2688) => q(gwn),
- q(2689) => q(gwr),
- q(2690) => q(gwt),
- q(2691) => q(gwu),
- q(2692) => q(gww),
- q(2693) => q(gwx),
- q(2694) => q(gxx),
- q(2695) => q(gya),
- q(2696) => q(gyb),
- q(2697) => q(gyd),
- q(2698) => q(gye),
- q(2699) => q(gyf),
- q(2700) => q(gyg),
- q(2701) => q(gyi),
- q(2702) => q(gyl),
- q(2703) => q(gym),
- q(2704) => q(gyn),
- q(2705) => q(gyr),
- q(2706) => q(gyy),
- q(2707) => q(gza),
- q(2708) => q(gzi),
- q(2709) => q(gzn),
- q(2710) => q(haa),
- q(2711) => q(hab),
- q(2712) => q(hac),
- q(2713) => q(had),
- q(2714) => q(hae),
- q(2715) => q(haf),
- q(2716) => q(hag),
- q(2717) => q(hah),
- q(2718) => q(haj),
- q(2719) => q(hak),
- q(2720) => q(hal),
- q(2721) => q(ham),
- q(2722) => q(han),
- q(2723) => q(hao),
- q(2724) => q(hap),
- q(2725) => q(haq),
- q(2726) => q(har),
- q(2727) => q(has),
- q(2728) => q(hav),
- q(2729) => q(hax),
- q(2730) => q(hay),
- q(2731) => q(haz),
- q(2732) => q(hba),
- q(2733) => q(hbb),
- q(2734) => q(hbn),
- q(2735) => q(hbo),
- q(2736) => q(hbu),
- q(2737) => q(hca),
- q(2738) => q(hch),
- q(2739) => q(hdn),
- q(2740) => q(hds),
- q(2741) => q(hdy),
- q(2742) => q(hea),
- q(2743) => q(hed),
- q(2744) => q(heg),
- q(2745) => q(heh),
- q(2746) => q(hei),
- q(2747) => q(hem),
- q(2748) => q(hgm),
- q(2749) => q(hgw),
- q(2750) => q(hhi),
- q(2751) => q(hhr),
- q(2752) => q(hhy),
- q(2753) => q(hia),
- q(2754) => q(hib),
- q(2755) => q(hid),
- q(2756) => q(hif),
- q(2757) => q(hig),
- q(2758) => q(hih),
- q(2759) => q(hii),
- q(2760) => q(hij),
- q(2761) => q(hik),
- q(2762) => q(hio),
- q(2763) => q(hir),
- q(2764) => q(hiw),
- q(2765) => q(hix),
- q(2766) => q(hji),
- q(2767) => q(hka),
- q(2768) => q(hke),
- q(2769) => q(hkk),
- q(2770) => q(hks),
- q(2771) => q(hla),
- q(2772) => q(hlb),
- q(2773) => q(hld),
- q(2774) => q(hle),
- q(2775) => q(hlt),
- q(2776) => q(hlu),
- q(2777) => q(hma),
- q(2778) => q(hmb),
- q(2779) => q(hmc),
- q(2780) => q(hmd),
- q(2781) => q(hme),
- q(2782) => q(hmf),
- q(2783) => q(hmg),
- q(2784) => q(hmh),
- q(2785) => q(hmi),
- q(2786) => q(hmj),
- q(2787) => q(hmk),
- q(2788) => q(hml),
- q(2789) => q(hmm),
- q(2790) => q(hmp),
- q(2791) => q(hmq),
- q(2792) => q(hmr),
- q(2793) => q(hms),
- q(2794) => q(hmt),
- q(2795) => q(hmu),
- q(2796) => q(hmv),
- q(2797) => q(hmw),
- q(2798) => q(hmy),
- q(2799) => q(hmz),
- q(2800) => q(hna),
- q(2801) => q(hnd),
- q(2802) => q(hne),
- q(2803) => q(hnh),
- q(2804) => q(hni),
- q(2805) => q(hnj),
- q(2806) => q(hnn),
- q(2807) => q(hno),
- q(2808) => q(hns),
- q(2809) => q(hnu),
- q(2810) => q(hoa),
- q(2811) => q(hob),
- q(2812) => q(hoc),
- q(2813) => q(hod),
- q(2814) => q(hoe),
- q(2815) => q(hoh),
- q(2816) => q(hoi),
- q(2817) => q(hoj),
- q(2818) => q(hol),
- q(2819) => q(hom),
- q(2820) => q(hoo),
- q(2821) => q(hop),
- q(2822) => q(hor),
- q(2823) => q(hos),
- q(2824) => q(hot),
- q(2825) => q(hov),
- q(2826) => q(how),
- q(2827) => q(hoy),
- q(2828) => q(hoz),
- q(2829) => q(hpo),
- q(2830) => q(hps),
- q(2831) => q(hra),
- q(2832) => q(hrc),
- q(2833) => q(hre),
- q(2834) => q(hrk),
- q(2835) => q(hrm),
- q(2836) => q(hro),
- q(2837) => q(hrp),
- q(2838) => q(hrt),
- q(2839) => q(hru),
- q(2840) => q(hrw),
- q(2841) => q(hrx),
- q(2842) => q(hrz),
- q(2843) => q(hsh),
- q(2844) => q(hsl),
- q(2845) => q(hsn),
- q(2846) => q(hss),
- q(2847) => q(hti),
- q(2848) => q(hto),
- q(2849) => q(hts),
- q(2850) => q(htu),
- q(2851) => q(htx),
- q(2852) => q(hub),
- q(2853) => q(huc),
- q(2854) => q(hud),
- q(2855) => q(hue),
- q(2856) => q(huf),
- q(2857) => q(hug),
- q(2858) => q(huh),
- q(2859) => q(hui),
- q(2860) => q(huj),
- q(2861) => q(huk),
- q(2862) => q(hul),
- q(2863) => q(hum),
- q(2864) => q(huo),
- q(2865) => q(huq),
- q(2866) => q(hur),
- q(2867) => q(hus),
- q(2868) => q(hut),
- q(2869) => q(huu),
- q(2870) => q(huv),
- q(2871) => q(huw),
- q(2872) => q(hux),
- q(2873) => q(huy),
- q(2874) => q(huz),
- q(2875) => q(hvc),
- q(2876) => q(hve),
- q(2877) => q(hvk),
- q(2878) => q(hvn),
- q(2879) => q(hvv),
- q(2880) => q(hwa),
- q(2881) => q(hwc),
- q(2882) => q(hwo),
- q(2883) => q(hya),
- q(2884) => q(iai),
- q(2885) => q(ian),
- q(2886) => q(iap),
- q(2887) => q(iar),
- q(2888) => q(ibb),
- q(2889) => q(ibd),
- q(2890) => q(ibe),
- q(2891) => q(ibg),
- q(2892) => q(ibl),
- q(2893) => q(ibm),
- q(2894) => q(ibn),
- q(2895) => q(ibr),
- q(2896) => q(ibu),
- q(2897) => q(iby),
- q(2898) => q(ica),
- q(2899) => q(ich),
- q(2900) => q(icl),
- q(2901) => q(icr),
- q(2902) => q(ida),
- q(2903) => q(idb),
- q(2904) => q(idc),
- q(2905) => q(idd),
- q(2906) => q(ide),
- q(2907) => q(idi),
- q(2908) => q(idr),
- q(2909) => q(ids),
- q(2910) => q(idt),
- q(2911) => q(idu),
- q(2912) => q(ifa),
- q(2913) => q(ifb),
- q(2914) => q(ife),
- q(2915) => q(iff),
- q(2916) => q(ifk),
- q(2917) => q(ifm),
- q(2918) => q(ifu),
- q(2919) => q(ify),
- q(2920) => q(igb),
- q(2921) => q(ige),
- q(2922) => q(igg),
- q(2923) => q(igl),
- q(2924) => q(igm),
- q(2925) => q(ign),
- q(2926) => q(igo),
- q(2927) => q(igs),
- q(2928) => q(igw),
- q(2929) => q(ihb),
- q(2930) => q(ihi),
- q(2931) => q(ihp),
- q(2932) => q(ihw),
- q(2933) => q(iin),
- q(2934) => q(ijc),
- q(2935) => q(ije),
- q(2936) => q(ijj),
- q(2937) => q(ijn),
- q(2938) => q(ijs),
- q(2939) => q(ike),
- q(2940) => q(iki),
- q(2941) => q(ikk),
- q(2942) => q(ikl),
- q(2943) => q(iko),
- q(2944) => q(ikp),
- q(2945) => q(ikr),
- q(2946) => q(iks),
- q(2947) => q(ikt),
- q(2948) => q(ikv),
- q(2949) => q(ikw),
- q(2950) => q(ikx),
- q(2951) => q(ikz),
- q(2952) => q(ila),
- q(2953) => q(ilb),
- q(2954) => q(ilg),
- q(2955) => q(ili),
- q(2956) => q(ilk),
- q(2957) => q(ill),
- q(2958) => q(ils),
- q(2959) => q(ilu),
- q(2960) => q(ilv),
- q(2961) => q(ima),
- q(2962) => q(imi),
- q(2963) => q(iml),
- q(2964) => q(imn),
- q(2965) => q(imo),
- q(2966) => q(imr),
- q(2967) => q(ims),
- q(2968) => q(imy),
- q(2969) => q(inb),
- q(2970) => q(ing),
- q(2971) => q(inj),
- q(2972) => q(inl),
- q(2973) => q(inm),
- q(2974) => q(inn),
- q(2975) => q(ino),
- q(2976) => q(inp),
- q(2977) => q(ins),
- q(2978) => q(int),
- q(2979) => q(inz),
- q(2980) => q(ior),
- q(2981) => q(iou),
- q(2982) => q(iow),
- q(2983) => q(ipi),
- q(2984) => q(ipo),
- q(2985) => q(iqu),
- q(2986) => q(iqw),
- q(2987) => q(ire),
- q(2988) => q(irh),
- q(2989) => q(iri),
- q(2990) => q(irk),
- q(2991) => q(irn),
- q(2992) => q(irr),
- q(2993) => q(iru),
- q(2994) => q(irx),
- q(2995) => q(iry),
- q(2996) => q(isa),
- q(2997) => q(isc),
- q(2998) => q(isd),
- q(2999) => q(ise),
- q(3000) => q(isg),
- q(3001) => q(ish),
- q(3002) => q(isi),
- q(3003) => q(isk),
- q(3004) => q(ism),
- q(3005) => q(isn),
- q(3006) => q(iso),
- q(3007) => q(isr),
- q(3008) => q(ist),
- q(3009) => q(isu),
- q(3010) => q(itb),
- q(3011) => q(ite),
- q(3012) => q(iti),
- q(3013) => q(itk),
- q(3014) => q(itl),
- q(3015) => q(itm),
- q(3016) => q(ito),
- q(3017) => q(itr),
- q(3018) => q(its),
- q(3019) => q(itt),
- q(3020) => q(itv),
- q(3021) => q(itw),
- q(3022) => q(itx),
- q(3023) => q(ity),
- q(3024) => q(itz),
- q(3025) => q(ium),
- q(3026) => q(ivb),
- q(3027) => q(ivv),
- q(3028) => q(iwk),
- q(3029) => q(iwm),
- q(3030) => q(iwo),
- q(3031) => q(iws),
- q(3032) => q(ixc),
- q(3033) => q(ixl),
- q(3034) => q(iya),
- q(3035) => q(iyo),
- q(3036) => q(iyx),
- q(3037) => q(izh),
- q(3038) => q(izr),
- q(3039) => q(izz),
- q(3040) => q(jaa),
- q(3041) => q(jab),
- q(3042) => q(jac),
- q(3043) => q(jad),
- q(3044) => q(jae),
- q(3045) => q(jaf),
- q(3046) => q(jah),
- q(3047) => q(jaj),
- q(3048) => q(jak),
- q(3049) => q(jal),
- q(3050) => q(jam),
- q(3051) => q(jan),
- q(3052) => q(jao),
- q(3053) => q(jaq),
- q(3054) => q(jas),
- q(3055) => q(jat),
- q(3056) => q(jau),
- q(3057) => q(jax),
- q(3058) => q(jay),
- q(3059) => q(jaz),
- q(3060) => q(jbe),
- q(3061) => q(jbi),
- q(3062) => q(jbj),
- q(3063) => q(jbk),
- q(3064) => q(jbn),
- q(3065) => q(jbr),
- q(3066) => q(jbt),
- q(3067) => q(jbu),
- q(3068) => q(jbw),
- q(3069) => q(jcs),
- q(3070) => q(jct),
- q(3071) => q(jda),
- q(3072) => q(jdg),
- q(3073) => q(jdt),
- q(3074) => q(jeb),
- q(3075) => q(jee),
- q(3076) => q(jeg),
- q(3077) => q(jeh),
- q(3078) => q(jei),
- q(3079) => q(jek),
- q(3080) => q(jel),
- q(3081) => q(jen),
- q(3082) => q(jer),
- q(3083) => q(jet),
- q(3084) => q(jeu),
- q(3085) => q(jgb),
- q(3086) => q(jge),
- q(3087) => q(jgk),
- q(3088) => q(jgo),
- q(3089) => q(jhi),
- q(3090) => q(jhs),
- q(3091) => q(jia),
- q(3092) => q(jib),
- q(3093) => q(jic),
- q(3094) => q(jid),
- q(3095) => q(jie),
- q(3096) => q(jig),
- q(3097) => q(jih),
- q(3098) => q(jii),
- q(3099) => q(jil),
- q(3100) => q(jim),
- q(3101) => q(jio),
- q(3102) => q(jiq),
- q(3103) => q(jit),
- q(3104) => q(jiu),
- q(3105) => q(jiv),
- q(3106) => q(jiy),
- q(3107) => q(jje),
- q(3108) => q(jjr),
- q(3109) => q(jkm),
- q(3110) => q(jko),
- q(3111) => q(jkp),
- q(3112) => q(jkr),
- q(3113) => q(jku),
- q(3114) => q(jle),
- q(3115) => q(jls),
- q(3116) => q(jma),
- q(3117) => q(jmb),
- q(3118) => q(jmc),
- q(3119) => q(jmd),
- q(3120) => q(jmi),
- q(3121) => q(jml),
- q(3122) => q(jmn),
- q(3123) => q(jmr),
- q(3124) => q(jms),
- q(3125) => q(jmw),
- q(3126) => q(jmx),
- q(3127) => q(jna),
- q(3128) => q(jnd),
- q(3129) => q(jng),
- q(3130) => q(jni),
- q(3131) => q(jnj),
- q(3132) => q(jnl),
- q(3133) => q(jns),
- q(3134) => q(job),
- q(3135) => q(jod),
- q(3136) => q(jog),
- q(3137) => q(jor),
- q(3138) => q(jos),
- q(3139) => q(jow),
- q(3140) => q(jpa),
- q(3141) => q(jqr),
- q(3142) => q(jra),
- q(3143) => q(jrr),
- q(3144) => q(jrt),
- q(3145) => q(jru),
- q(3146) => q(jsl),
- q(3147) => q(jua),
- q(3148) => q(jub),
- q(3149) => q(juc),
- q(3150) => q(jud),
- q(3151) => q(juh),
- q(3152) => q(jui),
- q(3153) => q(juk),
- q(3154) => q(jul),
- q(3155) => q(jum),
- q(3156) => q(jun),
- q(3157) => q(juo),
- q(3158) => q(jup),
- q(3159) => q(jur),
- q(3160) => q(jus),
- q(3161) => q(jut),
- q(3162) => q(juu),
- q(3163) => q(juw),
- q(3164) => q(juy),
- q(3165) => q(jvd),
- q(3166) => q(jvn),
- q(3167) => q(jwi),
- q(3168) => q(jya),
- q(3169) => q(jye),
- q(3170) => q(jyy),
- q(3171) => q(kad),
- q(3172) => q(kae),
- q(3173) => q(kaf),
- q(3174) => q(kag),
- q(3175) => q(kah),
- q(3176) => q(kai),
- q(3177) => q(kaj),
- q(3178) => q(kak),
- q(3179) => q(kao),
- q(3180) => q(kap),
- q(3181) => q(kaq),
- q(3182) => q(kav),
- q(3183) => q(kax),
- q(3184) => q(kay),
- q(3185) => q(kba),
- q(3186) => q(kbb),
- q(3187) => q(kbc),
- q(3188) => q(kbe),
- q(3189) => q(kbg),
- q(3190) => q(kbh),
- q(3191) => q(kbi),
- q(3192) => q(kbj),
- q(3193) => q(kbk),
- q(3194) => q(kbl),
- q(3195) => q(kbm),
- q(3196) => q(kbn),
- q(3197) => q(kbo),
- q(3198) => q(kbp),
- q(3199) => q(kbq),
- q(3200) => q(kbr),
- q(3201) => q(kbs),
- q(3202) => q(kbt),
- q(3203) => q(kbu),
- q(3204) => q(kbv),
- q(3205) => q(kbw),
- q(3206) => q(kbx),
- q(3207) => q(kby),
- q(3208) => q(kbz),
- q(3209) => q(kca),
- q(3210) => q(kcb),
- q(3211) => q(kcc),
- q(3212) => q(kcd),
- q(3213) => q(kce),
- q(3214) => q(kcf),
- q(3215) => q(kcg),
- q(3216) => q(kch),
- q(3217) => q(kci),
- q(3218) => q(kcj),
- q(3219) => q(kck),
- q(3220) => q(kcl),
- q(3221) => q(kcm),
- q(3222) => q(kcn),
- q(3223) => q(kco),
- q(3224) => q(kcp),
- q(3225) => q(kcq),
- q(3226) => q(kcr),
- q(3227) => q(kcs),
- q(3228) => q(kct),
- q(3229) => q(kcu),
- q(3230) => q(kcv),
- q(3231) => q(kcw),
- q(3232) => q(kcx),
- q(3233) => q(kcy),
- q(3234) => q(kcz),
- q(3235) => q(kda),
- q(3236) => q(kdc),
- q(3237) => q(kdd),
- q(3238) => q(kde),
- q(3239) => q(kdf),
- q(3240) => q(kdg),
- q(3241) => q(kdh),
- q(3242) => q(kdi),
- q(3243) => q(kdj),
- q(3244) => q(kdk),
- q(3245) => q(kdl),
- q(3246) => q(kdm),
- q(3247) => q(kdn),
- q(3248) => q(kdp),
- q(3249) => q(kdq),
- q(3250) => q(kdr),
- q(3251) => q(kdt),
- q(3252) => q(kdu),
- q(3253) => q(kdw),
- q(3254) => q(kdx),
- q(3255) => q(kdy),
- q(3256) => q(kdz),
- q(3257) => q(kea),
- q(3258) => q(keb),
- q(3259) => q(kec),
- q(3260) => q(ked),
- q(3261) => q(kee),
- q(3262) => q(kef),
- q(3263) => q(keg),
- q(3264) => q(keh),
- q(3265) => q(kei),
- q(3266) => q(kej),
- q(3267) => q(kek),
- q(3268) => q(kel),
- q(3269) => q(kem),
- q(3270) => q(ken),
- q(3271) => q(keo),
- q(3272) => q(kep),
- q(3273) => q(keq),
- q(3274) => q(ker),
- q(3275) => q(kes),
- q(3276) => q(ket),
- q(3277) => q(keu),
- q(3278) => q(kev),
- q(3279) => q(kew),
- q(3280) => q(kex),
- q(3281) => q(key),
- q(3282) => q(kez),
- q(3283) => q(kfa),
- q(3284) => q(kfb),
- q(3285) => q(kfc),
- q(3286) => q(kfd),
- q(3287) => q(kfe),
- q(3288) => q(kff),
- q(3289) => q(kfg),
- q(3290) => q(kfh),
- q(3291) => q(kfi),
- q(3292) => q(kfj),
- q(3293) => q(kfk),
- q(3294) => q(kfl),
- q(3295) => q(kfm),
- q(3296) => q(kfn),
- q(3297) => q(kfo),
- q(3298) => q(kfp),
- q(3299) => q(kfq),
- q(3300) => q(kfr),
- q(3301) => q(kfs),
- q(3302) => q(kft),
- q(3303) => q(kfu),
- q(3304) => q(kfv),
- q(3305) => q(kfw),
- q(3306) => q(kfx),
- q(3307) => q(kfy),
- q(3308) => q(kfz),
- q(3309) => q(kga),
- q(3310) => q(kgb),
- q(3311) => q(kgc),
- q(3312) => q(kgd),
- q(3313) => q(kge),
- q(3314) => q(kgf),
- q(3315) => q(kgg),
- q(3316) => q(kgi),
- q(3317) => q(kgj),
- q(3318) => q(kgk),
- q(3319) => q(kgl),
- q(3320) => q(kuq),
- q(3321) => q(kgn),
- q(3322) => q(kgo),
- q(3323) => q(kgp),
- q(3324) => q(kgq),
- q(3325) => q(kgr),
- q(3326) => q(kgs),
- q(3327) => q(kgt),
- q(3328) => q(kgu),
- q(3329) => q(kgv),
- q(3330) => q(kgw),
- q(3331) => q(kgx),
- q(3332) => q(kgy),
- q(3333) => q(khb),
- q(3334) => q(khc),
- q(3335) => q(khd),
- q(3336) => q(khe),
- q(3337) => q(khf),
- q(3338) => q(khg),
- q(3339) => q(khh),
- q(3340) => q(khj),
- q(3341) => q(khk),
- q(3342) => q(khl),
- q(3343) => q(khn),
- q(3344) => q(khp),
- q(3345) => q(khq),
- q(3346) => q(khr),
- q(3347) => q(khs),
- q(3348) => q(kht),
- q(3349) => q(khu),
- q(3350) => q(khv),
- q(3351) => q(khw),
- q(3352) => q(khx),
- q(3353) => q(khy),
- q(3354) => q(khz),
- q(3355) => q(kia),
- q(3356) => q(kib),
- q(3357) => q(kic),
- q(3358) => q(kid),
- q(3359) => q(kie),
- q(3360) => q(kif),
- q(3361) => q(kig),
- q(3362) => q(kih),
- q(3363) => q(kii),
- q(3364) => q(kij),
- q(3365) => q(kil),
- q(3366) => q(kim),
- q(3367) => q(kio),
- q(3368) => q(kip),
- q(3369) => q(kiq),
- q(3370) => q(kis),
- q(3371) => q(kit),
- q(3372) => q(kiu),
- q(3373) => q(kiv),
- q(3374) => q(kiw),
- q(3375) => q(kix),
- q(3376) => q(kiy),
- q(3377) => q(kiz),
- q(3378) => q(kja),
- q(3379) => q(kjb),
- q(3380) => q(kjc),
- q(3381) => q(kjd),
- q(3382) => q(kje),
- q(3383) => q(kjf),
- q(3384) => q(kjg),
- q(3385) => q(kjh),
- q(3386) => q(kji),
- q(3387) => q(kjj),
- q(3388) => q(kjk),
- q(3389) => q(kjl),
- q(3390) => q(kjm),
- q(3391) => q(kjn),
- q(3392) => q(kjo),
- q(3393) => q(kjp),
- q(3394) => q(kjq),
- q(3395) => q(kjr),
- q(3396) => q(kjs),
- q(3397) => q(kjt),
- q(3398) => q(kju),
- q(3399) => q(kjv),
- q(3400) => q(kjx),
- q(3401) => q(kjy),
- q(3402) => q(kjz),
- q(3403) => q(kka),
- q(3404) => q(kkb),
- q(3405) => q(kkc),
- q(3406) => q(kkd),
- q(3407) => q(kke),
- q(3408) => q(kkf),
- q(3409) => q(kkg),
- q(3410) => q(kkh),
- q(3411) => q(kki),
- q(3412) => q(kkj),
- q(3413) => q(kkk),
- q(3414) => q(kkl),
- q(3415) => q(kkm),
- q(3416) => q(kkn),
- q(3417) => q(kko),
- q(3418) => q(kkp),
- q(3419) => q(kkq),
- q(3420) => q(kkr),
- q(3421) => q(kks),
- q(3422) => q(kkt),
- q(3423) => q(kku),
- q(3424) => q(kkv),
- q(3425) => q(kkw),
- q(3426) => q(kkx),
- q(3427) => q(kky),
- q(3428) => q(kkz),
- q(3429) => q(kla),
- q(3430) => q(klb),
- q(3431) => q(klc),
- q(3432) => q(kld),
- q(3433) => q(kle),
- q(3434) => q(klf),
- q(3435) => q(klg),
- q(3436) => q(klh),
- q(3437) => q(kli),
- q(3438) => q(klj),
- q(3439) => q(klk),
- q(3440) => q(kll),
- q(3441) => q(klm),
- q(3442) => q(kln),
- q(3443) => q(klo),
- q(3444) => q(klp),
- q(3445) => q(klq),
- q(3446) => q(klr),
- q(3447) => q(kls),
- q(3448) => q(klt),
- q(3449) => q(klu),
- q(3450) => q(klv),
- q(3451) => q(klw),
- q(3452) => q(klx),
- q(3453) => q(kly),
- q(3454) => q(klz),
- q(3455) => q(kma),
- q(3456) => q(kmc),
- q(3457) => q(kmd),
- q(3458) => q(kme),
- q(3459) => q(kmf),
- q(3460) => q(kmg),
- q(3461) => q(kmh),
- q(3462) => q(kmi),
- q(3463) => q(kmj),
- q(3464) => q(kmk),
- q(3465) => q(kml),
- q(3466) => q(kmm),
- q(3467) => q(kmn),
- q(3468) => q(kmo),
- q(3469) => q(kmp),
- q(3470) => q(kmq),
- q(3471) => q(kmr),
- q(3472) => q(kms),
- q(3473) => q(kmt),
- q(3474) => q(kmu),
- q(3475) => q(kmv),
- q(3476) => q(kmw),
- q(3477) => q(kmx),
- q(3478) => q(kmy),
- q(3479) => q(kmz),
- q(3480) => q(kna),
- q(3481) => q(knb),
- q(3482) => q(knc),
- q(3483) => q(knd),
- q(3484) => q(kne),
- q(3485) => q(knf),
- q(3486) => q(kng),
- q(3487) => q(kni),
- q(3488) => q(knj),
- q(3489) => q(knk),
- q(3490) => q(knl),
- q(3491) => q(knm),
- q(3492) => q(knn),
- q(3493) => q(kno),
- q(3494) => q(knp),
- q(3495) => q(knq),
- q(3496) => q(knr),
- q(3497) => q(kns),
- q(3498) => q(knt),
- q(3499) => q(knu),
- q(3500) => q(knv),
- q(3501) => q(knw),
- q(3502) => q(knx),
- q(3503) => q(kny),
- q(3504) => q(knz),
- q(3505) => q(koa),
- q(3506) => q(koc),
- q(3507) => q(kod),
- q(3508) => q(koe),
- q(3509) => q(kof),
- q(3510) => q(kog),
- q(3511) => q(koh),
- q(3512) => q(koi),
- q(3513) => q(kol),
- q(3514) => q(koo),
- q(3515) => q(kop),
- q(3516) => q(koq),
- q(3517) => q(kot),
- q(3518) => q(kou),
- q(3519) => q(kov),
- q(3520) => q(kow),
- q(3521) => q(kox),
- q(3522) => q(koy),
- q(3523) => q(koz),
- q(3524) => q(kpa),
- q(3525) => q(kpb),
- q(3526) => q(kpc),
- q(3527) => q(kpd),
- q(3528) => q(kpf),
- q(3529) => q(kpg),
- q(3530) => q(kph),
- q(3531) => q(kpi),
- q(3532) => q(kpj),
- q(3533) => q(kpk),
- q(3534) => q(kpl),
- q(3535) => q(kpm),
- q(3536) => q(kpn),
- q(3537) => q(kpo),
- q(3538) => q(kpq),
- q(3539) => q(kpr),
- q(3540) => q(kps),
- q(3541) => q(kpt),
- q(3542) => q(kpu),
- q(3543) => q(kpv),
- q(3544) => q(kpw),
- q(3545) => q(kpx),
- q(3546) => q(kpy),
- q(3547) => q(kpz),
- q(3548) => q(kqa),
- q(3549) => q(kqb),
- q(3550) => q(kqc),
- q(3551) => q(kqd),
- q(3552) => q(kqe),
- q(3553) => q(kqf),
- q(3554) => q(kqg),
- q(3555) => q(kqh),
- q(3556) => q(kqi),
- q(3557) => q(kqj),
- q(3558) => q(kqk),
- q(3559) => q(kql),
- q(3560) => q(kqm),
- q(3561) => q(kqn),
- q(3562) => q(kqo),
- q(3563) => q(kqp),
- q(3564) => q(kqq),
- q(3565) => q(kqr),
- q(3566) => q(kqs),
- q(3567) => q(kqt),
- q(3568) => q(kqu),
- q(3569) => q(kqv),
- q(3570) => q(kqw),
- q(3571) => q(kqx),
- q(3572) => q(kqy),
- q(3573) => q(kqz),
- q(3574) => q(kra),
- q(3575) => q(krb),
- q(3576) => q(krd),
- q(3577) => q(kre),
- q(3578) => q(krf),
- q(3579) => q(krh),
- q(3580) => q(kri),
- q(3581) => q(krj),
- q(3582) => q(krk),
- q(3583) => q(krm),
- q(3584) => q(krn),
- q(3585) => q(krp),
- q(3586) => q(krr),
- q(3587) => q(krs),
- q(3588) => q(krt),
- q(3589) => q(krv),
- q(3590) => q(krw),
- q(3591) => q(krx),
- q(3592) => q(kry),
- q(3593) => q(krz),
- q(3594) => q(ksa),
- q(3595) => q(ksb),
- q(3596) => q(ksc),
- q(3597) => q(ksd),
- q(3598) => q(kse),
- q(3599) => q(ksf),
- q(3600) => q(ksg),
- q(3601) => q(ksh),
- q(3602) => q(ksi),
- q(3603) => q(ksj),
- q(3604) => q(ksk),
- q(3605) => q(ksl),
- q(3606) => q(ksm),
- q(3607) => q(ksn),
- q(3608) => q(kso),
- q(3609) => q(ksp),
- q(3610) => q(ksq),
- q(3611) => q(ksr),
- q(3612) => q(kss),
- q(3613) => q(kst),
- q(3614) => q(ksu),
- q(3615) => q(ksv),
- q(3616) => q(ksw),
- q(3617) => q(ksx),
- q(3618) => q(ksy),
- q(3619) => q(ksz),
- q(3620) => q(kta),
- q(3621) => q(ktb),
- q(3622) => q(ktc),
- q(3623) => q(ktd),
- q(3624) => q(kte),
- q(3625) => q(ktf),
- q(3626) => q(ktg),
- q(3627) => q(kth),
- q(3628) => q(kti),
- q(3629) => q(ktj),
- q(3630) => q(ktk),
- q(3631) => q(ktl),
- q(3632) => q(ktm),
- q(3633) => q(ktn),
- q(3634) => q(kto),
- q(3635) => q(ktp),
- q(3636) => q(ktq),
- q(3637) => q(ktr),
- q(3638) => q(kts),
- q(3639) => q(ktt),
- q(3640) => q(ktu),
- q(3641) => q(ktv),
- q(3642) => q(ktw),
- q(3643) => q(ktx),
- q(3644) => q(kty),
- q(3645) => q(ktz),
- q(3646) => q(kub),
- q(3647) => q(kuc),
- q(3648) => q(kud),
- q(3649) => q(kue),
- q(3650) => q(kuf),
- q(3651) => q(kug),
- q(3652) => q(kuh),
- q(3653) => q(kui),
- q(3654) => q(kuj),
- q(3655) => q(kuk),
- q(3656) => q(kul),
- q(3657) => q(kun),
- q(3658) => q(kuo),
- q(3659) => q(kup),
- q(3660) => q(kus),
- q(3661) => q(kuu),
- q(3662) => q(kuv),
- q(3663) => q(kuw),
- q(3664) => q(kux),
- q(3665) => q(kuy),
- q(3666) => q(kuz),
- q(3667) => q(kva),
- q(3668) => q(kvb),
- q(3669) => q(kvc),
- q(3670) => q(kvd),
- q(3671) => q(kve),
- q(3672) => q(kvf),
- q(3673) => q(kvg),
- q(3674) => q(kvh),
- q(3675) => q(kvi),
- q(3676) => q(kvj),
- q(3677) => q(kvk),
- q(3678) => q(kvl),
- q(3679) => q(kvm),
- q(3680) => q(kvn),
- q(3681) => q(kvo),
- q(3682) => q(kvp),
- q(3683) => q(kvq),
- q(3684) => q(kvr),
- q(3685) => q(kvs),
- q(3686) => q(kvt),
- q(3687) => q(kvu),
- q(3688) => q(kvv),
- q(3689) => q(kvw),
- q(3690) => q(kvx),
- q(3691) => q(kvy),
- q(3692) => q(kvz),
- q(3693) => q(kwa),
- q(3694) => q(kwb),
- q(3695) => q(kwc),
- q(3696) => q(kwd),
- q(3697) => q(kwe),
- q(3698) => q(kwf),
- q(3699) => q(kwg),
- q(3700) => q(kwh),
- q(3701) => q(kwi),
- q(3702) => q(kwj),
- q(3703) => q(kwk),
- q(3704) => q(kwl),
- q(3705) => q(kwm),
- q(3706) => q(kwn),
- q(3707) => q(kwo),
- q(3708) => q(kwp),
- q(3709) => q(kwr),
- q(3710) => q(kws),
- q(3711) => q(kwt),
- q(3712) => q(kwu),
- q(3713) => q(kwv),
- q(3714) => q(kww),
- q(3715) => q(kwx),
- q(3716) => q(kwy),
- q(3717) => q(kwz),
- q(3718) => q(kxa),
- q(3719) => q(kxb),
- q(3720) => q(kxc),
- q(3721) => q(kxd),
- q(3722) => q(kxf),
- q(3723) => q(kxh),
- q(3724) => q(kxi),
- q(3725) => q(kxj),
- q(3726) => q(kxk),
- q(3727) => q(kxl),
- q(3728) => q(kxm),
- q(3729) => q(kxn),
- q(3730) => q(kxo),
- q(3731) => q(kxp),
- q(3732) => q(kxq),
- q(3733) => q(kxr),
- q(3734) => q(kxs),
- q(3735) => q(kxt),
- q(3736) => q(kxu),
- q(3737) => q(kxv),
- q(3738) => q(kxw),
- q(3739) => q(kxx),
- q(3740) => q(kxy),
- q(3741) => q(kxz),
- q(3742) => q(kya),
- q(3743) => q(kyb),
- q(3744) => q(kyc),
- q(3745) => q(kyd),
- q(3746) => q(kye),
- q(3747) => q(kyf),
- q(3748) => q(kyg),
- q(3749) => q(kyh),
- q(3750) => q(kyi),
- q(3751) => q(kyj),
- q(3752) => q(kyk),
- q(3753) => q(kyl),
- q(3754) => q(kym),
- q(3755) => q(kyn),
- q(3756) => q(kyo),
- q(3757) => q(kyp),
- q(3758) => q(kyq),
- q(3759) => q(kyr),
- q(3760) => q(kys),
- q(3761) => q(kyt),
- q(3762) => q(kyu),
- q(3763) => q(kyv),
- q(3764) => q(kyw),
- q(3765) => q(kyx),
- q(3766) => q(kyy),
- q(3767) => q(kyz),
- q(3768) => q(kza),
- q(3769) => q(kzb),
- q(3770) => q(kzc),
- q(3771) => q(kzd),
- q(3772) => q(kze),
- q(3773) => q(kzf),
- q(3774) => q(kzg),
- q(3775) => q(kzi),
- q(3776) => q(kzj),
- q(3777) => q(kzk),
- q(3778) => q(kzl),
- q(3779) => q(kzm),
- q(3780) => q(kzn),
- q(3781) => q(kzo),
- q(3782) => q(kzp),
- q(3783) => q(kzq),
- q(3784) => q(kzr),
- q(3785) => q(kzs),
- q(3786) => q(kzt),
- q(3787) => q(kzu),
- q(3788) => q(kzv),
- q(3789) => q(kzw),
- q(3790) => q(kzx),
- q(3791) => q(kzy),
- q(3792) => q(kzz),
- q(3793) => q(laa),
- q(3794) => q(lab),
- q(3795) => q(lac),
- q(3796) => q(lae),
- q(3797) => q(laf),
- q(3798) => q(lag),
- q(3799) => q(lai),
- q(3800) => q(laj),
- q(3801) => q(lak),
- q(3802) => q(lal),
- q(3803) => q(lan),
- q(3804) => q(lap),
- q(3805) => q(laq),
- q(3806) => q(lar),
- q(3807) => q(las),
- q(3808) => q(lau),
- q(3809) => q(law),
- q(3810) => q(lax),
- q(3811) => q(lay),
- q(3812) => q(laz),
- q(3813) => q(lba),
- q(3814) => q(lbb),
- q(3815) => q(lbc),
- q(3816) => q(lbe),
- q(3817) => q(lbf),
- q(3818) => q(lbg),
- q(3819) => q(lbi),
- q(3820) => q(lbj),
- q(3821) => q(lbk),
- q(3822) => q(lbl),
- q(3823) => q(lbm),
- q(3824) => q(lbn),
- q(3825) => q(lbo),
- q(3826) => q(lbq),
- q(3827) => q(lbr),
- q(3828) => q(lbs),
- q(3829) => q(lbt),
- q(3830) => q(lbu),
- q(3831) => q(lbv),
- q(3832) => q(lbw),
- q(3833) => q(lbx),
- q(3834) => q(lby),
- q(3835) => q(lbz),
- q(3836) => q(lcc),
- q(3837) => q(lcd),
- q(3838) => q(lce),
- q(3839) => q(lcf),
- q(3840) => q(lch),
- q(3841) => q(lcl),
- q(3842) => q(lcm),
- q(3843) => q(lcp),
- q(3844) => q(lcq),
- q(3845) => q(lcs),
- q(3846) => q(lda),
- q(3847) => q(ldb),
- q(3848) => q(ldd),
- q(3849) => q(ldg),
- q(3850) => q(ldh),
- q(3851) => q(ldi),
- q(3852) => q(ldj),
- q(3853) => q(ldk),
- q(3854) => q(ldl),
- q(3855) => q(ldm),
- q(3856) => q(ldn),
- q(3857) => q(ldo),
- q(3858) => q(ldp),
- q(3859) => q(ldq),
- q(3860) => q(lea),
- q(3861) => q(leb),
- q(3862) => q(lec),
- q(3863) => q(led),
- q(3864) => q(lee),
- q(3865) => q(lef),
- q(3866) => q(leh),
- q(3867) => q(lei),
- q(3868) => q(lej),
- q(3869) => q(lek),
- q(3870) => q(lel),
- q(3871) => q(lem),
- q(3872) => q(len),
- q(3873) => q(leo),
- q(3874) => q(lep),
- q(3875) => q(leq),
- q(3876) => q(ler),
- q(3877) => q(les),
- q(3878) => q(let),
- q(3879) => q(leu),
- q(3880) => q(lev),
- q(3881) => q(lew),
- q(3882) => q(lex),
- q(3883) => q(ley),
- q(3884) => q(lfa),
- q(3885) => q(lfn),
- q(3886) => q(lga),
- q(3887) => q(lgb),
- q(3888) => q(lgg),
- q(3889) => q(lgh),
- q(3890) => q(lgi),
- q(3891) => q(lgk),
- q(3892) => q(lgl),
- q(3893) => q(lgm),
- q(3894) => q(lgn),
- q(3895) => q(lgq),
- q(3896) => q(lgr),
- q(3897) => q(lgt),
- q(3898) => q(lgu),
- q(3899) => q(lgz),
- q(3900) => q(lha),
- q(3901) => q(lhh),
- q(3902) => q(lhi),
- q(3903) => q(lhl),
- q(3904) => q(lhm),
- q(3905) => q(lhn),
- q(3906) => q(lhp),
- q(3907) => q(lhs),
- q(3908) => q(lht),
- q(3909) => q(lhu),
- q(3910) => q(lia),
- q(3911) => q(lib),
- q(3912) => q(lic),
- q(3913) => q(lid),
- q(3914) => q(lie),
- q(3915) => q(lif),
- q(3916) => q(lig),
- q(3917) => q(lih),
- q(3918) => q(lij),
- q(3919) => q(lik),
- q(3920) => q(lil),
- q(3921) => q(lio),
- q(3922) => q(lip),
- q(3923) => q(liq),
- q(3924) => q(lir),
- q(3925) => q(lis),
- q(3926) => q(liu),
- q(3927) => q(liv),
- q(3928) => q(liw),
- q(3929) => q(lix),
- q(3930) => q(liy),
- q(3931) => q(liz),
- q(3932) => q(lja),
- q(3933) => q(lje),
- q(3934) => q(lji),
- q(3935) => q(ljl),
- q(3936) => q(ljp),
- q(3937) => q(ljw),
- q(3938) => q(ljx),
- q(3939) => q(lka),
- q(3940) => q(lkb),
- q(3941) => q(lkc),
- q(3942) => q(lkd),
- q(3943) => q(lke),
- q(3944) => q(lkh),
- q(3945) => q(lki),
- q(3946) => q(lkj),
- q(3947) => q(lkl),
- q(3948) => q(lkm),
- q(3949) => q(lkn),
- q(3950) => q(lko),
- q(3951) => q(lkr),
- q(3952) => q(lks),
- q(3953) => q(lkt),
- q(3954) => q(lku),
- q(3955) => q(lky),
- q(3956) => q(lla),
- q(3957) => q(llb),
- q(3958) => q(llc),
- q(3959) => q(lld),
- q(3960) => q(lle),
- q(3961) => q(llf),
- q(3962) => q(llg),
- q(3963) => q(llh),
- q(3964) => q(lli),
- q(3965) => q(llj),
- q(3966) => q(llk),
- q(3967) => q(lll),
- q(3968) => q(llm),
- q(3969) => q(lln),
- q(3970) => q(llo),
- q(3971) => q(llp),
- q(3972) => q(llq),
- q(3973) => q(lls),
- q(3974) => q(llu),
- q(3975) => q(llx),
- q(3976) => q(lma),
- q(3977) => q(lmb),
- q(3978) => q(lmc),
- q(3979) => q(lmd),
- q(3980) => q(lme),
- q(3981) => q(lmf),
- q(3982) => q(lmg),
- q(3983) => q(lmh),
- q(3984) => q(lmi),
- q(3985) => q(lmj),
- q(3986) => q(lmk),
- q(3987) => q(lml),
- q(3988) => q(lmn),
- q(3989) => q(lmo),
- q(3990) => q(lmp),
- q(3991) => q(lmq),
- q(3992) => q(lmr),
- q(3993) => q(lmu),
- q(3994) => q(lmv),
- q(3995) => q(lmw),
- q(3996) => q(lmx),
- q(3997) => q(lmy),
- q(3998) => q(lmz),
- q(3999) => q(lna),
- q(4000) => q(lnb),
- q(4001) => q(lnd),
- q(4002) => q(lng),
- q(4003) => q(lnh),
- q(4004) => q(lni),
- q(4005) => q(lnj),
- q(4006) => q(lnl),
- q(4007) => q(lnm),
- q(4008) => q(lnn),
- q(4009) => q(lno),
- q(4010) => q(lns),
- q(4011) => q(lnu),
- q(4012) => q(lnw),
- q(4013) => q(lnz),
- q(4014) => q(loa),
- q(4015) => q(lob),
- q(4016) => q(loc),
- q(4017) => q(loe),
- q(4018) => q(lof),
- q(4019) => q(log),
- q(4020) => q(loh),
- q(4021) => q(loi),
- q(4022) => q(loj),
- q(4023) => q(lok),
- q(4024) => q(lom),
- q(4025) => q(lon),
- q(4026) => q(loo),
- q(4027) => q(lop),
- q(4028) => q(loq),
- q(4029) => q(lor),
- q(4030) => q(los),
- q(4031) => q(lot),
- q(4032) => q(lou),
- q(4033) => q(lov),
- q(4034) => q(low),
- q(4035) => q(lox),
- q(4036) => q(loy),
- q(4037) => q(lpa),
- q(4038) => q(lpe),
- q(4039) => q(lpn),
- q(4040) => q(lpo),
- q(4041) => q(lpx),
- q(4042) => q(lra),
- q(4043) => q(lrc),
- q(4044) => q(lre),
- q(4045) => q(lrg),
- q(4046) => q(lri),
- q(4047) => q(lrk),
- q(4048) => q(lrl),
- q(4049) => q(lrm),
- q(4050) => q(lrn),
- q(4051) => q(lro),
- q(4052) => q(lrr),
- q(4053) => q(lrt),
- q(4054) => q(lrv),
- q(4055) => q(lrz),
- q(4056) => q(lsa),
- q(4057) => q(lsd),
- q(4058) => q(lse),
- q(4059) => q(lsg),
- q(4060) => q(lsh),
- q(4061) => q(lsi),
- q(4062) => q(lsl),
- q(4063) => q(lsm),
- q(4064) => q(lso),
- q(4065) => q(lsp),
- q(4066) => q(lsr),
- q(4067) => q(lss),
- q(4068) => q(lst),
- q(4069) => q(lsy),
- q(4070) => q(ltc),
- q(4071) => q(ltg),
- q(4072) => q(lti),
- q(4073) => q(ltn),
- q(4074) => q(lto),
- q(4075) => q(lts),
- q(4076) => q(ltu),
- q(4077) => q(luc),
- q(4078) => q(lud),
- q(4079) => q(lue),
- q(4080) => q(luf),
- q(4081) => q(luj),
- q(4082) => q(luk),
- q(4083) => q(lul),
- q(4084) => q(lum),
- q(4085) => q(lup),
- q(4086) => q(luq),
- q(4087) => q(lur),
- q(4088) => q(lut),
- q(4089) => q(luu),
- q(4090) => q(luv),
- q(4091) => q(luw),
- q(4092) => q(luy),
- q(4093) => q(luz),
- q(4094) => q(lva),
- q(4095) => q(lvk),
- q(4096) => q(lvs),
- q(4097) => q(lvu),
- q(4098) => q(lwa),
- q(4099) => q(lwe),
- q(4100) => q(lwg),
- q(4101) => q(lwh),
- q(4102) => q(lwl),
- q(4103) => q(lwm),
- q(4104) => q(lwo),
- q(4105) => q(lwt),
- q(4106) => q(lwu),
- q(4107) => q(lww),
- q(4108) => q(lya),
- q(4109) => q(lyg),
- q(4110) => q(lyn),
- q(4111) => q(lzh),
- q(4112) => q(lzl),
- q(4113) => q(lzn),
- q(4114) => q(lzz),
- q(4115) => q(maa),
- q(4116) => q(mab),
- q(4117) => q(mae),
- q(4118) => q(maf),
- q(4119) => q(maj),
- q(4120) => q(mam),
- q(4121) => q(maq),
- q(4122) => q(mat),
- q(4123) => q(mau),
- q(4124) => q(mav),
- q(4125) => q(maw),
- q(4126) => q(max),
- q(4127) => q(maz),
- q(4128) => q(mba),
- q(4129) => q(mbb),
- q(4130) => q(mbc),
- q(4131) => q(mbd),
- q(4132) => q(mbe),
- q(4133) => q(mbf),
- q(4134) => q(mbh),
- q(4135) => q(mbi),
- q(4136) => q(mbj),
- q(4137) => q(mbk),
- q(4138) => q(mbl),
- q(4139) => q(mbm),
- q(4140) => q(mbn),
- q(4141) => q(mbo),
- q(4142) => q(mbp),
- q(4143) => q(mbq),
- q(4144) => q(mbr),
- q(4145) => q(mbs),
- q(4146) => q(mbt),
- q(4147) => q(mbu),
- q(4148) => q(mbv),
- q(4149) => q(mbw),
- q(4150) => q(mbx),
- q(4151) => q(mby),
- q(4152) => q(mbz),
- q(4153) => q(mca),
- q(4154) => q(mcb),
- q(4155) => q(mcc),
- q(4156) => q(mcd),
- q(4157) => q(mce),
- q(4158) => q(mcf),
- q(4159) => q(mcg),
- q(4160) => q(mch),
- q(4161) => q(mci),
- q(4162) => q(mcj),
- q(4163) => q(mck),
- q(4164) => q(mcl),
- q(4165) => q(mcm),
- q(4166) => q(mcn),
- q(4167) => q(mco),
- q(4168) => q(mcp),
- q(4169) => q(mcq),
- q(4170) => q(mcr),
- q(4171) => q(mcs),
- q(4172) => q(mct),
- q(4173) => q(mcu),
- q(4174) => q(mcv),
- q(4175) => q(mcw),
- q(4176) => q(mcx),
- q(4177) => q(mcy),
- q(4178) => q(mcz),
- q(4179) => q(mda),
- q(4180) => q(mdb),
- q(4181) => q(mdc),
- q(4182) => q(mdd),
- q(4183) => q(mde),
- q(4184) => q(mdg),
- q(4185) => q(mdh),
- q(4186) => q(mdi),
- q(4187) => q(mdj),
- q(4188) => q(mdk),
- q(4189) => q(mdl),
- q(4190) => q(mdm),
- q(4191) => q(mdn),
- q(4192) => q(mdp),
- q(4193) => q(mdq),
- q(4194) => q(mds),
- q(4195) => q(mdt),
- q(4196) => q(mdu),
- q(4197) => q(mdv),
- q(4198) => q(mdw),
- q(4199) => q(mdx),
- q(4200) => q(mdy),
- q(4201) => q(mdz),
- q(4202) => q(mea),
- q(4203) => q(meb),
- q(4204) => q(mec),
- q(4205) => q(med),
- q(4206) => q(mee),
- q(4207) => q(mef),
- q(4208) => q(meh),
- q(4209) => q(mei),
- q(4210) => q(mej),
- q(4211) => q(mek),
- q(4212) => q(mel),
- q(4213) => q(mem),
- q(4214) => q(meo),
- q(4215) => q(mep),
- q(4216) => q(meq),
- q(4217) => q(mer),
- q(4218) => q(mes),
- q(4219) => q(met),
- q(4220) => q(meu),
- q(4221) => q(mev),
- q(4222) => q(mew),
- q(4223) => q(mey),
- q(4224) => q(mez),
- q(4225) => q(mfa),
- q(4226) => q(mfb),
- q(4227) => q(mfc),
- q(4228) => q(mfd),
- q(4229) => q(mfe),
- q(4230) => q(mff),
- q(4231) => q(mfg),
- q(4232) => q(mfh),
- q(4233) => q(mfi),
- q(4234) => q(mfj),
- q(4235) => q(mfk),
- q(4236) => q(mfl),
- q(4237) => q(mfm),
- q(4238) => q(mfn),
- q(4239) => q(mfo),
- q(4240) => q(mfp),
- q(4241) => q(mfq),
- q(4242) => q(mfr),
- q(4243) => q(mfs),
- q(4244) => q(mft),
- q(4245) => q(mfu),
- q(4246) => q(mfv),
- q(4247) => q(mfw),
- q(4248) => q(mfx),
- q(4249) => q(mfy),
- q(4250) => q(mfz),
- q(4251) => q(mgb),
- q(4252) => q(mgc),
- q(4253) => q(mgd),
- q(4254) => q(mge),
- q(4255) => q(mgf),
- q(4256) => q(mgg),
- q(4257) => q(mgh),
- q(4258) => q(mgi),
- q(4259) => q(mgj),
- q(4260) => q(mgk),
- q(4261) => q(mgl),
- q(4262) => q(mgm),
- q(4263) => q(mgn),
- q(4264) => q(mgo),
- q(4265) => q(mgp),
- q(4266) => q(mgq),
- q(4267) => q(mgr),
- q(4268) => q(mgs),
- q(4269) => q(mgt),
- q(4270) => q(mgu),
- q(4271) => q(mgv),
- q(4272) => q(mgw),
- q(4273) => q(mgy),
- q(4274) => q(mgz),
- q(4275) => q(mha),
- q(4276) => q(mhb),
- q(4277) => q(mhc),
- q(4278) => q(mhd),
- q(4279) => q(mhe),
- q(4280) => q(mhf),
- q(4281) => q(mhg),
- q(4282) => q(mhi),
- q(4283) => q(mhj),
- q(4284) => q(mhk),
- q(4285) => q(mhl),
- q(4286) => q(mhm),
- q(4287) => q(mhn),
- q(4288) => q(mho),
- q(4289) => q(mhp),
- q(4290) => q(mhq),
- q(4291) => q(mhr),
- q(4292) => q(mhs),
- q(4293) => q(mht),
- q(4294) => q(mhu),
- q(4295) => q(mhw),
- q(4296) => q(mhx),
- q(4297) => q(mhy),
- q(4298) => q(mhz),
- q(4299) => q(mia),
- q(4300) => q(mib),
- q(4301) => q(mid),
- q(4302) => q(mie),
- q(4303) => q(mif),
- q(4304) => q(mig),
- q(4305) => q(mih),
- q(4306) => q(mii),
- q(4307) => q(mij),
- q(4308) => q(mik),
- q(4309) => q(mil),
- q(4310) => q(mim),
- q(4311) => q(mio),
- q(4312) => q(mip),
- q(4313) => q(miq),
- q(4314) => q(mir),
- q(4315) => q(mit),
- q(4316) => q(miu),
- q(4317) => q(miw),
- q(4318) => q(mix),
- q(4319) => q(miy),
- q(4320) => q(miz),
- q(4321) => q(mjc),
- q(4322) => q(mjd),
- q(4323) => q(mje),
- q(4324) => q(mjg),
- q(4325) => q(mjh),
- q(4326) => q(mji),
- q(4327) => q(mjj),
- q(4328) => q(mjk),
- q(4329) => q(mjl),
- q(4330) => q(mjm),
- q(4331) => q(mjn),
- q(4332) => q(mjo),
- q(4333) => q(mjp),
- q(4334) => q(mjq),
- q(4335) => q(mjr),
- q(4336) => q(mjs),
- q(4337) => q(mjt),
- q(4338) => q(mju),
- q(4339) => q(mjv),
- q(4340) => q(mjw),
- q(4341) => q(mjx),
- q(4342) => q(mjy),
- q(4343) => q(mjz),
- q(4344) => q(mka),
- q(4345) => q(mkb),
- q(4346) => q(mkc),
- q(4347) => q(mke),
- q(4348) => q(mkf),
- q(4349) => q(mkg),
- q(4350) => q(mki),
- q(4351) => q(mkj),
- q(4352) => q(mkk),
- q(4353) => q(mkl),
- q(4354) => q(mkm),
- q(4355) => q(mkn),
- q(4356) => q(mko),
- q(4357) => q(mkp),
- q(4358) => q(mkq),
- q(4359) => q(mkr),
- q(4360) => q(mks),
- q(4361) => q(mkt),
- q(4362) => q(mku),
- q(4363) => q(mkv),
- q(4364) => q(mkw),
- q(4365) => q(mkx),
- q(4366) => q(mky),
- q(4367) => q(mkz),
- q(4368) => q(mla),
- q(4369) => q(mlb),
- q(4370) => q(mlc),
- q(4371) => q(mle),
- q(4372) => q(mlf),
- q(4373) => q(mlh),
- q(4374) => q(mli),
- q(4375) => q(mlj),
- q(4376) => q(mlk),
- q(4377) => q(mll),
- q(4378) => q(mlm),
- q(4379) => q(mln),
- q(4380) => q(mlo),
- q(4381) => q(mlp),
- q(4382) => q(mlq),
- q(4383) => q(mlr),
- q(4384) => q(mls),
- q(4385) => q(mlu),
- q(4386) => q(mlv),
- q(4387) => q(mlw),
- q(4388) => q(mlx),
- q(4389) => q(mlz),
- q(4390) => q(mma),
- q(4391) => q(mmb),
- q(4392) => q(mmc),
- q(4393) => q(mmd),
- q(4394) => q(mme),
- q(4395) => q(mmf),
- q(4396) => q(mmg),
- q(4397) => q(mmh),
- q(4398) => q(mmi),
- q(4399) => q(mmj),
- q(4400) => q(mmk),
- q(4401) => q(mml),
- q(4402) => q(mmm),
- q(4403) => q(mmn),
- q(4404) => q(mmo),
- q(4405) => q(mmp),
- q(4406) => q(mmq),
- q(4407) => q(mmr),
- q(4408) => q(mmt),
- q(4409) => q(mmu),
- q(4410) => q(mmv),
- q(4411) => q(mmw),
- q(4412) => q(mmx),
- q(4413) => q(mmy),
- q(4414) => q(mmz),
- q(4415) => q(mna),
- q(4416) => q(mnb),
- q(4417) => q(mnd),
- q(4418) => q(mne),
- q(4419) => q(mnf),
- q(4420) => q(mng),
- q(4421) => q(mnh),
- q(4422) => q(mnj),
- q(4423) => q(mnk),
- q(4424) => q(mnl),
- q(4425) => q(mnm),
- q(4426) => q(mnn),
- q(4427) => q(mnp),
- q(4428) => q(mnq),
- q(4429) => q(mnr),
- q(4430) => q(mns),
- q(4431) => q(mnu),
- q(4432) => q(mnv),
- q(4433) => q(mnw),
- q(4434) => q(mnx),
- q(4435) => q(mny),
- q(4436) => q(mnz),
- q(4437) => q(moa),
- q(4438) => q(moc),
- q(4439) => q(mod),
- q(4440) => q(moe),
- q(4441) => q(mog),
- q(4442) => q(moi),
- q(4443) => q(moj),
- q(4444) => q(mok),
- q(4445) => q(mom),
- q(4446) => q(moo),
- q(4447) => q(mop),
- q(4448) => q(moq),
- q(4449) => q(mor),
- q(4450) => q(mou),
- q(4451) => q(mov),
- q(4452) => q(mow),
- q(4453) => q(mox),
- q(4454) => q(moy),
- q(4455) => q(moz),
- q(4456) => q(mpa),
- q(4457) => q(mpb),
- q(4458) => q(mpc),
- q(4459) => q(mpd),
- q(4460) => q(mpe),
- q(4461) => q(mpg),
- q(4462) => q(mph),
- q(4463) => q(mpi),
- q(4464) => q(mpj),
- q(4465) => q(mpk),
- q(4466) => q(mpl),
- q(4467) => q(mpm),
- q(4468) => q(mpn),
- q(4469) => q(mpo),
- q(4470) => q(mpp),
- q(4471) => q(mpq),
- q(4472) => q(mpr),
- q(4473) => q(mps),
- q(4474) => q(mpt),
- q(4475) => q(mpu),
- q(4476) => q(mpv),
- q(4477) => q(mpw),
- q(4478) => q(mpx),
- q(4479) => q(mpy),
- q(4480) => q(mpz),
- q(4481) => q(mqa),
- q(4482) => q(mqb),
- q(4483) => q(mqc),
- q(4484) => q(mqe),
- q(4485) => q(mqf),
- q(4486) => q(mqg),
- q(4487) => q(mqh),
- q(4488) => q(mqi),
- q(4489) => q(mqj),
- q(4490) => q(mqk),
- q(4491) => q(mql),
- q(4492) => q(mqm),
- q(4493) => q(mqn),
- q(4494) => q(mqo),
- q(4495) => q(mqp),
- q(4496) => q(mqq),
- q(4497) => q(mqr),
- q(4498) => q(mqs),
- q(4499) => q(mqt),
- q(4500) => q(mqu),
- q(4501) => q(mqv),
- q(4502) => q(mqw),
- q(4503) => q(mqx),
- q(4504) => q(mqy),
- q(4505) => q(mqz),
- q(4506) => q(mra),
- q(4507) => q(mrb),
- q(4508) => q(mrc),
- q(4509) => q(mrd),
- q(4510) => q(mre),
- q(4511) => q(mrf),
- q(4512) => q(mrg),
- q(4513) => q(mrh),
- q(4514) => q(mrj),
- q(4515) => q(mrk),
- q(4516) => q(mrl),
- q(4517) => q(mrm),
- q(4518) => q(mrn),
- q(4519) => q(mro),
- q(4520) => q(mrp),
- q(4521) => q(mrq),
- q(4522) => q(mrr),
- q(4523) => q(mrs),
- q(4524) => q(mrt),
- q(4525) => q(mru),
- q(4526) => q(mrv),
- q(4527) => q(mrw),
- q(4528) => q(mrx),
- q(4529) => q(mry),
- q(4530) => q(mrz),
- q(4531) => q(msb),
- q(4532) => q(msc),
- q(4533) => q(msd),
- q(4534) => q(mse),
- q(4535) => q(msf),
- q(4536) => q(msg),
- q(4537) => q(msh),
- q(4538) => q(msi),
- q(4539) => q(msj),
- q(4540) => q(msk),
- q(4541) => q(msl),
- q(4542) => q(msm),
- q(4543) => q(msn),
- q(4544) => q(mso),
- q(4545) => q(msp),
- q(4546) => q(msq),
- q(4547) => q(msr),
- q(4548) => q(mss),
- q(4549) => q(msu),
- q(4550) => q(msv),
- q(4551) => q(msw),
- q(4552) => q(msx),
- q(4553) => q(msy),
- q(4554) => q(msz),
- q(4555) => q(mta),
- q(4556) => q(mtb),
- q(4557) => q(mtc),
- q(4558) => q(mtd),
- q(4559) => q(mte),
- q(4560) => q(mtf),
- q(4561) => q(mtg),
- q(4562) => q(mth),
- q(4563) => q(mti),
- q(4564) => q(mtj),
- q(4565) => q(mtk),
- q(4566) => q(mtl),
- q(4567) => q(mtm),
- q(4568) => q(mtn),
- q(4569) => q(mto),
- q(4570) => q(mtp),
- q(4571) => q(mtq),
- q(4572) => q(mtr),
- q(4573) => q(mts),
- q(4574) => q(mtt),
- q(4575) => q(mtu),
- q(4576) => q(mtv),
- q(4577) => q(mtw),
- q(4578) => q(mtx),
- q(4579) => q(mty),
- q(4580) => q(mua),
- q(4581) => q(mub),
- q(4582) => q(muc),
- q(4583) => q(mud),
- q(4584) => q(mue),
- q(4585) => q(mug),
- q(4586) => q(muh),
- q(4587) => q(mui),
- q(4588) => q(muj),
- q(4589) => q(muk),
- q(4590) => q(mum),
- q(4591) => q(muo),
- q(4592) => q(mup),
- q(4593) => q(muq),
- q(4594) => q(mur),
- q(4595) => q(mut),
- q(4596) => q(muu),
- q(4597) => q(muv),
- q(4598) => q(mux),
- q(4599) => q(muy),
- q(4600) => q(muz),
- q(4601) => q(mva),
- q(4602) => q(mvb),
- q(4603) => q(mvd),
- q(4604) => q(mve),
- q(4605) => q(mvf),
- q(4606) => q(mvg),
- q(4607) => q(mvh),
- q(4608) => q(mvi),
- q(4609) => q(mvk),
- q(4610) => q(mvl),
- q(4611) => q(mvm),
- q(4612) => q(mvn),
- q(4613) => q(mvo),
- q(4614) => q(mvp),
- q(4615) => q(mvq),
- q(4616) => q(mvr),
- q(4617) => q(mvs),
- q(4618) => q(mvt),
- q(4619) => q(mvu),
- q(4620) => q(mvv),
- q(4621) => q(mvw),
- q(4622) => q(mvx),
- q(4623) => q(mvy),
- q(4624) => q(mvz),
- q(4625) => q(mwa),
- q(4626) => q(mwb),
- q(4627) => q(mwc),
- q(4628) => q(mwe),
- q(4629) => q(mwf),
- q(4630) => q(mwg),
- q(4631) => q(mwh),
- q(4632) => q(mwi),
- q(4633) => q(mwk),
- q(4634) => q(mwm),
- q(4635) => q(mwn),
- q(4636) => q(mwo),
- q(4637) => q(mwp),
- q(4638) => q(mwq),
- q(4639) => q(mws),
- q(4640) => q(mwt),
- q(4641) => q(mwu),
- q(4642) => q(mwv),
- q(4643) => q(mww),
- q(4644) => q(mwx),
- q(4645) => q(mwy),
- q(4646) => q(mwz),
- q(4647) => q(mxa),
- q(4648) => q(mxb),
- q(4649) => q(mxc),
- q(4650) => q(mxd),
- q(4651) => q(mxe),
- q(4652) => q(mxf),
- q(4653) => q(mxg),
- q(4654) => q(mxh),
- q(4655) => q(mxi),
- q(4656) => q(mxj),
- q(4657) => q(mxk),
- q(4658) => q(mxl),
- q(4659) => q(mxm),
- q(4660) => q(mxn),
- q(4661) => q(mxo),
- q(4662) => q(mxp),
- q(4663) => q(mxq),
- q(4664) => q(mxr),
- q(4665) => q(mxs),
- q(4666) => q(mxt),
- q(4667) => q(mxu),
- q(4668) => q(mxv),
- q(4669) => q(mxw),
- q(4670) => q(mxx),
- q(4671) => q(mxy),
- q(4672) => q(mxz),
- q(4673) => q(myb),
- q(4674) => q(myc),
- q(4675) => q(myd),
- q(4676) => q(mye),
- q(4677) => q(myf),
- q(4678) => q(myg),
- q(4679) => q(myh),
- q(4680) => q(myi),
- q(4681) => q(myj),
- q(4682) => q(myk),
- q(4683) => q(myl),
- q(4684) => q(mym),
- q(4685) => q(myo),
- q(4686) => q(myp),
- q(4687) => q(myr),
- q(4688) => q(mys),
- q(4689) => q(myu),
- q(4690) => q(myw),
- q(4691) => q(myx),
- q(4692) => q(myy),
- q(4693) => q(myz),
- q(4694) => q(mza),
- q(4695) => q(mzb),
- q(4696) => q(mzc),
- q(4697) => q(mzd),
- q(4698) => q(mze),
- q(4699) => q(mzg),
- q(4700) => q(mzh),
- q(4701) => q(mzi),
- q(4702) => q(mzj),
- q(4703) => q(mzk),
- q(4704) => q(mzl),
- q(4705) => q(mzm),
- q(4706) => q(mzn),
- q(4707) => q(mzo),
- q(4708) => q(mzp),
- q(4709) => q(mzq),
- q(4710) => q(mzr),
- q(4711) => q(mzs),
- q(4712) => q(mzt),
- q(4713) => q(mzu),
- q(4714) => q(mzv),
- q(4715) => q(mzw),
- q(4716) => q(mzx),
- q(4717) => q(mzy),
- q(4718) => q(mzz),
- q(4719) => q(naa),
- q(4720) => q(nab),
- q(4721) => q(nac),
- q(4722) => q(nad),
- q(4723) => q(nae),
- q(4724) => q(naf),
- q(4725) => q(nag),
- q(4726) => q(naj),
- q(4727) => q(nak),
- q(4728) => q(nal),
- q(4729) => q(nam),
- q(4730) => q(nan),
- q(4731) => q(nao),
- q(4732) => q(naq),
- q(4733) => q(nar),
- q(4734) => q(nas),
- q(4735) => q(nat),
- q(4736) => q(naw),
- q(4737) => q(nax),
- q(4738) => q(nay),
- q(4739) => q(naz),
- q(4740) => q(nba),
- q(4741) => q(nbb),
- q(4742) => q(nbc),
- q(4743) => q(nbd),
- q(4744) => q(nbe),
- q(4745) => q(nbg),
- q(4746) => q(nbh),
- q(4747) => q(nbi),
- q(4748) => q(nbj),
- q(4749) => q(nbk),
- q(4750) => q(nbm),
- q(4751) => q(nbn),
- q(4752) => q(nbo),
- q(4753) => q(nbp),
- q(4754) => q(nbq),
- q(4755) => q(nbr),
- q(4756) => q(nbs),
- q(4757) => q(nbt),
- q(4758) => q(nbu),
- q(4759) => q(nbv),
- q(4760) => q(nbw),
- q(4761) => q(nby),
- q(4762) => q(nca),
- q(4763) => q(ncb),
- q(4764) => q(ncc),
- q(4765) => q(ncd),
- q(4766) => q(nce),
- q(4767) => q(ncf),
- q(4768) => q(ncg),
- q(4769) => q(nch),
- q(4770) => q(nci),
- q(4771) => q(ncj),
- q(4772) => q(nck),
- q(4773) => q(ncl),
- q(4774) => q(ncm),
- q(4775) => q(ncn),
- q(4776) => q(nco),
- q(4777) => q(ncp),
- q(4778) => q(ncr),
- q(4779) => q(ncs),
- q(4780) => q(nct),
- q(4781) => q(ncu),
- q(4782) => q(ncx),
- q(4783) => q(ncz),
- q(4784) => q(nda),
- q(4785) => q(ndb),
- q(4786) => q(ndc),
- q(4787) => q(ndd),
- q(4788) => q(ndf),
- q(4789) => q(ndg),
- q(4790) => q(ndh),
- q(4791) => q(ndi),
- q(4792) => q(ndj),
- q(4793) => q(ndk),
- q(4794) => q(ndl),
- q(4795) => q(ndm),
- q(4796) => q(ndn),
- q(4797) => q(ndp),
- q(4798) => q(ndq),
- q(4799) => q(ndr),
- q(4800) => q(ndt),
- q(4801) => q(ndu),
- q(4802) => q(ndv),
- q(4803) => q(ndw),
- q(4804) => q(ndx),
- q(4805) => q(ndy),
- q(4806) => q(ndz),
- q(4807) => q(nea),
- q(4808) => q(neb),
- q(4809) => q(nec),
- q(4810) => q(ned),
- q(4811) => q(nee),
- q(4812) => q(nef),
- q(4813) => q(neg),
- q(4814) => q(neh),
- q(4815) => q(nei),
- q(4816) => q(nej),
- q(4817) => q(nek),
- q(4818) => q(nem),
- q(4819) => q(nen),
- q(4820) => q(neo),
- q(4821) => q(neq),
- q(4822) => q(ner),
- q(4823) => q(nes),
- q(4824) => q(net),
- q(4825) => q(neu),
- q(4826) => q(nev),
- q(4827) => q(nex),
- q(4828) => q(ney),
- q(4829) => q(nez),
- q(4830) => q(nfa),
- q(4831) => q(nfd),
- q(4832) => q(nfl),
- q(4833) => q(nfr),
- q(4834) => q(nfu),
- q(4835) => q(nga),
- q(4836) => q(ngb),
- q(4837) => q(ngc),
- q(4838) => q(ngd),
- q(4839) => q(nge),
- q(4840) => q(ngg),
- q(4841) => q(ngh),
- q(4842) => q(ngi),
- q(4843) => q(ngj),
- q(4844) => q(ngk),
- q(4845) => q(ngl),
- q(4846) => q(ngm),
- q(4847) => q(ngn),
- q(4848) => q(ngo),
- q(4849) => q(ngp),
- q(4850) => q(ngq),
- q(4851) => q(ngr),
- q(4852) => q(ngs),
- q(4853) => q(ngt),
- q(4854) => q(ngu),
- q(4855) => q(ngv),
- q(4856) => q(ngw),
- q(4857) => q(ngx),
- q(4858) => q(ngy),
- q(4859) => q(ngz),
- q(4860) => q(nha),
- q(4861) => q(nhb),
- q(4862) => q(nhc),
- q(4863) => q(nhd),
- q(4864) => q(nhe),
- q(4865) => q(nhf),
- q(4866) => q(nhg),
- q(4867) => q(nhh),
- q(4868) => q(nhi),
- q(4869) => q(nhk),
- q(4870) => q(nhm),
- q(4871) => q(nhn),
- q(4872) => q(nho),
- q(4873) => q(nhp),
- q(4874) => q(nhq),
- q(4875) => q(nhr),
- q(4876) => q(nht),
- q(4877) => q(nhu),
- q(4878) => q(nhv),
- q(4879) => q(nhw),
- q(4880) => q(nhx),
- q(4881) => q(nhy),
- q(4882) => q(nhz),
- q(4883) => q(nib),
- q(4884) => q(nid),
- q(4885) => q(nie),
- q(4886) => q(nif),
- q(4887) => q(nig),
- q(4888) => q(nih),
- q(4889) => q(nii),
- q(4890) => q(nij),
- q(4891) => q(nik),
- q(4892) => q(nil),
- q(4893) => q(nim),
- q(4894) => q(nin),
- q(4895) => q(nio),
- q(4896) => q(niq),
- q(4897) => q(nir),
- q(4898) => q(nis),
- q(4899) => q(nit),
- q(4900) => q(niv),
- q(4901) => q(niw),
- q(4902) => q(nix),
- q(4903) => q(niy),
- q(4904) => q(niz),
- q(4905) => q(nja),
- q(4906) => q(njb),
- q(4907) => q(njd),
- q(4908) => q(njh),
- q(4909) => q(nji),
- q(4910) => q(njj),
- q(4911) => q(njl),
- q(4912) => q(njm),
- q(4913) => q(njn),
- q(4914) => q(njo),
- q(4915) => q(njr),
- q(4916) => q(njs),
- q(4917) => q(njt),
- q(4918) => q(nju),
- q(4919) => q(njx),
- q(4920) => q(njy),
- q(4921) => q(njz),
- q(4922) => q(nka),
- q(4923) => q(nkb),
- q(4924) => q(nkc),
- q(4925) => q(nkd),
- q(4926) => q(nke),
- q(4927) => q(nkf),
- q(4928) => q(nkg),
- q(4929) => q(nkh),
- q(4930) => q(nki),
- q(4931) => q(nkj),
- q(4932) => q(nkk),
- q(4933) => q(nkm),
- q(4934) => q(nkn),
- q(4935) => q(nko),
- q(4936) => q(nkp),
- q(4937) => q(nkq),
- q(4938) => q(nkr),
- q(4939) => q(nks),
- q(4940) => q(nkt),
- q(4941) => q(nku),
- q(4942) => q(nkv),
- q(4943) => q(nkw),
- q(4944) => q(nkx),
- q(4945) => q(nkz),
- q(4946) => q(nla),
- q(4947) => q(nlc),
- q(4948) => q(nle),
- q(4949) => q(nlg),
- q(4950) => q(nli),
- q(4951) => q(nlj),
- q(4952) => q(nlk),
- q(4953) => q(nll),
- q(4954) => q(nlo),
- q(4955) => q(nlq),
- q(4956) => q(nlu),
- q(4957) => q(nlv),
- q(4958) => q(nlw),
- q(4959) => q(nlx),
- q(4960) => q(nly),
- q(4961) => q(nlz),
- q(4962) => q(nma),
- q(4963) => q(nmb),
- q(4964) => q(nmc),
- q(4965) => q(nmd),
- q(4966) => q(nme),
- q(4967) => q(nmf),
- q(4968) => q(nmg),
- q(4969) => q(nmh),
- q(4970) => q(nmi),
- q(4971) => q(nmj),
- q(4972) => q(nmk),
- q(4973) => q(nml),
- q(4974) => q(nmm),
- q(4975) => q(nmn),
- q(4976) => q(nmo),
- q(4977) => q(nmp),
- q(4978) => q(nmq),
- q(4979) => q(nmr),
- q(4980) => q(nms),
- q(4981) => q(nmt),
- q(4982) => q(nmu),
- q(4983) => q(nmv),
- q(4984) => q(nmw),
- q(4985) => q(nmx),
- q(4986) => q(nmy),
- q(4987) => q(nmz),
- q(4988) => q(nna),
- q(4989) => q(nnb),
- q(4990) => q(nnc),
- q(4991) => q(nnd),
- q(4992) => q(nne),
- q(4993) => q(nnf),
- q(4994) => q(nng),
- q(4995) => q(nnh),
- q(4996) => q(nni),
- q(4997) => q(nnj),
- q(4998) => q(nnk),
- q(4999) => q(nnl),
- q(5000) => q(nnm),
- q(5001) => q(nnn),
- q(5002) => q(nnp),
- q(5003) => q(nnq),
- q(5004) => q(nnr),
- q(5005) => q(nns),
- q(5006) => q(nnt),
- q(5007) => q(nnu),
- q(5008) => q(nnv),
- q(5009) => q(nnw),
- q(5010) => q(nny),
- q(5011) => q(nnz),
- q(5012) => q(noa),
- q(5013) => q(noc),
- q(5014) => q(nod),
- q(5015) => q(noe),
- q(5016) => q(nof),
- q(5017) => q(noh),
- q(5018) => q(noi),
- q(5019) => q(noj),
- q(5020) => q(nok),
- q(5021) => q(nol),
- q(5022) => q(nom),
- q(5023) => q(nop),
- q(5024) => q(noq),
- q(5025) => q(nos),
- q(5026) => q(not),
- q(5027) => q(nou),
- q(5028) => q(nov),
- q(5029) => q(now),
- q(5030) => q(noy),
- q(5031) => q(noz),
- q(5032) => q(npa),
- q(5033) => q(npb),
- q(5034) => q(npg),
- q(5035) => q(nph),
- q(5036) => q(npi),
- q(5037) => q(npl),
- q(5038) => q(npn),
- q(5039) => q(npo),
- q(5040) => q(nps),
- q(5041) => q(npu),
- q(5042) => q(npy),
- q(5043) => q(nqg),
- q(5044) => q(nqk),
- q(5045) => q(nqm),
- q(5046) => q(nqn),
- q(5047) => q(nqq),
- q(5048) => q(nqy),
- q(5049) => q(nra),
- q(5050) => q(nrb),
- q(5051) => q(nrc),
- q(5052) => q(nre),
- q(5053) => q(nrf),
- q(5054) => q(nrg),
- q(5055) => q(nri),
- q(5056) => q(nrk),
- q(5057) => q(nrl),
- q(5058) => q(nrm),
- q(5059) => q(nrn),
- q(5060) => q(nrp),
- q(5061) => q(nrr),
- q(5062) => q(nrt),
- q(5063) => q(nru),
- q(5064) => q(nrx),
- q(5065) => q(nrz),
- q(5066) => q(nsa),
- q(5067) => q(nsc),
- q(5068) => q(nsd),
- q(5069) => q(nse),
- q(5070) => q(nsf),
- q(5071) => q(nsg),
- q(5072) => q(nsh),
- q(5073) => q(nsi),
- q(5074) => q(nsk),
- q(5075) => q(nsl),
- q(5076) => q(nsm),
- q(5077) => q(nsn),
- q(5078) => q(nsp),
- q(5079) => q(nsq),
- q(5080) => q(nsr),
- q(5081) => q(nss),
- q(5082) => q(nst),
- q(5083) => q(nsu),
- q(5084) => q(nsv),
- q(5085) => q(nsw),
- q(5086) => q(nsx),
- q(5087) => q(nsy),
- q(5088) => q(nsz),
- q(5089) => q(nte),
- q(5090) => q(ntg),
- q(5091) => q(nti),
- q(5092) => q(ntj),
- q(5093) => q(ntk),
- q(5094) => q(ntm),
- q(5095) => q(nto),
- q(5096) => q(ntp),
- q(5097) => q(ntr),
- q(5098) => q(nts),
- q(5099) => q(ntu),
- q(5100) => q(ntw),
- q(5101) => q(ntx),
- q(5102) => q(nty),
- q(5103) => q(ntz),
- q(5104) => q(nua),
- q(5105) => q(nuc),
- q(5106) => q(nud),
- q(5107) => q(nue),
- q(5108) => q(nuf),
- q(5109) => q(nug),
- q(5110) => q(nuh),
- q(5111) => q(nui),
- q(5112) => q(nuj),
- q(5113) => q(nuk),
- q(5114) => q(nul),
- q(5115) => q(num),
- q(5116) => q(nun),
- q(5117) => q(nuo),
- q(5118) => q(nup),
- q(5119) => q(nuq),
- q(5120) => q(nur),
- q(5121) => q(nus),
- q(5122) => q(nut),
- q(5123) => q(nuu),
- q(5124) => q(nuv),
- q(5125) => q(nuw),
- q(5126) => q(nux),
- q(5127) => q(nuy),
- q(5128) => q(nuz),
- q(5129) => q(nvh),
- q(5130) => q(nvm),
- q(5131) => q(nvo),
- q(5132) => q(nwa),
- q(5133) => q(nwb),
- q(5134) => q(nwe),
- q(5135) => q(nwg),
- q(5136) => q(nwi),
- q(5137) => q(nwm),
- q(5138) => q(nwo),
- q(5139) => q(nwr),
- q(5140) => q(nwx),
- q(5141) => q(nwy),
- q(5142) => q(nxa),
- q(5143) => q(nxd),
- q(5144) => q(nxe),
- q(5145) => q(nxg),
- q(5146) => q(nxi),
- q(5147) => q(nxk),
- q(5148) => q(nxl),
- q(5149) => q(nxm),
- q(5150) => q(nxn),
- q(5151) => q(nxo),
- q(5152) => q(nxq),
- q(5153) => q(nxr),
- q(5154) => q(nxu),
- q(5155) => q(nxx),
- q(5156) => q(nyb),
- q(5157) => q(nyc),
- q(5158) => q(nyd),
- q(5159) => q(nye),
- q(5160) => q(nyf),
- q(5161) => q(nyg),
- q(5162) => q(nyh),
- q(5163) => q(nyi),
- q(5164) => q(nyj),
- q(5165) => q(nyk),
- q(5166) => q(nyl),
- q(5167) => q(nyp),
- q(5168) => q(nyq),
- q(5169) => q(nyr),
- q(5170) => q(nys),
- q(5171) => q(nyt),
- q(5172) => q(nyu),
- q(5173) => q(nyv),
- q(5174) => q(nyw),
- q(5175) => q(nyx),
- q(5176) => q(nyy),
- q(5177) => q(nza),
- q(5178) => q(nzb),
- q(5179) => q(nzk),
- q(5180) => q(nzm),
- q(5181) => q(nzs),
- q(5182) => q(nzu),
- q(5183) => q(nzy),
- q(5184) => q(nzz),
- q(5185) => q(oaa),
- q(5186) => q(oac),
- q(5187) => q(oar),
- q(5188) => q(oav),
- q(5189) => q(obi),
- q(5190) => q(obk),
- q(5191) => q(obl),
- q(5192) => q(obm),
- q(5193) => q(obo),
- q(5194) => q(obr),
- q(5195) => q(obt),
- q(5196) => q(obu),
- q(5197) => q(oca),
- q(5198) => q(och),
- q(5199) => q(oco),
- q(5200) => q(ocu),
- q(5201) => q(oda),
- q(5202) => q(odk),
- q(5203) => q(odt),
- q(5204) => q(odu),
- q(5205) => q(ofo),
- q(5206) => q(ofs),
- q(5207) => q(ofu),
- q(5208) => q(ogb),
- q(5209) => q(ogc),
- q(5210) => q(oge),
- q(5211) => q(ogg),
- q(5212) => q(ogo),
- q(5213) => q(ogu),
- q(5214) => q(oht),
- q(5215) => q(ohu),
- q(5216) => q(oia),
- q(5217) => q(oin),
- q(5218) => q(ojb),
- q(5219) => q(ojc),
- q(5220) => q(ojg),
- q(5221) => q(ojp),
- q(5222) => q(ojs),
- q(5223) => q(ojv),
- q(5224) => q(ojw),
- q(5225) => q(oka),
- q(5226) => q(okb),
- q(5227) => q(okd),
- q(5228) => q(oke),
- q(5229) => q(okg),
- q(5230) => q(okh),
- q(5231) => q(oki),
- q(5232) => q(okj),
- q(5233) => q(okk),
- q(5234) => q(okl),
- q(5235) => q(okm),
- q(5236) => q(okn),
- q(5237) => q(oko),
- q(5238) => q(okr),
- q(5239) => q(oks),
- q(5240) => q(oku),
- q(5241) => q(okv),
- q(5242) => q(okx),
- q(5243) => q(ola),
- q(5244) => q(old),
- q(5245) => q(ole),
- q(5246) => q(olk),
- q(5247) => q(olm),
- q(5248) => q(olo),
- q(5249) => q(olr),
- q(5250) => q(olt),
- q(5251) => q(oma),
- q(5252) => q(omb),
- q(5253) => q(omc),
- q(5254) => q(ome),
- q(5255) => q(omg),
- q(5256) => q(omi),
- q(5257) => q(omk),
- q(5258) => q(oml),
- q(5259) => q(omn),
- q(5260) => q(omo),
- q(5261) => q(omp),
- q(5262) => q(omr),
- q(5263) => q(omt),
- q(5264) => q(omu),
- q(5265) => q(omw),
- q(5266) => q(omx),
- q(5267) => q(ona),
- q(5268) => q(onb),
- q(5269) => q(one),
- q(5270) => q(ong),
- q(5271) => q(oni),
- q(5272) => q(onj),
- q(5273) => q(onk),
- q(5274) => q(onn),
- q(5275) => q(ono),
- q(5276) => q(onp),
- q(5277) => q(onr),
- q(5278) => q(ons),
- q(5279) => q(ont),
- q(5280) => q(onu),
- q(5281) => q(onw),
- q(5282) => q(onx),
- q(5283) => q(ood),
- q(5284) => q(oog),
- q(5285) => q(oon),
- q(5286) => q(oor),
- q(5287) => q(oos),
- q(5288) => q(opa),
- q(5289) => q(opk),
- q(5290) => q(opm),
- q(5291) => q(opo),
- q(5292) => q(opt),
- q(5293) => q(opy),
- q(5294) => q(ora),
- q(5295) => q(orc),
- q(5296) => q(ore),
- q(5297) => q(org),
- q(5298) => q(orh),
- q(5299) => q(orn),
- q(5300) => q(oro),
- q(5301) => q(orr),
- q(5302) => q(ors),
- q(5303) => q(ort),
- q(5304) => q(oru),
- q(5305) => q(orv),
- q(5306) => q(orw),
- q(5307) => q(orx),
- q(5308) => q(ory),
- q(5309) => q(orz),
- q(5310) => q(osc),
- q(5311) => q(osi),
- q(5312) => q(oso),
- q(5313) => q(osp),
- q(5314) => q(ost),
- q(5315) => q(osu),
- q(5316) => q(osx),
- q(5317) => q(otb),
- q(5318) => q(otd),
- q(5319) => q(ote),
- q(5320) => q(oti),
- q(5321) => q(otk),
- q(5322) => q(otl),
- q(5323) => q(otm),
- q(5324) => q(otn),
- q(5325) => q(otq),
- q(5326) => q(otr),
- q(5327) => q(ots),
- q(5328) => q(ott),
- q(5329) => q(otu),
- q(5330) => q(otw),
- q(5331) => q(otx),
- q(5332) => q(oty),
- q(5333) => q(otz),
- q(5334) => q(oua),
- q(5335) => q(oub),
- q(5336) => q(oue),
- q(5337) => q(oui),
- q(5338) => q(oum),
- q(5339) => q(owi),
- q(5340) => q(owl),
- q(5341) => q(oyb),
- q(5342) => q(oyd),
- q(5343) => q(oym),
- q(5344) => q(oyy),
- q(5345) => q(ozm),
- q(5346) => q(pab),
- q(5347) => q(pac),
- q(5348) => q(pad),
- q(5349) => q(pae),
- q(5350) => q(paf),
- q(5351) => q(pah),
- q(5352) => q(pai),
- q(5353) => q(pak),
- q(5354) => q(pao),
- q(5355) => q(paq),
- q(5356) => q(par),
- q(5357) => q(pas),
- q(5358) => q(pat),
- q(5359) => q(pav),
- q(5360) => q(paw),
- q(5361) => q(pax),
- q(5362) => q(pay),
- q(5363) => q(paz),
- q(5364) => q(pbb),
- q(5365) => q(pbc),
- q(5366) => q(pbe),
- q(5367) => q(pbf),
- q(5368) => q(pbg),
- q(5369) => q(pbh),
- q(5370) => q(pbi),
- q(5371) => q(pbl),
- q(5372) => q(pbn),
- q(5373) => q(pbo),
- q(5374) => q(pbp),
- q(5375) => q(pbr),
- q(5376) => q(pbs),
- q(5377) => q(pbt),
- q(5378) => q(pbu),
- q(5379) => q(pbv),
- q(5380) => q(pby),
- q(5381) => q(pca),
- q(5382) => q(pcb),
- q(5383) => q(pcc),
- q(5384) => q(pcd),
- q(5385) => q(pce),
- q(5386) => q(pcf),
- q(5387) => q(pcg),
- q(5388) => q(pch),
- q(5389) => q(pci),
- q(5390) => q(pcj),
- q(5391) => q(pck),
- q(5392) => q(pcl),
- q(5393) => q(pcm),
- q(5394) => q(pcn),
- q(5395) => q(pcp),
- q(5396) => q(pcw),
- q(5397) => q(pda),
- q(5398) => q(pdc),
- q(5399) => q(pdi),
- q(5400) => q(pdn),
- q(5401) => q(pdo),
- q(5402) => q(pdt),
- q(5403) => q(pdu),
- q(5404) => q(pea),
- q(5405) => q(peb),
- q(5406) => q(ped),
- q(5407) => q(pee),
- q(5408) => q(pef),
- q(5409) => q(peg),
- q(5410) => q(peh),
- q(5411) => q(pei),
- q(5412) => q(pej),
- q(5413) => q(pek),
- q(5414) => q(pel),
- q(5415) => q(pem),
- q(5416) => q(pep),
- q(5417) => q(peq),
- q(5418) => q(pes),
- q(5419) => q(pev),
- q(5420) => q(pex),
- q(5421) => q(pey),
- q(5422) => q(pez),
- q(5423) => q(pfa),
- q(5424) => q(pfe),
- q(5425) => q(pfl),
- q(5426) => q(pga),
- q(5427) => q(pgd),
- q(5428) => q(pgg),
- q(5429) => q(pgi),
- q(5430) => q(pgk),
- q(5431) => q(pgl),
- q(5432) => q(pgn),
- q(5433) => q(pgs),
- q(5434) => q(pgu),
- q(5435) => q(pha),
- q(5436) => q(phd),
- q(5437) => q(phg),
- q(5438) => q(phh),
- q(5439) => q(phk),
- q(5440) => q(phl),
- q(5441) => q(phm),
- q(5442) => q(pho),
- q(5443) => q(phq),
- q(5444) => q(phr),
- q(5445) => q(pht),
- q(5446) => q(phu),
- q(5447) => q(phv),
- q(5448) => q(phw),
- q(5449) => q(pia),
- q(5450) => q(pib),
- q(5451) => q(pic),
- q(5452) => q(pid),
- q(5453) => q(pie),
- q(5454) => q(pif),
- q(5455) => q(pig),
- q(5456) => q(pih),
- q(5457) => q(pii),
- q(5458) => q(pij),
- q(5459) => q(pil),
- q(5460) => q(pim),
- q(5461) => q(pin),
- q(5462) => q(pio),
- q(5463) => q(pip),
- q(5464) => q(pir),
- q(5465) => q(pis),
- q(5466) => q(pit),
- q(5467) => q(piu),
- q(5468) => q(piv),
- q(5469) => q(piw),
- q(5470) => q(pix),
- q(5471) => q(piy),
- q(5472) => q(piz),
- q(5473) => q(pjt),
- q(5474) => q(pka),
- q(5475) => q(pkb),
- q(5476) => q(pkc),
- q(5477) => q(pkg),
- q(5478) => q(pkh),
- q(5479) => q(pkn),
- q(5480) => q(pko),
- q(5481) => q(pkp),
- q(5482) => q(pkr),
- q(5483) => q(pks),
- q(5484) => q(pkt),
- q(5485) => q(pku),
- q(5486) => q(pla),
- q(5487) => q(plb),
- q(5488) => q(plc),
- q(5489) => q(pld),
- q(5490) => q(ple),
- q(5491) => q(plg),
- q(5492) => q(plh),
- q(5493) => q(plj),
- q(5494) => q(plk),
- q(5495) => q(pll),
- q(5496) => q(pln),
- q(5497) => q(plo),
- q(5498) => q(plp),
- q(5499) => q(plq),
- q(5500) => q(plr),
- q(5501) => q(pls),
- q(5502) => q(plt),
- q(5503) => q(plu),
- q(5504) => q(plv),
- q(5505) => q(plw),
- q(5506) => q(ply),
- q(5507) => q(plz),
- q(5508) => q(pma),
- q(5509) => q(pmb),
- q(5510) => q(pmc),
- q(5511) => q(pmd),
- q(5512) => q(pme),
- q(5513) => q(pmf),
- q(5514) => q(pmh),
- q(5515) => q(pmi),
- q(5516) => q(pmj),
- q(5517) => q(pmk),
- q(5518) => q(pml),
- q(5519) => q(pmm),
- q(5520) => q(pmn),
- q(5521) => q(pmo),
- q(5522) => q(pmq),
- q(5523) => q(pmr),
- q(5524) => q(pms),
- q(5525) => q(pmt),
- q(5526) => q(pmw),
- q(5527) => q(pmx),
- q(5528) => q(pmy),
- q(5529) => q(pmz),
- q(5530) => q(pna),
- q(5531) => q(pnb),
- q(5532) => q(pnc),
- q(5533) => q(pne),
- q(5534) => q(png),
- q(5535) => q(pnh),
- q(5536) => q(pni),
- q(5537) => q(pnj),
- q(5538) => q(pnk),
- q(5539) => q(pnl),
- q(5540) => q(pnm),
- q(5541) => q(pnn),
- q(5542) => q(pno),
- q(5543) => q(pnp),
- q(5544) => q(pnq),
- q(5545) => q(pnr),
- q(5546) => q(pns),
- q(5547) => q(pnt),
- q(5548) => q(pnu),
- q(5549) => q(pnv),
- q(5550) => q(pnw),
- q(5551) => q(pnx),
- q(5552) => q(pny),
- q(5553) => q(pnz),
- q(5554) => q(poc),
- q(5555) => q(pod),
- q(5556) => q(poe),
- q(5557) => q(pof),
- q(5558) => q(pog),
- q(5559) => q(poh),
- q(5560) => q(poi),
- q(5561) => q(pok),
- q(5562) => q(pom),
- q(5563) => q(poo),
- q(5564) => q(pop),
- q(5565) => q(poq),
- q(5566) => q(pos),
- q(5567) => q(pot),
- q(5568) => q(pov),
- q(5569) => q(pow),
- q(5570) => q(pox),
- q(5571) => q(poy),
- q(5572) => q(ppa),
- q(5573) => q(ppe),
- q(5574) => q(ppi),
- q(5575) => q(ppk),
- q(5576) => q(ppl),
- q(5577) => q(ppm),
- q(5578) => q(ppn),
- q(5579) => q(ppo),
- q(5580) => q(ppp),
- q(5581) => q(ppq),
- q(5582) => q(pps),
- q(5583) => q(ppt),
- q(5584) => q(ppu),
- q(5585) => q(pqa),
- q(5586) => q(pqm),
- q(5587) => q(prb),
- q(5588) => q(prc),
- q(5589) => q(prd),
- q(5590) => q(pre),
- q(5591) => q(prf),
- q(5592) => q(prg),
- q(5593) => q(prh),
- q(5594) => q(pri),
- q(5595) => q(prk),
- q(5596) => q(prl),
- q(5597) => q(prm),
- q(5598) => q(prn),
- q(5599) => q(prp),
- q(5600) => q(prq),
- q(5601) => q(prr),
- q(5602) => q(prs),
- q(5603) => q(prt),
- q(5604) => q(pru),
- q(5605) => q(prw),
- q(5606) => q(prx),
- q(5607) => q(pry),
- q(5608) => q(prz),
- q(5609) => q(psa),
- q(5610) => q(psc),
- q(5611) => q(psd),
- q(5612) => q(pse),
- q(5613) => q(psg),
- q(5614) => q(psh),
- q(5615) => q(psi),
- q(5616) => q(psl),
- q(5617) => q(psm),
- q(5618) => q(psn),
- q(5619) => q(pso),
- q(5620) => q(psp),
- q(5621) => q(psq),
- q(5622) => q(psr),
- q(5623) => q(pss),
- q(5624) => q(pst),
- q(5625) => q(psu),
- q(5626) => q(psw),
- q(5627) => q(psy),
- q(5628) => q(pta),
- q(5629) => q(pth),
- q(5630) => q(pti),
- q(5631) => q(ptn),
- q(5632) => q(pto),
- q(5633) => q(ptp),
- q(5634) => q(ptq),
- q(5635) => q(ptr),
- q(5636) => q(ptt),
- q(5637) => q(ptu),
- q(5638) => q(ptv),
- q(5639) => q(ptw),
- q(5640) => q(pty),
- q(5641) => q(pua),
- q(5642) => q(pub),
- q(5643) => q(puc),
- q(5644) => q(pud),
- q(5645) => q(pue),
- q(5646) => q(puf),
- q(5647) => q(pug),
- q(5648) => q(pui),
- q(5649) => q(puj),
- q(5650) => q(puk),
- q(5651) => q(pum),
- q(5652) => q(puo),
- q(5653) => q(pup),
- q(5654) => q(puq),
- q(5655) => q(pur),
- q(5656) => q(put),
- q(5657) => q(puu),
- q(5658) => q(puw),
- q(5659) => q(pux),
- q(5660) => q(puy),
- q(5661) => q(pwa),
- q(5662) => q(pwb),
- q(5663) => q(pwg),
- q(5664) => q(pwi),
- q(5665) => q(pwm),
- q(5666) => q(pwn),
- q(5667) => q(pwo),
- q(5668) => q(pwr),
- q(5669) => q(pww),
- q(5670) => q(pxm),
- q(5671) => q(pye),
- q(5672) => q(pym),
- q(5673) => q(pyn),
- q(5674) => q(pys),
- q(5675) => q(pyu),
- q(5676) => q(pyx),
- q(5677) => q(pyy),
- q(5678) => q(pzn),
- q(5679) => q(qua),
- q(5680) => q(qub),
- q(5681) => q(quc),
- q(5682) => q(qud),
- q(5683) => q(quf),
- q(5684) => q(qug),
- q(5685) => q(quh),
- q(5686) => q(qui),
- q(5687) => q(quk),
- q(5688) => q(qul),
- q(5689) => q(qum),
- q(5690) => q(qun),
- q(5691) => q(qup),
- q(5692) => q(quq),
- q(5693) => q(qur),
- q(5694) => q(qus),
- q(5695) => q(quv),
- q(5696) => q(quw),
- q(5697) => q(qux),
- q(5698) => q(quy),
- q(5699) => q(quz),
- q(5700) => q(qva),
- q(5701) => q(qvc),
- q(5702) => q(qve),
- q(5703) => q(qvh),
- q(5704) => q(qvi),
- q(5705) => q(qvj),
- q(5706) => q(qvl),
- q(5707) => q(qvm),
- q(5708) => q(qvn),
- q(5709) => q(qvo),
- q(5710) => q(qvp),
- q(5711) => q(qvs),
- q(5712) => q(qvw),
- q(5713) => q(qvy),
- q(5714) => q(qvz),
- q(5715) => q(qwa),
- q(5716) => q(qwc),
- q(5717) => q(qwh),
- q(5718) => q(qwm),
- q(5719) => q(qws),
- q(5720) => q(qwt),
- q(5721) => q(qxa),
- q(5722) => q(qxc),
- q(5723) => q(qxh),
- q(5724) => q(qxl),
- q(5725) => q(qxn),
- q(5726) => q(qxo),
- q(5727) => q(qxp),
- q(5728) => q(qxq),
- q(5729) => q(qxr),
- q(5730) => q(qxs),
- q(5731) => q(qxt),
- q(5732) => q(qxu),
- q(5733) => q(qxw),
- q(5734) => q(qya),
- q(5735) => q(qyp),
- q(5736) => q(raa),
- q(5737) => q(rab),
- q(5738) => q(rac),
- q(5739) => q(rad),
- q(5740) => q(raf),
- q(5741) => q(rag),
- q(5742) => q(rah),
- q(5743) => q(rai),
- q(5744) => q(rak),
- q(5745) => q(ral),
- q(5746) => q(ram),
- q(5747) => q(ran),
- q(5748) => q(rao),
- q(5749) => q(raq),
- q(5750) => q(ras),
- q(5751) => q(rat),
- q(5752) => q(rau),
- q(5753) => q(rav),
- q(5754) => q(raw),
- q(5755) => q(rax),
- q(5756) => q(ray),
- q(5757) => q(raz),
- q(5758) => q(rbb),
- q(5759) => q(rbk),
- q(5760) => q(rbl),
- q(5761) => q(rbp),
- q(5762) => q(rcf),
- q(5763) => q(rdb),
- q(5764) => q(rea),
- q(5765) => q(reb),
- q(5766) => q(ree),
- q(5767) => q(reg),
- q(5768) => q(rei),
- q(5769) => q(rej),
- q(5770) => q(rel),
- q(5771) => q(rem),
- q(5772) => q(ren),
- q(5773) => q(rer),
- q(5774) => q(res),
- q(5775) => q(ret),
- q(5776) => q(rey),
- q(5777) => q(rga),
- q(5778) => q(rge),
- q(5779) => q(rgk),
- q(5780) => q(rgn),
- q(5781) => q(rgr),
- q(5782) => q(rgs),
- q(5783) => q(rgu),
- q(5784) => q(rhg),
- q(5785) => q(rhp),
- q(5786) => q(ria),
- q(5787) => q(rie),
- q(5788) => q(rif),
- q(5789) => q(ril),
- q(5790) => q(rim),
- q(5791) => q(rin),
- q(5792) => q(rir),
- q(5793) => q(rit),
- q(5794) => q(riu),
- q(5795) => q(rjg),
- q(5796) => q(rji),
- q(5797) => q(rjs),
- q(5798) => q(rka),
- q(5799) => q(rkb),
- q(5800) => q(rkh),
- q(5801) => q(rki),
- q(5802) => q(rkm),
- q(5803) => q(rkt),
- q(5804) => q(rkw),
- q(5805) => q(rma),
- q(5806) => q(rmb),
- q(5807) => q(rmc),
- q(5808) => q(rmd),
- q(5809) => q(rme),
- q(5810) => q(rmf),
- q(5811) => q(rmg),
- q(5812) => q(rmh),
- q(5813) => q(rmi),
- q(5814) => q(rmk),
- q(5815) => q(rml),
- q(5816) => q(rmm),
- q(5817) => q(rmn),
- q(5818) => q(rmo),
- q(5819) => q(rmp),
- q(5820) => q(rmq),
- q(5821) => q(rms),
- q(5822) => q(rmt),
- q(5823) => q(rmu),
- q(5824) => q(rmv),
- q(5825) => q(rmw),
- q(5826) => q(rmx),
- q(5827) => q(rmy),
- q(5828) => q(rmz),
- q(5829) => q(rna),
- q(5830) => q(rnd),
- q(5831) => q(rng),
- q(5832) => q(rnl),
- q(5833) => q(rnn),
- q(5834) => q(rnp),
- q(5835) => q(rnr),
- q(5836) => q(rnw),
- q(5837) => q(rob),
- q(5838) => q(roc),
- q(5839) => q(rod),
- q(5840) => q(roe),
- q(5841) => q(rof),
- q(5842) => q(rog),
- q(5843) => q(rol),
- q(5844) => q(roo),
- q(5845) => q(rop),
- q(5846) => q(ror),
- q(5847) => q(rou),
- q(5848) => q(row),
- q(5849) => q(rpn),
- q(5850) => q(rpt),
- q(5851) => q(rri),
- q(5852) => q(rro),
- q(5853) => q(rrt),
- q(5854) => q(rsb),
- q(5855) => q(rsi),
- q(5856) => q(rsl),
- q(5857) => q(rtc),
- q(5858) => q(rth),
- q(5859) => q(rtm),
- q(5860) => q(rts),
- q(5861) => q(rtw),
- q(5862) => q(rub),
- q(5863) => q(ruc),
- q(5864) => q(rue),
- q(5865) => q(ruf),
- q(5866) => q(rug),
- q(5867) => q(ruh),
- q(5868) => q(rui),
- q(5869) => q(ruk),
- q(5870) => q(ruo),
- q(5871) => q(ruq),
- q(5872) => q(rut),
- q(5873) => q(ruu),
- q(5874) => q(ruy),
- q(5875) => q(ruz),
- q(5876) => q(rwa),
- q(5877) => q(rwk),
- q(5878) => q(rwm),
- q(5879) => q(rwo),
- q(5880) => q(rwr),
- q(5881) => q(rxd),
- q(5882) => q(rxw),
- q(5883) => q(ryn),
- q(5884) => q(rys),
- q(5885) => q(ryu),
- q(5886) => q(saa),
- q(5887) => q(sab),
- q(5888) => q(sac),
- q(5889) => q(sae),
- q(5890) => q(saf),
- q(5891) => q(saj),
- q(5892) => q(sak),
- q(5893) => q(sao),
- q(5894) => q(saq),
- q(5895) => q(sar),
- q(5896) => q(sau),
- q(5897) => q(sav),
- q(5898) => q(saw),
- q(5899) => q(sax),
- q(5900) => q(say),
- q(5901) => q(saz),
- q(5902) => q(sba),
- q(5903) => q(sbb),
- q(5904) => q(sbc),
- q(5905) => q(sbd),
- q(5906) => q(slc),
- q(5907) => q(sbf),
- q(5908) => q(sbg),
- q(5909) => q(sbh),
- q(5910) => q(sbi),
- q(5911) => q(sbj),
- q(5912) => q(sbk),
- q(5913) => q(sbl),
- q(5914) => q(sbm),
- q(5915) => q(sbn),
- q(5916) => q(sbo),
- q(5917) => q(sbp),
- q(5918) => q(sbq),
- q(5919) => q(sbr),
- q(5920) => q(sbs),
- q(5921) => q(sbt),
- q(5922) => q(sbu),
- q(5923) => q(sbv),
- q(5924) => q(sbw),
- q(5925) => q(sbx),
- q(5926) => q(sby),
- q(5927) => q(sbz),
- q(5928) => q(scb),
- q(5929) => q(sce),
- q(5930) => q(scf),
- q(5931) => q(scg),
- q(5932) => q(sch),
- q(5933) => q(sci),
- q(5934) => q(sck),
- q(5935) => q(scl),
- q(5936) => q(scp),
- q(5937) => q(scq),
- q(5938) => q(scs),
- q(5939) => q(scu),
- q(5940) => q(scv),
- q(5941) => q(scw),
- q(5942) => q(scx),
- q(5943) => q(sda),
- q(5944) => q(sdb),
- q(5945) => q(sdc),
- q(5946) => q(sde),
- q(5947) => q(sdf),
- q(5948) => q(sdg),
- q(5949) => q(sdh),
- q(5950) => q(sdj),
- q(5951) => q(sdk),
- q(5952) => q(sdl),
- q(5953) => q(sdm),
- q(5954) => q(sdn),
- q(5955) => q(sdo),
- q(5956) => q(sdp),
- q(5957) => q(sdr),
- q(5958) => q(sds),
- q(5959) => q(sdt),
- q(5960) => q(sdu),
- q(5961) => q(sdx),
- q(5962) => q(sdz),
- q(5963) => q(sea),
- q(5964) => q(seb),
- q(5965) => q(sec),
- q(5966) => q(sed),
- q(5967) => q(see),
- q(5968) => q(sef),
- q(5969) => q(seg),
- q(5970) => q(seh),
- q(5971) => q(sei),
- q(5972) => q(sej),
- q(5973) => q(sek),
- q(5974) => q(sen),
- q(5975) => q(seo),
- q(5976) => q(sep),
- q(5977) => q(seq),
- q(5978) => q(ser),
- q(5979) => q(ses),
- q(5980) => q(set),
- q(5981) => q(seu),
- q(5982) => q(sev),
- q(5983) => q(sew),
- q(5984) => q(sey),
- q(5985) => q(sez),
- q(5986) => q(sfb),
- q(5987) => q(sfe),
- q(5988) => q(sfm),
- q(5989) => q(sfs),
- q(5990) => q(sfw),
- q(5991) => q(sgb),
- q(5992) => q(sgc),
- q(5993) => q(sgd),
- q(5994) => q(sge),
- q(5995) => q(sgg),
- q(5996) => q(sgh),
- q(5997) => q(sgi),
- q(5998) => q(sgj),
- q(5999) => q(sgk),
- q(6000) => q(sgm),
- q(6001) => q(sgp),
- q(6002) => q(sgr),
- q(6003) => q(sgs),
- q(6004) => q(sgt),
- q(6005) => q(sgu),
- q(6006) => q(sgw),
- q(6007) => q(sgx),
- q(6008) => q(sgy),
- q(6009) => q(sgz),
- q(6010) => q(sha),
- q(6011) => q(shb),
- q(6012) => q(shc),
- q(6013) => q(shd),
- q(6014) => q(she),
- q(6015) => q(shg),
- q(6016) => q(shh),
- q(6017) => q(shi),
- q(6018) => q(shj),
- q(6019) => q(shk),
- q(6020) => q(shl),
- q(6021) => q(shm),
- q(6022) => q(sho),
- q(6023) => q(shp),
- q(6024) => q(shq),
- q(6025) => q(shr),
- q(6026) => q(shs),
- q(6027) => q(sht),
- q(6028) => q(shu),
- q(6029) => q(shv),
- q(6030) => q(shw),
- q(6031) => q(shx),
- q(6032) => q(shy),
- q(6033) => q(shz),
- q(6034) => q(sia),
- q(6035) => q(sib),
- q(6036) => q(sie),
- q(6037) => q(sif),
- q(6038) => q(sig),
- q(6039) => q(sih),
- q(6040) => q(sii),
- q(6041) => q(sij),
- q(6042) => q(sik),
- q(6043) => q(sil),
- q(6044) => q(sim),
- q(6045) => q(sip),
- q(6046) => q(siq),
- q(6047) => q(sir),
- q(6048) => q(sis),
- q(6049) => q(siu),
- q(6050) => q(siv),
- q(6051) => q(siw),
- q(6052) => q(six),
- q(6053) => q(siy),
- q(6054) => q(siz),
- q(6055) => q(sja),
- q(6056) => q(sjb),
- q(6057) => q(sjd),
- q(6058) => q(sje),
- q(6059) => q(sjg),
- q(6060) => q(sjk),
- q(6061) => q(sjl),
- q(6062) => q(sjm),
- q(6063) => q(sjn),
- q(6064) => q(sjo),
- q(6065) => q(sjp),
- q(6066) => q(sjr),
- q(6067) => q(sjs),
- q(6068) => q(sjt),
- q(6069) => q(sju),
- q(6070) => q(sjw),
- q(6071) => q(ska),
- q(6072) => q(skb),
- q(6073) => q(skc),
- q(6074) => q(skd),
- q(6075) => q(ske),
- q(6076) => q(skf),
- q(6077) => q(skg),
- q(6078) => q(skh),
- q(6079) => q(ski),
- q(6080) => q(skj),
- q(6081) => q(skk),
- q(6082) => q(skm),
- q(6083) => q(skn),
- q(6084) => q(sko),
- q(6085) => q(skp),
- q(6086) => q(skq),
- q(6087) => q(skr),
- q(6088) => q(sks),
- q(6089) => q(skt),
- q(6090) => q(sku),
- q(6091) => q(skv),
- q(6092) => q(skw),
- q(6093) => q(skx),
- q(6094) => q(sky),
- q(6095) => q(skz),
- q(6096) => q(sld),
- q(6097) => q(sle),
- q(6098) => q(slf),
- q(6099) => q(slg),
- q(6100) => q(slh),
- q(6101) => q(sli),
- q(6102) => q(slj),
- q(6103) => q(sll),
- q(6104) => q(slm),
- q(6105) => q(sln),
- q(6106) => q(slp),
- q(6107) => q(slq),
- q(6108) => q(slr),
- q(6109) => q(sls),
- q(6110) => q(slt),
- q(6111) => q(slu),
- q(6112) => q(slw),
- q(6113) => q(slx),
- q(6114) => q(sly),
- q(6115) => q(slz),
- q(6116) => q(smb),
- q(6117) => q(smc),
- q(6118) => q(smd),
- q(6119) => q(smf),
- q(6120) => q(smg),
- q(6121) => q(smh),
- q(6122) => q(smk),
- q(6123) => q(sml),
- q(6124) => q(smm),
- q(6125) => q(smp),
- q(6126) => q(smq),
- q(6127) => q(smr),
- q(6128) => q(smt),
- q(6129) => q(smu),
- q(6130) => q(smv),
- q(6131) => q(smw),
- q(6132) => q(smx),
- q(6133) => q(smy),
- q(6134) => q(smz),
- q(6135) => q(snb),
- q(6136) => q(snc),
- q(6137) => q(sne),
- q(6138) => q(snf),
- q(6139) => q(sng),
- q(6140) => q(snh),
- q(6141) => q(sni),
- q(6142) => q(snj),
- q(6143) => q(snl),
- q(6144) => q(snm),
- q(6145) => q(snn),
- q(6146) => q(sno),
- q(6147) => q(snp),
- q(6148) => q(snq),
- q(6149) => q(snr),
- q(6150) => q(sns),
- q(6151) => q(snu),
- q(6152) => q(snv),
- q(6153) => q(snw),
- q(6154) => q(snx),
- q(6155) => q(sny),
- q(6156) => q(snz),
- q(6157) => q(soa),
- q(6158) => q(sob),
- q(6159) => q(soc),
- q(6160) => q(sod),
- q(6161) => q(soe),
- q(6162) => q(soh),
- q(6163) => q(soi),
- q(6164) => q(soj),
- q(6165) => q(sok),
- q(6166) => q(sol),
- q(6167) => q(soo),
- q(6168) => q(sop),
- q(6169) => q(soq),
- q(6170) => q(sor),
- q(6171) => q(sos),
- q(6172) => q(sou),
- q(6173) => q(sov),
- q(6174) => q(sow),
- q(6175) => q(sox),
- q(6176) => q(soy),
- q(6177) => q(soz),
- q(6178) => q(spb),
- q(6179) => q(spc),
- q(6180) => q(spd),
- q(6181) => q(spe),
- q(6182) => q(spg),
- q(6183) => q(spi),
- q(6184) => q(spk),
- q(6185) => q(spl),
- q(6186) => q(spm),
- q(6187) => q(spn),
- q(6188) => q(spo),
- q(6189) => q(spp),
- q(6190) => q(spq),
- q(6191) => q(spr),
- q(6192) => q(sps),
- q(6193) => q(spt),
- q(6194) => q(spu),
- q(6195) => q(spv),
- q(6196) => q(spx),
- q(6197) => q(spy),
- q(6198) => q(sqa),
- q(6199) => q(sqh),
- q(6200) => q(sqk),
- q(6201) => q(sqm),
- q(6202) => q(sqn),
- q(6203) => q(sqo),
- q(6204) => q(sqq),
- q(6205) => q(sqr),
- q(6206) => q(sqs),
- q(6207) => q(sqt),
- q(6208) => q(squ),
- q(6209) => q(sra),
- q(6210) => q(srb),
- q(6211) => q(src),
- q(6212) => q(sre),
- q(6213) => q(srf),
- q(6214) => q(srg),
- q(6215) => q(srh),
- q(6216) => q(sri),
- q(6217) => q(srk),
- q(6218) => q(srl),
- q(6219) => q(srm),
- q(6220) => q(sro),
- q(6221) => q(srq),
- q(6222) => q(srs),
- q(6223) => q(srt),
- q(6224) => q(sru),
- q(6225) => q(srv),
- q(6226) => q(srw),
- q(6227) => q(srx),
- q(6228) => q(sry),
- q(6229) => q(srz),
- q(6230) => q(ssb),
- q(6231) => q(ssc),
- q(6232) => q(ssd),
- q(6233) => q(sse),
- q(6234) => q(ssf),
- q(6235) => q(ssg),
- q(6236) => q(ssh),
- q(6237) => q(ssi),
- q(6238) => q(ssj),
- q(6239) => q(ssk),
- q(6240) => q(ssl),
- q(6241) => q(ssm),
- q(6242) => q(ssn),
- q(6243) => q(sso),
- q(6244) => q(ssp),
- q(6245) => q(ssq),
- q(6246) => q(ssr),
- q(6247) => q(sss),
- q(6248) => q(sst),
- q(6249) => q(ssu),
- q(6250) => q(ssv),
- q(6251) => q(ssx),
- q(6252) => q(ssy),
- q(6253) => q(ssz),
- q(6254) => q(sta),
- q(6255) => q(stb),
- q(6256) => q(std),
- q(6257) => q(ste),
- q(6258) => q(stf),
- q(6259) => q(stg),
- q(6260) => q(sth),
- q(6261) => q(sti),
- q(6262) => q(stj),
- q(6263) => q(stk),
- q(6264) => q(stl),
- q(6265) => q(stm),
- q(6266) => q(stn),
- q(6267) => q(sto),
- q(6268) => q(stp),
- q(6269) => q(stq),
- q(6270) => q(str),
- q(6271) => q(sts),
- q(6272) => q(stt),
- q(6273) => q(stu),
- q(6274) => q(stv),
- q(6275) => q(stw),
- q(6276) => q(sty),
- q(6277) => q(sua),
- q(6278) => q(sub),
- q(6279) => q(suc),
- q(6280) => q(sue),
- q(6281) => q(sug),
- q(6282) => q(sui),
- q(6283) => q(suj),
- q(6284) => q(suq),
- q(6285) => q(sur),
- q(6286) => q(sut),
- q(6287) => q(suv),
- q(6288) => q(suw),
- q(6289) => q(suy),
- q(6290) => q(suz),
- q(6291) => q(sva),
- q(6292) => q(svb),
- q(6293) => q(svc),
- q(6294) => q(sve),
- q(6295) => q(svk),
- q(6296) => q(svm),
- q(6297) => q(svr),
- q(6298) => q(svs),
- q(6299) => q(svx),
- q(6300) => q(swb),
- q(6301) => q(swc),
- q(6302) => q(swf),
- q(6303) => q(swg),
- q(6304) => q(swh),
- q(6305) => q(swi),
- q(6306) => q(swj),
- q(6307) => q(swk),
- q(6308) => q(swl),
- q(6309) => q(swm),
- q(6310) => q(swn),
- q(6311) => q(swo),
- q(6312) => q(swp),
- q(6313) => q(swq),
- q(6314) => q(swr),
- q(6315) => q(sws),
- q(6316) => q(swt),
- q(6317) => q(swu),
- q(6318) => q(swv),
- q(6319) => q(sww),
- q(6320) => q(swx),
- q(6321) => q(swy),
- q(6322) => q(sxb),
- q(6323) => q(sxc),
- q(6324) => q(sxe),
- q(6325) => q(sxg),
- q(6326) => q(sxk),
- q(6327) => q(sxl),
- q(6328) => q(sxm),
- q(6329) => q(sxn),
- q(6330) => q(sxo),
- q(6331) => q(sxr),
- q(6332) => q(sxs),
- q(6333) => q(sxu),
- q(6334) => q(sxw),
- q(6335) => q(sya),
- q(6336) => q(syb),
- q(6337) => q(syi),
- q(6338) => q(syk),
- q(6339) => q(syl),
- q(6340) => q(sym),
- q(6341) => q(syn),
- q(6342) => q(syo),
- q(6343) => q(sys),
- q(6344) => q(syw),
- q(6345) => q(syx),
- q(6346) => q(syy),
- q(6347) => q(sza),
- q(6348) => q(szb),
- q(6349) => q(szc),
- q(6350) => q(szd),
- q(6351) => q(sze),
- q(6352) => q(szg),
- q(6353) => q(szl),
- q(6354) => q(szn),
- q(6355) => q(szp),
- q(6356) => q(szv),
- q(6357) => q(szw),
- q(6358) => q(taa),
- q(6359) => q(tab),
- q(6360) => q(tac),
- q(6361) => q(tad),
- q(6362) => q(tae),
- q(6363) => q(taf),
- q(6364) => q(tag),
- q(6365) => q(taj),
- q(6366) => q(tak),
- q(6367) => q(tal),
- q(6368) => q(tan),
- q(6369) => q(tao),
- q(6370) => q(tap),
- q(6371) => q(taq),
- q(6372) => q(tar),
- q(6373) => q(tas),
- q(6374) => q(tau),
- q(6375) => q(tav),
- q(6376) => q(taw),
- q(6377) => q(tax),
- q(6378) => q(tay),
- q(6379) => q(taz),
- q(6380) => q(tba),
- q(6381) => q(tbb),
- q(6382) => q(tbc),
- q(6383) => q(tbd),
- q(6384) => q(tbe),
- q(6385) => q(tbf),
- q(6386) => q(tbg),
- q(6387) => q(tbh),
- q(6388) => q(tbi),
- q(6389) => q(tbj),
- q(6390) => q(tbk),
- q(6391) => q(tbl),
- q(6392) => q(tbm),
- q(6393) => q(tbn),
- q(6394) => q(tbo),
- q(6395) => q(tbp),
- q(6396) => q(tbr),
- q(6397) => q(tbs),
- q(6398) => q(tbt),
- q(6399) => q(tbu),
- q(6400) => q(tbv),
- q(6401) => q(tbw),
- q(6402) => q(tbx),
- q(6403) => q(tby),
- q(6404) => q(tbz),
- q(6405) => q(tca),
- q(6406) => q(tcb),
- q(6407) => q(tcc),
- q(6408) => q(tcd),
- q(6409) => q(tce),
- q(6410) => q(tcf),
- q(6411) => q(tcg),
- q(6412) => q(tch),
- q(6413) => q(wbf),
- q(6414) => q(tck),
- q(6415) => q(tcl),
- q(6416) => q(tcm),
- q(6417) => q(tcn),
- q(6418) => q(tco),
- q(6419) => q(tcp),
- q(6420) => q(tcq),
- q(6421) => q(tcs),
- q(6422) => q(tct),
- q(6423) => q(tcu),
- q(6424) => q(tcw),
- q(6425) => q(tcx),
- q(6426) => q(tcy),
- q(6427) => q(tcz),
- q(6428) => q(tda),
- q(6429) => q(tdb),
- q(6430) => q(tdc),
- q(6431) => q(tdd),
- q(6432) => q(tde),
- q(6433) => q(tdf),
- q(6434) => q(tdg),
- q(6435) => q(tdh),
- q(6436) => q(tdi),
- q(6437) => q(tdj),
- q(6438) => q(tdk),
- q(6439) => q(tdl),
- q(6440) => q(tdn),
- q(6441) => q(tdo),
- q(6442) => q(tdq),
- q(6443) => q(tdr),
- q(6444) => q(tds),
- q(6445) => q(tdt),
- q(6446) => q(tdu),
- q(6447) => q(tdv),
- q(6448) => q(tdx),
- q(6449) => q(tdy),
- q(6450) => q(tea),
- q(6451) => q(teb),
- q(6452) => q(tec),
- q(6453) => q(ted),
- q(6454) => q(tee),
- q(6455) => q(tef),
- q(6456) => q(teg),
- q(6457) => q(teh),
- q(6458) => q(tei),
- q(6459) => q(tek),
- q(6460) => q(ten),
- q(6461) => q(teo),
- q(6462) => q(tep),
- q(6463) => q(teq),
- q(6464) => q(tes),
- q(6465) => q(teu),
- q(6466) => q(tev),
- q(6467) => q(tew),
- q(6468) => q(tex),
- q(6469) => q(tey),
- q(6470) => q(tfi),
- q(6471) => q(tfn),
- q(6472) => q(tfo),
- q(6473) => q(tfr),
- q(6474) => q(tft),
- q(6475) => q(tga),
- q(6476) => q(tgb),
- q(6477) => q(tgc),
- q(6478) => q(tgd),
- q(6479) => q(tge),
- q(6480) => q(tgf),
- q(6481) => q(tgh),
- q(6482) => q(tgi),
- q(6483) => q(tgj),
- q(6484) => q(tgn),
- q(6485) => q(tgo),
- q(6486) => q(tgp),
- q(6487) => q(tgq),
- q(6488) => q(tgr),
- q(6489) => q(tgs),
- q(6490) => q(tgt),
- q(6491) => q(tgu),
- q(6492) => q(tgv),
- q(6493) => q(tgw),
- q(6494) => q(tgx),
- q(6495) => q(tgy),
- q(6496) => q(tgz),
- q(6497) => q(thc),
- q(6498) => q(thd),
- q(6499) => q(the),
- q(6500) => q(thf),
- q(6501) => q(thh),
- q(6502) => q(thi),
- q(6503) => q(thk),
- q(6504) => q(thl),
- q(6505) => q(thm),
- q(6506) => q(thn),
- q(6507) => q(thp),
- q(6508) => q(thq),
- q(6509) => q(thr),
- q(6510) => q(ths),
- q(6511) => q(tht),
- q(6512) => q(thu),
- q(6513) => q(thv),
- q(6514) => q(thw),
- q(6515) => q(thy),
- q(6516) => q(thz),
- q(6517) => q(tia),
- q(6518) => q(tic),
- q(6519) => q(tid),
- q(6520) => q(tif),
- q(6521) => q(tih),
- q(6522) => q(tii),
- q(6523) => q(tij),
- q(6524) => q(tik),
- q(6525) => q(til),
- q(6526) => q(tim),
- q(6527) => q(tin),
- q(6528) => q(tio),
- q(6529) => q(tip),
- q(6530) => q(tiq),
- q(6531) => q(tis),
- q(6532) => q(tit),
- q(6533) => q(tiu),
- q(6534) => q(tiw),
- q(6535) => q(tix),
- q(6536) => q(tiy),
- q(6537) => q(tiz),
- q(6538) => q(tja),
- q(6539) => q(tjg),
- q(6540) => q(tji),
- q(6541) => q(tjl),
- q(6542) => q(tjm),
- q(6543) => q(tjn),
- q(6544) => q(tjo),
- q(6545) => q(tjs),
- q(6546) => q(tju),
- q(6547) => q(tjw),
- q(6548) => q(tka),
- q(6549) => q(tkb),
- q(6550) => q(tkd),
- q(6551) => q(tke),
- q(6552) => q(tkf),
- q(6553) => q(tkg),
- q(6554) => q(tkm),
- q(6555) => q(tkn),
- q(6556) => q(tkp),
- q(6557) => q(tkq),
- q(6558) => q(tkr),
- q(6559) => q(tks),
- q(6560) => q(tkt),
- q(6561) => q(tku),
- q(6562) => q(tkv),
- q(6563) => q(tkw),
- q(6564) => q(tkx),
- q(6565) => q(tkz),
- q(6566) => q(tla),
- q(6567) => q(tlb),
- q(6568) => q(tlc),
- q(6569) => q(tld),
- q(6570) => q(tlf),
- q(6571) => q(tlg),
- q(6572) => q(tlj),
- q(6573) => q(tlk),
- q(6574) => q(tll),
- q(6575) => q(tlm),
- q(6576) => q(tln),
- q(6577) => q(tlo),
- q(6578) => q(tlp),
- q(6579) => q(tlq),
- q(6580) => q(tlr),
- q(6581) => q(tls),
- q(6582) => q(tlt),
- q(6583) => q(tlu),
- q(6584) => q(tlv),
- q(6585) => q(tlx),
- q(6586) => q(tly),
- q(6587) => q(tma),
- q(6588) => q(tmb),
- q(6589) => q(tmc),
- q(6590) => q(tmd),
- q(6591) => q(tme),
- q(6592) => q(tmf),
- q(6593) => q(tmg),
- q(6594) => q(tmi),
- q(6595) => q(tmj),
- q(6596) => q(tmk),
- q(6597) => q(tml),
- q(6598) => q(tmm),
- q(6599) => q(tmn),
- q(6600) => q(tmo),
- q(6601) => q(tmp),
- q(6602) => q(tmq),
- q(6603) => q(tmr),
- q(6604) => q(tms),
- q(6605) => q(tmt),
- q(6606) => q(tmu),
- q(6607) => q(tmv),
- q(6608) => q(tmw),
- q(6609) => q(tmy),
- q(6610) => q(tmz),
- q(6611) => q(tna),
- q(6612) => q(tnb),
- q(6613) => q(tnc),
- q(6614) => q(tnd),
- q(6615) => q(tne),
- q(6616) => q(tng),
- q(6617) => q(tnh),
- q(6618) => q(tni),
- q(6619) => q(tnk),
- q(6620) => q(tnl),
- q(6621) => q(tnm),
- q(6622) => q(tnn),
- q(6623) => q(tno),
- q(6624) => q(tnp),
- q(6625) => q(tnq),
- q(6626) => q(tnr),
- q(6627) => q(tns),
- q(6628) => q(tnt),
- q(6629) => q(tnu),
- q(6630) => q(tnv),
- q(6631) => q(tnw),
- q(6632) => q(tnx),
- q(6633) => q(tny),
- q(6634) => q(tnz),
- q(6635) => q(tob),
- q(6636) => q(toc),
- q(6637) => q(tod),
- q(6638) => q(toe),
- q(6639) => q(tof),
- q(6640) => q(toh),
- q(6641) => q(toi),
- q(6642) => q(toj),
- q(6643) => q(tol),
- q(6644) => q(tom),
- q(6645) => q(too),
- q(6646) => q(top),
- q(6647) => q(toq),
- q(6648) => q(tor),
- q(6649) => q(tos),
- q(6650) => q(tou),
- q(6651) => q(tov),
- q(6652) => q(tow),
- q(6653) => q(tox),
- q(6654) => q(toy),
- q(6655) => q(toz),
- q(6656) => q(tpa),
- q(6657) => q(tpc),
- q(6658) => q(tpe),
- q(6659) => q(tpf),
- q(6660) => q(tpg),
- q(6661) => q(tpj),
- q(6662) => q(tpk),
- q(6663) => q(tpl),
- q(6664) => q(tpm),
- q(6665) => q(tpn),
- q(6666) => q(tpo),
- q(6667) => q(tpp),
- q(6668) => q(tpq),
- q(6669) => q(tpr),
- q(6670) => q(tpt),
- q(6671) => q(tpu),
- q(6672) => q(tpv),
- q(6673) => q(tpw),
- q(6674) => q(tpx),
- q(6675) => q(tpy),
- q(6676) => q(tpz),
- q(6677) => q(tqb),
- q(6678) => q(tql),
- q(6679) => q(tqm),
- q(6680) => q(tqn),
- q(6681) => q(tqo),
- q(6682) => q(tqp),
- q(6683) => q(tqq),
- q(6684) => q(tqr),
- q(6685) => q(tqt),
- q(6686) => q(tqu),
- q(6687) => q(tqw),
- q(6688) => q(tra),
- q(6689) => q(trb),
- q(6690) => q(trc),
- q(6691) => q(trd),
- q(6692) => q(tre),
- q(6693) => q(trf),
- q(6694) => q(trg),
- q(6695) => q(trh),
- q(6696) => q(tri),
- q(6697) => q(trj),
- q(6698) => q(trl),
- q(6699) => q(trm),
- q(6700) => q(trn),
- q(6701) => q(tro),
- q(6702) => q(trp),
- q(6703) => q(trq),
- q(6704) => q(trr),
- q(6705) => q(trs),
- q(6706) => q(trt),
- q(6707) => q(tru),
- q(6708) => q(trv),
- q(6709) => q(trw),
- q(6710) => q(trx),
- q(6711) => q(try),
- q(6712) => q(trz),
- q(6713) => q(tsa),
- q(6714) => q(tsb),
- q(6715) => q(tsc),
- q(6716) => q(tsd),
- q(6717) => q(tse),
- q(6718) => q(tsg),
- q(6719) => q(tsh),
- q(6720) => q(tsj),
- q(6721) => q(tsk),
- q(6722) => q(tsl),
- q(6723) => q(tsm),
- q(6724) => q(tsp),
- q(6725) => q(tsq),
- q(6726) => q(tsr),
- q(6727) => q(tss),
- q(6728) => q(tst),
- q(6729) => q(tsu),
- q(6730) => q(tsv),
- q(6731) => q(tsw),
- q(6732) => q(tsx),
- q(6733) => q(tsy),
- q(6734) => q(tsz),
- q(6735) => q(tta),
- q(6736) => q(ttb),
- q(6737) => q(ttc),
- q(6738) => q(ttd),
- q(6739) => q(tte),
- q(6740) => q(ttf),
- q(6741) => q(ttg),
- q(6742) => q(tth),
- q(6743) => q(tti),
- q(6744) => q(ttj),
- q(6745) => q(ttk),
- q(6746) => q(ttl),
- q(6747) => q(ttm),
- q(6748) => q(ttn),
- q(6749) => q(tto),
- q(6750) => q(ttp),
- q(6751) => q(ttq),
- q(6752) => q(ttr),
- q(6753) => q(tts),
- q(6754) => q(ttt),
- q(6755) => q(ttu),
- q(6756) => q(ttv),
- q(6757) => q(ttw),
- q(6758) => q(tty),
- q(6759) => q(ttz),
- q(6760) => q(tua),
- q(6761) => q(tub),
- q(6762) => q(tuc),
- q(6763) => q(tud),
- q(6764) => q(tue),
- q(6765) => q(tuf),
- q(6766) => q(tug),
- q(6767) => q(tuh),
- q(6768) => q(tui),
- q(6769) => q(tuj),
- q(6770) => q(tul),
- q(6771) => q(tun),
- q(6772) => q(tuo),
- q(6773) => q(tuq),
- q(6774) => q(tus),
- q(6775) => q(tuu),
- q(6776) => q(tuv),
- q(6777) => q(tux),
- q(6778) => q(tuy),
- q(6779) => q(tuz),
- q(6780) => q(tva),
- q(6781) => q(tvd),
- q(6782) => q(tve),
- q(6783) => q(tvk),
- q(6784) => q(tvm),
- q(6785) => q(tvn),
- q(6786) => q(tvo),
- q(6787) => q(tvs),
- q(6788) => q(tvt),
- q(6789) => q(tvu),
- q(6790) => q(tvw),
- q(6791) => q(tvy),
- q(6792) => q(twa),
- q(6793) => q(twb),
- q(6794) => q(twc),
- q(6795) => q(twd),
- q(6796) => q(twe),
- q(6797) => q(twf),
- q(6798) => q(twg),
- q(6799) => q(twh),
- q(6800) => q(twl),
- q(6801) => q(twm),
- q(6802) => q(twn),
- q(6803) => q(two),
- q(6804) => q(twp),
- q(6805) => q(twq),
- q(6806) => q(twr),
- q(6807) => q(twt),
- q(6808) => q(twu),
- q(6809) => q(tww),
- q(6810) => q(twx),
- q(6811) => q(twy),
- q(6812) => q(txa),
- q(6813) => q(txb),
- q(6814) => q(txc),
- q(6815) => q(txe),
- q(6816) => q(txg),
- q(6817) => q(txh),
- q(6818) => q(txi),
- q(6819) => q(txj),
- q(6820) => q(txm),
- q(6821) => q(txn),
- q(6822) => q(txo),
- q(6823) => q(txq),
- q(6824) => q(txr),
- q(6825) => q(txs),
- q(6826) => q(txt),
- q(6827) => q(txu),
- q(6828) => q(txx),
- q(6829) => q(txy),
- q(6830) => q(tya),
- q(6831) => q(tye),
- q(6832) => q(tyh),
- q(6833) => q(tyi),
- q(6834) => q(tyj),
- q(6835) => q(tyl),
- q(6836) => q(tyn),
- q(6837) => q(typ),
- q(6838) => q(tyr),
- q(6839) => q(tys),
- q(6840) => q(tyt),
- q(6841) => q(tyu),
- q(6842) => q(tyx),
- q(6843) => q(tyz),
- q(6844) => q(tza),
- q(6845) => q(tzh),
- q(6846) => q(tzj),
- q(6847) => q(tzl),
- q(6848) => q(tzm),
- q(6849) => q(tzn),
- q(6850) => q(tzo),
- q(6851) => q(tzx),
- q(6852) => q(uam),
- q(6853) => q(uan),
- q(6854) => q(uar),
- q(6855) => q(uba),
- q(6856) => q(ubi),
- q(6857) => q(ubl),
- q(6858) => q(ubr),
- q(6859) => q(ubu),
- q(6860) => q(uby),
- q(6861) => q(uda),
- q(6862) => q(ude),
- q(6863) => q(udg),
- q(6864) => q(udi),
- q(6865) => q(udj),
- q(6866) => q(udl),
- q(6867) => q(udu),
- q(6868) => q(ues),
- q(6869) => q(ufi),
- q(6870) => q(ugb),
- q(6871) => q(uge),
- q(6872) => q(ugn),
- q(6873) => q(ugo),
- q(6874) => q(ugy),
- q(6875) => q(uha),
- q(6876) => q(uhn),
- q(6877) => q(uis),
- q(6878) => q(uiv),
- q(6879) => q(uji),
- q(6880) => q(uka),
- q(6881) => q(ukg),
- q(6882) => q(ukh),
- q(6883) => q(ukl),
- q(6884) => q(ukp),
- q(6885) => q(ukq),
- q(6886) => q(uks),
- q(6887) => q(uku),
- q(6888) => q(ukw),
- q(6889) => q(uky),
- q(6890) => q(ula),
- q(6891) => q(ulb),
- q(6892) => q(ulc),
- q(6893) => q(ule),
- q(6894) => q(ulf),
- q(6895) => q(uli),
- q(6896) => q(ulk),
- q(6897) => q(ull),
- q(6898) => q(ulm),
- q(6899) => q(uln),
- q(6900) => q(ulu),
- q(6901) => q(ulw),
- q(6902) => q(uma),
- q(6903) => q(umc),
- q(6904) => q(umd),
- q(6905) => q(umg),
- q(6906) => q(umi),
- q(6907) => q(umm),
- q(6908) => q(umn),
- q(6909) => q(umo),
- q(6910) => q(ump),
- q(6911) => q(umr),
- q(6912) => q(ums),
- q(6913) => q(umu),
- q(6914) => q(una),
- q(6915) => q(une),
- q(6916) => q(ung),
- q(6917) => q(unk),
- q(6918) => q(unm),
- q(6919) => q(unn),
- q(6920) => q(unr),
- q(6921) => q(unu),
- q(6922) => q(unx),
- q(6923) => q(unz),
- q(6924) => q(upi),
- q(6925) => q(upv),
- q(6926) => q(ura),
- q(6927) => q(urb),
- q(6928) => q(urc),
- q(6929) => q(ure),
- q(6930) => q(urf),
- q(6931) => q(urg),
- q(6932) => q(urh),
- q(6933) => q(uri),
- q(6934) => q(urk),
- q(6935) => q(url),
- q(6936) => q(urm),
- q(6937) => q(urn),
- q(6938) => q(uro),
- q(6939) => q(urp),
- q(6940) => q(urr),
- q(6941) => q(urt),
- q(6942) => q(uru),
- q(6943) => q(urv),
- q(6944) => q(urw),
- q(6945) => q(urx),
- q(6946) => q(ury),
- q(6947) => q(urz),
- q(6948) => q(usa),
- q(6949) => q(ush),
- q(6950) => q(usi),
- q(6951) => q(usk),
- q(6952) => q(usp),
- q(6953) => q(usu),
- q(6954) => q(uta),
- q(6955) => q(ute),
- q(6956) => q(utp),
- q(6957) => q(utr),
- q(6958) => q(utu),
- q(6959) => q(uum),
- q(6960) => q(uun),
- q(6961) => q(uur),
- q(6962) => q(uuu),
- q(6963) => q(uve),
- q(6964) => q(uvh),
- q(6965) => q(uvl),
- q(6966) => q(uwa),
- q(6967) => q(uya),
- q(6968) => q(uzn),
- q(6969) => q(uzs),
- q(6970) => q(vaa),
- q(6971) => q(vae),
- q(6972) => q(vaf),
- q(6973) => q(vag),
- q(6974) => q(vah),
- q(6975) => q(vaj),
- q(6976) => q(val),
- q(6977) => q(vam),
- q(6978) => q(van),
- q(6979) => q(vao),
- q(6980) => q(vap),
- q(6981) => q(var),
- q(6982) => q(vas),
- q(6983) => q(vau),
- q(6984) => q(vav),
- q(6985) => q(vay),
- q(6986) => q(vbb),
- q(6987) => q(vbk),
- q(6988) => q(vec),
- q(6989) => q(ved),
- q(6990) => q(vel),
- q(6991) => q(vem),
- q(6992) => q(veo),
- q(6993) => q(vep),
- q(6994) => q(ver),
- q(6995) => q(vgr),
- q(6996) => q(vgt),
- q(6997) => q(vic),
- q(6998) => q(vid),
- q(6999) => q(vif),
- q(7000) => q(vig),
- q(7001) => q(vil),
- q(7002) => q(vin),
- q(7003) => q(vis),
- q(7004) => q(vit),
- q(7005) => q(viv),
- q(7006) => q(vka),
- q(7007) => q(vki),
- q(7008) => q(vkj),
- q(7009) => q(vkk),
- q(7010) => q(vkl),
- q(7011) => q(vkm),
- q(7012) => q(vko),
- q(7013) => q(vkp),
- q(7014) => q(vkt),
- q(7015) => q(vku),
- q(7016) => q(vlp),
- q(7017) => q(vls),
- q(7018) => q(vma),
- q(7019) => q(vmb),
- q(7020) => q(vmc),
- q(7021) => q(vmd),
- q(7022) => q(vme),
- q(7023) => q(vmf),
- q(7024) => q(vmg),
- q(7025) => q(vmh),
- q(7026) => q(vmi),
- q(7027) => q(vmj),
- q(7028) => q(vmk),
- q(7029) => q(vml),
- q(7030) => q(vmm),
- q(7031) => q(vmp),
- q(7032) => q(vmq),
- q(7033) => q(vmr),
- q(7034) => q(vms),
- q(7035) => q(vmu),
- q(7036) => q(vmv),
- q(7037) => q(vmw),
- q(7038) => q(vmx),
- q(7039) => q(vmy),
- q(7040) => q(vmz),
- q(7041) => q(vnk),
- q(7042) => q(vnm),
- q(7043) => q(vnp),
- q(7044) => q(vro),
- q(7045) => q(vra),
- q(7046) => q(vrs),
- q(7047) => q(vrt),
- q(7048) => q(vsi),
- q(7049) => q(vsl),
- q(7050) => q(vsv),
- q(7051) => q(vto),
- q(7052) => q(vum),
- q(7053) => q(vun),
- q(7054) => q(vut),
- q(7055) => q(vwa),
- q(7056) => q(waa),
- q(7057) => q(wab),
- q(7058) => q(wac),
- q(7059) => q(wad),
- q(7060) => q(wae),
- q(7061) => q(waf),
- q(7062) => q(wag),
- q(7063) => q(wah),
- q(7064) => q(wai),
- q(7065) => q(waj),
- q(7066) => q(wam),
- q(7067) => q(wan),
- q(7068) => q(wao),
- q(7069) => q(wap),
- q(7070) => q(waq),
- q(7071) => q(wat),
- q(7072) => q(wau),
- q(7073) => q(wav),
- q(7074) => q(waw),
- q(7075) => q(wax),
- q(7076) => q(way),
- q(7077) => q(waz),
- q(7078) => q(wba),
- q(7079) => q(wbb),
- q(7080) => q(wbe),
- q(7081) => q(wbh),
- q(7082) => q(wbi),
- q(7083) => q(wbj),
- q(7084) => q(wbk),
- q(7085) => q(wbl),
- q(7086) => q(wbm),
- q(7087) => q(wbp),
- q(7088) => q(wbq),
- q(7089) => q(wbr),
- q(7090) => q(wbt),
- q(7091) => q(wbv),
- q(7092) => q(wbw),
- q(7093) => q(wca),
- q(7094) => q(wci),
- q(7095) => q(wdd),
- q(7096) => q(wdg),
- q(7097) => q(wdj),
- q(7098) => q(wdk),
- q(7099) => q(wdu),
- q(7100) => q(wdy),
- q(7101) => q(wea),
- q(7102) => q(wec),
- q(7103) => q(wed),
- q(7104) => q(weg),
- q(7105) => q(weh),
- q(7106) => q(wei),
- q(7107) => q(wem),
- q(7108) => q(weo),
- q(7109) => q(wep),
- q(7110) => q(wer),
- q(7111) => q(wes),
- q(7112) => q(wet),
- q(7113) => q(weu),
- q(7114) => q(wew),
- q(7115) => q(wfg),
- q(7116) => q(wga),
- q(7117) => q(wgb),
- q(7118) => q(wgg),
- q(7119) => q(wgi),
- q(7120) => q(wgo),
- q(7121) => q(wgu),
- q(7122) => q(wgy),
- q(7123) => q(wha),
- q(7124) => q(whg),
- q(7125) => q(whk),
- q(7126) => q(whu),
- q(7127) => q(wib),
- q(7128) => q(wic),
- q(7129) => q(wie),
- q(7130) => q(wif),
- q(7131) => q(wig),
- q(7132) => q(wih),
- q(7133) => q(wii),
- q(7134) => q(wij),
- q(7135) => q(wik),
- q(7136) => q(wil),
- q(7137) => q(wim),
- q(7138) => q(win),
- q(7139) => q(wir),
- q(7140) => q(wiu),
- q(7141) => q(wiv),
- q(7142) => q(wiy),
- q(7143) => q(wja),
- q(7144) => q(wji),
- q(7145) => q(wka),
- q(7146) => q(wkb),
- q(7147) => q(wkd),
- q(7148) => q(wkl),
- q(7149) => q(wku),
- q(7150) => q(wkw),
- q(7151) => q(wky),
- q(7152) => q(wla),
- q(7153) => q(wlc),
- q(7154) => q(wle),
- q(7155) => q(wlg),
- q(7156) => q(wli),
- q(7157) => q(wlk),
- q(7158) => q(wll),
- q(7159) => q(wlm),
- q(7160) => q(wlo),
- q(7161) => q(wlr),
- q(7162) => q(wls),
- q(7163) => q(wlu),
- q(7164) => q(wlv),
- q(7165) => q(wlw),
- q(7166) => q(wlx),
- q(7167) => q(wly),
- q(7168) => q(wma),
- q(7169) => q(wmb),
- q(7170) => q(wmc),
- q(7171) => q(wmd),
- q(7172) => q(wme),
- q(7173) => q(wmh),
- q(7174) => q(wmi),
- q(7175) => q(wmm),
- q(7176) => q(wmn),
- q(7177) => q(wmo),
- q(7178) => q(wms),
- q(7179) => q(wmt),
- q(7180) => q(wmw),
- q(7181) => q(wmx),
- q(7182) => q(wnb),
- q(7183) => q(wnc),
- q(7184) => q(wnd),
- q(7185) => q(wne),
- q(7186) => q(wng),
- q(7187) => q(wni),
- q(7188) => q(wnk),
- q(7189) => q(wnm),
- q(7190) => q(wnn),
- q(7191) => q(wno),
- q(7192) => q(wnp),
- q(7193) => q(wnu),
- q(7194) => q(wnw),
- q(7195) => q(wny),
- q(7196) => q(woa),
- q(7197) => q(wob),
- q(7198) => q(woc),
- q(7199) => q(wod),
- q(7200) => q(woe),
- q(7201) => q(wof),
- q(7202) => q(wog),
- q(7203) => q(woi),
- q(7204) => q(wok),
- q(7205) => q(wom),
- q(7206) => q(won),
- q(7207) => q(woo),
- q(7208) => q(wor),
- q(7209) => q(wos),
- q(7210) => q(wow),
- q(7211) => q(woy),
- q(7212) => q(wpc),
- q(7213) => q(wra),
- q(7214) => q(wrb),
- q(7215) => q(wrd),
- q(7216) => q(wrg),
- q(7217) => q(wrh),
- q(7218) => q(wri),
- q(7219) => q(wrk),
- q(7220) => q(wrl),
- q(7221) => q(wrm),
- q(7222) => q(wrn),
- q(7223) => q(wro),
- q(7224) => q(wrp),
- q(7225) => q(wrr),
- q(7226) => q(wrs),
- q(7227) => q(wru),
- q(7228) => q(wrv),
- q(7229) => q(wrw),
- q(7230) => q(wrx),
- q(7231) => q(wry),
- q(7232) => q(wrz),
- q(7233) => q(wsa),
- q(7234) => q(wsi),
- q(7235) => q(wsk),
- q(7236) => q(wsr),
- q(7237) => q(wss),
- q(7238) => q(wsu),
- q(7239) => q(wsv),
- q(7240) => q(wtf),
- q(7241) => q(wth),
- q(7242) => q(wti),
- q(7243) => q(wtk),
- q(7244) => q(wtm),
- q(7245) => q(wtw),
- q(7246) => q(wua),
- q(7247) => q(wub),
- q(7248) => q(wud),
- q(7249) => q(wuh),
- q(7250) => q(wul),
- q(7251) => q(wum),
- q(7252) => q(wun),
- q(7253) => q(wur),
- q(7254) => q(wut),
- q(7255) => q(wuu),
- q(7256) => q(wuv),
- q(7257) => q(wux),
- q(7258) => q(wuy),
- q(7259) => q(wwa),
- q(7260) => q(wwb),
- q(7261) => q(wwo),
- q(7262) => q(wwr),
- q(7263) => q(www),
- q(7264) => q(wxa),
- q(7265) => q(wxw),
- q(7266) => q(wya),
- q(7267) => q(wyb),
- q(7268) => q(wyi),
- q(7269) => q(wym),
- q(7270) => q(wyr),
- q(7271) => q(wyy),
- q(7272) => q(xaa),
- q(7273) => q(xab),
- q(7274) => q(xac),
- q(7275) => q(xad),
- q(7276) => q(xae),
- q(7277) => q(xag),
- q(7278) => q(xai),
- q(7279) => q(xaj),
- q(7280) => q(xam),
- q(7281) => q(xan),
- q(7282) => q(xao),
- q(7283) => q(xap),
- q(7284) => q(xaq),
- q(7285) => q(xar),
- q(7286) => q(xas),
- q(7287) => q(xat),
- q(7288) => q(xau),
- q(7289) => q(xav),
- q(7290) => q(xaw),
- q(7291) => q(xay),
- q(7292) => q(xba),
- q(7293) => q(xbb),
- q(7294) => q(xbc),
- q(7295) => q(xbd),
- q(7296) => q(xbe),
- q(7297) => q(xbg),
- q(7298) => q(xbi),
- q(7299) => q(xbj),
- q(7300) => q(xbm),
- q(7301) => q(xbn),
- q(7302) => q(xbo),
- q(7303) => q(xbp),
- q(7304) => q(xbr),
- q(7305) => q(xbw),
- q(7306) => q(xbx),
- q(7307) => q(xby),
- q(7308) => q(xcb),
- q(7309) => q(xcc),
- q(7310) => q(xce),
- q(7311) => q(xcg),
- q(7312) => q(xch),
- q(7313) => q(xcl),
- q(7314) => q(xcm),
- q(7315) => q(xcn),
- q(7316) => q(xco),
- q(7317) => q(xcr),
- q(7318) => q(xct),
- q(7319) => q(xcu),
- q(7320) => q(xcv),
- q(7321) => q(xcw),
- q(7322) => q(xcy),
- q(7323) => q(xda),
- q(7324) => q(xdc),
- q(7325) => q(xdk),
- q(7326) => q(xdm),
- q(7327) => q(xdy),
- q(7328) => q(xeb),
- q(7329) => q(xed),
- q(7330) => q(xeg),
- q(7331) => q(xel),
- q(7332) => q(xem),
- q(7333) => q(xep),
- q(7334) => q(xer),
- q(7335) => q(xes),
- q(7336) => q(xet),
- q(7337) => q(xeu),
- q(7338) => q(xfa),
- q(7339) => q(xga),
- q(7340) => q(xgb),
- q(7341) => q(xgd),
- q(7342) => q(xgf),
- q(7343) => q(xgg),
- q(7344) => q(xgi),
- q(7345) => q(xgl),
- q(7346) => q(xgm),
- q(7347) => q(xgr),
- q(7348) => q(xgu),
- q(7349) => q(xgw),
- q(7350) => q(xha),
- q(7351) => q(xhc),
- q(7352) => q(xhd),
- q(7353) => q(xhe),
- q(7354) => q(xhr),
- q(7355) => q(xht),
- q(7356) => q(xhu),
- q(7357) => q(xhv),
- q(7358) => q(xib),
- q(7359) => q(xii),
- q(7360) => q(xil),
- q(7361) => q(xin),
- q(7362) => q(xip),
- q(7363) => q(xir),
- q(7364) => q(xis),
- q(7365) => q(xiv),
- q(7366) => q(xiy),
- q(7367) => q(xjb),
- q(7368) => q(xjt),
- q(7369) => q(xka),
- q(7370) => q(xkb),
- q(7371) => q(xkc),
- q(7372) => q(xkd),
- q(7373) => q(xke),
- q(7374) => q(xkf),
- q(7375) => q(xkg),
- q(7376) => q(xkh),
- q(7377) => q(xki),
- q(7378) => q(xkj),
- q(7379) => q(xkk),
- q(7380) => q(xkl),
- q(7381) => q(xkn),
- q(7382) => q(xko),
- q(7383) => q(xkp),
- q(7384) => q(xkq),
- q(7385) => q(xkr),
- q(7386) => q(xks),
- q(7387) => q(xkt),
- q(7388) => q(xku),
- q(7389) => q(xkv),
- q(7390) => q(xkw),
- q(7391) => q(xkx),
- q(7392) => q(xky),
- q(7393) => q(xkz),
- q(7394) => q(xla),
- q(7395) => q(xlb),
- q(7396) => q(xlc),
- q(7397) => q(xld),
- q(7398) => q(xle),
- q(7399) => q(xlg),
- q(7400) => q(xli),
- q(7401) => q(xln),
- q(7402) => q(xlo),
- q(7403) => q(xlp),
- q(7404) => q(xls),
- q(7405) => q(xlu),
- q(7406) => q(xly),
- q(7407) => q(xma),
- q(7408) => q(xmb),
- q(7409) => q(xmc),
- q(7410) => q(xmd),
- q(7411) => q(xme),
- q(7412) => q(xmf),
- q(7413) => q(xmg),
- q(7414) => q(xmh),
- q(7415) => q(xmj),
- q(7416) => q(xmk),
- q(7417) => q(xml),
- q(7418) => q(xmm),
- q(7419) => q(xmn),
- q(7420) => q(xmo),
- q(7421) => q(xmp),
- q(7422) => q(xmq),
- q(7423) => q(xmr),
- q(7424) => q(xms),
- q(7425) => q(xmt),
- q(7426) => q(xmu),
- q(7427) => q(xmv),
- q(7428) => q(xmw),
- q(7429) => q(xmx),
- q(7430) => q(xmy),
- q(7431) => q(xmz),
- q(7432) => q(xna),
- q(7433) => q(xnb),
- q(7434) => q(xng),
- q(7435) => q(xnh),
- q(7436) => q(xni),
- q(7437) => q(xnk),
- q(7438) => q(xnn),
- q(7439) => q(xno),
- q(7440) => q(xnr),
- q(7441) => q(xns),
- q(7442) => q(xnt),
- q(7443) => q(xnu),
- q(7444) => q(xny),
- q(7445) => q(xnz),
- q(7446) => q(xoc),
- q(7447) => q(xod),
- q(7448) => q(xog),
- q(7449) => q(xoi),
- q(7450) => q(xok),
- q(7451) => q(xom),
- q(7452) => q(xon),
- q(7453) => q(xoo),
- q(7454) => q(xop),
- q(7455) => q(xor),
- q(7456) => q(xow),
- q(7457) => q(xpa),
- q(7458) => q(xpc),
- q(7459) => q(xpe),
- q(7460) => q(xpg),
- q(7461) => q(xpi),
- q(7462) => q(xpj),
- q(7463) => q(xpk),
- q(7464) => q(xpm),
- q(7465) => q(xpn),
- q(7466) => q(xpo),
- q(7467) => q(xpp),
- q(7468) => q(xpq),
- q(7469) => q(xpr),
- q(7470) => q(xps),
- q(7471) => q(xpt),
- q(7472) => q(xpu),
- q(7473) => q(xpy),
- q(7474) => q(xqa),
- q(7475) => q(xqt),
- q(7476) => q(xra),
- q(7477) => q(xrb),
- q(7478) => q(xrd),
- q(7479) => q(xre),
- q(7480) => q(xrg),
- q(7481) => q(xri),
- q(7482) => q(xrm),
- q(7483) => q(xrn),
- q(7484) => q(xrq),
- q(7485) => q(xrr),
- q(7486) => q(xrt),
- q(7487) => q(xru),
- q(7488) => q(xrw),
- q(7489) => q(xsa),
- q(7490) => q(xsb),
- q(7491) => q(xsc),
- q(7492) => q(xsd),
- q(7493) => q(xse),
- q(7494) => q(xsh),
- q(7495) => q(xsi),
- q(7496) => q(xsl),
- q(7497) => q(xsm),
- q(7498) => q(xsn),
- q(7499) => q(xso),
- q(7500) => q(xsp),
- q(7501) => q(xsq),
- q(7502) => q(xsr),
- q(7503) => q(xss),
- q(7504) => q(xsu),
- q(7505) => q(xsv),
- q(7506) => q(xsy),
- q(7507) => q(xta),
- q(7508) => q(xtb),
- q(7509) => q(xtc),
- q(7510) => q(xtd),
- q(7511) => q(xte),
- q(7512) => q(xtg),
- q(7513) => q(xth),
- q(7514) => q(xti),
- q(7515) => q(xtj),
- q(7516) => q(xtl),
- q(7517) => q(xtm),
- q(7518) => q(xtn),
- q(7519) => q(xto),
- q(7520) => q(xtp),
- q(7521) => q(xtq),
- q(7522) => q(xtr),
- q(7523) => q(xts),
- q(7524) => q(xtt),
- q(7525) => q(xtu),
- q(7526) => q(xtv),
- q(7527) => q(xtw),
- q(7528) => q(xty),
- q(7529) => q(xtz),
- q(7530) => q(xua),
- q(7531) => q(xub),
- q(7532) => q(xud),
- q(7533) => q(xug),
- q(7534) => q(xuj),
- q(7535) => q(xul),
- q(7536) => q(xum),
- q(7537) => q(xun),
- q(7538) => q(xuo),
- q(7539) => q(xup),
- q(7540) => q(xur),
- q(7541) => q(xut),
- q(7542) => q(xuu),
- q(7543) => q(xve),
- q(7544) => q(xvi),
- q(7545) => q(xvn),
- q(7546) => q(xvo),
- q(7547) => q(xvs),
- q(7548) => q(xwa),
- q(7549) => q(xwc),
- q(7550) => q(xwd),
- q(7551) => q(xwe),
- q(7552) => q(xwg),
- q(7553) => q(xwj),
- q(7554) => q(xwk),
- q(7555) => q(xwl),
- q(7556) => q(xwo),
- q(7557) => q(xwr),
- q(7558) => q(xwt),
- q(7559) => q(xww),
- q(7560) => q(xxb),
- q(7561) => q(xxk),
- q(7562) => q(xxm),
- q(7563) => q(xxr),
- q(7564) => q(xxt),
- q(7565) => q(xya),
- q(7566) => q(xyb),
- q(7567) => q(xyj),
- q(7568) => q(xyk),
- q(7569) => q(xyl),
- q(7570) => q(xyt),
- q(7571) => q(xyy),
- q(7572) => q(xzh),
- q(7573) => q(xzm),
- q(7574) => q(xzp),
- q(7575) => q(yaa),
- q(7576) => q(yab),
- q(7577) => q(yac),
- q(7578) => q(yad),
- q(7579) => q(yae),
- q(7580) => q(yaf),
- q(7581) => q(yag),
- q(7582) => q(yah),
- q(7583) => q(yai),
- q(7584) => q(yaj),
- q(7585) => q(yak),
- q(7586) => q(yal),
- q(7587) => q(yam),
- q(7588) => q(yan),
- q(7589) => q(yaq),
- q(7590) => q(yar),
- q(7591) => q(yas),
- q(7592) => q(yat),
- q(7593) => q(yau),
- q(7594) => q(yav),
- q(7595) => q(yaw),
- q(7596) => q(yax),
- q(7597) => q(yay),
- q(7598) => q(yaz),
- q(7599) => q(yba),
- q(7600) => q(ybb),
- q(7601) => q(ybe),
- q(7602) => q(ybh),
- q(7603) => q(ybi),
- q(7604) => q(ybj),
- q(7605) => q(ybk),
- q(7606) => q(ybl),
- q(7607) => q(ybm),
- q(7608) => q(ybn),
- q(7609) => q(ybo),
- q(7610) => q(ybx),
- q(7611) => q(yby),
- q(7612) => q(ych),
- q(7613) => q(ycl),
- q(7614) => q(ycn),
- q(7615) => q(ycp),
- q(7616) => q(yda),
- q(7617) => q(ydd),
- q(7618) => q(yde),
- q(7619) => q(ydg),
- q(7620) => q(ydk),
- q(7621) => q(yea),
- q(7622) => q(yec),
- q(7623) => q(yee),
- q(7624) => q(yei),
- q(7625) => q(yej),
- q(7626) => q(yel),
- q(7627) => q(yer),
- q(7628) => q(yes),
- q(7629) => q(yet),
- q(7630) => q(yeu),
- q(7631) => q(yev),
- q(7632) => q(yey),
- q(7633) => q(yga),
- q(7634) => q(ygi),
- q(7635) => q(ygl),
- q(7636) => q(ygm),
- q(7637) => q(ygp),
- q(7638) => q(ygr),
- q(7639) => q(ygs),
- q(7640) => q(ygu),
- q(7641) => q(ygw),
- q(7642) => q(yha),
- q(7643) => q(yhd),
- q(7644) => q(yhl),
- q(7645) => q(yhs),
- q(7646) => q(yia),
- q(7647) => q(yig),
- q(7648) => q(yih),
- q(7649) => q(yii),
- q(7650) => q(yij),
- q(7651) => q(yik),
- q(7652) => q(yil),
- q(7653) => q(yim),
- q(7654) => q(yin),
- q(7655) => q(yip),
- q(7656) => q(yiq),
- q(7657) => q(yir),
- q(7658) => q(yis),
- q(7659) => q(yit),
- q(7660) => q(yiu),
- q(7661) => q(yiv),
- q(7662) => q(yix),
- q(7663) => q(yiz),
- q(7664) => q(yka),
- q(7665) => q(ykg),
- q(7666) => q(yki),
- q(7667) => q(ykk),
- q(7668) => q(ykl),
- q(7669) => q(ykm),
- q(7670) => q(ykn),
- q(7671) => q(yko),
- q(7672) => q(ykr),
- q(7673) => q(ykt),
- q(7674) => q(yku),
- q(7675) => q(yky),
- q(7676) => q(yla),
- q(7677) => q(ylb),
- q(7678) => q(yle),
- q(7679) => q(ylg),
- q(7680) => q(yli),
- q(7681) => q(yll),
- q(7682) => q(ylm),
- q(7683) => q(yln),
- q(7684) => q(ylo),
- q(7685) => q(ylr),
- q(7686) => q(ylu),
- q(7687) => q(yly),
- q(7688) => q(ymb),
- q(7689) => q(ymc),
- q(7690) => q(ymd),
- q(7691) => q(yme),
- q(7692) => q(ymg),
- q(7693) => q(ymh),
- q(7694) => q(ymi),
- q(7695) => q(ymk),
- q(7696) => q(yml),
- q(7697) => q(ymm),
- q(7698) => q(ymn),
- q(7699) => q(ymo),
- q(7700) => q(ymp),
- q(7701) => q(ymq),
- q(7702) => q(ymr),
- q(7703) => q(yms),
- q(7704) => q(ymx),
- q(7705) => q(ymz),
- q(7706) => q(yna),
- q(7707) => q(ynd),
- q(7708) => q(yne),
- q(7709) => q(yng),
- q(7710) => q(ynk),
- q(7711) => q(ynl),
- q(7712) => q(ynn),
- q(7713) => q(yno),
- q(7714) => q(ynq),
- q(7715) => q(yns),
- q(7716) => q(ynu),
- q(7717) => q(yob),
- q(7718) => q(yog),
- q(7719) => q(yoi),
- q(7720) => q(yok),
- q(7721) => q(yol),
- q(7722) => q(yom),
- q(7723) => q(yon),
- q(7724) => q(yot),
- q(7725) => q(yox),
- q(7726) => q(yoy),
- q(7727) => q(ypa),
- q(7728) => q(ypb),
- q(7729) => q(ypg),
- q(7730) => q(yph),
- q(7731) => q(ypm),
- q(7732) => q(ypn),
- q(7733) => q(ypo),
- q(7734) => q(ypp),
- q(7735) => q(ypz),
- q(7736) => q(yra),
- q(7737) => q(yrb),
- q(7738) => q(yre),
- q(7739) => q(yri),
- q(7740) => q(yrk),
- q(7741) => q(yrl),
- q(7742) => q(yrm),
- q(7743) => q(yrn),
- q(7744) => q(yrs),
- q(7745) => q(yrw),
- q(7746) => q(yry),
- q(7747) => q(ysc),
- q(7748) => q(ysd),
- q(7749) => q(ysg),
- q(7750) => q(ysl),
- q(7751) => q(ysn),
- q(7752) => q(yso),
- q(7753) => q(ysp),
- q(7754) => q(ysr),
- q(7755) => q(yss),
- q(7756) => q(ysy),
- q(7757) => q(yta),
- q(7758) => q(ytl),
- q(7759) => q(ytp),
- q(7760) => q(ytw),
- q(7761) => q(yty),
- q(7762) => q(yua),
- q(7763) => q(yub),
- q(7764) => q(yuc),
- q(7765) => q(yud),
- q(7766) => q(yue),
- q(7767) => q(yuf),
- q(7768) => q(yug),
- q(7769) => q(yui),
- q(7770) => q(yuj),
- q(7771) => q(yuk),
- q(7772) => q(yul),
- q(7773) => q(yum),
- q(7774) => q(yun),
- q(7775) => q(yup),
- q(7776) => q(yuq),
- q(7777) => q(yur),
- q(7778) => q(yut),
- q(7779) => q(yuw),
- q(7780) => q(yux),
- q(7781) => q(yuy),
- q(7782) => q(yuz),
- q(7783) => q(yva),
- q(7784) => q(yvt),
- q(7785) => q(ywa),
- q(7786) => q(ywg),
- q(7787) => q(ywl),
- q(7788) => q(ywn),
- q(7789) => q(ywq),
- q(7790) => q(ywr),
- q(7791) => q(ywt),
- q(7792) => q(ywu),
- q(7793) => q(yww),
- q(7794) => q(yxa),
- q(7795) => q(yxg),
- q(7796) => q(yxl),
- q(7797) => q(yxm),
- q(7798) => q(yxu),
- q(7799) => q(yxy),
- q(7800) => q(yyr),
- q(7801) => q(yyu),
- q(7802) => q(yyz),
- q(7803) => q(yzg),
- q(7804) => q(yzk),
- q(7805) => q(zaa),
- q(7806) => q(zab),
- q(7807) => q(zac),
- q(7808) => q(zad),
- q(7809) => q(zae),
- q(7810) => q(zaf),
- q(7811) => q(zag),
- q(7812) => q(zah),
- q(7813) => q(zai),
- q(7814) => q(zaj),
- q(7815) => q(zak),
- q(7816) => q(zal),
- q(7817) => q(zam),
- q(7818) => q(zao),
- q(7819) => q(zaq),
- q(7820) => q(zar),
- q(7821) => q(zas),
- q(7822) => q(zat),
- q(7823) => q(zau),
- q(7824) => q(zav),
- q(7825) => q(zaw),
- q(7826) => q(zax),
- q(7827) => q(zay),
- q(7828) => q(zaz),
- q(7829) => q(zbc),
- q(7830) => q(zbe),
- q(7831) => q(zbt),
- q(7832) => q(zbw),
- q(7833) => q(zca),
- q(7834) => q(zch),
- q(7835) => q(zdj),
- q(7836) => q(zea),
- q(7837) => q(zeg),
- q(7838) => q(zeh),
- q(7839) => q(zga),
- q(7840) => q(zgb),
- q(7841) => q(zgm),
- q(7842) => q(zgn),
- q(7843) => q(zgr),
- q(7844) => q(zhb),
- q(7845) => q(zhd),
- q(7846) => q(zhi),
- q(7847) => q(zhn),
- q(7848) => q(zhw),
- q(7849) => q(zia),
- q(7850) => q(zib),
- q(7851) => q(zik),
- q(7852) => q(zil),
- q(7853) => q(zim),
- q(7854) => q(zin),
- q(7855) => q(zir),
- q(7856) => q(ziw),
- q(7857) => q(ziz),
- q(7858) => q(zka),
- q(7859) => q(zkb),
- q(7860) => q(zkd),
- q(7861) => q(zkg),
- q(7862) => q(zkh),
- q(7863) => q(zkk),
- q(7864) => q(zkn),
- q(7865) => q(zko),
- q(7866) => q(zkp),
- q(7867) => q(zkr),
- q(7868) => q(zkt),
- q(7869) => q(zku),
- q(7870) => q(zkv),
- q(7871) => q(zkz),
- q(7872) => q(zlj),
- q(7873) => q(zlm),
- q(7874) => q(zln),
- q(7875) => q(zlq),
- q(7876) => q(zma),
- q(7877) => q(zmb),
- q(7878) => q(zmc),
- q(7879) => q(zmd),
- q(7880) => q(zme),
- q(7881) => q(zmf),
- q(7882) => q(zmg),
- q(7883) => q(zmh),
- q(7884) => q(zmi),
- q(7885) => q(zmj),
- q(7886) => q(zmk),
- q(7887) => q(zml),
- q(7888) => q(zmm),
- q(7889) => q(zmn),
- q(7890) => q(zmo),
- q(7891) => q(zmp),
- q(7892) => q(zmq),
- q(7893) => q(zmr),
- q(7894) => q(zms),
- q(7895) => q(zmt),
- q(7896) => q(zmu),
- q(7897) => q(zmv),
- q(7898) => q(zmw),
- q(7899) => q(zmx),
- q(7900) => q(zmy),
- q(7901) => q(zmz),
- q(7902) => q(zna),
- q(7903) => q(zne),
- q(7904) => q(zng),
- q(7905) => q(znk),
- q(7906) => q(zns),
- q(7907) => q(zoc),
- q(7908) => q(zoh),
- q(7909) => q(zom),
- q(7910) => q(zoo),
- q(7911) => q(zoq),
- q(7912) => q(zor),
- q(7913) => q(zos),
- q(7914) => q(zpa),
- q(7915) => q(zpb),
- q(7916) => q(zpc),
- q(7917) => q(zpd),
- q(7918) => q(zpe),
- q(7919) => q(zpf),
- q(7920) => q(zpg),
- q(7921) => q(zph),
- q(7922) => q(zpi),
- q(7923) => q(zpj),
- q(7924) => q(zpk),
- q(7925) => q(zpl),
- q(7926) => q(zpm),
- q(7927) => q(zpn),
- q(7928) => q(zpo),
- q(7929) => q(zpp),
- q(7930) => q(zpq),
- q(7931) => q(zpr),
- q(7932) => q(zps),
- q(7933) => q(zpt),
- q(7934) => q(zpu),
- q(7935) => q(zpv),
- q(7936) => q(zpw),
- q(7937) => q(zpx),
- q(7938) => q(zpy),
- q(7939) => q(zpz),
- q(7940) => q(zqe),
- q(7941) => q(zra),
- q(7942) => q(zrg),
- q(7943) => q(zrn),
- q(7944) => q(zro),
- q(7945) => q(zrp),
- q(7946) => q(zrs),
- q(7947) => q(zsa),
- q(7948) => q(zsk),
- q(7949) => q(zsl),
- q(7950) => q(zsm),
- q(7951) => q(zsr),
- q(7952) => q(zsu),
- q(7953) => q(zte),
- q(7954) => q(ztg),
- q(7955) => q(ztl),
- q(7956) => q(ztm),
- q(7957) => q(ztn),
- q(7958) => q(ztp),
- q(7959) => q(ztq),
- q(7960) => q(zts),
- q(7961) => q(ztt),
- q(7962) => q(ztu),
- q(7963) => q(ztx),
- q(7964) => q(zty),
- q(7965) => q(zua),
- q(7966) => q(zuh),
- q(7967) => q(zum),
- q(7968) => q(zuy),
- q(7969) => q(zwa),
- q(7970) => q(zyb),
- q(7971) => q(zyg),
- q(7972) => q(zyj),
- q(7973) => q(zyn),
- q(7974) => q(zyp),
- q(7975) => q(zzj),
+ q(1172) => q(bgn),
+ q(1173) => q(bgo),
+ q(1174) => q(bgp),
+ q(1175) => q(bgq),
+ q(1176) => q(bgr),
+ q(1177) => q(bgs),
+ q(1178) => q(bgt),
+ q(1179) => q(bgu),
+ q(1180) => q(bgv),
+ q(1181) => q(bgw),
+ q(1182) => q(bgx),
+ q(1183) => q(bgy),
+ q(1184) => q(bgz),
+ q(1185) => q(bha),
+ q(1186) => q(bhb),
+ q(1187) => q(bhc),
+ q(1188) => q(bhd),
+ q(1189) => q(bhe),
+ q(1190) => q(bhf),
+ q(1191) => q(bhg),
+ q(1192) => q(bhh),
+ q(1193) => q(bhi),
+ q(1194) => q(bhj),
+ q(1195) => q(bhl),
+ q(1196) => q(bhm),
+ q(1197) => q(bhn),
+ q(1198) => q(bhp),
+ q(1199) => q(bhq),
+ q(1200) => q(bhr),
+ q(1201) => q(bhs),
+ q(1202) => q(bht),
+ q(1203) => q(bhu),
+ q(1204) => q(bhv),
+ q(1205) => q(bhw),
+ q(1206) => q(bhx),
+ q(1207) => q(bhy),
+ q(1208) => q(bhz),
+ q(1209) => q(bia),
+ q(1210) => q(bib),
+ q(1211) => q(bic),
+ q(1212) => q(bid),
+ q(1213) => q(bie),
+ q(1214) => q(bif),
+ q(1215) => q(big),
+ q(1216) => q(bij),
+ q(1217) => q(bil),
+ q(1218) => q(bim),
+ q(1219) => q(bio),
+ q(1220) => q(bip),
+ q(1221) => q(biq),
+ q(1222) => q(bir),
+ q(1223) => q(bit),
+ q(1224) => q(biu),
+ q(1225) => q(biv),
+ q(1226) => q(biw),
+ q(1227) => q(bix),
+ q(1228) => q(biy),
+ q(1229) => q(biz),
+ q(1230) => q(bja),
+ q(1231) => q(bjb),
+ q(1232) => q(bjc),
+ q(1233) => q(bje),
+ q(1234) => q(bjf),
+ q(1235) => q(bjg),
+ q(1236) => q(bjh),
+ q(1237) => q(bji),
+ q(1238) => q(bjj),
+ q(1239) => q(bjk),
+ q(1240) => q(bjl),
+ q(1241) => q(bjm),
+ q(1242) => q(bjn),
+ q(1243) => q(bjo),
+ q(1244) => q(bjp),
+ q(1245) => q(bjr),
+ q(1246) => q(bjs),
+ q(1247) => q(bjt),
+ q(1248) => q(bju),
+ q(1249) => q(bjv),
+ q(1250) => q(bjw),
+ q(1251) => q(bjx),
+ q(1252) => q(bjy),
+ q(1253) => q(bjz),
+ q(1254) => q(bka),
+ q(1255) => q(bkc),
+ q(1256) => q(bkd),
+ q(1257) => q(bkf),
+ q(1258) => q(bkg),
+ q(1259) => q(bkh),
+ q(1260) => q(bki),
+ q(1261) => q(bkj),
+ q(1262) => q(bkk),
+ q(1263) => q(bkl),
+ q(1264) => q(bkm),
+ q(1265) => q(bkn),
+ q(1266) => q(bko),
+ q(1267) => q(bkp),
+ q(1268) => q(bkq),
+ q(1269) => q(bkr),
+ q(1270) => q(bks),
+ q(1271) => q(bkt),
+ q(1272) => q(bku),
+ q(1273) => q(bkv),
+ q(1274) => q(bkw),
+ q(1275) => q(bkx),
+ q(1276) => q(bky),
+ q(1277) => q(bkz),
+ q(1278) => q(blb),
+ q(1279) => q(blc),
+ q(1280) => q(bld),
+ q(1281) => q(ble),
+ q(1282) => q(blf),
+ q(1283) => q(blg),
+ q(1284) => q(blh),
+ q(1285) => q(bli),
+ q(1286) => q(blj),
+ q(1287) => q(blk),
+ q(1288) => q(bll),
+ q(1289) => q(blm),
+ q(1290) => q(bln),
+ q(1291) => q(blo),
+ q(1292) => q(blp),
+ q(1293) => q(blq),
+ q(1294) => q(blr),
+ q(1295) => q(bls),
+ q(1296) => q(blt),
+ q(1297) => q(blv),
+ q(1298) => q(blw),
+ q(1299) => q(blx),
+ q(1300) => q(bly),
+ q(1301) => q(blz),
+ q(1302) => q(bma),
+ q(1303) => q(bmb),
+ q(1304) => q(bmc),
+ q(1305) => q(bmd),
+ q(1306) => q(bme),
+ q(1307) => q(bmf),
+ q(1308) => q(bmg),
+ q(1309) => q(bmh),
+ q(1310) => q(bmi),
+ q(1311) => q(bmj),
+ q(1312) => q(bmk),
+ q(1313) => q(bml),
+ q(1314) => q(bmm),
+ q(1315) => q(bmn),
+ q(1316) => q(bmo),
+ q(1317) => q(bmp),
+ q(1318) => q(bmq),
+ q(1319) => q(bmr),
+ q(1320) => q(bms),
+ q(1321) => q(bmt),
+ q(1322) => q(bmu),
+ q(1323) => q(bmv),
+ q(1324) => q(bmw),
+ q(1325) => q(bmx),
+ q(1326) => q(bmz),
+ q(1327) => q(bna),
+ q(1328) => q(bnb),
+ q(1329) => q(bnc),
+ q(1330) => q(bnd),
+ q(1331) => q(bne),
+ q(1332) => q(bnf),
+ q(1333) => q(bng),
+ q(1334) => q(bni),
+ q(1335) => q(bnj),
+ q(1336) => q(bnk),
+ q(1337) => q(bnl),
+ q(1338) => q(bnm),
+ q(1339) => q(bnn),
+ q(1340) => q(bno),
+ q(1341) => q(bnp),
+ q(1342) => q(bnq),
+ q(1343) => q(bnr),
+ q(1344) => q(bns),
+ q(1345) => q(bnu),
+ q(1346) => q(bnv),
+ q(1347) => q(bnw),
+ q(1348) => q(bnx),
+ q(1349) => q(bny),
+ q(1350) => q(bnz),
+ q(1351) => q(boa),
+ q(1352) => q(bob),
+ q(1353) => q(boe),
+ q(1354) => q(bof),
+ q(1355) => q(bog),
+ q(1356) => q(boh),
+ q(1357) => q(boi),
+ q(1358) => q(boj),
+ q(1359) => q(bok),
+ q(1360) => q(bol),
+ q(1361) => q(bom),
+ q(1362) => q(bon),
+ q(1363) => q(boo),
+ q(1364) => q(bop),
+ q(1365) => q(boq),
+ q(1366) => q(bor),
+ q(1367) => q(bot),
+ q(1368) => q(bou),
+ q(1369) => q(bov),
+ q(1370) => q(bow),
+ q(1371) => q(box),
+ q(1372) => q(boy),
+ q(1373) => q(boz),
+ q(1374) => q(bpa),
+ q(1375) => q(bpb),
+ q(1376) => q(bpd),
+ q(1377) => q(bpg),
+ q(1378) => q(bph),
+ q(1379) => q(bpi),
+ q(1380) => q(bpj),
+ q(1381) => q(bpk),
+ q(1382) => q(bpl),
+ q(1383) => q(bpm),
+ q(1384) => q(bpn),
+ q(1385) => q(bpo),
+ q(1386) => q(bpp),
+ q(1387) => q(bpq),
+ q(1388) => q(bpr),
+ q(1389) => q(bps),
+ q(1390) => q(bpt),
+ q(1391) => q(bpu),
+ q(1392) => q(bpv),
+ q(1393) => q(bpw),
+ q(1394) => q(bpx),
+ q(1395) => q(bpy),
+ q(1396) => q(bpz),
+ q(1397) => q(bqa),
+ q(1398) => q(bqb),
+ q(1399) => q(bqc),
+ q(1400) => q(bqd),
+ q(1401) => q(bqf),
+ q(1402) => q(bqg),
+ q(1403) => q(bqh),
+ q(1404) => q(bqi),
+ q(1405) => q(bqj),
+ q(1406) => q(bqk),
+ q(1407) => q(bql),
+ q(1408) => q(bqm),
+ q(1409) => q(bqn),
+ q(1410) => q(bqo),
+ q(1411) => q(bqp),
+ q(1412) => q(bqq),
+ q(1413) => q(bqr),
+ q(1414) => q(bqs),
+ q(1415) => q(bqt),
+ q(1416) => q(bqu),
+ q(1417) => q(bqv),
+ q(1418) => q(bqw),
+ q(1419) => q(bqx),
+ q(1420) => q(bqy),
+ q(1421) => q(bqz),
+ q(1422) => q(brb),
+ q(1423) => q(brc),
+ q(1424) => q(brd),
+ q(1425) => q(brf),
+ q(1426) => q(brg),
+ q(1427) => q(brh),
+ q(1428) => q(bri),
+ q(1429) => q(brj),
+ q(1430) => q(brk),
+ q(1431) => q(brl),
+ q(1432) => q(brm),
+ q(1433) => q(brn),
+ q(1434) => q(bro),
+ q(1435) => q(brp),
+ q(1436) => q(brq),
+ q(1437) => q(brr),
+ q(1438) => q(brs),
+ q(1439) => q(brt),
+ q(1440) => q(bru),
+ q(1441) => q(brv),
+ q(1442) => q(brw),
+ q(1443) => q(brx),
+ q(1444) => q(bry),
+ q(1445) => q(brz),
+ q(1446) => q(bsa),
+ q(1447) => q(bsb),
+ q(1448) => q(bsc),
+ q(1449) => q(bse),
+ q(1450) => q(bsf),
+ q(1451) => q(bsg),
+ q(1452) => q(bsh),
+ q(1453) => q(bsi),
+ q(1454) => q(bsj),
+ q(1455) => q(bsk),
+ q(1456) => q(bsl),
+ q(1457) => q(bsm),
+ q(1458) => q(bsn),
+ q(1459) => q(bso),
+ q(1460) => q(bsp),
+ q(1461) => q(bsq),
+ q(1462) => q(bsr),
+ q(1463) => q(bss),
+ q(1464) => q(bst),
+ q(1465) => q(bsu),
+ q(1466) => q(bsv),
+ q(1467) => q(bsw),
+ q(1468) => q(bsx),
+ q(1469) => q(bsy),
+ q(1470) => q(bta),
+ q(1471) => q(btc),
+ q(1472) => q(btd),
+ q(1473) => q(bte),
+ q(1474) => q(btf),
+ q(1475) => q(btg),
+ q(1476) => q(bth),
+ q(1477) => q(bti),
+ q(1478) => q(btj),
+ q(1479) => q(btm),
+ q(1480) => q(btn),
+ q(1481) => q(bto),
+ q(1482) => q(btp),
+ q(1483) => q(btq),
+ q(1484) => q(btr),
+ q(1485) => q(bts),
+ q(1486) => q(btt),
+ q(1487) => q(btu),
+ q(1488) => q(btv),
+ q(1489) => q(btw),
+ q(1490) => q(btx),
+ q(1491) => q(bty),
+ q(1492) => q(btz),
+ q(1493) => q(bub),
+ q(1494) => q(buc),
+ q(1495) => q(bud),
+ q(1496) => q(bue),
+ q(1497) => q(buf),
+ q(1498) => q(buh),
+ q(1499) => q(bui),
+ q(1500) => q(buj),
+ q(1501) => q(buk),
+ q(1502) => q(bum),
+ q(1503) => q(bun),
+ q(1504) => q(buo),
+ q(1505) => q(bup),
+ q(1506) => q(buq),
+ q(1507) => q(bus),
+ q(1508) => q(but),
+ q(1509) => q(buu),
+ q(1510) => q(buv),
+ q(1511) => q(buw),
+ q(1512) => q(bux),
+ q(1513) => q(buy),
+ q(1514) => q(buz),
+ q(1515) => q(bva),
+ q(1516) => q(bvb),
+ q(1517) => q(bvc),
+ q(1518) => q(bvd),
+ q(1519) => q(bve),
+ q(1520) => q(bvf),
+ q(1521) => q(bvg),
+ q(1522) => q(bvh),
+ q(1523) => q(bvi),
+ q(1524) => q(bvj),
+ q(1525) => q(bvk),
+ q(1526) => q(bvl),
+ q(1527) => q(bvm),
+ q(1528) => q(bvn),
+ q(1529) => q(bvo),
+ q(1530) => q(bvp),
+ q(1531) => q(bvq),
+ q(1532) => q(bvr),
+ q(1533) => q(bvt),
+ q(1534) => q(bvu),
+ q(1535) => q(bvv),
+ q(1536) => q(bvw),
+ q(1537) => q(bvx),
+ q(1538) => q(bvy),
+ q(1539) => q(bvz),
+ q(1540) => q(bwa),
+ q(1541) => q(bwb),
+ q(1542) => q(bwc),
+ q(1543) => q(bwd),
+ q(1544) => q(bwe),
+ q(1545) => q(bwf),
+ q(1546) => q(bwg),
+ q(1547) => q(bwh),
+ q(1548) => q(bwi),
+ q(1549) => q(bwj),
+ q(1550) => q(bwk),
+ q(1551) => q(bwl),
+ q(1552) => q(bwm),
+ q(1553) => q(bwn),
+ q(1554) => q(bwo),
+ q(1555) => q(bwp),
+ q(1556) => q(bwq),
+ q(1557) => q(bwr),
+ q(1558) => q(bws),
+ q(1559) => q(bwt),
+ q(1560) => q(bwu),
+ q(1561) => q(bww),
+ q(1562) => q(bwx),
+ q(1563) => q(bwy),
+ q(1564) => q(bwz),
+ q(1565) => q(bxa),
+ q(1566) => q(bxb),
+ q(1567) => q(bxc),
+ q(1568) => q(bxd),
+ q(1569) => q(bxe),
+ q(1570) => q(bxf),
+ q(1571) => q(bxg),
+ q(1572) => q(bxh),
+ q(1573) => q(bxi),
+ q(1574) => q(bxj),
+ q(1575) => q(bxk),
+ q(1576) => q(bxl),
+ q(1577) => q(bxm),
+ q(1578) => q(bxn),
+ q(1579) => q(bxo),
+ q(1580) => q(bxp),
+ q(1581) => q(bxq),
+ q(1582) => q(bxr),
+ q(1583) => q(bxs),
+ q(1584) => q(bxu),
+ q(1585) => q(bxv),
+ q(1586) => q(bxw),
+ q(1587) => q(bxz),
+ q(1588) => q(bya),
+ q(1589) => q(byb),
+ q(1590) => q(byc),
+ q(1591) => q(byd),
+ q(1592) => q(bye),
+ q(1593) => q(byf),
+ q(1594) => q(byg),
+ q(1595) => q(byh),
+ q(1596) => q(byi),
+ q(1597) => q(byj),
+ q(1598) => q(byk),
+ q(1599) => q(byl),
+ q(1600) => q(bym),
+ q(1601) => q(byo),
+ q(1602) => q(byp),
+ q(1603) => q(byq),
+ q(1604) => q(byr),
+ q(1605) => q(bys),
+ q(1606) => q(byt),
+ q(1607) => q(byv),
+ q(1608) => q(byw),
+ q(1609) => q(byx),
+ q(1610) => q(byz),
+ q(1611) => q(bza),
+ q(1612) => q(bzb),
+ q(1613) => q(bzc),
+ q(1614) => q(bzd),
+ q(1615) => q(bze),
+ q(1616) => q(bzf),
+ q(1617) => q(bzg),
+ q(1618) => q(bzh),
+ q(1619) => q(bzi),
+ q(1620) => q(bzj),
+ q(1621) => q(bzk),
+ q(1622) => q(bzl),
+ q(1623) => q(bzm),
+ q(1624) => q(bzn),
+ q(1625) => q(bzo),
+ q(1626) => q(bzp),
+ q(1627) => q(bzq),
+ q(1628) => q(bzr),
+ q(1629) => q(bzs),
+ q(1630) => q(bzt),
+ q(1631) => q(bzu),
+ q(1632) => q(bzv),
+ q(1633) => q(bzw),
+ q(1634) => q(bzx),
+ q(1635) => q(bzy),
+ q(1636) => q(bzz),
+ q(1637) => q(caa),
+ q(1638) => q(cab),
+ q(1639) => q(cac),
+ q(1640) => q(cae),
+ q(1641) => q(caf),
+ q(1642) => q(cag),
+ q(1643) => q(cah),
+ q(1644) => q(caj),
+ q(1645) => q(cak),
+ q(1646) => q(cal),
+ q(1647) => q(cam),
+ q(1648) => q(can),
+ q(1649) => q(cao),
+ q(1650) => q(cap),
+ q(1651) => q(caq),
+ q(1652) => q(cas),
+ q(1653) => q(cav),
+ q(1654) => q(caw),
+ q(1655) => q(cax),
+ q(1656) => q(cay),
+ q(1657) => q(caz),
+ q(1658) => q(cbb),
+ q(1659) => q(cbc),
+ q(1660) => q(cbd),
+ q(1661) => q(cbg),
+ q(1662) => q(cbi),
+ q(1663) => q(cbj),
+ q(1664) => q(cbk),
+ q(1665) => q(cbl),
+ q(1666) => q(cbn),
+ q(1667) => q(cbo),
+ q(1668) => q(cbq),
+ q(1669) => q(cbr),
+ q(1670) => q(cbs),
+ q(1671) => q(cbt),
+ q(1672) => q(cbu),
+ q(1673) => q(cbv),
+ q(1674) => q(cbw),
+ q(1675) => q(cby),
+ q(1676) => q(cca),
+ q(1677) => q(ccc),
+ q(1678) => q(ccd),
+ q(1679) => q(cce),
+ q(1680) => q(ccg),
+ q(1681) => q(cch),
+ q(1682) => q(ccj),
+ q(1683) => q(ccl),
+ q(1684) => q(ccm),
+ q(1685) => q(cco),
+ q(1686) => q(ccp),
+ q(1687) => q(ccr),
+ q(1688) => q(cda),
+ q(1689) => q(cde),
+ q(1690) => q(cdf),
+ q(1691) => q(cdg),
+ q(1692) => q(cdh),
+ q(1693) => q(cdi),
+ q(1694) => q(cdj),
+ q(1695) => q(cdm),
+ q(1696) => q(cdn),
+ q(1697) => q(cdo),
+ q(1698) => q(cdr),
+ q(1699) => q(cds),
+ q(1700) => q(cdy),
+ q(1701) => q(cdz),
+ q(1702) => q(cea),
+ q(1703) => q(ceg),
+ q(1704) => q(cek),
+ q(1705) => q(cen),
+ q(1706) => q(cet),
+ q(1707) => q(cfa),
+ q(1708) => q(cfd),
+ q(1709) => q(cfg),
+ q(1710) => q(cfm),
+ q(1711) => q(cga),
+ q(1712) => q(cgc),
+ q(1713) => q(cgg),
+ q(1714) => q(cgk),
+ q(1715) => q(chc),
+ q(1716) => q(chd),
+ q(1717) => q(chf),
+ q(1718) => q(chh),
+ q(1719) => q(chj),
+ q(1720) => q(chl),
+ q(1721) => q(chq),
+ q(1722) => q(cht),
+ q(1723) => q(chw),
+ q(1724) => q(chx),
+ q(1725) => q(chz),
+ q(1726) => q(cia),
+ q(1727) => q(cib),
+ q(1728) => q(cic),
+ q(1729) => q(cid),
+ q(1730) => q(cie),
+ q(1731) => q(cih),
+ q(1732) => q(cik),
+ q(1733) => q(cim),
+ q(1734) => q(cin),
+ q(1735) => q(cip),
+ q(1736) => q(cir),
+ q(1737) => q(ciw),
+ q(1738) => q(ciy),
+ q(1739) => q(cja),
+ q(1740) => q(cje),
+ q(1741) => q(cjh),
+ q(1742) => q(cji),
+ q(1743) => q(cjk),
+ q(1744) => q(cjm),
+ q(1745) => q(cjn),
+ q(1746) => q(cjo),
+ q(1747) => q(cjp),
+ q(1748) => q(cjs),
+ q(1749) => q(cjv),
+ q(1750) => q(cjy),
+ q(1751) => q(ckb),
+ q(1752) => q(ckh),
+ q(1753) => q(ckl),
+ q(1754) => q(ckn),
+ q(1755) => q(cko),
+ q(1756) => q(ckq),
+ q(1757) => q(ckr),
+ q(1758) => q(cks),
+ q(1759) => q(ckt),
+ q(1760) => q(cku),
+ q(1761) => q(ckv),
+ q(1762) => q(ckx),
+ q(1763) => q(cky),
+ q(1764) => q(ckz),
+ q(1765) => q(cla),
+ q(1766) => q(clc),
+ q(1767) => q(cld),
+ q(1768) => q(cle),
+ q(1769) => q(clh),
+ q(1770) => q(cli),
+ q(1771) => q(clj),
+ q(1772) => q(clk),
+ q(1773) => q(cll),
+ q(1774) => q(clm),
+ q(1775) => q(clo),
+ q(1776) => q(clt),
+ q(1777) => q(clu),
+ q(1778) => q(clw),
+ q(1779) => q(cly),
+ q(1780) => q(cma),
+ q(1781) => q(cme),
+ q(1782) => q(cmg),
+ q(1783) => q(cmi),
+ q(1784) => q(cml),
+ q(1785) => q(cmm),
+ q(1786) => q(cmn),
+ q(1787) => q(cmo),
+ q(1788) => q(cmr),
+ q(1789) => q(cms),
+ q(1790) => q(cmt),
+ q(1791) => q(cna),
+ q(1792) => q(cnb),
+ q(1793) => q(cnc),
+ q(1794) => q(cng),
+ q(1795) => q(cnh),
+ q(1796) => q(cni),
+ q(1797) => q(cnk),
+ q(1798) => q(cnl),
+ q(1799) => q(cno),
+ q(1800) => q(cns),
+ q(1801) => q(cnt),
+ q(1802) => q(cnu),
+ q(1803) => q(cnw),
+ q(1804) => q(cnx),
+ q(1805) => q(coa),
+ q(1806) => q(cob),
+ q(1807) => q(coc),
+ q(1808) => q(cod),
+ q(1809) => q(coe),
+ q(1810) => q(cof),
+ q(1811) => q(cog),
+ q(1812) => q(coh),
+ q(1813) => q(coj),
+ q(1814) => q(cok),
+ q(1815) => q(col),
+ q(1816) => q(com),
+ q(1817) => q(con),
+ q(1818) => q(coo),
+ q(1819) => q(coq),
+ q(1820) => q(cot),
+ q(1821) => q(cou),
+ q(1822) => q(cov),
+ q(1823) => q(cow),
+ q(1824) => q(cox),
+ q(1825) => q(coz),
+ q(1826) => q(cpa),
+ q(1827) => q(cpb),
+ q(1828) => q(cpc),
+ q(1829) => q(cpg),
+ q(1830) => q(cpi),
+ q(1831) => q(cpn),
+ q(1832) => q(cpo),
+ q(1833) => q(cps),
+ q(1834) => q(cpu),
+ q(1835) => q(cpx),
+ q(1836) => q(cpy),
+ q(1837) => q(cqd),
+ q(1838) => q(cra),
+ q(1839) => q(crb),
+ q(1840) => q(crc),
+ q(1841) => q(crd),
+ q(1842) => q(crf),
+ q(1843) => q(crg),
+ q(1844) => q(cri),
+ q(1845) => q(crj),
+ q(1846) => q(crk),
+ q(1847) => q(crl),
+ q(1848) => q(crm),
+ q(1849) => q(crn),
+ q(1850) => q(cro),
+ q(1851) => q(crq),
+ q(1852) => q(crr),
+ q(1853) => q(crs),
+ q(1854) => q(crt),
+ q(1855) => q(crv),
+ q(1856) => q(crw),
+ q(1857) => q(crx),
+ q(1858) => q(cry),
+ q(1859) => q(crz),
+ q(1860) => q(csa),
+ q(1861) => q(csc),
+ q(1862) => q(csd),
+ q(1863) => q(cse),
+ q(1864) => q(csf),
+ q(1865) => q(csg),
+ q(1866) => q(csh),
+ q(1867) => q(csi),
+ q(1868) => q(csj),
+ q(1869) => q(csk),
+ q(1870) => q(csl),
+ q(1871) => q(csm),
+ q(1872) => q(csn),
+ q(1873) => q(cso),
+ q(1874) => q(csq),
+ q(1875) => q(csr),
+ q(1876) => q(css),
+ q(1877) => q(cst),
+ q(1878) => q(csv),
+ q(1879) => q(csw),
+ q(1880) => q(csy),
+ q(1881) => q(csz),
+ q(1882) => q(cta),
+ q(1883) => q(ctc),
+ q(1884) => q(ctd),
+ q(1885) => q(cte),
+ q(1886) => q(ctg),
+ q(1887) => q(cth),
+ q(1888) => q(ctl),
+ q(1889) => q(ctm),
+ q(1890) => q(ctn),
+ q(1891) => q(cto),
+ q(1892) => q(ctp),
+ q(1893) => q(cts),
+ q(1894) => q(ctt),
+ q(1895) => q(ctu),
+ q(1896) => q(ctz),
+ q(1897) => q(cua),
+ q(1898) => q(cub),
+ q(1899) => q(cuc),
+ q(1900) => q(cug),
+ q(1901) => q(cuh),
+ q(1902) => q(cui),
+ q(1903) => q(cuj),
+ q(1904) => q(cuk),
+ q(1905) => q(cul),
+ q(1906) => q(cuo),
+ q(1907) => q(cup),
+ q(1908) => q(cuq),
+ q(1909) => q(cur),
+ q(1910) => q(cut),
+ q(1911) => q(cuu),
+ q(1912) => q(cuv),
+ q(1913) => q(cuw),
+ q(1914) => q(cux),
+ q(1915) => q(cvg),
+ q(1916) => q(cvn),
+ q(1917) => q(cwa),
+ q(1918) => q(cwb),
+ q(1919) => q(cwd),
+ q(1920) => q(cwe),
+ q(1921) => q(cwg),
+ q(1922) => q(cwt),
+ q(1923) => q(cya),
+ q(1924) => q(cyb),
+ q(1925) => q(cyo),
+ q(1926) => q(czh),
+ q(1927) => q(czk),
+ q(1928) => q(czn),
+ q(1929) => q(czo),
+ q(1930) => q(czt),
+ q(1931) => q(daa),
+ q(1932) => q(dac),
+ q(1933) => q(dad),
+ q(1934) => q(dae),
+ q(1935) => q(dag),
+ q(1936) => q(dah),
+ q(1937) => q(dai),
+ q(1938) => q(daj),
+ q(1939) => q(dal),
+ q(1940) => q(dam),
+ q(1941) => q(dao),
+ q(1942) => q(daq),
+ q(1943) => q(das),
+ q(1944) => q(dau),
+ q(1945) => q(dav),
+ q(1946) => q(daw),
+ q(1947) => q(dax),
+ q(1948) => q(daz),
+ q(1949) => q(dba),
+ q(1950) => q(dbb),
+ q(1951) => q(dbd),
+ q(1952) => q(dbe),
+ q(1953) => q(dbf),
+ q(1954) => q(dbg),
+ q(1955) => q(dbi),
+ q(1956) => q(dbj),
+ q(1957) => q(dbl),
+ q(1958) => q(dbm),
+ q(1959) => q(dbn),
+ q(1960) => q(dbo),
+ q(1961) => q(dbp),
+ q(1962) => q(dbq),
+ q(1963) => q(dbr),
+ q(1964) => q(dbt),
+ q(1965) => q(dbu),
+ q(1966) => q(dbv),
+ q(1967) => q(dbw),
+ q(1968) => q(dby),
+ q(1969) => q(dcc),
+ q(1970) => q(dcr),
+ q(1971) => q(dda),
+ q(1972) => q(ddd),
+ q(1973) => q(dde),
+ q(1974) => q(ddg),
+ q(1975) => q(ddi),
+ q(1976) => q(ddj),
+ q(1977) => q(ddn),
+ q(1978) => q(ddo),
+ q(1979) => q(ddr),
+ q(1980) => q(dds),
+ q(1981) => q(ddw),
+ q(1982) => q(dec),
+ q(1983) => q(ded),
+ q(1984) => q(dee),
+ q(1985) => q(def),
+ q(1986) => q(deg),
+ q(1987) => q(deh),
+ q(1988) => q(dei),
+ q(1989) => q(dek),
+ q(1990) => q(dem),
+ q(1991) => q(dep),
+ q(1992) => q(deq),
+ q(1993) => q(der),
+ q(1994) => q(des),
+ q(1995) => q(dev),
+ q(1996) => q(dez),
+ q(1997) => q(dga),
+ q(1998) => q(dgb),
+ q(1999) => q(dgc),
+ q(2000) => q(dgd),
+ q(2001) => q(dge),
+ q(2002) => q(dgg),
+ q(2003) => q(dgh),
+ q(2004) => q(dgi),
+ q(2005) => q(dgk),
+ q(2006) => q(dgl),
+ q(2007) => q(dgn),
+ q(2008) => q(dgo),
+ q(2009) => q(dgs),
+ q(2010) => q(dgt),
+ q(2011) => q(dgu),
+ q(2012) => q(dgw),
+ q(2013) => q(dgx),
+ q(2014) => q(dgz),
+ q(2015) => q(dhd),
+ q(2016) => q(dhg),
+ q(2017) => q(dhi),
+ q(2018) => q(dhl),
+ q(2019) => q(dhm),
+ q(2020) => q(dhn),
+ q(2021) => q(dho),
+ q(2022) => q(dhr),
+ q(2023) => q(dhs),
+ q(2024) => q(dhu),
+ q(2025) => q(dhv),
+ q(2026) => q(dhw),
+ q(2027) => q(dhx),
+ q(2028) => q(dia),
+ q(2029) => q(dib),
+ q(2030) => q(dic),
+ q(2031) => q(did),
+ q(2032) => q(dif),
+ q(2033) => q(dig),
+ q(2034) => q(dih),
+ q(2035) => q(dii),
+ q(2036) => q(dij),
+ q(2037) => q(dik),
+ q(2038) => q(dil),
+ q(2039) => q(dim),
+ q(2040) => q(dio),
+ q(2041) => q(dip),
+ q(2042) => q(diq),
+ q(2043) => q(dir),
+ q(2044) => q(dis),
+ q(2045) => q(dit),
+ q(2046) => q(diu),
+ q(2047) => q(diw),
+ q(2048) => q(dix),
+ q(2049) => q(diy),
+ q(2050) => q(diz),
+ q(2051) => q(dja),
+ q(2052) => q(djb),
+ q(2053) => q(djc),
+ q(2054) => q(djd),
+ q(2055) => q(dje),
+ q(2056) => q(djf),
+ q(2057) => q(dji),
+ q(2058) => q(djj),
+ q(2059) => q(djk),
+ q(2060) => q(djm),
+ q(2061) => q(djn),
+ q(2062) => q(djo),
+ q(2063) => q(djr),
+ q(2064) => q(dju),
+ q(2065) => q(djw),
+ q(2066) => q(dka),
+ q(2067) => q(dkk),
+ q(2068) => q(dkr),
+ q(2069) => q(dks),
+ q(2070) => q(dkx),
+ q(2071) => q(dlg),
+ q(2072) => q(dlk),
+ q(2073) => q(dlm),
+ q(2074) => q(dln),
+ q(2075) => q(dma),
+ q(2076) => q(dmb),
+ q(2077) => q(dmc),
+ q(2078) => q(dmd),
+ q(2079) => q(dme),
+ q(2080) => q(dmg),
+ q(2081) => q(dmk),
+ q(2082) => q(dml),
+ q(2083) => q(dmm),
+ q(2084) => q(dmo),
+ q(2085) => q(dmr),
+ q(2086) => q(dms),
+ q(2087) => q(dmu),
+ q(2088) => q(dmv),
+ q(2089) => q(dmw),
+ q(2090) => q(dmx),
+ q(2091) => q(dmy),
+ q(2092) => q(dna),
+ q(2093) => q(dnd),
+ q(2094) => q(dne),
+ q(2095) => q(dng),
+ q(2096) => q(dni),
+ q(2097) => q(dnj),
+ q(2098) => q(dnk),
+ q(2099) => q(dnn),
+ q(2100) => q(dnr),
+ q(2101) => q(dnt),
+ q(2102) => q(dnu),
+ q(2103) => q(dnv),
+ q(2104) => q(dnw),
+ q(2105) => q(dny),
+ q(2106) => q(doa),
+ q(2107) => q(dob),
+ q(2108) => q(doc),
+ q(2109) => q(doe),
+ q(2110) => q(dof),
+ q(2111) => q(doh),
+ q(2112) => q(dok),
+ q(2113) => q(dol),
+ q(2114) => q(don),
+ q(2115) => q(doo),
+ q(2116) => q(dop),
+ q(2117) => q(doq),
+ q(2118) => q(dor),
+ q(2119) => q(dos),
+ q(2120) => q(dot),
+ q(2121) => q(dov),
+ q(2122) => q(dow),
+ q(2123) => q(dox),
+ q(2124) => q(doy),
+ q(2125) => q(doz),
+ q(2126) => q(dpp),
+ q(2127) => q(drb),
+ q(2128) => q(drc),
+ q(2129) => q(drd),
+ q(2130) => q(dre),
+ q(2131) => q(drg),
+ q(2132) => q(dri),
+ q(2133) => q(drl),
+ q(2134) => q(drn),
+ q(2135) => q(dro),
+ q(2136) => q(drq),
+ q(2137) => q(drr),
+ q(2138) => q(drs),
+ q(2139) => q(drt),
+ q(2140) => q(dru),
+ q(2141) => q(dry),
+ q(2142) => q(dse),
+ q(2143) => q(dsh),
+ q(2144) => q(dsi),
+ q(2145) => q(dsl),
+ q(2146) => q(dsn),
+ q(2147) => q(dso),
+ q(2148) => q(dsq),
+ q(2149) => q(dta),
+ q(2150) => q(dtb),
+ q(2151) => q(dtd),
+ q(2152) => q(dth),
+ q(2153) => q(dti),
+ q(2154) => q(dtk),
+ q(2155) => q(dtm),
+ q(2156) => q(dtn),
+ q(2157) => q(dto),
+ q(2158) => q(dtp),
+ q(2159) => q(dtr),
+ q(2160) => q(dts),
+ q(2161) => q(dtt),
+ q(2162) => q(dtu),
+ q(2163) => q(dty),
+ q(2164) => q(dub),
+ q(2165) => q(duc),
+ q(2166) => q(dud),
+ q(2167) => q(due),
+ q(2168) => q(duf),
+ q(2169) => q(dug),
+ q(2170) => q(duh),
+ q(2171) => q(dui),
+ q(2172) => q(duk),
+ q(2173) => q(dul),
+ q(2174) => q(dun),
+ q(2175) => q(duo),
+ q(2176) => q(dup),
+ q(2177) => q(duq),
+ q(2178) => q(dur),
+ q(2179) => q(dus),
+ q(2180) => q(duu),
+ q(2181) => q(duv),
+ q(2182) => q(duw),
+ q(2183) => q(dux),
+ q(2184) => q(duy),
+ q(2185) => q(duz),
+ q(2186) => q(dva),
+ q(2187) => q(dwa),
+ q(2188) => q(dwr),
+ q(2189) => q(dws),
+ q(2190) => q(dwu),
+ q(2191) => q(dww),
+ q(2192) => q(dwy),
+ q(2193) => q(dya),
+ q(2194) => q(dyb),
+ q(2195) => q(dyd),
+ q(2196) => q(dyg),
+ q(2197) => q(dyi),
+ q(2198) => q(dym),
+ q(2199) => q(dyn),
+ q(2200) => q(dyo),
+ q(2201) => q(dyy),
+ q(2202) => q(dza),
+ q(2203) => q(dze),
+ q(2204) => q(dzg),
+ q(2205) => q(dzl),
+ q(2206) => q(dzn),
+ q(2207) => q(eaa),
+ q(2208) => q(ebg),
+ q(2209) => q(ebk),
+ q(2210) => q(ebo),
+ q(2211) => q(ebr),
+ q(2212) => q(ebu),
+ q(2213) => q(ecr),
+ q(2214) => q(ecs),
+ q(2215) => q(ecy),
+ q(2216) => q(eee),
+ q(2217) => q(efa),
+ q(2218) => q(efe),
+ q(2219) => q(ega),
+ q(2220) => q(egl),
+ q(2221) => q(ego),
+ q(2222) => q(ehu),
+ q(2223) => q(eip),
+ q(2224) => q(eit),
+ q(2225) => q(eiv),
+ q(2226) => q(eja),
+ q(2227) => q(ekc),
+ q(2228) => q(eke),
+ q(2229) => q(ekg),
+ q(2230) => q(eki),
+ q(2231) => q(ekk),
+ q(2232) => q(ekl),
+ q(2233) => q(ekm),
+ q(2234) => q(eko),
+ q(2235) => q(ekp),
+ q(2236) => q(ekr),
+ q(2237) => q(eky),
+ q(2238) => q(ele),
+ q(2239) => q(elh),
+ q(2240) => q(eli),
+ q(2241) => q(elk),
+ q(2242) => q(elm),
+ q(2243) => q(elo),
+ q(2244) => q(elu),
+ q(2245) => q(ema),
+ q(2246) => q(emb),
+ q(2247) => q(eme),
+ q(2248) => q(emg),
+ q(2249) => q(emi),
+ q(2250) => q(emk),
+ q(2251) => q(emm),
+ q(2252) => q(emn),
+ q(2253) => q(emp),
+ q(2254) => q(ems),
+ q(2255) => q(emu),
+ q(2256) => q(emw),
+ q(2257) => q(emx),
+ q(2258) => q(emy),
+ q(2259) => q(ena),
+ q(2260) => q(enb),
+ q(2261) => q(enc),
+ q(2262) => q(end),
+ q(2263) => q(enf),
+ q(2264) => q(enh),
+ q(2265) => q(enl),
+ q(2266) => q(enn),
+ q(2267) => q(eno),
+ q(2268) => q(enq),
+ q(2269) => q(enr),
+ q(2270) => q(enu),
+ q(2271) => q(env),
+ q(2272) => q(enw),
+ q(2273) => q(enx),
+ q(2274) => q(eot),
+ q(2275) => q(epi),
+ q(2276) => q(era),
+ q(2277) => q(erg),
+ q(2278) => q(erh),
+ q(2279) => q(eri),
+ q(2280) => q(erk),
+ q(2281) => q(ero),
+ q(2282) => q(err),
+ q(2283) => q(ers),
+ q(2284) => q(ert),
+ q(2285) => q(erw),
+ q(2286) => q(ese),
+ q(2287) => q(esg),
+ q(2288) => q(esh),
+ q(2289) => q(esi),
+ q(2290) => q(esk),
+ q(2291) => q(esl),
+ q(2292) => q(esm),
+ q(2293) => q(esn),
+ q(2294) => q(eso),
+ q(2295) => q(esq),
+ q(2296) => q(ess),
+ q(2297) => q(esu),
+ q(2298) => q(esy),
+ q(2299) => q(etb),
+ q(2300) => q(etc),
+ q(2301) => q(eth),
+ q(2302) => q(etn),
+ q(2303) => q(eto),
+ q(2304) => q(etr),
+ q(2305) => q(ets),
+ q(2306) => q(ett),
+ q(2307) => q(etu),
+ q(2308) => q(etx),
+ q(2309) => q(etz),
+ q(2310) => q(eve),
+ q(2311) => q(evh),
+ q(2312) => q(evn),
+ q(2313) => q(ext),
+ q(2314) => q(eya),
+ q(2315) => q(eyo),
+ q(2316) => q(eza),
+ q(2317) => q(eze),
+ q(2318) => q(faa),
+ q(2319) => q(fab),
+ q(2320) => q(fad),
+ q(2321) => q(faf),
+ q(2322) => q(fag),
+ q(2323) => q(fah),
+ q(2324) => q(fai),
+ q(2325) => q(faj),
+ q(2326) => q(fak),
+ q(2327) => q(fal),
+ q(2328) => q(fam),
+ q(2329) => q(fap),
+ q(2330) => q(far),
+ q(2331) => q(fau),
+ q(2332) => q(fax),
+ q(2333) => q(fay),
+ q(2334) => q(faz),
+ q(2335) => q(fbl),
+ q(2336) => q(fcs),
+ q(2337) => q(fer),
+ q(2338) => q(ffi),
+ q(2339) => q(ffm),
+ q(2340) => q(fgr),
+ q(2341) => q(fia),
+ q(2342) => q(fie),
+ q(2343) => q(fip),
+ q(2344) => q(fir),
+ q(2345) => q(fit),
+ q(2346) => q(fiw),
+ q(2347) => q(fkk),
+ q(2348) => q(fkv),
+ q(2349) => q(fla),
+ q(2350) => q(flh),
+ q(2351) => q(fli),
+ q(2352) => q(fll),
+ q(2353) => q(fln),
+ q(2354) => q(flr),
+ q(2355) => q(fly),
+ q(2356) => q(fmp),
+ q(2357) => q(fmu),
+ q(2358) => q(fnb),
+ q(2359) => q(fng),
+ q(2360) => q(fni),
+ q(2361) => q(fod),
+ q(2362) => q(foi),
+ q(2363) => q(fom),
+ q(2364) => q(for),
+ q(2365) => q(fos),
+ q(2366) => q(fpe),
+ q(2367) => q(fqs),
+ q(2368) => q(frc),
+ q(2369) => q(frd),
+ q(2370) => q(frk),
+ q(2371) => q(frp),
+ q(2372) => q(frq),
+ q(2373) => q(frt),
+ q(2374) => q(fse),
+ q(2375) => q(fsl),
+ q(2376) => q(fss),
+ q(2377) => q(fub),
+ q(2378) => q(fuc),
+ q(2379) => q(fud),
+ q(2380) => q(fue),
+ q(2381) => q(fuf),
+ q(2382) => q(fuh),
+ q(2383) => q(fui),
+ q(2384) => q(fuj),
+ q(2385) => q(fum),
+ q(2386) => q(fun),
+ q(2387) => q(fuq),
+ q(2388) => q(fut),
+ q(2389) => q(fuu),
+ q(2390) => q(fuv),
+ q(2391) => q(fuy),
+ q(2392) => q(fvr),
+ q(2393) => q(fwa),
+ q(2394) => q(fwe),
+ q(2395) => q(gab),
+ q(2396) => q(gac),
+ q(2397) => q(gad),
+ q(2398) => q(gae),
+ q(2399) => q(gaf),
+ q(2400) => q(gag),
+ q(2401) => q(gah),
+ q(2402) => q(gai),
+ q(2403) => q(gaj),
+ q(2404) => q(gak),
+ q(2405) => q(gal),
+ q(2406) => q(gam),
+ q(2407) => q(gan),
+ q(2408) => q(gao),
+ q(2409) => q(gap),
+ q(2410) => q(gaq),
+ q(2411) => q(gar),
+ q(2412) => q(gas),
+ q(2413) => q(gat),
+ q(2414) => q(gau),
+ q(2415) => q(gaw),
+ q(2416) => q(gax),
+ q(2417) => q(gaz),
+ q(2418) => q(gbb),
+ q(2419) => q(gbd),
+ q(2420) => q(gbe),
+ q(2421) => q(gbf),
+ q(2422) => q(gbg),
+ q(2423) => q(gbh),
+ q(2424) => q(gbi),
+ q(2425) => q(gbj),
+ q(2426) => q(gbk),
+ q(2427) => q(gbl),
+ q(2428) => q(gbm),
+ q(2429) => q(gbn),
+ q(2430) => q(gbo),
+ q(2431) => q(gbp),
+ q(2432) => q(gbq),
+ q(2433) => q(gbr),
+ q(2434) => q(gbs),
+ q(2435) => q(gbu),
+ q(2436) => q(gbv),
+ q(2437) => q(gbw),
+ q(2438) => q(gbx),
+ q(2439) => q(gby),
+ q(2440) => q(gbz),
+ q(2441) => q(gcc),
+ q(2442) => q(gcd),
+ q(2443) => q(gce),
+ q(2444) => q(gcf),
+ q(2445) => q(gcl),
+ q(2446) => q(gcn),
+ q(2447) => q(gcr),
+ q(2448) => q(gct),
+ q(2449) => q(gda),
+ q(2450) => q(gdb),
+ q(2451) => q(gdc),
+ q(2452) => q(gdd),
+ q(2453) => q(gde),
+ q(2454) => q(gdf),
+ q(2455) => q(gdg),
+ q(2456) => q(gdh),
+ q(2457) => q(gdi),
+ q(2458) => q(gdj),
+ q(2459) => q(gdk),
+ q(2460) => q(gdl),
+ q(2461) => q(gdm),
+ q(2462) => q(gdn),
+ q(2463) => q(gdo),
+ q(2464) => q(gdq),
+ q(2465) => q(gdr),
+ q(2466) => q(gds),
+ q(2467) => q(gdt),
+ q(2468) => q(gdu),
+ q(2469) => q(gdx),
+ q(2470) => q(gea),
+ q(2471) => q(geb),
+ q(2472) => q(gec),
+ q(2473) => q(ged),
+ q(2474) => q(geg),
+ q(2475) => q(geh),
+ q(2476) => q(gei),
+ q(2477) => q(gej),
+ q(2478) => q(gek),
+ q(2479) => q(gel),
+ q(2480) => q(geq),
+ q(2481) => q(ges),
+ q(2482) => q(gev),
+ q(2483) => q(gew),
+ q(2484) => q(gex),
+ q(2485) => q(gey),
+ q(2486) => q(gfk),
+ q(2487) => q(gft),
+ q(2488) => q(gga),
+ q(2489) => q(ggb),
+ q(2490) => q(ggd),
+ q(2491) => q(gge),
+ q(2492) => q(ggg),
+ q(2493) => q(ggk),
+ q(2494) => q(ggl),
+ q(2495) => q(ggt),
+ q(2496) => q(ggu),
+ q(2497) => q(ggw),
+ q(2498) => q(gha),
+ q(2499) => q(ghc),
+ q(2500) => q(ghe),
+ q(2501) => q(ghh),
+ q(2502) => q(ghk),
+ q(2503) => q(ghl),
+ q(2504) => q(ghn),
+ q(2505) => q(gho),
+ q(2506) => q(ghr),
+ q(2507) => q(ghs),
+ q(2508) => q(ght),
+ q(2509) => q(gia),
+ q(2510) => q(gib),
+ q(2511) => q(gic),
+ q(2512) => q(gid),
+ q(2513) => q(gig),
+ q(2514) => q(gih),
+ q(2515) => q(gim),
+ q(2516) => q(gin),
+ q(2517) => q(gip),
+ q(2518) => q(giq),
+ q(2519) => q(gir),
+ q(2520) => q(gis),
+ q(2521) => q(git),
+ q(2522) => q(giu),
+ q(2523) => q(giw),
+ q(2524) => q(gix),
+ q(2525) => q(giy),
+ q(2526) => q(giz),
+ q(2527) => q(gji),
+ q(2528) => q(gjk),
+ q(2529) => q(gjm),
+ q(2530) => q(gjn),
+ q(2531) => q(gjr),
+ q(2532) => q(gju),
+ q(2533) => q(gka),
+ q(2534) => q(gke),
+ q(2535) => q(gkn),
+ q(2536) => q(gko),
+ q(2537) => q(gkp),
+ q(2538) => q(gku),
+ q(2539) => q(glc),
+ q(2540) => q(gld),
+ q(2541) => q(glh),
+ q(2542) => q(gli),
+ q(2543) => q(glj),
+ q(2544) => q(glk),
+ q(2545) => q(gll),
+ q(2546) => q(glo),
+ q(2547) => q(glr),
+ q(2548) => q(glu),
+ q(2549) => q(glw),
+ q(2550) => q(gly),
+ q(2551) => q(gma),
+ q(2552) => q(gmb),
+ q(2553) => q(gmd),
+ q(2554) => q(gmg),
+ q(2555) => q(gml),
+ q(2556) => q(gmm),
+ q(2557) => q(gmn),
+ q(2558) => q(gmu),
+ q(2559) => q(gmv),
+ q(2560) => q(gmx),
+ q(2561) => q(gmy),
+ q(2562) => q(gmz),
+ q(2563) => q(gna),
+ q(2564) => q(gnb),
+ q(2565) => q(gnc),
+ q(2566) => q(gnd),
+ q(2567) => q(gne),
+ q(2568) => q(gng),
+ q(2569) => q(gnh),
+ q(2570) => q(gni),
+ q(2571) => q(gnq),
+ q(2572) => q(gnl),
+ q(2573) => q(gnm),
+ q(2574) => q(gnn),
+ q(2575) => q(gno),
+ q(2576) => q(gnr),
+ q(2577) => q(gnt),
+ q(2578) => q(gnu),
+ q(2579) => q(gnw),
+ q(2580) => q(gnz),
+ q(2581) => q(goa),
+ q(2582) => q(gob),
+ q(2583) => q(goc),
+ q(2584) => q(god),
+ q(2585) => q(goe),
+ q(2586) => q(gof),
+ q(2587) => q(gog),
+ q(2588) => q(goi),
+ q(2589) => q(goj),
+ q(2590) => q(gok),
+ q(2591) => q(gol),
+ q(2592) => q(gom),
+ q(2593) => q(goo),
+ q(2594) => q(gop),
+ q(2595) => q(goq),
+ q(2596) => q(gos),
+ q(2597) => q(gou),
+ q(2598) => q(gow),
+ q(2599) => q(gox),
+ q(2600) => q(goy),
+ q(2601) => q(goz),
+ q(2602) => q(gpa),
+ q(2603) => q(gpe),
+ q(2604) => q(gpn),
+ q(2605) => q(gqa),
+ q(2606) => q(gqi),
+ q(2607) => q(gqn),
+ q(2608) => q(gqr),
+ q(2609) => q(gqu),
+ q(2610) => q(gra),
+ q(2611) => q(grd),
+ q(2612) => q(grg),
+ q(2613) => q(grh),
+ q(2614) => q(gri),
+ q(2615) => q(grj),
+ q(2616) => q(grm),
+ q(2617) => q(gro),
+ q(2618) => q(grq),
+ q(2619) => q(grr),
+ q(2620) => q(grs),
+ q(2621) => q(grt),
+ q(2622) => q(gru),
+ q(2623) => q(grv),
+ q(2624) => q(grw),
+ q(2625) => q(grx),
+ q(2626) => q(gry),
+ q(2627) => q(grz),
+ q(2628) => q(gse),
+ q(2629) => q(gsg),
+ q(2630) => q(gsl),
+ q(2631) => q(gsm),
+ q(2632) => q(gsn),
+ q(2633) => q(gso),
+ q(2634) => q(gsp),
+ q(2635) => q(gss),
+ q(2636) => q(gta),
+ q(2637) => q(gtu),
+ q(2638) => q(gua),
+ q(2639) => q(gub),
+ q(2640) => q(guc),
+ q(2641) => q(gud),
+ q(2642) => q(gue),
+ q(2643) => q(guf),
+ q(2644) => q(gug),
+ q(2645) => q(guh),
+ q(2646) => q(gui),
+ q(2647) => q(guk),
+ q(2648) => q(gul),
+ q(2649) => q(gum),
+ q(2650) => q(gun),
+ q(2651) => q(guo),
+ q(2652) => q(gup),
+ q(2653) => q(yif),
+ q(2654) => q(gur),
+ q(2655) => q(gus),
+ q(2656) => q(gut),
+ q(2657) => q(guu),
+ q(2658) => q(guw),
+ q(2659) => q(gux),
+ q(2660) => q(guz),
+ q(2661) => q(gva),
+ q(2662) => q(gvc),
+ q(2663) => q(gve),
+ q(2664) => q(gvf),
+ q(2665) => q(gvj),
+ q(2666) => q(gvl),
+ q(2667) => q(gvm),
+ q(2668) => q(gvn),
+ q(2669) => q(gvo),
+ q(2670) => q(gvp),
+ q(2671) => q(gvr),
+ q(2672) => q(gvs),
+ q(2673) => q(gvy),
+ q(2674) => q(gwa),
+ q(2675) => q(gwb),
+ q(2676) => q(gwc),
+ q(2677) => q(gwd),
+ q(2678) => q(gwe),
+ q(2679) => q(gwf),
+ q(2680) => q(gwg),
+ q(2681) => q(gwj),
+ q(2682) => q(gwm),
+ q(2683) => q(gwn),
+ q(2684) => q(gwr),
+ q(2685) => q(gwt),
+ q(2686) => q(gwu),
+ q(2687) => q(gww),
+ q(2688) => q(gwx),
+ q(2689) => q(gxx),
+ q(2690) => q(gya),
+ q(2691) => q(gyb),
+ q(2692) => q(gyd),
+ q(2693) => q(gye),
+ q(2694) => q(gyf),
+ q(2695) => q(gyg),
+ q(2696) => q(gyi),
+ q(2697) => q(gyl),
+ q(2698) => q(gym),
+ q(2699) => q(gyn),
+ q(2700) => q(gyr),
+ q(2701) => q(gyy),
+ q(2702) => q(gza),
+ q(2703) => q(gzi),
+ q(2704) => q(gzn),
+ q(2705) => q(haa),
+ q(2706) => q(hab),
+ q(2707) => q(hac),
+ q(2708) => q(had),
+ q(2709) => q(hae),
+ q(2710) => q(haf),
+ q(2711) => q(hag),
+ q(2712) => q(hah),
+ q(2713) => q(haj),
+ q(2714) => q(hak),
+ q(2715) => q(hal),
+ q(2716) => q(ham),
+ q(2717) => q(han),
+ q(2718) => q(hao),
+ q(2719) => q(hap),
+ q(2720) => q(haq),
+ q(2721) => q(har),
+ q(2722) => q(has),
+ q(2723) => q(hav),
+ q(2724) => q(hax),
+ q(2725) => q(hay),
+ q(2726) => q(haz),
+ q(2727) => q(hba),
+ q(2728) => q(hbb),
+ q(2729) => q(hbn),
+ q(2730) => q(hbo),
+ q(2731) => q(hbu),
+ q(2732) => q(hca),
+ q(2733) => q(hch),
+ q(2734) => q(hdn),
+ q(2735) => q(hds),
+ q(2736) => q(hdy),
+ q(2737) => q(hea),
+ q(2738) => q(hed),
+ q(2739) => q(heg),
+ q(2740) => q(heh),
+ q(2741) => q(hei),
+ q(2742) => q(hem),
+ q(2743) => q(hgm),
+ q(2744) => q(hgw),
+ q(2745) => q(hhi),
+ q(2746) => q(hhr),
+ q(2747) => q(hhy),
+ q(2748) => q(hia),
+ q(2749) => q(hib),
+ q(2750) => q(hid),
+ q(2751) => q(hif),
+ q(2752) => q(hig),
+ q(2753) => q(hih),
+ q(2754) => q(hii),
+ q(2755) => q(hij),
+ q(2756) => q(hik),
+ q(2757) => q(hio),
+ q(2758) => q(hir),
+ q(2759) => q(hiw),
+ q(2760) => q(hix),
+ q(2761) => q(hji),
+ q(2762) => q(hka),
+ q(2763) => q(hke),
+ q(2764) => q(hkk),
+ q(2765) => q(hks),
+ q(2766) => q(hla),
+ q(2767) => q(hlb),
+ q(2768) => q(hld),
+ q(2769) => q(hle),
+ q(2770) => q(hlt),
+ q(2771) => q(hlu),
+ q(2772) => q(hma),
+ q(2773) => q(hmb),
+ q(2774) => q(hmc),
+ q(2775) => q(hmd),
+ q(2776) => q(hme),
+ q(2777) => q(hmf),
+ q(2778) => q(hmg),
+ q(2779) => q(hmh),
+ q(2780) => q(hmi),
+ q(2781) => q(hmj),
+ q(2782) => q(hmk),
+ q(2783) => q(hml),
+ q(2784) => q(hmm),
+ q(2785) => q(hmp),
+ q(2786) => q(hmq),
+ q(2787) => q(hmr),
+ q(2788) => q(hms),
+ q(2789) => q(hmt),
+ q(2790) => q(hmu),
+ q(2791) => q(hmv),
+ q(2792) => q(hmw),
+ q(2793) => q(hmy),
+ q(2794) => q(hmz),
+ q(2795) => q(hna),
+ q(2796) => q(hnd),
+ q(2797) => q(hne),
+ q(2798) => q(hnh),
+ q(2799) => q(hni),
+ q(2800) => q(hnj),
+ q(2801) => q(hnn),
+ q(2802) => q(hno),
+ q(2803) => q(hns),
+ q(2804) => q(hnu),
+ q(2805) => q(hoa),
+ q(2806) => q(hob),
+ q(2807) => q(hoc),
+ q(2808) => q(hod),
+ q(2809) => q(hoe),
+ q(2810) => q(hoh),
+ q(2811) => q(hoi),
+ q(2812) => q(hoj),
+ q(2813) => q(hol),
+ q(2814) => q(hom),
+ q(2815) => q(hoo),
+ q(2816) => q(hop),
+ q(2817) => q(hor),
+ q(2818) => q(hos),
+ q(2819) => q(hot),
+ q(2820) => q(hov),
+ q(2821) => q(how),
+ q(2822) => q(hoy),
+ q(2823) => q(hoz),
+ q(2824) => q(hpo),
+ q(2825) => q(hps),
+ q(2826) => q(hra),
+ q(2827) => q(hrc),
+ q(2828) => q(hre),
+ q(2829) => q(hrk),
+ q(2830) => q(hrm),
+ q(2831) => q(hro),
+ q(2832) => q(hrp),
+ q(2833) => q(hrt),
+ q(2834) => q(hru),
+ q(2835) => q(hrw),
+ q(2836) => q(hrx),
+ q(2837) => q(hrz),
+ q(2838) => q(hsh),
+ q(2839) => q(hsl),
+ q(2840) => q(hsn),
+ q(2841) => q(hss),
+ q(2842) => q(hti),
+ q(2843) => q(hto),
+ q(2844) => q(hts),
+ q(2845) => q(htu),
+ q(2846) => q(htx),
+ q(2847) => q(hub),
+ q(2848) => q(huc),
+ q(2849) => q(hud),
+ q(2850) => q(hue),
+ q(2851) => q(huf),
+ q(2852) => q(hug),
+ q(2853) => q(huh),
+ q(2854) => q(hui),
+ q(2855) => q(huj),
+ q(2856) => q(huk),
+ q(2857) => q(hul),
+ q(2858) => q(hum),
+ q(2859) => q(huo),
+ q(2860) => q(huq),
+ q(2861) => q(hur),
+ q(2862) => q(hus),
+ q(2863) => q(hut),
+ q(2864) => q(huu),
+ q(2865) => q(huv),
+ q(2866) => q(huw),
+ q(2867) => q(hux),
+ q(2868) => q(huy),
+ q(2869) => q(huz),
+ q(2870) => q(hvc),
+ q(2871) => q(hve),
+ q(2872) => q(hvk),
+ q(2873) => q(hvn),
+ q(2874) => q(hvv),
+ q(2875) => q(hwa),
+ q(2876) => q(hwc),
+ q(2877) => q(hwo),
+ q(2878) => q(hya),
+ q(2879) => q(iai),
+ q(2880) => q(ian),
+ q(2881) => q(iar),
+ q(2882) => q(ibb),
+ q(2883) => q(ibd),
+ q(2884) => q(ibe),
+ q(2885) => q(ibg),
+ q(2886) => q(ibl),
+ q(2887) => q(ibm),
+ q(2888) => q(ibn),
+ q(2889) => q(ibr),
+ q(2890) => q(ibu),
+ q(2891) => q(iby),
+ q(2892) => q(ica),
+ q(2893) => q(ich),
+ q(2894) => q(icl),
+ q(2895) => q(icr),
+ q(2896) => q(ida),
+ q(2897) => q(idb),
+ q(2898) => q(idc),
+ q(2899) => q(idd),
+ q(2900) => q(ide),
+ q(2901) => q(idi),
+ q(2902) => q(idr),
+ q(2903) => q(ids),
+ q(2904) => q(idt),
+ q(2905) => q(idu),
+ q(2906) => q(ifa),
+ q(2907) => q(ifb),
+ q(2908) => q(ife),
+ q(2909) => q(iff),
+ q(2910) => q(ifk),
+ q(2911) => q(ifm),
+ q(2912) => q(ifu),
+ q(2913) => q(ify),
+ q(2914) => q(igb),
+ q(2915) => q(ige),
+ q(2916) => q(igg),
+ q(2917) => q(igl),
+ q(2918) => q(igm),
+ q(2919) => q(ign),
+ q(2920) => q(igo),
+ q(2921) => q(igs),
+ q(2922) => q(igw),
+ q(2923) => q(ihb),
+ q(2924) => q(ihi),
+ q(2925) => q(ihp),
+ q(2926) => q(ihw),
+ q(2927) => q(iin),
+ q(2928) => q(ijc),
+ q(2929) => q(ije),
+ q(2930) => q(ijj),
+ q(2931) => q(ijn),
+ q(2932) => q(ijs),
+ q(2933) => q(ike),
+ q(2934) => q(iki),
+ q(2935) => q(ikk),
+ q(2936) => q(ikl),
+ q(2937) => q(iko),
+ q(2938) => q(ikp),
+ q(2939) => q(ikr),
+ q(2940) => q(iks),
+ q(2941) => q(ikt),
+ q(2942) => q(ikv),
+ q(2943) => q(ikw),
+ q(2944) => q(ikx),
+ q(2945) => q(ikz),
+ q(2946) => q(ila),
+ q(2947) => q(ilb),
+ q(2948) => q(ilg),
+ q(2949) => q(ili),
+ q(2950) => q(ilk),
+ q(2951) => q(ilm),
+ q(2952) => q(ilp),
+ q(2953) => q(ils),
+ q(2954) => q(ilu),
+ q(2955) => q(ilv),
+ q(2956) => q(ima),
+ q(2957) => q(imi),
+ q(2958) => q(iml),
+ q(2959) => q(imn),
+ q(2960) => q(imo),
+ q(2961) => q(imr),
+ q(2962) => q(ims),
+ q(2963) => q(imy),
+ q(2964) => q(inb),
+ q(2965) => q(ing),
+ q(2966) => q(inj),
+ q(2967) => q(inl),
+ q(2968) => q(inm),
+ q(2969) => q(inn),
+ q(2970) => q(ino),
+ q(2971) => q(inp),
+ q(2972) => q(ins),
+ q(2973) => q(int),
+ q(2974) => q(inz),
+ q(2975) => q(ior),
+ q(2976) => q(iou),
+ q(2977) => q(iow),
+ q(2978) => q(ipi),
+ q(2979) => q(ipo),
+ q(2980) => q(iqu),
+ q(2981) => q(iqw),
+ q(2982) => q(ire),
+ q(2983) => q(irh),
+ q(2984) => q(iri),
+ q(2985) => q(irk),
+ q(2986) => q(irn),
+ q(2987) => q(irr),
+ q(2988) => q(iru),
+ q(2989) => q(irx),
+ q(2990) => q(iry),
+ q(2991) => q(isa),
+ q(2992) => q(isc),
+ q(2993) => q(isd),
+ q(2994) => q(ise),
+ q(2995) => q(isg),
+ q(2996) => q(ish),
+ q(2997) => q(isi),
+ q(2998) => q(isk),
+ q(2999) => q(ism),
+ q(3000) => q(isn),
+ q(3001) => q(iso),
+ q(3002) => q(isr),
+ q(3003) => q(ist),
+ q(3004) => q(isu),
+ q(3005) => q(itb),
+ q(3006) => q(itd),
+ q(3007) => q(ite),
+ q(3008) => q(iti),
+ q(3009) => q(itk),
+ q(3010) => q(itl),
+ q(3011) => q(itm),
+ q(3012) => q(ito),
+ q(3013) => q(itr),
+ q(3014) => q(its),
+ q(3015) => q(itt),
+ q(3016) => q(itv),
+ q(3017) => q(itw),
+ q(3018) => q(itx),
+ q(3019) => q(ity),
+ q(3020) => q(itz),
+ q(3021) => q(ium),
+ q(3022) => q(ivb),
+ q(3023) => q(ivv),
+ q(3024) => q(iwk),
+ q(3025) => q(iwm),
+ q(3026) => q(iwo),
+ q(3027) => q(iws),
+ q(3028) => q(ixc),
+ q(3029) => q(ixl),
+ q(3030) => q(iya),
+ q(3031) => q(iyo),
+ q(3032) => q(iyx),
+ q(3033) => q(izh),
+ q(3034) => q(izr),
+ q(3035) => q(izz),
+ q(3036) => q(jaa),
+ q(3037) => q(jab),
+ q(3038) => q(jac),
+ q(3039) => q(jad),
+ q(3040) => q(jae),
+ q(3041) => q(jaf),
+ q(3042) => q(jah),
+ q(3043) => q(jaj),
+ q(3044) => q(jak),
+ q(3045) => q(jal),
+ q(3046) => q(jam),
+ q(3047) => q(jan),
+ q(3048) => q(jao),
+ q(3049) => q(jaq),
+ q(3050) => q(jas),
+ q(3051) => q(jat),
+ q(3052) => q(jau),
+ q(3053) => q(jax),
+ q(3054) => q(jay),
+ q(3055) => q(jaz),
+ q(3056) => q(jbe),
+ q(3057) => q(jbi),
+ q(3058) => q(jbj),
+ q(3059) => q(jbk),
+ q(3060) => q(jbn),
+ q(3061) => q(jbr),
+ q(3062) => q(jbt),
+ q(3063) => q(jbu),
+ q(3064) => q(jbw),
+ q(3065) => q(jcs),
+ q(3066) => q(jct),
+ q(3067) => q(jda),
+ q(3068) => q(jdg),
+ q(3069) => q(jdt),
+ q(3070) => q(jeb),
+ q(3071) => q(jee),
+ q(3072) => q(jeg),
+ q(3073) => q(jeh),
+ q(3074) => q(jei),
+ q(3075) => q(jek),
+ q(3076) => q(jel),
+ q(3077) => q(jen),
+ q(3078) => q(jer),
+ q(3079) => q(jet),
+ q(3080) => q(jeu),
+ q(3081) => q(jgb),
+ q(3082) => q(jge),
+ q(3083) => q(jgk),
+ q(3084) => q(jgo),
+ q(3085) => q(jhi),
+ q(3086) => q(jhs),
+ q(3087) => q(jia),
+ q(3088) => q(jib),
+ q(3089) => q(jic),
+ q(3090) => q(jid),
+ q(3091) => q(jie),
+ q(3092) => q(jig),
+ q(3093) => q(jih),
+ q(3094) => q(jii),
+ q(3095) => q(jil),
+ q(3096) => q(jim),
+ q(3097) => q(jio),
+ q(3098) => q(jiq),
+ q(3099) => q(jit),
+ q(3100) => q(jiu),
+ q(3101) => q(jiv),
+ q(3102) => q(jiy),
+ q(3103) => q(jje),
+ q(3104) => q(jjr),
+ q(3105) => q(jka),
+ q(3106) => q(jkm),
+ q(3107) => q(jko),
+ q(3108) => q(jkp),
+ q(3109) => q(jkr),
+ q(3110) => q(jku),
+ q(3111) => q(jle),
+ q(3112) => q(jls),
+ q(3113) => q(jma),
+ q(3114) => q(jmb),
+ q(3115) => q(jmc),
+ q(3116) => q(jmd),
+ q(3117) => q(jmi),
+ q(3118) => q(jml),
+ q(3119) => q(jmn),
+ q(3120) => q(jmr),
+ q(3121) => q(jms),
+ q(3122) => q(jmw),
+ q(3123) => q(jmx),
+ q(3124) => q(jna),
+ q(3125) => q(jnd),
+ q(3126) => q(jng),
+ q(3127) => q(jni),
+ q(3128) => q(jnj),
+ q(3129) => q(jnl),
+ q(3130) => q(jns),
+ q(3131) => q(job),
+ q(3132) => q(jod),
+ q(3133) => q(jog),
+ q(3134) => q(jor),
+ q(3135) => q(jos),
+ q(3136) => q(jow),
+ q(3137) => q(jpa),
+ q(3138) => q(jqr),
+ q(3139) => q(jra),
+ q(3140) => q(jrr),
+ q(3141) => q(jrt),
+ q(3142) => q(jru),
+ q(3143) => q(jsl),
+ q(3144) => q(jua),
+ q(3145) => q(jub),
+ q(3146) => q(juc),
+ q(3147) => q(jud),
+ q(3148) => q(juh),
+ q(3149) => q(jui),
+ q(3150) => q(juk),
+ q(3151) => q(jul),
+ q(3152) => q(jum),
+ q(3153) => q(jun),
+ q(3154) => q(juo),
+ q(3155) => q(jup),
+ q(3156) => q(jur),
+ q(3157) => q(jus),
+ q(3158) => q(jut),
+ q(3159) => q(juu),
+ q(3160) => q(juw),
+ q(3161) => q(juy),
+ q(3162) => q(jvd),
+ q(3163) => q(jvn),
+ q(3164) => q(jwi),
+ q(3165) => q(jya),
+ q(3166) => q(jye),
+ q(3167) => q(jyy),
+ q(3168) => q(kad),
+ q(3169) => q(kae),
+ q(3170) => q(kaf),
+ q(3171) => q(kag),
+ q(3172) => q(kah),
+ q(3173) => q(kai),
+ q(3174) => q(kaj),
+ q(3175) => q(kak),
+ q(3176) => q(kao),
+ q(3177) => q(kap),
+ q(3178) => q(kaq),
+ q(3179) => q(kav),
+ q(3180) => q(kax),
+ q(3181) => q(kay),
+ q(3182) => q(kba),
+ q(3183) => q(kbb),
+ q(3184) => q(kbc),
+ q(3185) => q(kbe),
+ q(3186) => q(kbg),
+ q(3187) => q(kbh),
+ q(3188) => q(kbi),
+ q(3189) => q(kbj),
+ q(3190) => q(kbk),
+ q(3191) => q(kbl),
+ q(3192) => q(kbm),
+ q(3193) => q(kbn),
+ q(3194) => q(kbo),
+ q(3195) => q(kbp),
+ q(3196) => q(kbq),
+ q(3197) => q(kbr),
+ q(3198) => q(kbs),
+ q(3199) => q(kbt),
+ q(3200) => q(kbu),
+ q(3201) => q(kbv),
+ q(3202) => q(kbw),
+ q(3203) => q(kbx),
+ q(3204) => q(kby),
+ q(3205) => q(kbz),
+ q(3206) => q(kca),
+ q(3207) => q(kcb),
+ q(3208) => q(kcc),
+ q(3209) => q(kcd),
+ q(3210) => q(kce),
+ q(3211) => q(kcf),
+ q(3212) => q(kcg),
+ q(3213) => q(kch),
+ q(3214) => q(kci),
+ q(3215) => q(kcj),
+ q(3216) => q(kck),
+ q(3217) => q(kcl),
+ q(3218) => q(kcm),
+ q(3219) => q(kcn),
+ q(3220) => q(kco),
+ q(3221) => q(kcp),
+ q(3222) => q(kcq),
+ q(3223) => q(kcr),
+ q(3224) => q(kcs),
+ q(3225) => q(kct),
+ q(3226) => q(kcu),
+ q(3227) => q(kcv),
+ q(3228) => q(kcw),
+ q(3229) => q(kcx),
+ q(3230) => q(kcy),
+ q(3231) => q(kcz),
+ q(3232) => q(kda),
+ q(3233) => q(kdc),
+ q(3234) => q(kdd),
+ q(3235) => q(kde),
+ q(3236) => q(kdf),
+ q(3237) => q(kdg),
+ q(3238) => q(kdh),
+ q(3239) => q(kdi),
+ q(3240) => q(kdj),
+ q(3241) => q(kdk),
+ q(3242) => q(kdl),
+ q(3243) => q(kdm),
+ q(3244) => q(kdn),
+ q(3245) => q(kdp),
+ q(3246) => q(kdq),
+ q(3247) => q(kdr),
+ q(3248) => q(kdt),
+ q(3249) => q(kdu),
+ q(3250) => q(kdw),
+ q(3251) => q(kdx),
+ q(3252) => q(kdy),
+ q(3253) => q(kdz),
+ q(3254) => q(kea),
+ q(3255) => q(keb),
+ q(3256) => q(kec),
+ q(3257) => q(ked),
+ q(3258) => q(kee),
+ q(3259) => q(kef),
+ q(3260) => q(keg),
+ q(3261) => q(keh),
+ q(3262) => q(kei),
+ q(3263) => q(kej),
+ q(3264) => q(kek),
+ q(3265) => q(kel),
+ q(3266) => q(kem),
+ q(3267) => q(ken),
+ q(3268) => q(keo),
+ q(3269) => q(kep),
+ q(3270) => q(keq),
+ q(3271) => q(ker),
+ q(3272) => q(kes),
+ q(3273) => q(ket),
+ q(3274) => q(keu),
+ q(3275) => q(kev),
+ q(3276) => q(kew),
+ q(3277) => q(kex),
+ q(3278) => q(key),
+ q(3279) => q(kez),
+ q(3280) => q(kfa),
+ q(3281) => q(kfb),
+ q(3282) => q(kfc),
+ q(3283) => q(kfd),
+ q(3284) => q(kfe),
+ q(3285) => q(kff),
+ q(3286) => q(kfg),
+ q(3287) => q(kfh),
+ q(3288) => q(kfi),
+ q(3289) => q(kfj),
+ q(3290) => q(kfk),
+ q(3291) => q(kfl),
+ q(3292) => q(kfm),
+ q(3293) => q(kfn),
+ q(3294) => q(kfo),
+ q(3295) => q(kfp),
+ q(3296) => q(kfq),
+ q(3297) => q(kfr),
+ q(3298) => q(kfs),
+ q(3299) => q(kft),
+ q(3300) => q(kfu),
+ q(3301) => q(kfv),
+ q(3302) => q(kfw),
+ q(3303) => q(kfx),
+ q(3304) => q(kfy),
+ q(3305) => q(kfz),
+ q(3306) => q(kga),
+ q(3307) => q(kgb),
+ q(3308) => q(kgd),
+ q(3309) => q(kge),
+ q(3310) => q(kgf),
+ q(3311) => q(kgg),
+ q(3312) => q(kgi),
+ q(3313) => q(kgj),
+ q(3314) => q(kgk),
+ q(3315) => q(kgl),
+ q(3316) => q(kuq),
+ q(3317) => q(kgn),
+ q(3318) => q(kgo),
+ q(3319) => q(kgp),
+ q(3320) => q(kgq),
+ q(3321) => q(kgr),
+ q(3322) => q(kgs),
+ q(3323) => q(kgt),
+ q(3324) => q(kgu),
+ q(3325) => q(kgv),
+ q(3326) => q(kgw),
+ q(3327) => q(kgx),
+ q(3328) => q(kgy),
+ q(3329) => q(khb),
+ q(3330) => q(khc),
+ q(3331) => q(khd),
+ q(3332) => q(khe),
+ q(3333) => q(khf),
+ q(3334) => q(khg),
+ q(3335) => q(khh),
+ q(3336) => q(khj),
+ q(3337) => q(khk),
+ q(3338) => q(khl),
+ q(3339) => q(khn),
+ q(3340) => q(khp),
+ q(3341) => q(khq),
+ q(3342) => q(khr),
+ q(3343) => q(khs),
+ q(3344) => q(kht),
+ q(3345) => q(khu),
+ q(3346) => q(khv),
+ q(3347) => q(khw),
+ q(3348) => q(khx),
+ q(3349) => q(khy),
+ q(3350) => q(khz),
+ q(3351) => q(kia),
+ q(3352) => q(kib),
+ q(3353) => q(kic),
+ q(3354) => q(kid),
+ q(3355) => q(kie),
+ q(3356) => q(kif),
+ q(3357) => q(kig),
+ q(3358) => q(kih),
+ q(3359) => q(kii),
+ q(3360) => q(kij),
+ q(3361) => q(kil),
+ q(3362) => q(kim),
+ q(3363) => q(kio),
+ q(3364) => q(kip),
+ q(3365) => q(kiq),
+ q(3366) => q(kis),
+ q(3367) => q(kit),
+ q(3368) => q(kiu),
+ q(3369) => q(kiv),
+ q(3370) => q(kiw),
+ q(3371) => q(kix),
+ q(3372) => q(kiy),
+ q(3373) => q(kiz),
+ q(3374) => q(kja),
+ q(3375) => q(kjb),
+ q(3376) => q(kjc),
+ q(3377) => q(kjd),
+ q(3378) => q(kje),
+ q(3379) => q(kjf),
+ q(3380) => q(kjg),
+ q(3381) => q(kjh),
+ q(3382) => q(kji),
+ q(3383) => q(kjj),
+ q(3384) => q(kjk),
+ q(3385) => q(kjl),
+ q(3386) => q(kjm),
+ q(3387) => q(kjn),
+ q(3388) => q(kjo),
+ q(3389) => q(kjp),
+ q(3390) => q(kjq),
+ q(3391) => q(kjr),
+ q(3392) => q(kjs),
+ q(3393) => q(kjt),
+ q(3394) => q(kju),
+ q(3395) => q(kjv),
+ q(3396) => q(kjx),
+ q(3397) => q(kjy),
+ q(3398) => q(kjz),
+ q(3399) => q(kka),
+ q(3400) => q(kkb),
+ q(3401) => q(kkc),
+ q(3402) => q(kkd),
+ q(3403) => q(kke),
+ q(3404) => q(kkf),
+ q(3405) => q(kkg),
+ q(3406) => q(kkh),
+ q(3407) => q(kki),
+ q(3408) => q(kkj),
+ q(3409) => q(kkk),
+ q(3410) => q(kkl),
+ q(3411) => q(kkm),
+ q(3412) => q(kkn),
+ q(3413) => q(kko),
+ q(3414) => q(kkp),
+ q(3415) => q(kkq),
+ q(3416) => q(kkr),
+ q(3417) => q(kks),
+ q(3418) => q(kkt),
+ q(3419) => q(kku),
+ q(3420) => q(kkv),
+ q(3421) => q(kkw),
+ q(3422) => q(kkx),
+ q(3423) => q(kky),
+ q(3424) => q(kkz),
+ q(3425) => q(kla),
+ q(3426) => q(klb),
+ q(3427) => q(klc),
+ q(3428) => q(kld),
+ q(3429) => q(kle),
+ q(3430) => q(klf),
+ q(3431) => q(klg),
+ q(3432) => q(klh),
+ q(3433) => q(kli),
+ q(3434) => q(klj),
+ q(3435) => q(klk),
+ q(3436) => q(kll),
+ q(3437) => q(klm),
+ q(3438) => q(kln),
+ q(3439) => q(klo),
+ q(3440) => q(klp),
+ q(3441) => q(klq),
+ q(3442) => q(klr),
+ q(3443) => q(kls),
+ q(3444) => q(klt),
+ q(3445) => q(klu),
+ q(3446) => q(klv),
+ q(3447) => q(klw),
+ q(3448) => q(klx),
+ q(3449) => q(kly),
+ q(3450) => q(klz),
+ q(3451) => q(kma),
+ q(3452) => q(kmc),
+ q(3453) => q(kmd),
+ q(3454) => q(kme),
+ q(3455) => q(kmf),
+ q(3456) => q(kmg),
+ q(3457) => q(kmh),
+ q(3458) => q(kmi),
+ q(3459) => q(kmj),
+ q(3460) => q(kmk),
+ q(3461) => q(kml),
+ q(3462) => q(kmm),
+ q(3463) => q(kmn),
+ q(3464) => q(kmo),
+ q(3465) => q(kmp),
+ q(3466) => q(kmq),
+ q(3467) => q(kmr),
+ q(3468) => q(kms),
+ q(3469) => q(kmt),
+ q(3470) => q(kmu),
+ q(3471) => q(kmv),
+ q(3472) => q(kmw),
+ q(3473) => q(kmx),
+ q(3474) => q(kmy),
+ q(3475) => q(kmz),
+ q(3476) => q(kna),
+ q(3477) => q(knb),
+ q(3478) => q(knc),
+ q(3479) => q(knd),
+ q(3480) => q(kne),
+ q(3481) => q(knf),
+ q(3482) => q(kng),
+ q(3483) => q(kni),
+ q(3484) => q(knj),
+ q(3485) => q(knk),
+ q(3486) => q(knl),
+ q(3487) => q(knm),
+ q(3488) => q(knn),
+ q(3489) => q(kno),
+ q(3490) => q(knp),
+ q(3491) => q(knq),
+ q(3492) => q(knr),
+ q(3493) => q(kns),
+ q(3494) => q(knt),
+ q(3495) => q(knu),
+ q(3496) => q(knv),
+ q(3497) => q(knw),
+ q(3498) => q(knx),
+ q(3499) => q(kny),
+ q(3500) => q(knz),
+ q(3501) => q(koa),
+ q(3502) => q(koc),
+ q(3503) => q(kod),
+ q(3504) => q(koe),
+ q(3505) => q(kof),
+ q(3506) => q(kog),
+ q(3507) => q(koh),
+ q(3508) => q(koi),
+ q(3509) => q(kol),
+ q(3510) => q(koo),
+ q(3511) => q(kop),
+ q(3512) => q(koq),
+ q(3513) => q(kot),
+ q(3514) => q(kou),
+ q(3515) => q(kov),
+ q(3516) => q(kow),
+ q(3517) => q(koy),
+ q(3518) => q(koz),
+ q(3519) => q(kpa),
+ q(3520) => q(kpb),
+ q(3521) => q(kpc),
+ q(3522) => q(kpd),
+ q(3523) => q(kpf),
+ q(3524) => q(kpg),
+ q(3525) => q(kph),
+ q(3526) => q(kpi),
+ q(3527) => q(kpj),
+ q(3528) => q(kpk),
+ q(3529) => q(kpl),
+ q(3530) => q(kpm),
+ q(3531) => q(kpn),
+ q(3532) => q(kpo),
+ q(3533) => q(kpq),
+ q(3534) => q(kpr),
+ q(3535) => q(kps),
+ q(3536) => q(kpt),
+ q(3537) => q(kpu),
+ q(3538) => q(kpv),
+ q(3539) => q(kpw),
+ q(3540) => q(kpx),
+ q(3541) => q(kpy),
+ q(3542) => q(kpz),
+ q(3543) => q(kqa),
+ q(3544) => q(kqb),
+ q(3545) => q(kqc),
+ q(3546) => q(kqd),
+ q(3547) => q(kqe),
+ q(3548) => q(kqf),
+ q(3549) => q(kqg),
+ q(3550) => q(kqh),
+ q(3551) => q(kqi),
+ q(3552) => q(kqj),
+ q(3553) => q(kqk),
+ q(3554) => q(kql),
+ q(3555) => q(kqm),
+ q(3556) => q(kqn),
+ q(3557) => q(kqo),
+ q(3558) => q(kqp),
+ q(3559) => q(kqq),
+ q(3560) => q(kqr),
+ q(3561) => q(kqs),
+ q(3562) => q(kqt),
+ q(3563) => q(kqu),
+ q(3564) => q(kqv),
+ q(3565) => q(kqw),
+ q(3566) => q(kqx),
+ q(3567) => q(kqy),
+ q(3568) => q(kqz),
+ q(3569) => q(kra),
+ q(3570) => q(krb),
+ q(3571) => q(krd),
+ q(3572) => q(kre),
+ q(3573) => q(krf),
+ q(3574) => q(krh),
+ q(3575) => q(kri),
+ q(3576) => q(krj),
+ q(3577) => q(krk),
+ q(3578) => q(krm),
+ q(3579) => q(krn),
+ q(3580) => q(krp),
+ q(3581) => q(krr),
+ q(3582) => q(krs),
+ q(3583) => q(krt),
+ q(3584) => q(krv),
+ q(3585) => q(krw),
+ q(3586) => q(krx),
+ q(3587) => q(kry),
+ q(3588) => q(krz),
+ q(3589) => q(ksa),
+ q(3590) => q(ksb),
+ q(3591) => q(ksc),
+ q(3592) => q(ksd),
+ q(3593) => q(kse),
+ q(3594) => q(ksf),
+ q(3595) => q(ksg),
+ q(3596) => q(ksh),
+ q(3597) => q(ksi),
+ q(3598) => q(ksj),
+ q(3599) => q(ksk),
+ q(3600) => q(ksl),
+ q(3601) => q(ksm),
+ q(3602) => q(ksn),
+ q(3603) => q(kso),
+ q(3604) => q(ksp),
+ q(3605) => q(ksq),
+ q(3606) => q(ksr),
+ q(3607) => q(kss),
+ q(3608) => q(kst),
+ q(3609) => q(ksu),
+ q(3610) => q(ksv),
+ q(3611) => q(ksw),
+ q(3612) => q(ksx),
+ q(3613) => q(ksy),
+ q(3614) => q(ksz),
+ q(3615) => q(kta),
+ q(3616) => q(ktb),
+ q(3617) => q(ktc),
+ q(3618) => q(ktd),
+ q(3619) => q(kte),
+ q(3620) => q(ktf),
+ q(3621) => q(ktg),
+ q(3622) => q(kth),
+ q(3623) => q(kti),
+ q(3624) => q(ktj),
+ q(3625) => q(ktk),
+ q(3626) => q(ktl),
+ q(3627) => q(ktm),
+ q(3628) => q(ktn),
+ q(3629) => q(kto),
+ q(3630) => q(ktp),
+ q(3631) => q(ktq),
+ q(3632) => q(kts),
+ q(3633) => q(ktt),
+ q(3634) => q(ktu),
+ q(3635) => q(ktv),
+ q(3636) => q(ktw),
+ q(3637) => q(ktx),
+ q(3638) => q(kty),
+ q(3639) => q(ktz),
+ q(3640) => q(kub),
+ q(3641) => q(kuc),
+ q(3642) => q(kud),
+ q(3643) => q(kue),
+ q(3644) => q(kuf),
+ q(3645) => q(kug),
+ q(3646) => q(kuh),
+ q(3647) => q(kui),
+ q(3648) => q(kuj),
+ q(3649) => q(kuk),
+ q(3650) => q(kul),
+ q(3651) => q(kun),
+ q(3652) => q(kuo),
+ q(3653) => q(kup),
+ q(3654) => q(kus),
+ q(3655) => q(kuu),
+ q(3656) => q(kuv),
+ q(3657) => q(kuw),
+ q(3658) => q(kux),
+ q(3659) => q(kuy),
+ q(3660) => q(kuz),
+ q(3661) => q(kva),
+ q(3662) => q(kvb),
+ q(3663) => q(kvc),
+ q(3664) => q(kvd),
+ q(3665) => q(kve),
+ q(3666) => q(kvf),
+ q(3667) => q(kvg),
+ q(3668) => q(kvh),
+ q(3669) => q(kvi),
+ q(3670) => q(kvj),
+ q(3671) => q(kvk),
+ q(3672) => q(kvl),
+ q(3673) => q(kvm),
+ q(3674) => q(kvn),
+ q(3675) => q(kvo),
+ q(3676) => q(kvp),
+ q(3677) => q(kvq),
+ q(3678) => q(kvr),
+ q(3679) => q(kvt),
+ q(3680) => q(kvu),
+ q(3681) => q(kvv),
+ q(3682) => q(kvw),
+ q(3683) => q(kvx),
+ q(3684) => q(kvy),
+ q(3685) => q(kvz),
+ q(3686) => q(kwa),
+ q(3687) => q(kwb),
+ q(3688) => q(kwc),
+ q(3689) => q(kwd),
+ q(3690) => q(kwe),
+ q(3691) => q(kwf),
+ q(3692) => q(kwg),
+ q(3693) => q(kwh),
+ q(3694) => q(kwi),
+ q(3695) => q(kwj),
+ q(3696) => q(kwk),
+ q(3697) => q(kwl),
+ q(3698) => q(kwm),
+ q(3699) => q(kwn),
+ q(3700) => q(kwo),
+ q(3701) => q(kwp),
+ q(3702) => q(kwr),
+ q(3703) => q(kws),
+ q(3704) => q(kwt),
+ q(3705) => q(kwu),
+ q(3706) => q(kwv),
+ q(3707) => q(kww),
+ q(3708) => q(kwx),
+ q(3709) => q(kwy),
+ q(3710) => q(kwz),
+ q(3711) => q(kxa),
+ q(3712) => q(kxb),
+ q(3713) => q(kxc),
+ q(3714) => q(kxd),
+ q(3715) => q(kxf),
+ q(3716) => q(kxh),
+ q(3717) => q(kxi),
+ q(3718) => q(kxj),
+ q(3719) => q(kxk),
+ q(3720) => q(kxl),
+ q(3721) => q(kxm),
+ q(3722) => q(kxn),
+ q(3723) => q(kxo),
+ q(3724) => q(kxp),
+ q(3725) => q(kxq),
+ q(3726) => q(kxr),
+ q(3727) => q(kxs),
+ q(3728) => q(kxt),
+ q(3729) => q(kxu),
+ q(3730) => q(kxv),
+ q(3731) => q(kxw),
+ q(3732) => q(kxx),
+ q(3733) => q(kxy),
+ q(3734) => q(kxz),
+ q(3735) => q(kya),
+ q(3736) => q(kyb),
+ q(3737) => q(kyc),
+ q(3738) => q(kyd),
+ q(3739) => q(kye),
+ q(3740) => q(kyf),
+ q(3741) => q(kyg),
+ q(3742) => q(kyh),
+ q(3743) => q(kyi),
+ q(3744) => q(kyj),
+ q(3745) => q(kyk),
+ q(3746) => q(kyl),
+ q(3747) => q(kym),
+ q(3748) => q(kyn),
+ q(3749) => q(kyo),
+ q(3750) => q(kyp),
+ q(3751) => q(kyq),
+ q(3752) => q(kyr),
+ q(3753) => q(kys),
+ q(3754) => q(kyt),
+ q(3755) => q(kyu),
+ q(3756) => q(kyv),
+ q(3757) => q(kyw),
+ q(3758) => q(kyx),
+ q(3759) => q(kyy),
+ q(3760) => q(kyz),
+ q(3761) => q(kza),
+ q(3762) => q(kzb),
+ q(3763) => q(kzc),
+ q(3764) => q(kzd),
+ q(3765) => q(kze),
+ q(3766) => q(kzf),
+ q(3767) => q(kzg),
+ q(3768) => q(kzi),
+ q(3769) => q(kzk),
+ q(3770) => q(kzl),
+ q(3771) => q(kzm),
+ q(3772) => q(kzn),
+ q(3773) => q(kzo),
+ q(3774) => q(kzp),
+ q(3775) => q(kzq),
+ q(3776) => q(kzr),
+ q(3777) => q(kzs),
+ q(3778) => q(kzu),
+ q(3779) => q(kzv),
+ q(3780) => q(kzw),
+ q(3781) => q(kzx),
+ q(3782) => q(kzy),
+ q(3783) => q(kzz),
+ q(3784) => q(laa),
+ q(3785) => q(lab),
+ q(3786) => q(lac),
+ q(3787) => q(lae),
+ q(3788) => q(laf),
+ q(3789) => q(lag),
+ q(3790) => q(lai),
+ q(3791) => q(laj),
+ q(3792) => q(lak),
+ q(3793) => q(lal),
+ q(3794) => q(lan),
+ q(3795) => q(lap),
+ q(3796) => q(laq),
+ q(3797) => q(lar),
+ q(3798) => q(las),
+ q(3799) => q(lau),
+ q(3800) => q(law),
+ q(3801) => q(lax),
+ q(3802) => q(lay),
+ q(3803) => q(laz),
+ q(3804) => q(lba),
+ q(3805) => q(lbb),
+ q(3806) => q(lbc),
+ q(3807) => q(lbe),
+ q(3808) => q(lbf),
+ q(3809) => q(lbg),
+ q(3810) => q(lbi),
+ q(3811) => q(lbj),
+ q(3812) => q(lbk),
+ q(3813) => q(lbl),
+ q(3814) => q(lbm),
+ q(3815) => q(lbn),
+ q(3816) => q(lbo),
+ q(3817) => q(lbq),
+ q(3818) => q(lbr),
+ q(3819) => q(lbs),
+ q(3820) => q(lbt),
+ q(3821) => q(lbu),
+ q(3822) => q(lbv),
+ q(3823) => q(lbw),
+ q(3824) => q(lbx),
+ q(3825) => q(lby),
+ q(3826) => q(lbz),
+ q(3827) => q(lcc),
+ q(3828) => q(lcd),
+ q(3829) => q(lce),
+ q(3830) => q(lcf),
+ q(3831) => q(lch),
+ q(3832) => q(lcl),
+ q(3833) => q(lcm),
+ q(3834) => q(lcp),
+ q(3835) => q(lcq),
+ q(3836) => q(lcs),
+ q(3837) => q(lda),
+ q(3838) => q(ldb),
+ q(3839) => q(ldd),
+ q(3840) => q(ldg),
+ q(3841) => q(ldh),
+ q(3842) => q(ldi),
+ q(3843) => q(ldj),
+ q(3844) => q(ldk),
+ q(3845) => q(ldl),
+ q(3846) => q(ldm),
+ q(3847) => q(ldn),
+ q(3848) => q(ldo),
+ q(3849) => q(ldp),
+ q(3850) => q(ldq),
+ q(3851) => q(lea),
+ q(3852) => q(leb),
+ q(3853) => q(lec),
+ q(3854) => q(led),
+ q(3855) => q(lee),
+ q(3856) => q(lef),
+ q(3857) => q(leh),
+ q(3858) => q(lei),
+ q(3859) => q(lej),
+ q(3860) => q(lek),
+ q(3861) => q(lel),
+ q(3862) => q(lem),
+ q(3863) => q(len),
+ q(3864) => q(leo),
+ q(3865) => q(lep),
+ q(3866) => q(leq),
+ q(3867) => q(ler),
+ q(3868) => q(les),
+ q(3869) => q(let),
+ q(3870) => q(leu),
+ q(3871) => q(lev),
+ q(3872) => q(lew),
+ q(3873) => q(lex),
+ q(3874) => q(ley),
+ q(3875) => q(lfa),
+ q(3876) => q(lfn),
+ q(3877) => q(lga),
+ q(3878) => q(lgb),
+ q(3879) => q(lgg),
+ q(3880) => q(lgh),
+ q(3881) => q(lgi),
+ q(3882) => q(lgk),
+ q(3883) => q(lgl),
+ q(3884) => q(lgm),
+ q(3885) => q(lgn),
+ q(3886) => q(lgq),
+ q(3887) => q(lgr),
+ q(3888) => q(lgt),
+ q(3889) => q(lgu),
+ q(3890) => q(lgz),
+ q(3891) => q(lha),
+ q(3892) => q(lhh),
+ q(3893) => q(lhi),
+ q(3894) => q(lhl),
+ q(3895) => q(lhm),
+ q(3896) => q(lhn),
+ q(3897) => q(lhp),
+ q(3898) => q(lhs),
+ q(3899) => q(lht),
+ q(3900) => q(lhu),
+ q(3901) => q(lia),
+ q(3902) => q(lib),
+ q(3903) => q(lic),
+ q(3904) => q(lid),
+ q(3905) => q(lie),
+ q(3906) => q(lif),
+ q(3907) => q(lig),
+ q(3908) => q(lih),
+ q(3909) => q(lij),
+ q(3910) => q(lik),
+ q(3911) => q(lil),
+ q(3912) => q(lio),
+ q(3913) => q(lip),
+ q(3914) => q(liq),
+ q(3915) => q(lir),
+ q(3916) => q(lis),
+ q(3917) => q(liu),
+ q(3918) => q(liv),
+ q(3919) => q(liw),
+ q(3920) => q(lix),
+ q(3921) => q(liy),
+ q(3922) => q(liz),
+ q(3923) => q(lja),
+ q(3924) => q(lje),
+ q(3925) => q(lji),
+ q(3926) => q(ljl),
+ q(3927) => q(ljp),
+ q(3928) => q(ljw),
+ q(3929) => q(ljx),
+ q(3930) => q(lka),
+ q(3931) => q(lkb),
+ q(3932) => q(lkc),
+ q(3933) => q(lkd),
+ q(3934) => q(lke),
+ q(3935) => q(lkh),
+ q(3936) => q(lki),
+ q(3937) => q(lkj),
+ q(3938) => q(lkl),
+ q(3939) => q(lkm),
+ q(3940) => q(lkn),
+ q(3941) => q(lko),
+ q(3942) => q(lkr),
+ q(3943) => q(lks),
+ q(3944) => q(lkt),
+ q(3945) => q(lku),
+ q(3946) => q(lky),
+ q(3947) => q(lla),
+ q(3948) => q(llb),
+ q(3949) => q(llc),
+ q(3950) => q(lld),
+ q(3951) => q(lle),
+ q(3952) => q(llf),
+ q(3953) => q(llg),
+ q(3954) => q(llh),
+ q(3955) => q(lli),
+ q(3956) => q(llj),
+ q(3957) => q(llk),
+ q(3958) => q(lll),
+ q(3959) => q(llm),
+ q(3960) => q(lln),
+ q(3961) => q(llo),
+ q(3962) => q(llp),
+ q(3963) => q(llq),
+ q(3964) => q(lls),
+ q(3965) => q(llu),
+ q(3966) => q(llx),
+ q(3967) => q(lma),
+ q(3968) => q(lmb),
+ q(3969) => q(lmc),
+ q(3970) => q(lmd),
+ q(3971) => q(lme),
+ q(3972) => q(lmf),
+ q(3973) => q(lmg),
+ q(3974) => q(lmh),
+ q(3975) => q(lmi),
+ q(3976) => q(lmj),
+ q(3977) => q(lmk),
+ q(3978) => q(lml),
+ q(3979) => q(lmn),
+ q(3980) => q(lmo),
+ q(3981) => q(lmp),
+ q(3982) => q(lmq),
+ q(3983) => q(lmr),
+ q(3984) => q(lmu),
+ q(3985) => q(lmv),
+ q(3986) => q(lmw),
+ q(3987) => q(lmx),
+ q(3988) => q(lmy),
+ q(3989) => q(lmz),
+ q(3990) => q(lna),
+ q(3991) => q(lnb),
+ q(3992) => q(lnd),
+ q(3993) => q(lng),
+ q(3994) => q(lnh),
+ q(3995) => q(lni),
+ q(3996) => q(lnj),
+ q(3997) => q(lnl),
+ q(3998) => q(lnm),
+ q(3999) => q(lnn),
+ q(4000) => q(lno),
+ q(4001) => q(lns),
+ q(4002) => q(lnu),
+ q(4003) => q(lnw),
+ q(4004) => q(lnz),
+ q(4005) => q(loa),
+ q(4006) => q(lob),
+ q(4007) => q(loc),
+ q(4008) => q(loe),
+ q(4009) => q(lof),
+ q(4010) => q(log),
+ q(4011) => q(loh),
+ q(4012) => q(loi),
+ q(4013) => q(loj),
+ q(4014) => q(lok),
+ q(4015) => q(lom),
+ q(4016) => q(lon),
+ q(4017) => q(loo),
+ q(4018) => q(lop),
+ q(4019) => q(loq),
+ q(4020) => q(lor),
+ q(4021) => q(los),
+ q(4022) => q(lot),
+ q(4023) => q(lou),
+ q(4024) => q(lov),
+ q(4025) => q(low),
+ q(4026) => q(lox),
+ q(4027) => q(loy),
+ q(4028) => q(lpa),
+ q(4029) => q(lpe),
+ q(4030) => q(lpn),
+ q(4031) => q(lpo),
+ q(4032) => q(lpx),
+ q(4033) => q(lra),
+ q(4034) => q(lrc),
+ q(4035) => q(lre),
+ q(4036) => q(lrg),
+ q(4037) => q(lri),
+ q(4038) => q(lrk),
+ q(4039) => q(lrl),
+ q(4040) => q(lrm),
+ q(4041) => q(lrn),
+ q(4042) => q(lro),
+ q(4043) => q(lrr),
+ q(4044) => q(lrt),
+ q(4045) => q(lrv),
+ q(4046) => q(lrz),
+ q(4047) => q(lsa),
+ q(4048) => q(lsd),
+ q(4049) => q(lse),
+ q(4050) => q(lsg),
+ q(4051) => q(lsh),
+ q(4052) => q(lsi),
+ q(4053) => q(lsl),
+ q(4054) => q(lsm),
+ q(4055) => q(lso),
+ q(4056) => q(lsp),
+ q(4057) => q(lsr),
+ q(4058) => q(lss),
+ q(4059) => q(lst),
+ q(4060) => q(lsy),
+ q(4061) => q(ltc),
+ q(4062) => q(ltg),
+ q(4063) => q(lti),
+ q(4064) => q(ltn),
+ q(4065) => q(lto),
+ q(4066) => q(lts),
+ q(4067) => q(ltu),
+ q(4068) => q(luc),
+ q(4069) => q(lud),
+ q(4070) => q(lue),
+ q(4071) => q(luf),
+ q(4072) => q(luj),
+ q(4073) => q(luk),
+ q(4074) => q(lul),
+ q(4075) => q(lum),
+ q(4076) => q(lup),
+ q(4077) => q(luq),
+ q(4078) => q(lur),
+ q(4079) => q(lut),
+ q(4080) => q(luu),
+ q(4081) => q(luv),
+ q(4082) => q(luw),
+ q(4083) => q(luy),
+ q(4084) => q(luz),
+ q(4085) => q(lva),
+ q(4086) => q(lvk),
+ q(4087) => q(lvs),
+ q(4088) => q(lvu),
+ q(4089) => q(lwa),
+ q(4090) => q(lwe),
+ q(4091) => q(lwg),
+ q(4092) => q(lwh),
+ q(4093) => q(lwl),
+ q(4094) => q(lwm),
+ q(4095) => q(lwo),
+ q(4096) => q(lwt),
+ q(4097) => q(lwu),
+ q(4098) => q(lww),
+ q(4099) => q(lya),
+ q(4100) => q(lyg),
+ q(4101) => q(lyn),
+ q(4102) => q(lzh),
+ q(4103) => q(lzl),
+ q(4104) => q(lzn),
+ q(4105) => q(lzz),
+ q(4106) => q(maa),
+ q(4107) => q(mab),
+ q(4108) => q(mae),
+ q(4109) => q(maf),
+ q(4110) => q(maj),
+ q(4111) => q(mam),
+ q(4112) => q(maq),
+ q(4113) => q(mat),
+ q(4114) => q(mau),
+ q(4115) => q(mav),
+ q(4116) => q(maw),
+ q(4117) => q(max),
+ q(4118) => q(maz),
+ q(4119) => q(mba),
+ q(4120) => q(mbb),
+ q(4121) => q(mbc),
+ q(4122) => q(mbd),
+ q(4123) => q(mbe),
+ q(4124) => q(mbf),
+ q(4125) => q(mbh),
+ q(4126) => q(mbi),
+ q(4127) => q(mbj),
+ q(4128) => q(mbk),
+ q(4129) => q(mbl),
+ q(4130) => q(mbm),
+ q(4131) => q(mbn),
+ q(4132) => q(mbo),
+ q(4133) => q(mbp),
+ q(4134) => q(mbq),
+ q(4135) => q(mbr),
+ q(4136) => q(mbs),
+ q(4137) => q(mbt),
+ q(4138) => q(mbu),
+ q(4139) => q(mbv),
+ q(4140) => q(mbw),
+ q(4141) => q(mbx),
+ q(4142) => q(mby),
+ q(4143) => q(mbz),
+ q(4144) => q(mca),
+ q(4145) => q(mcb),
+ q(4146) => q(mcc),
+ q(4147) => q(mcd),
+ q(4148) => q(mce),
+ q(4149) => q(mcf),
+ q(4150) => q(mcg),
+ q(4151) => q(mch),
+ q(4152) => q(mci),
+ q(4153) => q(mcj),
+ q(4154) => q(mck),
+ q(4155) => q(mcl),
+ q(4156) => q(mcm),
+ q(4157) => q(mcn),
+ q(4158) => q(mco),
+ q(4159) => q(mcp),
+ q(4160) => q(mcq),
+ q(4161) => q(mcr),
+ q(4162) => q(mcs),
+ q(4163) => q(mct),
+ q(4164) => q(mcu),
+ q(4165) => q(mcv),
+ q(4166) => q(mcw),
+ q(4167) => q(mcx),
+ q(4168) => q(mcy),
+ q(4169) => q(mcz),
+ q(4170) => q(mda),
+ q(4171) => q(mdb),
+ q(4172) => q(mdc),
+ q(4173) => q(mdd),
+ q(4174) => q(mde),
+ q(4175) => q(mdg),
+ q(4176) => q(mdh),
+ q(4177) => q(mdi),
+ q(4178) => q(mdj),
+ q(4179) => q(mdk),
+ q(4180) => q(mdl),
+ q(4181) => q(mdm),
+ q(4182) => q(mdn),
+ q(4183) => q(mdp),
+ q(4184) => q(mdq),
+ q(4185) => q(mds),
+ q(4186) => q(mdt),
+ q(4187) => q(mdu),
+ q(4188) => q(mdv),
+ q(4189) => q(mdw),
+ q(4190) => q(mdx),
+ q(4191) => q(mdy),
+ q(4192) => q(mdz),
+ q(4193) => q(mea),
+ q(4194) => q(meb),
+ q(4195) => q(mec),
+ q(4196) => q(med),
+ q(4197) => q(mee),
+ q(4198) => q(mef),
+ q(4199) => q(meh),
+ q(4200) => q(mei),
+ q(4201) => q(mej),
+ q(4202) => q(mek),
+ q(4203) => q(mel),
+ q(4204) => q(mem),
+ q(4205) => q(meo),
+ q(4206) => q(mep),
+ q(4207) => q(meq),
+ q(4208) => q(mer),
+ q(4209) => q(mes),
+ q(4210) => q(met),
+ q(4211) => q(meu),
+ q(4212) => q(mev),
+ q(4213) => q(mew),
+ q(4214) => q(mey),
+ q(4215) => q(mez),
+ q(4216) => q(mfa),
+ q(4217) => q(mfb),
+ q(4218) => q(mfc),
+ q(4219) => q(mfd),
+ q(4220) => q(mfe),
+ q(4221) => q(mff),
+ q(4222) => q(mfg),
+ q(4223) => q(mfh),
+ q(4224) => q(mfi),
+ q(4225) => q(mfj),
+ q(4226) => q(mfk),
+ q(4227) => q(mfl),
+ q(4228) => q(mfm),
+ q(4229) => q(mfn),
+ q(4230) => q(mfo),
+ q(4231) => q(mfp),
+ q(4232) => q(mfq),
+ q(4233) => q(mfr),
+ q(4234) => q(mfs),
+ q(4235) => q(mft),
+ q(4236) => q(mfu),
+ q(4237) => q(mfv),
+ q(4238) => q(mfw),
+ q(4239) => q(mfx),
+ q(4240) => q(mfy),
+ q(4241) => q(mfz),
+ q(4242) => q(mgb),
+ q(4243) => q(mgc),
+ q(4244) => q(mgd),
+ q(4245) => q(mge),
+ q(4246) => q(mgf),
+ q(4247) => q(mgg),
+ q(4248) => q(mgh),
+ q(4249) => q(mgi),
+ q(4250) => q(mgj),
+ q(4251) => q(mgk),
+ q(4252) => q(mgl),
+ q(4253) => q(mgm),
+ q(4254) => q(mgn),
+ q(4255) => q(mgo),
+ q(4256) => q(mgp),
+ q(4257) => q(mgq),
+ q(4258) => q(mgr),
+ q(4259) => q(mgs),
+ q(4260) => q(mgt),
+ q(4261) => q(mgu),
+ q(4262) => q(mgv),
+ q(4263) => q(mgw),
+ q(4264) => q(mgy),
+ q(4265) => q(mgz),
+ q(4266) => q(mha),
+ q(4267) => q(mhb),
+ q(4268) => q(mhc),
+ q(4269) => q(mhd),
+ q(4270) => q(mhe),
+ q(4271) => q(mhf),
+ q(4272) => q(mhg),
+ q(4273) => q(mhi),
+ q(4274) => q(mhj),
+ q(4275) => q(mhk),
+ q(4276) => q(mhl),
+ q(4277) => q(mhm),
+ q(4278) => q(mhn),
+ q(4279) => q(mho),
+ q(4280) => q(mhp),
+ q(4281) => q(mhq),
+ q(4282) => q(mhr),
+ q(4283) => q(mhs),
+ q(4284) => q(mht),
+ q(4285) => q(mhu),
+ q(4286) => q(mhw),
+ q(4287) => q(mhx),
+ q(4288) => q(mhy),
+ q(4289) => q(mhz),
+ q(4290) => q(mia),
+ q(4291) => q(mib),
+ q(4292) => q(mid),
+ q(4293) => q(mie),
+ q(4294) => q(mif),
+ q(4295) => q(mig),
+ q(4296) => q(mih),
+ q(4297) => q(mii),
+ q(4298) => q(mij),
+ q(4299) => q(mik),
+ q(4300) => q(mil),
+ q(4301) => q(mim),
+ q(4302) => q(mio),
+ q(4303) => q(mip),
+ q(4304) => q(miq),
+ q(4305) => q(mir),
+ q(4306) => q(mit),
+ q(4307) => q(miu),
+ q(4308) => q(miw),
+ q(4309) => q(mix),
+ q(4310) => q(miy),
+ q(4311) => q(miz),
+ q(4312) => q(mjb),
+ q(4313) => q(mjc),
+ q(4314) => q(mjd),
+ q(4315) => q(mje),
+ q(4316) => q(mjg),
+ q(4317) => q(mjh),
+ q(4318) => q(mji),
+ q(4319) => q(mjj),
+ q(4320) => q(mjk),
+ q(4321) => q(mjl),
+ q(4322) => q(mjm),
+ q(4323) => q(mjn),
+ q(4324) => q(mjo),
+ q(4325) => q(mjp),
+ q(4326) => q(mjq),
+ q(4327) => q(mjr),
+ q(4328) => q(mjs),
+ q(4329) => q(mjt),
+ q(4330) => q(mju),
+ q(4331) => q(mjv),
+ q(4332) => q(mjw),
+ q(4333) => q(mjx),
+ q(4334) => q(mjy),
+ q(4335) => q(mjz),
+ q(4336) => q(mka),
+ q(4337) => q(mkb),
+ q(4338) => q(mkc),
+ q(4339) => q(mke),
+ q(4340) => q(mkf),
+ q(4341) => q(mkg),
+ q(4342) => q(mki),
+ q(4343) => q(mkj),
+ q(4344) => q(mkk),
+ q(4345) => q(mkl),
+ q(4346) => q(mkm),
+ q(4347) => q(mkn),
+ q(4348) => q(mko),
+ q(4349) => q(mkp),
+ q(4350) => q(mkq),
+ q(4351) => q(mkr),
+ q(4352) => q(mks),
+ q(4353) => q(mkt),
+ q(4354) => q(mku),
+ q(4355) => q(mkv),
+ q(4356) => q(mkw),
+ q(4357) => q(mkx),
+ q(4358) => q(mky),
+ q(4359) => q(mkz),
+ q(4360) => q(mla),
+ q(4361) => q(mlb),
+ q(4362) => q(mlc),
+ q(4363) => q(mle),
+ q(4364) => q(mlf),
+ q(4365) => q(mlh),
+ q(4366) => q(mli),
+ q(4367) => q(mlj),
+ q(4368) => q(mlk),
+ q(4369) => q(mll),
+ q(4370) => q(mlm),
+ q(4371) => q(mln),
+ q(4372) => q(mlo),
+ q(4373) => q(mlp),
+ q(4374) => q(mlq),
+ q(4375) => q(mlr),
+ q(4376) => q(mls),
+ q(4377) => q(mlu),
+ q(4378) => q(mlv),
+ q(4379) => q(mlw),
+ q(4380) => q(mlx),
+ q(4381) => q(mlz),
+ q(4382) => q(mma),
+ q(4383) => q(mmb),
+ q(4384) => q(mmc),
+ q(4385) => q(mmd),
+ q(4386) => q(mme),
+ q(4387) => q(mmf),
+ q(4388) => q(mmg),
+ q(4389) => q(mmh),
+ q(4390) => q(mmi),
+ q(4391) => q(mmj),
+ q(4392) => q(mmk),
+ q(4393) => q(mml),
+ q(4394) => q(mmm),
+ q(4395) => q(mmn),
+ q(4396) => q(mmo),
+ q(4397) => q(mmp),
+ q(4398) => q(mmq),
+ q(4399) => q(mmr),
+ q(4400) => q(mmt),
+ q(4401) => q(mmu),
+ q(4402) => q(mmv),
+ q(4403) => q(mmw),
+ q(4404) => q(mmx),
+ q(4405) => q(mmy),
+ q(4406) => q(mmz),
+ q(4407) => q(mna),
+ q(4408) => q(mnb),
+ q(4409) => q(mnd),
+ q(4410) => q(mne),
+ q(4411) => q(mnf),
+ q(4412) => q(mng),
+ q(4413) => q(mnh),
+ q(4414) => q(mnj),
+ q(4415) => q(mnk),
+ q(4416) => q(mnl),
+ q(4417) => q(mnm),
+ q(4418) => q(mnn),
+ q(4419) => q(mnp),
+ q(4420) => q(mnq),
+ q(4421) => q(mnr),
+ q(4422) => q(mns),
+ q(4423) => q(mnu),
+ q(4424) => q(mnv),
+ q(4425) => q(mnw),
+ q(4426) => q(mnx),
+ q(4427) => q(mny),
+ q(4428) => q(mnz),
+ q(4429) => q(moa),
+ q(4430) => q(moc),
+ q(4431) => q(mod),
+ q(4432) => q(moe),
+ q(4433) => q(mog),
+ q(4434) => q(moi),
+ q(4435) => q(moj),
+ q(4436) => q(mok),
+ q(4437) => q(mom),
+ q(4438) => q(moo),
+ q(4439) => q(mop),
+ q(4440) => q(moq),
+ q(4441) => q(mor),
+ q(4442) => q(mou),
+ q(4443) => q(mov),
+ q(4444) => q(mow),
+ q(4445) => q(mox),
+ q(4446) => q(moy),
+ q(4447) => q(moz),
+ q(4448) => q(mpa),
+ q(4449) => q(mpb),
+ q(4450) => q(mpc),
+ q(4451) => q(mpd),
+ q(4452) => q(mpe),
+ q(4453) => q(mpg),
+ q(4454) => q(mph),
+ q(4455) => q(mpi),
+ q(4456) => q(mpj),
+ q(4457) => q(mpk),
+ q(4458) => q(mpl),
+ q(4459) => q(mpm),
+ q(4460) => q(mpn),
+ q(4461) => q(mpo),
+ q(4462) => q(mpp),
+ q(4463) => q(mpq),
+ q(4464) => q(mpr),
+ q(4465) => q(mps),
+ q(4466) => q(mpt),
+ q(4467) => q(mpu),
+ q(4468) => q(mpv),
+ q(4469) => q(mpw),
+ q(4470) => q(mpx),
+ q(4471) => q(mpy),
+ q(4472) => q(mpz),
+ q(4473) => q(mqa),
+ q(4474) => q(mqb),
+ q(4475) => q(mqc),
+ q(4476) => q(mqe),
+ q(4477) => q(mqf),
+ q(4478) => q(mqg),
+ q(4479) => q(mqh),
+ q(4480) => q(mqi),
+ q(4481) => q(mqj),
+ q(4482) => q(mqk),
+ q(4483) => q(mql),
+ q(4484) => q(mqm),
+ q(4485) => q(mqn),
+ q(4486) => q(mqo),
+ q(4487) => q(mqp),
+ q(4488) => q(mqq),
+ q(4489) => q(mqr),
+ q(4490) => q(mqs),
+ q(4491) => q(mqt),
+ q(4492) => q(mqu),
+ q(4493) => q(mqv),
+ q(4494) => q(mqw),
+ q(4495) => q(mqx),
+ q(4496) => q(mqy),
+ q(4497) => q(mqz),
+ q(4498) => q(mra),
+ q(4499) => q(mrb),
+ q(4500) => q(mrc),
+ q(4501) => q(mrd),
+ q(4502) => q(mre),
+ q(4503) => q(mrf),
+ q(4504) => q(mrg),
+ q(4505) => q(mrh),
+ q(4506) => q(mrj),
+ q(4507) => q(mrk),
+ q(4508) => q(mrl),
+ q(4509) => q(mrm),
+ q(4510) => q(mrn),
+ q(4511) => q(mro),
+ q(4512) => q(mrp),
+ q(4513) => q(mrq),
+ q(4514) => q(mrr),
+ q(4515) => q(mrs),
+ q(4516) => q(mrt),
+ q(4517) => q(mru),
+ q(4518) => q(mrv),
+ q(4519) => q(mrw),
+ q(4520) => q(mrx),
+ q(4521) => q(mry),
+ q(4522) => q(mrz),
+ q(4523) => q(msb),
+ q(4524) => q(msc),
+ q(4525) => q(msd),
+ q(4526) => q(mse),
+ q(4527) => q(msf),
+ q(4528) => q(msg),
+ q(4529) => q(msh),
+ q(4530) => q(msi),
+ q(4531) => q(msj),
+ q(4532) => q(msk),
+ q(4533) => q(msl),
+ q(4534) => q(msm),
+ q(4535) => q(msn),
+ q(4536) => q(mso),
+ q(4537) => q(msp),
+ q(4538) => q(msq),
+ q(4539) => q(msr),
+ q(4540) => q(mss),
+ q(4541) => q(msu),
+ q(4542) => q(msv),
+ q(4543) => q(msw),
+ q(4544) => q(msx),
+ q(4545) => q(msy),
+ q(4546) => q(msz),
+ q(4547) => q(mta),
+ q(4548) => q(mtb),
+ q(4549) => q(mtc),
+ q(4550) => q(mtd),
+ q(4551) => q(mte),
+ q(4552) => q(mtf),
+ q(4553) => q(mtg),
+ q(4554) => q(mth),
+ q(4555) => q(mti),
+ q(4556) => q(mtj),
+ q(4557) => q(mtk),
+ q(4558) => q(mtl),
+ q(4559) => q(mtm),
+ q(4560) => q(mtn),
+ q(4561) => q(mto),
+ q(4562) => q(mtp),
+ q(4563) => q(mtq),
+ q(4564) => q(mtr),
+ q(4565) => q(mts),
+ q(4566) => q(mtt),
+ q(4567) => q(mtu),
+ q(4568) => q(mtv),
+ q(4569) => q(mtw),
+ q(4570) => q(mtx),
+ q(4571) => q(mty),
+ q(4572) => q(mua),
+ q(4573) => q(mub),
+ q(4574) => q(muc),
+ q(4575) => q(mud),
+ q(4576) => q(mue),
+ q(4577) => q(mug),
+ q(4578) => q(muh),
+ q(4579) => q(mui),
+ q(4580) => q(muj),
+ q(4581) => q(muk),
+ q(4582) => q(mum),
+ q(4583) => q(muo),
+ q(4584) => q(mup),
+ q(4585) => q(muq),
+ q(4586) => q(mur),
+ q(4587) => q(mut),
+ q(4588) => q(muu),
+ q(4589) => q(muv),
+ q(4590) => q(mux),
+ q(4591) => q(muy),
+ q(4592) => q(muz),
+ q(4593) => q(mva),
+ q(4594) => q(mvb),
+ q(4595) => q(mvd),
+ q(4596) => q(mve),
+ q(4597) => q(mvf),
+ q(4598) => q(mvg),
+ q(4599) => q(mvh),
+ q(4600) => q(mvi),
+ q(4601) => q(mvk),
+ q(4602) => q(mvl),
+ q(4603) => q(mvm),
+ q(4604) => q(mvn),
+ q(4605) => q(mvo),
+ q(4606) => q(mvp),
+ q(4607) => q(mvq),
+ q(4608) => q(mvr),
+ q(4609) => q(mvs),
+ q(4610) => q(mvt),
+ q(4611) => q(mvu),
+ q(4612) => q(mvv),
+ q(4613) => q(mvw),
+ q(4614) => q(mvx),
+ q(4615) => q(mvy),
+ q(4616) => q(mvz),
+ q(4617) => q(mwa),
+ q(4618) => q(mwb),
+ q(4619) => q(mwc),
+ q(4620) => q(mwe),
+ q(4621) => q(mwf),
+ q(4622) => q(mwg),
+ q(4623) => q(mwh),
+ q(4624) => q(mwi),
+ q(4625) => q(mwk),
+ q(4626) => q(mwm),
+ q(4627) => q(mwn),
+ q(4628) => q(mwo),
+ q(4629) => q(mwp),
+ q(4630) => q(mwq),
+ q(4631) => q(mws),
+ q(4632) => q(mwt),
+ q(4633) => q(mwu),
+ q(4634) => q(mwv),
+ q(4635) => q(mww),
+ q(4636) => q(mwx),
+ q(4637) => q(mwy),
+ q(4638) => q(mwz),
+ q(4639) => q(mxa),
+ q(4640) => q(mxb),
+ q(4641) => q(mxc),
+ q(4642) => q(mxd),
+ q(4643) => q(mxe),
+ q(4644) => q(mxf),
+ q(4645) => q(mxg),
+ q(4646) => q(mxh),
+ q(4647) => q(mxi),
+ q(4648) => q(mxj),
+ q(4649) => q(mxk),
+ q(4650) => q(mxl),
+ q(4651) => q(mxm),
+ q(4652) => q(mxn),
+ q(4653) => q(mxo),
+ q(4654) => q(mxp),
+ q(4655) => q(mxq),
+ q(4656) => q(mxr),
+ q(4657) => q(mxs),
+ q(4658) => q(mxt),
+ q(4659) => q(mxu),
+ q(4660) => q(mxv),
+ q(4661) => q(mxw),
+ q(4662) => q(mxx),
+ q(4663) => q(mxy),
+ q(4664) => q(mxz),
+ q(4665) => q(myb),
+ q(4666) => q(myc),
+ q(4667) => q(myd),
+ q(4668) => q(mye),
+ q(4669) => q(myf),
+ q(4670) => q(myg),
+ q(4671) => q(myh),
+ q(4672) => q(myi),
+ q(4673) => q(myj),
+ q(4674) => q(myk),
+ q(4675) => q(myl),
+ q(4676) => q(mym),
+ q(4677) => q(myo),
+ q(4678) => q(myp),
+ q(4679) => q(myr),
+ q(4680) => q(mys),
+ q(4681) => q(myu),
+ q(4682) => q(myw),
+ q(4683) => q(myx),
+ q(4684) => q(myy),
+ q(4685) => q(myz),
+ q(4686) => q(mza),
+ q(4687) => q(mzb),
+ q(4688) => q(mzc),
+ q(4689) => q(mzd),
+ q(4690) => q(mze),
+ q(4691) => q(mzg),
+ q(4692) => q(mzh),
+ q(4693) => q(mzi),
+ q(4694) => q(mzj),
+ q(4695) => q(mzk),
+ q(4696) => q(mzl),
+ q(4697) => q(mzm),
+ q(4698) => q(mzn),
+ q(4699) => q(mzo),
+ q(4700) => q(mzp),
+ q(4701) => q(mzq),
+ q(4702) => q(mzr),
+ q(4703) => q(mzs),
+ q(4704) => q(mzt),
+ q(4705) => q(mzu),
+ q(4706) => q(mzv),
+ q(4707) => q(mzw),
+ q(4708) => q(mzx),
+ q(4709) => q(mzy),
+ q(4710) => q(mzz),
+ q(4711) => q(naa),
+ q(4712) => q(nab),
+ q(4713) => q(nac),
+ q(4714) => q(nae),
+ q(4715) => q(naf),
+ q(4716) => q(nag),
+ q(4717) => q(naj),
+ q(4718) => q(nak),
+ q(4719) => q(nal),
+ q(4720) => q(nam),
+ q(4721) => q(nan),
+ q(4722) => q(nao),
+ q(4723) => q(naq),
+ q(4724) => q(nar),
+ q(4725) => q(nas),
+ q(4726) => q(nat),
+ q(4727) => q(naw),
+ q(4728) => q(nax),
+ q(4729) => q(nay),
+ q(4730) => q(naz),
+ q(4731) => q(nba),
+ q(4732) => q(nbb),
+ q(4733) => q(nbc),
+ q(4734) => q(nbd),
+ q(4735) => q(nbe),
+ q(4736) => q(nbg),
+ q(4737) => q(nbh),
+ q(4738) => q(nbi),
+ q(4739) => q(nbj),
+ q(4740) => q(nbk),
+ q(4741) => q(nbm),
+ q(4742) => q(nbn),
+ q(4743) => q(nbo),
+ q(4744) => q(nbp),
+ q(4745) => q(nbq),
+ q(4746) => q(nbr),
+ q(4747) => q(nbs),
+ q(4748) => q(nbt),
+ q(4749) => q(nbu),
+ q(4750) => q(nbv),
+ q(4751) => q(nbw),
+ q(4752) => q(nby),
+ q(4753) => q(nca),
+ q(4754) => q(ncb),
+ q(4755) => q(ncc),
+ q(4756) => q(ncd),
+ q(4757) => q(nce),
+ q(4758) => q(ncf),
+ q(4759) => q(ncg),
+ q(4760) => q(nch),
+ q(4761) => q(nci),
+ q(4762) => q(ncj),
+ q(4763) => q(nck),
+ q(4764) => q(ncl),
+ q(4765) => q(ncm),
+ q(4766) => q(ncn),
+ q(4767) => q(nco),
+ q(4768) => q(ncp),
+ q(4769) => q(ncr),
+ q(4770) => q(ncs),
+ q(4771) => q(nct),
+ q(4772) => q(ncu),
+ q(4773) => q(ncx),
+ q(4774) => q(ncz),
+ q(4775) => q(nda),
+ q(4776) => q(ndb),
+ q(4777) => q(ndc),
+ q(4778) => q(ndd),
+ q(4779) => q(ndf),
+ q(4780) => q(ndg),
+ q(4781) => q(ndh),
+ q(4782) => q(ndi),
+ q(4783) => q(ndj),
+ q(4784) => q(ndk),
+ q(4785) => q(ndl),
+ q(4786) => q(ndm),
+ q(4787) => q(ndn),
+ q(4788) => q(ndp),
+ q(4789) => q(ndq),
+ q(4790) => q(ndr),
+ q(4791) => q(ndt),
+ q(4792) => q(ndu),
+ q(4793) => q(ndv),
+ q(4794) => q(ndw),
+ q(4795) => q(ndx),
+ q(4796) => q(ndy),
+ q(4797) => q(ndz),
+ q(4798) => q(nea),
+ q(4799) => q(neb),
+ q(4800) => q(nec),
+ q(4801) => q(ned),
+ q(4802) => q(nee),
+ q(4803) => q(nef),
+ q(4804) => q(neg),
+ q(4805) => q(neh),
+ q(4806) => q(nei),
+ q(4807) => q(nej),
+ q(4808) => q(nek),
+ q(4809) => q(nem),
+ q(4810) => q(nen),
+ q(4811) => q(neo),
+ q(4812) => q(neq),
+ q(4813) => q(ner),
+ q(4814) => q(nes),
+ q(4815) => q(net),
+ q(4816) => q(neu),
+ q(4817) => q(nev),
+ q(4818) => q(nex),
+ q(4819) => q(ney),
+ q(4820) => q(nez),
+ q(4821) => q(nfa),
+ q(4822) => q(nfd),
+ q(4823) => q(nfl),
+ q(4824) => q(nfr),
+ q(4825) => q(nfu),
+ q(4826) => q(nga),
+ q(4827) => q(ngb),
+ q(4828) => q(ngc),
+ q(4829) => q(ngd),
+ q(4830) => q(nge),
+ q(4831) => q(ngg),
+ q(4832) => q(ngh),
+ q(4833) => q(ngi),
+ q(4834) => q(ngj),
+ q(4835) => q(ngk),
+ q(4836) => q(ngl),
+ q(4837) => q(ngm),
+ q(4838) => q(ngn),
+ q(4839) => q(ngo),
+ q(4840) => q(ngp),
+ q(4841) => q(ngq),
+ q(4842) => q(ngr),
+ q(4843) => q(ngs),
+ q(4844) => q(ngt),
+ q(4845) => q(ngu),
+ q(4846) => q(ngv),
+ q(4847) => q(ngw),
+ q(4848) => q(ngx),
+ q(4849) => q(ngy),
+ q(4850) => q(ngz),
+ q(4851) => q(nha),
+ q(4852) => q(nhb),
+ q(4853) => q(nhc),
+ q(4854) => q(nhd),
+ q(4855) => q(nhe),
+ q(4856) => q(nhf),
+ q(4857) => q(nhg),
+ q(4858) => q(nhh),
+ q(4859) => q(nhi),
+ q(4860) => q(nhk),
+ q(4861) => q(nhm),
+ q(4862) => q(nhn),
+ q(4863) => q(nho),
+ q(4864) => q(nhp),
+ q(4865) => q(nhq),
+ q(4866) => q(nhr),
+ q(4867) => q(nht),
+ q(4868) => q(nhu),
+ q(4869) => q(nhv),
+ q(4870) => q(nhw),
+ q(4871) => q(nhx),
+ q(4872) => q(nhy),
+ q(4873) => q(nhz),
+ q(4874) => q(nib),
+ q(4875) => q(nid),
+ q(4876) => q(nie),
+ q(4877) => q(nif),
+ q(4878) => q(nig),
+ q(4879) => q(nih),
+ q(4880) => q(nii),
+ q(4881) => q(nij),
+ q(4882) => q(nik),
+ q(4883) => q(nil),
+ q(4884) => q(nim),
+ q(4885) => q(nin),
+ q(4886) => q(nio),
+ q(4887) => q(niq),
+ q(4888) => q(nir),
+ q(4889) => q(nis),
+ q(4890) => q(nit),
+ q(4891) => q(niv),
+ q(4892) => q(niw),
+ q(4893) => q(nix),
+ q(4894) => q(niy),
+ q(4895) => q(niz),
+ q(4896) => q(nja),
+ q(4897) => q(njb),
+ q(4898) => q(njd),
+ q(4899) => q(njh),
+ q(4900) => q(nji),
+ q(4901) => q(njj),
+ q(4902) => q(njl),
+ q(4903) => q(njm),
+ q(4904) => q(njn),
+ q(4905) => q(njo),
+ q(4906) => q(njr),
+ q(4907) => q(njs),
+ q(4908) => q(njt),
+ q(4909) => q(nju),
+ q(4910) => q(njx),
+ q(4911) => q(njy),
+ q(4912) => q(njz),
+ q(4913) => q(nka),
+ q(4914) => q(nkb),
+ q(4915) => q(nkc),
+ q(4916) => q(nkd),
+ q(4917) => q(nke),
+ q(4918) => q(nkf),
+ q(4919) => q(nkg),
+ q(4920) => q(nkh),
+ q(4921) => q(nki),
+ q(4922) => q(nkj),
+ q(4923) => q(nkk),
+ q(4924) => q(nkm),
+ q(4925) => q(nkn),
+ q(4926) => q(nko),
+ q(4927) => q(nkp),
+ q(4928) => q(nkq),
+ q(4929) => q(nkr),
+ q(4930) => q(nks),
+ q(4931) => q(nkt),
+ q(4932) => q(nku),
+ q(4933) => q(nkv),
+ q(4934) => q(nkw),
+ q(4935) => q(nkx),
+ q(4936) => q(nkz),
+ q(4937) => q(nla),
+ q(4938) => q(nlc),
+ q(4939) => q(nle),
+ q(4940) => q(nlg),
+ q(4941) => q(nli),
+ q(4942) => q(nlj),
+ q(4943) => q(nlk),
+ q(4944) => q(nll),
+ q(4945) => q(nlo),
+ q(4946) => q(nlq),
+ q(4947) => q(nlu),
+ q(4948) => q(nlv),
+ q(4949) => q(nlw),
+ q(4950) => q(nlx),
+ q(4951) => q(nly),
+ q(4952) => q(nlz),
+ q(4953) => q(nma),
+ q(4954) => q(nmb),
+ q(4955) => q(nmc),
+ q(4956) => q(nmd),
+ q(4957) => q(nme),
+ q(4958) => q(nmf),
+ q(4959) => q(nmg),
+ q(4960) => q(nmh),
+ q(4961) => q(nmi),
+ q(4962) => q(nmj),
+ q(4963) => q(nmk),
+ q(4964) => q(nml),
+ q(4965) => q(nmm),
+ q(4966) => q(nmn),
+ q(4967) => q(nmo),
+ q(4968) => q(nmp),
+ q(4969) => q(nmq),
+ q(4970) => q(nmr),
+ q(4971) => q(nms),
+ q(4972) => q(nmt),
+ q(4973) => q(nmu),
+ q(4974) => q(nmv),
+ q(4975) => q(nmw),
+ q(4976) => q(nmx),
+ q(4977) => q(nmy),
+ q(4978) => q(nmz),
+ q(4979) => q(nna),
+ q(4980) => q(nnb),
+ q(4981) => q(nnc),
+ q(4982) => q(nnd),
+ q(4983) => q(nne),
+ q(4984) => q(nnf),
+ q(4985) => q(nng),
+ q(4986) => q(nnh),
+ q(4987) => q(nni),
+ q(4988) => q(nnj),
+ q(4989) => q(nnk),
+ q(4990) => q(nnl),
+ q(4991) => q(nnm),
+ q(4992) => q(nnn),
+ q(4993) => q(nnp),
+ q(4994) => q(nnq),
+ q(4995) => q(nnr),
+ q(4996) => q(nns),
+ q(4997) => q(nnt),
+ q(4998) => q(nnu),
+ q(4999) => q(nnv),
+ q(5000) => q(nnw),
+ q(5001) => q(nny),
+ q(5002) => q(nnz),
+ q(5003) => q(noa),
+ q(5004) => q(noc),
+ q(5005) => q(nod),
+ q(5006) => q(noe),
+ q(5007) => q(nof),
+ q(5008) => q(noh),
+ q(5009) => q(noi),
+ q(5010) => q(noj),
+ q(5011) => q(nok),
+ q(5012) => q(nol),
+ q(5013) => q(nom),
+ q(5014) => q(nop),
+ q(5015) => q(noq),
+ q(5016) => q(nos),
+ q(5017) => q(not),
+ q(5018) => q(nou),
+ q(5019) => q(nov),
+ q(5020) => q(now),
+ q(5021) => q(noy),
+ q(5022) => q(noz),
+ q(5023) => q(npa),
+ q(5024) => q(npb),
+ q(5025) => q(npg),
+ q(5026) => q(nph),
+ q(5027) => q(npi),
+ q(5028) => q(npl),
+ q(5029) => q(npn),
+ q(5030) => q(npo),
+ q(5031) => q(nps),
+ q(5032) => q(npu),
+ q(5033) => q(npy),
+ q(5034) => q(nqg),
+ q(5035) => q(nqk),
+ q(5036) => q(nqm),
+ q(5037) => q(nqn),
+ q(5038) => q(nqq),
+ q(5039) => q(nqy),
+ q(5040) => q(nra),
+ q(5041) => q(nrb),
+ q(5042) => q(nrc),
+ q(5043) => q(nre),
+ q(5044) => q(nrf),
+ q(5045) => q(nrg),
+ q(5046) => q(nri),
+ q(5047) => q(nrk),
+ q(5048) => q(nrl),
+ q(5049) => q(nrm),
+ q(5050) => q(nrn),
+ q(5051) => q(nrp),
+ q(5052) => q(nrr),
+ q(5053) => q(nrt),
+ q(5054) => q(nru),
+ q(5055) => q(nrx),
+ q(5056) => q(nrz),
+ q(5057) => q(nsa),
+ q(5058) => q(nsc),
+ q(5059) => q(nsd),
+ q(5060) => q(nse),
+ q(5061) => q(nsf),
+ q(5062) => q(nsg),
+ q(5063) => q(nsh),
+ q(5064) => q(nsi),
+ q(5065) => q(nsk),
+ q(5066) => q(nsl),
+ q(5067) => q(nsm),
+ q(5068) => q(nsn),
+ q(5069) => q(nsp),
+ q(5070) => q(nsq),
+ q(5071) => q(nsr),
+ q(5072) => q(nss),
+ q(5073) => q(nst),
+ q(5074) => q(nsu),
+ q(5075) => q(nsv),
+ q(5076) => q(nsw),
+ q(5077) => q(nsx),
+ q(5078) => q(nsy),
+ q(5079) => q(nsz),
+ q(5080) => q(ntd),
+ q(5081) => q(nte),
+ q(5082) => q(ntg),
+ q(5083) => q(nti),
+ q(5084) => q(ntj),
+ q(5085) => q(ntk),
+ q(5086) => q(ntm),
+ q(5087) => q(nto),
+ q(5088) => q(ntp),
+ q(5089) => q(ntr),
+ q(5090) => q(ntu),
+ q(5091) => q(ntw),
+ q(5092) => q(ntx),
+ q(5093) => q(nty),
+ q(5094) => q(ntz),
+ q(5095) => q(nua),
+ q(5096) => q(nuc),
+ q(5097) => q(nud),
+ q(5098) => q(nue),
+ q(5099) => q(nuf),
+ q(5100) => q(nug),
+ q(5101) => q(nuh),
+ q(5102) => q(nui),
+ q(5103) => q(nuj),
+ q(5104) => q(nuk),
+ q(5105) => q(nul),
+ q(5106) => q(num),
+ q(5107) => q(nun),
+ q(5108) => q(nuo),
+ q(5109) => q(nup),
+ q(5110) => q(nuq),
+ q(5111) => q(nur),
+ q(5112) => q(nus),
+ q(5113) => q(nut),
+ q(5114) => q(nuu),
+ q(5115) => q(nuv),
+ q(5116) => q(nuw),
+ q(5117) => q(nux),
+ q(5118) => q(nuy),
+ q(5119) => q(nuz),
+ q(5120) => q(nvh),
+ q(5121) => q(nvm),
+ q(5122) => q(nvo),
+ q(5123) => q(nwa),
+ q(5124) => q(nwb),
+ q(5125) => q(nwe),
+ q(5126) => q(nwg),
+ q(5127) => q(nwi),
+ q(5128) => q(nwm),
+ q(5129) => q(nwo),
+ q(5130) => q(nwr),
+ q(5131) => q(nwx),
+ q(5132) => q(nwy),
+ q(5133) => q(nxa),
+ q(5134) => q(nxd),
+ q(5135) => q(nxe),
+ q(5136) => q(nxg),
+ q(5137) => q(nxi),
+ q(5138) => q(nxk),
+ q(5139) => q(nxl),
+ q(5140) => q(nxm),
+ q(5141) => q(nxn),
+ q(5142) => q(nxo),
+ q(5143) => q(nxq),
+ q(5144) => q(nxr),
+ q(5145) => q(nxu),
+ q(5146) => q(nxx),
+ q(5147) => q(nyb),
+ q(5148) => q(nyc),
+ q(5149) => q(nyd),
+ q(5150) => q(nye),
+ q(5151) => q(nyf),
+ q(5152) => q(nyg),
+ q(5153) => q(nyh),
+ q(5154) => q(nyi),
+ q(5155) => q(nyj),
+ q(5156) => q(nyk),
+ q(5157) => q(nyl),
+ q(5158) => q(nyp),
+ q(5159) => q(nyq),
+ q(5160) => q(nyr),
+ q(5161) => q(nys),
+ q(5162) => q(nyt),
+ q(5163) => q(nyu),
+ q(5164) => q(nyv),
+ q(5165) => q(nyw),
+ q(5166) => q(nyx),
+ q(5167) => q(nyy),
+ q(5168) => q(nza),
+ q(5169) => q(nzb),
+ q(5170) => q(nzk),
+ q(5171) => q(nzm),
+ q(5172) => q(nzs),
+ q(5173) => q(nzu),
+ q(5174) => q(nzy),
+ q(5175) => q(nzz),
+ q(5176) => q(oaa),
+ q(5177) => q(oac),
+ q(5178) => q(oar),
+ q(5179) => q(oav),
+ q(5180) => q(obi),
+ q(5181) => q(obk),
+ q(5182) => q(obl),
+ q(5183) => q(obm),
+ q(5184) => q(obo),
+ q(5185) => q(obr),
+ q(5186) => q(obt),
+ q(5187) => q(obu),
+ q(5188) => q(oca),
+ q(5189) => q(och),
+ q(5190) => q(oco),
+ q(5191) => q(ocu),
+ q(5192) => q(oda),
+ q(5193) => q(odk),
+ q(5194) => q(odt),
+ q(5195) => q(odu),
+ q(5196) => q(ofo),
+ q(5197) => q(ofs),
+ q(5198) => q(ofu),
+ q(5199) => q(ogb),
+ q(5200) => q(ogc),
+ q(5201) => q(oge),
+ q(5202) => q(ogg),
+ q(5203) => q(ogo),
+ q(5204) => q(ogu),
+ q(5205) => q(oht),
+ q(5206) => q(ohu),
+ q(5207) => q(oia),
+ q(5208) => q(oin),
+ q(5209) => q(ojb),
+ q(5210) => q(ojc),
+ q(5211) => q(ojg),
+ q(5212) => q(ojp),
+ q(5213) => q(ojs),
+ q(5214) => q(ojv),
+ q(5215) => q(ojw),
+ q(5216) => q(oka),
+ q(5217) => q(okb),
+ q(5218) => q(okd),
+ q(5219) => q(oke),
+ q(5220) => q(okg),
+ q(5221) => q(okh),
+ q(5222) => q(oki),
+ q(5223) => q(okj),
+ q(5224) => q(okk),
+ q(5225) => q(okl),
+ q(5226) => q(okm),
+ q(5227) => q(okn),
+ q(5228) => q(oko),
+ q(5229) => q(okr),
+ q(5230) => q(oks),
+ q(5231) => q(oku),
+ q(5232) => q(okv),
+ q(5233) => q(okx),
+ q(5234) => q(ola),
+ q(5235) => q(old),
+ q(5236) => q(ole),
+ q(5237) => q(olk),
+ q(5238) => q(olm),
+ q(5239) => q(olo),
+ q(5240) => q(olr),
+ q(5241) => q(olt),
+ q(5242) => q(olu),
+ q(5243) => q(oma),
+ q(5244) => q(omb),
+ q(5245) => q(omc),
+ q(5246) => q(omg),
+ q(5247) => q(omi),
+ q(5248) => q(omk),
+ q(5249) => q(oml),
+ q(5250) => q(omn),
+ q(5251) => q(omo),
+ q(5252) => q(omp),
+ q(5253) => q(omr),
+ q(5254) => q(omt),
+ q(5255) => q(omu),
+ q(5256) => q(omw),
+ q(5257) => q(omx),
+ q(5258) => q(ona),
+ q(5259) => q(onb),
+ q(5260) => q(one),
+ q(5261) => q(ong),
+ q(5262) => q(oni),
+ q(5263) => q(onj),
+ q(5264) => q(onk),
+ q(5265) => q(onn),
+ q(5266) => q(ono),
+ q(5267) => q(onp),
+ q(5268) => q(onr),
+ q(5269) => q(ons),
+ q(5270) => q(ont),
+ q(5271) => q(onu),
+ q(5272) => q(onw),
+ q(5273) => q(onx),
+ q(5274) => q(ood),
+ q(5275) => q(oog),
+ q(5276) => q(oon),
+ q(5277) => q(oor),
+ q(5278) => q(oos),
+ q(5279) => q(opa),
+ q(5280) => q(opk),
+ q(5281) => q(opm),
+ q(5282) => q(opo),
+ q(5283) => q(opt),
+ q(5284) => q(opy),
+ q(5285) => q(ora),
+ q(5286) => q(orc),
+ q(5287) => q(ore),
+ q(5288) => q(org),
+ q(5289) => q(orh),
+ q(5290) => q(orn),
+ q(5291) => q(oro),
+ q(5292) => q(orr),
+ q(5293) => q(ors),
+ q(5294) => q(ort),
+ q(5295) => q(oru),
+ q(5296) => q(orv),
+ q(5297) => q(orw),
+ q(5298) => q(orx),
+ q(5299) => q(ory),
+ q(5300) => q(orz),
+ q(5301) => q(osc),
+ q(5302) => q(osi),
+ q(5303) => q(oso),
+ q(5304) => q(osp),
+ q(5305) => q(ost),
+ q(5306) => q(osu),
+ q(5307) => q(osx),
+ q(5308) => q(otb),
+ q(5309) => q(otd),
+ q(5310) => q(ote),
+ q(5311) => q(oti),
+ q(5312) => q(otk),
+ q(5313) => q(otl),
+ q(5314) => q(otm),
+ q(5315) => q(otn),
+ q(5316) => q(otq),
+ q(5317) => q(otr),
+ q(5318) => q(ots),
+ q(5319) => q(ott),
+ q(5320) => q(otu),
+ q(5321) => q(otw),
+ q(5322) => q(otx),
+ q(5323) => q(oty),
+ q(5324) => q(otz),
+ q(5325) => q(oua),
+ q(5326) => q(oub),
+ q(5327) => q(oue),
+ q(5328) => q(oui),
+ q(5329) => q(oum),
+ q(5330) => q(ovd),
+ q(5331) => q(owi),
+ q(5332) => q(owl),
+ q(5333) => q(oyb),
+ q(5334) => q(oyd),
+ q(5335) => q(oym),
+ q(5336) => q(oyy),
+ q(5337) => q(ozm),
+ q(5338) => q(pab),
+ q(5339) => q(pac),
+ q(5340) => q(pad),
+ q(5341) => q(pae),
+ q(5342) => q(paf),
+ q(5343) => q(pah),
+ q(5344) => q(pai),
+ q(5345) => q(pak),
+ q(5346) => q(pao),
+ q(5347) => q(paq),
+ q(5348) => q(par),
+ q(5349) => q(pas),
+ q(5350) => q(pat),
+ q(5351) => q(pav),
+ q(5352) => q(paw),
+ q(5353) => q(pax),
+ q(5354) => q(pay),
+ q(5355) => q(paz),
+ q(5356) => q(pbb),
+ q(5357) => q(pbc),
+ q(5358) => q(pbe),
+ q(5359) => q(pbf),
+ q(5360) => q(pbg),
+ q(5361) => q(pbh),
+ q(5362) => q(pbi),
+ q(5363) => q(pbl),
+ q(5364) => q(pbn),
+ q(5365) => q(pbo),
+ q(5366) => q(pbp),
+ q(5367) => q(pbr),
+ q(5368) => q(pbs),
+ q(5369) => q(pbt),
+ q(5370) => q(pbu),
+ q(5371) => q(pbv),
+ q(5372) => q(pby),
+ q(5373) => q(pca),
+ q(5374) => q(pcb),
+ q(5375) => q(pcc),
+ q(5376) => q(pcd),
+ q(5377) => q(pce),
+ q(5378) => q(pcf),
+ q(5379) => q(pcg),
+ q(5380) => q(pch),
+ q(5381) => q(pci),
+ q(5382) => q(pcj),
+ q(5383) => q(pck),
+ q(5384) => q(pcl),
+ q(5385) => q(pcm),
+ q(5386) => q(pcn),
+ q(5387) => q(pcp),
+ q(5388) => q(pcw),
+ q(5389) => q(pda),
+ q(5390) => q(pdc),
+ q(5391) => q(pdi),
+ q(5392) => q(pdn),
+ q(5393) => q(pdo),
+ q(5394) => q(pdt),
+ q(5395) => q(pdu),
+ q(5396) => q(pea),
+ q(5397) => q(peb),
+ q(5398) => q(ped),
+ q(5399) => q(pee),
+ q(5400) => q(pef),
+ q(5401) => q(peg),
+ q(5402) => q(peh),
+ q(5403) => q(pei),
+ q(5404) => q(pej),
+ q(5405) => q(pek),
+ q(5406) => q(pel),
+ q(5407) => q(pem),
+ q(5408) => q(pep),
+ q(5409) => q(peq),
+ q(5410) => q(pes),
+ q(5411) => q(pev),
+ q(5412) => q(pex),
+ q(5413) => q(pey),
+ q(5414) => q(pez),
+ q(5415) => q(pfa),
+ q(5416) => q(pfe),
+ q(5417) => q(pfl),
+ q(5418) => q(pga),
+ q(5419) => q(pgd),
+ q(5420) => q(pgg),
+ q(5421) => q(pgi),
+ q(5422) => q(pgk),
+ q(5423) => q(pgl),
+ q(5424) => q(pgn),
+ q(5425) => q(pgs),
+ q(5426) => q(pgu),
+ q(5427) => q(pgz),
+ q(5428) => q(pha),
+ q(5429) => q(phd),
+ q(5430) => q(phg),
+ q(5431) => q(phh),
+ q(5432) => q(phk),
+ q(5433) => q(phl),
+ q(5434) => q(phm),
+ q(5435) => q(pho),
+ q(5436) => q(phq),
+ q(5437) => q(phr),
+ q(5438) => q(pht),
+ q(5439) => q(phu),
+ q(5440) => q(phv),
+ q(5441) => q(phw),
+ q(5442) => q(pia),
+ q(5443) => q(pib),
+ q(5444) => q(pic),
+ q(5445) => q(pid),
+ q(5446) => q(pie),
+ q(5447) => q(pif),
+ q(5448) => q(pig),
+ q(5449) => q(pih),
+ q(5450) => q(pii),
+ q(5451) => q(pij),
+ q(5452) => q(pil),
+ q(5453) => q(pim),
+ q(5454) => q(pin),
+ q(5455) => q(pio),
+ q(5456) => q(pip),
+ q(5457) => q(pir),
+ q(5458) => q(pis),
+ q(5459) => q(pit),
+ q(5460) => q(piu),
+ q(5461) => q(piv),
+ q(5462) => q(piw),
+ q(5463) => q(pix),
+ q(5464) => q(piy),
+ q(5465) => q(piz),
+ q(5466) => q(pjt),
+ q(5467) => q(pka),
+ q(5468) => q(pkb),
+ q(5469) => q(pkc),
+ q(5470) => q(pkg),
+ q(5471) => q(pkh),
+ q(5472) => q(pkn),
+ q(5473) => q(pko),
+ q(5474) => q(pkp),
+ q(5475) => q(pkr),
+ q(5476) => q(pks),
+ q(5477) => q(pkt),
+ q(5478) => q(pku),
+ q(5479) => q(pla),
+ q(5480) => q(plb),
+ q(5481) => q(plc),
+ q(5482) => q(pld),
+ q(5483) => q(ple),
+ q(5484) => q(plg),
+ q(5485) => q(plh),
+ q(5486) => q(plj),
+ q(5487) => q(plk),
+ q(5488) => q(pll),
+ q(5489) => q(pln),
+ q(5490) => q(plo),
+ q(5491) => q(plp),
+ q(5492) => q(plq),
+ q(5493) => q(plr),
+ q(5494) => q(pls),
+ q(5495) => q(plt),
+ q(5496) => q(plu),
+ q(5497) => q(plv),
+ q(5498) => q(plw),
+ q(5499) => q(ply),
+ q(5500) => q(plz),
+ q(5501) => q(pma),
+ q(5502) => q(pmb),
+ q(5503) => q(pmd),
+ q(5504) => q(pme),
+ q(5505) => q(pmf),
+ q(5506) => q(pmh),
+ q(5507) => q(pmi),
+ q(5508) => q(pmj),
+ q(5509) => q(pmk),
+ q(5510) => q(pml),
+ q(5511) => q(pmm),
+ q(5512) => q(pmn),
+ q(5513) => q(pmo),
+ q(5514) => q(pmq),
+ q(5515) => q(pmr),
+ q(5516) => q(pms),
+ q(5517) => q(pmt),
+ q(5518) => q(pmw),
+ q(5519) => q(pmx),
+ q(5520) => q(pmy),
+ q(5521) => q(pmz),
+ q(5522) => q(pna),
+ q(5523) => q(pnb),
+ q(5524) => q(pnc),
+ q(5525) => q(pne),
+ q(5526) => q(png),
+ q(5527) => q(pnh),
+ q(5528) => q(pni),
+ q(5529) => q(pnj),
+ q(5530) => q(pnk),
+ q(5531) => q(pnl),
+ q(5532) => q(pnm),
+ q(5533) => q(pnn),
+ q(5534) => q(pno),
+ q(5535) => q(pnp),
+ q(5536) => q(pnq),
+ q(5537) => q(pnr),
+ q(5538) => q(pns),
+ q(5539) => q(pnt),
+ q(5540) => q(pnu),
+ q(5541) => q(pnv),
+ q(5542) => q(pnw),
+ q(5543) => q(pnx),
+ q(5544) => q(pny),
+ q(5545) => q(pnz),
+ q(5546) => q(poc),
+ q(5547) => q(poe),
+ q(5548) => q(pof),
+ q(5549) => q(pog),
+ q(5550) => q(poh),
+ q(5551) => q(poi),
+ q(5552) => q(pok),
+ q(5553) => q(pom),
+ q(5554) => q(poo),
+ q(5555) => q(pop),
+ q(5556) => q(poq),
+ q(5557) => q(pos),
+ q(5558) => q(pot),
+ q(5559) => q(pov),
+ q(5560) => q(pow),
+ q(5561) => q(pox),
+ q(5562) => q(poy),
+ q(5563) => q(ppe),
+ q(5564) => q(ppi),
+ q(5565) => q(ppk),
+ q(5566) => q(ppl),
+ q(5567) => q(ppm),
+ q(5568) => q(ppn),
+ q(5569) => q(ppo),
+ q(5570) => q(ppp),
+ q(5571) => q(ppq),
+ q(5572) => q(pps),
+ q(5573) => q(ppt),
+ q(5574) => q(ppu),
+ q(5575) => q(pqa),
+ q(5576) => q(pqm),
+ q(5577) => q(prb),
+ q(5578) => q(prc),
+ q(5579) => q(prd),
+ q(5580) => q(pre),
+ q(5581) => q(prf),
+ q(5582) => q(prg),
+ q(5583) => q(prh),
+ q(5584) => q(pri),
+ q(5585) => q(prk),
+ q(5586) => q(prl),
+ q(5587) => q(prm),
+ q(5588) => q(prn),
+ q(5589) => q(prp),
+ q(5590) => q(prq),
+ q(5591) => q(prr),
+ q(5592) => q(prs),
+ q(5593) => q(prt),
+ q(5594) => q(pru),
+ q(5595) => q(prw),
+ q(5596) => q(prx),
+ q(5597) => q(prz),
+ q(5598) => q(psa),
+ q(5599) => q(psc),
+ q(5600) => q(psd),
+ q(5601) => q(pse),
+ q(5602) => q(psg),
+ q(5603) => q(psh),
+ q(5604) => q(psi),
+ q(5605) => q(psl),
+ q(5606) => q(psm),
+ q(5607) => q(psn),
+ q(5608) => q(pso),
+ q(5609) => q(psp),
+ q(5610) => q(psq),
+ q(5611) => q(psr),
+ q(5612) => q(pss),
+ q(5613) => q(pst),
+ q(5614) => q(psu),
+ q(5615) => q(psw),
+ q(5616) => q(psy),
+ q(5617) => q(pta),
+ q(5618) => q(pth),
+ q(5619) => q(pti),
+ q(5620) => q(ptn),
+ q(5621) => q(pto),
+ q(5622) => q(ptp),
+ q(5623) => q(ptq),
+ q(5624) => q(ptr),
+ q(5625) => q(ptt),
+ q(5626) => q(ptu),
+ q(5627) => q(ptv),
+ q(5628) => q(ptw),
+ q(5629) => q(pty),
+ q(5630) => q(pua),
+ q(5631) => q(pub),
+ q(5632) => q(puc),
+ q(5633) => q(pud),
+ q(5634) => q(pue),
+ q(5635) => q(puf),
+ q(5636) => q(pug),
+ q(5637) => q(pui),
+ q(5638) => q(puj),
+ q(5639) => q(puk),
+ q(5640) => q(pum),
+ q(5641) => q(puo),
+ q(5642) => q(pup),
+ q(5643) => q(puq),
+ q(5644) => q(pur),
+ q(5645) => q(put),
+ q(5646) => q(puu),
+ q(5647) => q(puw),
+ q(5648) => q(pux),
+ q(5649) => q(puy),
+ q(5650) => q(pwa),
+ q(5651) => q(pwb),
+ q(5652) => q(pwg),
+ q(5653) => q(pwi),
+ q(5654) => q(pwm),
+ q(5655) => q(pwn),
+ q(5656) => q(pwo),
+ q(5657) => q(pwr),
+ q(5658) => q(pww),
+ q(5659) => q(pxm),
+ q(5660) => q(pye),
+ q(5661) => q(pym),
+ q(5662) => q(pyn),
+ q(5663) => q(pys),
+ q(5664) => q(pyu),
+ q(5665) => q(pyx),
+ q(5666) => q(pyy),
+ q(5667) => q(pzn),
+ q(5668) => q(qua),
+ q(5669) => q(qub),
+ q(5670) => q(quc),
+ q(5671) => q(qud),
+ q(5672) => q(quf),
+ q(5673) => q(qug),
+ q(5674) => q(quh),
+ q(5675) => q(qui),
+ q(5676) => q(quk),
+ q(5677) => q(qul),
+ q(5678) => q(qum),
+ q(5679) => q(qun),
+ q(5680) => q(qup),
+ q(5681) => q(quq),
+ q(5682) => q(qur),
+ q(5683) => q(qus),
+ q(5684) => q(quv),
+ q(5685) => q(quw),
+ q(5686) => q(qux),
+ q(5687) => q(quy),
+ q(5688) => q(quz),
+ q(5689) => q(qva),
+ q(5690) => q(qvc),
+ q(5691) => q(qve),
+ q(5692) => q(qvh),
+ q(5693) => q(qvi),
+ q(5694) => q(qvj),
+ q(5695) => q(qvl),
+ q(5696) => q(qvm),
+ q(5697) => q(qvn),
+ q(5698) => q(qvo),
+ q(5699) => q(qvp),
+ q(5700) => q(qvs),
+ q(5701) => q(qvw),
+ q(5702) => q(qvy),
+ q(5703) => q(qvz),
+ q(5704) => q(qwa),
+ q(5705) => q(qwc),
+ q(5706) => q(qwh),
+ q(5707) => q(qwm),
+ q(5708) => q(qws),
+ q(5709) => q(qwt),
+ q(5710) => q(qxa),
+ q(5711) => q(qxc),
+ q(5712) => q(qxh),
+ q(5713) => q(qxl),
+ q(5714) => q(qxn),
+ q(5715) => q(qxo),
+ q(5716) => q(qxp),
+ q(5717) => q(qxq),
+ q(5718) => q(qxr),
+ q(5719) => q(qxs),
+ q(5720) => q(qxt),
+ q(5721) => q(qxu),
+ q(5722) => q(qxw),
+ q(5723) => q(qya),
+ q(5724) => q(qyp),
+ q(5725) => q(raa),
+ q(5726) => q(rab),
+ q(5727) => q(rac),
+ q(5728) => q(rad),
+ q(5729) => q(raf),
+ q(5730) => q(rag),
+ q(5731) => q(rah),
+ q(5732) => q(rai),
+ q(5733) => q(rak),
+ q(5734) => q(ral),
+ q(5735) => q(ram),
+ q(5736) => q(ran),
+ q(5737) => q(rao),
+ q(5738) => q(raq),
+ q(5739) => q(ras),
+ q(5740) => q(rat),
+ q(5741) => q(rau),
+ q(5742) => q(rav),
+ q(5743) => q(raw),
+ q(5744) => q(rax),
+ q(5745) => q(ray),
+ q(5746) => q(raz),
+ q(5747) => q(rbb),
+ q(5748) => q(rbk),
+ q(5749) => q(rbl),
+ q(5750) => q(rbp),
+ q(5751) => q(rcf),
+ q(5752) => q(rdb),
+ q(5753) => q(rea),
+ q(5754) => q(reb),
+ q(5755) => q(ree),
+ q(5756) => q(reg),
+ q(5757) => q(rei),
+ q(5758) => q(rej),
+ q(5759) => q(rel),
+ q(5760) => q(rem),
+ q(5761) => q(ren),
+ q(5762) => q(rer),
+ q(5763) => q(res),
+ q(5764) => q(ret),
+ q(5765) => q(rey),
+ q(5766) => q(rga),
+ q(5767) => q(rge),
+ q(5768) => q(rgk),
+ q(5769) => q(rgn),
+ q(5770) => q(rgr),
+ q(5771) => q(rgs),
+ q(5772) => q(rgu),
+ q(5773) => q(rhg),
+ q(5774) => q(rhp),
+ q(5775) => q(ria),
+ q(5776) => q(rie),
+ q(5777) => q(rif),
+ q(5778) => q(ril),
+ q(5779) => q(rim),
+ q(5780) => q(rin),
+ q(5781) => q(rir),
+ q(5782) => q(rit),
+ q(5783) => q(riu),
+ q(5784) => q(rjg),
+ q(5785) => q(rji),
+ q(5786) => q(rjs),
+ q(5787) => q(rka),
+ q(5788) => q(rkb),
+ q(5789) => q(rkh),
+ q(5790) => q(rki),
+ q(5791) => q(rkm),
+ q(5792) => q(rkt),
+ q(5793) => q(rkw),
+ q(5794) => q(rma),
+ q(5795) => q(rmb),
+ q(5796) => q(rmc),
+ q(5797) => q(rmd),
+ q(5798) => q(rme),
+ q(5799) => q(rmf),
+ q(5800) => q(rmg),
+ q(5801) => q(rmh),
+ q(5802) => q(rmi),
+ q(5803) => q(rmk),
+ q(5804) => q(rml),
+ q(5805) => q(rmm),
+ q(5806) => q(rmn),
+ q(5807) => q(rmo),
+ q(5808) => q(rmp),
+ q(5809) => q(rmq),
+ q(5810) => q(rms),
+ q(5811) => q(rmt),
+ q(5812) => q(rmu),
+ q(5813) => q(rmv),
+ q(5814) => q(rmw),
+ q(5815) => q(rmx),
+ q(5816) => q(rmy),
+ q(5817) => q(rmz),
+ q(5818) => q(rnd),
+ q(5819) => q(rng),
+ q(5820) => q(rnl),
+ q(5821) => q(rnn),
+ q(5822) => q(rnp),
+ q(5823) => q(rnr),
+ q(5824) => q(rnw),
+ q(5825) => q(rob),
+ q(5826) => q(roc),
+ q(5827) => q(rod),
+ q(5828) => q(roe),
+ q(5829) => q(rof),
+ q(5830) => q(rog),
+ q(5831) => q(rol),
+ q(5832) => q(roo),
+ q(5833) => q(rop),
+ q(5834) => q(ror),
+ q(5835) => q(rou),
+ q(5836) => q(row),
+ q(5837) => q(rpn),
+ q(5838) => q(rpt),
+ q(5839) => q(rri),
+ q(5840) => q(rro),
+ q(5841) => q(rrt),
+ q(5842) => q(rsb),
+ q(5843) => q(rsi),
+ q(5844) => q(rsl),
+ q(5845) => q(rsm),
+ q(5846) => q(rtc),
+ q(5847) => q(rth),
+ q(5848) => q(rtm),
+ q(5849) => q(rts),
+ q(5850) => q(rtw),
+ q(5851) => q(rub),
+ q(5852) => q(ruc),
+ q(5853) => q(rue),
+ q(5854) => q(ruf),
+ q(5855) => q(rug),
+ q(5856) => q(ruh),
+ q(5857) => q(rui),
+ q(5858) => q(ruk),
+ q(5859) => q(ruo),
+ q(5860) => q(ruq),
+ q(5861) => q(rut),
+ q(5862) => q(ruu),
+ q(5863) => q(ruy),
+ q(5864) => q(ruz),
+ q(5865) => q(rwa),
+ q(5866) => q(rwk),
+ q(5867) => q(rwm),
+ q(5868) => q(rwo),
+ q(5869) => q(rwr),
+ q(5870) => q(rxd),
+ q(5871) => q(rxw),
+ q(5872) => q(ryn),
+ q(5873) => q(rys),
+ q(5874) => q(ryu),
+ q(5875) => q(rzh),
+ q(5876) => q(saa),
+ q(5877) => q(sab),
+ q(5878) => q(sac),
+ q(5879) => q(sae),
+ q(5880) => q(saf),
+ q(5881) => q(saj),
+ q(5882) => q(sak),
+ q(5883) => q(sao),
+ q(5884) => q(saq),
+ q(5885) => q(sar),
+ q(5886) => q(sau),
+ q(5887) => q(sav),
+ q(5888) => q(saw),
+ q(5889) => q(sax),
+ q(5890) => q(say),
+ q(5891) => q(saz),
+ q(5892) => q(sba),
+ q(5893) => q(sbb),
+ q(5894) => q(sbc),
+ q(5895) => q(sbd),
+ q(5896) => q(slc),
+ q(5897) => q(sbf),
+ q(5898) => q(sbg),
+ q(5899) => q(sbh),
+ q(5900) => q(sbi),
+ q(5901) => q(sbj),
+ q(5902) => q(sbk),
+ q(5903) => q(sbl),
+ q(5904) => q(sbm),
+ q(5905) => q(sbn),
+ q(5906) => q(sbo),
+ q(5907) => q(sbp),
+ q(5908) => q(sbq),
+ q(5909) => q(sbr),
+ q(5910) => q(sbs),
+ q(5911) => q(sbt),
+ q(5912) => q(sbu),
+ q(5913) => q(sbv),
+ q(5914) => q(sbw),
+ q(5915) => q(sbx),
+ q(5916) => q(sby),
+ q(5917) => q(sbz),
+ q(5918) => q(scb),
+ q(5919) => q(sce),
+ q(5920) => q(scf),
+ q(5921) => q(scg),
+ q(5922) => q(sch),
+ q(5923) => q(sci),
+ q(5924) => q(sck),
+ q(5925) => q(scl),
+ q(5926) => q(scp),
+ q(5927) => q(scq),
+ q(5928) => q(scs),
+ q(5929) => q(scu),
+ q(5930) => q(scv),
+ q(5931) => q(scw),
+ q(5932) => q(scx),
+ q(5933) => q(sda),
+ q(5934) => q(sdb),
+ q(5935) => q(sdc),
+ q(5936) => q(sde),
+ q(5937) => q(sdf),
+ q(5938) => q(sdg),
+ q(5939) => q(sdh),
+ q(5940) => q(sdj),
+ q(5941) => q(sdk),
+ q(5942) => q(sdl),
+ q(5943) => q(sdm),
+ q(5944) => q(sdn),
+ q(5945) => q(sdo),
+ q(5946) => q(sdp),
+ q(5947) => q(sdr),
+ q(5948) => q(sds),
+ q(5949) => q(sdt),
+ q(5950) => q(sdu),
+ q(5951) => q(sdx),
+ q(5952) => q(sdz),
+ q(5953) => q(sea),
+ q(5954) => q(seb),
+ q(5955) => q(sec),
+ q(5956) => q(sed),
+ q(5957) => q(see),
+ q(5958) => q(sef),
+ q(5959) => q(seg),
+ q(5960) => q(seh),
+ q(5961) => q(sei),
+ q(5962) => q(sej),
+ q(5963) => q(sek),
+ q(5964) => q(sen),
+ q(5965) => q(seo),
+ q(5966) => q(sep),
+ q(5967) => q(seq),
+ q(5968) => q(ser),
+ q(5969) => q(ses),
+ q(5970) => q(set),
+ q(5971) => q(seu),
+ q(5972) => q(sev),
+ q(5973) => q(sew),
+ q(5974) => q(sey),
+ q(5975) => q(sez),
+ q(5976) => q(sfb),
+ q(5977) => q(sfe),
+ q(5978) => q(sfm),
+ q(5979) => q(sfs),
+ q(5980) => q(sfw),
+ q(5981) => q(sgb),
+ q(5982) => q(sgc),
+ q(5983) => q(sgd),
+ q(5984) => q(sge),
+ q(5985) => q(sgg),
+ q(5986) => q(sgh),
+ q(5987) => q(sgi),
+ q(5988) => q(sgj),
+ q(5989) => q(sgk),
+ q(5990) => q(sgm),
+ q(5991) => q(sgp),
+ q(5992) => q(sgr),
+ q(5993) => q(sgs),
+ q(5994) => q(sgt),
+ q(5995) => q(sgu),
+ q(5996) => q(sgw),
+ q(5997) => q(sgx),
+ q(5998) => q(sgy),
+ q(5999) => q(sgz),
+ q(6000) => q(sha),
+ q(6001) => q(shb),
+ q(6002) => q(shc),
+ q(6003) => q(shd),
+ q(6004) => q(she),
+ q(6005) => q(shg),
+ q(6006) => q(shh),
+ q(6007) => q(shi),
+ q(6008) => q(shj),
+ q(6009) => q(shk),
+ q(6010) => q(shl),
+ q(6011) => q(shm),
+ q(6012) => q(sho),
+ q(6013) => q(shp),
+ q(6014) => q(shq),
+ q(6015) => q(shr),
+ q(6016) => q(shs),
+ q(6017) => q(sht),
+ q(6018) => q(shu),
+ q(6019) => q(shv),
+ q(6020) => q(shw),
+ q(6021) => q(shx),
+ q(6022) => q(shy),
+ q(6023) => q(shz),
+ q(6024) => q(sia),
+ q(6025) => q(sib),
+ q(6026) => q(sie),
+ q(6027) => q(sif),
+ q(6028) => q(sig),
+ q(6029) => q(sih),
+ q(6030) => q(sii),
+ q(6031) => q(sij),
+ q(6032) => q(sik),
+ q(6033) => q(sil),
+ q(6034) => q(sim),
+ q(6035) => q(sip),
+ q(6036) => q(siq),
+ q(6037) => q(sir),
+ q(6038) => q(sis),
+ q(6039) => q(siu),
+ q(6040) => q(siv),
+ q(6041) => q(siw),
+ q(6042) => q(six),
+ q(6043) => q(siy),
+ q(6044) => q(siz),
+ q(6045) => q(sja),
+ q(6046) => q(sjb),
+ q(6047) => q(sjd),
+ q(6048) => q(sje),
+ q(6049) => q(sjg),
+ q(6050) => q(sjk),
+ q(6051) => q(sjl),
+ q(6052) => q(sjm),
+ q(6053) => q(sjn),
+ q(6054) => q(sjo),
+ q(6055) => q(sjp),
+ q(6056) => q(sjr),
+ q(6057) => q(sjs),
+ q(6058) => q(sjt),
+ q(6059) => q(sju),
+ q(6060) => q(sjw),
+ q(6061) => q(ska),
+ q(6062) => q(skb),
+ q(6063) => q(skc),
+ q(6064) => q(skd),
+ q(6065) => q(ske),
+ q(6066) => q(skf),
+ q(6067) => q(skg),
+ q(6068) => q(skh),
+ q(6069) => q(ski),
+ q(6070) => q(skj),
+ q(6071) => q(skk),
+ q(6072) => q(skm),
+ q(6073) => q(skn),
+ q(6074) => q(sko),
+ q(6075) => q(skp),
+ q(6076) => q(skq),
+ q(6077) => q(skr),
+ q(6078) => q(sks),
+ q(6079) => q(skt),
+ q(6080) => q(sku),
+ q(6081) => q(skv),
+ q(6082) => q(skw),
+ q(6083) => q(skx),
+ q(6084) => q(sky),
+ q(6085) => q(skz),
+ q(6086) => q(sld),
+ q(6087) => q(sle),
+ q(6088) => q(slf),
+ q(6089) => q(slg),
+ q(6090) => q(slh),
+ q(6091) => q(sli),
+ q(6092) => q(slj),
+ q(6093) => q(sll),
+ q(6094) => q(slm),
+ q(6095) => q(sln),
+ q(6096) => q(slp),
+ q(6097) => q(slq),
+ q(6098) => q(slr),
+ q(6099) => q(sls),
+ q(6100) => q(slt),
+ q(6101) => q(slu),
+ q(6102) => q(slw),
+ q(6103) => q(slx),
+ q(6104) => q(sly),
+ q(6105) => q(slz),
+ q(6106) => q(smb),
+ q(6107) => q(smc),
+ q(6108) => q(smd),
+ q(6109) => q(smf),
+ q(6110) => q(smg),
+ q(6111) => q(smh),
+ q(6112) => q(smk),
+ q(6113) => q(sml),
+ q(6114) => q(smm),
+ q(6115) => q(smp),
+ q(6116) => q(smq),
+ q(6117) => q(smr),
+ q(6118) => q(smt),
+ q(6119) => q(smu),
+ q(6120) => q(smv),
+ q(6121) => q(smw),
+ q(6122) => q(smx),
+ q(6123) => q(smy),
+ q(6124) => q(smz),
+ q(6125) => q(snb),
+ q(6126) => q(snc),
+ q(6127) => q(sne),
+ q(6128) => q(snf),
+ q(6129) => q(sng),
+ q(6130) => q(snh),
+ q(6131) => q(sni),
+ q(6132) => q(snj),
+ q(6133) => q(snl),
+ q(6134) => q(snm),
+ q(6135) => q(snn),
+ q(6136) => q(sno),
+ q(6137) => q(snp),
+ q(6138) => q(snq),
+ q(6139) => q(snr),
+ q(6140) => q(sns),
+ q(6141) => q(snu),
+ q(6142) => q(snv),
+ q(6143) => q(snw),
+ q(6144) => q(snx),
+ q(6145) => q(sny),
+ q(6146) => q(snz),
+ q(6147) => q(soa),
+ q(6148) => q(sob),
+ q(6149) => q(soc),
+ q(6150) => q(sod),
+ q(6151) => q(soe),
+ q(6152) => q(soh),
+ q(6153) => q(soi),
+ q(6154) => q(soj),
+ q(6155) => q(sok),
+ q(6156) => q(sol),
+ q(6157) => q(soo),
+ q(6158) => q(sop),
+ q(6159) => q(soq),
+ q(6160) => q(sor),
+ q(6161) => q(sos),
+ q(6162) => q(sou),
+ q(6163) => q(sov),
+ q(6164) => q(sow),
+ q(6165) => q(sox),
+ q(6166) => q(soy),
+ q(6167) => q(soz),
+ q(6168) => q(spb),
+ q(6169) => q(spc),
+ q(6170) => q(spd),
+ q(6171) => q(spe),
+ q(6172) => q(spg),
+ q(6173) => q(spi),
+ q(6174) => q(spk),
+ q(6175) => q(spl),
+ q(6176) => q(spm),
+ q(6177) => q(spn),
+ q(6178) => q(spo),
+ q(6179) => q(spp),
+ q(6180) => q(spq),
+ q(6181) => q(spr),
+ q(6182) => q(sps),
+ q(6183) => q(spt),
+ q(6184) => q(spu),
+ q(6185) => q(spv),
+ q(6186) => q(spx),
+ q(6187) => q(spy),
+ q(6188) => q(sqa),
+ q(6189) => q(sqh),
+ q(6190) => q(sqk),
+ q(6191) => q(sqm),
+ q(6192) => q(sqn),
+ q(6193) => q(sqo),
+ q(6194) => q(sqq),
+ q(6195) => q(sqr),
+ q(6196) => q(sqs),
+ q(6197) => q(sqt),
+ q(6198) => q(squ),
+ q(6199) => q(sra),
+ q(6200) => q(srb),
+ q(6201) => q(src),
+ q(6202) => q(sre),
+ q(6203) => q(srf),
+ q(6204) => q(srg),
+ q(6205) => q(srh),
+ q(6206) => q(sri),
+ q(6207) => q(srk),
+ q(6208) => q(srl),
+ q(6209) => q(srm),
+ q(6210) => q(sro),
+ q(6211) => q(srq),
+ q(6212) => q(srs),
+ q(6213) => q(srt),
+ q(6214) => q(sru),
+ q(6215) => q(srv),
+ q(6216) => q(srw),
+ q(6217) => q(srx),
+ q(6218) => q(sry),
+ q(6219) => q(srz),
+ q(6220) => q(ssb),
+ q(6221) => q(ssc),
+ q(6222) => q(ssd),
+ q(6223) => q(sse),
+ q(6224) => q(ssf),
+ q(6225) => q(ssg),
+ q(6226) => q(ssh),
+ q(6227) => q(ssi),
+ q(6228) => q(ssj),
+ q(6229) => q(ssk),
+ q(6230) => q(ssl),
+ q(6231) => q(ssm),
+ q(6232) => q(ssn),
+ q(6233) => q(sso),
+ q(6234) => q(ssp),
+ q(6235) => q(ssq),
+ q(6236) => q(ssr),
+ q(6237) => q(sss),
+ q(6238) => q(sst),
+ q(6239) => q(ssu),
+ q(6240) => q(ssv),
+ q(6241) => q(ssx),
+ q(6242) => q(ssy),
+ q(6243) => q(ssz),
+ q(6244) => q(sta),
+ q(6245) => q(stb),
+ q(6246) => q(std),
+ q(6247) => q(ste),
+ q(6248) => q(stf),
+ q(6249) => q(stg),
+ q(6250) => q(sth),
+ q(6251) => q(sti),
+ q(6252) => q(stj),
+ q(6253) => q(stk),
+ q(6254) => q(stl),
+ q(6255) => q(stm),
+ q(6256) => q(stn),
+ q(6257) => q(sto),
+ q(6258) => q(stp),
+ q(6259) => q(stq),
+ q(6260) => q(str),
+ q(6261) => q(sts),
+ q(6262) => q(stt),
+ q(6263) => q(stu),
+ q(6264) => q(stv),
+ q(6265) => q(stw),
+ q(6266) => q(sty),
+ q(6267) => q(sua),
+ q(6268) => q(sub),
+ q(6269) => q(suc),
+ q(6270) => q(sue),
+ q(6271) => q(sug),
+ q(6272) => q(sui),
+ q(6273) => q(suj),
+ q(6274) => q(suq),
+ q(6275) => q(sur),
+ q(6276) => q(sut),
+ q(6277) => q(suv),
+ q(6278) => q(suw),
+ q(6279) => q(suy),
+ q(6280) => q(suz),
+ q(6281) => q(sva),
+ q(6282) => q(svb),
+ q(6283) => q(svc),
+ q(6284) => q(sve),
+ q(6285) => q(svk),
+ q(6286) => q(svm),
+ q(6287) => q(svs),
+ q(6288) => q(svx),
+ q(6289) => q(swb),
+ q(6290) => q(swc),
+ q(6291) => q(swf),
+ q(6292) => q(swg),
+ q(6293) => q(swh),
+ q(6294) => q(swi),
+ q(6295) => q(swj),
+ q(6296) => q(swk),
+ q(6297) => q(swl),
+ q(6298) => q(swm),
+ q(6299) => q(swn),
+ q(6300) => q(swo),
+ q(6301) => q(swp),
+ q(6302) => q(swq),
+ q(6303) => q(swr),
+ q(6304) => q(sws),
+ q(6305) => q(swt),
+ q(6306) => q(swu),
+ q(6307) => q(swv),
+ q(6308) => q(sww),
+ q(6309) => q(swx),
+ q(6310) => q(swy),
+ q(6311) => q(sxb),
+ q(6312) => q(sxc),
+ q(6313) => q(sxe),
+ q(6314) => q(sxg),
+ q(6315) => q(sxk),
+ q(6316) => q(sxl),
+ q(6317) => q(sxm),
+ q(6318) => q(sxn),
+ q(6319) => q(sxo),
+ q(6320) => q(sxr),
+ q(6321) => q(sxs),
+ q(6322) => q(sxu),
+ q(6323) => q(sxw),
+ q(6324) => q(sya),
+ q(6325) => q(syb),
+ q(6326) => q(syi),
+ q(6327) => q(syk),
+ q(6328) => q(syl),
+ q(6329) => q(sym),
+ q(6330) => q(syn),
+ q(6331) => q(syo),
+ q(6332) => q(sys),
+ q(6333) => q(syw),
+ q(6334) => q(syx),
+ q(6335) => q(syy),
+ q(6336) => q(sza),
+ q(6337) => q(szb),
+ q(6338) => q(szc),
+ q(6339) => q(szd),
+ q(6340) => q(sze),
+ q(6341) => q(szg),
+ q(6342) => q(szl),
+ q(6343) => q(szn),
+ q(6344) => q(szp),
+ q(6345) => q(szv),
+ q(6346) => q(szw),
+ q(6347) => q(taa),
+ q(6348) => q(tab),
+ q(6349) => q(tac),
+ q(6350) => q(tad),
+ q(6351) => q(tae),
+ q(6352) => q(taf),
+ q(6353) => q(tag),
+ q(6354) => q(taj),
+ q(6355) => q(tak),
+ q(6356) => q(tal),
+ q(6357) => q(tan),
+ q(6358) => q(tao),
+ q(6359) => q(tap),
+ q(6360) => q(taq),
+ q(6361) => q(tar),
+ q(6362) => q(tas),
+ q(6363) => q(tau),
+ q(6364) => q(tav),
+ q(6365) => q(taw),
+ q(6366) => q(tax),
+ q(6367) => q(tay),
+ q(6368) => q(taz),
+ q(6369) => q(tba),
+ q(6370) => q(tbb),
+ q(6371) => q(tbc),
+ q(6372) => q(tbd),
+ q(6373) => q(tbe),
+ q(6374) => q(tbf),
+ q(6375) => q(tbg),
+ q(6376) => q(tbh),
+ q(6377) => q(tbi),
+ q(6378) => q(tbj),
+ q(6379) => q(tbk),
+ q(6380) => q(tbl),
+ q(6381) => q(tbm),
+ q(6382) => q(tbn),
+ q(6383) => q(tbo),
+ q(6384) => q(tbp),
+ q(6385) => q(tbr),
+ q(6386) => q(tbs),
+ q(6387) => q(tbt),
+ q(6388) => q(tbu),
+ q(6389) => q(tbv),
+ q(6390) => q(tbw),
+ q(6391) => q(tbx),
+ q(6392) => q(tby),
+ q(6393) => q(tbz),
+ q(6394) => q(tca),
+ q(6395) => q(tcb),
+ q(6396) => q(tcc),
+ q(6397) => q(tcd),
+ q(6398) => q(tce),
+ q(6399) => q(tcf),
+ q(6400) => q(tcg),
+ q(6401) => q(tch),
+ q(6402) => q(wbf),
+ q(6403) => q(tck),
+ q(6404) => q(tcl),
+ q(6405) => q(tcm),
+ q(6406) => q(tcn),
+ q(6407) => q(tco),
+ q(6408) => q(tcp),
+ q(6409) => q(tcq),
+ q(6410) => q(tcs),
+ q(6411) => q(tct),
+ q(6412) => q(tcu),
+ q(6413) => q(tcw),
+ q(6414) => q(tcx),
+ q(6415) => q(tcy),
+ q(6416) => q(tcz),
+ q(6417) => q(tda),
+ q(6418) => q(tdb),
+ q(6419) => q(tdc),
+ q(6420) => q(tdd),
+ q(6421) => q(tde),
+ q(6422) => q(tdf),
+ q(6423) => q(tdg),
+ q(6424) => q(tdh),
+ q(6425) => q(tdi),
+ q(6426) => q(tdj),
+ q(6427) => q(tdk),
+ q(6428) => q(tdl),
+ q(6429) => q(tdm),
+ q(6430) => q(tdn),
+ q(6431) => q(tdo),
+ q(6432) => q(tdq),
+ q(6433) => q(tdr),
+ q(6434) => q(tds),
+ q(6435) => q(tdt),
+ q(6436) => q(tdv),
+ q(6437) => q(tdx),
+ q(6438) => q(tdy),
+ q(6439) => q(tea),
+ q(6440) => q(teb),
+ q(6441) => q(tec),
+ q(6442) => q(ted),
+ q(6443) => q(tee),
+ q(6444) => q(tef),
+ q(6445) => q(teg),
+ q(6446) => q(teh),
+ q(6447) => q(tei),
+ q(6448) => q(tek),
+ q(6449) => q(ten),
+ q(6450) => q(teo),
+ q(6451) => q(tep),
+ q(6452) => q(teq),
+ q(6453) => q(tes),
+ q(6454) => q(teu),
+ q(6455) => q(tev),
+ q(6456) => q(tew),
+ q(6457) => q(tex),
+ q(6458) => q(tey),
+ q(6459) => q(tfi),
+ q(6460) => q(tfn),
+ q(6461) => q(tfo),
+ q(6462) => q(tfr),
+ q(6463) => q(tft),
+ q(6464) => q(tga),
+ q(6465) => q(tgb),
+ q(6466) => q(tgc),
+ q(6467) => q(tgd),
+ q(6468) => q(tge),
+ q(6469) => q(tgf),
+ q(6470) => q(tgh),
+ q(6471) => q(tgi),
+ q(6472) => q(tgj),
+ q(6473) => q(tgn),
+ q(6474) => q(tgo),
+ q(6475) => q(tgp),
+ q(6476) => q(tgq),
+ q(6477) => q(tgr),
+ q(6478) => q(tgs),
+ q(6479) => q(tgt),
+ q(6480) => q(tgu),
+ q(6481) => q(tgv),
+ q(6482) => q(tgw),
+ q(6483) => q(tgx),
+ q(6484) => q(tgy),
+ q(6485) => q(tgz),
+ q(6486) => q(thd),
+ q(6487) => q(the),
+ q(6488) => q(thf),
+ q(6489) => q(thh),
+ q(6490) => q(thi),
+ q(6491) => q(thk),
+ q(6492) => q(thl),
+ q(6493) => q(thm),
+ q(6494) => q(thn),
+ q(6495) => q(thp),
+ q(6496) => q(thq),
+ q(6497) => q(thr),
+ q(6498) => q(ths),
+ q(6499) => q(tht),
+ q(6500) => q(thu),
+ q(6501) => q(thv),
+ q(6502) => q(thw),
+ q(6503) => q(thy),
+ q(6504) => q(thz),
+ q(6505) => q(tia),
+ q(6506) => q(tic),
+ q(6507) => q(tif),
+ q(6508) => q(tih),
+ q(6509) => q(tii),
+ q(6510) => q(tij),
+ q(6511) => q(tik),
+ q(6512) => q(til),
+ q(6513) => q(tim),
+ q(6514) => q(tin),
+ q(6515) => q(tio),
+ q(6516) => q(tip),
+ q(6517) => q(tiq),
+ q(6518) => q(tis),
+ q(6519) => q(tit),
+ q(6520) => q(tiu),
+ q(6521) => q(tiw),
+ q(6522) => q(tix),
+ q(6523) => q(tiy),
+ q(6524) => q(tiz),
+ q(6525) => q(tja),
+ q(6526) => q(tjg),
+ q(6527) => q(tji),
+ q(6528) => q(tjl),
+ q(6529) => q(tjm),
+ q(6530) => q(tjn),
+ q(6531) => q(tjo),
+ q(6532) => q(tjs),
+ q(6533) => q(tju),
+ q(6534) => q(tjw),
+ q(6535) => q(tka),
+ q(6536) => q(tkb),
+ q(6537) => q(tkd),
+ q(6538) => q(tke),
+ q(6539) => q(tkf),
+ q(6540) => q(tkg),
+ q(6541) => q(tkm),
+ q(6542) => q(tkn),
+ q(6543) => q(tkp),
+ q(6544) => q(tkq),
+ q(6545) => q(tkr),
+ q(6546) => q(tks),
+ q(6547) => q(tkt),
+ q(6548) => q(tku),
+ q(6549) => q(tkv),
+ q(6550) => q(tkw),
+ q(6551) => q(tkx),
+ q(6552) => q(tkz),
+ q(6553) => q(tla),
+ q(6554) => q(tlb),
+ q(6555) => q(tlc),
+ q(6556) => q(tld),
+ q(6557) => q(tlf),
+ q(6558) => q(tlg),
+ q(6559) => q(tlj),
+ q(6560) => q(tlk),
+ q(6561) => q(tll),
+ q(6562) => q(tlm),
+ q(6563) => q(tln),
+ q(6564) => q(tlo),
+ q(6565) => q(tlp),
+ q(6566) => q(tlq),
+ q(6567) => q(tlr),
+ q(6568) => q(tls),
+ q(6569) => q(tlt),
+ q(6570) => q(tlu),
+ q(6571) => q(tlv),
+ q(6572) => q(tlx),
+ q(6573) => q(tly),
+ q(6574) => q(tma),
+ q(6575) => q(tmb),
+ q(6576) => q(tmc),
+ q(6577) => q(tmd),
+ q(6578) => q(tme),
+ q(6579) => q(tmf),
+ q(6580) => q(tmg),
+ q(6581) => q(tmi),
+ q(6582) => q(tmj),
+ q(6583) => q(tmk),
+ q(6584) => q(tml),
+ q(6585) => q(tmm),
+ q(6586) => q(tmn),
+ q(6587) => q(tmo),
+ q(6588) => q(tmq),
+ q(6589) => q(tmr),
+ q(6590) => q(tms),
+ q(6591) => q(tmt),
+ q(6592) => q(tmu),
+ q(6593) => q(tmv),
+ q(6594) => q(tmw),
+ q(6595) => q(tmy),
+ q(6596) => q(tmz),
+ q(6597) => q(tna),
+ q(6598) => q(tnb),
+ q(6599) => q(tnc),
+ q(6600) => q(tnd),
+ q(6601) => q(tng),
+ q(6602) => q(tnh),
+ q(6603) => q(tni),
+ q(6604) => q(tnk),
+ q(6605) => q(tnl),
+ q(6606) => q(tnm),
+ q(6607) => q(tnn),
+ q(6608) => q(tno),
+ q(6609) => q(tnp),
+ q(6610) => q(tnq),
+ q(6611) => q(tnr),
+ q(6612) => q(tns),
+ q(6613) => q(tnt),
+ q(6614) => q(tnu),
+ q(6615) => q(tnv),
+ q(6616) => q(tnw),
+ q(6617) => q(tnx),
+ q(6618) => q(tny),
+ q(6619) => q(tnz),
+ q(6620) => q(tob),
+ q(6621) => q(toc),
+ q(6622) => q(tod),
+ q(6623) => q(tof),
+ q(6624) => q(toh),
+ q(6625) => q(toi),
+ q(6626) => q(toj),
+ q(6627) => q(tol),
+ q(6628) => q(tom),
+ q(6629) => q(too),
+ q(6630) => q(top),
+ q(6631) => q(toq),
+ q(6632) => q(tor),
+ q(6633) => q(tos),
+ q(6634) => q(tou),
+ q(6635) => q(tov),
+ q(6636) => q(tow),
+ q(6637) => q(tox),
+ q(6638) => q(toy),
+ q(6639) => q(toz),
+ q(6640) => q(tpa),
+ q(6641) => q(tpc),
+ q(6642) => q(tpe),
+ q(6643) => q(tpf),
+ q(6644) => q(tpg),
+ q(6645) => q(tpj),
+ q(6646) => q(tpk),
+ q(6647) => q(tpl),
+ q(6648) => q(tpm),
+ q(6649) => q(tpn),
+ q(6650) => q(tpo),
+ q(6651) => q(tpp),
+ q(6652) => q(tpq),
+ q(6653) => q(tpr),
+ q(6654) => q(tpt),
+ q(6655) => q(tpu),
+ q(6656) => q(tpv),
+ q(6657) => q(tpw),
+ q(6658) => q(tpx),
+ q(6659) => q(tpy),
+ q(6660) => q(tpz),
+ q(6661) => q(tqb),
+ q(6662) => q(tql),
+ q(6663) => q(tqm),
+ q(6664) => q(tqn),
+ q(6665) => q(tqo),
+ q(6666) => q(tqp),
+ q(6667) => q(tqq),
+ q(6668) => q(tqr),
+ q(6669) => q(tqt),
+ q(6670) => q(tqu),
+ q(6671) => q(tqw),
+ q(6672) => q(tra),
+ q(6673) => q(trb),
+ q(6674) => q(trc),
+ q(6675) => q(trd),
+ q(6676) => q(tre),
+ q(6677) => q(trf),
+ q(6678) => q(trg),
+ q(6679) => q(trh),
+ q(6680) => q(tri),
+ q(6681) => q(trj),
+ q(6682) => q(trl),
+ q(6683) => q(trm),
+ q(6684) => q(trn),
+ q(6685) => q(tro),
+ q(6686) => q(trp),
+ q(6687) => q(trq),
+ q(6688) => q(trr),
+ q(6689) => q(trs),
+ q(6690) => q(trt),
+ q(6691) => q(tru),
+ q(6692) => q(trv),
+ q(6693) => q(trw),
+ q(6694) => q(trx),
+ q(6695) => q(try),
+ q(6696) => q(trz),
+ q(6697) => q(tsa),
+ q(6698) => q(tsb),
+ q(6699) => q(tsc),
+ q(6700) => q(tsd),
+ q(6701) => q(tse),
+ q(6702) => q(tsg),
+ q(6703) => q(tsh),
+ q(6704) => q(tsj),
+ q(6705) => q(tsk),
+ q(6706) => q(tsl),
+ q(6707) => q(tsm),
+ q(6708) => q(tsp),
+ q(6709) => q(tsq),
+ q(6710) => q(tsr),
+ q(6711) => q(tss),
+ q(6712) => q(tst),
+ q(6713) => q(tsu),
+ q(6714) => q(tsv),
+ q(6715) => q(tsw),
+ q(6716) => q(tsx),
+ q(6717) => q(tsy),
+ q(6718) => q(tsz),
+ q(6719) => q(tta),
+ q(6720) => q(ttb),
+ q(6721) => q(ttc),
+ q(6722) => q(ttd),
+ q(6723) => q(tte),
+ q(6724) => q(ttf),
+ q(6725) => q(ttg),
+ q(6726) => q(tth),
+ q(6727) => q(tti),
+ q(6728) => q(ttj),
+ q(6729) => q(ttk),
+ q(6730) => q(ttl),
+ q(6731) => q(ttm),
+ q(6732) => q(ttn),
+ q(6733) => q(tto),
+ q(6734) => q(ttp),
+ q(6735) => q(ttq),
+ q(6736) => q(ttr),
+ q(6737) => q(tts),
+ q(6738) => q(ttt),
+ q(6739) => q(ttu),
+ q(6740) => q(ttv),
+ q(6741) => q(ttw),
+ q(6742) => q(tty),
+ q(6743) => q(ttz),
+ q(6744) => q(tua),
+ q(6745) => q(tub),
+ q(6746) => q(tuc),
+ q(6747) => q(tud),
+ q(6748) => q(tue),
+ q(6749) => q(tuf),
+ q(6750) => q(tug),
+ q(6751) => q(tuh),
+ q(6752) => q(tui),
+ q(6753) => q(tuj),
+ q(6754) => q(tul),
+ q(6755) => q(tun),
+ q(6756) => q(tuo),
+ q(6757) => q(tuq),
+ q(6758) => q(tus),
+ q(6759) => q(tuu),
+ q(6760) => q(tuv),
+ q(6761) => q(tux),
+ q(6762) => q(tuy),
+ q(6763) => q(tuz),
+ q(6764) => q(tva),
+ q(6765) => q(tvd),
+ q(6766) => q(tve),
+ q(6767) => q(tvk),
+ q(6768) => q(tvm),
+ q(6769) => q(tvn),
+ q(6770) => q(tvo),
+ q(6771) => q(tvs),
+ q(6772) => q(tvt),
+ q(6773) => q(tvu),
+ q(6774) => q(tvw),
+ q(6775) => q(tvy),
+ q(6776) => q(twa),
+ q(6777) => q(twb),
+ q(6778) => q(twc),
+ q(6779) => q(twd),
+ q(6780) => q(twe),
+ q(6781) => q(twf),
+ q(6782) => q(twg),
+ q(6783) => q(twh),
+ q(6784) => q(twl),
+ q(6785) => q(twm),
+ q(6786) => q(twn),
+ q(6787) => q(two),
+ q(6788) => q(twp),
+ q(6789) => q(twq),
+ q(6790) => q(twr),
+ q(6791) => q(twt),
+ q(6792) => q(twu),
+ q(6793) => q(tww),
+ q(6794) => q(twx),
+ q(6795) => q(twy),
+ q(6796) => q(txa),
+ q(6797) => q(txb),
+ q(6798) => q(txc),
+ q(6799) => q(txe),
+ q(6800) => q(txg),
+ q(6801) => q(txh),
+ q(6802) => q(txi),
+ q(6803) => q(txj),
+ q(6804) => q(txm),
+ q(6805) => q(txn),
+ q(6806) => q(txo),
+ q(6807) => q(txq),
+ q(6808) => q(txr),
+ q(6809) => q(txs),
+ q(6810) => q(txt),
+ q(6811) => q(txu),
+ q(6812) => q(txx),
+ q(6813) => q(txy),
+ q(6814) => q(tya),
+ q(6815) => q(tye),
+ q(6816) => q(tyh),
+ q(6817) => q(tyi),
+ q(6818) => q(tyj),
+ q(6819) => q(tyl),
+ q(6820) => q(tyn),
+ q(6821) => q(typ),
+ q(6822) => q(tyr),
+ q(6823) => q(tys),
+ q(6824) => q(tyt),
+ q(6825) => q(tyu),
+ q(6826) => q(tyx),
+ q(6827) => q(tyz),
+ q(6828) => q(tza),
+ q(6829) => q(tzh),
+ q(6830) => q(tzj),
+ q(6831) => q(tzl),
+ q(6832) => q(tzm),
+ q(6833) => q(tzn),
+ q(6834) => q(tzo),
+ q(6835) => q(tzx),
+ q(6836) => q(uam),
+ q(6837) => q(uan),
+ q(6838) => q(uar),
+ q(6839) => q(uba),
+ q(6840) => q(ubi),
+ q(6841) => q(ubl),
+ q(6842) => q(ubr),
+ q(6843) => q(ubu),
+ q(6844) => q(uby),
+ q(6845) => q(uda),
+ q(6846) => q(ude),
+ q(6847) => q(udg),
+ q(6848) => q(udi),
+ q(6849) => q(udj),
+ q(6850) => q(udl),
+ q(6851) => q(udu),
+ q(6852) => q(ues),
+ q(6853) => q(ufi),
+ q(6854) => q(ugb),
+ q(6855) => q(uge),
+ q(6856) => q(ugn),
+ q(6857) => q(ugo),
+ q(6858) => q(ugy),
+ q(6859) => q(uha),
+ q(6860) => q(uhn),
+ q(6861) => q(uis),
+ q(6862) => q(uiv),
+ q(6863) => q(uji),
+ q(6864) => q(uka),
+ q(6865) => q(ukg),
+ q(6866) => q(ukh),
+ q(6867) => q(ukl),
+ q(6868) => q(ukp),
+ q(6869) => q(ukq),
+ q(6870) => q(uks),
+ q(6871) => q(uku),
+ q(6872) => q(ukw),
+ q(6873) => q(uky),
+ q(6874) => q(ula),
+ q(6875) => q(ulb),
+ q(6876) => q(ulc),
+ q(6877) => q(ule),
+ q(6878) => q(ulf),
+ q(6879) => q(uli),
+ q(6880) => q(ulk),
+ q(6881) => q(ull),
+ q(6882) => q(ulm),
+ q(6883) => q(uln),
+ q(6884) => q(ulu),
+ q(6885) => q(ulw),
+ q(6886) => q(uma),
+ q(6887) => q(umc),
+ q(6888) => q(umd),
+ q(6889) => q(umg),
+ q(6890) => q(umi),
+ q(6891) => q(umm),
+ q(6892) => q(umn),
+ q(6893) => q(umo),
+ q(6894) => q(ump),
+ q(6895) => q(umr),
+ q(6896) => q(ums),
+ q(6897) => q(umu),
+ q(6898) => q(una),
+ q(6899) => q(une),
+ q(6900) => q(ung),
+ q(6901) => q(unk),
+ q(6902) => q(unm),
+ q(6903) => q(unn),
+ q(6904) => q(unr),
+ q(6905) => q(unu),
+ q(6906) => q(unx),
+ q(6907) => q(unz),
+ q(6908) => q(upi),
+ q(6909) => q(upv),
+ q(6910) => q(ura),
+ q(6911) => q(urb),
+ q(6912) => q(urc),
+ q(6913) => q(ure),
+ q(6914) => q(urf),
+ q(6915) => q(urg),
+ q(6916) => q(urh),
+ q(6917) => q(uri),
+ q(6918) => q(urk),
+ q(6919) => q(url),
+ q(6920) => q(urm),
+ q(6921) => q(urn),
+ q(6922) => q(uro),
+ q(6923) => q(urp),
+ q(6924) => q(urr),
+ q(6925) => q(urt),
+ q(6926) => q(uru),
+ q(6927) => q(urv),
+ q(6928) => q(urw),
+ q(6929) => q(urx),
+ q(6930) => q(ury),
+ q(6931) => q(urz),
+ q(6932) => q(usa),
+ q(6933) => q(ush),
+ q(6934) => q(usi),
+ q(6935) => q(usk),
+ q(6936) => q(usp),
+ q(6937) => q(usu),
+ q(6938) => q(uta),
+ q(6939) => q(ute),
+ q(6940) => q(utp),
+ q(6941) => q(utr),
+ q(6942) => q(utu),
+ q(6943) => q(uum),
+ q(6944) => q(uun),
+ q(6945) => q(uur),
+ q(6946) => q(uuu),
+ q(6947) => q(uve),
+ q(6948) => q(uvh),
+ q(6949) => q(uvl),
+ q(6950) => q(uwa),
+ q(6951) => q(uya),
+ q(6952) => q(uzn),
+ q(6953) => q(uzs),
+ q(6954) => q(vaa),
+ q(6955) => q(vae),
+ q(6956) => q(vaf),
+ q(6957) => q(vag),
+ q(6958) => q(vah),
+ q(6959) => q(vaj),
+ q(6960) => q(val),
+ q(6961) => q(vam),
+ q(6962) => q(van),
+ q(6963) => q(vao),
+ q(6964) => q(vap),
+ q(6965) => q(var),
+ q(6966) => q(vas),
+ q(6967) => q(vau),
+ q(6968) => q(vav),
+ q(6969) => q(vay),
+ q(6970) => q(vbb),
+ q(6971) => q(vbk),
+ q(6972) => q(vec),
+ q(6973) => q(ved),
+ q(6974) => q(vel),
+ q(6975) => q(vem),
+ q(6976) => q(veo),
+ q(6977) => q(vep),
+ q(6978) => q(ver),
+ q(6979) => q(vgr),
+ q(6980) => q(vgt),
+ q(6981) => q(vic),
+ q(6982) => q(vid),
+ q(6983) => q(vif),
+ q(6984) => q(vig),
+ q(6985) => q(vil),
+ q(6986) => q(vin),
+ q(6987) => q(vis),
+ q(6988) => q(vit),
+ q(6989) => q(viv),
+ q(6990) => q(vka),
+ q(6991) => q(vki),
+ q(6992) => q(vkj),
+ q(6993) => q(vkk),
+ q(6994) => q(vkl),
+ q(6995) => q(vkm),
+ q(6996) => q(vko),
+ q(6997) => q(vkp),
+ q(6998) => q(vkt),
+ q(6999) => q(vku),
+ q(7000) => q(vlp),
+ q(7001) => q(vls),
+ q(7002) => q(vma),
+ q(7003) => q(vmb),
+ q(7004) => q(vmc),
+ q(7005) => q(vmd),
+ q(7006) => q(vme),
+ q(7007) => q(vmf),
+ q(7008) => q(vmg),
+ q(7009) => q(vmh),
+ q(7010) => q(vmi),
+ q(7011) => q(vmj),
+ q(7012) => q(vmk),
+ q(7013) => q(vml),
+ q(7014) => q(vmm),
+ q(7015) => q(vmp),
+ q(7016) => q(vmq),
+ q(7017) => q(vmr),
+ q(7018) => q(vms),
+ q(7019) => q(vmu),
+ q(7020) => q(vmv),
+ q(7021) => q(vmw),
+ q(7022) => q(vmx),
+ q(7023) => q(vmy),
+ q(7024) => q(vmz),
+ q(7025) => q(vnk),
+ q(7026) => q(vnm),
+ q(7027) => q(vnp),
+ q(7028) => q(vro),
+ q(7029) => q(vra),
+ q(7030) => q(vrs),
+ q(7031) => q(vrt),
+ q(7032) => q(vsi),
+ q(7033) => q(vsl),
+ q(7034) => q(vsv),
+ q(7035) => q(vto),
+ q(7036) => q(vum),
+ q(7037) => q(vun),
+ q(7038) => q(vut),
+ q(7039) => q(vwa),
+ q(7040) => q(waa),
+ q(7041) => q(wab),
+ q(7042) => q(wac),
+ q(7043) => q(wad),
+ q(7044) => q(wae),
+ q(7045) => q(waf),
+ q(7046) => q(wag),
+ q(7047) => q(wah),
+ q(7048) => q(wai),
+ q(7049) => q(waj),
+ q(7050) => q(wam),
+ q(7051) => q(wan),
+ q(7052) => q(wao),
+ q(7053) => q(wap),
+ q(7054) => q(waq),
+ q(7055) => q(wat),
+ q(7056) => q(wau),
+ q(7057) => q(wav),
+ q(7058) => q(waw),
+ q(7059) => q(wax),
+ q(7060) => q(way),
+ q(7061) => q(waz),
+ q(7062) => q(wba),
+ q(7063) => q(wbb),
+ q(7064) => q(wbe),
+ q(7065) => q(wbh),
+ q(7066) => q(wbi),
+ q(7067) => q(wbj),
+ q(7068) => q(wbk),
+ q(7069) => q(wbl),
+ q(7070) => q(wbm),
+ q(7071) => q(wbp),
+ q(7072) => q(wbq),
+ q(7073) => q(wbr),
+ q(7074) => q(wbt),
+ q(7075) => q(wbv),
+ q(7076) => q(wbw),
+ q(7077) => q(wca),
+ q(7078) => q(wci),
+ q(7079) => q(wdd),
+ q(7080) => q(wdg),
+ q(7081) => q(wdj),
+ q(7082) => q(wdk),
+ q(7083) => q(wdu),
+ q(7084) => q(wdy),
+ q(7085) => q(wea),
+ q(7086) => q(wec),
+ q(7087) => q(wed),
+ q(7088) => q(weg),
+ q(7089) => q(weh),
+ q(7090) => q(wei),
+ q(7091) => q(wem),
+ q(7092) => q(weo),
+ q(7093) => q(wep),
+ q(7094) => q(wer),
+ q(7095) => q(wes),
+ q(7096) => q(wet),
+ q(7097) => q(weu),
+ q(7098) => q(wew),
+ q(7099) => q(wfg),
+ q(7100) => q(wga),
+ q(7101) => q(wgb),
+ q(7102) => q(wgg),
+ q(7103) => q(wgi),
+ q(7104) => q(wgo),
+ q(7105) => q(wgu),
+ q(7106) => q(wgy),
+ q(7107) => q(wha),
+ q(7108) => q(whg),
+ q(7109) => q(whk),
+ q(7110) => q(whu),
+ q(7111) => q(wib),
+ q(7112) => q(wic),
+ q(7113) => q(wie),
+ q(7114) => q(wif),
+ q(7115) => q(wig),
+ q(7116) => q(wih),
+ q(7117) => q(wii),
+ q(7118) => q(wij),
+ q(7119) => q(wik),
+ q(7120) => q(wil),
+ q(7121) => q(wim),
+ q(7122) => q(win),
+ q(7123) => q(wir),
+ q(7124) => q(wiu),
+ q(7125) => q(wiv),
+ q(7126) => q(wiy),
+ q(7127) => q(wja),
+ q(7128) => q(wji),
+ q(7129) => q(wka),
+ q(7130) => q(wkb),
+ q(7131) => q(wkd),
+ q(7132) => q(wkl),
+ q(7133) => q(wku),
+ q(7134) => q(wkw),
+ q(7135) => q(wky),
+ q(7136) => q(wla),
+ q(7137) => q(wlc),
+ q(7138) => q(wle),
+ q(7139) => q(wlg),
+ q(7140) => q(wli),
+ q(7141) => q(wlk),
+ q(7142) => q(wll),
+ q(7143) => q(wlm),
+ q(7144) => q(wlo),
+ q(7145) => q(wlr),
+ q(7146) => q(wls),
+ q(7147) => q(wlu),
+ q(7148) => q(wlv),
+ q(7149) => q(wlw),
+ q(7150) => q(wlx),
+ q(7151) => q(wly),
+ q(7152) => q(wma),
+ q(7153) => q(wmb),
+ q(7154) => q(wmc),
+ q(7155) => q(wmd),
+ q(7156) => q(wme),
+ q(7157) => q(wmh),
+ q(7158) => q(wmi),
+ q(7159) => q(wmm),
+ q(7160) => q(wmn),
+ q(7161) => q(wmo),
+ q(7162) => q(wms),
+ q(7163) => q(wmt),
+ q(7164) => q(wmw),
+ q(7165) => q(wmx),
+ q(7166) => q(wnb),
+ q(7167) => q(wnc),
+ q(7168) => q(wnd),
+ q(7169) => q(wne),
+ q(7170) => q(wng),
+ q(7171) => q(wni),
+ q(7172) => q(wnk),
+ q(7173) => q(wnm),
+ q(7174) => q(wnn),
+ q(7175) => q(wno),
+ q(7176) => q(wnp),
+ q(7177) => q(wnu),
+ q(7178) => q(wnw),
+ q(7179) => q(wny),
+ q(7180) => q(woa),
+ q(7181) => q(wob),
+ q(7182) => q(woc),
+ q(7183) => q(wod),
+ q(7184) => q(woe),
+ q(7185) => q(wof),
+ q(7186) => q(wog),
+ q(7187) => q(woi),
+ q(7188) => q(wok),
+ q(7189) => q(wom),
+ q(7190) => q(won),
+ q(7191) => q(woo),
+ q(7192) => q(wor),
+ q(7193) => q(wos),
+ q(7194) => q(wow),
+ q(7195) => q(woy),
+ q(7196) => q(wpc),
+ q(7197) => q(wra),
+ q(7198) => q(wrb),
+ q(7199) => q(wrd),
+ q(7200) => q(wrg),
+ q(7201) => q(wrh),
+ q(7202) => q(wri),
+ q(7203) => q(wrk),
+ q(7204) => q(wrl),
+ q(7205) => q(wrm),
+ q(7206) => q(wrn),
+ q(7207) => q(wro),
+ q(7208) => q(wrp),
+ q(7209) => q(wrr),
+ q(7210) => q(wrs),
+ q(7211) => q(wru),
+ q(7212) => q(wrv),
+ q(7213) => q(wrw),
+ q(7214) => q(wrx),
+ q(7215) => q(wry),
+ q(7216) => q(wrz),
+ q(7217) => q(wsa),
+ q(7218) => q(wsg),
+ q(7219) => q(wsi),
+ q(7220) => q(wsk),
+ q(7221) => q(wsr),
+ q(7222) => q(wss),
+ q(7223) => q(wsu),
+ q(7224) => q(wsv),
+ q(7225) => q(wtf),
+ q(7226) => q(wth),
+ q(7227) => q(wti),
+ q(7228) => q(wtk),
+ q(7229) => q(wtm),
+ q(7230) => q(wtw),
+ q(7231) => q(wua),
+ q(7232) => q(wub),
+ q(7233) => q(wud),
+ q(7234) => q(wuh),
+ q(7235) => q(wul),
+ q(7236) => q(wum),
+ q(7237) => q(wun),
+ q(7238) => q(wur),
+ q(7239) => q(wut),
+ q(7240) => q(wuu),
+ q(7241) => q(wuv),
+ q(7242) => q(wux),
+ q(7243) => q(wuy),
+ q(7244) => q(wwa),
+ q(7245) => q(wwb),
+ q(7246) => q(wwo),
+ q(7247) => q(wwr),
+ q(7248) => q(www),
+ q(7249) => q(wxa),
+ q(7250) => q(wxw),
+ q(7251) => q(wya),
+ q(7252) => q(wyb),
+ q(7253) => q(wyi),
+ q(7254) => q(wym),
+ q(7255) => q(wyr),
+ q(7256) => q(wyy),
+ q(7257) => q(xaa),
+ q(7258) => q(xab),
+ q(7259) => q(xac),
+ q(7260) => q(xad),
+ q(7261) => q(xae),
+ q(7262) => q(xag),
+ q(7263) => q(xai),
+ q(7264) => q(xaj),
+ q(7265) => q(xak),
+ q(7266) => q(xam),
+ q(7267) => q(xan),
+ q(7268) => q(xao),
+ q(7269) => q(xap),
+ q(7270) => q(xaq),
+ q(7271) => q(xar),
+ q(7272) => q(xas),
+ q(7273) => q(xat),
+ q(7274) => q(xau),
+ q(7275) => q(xav),
+ q(7276) => q(xaw),
+ q(7277) => q(xay),
+ q(7278) => q(xbb),
+ q(7279) => q(xbc),
+ q(7280) => q(xbd),
+ q(7281) => q(xbe),
+ q(7282) => q(xbg),
+ q(7283) => q(xbi),
+ q(7284) => q(xbj),
+ q(7285) => q(xbm),
+ q(7286) => q(xbn),
+ q(7287) => q(xbo),
+ q(7288) => q(xbp),
+ q(7289) => q(xbr),
+ q(7290) => q(xbw),
+ q(7291) => q(xby),
+ q(7292) => q(xcb),
+ q(7293) => q(xcc),
+ q(7294) => q(xce),
+ q(7295) => q(xcg),
+ q(7296) => q(xch),
+ q(7297) => q(xcl),
+ q(7298) => q(xcm),
+ q(7299) => q(xcn),
+ q(7300) => q(xco),
+ q(7301) => q(xcr),
+ q(7302) => q(xct),
+ q(7303) => q(xcu),
+ q(7304) => q(xcv),
+ q(7305) => q(xcw),
+ q(7306) => q(xcy),
+ q(7307) => q(xda),
+ q(7308) => q(xdc),
+ q(7309) => q(xdk),
+ q(7310) => q(xdm),
+ q(7311) => q(xdy),
+ q(7312) => q(xeb),
+ q(7313) => q(xed),
+ q(7314) => q(xeg),
+ q(7315) => q(xel),
+ q(7316) => q(xem),
+ q(7317) => q(xep),
+ q(7318) => q(xer),
+ q(7319) => q(xes),
+ q(7320) => q(xet),
+ q(7321) => q(xeu),
+ q(7322) => q(xfa),
+ q(7323) => q(xga),
+ q(7324) => q(xgb),
+ q(7325) => q(xgd),
+ q(7326) => q(xgf),
+ q(7327) => q(xgg),
+ q(7328) => q(xgi),
+ q(7329) => q(xgl),
+ q(7330) => q(xgm),
+ q(7331) => q(xgr),
+ q(7332) => q(xgu),
+ q(7333) => q(xgw),
+ q(7334) => q(xha),
+ q(7335) => q(xhc),
+ q(7336) => q(xhd),
+ q(7337) => q(xhe),
+ q(7338) => q(xhr),
+ q(7339) => q(xht),
+ q(7340) => q(xhu),
+ q(7341) => q(xhv),
+ q(7342) => q(xib),
+ q(7343) => q(xii),
+ q(7344) => q(xil),
+ q(7345) => q(xin),
+ q(7346) => q(xir),
+ q(7347) => q(xis),
+ q(7348) => q(xiv),
+ q(7349) => q(xiy),
+ q(7350) => q(xjb),
+ q(7351) => q(xjt),
+ q(7352) => q(xka),
+ q(7353) => q(xkb),
+ q(7354) => q(xkc),
+ q(7355) => q(xkd),
+ q(7356) => q(xke),
+ q(7357) => q(xkf),
+ q(7358) => q(xkg),
+ q(7359) => q(xki),
+ q(7360) => q(xkj),
+ q(7361) => q(xkk),
+ q(7362) => q(xkl),
+ q(7363) => q(xkn),
+ q(7364) => q(xko),
+ q(7365) => q(xkp),
+ q(7366) => q(xkq),
+ q(7367) => q(xkr),
+ q(7368) => q(xks),
+ q(7369) => q(xkt),
+ q(7370) => q(xku),
+ q(7371) => q(xkv),
+ q(7372) => q(xkw),
+ q(7373) => q(xkx),
+ q(7374) => q(xky),
+ q(7375) => q(xkz),
+ q(7376) => q(xla),
+ q(7377) => q(xlb),
+ q(7378) => q(xlc),
+ q(7379) => q(xld),
+ q(7380) => q(xle),
+ q(7381) => q(xlg),
+ q(7382) => q(xli),
+ q(7383) => q(xln),
+ q(7384) => q(xlo),
+ q(7385) => q(xlp),
+ q(7386) => q(xls),
+ q(7387) => q(xlu),
+ q(7388) => q(xly),
+ q(7389) => q(xma),
+ q(7390) => q(xmb),
+ q(7391) => q(xmc),
+ q(7392) => q(xmd),
+ q(7393) => q(xme),
+ q(7394) => q(xmf),
+ q(7395) => q(xmg),
+ q(7396) => q(xmh),
+ q(7397) => q(xmj),
+ q(7398) => q(xmk),
+ q(7399) => q(xml),
+ q(7400) => q(xmm),
+ q(7401) => q(xmn),
+ q(7402) => q(xmo),
+ q(7403) => q(xmp),
+ q(7404) => q(xmq),
+ q(7405) => q(xmr),
+ q(7406) => q(xms),
+ q(7407) => q(xmt),
+ q(7408) => q(xmu),
+ q(7409) => q(xmv),
+ q(7410) => q(xmw),
+ q(7411) => q(xmx),
+ q(7412) => q(xmy),
+ q(7413) => q(xmz),
+ q(7414) => q(xna),
+ q(7415) => q(xnb),
+ q(7416) => q(xng),
+ q(7417) => q(xnh),
+ q(7418) => q(xni),
+ q(7419) => q(xnk),
+ q(7420) => q(xnn),
+ q(7421) => q(xno),
+ q(7422) => q(xnr),
+ q(7423) => q(xns),
+ q(7424) => q(xnt),
+ q(7425) => q(xnu),
+ q(7426) => q(xny),
+ q(7427) => q(xnz),
+ q(7428) => q(xoc),
+ q(7429) => q(xod),
+ q(7430) => q(xog),
+ q(7431) => q(xoi),
+ q(7432) => q(xok),
+ q(7433) => q(xom),
+ q(7434) => q(xon),
+ q(7435) => q(xoo),
+ q(7436) => q(xop),
+ q(7437) => q(xor),
+ q(7438) => q(xow),
+ q(7439) => q(xpa),
+ q(7440) => q(xpc),
+ q(7441) => q(xpe),
+ q(7442) => q(xpg),
+ q(7443) => q(xpi),
+ q(7444) => q(xpj),
+ q(7445) => q(xpk),
+ q(7446) => q(xpm),
+ q(7447) => q(xpn),
+ q(7448) => q(xpo),
+ q(7449) => q(xpp),
+ q(7450) => q(xpq),
+ q(7451) => q(xpr),
+ q(7452) => q(xps),
+ q(7453) => q(xpt),
+ q(7454) => q(xpu),
+ q(7455) => q(xpy),
+ q(7456) => q(xqa),
+ q(7457) => q(xqt),
+ q(7458) => q(xra),
+ q(7459) => q(xrb),
+ q(7460) => q(xrd),
+ q(7461) => q(xre),
+ q(7462) => q(xrg),
+ q(7463) => q(xri),
+ q(7464) => q(xrm),
+ q(7465) => q(xrn),
+ q(7466) => q(xrq),
+ q(7467) => q(xrr),
+ q(7468) => q(xrt),
+ q(7469) => q(xru),
+ q(7470) => q(xrw),
+ q(7471) => q(xsa),
+ q(7472) => q(xsb),
+ q(7473) => q(xsc),
+ q(7474) => q(xsd),
+ q(7475) => q(xse),
+ q(7476) => q(xsh),
+ q(7477) => q(xsi),
+ q(7478) => q(xsl),
+ q(7479) => q(xsm),
+ q(7480) => q(xsn),
+ q(7481) => q(xso),
+ q(7482) => q(xsp),
+ q(7483) => q(xsq),
+ q(7484) => q(xsr),
+ q(7485) => q(xss),
+ q(7486) => q(xsu),
+ q(7487) => q(xsv),
+ q(7488) => q(xsy),
+ q(7489) => q(xta),
+ q(7490) => q(xtb),
+ q(7491) => q(xtc),
+ q(7492) => q(xtd),
+ q(7493) => q(xte),
+ q(7494) => q(xtg),
+ q(7495) => q(xth),
+ q(7496) => q(xti),
+ q(7497) => q(xtj),
+ q(7498) => q(xtl),
+ q(7499) => q(xtm),
+ q(7500) => q(xtn),
+ q(7501) => q(xto),
+ q(7502) => q(xtp),
+ q(7503) => q(xtq),
+ q(7504) => q(xtr),
+ q(7505) => q(xts),
+ q(7506) => q(xtt),
+ q(7507) => q(xtu),
+ q(7508) => q(xtv),
+ q(7509) => q(xtw),
+ q(7510) => q(xty),
+ q(7511) => q(xtz),
+ q(7512) => q(xua),
+ q(7513) => q(xub),
+ q(7514) => q(xud),
+ q(7515) => q(xug),
+ q(7516) => q(xuj),
+ q(7517) => q(xul),
+ q(7518) => q(xum),
+ q(7519) => q(xun),
+ q(7520) => q(xuo),
+ q(7521) => q(xup),
+ q(7522) => q(xur),
+ q(7523) => q(xut),
+ q(7524) => q(xuu),
+ q(7525) => q(xve),
+ q(7526) => q(xvi),
+ q(7527) => q(xvn),
+ q(7528) => q(xvo),
+ q(7529) => q(xvs),
+ q(7530) => q(xwa),
+ q(7531) => q(xwc),
+ q(7532) => q(xwd),
+ q(7533) => q(xwe),
+ q(7534) => q(xwg),
+ q(7535) => q(xwj),
+ q(7536) => q(xwk),
+ q(7537) => q(xwl),
+ q(7538) => q(xwo),
+ q(7539) => q(xwr),
+ q(7540) => q(xwt),
+ q(7541) => q(xww),
+ q(7542) => q(xxb),
+ q(7543) => q(xxk),
+ q(7544) => q(xxm),
+ q(7545) => q(xxr),
+ q(7546) => q(xxt),
+ q(7547) => q(xya),
+ q(7548) => q(xyb),
+ q(7549) => q(xyj),
+ q(7550) => q(xyk),
+ q(7551) => q(xyl),
+ q(7552) => q(xyt),
+ q(7553) => q(xyy),
+ q(7554) => q(xzh),
+ q(7555) => q(xzm),
+ q(7556) => q(xzp),
+ q(7557) => q(yaa),
+ q(7558) => q(yab),
+ q(7559) => q(yac),
+ q(7560) => q(yad),
+ q(7561) => q(yae),
+ q(7562) => q(yaf),
+ q(7563) => q(yag),
+ q(7564) => q(yah),
+ q(7565) => q(yai),
+ q(7566) => q(yaj),
+ q(7567) => q(yak),
+ q(7568) => q(yal),
+ q(7569) => q(yam),
+ q(7570) => q(yan),
+ q(7571) => q(yaq),
+ q(7572) => q(yar),
+ q(7573) => q(yas),
+ q(7574) => q(yat),
+ q(7575) => q(yau),
+ q(7576) => q(yav),
+ q(7577) => q(yaw),
+ q(7578) => q(yax),
+ q(7579) => q(yay),
+ q(7580) => q(yaz),
+ q(7581) => q(yba),
+ q(7582) => q(ybb),
+ q(7583) => q(ybe),
+ q(7584) => q(ybh),
+ q(7585) => q(ybi),
+ q(7586) => q(ybj),
+ q(7587) => q(ybk),
+ q(7588) => q(ybl),
+ q(7589) => q(ybm),
+ q(7590) => q(ybn),
+ q(7591) => q(ybo),
+ q(7592) => q(ybx),
+ q(7593) => q(yby),
+ q(7594) => q(ych),
+ q(7595) => q(ycl),
+ q(7596) => q(ycn),
+ q(7597) => q(ycp),
+ q(7598) => q(yda),
+ q(7599) => q(ydd),
+ q(7600) => q(yde),
+ q(7601) => q(ydg),
+ q(7602) => q(ydk),
+ q(7603) => q(yea),
+ q(7604) => q(yec),
+ q(7605) => q(yee),
+ q(7606) => q(yei),
+ q(7607) => q(yej),
+ q(7608) => q(yel),
+ q(7609) => q(yer),
+ q(7610) => q(yes),
+ q(7611) => q(yet),
+ q(7612) => q(yeu),
+ q(7613) => q(yev),
+ q(7614) => q(yey),
+ q(7615) => q(yga),
+ q(7616) => q(ygi),
+ q(7617) => q(ygl),
+ q(7618) => q(ygm),
+ q(7619) => q(ygp),
+ q(7620) => q(ygr),
+ q(7621) => q(ygs),
+ q(7622) => q(ygu),
+ q(7623) => q(ygw),
+ q(7624) => q(yha),
+ q(7625) => q(yhd),
+ q(7626) => q(yhl),
+ q(7627) => q(yhs),
+ q(7628) => q(yia),
+ q(7629) => q(yig),
+ q(7630) => q(yih),
+ q(7631) => q(yii),
+ q(7632) => q(yij),
+ q(7633) => q(yik),
+ q(7634) => q(yil),
+ q(7635) => q(yim),
+ q(7636) => q(yin),
+ q(7637) => q(yip),
+ q(7638) => q(yiq),
+ q(7639) => q(yir),
+ q(7640) => q(yis),
+ q(7641) => q(yit),
+ q(7642) => q(yiu),
+ q(7643) => q(yiv),
+ q(7644) => q(yix),
+ q(7645) => q(yiz),
+ q(7646) => q(yka),
+ q(7647) => q(ykg),
+ q(7648) => q(yki),
+ q(7649) => q(ykk),
+ q(7650) => q(ykl),
+ q(7651) => q(ykm),
+ q(7652) => q(ykn),
+ q(7653) => q(yko),
+ q(7654) => q(ykr),
+ q(7655) => q(ykt),
+ q(7656) => q(yku),
+ q(7657) => q(yky),
+ q(7658) => q(yla),
+ q(7659) => q(ylb),
+ q(7660) => q(yle),
+ q(7661) => q(ylg),
+ q(7662) => q(yli),
+ q(7663) => q(yll),
+ q(7664) => q(ylm),
+ q(7665) => q(yln),
+ q(7666) => q(ylo),
+ q(7667) => q(ylr),
+ q(7668) => q(ylu),
+ q(7669) => q(yly),
+ q(7670) => q(ymb),
+ q(7671) => q(ymc),
+ q(7672) => q(ymd),
+ q(7673) => q(yme),
+ q(7674) => q(ymg),
+ q(7675) => q(ymh),
+ q(7676) => q(ymi),
+ q(7677) => q(ymk),
+ q(7678) => q(yml),
+ q(7679) => q(ymm),
+ q(7680) => q(ymn),
+ q(7681) => q(ymo),
+ q(7682) => q(ymp),
+ q(7683) => q(ymq),
+ q(7684) => q(ymr),
+ q(7685) => q(yms),
+ q(7686) => q(ymx),
+ q(7687) => q(ymz),
+ q(7688) => q(yna),
+ q(7689) => q(ynd),
+ q(7690) => q(yne),
+ q(7691) => q(yng),
+ q(7692) => q(ynk),
+ q(7693) => q(ynl),
+ q(7694) => q(ynn),
+ q(7695) => q(yno),
+ q(7696) => q(ynq),
+ q(7697) => q(yns),
+ q(7698) => q(ynu),
+ q(7699) => q(yob),
+ q(7700) => q(yog),
+ q(7701) => q(yoi),
+ q(7702) => q(yok),
+ q(7703) => q(yol),
+ q(7704) => q(yom),
+ q(7705) => q(yon),
+ q(7706) => q(yot),
+ q(7707) => q(yox),
+ q(7708) => q(yoy),
+ q(7709) => q(ypa),
+ q(7710) => q(ypb),
+ q(7711) => q(ypg),
+ q(7712) => q(yph),
+ q(7713) => q(ypm),
+ q(7714) => q(ypn),
+ q(7715) => q(ypo),
+ q(7716) => q(ypp),
+ q(7717) => q(ypz),
+ q(7718) => q(yra),
+ q(7719) => q(yrb),
+ q(7720) => q(yre),
+ q(7721) => q(yrk),
+ q(7722) => q(yrl),
+ q(7723) => q(yrm),
+ q(7724) => q(yrn),
+ q(7725) => q(yro),
+ q(7726) => q(yrs),
+ q(7727) => q(yrw),
+ q(7728) => q(yry),
+ q(7729) => q(ysc),
+ q(7730) => q(ysd),
+ q(7731) => q(ysg),
+ q(7732) => q(ysl),
+ q(7733) => q(ysn),
+ q(7734) => q(yso),
+ q(7735) => q(ysp),
+ q(7736) => q(ysr),
+ q(7737) => q(yss),
+ q(7738) => q(ysy),
+ q(7739) => q(yta),
+ q(7740) => q(ytl),
+ q(7741) => q(ytp),
+ q(7742) => q(ytw),
+ q(7743) => q(yty),
+ q(7744) => q(yua),
+ q(7745) => q(yub),
+ q(7746) => q(yuc),
+ q(7747) => q(yud),
+ q(7748) => q(yue),
+ q(7749) => q(yuf),
+ q(7750) => q(yug),
+ q(7751) => q(yui),
+ q(7752) => q(yuj),
+ q(7753) => q(yuk),
+ q(7754) => q(yul),
+ q(7755) => q(yum),
+ q(7756) => q(yun),
+ q(7757) => q(yup),
+ q(7758) => q(yuq),
+ q(7759) => q(yur),
+ q(7760) => q(yut),
+ q(7761) => q(yuw),
+ q(7762) => q(yux),
+ q(7763) => q(yuy),
+ q(7764) => q(yuz),
+ q(7765) => q(yva),
+ q(7766) => q(yvt),
+ q(7767) => q(ywa),
+ q(7768) => q(ywg),
+ q(7769) => q(ywl),
+ q(7770) => q(ywn),
+ q(7771) => q(ywq),
+ q(7772) => q(ywr),
+ q(7773) => q(ywt),
+ q(7774) => q(ywu),
+ q(7775) => q(yww),
+ q(7776) => q(yxa),
+ q(7777) => q(yxg),
+ q(7778) => q(yxl),
+ q(7779) => q(yxm),
+ q(7780) => q(yxu),
+ q(7781) => q(yxy),
+ q(7782) => q(yyr),
+ q(7783) => q(yyu),
+ q(7784) => q(yyz),
+ q(7785) => q(yzg),
+ q(7786) => q(yzk),
+ q(7787) => q(zaa),
+ q(7788) => q(zab),
+ q(7789) => q(zac),
+ q(7790) => q(zad),
+ q(7791) => q(zae),
+ q(7792) => q(zaf),
+ q(7793) => q(zag),
+ q(7794) => q(zah),
+ q(7795) => q(zai),
+ q(7796) => q(zaj),
+ q(7797) => q(zak),
+ q(7798) => q(zal),
+ q(7799) => q(zam),
+ q(7800) => q(zao),
+ q(7801) => q(zaq),
+ q(7802) => q(zar),
+ q(7803) => q(zas),
+ q(7804) => q(zat),
+ q(7805) => q(zau),
+ q(7806) => q(zav),
+ q(7807) => q(zaw),
+ q(7808) => q(zax),
+ q(7809) => q(zay),
+ q(7810) => q(zaz),
+ q(7811) => q(zbc),
+ q(7812) => q(zbe),
+ q(7813) => q(zbt),
+ q(7814) => q(zbw),
+ q(7815) => q(zca),
+ q(7816) => q(zch),
+ q(7817) => q(zdj),
+ q(7818) => q(zea),
+ q(7819) => q(zeg),
+ q(7820) => q(zeh),
+ q(7821) => q(zga),
+ q(7822) => q(zgb),
+ q(7823) => q(zgm),
+ q(7824) => q(zgn),
+ q(7825) => q(zgr),
+ q(7826) => q(zhb),
+ q(7827) => q(zhd),
+ q(7828) => q(zhi),
+ q(7829) => q(zhn),
+ q(7830) => q(zhw),
+ q(7831) => q(zia),
+ q(7832) => q(zib),
+ q(7833) => q(zik),
+ q(7834) => q(zil),
+ q(7835) => q(zim),
+ q(7836) => q(zin),
+ q(7837) => q(zir),
+ q(7838) => q(ziw),
+ q(7839) => q(ziz),
+ q(7840) => q(zka),
+ q(7841) => q(zkb),
+ q(7842) => q(zkd),
+ q(7843) => q(zkg),
+ q(7844) => q(zkh),
+ q(7845) => q(zkk),
+ q(7846) => q(zkn),
+ q(7847) => q(zko),
+ q(7848) => q(zkp),
+ q(7849) => q(zkr),
+ q(7850) => q(zkt),
+ q(7851) => q(zku),
+ q(7852) => q(zkv),
+ q(7853) => q(zkz),
+ q(7854) => q(zlj),
+ q(7855) => q(zlm),
+ q(7856) => q(zln),
+ q(7857) => q(zlq),
+ q(7858) => q(zma),
+ q(7859) => q(zmb),
+ q(7860) => q(zmc),
+ q(7861) => q(zmd),
+ q(7862) => q(zme),
+ q(7863) => q(zmf),
+ q(7864) => q(zmg),
+ q(7865) => q(zmh),
+ q(7866) => q(zmi),
+ q(7867) => q(zmj),
+ q(7868) => q(zmk),
+ q(7869) => q(zml),
+ q(7870) => q(zmm),
+ q(7871) => q(zmn),
+ q(7872) => q(zmo),
+ q(7873) => q(zmp),
+ q(7874) => q(zmq),
+ q(7875) => q(zmr),
+ q(7876) => q(zms),
+ q(7877) => q(zmt),
+ q(7878) => q(zmu),
+ q(7879) => q(zmv),
+ q(7880) => q(zmw),
+ q(7881) => q(zmx),
+ q(7882) => q(zmy),
+ q(7883) => q(zmz),
+ q(7884) => q(zna),
+ q(7885) => q(zne),
+ q(7886) => q(zng),
+ q(7887) => q(znk),
+ q(7888) => q(zns),
+ q(7889) => q(zoc),
+ q(7890) => q(zoh),
+ q(7891) => q(zom),
+ q(7892) => q(zoo),
+ q(7893) => q(zoq),
+ q(7894) => q(zor),
+ q(7895) => q(zos),
+ q(7896) => q(zpa),
+ q(7897) => q(zpb),
+ q(7898) => q(zpc),
+ q(7899) => q(zpd),
+ q(7900) => q(zpe),
+ q(7901) => q(zpf),
+ q(7902) => q(zpg),
+ q(7903) => q(zph),
+ q(7904) => q(zpi),
+ q(7905) => q(zpj),
+ q(7906) => q(zpk),
+ q(7907) => q(zpl),
+ q(7908) => q(zpm),
+ q(7909) => q(zpn),
+ q(7910) => q(zpo),
+ q(7911) => q(zpp),
+ q(7912) => q(zpq),
+ q(7913) => q(zpr),
+ q(7914) => q(zps),
+ q(7915) => q(zpt),
+ q(7916) => q(zpu),
+ q(7917) => q(zpv),
+ q(7918) => q(zpw),
+ q(7919) => q(zpx),
+ q(7920) => q(zpy),
+ q(7921) => q(zpz),
+ q(7922) => q(zqe),
+ q(7923) => q(zra),
+ q(7924) => q(zrg),
+ q(7925) => q(zrn),
+ q(7926) => q(zro),
+ q(7927) => q(zrp),
+ q(7928) => q(zrs),
+ q(7929) => q(zsa),
+ q(7930) => q(zsk),
+ q(7931) => q(zsl),
+ q(7932) => q(zsm),
+ q(7933) => q(zsr),
+ q(7934) => q(zsu),
+ q(7935) => q(zte),
+ q(7936) => q(ztg),
+ q(7937) => q(ztl),
+ q(7938) => q(ztm),
+ q(7939) => q(ztn),
+ q(7940) => q(ztp),
+ q(7941) => q(ztq),
+ q(7942) => q(zts),
+ q(7943) => q(ztt),
+ q(7944) => q(ztu),
+ q(7945) => q(ztx),
+ q(7946) => q(zty),
+ q(7947) => q(zua),
+ q(7948) => q(zuh),
+ q(7949) => q(zum),
+ q(7950) => q(zuy),
+ q(7951) => q(zwa),
+ q(7952) => q(zyb),
+ q(7953) => q(zyg),
+ q(7954) => q(zyj),
+ q(7955) => q(zyn),
+ q(7956) => q(zyp),
+ q(7957) => q(zzj),
},
q(term) => {
q(0001) => q(aar),
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm
index 98908dd486f..e2a37cf04dc 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Language_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::Language_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Nov 18 09:22:54 EST 2016
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Retired{'language'}{'alpha-2'}{'code'} = {
q(in) => q(Indonesian),
@@ -27,41 +27,60 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
q(aue) => q(=/Kx'au//'ein),
q(ayx) => q(Ayi (China)),
q(baz) => q(Tunen),
+ q(bgm) => q(Baga Mboteni),
q(bjd) => q(Bandjigali),
q(bjq) => q(Southern Betsimisaraka Malagasy),
q(bmy) => q(Bemba (Democratic Republic of Congo)),
+ q(btl) => q(Bhatola),
q(bxx) => q(Borna (Democratic Republic of Congo)),
q(byy) => q(Buya),
+ q(cbe) => q(Chipiajes),
+ q(cbh) => q(Cagua),
q(ccq) => q(Chaungtha),
q(cka) => q(Khumi Awa Chin),
+ q(coy) => q(Coyaima),
+ q(cqu) => q(Chilean Quechua),
+ q(cum) => q(Cumeral),
q(daf) => q(Dan),
q(dap) => q(Nisi (India)),
q(dha) => q(Dhanwar (India)),
q(djl) => q(Djiwarli),
q(dkl) => q(Kolum So Dogon),
+ q(duj) => q(Dhuwal),
q(dwl) => q(Walo Kumbe Dogon),
q(dzd) => q(Daza),
q(elp) => q(Elpaputih),
q(emo) => q(Emok),
q(gbc) => q(Garawa),
q(gfx) => q(Mangetti Dune !Xung),
+ q(ggn) => q(Eastern Gurung),
+ q(ggo) => q(Southern Gondi),
q(ggr) => q(Aghu Tharnggalu),
q(gio) => q(Gelao),
q(gti) => q(Gbati-ri),
+ q(guv) => q(Gey),
q(hrr) => q(Horuru),
+ q(iap) => q(Iapama),
q(ibi) => q(Ibilo),
+ q(ill) => q(Iranun),
q(ilw) => q(Talur),
q(ime) => q(Imeraguen),
q(izi) => q(Izi-Ezaa-Ikwo-Mgbo),
q(jar) => q(Jarawa (Nigeria)),
q(kbf) => q(Kakauhua),
q(kdv) => q(Kado),
+ q(kgc) => q(Kasseng),
q(kgh) => q(Upper Tanudan Kalinga),
q(koj) => q(Sara Dunjo),
+ q(kox) => q(Coxima),
q(kpp) => q(Paku Karen),
+ q(ktr) => q(Kota Marudu Tinagas),
+ q(kvs) => q(Kunggara),
q(kwq) => q(Kwak),
q(kxe) => q(Kakihum),
q(kzh) => q(Kenuzi-Dongola),
+ q(kzj) => q(Coastal Kadazan),
+ q(kzt) => q(Tambunan Dusun),
q(lcq) => q(Luhu),
q(leg) => q(Lengua),
q(lii) => q(Lingkhim),
@@ -75,33 +94,52 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
q(mwd) => q(Mudbura),
q(mwj) => q(Maligo),
q(myq) => q(Forest Maninka),
+ q(nad) => q(Nijadali),
q(nbf) => q(Naxi),
q(nbx) => q(Ngura),
q(nln) => q(Durango Nahuatl),
q(nlr) => q(Ngarla),
q(nnx) => q(Ngong),
q(noo) => q(Nootka),
+ q(nts) => q(Natagaimas),
+ q(ome) => q(Omejes),
q(oun) => q(!O!ung),
q(pbz) => q(Palu),
q(pcr) => q(Panang),
q(pgy) => q(Pongyong),
+ q(pmc) => q(Palumata),
q(pmu) => q(Mirpur Panjabi),
+ q(pod) => q(Ponares),
+ q(ppa) => q(Pao),
q(ppr) => q(Piru),
+ q(pry) => q(Pray 3),
q(puz) => q(Purum Naga),
+ q(rna) => q(Runa),
q(sap) => q(Sanapana),
q(sca) => q(Sansu),
q(sgo) => q(Songa),
+ q(svr) => q(Savara),
+ q(tdu) => q(Tempasuk Dusun),
q(tgg) => q(Tangga),
+ q(thc) => q(Tai Hang Tong),
q(thx) => q(The),
+ q(tid) => q(Tidong),
q(tie) => q(Tingal),
q(tkk) => q(Takpa),
q(tlw) => q(South Wemale),
+ q(tmp) => q(Tai Mene),
+ q(tne) => q(Tinoc Kallahan),
+ q(toe) => q(Tomedes),
q(tsf) => q(Southwestern Tamang),
q(unp) => q(Worora),
q(uok) => q(Uokha),
q(wit) => q(Wintu),
q(wiw) => q(Wirangu),
+ q(xba) => q(Kamba (Brazil)),
+ q(xbx) => q(Kabixi),
q(xia) => q(Xiandao),
+ q(xip) => q(Xipinawa),
+ q(xkh) => q(Karahawyana),
q(xsj) => q(Subi),
q(ybd) => q(Yangbye),
q(yds) => q(Yiddish Sign Language),
@@ -111,6 +149,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'code'} = {
q(ymt) => q(Mator-Taygi-Karagas),
q(ynh) => q(Yangho),
q(yos) => q(Yos),
+ q(yri) => q(Yari),
q(yuu) => q(Yugh),
};
@@ -187,6 +226,8 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(aromanian) => [ q(rup), q(Aromanian) ],
q(atong) => [ q(ato), q(Atong) ],
q(ayi (china)) => [ q(ayx), q(Ayi (China)) ],
+ q(baga binari) => [ q(bcg), q(Baga Binari) ],
+ q(baga mboteni) => [ q(bgm), q(Baga Mboteni) ],
q(bandjigali) => [ q(bjd), q(Bandjigali) ],
q(bangi me) => [ q(dba), q(Bangi Me) ],
q(bantu (other)) => [ q(bnt), q(Bantu (Other)) ],
@@ -198,17 +239,26 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(bekwil) => [ q(bkw), q(Bekwil) ],
q(bemba) => [ q(bem), q(Bemba) ],
q(bemba (democratic republic of congo)) => [ q(bmy), q(Bemba (Democratic Republic of Congo)) ],
+ q(bhatola) => [ q(btl), q(Bhatola) ],
q(blin) => [ q(byn), q(Blin) ],
q(borna (democratic republic of congo)) => [ q(bxx), q(Borna (Democratic Republic of Congo)) ],
q(brek karen) => [ q(kvl), q(Brek Karen) ],
q(burum-mindik) => [ q(bmu), q(Burum-Mindik) ],
q(buya) => [ q(byy), q(Buya) ],
+ q(cagua) => [ q(cbh), q(Cagua) ],
q(central bicolano) => [ q(bcl), q(Central Bicolano) ],
+ q(central dusun) => [ q(dtp), q(Central Dusun) ],
q(chaungtha) => [ q(ccq), q(Chaungtha) ],
+ q(chilean quechua) => [ q(cqu), q(Chilean Quechua) ],
+ q(chipiajes) => [ q(cbe), q(Chipiajes) ],
+ q(coastal kadazan) => [ q(kzj), q(Coastal Kadazan) ],
+ q(coxima) => [ q(kox), q(Coxima) ],
+ q(coyaima) => [ q(coy), q(Coyaima) ],
q(creoles and pidgins ) => [ q(crp), q(Creoles and pidgins ) ],
q(creoles and pidgins, english based) => [ q(cpe), q(Creoles and pidgins, English based) ],
q(creoles and pidgins, french-based ) => [ q(cpf), q(Creoles and pidgins, French-based ) ],
q(creoles and pidgins, portuguese-based ) => [ q(cpp), q(Creoles and pidgins, Portuguese-based ) ],
+ q(cumeral) => [ q(cum), q(Cumeral) ],
q(dakaka) => [ q(bpa), q(Dakaka) ],
q(darling) => [ q(drl), q(Darling) ],
q(daza) => [ q(dzd), q(Daza) ],
@@ -218,9 +268,11 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(djangu) => [ q(dhg), q(Djangu) ],
q(dogri) => [ q(doi), q(Dogri) ],
q(duduela) => [ q(duk), q(Duduela) ],
+ q(duli) => [ q(duz), q(Duli) ],
q(dumpu) => [ q(wtf), q(Dumpu) ],
q(durango nahuatl) => [ q(nln), q(Durango Nahuatl) ],
q(dutch, middle (ca.1050-1350)) => [ q(dum), q(Dutch, Middle (ca.1050-1350)) ],
+ q(eastern gurung) => [ q(ggn), q(Eastern Gurung) ],
q(elpaputih) => [ q(elp), q(Elpaputih) ],
q(emok) => [ q(emo), q(Emok) ],
q(english, middle (1100-1500)) => [ q(enm), q(English, Middle (1100-1500)) ],
@@ -236,34 +288,47 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(gelao) => [ q(gio), q(Gelao) ],
q(german, middle high (ca.1050-1500)) => [ q(gmh), q(German, Middle High (ca.1050-1500)) ],
q(german, old high (ca.750-1050)) => [ q(goh), q(German, Old High (ca.750-1050)) ],
+ q(gey) => [ q(guv), q(Gey) ],
q(greek, ancient (to 1453)) => [ q(grc), q(Greek, Ancient (to 1453)) ],
+ q(gusan) => [ q(gsn), q(Gusan) ],
q(guwinmal) => [ q(xgm), q(Guwinmal) ],
q(hainyaxo bozo) => [ q(bzx), q(Hainyaxo Bozo) ],
+ q(haka chin) => [ q(cnh), q(Haka Chin) ],
q(hawai'i pidgin sign language) => [ q(hps), q(Hawai'i Pidgin Sign Language) ],
q(horuru) => [ q(hrr), q(Horuru) ],
q(hungworo) => [ q(nat), q(Hungworo) ],
+ q(iapama) => [ q(iap), q(Iapama) ],
q(ibilo) => [ q(ibi), q(Ibilo) ],
q(idun) => [ q(ldb), q(Idun) ],
q(ikobi-mena) => [ q(meb), q(Ikobi-Mena) ],
q(imeraguen) => [ q(ime), q(Imeraguen) ],
+ q(iranun) => [ q(ill), q(Iranun) ],
q(irish, middle (900-1200)) => [ q(mga), q(Irish, Middle (900-1200)) ],
q(irish, old (to 900)) => [ q(sga), q(Irish, Old (to 900)) ],
q(izi-ezaa-ikwo-mgbo) => [ q(izi), q(Izi-Ezaa-Ikwo-Mgbo) ],
q(jarawa (nigeria)) => [ q(jar), q(Jarawa (Nigeria)) ],
+ q(kabixi) => [ q(xbx), q(Kabixi) ],
+ q(kachchi) => [ q(kfr), q(Kachchi) ],
q(kadara) => [ q(kad), q(Kadara) ],
q(kado) => [ q(kdv), q(Kado) ],
q(kag-fer-jiir-koor-ror-us-zuksun) => [ q(gel), q(Kag-Fer-Jiir-Koor-Ror-Us-Zuksun) ],
q(kakauhua) => [ q(kbf), q(Kakauhua) ],
q(kakihum) => [ q(kxe), q(Kakihum) ],
q(kamba) => [ q(kam), q(Kamba) ],
+ q(kamba (brazil)) => [ q(xba), q(Kamba (Brazil)) ],
+ q(karahawyana) => [ q(xkh), q(Karahawyana) ],
+ q(kasseng) => [ q(kgc), q(Kasseng) ],
+ q(kayapa kallahan) => [ q(kak), q(Kayapa Kallahan) ],
q(kemezung) => [ q(dmo), q(Kemezung) ],
q(kenuzi-dongola) => [ q(kzh), q(Kenuzi-Dongola) ],
q(khumi awa chin) => [ q(cka), q(Khumi Awa Chin) ],
q(kol) => [ q(ekl), q(Kol) ],
q(kolum so dogon) => [ q(dkl), q(Kolum So Dogon) ],
q(konkani) => [ q(kok), q(Konkani) ],
+ q(kota marudu tinagas) => [ q(ktr), q(Kota Marudu Tinagas) ],
q(kumak) => [ q(nee), q(Kumak) ],
q(kuman) => [ q(kue), q(Kuman) ],
+ q(kunggara) => [ q(kvs), q(Kunggara) ],
q(kutang ghale) => [ q(ght), q(Kutang Ghale) ],
q(kwak) => [ q(kwq), q(Kwak) ],
q(kwato) => [ q(kop), q(Kwato) ],
@@ -272,6 +337,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(lamam) => [ q(lmm), q(Lamam) ],
q(lengua) => [ q(leg), q(Lengua) ],
q(lingkhim) => [ q(lii), q(Lingkhim) ],
+ q(louisiana creole french) => [ q(lou), q(Louisiana Creole French) ],
q(lowa) => [ q(loy), q(Lowa) ],
q(lower tanudan kalinga) => [ q(kml), q(Lower Tanudan Kalinga) ],
q(luhu) => [ q(lcq), q(Luhu) ],
@@ -281,6 +347,7 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(maligo) => [ q(mwj), q(Maligo) ],
q(mangetti dune !xung) => [ q(gfx), q(Mangetti Dune !Xung) ],
q(mann) => [ q(mev), q(Mann) ],
+ q(manusela) => [ q(wha), q(Manusela) ],
q(mari) => [ q(chm), q(Mari) ],
q(maskoy pidgin) => [ q(mhh), q(Maskoy Pidgin) ],
q(mator-taygi-karagas) => [ q(ymt), q(Mator-Taygi-Karagas) ],
@@ -304,12 +371,14 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(nama (namibia)) => [ q(naq), q(Nama (Namibia)) ],
q(nanggu) => [ q(ngr), q(Nanggu) ],
q(nangikurrunggurr) => [ q(nam), q(Nangikurrunggurr) ],
+ q(natagaimas) => [ q(nts), q(Natagaimas) ],
q(ndrag'ngith) => [ q(dgt), q(Ndrag'ngith) ],
q(nepal bhasa) => [ q(new), q(Nepal Bhasa) ],
q(nga la) => [ q(hlt), q(Nga La) ],
q(ngalkbun) => [ q(ngk), q(Ngalkbun) ],
q(ngong) => [ q(nnx), q(Ngong) ],
q(ngura) => [ q(nbx), q(Ngura) ],
+ q(nijadali) => [ q(nad), q(Nijadali) ],
q(nisi (india)) => [ q(dap), q(Nisi (India)) ],
q(nootka) => [ q(noo), q(Nootka) ],
q(norse, old) => [ q(non), q(Norse, Old) ],
@@ -322,20 +391,29 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(nsari) => [ q(asj), q(Nsari) ],
q(nung (myanmar)) => [ q(nun), q(Nung (Myanmar)) ],
q(omati) => [ q(mgx), q(Omati) ],
+ q(omejes) => [ q(ome), q(Omejes) ],
+ q(oriya (individual language)) => [ q(ory), q(Oriya (individual language)) ],
q(ounge) => [ q(oue), q(Ounge) ],
q(palu) => [ q(pbz), q(Palu) ],
+ q(palumata) => [ q(pmc), q(Palumata) ],
q(panang) => [ q(pcr), q(Panang) ],
+ q(pao) => [ q(ppa), q(Pao) ],
q(persian, old (ca.600-400 b.c.)) => [ q(peo), q(Persian, Old (ca.600-400 B.C.)) ],
q(piru) => [ q(ppr), q(Piru) ],
+ q(ponares) => [ q(pod), q(Ponares) ],
q(pongyong) => [ q(pgy), q(Pongyong) ],
+ q(pray 3) => [ q(pry), q(Pray 3) ],
q(provencal, old (to 1500)) => [ q(pro), q(Provencal, Old (to 1500)) ],
q(purum naga) => [ q(puz), q(Purum Naga) ],
q(pyu) => [ q(pby), q(Pyu) ],
+ q(runa) => [ q(rna), q(Runa) ],
q(sakam) => [ q(skm), q(Sakam) ],
+ q(san juan guelavia zapotec) => [ q(zab), q(San Juan Guelavia Zapotec) ],
q(san marcos tlalcoyalco popoloca) => [ q(pls), q(San Marcos Tlalcoyalco Popoloca) ],
q(sansu) => [ q(sca), q(Sansu) ],
q(sara dunjo) => [ q(koj), q(Sara Dunjo) ],
q(sauk) => [ q(skc), q(Sauk) ],
+ q(savara) => [ q(svr), q(Savara) ],
q(sepen) => [ q(spm), q(Sepen) ],
q(seraiki) => [ q(skr), q(Seraiki) ],
q(shabo) => [ q(sbf), q(Shabo) ],
@@ -346,18 +424,28 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(south wemale) => [ q(tlw), q(South Wemale) ],
q(southeast pashayi) => [ q(psi), q(Southeast Pashayi) ],
q(southern catanduanes bicolano) => [ q(bln), q(Southern Catanduanes Bicolano) ],
+ q(southern gondi) => [ q(ggo), q(Southern Gondi) ],
q(southern lorung) => [ q(lrr), q(Southern Lorung) ],
q(southwest pashayi) => [ q(psh), q(Southwest Pashayi) ],
q(southwestern tamang) => [ q(tsf), q(Southwestern Tamang) ],
q(subi) => [ q(xsj), q(Subi) ],
q(sulung) => [ q(suv), q(Sulung) ],
+ q(tai hang tong) => [ q(thc), q(Tai Hang Tong) ],
+ q(tai mene) => [ q(tmp), q(Tai Mene) ],
q(takpa) => [ q(tkk), q(Takpa) ],
q(talur) => [ q(ilw), q(Talur) ],
+ q(tambunan dusun) => [ q(kzt), q(Tambunan Dusun) ],
q(tangga) => [ q(tgg), q(Tangga) ],
q(tangkhul naga) => [ q(nmf), q(Tangkhul Naga) ],
+ q(teluti) => [ q(tlt), q(Teluti) ],
+ q(tempasuk dusun) => [ q(tdu), q(Tempasuk Dusun) ],
q(the) => [ q(thx), q(The) ],
+ q(tidong) => [ q(tid), q(Tidong) ],
q(tina sambal) => [ q(xsb), q(Tina Sambal) ],
q(tingal) => [ q(tie), q(Tingal) ],
+ q(tinoc kallahan) => [ q(tne), q(Tinoc Kallahan) ],
+ q(tomedes) => [ q(toe), q(Tomedes) ],
+ q(tonga (thailand)) => [ q(tnz), q(Tonga (Thailand)) ],
q(tsotsitaal) => [ q(fly), q(Tsotsitaal) ],
q(turkish, ottoman (1500-1928)) => [ q(ota), q(Turkish, Ottoman (1500-1928)) ],
q(unggarranggu) => [ q(xun), q(Unggarranggu) ],
@@ -370,13 +458,17 @@ $Locale::Codes::Retired{'language'}{'alpha-3'}{'name'} = {
q(welaung) => [ q(weu), q(Welaung) ],
q(were) => [ q(wei), q(Were) ],
q(western canadian inuktitut) => [ q(ikt), q(Western Canadian Inuktitut) ],
+ q(western gurung) => [ q(gvr), q(Western Gurung) ],
q(worora) => [ q(unp), q(Worora) ],
q(xiandao) => [ q(xia), q(Xiandao) ],
+ q(xipinawa) => [ q(xip), q(Xipinawa) ],
q(yamphe) => [ q(yma), q(Yamphe) ],
q(yangbye) => [ q(ybd), q(Yangbye) ],
q(yangho) => [ q(ynh), q(Yangho) ],
+ q(yari) => [ q(yri), q(Yari) ],
q(yeskwa) => [ q(yes), q(Yeskwa) ],
q(yiddish sign language) => [ q(yds), q(Yiddish Sign Language) ],
+ q(yiwom) => [ q(gek), q(Yiwom) ],
q(yonggom) => [ q(yon), q(Yonggom) ],
q(yos) => [ q(yos), q(Yos) ],
q(yuaga) => [ q(nua), q(Yuaga) ],
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm
index b188cf072b0..d9c480773ff 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pm
@@ -1,7 +1,7 @@
package Locale::Codes::Script;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -22,7 +22,7 @@ use Locale::Codes::Script_Retired;
our($VERSION,@ISA,@EXPORT,@EXPORT_OK);
-$VERSION='3.37';
+$VERSION='3.42';
@ISA = qw(Exporter);
@EXPORT = qw(code2script
script2code
@@ -94,5 +94,5 @@ sub delete_script_code_alias {
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod b/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod
index e4e1d4053f1..be91f186a05 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Script.pod
@@ -123,7 +123,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm
index 451a4e4b373..0e156c29aad 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Codes.pm
@@ -3,7 +3,7 @@ Locale::Codes::Script_Codes;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'harvest_data' is run.
-# Generated on: Tue Dec 1 14:44:11 EST 2015
+# Generated on: Tue Nov 29 15:43:53 EST 2016
use strict;
require 5.006;
@@ -11,9 +11,9 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
-$Locale::Codes::Data{'script'}{'id'} = '0175';
+$Locale::Codes::Data{'script'}{'id'} = '0180';
$Locale::Codes::Data{'script'}{'id2names'} = {
q(0001) => [
@@ -168,459 +168,478 @@ $Locale::Codes::Data{'script'}{'id2names'} = {
q(Gurmukhi),
],
q(0048) => [
+ q(Han with Bopomofo (alias for Han + Bopomofo)),
+ ],
+ q(0049) => [
q(Hangul (Hangul, Hangeul)),
q(Hangul),
q(Hangeul),
],
- q(0049) => [
+ q(0050) => [
q(Han (Hanzi, Kanji, Hanja)),
q(Han),
q(Hanzi),
q(Kanji),
q(Hanja),
],
- q(0050) => [
+ q(0051) => [
q(Hanunoo (Hanunoo)),
q(Hanunoo),
],
- q(0051) => [
+ q(0052) => [
q(Han (Simplified variant)),
],
- q(0052) => [
+ q(0053) => [
q(Han (Traditional variant)),
],
- q(0053) => [
+ q(0054) => [
q(Hatran),
],
- q(0054) => [
+ q(0055) => [
q(Hebrew),
],
- q(0055) => [
+ q(0056) => [
q(Hiragana),
],
- q(0056) => [
+ q(0057) => [
q(Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)),
q(Anatolian Hieroglyphs),
q(Luwian Hieroglyphs),
q(Hittite Hieroglyphs),
],
- q(0057) => [
+ q(0058) => [
q(Pahawh Hmong),
],
- q(0058) => [
+ q(0059) => [
q(Japanese syllabaries (alias for Hiragana + Katakana)),
],
- q(0059) => [
+ q(0060) => [
q(Old Hungarian (Hungarian Runic)),
q(Old Hungarian),
q(Hungarian Runic),
],
- q(0060) => [
+ q(0061) => [
q(Indus (Harappan)),
q(Indus),
q(Harappan),
],
- q(0061) => [
+ q(0062) => [
q(Old Italic (Etruscan, Oscan, etc.)),
],
- q(0062) => [
+ q(0063) => [
+ q(Jamo (alias for Jamo subset of Hangul)),
+ ],
+ q(0064) => [
q(Javanese),
],
- q(0063) => [
+ q(0065) => [
q(Japanese (alias for Han + Hiragana + Katakana)),
],
- q(0064) => [
+ q(0066) => [
q(Jurchen),
],
- q(0065) => [
+ q(0067) => [
q(Kayah Li),
],
- q(0066) => [
+ q(0068) => [
q(Katakana),
],
- q(0067) => [
+ q(0069) => [
q(Kharoshthi),
],
- q(0068) => [
+ q(0070) => [
q(Khmer),
],
- q(0069) => [
+ q(0071) => [
q(Khojki),
],
- q(0070) => [
+ q(0072) => [
q(Khitan large script),
],
- q(0071) => [
+ q(0073) => [
q(Khitan small script),
],
- q(0072) => [
+ q(0074) => [
q(Kannada),
],
- q(0073) => [
+ q(0075) => [
q(Korean (alias for Hangul + Han)),
],
- q(0074) => [
+ q(0076) => [
q(Kpelle),
],
- q(0075) => [
+ q(0077) => [
q(Kaithi),
],
- q(0076) => [
+ q(0078) => [
q(Tai Tham (Lanna)),
q(Tai Tham),
q(Lanna),
],
- q(0077) => [
+ q(0079) => [
q(Lao),
],
- q(0078) => [
+ q(0080) => [
q(Latin (Fraktur variant)),
],
- q(0079) => [
+ q(0081) => [
q(Latin (Gaelic variant)),
],
- q(0080) => [
+ q(0082) => [
q(Latin),
],
- q(0081) => [
+ q(0083) => [
q(Leke),
],
- q(0082) => [
+ q(0084) => [
q(Lepcha (Rong)),
q(Lepcha),
q(Rong),
],
- q(0083) => [
+ q(0085) => [
q(Limbu),
],
- q(0084) => [
+ q(0086) => [
q(Linear A),
],
- q(0085) => [
+ q(0087) => [
q(Linear B),
],
- q(0086) => [
+ q(0088) => [
q(Lisu (Fraser)),
q(Lisu),
q(Fraser),
],
- q(0087) => [
+ q(0089) => [
q(Loma),
],
- q(0088) => [
+ q(0090) => [
q(Lycian),
],
- q(0089) => [
+ q(0091) => [
q(Lydian),
],
- q(0090) => [
+ q(0092) => [
q(Mahajani),
],
- q(0091) => [
+ q(0093) => [
q(Mandaic, Mandaean),
q(Mandaic),
q(Mandaean),
],
- q(0092) => [
+ q(0094) => [
q(Manichaean),
],
- q(0093) => [
+ q(0095) => [
q(Marchen),
],
- q(0094) => [
+ q(0096) => [
q(Mayan hieroglyphs),
],
- q(0095) => [
+ q(0097) => [
q(Mende Kikakui),
],
- q(0096) => [
+ q(0098) => [
q(Meroitic Cursive),
],
- q(0097) => [
+ q(0099) => [
q(Meroitic Hieroglyphs),
],
- q(0098) => [
+ q(0100) => [
q(Malayalam),
],
- q(0099) => [
+ q(0101) => [
q(Modi, Modi),
q(Modi),
],
- q(0100) => [
+ q(0102) => [
q(Mongolian),
],
- q(0101) => [
+ q(0103) => [
q(Moon (Moon code, Moon script, Moon type)),
q(Moon),
q(Moon code),
q(Moon script),
q(Moon type),
],
- q(0102) => [
+ q(0104) => [
q(Mro, Mru),
q(Mro),
q(Mru),
],
- q(0103) => [
+ q(0105) => [
q(Meitei Mayek (Meithei, Meetei)),
q(Meitei Mayek),
q(Meithei),
q(Meetei),
],
- q(0104) => [
+ q(0106) => [
q(Multani),
],
- q(0105) => [
+ q(0107) => [
q(Myanmar (Burmese)),
q(Myanmar),
q(Burmese),
],
- q(0106) => [
+ q(0108) => [
q(Old North Arabian (Ancient North Arabian)),
q(Old North Arabian),
q(Ancient North Arabian),
],
- q(0107) => [
+ q(0109) => [
q(Nabataean),
],
- q(0108) => [
+ q(0110) => [
+ q(Newa, Newar, Newari, Nepala lipi),
+ q(Newa),
+ q(Newar),
+ q(Newari),
+ q(Nepala lipi),
+ ],
+ q(0111) => [
q(Nakhi Geba ('Na-'Khi Ggo-baw, Naxi Geba)),
q(Nakhi Geba),
q('Na-'Khi Ggo-baw),
q(Naxi Geba),
],
- q(0109) => [
+ q(0112) => [
q(N'Ko),
],
- q(0110) => [
+ q(0113) => [
q(Nushu),
],
- q(0111) => [
+ q(0114) => [
q(Ogham),
],
- q(0112) => [
+ q(0115) => [
q(Ol Chiki (Ol Cemet, Ol, Santali)),
q(Ol Chiki),
q(Ol Cemet'),
q(Ol),
q(Santali),
],
- q(0113) => [
+ q(0116) => [
q(Old Turkic, Orkhon Runic),
q(Old Turkic),
q(Orkhon Runic),
],
- q(0114) => [
+ q(0117) => [
q(Oriya),
],
- q(0115) => [
+ q(0118) => [
q(Osage),
],
- q(0116) => [
+ q(0119) => [
q(Osmanya),
],
- q(0117) => [
+ q(0120) => [
q(Palmyrene),
],
- q(0118) => [
+ q(0121) => [
q(Pau Cin Hau),
],
- q(0119) => [
+ q(0122) => [
q(Old Permic),
],
- q(0120) => [
+ q(0123) => [
q(Phags-pa),
],
- q(0121) => [
+ q(0124) => [
q(Inscriptional Pahlavi),
],
- q(0122) => [
+ q(0125) => [
q(Psalter Pahlavi),
],
- q(0123) => [
+ q(0126) => [
q(Book Pahlavi),
],
- q(0124) => [
+ q(0127) => [
q(Phoenician),
],
- q(0125) => [
+ q(0128) => [
q(Miao (Pollard)),
q(Miao),
q(Pollard),
],
- q(0126) => [
+ q(0129) => [
+ q(Klingon (KLI pIqaD)),
+ ],
+ q(0130) => [
q(Inscriptional Parthian),
],
- q(0127) => [
+ q(0131) => [
q(Reserved for private use (start)),
],
- q(0128) => [
+ q(0132) => [
q(Reserved for private use (end)),
],
- q(0129) => [
+ q(0133) => [
q(Rejang (Redjang, Kaganga)),
q(Rejang),
q(Redjang),
q(Kaganga),
],
- q(0130) => [
+ q(0134) => [
q(Rongorongo),
],
- q(0131) => [
+ q(0135) => [
q(Runic),
],
- q(0132) => [
+ q(0136) => [
q(Samaritan),
],
- q(0133) => [
+ q(0137) => [
q(Sarati),
],
- q(0134) => [
+ q(0138) => [
q(Old South Arabian),
],
- q(0135) => [
+ q(0139) => [
q(Saurashtra),
],
- q(0136) => [
+ q(0140) => [
q(SignWriting),
],
- q(0137) => [
+ q(0141) => [
q(Shavian (Shaw)),
q(Shavian),
q(Shaw),
],
- q(0138) => [
+ q(0142) => [
q(Sharada, Sarada),
q(Sharada),
q(Sarada),
],
- q(0139) => [
+ q(0143) => [
q(Siddham, Siddham, Siddhamatrka),
q(Siddham),
q(Siddhamatrka),
],
- q(0140) => [
+ q(0144) => [
q(Khudawadi, Sindhi),
q(Khudawadi),
q(Sindhi),
],
- q(0141) => [
+ q(0145) => [
q(Sinhala),
],
- q(0142) => [
+ q(0146) => [
q(Sora Sompeng),
],
- q(0143) => [
+ q(0147) => [
q(Sundanese),
],
- q(0144) => [
+ q(0148) => [
q(Syloti Nagri),
],
- q(0145) => [
+ q(0149) => [
q(Syriac),
],
- q(0146) => [
+ q(0150) => [
q(Syriac (Estrangelo variant)),
],
- q(0147) => [
+ q(0151) => [
q(Syriac (Western variant)),
],
- q(0148) => [
+ q(0152) => [
q(Syriac (Eastern variant)),
],
- q(0149) => [
+ q(0153) => [
q(Tagbanwa),
],
- q(0150) => [
+ q(0154) => [
q(Takri, Takri, Tankri),
q(Takri),
q(Tankri),
],
- q(0151) => [
+ q(0155) => [
q(Tai Le),
],
- q(0152) => [
+ q(0156) => [
q(New Tai Lue),
],
- q(0153) => [
+ q(0157) => [
q(Tamil),
],
- q(0154) => [
+ q(0158) => [
q(Tangut),
],
- q(0155) => [
+ q(0159) => [
q(Tai Viet),
],
- q(0156) => [
+ q(0160) => [
q(Telugu),
],
- q(0157) => [
+ q(0161) => [
q(Tengwar),
],
- q(0158) => [
+ q(0162) => [
q(Tifinagh (Berber)),
q(Tifinagh),
q(Berber),
],
- q(0159) => [
+ q(0163) => [
q(Tagalog (Baybayin, Alibata)),
q(Tagalog),
q(Baybayin),
q(Alibata),
],
- q(0160) => [
+ q(0164) => [
q(Thaana),
],
- q(0161) => [
+ q(0165) => [
q(Thai),
],
- q(0162) => [
+ q(0166) => [
q(Tibetan),
],
- q(0163) => [
+ q(0167) => [
q(Tirhuta),
],
- q(0164) => [
+ q(0168) => [
q(Ugaritic),
],
- q(0165) => [
+ q(0169) => [
q(Vai),
],
- q(0166) => [
+ q(0170) => [
q(Visible Speech),
],
- q(0167) => [
+ q(0171) => [
q(Warang Citi (Varang Kshiti)),
q(Warang Citi),
q(Varang Kshiti),
],
- q(0168) => [
+ q(0172) => [
q(Woleai),
],
- q(0169) => [
+ q(0173) => [
q(Old Persian),
],
- q(0170) => [
+ q(0174) => [
q(Cuneiform, Sumero-Akkadian),
q(Sumero-Akkadian cuneiform),
],
- q(0171) => [
+ q(0175) => [
q(Yi),
],
- q(0172) => [
+ q(0176) => [
q(Code for inherited script),
],
- q(0173) => [
+ q(0177) => [
q(Mathematical notation),
],
- q(0174) => [
+ q(0178) => [
+ q(Symbols (Emoji variant)),
+ ],
+ q(0179) => [
q(Symbols),
],
};
$Locale::Codes::Data{'script'}{'alias2id'} = {
q('na-'khi ggo-baw) => [
- q(0108),
+ q(0111),
q(2),
],
q(adlam) => [
@@ -640,19 +659,19 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(alibata) => [
- q(0159),
+ q(0163),
q(3),
],
q(anatolian hieroglyphs) => [
- q(0056),
+ q(0057),
q(1),
],
q(anatolian hieroglyphs (luwian hieroglyphs, hittite hieroglyphs)) => [
- q(0056),
+ q(0057),
q(0),
],
q(ancient north arabian) => [
- q(0106),
+ q(0108),
q(2),
],
q(arabic) => [
@@ -688,7 +707,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(baybayin) => [
- q(0159),
+ q(0163),
q(2),
],
q(bengali) => [
@@ -696,7 +715,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(berber) => [
- q(0158),
+ q(0162),
q(2),
],
q(bhaiksuki) => [
@@ -708,7 +727,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(book pahlavi) => [
- q(0123),
+ q(0126),
q(0),
],
q(bopomofo) => [
@@ -732,7 +751,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(burmese) => [
- q(0105),
+ q(0107),
q(2),
],
q(carian) => [
@@ -760,7 +779,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(code for inherited script) => [
- q(0172),
+ q(0176),
q(0),
],
q(coptic) => [
@@ -768,7 +787,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(cuneiform, sumero-akkadian) => [
- q(0170),
+ q(0174),
q(0),
],
q(cypriot) => [
@@ -836,7 +855,7 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(fraser) => [
- q(0086),
+ q(0088),
q(2),
],
q(ge'ez) => [
@@ -872,71 +891,75 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(han) => [
- q(0049),
+ q(0050),
q(1),
],
q(han (hanzi, kanji, hanja)) => [
- q(0049),
+ q(0050),
q(0),
],
q(han (simplified variant)) => [
- q(0051),
+ q(0052),
q(0),
],
q(han (traditional variant)) => [
- q(0052),
+ q(0053),
q(0),
],
- q(hangeul) => [
+ q(han with bopomofo (alias for han + bopomofo)) => [
q(0048),
+ q(0),
+ ],
+ q(hangeul) => [
+ q(0049),
q(2),
],
q(hangul) => [
- q(0048),
+ q(0049),
q(1),
],
q(hangul (hangul, hangeul)) => [
- q(0048),
+ q(0049),
q(0),
],
q(hanja) => [
- q(0049),
+ q(0050),
q(4),
],
q(hanunoo) => [
- q(0050),
+ q(0051),
q(1),
],
q(hanunoo (hanunoo)) => [
- q(0050),
+ q(0051),
q(0),
],
q(hanzi) => [
- q(0049),
+ q(0050),
q(2),
],
q(harappan) => [
- q(0060),
+ q(0061),
q(2),
],
q(hatran) => [
- q(0053),
+ q(0054),
q(0),
],
q(hebrew) => [
- q(0054),
+ q(0055),
q(0),
],
q(hiragana) => [
- q(0055),
+ q(0056),
q(0),
],
q(hittite hieroglyphs) => [
- q(0056),
+ q(0057),
q(3),
],
q(hungarian runic) => [
- q(0059),
+ q(0060),
q(2),
],
q(imperial aramaic) => [
@@ -944,271 +967,279 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(indus) => [
- q(0060),
+ q(0061),
q(1),
],
q(indus (harappan)) => [
- q(0060),
+ q(0061),
q(0),
],
q(inscriptional pahlavi) => [
- q(0121),
+ q(0124),
q(0),
],
q(inscriptional parthian) => [
- q(0126),
+ q(0130),
q(0),
],
- q(japanese (alias for han + hiragana + katakana)) => [
+ q(jamo (alias for jamo subset of hangul)) => [
q(0063),
q(0),
],
+ q(japanese (alias for han + hiragana + katakana)) => [
+ q(0065),
+ q(0),
+ ],
q(japanese syllabaries (alias for hiragana + katakana)) => [
- q(0058),
+ q(0059),
q(0),
],
q(javanese) => [
- q(0062),
+ q(0064),
q(0),
],
q(jurchen) => [
- q(0064),
+ q(0066),
q(0),
],
q(kaganga) => [
- q(0129),
+ q(0133),
q(3),
],
q(kaithi) => [
- q(0075),
+ q(0077),
q(0),
],
q(kanji) => [
- q(0049),
+ q(0050),
q(3),
],
q(kannada) => [
- q(0072),
+ q(0074),
q(0),
],
q(katakana) => [
- q(0066),
+ q(0068),
q(0),
],
q(kayah li) => [
- q(0065),
+ q(0067),
q(0),
],
q(kharoshthi) => [
- q(0067),
+ q(0069),
q(0),
],
q(khitan large script) => [
- q(0070),
+ q(0072),
q(0),
],
q(khitan small script) => [
- q(0071),
+ q(0073),
q(0),
],
q(khmer) => [
- q(0068),
+ q(0070),
q(0),
],
q(khojki) => [
- q(0069),
+ q(0071),
q(0),
],
q(khudawadi) => [
- q(0140),
+ q(0144),
q(1),
],
q(khudawadi, sindhi) => [
- q(0140),
+ q(0144),
q(0),
],
q(khutsuri (asomtavruli and nuskhuri)) => [
q(0040),
q(0),
],
+ q(klingon (kli piqad)) => [
+ q(0129),
+ q(0),
+ ],
q(korean (alias for hangul + han)) => [
- q(0073),
+ q(0075),
q(0),
],
q(kpelle) => [
- q(0074),
+ q(0076),
q(0),
],
q(lanna) => [
- q(0076),
+ q(0078),
q(2),
],
q(lao) => [
- q(0077),
+ q(0079),
q(0),
],
q(latin) => [
- q(0080),
+ q(0082),
q(0),
],
q(latin (fraktur variant)) => [
- q(0078),
+ q(0080),
q(0),
],
q(latin (gaelic variant)) => [
- q(0079),
+ q(0081),
q(0),
],
q(leke) => [
- q(0081),
+ q(0083),
q(0),
],
q(lepcha) => [
- q(0082),
+ q(0084),
q(1),
],
q(lepcha (rong)) => [
- q(0082),
+ q(0084),
q(0),
],
q(limbu) => [
- q(0083),
+ q(0085),
q(0),
],
q(linear a) => [
- q(0084),
+ q(0086),
q(0),
],
q(linear b) => [
- q(0085),
+ q(0087),
q(0),
],
q(lisu) => [
- q(0086),
+ q(0088),
q(1),
],
q(lisu (fraser)) => [
- q(0086),
+ q(0088),
q(0),
],
q(loma) => [
- q(0087),
+ q(0089),
q(0),
],
q(luwian hieroglyphs) => [
- q(0056),
+ q(0057),
q(2),
],
q(lycian) => [
- q(0088),
+ q(0090),
q(0),
],
q(lydian) => [
- q(0089),
+ q(0091),
q(0),
],
q(mahajani) => [
- q(0090),
+ q(0092),
q(0),
],
q(malayalam) => [
- q(0098),
+ q(0100),
q(0),
],
q(mandaean) => [
- q(0091),
+ q(0093),
q(2),
],
q(mandaic) => [
- q(0091),
+ q(0093),
q(1),
],
q(mandaic, mandaean) => [
- q(0091),
+ q(0093),
q(0),
],
q(manichaean) => [
- q(0092),
+ q(0094),
q(0),
],
q(marchen) => [
- q(0093),
+ q(0095),
q(0),
],
q(mathematical notation) => [
- q(0173),
+ q(0177),
q(0),
],
q(mayan hieroglyphs) => [
- q(0094),
+ q(0096),
q(0),
],
q(meetei) => [
- q(0103),
+ q(0105),
q(3),
],
q(meitei mayek) => [
- q(0103),
+ q(0105),
q(1),
],
q(meitei mayek (meithei, meetei)) => [
- q(0103),
+ q(0105),
q(0),
],
q(meithei) => [
- q(0103),
+ q(0105),
q(2),
],
q(mende kikakui) => [
- q(0095),
+ q(0097),
q(0),
],
q(meroitic cursive) => [
- q(0096),
+ q(0098),
q(0),
],
q(meroitic hieroglyphs) => [
- q(0097),
+ q(0099),
q(0),
],
q(miao) => [
- q(0125),
+ q(0128),
q(1),
],
q(miao (pollard)) => [
- q(0125),
+ q(0128),
q(0),
],
q(modi) => [
- q(0099),
+ q(0101),
q(1),
],
q(modi, modi) => [
- q(0099),
+ q(0101),
q(0),
],
q(mongolian) => [
- q(0100),
+ q(0102),
q(0),
],
q(moon) => [
- q(0101),
+ q(0103),
q(1),
],
q(moon (moon code, moon script, moon type)) => [
- q(0101),
+ q(0103),
q(0),
],
q(moon code) => [
- q(0101),
+ q(0103),
q(2),
],
q(moon script) => [
- q(0101),
+ q(0103),
q(3),
],
q(moon type) => [
- q(0101),
+ q(0103),
q(4),
],
q(mormon) => [
@@ -1216,35 +1247,35 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(2),
],
q(mro) => [
- q(0102),
+ q(0104),
q(1),
],
q(mro, mru) => [
- q(0102),
+ q(0104),
q(0),
],
q(mru) => [
- q(0102),
+ q(0104),
q(2),
],
q(multani) => [
- q(0104),
+ q(0106),
q(0),
],
q(myanmar) => [
- q(0105),
+ q(0107),
q(1),
],
q(myanmar (burmese)) => [
- q(0105),
+ q(0107),
q(0),
],
q(n'ko) => [
- q(0109),
+ q(0112),
q(0),
],
q(nabataean) => [
- q(0107),
+ q(0109),
q(0),
],
q(nagari) => [
@@ -1252,271 +1283,295 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(2),
],
q(nakhi geba) => [
- q(0108),
+ q(0111),
q(1),
],
q(nakhi geba ('na-'khi ggo-baw, naxi geba)) => [
- q(0108),
+ q(0111),
q(0),
],
q(naxi geba) => [
- q(0108),
+ q(0111),
q(3),
],
+ q(nepala lipi) => [
+ q(0110),
+ q(4),
+ ],
q(new tai lue) => [
- q(0152),
+ q(0156),
q(0),
],
- q(nushu) => [
+ q(newa) => [
+ q(0110),
+ q(1),
+ ],
+ q(newa, newar, newari, nepala lipi) => [
q(0110),
q(0),
],
+ q(newar) => [
+ q(0110),
+ q(2),
+ ],
+ q(newari) => [
+ q(0110),
+ q(3),
+ ],
+ q(nushu) => [
+ q(0113),
+ q(0),
+ ],
q(ogham) => [
- q(0111),
+ q(0114),
q(0),
],
q(ol) => [
- q(0112),
+ q(0115),
q(3),
],
q(ol cemet') => [
- q(0112),
+ q(0115),
q(2),
],
q(ol chiki) => [
- q(0112),
+ q(0115),
q(1),
],
q(ol chiki (ol cemet, ol, santali)) => [
- q(0112),
+ q(0115),
q(0),
],
q(old hungarian) => [
- q(0059),
+ q(0060),
q(1),
],
q(old hungarian (hungarian runic)) => [
- q(0059),
+ q(0060),
q(0),
],
q(old italic (etruscan, oscan, etc.)) => [
- q(0061),
+ q(0062),
q(0),
],
q(old north arabian) => [
- q(0106),
+ q(0108),
q(1),
],
q(old north arabian (ancient north arabian)) => [
- q(0106),
+ q(0108),
q(0),
],
q(old permic) => [
- q(0119),
+ q(0122),
q(0),
],
q(old persian) => [
- q(0169),
+ q(0173),
q(0),
],
q(old south arabian) => [
- q(0134),
+ q(0138),
q(0),
],
q(old turkic) => [
- q(0113),
+ q(0116),
q(1),
],
q(old turkic, orkhon runic) => [
- q(0113),
+ q(0116),
q(0),
],
q(oriya) => [
- q(0114),
+ q(0117),
q(0),
],
q(orkhon runic) => [
- q(0113),
+ q(0116),
q(2),
],
q(osage) => [
- q(0115),
+ q(0118),
q(0),
],
q(osmanya) => [
- q(0116),
+ q(0119),
q(0),
],
q(pahawh hmong) => [
- q(0057),
+ q(0058),
q(0),
],
q(palmyrene) => [
- q(0117),
+ q(0120),
q(0),
],
q(pau cin hau) => [
- q(0118),
+ q(0121),
q(0),
],
q(phags-pa) => [
- q(0120),
+ q(0123),
q(0),
],
q(phoenician) => [
- q(0124),
+ q(0127),
q(0),
],
q(pollard) => [
- q(0125),
+ q(0128),
q(2),
],
q(psalter pahlavi) => [
- q(0122),
+ q(0125),
q(0),
],
q(redjang) => [
- q(0129),
+ q(0133),
q(2),
],
q(rejang) => [
- q(0129),
+ q(0133),
q(1),
],
q(rejang (redjang, kaganga)) => [
- q(0129),
+ q(0133),
q(0),
],
q(reserved for private use (end)) => [
- q(0128),
+ q(0132),
q(0),
],
q(reserved for private use (start)) => [
- q(0127),
+ q(0131),
q(0),
],
q(rong) => [
- q(0082),
+ q(0084),
q(2),
],
q(rongorongo) => [
- q(0130),
+ q(0134),
q(0),
],
q(runic) => [
- q(0131),
+ q(0135),
q(0),
],
q(samaritan) => [
- q(0132),
+ q(0136),
q(0),
],
q(santali) => [
- q(0112),
+ q(0115),
q(4),
],
q(sarada) => [
- q(0138),
+ q(0142),
q(2),
],
q(sarati) => [
- q(0133),
+ q(0137),
q(0),
],
q(saurashtra) => [
- q(0135),
+ q(0139),
q(0),
],
q(sharada) => [
- q(0138),
+ q(0142),
q(1),
],
q(sharada, sarada) => [
- q(0138),
+ q(0142),
q(0),
],
q(shavian) => [
- q(0137),
+ q(0141),
q(1),
],
q(shavian (shaw)) => [
- q(0137),
+ q(0141),
q(0),
],
q(shaw) => [
- q(0137),
+ q(0141),
q(2),
],
q(siddham) => [
- q(0139),
+ q(0143),
q(1),
],
q(siddham, siddham, siddhamatrka) => [
- q(0139),
+ q(0143),
q(0),
],
q(siddhamatrka) => [
- q(0139),
+ q(0143),
q(2),
],
q(signwriting) => [
- q(0136),
+ q(0140),
q(0),
],
q(sindhi) => [
- q(0140),
+ q(0144),
q(2),
],
q(sinhala) => [
- q(0141),
+ q(0145),
q(0),
],
q(sora sompeng) => [
- q(0142),
+ q(0146),
q(0),
],
q(sumero-akkadian cuneiform) => [
- q(0170),
+ q(0174),
q(1),
],
q(sundanese) => [
- q(0143),
+ q(0147),
q(0),
],
q(syloti nagri) => [
- q(0144),
+ q(0148),
q(0),
],
q(symbols) => [
- q(0174),
+ q(0179),
+ q(0),
+ ],
+ q(symbols (emoji variant)) => [
+ q(0178),
q(0),
],
q(syriac) => [
- q(0145),
+ q(0149),
q(0),
],
q(syriac (eastern variant)) => [
- q(0148),
+ q(0152),
q(0),
],
q(syriac (estrangelo variant)) => [
- q(0146),
+ q(0150),
q(0),
],
q(syriac (western variant)) => [
- q(0147),
+ q(0151),
q(0),
],
q(tagalog) => [
- q(0159),
+ q(0163),
q(1),
],
q(tagalog (baybayin, alibata)) => [
- q(0159),
+ q(0163),
q(0),
],
q(tagbanwa) => [
- q(0149),
+ q(0153),
q(0),
],
q(tai ahom) => [
@@ -1524,75 +1579,75 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(2),
],
q(tai le) => [
- q(0151),
+ q(0155),
q(0),
],
q(tai tham) => [
- q(0076),
+ q(0078),
q(1),
],
q(tai tham (lanna)) => [
- q(0076),
+ q(0078),
q(0),
],
q(tai viet) => [
- q(0155),
+ q(0159),
q(0),
],
q(takri) => [
- q(0150),
+ q(0154),
q(1),
],
q(takri, takri, tankri) => [
- q(0150),
+ q(0154),
q(0),
],
q(tamil) => [
- q(0153),
+ q(0157),
q(0),
],
q(tangut) => [
- q(0154),
+ q(0158),
q(0),
],
q(tankri) => [
- q(0150),
+ q(0154),
q(2),
],
q(telugu) => [
- q(0156),
+ q(0160),
q(0),
],
q(tengwar) => [
- q(0157),
+ q(0161),
q(0),
],
q(thaana) => [
- q(0160),
+ q(0164),
q(0),
],
q(thai) => [
- q(0161),
+ q(0165),
q(0),
],
q(tibetan) => [
- q(0162),
+ q(0166),
q(0),
],
q(tifinagh) => [
- q(0158),
+ q(0162),
q(1),
],
q(tifinagh (berber)) => [
- q(0158),
+ q(0162),
q(0),
],
q(tirhuta) => [
- q(0163),
+ q(0167),
q(0),
],
q(ugaritic) => [
- q(0164),
+ q(0168),
q(0),
],
q(unified canadian aboriginal syllabics) => [
@@ -1600,31 +1655,31 @@ $Locale::Codes::Data{'script'}{'alias2id'} = {
q(0),
],
q(vai) => [
- q(0165),
+ q(0169),
q(0),
],
q(varang kshiti) => [
- q(0167),
+ q(0171),
q(2),
],
q(visible speech) => [
- q(0166),
+ q(0170),
q(0),
],
q(warang citi) => [
- q(0167),
+ q(0171),
q(1),
],
q(warang citi (varang kshiti)) => [
- q(0167),
+ q(0171),
q(0),
],
q(woleai) => [
- q(0168),
+ q(0172),
q(0),
],
q(yi) => [
- q(0171),
+ q(0175),
q(0),
],
};
@@ -1819,526 +1874,546 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0047),
q(0),
],
- q(Hang) => [
+ q(Hanb) => [
q(0048),
+ q(0),
+ ],
+ q(Hang) => [
+ q(0049),
q(1),
],
q(Hani) => [
- q(0049),
+ q(0050),
q(1),
],
q(Hano) => [
- q(0050),
+ q(0051),
q(1),
],
q(Hans) => [
- q(0051),
+ q(0052),
q(0),
],
q(Hant) => [
- q(0052),
+ q(0053),
q(0),
],
q(Hatr) => [
- q(0053),
+ q(0054),
q(0),
],
q(Hebr) => [
- q(0054),
+ q(0055),
q(0),
],
q(Hira) => [
- q(0055),
+ q(0056),
q(0),
],
q(Hluw) => [
- q(0056),
+ q(0057),
q(1),
],
q(Hmng) => [
- q(0057),
+ q(0058),
q(0),
],
q(Hrkt) => [
- q(0058),
+ q(0059),
q(0),
],
q(Hung) => [
- q(0059),
+ q(0060),
q(1),
],
q(Inds) => [
- q(0060),
+ q(0061),
q(1),
],
q(Ital) => [
- q(0061),
+ q(0062),
+ q(0),
+ ],
+ q(Jamo) => [
+ q(0063),
q(0),
],
q(Java) => [
- q(0062),
+ q(0064),
q(0),
],
q(Jpan) => [
- q(0063),
+ q(0065),
q(0),
],
q(Jurc) => [
- q(0064),
+ q(0066),
q(0),
],
q(Kali) => [
- q(0065),
+ q(0067),
q(0),
],
q(Kana) => [
- q(0066),
+ q(0068),
q(0),
],
q(Khar) => [
- q(0067),
+ q(0069),
q(0),
],
q(Khmr) => [
- q(0068),
+ q(0070),
q(0),
],
q(Khoj) => [
- q(0069),
+ q(0071),
q(0),
],
q(Kitl) => [
- q(0070),
+ q(0072),
q(0),
],
q(Kits) => [
- q(0071),
+ q(0073),
q(0),
],
q(Knda) => [
- q(0072),
+ q(0074),
q(0),
],
q(Kore) => [
- q(0073),
+ q(0075),
q(0),
],
q(Kpel) => [
- q(0074),
+ q(0076),
q(0),
],
q(Kthi) => [
- q(0075),
+ q(0077),
q(0),
],
q(Lana) => [
- q(0076),
+ q(0078),
q(1),
],
q(Laoo) => [
- q(0077),
+ q(0079),
q(0),
],
q(Latf) => [
- q(0078),
+ q(0080),
q(0),
],
q(Latg) => [
- q(0079),
+ q(0081),
q(0),
],
q(Latn) => [
- q(0080),
+ q(0082),
q(0),
],
q(Leke) => [
- q(0081),
+ q(0083),
q(0),
],
q(Lepc) => [
- q(0082),
+ q(0084),
q(1),
],
q(Limb) => [
- q(0083),
+ q(0085),
q(0),
],
q(Lina) => [
- q(0084),
+ q(0086),
q(0),
],
q(Linb) => [
- q(0085),
+ q(0087),
q(0),
],
q(Lisu) => [
- q(0086),
+ q(0088),
q(1),
],
q(Loma) => [
- q(0087),
+ q(0089),
q(0),
],
q(Lyci) => [
- q(0088),
+ q(0090),
q(0),
],
q(Lydi) => [
- q(0089),
+ q(0091),
q(0),
],
q(Mahj) => [
- q(0090),
+ q(0092),
q(0),
],
q(Mand) => [
- q(0091),
+ q(0093),
q(1),
],
q(Mani) => [
- q(0092),
+ q(0094),
q(0),
],
q(Marc) => [
- q(0093),
+ q(0095),
q(0),
],
q(Maya) => [
- q(0094),
+ q(0096),
q(0),
],
q(Mend) => [
- q(0095),
+ q(0097),
q(0),
],
q(Merc) => [
- q(0096),
+ q(0098),
q(0),
],
q(Mero) => [
- q(0097),
+ q(0099),
q(0),
],
q(Mlym) => [
- q(0098),
+ q(0100),
q(0),
],
q(Modi) => [
- q(0099),
+ q(0101),
q(1),
],
q(Mong) => [
- q(0100),
+ q(0102),
q(0),
],
q(Moon) => [
- q(0101),
+ q(0103),
q(1),
],
q(Mroo) => [
- q(0102),
+ q(0104),
q(1),
],
q(Mtei) => [
- q(0103),
+ q(0105),
q(1),
],
q(Mult) => [
- q(0104),
+ q(0106),
q(0),
],
q(Mymr) => [
- q(0105),
+ q(0107),
q(1),
],
q(Narb) => [
- q(0106),
+ q(0108),
q(1),
],
q(Nbat) => [
- q(0107),
+ q(0109),
q(0),
],
+ q(Newa) => [
+ q(0110),
+ q(1),
+ ],
q(Nkgb) => [
- q(0108),
+ q(0111),
q(1),
],
q(Nkoo) => [
- q(0109),
+ q(0112),
q(0),
],
q(Nshu) => [
- q(0110),
+ q(0113),
q(0),
],
q(Ogam) => [
- q(0111),
+ q(0114),
q(0),
],
q(Olck) => [
- q(0112),
+ q(0115),
q(1),
],
q(Orkh) => [
- q(0113),
+ q(0116),
q(1),
],
q(Orya) => [
- q(0114),
+ q(0117),
q(0),
],
q(Osge) => [
- q(0115),
+ q(0118),
q(0),
],
q(Osma) => [
- q(0116),
+ q(0119),
q(0),
],
q(Palm) => [
- q(0117),
+ q(0120),
q(0),
],
q(Pauc) => [
- q(0118),
+ q(0121),
q(0),
],
q(Perm) => [
- q(0119),
+ q(0122),
q(0),
],
q(Phag) => [
- q(0120),
+ q(0123),
q(0),
],
q(Phli) => [
- q(0121),
+ q(0124),
q(0),
],
q(Phlp) => [
- q(0122),
+ q(0125),
q(0),
],
q(Phlv) => [
- q(0123),
+ q(0126),
q(0),
],
q(Phnx) => [
- q(0124),
+ q(0127),
+ q(0),
+ ],
+ q(Piqd) => [
+ q(0129),
q(0),
],
q(Plrd) => [
- q(0125),
+ q(0128),
q(1),
],
q(Prti) => [
- q(0126),
+ q(0130),
q(0),
],
q(Qaaa) => [
- q(0127),
+ q(0131),
q(0),
],
q(Qabx) => [
- q(0128),
+ q(0132),
q(0),
],
q(Rjng) => [
- q(0129),
+ q(0133),
q(1),
],
q(Roro) => [
- q(0130),
+ q(0134),
q(0),
],
q(Runr) => [
- q(0131),
+ q(0135),
q(0),
],
q(Samr) => [
- q(0132),
+ q(0136),
q(0),
],
q(Sara) => [
- q(0133),
+ q(0137),
q(0),
],
q(Sarb) => [
- q(0134),
+ q(0138),
q(0),
],
q(Saur) => [
- q(0135),
+ q(0139),
q(0),
],
q(Sgnw) => [
- q(0136),
+ q(0140),
q(0),
],
q(Shaw) => [
- q(0137),
+ q(0141),
q(1),
],
q(Shrd) => [
- q(0138),
+ q(0142),
q(1),
],
q(Sidd) => [
- q(0139),
+ q(0143),
q(1),
],
q(Sind) => [
- q(0140),
+ q(0144),
q(1),
],
q(Sinh) => [
- q(0141),
+ q(0145),
q(0),
],
q(Sora) => [
- q(0142),
+ q(0146),
q(0),
],
q(Sund) => [
- q(0143),
+ q(0147),
q(0),
],
q(Sylo) => [
- q(0144),
+ q(0148),
q(0),
],
q(Syrc) => [
- q(0145),
+ q(0149),
q(0),
],
q(Syre) => [
- q(0146),
+ q(0150),
q(0),
],
q(Syrj) => [
- q(0147),
+ q(0151),
q(0),
],
q(Syrn) => [
- q(0148),
+ q(0152),
q(0),
],
q(Tagb) => [
- q(0149),
+ q(0153),
q(0),
],
q(Takr) => [
- q(0150),
+ q(0154),
q(1),
],
q(Tale) => [
- q(0151),
+ q(0155),
q(0),
],
q(Talu) => [
- q(0152),
+ q(0156),
q(0),
],
q(Taml) => [
- q(0153),
+ q(0157),
q(0),
],
q(Tang) => [
- q(0154),
+ q(0158),
q(0),
],
q(Tavt) => [
- q(0155),
+ q(0159),
q(0),
],
q(Telu) => [
- q(0156),
+ q(0160),
q(0),
],
q(Teng) => [
- q(0157),
+ q(0161),
q(0),
],
q(Tfng) => [
- q(0158),
+ q(0162),
q(1),
],
q(Tglg) => [
- q(0159),
+ q(0163),
q(1),
],
q(Thaa) => [
- q(0160),
+ q(0164),
q(0),
],
q(Thai) => [
- q(0161),
+ q(0165),
q(0),
],
q(Tibt) => [
- q(0162),
+ q(0166),
q(0),
],
q(Tirh) => [
- q(0163),
+ q(0167),
q(0),
],
q(Ugar) => [
- q(0164),
+ q(0168),
q(0),
],
q(Vaii) => [
- q(0165),
+ q(0169),
q(0),
],
q(Visp) => [
- q(0166),
+ q(0170),
q(0),
],
q(Wara) => [
- q(0167),
+ q(0171),
q(1),
],
q(Wole) => [
- q(0168),
+ q(0172),
q(0),
],
q(Xpeo) => [
- q(0169),
+ q(0173),
q(0),
],
q(Xsux) => [
- q(0170),
+ q(0174),
q(1),
],
q(Yiii) => [
- q(0171),
+ q(0175),
q(0),
],
q(Zinh) => [
- q(0172),
+ q(0176),
q(0),
],
q(Zmth) => [
- q(0173),
+ q(0177),
+ q(0),
+ ],
+ q(Zsye) => [
+ q(0178),
q(0),
],
q(Zsym) => [
- q(0174),
+ q(0179),
q(0),
],
},
q(num) => {
q(020) => [
- q(0170),
+ q(0174),
q(0),
],
q(030) => [
- q(0169),
+ q(0173),
q(0),
],
q(040) => [
- q(0164),
+ q(0168),
q(0),
],
q(050) => [
@@ -2354,47 +2429,47 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(080) => [
- q(0056),
+ q(0057),
q(0),
],
q(090) => [
- q(0094),
+ q(0096),
q(0),
],
q(095) => [
- q(0136),
+ q(0140),
q(0),
],
q(100) => [
- q(0097),
+ q(0099),
q(0),
],
q(101) => [
- q(0096),
+ q(0098),
q(0),
],
q(105) => [
- q(0134),
+ q(0138),
q(0),
],
q(106) => [
- q(0106),
+ q(0108),
q(0),
],
q(115) => [
- q(0124),
+ q(0127),
q(0),
],
q(116) => [
- q(0089),
+ q(0091),
q(0),
],
q(120) => [
- q(0158),
+ q(0162),
q(0),
],
q(123) => [
- q(0132),
+ q(0136),
q(0),
],
q(124) => [
@@ -2402,31 +2477,31 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(125) => [
- q(0054),
+ q(0055),
q(0),
],
q(126) => [
- q(0117),
+ q(0120),
q(0),
],
q(127) => [
- q(0053),
+ q(0054),
q(0),
],
q(130) => [
- q(0126),
+ q(0130),
q(0),
],
q(131) => [
- q(0121),
+ q(0124),
q(0),
],
q(132) => [
- q(0122),
+ q(0125),
q(0),
],
q(133) => [
- q(0123),
+ q(0126),
q(0),
],
q(134) => [
@@ -2434,35 +2509,35 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(135) => [
- q(0145),
+ q(0149),
q(0),
],
q(136) => [
- q(0148),
+ q(0152),
q(0),
],
q(137) => [
- q(0147),
+ q(0151),
q(0),
],
q(138) => [
- q(0146),
+ q(0150),
q(0),
],
q(139) => [
- q(0092),
+ q(0094),
q(0),
],
q(140) => [
- q(0091),
+ q(0093),
q(0),
],
q(145) => [
- q(0100),
+ q(0102),
q(0),
],
q(159) => [
- q(0107),
+ q(0109),
q(0),
],
q(160) => [
@@ -2474,7 +2549,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(165) => [
- q(0109),
+ q(0112),
q(0),
],
q(166) => [
@@ -2482,19 +2557,19 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(170) => [
- q(0160),
+ q(0164),
q(0),
],
q(175) => [
- q(0113),
+ q(0116),
q(0),
],
q(176) => [
- q(0059),
+ q(0060),
q(0),
],
q(199) => [
- q(0102),
+ q(0104),
q(0),
],
q(200) => [
@@ -2506,7 +2581,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(202) => [
- q(0088),
+ q(0090),
q(0),
],
q(204) => [
@@ -2518,35 +2593,35 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(210) => [
- q(0061),
+ q(0062),
q(0),
],
q(211) => [
- q(0131),
+ q(0135),
q(0),
],
q(212) => [
- q(0111),
+ q(0114),
q(0),
],
q(215) => [
- q(0080),
+ q(0082),
q(0),
],
q(216) => [
- q(0079),
+ q(0081),
q(0),
],
q(217) => [
- q(0078),
+ q(0080),
q(0),
],
q(218) => [
- q(0101),
+ q(0103),
q(0),
],
q(219) => [
- q(0115),
+ q(0118),
q(0),
],
q(220) => [
@@ -2566,7 +2641,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(227) => [
- q(0119),
+ q(0122),
q(0),
],
q(230) => [
@@ -2594,31 +2669,35 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(260) => [
- q(0116),
+ q(0119),
q(0),
],
q(261) => [
- q(0112),
+ q(0115),
q(0),
],
q(262) => [
- q(0167),
+ q(0171),
q(0),
],
q(263) => [
- q(0118),
+ q(0121),
q(0),
],
q(280) => [
- q(0166),
+ q(0170),
q(0),
],
q(281) => [
- q(0137),
+ q(0141),
q(0),
],
q(282) => [
- q(0125),
+ q(0128),
+ q(0),
+ ],
+ q(284) => [
+ q(0063),
q(0),
],
q(285) => [
@@ -2626,19 +2705,19 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(286) => [
- q(0048),
+ q(0049),
q(0),
],
q(287) => [
- q(0073),
+ q(0075),
q(0),
],
q(288) => [
- q(0071),
+ q(0073),
q(0),
],
q(290) => [
- q(0157),
+ q(0161),
q(0),
],
q(291) => [
@@ -2646,7 +2725,11 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(292) => [
- q(0133),
+ q(0137),
+ q(0),
+ ],
+ q(293) => [
+ q(0129),
q(0),
],
q(300) => [
@@ -2654,11 +2737,11 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(302) => [
- q(0139),
+ q(0143),
q(0),
],
q(305) => [
- q(0067),
+ q(0069),
q(0),
],
q(310) => [
@@ -2666,7 +2749,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(314) => [
- q(0090),
+ q(0092),
q(0),
],
q(315) => [
@@ -2674,19 +2757,19 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(316) => [
- q(0144),
+ q(0148),
q(0),
],
q(317) => [
- q(0075),
+ q(0077),
q(0),
],
q(318) => [
- q(0140),
+ q(0144),
q(0),
],
q(319) => [
- q(0138),
+ q(0142),
q(0),
],
q(320) => [
@@ -2694,19 +2777,19 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(321) => [
- q(0150),
+ q(0154),
q(0),
],
q(322) => [
- q(0069),
+ q(0071),
q(0),
],
q(323) => [
- q(0104),
+ q(0106),
q(0),
],
q(324) => [
- q(0099),
+ q(0101),
q(0),
],
q(325) => [
@@ -2714,23 +2797,27 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(326) => [
- q(0163),
+ q(0167),
q(0),
],
q(327) => [
- q(0114),
+ q(0117),
q(0),
],
q(330) => [
- q(0162),
+ q(0166),
q(0),
],
q(331) => [
- q(0120),
+ q(0123),
q(0),
],
q(332) => [
- q(0093),
+ q(0095),
+ q(0),
+ ],
+ q(333) => [
+ q(0110),
q(0),
],
q(334) => [
@@ -2738,15 +2825,15 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(335) => [
- q(0082),
+ q(0084),
q(0),
],
q(336) => [
- q(0083),
+ q(0085),
q(0),
],
q(337) => [
- q(0103),
+ q(0105),
q(0),
],
q(338) => [
@@ -2754,7 +2841,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(340) => [
- q(0156),
+ q(0160),
q(0),
],
q(343) => [
@@ -2762,23 +2849,23 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(344) => [
- q(0135),
+ q(0139),
q(0),
],
q(345) => [
- q(0072),
+ q(0074),
q(0),
],
q(346) => [
- q(0153),
+ q(0157),
q(0),
],
q(347) => [
- q(0098),
+ q(0100),
q(0),
],
q(348) => [
- q(0141),
+ q(0145),
q(0),
],
q(349) => [
@@ -2786,35 +2873,35 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(350) => [
- q(0105),
+ q(0107),
q(0),
],
q(351) => [
- q(0076),
+ q(0078),
q(0),
],
q(352) => [
- q(0161),
+ q(0165),
q(0),
],
q(353) => [
- q(0151),
+ q(0155),
q(0),
],
q(354) => [
- q(0152),
+ q(0156),
q(0),
],
q(355) => [
- q(0068),
+ q(0070),
q(0),
],
q(356) => [
- q(0077),
+ q(0079),
q(0),
],
q(357) => [
- q(0065),
+ q(0067),
q(0),
],
q(358) => [
@@ -2822,7 +2909,7 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(359) => [
- q(0155),
+ q(0159),
q(0),
],
q(360) => [
@@ -2830,19 +2917,19 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(361) => [
- q(0062),
+ q(0064),
q(0),
],
q(362) => [
- q(0143),
+ q(0147),
q(0),
],
q(363) => [
- q(0129),
+ q(0133),
q(0),
],
q(364) => [
- q(0081),
+ q(0083),
q(0),
],
q(365) => [
@@ -2854,11 +2941,11 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(370) => [
- q(0159),
+ q(0163),
q(0),
],
q(371) => [
- q(0050),
+ q(0051),
q(0),
],
q(372) => [
@@ -2866,23 +2953,23 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(373) => [
- q(0149),
+ q(0153),
q(0),
],
q(398) => [
- q(0142),
+ q(0146),
q(0),
],
q(399) => [
- q(0086),
+ q(0088),
q(0),
],
q(400) => [
- q(0084),
+ q(0086),
q(0),
],
q(401) => [
- q(0085),
+ q(0087),
q(0),
],
q(403) => [
@@ -2890,23 +2977,23 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(410) => [
- q(0055),
+ q(0056),
q(0),
],
q(411) => [
- q(0066),
+ q(0068),
q(0),
],
q(412) => [
- q(0058),
+ q(0059),
q(0),
],
q(413) => [
- q(0063),
+ q(0065),
q(0),
],
q(420) => [
- q(0108),
+ q(0111),
q(0),
],
q(430) => [
@@ -2918,15 +3005,15 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(436) => [
- q(0074),
+ q(0076),
q(0),
],
q(437) => [
- q(0087),
+ q(0089),
q(0),
],
q(438) => [
- q(0095),
+ q(0097),
q(0),
],
q(439) => [
@@ -2942,47 +3029,51 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(450) => [
- q(0057),
+ q(0058),
q(0),
],
q(460) => [
- q(0171),
+ q(0175),
q(0),
],
q(470) => [
- q(0165),
+ q(0169),
q(0),
],
q(480) => [
- q(0168),
+ q(0172),
q(0),
],
q(499) => [
- q(0110),
+ q(0113),
q(0),
],
q(500) => [
- q(0049),
+ q(0050),
q(0),
],
q(501) => [
- q(0051),
+ q(0052),
q(0),
],
q(502) => [
- q(0052),
+ q(0053),
+ q(0),
+ ],
+ q(503) => [
+ q(0048),
q(0),
],
q(505) => [
- q(0070),
+ q(0072),
q(0),
],
q(510) => [
- q(0064),
+ q(0066),
q(0),
],
q(520) => [
- q(0154),
+ q(0158),
q(0),
],
q(550) => [
@@ -2994,11 +3085,11 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(610) => [
- q(0060),
+ q(0061),
q(0),
],
q(620) => [
- q(0130),
+ q(0134),
q(0),
],
q(755) => [
@@ -3006,23 +3097,27 @@ $Locale::Codes::Data{'script'}{'code2id'} = {
q(0),
],
q(900) => [
- q(0127),
+ q(0131),
q(0),
],
q(949) => [
- q(0128),
+ q(0132),
+ q(0),
+ ],
+ q(993) => [
+ q(0178),
q(0),
],
q(994) => [
- q(0172),
+ q(0176),
q(0),
],
q(995) => [
- q(0173),
+ q(0177),
q(0),
],
q(996) => [
- q(0174),
+ q(0179),
q(0),
],
},
@@ -3077,133 +3172,138 @@ $Locale::Codes::Data{'script'}{'id2code'} = {
q(0045) => q(Grek),
q(0046) => q(Gujr),
q(0047) => q(Guru),
- q(0048) => q(Hang),
- q(0049) => q(Hani),
- q(0050) => q(Hano),
- q(0051) => q(Hans),
- q(0052) => q(Hant),
- q(0053) => q(Hatr),
- q(0054) => q(Hebr),
- q(0055) => q(Hira),
- q(0056) => q(Hluw),
- q(0057) => q(Hmng),
- q(0058) => q(Hrkt),
- q(0059) => q(Hung),
- q(0060) => q(Inds),
- q(0061) => q(Ital),
- q(0062) => q(Java),
- q(0063) => q(Jpan),
- q(0064) => q(Jurc),
- q(0065) => q(Kali),
- q(0066) => q(Kana),
- q(0067) => q(Khar),
- q(0068) => q(Khmr),
- q(0069) => q(Khoj),
- q(0070) => q(Kitl),
- q(0071) => q(Kits),
- q(0072) => q(Knda),
- q(0073) => q(Kore),
- q(0074) => q(Kpel),
- q(0075) => q(Kthi),
- q(0076) => q(Lana),
- q(0077) => q(Laoo),
- q(0078) => q(Latf),
- q(0079) => q(Latg),
- q(0080) => q(Latn),
- q(0081) => q(Leke),
- q(0082) => q(Lepc),
- q(0083) => q(Limb),
- q(0084) => q(Lina),
- q(0085) => q(Linb),
- q(0086) => q(Lisu),
- q(0087) => q(Loma),
- q(0088) => q(Lyci),
- q(0089) => q(Lydi),
- q(0090) => q(Mahj),
- q(0091) => q(Mand),
- q(0092) => q(Mani),
- q(0093) => q(Marc),
- q(0094) => q(Maya),
- q(0095) => q(Mend),
- q(0096) => q(Merc),
- q(0097) => q(Mero),
- q(0098) => q(Mlym),
- q(0099) => q(Modi),
- q(0100) => q(Mong),
- q(0101) => q(Moon),
- q(0102) => q(Mroo),
- q(0103) => q(Mtei),
- q(0104) => q(Mult),
- q(0105) => q(Mymr),
- q(0106) => q(Narb),
- q(0107) => q(Nbat),
- q(0108) => q(Nkgb),
- q(0109) => q(Nkoo),
- q(0110) => q(Nshu),
- q(0111) => q(Ogam),
- q(0112) => q(Olck),
- q(0113) => q(Orkh),
- q(0114) => q(Orya),
- q(0115) => q(Osge),
- q(0116) => q(Osma),
- q(0117) => q(Palm),
- q(0118) => q(Pauc),
- q(0119) => q(Perm),
- q(0120) => q(Phag),
- q(0121) => q(Phli),
- q(0122) => q(Phlp),
- q(0123) => q(Phlv),
- q(0124) => q(Phnx),
- q(0125) => q(Plrd),
- q(0126) => q(Prti),
- q(0127) => q(Qaaa),
- q(0128) => q(Qabx),
- q(0129) => q(Rjng),
- q(0130) => q(Roro),
- q(0131) => q(Runr),
- q(0132) => q(Samr),
- q(0133) => q(Sara),
- q(0134) => q(Sarb),
- q(0135) => q(Saur),
- q(0136) => q(Sgnw),
- q(0137) => q(Shaw),
- q(0138) => q(Shrd),
- q(0139) => q(Sidd),
- q(0140) => q(Sind),
- q(0141) => q(Sinh),
- q(0142) => q(Sora),
- q(0143) => q(Sund),
- q(0144) => q(Sylo),
- q(0145) => q(Syrc),
- q(0146) => q(Syre),
- q(0147) => q(Syrj),
- q(0148) => q(Syrn),
- q(0149) => q(Tagb),
- q(0150) => q(Takr),
- q(0151) => q(Tale),
- q(0152) => q(Talu),
- q(0153) => q(Taml),
- q(0154) => q(Tang),
- q(0155) => q(Tavt),
- q(0156) => q(Telu),
- q(0157) => q(Teng),
- q(0158) => q(Tfng),
- q(0159) => q(Tglg),
- q(0160) => q(Thaa),
- q(0161) => q(Thai),
- q(0162) => q(Tibt),
- q(0163) => q(Tirh),
- q(0164) => q(Ugar),
- q(0165) => q(Vaii),
- q(0166) => q(Visp),
- q(0167) => q(Wara),
- q(0168) => q(Wole),
- q(0169) => q(Xpeo),
- q(0170) => q(Xsux),
- q(0171) => q(Yiii),
- q(0172) => q(Zinh),
- q(0173) => q(Zmth),
- q(0174) => q(Zsym),
+ q(0048) => q(Hanb),
+ q(0049) => q(Hang),
+ q(0050) => q(Hani),
+ q(0051) => q(Hano),
+ q(0052) => q(Hans),
+ q(0053) => q(Hant),
+ q(0054) => q(Hatr),
+ q(0055) => q(Hebr),
+ q(0056) => q(Hira),
+ q(0057) => q(Hluw),
+ q(0058) => q(Hmng),
+ q(0059) => q(Hrkt),
+ q(0060) => q(Hung),
+ q(0061) => q(Inds),
+ q(0062) => q(Ital),
+ q(0063) => q(Jamo),
+ q(0064) => q(Java),
+ q(0065) => q(Jpan),
+ q(0066) => q(Jurc),
+ q(0067) => q(Kali),
+ q(0068) => q(Kana),
+ q(0069) => q(Khar),
+ q(0070) => q(Khmr),
+ q(0071) => q(Khoj),
+ q(0072) => q(Kitl),
+ q(0073) => q(Kits),
+ q(0074) => q(Knda),
+ q(0075) => q(Kore),
+ q(0076) => q(Kpel),
+ q(0077) => q(Kthi),
+ q(0078) => q(Lana),
+ q(0079) => q(Laoo),
+ q(0080) => q(Latf),
+ q(0081) => q(Latg),
+ q(0082) => q(Latn),
+ q(0083) => q(Leke),
+ q(0084) => q(Lepc),
+ q(0085) => q(Limb),
+ q(0086) => q(Lina),
+ q(0087) => q(Linb),
+ q(0088) => q(Lisu),
+ q(0089) => q(Loma),
+ q(0090) => q(Lyci),
+ q(0091) => q(Lydi),
+ q(0092) => q(Mahj),
+ q(0093) => q(Mand),
+ q(0094) => q(Mani),
+ q(0095) => q(Marc),
+ q(0096) => q(Maya),
+ q(0097) => q(Mend),
+ q(0098) => q(Merc),
+ q(0099) => q(Mero),
+ q(0100) => q(Mlym),
+ q(0101) => q(Modi),
+ q(0102) => q(Mong),
+ q(0103) => q(Moon),
+ q(0104) => q(Mroo),
+ q(0105) => q(Mtei),
+ q(0106) => q(Mult),
+ q(0107) => q(Mymr),
+ q(0108) => q(Narb),
+ q(0109) => q(Nbat),
+ q(0110) => q(Newa),
+ q(0111) => q(Nkgb),
+ q(0112) => q(Nkoo),
+ q(0113) => q(Nshu),
+ q(0114) => q(Ogam),
+ q(0115) => q(Olck),
+ q(0116) => q(Orkh),
+ q(0117) => q(Orya),
+ q(0118) => q(Osge),
+ q(0119) => q(Osma),
+ q(0120) => q(Palm),
+ q(0121) => q(Pauc),
+ q(0122) => q(Perm),
+ q(0123) => q(Phag),
+ q(0124) => q(Phli),
+ q(0125) => q(Phlp),
+ q(0126) => q(Phlv),
+ q(0127) => q(Phnx),
+ q(0128) => q(Plrd),
+ q(0129) => q(Piqd),
+ q(0130) => q(Prti),
+ q(0131) => q(Qaaa),
+ q(0132) => q(Qabx),
+ q(0133) => q(Rjng),
+ q(0134) => q(Roro),
+ q(0135) => q(Runr),
+ q(0136) => q(Samr),
+ q(0137) => q(Sara),
+ q(0138) => q(Sarb),
+ q(0139) => q(Saur),
+ q(0140) => q(Sgnw),
+ q(0141) => q(Shaw),
+ q(0142) => q(Shrd),
+ q(0143) => q(Sidd),
+ q(0144) => q(Sind),
+ q(0145) => q(Sinh),
+ q(0146) => q(Sora),
+ q(0147) => q(Sund),
+ q(0148) => q(Sylo),
+ q(0149) => q(Syrc),
+ q(0150) => q(Syre),
+ q(0151) => q(Syrj),
+ q(0152) => q(Syrn),
+ q(0153) => q(Tagb),
+ q(0154) => q(Takr),
+ q(0155) => q(Tale),
+ q(0156) => q(Talu),
+ q(0157) => q(Taml),
+ q(0158) => q(Tang),
+ q(0159) => q(Tavt),
+ q(0160) => q(Telu),
+ q(0161) => q(Teng),
+ q(0162) => q(Tfng),
+ q(0163) => q(Tglg),
+ q(0164) => q(Thaa),
+ q(0165) => q(Thai),
+ q(0166) => q(Tibt),
+ q(0167) => q(Tirh),
+ q(0168) => q(Ugar),
+ q(0169) => q(Vaii),
+ q(0170) => q(Visp),
+ q(0171) => q(Wara),
+ q(0172) => q(Wole),
+ q(0173) => q(Xpeo),
+ q(0174) => q(Xsux),
+ q(0175) => q(Yiii),
+ q(0176) => q(Zinh),
+ q(0177) => q(Zmth),
+ q(0178) => q(Zsye),
+ q(0179) => q(Zsym),
},
q(num) => {
q(0001) => q(166),
@@ -3253,133 +3353,138 @@ $Locale::Codes::Data{'script'}{'id2code'} = {
q(0045) => q(200),
q(0046) => q(320),
q(0047) => q(310),
- q(0048) => q(286),
- q(0049) => q(500),
- q(0050) => q(371),
- q(0051) => q(501),
- q(0052) => q(502),
- q(0053) => q(127),
- q(0054) => q(125),
- q(0055) => q(410),
- q(0056) => q(080),
- q(0057) => q(450),
- q(0058) => q(412),
- q(0059) => q(176),
- q(0060) => q(610),
- q(0061) => q(210),
- q(0062) => q(361),
- q(0063) => q(413),
- q(0064) => q(510),
- q(0065) => q(357),
- q(0066) => q(411),
- q(0067) => q(305),
- q(0068) => q(355),
- q(0069) => q(322),
- q(0070) => q(505),
- q(0071) => q(288),
- q(0072) => q(345),
- q(0073) => q(287),
- q(0074) => q(436),
- q(0075) => q(317),
- q(0076) => q(351),
- q(0077) => q(356),
- q(0078) => q(217),
- q(0079) => q(216),
- q(0080) => q(215),
- q(0081) => q(364),
- q(0082) => q(335),
- q(0083) => q(336),
- q(0084) => q(400),
- q(0085) => q(401),
- q(0086) => q(399),
- q(0087) => q(437),
- q(0088) => q(202),
- q(0089) => q(116),
- q(0090) => q(314),
- q(0091) => q(140),
- q(0092) => q(139),
- q(0093) => q(332),
- q(0094) => q(090),
- q(0095) => q(438),
- q(0096) => q(101),
- q(0097) => q(100),
- q(0098) => q(347),
- q(0099) => q(324),
- q(0100) => q(145),
- q(0101) => q(218),
- q(0102) => q(199),
- q(0103) => q(337),
- q(0104) => q(323),
- q(0105) => q(350),
- q(0106) => q(106),
- q(0107) => q(159),
- q(0108) => q(420),
- q(0109) => q(165),
- q(0110) => q(499),
- q(0111) => q(212),
- q(0112) => q(261),
- q(0113) => q(175),
- q(0114) => q(327),
- q(0115) => q(219),
- q(0116) => q(260),
- q(0117) => q(126),
- q(0118) => q(263),
- q(0119) => q(227),
- q(0120) => q(331),
- q(0121) => q(131),
- q(0122) => q(132),
- q(0123) => q(133),
- q(0124) => q(115),
- q(0125) => q(282),
- q(0126) => q(130),
- q(0127) => q(900),
- q(0128) => q(949),
- q(0129) => q(363),
- q(0130) => q(620),
- q(0131) => q(211),
- q(0132) => q(123),
- q(0133) => q(292),
- q(0134) => q(105),
- q(0135) => q(344),
- q(0136) => q(095),
- q(0137) => q(281),
- q(0138) => q(319),
- q(0139) => q(302),
- q(0140) => q(318),
- q(0141) => q(348),
- q(0142) => q(398),
- q(0143) => q(362),
- q(0144) => q(316),
- q(0145) => q(135),
- q(0146) => q(138),
- q(0147) => q(137),
- q(0148) => q(136),
- q(0149) => q(373),
- q(0150) => q(321),
- q(0151) => q(353),
- q(0152) => q(354),
- q(0153) => q(346),
- q(0154) => q(520),
- q(0155) => q(359),
- q(0156) => q(340),
- q(0157) => q(290),
- q(0158) => q(120),
- q(0159) => q(370),
- q(0160) => q(170),
- q(0161) => q(352),
- q(0162) => q(330),
- q(0163) => q(326),
- q(0164) => q(040),
- q(0165) => q(470),
- q(0166) => q(280),
- q(0167) => q(262),
- q(0168) => q(480),
- q(0169) => q(030),
- q(0170) => q(020),
- q(0171) => q(460),
- q(0172) => q(994),
- q(0173) => q(995),
- q(0174) => q(996),
+ q(0048) => q(503),
+ q(0049) => q(286),
+ q(0050) => q(500),
+ q(0051) => q(371),
+ q(0052) => q(501),
+ q(0053) => q(502),
+ q(0054) => q(127),
+ q(0055) => q(125),
+ q(0056) => q(410),
+ q(0057) => q(080),
+ q(0058) => q(450),
+ q(0059) => q(412),
+ q(0060) => q(176),
+ q(0061) => q(610),
+ q(0062) => q(210),
+ q(0063) => q(284),
+ q(0064) => q(361),
+ q(0065) => q(413),
+ q(0066) => q(510),
+ q(0067) => q(357),
+ q(0068) => q(411),
+ q(0069) => q(305),
+ q(0070) => q(355),
+ q(0071) => q(322),
+ q(0072) => q(505),
+ q(0073) => q(288),
+ q(0074) => q(345),
+ q(0075) => q(287),
+ q(0076) => q(436),
+ q(0077) => q(317),
+ q(0078) => q(351),
+ q(0079) => q(356),
+ q(0080) => q(217),
+ q(0081) => q(216),
+ q(0082) => q(215),
+ q(0083) => q(364),
+ q(0084) => q(335),
+ q(0085) => q(336),
+ q(0086) => q(400),
+ q(0087) => q(401),
+ q(0088) => q(399),
+ q(0089) => q(437),
+ q(0090) => q(202),
+ q(0091) => q(116),
+ q(0092) => q(314),
+ q(0093) => q(140),
+ q(0094) => q(139),
+ q(0095) => q(332),
+ q(0096) => q(090),
+ q(0097) => q(438),
+ q(0098) => q(101),
+ q(0099) => q(100),
+ q(0100) => q(347),
+ q(0101) => q(324),
+ q(0102) => q(145),
+ q(0103) => q(218),
+ q(0104) => q(199),
+ q(0105) => q(337),
+ q(0106) => q(323),
+ q(0107) => q(350),
+ q(0108) => q(106),
+ q(0109) => q(159),
+ q(0110) => q(333),
+ q(0111) => q(420),
+ q(0112) => q(165),
+ q(0113) => q(499),
+ q(0114) => q(212),
+ q(0115) => q(261),
+ q(0116) => q(175),
+ q(0117) => q(327),
+ q(0118) => q(219),
+ q(0119) => q(260),
+ q(0120) => q(126),
+ q(0121) => q(263),
+ q(0122) => q(227),
+ q(0123) => q(331),
+ q(0124) => q(131),
+ q(0125) => q(132),
+ q(0126) => q(133),
+ q(0127) => q(115),
+ q(0128) => q(282),
+ q(0129) => q(293),
+ q(0130) => q(130),
+ q(0131) => q(900),
+ q(0132) => q(949),
+ q(0133) => q(363),
+ q(0134) => q(620),
+ q(0135) => q(211),
+ q(0136) => q(123),
+ q(0137) => q(292),
+ q(0138) => q(105),
+ q(0139) => q(344),
+ q(0140) => q(095),
+ q(0141) => q(281),
+ q(0142) => q(319),
+ q(0143) => q(302),
+ q(0144) => q(318),
+ q(0145) => q(348),
+ q(0146) => q(398),
+ q(0147) => q(362),
+ q(0148) => q(316),
+ q(0149) => q(135),
+ q(0150) => q(138),
+ q(0151) => q(137),
+ q(0152) => q(136),
+ q(0153) => q(373),
+ q(0154) => q(321),
+ q(0155) => q(353),
+ q(0156) => q(354),
+ q(0157) => q(346),
+ q(0158) => q(520),
+ q(0159) => q(359),
+ q(0160) => q(340),
+ q(0161) => q(290),
+ q(0162) => q(120),
+ q(0163) => q(370),
+ q(0164) => q(170),
+ q(0165) => q(352),
+ q(0166) => q(330),
+ q(0167) => q(326),
+ q(0168) => q(040),
+ q(0169) => q(470),
+ q(0170) => q(280),
+ q(0171) => q(262),
+ q(0172) => q(480),
+ q(0173) => q(030),
+ q(0174) => q(020),
+ q(0175) => q(460),
+ q(0176) => q(994),
+ q(0177) => q(995),
+ q(0178) => q(993),
+ q(0179) => q(996),
},
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm b/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm
index 89a0f4718b9..d5456130fb6 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Codes/Script_Retired.pm
@@ -3,7 +3,7 @@ Locale::Codes::Script_Retired;
# This file was automatically generated. Any changes to this file will
# be lost the next time 'deprecate_codes' is run.
-# Generated on: Tue Dec 1 14:45:28 EST 2015
+# Generated on: Fri Nov 18 09:22:54 EST 2016
use strict;
require 5.006;
@@ -11,7 +11,7 @@ use warnings;
use utf8;
our($VERSION);
-$VERSION='3.37';
+$VERSION='3.42';
$Locale::Codes::Retired{'script'}{'alpha'}{'code'} = {
};
diff --git a/Master/tlpkg/tlperl/lib/Locale/Country.pm b/Master/tlpkg/tlperl/lib/Locale/Country.pm
index 4c4d7c198fd..24e805cebe8 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Country.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Country.pm
@@ -1,7 +1,7 @@
package Locale::Country;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -10,7 +10,7 @@ use warnings;
use Exporter;
our $VERSION;
-$VERSION='3.37';
+$VERSION='3.42';
our (@ISA,@EXPORT);
@@ -44,5 +44,5 @@ sub delete_country_code_alias { Locale::Codes::Country::delete_country_code_alia
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Country.pod b/Master/tlpkg/tlperl/lib/Locale/Country.pod
index ae36beb6014..e21726fd0d4 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Country.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Country.pod
@@ -70,6 +70,23 @@ The IANA is responsible for delegating management of the top level country
domains. The country domains are the two-letter (lowercase) codes from ISO 3166
with a few other additions.
+=item B<un-alpha-3, LOCALE_CODE_UN_ALPHA_3>
+
+=item B<un-numeric, LOCALE_CODE_UN_NUMERIC>
+
+The UN maintains a list of codes that is similar, but not identical, to the
+standard ISO 3166 lists. They maintain a 3-letter code (similar to alpha-3)
+and a numeric code (similar to numeric).
+
+=item B<genc-alpha-2, LOCALE_CODE_GENC_ALPHA_2>
+
+=item B<genc-alpha-3, LOCALE_CODE_GENC_ALPHA_3>
+
+=item B<genc-numeric, LOCALE_CODE_GENC_NUMERIC>
+
+The GENC codes are the US Government codes that replace the FIPS-11 codes.
+They are based on, but not identical to the standard ISO 3166 lists.
+
=back
NOTE: As of version 3.27, the FIPS code set is no longer supported. See the
@@ -143,12 +160,15 @@ Official source of the top-level domain names.
=item L<http://unstats.un.org/unsd/methods/m49/m49alpha.htm>
-The source of the official ISO 3166-1 three-letter codes and
-three-digit codes.
+The source of the UN codes.
+
+Previously, this table was treated as a source of the ISO 3166 data,
+but I found that the table was incomplete, so I stopped using it.
+Later, it was added back in as it's own list of codes.
+
+=item L<https://nsgreg.nga.mil/genc/discovery>
-For some reason, this table is incomplete! Several countries are
-missing from it, and I cannot find them anywhere on the UN site. I
-no longer use this as a source of data.
+The source of the GENC codes.
=item L<https://www.cia.gov/library/publications/the-world-factbook/appendix/print_appendix-d.html>
@@ -174,7 +194,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Currency.pm b/Master/tlpkg/tlperl/lib/Locale/Currency.pm
index c930ff964f5..7c01ebd9643 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Currency.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Currency.pm
@@ -1,7 +1,7 @@
package Locale::Currency;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -10,7 +10,7 @@ use warnings;
use Exporter;
our $VERSION;
-$VERSION='3.37';
+$VERSION='3.42';
our (@ISA,@EXPORT);
@@ -44,5 +44,5 @@ sub delete_currency_code_alias { Locale::Codes::Currency::delete_currency_code_a
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Currency.pod b/Master/tlpkg/tlperl/lib/Locale/Currency.pod
index 22cafafa273..768ea2dbb1d 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Currency.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Currency.pod
@@ -83,7 +83,7 @@ This is the set of three-digit numeric codes from ISO 4217.
=item B<Locale::Currency::add_currency_code_alias(CODE ,NEW_CODE [,CODESET])>
-=item B<Locale::Currency::delete_currency_code_alias( ODE [,CODESET])>
+=item B<Locale::Currency::delete_currency_code_alias( CODE [,CODESET])>
These routines are all documented in the L<Locale::Codes::API> man page.
@@ -118,7 +118,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001 Michael Hennecke
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Language.pm b/Master/tlpkg/tlperl/lib/Locale/Language.pm
index ab4d2145b05..3bffeddd6fd 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Language.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Language.pm
@@ -1,7 +1,7 @@
package Locale::Language;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -10,7 +10,7 @@ use warnings;
use Exporter;
our $VERSION;
-$VERSION='3.37';
+$VERSION='3.42';
our (@ISA,@EXPORT);
@@ -44,5 +44,5 @@ sub delete_language_code_alias { Locale::Codes::Language::delete_language_code_a
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Language.pod b/Master/tlpkg/tlperl/lib/Locale/Language.pod
index d7e4bd8bf8c..1dcde895e21 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Language.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Language.pod
@@ -129,7 +129,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Locale/Maketext.pm b/Master/tlpkg/tlperl/lib/Locale/Maketext.pm
index e73c149a068..36d0c055661 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Maketext.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Maketext.pm
@@ -1,4 +1,3 @@
-
package Locale::Maketext;
use strict;
use vars qw( @ISA $VERSION $MATCH_SUPERS $USING_LANGUAGE_TAGS
@@ -27,7 +26,7 @@ BEGIN {
}
-$VERSION = '1.26_01';
+$VERSION = '1.28';
@ISA = ();
$MATCH_SUPERS = 1;
@@ -138,6 +137,56 @@ sub fail_with { # an actual attribute method!
#--------------------------------------------------------------------------
+sub blacklist {
+ my ( $handle, @methods ) = @_;
+
+ unless ( defined $handle->{'blacklist'} ) {
+ no strict 'refs';
+
+ # Don't let people call methods they're not supposed to from maketext.
+ # Explicitly exclude all methods in this package that start with an
+ # underscore on principle.
+ $handle->{'blacklist'} = {
+ map { $_ => 1 } (
+ qw/
+ blacklist
+ encoding
+ fail_with
+ failure_handler_auto
+ fallback_language_classes
+ fallback_languages
+ get_handle
+ init
+ language_tag
+ maketext
+ new
+ whitelist
+ /, grep { /^_/ } keys %{ __PACKAGE__ . "::" }
+ ),
+ };
+ }
+
+ if ( scalar @methods ) {
+ $handle->{'blacklist'} = { %{ $handle->{'blacklist'} }, map { $_ => 1 } @methods };
+ }
+
+ delete $handle->{'_external_lex_cache'};
+ return;
+}
+
+sub whitelist {
+ my ( $handle, @methods ) = @_;
+ if ( scalar @methods ) {
+ $handle->{'whitelist'} = {} unless defined $handle->{'whitelist'};
+ $handle->{'whitelist'} = { %{ $handle->{'whitelist'} }, map { $_ => 1 } @methods };
+ }
+
+ delete $handle->{'_external_lex_cache'};
+ return;
+}
+
+#--------------------------------------------------------------------------
+
sub failure_handler_auto {
# Meant to be used like:
# $handle->fail_with('failure_handler_auto')
@@ -179,6 +228,7 @@ sub new {
# Nothing fancy!
my $class = ref($_[0]) || $_[0];
my $handle = bless {}, $class;
+ $handle->blacklist;
$handle->init;
return $handle;
}
@@ -510,7 +560,7 @@ sub _compile {
# on strings that don't need compiling.
return \"$string_to_compile" if($string_to_compile !~ m/[\[~\]]/ms); # return a string ref if chars [~] are not in the string
- my $target = ref($_[0]) || $_[0];
+ my $handle = $_[0];
my(@code);
my(@c) = (''); # "chunks" -- scratch.
@@ -542,10 +592,10 @@ sub _compile {
# preceding literal.
if($in_group) {
if($1 eq '') {
- $target->_die_pointing($string_to_compile, 'Unterminated bracket group');
+ $handle->_die_pointing($string_to_compile, 'Unterminated bracket group');
}
else {
- $target->_die_pointing($string_to_compile, 'You can\'t nest bracket groups');
+ $handle->_die_pointing($string_to_compile, 'You can\'t nest bracket groups');
}
}
else {
@@ -629,13 +679,15 @@ sub _compile {
push @code, ' (';
}
elsif($m =~ /^\w+$/s
- # exclude anything fancy, especially fully-qualified module names
+ && !$handle->{'blacklist'}{$m}
+ && ( !defined $handle->{'whitelist'} || $handle->{'whitelist'}{$m} )
+ # exclude anything fancy and restrict to the whitelist/blacklist.
) {
push @code, ' $_[0]->' . $m . '(';
}
else {
# TODO: implement something? or just too icky to consider?
- $target->_die_pointing(
+ $handle->_die_pointing(
$string_to_compile,
"Can't use \"$m\" as a method name in bracket group",
2 + length($c[-1])
@@ -677,7 +729,7 @@ sub _compile {
push @c, '';
}
else {
- $target->_die_pointing($string_to_compile, q{Unbalanced ']'});
+ $handle->_die_pointing($string_to_compile, q{Unbalanced ']'});
}
}
@@ -762,8 +814,9 @@ sub _compile {
sub _die_pointing {
# This is used by _compile to throw a fatal error
- my $target = shift; # class name
- # ...leaving $_[0] the error-causing text, and $_[1] the error message
+ my $target = shift;
+ $target = ref($target) || $target; # class name
+ # ...leaving $_[0] the error-causing text, and $_[1] the error message
my $i = index($_[0], "\n");
diff --git a/Master/tlpkg/tlperl/lib/Locale/Maketext.pod b/Master/tlpkg/tlperl/lib/Locale/Maketext.pod
index a391b291b7e..564e5afd0b2 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Maketext.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Maketext.pod
@@ -307,6 +307,13 @@ interested in hearing about it.)
These two methods are discussed in the section "Controlling
Lookup Failure".
+=item $lh->blacklist(@list)
+
+=item $lh->whitelist(@list)
+
+These methods are discussed in the section "Bracket Notation
+Security".
+
=back
=head2 Utility Methods
@@ -861,6 +868,73 @@ I do not anticipate that you will need (or particularly want)
to nest bracket groups, but you are welcome to email me with
convincing (real-life) arguments to the contrary.
+=head1 BRACKET NOTATION SECURITY
+
+Locale::Maketext does not use any special syntax to differentiate
+bracket notation methods from normal class or object methods. This
+design makes it vulnerable to format string attacks whenever it is
+used to process strings provided by untrusted users.
+
+Locale::Maketext does support blacklist and whitelist functionality
+to limit which methods may be called as bracket notation methods.
+
+By default, Locale::Maketext blacklists all methods in the
+Locale::Maketext namespace that begin with the '_' character,
+and all methods which include Perl's namespace separator characters.
+
+The default blacklist for Locale::Maketext also prevents use of the
+following methods in bracket notation:
+
+ blacklist
+ encoding
+ fail_with
+ failure_handler_auto
+ fallback_language_classes
+ fallback_languages
+ get_handle
+ init
+ language_tag
+ maketext
+ new
+ whitelist
+
+This list can be extended by either blacklisting additional "known bad"
+methods, or whitelisting only "known good" methods.
+
+To prevent specific methods from being called in bracket notation, use
+the blacklist() method:
+
+ my $lh = MyProgram::L10N->get_handle();
+ $lh->blacklist(qw{my_internal_method my_other_method});
+ $lh->maketext('[my_internal_method]'); # dies
+
+To limit the allowed bracked notation methods to a specific list, use the
+whitelist() method:
+
+ my $lh = MyProgram::L10N->get_handle();
+ $lh->whitelist('numerate', 'numf');
+ $lh->maketext('[_1] [numerate, _1,shoe,shoes]', 12); # works
+ $lh->maketext('[my_internal_method]'); # dies
+
+The blacklist() and whitelist() methods extend their internal lists
+whenever they are called. To reset the blacklist or whitelist, create
+a new maketext object.
+
+ my $lh = MyProgram::L10N->get_handle();
+ $lh->blacklist('numerate');
+ $lh->blacklist('numf');
+ $lh->maketext('[_1] [numerate,_1,shoe,shoes]', 12); # dies
+
+For lexicons that use an internal cache, translations which have already
+been cached in their compiled form are not affected by subsequent changes
+to the whitelist or blacklist settings. Lexicons that use an external
+cache will have their cache cleared whenever the whitelist of blacklist
+setings change. The difference between the two types of caching is explained
+in the "Readonly Lexicons" section.
+
+Methods disallowed by the blacklist cannot be permitted by the
+whitelist.
+
=head1 AUTO LEXICONS
If maketext goes to look in an individual %Lexicon for an entry
diff --git a/Master/tlpkg/tlperl/lib/Locale/Script.pm b/Master/tlpkg/tlperl/lib/Locale/Script.pm
index 1ea0e188fe6..87e2d2d1298 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Script.pm
+++ b/Master/tlpkg/tlperl/lib/Locale/Script.pm
@@ -1,7 +1,7 @@
package Locale::Script;
# Copyright (C) 2001 Canon Research Centre Europe (CRE).
# Copyright (C) 2002-2009 Neil Bowers
-# Copyright (c) 2010-2015 Sullivan Beck
+# Copyright (c) 2010-2016 Sullivan Beck
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -10,7 +10,7 @@ use warnings;
use Exporter;
our $VERSION;
-$VERSION='3.37';
+$VERSION='3.42';
our (@ISA,@EXPORT);
@@ -44,5 +44,5 @@ sub delete_script_code_alias { Locale::Codes::Script::delete_script_code_alias(@
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
-# cperl-label-offset: -2
+# cperl-label-offset: 0
# End:
diff --git a/Master/tlpkg/tlperl/lib/Locale/Script.pod b/Master/tlpkg/tlperl/lib/Locale/Script.pod
index c06f1b16774..d555f7aa7f3 100644
--- a/Master/tlpkg/tlperl/lib/Locale/Script.pod
+++ b/Master/tlpkg/tlperl/lib/Locale/Script.pod
@@ -123,7 +123,7 @@ Currently maintained by Sullivan Beck (sbeck@cpan.org).
Copyright (c) 1997-2001 Canon Research Centre Europe (CRE).
Copyright (c) 2001-2010 Neil Bowers
- Copyright (c) 2010-2015 Sullivan Beck
+ Copyright (c) 2010-2016 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Math/BigFloat.pm b/Master/tlpkg/tlperl/lib/Math/BigFloat.pm
index 4c2c9b80f0a..bcbb2bfd2be 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigFloat.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigFloat.pm
@@ -1,27 +1,29 @@
package Math::BigFloat;
-#
+#
# Mike grinned. 'Two down, infinity to go' - Mike Nostrus in 'Before and After'
#
-# The following hash values are internally used:
-# _e : exponent (ref to $CALC object)
-# _m : mantissa (ref to $CALC object)
-# _es : sign of _e
-# sign : +,-,+inf,-inf, or "NaN" if not a number
-# _a : accuracy
-# _p : precision
+# The following hash values are used internally:
+# sign : "+", "-", "+inf", "-inf", or "NaN" if not a number
+# _m : mantissa ($CALC object)
+# _es : sign of _e
+# _e : exponent ($CALC object)
+# _a : accuracy
+# _p : precision
use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999715';
-$VERSION = eval $VERSION;
+use Carp ();
+use Math::BigInt ();
+
+our $VERSION = '1.999806';
require Exporter;
-our @ISA = qw/Math::BigInt/;
-our @EXPORT_OK = qw/bpi/;
+our @ISA = qw/Math::BigInt/;
+our @EXPORT_OK = qw/bpi/;
# $_trap_inf/$_trap_nan are internal and should never be accessed from outside
our ($AUTOLOAD, $accuracy, $precision, $div_scale, $round_mode, $rnd_mode,
@@ -30,20 +32,174 @@ our ($AUTOLOAD, $accuracy, $precision, $div_scale, $round_mode, $rnd_mode,
my $class = "Math::BigFloat";
use overload
- '<=>' => sub { my $rc = $_[2] ? ref($_[0])->bcmp($_[1], $_[0])
- : ref($_[0])->bcmp($_[0], $_[1]);
- $rc = 1 unless defined $rc;
- $rc <=> 0;
- },
-# we need '>=' to get things like "1 >= NaN" right:
- '>=' => sub { my $rc = $_[2] ? ref($_[0])->bcmp($_[1],$_[0])
- : ref($_[0])->bcmp($_[0],$_[1]);
- # if there was a NaN involved, return false
- return '' unless defined $rc;
- $rc >= 0;
- },
- 'int' => sub { $_[0]->as_number() }, # 'trunc' to bigint
-;
+
+ # overload key: with_assign
+
+ '+' => sub { $_[0] -> copy() -> badd($_[1]); },
+
+ '-' => sub { my $c = $_[0] -> copy();
+ $_[2] ? $c -> bneg() -> badd($_[1])
+ : $c -> bsub($_[1]); },
+
+ '*' => sub { $_[0] -> copy() -> bmul($_[1]); },
+
+ '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0])
+ : $_[0] -> copy() -> bdiv($_[1]); },
+
+ '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0])
+ : $_[0] -> copy() -> bmod($_[1]); },
+
+ '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0])
+ : $_[0] -> copy() -> bpow($_[1]); },
+
+ '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blsft($_[0])
+ : $_[0] -> copy() -> blsft($_[1]); },
+
+ '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> brsft($_[0])
+ : $_[0] -> copy() -> brsft($_[1]); },
+
+ # overload key: assign
+
+ '+=' => sub { $_[0]->badd($_[1]); },
+
+ '-=' => sub { $_[0]->bsub($_[1]); },
+
+ '*=' => sub { $_[0]->bmul($_[1]); },
+
+ '/=' => sub { scalar $_[0]->bdiv($_[1]); },
+
+ '%=' => sub { $_[0]->bmod($_[1]); },
+
+ '**=' => sub { $_[0]->bpow($_[1]); },
+
+
+ '<<=' => sub { $_[0]->blsft($_[1]); },
+
+ '>>=' => sub { $_[0]->brsft($_[1]); },
+
+# 'x=' => sub { },
+
+# '.=' => sub { },
+
+ # overload key: num_comparison
+
+ '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0])
+ : $_[0] -> blt($_[1]); },
+
+ '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0])
+ : $_[0] -> ble($_[1]); },
+
+ '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0])
+ : $_[0] -> bgt($_[1]); },
+
+ '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0])
+ : $_[0] -> bge($_[1]); },
+
+ '==' => sub { $_[0] -> beq($_[1]); },
+
+ '!=' => sub { $_[0] -> bne($_[1]); },
+
+ # overload key: 3way_comparison
+
+ '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]);
+ defined($cmp) && $_[2] ? -$cmp : $cmp; },
+
+ 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr()
+ : $_[0] -> bstr() cmp "$_[1]"; },
+
+ # overload key: str_comparison
+
+# 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0])
+# : $_[0] -> bstrlt($_[1]); },
+#
+# 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0])
+# : $_[0] -> bstrle($_[1]); },
+#
+# 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0])
+# : $_[0] -> bstrgt($_[1]); },
+#
+# 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0])
+# : $_[0] -> bstrge($_[1]); },
+#
+# 'eq' => sub { $_[0] -> bstreq($_[1]); },
+#
+# 'ne' => sub { $_[0] -> bstrne($_[1]); },
+
+ # overload key: binary
+
+ '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0])
+ : $_[0] -> copy() -> band($_[1]); },
+
+ '&=' => sub { $_[0] -> band($_[1]); },
+
+ '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0])
+ : $_[0] -> copy() -> bior($_[1]); },
+
+ '|=' => sub { $_[0] -> bior($_[1]); },
+
+ '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0])
+ : $_[0] -> copy() -> bxor($_[1]); },
+
+ '^=' => sub { $_[0] -> bxor($_[1]); },
+
+# '&.' => sub { },
+
+# '&.=' => sub { },
+
+# '|.' => sub { },
+
+# '|.=' => sub { },
+
+# '^.' => sub { },
+
+# '^.=' => sub { },
+
+ # overload key: unary
+
+ 'neg' => sub { $_[0] -> copy() -> bneg(); },
+
+# '!' => sub { },
+
+ '~' => sub { $_[0] -> copy() -> bnot(); },
+
+# '~.' => sub { },
+
+ # overload key: mutators
+
+ '++' => sub { $_[0] -> binc() },
+
+ '--' => sub { $_[0] -> bdec() },
+
+ # overload key: func
+
+ 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0])
+ : $_[0] -> copy() -> batan2($_[1]); },
+
+ 'cos' => sub { $_[0] -> copy() -> bcos(); },
+
+ 'sin' => sub { $_[0] -> copy() -> bsin(); },
+
+ 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); },
+
+ 'abs' => sub { $_[0] -> copy() -> babs(); },
+
+ 'log' => sub { $_[0] -> copy() -> blog(); },
+
+ 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); },
+
+ 'int' => sub { $_[0] -> copy() -> bint(); },
+
+ # overload key: conversion
+
+ 'bool' => sub { $_[0] -> is_zero() ? '' : 1; },
+
+ '""' => sub { $_[0] -> bstr(); },
+
+ '0+' => sub { $_[0] -> numify(); },
+
+ '=' => sub { $_[0]->copy(); },
+
+ ;
##############################################################################
# global constants, flags and assorted stuff
@@ -61,7 +217,7 @@ $div_scale = 40;
$upgrade = undef;
$downgrade = undef;
# the package we are using for our private parts, defaults to:
-# Math::BigInt->config()->{lib}
+# Math::BigInt->config('lib')
my $MBI = 'Math::BigInt::Calc';
# are NaNs ok? (otherwise it dies when encountering an NaN) set w/ config()
@@ -70,67 +226,134 @@ $_trap_nan = 0;
$_trap_inf = 0;
# constant for easier life
-my $nan = 'NaN';
+my $nan = 'NaN';
-my $IMPORT = 0; # was import() called yet? used to make require work
+my $IMPORT = 0; # was import() called yet? used to make require work
-# some digits of accuracy for blog(undef,10); which we use in blog() for speed
-my $LOG_10 =
+# some digits of accuracy for blog(undef, 10); which we use in blog() for speed
+my $LOG_10 =
'2.3025850929940456840179914546843642076011014886287729760333279009675726097';
my $LOG_10_A = length($LOG_10)-1;
# ditto for log(2)
-my $LOG_2 =
+my $LOG_2 =
'0.6931471805599453094172321214581765680755001343602552541206800094933936220';
my $LOG_2_A = length($LOG_2)-1;
-my $HALF = '0.5'; # made into an object if nec.
+my $HALF = '0.5'; # made into an object if nec.
##############################################################################
# the old code had $rnd_mode, so we need to support it, too
-sub TIESCALAR { my ($class) = @_; bless \$round_mode, $class; }
-sub FETCH { return $round_mode; }
-sub STORE { $rnd_mode = $_[0]->round_mode($_[1]); }
+sub TIESCALAR {
+ my ($class) = @_;
+ bless \$round_mode, $class;
+}
-BEGIN
- {
- # when someone sets $rnd_mode, we catch this and check the value to see
- # whether it is valid or not.
- $rnd_mode = 'even'; tie $rnd_mode, 'Math::BigFloat';
+sub FETCH {
+ return $round_mode;
+}
+
+sub STORE {
+ $rnd_mode = $_[0]->round_mode($_[1]);
+}
+
+BEGIN {
+ # when someone sets $rnd_mode, we catch this and check the value to see
+ # whether it is valid or not.
+ $rnd_mode = 'even';
+ tie $rnd_mode, 'Math::BigFloat';
+
+ # we need both of them in this package:
+ *as_int = \&as_number;
+}
+
+sub DESTROY {
+ # going through AUTOLOAD for every DESTROY is costly, avoid it by empty sub
+}
+
+sub AUTOLOAD {
+ # make fxxx and bxxx both work by selectively mapping fxxx() to MBF::bxxx()
+ my $name = $AUTOLOAD;
+
+ $name =~ s/(.*):://; # split package
+ my $c = $1 || $class;
+ no strict 'refs';
+ $c->import() if $IMPORT == 0;
+ if (!_method_alias($name)) {
+ if (!defined $name) {
+ # delayed load of Carp and avoid recursion
+ Carp::croak("$c: Can't call a method without name");
+ }
+ if (!_method_hand_up($name)) {
+ # delayed load of Carp and avoid recursion
+ Carp::croak("Can't call $c\-\>$name, not a valid method");
+ }
+ # try one level up, but subst. bxxx() for fxxx() since MBI only got bxxx()
+ $name =~ s/^f/b/;
+ return &{"Math::BigInt"."::$name"}(@_);
+ }
+ my $bname = $name;
+ $bname =~ s/^f/b/;
+ $c .= "::$name";
+ *{$c} = \&{$bname};
+ &{$c}; # uses @_
+}
- # we need both of them in this package:
- *as_int = \&as_number;
- }
-
##############################################################################
{
- # valid method aliases for AUTOLOAD
- my %methods = map { $_ => 1 }
- qw / fadd fsub fmul fdiv fround ffround fsqrt fmod fstr fsstr fpow fnorm
- fint facmp fcmp fzero fnan finf finc fdec ffac fneg
- fceil ffloor frsft flsft fone flog froot fexp
- /;
- # valid methods that can be handed up (for AUTOLOAD)
- my %hand_ups = map { $_ => 1 }
- qw / is_nan is_inf is_negative is_positive is_pos is_neg
- accuracy precision div_scale round_mode fabs fnot
- objectify upgrade downgrade
- bone binf bnan bzero
- bsub
- /;
-
- sub _method_alias { exists $methods{$_[0]||''}; }
- sub _method_hand_up { exists $hand_ups{$_[0]||''}; }
+ # valid method aliases for AUTOLOAD
+ my %methods = map { $_ => 1 }
+ qw / fadd fsub fmul fdiv fround ffround fsqrt fmod fstr fsstr fpow fnorm
+ fint facmp fcmp fzero fnan finf finc fdec ffac fneg
+ fceil ffloor frsft flsft fone flog froot fexp
+ /;
+ # valid methods that can be handed up (for AUTOLOAD)
+ my %hand_ups = map { $_ => 1 }
+ qw / is_nan is_inf is_negative is_positive is_pos is_neg
+ accuracy precision div_scale round_mode fabs fnot
+ objectify upgrade downgrade
+ bone binf bnan bzero
+ bsub
+ /;
+
+ sub _method_alias { exists $methods{$_[0]||''}; }
+ sub _method_hand_up { exists $hand_ups{$_[0]||''}; }
}
-##############################################################################
-# constructors
+sub DEBUG () { 0; }
+
+sub isa {
+ my ($self, $class) = @_;
+ return if $class =~ /^Math::BigInt/; # we aren't one of these
+ UNIVERSAL::isa($self, $class);
+}
+
+sub config {
+ # return (later set?) configuration data as hash ref
+ my $class = shift || 'Math::BigFloat';
+
+ if (@_ == 1 && ref($_[0]) ne 'HASH') {
+ my $cfg = $class->SUPER::config();
+ return $cfg->{$_[0]};
+ }
+
+ my $cfg = $class->SUPER::config(@_);
+
+ # now we need only to override the ones that are different from our parent
+ $cfg->{class} = $class;
+ $cfg->{with} = $MBI;
+ $cfg;
+}
+
+###############################################################################
+# Constructor methods
+###############################################################################
sub new {
- # Create a new BigFloat object from a string or another bigfloat object.
+ # Create a new Math::BigFloat object from a string or another bigfloat object.
# _e: exponent
# _m: mantissa
- # sign => sign ("+", "-", "+inf", "-inf", or "NaN"
+ # sign => ("+", "-", "+inf", "-inf", or "NaN")
my $self = shift;
my $selfref = ref $self;
@@ -141,8 +364,7 @@ sub new {
# avoid numify-calls by not using || on $wanted!
unless (defined $wanted) {
- require Carp;
- Carp::carp("Use of uninitialized value in new");
+ #Carp::carp("Use of uninitialized value in new");
return $self->bzero(@r);
}
@@ -185,1695 +407,1366 @@ sub new {
return $self->binf($sgn);
}
+ # Handle explicit NaNs (not the ones returned due to invalid input).
+
+ if ($wanted =~ /^\s*([+-]?)nan\s*\z/i) {
+ return $downgrade->new($wanted) if $downgrade;
+ $self = $class -> bnan();
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
+
+ # Handle hexadecimal numbers.
+
+ if ($wanted =~ /^\s*[+-]?0[Xx]/) {
+ $self = $class -> from_hex($wanted);
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
+
+ # Handle binary numbers.
+
+ if ($wanted =~ /^\s*[+-]?0[Bb]/) {
+ $self = $class -> from_bin($wanted);
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
+
# Shortcut for simple forms like '12' that have no trailing zeros.
if ($wanted =~ /^([+-]?)0*([1-9][0-9]*[1-9])$/) {
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
+ $self->{_e} = $MBI -> _zero();
+ $self->{_es} = '+';
$self->{sign} = $1 || '+';
- $self->{_m} = $MBI->_new($2);
- return $self->round(@r) if !$downgrade;
+ $self->{_m} = $MBI -> _new($2);
+ if (!$downgrade) {
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
}
- my ($mis,$miv,$mfv,$es,$ev) = Math::BigInt::_split($wanted);
- if (!ref $mis)
- {
- if ($_trap_nan)
- {
- require Carp;
- Carp::croak ("$wanted is not a number initialized to $class");
- }
-
- return $downgrade->bnan() if $downgrade;
-
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- $self->{_m} = $MBI->_zero();
- $self->{sign} = $nan;
- }
- else
- {
- # make integer from mantissa by adjusting exp, then convert to int
- $self->{_e} = $MBI->_new($$ev); # exponent
- $self->{_es} = $$es || '+';
- my $mantissa = "$$miv$$mfv"; # create mant.
- $mantissa =~ s/^0+(\d)/$1/; # strip leading zeros
- $self->{_m} = $MBI->_new($mantissa); # create mant.
-
- # 3.123E0 = 3123E-3, and 3.123E-2 => 3123E-5
- if (CORE::length($$mfv) != 0)
- {
- my $len = $MBI->_new( CORE::length($$mfv));
- ($self->{_e}, $self->{_es}) =
- _e_sub ($self->{_e}, $len, $self->{_es}, '+');
- }
- # we can only have trailing zeros on the mantissa if $$mfv eq ''
- else
- {
- # Use a regexp to count the trailing zeros in $$miv instead of _zeros()
- # because that is faster, especially when _m is not stored in base 10.
- my $zeros = 0; $zeros = CORE::length($1) if $$miv =~ /[1-9](0*)$/;
- if ($zeros != 0)
- {
- my $z = $MBI->_new($zeros);
- # turn '120e2' into '12e3'
- $MBI->_rsft ( $self->{_m}, $z, 10);
- ($self->{_e}, $self->{_es}) =
- _e_add ( $self->{_e}, $z, $self->{_es}, '+');
+ my ($mis, $miv, $mfv, $es, $ev) = Math::BigInt::_split($wanted);
+ if (!ref $mis) {
+ if ($_trap_nan) {
+ Carp::croak("$wanted is not a number initialized to $class");
+ }
+
+ return $downgrade->bnan() if $downgrade;
+
+ $self->{_e} = $MBI->_zero();
+ $self->{_es} = '+';
+ $self->{_m} = $MBI->_zero();
+ $self->{sign} = $nan;
+ } else {
+ # make integer from mantissa by adjusting exp, then convert to int
+ $self->{_e} = $MBI->_new($$ev); # exponent
+ $self->{_es} = $$es || '+';
+ my $mantissa = "$$miv$$mfv"; # create mant.
+ $mantissa =~ s/^0+(\d)/$1/; # strip leading zeros
+ $self->{_m} = $MBI->_new($mantissa); # create mant.
+
+ # 3.123E0 = 3123E-3, and 3.123E-2 => 3123E-5
+ if (CORE::length($$mfv) != 0) {
+ my $len = $MBI->_new(CORE::length($$mfv));
+ ($self->{_e}, $self->{_es}) =
+ _e_sub($self->{_e}, $len, $self->{_es}, '+');
+ }
+ # we can only have trailing zeros on the mantissa if $$mfv eq ''
+ else {
+ # Use a regexp to count the trailing zeros in $$miv instead of
+ # _zeros() because that is faster, especially when _m is not stored
+ # in base 10.
+ my $zeros = 0;
+ $zeros = CORE::length($1) if $$miv =~ /[1-9](0*)$/;
+ if ($zeros != 0) {
+ my $z = $MBI->_new($zeros);
+ # turn '120e2' into '12e3'
+ $self->{_m} = $MBI->_rsft($self->{_m}, $z, 10);
+ ($self->{_e}, $self->{_es}) =
+ _e_add($self->{_e}, $z, $self->{_es}, '+');
+ }
}
- }
- $self->{sign} = $$mis;
+ $self->{sign} = $$mis;
- # for something like 0Ey, set y to 0, and -0 => +0
- # Check $$miv for being '0' and $$mfv eq '', because otherwise _m could not
- # have become 0. That's faster than to call $MBI->_is_zero().
- $self->{sign} = '+', $self->{_e} = $MBI->_zero()
- if $$miv eq '0' and $$mfv eq '';
+ # for something like 0Ey, set y to 0, and -0 => +0
+ # Check $$miv for being '0' and $$mfv eq '', because otherwise _m could not
+ # have become 0. That's faster than to call $MBI->_is_zero().
+ $self->{sign} = '+', $self->{_e} = $MBI->_zero()
+ if $$miv eq '0' and $$mfv eq '';
- return $self->round(@r) if !$downgrade;
+ if (!$downgrade) {
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+ }
}
- # if downgrade, inf, NaN or integers go down
- if ($downgrade && $self->{_es} eq '+')
- {
- if ($MBI->_is_zero( $self->{_e} ))
- {
- return $downgrade->new($$mis . $MBI->_str( $self->{_m} ));
- }
- return $downgrade->new($self->bsstr());
+ # if downgrade, inf, NaN or integers go down
+
+ if ($downgrade && $self->{_es} eq '+') {
+ if ($MBI->_is_zero($self->{_e})) {
+ return $downgrade->new($$mis . $MBI->_str($self->{_m}));
+ }
+ return $downgrade->new($self->bsstr());
}
- $self->bnorm()->round(@r); # first normalize, then round
- }
+ $self->bnorm();
+ $self->round(@r) unless @r >= 2 && !defined $r[0] && !defined $r[1];
+ return $self;
+}
-sub copy {
+sub from_hex {
my $self = shift;
my $selfref = ref $self;
my $class = $selfref || $self;
- # If called as a class method, the object to copy is the next argument.
+ # Don't modify constant (read-only) objects.
- $self = shift() unless $selfref;
+ return if $selfref && $self->modify('from_hex');
- my $copy = bless {}, $class;
+ my $str = shift;
- $copy->{sign} = $self->{sign};
- $copy->{_es} = $self->{_es};
- $copy->{_m} = $MBI->_copy($self->{_m});
- $copy->{_e} = $MBI->_copy($self->{_e});
- $copy->{_a} = $self->{_a} if exists $self->{_a};
- $copy->{_p} = $self->{_p} if exists $self->{_p};
+ # If called as a class method, initialize a new object.
- return $copy;
-}
+ $self = $class -> bzero() unless $selfref;
-sub _bnan
- {
- # used by parent class bone() to initialize number to NaN
- my $self = shift;
-
- if ($_trap_nan)
- {
- require Carp;
- my $class = ref($self);
- Carp::croak ("Tried to set $self to NaN in $class\::_bnan()");
- }
-
- $IMPORT=1; # call our import only once
- $self->{_m} = $MBI->_zero();
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- }
-
-sub _binf
- {
- # used by parent class bone() to initialize number to +-inf
- my $self = shift;
-
- if ($_trap_inf)
- {
- require Carp;
- my $class = ref($self);
- Carp::croak ("Tried to set $self to +-inf in $class\::_binf()");
- }
-
- $IMPORT=1; # call our import only once
- $self->{_m} = $MBI->_zero();
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- }
-
-sub _bone
- {
- # used by parent class bone() to initialize number to 1
- my $self = shift;
- $IMPORT=1; # call our import only once
- $self->{_m} = $MBI->_one();
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- }
-
-sub _bzero
- {
- # used by parent class bzero() to initialize number to 0
- my $self = shift;
- $IMPORT=1; # call our import only once
- $self->{_m} = $MBI->_zero();
- $self->{_e} = $MBI->_zero();
- $self->{_es} = '+';
- }
-
-sub isa
- {
- my ($self,$class) = @_;
- return if $class =~ /^Math::BigInt/; # we aren't one of these
- UNIVERSAL::isa($self,$class);
- }
-
-sub config
- {
- # return (later set?) configuration data as hash ref
- my $class = shift || 'Math::BigFloat';
-
- if (@_ == 1 && ref($_[0]) ne 'HASH')
- {
- my $cfg = $class->SUPER::config();
- return $cfg->{$_[0]};
- }
+ if ($str =~ s/
+ ^
- my $cfg = $class->SUPER::config(@_);
+ # sign
+ ( [+-]? )
- # now we need only to override the ones that are different from our parent
- $cfg->{class} = $class;
- $cfg->{with} = $MBI;
- $cfg;
- }
+ # optional "hex marker"
+ (?: 0? x )?
-##############################################################################
-# string conversion
+ # significand using the hex digits 0..9 and a..f
+ (
+ [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
+ (?:
+ \.
+ (?: [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )* )?
+ )?
+ |
+ \.
+ [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
+ )
-sub bstr
- {
- # (ref to BFLOAT or num_str ) return num_str
- # Convert number from internal format to (non-scientific) string format.
- # internal format is always normalized (no leading zeros, "-0" => "+0")
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ # exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _ \d+ )* )
+ )?
- if ($x->{sign} !~ /^[+-]$/)
+ $
+ //x)
{
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
- }
+ my $s_sign = $1 || '+';
+ my $s_value = $2;
+ my $e_sign = $3 || '+';
+ my $e_value = $4 || '0';
+ $s_value =~ tr/_//d;
+ $e_value =~ tr/_//d;
- my $es = '0'; my $len = 1; my $cad = 0; my $dot = '.';
+ # The significand must be multiplied by 2 raised to this exponent.
- # $x is zero?
- my $not_zero = !($x->{sign} eq '+' && $MBI->_is_zero($x->{_m}));
- if ($not_zero)
- {
- $es = $MBI->_str($x->{_m});
- $len = CORE::length($es);
- my $e = $MBI->_num($x->{_e});
- $e = -$e if $x->{_es} eq '-';
- if ($e < 0)
- {
- $dot = '';
- # if _e is bigger than a scalar, the following will blow your memory
- if ($e <= -$len)
- {
- my $r = abs($e) - $len;
- $es = '0.'. ('0' x $r) . $es; $cad = -($len+$r);
- }
- else
- {
- substr($es,$e,0) = '.'; $cad = $MBI->_num($x->{_e});
- $cad = -$cad if $x->{_es} eq '-';
+ my $two_expon = $class -> new($e_value);
+ $two_expon -> bneg() if $e_sign eq '-';
+
+ # If there is a dot in the significand, remove it and adjust the
+ # exponent according to the number of digits in the fraction part of
+ # the significand. Since the digits in the significand are in base 16,
+ # but the exponent is only in base 2, multiply the exponent adjustment
+ # value by log(16) / log(2) = 4.
+
+ my $idx = index($s_value, '.');
+ if ($idx >= 0) {
+ substr($s_value, $idx, 1) = '';
+ $two_expon -= $class -> new(CORE::length($s_value))
+ -> bsub($idx)
+ -> bmul("4");
}
- }
- elsif ($e > 0)
- {
- # expand with zeros
- $es .= '0' x $e; $len += $e; $cad = 0;
- }
- } # if not zero
-
- $es = '-'.$es if $x->{sign} eq '-';
- # if set accuracy or precision, pad with zeros on the right side
- if ((defined $x->{_a}) && ($not_zero))
- {
- # 123400 => 6, 0.1234 => 4, 0.001234 => 4
- my $zeros = $x->{_a} - $cad; # cad == 0 => 12340
- $zeros = $x->{_a} - $len if $cad != $len;
- $es .= $dot.'0' x $zeros if $zeros > 0;
- }
- elsif ((($x->{_p} || 0) < 0))
- {
- # 123400 => 6, 0.1234 => 4, 0.001234 => 6
- my $zeros = -$x->{_p} + $cad;
- $es .= $dot.'0' x $zeros if $zeros > 0;
- }
- $es;
- }
-sub bsstr
- {
- # (ref to BFLOAT or num_str ) return num_str
- # Convert number from internal format to scientific string format.
- # internal format is always normalized (no leading zeros, "-0E0" => "+0E0")
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ $self -> {sign} = $s_sign;
+ $self -> {_m} = $MBI -> _from_hex('0x' . $s_value);
- if ($x->{sign} !~ /^[+-]$/)
- {
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
- }
- my $sep = 'e'.$x->{_es};
- my $sign = $x->{sign}; $sign = '' if $sign eq '+';
- $sign . $MBI->_str($x->{_m}) . $sep . $MBI->_str($x->{_e});
- }
-
-sub numify
- {
- # Make a Perl scalar number from a Math::BigFloat object.
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- if ($x -> is_nan()) {
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- return $inf - $inf;
- }
-
- if ($x -> is_inf()) {
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- return $x -> is_negative() ? -$inf : $inf;
- }
-
- # Create a string and let Perl's atoi()/atof() handle the rest.
- return 0 + $x -> bsstr();
- }
+ if ($two_expon > 0) {
+ my $factor = $class -> new("2") -> bpow($two_expon);
+ $self -> bmul($factor);
+ } elsif ($two_expon < 0) {
+ my $factor = $class -> new("0.5") -> bpow(-$two_expon);
+ $self -> bmul($factor);
+ }
-##############################################################################
-# public stuff (usually prefixed with "b")
-
-sub bneg
- {
- # (BINT or num_str) return BINT
- # negate number or make a negated number from string
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return $x if $x->modify('bneg');
-
- # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
- $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_m}));
- $x;
- }
-
-# tels 2001-08-04
-# XXX TODO this must be overwritten and return NaN for non-integer values
-# band(), bior(), bxor(), too
-#sub bnot
-# {
-# $class->SUPER::bnot($class,@_);
-# }
-
-sub bcmp
- {
- # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
-
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
+ return $self;
}
- return $upgrade->bcmp($x,$y) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ return $self->bnan();
+}
- # Handle all 'nan' cases.
+sub from_oct {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- return undef if ($x->{sign} eq $nan) || ($y->{sign} eq $nan);
+ # Don't modify constant (read-only) objects.
- # Handle all '+inf' and '-inf' cases.
+ return if $selfref && $self->modify('from_oct');
- return 0 if ($x->{sign} eq '+inf' && $y->{sign} eq '+inf' ||
- $x->{sign} eq '-inf' && $y->{sign} eq '-inf');
- return +1 if $x->{sign} eq '+inf'; # x = +inf and y < +inf
- return -1 if $x->{sign} eq '-inf'; # x = -inf and y > -inf
- return -1 if $y->{sign} eq '+inf'; # x < +inf and y = +inf
- return +1 if $y->{sign} eq '-inf'; # x > -inf and y = -inf
+ my $str = shift;
- # Handle all cases with opposite signs.
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
- return +1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # also does 0 <=> -y
- return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # also does -x <=> 0
+ if ($str =~ s/
+ ^
- # Handle all remaining zero cases.
+ # sign
+ ( [+-]? )
- my $xz = $x->is_zero();
- my $yz = $y->is_zero();
- return 0 if $xz && $yz; # 0 <=> 0
- return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y
- return +1 if $yz && $x->{sign} eq '+'; # +x <=> 0
+ # significand using the octal digits 0..7
+ (
+ [0-7]+ (?: _ [0-7]+ )*
+ (?:
+ \.
+ (?: [0-7]+ (?: _ [0-7]+ )* )?
+ )?
+ |
+ \.
+ [0-7]+ (?: _ [0-7]+ )*
+ )
- # Both arguments are now finite, non-zero numbers with the same sign.
+ # exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _ \d+ )* )
+ )?
- my $cmp;
+ $
+ //x)
+ {
+ my $s_sign = $1 || '+';
+ my $s_value = $2;
+ my $e_sign = $3 || '+';
+ my $e_value = $4 || '0';
+ $s_value =~ tr/_//d;
+ $e_value =~ tr/_//d;
- # The next step is to compare the exponents, but since each mantissa is an
- # integer of arbitrary value, the exponents must be normalized by the length
- # of the mantissas before we can compare them.
+ # The significand must be multiplied by 2 raised to this exponent.
- my $mxl = $MBI->_len($x->{_m});
- my $myl = $MBI->_len($y->{_m});
+ my $two_expon = $class -> new($e_value);
+ $two_expon -> bneg() if $e_sign eq '-';
- # If the mantissas have the same length, there is no point in normalizing the
- # exponents by the length of the mantissas, so treat that as a special case.
+ # If there is a dot in the significand, remove it and adjust the
+ # exponent according to the number of digits in the fraction part of
+ # the significand. Since the digits in the significand are in base 8,
+ # but the exponent is only in base 2, multiply the exponent adjustment
+ # value by log(8) / log(2) = 3.
- if ($mxl == $myl) {
+ my $idx = index($s_value, '.');
+ if ($idx >= 0) {
+ substr($s_value, $idx, 1) = '';
+ $two_expon -= $class -> new(CORE::length($s_value))
+ -> bsub($idx)
+ -> bmul("3");
+ }
- # First handle the two cases where the exponents have different signs.
+ $self -> {sign} = $s_sign;
+ $self -> {_m} = $MBI -> _from_oct($s_value);
- if ($x->{_es} eq '+' && $y->{_es} eq '-') {
- $cmp = +1;
- }
+ if ($two_expon > 0) {
+ my $factor = $class -> new("2") -> bpow($two_expon);
+ $self -> bmul($factor);
+ } elsif ($two_expon < 0) {
+ my $factor = $class -> new("0.5") -> bpow(-$two_expon);
+ $self -> bmul($factor);
+ }
- elsif ($x->{_es} eq '-' && $y->{_es} eq '+') {
- $cmp = -1;
- }
+ return $self;
+ }
- # Then handle the case where the exponents have the same sign.
+ return $self->bnan();
+}
- else {
- $cmp = $MBI->_acmp($x->{_e}, $y->{_e});
- $cmp = -$cmp if $x->{_es} eq '-';
- }
+sub from_bin {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- # Adjust for the sign, which is the same for x and y, and bail out if
- # we're done.
+ # Don't modify constant (read-only) objects.
- $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
- return $cmp if $cmp;
+ return if $selfref && $self->modify('from_bin');
- }
+ my $str = shift;
- # We must normalize each exponent by the length of the corresponding
- # mantissa. Life is a lot easier if we first make both exponents
- # non-negative. We do this by adding the same positive value to both
- # exponent. This is safe, because when comparing the exponents, only the
- # relative difference is important.
+ # If called as a class method, initialize a new object.
- my $ex;
- my $ey;
+ $self = $class -> bzero() unless $selfref;
- if ($x->{_es} eq '+') {
+ if ($str =~ s/
+ ^
- # If the exponent of x is >= 0 and the exponent of y is >= 0, there is no
- # need to do anything special.
+ # sign
+ ( [+-]? )
- if ($y->{_es} eq '+') {
- $ex = $MBI->_copy($x->{_e});
- $ey = $MBI->_copy($y->{_e});
- }
+ # optional "bin marker"
+ (?: 0? b )?
- # If the exponent of x is >= 0 and the exponent of y is < 0, add the
- # absolute value of the exponent of y to both.
+ # significand using the binary digits 0 and 1
+ (
+ [01]+ (?: _ [01]+ )*
+ (?:
+ \.
+ (?: [01]+ (?: _ [01]+ )* )?
+ )?
+ |
+ \.
+ [01]+ (?: _ [01]+ )*
+ )
- else {
- $ex = $MBI->_copy($x->{_e});
- $ex = $MBI->_add($ex, $y->{_e}); # ex + |ey|
- $ey = $MBI->_zero(); # -ex + |ey| = 0
- }
+ # exponent (power of 2) using decimal digits
+ (?:
+ [Pp]
+ ( [+-]? )
+ ( \d+ (?: _ \d+ )* )
+ )?
- } else {
+ $
+ //x)
+ {
+ my $s_sign = $1 || '+';
+ my $s_value = $2;
+ my $e_sign = $3 || '+';
+ my $e_value = $4 || '0';
+ $s_value =~ tr/_//d;
+ $e_value =~ tr/_//d;
- # If the exponent of x is < 0 and the exponent of y is >= 0, add the
- # absolute value of the exponent of x to both.
+ # The significand must be multiplied by 2 raised to this exponent.
- if ($y->{_es} eq '+') {
- $ex = $MBI->_zero(); # -ex + |ex| = 0
- $ey = $MBI->_copy($y->{_e});
- $ey = $MBI->_add($ey, $x->{_e}); # ey + |ex|
- }
+ my $two_expon = $class -> new($e_value);
+ $two_expon -> bneg() if $e_sign eq '-';
- # If the exponent of x is < 0 and the exponent of y is < 0, add the
- # absolute values of both exponents to both exponents.
+ # If there is a dot in the significand, remove it and adjust the
+ # exponent according to the number of digits in the fraction part of
+ # the significand.
- else {
- $ex = $MBI->_copy($y->{_e}); # -ex + |ey| + |ex| = |ey|
- $ey = $MBI->_copy($x->{_e}); # -ey + |ex| + |ey| = |ex|
- }
+ my $idx = index($s_value, '.');
+ if ($idx >= 0) {
+ substr($s_value, $idx, 1) = '';
+ $two_expon -= $class -> new(CORE::length($s_value))
+ -> bsub($idx);
+ }
- }
+ $self -> {sign} = $s_sign;
+ $self -> {_m} = $MBI -> _from_bin('0b' . $s_value);
- # Now we can normalize the exponents by adding lengths of the mantissas.
+ if ($two_expon > 0) {
+ my $factor = $class -> new("2") -> bpow($two_expon);
+ $self -> bmul($factor);
+ } elsif ($two_expon < 0) {
+ my $factor = $class -> new("0.5") -> bpow(-$two_expon);
+ $self -> bmul($factor);
+ }
- $MBI->_add($ex, $MBI->_new($mxl));
- $MBI->_add($ey, $MBI->_new($myl));
+ return $self;
+ }
- # We're done if the exponents are different.
+ return $self->bnan();
+}
- $cmp = $MBI->_acmp($ex, $ey);
- $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
- return $cmp if $cmp;
+sub bzero {
+ # create/assign '+0'
- # Compare the mantissas, but first normalize them by padding the shorter
- # mantissa with zeros (shift left) until it has the same length as the longer
- # mantissa.
+ if (@_ == 0) {
+ #Carp::carp("Using bone() as a function is deprecated;",
+ # " use bone() as a method instead");
+ unshift @_, __PACKAGE__;
+ }
- my $mx = $x->{_m};
- my $my = $y->{_m};
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- if ($mxl > $myl) {
- $my = $MBI->_lsft($MBI->_copy($my), $MBI->_new($mxl - $myl), 10);
- } elsif ($mxl < $myl) {
- $mx = $MBI->_lsft($MBI->_copy($mx), $MBI->_new($myl - $mxl), 10);
- }
+ $self->import() if $IMPORT == 0; # make require work
+ return if $selfref && $self->modify('bzero');
- $cmp = $MBI->_acmp($mx, $my);
- $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
- return $cmp;
+ $self = bless {}, $class unless $selfref;
- }
+ $self -> {sign} = '+';
+ $self -> {_m} = $MBI -> _zero();
+ $self -> {_es} = '+';
+ $self -> {_e} = $MBI -> _zero();
-sub bacmp
- {
- # Compares 2 values, ignoring their signs.
- # Returns one of undef, <0, =0, >0. (suitable for sort)
-
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
+ if (@_ > 0) {
+ if (@_ > 3) {
+ # call like: $x->bzero($a, $p, $r, $y);
+ ($self, $self->{_a}, $self->{_p}) = $self->_find_round_parameters(@_);
+ } else {
+ # call like: $x->bzero($a, $p, $r);
+ $self->{_a} = $_[0]
+ if !defined $self->{_a} || (defined $_[0] && $_[0] > $self->{_a});
+ $self->{_p} = $_[1]
+ if !defined $self->{_p} || (defined $_[1] && $_[1] > $self->{_p});
+ }
}
- return $upgrade->bacmp($x,$y) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ return $self;
+}
- # handle +-inf and NaN's
- if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/)
- {
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if ($x->is_inf() && $y->is_inf());
- return 1 if ($x->is_inf() && !$y->is_inf());
- return -1;
- }
-
- # shortcut
- my $xz = $x->is_zero();
- my $yz = $y->is_zero();
- return 0 if $xz && $yz; # 0 <=> 0
- return -1 if $xz && !$yz; # 0 <=> +y
- return 1 if $yz && !$xz; # +x <=> 0
-
- # adjust so that exponents are equal
- my $lxm = $MBI->_len($x->{_m});
- my $lym = $MBI->_len($y->{_m});
- my ($xes,$yes) = (1,1);
- $xes = -1 if $x->{_es} ne '+';
- $yes = -1 if $y->{_es} ne '+';
- # the numify somewhat limits our length, but makes it much faster
- my $lx = $lxm + $xes * $MBI->_num($x->{_e});
- my $ly = $lym + $yes * $MBI->_num($y->{_e});
- my $l = $lx - $ly;
- return $l <=> 0 if $l != 0;
-
- # lengths (corrected by exponent) are equal
- # so make mantissa equal-length by padding with zero (shift left)
- my $diff = $lxm - $lym;
- my $xm = $x->{_m}; # not yet copy it
- my $ym = $y->{_m};
- if ($diff > 0)
- {
- $ym = $MBI->_copy($y->{_m});
- $ym = $MBI->_lsft($ym, $MBI->_new($diff), 10);
+sub bone {
+ # Create or assign '+1' (or -1 if given sign '-').
+
+ if (@_ == 0 || (defined($_[0]) && ($_[0] eq '+' || $_[0] eq '-'))) {
+ #Carp::carp("Using bone() as a function is deprecated;",
+ # " use bone() as a method instead");
+ unshift @_, __PACKAGE__;
}
- elsif ($diff < 0)
- {
- $xm = $MBI->_copy($x->{_m});
- $xm = $MBI->_lsft($xm, $MBI->_new(-$diff), 10);
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self->import() if $IMPORT == 0; # make require work
+ return if $selfref && $self->modify('bone');
+
+ my $sign = shift;
+ $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+
+ $self = bless {}, $class unless $selfref;
+
+ $self -> {sign} = $sign;
+ $self -> {_m} = $MBI -> _one();
+ $self -> {_es} = '+';
+ $self -> {_e} = $MBI -> _zero();
+
+ if (@_ > 0) {
+ if (@_ > 3) {
+ # call like: $x->bone($sign, $a, $p, $r, $y, ...);
+ ($self, $self->{_a}, $self->{_p}) = $self->_find_round_parameters(@_);
+ } else {
+ # call like: $x->bone($sign, $a, $p, $r);
+ $self->{_a} = $_[0]
+ if ((!defined $self->{_a}) || (defined $_[0] && $_[0] > $self->{_a}));
+ $self->{_p} = $_[1]
+ if ((!defined $self->{_p}) || (defined $_[1] && $_[1] > $self->{_p}));
+ }
}
- $MBI->_acmp($xm,$ym);
- }
-sub badd
- {
- # add second arg (BFLOAT or string) to first (BFLOAT) (modifies first)
- # return result as BFLOAT
+ return $self;
+}
+
+sub binf {
+ # create/assign a '+inf' or '-inf'
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
+ if (@_ == 0 || (defined($_[0]) && !ref($_[0]) &&
+ $_[0] =~ /^\s*[+-](inf(inity)?)?\s*$/))
{
- ($self,$x,$y,@r) = objectify(2,@_);
+ #Carp::carp("Using binf() as a function is deprecated;",
+ # " use binf() as a method instead");
+ unshift @_, __PACKAGE__;
}
-
- return $x if $x->modify('badd');
- # inf and NaN handling
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
{
- # NaN first
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
- {
- # +inf++inf or -inf+-inf => same, rest is NaN
- return $x if $x->{sign} eq $y->{sign};
- return $x->bnan();
- }
- # +-inf + something => +inf; something +-inf => +-inf
- $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
- return $x;
+ no strict 'refs';
+ if (${"${class}::_trap_inf"}) {
+ Carp::croak("Tried to create +-inf in $class->binf()");
+ }
}
- return $upgrade->badd($x,$y,@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ $self->import() if $IMPORT == 0; # make require work
+ return if $selfref && $self->modify('binf');
- $r[3] = $y; # no push!
+ my $sign = shift;
+ $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
- # speed: no add for 0+y or x+0
- return $x->bround(@r) if $y->is_zero(); # x+0
- if ($x->is_zero()) # 0+y
- {
- # make copy, clobbering up x (modify in place!)
- $x->{_e} = $MBI->_copy($y->{_e});
- $x->{_es} = $y->{_es};
- $x->{_m} = $MBI->_copy($y->{_m});
- $x->{sign} = $y->{sign} || $nan;
- return $x->round(@r);
- }
-
- # take lower of the two e's and adapt m1 to it to match m2
- my $e = $y->{_e};
- $e = $MBI->_zero() if !defined $e; # if no BFLOAT?
- $e = $MBI->_copy($e); # make copy (didn't do it yet)
+ $self = bless {}, $class unless $selfref;
- my $es;
+ $self -> {sign} = $sign . 'inf';
+ $self -> {_m} = $MBI -> _zero();
+ $self -> {_es} = '+';
+ $self -> {_e} = $MBI -> _zero();
- ($e,$es) = _e_sub($e, $x->{_e}, $y->{_es} || '+', $x->{_es});
+ return $self;
+}
- my $add = $MBI->_copy($y->{_m});
+sub bnan {
+ # create/assign a 'NaN'
- if ($es eq '-') # < 0
- {
- $MBI->_lsft( $x->{_m}, $e, 10);
- ($x->{_e},$x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
+ if (@_ == 0) {
+ #Carp::carp("Using bnan() as a function is deprecated;",
+ # " use bnan() as a method instead");
+ unshift @_, __PACKAGE__;
}
- elsif (!$MBI->_is_zero($e)) # > 0
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
{
- $MBI->_lsft($add, $e, 10);
+ no strict 'refs';
+ if (${"${class}::_trap_nan"}) {
+ Carp::croak("Tried to create NaN in $class->bnan()");
+ }
}
- # else: both e are the same, so just leave them
- if ($x->{sign} eq $y->{sign})
+ $self->import() if $IMPORT == 0; # make require work
+ return if $selfref && $self->modify('bnan');
+
+ $self = bless {}, $class unless $selfref;
+
+ $self -> {sign} = $nan;
+ $self -> {_m} = $MBI -> _zero();
+ $self -> {_es} = '+';
+ $self -> {_e} = $MBI -> _zero();
+
+ return $self;
+}
+
+sub bpi {
+
+ # Called as Argument list
+ # --------- -------------
+ # Math::BigFloat->bpi() ("Math::BigFloat")
+ # Math::BigFloat->bpi(10) ("Math::BigFloat", 10)
+ # $x->bpi() ($x)
+ # $x->bpi(10) ($x, 10)
+ # Math::BigFloat::bpi() ()
+ # Math::BigFloat::bpi(10) (10)
+ #
+ # In ambiguous cases, we favour the OO-style, so the following case
+ #
+ # $n = Math::BigFloat->new("10");
+ # $x = Math::BigFloat->bpi($n);
+ #
+ # which gives an argument list with the single element $n, is resolved as
+ #
+ # $n->bpi();
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ my @r; # rounding paramters
+
+ # If bpi() is called as a function ...
+ #
+ # This cludge is necessary because we still support bpi() as a function. If
+ # bpi() is called with either no argument or one argument, and that one
+ # argument is either undefined or a scalar that looks like a number, then
+ # we assume bpi() is called as a function.
+
+ if (@_ == 0 &&
+ (defined($self) && !ref($self) && $self =~ /^\s*[+-]?\d/i)
+ ||
+ !defined($self))
{
- # add
- $x->{_m} = $MBI->_add($x->{_m}, $add);
+ $r[0] = $self;
+ $class = __PACKAGE__;
+ $self = $class -> bzero(@r); # initialize
}
- else
- {
- ($x->{_m}, $x->{sign}) =
- _e_add($x->{_m}, $add, $x->{sign}, $y->{sign});
+
+ # ... or if bpi() is called as a method ...
+
+ else {
+ @r = @_;
+ if ($selfref) { # bpi() called as instance method
+ return $self if $self -> modify('bpi');
+ } else { # bpi() called as class method
+ $self = $class -> bzero(@r); # initialize
+ }
}
- # delete trailing zeros, then round
- $x->bnorm()->round(@r);
- }
+ ($self, @r) = $self -> _find_round_parameters(@r);
-# sub bsub is inherited from Math::BigInt!
+ # The accuracy, i.e., the number of digits. Pi has one digit before the
+ # dot, so a precision of 4 digits is equivalent to an accuracy of 5 digits.
-sub binc
- {
- # increment arg by one
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ my $n = defined $r[0] ? $r[0]
+ : defined $r[1] ? 1 - $r[1]
+ : $self -> div_scale();
- return $x if $x->modify('binc');
+ my $rmode = defined $r[2] ? $r[2] : $self -> round_mode();
- if ($x->{_es} eq '-')
- {
- return $x->badd($self->bone(),@r); # digits after dot
- }
+ my $pi;
- if (!$MBI->_is_zero($x->{_e})) # _e == 0 for NaN, inf, -inf
- {
- # 1e2 => 100, so after the shift below _m has a '0' as last digit
- $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e},10); # 1e2 => 100
- $x->{_e} = $MBI->_zero(); # normalize
- $x->{_es} = '+';
- # we know that the last digit of $x will be '1' or '9', depending on the
- # sign
+ if ($n <= 1000) {
+
+ # 75 x 14 = 1050 digits
+
+ my $all_digits = <<EOF;
+314159265358979323846264338327950288419716939937510582097494459230781640628
+620899862803482534211706798214808651328230664709384460955058223172535940812
+848111745028410270193852110555964462294895493038196442881097566593344612847
+564823378678316527120190914564856692346034861045432664821339360726024914127
+372458700660631558817488152092096282925409171536436789259036001133053054882
+046652138414695194151160943305727036575959195309218611738193261179310511854
+807446237996274956735188575272489122793818301194912983367336244065664308602
+139494639522473719070217986094370277053921717629317675238467481846766940513
+200056812714526356082778577134275778960917363717872146844090122495343014654
+958537105079227968925892354201995611212902196086403441815981362977477130996
+051870721134999999837297804995105973173281609631859502445945534690830264252
+230825334468503526193118817101000313783875288658753320838142061717766914730
+359825349042875546873115956286388235378759375195778185778053217122680661300
+192787661119590921642019893809525720106548586327886593615338182796823030195
+EOF
+
+ # Should we round up?
+
+ my $round_up;
+
+ # From the string above, we need to extract the number of digits we
+ # want plus extra characters for the newlines.
+
+ my $nchrs = $n + int($n / 75);
+
+ # Extract the digits we want.
+
+ my $digits = substr($all_digits, 0, $nchrs);
+
+ # Find out whether we should round up or down. Since pi is a
+ # transcendental number, we only have to look at one digit after the
+ # last digit we want.
+
+ if ($rmode eq '+inf') {
+ $round_up = 1;
+ } elsif ($rmode eq 'trunc' || $rmode eq 'zero' || $rmode eq '-inf') {
+ $round_up = 0;
+ } else {
+ my $next_digit = substr($all_digits, $nchrs, 1);
+ $round_up = $next_digit lt '5' ? 0 : 1;
+ }
+
+ # Remove the newlines.
+
+ $digits =~ tr/0-9//cd;
+
+ # Now do the rounding. We could easily make the regex substitution
+ # handle all cases, but we avoid using the regex engine when it is
+ # simple to avoid it.
+
+ if ($round_up) {
+ my $last_digit = substr($digits, -1, 1);
+ if ($last_digit lt '9') {
+ substr($digits, -1, 1) = ++$last_digit;
+ } else {
+ $digits =~ s/([0-8])(9+)$/ ($1 + 1) . ("0" x CORE::length($2)) /e;
+ }
+ }
+
+ # Append the exponent and convert to an object.
+
+ $pi = Math::BigFloat -> new($digits . 'e-' . ($n - 1));
+
+ } else {
+
+ # For large accuracy, the arctan formulas become very inefficient with
+ # Math::BigFloat, so use Brent-Salamin (aka AGM or Gauss-Legendre).
+
+ # Use a few more digits in the intermediate computations.
+ my $nextra = 8;
+
+ $HALF = $class -> new($HALF) unless ref($HALF);
+ my ($an, $bn, $tn, $pn) = ($class -> bone, $HALF -> copy() -> bsqrt($n),
+ $HALF -> copy() -> bmul($HALF), $class -> bone);
+ while ($pn < $n) {
+ my $prev_an = $an -> copy();
+ $an -> badd($bn) -> bmul($HALF, $n);
+ $bn -> bmul($prev_an) -> bsqrt($n);
+ $prev_an -> bsub($an);
+ $tn -> bsub($pn * $prev_an * $prev_an);
+ $pn -> badd($pn);
+ }
+ $an -> badd($bn);
+ $an -> bmul($an, $n) -> bdiv(4 * $tn, $n);
+
+ $an -> round(@r);
+ $pi = $an;
}
- # now $x->{_e} == 0
- if ($x->{sign} eq '+')
- {
- $MBI->_inc($x->{_m});
- return $x->bnorm()->bround(@r);
+
+ if (defined $r[0]) {
+ $pi -> accuracy($r[0]);
+ } elsif (defined $r[1]) {
+ $pi -> precision($r[1]);
}
- elsif ($x->{sign} eq '-')
- {
- $MBI->_dec($x->{_m});
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # -1 +1 => -0 => +0
- return $x->bnorm()->bround(@r);
+
+ for my $key (qw/ sign _m _es _e _a _p /) {
+ $self -> {$key} = $pi -> {$key};
}
- # inf, nan handling etc
- $x->badd($self->bone(),@r); # badd() does round
- }
-sub bdec
- {
- # decrement arg by one
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ return $self;
+}
- return $x if $x->modify('bdec');
+sub copy {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- if ($x->{_es} eq '-')
- {
- return $x->badd($self->bone('-'),@r); # digits after dot
- }
+ # If called as a class method, the object to copy is the next argument.
- if (!$MBI->_is_zero($x->{_e}))
- {
- $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e},10); # 1e2 => 100
- $x->{_e} = $MBI->_zero(); # normalize
- $x->{_es} = '+';
+ $self = shift() unless $selfref;
+
+ my $copy = bless {}, $class;
+
+ $copy->{sign} = $self->{sign};
+ $copy->{_es} = $self->{_es};
+ $copy->{_m} = $MBI->_copy($self->{_m});
+ $copy->{_e} = $MBI->_copy($self->{_e});
+ $copy->{_a} = $self->{_a} if exists $self->{_a};
+ $copy->{_p} = $self->{_p} if exists $self->{_p};
+
+ return $copy;
+}
+
+sub as_number {
+ # return copy as a bigint representation of this Math::BigFloat number
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x if $x->modify('as_number');
+
+ if (!$x->isa('Math::BigFloat')) {
+ # if the object can as_number(), use it
+ return $x->as_number() if $x->can('as_number');
+ # otherwise, get us a float and then a number
+ $x = $x->can('as_float') ? $x->as_float() : $class->new(0+"$x");
}
- # now $x->{_e} == 0
- my $zero = $x->is_zero();
- # <= 0
- if (($x->{sign} eq '-') || $zero)
- {
- $MBI->_inc($x->{_m});
- $x->{sign} = '-' if $zero; # 0 => 1 => -1
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # -1 +1 => -0 => +0
- return $x->bnorm()->round(@r);
+
+ return Math::BigInt->binf($x->sign()) if $x->is_inf();
+ return Math::BigInt->bnan() if $x->is_nan();
+
+ my $z = $MBI->_copy($x->{_m});
+ if ($x->{_es} eq '-') { # < 0
+ $z = $MBI->_rsft($z, $x->{_e}, 10);
+ } elsif (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
}
- # > 0
- elsif ($x->{sign} eq '+')
- {
- $MBI->_dec($x->{_m});
- return $x->bnorm()->round(@r);
+ $z = Math::BigInt->new($x->{sign} . $MBI->_str($z));
+ $z;
+}
+
+###############################################################################
+# Boolean methods
+###############################################################################
+
+sub is_zero {
+ # return true if arg (BFLOAT or num_str) is zero
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ ($x->{sign} eq '+' && $MBI->_is_zero($x->{_m})) ? 1 : 0;
+}
+
+sub is_one {
+ # return true if arg (BFLOAT or num_str) is +1 or -1 if signis given
+ my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $sign = '+' if !defined $sign || $sign ne '-';
+
+ ($x->{sign} eq $sign &&
+ $MBI->_is_zero($x->{_e}) &&
+ $MBI->_is_one($x->{_m})) ? 1 : 0;
+}
+
+sub is_odd {
+ # return true if arg (BFLOAT or num_str) is odd or false if even
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
+ ($MBI->_is_zero($x->{_e})) &&
+ ($MBI->_is_odd($x->{_m}))) ? 1 : 0;
+}
+
+sub is_even {
+ # return true if arg (BINT or num_str) is even or false if odd
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
+ ($x->{_es} eq '+') && # 123.45 isn't
+ ($MBI->_is_even($x->{_m}))) ? 1 : 0; # but 1200 is
+}
+
+sub is_int {
+ # return true if arg (BFLOAT or num_str) is an integer
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ (($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
+ ($x->{_es} eq '+')) ? 1 : 0; # 1e-1 => no integer
+}
+
+###############################################################################
+# Comparison methods
+###############################################################################
+
+sub bcmp {
+ # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
+
+ # set up parameters
+ my ($class, $x, $y) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y) = objectify(2, @_);
}
- # inf, nan handling etc
- $x->badd($self->bone('-'),@r); # does round
- }
-sub DEBUG () { 0; }
+ return $upgrade->bcmp($x, $y) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
-sub blog
- {
- my ($self,$x,$base,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ # Handle all 'nan' cases.
- # If called as $x -> blog() or $x -> blog(undef), don't objectify the
- # undefined base, since undef signals that the base is Euler's number.
- #unless (ref($x) && !defined($base)) {
- # # objectify is costly, so avoid it
- # if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- # ($self,$x,$base,$a,$p,$r) = objectify(2,@_);
- # }
- #}
+ return undef if ($x->{sign} eq $nan) || ($y->{sign} eq $nan);
- return $x if $x->modify('blog');
+ # Handle all '+inf' and '-inf' cases.
- return $x -> bnan() if $x -> is_nan();
+ return 0 if ($x->{sign} eq '+inf' && $y->{sign} eq '+inf' ||
+ $x->{sign} eq '-inf' && $y->{sign} eq '-inf');
+ return +1 if $x->{sign} eq '+inf'; # x = +inf and y < +inf
+ return -1 if $x->{sign} eq '-inf'; # x = -inf and y > -inf
+ return -1 if $y->{sign} eq '+inf'; # x < +inf and y = +inf
+ return +1 if $y->{sign} eq '-inf'; # x > -inf and y = -inf
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r);
+ # Handle all cases with opposite signs.
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # P = undef
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- my $done = 0;
- if (defined $base) {
- $base = $self -> new($base) unless ref $base;
- if ($base -> is_nan() || $base -> is_one()) {
- $x -> bnan();
- $done = 1;
- } elsif ($base -> is_inf() || $base -> is_zero()) {
- if ($x -> is_inf() || $x -> is_zero()) {
- $x -> bnan();
- } else {
- $x -> bzero(@params);
- }
- $done = 1;
- } elsif ($base -> is_negative()) { # -inf < base < 0
- if ($x -> is_one()) { # x = 1
- $x -> bzero(@params);
- } elsif ($x == $base) {
- $x -> bone('+', @params); # x = base
- } else {
- $x -> bnan(); # otherwise
- }
- $done = 1;
- } elsif ($x == $base) {
- $x -> bone('+', @params); # 0 < base && 0 < x < inf
- $done = 1;
- }
- }
-
- # We now know that the base is either undefined or positive and finite.
-
- unless ($done) {
- if ($x -> is_inf()) { # x = +/-inf
- my $sign = defined $base && $base < 1 ? '-' : '+';
- $x -> binf($sign);
- $done = 1;
- } elsif ($x -> is_neg()) { # -inf < x < 0
- $x -> bnan();
- $done = 1;
- } elsif ($x -> is_one()) { # x = 1
- $x -> bzero(@params);
- $done = 1;
- } elsif ($x -> is_zero()) { # x = 0
- my $sign = defined $base && $base < 1 ? '+' : '-';
- $x -> binf($sign);
- $done = 1;
- }
- }
-
- if ($done) {
- if ($fallback) {
- # clear a/p after round, since user did not request it
- delete $x->{_a};
- delete $x->{_p};
+ return +1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # also does 0 <=> -y
+ return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # also does -x <=> 0
+
+ # Handle all remaining zero cases.
+
+ my $xz = $x->is_zero();
+ my $yz = $y->is_zero();
+ return 0 if $xz && $yz; # 0 <=> 0
+ return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y
+ return +1 if $yz && $x->{sign} eq '+'; # +x <=> 0
+
+ # Both arguments are now finite, non-zero numbers with the same sign.
+
+ my $cmp;
+
+ # The next step is to compare the exponents, but since each mantissa is an
+ # integer of arbitrary value, the exponents must be normalized by the length
+ # of the mantissas before we can compare them.
+
+ my $mxl = $MBI->_len($x->{_m});
+ my $myl = $MBI->_len($y->{_m});
+
+ # If the mantissas have the same length, there is no point in normalizing the
+ # exponents by the length of the mantissas, so treat that as a special case.
+
+ if ($mxl == $myl) {
+
+ # First handle the two cases where the exponents have different signs.
+
+ if ($x->{_es} eq '+' && $y->{_es} eq '-') {
+ $cmp = +1;
+ } elsif ($x->{_es} eq '-' && $y->{_es} eq '+') {
+ $cmp = -1;
}
- return $x;
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
- local $Math::BigFloat::downgrade = undef;
-
- # upgrade $x if $x is not a BigFloat (handle BigInt input)
- # XXX TODO: rebless!
- if (!$x->isa('Math::BigFloat'))
- {
- $x = Math::BigFloat->new($x);
- $self = ref($x);
- }
-
- $done = 0;
- # If the base is defined and an integer, try to calculate integer result
- # first. This is very fast, and in case the real result was found, we can
- # stop right here.
- if (defined $base && $base->is_int() && $x->is_int())
- {
- my $i = $MBI->_copy( $x->{_m} );
- $MBI->_lsft( $i, $x->{_e}, 10 ) unless $MBI->_is_zero($x->{_e});
- my $int = Math::BigInt->bzero();
- $int->{value} = $i;
- $int->blog($base->as_number());
- # if ($exact)
- if ($base->as_number()->bpow($int) == $x)
- {
- # found result, return it
- $x->{_m} = $int->{value};
- $x->{_e} = $MBI->_zero();
- $x->{_es} = '+';
- $x->bnorm();
- $done = 1;
- }
- }
-
- if ($done == 0)
- {
- # base is undef, so base should be e (Euler's number), so first calculate the
- # log to base e (using reduction by 10 (and probably 2)):
- $self->_log_10($x,$scale);
-
- # and if a different base was requested, convert it
- if (defined $base)
- {
- $base = Math::BigFloat->new($base) unless $base->isa('Math::BigFloat');
- # not ln, but some other base (don't modify $base)
- $x->bdiv( $base->copy()->blog(undef,$scale), $scale );
- }
- }
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
+ # Then handle the case where the exponents have the same sign.
+
+ else {
+ $cmp = $MBI->_acmp($x->{_e}, $y->{_e});
+ $cmp = -$cmp if $x->{_es} eq '-';
+ }
+
+ # Adjust for the sign, which is the same for x and y, and bail out if
+ # we're done.
+
+ $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
+ return $cmp if $cmp;
+
}
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+
+ # We must normalize each exponent by the length of the corresponding
+ # mantissa. Life is a lot easier if we first make both exponents
+ # non-negative. We do this by adding the same positive value to both
+ # exponent. This is safe, because when comparing the exponents, only the
+ # relative difference is important.
+
+ my $ex;
+ my $ey;
+
+ if ($x->{_es} eq '+') {
+
+ # If the exponent of x is >= 0 and the exponent of y is >= 0, there is no
+ # need to do anything special.
+
+ if ($y->{_es} eq '+') {
+ $ex = $MBI->_copy($x->{_e});
+ $ey = $MBI->_copy($y->{_e});
+ }
+
+ # If the exponent of x is >= 0 and the exponent of y is < 0, add the
+ # absolute value of the exponent of y to both.
+
+ else {
+ $ex = $MBI->_copy($x->{_e});
+ $ex = $MBI->_add($ex, $y->{_e}); # ex + |ey|
+ $ey = $MBI->_zero(); # -ex + |ey| = 0
+ }
+
+ } else {
+
+ # If the exponent of x is < 0 and the exponent of y is >= 0, add the
+ # absolute value of the exponent of x to both.
+
+ if ($y->{_es} eq '+') {
+ $ex = $MBI->_zero(); # -ex + |ex| = 0
+ $ey = $MBI->_copy($y->{_e});
+ $ey = $MBI->_add($ey, $x->{_e}); # ey + |ex|
+ }
+
+ # If the exponent of x is < 0 and the exponent of y is < 0, add the
+ # absolute values of both exponents to both exponents.
+
+ else {
+ $ex = $MBI->_copy($y->{_e}); # -ex + |ey| + |ex| = |ey|
+ $ey = $MBI->_copy($x->{_e}); # -ey + |ex| + |ey| = |ex|
+ }
+
}
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
+ # Now we can normalize the exponents by adding lengths of the mantissas.
-sub _len_to_steps
- {
- # Given D (digits in decimal), compute N so that N! (N factorial) is
- # at least D digits long. D should be at least 50.
- my $d = shift;
+ $ex = $MBI->_add($ex, $MBI->_new($mxl));
+ $ey = $MBI->_add($ey, $MBI->_new($myl));
- # two constants for the Ramanujan estimate of ln(N!)
- my $lg2 = log(2 * 3.14159265) / 2;
- my $lg10 = log(10);
+ # We're done if the exponents are different.
- # D = 50 => N => 42, so L = 40 and R = 50
- my $l = 40; my $r = $d;
+ $cmp = $MBI->_acmp($ex, $ey);
+ $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
+ return $cmp if $cmp;
- # Otherwise this does not work under -Mbignum and we do not yet have "no bignum;" :(
- $l = $l->numify if ref($l);
- $r = $r->numify if ref($r);
- $lg2 = $lg2->numify if ref($lg2);
- $lg10 = $lg10->numify if ref($lg10);
+ # Compare the mantissas, but first normalize them by padding the shorter
+ # mantissa with zeros (shift left) until it has the same length as the longer
+ # mantissa.
- # binary search for the right value (could this be written as the reverse of lg(n!)?)
- while ($r - $l > 1)
- {
- my $n = int(($r - $l) / 2) + $l;
- my $ramanujan =
- int(($n * log($n) - $n + log( $n * (1 + 4*$n*(1+2*$n)) ) / 6 + $lg2) / $lg10);
- $ramanujan > $d ? $r = $n : $l = $n;
- }
- $l;
- }
-
-sub bnok
- {
- # Calculate n over k (binomial coefficient or "choose" function) as integer.
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ my $mx = $x->{_m};
+ my $my = $y->{_m};
+
+ if ($mxl > $myl) {
+ $my = $MBI->_lsft($MBI->_copy($my), $MBI->_new($mxl - $myl), 10);
+ } elsif ($mxl < $myl) {
+ $mx = $MBI->_lsft($MBI->_copy($mx), $MBI->_new($myl - $mxl), 10);
}
- return $x if $x->modify('bnok');
+ $cmp = $MBI->_acmp($mx, $my);
+ $cmp = -$cmp if $x->{sign} eq '-'; # 124 > 123, but -124 < -123
+ return $cmp;
- return $x->bnan() if $x->is_nan() || $y->is_nan();
- return $x->binf() if $x->is_inf();
+}
- my $u = $x->as_int();
- $u->bnok($y->as_int());
+sub bacmp {
+ # Compares 2 values, ignoring their signs.
+ # Returns one of undef, <0, =0, >0. (suitable for sort)
- $x->{_m} = $u->{value};
- $x->{_e} = $MBI->_zero();
- $x->{_es} = '+';
- $x->{sign} = '+';
- $x->bnorm(@r);
- }
+ # set up parameters
+ my ($class, $x, $y) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y) = objectify(2, @_);
+ }
+
+ return $upgrade->bacmp($x, $y) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
+
+ # handle +-inf and NaN's
+ if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
+ return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if ($x->is_inf() && $y->is_inf());
+ return 1 if ($x->is_inf() && !$y->is_inf());
+ return -1;
+ }
+
+ # shortcut
+ my $xz = $x->is_zero();
+ my $yz = $y->is_zero();
+ return 0 if $xz && $yz; # 0 <=> 0
+ return -1 if $xz && !$yz; # 0 <=> +y
+ return 1 if $yz && !$xz; # +x <=> 0
+
+ # adjust so that exponents are equal
+ my $lxm = $MBI->_len($x->{_m});
+ my $lym = $MBI->_len($y->{_m});
+ my ($xes, $yes) = (1, 1);
+ $xes = -1 if $x->{_es} ne '+';
+ $yes = -1 if $y->{_es} ne '+';
+ # the numify somewhat limits our length, but makes it much faster
+ my $lx = $lxm + $xes * $MBI->_num($x->{_e});
+ my $ly = $lym + $yes * $MBI->_num($y->{_e});
+ my $l = $lx - $ly;
+ return $l <=> 0 if $l != 0;
+
+ # lengths (corrected by exponent) are equal
+ # so make mantissa equal-length by padding with zero (shift left)
+ my $diff = $lxm - $lym;
+ my $xm = $x->{_m}; # not yet copy it
+ my $ym = $y->{_m};
+ if ($diff > 0) {
+ $ym = $MBI->_copy($y->{_m});
+ $ym = $MBI->_lsft($ym, $MBI->_new($diff), 10);
+ } elsif ($diff < 0) {
+ $xm = $MBI->_copy($x->{_m});
+ $xm = $MBI->_lsft($xm, $MBI->_new(-$diff), 10);
+ }
+ $MBI->_acmp($xm, $ym);
+}
-sub bexp
- {
- # Calculate e ** X (Euler's number to the power of X)
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+###############################################################################
+# Arithmetic methods
+###############################################################################
- return $x if $x->modify('bexp');
+sub bneg {
+ # (BINT or num_str) return BINT
+ # negate number or make a negated number from string
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $x->binf() if $x->{sign} eq '+inf';
- return $x->bzero() if $x->{sign} eq '-inf';
+ return $x if $x->modify('bneg');
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r);
+ # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
+ $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_m}));
+ $x;
+}
- # also takes care of the "error in _find_round_parameters?" case
- return $x if $x->{sign} eq 'NaN';
+sub bnorm {
+ # adjust m and e so that m is smallest possible
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # P = undef
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it's not enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ return $x if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $zeros = $MBI->_zeros($x->{_m}); # correct for trailing zeros
+ if ($zeros != 0) {
+ my $z = $MBI->_new($zeros);
+ $x->{_m} = $MBI->_rsft($x->{_m}, $z, 10);
+ if ($x->{_es} eq '-') {
+ if ($MBI->_acmp($x->{_e}, $z) >= 0) {
+ $x->{_e} = $MBI->_sub($x->{_e}, $z);
+ $x->{_es} = '+' if $MBI->_is_zero($x->{_e});
+ } else {
+ $x->{_e} = $MBI->_sub($MBI->_copy($z), $x->{_e});
+ $x->{_es} = '+';
+ }
+ } else {
+ $x->{_e} = $MBI->_add($x->{_e}, $z);
+ }
+ } else {
+ # $x can only be 0Ey if there are no trailing zeros ('0' has 0 trailing
+ # zeros). So, for something like 0Ey, set y to 1, and -0 => +0
+ $x->{sign} = '+', $x->{_es} = '+', $x->{_e} = $MBI->_one()
+ if $MBI->_is_zero($x->{_m});
}
- return $x->bone(@params) if $x->is_zero();
+ $x;
+}
- if (!$x->isa('Math::BigFloat'))
- {
- $x = Math::BigFloat->new($x);
- $self = ref($x);
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
- local $Math::BigFloat::downgrade = undef;
-
- my $x_org = $x->copy();
-
- # We use the following Taylor series:
-
- # x x^2 x^3 x^4
- # e = 1 + --- + --- + --- + --- ...
- # 1! 2! 3! 4!
-
- # The difference for each term is X and N, which would result in:
- # 2 copy, 2 mul, 2 add, 1 inc, 1 div operations per term
-
- # But it is faster to compute exp(1) and then raising it to the
- # given power, esp. if $x is really big and an integer because:
-
- # * The numerator is always 1, making the computation faster
- # * the series converges faster in the case of x == 1
- # * We can also easily check when we have reached our limit: when the
- # term to be added is smaller than "1E$scale", we can stop - f.i.
- # scale == 5, and we have 1/40320, then we stop since 1/40320 < 1E-5.
- # * we can compute the *exact* result by simulating bigrat math:
-
- # 1 1 gcd(3,4) = 1 1*24 + 1*6 5
- # - + - = ---------- = --
- # 6 24 6*24 24
-
- # We do not compute the gcd() here, but simple do:
- # 1 1 1*24 + 1*6 30
- # - + - = --------- = --
- # 6 24 6*24 144
-
- # In general:
- # a c a*d + c*b and note that c is always 1 and d = (b*f)
- # - + - = ---------
- # b d b*d
-
- # This leads to: which can be reduced by b to:
- # a 1 a*b*f + b a*f + 1
- # - + - = --------- = -------
- # b b*f b*b*f b*f
-
- # The first terms in the series are:
-
- # 1 1 1 1 1 1 1 1 13700
- # -- + -- + -- + -- + -- + --- + --- + ---- = -----
- # 1 1 2 6 24 120 720 5040 5040
-
- # Note that we cannot simple reduce 13700/5040 to 685/252, but must keep A and B!
-
- if ($scale <= 75)
- {
- # set $x directly from a cached string form
- $x->{_m} = $MBI->_new(
- "27182818284590452353602874713526624977572470936999595749669676277240766303535476");
- $x->{sign} = '+';
- $x->{_es} = '-';
- $x->{_e} = $MBI->_new(79);
+sub binc {
+ # increment arg by one
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('binc');
+
+ if ($x->{_es} eq '-') {
+ return $x->badd($class->bone(), @r); # digits after dot
}
- else
+
+ if (!$MBI->_is_zero($x->{_e})) # _e == 0 for NaN, inf, -inf
{
- # compute A and B so that e = A / B.
-
- # After some terms we end up with this, so we use it as a starting point:
- my $A = $MBI->_new("90933395208605785401971970164779391644753259799242");
- my $F = $MBI->_new(42); my $step = 42;
-
- # Compute how many steps we need to take to get $A and $B sufficiently big
- my $steps = _len_to_steps($scale - 4);
-# print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
- while ($step++ <= $steps)
- {
- # calculate $a * $f + 1
- $A = $MBI->_mul($A, $F);
- $A = $MBI->_inc($A);
- # increment f
- $F = $MBI->_inc($F);
- }
- # compute $B as factorial of $steps (this is faster than doing it manually)
- my $B = $MBI->_fac($MBI->_new($steps));
-
-# print "A ", $MBI->_str($A), "\nB ", $MBI->_str($B), "\n";
-
- # compute A/B with $scale digits in the result (truncate, not round)
- $A = $MBI->_lsft( $A, $MBI->_new($scale), 10);
- $A = $MBI->_div( $A, $B );
-
- $x->{_m} = $A;
- $x->{sign} = '+';
- $x->{_es} = '-';
- $x->{_e} = $MBI->_new($scale);
+ # 1e2 => 100, so after the shift below _m has a '0' as last digit
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100
+ $x->{_e} = $MBI->_zero(); # normalize
+ $x->{_es} = '+';
+ # we know that the last digit of $x will be '1' or '9', depending on the
+ # sign
+ }
+ # now $x->{_e} == 0
+ if ($x->{sign} eq '+') {
+ $x->{_m} = $MBI->_inc($x->{_m});
+ return $x->bnorm()->bround(@r);
+ } elsif ($x->{sign} eq '-') {
+ $x->{_m} = $MBI->_dec($x->{_m});
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # -1 +1 => -0 => +0
+ return $x->bnorm()->bround(@r);
+ }
+ # inf, nan handling etc
+ $x->badd($class->bone(), @r); # badd() does round
+}
+
+sub bdec {
+ # decrement arg by one
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('bdec');
+
+ if ($x->{_es} eq '-') {
+ return $x->badd($class->bone('-'), @r); # digits after dot
}
- # $x contains now an estimate of e, with some surplus digits, so we can round
- if (!$x_org->is_one())
- {
- # Reduce size of fractional part, followup with integer power of two.
- my $lshift = 0;
- while ($lshift < 30 && $x_org->bacmp(2 << $lshift) > 0)
- {
- $lshift++;
- }
- # Raise $x to the wanted power and round it.
- if ($lshift == 0)
- {
- $x->bpow($x_org, @params);
- }
- else
- {
- my($mul, $rescale) = (1 << $lshift, $scale+1+$lshift);
- $x->bpow(scalar $x_org->bdiv($mul,$rescale),$rescale)->bpow($mul, @params);
- }
- }
- else
- {
- # else just round the already computed result
- delete $x->{_a}; delete $x->{_p};
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+ if (!$MBI->_is_zero($x->{_e})) {
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # 1e2 => 100
+ $x->{_e} = $MBI->_zero(); # normalize
+ $x->{_es} = '+';
}
- # restore globals
- $$abr = $ab; $$pbr = $pb;
-
- $x; # return modified $x
- }
-
-sub _log
- {
- # internal log function to calculate ln() based on Taylor series.
- # Modifies $x in place.
- my ($self,$x,$scale) = @_;
-
- # in case of $x == 1, result is 0
- return $x->bzero() if $x->is_one();
-
- # XXX TODO: rewrite this in a similar manner to bexp()
-
- # http://www.efunda.com/math/taylor_series/logarithmic.cfm?search_string=log
-
- # u = x-1, v = x+1
- # _ _
- # Taylor: | u 1 u^3 1 u^5 |
- # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 0
- # |_ v 3 v^3 5 v^5 _|
-
- # This takes much more steps to calculate the result and is thus not used
- # u = x-1
- # _ _
- # Taylor: | u 1 u^2 1 u^3 |
- # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 1/2
- # |_ x 2 x^2 3 x^3 _|
-
- my ($limit,$v,$u,$below,$factor,$two,$next,$over,$f);
-
- $v = $x->copy(); $v->binc(); # v = x+1
- $x->bdec(); $u = $x->copy(); # u = x-1; x = x-1
- $x->bdiv($v,$scale); # first term: u/v
- $below = $v->copy();
- $over = $u->copy();
- $u *= $u; $v *= $v; # u^2, v^2
- $below->bmul($v); # u^3, v^3
- $over->bmul($u);
- $factor = $self->new(3); $f = $self->new(2);
-
- my $steps = 0;
- $limit = $self->new("1E-". ($scale-1));
- while (3 < 5)
- {
- # we calculate the next term, and add it to the last
- # when the next term is below our limit, it won't affect the outcome
- # anymore, so we stop
-
- # calculating the next term simple from over/below will result in quite
- # a time hog if the input has many digits, since over and below will
- # accumulate more and more digits, and the result will also have many
- # digits, but in the end it is rounded to $scale digits anyway. So if we
- # round $over and $below first, we save a lot of time for the division
- # (not with log(1.2345), but try log (123**123) to see what I mean. This
- # can introduce a rounding error if the division result would be f.i.
- # 0.1234500000001 and we round it to 5 digits it would become 0.12346, but
- # if we truncated $over and $below we might get 0.12345. Does this matter
- # for the end result? So we give $over and $below 4 more digits to be
- # on the safe side (unscientific error handling as usual... :+D
-
- $next = $over->copy->bround($scale+4)->bdiv(
- $below->copy->bmul($factor)->bround($scale+4),
- $scale);
-
-## old version:
-## $next = $over->copy()->bdiv($below->copy()->bmul($factor),$scale);
-
- last if $next->bacmp($limit) <= 0;
-
- delete $next->{_a}; delete $next->{_p};
- $x->badd($next);
- # calculate things for the next term
- $over *= $u; $below *= $v; $factor->badd($f);
- if (DEBUG)
- {
- $steps++; print "step $steps = $x\n" if $steps % 10 == 0;
- }
- }
- print "took $steps steps\n" if DEBUG;
- $x->bmul($f); # $x *= 2
- }
-
-sub _log_10
- {
- # Internal log function based on reducing input to the range of 0.1 .. 9.99
- # and then "correcting" the result to the proper one. Modifies $x in place.
- my ($self,$x,$scale) = @_;
-
- # Taking blog() from numbers greater than 10 takes a *very long* time, so we
- # break the computation down into parts based on the observation that:
- # blog(X*Y) = blog(X) + blog(Y)
- # We set Y here to multiples of 10 so that $x becomes below 1 - the smaller
- # $x is the faster it gets. Since 2*$x takes about 10 times as
- # long, we make it faster by about a factor of 100 by dividing $x by 10.
-
- # The same observation is valid for numbers smaller than 0.1, e.g. computing
- # log(1) is fastest, and the further away we get from 1, the longer it takes.
- # So we also 'break' this down by multiplying $x with 10 and subtract the
- # log(10) afterwards to get the correct result.
-
- # To get $x even closer to 1, we also divide by 2 and then use log(2) to
- # correct for this. For instance if $x is 2.4, we use the formula:
- # blog(2.4 * 2) == blog (1.2) + blog(2)
- # and thus calculate only blog(1.2) and blog(2), which is faster in total
- # than calculating blog(2.4).
-
- # In addition, the values for blog(2) and blog(10) are cached.
-
- # Calculate nr of digits before dot:
- my $dbd = $MBI->_num($x->{_e});
- $dbd = -$dbd if $x->{_es} eq '-';
- $dbd += $MBI->_len($x->{_m});
-
- # more than one digit (e.g. at least 10), but *not* exactly 10 to avoid
- # infinite recursion
-
- my $calc = 1; # do some calculation?
-
- # disable the shortcut for 10, since we need log(10) and this would recurse
- # infinitely deep
- if ($x->{_es} eq '+' && $MBI->_is_one($x->{_e}) && $MBI->_is_one($x->{_m}))
- {
- $dbd = 0; # disable shortcut
- # we can use the cached value in these cases
- if ($scale <= $LOG_10_A)
- {
- $x->bzero(); $x->badd($LOG_10); # modify $x in place
- $calc = 0; # no need to calc, but round
- }
- # if we can't use the shortcut, we continue normally
- }
- else
- {
- # disable the shortcut for 2, since we maybe have it cached
- if (($MBI->_is_zero($x->{_e}) && $MBI->_is_two($x->{_m})))
- {
- $dbd = 0; # disable shortcut
- # we can use the cached value in these cases
- if ($scale <= $LOG_2_A)
- {
- $x->bzero(); $x->badd($LOG_2); # modify $x in place
- $calc = 0; # no need to calc, but round
+ # now $x->{_e} == 0
+ my $zero = $x->is_zero();
+ # <= 0
+ if (($x->{sign} eq '-') || $zero) {
+ $x->{_m} = $MBI->_inc($x->{_m});
+ $x->{sign} = '-' if $zero; # 0 => 1 => -1
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # -1 +1 => -0 => +0
+ return $x->bnorm()->round(@r);
+ }
+ # > 0
+ elsif ($x->{sign} eq '+') {
+ $x->{_m} = $MBI->_dec($x->{_m});
+ return $x->bnorm()->round(@r);
+ }
+ # inf, nan handling etc
+ $x->badd($class->bone('-'), @r); # does round
+}
+
+sub badd {
+ # add second arg (BFLOAT or string) to first (BFLOAT) (modifies first)
+ # return result as BFLOAT
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x->modify('badd');
+
+ # inf and NaN handling
+ if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
+ # NaN first
+ return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
+ # +inf++inf or -inf+-inf => same, rest is NaN
+ return $x if $x->{sign} eq $y->{sign};
+ return $x->bnan();
}
- # if we can't use the shortcut, we continue normally
- }
+ # +-inf + something => +inf; something +-inf => +-inf
+ $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
+ return $x;
}
- # if $x = 0.1, we know the result must be 0-log(10)
- if ($calc != 0 && $x->{_es} eq '-' && $MBI->_is_one($x->{_e}) &&
- $MBI->_is_one($x->{_m}))
+ return $upgrade->badd($x, $y, @r) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
+
+ $r[3] = $y; # no push!
+
+ # speed: no add for 0+y or x+0
+ return $x->bround(@r) if $y->is_zero(); # x+0
+ if ($x->is_zero()) # 0+y
{
- $dbd = 0; # disable shortcut
- # we can use the cached value in these cases
- if ($scale <= $LOG_10_A)
- {
- $x->bzero(); $x->bsub($LOG_10);
- $calc = 0; # no need to calc, but round
- }
+ # make copy, clobbering up x (modify in place!)
+ $x->{_e} = $MBI->_copy($y->{_e});
+ $x->{_es} = $y->{_es};
+ $x->{_m} = $MBI->_copy($y->{_m});
+ $x->{sign} = $y->{sign} || $nan;
+ return $x->round(@r);
}
- return if $calc == 0; # already have the result
+ # take lower of the two e's and adapt m1 to it to match m2
+ my $e = $y->{_e};
+ $e = $MBI->_zero() if !defined $e; # if no BFLOAT?
+ $e = $MBI->_copy($e); # make copy (didn't do it yet)
- # default: these correction factors are undef and thus not used
- my $l_10; # value of ln(10) to A of $scale
- my $l_2; # value of ln(2) to A of $scale
+ my $es;
- my $two = $self->new(2);
+ ($e, $es) = _e_sub($e, $x->{_e}, $y->{_es} || '+', $x->{_es});
- # $x == 2 => 1, $x == 13 => 2, $x == 0.1 => 0, $x == 0.01 => -1
- # so don't do this shortcut for 1 or 0
- if (($dbd > 1) || ($dbd < 0))
- {
- # convert our cached value to an object if not already (avoid doing this
- # at import() time, since not everybody needs this)
- $LOG_10 = $self->new($LOG_10,undef,undef) unless ref $LOG_10;
-
- #print "x = $x, dbd = $dbd, calc = $calc\n";
- # got more than one digit before the dot, or more than one zero after the
- # dot, so do:
- # log(123) == log(1.23) + log(10) * 2
- # log(0.0123) == log(1.23) - log(10) * 2
-
- if ($scale <= $LOG_10_A)
- {
- # use cached value
- $l_10 = $LOG_10->copy(); # copy for mul
- }
- else
- {
- # else: slower, compute and cache result
- # also disable downgrade for this code path
- local $Math::BigFloat::downgrade = undef;
-
- # shorten the time to calculate log(10) based on the following:
- # log(1.25 * 8) = log(1.25) + log(8)
- # = log(1.25) + log(2) + log(2) + log(2)
-
- # first get $l_2 (and possible compute and cache log(2))
- $LOG_2 = $self->new($LOG_2,undef,undef) unless ref $LOG_2;
- if ($scale <= $LOG_2_A)
- {
- # use cached value
- $l_2 = $LOG_2->copy(); # copy() for the mul below
- }
- else
- {
- # else: slower, compute and cache result
- $l_2 = $two->copy(); $self->_log($l_2, $scale); # scale+4, actually
- $LOG_2 = $l_2->copy(); # cache the result for later
- # the copy() is for mul below
- $LOG_2_A = $scale;
- }
+ my $add = $MBI->_copy($y->{_m});
- # now calculate log(1.25):
- $l_10 = $self->new('1.25'); $self->_log($l_10, $scale); # scale+4, actually
-
- # log(1.25) + log(2) + log(2) + log(2):
- $l_10->badd($l_2);
- $l_10->badd($l_2);
- $l_10->badd($l_2);
- $LOG_10 = $l_10->copy(); # cache the result for later
- # the copy() is for mul below
- $LOG_10_A = $scale;
- }
- $dbd-- if ($dbd > 1); # 20 => dbd=2, so make it dbd=1
- $l_10->bmul( $self->new($dbd)); # log(10) * (digits_before_dot-1)
- my $dbd_sign = '+';
- if ($dbd < 0)
- {
- $dbd = -$dbd;
- $dbd_sign = '-';
- }
- ($x->{_e}, $x->{_es}) =
- _e_sub( $x->{_e}, $MBI->_new($dbd), $x->{_es}, $dbd_sign); # 123 => 1.23
-
- }
-
- # Now: 0.1 <= $x < 10 (and possible correction in l_10)
-
- ### Since $x in the range 0.5 .. 1.5 is MUCH faster, we do a repeated div
- ### or mul by 2 (maximum times 3, since x < 10 and x > 0.1)
-
- $HALF = $self->new($HALF) unless ref($HALF);
-
- my $twos = 0; # default: none (0 times)
- while ($x->bacmp($HALF) <= 0) # X <= 0.5
+ if ($es eq '-') # < 0
{
- $twos--; $x->bmul($two);
- }
- while ($x->bacmp($two) >= 0) # X >= 2
+ $x->{_m} = $MBI->_lsft($x->{_m}, $e, 10);
+ ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
+ } elsif (!$MBI->_is_zero($e)) # > 0
{
- $twos++; $x->bdiv($two,$scale+4); # keep all digits
+ $add = $MBI->_lsft($add, $e, 10);
}
- $x->bround($scale+4);
- # $twos > 0 => did mul 2, < 0 => did div 2 (but we never did both)
- # So calculate correction factor based on ln(2):
- if ($twos != 0)
- {
- $LOG_2 = $self->new($LOG_2,undef,undef) unless ref $LOG_2;
- if ($scale <= $LOG_2_A)
- {
- # use cached value
- $l_2 = $LOG_2->copy(); # copy() for the mul below
- }
- else
- {
- # else: slower, compute and cache result
- # also disable downgrade for this code path
- local $Math::BigFloat::downgrade = undef;
- $l_2 = $two->copy(); $self->_log($l_2, $scale); # scale+4, actually
- $LOG_2 = $l_2->copy(); # cache the result for later
- # the copy() is for mul below
- $LOG_2_A = $scale;
- }
- $l_2->bmul($twos); # * -2 => subtract, * 2 => add
- }
- else
- {
- undef $l_2;
- }
-
- $self->_log($x,$scale); # need to do the "normal" way
- $x->badd($l_10) if defined $l_10; # correct it by ln(10)
- $x->badd($l_2) if defined $l_2; # and maybe by ln(2)
-
- # all done, $x contains now the result
- $x;
- }
-
-sub blcm
- {
- # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
- # does not modify arguments, but returns new object
- # Lowest Common Multiplicator
-
- my ($self,@arg) = objectify(0,@_);
- my $x = $self->new(shift @arg);
- while (@arg) { $x = Math::BigInt::__lcm($x,shift @arg); }
- $x;
- }
-
-sub bgcd
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # does not modify arguments, but returns new object
-
- my $y = shift;
- $y = __PACKAGE__->new($y) if !ref($y);
- my $self = ref($y);
- my $x = $y->copy()->babs(); # keep arguments
-
- return $x->bnan() if $x->{sign} !~ /^[+-]$/ # x NaN?
- || !$x->is_int(); # only for integers now
-
- while (@_)
- {
- my $t = shift; $t = $self->new($t) if !ref($t);
- $y = $t->copy()->babs();
-
- return $x->bnan() if $y->{sign} !~ /^[+-]$/ # y NaN?
- || !$y->is_int(); # only for integers now
+ # else: both e are the same, so just leave them
- # greatest common divisor
- while (! $y->is_zero())
- {
- ($x,$y) = ($y->copy(), $x->copy()->bmod($y));
- }
-
- last if $x->is_one();
+ if ($x->{sign} eq $y->{sign}) {
+ # add
+ $x->{_m} = $MBI->_add($x->{_m}, $add);
+ } else {
+ ($x->{_m}, $x->{sign}) =
+ _e_add($x->{_m}, $add, $x->{sign}, $y->{sign});
}
- $x;
- }
-##############################################################################
+ # delete trailing zeros, then round
+ $x->bnorm()->round(@r);
+}
-sub _e_add {
- # Internal helper sub to take two positive integers and their signs and
- # then add them. Input ($CALC, $CALC, ('+'|'-'), ('+'|'-')), output
- # ($CALC, ('+'|'-')).
+sub bsub {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # subtract second arg from first, modify first
- my ($x, $y, $xs, $ys) = @_;
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # if the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8)
- if ($xs eq $ys) {
- $x = $MBI->_add($x, $y); # +a + +b or -a + -b
- } else {
- my $a = $MBI->_acmp($x, $y);
- if ($a == 0) {
- # This does NOT modify $x in-place. TODO: Fix this?
- $x = $MBI->_zero(); # result is 0
- $xs = '+';
- return ($x, $xs);
- }
- if ($a > 0) {
- $x = $MBI->_sub($x, $y); # abs sub
- } else { # a < 0
- $x = $MBI->_sub ( $y, $x, 1 ); # abs sub
- $xs = $ys;
- }
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- $xs = '+' if $xs eq '-' && $MBI->_is_zero($x); # no "-0"
+ return $x if $x -> modify('bsub');
- return ($x, $xs);
+ return $upgrade -> new($x) -> bsub($upgrade -> new($y), @r)
+ if defined $upgrade && (!$x -> isa($class) || !$y -> isa($class));
+
+ return $x -> round(@r) if $y -> is_zero();
+
+ # To correctly handle the lone special case $x -> bsub($x), we note the
+ # sign of $x, then flip the sign from $y, and if the sign of $x did change,
+ # too, then we caught the special case:
+
+ my $xsign = $x -> {sign};
+ $y -> {sign} =~ tr/+-/-+/; # does nothing for NaN
+ if ($xsign ne $x -> {sign}) {
+ # special case of $x -> bsub($x) results in 0
+ return $x -> bzero(@r) if $xsign =~ /^[+-]$/;
+ return $x -> bnan(); # NaN, -inf, +inf
+ }
+ $x -> badd($y, @r); # badd does not leave internal zeros
+ $y -> {sign} =~ tr/+-/-+/; # refix $y (does nothing for NaN)
+ $x; # already rounded by badd() or no rounding
}
-sub _e_sub {
- # Internal helper sub to take two positive integers and their signs and
- # then subtract them. Input ($CALC,$CALC,('+'|'-'),('+'|'-')),
- # output ($CALC,('+'|'-'))
- my ($x,$y,$xs,$ys) = @_;
+sub bmul {
+ # multiply two numbers
- # flip sign
- $ys = $ys eq '+' ? '-' : '+'; # swap sign of second operand ...
- _e_add($x, $y, $xs, $ys); # ... and let _e_add() do the job
- }
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
-###############################################################################
-# is_foo methods (is_negative, is_positive are inherited from BigInt)
-
-sub is_int
- {
- # return true if arg (BFLOAT or num_str) is an integer
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- (($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
- ($x->{_es} eq '+')) ? 1 : 0; # 1e-1 => no integer
- }
-
-sub is_zero
- {
- # return true if arg (BFLOAT or num_str) is zero
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- ($x->{sign} eq '+' && $MBI->_is_zero($x->{_m})) ? 1 : 0;
- }
-
-sub is_one
- {
- # return true if arg (BFLOAT or num_str) is +1 or -1 if signis given
- my ($self,$x,$sign) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
-
- $sign = '+' if !defined $sign || $sign ne '-';
-
- ($x->{sign} eq $sign &&
- $MBI->_is_zero($x->{_e}) &&
- $MBI->_is_one($x->{_m}) ) ? 1 : 0;
- }
-
-sub is_odd
- {
- # return true if arg (BFLOAT or num_str) is odd or false if even
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
- ($MBI->_is_zero($x->{_e})) &&
- ($MBI->_is_odd($x->{_m}))) ? 1 : 0;
- }
-
-sub is_even
- {
- # return true if arg (BINT or num_str) is even or false if odd
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- (($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
- ($x->{_es} eq '+') && # 123.45 isn't
- ($MBI->_is_even($x->{_m}))) ? 1 : 0; # but 1200 is
- }
-
-sub bmul
- {
- # multiply two numbers
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ return $x if $x->modify('bmul');
+
+ return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
}
- return $x if $x->modify('bmul');
+ return $upgrade->bmul($x, $y, @r) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ # aEb * cEd = (a*c)E(b+d)
+ $x->{_m} = $MBI->_mul($x->{_m}, $y->{_m});
+ ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
- }
-
- return $upgrade->bmul($x,$y,@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
-
- # aEb * cEd = (a*c)E(b+d)
- $MBI->_mul($x->{_m},$y->{_m});
- ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
-
- $r[3] = $y; # no push!
-
- # adjust sign:
- $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
- $x->bnorm->round(@r);
- }
-
-sub bmuladd
- {
- # multiply two numbers and add the third to the result
-
- # set up parameters
- my ($self,$x,$y,$z,@r) = objectify(3,@_);
-
- return $x if $x->modify('bmuladd');
-
- return $x->bnan() if (($x->{sign} eq $nan) ||
- ($y->{sign} eq $nan) ||
- ($z->{sign} eq $nan));
-
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ $r[3] = $y; # no push!
+
+ # adjust sign:
+ $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
+ $x->bnorm->round(@r);
+}
+
+sub bmuladd {
+ # multiply two numbers and add the third to the result
+
+ # set up parameters
+ my ($class, $x, $y, $z, @r) = objectify(3, @_);
+
+ return $x if $x->modify('bmuladd');
+
+ return $x->bnan() if (($x->{sign} eq $nan) ||
+ ($y->{sign} eq $nan) ||
+ ($z->{sign} eq $nan));
+
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
}
- return $upgrade->bmul($x,$y,@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ return $upgrade->bmul($x, $y, @r) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
- # aEb * cEd = (a*c)E(b+d)
- $MBI->_mul($x->{_m},$y->{_m});
- ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
+ # aEb * cEd = (a*c)E(b+d)
+ $x->{_m} = $MBI->_mul($x->{_m}, $y->{_m});
+ ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
- $r[3] = $y; # no push!
+ $r[3] = $y; # no push!
- # adjust sign:
- $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
+ # adjust sign:
+ $x->{sign} = $x->{sign} ne $y->{sign} ? '-' : '+';
- # z=inf handling (z=NaN handled above)
- $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
+ # z=inf handling (z=NaN handled above)
+ $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
- # take lower of the two e's and adapt m1 to it to match m2
- my $e = $z->{_e};
- $e = $MBI->_zero() if !defined $e; # if no BFLOAT?
- $e = $MBI->_copy($e); # make copy (didn't do it yet)
+ # take lower of the two e's and adapt m1 to it to match m2
+ my $e = $z->{_e};
+ $e = $MBI->_zero() if !defined $e; # if no BFLOAT?
+ $e = $MBI->_copy($e); # make copy (didn't do it yet)
- my $es;
+ my $es;
- ($e,$es) = _e_sub($e, $x->{_e}, $z->{_es} || '+', $x->{_es});
+ ($e, $es) = _e_sub($e, $x->{_e}, $z->{_es} || '+', $x->{_es});
- my $add = $MBI->_copy($z->{_m});
+ my $add = $MBI->_copy($z->{_m});
- if ($es eq '-') # < 0
+ if ($es eq '-') # < 0
{
- $MBI->_lsft( $x->{_m}, $e, 10);
- ($x->{_e},$x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
- }
- elsif (!$MBI->_is_zero($e)) # > 0
+ $x->{_m} = $MBI->_lsft($x->{_m}, $e, 10);
+ ($x->{_e}, $x->{_es}) = _e_add($x->{_e}, $e, $x->{_es}, $es);
+ } elsif (!$MBI->_is_zero($e)) # > 0
{
- $MBI->_lsft($add, $e, 10);
+ $add = $MBI->_lsft($add, $e, 10);
}
- # else: both e are the same, so just leave them
+ # else: both e are the same, so just leave them
- if ($x->{sign} eq $z->{sign})
- {
- # add
- $x->{_m} = $MBI->_add($x->{_m}, $add);
- }
- else
- {
- ($x->{_m}, $x->{sign}) =
- _e_add($x->{_m}, $add, $x->{sign}, $z->{sign});
+ if ($x->{sign} eq $z->{sign}) {
+ # add
+ $x->{_m} = $MBI->_add($x->{_m}, $add);
+ } else {
+ ($x->{_m}, $x->{sign}) =
+ _e_add($x->{_m}, $add, $x->{sign}, $z->{sign});
}
- # delete trailing zeros, then round
- $x->bnorm()->round(@r);
- }
+ # delete trailing zeros, then round
+ $x->bnorm()->round(@r);
+}
-sub bdiv
- {
- # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return
+sub bdiv {
+ # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return
# (BFLOAT, BFLOAT) (quo, rem) or BFLOAT (only quo)
- # set up parameters
- my ($self,$x,$y,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$a,$p,$r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- return $x if $x->modify('bdiv');
+ return $x if $x->modify('bdiv');
- my $wantarray = wantarray; # call only once
+ my $wantarray = wantarray; # call only once
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bdiv().
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $self -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
}
# Divide by zero and modulo zero. This is handled the same way as in
@@ -1899,7 +1792,7 @@ sub bdiv
if ($x -> is_inf()) {
my ($quo, $rem);
- $rem = $self -> bnan() if $wantarray;
+ $rem = $class -> bnan() if $wantarray;
if ($y -> is_inf()) {
$quo = $x -> bnan();
} else {
@@ -1909,180 +1802,165 @@ sub bdiv
return $wantarray ? ($quo, $rem) : $quo;
}
- # Denominator (divisor) is +/-inf. This is handled the same way as in
- # Math::BigInt -> bdiv(), with one exception: In scalar context,
- # Math::BigFloat does true division (although rounded), not floored division
- # (F-division), so a finite number divided by +/-inf is always zero. See the
- # comment in the code for Math::BigInt -> bdiv() for further details.
-
- if ($y -> is_inf()) {
- my ($quo, $rem);
- if ($wantarray) {
- if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
- $rem = $x -> copy();
- $quo = $x -> bzero();
- } else {
- $rem = $self -> binf($y -> {sign});
- $quo = $x -> bone('-');
- }
- return ($quo, $rem);
- } else {
- if ($y -> is_inf()) {
- if ($x -> is_nan() || $x -> is_inf()) {
- return $x -> bnan();
+ # Denominator (divisor) is +/-inf. This is handled the same way as in
+ # Math::BigInt -> bdiv(), with one exception: In scalar context,
+ # Math::BigFloat does true division (although rounded), not floored division
+ # (F-division), so a finite number divided by +/-inf is always zero. See the
+ # comment in the code for Math::BigInt -> bdiv() for further details.
+
+ if ($y -> is_inf()) {
+ my ($quo, $rem);
+ if ($wantarray) {
+ if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
+ $rem = $x -> copy();
+ $quo = $x -> bzero();
} else {
- return $x -> bzero();
+ $rem = $class -> binf($y -> {sign});
+ $quo = $x -> bone('-');
+ }
+ return ($quo, $rem);
+ } else {
+ if ($y -> is_inf()) {
+ if ($x -> is_nan() || $x -> is_inf()) {
+ return $x -> bnan();
+ } else {
+ return $x -> bzero();
+ }
}
}
}
- }
- # At this point, both the numerator and denominator are finite numbers, and
- # the denominator (divisor) is non-zero.
+ # At this point, both the numerator and denominator are finite numbers, and
+ # the denominator (divisor) is non-zero.
- # x == 0?
- return wantarray ? ($x,$self->bzero()) : $x if $x->is_zero();
+ # x == 0?
+ return wantarray ? ($x, $class->bzero()) : $x if $x->is_zero();
- # upgrade ?
- return $upgrade->bdiv($upgrade->new($x),$y,$a,$p,$r) if defined $upgrade;
+ # upgrade ?
+ return $upgrade->bdiv($upgrade->new($x), $y, $a, $p, $r) if defined $upgrade;
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my (@params,$scale);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r,$y);
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my (@params, $scale);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r, $y);
- return $x if $x->is_nan(); # error in _find_round_parameters?
+ return $x if $x->is_nan(); # error in _find_round_parameters?
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
} else {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
my $rem;
- $rem = $self -> bzero() if wantarray;
-
- $y = $self->new($y) unless $y->isa('Math::BigFloat');
+ $rem = $class -> bzero() if wantarray;
- my $lx = $MBI -> _len($x->{_m}); my $ly = $MBI -> _len($y->{_m});
- $scale = $lx if $lx > $scale;
- $scale = $ly if $ly > $scale;
- my $diff = $ly - $lx;
- $scale += $diff if $diff > 0; # if lx << ly, but not if ly << lx!
+ $y = $class->new($y) unless $y->isa('Math::BigFloat');
- # check that $y is not 1 nor -1 and cache the result:
- my $y_not_one = !($MBI->_is_zero($y->{_e}) && $MBI->_is_one($y->{_m}));
+ my $lx = $MBI -> _len($x->{_m}); my $ly = $MBI -> _len($y->{_m});
+ $scale = $lx if $lx > $scale;
+ $scale = $ly if $ly > $scale;
+ my $diff = $ly - $lx;
+ $scale += $diff if $diff > 0; # if lx << ly, but not if ly << lx!
- # flipping the sign of $y will also flip the sign of $x for the special
- # case of $x->bsub($x); so we can catch it below:
- my $xsign = $x->{sign};
- $y->{sign} =~ tr/+-/-+/;
+ # check that $y is not 1 nor -1 and cache the result:
+ my $y_not_one = !($MBI->_is_zero($y->{_e}) && $MBI->_is_one($y->{_m}));
- if ($xsign ne $x->{sign})
- {
- # special case of $x /= $x results in 1
- $x->bone(); # "fixes" also sign of $y, since $x is $y
- }
- else
- {
- # correct $y's sign again
+ # flipping the sign of $y will also flip the sign of $x for the special
+ # case of $x->bsub($x); so we can catch it below:
+ my $xsign = $x->{sign};
$y->{sign} =~ tr/+-/-+/;
- # continue with normal div code:
-
- # make copy of $x in case of list context for later remainder calculation
- if (wantarray && $y_not_one)
- {
- $rem = $x->copy();
- }
-
- $x->{sign} = $x->{sign} ne $y->sign() ? '-' : '+';
-
- # check for / +-1 ( +/- 1E0)
- if ($y_not_one)
- {
- # promote BigInts and it's subclasses (except when already a BigFloat)
- $y = $self->new($y) unless $y->isa('Math::BigFloat');
-
- # calculate the result to $scale digits and then round it
- # a * 10 ** b / c * 10 ** d => a/c * 10 ** (b-d)
- $MBI->_lsft($x->{_m},$MBI->_new($scale),10);
- $MBI->_div ($x->{_m},$y->{_m}); # a/c
-
- # correct exponent of $x
- ($x->{_e},$x->{_es}) = _e_sub($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
- # correct for 10**scale
- ($x->{_e},$x->{_es}) = _e_sub($x->{_e}, $MBI->_new($scale), $x->{_es}, '+');
- $x->bnorm(); # remove trailing 0's
- }
- } # end else $x != $y
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- delete $x->{_a}; # clear before round
- $x->bround($params[0],$params[2]); # then round accordingly
+
+ if ($xsign ne $x->{sign}) {
+ # special case of $x /= $x results in 1
+ $x->bone(); # "fixes" also sign of $y, since $x is $y
+ } else {
+ # correct $y's sign again
+ $y->{sign} =~ tr/+-/-+/;
+ # continue with normal div code:
+
+ # make copy of $x in case of list context for later remainder calculation
+ if (wantarray && $y_not_one) {
+ $rem = $x->copy();
+ }
+
+ $x->{sign} = $x->{sign} ne $y->sign() ? '-' : '+';
+
+ # check for / +-1 (+/- 1E0)
+ if ($y_not_one) {
+ # promote BigInts and it's subclasses (except when already a Math::BigFloat)
+ $y = $class->new($y) unless $y->isa('Math::BigFloat');
+
+ # calculate the result to $scale digits and then round it
+ # a * 10 ** b / c * 10 ** d => a/c * 10 ** (b-d)
+ $x->{_m} = $MBI->_lsft($x->{_m}, $MBI->_new($scale), 10);
+ $x->{_m} = $MBI->_div($x->{_m}, $y->{_m}); # a/c
+
+ # correct exponent of $x
+ ($x->{_e}, $x->{_es}) = _e_sub($x->{_e}, $y->{_e}, $x->{_es}, $y->{_es});
+ # correct for 10**scale
+ ($x->{_e}, $x->{_es}) = _e_sub($x->{_e}, $MBI->_new($scale), $x->{_es}, '+');
+ $x->bnorm(); # remove trailing 0's
+ }
+ } # end else $x != $y
+
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ delete $x->{_a}; # clear before round
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ delete $x->{_p}; # clear before round
+ $x->bfround($params[1], $params[2]); # then round accordingly
}
- else
- {
- delete $x->{_p}; # clear before round
- $x->bfround($params[1],$params[2]); # then round accordingly
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a}; delete $x->{_p};
}
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+
+ if (wantarray) {
+ if ($y_not_one) {
+ $x -> bfloor();
+ $rem->bmod($y, @params); # copy already done
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $rem->{_a}; delete $rem->{_p};
+ }
+ return ($x, $rem);
}
+ $x;
+}
- if (wantarray)
- {
- if ($y_not_one)
- {
- $x -> bfloor();
- $rem->bmod($y,@params); # copy already done
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $rem->{_a}; delete $rem->{_p};
- }
- return ($x,$rem);
- }
- $x;
- }
-
-sub bmod
- {
- # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return remainder
-
- # set up parameters
- my ($self,$x,$y,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$a,$p,$r) = objectify(2,@_);
+sub bmod {
+ # (dividend: BFLOAT or num_str, divisor: BFLOAT or num_str) return remainder
+
+ # set up parameters
+ my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- return $x if $x->modify('bmod');
+ return $x if $x->modify('bmod');
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bmod().
if ($x -> is_nan() || $y -> is_nan()) {
return $x -> bnan();
- }
+ }
# Modulo zero. This is handled the same way as in Math::BigInt -> bmod().
if ($y -> is_zero()) {
- return $x;
+ return $x;
}
# Numerator (dividend) is +/-inf. This is handled the same way as in
@@ -2103,1210 +1981,705 @@ sub bmod
}
}
- return $x->bzero() if $x->is_zero()
- || ($x->is_int() &&
- # check that $y == +1 or $y == -1:
- ($MBI->_is_zero($y->{_e}) && $MBI->_is_one($y->{_m})));
+ return $x->bzero() if $x->is_zero()
+ || ($x->is_int() &&
+ # check that $y == +1 or $y == -1:
+ ($MBI->_is_zero($y->{_e}) && $MBI->_is_one($y->{_m})));
- my $cmp = $x->bacmp($y); # equal or $x < $y?
- if ($cmp == 0) { # $x == $y => result 0
+ my $cmp = $x->bacmp($y); # equal or $x < $y?
+ if ($cmp == 0) { # $x == $y => result 0
return $x -> bzero($a, $p);
}
- # only $y of the operands negative?
+ # only $y of the operands negative?
my $neg = $x->{sign} ne $y->{sign} ? 1 : 0;
- $x->{sign} = $y->{sign}; # calc sign first
- if ($cmp < 0 && $neg == 0) { # $x < $y => result $x
+ $x->{sign} = $y->{sign}; # calc sign first
+ if ($cmp < 0 && $neg == 0) { # $x < $y => result $x
return $x -> round($a, $p, $r);
}
-
- my $ym = $MBI->_copy($y->{_m});
-
- # 2e1 => 20
- $MBI->_lsft( $ym, $y->{_e}, 10)
- if $y->{_es} eq '+' && !$MBI->_is_zero($y->{_e});
-
- # if $y has digits after dot
- my $shifty = 0; # correct _e of $x by this
- if ($y->{_es} eq '-') # has digits after dot
+
+ my $ym = $MBI->_copy($y->{_m});
+
+ # 2e1 => 20
+ $ym = $MBI->_lsft($ym, $y->{_e}, 10)
+ if $y->{_es} eq '+' && !$MBI->_is_zero($y->{_e});
+
+ # if $y has digits after dot
+ my $shifty = 0; # correct _e of $x by this
+ if ($y->{_es} eq '-') # has digits after dot
{
- # 123 % 2.5 => 1230 % 25 => 5 => 0.5
- $shifty = $MBI->_num($y->{_e}); # no more digits after dot
- $MBI->_lsft($x->{_m}, $y->{_e}, 10);# 123 => 1230, $y->{_m} is already 25
+ # 123 % 2.5 => 1230 % 25 => 5 => 0.5
+ $shifty = $MBI->_num($y->{_e}); # no more digits after dot
+ $x->{_m} = $MBI->_lsft($x->{_m}, $y->{_e}, 10); # 123 => 1230, $y->{_m} is already 25
}
- # $ym is now mantissa of $y based on exponent 0
+ # $ym is now mantissa of $y based on exponent 0
- my $shiftx = 0; # correct _e of $x by this
- if ($x->{_es} eq '-') # has digits after dot
+ my $shiftx = 0; # correct _e of $x by this
+ if ($x->{_es} eq '-') # has digits after dot
{
- # 123.4 % 20 => 1234 % 200
- $shiftx = $MBI->_num($x->{_e}); # no more digits after dot
- $MBI->_lsft($ym, $x->{_e}, 10); # 123 => 1230
+ # 123.4 % 20 => 1234 % 200
+ $shiftx = $MBI->_num($x->{_e}); # no more digits after dot
+ $ym = $MBI->_lsft($ym, $x->{_e}, 10); # 123 => 1230
}
- # 123e1 % 20 => 1230 % 20
- if ($x->{_es} eq '+' && !$MBI->_is_zero($x->{_e}))
- {
- $MBI->_lsft( $x->{_m}, $x->{_e},10); # es => '+' here
+ # 123e1 % 20 => 1230 % 20
+ if ($x->{_es} eq '+' && !$MBI->_is_zero($x->{_e})) {
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # es => '+' here
}
- $x->{_e} = $MBI->_new($shiftx);
- $x->{_es} = '+';
- $x->{_es} = '-' if $shiftx != 0 || $shifty != 0;
- $MBI->_add( $x->{_e}, $MBI->_new($shifty)) if $shifty != 0;
-
- # now mantissas are equalized, exponent of $x is adjusted, so calc result
+ $x->{_e} = $MBI->_new($shiftx);
+ $x->{_es} = '+';
+ $x->{_es} = '-' if $shiftx != 0 || $shifty != 0;
+ $x->{_e} = $MBI->_add($x->{_e}, $MBI->_new($shifty)) if $shifty != 0;
- $x->{_m} = $MBI->_mod( $x->{_m}, $ym);
+ # now mantissas are equalized, exponent of $x is adjusted, so calc result
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # fix sign for -0
- $x->bnorm();
+ $x->{_m} = $MBI->_mod($x->{_m}, $ym);
- if ($neg != 0 && ! $x -> is_zero()) # one of them negative => correct in place
- {
- my $r = $y - $x;
- $x->{_m} = $r->{_m};
- $x->{_e} = $r->{_e};
- $x->{_es} = $r->{_es};
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # fix sign for -0
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # fix sign for -0
$x->bnorm();
- }
-
- $x->round($a,$p,$r,$y); # round and return
- }
-sub broot
- {
- # calculate $y'th root of $x
-
- # set up parameters
- my ($self,$x,$y,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
+ if ($neg != 0 && ! $x -> is_zero()) # one of them negative => correct in place
{
- ($self,$x,$y,$a,$p,$r) = objectify(2,@_);
+ my $r = $y - $x;
+ $x->{_m} = $r->{_m};
+ $x->{_e} = $r->{_e};
+ $x->{_es} = $r->{_es};
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # fix sign for -0
+ $x->bnorm();
}
- return $x if $x->modify('broot');
-
- # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
- return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
- $y->{sign} !~ /^\+$/;
+ $x->round($a, $p, $r, $y); # round and return
+}
- return $x if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
-
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my (@params,$scale);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r);
+sub bmodpow {
+ # takes a very large number to a very large exponent in a given very
+ # large modulus, quickly, thanks to binary exponentiation. Supports
+ # negative exponents.
+ my ($class, $num, $exp, $mod, @r) = objectify(3, @_);
- return $x if $x->is_nan(); # error in _find_round_parameters?
+ return $num if $num->modify('bmodpow');
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
-
- # remember sign and make $x positive, since -4 ** (1/2) => -2
- my $sign = 0; $sign = 1 if $x->{sign} eq '-'; $x->{sign} = '+';
-
- my $is_two = 0;
- if ($y->isa('Math::BigFloat'))
- {
- $is_two = ($y->{sign} eq '+' && $MBI->_is_two($y->{_m}) && $MBI->_is_zero($y->{_e}));
- }
- else
- {
- $is_two = ($y == 2);
- }
+ # check modulus for valid values
+ return $num->bnan() if ($mod->{sign} ne '+' # NaN, -, -inf, +inf
+ || $mod->is_zero());
- # normal square root if $y == 2:
- if ($is_two)
- {
- $x->bsqrt($scale+4);
- }
- elsif ($y->is_one('-'))
- {
- # $x ** -1 => 1/$x
- my $u = $self->bone()->bdiv($x,$scale);
- # copy private parts over
- $x->{_m} = $u->{_m};
- $x->{_e} = $u->{_e};
- $x->{_es} = $u->{_es};
- }
- else
- {
- # calculate the broot() as integer result first, and if it fits, return
- # it rightaway (but only if $x and $y are integer):
-
- my $done = 0; # not yet
- if ($y->is_int() && $x->is_int())
- {
- my $i = $MBI->_copy( $x->{_m} );
- $MBI->_lsft( $i, $x->{_e}, 10 ) unless $MBI->_is_zero($x->{_e});
- my $int = Math::BigInt->bzero();
- $int->{value} = $i;
- $int->broot($y->as_number());
- # if ($exact)
- if ($int->copy()->bpow($y) == $x)
- {
- # found result, return it
- $x->{_m} = $int->{value};
- $x->{_e} = $MBI->_zero();
- $x->{_es} = '+';
- $x->bnorm();
- $done = 1;
- }
- }
- if ($done == 0)
- {
- my $u = $self->bone()->bdiv($y,$scale+4);
- delete $u->{_a}; delete $u->{_p}; # otherwise it conflicts
- $x->bpow($u,$scale+4); # el cheapo
- }
- }
- $x->bneg() if $sign == 1;
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+ # check exponent for valid values
+ if ($exp->{sign} =~ /\w/) {
+ # i.e., if it's NaN, +inf, or -inf...
+ return $num->bnan();
}
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
-sub bsqrt
- {
- # calculate square root
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ $num->bmodinv ($mod) if ($exp->{sign} eq '-');
- return $x if $x->modify('bsqrt');
+ # check num for valid values (also NaN if there was no inverse but $exp < 0)
+ return $num->bnan() if $num->{sign} !~ /^[+-]$/;
- return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0
- return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
- return $x->round($a,$p,$r) if $x->is_zero() || $x->is_one();
+ # $mod is positive, sign on $exp is ignored, result also positive
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my (@params,$scale);
- ($x,@params) = $x->_find_round_parameters($a,$p,$r);
+ # XXX TODO: speed it up when all three numbers are integers
+ $num->bpow($exp)->bmod($mod);
+}
- return $x if $x->is_nan(); # error in _find_round_parameters?
+sub bpow {
+ # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
+ # compute power of two numbers, second arg is used as integer
+ # modifies first argument
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
-
- my $i = $MBI->_copy( $x->{_m} );
- $MBI->_lsft( $i, $x->{_e}, 10 ) unless $MBI->_is_zero($x->{_e});
- my $xas = Math::BigInt->bzero();
- $xas->{value} = $i;
-
- my $gs = $xas->copy()->bsqrt(); # some guess
-
- if (($x->{_es} ne '-') # guess can't be accurate if there are
- # digits after the dot
- && ($xas->bacmp($gs * $gs) == 0)) # guess hit the nail on the head?
- {
- # exact result, copy result over to keep $x
- $x->{_m} = $gs->{value}; $x->{_e} = $MBI->_zero(); $x->{_es} = '+';
- $x->bnorm();
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
- }
- # re-enable A and P, upgrade is taken care of by "local"
- ${"$self\::accuracy"} = $ab; ${"$self\::precision"} = $pb;
- return $x;
- }
-
- # sqrt(2) = 1.4 because sqrt(2*100) = 1.4*10; so we can increase the accuracy
- # of the result by multiplying the input by 100 and then divide the integer
- # result of sqrt(input) by 10. Rounding afterwards returns the real result.
-
- # The following steps will transform 123.456 (in $x) into 123456 (in $y1)
- my $y1 = $MBI->_copy($x->{_m});
-
- my $length = $MBI->_len($y1);
-
- # Now calculate how many digits the result of sqrt(y1) would have
- my $digits = int($length / 2);
-
- # But we need at least $scale digits, so calculate how many are missing
- my $shift = $scale - $digits;
-
- # This happens if the input had enough digits
- # (we take care of integer guesses above)
- $shift = 0 if $shift < 0;
-
- # Multiply in steps of 100, by shifting left two times the "missing" digits
- my $s2 = $shift * 2;
-
- # We now make sure that $y1 has the same odd or even number of digits than
- # $x had. So when _e of $x is odd, we must shift $y1 by one digit left,
- # because we always must multiply by steps of 100 (sqrt(100) is 10) and not
- # steps of 10. The length of $x does not count, since an even or odd number
- # of digits before the dot is not changed by adding an even number of digits
- # after the dot (the result is still odd or even digits long).
- $s2++ if $MBI->_is_odd($x->{_e});
-
- $MBI->_lsft( $y1, $MBI->_new($s2), 10);
-
- # now take the square root and truncate to integer
- $y1 = $MBI->_sqrt($y1);
-
- # By "shifting" $y1 right (by creating a negative _e) we calculate the final
- # result, which is than later rounded to the desired scale.
-
- # calculate how many zeros $x had after the '.' (or before it, depending
- # on sign of $dat, the result should have half as many:
- my $dat = $MBI->_num($x->{_e});
- $dat = -$dat if $x->{_es} eq '-';
- $dat += $length;
-
- if ($dat > 0)
- {
- # no zeros after the dot (e.g. 1.23, 0.49 etc)
- # preserve half as many digits before the dot than the input had
- # (but round this "up")
- $dat = int(($dat+1)/2);
- }
- else
- {
- $dat = int(($dat)/2);
- }
- $dat -= $MBI->_len($y1);
- if ($dat < 0)
- {
- $dat = abs($dat);
- $x->{_e} = $MBI->_new( $dat );
- $x->{_es} = '-';
- }
- else
- {
- $x->{_e} = $MBI->_new( $dat );
- $x->{_es} = '+';
+ # set up parameters
+ my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- $x->{_m} = $y1;
- $x->bnorm();
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
- }
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
+ return $x if $x->modify('bpow');
-sub bfac
- {
- # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
- # compute factorial number, modifies first argument
+ return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+ return $x if $x->{sign} =~ /^[+-]inf$/;
- # set up parameters
- my ($self,$x,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- ($self,$x,@r) = objectify(1,@_) if !ref($x);
+ # cache the result of is_zero
+ my $y_is_zero = $y->is_zero();
+ return $x->bone() if $y_is_zero;
+ return $x if $x->is_one() || $y->is_one();
- # inf => inf
- return $x if $x->modify('bfac') || $x->{sign} eq '+inf';
+ my $x_is_zero = $x->is_zero();
+ return $x->_pow($y, $a, $p, $r) if !$x_is_zero && !$y->is_int(); # non-integer power
- return $x->bnan()
- if (($x->{sign} ne '+') || # inf, NaN, <0 etc => NaN
- ($x->{_es} ne '+')); # digits after dot?
+ my $y1 = $y->as_number()->{value}; # make MBI part
- # use BigInt's bfac() for faster calc
- if (! $MBI->_is_zero($x->{_e}))
- {
- $MBI->_lsft($x->{_m}, $x->{_e},10); # change 12e1 to 120e0
- $x->{_e} = $MBI->_zero(); # normalize
- $x->{_es} = '+';
+ # if ($x == -1)
+ if ($x->{sign} eq '-' && $MBI->_is_one($x->{_m}) && $MBI->_is_zero($x->{_e})) {
+ # if $x == -1 and odd/even y => +1/-1 because +-1 ^ (+-1) => +-1
+ return $MBI->_is_odd($y1) ? $x : $x->babs(1);
+ }
+ if ($x_is_zero) {
+ return $x if $y->{sign} eq '+'; # 0**y => 0 (if not y <= 0)
+ # 0 ** -y => 1 / (0 ** y) => 1 / 0! (1 / 0 => +inf)
+ return $x->binf();
}
- $MBI->_fac($x->{_m}); # calculate factorial
- $x->bnorm()->round(@r); # norm again and round result
- }
-
-sub _pow
- {
- # Calculate a power where $y is a non-integer, like 2 ** 0.3
- my ($x,$y,@r) = @_;
- my $self = ref($x);
-
- # if $y == 0.5, it is sqrt($x)
- $HALF = $self->new($HALF) unless ref($HALF);
- return $x->bsqrt(@r,$y) if $y->bcmp($HALF) == 0;
-
- # Using:
- # a ** x == e ** (x * ln a)
-
- # u = y * ln x
- # _ _
- # Taylor: | u u^2 u^3 |
- # x ** y = 1 + | --- + --- + ----- + ... |
- # |_ 1 1*2 1*2*3 _|
-
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters(@r);
-
- return $x if $x->is_nan(); # error in _find_round_parameters?
-
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
-
- my ($limit,$v,$u,$below,$factor,$next,$over);
-
- $u = $x->copy()->blog(undef,$scale)->bmul($y);
- my $do_invert = ($u->{sign} eq '-');
- $u->bneg() if $do_invert;
- $v = $self->bone(); # 1
- $factor = $self->new(2); # 2
- $x->bone(); # first term: 1
-
- $below = $v->copy();
- $over = $u->copy();
-
- $limit = $self->new("1E-". ($scale-1));
- #my $steps = 0;
- while (3 < 5)
- {
- # we calculate the next term, and add it to the last
- # when the next term is below our limit, it won't affect the outcome
- # anymore, so we stop:
- $next = $over->copy()->bdiv($below,$scale);
- last if $next->bacmp($limit) <= 0;
- $x->badd($next);
- # calculate things for the next term
- $over *= $u; $below *= $factor; $factor->binc();
- last if $x->{sign} !~ /^[-+]$/;
+ my $new_sign = '+';
+ $new_sign = $MBI->_is_odd($y1) ? '-' : '+' if $x->{sign} ne '+';
- #$steps++;
- }
+ # calculate $x->{_m} ** $y and $x->{_e} * $y separately (faster)
+ $x->{_m} = $MBI->_pow($x->{_m}, $y1);
+ $x->{_e} = $MBI->_mul ($x->{_e}, $y1);
- if ($do_invert)
- {
- my $x_copy = $x->copy;
- $x->bone->bdiv($x_copy, $scale);
- }
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
- }
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
-
-sub bpow
- {
- # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
- # compute power of two numbers, second arg is used as integer
- # modifies first argument
-
- # set up parameters
- my ($self,$x,$y,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$a,$p,$r) = objectify(2,@_);
+ $x->{sign} = $new_sign;
+ $x->bnorm();
+ if ($y->{sign} eq '-') {
+ # modify $x in place!
+ my $z = $x->copy(); $x->bone();
+ return scalar $x->bdiv($z, $a, $p, $r); # round in one go (might ignore y's A!)
}
+ $x->round($a, $p, $r, $y);
+}
- return $x if $x->modify('bpow');
+sub blog {
+ my ($class, $x, $base, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(2, @_);
- return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
- return $x if $x->{sign} =~ /^[+-]inf$/;
-
- # cache the result of is_zero
- my $y_is_zero = $y->is_zero();
- return $x->bone() if $y_is_zero;
- return $x if $x->is_one() || $y->is_one();
+ # If called as $x -> blog() or $x -> blog(undef), don't objectify the
+ # undefined base, since undef signals that the base is Euler's number.
+ #unless (ref($x) && !defined($base)) {
+ # # objectify is costly, so avoid it
+ # if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ # ($class, $x, $base, $a, $p, $r) = objectify(2, @_);
+ # }
+ #}
- my $x_is_zero = $x->is_zero();
- return $x->_pow($y,$a,$p,$r) if !$x_is_zero && !$y->is_int(); # non-integer power
+ return $x if $x->modify('blog');
- my $y1 = $y->as_number()->{value}; # make MBI part
+ return $x -> bnan() if $x -> is_nan();
- # if ($x == -1)
- if ($x->{sign} eq '-' && $MBI->_is_one($x->{_m}) && $MBI->_is_zero($x->{_e}))
- {
- # if $x == -1 and odd/even y => +1/-1 because +-1 ^ (+-1) => +-1
- return $MBI->_is_odd($y1) ? $x : $x->babs(1);
- }
- if ($x_is_zero)
- {
- return $x if $y->{sign} eq '+'; # 0**y => 0 (if not y <= 0)
- # 0 ** -y => 1 / (0 ** y) => 1 / 0! (1 / 0 => +inf)
- return $x->binf();
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # P = undef
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- my $new_sign = '+';
- $new_sign = $MBI->_is_odd($y1) ? '-' : '+' if $x->{sign} ne '+';
+ my $done = 0;
+ if (defined $base) {
+ $base = $class -> new($base) unless ref $base;
+ if ($base -> is_nan() || $base -> is_one()) {
+ $x -> bnan();
+ $done = 1;
+ } elsif ($base -> is_inf() || $base -> is_zero()) {
+ if ($x -> is_inf() || $x -> is_zero()) {
+ $x -> bnan();
+ } else {
+ $x -> bzero(@params);
+ }
+ $done = 1;
+ } elsif ($base -> is_negative()) { # -inf < base < 0
+ if ($x -> is_one()) { # x = 1
+ $x -> bzero(@params);
+ } elsif ($x == $base) {
+ $x -> bone('+', @params); # x = base
+ } else {
+ $x -> bnan(); # otherwise
+ }
+ $done = 1;
+ } elsif ($x == $base) {
+ $x -> bone('+', @params); # 0 < base && 0 < x < inf
+ $done = 1;
+ }
+ }
- # calculate $x->{_m} ** $y and $x->{_e} * $y separately (faster)
- $x->{_m} = $MBI->_pow( $x->{_m}, $y1);
- $x->{_e} = $MBI->_mul ($x->{_e}, $y1);
+ # We now know that the base is either undefined or positive and finite.
+
+ unless ($done) {
+ if ($x -> is_inf()) { # x = +/-inf
+ my $sign = defined $base && $base < 1 ? '-' : '+';
+ $x -> binf($sign);
+ $done = 1;
+ } elsif ($x -> is_neg()) { # -inf < x < 0
+ $x -> bnan();
+ $done = 1;
+ } elsif ($x -> is_one()) { # x = 1
+ $x -> bzero(@params);
+ $done = 1;
+ } elsif ($x -> is_zero()) { # x = 0
+ my $sign = defined $base && $base < 1 ? '+' : '-';
+ $x -> binf($sign);
+ $done = 1;
+ }
+ }
- $x->{sign} = $new_sign;
- $x->bnorm();
- if ($y->{sign} eq '-')
- {
- # modify $x in place!
- my $z = $x->copy(); $x->bone();
- return scalar $x->bdiv($z,$a,$p,$r); # round in one go (might ignore y's A!)
+ if ($done) {
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ return $x;
}
- $x->round($a,$p,$r,$y);
- }
-sub bmodpow
- {
- # takes a very large number to a very large exponent in a given very
- # large modulus, quickly, thanks to binary exponentiation. Supports
- # negative exponents.
- my ($self,$num,$exp,$mod,@r) = objectify(3,@_);
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a}; delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
+
+ # upgrade $x if $x is not a Math::BigFloat (handle BigInt input)
+ # XXX TODO: rebless!
+ if (!$x->isa('Math::BigFloat')) {
+ $x = Math::BigFloat->new($x);
+ $class = ref($x);
+ }
+
+ $done = 0;
+
+ # If the base is defined and an integer, try to calculate integer result
+ # first. This is very fast, and in case the real result was found, we can
+ # stop right here.
+ if (defined $base && $base->is_int() && $x->is_int()) {
+ my $i = $MBI->_copy($x->{_m});
+ $i = $MBI->_lsft($i, $x->{_e}, 10) unless $MBI->_is_zero($x->{_e});
+ my $int = Math::BigInt->bzero();
+ $int->{value} = $i;
+ $int->blog($base->as_number());
+ # if ($exact)
+ if ($base->as_number()->bpow($int) == $x) {
+ # found result, return it
+ $x->{_m} = $int->{value};
+ $x->{_e} = $MBI->_zero();
+ $x->{_es} = '+';
+ $x->bnorm();
+ $done = 1;
+ }
+ }
- return $num if $num->modify('bmodpow');
+ if ($done == 0) {
+ # base is undef, so base should be e (Euler's number), so first calculate the
+ # log to base e (using reduction by 10 (and probably 2)):
+ $class->_log_10($x, $scale);
- # check modulus for valid values
- return $num->bnan() if ($mod->{sign} ne '+' # NaN, - , -inf, +inf
- || $mod->is_zero());
+ # and if a different base was requested, convert it
+ if (defined $base) {
+ $base = Math::BigFloat->new($base) unless $base->isa('Math::BigFloat');
+ # not ln, but some other base (don't modify $base)
+ $x->bdiv($base->copy()->blog(undef, $scale), $scale);
+ }
+ }
- # check exponent for valid values
- if ($exp->{sign} =~ /\w/)
- {
- # i.e., if it's NaN, +inf, or -inf...
- return $num->bnan();
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
}
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
- $num->bmodinv ($mod) if ($exp->{sign} eq '-');
+ $x;
+}
- # check num for valid values (also NaN if there was no inverse but $exp < 0)
- return $num->bnan() if $num->{sign} !~ /^[+-]$/;
+sub bexp {
+ # Calculate e ** X (Euler's number to the power of X)
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # $mod is positive, sign on $exp is ignored, result also positive
+ return $x if $x->modify('bexp');
- # XXX TODO: speed it up when all three numbers are integers
- $num->bpow($exp)->bmod($mod);
- }
+ return $x->binf() if $x->{sign} eq '+inf';
+ return $x->bzero() if $x->{sign} eq '-inf';
-###############################################################################
-# trigonometric functions
-
-# helper function for bpi() and batan2(), calculates arcus tanges (1/x)
-
-sub _atan_inv
- {
- # return a/b so that a/b approximates atan(1/x) to at least limit digits
- my ($self, $x, $limit) = @_;
-
- # Taylor: x^3 x^5 x^7 x^9
- # atan = x - --- + --- - --- + --- - ...
- # 3 5 7 9
-
- # 1 1 1 1
- # atan 1/x = - - ------- + ------- - ------- + ...
- # x x^3 * 3 x^5 * 5 x^7 * 7
-
- # 1 1 1 1
- # atan 1/x = - - --------- + ---------- - ----------- + ...
- # 5 3 * 125 5 * 3125 7 * 78125
-
- # Subtraction/addition of a rational:
-
- # 5 7 5*3 +- 7*4
- # - +- - = ----------
- # 4 3 4*3
-
- # Term: N N+1
- #
- # a 1 a * d * c +- b
- # ----- +- ------------------ = ----------------
- # b d * c b * d * c
-
- # since b1 = b0 * (d-2) * c
-
- # a 1 a * d +- b / c
- # ----- +- ------------------ = ----------------
- # b d * c b * d
-
- # and d = d + 2
- # and c = c * x * x
-
- # u = d * c
- # stop if length($u) > limit
- # a = a * u +- b
- # b = b * u
- # d = d + 2
- # c = c * x * x
- # sign = 1 - sign
-
- my $a = $MBI->_one();
- my $b = $MBI->_copy($x);
-
- my $x2 = $MBI->_mul( $MBI->_copy($x), $b); # x2 = x * x
- my $d = $MBI->_new( 3 ); # d = 3
- my $c = $MBI->_mul( $MBI->_copy($x), $x2); # c = x ^ 3
- my $two = $MBI->_new( 2 );
-
- # run the first step unconditionally
- my $u = $MBI->_mul( $MBI->_copy($d), $c);
- $a = $MBI->_mul($a, $u);
- $a = $MBI->_sub($a, $b);
- $b = $MBI->_mul($b, $u);
- $d = $MBI->_add($d, $two);
- $c = $MBI->_mul($c, $x2);
-
- # a is now a * (d-3) * c
- # b is now b * (d-2) * c
-
- # run the second step unconditionally
- $u = $MBI->_mul( $MBI->_copy($d), $c);
- $a = $MBI->_mul($a, $u);
- $a = $MBI->_add($a, $b);
- $b = $MBI->_mul($b, $u);
- $d = $MBI->_add($d, $two);
- $c = $MBI->_mul($c, $x2);
-
- # a is now a * (d-3) * (d-5) * c * c
- # b is now b * (d-2) * (d-4) * c * c
-
- # so we can remove c * c from both a and b to shorten the numbers involved:
- $a = $MBI->_div($a, $x2);
- $b = $MBI->_div($b, $x2);
- $a = $MBI->_div($a, $x2);
- $b = $MBI->_div($b, $x2);
-
-# my $step = 0;
- my $sign = 0; # 0 => -, 1 => +
- while (3 < 5)
- {
-# $step++;
-# if (($i++ % 100) == 0)
-# {
-# print "a=",$MBI->_str($a),"\n";
-# print "b=",$MBI->_str($b),"\n";
-# }
-# print "d=",$MBI->_str($d),"\n";
-# print "x2=",$MBI->_str($x2),"\n";
-# print "c=",$MBI->_str($c),"\n";
-
- my $u = $MBI->_mul( $MBI->_copy($d), $c);
- # use _alen() for libs like GMP where _len() would be O(N^2)
- last if $MBI->_alen($u) > $limit;
- my ($bc,$r) = $MBI->_div( $MBI->_copy($b), $c);
- if ($MBI->_is_zero($r))
- {
- # b / c is an integer, so we can remove c from all terms
- # this happens almost every time:
- $a = $MBI->_mul($a, $d);
- $a = $MBI->_sub($a, $bc) if $sign == 0;
- $a = $MBI->_add($a, $bc) if $sign == 1;
- $b = $MBI->_mul($b, $d);
- }
- else
- {
- # b / c is not an integer, so we keep c in the terms
- # this happens very rarely, for instance for x = 5, this happens only
- # at the following steps:
- # 1, 5, 14, 32, 72, 157, 340, ...
- $a = $MBI->_mul($a, $u);
- $a = $MBI->_sub($a, $b) if $sign == 0;
- $a = $MBI->_add($a, $b) if $sign == 1;
- $b = $MBI->_mul($b, $u);
- }
- $d = $MBI->_add($d, $two);
- $c = $MBI->_mul($c, $x2);
- $sign = 1 - $sign;
-
- }
-
-# print "Took $step steps for ", $MBI->_str($x),"\n";
-# print "a=",$MBI->_str($a),"\n"; print "b=",$MBI->_str($b),"\n";
- # return a/b so that a/b approximates atan(1/x)
- ($a,$b);
- }
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r);
-sub bpi {
+ # also takes care of the "error in _find_round_parameters?" case
+ return $x if $x->{sign} eq 'NaN';
- # Called as Argument list
- # --------- -------------
- # Math::BigFloat->bpi() ("Math::BigFloat")
- # Math::BigFloat->bpi(10) ("Math::BigFloat", 10)
- # $x->bpi() ($x)
- # $x->bpi(10) ($x, 10)
- # Math::BigFloat::bpi() ()
- # Math::BigFloat::bpi(10) (10)
- #
- # In ambiguous cases, we favour the OO-style, so the following case
- #
- # $n = Math::BigFloat->new("10");
- # $x = Math::BigFloat->bpi($n);
- #
- # which gives an argument list with the single element $n, is resolved as
- #
- # $n->bpi();
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # P = undef
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it's not enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+ return $x->bone(@params) if $x->is_zero();
- my $accu; # accuracy (number of digits)
- my $prec; # precision
- my $rndm; # round mode
+ if (!$x->isa('Math::BigFloat')) {
+ $x = Math::BigFloat->new($x);
+ $class = ref($x);
+ }
- # If bpi() is called as a function ...
- #
- # This cludge is necessary because we still support bpi() as a function. If
- # bpi() is called with either no argument or one argument, and that one
- # argument is either undefined or a scalar that looks like a number, then
- # we assume bpi() is called as a function.
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
- if (@_ == 0 &&
- (defined($self) && !ref($self) && $self =~ /^\s*[+-]?\d/i)
- ||
- !defined($self))
- {
- $accu = $self;
- $class = __PACKAGE__;
- $self = $class -> bzero(); # initialize
- }
+ my $x_org = $x->copy();
- # ... or if bpi() is called as a method ...
+ # We use the following Taylor series:
- else {
- if ($selfref) { # bpi() called as instance method
- return $self if $self -> modify('bpi');
- } else { # bpi() called as class method
- $self = $class -> bzero(); # initialize
- }
- $accu = shift;
- $prec = shift;
- $rndm = shift;
- }
+ # x x^2 x^3 x^4
+ # e = 1 + --- + --- + --- + --- ...
+ # 1! 2! 3! 4!
- my @r = ($accu, $prec, $rndm);
+ # The difference for each term is X and N, which would result in:
+ # 2 copy, 2 mul, 2 add, 1 inc, 1 div operations per term
- # We need to limit the accuracy to protect against overflow.
- my $fallback = 0;
- my ($scale, @params);
- ($self, @params) = $self -> _find_round_parameters(@r);
+ # But it is faster to compute exp(1) and then raising it to the
+ # given power, esp. if $x is really big and an integer because:
- # Error in _find_round_parameters?
- #
- # We can't return here, because that will fail if $self was a NaN when
- # bpi() was invoked, and we want to assign pi to $x. It is probably not a
- # good idea that _find_round_parameters() signals invalid round parameters
- # by silently returning a NaN. Fixme!
- #return $self if $self && $self->is_nan();
+ # * The numerator is always 1, making the computation faster
+ # * the series converges faster in the case of x == 1
+ # * We can also easily check when we have reached our limit: when the
+ # term to be added is smaller than "1E$scale", we can stop - f.i.
+ # scale == 5, and we have 1/40320, then we stop since 1/40320 < 1E-5.
+ # * we can compute the *exact* result by simulating bigrat math:
- # No rounding at all, so must use fallback.
- if (scalar @params == 0) {
- # Simulate old behaviour
- $params[0] = $self -> div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
+ # 1 1 gcd(3, 4) = 1 1*24 + 1*6 5
+ # - + - = ---------- = --
+ # 6 24 6*24 24
- # The accuracy, i.e., the number of digits. Pi has one digit before the
- # dot, so a precision of 4 digits is equivalent to an accuracy of 5 digits.
+ # We do not compute the gcd() here, but simple do:
+ # 1 1 1*24 + 1*6 30
+ # - + - = --------- = --
+ # 6 24 6*24 144
- my $n = $params[0] || 1 - $params[1];
+ # In general:
+ # a c a*d + c*b and note that c is always 1 and d = (b*f)
+ # - + - = ---------
+ # b d b*d
- if ($n < 1000) {
+ # This leads to: which can be reduced by b to:
+ # a 1 a*b*f + b a*f + 1
+ # - + - = --------- = -------
+ # b b*f b*b*f b*f
- # after 黃見利 (Hwang Chien-Lih) (1997)
- # pi/4 = 183 * atan(1/239) + 32 * atan(1/1023) – 68 * atan(1/5832)
- # + 12 * atan(1/110443) - 12 * atan(1/4841182) - 100 * atan(1/6826318)
+ # The first terms in the series are:
- # Use a few more digits in the intermediate computations.
+ # 1 1 1 1 1 1 1 1 13700
+ # -- + -- + -- + -- + -- + --- + --- + ---- = -----
+ # 1 1 2 6 24 120 720 5040 5040
- my $nextra = $n < 800 ? 4 : 5;
- $n += $nextra;
-
- my ($a, $b) = $class->_atan_inv($MBI->_new(239), $n);
- my ($c, $d) = $class->_atan_inv($MBI->_new(1023), $n);
- my ($e, $f) = $class->_atan_inv($MBI->_new(5832), $n);
- my ($g, $h) = $class->_atan_inv($MBI->_new(110443), $n);
- my ($i, $j) = $class->_atan_inv($MBI->_new(4841182), $n);
- my ($k, $l) = $class->_atan_inv($MBI->_new(6826318), $n);
-
- $MBI->_mul($a, $MBI->_new(732));
- $MBI->_mul($c, $MBI->_new(128));
- $MBI->_mul($e, $MBI->_new(272));
- $MBI->_mul($g, $MBI->_new(48));
- $MBI->_mul($i, $MBI->_new(48));
- $MBI->_mul($k, $MBI->_new(400));
-
- my $x = $class->bone(); $x->{_m} = $a; my $x_d = $class->bone(); $x_d->{_m} = $b;
- my $y = $class->bone(); $y->{_m} = $c; my $y_d = $class->bone(); $y_d->{_m} = $d;
- my $z = $class->bone(); $z->{_m} = $e; my $z_d = $class->bone(); $z_d->{_m} = $f;
- my $u = $class->bone(); $u->{_m} = $g; my $u_d = $class->bone(); $u_d->{_m} = $h;
- my $v = $class->bone(); $v->{_m} = $i; my $v_d = $class->bone(); $v_d->{_m} = $j;
- my $w = $class->bone(); $w->{_m} = $k; my $w_d = $class->bone(); $w_d->{_m} = $l;
- $x->bdiv($x_d, $n);
- $y->bdiv($y_d, $n);
- $z->bdiv($z_d, $n);
- $u->bdiv($u_d, $n);
- $v->bdiv($v_d, $n);
- $w->bdiv($w_d, $n);
-
- delete $x->{_a}; delete $y->{_a}; delete $z->{_a};
- delete $u->{_a}; delete $v->{_a}; delete $w->{_a};
- $x->badd($y)->bsub($z)->badd($u)->bsub($v)->bsub($w);
-
- for my $key (qw/ sign _m _es _e _a _p /) {
- $self -> {$key} = $x -> {$key} if exists $x -> {$key};
- }
+ # Note that we cannot simple reduce 13700/5040 to 685/252, but must keep A and B!
+ if ($scale <= 75) {
+ # set $x directly from a cached string form
+ $x->{_m} = $MBI->_new(
+ "27182818284590452353602874713526624977572470936999595749669676277240766303535476");
+ $x->{sign} = '+';
+ $x->{_es} = '-';
+ $x->{_e} = $MBI->_new(79);
} else {
+ # compute A and B so that e = A / B.
+
+ # After some terms we end up with this, so we use it as a starting point:
+ my $A = $MBI->_new("90933395208605785401971970164779391644753259799242");
+ my $F = $MBI->_new(42);
+ my $step = 42;
+
+ # Compute how many steps we need to take to get $A and $B sufficiently big
+ my $steps = _len_to_steps($scale - 4);
+ # print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
+ while ($step++ <= $steps) {
+ # calculate $a * $f + 1
+ $A = $MBI->_mul($A, $F);
+ $A = $MBI->_inc($A);
+ # increment f
+ $F = $MBI->_inc($F);
+ }
+ # compute $B as factorial of $steps (this is faster than doing it manually)
+ my $B = $MBI->_fac($MBI->_new($steps));
- # For large accuracy, the arctan formulas become very inefficient with
- # Math::BigFloat. Switch to Brent-Salamin (aka AGM or Gauss-Legendre).
+ # print "A ", $MBI->_str($A), "\nB ", $MBI->_str($B), "\n";
- # Use a few more digits in the intermediate computations.
- my $nextra = 8;
+ # compute A/B with $scale digits in the result (truncate, not round)
+ $A = $MBI->_lsft($A, $MBI->_new($scale), 10);
+ $A = $MBI->_div($A, $B);
- $HALF = $class -> new($HALF) unless ref($HALF);
- my ($an, $bn, $tn, $pn) = ($class -> bone, $HALF -> copy -> bsqrt($n),
- $HALF -> copy -> bmul($HALF), $class -> bone);
- while ($pn < $n) {
- my $prev_an = $an -> copy;
- $an -> badd($bn) -> bmul($HALF, $n);
- $bn -> bmul($prev_an) -> bsqrt($n);
- $prev_an -> bsub($an);
- $tn -> bsub($pn * $prev_an * $prev_an);
- $pn -> badd($pn);
- }
- $an -> badd($bn);
- $an -> bmul($an, $n) -> bdiv(4 * $tn, $n);
+ $x->{_m} = $A;
+ $x->{sign} = '+';
+ $x->{_es} = '-';
+ $x->{_e} = $MBI->_new($scale);
+ }
- for my $key (qw/ sign _m _es _e _a _p /) {
- $self -> {$key} = $an -> {$key} if exists $an -> {$key};;
+ # $x contains now an estimate of e, with some surplus digits, so we can round
+ if (!$x_org->is_one()) {
+ # Reduce size of fractional part, followup with integer power of two.
+ my $lshift = 0;
+ while ($lshift < 30 && $x_org->bacmp(2 << $lshift) > 0) {
+ $lshift++;
+ }
+ # Raise $x to the wanted power and round it.
+ if ($lshift == 0) {
+ $x->bpow($x_org, @params);
+ } else {
+ my($mul, $rescale) = (1 << $lshift, $scale+1+$lshift);
+ $x->bpow(scalar $x_org->bdiv($mul, $rescale), $rescale)->bpow($mul, @params);
+ }
+ } else {
+ # else just round the already computed result
+ delete $x->{_a};
+ delete $x->{_p};
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
}
}
-
- $self -> round(@params);
-
if ($fallback) {
- delete $self->{_a};
- delete $self->{_p};
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
}
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
- return $self;
+ $x; # return modified $x
}
-sub bcos
- {
- # Calculate a cosinus of x.
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+sub bnok {
+ # Calculate n over k (binomial coefficient or "choose" function) as integer.
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # Taylor: x^2 x^4 x^6 x^8
- # cos = 1 - --- + --- - --- + --- ...
- # 2! 4! 6! 8!
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters(@r);
-
- # constant object or error in _find_round_parameters?
- return $x if $x->modify('bcos') || $x->is_nan();
+ return $x if $x->modify('bnok');
- return $x->bone(@r) if $x->is_zero();
+ return $x->bnan() if $x->is_nan() || $y->is_nan();
+ return $x->binf() if $x->is_inf();
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
-
- my $last = 0;
- my $over = $x * $x; # X ^ 2
- my $x2 = $over->copy(); # X ^ 2; difference between terms
- my $sign = 1; # start with -=
- my $below = $self->new(2); my $factorial = $self->new(3);
- $x->bone(); delete $x->{_a}; delete $x->{_p};
-
- my $limit = $self->new("1E-". ($scale-1));
- #my $steps = 0;
- while (3 < 5)
- {
- # we calculate the next term, and add it to the last
- # when the next term is below our limit, it won't affect the outcome
- # anymore, so we stop:
- my $next = $over->copy()->bdiv($below,$scale);
- last if $next->bacmp($limit) <= 0;
-
- if ($sign == 0)
- {
- $x->badd($next);
- }
- else
- {
- $x->bsub($next);
- }
- $sign = 1-$sign; # alternate
- # calculate things for the next term
- $over->bmul($x2); # $x*$x
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- }
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
- }
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
+ my $u = $x->as_int();
+ $u->bnok($y->as_int());
-sub bsin
- {
- # Calculate a sinus of x.
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ $x->{_m} = $u->{value};
+ $x->{_e} = $MBI->_zero();
+ $x->{_es} = '+';
+ $x->{sign} = '+';
+ $x->bnorm(@r);
+}
- # taylor: x^3 x^5 x^7 x^9
- # sin = x - --- + --- - --- + --- ...
- # 3! 5! 7! 9!
+sub bsin {
+ # Calculate a sinus of x.
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters(@r);
-
- # constant object or error in _find_round_parameters?
- return $x if $x->modify('bsin') || $x->is_nan();
+ # taylor: x^3 x^5 x^7 x^9
+ # sin = x - --- + --- - --- + --- ...
+ # 3! 5! 7! 9!
- return $x->bzero(@r) if $x->is_zero();
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters(@r);
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it is not
- # enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
- }
-
- # when user set globals, they would interfere with our calculation, so
- # disable them and later re-enable them
- no strict 'refs';
- my $abr = "$self\::accuracy"; my $ab = $$abr; $$abr = undef;
- my $pbr = "$self\::precision"; my $pb = $$pbr; $$pbr = undef;
- # we also need to disable any set A or P on $x (_find_round_parameters took
- # them already into account), since these would interfere, too
- delete $x->{_a}; delete $x->{_p};
- # need to disable $upgrade in BigInt, to avoid deep recursion
- local $Math::BigInt::upgrade = undef;
-
- my $last = 0;
- my $over = $x * $x; # X ^ 2
- my $x2 = $over->copy(); # X ^ 2; difference between terms
- $over->bmul($x); # X ^ 3 as starting value
- my $sign = 1; # start with -=
- my $below = $self->new(6); my $factorial = $self->new(4);
- delete $x->{_a}; delete $x->{_p};
-
- my $limit = $self->new("1E-". ($scale-1));
- #my $steps = 0;
- while (3 < 5)
- {
- # we calculate the next term, and add it to the last
- # when the next term is below our limit, it won't affect the outcome
- # anymore, so we stop:
- my $next = $over->copy()->bdiv($below,$scale);
- last if $next->bacmp($limit) <= 0;
-
- if ($sign == 0)
- {
- $x->badd($next);
- }
- else
- {
- $x->bsub($next);
- }
- $sign = 1-$sign; # alternate
- # calculate things for the next term
- $over->bmul($x2); # $x*$x
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- $below->bmul($factorial); $factorial->binc(); # n*(n+1)
- }
-
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+ # constant object or error in _find_round_parameters?
+ return $x if $x->modify('bsin') || $x->is_nan();
+
+ return $x->bzero(@r) if $x->is_zero();
+
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # disable P
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- # restore globals
- $$abr = $ab; $$pbr = $pb;
- $x;
- }
-sub batan2 {
- # $y -> batan2($x) returns the arcus tangens of $y / $x.
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
- # Set up parameters.
- my ($self, $y, $x, @r) = (ref($_[0]), @_);
+ my $last = 0;
+ my $over = $x * $x; # X ^ 2
+ my $x2 = $over->copy(); # X ^ 2; difference between terms
+ $over->bmul($x); # X ^ 3 as starting value
+ my $sign = 1; # start with -=
+ my $below = $class->new(6); my $factorial = $class->new(4);
+ delete $x->{_a};
+ delete $x->{_p};
- # Objectify is costly, so avoid it if we can.
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($self, $y, $x, @r) = objectify(2, @_);
+ my $limit = $class->new("1E-". ($scale-1));
+ #my $steps = 0;
+ while (3 < 5) {
+ # we calculate the next term, and add it to the last
+ # when the next term is below our limit, it won't affect the outcome
+ # anymore, so we stop:
+ my $next = $over->copy()->bdiv($below, $scale);
+ last if $next->bacmp($limit) <= 0;
+
+ if ($sign == 0) {
+ $x->badd($next);
+ } else {
+ $x->bsub($next);
+ }
+ $sign = 1-$sign; # alternate
+ # calculate things for the next term
+ $over->bmul($x2); # $x*$x
+ $below->bmul($factorial); $factorial->binc(); # n*(n+1)
+ $below->bmul($factorial); $factorial->binc(); # n*(n+1)
}
- # Quick exit if $y is read-only.
- return $y if $y -> modify('batan2');
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
+}
- # Handle all NaN cases.
- return $y -> bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+sub bcos {
+ # Calculate a cosinus of x.
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # We need to limit the accuracy to protect against overflow.
+ # Taylor: x^2 x^4 x^6 x^8
+ # cos = 1 - --- + --- - --- + --- ...
+ # 2! 4! 6! 8!
+
+ # we need to limit the accuracy to protect against overflow
my $fallback = 0;
my ($scale, @params);
- ($y, @params) = $y -> _find_round_parameters(@r);
+ ($x, @params) = $x->_find_round_parameters(@r);
- # Error in _find_round_parameters?
- return $y if $y->is_nan();
+ # constant object or error in _find_round_parameters?
+ return $x if $x->modify('bcos') || $x->is_nan();
- # No rounding at all, so must use fallback.
+ return $x->bone(@r) if $x->is_zero();
+
+ # no rounding at all, so must use fallback
if (scalar @params == 0) {
- # Simulate old behaviour
- $params[0] = $self -> div_scale(); # and round to it as accuracy
- $params[1] = undef; # disable P
- $scale = $params[0] + 4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # disable P
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
} else {
- # The 4 below is empirical, and there might be cases where it is not
- # enough ...
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
$scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- if ($x -> is_inf("+")) { # x = inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.25"); # pi/4
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.25"); # -pi/4
- } else { # -inf < y < inf
- return $y -> bzero(@r); # 0
- }
- }
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a}; delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
- elsif ($x -> is_inf("-")) { # x = -inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.75"); # 3/4 pi
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.75"); # -3/4 pi
- } elsif ($y >= 0) { # y >= 0
- $y -> bpi($scale); # pi
- } else { # y < 0
- $y -> bpi($scale) -> bneg(); # -pi
- }
- }
+ my $last = 0;
+ my $over = $x * $x; # X ^ 2
+ my $x2 = $over->copy(); # X ^ 2; difference between terms
+ my $sign = 1; # start with -=
+ my $below = $class->new(2);
+ my $factorial = $class->new(3);
+ $x->bone();
+ delete $x->{_a};
+ delete $x->{_p};
- elsif ($x > 0) { # 0 < x < inf
- if ($y -> is_inf("+")) { # y = inf
- $y -> bpi($scale) -> bmul("0.5"); # pi/2
- } elsif ($y -> is_inf("-")) { # y = -inf
- $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
- } else { # -inf < y < inf
- $y -> bdiv($x, $scale) -> batan($scale); # atan(y/x)
- }
- }
+ my $limit = $class->new("1E-". ($scale-1));
+ #my $steps = 0;
+ while (3 < 5) {
+ # we calculate the next term, and add it to the last
+ # when the next term is below our limit, it won't affect the outcome
+ # anymore, so we stop:
+ my $next = $over->copy()->bdiv($below, $scale);
+ last if $next->bacmp($limit) <= 0;
- elsif ($x < 0) { # -inf < x < 0
- my $pi = $class -> bpi($scale);
- if ($y >= 0) { # y >= 0
- $y -> bdiv($x, $scale) -> batan() # atan(y/x) + pi
- -> badd($pi);
- } else { # y < 0
- $y -> bdiv($x, $scale) -> batan() # atan(y/x) - pi
- -> bsub($pi);
+ if ($sign == 0) {
+ $x->badd($next);
+ } else {
+ $x->bsub($next);
}
+ $sign = 1-$sign; # alternate
+ # calculate things for the next term
+ $over->bmul($x2); # $x*$x
+ $below->bmul($factorial); $factorial->binc(); # n*(n+1)
+ $below->bmul($factorial); $factorial->binc(); # n*(n+1)
}
- else { # x = 0
- if ($y > 0) { # y > 0
- $y -> bpi($scale) -> bmul("0.5"); # pi/2
- } elsif ($y < 0) { # y < 0
- $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
- } else { # y = 0
- return $y -> bzero(@r); # 0
- }
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
}
-
- $y -> round(@r);
-
if ($fallback) {
- delete $y->{_a};
- delete $y->{_p};
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
}
-
- return $y;
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
}
sub batan {
@@ -3342,8 +2715,8 @@ sub batan {
$self->{_e} = $pi->{_e};
$self->{_es} = $pi->{_es};
# -y => -PI/2, +y => PI/2
- $self->{sign} = substr($self->{sign}, 0, 1); # "+inf" => "+"
- $MBI->_div($self->{_m}, $MBI->_new(2));
+ $self->{sign} = substr($self->{sign}, 0, 1); # "+inf" => "+"
+ $self -> {_m} = $MBI->_div($self->{_m}, $MBI->_new(2));
return $self;
}
@@ -3352,7 +2725,7 @@ sub batan {
# no rounding at all, so must use fallback
if (scalar @params == 0) {
# simulate old behaviour
- $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[0] = $class->div_scale(); # and round to it as accuracy
$params[1] = undef; # disable P
$scale = $params[0]+4; # at least four more for proper round
$params[2] = $r[2]; # round mode by caller or undef
@@ -3372,7 +2745,7 @@ sub batan {
$self->{_e} = $pi->{_e};
$self->{_es} = $pi->{_es};
# leave the sign of $self alone (+1 => +PI/4, -1 => -PI/4)
- $MBI->_div($self->{_m}, $MBI->_new(4));
+ $self->{_m} = $MBI->_div($self->{_m}, $MBI->_new(4));
return $self;
}
@@ -3380,20 +2753,21 @@ sub batan {
# calculate PI/2 - atan(1/x):
my $one = $MBI->_new(1);
my $pi = undef;
- if ($self->bacmp($self->copy->bone) >= 0) {
+ if ($self->bacmp($self->copy()->bone) >= 0) {
# calculate PI/2
$pi = $class->bpi($scale - 3);
- $MBI->_div($pi->{_m}, $MBI->_new(2));
+ $pi->{_m} = $MBI->_div($pi->{_m}, $MBI->_new(2));
# calculate 1/$self:
my $self_copy = $self->copy();
# modify $self in place
- $self->bone(); $self->bdiv($self_copy, $scale);
+ $self->bone();
+ $self->bdiv($self_copy, $scale);
}
my $fmul = 1;
foreach my $k (0 .. int($scale / 20)) {
$fmul *= 2;
- $self->bdiv($self->copy->bmul($self)->binc->bsqrt($scale + 4)->binc, $scale + 4);
+ $self->bdiv($self->copy()->bmul($self)->binc->bsqrt($scale + 4)->binc, $scale + 4);
}
# When user set globals, they would interfere with our calculation, so
@@ -3403,18 +2777,20 @@ sub batan {
my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
# We also need to disable any set A or P on $self (_find_round_parameters
# took them already into account), since these would interfere, too
- delete $self->{_a}; delete $self->{_p};
+ delete $self->{_a};
+ delete $self->{_p};
# Need to disable $upgrade in BigInt, to avoid deep recursion.
local $Math::BigInt::upgrade = undef;
my $last = 0;
- my $over = $self * $self; # X ^ 2
- my $self2 = $over->copy(); # X ^ 2; difference between terms
- $over->bmul($self); # X ^ 3 as starting value
- my $sign = 1; # start with -=
+ my $over = $self * $self; # X ^ 2
+ my $self2 = $over->copy(); # X ^ 2; difference between terms
+ $over->bmul($self); # X ^ 3 as starting value
+ my $sign = 1; # start with -=
my $below = $class->new(3);
my $two = $class->new(2);
- delete $self->{_a}; delete $self->{_p};
+ delete $self->{_a};
+ delete $self->{_p};
my $limit = $class->new("1E-". ($scale-1));
#my $steps = 0;
@@ -3455,1191 +2831,2032 @@ sub batan {
}
if ($fallback) {
# Clear a/p after round, since user did not request it.
- delete $self->{_a}; delete $self->{_p};
+ delete $self->{_a};
+ delete $self->{_p};
}
# restore globals
- $$abr = $ab; $$pbr = $pb;
+ $$abr = $ab;
+ $$pbr = $pb;
$self;
}
-###############################################################################
-# rounding functions
-
-sub bfround
- {
- # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
- # $n == 0 means round to integer
- # expects and returns normalized numbers!
- my $x = shift; my $self = ref($x) || $x; $x = $self->new(shift) if !ref($x);
+sub batan2 {
+ # $y -> batan2($x) returns the arcus tangens of $y / $x.
- my ($scale,$mode) = $x->_scale_p(@_);
- return $x if !defined $scale || $x->modify('bfround'); # no-op
+ # Set up parameters.
+ my ($class, $y, $x, @r) = (ref($_[0]), @_);
- # never round a 0, +-inf, NaN
- if ($x->is_zero())
- {
- $x->{_p} = $scale if !defined $x->{_p} || $x->{_p} < $scale; # -3 < -2
- return $x;
+ # Objectify is costly, so avoid it if we can.
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $y, $x, @r) = objectify(2, @_);
}
- return $x if $x->{sign} !~ /^[+-]$/;
- # don't round if x already has lower precision
- return $x if (defined $x->{_p} && $x->{_p} < 0 && $scale < $x->{_p});
+ # Quick exit if $y is read-only.
+ return $y if $y -> modify('batan2');
- $x->{_p} = $scale; # remember round in any case
- delete $x->{_a}; # and clear A
- if ($scale < 0)
- {
- # round right from the '.'
-
- return $x if $x->{_es} eq '+'; # e >= 0 => nothing to round
-
- $scale = -$scale; # positive for simplicity
- my $len = $MBI->_len($x->{_m}); # length of mantissa
-
- # the following poses a restriction on _e, but if _e is bigger than a
- # scalar, you got other problems (memory etc) anyway
- my $dad = -(0+ ($x->{_es}.$MBI->_num($x->{_e}))); # digits after dot
- my $zad = 0; # zeros after dot
- $zad = $dad - $len if (-$dad < -$len); # for 0.00..00xxx style
-
- # print "scale $scale dad $dad zad $zad len $len\n";
- # number bsstr len zad dad
- # 0.123 123e-3 3 0 3
- # 0.0123 123e-4 3 1 4
- # 0.001 1e-3 1 2 3
- # 1.23 123e-2 3 0 2
- # 1.2345 12345e-4 5 0 4
-
- # do not round after/right of the $dad
- return $x if $scale > $dad; # 0.123, scale >= 3 => exit
-
- # round to zero if rounding inside the $zad, but not for last zero like:
- # 0.0065, scale -2, round last '0' with following '65' (scale == zad case)
- return $x->bzero() if $scale < $zad;
- if ($scale == $zad) # for 0.006, scale -3 and trunc
- {
- $scale = -$len;
- }
- else
- {
- # adjust round-point to be inside mantissa
- if ($zad != 0)
- {
- $scale = $scale-$zad;
+ # Handle all NaN cases.
+ return $y -> bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+
+ # We need to limit the accuracy to protect against overflow.
+ my $fallback = 0;
+ my ($scale, @params);
+ ($y, @params) = $y -> _find_round_parameters(@r);
+
+ # Error in _find_round_parameters?
+ return $y if $y->is_nan();
+
+ # No rounding at all, so must use fallback.
+ if (scalar @params == 0) {
+ # Simulate old behaviour
+ $params[0] = $class -> div_scale(); # and round to it as accuracy
+ $params[1] = undef; # disable P
+ $scale = $params[0] + 4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # The 4 below is empirical, and there might be cases where it is not
+ # enough ...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
+
+ if ($x -> is_inf("+")) { # x = inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y -> bpi($scale) -> bmul("0.25"); # pi/4
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y -> bpi($scale) -> bmul("-0.25"); # -pi/4
+ } else { # -inf < y < inf
+ return $y -> bzero(@r); # 0
}
- else
- {
- my $dbd = $len - $dad; $dbd = 0 if $dbd < 0; # digits before dot
- $scale = $dbd+$scale;
+ } elsif ($x -> is_inf("-")) { # x = -inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y -> bpi($scale) -> bmul("0.75"); # 3/4 pi
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y -> bpi($scale) -> bmul("-0.75"); # -3/4 pi
+ } elsif ($y >= 0) { # y >= 0
+ $y -> bpi($scale); # pi
+ } else { # y < 0
+ $y -> bpi($scale) -> bneg(); # -pi
+ }
+ } elsif ($x > 0) { # 0 < x < inf
+ if ($y -> is_inf("+")) { # y = inf
+ $y -> bpi($scale) -> bmul("0.5"); # pi/2
+ } elsif ($y -> is_inf("-")) { # y = -inf
+ $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
+ } else { # -inf < y < inf
+ $y -> bdiv($x, $scale) -> batan($scale); # atan(y/x)
+ }
+ } elsif ($x < 0) { # -inf < x < 0
+ my $pi = $class -> bpi($scale);
+ if ($y >= 0) { # y >= 0
+ $y -> bdiv($x, $scale) -> batan() # atan(y/x) + pi
+ -> badd($pi);
+ } else { # y < 0
+ $y -> bdiv($x, $scale) -> batan() # atan(y/x) - pi
+ -> bsub($pi);
+ }
+ } else { # x = 0
+ if ($y > 0) { # y > 0
+ $y -> bpi($scale) -> bmul("0.5"); # pi/2
+ } elsif ($y < 0) { # y < 0
+ $y -> bpi($scale) -> bmul("-0.5"); # -pi/2
+ } else { # y = 0
+ return $y -> bzero(@r); # 0
}
- }
}
- else
- {
- # round left from the '.'
-
- # 123 => 100 means length(123) = 3 - $scale (2) => 1
-
- my $dbt = $MBI->_len($x->{_m});
- # digits before dot
- my $dbd = $dbt + ($x->{_es} . $MBI->_num($x->{_e}));
- # should be the same, so treat it as this
- $scale = 1 if $scale == 0;
- # shortcut if already integer
- return $x if $scale == 1 && $dbt <= $dbd;
- # maximum digits before dot
- ++$dbd;
-
- if ($scale > $dbd)
- {
- # not enough digits before dot, so round to zero
- return $x->bzero;
- }
- elsif ( $scale == $dbd )
- {
- # maximum
- $scale = -$dbt;
- }
- else
- {
- $scale = $dbd - $scale;
- }
- }
- # pass sign to bround for rounding modes '+inf' and '-inf'
- my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
- $m->bround($scale,$mode);
- $x->{_m} = $m->{value}; # get our mantissa back
- $x->bnorm();
- }
-
-sub bround
- {
- # accuracy: preserve $N digits, and overwrite the rest with 0's
- my $x = shift; my $self = ref($x) || $x; $x = $self->new(shift) if !ref($x);
-
- if (($_[0] || 0) < 0)
- {
- require Carp; Carp::croak ('bround() needs positive accuracy');
+
+ $y -> round(@r);
+
+ if ($fallback) {
+ delete $y->{_a};
+ delete $y->{_p};
}
- my ($scale,$mode) = $x->_scale_a(@_);
- return $x if !defined $scale || $x->modify('bround'); # no-op
+ return $y;
+}
+##############################################################################
- # scale is now either $x->{_a}, $accuracy, or the user parameter
- # test whether $x already has lower accuracy, do nothing in this case
- # but do round if the accuracy is the same, since a math operation might
- # want to round a number with A=5 to 5 digits afterwards again
- return $x if defined $x->{_a} && $x->{_a} < $scale;
+sub bsqrt {
+ # calculate square root
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- # scale < 0 makes no sense
- # scale == 0 => keep all digits
- # never round a +-inf, NaN
- return $x if ($scale <= 0) || $x->{sign} !~ /^[+-]$/;
+ return $x if $x->modify('bsqrt');
- # 1: never round a 0
- # 2: if we should keep more digits than the mantissa has, do nothing
- if ($x->is_zero() || $MBI->_len($x->{_m}) <= $scale)
- {
- $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale;
- return $x;
+ return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0
+ return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
+ return $x->round($a, $p, $r) if $x->is_zero() || $x->is_one();
+
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my (@params, $scale);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r);
+
+ return $x if $x->is_nan(); # error in _find_round_parameters?
+
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- # pass sign to bround for '+inf' and '-inf' rounding modes
- my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
+
+ my $i = $MBI->_copy($x->{_m});
+ $i = $MBI->_lsft($i, $x->{_e}, 10) unless $MBI->_is_zero($x->{_e});
+ my $xas = Math::BigInt->bzero();
+ $xas->{value} = $i;
+
+ my $gs = $xas->copy()->bsqrt(); # some guess
+
+ if (($x->{_es} ne '-') # guess can't be accurate if there are
+ # digits after the dot
+ && ($xas->bacmp($gs * $gs) == 0)) # guess hit the nail on the head?
+ {
+ # exact result, copy result over to keep $x
+ $x->{_m} = $gs->{value};
+ $x->{_e} = $MBI->_zero();
+ $x->{_es} = '+';
+ $x->bnorm();
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # re-enable A and P, upgrade is taken care of by "local"
+ ${"$class\::accuracy"} = $ab;
+ ${"$class\::precision"} = $pb;
+ return $x;
+ }
- $m->bround($scale,$mode); # round mantissa
- $x->{_m} = $m->{value}; # get our mantissa back
- $x->{_a} = $scale; # remember rounding
- delete $x->{_p}; # and clear P
- $x->bnorm(); # del trailing zeros gen. by bround()
- }
+ # sqrt(2) = 1.4 because sqrt(2*100) = 1.4*10; so we can increase the accuracy
+ # of the result by multiplying the input by 100 and then divide the integer
+ # result of sqrt(input) by 10. Rounding afterwards returns the real result.
-sub bfloor
- {
- # round towards minus infinity
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ # The following steps will transform 123.456 (in $x) into 123456 (in $y1)
+ my $y1 = $MBI->_copy($x->{_m});
- return $x if $x->modify('bfloor');
-
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+ my $length = $MBI->_len($y1);
- # if $x has digits after dot
- if ($x->{_es} eq '-')
- {
- $x->{_m} = $MBI->_rsft($x->{_m},$x->{_e},10); # cut off digits after dot
- $x->{_e} = $MBI->_zero(); # trunc/norm
- $x->{_es} = '+'; # abs e
- $MBI->_inc($x->{_m}) if $x->{sign} eq '-'; # increment if negative
- }
- $x->round($a,$p,$r);
- }
+ # Now calculate how many digits the result of sqrt(y1) would have
+ my $digits = int($length / 2);
-sub bceil
- {
- # round towards plus infinity
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ # But we need at least $scale digits, so calculate how many are missing
+ my $shift = $scale - $digits;
- return $x if $x->modify('bceil');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+ # This happens if the input had enough digits
+ # (we take care of integer guesses above)
+ $shift = 0 if $shift < 0;
- # if $x has digits after dot
- if ($x->{_es} eq '-')
- {
- $x->{_m} = $MBI->_rsft($x->{_m},$x->{_e},10); # cut off digits after dot
- $x->{_e} = $MBI->_zero(); # trunc/norm
- $x->{_es} = '+'; # abs e
- if ($x->{sign} eq '+') {
- $MBI->_inc($x->{_m}); # increment if positive
+ # Multiply in steps of 100, by shifting left two times the "missing" digits
+ my $s2 = $shift * 2;
+
+ # We now make sure that $y1 has the same odd or even number of digits than
+ # $x had. So when _e of $x is odd, we must shift $y1 by one digit left,
+ # because we always must multiply by steps of 100 (sqrt(100) is 10) and not
+ # steps of 10. The length of $x does not count, since an even or odd number
+ # of digits before the dot is not changed by adding an even number of digits
+ # after the dot (the result is still odd or even digits long).
+ $s2++ if $MBI->_is_odd($x->{_e});
+
+ $y1 = $MBI->_lsft($y1, $MBI->_new($s2), 10);
+
+ # now take the square root and truncate to integer
+ $y1 = $MBI->_sqrt($y1);
+
+ # By "shifting" $y1 right (by creating a negative _e) we calculate the final
+ # result, which is than later rounded to the desired scale.
+
+ # calculate how many zeros $x had after the '.' (or before it, depending
+ # on sign of $dat, the result should have half as many:
+ my $dat = $MBI->_num($x->{_e});
+ $dat = -$dat if $x->{_es} eq '-';
+ $dat += $length;
+
+ if ($dat > 0) {
+ # no zeros after the dot (e.g. 1.23, 0.49 etc)
+ # preserve half as many digits before the dot than the input had
+ # (but round this "up")
+ $dat = int(($dat+1)/2);
} else {
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # avoid -0
+ $dat = int(($dat)/2);
}
+ $dat -= $MBI->_len($y1);
+ if ($dat < 0) {
+ $dat = abs($dat);
+ $x->{_e} = $MBI->_new($dat);
+ $x->{_es} = '-';
+ } else {
+ $x->{_e} = $MBI->_new($dat);
+ $x->{_es} = '+';
}
- $x->round($a,$p,$r);
- }
+ $x->{_m} = $y1;
+ $x->bnorm();
-sub bint
- {
- # round towards zero
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
+}
- return $x if $x->modify('bint');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+sub broot {
+ # calculate $y'th root of $x
- # if $x has digits after the decimal point
- if ($x->{_es} eq '-')
- {
- $x->{_m} = $MBI->_rsft($x->{_m},$x->{_e},10); # cut off digits after dot
- $x->{_e} = $MBI->_zero(); # truncate/normalize
- $x->{_es} = '+'; # abs e
- $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # avoid -0
- }
- $x->round($a,$p,$r);
- }
-
-sub brsft
- {
- # shift right by $y (divide by power of $n)
-
- # set up parameters
- my ($self,$x,$y,$n,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$n,$a,$p,$r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, $a, $p, $r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $a, $p, $r) = objectify(2, @_);
}
- return $x if $x->modify('brsft');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+ return $x if $x->modify('broot');
- $n = 2 if !defined $n; $n = $self->new($n);
+ # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
+ return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
+ $y->{sign} !~ /^\+$/;
- # negative amount?
- return $x->blsft($y->copy()->babs(),$n) if $y->{sign} =~ /^-/;
+ return $x if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
- # the following call to bdiv() will return either quo or (quo,remainder):
- $x->bdiv($n->bpow($y),$a,$p,$r,$y);
- }
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my (@params, $scale);
+ ($x, @params) = $x->_find_round_parameters($a, $p, $r);
-sub blsft
- {
- # shift left by $y (multiply by power of $n)
-
- # set up parameters
- my ($self,$x,$y,$n,$a,$p,$r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$n,$a,$p,$r) = objectify(2,@_);
+ return $x if $x->is_nan(); # error in _find_round_parameters?
+
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
}
- return $x if $x->modify('blsft');
- return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef; # should be really parent class vs MBI
+
+ # remember sign and make $x positive, since -4 ** (1/2) => -2
+ my $sign = 0;
+ $sign = 1 if $x->{sign} eq '-';
+ $x->{sign} = '+';
- $n = 2 if !defined $n; $n = $self->new($n);
+ my $is_two = 0;
+ if ($y->isa('Math::BigFloat')) {
+ $is_two = ($y->{sign} eq '+' && $MBI->_is_two($y->{_m}) && $MBI->_is_zero($y->{_e}));
+ } else {
+ $is_two = ($y == 2);
+ }
+
+ # normal square root if $y == 2:
+ if ($is_two) {
+ $x->bsqrt($scale+4);
+ } elsif ($y->is_one('-')) {
+ # $x ** -1 => 1/$x
+ my $u = $class->bone()->bdiv($x, $scale);
+ # copy private parts over
+ $x->{_m} = $u->{_m};
+ $x->{_e} = $u->{_e};
+ $x->{_es} = $u->{_es};
+ } else {
+ # calculate the broot() as integer result first, and if it fits, return
+ # it rightaway (but only if $x and $y are integer):
+
+ my $done = 0; # not yet
+ if ($y->is_int() && $x->is_int()) {
+ my $i = $MBI->_copy($x->{_m});
+ $i = $MBI->_lsft($i, $x->{_e}, 10) unless $MBI->_is_zero($x->{_e});
+ my $int = Math::BigInt->bzero();
+ $int->{value} = $i;
+ $int->broot($y->as_number());
+ # if ($exact)
+ if ($int->copy()->bpow($y) == $x) {
+ # found result, return it
+ $x->{_m} = $int->{value};
+ $x->{_e} = $MBI->_zero();
+ $x->{_es} = '+';
+ $x->bnorm();
+ $done = 1;
+ }
+ }
+ if ($done == 0) {
+ my $u = $class->bone()->bdiv($y, $scale+4);
+ delete $u->{_a}; delete $u->{_p}; # otherwise it conflicts
+ $x->bpow($u, $scale+4); # el cheapo
+ }
+ }
+ $x->bneg() if $sign == 1;
- # negative amount?
- return $x->brsft($y->copy()->babs(),$n) if $y->{sign} =~ /^-/;
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
+}
- $x->bmul($n->bpow($y),$a,$p,$r,$y);
- }
+sub bfac {
+ # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
+ # compute factorial number, modifies first argument
-###############################################################################
+ # set up parameters
+ my ($class, $x, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ ($class, $x, @r) = objectify(1, @_) if !ref($x);
-sub DESTROY
- {
- # going through AUTOLOAD for every DESTROY is costly, avoid it by empty sub
- }
-
-sub AUTOLOAD
- {
- # make fxxx and bxxx both work by selectively mapping fxxx() to MBF::bxxx()
- # or falling back to MBI::bxxx()
- my $name = $AUTOLOAD;
-
- $name =~ s/(.*):://; # split package
- my $c = $1 || $class;
- no strict 'refs';
- $c->import() if $IMPORT == 0;
- if (!_method_alias($name))
- {
- if (!defined $name)
- {
- # delayed load of Carp and avoid recursion
- require Carp;
- Carp::croak ("$c: Can't call a method without name");
- }
- if (!_method_hand_up($name))
- {
- # delayed load of Carp and avoid recursion
- require Carp;
- Carp::croak ("Can't call $c\-\>$name, not a valid method");
- }
- # try one level up, but subst. bxxx() for fxxx() since MBI only got bxxx()
- $name =~ s/^f/b/;
- return &{"Math::BigInt"."::$name"}(@_);
- }
- my $bname = $name; $bname =~ s/^f/b/;
- $c .= "::$name";
- *{$c} = \&{$bname};
- &{$c}; # uses @_
- }
-
-sub exponent
- {
- # return a copy of the exponent
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
-
- if ($x->{sign} !~ /^[+-]$/)
- {
- my $s = $x->{sign}; $s =~ s/^[+-]//;
- return Math::BigInt->new($s); # -inf, +inf => +inf
- }
- Math::BigInt->new( $x->{_es} . $MBI->_str($x->{_e}));
- }
-
-sub mantissa
- {
- # return a copy of the mantissa
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
-
- if ($x->{sign} !~ /^[+-]$/)
- {
- my $s = $x->{sign}; $s =~ s/^[+]//;
- return Math::BigInt->new($s); # -inf, +inf => +inf
+ # inf => inf
+ return $x if $x->modify('bfac') || $x->{sign} eq '+inf';
+
+ return $x->bnan()
+ if (($x->{sign} ne '+') || # inf, NaN, <0 etc => NaN
+ ($x->{_es} ne '+')); # digits after dot?
+
+ # use BigInt's bfac() for faster calc
+ if (! $MBI->_is_zero($x->{_e})) {
+ $x->{_m} = $MBI->_lsft($x->{_m}, $x->{_e}, 10); # change 12e1 to 120e0
+ $x->{_e} = $MBI->_zero(); # normalize
+ $x->{_es} = '+';
}
- my $m = Math::BigInt->new( $MBI->_str($x->{_m}));
- $m->bneg() if $x->{sign} eq '-';
+ $x->{_m} = $MBI->_fac($x->{_m}); # calculate factorial
+ $x->bnorm()->round(@r); # norm again and round result
+}
- $m;
- }
+sub blsft {
+ # shift left by $y (multiply by $b ** $y)
-sub parts
- {
- # return a copy of both the exponent and the mantissa
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+ # set up parameters
+ my ($class, $x, $y, $b, $a, $p, $r) = (ref($_[0]), @_);
- if ($x->{sign} !~ /^[+-]$/)
- {
- my $s = $x->{sign}; $s =~ s/^[+]//; my $se = $s; $se =~ s/^[-]//;
- return ($self->new($s),$self->new($se)); # +inf => inf and -inf,+inf => inf
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $b, $a, $p, $r) = objectify(2, @_);
}
- my $m = Math::BigInt->bzero();
- $m->{value} = $MBI->_copy($x->{_m});
- $m->bneg() if $x->{sign} eq '-';
- ($m, Math::BigInt->new( $x->{_es} . $MBI->_num($x->{_e}) ));
- }
-##############################################################################
-# private stuff (internal use only)
-
-sub import
- {
- my $self = shift;
- my $l = scalar @_;
- my $lib = ''; my @a;
- my $lib_kind = 'try';
- $IMPORT=1;
- for ( my $i = 0; $i < $l ; $i++)
- {
- if ( $_[$i] eq ':constant' )
- {
- # This causes overlord er load to step in. 'binary' and 'integer'
- # are handled by BigInt.
- overload::constant float => sub { $self->new(shift); };
- }
- elsif ($_[$i] eq 'upgrade')
- {
- # this causes upgrading
- $upgrade = $_[$i+1]; # or undef to disable
- $i++;
- }
- elsif ($_[$i] eq 'downgrade')
- {
- # this causes downgrading
- $downgrade = $_[$i+1]; # or undef to disable
- $i++;
- }
- elsif ($_[$i] =~ /^(lib|try|only)\z/)
- {
- # alternative library
- $lib = $_[$i+1] || ''; # default Calc
- $lib_kind = $1; # lib, try or only
- $i++;
- }
- elsif ($_[$i] eq 'with')
- {
- # alternative class for our private parts()
- # XXX: no longer supported
- # $MBI = $_[$i+1] || 'Math::BigInt';
- $i++;
- }
- else
- {
- push @a, $_[$i];
- }
- }
-
- $lib =~ tr/a-zA-Z0-9,://cd; # restrict to sane characters
- # let use Math::BigInt lib => 'GMP'; use Math::BigFloat; still work
- my $mbilib = eval { Math::BigInt->config()->{lib} };
- if ((defined $mbilib) && ($MBI eq 'Math::BigInt::Calc'))
- {
- # MBI already loaded
- Math::BigInt->import( $lib_kind, "$lib,$mbilib", 'objectify');
+ return $x if $x -> modify('blsft');
+ return $x if $x -> {sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+ $b = 2 if !defined $b;
+ $b = $class -> new($b) unless ref($b) && $b -> isa($class);
+
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+
+ # shift by a negative amount?
+ return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
+
+ $x -> bmul($b -> bpow($y), $a, $p, $r, $y);
+}
+
+sub brsft {
+ # shift right by $y (divide $b ** $y)
+
+ # set up parameters
+ my ($class, $x, $y, $b, $a, $p, $r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $b, $a, $p, $r) = objectify(2, @_);
}
- else
- {
- # MBI not loaded, or with ne "Math::BigInt::Calc"
- $lib .= ",$mbilib" if defined $mbilib;
- $lib =~ s/^,//; # don't leave empty
-
- # replacement library can handle lib statement, but also could ignore it
-
- # Perl < 5.6.0 dies with "out of memory!" when eval() and ':constant' is
- # used in the same script, or eval inside import(). So we require MBI:
- require Math::BigInt;
- Math::BigInt->import( $lib_kind => $lib, 'objectify' );
- }
- if ($@)
- {
- require Carp; Carp::croak ("Couldn't load $lib: $! $@");
+
+ return $x if $x -> modify('brsft');
+ return $x if $x -> {sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+ $b = 2 if !defined $b;
+ $b = $class -> new($b) unless ref($b) && $b -> isa($class);
+
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+
+ # shift by a negative amount?
+ return $x -> blsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
+
+ # the following call to bdiv() will return either quotient (scalar context)
+ # or quotient and remainder (list context).
+ $x -> bdiv($b -> bpow($y), $a, $p, $r, $y);
+}
+
+###############################################################################
+# Bitwise methods
+###############################################################################
+
+sub band {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'band() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for band()' if @_ < 1;
+
+ return if $x -> modify('band');
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> band($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_m} = $xtmp -> {_m};
+ $x -> {_es} = $xtmp -> {_es};
+ $x -> {_e} = $xtmp -> {_e};
+
+ return $x -> round(@r);
+}
+
+sub bior {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bior() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for bior()' if @_ < 1;
+
+ return if $x -> modify('bior');
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bior($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_m} = $xtmp -> {_m};
+ $x -> {_es} = $xtmp -> {_es};
+ $x -> {_e} = $xtmp -> {_e};
+
+ return $x -> round(@r);
+}
+
+sub bxor {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bxor() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for bxor()' if @_ < 1;
+
+ return if $x -> modify('bxor');
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bxor($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_m} = $xtmp -> {_m};
+ $x -> {_es} = $xtmp -> {_es};
+ $x -> {_e} = $xtmp -> {_e};
+
+ return $x -> round(@r);
+}
+
+sub bnot {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bnot() is an instance method, not a class method' unless $xref;
+
+ return if $x -> modify('bnot');
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bnot();
+ $xtmp = $class -> new($xtmp); # back to Math::BigFloat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_m} = $xtmp -> {_m};
+ $x -> {_es} = $xtmp -> {_es};
+ $x -> {_e} = $xtmp -> {_e};
+
+ return $x -> round(@r);
+}
+
+###############################################################################
+# Rounding methods
+###############################################################################
+
+sub bround {
+ # accuracy: preserve $N digits, and overwrite the rest with 0's
+ my $x = shift;
+ my $class = ref($x) || $x;
+ $x = $class->new(shift) if !ref($x);
+
+ if (($_[0] || 0) < 0) {
+ Carp::croak('bround() needs positive accuracy');
}
- # find out which one was actually loaded
- $MBI = Math::BigInt->config()->{lib};
- # register us with MBI to get notified of future lib changes
- Math::BigInt::_register_callback( $self, sub { $MBI = $_[0]; } );
+ my ($scale, $mode) = $x->_scale_a(@_);
+ return $x if !defined $scale || $x->modify('bround'); # no-op
- $self->export_to_level(1,$self,@a); # export wanted functions
- }
+ # scale is now either $x->{_a}, $accuracy, or the user parameter
+ # test whether $x already has lower accuracy, do nothing in this case
+ # but do round if the accuracy is the same, since a math operation might
+ # want to round a number with A=5 to 5 digits afterwards again
+ return $x if defined $x->{_a} && $x->{_a} < $scale;
-sub bnorm
- {
- # adjust m and e so that m is smallest possible
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ # scale < 0 makes no sense
+ # scale == 0 => keep all digits
+ # never round a +-inf, NaN
+ return $x if ($scale <= 0) || $x->{sign} !~ /^[+-]$/;
- return $x if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ # 1: never round a 0
+ # 2: if we should keep more digits than the mantissa has, do nothing
+ if ($x->is_zero() || $MBI->_len($x->{_m}) <= $scale) {
+ $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale;
+ return $x;
+ }
- my $zeros = $MBI->_zeros($x->{_m}); # correct for trailing zeros
- if ($zeros != 0)
- {
- my $z = $MBI->_new($zeros);
- $x->{_m} = $MBI->_rsft ($x->{_m}, $z, 10);
- if ($x->{_es} eq '-')
- {
- if ($MBI->_acmp($x->{_e},$z) >= 0)
+ # pass sign to bround for '+inf' and '-inf' rounding modes
+ my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
+
+ $m->bround($scale, $mode); # round mantissa
+ $x->{_m} = $m->{value}; # get our mantissa back
+ $x->{_a} = $scale; # remember rounding
+ delete $x->{_p}; # and clear P
+ $x->bnorm(); # del trailing zeros gen. by bround()
+}
+
+sub bfround {
+ # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
+ # $n == 0 means round to integer
+ # expects and returns normalized numbers!
+ my $x = shift;
+ my $class = ref($x) || $x;
+ $x = $class->new(shift) if !ref($x);
+
+ my ($scale, $mode) = $x->_scale_p(@_);
+ return $x if !defined $scale || $x->modify('bfround'); # no-op
+
+ # never round a 0, +-inf, NaN
+ if ($x->is_zero()) {
+ $x->{_p} = $scale if !defined $x->{_p} || $x->{_p} < $scale; # -3 < -2
+ return $x;
+ }
+ return $x if $x->{sign} !~ /^[+-]$/;
+
+ # don't round if x already has lower precision
+ return $x if (defined $x->{_p} && $x->{_p} < 0 && $scale < $x->{_p});
+
+ $x->{_p} = $scale; # remember round in any case
+ delete $x->{_a}; # and clear A
+ if ($scale < 0) {
+ # round right from the '.'
+
+ return $x if $x->{_es} eq '+'; # e >= 0 => nothing to round
+
+ $scale = -$scale; # positive for simplicity
+ my $len = $MBI->_len($x->{_m}); # length of mantissa
+
+ # the following poses a restriction on _e, but if _e is bigger than a
+ # scalar, you got other problems (memory etc) anyway
+ my $dad = -(0+ ($x->{_es}.$MBI->_num($x->{_e}))); # digits after dot
+ my $zad = 0; # zeros after dot
+ $zad = $dad - $len if (-$dad < -$len); # for 0.00..00xxx style
+
+ # print "scale $scale dad $dad zad $zad len $len\n";
+ # number bsstr len zad dad
+ # 0.123 123e-3 3 0 3
+ # 0.0123 123e-4 3 1 4
+ # 0.001 1e-3 1 2 3
+ # 1.23 123e-2 3 0 2
+ # 1.2345 12345e-4 5 0 4
+
+ # do not round after/right of the $dad
+ return $x if $scale > $dad; # 0.123, scale >= 3 => exit
+
+ # round to zero if rounding inside the $zad, but not for last zero like:
+ # 0.0065, scale -2, round last '0' with following '65' (scale == zad case)
+ return $x->bzero() if $scale < $zad;
+ if ($scale == $zad) # for 0.006, scale -3 and trunc
{
- $x->{_e} = $MBI->_sub ($x->{_e}, $z);
- $x->{_es} = '+' if $MBI->_is_zero($x->{_e});
+ $scale = -$len;
+ } else {
+ # adjust round-point to be inside mantissa
+ if ($zad != 0) {
+ $scale = $scale-$zad;
+ } else {
+ my $dbd = $len - $dad;
+ $dbd = 0 if $dbd < 0; # digits before dot
+ $scale = $dbd+$scale;
+ }
}
- else
- {
- $x->{_e} = $MBI->_sub ( $MBI->_copy($z), $x->{_e});
- $x->{_es} = '+';
+ } else {
+ # round left from the '.'
+
+ # 123 => 100 means length(123) = 3 - $scale (2) => 1
+
+ my $dbt = $MBI->_len($x->{_m});
+ # digits before dot
+ my $dbd = $dbt + ($x->{_es} . $MBI->_num($x->{_e}));
+ # should be the same, so treat it as this
+ $scale = 1 if $scale == 0;
+ # shortcut if already integer
+ return $x if $scale == 1 && $dbt <= $dbd;
+ # maximum digits before dot
+ ++$dbd;
+
+ if ($scale > $dbd) {
+ # not enough digits before dot, so round to zero
+ return $x->bzero;
+ } elsif ($scale == $dbd) {
+ # maximum
+ $scale = -$dbt;
+ } else {
+ $scale = $dbd - $scale;
}
- }
- else
- {
- $x->{_e} = $MBI->_add ($x->{_e}, $z);
- }
}
- else
- {
- # $x can only be 0Ey if there are no trailing zeros ('0' has 0 trailing
- # zeros). So, for something like 0Ey, set y to 1, and -0 => +0
- $x->{sign} = '+', $x->{_es} = '+', $x->{_e} = $MBI->_one()
- if $MBI->_is_zero($x->{_m});
+ # pass sign to bround for rounding modes '+inf' and '-inf'
+ my $m = bless { sign => $x->{sign}, value => $x->{_m} }, 'Math::BigInt';
+ $m->bround($scale, $mode);
+ $x->{_m} = $m->{value}; # get our mantissa back
+ $x->bnorm();
+}
+
+sub bfloor {
+ # round towards minus infinity
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->modify('bfloor');
+ return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+ # if $x has digits after dot
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $MBI->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
+ $x->{_e} = $MBI->_zero(); # trunc/norm
+ $x->{_es} = '+'; # abs e
+ $x->{_m} = $MBI->_inc($x->{_m}) if $x->{sign} eq '-'; # increment if negative
}
+ $x->round($a, $p, $r);
+}
- $x; # MBI bnorm is no-op, so do not call it
- }
-
-##############################################################################
+sub bceil {
+ # round towards plus infinity
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
-sub as_hex
- {
- # return number as hexadecimal string (only for integers defined)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+ return $x if $x->modify('bceil');
+ return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
- return '0x0' if $x->is_zero();
+ # if $x has digits after dot
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $MBI->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
+ $x->{_e} = $MBI->_zero(); # trunc/norm
+ $x->{_es} = '+'; # abs e
+ if ($x->{sign} eq '+') {
+ $x->{_m} = $MBI->_inc($x->{_m}); # increment if positive
+ } else {
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # avoid -0
+ }
+ }
+ $x->round($a, $p, $r);
+}
- return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex!?
+sub bint {
+ # round towards zero
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- my $z = $MBI->_copy($x->{_m});
- if (! $MBI->_is_zero($x->{_e})) # > 0
- {
- $MBI->_lsft( $z, $x->{_e},10);
+ return $x if $x->modify('bint');
+ return $x if $x->{sign} !~ /^[+-]$/; # nan, +inf, -inf
+
+ # if $x has digits after the decimal point
+ if ($x->{_es} eq '-') {
+ $x->{_m} = $MBI->_rsft($x->{_m}, $x->{_e}, 10); # cut off digits after dot
+ $x->{_e} = $MBI->_zero(); # truncate/normalize
+ $x->{_es} = '+'; # abs e
+ $x->{sign} = '+' if $MBI->_is_zero($x->{_m}); # avoid -0
}
- $z = Math::BigInt->new( $x->{sign} . $MBI->_num($z));
- $z->as_hex();
- }
+ $x->round($a, $p, $r);
+}
+
+###############################################################################
+# Other mathematical methods
+###############################################################################
-sub as_bin
- {
- # return number as binary digit string (only for integers defined)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub bgcd {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # does not modify arguments, but returns new object
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
- return '0b0' if $x->is_zero();
+ unshift @_, __PACKAGE__
+ unless ref($_[0]) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i;
- return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex!?
+ my ($class, @args) = objectify(0, @_);
- my $z = $MBI->_copy($x->{_m});
- if (! $MBI->_is_zero($x->{_e})) # > 0
- {
- $MBI->_lsft( $z, $x->{_e},10);
+ my $x = shift @args;
+ $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
+ return $class->bnan() unless $x -> is_int();
+
+ while (@args) {
+ my $y = shift @args;
+ $y = $class->new($y) unless ref($y) && $y -> isa($class);
+ return $class->bnan() unless $y -> is_int();
+
+ # greatest common divisor
+ while (! $y->is_zero()) {
+ ($x, $y) = ($y->copy(), $x->copy()->bmod($y));
+ }
+
+ last if $x -> is_one();
}
- $z = Math::BigInt->new( $x->{sign} . $MBI->_num($z));
- $z->as_bin();
- }
+ return $x -> babs();
+}
-sub as_oct
- {
- # return number as octal digit string (only for integers defined)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub blcm {
+ # (BFLOAT or num_str, BFLOAT or num_str) return BFLOAT
+ # does not modify arguments, but returns new object
+ # Least Common Multiple
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
- return '0' if $x->is_zero();
+ unshift @_, __PACKAGE__
+ unless ref($_[0]) || $_[0] =~ /^[a-z]\w*(?:::[a-z]\w*)*$/i;
- return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex!?
+ my ($class, @args) = objectify(0, @_);
- my $z = $MBI->_copy($x->{_m});
- if (! $MBI->_is_zero($x->{_e})) # > 0
- {
- $MBI->_lsft( $z, $x->{_e},10);
+ my $x = shift @args;
+ $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
+ return $class->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
+
+ while (@args) {
+ my $y = shift @args;
+ $y = $class -> new($y) unless ref($y) && $y -> isa($class);
+ return $x->bnan() unless $y -> is_int();
+ my $gcd = $x -> bgcd($y);
+ $x -> bdiv($gcd) -> bmul($y);
}
- $z = Math::BigInt->new( $x->{sign} . $MBI->_num($z));
- $z->as_oct();
- }
-sub as_number
- {
- # return copy as a bigint representation of this BigFloat number
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+ return $x -> babs();
+}
- return $x if $x->modify('as_number');
+###############################################################################
+# Object property methods
+###############################################################################
- if (!$x->isa('Math::BigFloat'))
- {
- # if the object can as_number(), use it
- return $x->as_number() if $x->can('as_number');
- # otherwise, get us a float and then a number
- $x = $x->can('as_float') ? $x->as_float() : $self->new(0+"$x");
+sub length {
+ my $x = shift;
+ my $class = ref($x) || $x;
+ $x = $class->new(shift) unless ref($x);
+
+ return 1 if $MBI->_is_zero($x->{_m});
+
+ my $len = $MBI->_len($x->{_m});
+ $len += $MBI->_num($x->{_e}) if $x->{_es} eq '+';
+ if (wantarray()) {
+ my $t = 0;
+ $t = $MBI->_num($x->{_e}) if $x->{_es} eq '-';
+ return ($len, $t);
}
+ $len;
+}
- return Math::BigInt->binf($x->sign()) if $x->is_inf();
- return Math::BigInt->bnan() if $x->is_nan();
+sub mantissa {
+ # return a copy of the mantissa
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my $z = $MBI->_copy($x->{_m});
- if ($x->{_es} eq '-') # < 0
- {
- $MBI->_rsft( $z, $x->{_e},10);
- }
- elsif (! $MBI->_is_zero($x->{_e})) # > 0
- {
- $MBI->_lsft( $z, $x->{_e},10);
+ if ($x->{sign} !~ /^[+-]$/) {
+ my $s = $x->{sign};
+ $s =~ s/^[+]//;
+ return Math::BigInt->new($s, undef, undef); # -inf, +inf => +inf
}
- $z = Math::BigInt->new( $x->{sign} . $MBI->_str($z));
- $z;
- }
+ my $m = Math::BigInt->new($MBI->_str($x->{_m}), undef, undef);
+ $m->bneg() if $x->{sign} eq '-';
-sub length
- {
- my $x = shift;
- my $class = ref($x) || $x;
- $x = $class->new(shift) unless ref($x);
+ $m;
+}
- return 1 if $MBI->_is_zero($x->{_m});
+sub exponent {
+ # return a copy of the exponent
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my $len = $MBI->_len($x->{_m});
- $len += $MBI->_num($x->{_e}) if $x->{_es} eq '+';
- if (wantarray())
- {
- my $t = 0;
- $t = $MBI->_num($x->{_e}) if $x->{_es} eq '-';
- return ($len, $t);
+ if ($x->{sign} !~ /^[+-]$/) {
+ my $s = $x->{sign};
+$s =~ s/^[+-]//;
+ return Math::BigInt->new($s, undef, undef); # -inf, +inf => +inf
}
- $len;
- }
+ Math::BigInt->new($x->{_es} . $MBI->_str($x->{_e}), undef, undef);
+}
-sub from_hex {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+sub parts {
+ # return a copy of both the exponent and the mantissa
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ my $s = $x->{sign};
+$s =~ s/^[+]//;
+my $se = $s;
+$se =~ s/^[-]//;
+ return ($class->new($s), $class->new($se)); # +inf => inf and -inf, +inf => inf
+ }
+ my $m = Math::BigInt->bzero();
+ $m->{value} = $MBI->_copy($x->{_m});
+ $m->bneg() if $x->{sign} eq '-';
+ ($m, Math::BigInt->new($x->{_es} . $MBI->_num($x->{_e})));
+}
- my $str = shift;
+sub sparts {
+ my $self = shift;
+ my $class = ref $self;
- # If called as a class method, initialize a new object.
+ Carp::croak("sparts() is an instance method, not a class method")
+ unless $class;
- $self = $class -> bzero() unless $selfref;
+ # Not-a-number.
- if ($str =~ s/
- ^
+ if ($self -> is_nan()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> bnan(); # exponent
+ return ($mant, $expo); # list context
+ }
- # sign
- ( [+-]? )
+ # Infinity.
- # optional "hex marker"
- (?: 0? x )?
+ if ($self -> is_inf()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+'); # exponent
+ return ($mant, $expo); # list context
+ }
- # significand using the hex digits 0..9 and a..f
- (
- [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
- (?:
- \.
- (?: [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )* )?
- )?
- |
- \.
- [0-9a-fA-F]+ (?: _ [0-9a-fA-F]+ )*
- )
+ # Finite number.
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
+ my $mant = $class -> bzero();
+ $mant -> {sign} = $self -> {sign};
+ $mant -> {_m} = $MBI->_copy($self -> {_m});
+ return $mant unless wantarray;
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
+ my $expo = $class -> bzero();
+ $expo -> {sign} = $self -> {_es};
+ $expo -> {_m} = $MBI->_copy($self -> {_e});
- # The significand must be multiplied by 2 raised to this exponent.
+ return ($mant, $expo);
+}
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
+sub nparts {
+ my $self = shift;
+ my $class = ref $self;
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand. Since the digits in the significand are in base 16,
- # but the exponent is only in base 2, multiply the exponent adjustment
- # value by log(16) / log(2) = 4.
+ Carp::croak("nparts() is an instance method, not a class method")
+ unless $class;
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx)
- -> bmul("4");
- }
+ # Not-a-number.
- $self -> {sign} = $s_sign;
- $self -> {_m} = $MBI -> _from_hex('0x' . $s_value);
+ if ($self -> is_nan()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> bnan(); # exponent
+ return ($mant, $expo); # list context
+ }
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
- }
+ # Infinity.
- return $self;
+ if ($self -> is_inf()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+'); # exponent
+ return ($mant, $expo); # list context
}
- return $self->bnan();
+ # Finite number.
+
+ my ($mant, $expo) = $self -> sparts();
+
+ if ($mant -> bcmp(0)) {
+ my ($ndigtot, $ndigfrac) = $mant -> length();
+ my $expo10adj = $ndigtot - $ndigfrac - 1;
+
+ if ($expo10adj != 0) {
+ my $factor = "1e" . -$expo10adj;
+ $mant -> bmul($factor);
+ return $mant unless wantarray;
+ $expo -> badd($expo10adj);
+ return ($mant, $expo);
+ }
+ }
+
+ return $mant unless wantarray;
+ return ($mant, $expo);
}
-sub from_oct {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+sub eparts {
+ my $self = shift;
+ my $class = ref $self;
- my $str = shift;
+ Carp::croak("eparts() is an instance method, not a class method")
+ unless $class;
- # If called as a class method, initialize a new object.
+ # Not-a-number and Infinity.
- $self = $class -> bzero() unless $selfref;
+ return $self -> sparts() if $self -> is_nan() || $self -> is_inf();
- if ($str =~ s/
- ^
+ # Finite number.
- # sign
- ( [+-]? )
+ my ($mant, $expo) = $self -> nparts();
- # significand using the octal digits 0..7
- (
- [0-7]+ (?: _ [0-7]+ )*
- (?:
- \.
- (?: [0-7]+ (?: _ [0-7]+ )* )?
- )?
- |
- \.
- [0-7]+ (?: _ [0-7]+ )*
- )
+ my $c = $expo -> copy() -> bmod(3);
+ $mant -> blsft($c, 10);
+ return $mant unless wantarray;
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
+ $expo -> bsub($c);
+ return ($mant, $expo);
+}
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
+sub dparts {
+ my $self = shift;
+ my $class = ref $self;
- # The significand must be multiplied by 2 raised to this exponent.
+ Carp::croak("dparts() is an instance method, not a class method")
+ unless $class;
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
+ # Not-a-number and Infinity.
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand. Since the digits in the significand are in base 8,
- # but the exponent is only in base 2, multiply the exponent adjustment
- # value by log(8) / log(2) = 3.
+ if ($self -> is_nan() || $self -> is_inf()) {
+ my $int = $self -> copy();
+ return $int unless wantarray;
+ my $frc = $class -> bzero();
+ return ($int, $frc);
+ }
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx)
- -> bmul("3");
- }
+ my $int = $self -> copy();
+ my $frc = $class -> bzero();
- $self -> {sign} = $s_sign;
- $self -> {_m} = $MBI -> _from_oct($s_value);
+ # If the input has a fraction part.
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
+ if ($int->{_es} eq '-') {
+ $int->{_m} = $MBI -> _rsft($int->{_m}, $int->{_e}, 10);
+ $int->{_e} = $MBI -> _zero();
+ $int->{_es} = '+';
+ $int->{sign} = '+' if $MBI->_is_zero($int->{_m}); # avoid -0
+
+ return $int unless wantarray;
+ $frc = $self -> copy() -> bsub($int);
+ return ($int, $frc);
+ }
+
+ return $int unless wantarray;
+ return ($int, $frc);
+}
+
+###############################################################################
+# String conversion methods
+###############################################################################
+
+sub bstr {
+ # (ref to BFLOAT or num_str) return num_str
+ # Convert number from internal format to (non-scientific) string format.
+ # internal format is always normalized (no leading zeros, "-0" => "+0")
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ my $es = '0';
+my $len = 1;
+my $cad = 0;
+my $dot = '.';
+
+ # $x is zero?
+ my $not_zero = !($x->{sign} eq '+' && $MBI->_is_zero($x->{_m}));
+ if ($not_zero) {
+ $es = $MBI->_str($x->{_m});
+ $len = CORE::length($es);
+ my $e = $MBI->_num($x->{_e});
+ $e = -$e if $x->{_es} eq '-';
+ if ($e < 0) {
+ $dot = '';
+ # if _e is bigger than a scalar, the following will blow your memory
+ if ($e <= -$len) {
+ my $r = abs($e) - $len;
+ $es = '0.'. ('0' x $r) . $es;
+ $cad = -($len+$r);
+ } else {
+ substr($es, $e, 0) = '.';
+ $cad = $MBI->_num($x->{_e});
+ $cad = -$cad if $x->{_es} eq '-';
+ }
+ } elsif ($e > 0) {
+ # expand with zeros
+ $es .= '0' x $e;
+$len += $e;
+$cad = 0;
}
+ } # if not zero
+
+ $es = '-'.$es if $x->{sign} eq '-';
+ # if set accuracy or precision, pad with zeros on the right side
+ if ((defined $x->{_a}) && ($not_zero)) {
+ # 123400 => 6, 0.1234 => 4, 0.001234 => 4
+ my $zeros = $x->{_a} - $cad; # cad == 0 => 12340
+ $zeros = $x->{_a} - $len if $cad != $len;
+ $es .= $dot.'0' x $zeros if $zeros > 0;
+ } elsif ((($x->{_p} || 0) < 0)) {
+ # 123400 => 6, 0.1234 => 4, 0.001234 => 6
+ my $zeros = -$x->{_p} + $cad;
+ $es .= $dot.'0' x $zeros if $zeros > 0;
+ }
+ $es;
+}
- return $self;
+# Decimal notation, e.g., "12345.6789".
+
+sub bdstr {
+ my $x = shift;
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
}
- return $self->bnan();
+ my $mant = $MBI->_str($x->{_m});
+ my $expo = $x -> exponent();
+
+ my $str = $mant;
+ if ($expo >= 0) {
+ $str .= "0" x $expo;
+ } else {
+ my $mantlen = CORE::length($mant);
+ my $c = $mantlen + $expo;
+ $str = "0" x (1 - $c) . $str if $c <= 0;
+ substr($str, $expo, 0) = '.';
+ }
+
+ return $x->{sign} eq '-' ? "-$str" : $str;
}
-sub from_bin {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+# Scientific notation with significand/mantissa as an integer, e.g., "12345.6789"
+# is written as "123456789e-4".
- my $str = shift;
+sub bsstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- # If called as a class method, initialize a new object.
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
- $self = $class -> bzero() unless $selfref;
+ my $str = $MBI->_str($x->{_m}) . 'e' . $x->{_es}. $MBI->_str($x->{_e});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
- if ($str =~ s/
- ^
+# Normalized notation, e.g., "12345.6789" is written as "1.23456789e+4".
- # sign
- ( [+-]? )
+sub bnstr {
+ my $x = shift;
- # optional "bin marker"
- (?: 0? b )?
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
- # significand using the binary digits 0 and 1
- (
- [01]+ (?: _ [01]+ )*
- (?:
- \.
- (?: [01]+ (?: _ [01]+ )* )?
- )?
- |
- \.
- [01]+ (?: _ [01]+ )*
- )
+ my ($mant, $expo) = $x -> nparts();
- # exponent (power of 2) using decimal digits
- (?:
- [Pp]
- ( [+-]? )
- ( \d+ (?: _ \d+ )* )
- )?
+ my $esgn = $expo < 0 ? '-' : '+';
+ my $eabs = $expo -> babs() -> bfround(0) -> bstr();
+ #$eabs = '0' . $eabs if length($eabs) < 2;
- $
- //x)
- {
- my $s_sign = $1 || '+';
- my $s_value = $2;
- my $e_sign = $3 || '+';
- my $e_value = $4 || '0';
- $s_value =~ tr/_//d;
- $e_value =~ tr/_//d;
+ return $mant . 'e' . $esgn . $eabs;
+}
- # The significand must be multiplied by 2 raised to this exponent.
+# Engineering notation, e.g., "12345.6789" is written as "12.3456789e+3".
- my $two_expon = $class -> new($e_value);
- $two_expon -> bneg() if $e_sign eq '-';
+sub bestr {
+ my $x = shift;
- # If there is a dot in the significand, remove it and adjust the
- # exponent according to the number of digits in the fraction part of
- # the significand.
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
- my $idx = index($s_value, '.');
- if ($idx >= 0) {
- substr($s_value, $idx, 1) = '';
- $two_expon -= $class -> new(CORE::length($s_value))
- -> bsub($idx);
- }
+ my ($mant, $expo) = $x -> eparts();
- $self -> {sign} = $s_sign;
- $self -> {_m} = $MBI -> _from_bin('0b' . $s_value);
+ my $esgn = $expo < 0 ? '-' : '+';
+ my $eabs = $expo -> babs() -> bfround(0) -> bstr();
+ #$eabs = '0' . $eabs if length($eabs) < 2;
- if ($two_expon > 0) {
- my $factor = $class -> new("2") -> bpow($two_expon);
- $self -> bmul($factor);
- } elsif ($two_expon < 0) {
- my $factor = $class -> new("0.5") -> bpow(-$two_expon);
- $self -> bmul($factor);
+ return $mant . 'e' . $esgn . $eabs;
+}
+
+sub as_hex {
+ # return number as hexadecimal string (only for integers defined)
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '0x0' if $x->is_zero();
+
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in hex?
+
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
+ }
+ $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
+ $z->as_hex();
+}
+
+sub as_oct {
+ # return number as octal digit string (only for integers defined)
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '0' if $x->is_zero();
+
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in octal?
+
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
+ }
+ $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
+ $z->as_oct();
+}
+
+sub as_bin {
+ # return number as binary digit string (only for integers defined)
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ return '0b0' if $x->is_zero();
+
+ return $nan if $x->{_es} ne '+'; # how to do 1e-1 in binary?
+
+ my $z = $MBI->_copy($x->{_m});
+ if (! $MBI->_is_zero($x->{_e})) { # > 0
+ $z = $MBI->_lsft($z, $x->{_e}, 10);
+ }
+ $z = Math::BigInt->new($x->{sign} . $MBI->_num($z));
+ $z->as_bin();
+}
+
+sub numify {
+ # Make a Perl scalar number from a Math::BigFloat object.
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ if ($x -> is_nan()) {
+ require Math::Complex;
+ my $inf = Math::Complex::Inf();
+ return $inf - $inf;
+ }
+
+ if ($x -> is_inf()) {
+ require Math::Complex;
+ my $inf = Math::Complex::Inf();
+ return $x -> is_negative() ? -$inf : $inf;
+ }
+
+ # Create a string and let Perl's atoi()/atof() handle the rest.
+ return 0 + $x -> bsstr();
+}
+
+###############################################################################
+# Private methods and functions.
+###############################################################################
+
+sub import {
+ my $class = shift;
+ my $l = scalar @_;
+ my $lib = '';
+my @a;
+ my $lib_kind = 'try';
+ $IMPORT=1;
+ for (my $i = 0; $i < $l ; $i++) {
+ if ($_[$i] eq ':constant') {
+ # This causes overlord er load to step in. 'binary' and 'integer'
+ # are handled by BigInt.
+ overload::constant float => sub { $class->new(shift); };
+ } elsif ($_[$i] eq 'upgrade') {
+ # this causes upgrading
+ $upgrade = $_[$i+1]; # or undef to disable
+ $i++;
+ } elsif ($_[$i] eq 'downgrade') {
+ # this causes downgrading
+ $downgrade = $_[$i+1]; # or undef to disable
+ $i++;
+ } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
+ # alternative library
+ $lib = $_[$i+1] || ''; # default Calc
+ $lib_kind = $1; # lib, try or only
+ $i++;
+ } elsif ($_[$i] eq 'with') {
+ # alternative class for our private parts()
+ # XXX: no longer supported
+ # $MBI = $_[$i+1] || 'Math::BigInt';
+ $i++;
+ } else {
+ push @a, $_[$i];
}
+ }
- return $self;
+ $lib =~ tr/a-zA-Z0-9,://cd; # restrict to sane characters
+ # let use Math::BigInt lib => 'GMP'; use Math::BigFloat; still work
+ my $mbilib = eval { Math::BigInt->config('lib') };
+ if ((defined $mbilib) && ($MBI eq 'Math::BigInt::Calc')) {
+ # MBI already loaded
+ Math::BigInt->import($lib_kind, "$lib, $mbilib", 'objectify');
+ } else {
+ # MBI not loaded, or with ne "Math::BigInt::Calc"
+ $lib .= ",$mbilib" if defined $mbilib;
+ $lib =~ s/^,//; # don't leave empty
+
+ # replacement library can handle lib statement, but also could ignore it
+
+ # Perl < 5.6.0 dies with "out of memory!" when eval() and ':constant' is
+ # used in the same script, or eval inside import(). So we require MBI:
+ require Math::BigInt;
+ Math::BigInt->import($lib_kind => $lib, 'objectify');
}
+ if ($@) {
+ Carp::croak("Couldn't load $lib: $! $@");
+ }
+ # find out which one was actually loaded
+ $MBI = Math::BigInt->config('lib');
- return $self->bnan();
+ # register us with MBI to get notified of future lib changes
+ Math::BigInt::_register_callback($class, sub { $MBI = $_[0]; });
+
+ $class->export_to_level(1, $class, @a); # export wanted functions
}
-1;
+sub _len_to_steps {
+ # Given D (digits in decimal), compute N so that N! (N factorial) is
+ # at least D digits long. D should be at least 50.
+ my $d = shift;
+
+ # two constants for the Ramanujan estimate of ln(N!)
+ my $lg2 = log(2 * 3.14159265) / 2;
+ my $lg10 = log(10);
+
+ # D = 50 => N => 42, so L = 40 and R = 50
+ my $l = 40;
+my $r = $d;
+
+ # Otherwise this does not work under -Mbignum and we do not yet have "no bignum;" :(
+ $l = $l->numify if ref($l);
+ $r = $r->numify if ref($r);
+ $lg2 = $lg2->numify if ref($lg2);
+ $lg10 = $lg10->numify if ref($lg10);
+
+ # binary search for the right value (could this be written as the reverse of lg(n!)?)
+ while ($r - $l > 1) {
+ my $n = int(($r - $l) / 2) + $l;
+ my $ramanujan =
+ int(($n * log($n) - $n + log($n * (1 + 4*$n*(1+2*$n))) / 6 + $lg2) / $lg10);
+ $ramanujan > $d ? $r = $n : $l = $n;
+ }
+ $l;
+}
-__END__
+sub _log {
+ # internal log function to calculate ln() based on Taylor series.
+ # Modifies $x in place.
+ my ($class, $x, $scale) = @_;
+
+ # in case of $x == 1, result is 0
+ return $x->bzero() if $x->is_one();
+
+ # XXX TODO: rewrite this in a similar manner to bexp()
+
+ # http://www.efunda.com/math/taylor_series/logarithmic.cfm?search_string=log
+
+ # u = x-1, v = x+1
+ # _ _
+ # Taylor: | u 1 u^3 1 u^5 |
+ # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 0
+ # |_ v 3 v^3 5 v^5 _|
+
+ # This takes much more steps to calculate the result and is thus not used
+ # u = x-1
+ # _ _
+ # Taylor: | u 1 u^2 1 u^3 |
+ # ln (x) = 2 | --- + - * --- + - * --- + ... | x > 1/2
+ # |_ x 2 x^2 3 x^3 _|
+
+ my ($limit, $v, $u, $below, $factor, $two, $next, $over, $f);
+
+ $v = $x->copy(); $v->binc(); # v = x+1
+ $x->bdec(); $u = $x->copy(); # u = x-1; x = x-1
+ $x->bdiv($v, $scale); # first term: u/v
+ $below = $v->copy();
+ $over = $u->copy();
+ $u *= $u; $v *= $v; # u^2, v^2
+ $below->bmul($v); # u^3, v^3
+ $over->bmul($u);
+ $factor = $class->new(3); $f = $class->new(2);
+
+ my $steps = 0;
+ $limit = $class->new("1E-". ($scale-1));
+ while (3 < 5) {
+ # we calculate the next term, and add it to the last
+ # when the next term is below our limit, it won't affect the outcome
+ # anymore, so we stop
+
+ # calculating the next term simple from over/below will result in quite
+ # a time hog if the input has many digits, since over and below will
+ # accumulate more and more digits, and the result will also have many
+ # digits, but in the end it is rounded to $scale digits anyway. So if we
+ # round $over and $below first, we save a lot of time for the division
+ # (not with log(1.2345), but try log (123**123) to see what I mean. This
+ # can introduce a rounding error if the division result would be f.i.
+ # 0.1234500000001 and we round it to 5 digits it would become 0.12346, but
+ # if we truncated $over and $below we might get 0.12345. Does this matter
+ # for the end result? So we give $over and $below 4 more digits to be
+ # on the safe side (unscientific error handling as usual... :+D
+
+ $next = $over->copy()->bround($scale+4)
+ ->bdiv($below->copy()->bmul($factor)->bround($scale+4),
+ $scale);
+
+ ## old version:
+ ## $next = $over->copy()->bdiv($below->copy()->bmul($factor), $scale);
-=pod
+ last if $next->bacmp($limit) <= 0;
-=head1 NAME
+ delete $next->{_a};
+ delete $next->{_p};
+ $x->badd($next);
+ # calculate things for the next term
+ $over *= $u;
+ $below *= $v;
+ $factor->badd($f);
+ if (DEBUG) {
+ $steps++;
+ print "step $steps = $x\n" if $steps % 10 == 0;
+ }
+ }
+ print "took $steps steps\n" if DEBUG;
+ $x->bmul($f); # $x *= 2
+}
-Math::BigFloat - Arbitrary size floating point math package
+sub _log_10 {
+ # Internal log function based on reducing input to the range of 0.1 .. 9.99
+ # and then "correcting" the result to the proper one. Modifies $x in place.
+ my ($class, $x, $scale) = @_;
+
+ # Taking blog() from numbers greater than 10 takes a *very long* time, so we
+ # break the computation down into parts based on the observation that:
+ # blog(X*Y) = blog(X) + blog(Y)
+ # We set Y here to multiples of 10 so that $x becomes below 1 - the smaller
+ # $x is the faster it gets. Since 2*$x takes about 10 times as
+ # long, we make it faster by about a factor of 100 by dividing $x by 10.
+
+ # The same observation is valid for numbers smaller than 0.1, e.g. computing
+ # log(1) is fastest, and the further away we get from 1, the longer it takes.
+ # So we also 'break' this down by multiplying $x with 10 and subtract the
+ # log(10) afterwards to get the correct result.
+
+ # To get $x even closer to 1, we also divide by 2 and then use log(2) to
+ # correct for this. For instance if $x is 2.4, we use the formula:
+ # blog(2.4 * 2) == blog (1.2) + blog(2)
+ # and thus calculate only blog(1.2) and blog(2), which is faster in total
+ # than calculating blog(2.4).
+
+ # In addition, the values for blog(2) and blog(10) are cached.
+
+ # Calculate nr of digits before dot:
+ my $dbd = $MBI->_num($x->{_e});
+ $dbd = -$dbd if $x->{_es} eq '-';
+ $dbd += $MBI->_len($x->{_m});
+
+ # more than one digit (e.g. at least 10), but *not* exactly 10 to avoid
+ # infinite recursion
+
+ my $calc = 1; # do some calculation?
+
+ # disable the shortcut for 10, since we need log(10) and this would recurse
+ # infinitely deep
+ if ($x->{_es} eq '+' && $MBI->_is_one($x->{_e}) && $MBI->_is_one($x->{_m})) {
+ $dbd = 0; # disable shortcut
+ # we can use the cached value in these cases
+ if ($scale <= $LOG_10_A) {
+ $x->bzero();
+ $x->badd($LOG_10); # modify $x in place
+ $calc = 0; # no need to calc, but round
+ }
+ # if we can't use the shortcut, we continue normally
+ } else {
+ # disable the shortcut for 2, since we maybe have it cached
+ if (($MBI->_is_zero($x->{_e}) && $MBI->_is_two($x->{_m}))) {
+ $dbd = 0; # disable shortcut
+ # we can use the cached value in these cases
+ if ($scale <= $LOG_2_A) {
+ $x->bzero();
+ $x->badd($LOG_2); # modify $x in place
+ $calc = 0; # no need to calc, but round
+ }
+ # if we can't use the shortcut, we continue normally
+ }
+ }
-=head1 SYNOPSIS
+ # if $x = 0.1, we know the result must be 0-log(10)
+ if ($calc != 0 && $x->{_es} eq '-' && $MBI->_is_one($x->{_e}) &&
+ $MBI->_is_one($x->{_m})) {
+ $dbd = 0; # disable shortcut
+ # we can use the cached value in these cases
+ if ($scale <= $LOG_10_A) {
+ $x->bzero();
+ $x->bsub($LOG_10);
+ $calc = 0; # no need to calc, but round
+ }
+ }
- use Math::BigFloat;
-
- # Number creation
- my $x = Math::BigFloat->new($str); # defaults to 0
- my $y = $x->copy(); # make a true copy
- my $nan = Math::BigFloat->bnan(); # create a NotANumber
- my $zero = Math::BigFloat->bzero(); # create a +0
- my $inf = Math::BigFloat->binf(); # create a +inf
- my $inf = Math::BigFloat->binf('-'); # create a -inf
- my $one = Math::BigFloat->bone(); # create a +1
- my $mone = Math::BigFloat->bone('-'); # create a -1
- my $x = Math::BigFloat->bone('-'); #
-
- my $x = Math::BigFloat->from_hex('0xc.afep+3'); # from hexadecimal
- my $x = Math::BigFloat->from_bin('0b1.1001p-4'); # from binary
- my $x = Math::BigFloat->from_oct('1.3267p-4'); # from octal
-
- my $pi = Math::BigFloat->bpi(100); # PI to 100 digits
-
- # the following examples compute their result to 100 digits accuracy:
- my $cos = Math::BigFloat->new(1)->bcos(100); # cosinus(1)
- my $sin = Math::BigFloat->new(1)->bsin(100); # sinus(1)
- my $atan = Math::BigFloat->new(1)->batan(100); # arcus tangens(1)
-
- my $atan2 = Math::BigFloat->new( 1 )->batan2( 1 ,100); # batan(1)
- my $atan2 = Math::BigFloat->new( 1 )->batan2( 8 ,100); # batan(1/8)
- my $atan2 = Math::BigFloat->new( -2 )->batan2( 1 ,100); # batan(-2)
-
- # Testing
- $x->is_zero(); # true if arg is +0
- $x->is_nan(); # true if arg is NaN
- $x->is_one(); # true if arg is +1
- $x->is_one('-'); # true if arg is -1
- $x->is_odd(); # true if odd, false for even
- $x->is_even(); # true if even, false for odd
- $x->is_pos(); # true if >= 0
- $x->is_neg(); # true if < 0
- $x->is_inf(sign); # true if +inf, or -inf (default is '+')
-
- $x->bcmp($y); # compare numbers (undef,<0,=0,>0)
- $x->bacmp($y); # compare absolutely (undef,<0,=0,>0)
- $x->sign(); # return the sign, either +,- or NaN
- $x->digit($n); # return the nth digit, counting from right
- $x->digit(-$n); # return the nth digit, counting from left
-
- # The following all modify their first argument. If you want to pre-
- # serve $x, use $z = $x->copy()->bXXX($y); See under L</CAVEATS> for
- # necessary when mixing $a = $b assignments with non-overloaded math.
-
- # set
- $x->bzero(); # set $i to 0
- $x->bnan(); # set $i to NaN
- $x->bone(); # set $x to +1
- $x->bone('-'); # set $x to -1
- $x->binf(); # set $x to inf
- $x->binf('-'); # set $x to -inf
-
- $x->bneg(); # negation
- $x->babs(); # absolute value
- $x->bnorm(); # normalize (no-op)
- $x->bnot(); # two's complement (bit wise not)
- $x->binc(); # increment x by 1
- $x->bdec(); # decrement x by 1
-
- $x->badd($y); # addition (add $y to $x)
- $x->bsub($y); # subtraction (subtract $y from $x)
- $x->bmul($y); # multiplication (multiply $x by $y)
- $x->bdiv($y); # divide, set $x to quotient
- # return (quo,rem) or quo if scalar
-
- $x->bmod($y); # modulus ($x % $y)
- $x->bpow($y); # power of arguments ($x ** $y)
- $x->bmodpow($exp,$mod); # modular exponentiation (($num**$exp) % $mod))
- $x->blsft($y, $n); # left shift by $y places in base $n
- $x->brsft($y, $n); # right shift by $y places in base $n
- # returns (quo,rem) or quo if in scalar context
-
- $x->blog(); # logarithm of $x to base e (Euler's number)
- $x->blog($base); # logarithm of $x to base $base (f.i. 2)
- $x->bexp(); # calculate e ** $x where e is Euler's number
-
- $x->band($y); # bit-wise and
- $x->bior($y); # bit-wise inclusive or
- $x->bxor($y); # bit-wise exclusive or
- $x->bnot(); # bit-wise not (two's complement)
-
- $x->bsqrt(); # calculate square-root
- $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
- $x->bfac(); # factorial of $x (1*2*3*4*..$x)
-
- $x->bround($N); # accuracy: preserve $N digits
- $x->bfround($N); # precision: round to the $Nth digit
-
- $x->bfloor(); # return integer less or equal than $x
- $x->bceil(); # return integer greater or equal than $x
- $x->bint(); # round towards zero
-
- # The following do not modify their arguments:
-
- bgcd(@values); # greatest common divisor
- blcm(@values); # lowest common multiplicator
-
- $x->bstr(); # return string
- $x->bsstr(); # return string in scientific notation
-
- $x->as_int(); # return $x as BigInt
- $x->exponent(); # return exponent as BigInt
- $x->mantissa(); # return mantissa as BigInt
- $x->parts(); # return (mantissa,exponent) as BigInt
-
- $x->length(); # number of digits (w/o sign and '.')
- ($l,$f) = $x->length(); # number of digits, and length of fraction
-
- $x->precision(); # return P of $x (or global, if P of $x undef)
- $x->precision($n); # set P of $x to $n
- $x->accuracy(); # return A of $x (or global, if A of $x undef)
- $x->accuracy($n); # set A $x to $n
-
- # these get/set the appropriate global value for all BigFloat objects
- Math::BigFloat->precision(); # Precision
- Math::BigFloat->accuracy(); # Accuracy
- Math::BigFloat->round_mode(); # rounding mode
+ return if $calc == 0; # already have the result
-=head1 DESCRIPTION
+ # default: these correction factors are undef and thus not used
+ my $l_10; # value of ln(10) to A of $scale
+ my $l_2; # value of ln(2) to A of $scale
-All operators (including basic math operations) are overloaded if you
-declare your big floating point numbers as
+ my $two = $class->new(2);
- $i = Math::BigFloat -> new('12_3.456_789_123_456_789E-2');
+ # $x == 2 => 1, $x == 13 => 2, $x == 0.1 => 0, $x == 0.01 => -1
+ # so don't do this shortcut for 1 or 0
+ if (($dbd > 1) || ($dbd < 0)) {
+ # convert our cached value to an object if not already (avoid doing this
+ # at import() time, since not everybody needs this)
+ $LOG_10 = $class->new($LOG_10, undef, undef) unless ref $LOG_10;
+
+ #print "x = $x, dbd = $dbd, calc = $calc\n";
+ # got more than one digit before the dot, or more than one zero after the
+ # dot, so do:
+ # log(123) == log(1.23) + log(10) * 2
+ # log(0.0123) == log(1.23) - log(10) * 2
+
+ if ($scale <= $LOG_10_A) {
+ # use cached value
+ $l_10 = $LOG_10->copy(); # copy for mul
+ } else {
+ # else: slower, compute and cache result
+ # also disable downgrade for this code path
+ local $Math::BigFloat::downgrade = undef;
+
+ # shorten the time to calculate log(10) based on the following:
+ # log(1.25 * 8) = log(1.25) + log(8)
+ # = log(1.25) + log(2) + log(2) + log(2)
+
+ # first get $l_2 (and possible compute and cache log(2))
+ $LOG_2 = $class->new($LOG_2, undef, undef) unless ref $LOG_2;
+ if ($scale <= $LOG_2_A) {
+ # use cached value
+ $l_2 = $LOG_2->copy(); # copy() for the mul below
+ } else {
+ # else: slower, compute and cache result
+ $l_2 = $two->copy();
+ $class->_log($l_2, $scale); # scale+4, actually
+ $LOG_2 = $l_2->copy(); # cache the result for later
+ # the copy() is for mul below
+ $LOG_2_A = $scale;
+ }
-Operations with overloaded operators preserve the arguments, which is
-exactly what you expect.
+ # now calculate log(1.25):
+ $l_10 = $class->new('1.25');
+ $class->_log($l_10, $scale); # scale+4, actually
+
+ # log(1.25) + log(2) + log(2) + log(2):
+ $l_10->badd($l_2);
+ $l_10->badd($l_2);
+ $l_10->badd($l_2);
+ $LOG_10 = $l_10->copy(); # cache the result for later
+ # the copy() is for mul below
+ $LOG_10_A = $scale;
+ }
+ $dbd-- if ($dbd > 1); # 20 => dbd=2, so make it dbd=1
+ $l_10->bmul($class->new($dbd)); # log(10) * (digits_before_dot-1)
+ my $dbd_sign = '+';
+ if ($dbd < 0) {
+ $dbd = -$dbd;
+ $dbd_sign = '-';
+ }
+ ($x->{_e}, $x->{_es}) =
+ _e_sub($x->{_e}, $MBI->_new($dbd), $x->{_es}, $dbd_sign); # 123 => 1.23
-=head2 Input
+ }
-Input to these routines are either BigFloat objects, or strings of the
-following four forms:
+ # Now: 0.1 <= $x < 10 (and possible correction in l_10)
-=over
+ ### Since $x in the range 0.5 .. 1.5 is MUCH faster, we do a repeated div
+ ### or mul by 2 (maximum times 3, since x < 10 and x > 0.1)
-=item *
+ $HALF = $class->new($HALF) unless ref($HALF);
-C</^[+-]\d+$/>
+ my $twos = 0; # default: none (0 times)
+ while ($x->bacmp($HALF) <= 0) { # X <= 0.5
+ $twos--;
+ $x->bmul($two);
+ }
+ while ($x->bacmp($two) >= 0) { # X >= 2
+ $twos++;
+ $x->bdiv($two, $scale+4); # keep all digits
+ }
+ $x->bround($scale+4);
+ # $twos > 0 => did mul 2, < 0 => did div 2 (but we never did both)
+ # So calculate correction factor based on ln(2):
+ if ($twos != 0) {
+ $LOG_2 = $class->new($LOG_2, undef, undef) unless ref $LOG_2;
+ if ($scale <= $LOG_2_A) {
+ # use cached value
+ $l_2 = $LOG_2->copy(); # copy() for the mul below
+ } else {
+ # else: slower, compute and cache result
+ # also disable downgrade for this code path
+ local $Math::BigFloat::downgrade = undef;
+ $l_2 = $two->copy();
+ $class->_log($l_2, $scale); # scale+4, actually
+ $LOG_2 = $l_2->copy(); # cache the result for later
+ # the copy() is for mul below
+ $LOG_2_A = $scale;
+ }
+ $l_2->bmul($twos); # * -2 => subtract, * 2 => add
+ } else {
+ undef $l_2;
+ }
-=item *
+ $class->_log($x, $scale); # need to do the "normal" way
+ $x->badd($l_10) if defined $l_10; # correct it by ln(10)
+ $x->badd($l_2) if defined $l_2; # and maybe by ln(2)
-C</^[+-]\d+\.\d*$/>
+ # all done, $x contains now the result
+ $x;
+}
-=item *
+sub _e_add {
+ # Internal helper sub to take two positive integers and their signs and
+ # then add them. Input ($CALC, $CALC, ('+'|'-'), ('+'|'-')), output
+ # ($CALC, ('+'|'-')).
-C</^[+-]\d+E[+-]?\d+$/>
+ my ($x, $y, $xs, $ys) = @_;
-=item *
+ # if the signs are equal we can add them (-5 + -3 => -(5 + 3) => -8)
+ if ($xs eq $ys) {
+ $x = $MBI->_add($x, $y); # +a + +b or -a + -b
+ } else {
+ my $a = $MBI->_acmp($x, $y);
+ if ($a == 0) {
+ # This does NOT modify $x in-place. TODO: Fix this?
+ $x = $MBI->_zero(); # result is 0
+ $xs = '+';
+ return ($x, $xs);
+ }
+ if ($a > 0) {
+ $x = $MBI->_sub($x, $y); # abs sub
+ } else { # a < 0
+ $x = $MBI->_sub ($y, $x, 1); # abs sub
+ $xs = $ys;
+ }
+ }
-C</^[+-]\d*\.\d+E[+-]?\d+$/>
+ $xs = '+' if $xs eq '-' && $MBI->_is_zero($x); # no "-0"
-=back
+ return ($x, $xs);
+}
-all with optional leading and trailing zeros and/or spaces. Additionally,
-numbers are allowed to have an underscore between any two digits.
+sub _e_sub {
+ # Internal helper sub to take two positive integers and their signs and
+ # then subtract them. Input ($CALC, $CALC, ('+'|'-'), ('+'|'-')),
+ # output ($CALC, ('+'|'-'))
+ my ($x, $y, $xs, $ys) = @_;
-Empty strings as well as other illegal numbers results in 'NaN'.
+ # flip sign
+ $ys = $ys eq '+' ? '-' : '+'; # swap sign of second operand ...
+ _e_add($x, $y, $xs, $ys); # ... and let _e_add() do the job
+}
-bnorm() on a BigFloat object is now effectively a no-op, since the numbers
-are always stored in normalized form. On a string, it creates a BigFloat
-object.
+sub _pow {
+ # Calculate a power where $y is a non-integer, like 2 ** 0.3
+ my ($x, $y, @r) = @_;
+ my $class = ref($x);
-=head2 Output
+ # if $y == 0.5, it is sqrt($x)
+ $HALF = $class->new($HALF) unless ref($HALF);
+ return $x->bsqrt(@r, $y) if $y->bcmp($HALF) == 0;
-Output values are BigFloat objects (normalized), except for bstr() and bsstr().
+ # Using:
+ # a ** x == e ** (x * ln a)
-The string output will always have leading and trailing zeros stripped and drop
-a plus sign. C<bstr()> will give you always the form with a decimal point,
-while C<bsstr()> (s for scientific) gives you the scientific notation.
+ # u = y * ln x
+ # _ _
+ # Taylor: | u u^2 u^3 |
+ # x ** y = 1 + | --- + --- + ----- + ... |
+ # |_ 1 1*2 1*2*3 _|
- Input bstr() bsstr()
- '-0' '0' '0E1'
- ' -123 123 123' '-123123123' '-123123123E0'
- '00.0123' '0.0123' '123E-4'
- '123.45E-2' '1.2345' '12345E-4'
- '10E+3' '10000' '1E4'
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters(@r);
-Some routines (C<is_odd()>, C<is_even()>, C<is_zero()>, C<is_one()>,
-C<is_nan()>) return true or false, while others (C<bcmp()>, C<bacmp()>)
-return either undef, <0, 0 or >0 and are suited for sort.
+ return $x if $x->is_nan(); # error in _find_round_parameters?
-Actual math is done by using the class defined with C<< with => Class; >>
-(which defaults to BigInts) to represent the mantissa and exponent.
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # disable P
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it is not
+ # enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
-The sign C</^[+-]$/> is stored separately. The string 'NaN' is used to
-represent the result when input arguments are not numbers, and 'inf' and
-'-inf' are used to represent positive and negative infinity, respectively.
+ # when user set globals, they would interfere with our calculation, so
+ # disable them and later re-enable them
+ no strict 'refs';
+ my $abr = "$class\::accuracy"; my $ab = $$abr; $$abr = undef;
+ my $pbr = "$class\::precision"; my $pb = $$pbr; $$pbr = undef;
+ # we also need to disable any set A or P on $x (_find_round_parameters took
+ # them already into account), since these would interfere, too
+ delete $x->{_a};
+ delete $x->{_p};
+ # need to disable $upgrade in BigInt, to avoid deep recursion
+ local $Math::BigInt::upgrade = undef;
-=head2 mantissa(), exponent() and parts()
+ my ($limit, $v, $u, $below, $factor, $next, $over);
-mantissa() and exponent() return the said parts of the BigFloat
-as BigInts such that:
+ $u = $x->copy()->blog(undef, $scale)->bmul($y);
+ my $do_invert = ($u->{sign} eq '-');
+ $u->bneg() if $do_invert;
+ $v = $class->bone(); # 1
+ $factor = $class->new(2); # 2
+ $x->bone(); # first term: 1
- $m = $x->mantissa();
- $e = $x->exponent();
- $y = $m * ( 10 ** $e );
- print "ok\n" if $x == $y;
+ $below = $v->copy();
+ $over = $u->copy();
-C<< ($m,$e) = $x->parts(); >> is just a shortcut giving you both of them.
+ $limit = $class->new("1E-". ($scale-1));
+ #my $steps = 0;
+ while (3 < 5) {
+ # we calculate the next term, and add it to the last
+ # when the next term is below our limit, it won't affect the outcome
+ # anymore, so we stop:
+ $next = $over->copy()->bdiv($below, $scale);
+ last if $next->bacmp($limit) <= 0;
+ $x->badd($next);
+ # calculate things for the next term
+ $over *= $u;
+ $below *= $factor;
+ $factor->binc();
-Currently the mantissa is reduced as much as possible, favouring higher
-exponents over lower ones (e.g. returning 1e7 instead of 10e6 or 10000000e0).
-This might change in the future, so do not depend on it.
+ last if $x->{sign} !~ /^[-+]$/;
-=head2 Accuracy vs. Precision
+ #$steps++;
+ }
-See also: L<Rounding|/Rounding>.
+ if ($do_invert) {
+ my $x_copy = $x->copy();
+ $x->bone->bdiv($x_copy, $scale);
+ }
-Math::BigFloat supports both precision (rounding to a certain place before or
-after the dot) and accuracy (rounding to a certain number of digits). For a
-full documentation, examples and tips on these topics please see the large
-section about rounding in L<Math::BigInt>.
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a};
+ delete $x->{_p};
+ }
+ # restore globals
+ $$abr = $ab;
+ $$pbr = $pb;
+ $x;
+}
-Since things like C<sqrt(2)> or C<1 / 3> must presented with a limited
-accuracy lest a operation consumes all resources, each operation produces
-no more than the requested number of digits.
+1;
-If there is no global precision or accuracy set, B<and> the operation in
-question was not called with a requested precision or accuracy, B<and> the
-input $x has no accuracy or precision set, then a fallback parameter will
-be used. For historical reasons, it is called C<div_scale> and can be accessed
-via:
+__END__
- $d = Math::BigFloat->div_scale(); # query
- Math::BigFloat->div_scale($n); # set to $n digits
+=pod
-The default value for C<div_scale> is 40.
+=head1 NAME
-In case the result of one operation has more digits than specified,
-it is rounded. The rounding mode taken is either the default mode, or the one
-supplied to the operation after the I<scale>:
+Math::BigFloat - Arbitrary size floating point math package
- $x = Math::BigFloat->new(2);
- Math::BigFloat->accuracy(5); # 5 digits max
- $y = $x->copy()->bdiv(3); # will give 0.66667
- $y = $x->copy()->bdiv(3,6); # will give 0.666667
- $y = $x->copy()->bdiv(3,6,undef,'odd'); # will give 0.666667
- Math::BigFloat->round_mode('zero');
- $y = $x->copy()->bdiv(3,6); # will also give 0.666667
+=head1 SYNOPSIS
-Note that C<< Math::BigFloat->accuracy() >> and C<< Math::BigFloat->precision() >>
-set the global variables, and thus B<any> newly created number will be subject
-to the global rounding B<immediately>. This means that in the examples above, the
-C<3> as argument to C<bdiv()> will also get an accuracy of B<5>.
+ use Math::BigFloat;
+
+ # Configuration methods (may be used as class methods and instance methods)
+
+ Math::BigFloat->accuracy(); # get class accuracy
+ Math::BigFloat->accuracy($n); # set class accuracy
+ Math::BigFloat->precision(); # get class precision
+ Math::BigFloat->precision($n); # set class precision
+ Math::BigFloat->round_mode(); # get class rounding mode
+ Math::BigFloat->round_mode($m); # set global round mode, must be one of
+ # 'even', 'odd', '+inf', '-inf', 'zero',
+ # 'trunc', or 'common'
+ Math::BigFloat->config(); # return hash with configuration
+
+ # Constructor methods (when the class methods below are used as instance
+ # methods, the value is assigned the invocand)
+
+ $x = Math::BigFloat->new($str); # defaults to 0
+ $x = Math::BigFloat->new('0x123'); # from hexadecimal
+ $x = Math::BigFloat->new('0b101'); # from binary
+ $x = Math::BigFloat->from_hex('0xc.afep+3'); # from hex
+ $x = Math::BigFloat->from_hex('cafe'); # ditto
+ $x = Math::BigFloat->from_oct('1.3267p-4'); # from octal
+ $x = Math::BigFloat->from_oct('0377'); # ditto
+ $x = Math::BigFloat->from_bin('0b1.1001p-4'); # from binary
+ $x = Math::BigFloat->from_bin('0101'); # ditto
+ $x = Math::BigFloat->bzero(); # create a +0
+ $x = Math::BigFloat->bone(); # create a +1
+ $x = Math::BigFloat->bone('-'); # create a -1
+ $x = Math::BigFloat->binf(); # create a +inf
+ $x = Math::BigFloat->binf('-'); # create a -inf
+ $x = Math::BigFloat->bnan(); # create a Not-A-Number
+ $x = Math::BigFloat->bpi(); # returns pi
+
+ $y = $x->copy(); # make a copy (unlike $y = $x)
+ $y = $x->as_int(); # return as BigInt
+
+ # Boolean methods (these don't modify the invocand)
+
+ $x->is_zero(); # if $x is 0
+ $x->is_one(); # if $x is +1
+ $x->is_one("+"); # ditto
+ $x->is_one("-"); # if $x is -1
+ $x->is_inf(); # if $x is +inf or -inf
+ $x->is_inf("+"); # if $x is +inf
+ $x->is_inf("-"); # if $x is -inf
+ $x->is_nan(); # if $x is NaN
+
+ $x->is_positive(); # if $x > 0
+ $x->is_pos(); # ditto
+ $x->is_negative(); # if $x < 0
+ $x->is_neg(); # ditto
+
+ $x->is_odd(); # if $x is odd
+ $x->is_even(); # if $x is even
+ $x->is_int(); # if $x is an integer
+
+ # Comparison methods
+
+ $x->bcmp($y); # compare numbers (undef, < 0, == 0, > 0)
+ $x->bacmp($y); # compare absolutely (undef, < 0, == 0, > 0)
+ $x->beq($y); # true if and only if $x == $y
+ $x->bne($y); # true if and only if $x != $y
+ $x->blt($y); # true if and only if $x < $y
+ $x->ble($y); # true if and only if $x <= $y
+ $x->bgt($y); # true if and only if $x > $y
+ $x->bge($y); # true if and only if $x >= $y
+
+ # Arithmetic methods
+
+ $x->bneg(); # negation
+ $x->babs(); # absolute value
+ $x->bsgn(); # sign function (-1, 0, 1, or NaN)
+ $x->bnorm(); # normalize (no-op)
+ $x->binc(); # increment $x by 1
+ $x->bdec(); # decrement $x by 1
+ $x->badd($y); # addition (add $y to $x)
+ $x->bsub($y); # subtraction (subtract $y from $x)
+ $x->bmul($y); # multiplication (multiply $x by $y)
+ $x->bmuladd($y,$z); # $x = $x * $y + $z
+ $x->bdiv($y); # division (floored), set $x to quotient
+ # return (quo,rem) or quo if scalar
+ $x->btdiv($y); # division (truncated), set $x to quotient
+ # return (quo,rem) or quo if scalar
+ $x->bmod($y); # modulus (x % y)
+ $x->btmod($y); # modulus (truncated)
+ $x->bmodinv($mod); # modular multiplicative inverse
+ $x->bmodpow($y,$mod); # modular exponentiation (($x ** $y) % $mod)
+ $x->bpow($y); # power of arguments (x ** y)
+ $x->blog(); # logarithm of $x to base e (Euler's number)
+ $x->blog($base); # logarithm of $x to base $base (e.g., base 2)
+ $x->bexp(); # calculate e ** $x where e is Euler's number
+ $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bsin(); # sine
+ $x->bcos(); # cosine
+ $x->batan(); # inverse tangent
+ $x->batan2($y); # two-argument inverse tangent
+ $x->bsqrt(); # calculate square-root
+ $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
+ $x->bfac(); # factorial of $x (1*2*3*4*..$x)
+
+ $x->blsft($n); # left shift $n places in base 2
+ $x->blsft($n,$b); # left shift $n places in base $b
+ # returns (quo,rem) or quo (scalar context)
+ $x->brsft($n); # right shift $n places in base 2
+ $x->brsft($n,$b); # right shift $n places in base $b
+ # returns (quo,rem) or quo (scalar context)
+
+ # Bitwise methods
+
+ $x->band($y); # bitwise and
+ $x->bior($y); # bitwise inclusive or
+ $x->bxor($y); # bitwise exclusive or
+ $x->bnot(); # bitwise not (two's complement)
+
+ # Rounding methods
+ $x->round($A,$P,$mode); # round to accuracy or precision using
+ # rounding mode $mode
+ $x->bround($n); # accuracy: preserve $n digits
+ $x->bfround($n); # $n > 0: round to $nth digit left of dec. point
+ # $n < 0: round to $nth digit right of dec. point
+ $x->bfloor(); # round towards minus infinity
+ $x->bceil(); # round towards plus infinity
+ $x->bint(); # round towards zero
+
+ # Other mathematical methods
+
+ $x->bgcd($y); # greatest common divisor
+ $x->blcm($y); # least common multiple
+
+ # Object property methods (do not modify the invocand)
+
+ $x->sign(); # the sign, either +, - or NaN
+ $x->digit($n); # the nth digit, counting from the right
+ $x->digit(-$n); # the nth digit, counting from the left
+ $x->length(); # return number of digits in number
+ ($xl,$f) = $x->length(); # length of number and length of fraction
+ # part, latter is always 0 digits long
+ # for Math::BigInt objects
+ $x->mantissa(); # return (signed) mantissa as BigInt
+ $x->exponent(); # return exponent as BigInt
+ $x->parts(); # return (mantissa,exponent) as BigInt
+ $x->sparts(); # mantissa and exponent (as integers)
+ $x->nparts(); # mantissa and exponent (normalised)
+ $x->eparts(); # mantissa and exponent (engineering notation)
+ $x->dparts(); # integer and fraction part
+
+ # Conversion methods (do not modify the invocand)
+
+ $x->bstr(); # decimal notation, possibly zero padded
+ $x->bsstr(); # string in scientific notation with integers
+ $x->bnstr(); # string in normalized notation
+ $x->bestr(); # string in engineering notation
+ $x->bdstr(); # string in decimal notation
+ $x->as_hex(); # as signed hexadecimal string with prefixed 0x
+ $x->as_bin(); # as signed binary string with prefixed 0b
+ $x->as_oct(); # as signed octal string with prefixed 0
+
+ # Other conversion methods
+
+ $x->numify(); # return as scalar (might overflow or underflow)
-It is less confusing to either calculate the result fully, and afterwards
-round it explicitly, or use the additional parameters to the math
-functions like so:
+=head1 DESCRIPTION
+
+Math::BigFloat provides support for arbitrary precision floating point.
+Overloading is also provided for Perl operators.
+
+All operators (including basic math operations) are overloaded if you
+declare your big floating point numbers as
- use Math::BigFloat;
- $x = Math::BigFloat->new(2);
- $y = $x->copy()->bdiv(3);
- print $y->bround(5),"\n"; # will give 0.66667
+ $x = Math::BigFloat -> new('12_3.456_789_123_456_789E-2');
- or
+Operations with overloaded operators preserve the arguments, which is
+exactly what you expect.
- use Math::BigFloat;
- $x = Math::BigFloat->new(2);
- $y = $x->copy()->bdiv(3,5); # will give 0.66667
- print "$y\n";
+=head2 Input
-=head2 Rounding
+Input values to these routines may be any scalar number or string that looks
+like a number and represents a floating point number.
=over
-=item bfround ( +$scale )
+=item *
-Rounds to the $scale'th place left from the '.', counting from the dot.
-The first digit is numbered 1.
+Leading and trailing whitespace is ignored.
-=item bfround ( -$scale )
+=item *
-Rounds to the $scale'th place right from the '.', counting from the dot.
+Leading and trailing zeros are ignored.
-=item bfround ( 0 )
+=item *
-Rounds to an integer.
+If the string has a "0x" prefix, it is interpreted as a hexadecimal number.
-=item bround ( +$scale )
+=item *
-Preserves accuracy to $scale digits from the left (aka significant digits)
-and pads the rest with zeros. If the number is between 1 and -1, the
-significant digits count from the first non-zero after the '.'
+If the string has a "0b" prefix, it is interpreted as a binary number.
-=item bround ( -$scale ) and bround ( 0 )
+=item *
-These are effectively no-ops.
+For hexadecimal and binary numbers, the exponent must be separated from the
+significand (mantissa) by the letter "p" or "P", not "e" or "E" as with decimal
+numbers.
+
+=item *
+
+One underline is allowed between any two digits, including hexadecimal and
+binary digits.
+
+=item *
+
+If the string can not be interpreted, NaN is returned.
=back
-All rounding functions take as a second parameter a rounding mode from one of
-the following: 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'.
+Octal numbers are typically prefixed by "0", but since leading zeros are
+stripped, these methods can not automatically recognize octal numbers, so use
+the constructor from_oct() to interpret octal strings.
-The default rounding mode is 'even'. By using
-C<< Math::BigFloat->round_mode($round_mode); >> you can get and set the default
-mode for subsequent rounding. The usage of C<$Math::BigFloat::$round_mode> is
-no longer supported.
-The second parameter to the round functions then overrides the default
-temporarily.
+Some examples of valid string input
-The C<as_number()> function returns a BigInt from a Math::BigFloat. It uses
-'trunc' as rounding mode to make it equivalent to:
+ Input string Resulting value
+ 123 123
+ 1.23e2 123
+ 12300e-2 123
+ 0xcafe 51966
+ 0b1101 13
+ 67_538_754 67538754
+ -4_5_6.7_8_9e+0_1_0 -4567890000000
+ 0x1.921fb5p+1 3.14159262180328369140625e+0
+ 0b1.1001p-4 9.765625e-2
+
+=head2 Output
- $x = 2.5;
- $y = int($x) + 2;
+Output values are usually Math::BigFloat objects.
-You can override this by passing the desired rounding mode as parameter to
-C<as_number()>:
+Boolean operators C<is_zero()>, C<is_one()>, C<is_inf()>, etc. return true or
+false.
- $x = Math::BigFloat->new(2.5);
- $y = $x->as_number('odd'); # $y = 3
+Comparison operators C<bcmp()> and C<bacmp()>) return -1, 0, 1, or
+undef.
=head1 METHODS
Math::BigFloat supports all methods that Math::BigInt supports, except it
-calculates non-integer results when possible. Please see L<Math::BigInt>
-for a full description of each method. Below are just the most important
-differences:
+calculates non-integer results when possible. Please see L<Math::BigInt> for a
+full description of each method. Below are just the most important differences:
+
+=head2 Configuration methods
=over
=item accuracy()
- $x->accuracy(5); # local for $x
- CLASS->accuracy(5); # global for all members of CLASS
- # Note: This also applies to new()!
+ $x->accuracy(5); # local for $x
+ CLASS->accuracy(5); # global for all members of CLASS
+ # Note: This also applies to new()!
- $A = $x->accuracy(); # read out accuracy that affects $x
- $A = CLASS->accuracy(); # read out global accuracy
+ $A = $x->accuracy(); # read out accuracy that affects $x
+ $A = CLASS->accuracy(); # read out global accuracy
Set or get the global or local accuracy, aka how many significant digits the
results have. If you set a global accuracy, then this also applies to new()!
@@ -4649,36 +4866,101 @@ influence of C<< CLASS->accuracy($A) >>, all results from math operations with
that number will also be rounded.
In most cases, you should probably round the results explicitly using one of
-L<Math::BigInt/round()>, L<Math::BigInt/bround()> or L<Math::BigInt/bfround()> or by passing the desired accuracy
-to the math operation as additional parameter:
+L<Math::BigInt/round()>, L<Math::BigInt/bround()> or L<Math::BigInt/bfround()>
+or by passing the desired accuracy to the math operation as additional
+parameter:
- my $x = Math::BigInt->new(30000);
- my $y = Math::BigInt->new(7);
- print scalar $x->copy()->bdiv($y, 2); # print 4300
- print scalar $x->copy()->bdiv($y)->bround(2); # print 4300
+ my $x = Math::BigInt->new(30000);
+ my $y = Math::BigInt->new(7);
+ print scalar $x->copy()->bdiv($y, 2); # print 4300
+ print scalar $x->copy()->bdiv($y)->bround(2); # print 4300
=item precision()
- $x->precision(-2); # local for $x, round at the second
+ $x->precision(-2); # local for $x, round at the second
# digit right of the dot
- $x->precision(2); # ditto, round at the second digit
+ $x->precision(2); # ditto, round at the second digit
# left of the dot
- CLASS->precision(5); # Global for all members of CLASS
+ CLASS->precision(5); # Global for all members of CLASS
# This also applies to new()!
- CLASS->precision(-5); # ditto
+ CLASS->precision(-5); # ditto
- $P = CLASS->precision(); # read out global precision
- $P = $x->precision(); # read out precision that affects $x
+ $P = CLASS->precision(); # read out global precision
+ $P = $x->precision(); # read out precision that affects $x
Note: You probably want to use L</accuracy()> instead. With L</accuracy()> you
set the number of digits each result should have, with L</precision()> you
set the place where to round!
+=back
+
+=head2 Constructor methods
+
+=over
+
+=item from_hex()
+
+ $x -> from_hex("0x1.921fb54442d18p+1");
+ $x = Math::BigFloat -> from_hex("0x1.921fb54442d18p+1");
+
+Interpret input as a hexadecimal string.A prefix ("0x", "x", ignoring case) is
+optional. A single underscore character ("_") may be placed between any two
+digits. If the input is invalid, a NaN is returned. The exponent is in base 2
+using decimal digits.
+
+If called as an instance method, the value is assigned to the invocand.
+
+=item from_oct()
+
+ $x -> from_oct("1.3267p-4");
+ $x = Math::BigFloat -> from_oct("1.3267p-4");
+
+Interpret input as an octal string. A single underscore character ("_") may be
+placed between any two digits. If the input is invalid, a NaN is returned. The
+exponent is in base 2 using decimal digits.
+
+If called as an instance method, the value is assigned to the invocand.
+
+=item from_bin()
+
+ $x -> from_bin("0b1.1001p-4");
+ $x = Math::BigFloat -> from_bin("0b1.1001p-4");
+
+Interpret input as a hexadecimal string. A prefix ("0b" or "b", ignoring case)
+is optional. A single underscore character ("_") may be placed between any two
+digits. If the input is invalid, a NaN is returned. The exponent is in base 2
+using decimal digits.
+
+If called as an instance method, the value is assigned to the invocand.
+
+=item bpi()
+
+ print Math::BigFloat->bpi(100), "\n";
+
+Calculate PI to N digits (including the 3 before the dot). The result is
+rounded according to the current rounding mode, which defaults to "even".
+
+This method was added in v1.87 of Math::BigInt (June 2007).
+
+=back
+
+=head2 Arithmetic methods
+
+=over
+
+=item bmuladd()
+
+ $x->bmuladd($y,$z);
+
+Multiply $x by $y, and then add $z to the result.
+
+This method was added in v1.87 of Math::BigInt (June 2007).
+
=item bdiv()
- $q = $x->bdiv($y);
- ($q, $r) = $x->bdiv($y);
+ $q = $x->bdiv($y);
+ ($q, $r) = $x->bdiv($y);
In scalar context, divides $x by $y and returns the result to the given or
default accuracy/precision. In list context, does floored division
@@ -4687,7 +4969,7 @@ $r. The remainer (modulo) is equal to what is returned by C<$x->bmod($y)>.
=item bmod()
- $x->bmod($y);
+ $x->bmod($y);
Returns $x modulo $y. When $x is finite, and $y is finite and non-zero, the
result is identical to the remainder after floored division (F-division). If,
@@ -4696,7 +4978,7 @@ from Perl's % operator.
=item bexp()
- $x->bexp($accuracy); # calculate e ** X
+ $x->bexp($accuracy); # calculate e ** X
Calculates the expression C<e ** $x> where C<e> is Euler's number.
@@ -4704,72 +4986,55 @@ This method was added in v1.82 of Math::BigInt (April 2007).
=item bnok()
- $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bnok($y); # x over y (binomial coefficient n over k)
Calculates the binomial coefficient n over k, also called the "choose"
function. The result is equivalent to:
- ( n ) n!
- | - | = -------
- ( k ) k!(n-k)!
+ ( n ) n!
+ | - | = -------
+ ( k ) k!(n-k)!
This method was added in v1.84 of Math::BigInt (April 2007).
-=item bpi()
+=item bsin()
- print Math::BigFloat->bpi(100), "\n";
+ my $x = Math::BigFloat->new(1);
+ print $x->bsin(100), "\n";
-Calculate PI to N digits (including the 3 before the dot). The result is
-rounded according to the current rounding mode, which defaults to "even".
+Calculate the sinus of $x, modifying $x in place.
This method was added in v1.87 of Math::BigInt (June 2007).
=item bcos()
- my $x = Math::BigFloat->new(1);
- print $x->bcos(100), "\n";
+ my $x = Math::BigFloat->new(1);
+ print $x->bcos(100), "\n";
Calculate the cosinus of $x, modifying $x in place.
This method was added in v1.87 of Math::BigInt (June 2007).
-=item bsin()
+=item batan()
- my $x = Math::BigFloat->new(1);
- print $x->bsin(100), "\n";
+ my $x = Math::BigFloat->new(1);
+ print $x->batan(100), "\n";
-Calculate the sinus of $x, modifying $x in place.
+Calculate the arcus tanges of $x, modifying $x in place. See also L</batan2()>.
This method was added in v1.87 of Math::BigInt (June 2007).
=item batan2()
- my $y = Math::BigFloat->new(2);
- my $x = Math::BigFloat->new(3);
- print $y->batan2($x), "\n";
+ my $y = Math::BigFloat->new(2);
+ my $x = Math::BigFloat->new(3);
+ print $y->batan2($x), "\n";
Calculate the arcus tanges of C<$y> divided by C<$x>, modifying $y in place.
See also L</batan()>.
This method was added in v1.87 of Math::BigInt (June 2007).
-=item batan()
-
- my $x = Math::BigFloat->new(1);
- print $x->batan(100), "\n";
-
-Calculate the arcus tanges of $x, modifying $x in place. See also L</batan2()>.
-
-This method was added in v1.87 of Math::BigInt (June 2007).
-
-=item bmuladd()
-
- $x->bmuladd($y,$z);
-
-Multiply $x by $y, and then add $z to the result.
-
-This method was added in v1.87 of Math::BigInt (June 2007).
-
=item as_float()
This method is called when Math::BigFloat encounters an object it doesn't know
@@ -4788,43 +5053,116 @@ C<ref($x)-E<gt>new()> can parse to create an object.
In Math::BigFloat, C<as_float()> has the same effect as C<copy()>.
-=item from_hex()
+=back
- $x -> from_hex("0x1.921fb54442d18p+1");
- $x = Math::BigFloat -> from_hex("0x1.921fb54442d18p+1");
+=head2 ACCURACY AND PRECISION
-Interpret input as a hexadecimal string.A prefix ("0x", "x", ignoring case) is
-optional. A single underscore character ("_") may be placed between any two
-digits. If the input is invalid, a NaN is returned. The exponent is in base 2
-using decimal digits.
+See also: L<Rounding|/Rounding>.
-If called as an instance method, the value is assigned to the invocand.
+Math::BigFloat supports both precision (rounding to a certain place before or
+after the dot) and accuracy (rounding to a certain number of digits). For a
+full documentation, examples and tips on these topics please see the large
+section about rounding in L<Math::BigInt>.
-=item from_bin()
+Since things like C<sqrt(2)> or C<1 / 3> must presented with a limited
+accuracy lest a operation consumes all resources, each operation produces
+no more than the requested number of digits.
- $x -> from_bin("0b1.1001p-4");
- $x = Math::BigFloat -> from_bin("0b1.1001p-4");
+If there is no global precision or accuracy set, B<and> the operation in
+question was not called with a requested precision or accuracy, B<and> the
+input $x has no accuracy or precision set, then a fallback parameter will
+be used. For historical reasons, it is called C<div_scale> and can be accessed
+via:
-Interpret input as a hexadecimal string. A prefix ("0b" or "b", ignoring case)
-is optional. A single underscore character ("_") may be placed between any two
-digits. If the input is invalid, a NaN is returned. The exponent is in base 2
-using decimal digits.
+ $d = Math::BigFloat->div_scale(); # query
+ Math::BigFloat->div_scale($n); # set to $n digits
-If called as an instance method, the value is assigned to the invocand.
+The default value for C<div_scale> is 40.
-=item from_oct()
+In case the result of one operation has more digits than specified,
+it is rounded. The rounding mode taken is either the default mode, or the one
+supplied to the operation after the I<scale>:
- $x -> from_oct("1.3267p-4");
- $x = Math::BigFloat -> from_oct("1.3267p-4");
+ $x = Math::BigFloat->new(2);
+ Math::BigFloat->accuracy(5); # 5 digits max
+ $y = $x->copy()->bdiv(3); # gives 0.66667
+ $y = $x->copy()->bdiv(3,6); # gives 0.666667
+ $y = $x->copy()->bdiv(3,6,undef,'odd'); # gives 0.666667
+ Math::BigFloat->round_mode('zero');
+ $y = $x->copy()->bdiv(3,6); # will also give 0.666667
-Interpret input as an octal string. A single underscore character ("_") may be
-placed between any two digits. If the input is invalid, a NaN is returned. The
-exponent is in base 2 using decimal digits.
+Note that C<< Math::BigFloat->accuracy() >> and C<< Math::BigFloat->precision() >>
+set the global variables, and thus B<any> newly created number will be subject
+to the global rounding B<immediately>. This means that in the examples above, the
+C<3> as argument to C<bdiv()> will also get an accuracy of B<5>.
-If called as an instance method, the value is assigned to the invocand.
+It is less confusing to either calculate the result fully, and afterwards
+round it explicitly, or use the additional parameters to the math
+functions like so:
+
+ use Math::BigFloat;
+ $x = Math::BigFloat->new(2);
+ $y = $x->copy()->bdiv(3);
+ print $y->bround(5),"\n"; # gives 0.66667
+
+ or
+
+ use Math::BigFloat;
+ $x = Math::BigFloat->new(2);
+ $y = $x->copy()->bdiv(3,5); # gives 0.66667
+ print "$y\n";
+
+=head2 Rounding
+
+=over
+
+=item bfround ( +$scale )
+
+Rounds to the $scale'th place left from the '.', counting from the dot.
+The first digit is numbered 1.
+
+=item bfround ( -$scale )
+
+Rounds to the $scale'th place right from the '.', counting from the dot.
+
+=item bfround ( 0 )
+
+Rounds to an integer.
+
+=item bround ( +$scale )
+
+Preserves accuracy to $scale digits from the left (aka significant digits) and
+pads the rest with zeros. If the number is between 1 and -1, the significant
+digits count from the first non-zero after the '.'
+
+=item bround ( -$scale ) and bround ( 0 )
+
+These are effectively no-ops.
=back
+All rounding functions take as a second parameter a rounding mode from one of
+the following: 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'.
+
+The default rounding mode is 'even'. By using
+C<< Math::BigFloat->round_mode($round_mode); >> you can get and set the default
+mode for subsequent rounding. The usage of C<$Math::BigFloat::$round_mode> is
+no longer supported.
+The second parameter to the round functions then overrides the default
+temporarily.
+
+The C<as_number()> function returns a BigInt from a Math::BigFloat. It uses
+'trunc' as rounding mode to make it equivalent to:
+
+ $x = 2.5;
+ $y = int($x) + 2;
+
+You can override this by passing the desired rounding mode as parameter to
+C<as_number()>:
+
+ $x = Math::BigFloat->new(2.5);
+ $y = $x->as_number('odd'); # $y = 3
+
=head1 Autocreating constants
After C<use Math::BigFloat ':constant'> all the floating point constants
@@ -4833,13 +5171,13 @@ happens at compile time.
In particular
- perl -MMath::BigFloat=:constant -e 'print 2E-100,"\n"'
+ perl -MMath::BigFloat=:constant -e 'print 2E-100,"\n"'
-prints the value of C<2E-100>. Note that without conversion of
-constants the expression 2E-100 will be calculated as normal floating point
+prints the value of C<2E-100>. Note that without conversion of
+constants the expression 2E-100 will be calculated as normal floating point
number.
-Please note that ':constant' does not affect integer constants, nor binary
+Please note that ':constant' does not affect integer constants, nor binary
nor hexadecimal constants. Use L<bignum> or L<Math::BigInt> to get this to
work.
@@ -4848,11 +5186,11 @@ work.
Math with the numbers is done (by default) by a module called
Math::BigInt::Calc. This is equivalent to saying:
- use Math::BigFloat lib => 'Calc';
+ use Math::BigFloat lib => 'Calc';
You can change this by using:
- use Math::BigFloat lib => 'GMP';
+ use Math::BigFloat lib => 'GMP';
B<Note>: General purpose packages should not be explicit about the library
to use; let the script author decide which is best.
@@ -4860,18 +5198,18 @@ to use; let the script author decide which is best.
Note: The keyword 'lib' will warn when the requested library could not be
loaded. To suppress the warning use 'try' instead:
- use Math::BigFloat try => 'GMP';
+ use Math::BigFloat try => 'GMP';
If your script works with huge numbers and Calc is too slow for them,
you can also for the loading of one of these libraries and if none
of them can be used, the code will die:
- use Math::BigFloat only => 'GMP,Pari';
+ use Math::BigFloat only => 'GMP,Pari';
The following would first try to find Math::BigInt::Foo, then
Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
- use Math::BigFloat lib => 'Foo,Math::BigInt::Bar';
+ use Math::BigFloat lib => 'Foo,Math::BigInt::Bar';
See the respective low-level library documentation for further details.
@@ -4879,16 +5217,16 @@ Please note that Math::BigFloat does B<not> use the denoted library itself,
but it merely passes the lib argument to Math::BigInt. So, instead of the need
to do:
- use Math::BigInt lib => 'GMP';
- use Math::BigFloat;
+ use Math::BigInt lib => 'GMP';
+ use Math::BigFloat;
you can roll it all into one line:
- use Math::BigFloat lib => 'GMP';
+ use Math::BigFloat lib => 'GMP';
It is also possible to just require Math::BigFloat:
- require Math::BigFloat;
+ require Math::BigFloat;
This will load the necessary things (like BigInt) when they are needed, and
automatically.
@@ -4901,7 +5239,7 @@ a different low-level library.
For backwards compatibility reasons it is still possible to
request a different storage class for use with Math::BigFloat:
- use Math::BigFloat with => 'Math::BigInt::Lite';
+ use Math::BigFloat with => 'Math::BigInt::Lite';
However, this request is ignored, as the current code now uses the low-level
math library for directly storing the number parts.
@@ -4910,9 +5248,9 @@ math library for directly storing the number parts.
C<Math::BigFloat> exports nothing by default, but can export the C<bpi()> method:
- use Math::BigFloat qw/bpi/;
+ use Math::BigFloat qw/bpi/;
- print bpi(10), "\n";
+ print bpi(10), "\n";
=head1 CAVEATS
@@ -4920,14 +5258,14 @@ Do not try to be clever to insert some operations in between switching
libraries:
require Math::BigFloat;
- my $matter = Math::BigFloat->bone() + 4; # load BigInt and Calc
- Math::BigFloat->import( lib => 'Pari' ); # load Pari, too
- my $anti_matter = Math::BigFloat->bone()+4; # now use Pari
+ my $matter = Math::BigFloat->bone() + 4; # load BigInt and Calc
+ Math::BigFloat->import( lib => 'Pari' ); # load Pari, too
+ my $anti_matter = Math::BigFloat->bone()+4; # now use Pari
This will create objects with numbers stored in two different backend libraries,
and B<VERY BAD THINGS> will happen when you use these together:
- my $flash_and_bang = $matter + $anti_matter; # Don't do this!
+ my $flash_and_bang = $matter + $anti_matter; # Don't do this!
=over
@@ -4937,35 +5275,20 @@ Both stringify and bstr() now drop the leading '+'. The old code would return
'+1.23', the new returns '1.23'. See the documentation in L<Math::BigInt> for
reasoning and details.
-=item bdiv()
-
-The following will probably not print what you expect:
-
- print $c->bdiv(123.456),"\n";
-
-It prints both quotient and remainder since print works in list context. Also,
-bdiv() will modify $c, so be careful. You probably want to use
-
- print $c / 123.456,"\n";
- # or if you want to modify $c:
- print scalar $c->bdiv(123.456),"\n";
-
-instead.
-
=item brsft()
The following will probably not print what you expect:
- my $c = Math::BigFloat->new('3.14159');
- print $c->brsft(3,10),"\n"; # prints 0.00314153.1415
+ my $c = Math::BigFloat->new('3.14159');
+ print $c->brsft(3,10),"\n"; # prints 0.00314153.1415
It prints both quotient and remainder, since print calls C<brsft()> in list
context. Also, C<< $c->brsft() >> will modify $c, so be careful.
You probably want to use
- print scalar $c->copy()->brsft(3,10),"\n";
- # or if you really want to modify $c
- print scalar $c->brsft(3,10),"\n";
+ print scalar $c->copy()->brsft(3,10),"\n";
+ # or if you really want to modify $c
+ print scalar $c->brsft(3,10),"\n";
instead.
@@ -4973,24 +5296,14 @@ instead.
Beware of:
- $x = Math::BigFloat->new(5);
- $y = $x;
+ $x = Math::BigFloat->new(5);
+ $y = $x;
It will not do what you think, e.g. making a copy of $x. Instead it just makes
a second reference to the B<same> object and stores it in $y. Thus anything
that modifies $x will modify $y (except overloaded math operators), and vice
versa. See L<Math::BigInt> for details and how to avoid that.
-=item bpow()
-
-C<bpow()> now modifies the first argument, unlike the old code which left
-it alone and only returned the result. This is to be consistent with
-C<badd()> etc. The first will modify $x, the second one won't:
-
- print bpow($x,$i),"\n"; # modify $x
- print $x->bpow($i),"\n"; # ditto
- print $x ** $i,"\n"; # leave $x alone
-
=item precision() vs. accuracy()
A common pitfall is to use L</precision()> when you want to round a result to
@@ -4998,39 +5311,39 @@ a certain number of digits:
use Math::BigFloat;
- Math::BigFloat->precision(4); # does not do what you
- # think it does
- my $x = Math::BigFloat->new(12345); # rounds $x to "12000"!
- print "$x\n"; # print "12000"
- my $y = Math::BigFloat->new(3); # rounds $y to "0"!
- print "$y\n"; # print "0"
- $z = $x / $y; # 12000 / 0 => NaN!
+ Math::BigFloat->precision(4); # does not do what you
+ # think it does
+ my $x = Math::BigFloat->new(12345); # rounds $x to "12000"!
+ print "$x\n"; # print "12000"
+ my $y = Math::BigFloat->new(3); # rounds $y to "0"!
+ print "$y\n"; # print "0"
+ $z = $x / $y; # 12000 / 0 => NaN!
print "$z\n";
- print $z->precision(),"\n"; # 4
+ print $z->precision(),"\n"; # 4
Replacing L</precision()> with L</accuracy()> is probably not what you want, either:
use Math::BigFloat;
- Math::BigFloat->accuracy(4); # enables global rounding:
+ Math::BigFloat->accuracy(4); # enables global rounding:
my $x = Math::BigFloat->new(123456); # rounded immediately
# to "12350"
- print "$x\n"; # print "123500"
- my $y = Math::BigFloat->new(3); # rounded to "3
- print "$y\n"; # print "3"
+ print "$x\n"; # print "123500"
+ my $y = Math::BigFloat->new(3); # rounded to "3
+ print "$y\n"; # print "3"
print $z = $x->copy()->bdiv($y),"\n"; # 41170
- print $z->accuracy(),"\n"; # 4
+ print $z->accuracy(),"\n"; # 4
What you want to use instead is:
use Math::BigFloat;
my $x = Math::BigFloat->new(123456); # no rounding
- print "$x\n"; # print "123456"
- my $y = Math::BigFloat->new(3); # no rounding
- print "$y\n"; # print "3"
+ print "$x\n"; # print "123456"
+ my $y = Math::BigFloat->new(3); # no rounding
+ print "$y\n"; # print "3"
print $z = $x->copy()->bdiv($y,4),"\n"; # 41150
- print $z->accuracy(),"\n"; # undef
+ print $z->accuracy(),"\n"; # undef
In addition to computing what you expected, the last example also does B<not>
"taint" the result with an accuracy or precision setting, which would
@@ -5124,11 +5437,11 @@ Completely rewritten by Tels L<http://bloodgate.com> in 2001-2008.
=item *
-Florian Ragwitz L<flora@cpan.org>, 2010.
+Florian Ragwitz E<lt>flora@cpan.orgE<gt>, 2010.
=item *
-Peter John Acklam, L<pjacklam@online.no>, 2011-.
+Peter John Acklam E<lt>pjacklam@online.noE<gt>, 2011-.
=back
diff --git a/Master/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm b/Master/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm
index 634d9670d46..13ec47f274e 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigFloat/Trace.pm
@@ -9,13 +9,13 @@ use warnings;
use Exporter;
use Math::BigFloat;
-our ($PACKAGE, @EXPORT_OK, $accuracy, $precision, $round_mode, $div_scale);
+our ($accuracy, $precision, $round_mode, $div_scale);
our @ISA = qw(Exporter Math::BigFloat);
-our $VERSION = '0.42_01';
+our $VERSION = '0.47';
-use overload; # inherit overload from BigFloat
+use overload; # inherit overload from Math::BigFloat
# Globals
$accuracy = $precision = undef;
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt.pm b/Master/tlpkg/tlperl/lib/Math/BigInt.pm
index a50b37e832a..ed6e79fa1c7 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigInt.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt.pm
@@ -7,10 +7,9 @@ package Math::BigInt;
# The following hash values are used:
# value: unsigned int with actual value (as a Math::BigInt::Calc or similar)
-# sign : +,-,NaN,+inf,-inf
+# sign : +, -, NaN, +inf, -inf
# _a : accuracy
# _p : precision
-# _f : flags, used by MBF to flag parts of a float as untouchable
# Remember not to take shortcuts ala $xs = $x->{value}; $CALC->foo($xs); since
# underlying lib might change the reference!
@@ -19,17 +18,13 @@ use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999715';
-$VERSION = eval $VERSION;
+use Carp ();
+
+our $VERSION = '1.999806';
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(objectify bgcd blcm);
-# _trap_inf and _trap_nan are internal and should never be accessed from the
-# outside
-our ($round_mode, $accuracy, $precision, $div_scale, $rnd_mode,
- $upgrade, $downgrade, $_trap_nan, $_trap_inf);
-
my $class = "Math::BigInt";
# Inside overload, the first arg is always an object. If the original code had
@@ -43,120 +38,175 @@ my $class = "Math::BigInt";
# Thus inheritance of overload operators becomes possible and transparent for
# our subclasses without the need to repeat the entire overload section there.
-# We register ops that are not registerable yet, so suppress warnings
-{ no warnings;
use overload
-'=' => sub { $_[0]->copy(); },
-
-# some shortcuts for speed (assumes that reversed order of arguments is routed
-# to normal '+' and we thus can always modify first arg. If this is changed,
-# this breaks and must be adjusted.)
-'+=' => sub { $_[0]->badd($_[1]); },
-'-=' => sub { $_[0]->bsub($_[1]); },
-'*=' => sub { $_[0]->bmul($_[1]); },
-'/=' => sub { scalar $_[0]->bdiv($_[1]); },
-'%=' => sub { $_[0]->bmod($_[1]); },
-'^=' => sub { $_[0]->bxor($_[1]); },
-'&=' => sub { $_[0]->band($_[1]); },
-'|=' => sub { $_[0]->bior($_[1]); },
-
-'**=' => sub { $_[0]->bpow($_[1]); },
-'<<=' => sub { $_[0]->blsft($_[1]); },
-'>>=' => sub { $_[0]->brsft($_[1]); },
-
-# not supported by Perl yet
-'..' => \&_pointpoint,
-
-'<=>' => sub { my $rc = $_[2] ?
- ref($_[0])->bcmp($_[1],$_[0]) :
- $_[0]->bcmp($_[1]);
- $rc = 1 unless defined $rc;
- $rc <=> 0;
- },
-# we need '>=' to get things like "1 >= NaN" right:
-'>=' => sub { my $rc = $_[2] ?
- ref($_[0])->bcmp($_[1],$_[0]) :
- $_[0]->bcmp($_[1]);
- # if there was a NaN involved, return false
- return '' unless defined $rc;
- $rc >= 0;
- },
-'cmp' => sub {
- $_[2] ?
- "$_[1]" cmp $_[0]->bstr() :
- $_[0]->bstr() cmp "$_[1]" },
-
-'cos' => sub { $_[0]->copy->bcos(); },
-'sin' => sub { $_[0]->copy->bsin(); },
-'atan2' => sub { $_[2] ?
- ref($_[0])->new($_[1])->batan2($_[0]) :
- $_[0]->copy()->batan2($_[1]) },
-
-# are not yet overloadable
-#'hex' => sub { print "hex"; $_[0]; },
-#'oct' => sub { print "oct"; $_[0]; },
-
-# log(N) is log(N, e), where e is Euler's number
-'log' => sub { $_[0]->copy()->blog(); },
-'exp' => sub { $_[0]->copy()->bexp($_[1]); },
-'int' => sub { $_[0]->copy(); },
-'neg' => sub { $_[0]->copy()->bneg(); },
-'abs' => sub { $_[0]->copy()->babs(); },
-'sqrt' => sub { $_[0]->copy()->bsqrt(); },
-'~' => sub { $_[0]->copy()->bnot(); },
-
-# for subtract it's a bit tricky to not modify b: b-a => -a+b
-'-' => sub { my $c = $_[0]->copy; $_[2] ?
- $c->bneg()->badd( $_[1]) :
- $c->bsub( $_[1]) },
-'+' => sub { $_[0]->copy()->badd($_[1]); },
-'*' => sub { $_[0]->copy()->bmul($_[1]); },
-
-'/' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bdiv($_[0]) : $_[0]->copy->bdiv($_[1]);
- },
-'%' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bmod($_[0]) : $_[0]->copy->bmod($_[1]);
- },
-'**' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bpow($_[0]) : $_[0]->copy->bpow($_[1]);
- },
-'<<' => sub {
- $_[2] ? ref($_[0])->new($_[1])->blsft($_[0]) : $_[0]->copy->blsft($_[1]);
- },
-'>>' => sub {
- $_[2] ? ref($_[0])->new($_[1])->brsft($_[0]) : $_[0]->copy->brsft($_[1]);
- },
-'&' => sub {
- $_[2] ? ref($_[0])->new($_[1])->band($_[0]) : $_[0]->copy->band($_[1]);
- },
-'|' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bior($_[0]) : $_[0]->copy->bior($_[1]);
- },
-'^' => sub {
- $_[2] ? ref($_[0])->new($_[1])->bxor($_[0]) : $_[0]->copy->bxor($_[1]);
- },
-
-# can modify arg of ++ and --, so avoid a copy() for speed, but don't
-# use $_[0]->bone(), it would modify $_[0] to be 1!
-'++' => sub { $_[0]->binc() },
-'--' => sub { $_[0]->bdec() },
-
-# if overloaded, O(1) instead of O(N) and twice as fast for small numbers
-'bool' => sub {
- # this kludge is needed for perl prior 5.6.0 since returning 0 here fails :-/
- # v5.6.1 dumps on this: return !$_[0]->is_zero() || undef; :-(
- my $t = undef;
- $t = 1 if !$_[0]->is_zero();
- $t;
- },
-
-# the original qw() does not work with the TIESCALAR below, why?
-# Order of arguments insignificant
-'""' => sub { $_[0]->bstr(); },
-'0+' => sub { $_[0]->numify(); }
-;
-} # no warnings scope
+
+ # overload key: with_assign
+
+ '+' => sub { $_[0] -> copy() -> badd($_[1]); },
+
+ '-' => sub { my $c = $_[0] -> copy;
+ $_[2] ? $c -> bneg() -> badd($_[1])
+ : $c -> bsub($_[1]); },
+
+ '*' => sub { $_[0] -> copy() -> bmul($_[1]); },
+
+ '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0])
+ : $_[0] -> copy -> bdiv($_[1]); },
+
+ '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0])
+ : $_[0] -> copy -> bmod($_[1]); },
+
+ '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0])
+ : $_[0] -> copy -> bpow($_[1]); },
+
+ '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blsft($_[0])
+ : $_[0] -> copy -> blsft($_[1]); },
+
+ '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> brsft($_[0])
+ : $_[0] -> copy -> brsft($_[1]); },
+
+ # overload key: assign
+
+ '+=' => sub { $_[0]->badd($_[1]); },
+
+ '-=' => sub { $_[0]->bsub($_[1]); },
+
+ '*=' => sub { $_[0]->bmul($_[1]); },
+
+ '/=' => sub { scalar $_[0]->bdiv($_[1]); },
+
+ '%=' => sub { $_[0]->bmod($_[1]); },
+
+ '**=' => sub { $_[0]->bpow($_[1]); },
+
+
+ '<<=' => sub { $_[0]->blsft($_[1]); },
+
+ '>>=' => sub { $_[0]->brsft($_[1]); },
+
+# 'x=' => sub { },
+
+# '.=' => sub { },
+
+ # overload key: num_comparison
+
+ '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0])
+ : $_[0] -> blt($_[1]); },
+
+ '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0])
+ : $_[0] -> ble($_[1]); },
+
+ '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0])
+ : $_[0] -> bgt($_[1]); },
+
+ '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0])
+ : $_[0] -> bge($_[1]); },
+
+ '==' => sub { $_[0] -> beq($_[1]); },
+
+ '!=' => sub { $_[0] -> bne($_[1]); },
+
+ # overload key: 3way_comparison
+
+ '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]);
+ defined($cmp) && $_[2] ? -$cmp : $cmp; },
+
+ 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr()
+ : $_[0] -> bstr() cmp "$_[1]"; },
+
+ # overload key: str_comparison
+
+# 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0])
+# : $_[0] -> bstrlt($_[1]); },
+#
+# 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0])
+# : $_[0] -> bstrle($_[1]); },
+#
+# 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0])
+# : $_[0] -> bstrgt($_[1]); },
+#
+# 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0])
+# : $_[0] -> bstrge($_[1]); },
+#
+# 'eq' => sub { $_[0] -> bstreq($_[1]); },
+#
+# 'ne' => sub { $_[0] -> bstrne($_[1]); },
+
+ # overload key: binary
+
+ '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0])
+ : $_[0] -> copy -> band($_[1]); },
+
+ '&=' => sub { $_[0] -> band($_[1]); },
+
+ '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0])
+ : $_[0] -> copy -> bior($_[1]); },
+
+ '|=' => sub { $_[0] -> bior($_[1]); },
+
+ '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0])
+ : $_[0] -> copy -> bxor($_[1]); },
+
+ '^=' => sub { $_[0] -> bxor($_[1]); },
+
+# '&.' => sub { },
+
+# '&.=' => sub { },
+
+# '|.' => sub { },
+
+# '|.=' => sub { },
+
+# '^.' => sub { },
+
+# '^.=' => sub { },
+
+ # overload key: unary
+
+ 'neg' => sub { $_[0] -> copy() -> bneg(); },
+
+# '!' => sub { },
+
+ '~' => sub { $_[0] -> copy() -> bnot(); },
+
+# '~.' => sub { },
+
+ # overload key: mutators
+
+ '++' => sub { $_[0] -> binc() },
+
+ '--' => sub { $_[0] -> bdec() },
+
+ # overload key: func
+
+ 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0])
+ : $_[0] -> copy() -> batan2($_[1]); },
+
+ 'cos' => sub { $_[0] -> copy -> bcos(); },
+
+ 'sin' => sub { $_[0] -> copy -> bsin(); },
+
+ 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); },
+
+ 'abs' => sub { $_[0] -> copy() -> babs(); },
+
+ 'log' => sub { $_[0] -> copy() -> blog(); },
+
+ 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); },
+
+ 'int' => sub { $_[0] -> copy() -> bint(); },
+
+ # overload key: conversion
+
+ 'bool' => sub { $_[0] -> is_zero() ? '' : 1; },
+
+ '""' => sub { $_[0] -> bstr(); },
+
+ '0+' => sub { $_[0] -> numify(); },
+
+ '=' => sub { $_[0]->copy(); },
+
+ ;
##############################################################################
# global constants, flags and accessory
@@ -164,18 +214,18 @@ use overload
# These vars are public, but their direct usage is not recommended, use the
# accessor methods instead
-$round_mode = 'even'; # one of 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'
-$accuracy = undef;
-$precision = undef;
-$div_scale = 40;
-
-$upgrade = undef; # default is no upgrade
-$downgrade = undef; # default is no downgrade
+our $round_mode = 'even'; # one of 'even', 'odd', '+inf', '-inf', 'zero', 'trunc' or 'common'
+our $accuracy = undef;
+our $precision = undef;
+our $div_scale = 40;
+our $upgrade = undef; # default is no upgrade
+our $downgrade = undef; # default is no downgrade
# These are internally, and not to be used from the outside at all
-$_trap_nan = 0; # are NaNs ok? set w/ config()
-$_trap_inf = 0; # are infs ok? set w/ config()
+our $_trap_nan = 0; # are NaNs ok? set w/ config()
+our $_trap_inf = 0; # are infs ok? set w/ config()
+
my $nan = 'NaN'; # constants for easier life
my $CALC = 'Math::BigInt::Calc'; # module to do the low level math
@@ -190,328 +240,287 @@ my $EMU_LIB = 'Math/BigInt/CalcEmu.pm'; # emulate low-level math
##############################################################################
# the old code had $rnd_mode, so we need to support it, too
-$rnd_mode = 'even';
-sub TIESCALAR { my ($class) = @_; bless \$round_mode, $class; }
-sub FETCH { return $round_mode; }
-sub STORE { $rnd_mode = $_[0]->round_mode($_[1]); }
+our $rnd_mode = 'even';
-BEGIN
- {
- # tie to enable $rnd_mode to work transparently
- tie $rnd_mode, 'Math::BigInt';
+sub TIESCALAR {
+ my ($class) = @_;
+ bless \$round_mode, $class;
+}
- # set up some handy alias names
- *as_int = \&as_number;
- *is_pos = \&is_positive;
- *is_neg = \&is_negative;
- }
+sub FETCH {
+ return $round_mode;
+}
-##############################################################################
+sub STORE {
+ $rnd_mode = $_[0]->round_mode($_[1]);
+}
-sub round_mode
- {
- no strict 'refs';
- # make Class->round_mode() work
- my $self = shift;
- my $class = ref($self) || $self || __PACKAGE__;
- if (defined $_[0])
- {
- my $m = shift;
- if ($m !~ /^(even|odd|\+inf|\-inf|zero|trunc|common)$/)
- {
- require Carp; Carp::croak ("Unknown round mode '$m'");
- }
- return ${"${class}::round_mode"} = $m;
- }
- ${"${class}::round_mode"};
- }
-
-sub upgrade
- {
- no strict 'refs';
- # make Class->upgrade() work
- my $self = shift;
- my $class = ref($self) || $self || __PACKAGE__;
- # need to set new value?
- if (@_ > 0)
- {
- return ${"${class}::upgrade"} = $_[0];
- }
- ${"${class}::upgrade"};
- }
-
-sub downgrade
- {
- no strict 'refs';
- # make Class->downgrade() work
- my $self = shift;
- my $class = ref($self) || $self || __PACKAGE__;
- # need to set new value?
- if (@_ > 0)
- {
- return ${"${class}::downgrade"} = $_[0];
- }
- ${"${class}::downgrade"};
- }
-
-sub div_scale
- {
- no strict 'refs';
- # make Class->div_scale() work
- my $self = shift;
- my $class = ref($self) || $self || __PACKAGE__;
- if (defined $_[0])
- {
- if ($_[0] < 0)
- {
- require Carp; Carp::croak ('div_scale must be greater than zero');
- }
- ${"${class}::div_scale"} = $_[0];
- }
- ${"${class}::div_scale"};
- }
-
-sub accuracy
- {
- # $x->accuracy($a); ref($x) $a
- # $x->accuracy(); ref($x)
- # Class->accuracy(); class
- # Class->accuracy($a); class $a
-
- my $x = shift;
- my $class = ref($x) || $x || __PACKAGE__;
-
- no strict 'refs';
- # need to set new value?
- if (@_ > 0)
- {
- my $a = shift;
- # convert objects to scalars to avoid deep recursion. If object doesn't
- # have numify(), then hopefully it will have overloading for int() and
- # boolean test without wandering into a deep recursion path...
- $a = $a->numify() if ref($a) && $a->can('numify');
-
- if (defined $a)
- {
- # also croak on non-numerical
- if (!$a || $a <= 0)
- {
- require Carp;
- Carp::croak ('Argument to accuracy must be greater than zero');
- }
- if (int($a) != $a)
- {
- require Carp;
- Carp::croak ('Argument to accuracy must be an integer');
- }
- }
- if (ref($x))
- {
- # $object->accuracy() or fallback to global
- $x->bround($a) if $a; # not for undef, 0
- $x->{_a} = $a; # set/overwrite, even if not rounded
- delete $x->{_p}; # clear P
- $a = ${"${class}::accuracy"} unless defined $a; # proper return value
- }
- else
- {
- ${"${class}::accuracy"} = $a; # set global A
- ${"${class}::precision"} = undef; # clear global P
- }
- return $a; # shortcut
- }
-
- my $a;
- # $object->accuracy() or fallback to global
- $a = $x->{_a} if ref($x);
- # but don't return global undef, when $x's accuracy is 0!
- $a = ${"${class}::accuracy"} if !defined $a;
- $a;
- }
-
-sub precision
- {
- # $x->precision($p); ref($x) $p
- # $x->precision(); ref($x)
- # Class->precision(); class
- # Class->precision($p); class $p
-
- my $x = shift;
- my $class = ref($x) || $x || __PACKAGE__;
-
- no strict 'refs';
- if (@_ > 0)
- {
- my $p = shift;
- # convert objects to scalars to avoid deep recursion. If object doesn't
- # have numify(), then hopefully it will have overloading for int() and
- # boolean test without wandering into a deep recursion path...
- $p = $p->numify() if ref($p) && $p->can('numify');
- if ((defined $p) && (int($p) != $p))
- {
- require Carp; Carp::croak ('Argument to precision must be an integer');
- }
- if (ref($x))
- {
- # $object->precision() or fallback to global
- $x->bfround($p) if $p; # not for undef, 0
- $x->{_p} = $p; # set/overwrite, even if not rounded
- delete $x->{_a}; # clear A
- $p = ${"${class}::precision"} unless defined $p; # proper return value
- }
- else
- {
- ${"${class}::precision"} = $p; # set global P
- ${"${class}::accuracy"} = undef; # clear global A
- }
- return $p; # shortcut
- }
-
- my $p;
- # $object->precision() or fallback to global
- $p = $x->{_p} if ref($x);
- # but don't return global undef, when $x's precision is 0!
- $p = ${"${class}::precision"} if !defined $p;
- $p;
- }
-
-sub config
- {
- # return (or set) configuration data as hash ref
- my $class = shift || 'Math::BigInt';
-
- no strict 'refs';
- if (@_ > 1 || (@_ == 1 && (ref($_[0]) eq 'HASH')))
- {
- # try to set given options as arguments from hash
-
- my $args = $_[0];
- if (ref($args) ne 'HASH')
- {
- $args = { @_ };
- }
- # these values can be "set"
- my $set_args = {};
- foreach my $key (
- qw/trap_inf trap_nan
- upgrade downgrade precision accuracy round_mode div_scale/
- )
- {
- $set_args->{$key} = $args->{$key} if exists $args->{$key};
- delete $args->{$key};
- }
- if (keys %$args > 0)
- {
- require Carp;
- Carp::croak ("Illegal key(s) '",
- join("','",keys %$args),"' passed to $class\->config()");
- }
- foreach my $key (keys %$set_args)
- {
- if ($key =~ /^trap_(inf|nan)\z/)
- {
- ${"${class}::_trap_$1"} = ($set_args->{"trap_$1"} ? 1 : 0);
- next;
+BEGIN {
+ # tie to enable $rnd_mode to work transparently
+ tie $rnd_mode, 'Math::BigInt';
+
+ # set up some handy alias names
+ *as_int = \&as_number;
+ *is_pos = \&is_positive;
+ *is_neg = \&is_negative;
+}
+
+###############################################################################
+# Configuration methods
+###############################################################################
+
+sub round_mode {
+ no strict 'refs';
+ # make Class->round_mode() work
+ my $self = shift;
+ my $class = ref($self) || $self || __PACKAGE__;
+ if (defined $_[0]) {
+ my $m = shift;
+ if ($m !~ /^(even|odd|\+inf|\-inf|zero|trunc|common)$/) {
+ Carp::croak("Unknown round mode '$m'");
}
- # use a call instead of just setting the $variable to check argument
- $class->$key($set_args->{$key});
- }
- }
-
- # now return actual configuration
-
- my $cfg = {
- lib => $CALC,
- lib_version => ${"${CALC}::VERSION"},
- class => $class,
- trap_nan => ${"${class}::_trap_nan"},
- trap_inf => ${"${class}::_trap_inf"},
- version => ${"${class}::VERSION"},
- };
- foreach my $key (qw/
- upgrade downgrade precision accuracy round_mode div_scale
- /)
- {
- $cfg->{$key} = ${"${class}::$key"};
- };
- if (@_ == 1 && (ref($_[0]) ne 'HASH'))
- {
- # calls of the style config('lib') return just this value
- return $cfg->{$_[0]};
+ return ${"${class}::round_mode"} = $m;
}
- $cfg;
- }
+ ${"${class}::round_mode"};
+}
-sub _scale_a
- {
- # select accuracy parameter based on precedence,
- # used by bround() and bfround(), may return undef for scale (means no op)
- my ($x,$scale,$mode) = @_;
+sub upgrade {
+ no strict 'refs';
+ # make Class->upgrade() work
+ my $self = shift;
+ my $class = ref($self) || $self || __PACKAGE__;
+ # need to set new value?
+ if (@_ > 0) {
+ return ${"${class}::upgrade"} = $_[0];
+ }
+ ${"${class}::upgrade"};
+}
- $scale = $x->{_a} unless defined $scale;
+sub downgrade {
+ no strict 'refs';
+ # make Class->downgrade() work
+ my $self = shift;
+ my $class = ref($self) || $self || __PACKAGE__;
+ # need to set new value?
+ if (@_ > 0) {
+ return ${"${class}::downgrade"} = $_[0];
+ }
+ ${"${class}::downgrade"};
+}
- no strict 'refs';
- my $class = ref($x);
+sub div_scale {
+ no strict 'refs';
+ # make Class->div_scale() work
+ my $self = shift;
+ my $class = ref($self) || $self || __PACKAGE__;
+ if (defined $_[0]) {
+ if ($_[0] < 0) {
+ Carp::croak('div_scale must be greater than zero');
+ }
+ ${"${class}::div_scale"} = $_[0];
+ }
+ ${"${class}::div_scale"};
+}
- $scale = ${ $class . '::accuracy' } unless defined $scale;
- $mode = ${ $class . '::round_mode' } unless defined $mode;
+sub accuracy {
+ # $x->accuracy($a); ref($x) $a
+ # $x->accuracy(); ref($x)
+ # Class->accuracy(); class
+ # Class->accuracy($a); class $a
- if (defined $scale)
- {
- $scale = $scale->can('numify') ? $scale->numify()
- : "$scale" if ref($scale);
- $scale = int($scale);
+ my $x = shift;
+ my $class = ref($x) || $x || __PACKAGE__;
+
+ no strict 'refs';
+ # need to set new value?
+ if (@_ > 0) {
+ my $a = shift;
+ # convert objects to scalars to avoid deep recursion. If object doesn't
+ # have numify(), then hopefully it will have overloading for int() and
+ # boolean test without wandering into a deep recursion path...
+ $a = $a->numify() if ref($a) && $a->can('numify');
+
+ if (defined $a) {
+ # also croak on non-numerical
+ if (!$a || $a <= 0) {
+ Carp::croak('Argument to accuracy must be greater than zero');
+ }
+ if (int($a) != $a) {
+ Carp::croak('Argument to accuracy must be an integer');
+ }
+ }
+ if (ref($x)) {
+ # $object->accuracy() or fallback to global
+ $x->bround($a) if $a; # not for undef, 0
+ $x->{_a} = $a; # set/overwrite, even if not rounded
+ delete $x->{_p}; # clear P
+ $a = ${"${class}::accuracy"} unless defined $a; # proper return value
+ } else {
+ ${"${class}::accuracy"} = $a; # set global A
+ ${"${class}::precision"} = undef; # clear global P
+ }
+ return $a; # shortcut
}
- ($scale,$mode);
- }
+ my $a;
+ # $object->accuracy() or fallback to global
+ $a = $x->{_a} if ref($x);
+ # but don't return global undef, when $x's accuracy is 0!
+ $a = ${"${class}::accuracy"} if !defined $a;
+ $a;
+}
+
+sub precision {
+ # $x->precision($p); ref($x) $p
+ # $x->precision(); ref($x)
+ # Class->precision(); class
+ # Class->precision($p); class $p
-sub _scale_p
- {
- # select precision parameter based on precedence,
- # used by bround() and bfround(), may return undef for scale (means no op)
- my ($x,$scale,$mode) = @_;
+ my $x = shift;
+ my $class = ref($x) || $x || __PACKAGE__;
+
+ no strict 'refs';
+ if (@_ > 0) {
+ my $p = shift;
+ # convert objects to scalars to avoid deep recursion. If object doesn't
+ # have numify(), then hopefully it will have overloading for int() and
+ # boolean test without wandering into a deep recursion path...
+ $p = $p->numify() if ref($p) && $p->can('numify');
+ if ((defined $p) && (int($p) != $p)) {
+ Carp::croak('Argument to precision must be an integer');
+ }
+ if (ref($x)) {
+ # $object->precision() or fallback to global
+ $x->bfround($p) if $p; # not for undef, 0
+ $x->{_p} = $p; # set/overwrite, even if not rounded
+ delete $x->{_a}; # clear A
+ $p = ${"${class}::precision"} unless defined $p; # proper return value
+ } else {
+ ${"${class}::precision"} = $p; # set global P
+ ${"${class}::accuracy"} = undef; # clear global A
+ }
+ return $p; # shortcut
+ }
- $scale = $x->{_p} unless defined $scale;
+ my $p;
+ # $object->precision() or fallback to global
+ $p = $x->{_p} if ref($x);
+ # but don't return global undef, when $x's precision is 0!
+ $p = ${"${class}::precision"} if !defined $p;
+ $p;
+}
- no strict 'refs';
- my $class = ref($x);
+sub config {
+ # return (or set) configuration data as hash ref
+ my $class = shift || __PACKAGE__;
- $scale = ${ $class . '::precision' } unless defined $scale;
- $mode = ${ $class . '::round_mode' } unless defined $mode;
+ no strict 'refs';
+ if (@_ > 1 || (@_ == 1 && (ref($_[0]) eq 'HASH'))) {
+ # try to set given options as arguments from hash
- if (defined $scale)
+ my $args = $_[0];
+ if (ref($args) ne 'HASH') {
+ $args = { @_ };
+ }
+ # these values can be "set"
+ my $set_args = {};
+ foreach my $key (qw/
+ accuracy precision
+ round_mode div_scale
+ upgrade downgrade
+ trap_inf trap_nan
+ /)
+ {
+ $set_args->{$key} = $args->{$key} if exists $args->{$key};
+ delete $args->{$key};
+ }
+ if (keys %$args > 0) {
+ Carp::croak("Illegal key(s) '", join("', '", keys %$args),
+ "' passed to $class\->config()");
+ }
+ foreach my $key (keys %$set_args) {
+ if ($key =~ /^trap_(inf|nan)\z/) {
+ ${"${class}::_trap_$1"} = ($set_args->{"trap_$1"} ? 1 : 0);
+ next;
+ }
+ # use a call instead of just setting the $variable to check argument
+ $class->$key($set_args->{$key});
+ }
+ }
+
+ # now return actual configuration
+
+ my $cfg = {
+ lib => $CALC,
+ lib_version => ${"${CALC}::VERSION"},
+ class => $class,
+ trap_nan => ${"${class}::_trap_nan"},
+ trap_inf => ${"${class}::_trap_inf"},
+ version => ${"${class}::VERSION"},
+ };
+ foreach my $key (qw/
+ accuracy precision
+ round_mode div_scale
+ upgrade downgrade
+ /)
{
- $scale = $scale->can('numify') ? $scale->numify()
- : "$scale" if ref($scale);
- $scale = int($scale);
+ $cfg->{$key} = ${"${class}::$key"};
+ }
+ if (@_ == 1 && (ref($_[0]) ne 'HASH')) {
+ # calls of the style config('lib') return just this value
+ return $cfg->{$_[0]};
}
+ $cfg;
+}
- ($scale,$mode);
- }
+sub _scale_a {
+ # select accuracy parameter based on precedence,
+ # used by bround() and bfround(), may return undef for scale (means no op)
+ my ($x, $scale, $mode) = @_;
-##############################################################################
-# constructors
+ $scale = $x->{_a} unless defined $scale;
-sub copy {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+ no strict 'refs';
+ my $class = ref($x);
- # If called as a class method, the object to copy is the next argument.
+ $scale = ${ $class . '::accuracy' } unless defined $scale;
+ $mode = ${ $class . '::round_mode' } unless defined $mode;
- $self = shift() unless $selfref;
+ if (defined $scale) {
+ $scale = $scale->can('numify') ? $scale->numify()
+ : "$scale" if ref($scale);
+ $scale = int($scale);
+ }
- my $copy = bless {}, $class;
+ ($scale, $mode);
+}
- $copy->{sign} = $self->{sign};
- $copy->{value} = $CALC->_copy($self->{value});
- $copy->{_a} = $self->{_a} if exists $self->{_a};
- $copy->{_p} = $self->{_p} if exists $self->{_p};
+sub _scale_p {
+ # select precision parameter based on precedence,
+ # used by bround() and bfround(), may return undef for scale (means no op)
+ my ($x, $scale, $mode) = @_;
- return $copy;
+ $scale = $x->{_p} unless defined $scale;
+
+ no strict 'refs';
+ my $class = ref($x);
+
+ $scale = ${ $class . '::precision' } unless defined $scale;
+ $mode = ${ $class . '::round_mode' } unless defined $mode;
+
+ if (defined $scale) {
+ $scale = $scale->can('numify') ? $scale->numify()
+ : "$scale" if ref($scale);
+ $scale = int($scale);
+ }
+
+ ($scale, $mode);
}
+###############################################################################
+# Constructor methods
+###############################################################################
+
sub new {
# Create a new Math::BigInt object from a string or another Math::BigInt
# object. See hash keys documented at top.
@@ -524,15 +533,29 @@ sub new {
my $selfref = ref $self;
my $class = $selfref || $self;
+ # The POD says:
+ #
+ # "Currently, Math::BigInt->new() defaults to 0, while Math::BigInt->new('')
+ # results in 'NaN'. This might change in the future, so use always the
+ # following explicit forms to get a zero or NaN:
+ # $zero = Math::BigInt->bzero();
+ # $nan = Math::BigInt->bnan();
+ #
+ # But although this use has been discouraged for more than 10 years, people
+ # apparently still use it, so we still support it.
+
+ return $self->bzero() unless @_;
+
my ($wanted, $a, $p, $r) = @_;
- # If called as a class method, initialize a new object.
+ # Always return a new object, so it called as an instance method, copy the
+ # invocand, and if called as a class method, initialize a new object.
- $self = bless {}, $class unless $selfref;
+ $self = $selfref ? $self -> copy()
+ : bless {}, $class;
unless (defined $wanted) {
- require Carp;
- Carp::carp("Use of uninitialized value in new");
+ #Carp::carp("Use of uninitialized value in new()");
return $self->bzero($a, $p, $r);
}
@@ -571,7 +594,7 @@ sub new {
|| defined(${"${class}::accuracy"}))
{
$self->round($a, $p, $r)
- unless @_ == 4 && !defined $a && !defined $p;
+ unless @_ >= 3 && !defined $a && !defined $p;
}
return $self;
@@ -582,28 +605,38 @@ sub new {
if ($wanted =~ /^\s*([+-]?)inf(inity)?\s*\z/i) {
my $sgn = $1 || '+';
$self->{sign} = $sgn . 'inf'; # set a default sign for bstr()
- return $self->binf($sgn);
+ return $class->binf($sgn);
}
# Handle explicit NaNs (not the ones returned due to invalid input).
if ($wanted =~ /^\s*([+-]?)nan\s*\z/i) {
- return $self->bnan();
+ $self = $class -> bnan();
+ $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
+ return $self;
}
+ # Handle hexadecimal numbers.
+
if ($wanted =~ /^\s*[+-]?0[Xx]/) {
- return $class -> from_hex($wanted);
+ $self = $class -> from_hex($wanted);
+ $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
+ return $self;
}
+ # Handle binary numbers.
+
if ($wanted =~ /^\s*[+-]?0[Bb]/) {
- return $class -> from_bin($wanted);
+ $self = $class -> from_bin($wanted);
+ $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
+ return $self;
}
# Split string into mantissa, exponent, integer, fraction, value, and sign.
my ($mis, $miv, $mfv, $es, $ev) = _split($wanted);
if (!ref $mis) {
if ($_trap_nan) {
- require Carp; Carp::croak("$wanted is not a number in $class");
+ Carp::croak("$wanted is not a number in $class");
}
$self->{value} = $CALC->_zero();
$self->{sign} = $nan;
@@ -626,7 +659,7 @@ sub new {
my $diff = $e - CORE::length($$mfv);
if ($diff < 0) { # Not integer
if ($_trap_nan) {
- require Carp; Carp::croak("$wanted not an integer in $class");
+ Carp::croak("$wanted not an integer in $class");
}
#print "NOI 1\n";
return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
@@ -642,7 +675,7 @@ sub new {
if ($$mfv ne '') { # e <= 0
# fraction and negative/zero E => NOI
if ($_trap_nan) {
- require Carp; Carp::croak("$wanted not an integer in $class");
+ Carp::croak("$wanted not an integer in $class");
}
#print "NOI 2 \$\$mfv '$$mfv'\n";
return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
@@ -657,7 +690,7 @@ sub new {
if ($frac =~ /[^0]/) {
if ($_trap_nan) {
- require Carp; Carp::croak("$wanted not an integer in $class");
+ Carp::croak("$wanted not an integer in $class");
}
#print "NOI 3\n";
return $upgrade->new($wanted, $a, $p, $r) if defined $upgrade;
@@ -675,1056 +708,996 @@ sub new {
# $self. Do not round for new($x, undef, undef) since that is used by MBF
# to signal no rounding.
- $self->round($a, $p, $r) unless @_ == 4 && !defined $a && !defined $p;
+ $self->round($a, $p, $r) unless @_ >= 3 && !defined $a && !defined $p;
$self;
}
-sub bnan
- {
- # create a bigint 'NaN', if given a BigInt, set it to 'NaN'
- my $self = shift;
- $self = $class if !defined $self;
- if (!ref($self))
- {
- my $c = $self; $self = {}; bless $self, $c;
- }
- no strict 'refs';
- if (${"${class}::_trap_nan"})
- {
- require Carp;
- Carp::croak ("Tried to set $self to NaN in $class\::bnan()");
- }
- $self->import() if $IMPORT == 0; # make require work
- return if $self->modify('bnan');
- if ($self->can('_bnan'))
- {
- # use subclass to initialize
- $self->_bnan();
- }
- else
- {
- # otherwise do our own thing
- $self->{value} = $CALC->_zero();
- }
- $self->{sign} = $nan;
- delete $self->{_a}; delete $self->{_p}; # rounding NaN is silly
- $self;
- }
-
-sub binf
- {
- # create a bigint '+-inf', if given a BigInt, set it to '+-inf'
- # the sign is either '+', or if given, used from there
- my $self = shift;
- my $sign = shift; $sign = '+' if !defined $sign || $sign !~ /^-(inf)?$/;
- $self = $class if !defined $self;
- if (!ref($self))
- {
- my $c = $self; $self = {}; bless $self, $c;
- }
- no strict 'refs';
- if (${"${class}::_trap_inf"})
- {
- require Carp;
- Carp::croak ("Tried to set $self to +-inf in $class\::binf()");
- }
- $self->import() if $IMPORT == 0; # make require work
- return if $self->modify('binf');
- if ($self->can('_binf'))
+# Create a Math::BigInt from a hexadecimal string.
+
+sub from_hex {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('from_hex');
+
+ my $str = shift;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
+
+ if ($str =~ s/
+ ^
+ ( [+-]? )
+ (0?x)?
+ (
+ [0-9a-fA-F]*
+ ( _ [0-9a-fA-F]+ )*
+ )
+ $
+ //x)
{
- # use subclass to initialize
- $self->_binf();
+ # Get a "clean" version of the string, i.e., non-emtpy and with no
+ # underscores or invalid characters.
+
+ my $sign = $1;
+ my $chrs = $3;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+
+ # The library method requires a prefix.
+
+ $self->{value} = $CALC->_from_hex('0x' . $chrs);
+
+ # Place the sign.
+
+ $self->{sign} = $sign eq '-' && ! $CALC->_is_zero($self->{value})
+ ? '-' : '+';
+
+ return $self;
}
- else
+
+ # CORE::hex() parses as much as it can, and ignores any trailing garbage.
+ # For backwards compatibility, we return NaN.
+
+ return $self->bnan();
+}
+
+# Create a Math::BigInt from an octal string.
+
+sub from_oct {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('from_oct');
+
+ my $str = shift;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
+
+ if ($str =~ s/
+ ^
+ ( [+-]? )
+ (
+ [0-7]*
+ ( _ [0-7]+ )*
+ )
+ $
+ //x)
{
- # otherwise do our own thing
- $self->{value} = $CALC->_zero();
+ # Get a "clean" version of the string, i.e., non-emtpy and with no
+ # underscores or invalid characters.
+
+ my $sign = $1;
+ my $chrs = $2;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+
+ # The library method requires a prefix.
+
+ $self->{value} = $CALC->_from_oct('0' . $chrs);
+
+ # Place the sign.
+
+ $self->{sign} = $sign eq '-' && ! $CALC->_is_zero($self->{value})
+ ? '-' : '+';
+
+ return $self;
}
- $sign = $sign . 'inf' if $sign !~ /inf$/; # - => -inf
- $self->{sign} = $sign;
- ($self->{_a},$self->{_p}) = @_; # take over requested rounding
- $self;
- }
-sub bzero
- {
- # create a bigint '+0', if given a BigInt, set it to 0
- my $self = shift;
- $self = __PACKAGE__ if !defined $self;
+ # CORE::oct() parses as much as it can, and ignores any trailing garbage.
+ # For backwards compatibility, we return NaN.
+
+ return $self->bnan();
+}
+
+# Create a Math::BigInt from a binary string.
- if (!ref($self))
+sub from_bin {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('from_bin');
+
+ my $str = shift;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
+
+ if ($str =~ s/
+ ^
+ ( [+-]? )
+ (0?b)?
+ (
+ [01]*
+ ( _ [01]+ )*
+ )
+ $
+ //x)
{
- my $c = $self; $self = {}; bless $self, $c;
+ # Get a "clean" version of the string, i.e., non-emtpy and with no
+ # underscores or invalid characters.
+
+ my $sign = $1;
+ my $chrs = $3;
+ $chrs =~ tr/_//d;
+ $chrs = '0' unless CORE::length $chrs;
+
+ # The library method requires a prefix.
+
+ $self->{value} = $CALC->_from_bin('0b' . $chrs);
+
+ # Place the sign.
+
+ $self->{sign} = $sign eq '-' && ! $CALC->_is_zero($self->{value})
+ ? '-' : '+';
+
+ return $self;
}
- $self->import() if $IMPORT == 0; # make require work
- return if $self->modify('bzero');
- if ($self->can('_bzero'))
- {
- # use subclass to initialize
- $self->_bzero();
+ # For consistency with from_hex() and from_oct(), we return NaN when the
+ # input is invalid.
+
+ return $self->bnan();
+}
+
+# Create a Math::BigInt from a byte string.
+
+sub from_bytes {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('from_bytes');
+
+ my $str = shift;
+
+ # If called as a class method, initialize a new object.
+
+ $self = $class -> bzero() unless $selfref;
+ $self -> {sign} = '+';
+ $self -> {value} = $CALC -> _from_bytes($str);
+ return $self;
+}
+
+sub bzero {
+ # create/assign '+0'
+
+ if (@_ == 0) {
+ #Carp::carp("Using bzero() as a function is deprecated;",
+ # " use bzero() as a method instead");
+ unshift @_, __PACKAGE__;
}
- else
- {
- # otherwise do our own thing
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self->import() if $IMPORT == 0; # make require work
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('bzero');
+
+ $self = bless {}, $class unless $selfref;
+
+ $self->{sign} = '+';
$self->{value} = $CALC->_zero();
+
+ if (@_ > 0) {
+ if (@_ > 3) {
+ # call like: $x->bzero($a, $p, $r, $y, ...);
+ ($self, $self->{_a}, $self->{_p}) = $self->_find_round_parameters(@_);
+ } else {
+ # call like: $x->bzero($a, $p, $r);
+ $self->{_a} = $_[0]
+ if !defined $self->{_a} || (defined $_[0] && $_[0] > $self->{_a});
+ $self->{_p} = $_[1]
+ if !defined $self->{_p} || (defined $_[1] && $_[1] > $self->{_p});
+ }
}
- $self->{sign} = '+';
- if (@_ > 0)
- {
- if (@_ > 3)
- {
- # call like: $x->bzero($a,$p,$r,$y);
- ($self,$self->{_a},$self->{_p}) = $self->_find_round_parameters(@_);
- }
- else
- {
- $self->{_a} = $_[0]
- if ( (!defined $self->{_a}) || (defined $_[0] && $_[0] > $self->{_a}));
- $self->{_p} = $_[1]
- if ( (!defined $self->{_p}) || (defined $_[1] && $_[1] > $self->{_p}));
- }
- }
- $self;
- }
-
-sub bone
- {
- # create a bigint '+1' (or -1 if given sign '-'),
- # if given a BigInt, set it to +1 or -1, respectively
- my $self = shift;
- my $sign = shift; $sign = '+' if !defined $sign || $sign ne '-';
- $self = $class if !defined $self;
-
- if (!ref($self))
- {
- my $c = $self; $self = {}; bless $self, $c;
- }
- $self->import() if $IMPORT == 0; # make require work
- return if $self->modify('bone');
- if ($self->can('_bone'))
- {
- # use subclass to initialize
- $self->_bone();
+ return $self;
+}
+
+sub bone {
+ # Create or assign '+1' (or -1 if given sign '-').
+
+ if (@_ == 0 || (defined($_[0]) && ($_[0] eq '+' || $_[0] eq '-'))) {
+ #Carp::carp("Using bone() as a function is deprecated;",
+ # " use bone() as a method instead");
+ unshift @_, __PACKAGE__;
}
- else
- {
- # otherwise do our own thing
+
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self->import() if $IMPORT == 0; # make require work
+
+ # Don't modify constant (read-only) objects.
+
+ return if $selfref && $self->modify('bone');
+
+ my $sign = shift;
+ $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
+
+ $self = bless {}, $class unless $selfref;
+
+ $self->{sign} = $sign;
$self->{value} = $CALC->_one();
+
+ if (@_ > 0) {
+ if (@_ > 3) {
+ # call like: $x->bone($sign, $a, $p, $r, $y, ...);
+ ($self, $self->{_a}, $self->{_p}) = $self->_find_round_parameters(@_);
+ } else {
+ # call like: $x->bone($sign, $a, $p, $r);
+ $self->{_a} = $_[0]
+ if !defined $self->{_a} || (defined $_[0] && $_[0] > $self->{_a});
+ $self->{_p} = $_[1]
+ if !defined $self->{_p} || (defined $_[1] && $_[1] > $self->{_p});
+ }
}
- $self->{sign} = $sign;
- if (@_ > 0)
- {
- if (@_ > 3)
- {
- # call like: $x->bone($sign,$a,$p,$r,$y);
- ($self,$self->{_a},$self->{_p}) = $self->_find_round_parameters(@_);
- }
- else
- {
- # call like: $x->bone($sign,$a,$p,$r);
- $self->{_a} = $_[0]
- if ( (!defined $self->{_a}) || (defined $_[0] && $_[0] > $self->{_a}));
- $self->{_p} = $_[1]
- if ( (!defined $self->{_p}) || (defined $_[1] && $_[1] > $self->{_p}));
- }
- }
- $self;
- }
-##############################################################################
-# string conversion
+ return $self;
+}
-sub bsstr
- {
- # (ref to BFLOAT or num_str ) return num_str
- # Convert number from internal format to scientific string format.
- # internal format is always normalized (no leading zeros, "-0E0" => "+0E0")
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub binf {
+ # create/assign a '+inf' or '-inf'
- if ($x->{sign} !~ /^[+-]$/)
+ if (@_ == 0 || (defined($_[0]) && !ref($_[0]) &&
+ $_[0] =~ /^\s*[+-](inf(inity)?)?\s*$/))
{
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
+ #Carp::carp("Using binf() as a function is deprecated;",
+ # " use binf() as a method instead");
+ unshift @_, __PACKAGE__;
}
- my ($m,$e) = $x->parts();
- #$m->bstr() . 'e+' . $e->bstr(); # e can only be positive in BigInt
- # 'e+' because E can only be positive in BigInt
- $m->bstr() . 'e+' . $CALC->_str($e->{value});
- }
-sub bstr
- {
- # make a string from bigint object
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- if ($x->{sign} !~ /^[+-]$/)
{
- return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
- return 'inf'; # +inf
- }
- my $es = ''; $es = $x->{sign} if $x->{sign} eq '-';
- $es.$CALC->_str($x->{value});
- }
-
-sub numify
- {
- # Make a Perl scalar number from a Math::BigInt object.
- my $x = shift; $x = $class->new($x) unless ref $x;
-
- if ($x -> is_nan()) {
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- return $inf - $inf;
- }
-
- if ($x -> is_inf()) {
- require Math::Complex;
- my $inf = Math::Complex::Inf();
- return $x -> is_negative() ? -$inf : $inf;
- }
-
- my $num = 0 + $CALC->_num($x->{value});
- return $x->{sign} eq '-' ? -$num : $num;
- }
+ no strict 'refs';
+ if (${"${class}::_trap_inf"}) {
+ Carp::croak("Tried to create +-inf in $class->binf()");
+ }
+ }
-##############################################################################
-# public stuff (usually prefixed with "b")
+ $self->import() if $IMPORT == 0; # make require work
-sub sign
- {
- # return the sign of the number: +/-/-inf/+inf/NaN
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ # Don't modify constant (read-only) objects.
- $x->{sign};
- }
+ return if $selfref && $self->modify('binf');
-sub _find_round_parameters {
- # After any operation or when calling round(), the result is rounded by
- # regarding the A & P from arguments, local parameters, or globals.
+ my $sign = shift;
+ $sign = defined $sign && $sign =~ /^\s*-/ ? "-" : "+";
- # !!!!!!! If you change this, remember to change round(), too! !!!!!!!!!!
+ $self = bless {}, $class unless $selfref;
- # This procedure finds the round parameters, but it is for speed reasons
- # duplicated in round. Otherwise, it is tested by the testsuite and used
- # by bdiv().
+ $self -> {sign} = $sign . 'inf';
+ $self -> {value} = $CALC -> _zero();
- # returns ($self) or ($self,$a,$p,$r) - sets $self to NaN of both A and P
- # were requested/defined (locally or globally or both)
+ return $self;
+}
- my ($self, $a, $p, $r, @args) = @_;
- # $a accuracy, if given by caller
- # $p precision, if given by caller
- # $r round_mode, if given by caller
- # @args all 'other' arguments (0 for unary, 1 for binary ops)
+sub bnan {
+ # create/assign a 'NaN'
- my $class = ref($self); # find out class of argument(s)
- no strict 'refs';
+ if (@_ == 0) {
+ #Carp::carp("Using bnan() as a function is deprecated;",
+ # " use bnan() as a method instead");
+ unshift @_, __PACKAGE__;
+ }
- # convert to normal scalar for speed and correctness in inner parts
- $a = $a->can('numify') ? $a->numify() : "$a" if defined $a && ref($a);
- $p = $p->can('numify') ? $p->numify() : "$p" if defined $p && ref($p);
+ my $self = shift;
+ my $selfref = ref($self);
+ my $class = $selfref || $self;
- # now pick $a or $p, but only if we have got "arguments"
- if (!defined $a) {
- foreach ($self, @args) {
- # take the defined one, or if both defined, the one that is smaller
- $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
- }
- }
- if (!defined $p) {
- # even if $a is defined, take $p, to signal error for both defined
- foreach ($self, @args) {
- # take the defined one, or if both defined, the one that is bigger
- # -2 > -3, and 3 > 2
- $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
+ {
+ no strict 'refs';
+ if (${"${class}::_trap_nan"}) {
+ Carp::croak("Tried to create NaN in $class->bnan()");
}
}
- # if still none defined, use globals (#2)
- $a = ${"$class\::accuracy"} unless defined $a;
- $p = ${"$class\::precision"} unless defined $p;
+ $self->import() if $IMPORT == 0; # make require work
- # A == 0 is useless, so undef it to signal no rounding
- $a = undef if defined $a && $a == 0;
+ # Don't modify constant (read-only) objects.
- # no rounding today?
- return ($self) unless defined $a || defined $p; # early out
+ return if $selfref && $self->modify('bnan');
- # set A and set P is an fatal error
- return ($self->bnan()) if defined $a && defined $p; # error
+ $self = bless {}, $class unless $selfref;
- $r = ${"$class\::round_mode"} unless defined $r;
- if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) {
- require Carp; Carp::croak ("Unknown round mode '$r'");
+ $self -> {sign} = $nan;
+ $self -> {value} = $CALC -> _zero();
+
+ return $self;
+}
+
+sub bpi {
+ # Calculate PI to N digits. Unless upgrading is in effect, returns the
+ # result truncated to an integer, that is, always returns '3'.
+ my ($self, $n) = @_;
+ if (@_ == 1) {
+ # called like Math::BigInt::bpi(10);
+ $n = $self;
+ $self = $class;
}
+ $self = ref($self) if ref($self);
- $a = int($a) if defined $a;
- $p = int($p) if defined $p;
+ return $upgrade->new($n) if defined $upgrade;
- ($self, $a, $p, $r);
+ # hard-wired to "3"
+ $self->new(3);
}
-sub round {
- # Round $self according to given parameters, or given second argument's
- # parameters or global defaults
+sub copy {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- # for speed reasons, _find_round_parameters is embedded here:
+ # If called as a class method, the object to copy is the next argument.
- my ($self, $a, $p, $r, @args) = @_;
- # $a accuracy, if given by caller
- # $p precision, if given by caller
- # $r round_mode, if given by caller
- # @args all 'other' arguments (0 for unary, 1 for binary ops)
+ $self = shift() unless $selfref;
- my $class = ref($self); # find out class of argument(s)
- no strict 'refs';
+ my $copy = bless {}, $class;
- # now pick $a or $p, but only if we have got "arguments"
- if (!defined $a) {
- foreach ($self, @args) {
- # take the defined one, or if both defined, the one that is smaller
- $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
- }
- }
- if (!defined $p) {
- # even if $a is defined, take $p, to signal error for both defined
- foreach ($self, @args) {
- # take the defined one, or if both defined, the one that is bigger
- # -2 > -3, and 3 > 2
- $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
- }
- }
+ $copy->{sign} = $self->{sign};
+ $copy->{value} = $CALC->_copy($self->{value});
+ $copy->{_a} = $self->{_a} if exists $self->{_a};
+ $copy->{_p} = $self->{_p} if exists $self->{_p};
- # if still none defined, use globals (#2)
- $a = ${"$class\::accuracy"} unless defined $a;
- $p = ${"$class\::precision"} unless defined $p;
+ return $copy;
+}
- # A == 0 is useless, so undef it to signal no rounding
- $a = undef if defined $a && $a == 0;
+sub as_number {
+ # An object might be asked to return itself as bigint on certain overloaded
+ # operations. This does exactly this, so that sub classes can simple inherit
+ # it or override with their own integer conversion routine.
+ $_[0]->copy();
+}
- # no rounding today?
- return $self unless defined $a || defined $p; # early out
+###############################################################################
+# Boolean methods
+###############################################################################
- # set A and set P is an fatal error
- return $self->bnan() if defined $a && defined $p;
+sub is_zero {
+ # return true if arg (BINT or num_str) is zero (array '+', '0')
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- $r = ${"$class\::round_mode"} unless defined $r;
- if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) {
- require Carp; Carp::croak ("Unknown round mode '$r'");
- }
+ return 0 if $x->{sign} !~ /^\+$/; # -, NaN & +-inf aren't
+ $CALC->_is_zero($x->{value});
+}
- # now round, by calling either bround or bfround:
- if (defined $a) {
- $self->bround(int($a), $r) if !defined $self->{_a} || $self->{_a} >= $a;
- } else { # both can't be undefined due to early out
- $self->bfround(int($p), $r) if !defined $self->{_p} || $self->{_p} <= $p;
+sub is_one {
+ # return true if arg (BINT or num_str) is +1, or -1 if sign is given
+ my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $sign = '+' if !defined $sign || $sign ne '-';
+
+ return 0 if $x->{sign} ne $sign; # -1 != +1, NaN, +-inf aren't either
+ $CALC->_is_one($x->{value});
+}
+
+sub is_finite {
+ my $x = shift;
+ return $x->{sign} eq '+' || $x->{sign} eq '-';
+}
+
+sub is_inf {
+ # return true if arg (BINT or num_str) is +-inf
+ my ($class, $x, $sign) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ if (defined $sign) {
+ $sign = '[+-]inf' if $sign eq ''; # +- doesn't matter, only that's inf
+ $sign = "[$1]inf" if $sign =~ /^([+-])(inf)?$/; # extract '+' or '-'
+ return $x->{sign} =~ /^$sign$/ ? 1 : 0;
}
+ $x->{sign} =~ /^[+-]inf$/ ? 1 : 0; # only +-inf is infinity
+}
- # bround() or bfround() already called bnorm() if nec.
- $self;
+sub is_nan {
+ # return true if arg (BINT or num_str) is NaN
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ $x->{sign} eq $nan ? 1 : 0;
}
-sub bnorm
- {
- # (numstr or BINT) return BINT
- # Normalize number -- no-op here
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
- $x;
- }
-
-sub babs
- {
- # (BINT or num_str) return BINT
- # make number absolute, or return absolute BINT from string
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return $x if $x->modify('babs');
- # post-normalized abs for internal use (does nothing for NaN)
- $x->{sign} =~ s/^-/+/;
- $x;
- }
+sub is_positive {
+ # return true when arg (BINT or num_str) is positive (> 0)
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub bsgn {
- # Signum function.
+ return 1 if $x->{sign} eq '+inf'; # +inf is positive
- my $self = shift;
+ # 0+ is neither positive nor negative
+ ($x->{sign} eq '+' && !$x->is_zero()) ? 1 : 0;
+}
- return $self if $self->modify('bsgn');
+sub is_negative {
+ # return true when arg (BINT or num_str) is negative (< 0)
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $self -> bone("+") if $self -> is_pos();
- return $self -> bone("-") if $self -> is_neg();
- return $self; # zero or NaN
+ $x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not
}
-sub bneg
- {
- # (BINT or num_str) return BINT
- # negate number or make a negated number from string
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub is_odd {
+ # return true when arg (BINT or num_str) is odd, false for even
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $x if $x->modify('bneg');
+ return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
+ $CALC->_is_odd($x->{value});
+}
- # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
- $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $CALC->_is_zero($x->{value}));
- $x;
- }
+sub is_even {
+ # return true when arg (BINT or num_str) is even, false for odd
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub bcmp
- {
- # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
- # (BINT or num_str, BINT or num_str) return cond_code
+ return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
+ $CALC->_is_even($x->{value});
+}
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
+sub is_int {
+ # return true when arg (BINT or num_str) is an integer
+ # always true for Math::BigInt, but different for Math::BigFloat objects
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
- }
+ $x->{sign} =~ /^[+-]$/ ? 1 : 0; # inf/-inf/NaN aren't
+}
- return $upgrade->bcmp($x,$y) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+###############################################################################
+# Comparison methods
+###############################################################################
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
- return +1 if $x->{sign} eq '+inf';
- return -1 if $x->{sign} eq '-inf';
- return -1 if $y->{sign} eq '+inf';
- return +1;
- }
- # check sign for speed first
- return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y
- return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0
-
- # have same sign, so compare absolute values. Don't make tests for zero
- # here because it's actually slower than testing in Calc (especially w/ Pari
- # et al)
-
- # post-normalized compare for internal use (honors signs)
- if ($x->{sign} eq '+')
- {
- # $x and $y both > 0
- return $CALC->_acmp($x->{value},$y->{value});
- }
+sub bcmp {
+ # Compares 2 values. Returns one of undef, <0, =0, >0. (suitable for sort)
+ # (BINT or num_str, BINT or num_str) return cond_code
- # $x && $y both < 0
- $CALC->_acmp($y->{value},$x->{value}); # swapped acmp (lib returns 0,1,-1)
- }
+ # set up parameters
+ my ($class, $x, $y) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
-sub bacmp
- {
- # Compares 2 values, ignoring their signs.
- # Returns one of undef, <0, =0, >0. (suitable for sort)
- # (BINT, BINT) return cond_code
+ return $upgrade->bcmp($x, $y) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
+ if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
+ # handle +-inf and NaN
+ return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
+ return +1 if $x->{sign} eq '+inf';
+ return -1 if $x->{sign} eq '-inf';
+ return -1 if $y->{sign} eq '+inf';
+ return +1;
}
+ # check sign for speed first
+ return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y
+ return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0
- return $upgrade->bacmp($x,$y) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ # have same sign, so compare absolute values. Don't make tests for zero
+ # here because it's actually slower than testing in Calc (especially w/ Pari
+ # et al)
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
- return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
- return -1;
- }
- $CALC->_acmp($x->{value},$y->{value}); # lib does only 0,1,-1
- }
-
-sub badd
- {
- # add second arg (BINT or string) to first (BINT) (modifies first)
- # return result as BINT
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # post-normalized compare for internal use (honors signs)
+ if ($x->{sign} eq '+') {
+ # $x and $y both > 0
+ return $CALC->_acmp($x->{value}, $y->{value});
}
- return $x if $x->modify('badd');
- return $upgrade->badd($upgrade->new($x),$upgrade->new($y),@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ # $x && $y both < 0
+ $CALC->_acmp($y->{value}, $x->{value}); # swapped acmp (lib returns 0, 1, -1)
+}
- $r[3] = $y; # no push!
- # inf and NaN handling
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # NaN first
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
- {
- # +inf++inf or -inf+-inf => same, rest is NaN
- return $x if $x->{sign} eq $y->{sign};
- return $x->bnan();
- }
- # +-inf + something => +inf
- # something +-inf => +-inf
- $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
- return $x;
- }
+sub bacmp {
+ # Compares 2 values, ignoring their signs.
+ # Returns one of undef, <0, =0, >0. (suitable for sort)
+ # (BINT, BINT) return cond_code
- my ($sx, $sy) = ( $x->{sign}, $y->{sign} ); # get signs
+ # set up parameters
+ my ($class, $x, $y) = ref($_[0]) && ref($_[0]) eq ref($_[1])
+ ? (ref($_[0]), @_)
+ : objectify(2, @_);
- if ($sx eq $sy)
- {
- $x->{value} = $CALC->_add($x->{value},$y->{value}); # same sign, abs add
- }
- else
- {
- my $a = $CALC->_acmp ($y->{value},$x->{value}); # absolute compare
- if ($a > 0)
- {
- $x->{value} = $CALC->_sub($y->{value},$x->{value},1); # abs sub w/ swap
- $x->{sign} = $sy;
- }
- elsif ($a == 0)
- {
- # speedup, if equal, set result to 0
- $x->{value} = $CALC->_zero();
- $x->{sign} = '+';
- }
- else # a < 0
- {
- $x->{value} = $CALC->_sub($x->{value}, $y->{value}); # abs sub
- }
- }
- $x->round(@r);
- }
-
-sub bsub
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # subtract second arg from first, modify first
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ return $upgrade->bacmp($x, $y) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
+
+ if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
+ # handle +-inf and NaN
+ return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
+ return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
+ return -1;
}
+ $CALC->_acmp($x->{value}, $y->{value}); # lib does only 0, 1, -1
+}
- return $x if $x->modify('bsub');
+sub beq {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- return $upgrade->new($x)->bsub($upgrade->new($y),@r) if defined $upgrade &&
- ((!$x->isa($self)) || (!$y->isa($self)));
+ Carp::croak 'beq() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for beq()' unless @_ == 1;
- return $x->round(@r) if $y->is_zero();
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && ! $cmp;
+}
- # To correctly handle the lone special case $x->bsub($x), we note the sign
- # of $x, then flip the sign from $y, and if the sign of $x did change, too,
- # then we caught the special case:
- my $xsign = $x->{sign};
- $y->{sign} =~ tr/+\-/-+/; # does nothing for NaN
- if ($xsign ne $x->{sign})
- {
- # special case of $x->bsub($x) results in 0
- return $x->bzero(@r) if $xsign =~ /^[+-]$/;
- return $x->bnan(); # NaN, -inf, +inf
- }
- $x->badd($y,@r); # badd does not leave internal zeros
- $y->{sign} =~ tr/+\-/-+/; # refix $y (does nothing for NaN)
- $x; # already rounded by badd() or no round nec.
- }
-
-sub binc
- {
- # increment arg by one
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
- return $x if $x->modify('binc');
-
- if ($x->{sign} eq '+')
- {
- $x->{value} = $CALC->_inc($x->{value});
- return $x->round($a,$p,$r);
- }
- elsif ($x->{sign} eq '-')
- {
- $x->{value} = $CALC->_dec($x->{value});
- $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # -1 +1 => -0 => +0
- return $x->round($a,$p,$r);
- }
- # inf, nan handling etc
- $x->badd($self->bone(),$a,$p,$r); # badd does round
- }
+sub bne {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
-sub bdec
- {
- # decrement arg by one
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
- return $x if $x->modify('bdec');
+ Carp::croak 'bne() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for bne()' unless @_ == 1;
- if ($x->{sign} eq '-')
- {
- # x already < 0
- $x->{value} = $CALC->_inc($x->{value});
- }
- else
- {
- return $x->badd($self->bone('-'),@r)
- unless $x->{sign} eq '+'; # inf or NaN
- # >= 0
- if ($CALC->_is_zero($x->{value}))
- {
- # == 0
- $x->{value} = $CALC->_one(); $x->{sign} = '-'; # 0 => -1
- }
- else
- {
- # > 0
- $x->{value} = $CALC->_dec($x->{value});
- }
- }
- $x->round(@r);
- }
-
-sub blog
- {
- # Return the logarithm of the operand. If a second operand is defined, that
- # value is used as the base, otherwise the base is assumed to be Euler's
- # constant.
-
- # Don't objectify the base, since an undefined base, as in $x->blog() or
- # $x->blog(undef) signals that the base is Euler's number.
-
- # set up parameters
- my ($self,$x,$base,@r) = (undef,@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($self,$x,$base,@r) = objectify(1,@_);
- }
-
- return $x if $x->modify('blog');
-
- # Handle all exception cases and all trivial cases. I have used Wolfram Alpha
- # (http://www.wolframalpha.com) as the reference for these cases.
-
- return $x -> bnan() if $x -> is_nan();
-
- if (defined $base) {
- $base = $self -> new($base) unless ref $base;
- if ($base -> is_nan() || $base -> is_one()) {
- return $x -> bnan();
- } elsif ($base -> is_inf() || $base -> is_zero()) {
- return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
- return $x -> bzero();
- } elsif ($base -> is_negative()) { # -inf < base < 0
- return $x -> bzero() if $x -> is_one(); # x = 1
- return $x -> bone() if $x == $base; # x = base
- return $x -> bnan(); # otherwise
- }
- return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
- }
-
- # We now know that the base is either undefined or >= 2 and finite.
-
- return $x -> binf('+') if $x -> is_inf(); # x = +/-inf
- return $x -> bnan() if $x -> is_neg(); # -inf < x < 0
- return $x -> bzero() if $x -> is_one(); # x = 1
- return $x -> binf('-') if $x -> is_zero(); # x = 0
-
- # At this point we are done handling all exception cases and trivial cases.
-
- return $upgrade -> blog($upgrade -> new($x), $base, @r) if defined $upgrade;
-
- # fix for bug #24969:
- # the default base is e (Euler's number) which is not an integer
- if (!defined $base)
- {
- require Math::BigFloat;
- my $u = Math::BigFloat->blog(Math::BigFloat->new($x))->as_int();
- # modify $x in place
- $x->{value} = $u->{value};
- $x->{sign} = $u->{sign};
- return $x;
- }
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && ! $cmp ? '' : 1;
+}
- my ($rc,$exact) = $CALC->_log_int($x->{value},$base->{value});
- return $x->bnan() unless defined $rc; # not possible to take log?
- $x->{value} = $rc;
- $x->round(@r);
- }
+sub blt {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
-sub bnok
- {
- # Calculate n over k (binomial coefficient or "choose" function) as integer.
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ Carp::croak 'blt() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for blt()' unless @_ == 1;
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
- }
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp < 0;
+}
- return $x if $x->modify('bnok');
- return $x->bnan() if $x->{sign} eq 'NaN' || $y->{sign} eq 'NaN';
- return $x->binf() if $x->{sign} eq '+inf';
+sub ble {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- # k > n or k < 0 => 0
- my $cmp = $x->bacmp($y);
- return $x->bzero() if $cmp < 0 || $y->{sign} =~ /^-/;
- # k == n => 1
- return $x->bone(@r) if $cmp == 0;
+ Carp::croak 'ble() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for ble()' unless @_ == 1;
- if ($CALC->can('_nok'))
- {
- $x->{value} = $CALC->_nok($x->{value},$y->{value});
- }
- else
- {
- # ( 7 ) 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7
- # ( - ) = --------- = --------------- = --------- = 5 * - * -
- # ( 3 ) (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
-
- if (!$y->is_zero())
- {
- my $z = $x - $y;
- $z->binc();
- my $r = $z->copy(); $z->binc();
- my $d = $self->new(2);
- while ($z->bacmp($x) <= 0) # f <= x ?
- {
- $r->bmul($z); $r->bdiv($d);
- $z->binc(); $d->binc();
- }
- $x->{value} = $r->{value}; $x->{sign} = '+';
- }
- else { $x->bone(); }
- }
- $x->round(@r);
- }
-
-sub bexp
- {
- # Calculate e ** $x (Euler's number to the power of X), truncated to
- # an integer value.
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
- return $x if $x->modify('bexp');
-
- # inf, -inf, NaN, <0 => NaN
- return $x->bnan() if $x->{sign} eq 'NaN';
- return $x->bone() if $x->is_zero();
- return $x if $x->{sign} eq '+inf';
- return $x->bzero() if $x->{sign} eq '-inf';
-
- my $u;
- {
- # run through Math::BigFloat unless told otherwise
- require Math::BigFloat unless defined $upgrade;
- local $upgrade = 'Math::BigFloat' unless defined $upgrade;
- # calculate result, truncate it to integer
- $u = $upgrade->bexp($upgrade->new($x),@r);
- }
-
- if (!defined $upgrade)
- {
- $u = $u->as_int();
- # modify $x in place
- $x->{value} = $u->{value};
- $x->round(@r);
- }
- else { $x = $u; }
- }
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp <= 0;
+}
-sub blcm
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # does not modify arguments, but returns new object
- # Lowest Common Multiple
+sub bgt {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- my $y = shift; my ($x);
- if (ref($y))
- {
- $x = $y->copy();
- }
- else
- {
- $x = $class->new($y);
- }
- my $self = ref($x);
- while (@_)
- {
- my $y = shift; $y = $self->new($y) if !ref ($y);
- $x = __lcm($x,$y);
- }
- $x;
- }
+ Carp::croak 'bgt() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for bgt()' unless @_ == 1;
-sub bgcd
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # does not modify arguments, but returns new object
- # GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff)
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp > 0;
+}
- my $y = shift;
- $y = $class->new($y) if !ref($y);
- my $self = ref($y);
- my $x = $y->copy()->babs(); # keep arguments
- return $x->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
+sub bge {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
- while (@_)
- {
- $y = shift; $y = $self->new($y) if !ref($y);
- return $x->bnan() if $y->{sign} !~ /^[+-]$/; # y NaN?
- $x->{value} = $CALC->_gcd($x->{value},$y->{value});
- last if $CALC->_is_one($x->{value});
- }
- $x;
- }
+ Carp::croak 'bge() is an instance method, not a class method'
+ unless $selfref;
+ Carp::croak 'Wrong number of arguments for bge()' unless @_ == 1;
-sub bnot
- {
- # (num_str or BINT) return BINT
- # represent ~x as twos-complement number
- # we don't need $self, so undef instead of ref($_[0]) make it slightly faster
- my ($self,$x,$a,$p,$r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp >= 0;
+}
- return $x if $x->modify('bnot');
- $x->binc()->bneg(); # binc already does round
- }
+###############################################################################
+# Arithmetic methods
+###############################################################################
-##############################################################################
-# is_foo test routines
-# we don't need $self, so undef instead of ref($_[0]) make it slightly faster
+sub bneg {
+ # (BINT or num_str) return BINT
+ # negate number or make a negated number from string
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub is_zero
- {
- # return true if arg (BINT or num_str) is zero (array '+', '0')
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x if $x->modify('bneg');
- return 0 if $x->{sign} !~ /^\+$/; # -, NaN & +-inf aren't
- $CALC->_is_zero($x->{value});
- }
+ # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
+ $x->{sign} =~ tr/+-/-+/ unless ($x->{sign} eq '+' && $CALC->_is_zero($x->{value}));
+ $x;
+}
-sub is_nan
- {
- # return true if arg (BINT or num_str) is NaN
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub babs {
+ # (BINT or num_str) return BINT
+ # make number absolute, or return absolute BINT from string
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- $x->{sign} eq $nan ? 1 : 0;
- }
+ return $x if $x->modify('babs');
+ # post-normalized abs for internal use (does nothing for NaN)
+ $x->{sign} =~ s/^-/+/;
+ $x;
+}
-sub is_inf
- {
- # return true if arg (BINT or num_str) is +-inf
- my ($self,$x,$sign) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+sub bsgn {
+ # Signum function.
- if (defined $sign)
- {
- $sign = '[+-]inf' if $sign eq ''; # +- doesn't matter, only that's inf
- $sign = "[$1]inf" if $sign =~ /^([+-])(inf)?$/; # extract '+' or '-'
- return $x->{sign} =~ /^$sign$/ ? 1 : 0;
- }
- $x->{sign} =~ /^[+-]inf$/ ? 1 : 0; # only +-inf is infinity
- }
+ my $self = shift;
+
+ return $self if $self->modify('bsgn');
-sub is_one
- {
- # return true if arg (BINT or num_str) is +1, or -1 if sign is given
- my ($self,$x,$sign) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ return $self -> bone("+") if $self -> is_pos();
+ return $self -> bone("-") if $self -> is_neg();
+ return $self; # zero or NaN
+}
+
+sub bnorm {
+ # (numstr or BINT) return BINT
+ # Normalize number -- no-op here
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+ $x;
+}
+
+sub binc {
+ # increment arg by one
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ return $x if $x->modify('binc');
+
+ if ($x->{sign} eq '+') {
+ $x->{value} = $CALC->_inc($x->{value});
+ return $x->round($a, $p, $r);
+ } elsif ($x->{sign} eq '-') {
+ $x->{value} = $CALC->_dec($x->{value});
+ $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # -1 +1 => -0 => +0
+ return $x->round($a, $p, $r);
+ }
+ # inf, nan handling etc
+ $x->badd($class->bone(), $a, $p, $r); # badd does round
+}
- $sign = '+' if !defined $sign || $sign ne '-';
+sub bdec {
+ # decrement arg by one
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ return $x if $x->modify('bdec');
- return 0 if $x->{sign} ne $sign; # -1 != +1, NaN, +-inf aren't either
- $CALC->_is_one($x->{value});
- }
+ if ($x->{sign} eq '-') {
+ # x already < 0
+ $x->{value} = $CALC->_inc($x->{value});
+ } else {
+ return $x->badd($class->bone('-'), @r)
+ unless $x->{sign} eq '+'; # inf or NaN
+ # >= 0
+ if ($CALC->_is_zero($x->{value})) {
+ # == 0
+ $x->{value} = $CALC->_one();
+ $x->{sign} = '-'; # 0 => -1
+ } else {
+ # > 0
+ $x->{value} = $CALC->_dec($x->{value});
+ }
+ }
+ $x->round(@r);
+}
+
+#sub bstrcmp {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrcmp() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrcmp()' unless @_ == 1;
+#
+# return $self -> bstr() CORE::cmp shift;
+#}
+#
+#sub bstreq {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstreq() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstreq()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && ! $cmp;
+#}
+#
+#sub bstrne {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrne() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrne()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && ! $cmp ? '' : 1;
+#}
+#
+#sub bstrlt {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrlt() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrlt()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && $cmp < 0;
+#}
+#
+#sub bstrle {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrle() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrle()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && $cmp <= 0;
+#}
+#
+#sub bstrgt {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrgt() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrgt()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && $cmp > 0;
+#}
+#
+#sub bstrge {
+# my $self = shift;
+# my $selfref = ref $self;
+# my $class = $selfref || $self;
+#
+# Carp::croak 'bstrge() is an instance method, not a class method'
+# unless $selfref;
+# Carp::croak 'Wrong number of arguments for bstrge()' unless @_ == 1;
+#
+# my $cmp = $self -> bstrcmp(shift);
+# return defined($cmp) && $cmp >= 0;
+#}
-sub is_odd
- {
- # return true when arg (BINT or num_str) is odd, false for even
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub badd {
+ # add second arg (BINT or string) to first (BINT) (modifies first)
+ # return result as BINT
- return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
- $CALC->_is_odd($x->{value});
- }
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x->modify('badd');
+ return $upgrade->badd($upgrade->new($x), $upgrade->new($y), @r) if defined $upgrade &&
+ ((!$x->isa($class)) || (!$y->isa($class)));
+
+ $r[3] = $y; # no push!
+ # inf and NaN handling
+ if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
+ # NaN first
+ return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
+ # +inf++inf or -inf+-inf => same, rest is NaN
+ return $x if $x->{sign} eq $y->{sign};
+ return $x->bnan();
+ }
+ # +-inf + something => +inf
+ # something +-inf => +-inf
+ $x->{sign} = $y->{sign}, return $x if $y->{sign} =~ /^[+-]inf$/;
+ return $x;
+ }
-sub is_even
- {
- # return true when arg (BINT or num_str) is even, false for odd
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my ($sx, $sy) = ($x->{sign}, $y->{sign}); # get signs
- return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
- $CALC->_is_even($x->{value});
- }
+ if ($sx eq $sy) {
+ $x->{value} = $CALC->_add($x->{value}, $y->{value}); # same sign, abs add
+ } else {
+ my $a = $CALC->_acmp ($y->{value}, $x->{value}); # absolute compare
+ if ($a > 0) {
+ $x->{value} = $CALC->_sub($y->{value}, $x->{value}, 1); # abs sub w/ swap
+ $x->{sign} = $sy;
+ } elsif ($a == 0) {
+ # speedup, if equal, set result to 0
+ $x->{value} = $CALC->_zero();
+ $x->{sign} = '+';
+ } else # a < 0
+ {
+ $x->{value} = $CALC->_sub($x->{value}, $y->{value}); # abs sub
+ }
+ }
+ $x->round(@r);
+}
-sub is_positive
- {
- # return true when arg (BINT or num_str) is positive (> 0)
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bsub {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # subtract second arg from first, modify first
- return 1 if $x->{sign} eq '+inf'; # +inf is positive
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # 0+ is neither positive nor negative
- ($x->{sign} eq '+' && !$x->is_zero()) ? 1 : 0;
- }
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
-sub is_negative
- {
- # return true when arg (BINT or num_str) is negative (< 0)
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x if $x -> modify('bsub');
- $x->{sign} =~ /^-/ ? 1 : 0; # -inf is negative, but NaN is not
- }
+ return $upgrade -> new($x) -> bsub($upgrade -> new($y), @r)
+ if defined $upgrade && (!$x -> isa($class) || !$y -> isa($class));
-sub is_int
- {
- # return true when arg (BINT or num_str) is an integer
- # always true for BigInt, but different for BigFloats
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x -> round(@r) if $y -> is_zero();
- $x->{sign} =~ /^[+-]$/ ? 1 : 0; # inf/-inf/NaN aren't
- }
+ # To correctly handle the lone special case $x -> bsub($x), we note the
+ # sign of $x, then flip the sign from $y, and if the sign of $x did change,
+ # too, then we caught the special case:
-###############################################################################
+ my $xsign = $x -> {sign};
+ $y -> {sign} =~ tr/+-/-+/; # does nothing for NaN
+ if ($xsign ne $x -> {sign}) {
+ # special case of $x -> bsub($x) results in 0
+ return $x -> bzero(@r) if $xsign =~ /^[+-]$/;
+ return $x -> bnan(); # NaN, -inf, +inf
+ }
+ $x -> badd($y, @r); # badd does not leave internal zeros
+ $y -> {sign} =~ tr/+-/-+/; # refix $y (does nothing for NaN)
+ $x; # already rounded by badd() or no rounding
+}
-sub bmul
- {
- # multiply the first number by the second number
- # (BINT or num_str, BINT or num_str) return BINT
+sub bmul {
+ # multiply the first number by the second number
+ # (BINT or num_str, BINT or num_str) return BINT
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bmul');
+ return $x if $x->modify('bmul');
- return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return $x->bnan() if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
}
- return $upgrade->bmul($x,$upgrade->new($y),@r)
- if defined $upgrade && !$y->isa($self);
+ return $upgrade->bmul($x, $upgrade->new($y), @r)
+ if defined $upgrade && !$y->isa($class);
- $r[3] = $y; # no push here
+ $r[3] = $y; # no push here
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
- $x->{value} = $CALC->_mul($x->{value},$y->{value}); # do actual math
- $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # no -0
+ $x->{value} = $CALC->_mul($x->{value}, $y->{value}); # do actual math
+ $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # no -0
- $x->round(@r);
- }
+ $x->round(@r);
+}
-sub bmuladd
- {
- # multiply two numbers and then add the third to the result
- # (BINT or num_str, BINT or num_str, BINT or num_str) return BINT
+sub bmuladd {
+ # multiply two numbers and then add the third to the result
+ # (BINT or num_str, BINT or num_str, BINT or num_str) return BINT
- # set up parameters
- my ($self,$x,$y,$z,@r) = objectify(3,@_);
+ # set up parameters
+ my ($class, $x, $y, $z, @r) = objectify(3, @_);
- return $x if $x->modify('bmuladd');
+ return $x if $x->modify('bmuladd');
- return $x->bnan() if ($x->{sign} eq $nan) ||
- ($y->{sign} eq $nan) ||
- ($z->{sign} eq $nan);
+ return $x->bnan() if (($x->{sign} eq $nan) ||
+ ($y->{sign} eq $nan) ||
+ ($z->{sign} eq $nan));
- # inf handling of x and y
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
- }
- # inf handling x*y and z
- if (($z->{sign} =~ /^[+-]inf$/))
- {
- # something +-inf => +-inf
- $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
+ # inf handling of x and y
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
+ }
+ # inf handling x*y and z
+ if (($z->{sign} =~ /^[+-]inf$/)) {
+ # something +-inf => +-inf
+ $x->{sign} = $z->{sign}, return $x if $z->{sign} =~ /^[+-]inf$/;
}
- return $upgrade->bmuladd($x,$upgrade->new($y),$upgrade->new($z),@r)
- if defined $upgrade && (!$y->isa($self) || !$z->isa($self) || !$x->isa($self));
+ return $upgrade->bmuladd($x, $upgrade->new($y), $upgrade->new($z), @r)
+ if defined $upgrade && (!$y->isa($class) || !$z->isa($class) || !$x->isa($class));
- # TODO: what if $y and $z have A or P set?
- $r[3] = $z; # no push here
+ # TODO: what if $y and $z have A or P set?
+ $r[3] = $z; # no push here
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-'; # +1 * +1 or -1 * -1 => +
- $x->{value} = $CALC->_mul($x->{value},$y->{value}); # do actual math
- $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # no -0
+ $x->{value} = $CALC->_mul($x->{value}, $y->{value}); # do actual math
+ $x->{sign} = '+' if $CALC->_is_zero($x->{value}); # no -0
- my ($sx, $sz) = ( $x->{sign}, $z->{sign} ); # get signs
+ my ($sx, $sz) = ( $x->{sign}, $z->{sign} ); # get signs
- if ($sx eq $sz)
- {
- $x->{value} = $CALC->_add($x->{value},$z->{value}); # same sign, abs add
+ if ($sx eq $sz) {
+ $x->{value} = $CALC->_add($x->{value}, $z->{value}); # same sign, abs add
+ } else {
+ my $a = $CALC->_acmp ($z->{value}, $x->{value}); # absolute compare
+ if ($a > 0) {
+ $x->{value} = $CALC->_sub($z->{value}, $x->{value}, 1); # abs sub w/ swap
+ $x->{sign} = $sz;
+ } elsif ($a == 0) {
+ # speedup, if equal, set result to 0
+ $x->{value} = $CALC->_zero();
+ $x->{sign} = '+';
+ } else # a < 0
+ {
+ $x->{value} = $CALC->_sub($x->{value}, $z->{value}); # abs sub
+ }
}
- else
- {
- my $a = $CALC->_acmp ($z->{value},$x->{value}); # absolute compare
- if ($a > 0)
- {
- $x->{value} = $CALC->_sub($z->{value},$x->{value},1); # abs sub w/ swap
- $x->{sign} = $sz;
- }
- elsif ($a == 0)
- {
- # speedup, if equal, set result to 0
- $x->{value} = $CALC->_zero();
- $x->{sign} = '+';
- }
- else # a < 0
- {
- $x->{value} = $CALC->_sub($x->{value}, $z->{value}); # abs sub
- }
- }
- $x->round(@r);
- }
-
-sub bdiv
- {
-
- # This does floored division, where the quotient is floored toward negative
- # infinity and the remainder has the same sign as the divisor.
+ $x->round(@r);
+}
+
+sub bdiv {
+ # This does floored division, where the quotient is floored, i.e., rounded
+ # towards negative infinity. As a consequence, the remainder has the same
+ # sign as the divisor.
# Set up parameters.
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
# objectify() is costly, so avoid it if we can.
if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
- ($self,$x,$y,@r) = objectify(2,@_);
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bdiv');
+ return $x if $x -> modify('bdiv');
my $wantarray = wantarray; # call only once
@@ -1732,7 +1705,7 @@ sub bdiv
# modulo/remainder.
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $self -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
}
# Divide by zero and modulo zero.
@@ -1746,23 +1719,23 @@ sub bdiv
# get z - x = 0 or z = x. This is also what earlier versions did, except
# that 0 % 0 returned NaN.
#
- # inf / 0 = inf inf % 0 = inf
- # 5 / 0 = inf 5 % 0 = 5
- # 0 / 0 = NaN 0 % 0 = 0 (before: NaN)
- # -5 / 0 = -inf -5 % 0 = -5
- # -inf / 0 = -inf -inf % 0 = -inf
+ # inf / 0 = inf inf % 0 = inf
+ # 5 / 0 = inf 5 % 0 = 5
+ # 0 / 0 = NaN 0 % 0 = 0
+ # -5 / 0 = -inf -5 % 0 = -5
+ # -inf / 0 = -inf -inf % 0 = -inf
if ($y -> is_zero()) {
- my ($quo, $rem);
+ my $rem;
if ($wantarray) {
- $rem = $x -> copy();
- }
+ $rem = $x -> copy();
+ }
if ($x -> is_zero()) {
- $quo = $x -> bnan();
+ $x -> bnan();
} else {
- $quo = $x -> binf($x -> {sign});
+ $x -> binf($x -> {sign});
}
- return $wantarray ? ($quo, $rem) : $quo;
+ return $wantarray ? ($x, $rem) : $x;
}
# Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
@@ -1770,25 +1743,25 @@ sub bdiv
# below we return the same as core Perl.
#
# inf / -inf = NaN inf % -inf = NaN
- # inf / -5 = -inf inf % -5 = NaN (before: 0)
- # inf / 5 = inf inf % 5 = NaN (before: 0)
+ # inf / -5 = -inf inf % -5 = NaN
+ # inf / 5 = inf inf % 5 = NaN
# inf / inf = NaN inf % inf = NaN
#
# -inf / -inf = NaN -inf % -inf = NaN
- # -inf / -5 = inf -inf % -5 = NaN (before: 0)
- # -inf / 5 = -inf -inf % 5 = NaN (before: 0)
+ # -inf / -5 = inf -inf % -5 = NaN
+ # -inf / 5 = -inf -inf % 5 = NaN
# -inf / inf = NaN -inf % inf = NaN
if ($x -> is_inf()) {
- my ($quo, $rem);
- $rem = $self -> bnan() if $wantarray;
+ my $rem;
+ $rem = $class -> bnan() if $wantarray;
if ($y -> is_inf()) {
- $quo = $x -> bnan();
+ $x -> bnan();
} else {
my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
- $quo = $x -> binf($sign);
- }
- return $wantarray ? ($quo, $rem) : $quo;
+ $x -> binf($sign);
+ }
+ return $wantarray ? ($x, $rem) : $x;
}
# Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
@@ -1796,112 +1769,249 @@ sub bdiv
# the same as core Perl, which does floored division, so for consistency we
# also do floored division in the division cases (in the left column).
#
- # -5 / inf = -1 (before: 0) -5 % inf = inf (before: -5)
+ # -5 / inf = -1 -5 % inf = inf
# 0 / inf = 0 0 % inf = 0
# 5 / inf = 0 5 % inf = 5
#
# -5 / -inf = 0 -5 % -inf = -5
# 0 / -inf = 0 0 % -inf = 0
- # 5 / -inf = -1 (before: 0) 5 % -inf = -inf (before: 5)
+ # 5 / -inf = -1 5 % -inf = -inf
if ($y -> is_inf()) {
- my ($quo, $rem);
+ my $rem;
if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
$rem = $x -> copy() if $wantarray;
- $quo = $x -> bzero();
+ $x -> bzero();
} else {
- $rem = $self -> binf($y -> {sign}) if $wantarray;
- $quo = $x -> bone('-');
+ $rem = $class -> binf($y -> {sign}) if $wantarray;
+ $x -> bone('-');
}
- return $wantarray ? ($quo, $rem) : $quo;
- }
+ return $wantarray ? ($x, $rem) : $x;
+ }
- # At this point, both the numerator and denominator are finite numbers, and
- # the denominator (divisor) is non-zero.
+ # At this point, both the numerator and denominator are finite numbers, and
+ # the denominator (divisor) is non-zero.
- return $upgrade->bdiv($upgrade->new($x),$upgrade->new($y),@r)
- if defined $upgrade;
+ return $upgrade -> bdiv($upgrade -> new($x), $upgrade -> new($y), @r)
+ if defined $upgrade;
- $r[3] = $y; # no push!
+ $r[3] = $y; # no push!
# Inialize remainder.
- my $rem = $self->bzero();
+ my $rem = $class -> bzero();
- # Are both operands the same object, i.e., like $x -> bdiv($x)?
- # If so, flipping the sign of $y also flips the sign of $x.
+ # Are both operands the same object, i.e., like $x -> bdiv($x)? If so,
+ # flipping the sign of $y also flips the sign of $x.
- my $xsign = $x->{sign};
- my $ysign = $y->{sign};
+ my $xsign = $x -> {sign};
+ my $ysign = $y -> {sign};
- $y->{sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ...
- my $same = $xsign ne $x->{sign}; # ... if that changed the sign of $x.
- $y->{sign} = $ysign; # Re-insert the original sign.
+ $y -> {sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ...
+ my $same = $xsign ne $x -> {sign}; # ... if that changed the sign of $x.
+ $y -> {sign} = $ysign; # Re-insert the original sign.
if ($same) {
$x -> bone();
} else {
- ($x->{value},$rem->{value}) = $CALC->_div($x->{value},$y->{value});
+ ($x -> {value}, $rem -> {value}) =
+ $CALC -> _div($x -> {value}, $y -> {value});
- if ($CALC -> _is_zero($rem->{value})) {
- if ($xsign eq $ysign || $CALC -> _is_zero($x->{value})) {
- $x->{sign} = '+';
+ if ($CALC -> _is_zero($rem -> {value})) {
+ if ($xsign eq $ysign || $CALC -> _is_zero($x -> {value})) {
+ $x -> {sign} = '+';
} else {
- $x->{sign} = '-';
+ $x -> {sign} = '-';
}
} else {
if ($xsign eq $ysign) {
- $x->{sign} = '+';
+ $x -> {sign} = '+';
} else {
if ($xsign eq '+') {
$x -> badd(1);
} else {
$x -> bsub(1);
}
- $x->{sign} = '-';
+ $x -> {sign} = '-';
}
}
}
- $x->round(@r);
+ $x -> round(@r);
if ($wantarray) {
- unless ($CALC -> _is_zero($rem->{value})) {
+ unless ($CALC -> _is_zero($rem -> {value})) {
if ($xsign ne $ysign) {
$rem = $y -> copy() -> babs() -> bsub($rem);
- }
- $rem->{sign} = $ysign;
- }
- $rem->{_a} = $x->{_a};
- $rem->{_p} = $x->{_p};
- $rem->round(@r);
- return ($x,$rem);
+ }
+ $rem -> {sign} = $ysign;
+ }
+ $rem -> {_a} = $x -> {_a};
+ $rem -> {_p} = $x -> {_p};
+ $rem -> round(@r);
+ return ($x, $rem);
}
return $x;
- }
+}
-###############################################################################
-# modulus functions
+sub btdiv {
+ # This does truncated division, where the quotient is truncted, i.e.,
+ # rounded towards zero.
+ #
+ # ($q, $r) = $x -> btdiv($y) returns $q and $r so that $q is int($x / $y)
+ # and $q * $y + $r = $x.
-sub bmod
- {
+ # Set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # This is the remainder after floored division, where the quotient is
- # floored toward negative infinity and the remainder has the same sign as
- # the divisor.
+ # objectify is costly, so avoid it if we can.
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x -> modify('btdiv');
+
+ my $wantarray = wantarray; # call only once
+
+ # At least one argument is NaN. Return NaN for both quotient and the
+ # modulo/remainder.
+
+ if ($x -> is_nan() || $y -> is_nan()) {
+ return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
+ }
+
+ # Divide by zero and modulo zero.
+ #
+ # Division: Use the common convention that x / 0 is inf with the same sign
+ # as x, except when x = 0, where we return NaN. This is also what earlier
+ # versions did.
+ #
+ # Modulo: In modular arithmetic, the congruence relation z = x (mod y)
+ # means that there is some integer k such that z - x = k y. If y = 0, we
+ # get z - x = 0 or z = x. This is also what earlier versions did, except
+ # that 0 % 0 returned NaN.
+ #
+ # inf / 0 = inf inf % 0 = inf
+ # 5 / 0 = inf 5 % 0 = 5
+ # 0 / 0 = NaN 0 % 0 = 0
+ # -5 / 0 = -inf -5 % 0 = -5
+ # -inf / 0 = -inf -inf % 0 = -inf
+
+ if ($y -> is_zero()) {
+ my $rem;
+ if ($wantarray) {
+ $rem = $x -> copy();
+ }
+ if ($x -> is_zero()) {
+ $x -> bnan();
+ } else {
+ $x -> binf($x -> {sign});
+ }
+ return $wantarray ? ($x, $rem) : $x;
+ }
+
+ # Numerator (dividend) is +/-inf, and denominator is finite and non-zero.
+ # The divide by zero cases are covered above. In all of the cases listed
+ # below we return the same as core Perl.
+ #
+ # inf / -inf = NaN inf % -inf = NaN
+ # inf / -5 = -inf inf % -5 = NaN
+ # inf / 5 = inf inf % 5 = NaN
+ # inf / inf = NaN inf % inf = NaN
+ #
+ # -inf / -inf = NaN -inf % -inf = NaN
+ # -inf / -5 = inf -inf % -5 = NaN
+ # -inf / 5 = -inf -inf % 5 = NaN
+ # -inf / inf = NaN -inf % inf = NaN
+
+ if ($x -> is_inf()) {
+ my $rem;
+ $rem = $class -> bnan() if $wantarray;
+ if ($y -> is_inf()) {
+ $x -> bnan();
+ } else {
+ my $sign = $x -> bcmp(0) == $y -> bcmp(0) ? '+' : '-';
+ $x -> binf($sign);
+ }
+ return $wantarray ? ($x, $rem) : $x;
+ }
+
+ # Denominator (divisor) is +/-inf. The cases when the numerator is +/-inf
+ # are covered above. In the modulo cases (in the right column) we return
+ # the same as core Perl, which does floored division, so for consistency we
+ # also do floored division in the division cases (in the left column).
+ #
+ # -5 / inf = 0 -5 % inf = -5
+ # 0 / inf = 0 0 % inf = 0
+ # 5 / inf = 0 5 % inf = 5
+ #
+ # -5 / -inf = 0 -5 % -inf = -5
+ # 0 / -inf = 0 0 % -inf = 0
+ # 5 / -inf = 0 5 % -inf = 5
+
+ if ($y -> is_inf()) {
+ my $rem;
+ $rem = $x -> copy() if $wantarray;
+ $x -> bzero();
+ return $wantarray ? ($x, $rem) : $x;
+ }
+
+ return $upgrade -> btdiv($upgrade -> new($x), $upgrade -> new($y), @r)
+ if defined $upgrade;
+
+ $r[3] = $y; # no push!
+
+ # Inialize remainder.
+
+ my $rem = $class -> bzero();
+
+ # Are both operands the same object, i.e., like $x -> bdiv($x)? If so,
+ # flipping the sign of $y also flips the sign of $x.
+
+ my $xsign = $x -> {sign};
+ my $ysign = $y -> {sign};
+
+ $y -> {sign} =~ tr/+-/-+/; # Flip the sign of $y, and see ...
+ my $same = $xsign ne $x -> {sign}; # ... if that changed the sign of $x.
+ $y -> {sign} = $ysign; # Re-insert the original sign.
+
+ if ($same) {
+ $x -> bone();
+ } else {
+ ($x -> {value}, $rem -> {value}) =
+ $CALC -> _div($x -> {value}, $y -> {value});
+
+ $x -> {sign} = $xsign eq $ysign ? '+' : '-';
+ $x -> {sign} = '+' if $CALC -> _is_zero($x -> {value});
+ $x -> round(@r);
+ }
+
+ if (wantarray) {
+ $rem -> {sign} = $xsign;
+ $rem -> {sign} = '+' if $CALC -> _is_zero($rem -> {value});
+ $rem -> {_a} = $x -> {_a};
+ $rem -> {_p} = $x -> {_p};
+ $rem -> round(@r);
+ return ($x, $rem);
+ }
+
+ return $x;
+}
+
+sub bmod {
+ # This is the remainder after floored division.
# Set up parameters.
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bmod');
- $r[3] = $y; # no push!
+ return $x if $x -> modify('bmod');
+ $r[3] = $y; # no push!
# At least one argument is NaN.
@@ -1912,8 +2022,8 @@ sub bmod
# Modulo zero. See documentation for bdiv().
if ($y -> is_zero()) {
- return $x;
- }
+ return $x;
+ }
# Numerator (dividend) is +/-inf.
@@ -1933,839 +2043,1521 @@ sub bmod
# Calc new sign and in case $y == +/- 1, return $x.
- $x->{value} = $CALC->_mod($x->{value},$y->{value});
- if ($CALC -> _is_zero($x->{value}))
- {
- $x->{sign} = '+'; # do not leave -0
+ $x -> {value} = $CALC -> _mod($x -> {value}, $y -> {value});
+ if ($CALC -> _is_zero($x -> {value})) {
+ $x -> {sign} = '+'; # do not leave -0
+ } else {
+ $x -> {value} = $CALC -> _sub($y -> {value}, $x -> {value}, 1) # $y-$x
+ if ($x -> {sign} ne $y -> {sign});
+ $x -> {sign} = $y -> {sign};
}
- else
- {
- $x->{value} = $CALC->_sub($y->{value},$x->{value},1) # $y-$x
- if ($x->{sign} ne $y->{sign});
- $x->{sign} = $y->{sign};
- }
-
- $x->round(@r);
- }
-
-sub bmodinv
- {
- # Return modular multiplicative inverse:
- #
- # z is the modular inverse of x (mod y) if and only if
- #
- # x*z ≡ 1 (mod y)
- #
- # If the modulus y is larger than one, x and z are relative primes (i.e.,
- # their greatest common divisor is one).
- #
- # If no modular multiplicative inverse exists, NaN is returned.
-
- # set up parameters
- my ($self,$x,$y,@r) = (undef,@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+
+ $x -> round(@r);
+}
+
+sub btmod {
+ # Remainder after truncated division.
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bmodinv');
+ return $x if $x -> modify('btmod');
- # Return NaN if one or both arguments is +inf, -inf, or nan.
+ # At least one argument is NaN.
- return $x->bnan() if ($y->{sign} !~ /^[+-]$/ ||
- $x->{sign} !~ /^[+-]$/);
+ if ($x -> is_nan() || $y -> is_nan()) {
+ return $x -> bnan();
+ }
- # Return NaN if $y is zero; 1 % 0 makes no sense.
+ # Modulo zero. See documentation for btdiv().
- return $x->bnan() if $y->is_zero();
+ if ($y -> is_zero()) {
+ return $x;
+ }
- # Return 0 in the trivial case. $x % 1 or $x % -1 is zero for all finite
- # integers $x.
+ # Numerator (dividend) is +/-inf.
- return $x->bzero() if ($y->is_one() ||
- $y->is_one('-'));
+ if ($x -> is_inf()) {
+ return $x -> bnan();
+ }
- # Return NaN if $x = 0, or $x modulo $y is zero. The only valid case when
- # $x = 0 is when $y = 1 or $y = -1, but that was covered above.
- #
- # Note that computing $x modulo $y here affects the value we'll feed to
- # $CALC->_modinv() below when $x and $y have opposite signs. E.g., if $x =
- # 5 and $y = 7, those two values are fed to _modinv(), but if $x = -5 and
- # $y = 7, the values fed to _modinv() are $x = 2 (= -5 % 7) and $y = 7.
- # The value if $x is affected only when $x and $y have opposite signs.
+ # Denominator (divisor) is +/-inf.
- $x->bmod($y);
- return $x->bnan() if $x->is_zero();
+ if ($y -> is_inf()) {
+ return $x;
+ }
- # Compute the modular multiplicative inverse of the absolute values. We'll
- # correct for the signs of $x and $y later. Return NaN if no GCD is found.
+ return $upgrade -> btmod($upgrade -> new($x), $upgrade -> new($y), @r)
+ if defined $upgrade;
- ($x->{value}, $x->{sign}) = $CALC->_modinv($x->{value}, $y->{value});
- return $x->bnan() if !defined $x->{value};
+ $r[3] = $y; # no push!
- # Library inconsistency workaround: _modinv() in Math::BigInt::GMP versions
- # <= 1.32 return undef rather than a "+" for the sign.
+ my $xsign = $x -> {sign};
+ my $ysign = $y -> {sign};
- $x->{sign} = '+' unless defined $x->{sign};
+ $x -> {value} = $CALC -> _mod($x -> {value}, $y -> {value});
- # When one or both arguments are negative, we have the following
- # relations. If x and y are positive:
- #
- # modinv(-x, -y) = -modinv(x, y)
- # modinv(-x, y) = y - modinv(x, y) = -modinv(x, y) (mod y)
- # modinv( x, -y) = modinv(x, y) - y = modinv(x, y) (mod -y)
+ $x -> {sign} = $xsign;
+ $x -> {sign} = '+' if $CALC -> _is_zero($x -> {value});
+ $x -> round(@r);
+ return $x;
+}
- # We must swap the sign of the result if the original $x is negative.
- # However, we must compensate for ignoring the signs when computing the
- # inverse modulo. The net effect is that we must swap the sign of the
- # result if $y is negative.
+sub bmodinv {
+ # Return modular multiplicative inverse:
+ #
+ # z is the modular inverse of x (mod y) if and only if
+ #
+ # x*z ≡ 1 (mod y)
+ #
+ # If the modulus y is larger than one, x and z are relative primes (i.e.,
+ # their greatest common divisor is one).
+ #
+ # If no modular multiplicative inverse exists, NaN is returned.
- $x -> bneg() if $y->{sign} eq '-';
+ # set up parameters
+ my ($class, $x, $y, @r) = (undef, @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
- # Compute $x modulo $y again after correcting the sign.
+ return $x if $x->modify('bmodinv');
- $x -> bmod($y) if $x->{sign} ne $y->{sign};
+ # Return NaN if one or both arguments is +inf, -inf, or nan.
- return $x;
- }
+ return $x->bnan() if ($y->{sign} !~ /^[+-]$/ ||
+ $x->{sign} !~ /^[+-]$/);
-sub bmodpow
- {
- # Modular exponentiation. Raises a very large number to a very large exponent
- # in a given very large modulus quickly, thanks to binary exponentiation.
- # Supports negative exponents.
- my ($self,$num,$exp,$mod,@r) = objectify(3,@_);
+ # Return NaN if $y is zero; 1 % 0 makes no sense.
- return $num if $num->modify('bmodpow');
+ return $x->bnan() if $y->is_zero();
- # When the exponent 'e' is negative, use the following relation, which is
- # based on finding the multiplicative inverse 'd' of 'b' modulo 'm':
- #
- # b^(-e) (mod m) = d^e (mod m) where b*d = 1 (mod m)
+ # Return 0 in the trivial case. $x % 1 or $x % -1 is zero for all finite
+ # integers $x.
- $num->bmodinv($mod) if ($exp->{sign} eq '-');
+ return $x->bzero() if ($y->is_one() ||
+ $y->is_one('-'));
- # Check for valid input. All operands must be finite, and the modulus must be
- # non-zero.
+ # Return NaN if $x = 0, or $x modulo $y is zero. The only valid case when
+ # $x = 0 is when $y = 1 or $y = -1, but that was covered above.
+ #
+ # Note that computing $x modulo $y here affects the value we'll feed to
+ # $CALC->_modinv() below when $x and $y have opposite signs. E.g., if $x =
+ # 5 and $y = 7, those two values are fed to _modinv(), but if $x = -5 and
+ # $y = 7, the values fed to _modinv() are $x = 2 (= -5 % 7) and $y = 7.
+ # The value if $x is affected only when $x and $y have opposite signs.
- return $num->bnan() if ($num->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
- $exp->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
- $mod->{sign} =~ /NaN|inf/); # NaN, -inf, +inf
+ $x->bmod($y);
+ return $x->bnan() if $x->is_zero();
- # Modulo zero. See documentation for Math::BigInt's bmod() method.
+ # Compute the modular multiplicative inverse of the absolute values. We'll
+ # correct for the signs of $x and $y later. Return NaN if no GCD is found.
- if ($mod -> is_zero()) {
- if ($num -> is_zero()) {
- return $self -> bnan();
- } else {
- return $num -> copy();
- }
- }
+ ($x->{value}, $x->{sign}) = $CALC->_modinv($x->{value}, $y->{value});
+ return $x->bnan() if !defined $x->{value};
- # Compute 'a (mod m)', ignoring the signs on 'a' and 'm'. If the resulting
- # value is zero, the output is also zero, regardless of the signs on 'a' and
- # 'm'.
+ # Library inconsistency workaround: _modinv() in Math::BigInt::GMP versions
+ # <= 1.32 return undef rather than a "+" for the sign.
- my $value = $CALC->_modpow($num->{value}, $exp->{value}, $mod->{value});
- my $sign = '+';
+ $x->{sign} = '+' unless defined $x->{sign};
- # If the resulting value is non-zero, we have four special cases, depending
- # on the signs on 'a' and 'm'.
+ # When one or both arguments are negative, we have the following
+ # relations. If x and y are positive:
+ #
+ # modinv(-x, -y) = -modinv(x, y)
+ # modinv(-x, y) = y - modinv(x, y) = -modinv(x, y) (mod y)
+ # modinv( x, -y) = modinv(x, y) - y = modinv(x, y) (mod -y)
- unless ($CALC->_is_zero($value)) {
+ # We must swap the sign of the result if the original $x is negative.
+ # However, we must compensate for ignoring the signs when computing the
+ # inverse modulo. The net effect is that we must swap the sign of the
+ # result if $y is negative.
- # There is a negative sign on 'a' (= $num**$exp) only if the number we
- # are exponentiating ($num) is negative and the exponent ($exp) is odd.
+ $x -> bneg() if $y->{sign} eq '-';
- if ($num->{sign} eq '-' && $exp->is_odd()) {
+ # Compute $x modulo $y again after correcting the sign.
- # When both the number 'a' and the modulus 'm' have a negative sign,
- # use this relation:
- #
- # -a (mod -m) = -(a (mod m))
+ $x -> bmod($y) if $x->{sign} ne $y->{sign};
- if ($mod->{sign} eq '-') {
- $sign = '-';
- }
+ return $x;
+}
- # When only the number 'a' has a negative sign, use this relation:
- #
- # -a (mod m) = m - (a (mod m))
+sub bmodpow {
+ # Modular exponentiation. Raises a very large number to a very large exponent
+ # in a given very large modulus quickly, thanks to binary exponentiation.
+ # Supports negative exponents.
+ my ($class, $num, $exp, $mod, @r) = objectify(3, @_);
- else {
- # Use copy of $mod since _sub() modifies the first argument.
- my $mod = $CALC->_copy($mod->{value});
- $value = $CALC->_sub($mod, $value);
- $sign = '+';
- }
+ return $num if $num->modify('bmodpow');
- } else {
+ # When the exponent 'e' is negative, use the following relation, which is
+ # based on finding the multiplicative inverse 'd' of 'b' modulo 'm':
+ #
+ # b^(-e) (mod m) = d^e (mod m) where b*d = 1 (mod m)
- # When only the modulus 'm' has a negative sign, use this relation:
- #
- # a (mod -m) = (a (mod m)) - m
- # = -(m - (a (mod m)))
+ $num->bmodinv($mod) if ($exp->{sign} eq '-');
- if ($mod->{sign} eq '-') {
- # Use copy of $mod since _sub() modifies the first argument.
- my $mod = $CALC->_copy($mod->{value});
- $value = $CALC->_sub($mod, $value);
- $sign = '-';
- }
+ # Check for valid input. All operands must be finite, and the modulus must be
+ # non-zero.
- # When neither the number 'a' nor the modulus 'm' have a negative
- # sign, directly return the already computed value.
- #
- # (a (mod m))
+ return $num->bnan() if ($num->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
+ $exp->{sign} =~ /NaN|inf/ || # NaN, -inf, +inf
+ $mod->{sign} =~ /NaN|inf/); # NaN, -inf, +inf
- }
+ # Modulo zero. See documentation for Math::BigInt's bmod() method.
- }
+ if ($mod -> is_zero()) {
+ if ($num -> is_zero()) {
+ return $class -> bnan();
+ } else {
+ return $num -> copy();
+ }
+ }
- $num->{value} = $value;
- $num->{sign} = $sign;
+ # Compute 'a (mod m)', ignoring the signs on 'a' and 'm'. If the resulting
+ # value is zero, the output is also zero, regardless of the signs on 'a' and
+ # 'm'.
- return $num;
- }
+ my $value = $CALC->_modpow($num->{value}, $exp->{value}, $mod->{value});
+ my $sign = '+';
-###############################################################################
+ # If the resulting value is non-zero, we have four special cases, depending
+ # on the signs on 'a' and 'm'.
+
+ unless ($CALC->_is_zero($value)) {
+
+ # There is a negative sign on 'a' (= $num**$exp) only if the number we
+ # are exponentiating ($num) is negative and the exponent ($exp) is odd.
+
+ if ($num->{sign} eq '-' && $exp->is_odd()) {
+
+ # When both the number 'a' and the modulus 'm' have a negative sign,
+ # use this relation:
+ #
+ # -a (mod -m) = -(a (mod m))
+
+ if ($mod->{sign} eq '-') {
+ $sign = '-';
+ }
+
+ # When only the number 'a' has a negative sign, use this relation:
+ #
+ # -a (mod m) = m - (a (mod m))
+
+ else {
+ # Use copy of $mod since _sub() modifies the first argument.
+ my $mod = $CALC->_copy($mod->{value});
+ $value = $CALC->_sub($mod, $value);
+ $sign = '+';
+ }
+
+ } else {
+
+ # When only the modulus 'm' has a negative sign, use this relation:
+ #
+ # a (mod -m) = (a (mod m)) - m
+ # = -(m - (a (mod m)))
+
+ if ($mod->{sign} eq '-') {
+ # Use copy of $mod since _sub() modifies the first argument.
+ my $mod = $CALC->_copy($mod->{value});
+ $value = $CALC->_sub($mod, $value);
+ $sign = '-';
+ }
+
+ # When neither the number 'a' nor the modulus 'm' have a negative
+ # sign, directly return the already computed value.
+ #
+ # (a (mod m))
+
+ }
-sub bfac
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # compute factorial number from $x, modify $x in place
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
-
- return $x if $x->modify('bfac') || $x->{sign} eq '+inf'; # inf => inf
- return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 etc => NaN
-
- $x->{value} = $CALC->_fac($x->{value});
- $x->round(@r);
- }
-
-sub bpow
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # compute power of two numbers -- stolen from Knuth Vol 2 pg 233
- # modifies first argument
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
}
- return $x if $x->modify('bpow');
+ $num->{value} = $value;
+ $num->{sign} = $sign;
+
+ return $num;
+}
- return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+sub bpow {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # compute power of two numbers -- stolen from Knuth Vol 2 pg 233
+ # modifies first argument
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/))
- {
- # +-inf ** +-inf
- return $x->bnan();
- }
- # +-inf ** Y
- if ($x->{sign} =~ /^[+-]inf/)
- {
- # +inf ** 0 => NaN
- return $x->bnan() if $y->is_zero();
- # -inf ** -1 => 1/inf => 0
- return $x->bzero() if $y->is_one('-') && $x->is_negative();
-
- # +inf ** Y => inf
- return $x if $x->{sign} eq '+inf';
-
- # -inf ** Y => -inf if Y is odd
- return $x if $y->is_odd();
- return $x->babs();
- }
- # X ** +-inf
-
- # 1 ** +inf => 1
- return $x if $x->is_one();
-
- # 0 ** inf => 0
- return $x if $x->is_zero() && $y->{sign} =~ /^[+]/;
-
- # 0 ** -inf => inf
- return $x->binf() if $x->is_zero();
-
- # -1 ** -inf => NaN
- return $x->bnan() if $x->is_one('-') && $y->{sign} =~ /^[-]/;
-
- # -X ** -inf => 0
- return $x->bzero() if $x->{sign} eq '-' && $y->{sign} =~ /^[-]/;
-
- # -1 ** inf => NaN
- return $x->bnan() if $x->{sign} eq '-';
-
- # X ** inf => inf
- return $x->binf() if $y->{sign} =~ /^[+]/;
- # X ** -inf => 0
- return $x->bzero();
- }
-
- return $upgrade->bpow($upgrade->new($x),$y,@r)
- if defined $upgrade && (!$y->isa($self) || $y->{sign} eq '-');
-
- $r[3] = $y; # no push!
-
- # cases 0 ** Y, X ** 0, X ** 1, 1 ** Y are handled by Calc or Emu
-
- my $new_sign = '+';
- $new_sign = $y->is_odd() ? '-' : '+' if ($x->{sign} ne '+');
-
- # 0 ** -7 => ( 1 / (0 ** 7)) => 1 / 0 => +inf
- return $x->binf()
- if $y->{sign} eq '-' && $x->{sign} eq '+' && $CALC->_is_zero($x->{value});
- # 1 ** -y => 1 / (1 ** |y|)
- # so do test for negative $y after above's clause
- return $x->bnan() if $y->{sign} eq '-' && !$CALC->_is_one($x->{value});
-
- $x->{value} = $CALC->_pow($x->{value},$y->{value});
- $x->{sign} = $new_sign;
- $x->{sign} = '+' if $CALC->_is_zero($y->{value});
- $x->round(@r);
- }
-
-sub blsft
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # compute x << y, base n, y >= 0
-
- # set up parameters
- my ($self,$x,$y,$n,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$n,@r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('blsft');
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- return $x->round(@r) if $y->is_zero();
+ return $x if $x->modify('bpow');
- $n = 2 if !defined $n; return $x->bnan() if $n <= 0 || $y->{sign} eq '-';
+ return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
- $x->{value} = $CALC->_lsft($x->{value},$y->{value},$n);
- $x->round(@r);
- }
+ # inf handling
+ if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/)) {
+ if (($x->{sign} =~ /^[+-]inf$/) && ($y->{sign} =~ /^[+-]inf$/)) {
+ # +-inf ** +-inf
+ return $x->bnan();
+ }
+ # +-inf ** Y
+ if ($x->{sign} =~ /^[+-]inf/) {
+ # +inf ** 0 => NaN
+ return $x->bnan() if $y->is_zero();
+ # -inf ** -1 => 1/inf => 0
+ return $x->bzero() if $y->is_one('-') && $x->is_negative();
+
+ # +inf ** Y => inf
+ return $x if $x->{sign} eq '+inf';
+
+ # -inf ** Y => -inf if Y is odd
+ return $x if $y->is_odd();
+ return $x->babs();
+ }
+ # X ** +-inf
-sub brsft
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # compute x >> y, base n, y >= 0
+ # 1 ** +inf => 1
+ return $x if $x->is_one();
- # set up parameters
- my ($self,$x,$y,$n,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$n,@r) = objectify(2,@_);
+ # 0 ** inf => 0
+ return $x if $x->is_zero() && $y->{sign} =~ /^[+]/;
+
+ # 0 ** -inf => inf
+ return $x->binf() if $x->is_zero();
+
+ # -1 ** -inf => NaN
+ return $x->bnan() if $x->is_one('-') && $y->{sign} =~ /^[-]/;
+
+ # -X ** -inf => 0
+ return $x->bzero() if $x->{sign} eq '-' && $y->{sign} =~ /^[-]/;
+
+ # -1 ** inf => NaN
+ return $x->bnan() if $x->{sign} eq '-';
+
+ # X ** inf => inf
+ return $x->binf() if $y->{sign} =~ /^[+]/;
+ # X ** -inf => 0
+ return $x->bzero();
}
- return $x if $x->modify('brsft');
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- return $x->round(@r) if $y->is_zero();
- return $x->bzero(@r) if $x->is_zero(); # 0 => 0
+ return $upgrade->bpow($upgrade->new($x), $y, @r)
+ if defined $upgrade && (!$y->isa($class) || $y->{sign} eq '-');
- $n = 2 if !defined $n; return $x->bnan() if $n <= 0 || $y->{sign} eq '-';
+ $r[3] = $y; # no push!
- # this only works for negative numbers when shifting in base 2
- if (($x->{sign} eq '-') && ($n == 2))
- {
- return $x->round(@r) if $x->is_one('-'); # -1 => -1
- if (!$y->is_one())
- {
- # although this is O(N*N) in calc (as_bin!) it is O(N) in Pari et al
- # but perhaps there is a better emulation for two's complement shift...
- # if $y != 1, we must simulate it by doing:
- # convert to bin, flip all bits, shift, and be done
- $x->binc(); # -3 => -2
- my $bin = $x->as_bin();
- $bin =~ s/^-0b//; # strip '-0b' prefix
- $bin =~ tr/10/01/; # flip bits
- # now shift
- if ($y >= CORE::length($bin))
- {
- $bin = '0'; # shifting to far right creates -1
- # 0, because later increment makes
- # that 1, attached '-' makes it '-1'
- # because -1 >> x == -1 !
- }
- else
- {
- $bin =~ s/.{$y}$//; # cut off at the right side
- $bin = '1' . $bin; # extend left side by one dummy '1'
- $bin =~ tr/10/01/; # flip bits back
+ # cases 0 ** Y, X ** 0, X ** 1, 1 ** Y are handled by Calc or Emu
+
+ my $new_sign = '+';
+ $new_sign = $y->is_odd() ? '-' : '+' if ($x->{sign} ne '+');
+
+ # 0 ** -7 => ( 1 / (0 ** 7)) => 1 / 0 => +inf
+ return $x->binf()
+ if $y->{sign} eq '-' && $x->{sign} eq '+' && $CALC->_is_zero($x->{value});
+ # 1 ** -y => 1 / (1 ** |y|)
+ # so do test for negative $y after above's clause
+ return $x->bnan() if $y->{sign} eq '-' && !$CALC->_is_one($x->{value});
+
+ $x->{value} = $CALC->_pow($x->{value}, $y->{value});
+ $x->{sign} = $new_sign;
+ $x->{sign} = '+' if $CALC->_is_zero($y->{value});
+ $x->round(@r);
+}
+
+sub blog {
+ # Return the logarithm of the operand. If a second operand is defined, that
+ # value is used as the base, otherwise the base is assumed to be Euler's
+ # constant.
+
+ # Don't objectify the base, since an undefined base, as in $x->blog() or
+ # $x->blog(undef) signals that the base is Euler's number.
+
+ # set up parameters
+ my ($class, $x, $base, @r) = (undef, @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $base, @r) = objectify(2, @_);
+ }
+
+ return $x if $x->modify('blog');
+
+ # Handle all exception cases and all trivial cases. I have used Wolfram
+ # Alpha (http://www.wolframalpha.com) as the reference for these cases.
+
+ return $x -> bnan() if $x -> is_nan();
+
+ if (defined $base) {
+ $base = $class -> new($base) unless ref $base;
+ if ($base -> is_nan() || $base -> is_one()) {
+ return $x -> bnan();
+ } elsif ($base -> is_inf() || $base -> is_zero()) {
+ return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
+ return $x -> bzero();
+ } elsif ($base -> is_negative()) { # -inf < base < 0
+ return $x -> bzero() if $x -> is_one(); # x = 1
+ return $x -> bone() if $x == $base; # x = base
+ return $x -> bnan(); # otherwise
}
- my $res = $self->new('0b'.$bin); # add prefix and convert back
- $res->binc(); # remember to increment
- $x->{value} = $res->{value}; # take over value
- return $x->round(@r); # we are done now, magic, isn't?
- }
- # x < 0, n == 2, y == 1
- $x->bdec(); # n == 2, but $y == 1: this fixes it
- }
-
- $x->{value} = $CALC->_rsft($x->{value},$y->{value},$n);
- $x->round(@r);
- }
-
-sub band
- {
- #(BINT or num_str, BINT or num_str) return BINT
- # compute x & y
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
}
- return $x if $x->modify('band');
+ # We now know that the base is either undefined or >= 2 and finite.
- $r[3] = $y; # no push!
+ return $x -> binf('+') if $x -> is_inf(); # x = +/-inf
+ return $x -> bnan() if $x -> is_neg(); # -inf < x < 0
+ return $x -> bzero() if $x -> is_one(); # x = 1
+ return $x -> binf('-') if $x -> is_zero(); # x = 0
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ # At this point we are done handling all exception cases and trivial cases.
- my $sx = $x->{sign} eq '+' ? 1 : -1;
- my $sy = $y->{sign} eq '+' ? 1 : -1;
+ return $upgrade -> blog($upgrade -> new($x), $base, @r) if defined $upgrade;
- if ($sx == 1 && $sy == 1)
- {
- $x->{value} = $CALC->_and($x->{value},$y->{value});
- return $x->round(@r);
+ # fix for bug #24969:
+ # the default base is e (Euler's number) which is not an integer
+ if (!defined $base) {
+ require Math::BigFloat;
+ my $u = Math::BigFloat->blog(Math::BigFloat->new($x))->as_int();
+ # modify $x in place
+ $x->{value} = $u->{value};
+ $x->{sign} = $u->{sign};
+ return $x;
}
- if ($CAN{signed_and})
+ my ($rc, $exact) = $CALC->_log_int($x->{value}, $base->{value});
+ return $x->bnan() unless defined $rc; # not possible to take log?
+ $x->{value} = $rc;
+ $x->round(@r);
+}
+
+sub bexp {
+ # Calculate e ** $x (Euler's number to the power of X), truncated to
+ # an integer value.
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+ return $x if $x->modify('bexp');
+
+ # inf, -inf, NaN, <0 => NaN
+ return $x->bnan() if $x->{sign} eq 'NaN';
+ return $x->bone() if $x->is_zero();
+ return $x if $x->{sign} eq '+inf';
+ return $x->bzero() if $x->{sign} eq '-inf';
+
+ my $u;
{
- $x->{value} = $CALC->_signed_and($x->{value},$y->{value},$sx,$sy);
- return $x->round(@r);
+ # run through Math::BigFloat unless told otherwise
+ require Math::BigFloat unless defined $upgrade;
+ local $upgrade = 'Math::BigFloat' unless defined $upgrade;
+ # calculate result, truncate it to integer
+ $u = $upgrade->bexp($upgrade->new($x), @r);
}
- require $EMU_LIB;
- __emu_band($self,$x,$y,$sx,$sy,@r);
- }
+ if (defined $upgrade) {
+ $x = $u;
+ } else {
+ $u = $u->as_int();
+ # modify $x in place
+ $x->{value} = $u->{value};
+ $x->round(@r);
+ }
+}
-sub bior
- {
- #(BINT or num_str, BINT or num_str) return BINT
- # compute x | y
+sub bnok {
+ # Calculate n over k (binomial coefficient or "choose" function) as integer.
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bior');
- $r[3] = $y; # no push!
+ return $x if $x->modify('bnok');
+ return $x->bnan() if $x->{sign} eq 'NaN' || $y->{sign} eq 'NaN';
+ return $x->binf() if $x->{sign} eq '+inf';
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ # k > n or k < 0 => 0
+ my $cmp = $x->bacmp($y);
+ return $x->bzero() if $cmp < 0 || substr($y->{sign}, 0, 1) eq "-";
- my $sx = $x->{sign} eq '+' ? 1 : -1;
- my $sy = $y->{sign} eq '+' ? 1 : -1;
+ if ($CALC->can('_nok')) {
+ $x->{value} = $CALC->_nok($x->{value}, $y->{value});
+ } else {
+ # ( 7 ) 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7
+ # ( - ) = --------- = --------------- = --------- = 5 * - * -
+ # ( 3 ) (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
- # the sign of X follows the sign of X, e.g. sign of Y irrelevant for bior()
+ my $n = $x -> {value};
+ my $k = $y -> {value};
- # don't use lib for negative values
- if ($sx == 1 && $sy == 1)
- {
- $x->{value} = $CALC->_or($x->{value},$y->{value});
- return $x->round(@r);
- }
+ # If k > n/2, or, equivalently, 2*k > n, compute nok(n, k) as
+ # nok(n, n-k) to minimize the number if iterations in the loop.
- # if lib can do negative values, let it handle this
- if ($CAN{signed_or})
- {
- $x->{value} = $CALC->_signed_or($x->{value},$y->{value},$sx,$sy);
- return $x->round(@r);
+ {
+ my $twok = $CALC->_mul($CALC->_two(), $CALC->_copy($k));
+ if ($CALC->_acmp($twok, $n) > 0) {
+ $k = $CALC->_sub($CALC->_copy($n), $k);
+ }
+ }
+
+ if ($CALC->_is_zero($k)) {
+ $n = $CALC->_one();
+ } else {
+
+ # Make a copy of the original n, since we'll be modifying n
+ # in-place.
+
+ my $n_orig = $CALC->_copy($n);
+
+ $CALC->_sub($n, $k);
+ $CALC->_inc($n);
+
+ my $f = $CALC->_copy($n);
+ $CALC->_inc($f);
+
+ my $d = $CALC->_two();
+
+ # while f <= n (the original n, that is) ...
+
+ while ($CALC->_acmp($f, $n_orig) <= 0) {
+ $CALC->_mul($n, $f);
+ $CALC->_div($n, $d);
+ $CALC->_inc($f);
+ $CALC->_inc($d);
+ }
+ }
+
+ $x -> {value} = $n;
}
- require $EMU_LIB;
- __emu_bior($self,$x,$y,$sx,$sy,@r);
- }
+ $x->round(@r);
+}
-sub bxor
- {
- #(BINT or num_str, BINT or num_str) return BINT
- # compute x ^ y
+sub bsin {
+ # Calculate sinus(x) to N digits. Unless upgrading is in effect, returns the
+ # result truncated to an integer.
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ return $x if $x->modify('bsin');
+
+ return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+
+ return $upgrade->new($x)->bsin(@r) if defined $upgrade;
+
+ require Math::BigFloat;
+ # calculate the result and truncate it to integer
+ my $t = Math::BigFloat->new($x)->bsin(@r)->as_int();
+
+ $x->bone() if $t->is_one();
+ $x->bzero() if $t->is_zero();
+ $x->round(@r);
+}
+
+sub bcos {
+ # Calculate cosinus(x) to N digits. Unless upgrading is in effect, returns the
+ # result truncated to an integer.
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bcos');
+
+ return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+
+ return $upgrade->new($x)->bcos(@r) if defined $upgrade;
+
+ require Math::BigFloat;
+ # calculate the result and truncate it to integer
+ my $t = Math::BigFloat->new($x)->bcos(@r)->as_int();
+
+ $x->bone() if $t->is_one();
+ $x->bzero() if $t->is_zero();
+ $x->round(@r);
+}
+
+sub batan {
+ # Calculate arcus tangens of x to N digits. Unless upgrading is in effect, returns the
+ # result truncated to an integer.
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('batan');
+
+ return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+
+ return $upgrade->new($x)->batan(@r) if defined $upgrade;
+
+ # calculate the result and truncate it to integer
+ my $t = Math::BigFloat->new($x)->batan(@r);
+
+ $x->{value} = $CALC->_new($x->as_int()->bstr());
+ $x->round(@r);
+}
+
+sub batan2 {
+ # calculate arcus tangens of ($y/$x)
+
+ # set up parameters
+ my ($class, $y, $x, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $y, $x, @r) = objectify(2, @_);
+ }
+
+ return $y if $y->modify('batan2');
+
+ return $y->bnan() if ($y->{sign} eq $nan) || ($x->{sign} eq $nan);
+
+ # Y X
+ # != 0 -inf result is +- pi
+ if ($x->is_inf() || $y->is_inf()) {
+ # upgrade to Math::BigFloat etc.
+ return $upgrade->new($y)->batan2($upgrade->new($x), @r) if defined $upgrade;
+ if ($y->is_inf()) {
+ if ($x->{sign} eq '-inf') {
+ # calculate 3 pi/4 => 2.3.. => 2
+ $y->bone(substr($y->{sign}, 0, 1));
+ $y->bmul($class->new(2));
+ } elsif ($x->{sign} eq '+inf') {
+ # calculate pi/4 => 0.7 => 0
+ $y->bzero();
+ } else {
+ # calculate pi/2 => 1.5 => 1
+ $y->bone(substr($y->{sign}, 0, 1));
+ }
+ } else {
+ if ($x->{sign} eq '+inf') {
+ # calculate pi/4 => 0.7 => 0
+ $y->bzero();
+ } else {
+ # PI => 3.1415.. => 3
+ $y->bone(substr($y->{sign}, 0, 1));
+ $y->bmul($class->new(3));
+ }
+ }
+ return $y;
}
- return $x if $x->modify('bxor');
- $r[3] = $y; # no push!
+ return $upgrade->new($y)->batan2($upgrade->new($x), @r) if defined $upgrade;
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ require Math::BigFloat;
+ my $r = Math::BigFloat->new($y)
+ ->batan2(Math::BigFloat->new($x), @r)
+ ->as_int();
- my $sx = $x->{sign} eq '+' ? 1 : -1;
- my $sy = $y->{sign} eq '+' ? 1 : -1;
+ $x->{value} = $r->{value};
+ $x->{sign} = $r->{sign};
- # don't use lib for negative values
- if ($sx == 1 && $sy == 1)
- {
- $x->{value} = $CALC->_xor($x->{value},$y->{value});
- return $x->round(@r);
+ $x;
+}
+
+sub bsqrt {
+ # calculate square root of $x
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bsqrt');
+
+ return $x->bnan() if $x->{sign} !~ /^\+/; # -x or -inf or NaN => NaN
+ return $x if $x->{sign} eq '+inf'; # sqrt(+inf) == inf
+
+ return $upgrade->bsqrt($x, @r) if defined $upgrade;
+
+ $x->{value} = $CALC->_sqrt($x->{value});
+ $x->round(@r);
+}
+
+sub broot {
+ # calculate $y'th root of $x
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ $y = $class->new(2) unless defined $y;
+
+ # objectify is costly, so avoid it
+ if ((!ref($x)) || (ref($x) ne ref($y))) {
+ ($class, $x, $y, @r) = objectify(2, $class || $class, @_);
}
- # if lib can do negative values, let it handle this
- if ($CAN{signed_xor})
- {
- $x->{value} = $CALC->_signed_xor($x->{value},$y->{value},$sx,$sy);
- return $x->round(@r);
+ return $x if $x->modify('broot');
+
+ # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
+ return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
+ $y->{sign} !~ /^\+$/;
+
+ return $x->round(@r)
+ if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
+
+ return $upgrade->new($x)->broot($upgrade->new($y), @r) if defined $upgrade;
+
+ $x->{value} = $CALC->_root($x->{value}, $y->{value});
+ $x->round(@r);
+}
+
+sub bfac {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # compute factorial number from $x, modify $x in place
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bfac') || $x->{sign} eq '+inf'; # inf => inf
+ return $x->bnan() if $x->{sign} ne '+'; # NaN, <0 etc => NaN
+
+ $x->{value} = $CALC->_fac($x->{value});
+ $x->round(@r);
+}
+
+sub blsft {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # compute x << y, base n, y >= 0
+
+ # set up parameters
+ my ($class, $x, $y, $b, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $b, @r) = objectify(2, @_);
}
- require $EMU_LIB;
- __emu_bxor($self,$x,$y,$sx,$sy,@r);
- }
+ return $x if $x -> modify('blsft');
+ return $x -> bnan() if ($x -> {sign} !~ /^[+-]$/ ||
+ $y -> {sign} !~ /^[+-]$/);
+ return $x -> round(@r) if $y -> is_zero();
-sub length
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ $b = 2 if !defined $b;
+ return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-';
- my $e = $CALC->_len($x->{value});
- wantarray ? ($e,0) : $e;
- }
+ $x -> {value} = $CALC -> _lsft($x -> {value}, $y -> {value}, $b);
+ $x -> round(@r);
+}
-sub digit
- {
- # return the nth decimal digit, negative values count backward, 0 is right
- my ($self,$x,$n) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+sub brsft {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # compute x >> y, base n, y >= 0
- $n = $n->numify() if ref($n);
- $CALC->_digit($x->{value},$n||0);
- }
+ # set up parameters
+ my ($class, $x, $y, $b, @r) = (ref($_[0]), @_);
-sub _trailing_zeros
- {
- # return the amount of trailing zeros in $x (as scalar)
- my $x = shift;
- $x = $class->new($x) unless ref $x;
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $b, @r) = objectify(2, @_);
+ }
+
+ return $x if $x -> modify('brsft');
+ return $x -> bnan() if ($x -> {sign} !~ /^[+-]$/ || $y -> {sign} !~ /^[+-]$/);
+ return $x -> round(@r) if $y -> is_zero();
+ return $x -> bzero(@r) if $x -> is_zero(); # 0 => 0
+
+ $b = 2 if !defined $b;
+ return $x -> bnan() if $b <= 0 || $y -> {sign} eq '-';
+
+ # this only works for negative numbers when shifting in base 2
+ if (($x -> {sign} eq '-') && ($b == 2)) {
+ return $x -> round(@r) if $x -> is_one('-'); # -1 => -1
+ if (!$y -> is_one()) {
+ # although this is O(N*N) in calc (as_bin!) it is O(N) in Pari et
+ # al but perhaps there is a better emulation for two's complement
+ # shift...
+ # if $y != 1, we must simulate it by doing:
+ # convert to bin, flip all bits, shift, and be done
+ $x -> binc(); # -3 => -2
+ my $bin = $x -> as_bin();
+ $bin =~ s/^-0b//; # strip '-0b' prefix
+ $bin =~ tr/10/01/; # flip bits
+ # now shift
+ if ($y >= CORE::length($bin)) {
+ $bin = '0'; # shifting to far right creates -1
+ # 0, because later increment makes
+ # that 1, attached '-' makes it '-1'
+ # because -1 >> x == -1 !
+ } else {
+ $bin =~ s/.{$y}$//; # cut off at the right side
+ $bin = '1' . $bin; # extend left side by one dummy '1'
+ $bin =~ tr/10/01/; # flip bits back
+ }
+ my $res = $class -> new('0b' . $bin); # add prefix and convert back
+ $res -> binc(); # remember to increment
+ $x -> {value} = $res -> {value}; # take over value
+ return $x -> round(@r); # we are done now, magic, isn't?
+ }
- return 0 if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf etc
+ # x < 0, n == 2, y == 1
+ $x -> bdec(); # n == 2, but $y == 1: this fixes it
+ }
- $CALC->_zeros($x->{value}); # must handle odd values, 0 etc
- }
+ $x -> {value} = $CALC -> _rsft($x -> {value}, $y -> {value}, $b);
+ $x -> round(@r);
+}
-sub bsqrt
- {
- # calculate square root of $x
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+###############################################################################
+# Bitwise methods
+###############################################################################
- return $x if $x->modify('bsqrt');
+sub band {
+ #(BINT or num_str, BINT or num_str) return BINT
+ # compute x & y
- return $x->bnan() if $x->{sign} !~ /^\+/; # -x or -inf or NaN => NaN
- return $x if $x->{sign} eq '+inf'; # sqrt(+inf) == inf
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
- return $upgrade->bsqrt($x,@r) if defined $upgrade;
+ return $x if $x->modify('band');
- $x->{value} = $CALC->_sqrt($x->{value});
- $x->round(@r);
- }
+ $r[3] = $y; # no push!
-sub broot
- {
- # calculate $y'th root of $x
+ return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ my $sx = $x->{sign} eq '+' ? 1 : -1;
+ my $sy = $y->{sign} eq '+' ? 1 : -1;
- $y = $self->new(2) unless defined $y;
+ if ($sx == 1 && $sy == 1) {
+ $x->{value} = $CALC->_and($x->{value}, $y->{value});
+ return $x->round(@r);
+ }
- # objectify is costly, so avoid it
- if ((!ref($x)) || (ref($x) ne ref($y)))
- {
- ($self,$x,$y,@r) = objectify(2,$self || $class,@_);
+ if ($CAN{signed_and}) {
+ $x->{value} = $CALC->_signed_and($x->{value}, $y->{value}, $sx, $sy);
+ return $x->round(@r);
}
- return $x if $x->modify('broot');
+ require $EMU_LIB;
+ __emu_band($class, $x, $y, $sx, $sy, @r);
+}
+
+sub bior {
+ #(BINT or num_str, BINT or num_str) return BINT
+ # compute x | y
- # NaN handling: $x ** 1/0, x or y NaN, or y inf/-inf or y == 0
- return $x->bnan() if $x->{sign} !~ /^\+/ || $y->is_zero() ||
- $y->{sign} !~ /^\+$/;
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
- return $x->round(@r)
- if $x->is_zero() || $x->is_one() || $x->is_inf() || $y->is_one();
+ return $x if $x->modify('bior');
+ $r[3] = $y; # no push!
- return $upgrade->new($x)->broot($upgrade->new($y),@r) if defined $upgrade;
+ return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- $x->{value} = $CALC->_root($x->{value},$y->{value});
- $x->round(@r);
- }
+ my $sx = $x->{sign} eq '+' ? 1 : -1;
+ my $sy = $y->{sign} eq '+' ? 1 : -1;
-sub exponent
- {
- # return a copy of the exponent (here always 0, NaN or 1 for $m == 0)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+ # the sign of X follows the sign of X, e.g. sign of Y irrelevant for bior()
- if ($x->{sign} !~ /^[+-]$/)
- {
- my $s = $x->{sign}; $s =~ s/^[+-]//; # NaN, -inf,+inf => NaN or inf
- return $self->new($s);
+ # don't use lib for negative values
+ if ($sx == 1 && $sy == 1) {
+ $x->{value} = $CALC->_or($x->{value}, $y->{value});
+ return $x->round(@r);
}
- return $self->bzero() if $x->is_zero();
- # 12300 => 2 trailing zeros => exponent is 2
- $self->new( $CALC->_zeros($x->{value}) );
- }
+ # if lib can do negative values, let it handle this
+ if ($CAN{signed_or}) {
+ $x->{value} = $CALC->_signed_or($x->{value}, $y->{value}, $sx, $sy);
+ return $x->round(@r);
+ }
+
+ require $EMU_LIB;
+ __emu_bior($class, $x, $y, $sx, $sy, @r);
+}
-sub mantissa
- {
- # return the mantissa (compatible to Math::BigFloat, e.g. reduced)
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub bxor {
+ #(BINT or num_str, BINT or num_str) return BINT
+ # compute x ^ y
- if ($x->{sign} !~ /^[+-]$/)
- {
- # for NaN, +inf, -inf: keep the sign
- return $self->new($x->{sign});
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- my $m = $x->copy(); delete $m->{_p}; delete $m->{_a};
- # that's a bit inefficient:
- my $zeros = $CALC->_zeros($m->{value});
- $m->brsft($zeros,10) if $zeros != 0;
- $m;
- }
+ return $x if $x->modify('bxor');
+ $r[3] = $y; # no push!
-sub parts
- {
- # return a copy of both the exponent and the mantissa
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- ($x->mantissa(),$x->exponent());
- }
+ my $sx = $x->{sign} eq '+' ? 1 : -1;
+ my $sy = $y->{sign} eq '+' ? 1 : -1;
-##############################################################################
-# rounding functions
-
-sub bfround
- {
- # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
- # $n == 0 || $n == 1 => round to integer
- my $x = shift; my $self = ref($x) || $x; $x = $self->new($x) unless ref $x;
-
- my ($scale,$mode) = $x->_scale_p(@_);
-
- return $x if !defined $scale || $x->modify('bfround'); # no-op
-
- # no-op for BigInts if $n <= 0
- $x->bround( $x->length()-$scale, $mode) if $scale > 0;
-
- delete $x->{_a}; # delete to save memory
- $x->{_p} = $scale; # store new _p
- $x;
- }
-
-sub _scan_for_nonzero
- {
- # internal, used by bround() to scan for non-zeros after a '5'
- my ($x,$pad,$xs,$len) = @_;
-
- return 0 if $len == 1; # "5" is trailed by invisible zeros
- my $follow = $pad - 1;
- return 0 if $follow > $len || $follow < 1;
-
- # use the string form to check whether only '0's follow or not
- substr ($xs,-$follow) =~ /[^0]/ ? 1 : 0;
- }
-
-sub fround
- {
- # Exists to make life easier for switch between MBF and MBI (should we
- # autoload fxxx() like MBF does for bxxx()?)
- my $x = shift; $x = $class->new($x) unless ref $x;
- $x->bround(@_);
- }
-
-sub bround
- {
- # accuracy: +$n preserve $n digits from left,
- # -$n preserve $n digits from right (f.i. for 0.1234 style in MBF)
- # no-op for $n == 0
- # and overwrite the rest with 0's, return normalized number
- # do not return $x->bnorm(), but $x
-
- my $x = shift; $x = $class->new($x) unless ref $x;
- my ($scale,$mode) = $x->_scale_a(@_);
- return $x if !defined $scale || $x->modify('bround'); # no-op
-
- if ($x->is_zero() || $scale == 0)
- {
- $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
- return $x;
+ # don't use lib for negative values
+ if ($sx == 1 && $sy == 1) {
+ $x->{value} = $CALC->_xor($x->{value}, $y->{value});
+ return $x->round(@r);
}
- return $x if $x->{sign} !~ /^[+-]$/; # inf, NaN
- # we have fewer digits than we want to scale to
- my $len = $x->length();
- # convert $scale to a scalar in case it is an object (put's a limit on the
- # number length, but this would already limited by memory constraints), makes
- # it faster
- $scale = $scale->numify() if ref ($scale);
+ # if lib can do negative values, let it handle this
+ if ($CAN{signed_xor}) {
+ $x->{value} = $CALC->_signed_xor($x->{value}, $y->{value}, $sx, $sy);
+ return $x->round(@r);
+ }
- # scale < 0, but > -len (not >=!)
- if (($scale < 0 && $scale < -$len-1) || ($scale >= $len))
- {
- $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
- return $x;
+ require $EMU_LIB;
+ __emu_bxor($class, $x, $y, $sx, $sy, @r);
+}
+
+sub bnot {
+ # (num_str or BINT) return BINT
+ # represent ~x as twos-complement number
+ # we don't need $class, so undef instead of ref($_[0]) make it slightly faster
+ my ($class, $x, $a, $p, $r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ return $x if $x->modify('bnot');
+ $x->binc()->bneg(); # binc already does round
+}
+
+###############################################################################
+# Rounding methods
+###############################################################################
+
+sub round {
+ # Round $self according to given parameters, or given second argument's
+ # parameters or global defaults
+
+ # for speed reasons, _find_round_parameters is embedded here:
+
+ my ($self, $a, $p, $r, @args) = @_;
+ # $a accuracy, if given by caller
+ # $p precision, if given by caller
+ # $r round_mode, if given by caller
+ # @args all 'other' arguments (0 for unary, 1 for binary ops)
+
+ my $class = ref($self); # find out class of argument(s)
+ no strict 'refs';
+
+ # now pick $a or $p, but only if we have got "arguments"
+ if (!defined $a) {
+ foreach ($self, @args) {
+ # take the defined one, or if both defined, the one that is smaller
+ $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
+ }
+ }
+ if (!defined $p) {
+ # even if $a is defined, take $p, to signal error for both defined
+ foreach ($self, @args) {
+ # take the defined one, or if both defined, the one that is bigger
+ # -2 > -3, and 3 > 2
+ $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
+ }
}
- # count of 0's to pad, from left (+) or right (-): 9 - +6 => 3, or |-6| => 6
- my ($pad,$digit_round,$digit_after);
- $pad = $len - $scale;
- $pad = abs($scale-1) if $scale < 0;
-
- # do not use digit(), it is very costly for binary => decimal
- # getting the entire string is also costly, but we need to do it only once
- my $xs = $CALC->_str($x->{value});
- my $pl = -$pad-1;
-
- # pad: 123: 0 => -1, at 1 => -2, at 2 => -3, at 3 => -4
- # pad+1: 123: 0 => 0, at 1 => -1, at 2 => -2, at 3 => -3
- $digit_round = '0'; $digit_round = substr($xs,$pl,1) if $pad <= $len;
- $pl++; $pl ++ if $pad >= $len;
- $digit_after = '0'; $digit_after = substr($xs,$pl,1) if $pad > 0;
-
- # in case of 01234 we round down, for 6789 up, and only in case 5 we look
- # closer at the remaining digits of the original $x, remember decision
- my $round_up = 1; # default round up
- $round_up -- if
- ($mode eq 'trunc') || # trunc by round down
- ($digit_after =~ /[01234]/) || # round down anyway,
- # 6789 => round up
- ($digit_after eq '5') && # not 5000...0000
- ($x->_scan_for_nonzero($pad,$xs,$len) == 0) &&
- (
- ($mode eq 'even') && ($digit_round =~ /[24680]/) ||
- ($mode eq 'odd') && ($digit_round =~ /[13579]/) ||
- ($mode eq '+inf') && ($x->{sign} eq '-') ||
- ($mode eq '-inf') && ($x->{sign} eq '+') ||
- ($mode eq 'zero') # round down if zero, sign adjusted below
- );
- my $put_back = 0; # not yet modified
+ # if still none defined, use globals (#2)
+ $a = ${"$class\::accuracy"} unless defined $a;
+ $p = ${"$class\::precision"} unless defined $p;
- if (($pad > 0) && ($pad <= $len))
- {
- substr($xs,-$pad,$pad) = '0' x $pad; # replace with '00...'
- $put_back = 1; # need to put back
+ # A == 0 is useless, so undef it to signal no rounding
+ $a = undef if defined $a && $a == 0;
+
+ # no rounding today?
+ return $self unless defined $a || defined $p; # early out
+
+ # set A and set P is an fatal error
+ return $self->bnan() if defined $a && defined $p;
+
+ $r = ${"$class\::round_mode"} unless defined $r;
+ if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) {
+ Carp::croak("Unknown round mode '$r'");
}
- elsif ($pad > $len)
- {
- $x->bzero(); # round to '0'
+
+ # now round, by calling either bround or bfround:
+ if (defined $a) {
+ $self->bround(int($a), $r) if !defined $self->{_a} || $self->{_a} >= $a;
+ } else { # both can't be undefined due to early out
+ $self->bfround(int($p), $r) if !defined $self->{_p} || $self->{_p} <= $p;
}
- if ($round_up) # what gave test above?
- {
- $put_back = 1; # need to put back
- $pad = $len, $xs = '0' x $pad if $scale < 0; # tlr: whack 0.51=>1.0
+ # bround() or bfround() already called bnorm() if nec.
+ $self;
+}
- # we modify directly the string variant instead of creating a number and
- # adding it, since that is faster (we already have the string)
- my $c = 0; $pad ++; # for $pad == $len case
- while ($pad <= $len)
- {
- $c = substr($xs,-$pad,1) + 1; $c = '0' if $c eq '10';
- substr($xs,-$pad,1) = $c; $pad++;
- last if $c != 0; # no overflow => early out
- }
- $xs = '1'.$xs if $c == 0;
+sub bround {
+ # accuracy: +$n preserve $n digits from left,
+ # -$n preserve $n digits from right (f.i. for 0.1234 style in MBF)
+ # no-op for $n == 0
+ # and overwrite the rest with 0's, return normalized number
+ # do not return $x->bnorm(), but $x
+
+ my $x = shift;
+ $x = $class->new($x) unless ref $x;
+ my ($scale, $mode) = $x->_scale_a(@_);
+ return $x if !defined $scale || $x->modify('bround'); # no-op
+
+ if ($x->is_zero() || $scale == 0) {
+ $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
+ return $x;
+ }
+ return $x if $x->{sign} !~ /^[+-]$/; # inf, NaN
+
+ # we have fewer digits than we want to scale to
+ my $len = $x->length();
+ # convert $scale to a scalar in case it is an object (put's a limit on the
+ # number length, but this would already limited by memory constraints), makes
+ # it faster
+ $scale = $scale->numify() if ref ($scale);
+
+ # scale < 0, but > -len (not >=!)
+ if (($scale < 0 && $scale < -$len-1) || ($scale >= $len)) {
+ $x->{_a} = $scale if !defined $x->{_a} || $x->{_a} > $scale; # 3 > 2
+ return $x;
+ }
+
+ # count of 0's to pad, from left (+) or right (-): 9 - +6 => 3, or |-6| => 6
+ my ($pad, $digit_round, $digit_after);
+ $pad = $len - $scale;
+ $pad = abs($scale-1) if $scale < 0;
+
+ # do not use digit(), it is very costly for binary => decimal
+ # getting the entire string is also costly, but we need to do it only once
+ my $xs = $CALC->_str($x->{value});
+ my $pl = -$pad-1;
+
+ # pad: 123: 0 => -1, at 1 => -2, at 2 => -3, at 3 => -4
+ # pad+1: 123: 0 => 0, at 1 => -1, at 2 => -2, at 3 => -3
+ $digit_round = '0';
+ $digit_round = substr($xs, $pl, 1) if $pad <= $len;
+ $pl++;
+ $pl ++ if $pad >= $len;
+ $digit_after = '0';
+ $digit_after = substr($xs, $pl, 1) if $pad > 0;
+
+ # in case of 01234 we round down, for 6789 up, and only in case 5 we look
+ # closer at the remaining digits of the original $x, remember decision
+ my $round_up = 1; # default round up
+ $round_up -- if
+ ($mode eq 'trunc') || # trunc by round down
+ ($digit_after =~ /[01234]/) || # round down anyway,
+ # 6789 => round up
+ ($digit_after eq '5') && # not 5000...0000
+ ($x->_scan_for_nonzero($pad, $xs, $len) == 0) &&
+ (
+ ($mode eq 'even') && ($digit_round =~ /[24680]/) ||
+ ($mode eq 'odd') && ($digit_round =~ /[13579]/) ||
+ ($mode eq '+inf') && ($x->{sign} eq '-') ||
+ ($mode eq '-inf') && ($x->{sign} eq '+') ||
+ ($mode eq 'zero') # round down if zero, sign adjusted below
+ );
+ my $put_back = 0; # not yet modified
+
+ if (($pad > 0) && ($pad <= $len)) {
+ substr($xs, -$pad, $pad) = '0' x $pad; # replace with '00...'
+ $put_back = 1; # need to put back
+ } elsif ($pad > $len) {
+ $x->bzero(); # round to '0'
+ }
+
+ if ($round_up) { # what gave test above?
+ $put_back = 1; # need to put back
+ $pad = $len, $xs = '0' x $pad if $scale < 0; # tlr: whack 0.51=>1.0
+
+ # we modify directly the string variant instead of creating a number and
+ # adding it, since that is faster (we already have the string)
+ my $c = 0;
+ $pad ++; # for $pad == $len case
+ while ($pad <= $len) {
+ $c = substr($xs, -$pad, 1) + 1;
+ $c = '0' if $c eq '10';
+ substr($xs, -$pad, 1) = $c;
+ $pad++;
+ last if $c != 0; # no overflow => early out
+ }
+ $xs = '1'.$xs if $c == 0;
}
- $x->{value} = $CALC->_new($xs) if $put_back == 1; # put back, if needed
+ $x->{value} = $CALC->_new($xs) if $put_back == 1; # put back, if needed
- $x->{_a} = $scale if $scale >= 0;
- if ($scale < 0)
- {
- $x->{_a} = $len+$scale;
- $x->{_a} = 0 if $scale < -$len;
+ $x->{_a} = $scale if $scale >= 0;
+ if ($scale < 0) {
+ $x->{_a} = $len+$scale;
+ $x->{_a} = 0 if $scale < -$len;
}
- $x;
- }
+ $x;
+}
+
+sub bfround {
+ # precision: round to the $Nth digit left (+$n) or right (-$n) from the '.'
+ # $n == 0 || $n == 1 => round to integer
+ my $x = shift;
+ my $class = ref($x) || $x;
+ $x = $class->new($x) unless ref $x;
+
+ my ($scale, $mode) = $x->_scale_p(@_);
+
+ return $x if !defined $scale || $x->modify('bfround'); # no-op
-sub bfloor
- {
- # round towards minus infinity; no-op since it's already integer
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ # no-op for Math::BigInt objects if $n <= 0
+ $x->bround($x->length()-$scale, $mode) if $scale > 0;
- $x->round(@r);
- }
+ delete $x->{_a}; # delete to save memory
+ $x->{_p} = $scale; # store new _p
+ $x;
+}
+
+sub fround {
+ # Exists to make life easier for switch between MBF and MBI (should we
+ # autoload fxxx() like MBF does for bxxx()?)
+ my $x = shift;
+ $x = $class->new($x) unless ref $x;
+ $x->bround(@_);
+}
+
+sub bfloor {
+ # round towards minus infinity; no-op since it's already integer
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
-sub bceil
- {
- # round towards plus infinity; no-op since it's already int
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ $x->round(@r);
+}
- $x->round(@r);
- }
+sub bceil {
+ # round towards plus infinity; no-op since it's already int
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $x->round(@r);
+}
sub bint {
# round towards zero; no-op since it's already integer
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ my ($class, $x, @r) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
$x->round(@r);
}
-sub as_number
- {
- # An object might be asked to return itself as bigint on certain overloaded
- # operations. This does exactly this, so that sub classes can simple inherit
- # it or override with their own integer conversion routine.
- $_[0]->copy();
- }
+###############################################################################
+# Other mathematical methods
+###############################################################################
-sub as_hex
- {
- # return as hex string, with prefixed 0x
- my $x = shift; $x = $class->new($x) if !ref($x);
+sub bgcd {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # does not modify arguments, but returns new object
+ # GCD -- Euclid's algorithm, variant C (Knuth Vol 3, pg 341 ff)
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ my ($class, @args) = objectify(0, @_);
- my $s = '';
- $s = $x->{sign} if $x->{sign} eq '-';
- $s . $CALC->_as_hex($x->{value});
- }
+ my $x = shift @args;
+ $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
-sub as_bin
- {
- # return as binary string, with prefixed 0b
- my $x = shift; $x = $class->new($x) if !ref($x);
+ return $class->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ while (@args) {
+ my $y = shift @args;
+ $y = $class->new($y) unless ref($y) && $y -> isa($class);
+ return $class->bnan() if $y->{sign} !~ /^[+-]$/; # y NaN?
+ $x->{value} = $CALC->_gcd($x->{value}, $y->{value});
+ last if $CALC->_is_one($x->{value});
+ }
- my $s = ''; $s = $x->{sign} if $x->{sign} eq '-';
- return $s . $CALC->_as_bin($x->{value});
- }
+ return $x -> babs();
+}
-sub as_oct
- {
- # return as octal string, with prefixed 0
- my $x = shift; $x = $class->new($x) if !ref($x);
+sub blcm {
+ # (BINT or num_str, BINT or num_str) return BINT
+ # does not modify arguments, but returns new object
+ # Least Common Multiple
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+ my ($class, @args) = objectify(0, @_);
- my $oct = $CALC->_as_oct($x->{value});
- return $x->{sign} eq '-' ? "-$oct" : $oct;
- }
+ my $x = shift @args;
+ $x = ref($x) && $x -> isa($class) ? $x -> copy() : $class -> new($x);
+ return $class->bnan() if $x->{sign} !~ /^[+-]$/; # x NaN?
-##############################################################################
-# private stuff (internal use only)
+ while (@args) {
+ my $y = shift @args;
+ $y = $class -> new($y) unless ref($y) && $y -> isa($class);
+ return $x->bnan() if $y->{sign} !~ /^[+-]$/; # y not integer
+ $x -> {value} = $CALC->_lcm($x -> {value}, $y -> {value});
+ }
+
+ return $x -> babs();
+}
+
+###############################################################################
+# Object property methods
+###############################################################################
+
+sub sign {
+ # return the sign of the number: +/-/-inf/+inf/NaN
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ $x->{sign};
+}
+
+sub digit {
+ # return the nth decimal digit, negative values count backward, 0 is right
+ my ($class, $x, $n) = ref($_[0]) ? (undef, @_) : objectify(1, @_);
+
+ $n = $n->numify() if ref($n);
+ $CALC->_digit($x->{value}, $n || 0);
+}
+
+sub length {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ my $e = $CALC->_len($x->{value});
+ wantarray ? ($e, 0) : $e;
+}
+
+sub exponent {
+ # return a copy of the exponent (here always 0, NaN or 1 for $m == 0)
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ my $s = $x->{sign};
+ $s =~ s/^[+-]//; # NaN, -inf, +inf => NaN or inf
+ return $class->new($s);
+ }
+ return $class->bzero() if $x->is_zero();
+
+ # 12300 => 2 trailing zeros => exponent is 2
+ $class->new($CALC->_zeros($x->{value}));
+}
+
+sub mantissa {
+ # return the mantissa (compatible to Math::BigFloat, e.g. reduced)
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} !~ /^[+-]$/) {
+ # for NaN, +inf, -inf: keep the sign
+ return $class->new($x->{sign});
+ }
+ my $m = $x->copy();
+ delete $m->{_p};
+ delete $m->{_a};
+
+ # that's a bit inefficient:
+ my $zeros = $CALC->_zeros($m->{value});
+ $m->brsft($zeros, 10) if $zeros != 0;
+ $m;
+}
+
+sub parts {
+ # return a copy of both the exponent and the mantissa
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ ($x->mantissa(), $x->exponent());
+}
+
+sub sparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("sparts() is an instance method, not a class method")
+ unless $class;
+
+ # Not-a-number.
+
+ if ($self -> is_nan()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> bnan(); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Infinity.
+
+ if ($self -> is_inf()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+'); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Finite number.
+
+ my $mant = $self -> copy();
+ my $nzeros = $CALC -> _zeros($mant -> {value});
+
+ $mant -> brsft($nzeros, 10) if $nzeros != 0;
+ return $mant unless wantarray;
+
+ my $expo = $class -> new($nzeros);
+ return ($mant, $expo);
+}
+
+sub nparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("nparts() is an instance method, not a class method")
+ unless $class;
+
+ # Not-a-number.
+
+ if ($self -> is_nan()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> bnan(); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Infinity.
+
+ if ($self -> is_inf()) {
+ my $mant = $self -> copy(); # mantissa
+ return $mant unless wantarray; # scalar context
+ my $expo = $class -> binf('+'); # exponent
+ return ($mant, $expo); # list context
+ }
+
+ # Finite number.
+
+ my ($mant, $expo) = $self -> sparts();
+
+ if ($mant -> bcmp(0)) {
+ my ($ndigtot, $ndigfrac) = $mant -> length();
+ my $expo10adj = $ndigtot - $ndigfrac - 1;
+
+ if ($expo10adj != 0) {
+ return $upgrade -> new($self) -> nparts() if $upgrade;
+ $mant -> bnan();
+ return $mant unless wantarray;
+ $expo -> badd($expo10adj);
+ return ($mant, $expo);
+ }
+ }
+
+ return $mant unless wantarray;
+ return ($mant, $expo);
+}
+
+sub eparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("eparts() is an instance method, not a class method")
+ unless $class;
+
+ # Not-a-number and Infinity.
+
+ return $self -> sparts() if $self -> is_nan() || $self -> is_inf();
+
+ # Finite number.
+
+ my ($mant, $expo) = $self -> sparts();
+
+ if ($mant -> bcmp(0)) {
+ my $ndigmant = $mant -> length();
+ $expo -> badd($ndigmant);
+
+ # $c is the number of digits that will be in the integer part of the
+ # final mantissa.
+
+ my $c = $expo -> copy() -> bdec() -> bmod(3) -> binc();
+ $expo -> bsub($c);
+
+ if ($ndigmant > $c) {
+ return $upgrade -> new($self) -> eparts() if $upgrade;
+ $mant -> bnan();
+ return $mant unless wantarray;
+ return ($mant, $expo);
+ }
+
+ $mant -> blsft($c - $ndigmant, 10);
+ }
+
+ return $mant unless wantarray;
+ return ($mant, $expo);
+}
+
+sub dparts {
+ my $self = shift;
+ my $class = ref $self;
+
+ Carp::croak("dparts() is an instance method, not a class method")
+ unless $class;
+
+ my $int = $self -> copy();
+ return $int unless wantarray;
+
+ my $frc = $class -> bzero();
+ return ($int, $frc);
+}
+
+###############################################################################
+# String conversion methods
+###############################################################################
+
+sub bstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+ my $str = $CALC->_str($x->{value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+# Scientific notation with significand/mantissa as an integer, e.g., "12345" is
+# written as "1.2345e+4".
+
+sub bsstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+ my ($m, $e) = $x -> parts();
+ my $str = $CALC->_str($m->{value}) . 'e+' . $CALC->_str($e->{value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+# Normalized notation, e.g., "12345" is written as "12345e+0".
+
+sub bnstr {
+ my $x = shift;
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ return $x -> bstr() if $x -> is_nan() || $x -> is_inf();
+
+ my ($mant, $expo) = $x -> parts();
+
+ # The "fraction posision" is the position (offset) for the decimal point
+ # relative to the end of the digit string.
+
+ my $fracpos = $mant -> length() - 1;
+ if ($fracpos == 0) {
+ my $str = $CALC->_str($mant->{value}) . "e+" . $CALC->_str($expo->{value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+ }
+
+ $expo += $fracpos;
+ my $mantstr = $CALC->_str($mant -> {value});
+ substr($mantstr, -$fracpos, 0) = '.';
+
+ my $str = $mantstr . 'e+' . $CALC->_str($expo -> {value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+# Engineering notation, e.g., "12345" is written as "12.345e+3".
+
+sub bestr {
+ my $x = shift;
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ my ($mant, $expo) = $x -> parts();
+
+ my $sign = $mant -> sign();
+ $mant -> babs();
+
+ my $mantstr = $CALC->_str($mant -> {value});
+ my $mantlen = CORE::length($mantstr);
+
+ my $dotidx = 1;
+ $expo += $mantlen - 1;
+
+ my $c = $expo -> copy() -> bmod(3);
+ $expo -= $c;
+ $dotidx += $c;
+
+ if ($mantlen < $dotidx) {
+ $mantstr .= "0" x ($dotidx - $mantlen);
+ } elsif ($mantlen > $dotidx) {
+ substr($mantstr, $dotidx, 0) = ".";
+ }
+
+ my $str = $mantstr . 'e+' . $CALC->_str($expo -> {value});
+ return $sign eq "-" ? "-$str" : $str;
+}
+
+# Decimal notation, e.g., "12345".
+
+sub bdstr {
+ my $x = shift;
+
+ if ($x->{sign} ne '+' && $x->{sign} ne '-') {
+ return $x->{sign} unless $x->{sign} eq '+inf'; # -inf, NaN
+ return 'inf'; # +inf
+ }
+
+ my $str = $CALC->_str($x->{value});
+ return $x->{sign} eq '-' ? "-$str" : $str;
+}
+
+sub as_hex {
+ # return as hex string, with prefixed 0x
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $s = '';
+ $s = $x->{sign} if $x->{sign} eq '-';
+ $s . $CALC->_as_hex($x->{value});
+}
+
+sub as_oct {
+ # return as octal string, with prefixed 0
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $oct = $CALC->_as_oct($x->{value});
+ return $x->{sign} eq '-' ? "-$oct" : $oct;
+}
+
+sub as_bin {
+ # return as binary string, with prefixed 0b
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, nan etc
+
+ my $s = '';
+ $s = $x->{sign} if $x->{sign} eq '-';
+ return $s . $CALC->_as_bin($x->{value});
+}
+
+sub as_bytes {
+ # return a byte string
+ my $x = shift;
+ $x = $class->new($x) if !ref($x);
+
+ Carp::croak("as_bytes() requires a finite, non-negative integer")
+ if $x -> is_neg() || ! $x -> is_int();
+ return $CALC->_as_bytes($x->{value});
+}
+
+###############################################################################
+# Other conversion methods
+###############################################################################
+
+sub numify {
+ # Make a Perl scalar number from a Math::BigInt object.
+ my $x = shift;
+ $x = $class->new($x) unless ref $x;
+
+ if ($x -> is_nan()) {
+ require Math::Complex;
+ my $inf = Math::Complex::Inf();
+ return $inf - $inf;
+ }
+
+ if ($x -> is_inf()) {
+ require Math::Complex;
+ my $inf = Math::Complex::Inf();
+ return $x -> is_negative() ? -$inf : $inf;
+ }
+
+ my $num = 0 + $CALC->_num($x->{value});
+ return $x->{sign} eq '-' ? -$num : $num;
+}
+
+###############################################################################
+# Private methods and functions.
+###############################################################################
sub objectify {
# Convert strings and "foreign objects" to the objects we want.
@@ -2782,19 +3574,18 @@ sub objectify {
# Caller: Gives us:
#
# $x->badd(1); => ref x, scalar y
- # Class->badd(1,2); => classname x (scalar), scalar x, scalar y
- # Class->badd(Class->(1),2); => classname x (scalar), ref x, scalar y
- # Math::BigInt::badd(1,2); => scalar x, scalar y
+ # Class->badd(1, 2); => classname x (scalar), scalar x, scalar y
+ # Class->badd(Class->(1), 2); => classname x (scalar), ref x, scalar y
+ # Math::BigInt::badd(1, 2); => scalar x, scalar y
# A shortcut for the common case $x->unary_op():
- return (ref($_[1]), $_[1]) if (@_ == 2) && ($_[0]||0 == 1) && ref($_[1]);
+ return (ref($_[1]), $_[1]) if @_ == 2 && ($_[0] || 0) == 1 && ref($_[1]);
# Check the context.
unless (wantarray) {
- require Carp;
- Carp::croak ("${class}::objectify() needs list context");
+ Carp::croak("${class}::objectify() needs list context");
}
# Get the number of arguments to objectify.
@@ -2827,7 +3618,7 @@ sub objectify {
my $up = ${"$a[0]::upgrade"};
- # Disable downgrading, because Math::BigFloat -> foo('1.0','2.0') needs
+ # Disable downgrading, because Math::BigFloat -> foo('1.0', '2.0') needs
# floats.
my $down;
@@ -2837,6 +3628,13 @@ sub objectify {
}
for my $i (1 .. $count) {
+
+ # Don't do anything with undefs. This special treatment is necessary
+ # because blog() might have a second operand which is undef, to signify
+ # that the default Euler base should be used.
+
+ next unless defined $a[$i];
+
my $ref = ref $a[$i];
# Perl scalars are fed to the appropriate constructor.
@@ -2908,334 +3706,150 @@ sub objectify {
return @a;
}
-sub _register_callback
- {
- my ($class,$callback) = @_;
-
- if (ref($callback) ne 'CODE')
- {
- require Carp;
- Carp::croak ("$callback is not a coderef");
- }
- $CALLBACKS{$class} = $callback;
- }
-
-sub import
- {
- my $self = shift;
-
- $IMPORT++; # remember we did import()
- my @a; my $l = scalar @_;
- my $warn_or_die = 0; # 0 - no warn, 1 - warn, 2 - die
- for ( my $i = 0; $i < $l ; $i++ )
- {
- if ($_[$i] eq ':constant')
- {
- # this causes overlord er load to step in
- overload::constant
- integer => sub { $self->new(shift) },
- binary => sub { $self->new(shift) };
- }
- elsif ($_[$i] eq 'upgrade')
- {
- # this causes upgrading
- $upgrade = $_[$i+1]; # or undef to disable
- $i++;
- }
- elsif ($_[$i] =~ /^(lib|try|only)\z/)
- {
- # this causes a different low lib to take care...
- $CALC = $_[$i+1] || '';
- # lib => 1 (warn on fallback), try => 0 (no warn), only => 2 (die on fallback)
- $warn_or_die = 1 if $_[$i] eq 'lib';
- $warn_or_die = 2 if $_[$i] eq 'only';
- $i++;
- }
- else
- {
- push @a, $_[$i];
- }
- }
- # any non :constant stuff is handled by our parent, Exporter
- if (@a > 0)
- {
- require Exporter;
-
- $self->SUPER::import(@a); # need it for subclasses
- $self->export_to_level(1,$self,@a); # need it for MBF
- }
-
- # try to load core math lib
- my @c = split /\s*,\s*/,$CALC;
- foreach (@c)
- {
- $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
+sub import {
+ my $class = shift;
+
+ $IMPORT++; # remember we did import()
+ my @a;
+ my $l = scalar @_;
+ my $warn_or_die = 0; # 0 - no warn, 1 - warn, 2 - die
+ for (my $i = 0; $i < $l ; $i++) {
+ if ($_[$i] eq ':constant') {
+ # this causes overlord er load to step in
+ overload::constant
+ integer => sub { $class->new(shift) },
+ binary => sub { $class->new(shift) };
+ } elsif ($_[$i] eq 'upgrade') {
+ # this causes upgrading
+ $upgrade = $_[$i+1]; # or undef to disable
+ $i++;
+ } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
+ # this causes a different low lib to take care...
+ $CALC = $_[$i+1] || '';
+ # lib => 1 (warn on fallback), try => 0 (no warn), only => 2 (die on fallback)
+ $warn_or_die = 1 if $_[$i] eq 'lib';
+ $warn_or_die = 2 if $_[$i] eq 'only';
+ $i++;
+ } else {
+ push @a, $_[$i];
+ }
}
- push @c, \'Calc' # if all fail, try these
- if $warn_or_die < 2; # but not for "only"
- $CALC = ''; # signal error
- foreach my $l (@c)
- {
- # fallback libraries are "marked" as \'string', extract string if nec.
- my $lib = $l; $lib = $$l if ref($l);
-
- next if ($lib || '') eq '';
- $lib = 'Math::BigInt::'.$lib if $lib !~ /^Math::BigInt/i;
- $lib =~ s/\.pm$//;
- if ($] < 5.006)
- {
- # Perl < 5.6.0 dies with "out of memory!" when eval("") and ':constant' is
- # used in the same script, or eval("") inside import().
- my @parts = split /::/, $lib; # Math::BigInt => Math BigInt
- my $file = pop @parts; $file .= '.pm'; # BigInt => BigInt.pm
- require File::Spec;
- $file = File::Spec->catfile (@parts, $file);
- eval { require "$file"; $lib->import( @c ); }
- }
- else
- {
- eval "use $lib qw/@c/;";
- }
- if ($@ eq '')
- {
- my $ok = 1;
- # loaded it ok, see if the api_version() is high enough
- if ($lib->can('api_version') && $lib->api_version() >= 1.0)
- {
- $ok = 0;
- # api_version matches, check if it really provides anything we need
- for my $method (qw/
- one two ten
- str num
- add mul div sub dec inc
- acmp len digit is_one is_zero is_even is_odd
- is_two is_ten
- zeros new copy check
- from_hex from_oct from_bin as_hex as_bin as_oct
- rsft lsft xor and or
- mod sqrt root fac pow modinv modpow log_int gcd
- /)
- {
- if (!$lib->can("_$method"))
- {
- if (($WARN{$lib}||0) < 2)
- {
- require Carp;
- Carp::carp ("$lib is missing method '_$method'");
- $WARN{$lib} = 1; # still warn about the lib
- }
- $ok++; last;
+ # any non :constant stuff is handled by our parent, Exporter
+ if (@a > 0) {
+ require Exporter;
+
+ $class->SUPER::import(@a); # need it for subclasses
+ $class->export_to_level(1, $class, @a); # need it for MBF
+ }
+
+ # try to load core math lib
+ my @c = split /\s*,\s*/, $CALC;
+ foreach (@c) {
+ $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
+ }
+ push @c, \'Calc' # if all fail, try these
+ if $warn_or_die < 2; # but not for "only"
+ $CALC = ''; # signal error
+ foreach my $l (@c) {
+ # fallback libraries are "marked" as \'string', extract string if nec.
+ my $lib = $l;
+ $lib = $$l if ref($l);
+
+ next if ($lib || '') eq '';
+ $lib = 'Math::BigInt::'.$lib if $lib !~ /^Math::BigInt/i;
+ $lib =~ s/\.pm$//;
+ if ($] < 5.006) {
+ # Perl < 5.6.0 dies with "out of memory!" when eval("") and ':constant' is
+ # used in the same script, or eval("") inside import().
+ my @parts = split /::/, $lib; # Math::BigInt => Math BigInt
+ my $file = pop @parts;
+ $file .= '.pm'; # BigInt => BigInt.pm
+ require File::Spec;
+ $file = File::Spec->catfile (@parts, $file);
+ eval {
+ require "$file";
+ $lib->import(@c);
}
- }
- }
- if ($ok == 0)
- {
- $CALC = $lib;
- if ($warn_or_die > 0 && ref($l))
- {
- require Carp;
- my $msg =
- "Math::BigInt: couldn't load specified math lib(s), fallback to $lib";
- Carp::carp ($msg) if $warn_or_die == 1;
- Carp::croak ($msg) if $warn_or_die == 2;
- }
- last; # found a usable one, break
+ } else {
+ eval "use $lib qw/@c/;";
}
- else
- {
- if (($WARN{$lib}||0) < 2)
- {
- my $ver = eval "\$$lib\::VERSION" || 'unknown';
- require Carp;
- Carp::carp ("Cannot load outdated $lib v$ver, please upgrade");
- $WARN{$lib} = 2; # never warn again
- }
+ if ($@ eq '') {
+ my $ok = 1;
+ # loaded it ok, see if the api_version() is high enough
+ if ($lib->can('api_version') && $lib->api_version() >= 1.0) {
+ $ok = 0;
+ # api_version matches, check if it really provides anything we need
+ for my $method (qw/
+ one two ten
+ str num
+ add mul div sub dec inc
+ acmp len digit is_one is_zero is_even is_odd
+ is_two is_ten
+ zeros new copy check
+ from_hex from_oct from_bin as_hex as_bin as_oct
+ rsft lsft xor and or
+ mod sqrt root fac pow modinv modpow log_int gcd
+ /) {
+ if (!$lib->can("_$method")) {
+ if (($WARN{$lib} || 0) < 2) {
+ Carp::carp("$lib is missing method '_$method'");
+ $WARN{$lib} = 1; # still warn about the lib
+ }
+ $ok++;
+ last;
+ }
+ }
+ }
+ if ($ok == 0) {
+ $CALC = $lib;
+ if ($warn_or_die > 0 && ref($l)) {
+ my $msg = "Math::BigInt: couldn't load specified"
+ . " math lib(s), fallback to $lib";
+ Carp::carp($msg) if $warn_or_die == 1;
+ Carp::croak($msg) if $warn_or_die == 2;
+ }
+ last; # found a usable one, break
+ } else {
+ if (($WARN{$lib} || 0) < 2) {
+ my $ver = eval "\$$lib\::VERSION" || 'unknown';
+ Carp::carp("Cannot load outdated $lib v$ver, please upgrade");
+ $WARN{$lib} = 2; # never warn again
+ }
+ }
}
- }
- }
- if ($CALC eq '')
- {
- require Carp;
- if ($warn_or_die == 2)
- {
- Carp::croak(
- "Couldn't load specified math lib(s) and fallback disallowed");
- }
- else
- {
- Carp::croak(
- "Couldn't load any math lib(s), not even fallback to Calc.pm");
- }
- }
-
- # notify callbacks
- foreach my $class (keys %CALLBACKS)
- {
- &{$CALLBACKS{$class}}($CALC);
- }
-
- # Fill $CAN with the results of $CALC->can(...) for emulating lower math lib
- # functions
-
- %CAN = ();
- for my $method (qw/ signed_and signed_or signed_xor /)
- {
- $CAN{$method} = $CALC->can("_$method") ? 1 : 0;
}
-
- # import done
- }
-
-# Create a Math::BigInt from a hexadecimal string.
-
-sub from_hex {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
-
- my $str = shift;
-
- # If called as a class method, initialize a new object.
-
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- ( [+-]? )
- (0?x)?
- (
- [0-9a-fA-F]*
- ( _ [0-9a-fA-F]+ )*
- )
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $3;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
-
- # The library method requires a prefix.
-
- $self->{value} = $CALC->_from_hex('0x' . $chrs);
-
- # Place the sign.
-
- if ($sign eq '-' && ! $CALC->_is_zero($self->{value})) {
- $self->{sign} = '-';
+ if ($CALC eq '') {
+ if ($warn_or_die == 2) {
+ Carp::croak("Couldn't load specified math lib(s)" .
+ " and fallback disallowed");
+ } else {
+ Carp::croak("Couldn't load any math lib(s), not even fallback to Calc.pm");
}
-
- return $self;
}
- # CORE::hex() parses as much as it can, and ignores any trailing garbage.
- # For backwards compatibility, we return NaN.
-
- return $self->bnan();
-}
-
-# Create a Math::BigInt from an octal string.
-
-sub from_oct {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
-
- my $str = shift;
-
- # If called as a class method, initialize a new object.
-
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- ( [+-]? )
- (
- [0-7]*
- ( _ [0-7]+ )*
- )
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $2;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
-
- # The library method requires a prefix.
-
- $self->{value} = $CALC->_from_oct('0' . $chrs);
-
- # Place the sign.
+ # notify callbacks
+ foreach my $class (keys %CALLBACKS) {
+ &{$CALLBACKS{$class}}($CALC);
+ }
- if ($sign eq '-' && ! $CALC->_is_zero($self->{value})) {
- $self->{sign} = '-';
- }
+ # Fill $CAN with the results of $CALC->can(...) for emulating lower math lib
+ # functions
- return $self;
+ %CAN = ();
+ for my $method (qw/ signed_and signed_or signed_xor /) {
+ $CAN{$method} = $CALC->can("_$method") ? 1 : 0;
}
- # CORE::oct() parses as much as it can, and ignores any trailing garbage.
- # For backwards compatibility, we return NaN.
-
- return $self->bnan();
+ # import done
}
-# Create a Math::BigInt from a binary string.
-
-sub from_bin {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
-
- my $str = shift;
-
- # If called as a class method, initialize a new object.
-
- $self = $class -> bzero() unless $selfref;
-
- if ($str =~ s/
- ^
- ( [+-]? )
- (0?b)?
- (
- [01]*
- ( _ [01]+ )*
- )
- $
- //x)
- {
- # Get a "clean" version of the string, i.e., non-emtpy and with no
- # underscores or invalid characters.
-
- my $sign = $1;
- my $chrs = $3;
- $chrs =~ tr/_//d;
- $chrs = '0' unless CORE::length $chrs;
-
- # The library method requires a prefix.
+sub _register_callback {
+ my ($class, $callback) = @_;
- $self->{value} = $CALC->_from_bin('0b' . $chrs);
-
- # Place the sign.
-
- if ($sign eq '-' && ! $CALC->_is_zero($self->{value})) {
- $self->{sign} = '-';
- }
-
- return $self;
+ if (ref($callback) ne 'CODE') {
+ Carp::croak("$callback is not a coderef");
}
-
- # For consistency with from_hex() and from_oct(), we return NaN when the
- # input is invalid.
-
- return $self->bnan();
+ $CALLBACKS{$class} = $callback;
}
sub _split_dec_string {
@@ -3273,8 +3887,7 @@ sub _split_dec_string {
( \D .*? )?
\z
- //x)
- {
+ //x) {
my $leading = $1;
my $significand_sgn = $2 || '+';
my $significand_abs = $3;
@@ -3312,240 +3925,160 @@ sub _split_dec_string {
return undef;
}
-sub _split
- {
- # input: num_str; output: undef for invalid or
- # (\$mantissa_sign,\$mantissa_value,\$mantissa_fraction,
- # \$exp_sign,\$exp_value)
- # Internal, take apart a string and return the pieces.
- # Strip leading/trailing whitespace, leading zeros, underscore and reject
- # invalid input.
- my $x = shift;
-
- # strip white space at front, also extraneous leading zeros
- $x =~ s/^\s*([-]?)0*([0-9])/$1$2/g; # will not strip ' .2'
- $x =~ s/^\s+//; # but this will
- $x =~ s/\s+$//g; # strip white space at end
-
- # shortcut, if nothing to split, return early
- if ($x =~ /^[+-]?[0-9]+\z/)
+sub _split {
+ # input: num_str; output: undef for invalid or
+ # (\$mantissa_sign, \$mantissa_value, \$mantissa_fraction,
+ # \$exp_sign, \$exp_value)
+ # Internal, take apart a string and return the pieces.
+ # Strip leading/trailing whitespace, leading zeros, underscore and reject
+ # invalid input.
+ my $x = shift;
+
+ # strip white space at front, also extraneous leading zeros
+ $x =~ s/^\s*([-]?)0*([0-9])/$1$2/g; # will not strip ' .2'
+ $x =~ s/^\s+//; # but this will
+ $x =~ s/\s+$//g; # strip white space at end
+
+ # shortcut, if nothing to split, return early
+ if ($x =~ /^[+-]?[0-9]+\z/) {
+ $x =~ s/^([+-])0*([0-9])/$2/;
+ my $sign = $1 || '+';
+ return (\$sign, \$x, \'', \'', \0);
+ }
+
+ # invalid starting char?
+ return if $x !~ /^[+-]?(\.?[0-9]|0b[0-1]|0x[0-9a-fA-F])/;
+
+ return Math::BigInt->from_hex($x) if $x =~ /^[+-]?0x/; # hex string
+ return Math::BigInt->from_bin($x) if $x =~ /^[+-]?0b/; # binary string
+
+ # strip underscores between digits
+ $x =~ s/([0-9])_([0-9])/$1$2/g;
+ $x =~ s/([0-9])_([0-9])/$1$2/g; # do twice for 1_2_3
+
+ # some possible inputs:
+ # 2.1234 # 0.12 # 1 # 1E1 # 2.134E1 # 434E-10 # 1.02009E-2
+ # .2 # 1_2_3.4_5_6 # 1.4E1_2_3 # 1e3 # +.2 # 0e999
+
+ my ($m, $e, $last) = split /[Ee]/, $x;
+ return if defined $last; # last defined => 1e2E3 or others
+ $e = '0' if !defined $e || $e eq "";
+
+ # sign, value for exponent, mantint, mantfrac
+ my ($es, $ev, $mis, $miv, $mfv);
+ # valid exponent?
+ if ($e =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
{
- $x =~ s/^([+-])0*([0-9])/$2/; my $sign = $1 || '+';
- return (\$sign, \$x, \'', \'', \0);
- }
-
- # invalid starting char?
- return if $x !~ /^[+-]?(\.?[0-9]|0b[0-1]|0x[0-9a-fA-F])/;
-
- return Math::BigInt->from_hex($x) if $x =~ /^[+-]?0x/; # hex string
- return Math::BigInt->from_bin($x) if $x =~ /^[+-]?0b/; # binary string
-
- # strip underscores between digits
- $x =~ s/([0-9])_([0-9])/$1$2/g;
- $x =~ s/([0-9])_([0-9])/$1$2/g; # do twice for 1_2_3
-
- # some possible inputs:
- # 2.1234 # 0.12 # 1 # 1E1 # 2.134E1 # 434E-10 # 1.02009E-2
- # .2 # 1_2_3.4_5_6 # 1.4E1_2_3 # 1e3 # +.2 # 0e999
-
- my ($m,$e,$last) = split /[Ee]/,$x;
- return if defined $last; # last defined => 1e2E3 or others
- $e = '0' if !defined $e || $e eq "";
-
- # sign,value for exponent,mantint,mantfrac
- my ($es,$ev,$mis,$miv,$mfv);
- # valid exponent?
- if ($e =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
- {
- $es = $1; $ev = $2;
- # valid mantissa?
- return if $m eq '.' || $m eq '';
- my ($mi,$mf,$lastf) = split /\./,$m;
- return if defined $lastf; # lastf defined => 1.2.3 or others
- $mi = '0' if !defined $mi;
- $mi .= '0' if $mi =~ /^[\-\+]?$/;
- $mf = '0' if !defined $mf || $mf eq '';
- if ($mi =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
- {
- $mis = $1||'+'; $miv = $2;
- return unless ($mf =~ /^([0-9]*?)0*$/); # strip trailing zeros
- $mfv = $1;
- # handle the 0e999 case here
- $ev = 0 if $miv eq '0' && $mfv eq '';
- return (\$mis,\$miv,\$mfv,\$es,\$ev);
- }
- }
- return; # NaN, not a number
- }
-
-##############################################################################
-# internal calculation routines (others are in Math::BigInt::Calc etc)
-
-sub __lcm
- {
- # (BINT or num_str, BINT or num_str) return BINT
- # does modify first argument
- # LCM
-
- my ($x,$ty) = @_;
- return $x->bnan() if ($x->{sign} eq $nan) || ($ty->{sign} eq $nan);
- my $method = ref($x) . '::bgcd';
- no strict 'refs';
- $x * $ty / &$method($x,$ty);
- }
-
-###############################################################################
-# trigonometric functions
-
-sub bpi
- {
- # Calculate PI to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer, that is, always returns '3'.
- my ($self,$n) = @_;
- if (@_ == 1)
- {
- # called like Math::BigInt::bpi(10);
- $n = $self; $self = $class;
+ $es = $1;
+ $ev = $2;
+ # valid mantissa?
+ return if $m eq '.' || $m eq '';
+ my ($mi, $mf, $lastf) = split /\./, $m;
+ return if defined $lastf; # lastf defined => 1.2.3 or others
+ $mi = '0' if !defined $mi;
+ $mi .= '0' if $mi =~ /^[\-\+]?$/;
+ $mf = '0' if !defined $mf || $mf eq '';
+ if ($mi =~ /^([+-]?)0*([0-9]+)$/) # strip leading zeros
+ {
+ $mis = $1 || '+';
+ $miv = $2;
+ return unless ($mf =~ /^([0-9]*?)0*$/); # strip trailing zeros
+ $mfv = $1;
+ # handle the 0e999 case here
+ $ev = 0 if $miv eq '0' && $mfv eq '';
+ return (\$mis, \$miv, \$mfv, \$es, \$ev);
+ }
}
- $self = ref($self) if ref($self);
-
- return $upgrade->new($n) if defined $upgrade;
-
- # hard-wired to "3"
- $self->new(3);
- }
-
-sub bcos
- {
- # Calculate cosinus(x) to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer.
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
-
- return $x if $x->modify('bcos');
-
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ return; # NaN, not a number
+}
- return $upgrade->new($x)->bcos(@r) if defined $upgrade;
+sub _trailing_zeros {
+ # return the amount of trailing zeros in $x (as scalar)
+ my $x = shift;
+ $x = $class->new($x) unless ref $x;
- require Math::BigFloat;
- # calculate the result and truncate it to integer
- my $t = Math::BigFloat->new($x)->bcos(@r)->as_int();
+ return 0 if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf etc
- $x->bone() if $t->is_one();
- $x->bzero() if $t->is_zero();
- $x->round(@r);
- }
+ $CALC->_zeros($x->{value}); # must handle odd values, 0 etc
+}
-sub bsin
- {
- # Calculate sinus(x) to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer.
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+sub _scan_for_nonzero {
+ # internal, used by bround() to scan for non-zeros after a '5'
+ my ($x, $pad, $xs, $len) = @_;
- return $x if $x->modify('bsin');
+ return 0 if $len == 1; # "5" is trailed by invisible zeros
+ my $follow = $pad - 1;
+ return 0 if $follow > $len || $follow < 1;
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ # use the string form to check whether only '0's follow or not
+ substr ($xs, -$follow) =~ /[^0]/ ? 1 : 0;
+}
- return $upgrade->new($x)->bsin(@r) if defined $upgrade;
+sub _find_round_parameters {
+ # After any operation or when calling round(), the result is rounded by
+ # regarding the A & P from arguments, local parameters, or globals.
- require Math::BigFloat;
- # calculate the result and truncate it to integer
- my $t = Math::BigFloat->new($x)->bsin(@r)->as_int();
+ # !!!!!!! If you change this, remember to change round(), too! !!!!!!!!!!
- $x->bone() if $t->is_one();
- $x->bzero() if $t->is_zero();
- $x->round(@r);
- }
+ # This procedure finds the round parameters, but it is for speed reasons
+ # duplicated in round. Otherwise, it is tested by the testsuite and used
+ # by bdiv().
-sub batan2
- {
- # calculate arcus tangens of ($y/$x)
+ # returns ($self) or ($self, $a, $p, $r) - sets $self to NaN of both A and P
+ # were requested/defined (locally or globally or both)
- # set up parameters
- my ($self,$y,$x,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$y,$x,@r) = objectify(2,@_);
- }
+ my ($self, $a, $p, $r, @args) = @_;
+ # $a accuracy, if given by caller
+ # $p precision, if given by caller
+ # $r round_mode, if given by caller
+ # @args all 'other' arguments (0 for unary, 1 for binary ops)
- return $y if $y->modify('batan2');
+ my $class = ref($self); # find out class of argument(s)
+ no strict 'refs';
- return $y->bnan() if ($y->{sign} eq $nan) || ($x->{sign} eq $nan);
+ # convert to normal scalar for speed and correctness in inner parts
+ $a = $a->can('numify') ? $a->numify() : "$a" if defined $a && ref($a);
+ $p = $p->can('numify') ? $p->numify() : "$p" if defined $p && ref($p);
- # Y X
- # != 0 -inf result is +- pi
- if ($x->is_inf() || $y->is_inf())
- {
- # upgrade to BigFloat etc.
- return $upgrade->new($y)->batan2($upgrade->new($x),@r) if defined $upgrade;
- if ($y->is_inf())
- {
- if ($x->{sign} eq '-inf')
- {
- # calculate 3 pi/4 => 2.3.. => 2
- $y->bone( substr($y->{sign},0,1) );
- $y->bmul($self->new(2));
- }
- elsif ($x->{sign} eq '+inf')
- {
- # calculate pi/4 => 0.7 => 0
- $y->bzero();
- }
- else
- {
- # calculate pi/2 => 1.5 => 1
- $y->bone( substr($y->{sign},0,1) );
- }
- }
- else
- {
- if ($x->{sign} eq '+inf')
- {
- # calculate pi/4 => 0.7 => 0
- $y->bzero();
+ # now pick $a or $p, but only if we have got "arguments"
+ if (!defined $a) {
+ foreach ($self, @args) {
+ # take the defined one, or if both defined, the one that is smaller
+ $a = $_->{_a} if (defined $_->{_a}) && (!defined $a || $_->{_a} < $a);
}
- else
- {
- # PI => 3.1415.. => 3
- $y->bone( substr($y->{sign},0,1) );
- $y->bmul($self->new(3));
+ }
+ if (!defined $p) {
+ # even if $a is defined, take $p, to signal error for both defined
+ foreach ($self, @args) {
+ # take the defined one, or if both defined, the one that is bigger
+ # -2 > -3, and 3 > 2
+ $p = $_->{_p} if (defined $_->{_p}) && (!defined $p || $_->{_p} > $p);
}
- }
- return $y;
}
- return $upgrade->new($y)->batan2($upgrade->new($x),@r) if defined $upgrade;
-
- require Math::BigFloat;
- my $r = Math::BigFloat->new($y)
- ->batan2(Math::BigFloat->new($x),@r)
- ->as_int();
-
- $x->{value} = $r->{value};
- $x->{sign} = $r->{sign};
-
- $x;
- }
+ # if still none defined, use globals (#2)
+ $a = ${"$class\::accuracy"} unless defined $a;
+ $p = ${"$class\::precision"} unless defined $p;
-sub batan
- {
- # Calculate arcus tangens of x to N digits. Unless upgrading is in effect, returns the
- # result truncated to an integer.
- my ($self,$x,@r) = ref($_[0]) ? (undef,@_) : objectify(1,@_);
+ # A == 0 is useless, so undef it to signal no rounding
+ $a = undef if defined $a && $a == 0;
- return $x if $x->modify('batan');
+ # no rounding today?
+ return ($self) unless defined $a || defined $p; # early out
- return $x->bnan() if $x->{sign} !~ /^[+-]\z/; # -inf +inf or NaN => NaN
+ # set A and set P is an fatal error
+ return ($self->bnan()) if defined $a && defined $p; # error
- return $upgrade->new($x)->batan(@r) if defined $upgrade;
+ $r = ${"$class\::round_mode"} unless defined $r;
+ if ($r !~ /^(even|odd|[+-]inf|zero|trunc|common)$/) {
+ Carp::croak("Unknown round mode '$r'");
+ }
- # calculate the result and truncate it to integer
- my $t = Math::BigFloat->new($x)->batan(@r);
+ $a = int($a) if defined $a;
+ $p = int($p) if defined $p;
- $x->{value} = $CALC->_new( $x->as_int()->bstr() );
- $x->round(@r);
- }
+ ($self, $a, $p, $r);
+}
###############################################################################
# this method returns 0 if the object can be modified, or 1 if not.
@@ -3555,6 +4088,7 @@ sub batan
sub modify () { 0; }
1;
+
__END__
=pod
@@ -3568,11 +4102,11 @@ Math::BigInt - Arbitrary size integer/float math package
use Math::BigInt;
# or make it faster with huge numbers: install (optional)
- # Math::BigInt::GMP and always use (it will fall back to
+ # Math::BigInt::GMP and always use (it falls back to
# pure Perl if the GMP library is not installed):
# (See also the L<MATH LIBRARY> section!)
- # will warn if Math::BigInt::GMP cannot be found
+ # warns if Math::BigInt::GMP cannot be found
use Math::BigInt lib => 'GMP';
# to suppress the warning use this:
@@ -3582,232 +4116,370 @@ Math::BigInt - Arbitrary size integer/float math package
# use Math::BigInt only => 'GMP';
my $str = '1234567890';
- my @values = (64,74,18);
+ my @values = (64, 74, 18);
my $n = 1; my $sign = '-';
- # Number creation
- my $x = Math::BigInt->new($str); # defaults to 0
- my $y = $x->copy(); # make a true copy
- my $nan = Math::BigInt->bnan(); # create a NotANumber
- my $zero = Math::BigInt->bzero(); # create a +0
- my $inf = Math::BigInt->binf(); # create a +inf
- my $inf = Math::BigInt->binf('-'); # create a -inf
- my $one = Math::BigInt->bone(); # create a +1
- my $mone = Math::BigInt->bone('-'); # create a -1
-
- my $pi = Math::BigInt->bpi(); # returns '3'
- # see Math::BigFloat::bpi()
-
- $h = Math::BigInt->new('0x123'); # from hexadecimal
- $b = Math::BigInt->new('0b101'); # from binary
- $o = Math::BigInt->from_oct('0101'); # from octal
- $h = Math::BigInt->from_hex('cafe'); # from hexadecimal
- $b = Math::BigInt->from_bin('0101'); # from binary
-
- # Testing (don't modify their arguments)
- # (return true if the condition is met, otherwise false)
-
- $x->is_zero(); # if $x is +0
- $x->is_nan(); # if $x is NaN
- $x->is_one(); # if $x is +1
- $x->is_one('-'); # if $x is -1
- $x->is_odd(); # if $x is odd
- $x->is_even(); # if $x is even
- $x->is_pos(); # if $x > 0
- $x->is_neg(); # if $x < 0
- $x->is_inf($sign); # if $x is +inf, or -inf (sign is default '+')
- $x->is_int(); # if $x is an integer (not a float)
-
- # comparing and digit/sign extraction
- $x->bcmp($y); # compare numbers (undef,<0,=0,>0)
- $x->bacmp($y); # compare absolutely (undef,<0,=0,>0)
- $x->sign(); # return the sign, either +,- or NaN
- $x->digit($n); # return the nth digit, counting from right
- $x->digit(-$n); # return the nth digit, counting from left
-
- # The following all modify their first argument. If you want to pre-
- # serve $x, use $z = $x->copy()->bXXX($y); See under L<CAVEATS> for
- # why this is necessary when mixing $a = $b assignments with non-over-
- # loaded math.
-
- $x->bzero(); # set $x to 0
- $x->bnan(); # set $x to NaN
- $x->bone(); # set $x to +1
- $x->bone('-'); # set $x to -1
- $x->binf(); # set $x to inf
- $x->binf('-'); # set $x to -inf
-
- $x->bneg(); # negation
- $x->babs(); # absolute value
- $x->bsgn(); # sign function (-1, 0, 1, or NaN)
- $x->bnorm(); # normalize (no-op in BigInt)
- $x->bnot(); # two's complement (bit wise not)
- $x->binc(); # increment $x by 1
- $x->bdec(); # decrement $x by 1
-
- $x->badd($y); # addition (add $y to $x)
- $x->bsub($y); # subtraction (subtract $y from $x)
- $x->bmul($y); # multiplication (multiply $x by $y)
- $x->bdiv($y); # divide, set $x to quotient
- # return (quo,rem) or quo if scalar
-
- $x->bmuladd($y,$z); # $x = $x * $y + $z
-
- $x->bmod($y); # modulus (x % y)
- $x->bmodpow($y,$mod); # modular exponentiation (($x ** $y) % $mod)
- $x->bmodinv($mod); # modular multiplicative inverse
- $x->bpow($y); # power of arguments (x ** y)
- $x->blsft($y); # left shift in base 2
- $x->brsft($y); # right shift in base 2
- # returns (quo,rem) or quo if in sca-
- # lar context
- $x->blsft($y,$n); # left shift by $y places in base $n
- $x->brsft($y,$n); # right shift by $y places in base $n
- # returns (quo,rem) or quo if in sca-
- # lar context
-
- $x->band($y); # bitwise and
- $x->bior($y); # bitwise inclusive or
- $x->bxor($y); # bitwise exclusive or
- $x->bnot(); # bitwise not (two's complement)
-
- $x->bsqrt(); # calculate square-root
- $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
- $x->bfac(); # factorial of $x (1*2*3*4*..$x)
-
- $x->bnok($y); # x over y (binomial coefficient n over k)
-
- $x->blog(); # logarithm of $x to base e (Euler's number)
- $x->blog($base); # logarithm of $x to base $base (f.i. 2)
- $x->bexp(); # calculate e ** $x where e is Euler's number
-
- $x->round($A,$P,$mode); # round to accuracy or precision using
- # mode $mode
- $x->bround($n); # accuracy: preserve $n digits
- $x->bfround($n); # $n > 0: round $nth digits,
- # $n < 0: round to the $nth digit after the
- # dot, no-op for BigInts
-
- # The following do not modify their arguments in BigInt (are no-ops),
- # but do so in BigFloat:
-
- $x->bfloor(); # round towards minus infinity
- $x->bceil(); # round towards plus infinity
- $x->bint(); # round towards zero
-
- # The following do not modify their arguments:
-
- # greatest common divisor (no OO style)
- my $gcd = Math::BigInt::bgcd(@values);
- # lowest common multiple (no OO style)
- my $lcm = Math::BigInt::blcm(@values);
-
+ # Configuration methods (may be used as class methods and instance methods)
+
+ Math::BigInt->accuracy(); # get class accuracy
+ Math::BigInt->accuracy($n); # set class accuracy
+ Math::BigInt->precision(); # get class precision
+ Math::BigInt->precision($n); # set class precision
+ Math::BigInt->round_mode(); # get class rounding mode
+ Math::BigInt->round_mode($m); # set global round mode, must be one of
+ # 'even', 'odd', '+inf', '-inf', 'zero',
+ # 'trunc', or 'common'
+ Math::BigInt->config(); # return hash with configuration
+
+ # Constructor methods (when the class methods below are used as instance
+ # methods, the value is assigned the invocand)
+
+ $x = Math::BigInt->new($str); # defaults to 0
+ $x = Math::BigInt->new('0x123'); # from hexadecimal
+ $x = Math::BigInt->new('0b101'); # from binary
+ $x = Math::BigInt->from_hex('cafe'); # from hexadecimal
+ $x = Math::BigInt->from_oct('377'); # from octal
+ $x = Math::BigInt->from_bin('1101'); # from binary
+ $x = Math::BigInt->bzero(); # create a +0
+ $x = Math::BigInt->bone(); # create a +1
+ $x = Math::BigInt->bone('-'); # create a -1
+ $x = Math::BigInt->binf(); # create a +inf
+ $x = Math::BigInt->binf('-'); # create a -inf
+ $x = Math::BigInt->bnan(); # create a Not-A-Number
+ $x = Math::BigInt->bpi(); # returns pi
+
+ $y = $x->copy(); # make a copy (unlike $y = $x)
+ $y = $x->as_int(); # return as a Math::BigInt
+
+ # Boolean methods (these don't modify the invocand)
+
+ $x->is_zero(); # if $x is 0
+ $x->is_one(); # if $x is +1
+ $x->is_one("+"); # ditto
+ $x->is_one("-"); # if $x is -1
+ $x->is_inf(); # if $x is +inf or -inf
+ $x->is_inf("+"); # if $x is +inf
+ $x->is_inf("-"); # if $x is -inf
+ $x->is_nan(); # if $x is NaN
+
+ $x->is_positive(); # if $x > 0
+ $x->is_pos(); # ditto
+ $x->is_negative(); # if $x < 0
+ $x->is_neg(); # ditto
+
+ $x->is_odd(); # if $x is odd
+ $x->is_even(); # if $x is even
+ $x->is_int(); # if $x is an integer
+
+ # Comparison methods
+
+ $x->bcmp($y); # compare numbers (undef, < 0, == 0, > 0)
+ $x->bacmp($y); # compare absolutely (undef, < 0, == 0, > 0)
+ $x->beq($y); # true if and only if $x == $y
+ $x->bne($y); # true if and only if $x != $y
+ $x->blt($y); # true if and only if $x < $y
+ $x->ble($y); # true if and only if $x <= $y
+ $x->bgt($y); # true if and only if $x > $y
+ $x->bge($y); # true if and only if $x >= $y
+
+ # Arithmetic methods
+
+ $x->bneg(); # negation
+ $x->babs(); # absolute value
+ $x->bsgn(); # sign function (-1, 0, 1, or NaN)
+ $x->bnorm(); # normalize (no-op)
+ $x->binc(); # increment $x by 1
+ $x->bdec(); # decrement $x by 1
+ $x->badd($y); # addition (add $y to $x)
+ $x->bsub($y); # subtraction (subtract $y from $x)
+ $x->bmul($y); # multiplication (multiply $x by $y)
+ $x->bmuladd($y,$z); # $x = $x * $y + $z
+ $x->bdiv($y); # division (floored), set $x to quotient
+ # return (quo,rem) or quo if scalar
+ $x->btdiv($y); # division (truncated), set $x to quotient
+ # return (quo,rem) or quo if scalar
+ $x->bmod($y); # modulus (x % y)
+ $x->btmod($y); # modulus (truncated)
+ $x->bmodinv($mod); # modular multiplicative inverse
+ $x->bmodpow($y,$mod); # modular exponentiation (($x ** $y) % $mod)
+ $x->bpow($y); # power of arguments (x ** y)
+ $x->blog(); # logarithm of $x to base e (Euler's number)
+ $x->blog($base); # logarithm of $x to base $base (e.g., base 2)
+ $x->bexp(); # calculate e ** $x where e is Euler's number
+ $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bsin(); # sine
+ $x->bcos(); # cosine
+ $x->batan(); # inverse tangent
+ $x->batan2($y); # two-argument inverse tangent
+ $x->bsqrt(); # calculate square-root
+ $x->broot($y); # $y'th root of $x (e.g. $y == 3 => cubic root)
+ $x->bfac(); # factorial of $x (1*2*3*4*..$x)
+
+ $x->blsft($n); # left shift $n places in base 2
+ $x->blsft($n,$b); # left shift $n places in base $b
+ # returns (quo,rem) or quo (scalar context)
+ $x->brsft($n); # right shift $n places in base 2
+ $x->brsft($n,$b); # right shift $n places in base $b
+ # returns (quo,rem) or quo (scalar context)
+
+ # Bitwise methods
+
+ $x->band($y); # bitwise and
+ $x->bior($y); # bitwise inclusive or
+ $x->bxor($y); # bitwise exclusive or
+ $x->bnot(); # bitwise not (two's complement)
+
+ # Rounding methods
+ $x->round($A,$P,$mode); # round to accuracy or precision using
+ # rounding mode $mode
+ $x->bround($n); # accuracy: preserve $n digits
+ $x->bfround($n); # $n > 0: round to $nth digit left of dec. point
+ # $n < 0: round to $nth digit right of dec. point
+ $x->bfloor(); # round towards minus infinity
+ $x->bceil(); # round towards plus infinity
+ $x->bint(); # round towards zero
+
+ # Other mathematical methods
+
+ $x->bgcd($y); # greatest common divisor
+ $x->blcm($y); # least common multiple
+
+ # Object property methods (do not modify the invocand)
+
+ $x->sign(); # the sign, either +, - or NaN
+ $x->digit($n); # the nth digit, counting from the right
+ $x->digit(-$n); # the nth digit, counting from the left
$x->length(); # return number of digits in number
($xl,$f) = $x->length(); # length of number and length of fraction
# part, latter is always 0 digits long
- # for BigInts
-
- $x->exponent(); # return exponent as BigInt
- $x->mantissa(); # return (signed) mantissa as BigInt
- $x->parts(); # return (mantissa,exponent) as BigInt
- $x->copy(); # make a true copy of $x (unlike $y = $x;)
- $x->as_int(); # return as BigInt (in BigInt: same as copy())
- $x->numify(); # return as scalar (might overflow!)
-
- # conversion to string (do not modify their argument)
- $x->bstr(); # normalized string (e.g. '3')
- $x->bsstr(); # norm. string in scientific notation (e.g. '3E0')
+ # for Math::BigInt objects
+ $x->mantissa(); # return (signed) mantissa as a Math::BigInt
+ $x->exponent(); # return exponent as a Math::BigInt
+ $x->parts(); # return (mantissa,exponent) as a Math::BigInt
+ $x->sparts(); # mantissa and exponent (as integers)
+ $x->nparts(); # mantissa and exponent (normalised)
+ $x->eparts(); # mantissa and exponent (engineering notation)
+ $x->dparts(); # integer and fraction part
+
+ # Conversion methods (do not modify the invocand)
+
+ $x->bstr(); # decimal notation, possibly zero padded
+ $x->bsstr(); # string in scientific notation with integers
+ $x->bnstr(); # string in normalized notation
+ $x->bestr(); # string in engineering notation
+ $x->bdstr(); # string in decimal notation
$x->as_hex(); # as signed hexadecimal string with prefixed 0x
$x->as_bin(); # as signed binary string with prefixed 0b
$x->as_oct(); # as signed octal string with prefixed 0
+ $x->as_bytes(); # as byte string
+ # Other conversion methods
- # precision and accuracy (see section about rounding for more)
- $x->precision(); # return P of $x (or global, if P of $x undef)
- $x->precision($n); # set P of $x to $n
- $x->accuracy(); # return A of $x (or global, if A of $x undef)
- $x->accuracy($n); # set A $x to $n
-
- # Global methods
- Math::BigInt->precision(); # get/set global P for all BigInt objects
- Math::BigInt->accuracy(); # get/set global A for all BigInt objects
- Math::BigInt->round_mode(); # get/set global round mode, one of
- # 'even', 'odd', '+inf', '-inf', 'zero',
- # 'trunc' or 'common'
- Math::BigInt->config(); # return hash containing configuration
+ $x->numify(); # return as scalar (might overflow or underflow)
=head1 DESCRIPTION
-All operators (including basic math operations) are overloaded if you
-declare your big integers as
+Math::BigInt provides support for arbitrary precision integers. Overloading is
+also provided for Perl operators.
- $i = Math::BigInt -> new('123_456_789_123_456_789');
+=head2 Input
-Operations with overloaded operators preserve the arguments which is
-exactly what you expect.
+Input values to these routines may be any scalar number or string that looks
+like a number and represents an integer.
-=head2 Input
+=over
+
+=item *
+
+Leading and trailing whitespace is ignored.
-Input values to these routines may be any string, that looks like a number
-and results in an integer, including hexadecimal and binary numbers.
+=item *
+
+Leading and trailing zeros are ignored.
+
+=item *
+
+If the string has a "0x" prefix, it is interpreted as a hexadecimal number.
+
+=item *
+
+If the string has a "0b" prefix, it is interpreted as a binary number.
-Scalars holding numbers may also be passed, but note that non-integer numbers
-may already have lost precision due to the conversion to float. Quote
-your input if you want BigInt to see all the digits:
+=item *
+
+One underline is allowed between any two digits.
+
+=item *
- $x = Math::BigInt->new(12345678890123456789); # bad
- $x = Math::BigInt->new('12345678901234567890'); # good
+If the string can not be interpreted, NaN is returned.
-You can include one underscore between any two digits.
+=back
-This means integer values like 1.01E2 or even 1000E-2 are also accepted.
-Non-integer values result in NaN.
+Octal numbers are typically prefixed by "0", but since leading zeros are
+stripped, these methods can not automatically recognize octal numbers, so use
+the constructor from_oct() to interpret octal strings.
-Hexadecimal (prefixed with "0x") and binary numbers (prefixed with "0b")
-are accepted, too. Please note that octal numbers are not recognized
-by new(), so the following will print "123":
+Some examples of valid string input
- perl -MMath::BigInt -le 'print Math::BigInt->new("0123")'
+ Input string Resulting value
+ 123 123
+ 1.23e2 123
+ 12300e-2 123
+ 0xcafe 51966
+ 0b1101 13
+ 67_538_754 67538754
+ -4_5_6.7_8_9e+0_1_0 -4567890000000
-To convert an octal number, use from_oct();
+Input given as scalar numbers might lose precision. Quote your input to ensure
+that no digits are lost:
- perl -MMath::BigInt -le 'print Math::BigInt->from_oct("0123")'
+ $x = Math::BigInt->new( 56789012345678901234 ); # bad
+ $x = Math::BigInt->new('56789012345678901234'); # good
-Currently, Math::BigInt::new() defaults to 0, while Math::BigInt::new('')
+Currently, Math::BigInt->new() defaults to 0, while Math::BigInt->new('')
results in 'NaN'. This might change in the future, so use always the following
explicit forms to get a zero or NaN:
- $zero = Math::BigInt->bzero();
- $nan = Math::BigInt->bnan();
-
-C<bnorm()> on a BigInt object is now effectively a no-op, since the numbers
-are always stored in normalized form. If passed a string, creates a BigInt
-object from the input.
+ $zero = Math::BigInt->bzero();
+ $nan = Math::BigInt->bnan();
=head2 Output
-Output values are BigInt objects (normalized), except for the methods which
-return a string (see L</SYNOPSIS>).
+Output values are usually Math::BigInt objects.
-Some routines (C<is_odd()>, C<is_even()>, C<is_zero()>, C<is_one()>,
-C<is_nan()>, etc.) return true or false, while others (C<bcmp()>, C<bacmp()>)
-return either undef (if NaN is involved), <0, 0 or >0 and are suited for sort.
+Boolean operators C<is_zero()>, C<is_one()>, C<is_inf()>, etc. return true or
+false.
+
+Comparison operators C<bcmp()> and C<bacmp()>) return -1, 0, 1, or
+undef.
=head1 METHODS
-Each of the methods below (except config(), accuracy() and precision())
-accepts three additional parameters. These arguments C<$A>, C<$P> and C<$R>
-are C<accuracy>, C<precision> and C<round_mode>. Please see the section about
+=head2 Configuration methods
+
+Each of the methods below (except config(), accuracy() and precision()) accepts
+three additional parameters. These arguments C<$A>, C<$P> and C<$R> are
+C<accuracy>, C<precision> and C<round_mode>. Please see the section about
L</ACCURACY and PRECISION> for more information.
+Setting a class variable effects all object instance that are created
+afterwards.
+
=over
+=item accuracy()
+
+ Math::BigInt->accuracy(5); # set class accuracy
+ $x->accuracy(5); # set instance accuracy
+
+ $A = Math::BigInt->accuracy(); # get class accuracy
+ $A = $x->accuracy(); # get instance accuracy
+
+Set or get the accuracy, i.e., the number of significant digits. The accuracy
+must be an integer. If the accuracy is set to C<undef>, no rounding is done.
+
+Alternatively, one can round the results explicitly using one of L</round()>,
+L</bround()> or L</bfround()> or by passing the desired accuracy to the method
+as an additional parameter:
+
+ my $x = Math::BigInt->new(30000);
+ my $y = Math::BigInt->new(7);
+ print scalar $x->copy()->bdiv($y, 2); # prints 4300
+ print scalar $x->copy()->bdiv($y)->bround(2); # prints 4300
+
+Please see the section about L</ACCURACY and PRECISION> for further details.
+
+ $y = Math::BigInt->new(1234567); # $y is not rounded
+ Math::BigInt->accuracy(4); # set class accuracy to 4
+ $x = Math::BigInt->new(1234567); # $x is rounded automatically
+ print "$x $y"; # prints "1235000 1234567"
+
+ print $x->accuracy(); # prints "4"
+ print $y->accuracy(); # also prints "4", since
+ # class accuracy is 4
+
+ Math::BigInt->accuracy(5); # set class accuracy to 5
+ print $x->accuracy(); # prints "4", since instance
+ # accuracy is 4
+ print $y->accuracy(); # prints "5", since no instance
+ # accuracy, and class accuracy is 5
+
+Note: Each class has it's own globals separated from Math::BigInt, but it is
+possible to subclass Math::BigInt and make the globals of the subclass aliases
+to the ones from Math::BigInt.
+
+=item precision()
+
+ Math::BigInt->precision(-2); # set class precision
+ $x->precision(-2); # set instance precision
+
+ $P = Math::BigInt->precision(); # get class precision
+ $P = $x->precision(); # get instance precision
+
+Set or get the precision, i.e., the place to round relative to the decimal
+point. The precision must be a integer. Setting the precision to $P means that
+each number is rounded up or down, depending on the rounding mode, to the
+nearest multiple of 10**$P. If the precision is set to C<undef>, no rounding is
+done.
+
+You might want to use L</accuracy()> instead. With L</accuracy()> you set the
+number of digits each result should have, with L</precision()> you set the
+place where to round.
+
+Please see the section about L</ACCURACY and PRECISION> for further details.
+
+ $y = Math::BigInt->new(1234567); # $y is not rounded
+ Math::BigInt->precision(4); # set class precision to 4
+ $x = Math::BigInt->new(1234567); # $x is rounded automatically
+ print $x; # prints "1230000"
+
+Note: Each class has its own globals separated from Math::BigInt, but it is
+possible to subclass Math::BigInt and make the globals of the subclass aliases
+to the ones from Math::BigInt.
+
+=item div_scale()
+
+Set/get the fallback accuracy. This is the accuracy used when neither accuracy
+nor precision is set explicitly. It is used when a computation might otherwise
+attempt to return an infinite number of digits.
+
+=item round_mode()
+
+Set/get the rounding mode.
+
+=item upgrade()
+
+Set/get the class for upgrading. When a computation might result in a
+non-integer, the operands are upgraded to this class. This is used for instance
+by L<bignum>. The default is C<undef>, thus the following operation creates
+a Math::BigInt, not a Math::BigFloat:
+
+ my $i = Math::BigInt->new(123);
+ my $f = Math::BigFloat->new('123.1');
+
+ print $i + $f, "\n"; # prints 246
+
+=item downgrade()
+
+Set/get the class for downgrading. The default is C<undef>. Downgrading is not
+done by Math::BigInt.
+
+=item modify()
+
+ $x->modify('bpowd');
+
+This method returns 0 if the object can be modified with the given operation,
+or 1 if not.
+
+This is used for instance by L<Math::BigInt::Constant>.
+
=item config()
use Data::Dumper;
print Dumper ( Math::BigInt->config() );
print Math::BigInt->config()->{lib},"\n";
+ print Math::BigInt->config('lib')},"\n";
Returns a hash containing the configuration, e.g. the version number, lib
loaded etc. The following hash keys are currently filled in with the
@@ -3843,289 +4515,318 @@ appropriate information.
The following values can be set by passing C<config()> a reference to a hash:
- trap_inf trap_nan
- upgrade downgrade precision accuracy round_mode div_scale
+ accuracy precision round_mode div_scale
+ upgrade downgrade trap_inf trap_nan
Example:
- $new_cfg = Math::BigInt->config(
- { trap_inf => 1, precision => 5 }
- );
+ $new_cfg = Math::BigInt->config(
+ { trap_inf => 1, precision => 5 }
+ );
-=item accuracy()
+=back
- $x->accuracy(5); # local for $x
- CLASS->accuracy(5); # global for all members of CLASS
- # Note: This also applies to new()!
+=head2 Constructor methods
- $A = $x->accuracy(); # read out accuracy that affects $x
- $A = CLASS->accuracy(); # read out global accuracy
+=over
-Set or get the global or local accuracy, aka how many significant digits the
-results have. If you set a global accuracy, then this also applies to new()!
+=item new()
-Warning! The accuracy I<sticks>, e.g. once you created a number under the
-influence of C<< CLASS->accuracy($A) >>, all results from math operations with
-that number will also be rounded.
+ $x = Math::BigInt->new($str,$A,$P,$R);
-In most cases, you should probably round the results explicitly using one of
-L</round()>, L</bround()> or L</bfround()> or by passing the desired accuracy
-to the math operation as additional parameter:
+Creates a new Math::BigInt object from a scalar or another Math::BigInt object.
+The input is accepted as decimal, hexadecimal (with leading '0x') or binary
+(with leading '0b').
- my $x = Math::BigInt->new(30000);
- my $y = Math::BigInt->new(7);
- print scalar $x->copy()->bdiv($y, 2); # print 4300
- print scalar $x->copy()->bdiv($y)->bround(2); # print 4300
+See L</Input> for more info on accepted input formats.
-Please see the section about L</ACCURACY and PRECISION> for further details.
+=item from_hex()
-Value must be greater than zero. Pass an undef value to disable it:
-
- $x->accuracy(undef);
- Math::BigInt->accuracy(undef);
-
-Returns the current accuracy. For C<< $x->accuracy() >> it will return either
-the local accuracy, or if not defined, the global. This means the return value
-represents the accuracy that will be in effect for $x:
-
- $y = Math::BigInt->new(1234567); # unrounded
- print Math::BigInt->accuracy(4),"\n"; # set 4, print 4
- $x = Math::BigInt->new(123456); # $x will be automatic-
- # ally rounded!
- print "$x $y\n"; # '123500 1234567'
- print $x->accuracy(),"\n"; # will be 4
- print $y->accuracy(),"\n"; # also 4, since
- # global is 4
- print Math::BigInt->accuracy(5),"\n"; # set to 5, print 5
- print $x->accuracy(),"\n"; # still 4
- print $y->accuracy(),"\n"; # 5, since global is 5
-
-Note: Works also for subclasses like Math::BigFloat. Each class has it's own
-globals separated from Math::BigInt, but it is possible to subclass
-Math::BigInt and make the globals of the subclass aliases to the ones from
-Math::BigInt.
+ $x = Math::BigInt->from_hex("0xcafe"); # input is hexadecimal
-=item precision()
+Interpret input as a hexadecimal string. A "0x" or "x" prefix is optional. A
+single underscore character may be placed right after the prefix, if present,
+or between any two digits. If the input is invalid, a NaN is returned.
- $x->precision(-2); # local for $x, round at the second
- # digit right of the dot
- $x->precision(2); # ditto, round at the second digit
- # left of the dot
+=item from_oct()
- CLASS->precision(5); # Global for all members of CLASS
- # This also applies to new()!
- CLASS->precision(-5); # ditto
+ $x = Math::BigInt->from_oct("0775"); # input is octal
- $P = CLASS->precision(); # read out global precision
- $P = $x->precision(); # read out precision that affects $x
+Interpret the input as an octal string and return the corresponding value. A
+"0" (zero) prefix is optional. A single underscore character may be placed
+right after the prefix, if present, or between any two digits. If the input is
+invalid, a NaN is returned.
-Note: You probably want to use L</accuracy()> instead. With L</accuracy()> you
-set the number of digits each result should have, with L</precision()> you
-set the place where to round!
+=item from_bin()
-C<precision()> sets or gets the global or local precision, aka at which digit
-before or after the dot to round all results. A set global precision also
-applies to all newly created numbers!
+ $x = Math::BigInt->from_bin("0b10011"); # input is binary
-In Math::BigInt, passing a negative number precision has no effect since no
-numbers have digits after the dot. In L<Math::BigFloat>, it will round all
-results to P digits after the dot.
+Interpret the input as a binary string. A "0b" or "b" prefix is optional. A
+single underscore character may be placed right after the prefix, if present,
+or between any two digits. If the input is invalid, a NaN is returned.
-Please see the section about L</ACCURACY and PRECISION> for further details.
+=item from_bytes()
-Pass an undef value to disable it:
+ $x = Math::BigInt->from_bytes("\xf3\x6b"); # $x = 62315
- $x->precision(undef);
- Math::BigInt->precision(undef);
+Interpret the input as a byte string, assuming big endian byte order. The
+output is always a non-negative, finite integer.
-Returns the current precision. For C<< $x->precision() >> it will return either
-the local precision of $x, or if not defined, the global. This means the return
-value represents the prevision that will be in effect for $x:
+In some special cases, from_bytes() matches the conversion done by unpack():
- $y = Math::BigInt->new(1234567); # unrounded
- print Math::BigInt->precision(4),"\n"; # set 4, print 4
- $x = Math::BigInt->new(123456); # will be automatically rounded
- print $x; # print "120000"!
+ $b = "\x4e"; # one char byte string
+ $x = Math::BigInt->from_bytes($b); # = 78
+ $y = unpack "C", $b; # ditto, but scalar
-Note: Works also for subclasses like L<Math::BigFloat>. Each class has its
-own globals separated from Math::BigInt, but it is possible to subclass
-Math::BigInt and make the globals of the subclass aliases to the ones from
-Math::BigInt.
+ $b = "\xf3\x6b"; # two char byte string
+ $x = Math::BigInt->from_bytes($b); # = 62315
+ $y = unpack "S>", $b; # ditto, but scalar
-=item brsft()
+ $b = "\x2d\xe0\x49\xad"; # four char byte string
+ $x = Math::BigInt->from_bytes($b); # = 769673645
+ $y = unpack "L>", $b; # ditto, but scalar
- $x->brsft($y,$n);
+ $b = "\x2d\xe0\x49\xad\x2d\xe0\x49\xad"; # eight char byte string
+ $x = Math::BigInt->from_bytes($b); # = 3305723134637787565
+ $y = unpack "Q>", $b; # ditto, but scalar
-Shifts $x right by $y in base $n. Default is base 2, used are usually 10 and
-2, but others work, too.
+=item bzero()
-Right shifting usually amounts to dividing $x by $n ** $y and truncating the
-result:
+ $x = Math::BigInt->bzero();
+ $x->bzero();
+Returns a new Math::BigInt object representing zero. If used as an instance
+method, assigns the value to the invocand.
- $x = Math::BigInt->new(10);
- $x->brsft(1); # same as $x >> 1: 5
- $x = Math::BigInt->new(1234);
- $x->brsft(2,10); # result 12
+=item bone()
-There is one exception, and that is base 2 with negative $x:
+ $x = Math::BigInt->bone(); # +1
+ $x = Math::BigInt->bone("+"); # +1
+ $x = Math::BigInt->bone("-"); # -1
+ $x->bone(); # +1
+ $x->bone("+"); # +1
+ $x->bone('-'); # -1
+Creates a new Math::BigInt object representing one. The optional argument is
+either '-' or '+', indicating whether you want plus one or minus one. If used
+as an instance method, assigns the value to the invocand.
- $x = Math::BigInt->new(-5);
- print $x->brsft(1);
+=item binf()
-This will print -3, not -2 (as it would if you divide -5 by 2 and truncate the
-result).
+ $x = Math::BigInt->binf($sign);
-=item new()
+Creates a new Math::BigInt object representing infinity. The optional argument
+is either '-' or '+', indicating whether you want infinity or minus infinity.
+If used as an instance method, assigns the value to the invocand.
- $x = Math::BigInt->new($str,$A,$P,$R);
+ $x->binf();
+ $x->binf('-');
-Creates a new BigInt object from a scalar or another BigInt object. The
-input is accepted as decimal, hex (with leading '0x') or binary (with leading
-'0b').
+=item bnan()
-See L</Input> for more info on accepted input formats.
+ $x = Math::BigInt->bnan();
-=item from_oct()
+Creates a new Math::BigInt object representing NaN (Not A Number). If used as
+an instance method, assigns the value to the invocand.
- $x = Math::BigInt->from_oct("0775"); # input is octal
+ $x->bnan();
-Interpret the input as an octal string and return the corresponding value. A
-"0" (zero) prefix is optional. A single underscore character may be placed
-right after the prefix, if present, or between any two digits. If the input is
-invalid, a NaN is returned.
+=item bpi()
-=item from_hex()
+ $x = Math::BigInt->bpi(100); # 3
+ $x->bpi(100); # 3
- $x = Math::BigInt->from_hex("0xcafe"); # input is hexadecimal
+Creates a new Math::BigInt object representing PI. If used as an instance
+method, assigns the value to the invocand. With Math::BigInt this always
+returns 3.
-Interpret input as a hexadecimal string. A "0x" or "x" prefix is optional. A
-single underscore character may be placed right after the prefix, if present,
-or between any two digits. If the input is invalid, a NaN is returned.
+If upgrading is in effect, returns PI, rounded to N digits with the current
+rounding mode:
-=item from_bin()
+ use Math::BigFloat;
+ use Math::BigInt upgrade => "Math::BigFloat";
+ print Math::BigInt->bpi(3), "\n"; # 3.14
+ print Math::BigInt->bpi(100), "\n"; # 3.1415....
- $x = Math::BigInt->from_bin("0b10011"); # input is binary
+=item copy()
-Interpret the input as a binary string. A "0b" or "b" prefix is optional. A
-single underscore character may be placed right after the prefix, if present,
-or between any two digits. If the input is invalid, a NaN is returned.
+ $x->copy(); # make a true copy of $x (unlike $y = $x)
-=item bnan()
+=item as_int()
- $x = Math::BigInt->bnan();
+=item as_number()
-Creates a new BigInt object representing NaN (Not A Number).
-If used on an object, it will set it to NaN:
+These methods are called when Math::BigInt encounters an object it doesn't know
+how to handle. For instance, assume $x is a Math::BigInt, or subclass thereof,
+and $y is defined, but not a Math::BigInt, or subclass thereof. If you do
- $x->bnan();
+ $x -> badd($y);
-=item bzero()
+$y needs to be converted into an object that $x can deal with. This is done by
+first checking if $y is something that $x might be upgraded to. If that is the
+case, no further attempts are made. The next is to see if $y supports the
+method C<as_int()>. If it does, C<as_int()> is called, but if it doesn't, the
+next thing is to see if $y supports the method C<as_number()>. If it does,
+C<as_number()> is called. The method C<as_int()> (and C<as_number()>) is
+expected to return either an object that has the same class as $x, a subclass
+thereof, or a string that C<ref($x)-E<gt>new()> can parse to create an object.
- $x = Math::BigInt->bzero();
+C<as_number()> is an alias to C<as_int()>. C<as_number> was introduced in
+v1.22, while C<as_int()> was introduced in v1.68.
-Creates a new BigInt object representing zero.
-If used on an object, it will set it to zero:
+In Math::BigInt, C<as_int()> has the same effect as C<copy()>.
- $x->bzero();
+=back
-=item binf()
+=head2 Boolean methods
- $x = Math::BigInt->binf($sign);
+None of these methods modify the invocand object.
-Creates a new BigInt object representing infinity. The optional argument is
-either '-' or '+', indicating whether you want infinity or minus infinity.
-If used on an object, it will set it to infinity:
+=over
- $x->binf();
- $x->binf('-');
+=item is_zero()
-=item bone()
+ $x->is_zero(); # true if $x is 0
- $x = Math::BigInt->binf($sign);
+Returns true if the invocand is zero and false otherwise.
+
+=item is_one( [ SIGN ])
+
+ $x->is_one(); # true if $x is +1
+ $x->is_one("+"); # ditto
+ $x->is_one("-"); # true if $x is -1
+
+Returns true if the invocand is one and false otherwise.
+
+=item is_finite()
+
+ $x->is_finite(); # true if $x is not +inf, -inf or NaN
-Creates a new BigInt object representing one. The optional argument is
-either '-' or '+', indicating whether you want one or minus one.
-If used on an object, it will set it to one:
+Returns true if the invocand is a finite number, i.e., it is neither +inf,
+-inf, nor NaN.
- $x->bone(); # +1
- $x->bone('-'); # -1
+=item is_inf( [ SIGN ] )
-=item is_one()/is_zero()/is_nan()/is_inf()
+ $x->is_inf(); # true if $x is +inf
+ $x->is_inf("+"); # ditto
+ $x->is_inf("-"); # true if $x is -inf
- $x->is_zero(); # true if arg is +0
- $x->is_nan(); # true if arg is NaN
- $x->is_one(); # true if arg is +1
- $x->is_one('-'); # true if arg is -1
- $x->is_inf(); # true if +inf
- $x->is_inf('-'); # true if -inf (sign is default '+')
+Returns true if the invocand is infinite and false otherwise.
-These methods all test the BigInt for being one specific value and return
-true or false depending on the input. These are faster than doing something
-like:
+=item is_nan()
- if ($x == 0)
+ $x->is_nan(); # true if $x is NaN
-=item is_pos()/is_neg()/is_positive()/is_negative()
+=item is_positive()
- $x->is_pos(); # true if > 0
- $x->is_neg(); # true if < 0
+=item is_pos()
-The methods return true if the argument is positive or negative, respectively.
-C<NaN> is neither positive nor negative, while C<+inf> counts as positive, and
-C<-inf> is negative. A C<zero> is neither positive nor negative.
+ $x->is_positive(); # true if > 0
+ $x->is_pos(); # ditto
-These methods are only testing the sign, and not the value.
+Returns true if the invocand is positive and false otherwise. A C<NaN> is
+neither positive nor negative.
-C<is_positive()> and C<is_negative()> are aliases to C<is_pos()> and
-C<is_neg()>, respectively. C<is_positive()> and C<is_negative()> were
-introduced in v1.36, while C<is_pos()> and C<is_neg()> were only introduced
-in v1.68.
+=item is_negative()
-=item is_odd()/is_even()/is_int()
+=item is_neg()
+
+ $x->is_negative(); # true if < 0
+ $x->is_neg(); # ditto
+
+Returns true if the invocand is negative and false otherwise. A C<NaN> is
+neither positive nor negative.
+
+=item is_odd()
$x->is_odd(); # true if odd, false for even
- $x->is_even(); # true if even, false for odd
- $x->is_int(); # true if $x is an integer
-The return true when the argument satisfies the condition. C<NaN>, C<+inf>,
+Returns true if the invocand is odd and false otherwise. C<NaN>, C<+inf>, and
+C<-inf> are neither odd nor even.
+
+=item is_even()
+
+ $x->is_even(); # true if $x is even
+
+Returns true if the invocand is even and false otherwise. C<NaN>, C<+inf>,
C<-inf> are not integers and are neither odd nor even.
-In BigInt, all numbers except C<NaN>, C<+inf> and C<-inf> are integers.
+=item is_int()
+
+ $x->is_int(); # true if $x is an integer
+
+Returns true if the invocand is an integer and false otherwise. C<NaN>,
+C<+inf>, C<-inf> are not integers.
+
+=back
+
+=head2 Comparison methods
+
+None of these methods modify the invocand object. Note that a C<NaN> is neither
+less than, greater than, or equal to anything else, even a C<NaN>.
+
+=over
=item bcmp()
$x->bcmp($y);
-Compares $x with $y and takes the sign into account.
-Returns -1, 0, 1 or undef.
+Returns -1, 0, 1 depending on whether $x is less than, equal to, or grater than
+$y. Returns undef if any operand is a NaN.
=item bacmp()
$x->bacmp($y);
-Compares $x with $y while ignoring their sign. Returns -1, 0, 1 or undef.
+Returns -1, 0, 1 depending on whether the absolute value of $x is less than,
+equal to, or grater than the absolute value of $y. Returns undef if any operand
+is a NaN.
-=item sign()
+=item beq()
- $x->sign();
+ $x -> beq($y);
-Return the sign, of $x, meaning either C<+>, C<->, C<-inf>, C<+inf> or NaN.
+Returns true if and only if $x is equal to $y, and false otherwise.
-If you want $x to have a certain sign, use one of the following methods:
+=item bne()
- $x->babs(); # '+'
- $x->babs()->bneg(); # '-'
- $x->bnan(); # 'NaN'
- $x->binf(); # '+inf'
- $x->binf('-'); # '-inf'
+ $x -> bne($y);
-=item digit()
+Returns true if and only if $x is not equal to $y, and false otherwise.
- $x->digit($n); # return the nth digit, counting from right
+=item blt()
-If C<$n> is negative, returns the digit counting from left.
+ $x -> blt($y);
+
+Returns true if and only if $x is equal to $y, and false otherwise.
+
+=item ble()
+
+ $x -> ble($y);
+
+Returns true if and only if $x is less than or equal to $y, and false
+otherwise.
+
+=item bgt()
+
+ $x -> bgt($y);
+
+Returns true if and only if $x is greater than $y, and false otherwise.
+
+=item bge()
+
+ $x -> bge($y);
+
+Returns true if and only if $x is greater than or equal to $y, and false
+otherwise.
+
+=back
+
+=head2 Arithmetic methods
+
+These methods modify the invocand object and returns it.
+
+=over
=item bneg()
@@ -4153,15 +4854,8 @@ number is negative, zero, or positive, respectively. Does not modify NaNs.
$x->bnorm(); # normalize (no-op)
-=item bnot()
-
- $x->bnot();
-
-Two's complement (bitwise not). This is equivalent to
-
- $x->binc()->bneg();
-
-but faster.
+Normalize the number. This is a no-op and is provided only for backwards
+compatibility.
=item binc()
@@ -4195,18 +4889,57 @@ This method was added in v1.87 of Math::BigInt (June 2007).
$x->bdiv($y); # divide, set $x to quotient
-Returns $x divided by $y. In list context, does floored division (F-division),
-where the quotient is the greatest integer less than or equal to the quotient
-of the two operands. Consequently, the remainder is either zero or has the same
-sign as the second operand. In scalar context, only the quotient is returned.
+Divides $x by $y by doing floored division (F-division), where the quotient is
+the floored (rounded towards negative infinity) quotient of the two operands.
+In list context, returns the quotient and the remainder. The remainder is
+either zero or has the same sign as the second operand. In scalar context, only
+the quotient is returned.
+
+The quotient is always the greatest integer less than or equal to the
+real-valued quotient of the two operands, and the remainder (when it is
+non-zero) always has the same sign as the second operand; so, for example,
+
+ 1 / 4 => ( 0, 1)
+ 1 / -4 => (-1, -3)
+ -3 / 4 => (-1, 1)
+ -3 / -4 => ( 0, -3)
+ -11 / 2 => (-5, 1)
+ 11 / -2 => (-5, -1)
+
+The behavior of the overloaded operator % agrees with the behavior of Perl's
+built-in % operator (as documented in the perlop manpage), and the equation
+
+ $x == ($x / $y) * $y + ($x % $y)
+
+holds true for any finite $x and finite, non-zero $y.
+
+Perl's "use integer" might change the behaviour of % and / for scalars. This is
+because under 'use integer' Perl does what the underlying C library thinks is
+right, and this varies. However, "use integer" does not change the way things
+are done with Math::BigInt objects.
+
+=item btdiv()
+
+ $x->btdiv($y); # divide, set $x to quotient
+
+Divides $x by $y by doing truncated division (T-division), where quotient is
+the truncated (rouneded towards zero) quotient of the two operands. In list
+context, returns the quotient and the remainder. The remainder is either zero
+or has the same sign as the first operand. In scalar context, only the quotient
+is returned.
=item bmod()
$x->bmod($y); # modulus (x % y)
-Returns $x modulo $y. When $x is finite, and $y is finite and non-zero, the
-result is identical to the remainder after floored division (F-division), i.e.,
-identical to the result from Perl's % operator.
+Returns $x modulo $y, i.e., the remainder after floored division (F-division).
+This method is like Perl's % operator. See L</bdiv()>.
+
+=item btmod()
+
+ $x->btmod($y); # modulus
+
+Returns the remainer after truncated division (T-division). See L</btdiv()>.
=item bmodinv()
@@ -4249,19 +4982,31 @@ is exactly equivalent to
=item bpow()
- $x->bpow($y); # power of arguments (x ** y)
+ $x->bpow($y); # power of arguments (x ** y)
+
+C<bpow()> (and the rounding functions) now modifies the first argument and
+returns it, unlike the old code which left it alone and only returned the
+result. This is to be consistent with C<badd()> etc. The first three modifies
+$x, the last one won't:
+
+ print bpow($x,$i),"\n"; # modify $x
+ print $x->bpow($i),"\n"; # ditto
+ print $x **= $i,"\n"; # the same
+ print $x ** $i,"\n"; # leave $x alone
+
+The form C<$x **= $y> is faster than C<$x = $x ** $y;>, though.
=item blog()
- $x->blog($base, $accuracy); # logarithm of x to the base $base
+ $x->blog($base, $accuracy); # logarithm of x to the base $base
If C<$base> is not defined, Euler's number (e) is used:
- print $x->blog(undef, 100); # log(x) to 100 digits
+ print $x->blog(undef, 100); # log(x) to 100 digits
=item bexp()
- $x->bexp($accuracy); # calculate e ** X
+ $x->bexp($accuracy); # calculate e ** X
Calculates the expression C<e ** $x> where C<e> is Euler's number.
@@ -4271,31 +5016,26 @@ See also L</blog()>.
=item bnok()
- $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bnok($y); # x over y (binomial coefficient n over k)
Calculates the binomial coefficient n over k, also called the "choose"
function. The result is equivalent to:
- ( n ) n!
- | - | = -------
- ( k ) k!(n-k)!
+ ( n ) n!
+ | - | = -------
+ ( k ) k!(n-k)!
This method was added in v1.84 of Math::BigInt (April 2007).
-=item bpi()
-
- print Math::BigInt->bpi(100), "\n"; # 3
+=item bsin()
-Returns PI truncated to an integer, with the argument being ignored. This means
-under BigInt this always returns C<3>.
+ my $x = Math::BigInt->new(1);
+ print $x->bsin(100), "\n";
-If upgrading is in effect, returns PI, rounded to N digits with the
-current rounding mode:
+Calculate the sine of $x, modifying $x in place.
- use Math::BigFloat;
- use Math::BigInt upgrade => Math::BigFloat;
- print Math::BigInt->bpi(3), "\n"; # 3.14
- print Math::BigInt->bpi(100), "\n"; # 3.1415....
+In Math::BigInt, unless upgrading is in effect, the result is truncated to an
+integer.
This method was added in v1.87 of Math::BigInt (June 2007).
@@ -4304,21 +5044,21 @@ This method was added in v1.87 of Math::BigInt (June 2007).
my $x = Math::BigInt->new(1);
print $x->bcos(100), "\n";
-Calculate the cosinus of $x, modifying $x in place.
+Calculate the cosine of $x, modifying $x in place.
-In BigInt, unless upgrading is in effect, the result is truncated to an
+In Math::BigInt, unless upgrading is in effect, the result is truncated to an
integer.
This method was added in v1.87 of Math::BigInt (June 2007).
-=item bsin()
+=item batan()
- my $x = Math::BigInt->new(1);
- print $x->bsin(100), "\n";
+ my $x = Math::BigFloat->new(0.5);
+ print $x->batan(100), "\n";
-Calculate the sinus of $x, modifying $x in place.
+Calculate the arcus tangens of $x, modifying $x in place.
-In BigInt, unless upgrading is in effect, the result is truncated to an
+In Math::BigInt, unless upgrading is in effect, the result is truncated to an
integer.
This method was added in v1.87 of Math::BigInt (June 2007).
@@ -4331,32 +5071,61 @@ This method was added in v1.87 of Math::BigInt (June 2007).
Calculate the arcus tangens of C<$y> divided by C<$x>, modifying $y in place.
-In BigInt, unless upgrading is in effect, the result is truncated to an
+In Math::BigInt, unless upgrading is in effect, the result is truncated to an
integer.
This method was added in v1.87 of Math::BigInt (June 2007).
-=item batan()
+=item bsqrt()
- my $x = Math::BigFloat->new(0.5);
- print $x->batan(100), "\n";
+ $x->bsqrt(); # calculate square-root
-Calculate the arcus tangens of $x, modifying $x in place.
+C<bsqrt()> returns the square root truncated to an integer.
-In BigInt, unless upgrading is in effect, the result is truncated to an
-integer.
+If you want a better approximation of the square root, then use:
-This method was added in v1.87 of Math::BigInt (June 2007).
+ $x = Math::BigFloat->new(12);
+ Math::BigFloat->precision(0);
+ Math::BigFloat->round_mode('even');
+ print $x->copy->bsqrt(),"\n"; # 4
-=item blsft()
+ Math::BigFloat->precision(2);
+ print $x->bsqrt(),"\n"; # 3.46
+ print $x->bsqrt(3),"\n"; # 3.464
- $x->blsft($y); # left shift in base 2
- $x->blsft($y,$n); # left shift, in base $n (like 10)
+=item broot()
+
+ $x->broot($N);
+
+Calculates the N'th root of C<$x>.
+
+=item bfac()
+
+ $x->bfac(); # factorial of $x (1*2*3*4*..*$x)
=item brsft()
- $x->brsft($y); # right shift in base 2
- $x->brsft($y,$n); # right shift, in base $n (like 10)
+ $x->brsft($n); # right shift $n places in base 2
+ $x->brsft($n, $b); # right shift $n places in base $b
+
+The latter is equivalent to
+
+ $x -> bdiv($b -> copy() -> bpow($n))
+
+=item blsft()
+
+ $x->blsft($n); # left shift $n places in base 2
+ $x->blsft($n, $b); # left shift $n places in base $b
+
+The latter is equivalent to
+
+ $x -> bmul($b -> copy() -> bpow($n))
+
+=back
+
+=head2 Bitwise methods
+
+=over
=item band()
@@ -4374,19 +5143,15 @@ This method was added in v1.87 of Math::BigInt (June 2007).
$x->bnot(); # bitwise not (two's complement)
-=item bsqrt()
-
- $x->bsqrt(); # calculate square-root
-
-=item broot()
+Two's complement (bitwise not). This is equivalent to, but faster than,
- $x->broot($N);
+ $x->binc()->bneg();
-Calculates the N'th root of C<$x>.
+=back
-=item bfac()
+=head2 Rounding methods
- $x->bfac(); # factorial of $x (1*2*3*4*..$x)
+=over
=item round()
@@ -4399,178 +5164,272 @@ C<$round_mode>.
$x->bround($N); # accuracy: preserve $N digits
+Rounds $x to an accuracy of $N digits.
+
=item bfround()
$x->bfround($N);
-If N is > 0, rounds to the Nth digit from the left. If N < 0, rounds to
-the Nth digit after the dot. Since BigInts are integers, the case N < 0
-is a no-op for them.
+Rounds to a multiple of 10**$N. Examples:
-Examples:
+ Input N Result
- Input N Result
- ===================================================
- 123456.123456 3 123500
- 123456.123456 2 123450
- 123456.123456 -2 123456.12
- 123456.123456 -3 123456.123
+ 123456.123456 3 123500
+ 123456.123456 2 123450
+ 123456.123456 -2 123456.12
+ 123456.123456 -3 123456.123
=item bfloor()
$x->bfloor();
-Round $x towards minus infinity (i.e., set $x to the largest integer less than
-or equal to $x). This is a no-op in BigInt, but changes $x in BigFloat, if $x
-is not an integer.
+Round $x towards minus infinity, i.e., set $x to the largest integer less than
+or equal to $x.
=item bceil()
$x->bceil();
-Round $x towards plus infinity (i.e., set $x to the smallest integer greater
-than or equal to $x). This is a no-op in BigInt, but changes $x in BigFloat, if
-$x is not an integer.
+Round $x towards plus infinity, i.e., set $x to the smallest integer greater
+than or equal to $x).
=item bint()
$x->bint();
-Round $x towards zero. This is a no-op in BigInt, but changes $x in BigFloat,
-if $x is not an integer.
+Round $x towards zero.
+
+=back
+
+=head2 Other mathematical methods
+
+=over
=item bgcd()
- bgcd(@values); # greatest common divisor (no OO style)
+ $x -> bgcd($y); # GCD of $x and $y
+ $x -> bgcd($y, $z, ...); # GCD of $x, $y, $z, ...
+
+Returns the greatest common divisor (GCD).
=item blcm()
- blcm(@values); # lowest common multiple (no OO style)
+ $x -> blcm($y); # LCM of $x and $y
+ $x -> blcm($y, $z, ...); # LCM of $x, $y, $z, ...
+
+Returns the least common multiple (LCM).
+
+=back
+
+=head2 Object property methods
+
+=over
+
+=item sign()
+
+ $x->sign();
+
+Return the sign, of $x, meaning either C<+>, C<->, C<-inf>, C<+inf> or NaN.
+
+If you want $x to have a certain sign, use one of the following methods:
+
+ $x->babs(); # '+'
+ $x->babs()->bneg(); # '-'
+ $x->bnan(); # 'NaN'
+ $x->binf(); # '+inf'
+ $x->binf('-'); # '-inf'
+
+=item digit()
+
+ $x->digit($n); # return the nth digit, counting from right
+
+If C<$n> is negative, returns the digit counting from left.
=item length()
$x->length();
- ($xl,$fl) = $x->length();
+ ($xl, $fl) = $x->length();
-Returns the number of digits in the decimal representation of the number.
-In list context, returns the length of the integer and fraction part. For
-BigInt's, the length of the fraction part will always be 0.
+Returns the number of digits in the decimal representation of the number. In
+list context, returns the length of the integer and fraction part. For
+Math::BigInt objects, the length of the fraction part is always 0.
-=item exponent()
+The following probably doesn't do what you expect:
- $x->exponent();
+ $c = Math::BigInt->new(123);
+ print $c->length(),"\n"; # prints 30
+
+It prints both the number of digits in the number and in the fraction part
+since print calls C<length()> in list context. Use something like:
-Return the exponent of $x as BigInt.
+ print scalar $c->length(),"\n"; # prints 3
=item mantissa()
$x->mantissa();
-Return the signed mantissa of $x as BigInt.
+Return the signed mantissa of $x as a Math::BigInt.
+
+=item exponent()
+
+ $x->exponent();
+
+Return the exponent of $x as a Math::BigInt.
=item parts()
- $x->parts(); # return (mantissa,exponent) as BigInt
+ $x->parts();
-=item copy()
+Returns the significand (mantissa) and the exponent as integers. In
+Math::BigFloat, both are returned as Math::BigInt objects.
- $x->copy(); # make a true copy of $x (unlike $y = $x;)
+=item sparts()
-=item as_int()
+Returns the significand (mantissa) and the exponent as integers. In scalar
+context, only the significand is returned. The significand is the integer with
+the smallest absolute value. The output of C<sparts()> corresponds to the
+output from C<bsstr()>.
-=item as_number()
+In Math::BigInt, this method is identical to C<parts()>.
-These methods are called when Math::BigInt encounters an object it doesn't know
-how to handle. For instance, assume $x is a Math::BigInt, or subclass thereof,
-and $y is defined, but not a Math::BigInt, or subclass thereof. If you do
+=item nparts()
- $x -> badd($y);
+Returns the significand (mantissa) and exponent corresponding to normalized
+notation. In scalar context, only the significand is returned. For finite
+non-zero numbers, the significand's absolute value is greater than or equal to
+1 and less than 10. The output of C<nparts()> corresponds to the output from
+C<bnstr()>. In Math::BigInt, if the significand can not be represented as an
+integer, upgrading is performed or NaN is returned.
-$y needs to be converted into an object that $x can deal with. This is done by
-first checking if $y is something that $x might be upgraded to. If that is the
-case, no further attempts are made. The next is to see if $y supports the
-method C<as_int()>. If it does, C<as_int()> is called, but if it doesn't, the
-next thing is to see if $y supports the method C<as_number()>. If it does,
-C<as_number()> is called. The method C<as_int()> (and C<as_number()>) is
-expected to return either an object that has the same class as $x, a subclass
-thereof, or a string that C<ref($x)-E<gt>new()> can parse to create an object.
+=item eparts()
-C<as_number()> is an alias to C<as_int()>. C<as_number> was introduced in
-v1.22, while C<as_int()> was introduced in v1.68.
+Returns the significand (mantissa) and exponent corresponding to engineering
+notation. In scalar context, only the significand is returned. For finite
+non-zero numbers, the significand's absolute value is greater than or equal to
+1 and less than 1000, and the exponent is a multiple of 3. The output of
+C<eparts()> corresponds to the output from C<bestr()>. In Math::BigInt, if the
+significand can not be represented as an integer, upgrading is performed or NaN
+is returned.
-In Math::BigInt, C<as_int()> has the same effect as C<copy()>.
+=item dparts()
-=item bstr()
+Returns the integer part and the fraction part. If the fraction part can not be
+represented as an integer, upgrading is performed or NaN is returned. The
+output of C<dparts()> corresponds to the output from C<bdstr()>.
+
+=back
- $x->bstr();
+=head2 String conversion methods
-Returns a normalized string representation of C<$x>.
+=over
+
+=item bstr()
+
+Returns a string representing the number using decimal notation. In
+Math::BigFloat, the output is zero padded according to the current accuracy or
+precision, if any of those are defined.
=item bsstr()
- $x->bsstr(); # normalized string in scientific notation
+Returns a string representing the number using scientific notation where both
+the significand (mantissa) and the exponent are integers. The output
+corresponds to the output from C<sparts()>.
-=item as_hex()
+ 123 is returned as "123e+0"
+ 1230 is returned as "123e+1"
+ 12300 is returned as "123e+2"
+ 12000 is returned as "12e+3"
+ 10000 is returned as "1e+4"
- $x->as_hex(); # as signed hexadecimal string with prefixed 0x
+=item bnstr()
-=item as_bin()
+Returns a string representing the number using normalized notation, the most
+common variant of scientific notation. For finite non-zero numbers, the
+absolute value of the significand is less than or equal to 1 and less than 10.
+The output corresponds to the output from C<nparts()>.
- $x->as_bin(); # as signed binary string with prefixed 0b
+ 123 is returned as "1.23e+2"
+ 1230 is returned as "1.23e+3"
+ 12300 is returned as "1.23e+4"
+ 12000 is returned as "1.2e+4"
+ 10000 is returned as "1e+4"
-=item as_oct()
+=item bestr()
- $x->as_oct(); # as signed octal string with prefixed 0
+Returns a string representing the number using engineering notation. For finite
+non-zero numbers, the absolute value of the significand is less than or equal
+to 1 and less than 1000, and the exponent is a multiple of 3. The output
+corresponds to the output from C<eparts()>.
-=item numify()
+ 123 is returned as "123e+0"
+ 1230 is returned as "1.23e+3"
+ 12300 is returned as "12.3e+3"
+ 12000 is returned as "12e+3"
+ 10000 is returned as "10e+3"
- print $x->numify();
+=item bdstr()
-This returns a normal Perl scalar from $x. It is used automatically
-whenever a scalar is needed, for instance in array index operations.
+Returns a string representing the number using decimal notation. The output
+corresponds to the output from C<dparts()>.
-This loses precision, to avoid this use L</as_int()> instead.
+ 123 is returned as "123"
+ 1230 is returned as "1230"
+ 12300 is returned as "12300"
+ 12000 is returned as "12000"
+ 10000 is returned as "10000"
-=item modify()
+=item as_hex()
- $x->modify('bpowd');
+ $x->as_hex();
-This method returns 0 if the object can be modified with the given
-operation, or 1 if not.
+Returns a string representing the number using hexadecimal notation. The output
+is prefixed by "0x".
-This is used for instance by L<Math::BigInt::Constant>.
+=item as_bin()
-=item upgrade()/downgrade()
+ $x->as_bin();
-Set/get the class for downgrade/upgrade operations. Thuis is used
-for instance by L<bignum>. The defaults are '', thus the following
-operation will create a BigInt, not a BigFloat:
+Returns a string representing the number using binary notation. The output is
+prefixed by "0b".
- my $i = Math::BigInt->new(123);
- my $f = Math::BigFloat->new('123.1');
+=item as_oct()
- print $i + $f,"\n"; # print 246
+ $x->as_oct();
-=item div_scale()
+Returns a string representing the number using octal notation. The output is
+prefixed by "0".
-Set/get the number of digits for the default precision in divide
-operations.
+=item as_bytes()
-=item round_mode()
+ $x = Math::BigInt->new("1667327589");
+ $s = $x->as_bytes(); # $s = "cafe"
-Set/get the current round mode.
+Returns a byte string representing the number using big endian byte order. The
+invocand must be a non-negative, finite integer.
+
+=back
+
+=head2 Other conversion methods
+
+=over
+
+=item numify()
+
+ print $x->numify();
+
+Returns a Perl scalar from $x. It is used automatically whenever a scalar is
+needed, for instance in array index operations.
=back
=head1 ACCURACY and PRECISION
-Since version v1.33, Math::BigInt and Math::BigFloat have full support for
-accuracy and precision based rounding, both automatically after every
-operation, as well as manually.
+Math::BigInt and Math::BigFloat have full support for accuracy and precision
+based rounding, both automatically after every operation, as well as manually.
-This section describes the accuracy/precision handling in Math::Big* as it
-used to be and as it is now, complete with an explanation of all terms and
-abbreviations.
+This section describes the accuracy/precision handling in Math::BigInt and
+Math::BigFloat as it used to be and as it is now, complete with an explanation
+of all terms and abbreviations.
Not yet implemented things (but with correct description) are marked with '!',
things that need to be answered are marked with '?'.
@@ -4579,49 +5438,48 @@ In the next paragraph follows a short description of terms used here (because
these may differ from terms used by others people or documentation).
During the rest of this document, the shortcuts A (for accuracy), P (for
-precision), F (fallback) and R (rounding mode) will be used.
+precision), F (fallback) and R (rounding mode) are be used.
=head2 Precision P
-A fixed number of digits before (positive) or after (negative)
-the decimal point. For example, 123.45 has a precision of -2. 0 means an
-integer like 123 (or 120). A precision of 2 means two digits to the left
-of the decimal point are zero, so 123 with P = 1 becomes 120. Note that
-numbers with zeros before the decimal point may have different precisions,
-because 1200 can have p = 0, 1 or 2 (depending on what the initial value
-was). It could also have p < 0, when the digits after the decimal point
-are zero.
-
-The string output (of floating point numbers) will be padded with zeros:
-
- Initial value P A Result String
- ------------------------------------------------------------
- 1234.01 -3 1000 1000
- 1234 -2 1200 1200
- 1234.5 -1 1230 1230
- 1234.001 1 1234 1234.0
- 1234.01 0 1234 1234
- 1234.01 2 1234.01 1234.01
- 1234.01 5 1234.01 1234.01000
-
-For BigInts, no padding occurs.
+Precision is a fixed number of digits before (positive) or after (negative) the
+decimal point. For example, 123.45 has a precision of -2. 0 means an integer
+like 123 (or 120). A precision of 2 means at least two digits to the left of
+the decimal point are zero, so 123 with P = 1 becomes 120. Note that numbers
+with zeros before the decimal point may have different precisions, because 1200
+can have P = 0, 1 or 2 (depending on what the initial value was). It could also
+have p < 0, when the digits after the decimal point are zero.
+
+The string output (of floating point numbers) is padded with zeros:
+
+ Initial value P A Result String
+ ------------------------------------------------------------
+ 1234.01 -3 1000 1000
+ 1234 -2 1200 1200
+ 1234.5 -1 1230 1230
+ 1234.001 1 1234 1234.0
+ 1234.01 0 1234 1234
+ 1234.01 2 1234.01 1234.01
+ 1234.01 5 1234.01 1234.01000
+
+For Math::BigInt objects, no padding occurs.
=head2 Accuracy A
-Number of significant digits. Leading zeros are not counted. A
-number may have an accuracy greater than the non-zero digits
-when there are zeros in it or trailing zeros. For example, 123.456 has
-A of 6, 10203 has 5, 123.0506 has 7, 123.450000 has 8 and 0.000123 has 3.
+Number of significant digits. Leading zeros are not counted. A number may have
+an accuracy greater than the non-zero digits when there are zeros in it or
+trailing zeros. For example, 123.456 has A of 6, 10203 has 5, 123.0506 has 7,
+123.45000 has 8 and 0.000123 has 3.
-The string output (of floating point numbers) will be padded with zeros:
+The string output (of floating point numbers) is padded with zeros:
- Initial value P A Result String
- ------------------------------------------------------------
- 1234.01 3 1230 1230
- 1234.01 6 1234.01 1234.01
- 1234.1 8 1234.1 1234.1000
+ Initial value P A Result String
+ ------------------------------------------------------------
+ 1234.01 3 1230 1230
+ 1234.01 6 1234.01 1234.01
+ 1234.1 8 1234.1 1234.1000
-For BigInts, no padding occurs.
+For Math::BigInt objects, no padding occurs.
=head2 Fallback F
@@ -4630,74 +5488,67 @@ dividing numbers.
=head2 Rounding mode R
-When rounding a number, different 'styles' or 'kinds'
-of rounding are possible. (Note that random rounding, as in
-Math::Round, is not implemented.)
+When rounding a number, different 'styles' or 'kinds' of rounding are possible.
+(Note that random rounding, as in Math::Round, is not implemented.)
=over
=item 'trunc'
-truncation invariably removes all digits following the
-rounding place, replacing them with zeros. Thus, 987.65 rounded
-to tens (P=1) becomes 980, and rounded to the fourth sigdig
-becomes 987.6 (A=4). 123.456 rounded to the second place after the
-decimal point (P=-2) becomes 123.46.
-
-All other implemented styles of rounding attempt to round to the
-"nearest digit." If the digit D immediately to the right of the
-rounding place (skipping the decimal point) is greater than 5, the
-number is incremented at the rounding place (possibly causing a
-cascade of incrementation): e.g. when rounding to units, 0.9 rounds
-to 1, and -19.9 rounds to -20. If D < 5, the number is similarly
-truncated at the rounding place: e.g. when rounding to units, 0.4
+truncation invariably removes all digits following the rounding place,
+replacing them with zeros. Thus, 987.65 rounded to tens (P = 1) becomes 980,
+and rounded to the fourth sigdig becomes 987.6 (A = 4). 123.456 rounded to the
+second place after the decimal point (P = -2) becomes 123.46.
+
+All other implemented styles of rounding attempt to round to the "nearest
+digit." If the digit D immediately to the right of the rounding place (skipping
+the decimal point) is greater than 5, the number is incremented at the rounding
+place (possibly causing a cascade of incrementation): e.g. when rounding to
+units, 0.9 rounds to 1, and -19.9 rounds to -20. If D < 5, the number is
+similarly truncated at the rounding place: e.g. when rounding to units, 0.4
rounds to 0, and -19.4 rounds to -19.
-However the results of other styles of rounding differ if the
-digit immediately to the right of the rounding place (skipping the
-decimal point) is 5 and if there are no digits, or no digits other
-than 0, after that 5. In such cases:
+However the results of other styles of rounding differ if the digit immediately
+to the right of the rounding place (skipping the decimal point) is 5 and if
+there are no digits, or no digits other than 0, after that 5. In such cases:
=item 'even'
-rounds the digit at the rounding place to 0, 2, 4, 6, or 8
-if it is not already. E.g., when rounding to the first sigdig, 0.45
-becomes 0.4, -0.55 becomes -0.6, but 0.4501 becomes 0.5.
+rounds the digit at the rounding place to 0, 2, 4, 6, or 8 if it is not
+already. E.g., when rounding to the first sigdig, 0.45 becomes 0.4, -0.55
+becomes -0.6, but 0.4501 becomes 0.5.
=item 'odd'
-rounds the digit at the rounding place to 1, 3, 5, 7, or 9 if
-it is not already. E.g., when rounding to the first sigdig, 0.45
-becomes 0.5, -0.55 becomes -0.5, but 0.5501 becomes 0.6.
+rounds the digit at the rounding place to 1, 3, 5, 7, or 9 if it is not
+already. E.g., when rounding to the first sigdig, 0.45 becomes 0.5, -0.55
+becomes -0.5, but 0.5501 becomes 0.6.
=item '+inf'
-round to plus infinity, i.e. always round up. E.g., when
-rounding to the first sigdig, 0.45 becomes 0.5, -0.55 becomes -0.5,
-and 0.4501 also becomes 0.5.
+round to plus infinity, i.e. always round up. E.g., when rounding to the first
+sigdig, 0.45 becomes 0.5, -0.55 becomes -0.5, and 0.4501 also becomes 0.5.
=item '-inf'
-round to minus infinity, i.e. always round down. E.g., when
-rounding to the first sigdig, 0.45 becomes 0.4, -0.55 becomes -0.6,
-but 0.4501 becomes 0.5.
+round to minus infinity, i.e. always round down. E.g., when rounding to the
+first sigdig, 0.45 becomes 0.4, -0.55 becomes -0.6, but 0.4501 becomes 0.5.
=item 'zero'
-round to zero, i.e. positive numbers down, negative ones up.
-E.g., when rounding to the first sigdig, 0.45 becomes 0.4, -0.55
-becomes -0.5, but 0.4501 becomes 0.5.
+round to zero, i.e. positive numbers down, negative ones up. E.g., when
+rounding to the first sigdig, 0.45 becomes 0.4, -0.55 becomes -0.5, but 0.4501
+becomes 0.5.
=item 'common'
-round up if the digit immediately to the right of the rounding place
-is 5 or greater, otherwise round down. E.g., 0.15 becomes 0.2 and
-0.149 becomes 0.1.
+round up if the digit immediately to the right of the rounding place is 5 or
+greater, otherwise round down. E.g., 0.15 becomes 0.2 and 0.149 becomes 0.1.
=back
-The handling of A & P in MBI/MBF (the old core code shipped with Perl
-versions <= 5.7.2) is like this:
+The handling of A & P in MBI/MBF (the old core code shipped with Perl versions
+<= 5.7.2) is like this:
=over
@@ -4714,7 +5565,7 @@ versions <= 5.7.2) is like this:
+ other operations simply create the same number (bneg etc), or
more (bmul) of digits
+ rounding/truncating is only done when explicitly calling one
- of bround or bfround, and never for BigInt (not implemented)
+ of bround or bfround, and never for Math::BigInt (not implemented)
* bsqrt() simply hands its accuracy argument over to bdiv.
* the documentation and the comment in the code indicate two
different ways on how bdiv() determines the maximum number
@@ -4800,10 +5651,10 @@ This is how it works now:
* If A or P are enabled/defined, they are used to round the result of each
operation according to the rules below
- * Negative P is ignored in Math::BigInt, since BigInts never have digits
- after the decimal point
+ * Negative P is ignored in Math::BigInt, since Math::BigInt objects never
+ have digits after the decimal point
* Math::BigFloat uses Math::BigInt internally, but setting A or P inside
- Math::BigInt as globals does not tamper with the parts of a BigFloat.
+ Math::BigInt as globals does not tamper with the parts of a Math::BigFloat.
A flag is used to mark all Math::BigFloat numbers as 'never round'.
=item Precedence
@@ -4925,53 +5776,33 @@ This is how it works now:
=head1 Infinity and Not a Number
-While BigInt has extensive handling of inf and NaN, certain quirks remain.
+While Math::BigInt has extensive handling of inf and NaN, certain quirks
+remain.
=over
=item oct()/hex()
-These perl routines currently (as of Perl v.5.8.6) cannot handle passed
-inf.
+These perl routines currently (as of Perl v.5.8.6) cannot handle passed inf.
- te@linux:~> perl -wle 'print 2 ** 3333'
- Inf
- te@linux:~> perl -wle 'print 2 ** 3333 == 2 ** 3333'
- 1
- te@linux:~> perl -wle 'print oct(2 ** 3333)'
- 0
- te@linux:~> perl -wle 'print hex(2 ** 3333)'
- Illegal hexadecimal digit 'I' ignored at -e line 1.
- 0
+ te@linux:~> perl -wle 'print 2 ** 3333'
+ Inf
+ te@linux:~> perl -wle 'print 2 ** 3333 == 2 ** 3333'
+ 1
+ te@linux:~> perl -wle 'print oct(2 ** 3333)'
+ 0
+ te@linux:~> perl -wle 'print hex(2 ** 3333)'
+ Illegal hexadecimal digit 'I' ignored at -e line 1.
+ 0
The same problems occur if you pass them Math::BigInt->binf() objects. Since
-overloading these routines is not possible, this cannot be fixed from BigInt.
-
-=item ==, !=, <, >, <=, >= with NaNs
-
-BigInt's bcmp() routine currently returns undef to signal that a NaN was
-involved in a comparison. However, the overload code turns that into
-either 1 or '' and thus operations like C<< NaN != NaN >> might return
-wrong values.
-
-=item log(-inf)
-
-C<< log(-inf) >> is highly weird. Since log(-x)=pi*i+log(x), then
-log(-inf)=pi*i+inf. However, since the imaginary part is finite, the real
-infinity "overshadows" it, so the number might as well just be infinity.
-However, the result is a complex number, and since BigInt/BigFloat can only
-have real numbers as results, the result is NaN.
-
-=item exp(), cos(), sin(), atan2()
-
-These all might have problems handling infinity right.
+overloading these routines is not possible, this cannot be fixed from
+Math::BigInt.
=back
=head1 INTERNALS
-The actual numbers are stored as unsigned big integers (with separate sign).
-
You should neither care about nor depend on the internal representation; it
might change without notice. Use B<ONLY> method calls like C<< $x->sign(); >>
instead relying on the internal representation.
@@ -4981,35 +5812,34 @@ instead relying on the internal representation.
Math with the numbers is done (by default) by a module called
C<Math::BigInt::Calc>. This is equivalent to saying:
- use Math::BigInt try => 'Calc';
+ use Math::BigInt try => 'Calc';
You can change this backend library by using:
- use Math::BigInt try => 'GMP';
+ use Math::BigInt try => 'GMP';
-B<Note>: General purpose packages should not be explicit about the library
-to use; let the script author decide which is best.
+B<Note>: General purpose packages should not be explicit about the library to
+use; let the script author decide which is best.
-If your script works with huge numbers and Calc is too slow for them,
-you can also for the loading of one of these libraries and if none
-of them can be used, the code will die:
+If your script works with huge numbers and Calc is too slow for them, you can
+also for the loading of one of these libraries and if none of them can be used,
+the code dies:
- use Math::BigInt only => 'GMP,Pari';
+ use Math::BigInt only => 'GMP,Pari';
The following would first try to find Math::BigInt::Foo, then
Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
- use Math::BigInt try => 'Foo,Math::BigInt::Bar';
+ use Math::BigInt try => 'Foo,Math::BigInt::Bar';
-The library that is loaded last will be used. Note that this can be
-overwritten at any time by loading a different library, and numbers
-constructed with different libraries cannot be used in math operations
-together.
+The library that is loaded last is used. Note that this can be overwritten at
+any time by loading a different library, and numbers constructed with different
+libraries cannot be used in math operations together.
=head3 What library to use?
-B<Note>: General purpose packages should not be explicit about the library
-to use; let the script author decide which is best.
+B<Note>: General purpose packages should not be explicit about the library to
+use; let the script author decide which is best.
L<Math::BigInt::GMP> and L<Math::BigInt::Pari> are in cases involving big
numbers much faster than Calc, however it is slower when dealing with very
@@ -5031,30 +5861,8 @@ The sign is either '+', '-', 'NaN', '+inf' or '-inf'.
A sign of 'NaN' is used to represent the result when input arguments are not
numbers or as a result of 0/0. '+inf' and '-inf' represent plus respectively
-minus infinity. You will get '+inf' when dividing a positive number by 0, and
-'-inf' when dividing any negative number by 0.
-
-=head2 mantissa(), exponent() and parts()
-
-C<mantissa()> and C<exponent()> return the said parts of the BigInt such
-that:
-
- $m = $x->mantissa();
- $e = $x->exponent();
- $y = $m * ( 10 ** $e );
- print "ok\n" if $x == $y;
-
-C<< ($m,$e) = $x->parts() >> is just a shortcut that gives you both of them
-in one go. Both the returned mantissa and exponent have a sign.
-
-Currently, for BigInts C<$e> is always 0, except +inf and -inf, where it is
-C<+inf>; and for NaN, where it is C<NaN>; and for C<$x == 0>, where it is C<1>
-(to be compatible with Math::BigFloat's internal representation of a zero as
-C<0E1>).
-
-C<$m> is currently just a copy of the original number. The relation between
-C<$e> and C<$m> will stay always the same, though their real values might
-change.
+minus infinity. You get '+inf' when dividing a positive number by 0, and '-inf'
+when dividing any negative number by 0.
=head1 EXAMPLES
@@ -5064,18 +5872,18 @@ change.
$x = Math::BigInt->bstr("1234") # string "1234"
$x = "$x"; # same as bstr()
- $x = Math::BigInt->bneg("1234"); # BigInt "-1234"
- $x = Math::BigInt->babs("-12345"); # BigInt "12345"
- $x = Math::BigInt->bnorm("-0.00"); # BigInt "0"
- $x = bigint(1) + bigint(2); # BigInt "3"
- $x = bigint(1) + "2"; # ditto (auto-BigIntify of "2")
- $x = bigint(1); # BigInt "1"
- $x = $x + 5 / 2; # BigInt "3"
- $x = $x ** 3; # BigInt "27"
- $x *= 2; # BigInt "54"
- $x = Math::BigInt->new(0); # BigInt "0"
- $x--; # BigInt "-1"
- $x = Math::BigInt->badd(4,5) # BigInt "9"
+ $x = Math::BigInt->bneg("1234"); # Math::BigInt "-1234"
+ $x = Math::BigInt->babs("-12345"); # Math::BigInt "12345"
+ $x = Math::BigInt->bnorm("-0.00"); # Math::BigInt "0"
+ $x = bigint(1) + bigint(2); # Math::BigInt "3"
+ $x = bigint(1) + "2"; # ditto (auto-Math::BigIntify of "2")
+ $x = bigint(1); # Math::BigInt "1"
+ $x = $x + 5 / 2; # Math::BigInt "3"
+ $x = $x ** 3; # Math::BigInt "27"
+ $x *= 2; # Math::BigInt "54"
+ $x = Math::BigInt->new(0); # Math::BigInt "0"
+ $x--; # Math::BigInt "-1"
+ $x = Math::BigInt->badd(4,5) # Math::BigInt "9"
print $x->bsstr(); # 9e+0
Examples for rounding:
@@ -5110,67 +5918,67 @@ Examples for converting:
=head1 Autocreating constants
After C<use Math::BigInt ':constant'> all the B<integer> decimal, hexadecimal
-and binary constants in the given scope are converted to C<Math::BigInt>.
-This conversion happens at compile time.
+and binary constants in the given scope are converted to C<Math::BigInt>. This
+conversion happens at compile time.
In particular,
perl -MMath::BigInt=:constant -e 'print 2**100,"\n"'
prints the integer value of C<2**100>. Note that without conversion of
-constants the expression 2**100 will be calculated as perl scalar.
+constants the expression 2**100 is calculated using Perl scalars.
-Please note that strings and floating point constants are not affected,
-so that
+Please note that strings and floating point constants are not affected, so that
- use Math::BigInt qw/:constant/;
+ use Math::BigInt qw/:constant/;
- $x = 1234567890123456789012345678901234567890
- + 123456789123456789;
- $y = '1234567890123456789012345678901234567890'
- + '123456789123456789';
+ $x = 1234567890123456789012345678901234567890
+ + 123456789123456789;
+ $y = '1234567890123456789012345678901234567890'
+ + '123456789123456789';
-do not work. You need an explicit Math::BigInt->new() around one of the
-operands. You should also quote large constants to protect loss of precision:
+does not give you what you expect. You need an explicit Math::BigInt->new()
+around one of the operands. You should also quote large constants to protect
+loss of precision:
- use Math::BigInt;
+ use Math::BigInt;
- $x = Math::BigInt->new('1234567889123456789123456789123456789');
+ $x = Math::BigInt->new('1234567889123456789123456789123456789');
Without the quotes Perl would convert the large number to a floating point
-constant at compile time and then hand the result to BigInt, which results in
-an truncated result or a NaN.
+constant at compile time and then hand the result to Math::BigInt, which
+results in an truncated result or a NaN.
This also applies to integers that look like floating point constants:
- use Math::BigInt ':constant';
+ use Math::BigInt ':constant';
- print ref(123e2),"\n";
- print ref(123.2e2),"\n";
+ print ref(123e2),"\n";
+ print ref(123.2e2),"\n";
-will print nothing but newlines. Use either L<bignum> or L<Math::BigFloat>
-to get this to work.
+prints nothing but newlines. Use either L<bignum> or L<Math::BigFloat> to get
+this to work.
=head1 PERFORMANCE
Using the form $x += $y; etc over $x = $x + $y is faster, since a copy of $x
must be made in the second case. For long numbers, the copy can eat up to 20%
of the work (in the case of addition/subtraction, less for
-multiplication/division). If $y is very small compared to $x, the form
-$x += $y is MUCH faster than $x = $x + $y since making the copy of $x takes
-more time then the actual addition.
+multiplication/division). If $y is very small compared to $x, the form $x += $y
+is MUCH faster than $x = $x + $y since making the copy of $x takes more time
+then the actual addition.
With a technique called copy-on-write, the cost of copying with overload could
be minimized or even completely avoided. A test implementation of COW did show
-performance gains for overloaded math, but introduced a performance loss due
-to a constant overhead for all other operations. So Math::BigInt does currently
+performance gains for overloaded math, but introduced a performance loss due to
+a constant overhead for all other operations. So Math::BigInt does currently
not COW.
The rewritten version of this module (vs. v0.01) is slower on certain
operations, like C<new()>, C<bstr()> and C<numify()>. The reason are that it
does now more work and handles much more cases. The time spent in these
-operations is usually gained in the other math operations so that code on
-the average should get (much) faster. If they don't, please contact the author.
+operations is usually gained in the other math operations so that code on the
+average should get (much) faster. If they don't, please contact the author.
Some operations may be slower for small numbers, but are significantly faster
for big numbers. Other operations are now constant (O(1), like C<bneg()>,
@@ -5199,9 +6007,8 @@ work, as long as a few simple rules are followed:
=item *
The public API must remain consistent, i.e. if a sub-class is overloading
-addition, the sub-class must use the same name, in this case badd(). The
-reason for this is that Math::BigInt is optimized to call the object methods
-directly.
+addition, the sub-class must use the same name, in this case badd(). The reason
+for this is that Math::BigInt is optimized to call the object methods directly.
=item *
@@ -5212,41 +6019,41 @@ additional keys can be added, like C<< $x->{_custom} >>.
Accessor functions are available for all existing object hash keys and should
be used instead of directly accessing the internal hash keys. The reason for
-this is that Math::BigInt itself has a pluggable interface which permits it
-to support different storage methods.
+this is that Math::BigInt itself has a pluggable interface which permits it to
+support different storage methods.
=back
More complex sub-classes may have to replicate more of the logic internal of
-Math::BigInt if they need to change more basic behaviors. A subclass that
-needs to merely change the output only needs to overload C<bstr()>.
+Math::BigInt if they need to change more basic behaviors. A subclass that needs
+to merely change the output only needs to overload C<bstr()>.
All other object methods and overloaded functions can be directly inherited
from the parent class.
-At the very minimum, any subclass will need to provide its own C<new()> and can
+At the very minimum, any subclass needs to provide its own C<new()> and can
store additional hash keys in the object. There are also some package globals
that must be defined, e.g.:
- # Globals
- $accuracy = undef;
- $precision = -2; # round to 2 decimal places
- $round_mode = 'even';
- $div_scale = 40;
+ # Globals
+ $accuracy = undef;
+ $precision = -2; # round to 2 decimal places
+ $round_mode = 'even';
+ $div_scale = 40;
Additionally, you might want to provide the following two globals to allow
auto-upgrading and auto-downgrading to work correctly:
- $upgrade = undef;
- $downgrade = undef;
+ $upgrade = undef;
+ $downgrade = undef;
This allows Math::BigInt to correctly retrieve package globals from the
-subclass, like C<$SubClass::precision>. See t/Math/BigInt/Subclass.pm or
+subclass, like C<$SubClass::precision>. See t/Math/BigInt/Subclass.pm or
t/Math/BigFloat/SubClass.pm completely functional subclass examples.
Don't forget to
- use overload;
+ use overload;
in your subclass to automatically inherit the overloading from the parent. If
you like, you can change part of the overloading, look at Math::String for an
@@ -5256,62 +6063,43 @@ example.
When used like this:
- use Math::BigInt upgrade => 'Foo::Bar';
+ use Math::BigInt upgrade => 'Foo::Bar';
-certain operations will 'upgrade' their calculation and thus the result to
-the class Foo::Bar. Usually this is used in conjunction with Math::BigFloat:
+certain operations 'upgrade' their calculation and thus the result to the class
+Foo::Bar. Usually this is used in conjunction with Math::BigFloat:
- use Math::BigInt upgrade => 'Math::BigFloat';
+ use Math::BigInt upgrade => 'Math::BigFloat';
As a shortcut, you can use the module L<bignum>:
- use bignum;
+ use bignum;
Also good for one-liners:
- perl -Mbignum -le 'print 2 ** 255'
+ perl -Mbignum -le 'print 2 ** 255'
-This makes it possible to mix arguments of different classes (as in 2.5 + 2)
-as well es preserve accuracy (as in sqrt(3)).
+This makes it possible to mix arguments of different classes (as in 2.5 + 2) as
+well es preserve accuracy (as in sqrt(3)).
Beware: This feature is not fully implemented yet.
=head2 Auto-upgrade
-The following methods upgrade themselves unconditionally; that is if upgrade
-is in effect, they will always hand up their work:
+The following methods upgrade themselves unconditionally; that is if upgrade is
+in effect, they always hands up their work:
-=over
+ div bsqrt blog bexp bpi bsin bcos batan batan2
-=item bsqrt()
-
-=item div()
-
-=item blog()
-
-=item bexp()
-
-=item bpi()
-
-=item bcos()
-
-=item bsin()
-
-=item batan2()
-
-=item batan()
-
-=back
-
-All other methods upgrade themselves only when one (or all) of their
-arguments are of the class mentioned in $upgrade.
+All other methods upgrade themselves only when one (or all) of their arguments
+are of the class mentioned in $upgrade.
=head1 EXPORTS
-C<Math::BigInt> exports nothing by default, but can export the following methods:
+C<Math::BigInt> exports nothing by default, but can export the following
+methods:
- bgcd
- blcm
+ bgcd
+ blcm
=head1 CAVEATS
@@ -5320,242 +6108,120 @@ known to be troublesome:
=over
-=item bstr(), bsstr() and 'cmp'
+=item Comparing numbers as strings
-Both C<bstr()> and C<bsstr()> as well as automated stringify via overload now
-drop the leading '+'. The old code would return '+3', the new returns '3'.
-This is to be consistent with Perl and to make C<cmp> (especially with
-overloading) to work as you expect. It also solves problems with C<Test.pm>
-and L<Test::More>, which stringify arguments before comparing them.
+Both C<bstr()> and C<bsstr()> as well as stringify via overload drop the
+leading '+'. This is to be consistent with Perl and to make C<cmp> (especially
+with overloading) to work as you expect. It also solves problems with
+C<Test.pm> and L<Test::More>, which stringify arguments before comparing them.
Mark Biggar said, when asked about to drop the '+' altogether, or make only
C<cmp> work:
- I agree (with the first alternative), don't add the '+' on positive
- numbers. It's not as important anymore with the new internal
- form for numbers. It made doing things like abs and neg easier,
- but those have to be done differently now anyway.
+ I agree (with the first alternative), don't add the '+' on positive
+ numbers. It's not as important anymore with the new internal form
+ for numbers. It made doing things like abs and neg easier, but
+ those have to be done differently now anyway.
-So, the following examples will now work all as expected:
+So, the following examples now works as expected:
- use Test::More tests => 1;
- use Math::BigInt;
+ use Test::More tests => 1;
+ use Math::BigInt;
- my $x = Math::BigInt -> new(3*3);
- my $y = Math::BigInt -> new(3*3);
+ my $x = Math::BigInt -> new(3*3);
+ my $y = Math::BigInt -> new(3*3);
- is ($x,3*3, 'multiplication');
- print "$x eq 9" if $x eq $y;
- print "$x eq 9" if $x eq '9';
- print "$x eq 9" if $x eq 3*3;
+ is($x,3*3, 'multiplication');
+ print "$x eq 9" if $x eq $y;
+ print "$x eq 9" if $x eq '9';
+ print "$x eq 9" if $x eq 3*3;
Additionally, the following still works:
- print "$x == 9" if $x == $y;
- print "$x == 9" if $x == 9;
- print "$x == 9" if $x == 3*3;
+ print "$x == 9" if $x == $y;
+ print "$x == 9" if $x == 9;
+ print "$x == 9" if $x == 3*3;
There is now a C<bsstr()> method to get the string in scientific notation aka
C<1e+2> instead of C<100>. Be advised that overloaded 'eq' always uses bstr()
-for comparison, but Perl will represent some numbers as 100 and others
-as 1e+308. If in doubt, convert both arguments to Math::BigInt before
-comparing them as strings:
+for comparison, but Perl represents some numbers as 100 and others as 1e+308.
+If in doubt, convert both arguments to Math::BigInt before comparing them as
+strings:
- use Test::More tests => 3;
- use Math::BigInt;
+ use Test::More tests => 3;
+ use Math::BigInt;
- $x = Math::BigInt->new('1e56'); $y = 1e56;
- is ($x,$y); # will fail
- is ($x->bsstr(),$y); # okay
- $y = Math::BigInt->new($y);
- is ($x,$y); # okay
+ $x = Math::BigInt->new('1e56'); $y = 1e56;
+ is($x,$y); # fails
+ is($x->bsstr(),$y); # okay
+ $y = Math::BigInt->new($y);
+ is($x,$y); # okay
-Alternatively, simply use C<< <=> >> for comparisons, this will get it
-always right. There is not yet a way to get a number automatically represented
-as a string that matches exactly the way Perl represents it.
+Alternatively, simply use C<< <=> >> for comparisons, this always gets it
+right. There is not yet a way to get a number automatically represented as a
+string that matches exactly the way Perl represents it.
See also the section about L<Infinity and Not a Number> for problems in
comparing NaNs.
=item int()
-C<int()> will return (at least for Perl v5.7.1 and up) another BigInt, not a
+C<int()> returns (at least for Perl v5.7.1 and up) another Math::BigInt, not a
Perl scalar:
- $x = Math::BigInt->new(123);
- $y = int($x); # BigInt 123
- $x = Math::BigFloat->new(123.45);
- $y = int($x); # BigInt 123
-
-In all Perl versions you can use C<as_number()> or C<as_int> for the same
-effect:
-
- $x = Math::BigFloat->new(123.45);
- $y = $x->as_number(); # BigInt 123
- $y = $x->as_int(); # ditto
-
-This also works for other subclasses, like Math::String.
+ $x = Math::BigInt->new(123);
+ $y = int($x); # 123 as a Math::BigInt
+ $x = Math::BigFloat->new(123.45);
+ $y = int($x); # 123 as a Math::BigFloat
If you want a real Perl scalar, use C<numify()>:
- $y = $x->numify(); # 123 as scalar
-
-This is seldom necessary, though, because this is done automatically, like
-when you access an array:
+ $y = $x->numify(); # 123 as a scalar
- $z = $array[$x]; # does work automatically
-
-=item length()
+This is seldom necessary, though, because this is done automatically, like when
+you access an array:
-The following will probably not do what you expect:
-
- $c = Math::BigInt->new(123);
- print $c->length(),"\n"; # prints 30
-
-It prints both the number of digits in the number and in the fraction part
-since print calls C<length()> in list context. Use something like:
-
- print scalar $c->length(),"\n"; # prints 3
-
-=item bdiv()
-
-The following will probably not do what you expect:
-
- print $c->bdiv(10000),"\n";
-
-It prints both quotient and remainder since print calls C<bdiv()> in list
-context. Also, C<bdiv()> will modify $c, so be careful. You probably want
-to use
-
- print $c / 10000,"\n";
-
-or, if you want to modify $c instead,
-
- print scalar $c->bdiv(10000),"\n";
-
-The quotient is always the greatest integer less than or equal to the
-real-valued quotient of the two operands, and the remainder (when it is
-non-zero) always has the same sign as the second operand; so, for
-example,
-
- 1 / 4 => ( 0, 1)
- 1 / -4 => (-1,-3)
- -3 / 4 => (-1, 1)
- -3 / -4 => ( 0,-3)
- -11 / 2 => (-5,1)
- 11 /-2 => (-5,-1)
-
-As a consequence, the behavior of the operator % agrees with the
-behavior of Perl's built-in % operator (as documented in the perlop
-manpage), and the equation
-
- $x == ($x / $y) * $y + ($x % $y)
-
-holds true for any $x and $y, which justifies calling the two return
-values of bdiv() the quotient and remainder. The only exception to this rule
-are when $y == 0 and $x is negative, then the remainder will also be
-negative. See below under "infinity handling" for the reasoning behind this.
-
-Perl's 'use integer;' changes the behaviour of % and / for scalars, but will
-not change BigInt's way to do things. This is because under 'use integer' Perl
-will do what the underlying C thinks is right and this is different for each
-system. If you need BigInt's behaving exactly like Perl's 'use integer', bug
-the author to implement it ;)
-
-=item infinity handling
-
-Here are some examples that explain the reasons why certain results occur while
-handling infinity:
-
-The following table shows the result of the division and the remainder, so that
-the equation above holds true. Some "ordinary" cases are strewn in to show more
-clearly the reasoning:
-
- A / B = C, R so that C * B + R = A
- =========================================================
- 5 / 8 = 0, 5 0 * 8 + 5 = 5
- 0 / 8 = 0, 0 0 * 8 + 0 = 0
- 0 / inf = 0, 0 0 * inf + 0 = 0
- 0 /-inf = 0, 0 0 * -inf + 0 = 0
- 5 / inf = 0, 5 0 * inf + 5 = 5
- 5 /-inf = 0, 5 0 * -inf + 5 = 5
- -5/ inf = 0, -5 0 * inf + -5 = -5
- -5/-inf = 0, -5 0 * -inf + -5 = -5
- inf/ 5 = inf, 0 inf * 5 + 0 = inf
- -inf/ 5 = -inf, 0 -inf * 5 + 0 = -inf
- inf/ -5 = -inf, 0 -inf * -5 + 0 = inf
- -inf/ -5 = inf, 0 inf * -5 + 0 = -inf
- 5/ 5 = 1, 0 1 * 5 + 0 = 5
- -5/ -5 = 1, 0 1 * -5 + 0 = -5
- inf/ inf = 1, 0 1 * inf + 0 = inf
- -inf/-inf = 1, 0 1 * -inf + 0 = -inf
- inf/-inf = -1, 0 -1 * -inf + 0 = inf
- -inf/ inf = -1, 0 1 * -inf + 0 = -inf
- 8/ 0 = inf, 8 inf * 0 + 8 = 8
- inf/ 0 = inf, inf inf * 0 + inf = inf
- 0/ 0 = NaN
-
-These cases below violate the "remainder has the sign of the second of the two
-arguments", since they wouldn't match up otherwise.
-
- A / B = C, R so that C * B + R = A
- ========================================================
- -inf/ 0 = -inf, -inf -inf * 0 + inf = -inf
- -8/ 0 = -inf, -8 -inf * 0 + 8 = -8
+ $z = $array[$x]; # does work automatically
=item Modifying and =
Beware of:
- $x = Math::BigFloat->new(5);
- $y = $x;
+ $x = Math::BigFloat->new(5);
+ $y = $x;
-It will not do what you think, e.g. making a copy of $x. Instead it just makes
-a second reference to the B<same> object and stores it in $y. Thus anything
-that modifies $x (except overloaded operators) will modify $y, and vice versa.
-Or in other words, C<=> is only safe if you modify your BigInts only via
-overloaded math. As soon as you use a method call it breaks:
+This makes a second reference to the B<same> object and stores it in $y. Thus
+anything that modifies $x (except overloaded operators) also modifies $y, and
+vice versa. Or in other words, C<=> is only safe if you modify your
+Math::BigInt objects only via overloaded math. As soon as you use a method call
+it breaks:
- $x->bmul(2);
- print "$x, $y\n"; # prints '10, 10'
+ $x->bmul(2);
+ print "$x, $y\n"; # prints '10, 10'
If you want a true copy of $x, use:
- $y = $x->copy();
+ $y = $x->copy();
-You can also chain the calls like this, this will make first a copy and then
+You can also chain the calls like this, this first makes a copy and then
multiply it by 2:
- $y = $x->copy()->bmul(2);
+ $y = $x->copy()->bmul(2);
See also the documentation for overload.pm regarding C<=>.
-=item bpow
-
-C<bpow()> (and the rounding functions) now modifies the first argument and
-returns it, unlike the old code which left it alone and only returned the
-result. This is to be consistent with C<badd()> etc. The first three will
-modify $x, the last one won't:
-
- print bpow($x,$i),"\n"; # modify $x
- print $x->bpow($i),"\n"; # ditto
- print $x **= $i,"\n"; # the same
- print $x ** $i,"\n"; # leave $x alone
-
-The form C<$x **= $y> is faster than C<$x = $x ** $y;>, though.
-
=item Overloading -$x
The following:
- $x = -$x;
+ $x = -$x;
is slower than
- $x->bneg();
+ $x->bneg();
since overload calls C<sub($x,0,1);> instead of C<neg($x)>. The first variant
-needs to preserve $x since it does not know that it later will get overwritten.
+needs to preserve $x since it does not know that it later gets overwritten.
This makes a copy of $x and takes O(N), but $x->bneg() is O(1).
=item Mixing different object types
@@ -5564,80 +6230,58 @@ With overloaded operators, it is the first (dominating) operand that determines
which method is called. Here are some examples showing what actually gets
called in various cases.
- use Math::BigInt;
- use Math::BigFloat;
-
- $mbf = Math::BigFloat->new(5);
- $mbi2 = Math::BigInt->new(5);
- $mbi = Math::BigInt->new(2);
- # what actually gets called:
- $float = $mbf + $mbi; # $mbf->badd($mbi)
- $float = $mbf / $mbi; # $mbf->bdiv($mbi)
- $integer = $mbi + $mbf; # $mbi->badd($mbf)
- $integer = $mbi2 / $mbi; # $mbi2->bdiv($mbi)
- $integer = $mbi2 / $mbf; # $mbi2->bdiv($mbf)
-
-For instance, Math::BigInt->bdiv() will always return a Math::BigInt, regardless of
+ use Math::BigInt;
+ use Math::BigFloat;
+
+ $mbf = Math::BigFloat->new(5);
+ $mbi2 = Math::BigInt->new(5);
+ $mbi = Math::BigInt->new(2);
+ # what actually gets called:
+ $float = $mbf + $mbi; # $mbf->badd($mbi)
+ $float = $mbf / $mbi; # $mbf->bdiv($mbi)
+ $integer = $mbi + $mbf; # $mbi->badd($mbf)
+ $integer = $mbi2 / $mbi; # $mbi2->bdiv($mbi)
+ $integer = $mbi2 / $mbf; # $mbi2->bdiv($mbf)
+
+For instance, Math::BigInt->bdiv() always returns a Math::BigInt, regardless of
whether the second operant is a Math::BigFloat. To get a Math::BigFloat you
either need to call the operation manually, make sure each operand already is a
Math::BigFloat, or cast to that type via Math::BigFloat->new():
- $float = Math::BigFloat->new($mbi2) / $mbi; # = 2.5
+ $float = Math::BigFloat->new($mbi2) / $mbi; # = 2.5
Beware of casting the entire expression, as this would cast the
result, at which point it is too late:
- $float = Math::BigFloat->new($mbi2 / $mbi); # = 2
+ $float = Math::BigFloat->new($mbi2 / $mbi); # = 2
Beware also of the order of more complicated expressions like:
- $integer = ($mbi2 + $mbi) / $mbf; # int / float => int
- $integer = $mbi2 / Math::BigFloat->new($mbi); # ditto
+ $integer = ($mbi2 + $mbi) / $mbf; # int / float => int
+ $integer = $mbi2 / Math::BigFloat->new($mbi); # ditto
If in doubt, break the expression into simpler terms, or cast all operands
to the desired resulting type.
Scalar values are a bit different, since:
- $float = 2 + $mbf;
- $float = $mbf + 2;
+ $float = 2 + $mbf;
+ $float = $mbf + 2;
-will both result in the proper type due to the way the overloaded math works.
+both result in the proper type due to the way the overloaded math works.
This section also applies to other overloaded math packages, like Math::String.
One solution to you problem might be autoupgrading|upgrading. See the
pragmas L<bignum>, L<bigint> and L<bigrat> for an easy way to do this.
-=item bsqrt()
-
-C<bsqrt()> works only good if the result is a big integer, e.g. the square
-root of 144 is 12, but from 12 the square root is 3, regardless of rounding
-mode. The reason is that the result is always truncated to an integer.
-
-If you want a better approximation of the square root, then use:
-
- $x = Math::BigFloat->new(12);
- Math::BigFloat->precision(0);
- Math::BigFloat->round_mode('even');
- print $x->copy->bsqrt(),"\n"; # 4
-
- Math::BigFloat->precision(2);
- print $x->bsqrt(),"\n"; # 3.46
- print $x->bsqrt(3),"\n"; # 3.464
-
-=item brsft()
-
-For negative numbers in base see also L<brsft|/brsft()>.
-
=back
=head1 BUGS
Please report any bugs or feature requests to
C<bug-math-bigint at rt.cpan.org>, or through the web interface at
-L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
-(requires login).
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt> (requires login).
We will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm b/Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
index 1a7e4af9e9b..5717e764e10 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt/Calc.pm
@@ -4,8 +4,12 @@ use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999715';
-$VERSION = eval $VERSION;
+use Carp;
+use Math::BigInt::Lib;
+
+our $VERSION = '1.999806';
+
+our @ISA = ('Math::BigInt::Lib');
# Package to store unsigned big integers in decimal and do math with them
@@ -33,211 +37,218 @@ $VERSION = eval $VERSION;
# announce that we are compatible with MBI v1.83 and up
sub api_version () { 2; }
-
+
# constants for easier life
-my ($BASE,$BASE_LEN,$RBASE,$MAX_VAL);
-my ($AND_BITS,$XOR_BITS,$OR_BITS);
-my ($AND_MASK,$XOR_MASK,$OR_MASK);
-
-sub _base_len
- {
- # Set/get the BASE_LEN and assorted other, connected values.
- # Used only by the testsuite, the set variant is used only by the BEGIN
- # block below:
- shift;
-
- my ($b, $int) = @_;
- if (defined $b)
- {
- # avoid redefinitions
- undef &_mul;
- undef &_div;
-
- if ($] >= 5.008 && $int && $b > 7)
- {
- $BASE_LEN = $b;
- *_mul = \&_mul_use_div_64;
- *_div = \&_div_use_div_64;
- $BASE = int("1e".$BASE_LEN);
- $MAX_VAL = $BASE-1;
- return $BASE_LEN unless wantarray;
- return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL,);
- }
-
- # find whether we can use mul or div in mul()/div()
- $BASE_LEN = $b+1;
- my $caught = 0;
- while (--$BASE_LEN > 5)
- {
- $BASE = int("1e".$BASE_LEN);
- $RBASE = abs('1e-'.$BASE_LEN); # see USE_MUL
- $caught = 0;
- $caught += 1 if (int($BASE * $RBASE) != 1); # should be 1
- $caught += 2 if (int($BASE / $BASE) != 1); # should be 1
- last if $caught != 3;
- }
- $BASE = int("1e".$BASE_LEN);
- $RBASE = abs('1e-'.$BASE_LEN); # see USE_MUL
- $MAX_VAL = $BASE-1;
-
- # ($caught & 1) != 0 => cannot use MUL
- # ($caught & 2) != 0 => cannot use DIV
- if ($caught == 2) # 2
- {
- # must USE_MUL since we cannot use DIV
- *_mul = \&_mul_use_mul;
- *_div = \&_div_use_mul;
- }
- else # 0 or 1
- {
- # can USE_DIV instead
- *_mul = \&_mul_use_div;
- *_div = \&_div_use_div;
- }
- }
- return $BASE_LEN unless wantarray;
- return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL);
- }
+my ($BASE, $BASE_LEN, $RBASE, $MAX_VAL);
+my ($AND_BITS, $XOR_BITS, $OR_BITS);
+my ($AND_MASK, $XOR_MASK, $OR_MASK);
+
+sub _base_len {
+ # Set/get the BASE_LEN and assorted other, related values.
+ # Used only by the testsuite, the set variant is used only by the BEGIN
+ # block below:
+
+ my ($class, $b, $int) = @_;
+ if (defined $b) {
+ # avoid redefinitions
+ undef &_mul;
+ undef &_div;
+
+ if ($] >= 5.008 && $int && $b > 7) {
+ $BASE_LEN = $b;
+ *_mul = \&_mul_use_div_64;
+ *_div = \&_div_use_div_64;
+ $BASE = int("1e" . $BASE_LEN);
+ $MAX_VAL = $BASE-1;
+ return $BASE_LEN unless wantarray;
+ return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL);
+ }
+
+ # find whether we can use mul or div in mul()/div()
+ $BASE_LEN = $b + 1;
+ my $caught = 0;
+ while (--$BASE_LEN > 5) {
+ $BASE = int("1e" . $BASE_LEN);
+ $RBASE = abs('1e-' . $BASE_LEN); # see USE_MUL
+ $caught = 0;
+ $caught += 1 if (int($BASE * $RBASE) != 1); # should be 1
+ $caught += 2 if (int($BASE / $BASE) != 1); # should be 1
+ last if $caught != 3;
+ }
+ $BASE = int("1e" . $BASE_LEN);
+ $RBASE = abs('1e-' . $BASE_LEN); # see USE_MUL
+ $MAX_VAL = $BASE-1;
+
+ # ($caught & 1) != 0 => cannot use MUL
+ # ($caught & 2) != 0 => cannot use DIV
+ if ($caught == 2) # 2
+ {
+ # must USE_MUL since we cannot use DIV
+ *_mul = \&_mul_use_mul;
+ *_div = \&_div_use_mul;
+ } else # 0 or 1
+ {
+ # can USE_DIV instead
+ *_mul = \&_mul_use_div;
+ *_div = \&_div_use_div;
+ }
+ }
+ return $BASE_LEN unless wantarray;
+ return ($BASE_LEN, $BASE, $AND_BITS, $XOR_BITS, $OR_BITS, $BASE_LEN, $MAX_VAL);
+}
sub _new {
# Given a string representing an integer, returns a reference to an array
# of integers, where each integer represents a chunk of the original input
- # integer. Assumes normalized value as input.
+ # integer.
- my ($proto, $str) = @_;
+ my ($class, $str) = @_;
+ #unless ($str =~ /^([1-9]\d*|0)\z/) {
+ # require Carp;
+ # Carp::croak("Invalid input string '$str'");
+ #}
my $input_len = length($str) - 1;
# Shortcut for small numbers.
- return [ int($str) ] if $input_len < $BASE_LEN;
+ return bless [ $str ], $class if $input_len < $BASE_LEN;
my $format = "a" . (($input_len % $BASE_LEN) + 1);
$format .= $] < 5.008 ? "a$BASE_LEN" x int($input_len / $BASE_LEN)
: "(a$BASE_LEN)*";
- [ reverse(map { 0 + $_ } unpack($format, $str)) ];
+ my $self = [ reverse(map { 0 + $_ } unpack($format, $str)) ];
+ return bless $self, $class;
}
-BEGIN
- {
- # from Daniel Pfeiffer: determine largest group of digits that is precisely
- # multipliable with itself plus carry
- # Test now changed to expect the proper pattern, not a result off by 1 or 2
- my ($e, $num) = 3; # lowest value we will use is 3+1-1 = 3
- do {
- $num = '9' x ++$e;
- $num *= $num + 1;
- } while $num =~ /9{$e}0{$e}/; # must be a certain pattern
- $e--; # last test failed, so retract one step
- # the limits below brush the problems with the test above under the rug:
- # the test should be able to find the proper $e automatically
- $e = 5 if $^O =~ /^uts/; # UTS get's some special treatment
- $e = 5 if $^O =~ /^unicos/; # unicos is also problematic (6 seems to work
- # there, but we play safe)
-
- my $int = 0;
- if ($e > 7)
- {
+BEGIN {
+ # from Daniel Pfeiffer: determine largest group of digits that is precisely
+ # multipliable with itself plus carry
+ # Test now changed to expect the proper pattern, not a result off by 1 or 2
+ my ($e, $num) = 3; # lowest value we will use is 3+1-1 = 3
+ do {
+ $num = '9' x ++$e;
+ $num *= $num + 1;
+ } while $num =~ /9{$e}0{$e}/; # must be a certain pattern
+ $e--; # last test failed, so retract one step
+ # the limits below brush the problems with the test above under the rug:
+ # the test should be able to find the proper $e automatically
+ $e = 5 if $^O =~ /^uts/; # UTS get's some special treatment
+ $e = 5 if $^O =~ /^unicos/; # unicos is also problematic (6 seems to work
+ # there, but we play safe)
+
+ my $int = 0;
+ if ($e > 7) {
+ use integer;
+ my $e1 = 7;
+ $num = 7;
+ do {
+ $num = ('9' x ++$e1) + 0;
+ $num *= $num + 1;
+ } while ("$num" =~ /9{$e1}0{$e1}/); # must be a certain pattern
+ $e1--; # last test failed, so retract one step
+ if ($e1 > 7) {
+ $int = 1;
+ $e = $e1;
+ }
+ }
+
+ __PACKAGE__ -> _base_len($e, $int); # set and store
+
use integer;
- my $e1 = 7;
- $num = 7;
- do
- {
- $num = ('9' x ++$e1) + 0;
- $num *= $num + 1;
- } while ("$num" =~ /9{$e1}0{$e1}/); # must be a certain pattern
- $e1--; # last test failed, so retract one step
- if ($e1 > 7)
- {
- $int = 1; $e = $e1;
- }
- }
-
- __PACKAGE__->_base_len($e,$int); # set and store
-
- use integer;
- # find out how many bits _and, _or and _xor can take (old default = 16)
- # I don't think anybody has yet 128 bit scalars, so let's play safe.
- local $^W = 0; # don't warn about 'nonportable number'
- $AND_BITS = 15; $XOR_BITS = 15; $OR_BITS = 15;
-
- # find max bits, we will not go higher than numberofbits that fit into $BASE
- # to make _and etc simpler (and faster for smaller, slower for large numbers)
- my $max = 16;
- while (2 ** $max < $BASE) { $max++; }
- {
- no integer;
- $max = 16 if $] < 5.006; # older Perls might not take >16 too well
- }
- my ($x,$y,$z);
- do {
- $AND_BITS++;
- $x = CORE::oct('0b' . '1' x $AND_BITS); $y = $x & $x;
- $z = (2 ** $AND_BITS) - 1;
+ # find out how many bits _and, _or and _xor can take (old default = 16)
+ # I don't think anybody has yet 128 bit scalars, so let's play safe.
+ local $^W = 0; # don't warn about 'nonportable number'
+ $AND_BITS = 15;
+ $XOR_BITS = 15;
+ $OR_BITS = 15;
+
+ # find max bits, we will not go higher than numberofbits that fit into $BASE
+ # to make _and etc simpler (and faster for smaller, slower for large numbers)
+ my $max = 16;
+ while (2 ** $max < $BASE) {
+ $max++;
+ }
+ {
+ no integer;
+ $max = 16 if $] < 5.006; # older Perls might not take >16 too well
+ }
+ my ($x, $y, $z);
+
+ do {
+ $AND_BITS++;
+ $x = CORE::oct('0b' . '1' x $AND_BITS);
+ $y = $x & $x;
+ $z = (2 ** $AND_BITS) - 1;
} while ($AND_BITS < $max && $x == $z && $y == $x);
- $AND_BITS --; # retreat one step
- do {
- $XOR_BITS++;
- $x = CORE::oct('0b' . '1' x $XOR_BITS); $y = $x ^ 0;
- $z = (2 ** $XOR_BITS) - 1;
+ $AND_BITS --; # retreat one step
+
+ do {
+ $XOR_BITS++;
+ $x = CORE::oct('0b' . '1' x $XOR_BITS);
+ $y = $x ^ 0;
+ $z = (2 ** $XOR_BITS) - 1;
} while ($XOR_BITS < $max && $x == $z && $y == $x);
- $XOR_BITS --; # retreat one step
- do {
- $OR_BITS++;
- $x = CORE::oct('0b' . '1' x $OR_BITS); $y = $x | $x;
- $z = (2 ** $OR_BITS) - 1;
+ $XOR_BITS --; # retreat one step
+
+ do {
+ $OR_BITS++;
+ $x = CORE::oct('0b' . '1' x $OR_BITS);
+ $y = $x | $x;
+ $z = (2 ** $OR_BITS) - 1;
} while ($OR_BITS < $max && $x == $z && $y == $x);
- $OR_BITS --; # retreat one step
-
- $AND_MASK = __PACKAGE__->_new( ( 2 ** $AND_BITS ));
- $XOR_MASK = __PACKAGE__->_new( ( 2 ** $XOR_BITS ));
- $OR_MASK = __PACKAGE__->_new( ( 2 ** $OR_BITS ));
+ $OR_BITS--; # retreat one step
+
+ $AND_MASK = __PACKAGE__->_new(( 2 ** $AND_BITS ));
+ $XOR_MASK = __PACKAGE__->_new(( 2 ** $XOR_BITS ));
+ $OR_MASK = __PACKAGE__->_new(( 2 ** $OR_BITS ));
- # We can compute the approximate length no faster than the real length:
- *_alen = \&_len;
- }
+ # We can compute the approximate length no faster than the real length:
+ *_alen = \&_len;
+}
###############################################################################
-sub _zero
- {
- # create a zero
- [ 0 ];
- }
-
-sub _one
- {
- # create a one
- [ 1 ];
- }
-
-sub _two
- {
- # create a two (used internally for shifting)
- [ 2 ];
- }
-
-sub _ten
- {
- # create a 10 (used internally for shifting)
- [ 10 ];
- }
-
-sub _1ex
- {
- # create a 1Ex
- my $rem = $_[1] % $BASE_LEN; # remainder
- my $parts = $_[1] / $BASE_LEN; # parts
-
- # 000000, 000000, 100
- [ (0) x $parts, '1' . ('0' x $rem) ];
- }
-
-sub _copy
- {
- # make a true copy
- [ @{$_[1]} ];
- }
+sub _zero {
+ # create a zero
+ my $class = shift;
+ return bless [ 0 ], $class;
+}
+
+sub _one {
+ # create a one
+ my $class = shift;
+ return bless [ 1 ], $class;
+}
+
+sub _two {
+ # create a two
+ my $class = shift;
+ return bless [ 2 ], $class;
+}
+
+sub _ten {
+ # create a 10
+ my $class = shift;
+ bless [ 10 ], $class;
+}
+
+sub _1ex {
+ # create a 1Ex
+ my $class = shift;
+
+ my $rem = $_[0] % $BASE_LEN; # remainder
+ my $parts = $_[0] / $BASE_LEN; # parts
+
+ # 000000, 000000, 100
+ bless [ (0) x $parts, '1' . ('0' x $rem) ], $class;
+}
+
+sub _copy {
+ # make a true copy
+ my $class = shift;
+ return bless [ @{ $_[0] } ], $class;
+}
# catch and throw away
sub import { }
@@ -250,9 +261,9 @@ sub _str {
# format is always normalized, i.e., no leading zeros.
my $ary = $_[1];
- my $idx = $#$ary; # index of last element
+ my $idx = $#$ary; # index of last element
- if ($idx < 0) { # should not happen
+ if ($idx < 0) { # should not happen
require Carp;
Carp::croak("$_[1] has no elements");
}
@@ -260,24 +271,21 @@ sub _str {
# Handle first one differently, since it should not have any leading zeros.
my $ret = int($ary->[$idx]);
if ($idx > 0) {
- $idx--;
- # Interestingly, the pre-padd method uses more time
- # the old grep variant takes longer (14 vs. 10 sec)
+ # Interestingly, the pre-padd method uses more time.
+ # The old grep variant takes longer (14 vs. 10 sec).
my $z = '0' x ($BASE_LEN - 1);
- while ($idx >= 0) {
+ while (--$idx >= 0) {
$ret .= substr($z . $ary->[$idx], -$BASE_LEN);
- $idx--;
}
}
$ret;
}
-sub _num
- {
+sub _num {
# Make a Perl scalar number (int/float) from a BigInt object.
my $x = $_[1];
- return 0 + $x->[0] if scalar @$x == 1; # below $BASE
+ return $x->[0] if @$x == 1; # below $BASE
# Start with the most significant element and work towards the least
# significant element. Avoid multiplying "inf" (which happens if the number
@@ -290,7 +298,7 @@ sub _num
$num += $x -> [$i];
}
return $num;
- }
+}
##############################################################################
# actual math code
@@ -304,9 +312,13 @@ sub _add {
my ($c, $x, $y) = @_;
- return $x if @$y == 1 && $y->[0] == 0; # $x + 0 => $x
- if (@$x == 1 && $x->[0] == 0) { # 0 + $y => $y->copy
- # Twice as slow as $x = [ @$y ], but necessary to modify $x in-place.
+ # $x + 0 => $x
+
+ return $x if @$y == 1 && $y->[0] == 0;
+
+ # 0 + $y => $y->copy
+
+ if (@$x == 1 && $x->[0] == 0) {
@$x = @$y;
return $x;
}
@@ -334,10 +346,10 @@ sub _inc {
my ($c, $x) = @_;
for my $i (@$x) {
- return $x if ($i += 1) < $BASE; # early out
- $i = 0; # overflow, next
+ return $x if ($i += 1) < $BASE; # early out
+ $i = 0; # overflow, next
}
- push @$x, 1 if $x->[-1] == 0; # last overflowed, so extend
+ push @$x, 1 if $x->[-1] == 0; # last overflowed, so extend
$x;
}
@@ -346,12 +358,12 @@ sub _dec {
# Sub 1 from $x, modify $x in place
my ($c, $x) = @_;
- my $MAX = $BASE - 1; # since MAX_VAL based on BASE
+ my $MAX = $BASE - 1; # since MAX_VAL based on BASE
for my $i (@$x) {
- last if ($i -= 1) >= 0; # early out
- $i = $MAX; # underflow, next
+ last if ($i -= 1) >= 0; # early out
+ $i = $MAX; # underflow, next
}
- pop @$x if $x->[-1] == 0 && @$x > 1; # last underflowed (but leave 0)
+ pop @$x if $x->[-1] == 0 && @$x > 1; # last underflowed (but leave 0)
$x;
}
@@ -386,783 +398,706 @@ sub _sub {
__strip_zeros($sy);
}
-sub _mul_use_mul
- {
- # (ref to int_num_array, ref to int_num_array)
- # multiply two numbers in internal representation
- # modifies first arg, second need not be different from first
- my ($c,$xv,$yv) = @_;
-
- if (@$yv == 1)
- {
- # shortcut for two very short numbers (improved by Nathan Zook)
- # works also if xv and yv are the same reference, and handles also $x == 0
- if (@$xv == 1)
- {
- if (($xv->[0] *= $yv->[0]) >= $BASE)
- {
- $xv->[0] = $xv->[0] - ($xv->[1] = int($xv->[0] * $RBASE)) * $BASE;
- };
- return $xv;
- }
- # $x * 0 => 0
- if ($yv->[0] == 0)
- {
- @$xv = (0);
- return $xv;
- }
- # multiply a large number a by a single element one, so speed up
- my $y = $yv->[0]; my $car = 0;
- foreach my $i (@$xv)
- {
- $i = $i * $y + $car; $car = int($i * $RBASE); $i -= $car * $BASE;
- }
- push @$xv, $car if $car != 0;
- return $xv;
- }
- # shortcut for result $x == 0 => result = 0
- return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
-
- # since multiplying $x with $x fails, make copy in this case
- $yv = [@$xv] if $xv == $yv; # same references?
-
- my @prod = (); my ($prod,$car,$cty,$xi,$yi);
-
- for $xi (@$xv)
- {
- $car = 0; $cty = 0;
-
- # slow variant
-# for $yi (@$yv)
-# {
-# $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
-# $prod[$cty++] =
-# $prod - ($car = int($prod * RBASE)) * $BASE; # see USE_MUL
-# }
-# $prod[$cty] += $car if $car; # need really to check for 0?
-# $xi = shift @prod;
-
- # faster variant
- # looping through this if $xi == 0 is silly - so optimize it away!
- $xi = (shift @prod || 0), next if $xi == 0;
- for $yi (@$yv)
- {
- $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
-## this is actually a tad slower
-## $prod = $prod[$cty]; $prod += ($car + $xi * $yi); # no ||0 here
- $prod[$cty++] =
- $prod - ($car = int($prod * $RBASE)) * $BASE; # see USE_MUL
- }
- $prod[$cty] += $car if $car; # need really to check for 0?
- $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
- }
- push @$xv, @prod;
- # can't have leading zeros
-# __strip_zeros($xv);
- $xv;
- }
-
-sub _mul_use_div_64
- {
- # (ref to int_num_array, ref to int_num_array)
- # multiply two numbers in internal representation
- # modifies first arg, second need not be different from first
- # works for 64 bit integer with "use integer"
- my ($c,$xv,$yv) = @_;
-
- use integer;
- if (@$yv == 1)
- {
- # shortcut for two small numbers, also handles $x == 0
- if (@$xv == 1)
- {
- # shortcut for two very short numbers (improved by Nathan Zook)
- # works also if xv and yv are the same reference, and handles also $x == 0
- if (($xv->[0] *= $yv->[0]) >= $BASE)
- {
- $xv->[0] =
- $xv->[0] - ($xv->[1] = $xv->[0] / $BASE) * $BASE;
- };
- return $xv;
- }
- # $x * 0 => 0
- if ($yv->[0] == 0)
- {
- @$xv = (0);
- return $xv;
- }
- # multiply a large number a by a single element one, so speed up
- my $y = $yv->[0]; my $car = 0;
- foreach my $i (@$xv)
- {
- #$i = $i * $y + $car; $car = $i / $BASE; $i -= $car * $BASE;
- $i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE;
- }
- push @$xv, $car if $car != 0;
- return $xv;
- }
- # shortcut for result $x == 0 => result = 0
- return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
-
- # since multiplying $x with $x fails, make copy in this case
- $yv = [@$xv] if $xv == $yv; # same references?
-
- my @prod = (); my ($prod,$car,$cty,$xi,$yi);
- for $xi (@$xv)
- {
- $car = 0; $cty = 0;
- # looping through this if $xi == 0 is silly - so optimize it away!
- $xi = (shift @prod || 0), next if $xi == 0;
- for $yi (@$yv)
- {
- $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
- $prod[$cty++] = $prod - ($car = $prod / $BASE) * $BASE;
- }
- $prod[$cty] += $car if $car; # need really to check for 0?
- $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
- }
- push @$xv, @prod;
- $xv;
- }
-
-sub _mul_use_div
- {
- # (ref to int_num_array, ref to int_num_array)
- # multiply two numbers in internal representation
- # modifies first arg, second need not be different from first
- my ($c,$xv,$yv) = @_;
-
- if (@$yv == 1)
- {
- # shortcut for two small numbers, also handles $x == 0
- if (@$xv == 1)
- {
- # shortcut for two very short numbers (improved by Nathan Zook)
- # works also if xv and yv are the same reference, and handles also $x == 0
- if (($xv->[0] *= $yv->[0]) >= $BASE)
- {
- $xv->[0] =
- $xv->[0] - ($xv->[1] = int($xv->[0] / $BASE)) * $BASE;
- };
- return $xv;
- }
- # $x * 0 => 0
- if ($yv->[0] == 0)
- {
- @$xv = (0);
- return $xv;
- }
- # multiply a large number a by a single element one, so speed up
- my $y = $yv->[0]; my $car = 0;
- foreach my $i (@$xv)
- {
- $i = $i * $y + $car; $car = int($i / $BASE); $i -= $car * $BASE;
- # This (together with use integer;) does not work on 32-bit Perls
- #$i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE;
- }
- push @$xv, $car if $car != 0;
- return $xv;
- }
- # shortcut for result $x == 0 => result = 0
- return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
-
- # since multiplying $x with $x fails, make copy in this case
- $yv = [@$xv] if $xv == $yv; # same references?
-
- my @prod = (); my ($prod,$car,$cty,$xi,$yi);
- for $xi (@$xv)
- {
- $car = 0; $cty = 0;
- # looping through this if $xi == 0 is silly - so optimize it away!
- $xi = (shift @prod || 0), next if $xi == 0;
- for $yi (@$yv)
- {
- $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
- $prod[$cty++] = $prod - ($car = int($prod / $BASE)) * $BASE;
- }
- $prod[$cty] += $car if $car; # need really to check for 0?
- $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
- }
- push @$xv, @prod;
- # can't have leading zeros
-# __strip_zeros($xv);
- $xv;
- }
-
-sub _div_use_mul
- {
- # ref to array, ref to array, modify first array and return remainder if
- # in list context
-
- # see comments in _div_use_div() for more explanations
-
- my ($c,$x,$yorg) = @_;
-
- # the general div algorithm here is about O(N*N) and thus quite slow, so
- # we first check for some special cases and use shortcuts to handle them.
-
- # This works, because we store the numbers in a chunked format where each
- # element contains 5..7 digits (depending on system).
-
- # if both numbers have only one element:
- if (@$x == 1 && @$yorg == 1)
- {
- # shortcut, $yorg and $x are two small numbers
- if (wantarray)
- {
- my $r = [ $x->[0] % $yorg->[0] ];
- $x->[0] = int($x->[0] / $yorg->[0]);
- return ($x,$r);
- }
- else
- {
- $x->[0] = int($x->[0] / $yorg->[0]);
- return $x;
- }
- }
-
- # if x has more than one, but y has only one element:
- if (@$yorg == 1)
- {
- my $rem;
- $rem = _mod($c,[ @$x ],$yorg) if wantarray;
-
- # shortcut, $y is < $BASE
- my $j = scalar @$x; my $r = 0;
- my $y = $yorg->[0]; my $b;
- while ($j-- > 0)
- {
- $b = $r * $BASE + $x->[$j];
- $x->[$j] = int($b/$y);
- $r = $b % $y;
- }
- pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
- return ($x,$rem) if wantarray;
- return $x;
+sub _mul_use_mul {
+ # (ref to int_num_array, ref to int_num_array)
+ # multiply two numbers in internal representation
+ # modifies first arg, second need not be different from first
+ my ($c, $xv, $yv) = @_;
+
+ if (@$yv == 1) {
+ # shortcut for two very short numbers (improved by Nathan Zook)
+ # works also if xv and yv are the same reference, and handles also $x == 0
+ if (@$xv == 1) {
+ if (($xv->[0] *= $yv->[0]) >= $BASE) {
+ $xv->[0] = $xv->[0] - ($xv->[1] = int($xv->[0] * $RBASE)) * $BASE;
+ }
+ ;
+ return $xv;
+ }
+ # $x * 0 => 0
+ if ($yv->[0] == 0) {
+ @$xv = (0);
+ return $xv;
+ }
+ # multiply a large number a by a single element one, so speed up
+ my $y = $yv->[0];
+ my $car = 0;
+ foreach my $i (@$xv) {
+ $i = $i * $y + $car;
+ $car = int($i * $RBASE);
+ $i -= $car * $BASE;
+ }
+ push @$xv, $car if $car != 0;
+ return $xv;
+ }
+ # shortcut for result $x == 0 => result = 0
+ return $xv if @$xv == 1 && $xv->[0] == 0;
+
+ # since multiplying $x with $x fails, make copy in this case
+ $yv = [ @$xv ] if $xv == $yv; # same references?
+
+ my @prod = ();
+ my ($prod, $car, $cty, $xi, $yi);
+
+ for $xi (@$xv) {
+ $car = 0;
+ $cty = 0;
+
+ # slow variant
+ # for $yi (@$yv)
+ # {
+ # $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
+ # $prod[$cty++] =
+ # $prod - ($car = int($prod * RBASE)) * $BASE; # see USE_MUL
+ # }
+ # $prod[$cty] += $car if $car; # need really to check for 0?
+ # $xi = shift @prod;
+
+ # faster variant
+ # looping through this if $xi == 0 is silly - so optimize it away!
+ $xi = (shift @prod || 0), next if $xi == 0;
+ for $yi (@$yv) {
+ $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
+ ## this is actually a tad slower
+ ## $prod = $prod[$cty]; $prod += ($car + $xi * $yi); # no ||0 here
+ $prod[$cty++] =
+ $prod - ($car = int($prod * $RBASE)) * $BASE; # see USE_MUL
+ }
+ $prod[$cty] += $car if $car; # need really to check for 0?
+ $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
}
+ push @$xv, @prod;
+ # can't have leading zeros
+ # __strip_zeros($xv);
+ $xv;
+}
- # now x and y have more than one element
+sub _mul_use_div_64 {
+ # (ref to int_num_array, ref to int_num_array)
+ # multiply two numbers in internal representation
+ # modifies first arg, second need not be different from first
+ # works for 64 bit integer with "use integer"
+ my ($c, $xv, $yv) = @_;
- # check whether y has more elements than x, if yet, the result will be 0
- if (@$yorg > @$x)
- {
- my $rem;
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to original array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x; # only x, which is [0] now
- }
- # check whether the numbers have the same number of elements, in that case
- # the result will fit into one element and can be computed efficiently
- if (@$yorg == @$x)
- {
- my $rem;
- # if $yorg has more digits than $x (it's leading element is longer than
- # the one from $x), the result will also be 0:
- if (length(int($yorg->[-1])) > length(int($x->[-1])))
- {
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to org array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x;
- }
- # now calculate $x / $yorg
- if (length(int($yorg->[-1])) == length(int($x->[-1])))
- {
- # same length, so make full compare
-
- my $a = 0; my $j = scalar @$x - 1;
- # manual way (abort if unequal, good for early ne)
- while ($j >= 0)
- {
- last if ($a = $x->[$j] - $yorg->[$j]); $j--;
+ use integer;
+ if (@$yv == 1) {
+ # shortcut for two small numbers, also handles $x == 0
+ if (@$xv == 1) {
+ # shortcut for two very short numbers (improved by Nathan Zook)
+ # works also if xv and yv are the same reference, and handles also $x == 0
+ if (($xv->[0] *= $yv->[0]) >= $BASE) {
+ $xv->[0] =
+ $xv->[0] - ($xv->[1] = $xv->[0] / $BASE) * $BASE;
+ }
+ return $xv;
}
- # $a contains the result of the compare between X and Y
- # a < 0: x < y, a == 0: x == y, a > 0: x > y
- if ($a <= 0)
- {
- $rem = [ 0 ]; # a = 0 => x == y => rem 0
- $rem = [@$x] if $a != 0; # a < 0 => x < y => rem = x
- splice(@$x,1); # keep single element
- $x->[0] = 0; # if $a < 0
- $x->[0] = 1 if $a == 0; # $x == $y
- return ($x,$rem) if wantarray;
- return $x;
+ # $x * 0 => 0
+ if ($yv->[0] == 0) {
+ @$xv = (0);
+ return $xv;
+ }
+ # multiply a large number a by a single element one, so speed up
+ my $y = $yv->[0];
+ my $car = 0;
+ foreach my $i (@$xv) {
+ #$i = $i * $y + $car; $car = $i / $BASE; $i -= $car * $BASE;
+ $i = $i * $y + $car;
+ $i -= ($car = $i / $BASE) * $BASE;
+ }
+ push @$xv, $car if $car != 0;
+ return $xv;
+ }
+ # shortcut for result $x == 0 => result = 0
+ return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
+
+ # since multiplying $x with $x fails, make copy in this case
+ $yv = $c->_copy($xv) if $xv == $yv; # same references?
+
+ my @prod = ();
+ my ($prod, $car, $cty, $xi, $yi);
+ for $xi (@$xv) {
+ $car = 0;
+ $cty = 0;
+ # looping through this if $xi == 0 is silly - so optimize it away!
+ $xi = (shift @prod || 0), next if $xi == 0;
+ for $yi (@$yv) {
+ $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
+ $prod[$cty++] = $prod - ($car = $prod / $BASE) * $BASE;
}
- # $x >= $y, so proceed normally
- }
+ $prod[$cty] += $car if $car; # need really to check for 0?
+ $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
}
+ push @$xv, @prod;
+ $xv;
+}
- # all other cases:
+sub _mul_use_div {
+ # (ref to int_num_array, ref to int_num_array)
+ # multiply two numbers in internal representation
+ # modifies first arg, second need not be different from first
+ my ($c, $xv, $yv) = @_;
+
+ if (@$yv == 1) {
+ # shortcut for two small numbers, also handles $x == 0
+ if (@$xv == 1) {
+ # shortcut for two very short numbers (improved by Nathan Zook)
+ # works also if xv and yv are the same reference, and handles also $x == 0
+ if (($xv->[0] *= $yv->[0]) >= $BASE) {
+ $xv->[0] =
+ $xv->[0] - ($xv->[1] = int($xv->[0] / $BASE)) * $BASE;
+ }
+ ;
+ return $xv;
+ }
+ # $x * 0 => 0
+ if ($yv->[0] == 0) {
+ @$xv = (0);
+ return $xv;
+ }
+ # multiply a large number a by a single element one, so speed up
+ my $y = $yv->[0];
+ my $car = 0;
+ foreach my $i (@$xv) {
+ $i = $i * $y + $car;
+ $car = int($i / $BASE);
+ $i -= $car * $BASE;
+ # This (together with use integer;) does not work on 32-bit Perls
+ #$i = $i * $y + $car; $i -= ($car = $i / $BASE) * $BASE;
+ }
+ push @$xv, $car if $car != 0;
+ return $xv;
+ }
+ # shortcut for result $x == 0 => result = 0
+ return $xv if ( ((@$xv == 1) && ($xv->[0] == 0)) );
+
+ # since multiplying $x with $x fails, make copy in this case
+ $yv = $c->_copy($xv) if $xv == $yv; # same references?
+
+ my @prod = ();
+ my ($prod, $car, $cty, $xi, $yi);
+ for $xi (@$xv) {
+ $car = 0;
+ $cty = 0;
+ # looping through this if $xi == 0 is silly - so optimize it away!
+ $xi = (shift @prod || 0), next if $xi == 0;
+ for $yi (@$yv) {
+ $prod = $xi * $yi + ($prod[$cty] || 0) + $car;
+ $prod[$cty++] = $prod - ($car = int($prod / $BASE)) * $BASE;
+ }
+ $prod[$cty] += $car if $car; # need really to check for 0?
+ $xi = shift @prod || 0; # || 0 makes v5.005_3 happy
+ }
+ push @$xv, @prod;
+ # can't have leading zeros
+ # __strip_zeros($xv);
+ $xv;
+}
- my $y = [ @$yorg ]; # always make copy to preserve
+sub _div_use_mul {
+ # ref to array, ref to array, modify first array and return remainder if
+ # in list context
- my ($car,$bar,$prd,$dd,$xi,$yi,@q,$v2,$v1,@d,$tmp,$q,$u2,$u1,$u0);
+ # see comments in _div_use_div() for more explanations
- $car = $bar = $prd = 0;
- if (($dd = int($BASE/($y->[-1]+1))) != 1)
- {
- for $xi (@$x)
- {
- $xi = $xi * $dd + $car;
- $xi -= ($car = int($xi * $RBASE)) * $BASE; # see USE_MUL
- }
- push(@$x, $car); $car = 0;
- for $yi (@$y)
- {
- $yi = $yi * $dd + $car;
- $yi -= ($car = int($yi * $RBASE)) * $BASE; # see USE_MUL
- }
- }
- else
- {
- push(@$x, 0);
- }
- @q = (); ($v2,$v1) = @$y[-2,-1];
- $v2 = 0 unless $v2;
- while ($#$x > $#$y)
- {
- ($u2,$u1,$u0) = @$x[-3..-1];
- $u2 = 0 unless $u2;
- #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
- # if $v1 == 0;
- $q = (($u0 == $v1) ? $MAX_VAL : int(($u0*$BASE+$u1)/$v1));
- --$q while ($v2*$q > ($u0*$BASE+$u1-$q*$v1)*$BASE+$u2);
- if ($q)
- {
- ($car, $bar) = (0,0);
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $prd = $q * $y->[$yi] + $car;
- $prd -= ($car = int($prd * $RBASE)) * $BASE; # see USE_MUL
- $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
- }
- if ($x->[-1] < $car + $bar)
- {
- $car = 0; --$q;
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $x->[$xi] -= $BASE
- if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
- }
- }
- }
- pop(@$x);
- unshift(@q, $q);
- }
- if (wantarray)
- {
- @d = ();
- if ($dd != 1)
- {
- $car = 0;
- for $xi (reverse @$x)
- {
- $prd = $car * $BASE + $xi;
- $car = $prd - ($tmp = int($prd / $dd)) * $dd; # see USE_MUL
- unshift(@d, $tmp);
- }
- }
- else
- {
- @d = @$x;
- }
- @$x = @q;
- my $d = \@d;
- __strip_zeros($x);
- __strip_zeros($d);
- return ($x,$d);
- }
- @$x = @q;
- __strip_zeros($x);
- $x;
- }
-
-sub _div_use_div_64
- {
- # ref to array, ref to array, modify first array and return remainder if
- # in list context
- # This version works on 64 bit integers
- my ($c,$x,$yorg) = @_;
-
- use integer;
- # the general div algorithm here is about O(N*N) and thus quite slow, so
- # we first check for some special cases and use shortcuts to handle them.
-
- # This works, because we store the numbers in a chunked format where each
- # element contains 5..7 digits (depending on system).
-
- # if both numbers have only one element:
- if (@$x == 1 && @$yorg == 1)
- {
- # shortcut, $yorg and $x are two small numbers
- if (wantarray)
- {
- my $r = [ $x->[0] % $yorg->[0] ];
- $x->[0] = int($x->[0] / $yorg->[0]);
- return ($x,$r);
- }
- else
- {
- $x->[0] = int($x->[0] / $yorg->[0]);
- return $x;
- }
- }
- # if x has more than one, but y has only one element:
- if (@$yorg == 1)
- {
- my $rem;
- $rem = _mod($c,[ @$x ],$yorg) if wantarray;
-
- # shortcut, $y is < $BASE
- my $j = scalar @$x; my $r = 0;
- my $y = $yorg->[0]; my $b;
- while ($j-- > 0)
- {
- $b = $r * $BASE + $x->[$j];
- $x->[$j] = int($b/$y);
- $r = $b % $y;
- }
- pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
- return ($x,$rem) if wantarray;
- return $x;
+ my ($c, $x, $yorg) = @_;
+
+ # the general div algorithm here is about O(N*N) and thus quite slow, so
+ # we first check for some special cases and use shortcuts to handle them.
+
+ # This works, because we store the numbers in a chunked format where each
+ # element contains 5..7 digits (depending on system).
+
+ # if both numbers have only one element:
+ if (@$x == 1 && @$yorg == 1) {
+ # shortcut, $yorg and $x are two small numbers
+ if (wantarray) {
+ my $rem = [ $x->[0] % $yorg->[0] ];
+ bless $rem, $c;
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return ($x, $rem);
+ } else {
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return $x;
+ }
}
- # now x and y have more than one element
- # check whether y has more elements than x, if yet, the result will be 0
- if (@$yorg > @$x)
- {
- my $rem;
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to original array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x; # only x, which is [0] now
- }
- # check whether the numbers have the same number of elements, in that case
- # the result will fit into one element and can be computed efficiently
- if (@$yorg == @$x)
- {
- my $rem;
- # if $yorg has more digits than $x (it's leading element is longer than
- # the one from $x), the result will also be 0:
- if (length(int($yorg->[-1])) > length(int($x->[-1])))
- {
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to org array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x;
- }
- # now calculate $x / $yorg
-
- if (length(int($yorg->[-1])) == length(int($x->[-1])))
- {
- # same length, so make full compare
-
- my $a = 0; my $j = scalar @$x - 1;
- # manual way (abort if unequal, good for early ne)
- while ($j >= 0)
- {
- last if ($a = $x->[$j] - $yorg->[$j]); $j--;
+ # if x has more than one, but y has only one element:
+ if (@$yorg == 1) {
+ my $rem;
+ $rem = $c->_mod($c->_copy($x), $yorg) if wantarray;
+
+ # shortcut, $y is < $BASE
+ my $j = @$x;
+ my $r = 0;
+ my $y = $yorg->[0];
+ my $b;
+ while ($j-- > 0) {
+ $b = $r * $BASE + $x->[$j];
+ $x->[$j] = int($b/$y);
+ $r = $b % $y;
}
- # $a contains the result of the compare between X and Y
- # a < 0: x < y, a == 0: x == y, a > 0: x > y
- if ($a <= 0)
- {
- $rem = [ 0 ]; # a = 0 => x == y => rem 0
- $rem = [@$x] if $a != 0; # a < 0 => x < y => rem = x
- splice(@$x,1); # keep single element
- $x->[0] = 0; # if $a < 0
- $x->[0] = 1 if $a == 0; # $x == $y
- return ($x,$rem) if wantarray; # including remainder?
+ pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
+ return ($x, $rem) if wantarray;
return $x;
- }
- # $x >= $y, so proceed normally
-
- }
}
- # all other cases:
+ # now x and y have more than one element
- my $y = [ @$yorg ]; # always make copy to preserve
-
- my ($car,$bar,$prd,$dd,$xi,$yi,@q,$v2,$v1,@d,$tmp,$q,$u2,$u1,$u0);
+ # check whether y has more elements than x, if yet, the result will be 0
+ if (@$yorg > @$x) {
+ my $rem;
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x; # only x, which is [0] now
+ }
+ # check whether the numbers have the same number of elements, in that case
+ # the result will fit into one element and can be computed efficiently
+ if (@$yorg == @$x) {
- $car = $bar = $prd = 0;
- if (($dd = int($BASE/($y->[-1]+1))) != 1)
- {
- for $xi (@$x)
- {
- $xi = $xi * $dd + $car;
- $xi -= ($car = int($xi / $BASE)) * $BASE;
- }
- push(@$x, $car); $car = 0;
- for $yi (@$y)
- {
- $yi = $yi * $dd + $car;
- $yi -= ($car = int($yi / $BASE)) * $BASE;
- }
- }
- else
- {
- push(@$x, 0);
+ # if $yorg has more digits than $x (it's leading element is longer than
+ # the one from $x), the result will also be 0:
+ if (length(int($yorg->[-1])) > length(int($x->[-1]))) {
+ my $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
+ }
+ # now calculate $x / $yorg
+ if (length(int($yorg->[-1])) == length(int($x->[-1]))) {
+ # same length, so make full compare
+
+ my $a = 0;
+ my $j = @$x - 1;
+ # manual way (abort if unequal, good for early ne)
+ while ($j >= 0) {
+ last if ($a = $x->[$j] - $yorg->[$j]);
+ $j--;
+ }
+ # $a contains the result of the compare between X and Y
+ # a < 0: x < y, a == 0: x == y, a > 0: x > y
+ if ($a <= 0) {
+ # a = 0 => x == y => rem 0
+ # a < 0 => x < y => rem = x
+ my $rem = $a == 0 ? $c->_zero() : $c->_copy($x);
+ @$x = 0; # if $a < 0
+ $x->[0] = 1 if $a == 0; # $x == $y
+ return ($x, $rem) if wantarray;
+ return $x;
+ }
+ # $x >= $y, so proceed normally
+ }
}
- # @q will accumulate the final result, $q contains the current computed
- # part of the final result
+ # all other cases:
- @q = (); ($v2,$v1) = @$y[-2,-1];
- $v2 = 0 unless $v2;
- while ($#$x > $#$y)
- {
- ($u2,$u1,$u0) = @$x[-3..-1];
- $u2 = 0 unless $u2;
- #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
- # if $v1 == 0;
- $q = (($u0 == $v1) ? $MAX_VAL : int(($u0*$BASE+$u1)/$v1));
- --$q while ($v2*$q > ($u0*$BASE+$u1-$q*$v1)*$BASE+$u2);
- if ($q)
- {
- ($car, $bar) = (0,0);
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $prd = $q * $y->[$yi] + $car;
- $prd -= ($car = int($prd / $BASE)) * $BASE;
- $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
- }
- if ($x->[-1] < $car + $bar)
- {
- $car = 0; --$q;
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $x->[$xi] -= $BASE
- if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
- }
- }
- }
- pop(@$x); unshift(@q, $q);
- }
- if (wantarray)
- {
- @d = ();
- if ($dd != 1)
- {
- $car = 0;
- for $xi (reverse @$x)
- {
- $prd = $car * $BASE + $xi;
- $car = $prd - ($tmp = int($prd / $dd)) * $dd;
- unshift(@d, $tmp);
- }
- }
- else
- {
- @d = @$x;
- }
+ my $y = $c->_copy($yorg); # always make copy to preserve
+
+ my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, @d, $tmp, $q, $u2, $u1, $u0);
+
+ $car = $bar = $prd = 0;
+ if (($dd = int($BASE / ($y->[-1] + 1))) != 1) {
+ for $xi (@$x) {
+ $xi = $xi * $dd + $car;
+ $xi -= ($car = int($xi * $RBASE)) * $BASE; # see USE_MUL
+ }
+ push(@$x, $car);
+ $car = 0;
+ for $yi (@$y) {
+ $yi = $yi * $dd + $car;
+ $yi -= ($car = int($yi * $RBASE)) * $BASE; # see USE_MUL
+ }
+ } else {
+ push(@$x, 0);
+ }
+ @q = ();
+ ($v2, $v1) = @$y[-2, -1];
+ $v2 = 0 unless $v2;
+ while ($#$x > $#$y) {
+ ($u2, $u1, $u0) = @$x[-3 .. -1];
+ $u2 = 0 unless $u2;
+ #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
+ # if $v1 == 0;
+ $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1));
+ --$q while ($v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2);
+ if ($q) {
+ ($car, $bar) = (0, 0);
+ for ($yi = 0, $xi = $#$x - $#$y-1; $yi <= $#$y; ++$yi, ++$xi) {
+ $prd = $q * $y->[$yi] + $car;
+ $prd -= ($car = int($prd * $RBASE)) * $BASE; # see USE_MUL
+ $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
+ }
+ if ($x->[-1] < $car + $bar) {
+ $car = 0;
+ --$q;
+ for ($yi = 0, $xi = $#$x - $#$y-1; $yi <= $#$y; ++$yi, ++$xi) {
+ $x->[$xi] -= $BASE
+ if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
+ }
+ }
+ }
+ pop(@$x);
+ unshift(@q, $q);
+ }
+ if (wantarray) {
+ my $d = bless [], $c;
+ if ($dd != 1) {
+ $car = 0;
+ for $xi (reverse @$x) {
+ $prd = $car * $BASE + $xi;
+ $car = $prd - ($tmp = int($prd / $dd)) * $dd; # see USE_MUL
+ unshift(@$d, $tmp);
+ }
+ } else {
+ @$d = @$x;
+ }
+ @$x = @q;
+ __strip_zeros($x);
+ __strip_zeros($d);
+ return ($x, $d);
+ }
@$x = @q;
- my $d = \@d;
__strip_zeros($x);
- __strip_zeros($d);
- return ($x,$d);
+ $x;
+}
+
+sub _div_use_div_64 {
+ # ref to array, ref to array, modify first array and return remainder if
+ # in list context
+ # This version works on 64 bit integers
+ my ($c, $x, $yorg) = @_;
+
+ use integer;
+ # the general div algorithm here is about O(N*N) and thus quite slow, so
+ # we first check for some special cases and use shortcuts to handle them.
+
+ # This works, because we store the numbers in a chunked format where each
+ # element contains 5..7 digits (depending on system).
+
+ # if both numbers have only one element:
+ if (@$x == 1 && @$yorg == 1) {
+ # shortcut, $yorg and $x are two small numbers
+ if (wantarray) {
+ my $rem = [ $x->[0] % $yorg->[0] ];
+ bless $rem, $c;
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return ($x, $rem);
+ } else {
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return $x;
+ }
}
- @$x = @q;
- __strip_zeros($x);
- $x;
- }
+ # if x has more than one, but y has only one element:
+ if (@$yorg == 1) {
+ my $rem;
+ $rem = $c->_mod($c->_copy($x), $yorg) if wantarray;
-sub _div_use_div
- {
- # ref to array, ref to array, modify first array and return remainder if
- # in list context
- my ($c,$x,$yorg) = @_;
+ # shortcut, $y is < $BASE
+ my $j = @$x;
+ my $r = 0;
+ my $y = $yorg->[0];
+ my $b;
+ while ($j-- > 0) {
+ $b = $r * $BASE + $x->[$j];
+ $x->[$j] = int($b/$y);
+ $r = $b % $y;
+ }
+ pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
+ return ($x, $rem) if wantarray;
+ return $x;
+ }
+ # now x and y have more than one element
+
+ # check whether y has more elements than x, if yet, the result will be 0
+ if (@$yorg > @$x) {
+ my $rem;
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x; # only x, which is [0] now
+ }
+ # check whether the numbers have the same number of elements, in that case
+ # the result will fit into one element and can be computed efficiently
+ if (@$yorg == @$x) {
+ my $rem;
+ # if $yorg has more digits than $x (it's leading element is longer than
+ # the one from $x), the result will also be 0:
+ if (length(int($yorg->[-1])) > length(int($x->[-1]))) {
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
+ }
+ # now calculate $x / $yorg
+
+ if (length(int($yorg->[-1])) == length(int($x->[-1]))) {
+ # same length, so make full compare
+
+ my $a = 0;
+ my $j = @$x - 1;
+ # manual way (abort if unequal, good for early ne)
+ while ($j >= 0) {
+ last if ($a = $x->[$j] - $yorg->[$j]);
+ $j--;
+ }
+ # $a contains the result of the compare between X and Y
+ # a < 0: x < y, a == 0: x == y, a > 0: x > y
+ if ($a <= 0) {
+ $rem = $c->_zero(); # a = 0 => x == y => rem 0
+ $rem = $c->_copy($x) if $a != 0; # a < 0 => x < y => rem = x
+ @$x = 0; # if $a < 0
+ $x->[0] = 1 if $a == 0; # $x == $y
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
+ }
+ # $x >= $y, so proceed normally
+ }
+ }
- # the general div algorithm here is about O(N*N) and thus quite slow, so
- # we first check for some special cases and use shortcuts to handle them.
+ # all other cases:
- # This works, because we store the numbers in a chunked format where each
- # element contains 5..7 digits (depending on system).
+ my $y = $c->_copy($yorg); # always make copy to preserve
- # if both numbers have only one element:
- if (@$x == 1 && @$yorg == 1)
- {
- # shortcut, $yorg and $x are two small numbers
- if (wantarray)
- {
- my $r = [ $x->[0] % $yorg->[0] ];
- $x->[0] = int($x->[0] / $yorg->[0]);
- return ($x,$r);
- }
- else
- {
- $x->[0] = int($x->[0] / $yorg->[0]);
- return $x;
- }
- }
- # if x has more than one, but y has only one element:
- if (@$yorg == 1)
- {
- my $rem;
- $rem = _mod($c,[ @$x ],$yorg) if wantarray;
-
- # shortcut, $y is < $BASE
- my $j = scalar @$x; my $r = 0;
- my $y = $yorg->[0]; my $b;
- while ($j-- > 0)
- {
- $b = $r * $BASE + $x->[$j];
- $x->[$j] = int($b/$y);
- $r = $b % $y;
- }
- pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
- return ($x,$rem) if wantarray;
- return $x;
+ my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, @d, $tmp, $q, $u2, $u1, $u0);
+
+ $car = $bar = $prd = 0;
+ if (($dd = int($BASE / ($y->[-1] + 1))) != 1) {
+ for $xi (@$x) {
+ $xi = $xi * $dd + $car;
+ $xi -= ($car = int($xi / $BASE)) * $BASE;
+ }
+ push(@$x, $car);
+ $car = 0;
+ for $yi (@$y) {
+ $yi = $yi * $dd + $car;
+ $yi -= ($car = int($yi / $BASE)) * $BASE;
+ }
+ } else {
+ push(@$x, 0);
+ }
+
+ # @q will accumulate the final result, $q contains the current computed
+ # part of the final result
+
+ @q = ();
+ ($v2, $v1) = @$y[-2, -1];
+ $v2 = 0 unless $v2;
+ while ($#$x > $#$y) {
+ ($u2, $u1, $u0) = @$x[-3..-1];
+ $u2 = 0 unless $u2;
+ #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
+ # if $v1 == 0;
+ $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1));
+ --$q while ($v2 * $q > ($u0 * $BASE +$ u1- $q*$v1) * $BASE + $u2);
+ if ($q) {
+ ($car, $bar) = (0, 0);
+ for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
+ $prd = $q * $y->[$yi] + $car;
+ $prd -= ($car = int($prd / $BASE)) * $BASE;
+ $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
+ }
+ if ($x->[-1] < $car + $bar) {
+ $car = 0;
+ --$q;
+ for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
+ $x->[$xi] -= $BASE
+ if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
+ }
+ }
+ }
+ pop(@$x);
+ unshift(@q, $q);
+ }
+ if (wantarray) {
+ my $d = bless [], $c;
+ if ($dd != 1) {
+ $car = 0;
+ for $xi (reverse @$x) {
+ $prd = $car * $BASE + $xi;
+ $car = $prd - ($tmp = int($prd / $dd)) * $dd;
+ unshift(@$d, $tmp);
+ }
+ } else {
+ @$d = @$x;
+ }
+ @$x = @q;
+ __strip_zeros($x);
+ __strip_zeros($d);
+ return ($x, $d);
}
- # now x and y have more than one element
+ @$x = @q;
+ __strip_zeros($x);
+ $x;
+}
- # check whether y has more elements than x, if yet, the result will be 0
- if (@$yorg > @$x)
- {
- my $rem;
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to original array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x; # only x, which is [0] now
- }
- # check whether the numbers have the same number of elements, in that case
- # the result will fit into one element and can be computed efficiently
- if (@$yorg == @$x)
- {
- my $rem;
- # if $yorg has more digits than $x (it's leading element is longer than
- # the one from $x), the result will also be 0:
- if (length(int($yorg->[-1])) > length(int($x->[-1])))
- {
- $rem = [@$x] if wantarray; # make copy
- splice (@$x,1); # keep ref to org array
- $x->[0] = 0; # set to 0
- return ($x,$rem) if wantarray; # including remainder?
- return $x;
- }
- # now calculate $x / $yorg
-
- if (length(int($yorg->[-1])) == length(int($x->[-1])))
- {
- # same length, so make full compare
-
- my $a = 0; my $j = scalar @$x - 1;
- # manual way (abort if unequal, good for early ne)
- while ($j >= 0)
- {
- last if ($a = $x->[$j] - $yorg->[$j]); $j--;
+sub _div_use_div {
+ # ref to array, ref to array, modify first array and return remainder if
+ # in list context
+ my ($c, $x, $yorg) = @_;
+
+ # the general div algorithm here is about O(N*N) and thus quite slow, so
+ # we first check for some special cases and use shortcuts to handle them.
+
+ # This works, because we store the numbers in a chunked format where each
+ # element contains 5..7 digits (depending on system).
+
+ # if both numbers have only one element:
+ if (@$x == 1 && @$yorg == 1) {
+ # shortcut, $yorg and $x are two small numbers
+ if (wantarray) {
+ my $rem = [ $x->[0] % $yorg->[0] ];
+ bless $rem, $c;
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return ($x, $rem);
+ } else {
+ $x->[0] = int($x->[0] / $yorg->[0]);
+ return $x;
}
- # $a contains the result of the compare between X and Y
- # a < 0: x < y, a == 0: x == y, a > 0: x > y
- if ($a <= 0)
- {
- $rem = [ 0 ]; # a = 0 => x == y => rem 0
- $rem = [@$x] if $a != 0; # a < 0 => x < y => rem = x
- splice(@$x,1); # keep single element
- $x->[0] = 0; # if $a < 0
- $x->[0] = 1 if $a == 0; # $x == $y
- return ($x,$rem) if wantarray; # including remainder?
+ }
+ # if x has more than one, but y has only one element:
+ if (@$yorg == 1) {
+ my $rem;
+ $rem = $c->_mod($c->_copy($x), $yorg) if wantarray;
+
+ # shortcut, $y is < $BASE
+ my $j = @$x;
+ my $r = 0;
+ my $y = $yorg->[0];
+ my $b;
+ while ($j-- > 0) {
+ $b = $r * $BASE + $x->[$j];
+ $x->[$j] = int($b/$y);
+ $r = $b % $y;
+ }
+ pop @$x if @$x > 1 && $x->[-1] == 0; # splice up a leading zero
+ return ($x, $rem) if wantarray;
return $x;
+ }
+ # now x and y have more than one element
+
+ # check whether y has more elements than x, if yet, the result will be 0
+ if (@$yorg > @$x) {
+ my $rem;
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x; # only x, which is [0] now
+ }
+ # check whether the numbers have the same number of elements, in that case
+ # the result will fit into one element and can be computed efficiently
+ if (@$yorg == @$x) {
+ my $rem;
+ # if $yorg has more digits than $x (it's leading element is longer than
+ # the one from $x), the result will also be 0:
+ if (length(int($yorg->[-1])) > length(int($x->[-1]))) {
+ $rem = $c->_copy($x) if wantarray; # make copy
+ @$x = 0; # set to 0
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
}
- # $x >= $y, so proceed normally
+ # now calculate $x / $yorg
+
+ if (length(int($yorg->[-1])) == length(int($x->[-1]))) {
+ # same length, so make full compare
+
+ my $a = 0;
+ my $j = @$x - 1;
+ # manual way (abort if unequal, good for early ne)
+ while ($j >= 0) {
+ last if ($a = $x->[$j] - $yorg->[$j]);
+ $j--;
+ }
+ # $a contains the result of the compare between X and Y
+ # a < 0: x < y, a == 0: x == y, a > 0: x > y
+ if ($a <= 0) {
+ $rem = $c->_zero(); # a = 0 => x == y => rem 0
+ $rem = $c->_copy($x) if $a != 0; # a < 0 => x < y => rem = x
+ @$x = 0;
+ $x->[0] = 0; # if $a < 0
+ $x->[0] = 1 if $a == 0; # $x == $y
+ return ($x, $rem) if wantarray; # including remainder?
+ return $x;
+ }
+ # $x >= $y, so proceed normally
- }
+ }
}
- # all other cases:
+ # all other cases:
- my $y = [ @$yorg ]; # always make copy to preserve
-
- my ($car,$bar,$prd,$dd,$xi,$yi,@q,$v2,$v1,@d,$tmp,$q,$u2,$u1,$u0);
+ my $y = $c->_copy($yorg); # always make copy to preserve
- $car = $bar = $prd = 0;
- if (($dd = int($BASE/($y->[-1]+1))) != 1)
- {
- for $xi (@$x)
- {
- $xi = $xi * $dd + $car;
- $xi -= ($car = int($xi / $BASE)) * $BASE;
- }
- push(@$x, $car); $car = 0;
- for $yi (@$y)
- {
- $yi = $yi * $dd + $car;
- $yi -= ($car = int($yi / $BASE)) * $BASE;
- }
- }
- else
- {
- push(@$x, 0);
- }
-
- # @q will accumulate the final result, $q contains the current computed
- # part of the final result
+ my ($car, $bar, $prd, $dd, $xi, $yi, @q, $v2, $v1, @d, $tmp, $q, $u2, $u1, $u0);
- @q = (); ($v2,$v1) = @$y[-2,-1];
- $v2 = 0 unless $v2;
- while ($#$x > $#$y)
- {
- ($u2,$u1,$u0) = @$x[-3..-1];
- $u2 = 0 unless $u2;
- #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
- # if $v1 == 0;
- $q = (($u0 == $v1) ? $MAX_VAL : int(($u0*$BASE+$u1)/$v1));
- --$q while ($v2*$q > ($u0*$BASE+$u1-$q*$v1)*$BASE+$u2);
- if ($q)
- {
- ($car, $bar) = (0,0);
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $prd = $q * $y->[$yi] + $car;
- $prd -= ($car = int($prd / $BASE)) * $BASE;
- $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
- }
- if ($x->[-1] < $car + $bar)
- {
- $car = 0; --$q;
- for ($yi = 0, $xi = $#$x-$#$y-1; $yi <= $#$y; ++$yi,++$xi)
- {
- $x->[$xi] -= $BASE
- if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
- }
- }
- }
- pop(@$x); unshift(@q, $q);
- }
- if (wantarray)
- {
- @d = ();
- if ($dd != 1)
- {
- $car = 0;
- for $xi (reverse @$x)
- {
- $prd = $car * $BASE + $xi;
- $car = $prd - ($tmp = int($prd / $dd)) * $dd;
- unshift(@d, $tmp);
- }
- }
- else
- {
- @d = @$x;
- }
+ $car = $bar = $prd = 0;
+ if (($dd = int($BASE / ($y->[-1] + 1))) != 1) {
+ for $xi (@$x) {
+ $xi = $xi * $dd + $car;
+ $xi -= ($car = int($xi / $BASE)) * $BASE;
+ }
+ push(@$x, $car);
+ $car = 0;
+ for $yi (@$y) {
+ $yi = $yi * $dd + $car;
+ $yi -= ($car = int($yi / $BASE)) * $BASE;
+ }
+ } else {
+ push(@$x, 0);
+ }
+
+ # @q will accumulate the final result, $q contains the current computed
+ # part of the final result
+
+ @q = ();
+ ($v2, $v1) = @$y[-2, -1];
+ $v2 = 0 unless $v2;
+ while ($#$x > $#$y) {
+ ($u2, $u1, $u0) = @$x[-3..-1];
+ $u2 = 0 unless $u2;
+ #warn "oups v1 is 0, u0: $u0 $y->[-2] $y->[-1] l ",scalar @$y,"\n"
+ # if $v1 == 0;
+ $q = (($u0 == $v1) ? $MAX_VAL : int(($u0 * $BASE + $u1) / $v1));
+ --$q while ($v2 * $q > ($u0 * $BASE + $u1 - $q * $v1) * $BASE + $u2);
+ if ($q) {
+ ($car, $bar) = (0, 0);
+ for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
+ $prd = $q * $y->[$yi] + $car;
+ $prd -= ($car = int($prd / $BASE)) * $BASE;
+ $x->[$xi] += $BASE if ($bar = (($x->[$xi] -= $prd + $bar) < 0));
+ }
+ if ($x->[-1] < $car + $bar) {
+ $car = 0;
+ --$q;
+ for ($yi = 0, $xi = $#$x - $#$y - 1; $yi <= $#$y; ++$yi, ++$xi) {
+ $x->[$xi] -= $BASE
+ if ($car = (($x->[$xi] += $y->[$yi] + $car) >= $BASE));
+ }
+ }
+ }
+ pop(@$x);
+ unshift(@q, $q);
+ }
+ if (wantarray) {
+ my $d = bless [], $c;
+ if ($dd != 1) {
+ $car = 0;
+ for $xi (reverse @$x) {
+ $prd = $car * $BASE + $xi;
+ $car = $prd - ($tmp = int($prd / $dd)) * $dd;
+ unshift(@$d, $tmp);
+ }
+ } else {
+ @$d = @$x;
+ }
+ @$x = @q;
+ __strip_zeros($x);
+ __strip_zeros($d);
+ return ($x, $d);
+ }
@$x = @q;
- my $d = \@d;
__strip_zeros($x);
- __strip_zeros($d);
- return ($x,$d);
- }
- @$x = @q;
- __strip_zeros($x);
- $x;
- }
+ $x;
+}
##############################################################################
# testing
@@ -1175,7 +1110,7 @@ sub _acmp {
# shortcut for short numbers
return (($cx->[0] <=> $cy->[0]) <=> 0)
- if @$cx == @$cy && @$cx == 1;
+ if @$cx == 1 && @$cy == 1;
# fast comp based on number of array elements (aka pseudo-length)
my $lxy = (@$cx - @$cy)
@@ -1207,18 +1142,22 @@ sub _len {
}
sub _digit {
- # Return the nth digit. Zero is rightmost, so _digit(123,0) gives 3.
+ # Return the nth digit. Zero is rightmost, so _digit(123, 0) gives 3.
# Negative values count from the left, so _digit(123, -1) gives 1.
my ($c, $x, $n) = @_;
my $len = _len('', $x);
$n += $len if $n < 0; # -1 last, -2 second-to-last
+
+ # Math::BigInt::Calc returns 0 if N is out of range, but this is not done
+ # by the other backend libraries.
+
return "0" if $n < 0 || $n >= $len; # return 0 for digits out of range
- my $elem = int($n / $BASE_LEN); # which array element
- my $digit = $n % $BASE_LEN; # which digit in this element
- substr("$x->[$elem]", -$digit - 1, 1);
+ my $elem = int($n / $BASE_LEN); # index of array element
+ my $digit = $n % $BASE_LEN; # index of digit within the element
+ substr("0" x $BASE_LEN . "$x->[$elem]", -1 - $digit, 1);
}
sub _zeros {
@@ -1231,16 +1170,13 @@ sub _zeros {
return 0 if @$x == 1 && $x->[0] == 0;
my $zeros = 0;
- my $elem;
- foreach my $e (@$x) {
- if ($e != 0) {
- $elem = "$e"; # preserve x
- $elem =~ s/.*?(0*$)/$1/; # strip anything not zero
- $zeros *= $BASE_LEN; # elems * 5
- $zeros += length($elem); # count trailing zeros
+ foreach my $elem (@$x) {
+ if ($elem != 0) {
+ $elem =~ /[^0](0*)\z/;
+ $zeros += length($1); # count trailing zeros
last; # early out
}
- $zeros ++; # real else branch: 50% slower!
+ $zeros += $BASE_LEN;
}
$zeros;
}
@@ -1249,7 +1185,7 @@ sub _zeros {
# _is_* routines
sub _is_zero {
- # return true if arg is zero
+ # return true if arg is zero
@{$_[1]} == 1 && $_[1]->[0] == 0 ? 1 : 0;
}
@@ -1269,25 +1205,22 @@ sub _is_one {
}
sub _is_two {
- # return true if arg is two
+ # return true if arg is two
@{$_[1]} == 1 && $_[1]->[0] == 2 ? 1 : 0;
}
sub _is_ten {
- # return true if arg is ten
+ # return true if arg is ten
@{$_[1]} == 1 && $_[1]->[0] == 10 ? 1 : 0;
}
sub __strip_zeros {
# Internal normalization function that strips leading zeros from the array.
# Args: ref to array
- my $s = shift;
-
- my $cnt = @$s; # get count of parts
- my $i = $cnt - 1;
- push @$s, 0 if $i < 0; # div might return empty results, so fix it
+ my $x = shift;
- return $s if @$s == 1; # early out
+ push @$x, 0 if @$x == 0; # div might return empty results, so fix it
+ return $x if @$x == 1; # early out
#print "strip: cnt $cnt i $i\n";
# '0', '3', '4', '0', '0',
@@ -1297,13 +1230,15 @@ sub __strip_zeros {
# i = 3
# => fcnt = cnt - i (5-2 => 3, cnt => 5-1 = 4, throw away from 4th pos)
# >= 1: skip first part (this can be zero)
+
+ my $i = $#$x;
while ($i > 0) {
- last if $s->[$i] != 0;
+ last if $x->[$i] != 0;
$i--;
}
$i++;
- splice @$s, $i if $i < $cnt; # $i cant be 0
- $s;
+ splice(@$x, $i) if $i < @$x;
+ $x;
}
###############################################################################
@@ -1311,32 +1246,46 @@ sub __strip_zeros {
sub _check {
# used by the test suite
- my $x = $_[1];
+ my ($class, $x) = @_;
+
+ my $msg = $class -> SUPER::_check($x);
+ return $msg if $msg;
+
+ my $n;
+ eval { $n = @$x };
+ return "Not an array reference" unless $@ eq '';
+
+ return "Reference to an empty array" unless $n > 0;
- return "$x is not a reference" if !ref($x);
-
- # are all parts are valid?
- my $i = 0;
- my $j = @$x;
- my ($e, $try);
- while ($i < $j) {
- $e = $x->[$i]; $e = 'undef' unless defined $e;
- $try = '=~ /^[\+]?[0-9]+\$/; '."($x, $e)";
- last if $e !~ /^[+]?[0-9]+$/;
- $try = '=~ /^[\+]?[0-9]+\$/; '."($x, $e) (stringify)";
- last if "$e" !~ /^[+]?[0-9]+$/;
- $try = '=~ /^[\+]?[0-9]+\$/; '."($x, $e) (cat-stringify)";
- last if '' . "$e" !~ /^[+]?[0-9]+$/;
- $try = ' < 0 || >= $BASE; '."($x, $e)";
- last if $e <0 || $e >= $BASE;
- # This test is disabled, since new/bnorm and certain ops (like early out
- # in add/sub) are allowed/expected to leave '00000' in some elements.
- #$try = '=~ /^00+/; '."($x, $e)";
- #last if $e =~ /^00+/;
- $i++;
- }
- return "Illegal part '$e' at pos $i (tested: $try)" if $i < $j;
- 0;
+ # The following fails with Math::BigInt::FastCalc because a
+ # Math::BigInt::FastCalc "object" is an unblessed array ref.
+ #
+ #return 0 unless ref($x) eq $class;
+
+ for (my $i = 0 ; $i <= $#$x ; ++ $i) {
+ my $e = $x -> [$i];
+
+ return "Element at index $i is undefined"
+ unless defined $e;
+
+ return "Element at index $i is a '" . ref($e) .
+ "', which is not a scalar"
+ unless ref($e) eq "";
+
+ # It would be better to use the regex /^([1-9]\d*|0)\z/, but that fails
+ # in Math::BigInt::FastCalc, because it sometimes creates array
+ # elements like "000000".
+ return "Element at index $i is '$e', which does not look like an" .
+ " normal integer" unless $e =~ /^\d+\z/;
+
+ return "Element at index $i is '$e', which is not smaller than" .
+ " the base '$BASE'" if $e >= $BASE;
+
+ return "Element at index $i (last element) is zero"
+ if $#$x > 0 && $i == $#$x && $e == 0;
+ }
+
+ return 0;
}
###############################################################################
@@ -1347,7 +1296,7 @@ sub _mod {
# slow way since $y too big
if (@$yo > 1) {
- my ($xo, $rem) = _div($c, $x, $yo);
+ my ($xo, $rem) = $c->_div($x, $yo);
@$x = @$rem;
return $x;
}
@@ -1355,7 +1304,7 @@ sub _mod {
my $y = $yo->[0];
# if both are single element arrays
- if (scalar @$x == 1) {
+ if (@$x == 1) {
$x->[0] %= $y;
return $x;
}
@@ -1372,7 +1321,7 @@ sub _mod {
# simplified
my $r = 0;
foreach (@$x) {
- $r = ($r + $_) % $y; # not much faster, but heh...
+ $r = ($r + $_) % $y; # not much faster, but heh...
#$r += $_ % $y; $r %= $y;
}
$r = 0 if $r == $y;
@@ -1393,7 +1342,7 @@ sub _mod {
$r = 0 if $r == $y;
$x->[0] = $r;
}
- @$x = $x->[0]; # keep one element of @$x
+ @$x = $x->[0]; # keep one element of @$x
return $x;
}
@@ -1404,30 +1353,30 @@ sub _rsft {
my ($c, $x, $y, $n) = @_;
if ($n != 10) {
- $n = _new($c, $n);
- return _div($c, $x, _pow($c, $n, $y));
+ $n = $c->_new($n);
+ return scalar $c->_div($x, $c->_pow($n, $y));
}
# shortcut (faster) for shifting by 10)
# multiples of $BASE_LEN
- my $dst = 0; # destination
- my $src = _num($c, $y); # as normal int
+ my $dst = 0; # destination
+ my $src = $c->_num($y); # as normal int
my $xlen = (@$x - 1) * $BASE_LEN + length(int($x->[-1]));
if ($src >= $xlen or ($src == $xlen and !defined $x->[1])) {
# 12345 67890 shifted right by more than 10 digits => 0
- splice(@$x, 1); # leave only one element
- $x->[0] = 0; # set to zero
+ splice(@$x, 1); # leave only one element
+ $x->[0] = 0; # set to zero
return $x;
}
- my $rem = $src % $BASE_LEN; # remainder to shift
- $src = int($src / $BASE_LEN); # source
+ my $rem = $src % $BASE_LEN; # remainder to shift
+ $src = int($src / $BASE_LEN); # source
if ($rem == 0) {
- splice(@$x, 0, $src); # even faster, 38.4 => 39.3
+ splice(@$x, 0, $src); # even faster, 38.4 => 39.3
} else {
- my $len = @$x - $src; # elems to go
+ my $len = @$x - $src; # elems to go
my $vd;
my $z = '0' x $BASE_LEN;
- $x->[@$x] = 0; # avoid || 0 test inside loop
+ $x->[ @$x ] = 0; # avoid || 0 test inside loop
while ($dst < $len) {
$vd = $z . $x->[$src];
$vd = substr($vd, -$BASE_LEN, $BASE_LEN - $rem);
@@ -1437,47 +1386,58 @@ sub _rsft {
$x->[$dst] = int($vd);
$dst++;
}
- splice(@$x, $dst) if $dst > 0; # kill left-over array elems
- pop @$x if $x->[-1] == 0 && @$x > 1; # kill last element if 0
- } # else rem == 0
+ splice(@$x, $dst) if $dst > 0; # kill left-over array elems
+ pop @$x if $x->[-1] == 0 && @$x > 1; # kill last element if 0
+ } # else rem == 0
$x;
}
sub _lsft {
- my ($c, $x, $y, $n) = @_;
-
- if ($n != 10) {
- $n = _new($c, $n);
- return _mul($c, $x, _pow($c, $n, $y));
- }
-
- # shortcut (faster) for shifting by 10) since we are in base 10eX
- # multiples of $BASE_LEN:
- my $src = @$x; # source
- my $len = _num($c, $y); # shift-len as normal int
- my $rem = $len % $BASE_LEN; # remainder to shift
- my $dst = $src + int($len / $BASE_LEN); # destination
- my $vd; # further speedup
- $x->[$src] = 0; # avoid first ||0 for speed
- my $z = '0' x $BASE_LEN;
- while ($src >= 0) {
- $vd = $x->[$src];
- $vd = $z . $vd;
- $vd = substr($vd, -$BASE_LEN + $rem, $BASE_LEN - $rem);
- $vd .= $src > 0 ? substr($z . $x->[$src - 1], -$BASE_LEN, $rem)
- : '0' x $rem;
- $vd = substr($vd, -$BASE_LEN, $BASE_LEN) if length($vd) > $BASE_LEN;
- $x->[$dst] = int($vd);
- $dst--;
- $src--;
- }
- # set lowest parts to 0
- while ($dst >= 0) {
- $x->[$dst--] = 0;
- }
- # fix spurious last zero element
- splice @$x, -1 if $x->[-1] == 0;
- $x;
+ my ($c, $x, $n, $b) = @_;
+
+ return $x if $c->_is_zero($x);
+
+ # Handle the special case when the base is a power of 10. Don't check
+ # whether log($b)/log(10) is an integer, because log(1000)/log(10) is not
+ # exactly 3.
+
+ my $log10 = sprintf "%.0f", log($b) / log(10);
+ if ($b == 10 ** $log10) {
+ $b = 10;
+ $n = $c->_mul($n, $c->_new($log10));
+
+ # shortcut (faster) for shifting by 10) since we are in base 10eX
+ # multiples of $BASE_LEN:
+ my $src = @$x; # source
+ my $len = $c->_num($n); # shift-len as normal int
+ my $rem = $len % $BASE_LEN; # remainder to shift
+ my $dst = $src + int($len / $BASE_LEN); # destination
+ my $vd; # further speedup
+ $x->[$src] = 0; # avoid first ||0 for speed
+ my $z = '0' x $BASE_LEN;
+ while ($src >= 0) {
+ $vd = $x->[$src];
+ $vd = $z . $vd;
+ $vd = substr($vd, -$BASE_LEN + $rem, $BASE_LEN - $rem);
+ $vd .= $src > 0 ? substr($z . $x->[$src - 1], -$BASE_LEN, $rem)
+ : '0' x $rem;
+ $vd = substr($vd, -$BASE_LEN, $BASE_LEN) if length($vd) > $BASE_LEN;
+ $x->[$dst] = int($vd);
+ $dst--;
+ $src--;
+ }
+ # set lowest parts to 0
+ while ($dst >= 0) {
+ $x->[$dst--] = 0;
+ }
+ # fix spurious last zero element
+ splice @$x, -1 if $x->[-1] == 0;
+ return $x;
+ } else {
+ $b = $c->_new($b);
+ #print $c->_str($b);
+ return $c->_mul($x, $c->_pow($b, $n));
+ }
}
sub _pow {
@@ -1487,33 +1447,33 @@ sub _pow {
if (@$cy == 1 && $cy->[0] == 0) {
splice(@$cx, 1);
- $cx->[0] = 1; # y == 0 => x => 1
+ $cx->[0] = 1; # y == 0 => x => 1
return $cx;
}
- if ((@$cx == 1 && $cx->[0] == 1) || # x == 1
- (@$cy == 1 && $cy->[0] == 1)) # or y == 1
+ if ((@$cx == 1 && $cx->[0] == 1) || # x == 1
+ (@$cy == 1 && $cy->[0] == 1)) # or y == 1
{
return $cx;
}
if (@$cx == 1 && $cx->[0] == 0) {
splice (@$cx, 1);
- $cx->[0] = 0; # 0 ** y => 0 (if not y <= 0)
+ $cx->[0] = 0; # 0 ** y => 0 (if not y <= 0)
return $cx;
}
- my $pow2 = _one();
+ my $pow2 = $c->_one();
- my $y_bin = _as_bin($c, $cy);
+ my $y_bin = $c->_as_bin($cy);
$y_bin =~ s/^0b//;
my $len = length($y_bin);
while (--$len > 0) {
- _mul($c, $pow2, $cx) if substr($y_bin, $len, 1) eq '1'; # is odd?
- _mul($c, $cx, $cx);
+ $c->_mul($pow2, $cx) if substr($y_bin, $len, 1) eq '1'; # is odd?
+ $c->_mul($cx, $cx);
}
- _mul($c, $cx, $pow2);
+ $c->_mul($cx, $pow2);
$cx;
}
@@ -1528,9 +1488,9 @@ sub _nok {
# nok(n, n-k), to minimize the number if iterations in the loop.
{
- my $twok = _mul($c, _two($c), _copy($c, $k)); # 2 * k
- if (_acmp($c, $twok, $n) > 0) { # if 2*k > n
- $k = _sub($c, _copy($c, $n), $k); # k = n - k
+ my $twok = $c->_mul($c->_two(), $c->_copy($k)); # 2 * k
+ if ($c->_acmp($twok, $n) > 0) { # if 2*k > n
+ $k = $c->_sub($c->_copy($n), $k); # k = n - k
}
}
@@ -1540,39 +1500,37 @@ sub _nok {
# | | = --------- = --------------- = --------- = 5 * - * -
# \ 3 / (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
- if (_is_zero($c, $k)) {
+ if ($c->_is_zero($k)) {
@$n = 1;
- }
-
- else {
+ } else {
# Make a copy of the original n, since we'll be modifying n in-place.
- my $n_orig = _copy($c, $n);
+ my $n_orig = $c->_copy($n);
# n = 5, f = 6, d = 2 (cf. example above)
- _sub($c, $n, $k);
- _inc($c, $n);
+ $c->_sub($n, $k);
+ $c->_inc($n);
- my $f = _copy($c, $n);
- _inc($c, $f);
+ my $f = $c->_copy($n);
+ $c->_inc($f);
- my $d = _two($c);
+ my $d = $c->_two();
# while f <= n (the original n, that is) ...
- while (_acmp($c, $f, $n_orig) <= 0) {
+ while ($c->_acmp($f, $n_orig) <= 0) {
# n = (n * f / d) == 5 * 6 / 2 (cf. example above)
- _mul($c, $n, $f);
- _div($c, $n, $d);
+ $c->_mul($n, $f);
+ $c->_div($n, $d);
# f = 7, d = 3 (cf. example above)
- _inc($c, $f);
- _inc($c, $d);
+ $c->_inc($f);
+ $c->_inc($d);
}
}
@@ -1581,1429 +1539,997 @@ sub _nok {
}
my @factorials = (
- 1,
- 1,
- 2,
- 2*3,
- 2*3*4,
- 2*3*4*5,
- 2*3*4*5*6,
- 2*3*4*5*6*7,
-);
-
-sub _fac
- {
- # factorial of $x
- # ref to array, return ref to array
- my ($c,$cx) = @_;
-
- if ((@$cx == 1) && ($cx->[0] <= 7))
- {
- $cx->[0] = $factorials[$cx->[0]]; # 0 => 1, 1 => 1, 2 => 2 etc.
- return $cx;
+ 1,
+ 1,
+ 2,
+ 2*3,
+ 2*3*4,
+ 2*3*4*5,
+ 2*3*4*5*6,
+ 2*3*4*5*6*7,
+ );
+
+sub _fac {
+ # factorial of $x
+ # ref to array, return ref to array
+ my ($c, $cx) = @_;
+
+ if ((@$cx == 1) && ($cx->[0] <= 7)) {
+ $cx->[0] = $factorials[$cx->[0]]; # 0 => 1, 1 => 1, 2 => 2 etc.
+ return $cx;
}
- if ((@$cx == 1) && # we do this only if $x >= 12 and $x <= 7000
- ($cx->[0] >= 12 && $cx->[0] < 7000))
- {
+ if ((@$cx == 1) && # we do this only if $x >= 12 and $x <= 7000
+ ($cx->[0] >= 12 && $cx->[0] < 7000)) {
- # Calculate (k-j) * (k-j+1) ... k .. (k+j-1) * (k + j)
- # See http://blogten.blogspot.com/2007/01/calculating-n.html
- # The above series can be expressed as factors:
- # k * k - (j - i) * 2
- # We cache k*k, and calculate (j * j) as the sum of the first j odd integers
+ # Calculate (k-j) * (k-j+1) ... k .. (k+j-1) * (k + j)
+ # See http://blogten.blogspot.com/2007/01/calculating-n.html
+ # The above series can be expressed as factors:
+ # k * k - (j - i) * 2
+ # We cache k*k, and calculate (j * j) as the sum of the first j odd integers
- # This will not work when N exceeds the storage of a Perl scalar, however,
- # in this case the algorithm would be way to slow to terminate, anyway.
+ # This will not work when N exceeds the storage of a Perl scalar, however,
+ # in this case the algorithm would be way too slow to terminate, anyway.
- # As soon as the last element of $cx is 0, we split it up and remember
- # how many zeors we got so far. The reason is that n! will accumulate
- # zeros at the end rather fast.
- my $zero_elements = 0;
+ # As soon as the last element of $cx is 0, we split it up and remember
+ # how many zeors we got so far. The reason is that n! will accumulate
+ # zeros at the end rather fast.
+ my $zero_elements = 0;
- # If n is even, set n = n -1
- my $k = _num($c,$cx); my $even = 1;
- if (($k & 1) == 0)
- {
- $even = $k; $k --;
- }
- # set k to the center point
- $k = ($k + 1) / 2;
-# print "k $k even: $even\n";
- # now calculate k * k
- my $k2 = $k * $k;
- my $odd = 1; my $sum = 1;
- my $i = $k - 1;
- # keep reference to x
- my $new_x = _new($c, $k * $even);
- @$cx = @$new_x;
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
-# print STDERR "x = ", _str($c,$cx),"\n";
- my $BASE2 = int(sqrt($BASE))-1;
- my $j = 1;
- while ($j <= $i)
- {
- my $m = ($k2 - $sum); $odd += 2; $sum += $odd; $j++;
- while ($j <= $i && ($m < $BASE2) && (($k2 - $sum) < $BASE2))
- {
- $m *= ($k2 - $sum);
- $odd += 2; $sum += $odd; $j++;
-# print STDERR "\n k2 $k2 m $m sum $sum odd $odd\n"; sleep(1);
- }
- if ($m < $BASE)
- {
- _mul($c,$cx,[$m]);
- }
- else
- {
- _mul($c,$cx,$c->_new($m));
- }
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
-# print STDERR "Calculate $k2 - $sum = $m (x = ", _str($c,$cx),")\n";
- }
- # multiply in the zeros again
- unshift @$cx, (0) x $zero_elements;
- return $cx;
- }
-
- # go forward until $base is exceeded
- # limit is either $x steps (steps == 100 means a result always too high) or
- # $base.
- my $steps = 100; $steps = $cx->[0] if @$cx == 1;
- my $r = 2; my $cf = 3; my $step = 2; my $last = $r;
- while ($r*$cf < $BASE && $step < $steps)
- {
- $last = $r; $r *= $cf++; $step++;
- }
- if ((@$cx == 1) && $step == $cx->[0])
- {
- # completely done, so keep reference to $x and return
- $cx->[0] = $r;
- return $cx;
- }
-
- # now we must do the left over steps
- my $n; # steps still to do
- if (scalar @$cx == 1)
- {
- $n = $cx->[0];
- }
- else
- {
- $n = _copy($c,$cx);
- }
-
- # Set $cx to the last result below $BASE (but keep ref to $x)
- $cx->[0] = $last; splice (@$cx,1);
- # As soon as the last element of $cx is 0, we split it up and remember
- # how many zeors we got so far. The reason is that n! will accumulate
- # zeros at the end rather fast.
- my $zero_elements = 0;
-
- # do left-over steps fit into a scalar?
- if (ref $n eq 'ARRAY')
- {
- # No, so use slower inc() & cmp()
- # ($n is at least $BASE here)
- my $base_2 = int(sqrt($BASE)) - 1;
- #print STDERR "base_2: $base_2\n";
- while ($step < $base_2)
- {
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
- my $b = $step * ($step + 1); $step += 2;
- _mul($c,$cx,[$b]);
- }
- $step = [$step];
- while (_acmp($c,$step,$n) <= 0)
- {
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
+ # If n is even, set n = n -1
+ my $k = $c->_num($cx);
+ my $even = 1;
+ if (($k & 1) == 0) {
+ $even = $k;
+ $k --;
}
- _mul($c,$cx,$step); _inc($c,$step);
- }
- }
- else
- {
- # Yes, so we can speed it up slightly
-
-# print "# left over steps $n\n";
-
- my $base_4 = int(sqrt(sqrt($BASE))) - 2;
- #print STDERR "base_4: $base_4\n";
- my $n4 = $n - 4;
- while ($step < $n4 && $step < $base_4)
- {
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
- my $b = $step * ($step + 1); $step += 2; $b *= $step * ($step + 1); $step += 2;
- _mul($c,$cx,[$b]);
- }
- my $base_2 = int(sqrt($BASE)) - 1;
- my $n2 = $n - 2;
- #print STDERR "base_2: $base_2\n";
- while ($step < $n2 && $step < $base_2)
- {
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
- }
- my $b = $step * ($step + 1); $step += 2;
- _mul($c,$cx,[$b]);
- }
- # do what's left over
- while ($step <= $n)
- {
- _mul($c,$cx,[$step]); $step++;
- if ($cx->[0] == 0)
- {
- $zero_elements ++; shift @$cx;
+ # set k to the center point
+ $k = ($k + 1) / 2;
+ # print "k $k even: $even\n";
+ # now calculate k * k
+ my $k2 = $k * $k;
+ my $odd = 1;
+ my $sum = 1;
+ my $i = $k - 1;
+ # keep reference to x
+ my $new_x = $c->_new($k * $even);
+ @$cx = @$new_x;
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ # print STDERR "x = ", $c->_str($cx), "\n";
+ my $BASE2 = int(sqrt($BASE))-1;
+ my $j = 1;
+ while ($j <= $i) {
+ my $m = ($k2 - $sum);
+ $odd += 2;
+ $sum += $odd;
+ $j++;
+ while ($j <= $i && ($m < $BASE2) && (($k2 - $sum) < $BASE2)) {
+ $m *= ($k2 - $sum);
+ $odd += 2;
+ $sum += $odd;
+ $j++;
+ # print STDERR "\n k2 $k2 m $m sum $sum odd $odd\n"; sleep(1);
+ }
+ if ($m < $BASE) {
+ $c->_mul($cx, [$m]);
+ } else {
+ $c->_mul($cx, $c->_new($m));
+ }
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ # print STDERR "Calculate $k2 - $sum = $m (x = ", $c->_str($cx), ")\n";
}
- }
+ # multiply in the zeros again
+ unshift @$cx, (0) x $zero_elements;
+ return $cx;
}
- # multiply in the zeros again
- unshift @$cx, (0) x $zero_elements;
- $cx; # return result
- }
-
-#############################################################################
-sub _log_int
- {
- # calculate integer log of $x to base $base
- # ref to array, ref to array - return ref to array
- my ($c,$x,$base) = @_;
-
- # X == 0 => NaN
- return if (scalar @$x == 1 && $x->[0] == 0);
- # BASE 0 or 1 => NaN
- return if (scalar @$base == 1 && $base->[0] < 2);
- my $cmp = _acmp($c,$x,$base); # X == BASE => 1
- if ($cmp == 0)
- {
- splice (@$x,1); $x->[0] = 1;
- return ($x,1)
- }
- # X < BASE
- if ($cmp < 0)
- {
- splice (@$x,1); $x->[0] = 0;
- return ($x,undef);
+ # go forward until $base is exceeded limit is either $x steps (steps == 100
+ # means a result always too high) or $base.
+ my $steps = 100;
+ $steps = $cx->[0] if @$cx == 1;
+ my $r = 2;
+ my $cf = 3;
+ my $step = 2;
+ my $last = $r;
+ while ($r * $cf < $BASE && $step < $steps) {
+ $last = $r;
+ $r *= $cf++;
+ $step++;
+ }
+ if ((@$cx == 1) && $step == $cx->[0]) {
+ # completely done, so keep reference to $x and return
+ $cx->[0] = $r;
+ return $cx;
}
- my $x_org = _copy($c,$x); # preserve x
- splice(@$x,1); $x->[0] = 1; # keep ref to $x
-
- # Compute a guess for the result based on:
- # $guess = int ( length_in_base_10(X) / ( log(base) / log(10) ) )
- my $len = _len($c,$x_org);
- my $log = log($base->[-1]) / log(10);
-
- # for each additional element in $base, we add $BASE_LEN to the result,
- # based on the observation that log($BASE,10) is BASE_LEN and
- # log(x*y) == log(x) + log(y):
- $log += ((scalar @$base)-1) * $BASE_LEN;
-
- # calculate now a guess based on the values obtained above:
- my $res = int($len / $log);
+ # now we must do the left over steps
+ my $n; # steps still to do
+ if (@$cx == 1) {
+ $n = $cx->[0];
+ } else {
+ $n = $c->_copy($cx);
+ }
+
+ # Set $cx to the last result below $BASE (but keep ref to $x)
+ $cx->[0] = $last;
+ splice (@$cx, 1);
+ # As soon as the last element of $cx is 0, we split it up and remember
+ # how many zeors we got so far. The reason is that n! will accumulate
+ # zeros at the end rather fast.
+ my $zero_elements = 0;
+
+ # do left-over steps fit into a scalar?
+ if (ref $n eq 'ARRAY') {
+ # No, so use slower inc() & cmp()
+ # ($n is at least $BASE here)
+ my $base_2 = int(sqrt($BASE)) - 1;
+ #print STDERR "base_2: $base_2\n";
+ while ($step < $base_2) {
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ my $b = $step * ($step + 1);
+ $step += 2;
+ $c->_mul($cx, [$b]);
+ }
+ $step = [$step];
+ while ($c->_acmp($step, $n) <= 0) {
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ $c->_mul($cx, $step);
+ $c->_inc($step);
+ }
+ } else {
+ # Yes, so we can speed it up slightly
+
+ # print "# left over steps $n\n";
+
+ my $base_4 = int(sqrt(sqrt($BASE))) - 2;
+ #print STDERR "base_4: $base_4\n";
+ my $n4 = $n - 4;
+ while ($step < $n4 && $step < $base_4) {
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ my $b = $step * ($step + 1);
+ $step += 2;
+ $b *= $step * ($step + 1);
+ $step += 2;
+ $c->_mul($cx, [$b]);
+ }
+ my $base_2 = int(sqrt($BASE)) - 1;
+ my $n2 = $n - 2;
+ #print STDERR "base_2: $base_2\n";
+ while ($step < $n2 && $step < $base_2) {
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ my $b = $step * ($step + 1);
+ $step += 2;
+ $c->_mul($cx, [$b]);
+ }
+ # do what's left over
+ while ($step <= $n) {
+ $c->_mul($cx, [$step]);
+ $step++;
+ if ($cx->[0] == 0) {
+ $zero_elements ++;
+ shift @$cx;
+ }
+ }
+ }
+ # multiply in the zeros again
+ unshift @$cx, (0) x $zero_elements;
+ $cx; # return result
+}
- $x->[0] = $res;
- my $trial = _pow ($c, _copy($c, $base), $x);
- my $a = _acmp($c,$trial,$x_org);
+sub _log_int {
+ # calculate integer log of $x to base $base
+ # ref to array, ref to array - return ref to array
+ my ($c, $x, $base) = @_;
-# print STDERR "# trial ", _str($c,$x)," was: $a (0 = exact, -1 too small, +1 too big)\n";
+ # X == 0 => NaN
+ return if @$x == 1 && $x->[0] == 0;
- # found an exact result?
- return ($x,1) if $a == 0;
+ # BASE 0 or 1 => NaN
+ return if @$base == 1 && $base->[0] < 2;
- if ($a > 0)
- {
- # or too big
- _div($c,$trial,$base); _dec($c, $x);
- while (($a = _acmp($c,$trial,$x_org)) > 0)
- {
-# print STDERR "# big _log_int at ", _str($c,$x), "\n";
- _div($c,$trial,$base); _dec($c, $x);
- }
- # result is now exact (a == 0), or too small (a < 0)
- return ($x, $a == 0 ? 1 : 0);
+ # X == 1 => 0 (is exact)
+ if (@$x == 1 && $x->[0] == 1) {
+ @$x = 0;
+ return $x, 1;
}
- # else: result was to small
- _mul($c,$trial,$base);
+ my $cmp = $c->_acmp($x, $base);
- # did we now get the right result?
- $a = _acmp($c,$trial,$x_org);
-
- if ($a == 0) # yes, exactly
- {
- _inc($c, $x);
- return ($x,1);
+ # X == BASE => 1 (is exact)
+ if ($cmp == 0) {
+ @$x = 1;
+ return $x, 1;
}
- return ($x,0) if $a > 0;
-
- # Result still too small (we should come here only if the estimate above
- # was very off base):
-
- # Now let the normal trial run obtain the real result
- # Simple loop that increments $x by 2 in each step, possible overstepping
- # the real result
-
- my $base_mul = _mul($c, _copy($c,$base), $base); # $base * $base
- while (($a = _acmp($c,$trial,$x_org)) < 0)
- {
-# print STDERR "# small _log_int at ", _str($c,$x), "\n";
- _mul($c,$trial,$base_mul); _add($c, $x, [2]);
+ # 1 < X < BASE => 0 (is truncated)
+ if ($cmp < 0) {
+ @$x = 0;
+ return $x, 0;
}
- my $exact = 1;
- if ($a > 0)
- {
- # overstepped the result
- _dec($c, $x);
- _div($c,$trial,$base);
- $a = _acmp($c,$trial,$x_org);
- if ($a > 0)
- {
- _dec($c, $x);
- }
- $exact = 0 if $a != 0; # a = -1 => not exact result, a = 0 => exact
- }
-
- ($x,$exact); # return result
- }
+ my $x_org = $c->_copy($x); # preserve x
-# for debugging:
- use constant DEBUG => 0;
- my $steps = 0;
- sub steps { $steps };
-
-sub _sqrt
- {
- # square-root of $x in place
- # Compute a guess of the result (by rule of thumb), then improve it via
- # Newton's method.
- my ($c,$x) = @_;
-
- if (scalar @$x == 1)
- {
- # fits into one Perl scalar, so result can be computed directly
- $x->[0] = int(sqrt($x->[0]));
- return $x;
- }
- my $y = _copy($c,$x);
- # hopefully _len/2 is < $BASE, the -1 is to always undershot the guess
- # since our guess will "grow"
- my $l = int((_len($c,$x)-1) / 2);
-
- my $lastelem = $x->[-1]; # for guess
- my $elems = scalar @$x - 1;
- # not enough digits, but could have more?
- if ((length($lastelem) <= 3) && ($elems > 1))
- {
- # right-align with zero pad
- my $len = length($lastelem) & 1;
- print "$lastelem => " if DEBUG;
- $lastelem .= substr($x->[-2] . '0' x $BASE_LEN,0,$BASE_LEN);
- # former odd => make odd again, or former even to even again
- $lastelem = $lastelem / 10 if (length($lastelem) & 1) != $len;
- print "$lastelem\n" if DEBUG;
- }
-
- # construct $x (instead of _lsft($c,$x,$l,10)
- my $r = $l % $BASE_LEN; # 10000 00000 00000 00000 ($BASE_LEN=5)
- $l = int($l / $BASE_LEN);
- print "l = $l " if DEBUG;
-
- splice @$x,$l; # keep ref($x), but modify it
-
- # we make the first part of the guess not '1000...0' but int(sqrt($lastelem))
- # that gives us:
- # 14400 00000 => sqrt(14400) => guess first digits to be 120
- # 144000 000000 => sqrt(144000) => guess 379
-
- print "$lastelem (elems $elems) => " if DEBUG;
- $lastelem = $lastelem / 10 if ($elems & 1 == 1); # odd or even?
- my $g = sqrt($lastelem); $g =~ s/\.//; # 2.345 => 2345
- $r -= 1 if $elems & 1 == 0; # 70 => 7
-
- # padd with zeros if result is too short
- $x->[$l--] = int(substr($g . '0' x $r,0,$r+1));
- print "now ",$x->[-1] if DEBUG;
- print " would have been ", int('1' . '0' x $r),"\n" if DEBUG;
-
- # If @$x > 1, we could compute the second elem of the guess, too, to create
- # an even better guess. Not implemented yet. Does it improve performance?
- $x->[$l--] = 0 while ($l >= 0); # all other digits of guess are zero
-
- print "start x= ",_str($c,$x),"\n" if DEBUG;
- my $two = _two();
- my $last = _zero();
- my $lastlast = _zero();
- $steps = 0 if DEBUG;
- while (_acmp($c,$last,$x) != 0 && _acmp($c,$lastlast,$x) != 0)
- {
- $steps++ if DEBUG;
- $lastlast = _copy($c,$last);
- $last = _copy($c,$x);
- _add($c,$x, _div($c,_copy($c,$y),$x));
- _div($c,$x, $two );
- print " x= ",_str($c,$x),"\n" if DEBUG;
- }
- print "\nsteps in sqrt: $steps, " if DEBUG;
- _dec($c,$x) if _acmp($c,$y,_mul($c,_copy($c,$x),$x)) < 0; # overshot?
- print " final ",$x->[-1],"\n" if DEBUG;
- $x;
- }
-
-sub _root
- {
- # take n'th root of $x in place (n >= 3)
- my ($c,$x,$n) = @_;
-
- if (scalar @$x == 1)
- {
- if (scalar @$n > 1)
- {
- # result will always be smaller than 2 so trunc to 1 at once
- $x->[0] = 1;
- }
- else
- {
- # fits into one Perl scalar, so result can be computed directly
- # cannot use int() here, because it rounds wrongly (try
- # (81 ** 3) ** (1/3) to see what I mean)
- #$x->[0] = int( $x->[0] ** (1 / $n->[0]) );
- # round to 8 digits, then truncate result to integer
- $x->[0] = int ( sprintf ("%.8f", $x->[0] ** (1 / $n->[0]) ) );
- }
- return $x;
- }
+ # Compute a guess for the result based on:
+ # $guess = int ( length_in_base_10(X) / ( log(base) / log(10) ) )
+ my $len = $c->_len($x_org);
+ my $log = log($base->[-1]) / log(10);
- # we know now that X is more than one element long
+ # for each additional element in $base, we add $BASE_LEN to the result,
+ # based on the observation that log($BASE, 10) is BASE_LEN and
+ # log(x*y) == log(x) + log(y):
+ $log += (@$base - 1) * $BASE_LEN;
- # if $n is a power of two, we can repeatedly take sqrt($X) and find the
- # proper result, because sqrt(sqrt($x)) == root($x,4)
- my $b = _as_bin($c,$n);
- if ($b =~ /0b1(0+)$/)
- {
- my $count = CORE::length($1); # 0b100 => len('00') => 2
- my $cnt = $count; # counter for loop
- unshift (@$x, 0); # add one element, together with one
- # more below in the loop this makes 2
- while ($cnt-- > 0)
- {
- # 'inflate' $X by adding one element, basically computing
- # $x * $BASE * $BASE. This gives us more $BASE_LEN digits for result
- # since len(sqrt($X)) approx == len($x) / 2.
- unshift (@$x, 0);
- # calculate sqrt($x), $x is now one element to big, again. In the next
- # round we make that two, again.
- _sqrt($c,$x);
- }
- # $x is now one element to big, so truncate result by removing it
- splice (@$x,0,1);
- }
- else
- {
- # trial computation by starting with 2,4,8,16 etc until we overstep
- my $step;
- my $trial = _two();
-
- # while still to do more than X steps
- do
- {
- $step = _two();
- while (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) < 0)
- {
- _mul ($c, $step, [2]);
- _add ($c, $trial, $step);
- }
+ # calculate now a guess based on the values obtained above:
+ my $res = int($len / $log);
- # hit exactly?
- if (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) == 0)
- {
- @$x = @$trial; # make copy while preserving ref to $x
- return $x;
- }
- # overstepped, so go back on step
- _sub($c, $trial, $step);
- } while (scalar @$step > 1 || $step->[0] > 128);
-
- # reset step to 2
- $step = _two();
- # add two, because $trial cannot be exactly the result (otherwise we would
- # already have found it)
- _add($c, $trial, $step);
-
- # and now add more and more (2,4,6,8,10 etc)
- while (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) < 0)
- {
- _add ($c, $trial, $step);
- }
-
- # hit not exactly? (overstepped)
- if (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) > 0)
- {
- _dec($c,$trial);
- }
-
- # hit not exactly? (overstepped)
- # 80 too small, 81 slightly too big, 82 too big
- if (_acmp($c, _pow($c, _copy($c, $trial), $n), $x) > 0)
- {
- _dec ($c, $trial);
- }
-
- @$x = @$trial; # make copy while preserving ref to $x
- return $x;
- }
- $x;
- }
+ @$x = $res;
+ my $trial = $c->_pow($c->_copy($base), $x);
+ my $acmp = $c->_acmp($trial, $x_org);
-##############################################################################
-# binary stuff
+ # Did we get the exact result?
-sub _and
- {
- my ($c,$x,$y) = @_;
-
- # the shortcut makes equal, large numbers _really_ fast, and makes only a
- # very small performance drop for small numbers (e.g. something with less
- # than 32 bit) Since we optimize for large numbers, this is enabled.
- return $x if _acmp($c,$x,$y) == 0; # shortcut
-
- my $m = _one(); my ($xr,$yr);
- my $mask = $AND_MASK;
-
- my $x1 = $x;
- my $y1 = _copy($c,$y); # make copy
- $x = _zero();
- my ($b,$xrr,$yrr);
- use integer;
- while (!_is_zero($c,$x1) && !_is_zero($c,$y1))
- {
- ($x1, $xr) = _div($c,$x1,$mask);
- ($y1, $yr) = _div($c,$y1,$mask);
-
- # make ints() from $xr, $yr
- # this is when the AND_BITS are greater than $BASE and is slower for
- # small (<256 bits) numbers, but faster for large numbers. Disabled
- # due to KISS principle
-
-# $b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
-# $b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
-# _add($c,$x, _mul($c, _new( $c, ($xrr & $yrr) ), $m) );
-
- # 0+ due to '&' doesn't work in strings
- _add($c,$x, _mul($c, [ 0+$xr->[0] & 0+$yr->[0] ], $m) );
- _mul($c,$m,$mask);
- }
- $x;
- }
-
-sub _xor
- {
- my ($c,$x,$y) = @_;
-
- return _zero() if _acmp($c,$x,$y) == 0; # shortcut (see -and)
-
- my $m = _one(); my ($xr,$yr);
- my $mask = $XOR_MASK;
-
- my $x1 = $x;
- my $y1 = _copy($c,$y); # make copy
- $x = _zero();
- my ($b,$xrr,$yrr);
- use integer;
- while (!_is_zero($c,$x1) && !_is_zero($c,$y1))
- {
- ($x1, $xr) = _div($c,$x1,$mask);
- ($y1, $yr) = _div($c,$y1,$mask);
- # make ints() from $xr, $yr (see _and())
- #$b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
- #$b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
- #_add($c,$x, _mul($c, _new( $c, ($xrr ^ $yrr) ), $m) );
-
- # 0+ due to '^' doesn't work in strings
- _add($c,$x, _mul($c, [ 0+$xr->[0] ^ 0+$yr->[0] ], $m) );
- _mul($c,$m,$mask);
- }
- # the loop stops when the shorter of the two numbers is exhausted
- # the remainder of the longer one will survive bit-by-bit, so we simple
- # multiply-add it in
- _add($c,$x, _mul($c, $x1, $m) ) if !_is_zero($c,$x1);
- _add($c,$x, _mul($c, $y1, $m) ) if !_is_zero($c,$y1);
-
- $x;
- }
-
-sub _or
- {
- my ($c,$x,$y) = @_;
-
- return $x if _acmp($c,$x,$y) == 0; # shortcut (see _and)
-
- my $m = _one(); my ($xr,$yr);
- my $mask = $OR_MASK;
-
- my $x1 = $x;
- my $y1 = _copy($c,$y); # make copy
- $x = _zero();
- my ($b,$xrr,$yrr);
- use integer;
- while (!_is_zero($c,$x1) && !_is_zero($c,$y1))
- {
- ($x1, $xr) = _div($c,$x1,$mask);
- ($y1, $yr) = _div($c,$y1,$mask);
- # make ints() from $xr, $yr (see _and())
-# $b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
-# $b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
-# _add($c,$x, _mul($c, _new( $c, ($xrr | $yrr) ), $m) );
-
- # 0+ due to '|' doesn't work in strings
- _add($c,$x, _mul($c, [ 0+$xr->[0] | 0+$yr->[0] ], $m) );
- _mul($c,$m,$mask);
- }
- # the loop stops when the shorter of the two numbers is exhausted
- # the remainder of the longer one will survive bit-by-bit, so we simple
- # multiply-add it in
- _add($c,$x, _mul($c, $x1, $m) ) if !_is_zero($c,$x1);
- _add($c,$x, _mul($c, $y1, $m) ) if !_is_zero($c,$y1);
-
- $x;
- }
-
-sub _as_hex
- {
- # convert a decimal number to hex (ref to array, return ref to string)
- my ($c,$x) = @_;
-
- # fits into one element (handle also 0x0 case)
- return sprintf("0x%x",$x->[0]) if @$x == 1;
-
- my $x1 = _copy($c,$x);
-
- my $es = '';
- my ($xr, $h, $x10000);
- if ($] >= 5.006)
- {
- $x10000 = [ 0x10000 ]; $h = 'h4';
- }
- else
- {
- $x10000 = [ 0x1000 ]; $h = 'h3';
- }
- while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
- {
- ($x1, $xr) = _div($c,$x1,$x10000);
- $es .= unpack($h,pack('V',$xr->[0]));
- }
- $es = reverse $es;
- $es =~ s/^[0]+//; # strip leading zeros
- '0x' . $es; # return result prepended with 0x
- }
-
-sub _as_bin
- {
- # convert a decimal number to bin (ref to array, return ref to string)
- my ($c,$x) = @_;
-
- # fits into one element (and Perl recent enough), handle also 0b0 case
- # handle zero case for older Perls
- if ($] <= 5.005 && @$x == 1 && $x->[0] == 0)
- {
- my $t = '0b0'; return $t;
- }
- if (@$x == 1 && $] >= 5.006)
- {
- my $t = sprintf("0b%b",$x->[0]);
- return $t;
- }
- my $x1 = _copy($c,$x);
+ return $x, 1 if $acmp == 0;
- my $es = '';
- my ($xr, $b, $x10000);
- if ($] >= 5.006)
- {
- $x10000 = [ 0x10000 ]; $b = 'b16';
- }
- else
- {
- $x10000 = [ 0x1000 ]; $b = 'b12';
- }
- while (!(@$x1 == 1 && $x1->[0] == 0)) # _is_zero()
- {
- ($x1, $xr) = _div($c,$x1,$x10000);
- $es .= unpack($b,pack('v',$xr->[0]));
- }
- $es = reverse $es;
- $es =~ s/^[0]+//; # strip leading zeros
- '0b' . $es; # return result prepended with 0b
- }
-
-sub _as_oct
- {
- # convert a decimal number to octal (ref to array, return ref to string)
- my ($c,$x) = @_;
+ # Too small?
- # fits into one element (handle also 0 case)
- return sprintf("0%o",$x->[0]) if @$x == 1;
+ while ($acmp < 0) {
+ $c->_mul($trial, $base);
+ $c->_inc($x);
+ $acmp = $c->_acmp($trial, $x_org);
+ }
- my $x1 = _copy($c,$x);
+ # Too big?
- my $es = '';
- my $xr;
- my $x1000 = [ 0100000 ];
- while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
- {
- ($x1, $xr) = _div($c,$x1,$x1000);
- $es .= reverse sprintf("%05o", $xr->[0]);
+ while ($acmp > 0) {
+ $c->_div($trial, $base);
+ $c->_dec($x);
+ $acmp = $c->_acmp($trial, $x_org);
}
- $es = reverse $es;
- $es =~ s/^0+//; # strip leading zeros
- '0' . $es; # return result prepended with 0
- }
-sub _from_oct
- {
- # convert a octal number to decimal (string, return ref to array)
- my ($c,$os) = @_;
-
- # for older Perls, play safe
- my $m = [ 0100000 ];
- my $d = 5; # 5 digits at a time
+ return $x, 1 if $acmp == 0; # result is exact
+ return $x, 0; # result is too small
+}
- my $mul = _one();
- my $x = _zero();
+# for debugging:
+use constant DEBUG => 0;
+my $steps = 0;
+sub steps { $steps };
+
+sub _sqrt {
+ # square-root of $x in place
+ # Compute a guess of the result (by rule of thumb), then improve it via
+ # Newton's method.
+ my ($c, $x) = @_;
- my $len = int( (length($os)-1)/$d ); # $d digit parts, w/o the '0'
- my $val; my $i = -$d;
- while ($len >= 0)
- {
- $val = substr($os,$i,$d); # get oct digits
- $val = CORE::oct($val);
- $i -= $d; $len --;
- my $adder = [ $val ];
- _add ($c, $x, _mul ($c, $adder, $mul ) ) if $val != 0;
- _mul ($c, $mul, $m ) if $len >= 0; # skip last mul
- }
- $x;
- }
-
-sub _from_hex
- {
- # convert a hex number to decimal (string, return ref to array)
- my ($c,$hs) = @_;
-
- my $m = _new($c, 0x10000000); # 28 bit at a time (<32 bit!)
- my $d = 7; # 7 digits at a time
- if ($] <= 5.006)
- {
- # for older Perls, play safe
- $m = [ 0x10000 ]; # 16 bit at a time (<32 bit!)
- $d = 4; # 4 digits at a time
+ if (@$x == 1) {
+ # fits into one Perl scalar, so result can be computed directly
+ $x->[0] = int(sqrt($x->[0]));
+ return $x;
}
+ my $y = $c->_copy($x);
+ # hopefully _len/2 is < $BASE, the -1 is to always undershot the guess
+ # since our guess will "grow"
+ my $l = int(($c->_len($x)-1) / 2);
+
+ my $lastelem = $x->[-1]; # for guess
+ my $elems = @$x - 1;
+ # not enough digits, but could have more?
+ if ((length($lastelem) <= 3) && ($elems > 1)) {
+ # right-align with zero pad
+ my $len = length($lastelem) & 1;
+ print "$lastelem => " if DEBUG;
+ $lastelem .= substr($x->[-2] . '0' x $BASE_LEN, 0, $BASE_LEN);
+ # former odd => make odd again, or former even to even again
+ $lastelem = $lastelem / 10 if (length($lastelem) & 1) != $len;
+ print "$lastelem\n" if DEBUG;
+ }
+
+ # construct $x (instead of $c->_lsft($x, $l, 10)
+ my $r = $l % $BASE_LEN; # 10000 00000 00000 00000 ($BASE_LEN=5)
+ $l = int($l / $BASE_LEN);
+ print "l = $l " if DEBUG;
+
+ splice @$x, $l; # keep ref($x), but modify it
+
+ # we make the first part of the guess not '1000...0' but int(sqrt($lastelem))
+ # that gives us:
+ # 14400 00000 => sqrt(14400) => guess first digits to be 120
+ # 144000 000000 => sqrt(144000) => guess 379
+
+ print "$lastelem (elems $elems) => " if DEBUG;
+ $lastelem = $lastelem / 10 if ($elems & 1 == 1); # odd or even?
+ my $g = sqrt($lastelem);
+ $g =~ s/\.//; # 2.345 => 2345
+ $r -= 1 if $elems & 1 == 0; # 70 => 7
+
+ # padd with zeros if result is too short
+ $x->[$l--] = int(substr($g . '0' x $r, 0, $r+1));
+ print "now ", $x->[-1] if DEBUG;
+ print " would have been ", int('1' . '0' x $r), "\n" if DEBUG;
+
+ # If @$x > 1, we could compute the second elem of the guess, too, to create
+ # an even better guess. Not implemented yet. Does it improve performance?
+ $x->[$l--] = 0 while ($l >= 0); # all other digits of guess are zero
+
+ print "start x= ", $c->_str($x), "\n" if DEBUG;
+ my $two = $c->_two();
+ my $last = $c->_zero();
+ my $lastlast = $c->_zero();
+ $steps = 0 if DEBUG;
+ while ($c->_acmp($last, $x) != 0 && $c->_acmp($lastlast, $x) != 0) {
+ $steps++ if DEBUG;
+ $lastlast = $c->_copy($last);
+ $last = $c->_copy($x);
+ $c->_add($x, $c->_div($c->_copy($y), $x));
+ $c->_div($x, $two );
+ print " x= ", $c->_str($x), "\n" if DEBUG;
+ }
+ print "\nsteps in sqrt: $steps, " if DEBUG;
+ $c->_dec($x) if $c->_acmp($y, $c->_mul($c->_copy($x), $x)) < 0; # overshot?
+ print " final ", $x->[-1], "\n" if DEBUG;
+ $x;
+}
- my $mul = _one();
- my $x = _zero();
+sub _root {
+ # Take n'th root of $x in place (n >= 2)
- my $len = int( (length($hs)-2)/$d ); # $d digit parts, w/o the '0x'
- my $val; my $i = -$d;
- while ($len >= 0)
- {
- $val = substr($hs,$i,$d); # get hex digits
- $val =~ s/^0x// if $len == 0; # for last part only because
- $val = CORE::hex($val); # hex does not like wrong chars
- $i -= $d; $len --;
- my $adder = [ $val ];
- # if the resulting number was to big to fit into one element, create a
- # two-element version (bug found by Mark Lakata - Thanx!)
- if (CORE::length($val) > $BASE_LEN)
- {
- $adder = _new($c,$val);
- }
- _add ($c, $x, _mul ($c, $adder, $mul ) ) if $val != 0;
- _mul ($c, $mul, $m ) if $len >= 0; # skip last mul
- }
- $x;
- }
-
-sub _from_bin
- {
- # convert a hex number to decimal (string, return ref to array)
- my ($c,$bs) = @_;
-
- # instead of converting X (8) bit at a time, it is faster to "convert" the
- # number to hex, and then call _from_hex.
-
- my $hs = $bs;
- $hs =~ s/^[+-]?0b//; # remove sign and 0b
- my $l = length($hs); # bits
- $hs = '0' x (8-($l % 8)) . $hs if ($l % 8) != 0; # padd left side w/ 0
- my $h = '0x' . unpack('H*', pack ('B*', $hs)); # repack as hex
-
- $c->_from_hex($h);
- }
+ my ($c, $x, $n) = @_;
-##############################################################################
-# special modulus functions
+ # Small numbers.
-sub _modinv
- {
- # modular multiplicative inverse
- my ($c,$x,$y) = @_;
-
- # modulo zero
- if (_is_zero($c, $y)) {
- return (undef, undef);
- }
-
- # modulo one
- if (_is_one($c, $y)) {
- return (_zero($c), '+');
- }
-
- my $u = _zero($c);
- my $v = _one($c);
- my $a = _copy($c,$y);
- my $b = _copy($c,$x);
-
- # Euclid's Algorithm for bgcd(), only that we calc bgcd() ($a) and the result
- # ($u) at the same time. See comments in BigInt for why this works.
- my $q;
- my $sign = 1;
- {
- ($a, $q, $b) = ($b, _div($c, $a, $b)); # step 1
- last if _is_zero($c, $b);
-
- my $t = _add($c, # step 2:
- _mul($c, _copy($c, $v), $q) , # t = v * q
- $u ); # + u
- $u = $v; # u = v
- $v = $t; # v = t
- $sign = -$sign;
- redo;
- }
-
- # if the gcd is not 1, then return NaN
- return (undef, undef) unless _is_one($c, $a);
-
- ($v, $sign == 1 ? '+' : '-');
- }
-
-sub _modpow
- {
- # modulus of power ($x ** $y) % $z
- my ($c,$num,$exp,$mod) = @_;
-
- # a^b (mod 1) = 0 for all a and b
- if (_is_one($c,$mod))
- {
- @$num = 0;
- return $num;
+ if (@$x == 1 && @$n == 1) {
+ # Result can be computed directly. Adjust initial result for numerical
+ # errors, e.g., int(1000**(1/3)) is 2, not 3.
+ my $y = int($x->[0] ** (1 / $n->[0]));
+ my $yp1 = $y + 1;
+ $y = $yp1 if $yp1 ** $n->[0] == $x->[0];
+ $x->[0] = $y;
+ return $x;
}
- # 0^a (mod m) = 0 if m != 0, a != 0
- # 0^0 (mod m) = 1 if m != 0
- if (_is_zero($c, $num)) {
- if (_is_zero($c, $exp)) {
- @$num = 1;
- } else {
- @$num = 0;
- }
- return $num;
- }
-
-# $num = _mod($c,$num,$mod); # this does not make it faster
+ # If x <= n, the result is always (truncated to) 1.
- my $acc = _copy($c,$num); my $t = _one();
-
- my $expbin = _as_bin($c,$exp); $expbin =~ s/^0b//;
- my $len = length($expbin);
- while (--$len >= 0)
+ if ((@$x > 1 || $x -> [0] > 0) && # if x is non-zero ...
+ $c -> _acmp($x, $n) <= 0) # ... and x <= n
{
- if ( substr($expbin,$len,1) eq '1') # is_odd
- {
- _mul($c,$t,$acc);
- $t = _mod($c,$t,$mod);
- }
- _mul($c,$acc,$acc);
- $acc = _mod($c,$acc,$mod);
- }
- @$num = @$t;
- $num;
- }
-
-sub _gcd {
- # Greatest common divisor.
-
- my ($c, $x, $y) = @_;
-
- # gcd(0,0) = 0
- # gcd(0,a) = a, if a != 0
-
- if (@$x == 1 && $x->[0] == 0) {
- if (@$y == 1 && $y->[0] == 0) {
- @$x = 0;
- } else {
- @$x = @$y;
- }
+ my $one = $x -> _one();
+ @$x = @$one;
return $x;
}
- # Until $y is zero ...
-
- until (@$y == 1 && $y->[0] == 0) {
-
- # Compute remainder.
+ # If $n is a power of two, we take sqrt($x) repeatedly and find the proper
+ # result, because, e.g., sqrt(sqrt($x)) == root($x, 4)
+
+ my $b = $c -> _as_bin($n);
+ if ($b =~ /0b1(0+)$/) {
+ my $count = length($1); # 0b100 => len('00') => 2
+ my $cnt = $count; # counter for loop
+ unshift @$x, 0; # add one element, together with one
+ # more below in the loop this makes 2
+ while ($cnt-- > 0) {
+ # 'Inflate' $x by adding one element, basically computing
+ # $x * $BASE * $BASE. This gives us more $BASE_LEN digits for
+ # result since len(sqrt($X)) approx == len($x) / 2.
+ unshift @$x, 0;
+ # Calculate sqrt($x), $x is now one element to big, again. In the
+ # next round we make that two, again.
+ $c -> _sqrt($x);
+ }
- _mod($c, $x, $y);
+ # $x is now one element too big, so truncate result by removing it.
+ shift @$x;
- # Swap $x and $y.
-
- my $tmp = [ @$x ];
- @$x = @$y;
- $y = $tmp; # no deref here; that would modify input $y
+ return $x;
}
- return $x;
-}
-
-##############################################################################
-##############################################################################
-
-1;
-__END__
-
-=pod
-
-=head1 NAME
-
-Math::BigInt::Calc - Pure Perl module to support Math::BigInt
-
-=head1 SYNOPSIS
-
-This library provides support for big integer calculations. It is not
-intended to be used by other modules. Other modules which support the same
-API (see below) can also be used to support Math::BigInt, like
-Math::BigInt::GMP and Math::BigInt::Pari.
-
-=head1 DESCRIPTION
-
-In this library, the numbers are represented in base B = 10**N, where N is
-the largest possible value that does not cause overflow in the intermediate
-computations. The base B elements are stored in an array, with the least
-significant element stored in array element zero. There are no leading zero
-elements, except a single zero element when the number is zero.
-
-For instance, if B = 10000, the number 1234567890 is represented internally
-as [3456, 7890, 12].
-
-=head1 THE Math::BigInt API
-
-In order to allow for multiple big integer libraries, Math::BigInt was
-rewritten to use a plug-in library for core math routines. Any module which
-conforms to the API can be used by Math::BigInt by using this in your program:
-
- use Math::BigInt lib => 'libname';
-
-'libname' is either the long name, like 'Math::BigInt::Pari', or only the short
-version, like 'Pari'.
-
-=head2 General Notes
-
-A library only needs to deal with unsigned big integers. Testing of input
-parameter validity is done by the caller, so there is no need to worry about
-underflow (e.g., in C<_sub()> and C<_dec()>) nor about division by zero (e.g.,
-in C<_div()>) or similar cases.
-
-For some methods, the first parameter can be modified. That includes the
-possibility that you return a reference to a completely different object
-instead. Although keeping the reference and just changing its contents is
-preferred over creating and returning a different reference.
-
-Return values are always objects, strings, Perl scalars, or true/false for
-comparison routines.
-
-=head2 API version 1
-
-The following methods must be defined in order to support the use by
-Math::BigInt v1.70 or later.
-
-=head3 API version
-
-=over 4
-
-=item I<api_version()>
-
-Return API version as a Perl scalar, 1 for Math::BigInt v1.70, 2 for
-Math::BigInt v1.83.
-
-=back
-
-=head3 Constructors
-
-=over 4
-
-=item I<_new(STR)>
-
-Convert a string representing an unsigned decimal number to an object
-representing the same number. The input is normalize, i.e., it matches
-C<^(0|[1-9]\d*)$>.
-
-=item I<_zero()>
-
-Return an object representing the number zero.
-
-=item I<_one()>
-
-Return an object representing the number one.
-
-=item I<_two()>
-
-Return an object representing the number two.
-
-=item I<_ten()>
-
-Return an object representing the number ten.
-
-=item I<_from_bin(STR)>
-
-Return an object given a string representing a binary number. The input has a
-'0b' prefix and matches the regular expression C<^0[bB](0|1[01]*)$>.
-
-=item I<_from_oct(STR)>
-
-Return an object given a string representing an octal number. The input has a
-'0' prefix and matches the regular expression C<^0[1-7]*$>.
-
-=item I<_from_hex(STR)>
-
-Return an object given a string representing a hexadecimal number. The input
-has a '0x' prefix and matches the regular expression
-C<^0x(0|[1-9a-fA-F][\da-fA-F]*)$>.
-
-=back
-
-=head3 Mathematical functions
-
-Each of these methods may modify the first input argument, except I<_bgcd()>,
-which shall not modify any input argument, and I<_sub()> which may modify the
-second input argument.
-
-=over 4
-
-=item I<_add(OBJ1, OBJ2)>
-
-Returns the result of adding OBJ2 to OBJ1.
-
-=item I<_mul(OBJ1, OBJ2)>
-
-Returns the result of multiplying OBJ2 and OBJ1.
-
-=item I<_div(OBJ1, OBJ2)>
-
-Returns the result of dividing OBJ1 by OBJ2 and truncating the result to an
-integer.
-
-=item I<_sub(OBJ1, OBJ2, FLAG)>
-
-=item I<_sub(OBJ1, OBJ2)>
-
-Returns the result of subtracting OBJ2 by OBJ1. If C<flag> is false or omitted,
-OBJ1 might be modified. If C<flag> is true, OBJ2 might be modified.
-
-=item I<_dec(OBJ)>
-
-Decrement OBJ by one.
-
-=item I<_inc(OBJ)>
-
-Increment OBJ by one.
-
-=item I<_mod(OBJ1, OBJ2)>
-
-Return OBJ1 modulo OBJ2, i.e., the remainder after dividing OBJ1 by OBJ2.
-
-=item I<_sqrt(OBJ)>
-
-Return the square root of the object, truncated to integer.
-
-=item I<_root(OBJ, N)>
-
-Return Nth root of the object, truncated to int. N is E<gt>= 3.
-
-=item I<_fac(OBJ)>
-
-Return factorial of object (1*2*3*4*...).
-
-=item I<_pow(OBJ1, OBJ2)>
-
-Return OBJ1 to the power of OBJ2. By convention, 0**0 = 1.
-
-=item I<_modinv(OBJ1, OBJ2)>
-
-Return modular multiplicative inverse, i.e., return OBJ3 so that
-
- (OBJ3 * OBJ1) % OBJ2 = 1 % OBJ2
-
-The result is returned as two arguments. If the modular multiplicative
-inverse does not exist, both arguments are undefined. Otherwise, the
-arguments are a number (object) and its sign ("+" or "-").
-
-The output value, with its sign, must either be a positive value in the
-range 1,2,...,OBJ2-1 or the same value subtracted OBJ2. For instance, if the
-input arguments are objects representing the numbers 7 and 5, the method
-must either return an object representing the number 3 and a "+" sign, since
-(3*7) % 5 = 1 % 5, or an object representing the number 2 and "-" sign,
-since (-2*7) % 5 = 1 % 5.
-
-=item I<_modpow(OBJ1, OBJ2, OBJ3)>
-
-Return modular exponentiation, (OBJ1 ** OBJ2) % OBJ3.
-
-=item I<_rsft(OBJ, N, B)>
-
-Shift object N digits right in base B and return the resulting object. This is
-equivalent to performing integer division by B**N and discarding the remainder,
-except that it might be much faster, depending on how the number is represented
-internally.
-
-For instance, if the object $obj represents the hexadecimal number 0xabcde,
-then C<_rsft($obj, 2, 16)> returns an object representing the number 0xabc. The
-"remainer", 0xde, is discarded and not returned.
-
-=item I<_lsft(OBJ, N, B)>
-
-Shift the object N digits left in base B. This is equivalent to multiplying by
-B**N, except that it might be much faster, depending on how the number is
-represented internally.
-
-=item I<_log_int(OBJ, B)>
-
-Return integer log of OBJ to base BASE. This method has two output arguments,
-the OBJECT and a STATUS. The STATUS is Perl scalar; it is 1 if OBJ is the exact
-result, 0 if the result was truncted to give OBJ, and undef if it is unknown
-whether OBJ is the exact result.
+ my $DEBUG = 0;
-=item I<_gcd(OBJ1, OBJ2)>
+ # Now the general case. This works by finding an initial guess. If this
+ # guess is incorrect, a relatively small delta is chosen. This delta is
+ # used to find a lower and upper limit for the correct value. The delta is
+ # doubled in each iteration. When a lower and upper limit is found,
+ # bisection is applied to narrow down the region until we have the correct
+ # value.
-Return the greatest common divisor of OBJ1 and OBJ2.
-
-=back
-
-=head3 Bitwise operators
-
-Each of these methods may modify the first input argument.
-
-=over 4
-
-=item I<_and(OBJ1, OBJ2)>
-
-Return bitwise and. If necessary, the smallest number is padded with leading
-zeros.
-
-=item I<_or(OBJ1, OBJ2)>
-
-Return bitwise or. If necessary, the smallest number is padded with leading
-zeros.
-
-=item I<_xor(OBJ1, OBJ2)>
-
-Return bitwise exclusive or. If necessary, the smallest number is padded
-with leading zeros.
-
-=back
-
-=head3 Boolean operators
-
-=over 4
-
-=item I<_is_zero(OBJ)>
-
-Returns a true value if OBJ is zero, and false value otherwise.
-
-=item I<_is_one(OBJ)>
-
-Returns a true value if OBJ is one, and false value otherwise.
-
-=item I<_is_two(OBJ)>
-
-Returns a true value if OBJ is two, and false value otherwise.
-
-=item I<_is_ten(OBJ)>
-
-Returns a true value if OBJ is ten, and false value otherwise.
-
-=item I<_is_even(OBJ)>
-
-Return a true value if OBJ is an even integer, and a false value otherwise.
-
-=item I<_is_odd(OBJ)>
-
-Return a true value if OBJ is an even integer, and a false value otherwise.
-
-=item I<_acmp(OBJ1, OBJ2)>
-
-Compare OBJ1 and OBJ2 and return -1, 0, or 1, if OBJ1 is less than, equal
-to, or larger than OBJ2, respectively.
-
-=back
-
-=head3 String conversion
-
-=over 4
-
-=item I<_str(OBJ)>
-
-Return a string representing the object. The returned string should have no
-leading zeros, i.e., it should match C<^(0|[1-9]\d*)$>.
+ # Split x into mantissa and exponent in base 10, so that
+ #
+ # x = xm * 10^xe, where 0 < xm < 1 and xe is an integer
-=item I<_as_bin(OBJ)>
+ my $x_str = $c -> _str($x);
+ my $xm = "." . $x_str;
+ my $xe = length($x_str);
-Return the binary string representation of the number. The string must have a
-'0b' prefix.
+ # From this we compute the base 10 logarithm of x
+ #
+ # log_10(x) = log_10(xm) + log_10(xe^10)
+ # = log(xm)/log(10) + xe
+ #
+ # and then the base 10 logarithm of y, where y = x^(1/n)
+ #
+ # log_10(y) = log_10(x)/n
-=item I<_as_oct(OBJ)>
+ my $log10x = log($xm) / log(10) + $xe;
+ my $log10y = $log10x / $c -> _num($n);
-Return the octal string representation of the number. The string must have
-a '0x' prefix.
+ # And from this we compute ym and ye, the mantissa and exponent (in
+ # base 10) of y, where 1 < ym <= 10 and ye is an integer.
-Note: This method was required from Math::BigInt version 1.78, but the required
-API version number was not incremented, so there are older libraries that
-support API version 1, but do not support C<_as_oct()>.
+ my $ye = int $log10y;
+ my $ym = 10 ** ($log10y - $ye);
-=item I<_as_hex(OBJ)>
+ # Finally, we scale the mantissa and exponent to incraese the integer
+ # part of ym, before building the string representing our guess of y.
-Return the hexadecimal string representation of the number. The string must
-have a '0x' prefix.
+ if ($DEBUG) {
+ print "\n";
+ print "xm = $xm\n";
+ print "xe = $xe\n";
+ print "log10x = $log10x\n";
+ print "log10y = $log10y\n";
+ print "ym = $ym\n";
+ print "ye = $ye\n";
+ print "\n";
+ }
-=back
+ my $d = $ye < 15 ? $ye : 15;
+ $ym *= 10 ** $d;
+ $ye -= $d;
-=head3 Numeric conversion
+ my $y_str = sprintf('%.0f', $ym) . "0" x $ye;
+ my $y = $c -> _new($y_str);
-=over 4
+ if ($DEBUG) {
+ print "ym = $ym\n";
+ print "ye = $ye\n";
+ print "\n";
+ print "y_str = $y_str (initial guess)\n";
+ print "\n";
+ }
-=item I<_num(OBJ)>
+ # See if our guess y is correct.
-Given an object, return a Perl scalar number (int/float) representing this
-number.
+ my $trial = $c -> _pow($c -> _copy($y), $n);
+ my $acmp = $c -> _acmp($trial, $x);
-=back
+ if ($acmp == 0) {
+ @$x = @$y;
+ return $x;
+ }
-=head3 Miscellaneous
+ # Find a lower and upper limit for the correct value of y. Start off with a
+ # delta value that is approximately the size of the accuracy of the guess.
+
+ my $lower;
+ my $upper;
+
+ my $delta = $c -> _new("1" . ("0" x $ye));
+ my $two = $c -> _two();
+
+ if ($acmp < 0) {
+ $lower = $y;
+ while ($acmp < 0) {
+ $upper = $c -> _add($c -> _copy($lower), $delta);
+
+ if ($DEBUG) {
+ print "lower = $lower\n";
+ print "upper = $upper\n";
+ print "delta = $delta\n";
+ print "\n";
+ }
+ $acmp = $c -> _acmp($c -> _pow($c -> _copy($upper), $n), $x);
+ if ($acmp == 0) {
+ @$x = @$upper;
+ return $x;
+ }
+ $delta = $c -> _mul($delta, $two);
+ }
+ }
-=over 4
+ elsif ($acmp > 0) {
+ $upper = $y;
+ my $zero = $c -> _zero();
+ while ($acmp > 0) {
+ if ($c -> _acmp($upper, $delta) <= 0) {
+ $lower = $c -> _zero();
+ last;
+ }
+ $lower = $c -> _sub($c -> _copy($upper), $delta);
+
+ if ($DEBUG) {
+ print "lower = $lower\n";
+ print "upper = $upper\n";
+ print "delta = $delta\n";
+ print "\n";
+ }
+ $acmp = $c -> _acmp($c -> _pow($c -> _copy($lower), $n), $x);
+ if ($acmp == 0) {
+ @$x = @$lower;
+ return $x;
+ }
+ $delta = $c -> _mul($delta, $two);
+ }
+ }
-=item I<_copy(OBJ)>
+ # Use bisection to narrow down the interval.
-Return a true copy of the object.
+ my $one = $c -> _one();
+ {
-=item I<_len(OBJ)>
+ $delta = $c -> _sub($c -> _copy($upper), $lower);
+ if ($c -> _acmp($delta, $one) <= 0) {
+ @$x = @$lower;
+ return $x;
+ }
-Returns the number of the decimal digits in the number. The output is a
-Perl scalar.
+ if ($DEBUG) {
+ print "lower = $lower\n";
+ print "upper = $upper\n";
+ print "delta = $delta\n";
+ print "\n";
+ }
-=item I<_zeros(OBJ)>
+ $delta = $c -> _div($delta, $two);
+ my $middle = $c -> _add($c -> _copy($lower), $delta);
-Return the number of trailing decimal zeros. The output is a Perl scalar.
+ $acmp = $c -> _acmp($c -> _pow($c -> _copy($middle), $n), $x);
+ if ($acmp < 0) {
+ $lower = $middle;
+ } elsif ($acmp > 0) {
+ $upper = $middle;
+ } else {
+ @$x = @$middle;
+ return $x;
+ }
-=item I<_digit(OBJ, N)>
+ redo;
+ }
-Return the Nth digit as a Perl scalar. N is a Perl scalar, where zero refers to
-the rightmost (least significant) digit, and negative values count from the
-left (most significant digit). If $obj represents the number 123, then
-I<_digit($obj, 0)> is 3 and I<_digit(123, -1)> is 1.
+ $x;
+}
-=item I<_check(OBJ)>
+##############################################################################
+# binary stuff
-Return a true value if the object is OK, and a false value otherwise. This is a
-check routine to test the internal state of the object for corruption.
+sub _and {
+ my ($c, $x, $y) = @_;
-=back
+ # the shortcut makes equal, large numbers _really_ fast, and makes only a
+ # very small performance drop for small numbers (e.g. something with less
+ # than 32 bit) Since we optimize for large numbers, this is enabled.
+ return $x if $c->_acmp($x, $y) == 0; # shortcut
-=head2 API version 2
+ my $m = $c->_one();
+ my ($xr, $yr);
+ my $mask = $AND_MASK;
-The following methods are required for an API version of 2 or greater.
+ my $x1 = $c->_copy($x);
+ my $y1 = $c->_copy($y);
+ my $z = $c->_zero();
-=head3 Constructors
+ use integer;
+ until ($c->_is_zero($x1) || $c->_is_zero($y1)) {
+ ($x1, $xr) = $c->_div($x1, $mask);
+ ($y1, $yr) = $c->_div($y1, $mask);
-=over 4
+ $c->_add($z, $c->_mul([ 0 + $xr->[0] & 0 + $yr->[0] ], $m));
+ $c->_mul($m, $mask);
+ }
-=item I<_1ex(N)>
+ @$x = @$z;
+ return $x;
+}
-Return an object representing the number 10**N where N E<gt>= 0 is a Perl
-scalar.
+sub _xor {
+ my ($c, $x, $y) = @_;
-=back
+ return $c->_zero() if $c->_acmp($x, $y) == 0; # shortcut (see -and)
-=head3 Mathematical functions
+ my $m = $c->_one();
+ my ($xr, $yr);
+ my $mask = $XOR_MASK;
-=over 4
+ my $x1 = $c->_copy($x);
+ my $y1 = $c->_copy($y); # make copy
+ my $z = $c->_zero();
-=item I<_nok(OBJ1, OBJ2)>
+ use integer;
+ until ($c->_is_zero($x1) || $c->_is_zero($y1)) {
+ ($x1, $xr) = $c->_div($x1, $mask);
+ ($y1, $yr) = $c->_div($y1, $mask);
+ # make ints() from $xr, $yr (see _and())
+ #$b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
+ #$b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
+ #$c->_add($x, $c->_mul($c->_new($xrr ^ $yrr)), $m) );
+
+ $c->_add($z, $c->_mul([ 0 + $xr->[0] ^ 0 + $yr->[0] ], $m));
+ $c->_mul($m, $mask);
+ }
+ # the loop stops when the shorter of the two numbers is exhausted
+ # the remainder of the longer one will survive bit-by-bit, so we simple
+ # multiply-add it in
+ $c->_add($z, $c->_mul($x1, $m) ) if !$c->_is_zero($x1);
+ $c->_add($z, $c->_mul($y1, $m) ) if !$c->_is_zero($y1);
+
+ @$x = @$z;
+ return $x;
+}
-Return the binomial coefficient OBJ1 over OBJ1.
+sub _or {
+ my ($c, $x, $y) = @_;
-=back
+ return $x if $c->_acmp($x, $y) == 0; # shortcut (see _and)
-=head3 Miscellaneous
+ my $m = $c->_one();
+ my ($xr, $yr);
+ my $mask = $OR_MASK;
-=over 4
+ my $x1 = $c->_copy($x);
+ my $y1 = $c->_copy($y); # make copy
+ my $z = $c->_zero();
-=item I<_alen(OBJ)>
+ use integer;
+ until ($c->_is_zero($x1) || $c->_is_zero($y1)) {
+ ($x1, $xr) = $c->_div($x1, $mask);
+ ($y1, $yr) = $c->_div($y1, $mask);
+ # make ints() from $xr, $yr (see _and())
+ # $b = 1; $xrr = 0; foreach (@$xr) { $xrr += $_ * $b; $b *= $BASE; }
+ # $b = 1; $yrr = 0; foreach (@$yr) { $yrr += $_ * $b; $b *= $BASE; }
+ # $c->_add($x, $c->_mul(_new( $c, ($xrr | $yrr) ), $m) );
+
+ $c->_add($z, $c->_mul([ 0 + $xr->[0] | 0 + $yr->[0] ], $m));
+ $c->_mul($m, $mask);
+ }
+ # the loop stops when the shorter of the two numbers is exhausted
+ # the remainder of the longer one will survive bit-by-bit, so we simple
+ # multiply-add it in
+ $c->_add($z, $c->_mul($x1, $m) ) if !$c->_is_zero($x1);
+ $c->_add($z, $c->_mul($y1, $m) ) if !$c->_is_zero($y1);
+
+ @$x = @$z;
+ return $x;
+}
-Return the approximate number of decimal digits of the object. The
-output is one Perl scalar. This estimate must be greater than or equal
-to what C<_len()> returns.
+sub _as_hex {
+ # convert a decimal number to hex (ref to array, return ref to string)
+ my ($c, $x) = @_;
-=back
+ # fits into one element (handle also 0x0 case)
+ return sprintf("0x%x", $x->[0]) if @$x == 1;
-=head2 API optional methods
+ my $x1 = $c->_copy($x);
-The following methods are optional, and can be defined if the underlying lib
-has a fast way to do them. If undefined, Math::BigInt will use pure Perl (hence
-slow) fallback routines to emulate these:
+ my $es = '';
+ my ($xr, $h, $x10000);
+ if ($] >= 5.006) {
+ $x10000 = [ 0x10000 ];
+ $h = 'h4';
+ } else {
+ $x10000 = [ 0x1000 ];
+ $h = 'h3';
+ }
+ while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
+ {
+ ($x1, $xr) = $c->_div($x1, $x10000);
+ $es .= unpack($h, pack('V', $xr->[0]));
+ }
+ $es = reverse $es;
+ $es =~ s/^[0]+//; # strip leading zeros
+ '0x' . $es; # return result prepended with 0x
+}
-=head3 Signed bitwise operators.
+sub _as_bin {
+ # convert a decimal number to bin (ref to array, return ref to string)
+ my ($c, $x) = @_;
-Each of these methods may modify the first input argument.
+ # fits into one element (and Perl recent enough), handle also 0b0 case
+ # handle zero case for older Perls
+ if ($] <= 5.005 && @$x == 1 && $x->[0] == 0) {
+ my $t = '0b0';
+ return $t;
+ }
+ if (@$x == 1 && $] >= 5.006) {
+ my $t = sprintf("0b%b", $x->[0]);
+ return $t;
+ }
+ my $x1 = $c->_copy($x);
-=over 4
+ my $es = '';
+ my ($xr, $b, $x10000);
+ if ($] >= 5.006) {
+ $x10000 = [ 0x10000 ];
+ $b = 'b16';
+ } else {
+ $x10000 = [ 0x1000 ];
+ $b = 'b12';
+ }
+ while (!(@$x1 == 1 && $x1->[0] == 0)) # _is_zero()
+ {
+ ($x1, $xr) = $c->_div($x1, $x10000);
+ $es .= unpack($b, pack('v', $xr->[0]));
+ }
+ $es = reverse $es;
+ $es =~ s/^[0]+//; # strip leading zeros
+ '0b' . $es; # return result prepended with 0b
+}
-=item I<_signed_or(OBJ1, OBJ2, SIGN1, SIGN2)>
+sub _as_oct {
+ # convert a decimal number to octal (ref to array, return ref to string)
+ my ($c, $x) = @_;
-Return the signed bitwise or.
+ # fits into one element (handle also 0 case)
+ return sprintf("0%o", $x->[0]) if @$x == 1;
-=item I<_signed_and(OBJ1, OBJ2, SIGN1, SIGN2)>
+ my $x1 = $c->_copy($x);
-Return the signed bitwise and.
+ my $es = '';
+ my $xr;
+ my $x1000 = [ 0100000 ];
+ while (@$x1 != 1 || $x1->[0] != 0) # _is_zero()
+ {
+ ($x1, $xr) = $c->_div($x1, $x1000);
+ $es .= reverse sprintf("%05o", $xr->[0]);
+ }
+ $es = reverse $es;
+ $es =~ s/^0+//; # strip leading zeros
+ '0' . $es; # return result prepended with 0
+}
-=item I<_signed_xor(OBJ1, OBJ2, SIGN1, SIGN2)>
+sub _from_oct {
+ # convert a octal number to decimal (string, return ref to array)
+ my ($c, $os) = @_;
-Return the signed bitwise exclusive or.
+ # for older Perls, play safe
+ my $m = [ 0100000 ];
+ my $d = 5; # 5 digits at a time
+
+ my $mul = $c->_one();
+ my $x = $c->_zero();
+
+ my $len = int((length($os) - 1) / $d); # $d digit parts, w/o the '0'
+ my $val;
+ my $i = -$d;
+ while ($len >= 0) {
+ $val = substr($os, $i, $d); # get oct digits
+ $val = CORE::oct($val);
+ $i -= $d;
+ $len --;
+ my $adder = [ $val ];
+ $c->_add($x, $c->_mul($adder, $mul)) if $val != 0;
+ $c->_mul($mul, $m) if $len >= 0; # skip last mul
+ }
+ $x;
+}
-=back
+sub _from_hex {
+ # convert a hex number to decimal (string, return ref to array)
+ my ($c, $hs) = @_;
+
+ my $m = $c->_new(0x10000000); # 28 bit at a time (<32 bit!)
+ my $d = 7; # 7 digits at a time
+ my $mul = $c->_one();
+ my $x = $c->_zero();
+
+ my $len = int((length($hs) - 2) / $d); # $d digit parts, w/o the '0x'
+ my $val;
+ my $i = -$d;
+ while ($len >= 0) {
+ $val = substr($hs, $i, $d); # get hex digits
+ $val =~ s/^0x// if $len == 0; # for last part only because
+ $val = CORE::hex($val); # hex does not like wrong chars
+ $i -= $d;
+ $len --;
+ my $adder = [ $val ];
+ # if the resulting number was to big to fit into one element, create a
+ # two-element version (bug found by Mark Lakata - Thanx!)
+ if (CORE::length($val) > $BASE_LEN) {
+ $adder = $c->_new($val);
+ }
+ $c->_add($x, $c->_mul($adder, $mul)) if $val != 0;
+ $c->_mul($mul, $m) if $len >= 0; # skip last mul
+ }
+ $x;
+}
-=head1 WRAP YOUR OWN
+sub _from_bin {
+ # convert a hex number to decimal (string, return ref to array)
+ my ($c, $bs) = @_;
-If you want to port your own favourite c-lib for big numbers to the
-Math::BigInt interface, you can take any of the already existing modules as
-a rough guideline. You should really wrap up the latest BigInt and BigFloat
-testsuites with your module, and replace in them any of the following:
+ # instead of converting X (8) bit at a time, it is faster to "convert" the
+ # number to hex, and then call _from_hex.
- use Math::BigInt;
+ my $hs = $bs;
+ $hs =~ s/^[+-]?0b//; # remove sign and 0b
+ my $l = length($hs); # bits
+ $hs = '0' x (8 - ($l % 8)) . $hs if ($l % 8) != 0; # padd left side w/ 0
+ my $h = '0x' . unpack('H*', pack ('B*', $hs)); # repack as hex
-by this:
+ $c->_from_hex($h);
+}
- use Math::BigInt lib => 'yourlib';
+##############################################################################
+# special modulus functions
-This way you ensure that your library really works 100% within Math::BigInt.
+sub _modinv {
+ # modular multiplicative inverse
+ my ($c, $x, $y) = @_;
-=head1 BUGS
+ # modulo zero
+ if ($c->_is_zero($y)) {
+ return undef, undef;
+ }
-Please report any bugs or feature requests to
-C<bug-math-bigint at rt.cpan.org>, or through the web interface at
-L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
-(requires login).
-We will be notified, and then you'll automatically be notified of progress on
-your bug as I make changes.
+ # modulo one
+ if ($c->_is_one($y)) {
+ return $c->_zero(), '+';
+ }
-=head1 SUPPORT
+ my $u = $c->_zero();
+ my $v = $c->_one();
+ my $a = $c->_copy($y);
+ my $b = $c->_copy($x);
-You can find documentation for this module with the perldoc command.
+ # Euclid's Algorithm for bgcd(), only that we calc bgcd() ($a) and the result
+ # ($u) at the same time. See comments in BigInt for why this works.
+ my $q;
+ my $sign = 1;
+ {
+ ($a, $q, $b) = ($b, $c->_div($a, $b)); # step 1
+ last if $c->_is_zero($b);
- perldoc Math::BigInt::Calc
+ my $t = $c->_add( # step 2:
+ $c->_mul($c->_copy($v), $q), # t = v * q
+ $u); # + u
+ $u = $v; # u = v
+ $v = $t; # v = t
+ $sign = -$sign;
+ redo;
+ }
-You can also look for information at:
+ # if the gcd is not 1, then return NaN
+ return (undef, undef) unless $c->_is_one($a);
-=over 4
+ ($v, $sign == 1 ? '+' : '-');
+}
-=item * RT: CPAN's request tracker
+sub _modpow {
+ # modulus of power ($x ** $y) % $z
+ my ($c, $num, $exp, $mod) = @_;
-L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt>
+ # a^b (mod 1) = 0 for all a and b
+ if ($c->_is_one($mod)) {
+ @$num = 0;
+ return $num;
+ }
-=item * AnnoCPAN: Annotated CPAN documentation
+ # 0^a (mod m) = 0 if m != 0, a != 0
+ # 0^0 (mod m) = 1 if m != 0
+ if ($c->_is_zero($num)) {
+ if ($c->_is_zero($exp)) {
+ @$num = 1;
+ } else {
+ @$num = 0;
+ }
+ return $num;
+ }
-L<http://annocpan.org/dist/Math-BigInt>
+ # $num = $c->_mod($num, $mod); # this does not make it faster
-=item * CPAN Ratings
+ my $acc = $c->_copy($num);
+ my $t = $c->_one();
-L<http://cpanratings.perl.org/dist/Math-BigInt>
+ my $expbin = $c->_as_bin($exp);
+ $expbin =~ s/^0b//;
+ my $len = length($expbin);
+ while (--$len >= 0) {
+ if (substr($expbin, $len, 1) eq '1') { # is_odd
+ $t = $c->_mul($t, $acc);
+ $t = $c->_mod($t, $mod);
+ }
+ $acc = $c->_mul($acc, $acc);
+ $acc = $c->_mod($acc, $mod);
+ }
+ @$num = @$t;
+ $num;
+}
-=item * Search CPAN
+sub _gcd {
+ # Greatest common divisor.
-L<http://search.cpan.org/dist/Math-BigInt/>
+ my ($c, $x, $y) = @_;
-=item * CPAN Testers Matrix
+ # gcd(0, 0) = 0
+ # gcd(0, a) = a, if a != 0
-L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+ if (@$x == 1 && $x->[0] == 0) {
+ if (@$y == 1 && $y->[0] == 0) {
+ @$x = 0;
+ } else {
+ @$x = @$y;
+ }
+ return $x;
+ }
-=item * The Bignum mailing list
+ # Until $y is zero ...
-=over 4
+ until (@$y == 1 && $y->[0] == 0) {
-=item * Post to mailing list
+ # Compute remainder.
-C<bignum at lists.scsys.co.uk>
+ $c->_mod($x, $y);
-=item * View mailing list
+ # Swap $x and $y.
-L<http://lists.scsys.co.uk/pipermail/bignum/>
+ my $tmp = $c->_copy($x);
+ @$x = @$y;
+ $y = $tmp; # no deref here; that would modify input $y
+ }
-=item * Subscribe/Unsubscribe
+ return $x;
+}
-L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+##############################################################################
+##############################################################################
-=back
+1;
-=back
+__END__
-=head1 LICENSE
+=pod
-This program is free software; you may redistribute it and/or modify it under
-the same terms as Perl itself.
+=head1 NAME
-=head1 AUTHORS
+Math::BigInt::Calc - Pure Perl module to support Math::BigInt
-=over 4
+=head1 SYNOPSIS
-=item *
+ # to use it with Math::BigInt
+ use Math::BigInt lib => 'Calc';
-Original math code by Mark Biggar, rewritten by Tels L<http://bloodgate.com/>
-in late 2000.
+ # to use it with Math::BigFloat
+ use Math::BigFloat lib => 'Calc';
-=item *
+ # to use it with Math::BigRat
+ use Math::BigRat lib => 'Calc';
-Separated from BigInt and shaped API with the help of John Peacock.
+=head1 DESCRIPTION
-=item *
+Math::BigInt::Calc inherits from Math::BigInt::Lib.
-Fixed, speed-up, streamlined and enhanced by Tels 2001 - 2007.
+In this library, the numbers are represented in base B = 10**N, where N is the
+largest possible value that does not cause overflow in the intermediate
+computations. The base B elements are stored in an array, with the least
+significant element stored in array element zero. There are no leading zero
+elements, except a single zero element when the number is zero.
-=item *
+For instance, if B = 10000, the number 1234567890 is represented internally
+as [7890, 3456, 12].
-API documentation corrected and extended by Peter John Acklam,
-E<lt>pjacklam@online.noE<gt>
+=head1 SEE ALSO
-=back
+L<Math::BigInt::Lib> for a description of the API.
-=head1 SEE ALSO
+Alternative libraries L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and
+L<Math::BigInt::Pari>.
-L<Math::BigInt>, L<Math::BigFloat>,
-L<Math::BigInt::GMP>, L<Math::BigInt::FastCalc> and L<Math::BigInt::Pari>.
+Some of the modules that use these libraries L<Math::BigInt>,
+L<Math::BigFloat>, and L<Math::BigRat>.
=cut
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm b/Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm
index 8e994ede273..572f9de52fd 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt/CalcEmu.pm
@@ -4,8 +4,7 @@ use 5.006001;
use strict;
use warnings;
-our $VERSION = '1.999715';
-$VERSION = eval $VERSION;
+our $VERSION = '1.999806';
package Math::BigInt;
@@ -15,7 +14,7 @@ my $CALC_EMU;
BEGIN
{
- $CALC_EMU = Math::BigInt->config()->{'lib'};
+ $CALC_EMU = Math::BigInt->config('lib');
# register us with MBI to get notified of future lib changes
Math::BigInt::_register_callback( __PACKAGE__, sub { $CALC_EMU = $_[0]; } );
}
@@ -25,7 +24,7 @@ sub __emu_band
my ($self,$x,$y,$sx,$sy,@r) = @_;
return $x->bzero(@r) if $y->is_zero() || $x->is_zero();
-
+
my $sign = 0; # sign of result
$sign = 1 if $sx == -1 && $sy == -1;
@@ -75,7 +74,7 @@ sub __emu_band
# if $xx eq "\x00", we can cut $by, otherwise we need to padd $bx
$bx .= $xx x abs($diff);
}
-
+
# and the strings together
my $r = $bx & $by;
@@ -380,7 +379,7 @@ L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
-the same terms as Perl itself.
+the same terms as Perl itself.
=head1 AUTHORS
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm b/Master/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm
index 2cc49f41f60..6920f5637af 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt/FastCalc.pm
@@ -4,9 +4,11 @@ use 5.006;
use strict;
use warnings;
-use Math::BigInt::Calc 1.999706;
+use Math::BigInt::Calc '1.999801';
-our $VERSION = '0.40';
+our @ISA = qw< Math::BigInt::Calc >;
+
+our $VERSION = '0.5005';
##############################################################################
# global constants, flags and accessory
@@ -16,26 +18,8 @@ sub api_version () { 2; }
# use Calc to override the methods that we do not provide in XS
-for my $method (qw/
- str num
- add sub mul div
- rsft lsft
- mod modpow modinv
- gcd
- pow root sqrt log_int fac nok
- digit check
- from_hex from_bin from_oct as_hex as_bin as_oct
- zeros base_len
- xor or and
- alen 1ex
- /)
- {
- no strict 'refs';
- *{'Math::BigInt::FastCalc::_' . $method} = \&{'Math::BigInt::Calc::_' . $method};
- }
-
require XSLoader;
-XSLoader::load(__PACKAGE__, $VERSION, Math::BigInt::Calc::_base_len());
+XSLoader::load(__PACKAGE__, $VERSION, Math::BigInt::Calc->_base_len());
##############################################################################
##############################################################################
@@ -52,12 +36,23 @@ Math::BigInt::FastCalc - Math::BigInt::Calc with some XS for more speed
=head1 SYNOPSIS
+ # to use it with Math::BigInt
+ use Math::BigInt lib => 'FastCalc';
+
+ # to use it with Math::BigFloat
+ use Math::BigFloat lib => 'FastCalc';
+
+ # to use it with Math::BigRat
+ use Math::BigRat lib => 'FastCalc';
+
+=head1 DESCRIPTION
+
+Math::BigInt::FastCalc inherits from Math::BigInt::Calc.
+
Provides support for big integer calculations. Not intended to be used by
other modules. Other modules which sport the same functions can also be used
to support Math::BigInt, like L<Math::BigInt::GMP> or L<Math::BigInt::Pari>.
-=head1 DESCRIPTION
-
In order to allow for multiple big integer libraries, Math::BigInt was
rewritten to use library modules for core math routines. Any module which
follows the same API as this can be used instead by using the following:
@@ -69,13 +64,10 @@ version like 'Pari'. To use this library:
use Math::BigInt lib => 'FastCalc';
-Note that from L<Math::BigInt> v1.76 onwards, FastCalc will be loaded
-automatically, if possible.
-
=head1 STORAGE
-FastCalc works exactly like Calc, in stores the numbers in decimal form,
-chopped into parts.
+Math::BigInt::FastCalc works exactly like Math::BigInt::Calc. Numbers are
+stored in decimal form chopped into parts.
=head1 METHODS
@@ -161,11 +153,16 @@ Separated from BigInt and shaped API with the help of John Peacock.
Fixed, sped-up and enhanced by Tels http://bloodgate.com 2001-2003.
Further streamlining (api_version 1 etc.) by Tels 2004-2007.
-Bug-fixing by Peter John Acklam E<lt>pjacklam@online.noE<gt> 2010-2015.
+Bug-fixing by Peter John Acklam E<lt>pjacklam@online.noE<gt> 2010-2016.
=head1 SEE ALSO
-L<Math::BigInt>, L<Math::BigFloat>, and the other backends
-L<Math::BigInt::Calc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
+L<Math::BigInt::Lib> for a description of the API.
+
+Alternative libraries L<Math::BigInt::Calc>, L<Math::BigInt::GMP>, and
+L<Math::BigInt::Pari>.
+
+Some of the modules that use these libraries L<Math::BigInt>,
+L<Math::BigFloat>, and L<Math::BigRat>.
=cut
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt/Lib.pm b/Master/tlpkg/tlperl/lib/Math/BigInt/Lib.pm
new file mode 100755
index 00000000000..dea1b0c0a38
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt/Lib.pm
@@ -0,0 +1,1715 @@
+package Math::BigInt::Lib;
+
+use 5.006001;
+use strict;
+use warnings;
+
+our $VERSION = '1.999806';
+
+use Carp;
+
+use overload
+
+ # overload key: with_assign
+
+ '+' => sub {
+ my $class = ref $_[0];
+ my $x = $class -> _copy($_[0]);
+ my $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ return $class -> _add($x, $y);
+ },
+
+ '-' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _sub($x, $y);
+ },
+
+ '*' => sub {
+ my $class = ref $_[0];
+ my $x = $class -> _copy($_[0]);
+ my $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ return $class -> _mul($x, $y);
+ },
+
+ '/' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _div($x, $y);
+ },
+
+ '%' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _mod($x, $y);
+ },
+
+ '**' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _pow($x, $y);
+ },
+
+ '<<' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $class -> _num($_[0]);
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $_[0];
+ $y = ref($_[1]) ? $class -> _num($_[1]) : $_[1];
+ }
+ return $class -> _blsft($x, $y);
+ },
+
+ '>>' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _brsft($x, $y);
+ },
+
+ # overload key: num_comparison
+
+ '<' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _acmp($x, $y) < 0;
+ },
+
+ '<=' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _acmp($x, $y) <= 0;
+ },
+
+ '>' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _acmp($x, $y) > 0;
+ },
+
+ '>=' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _acmp($x, $y) >= 0;
+ },
+
+ '==' => sub {
+ my $class = ref $_[0];
+ my $x = $class -> _copy($_[0]);
+ my $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ return $class -> _acmp($x, $y) == 0;
+ },
+
+ '!=' => sub {
+ my $class = ref $_[0];
+ my $x = $class -> _copy($_[0]);
+ my $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ return $class -> _acmp($x, $y) != 0;
+ },
+
+ # overload key: 3way_comparison
+
+ '<=>' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _acmp($x, $y);
+ },
+
+ # overload key: binary
+
+ '&' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _and($x, $y);
+ },
+
+ '|' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _or($x, $y);
+ },
+
+ '^' => sub {
+ my $class = ref $_[0];
+ my ($x, $y);
+ if ($_[2]) { # if swapped
+ $y = $_[0];
+ $x = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ } else {
+ $x = $class -> _copy($_[0]);
+ $y = ref($_[1]) ? $_[1] : $class -> _new($_[1]);
+ }
+ return $class -> _xor($x, $y);
+ },
+
+ # overload key: func
+
+ 'abs' => sub { $_[0] },
+
+ 'sqrt' => sub {
+ my $class = ref $_[0];
+ return $class -> _sqrt($class -> _copy($_[0]));
+ },
+
+ 'int' => sub { $_[0] -> copy() -> bint(); },
+
+ # overload key: conversion
+
+ 'bool' => sub { ref($_[0]) -> _is_zero($_[0]) ? '' : 1; },
+
+ '""' => sub { ref($_[0]) -> _str($_[0]); },
+
+ '0+' => sub { ref($_[0]) -> _num($_[0]); },
+
+ '=' => sub { ref($_[0]) -> _copy($_[0]); },
+
+ ;
+
+# Do we need api_version() at all, now that we have a virtual parent class that
+# will provide any missing methods? Fixme!
+
+sub api_version () {
+ croak "@{[(caller 0)[3]]} method not implemented";
+}
+
+sub _new {
+ croak "@{[(caller 0)[3]]} method not implemented";
+}
+
+sub _zero {
+ my $class = shift;
+ return $class -> _new("0");
+}
+
+sub _one {
+ my $class = shift;
+ return $class -> _new("1");
+}
+
+sub _two {
+ my $class = shift;
+ return $class -> _new("2");
+
+}
+sub _ten {
+ my $class = shift;
+ return $class -> _new("10");
+}
+
+sub _1ex {
+ my ($class, $exp) = @_;
+ $exp = $class -> _num($exp) if ref($exp);
+ return $class -> _new("1" . ("0" x $exp));
+}
+
+sub _copy {
+ my ($class, $x) = @_;
+ return $class -> _new($class -> _str($x));
+}
+
+# catch and throw away
+sub import { }
+
+##############################################################################
+# convert back to string and number
+
+sub _str {
+ # Convert number from internal base 1eN format to string format. Internal
+ # format is always normalized, i.e., no leading zeros.
+ croak "@{[(caller 0)[3]]} method not implemented";
+}
+
+sub _num {
+ my ($class, $x) = @_;
+ 0 + $class -> _str($x);
+}
+
+##############################################################################
+# actual math code
+
+sub _add {
+ croak "@{[(caller 0)[3]]} method not implemented";
+}
+
+sub _sub {
+ croak "@{[(caller 0)[3]]} method not implemented";
+}
+
+sub _mul {
+ my ($class, $x, $y) = @_;
+ my $sum = $class -> _zero();
+ my $i = $class -> _zero();
+ while ($class -> _acmp($i, $y) < 0) {
+ $sum = $class -> _add($sum, $x);
+ $i = $class -> _inc($i);
+ }
+ return $sum;
+}
+
+sub _div {
+ my ($class, $x, $y) = @_;
+
+ croak "@{[(caller 0)[3]]} requires non-zero divisor"
+ if $class -> _is_zero($y);
+
+ my $r = $class -> _copy($x);
+ my $q = $class -> _zero();
+ while ($class -> _acmp($r, $y) >= 0) {
+ $q = $class -> _inc($q);
+ $r = $class -> _sub($r, $y);
+ }
+
+ return $q, $r if wantarray;
+ return $q;
+}
+
+sub _inc {
+ my ($class, $x) = @_;
+ $class -> _add($x, $class -> _one());
+}
+
+sub _dec {
+ my ($class, $x) = @_;
+ $class -> _sub($x, $class -> _one());
+}
+
+##############################################################################
+# testing
+
+sub _acmp {
+ # Compare two (absolute) values. Return -1, 0, or 1.
+ my ($class, $x, $y) = @_;
+ my $xstr = $class -> _str($x);
+ my $ystr = $class -> _str($y);
+
+ length($xstr) <=> length($ystr) || $xstr cmp $ystr;
+}
+
+sub _len {
+ my ($class, $x) = @_;
+ CORE::length($class -> _str($x));
+}
+
+sub _alen {
+ my ($class, $x) = @_;
+ $class -> _len($x);
+}
+
+sub _digit {
+ my ($class, $x, $n) = @_;
+ substr($class ->_str($x), -($n+1), 1);
+}
+
+sub _zeros {
+ my ($class, $x) = @_;
+ my $str = $class -> _str($x);
+ $str =~ /[^0](0*)\z/;
+ CORE::length($1);
+}
+
+##############################################################################
+# _is_* routines
+
+sub _is_zero {
+ # return true if arg is zero
+ my ($class, $x) = @_;
+ $class -> _str($x) == 0;
+}
+
+sub _is_even {
+ # return true if arg is even
+ my ($class, $x) = @_;
+ substr($class -> _str($x), -1, 1) % 2 == 0;
+}
+
+sub _is_odd {
+ # return true if arg is odd
+ my ($class, $x) = @_;
+ substr($class -> _str($x), -1, 1) % 2 != 0;
+}
+
+sub _is_one {
+ # return true if arg is one
+ my ($class, $x) = @_;
+ $class -> _str($x) == 1;
+}
+
+sub _is_two {
+ # return true if arg is two
+ my ($class, $x) = @_;
+ $class -> _str($x) == 2;
+}
+
+sub _is_ten {
+ # return true if arg is ten
+ my ($class, $x) = @_;
+ $class -> _str($x) == 10;
+}
+
+###############################################################################
+# check routine to test internal state for corruptions
+
+sub _check {
+ # used by the test suite
+ my ($class, $x) = @_;
+ return "Input is undefined" unless defined $x;
+ return "$x is not a reference" unless ref($x);
+ return 0;
+}
+
+###############################################################################
+
+sub _mod {
+ # modulus
+ my ($class, $x, $y) = @_;
+
+ croak "@{[(caller 0)[3]]} requires non-zero second operand"
+ if $class -> _is_zero($y);
+
+ my $r = $class -> _copy($x);
+ while ($class -> _acmp($r, $y) >= 0) {
+ $r = $class -> _sub($r, $y);
+ }
+
+ return $r;
+}
+
+##############################################################################
+# shifts
+
+sub _rsft {
+ my ($class, $x, $n, $b) = @_;
+ $b = $class -> _new($b) unless ref $b;
+ return scalar $class -> _div($x, $class -> _pow($class -> _copy($b), $n));
+}
+
+sub _lsft {
+ my ($class, $x, $n, $b) = @_;
+ $b = $class -> _new($b) unless ref $b;
+ return $class -> _mul($x, $class -> _pow($class -> _copy($b), $n));
+}
+
+sub _pow {
+ # power of $x to $y
+ # ref to array, ref to array, return ref to array
+ my ($class, $x, $y) = @_;
+
+ if ($class -> _is_zero($y)) {
+ return $class -> _one(); # y == 0 => x => 1
+ }
+
+ if (($class -> _is_one($x)) || # x == 1
+ ($class -> _is_one($y))) # or y == 1
+ {
+ return $x;
+ }
+
+ if ($class -> _is_zero($x)) {
+ return $class -> _zero(); # 0 ** y => 0 (if not y <= 0)
+ }
+
+ my $pow2 = $class -> _one();
+
+ my $y_bin = $class -> _as_bin($y);
+ $y_bin =~ s/^0b//;
+ my $len = length($y_bin);
+
+ while (--$len > 0) {
+ $pow2 = $class -> _mul($pow2, $x) if substr($y_bin, $len, 1) eq '1';
+ $x = $class -> _mul($x, $x);
+ }
+
+ $x = $class -> _mul($x, $pow2);
+ return $x;
+}
+
+sub _nok {
+ # Return binomial coefficient (n over k).
+ # Given refs to arrays, return ref to array.
+ # First input argument is modified.
+
+ my ($class, $n, $k) = @_;
+
+ # If k > n/2, or, equivalently, 2*k > n, compute nok(n, k) as
+ # nok(n, n-k), to minimize the number if iterations in the loop.
+
+ {
+ my $twok = $class -> _mul($class -> _two(), $class -> _copy($k));
+ if ($class -> _acmp($twok, $n) > 0) {
+ $k = $class -> _sub($class -> _copy($n), $k);
+ }
+ }
+
+ # Example:
+ #
+ # / 7 \ 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7
+ # | | = --------- = --------------- = --------- = 5 * - * -
+ # \ 3 / (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3
+
+ if ($class -> _is_zero($k)) {
+ return $class -> _one();
+ }
+
+ # Make a copy of the original n, since we'll be modifying n in-place.
+
+ my $n_orig = $class -> _copy($n);
+
+ # n = 5, f = 6, d = 2 (cf. example above)
+
+ $n = $class -> _sub($n, $k);
+ $n = $class -> _inc($n);
+
+ my $f = $class -> _copy($n);
+ $class -> _inc($f);
+
+ my $d = $class -> _two();
+
+ # while f <= n (the original n, that is) ...
+
+ while ($class -> _acmp($f, $n_orig) <= 0) {
+
+ # n = (n * f / d) == 5 * 6 / 2 (cf. example above)
+
+ $n = $class -> _mul($n, $f);
+ $n = $class -> _div($n, $d);
+
+ # f = 7, d = 3 (cf. example above)
+
+ $f = $class -> _inc($f);
+ $d = $class -> _inc($d);
+ }
+
+ return $n;
+}
+
+sub _fac {
+ # factorial
+ my ($class, $x) = @_;
+
+ my $two = $class -> _two();
+
+ if ($class -> _acmp($x, $two) < 0) {
+ return $class -> _one();
+ }
+
+ my $i = $class -> _copy($x);
+ while ($class -> _acmp($i, $two) > 0) {
+ $i = $class -> _dec($i);
+ $x = $class -> _mul($x, $i);
+ }
+
+ return $x;
+}
+
+sub _log_int {
+ # calculate integer log of $x to base $base
+ # ref to array, ref to array - return ref to array
+
+ my ($class, $x, $base) = @_;
+
+ # X == 0 => NaN
+ return if $class -> _is_zero($x);
+
+ $base = $class -> _new(2) unless defined($base);
+ $base = $class -> _new($base) unless ref($base);
+
+ # BASE 0 or 1 => NaN
+ return if $class -> _is_zero($base) || $class -> _is_one($base);
+
+ # X == 1 => 0 (is exact)
+ if ($class -> _is_one($x)) {
+ return $class -> _zero(), 1;
+ }
+
+ my $cmp = $class -> _acmp($x, $base);
+
+ # X == BASE => 1 (is exact)
+ if ($cmp == 0) {
+ return $class -> _one(), 1;
+ }
+
+ # 1 < X < BASE => 0 (is truncated)
+ if ($cmp < 0) {
+ return $class -> _zero(), 0;
+ }
+
+ my $y;
+
+ # log(x) / log(b) = log(xm * 10^xe) / log(bm * 10^be)
+ # = (log(xm) + xe*(log(10))) / (log(bm) + be*log(10))
+
+ {
+ my $x_str = $class -> _str($x);
+ my $b_str = $class -> _str($base);
+ my $xm = "." . $x_str;
+ my $bm = "." . $b_str;
+ my $xe = length($x_str);
+ my $be = length($b_str);
+ my $log10 = log(10);
+ my $guess = int((log($xm) + $xe * $log10) / (log($bm) + $be * $log10));
+ $y = $class -> _new($guess);
+ }
+
+ my $trial = $class -> _pow($class -> _copy($base), $y);
+ my $acmp = $class -> _acmp($trial, $x);
+
+ # Did we get the exact result?
+
+ return $y, 1 if $acmp == 0;
+
+ # Too small?
+
+ while ($acmp < 0) {
+ $trial = $class -> _mul($trial, $base);
+ $y = $class -> _inc($y);
+ $acmp = $class -> _acmp($trial, $x);
+ }
+
+ # Too big?
+
+ while ($acmp > 0) {
+ $trial = $class -> _div($trial, $base);
+ $y = $class -> _dec($y);
+ $acmp = $class -> _acmp($trial, $x);
+ }
+
+ return $y, 1 if $acmp == 0; # result is exact
+ return $y, 0; # result is too small
+}
+
+sub _sqrt {
+ # square-root of $x in place
+ my ($class, $x) = @_;
+
+ return $x if $class -> _is_zero($x);
+
+ my $x_str = $class -> _str($x);
+ my $x_len = length($x_str);
+
+ # Compute the guess $y.
+
+ my $ym;
+ my $ye;
+ if ($x_len % 2 == 0) {
+ $ym = sqrt("." . $x_str);
+ $ye = $x_len / 2;
+ $ym = sprintf "%.0f", int($ym * 1e15);
+ $ye -= 15;
+ } else {
+ $ym = sqrt(".0" . $x_str);
+ $ye = ($x_len + 1) / 2;
+ $ym = sprintf "%.0f", int($ym * 1e16);
+ $ye -= 16;
+ }
+
+ my $y;
+ if ($ye < 0) {
+ $y = substr $ym, 0, length($ym) + $ye;
+ } else {
+ $y = $ym . ("0" x $ye);
+ }
+
+ $y = $class -> _new($y);
+
+ # Newton's method for computing square root of x. Generally, the algorithm
+ # below should undershoot.
+ #
+ # y(i+1) = y(i) - f(y(i)) / f'(y(i))
+ # = y(i) - (y(i)^2 - x) / (2 * y(i))
+ # = y(i) + (x - y(i)^2) / (2 * y(i))
+
+ my $two = $class -> _two();
+ my $zero = $class -> _zero();
+ my $over;
+ my $acmp;
+
+ {
+ my $ysq = $class -> _mul($class -> _copy($y), $y); # y(i)^2
+ $acmp = $class -> _acmp($x, $ysq); # x <=> y(i)^2
+ last if $acmp == 0;
+ if ($acmp < 0) { # if we overshot
+ $over = 1;
+ last;
+ }
+
+ my $num = $class -> _sub($class -> _copy($x), $ysq); # x - y(i)^2
+ my $den = $class -> _mul($class -> _copy($two), $y); # 2 * y(i)
+
+ my $delta = $class -> _div($num, $den);
+ last if $class -> _acmp($delta, $zero) == 0;
+ $y = $class -> _add($y, $delta);
+ redo;
+ }
+
+ # If we did overshoot, adjust now.
+
+ while ($acmp < 0) {
+ $class -> _dec($y);
+ my $ysq = $class -> _mul($class -> _copy($y), $y); # y(i)^2
+ $acmp = $class -> _acmp($x, $ysq); # x <=> y(i)^2
+ }
+
+ return $y;
+}
+
+sub _root {
+ my ($class, $x, $n) = @_;
+
+ return undef if $class -> _is_zero($n);
+
+ return $x if $class -> _is_zero($x) || $class -> _is_one($x) ||
+ $class -> _is_one($n);
+
+ my $x_str = $class -> _str($x);
+ my $x_len = length($x_str);
+
+ return $class -> _one() if $class -> _acmp($x, $n) <= 0;
+
+ # Compute the guess $y.
+
+ my $n_num = $class -> _num($n);
+ my $p = int(($x_len - 1) / $n_num);
+ my $q = $x_len - $p * $n_num;
+
+ my $DEBUG = 0;
+
+ if ($DEBUG) {
+ print "\n";
+ print substr($x_str, 0, $p), " ", "0" x $q, "\n";
+ print "\n";
+ }
+
+ my $ymant = substr($x_str, 0, $q) ** (1 / $n_num);
+ my $yexpo = $p;
+
+ my $y = (1 + int $ymant) . ("0" x $p);
+ $y = $class -> _new($y);
+
+ if ($DEBUG) {
+ print "\n";
+ print "p = $p\n";
+ print "q = $q\n";
+ print "\n";
+ print "ym = $ymant\n";
+ print "ye = $yexpo\n";
+ print "\n";
+ print "y = $y (initial guess)\n";
+ print "\n";
+ }
+
+ # Newton's method for computing n'th root of x. Generally, the algorithm
+ # below should undershoot.
+ #
+ # y(i+1) = y(i) - f(y(i)) / f'(y(i))
+ # = y(i) - (y(i)^n - x) / (n * y(i)^(n-1))
+ # = y(i) + (x - y(i)^n) / (n * y(i)^(n-1))
+
+ my $nm1 = $class -> _dec($class -> _copy($n)); # n - 1
+ my $zero = $class -> _zero();
+ my $over;
+ my $acmp;
+
+ {
+ my $ypowm1 = $class -> _pow($class -> _copy($y), $nm1); # y(i)^(n-1)
+ my $ypow = $class -> _mul($class -> _copy($ypowm1), $y); # y(i)^n
+ $acmp = $class -> _acmp($x, $ypow); # x <=> y(i)^n
+ last if $acmp == 0;
+
+ my $num = $acmp > 0
+ ? $class -> _sub($class -> _copy($x), $ypow) # x - y(i)^n
+ : $class -> _sub($ypow, $class -> _copy($x)); # y(i)^n - x
+ my $den = $class -> _mul($class -> _copy($n), $ypowm1); # n * y(i)^(n-1)
+ my $delta = $class -> _div($num, $den);
+ last if $class -> _acmp($delta, $zero) == 0;
+
+ $y = $acmp > 0
+ ? $class -> _add($y, $delta)
+ : $class -> _sub($y, $delta);
+
+ if ($DEBUG) {
+ print "y = $y\n";
+ }
+
+ redo;
+ }
+
+ # Never overestimate. The output should always be exact or truncated.
+
+ while ($acmp < 0) {
+ $class -> _dec($y);
+ if ($DEBUG) {
+ print "y = $y\n";
+ }
+ my $ypow = $class -> _pow($class -> _copy($y), $n); # y(i)^n
+ $acmp = $class -> _acmp($x, $ypow); # x <=> y(i)^2
+ }
+
+ if ($DEBUG) {
+ print "\n";
+ }
+
+ return $y;
+}
+
+##############################################################################
+# binary stuff
+
+sub _and {
+ my ($class, $x, $y) = @_;
+
+ return $x if $class -> _acmp($x, $y) == 0;
+
+ my $m = $class -> _one();
+ my $mask = $class -> _new("32768");
+
+ my ($xr, $yr); # remainders after division
+
+ my $xc = $class -> _copy($x);
+ my $yc = $class -> _copy($y);
+ my $z = $class -> _zero();
+
+ until ($class -> _is_zero($xc) || $class -> _is_zero($yc)) {
+ ($xc, $xr) = $class -> _div($xc, $mask);
+ ($yc, $yr) = $class -> _div($yc, $mask);
+ my $bits = $class -> _new($class -> _num($xr) & $class -> _num($yr));
+ $z = $class -> _add($z, $class -> _mul($bits, $m));
+ $m = $class -> _mul($m, $mask);
+ }
+
+ return $z;
+}
+
+sub _xor {
+ my ($class, $x, $y) = @_;
+
+ return $class -> _zero() if $class -> _acmp($x, $y) == 0;
+
+ my $m = $class -> _one();
+ my $mask = $class -> _new("32768");
+
+ my ($xr, $yr); # remainders after division
+
+ my $xc = $class -> _copy($x);
+ my $yc = $class -> _copy($y);
+ my $z = $class -> _zero();
+
+ until ($class -> _is_zero($xc) || $class -> _is_zero($yc)) {
+ ($xc, $xr) = $class -> _div($xc, $mask);
+ ($yc, $yr) = $class -> _div($yc, $mask);
+ my $bits = $class -> _new($class -> _num($xr) ^ $class -> _num($yr));
+ $z = $class -> _add($z, $class -> _mul($bits, $m));
+ $m = $class -> _mul($m, $mask);
+ }
+
+ # The loop above stops when the smallest of the two numbers is exhausted.
+ # The remainder of the longer one will survive bit-by-bit, so we simple
+ # multiply-add it in.
+
+ $z = $class -> _add($z, $class -> _mul($xc, $m))
+ unless $class -> _is_zero($xc);
+ $z = $class -> _add($z, $class -> _mul($yc, $m))
+ unless $class -> _is_zero($yc);
+
+ return $z;
+}
+
+sub _or {
+ my ($class, $x, $y) = @_;
+
+ return $x if $class -> _acmp($x, $y) == 0; # shortcut (see _and)
+
+ my $m = $class -> _one();
+ my $mask = $class -> _new("32768");
+
+ my ($xr, $yr); # remainders after division
+
+ my $xc = $class -> _copy($x);
+ my $yc = $class -> _copy($y);
+ my $z = $class -> _zero();
+
+ until ($class -> _is_zero($xc) || $class -> _is_zero($yc)) {
+ ($xc, $xr) = $class -> _div($xc, $mask);
+ ($yc, $yr) = $class -> _div($yc, $mask);
+ my $bits = $class -> _new($class -> _num($xr) | $class -> _num($yr));
+ $z = $class -> _add($z, $class -> _mul($bits, $m));
+ $m = $class -> _mul($m, $mask);
+ }
+
+ # The loop above stops when the smallest of the two numbers is exhausted.
+ # The remainder of the longer one will survive bit-by-bit, so we simple
+ # multiply-add it in.
+
+ $z = $class -> _add($z, $class -> _mul($xc, $m))
+ unless $class -> _is_zero($xc);
+ $z = $class -> _add($z, $class -> _mul($yc, $m))
+ unless $class -> _is_zero($yc);
+
+ return $z;
+}
+
+sub _as_hex {
+ # convert a decimal number to hex
+ my ($class, $x) = @_;
+ my $str = '';
+ my $tmp = $class -> _copy($x);
+ my $zero = $class -> _zero();
+ my $base = $class -> _new("16");
+ my $rem;
+ while ($tmp > $zero) {
+ ($tmp, $rem) = $class -> _div($tmp, $base);
+ $str = sprintf("%0x", $rem) . $str;
+ }
+ $str = '0' if length($str) == 0;
+ return '0x' . $str;
+}
+
+sub _as_bin {
+ # convert a decimal number to bin
+ my ($class, $x) = @_;
+ my $str = '';
+ my $tmp = $class -> _copy($x);
+ my $zero = $class -> _zero();
+ my $base = $class -> _new("2");
+ my $rem;
+ while ($tmp > $zero) {
+ ($tmp, $rem) = $class -> _div($tmp, $base);
+ $str = ($class -> _is_zero($rem) ? '0' : '1') . $str;
+ }
+ $str = '0' if length($str) == 0;
+ return '0b' . $str;
+}
+
+sub _as_oct {
+ # convert a decimal number to octal
+ my ($class, $x) = @_;
+ my $str = '';
+ my $tmp = $class -> _copy($x);
+ my $zero = $class -> _zero();
+ my $base = $class -> _new("8");
+ my $rem;
+ while ($tmp > $zero) {
+ ($tmp, $rem) = $class -> _div($tmp, $base);
+ $str = sprintf("%0o", $rem) . $str;
+ }
+ $str = '0' if length($str) == 0;
+ return '0' . $str; # yes, 0 becomes "00".
+}
+
+sub _as_bytes {
+ # convert a decimal number to a byte string
+ my ($class, $x) = @_;
+ my $str = '';
+ my $tmp = $class -> _copy($x);
+ my $base = $class -> _new("256");
+ my $rem;
+ until ($class -> _is_zero($tmp)) {
+ ($tmp, $rem) = $class -> _div($tmp, $base);
+ my $byte = pack 'C', $rem;
+ $str = $byte . $str;
+ }
+ return "\x00" unless length($str);
+ return $str;
+}
+
+sub _from_oct {
+ # convert a octal string to a decimal number
+ my ($class, $str) = @_;
+ $str =~ s/^0+//;
+ my $x = $class -> _zero();
+ my $base = $class -> _new("8");
+ my $n = length($str);
+ for (my $i = 0 ; $i < $n ; ++$i) {
+ $x = $class -> _mul($x, $base);
+ $x = $class -> _add($x, $class -> _new(substr($str, $i, 1)));
+ }
+ return $x;
+}
+
+sub _from_hex {
+ # convert a hexadecimal string to a decimal number
+ my ($class, $str) = @_;
+ $str =~ s/^0[Xx]//;
+ my $x = $class -> _zero();
+ my $base = $class -> _new("16");
+ my $n = length($str);
+ for (my $i = 0 ; $i < $n ; ++$i) {
+ $x = $class -> _mul($x, $base);
+ $x = $class -> _add($x, $class -> _new(hex substr($str, $i, 1)));
+ }
+ return $x;
+}
+
+sub _from_bin {
+ # convert a binary string to a decimal number
+ my ($class, $str) = @_;
+ $str =~ s/^0[Bb]//;
+ my $x = $class -> _zero();
+ my $base = $class -> _new("2");
+ my $n = length($str);
+ for (my $i = 0 ; $i < $n ; ++$i) {
+ $x = $class -> _mul($x, $base);
+ $x = $class -> _add($x, $class -> _new(substr($str, $i, 1)));
+ }
+ return $x;
+}
+
+sub _from_bytes {
+ # convert a byte string to a decimal number
+ my ($class, $str) = @_;
+ my $x = $class -> _zero();
+ my $base = $class -> _new("256");
+ my $n = length($str);
+ for (my $i = 0 ; $i < $n ; ++$i) {
+ $x = $class -> _mul($x, $base);
+ my $byteval = $class -> _new(unpack 'C', substr($str, $i, 1));
+ $x = $class -> _add($x, $byteval);
+ }
+ return $x;
+}
+
+##############################################################################
+# special modulus functions
+
+sub _modinv {
+ # modular multiplicative inverse
+ my ($class, $x, $y) = @_;
+
+ # modulo zero
+ if ($class -> _is_zero($y)) {
+ return (undef, undef);
+ }
+
+ # modulo one
+ if ($class -> _is_one($y)) {
+ return ($class -> _zero(), '+');
+ }
+
+ my $u = $class -> _zero();
+ my $v = $class -> _one();
+ my $a = $class -> _copy($y);
+ my $b = $class -> _copy($x);
+
+ # Euclid's Algorithm for bgcd().
+
+ my $q;
+ my $sign = 1;
+ {
+ ($a, $q, $b) = ($b, $class -> _div($a, $b));
+ last if $class -> _is_zero($b);
+
+ my $vq = $class -> _mul($class -> _copy($v), $q);
+ my $t = $class -> _add($vq, $u);
+ $u = $v;
+ $v = $t;
+ $sign = -$sign;
+ redo;
+ }
+
+ # if the gcd is not 1, then return NaN
+ return (undef, undef) unless $class -> _is_one($a);
+
+ ($v, $sign == 1 ? '+' : '-');
+}
+
+sub _modpow {
+ # modulus of power ($x ** $y) % $z
+ my ($class, $num, $exp, $mod) = @_;
+
+ # a^b (mod 1) = 0 for all a and b
+ if ($class -> _is_one($mod)) {
+ return $class -> _zero();
+ }
+
+ # 0^a (mod m) = 0 if m != 0, a != 0
+ # 0^0 (mod m) = 1 if m != 0
+ if ($class -> _is_zero($num)) {
+ return $class -> _is_zero($exp) ? $class -> _one()
+ : $class -> _zero();
+ }
+
+ # $num = $class -> _mod($num, $mod); # this does not make it faster
+
+ my $acc = $class -> _copy($num);
+ my $t = $class -> _one();
+
+ my $expbin = $class -> _as_bin($exp);
+ $expbin =~ s/^0b//;
+ my $len = length($expbin);
+
+ while (--$len >= 0) {
+ if (substr($expbin, $len, 1) eq '1') {
+ $t = $class -> _mul($t, $acc);
+ $t = $class -> _mod($t, $mod);
+ }
+ $acc = $class -> _mul($acc, $acc);
+ $acc = $class -> _mod($acc, $mod);
+ }
+ return $t;
+}
+
+sub _gcd {
+ # Greatest common divisor.
+
+ my ($class, $x, $y) = @_;
+
+ # gcd(0, 0) = 0
+ # gcd(0, a) = a, if a != 0
+
+ if ($class -> _acmp($x, $y) == 0) {
+ return $class -> _copy($x);
+ }
+
+ if ($class -> _is_zero($x)) {
+ if ($class -> _is_zero($y)) {
+ return $class -> _zero();
+ } else {
+ return $class -> _copy($y);
+ }
+ } else {
+ if ($class -> _is_zero($y)) {
+ return $class -> _copy($x);
+ } else {
+
+ # Until $y is zero ...
+
+ $x = $class -> _copy($x);
+ until ($class -> _is_zero($y)) {
+
+ # Compute remainder.
+
+ $x = $class -> _mod($x, $y);
+
+ # Swap $x and $y.
+
+ my $tmp = $x;
+ $x = $class -> _copy($y);
+ $y = $tmp;
+ }
+
+ return $x;
+ }
+ }
+}
+
+sub _lcm {
+ # Least common multiple.
+
+ my ($class, $x, $y) = @_;
+
+ # lcm(0, x) = 0 for all x
+
+ return $class -> _zero()
+ if ($class -> _is_zero($x) ||
+ $class -> _is_zero($y));
+
+ my $gcd = $class -> _gcd($class -> _copy($x), $y);
+ $x = $class -> _div($x, $gcd);
+ $x = $class -> _mul($x, $y);
+ return $x;
+}
+
+##############################################################################
+##############################################################################
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Math::BigInt::Lib - virtual parent class for Math::BigInt libraries
+
+=head1 SYNOPSIS
+
+This module provides support for big integer calculations. It is not intended
+to be used directly, but rather as a parent class for backend libraries used by
+Math::BigInt, Math::BigFloat, Math::BigRat, and related modules. Backend
+libraries include Math::BigInt::Calc, Math::BigInt::FastCalc,
+Math::BigInt::GMP, Math::BigInt::Pari and others.
+
+=head1 DESCRIPTION
+
+In order to allow for multiple big integer libraries, Math::BigInt was
+rewritten to use a plug-in library for core math routines. Any module which
+conforms to the API can be used by Math::BigInt by using this in your program:
+
+ use Math::BigInt lib => 'libname';
+
+'libname' is either the long name, like 'Math::BigInt::Pari', or only the short
+version, like 'Pari'.
+
+=head2 General Notes
+
+A library only needs to deal with unsigned big integers. Testing of input
+parameter validity is done by the caller, so there is no need to worry about
+underflow (e.g., in C<_sub()> and C<_dec()>) nor about division by zero (e.g.,
+in C<_div()>) or similar cases.
+
+Some libraries use methods that don't modify their argument, and some libraries
+don't even use objects. Because of this, liberary methods are always called as
+class methods, not instance methods:
+
+ $x = Class -> method($x, $y); # like this
+ $x = $x -> method($y); # not like this ...
+ $x -> method($y); # ... or like this
+
+And with boolean methods
+
+ $bool = Class -> method($x, $y); # like this
+ $bool = $x -> method($y); # not like this ...
+
+Return values are always objects, strings, Perl scalars, or true/false for
+comparison routines.
+
+=head3 API version
+
+=over 4
+
+=item api_version()
+
+Return API version as a Perl scalar, 1 for Math::BigInt v1.70, 2 for
+Math::BigInt v1.83.
+
+This method is no longer used. Methods that are not implemented by a subclass
+will be inherited from this class.
+
+=back
+
+=head3 Constructors
+
+The following methods are mandatory: _new(), _str(), _add(), and _sub().
+However, computations will be very slow without _mul() and _div().
+
+=over 4
+
+=item _new(STR)
+
+Convert a string representing an unsigned decimal number to an object
+representing the same number. The input is normalize, i.e., it matches
+C<^(0|[1-9]\d*)$>.
+
+=item _zero()
+
+Return an object representing the number zero.
+
+=item _one()
+
+Return an object representing the number one.
+
+=item _two()
+
+Return an object representing the number two.
+
+=item _ten()
+
+Return an object representing the number ten.
+
+=item _from_bin(STR)
+
+Return an object given a string representing a binary number. The input has a
+'0b' prefix and matches the regular expression C<^0[bB](0|1[01]*)$>.
+
+=item _from_oct(STR)
+
+Return an object given a string representing an octal number. The input has a
+'0' prefix and matches the regular expression C<^0[1-7]*$>.
+
+=item _from_hex(STR)
+
+Return an object given a string representing a hexadecimal number. The input
+has a '0x' prefix and matches the regular expression
+C<^0x(0|[1-9a-fA-F][\da-fA-F]*)$>.
+
+=item _from_bytes(STR)
+
+Returns an object given a byte string representing the number. The byte string
+is in big endian byte order, so the two-byte input string "\x01\x00" should
+give an output value representing the number 256.
+
+=back
+
+=head3 Mathematical functions
+
+=over 4
+
+=item _add(OBJ1, OBJ2)
+
+Returns the result of adding OBJ2 to OBJ1.
+
+=item _mul(OBJ1, OBJ2)
+
+Returns the result of multiplying OBJ2 and OBJ1.
+
+=item _div(OBJ1, OBJ2)
+
+Returns the result of dividing OBJ1 by OBJ2 and truncating the result to an
+integer.
+
+=item _sub(OBJ1, OBJ2, FLAG)
+
+=item _sub(OBJ1, OBJ2)
+
+Returns the result of subtracting OBJ2 by OBJ1. If C<flag> is false or omitted,
+OBJ1 might be modified. If C<flag> is true, OBJ2 might be modified.
+
+=item _dec(OBJ)
+
+Decrement OBJ by one.
+
+=item _inc(OBJ)
+
+Increment OBJ by one.
+
+=item _mod(OBJ1, OBJ2)
+
+Return OBJ1 modulo OBJ2, i.e., the remainder after dividing OBJ1 by OBJ2.
+
+=item _sqrt(OBJ)
+
+Return the square root of the object, truncated to integer.
+
+=item _root(OBJ, N)
+
+Return Nth root of the object, truncated to int. N is E<gt>= 3.
+
+=item _fac(OBJ)
+
+Return factorial of object (1*2*3*4*...).
+
+=item _pow(OBJ1, OBJ2)
+
+Return OBJ1 to the power of OBJ2. By convention, 0**0 = 1.
+
+=item _modinv(OBJ1, OBJ2)
+
+Return modular multiplicative inverse, i.e., return OBJ3 so that
+
+ (OBJ3 * OBJ1) % OBJ2 = 1 % OBJ2
+
+The result is returned as two arguments. If the modular multiplicative
+inverse does not exist, both arguments are undefined. Otherwise, the
+arguments are a number (object) and its sign ("+" or "-").
+
+The output value, with its sign, must either be a positive value in the
+range 1,2,...,OBJ2-1 or the same value subtracted OBJ2. For instance, if the
+input arguments are objects representing the numbers 7 and 5, the method
+must either return an object representing the number 3 and a "+" sign, since
+(3*7) % 5 = 1 % 5, or an object representing the number 2 and "-" sign,
+since (-2*7) % 5 = 1 % 5.
+
+=item _modpow(OBJ1, OBJ2, OBJ3)
+
+Return modular exponentiation, (OBJ1 ** OBJ2) % OBJ3.
+
+=item _rsft(OBJ, N, B)
+
+Shift object N digits right in base B and return the resulting object. This is
+equivalent to performing integer division by B**N and discarding the remainder,
+except that it might be much faster, depending on how the number is represented
+internally.
+
+For instance, if the object $obj represents the hexadecimal number 0xabcde,
+then C<_rsft($obj, 2, 16)> returns an object representing the number 0xabc. The
+"remainer", 0xde, is discarded and not returned.
+
+=item _lsft(OBJ, N, B)
+
+Shift the object N digits left in base B. This is equivalent to multiplying by
+B**N, except that it might be much faster, depending on how the number is
+represented internally.
+
+=item _log_int(OBJ, B)
+
+Return integer log of OBJ to base BASE. This method has two output arguments,
+the OBJECT and a STATUS. The STATUS is Perl scalar; it is 1 if OBJ is the exact
+result, 0 if the result was truncted to give OBJ, and undef if it is unknown
+whether OBJ is the exact result.
+
+=item _gcd(OBJ1, OBJ2)
+
+Return the greatest common divisor of OBJ1 and OBJ2.
+
+=item _lcm(OBJ1, OBJ2)
+
+Return the least common multiple of OBJ1 and OBJ2.
+
+=back
+
+=head3 Bitwise operators
+
+Each of these methods may modify the first input argument.
+
+=over 4
+
+=item _and(OBJ1, OBJ2)
+
+Return bitwise and. If necessary, the smallest number is padded with leading
+zeros.
+
+=item _or(OBJ1, OBJ2)
+
+Return bitwise or. If necessary, the smallest number is padded with leading
+zeros.
+
+=item _xor(OBJ1, OBJ2)
+
+Return bitwise exclusive or. If necessary, the smallest number is padded
+with leading zeros.
+
+=back
+
+=head3 Boolean operators
+
+=over 4
+
+=item _is_zero(OBJ)
+
+Returns a true value if OBJ is zero, and false value otherwise.
+
+=item _is_one(OBJ)
+
+Returns a true value if OBJ is one, and false value otherwise.
+
+=item _is_two(OBJ)
+
+Returns a true value if OBJ is two, and false value otherwise.
+
+=item _is_ten(OBJ)
+
+Returns a true value if OBJ is ten, and false value otherwise.
+
+=item _is_even(OBJ)
+
+Return a true value if OBJ is an even integer, and a false value otherwise.
+
+=item _is_odd(OBJ)
+
+Return a true value if OBJ is an even integer, and a false value otherwise.
+
+=item _acmp(OBJ1, OBJ2)
+
+Compare OBJ1 and OBJ2 and return -1, 0, or 1, if OBJ1 is less than, equal
+to, or larger than OBJ2, respectively.
+
+=back
+
+=head3 String conversion
+
+=over 4
+
+=item _str(OBJ)
+
+Return a string representing the object. The returned string should have no
+leading zeros, i.e., it should match C<^(0|[1-9]\d*)$>.
+
+=item _as_bin(OBJ)
+
+Return the binary string representation of the number. The string must have a
+'0b' prefix.
+
+=item _as_oct(OBJ)
+
+Return the octal string representation of the number. The string must have
+a '0x' prefix.
+
+Note: This method was required from Math::BigInt version 1.78, but the required
+API version number was not incremented, so there are older libraries that
+support API version 1, but do not support C<_as_oct()>.
+
+=item _as_hex(OBJ)
+
+Return the hexadecimal string representation of the number. The string must
+have a '0x' prefix.
+
+=item _as_bytes(OBJ)
+
+Return a byte string representation of the number. The byte string is in big
+endian byte order, so if the object represents the number 256, the output
+should be the two-byte string "\x01\x00".
+
+=back
+
+=head3 Numeric conversion
+
+=over 4
+
+=item _num(OBJ)
+
+Given an object, return a Perl scalar number (int/float) representing this
+number.
+
+=back
+
+=head3 Miscellaneous
+
+=over 4
+
+=item _copy(OBJ)
+
+Return a true copy of the object.
+
+=item _len(OBJ)
+
+Returns the number of the decimal digits in the number. The output is a
+Perl scalar.
+
+=item _zeros(OBJ)
+
+Return the number of trailing decimal zeros. The output is a Perl scalar.
+
+=item _digit(OBJ, N)
+
+Return the Nth digit as a Perl scalar. N is a Perl scalar, where zero refers to
+the rightmost (least significant) digit, and negative values count from the
+left (most significant digit). If $obj represents the number 123, then
+I<$obj->_digit(0)> is 3 and I<_digit(123, -1)> is 1.
+
+=item _check(OBJ)
+
+Return true if the object is invalid and false otherwise. Preferably, the true
+value is a string describing the problem with the object. This is a check
+routine to test the internal state of the object for corruption.
+
+=back
+
+=head2 API version 2
+
+The following methods are required for an API version of 2 or greater.
+
+=head3 Constructors
+
+=over 4
+
+=item _1ex(N)
+
+Return an object representing the number 10**N where N E<gt>= 0 is a Perl
+scalar.
+
+=back
+
+=head3 Mathematical functions
+
+=over 4
+
+=item _nok(OBJ1, OBJ2)
+
+Return the binomial coefficient OBJ1 over OBJ1.
+
+=back
+
+=head3 Miscellaneous
+
+=over 4
+
+=item _alen(OBJ)
+
+Return the approximate number of decimal digits of the object. The output is a
+Perl scalar.
+
+=back
+
+=head2 API optional methods
+
+The following methods are optional, and can be defined if the underlying lib
+has a fast way to do them. If undefined, Math::BigInt will use pure Perl (hence
+slow) fallback routines to emulate these:
+
+=head3 Signed bitwise operators.
+
+=over 4
+
+=item _signed_or(OBJ1, OBJ2, SIGN1, SIGN2)
+
+Return the signed bitwise or.
+
+=item _signed_and(OBJ1, OBJ2, SIGN1, SIGN2)
+
+Return the signed bitwise and.
+
+=item _signed_xor(OBJ1, OBJ2, SIGN1, SIGN2)
+
+Return the signed bitwise exclusive or.
+
+=back
+
+=head1 WRAP YOUR OWN
+
+If you want to port your own favourite C library for big numbers to the
+Math::BigInt interface, you can take any of the already existing modules as a
+rough guideline. You should really wrap up the latest Math::BigInt and
+Math::BigFloat testsuites with your module, and replace in them any of the
+following:
+
+ use Math::BigInt;
+
+by this:
+
+ use Math::BigInt lib => 'yourlib';
+
+This way you ensure that your library really works 100% within Math::BigInt.
+
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-math-bigint at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=Math-BigInt>
+(requires login).
+We will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc Math::BigInt::Calc
+
+You can also look for information at:
+
+=over 4
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=Math-BigInt>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/Math-BigInt>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/Math-BigInt>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/Math-BigInt/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=Math-BigInt>
+
+=item * The Bignum mailing list
+
+=over 4
+
+=item * Post to mailing list
+
+C<bignum at lists.scsys.co.uk>
+
+=item * View mailing list
+
+L<http://lists.scsys.co.uk/pipermail/bignum/>
+
+=item * Subscribe/Unsubscribe
+
+L<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/bignum>
+
+=back
+
+=back
+
+=head1 LICENSE
+
+This program is free software; you may redistribute it and/or modify it under
+the same terms as Perl itself.
+
+=head1 AUTHOR
+
+Peter John Acklam, E<lt>pjacklam@online.noE<gt>
+
+Code and documentation based on the Math::BigInt::Calc module by Tels
+E<lt>nospam-abuse@bloodgate.comE<gt>
+
+=head1 SEE ALSO
+
+L<Math::BigInt>, L<Math::BigInt::Calc>, L<Math::BigInt::GMP>,
+L<Math::BigInt::FastCalc> and L<Math::BigInt::Pari>.
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Math/BigInt/Trace.pm b/Master/tlpkg/tlperl/lib/Math/BigInt/Trace.pm
index 4e474976e54..dc915983f0f 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigInt/Trace.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigInt/Trace.pm
@@ -9,13 +9,13 @@ use warnings;
use Exporter;
use Math::BigInt;
-our ($PACKAGE, @EXPORT_OK, $accuracy, $precision, $round_mode, $div_scale);
+our ($accuracy, $precision, $round_mode, $div_scale);
our @ISA = qw(Exporter Math::BigInt);
-our $VERSION = '0.42_01';
+our $VERSION = '0.47';
-use overload; # inherit overload from BigInt
+use overload; # inherit overload from Math::BigInt
# Globals
$accuracy = $precision = undef;
diff --git a/Master/tlpkg/tlperl/lib/Math/BigRat.pm b/Master/tlpkg/tlperl/lib/Math/BigRat.pm
index 95c2927a864..c604a2706f7 100644
--- a/Master/tlpkg/tlperl/lib/Math/BigRat.pm
+++ b/Master/tlpkg/tlperl/lib/Math/BigRat.pm
@@ -12,40 +12,199 @@
package Math::BigRat;
-# anything older is untested, and unlikely to work
use 5.006;
use strict;
use warnings;
use Carp ();
-use Math::BigFloat;
+use Math::BigFloat '1.999718';
-our ($VERSION, @ISA, $upgrade, $downgrade,
- $accuracy, $precision, $round_mode, $div_scale, $_trap_nan, $_trap_inf);
+our $VERSION = '0.2611';
-@ISA = qw(Math::BigFloat);
+our @ISA = qw(Math::BigFloat);
-$VERSION = '0.260802';
-$VERSION = eval $VERSION;
-
-# Inherit overload from Math::BigFloat, but disable the bitwise ops that don't
-# make much sense for rationals unless they're truncated or something first.
+our ($accuracy, $precision, $round_mode, $div_scale,
+ $upgrade, $downgrade, $_trap_nan, $_trap_inf);
use overload
- map {
- my $op = $_;
- ($op => sub {
- Carp::croak("bitwise operation $op not supported in Math::BigRat");
- });
- } qw(& | ^ ~ << >> &= |= ^= <<= >>=);
+
+ # overload key: with_assign
+
+ '+' => sub { $_[0] -> copy() -> badd($_[1]); },
+
+ '-' => sub { my $c = $_[0] -> copy;
+ $_[2] ? $c -> bneg() -> badd( $_[1])
+ : $c -> bsub($_[1]); },
+
+ '*' => sub { $_[0] -> copy() -> bmul($_[1]); },
+
+ '/' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bdiv($_[0])
+ : $_[0] -> copy() -> bdiv($_[1]); },
+
+
+ '%' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bmod($_[0])
+ : $_[0] -> copy() -> bmod($_[1]); },
+
+ '**' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bpow($_[0])
+ : $_[0] -> copy() -> bpow($_[1]); },
+
+ '<<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blsft($_[0])
+ : $_[0] -> copy() -> blsft($_[1]); },
+
+ '>>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> brsft($_[0])
+ : $_[0] -> copy() -> brsft($_[1]); },
+
+ # overload key: assign
+
+ '+=' => sub { $_[0]->badd($_[1]); },
+
+ '-=' => sub { $_[0]->bsub($_[1]); },
+
+ '*=' => sub { $_[0]->bmul($_[1]); },
+
+ '/=' => sub { scalar $_[0]->bdiv($_[1]); },
+
+ '%=' => sub { $_[0]->bmod($_[1]); },
+
+ '**=' => sub { $_[0]->bpow($_[1]); },
+
+
+ '<<=' => sub { $_[0]->blsft($_[1]); },
+
+ '>>=' => sub { $_[0]->brsft($_[1]); },
+
+# 'x=' => sub { },
+
+# '.=' => sub { },
+
+ # overload key: num_comparison
+
+ '<' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> blt($_[0])
+ : $_[0] -> blt($_[1]); },
+
+ '<=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> ble($_[0])
+ : $_[0] -> ble($_[1]); },
+
+ '>' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bgt($_[0])
+ : $_[0] -> bgt($_[1]); },
+
+ '>=' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bge($_[0])
+ : $_[0] -> bge($_[1]); },
+
+ '==' => sub { $_[0] -> beq($_[1]); },
+
+ '!=' => sub { $_[0] -> bne($_[1]); },
+
+ # overload key: 3way_comparison
+
+ '<=>' => sub { my $cmp = $_[0] -> bcmp($_[1]);
+ defined($cmp) && $_[2] ? -$cmp : $cmp; },
+
+ 'cmp' => sub { $_[2] ? "$_[1]" cmp $_[0] -> bstr()
+ : $_[0] -> bstr() cmp "$_[1]"; },
+
+ # overload key: str_comparison
+
+# 'lt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrlt($_[0])
+# : $_[0] -> bstrlt($_[1]); },
+#
+# 'le' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrle($_[0])
+# : $_[0] -> bstrle($_[1]); },
+#
+# 'gt' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrgt($_[0])
+# : $_[0] -> bstrgt($_[1]); },
+#
+# 'ge' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bstrge($_[0])
+# : $_[0] -> bstrge($_[1]); },
+#
+# 'eq' => sub { $_[0] -> bstreq($_[1]); },
+#
+# 'ne' => sub { $_[0] -> bstrne($_[1]); },
+
+ # overload key: binary
+
+ '&' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> band($_[0])
+ : $_[0] -> copy() -> band($_[1]); },
+
+ '&=' => sub { $_[0] -> band($_[1]); },
+
+ '|' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bior($_[0])
+ : $_[0] -> copy() -> bior($_[1]); },
+
+ '|=' => sub { $_[0] -> bior($_[1]); },
+
+ '^' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> bxor($_[0])
+ : $_[0] -> copy() -> bxor($_[1]); },
+
+ '^=' => sub { $_[0] -> bxor($_[1]); },
+
+# '&.' => sub { },
+
+# '&.=' => sub { },
+
+# '|.' => sub { },
+
+# '|.=' => sub { },
+
+# '^.' => sub { },
+
+# '^.=' => sub { },
+
+ # overload key: unary
+
+ 'neg' => sub { $_[0] -> copy() -> bneg(); },
+
+# '!' => sub { },
+
+ '~' => sub { $_[0] -> copy() -> bnot(); },
+
+# '~.' => sub { },
+
+ # overload key: mutators
+
+ '++' => sub { $_[0] -> binc() },
+
+ '--' => sub { $_[0] -> bdec() },
+
+ # overload key: func
+
+ 'atan2' => sub { $_[2] ? ref($_[0]) -> new($_[1]) -> batan2($_[0])
+ : $_[0] -> copy() -> batan2($_[1]); },
+
+ 'cos' => sub { $_[0] -> copy() -> bcos(); },
+
+ 'sin' => sub { $_[0] -> copy() -> bsin(); },
+
+ 'exp' => sub { $_[0] -> copy() -> bexp($_[1]); },
+
+ 'abs' => sub { $_[0] -> copy() -> babs(); },
+
+ 'log' => sub { $_[0] -> copy() -> blog(); },
+
+ 'sqrt' => sub { $_[0] -> copy() -> bsqrt(); },
+
+ 'int' => sub { $_[0] -> copy() -> bint(); },
+
+ # overload key: conversion
+
+ 'bool' => sub { $_[0] -> is_zero() ? '' : 1; },
+
+ '""' => sub { $_[0] -> bstr(); },
+
+ '0+' => sub { $_[0] -> numify(); },
+
+ '=' => sub { $_[0]->copy(); },
+
+ ;
BEGIN {
*objectify = \&Math::BigInt::objectify; # inherit this from BigInt
*AUTOLOAD = \&Math::BigFloat::AUTOLOAD; # can't inherit AUTOLOAD
- # We inherit these from BigFloat because currently it is not possible
- # that MBF has a different $MBI variable than we, because MBF also uses
- # Math::BigInt::config->('lib'); (there is always only one library loaded)
+ # We inherit these from BigFloat because currently it is not possible that
+ # Math::BigFloat has a different $LIB variable than we, because
+ # Math::BigFloat also uses Math::BigInt::config->('lib') (there is always
+ # only one library loaded)
*_e_add = \&Math::BigFloat::_e_add;
*_e_sub = \&Math::BigFloat::_e_sub;
*as_int = \&as_number;
@@ -56,11 +215,11 @@ BEGIN {
##############################################################################
# Global constants and flags. Access these only via the accessor methods!
-$accuracy = $precision = undef;
+$accuracy = $precision = undef;
$round_mode = 'even';
-$div_scale = 40;
-$upgrade = undef;
-$downgrade = undef;
+$div_scale = 40;
+$upgrade = undef;
+$downgrade = undef;
# These are internally, and not to be used from the outside at all!
@@ -69,267 +228,298 @@ $_trap_inf = 0; # are infs ok? set w/ config()
# the package we are using for our private parts, defaults to:
# Math::BigInt->config()->{lib}
-my $MBI = 'Math::BigInt::Calc';
+
+my $LIB = 'Math::BigInt::Calc';
my $nan = 'NaN';
-my $class = 'Math::BigRat';
+#my $class = 'Math::BigRat';
sub isa {
- return 0 if $_[1] =~ /^Math::Big(Int|Float)/; # we aren't
+ return 0 if $_[1] =~ /^Math::Big(Int|Float)/; # we aren't
UNIVERSAL::isa(@_);
}
##############################################################################
-# If $x is a Math::BigRat object and $f is a Math::BigFloat object, then
-#
-# $x -> _new_from_float($f)
-#
-# converts $x into a Math::BigRat with the value of $f.
-
-sub _new_from_float
- {
- # turn a single float input into a rational number (like '0.1')
- my ($self,$f) = @_;
+sub new {
+ my $proto = shift;
+ my $protoref = ref $proto;
+ my $class = $protoref || $proto;
- return $self->bnan() if $f->is_nan();
- return $self->binf($f->{sign}) if $f->{sign} =~ /^[+-]inf$/;
+ # Check the way we are called.
- $self->{_n} = $MBI->_copy($f->{_m}); # mantissa
- $self->{_d} = $MBI->_one();
- $self->{sign} = $f->{sign} || '+';
- if ($f->{_es} eq '-')
- {
- # something like Math::BigRat->new('0.1');
- # 1 / 1 => 1/10
- $MBI->_lsft($self->{_d}, $f->{_e} ,10);
+ if ($protoref) {
+ Carp::croak("new() is a class method, not an instance method");
}
- else
- {
- # something like Math::BigRat->new('10');
- # 1 / 1 => 10/1
- $MBI->_lsft($self->{_n}, $f->{_e} ,10) unless
- $MBI->_is_zero($f->{_e});
+
+ if (@_ < 1) {
+ #Carp::carp("Using new() with no argument is deprecated;",
+ # " use bzero() or new(0) instead");
+ return $class -> bzero();
}
- return $self -> bnorm();
- }
-# If $x is a Math::BigRat object and $i is a Math::BigInt object, then
-#
-# $x -> _new_from_int($i)
-#
-# converts $x into a Math::BigRat with the value of $i.
+ if (@_ > 2) {
+ Carp::carp("Superfluous arguments to new() ignored.");
+ }
-sub _new_from_int {
- my ($self, $i) = @_;
+ # Get numerator and denominator. If any of the arguments is undefined,
+ # return zero.
- return $self -> bnan() if $i -> is_nan();
- return $self -> binf($i -> sign()) if $i -> is_inf();
+ my ($n, $d) = @_;
- $self -> {_n} = $MBI -> _copy($i -> {value});
- $self -> {_d} = $MBI -> _one();
- $self -> {sign} = $i -> {sign};
- return $self;
-}
+ if (@_ == 1 && !defined $n ||
+ @_ == 2 && (!defined $n || !defined $d))
+ {
+ #Carp::carp("Use of uninitialized value in new()");
+ return $class -> bzero();
+ }
-sub new {
- my $self = shift;
- my $selfref = ref $self;
- my $class = $selfref || $self;
+ # Initialize a new object.
- # Get numerator and denominator.
+ my $self = bless {}, $class;
- my ($n, $d) = @_;
+ # One or two input arguments may be given. First handle the numerator $n.
- # If called as a class method, initialize a new object.
+ if (ref($n)) {
+ $n = Math::BigFloat -> new($n, undef, undef)
+ unless ($n -> isa('Math::BigRat') ||
+ $n -> isa('Math::BigInt') ||
+ $n -> isa('Math::BigFloat'));
+ } else {
+ if (defined $d) {
+ # If the denominator is defined, the numerator is not a string
+ # fraction, e.g., "355/113".
+ $n = Math::BigFloat -> new($n, undef, undef);
+ } else {
+ # If the denominator is undefined, the numerator might be a string
+ # fraction, e.g., "355/113".
+ if ($n =~ m| ^ \s* (\S+) \s* / \s* (\S+) \s* $ |x) {
+ $n = Math::BigFloat -> new($1, undef, undef);
+ $d = Math::BigFloat -> new($2, undef, undef);
+ } else {
+ $n = Math::BigFloat -> new($n, undef, undef);
+ }
+ }
+ }
- $self = bless {}, $class unless $selfref;
+ # At this point $n is an object and $d is either an object or undefined. An
+ # undefined $d means that $d was not specified by the caller (not that $d
+ # was specified as an undefined value).
- # Input like $class->new($n), where there is no denominator, and where $n
- # is a Math::BigInt or Math::BigFloat.
+ unless (defined $d) {
+ #return $n -> copy($n) if $n -> isa('Math::BigRat');
+ return $class -> copy($n) if $n -> isa('Math::BigRat');
+ return $class -> bnan() if $n -> is_nan();
+ return $class -> binf($n -> sign()) if $n -> is_inf();
- if ((!defined $d) && (ref $n) && (!$n->isa('Math::BigRat'))) {
- if ($n->isa('Math::BigFloat')) {
- $self->_new_from_float($n);
+ if ($n -> isa('Math::BigInt')) {
+ $self -> {_n} = $LIB -> _new($n -> copy() -> babs() -> bstr());
+ $self -> {_d} = $LIB -> _one();
+ $self -> {sign} = $n -> sign();
+ return $self;
}
- elsif ($n->isa('Math::BigInt')) {
- # TODO: trap NaN, inf
- $self->{_n} = $MBI->_copy($n->{value}); # "mantissa" = N
- $self->{_d} = $MBI->_one(); # d => 1
- $self->{sign} = $n->{sign};
- }
- elsif ($n->isa('Math::BigInt::Lite')) {
- # TODO: trap NaN, inf
- $self->{sign} = '+';
- $self->{sign} = '-' if $$n < 0;
- $self->{_n} = $MBI->_new(abs($$n)); # "mantissa" = N
- $self->{_d} = $MBI->_one(); # d => 1
+
+ if ($n -> isa('Math::BigFloat')) {
+ my $m = $n -> mantissa() -> babs();
+ my $e = $n -> exponent();
+ $self -> {_n} = $LIB -> _new($m -> bstr());
+ $self -> {_d} = $LIB -> _one();
+
+ if ($e > 0) {
+ $self -> {_n} = $LIB -> _lsft($self -> {_n},
+ $LIB -> _new($e -> bstr()), 10);
+ } elsif ($e < 0) {
+ $self -> {_d} = $LIB -> _lsft($self -> {_d},
+ $LIB -> _new(-$e -> bstr()), 10);
+
+ my $gcd = $LIB -> _gcd($LIB -> _copy($self -> {_n}), $self -> {_d});
+ if (!$LIB -> _is_one($gcd)) {
+ $self -> {_n} = $LIB -> _div($self->{_n}, $gcd);
+ $self -> {_d} = $LIB -> _div($self->{_d}, $gcd);
+ }
+ }
+
+ $self -> {sign} = $n -> sign();
+ return $self;
}
- return $self->bnorm(); # normalize (120/100 => 6/5)
+
+ die "I don't know how to handle this"; # should never get here
}
- # Input like $class->new($n, $d) where $n and $d both are Math::BigInt
- # objects or Math::BigInt::Lite objects.
- if (ref($d) && ref($n)) {
+ # At the point we know that both $n and $d are defined. We know that $n is
+ # an object, but $d might still be a scalar. Now handle $d.
- # do N first (for $self->{sign}):
- if ($n->isa('Math::BigInt')) {
- # TODO: trap NaN, inf
- $self->{_n} = $MBI->_copy($n->{value}); # "mantissa" = N
- $self->{sign} = $n->{sign};
- }
- elsif ($n->isa('Math::BigInt::Lite')) {
- # TODO: trap NaN, inf
- $self->{sign} = '+';
- $self->{sign} = '-' if $$n < 0;
- $self->{_n} = $MBI->_new(abs($$n)); # "mantissa" = $n
- }
- else {
- Carp::croak(ref($n) . " is not a recognized object format for"
- . " Math::BigRat->new");
- }
+ $d = Math::BigFloat -> new($d, undef, undef)
+ unless ref($d) && ($d -> isa('Math::BigRat') ||
+ $d -> isa('Math::BigInt') ||
+ $d -> isa('Math::BigFloat'));
- # now D:
- if ($d->isa('Math::BigInt')) {
- # TODO: trap NaN, inf
- $self->{_d} = $MBI->_copy($d->{value}); # "mantissa" = D
- # +/+ or -/- => +, +/- or -/+ => -
- $self->{sign} = $d->{sign} ne $self->{sign} ? '-' : '+';
- } elsif ($d->isa('Math::BigInt::Lite')) {
- # TODO: trap NaN, inf
- $self->{_d} = $MBI->_new(abs($$d)); # "mantissa" = D
- my $ds = '+';
- $ds = '-' if $$d < 0;
- # +/+ or -/- => +, +/- or -/+ => -
- $self->{sign} = $ds ne $self->{sign} ? '-' : '+';
- } else {
- Carp::croak(ref($d) . " is not a recognized object format for"
- . " Math::BigRat->new");
- }
+ # At this point both $n and $d are objects.
- return $self->bnorm(); # normalize (120/100 => 6/5)
+ return $class -> bnan() if $n -> is_nan() || $d -> is_nan();
+
+ # At this point neither $n nor $d is a NaN.
+
+ if ($n -> is_zero()) {
+ return $class -> bnan() if $d -> is_zero(); # 0/0 = NaN
+ return $class -> bzero();
}
- return $n->copy() if ref $n; # already a BigRat
+ return $class -> binf($d -> sign()) if $d -> is_zero();
+
+ # At this point, neither $n nor $d is a NaN or a zero.
- if (!defined $n) {
- $self->{_n} = $MBI->_zero(); # undef => 0
- $self->{_d} = $MBI->_one();
- $self->{sign} = '+';
- return $self;
+ if ($d < 0) { # make sure denominator is positive
+ $n -> bneg();
+ $d -> bneg();
}
- # string input with / delimiter
- if ($n =~ m|\s*/\s*|) {
- return $class->bnan() if $n =~ m|/.*/|; # 1/2/3 isn't valid
- return $class->bnan() if $n =~ m|/\s*$|; # 1/ isn't valid
- ($n, $d) = split (/\//, $n);
- # try as BigFloats first
- if (($n =~ /[\.eE]/) || ($d =~ /[\.eE]/)) {
- local $Math::BigFloat::accuracy = undef;
- local $Math::BigFloat::precision = undef;
+ if ($n -> is_inf()) {
+ return $class -> bnan() if $d -> is_inf(); # Inf/Inf = NaN
+ return $class -> binf($n -> sign());
+ }
- # one of them looks like a float
- my $nf = Math::BigFloat->new($n, undef, undef);
- $self->{sign} = '+';
- return $self->bnan() if $nf->is_nan();
+ # At this point $n is finite.
- $self->{_n} = $MBI->_copy($nf->{_m}); # get mantissa
+ return $class -> bzero() if $d -> is_inf();
+ return $class -> binf($d -> sign()) if $d -> is_zero();
- # now correct $self->{_n} due to $n
- my $f = Math::BigFloat->new($d, undef, undef);
- return $self->bnan() if $f->is_nan();
- $self->{_d} = $MBI->_copy($f->{_m});
+ # At this point both $n and $d are finite and non-zero.
- # calculate the difference between nE and dE
- my $diff_e = $nf->exponent()->bsub($f->exponent);
- if ($diff_e->is_negative()) {
- # < 0: mul d with it
- $MBI->_lsft($self->{_d}, $MBI->_new($diff_e->babs()), 10);
- } elsif (!$diff_e->is_zero()) {
- # > 0: mul n with it
- $MBI->_lsft($self->{_n}, $MBI->_new($diff_e), 10);
- }
- } else {
- # both d and n look like (big)ints
-
- $self->{sign} = '+'; # no sign => '+'
- $self->{_n} = undef;
- $self->{_d} = undef;
- if ($n =~ /^([+-]?)0*([0-9]+)\z/) { # first part ok?
- $self->{sign} = $1 || '+'; # no sign => '+'
- $self->{_n} = $MBI->_new($2 || 0);
- }
+ if ($n < 0) {
+ $n -> bneg();
+ $self -> {sign} = '-';
+ } else {
+ $self -> {sign} = '+';
+ }
- if ($d =~ /^([+-]?)0*([0-9]+)\z/) { # second part ok?
- $self->{sign} =~ tr/+-/-+/ if ($1 || '') eq '-'; # negate if second part neg.
- $self->{_d} = $MBI->_new($2 || 0);
- }
+ if ($n -> isa('Math::BigRat')) {
- if (!defined $self->{_n} || !defined $self->{_d}) {
- $d = Math::BigInt->new($d, undef, undef) unless ref $d;
- $n = Math::BigInt->new($n, undef, undef) unless ref $n;
-
- if ($n->{sign} =~ /^[+-]$/ && $d->{sign} =~ /^[+-]$/) {
- # both parts are ok as integers (weird things like ' 1e0'
- $self->{_n} = $MBI->_copy($n->{value});
- $self->{_d} = $MBI->_copy($d->{value});
- $self->{sign} = $n->{sign};
- $self->{sign} =~ tr/+-/-+/ if $d->{sign} eq '-'; # -1/-2 => 1/2
- return $self->bnorm();
- }
+ if ($d -> isa('Math::BigRat')) {
- $self->{sign} = '+'; # a default sign
- return $self->bnan() if $n->is_nan() || $d->is_nan();
-
- # handle inf cases:
- if ($n->is_inf() || $d->is_inf()) {
- if ($n->is_inf()) {
- return $self->bnan() if $d->is_inf(); # both are inf => NaN
- my $s = '+'; # '+inf/+123' or '-inf/-123'
- $s = '-' if substr($n->{sign}, 0, 1) ne $d->{sign};
- # +-inf/123 => +-inf
- return $self->binf($s);
- }
- # 123/inf => 0
- return $self->bzero();
- }
- }
- }
+ # At this point both $n and $d is a Math::BigRat.
- return $self->bnorm();
- }
+ # p r p * s (p / gcd(p, r)) * (s / gcd(s, q))
+ # - / - = ----- = ---------------------------------
+ # q s q * r (q / gcd(s, q)) * (r / gcd(p, r))
- # simple string input
- if (($n =~ /[\.eE]/) && $n !~ /^0x/) {
- # looks like a float, quacks like a float, so probably is a float
- $self->{sign} = 'NaN';
- local $Math::BigFloat::accuracy = undef;
- local $Math::BigFloat::precision = undef;
- $self->_new_from_float(Math::BigFloat->new($n, undef, undef));
- } else {
- # for simple forms, use $MBI directly
- if ($n =~ /^([+-]?)0*([0-9]+)\z/) {
- $self->{sign} = $1 || '+';
- $self->{_n} = $MBI->_new($2 || 0);
- $self->{_d} = $MBI->_one();
+ my $p = $n -> {_n};
+ my $q = $n -> {_d};
+ my $r = $d -> {_n};
+ my $s = $d -> {_d};
+ my $gcd_pr = $LIB -> _gcd($LIB -> _copy($p), $r);
+ my $gcd_sq = $LIB -> _gcd($LIB -> _copy($s), $q);
+ $self -> {_n} = $LIB -> _mul($LIB -> _div($LIB -> _copy($p), $gcd_pr),
+ $LIB -> _div($LIB -> _copy($s), $gcd_sq));
+ $self -> {_d} = $LIB -> _mul($LIB -> _div($LIB -> _copy($q), $gcd_sq),
+ $LIB -> _div($LIB -> _copy($r), $gcd_pr));
+
+ return $self; # no need for $self -> bnorm() here
}
- elsif ($n =~ /^\s*([+-]?)inf(inity)?\s*\z/i) {
- my $sgn = $1 || '+';
- $self->{sign} = $sgn . 'inf'; # set a default sign for bstr()
- $self->binf($sgn);
+
+ # At this point, $n is a Math::BigRat and $d is a Math::Big(Int|Float).
+
+ my $p = $n -> {_n};
+ my $q = $n -> {_d};
+ my $m = $d -> mantissa();
+ my $e = $d -> exponent();
+
+ # / p
+ # | ------------ if e > 0
+ # | q * m * 10^e
+ # |
+ # p | p
+ # - / (m * 10^e) = | ----- if e == 0
+ # q | q * m
+ # |
+ # | p * 10^-e
+ # | -------- if e < 0
+ # \ q * m
+
+ $self -> {_n} = $LIB -> _copy($p);
+ $self -> {_d} = $LIB -> _mul($LIB -> _copy($q), $m);
+ if ($e > 0) {
+ $self -> {_d} = $LIB -> _lsft($self -> {_d}, $e, 10);
+ } elsif ($e < 0) {
+ $self -> {_n} = $LIB -> _lsft($self -> {_n}, -$e, 10);
}
- else {
- my $n = Math::BigInt->new($n, undef, undef);
- $self->{_n} = $MBI->_copy($n->{value});
- $self->{_d} = $MBI->_one();
- $self->{sign} = $n->{sign};
- return $self->bnan() if $self->{sign} eq 'NaN';
+ return $self -> bnorm();
+
+ } else {
+
+ if ($d -> isa('Math::BigRat')) {
+
+ # At this point $n is a Math::Big(Int|Float) and $d is a
+ # Math::BigRat.
+
+ my $m = $n -> mantissa();
+ my $e = $n -> exponent();
+ my $p = $d -> {_n};
+ my $q = $d -> {_d};
+
+ # / q * m * 10^e
+ # | ------------ if e > 0
+ # | p
+ # |
+ # p | m * q
+ # (m * 10^e) / - = | ----- if e == 0
+ # q | p
+ # |
+ # | q * m
+ # | --------- if e < 0
+ # \ p * 10^-e
+
+ $self -> {_n} = $LIB -> _mul($LIB -> _copy($q), $m);
+ $self -> {_d} = $LIB -> _copy($p);
+ if ($e > 0) {
+ $self -> {_n} = $LIB -> _lsft($self -> {_n}, $e, 10);
+ } elsif ($e < 0) {
+ $self -> {_d} = $LIB -> _lsft($self -> {_d}, -$e, 10);
+ }
+ return $self -> bnorm();
+
+ } else {
+
+ # At this point $n and $d are both a Math::Big(Int|Float)
+
+ my $m1 = $n -> mantissa();
+ my $e1 = $n -> exponent();
+ my $m2 = $d -> mantissa();
+ my $e2 = $d -> exponent();
+
+ # /
+ # | m1 * 10^(e1 - e2)
+ # | ----------------- if e1 > e2
+ # | m2
+ # |
+ # m1 * 10^e1 | m1
+ # ---------- = | -- if e1 = e2
+ # m2 * 10^e2 | m2
+ # |
+ # | m1
+ # | ----------------- if e1 < e2
+ # | m2 * 10^(e2 - e1)
+ # \
+
+ $self -> {_n} = $LIB -> _new($m1 -> bstr());
+ $self -> {_d} = $LIB -> _new($m2 -> bstr());
+ my $ediff = $e1 - $e2;
+ if ($ediff > 0) {
+ $self -> {_n} = $LIB -> _lsft($self -> {_n},
+ $LIB -> _new($ediff -> bstr()),
+ 10);
+ } elsif ($ediff < 0) {
+ $self -> {_d} = $LIB -> _lsft($self -> {_d},
+ $LIB -> _new(-$ediff -> bstr()),
+ 10);
+ }
+
+ return $self -> bnorm();
}
}
- $self->bnorm();
+ return $self;
}
sub copy {
@@ -344,318 +534,390 @@ sub copy {
my $copy = bless {}, $class;
$copy->{sign} = $self->{sign};
- $copy->{_d} = $MBI->_copy($self->{_d});
- $copy->{_n} = $MBI->_copy($self->{_n});
+ $copy->{_d} = $LIB->_copy($self->{_d});
+ $copy->{_n} = $LIB->_copy($self->{_n});
$copy->{_a} = $self->{_a} if defined $self->{_a};
$copy->{_p} = $self->{_p} if defined $self->{_p};
- $copy;
+ #($copy, $copy->{_a}, $copy->{_p})
+ # = $copy->_find_round_parameters(@_);
+
+ return $copy;
+}
+
+sub bnan {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self = bless {}, $class unless $selfref;
+
+ if ($_trap_nan) {
+ Carp::croak ("Tried to set a variable to NaN in $class->bnan()");
+ }
+
+ $self -> {sign} = $nan;
+ $self -> {_n} = $LIB -> _zero();
+ $self -> {_d} = $LIB -> _one();
+
+ ($self, $self->{_a}, $self->{_p})
+ = $self->_find_round_parameters(@_);
+
+ return $self;
+}
+
+sub binf {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self = bless {}, $class unless $selfref;
+
+ my $sign = shift();
+ $sign = defined($sign) && substr($sign, 0, 1) eq '-' ? '-inf' : '+inf';
+
+ if ($_trap_inf) {
+ Carp::croak ("Tried to set a variable to +-inf in $class->binf()");
+ }
+
+ $self -> {sign} = $sign;
+ $self -> {_n} = $LIB -> _zero();
+ $self -> {_d} = $LIB -> _one();
+
+ ($self, $self->{_a}, $self->{_p})
+ = $self->_find_round_parameters(@_);
+
+ return $self;
+}
+
+sub bone {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self = bless {}, $class unless $selfref;
+
+ my $sign = shift();
+ $sign = '+' unless defined($sign) && $sign eq '-';
+
+ $self -> {sign} = $sign;
+ $self -> {_n} = $LIB -> _one();
+ $self -> {_d} = $LIB -> _one();
+
+ ($self, $self->{_a}, $self->{_p})
+ = $self->_find_round_parameters(@_);
+
+ return $self;
+}
+
+sub bzero {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ $self = bless {}, $class unless $selfref;
+
+ $self -> {sign} = '+';
+ $self -> {_n} = $LIB -> _zero();
+ $self -> {_d} = $LIB -> _one();
+
+ ($self, $self->{_a}, $self->{_p})
+ = $self->_find_round_parameters(@_);
+
+ return $self;
}
##############################################################################
-sub config
- {
- # return (later set?) configuration data as hash ref
- my $class = shift || 'Math::BigRat';
+sub config {
+ # return (later set?) configuration data as hash ref
+ my $class = shift() || 'Math::BigRat';
- if (@_ == 1 && ref($_[0]) ne 'HASH')
- {
- my $cfg = $class->SUPER::config();
- return $cfg->{$_[0]};
+ if (@_ == 1 && ref($_[0]) ne 'HASH') {
+ my $cfg = $class->SUPER::config();
+ return $cfg->{$_[0]};
}
- my $cfg = $class->SUPER::config(@_);
+ my $cfg = $class->SUPER::config(@_);
- # now we need only to override the ones that are different from our parent
- $cfg->{class} = $class;
- $cfg->{with} = $MBI;
- $cfg;
- }
+ # now we need only to override the ones that are different from our parent
+ $cfg->{class} = $class;
+ $cfg->{with} = $LIB;
+
+ $cfg;
+}
##############################################################################
-sub bstr
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- if ($x->{sign} !~ /^[+-]$/) # inf, NaN etc
- {
- my $s = $x->{sign}; $s =~ s/^\+//; # +inf => inf
- return $s;
+ if ($x->{sign} !~ /^[+-]$/) { # inf, NaN etc
+ my $s = $x->{sign};
+ $s =~ s/^\+//; # +inf => inf
+ return $s;
}
- my $s = ''; $s = $x->{sign} if $x->{sign} ne '+'; # '+3/2' => '3/2'
+ my $s = '';
+ $s = $x->{sign} if $x->{sign} ne '+'; # '+3/2' => '3/2'
- return $s . $MBI->_str($x->{_n}) if $MBI->_is_one($x->{_d});
- $s . $MBI->_str($x->{_n}) . '/' . $MBI->_str($x->{_d});
- }
+ return $s . $LIB->_str($x->{_n}) if $LIB->_is_one($x->{_d});
+ $s . $LIB->_str($x->{_n}) . '/' . $LIB->_str($x->{_d});
+}
-sub bsstr
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bsstr {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- if ($x->{sign} !~ /^[+-]$/) # inf, NaN etc
- {
- my $s = $x->{sign}; $s =~ s/^\+//; # +inf => inf
- return $s;
+ if ($x->{sign} !~ /^[+-]$/) { # inf, NaN etc
+ my $s = $x->{sign};
+ $s =~ s/^\+//; # +inf => inf
+ return $s;
}
- my $s = ''; $s = $x->{sign} if $x->{sign} ne '+'; # +3 vs 3
- $s . $MBI->_str($x->{_n}) . '/' . $MBI->_str($x->{_d});
- }
+ my $s = '';
+ $s = $x->{sign} if $x->{sign} ne '+'; # +3 vs 3
+ $s . $LIB->_str($x->{_n}) . '/' . $LIB->_str($x->{_d});
+}
-sub bnorm
- {
- # reduce the number to the shortest form
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bnorm {
+ # reduce the number to the shortest form
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- # Both parts must be objects of whatever we are using today.
- if (my $c = $MBI->_check($x->{_n}))
- {
+ # Both parts must be objects of whatever we are using today.
+ if (my $c = $LIB->_check($x->{_n})) {
Carp::croak("n did not pass the self-check ($c) in bnorm()");
}
- if (my $c = $MBI->_check($x->{_d}))
- {
+ if (my $c = $LIB->_check($x->{_d})) {
Carp::croak("d did not pass the self-check ($c) in bnorm()");
}
- # no normalize for NaN, inf etc.
- return $x if $x->{sign} !~ /^[+-]$/;
+ # no normalize for NaN, inf etc.
+ return $x if $x->{sign} !~ /^[+-]$/;
- # normalize zeros to 0/1
- if ($MBI->_is_zero($x->{_n}))
- {
- $x->{sign} = '+'; # never leave a -0
- $x->{_d} = $MBI->_one() unless $MBI->_is_one($x->{_d});
- return $x;
+ # normalize zeros to 0/1
+ if ($LIB->_is_zero($x->{_n})) {
+ $x->{sign} = '+'; # never leave a -0
+ $x->{_d} = $LIB->_one() unless $LIB->_is_one($x->{_d});
+ return $x;
}
- return $x if $MBI->_is_one($x->{_d}); # no need to reduce
-
- # reduce other numbers
- my $gcd = $MBI->_copy($x->{_n});
- $gcd = $MBI->_gcd($gcd,$x->{_d});
+ return $x if $LIB->_is_one($x->{_d}); # no need to reduce
- if (!$MBI->_is_one($gcd))
- {
- $x->{_n} = $MBI->_div($x->{_n},$gcd);
- $x->{_d} = $MBI->_div($x->{_d},$gcd);
+ # Compute the GCD.
+ my $gcd = $LIB->_gcd($LIB->_copy($x->{_n}), $x->{_d});
+ if (!$LIB->_is_one($gcd)) {
+ $x->{_n} = $LIB->_div($x->{_n}, $gcd);
+ $x->{_d} = $LIB->_div($x->{_d}, $gcd);
}
- $x;
- }
+
+ $x;
+}
##############################################################################
# sign manipulation
-sub bneg
- {
- # (BRAT or num_str) return BRAT
- # negate number or make a negated number from string
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub bneg {
+ # (BRAT or num_str) return BRAT
+ # negate number or make a negated number from string
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $x if $x->modify('bneg');
+ return $x if $x->modify('bneg');
- # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
- $x->{sign} =~ tr/+-/-+/
- unless ($x->{sign} eq '+' && $MBI->_is_zero($x->{_n}));
- $x;
- }
+ # for +0 do not negate (to have always normalized +0). Does nothing for 'NaN'
+ $x->{sign} =~ tr/+-/-+/
+ unless ($x->{sign} eq '+' && $LIB->_is_zero($x->{_n}));
+ $x;
+}
##############################################################################
# special values
-sub _bnan
- {
- # used by parent class bnan() to initialize number to NaN
- my $self = shift;
+sub _bnan {
+ # used by parent class bnan() to initialize number to NaN
+ my $self = shift;
- if ($_trap_nan)
- {
- my $class = ref($self);
- # "$self" below will stringify the object, this blows up if $self is a
- # partial object (happens under trap_nan), so fix it beforehand
- $self->{_d} = $MBI->_zero() unless defined $self->{_d};
- $self->{_n} = $MBI->_zero() unless defined $self->{_n};
- Carp::croak ("Tried to set $self to NaN in $class\::_bnan()");
- }
- $self->{_n} = $MBI->_zero();
- $self->{_d} = $MBI->_zero();
- }
-
-sub _binf
- {
- # used by parent class bone() to initialize number to +inf/-inf
- my $self = shift;
-
- if ($_trap_inf)
- {
- my $class = ref($self);
- # "$self" below will stringify the object, this blows up if $self is a
- # partial object (happens under trap_nan), so fix it beforehand
- $self->{_d} = $MBI->_zero() unless defined $self->{_d};
- $self->{_n} = $MBI->_zero() unless defined $self->{_n};
- Carp::croak ("Tried to set $self to inf in $class\::_binf()");
- }
- $self->{_n} = $MBI->_zero();
- $self->{_d} = $MBI->_zero();
- }
-
-sub _bone
- {
- # used by parent class bone() to initialize number to +1/-1
- my $self = shift;
- $self->{_n} = $MBI->_one();
- $self->{_d} = $MBI->_one();
- }
-
-sub _bzero
- {
- # used by parent class bzero() to initialize number to 0
- my $self = shift;
- $self->{_n} = $MBI->_zero();
- $self->{_d} = $MBI->_one();
- }
+ if ($_trap_nan) {
+ my $class = ref($self);
+ # "$self" below will stringify the object, this blows up if $self is a
+ # partial object (happens under trap_nan), so fix it beforehand
+ $self->{_d} = $LIB->_zero() unless defined $self->{_d};
+ $self->{_n} = $LIB->_zero() unless defined $self->{_n};
+ Carp::croak ("Tried to set $self to NaN in $class\::_bnan()");
+ }
+ $self->{_n} = $LIB->_zero();
+ $self->{_d} = $LIB->_zero();
+}
+
+sub _binf {
+ # used by parent class bone() to initialize number to +inf/-inf
+ my $self = shift;
+
+ if ($_trap_inf) {
+ my $class = ref($self);
+ # "$self" below will stringify the object, this blows up if $self is a
+ # partial object (happens under trap_nan), so fix it beforehand
+ $self->{_d} = $LIB->_zero() unless defined $self->{_d};
+ $self->{_n} = $LIB->_zero() unless defined $self->{_n};
+ Carp::croak ("Tried to set $self to inf in $class\::_binf()");
+ }
+ $self->{_n} = $LIB->_zero();
+ $self->{_d} = $LIB->_zero();
+}
+
+sub _bone {
+ # used by parent class bone() to initialize number to +1/-1
+ my $self = shift;
+ $self->{_n} = $LIB->_one();
+ $self->{_d} = $LIB->_one();
+}
+
+sub _bzero {
+ # used by parent class bzero() to initialize number to 0
+ my $self = shift;
+ $self->{_n} = $LIB->_zero();
+ $self->{_d} = $LIB->_one();
+}
##############################################################################
# mul/add/div etc
-sub badd
- {
- # add two rational numbers
+sub badd {
+ # add two rational numbers
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # +inf + +inf => +inf, -inf + -inf => -inf
- return $x->binf(substr($x->{sign},0,1))
- if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
+ # +inf + +inf => +inf, -inf + -inf => -inf
+ return $x->binf(substr($x->{sign}, 0, 1))
+ if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
- # +inf + -inf or -inf + +inf => NaN
- return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
+ # +inf + -inf or -inf + +inf => NaN
+ return $x->bnan() if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/);
- # 1 1 gcd(3,4) = 1 1*3 + 1*4 7
- # - + - = --------- = --
- # 4 3 4*3 12
+ # 1 1 gcd(3, 4) = 1 1*3 + 1*4 7
+ # - + - = --------- = --
+ # 4 3 4*3 12
- # we do not compute the gcd() here, but simple do:
- # 5 7 5*3 + 7*4 43
- # - + - = --------- = --
- # 4 3 4*3 12
+ # we do not compute the gcd() here, but simple do:
+ # 5 7 5*3 + 7*4 43
+ # - + - = --------- = --
+ # 4 3 4*3 12
- # and bnorm() will then take care of the rest
+ # and bnorm() will then take care of the rest
- # 5 * 3
- $x->{_n} = $MBI->_mul($x->{_n}, $y->{_d});
+ # 5 * 3
+ $x->{_n} = $LIB->_mul($x->{_n}, $y->{_d});
- # 7 * 4
- my $m = $MBI->_mul($MBI->_copy($y->{_n}), $x->{_d});
+ # 7 * 4
+ my $m = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d});
- # 5 * 3 + 7 * 4
- ($x->{_n}, $x->{sign}) = _e_add($x->{_n}, $m, $x->{sign}, $y->{sign});
+ # 5 * 3 + 7 * 4
+ ($x->{_n}, $x->{sign}) = _e_add($x->{_n}, $m, $x->{sign}, $y->{sign});
- # 4 * 3
- $x->{_d} = $MBI->_mul($x->{_d}, $y->{_d});
+ # 4 * 3
+ $x->{_d} = $LIB->_mul($x->{_d}, $y->{_d});
- # normalize result, and possible round
- $x->bnorm()->round(@r);
- }
+ # normalize result, and possible round
+ $x->bnorm()->round(@r);
+}
-sub bsub
- {
- # subtract two rational numbers
+sub bsub {
+ # subtract two rational numbers
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
- }
-
- # flip sign of $x, call badd(), then flip sign of result
- $x->{sign} =~ tr/+-/-+/
- unless $x->{sign} eq '+' && $MBI->_is_zero($x->{_n}); # not -0
- $x->badd($y,@r); # does norm and round
- $x->{sign} =~ tr/+-/-+/
- unless $x->{sign} eq '+' && $MBI->_is_zero($x->{_n}); # not -0
- $x;
- }
-
-sub bmul
- {
- # multiply two rational numbers
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x->bnan() if ($x->{sign} eq 'NaN' || $y->{sign} eq 'NaN');
+ # flip sign of $x, call badd(), then flip sign of result
+ $x->{sign} =~ tr/+-/-+/
+ unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); # not -0
+ $x->badd($y, @r); # does norm and round
+ $x->{sign} =~ tr/+-/-+/
+ unless $x->{sign} eq '+' && $LIB->_is_zero($x->{_n}); # not -0
- # inf handling
- if (($x->{sign} =~ /^[+-]inf$/) || ($y->{sign} =~ /^[+-]inf$/))
- {
- return $x->bnan() if $x->is_zero() || $y->is_zero();
- # result will always be +-inf:
- # +inf * +/+inf => +inf, -inf * -/-inf => +inf
- # +inf * -/-inf => -inf, -inf * +/+inf => -inf
- return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
- return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
- return $x->binf('-');
+ $x;
+}
+
+sub bmul {
+ # multiply two rational numbers
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x->bnan() if $x->{sign} eq 'NaN' || $y->{sign} eq 'NaN';
+
+ # inf handling
+ if ($x->{sign} =~ /^[+-]inf$/ || $y->{sign} =~ /^[+-]inf$/) {
+ return $x->bnan() if $x->is_zero() || $y->is_zero();
+ # result will always be +-inf:
+ # +inf * +/+inf => +inf, -inf * -/-inf => +inf
+ # +inf * -/-inf => -inf, -inf * +/+inf => -inf
+ return $x->binf() if ($x->{sign} =~ /^\+/ && $y->{sign} =~ /^\+/);
+ return $x->binf() if ($x->{sign} =~ /^-/ && $y->{sign} =~ /^-/);
+ return $x->binf('-');
}
- # x== 0 # also: or y == 1 or y == -1
- return wantarray ? ($x,$self->bzero()) : $x if $x->is_zero();
+ # x == 0 # also: or y == 1 or y == -1
+ return wantarray ? ($x, $class->bzero()) : $x if $x -> is_zero();
- # XXX TODO:
- # According to Knuth, this can be optimized by doing gcd twice (for d and n)
- # and reducing in one step. This would save us the bnorm() at the end.
+ if ($y -> is_zero()) {
+ $x -> bzero();
+ return wantarray ? ($x, $class->bzero()) : $x;
+ }
- # 1 2 1 * 2 2 1
- # - * - = ----- = - = -
- # 4 3 4 * 3 12 6
+ # According to Knuth, this can be optimized by doing gcd twice (for d
+ # and n) and reducing in one step. This saves us a bnorm() at the end.
+ #
+ # p s p * s (p / gcd(p, r)) * (s / gcd(s, q))
+ # - * - = ----- = ---------------------------------
+ # q r q * r (q / gcd(s, q)) * (r / gcd(p, r))
- $x->{_n} = $MBI->_mul($x->{_n}, $y->{_n});
- $x->{_d} = $MBI->_mul($x->{_d}, $y->{_d});
+ my $gcd_pr = $LIB -> _gcd($LIB -> _copy($x->{_n}), $y->{_d});
+ my $gcd_sq = $LIB -> _gcd($LIB -> _copy($y->{_n}), $x->{_d});
- # compute new sign
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
+ $x->{_n} = $LIB -> _mul(scalar $LIB -> _div($x->{_n}, $gcd_pr),
+ scalar $LIB -> _div($y->{_n}, $gcd_sq));
+ $x->{_d} = $LIB -> _mul(scalar $LIB -> _div($x->{_d}, $gcd_sq),
+ scalar $LIB -> _div($y->{_d}, $gcd_pr));
- $x->bnorm()->round(@r);
- }
+ # compute new sign
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
-sub bdiv
- {
- # (dividend: BRAT or num_str, divisor: BRAT or num_str) return
- # (BRAT,BRAT) (quo,rem) or BRAT (only rem)
+ $x->round(@r);
+}
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+sub bdiv {
+ # (dividend: BRAT or num_str, divisor: BRAT or num_str) return
+ # (BRAT, BRAT) (quo, rem) or BRAT (only rem)
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->modify('bdiv');
+ return $x if $x->modify('bdiv');
- my $wantarray = wantarray; # call only once
+ my $wantarray = wantarray; # call only once
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bdiv(). See the comments in the code implementing that
# method.
if ($x -> is_nan() || $y -> is_nan()) {
- return $wantarray ? ($x -> bnan(), $self -> bnan()) : $x -> bnan();
+ return $wantarray ? ($x -> bnan(), $class -> bnan()) : $x -> bnan();
}
# Divide by zero and modulo zero. This is handled the same way as in
@@ -681,7 +943,7 @@ sub bdiv
if ($x -> is_inf()) {
my ($quo, $rem);
- $rem = $self -> bnan() if $wantarray;
+ $rem = $class -> bnan() if $wantarray;
if ($y -> is_inf()) {
$quo = $x -> bnan();
} else {
@@ -691,78 +953,76 @@ sub bdiv
return $wantarray ? ($quo, $rem) : $quo;
}
- # Denominator (divisor) is +/-inf. This is handled the same way as in
- # Math::BigFloat -> bdiv(). See the comments in the code implementing that
- # method.
-
- if ($y -> is_inf()) {
- my ($quo, $rem);
- if ($wantarray) {
- if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
- $rem = $x -> copy();
- $quo = $x -> bzero();
- } else {
- $rem = $self -> binf($y -> {sign});
- $quo = $x -> bone('-');
- }
- return ($quo, $rem);
- } else {
- if ($y -> is_inf()) {
- if ($x -> is_nan() || $x -> is_inf()) {
- return $x -> bnan();
- } else {
- return $x -> bzero();
- }
- }
- }
- }
-
- # At this point, both the numerator and denominator are finite numbers, and
- # the denominator (divisor) is non-zero.
-
- # x == 0?
- return wantarray ? ($x,$self->bzero()) : $x if $x->is_zero();
-
- # XXX TODO: list context, upgrade
- # According to Knuth, this can be optimized by doing gcd twice (for d and n)
- # and reducing in one step. This would save us the bnorm() at the end.
-
- # 1 1 1 3
- # - / - == - * -
- # 4 3 4 1
-
- $x->{_n} = $MBI->_mul($x->{_n}, $y->{_d});
- $x->{_d} = $MBI->_mul($x->{_d}, $y->{_n});
-
- # compute new sign
- $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
-
- $x -> bnorm();
- if (wantarray) {
- my $rem = $x -> copy();
- $x -> bfloor();
- $x -> round(@r);
- $rem -> bsub($x -> copy()) -> bmul($y);
- return $x, $rem;
- } else {
- $x -> round(@r);
- return $x;
- }
- }
-
-sub bmod
- {
- # compute "remainder" (in Perl way) of $x / $y
-
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # Denominator (divisor) is +/-inf. This is handled the same way as in
+ # Math::BigFloat -> bdiv(). See the comments in the code implementing that
+ # method.
+
+ if ($y -> is_inf()) {
+ my ($quo, $rem);
+ if ($wantarray) {
+ if ($x -> is_zero() || $x -> bcmp(0) == $y -> bcmp(0)) {
+ $rem = $x -> copy();
+ $quo = $x -> bzero();
+ } else {
+ $rem = $class -> binf($y -> {sign});
+ $quo = $x -> bone('-');
+ }
+ return ($quo, $rem);
+ } else {
+ if ($y -> is_inf()) {
+ if ($x -> is_nan() || $x -> is_inf()) {
+ return $x -> bnan();
+ } else {
+ return $x -> bzero();
+ }
+ }
+ }
}
- return $x if $x->modify('bmod');
+ # At this point, both the numerator and denominator are finite numbers, and
+ # the denominator (divisor) is non-zero.
+
+ # x == 0?
+ return wantarray ? ($x, $class->bzero()) : $x if $x->is_zero();
+
+ # XXX TODO: list context, upgrade
+ # According to Knuth, this can be optimized by doing gcd twice (for d and n)
+ # and reducing in one step. This would save us the bnorm() at the end.
+ #
+ # p r p * s (p / gcd(p, r)) * (s / gcd(s, q))
+ # - / - = ----- = ---------------------------------
+ # q s q * r (q / gcd(s, q)) * (r / gcd(p, r))
+
+ $x->{_n} = $LIB->_mul($x->{_n}, $y->{_d});
+ $x->{_d} = $LIB->_mul($x->{_d}, $y->{_n});
+
+ # compute new sign
+ $x->{sign} = $x->{sign} eq $y->{sign} ? '+' : '-';
+
+ $x -> bnorm();
+ if (wantarray) {
+ my $rem = $x -> copy();
+ $x -> bfloor();
+ $x -> round(@r);
+ $rem -> bsub($x -> copy()) -> bmul($y);
+ return $x, $rem;
+ } else {
+ $x -> round(@r);
+ return $x;
+ }
+}
+
+sub bmod {
+ # compute "remainder" (in Perl way) of $x / $y
+
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
+ }
+
+ return $x if $x->modify('bmod');
# At least one argument is NaN. This is handled the same way as in
# Math::BigInt -> bmod().
@@ -795,938 +1055,1031 @@ sub bmod
}
}
- # At this point, both the numerator and denominator are finite numbers, and
- # the denominator (divisor) is non-zero.
+ # At this point, both the numerator and denominator are finite numbers, and
+ # the denominator (divisor) is non-zero.
- return $x if $x->is_zero(); # 0 / 7 = 0, mod 0
+ return $x if $x->is_zero(); # 0 / 7 = 0, mod 0
- # Compute $x - $y * floor($x/$y). This can probably be optimized by working
- # on a lower level.
+ # Compute $x - $y * floor($x/$y). This can probably be optimized by working
+ # on a lower level.
- $x -> bsub($x -> copy() -> bdiv($y) -> bfloor() -> bmul($y));
- return $x -> round(@r);
- }
+ $x -> bsub($x -> copy() -> bdiv($y) -> bfloor() -> bmul($y));
+ return $x -> round(@r);
+}
##############################################################################
# bdec/binc
-sub bdec
- {
- # decrement value (subtract 1)
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+sub bdec {
+ # decrement value (subtract 1)
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
- return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
+ return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
- if ($x->{sign} eq '-')
- {
- $x->{_n} = $MBI->_add($x->{_n}, $x->{_d}); # -5/2 => -7/2
+ if ($x->{sign} eq '-') {
+ $x->{_n} = $LIB->_add($x->{_n}, $x->{_d}); # -5/2 => -7/2
+ } else {
+ if ($LIB->_acmp($x->{_n}, $x->{_d}) < 0) # n < d?
+ {
+ # 1/3 -- => -2/3
+ $x->{_n} = $LIB->_sub($LIB->_copy($x->{_d}), $x->{_n});
+ $x->{sign} = '-';
+ } else {
+ $x->{_n} = $LIB->_sub($x->{_n}, $x->{_d}); # 5/2 => 3/2
+ }
}
- else
- {
- if ($MBI->_acmp($x->{_n},$x->{_d}) < 0) # n < d?
- {
- # 1/3 -- => -2/3
- $x->{_n} = $MBI->_sub($MBI->_copy($x->{_d}), $x->{_n});
- $x->{sign} = '-';
- }
- else
- {
- $x->{_n} = $MBI->_sub($x->{_n}, $x->{_d}); # 5/2 => 3/2
- }
- }
- $x->bnorm()->round(@r);
- }
-
-sub binc
- {
- # increment value (add 1)
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
-
- return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
-
- if ($x->{sign} eq '-')
- {
- if ($MBI->_acmp($x->{_n},$x->{_d}) < 0)
- {
- # -1/3 ++ => 2/3 (overflow at 0)
- $x->{_n} = $MBI->_sub($MBI->_copy($x->{_d}), $x->{_n});
- $x->{sign} = '+';
- }
- else
- {
- $x->{_n} = $MBI->_sub($x->{_n}, $x->{_d}); # -5/2 => -3/2
- }
- }
- else
- {
- $x->{_n} = $MBI->_add($x->{_n},$x->{_d}); # 5/2 => 7/2
+ $x->bnorm()->round(@r);
+}
+
+sub binc {
+ # increment value (add 1)
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x if $x->{sign} !~ /^[+-]$/; # NaN, inf, -inf
+
+ if ($x->{sign} eq '-') {
+ if ($LIB->_acmp($x->{_n}, $x->{_d}) < 0) {
+ # -1/3 ++ => 2/3 (overflow at 0)
+ $x->{_n} = $LIB->_sub($LIB->_copy($x->{_d}), $x->{_n});
+ $x->{sign} = '+';
+ } else {
+ $x->{_n} = $LIB->_sub($x->{_n}, $x->{_d}); # -5/2 => -3/2
+ }
+ } else {
+ $x->{_n} = $LIB->_add($x->{_n}, $x->{_d}); # 5/2 => 7/2
}
- $x->bnorm()->round(@r);
- }
+ $x->bnorm()->round(@r);
+}
##############################################################################
# is_foo methods (the rest is inherited)
-sub is_int
- {
- # return true if arg (BRAT or num_str) is an integer
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 1 if ($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
- $MBI->_is_one($x->{_d}); # x/y && y != 1 => no integer
- 0;
- }
-
-sub is_zero
- {
- # return true if arg (BRAT or num_str) is zero
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 1 if $x->{sign} eq '+' && $MBI->_is_zero($x->{_n});
- 0;
- }
-
-sub is_one
- {
- # return true if arg (BRAT or num_str) is +1 or -1 if signis given
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- my $sign = $_[2] || ''; $sign = '+' if $sign ne '-';
- return 1
- if ($x->{sign} eq $sign && $MBI->_is_one($x->{_n}) && $MBI->_is_one($x->{_d}));
- 0;
- }
-
-sub is_odd
- {
- # return true if arg (BFLOAT or num_str) is odd or false if even
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 1 if ($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
- ($MBI->_is_one($x->{_d}) && $MBI->_is_odd($x->{_n})); # x/2 is not, but 3/1
- 0;
- }
-
-sub is_even
- {
- # return true if arg (BINT or num_str) is even or false if odd
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
-
- return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
- return 1 if ($MBI->_is_one($x->{_d}) # x/3 is never
- && $MBI->_is_even($x->{_n})); # but 4/1 is
- 0;
- }
+sub is_int {
+ # return true if arg (BRAT or num_str) is an integer
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return 1 if ($x->{sign} =~ /^[+-]$/) && # NaN and +-inf aren't
+ $LIB->_is_one($x->{_d}); # x/y && y != 1 => no integer
+ 0;
+}
+
+sub is_zero {
+ # return true if arg (BRAT or num_str) is zero
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return 1 if $x->{sign} eq '+' && $LIB->_is_zero($x->{_n});
+ 0;
+}
+
+sub is_one {
+ # return true if arg (BRAT or num_str) is +1 or -1 if signis given
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ my $sign = $_[2] || ''; $sign = '+' if $sign ne '-';
+ return 1
+ if ($x->{sign} eq $sign && $LIB->_is_one($x->{_n}) && $LIB->_is_one($x->{_d}));
+ 0;
+}
+
+sub is_odd {
+ # return true if arg (BFLOAT or num_str) is odd or false if even
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return 1 if ($x->{sign} =~ /^[+-]$/) && # NaN & +-inf aren't
+ ($LIB->_is_one($x->{_d}) && $LIB->_is_odd($x->{_n})); # x/2 is not, but 3/1
+ 0;
+}
+
+sub is_even {
+ # return true if arg (BINT or num_str) is even or false if odd
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return 0 if $x->{sign} !~ /^[+-]$/; # NaN & +-inf aren't
+ return 1 if ($LIB->_is_one($x->{_d}) # x/3 is never
+ && $LIB->_is_even($x->{_n})); # but 4/1 is
+ 0;
+}
##############################################################################
# parts() and friends
-sub numerator
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub numerator {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- # NaN, inf, -inf
- return Math::BigInt->new($x->{sign}) if ($x->{sign} !~ /^[+-]$/);
+ # NaN, inf, -inf
+ return Math::BigInt->new($x->{sign}) if ($x->{sign} !~ /^[+-]$/);
- my $n = Math::BigInt->new($MBI->_str($x->{_n})); $n->{sign} = $x->{sign};
- $n;
- }
+ my $n = Math::BigInt->new($LIB->_str($x->{_n}));
+ $n->{sign} = $x->{sign};
+ $n;
+}
-sub denominator
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub denominator {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- # NaN
- return Math::BigInt->new($x->{sign}) if $x->{sign} eq 'NaN';
- # inf, -inf
- return Math::BigInt->bone() if $x->{sign} !~ /^[+-]$/;
+ # NaN
+ return Math::BigInt->new($x->{sign}) if $x->{sign} eq 'NaN';
+ # inf, -inf
+ return Math::BigInt->bone() if $x->{sign} !~ /^[+-]$/;
- Math::BigInt->new($MBI->_str($x->{_d}));
- }
+ Math::BigInt->new($LIB->_str($x->{_d}));
+}
-sub parts
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
+sub parts {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
- my $c = 'Math::BigInt';
+ my $c = 'Math::BigInt';
- return ($c->bnan(),$c->bnan()) if $x->{sign} eq 'NaN';
- return ($c->binf(),$c->binf()) if $x->{sign} eq '+inf';
- return ($c->binf('-'),$c->binf()) if $x->{sign} eq '-inf';
+ return ($c->bnan(), $c->bnan()) if $x->{sign} eq 'NaN';
+ return ($c->binf(), $c->binf()) if $x->{sign} eq '+inf';
+ return ($c->binf('-'), $c->binf()) if $x->{sign} eq '-inf';
- my $n = $c->new($MBI->_str($x->{_n}));
- $n->{sign} = $x->{sign};
- my $d = $c->new($MBI->_str($x->{_d}));
- ($n,$d);
- }
+ my $n = $c->new($LIB->_str($x->{_n}));
+ $n->{sign} = $x->{sign};
+ my $d = $c->new($LIB->_str($x->{_d}));
+ ($n, $d);
+}
-sub length
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub length {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $nan unless $x->is_int();
- $MBI->_len($x->{_n}); # length(-123/1) => length(123)
- }
+ return $nan unless $x->is_int();
+ $LIB->_len($x->{_n}); # length(-123/1) => length(123)
+}
-sub digit
- {
- my ($self,$x,$n) = ref($_[0]) ? (undef,$_[0],$_[1]) : objectify(1,@_);
+sub digit {
+ my ($class, $x, $n) = ref($_[0]) ? (undef, $_[0], $_[1]) : objectify(1, @_);
- return $nan unless $x->is_int();
- $MBI->_digit($x->{_n},$n || 0); # digit(-123/1,2) => digit(123,2)
- }
+ return $nan unless $x->is_int();
+ $LIB->_digit($x->{_n}, $n || 0); # digit(-123/1, 2) => digit(123, 2)
+}
##############################################################################
# special calc routines
-sub bceil
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
-
- return $x if $x->{sign} !~ /^[+-]$/ || # not for NaN, inf
- $MBI->_is_one($x->{_d}); # 22/1 => 22, 0/1 => 0
-
- $x->{_n} = $MBI->_div($x->{_n},$x->{_d}); # 22/7 => 3/1 w/ truncate
- $x->{_d} = $MBI->_one(); # d => 1
- $x->{_n} = $MBI->_inc($x->{_n})
- if $x->{sign} eq '+'; # +22/7 => 4/1
- $x->{sign} = '+' if $MBI->_is_zero($x->{_n}); # -0 => 0
- $x;
- }
-
-sub bfloor
- {
- my ($self,$x) = ref($_[0]) ? (ref($_[0]),$_[0]) : objectify(1,@_);
-
- return $x if $x->{sign} !~ /^[+-]$/ || # not for NaN, inf
- $MBI->_is_one($x->{_d}); # 22/1 => 22, 0/1 => 0
-
- $x->{_n} = $MBI->_div($x->{_n},$x->{_d}); # 22/7 => 3/1 w/ truncate
- $x->{_d} = $MBI->_one(); # d => 1
- $x->{_n} = $MBI->_inc($x->{_n})
- if $x->{sign} eq '-'; # -22/7 => -4/1
- $x;
- }
-
-sub bfac
- {
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
-
- # if $x is not an integer
- if (($x->{sign} ne '+') || (!$MBI->_is_one($x->{_d})))
- {
- return $x->bnan();
+sub bceil {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x if ($x->{sign} !~ /^[+-]$/ || # not for NaN, inf
+ $LIB->_is_one($x->{_d})); # 22/1 => 22, 0/1 => 0
+
+ $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
+ $x->{_d} = $LIB->_one(); # d => 1
+ $x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '+'; # +22/7 => 4/1
+ $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_zero($x->{_n}); # -0 => 0
+ $x;
+}
+
+sub bfloor {
+ my ($class, $x) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x if ($x->{sign} !~ /^[+-]$/ || # not for NaN, inf
+ $LIB->_is_one($x->{_d})); # 22/1 => 22, 0/1 => 0
+
+ $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
+ $x->{_d} = $LIB->_one(); # d => 1
+ $x->{_n} = $LIB->_inc($x->{_n}) if $x->{sign} eq '-'; # -22/7 => -4/1
+ $x;
+}
+
+sub bint {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), $_[0]) : objectify(1, @_);
+
+ return $x if ($x->{sign} !~ /^[+-]$/ || # +/-inf or NaN
+ $LIB -> _is_one($x->{_d})); # already an integer
+
+ $x->{_n} = $LIB->_div($x->{_n}, $x->{_d}); # 22/7 => 3/1 w/ truncate
+ $x->{_d} = $LIB->_one(); # d => 1
+ $x->{sign} = '+' if $x->{sign} eq '-' && $LIB -> _is_zero($x->{_n});
+ return $x;
+}
+
+sub bfac {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ # if $x is not an integer
+ if (($x->{sign} ne '+') || (!$LIB->_is_one($x->{_d}))) {
+ return $x->bnan();
}
- $x->{_n} = $MBI->_fac($x->{_n});
- # since _d is 1, we don't need to reduce/norm the result
- $x->round(@r);
- }
+ $x->{_n} = $LIB->_fac($x->{_n});
+ # since _d is 1, we don't need to reduce/norm the result
+ $x->round(@r);
+}
-sub bpow
- {
- # power ($x ** $y)
+sub bpow {
+ # power ($x ** $y)
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- return $x if $x->{sign} =~ /^[+-]inf$/; # -inf/+inf ** x
- return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
- return $x->bone(@r) if $y->is_zero();
- return $x->round(@r) if $x->is_one() || $y->is_one();
+ return $x if $x->{sign} =~ /^[+-]inf$/; # -inf/+inf ** x
+ return $x->bnan() if $x->{sign} eq $nan || $y->{sign} eq $nan;
+ return $x->bone(@r) if $y->is_zero();
+ return $x->round(@r) if $x->is_one() || $y->is_one();
- if ($x->{sign} eq '-' && $MBI->_is_one($x->{_n}) && $MBI->_is_one($x->{_d}))
- {
- # if $x == -1 and odd/even y => +1/-1
- return $y->is_odd() ? $x->round(@r) : $x->babs()->round(@r);
- # my Casio FX-5500L has a bug here: -1 ** 2 is -1, but -1 * -1 is 1;
+ if ($x->{sign} eq '-' && $LIB->_is_one($x->{_n}) && $LIB->_is_one($x->{_d})) {
+ # if $x == -1 and odd/even y => +1/-1
+ return $y->is_odd() ? $x->round(@r) : $x->babs()->round(@r);
+ # my Casio FX-5500L has a bug here: -1 ** 2 is -1, but -1 * -1 is 1;
}
- # 1 ** -y => 1 / (1 ** |y|)
- # so do test for negative $y after above's clause
+ # 1 ** -y => 1 / (1 ** |y|)
+ # so do test for negative $y after above's clause
- return $x->round(@r) if $x->is_zero(); # 0**y => 0 (if not y <= 0)
+ return $x->round(@r) if $x->is_zero(); # 0**y => 0 (if not y <= 0)
- # shortcut if y == 1/N (is then sqrt() respective broot())
- if ($MBI->_is_one($y->{_n}))
- {
- return $x->bsqrt(@r) if $MBI->_is_two($y->{_d}); # 1/2 => sqrt
- return $x->broot($MBI->_str($y->{_d}),@r); # 1/N => root(N)
+ # shortcut if y == 1/N (is then sqrt() respective broot())
+ if ($LIB->_is_one($y->{_n})) {
+ return $x->bsqrt(@r) if $LIB->_is_two($y->{_d}); # 1/2 => sqrt
+ return $x->broot($LIB->_str($y->{_d}), @r); # 1/N => root(N)
}
- # shortcut y/1 (and/or x/1)
- if ($MBI->_is_one($y->{_d}))
- {
- # shortcut for x/1 and y/1
- if ($MBI->_is_one($x->{_d}))
- {
- $x->{_n} = $MBI->_pow($x->{_n},$y->{_n}); # x/1 ** y/1 => (x ** y)/1
- if ($y->{sign} eq '-')
- {
- # 0.2 ** -3 => 1/(0.2 ** 3)
- ($x->{_n},$x->{_d}) = ($x->{_d},$x->{_n}); # swap
+ # shortcut y/1 (and/or x/1)
+ if ($LIB->_is_one($y->{_d})) {
+ # shortcut for x/1 and y/1
+ if ($LIB->_is_one($x->{_d})) {
+ $x->{_n} = $LIB->_pow($x->{_n}, $y->{_n}); # x/1 ** y/1 => (x ** y)/1
+ if ($y->{sign} eq '-') {
+ # 0.2 ** -3 => 1/(0.2 ** 3)
+ ($x->{_n}, $x->{_d}) = ($x->{_d}, $x->{_n}); # swap
+ }
+ # correct sign; + ** + => +
+ if ($x->{sign} eq '-') {
+ # - * - => +, - * - * - => -
+ $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_even($y->{_n});
+ }
+ return $x->round(@r);
}
- # correct sign; + ** + => +
- if ($x->{sign} eq '-')
- {
- # - * - => +, - * - * - => -
- $x->{sign} = '+' if $MBI->_is_even($y->{_n});
+
+ # x/z ** y/1
+ $x->{_n} = $LIB->_pow($x->{_n}, $y->{_n}); # 5/2 ** y/1 => 5 ** y / 2 ** y
+ $x->{_d} = $LIB->_pow($x->{_d}, $y->{_n});
+ if ($y->{sign} eq '-') {
+ # 0.2 ** -3 => 1/(0.2 ** 3)
+ ($x->{_n}, $x->{_d}) = ($x->{_d}, $x->{_n}); # swap
}
- return $x->round(@r);
- }
- # x/z ** y/1
- $x->{_n} = $MBI->_pow($x->{_n},$y->{_n}); # 5/2 ** y/1 => 5 ** y / 2 ** y
- $x->{_d} = $MBI->_pow($x->{_d},$y->{_n});
- if ($y->{sign} eq '-')
- {
- # 0.2 ** -3 => 1/(0.2 ** 3)
- ($x->{_n},$x->{_d}) = ($x->{_d},$x->{_n}); # swap
- }
- # correct sign; + ** + => +
- if ($x->{sign} eq '-')
- {
- # - * - => +, - * - * - => -
- $x->{sign} = '+' if $MBI->_is_even($y->{_n});
- }
- return $x->round(@r);
- }
-
-# print STDERR "# $x $y\n";
-
- # otherwise:
-
- # n/d n ______________
- # a/b = -\/ (a/b) ** d
-
- # (a/b) ** n == (a ** n) / (b ** n)
- $MBI->_pow($x->{_n}, $y->{_n});
- $MBI->_pow($x->{_d}, $y->{_n});
-
- return $x->broot($MBI->_str($y->{_d}),@r); # n/d => root(n)
- }
-
-sub blog
- {
- # Return the logarithm of the operand. If a second operand is defined, that
- # value is used as the base, otherwise the base is assumed to be Euler's
- # constant.
-
- # Don't objectify the base, since an undefined base, as in $x->blog() or
- # $x->blog(undef) signals that the base is Euler's number.
-
- # set up parameters
- my ($self,$x,$base,@r) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$base,@r) = objectify(1,$class,@_);
- }
-
- return $x if $x->modify('blog');
-
- # Handle all exception cases and all trivial cases. I have used Wolfram Alpha
- # (http://www.wolframalpha.com) as the reference for these cases.
-
- return $x -> bnan() if $x -> is_nan();
-
- if (defined $base) {
- $base = $self -> new($base) unless ref $base;
- if ($base -> is_nan() || $base -> is_one()) {
- return $x -> bnan();
- } elsif ($base -> is_inf() || $base -> is_zero()) {
- return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
- return $x -> bzero();
- } elsif ($base -> is_negative()) { # -inf < base < 0
- return $x -> bzero() if $x -> is_one(); # x = 1
- return $x -> bone() if $x == $base; # x = base
- return $x -> bnan(); # otherwise
- }
- return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
- }
-
- # We now know that the base is either undefined or positive and finite.
-
- if ($x -> is_inf()) { # x = +/-inf
- my $sign = defined $base && $base < 1 ? '-' : '+';
- return $x -> binf($sign);
- } elsif ($x -> is_neg()) { # -inf < x < 0
- return $x -> bnan();
- } elsif ($x -> is_one()) { # x = 1
- return $x -> bzero();
- } elsif ($x -> is_zero()) { # x = 0
- my $sign = defined $base && $base < 1 ? '+' : '-';
- return $x -> binf($sign);
- }
-
- # At this point we are done handling all exception cases and trivial cases.
-
- # Do it with Math::BigFloats and convert back to Math::BigRat.
- $base = $base -> _as_float() if defined $base;
- $x -> _new_from_float($x -> _as_float() -> blog($base, @r));
- }
-
-sub bexp
- {
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
-
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,$class,@_);
+ # correct sign; + ** + => +
+
+ $x->{sign} = '+' if $x->{sign} eq '-' && $LIB->_is_even($y->{_n});
+ return $x->round(@r);
}
- return $x->binf(@r) if $x->{sign} eq '+inf';
- return $x->bzero(@r) if $x->{sign} eq '-inf';
+ # print STDERR "# $x $y\n";
- # we need to limit the accuracy to protect against overflow
- my $fallback = 0;
- my ($scale,@params);
- ($x,@params) = $x->_find_round_parameters(@r);
+ # otherwise:
- # also takes care of the "error in _find_round_parameters?" case
- return $x if $x->{sign} eq 'NaN';
+ # n/d n ______________
+ # a/b = -\/ (a/b) ** d
- # no rounding at all, so must use fallback
- if (scalar @params == 0)
- {
- # simulate old behaviour
- $params[0] = $self->div_scale(); # and round to it as accuracy
- $params[1] = undef; # P = undef
- $scale = $params[0]+4; # at least four more for proper round
- $params[2] = $r[2]; # round mode by caller or undef
- $fallback = 1; # to clear a/p afterwards
- }
- else
- {
- # the 4 below is empirical, and there might be cases where it's not enough...
- $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ # (a/b) ** n == (a ** n) / (b ** n)
+ $LIB->_pow($x->{_n}, $y->{_n});
+ $LIB->_pow($x->{_d}, $y->{_n});
+
+ return $x->broot($LIB->_str($y->{_d}), @r); # n/d => root(n)
+}
+
+sub blog {
+ # Return the logarithm of the operand. If a second operand is defined, that
+ # value is used as the base, otherwise the base is assumed to be Euler's
+ # constant.
+
+ # Don't objectify the base, since an undefined base, as in $x->blog() or
+ # $x->blog(undef) signals that the base is Euler's number.
+
+ # set up parameters
+ my ($class, $x, $base, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $base, @r) = objectify(1, @_);
}
- return $x->bone(@params) if $x->is_zero();
+ return $x if $x->modify('blog');
- # See the comments in Math::BigFloat on how this algorithm works.
- # Basically we calculate A and B (where B is faculty(N)) so that A/B = e
+ # Handle all exception cases and all trivial cases. I have used Wolfram Alpha
+ # (http://www.wolframalpha.com) as the reference for these cases.
- my $x_org = $x->copy();
- if ($scale <= 75)
- {
- # set $x directly from a cached string form
- $x->{_n} =
- $MBI->_new("90933395208605785401971970164779391644753259799242");
- $x->{_d} =
- $MBI->_new("33452526613163807108170062053440751665152000000000");
- $x->{sign} = '+';
- }
- else
- {
- # compute A and B so that e = A / B.
-
- # After some terms we end up with this, so we use it as a starting point:
- my $A = $MBI->_new("90933395208605785401971970164779391644753259799242");
- my $F = $MBI->_new(42); my $step = 42;
-
- # Compute how many steps we need to take to get $A and $B sufficiently big
- my $steps = Math::BigFloat::_len_to_steps($scale - 4);
-# print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
- while ($step++ <= $steps)
- {
- # calculate $a * $f + 1
- $A = $MBI->_mul($A, $F);
- $A = $MBI->_inc($A);
- # increment f
- $F = $MBI->_inc($F);
- }
- # compute $B as factorial of $steps (this is faster than doing it manually)
- my $B = $MBI->_fac($MBI->_new($steps));
-
-# print "A ", $MBI->_str($A), "\nB ", $MBI->_str($B), "\n";
-
- $x->{_n} = $A;
- $x->{_d} = $B;
- $x->{sign} = '+';
- }
-
- # $x contains now an estimate of e, with some surplus digits, so we can round
- if (!$x_org->is_one())
- {
- # raise $x to the wanted power and round it in one step:
- $x->bpow($x_org, @params);
+ return $x -> bnan() if $x -> is_nan();
+
+ if (defined $base) {
+ $base = $class -> new($base) unless ref $base;
+ if ($base -> is_nan() || $base -> is_one()) {
+ return $x -> bnan();
+ } elsif ($base -> is_inf() || $base -> is_zero()) {
+ return $x -> bnan() if $x -> is_inf() || $x -> is_zero();
+ return $x -> bzero();
+ } elsif ($base -> is_negative()) { # -inf < base < 0
+ return $x -> bzero() if $x -> is_one(); # x = 1
+ return $x -> bone() if $x == $base; # x = base
+ return $x -> bnan(); # otherwise
+ }
+ return $x -> bone() if $x == $base; # 0 < base && 0 < x < inf
}
- else
- {
- # else just round the already computed result
- delete $x->{_a}; delete $x->{_p};
- # shortcut to not run through _find_round_parameters again
- if (defined $params[0])
- {
- $x->bround($params[0],$params[2]); # then round accordingly
- }
- else
- {
- $x->bfround($params[1],$params[2]); # then round accordingly
- }
- }
- if ($fallback)
- {
- # clear a/p after round, since user did not request it
- delete $x->{_a}; delete $x->{_p};
+
+ # We now know that the base is either undefined or positive and finite.
+
+ if ($x -> is_inf()) { # x = +/-inf
+ my $sign = defined $base && $base < 1 ? '-' : '+';
+ return $x -> binf($sign);
+ } elsif ($x -> is_neg()) { # -inf < x < 0
+ return $x -> bnan();
+ } elsif ($x -> is_one()) { # x = 1
+ return $x -> bzero();
+ } elsif ($x -> is_zero()) { # x = 0
+ my $sign = defined $base && $base < 1 ? '+' : '-';
+ return $x -> binf($sign);
}
- $x;
- }
+ # At this point we are done handling all exception cases and trivial cases.
-sub bnok
- {
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
+ $base = Math::BigFloat -> new($base) if defined $base;
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,$class,@_);
+ my $xn = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+
+ my $xtmp = Math::BigRat -> new($xn -> bdiv($xd) -> blog($base, @r) -> bsstr());
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x;
+}
+
+sub bexp {
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # do it with floats
- $x->_new_from_float($x->_as_float()->bnok(Math::BigFloat->new("$y"),@r));
- }
+ return $x->binf(@r) if $x->{sign} eq '+inf';
+ return $x->bzero(@r) if $x->{sign} eq '-inf';
-sub _float_from_part
- {
- my $x = shift;
+ # we need to limit the accuracy to protect against overflow
+ my $fallback = 0;
+ my ($scale, @params);
+ ($x, @params) = $x->_find_round_parameters(@r);
- my $f = Math::BigFloat->bzero();
- $f->{_m} = $MBI->_copy($x);
- $f->{_e} = $MBI->_zero();
+ # also takes care of the "error in _find_round_parameters?" case
+ return $x if $x->{sign} eq 'NaN';
- $f;
- }
+ # no rounding at all, so must use fallback
+ if (scalar @params == 0) {
+ # simulate old behaviour
+ $params[0] = $class->div_scale(); # and round to it as accuracy
+ $params[1] = undef; # P = undef
+ $scale = $params[0]+4; # at least four more for proper round
+ $params[2] = $r[2]; # round mode by caller or undef
+ $fallback = 1; # to clear a/p afterwards
+ } else {
+ # the 4 below is empirical, and there might be cases where it's not enough...
+ $scale = abs($params[0] || $params[1]) + 4; # take whatever is defined
+ }
-sub _as_float
- {
- my $x = shift;
+ return $x->bone(@params) if $x->is_zero();
- local $Math::BigFloat::upgrade = undef;
- local $Math::BigFloat::accuracy = undef;
- local $Math::BigFloat::precision = undef;
- # 22/7 => 3.142857143..
+ # See the comments in Math::BigFloat on how this algorithm works.
+ # Basically we calculate A and B (where B is faculty(N)) so that A/B = e
- my $a = $x->accuracy() || 0;
- if ($a != 0 || !$MBI->_is_one($x->{_d}))
- {
- # n/d
- return scalar Math::BigFloat->new($x->{sign} . $MBI->_str($x->{_n}))->bdiv($MBI->_str($x->{_d}), $x->accuracy());
- }
- # just n
- Math::BigFloat->new($x->{sign} . $MBI->_str($x->{_n}));
- }
-
-sub broot
- {
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+ my $x_org = $x->copy();
+ if ($scale <= 75) {
+ # set $x directly from a cached string form
+ $x->{_n} =
+ $LIB->_new("90933395208605785401971970164779391644753259799242");
+ $x->{_d} =
+ $LIB->_new("33452526613163807108170062053440751665152000000000");
+ $x->{sign} = '+';
+ } else {
+ # compute A and B so that e = A / B.
+
+ # After some terms we end up with this, so we use it as a starting point:
+ my $A = $LIB->_new("90933395208605785401971970164779391644753259799242");
+ my $F = $LIB->_new(42); my $step = 42;
+
+ # Compute how many steps we need to take to get $A and $B sufficiently big
+ my $steps = Math::BigFloat::_len_to_steps($scale - 4);
+ # print STDERR "# Doing $steps steps for ", $scale-4, " digits\n";
+ while ($step++ <= $steps) {
+ # calculate $a * $f + 1
+ $A = $LIB->_mul($A, $F);
+ $A = $LIB->_inc($A);
+ # increment f
+ $F = $LIB->_inc($F);
+ }
+ # compute $B as factorial of $steps (this is faster than doing it manually)
+ my $B = $LIB->_fac($LIB->_new($steps));
+
+ # print "A ", $LIB->_str($A), "\nB ", $LIB->_str($B), "\n";
+
+ $x->{_n} = $A;
+ $x->{_d} = $B;
+ $x->{sign} = '+';
}
- if ($x->is_int() && $y->is_int())
- {
- return $self->new($x->as_number()->broot($y->as_number(),@r));
+ # $x contains now an estimate of e, with some surplus digits, so we can round
+ if (!$x_org->is_one()) {
+ # raise $x to the wanted power and round it in one step:
+ $x->bpow($x_org, @params);
+ } else {
+ # else just round the already computed result
+ delete $x->{_a}; delete $x->{_p};
+ # shortcut to not run through _find_round_parameters again
+ if (defined $params[0]) {
+ $x->bround($params[0], $params[2]); # then round accordingly
+ } else {
+ $x->bfround($params[1], $params[2]); # then round accordingly
+ }
+ }
+ if ($fallback) {
+ # clear a/p after round, since user did not request it
+ delete $x->{_a}; delete $x->{_p};
}
- # do it with floats
- $x->_new_from_float($x->_as_float()->broot($y->_as_float(),@r))->bnorm()->bround(@r);
- }
+ $x;
+}
-sub bmodpow
- {
- # set up parameters
- my ($self,$x,$y,$m,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,$m,@r) = objectify(3,@_);
+sub bnok {
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # $x or $y or $m are NaN or +-inf => NaN
- return $x->bnan()
- if $x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/ ||
- $m->{sign} !~ /^[+-]$/;
+ my $xint = Math::BigInt -> new($x -> bint() -> bsstr());
+ my $yint = Math::BigInt -> new($y -> bint() -> bsstr());
+ $xint -> bnok($yint);
- if ($x->is_int() && $y->is_int() && $m->is_int())
- {
- return $self->new($x->as_number()->bmodpow($y->as_number(),$m,@r));
- }
+ $x -> {sign} = $xint -> {sign};
+ $x -> {_n} = $xint -> {_n};
+ $x -> {_d} = $xint -> {_d};
- warn ("bmodpow() not fully implemented");
- $x->bnan();
- }
+ return $x;
+}
-sub bmodinv
- {
- # set up parameters
- my ($self,$x,$y,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y,@r) = objectify(2,@_);
+sub broot {
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # $x or $y are NaN or +-inf => NaN
- return $x->bnan()
- if $x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/;
+ # Convert $x into a Math::BigFloat.
- if ($x->is_int() && $y->is_int())
- {
- return $self->new($x->as_number()->bmodinv($y->as_number(),@r));
- }
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+ my $xflt = Math::BigFloat -> new($LIB -> _str($x->{_n})) -> bdiv($xd);
+ $xflt -> {sign} = $x -> {sign};
- warn ("bmodinv() not fully implemented");
- $x->bnan();
- }
+ # Convert $y into a Math::BigFloat.
-sub bsqrt
- {
- my ($self,$x,@r) = ref($_[0]) ? (ref($_[0]),@_) : objectify(1,@_);
+ my $yd = Math::BigFloat -> new($LIB -> _str($y->{_d}));
+ my $yflt = Math::BigFloat -> new($LIB -> _str($y->{_n})) -> bdiv($yd);
+ $yflt -> {sign} = $y -> {sign};
- return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0
- return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
- return $x->round(@r) if $x->is_zero() || $x->is_one();
+ # Compute the root and convert back to a Math::BigRat.
- local $Math::BigFloat::upgrade = undef;
- local $Math::BigFloat::downgrade = undef;
- local $Math::BigFloat::precision = undef;
- local $Math::BigFloat::accuracy = undef;
- local $Math::BigInt::upgrade = undef;
- local $Math::BigInt::precision = undef;
- local $Math::BigInt::accuracy = undef;
+ $xflt -> broot($yflt, @r);
+ my $xtmp = Math::BigRat -> new($xflt -> bsstr());
- $x->{_n} = _float_from_part($x->{_n})->bsqrt();
- $x->{_d} = _float_from_part($x->{_d})->bsqrt();
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
- # XXX TODO: we probably can optimize this:
+ return $x;
+}
- # if sqrt(D) was not integer
- if ($x->{_d}->{_es} ne '+')
- {
- $x->{_n}->blsft($x->{_d}->exponent()->babs(),10); # 7.1/4.51 => 7.1/45.1
- $x->{_d} = $MBI->_copy($x->{_d}->{_m}); # 7.1/45.1 => 71/45.1
+sub bmodpow {
+ # set up parameters
+ my ($class, $x, $y, $m, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, $m, @r) = objectify(3, @_);
}
- # if sqrt(N) was not integer
- if ($x->{_n}->{_es} ne '+')
- {
- $x->{_d}->blsft($x->{_n}->exponent()->babs(),10); # 71/45.1 => 710/45.1
- $x->{_n} = $MBI->_copy($x->{_n}->{_m}); # 710/45.1 => 710/451
+
+ # Convert $x, $y, and $m into Math::BigInt objects.
+
+ my $xint = Math::BigInt -> new($x -> copy() -> bint());
+ my $yint = Math::BigInt -> new($y -> copy() -> bint());
+ my $mint = Math::BigInt -> new($m -> copy() -> bint());
+
+ $xint -> bmodpow($y, $m, @r);
+ my $xtmp = Math::BigRat -> new($xint -> bsstr());
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+ return $x;
+}
+
+sub bmodinv {
+ # set up parameters
+ my ($class, $x, $y, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y, @r) = objectify(2, @_);
}
- # convert parts to $MBI again
- $x->{_n} = $MBI->_lsft($MBI->_copy($x->{_n}->{_m}), $x->{_n}->{_e}, 10)
- if ref($x->{_n}) ne $MBI && ref($x->{_n}) ne 'ARRAY';
- $x->{_d} = $MBI->_lsft($MBI->_copy($x->{_d}->{_m}), $x->{_d}->{_e}, 10)
- if ref($x->{_d}) ne $MBI && ref($x->{_d}) ne 'ARRAY';
+ # Convert $x and $y into Math::BigInt objects.
+
+ my $xint = Math::BigInt -> new($x -> copy() -> bint());
+ my $yint = Math::BigInt -> new($y -> copy() -> bint());
+
+ $xint -> bmodinv($y, @r);
+ my $xtmp = Math::BigRat -> new($xint -> bsstr());
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+ return $x;
+}
+
+sub bsqrt {
+ my ($class, $x, @r) = ref($_[0]) ? (ref($_[0]), @_) : objectify(1, @_);
+
+ return $x->bnan() if $x->{sign} !~ /^[+]/; # NaN, -inf or < 0
+ return $x if $x->{sign} eq '+inf'; # sqrt(inf) == inf
+ return $x->round(@r) if $x->is_zero() || $x->is_one();
+
+ local $Math::BigFloat::upgrade = undef;
+ local $Math::BigFloat::downgrade = undef;
+ local $Math::BigFloat::precision = undef;
+ local $Math::BigFloat::accuracy = undef;
+ local $Math::BigInt::upgrade = undef;
+ local $Math::BigInt::precision = undef;
+ local $Math::BigInt::accuracy = undef;
+
+ my $xn = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
- $x->bnorm()->round(@r);
- }
+ my $xtmp = Math::BigRat -> new($xn -> bdiv($xd) -> bsqrt() -> bsstr());
-sub blsft
- {
- my ($self,$x,$y,$b,@r) = objectify(3,@_);
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
- $b = 2 unless defined $b;
- $b = $self->new($b) unless ref ($b);
- $x->bmul($b->copy()->bpow($y), @r);
- $x;
- }
+ $x->round(@r);
+}
+
+sub blsft {
+ my ($class, $x, $y, $b, @r) = objectify(2, @_);
+
+ $b = 2 if !defined $b;
+ $b = $class -> new($b) unless ref($b) && $b -> isa($class);
+
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
+
+ # shift by a negative amount?
+ return $x -> brsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
+
+ $x -> bmul($b -> bpow($y));
+}
+
+sub brsft {
+ my ($class, $x, $y, $b, @r) = objectify(2, @_);
+
+ $b = 2 if !defined $b;
+ $b = $class -> new($b) unless ref($b) && $b -> isa($class);
+
+ return $x -> bnan() if $x -> is_nan() || $y -> is_nan() || $b -> is_nan();
-sub brsft
- {
- my ($self,$x,$y,$b,@r) = objectify(3,@_);
+ # shift by a negative amount?
+ return $x -> blsft($y -> copy() -> babs(), $b) if $y -> {sign} =~ /^-/;
- $b = 2 unless defined $b;
- $b = $self->new($b) unless ref ($b);
- $x->bdiv($b->copy()->bpow($y), @r);
- $x;
- }
+ # the following call to bdiv() will return either quotient (scalar context)
+ # or quotient and remainder (list context).
+ $x -> bdiv($b -> bpow($y));
+}
+
+sub band {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'band() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for band()' if @_ < 1;
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> band($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigRat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x -> round(@r);
+}
+
+sub bior {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bior() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for bior()' if @_ < 1;
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bior($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigRat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x -> round(@r);
+}
+
+sub bxor {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bxor() is an instance method, not a class method' unless $xref;
+ Carp::croak 'Not enough arguments for bxor()' if @_ < 1;
+
+ my $y = shift;
+ $y = $class -> new($y) unless ref($y);
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bxor($y);
+ $xtmp = $class -> new($xtmp); # back to Math::BigRat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x -> round(@r);
+}
+
+sub bnot {
+ my $x = shift;
+ my $xref = ref($x);
+ my $class = $xref || $x;
+
+ Carp::croak 'bnot() is an instance method, not a class method' unless $xref;
+
+ my @r = @_;
+
+ my $xtmp = Math::BigInt -> new($x -> bint()); # to Math::BigInt
+ $xtmp -> bnot();
+ $xtmp = $class -> new($xtmp); # back to Math::BigRat
+
+ $x -> {sign} = $xtmp -> {sign};
+ $x -> {_n} = $xtmp -> {_n};
+ $x -> {_d} = $xtmp -> {_d};
+
+ return $x -> round(@r);
+}
##############################################################################
# round
-sub round
- {
- $_[0];
- }
+sub round {
+ $_[0];
+}
-sub bround
- {
- $_[0];
- }
+sub bround {
+ $_[0];
+}
-sub bfround
- {
- $_[0];
- }
+sub bfround {
+ $_[0];
+}
##############################################################################
# comparing
-sub bcmp
- {
- # compare two signed numbers
+sub bcmp {
+ # compare two signed numbers
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,@_);
+ # set up parameters
+ my ($class, $x, $y) = (ref($_[0]), @_);
+
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y) = objectify(2, @_);
}
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
- return +1 if $x->{sign} eq '+inf';
- return -1 if $x->{sign} eq '-inf';
- return -1 if $y->{sign} eq '+inf';
- return +1;
- }
- # check sign for speed first
- return 1 if $x->{sign} eq '+' && $y->{sign} eq '-'; # does also 0 <=> -y
- return -1 if $x->{sign} eq '-' && $y->{sign} eq '+'; # does also -x <=> 0
-
- # shortcut
- my $xz = $MBI->_is_zero($x->{_n});
- my $yz = $MBI->_is_zero($y->{_n});
- return 0 if $xz && $yz; # 0 <=> 0
- return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y
- return 1 if $yz && $x->{sign} eq '+'; # +x <=> 0
-
- my $t = $MBI->_mul($MBI->_copy($x->{_n}), $y->{_d});
- my $u = $MBI->_mul($MBI->_copy($y->{_n}), $x->{_d});
-
- my $cmp = $MBI->_acmp($t,$u); # signs are equal
- $cmp = -$cmp if $x->{sign} eq '-'; # both are '-' => reverse
- $cmp;
- }
-
-sub bacmp
- {
- # compare two numbers (as unsigned)
-
- # set up parameters
- my ($self,$x,$y) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1])))
- {
- ($self,$x,$y) = objectify(2,$class,@_);
+ if ($x->{sign} !~ /^[+-]$/ || $y->{sign} !~ /^[+-]$/) {
+ # $x is NaN and/or $y is NaN
+ return undef if $x->{sign} eq $nan || $y->{sign} eq $nan;
+ # $x and $y are both either +inf or -inf
+ return 0 if $x->{sign} eq $y->{sign} && $x->{sign} =~ /^[+-]inf$/;
+ # $x = +inf and $y < +inf
+ return +1 if $x->{sign} eq '+inf';
+ # $x = -inf and $y > -inf
+ return -1 if $x->{sign} eq '-inf';
+ # $x < +inf and $y = +inf
+ return -1 if $y->{sign} eq '+inf';
+ # $x > -inf and $y = -inf
+ return +1;
}
- if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/))
- {
- # handle +-inf and NaN
- return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
- return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
- return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
- return -1;
+ # $x >= 0 and $y < 0
+ return 1 if $x->{sign} eq '+' && $y->{sign} eq '-';
+ # $x < 0 and $y >= 0
+ return -1 if $x->{sign} eq '-' && $y->{sign} eq '+';
+
+ # At this point, we know that $x and $y have the same sign.
+
+ # shortcut
+ my $xz = $LIB->_is_zero($x->{_n});
+ my $yz = $LIB->_is_zero($y->{_n});
+ return 0 if $xz && $yz; # 0 <=> 0
+ return -1 if $xz && $y->{sign} eq '+'; # 0 <=> +y
+ return 1 if $yz && $x->{sign} eq '+'; # +x <=> 0
+
+ my $t = $LIB->_mul($LIB->_copy($x->{_n}), $y->{_d});
+ my $u = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d});
+
+ my $cmp = $LIB->_acmp($t, $u); # signs are equal
+ $cmp = -$cmp if $x->{sign} eq '-'; # both are '-' => reverse
+ $cmp;
+}
+
+sub bacmp {
+ # compare two numbers (as unsigned)
+
+ # set up parameters
+ my ($class, $x, $y) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) {
+ ($class, $x, $y) = objectify(2, @_);
+ }
+
+ if (($x->{sign} !~ /^[+-]$/) || ($y->{sign} !~ /^[+-]$/)) {
+ # handle +-inf and NaN
+ return undef if (($x->{sign} eq $nan) || ($y->{sign} eq $nan));
+ return 0 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} =~ /^[+-]inf$/;
+ return 1 if $x->{sign} =~ /^[+-]inf$/ && $y->{sign} !~ /^[+-]inf$/;
+ return -1;
}
- my $t = $MBI->_mul($MBI->_copy($x->{_n}), $y->{_d});
- my $u = $MBI->_mul($MBI->_copy($y->{_n}), $x->{_d});
- $MBI->_acmp($t,$u); # ignore signs
- }
+ my $t = $LIB->_mul($LIB->_copy($x->{_n}), $y->{_d});
+ my $u = $LIB->_mul($LIB->_copy($y->{_n}), $x->{_d});
+ $LIB->_acmp($t, $u); # ignore signs
+}
+
+sub beq {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'beq() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for beq()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && ! $cmp;
+}
+
+sub bne {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'bne() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for bne()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && ! $cmp ? '' : 1;
+}
+
+sub blt {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'blt() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for blt()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp < 0;
+}
+
+sub ble {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'ble() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for ble()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp <= 0;
+}
+
+sub bgt {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'bgt() is an instance method, not a class method' unless $selfref;
+ Carp::croak 'Wrong number of arguments for bgt()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp > 0;
+}
+
+sub bge {
+ my $self = shift;
+ my $selfref = ref $self;
+ my $class = $selfref || $self;
+
+ Carp::croak 'bge() is an instance method, not a class method'
+ unless $selfref;
+ Carp::croak 'Wrong number of arguments for bge()' unless @_ == 1;
+
+ my $cmp = $self -> bcmp(shift);
+ return defined($cmp) && $cmp >= 0;
+}
##############################################################################
-# output conversation
+# output conversion
-sub numify
- {
- # convert 17/8 => float (aka 2.125)
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+sub numify {
+ # convert 17/8 => float (aka 2.125)
+ my ($self, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- return $x->bstr() if $x->{sign} !~ /^[+-]$/; # inf, NaN, etc
+ # Non-finite number.
- # N/1 => N
- my $neg = ''; $neg = '-' if $x->{sign} eq '-';
- return $neg . $MBI->_num($x->{_n}) if $MBI->_is_one($x->{_d});
+ return $x->bstr() if $x->{sign} !~ /^[+-]$/;
- $x->_as_float()->numify() + 0.0;
- }
+ # Finite number.
-sub as_number
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my $abs = $LIB->_is_one($x->{_d})
+ ? $LIB->_num($x->{_n})
+ : Math::BigFloat -> new($LIB->_str($x->{_n}))
+ -> bdiv($LIB->_str($x->{_d}))
+ -> bstr();
+ return $x->{sign} eq '-' ? 0 - $abs : 0 + $abs;
+}
- # NaN, inf etc
- return Math::BigInt->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
+sub as_number {
+ my ($self, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
- my $u = Math::BigInt->bzero();
- $u->{value} = $MBI->_div($MBI->_copy($x->{_n}), $x->{_d}); # 22/7 => 3
- $u->bneg if $x->{sign} eq '-'; # no negative zero
- $u;
- }
+ # NaN, inf etc
+ return Math::BigInt->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
-sub as_float
- {
- # return N/D as Math::BigFloat
+ my $u = Math::BigInt->bzero();
+ $u->{value} = $LIB->_div($LIB->_copy($x->{_n}), $x->{_d}); # 22/7 => 3
+ $u->bneg if $x->{sign} eq '-'; # no negative zero
+ $u;
+}
- # set up parameters
- my ($self,$x,@r) = (ref($_[0]),@_);
- # objectify is costly, so avoid it
- ($self,$x,@r) = objectify(1,$class,@_) unless ref $_[0];
+sub as_float {
+ # return N/D as Math::BigFloat
- # NaN, inf etc
- return Math::BigFloat->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
+ # set up parameters
+ my ($class, $x, @r) = (ref($_[0]), @_);
+ # objectify is costly, so avoid it
+ ($class, $x, @r) = objectify(1, @_) unless ref $_[0];
- my $u = Math::BigFloat->bzero();
- $u->{sign} = $x->{sign};
- # n
- $u->{_m} = $MBI->_copy($x->{_n});
- $u->{_e} = $MBI->_zero();
- $u->bdiv($MBI->_str($x->{_d}), @r);
- # return $u
- $u;
- }
+ # NaN, inf etc
+ return Math::BigFloat->new($x->{sign}) if $x->{sign} !~ /^[+-]$/;
-sub as_bin
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ my $xd = Math::BigFloat -> new($LIB -> _str($x->{_d}));
+ my $xflt = Math::BigFloat -> new($LIB -> _str($x->{_n}));
+ $xflt -> {sign} = $x -> {sign};
+ $xflt -> bdiv($xd, @r);
- return $x unless $x->is_int();
+ return $xflt;
+}
- my $s = $x->{sign}; $s = '' if $s eq '+';
- $s . $MBI->_as_bin($x->{_n});
- }
+sub as_bin {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub as_hex
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x unless $x->is_int();
- return $x unless $x->is_int();
+ my $s = $x->{sign};
+ $s = '' if $s eq '+';
+ $s . $LIB->_as_bin($x->{_n});
+}
- my $s = $x->{sign}; $s = '' if $s eq '+';
- $s . $MBI->_as_hex($x->{_n});
- }
+sub as_hex {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
-sub as_oct
- {
- my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_);
+ return $x unless $x->is_int();
- return $x unless $x->is_int();
+ my $s = $x->{sign}; $s = '' if $s eq '+';
+ $s . $LIB->_as_hex($x->{_n});
+}
- my $s = $x->{sign}; $s = '' if $s eq '+';
- $s . $MBI->_as_oct($x->{_n});
- }
+sub as_oct {
+ my ($class, $x) = ref($_[0]) ? (undef, $_[0]) : objectify(1, @_);
+
+ return $x unless $x->is_int();
+
+ my $s = $x->{sign}; $s = '' if $s eq '+';
+ $s . $LIB->_as_oct($x->{_n});
+}
##############################################################################
-sub from_hex
- {
- my $class = shift;
+sub from_hex {
+ my $class = shift;
- $class->new(@_);
- }
+ $class->new(@_);
+}
-sub from_bin
- {
- my $class = shift;
+sub from_bin {
+ my $class = shift;
- $class->new(@_);
- }
+ $class->new(@_);
+}
-sub from_oct
- {
- my $class = shift;
+sub from_oct {
+ my $class = shift;
- my @parts;
- for my $c (@_)
- {
- push @parts, Math::BigInt->from_oct($c);
+ my @parts;
+ for my $c (@_) {
+ push @parts, Math::BigInt->from_oct($c);
}
- $class->new (@parts);
- }
+ $class->new (@parts);
+}
##############################################################################
# import
-sub import
- {
- my $self = shift;
- my $l = scalar @_;
- my $lib = ''; my @a;
- my $try = 'try';
+sub import {
+ my $class = shift;
+ my $l = scalar @_;
+ my $lib = ''; my @a;
+ my $try = 'try';
- for (my $i = 0; $i < $l ; $i++)
- {
- if ($_[$i] eq ':constant')
- {
- # this rest causes overlord er load to step in
- overload::constant float => sub { $self->new(shift); };
- }
-# elsif ($_[$i] eq 'upgrade')
-# {
-# # this causes upgrading
-# $upgrade = $_[$i+1]; # or undef to disable
-# $i++;
-# }
- elsif ($_[$i] eq 'downgrade')
- {
- # this causes downgrading
- $downgrade = $_[$i+1]; # or undef to disable
- $i++;
- }
- elsif ($_[$i] =~ /^(lib|try|only)\z/)
- {
- $lib = $_[$i+1] || ''; # default Calc
- $try = $1; # lib, try or only
- $i++;
- }
- elsif ($_[$i] eq 'with')
- {
- # this argument is no longer used
- #$MBI = $_[$i+1] || 'Math::BigInt::Calc'; # default Math::BigInt::Calc
- $i++;
- }
- else
- {
- push @a, $_[$i];
- }
- }
- require Math::BigInt;
-
- # let use Math::BigInt lib => 'GMP'; use Math::BigRat; still have GMP
- if ($lib ne '')
- {
- my @c = split /\s*,\s*/, $lib;
- foreach (@c)
- {
- $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
- }
- $lib = join(",", @c);
+ for (my $i = 0; $i < $l ; $i++) {
+ if ($_[$i] eq ':constant') {
+ # this rest causes overlord er load to step in
+ overload::constant float => sub { $class->new(shift); };
+ }
+ # elsif ($_[$i] eq 'upgrade')
+ # {
+ # # this causes upgrading
+ # $upgrade = $_[$i+1]; # or undef to disable
+ # $i++;
+ # }
+ elsif ($_[$i] eq 'downgrade') {
+ # this causes downgrading
+ $downgrade = $_[$i+1]; # or undef to disable
+ $i++;
+ } elsif ($_[$i] =~ /^(lib|try|only)\z/) {
+ $lib = $_[$i+1] || ''; # default Calc
+ $try = $1; # lib, try or only
+ $i++;
+ } elsif ($_[$i] eq 'with') {
+ # this argument is no longer used
+ #$LIB = $_[$i+1] || 'Math::BigInt::Calc'; # default Math::BigInt::Calc
+ $i++;
+ } else {
+ push @a, $_[$i];
+ }
}
- my @import = ('objectify');
- push @import, $try => $lib if $lib ne '';
+ require Math::BigInt;
- # MBI already loaded, so feed it our lib arguments
- Math::BigInt->import(@import);
+ # let use Math::BigInt lib => 'GMP'; use Math::BigRat; still have GMP
+ if ($lib ne '') {
+ my @c = split /\s*,\s*/, $lib;
+ foreach (@c) {
+ $_ =~ tr/a-zA-Z0-9://cd; # limit to sane characters
+ }
+ $lib = join(",", @c);
+ }
+ my @import = ('objectify');
+ push @import, $try => $lib if $lib ne '';
- $MBI = Math::BigFloat->config()->{lib};
+ # LIB already loaded, so feed it our lib arguments
+ Math::BigInt->import(@import);
- # register us with MBI to get notified of future lib changes
- Math::BigInt::_register_callback($self, sub { $MBI = $_[0]; });
+ $LIB = Math::BigFloat->config()->{lib};
- # any non :constant stuff is handled by our parent, Exporter (loaded
- # by Math::BigFloat, even if @_ is empty, to give it a chance
- $self->SUPER::import(@a); # for subclasses
- $self->export_to_level(1,$self,@a); # need this, too
- }
+ # register us with LIB to get notified of future lib changes
+ Math::BigInt::_register_callback($class, sub { $LIB = $_[0]; });
+
+ # any non :constant stuff is handled by our parent, Exporter (loaded
+ # by Math::BigFloat, even if @_ is empty, to give it a chance
+ $class->SUPER::import(@a); # for subclasses
+ $class->export_to_level(1, $class, @a); # need this, too
+}
1;
@@ -1740,17 +2093,17 @@ Math::BigRat - Arbitrary big rational numbers
=head1 SYNOPSIS
- use Math::BigRat;
+ use Math::BigRat;
- my $x = Math::BigRat->new('3/7'); $x += '5/9';
+ my $x = Math::BigRat->new('3/7'); $x += '5/9';
- print $x->bstr(),"\n";
- print $x ** 2,"\n";
+ print $x->bstr(), "\n";
+ print $x ** 2, "\n";
- my $y = Math::BigRat->new('inf');
- print "$y ", ($y->is_inf ? 'is' : 'is not') , " infinity\n";
+ my $y = Math::BigRat->new('inf');
+ print "$y ", ($y->is_inf ? 'is' : 'is not'), " infinity\n";
- my $z = Math::BigRat->new(144); $z->bsqrt();
+ my $z = Math::BigRat->new(144); $z->bsqrt();
=head1 DESCRIPTION
@@ -1762,24 +2115,22 @@ for arbitrary big rational numbers.
You can change the underlying module that does the low-level
math operations by using:
- use Math::BigRat try => 'GMP';
+ use Math::BigRat try => 'GMP';
Note: This needs Math::BigInt::GMP installed.
The following would first try to find Math::BigInt::Foo, then
Math::BigInt::Bar, and when this also fails, revert to Math::BigInt::Calc:
- use Math::BigRat try => 'Foo,Math::BigInt::Bar';
+ use Math::BigRat try => 'Foo,Math::BigInt::Bar';
-If you want to get warned when the fallback occurs, replace "try" with
-"lib":
+If you want to get warned when the fallback occurs, replace "try" with "lib":
- use Math::BigRat lib => 'Foo,Math::BigInt::Bar';
+ use Math::BigRat lib => 'Foo,Math::BigInt::Bar';
-If you want the code to die instead, replace "try" with
-"only":
+If you want the code to die instead, replace "try" with "only":
- use Math::BigRat only => 'Foo,Math::BigInt::Bar';
+ use Math::BigRat only => 'Foo,Math::BigInt::Bar';
=head1 METHODS
@@ -1787,316 +2138,481 @@ Any methods not listed here are derived from Math::BigFloat (or
Math::BigInt), so make sure you check these two modules for further
information.
-=head2 new()
+=over
- $x = Math::BigRat->new('1/3');
+=item new()
+
+ $x = Math::BigRat->new('1/3');
Create a new Math::BigRat object. Input can come in various forms:
- $x = Math::BigRat->new(123); # scalars
- $x = Math::BigRat->new('inf'); # infinity
- $x = Math::BigRat->new('123.3'); # float
- $x = Math::BigRat->new('1/3'); # simple string
- $x = Math::BigRat->new('1 / 3'); # spaced
- $x = Math::BigRat->new('1 / 0.1'); # w/ floats
- $x = Math::BigRat->new(Math::BigInt->new(3)); # BigInt
- $x = Math::BigRat->new(Math::BigFloat->new('3.1')); # BigFloat
- $x = Math::BigRat->new(Math::BigInt::Lite->new('2')); # BigLite
+ $x = Math::BigRat->new(123); # scalars
+ $x = Math::BigRat->new('inf'); # infinity
+ $x = Math::BigRat->new('123.3'); # float
+ $x = Math::BigRat->new('1/3'); # simple string
+ $x = Math::BigRat->new('1 / 3'); # spaced
+ $x = Math::BigRat->new('1 / 0.1'); # w/ floats
+ $x = Math::BigRat->new(Math::BigInt->new(3)); # BigInt
+ $x = Math::BigRat->new(Math::BigFloat->new('3.1')); # BigFloat
+ $x = Math::BigRat->new(Math::BigInt::Lite->new('2')); # BigLite
- # You can also give D and N as different objects:
- $x = Math::BigRat->new(
- Math::BigInt->new(-123),
- Math::BigInt->new(7),
- ); # => -123/7
+ # You can also give D and N as different objects:
+ $x = Math::BigRat->new(
+ Math::BigInt->new(-123),
+ Math::BigInt->new(7),
+ ); # => -123/7
-=head2 numerator()
+=item numerator()
- $n = $x->numerator();
+ $n = $x->numerator();
Returns a copy of the numerator (the part above the line) as signed BigInt.
-=head2 denominator()
+=item denominator()
- $d = $x->denominator();
+ $d = $x->denominator();
Returns a copy of the denominator (the part under the line) as positive BigInt.
-=head2 parts()
+=item parts()
- ($n,$d) = $x->parts();
+ ($n, $d) = $x->parts();
Return a list consisting of (signed) numerator and (unsigned) denominator as
BigInts.
-=head2 numify()
+=item numify()
- my $y = $x->numify();
+ my $y = $x->numify();
Returns the object as a scalar. This will lose some data if the object
cannot be represented by a normal Perl scalar (integer or float), so
-use L<as_int()|/as_int()E<sol>as_number()> or L</as_float()> instead.
+use L<as_int()|/"as_int()/as_number()"> or L</as_float()> instead.
This routine is automatically used whenever a scalar is required:
- my $x = Math::BigRat->new('3/1');
- @array = (0,1,2,3);
- $y = $array[$x]; # set $y to 3
+ my $x = Math::BigRat->new('3/1');
+ @array = (0, 1, 2, 3);
+ $y = $array[$x]; # set $y to 3
-=head2 as_int()/as_number()
+=item as_int()/as_number()
- $x = Math::BigRat->new('13/7');
- print $x->as_int(),"\n"; # '1'
+ $x = Math::BigRat->new('13/7');
+ print $x->as_int(), "\n"; # '1'
Returns a copy of the object as BigInt, truncated to an integer.
C<as_number()> is an alias for C<as_int()>.
-=head2 as_float()
+=item as_float()
- $x = Math::BigRat->new('13/7');
- print $x->as_float(),"\n"; # '1'
+ $x = Math::BigRat->new('13/7');
+ print $x->as_float(), "\n"; # '1'
- $x = Math::BigRat->new('2/3');
- print $x->as_float(5),"\n"; # '0.66667'
+ $x = Math::BigRat->new('2/3');
+ print $x->as_float(5), "\n"; # '0.66667'
Returns a copy of the object as BigFloat, preserving the
accuracy as wanted, or the default of 40 digits.
This method was added in v0.22 of Math::BigRat (April 2008).
-=head2 as_hex()
+=item as_hex()
- $x = Math::BigRat->new('13');
- print $x->as_hex(),"\n"; # '0xd'
+ $x = Math::BigRat->new('13');
+ print $x->as_hex(), "\n"; # '0xd'
Returns the BigRat as hexadecimal string. Works only for integers.
-=head2 as_bin()
+=item as_bin()
- $x = Math::BigRat->new('13');
- print $x->as_bin(),"\n"; # '0x1101'
+ $x = Math::BigRat->new('13');
+ print $x->as_bin(), "\n"; # '0x1101'
Returns the BigRat as binary string. Works only for integers.
-=head2 as_oct()
+=item as_oct()
- $x = Math::BigRat->new('13');
- print $x->as_oct(),"\n"; # '015'
+ $x = Math::BigRat->new('13');
+ print $x->as_oct(), "\n"; # '015'
Returns the BigRat as octal string. Works only for integers.
-=head2 from_hex()/from_bin()/from_oct()
+=item from_hex()
+
+ my $h = Math::BigRat->from_hex('0x10');
+
+Create a BigRat from a hexadecimal number in string form.
+
+=item from_oct()
+
+ my $o = Math::BigRat->from_oct('020');
+
+Create a BigRat from an octal number in string form.
+
+=item from_bin()
+
+ my $b = Math::BigRat->from_bin('0b10000000');
+
+Create a BigRat from an binary number in string form.
- my $h = Math::BigRat->from_hex('0x10');
- my $b = Math::BigRat->from_bin('0b10000000');
- my $o = Math::BigRat->from_oct('020');
+=item bnan()
-Create a BigRat from an hexadecimal, binary or octal number
-in string form.
+ $x = Math::BigRat->bnan();
-=head2 length()
+Creates a new BigRat object representing NaN (Not A Number).
+If used on an object, it will set it to NaN:
- $len = $x->length();
+ $x->bnan();
+
+=item bzero()
+
+ $x = Math::BigRat->bzero();
+
+Creates a new BigRat object representing zero.
+If used on an object, it will set it to zero:
+
+ $x->bzero();
+
+=item binf()
+
+ $x = Math::BigRat->binf($sign);
+
+Creates a new BigRat object representing infinity. The optional argument is
+either '-' or '+', indicating whether you want infinity or minus infinity.
+If used on an object, it will set it to infinity:
+
+ $x->binf();
+ $x->binf('-');
+
+=item bone()
+
+ $x = Math::BigRat->bone($sign);
+
+Creates a new BigRat object representing one. The optional argument is
+either '-' or '+', indicating whether you want one or minus one.
+If used on an object, it will set it to one:
+
+ $x->bone(); # +1
+ $x->bone('-'); # -1
+
+=item length()
+
+ $len = $x->length();
Return the length of $x in digits for integer values.
-=head2 digit()
+=item digit()
- print Math::BigRat->new('123/1')->digit(1); # 1
- print Math::BigRat->new('123/1')->digit(-1); # 3
+ print Math::BigRat->new('123/1')->digit(1); # 1
+ print Math::BigRat->new('123/1')->digit(-1); # 3
Return the N'ths digit from X when X is an integer value.
-=head2 bnorm()
+=item bnorm()
- $x->bnorm();
+ $x->bnorm();
Reduce the number to the shortest form. This routine is called
automatically whenever it is needed.
-=head2 bfac()
+=item bfac()
- $x->bfac();
+ $x->bfac();
Calculates the factorial of $x. For instance:
- print Math::BigRat->new('3/1')->bfac(),"\n"; # 1*2*3
- print Math::BigRat->new('5/1')->bfac(),"\n"; # 1*2*3*4*5
+ print Math::BigRat->new('3/1')->bfac(), "\n"; # 1*2*3
+ print Math::BigRat->new('5/1')->bfac(), "\n"; # 1*2*3*4*5
Works currently only for integers.
-=head2 bround()/round()/bfround()
+=item bround()/round()/bfround()
Are not yet implemented.
-=head2 bmod()
+=item bmod()
- $x->bmod($y);
+ $x->bmod($y);
Returns $x modulo $y. When $x is finite, and $y is finite and non-zero, the
result is identical to the remainder after floored division (F-division). If,
in addition, both $x and $y are integers, the result is identical to the result
from Perl's % operator.
-=head2 bneg()
+=item bmodinv()
+
+ $x->bmodinv($mod); # modular multiplicative inverse
+
+Returns the multiplicative inverse of C<$x> modulo C<$mod>. If
+
+ $y = $x -> copy() -> bmodinv($mod)
+
+then C<$y> is the number closest to zero, and with the same sign as C<$mod>,
+satisfying
+
+ ($x * $y) % $mod = 1 % $mod
- $x->bneg();
+If C<$x> and C<$y> are non-zero, they must be relative primes, i.e.,
+C<bgcd($y, $mod)==1>. 'C<NaN>' is returned when no modular multiplicative
+inverse exists.
+
+=item bmodpow()
+
+ $num->bmodpow($exp,$mod); # modular exponentiation
+ # ($num**$exp % $mod)
+
+Returns the value of C<$num> taken to the power C<$exp> in the modulus
+C<$mod> using binary exponentiation. C<bmodpow> is far superior to
+writing
+
+ $num ** $exp % $mod
+
+because it is much faster - it reduces internal variables into
+the modulus whenever possible, so it operates on smaller numbers.
+
+C<bmodpow> also supports negative exponents.
+
+ bmodpow($num, -1, $mod)
+
+is exactly equivalent to
+
+ bmodinv($num, $mod)
+
+=item bneg()
+
+ $x->bneg();
Used to negate the object in-place.
-=head2 is_one()
+=item is_one()
- print "$x is 1\n" if $x->is_one();
+ print "$x is 1\n" if $x->is_one();
Return true if $x is exactly one, otherwise false.
-=head2 is_zero()
+=item is_zero()
- print "$x is 0\n" if $x->is_zero();
+ print "$x is 0\n" if $x->is_zero();
Return true if $x is exactly zero, otherwise false.
-=head2 is_pos()/is_positive()
+=item is_pos()/is_positive()
- print "$x is >= 0\n" if $x->is_positive();
+ print "$x is >= 0\n" if $x->is_positive();
Return true if $x is positive (greater than or equal to zero), otherwise
false. Please note that '+inf' is also positive, while 'NaN' and '-inf' aren't.
C<is_positive()> is an alias for C<is_pos()>.
-=head2 is_neg()/is_negative()
+=item is_neg()/is_negative()
- print "$x is < 0\n" if $x->is_negative();
+ print "$x is < 0\n" if $x->is_negative();
Return true if $x is negative (smaller than zero), otherwise false. Please
note that '-inf' is also negative, while 'NaN' and '+inf' aren't.
C<is_negative()> is an alias for C<is_neg()>.
-=head2 is_int()
+=item is_int()
- print "$x is an integer\n" if $x->is_int();
+ print "$x is an integer\n" if $x->is_int();
Return true if $x has a denominator of 1 (e.g. no fraction parts), otherwise
false. Please note that '-inf', 'inf' and 'NaN' aren't integer.
-=head2 is_odd()
+=item is_odd()
- print "$x is odd\n" if $x->is_odd();
+ print "$x is odd\n" if $x->is_odd();
Return true if $x is odd, otherwise false.
-=head2 is_even()
+=item is_even()
- print "$x is even\n" if $x->is_even();
+ print "$x is even\n" if $x->is_even();
Return true if $x is even, otherwise false.
-=head2 bceil()
+=item bceil()
- $x->bceil();
+ $x->bceil();
Set $x to the next bigger integer value (e.g. truncate the number to integer
and then increment it by one).
-=head2 bfloor()
+=item bfloor()
- $x->bfloor();
+ $x->bfloor();
Truncate $x to an integer value.
-=head2 bsqrt()
+=item bint()
+
+ $x->bint();
+
+Round $x towards zero.
- $x->bsqrt();
+=item bsqrt()
+
+ $x->bsqrt();
Calculate the square root of $x.
-=head2 broot()
+=item broot()
- $x->broot($n);
+ $x->broot($n);
Calculate the N'th root of $x.
-=head2 badd()
+=item badd()
- $x->badd($y);
+ $x->badd($y);
Adds $y to $x and returns the result.
-=head2 bmul()
+=item bmul()
- $x->bmul($y);
+ $x->bmul($y);
Multiplies $y to $x and returns the result.
-=head2 bsub()
+=item bsub()
- $x->bsub($y);
+ $x->bsub($y);
Subtracts $y from $x and returns the result.
-=head2 bdiv()
+=item bdiv()
- $q = $x->bdiv($y);
- ($q, $r) = $x->bdiv($y);
+ $q = $x->bdiv($y);
+ ($q, $r) = $x->bdiv($y);
In scalar context, divides $x by $y and returns the result. In list context,
does floored division (F-division), returning an integer $q and a remainder $r
so that $x = $q * $y + $r. The remainer (modulo) is equal to what is returned
by C<$x->bmod($y)>.
-=head2 bdec()
+=item bdec()
- $x->bdec();
+ $x->bdec();
Decrements $x by 1 and returns the result.
-=head2 binc()
+=item binc()
- $x->binc();
+ $x->binc();
Increments $x by 1 and returns the result.
-=head2 copy()
+=item copy()
- my $z = $x->copy();
+ my $z = $x->copy();
Makes a deep copy of the object.
Please see the documentation in L<Math::BigInt> for further details.
-=head2 bstr()/bsstr()
+=item bstr()/bsstr()
- my $x = Math::BigInt->new('8/4');
- print $x->bstr(),"\n"; # prints 1/2
- print $x->bsstr(),"\n"; # prints 1/2
+ my $x = Math::BigRat->new('8/4');
+ print $x->bstr(), "\n"; # prints 1/2
+ print $x->bsstr(), "\n"; # prints 1/2
Return a string representing this object.
-=head2 bacmp()/bcmp()
+=item bcmp()
-Used to compare numbers.
+ $x->bcmp($y);
-Please see the documentation in L<Math::BigInt> for further details.
+Compares $x with $y and takes the sign into account.
+Returns -1, 0, 1 or undef.
+
+=item bacmp()
+
+ $x->bacmp($y);
+
+Compares $x with $y while ignoring their sign. Returns -1, 0, 1 or undef.
+
+=item beq()
-=head2 blsft()/brsft()
+ $x -> beq($y);
+
+Returns true if and only if $x is equal to $y, and false otherwise.
+
+=item bne()
+
+ $x -> bne($y);
+
+Returns true if and only if $x is not equal to $y, and false otherwise.
+
+=item blt()
+
+ $x -> blt($y);
+
+Returns true if and only if $x is equal to $y, and false otherwise.
+
+=item ble()
+
+ $x -> ble($y);
+
+Returns true if and only if $x is less than or equal to $y, and false
+otherwise.
+
+=item bgt()
+
+ $x -> bgt($y);
+
+Returns true if and only if $x is greater than $y, and false otherwise.
+
+=item bge()
+
+ $x -> bge($y);
+
+Returns true if and only if $x is greater than or equal to $y, and false
+otherwise.
+
+=item blsft()/brsft()
Used to shift numbers left/right.
Please see the documentation in L<Math::BigInt> for further details.
-=head2 bpow()
+=item band()
+
+ $x->band($y); # bitwise and
+
+=item bior()
- $x->bpow($y);
+ $x->bior($y); # bitwise inclusive or
+
+=item bxor()
+
+ $x->bxor($y); # bitwise exclusive or
+
+=item bnot()
+
+ $x->bnot(); # bitwise not (two's complement)
+
+=item bpow()
+
+ $x->bpow($y);
Compute $x ** $y.
Please see the documentation in L<Math::BigInt> for further details.
-=head2 bexp()
+=item blog()
+
+ $x->blog($base, $accuracy); # logarithm of x to the base $base
+
+If C<$base> is not defined, Euler's number (e) is used:
+
+ print $x->blog(undef, 100); # log(x) to 100 digits
- $x->bexp($accuracy); # calculate e ** X
+=item bexp()
+
+ $x->bexp($accuracy); # calculate e ** X
Calculates two integers A and B so that A/B is equal to C<e ** $x>, where C<e> is
Euler's number.
@@ -2105,65 +2621,63 @@ This method was added in v0.20 of Math::BigRat (May 2007).
See also C<blog()>.
-=head2 bnok()
+=item bnok()
- $x->bnok($y); # x over y (binomial coefficient n over k)
+ $x->bnok($y); # x over y (binomial coefficient n over k)
Calculates the binomial coefficient n over k, also called the "choose"
function. The result is equivalent to:
- ( n ) n!
- | - | = -------
- ( k ) k!(n-k)!
+ ( n ) n!
+ | - | = -------
+ ( k ) k!(n-k)!
This method was added in v0.20 of Math::BigRat (May 2007).
-=head2 config()
+=item config()
- use Data::Dumper;
+ use Data::Dumper;
- print Dumper ( Math::BigRat->config() );
- print Math::BigRat->config()->{lib},"\n";
+ print Dumper ( Math::BigRat->config() );
+ print Math::BigRat->config()->{lib}, "\n";
Returns a hash containing the configuration, e.g. the version number, lib
loaded etc. The following hash keys are currently filled in with the
appropriate information.
- key RO/RW Description
- Example
- ============================================================
- lib RO Name of the Math library
- Math::BigInt::Calc
- lib_version RO Version of 'lib'
- 0.30
- class RO The class of config you just called
- Math::BigRat
- version RO version number of the class you used
- 0.10
- upgrade RW To which class numbers are upgraded
- undef
- downgrade RW To which class numbers are downgraded
- undef
- precision RW Global precision
- undef
- accuracy RW Global accuracy
- undef
- round_mode RW Global round mode
- even
- div_scale RW Fallback accuracy for div
- 40
- trap_nan RW Trap creation of NaN (undef = no)
- undef
- trap_inf RW Trap creation of +inf/-inf (undef = no)
- undef
+ key RO/RW Description
+ Example
+ ============================================================
+ lib RO Name of the Math library
+ Math::BigInt::Calc
+ lib_version RO Version of 'lib'
+ 0.30
+ class RO The class of config you just called
+ Math::BigRat
+ version RO version number of the class you used
+ 0.10
+ upgrade RW To which class numbers are upgraded
+ undef
+ downgrade RW To which class numbers are downgraded
+ undef
+ precision RW Global precision
+ undef
+ accuracy RW Global accuracy
+ undef
+ round_mode RW Global round mode
+ even
+ div_scale RW Fallback accuracy for div
+ 40
+ trap_nan RW Trap creation of NaN (undef = no)
+ undef
+ trap_inf RW Trap creation of +inf/-inf (undef = no)
+ undef
By passing a reference to a hash you may set the configuration values. This
works only for values that a marked with a C<RW> above, anything else is
read-only.
-=head2 objectify()
-
-This is an internal routine that turns scalars into objects.
+=back
=head1 BUGS
@@ -2236,8 +2750,16 @@ L<Math::BigInt::FastCalc>, L<Math::BigInt::GMP>, and L<Math::BigInt::Pari>.
=head1 AUTHORS
-(C) by Tels L<http://bloodgate.com/> 2001 - 2009.
+=over 4
+
+=item *
-Currently maintained by Peter John Acklam <pjacklam@online.no>.
+Tels L<http://bloodgate.com/> 2001-2009.
+
+=item *
+
+Maintained by Peter John Acklam <pjacklam@online.no> 2011-
+
+=back
=cut
diff --git a/Master/tlpkg/tlperl/lib/Math/Complex.pm b/Master/tlpkg/tlperl/lib/Math/Complex.pm
index 19fb16486bf..ea3e006fe58 100644
--- a/Master/tlpkg/tlperl/lib/Math/Complex.pm
+++ b/Master/tlpkg/tlperl/lib/Math/Complex.pm
@@ -10,13 +10,32 @@ package Math::Complex;
{ use 5.006; }
use strict;
-our $VERSION = 1.59;
+our $VERSION = 1.59_01;
use Config;
-our($Inf, $ExpInf);
+our ($Inf, $ExpInf);
+our ($vax_float, $has_inf, $has_nan);
+
BEGIN {
- my %DBL_MAX =
+ $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
+ $has_inf = !$vax_float;
+ $has_nan = !$vax_float;
+
+ unless ($has_inf) {
+ # For example in vax, there is no Inf,
+ # and just mentioning the DBL_MAX (1.70141183460469229e+38)
+ # causes SIGFPE.
+
+ # These are pretty useless without a real infinity,
+ # but setting them makes for less warnings about their
+ # undefined values.
+ $Inf = "Inf";
+ $ExpInf = "Inf";
+ return;
+ }
+
+ my %DBL_MAX = # These are IEEE 754 maxima.
(
4 => '1.70141183460469229e+38',
8 => '1.7976931348623157e+308',
@@ -26,6 +45,7 @@ BEGIN {
12 => '1.1897314953572317650857593266280070162E+4932',
16 => '1.1897314953572317650857593266280070162E+4932',
);
+
my $nvsize = $Config{nvsize} ||
($Config{uselongdouble} && $Config{longdblsize}) ||
$Config{doublesize};
@@ -40,7 +60,7 @@ BEGIN {
if ($^O eq 'unicosmk') {
$Inf = $DBL_MAX;
} else {
- local $SIG{FPE} = { };
+ local $SIG{FPE} = sub { };
local $!;
# We do want an arithmetic overflow, Inf INF inf Infinity.
for my $t (
@@ -59,12 +79,12 @@ BEGIN {
$Inf = $i;
last;
}
- }
+ }
$Inf = $DBL_MAX unless defined $Inf; # Oh well, close enough.
die "Math::Complex: Could not get Infinity"
unless $Inf > $BIGGER_THAN_THIS;
- $ExpInf = exp(99999);
- }
+ $ExpInf = eval 'exp(99999)';
+ }
# print "# On this machine, Inf = '$Inf'\n";
}
@@ -190,9 +210,9 @@ sub _make {
if (defined $p) {
$p =~ s/^\+//;
- $p =~ s/^(-?)inf$/"${1}9**9**9"/e;
+ $p =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
$q =~ s/^\+//;
- $q =~ s/^(-?)inf$/"${1}9**9**9"/e;
+ $q =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
}
return ($p, $q);
@@ -215,8 +235,8 @@ sub _emake {
if (defined $p) {
$p =~ s/^\+//;
$q =~ s/^\+//;
- $p =~ s/^(-?)inf$/"${1}9**9**9"/e;
- $q =~ s/^(-?)inf$/"${1}9**9**9"/e;
+ $p =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
+ $q =~ s/^(-?)inf$/"${1}9**9**9"/e if $has_inf;
}
return ($p, $q);
diff --git a/Master/tlpkg/tlperl/lib/Module/CoreList.pm b/Master/tlpkg/tlperl/lib/Module/CoreList.pm
index 6cbf8d054bf..624a8c899f0 100644
--- a/Master/tlpkg/tlperl/lib/Module/CoreList.pm
+++ b/Master/tlpkg/tlperl/lib/Module/CoreList.pm
@@ -2,9 +2,21 @@ package Module::CoreList;
use strict;
use vars qw/$VERSION %released %version %families %upstream
%bug_tracker %deprecated %delta/;
-use Module::CoreList::TieHashDelta;
use version;
-$VERSION = '5.20170114_24';
+$VERSION = '5.20170922_26';
+
+sub _undelta {
+ my ($delta) = @_;
+ my (%expanded, $delta_from, $base, $changed, $removed);
+ for my $v (sort keys %$delta) {
+ ($delta_from, $changed, $removed) = @{$delta->{$v}}{qw( delta_from changed removed )};
+ $base = $delta_from ? $expanded{$delta_from} : {};
+ my %full = ( %$base, %{$changed || {}} );
+ delete @full{ keys %$removed };
+ $expanded{$v} = \%full;
+ }
+ return %expanded;
+}
sub _released_order { # Sort helper, to make '?' sort after everything else
(substr($released{$a}, 0, 1) eq "?")
@@ -302,7 +314,21 @@ sub changes_between {
5.025006 => '2016-10-20',
5.025007 => '2016-11-20',
5.025008 => '2016-12-20',
+ 5.022003 => '2017-01-14',
5.024001 => '2017-01-14',
+ 5.025009 => '2017-01-20',
+ 5.025010 => '2017-02-20',
+ 5.025011 => '2017-03-20',
+ 5.025012 => '2017-04-20',
+ 5.026000 => '2017-05-30',
+ 5.027000 => '2017-05-31',
+ 5.027001 => '2017-06-20',
+ 5.022004 => '2017-07-15',
+ 5.024002 => '2017-07-15',
+ 5.027002 => '2017-07-20',
+ 5.027003 => '2017-08-21',
+ 5.027004 => '2017-09-20',
+ 5.026001 => '2017-09-22',
);
for my $version ( sort { $a <=> $b } keys %released ) {
@@ -12974,7 +13000,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
'Sys::Syslog' => '0.34_01',
'TAP::Base' => '3.36_01',
'TAP::Formatter::Base' => '3.36_01',
- 'TAP::Formatter::Color' => '3.36_01',
+ 'TAP::Formatter::Color' => '3.36_01',
'TAP::Formatter::Console'=> '3.36_01',
'TAP::Formatter::Console::ParallelSession'=> '3.36_01',
'TAP::Formatter::Console::Session'=> '3.36_01',
@@ -13520,6 +13546,174 @@ for my $version ( sort { $a <=> $b } keys %released ) {
removed => {
}
},
+ 5.022003 => {
+ delta_from => 5.022002,
+ changed => {
+ 'App::Cpan' => '1.63_01',
+ 'App::Prove' => '3.35_01',
+ 'App::Prove::State' => '3.35_01',
+ 'App::Prove::State::Result'=> '3.35_01',
+ 'App::Prove::State::Result::Test'=> '3.35_01',
+ 'Archive::Tar' => '2.04_01',
+ 'Archive::Tar::Constant'=> '2.04_01',
+ 'Archive::Tar::File' => '2.04_01',
+ 'B::Op_private' => '5.022003',
+ 'CPAN' => '2.11_01',
+ 'Compress::Zlib' => '2.068_001',
+ 'Config' => '5.022003',
+ 'Cwd' => '3.56_02',
+ 'Digest' => '1.17_01',
+ 'Digest::SHA' => '5.95_01',
+ 'Encode' => '2.72_01',
+ 'ExtUtils::Command' => '1.20_01',
+ 'ExtUtils::Command::MM' => '7.04_02',
+ 'ExtUtils::Liblist' => '7.04_02',
+ 'ExtUtils::Liblist::Kid'=> '7.04_02',
+ 'ExtUtils::MM' => '7.04_02',
+ 'ExtUtils::MM_AIX' => '7.04_02',
+ 'ExtUtils::MM_Any' => '7.04_02',
+ 'ExtUtils::MM_BeOS' => '7.04_02',
+ 'ExtUtils::MM_Cygwin' => '7.04_02',
+ 'ExtUtils::MM_DOS' => '7.04_02',
+ 'ExtUtils::MM_Darwin' => '7.04_02',
+ 'ExtUtils::MM_MacOS' => '7.04_02',
+ 'ExtUtils::MM_NW5' => '7.04_02',
+ 'ExtUtils::MM_OS2' => '7.04_02',
+ 'ExtUtils::MM_QNX' => '7.04_02',
+ 'ExtUtils::MM_UWIN' => '7.04_02',
+ 'ExtUtils::MM_Unix' => '7.04_02',
+ 'ExtUtils::MM_VMS' => '7.04_02',
+ 'ExtUtils::MM_VOS' => '7.04_02',
+ 'ExtUtils::MM_Win32' => '7.04_02',
+ 'ExtUtils::MM_Win95' => '7.04_02',
+ 'ExtUtils::MY' => '7.04_02',
+ 'ExtUtils::MakeMaker' => '7.04_02',
+ 'ExtUtils::MakeMaker::Config'=> '7.04_02',
+ 'ExtUtils::Mkbootstrap' => '7.04_02',
+ 'ExtUtils::Mksymlists' => '7.04_02',
+ 'ExtUtils::testlib' => '7.04_02',
+ 'File::Fetch' => '0.48_01',
+ 'File::Spec' => '3.56_02',
+ 'File::Spec::Cygwin' => '3.56_02',
+ 'File::Spec::Epoc' => '3.56_02',
+ 'File::Spec::Functions' => '3.56_02',
+ 'File::Spec::Mac' => '3.56_02',
+ 'File::Spec::OS2' => '3.56_02',
+ 'File::Spec::Unix' => '3.56_02',
+ 'File::Spec::VMS' => '3.56_02',
+ 'File::Spec::Win32' => '3.56_02',
+ 'HTTP::Tiny' => '0.054_01',
+ 'I18N::LangTags::Detect'=> '1.05_01',
+ 'IO' => '1.35_01',
+ 'IO::Compress::Adapter::Bzip2'=> '2.068_001',
+ 'IO::Compress::Adapter::Deflate'=> '2.068_001',
+ 'IO::Compress::Adapter::Identity'=> '2.068_001',
+ 'IO::Compress::Base' => '2.068_001',
+ 'IO::Compress::Base::Common'=> '2.068_001',
+ 'IO::Compress::Bzip2' => '2.068_001',
+ 'IO::Compress::Deflate' => '2.068_001',
+ 'IO::Compress::Gzip' => '2.068_001',
+ 'IO::Compress::Gzip::Constants'=> '2.068_001',
+ 'IO::Compress::RawDeflate'=> '2.068_001',
+ 'IO::Compress::Zip' => '2.068_001',
+ 'IO::Compress::Zip::Constants'=> '2.068_001',
+ 'IO::Compress::Zlib::Constants'=> '2.068_001',
+ 'IO::Compress::Zlib::Extra'=> '2.068_001',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.068_001',
+ 'IO::Uncompress::Adapter::Identity'=> '2.068_001',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.068_001',
+ 'IO::Uncompress::AnyInflate'=> '2.068_001',
+ 'IO::Uncompress::AnyUncompress'=> '2.068_001',
+ 'IO::Uncompress::Base' => '2.068_001',
+ 'IO::Uncompress::Bunzip2'=> '2.068_001',
+ 'IO::Uncompress::Gunzip'=> '2.068_001',
+ 'IO::Uncompress::Inflate'=> '2.068_001',
+ 'IO::Uncompress::RawInflate'=> '2.068_001',
+ 'IO::Uncompress::Unzip' => '2.068_001',
+ 'IPC::Cmd' => '0.92_01',
+ 'JSON::PP' => '2.27300_01',
+ 'Locale::Maketext' => '1.26_01',
+ 'Locale::Maketext::Simple'=> '0.21_01',
+ 'Memoize' => '1.03_01',
+ 'Module::CoreList' => '5.20170114_22',
+ 'Module::CoreList::TieHashDelta'=> '5.20170114_22',
+ 'Module::CoreList::Utils'=> '5.20170114_22',
+ 'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef,
+ 'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef,
+ 'Module::Metadata::corpus::BOMTest::UTF8'=> '1',
+ 'Net::Cmd' => '3.05_01',
+ 'Net::Config' => '3.05_01',
+ 'Net::Domain' => '3.05_01',
+ 'Net::FTP' => '3.05_01',
+ 'Net::FTP::A' => '3.05_01',
+ 'Net::FTP::E' => '3.05_01',
+ 'Net::FTP::I' => '3.05_01',
+ 'Net::FTP::L' => '3.05_01',
+ 'Net::FTP::dataconn' => '3.05_01',
+ 'Net::NNTP' => '3.05_01',
+ 'Net::Netrc' => '3.05_01',
+ 'Net::POP3' => '3.05_01',
+ 'Net::Ping' => '2.43_01',
+ 'Net::SMTP' => '3.05_01',
+ 'Net::Time' => '3.05_01',
+ 'Parse::CPAN::Meta' => '1.4414_001',
+ 'Pod::Html' => '1.2201',
+ 'Pod::Perldoc' => '3.25_01',
+ 'Storable' => '2.53_02',
+ 'Sys::Syslog' => '0.33_01',
+ 'TAP::Base' => '3.35_01',
+ 'TAP::Formatter::Base' => '3.35_01',
+ 'TAP::Formatter::Color' => '3.35_01',
+ 'TAP::Formatter::Console'=> '3.35_01',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.35_01',
+ 'TAP::Formatter::Console::Session'=> '3.35_01',
+ 'TAP::Formatter::File' => '3.35_01',
+ 'TAP::Formatter::File::Session'=> '3.35_01',
+ 'TAP::Formatter::Session'=> '3.35_01',
+ 'TAP::Harness' => '3.35_01',
+ 'TAP::Harness::Env' => '3.35_01',
+ 'TAP::Object' => '3.35_01',
+ 'TAP::Parser' => '3.35_01',
+ 'TAP::Parser::Aggregator'=> '3.35_01',
+ 'TAP::Parser::Grammar' => '3.35_01',
+ 'TAP::Parser::Iterator' => '3.35_01',
+ 'TAP::Parser::Iterator::Array'=> '3.35_01',
+ 'TAP::Parser::Iterator::Process'=> '3.35_01',
+ 'TAP::Parser::Iterator::Stream'=> '3.35_01',
+ 'TAP::Parser::IteratorFactory'=> '3.35_01',
+ 'TAP::Parser::Multiplexer'=> '3.35_01',
+ 'TAP::Parser::Result' => '3.35_01',
+ 'TAP::Parser::Result::Bailout'=> '3.35_01',
+ 'TAP::Parser::Result::Comment'=> '3.35_01',
+ 'TAP::Parser::Result::Plan'=> '3.35_01',
+ 'TAP::Parser::Result::Pragma'=> '3.35_01',
+ 'TAP::Parser::Result::Test'=> '3.35_01',
+ 'TAP::Parser::Result::Unknown'=> '3.35_01',
+ 'TAP::Parser::Result::Version'=> '3.35_01',
+ 'TAP::Parser::Result::YAML'=> '3.35_01',
+ 'TAP::Parser::ResultFactory'=> '3.35_01',
+ 'TAP::Parser::Scheduler'=> '3.35_01',
+ 'TAP::Parser::Scheduler::Job'=> '3.35_01',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.35_01',
+ 'TAP::Parser::Source' => '3.35_01',
+ 'TAP::Parser::SourceHandler'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::File'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.35_01',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.35_01',
+ 'TAP::Parser::YAMLish::Reader'=> '3.35_01',
+ 'TAP::Parser::YAMLish::Writer'=> '3.35_01',
+ 'Test' => '1.26_01',
+ 'Test::Harness' => '3.35_01',
+ 'XSLoader' => '0.20_01',
+ 'bigint' => '0.39_01',
+ 'bignum' => '0.39_01',
+ 'bigrat' => '0.39_01',
+ },
+ removed => {
+ }
+ },
5.024001 => {
delta_from => 5.024000,
changed => {
@@ -13690,6 +13884,571 @@ for my $version ( sort { $a <=> $b } keys %released ) {
removed => {
}
},
+ 5.025009 => {
+ delta_from => 5.025008,
+ changed => {
+ 'App::Cpan' => '1.66',
+ 'B::Deparse' => '1.40',
+ 'B::Op_private' => '5.025009',
+ 'B::Terse' => '1.07',
+ 'B::Xref' => '1.06',
+ 'CPAN' => '2.16',
+ 'CPAN::Bundle' => '5.5002',
+ 'CPAN::Distribution' => '2.16',
+ 'CPAN::Exception::RecursiveDependency'=> '5.5001',
+ 'CPAN::FTP' => '5.5008',
+ 'CPAN::FirstTime' => '5.5310',
+ 'CPAN::HandleConfig' => '5.5008',
+ 'CPAN::Module' => '5.5003',
+ 'Compress::Raw::Bzip2' => '2.070',
+ 'Compress::Raw::Zlib' => '2.070',
+ 'Config' => '5.025009',
+ 'DB_File' => '1.840',
+ 'Data::Dumper' => '2.167',
+ 'Devel::SelfStubber' => '1.06',
+ 'DynaLoader' => '1.41',
+ 'Errno' => '1.28',
+ 'ExtUtils::Embed' => '1.34',
+ 'File::Glob' => '1.28',
+ 'I18N::LangTags' => '0.42',
+ 'Module::CoreList' => '5.20170120',
+ 'Module::CoreList::TieHashDelta'=> '5.20170120',
+ 'Module::CoreList::Utils'=> '5.20170120',
+ 'OS2::Process' => '1.12',
+ 'PerlIO::scalar' => '0.26',
+ 'Pod::Html' => '1.2202',
+ 'Storable' => '2.61',
+ 'Symbol' => '1.08',
+ 'Term::ReadLine' => '1.16',
+ 'Test' => '1.30',
+ 'Unicode::UCD' => '0.68',
+ 'VMS::DCLsym' => '1.08',
+ 'XS::APItest' => '0.88',
+ 'XSLoader' => '0.26',
+ 'attributes' => '0.29',
+ 'diagnostics' => '1.36',
+ 'feature' => '1.46',
+ 'lib' => '0.64',
+ 'overload' => '1.28',
+ 're' => '0.34',
+ 'threads' => '2.12',
+ 'threads::shared' => '1.54',
+ },
+ removed => {
+ }
+ },
+ 5.025010 => {
+ delta_from => 5.025009,
+ changed => {
+ 'B' => '1.68',
+ 'B::Op_private' => '5.025010',
+ 'CPAN' => '2.17',
+ 'CPAN::Distribution' => '2.17',
+ 'Config' => '5.02501',
+ 'Getopt::Std' => '1.12',
+ 'Module::CoreList' => '5.20170220',
+ 'Module::CoreList::TieHashDelta'=> '5.20170220',
+ 'Module::CoreList::Utils'=> '5.20170220',
+ 'PerlIO' => '1.10',
+ 'Storable' => '2.62',
+ 'Thread::Queue' => '3.12',
+ 'feature' => '1.47',
+ 'open' => '1.11',
+ 'threads' => '2.13',
+ },
+ removed => {
+ }
+ },
+ 5.025011 => {
+ delta_from => 5.025010,
+ changed => {
+ 'App::Prove' => '3.38',
+ 'App::Prove::State' => '3.38',
+ 'App::Prove::State::Result'=> '3.38',
+ 'App::Prove::State::Result::Test'=> '3.38',
+ 'B::Op_private' => '5.025011',
+ 'Compress::Raw::Bzip2' => '2.074',
+ 'Compress::Raw::Zlib' => '2.074',
+ 'Compress::Zlib' => '2.074',
+ 'Config' => '5.025011',
+ 'Config::Perl::V' => '0.28',
+ 'Cwd' => '3.67',
+ 'ExtUtils::ParseXS' => '3.34',
+ 'ExtUtils::ParseXS::Constants'=> '3.34',
+ 'ExtUtils::ParseXS::CountLines'=> '3.34',
+ 'ExtUtils::ParseXS::Eval'=> '3.34',
+ 'ExtUtils::Typemaps' => '3.34',
+ 'ExtUtils::Typemaps::Cmd'=> '3.34',
+ 'ExtUtils::Typemaps::InputMap'=> '3.34',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.34',
+ 'ExtUtils::Typemaps::Type'=> '3.34',
+ 'File::Spec' => '3.67',
+ 'File::Spec::AmigaOS' => '3.67',
+ 'File::Spec::Cygwin' => '3.67',
+ 'File::Spec::Epoc' => '3.67',
+ 'File::Spec::Functions' => '3.67',
+ 'File::Spec::Mac' => '3.67',
+ 'File::Spec::OS2' => '3.67',
+ 'File::Spec::Unix' => '3.67',
+ 'File::Spec::VMS' => '3.67',
+ 'File::Spec::Win32' => '3.67',
+ 'IO::Compress::Adapter::Bzip2'=> '2.074',
+ 'IO::Compress::Adapter::Deflate'=> '2.074',
+ 'IO::Compress::Adapter::Identity'=> '2.074',
+ 'IO::Compress::Base' => '2.074',
+ 'IO::Compress::Base::Common'=> '2.074',
+ 'IO::Compress::Bzip2' => '2.074',
+ 'IO::Compress::Deflate' => '2.074',
+ 'IO::Compress::Gzip' => '2.074',
+ 'IO::Compress::Gzip::Constants'=> '2.074',
+ 'IO::Compress::RawDeflate'=> '2.074',
+ 'IO::Compress::Zip' => '2.074',
+ 'IO::Compress::Zip::Constants'=> '2.074',
+ 'IO::Compress::Zlib::Constants'=> '2.074',
+ 'IO::Compress::Zlib::Extra'=> '2.074',
+ 'IO::Uncompress::Adapter::Bunzip2'=> '2.074',
+ 'IO::Uncompress::Adapter::Identity'=> '2.074',
+ 'IO::Uncompress::Adapter::Inflate'=> '2.074',
+ 'IO::Uncompress::AnyInflate'=> '2.074',
+ 'IO::Uncompress::AnyUncompress'=> '2.074',
+ 'IO::Uncompress::Base' => '2.074',
+ 'IO::Uncompress::Bunzip2'=> '2.074',
+ 'IO::Uncompress::Gunzip'=> '2.074',
+ 'IO::Uncompress::Inflate'=> '2.074',
+ 'IO::Uncompress::RawInflate'=> '2.074',
+ 'IO::Uncompress::Unzip' => '2.074',
+ 'Module::CoreList' => '5.20170320',
+ 'Module::CoreList::TieHashDelta'=> '5.20170230',
+ 'Module::CoreList::Utils'=> '5.20170320',
+ 'Pod::Perldoc' => '3.28',
+ 'Pod::Perldoc::BaseTo' => '3.28',
+ 'Pod::Perldoc::GetOptsOO'=> '3.28',
+ 'Pod::Perldoc::ToANSI' => '3.28',
+ 'Pod::Perldoc::ToChecker'=> '3.28',
+ 'Pod::Perldoc::ToMan' => '3.28',
+ 'Pod::Perldoc::ToNroff' => '3.28',
+ 'Pod::Perldoc::ToPod' => '3.28',
+ 'Pod::Perldoc::ToRtf' => '3.28',
+ 'Pod::Perldoc::ToTerm' => '3.28',
+ 'Pod::Perldoc::ToText' => '3.28',
+ 'Pod::Perldoc::ToTk' => '3.28',
+ 'Pod::Perldoc::ToXml' => '3.28',
+ 'TAP::Base' => '3.38',
+ 'TAP::Formatter::Base' => '3.38',
+ 'TAP::Formatter::Color' => '3.38',
+ 'TAP::Formatter::Console'=> '3.38',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.38',
+ 'TAP::Formatter::Console::Session'=> '3.38',
+ 'TAP::Formatter::File' => '3.38',
+ 'TAP::Formatter::File::Session'=> '3.38',
+ 'TAP::Formatter::Session'=> '3.38',
+ 'TAP::Harness' => '3.38',
+ 'TAP::Harness::Env' => '3.38',
+ 'TAP::Object' => '3.38',
+ 'TAP::Parser' => '3.38',
+ 'TAP::Parser::Aggregator'=> '3.38',
+ 'TAP::Parser::Grammar' => '3.38',
+ 'TAP::Parser::Iterator' => '3.38',
+ 'TAP::Parser::Iterator::Array'=> '3.38',
+ 'TAP::Parser::Iterator::Process'=> '3.38',
+ 'TAP::Parser::Iterator::Stream'=> '3.38',
+ 'TAP::Parser::IteratorFactory'=> '3.38',
+ 'TAP::Parser::Multiplexer'=> '3.38',
+ 'TAP::Parser::Result' => '3.38',
+ 'TAP::Parser::Result::Bailout'=> '3.38',
+ 'TAP::Parser::Result::Comment'=> '3.38',
+ 'TAP::Parser::Result::Plan'=> '3.38',
+ 'TAP::Parser::Result::Pragma'=> '3.38',
+ 'TAP::Parser::Result::Test'=> '3.38',
+ 'TAP::Parser::Result::Unknown'=> '3.38',
+ 'TAP::Parser::Result::Version'=> '3.38',
+ 'TAP::Parser::Result::YAML'=> '3.38',
+ 'TAP::Parser::ResultFactory'=> '3.38',
+ 'TAP::Parser::Scheduler'=> '3.38',
+ 'TAP::Parser::Scheduler::Job'=> '3.38',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.38',
+ 'TAP::Parser::Source' => '3.38',
+ 'TAP::Parser::SourceHandler'=> '3.38',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.38',
+ 'TAP::Parser::SourceHandler::File'=> '3.38',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.38',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.38',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.38',
+ 'TAP::Parser::YAMLish::Reader'=> '3.38',
+ 'TAP::Parser::YAMLish::Writer'=> '3.38',
+ 'Test::Harness' => '3.38',
+ 'VMS::Stdio' => '2.41',
+ 'threads' => '2.15',
+ 'threads::shared' => '1.55',
+ },
+ removed => {
+ }
+ },
+ 5.025012 => {
+ delta_from => 5.025011,
+ changed => {
+ 'B::Op_private' => '5.025012',
+ 'CPAN' => '2.18',
+ 'CPAN::Bundle' => '5.5003',
+ 'CPAN::Distribution' => '2.18',
+ 'Config' => '5.025012',
+ 'DynaLoader' => '1.42',
+ 'Module::CoreList' => '5.20170420',
+ 'Module::CoreList::TieHashDelta'=> '5.20170420',
+ 'Module::CoreList::Utils'=> '5.20170420',
+ 'Safe' => '2.40',
+ 'XSLoader' => '0.27',
+ 'base' => '2.25',
+ 'threads::shared' => '1.56',
+ },
+ removed => {
+ }
+ },
+ 5.026000 => {
+ delta_from => 5.025012,
+ changed => {
+ 'B::Op_private' => '5.026000',
+ 'Config' => '5.026',
+ 'Module::CoreList' => '5.20170530',
+ 'Module::CoreList::TieHashDelta'=> '5.20170530',
+ 'Module::CoreList::Utils'=> '5.20170530',
+ },
+ removed => {
+ }
+ },
+ 5.027000 => {
+ delta_from => 5.026000,
+ changed => {
+ 'Attribute::Handlers' => '1.00',
+ 'B::Concise' => '1.000',
+ 'B::Deparse' => '1.41',
+ 'B::Op_private' => '5.027000',
+ 'Config' => '5.027',
+ 'Module::CoreList' => '5.20170531',
+ 'Module::CoreList::TieHashDelta'=> '5.20170531',
+ 'Module::CoreList::Utils'=> '5.20170531',
+ 'O' => '1.02',
+ 'attributes' => '0.3',
+ 'feature' => '1.48',
+ },
+ removed => {
+ }
+ },
+ 5.027001 => {
+ delta_from => 5.027,
+ changed => {
+ 'App::Prove' => '3.39',
+ 'App::Prove::State' => '3.39',
+ 'App::Prove::State::Result'=> '3.39',
+ 'App::Prove::State::Result::Test'=> '3.39',
+ 'Archive::Tar' => '2.26',
+ 'Archive::Tar::Constant'=> '2.26',
+ 'Archive::Tar::File' => '2.26',
+ 'B::Op_private' => '5.027001',
+ 'B::Terse' => '1.08',
+ 'Config' => '5.027001',
+ 'Devel::PPPort' => '3.36',
+ 'DirHandle' => '1.05',
+ 'ExtUtils::Command' => '7.30',
+ 'ExtUtils::Command::MM' => '7.30',
+ 'ExtUtils::Install' => '2.14',
+ 'ExtUtils::Installed' => '2.14',
+ 'ExtUtils::Liblist' => '7.30',
+ 'ExtUtils::Liblist::Kid'=> '7.30',
+ 'ExtUtils::MM' => '7.30',
+ 'ExtUtils::MM_AIX' => '7.30',
+ 'ExtUtils::MM_Any' => '7.30',
+ 'ExtUtils::MM_BeOS' => '7.30',
+ 'ExtUtils::MM_Cygwin' => '7.30',
+ 'ExtUtils::MM_DOS' => '7.30',
+ 'ExtUtils::MM_Darwin' => '7.30',
+ 'ExtUtils::MM_MacOS' => '7.30',
+ 'ExtUtils::MM_NW5' => '7.30',
+ 'ExtUtils::MM_OS2' => '7.30',
+ 'ExtUtils::MM_QNX' => '7.30',
+ 'ExtUtils::MM_UWIN' => '7.30',
+ 'ExtUtils::MM_Unix' => '7.30',
+ 'ExtUtils::MM_VMS' => '7.30',
+ 'ExtUtils::MM_VOS' => '7.30',
+ 'ExtUtils::MM_Win32' => '7.30',
+ 'ExtUtils::MM_Win95' => '7.30',
+ 'ExtUtils::MY' => '7.30',
+ 'ExtUtils::MakeMaker' => '7.30',
+ 'ExtUtils::MakeMaker::Config'=> '7.30',
+ 'ExtUtils::MakeMaker::Locale'=> '7.30',
+ 'ExtUtils::MakeMaker::version'=> '7.30',
+ 'ExtUtils::MakeMaker::version::regex'=> '7.30',
+ 'ExtUtils::Mkbootstrap' => '7.30',
+ 'ExtUtils::Mksymlists' => '7.30',
+ 'ExtUtils::Packlist' => '2.14',
+ 'ExtUtils::testlib' => '7.30',
+ 'File::Path' => '2.14',
+ 'Filter::Util::Call' => '1.57',
+ 'GDBM_File' => '1.16',
+ 'Getopt::Long' => '2.5',
+ 'IO::Socket::IP' => '0.39',
+ 'IPC::Cmd' => '0.98',
+ 'JSON::PP' => '2.94',
+ 'JSON::PP::Boolean' => '2.94',
+ 'Locale::Codes' => '3.52',
+ 'Locale::Codes::Constants'=> '3.52',
+ 'Locale::Codes::Country'=> '3.52',
+ 'Locale::Codes::Country_Codes'=> '3.52',
+ 'Locale::Codes::Country_Retired'=> '3.52',
+ 'Locale::Codes::Currency'=> '3.52',
+ 'Locale::Codes::Currency_Codes'=> '3.52',
+ 'Locale::Codes::Currency_Retired'=> '3.52',
+ 'Locale::Codes::LangExt'=> '3.52',
+ 'Locale::Codes::LangExt_Codes'=> '3.52',
+ 'Locale::Codes::LangExt_Retired'=> '3.52',
+ 'Locale::Codes::LangFam'=> '3.52',
+ 'Locale::Codes::LangFam_Codes'=> '3.52',
+ 'Locale::Codes::LangFam_Retired'=> '3.52',
+ 'Locale::Codes::LangVar'=> '3.52',
+ 'Locale::Codes::LangVar_Codes'=> '3.52',
+ 'Locale::Codes::LangVar_Retired'=> '3.52',
+ 'Locale::Codes::Language'=> '3.52',
+ 'Locale::Codes::Language_Codes'=> '3.52',
+ 'Locale::Codes::Language_Retired'=> '3.52',
+ 'Locale::Codes::Script' => '3.52',
+ 'Locale::Codes::Script_Codes'=> '3.52',
+ 'Locale::Codes::Script_Retired'=> '3.52',
+ 'Locale::Country' => '3.52',
+ 'Locale::Currency' => '3.52',
+ 'Locale::Language' => '3.52',
+ 'Locale::Script' => '3.52',
+ 'Module::CoreList' => '5.20170621',
+ 'Module::CoreList::TieHashDelta'=> '5.20170621',
+ 'Module::CoreList::Utils'=> '5.20170621',
+ 'PerlIO::scalar' => '0.27',
+ 'PerlIO::via' => '0.17',
+ 'Storable' => '2.63',
+ 'TAP::Base' => '3.39',
+ 'TAP::Formatter::Base' => '3.39',
+ 'TAP::Formatter::Color' => '3.39',
+ 'TAP::Formatter::Console'=> '3.39',
+ 'TAP::Formatter::Console::ParallelSession'=> '3.39',
+ 'TAP::Formatter::Console::Session'=> '3.39',
+ 'TAP::Formatter::File' => '3.39',
+ 'TAP::Formatter::File::Session'=> '3.39',
+ 'TAP::Formatter::Session'=> '3.39',
+ 'TAP::Harness' => '3.39',
+ 'TAP::Harness::Env' => '3.39',
+ 'TAP::Object' => '3.39',
+ 'TAP::Parser' => '3.39',
+ 'TAP::Parser::Aggregator'=> '3.39',
+ 'TAP::Parser::Grammar' => '3.39',
+ 'TAP::Parser::Iterator' => '3.39',
+ 'TAP::Parser::Iterator::Array'=> '3.39',
+ 'TAP::Parser::Iterator::Process'=> '3.39',
+ 'TAP::Parser::Iterator::Stream'=> '3.39',
+ 'TAP::Parser::IteratorFactory'=> '3.39',
+ 'TAP::Parser::Multiplexer'=> '3.39',
+ 'TAP::Parser::Result' => '3.39',
+ 'TAP::Parser::Result::Bailout'=> '3.39',
+ 'TAP::Parser::Result::Comment'=> '3.39',
+ 'TAP::Parser::Result::Plan'=> '3.39',
+ 'TAP::Parser::Result::Pragma'=> '3.39',
+ 'TAP::Parser::Result::Test'=> '3.39',
+ 'TAP::Parser::Result::Unknown'=> '3.39',
+ 'TAP::Parser::Result::Version'=> '3.39',
+ 'TAP::Parser::Result::YAML'=> '3.39',
+ 'TAP::Parser::ResultFactory'=> '3.39',
+ 'TAP::Parser::Scheduler'=> '3.39',
+ 'TAP::Parser::Scheduler::Job'=> '3.39',
+ 'TAP::Parser::Scheduler::Spinner'=> '3.39',
+ 'TAP::Parser::Source' => '3.39',
+ 'TAP::Parser::SourceHandler'=> '3.39',
+ 'TAP::Parser::SourceHandler::Executable'=> '3.39',
+ 'TAP::Parser::SourceHandler::File'=> '3.39',
+ 'TAP::Parser::SourceHandler::Handle'=> '3.39',
+ 'TAP::Parser::SourceHandler::Perl'=> '3.39',
+ 'TAP::Parser::SourceHandler::RawTAP'=> '3.39',
+ 'TAP::Parser::YAMLish::Reader'=> '3.39',
+ 'TAP::Parser::YAMLish::Writer'=> '3.39',
+ 'Test::Harness' => '3.39',
+ 'XS::APItest' => '0.89',
+ '_charnames' => '1.45',
+ 'charnames' => '1.45',
+ 'if' => '0.0607',
+ 'mro' => '1.21',
+ 'threads' => '2.16',
+ 'threads::shared' => '1.57',
+ 'version' => '0.9918',
+ 'version::regex' => '0.9918',
+ },
+ removed => {
+ }
+ },
+ 5.022004 => {
+ delta_from => 5.022003,
+ changed => {
+ 'B::Op_private' => '5.022004',
+ 'Config' => '5.022004',
+ 'Module::CoreList' => '5.20170715_22',
+ 'Module::CoreList::TieHashDelta'=> '5.20170715_22',
+ 'Module::CoreList::Utils'=> '5.20170715_22',
+ 'base' => '2.22_01',
+ },
+ removed => {
+ }
+ },
+ 5.024002 => {
+ delta_from => 5.024001,
+ changed => {
+ 'B::Op_private' => '5.024002',
+ 'Config' => '5.024002',
+ 'Module::CoreList' => '5.20170715_24',
+ 'Module::CoreList::TieHashDelta'=> '5.20170715_24',
+ 'Module::CoreList::Utils'=> '5.20170715_24',
+ 'base' => '2.23_01',
+ },
+ removed => {
+ }
+ },
+ 5.027002 => {
+ delta_from => 5.027001,
+ changed => {
+ 'B::Op_private' => '5.027002',
+ 'Carp' => '1.43',
+ 'Carp::Heavy' => '1.43',
+ 'Config' => '5.027002',
+ 'Cwd' => '3.68',
+ 'Encode' => '2.92',
+ 'Encode::Alias' => '2.23',
+ 'Encode::CN::HZ' => '2.09',
+ 'Encode::Encoding' => '2.08',
+ 'Encode::GSM0338' => '2.07',
+ 'Encode::Guess' => '2.07',
+ 'Encode::JP::JIS7' => '2.07',
+ 'Encode::KR::2022_KR' => '2.04',
+ 'Encode::MIME::Header' => '2.27',
+ 'Encode::MIME::Header::ISO_2022_JP'=> '1.09',
+ 'Encode::Unicode' => '2.16',
+ 'Encode::Unicode::UTF7' => '2.10',
+ 'ExtUtils::CBuilder' => '0.280228',
+ 'ExtUtils::CBuilder::Base'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::Unix'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::VMS'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::Windows'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::Windows::BCC'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::Windows::GCC'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::Windows::MSVC'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::aix'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::android'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::cygwin'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::darwin'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::dec_osf'=> '0.280228',
+ 'ExtUtils::CBuilder::Platform::os2'=> '0.280228',
+ 'File::Glob' => '1.29',
+ 'File::Spec' => '3.68',
+ 'File::Spec::AmigaOS' => '3.68',
+ 'File::Spec::Cygwin' => '3.68',
+ 'File::Spec::Epoc' => '3.68',
+ 'File::Spec::Functions' => '3.68',
+ 'File::Spec::Mac' => '3.68',
+ 'File::Spec::OS2' => '3.68',
+ 'File::Spec::Unix' => '3.68',
+ 'File::Spec::VMS' => '3.68',
+ 'File::Spec::Win32' => '3.68',
+ 'List::Util' => '1.48',
+ 'List::Util::XS' => '1.48',
+ 'Math::BigRat' => '0.2613',
+ 'Module::CoreList' => '5.20170720',
+ 'Module::CoreList::TieHashDelta'=> '5.20170720',
+ 'Module::CoreList::Utils'=> '5.20170720',
+ 'Opcode' => '1.40',
+ 'POSIX' => '1.77',
+ 'PerlIO::scalar' => '0.29',
+ 'Scalar::Util' => '1.48',
+ 'Sub::Util' => '1.48',
+ 'Time::HiRes' => '1.9743',
+ 'Time::Piece' => '1.3201',
+ 'Time::Seconds' => '1.3201',
+ 'Unicode' => '10.0.0',
+ 'XS::APItest' => '0.90',
+ 'arybase' => '0.13',
+ 'encoding' => '2.20',
+ 'feature' => '1.49',
+ 're' => '0.35',
+ },
+ removed => {
+ }
+ },
+ 5.027003 => {
+ delta_from => 5.027002,
+ changed => {
+ 'B' => '1.69',
+ 'B::Concise' => '1.001',
+ 'B::Debug' => '1.25',
+ 'B::Deparse' => '1.42',
+ 'B::Op_private' => '5.027003',
+ 'Config' => '5.027003',
+ 'Data::Dumper' => '2.167_02',
+ 'Devel::Peek' => '1.27',
+ 'ExtUtils::Constant' => '0.24',
+ 'ExtUtils::Constant::Base'=> '0.06',
+ 'ExtUtils::Constant::ProxySubs'=> '0.09',
+ 'ExtUtils::Constant::Utils'=> '0.04',
+ 'ExtUtils::ParseXS' => '3.35',
+ 'ExtUtils::ParseXS::Constants'=> '3.35',
+ 'ExtUtils::ParseXS::CountLines'=> '3.35',
+ 'ExtUtils::ParseXS::Eval'=> '3.35',
+ 'ExtUtils::ParseXS::Utilities'=> '3.35',
+ 'ExtUtils::Typemaps' => '3.35',
+ 'ExtUtils::Typemaps::Cmd'=> '3.35',
+ 'ExtUtils::Typemaps::InputMap'=> '3.35',
+ 'ExtUtils::Typemaps::OutputMap'=> '3.35',
+ 'ExtUtils::Typemaps::Type'=> '3.35',
+ 'Filter::Simple' => '0.94',
+ 'Module::CoreList' => '5.20170821',
+ 'Module::CoreList::TieHashDelta'=> '5.20170821',
+ 'Module::CoreList::Utils'=> '5.20170821',
+ 'SelfLoader' => '1.24',
+ 'Storable' => '2.64',
+ 'XS::APItest' => '0.91',
+ 'base' => '2.26',
+ 'threads' => '2.17',
+ 'utf8' => '1.20',
+ },
+ removed => {
+ }
+ },
+ 5.027004 => {
+ delta_from => 5.027003,
+ changed => {
+ 'B::Op_private' => '5.027004',
+ 'Config' => '5.027004',
+ 'File::Glob' => '1.30',
+ 'I18N::Langinfo' => '0.14',
+ 'Module::CoreList' => '5.20170920',
+ 'Module::CoreList::TieHashDelta'=> '5.20170920',
+ 'Module::CoreList::Utils'=> '5.20170920',
+ 'Term::ReadLine' => '1.17',
+ 'VMS::Stdio' => '2.42',
+ 'XS::APItest' => '0.92',
+ 'attributes' => '0.31',
+ 'sort' => '2.03',
+ 'threads' => '2.18',
+ },
+ removed => {
+ }
+ },
+ 5.026001 => {
+ delta_from => 5.026000,
+ changed => {
+ 'B::Op_private' => '5.026001',
+ 'Config' => '5.026001',
+ 'Module::CoreList' => '5.20170922_26',
+ 'Module::CoreList::TieHashDelta'=> '5.20170922_26',
+ 'Module::CoreList::Utils'=> '5.20170922_26',
+ '_charnames' => '1.45',
+ 'base' => '2.26',
+ 'charnames' => '1.45',
+ },
+ removed => {
+ }
+ },
);
sub is_core
@@ -13743,13 +14502,7 @@ sub is_core
return $perl_version <= $final_release;
}
-for my $version (sort { $a <=> $b } keys %delta) {
- my $data = $delta{$version};
-
- tie %{$version{$version}}, 'Module::CoreList::TieHashDelta',
- $data->{changed}, $data->{removed},
- $data->{delta_from} ? $version{$data->{delta_from}} : undef;
-}
+%version = _undelta(\%delta);
%deprecated = (
5.011 => {
@@ -14406,6 +15159,13 @@ for my $version (sort { $a <=> $b } keys %delta) {
removed => {
}
},
+ 5.022003 => {
+ delta_from => 5.022002,
+ changed => {
+ },
+ removed => {
+ }
+ },
5.024001 => {
delta_from => 5.024000,
changed => {
@@ -14413,15 +15173,101 @@ for my $version (sort { $a <=> $b } keys %delta) {
removed => {
}
},
+ 5.025009 => {
+ delta_from => 5.025008,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025010 => {
+ delta_from => 5.025009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025011 => {
+ delta_from => 5.025010,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025012 => {
+ delta_from => 5.025011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.026000 => {
+ delta_from => 5.025012,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027000 => {
+ delta_from => 5.026,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027001 => {
+ delta_from => 5.027,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.022004 => {
+ delta_from => 5.022003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.024002 => {
+ delta_from => 5.024001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027002 => {
+ delta_from => 5.027001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027003 => {
+ delta_from => 5.027002,
+ changed => {
+ 'B::Debug' => '1',
+ },
+ removed => {
+ }
+ },
+ 5.027004 => {
+ delta_from => 5.027003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.026001 => {
+ delta_from => 5.026000,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
-for my $version (sort { $a <=> $b } keys %deprecated) {
- my $data = $deprecated{$version};
-
- tie %{ $deprecated{$version} }, 'Module::CoreList::TieHashDelta',
- $data->{changed}, $data->{removed},
- $data->{delta_from} ? $deprecated{ $data->{delta_from} } : undef;
-}
+%deprecated = _undelta(\%deprecated);
%upstream = (
'App::Cpan' => 'cpan',
@@ -14634,6 +15480,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Math::BigInt::Calc' => 'cpan',
'Math::BigInt::CalcEmu' => 'cpan',
'Math::BigInt::FastCalc'=> 'cpan',
+ 'Math::BigInt::Lib' => 'cpan',
'Math::BigInt::Trace' => 'cpan',
'Math::BigRat' => 'cpan',
'Math::Complex' => 'cpan',
@@ -14650,9 +15497,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Module::Load::Conditional'=> 'cpan',
'Module::Loaded' => 'cpan',
'Module::Metadata' => 'cpan',
- 'Module::Metadata::corpus::BOMTest::UTF16BE'=> 'cpan',
- 'Module::Metadata::corpus::BOMTest::UTF16LE'=> 'cpan',
- 'Module::Metadata::corpus::BOMTest::UTF8'=> 'cpan',
'NEXT' => 'cpan',
'Net::Cmd' => 'cpan',
'Net::Config' => 'cpan',
@@ -14778,11 +15622,47 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'TAP::Parser::YAMLish::Writer'=> 'cpan',
'Term::ANSIColor' => 'cpan',
'Term::Cap' => 'cpan',
+ 'Test2' => 'cpan',
+ 'Test2::API' => 'cpan',
+ 'Test2::API::Breakage' => 'cpan',
+ 'Test2::API::Context' => 'cpan',
+ 'Test2::API::Instance' => 'cpan',
+ 'Test2::API::Stack' => 'cpan',
+ 'Test2::Event' => 'cpan',
+ 'Test2::Event::Bail' => 'cpan',
+ 'Test2::Event::Diag' => 'cpan',
+ 'Test2::Event::Encoding'=> 'cpan',
+ 'Test2::Event::Exception'=> 'cpan',
+ 'Test2::Event::Generic' => 'cpan',
+ 'Test2::Event::Info' => 'cpan',
+ 'Test2::Event::Note' => 'cpan',
+ 'Test2::Event::Ok' => 'cpan',
+ 'Test2::Event::Plan' => 'cpan',
+ 'Test2::Event::Skip' => 'cpan',
+ 'Test2::Event::Subtest' => 'cpan',
+ 'Test2::Event::TAP::Version'=> 'cpan',
+ 'Test2::Event::Waiting' => 'cpan',
+ 'Test2::Formatter' => 'cpan',
+ 'Test2::Formatter::TAP' => 'cpan',
+ 'Test2::Hub' => 'cpan',
+ 'Test2::Hub::Interceptor'=> 'cpan',
+ 'Test2::Hub::Interceptor::Terminator'=> 'cpan',
+ 'Test2::Hub::Subtest' => 'cpan',
+ 'Test2::IPC' => 'cpan',
+ 'Test2::IPC::Driver' => 'cpan',
+ 'Test2::IPC::Driver::Files'=> 'cpan',
+ 'Test2::Tools::Tiny' => 'cpan',
+ 'Test2::Util' => 'cpan',
+ 'Test2::Util::ExternalMeta'=> 'cpan',
+ 'Test2::Util::HashBase' => 'cpan',
+ 'Test2::Util::Trace' => 'cpan',
'Test::Builder' => 'cpan',
+ 'Test::Builder::Formatter'=> 'cpan',
'Test::Builder::IO::Scalar'=> 'cpan',
'Test::Builder::Module' => 'cpan',
'Test::Builder::Tester' => 'cpan',
'Test::Builder::Tester::Color'=> 'cpan',
+ 'Test::Builder::TodoDiag'=> 'cpan',
'Test::Harness' => 'cpan',
'Test::More' => 'cpan',
'Test::Simple' => 'cpan',
@@ -14808,7 +15688,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Unicode::Collate::CJK::Stroke'=> 'cpan',
'Unicode::Collate::CJK::Zhuyin'=> 'cpan',
'Unicode::Collate::Locale'=> 'cpan',
- 'Unicode::Normalize' => 'cpan',
'Win32' => 'cpan',
'Win32API::File' => 'cpan',
'Win32API::File::inc::ExtUtils::Myconst2perl'=> 'cpan',
@@ -15041,6 +15920,7 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Math::BigInt::Calc' => undef,
'Math::BigInt::CalcEmu' => undef,
'Math::BigInt::FastCalc'=> undef,
+ 'Math::BigInt::Lib' => undef,
'Math::BigInt::Trace' => undef,
'Math::BigRat' => undef,
'Math::Complex' => undef,
@@ -15057,9 +15937,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Module::Load::Conditional'=> undef,
'Module::Loaded' => undef,
'Module::Metadata' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Module-Metadata',
- 'Module::Metadata::corpus::BOMTest::UTF16BE'=> undef,
- 'Module::Metadata::corpus::BOMTest::UTF16LE'=> undef,
- 'Module::Metadata::corpus::BOMTest::UTF8'=> undef,
'NEXT' => undef,
'Net::Cmd' => undef,
'Net::Config' => undef,
@@ -15185,11 +16062,47 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'TAP::Parser::YAMLish::Writer'=> 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
'Term::ANSIColor' => 'https://rt.cpan.org/Dist/Display.html?Name=Term-ANSIColor',
'Term::Cap' => undef,
+ 'Test2' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::API' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::API::Breakage' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::API::Context' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::API::Instance' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::API::Stack' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Bail' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Diag' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Encoding'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Exception'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Generic' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Info' => undef,
+ 'Test2::Event::Note' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Ok' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Plan' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Skip' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Subtest' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::TAP::Version'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Event::Waiting' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Formatter' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Formatter::TAP' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Hub' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Hub::Interceptor'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Hub::Interceptor::Terminator'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Hub::Subtest' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::IPC' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::IPC::Driver' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::IPC::Driver::Files'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Tools::Tiny' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Util' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Util::ExternalMeta'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Util::HashBase' => 'http://github.com/Test-More/test-more/issues',
+ 'Test2::Util::Trace' => 'http://github.com/Test-More/test-more/issues',
'Test::Builder' => 'http://github.com/Test-More/test-more/issues',
+ 'Test::Builder::Formatter'=> 'http://github.com/Test-More/test-more/issues',
'Test::Builder::IO::Scalar'=> 'http://github.com/Test-More/test-more/issues',
'Test::Builder::Module' => 'http://github.com/Test-More/test-more/issues',
'Test::Builder::Tester' => 'http://github.com/Test-More/test-more/issues',
'Test::Builder::Tester::Color'=> 'http://github.com/Test-More/test-more/issues',
+ 'Test::Builder::TodoDiag'=> 'http://github.com/Test-More/test-more/issues',
'Test::Harness' => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness',
'Test::More' => 'http://github.com/Test-More/test-more/issues',
'Test::Simple' => 'http://github.com/Test-More/test-more/issues',
@@ -15215,7 +16128,6 @@ for my $version (sort { $a <=> $b } keys %deprecated) {
'Unicode::Collate::CJK::Stroke'=> undef,
'Unicode::Collate::CJK::Zhuyin'=> undef,
'Unicode::Collate::Locale'=> undef,
- 'Unicode::Normalize' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Unicode-Normalize',
'Win32' => undef,
'Win32API::File' => undef,
'Win32API::File::inc::ExtUtils::Myconst2perl'=> undef,
diff --git a/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm b/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
index dedd3ab4995..c3e4bd67bcc 100644
--- a/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
+++ b/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
@@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta;
use strict;
use vars qw($VERSION);
-$VERSION = '5.20170114_24';
+$VERSION = '5.20170922_26';
sub TIEHASH {
my ($class, $changed, $removed, $parent) = @_;
diff --git a/Master/tlpkg/tlperl/lib/Module/CoreList/Utils.pm b/Master/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
index 71edc4f4d07..abcb152c82d 100755
--- a/Master/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
+++ b/Master/tlpkg/tlperl/lib/Module/CoreList/Utils.pm
@@ -4,9 +4,8 @@ use strict;
use warnings;
use vars qw[$VERSION %utilities];
use Module::CoreList;
-use Module::CoreList::TieHashDelta;
-$VERSION = '5.20170114_24';
+$VERSION = '5.20170922_26';
sub utilities {
my $perl = shift;
@@ -1213,6 +1212,13 @@ my %delta = (
removed => {
}
},
+ 5.022003 => {
+ delta_from => 5.022002,
+ changed => {
+ },
+ removed => {
+ }
+ },
5.024001 => {
delta_from => 5.024000,
changed => {
@@ -1220,15 +1226,102 @@ my %delta = (
removed => {
}
},
+ 5.025009 => {
+ delta_from => 5.025008,
+ changed => {
+ },
+ removed => {
+ 'c2ph' => 1,
+ 'pstruct' => 1,
+ }
+ },
+ 5.025010 => {
+ delta_from => 5.025009,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025011 => {
+ delta_from => 5.025010,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.025012 => {
+ delta_from => 5.025011,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.026000 => {
+ delta_from => 5.025012,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027000 => {
+ delta_from => 5.026000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027001 => {
+ delta_from => 5.027000,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.022004 => {
+ delta_from => 5.022003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.024002 => {
+ delta_from => 5.024001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027002 => {
+ delta_from => 5.027001,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027003 => {
+ delta_from => 5.027002,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.027004 => {
+ delta_from => 5.027003,
+ changed => {
+ },
+ removed => {
+ }
+ },
+ 5.026001 => {
+ delta_from => 5.026000,
+ changed => {
+ },
+ removed => {
+ }
+ },
);
-for my $version (sort { $a <=> $b } keys %delta) {
- my $data = $delta{$version};
-
- tie %{$utilities{$version}}, 'Module::CoreList::TieHashDelta',
- $data->{changed}, $data->{removed},
- $data->{delta_from} ? $utilities{$data->{delta_from}} : undef;
-}
+%utilities = Module::CoreList::_undelta(\%delta);
# Create aliases with trailing zeros for $] use
diff --git a/Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm b/Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm
index ace55ad845d..89e22b57207 100644
--- a/Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm
+++ b/Master/tlpkg/tlperl/lib/Module/Load/Conditional.pm
@@ -19,14 +19,15 @@ use constant QUOTE => do { ON_WIN32 ? q["] : q['] };
BEGIN {
use vars qw[ $VERSION @ISA $VERBOSE $CACHE @EXPORT_OK $DEPRECATED
- $FIND_VERSION $ERROR $CHECK_INC_HASH];
+ $FIND_VERSION $ERROR $CHECK_INC_HASH $FORCE_SAFE_INC ];
use Exporter;
@ISA = qw[Exporter];
- $VERSION = '0.64';
+ $VERSION = '0.68';
$VERBOSE = 0;
$DEPRECATED = 0;
$FIND_VERSION = 1;
$CHECK_INC_HASH = 0;
+ $FORCE_SAFE_INC = 0;
@EXPORT_OK = qw[check_install can_load requires];
}
@@ -201,6 +202,8 @@ sub check_install {
### so scan the dirs
unless( $filename ) {
+ local @INC = @INC[0..$#INC-1] if $FORCE_SAFE_INC && $INC[-1] eq '.';
+
DIR: for my $dir ( @INC ) {
my $fh;
@@ -307,6 +310,7 @@ sub check_install {
}
if ( $DEPRECATED and "$]" >= 5.011 ) {
+ local @INC = @INC[0..$#INC-1] if $FORCE_SAFE_INC && $INC[-1] eq '.';
require Module::CoreList;
require Config;
@@ -444,6 +448,8 @@ sub can_load {
if ( $CACHE->{$mod}->{uptodate} ) {
+ local @INC = @INC[0..$#INC-1] if $FORCE_SAFE_INC && $INC[-1] eq '.';
+
if ( $args->{autoload} ) {
my $who = (caller())[0];
eval { autoload_remote $who, $mod };
@@ -509,6 +515,8 @@ sub requires {
return undef;
}
+ local @INC = @INC[0..$#INC-1] if $FORCE_SAFE_INC && $INC[-1] eq '.';
+
my $lib = join " ", map { qq["-I$_"] } @INC;
my $oneliner = 'print(join(qq[\n],map{qq[BONG=$_]}keys(%INC)),qq[\n])';
my $cmd = join '', qq["$^X" $lib -M$who -e], QUOTE, $oneliner, QUOTE;
@@ -562,6 +570,12 @@ you.
The default is 0;
+=head2 $Module::Load::Conditional::FORCE_SAFE_INC
+
+This controls whether C<Module::Load::Conditional> sanitises C<@INC>
+by removing "C<.>". The current default setting is C<0>, but this
+may change in a future release.
+
=head2 $Module::Load::Conditional::CACHE
This holds the cache of the C<can_load> function. If you explicitly
diff --git a/Master/tlpkg/tlperl/lib/Module/Metadata.pm b/Master/tlpkg/tlperl/lib/Module/Metadata.pm
index f7017cf90ff..7f49da6d59a 100644
--- a/Master/tlpkg/tlperl/lib/Module/Metadata.pm
+++ b/Master/tlpkg/tlperl/lib/Module/Metadata.pm
@@ -1,6 +1,6 @@
# -*- mode: cperl; tab-width: 8; indent-tabs-mode: nil; basic-offset: 2 -*-
-# vim:ts=8:sw=2:et:sta:sts=2
-package Module::Metadata; # git description: v1.000030-2-g52f466c
+# vim:ts=8:sw=2:et:sta:sts=2:tw=78
+package Module::Metadata; # git description: v1.000032-7-gb4e8a3f
# ABSTRACT: Gather package and POD information from perl module files
# Adapted from Perl-licensed code originally distributed with
@@ -14,7 +14,7 @@ sub __clean_eval { eval $_[0] }
use strict;
use warnings;
-our $VERSION = '1.000031'; # TRIAL
+our $VERSION = '1.000033';
use Carp qw/croak/;
use File::Spec;
@@ -411,15 +411,29 @@ sub _init {
}
$self->_parse_fh($handle);
+ @{$self->{packages}} = __uniq(@{$self->{packages}});
+
unless($self->{module} and length($self->{module})) {
- my ($v, $d, $f) = File::Spec->splitpath($self->{filename});
- if($f =~ /\.pm$/) {
+ # CAVEAT (possible TODO): .pmc files not treated the same as .pm
+ if ($self->{filename} =~ /\.pm$/) {
+ my ($v, $d, $f) = File::Spec->splitpath($self->{filename});
$f =~ s/\..+$//;
- my @candidates = grep /$f$/, @{$self->{packages}};
- $self->{module} = shift(@candidates); # punt
+ my @candidates = grep /(^|::)$f$/, @{$self->{packages}};
+ $self->{module} = shift(@candidates); # this may be undef
}
else {
- $self->{module} = 'main';
+ # this seems like an atrocious heuristic, albeit marginally better than
+ # what was here before. It should be rewritten entirely to be more like
+ # "if it's not a .pm file, it's not require()able as a name, therefore
+ # name() should be undef."
+ if ((grep /main/, @{$self->{packages}})
+ or (grep /main/, keys %{$self->{versions}})) {
+ $self->{module} = 'main';
+ }
+ else {
+ # TODO: this should maybe default to undef instead
+ $self->{module} = $self->{packages}[0] || '';
+ }
}
}
@@ -440,6 +454,7 @@ sub _do_find_module {
my $testfile = File::Spec->catfile($dir, $file);
return [ File::Spec->rel2abs( $testfile ), $dir ]
if -e $testfile and !-d _; # For stuff like ExtUtils::xsubpp
+ # CAVEAT (possible TODO): .pmc files are not discoverable here
$testfile .= '.pm';
return [ File::Spec->rel2abs( $testfile ), $dir ]
if -e $testfile;
@@ -649,6 +664,12 @@ sub _parse_fh {
$self->{pod_headings} = \@pod;
}
+sub __uniq (@)
+{
+ my (%seen, $key);
+ grep { not $seen{ $key = $_ }++ } @_;
+}
+
{
my $pn = 0;
sub _evaluate_version_line {
@@ -820,7 +841,7 @@ Module::Metadata - Gather package and POD information from perl module files
=head1 VERSION
-version 1.000031
+version 1.000033
=head1 SYNOPSIS
@@ -1037,7 +1058,7 @@ There is also a mailing list available for users of this distribution, at
L<http://lists.perl.org/list/cpan-workers.html>.
There is also an irc channel available for users of this distribution, at
-L<irc://irc.perl.org/#toolchain>.
+L<C<#toolchain> on C<irc.perl.org>|irc://irc.perl.org/#toolchain>.
=head1 AUTHOR
@@ -1049,7 +1070,7 @@ assistance from David Golden (xdg) <dagolden@cpan.org>.
=head1 CONTRIBUTORS
-=for stopwords Karen Etheridge David Golden Vincent Pit Matt S Trout Chris Nehren Graham Knop Olivier Mengué Tomas Doran Tatsuhiko Miyagawa tokuhirom Peter Rabbitson Steve Hay Josh Jore Craig A. Berry Mitchell Steinbrunner Edward Zborowski Gareth Harper James Raspass Jerry D. Hedden 'BinGOs' Williams Kent Fredric
+=for stopwords Karen Etheridge David Golden Vincent Pit Matt S Trout Chris Nehren Graham Knop Olivier Mengué Tomas Doran Tatsuhiko Miyagawa tokuhirom Kent Fredric Peter Rabbitson Steve Hay Jerry D. Hedden Craig A. Berry Mitchell Steinbrunner Edward Zborowski Gareth Harper James Raspass 'BinGOs' Williams Josh Jore
=over 4
@@ -1095,6 +1116,10 @@ tokuhirom <tokuhirom@gmail.com>
=item *
+Kent Fredric <kentnl@cpan.org>
+
+=item *
+
Peter Rabbitson <ribasushi@cpan.org>
=item *
@@ -1103,7 +1128,7 @@ Steve Hay <steve.m.hay@googlemail.com>
=item *
-Josh Jore <jjore@cpan.org>
+Jerry D. Hedden <jdhedden@cpan.org>
=item *
@@ -1111,6 +1136,10 @@ Craig A. Berry <cberry@cpan.org>
=item *
+Craig A. Berry <craigberry@mac.com>
+
+=item *
+
David Mitchell <davem@iabyn.com>
=item *
@@ -1131,15 +1160,11 @@ James Raspass <jraspass@gmail.com>
=item *
-Jerry D. Hedden <jdhedden@cpan.org>
-
-=item *
-
Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
=item *
-Kent Fredric <kentnl@cpan.org>
+Josh Jore <jjore@cpan.org>
=back
diff --git a/Master/tlpkg/tlperl/lib/NEXT.pm b/Master/tlpkg/tlperl/lib/NEXT.pm
index a77bb387433..cb87fb659b0 100644
--- a/Master/tlpkg/tlperl/lib/NEXT.pm
+++ b/Master/tlpkg/tlperl/lib/NEXT.pm
@@ -1,9 +1,12 @@
package NEXT;
-$VERSION = '0.65';
+
use Carp;
use strict;
+use warnings;
use overload ();
+our $VERSION = '0.67';
+
sub NEXT::ELSEWHERE::ancestors
{
my @inlist = shift;
@@ -108,7 +111,8 @@ package NEXT::ACTUAL::DISTINCT; @ISA = 'NEXT'; NEXT::ELSEWHERE::buildAUTOLOAD();
package NEXT::UNSEEN::ACTUAL; @ISA = 'NEXT'; NEXT::ELSEWHERE::buildAUTOLOAD();
package NEXT::DISTINCT::ACTUAL; @ISA = 'NEXT'; NEXT::ELSEWHERE::buildAUTOLOAD();
-package EVERY;
+package
+ EVERY;
sub EVERY::ELSEWHERE::buildAUTOLOAD {
my $autoload_name = caller() . '::AUTOLOAD';
@@ -182,7 +186,8 @@ sub EVERY::ELSEWHERE::buildAUTOLOAD {
}
package EVERY::LAST; @ISA = 'EVERY'; EVERY::ELSEWHERE::buildAUTOLOAD();
-package EVERY; @ISA = 'NEXT'; EVERY::ELSEWHERE::buildAUTOLOAD();
+package
+ EVERY; @ISA = 'NEXT'; EVERY::ELSEWHERE::buildAUTOLOAD();
1;
@@ -190,50 +195,54 @@ __END__
=head1 NAME
-NEXT.pm - Provide a pseudo-class NEXT (et al) that allows method redispatch
-
+NEXT - Provide a pseudo-class NEXT (et al) that allows method redispatch
=head1 SYNOPSIS
use NEXT;
- package A;
- sub A::method { print "$_[0]: A method\n"; $_[0]->NEXT::method() }
- sub A::DESTROY { print "$_[0]: A dtor\n"; $_[0]->NEXT::DESTROY() }
+ package P;
+ sub P::method { print "$_[0]: P method\n"; $_[0]->NEXT::method() }
+ sub P::DESTROY { print "$_[0]: P dtor\n"; $_[0]->NEXT::DESTROY() }
- package B;
- use base qw( A );
- sub B::AUTOLOAD { print "$_[0]: B AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
- sub B::DESTROY { print "$_[0]: B dtor\n"; $_[0]->NEXT::DESTROY() }
+ package Q;
+ use base qw( P );
+ sub Q::AUTOLOAD { print "$_[0]: Q AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
+ sub Q::DESTROY { print "$_[0]: Q dtor\n"; $_[0]->NEXT::DESTROY() }
- package C;
- sub C::method { print "$_[0]: C method\n"; $_[0]->NEXT::method() }
- sub C::AUTOLOAD { print "$_[0]: C AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
- sub C::DESTROY { print "$_[0]: C dtor\n"; $_[0]->NEXT::DESTROY() }
+ package R;
+ sub R::method { print "$_[0]: R method\n"; $_[0]->NEXT::method() }
+ sub R::AUTOLOAD { print "$_[0]: R AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
+ sub R::DESTROY { print "$_[0]: R dtor\n"; $_[0]->NEXT::DESTROY() }
- package D;
- use base qw( B C );
- sub D::method { print "$_[0]: D method\n"; $_[0]->NEXT::method() }
- sub D::AUTOLOAD { print "$_[0]: D AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
- sub D::DESTROY { print "$_[0]: D dtor\n"; $_[0]->NEXT::DESTROY() }
+ package S;
+ use base qw( Q R );
+ sub S::method { print "$_[0]: S method\n"; $_[0]->NEXT::method() }
+ sub S::AUTOLOAD { print "$_[0]: S AUTOLOAD\n"; $_[0]->NEXT::AUTOLOAD() }
+ sub S::DESTROY { print "$_[0]: S dtor\n"; $_[0]->NEXT::DESTROY() }
package main;
- my $obj = bless {}, "D";
+ my $obj = bless {}, "S";
- $obj->method(); # Calls D::method, A::method, C::method
- $obj->missing_method(); # Calls D::AUTOLOAD, B::AUTOLOAD, C::AUTOLOAD
+ $obj->method(); # Calls S::method, P::method, R::method
+ $obj->missing_method(); # Calls S::AUTOLOAD, Q::AUTOLOAD, R::AUTOLOAD
- # Clean-up calls D::DESTROY, B::DESTROY, A::DESTROY, C::DESTROY
+ # Clean-up calls S::DESTROY, Q::DESTROY, P::DESTROY, R::DESTROY
=head1 DESCRIPTION
-NEXT.pm adds a pseudoclass named C<NEXT> to any program
+The C<NEXT> module adds a pseudoclass named C<NEXT> to any program
that uses it. If a method C<m> calls C<$self-E<gt>NEXT::m()>, the call to
C<m> is redispatched as if the calling method had not originally been found.
+B<Note:> before using this module,
+you should look at L<next::method|https://metacpan.org/pod/mro#next::method>
+in the core L<mro> module.
+C<mro> has been a core module since Perl 5.9.5.
+
In other words, a call to C<$self-E<gt>NEXT::m()> resumes the depth-first,
left-to-right search of C<$self>'s class hierarchy that resulted in the
original call to C<m>.
@@ -245,10 +254,10 @@ past the current class -- to look for a suitable method in other
ancestors of C<$self> -- whereas C<$self-E<gt>SUPER::m()> cannot.
A typical use would be in the destructors of a class hierarchy,
-as illustrated in the synopsis above. Each class in the hierarchy
+as illustrated in the SYNOPSIS above. Each class in the hierarchy
has a DESTROY method that performs some class-specific action
and then redispatches the call up the hierarchy. As a result,
-when an object of class D is destroyed, the destructors of I<all>
+when an object of class S is destroyed, the destructors of I<all>
its parent classes are called (in depth-first, left-to-right order).
Another typical use of redispatch would be in C<AUTOLOAD>'ed methods.
@@ -267,7 +276,7 @@ Note that it is a fatal error for any method (including C<AUTOLOAD>)
to attempt to redispatch any method that does not have the
same name. For example:
- sub D::oops { print "oops!\n"; $_[0]->NEXT::other_method() }
+ sub S::oops { print "oops!\n"; $_[0]->NEXT::other_method() }
=head2 Enforcing redispatch
@@ -384,7 +393,7 @@ previous example were rewritten:
E->foo();
then it would print:
-
+
called E::foo
called C::foo
called A::foo
@@ -410,7 +419,7 @@ C<NEXT::UNSEEN> instead of C<NEXT::DISTINCT>.
=head2 Invoking all versions of a method with a single call
-Yet another pseudo-class that NEXT.pm provides is C<EVERY>.
+Yet another pseudo-class that C<NEXT> provides is C<EVERY>.
Its behaviour is considerably simpler than that of the C<NEXT> family.
A call to:
@@ -540,6 +549,11 @@ behaviour simply adds its own C<Init> method (I<not> a C<new> method),
which the call to C<EVERY::LAST::Init> in the inherited constructor
then correctly picks up.
+=head1 SEE ALSO
+
+L<mro>
+(in particular L<next::method|https://metacpan.org/pod/mro#next::method>),
+which has been a core module since Perl 5.9.5.
=head1 AUTHOR
@@ -547,7 +561,7 @@ Damian Conway (damian@conway.org)
=head1 BUGS AND IRRITATIONS
-Because it's a module, not an integral part of the interpreter, NEXT.pm
+Because it's a module, not an integral part of the interpreter, C<NEXT>
has to guess where the surrounding call was found in the method
look-up sequence. In the presence of diamond inheritance patterns
it occasionally guesses wrong.
diff --git a/Master/tlpkg/tlperl/lib/Net/Cmd.pm b/Master/tlpkg/tlperl/lib/Net/Cmd.pm
index 3a5d4d9a547..38054c41247 100644
--- a/Master/tlpkg/tlperl/lib/Net/Cmd.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Cmd.pm
@@ -28,7 +28,7 @@ BEGIN {
}
}
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
our @ISA = qw(Exporter);
our @EXPORT = qw(CMD_INFO CMD_OK CMD_MORE CMD_REJECT CMD_ERROR CMD_PENDING);
@@ -654,10 +654,15 @@ Net::Cmd - Network Command class (as used by FTP, SMTP etc)
=head1 DESCRIPTION
-C<Net::Cmd> is a collection of methods that can be inherited by a sub class
-of C<IO::Handle>. These methods implement the functionality required for a
+C<Net::Cmd> is a collection of methods that can be inherited by a sub-class
+of C<IO::Socket::INET>. These methods implement the functionality required for a
command based protocol, for example FTP and SMTP.
+If your sub-class does not also derive from C<IO::Socket::INET> or similar (e.g.
+C<IO::Socket::IP>, C<IO::Socket::INET6> or C<IO::Socket::SSL>) then you must
+provide the following methods by other means yourself: C<close()> and
+C<timeout()>.
+
=head1 USER METHODS
These methods provide a user interface to the C<Net::Cmd> object.
diff --git a/Master/tlpkg/tlperl/lib/Net/Config.pm b/Master/tlpkg/tlperl/lib/Net/Config.pm
index 3e4ab0a03be..a5935382bc4 100644
--- a/Master/tlpkg/tlperl/lib/Net/Config.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Config.pm
@@ -20,7 +20,7 @@ use Socket qw(inet_aton inet_ntoa);
our @EXPORT = qw(%NetConfig);
our @ISA = qw(Net::LocalCfg Exporter);
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
our($CONFIGURE, $LIBNET_CFG);
diff --git a/Master/tlpkg/tlperl/lib/Net/Domain.pm b/Master/tlpkg/tlperl/lib/Net/Domain.pm
index 53822da103a..796bbaf81f1 100644
--- a/Master/tlpkg/tlperl/lib/Net/Domain.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Domain.pm
@@ -21,7 +21,7 @@ use Net::Config;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(hostname hostdomain hostfqdn domainname);
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
my ($host, $domain, $fqdn) = (undef, undef, undef);
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP.pm b/Master/tlpkg/tlperl/lib/Net/FTP.pm
index f3beb2511c5..905d83019cb 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP.pm
@@ -25,7 +25,7 @@ use Net::Config;
use Socket;
use Time::Local;
-our $VERSION = '3.08_01';
+our $VERSION = '3.10';
our $IOCLASS;
my $family_key;
@@ -45,7 +45,7 @@ BEGIN {
my $inet6_class = eval {
require IO::Socket::IP;
no warnings 'numeric';
- IO::Socket::IP->VERSION(0.20);
+ IO::Socket::IP->VERSION(0.25);
} && 'IO::Socket::IP' || eval {
require IO::Socket::INET6;
no warnings 'numeric';
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/A.pm b/Master/tlpkg/tlperl/lib/Net/FTP/A.pm
index cdbd7680e50..c889687b158 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/A.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/A.pm
@@ -13,7 +13,7 @@ use Carp;
use Net::FTP::dataconn;
our @ISA = qw(Net::FTP::dataconn);
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
our $buf;
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/E.pm b/Master/tlpkg/tlperl/lib/Net/FTP/E.pm
index d3cb8207fb7..8ebec64345d 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/E.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/E.pm
@@ -8,6 +8,6 @@ use warnings;
use Net::FTP::I;
our @ISA = qw(Net::FTP::I);
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
1;
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/I.pm b/Master/tlpkg/tlperl/lib/Net/FTP/I.pm
index 3bd1c0fbe41..b55002f8d60 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/I.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/I.pm
@@ -13,7 +13,7 @@ use Carp;
use Net::FTP::dataconn;
our @ISA = qw(Net::FTP::dataconn);
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
our $buf;
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/L.pm b/Master/tlpkg/tlperl/lib/Net/FTP/L.pm
index 630db0d0a8b..e4ab31efd74 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/L.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/L.pm
@@ -8,6 +8,6 @@ use warnings;
use Net::FTP::I;
our @ISA = qw(Net::FTP::I);
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
1;
diff --git a/Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm b/Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
index ba0891bdfcd..6f5d8b3108d 100644
--- a/Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
+++ b/Master/tlpkg/tlperl/lib/Net/FTP/dataconn.pm
@@ -13,7 +13,7 @@ use Carp;
use Errno;
use Net::Cmd;
-our $VERSION = '3.08_01';
+our $VERSION = '3.10';
$Net::FTP::IOCLASS or die "please load Net::FTP before Net::FTP::dataconn";
our @ISA = $Net::FTP::IOCLASS;
diff --git a/Master/tlpkg/tlperl/lib/Net/NNTP.pm b/Master/tlpkg/tlperl/lib/Net/NNTP.pm
index 675b1e6a5c1..764d5805634 100644
--- a/Master/tlpkg/tlperl/lib/Net/NNTP.pm
+++ b/Master/tlpkg/tlperl/lib/Net/NNTP.pm
@@ -21,7 +21,7 @@ use Net::Cmd;
use Net::Config;
use Time::Local;
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
# Code for detecting if we can use SSL
my $ssl_class = eval {
@@ -39,7 +39,7 @@ my $family_key = 'Domain';
my $inet6_class = eval {
require IO::Socket::IP;
no warnings 'numeric';
- IO::Socket::IP->VERSION(0.20) || die;
+ IO::Socket::IP->VERSION(0.25) || die;
$family_key = 'Family';
} && 'IO::Socket::IP' || eval {
require IO::Socket::INET6;
@@ -845,10 +845,10 @@ NNTP server, a value of zero will cause all IO operations to block.
B<Debug> - Enable the printing of debugging information to STDERR
B<Reader> - If the remote server is INN then initially the connection
-will be to nnrpd, by default C<Net::NNTP> will issue a C<MODE READER> command
-so that the remote server becomes innd. If the C<Reader> option is given
+will be to innd, by default C<Net::NNTP> will issue a C<MODE READER> command
+so that the remote server becomes nnrpd. If the C<Reader> option is given
with a value of zero, then this command will not be sent and the
-connection will be left talking to nnrpd.
+connection will be left talking to innd.
B<LocalAddr> and B<LocalPort> - These parameters are passed directly
to IO::Socket to allow binding the socket to a specific local address and port.
diff --git a/Master/tlpkg/tlperl/lib/Net/Netrc.pm b/Master/tlpkg/tlperl/lib/Net/Netrc.pm
index ba60ae6904e..c075e1433cc 100644
--- a/Master/tlpkg/tlperl/lib/Net/Netrc.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Netrc.pm
@@ -18,7 +18,7 @@ use warnings;
use Carp;
use FileHandle;
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
our $TESTING;
diff --git a/Master/tlpkg/tlperl/lib/Net/POP3.pm b/Master/tlpkg/tlperl/lib/Net/POP3.pm
index ab8121e6581..bb18aafec34 100644
--- a/Master/tlpkg/tlperl/lib/Net/POP3.pm
+++ b/Master/tlpkg/tlperl/lib/Net/POP3.pm
@@ -20,7 +20,7 @@ use IO::Socket;
use Net::Cmd;
use Net::Config;
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
# Code for detecting if we can use SSL
my $ssl_class = eval {
@@ -38,7 +38,7 @@ my $family_key = 'Domain';
my $inet6_class = eval {
require IO::Socket::IP;
no warnings 'numeric';
- IO::Socket::IP->VERSION(0.20) || die;
+ IO::Socket::IP->VERSION(0.25) || die;
$family_key = 'Family';
} && 'IO::Socket::IP' || eval {
require IO::Socket::INET6;
diff --git a/Master/tlpkg/tlperl/lib/Net/Ping.pm b/Master/tlpkg/tlperl/lib/Net/Ping.pm
index 86b0dfd3f51..13cbe81b6ad 100644
--- a/Master/tlpkg/tlperl/lib/Net/Ping.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Ping.pm
@@ -4,32 +4,48 @@ require 5.002;
require Exporter;
use strict;
-use vars qw(@ISA @EXPORT $VERSION
- $def_timeout $def_proto $def_factor
+use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION
+ $def_timeout $def_proto $def_factor $def_family
$max_datasize $pingstring $hires $source_verify $syn_forking);
use Fcntl qw( F_GETFL F_SETFL O_NONBLOCK );
-use Socket qw( SOCK_DGRAM SOCK_STREAM SOCK_RAW PF_INET SOL_SOCKET SO_ERROR IPPROTO_IP IP_TOS IP_TTL
- inet_aton getnameinfo NI_NUMERICHOST sockaddr_in );
-use POSIX qw( ENOTCONN ECONNREFUSED ECONNRESET EINPROGRESS EWOULDBLOCK EAGAIN WNOHANG );
+use Socket qw( SOCK_DGRAM SOCK_STREAM SOCK_RAW AF_INET PF_INET IPPROTO_TCP
+ SOL_SOCKET SO_ERROR SO_BROADCAST
+ IPPROTO_IP IP_TOS IP_TTL
+ inet_ntoa inet_aton getnameinfo NI_NUMERICHOST sockaddr_in );
+use POSIX qw( ENOTCONN ECONNREFUSED ECONNRESET EINPROGRESS EWOULDBLOCK EAGAIN
+ WNOHANG );
use FileHandle;
use Carp;
use Time::HiRes;
@ISA = qw(Exporter);
@EXPORT = qw(pingecho);
-$VERSION = "2.43_01";
+@EXPORT_OK = qw(wakeonlan);
+$VERSION = "2.55";
-# Constants
+# Globals
$def_timeout = 5; # Default timeout to wait for a reply
$def_proto = "tcp"; # Default protocol to use for pinging
$def_factor = 1.2; # Default exponential backoff rate.
+$def_family = AF_INET; # Default family.
$max_datasize = 1024; # Maximum data bytes in a packet
# The data we exchange with the server for the stream protocol
$pingstring = "pingschwingping!\n";
$source_verify = 1; # Default is to verify source endpoint
$syn_forking = 0;
+# Constants
+
+my $AF_INET6 = eval { Socket::AF_INET6() };
+my $AF_UNSPEC = eval { Socket::AF_UNSPEC() };
+my $AI_NUMERICHOST = eval { Socket::AI_NUMERICHOST() };
+my $NI_NUMERICHOST = eval { Socket::NI_NUMERICHOST() };
+my $IPPROTO_IPV6 = eval { Socket::IPPROTO_IPV6() };
+#my $IPV6_HOPLIMIT = eval { Socket::IPV6_HOPLIMIT() }; # ping6 -h 0-255
+my $qr_family = qr/^(?:(?:(:?ip)?v?(?:4|6))|${\AF_INET}|$AF_INET6)$/;
+my $qr_family4 = qr/^(?:(?:(:?ip)?v?4)|${\AF_INET})$/;
+
if ($^O =~ /Win32/i) {
# Hack to avoid this Win32 spewage:
# Your vendor has not defined POSIX macro ECONNREFUSED
@@ -50,10 +66,6 @@ if ($^O =~ /Win32/i) {
# $syn_forking = 1; # XXX possibly useful in < Win2K ?
};
-# h2ph "asm/socket.h"
-# require "asm/socket.ph";
-sub SO_BINDTODEVICE {25;}
-
# Description: The pingecho() subroutine is provided for backward
# compatibility with the original Net::Ping. It accepts a host
# name/IP and an optional timeout in seconds. Create a tcp ping
@@ -86,6 +98,7 @@ sub new
$device, # Optional device to use
$tos, # Optional ToS to set
$ttl, # Optional TTL to set
+ $family, # Optional address family (AF_INET)
) = @_;
my $class = ref($this) || $this;
my $self = {};
@@ -94,148 +107,229 @@ sub new
);
bless($self, $class);
+ if (ref $proto eq 'HASH') { # support named args
+ for my $k (qw(proto timeout data_size device tos ttl family
+ gateway host port bind retrans pingstring source_verify
+ econnrefused dontfrag
+ IPV6_USE_MIN_MTU IPV6_RECVPATHMTU IPV6_HOPLIMIT))
+ {
+ if (exists $proto->{$k}) {
+ $self->{$k} = $proto->{$k};
+ # some are still globals
+ if ($k eq 'pingstring') { $pingstring = $proto->{$k} }
+ if ($k eq 'source_verify') { $source_verify = $proto->{$k} }
+ delete $proto->{$k};
+ }
+ }
+ if (%$proto) {
+ croak("Invalid named argument: ",join(" ",keys (%$proto)));
+ }
+ $proto = $self->{'proto'};
+ }
$proto = $def_proto unless $proto; # Determine the protocol
- croak('Protocol for ping must be "icmp", "udp", "tcp", "syn", "stream", or "external"')
- unless $proto =~ m/^(icmp|udp|tcp|syn|stream|external)$/;
- $self->{"proto"} = $proto;
+ croak('Protocol for ping must be "icmp", "icmpv6", "udp", "tcp", "syn", "stream" or "external"')
+ unless $proto =~ m/^(icmp|icmpv6|udp|tcp|syn|stream|external)$/;
+ $self->{proto} = $proto;
$timeout = $def_timeout unless $timeout; # Determine the timeout
croak("Default timeout for ping must be greater than 0 seconds")
if $timeout <= 0;
- $self->{"timeout"} = $timeout;
+ $self->{timeout} = $timeout;
- $self->{"device"} = $device;
+ $self->{device} = $device;
- $self->{"tos"} = $tos;
+ $self->{tos} = $tos;
+
+ if ($self->{'host'}) {
+ my $host = $self->{'host'};
+ my $ip = _resolv($host)
+ or croak("could not resolve host $host");
+ $self->{host} = $ip;
+ $self->{family} = $ip->{family};
+ }
- if ($self->{"proto"} eq 'icmp') {
+ if ($self->{bind}) {
+ my $addr = $self->{bind};
+ my $ip = _resolv($addr)
+ or croak("could not resolve local addr $addr");
+ $self->{local_addr} = $ip;
+ } else {
+ $self->{local_addr} = undef; # Don't bind by default
+ }
+
+ if ($self->{proto} eq 'icmp') {
croak('TTL must be from 0 to 255')
if ($ttl && ($ttl < 0 || $ttl > 255));
- $self->{"ttl"} = $ttl;
+ $self->{ttl} = $ttl;
+ }
+
+ if ($family) {
+ if ($family =~ $qr_family) {
+ if ($family =~ $qr_family4) {
+ $self->{family} = AF_INET;
+ } else {
+ $self->{family} = $AF_INET6;
+ }
+ } else {
+ croak('Family must be "ipv4" or "ipv6"')
+ }
+ } else {
+ $self->{family} = $def_family;
}
$min_datasize = ($proto eq "udp") ? 1 : 0; # Determine data size
$data_size = $min_datasize unless defined($data_size) && $proto ne "tcp";
croak("Data for ping must be from $min_datasize to $max_datasize bytes")
if ($data_size < $min_datasize) || ($data_size > $max_datasize);
- $data_size-- if $self->{"proto"} eq "udp"; # We provide the first byte
- $self->{"data_size"} = $data_size;
+ $data_size-- if $self->{proto} eq "udp"; # We provide the first byte
+ $self->{data_size} = $data_size;
- $self->{"data"} = ""; # Construct data bytes
- for ($cnt = 0; $cnt < $self->{"data_size"}; $cnt++)
+ $self->{data} = ""; # Construct data bytes
+ for ($cnt = 0; $cnt < $self->{data_size}; $cnt++)
{
- $self->{"data"} .= chr($cnt % 256);
+ $self->{data} .= chr($cnt % 256);
}
- $self->{"local_addr"} = undef; # Don't bind by default
- $self->{"retrans"} = $def_factor; # Default exponential backoff rate
- $self->{"econnrefused"} = undef; # Default Connection refused behavior
+ # Default exponential backoff rate
+ $self->{retrans} = $def_factor unless exists $self->{retrans};
+ # Default Connection refused behavior
+ $self->{econnrefused} = undef unless exists $self->{econnrefused};
- $self->{"seq"} = 0; # For counting packets
- if ($self->{"proto"} eq "udp") # Open a socket
+ $self->{seq} = 0; # For counting packets
+ if ($self->{proto} eq "udp") # Open a socket
{
- $self->{"proto_num"} = eval { (getprotobyname('udp'))[2] } ||
+ $self->{proto_num} = eval { (getprotobyname('udp'))[2] } ||
croak("Can't udp protocol by name");
- $self->{"port_num"} = (getservbyname('echo', 'udp'))[2] ||
- croak("Can't get udp echo port by name");
- $self->{"fh"} = FileHandle->new();
- socket($self->{"fh"}, PF_INET, SOCK_DGRAM,
- $self->{"proto_num"}) ||
+ $self->{port_num} = $self->{port}
+ || (getservbyname('echo', 'udp'))[2]
+ || croak("Can't get udp echo port by name");
+ $self->{fh} = FileHandle->new();
+ socket($self->{fh}, PF_INET, SOCK_DGRAM,
+ $self->{proto_num}) ||
croak("udp socket error - $!");
- if ($self->{'device'}) {
- setsockopt($self->{"fh"}, SOL_SOCKET, SO_BINDTODEVICE(), pack("Z*", $self->{'device'}))
- or croak "error binding to device $self->{'device'} $!";
- }
- if ($self->{'tos'}) {
- setsockopt($self->{"fh"}, IPPROTO_IP, IP_TOS, pack("I*", $self->{'tos'}))
- or croak "error configuring tos to $self->{'tos'} $!";
- }
+ $self->_setopts();
}
- elsif ($self->{"proto"} eq "icmp")
+ elsif ($self->{proto} eq "icmp")
{
- croak("icmp ping requires root privilege") if ($> and $^O ne 'VMS' and $^O ne 'cygwin');
- $self->{"proto_num"} = eval { (getprotobyname('icmp'))[2] } ||
+ croak("icmp ping requires root privilege") if !_isroot();
+ $self->{proto_num} = eval { (getprotobyname('icmp'))[2] } ||
croak("Can't get icmp protocol by name");
- $self->{"pid"} = $$ & 0xffff; # Save lower 16 bits of pid
- $self->{"fh"} = FileHandle->new();
- socket($self->{"fh"}, PF_INET, SOCK_RAW, $self->{"proto_num"}) ||
+ $self->{pid} = $$ & 0xffff; # Save lower 16 bits of pid
+ $self->{fh} = FileHandle->new();
+ socket($self->{fh}, PF_INET, SOCK_RAW, $self->{proto_num}) ||
+ croak("icmp socket error - $!");
+ $self->_setopts();
+ if ($self->{'ttl'}) {
+ setsockopt($self->{fh}, IPPROTO_IP, IP_TTL, pack("I*", $self->{'ttl'}))
+ or croak "error configuring ttl to $self->{'ttl'} $!";
+ }
+ }
+ elsif ($self->{proto} eq "icmpv6")
+ {
+ croak("icmpv6 ping requires root privilege") if !_isroot();
+ croak("Wrong family $self->{family} for icmpv6 protocol")
+ if $self->{family} and $self->{family} != $AF_INET6;
+ $self->{family} = $AF_INET6;
+ $self->{proto_num} = eval { (getprotobyname('ipv6-icmp'))[2] } ||
+ croak("Can't get ipv6-icmp protocol by name"); # 58
+ $self->{pid} = $$ & 0xffff; # Save lower 16 bits of pid
+ $self->{fh} = FileHandle->new();
+ socket($self->{fh}, $AF_INET6, SOCK_RAW, $self->{proto_num}) ||
croak("icmp socket error - $!");
- if ($self->{'device'}) {
- setsockopt($self->{"fh"}, SOL_SOCKET, SO_BINDTODEVICE(), pack("Z*", $self->{'device'}))
- or croak "error binding to device $self->{'device'} $!";
+ $self->_setopts();
+ if ($self->{'gateway'}) {
+ my $g = $self->{gateway};
+ my $ip = _resolv($g)
+ or croak("nonexistent gateway $g");
+ $self->{family} eq $AF_INET6
+ or croak("gateway requires the AF_INET6 family");
+ $ip->{family} eq $AF_INET6
+ or croak("gateway address needs to be IPv6");
+ my $IPV6_NEXTHOP = eval { Socket::IPV6_NEXTHOP() } || 48; # IPV6_3542NEXTHOP, or 21
+ setsockopt($self->{fh}, $IPPROTO_IPV6, $IPV6_NEXTHOP, _pack_sockaddr_in($ip))
+ or croak "error configuring gateway to $g NEXTHOP $!";
+ }
+ if (exists $self->{IPV6_USE_MIN_MTU}) {
+ my $IPV6_USE_MIN_MTU = eval { Socket::IPV6_USE_MIN_MTU() } || 42;
+ setsockopt($self->{fh}, $IPPROTO_IPV6, $IPV6_USE_MIN_MTU,
+ pack("I*", $self->{'IPV6_USE_MIN_MT'}))
+ or croak "error configuring IPV6_USE_MIN_MT} $!";
+ }
+ if (exists $self->{IPV6_RECVPATHMTU}) {
+ my $IPV6_RECVPATHMTU = eval { Socket::IPV6_RECVPATHMTU() } || 43;
+ setsockopt($self->{fh}, $IPPROTO_IPV6, $IPV6_RECVPATHMTU,
+ pack("I*", $self->{'RECVPATHMTU'}))
+ or croak "error configuring IPV6_RECVPATHMTU $!";
}
if ($self->{'tos'}) {
- setsockopt($self->{"fh"}, IPPROTO_IP, IP_TOS, pack("I*", $self->{'tos'}))
+ my $proto = $self->{family} == AF_INET ? IPPROTO_IP : $IPPROTO_IPV6;
+ setsockopt($self->{fh}, $proto, IP_TOS, pack("I*", $self->{'tos'}))
or croak "error configuring tos to $self->{'tos'} $!";
}
if ($self->{'ttl'}) {
- setsockopt($self->{"fh"}, IPPROTO_IP, IP_TTL, pack("I*", $self->{'ttl'}))
+ my $proto = $self->{family} == AF_INET ? IPPROTO_IP : $IPPROTO_IPV6;
+ setsockopt($self->{fh}, $proto, IP_TTL, pack("I*", $self->{'ttl'}))
or croak "error configuring ttl to $self->{'ttl'} $!";
}
}
- elsif ($self->{"proto"} eq "tcp" || $self->{"proto"} eq "stream")
+ elsif ($self->{proto} eq "tcp" || $self->{proto} eq "stream")
{
- $self->{"proto_num"} = eval { (getprotobyname('tcp'))[2] } ||
+ $self->{proto_num} = eval { (getprotobyname('tcp'))[2] } ||
croak("Can't get tcp protocol by name");
- $self->{"port_num"} = (getservbyname('echo', 'tcp'))[2] ||
- croak("Can't get tcp echo port by name");
- $self->{"fh"} = FileHandle->new();
+ $self->{port_num} = $self->{port}
+ || (getservbyname('echo', 'tcp'))[2]
+ || croak("Can't get tcp echo port by name");
+ $self->{fh} = FileHandle->new();
}
- elsif ($self->{"proto"} eq "syn")
+ elsif ($self->{proto} eq "syn")
{
- $self->{"proto_num"} = eval { (getprotobyname('tcp'))[2] } ||
+ $self->{proto_num} = eval { (getprotobyname('tcp'))[2] } ||
croak("Can't get tcp protocol by name");
- $self->{"port_num"} = (getservbyname('echo', 'tcp'))[2] ||
+ $self->{port_num} = (getservbyname('echo', 'tcp'))[2] ||
croak("Can't get tcp echo port by name");
if ($syn_forking) {
- $self->{"fork_rd"} = FileHandle->new();
- $self->{"fork_wr"} = FileHandle->new();
- pipe($self->{"fork_rd"}, $self->{"fork_wr"});
- $self->{"fh"} = FileHandle->new();
- $self->{"good"} = {};
- $self->{"bad"} = {};
+ $self->{fork_rd} = FileHandle->new();
+ $self->{fork_wr} = FileHandle->new();
+ pipe($self->{fork_rd}, $self->{fork_wr});
+ $self->{fh} = FileHandle->new();
+ $self->{good} = {};
+ $self->{bad} = {};
} else {
- $self->{"wbits"} = "";
- $self->{"bad"} = {};
+ $self->{wbits} = "";
+ $self->{bad} = {};
}
- $self->{"syn"} = {};
- $self->{"stop_time"} = 0;
- }
- elsif ($self->{"proto"} eq "external")
- {
- # No preliminary work needs to be done.
+ $self->{syn} = {};
+ $self->{stop_time} = 0;
}
return($self);
}
# Description: Set the local IP address from which pings will be sent.
-# For ICMP and UDP pings, this calls bind() on the already-opened socket;
-# for TCP pings, just saves the address to be used when the socket is
-# opened. Returns non-zero if successful; croaks on error.
+# For ICMP, UDP and TCP pings, just saves the address to be used when
+# the socket is opened. Returns non-zero if successful; croaks on error.
sub bind
{
my ($self,
$local_addr # Name or IP number of local interface
) = @_;
- my ($ip # Packed IP number of $local_addr
+ my ($ip, # Hash of addr (string), addr_in (packed), family
+ $h # resolved hash
);
croak("Usage: \$p->bind(\$local_addr)") unless @_ == 2;
- croak("already bound") if defined($self->{"local_addr"}) &&
- ($self->{"proto"} eq "udp" || $self->{"proto"} eq "icmp");
+ croak("already bound") if defined($self->{local_addr}) &&
+ ($self->{proto} eq "udp" || $self->{proto} eq "icmp");
- $ip = inet_aton($local_addr);
+ $ip = $self->_resolv($local_addr);
croak("nonexistent local address $local_addr") unless defined($ip);
- $self->{"local_addr"} = $ip; # Only used if proto is tcp
+ $self->{local_addr} = $ip;
- if ($self->{"proto"} eq "udp" || $self->{"proto"} eq "icmp")
- {
- CORE::bind($self->{"fh"}, sockaddr_in(0, $ip)) ||
- croak("$self->{'proto'} bind error - $!");
- }
- elsif (($self->{"proto"} ne "tcp") && ($self->{"proto"} ne "syn"))
+ if (($self->{proto} ne "udp") &&
+ ($self->{proto} ne "icmp") &&
+ ($self->{proto} ne "tcp") &&
+ ($self->{proto} ne "syn"))
{
croak("Unknown protocol \"$self->{proto}\" in bind()");
}
@@ -291,8 +385,8 @@ sub source_verify
sub service_check
{
my $self = shift;
- $self->{"econnrefused"} = 1 unless defined
- ($self->{"econnrefused"} = shift());
+ $self->{econnrefused} = 1 unless defined
+ ($self->{econnrefused} = shift());
}
sub tcp_service_check
@@ -307,7 +401,95 @@ sub tcp_service_check
sub retrans
{
my $self = shift;
- $self->{"retrans"} = shift;
+ $self->{retrans} = shift;
+}
+
+sub _IsAdminUser {
+ return unless $^O eq 'MSWin32' or $^O eq "cygwin";
+ return unless eval { require Win32 };
+ return unless defined &Win32::IsAdminUser;
+ return Win32::IsAdminUser();
+}
+
+sub _isroot {
+ if (($> and $^O ne 'VMS' and $^O ne 'cygwin')
+ or (($^O eq 'MSWin32' or $^O eq 'cygwin')
+ and !_IsAdminUser())
+ or ($^O eq 'VMS'
+ and (`write sys\$output f\$privilege("SYSPRV")` =~ m/FALSE/))) {
+ return 0;
+ }
+ else {
+ return 1;
+ }
+}
+
+# Description: Sets ipv6 reachability
+# REACHCONF was removed in RFC3542, ping6 -R supports it. requires root.
+
+sub IPV6_REACHCONF
+{
+ my $self = shift;
+ my $on = shift;
+ if ($on) {
+ my $reachconf = eval { Socket::IPV6_REACHCONF() };
+ if (!$reachconf) {
+ carp "IPV6_REACHCONF not supported on this platform";
+ return 0;
+ }
+ if (!_isroot()) {
+ carp "IPV6_REACHCONF requires root permissions";
+ return 0;
+ }
+ $self->{IPV6_REACHCONF} = 1;
+ }
+ else {
+ return $self->{IPV6_REACHCONF};
+ }
+}
+
+# Description: set it on or off.
+
+sub IPV6_USE_MIN_MTU
+{
+ my $self = shift;
+ my $on = shift;
+ if (defined $on) {
+ my $IPV6_USE_MIN_MTU = eval { Socket::IPV6_USE_MIN_MTU() } || 43;
+ #if (!$IPV6_USE_MIN_MTU) {
+ # carp "IPV6_USE_MIN_MTU not supported on this platform";
+ # return 0;
+ #}
+ $self->{IPV6_USE_MIN_MTU} = $on ? 1 : 0;
+ setsockopt($self->{fh}, $IPPROTO_IPV6, $IPV6_USE_MIN_MTU,
+ pack("I*", $self->{'IPV6_USE_MIN_MT'}))
+ or croak "error configuring IPV6_USE_MIN_MT} $!";
+ }
+ else {
+ return $self->{IPV6_USE_MIN_MTU};
+ }
+}
+
+# Description: notify an according MTU
+
+sub IPV6_RECVPATHMTU
+{
+ my $self = shift;
+ my $on = shift;
+ if ($on) {
+ my $IPV6_RECVPATHMTU = eval { Socket::IPV6_RECVPATHMTU() } || 43;
+ #if (!$RECVPATHMTU) {
+ # carp "IPV6_RECVPATHMTU not supported on this platform";
+ # return 0;
+ #}
+ $self->{IPV6_RECVPATHMTU} = 1;
+ setsockopt($self->{fh}, $IPPROTO_IPV6, $IPV6_RECVPATHMTU,
+ pack("I*", $self->{'IPV6_RECVPATHMTU'}))
+ or croak "error configuring IPV6_RECVPATHMTU} $!";
+ }
+ else {
+ return $self->{IPV6_RECVPATHMTU};
+ }
}
# Description: allows the module to use milliseconds as returned by
@@ -364,37 +546,56 @@ sub ping
my ($self,
$host, # Name or IP number of host to ping
$timeout, # Seconds after which ping times out
+ $family, # Address family
) = @_;
- my ($ip, # Packed IP number of $host
+ my ($ip, # Hash of addr (string), addr_in (packed), family
$ret, # The return value
$ping_time, # When ping began
);
- croak("Usage: \$p->ping(\$host [, \$timeout])") unless @_ == 2 || @_ == 3;
- $timeout = $self->{"timeout"} unless $timeout;
+ $host = $self->{host} if !defined $host and $self->{host};
+ croak("Usage: \$p->ping([ \$host [, \$timeout [, \$family]]])") if @_ > 4 or !$host;
+ $timeout = $self->{timeout} unless $timeout;
croak("Timeout must be greater than 0 seconds") if $timeout <= 0;
- $ip = inet_aton($host);
+ if ($family) {
+ if ($family =~ $qr_family) {
+ if ($family =~ $qr_family4) {
+ $self->{family_local} = AF_INET;
+ } else {
+ $self->{family_local} = $AF_INET6;
+ }
+ } else {
+ croak('Family must be "ipv4" or "ipv6"')
+ }
+ } else {
+ $self->{family_local} = $self->{family};
+ }
+
+ $ip = $self->_resolv($host);
return () unless defined($ip); # Does host exist?
# Dispatch to the appropriate routine.
$ping_time = &time();
- if ($self->{"proto"} eq "external") {
+ if ($self->{proto} eq "external") {
$ret = $self->ping_external($ip, $timeout);
}
- elsif ($self->{"proto"} eq "udp") {
+ elsif ($self->{proto} eq "udp") {
$ret = $self->ping_udp($ip, $timeout);
}
- elsif ($self->{"proto"} eq "icmp") {
+ elsif ($self->{proto} eq "icmp") {
$ret = $self->ping_icmp($ip, $timeout);
}
- elsif ($self->{"proto"} eq "tcp") {
+ elsif ($self->{proto} eq "icmpv6") {
+ $ret = $self->ping_icmpv6($ip, $timeout);
+ }
+ elsif ($self->{proto} eq "tcp") {
$ret = $self->ping_tcp($ip, $timeout);
}
- elsif ($self->{"proto"} eq "stream") {
+ elsif ($self->{proto} eq "stream") {
$ret = $self->ping_stream($ip, $timeout);
}
- elsif ($self->{"proto"} eq "syn") {
+ elsif ($self->{proto} eq "syn") {
$ret = $self->ping_syn($host, $ip, $ping_time, $ping_time+$timeout);
} else {
croak("Unknown protocol \"$self->{proto}\" in ping()");
@@ -406,33 +607,44 @@ sub ping
# Uses Net::Ping::External to do an external ping.
sub ping_external {
my ($self,
- $ip, # Packed IP number of the host
- $timeout # Seconds after which ping times out
+ $ip, # Hash of addr (string), addr_in (packed), family
+ $timeout, # Seconds after which ping times out
+ $family
) = @_;
- eval {
- local @INC = @INC;
- pop @INC if $INC[-1] eq '.';
- require Net::Ping::External;
- }
+ $ip = $self->{host} if !defined $ip and $self->{host};
+ $timeout = $self->{timeout} if !defined $timeout and $self->{timeout};
+ my @addr = exists $ip->{addr_in}
+ ? ('ip' => $ip->{addr_in})
+ : ('host' => $ip->{host});
+
+ eval { require Net::Ping::External; }
or croak('Protocol "external" not supported on your system: Net::Ping::External not found');
- return Net::Ping::External::ping(ip => $ip, timeout => $timeout);
+ return Net::Ping::External::ping(@addr, timeout => $timeout,
+ family => $family);
}
+# h2ph "asm/socket.h"
+# require "asm/socket.ph";
+use constant SO_BINDTODEVICE => 25;
use constant ICMP_ECHOREPLY => 0; # ICMP packet types
+use constant ICMPv6_ECHOREPLY => 129; # ICMP packet types
use constant ICMP_UNREACHABLE => 3; # ICMP packet types
+use constant ICMPv6_UNREACHABLE => 1; # ICMP packet types
use constant ICMP_ECHO => 8;
+use constant ICMPv6_ECHO => 128;
use constant ICMP_TIME_EXCEEDED => 11; # ICMP packet types
use constant ICMP_PARAMETER_PROBLEM => 12; # ICMP packet types
use constant ICMP_STRUCT => "C2 n3 A"; # Structure of a minimal ICMP packet
use constant SUBCODE => 0; # No ICMP subcode for ECHO and ECHOREPLY
use constant ICMP_FLAGS => 0; # No special flags for send or recv
use constant ICMP_PORT => 0; # No port with ICMP
+use constant IP_MTU_DISCOVER => 10; # linux only
sub ping_icmp
{
my ($self,
- $ip, # Packed IP number of the host
+ $ip, # Hash of addr (string), addr_in (packed), family
$timeout # Seconds after which ping times out
) = @_;
@@ -457,22 +669,47 @@ sub ping_icmp
$from_msg # ICMP message
);
- $self->{"seq"} = ($self->{"seq"} + 1) % 65536; # Increment sequence
+ $ip = $self->{host} if !defined $ip and $self->{host};
+ $timeout = $self->{timeout} if !defined $timeout and $self->{timeout};
+
+ socket($self->{fh}, $ip->{family}, SOCK_RAW, $self->{proto_num}) ||
+ croak("icmp socket error - $!");
+
+ if (defined $self->{local_addr} &&
+ !CORE::bind($self->{fh}, _pack_sockaddr_in(0, $self->{local_addr}))) {
+ croak("icmp bind error - $!");
+ }
+ $self->_setopts();
+
+ $self->{seq} = ($self->{seq} + 1) % 65536; # Increment sequence
$checksum = 0; # No checksum for starters
- $msg = pack(ICMP_STRUCT . $self->{"data_size"}, ICMP_ECHO, SUBCODE,
- $checksum, $self->{"pid"}, $self->{"seq"}, $self->{"data"});
+ if ($ip->{family} == AF_INET) {
+ $msg = pack(ICMP_STRUCT . $self->{data_size}, ICMP_ECHO, SUBCODE,
+ $checksum, $self->{pid}, $self->{seq}, $self->{data});
+ } else {
+ # how to get SRC
+ my $pseudo_header = pack('a16a16Nnn', $ip->{addr_in}, $ip->{addr_in}, 8+length($self->{data}), "\0", 0x003a);
+ $msg = pack(ICMP_STRUCT . $self->{data_size}, ICMPv6_ECHO, SUBCODE,
+ $checksum, $self->{pid}, $self->{seq}, $self->{data});
+ $msg = $pseudo_header.$msg
+ }
$checksum = Net::Ping->checksum($msg);
- $msg = pack(ICMP_STRUCT . $self->{"data_size"}, ICMP_ECHO, SUBCODE,
- $checksum, $self->{"pid"}, $self->{"seq"}, $self->{"data"});
+ if ($ip->{family} == AF_INET) {
+ $msg = pack(ICMP_STRUCT . $self->{data_size}, ICMP_ECHO, SUBCODE,
+ $checksum, $self->{pid}, $self->{seq}, $self->{data});
+ } else {
+ $msg = pack(ICMP_STRUCT . $self->{data_size}, ICMPv6_ECHO, SUBCODE,
+ $checksum, $self->{pid}, $self->{seq}, $self->{data});
+ }
$len_msg = length($msg);
- $saddr = sockaddr_in(ICMP_PORT, $ip);
- $self->{"from_ip"} = undef;
- $self->{"from_type"} = undef;
- $self->{"from_subcode"} = undef;
- send($self->{"fh"}, $msg, ICMP_FLAGS, $saddr); # Send the message
+ $saddr = _pack_sockaddr_in(ICMP_PORT, $ip);
+ $self->{from_ip} = undef;
+ $self->{from_type} = undef;
+ $self->{from_subcode} = undef;
+ send($self->{fh}, $msg, ICMP_FLAGS, $saddr); # Send the message
$rbits = "";
- vec($rbits, $self->{"fh"}->fileno(), 1) = 1;
+ vec($rbits, $self->{fh}->fileno(), 1) = 1;
$ret = 0;
$done = 0;
$finish_time = &time() + $timeout; # Must be done by this time
@@ -490,26 +727,29 @@ sub ping_icmp
$recv_msg = "";
$from_pid = -1;
$from_seq = -1;
- $from_saddr = recv($self->{"fh"}, $recv_msg, 1500, ICMP_FLAGS);
- ($from_port, $from_ip) = sockaddr_in($from_saddr);
+ $from_saddr = recv($self->{fh}, $recv_msg, 1500, ICMP_FLAGS);
+ ($from_port, $from_ip) = _unpack_sockaddr_in($from_saddr, $ip->{family});
($from_type, $from_subcode) = unpack("C2", substr($recv_msg, 20, 2));
if ($from_type == ICMP_ECHOREPLY) {
($from_pid, $from_seq) = unpack("n3", substr($recv_msg, 24, 4))
if length $recv_msg >= 28;
+ } elsif ($from_type == ICMPv6_ECHOREPLY) {
+ ($from_pid, $from_seq) = unpack("n3", substr($recv_msg, 24, 4))
+ if length $recv_msg >= 28;
} else {
($from_pid, $from_seq) = unpack("n3", substr($recv_msg, 52, 4))
if length $recv_msg >= 56;
}
- $self->{"from_ip"} = $from_ip;
- $self->{"from_type"} = $from_type;
- $self->{"from_subcode"} = $from_subcode;
- next if ($from_pid != $self->{"pid"});
- next if ($from_seq != $self->{"seq"});
+ $self->{from_ip} = $from_ip;
+ $self->{from_type} = $from_type;
+ $self->{from_subcode} = $from_subcode;
+ next if ($from_pid != $self->{pid});
+ next if ($from_seq != $self->{seq});
if (! $source_verify || ($self->ntop($from_ip) eq $self->ntop($ip))) { # Does the packet check out?
- if ($from_type == ICMP_ECHOREPLY) {
+ if (($from_type == ICMP_ECHOREPLY) || ($from_type == ICMPv6_ECHOREPLY)) {
$ret = 1;
- $done = 1;
- } elsif ($from_type == ICMP_UNREACHABLE) {
+ $done = 1;
+ } elsif (($from_type == ICMP_UNREACHABLE) || ($from_type == ICMPv6_UNREACHABLE)) {
$done = 1;
} elsif ($from_type == ICMP_TIME_EXCEEDED) {
$ret = 0;
@@ -523,11 +763,16 @@ sub ping_icmp
return $ret;
}
+sub ping_icmpv6
+{
+ shift->ping_icmp(@_);
+}
+
sub icmp_result {
my ($self) = @_;
- my $ip = $self->{"from_ip"} || "";
- $ip = "\0\0\0\0" unless 4 == length $ip;
- return ($self->ntop($ip),($self->{"from_type"} || 0), ($self->{"from_subcode"} || 0));
+ my $addr = $self->{from_ip} || "";
+ $addr = "\0\0\0\0" unless 4 == length $addr;
+ return ($self->ntop($addr),($self->{from_type} || 0), ($self->{from_subcode} || 0));
}
# Description: Do a checksum on the message. Basically sum all of
@@ -570,64 +815,63 @@ sub checksum
sub ping_tcp
{
my ($self,
- $ip, # Packed IP number of the host
+ $ip, # Hash of addr (string), addr_in (packed), family
$timeout # Seconds after which ping times out
) = @_;
my ($ret # The return value
);
+ $ip = $self->{host} if !defined $ip and $self->{host};
+ $timeout = $self->{timeout} if !defined $timeout and $self->{timeout};
+
$! = 0;
$ret = $self -> tcp_connect( $ip, $timeout);
- if (!$self->{"econnrefused"} &&
+ if (!$self->{econnrefused} &&
$! == ECONNREFUSED) {
$ret = 1; # "Connection refused" means reachable
}
- $self->{"fh"}->close();
+ $self->{fh}->close();
return $ret;
}
sub tcp_connect
{
my ($self,
- $ip, # Packed IP number of the host
+ $ip, # Hash of addr (string), addr_in (packed), family
$timeout # Seconds after which connect times out
) = @_;
my ($saddr); # Packed IP and Port
- $saddr = sockaddr_in($self->{"port_num"}, $ip);
+ $ip = $self->{host} if !defined $ip and $self->{host};
+ $timeout = $self->{timeout} if !defined $timeout and $self->{timeout};
+
+ $saddr = _pack_sockaddr_in($self->{port_num}, $ip);
my $ret = 0; # Default to unreachable
my $do_socket = sub {
- socket($self->{"fh"}, PF_INET, SOCK_STREAM, $self->{"proto_num"}) ||
+ socket($self->{fh}, $ip->{family}, SOCK_STREAM, $self->{proto_num}) ||
croak("tcp socket error - $!");
- if (defined $self->{"local_addr"} &&
- !CORE::bind($self->{"fh"}, sockaddr_in(0, $self->{"local_addr"}))) {
+ if (defined $self->{local_addr} &&
+ !CORE::bind($self->{fh}, _pack_sockaddr_in(0, $self->{local_addr}))) {
croak("tcp bind error - $!");
}
- if ($self->{'device'}) {
- setsockopt($self->{"fh"}, SOL_SOCKET, SO_BINDTODEVICE(), pack("Z*", $self->{'device'}))
- or croak("error binding to device $self->{'device'} $!");
- }
- if ($self->{'tos'}) {
- setsockopt($self->{"fh"}, IPPROTO_IP, IP_TOS, pack("I*", $self->{'tos'}))
- or croak "error configuring tos to $self->{'tos'} $!";
- }
+ $self->_setopts();
};
my $do_connect = sub {
- $self->{"ip"} = $ip;
+ $self->{ip} = $ip->{addr_in};
# ECONNREFUSED is 10061 on MSWin32. If we pass it as child error through $?,
# we'll get (10061 & 255) = 77, so we cannot check it in the parent process.
- return ($ret = connect($self->{"fh"}, $saddr) || ($! == ECONNREFUSED && !$self->{"econnrefused"}));
+ return ($ret = connect($self->{fh}, $saddr) || ($! == ECONNREFUSED && !$self->{econnrefused}));
};
my $do_connect_nb = sub {
# Set O_NONBLOCK property on filehandle
- $self->socket_blocking_mode($self->{"fh"}, 0);
+ $self->socket_blocking_mode($self->{fh}, 0);
# start the connection attempt
- if (!connect($self->{"fh"}, $saddr)) {
+ if (!connect($self->{fh}, $saddr)) {
if ($! == ECONNREFUSED) {
- $ret = 1 unless $self->{"econnrefused"};
+ $ret = 1 unless $self->{econnrefused};
} elsif ($! != EINPROGRESS && ($^O ne 'MSWin32' || $! != EWOULDBLOCK)) {
# EINPROGRESS is the expected error code after a connect()
# on a non-blocking socket. But if the kernel immediately
@@ -641,7 +885,7 @@ sub tcp_connect
# Just wait for connection completion...
my ($wbits, $wout, $wexc);
$wout = $wexc = $wbits = "";
- vec($wbits, $self->{"fh"}->fileno, 1) = 1;
+ vec($wbits, $self->{fh}->fileno, 1) = 1;
my $nfound = mselect(undef,
($wout = $wbits),
@@ -649,12 +893,12 @@ sub tcp_connect
$timeout);
warn("select: $!") unless defined $nfound;
- if ($nfound && vec($wout, $self->{"fh"}->fileno, 1)) {
+ if ($nfound && vec($wout, $self->{fh}->fileno, 1)) {
# the socket is ready for writing so the connection
# attempt completed. test whether the connection
# attempt was successful or not
- if (getpeername($self->{"fh"})) {
+ if (getpeername($self->{fh})) {
# Connection established to remote host
$ret = 1;
} else {
@@ -663,10 +907,10 @@ sub tcp_connect
# This should set $! to the correct error.
my $char;
- sysread($self->{"fh"},$char,1);
+ sysread($self->{fh},$char,1);
$! = ECONNREFUSED if ($! == EAGAIN && $^O =~ /cygwin/i);
- $ret = 1 if (!$self->{"econnrefused"}
+ $ret = 1 if (!$self->{econnrefused}
&& $! == ECONNREFUSED);
}
} else {
@@ -677,8 +921,8 @@ sub tcp_connect
# winsock reports ECONNREFUSED as an exception, and we
# need to fetch the socket-level error code via getsockopt()
# instead of using the thread-level error code that is in $!.
- if ($nfound && vec($wexc, $self->{"fh"}->fileno, 1)) {
- $! = unpack("i", getsockopt($self->{"fh"}, SOL_SOCKET,
+ if ($nfound && vec($wexc, $self->{fh}->fileno, 1)) {
+ $! = unpack("i", getsockopt($self->{fh}, SOL_SOCKET,
SO_ERROR));
}
}
@@ -690,8 +934,8 @@ sub tcp_connect
}
# Unset O_NONBLOCK property on filehandle
- $self->socket_blocking_mode($self->{"fh"}, 1);
- $self->{"ip"} = $ip;
+ $self->socket_blocking_mode($self->{fh}, 1);
+ $self->{ip} = $ip->{addr_in};
return $ret;
};
@@ -715,7 +959,7 @@ sub tcp_connect
# Try a slow blocking connect() call
# and report the status to the parent.
if ( &{ $do_connect }() ) {
- $self->{"fh"}->close();
+ $self->{fh}->close();
# No error
exit 0;
} else {
@@ -740,7 +984,7 @@ sub tcp_connect
} while &time() < $patience && $child != $self->{'tcp_chld'};
if ($child == $self->{'tcp_chld'}) {
- if ($self->{"proto"} eq "stream") {
+ if ($self->{proto} eq "stream") {
# We need the socket connected here, in parent
# Should be safe to connect because the child finished
# within the timeout
@@ -784,9 +1028,10 @@ sub DESTROY {
# back. It returns 1 on success, 0 on failure.
sub tcp_echo
{
- my $self = shift;
- my $timeout = shift;
- my $pingstring = shift;
+ my ($self, $timeout, $pingstring) = @_;
+
+ $timeout = $self->{timeout} if !defined $timeout and $self->{timeout};
+ $pingstring = $self->{pingstring} if !defined $pingstring and $self->{pingstring};
my $ret = undef;
my $time = &time();
@@ -796,18 +1041,18 @@ sub tcp_echo
eval <<'EOM';
do {
my $rin = "";
- vec($rin, $self->{"fh"}->fileno(), 1) = 1;
+ vec($rin, $self->{fh}->fileno(), 1) = 1;
my $rout = undef;
if($wrstr) {
$rout = "";
- vec($rout, $self->{"fh"}->fileno(), 1) = 1;
+ vec($rout, $self->{fh}->fileno(), 1) = 1;
}
if(mselect($rin, $rout, undef, ($time + $timeout) - &time())) {
- if($rout && vec($rout,$self->{"fh"}->fileno(),1)) {
- my $num = syswrite($self->{"fh"}, $wrstr, length $wrstr);
+ if($rout && vec($rout,$self->{fh}->fileno(),1)) {
+ my $num = syswrite($self->{fh}, $wrstr, length $wrstr);
if($num) {
# If it was a partial write, update and try again.
$wrstr = substr($wrstr,$num);
@@ -817,9 +1062,9 @@ sub tcp_echo
}
}
- if(vec($rin,$self->{"fh"}->fileno(),1)) {
+ if(vec($rin,$self->{fh}->fileno(),1)) {
my $reply;
- if(sysread($self->{"fh"},$reply,length($pingstring)-length($rdstr))) {
+ if(sysread($self->{fh},$reply,length($pingstring)-length($rdstr))) {
$rdstr .= $reply;
$ret = 1 if $rdstr eq $pingstring;
} else {
@@ -835,9 +1080,6 @@ EOM
return $ret;
}
-
-
-
# Description: Perform a stream ping. If the tcp connection isn't
# already open, it opens it. It then sends some data and waits for
# a reply. It leaves the stream open on exit.
@@ -845,17 +1087,17 @@ EOM
sub ping_stream
{
my ($self,
- $ip, # Packed IP number of the host
+ $ip, # Hash of addr (string), addr_in (packed), family
$timeout # Seconds after which ping times out
) = @_;
# Open the stream if it's not already open
- if(!defined $self->{"fh"}->fileno()) {
+ if(!defined $self->{fh}->fileno()) {
$self->tcp_connect($ip, $timeout) or return 0;
}
croak "tried to switch servers while stream pinging"
- if $self->{"ip"} ne $ip;
+ if $self->{ip} ne $ip->{addr_in};
return $self->tcp_echo($timeout, $pingstring);
}
@@ -867,15 +1109,31 @@ sub open
{
my ($self,
$host, # Host or IP address
- $timeout # Seconds after which open times out
+ $timeout, # Seconds after which open times out
+ $family
) = @_;
+ my $ip; # Hash of addr (string), addr_in (packed), family
+ $host = $self->{host} unless defined $host;
- my ($ip); # Packed IP number of the host
- $ip = inet_aton($host);
- $timeout = $self->{"timeout"} unless $timeout;
+ if ($family) {
+ if ($family =~ $qr_family) {
+ if ($family =~ $qr_family4) {
+ $self->{family_local} = AF_INET;
+ } else {
+ $self->{family_local} = $AF_INET6;
+ }
+ } else {
+ croak('Family must be "ipv4" or "ipv6"')
+ }
+ } else {
+ $self->{family_local} = $self->{family};
+ }
+
+ $ip = $self->_resolv($host);
+ $timeout = $self->{timeout} unless $timeout;
- if($self->{"proto"} eq "stream") {
- if(defined($self->{"fh"}->fileno())) {
+ if($self->{proto} eq "stream") {
+ if(defined($self->{fh}->fileno())) {
croak("socket is already open");
} else {
$self->tcp_connect($ip, $timeout);
@@ -883,6 +1141,43 @@ sub open
}
}
+sub _dontfrag {
+ my $self = shift;
+ # bsd solaris
+ my $IP_DONTFRAG = eval { Socket::IP_DONTFRAG() };
+ if ($IP_DONTFRAG) {
+ my $i = 1;
+ setsockopt($self->{fh}, IPPROTO_IP, $IP_DONTFRAG, pack("I*", $i))
+ or croak "error configuring IP_DONTFRAG $!";
+ # Linux needs more: Path MTU Discovery as defined in RFC 1191
+ # For non SOCK_STREAM sockets it is the user's responsibility to packetize
+ # the data in MTU sized chunks and to do the retransmits if necessary.
+ # The kernel will reject packets that are bigger than the known path
+ # MTU if this flag is set (with EMSGSIZE).
+ if ($^O eq 'linux') {
+ my $i = 2; # IP_PMTUDISC_DO
+ setsockopt($self->{fh}, IPPROTO_IP, IP_MTU_DISCOVER, pack("I*", $i))
+ or croak "error configuring IP_MTU_DISCOVER $!";
+ }
+ }
+}
+
+# SO_BINDTODEVICE + IP_TOS
+sub _setopts {
+ my $self = shift;
+ if ($self->{'device'}) {
+ setsockopt($self->{fh}, SOL_SOCKET, SO_BINDTODEVICE, pack("Z*", $self->{'device'}))
+ or croak "error binding to device $self->{'device'} $!";
+ }
+ if ($self->{'tos'}) { # need to re-apply ToS (RT #6706)
+ setsockopt($self->{fh}, IPPROTO_IP, IP_TOS, pack("I*", $self->{'tos'}))
+ or croak "error applying tos to $self->{'tos'} $!";
+ }
+ if ($self->{'dontfrag'}) {
+ $self->_dontfrag;
+ }
+}
+
# Description: Perform a udp echo ping. Construct a message of
# at least the one-byte sequence number and any additional data bytes.
@@ -895,7 +1190,7 @@ use constant UDP_FLAGS => 0; # Nothing special on send or recv
sub ping_udp
{
my ($self,
- $ip, # Packed IP number of the host
+ $ip, # Hash of addr (string), addr_in (packed), family
$timeout # Seconds after which ping times out
) = @_;
@@ -914,12 +1209,23 @@ sub ping_udp
$from_ip # Packed IP number of sender
);
- $saddr = sockaddr_in($self->{"port_num"}, $ip);
- $self->{"seq"} = ($self->{"seq"} + 1) % 256; # Increment sequence
- $msg = chr($self->{"seq"}) . $self->{"data"}; # Add data if any
+ $saddr = _pack_sockaddr_in($self->{port_num}, $ip);
+ $self->{seq} = ($self->{seq} + 1) % 256; # Increment sequence
+ $msg = chr($self->{seq}) . $self->{data}; # Add data if any
+
+ socket($self->{fh}, $ip->{family}, SOCK_DGRAM,
+ $self->{proto_num}) ||
+ croak("udp socket error - $!");
+
+ if (defined $self->{local_addr} &&
+ !CORE::bind($self->{fh}, _pack_sockaddr_in(0, $self->{local_addr}))) {
+ croak("udp bind error - $!");
+ }
+
+ $self->_setopts();
- if ($self->{"connected"}) {
- if ($self->{"connected"} ne $saddr) {
+ if ($self->{connected}) {
+ if ($self->{connected} ne $saddr) {
# Still connected to wrong destination.
# Need to flush out the old one.
$flush = 1;
@@ -938,23 +1244,24 @@ sub ping_udp
if ($flush) {
# Need to socket() again to flush the descriptor
# This will disconnect from the old saddr.
- socket($self->{"fh"}, PF_INET, SOCK_DGRAM,
- $self->{"proto_num"});
+ socket($self->{fh}, $ip->{family}, SOCK_DGRAM,
+ $self->{proto_num});
+ $self->_setopts();
}
# Connect the socket if it isn't already connected
# to the right destination.
if ($flush || $connect) {
- connect($self->{"fh"}, $saddr); # Tie destination to socket
- $self->{"connected"} = $saddr;
+ connect($self->{fh}, $saddr); # Tie destination to socket
+ $self->{connected} = $saddr;
}
- send($self->{"fh"}, $msg, UDP_FLAGS); # Send it
+ send($self->{fh}, $msg, UDP_FLAGS); # Send it
$rbits = "";
- vec($rbits, $self->{"fh"}->fileno(), 1) = 1;
+ vec($rbits, $self->{fh}->fileno(), 1) = 1;
$ret = 0; # Default to unreachable
$done = 0;
my $retrans = 0.01;
- my $factor = $self->{"retrans"};
+ my $factor = $self->{retrans};
$finish_time = &time() + $timeout; # Ping needs to be done by then
while (!$done && $timeout > 0)
{
@@ -975,10 +1282,10 @@ sub ping_udp
elsif ($nfound) # A packet is waiting
{
$from_msg = "";
- $from_saddr = recv($self->{"fh"}, $from_msg, 1500, UDP_FLAGS);
+ $from_saddr = recv($self->{fh}, $from_msg, 1500, UDP_FLAGS);
if (!$from_saddr) {
# For example an unreachable host will make recv() fail.
- if (!$self->{"econnrefused"} &&
+ if (!$self->{econnrefused} &&
($! == ECONNREFUSED ||
$! == ECONNRESET)) {
# "Connection refused" means reachable
@@ -987,10 +1294,10 @@ sub ping_udp
}
$done = 1;
} else {
- ($from_port, $from_ip) = sockaddr_in($from_saddr);
+ ($from_port, $from_ip) = _unpack_sockaddr_in($from_saddr, $ip->{family});
if (!$source_verify ||
(($from_ip eq $ip) && # Does the packet check out?
- ($from_port == $self->{"port_num"}) &&
+ ($from_port == $self->{port_num}) &&
($from_msg eq $msg)))
{
$ret = 1; # It's a winner
@@ -1005,12 +1312,12 @@ sub ping_udp
else
{
# Send another in case the last one dropped
- if (send($self->{"fh"}, $msg, UDP_FLAGS)) {
+ if (send($self->{fh}, $msg, UDP_FLAGS)) {
# Another send worked? The previous udp packet
# must have gotten lost or is still in transit.
# Hopefully this new packet will arrive safely.
} else {
- if (!$self->{"econnrefused"} &&
+ if (!$self->{econnrefused} &&
$! == ECONNREFUSED) {
# "Connection refused" means reachable
# Good, continue
@@ -1037,26 +1344,19 @@ sub ping_syn
}
my $fh = FileHandle->new();
- my $saddr = sockaddr_in($self->{"port_num"}, $ip);
+ my $saddr = _pack_sockaddr_in($self->{port_num}, $ip);
# Create TCP socket
- if (!socket ($fh, PF_INET, SOCK_STREAM, $self->{"proto_num"})) {
+ if (!socket ($fh, $ip->{family}, SOCK_STREAM, $self->{proto_num})) {
croak("tcp socket error - $!");
}
- if (defined $self->{"local_addr"} &&
- !CORE::bind($fh, sockaddr_in(0, $self->{"local_addr"}))) {
+ if (defined $self->{local_addr} &&
+ !CORE::bind($fh, _pack_sockaddr_in(0, $self->{local_addr}))) {
croak("tcp bind error - $!");
}
- if ($self->{'device'}) {
- setsockopt($fh, SOL_SOCKET, SO_BINDTODEVICE(), pack("Z*", $self->{'device'}))
- or croak("error binding to device $self->{'device'} $!");
- }
- if ($self->{'tos'}) {
- setsockopt($fh, IPPROTO_IP, IP_TOS, pack("I*", $self->{'tos'}))
- or croak "error configuring tos to $self->{'tos'} $!";
- }
+ $self->_setopts();
# Set O_NONBLOCK property on filehandle
$self->socket_blocking_mode($fh, 0);
@@ -1075,16 +1375,16 @@ sub ping_syn
} else {
# Just save the error and continue on.
# The ack() can check the status later.
- $self->{"bad"}->{$host} = $!;
+ $self->{bad}->{$host} = $!;
}
}
my $entry = [ $host, $ip, $fh, $start_time, $stop_time ];
- $self->{"syn"}->{$fh->fileno} = $entry;
- if ($self->{"stop_time"} < $stop_time) {
- $self->{"stop_time"} = $stop_time;
+ $self->{syn}->{$fh->fileno} = $entry;
+ if ($self->{stop_time} < $stop_time) {
+ $self->{stop_time} = $stop_time;
}
- vec($self->{"wbits"}, $fh->fileno, 1) = 1;
+ vec($self->{wbits}, $fh->fileno, 1) = 1;
return 1;
}
@@ -1100,42 +1400,35 @@ sub ping_syn_fork {
if ($pid) {
# Parent process
my $entry = [ $host, $ip, $pid, $start_time, $stop_time ];
- $self->{"syn"}->{$pid} = $entry;
- if ($self->{"stop_time"} < $stop_time) {
- $self->{"stop_time"} = $stop_time;
+ $self->{syn}->{$pid} = $entry;
+ if ($self->{stop_time} < $stop_time) {
+ $self->{stop_time} = $stop_time;
}
} else {
# Child process
- my $saddr = sockaddr_in($self->{"port_num"}, $ip);
+ my $saddr = _pack_sockaddr_in($self->{port_num}, $ip);
# Create TCP socket
- if (!socket ($self->{"fh"}, PF_INET, SOCK_STREAM, $self->{"proto_num"})) {
+ if (!socket ($self->{fh}, $ip->{family}, SOCK_STREAM, $self->{proto_num})) {
croak("tcp socket error - $!");
}
- if (defined $self->{"local_addr"} &&
- !CORE::bind($self->{"fh"}, sockaddr_in(0, $self->{"local_addr"}))) {
+ if (defined $self->{local_addr} &&
+ !CORE::bind($self->{fh}, _pack_sockaddr_in(0, $self->{local_addr}))) {
croak("tcp bind error - $!");
}
- if ($self->{'device'}) {
- setsockopt($self->{"fh"}, SOL_SOCKET, SO_BINDTODEVICE(), pack("Z*", $self->{'device'}))
- or croak("error binding to device $self->{'device'} $!");
- }
- if ($self->{'tos'}) {
- setsockopt($self->{"fh"}, IPPROTO_IP, IP_TOS, pack("I*", $self->{'tos'}))
- or croak "error configuring tos to $self->{'tos'} $!";
- }
+ $self->_setopts();
$!=0;
# Try to connect (could take a long time)
- connect($self->{"fh"}, $saddr);
+ connect($self->{fh}, $saddr);
# Notify parent of connect error status
my $err = $!+0;
my $wrstr = "$$ $err";
# Force to 16 chars including \n
$wrstr .= " "x(15 - length $wrstr). "\n";
- syswrite($self->{"fork_wr"}, $wrstr, length $wrstr);
+ syswrite($self->{fork_wr}, $wrstr, length $wrstr);
exit;
}
} else {
@@ -1152,20 +1445,21 @@ sub ack
{
my $self = shift;
- if ($self->{"proto"} eq "syn") {
+ if ($self->{proto} eq "syn") {
if ($syn_forking) {
my @answer = $self->ack_unfork(shift);
return wantarray ? @answer : $answer[0];
}
my $wbits = "";
my $stop_time = 0;
- if (my $host = shift) {
- # Host passed as arg
- if (exists $self->{"bad"}->{$host}) {
- if (!$self->{"econnrefused"} &&
- $self->{"bad"}->{ $host } &&
+ if (my $host = shift or $self->{host}) {
+ # Host passed as arg or as option to new
+ $host = $self->{host} unless defined $host;
+ if (exists $self->{bad}->{$host}) {
+ if (!$self->{econnrefused} &&
+ $self->{bad}->{ $host } &&
(($! = ECONNREFUSED)>0) &&
- $self->{"bad"}->{ $host } eq "$!") {
+ $self->{bad}->{ $host } eq "$!") {
# "Connection refused" means reachable
# Good, continue
} else {
@@ -1174,8 +1468,8 @@ sub ack
}
}
my $host_fd = undef;
- foreach my $fd (keys %{ $self->{"syn"} }) {
- my $entry = $self->{"syn"}->{$fd};
+ foreach my $fd (keys %{ $self->{syn} }) {
+ my $entry = $self->{syn}->{$fd};
if ($entry->[0] eq $host) {
$host_fd = $fd;
$stop_time = $entry->[4]
@@ -1189,9 +1483,9 @@ sub ack
} else {
# No $host passed so scan all hosts
# Use the latest stop_time
- $stop_time = $self->{"stop_time"};
+ $stop_time = $self->{stop_time};
# Use all the bits
- $wbits = $self->{"wbits"};
+ $wbits = $self->{wbits};
}
while ($wbits !~ /^\0*\z/) {
@@ -1207,8 +1501,8 @@ sub ack
if (vec($wout, $fd, 1)) {
# Wipe it from future scanning.
vec($wout, $fd, 1) = 0;
- if (my $entry = $self->{"syn"}->{$fd}) {
- if ($self->{"bad"}->{ $entry->[0] }) {
+ if (my $entry = $self->{syn}->{$fd}) {
+ if ($self->{bad}->{ $entry->[0] }) {
$winner_fd = $fd;
last;
}
@@ -1229,15 +1523,15 @@ sub ack
$fd++;
}
}
- if (my $entry = $self->{"syn"}->{$fd}) {
+ if (my $entry = $self->{syn}->{$fd}) {
# Wipe it from future scanning.
- delete $self->{"syn"}->{$fd};
- vec($self->{"wbits"}, $fd, 1) = 0;
+ delete $self->{syn}->{$fd};
+ vec($self->{wbits}, $fd, 1) = 0;
vec($wbits, $fd, 1) = 0;
- if (!$self->{"econnrefused"} &&
- $self->{"bad"}->{ $entry->[0] } &&
+ if (!$self->{econnrefused} &&
+ $self->{bad}->{ $entry->[0] } &&
(($! = ECONNREFUSED)>0) &&
- $self->{"bad"}->{ $entry->[0] } eq "$!") {
+ $self->{bad}->{ $entry->[0] } eq "$!") {
# "Connection refused" means reachable
# Good, continue
} elsif (getpeername($entry->[2])) {
@@ -1251,8 +1545,8 @@ sub ack
my $char;
sysread($entry->[2],$char,1);
# Store the excuse why the connection failed.
- $self->{"bad"}->{$entry->[0]} = $!;
- if (!$self->{"econnrefused"} &&
+ $self->{bad}->{$entry->[0]} = $!;
+ if (!$self->{econnrefused} &&
(($! == ECONNREFUSED) ||
($! == EAGAIN && $^O =~ /cygwin/i))) {
# "Connection refused" means reachable
@@ -1269,23 +1563,23 @@ sub ack
} else {
warn "Corrupted SYN entry: unknown fd [$fd] ready!";
vec($wbits, $fd, 1) = 0;
- vec($self->{"wbits"}, $fd, 1) = 0;
+ vec($self->{wbits}, $fd, 1) = 0;
}
} elsif (defined $nfound) {
# Timed out waiting for ACK
- foreach my $fd (keys %{ $self->{"syn"} }) {
+ foreach my $fd (keys %{ $self->{syn} }) {
if (vec($wbits, $fd, 1)) {
- my $entry = $self->{"syn"}->{$fd};
- $self->{"bad"}->{$entry->[0]} = "Timed out";
+ my $entry = $self->{syn}->{$fd};
+ $self->{bad}->{$entry->[0]} = "Timed out";
vec($wbits, $fd, 1) = 0;
- vec($self->{"wbits"}, $fd, 1) = 0;
- delete $self->{"syn"}->{$fd};
+ vec($self->{wbits}, $fd, 1) = 0;
+ delete $self->{syn}->{$fd};
}
}
} else {
# Weird error occurred with select()
warn("select: $!");
- $self->{"syn"} = {};
+ $self->{syn} = {};
$wbits = "";
}
}
@@ -1295,11 +1589,11 @@ sub ack
sub ack_unfork {
my ($self,$host) = @_;
- my $stop_time = $self->{"stop_time"};
+ my $stop_time = $self->{stop_time};
if ($host) {
# Host passed as arg
- if (my $entry = $self->{"good"}->{$host}) {
- delete $self->{"good"}->{$host};
+ if (my $entry = $self->{good}->{$host}) {
+ delete $self->{good}->{$host};
return ($entry->[0], &time() - $entry->[3], $self->ntop($entry->[1]));
}
}
@@ -1307,9 +1601,9 @@ sub ack_unfork {
my $rbits = "";
my $timeout;
- if (keys %{ $self->{"syn"} }) {
+ if (keys %{ $self->{syn} }) {
# Scan all hosts that are left
- vec($rbits, fileno($self->{"fork_rd"}), 1) = 1;
+ vec($rbits, fileno($self->{fork_rd}), 1) = 1;
$timeout = $stop_time - &time();
# Force a minimum of 10 ms timeout.
$timeout = 0.01 if $timeout < 0.01;
@@ -1320,10 +1614,10 @@ sub ack_unfork {
if ($timeout > 0) {
my $nfound;
- while ( keys %{ $self->{"syn"} } and
+ while ( keys %{ $self->{syn} } and
$nfound = mselect((my $rout=$rbits), undef, undef, $timeout)) {
# Done waiting for one of the ACKs
- if (!sysread($self->{"fork_rd"}, $_, 16)) {
+ if (!sysread($self->{fork_rd}, $_, 16)) {
# Socket closed, which means all children are done.
return ();
}
@@ -1331,16 +1625,16 @@ sub ack_unfork {
if ($pid) {
# Flush the zombie
waitpid($pid, 0);
- if (my $entry = $self->{"syn"}->{$pid}) {
+ if (my $entry = $self->{syn}->{$pid}) {
# Connection attempt to remote host is done
- delete $self->{"syn"}->{$pid};
+ delete $self->{syn}->{$pid};
if (!$how || # If there was no error connecting
- (!$self->{"econnrefused"} &&
+ (!$self->{econnrefused} &&
$how == ECONNREFUSED)) { # "Connection refused" means reachable
if ($host && $entry->[0] ne $host) {
# A good connection, but not the host we need.
# Move it from the "syn" hash to the "good" hash.
- $self->{"good"}->{$entry->[0]} = $entry;
+ $self->{good}->{$entry->[0]} = $entry;
# And wait for the next winner
next;
}
@@ -1361,7 +1655,7 @@ sub ack_unfork {
warn("select: $!");
}
}
- if (my @synners = keys %{ $self->{"syn"} }) {
+ if (my @synners = keys %{ $self->{syn} }) {
# Kill all the synners
kill 9, @synners;
foreach my $pid (@synners) {
@@ -1370,7 +1664,7 @@ sub ack_unfork {
waitpid($pid, 0);
}
}
- $self->{"syn"} = {};
+ $self->{syn} = {};
return ();
}
@@ -1378,7 +1672,7 @@ sub ack_unfork {
sub nack {
my $self = shift;
my $host = shift || croak('Usage> nack($failed_ack_host)');
- return $self->{"bad"}->{$host} || undef;
+ return $self->{bad}->{$host} || undef;
}
# Description: Close the connection.
@@ -1387,14 +1681,14 @@ sub close
{
my ($self) = @_;
- if ($self->{"proto"} eq "syn") {
- delete $self->{"syn"};
- } elsif ($self->{"proto"} eq "tcp") {
+ if ($self->{proto} eq "syn") {
+ delete $self->{syn};
+ } elsif ($self->{proto} eq "tcp") {
# The connection will already be closed
- } elsif ($self->{"proto"} eq "external") {
+ } elsif ($self->{proto} eq "external") {
# Nothing to close
} else {
- $self->{"fh"}->close();
+ $self->{fh}->close();
}
}
@@ -1417,7 +1711,7 @@ sub ntop {
# Any port will work, even undef, but this will work for now.
# Socket warns when undef is passed in, but it still works.
my $port = getservbyname('echo', 'udp');
- my $sockaddr = sockaddr_in $port, $ip;
+ my $sockaddr = _pack_sockaddr_in($port, $ip);
my ($error, $address) = getnameinfo($sockaddr, NI_NUMERICHOST);
if($error) {
croak $error;
@@ -1425,6 +1719,209 @@ sub ntop {
return $address;
}
+sub wakeonlan {
+ my ($mac_addr, $host, $port) = @_;
+
+ # use the discard service if $port not passed in
+ if (! defined $host) { $host = '255.255.255.255' }
+ if (! defined $port || $port !~ /^\d+$/ ) { $port = 9 }
+
+ require IO::Socket::INET;
+ my $sock = IO::Socket::INET->new(Proto=>'udp') || return undef;
+
+ my $ip_addr = inet_aton($host);
+ my $sock_addr = sockaddr_in($port, $ip_addr);
+ $mac_addr =~ s/://g;
+ my $packet = pack('C6H*', 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, $mac_addr x 16);
+
+ setsockopt($sock, SOL_SOCKET, SO_BROADCAST, 1);
+ send($sock, $packet, 0, $sock_addr);
+ $sock->close;
+
+ return 1;
+}
+
+########################################################
+# DNS hostname resolution
+# return:
+# $h->{name} = host - as passed in
+# $h->{host} = host - as passed in without :port
+# $h->{port} = OPTIONAL - if :port, then value of port
+# $h->{addr} = resolved numeric address
+# $h->{addr_in} = aton/pton result
+# $h->{family} = AF_INET/6
+############################
+sub _resolv {
+ my ($self,
+ $name,
+ ) = @_;
+
+ my %h;
+ $h{name} = $name;
+ my $family = $self->{family};
+
+ if (defined($self->{family_local})) {
+ $family = $self->{family_local}
+ }
+
+# START - host:port
+ my $cnt = 0;
+
+ # Count ":"
+ $cnt++ while ($name =~ m/:/g);
+
+ # 0 = hostname or IPv4 address
+ if ($cnt == 0) {
+ $h{host} = $name
+ # 1 = IPv4 address with port
+ } elsif ($cnt == 1) {
+ ($h{host}, $h{port}) = split /:/, $name
+ # >=2 = IPv6 address
+ } elsif ($cnt >= 2) {
+ #IPv6 with port - [2001::1]:port
+ if ($name =~ /^\[.*\]:\d{1,5}$/) {
+ ($h{host}, $h{port}) = split /:([^:]+)$/, $name # split after last :
+ # IPv6 without port
+ } else {
+ $h{host} = $name
+ }
+ }
+
+ # Clean up host
+ $h{host} =~ s/\[//g;
+ $h{host} =~ s/\]//g;
+ # Clean up port
+ if (defined($h{port}) && (($h{port} !~ /^\d{1,5}$/) || ($h{port} < 1) || ($h{port} > 65535))) {
+ croak("Invalid port `$h{port}' in `$name'");
+ }
+# END - host:port
+
+ # address check
+ # new way
+ if ($Socket::VERSION >= 1.94) {
+ my %hints = (
+ family => $AF_UNSPEC,
+ protocol => IPPROTO_TCP,
+ flags => $AI_NUMERICHOST
+ );
+
+ # numeric address, return
+ my ($err, @getaddr) = Socket::getaddrinfo($h{host}, undef, \%hints);
+ if (defined($getaddr[0])) {
+ $h{addr} = $h{host};
+ $h{family} = $getaddr[0]->{family};
+ if ($h{family} == AF_INET) {
+ (undef, $h{addr_in}, undef, undef) = Socket::unpack_sockaddr_in $getaddr[0]->{addr};
+ } else {
+ (undef, $h{addr_in}, undef, undef) = Socket::unpack_sockaddr_in6 $getaddr[0]->{addr};
+ }
+ return \%h
+ }
+ # old way
+ } else {
+ # numeric address, return
+ my $ret = gethostbyname($h{host});
+ if (defined($ret) && (_inet_ntoa($ret) eq $h{host})) {
+ $h{addr} = $h{host};
+ $h{addr_in} = $ret;
+ $h{family} = AF_INET;
+ return \%h
+ }
+ }
+
+ # resolve
+ # new way
+ if ($Socket::VERSION >= 1.94) {
+ my %hints = (
+ family => $family,
+ protocol => IPPROTO_TCP
+ );
+
+ my ($err, @getaddr) = Socket::getaddrinfo($h{host}, undef, \%hints);
+ if (defined($getaddr[0])) {
+ my ($err, $address) = Socket::getnameinfo($getaddr[0]->{addr}, $NI_NUMERICHOST);
+ if (defined($address)) {
+ $h{addr} = $address;
+ $h{addr} =~ s/\%(.)*$//; # remove %ifID if IPv6
+ $h{family} = $getaddr[0]->{family};
+ if ($h{family} == AF_INET) {
+ (undef, $h{addr_in}, undef, undef) = Socket::unpack_sockaddr_in $getaddr[0]->{addr};
+ } else {
+ (undef, $h{addr_in}, undef, undef) = Socket::unpack_sockaddr_in6 $getaddr[0]->{addr};
+ }
+ return \%h
+ } else {
+ croak("getnameinfo($getaddr[0]->{addr}) failed - $err");
+ }
+ } else {
+ my $error = sprintf "getaddrinfo($h{host},,%s) failed - $err",
+ ($family == AF_INET) ? "AF_INET" : "AF_INET6";
+ croak("$error");
+ }
+ # old way
+ } else {
+ if ($family == $AF_INET6) {
+ croak("Socket >= 1.94 required for IPv6 - found Socket $Socket::VERSION");
+ }
+
+ my @gethost = gethostbyname($h{host});
+ if (defined($gethost[4])) {
+ $h{addr} = inet_ntoa($gethost[4]);
+ $h{addr_in} = $gethost[4];
+ $h{family} = AF_INET;
+ return \%h
+ } else {
+ croak("gethostbyname($h{host}) failed - $^E");
+ }
+ }
+}
+
+sub _pack_sockaddr_in($$) {
+ my ($port,
+ $ip,
+ ) = @_;
+
+ my $addr = ref($ip) eq "HASH" ? $ip->{addr_in} : $ip;
+ if (length($addr) <= 4 ) {
+ return Socket::pack_sockaddr_in($port, $addr);
+ } else {
+ return Socket::pack_sockaddr_in6($port, $addr);
+ }
+}
+
+sub _unpack_sockaddr_in($;$) {
+ my ($addr,
+ $family,
+ ) = @_;
+
+ my ($port, $host);
+ if ($family == AF_INET || (!defined($family) and length($addr) <= 16 )) {
+ ($port, $host) = Socket::unpack_sockaddr_in($addr);
+ } else {
+ ($port, $host) = Socket::unpack_sockaddr_in6($addr);
+ }
+ return $port, $host
+}
+
+sub _inet_ntoa {
+ my ($addr
+ ) = @_;
+
+ my $ret;
+ if ($Socket::VERSION >= 1.94) {
+ my ($err, $address) = Socket::getnameinfo($addr, $NI_NUMERICHOST);
+ if (defined($address)) {
+ $ret = $address;
+ } else {
+ croak("getnameinfo($addr) failed - $err");
+ }
+ } else {
+ $ret = inet_ntoa($addr)
+ }
+
+ return $ret
+}
+
1;
__END__
@@ -1546,33 +2043,69 @@ This protocol does not require any special privileges.
=over 4
-=item Net::Ping->new([$proto [, $def_timeout [, $bytes [, $device [, $tos [, $ttl ]]]]]]);
+=item Net::Ping->new([proto, timeout, bytes, device, tos, ttl, family,
+ host, port, bind, gateway, retrans, pingstring,
+ source_verify econnrefused dontfrag
+ IPV6_USE_MIN_MTU IPV6_RECVPATHMTU])
-Create a new ping object. All of the parameters are optional. $proto
-specifies the protocol to use when doing a ping. The current choices
-are "tcp", "udp", "icmp", "stream", "syn", or "external".
-The default is "tcp".
+Create a new ping object. All of the parameters are optional and can
+be passed as hash ref. All options besides the first 7 must be passed
+as hash ref.
-If a default timeout ($def_timeout) in seconds is provided, it is used
+C<proto> specifies the protocol to use when doing a ping. The current
+choices are "tcp", "udp", "icmp", "icmpv6", "stream", "syn", or
+"external". The default is "tcp".
+
+If a C<timeout> in seconds is provided, it is used
when a timeout is not given to the ping() method (below). The timeout
must be greater than 0 and the default, if not specified, is 5 seconds.
-If the number of data bytes ($bytes) is given, that many data bytes
+If the number of data bytes (C<bytes>) is given, that many data bytes
are included in the ping packet sent to the remote host. The number of
data bytes is ignored if the protocol is "tcp". The minimum (and
default) number of data bytes is 1 if the protocol is "udp" and 0
otherwise. The maximum number of data bytes that can be specified is
1024.
-If $device is given, this device is used to bind the source endpoint
+If C<device> is given, this device is used to bind the source endpoint
before sending the ping packet. I believe this only works with
superuser privileges and with udp and icmp protocols at this time.
-If $tos is given, this ToS is configured into the socket.
+If <tos> is given, this ToS is configured into the socket.
+
+For icmp, C<ttl> can be specified to set the TTL of the outgoing packet.
+
+Valid C<family> values for IPv4:
+
+ 4, v4, ip4, ipv4, AF_INET (constant)
-For icmp, $ttl can be specified to set the TTL of the outgoing packet.
+Valid C<family> values for IPv6:
-=item $p->ping($host [, $timeout]);
+ 6, v6, ip6, ipv6, AF_INET6 (constant)
+
+The C<host> argument implicitly specifies the family if the family
+argument is not given.
+
+The C<port> argument is only valid for a udp, tcp or stream ping, and will not
+do what you think it does. ping returns true when we get a "Connection refused"!
+The default is the echo port.
+
+The C<bind> argument specifies the local_addr to bind to.
+By specifying a bind argument you don't need the bind method.
+
+The C<gateway> argument is only valid for IPv6, and requires a IPv6
+address.
+
+The C<retrans> argument the exponential backoff rate, default 1.2.
+It matches the $def_factor global.
+
+The C<dontfrag> argument sets the IP_DONTFRAG bit, but note that
+IP_DONTFRAG is not yet defined by Socket, and not available on many
+systems. Then it is ignored. On linux it also sets IP_MTU_DISCOVER to
+IP_PMTUDISC_DO but need we don't chunk oversized packets. You need to
+set $data_size manually.
+
+=item $p->ping($host [, $timeout [, $family]]);
Ping the remote host and wait for a response. $host can be either the
hostname or the IP number of the remote host. The optional timeout
@@ -1627,10 +2160,44 @@ Deprecated method, but does the same as service_check() method.
=item $p->hires( { 0 | 1 } );
-Causes this module to use Time::HiRes module, allowing milliseconds
+With 1 causes this module to use Time::HiRes module, allowing milliseconds
to be returned by subsequent calls to ping().
-This is disabled by default.
+=item $p->time
+
+The current time, hires or not.
+
+=item $p->socket_blocking_mode( $fh, $mode );
+
+Sets or clears the O_NONBLOCK flag on a file handle.
+
+=item $p->IPV6_USE_MIN_MTU
+
+With argument sets the option.
+Without returns the option value.
+
+=item $p->IPV6_RECVPATHMTU
+
+Notify an according IPv6 MTU.
+
+With argument sets the option.
+Without returns the option value.
+
+=item $p->IPV6_HOPLIMIT
+
+With argument sets the option.
+Without returns the option value.
+
+=item $p->IPV6_REACHCONF I<NYI>
+
+Sets ipv6 reachability
+IPV6_REACHCONF was removed in RFC3542. ping6 -R supports it.
+IPV6_REACHCONF requires root/admin permissions.
+
+With argument sets the option.
+Without returns the option value.
+
+Not yet implemented.
=item $p->bind($local_addr);
@@ -1646,6 +2213,9 @@ then bind() must be called at most once per object, and (if it is
called at all) must be called before the first call to ping() for that
object.
+The bind() call can be omitted when specifying the C<bind> option to
+new().
+
=item $p->open($host);
When you are using the "stream" protocol, this call pre-opens the
@@ -1657,6 +2227,9 @@ automatically opened the first time C<ping()> is called.
This call simply does nothing if you are using any protocol other
than stream.
+The $host argument can be omitted when specifying the C<host> option to
+new().
+
=item $p->ack( [ $host ] );
When using the "syn" protocol, use this method to determine
@@ -1676,12 +2249,75 @@ value will be pertaining to that host only.
This call simply does nothing if you are using any protocol
other than syn.
+When new() had a host option, this host will be used.
+Without host argument, all hosts are scanned.
+
=item $p->nack( $failed_ack_host );
The reason that host $failed_ack_host did not receive a
valid ACK. Useful to find out why when ack( $fail_ack_host )
returns a false value.
+=item $p->ack_unfork($host)
+
+The variant called by ack() with the syn protocol and $syn_forking
+enabled.
+
+=item $p->ping_icmp([$host, $timeout, $family])
+
+The ping() method used with the icmp protocol.
+
+=item $p->ping_icmpv6([$host, $timeout, $family]) I<NYI>
+
+The ping() method used with the icmpv6 protocol.
+
+=item $p->ping_stream([$host, $timeout, $family])
+
+The ping() method used with the stream protocol.
+
+Perform a stream ping. If the tcp connection isn't
+already open, it opens it. It then sends some data and waits for
+a reply. It leaves the stream open on exit.
+
+=item $p->ping_syn([$host, $ip, $start_time, $stop_time])
+
+The ping() method used with the syn protocol.
+Sends a TCP SYN packet to host specified.
+
+=item $p->ping_syn_fork([$host, $timeout, $family])
+
+The ping() method used with the forking syn protocol.
+
+=item $p->ping_tcp([$host, $timeout, $family])
+
+The ping() method used with the tcp protocol.
+
+=item $p->ping_udp([$host, $timeout, $family])
+
+The ping() method used with the udp protocol.
+
+Perform a udp echo ping. Construct a message of
+at least the one-byte sequence number and any additional data bytes.
+Send the message out and wait for a message to come back. If we
+get a message, make sure all of its parts match. If they do, we are
+done. Otherwise go back and wait for the message until we run out
+of time. Return the result of our efforts.
+
+=item $p->ping_external([$host, $timeout, $family])
+
+The ping() method used with the external protocol.
+Uses Net::Ping::External to do an external ping.
+
+=item $p->tcp_connect([$ip, $timeout])
+
+Initiates a TCP connection, for a tcp ping.
+
+=item $p->tcp_echo([$ip, $timeout, $pingstring])
+
+Performs a TCP echo.
+It writes the given string to the socket and then reads it
+back. It returns 1 on success, 0 on failure.
+
=item $p->close();
Close the network connection for this ping object. The network
@@ -1697,6 +2333,24 @@ of calling C<$p-E<gt>service_check(1)> causing a ping to return a successful
response only if that specific port is accessible. This function returns
the value of the port that C<ping()> will connect to.
+=item $p->mselect
+
+A select() wrapper that compensates for platform
+peculiarities.
+
+=item $p->ntop
+
+Platform abstraction over inet_ntop()
+
+=item $p->checksum($msg)
+
+Do a checksum on the message. Basically sum all of
+the short words and fold the high order bits into the low order bits.
+
+=item $p->icmp_result
+
+Returns a list of addr, type, subcode.
+
=item pingecho($host [, $timeout]);
To provide backward compatibility with the previous version of
@@ -1706,6 +2360,17 @@ return values and parameters are the same as described for the ping()
method. This subroutine is obsolete and may be removed in a future
version of Net::Ping.
+=item wakeonlan($mac, [$host, [$port]])
+
+Emit the popular wake-on-lan magic udp packet to wake up a local
+device. See also L<Net::Wake>, but this has the mac address as 1st arg.
+$host should be the local gateway. Without it will broadcast.
+
+Default host: '255.255.255.255'
+Default port: 9
+
+ perl -MNet::Ping=wakeonlan -e'wakeonlan "e0:69:95:35:68:d2"'
+
=back
=head1 NOTES
@@ -1717,9 +2382,10 @@ either udp or icmp. If many hosts are pinged frequently, you may wish
to implement a small wait (e.g. 25ms or more) between each ping to
avoid flooding your network with packets.
-The icmp protocol requires that the program be run as root or that it
-be setuid to root. The other protocols do not require special
-privileges, but not all network devices implement tcp or udp echo.
+The icmp and icmpv6 protocols requires that the program be run as root
+or that it be setuid to root. The other protocols do not require
+special privileges, but not all network devices implement tcp or udp
+echo.
Local hosts should normally respond to pings within milliseconds.
However, on a very congested network it may take up to 3 seconds or
@@ -1739,57 +2405,44 @@ kinds of ICMP packets.
=head1 INSTALL
-The latest source tree is available via cvs:
+The latest source tree is available via git:
- cvs -z3 -q -d \
- :pserver:anonymous@cvs.roobik.com.:/usr/local/cvsroot/freeware \
- checkout Net-Ping
+ git clone https://github.com/rurban/net-ping.git Net-Ping
cd Net-Ping
The tarball can be created as follows:
perl Makefile.PL ; make ; make dist
-The latest Net::Ping release can be found at CPAN:
-
- $CPAN/modules/by-module/Net/
-
-1) Extract the tarball
-
- gtar -zxvf Net-Ping-xxxx.tar.gz
- cd Net-Ping-xxxx
-
-2) Build:
+The latest Net::Ping releases are included in cperl and perl5.
- make realclean
- perl Makefile.PL
- make
- make test
-
-3) Install
-
- make install
+=head1 BUGS
-Or install it RPM Style:
+For a list of known issues, visit:
- rpm -ta SOURCES/Net-Ping-xxxx.tar.gz
+L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-Ping>
- rpm -ih RPMS/noarch/perl-Net-Ping-xxxx.rpm
+To report a new bug, visit:
-=head1 BUGS
+L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Ping> (stale)
-For a list of known issues, visit:
+or call:
-https://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-Ping
+ perlbug
-To report a new bug, visit:
+resp.:
-https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Ping
+ cperlbug
=head1 AUTHORS
- Current maintainer:
+ Current maintainers:
+ perl11 (for cperl, with IPv6 support and more)
+ p5p (for perl5)
+
+ Previous maintainers:
bbb@cpan.org (Rob Brown)
+ Steve Peters
External protocol:
colinm@cpan.org (Colin McMillen)
@@ -1797,6 +2450,9 @@ https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Ping
Stream protocol:
bronson@trestle.com (Scott Bronson)
+ Wake-on-lan:
+ 1999-2003 Clinton Wong
+
Original pingecho():
karrer@bernina.ethz.ch (Andreas Karrer)
pmarquess@bfsec.bt.co.uk (Paul Marquess)
@@ -1806,6 +2462,10 @@ https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-Ping
=head1 COPYRIGHT
+Copyright (c) 2016, cPanel Inc. All rights reserved.
+
+Copyright (c) 2012, Steve Peters. All rights reserved.
+
Copyright (c) 2002-2003, Rob Brown. All rights reserved.
Copyright (c) 2001, Colin McMillen. All rights reserved.
diff --git a/Master/tlpkg/tlperl/lib/Net/SMTP.pm b/Master/tlpkg/tlperl/lib/Net/SMTP.pm
index 0130a2fd64b..0dd966fdf6f 100644
--- a/Master/tlpkg/tlperl/lib/Net/SMTP.pm
+++ b/Master/tlpkg/tlperl/lib/Net/SMTP.pm
@@ -21,7 +21,7 @@ use Net::Cmd;
use Net::Config;
use Socket;
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
# Code for detecting if we can use SSL
my $ssl_class = eval {
@@ -39,7 +39,7 @@ my $family_key = 'Domain';
my $inet6_class = eval {
require IO::Socket::IP;
no warnings 'numeric';
- IO::Socket::IP->VERSION(0.20) || die;
+ IO::Socket::IP->VERSION(0.25) || die;
$family_key = 'Family';
} && 'IO::Socket::IP' || eval {
require IO::Socket::INET6;
@@ -225,11 +225,15 @@ sub auth {
if defined $str and length $str;
while (($code = $self->command(@cmd)->response()) == CMD_MORE) {
+ my $str2 = MIME::Base64::decode_base64(($self->message)[0]);
+ $self->debug_print(0, "(decoded) " . $str2 . "\n") if $self->debug;
+
+ $str = $client->client_step($str2);
@cmd = (
- MIME::Base64::encode_base64(
- $client->client_step(MIME::Base64::decode_base64(($self->message)[0])), ''
- )
+ MIME::Base64::encode_base64($str, '')
);
+
+ $self->debug_print(1, "(decoded) " . $str . "\n") if $self->debug;
}
$code == CMD_OK;
diff --git a/Master/tlpkg/tlperl/lib/Net/Time.pm b/Master/tlpkg/tlperl/lib/Net/Time.pm
index 6118ad19d1a..9a7f3b244a4 100644
--- a/Master/tlpkg/tlperl/lib/Net/Time.pm
+++ b/Master/tlpkg/tlperl/lib/Net/Time.pm
@@ -24,7 +24,7 @@ use Net::Config;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(inet_time inet_daytime);
-our $VERSION = "3.08_01";
+our $VERSION = "3.10";
our $TIMEOUT = 120;
diff --git a/Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod b/Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod
index f8ad797f9e8..d844f6e5176 100644
--- a/Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod
+++ b/Master/tlpkg/tlperl/lib/Net/libnetFAQ.pod
@@ -56,7 +56,7 @@ Authen::SASL is required for AUTH support.
IO::Socket::SSL version 2.007 or higher is required for SSL support.
-IO::Socket::IP version 0.20 or IO::Socket::INET6 version 2.62 is
+IO::Socket::IP version 0.25 or IO::Socket::INET6 version 2.62 is
required for IPv6 support.
=head2 What machines support libnet ?
diff --git a/Master/tlpkg/tlperl/lib/Opcode.pm b/Master/tlpkg/tlperl/lib/Opcode.pm
index 1522c4c3780..642b96e32c1 100644
--- a/Master/tlpkg/tlperl/lib/Opcode.pm
+++ b/Master/tlpkg/tlperl/lib/Opcode.pm
@@ -6,7 +6,7 @@ use strict;
our($VERSION, @ISA, @EXPORT_OK);
-$VERSION = "1.34";
+$VERSION = "1.39";
use Carp;
use Exporter ();
@@ -312,7 +312,7 @@ invert_opset function.
av2arylen
rv2hv helem hslice kvhslice each values keys exists delete
- aeach akeys avalues multideref
+ aeach akeys avalues multideref argelem argdefelem argcheck
preinc i_preinc predec i_predec postinc i_postinc
postdec i_postdec int hex oct abs pow multiply i_multiply
@@ -338,7 +338,7 @@ invert_opset function.
warn die lineseq nextstate scope enter leave
- rv2cv anoncode prototype coreargs anonconst
+ rv2cv anoncode prototype coreargs avhvswitch anonconst
entersub leavesub leavesublv return method method_named
method_super method_redir method_redir_super
@@ -409,7 +409,7 @@ These are a hotchpotch of opcodes still waiting to be considered
bless -- could be used to change ownership of objects
(reblessing)
- pushre regcmaybe regcreset regcomp subst substcont
+ regcmaybe regcreset regcomp subst substcont
sprintf prtf -- can core dump
diff --git a/Master/tlpkg/tlperl/lib/POSIX.pm b/Master/tlpkg/tlperl/lib/POSIX.pm
index 05bdbbe7e6d..e187b3b9ebe 100644
--- a/Master/tlpkg/tlperl/lib/POSIX.pm
+++ b/Master/tlpkg/tlperl/lib/POSIX.pm
@@ -4,7 +4,7 @@ use warnings;
our ($AUTOLOAD, %SIGRT);
-our $VERSION = '1.65';
+our $VERSION = '1.76';
require XSLoader;
@@ -18,24 +18,13 @@ use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
my $loaded;
-sub import {
- my $pkg = shift;
-
- load_imports() unless $loaded++;
-
- # Grandfather old foo_h form to new :foo_h form
- s/^(?=\w+_h$)/:/ for my @list = @_;
-
- local $Exporter::ExportLevel = 1;
- Exporter::import($pkg,@list);
-}
-
sub croak { require Carp; goto &Carp::croak }
sub usage { croak "Usage: POSIX::$_[0]" }
XSLoader::load();
my %replacement = (
+ L_tmpnam => undef,
atexit => 'END {}',
atof => undef,
atoi => undef,
@@ -110,6 +99,7 @@ my %replacement = (
strspn => undef,
strtok => undef,
tmpfile => 'IO::File::new_tmpfile',
+ tmpnam => 'use File::Temp',
ungetc => 'IO::Handle::ungetc',
vfprintf => undef,
vprintf => undef,
@@ -117,74 +107,103 @@ my %replacement = (
);
my %reimpl = (
+ abs => 'x => CORE::abs($_[0])',
+ alarm => 'seconds => CORE::alarm($_[0])',
assert => 'expr => croak "Assertion failed" if !$_[0]',
- tolower => 'string => lc($_[0])',
- toupper => 'string => uc($_[0])',
- closedir => 'dirhandle => CORE::closedir($_[0])',
- opendir => 'directory => my $dh; CORE::opendir($dh, $_[0]) ? $dh : undef',
- readdir => 'dirhandle => CORE::readdir($_[0])',
- rewinddir => 'dirhandle => CORE::rewinddir($_[0])',
- errno => '$! + 0',
- creat => 'filename, mode => &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1])',
- fcntl => 'filehandle, cmd, arg => CORE::fcntl($_[0], $_[1], $_[2])',
- getgrgid => 'gid => CORE::getgrgid($_[0])',
- getgrnam => 'name => CORE::getgrnam($_[0])',
atan2 => 'x, y => CORE::atan2($_[0], $_[1])',
+ chdir => 'directory => CORE::chdir($_[0])',
+ chmod => 'mode, filename => CORE::chmod($_[0], $_[1])',
+ chown => 'uid, gid, filename => CORE::chown($_[0], $_[1], $_[2])',
+ closedir => 'dirhandle => CORE::closedir($_[0])',
cos => 'x => CORE::cos($_[0])',
+ creat => 'filename, mode => &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1])',
+ errno => '$! + 0',
+ exit => 'status => CORE::exit($_[0])',
exp => 'x => CORE::exp($_[0])',
fabs => 'x => CORE::abs($_[0])',
- log => 'x => CORE::log($_[0])',
- pow => 'x, exponent => $_[0] ** $_[1]',
- sin => 'x => CORE::sin($_[0])',
- sqrt => 'x => CORE::sqrt($_[0])',
- getpwnam => 'name => CORE::getpwnam($_[0])',
- getpwuid => 'uid => CORE::getpwuid($_[0])',
- kill => 'pid, sig => CORE::kill $_[1], $_[0]',
- raise => 'sig => CORE::kill $_[0], $$; # Is this good enough',
+ fcntl => 'filehandle, cmd, arg => CORE::fcntl($_[0], $_[1], $_[2])',
+ fork => 'CORE::fork',
+ fstat => 'fd => CORE::open my $dup, "<&", $_[0]; CORE::stat($dup)', # Gross.
getc => 'handle => CORE::getc($_[0])',
getchar => 'CORE::getc(STDIN)',
- gets => 'scalar <STDIN>',
- remove => 'filename => (-d $_[0]) ? CORE::rmdir($_[0]) : CORE::unlink($_[0])',
- rename => 'oldfilename, newfilename => CORE::rename($_[0], $_[1])',
- rewind => 'filehandle => CORE::seek($_[0],0,0)',
- abs => 'x => CORE::abs($_[0])',
- exit => 'status => CORE::exit($_[0])',
- getenv => 'name => $ENV{$_[0]}',
- system => 'command => CORE::system($_[0])',
- strerror => 'errno => BEGIN { local $!; require locale; locale->import} my $e = $_[0] + 0; local $!; $! = $e; "$!"',
- strstr => 'big, little => CORE::index($_[0], $_[1])',
- chmod => 'mode, filename => CORE::chmod($_[0], $_[1])',
- fstat => 'fd => CORE::open my $dup, "<&", $_[0]; CORE::stat($dup)', # Gross.
- mkdir => 'directoryname, mode => CORE::mkdir($_[0], $_[1])',
- stat => 'filename => CORE::stat($_[0])',
- umask => 'mask => CORE::umask($_[0])',
- wait => 'CORE::wait()',
- waitpid => 'pid, options => CORE::waitpid($_[0], $_[1])',
- gmtime => 'time => CORE::gmtime($_[0])',
- localtime => 'time => CORE::localtime($_[0])',
- time => 'CORE::time',
- alarm => 'seconds => CORE::alarm($_[0])',
- chdir => 'directory => CORE::chdir($_[0])',
- chown => 'uid, gid, filename => CORE::chown($_[0], $_[1], $_[2])',
- fork => 'CORE::fork',
getegid => '$) + 0',
+ getenv => 'name => $ENV{$_[0]}',
geteuid => '$> + 0',
getgid => '$( + 0',
+ getgrgid => 'gid => CORE::getgrgid($_[0])',
+ getgrnam => 'name => CORE::getgrnam($_[0])',
getgroups => 'my %seen; grep !$seen{$_}++, split " ", $)',
getlogin => 'CORE::getlogin()',
getpgrp => 'CORE::getpgrp',
getpid => '$$',
getppid => 'CORE::getppid',
+ getpwnam => 'name => CORE::getpwnam($_[0])',
+ getpwuid => 'uid => CORE::getpwuid($_[0])',
+ gets => 'scalar <STDIN>',
getuid => '$<',
+ gmtime => 'time => CORE::gmtime($_[0])',
isatty => 'filehandle => -t $_[0]',
+ kill => 'pid, sig => CORE::kill $_[1], $_[0]',
link => 'oldfilename, newfilename => CORE::link($_[0], $_[1])',
+ localtime => 'time => CORE::localtime($_[0])',
+ log => 'x => CORE::log($_[0])',
+ mkdir => 'directoryname, mode => CORE::mkdir($_[0], $_[1])',
+ opendir => 'directory => my $dh; CORE::opendir($dh, $_[0]) ? $dh : undef',
+ pow => 'x, exponent => $_[0] ** $_[1]',
+ raise => 'sig => CORE::kill $_[0], $$; # Is this good enough',
+ readdir => 'dirhandle => CORE::readdir($_[0])',
+ remove => 'filename => (-d $_[0]) ? CORE::rmdir($_[0]) : CORE::unlink($_[0])',
+ rename => 'oldfilename, newfilename => CORE::rename($_[0], $_[1])',
+ rewind => 'filehandle => CORE::seek($_[0],0,0)',
+ rewinddir => 'dirhandle => CORE::rewinddir($_[0])',
rmdir => 'directoryname => CORE::rmdir($_[0])',
+ sin => 'x => CORE::sin($_[0])',
+ sqrt => 'x => CORE::sqrt($_[0])',
+ stat => 'filename => CORE::stat($_[0])',
+ strerror => 'errno => BEGIN { local $!; require locale; locale->import} my $e = $_[0] + 0; local $!; $! = $e; "$!"',
+ strstr => 'big, little => CORE::index($_[0], $_[1])',
+ system => 'command => CORE::system($_[0])',
+ time => 'CORE::time',
+ umask => 'mask => CORE::umask($_[0])',
unlink => 'filename => CORE::unlink($_[0])',
utime => 'filename, atime, mtime => CORE::utime($_[1], $_[2], $_[0])',
+ wait => 'CORE::wait()',
+ waitpid => 'pid, options => CORE::waitpid($_[0], $_[1])',
);
+sub import {
+ my $pkg = shift;
+
+ load_imports() unless $loaded++;
+
+ # Grandfather old foo_h form to new :foo_h form
+ s/^(?=\w+_h$)/:/ for my @list = @_;
+
+ my @unimpl = sort grep { exists $replacement{$_} } @list;
+ if (@unimpl) {
+ for my $u (@unimpl) {
+ warn "Unimplemented: POSIX::$u(): ", unimplemented_message($u);
+ }
+ croak(sprintf("Unimplemented: %s",
+ join(" ", map { "POSIX::$_()" } @unimpl)));
+ }
+
+ local $Exporter::ExportLevel = 1;
+ Exporter::import($pkg,@list);
+}
+
eval join ';', map "sub $_", keys %replacement, keys %reimpl;
+sub unimplemented_message {
+ my $func = shift;
+ my $how = $replacement{$func};
+ return "C-specific, stopped" unless defined $how;
+ return "$$how" if ref $how;
+ return "$how instead" if $how =~ /^use /;
+ return "Use method $how() instead" if $how =~ /::/;
+ return "C-specific: use $how instead";
+}
+
sub AUTOLOAD {
my ($func) = ($AUTOLOAD =~ /.*::(.*)/);
@@ -207,12 +226,7 @@ sub AUTOLOAD {
goto &$AUTOLOAD;
}
if (exists $replacement{$func}) {
- my $how = $replacement{$func};
- croak "Unimplemented: POSIX::$func() is C-specific, stopped"
- unless defined $how;
- croak "Unimplemented: POSIX::$func() is $$how" if ref $how;
- croak "Use method $how() instead of POSIX::$func()" if $how =~ /::/;
- croak "Unimplemented: POSIX::$func() is C-specific: use $how instead";
+ croak "Unimplemented: POSIX::$func(): ", unimplemented_message($func);
}
constant($func);
@@ -238,8 +252,7 @@ my %default_export_tags = ( # cf. exports policy below
assert_h => [qw(assert NDEBUG)],
- ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower
- isprint ispunct isspace isupper isxdigit tolower toupper)],
+ ctype_h => [],
dirent_h => [],
@@ -322,7 +335,7 @@ my %default_export_tags = ( # cf. exports policy below
stddef_h => [qw(NULL offsetof)],
stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid
- L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET
+ NULL SEEK_CUR SEEK_END SEEK_SET
STREAM_MAX TMP_MAX stderr stdin stdout
clearerr fclose fdopen feof ferror fflush fgetc fgetpos
fgets fopen fprintf fputc fputs fread freopen
@@ -413,12 +426,21 @@ my %other_export_tags = ( # cf. exports policy below
Inf NaN acosh asinh atanh cbrt copysign erf erfc exp2 expm1 fdim fma
fmax fmin fpclassify hypot ilogb isfinite isgreater isgreaterequal
isinf isless islessequal islessgreater isnan isnormal isunordered j0 j1
- jn lgamma log1p log2 logb lrint nan nearbyint nextafter nexttoward
+ jn lgamma log1p log2 logb lrint lround nan nearbyint nextafter nexttoward
remainder remquo rint round scalbn signbit tgamma trunc y0 y1 yn
)],
+ netdb_h => [qw(EAI_AGAIN EAI_BADFLAGS EAI_FAIL
+ EAI_FAMILY EAI_MEMORY EAI_NONAME
+ EAI_OVERFLOW EAI_SERVICE EAI_SOCKTYPE
+ EAI_SYSTEM)],
+
stdlib_h_c99 => [ @{$default_export_tags{stdlib_h}}, 'strtold' ],
+ sys_socket_h => [qw(
+ MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK MSG_TRUNC MSG_WAITALL
+ )],
+
nan_payload => [ qw(getpayload setpayload setpayloadsig issignaling) ],
signal_h_si_code => [qw(
@@ -450,10 +472,7 @@ my %other_export_tags = ( # cf. exports policy below
# you do not want to add symbols to the following list. add a new tag instead
our @EXPORT_OK = (qw(close lchown nice open pipe read sleep times write
- printf sprintf lround),
- # lround() should really be in the :math_h_c99 tag, but
- # we're too far into the 5.24 code freeze for that to be
- # done now. This can be revisited in the 5.25.x cycle.
+ printf sprintf),
grep {!exists $export{$_}} keys %reimpl, keys %replacement, keys %export_ok);
our %EXPORT_TAGS = ( %default_export_tags, %other_export_tags );
diff --git a/Master/tlpkg/tlperl/lib/POSIX.pod b/Master/tlpkg/tlperl/lib/POSIX.pod
index 1d263a7bc40..d3f9e8934f7 100644
--- a/Master/tlpkg/tlperl/lib/POSIX.pod
+++ b/Master/tlpkg/tlperl/lib/POSIX.pod
@@ -1013,7 +1013,7 @@ See also L</ceil>, L</floor>, L</trunc>.
Owing to an oversight, this is not currently exported by default, or as part of
the C<:math_h_c99> export tag; importing it must therefore be done by explicit
-name. This will be changed in Perl 5.26.
+name.
=item C<malloc>
@@ -1671,6 +1671,10 @@ for collating (comparing) strings transformed using
the C<strxfrm()> function. Not really needed since
Perl can do this transparently, see L<perllocale>.
+Beware that in a UTF-8 locale, anything you pass to this function must
+be in UTF-8; and when not in a UTF-8 locale, anything passed must not be
+UTF-8 encoded.
+
=item C<strcpy>
Not implemented. C<strcpy()> is C-specific, use C<=> instead, see L<perlop>.
@@ -1843,6 +1847,10 @@ Used in conjunction with the C<strcoll()> function, see L</strcoll>.
Not really needed since Perl can do this transparently, see
L<perllocale>.
+Beware that in a UTF-8 locale, anything you pass to this function must
+be in UTF-8; and when not in a UTF-8 locale, anything passed must not be
+UTF-8 encoded.
+
=item C<sysconf>
Retrieves values of system configurable variables.
@@ -1941,13 +1949,9 @@ Not implemented. Use method C<IO::File::new_tmpfile()> instead, or see L<File::
=item C<tmpnam>
-Returns a name for a temporary file.
-
- $tmpfile = POSIX::tmpnam();
-
For security reasons, which are probably detailed in your system's
documentation for the C library C<tmpnam()> function, this interface
-should not be used; instead see L<File::Temp>.
+is no longer available; instead use L<File::Temp>.
=item C<tolower>
@@ -2589,7 +2593,7 @@ C<EXIT_FAILURE> C<EXIT_SUCCESS> C<MB_CUR_MAX> C<RAND_MAX>
=item Constants
-C<BUFSIZ> C<EOF> C<FILENAME_MAX> C<L_ctermid> C<L_cuserid> C<L_tmpname> C<TMP_MAX>
+C<BUFSIZ> C<EOF> C<FILENAME_MAX> C<L_ctermid> C<L_cuserid> C<TMP_MAX>
=back
diff --git a/Master/tlpkg/tlperl/lib/Parse/CPAN/Meta.pm b/Master/tlpkg/tlperl/lib/Parse/CPAN/Meta.pm
index 56eecb45290..688bcfe6966 100644
--- a/Master/tlpkg/tlperl/lib/Parse/CPAN/Meta.pm
+++ b/Master/tlpkg/tlperl/lib/Parse/CPAN/Meta.pm
@@ -1,9 +1,10 @@
use 5.008001;
use strict;
+use warnings;
package Parse::CPAN::Meta;
# ABSTRACT: Parse META.yml and META.json CPAN metadata files
-our $VERSION = '1.4417_001';
+our $VERSION = '2.150010';
use Exporter;
use Carp 'croak';
@@ -50,7 +51,10 @@ sub load_yaml_string {
sub load_json_string {
my ($class, $string) = @_;
- my $data = eval { $class->json_backend()->new->decode($string) };
+ require Encode;
+ # load_json_string takes characters, decode_json expects bytes
+ my $encoded = Encode::encode('UTF-8', $string, Encode::PERLQQ());
+ my $data = eval { $class->json_decoder()->can('decode_json')->($encoded) };
croak $@ if $@;
return $data || {};
}
@@ -71,10 +75,38 @@ sub yaml_backend {
}
}
+sub json_decoder {
+ if ($ENV{PERL_CORE}) {
+ _can_load( 'JSON::PP' => 2.27300 )
+ or croak "JSON::PP 2.27300 is not available\n";
+ return 'JSON::PP';
+ }
+ if (my $decoder = $ENV{CPAN_META_JSON_DECODER}) {
+ _can_load( $decoder )
+ or croak "Could not load CPAN_META_JSON_DECODER '$decoder'\n";
+ $decoder->can('decode_json')
+ or croak "No decode_json sub provided by CPAN_META_JSON_DECODER '$decoder'\n";
+ return $decoder;
+ }
+ return $_[0]->json_backend;
+}
+
sub json_backend {
- if ($ENV{PERL_CORE} or ! $ENV{PERL_JSON_BACKEND} or $ENV{PERL_JSON_BACKEND} eq 'JSON::PP') {
- _can_load( 'JSON::PP' => 2.27103 )
- or croak "JSON::PP 2.27103 is not available\n";
+ if ($ENV{PERL_CORE}) {
+ _can_load( 'JSON::PP' => 2.27300 )
+ or croak "JSON::PP 2.27300 is not available\n";
+ return 'JSON::PP';
+ }
+ if (my $backend = $ENV{CPAN_META_JSON_BACKEND}) {
+ _can_load( $backend )
+ or croak "Could not load CPAN_META_JSON_BACKEND '$backend'\n";
+ $backend->can('new')
+ or croak "No constructor provided by CPAN_META_JSON_BACKEND '$backend'\n";
+ return $backend;
+ }
+ if (! $ENV{PERL_JSON_BACKEND} or $ENV{PERL_JSON_BACKEND} eq 'JSON::PP') {
+ _can_load( 'JSON::PP' => 2.27300 )
+ or croak "JSON::PP 2.27300 is not available\n";
return 'JSON::PP';
}
else {
@@ -93,7 +125,7 @@ sub _slurp {
$content = Encode::decode('UTF-8', $content, Encode::PERLQQ());
return $content;
}
-
+
sub _can_load {
my ($module, $version) = @_;
(my $file = $module) =~ s{::}{/}g;
@@ -137,27 +169,27 @@ Parse::CPAN::Meta - Parse META.yml and META.json CPAN metadata files
=head1 VERSION
-version 1.4417
+version 2.150010
=head1 SYNOPSIS
#############################################
# In your file
-
+
---
name: My-Distribution
version: 1.23
resources:
homepage: "http://example.com/dist/My-Distribution"
-
-
+
+
#############################################
# In your program
-
+
use Parse::CPAN::Meta;
-
+
my $distmeta = Parse::CPAN::Meta->load_file('META.yml');
-
+
# Reading properties
my $name = $distmeta->{name};
my $version = $distmeta->{version};
@@ -213,7 +245,7 @@ C<load_yaml_string>.
my $metadata_structure = Parse::CPAN::Meta->load_json_string($json_string);
-This method deserializes the given string of JSON and the result.
+This method deserializes the given string of JSON and the result.
If the source was UTF-8 encoded, the string must be decoded before calling
C<load_json_string>.
@@ -235,11 +267,22 @@ for details.
my $backend = Parse::CPAN::Meta->json_backend;
-Returns the module name of the JSON serializer. This will either
-be L<JSON::PP> or L<JSON>. Even if C<PERL_JSON_BACKEND> is set,
+Returns the module name of the JSON serializer. If C<CPAN_META_JSON_BACKEND>
+is set, this will be whatever that's set to. If not, this will either
+be L<JSON::PP> or L<JSON>. If C<PERL_JSON_BACKEND> is set,
this will return L<JSON> as further delegation is handled by
the L<JSON> module. See L</ENVIRONMENT> for details.
+=head2 json_decoder
+
+ my $decoder = Parse::CPAN::Meta->json_decoder;
+
+Returns the module name of the JSON decoder. Unlike L</json_backend>, this
+is not necessarily a full L<JSON>-style module, but only something that will
+provide a C<decode_json> subroutine. If C<CPAN_META_JSON_DECODER> is set,
+this will be whatever that's set to. If not, this will be whatever has
+been selected as L</json_backend>. See L</ENVIRONMENT> for more notes.
+
=head1 FUNCTIONS
For maintenance clarity, no functions are exported by default. These functions
@@ -261,13 +304,35 @@ Reads the YAML stream from a file instead of a string.
=head1 ENVIRONMENT
+=head2 CPAN_META_JSON_DECODER
+
+By default, L<JSON::PP> will be used for deserializing JSON data. If the
+C<CPAN_META_JSON_DECODER> environment variable exists, this is expected to
+be the name of a loadable module that provides a C<decode_json> subroutine,
+which will then be used for deserialization. Relying only on the existence
+of said subroutine allows for maximum compatibility, since this API is
+provided by all of L<JSON::PP>, L<JSON::XS>, L<Cpanel::JSON::XS>,
+L<JSON::MaybeXS>, L<JSON::Tiny>, and L<Mojo::JSON>.
+
+=head2 CPAN_META_JSON_BACKEND
+
+By default, L<JSON::PP> will be used for deserializing JSON data. If the
+C<CPAN_META_JSON_BACKEND> environment variable exists, this is expected to
+be the name of a loadable module that provides the L<JSON> API, since
+downstream code expects to be able to call C<new> on this class. As such,
+while L<JSON::PP>, L<JSON::XS>, L<Cpanel::JSON::XS> and L<JSON::MaybeXS> will
+work for this, to use L<Mojo::JSON> or L<JSON::Tiny> for decoding requires
+setting L</CPAN_META_JSON_DECODER>.
+
=head2 PERL_JSON_BACKEND
-By default, L<JSON::PP> will be used for deserializing JSON data. If the
+If the C<CPAN_META_JSON_BACKEND> environment variable does not exist, and if
C<PERL_JSON_BACKEND> environment variable exists, is true and is not
"JSON::PP", then the L<JSON> module (version 2.5 or greater) will be loaded and
used to interpret C<PERL_JSON_BACKEND>. If L<JSON> is not installed or is too
-old, an exception will be thrown.
+old, an exception will be thrown. Note that at the time of writing, the only
+useful values are 1, which will tell L<JSON> to guess, or L<JSON::XS> - if
+you want to use a newer JSON module, see L</CPAN_META_JSON_BACKEND>.
=head2 PERL_YAML_BACKEND
@@ -277,74 +342,27 @@ as a module to use for deserialization. The given module must be installed,
must load correctly and must implement the C<Load()> function or an exception
will be thrown.
-=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
-
-=head1 SUPPORT
-
-=head2 Bugs / Feature Requests
-
-Please report any bugs or feature requests through the issue tracker
-at L<https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta/issues>.
-You will be notified automatically of any progress on your issue.
-
-=head2 Source Code
-
-This is open source software. The code repository is available for
-public review and contribution under the terms of the license.
-
-L<https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta>
-
- git clone https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta.git
-
=head1 AUTHORS
=over 4
=item *
-Adam Kennedy <adamk@cpan.org>
-
-=item *
-
David Golden <dagolden@cpan.org>
-=back
-
-=head1 CONTRIBUTORS
-
-=for stopwords Graham Knop Joshua ben Jore Karen Etheridge Neil Bowers Ricardo Signes Steffen Mueller
-
-=over 4
-
-=item *
-
-Graham Knop <haarg@haarg.org>
-
-=item *
-
-Joshua ben Jore <jjore@cpan.org>
-
-=item *
-
-Karen Etheridge <ether@cpan.org>
-
-=item *
-
-Neil Bowers <neil@bowers.com>
-
=item *
Ricardo Signes <rjbs@cpan.org>
=item *
-Steffen Mueller <smueller@cpan.org>
+Adam Kennedy <adamk@cpan.org>
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2015 by Adam Kennedy and Contributors.
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/Master/tlpkg/tlperl/lib/Perl/OSType.pm b/Master/tlpkg/tlperl/lib/Perl/OSType.pm
index 8a915771bd7..a72dd024b57 100644
--- a/Master/tlpkg/tlperl/lib/Perl/OSType.pm
+++ b/Master/tlpkg/tlperl/lib/Perl/OSType.pm
@@ -4,7 +4,7 @@ use warnings;
package Perl::OSType;
# ABSTRACT: Map Perl operating system names to generic types
-our $VERSION = '1.009';
+our $VERSION = '1.010';
require Exporter;
our @ISA = qw(Exporter);
@@ -47,6 +47,7 @@ my %OSTYPES = qw(
solaris Unix
sunos Unix
cygwin Unix
+ msys Unix
os2 Unix
interix Unix
gnu Unix
@@ -96,7 +97,7 @@ Perl::OSType - Map Perl operating system names to generic types
=head1 VERSION
-version 1.009
+version 1.010
=head1 SYNOPSIS
@@ -175,7 +176,7 @@ David Golden <dagolden@cpan.org>
=head1 CONTRIBUTORS
-=for stopwords Chris 'BinGOs' Williams Jonas B. Nielsen Owain G. Ainsworth Paul Green Piotr Roszatycki
+=for stopwords Chris 'BinGOs' Williams David Golden Graham Ollis Jonas B. Nielsen Owain G. Ainsworth Paul Green Piotr Roszatycki
=over 4
@@ -185,6 +186,14 @@ Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
=item *
+David Golden <xdg@xdg.me>
+
+=item *
+
+Graham Ollis <plicease@cpan.org>
+
+=item *
+
Jonas B. Nielsen <jonasbn@hoarfrost.local>
=item *
@@ -203,7 +212,7 @@ Piotr Roszatycki <piotr.roszatycki@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2015 by David Golden.
+This software is copyright (c) 2016 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.
diff --git a/Master/tlpkg/tlperl/lib/PerlIO.pm b/Master/tlpkg/tlperl/lib/PerlIO.pm
index 2e27f98bba2..7658ce497bc 100644
--- a/Master/tlpkg/tlperl/lib/PerlIO.pm
+++ b/Master/tlpkg/tlperl/lib/PerlIO.pm
@@ -1,6 +1,6 @@
package PerlIO;
-our $VERSION = '1.09';
+our $VERSION = '1.10';
# Map layer name to package that defines it
our %alias;
@@ -104,7 +104,7 @@ is chosen to render simple text parts (i.e. non-accented letters,
digits and common punctuation) human readable in the encoded file.
(B<CAUTION>: This layer does not validate byte sequences. For reading input,
-you should instead use C<:encoding(utf8)> instead of bare C<:utf8>.)
+you should instead use C<:encoding(UTF-8)> instead of bare C<:utf8>.)
Here is how to write your native data out using UTF-8 (or UTF-EBCDIC)
and then read it back in.
diff --git a/Master/tlpkg/tlperl/lib/PerlIO/encoding.pm b/Master/tlpkg/tlperl/lib/PerlIO/encoding.pm
index 13cb20b3bd9..08d2df4713b 100644
--- a/Master/tlpkg/tlperl/lib/PerlIO/encoding.pm
+++ b/Master/tlpkg/tlperl/lib/PerlIO/encoding.pm
@@ -1,7 +1,7 @@
package PerlIO::encoding;
use strict;
-our $VERSION = '0.24';
+our $VERSION = '0.25';
our $DEBUG = 0;
$DEBUG and warn __PACKAGE__, " called by ", join(", ", caller), "\n";
diff --git a/Master/tlpkg/tlperl/lib/PerlIO/scalar.pm b/Master/tlpkg/tlperl/lib/PerlIO/scalar.pm
index 4ed4e4060da..ce328ede238 100644
--- a/Master/tlpkg/tlperl/lib/PerlIO/scalar.pm
+++ b/Master/tlpkg/tlperl/lib/PerlIO/scalar.pm
@@ -1,5 +1,5 @@
package PerlIO::scalar;
-our $VERSION = '0.24';
+our $VERSION = '0.26';
require XSLoader;
XSLoader::load();
1;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Checker.pm b/Master/tlpkg/tlperl/lib/Pod/Checker.pm
index 2bff3c9c4c9..0d18aaedb10 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Checker.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Checker.pm
@@ -2,31 +2,27 @@
# Pod/Checker.pm -- check pod documents for syntax errors
#
# Copyright (C) 1994-2000 by Bradford Appleton. All rights reserved.
-# This file is part of "PodParser". PodParser is free software;
-# you can redistribute it and/or modify it under the same terms
-# as Perl itself.
+# This is free software; you can redistribute it and/or modify it under the
+# same terms as Perl itself.
#############################################################################
package Pod::Checker;
use strict;
+use warnings;
-use vars qw($VERSION @ISA @EXPORT %VALID_COMMANDS %VALID_SEQUENCES);
-$VERSION = '1.60'; ## Current version of this package
-require 5.005; ## requires this Perl version or later
-
-use Pod::ParseUtils; ## for hyperlinks and lists
+our $VERSION = '1.73'; ## Current version of this package
=head1 NAME
-Pod::Checker, podchecker() - check pod documents for syntax errors
+Pod::Checker - check pod documents for syntax errors
=head1 SYNOPSIS
use Pod::Checker;
- $num_errors = podchecker($filepath, $outputpath, %options);
+ $syntax_okay = podchecker($filepath, $outputpath, %options);
- my $checker = new Pod::Checker %options;
+ my $checker = Pod::Checker->new(%options);
$checker->parse_from_file($filepath, \*STDERR);
=head1 OPTIONS/ARGUMENTS
@@ -48,6 +44,10 @@ This function can take a hash of options:
Turn warnings on/off. I<val> is usually 1 for on, but higher values
trigger additional warnings. See L<"Warnings">.
+=item B<-quiet> =E<gt> I<val>
+
+If C<val> is true, do not print any errors/warnings.
+
=back
=head1 DESCRIPTION
@@ -111,42 +111,56 @@ heading!
=item * =over on line I<N> without closing =back
+=item * You forgot a '=back' before '=headI<N>'
+
+=item * =over is the last thing in the document?!
+
The C<=over> command does not have a corresponding C<=back> before the
next heading (C<=head1> or C<=head2>) or the end of the file.
-=item * =item without previous =over
+=item * '=item' outside of any '=over'
-=item * =back without previous =over
+=item * =back without =over
An C<=item> or C<=back> command has been found outside a
C<=over>/C<=back> block.
-=item * No argument for =begin
+=item * Can't have a 0 in =over I<N>
+
+You need to indent a strictly positive number of spaces, not 0.
+
+=item * =over should be: '=over' or '=over positive_number'
+
+Either have an argumentless =over, or have its argument a strictly positive number.
+
+=item * =begin I<TARGET> without matching =end I<TARGET>
+
+A C<=begin> command was found that has no matching =end command.
+
+=item * =begin without a target?
A C<=begin> command was found that is not followed by the formatter
specification.
-=item * =end without =begin
+=item * =end I<TARGET> without matching =begin.
A standalone C<=end> command was found.
-=item * Nested =begin's
+=item * '=end' without a target?
-There were at least two consecutive C<=begin> commands without
-the corresponding C<=end>. Only one C<=begin> may be active at
-a time.
+'=end' directives need to have a target, just like =begin directives.
-=item * =for without formatter specification
+=item * '=end I<TARGET>' is invalid.
-There is no specification of the formatter after the C<=for> command.
+I<TARGET> needs to be one word
-=item * Apparent command =foo not preceded by blank line
+=item * =end I<CONTENT> doesn't match =begin I<TARGET>
-A command which has ended up in the middle of a paragraph or other command,
-such as
+I<CONTENT> needs to match =begin's I<TARGET>.
- =item one
- =item two <-- bad
+=item * =for without a target?
+
+There is no specification of the formatter after the C<=for> command.
=item * unresolved internal link I<NAME>
@@ -154,60 +168,58 @@ The given link to I<NAME> does not have a matching node in the current
POD. This also happened when a single word node name is not enclosed in
C<"">.
-=item * Unknown command "I<CMD>"
+=item * Unknown directive: I<CMD>
An invalid POD command has been found. Valid are C<=head1>, C<=head2>,
C<=head3>, C<=head4>, C<=over>, C<=item>, C<=back>, C<=begin>, C<=end>,
C<=for>, C<=pod>, C<=cut>
-=item * Unknown interior-sequence "I<SEQ>"
+=item * Deleting unknown formatting code I<SEQ>
An invalid markup command has been encountered. Valid are:
C<BE<lt>E<gt>>, C<CE<lt>E<gt>>, C<EE<lt>E<gt>>, C<FE<lt>E<gt>>,
C<IE<lt>E<gt>>, C<LE<lt>E<gt>>, C<SE<lt>E<gt>>, C<XE<lt>E<gt>>,
C<ZE<lt>E<gt>>
-=item * nested commands I<CMD>E<lt>...I<CMD>E<lt>...E<gt>...E<gt>
+=item * Unterminated I<SEQ>E<lt>E<gt> sequence
-Two nested identical markup commands have been found. Generally this
-does not make sense.
+An unclosed formatting code
-=item * garbled entity I<STRING>
+=item * An EE<lt>...E<gt> surrounding strange content
The I<STRING> found cannot be interpreted as a character entity.
-=item * Entity number out of range
+=item * An empty EE<lt>E<gt>
-An entity specified by number (dec, hex, oct) is out of range (1-255).
+=item * An empty C<< LE<lt>E<gt> >>
-=item * malformed link LE<lt>E<gt>
+=item * An empty XE<lt>E<gt>
-The link found cannot be parsed because it does not conform to the
-syntax described in L<perlpod>.
+There needs to be content inside E, L, and X formatting codes.
-=item * nonempty ZE<lt>E<gt>
+=item * A non-empty ZE<lt>E<gt>
The C<ZE<lt>E<gt>> sequence is supposed to be empty.
-=item * empty XE<lt>E<gt>
-
-The index entry specified contains nothing but whitespace.
-
=item * Spurious text after =pod / =cut
The commands C<=pod> and C<=cut> do not take any arguments.
-=item * Spurious =cut command
+=item * =back doesn't take any parameters, but you said =back I<ARGUMENT>
-A C<=cut> command was found without a preceding POD paragraph.
+The C<=back> command does not take any arguments.
-=item * Spurious =pod command
+=item * =pod directives shouldn't be over one line long! Ignoring all I<N> lines of content
-A C<=pod> command was found after a preceding POD paragraph.
+Self explanatory
-=item * Spurious character(s) after =back
+=item * =cut found outside a pod block.
-The C<=back> command does not take any arguments.
+A '=cut' directive found in the middle of non-POD
+
+=item * Invalid =encoding syntax: I<CONTENT>
+
+Syntax error in =encoding directive
=back
@@ -217,7 +229,12 @@ These may not necessarily cause trouble, but indicate mediocre style.
=over 4
-=item * multiple occurrence of link target I<name>
+=item * nested commands I<CMD>E<lt>...I<CMD>E<lt>...E<gt>...E<gt>
+
+Two nested identical markup commands have been found. Generally this
+does not make sense.
+
+=item * multiple occurrences (I<N>) of link target I<name>
The POD file has some C<=item> and/or C<=head> commands that have
the same text. Potential hyperlinks to such a text cannot be unique then.
@@ -229,59 +246,46 @@ There is some whitespace on a seemingly empty line. POD is very sensitive
to such things, so this is flagged. B<vi> users switch on the B<list>
option to avoid this problem.
-=begin _disabled_
-
-=item * file does not start with =head
+=item * =item has no contents
-The file starts with a different POD directive than head.
-This is most probably something you do not want.
+There is a list C<=item> that has no text contents. You probably want to delete
+empty items.
-=end _disabled_
-
-=item * previous =item has no contents
-
-There is a list C<=item> right above the flagged line that has no
-text contents. You probably want to delete empty items.
-
-=item * preceding non-item paragraph(s)
+=item * You can't have =items (as at line I<N>) unless the first thing after the =over is an =item
A list introduced by C<=over> starts with a text or verbatim paragraph,
but continues with C<=item>s. Move the non-item paragraph out of the
C<=over>/C<=back> block.
-=item * =item type mismatch (I<one> vs. I<two>)
+=item * Expected '=item I<EXPECTED VALUE>'
+
+=item * Expected '=item *'
+
+=item * Possible =item type mismatch: 'I<x>' found leading a supposed definition =item
A list started with e.g. a bullet-like C<=item> and continued with a
numbered one. This is obviously inconsistent. For most translators the
type of the I<first> C<=item> determines the type of the list.
-=item * I<N> unescaped C<E<lt>E<gt>> in paragraph
+=item * You have '=item x' instead of the expected '=item I<N>'
-Angle brackets not written as C<E<lt>ltE<gt>> and C<E<lt>gtE<gt>>
-can potentially cause errors as they could be misinterpreted as
-markup commands. This is only printed when the -warnings level is
-greater than 1.
+Erroneous numbering of =item numbers; they need to ascend consecutively.
-=item * Unknown entity
+=item * Unknown E content in EE<lt>I<CONTENT>E<gt>
A character entity was found that does not belong to the standard
-ISO set or the POD specials C<verbar> and C<sol>.
-
-=item * No items in =over
+ISO set or the POD specials C<verbar> and C<sol>. I<Currently, this warning
+only appears if a character entity was found that does not have a Unicode
+character. This should be fixed to adhere to the original warning.>
-The list opened with C<=over> does not contain any items.
+=item * empty =over/=back block
-=item * No argument for =item
-
-C<=item> without any parameters is deprecated. It should either be followed
-by C<*> to indicate an unordered list, by a number (optionally followed
-by a dot) to indicate an ordered (numbered) list or simple text for a
-definition list.
+The list opened with C<=over> does not contain anything.
=item * empty section in previous paragraph
The previous section (introduced by a C<=head> command) does not contain
-any text. This usually indicates that something is missing. Note: A
+any valid content. This usually indicates that something is missing. Note: A
C<=head1> followed immediately by C<=head2> does not trigger this warning.
=item * Verbatim paragraph in NAME section
@@ -308,14 +312,6 @@ There are some warnings with respect to malformed hyperlinks:
There is whitespace at the beginning or the end of the contents of
LE<lt>...E<gt>.
-=item * (section) in '$page' deprecated
-
-There is a section detected in the page name of LE<lt>...E<gt>, e.g.
-C<LE<lt>passwd(2)E<gt>>. POD hyperlinks may point to POD documents only.
-Please write C<CE<lt>passwd(2)E<gt>> instead. Some formatters are able
-to expand this to appropriate code. For links to (builtin) functions,
-please say C<LE<lt>perlfunc/mkdirE<gt>>, without ().
-
=item * alternative text/node '%s' contains non-escaped | or /
The characters C<|> and C</> are special in the LE<lt>...E<gt> context.
@@ -328,6 +324,11 @@ these literal characters like this:
=back
+Note that the line number of the error/warning may refer to the line number of
+the start of the paragraph in which the error/warning exists, not the line
+number that the error/warning is on. This bug is present in errors/warnings
+related to formatting codes. I<This should be fixed.>
+
=head1 RETURN VALUE
B<podchecker> returns the number of POD syntax errors found or -1 if
@@ -337,6 +338,14 @@ there were no POD commands at all found in the file.
See L</SYNOPSIS>
+=head1 SCRIPTS
+
+The B<podchecker> script that comes with this distribution is a lean wrapper
+around this module. See the online manual with
+
+ podchecker -help
+ podchecker -man
+
=head1 INTERFACE
While checking, this module collects document properties, e.g. the nodes
@@ -345,169 +354,28 @@ POD translators can use this feature to syntax-check and get the nodes in
a first pass before actually starting to convert. This is expensive in terms
of execution time, but allows for very robust conversions.
-Since PodParser-1.24 the B<Pod::Checker> module uses only the B<poderror>
+Since v1.24 the B<Pod::Checker> module uses only the B<poderror>
method to print errors and warnings. The summary output (e.g.
"Pod syntax OK") has been dropped from the module and has been included in
B<podchecker> (the script). This allows users of B<Pod::Checker> to
control completely the output behavior. Users of B<podchecker> (the script)
get the well-known behavior.
+v1.45 inherits from Pod::Simple as opposed to all previous versions
+inheriting from Pod::Parser. Do B<not> use Pod::Simple's interface when
+using Pod::Checker unless it is documented somewhere on this page. I
+repeat, DO B<NOT> USE POD::SIMPLE'S INTERFACE.
+
=cut
#############################################################################
#use diagnostics;
use Carp qw(croak);
-use Exporter;
-use Pod::Parser;
-
-@ISA = qw(Pod::Parser);
-@EXPORT = qw(&podchecker);
-
-my %VALID_COMMANDS = (
- 'pod' => 1,
- 'cut' => 1,
- 'head1' => 1,
- 'head2' => 1,
- 'head3' => 1,
- 'head4' => 1,
- 'over' => 1,
- 'back' => 1,
- 'item' => 1,
- 'for' => 1,
- 'begin' => 1,
- 'end' => 1,
- 'encoding' => 1,
-);
-
-my %VALID_SEQUENCES = (
- 'I' => 1,
- 'B' => 1,
- 'S' => 1,
- 'C' => 1,
- 'L' => 1,
- 'F' => 1,
- 'X' => 1,
- 'Z' => 1,
- 'E' => 1,
-);
-
-# stolen from HTML::Entities
-my %ENTITIES = (
- # Some normal chars that have special meaning in SGML context
- amp => '&', # ampersand
-'gt' => '>', # greater than
-'lt' => '<', # less than
- quot => '"', # double quote
-
- # PUBLIC ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML
- AElig => '', # capital AE diphthong (ligature)
- Aacute => '', # capital A, acute accent
- Acirc => '', # capital A, circumflex accent
- Agrave => '', # capital A, grave accent
- Aring => '', # capital A, ring
- Atilde => '', # capital A, tilde
- Auml => '', # capital A, dieresis or umlaut mark
- Ccedil => '', # capital C, cedilla
- ETH => '', # capital Eth, Icelandic
- Eacute => '', # capital E, acute accent
- Ecirc => '', # capital E, circumflex accent
- Egrave => '', # capital E, grave accent
- Euml => '', # capital E, dieresis or umlaut mark
- Iacute => '', # capital I, acute accent
- Icirc => '', # capital I, circumflex accent
- Igrave => '', # capital I, grave accent
- Iuml => '', # capital I, dieresis or umlaut mark
- Ntilde => '', # capital N, tilde
- Oacute => '', # capital O, acute accent
- Ocirc => '', # capital O, circumflex accent
- Ograve => '', # capital O, grave accent
- Oslash => '', # capital O, slash
- Otilde => '', # capital O, tilde
- Ouml => '', # capital O, dieresis or umlaut mark
- THORN => '', # capital THORN, Icelandic
- Uacute => '', # capital U, acute accent
- Ucirc => '', # capital U, circumflex accent
- Ugrave => '', # capital U, grave accent
- Uuml => '', # capital U, dieresis or umlaut mark
- Yacute => '', # capital Y, acute accent
- aacute => '', # small a, acute accent
- acirc => '', # small a, circumflex accent
- aelig => '', # small ae diphthong (ligature)
- agrave => '', # small a, grave accent
- aring => '', # small a, ring
- atilde => '', # small a, tilde
- auml => '', # small a, dieresis or umlaut mark
- ccedil => '', # small c, cedilla
- eacute => '', # small e, acute accent
- ecirc => '', # small e, circumflex accent
- egrave => '', # small e, grave accent
- eth => '', # small eth, Icelandic
- euml => '', # small e, dieresis or umlaut mark
- iacute => '', # small i, acute accent
- icirc => '', # small i, circumflex accent
- igrave => '', # small i, grave accent
- iuml => '', # small i, dieresis or umlaut mark
- ntilde => '', # small n, tilde
- oacute => '', # small o, acute accent
- ocirc => '', # small o, circumflex accent
- ograve => '', # small o, grave accent
- oslash => '', # small o, slash
- otilde => '', # small o, tilde
- ouml => '', # small o, dieresis or umlaut mark
- szlig => '', # small sharp s, German (sz ligature)
- thorn => '', # small thorn, Icelandic
- uacute => '', # small u, acute accent
- ucirc => '', # small u, circumflex accent
- ugrave => '', # small u, grave accent
- uuml => '', # small u, dieresis or umlaut mark
- yacute => '', # small y, acute accent
- yuml => '', # small y, dieresis or umlaut mark
-
- # Some extra Latin 1 chars that are listed in the HTML3.2 draft (21-May-96)
- copy => '', # copyright sign
- reg => '', # registered sign
- nbsp => "\240", # non breaking space
-
- # Additional ISO-8859/1 entities listed in rfc1866 (section 14)
- iexcl => '',
- cent => '',
- pound => '',
- curren => '',
- yen => '',
- brvbar => '',
- sect => '',
- uml => '',
- ordf => '',
- laquo => '',
-'not' => '', # not is a keyword in perl
- shy => '',
- macr => '',
- deg => '',
- plusmn => '',
- sup1 => '',
- sup2 => '',
- sup3 => '',
- acute => '',
- micro => '',
- para => '',
- middot => '',
- cedil => '',
- ordm => '',
- raquo => '',
- frac14 => '',
- frac12 => '',
- frac34 => '',
- iquest => '',
-'times' => '', # times is a keyword in perl
- divide => '',
-
-# some POD special entities
- verbar => '|',
- sol => '/'
-);
+use Exporter 'import';
+use base qw/Pod::Simple::Methody/;
-##---------------------------------------------------------------------------
+our @EXPORT = qw(&podchecker);
##---------------------------------
## Function definitions begin here
@@ -522,7 +390,7 @@ sub podchecker {
$outfile ||= \*STDERR;
## Now create a pod checker
- my $checker = new Pod::Checker(%options);
+ my $checker = Pod::Checker->new(%options);
## Now check the pod document for errors
$checker->parse_from_file($infile, $outfile);
@@ -531,6 +399,7 @@ sub podchecker {
return $checker->num_errors();
}
+
##---------------------------------------------------------------------------
##-------------------------------
@@ -544,7 +413,7 @@ sub podchecker {
=item C<Pod::Checker-E<gt>new( %options )>
Return a reference to a new Pod::Checker object that inherits from
-Pod::Parser and is used for calling the required methods later. The
+Pod::Simple and is used for calling the required methods later. The
following options are recognized:
C<-warnings =E<gt> num>
@@ -558,35 +427,41 @@ POD formatters.
=cut
-## sub new {
-## my $this = shift;
-## my $class = ref($this) || $this;
-## my %params = @_;
-## my $self = {%params};
-## bless $self, $class;
-## $self->initialize();
-## return $self;
-## }
-
-sub initialize {
- my $self = shift;
- ## Initialize number of errors, and setup an error function to
- ## increment this number and then print to the designated output.
- $self->{_NUM_ERRORS} = 0;
- $self->{_NUM_WARNINGS} = 0;
- $self->{-quiet} ||= 0;
- # set the error handling subroutine
- $self->errorsub($self->{-quiet} ? sub { 1; } : 'poderror');
- $self->{_commands} = 0; # total number of POD commands encountered
- $self->{_list_stack} = []; # stack for nested lists
- $self->{_have_begin} = ''; # stores =begin
- $self->{_links} = []; # stack for internal hyperlinks
- $self->{_nodes} = []; # stack for =head/=item nodes
- $self->{_index} = []; # text in X<>
- # print warnings?
- $self->{-warnings} = 1 unless(defined $self->{-warnings});
- $self->{_current_head1} = ''; # the current =head1 block
- $self->parseopts(-process_cut_cmd => 1, -warnings => $self->{-warnings});
+sub new {
+ my $new = shift->SUPER::new(@_);
+ $new->{'output_fh'} ||= *STDERR{IO};
+
+ # Set options
+ my %opts = @_;
+ $new->{'-warnings'} = defined $opts{'-warnings'} ?
+ $opts{'-warnings'} : 1; # default on
+ $new->{'-quiet'} = $opts{'-quiet'} || 0; # default off
+
+ # Initialize number of errors/warnings
+ $new->{'_NUM_ERRORS'} = 0;
+ $new->{'_NUM_WARNINGS'} = 0;
+
+ # 'current' also means 'most recent' in the follow comments
+ $new->{'_thispara'} = ''; # current POD paragraph
+ $new->{'_line'} = 0; # current line number
+ $new->{'_head_num'} = 0; # current =head level (set to 0 to make
+ # logic easier down the road)
+ $new->{'_cmds_since_head'} = 0; # num of POD directives since prev. =headN
+ $new->{'_nodes'} = []; # stack for =head/=item nodes
+ $new->{'_fcode_stack'} = []; # stack for nested formatting codes
+ $new->{'_fcode_pos'} = []; # stack for position in paragraph of fcodes
+ $new->{'_begin_stack'} = []; # stack for =begins: [line #, target]
+ $new->{'_links'} = []; # stack for hyperlinks to external entities
+ $new->{'_internal_links'} = []; # set of linked-to internal sections
+ $new->{'_index'} = []; # stack for text in X<>s
+
+ $new->accept_targets('*'); # check all =begin/=for blocks
+ $new->cut_handler( \&handle_pod_and_cut ); # warn if text after =cut
+ $new->pod_handler( \&handle_pod_and_cut ); # warn if text after =pod
+ $new->whiteline_handler( \&handle_whiteline ); # warn if whiteline
+ $new->parse_empty_lists(1); # warn if they are empty
+
+ return $new;
}
##################################
@@ -595,9 +470,9 @@ sub initialize {
=item C<$checker-E<gt>poderror( {%opts}, @args )>
-Internal method for printing errors and warnings. If no options are
-given, simply prints "@_". The following options are recognized and used
-to form the output:
+Internal method for printing errors and warnings. If no options are given,
+simply prints "@_". The following options are recognized and used to form
+the output:
-msg
@@ -609,7 +484,8 @@ The line number the error occurred in.
-file
-The file (name) the error occurred in.
+The file (name) the error occurred in. Defaults to the name of the current
+file being processed.
-severity
@@ -623,24 +499,28 @@ sub poderror {
my %opts = (ref $_[0]) ? %{shift()} : ();
## Retrieve options
- chomp( my $msg = ($opts{-msg} || '')."@_" );
- my $line = (exists $opts{-line}) ? " at line $opts{-line}" : '';
- my $file = (exists $opts{-file}) ? " in file $opts{-file}" : '';
- unless (exists $opts{-severity}) {
+ chomp( my $msg = ($opts{'-msg'} || '')."@_" );
+ my $line = (exists $opts{'-line'}) ? " at line $opts{'-line'}" : '';
+ my $file = ' in file ' . ((exists $opts{'-file'})
+ ? $opts{'-file'}
+ : ((defined $self->source_filename)
+ ? $self->source_filename
+ : "???"));
+ unless (exists $opts{'-severity'}) {
## See if can find severity in message prefix
- $opts{-severity} = $1 if ( $msg =~ s/^\**\s*([A-Z]{3,}):\s+// );
+ $opts{'-severity'} = $1 if ( $msg =~ s/^\**\s*([A-Z]{3,}):\s+// );
}
- my $severity = (exists $opts{-severity}) ? "*** $opts{-severity}: " : '';
+ my $severity = (exists $opts{'-severity'}) ? "*** $opts{-severity}: " : '';
## Increment error count and print message "
- ++($self->{_NUM_ERRORS})
- if(!%opts || ($opts{-severity} && $opts{-severity} eq 'ERROR'));
- ++($self->{_NUM_WARNINGS})
- if(!%opts || ($opts{-severity} && $opts{-severity} eq 'WARNING'));
- unless($self->{-quiet}) {
- my $out_fh = $self->output_handle() || \*STDERR;
+ ++($self->{'_NUM_ERRORS'})
+ if(!%opts || ($opts{-severity} && $opts{'-severity'} eq 'ERROR'));
+ ++($self->{'_NUM_WARNINGS'})
+ if(!%opts || ($opts{-severity} && $opts{'-severity'} eq 'WARNING'));
+ unless($self->{'-quiet'}) {
+ my $out_fh = $self->{'output_fh'} || \*STDERR;
print $out_fh ($severity, $msg, $line, $file, "\n")
- if($self->{-warnings} || !%opts || $opts{-severity} ne 'WARNING');
+ if($self->{'-warnings'} || !%opts || $opts{'-severity'} ne 'WARNING');
}
}
@@ -653,7 +533,7 @@ Set (if argument specified) and retrieve the number of errors found.
=cut
sub num_errors {
- return (@_ > 1) ? ($_[0]->{_NUM_ERRORS} = $_[1]) : $_[0]->{_NUM_ERRORS};
+ return (@_ > 1) ? ($_[0]->{'_NUM_ERRORS'} = $_[1]) : $_[0]->{'_NUM_ERRORS'};
}
##################################
@@ -665,7 +545,8 @@ Set (if argument specified) and retrieve the number of warnings found.
=cut
sub num_warnings {
- return (@_ > 1) ? ($_[0]->{_NUM_WARNINGS} = $_[1]) : $_[0]->{_NUM_WARNINGS};
+ return (@_ > 1) ? ($_[0]->{'_NUM_WARNINGS'} = $_[1]) :
+ $_[0]->{'_NUM_WARNINGS'};
}
##################################
@@ -679,7 +560,7 @@ found in the C<=head1 NAME> section.
sub name {
return (@_ > 1 && $_[1]) ?
- ($_[0]->{-name} = $_[1]) : $_[0]->{-name};
+ ($_[0]->{'_pod_name'} = $_[1]) : $_[0]->{'_pod_name'};
}
##################################
@@ -699,12 +580,12 @@ sub node {
$text =~ s/\s+$//s; # strip trailing whitespace
$text =~ s/\s+/ /gs; # collapse whitespace
# add node, order important!
- push(@{$self->{_nodes}}, $text);
+ push(@{$self->{'_nodes'}}, $text);
# keep also a uniqueness counter
- $self->{_unique_nodes}->{$text}++ if($text !~ /^\s*$/s);
+ $self->{'_unique_nodes'}->{$text}++ if($text !~ /^\s*$/s);
return $text;
}
- @{$self->{_nodes}};
+ @{$self->{'_nodes'}};
}
##################################
@@ -724,58 +605,270 @@ sub idx {
$text =~ s/\s+$//s; # strip trailing whitespace
$text =~ s/\s+/ /gs; # collapse whitespace
# add node, order important!
- push(@{$self->{_index}}, $text);
+ push(@{$self->{'_index'}}, $text);
# keep also a uniqueness counter
- $self->{_unique_nodes}->{$text}++ if($text !~ /^\s*$/s);
+ $self->{'_unique_nodes'}->{$text}++ if($text !~ /^\s*$/s);
return $text;
}
- @{$self->{_index}};
+ @{$self->{'_index'}};
}
##################################
-=item C<$checker-E<gt>hyperlink()>
+# add a hyperlink to the list of those of the current POD; returns current
+# list after the addition has been done
+sub hyperlink {
+ my $self = shift;
+ push(@{$self->{'_links'}}, $_[0]);
+ return $_[0];
+}
-Add (if argument specified) and retrieve the hyperlinks (as defined by
-C<LE<lt>E<gt>>) of the current POD. They consist of a 2-item array: line
-number and C<Pod::Hyperlink> object.
+=item C<$checker-E<gt>hyperlinks()>
-=back
+Retrieve an array containing the hyperlinks to things outside
+the current POD (as defined by C<LE<lt>E<gt>>).
+
+Each is an instance of a class with the following methods:
=cut
-# set/return hyperlinks of the current POD
-sub hyperlink {
- my $self = shift;
- if($_[0]) {
- push(@{$self->{_links}}, $_[0]);
- return $_[0];
+sub hyperlinks {
+ @{shift->{'_links'}};
+}
+
+##################################
+
+# override Pod::Simple's whine() and scream() to use poderror()
+
+# Note:
+# Ignore $self->{'no_whining'} b/c $self->{'quiet'} takes care of it in poderror
+# Don't bother incrementing $self->{'errors_seen'} -- it's not used
+# Don't bother pushing to $self->{'errata'} b/c poderror() outputs immediately
+# We don't need to set $self->no_errata_section(1) b/c of these overrides
+
+
+sub whine {
+ my ($self, $line, $complaint) = @_;
+
+ my $severity = 'ERROR';
+
+ if (0) {
+ # XXX: Let's standardize what's a warning and what's an error. Let's not
+ # move stuff up and down the severity tree. -- rjbs, 2013-04-12
+ # Convert errors in Pod::Simple that are warnings in Pod::Checker
+ # XXX Do differently so the $complaint can be reworded without this breaking
+ $severity = 'WARNING' if
+ $complaint =~ /^Expected '=item .+?'$/ ||
+ $complaint =~ /^You can't have =items \(as at line .+?\) unless the first thing after the =over is an =item$/ ||
+ $complaint =~ /^You have '=item .+?' instead of the expected '=item .+?'$/;
+ }
+
+ $self->poderror({ -line => $line,
+ -severity => $severity,
+ -msg => $complaint });
+
+ return 1; # assume everything is peachy keen
+}
+
+sub scream {
+ my ($self, $line, $complaint) = @_;
+
+ $self->poderror({ -line => $line,
+ -severity => 'ERROR', # consider making severity 'FATAL'
+ -msg => $complaint });
+
+ return 1;
+}
+
+
+##################################
+
+# Some helper subroutines
+
+sub _init_event { # assignments done at the start of most events
+ $_[0]{'_thispara'} = '';
+ $_[0]{'_line'} = $_[1]{'start_line'};
+ $_[0]{'_cmds_since_head'}++;
+}
+
+sub _check_fcode {
+ my ($self, $inner, $outers) = @_;
+ # Check for an fcode inside another of the same fcode
+ # XXX line number is the line of the start of the paragraph that the warning
+ # is in, not the line that the warning is on. Fix this
+
+ # Later versions of Pod::Simple forbid nested L<>'s
+ return if $inner eq 'L' && $Pod::Simple::VERSION ge '3.33';
+
+ if (grep { $_ eq $inner } @$outers) {
+ $self->poderror({ -line => $self->{'_line'},
+ -severity => 'WARNING',
+ -msg => "nested commands $inner<...$inner<...>...>"});
+ }
+}
+
+##################################
+
+sub handle_text { $_[0]{'_thispara'} .= $_[1] }
+
+# whiteline is a seemingly blank line that matches /[^\S\r\n]/
+sub handle_whiteline {
+ my ($line, $line_n, $self) = @_;
+ $self->poderror({
+ -line => $line_n,
+ -severity => 'WARNING',
+ -msg => 'line containing nothing but whitespace in paragraph'});
+}
+
+######## Directives
+sub handle_pod_and_cut {
+ my ($line, $line_n, $self) = @_;
+ $self->{'_cmds_since_head'}++;
+ if ($line =~ /=(pod|cut)\s+\S/) {
+ $self->poderror({ -line => $line_n,
+ -severity => 'ERROR',
+ -msg => "Spurious text after =$1"});
}
- @{$self->{_links}};
}
-## overrides for Pod::Parser
-
-sub end_pod {
- ## Do some final checks and
- ## print the number of errors found
- my $self = shift;
- my $infile = $self->input_file();
-
- if(@{$self->{_list_stack}}) {
- my $list;
- while(($list = $self->_close_list('EOF',$infile)) &&
- $list->indent() ne 'auto') {
- $self->poderror({ -line => 'EOF', -file => $infile,
- -severity => 'ERROR', -msg => '=over on line ' .
- $list->start() . ' without closing =back' });
+sub start_Para { shift->_init_event(@_); }
+sub end_Para {
+ my $self = shift;
+ # Get the NAME of the pod document
+ if ($self->{'_head_num'} == 1 && $self->{'_head_text'} eq 'NAME') {
+ if ($self->{'_thispara'} =~ /^\s*(\S+?)\s*[,-]/) {
+ $self->{'_pod_name'} = $1 unless defined $self->{'_pod_name'};
}
}
+}
+
+sub start_Verbatim {
+ my $self = shift;
+ $self->_init_event(@_);
+
+ if ($self->{'_head_num'} == 1 && $self->{'_head_text'} eq 'NAME') {
+ $self->poderror({ -line => $self->{'_line'},
+ -severity => 'WARNING',
+ -msg => 'Verbatim paragraph in NAME section' });
+ }
+}
+# Don't need an end_Verbatim
+
+# Do I need to do anything else with this?
+sub start_Data { shift->_init_event() }
+
+sub start_head1 { shift->start_head(1, @_) }
+sub start_head2 { shift->start_head(2, @_) }
+sub start_head3 { shift->start_head(3, @_) }
+sub start_head4 { shift->start_head(4, @_) }
+sub start_head {
+ my $self = shift;
+ my $h = shift;
+ $self->_init_event(@_);
+ my $prev_h = $self->{'_head_num'};
+ $self->{'_head_num'} = $h;
+ $self->{"_count_head$h"}++;
+
+ if ($h > 1 && !$self->{'_count_head'.($h-1)}) {
+ $self->poderror({ -line => $self->{'_line'},
+ -severity => 'WARNING',
+ -msg => "=head$h without preceding higher level"});
+ }
+
+ # If this is the first =head of the doc, $prev_h is 0, thus less than $h
+ if ($self->{'_cmds_since_head'} == 1 && $prev_h >= $h) {
+ $self->poderror({ -line => $self->{'_line'},
+ -severity => 'WARNING',
+ -msg => 'empty section in previous paragraph'});
+ }
+}
+
+sub end_head1 { shift->end_head(@_) }
+sub end_head2 { shift->end_head(@_) }
+sub end_head3 { shift->end_head(@_) }
+sub end_head4 { shift->end_head(@_) }
+sub end_head {
+ my $self = shift;
+ my $arg = $self->{'_thispara'};
+ $arg =~ s/\s+$//;
+ $self->{'_head_text'} = $arg;
+ $self->{'_cmds_since_head'} = 0;
+ my $h = $self->{'_head_num'};
+ $self->node($arg); # remember this node
+ if ($arg eq '') {
+ $self->poderror({ -line => $self->{'_line'},
+ -severity => 'ERROR',
+ -msg => "empty =head$h" });
+ }
+}
+
+sub start_over_bullet { shift->start_over(@_, 'bullet') }
+sub start_over_number { shift->start_over(@_, 'number') }
+sub start_over_text { shift->start_over(@_, 'definition') }
+sub start_over_block { shift->start_over(@_, 'block') }
+sub start_over_empty {
+ my $self = shift;
+ $self->start_over(@_, 'empty');
+ $self->poderror({ -line => $self->{'_line'},
+ -severity => 'WARNING',
+ -msg => 'empty =over/=back block' });
+}
+sub start_over {
+ my $self = shift;
+ my $type = pop;
+ $self->_init_event(@_);
+}
+
+sub start_item_bullet { shift->_init_event(@_) }
+sub start_item_number { shift->_init_event(@_) }
+sub start_item_text { shift->_init_event(@_) }
+sub end_item_bullet { shift->end_item('bullet') }
+sub end_item_number { shift->end_item('number') }
+sub end_item_text { shift->end_item('definition') }
+sub end_item {
+ my $self = shift;
+ my $type = shift;
+ # If there is verbatim text in this item, it will show up as part of
+ # 'paras', and not part of '_thispara'. If the first para after this is a
+ # verbatim one, it actually will be (part of) the contents for this item.
+ if ( $self->{'_thispara'} eq ''
+ && ( ! @{$self->{'paras'}}
+ || $self->{'paras'}[0][0] !~ /Verbatim/i))
+ {
+ $self->poderror({ -line => $self->{'_line'},
+ -severity => 'WARNING',
+ -msg => '=item has no contents' });
+ }
+
+ $self->node($self->{'_thispara'}); # remember this node
+}
+
+sub start_for { # =for and =begin directives
+ my ($self, $flags) = @_;
+ $self->_init_event($flags);
+ push @{$self->{'_begin_stack'}}, [$self->{'_line'}, $flags->{'target'}];
+}
+
+sub end_for {
+ my ($self, $flags) = @_;
+ my ($line, $target) = @{pop @{$self->{'_begin_stack'}}};
+ if ($flags->{'fake-closer'}) { # meaning Pod::Simple generated this =end
+ $self->poderror({ -line => $line,
+ -severity => 'ERROR',
+ -msg => "=begin $target without matching =end $target"
+ });
+ }
+}
+
+sub end_Document {
+ # Some final error checks
+ my $self = shift;
+
+ # no POD found here
+ $self->num_errors(-1) && return unless $self->content_seen;
- # check validity of document internal hyperlinks
- # first build the node names from the paragraph text
my %nodes;
- foreach($self->node()) {
+ for ($self->node()) {
$nodes{$_} = 1;
if(/^(\S+)\s+\S/) {
# we have more than one word. Use the first as a node, too.
@@ -783,548 +876,215 @@ sub end_pod {
$nodes{$1} ||= 2; # derived node
}
}
- foreach($self->idx()) {
+ for ($self->idx()) {
$nodes{$_} = 3; # index node
}
- foreach($self->hyperlink()) {
- my ($line,$link) = @$_;
- # _TODO_ what if there is a link to the page itself by the name,
- # e.g. in Tk::Pod : L<Tk::Pod/"DESCRIPTION">
- if($link->node() && !$link->page() && $link->type() ne 'hyperlink') {
- my $node = $self->_check_ptree($self->parse_text($link->node(),
- $line), $line, $infile, 'L');
- if($node && !$nodes{$node}) {
- $self->poderror({ -line => $line || '', -file => $infile,
- -severity => 'ERROR',
- -msg => "unresolved internal link '$node'"});
- }
+
+ # XXX update unresolved internal link POD -- single word not enclosed in ""?
+ # I don't know what I was thinking when I made the above TODO, and I don't
+ # know what it means...
+
+ for my $link (@{ $self->{'_internal_links'} }) {
+ my ($name, $line) = @$link;
+ unless ( $nodes{$name} ) {
+ $self->poderror({ -line => $line,
+ -severity => 'ERROR',
+ -msg => "unresolved internal link '$name'"});
}
}
# check the internal nodes for uniqueness. This pertains to
# =headX, =item and X<...>
- if($self->{-warnings} && $self->{-warnings}>1) {
- foreach(grep($self->{_unique_nodes}->{$_} > 1,
- keys %{$self->{_unique_nodes}})) {
- $self->poderror({ -line => '-', -file => $infile,
- -severity => 'WARNING',
- -msg => "multiple occurrence of link target '$_'"});
- }
- }
-
- # no POD found here
- $self->num_errors(-1) if($self->{_commands} == 0);
-}
-
-# check a POD command directive
-sub command {
- my ($self, $cmd, $paragraph, $line_num, $pod_para) = @_;
- my ($file, $line) = $pod_para->file_line;
- ## Check the command syntax
- my $arg; # this will hold the command argument
- if (! $VALID_COMMANDS{$cmd}) {
- $self->poderror({ -line => $line, -file => $file, -severity => 'ERROR',
- -msg => "Unknown command '$cmd'" });
- }
- else { # found a valid command
- $self->{_commands}++; # delete this line if below is enabled again
-
- $self->_commands_in_paragraphs($paragraph, $pod_para);
-
- ##### following check disabled due to strong request
- #if(!$self->{_commands}++ && $cmd !~ /^head/) {
- # $self->poderror({ -line => $line, -file => $file,
- # -severity => 'WARNING',
- # -msg => "file does not start with =head" });
- #}
-
- # check syntax of particular command
- if($cmd eq 'over') {
- # check for argument
- $arg = $self->interpolate_and_check($paragraph, $line,$file);
- my $indent = 4; # default
- if($arg && $arg =~ /^\s*(\d+)\s*$/) {
- $indent = $1;
- }
- # start a new list
- $self->_open_list($indent,$line,$file);
- }
- elsif($cmd eq 'item') {
- # are we in a list?
- unless(@{$self->{_list_stack}}) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => '=item without previous =over' });
- # auto-open in case we encounter many more
- $self->_open_list('auto',$line,$file);
- }
- my $list = $self->{_list_stack}->[0];
- # check whether the previous item had some contents
- if(defined $self->{_list_item_contents} &&
- $self->{_list_item_contents} == 0) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => 'previous =item has no contents' });
- }
- if($list->{_has_par}) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => 'preceding non-item paragraph(s)' });
- delete $list->{_has_par};
- }
- # check for argument
- $arg = $self->interpolate_and_check($paragraph, $line, $file);
- if($arg && $arg =~ /(\S+)/) {
- $arg =~ s/[\s\n]+$//;
- my $type;
- if($arg =~ /^[*]\s*(\S*.*)/) {
- $type = 'bullet';
- $self->{_list_item_contents} = $1 ? 1 : 0;
- $arg = $1;
- }
- elsif($arg =~ /^\d+\.?\s+(\S*)/) {
- $type = 'number';
- $self->{_list_item_contents} = $1 ? 1 : 0;
- $arg = $1;
- }
- else {
- $type = 'definition';
- $self->{_list_item_contents} = 1;
- }
- my $first = $list->type();
- if($first && $first ne $type) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => "=item type mismatch ('$first' vs. '$type')"});
- }
- else { # first item
- $list->type($type);
- }
- }
- else {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => 'No argument for =item' });
- $arg = ' '; # empty
- $self->{_list_item_contents} = 0;
- }
- # add this item
- $list->item($arg);
- # remember this node
- $self->node($arg);
- }
- elsif($cmd eq 'back') {
- # check if we have an open list
- unless(@{$self->{_list_stack}}) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => '=back without previous =over' });
- }
- else {
- # check for spurious characters
- $arg = $self->interpolate_and_check($paragraph, $line,$file);
- if($arg && $arg =~ /\S/) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => 'Spurious character(s) after =back' });
- }
- # close list
- my $list = $self->_close_list($line,$file);
- # check for empty lists
- if(!$list->item() && $self->{-warnings}) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => 'No items in =over (at line ' .
- $list->start() . ') / =back list'});
- }
- }
- }
- elsif($cmd =~ /^head(\d+)/) {
- my $hnum = $1;
- $self->{"_have_head_$hnum"}++; # count head types
- if($hnum > 1 && !$self->{'_have_head_'.($hnum -1)}) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => "=head$hnum without preceding higher level"});
- }
- # check whether the previous =head section had some contents
- if(defined $self->{_commands_in_head} &&
- $self->{_commands_in_head} == 0 &&
- defined $self->{_last_head} &&
- $self->{_last_head} >= $hnum) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => 'empty section in previous paragraph'});
- }
- $self->{_commands_in_head} = -1;
- $self->{_last_head} = $hnum;
- # check if there is an open list
- if(@{$self->{_list_stack}}) {
- my $list;
- while(($list = $self->_close_list($line,$file)) &&
- $list->indent() ne 'auto') {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => '=over on line '. $list->start() .
- " without closing =back (at $cmd)" });
- }
- }
- # remember this node
- $arg = $self->interpolate_and_check($paragraph, $line,$file);
- $arg =~ s/[\s\n]+$//s;
- $self->node($arg);
- unless(length($arg)) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => "empty =$cmd"});
- }
- if($cmd eq 'head1') {
- $self->{_current_head1} = $arg;
- } else {
- $self->{_current_head1} = '';
- }
- }
- elsif($cmd eq 'begin') {
- if($self->{_have_begin}) {
- # already have a begin
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => q{Nested =begin's (first at line } .
- $self->{_have_begin} . ')'});
- }
- else {
- # check for argument
- $arg = $self->interpolate_and_check($paragraph, $line,$file);
- unless($arg && $arg =~ /(\S+)/) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => 'No argument for =begin'});
- }
- # remember the =begin
- $self->{_have_begin} = "$line:$1";
- }
- }
- elsif($cmd eq 'end') {
- if($self->{_have_begin}) {
- # close the existing =begin
- $self->{_have_begin} = '';
- # check for spurious characters
- $arg = $self->interpolate_and_check($paragraph, $line,$file);
- # the closing argument is optional
- #if($arg && $arg =~ /\S/) {
- # $self->poderror({ -line => $line, -file => $file,
- # -severity => 'WARNING',
- # -msg => "Spurious character(s) after =end" });
- #}
- }
- else {
- # don't have a matching =begin
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => '=end without =begin' });
- }
- }
- elsif($cmd eq 'for') {
- unless($paragraph =~ /\s*(\S+)\s*/) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => '=for without formatter specification' });
- }
- $arg = ''; # do not expand paragraph below
- }
- elsif($cmd =~ /^(pod|cut)$/) {
- # check for argument
- $arg = $self->interpolate_and_check($paragraph, $line,$file);
- if($arg && $arg =~ /(\S+)/) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => "Spurious text after =$cmd"});
+ if ($self->{'-warnings'} > 1 ) {
+ for my $node (sort keys %{ $self->{'_unique_nodes'} }) {
+ my $count = $self->{'_unique_nodes'}{$node};
+ if ($count > 1) { # not unique
+ $self->poderror({
+ -line => '-',
+ -severity => 'WARNING',
+ -msg => "multiple occurrences ($count) of link target ".
+ "'$node'"});
}
- if($cmd eq 'cut' && (!$self->{_PREVIOUS} || $self->{_PREVIOUS} eq 'cut')) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => "Spurious =cut command"});
- }
- if($cmd eq 'pod' && $self->{_PREVIOUS} && $self->{_PREVIOUS} ne 'cut') {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => "Spurious =pod command"});
- }
}
- $self->{_commands_in_head}++;
- ## Check the interior sequences in the command-text
- $self->interpolate_and_check($paragraph, $line,$file)
- unless(defined $arg);
}
}
-sub _open_list
-{
- my ($self,$indent,$line,$file) = @_;
- my $list = Pod::List->new(
- -indent => $indent,
- -start => $line,
- -file => $file);
- unshift(@{$self->{_list_stack}}, $list);
- undef $self->{_list_item_contents};
- $list;
-}
+######## Formatting codes
-sub _close_list
-{
- my ($self,$line,$file) = @_;
- my $list = shift(@{$self->{_list_stack}});
- if(defined $self->{_list_item_contents} &&
- $self->{_list_item_contents} == 0) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => 'previous =item has no contents' });
- }
- undef $self->{_list_item_contents};
- $list;
+sub start_B { shift->start_fcode('B') }
+sub start_C { shift->start_fcode('C') }
+sub start_F { shift->start_fcode('F') }
+sub start_I { shift->start_fcode('I') }
+sub start_S { shift->start_fcode('S') }
+sub start_fcode {
+ my ($self, $fcode) = @_;
+ unshift @{$self->{'_fcode_stack'}}, $fcode;
}
-# process a block of some text
-sub interpolate_and_check {
- my ($self, $paragraph, $line, $file) = @_;
- ## Check the interior sequences in the command-text
- # and return the text
- $self->_check_ptree(
- $self->parse_text($paragraph,$line), $line, $file, '');
+sub end_B { shift->end_fcode() }
+sub end_C { shift->end_fcode() }
+sub end_F { shift->end_fcode() }
+sub end_I { shift->end_fcode() }
+sub end_S { shift->end_fcode() }
+sub end_fcode {
+ my $self = shift;
+ $self->_check_fcode(shift @{$self->{'_fcode_stack'}}, # current fcode removed
+ $self->{'_fcode_stack'}); # previous fcodes
}
-sub _check_ptree {
- my ($self,$ptree,$line,$file,$nestlist) = @_;
- local($_);
- my $text = '';
- # process each node in the parse tree
- foreach(@$ptree) {
- # regular text chunk
- unless(ref) {
- # count the unescaped angle brackets
- # complain only when warning level is greater than 1
- if($self->{-warnings} && $self->{-warnings}>1) {
- my $count;
- if($count = tr/<>/<>/) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => "$count unescaped <> in paragraph" });
- }
- }
- $text .= $_;
- next;
- }
- # have an interior sequence
- my $cmd = $_->cmd_name();
- my $contents = $_->parse_tree();
- ($file,$line) = $_->file_line();
- # check for valid tag
- if (! $VALID_SEQUENCES{$cmd}) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => qq(Unknown interior-sequence '$cmd')});
- # expand it anyway
- $text .= $self->_check_ptree($contents, $line, $file, "$nestlist$cmd");
- next;
- }
- if(index($nestlist, $cmd) != -1) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => "nested commands $cmd<...$cmd<...>...>"});
- # _TODO_ should we add the contents anyway?
- # expand it anyway, see below
- }
- if($cmd eq 'E') {
- # preserve entities
- if(@$contents > 1 || ref $$contents[0] || $$contents[0] !~ /^\w+$/) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => 'garbled entity ' . $_->raw_text()});
- next;
- }
- my $ent = $$contents[0];
- my $val;
- if($ent =~ /^0x[0-9a-f]+$/i) {
- # hexadec entity
- $val = hex($ent);
- }
- elsif($ent =~ /^0\d+$/) {
- # octal
- $val = oct($ent);
- }
- elsif($ent =~ /^\d+$/) {
- # numeric entity
- $val = $ent;
- }
- if(defined $val) {
- if($val>0 && $val<256) {
- $text .= chr($val);
- }
- else {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => 'Entity number out of range ' . $_->raw_text()});
- }
- }
- elsif($ENTITIES{$ent}) {
- # known ISO entity
- $text .= $ENTITIES{$ent};
- }
- else {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => 'Unknown entity ' . $_->raw_text()});
- $text .= "E<$ent>";
- }
- }
- elsif($cmd eq 'L') {
- # try to parse the hyperlink
- my $link = Pod::Hyperlink->new($contents->raw_text());
- unless(defined $link) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => 'malformed link ' . $_->raw_text() ." : $@"});
- next;
- }
- $link->line($line); # remember line
- if($self->{-warnings}) {
- foreach my $w ($link->warning()) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => $w });
- }
- }
- # check the link text
- $text .= $self->_check_ptree($self->parse_text($link->text(),
- $line), $line, $file, "$nestlist$cmd");
- # remember link
- $self->hyperlink([$line,$link]);
- }
- elsif($cmd =~ /[BCFIS]/) {
- # add the guts
- $text .= $self->_check_ptree($contents, $line, $file, "$nestlist$cmd");
- }
- elsif($cmd eq 'Z') {
- if(length($contents->raw_text())) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => 'Nonempty Z<>'});
- }
- }
- elsif($cmd eq 'X') {
- my $idx = $self->_check_ptree($contents, $line, $file, "$nestlist$cmd");
- if($idx =~ /^\s*$/s) {
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => 'Empty X<>'});
- }
- else {
- # remember this node
- $self->idx($idx);
- }
+sub start_L {
+ my ($self, $flags) = @_;
+ $self->start_fcode('L');
+
+ my $link = Pod::Checker::Hyperlink->new($flags, $self);
+ if ($link) {
+ if ( $link->type eq 'pod'
+ && $link->node
+ # It's an internal-to-this-page link if no page is given, or
+ # if the given one is to our NAME.
+ && (! $link->page || ( $self->{'_pod_name'}
+ && $link->page eq $self->{'_pod_name'})))
+ {
+ push @{ $self->{'_internal_links'} }, [ $link->{'-raw_node'}, $link->line ];
}
else {
- # not reached
- croak 'internal error';
+ $self->hyperlink($link);
}
}
- $text;
}
-# process a block of verbatim text
-sub verbatim {
- ## Nothing particular to check
- my ($self, $paragraph, $line_num, $pod_para) = @_;
-
- $self->_preproc_par($paragraph);
- $self->_commands_in_paragraphs($paragraph, $pod_para);
+sub end_L {
+ my $self = shift;
+ $self->end_fcode();
+}
- if($self->{_current_head1} eq 'NAME') {
- my ($file, $line) = $pod_para->file_line;
- $self->poderror({ -line => $line, -file => $file,
- -severity => 'WARNING',
- -msg => 'Verbatim paragraph in NAME section' });
+sub start_X {
+ my $self = shift;
+ $self->start_fcode('X');
+ # keep track of where X<> starts in the paragraph
+ # (this is a stack so nested X<>s are handled correctly)
+ push @{$self->{'_fcode_pos'}}, length $self->{'_thispara'};
+}
+sub end_X {
+ my $self = shift;
+ # extract contents of X<> and replace with ''
+ my $start = pop @{$self->{'_fcode_pos'}}; # start at the beginning of X<>
+ my $end = length($self->{'_thispara'}) - $start; # end at end of X<>
+ my $x = substr($self->{'_thispara'}, $start, $end, '');
+ if ($x eq "") {
+ $self->poderror({ -line => $self->{'_line'},
+ -severity => 'ERROR',
+ -msg => "An empty X<>" });
}
+ $self->idx($x); # remember this node
+ $self->end_fcode();
}
-# process a block of regular text
-sub textblock {
- my ($self, $paragraph, $line_num, $pod_para) = @_;
- my ($file, $line) = $pod_para->file_line;
-
- $self->_preproc_par($paragraph);
- $self->_commands_in_paragraphs($paragraph, $pod_para);
-
- # skip this paragraph if in a =begin block
- unless($self->{_have_begin}) {
- my $block = $self->interpolate_and_check($paragraph, $line,$file);
- if($self->{_current_head1} eq 'NAME') {
- if($block =~ /^\s*(\S+?)\s*[,-]/) {
- # this is the canonical name
- $self->{-name} = $1 unless(defined $self->{-name});
- }
- }
+package Pod::Checker::Hyperlink;
+
+# This class is used to represent L<> link structures, so that the individual
+# elements are easily accessible. It is based on code in Pod::Hyperlink
+
+sub new {
+ my ($class,
+ $simple_link, # The link structure returned by Pod::Simple
+ $caller # The caller class
+ ) = @_;
+
+ my $self = +{};
+ bless $self, $class;
+
+ $self->{'-line'} ||= $caller->{'_line'};
+ $self->{'-type'} ||= $simple_link->{'type'};
+
+ # Force stringification of page and node. (This expands any E<>.)
+ $self->{'-page'} = exists $simple_link->{'to'} ? "$simple_link->{'to'}" : "";
+ $self->{'-node'} = exists $simple_link->{'section'} ? "$simple_link->{'section'}" : "";
+
+ # Save the unmodified node text, as the .t files are expecting the message
+ # for internal link failures to include it (hence this preserves backward
+ # compatibility).
+ $self->{'-raw_node'} = $self->{'-node'};
+
+ # Remove leading/trailing white space. Pod::Simple already warns about
+ # these, so if the only error is this, and the link is otherwise correct,
+ # only the Pod::Simple warning will be output, avoiding unnecessary
+ # confusion.
+ $self->{'-page'} =~ s/ ^ \s+ //x;
+ $self->{'-page'} =~ s/ \s+ $ //x;
+
+ $self->{'-node'} =~ s/ ^ \s+ //x;
+ $self->{'-node'} =~ s/ \s+ $ //x;
+
+ # Pod::Simple warns about L<> and L< >, but not L</>
+ if ($self->{'-page'} eq "" && $self->{'-node'} eq "") {
+ $caller->poderror({ -line => $caller->{'_line'},
+ -severity => 'WARNING',
+ -msg => 'empty link'});
+ return;
}
+
+ return $self;
}
-sub _preproc_par
-{
- my $self = shift;
- $_[0] =~ s/[\s\n]+$//;
- if($_[0]) {
- $self->{_commands_in_head}++;
- $self->{_list_item_contents}++ if(defined $self->{_list_item_contents});
- if(@{$self->{_list_stack}} && !$self->{_list_stack}->[0]->item()) {
- $self->{_list_stack}->[0]->{_has_par} = 1;
- }
- }
+=item line()
+
+Returns the approximate line number in which the link was encountered
+
+=cut
+
+sub line {
+ return $_[0]->{-line};
}
-# look for =foo commands at the start of a line within a paragraph, as for
-# instance the following which prints as "* one =item two".
-#
-# =item one
-# =item two
-#
-# Examples of =foo written in docs are expected to be indented in a verbatim
-# or marked up C<=foo> so won't be caught. A double-angle C<< =foo >> could
-# have the =foo at the start of a line, but that should be unlikely and is
-# easily enough dealt with by not putting a newline after the C<<.
-#
-sub _commands_in_paragraphs {
- my ($self, $str, $pod_para) = @_;
- while ($str =~ /[^\n]\n=([a-z][a-z0-9]+)/sg) {
- my $cmd = $1;
- my $pos = pos($str);
- if ($VALID_COMMANDS{$cmd}) {
- my ($file, $line) = $pod_para->file_line;
- my $part = substr($str, 0, $pos);
- $line += ($part =~ tr/\n//); # count of newlines
-
- $self->poderror
- ({ -line => $line, -file => $file,
- -severity => 'ERROR',
- -msg => "Apparent command =$cmd not preceded by blank line"});
- }
- }
+=item type()
+
+Returns the type of the link; one of:
+C<"url"> for things like
+C<http://www.foo>, C<"man"> for man pages, or C<"pod">.
+
+=cut
+
+sub type {
+ return $_[0]->{-type};
}
-1;
+=item page()
-__END__
+Returns the linked-to page or url.
+
+=cut
+
+sub page {
+ return $_[0]->{-page};
+}
+
+=item node()
+
+Returns the anchor or node within the linked-to page, or an empty string
+(C<"">) if none appears in the link.
+
+=back
+
+=cut
+
+sub node {
+ return $_[0]->{-node};
+}
=head1 AUTHOR
Please report bugs using L<http://rt.cpan.org>.
Brad Appleton E<lt>bradapp@enteract.comE<gt> (initial version),
-Marek Rouchal E<lt>marekr@cpan.orgE<gt>
+Marek Rouchal E<lt>marekr@cpan.orgE<gt>,
+Marc Green E<lt>marcgreen@cpan.orgE<gt> (port to Pod::Simple)
+Ricardo Signes E<lt>rjbs@cpan.orgE<gt> (more porting to Pod::Simple)
+Karl Williamson E<lt>khw@cpan.orgE<gt> (more porting to Pod::Simple)
Based on code for B<Pod::Text::pod2text()> written by
Tom Christiansen E<lt>tchrist@mox.perl.comE<gt>
-B<Pod::Checker> is part of the Pod-Checker distribution, and is based on
-L<Pod::Parser>.
-
=cut
+1
diff --git a/Master/tlpkg/tlperl/lib/Pod/Functions.pm b/Master/tlpkg/tlperl/lib/Pod/Functions.pm
index 55d6e826659..f71f6e375b1 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Functions.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Functions.pm
@@ -8,7 +8,7 @@ Pod::Functions - Group Perl's functions a la perlfunc.pod
=head1 SYNOPSIS
use Pod::Functions;
-
+
my @misc_ops = @{ $Kinds{ 'Misc' } };
my $misc_dsc = $Type_Description{ 'Misc' };
@@ -54,7 +54,7 @@ L<perlfunc/"Perl Functions by Category"> section.
=cut
-our $VERSION = '1.10';
+our $VERSION = '1.11';
require Exporter;
@@ -312,7 +312,7 @@ sqrt Math square root function
srand Math seed the random number generator
stat File get a file's status information
state Namespace declare and assign a persistent lexical variable
-study Regexp optimize input data for repeated searches
+study Regexp no-op, formerly optimized input data for repeated searches
sub Flow declare a subroutine, possibly anonymously
__SUB__ Flow the current subroutine, or C<undef> if not in a subroutine
substr String get or alter a portion of a string
diff --git a/Master/tlpkg/tlperl/lib/Pod/Html.pm b/Master/tlpkg/tlperl/lib/Pod/Html.pm
index cef329e1ef9..5b3463687b6 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Html.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Html.pm
@@ -3,7 +3,7 @@ use strict;
require Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-$VERSION = 1.2201;
+$VERSION = 1.2202;
@ISA = qw(Exporter);
@EXPORT = qw(pod2html htmlify);
@EXPORT_OK = qw(anchorify);
@@ -486,7 +486,7 @@ sub parse_command_line {
my ($opt_backlink,$opt_cachedir,$opt_css,$opt_flush,$opt_header,
$opt_help,$opt_htmldir,$opt_htmlroot,$opt_index,$opt_infile,
$opt_outfile,$opt_poderrors,$opt_podpath,$opt_podroot,
- $opt_quiet,$opt_recurse,$opt_title,$opt_verbose,$opt_libpods);
+ $opt_quiet,$opt_recurse,$opt_title,$opt_verbose);
unshift @ARGV, split ' ', $Config{pod2html} if $Config{pod2html};
my $result = GetOptions(
@@ -500,7 +500,6 @@ sub parse_command_line {
'htmlroot=s' => \$opt_htmlroot,
'index!' => \$opt_index,
'infile=s' => \$opt_infile,
- 'libpods=s' => \$opt_libpods, # deprecated
'outfile=s' => \$opt_outfile,
'poderrors!' => \$opt_poderrors,
'podpath=s' => \$opt_podpath,
@@ -516,7 +515,6 @@ sub parse_command_line {
$opt_help = ""; # just to make -w shut-up.
@Podpath = split(":", $opt_podpath) if defined $opt_podpath;
- warn "--libpods is no longer supported" if defined $opt_libpods;
$Backlink = $opt_backlink if defined $opt_backlink;
$Cachedir = _unixify($opt_cachedir) if defined $opt_cachedir;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Man.pm b/Master/tlpkg/tlperl/lib/Pod/Man.pm
index b739559551d..886f614c7e6 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Man.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Man.pm
@@ -43,7 +43,7 @@ BEGIN {
@ISA = qw(Pod::Simple);
-$VERSION = '4.07';
+$VERSION = '4.09';
# Set the debugging level. If someone has inserted a debug function into this
# class already, use that. Otherwise, use any Pod::Simple debug function
@@ -216,12 +216,13 @@ sub init_fonts {
}
# Initialize the quotes that we'll be using for C<> text. This requires some
-# special handling, both to parse the user parameter if given and to make sure
-# that the quotes will be safe against *roff. Sets the internal hash keys
-# LQUOTE and RQUOTE.
+# special handling, both to parse the user parameters if given and to make
+# sure that the quotes will be safe against *roff. Sets the internal hash
+# keys LQUOTE and RQUOTE.
sub init_quotes {
my ($self) = (@_);
+ # Handle the quotes option first, which sets both quotes at once.
$$self{quotes} ||= '"';
if ($$self{quotes} eq 'none') {
$$self{LQUOTE} = $$self{RQUOTE} = '';
@@ -235,6 +236,14 @@ sub init_quotes {
croak(qq(Invalid quote specification "$$self{quotes}"))
}
+ # Now handle the lquote and rquote options.
+ if (defined $$self{lquote}) {
+ $$self{LQUOTE} = $$self{lquote} eq 'none' ? q{} : $$self{lquote};
+ }
+ if (defined $$self{rquote}) {
+ $$self{RQUOTE} = $$self{rquote} eq 'none' ? q{} : $$self{rquote};
+ }
+
# Double the first quote; note that this should not be s///g as two double
# quotes is represented in *roff as three double quotes, not four. Weird,
# I know.
@@ -514,9 +523,9 @@ sub guesswork {
# entire warranty disclaimers in man page output into small caps.
if ($$self{MAGIC_SMALLCAPS}) {
s{
- ( ^ | [\s\(\"\'\`\[\{<>] | \\[ ] ) # (1)
- ( [A-Z] [A-Z] (?: [/A-Z+:\d_\$&] | \\- | [.,\"\s] )* ) # (2)
- (?= [\s>\}\]\(\)\'\".?!,;] | \\*\(-- | \\[ ] | $ ) # (3)
+ ( ^ | [\s\(\"\'\`\[\{<>] | \\[ ] ) # (1)
+ ( [A-Z] [A-Z] (?: \s? [/A-Z+:\d_\$&] | \\- | \s? [.,\"] )* ) # (2)
+ (?= [\s>\}\]\(\)\'\".?!,;] | \\*\(-- | \\[ ] | $ ) # (3)
} {
$1 . '\s-1' . $2 . '\s0'
}egx;
@@ -549,6 +558,7 @@ sub guesswork {
if ($$self{MAGIC_MANREF}) {
s{
( \b | \\s-1 )
+ (?<! \\ ) # rule out \s0(1)
( [A-Za-z_] (?:[.:\w] | \\- | \\s-?[01])+ )
( \( \d [a-z]* \) )
} {
@@ -854,12 +864,16 @@ sub devise_title {
# If Pod::Parser gave us an IO::File reference as the source file name,
# convert that to the empty string as well. Then, if we don't have a
- # valid name, emit a warning and convert it to STDIN.
+ # valid name, convert it to STDIN.
+ #
+ # In podlators 4.00 through 4.07, this also produced a warning, but that
+ # was surprising to a lot of programs that had expected to be able to pipe
+ # POD through pod2man without specifying the name. In the name of
+ # backward compatibility, just quietly set STDIN as the page title.
if ($name =~ /^IO::File(?:=\w+)\(0x[\da-f]+\)$/i) {
$name = '';
}
if ($name eq '') {
- $self->whine (1, 'No name given for document');
$name = 'STDIN';
}
@@ -1632,7 +1646,7 @@ __END__
=for stopwords
en em ALLCAPS teeny fixedbold fixeditalic fixedbolditalic stderr utf8
UTF-8 Allbery Sean Burke Ossanna Solaris formatters troff uppercased
-Christiansen nourls parsers Kernighan
+Christiansen nourls parsers Kernighan lquote rquote
=head1 NAME
@@ -1743,6 +1757,20 @@ Pod::Man doesn't assume you have this, and defaults to C<CB>. Some
systems (such as Solaris) have this font available as C<CX>. Only matters
for B<troff> output.
+=item lquote
+
+=item rquote
+
+Sets the quote marks used to surround CE<lt>> text. C<lquote> sets the
+left quote mark and C<rquote> sets the right quote mark. Either may also
+be set to the special value C<none>, in which case no quote mark is added
+on that side of CE<lt>> text (but the font is still changed for troff
+output).
+
+Also see the C<quotes> option, which can be used to set both quotes at once.
+If both C<quotes> and one of the other options is set, C<lquote> or C<rquote>
+overrides C<quotes>.
+
=item name
Set the name of the manual page for the C<.TH> macro. Without this
@@ -1752,9 +1780,9 @@ parsed to see if it is a Perl module path. If it is, a path like
C<.../lib/Pod/Man.pm> is converted into a name like C<Pod::Man>. This
option, if given, overrides any automatic determination of the name.
-If generating a manual page from standard input, this option is required,
-since there's otherwise no way for Pod::Man to know what to use for the
-manual page name.
+If generating a manual page from standard input, the name will be set to
+C<STDIN> if this option is not provided. Providing this option is strongly
+recommended to set a meaningful manual page name.
=item nourls
@@ -1783,6 +1811,10 @@ This may also be set to the special value C<none>, in which case no quote
marks are added around CE<lt>> text (but the font is still changed for troff
output).
+Also see the C<lquote> and C<rquote> options, which can be used to set the
+left and right quotes independently. If both C<quotes> and one of the other
+options is set, C<lquote> or C<rquote> overrides C<quotes>.
+
=item release
Set the centered footer for the C<.TH> macro. By default, this is set to
diff --git a/Master/tlpkg/tlperl/lib/Pod/ParseLink.pm b/Master/tlpkg/tlperl/lib/Pod/ParseLink.pm
index a9e6b34d3ab..9a37a0532c2 100644
--- a/Master/tlpkg/tlperl/lib/Pod/ParseLink.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/ParseLink.pm
@@ -31,7 +31,7 @@ use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(parselink);
-$VERSION = '4.07';
+$VERSION = '4.09';
##############################################################################
# Implementation
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc.pm
index 787353ba588..8d695b2b4b6 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc.pm
@@ -12,8 +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.25_03'; # patched in perl5.git
-$VERSION =~ s/_//;
+$VERSION = '3.28';
#..........................................................................
@@ -285,7 +284,8 @@ Options:
-m Display module's file in its entirety
-n Specify replacement for groff
-l Display the module's file name
- -F Arguments are file names, not modules
+ -U Don't attempt to drop privs for security
+ -F Arguments are file names, not modules (implies -U)
-D Verbosely describe what's going on
-T Send output to STDOUT without any pager
-d output_filename_to_send_to
@@ -393,7 +393,7 @@ sub usage_brief {
my $program_name = $self->program_name;
CORE::die( <<"EOUSAGE" );
-Usage: $program_name [-hVriDtumFXlT] [-n nroffer_program]
+Usage: $program_name [-hVriDtumUFXlT] [-n nroffer_program]
[-d output_filename] [-o output_format] [-M FormatterModule]
[-w formatter_option:option_value] [-L translation_code]
PageName|ModuleName|ProgramName
@@ -486,7 +486,8 @@ sub init_formatter_class_list {
$self->opt_M_with('Pod::Perldoc::ToPod'); # the always-there fallthru
$self->opt_o_with('text');
- $self->opt_o_with('term') unless $self->is_mswin32 || $self->is_dos || $self->is_amigaos
+ $self->opt_o_with('term')
+ unless $self->is_mswin32 || $self->is_dos || $self->is_amigaos
|| !($ENV{TERM} && (
($ENV{TERM} || '') !~ /dumb|emacs|none|unknown/i
));
@@ -521,7 +522,7 @@ sub process {
$self->options_reading;
$self->pagers_guessing;
$self->aside(sprintf "$0 => %s v%s\n", ref($self), $self->VERSION);
- $self->drop_privs_maybe unless $self->opt_U;
+ $self->drop_privs_maybe unless ($self->opt_U || $self->opt_F);
$self->options_processing;
# Hm, we have @pages and @found, but we only really act on one
@@ -850,8 +851,11 @@ sub grand_search_init {
=~ s/\.P(?:[ML]|OD)\z//;
}
else {
- print STDERR "No " .
+ print STDERR "No " .
($self->opt_m ? "module" : "documentation") . " found for \"$_\".\n";
+ if ( /^https/ ) {
+ print STDERR "You may need an SSL library (such as IO::Socket::SSL) for that URL.\n";
+ }
}
next;
}
@@ -1326,7 +1330,7 @@ sub search_perlfunc {
local $_;
while (<$fh>) {
/^=encoding\s+(\S+)/ && $self->set_encoding($fh, $1);
- last if /^=head2 $re/;
+ last if /^=head2 (?:$re|Alphabetical Listing of Perl Functions)/;
}
# Look for our function
@@ -1360,7 +1364,7 @@ sub search_perlfunc {
last if $found > 1 and $inlist < 2;
}
}
- elsif (/^=item/) {
+ elsif (/^=item|^=back/) {
last if $found > 1 and $inlist < 2;
}
elsif ($found and /^X<[^>]+>/) {
@@ -1669,9 +1673,9 @@ sub pagers_guessing {
push @pagers, qw( less.exe more.com< );
unshift @pagers, $ENV{PAGER} if $ENV{PAGER};
}
- elsif ( $self->is_amigaos) {
- push @pagers, qw( /SYS/Utilities/MultiView /SYS/Utilities/More /C/TYPE );
- unshift @pagers, "$ENV{PAGER}" if $ENV{PAGER};
+ elsif ( $self->is_amigaos) {
+ push @pagers, qw( /SYS/Utilities/MultiView /SYS/Utilities/More /C/TYPE );
+ unshift @pagers, "$ENV{PAGER}" if $ENV{PAGER};
}
else {
if ($self->is_os2) {
@@ -1696,7 +1700,7 @@ sub pagers_guessing {
unshift @pagers, "$ENV{PERLDOC_PAGER} <" if $ENV{PERLDOC_PAGER};
}
- $self->aside("Pagers: ", @pagers);
+ $self->aside("Pagers: ", (join ", ", @pagers));
return;
}
@@ -1923,19 +1927,21 @@ sub page { # apply a pager to the output file
# many many corners of the OS don't like it. So we
# have to force it to be "\" to make everyone happy.
- # if we are on an amiga convert unix path to an amiga one
- $output =~ s/^\/(.*)\/(.*)/$1:$2/ if $self->is_amigaos;
+ # if we are on an amiga convert unix path to an amiga one
+ $output =~ s/^\/(.*)\/(.*)/$1:$2/ if $self->is_amigaos;
foreach my $pager (@pagers) {
$self->aside("About to try calling $pager $output\n");
if ($self->is_vms) {
last if system("$pager $output") == 0;
- } elsif($self->is_amigaos) {
+ } elsif($self->is_amigaos) {
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";
+ my $formatter = $self->{'formatter_class'};
+ if ( $formatter->can('pager_configuration') ) {
+ $self->aside("About to call $formatter" . "->pager_configuration(\"$pager\")\n");
+ $formatter->pager_configuration($pager, $self);
+ }
last if system("$pager \"$output\"") == 0;
}
}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm
index 304da44ede2..37f651047d6 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/BaseTo.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use Carp qw(croak carp);
use Config qw(%Config);
@@ -33,6 +33,7 @@ BEGIN {
*is_linux = $^O eq 'linux' ? \&TRUE : \&FALSE unless defined &is_linux;
*is_hpux = $^O =~ m/hpux/ ? \&TRUE : \&FALSE unless defined &is_hpux;
*is_openbsd = $^O =~ m/openbsd/ ? \&TRUE : \&FALSE unless defined &is_openbsd;
+ *is_freebsd = $^O =~ m/freebsd/ ? \&TRUE : \&FALSE unless defined &is_freebsd;
*is_bitrig = $^O =~ m/bitrig/ ? \&TRUE : \&FALSE unless defined &is_bitrig;
}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm
index 71fcc7bc9a2..afa2574ec7e 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/GetOptsOO.pm
@@ -2,7 +2,7 @@ package Pod::Perldoc::GetOptsOO;
use strict;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
BEGIN { # Make a DEBUG constant ASAP
*DEBUG = defined( &Pod::Perldoc::DEBUG )
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm
index 26a11d3c809..8217c7b1bc4 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToANSI.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
sub is_pageable { 1 }
sub write_with_binmode { 0 }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm
index 3d161acf51c..a6dbbe3f033 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToChecker.pm
@@ -4,7 +4,7 @@ use warnings;
use vars qw(@ISA);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
# Pick our superclass...
#
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm
index e22e05044d1..bfcb5c40ee6 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToMan.pm
@@ -5,7 +5,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use File::Spec::Functions qw(catfile);
use Pod::Man 2.18;
@@ -63,7 +63,7 @@ sub init {
sub _roffer_candidates {
my( $self ) = @_;
- if( $self->is_openbsd || $self->is_bitrig ) { qw( mandoc groff nroff ) }
+ if( $self->is_openbsd || $self->is_freebsd || $self->is_bitrig ) { qw( mandoc groff nroff ) }
else { qw( groff nroff mandoc ) }
}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm
index ac4a8aa17d4..a52f6160192 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToNroff.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
# This is unlike ToMan.pm in that it emits the raw nroff source!
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm
index 8433e8ca409..825a1caaf5b 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToPod.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw(Pod::Perldoc::BaseTo);
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
sub is_pageable { 1 }
sub write_with_binmode { 0 }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm
index 81f019f8a20..d084816cab2 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToRtf.pm
@@ -4,7 +4,7 @@ use warnings;
use parent qw( Pod::Simple::RTF );
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
sub is_pageable { 0 }
sub write_with_binmode { 0 }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm
index e97a775e10e..9501d6310e7 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTerm.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use parent qw(Pod::Perldoc::BaseTo);
@@ -26,6 +26,34 @@ sub width {
$self->_get_default_width;
}
+sub pager_configuration {
+ my($self, $pager, $perldoc) = @_;
+
+ # do not modify anything on Windows or DOS
+ return if ( $perldoc->is_mswin32 || $perldoc->is_dos );
+
+ if ( $pager =~ /less/ ) {
+ $self->_maybe_modify_environment('LESS');
+ }
+ elsif ( $pager =~ /more/ ) {
+ $self->_maybe_modify_environment('MORE');
+ }
+
+ return;
+}
+
+sub _maybe_modify_environment {
+ my($self, $name) = @_;
+
+ if ( ! defined $ENV{$name} ) {
+ $ENV{$name} = "-R";
+ }
+
+ # if the environment is set, don't modify
+ # anything
+
+}
+
sub _get_stty { `stty -a` }
sub _get_columns_from_stty {
@@ -89,7 +117,7 @@ sub parse_from_file {
=head1 NAME
-Pod::Perldoc::ToTerm - render Pod with terminal escapes
+Pod::Perldoc::ToTerm - render Pod with terminal escapes
=head1 SYNOPSIS
@@ -107,6 +135,14 @@ For example:
perldoc -o term -w indent:5 Some::Modulename
+=head1 PAGER FORMATTING
+
+Depending on the platform, and because this class emits terminal escapes it
+will attempt to set the C<-R> flag on your pager by injecting the flag into
+your environment variable for C<less> or C<more>.
+
+On Windows and DOS, this class will not modify any environment variables.
+
=head1 CAVEAT
This module may change to use a different text formatter class in the
@@ -118,7 +154,7 @@ L<Pod::Text>, L<Pod::Text::Termcap>, L<Pod::Perldoc>
=head1 COPYRIGHT AND DISCLAIMERS
-Copyright (c) 2011 Mark Allen.
+Copyright (c) 2017 Mark Allen.
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm
index dbd47438d3a..99ab66c3048 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToText.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use parent qw(Pod::Perldoc::BaseTo);
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm
index 40b51c5b438..6ca7542c7af 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToTk.pm
@@ -3,7 +3,7 @@ use strict;
use warnings;
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
use parent qw(Pod::Perldoc::BaseTo);
diff --git a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm
index 9da514f7f61..0161c048a9c 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Perldoc/ToXml.pm
@@ -6,7 +6,7 @@ use vars qw($VERSION);
use parent qw( Pod::Simple::XMLOutStream );
use vars qw($VERSION);
-$VERSION = '3.25';
+$VERSION = '3.28';
sub is_pageable { 0 }
sub write_with_binmode { 0 }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple.pm b/Master/tlpkg/tlperl/lib/Pod/Simple.pm
index d8521b2e8be..20924153b65 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple.pm
@@ -18,7 +18,7 @@ use vars qw(
);
@ISA = ('Pod::Simple::BlackBox');
-$VERSION = '3.32';
+$VERSION = '3.35';
@Known_formatting_codes = qw(I B C L E F S X Z);
%Known_formatting_codes = map(($_=>1), @Known_formatting_codes);
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
index 7021e6c9f15..9fe3f702ef9 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/BlackBox.pm
@@ -22,7 +22,7 @@ use integer; # vroom!
use strict;
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
#use constant DEBUG => 7;
BEGIN {
require Pod::Simple;
@@ -198,7 +198,12 @@ sub parse_lines { # Usage: $parser->parse_lines(@lines)
# On Perls that have this function, we can see if the sequence is
# valid UTF-8 or not.
- if (! utf8::decode($non_ascii_seq)) {
+ my $is_utf8;
+ {
+ no warnings 'utf8';
+ $is_utf8 = utf8::decode($non_ascii_seq);
+ }
+ if (! $is_utf8) {
$encoding = 'CP1252';
goto guessed;
}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm
index a32d8b813c2..83415f8e25e 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Checker.pm
@@ -9,7 +9,7 @@ use Carp ();
use Pod::Simple::Methody ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
index 603d4a5b2d0..428cc723594 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Debug.pm
@@ -2,7 +2,7 @@ require 5;
package Pod::Simple::Debug;
use strict;
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
sub import {
my($value,$variable);
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
index a2325626f08..71bef5070be 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsText.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsText;
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
index bd3919852c7..9d84878cb78 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/DumpAsXML.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::DumpAsXML;
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
index 9d8f978eea1..9cdbed217e5 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/HTML.pm
@@ -9,7 +9,7 @@ use vars qw(
$Doctype_decl $Content_decl
);
@ISA = ('Pod::Simple::PullParser');
-$VERSION = '3.32';
+$VERSION = '3.35';
BEGIN {
if(defined &DEBUG) { } # no-op
elsif( defined &Pod::Simple::DEBUG ) { *DEBUG = \&Pod::Simple::DEBUG }
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm
index 5758645073a..661266d0de4 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/HTMLBatch.pm
@@ -5,7 +5,7 @@ use strict;
use vars qw( $VERSION $HTML_RENDER_CLASS $HTML_EXTENSION
$CSS $JAVASCRIPT $SLEEPY $SEARCH_CLASS @ISA
);
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = (); # Yup, we're NOT a subclass of Pod::Simple::HTML!
# TODO: nocontents stylesheets. Strike some of the color variations?
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm
index 0d487313b2d..04612f202e9 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/LinkSection.pm
@@ -3,12 +3,12 @@ require 5;
package Pod::Simple::LinkSection;
# Based somewhat dimly on Array::Autojoin
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
use strict;
use Pod::Simple::BlackBox;
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
use overload( # So it'll stringify nice
'""' => \&Pod::Simple::BlackBox::stringify_lol,
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm
index 29ed32090be..67b87067416 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Methody.pm
@@ -4,7 +4,7 @@ package Pod::Simple::Methody;
use strict;
use Pod::Simple ();
use vars qw(@ISA $VERSION);
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = ('Pod::Simple');
# Yes, we could use named variables, but I want this to be impose
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
index af24049f11f..0c18a5b37d6 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Progress.pm
@@ -1,7 +1,7 @@
require 5;
package Pod::Simple::Progress;
-$VERSION = '3.32';
+$VERSION = '3.35';
use strict;
# Objects of this class are used for noting progress of an
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
index 758f42d6594..7c326ec6aee 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParser.pm
@@ -1,6 +1,6 @@
require 5;
package Pod::Simple::PullParser;
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple ();
BEGIN {@ISA = ('Pod::Simple')}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm
index 0d68841d095..d3066a8e87c 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserEndToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.32';
+$VERSION = '3.35';
sub new { # Class->new(tagname);
my $class = shift;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm
index f09c10915e1..d938e0adb21 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserStartToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.32';
+$VERSION = '3.35';
sub new { # Class->new(tagname, optional_attrhash);
my $class = shift;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm
index 17d065535cd..a11ce0fd92d 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserTextToken.pm
@@ -5,7 +5,7 @@ use Pod::Simple::PullParserToken ();
use strict;
use vars qw(@ISA $VERSION);
@ISA = ('Pod::Simple::PullParserToken');
-$VERSION = '3.32';
+$VERSION = '3.35';
sub new { # Class->new(text);
my $class = shift;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm
index 7f493b964d7..c6618168e6b 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/PullParserToken.pm
@@ -3,7 +3,7 @@ require 5;
package Pod::Simple::PullParserToken;
# Base class for tokens gotten from Pod::Simple::PullParser's $parser->get_token
@ISA = ();
-$VERSION = '3.32';
+$VERSION = '3.35';
use strict;
sub new { # Class->new('type', stuff...); ## Overridden in derived classes anyway
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm
index 9aea743a7e0..153c3d3e287 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/RTF.pm
@@ -8,7 +8,7 @@ package Pod::Simple::RTF;
use strict;
use vars qw($VERSION @ISA %Escape $WRAP %Tagmap);
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple::PullParser ();
BEGIN {@ISA = ('Pod::Simple::PullParser')}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm
index d5a4a020811..df499cacf2d 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Search.pm
@@ -3,7 +3,7 @@ package Pod::Simple::Search;
use strict;
use vars qw($VERSION $MAX_VERSION_WITHIN $SLEEPY);
-$VERSION = '3.32'; ## Current version of this package
+$VERSION = '3.35'; ## Current version of this package
BEGIN { *DEBUG = sub () {0} unless defined &DEBUG; } # set DEBUG level
use Carp ();
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
index 436cd25e462..bff5af84c4b 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/SimpleTree.pm
@@ -5,7 +5,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.32';
+$VERSION = '3.35';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm
index e1c2d0b21f0..66e15f48cce 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Text.pm
@@ -6,7 +6,7 @@ use Carp ();
use Pod::Simple::Methody ();
use Pod::Simple ();
use vars qw( @ISA $VERSION $FREAKYMODE);
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = ('Pod::Simple::Methody');
BEGIN { *DEBUG = defined(&Pod::Simple::DEBUG)
? \&Pod::Simple::DEBUG
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm
index e0db26defb4..980612b3132 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/TextContent.pm
@@ -6,7 +6,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( @ISA $VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
@ISA = ('Pod::Simple');
sub new {
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm
index 6abba4defab..a7364dfa585 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/TiedOutFH.pm
@@ -4,7 +4,7 @@ package Pod::Simple::TiedOutFH;
use Symbol ('gensym');
use Carp ();
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
index ae9298ef311..a4bb29ffdb6 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/Transcode.pm
@@ -3,7 +3,7 @@ require 5;
package Pod::Simple::Transcode;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = '3.32';
+$VERSION = '3.35';
BEGIN {
if(defined &DEBUG) {;} # Okay
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm
index 80b828a753f..c2069056574 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeDumb.pm
@@ -5,7 +5,7 @@ require 5;
package Pod::Simple::TranscodeDumb;
use strict;
use vars qw($VERSION %Supported);
-$VERSION = '3.32';
+$VERSION = '3.35';
# This module basically pretends it knows how to transcode, except
# only for null-transcodings! We use this when Encode isn't
# available.
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
index 335654998ec..e4d4f7eb60e 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/TranscodeSmart.pm
@@ -9,7 +9,7 @@ use strict;
use Pod::Simple;
require Encode;
use vars qw($VERSION );
-$VERSION = '3.32';
+$VERSION = '3.35';
sub is_dumb {0}
sub is_smart {1}
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm
index 67b259cb98f..8c2cf1a01ba 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/XHTML.pm
@@ -45,7 +45,7 @@ declare the output character set as UTF-8 before parsing, like so:
package Pod::Simple::XHTML;
use strict;
use vars qw( $VERSION @ISA $HAS_HTML_ENTITIES );
-$VERSION = '3.32';
+$VERSION = '3.35';
use Pod::Simple::Methody ();
@ISA = ('Pod::Simple::Methody');
diff --git a/Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm b/Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm
index 03f2930e967..62fe39549da 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Simple/XMLOutStream.pm
@@ -5,7 +5,7 @@ use strict;
use Carp ();
use Pod::Simple ();
use vars qw( $ATTR_PAD @ISA $VERSION $SORT_ATTRS);
-$VERSION = '3.32';
+$VERSION = '3.35';
BEGIN {
@ISA = ('Pod::Simple');
*DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG;
diff --git a/Master/tlpkg/tlperl/lib/Pod/Text.pm b/Master/tlpkg/tlperl/lib/Pod/Text.pm
index e141da2fd6d..211de5a7de8 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Text.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Text.pm
@@ -1,4 +1,4 @@
-# Pod::Text -- Convert POD data to formatted text.
+# Convert POD data to formatted text.
#
# This module converts POD to formatted text. It replaces the old Pod::Text
# module that came with versions of Perl prior to 5.6.0 and attempts to match
@@ -12,7 +12,7 @@
# standard Perl mailing lists.
#
# Copyright 1999, 2000, 2001, 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2014,
-# 2015 Russ Allbery <rra@cpan.org>
+# 2015, 2016 Russ Allbery <rra@cpan.org>
#
# This program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
@@ -39,7 +39,26 @@ use Pod::Simple ();
# We have to export pod2text for backward compatibility.
@EXPORT = qw(pod2text);
-$VERSION = '4.07';
+$VERSION = '4.09';
+
+# Ensure that $Pod::Simple::nbsp and $Pod::Simple::shy are available. Code
+# taken from Pod::Simple 3.32, but was only added in 3.30.
+my ($NBSP, $SHY);
+if ($Pod::Simple::VERSION ge 3.30) {
+ $NBSP = $Pod::Simple::nbsp;
+ $SHY = $Pod::Simple::shy;
+} else {
+ if ($] ge 5.007_003) {
+ $NBSP = chr utf8::unicode_to_native(0xA0);
+ $SHY = chr utf8::unicode_to_native(0xAD);
+ } elsif (Pod::Simple::ASCII) {
+ $NBSP = "\xA0";
+ $SHY = "\xAD";
+ } else {
+ $NBSP = "\x41";
+ $SHY = "\xCA";
+ }
+}
##############################################################################
# Initialization
@@ -273,7 +292,12 @@ sub reformat {
sub output {
my ($self, @text) = @_;
my $text = join ('', @text);
- $text =~ tr/\240\255/ /d;
+ if ($NBSP) {
+ $text =~ s/$NBSP/ /g;
+ }
+ if ($SHY) {
+ $text =~ s/$SHY//g;
+ }
unless ($$self{opt_utf8}) {
my $encoding = $$self{encoding} || '';
if ($encoding && $encoding ne $$self{ENCODING}) {
@@ -999,7 +1023,7 @@ how to use Pod::Simple.
=head1 COPYRIGHT AND LICENSE
Copyright 1999, 2000, 2001, 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2014,
-2015 Russ Allbery <rra@cpan.org>
+2015, 2016 Russ Allbery <rra@cpan.org>
This program is free software; you may redistribute it and/or modify it
under the same terms as Perl itself.
diff --git a/Master/tlpkg/tlperl/lib/Pod/Text/Color.pm b/Master/tlpkg/tlperl/lib/Pod/Text/Color.pm
index b67742e32c3..a26e43db813 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Text/Color.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Text/Color.pm
@@ -27,7 +27,7 @@ use vars qw(@ISA $VERSION);
@ISA = qw(Pod::Text);
-$VERSION = '4.07';
+$VERSION = '4.09';
##############################################################################
# Overrides
diff --git a/Master/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm b/Master/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm
index 1592026e9f7..f611a4225b3 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Text/Overstrike.pm
@@ -35,7 +35,7 @@ use Pod::Text ();
@ISA = qw(Pod::Text);
-$VERSION = '4.07';
+$VERSION = '4.09';
##############################################################################
# Overrides
diff --git a/Master/tlpkg/tlperl/lib/Pod/Text/Termcap.pm b/Master/tlpkg/tlperl/lib/Pod/Text/Termcap.pm
index d533e76ddde..91939331f80 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Text/Termcap.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Text/Termcap.pm
@@ -28,7 +28,7 @@ use vars qw(@ISA $VERSION);
@ISA = qw(Pod::Text);
-$VERSION = '4.07';
+$VERSION = '4.09';
##############################################################################
# Overrides
diff --git a/Master/tlpkg/tlperl/lib/Pod/Usage.pm b/Master/tlpkg/tlperl/lib/Pod/Usage.pm
index cc4f2e1e4fd..8f7985040f3 100644
--- a/Master/tlpkg/tlperl/lib/Pod/Usage.pm
+++ b/Master/tlpkg/tlperl/lib/Pod/Usage.pm
@@ -12,7 +12,7 @@ package Pod::Usage;
use strict;
use vars qw($VERSION @ISA @EXPORT);
-$VERSION = '1.68'; ## Current version of this package
+$VERSION = '1.69'; ## Current version of this package
require 5.006; ## requires this Perl version or later
#use diagnostics;
diff --git a/Master/tlpkg/tlperl/lib/Safe.pm b/Master/tlpkg/tlperl/lib/Safe.pm
index d78fcc54f68..e9f096713d1 100644
--- a/Master/tlpkg/tlperl/lib/Safe.pm
+++ b/Master/tlpkg/tlperl/lib/Safe.pm
@@ -3,7 +3,7 @@ package Safe;
use 5.003_11;
use Scalar::Util qw(reftype refaddr);
-$Safe::VERSION = "2.39";
+$Safe::VERSION = "2.40";
# *** Don't declare any lexicals above this point ***
#
@@ -717,6 +717,9 @@ called from a compartment but not compiled within it.
=head2 rdo (FILENAME)
This evaluates the contents of file FILENAME inside the compartment.
+It uses the same rules as perl's built-in C<do> to locate the file,
+poossibly using C<@INC>.
+
See above documentation on the B<reval> method for further details.
=head2 root (NAMESPACE)
diff --git a/Master/tlpkg/tlperl/lib/Scalar/Util.pm b/Master/tlpkg/tlperl/lib/Scalar/Util.pm
index 99a536df642..bb0f780b554 100644
--- a/Master/tlpkg/tlperl/lib/Scalar/Util.pm
+++ b/Master/tlpkg/tlperl/lib/Scalar/Util.pm
@@ -7,6 +7,7 @@
package Scalar::Util;
use strict;
+use warnings;
require Exporter;
our @ISA = qw(Exporter);
@@ -16,7 +17,7 @@ our @EXPORT_OK = qw(
dualvar isdual isvstring looks_like_number openhandle readonly set_prototype
tainted
);
-our $VERSION = "1.42_02";
+our $VERSION = "1.46_02";
$VERSION = eval $VERSION;
require List::Util; # List::Util loads the XS
@@ -74,8 +75,8 @@ Scalar::Util - A selection of general-utility scalar subroutines
C<Scalar::Util> contains a selection of subroutines that people have expressed
would be nice to have in the perl core, but the usage would not really be high
-enough to warrant the use of a keyword, and the size so small such that being
-individual extensions would be wasteful.
+enough to warrant the use of a keyword, and the size would be so small that
+being individual extensions would be wasteful.
By default C<Scalar::Util> does not export any subroutines.
@@ -89,7 +90,7 @@ The following functions all perform some useful activity on reference values.
my $pkg = blessed( $ref );
-If C<$ref> is a blessed reference the name of the package that it is blessed
+If C<$ref> is a blessed reference, the name of the package that it is blessed
into is returned. Otherwise C<undef> is returned.
$scalar = "foo";
@@ -108,7 +109,7 @@ C<if(blessed $ref)...>) because the package name C<"0"> is defined yet false.
my $addr = refaddr( $ref );
-If C<$ref> is reference the internal memory address of the referenced value is
+If C<$ref> is reference, the internal memory address of the referenced value is
returned as a plain integer. Otherwise C<undef> is returned.
$addr = refaddr "string"; # undef
@@ -122,7 +123,7 @@ returned as a plain integer. Otherwise C<undef> is returned.
my $type = reftype( $ref );
-If C<$ref> is a reference the basic Perl type of the variable referenced is
+If C<$ref> is a reference, the basic Perl type of the variable referenced is
returned as a plain string (such as C<ARRAY> or C<HASH>). Otherwise C<undef>
is returned.
@@ -138,7 +139,7 @@ is returned.
weaken( $ref );
The lvalue C<$ref> will be turned into a weak reference. This means that it
-will not hold a reference count on the object it references. Also when the
+will not hold a reference count on the object it references. Also, when the
reference count on that object reaches zero, the reference will be set to
undef. This function mutates the lvalue passed as its argument and returns no
value.
@@ -242,8 +243,8 @@ numeric operations:
$bar = $foo + 0;
$dual = isdual($foo); # true
-Note that although C<$!> appears to be dual-valued variable, it is actually
-implemented using a tied scalar:
+Note that although C<$!> appears to be a dual-valued variable, it is
+actually implemented as a magical variable inside the interpreter:
$! = 1;
print("$!\n"); # "Operation not permitted"
@@ -258,7 +259,7 @@ You can capture its numeric and string content using:
my $vstring = isvstring( $var );
-If C<$var> is a scalar which was coded as a vstring the result is true.
+If C<$var> is a scalar which was coded as a vstring, the result is true.
$vs = v49.46.48;
$fmt = isvstring($vs) ? "%vd" : "%s"; #true
@@ -328,15 +329,6 @@ use L</isweak> or L</weaken> you will need to use a newer release of perl.
The version of perl that you are using does not implement Vstrings, to use
L</isvstring> you will need to use a newer release of perl.
-=item C<NAME> is only available with the XS version of Scalar::Util
-
-C<Scalar::Util> contains both perl and C implementations of many of its
-functions so that those without access to a C compiler may still use it.
-However some of the functions are only available when a C compiler was
-available to compile the XS version of the extension.
-
-At present that list is: weaken, isweak, dualvar, isvstring, set_prototype
-
=back
=head1 KNOWN BUGS
diff --git a/Master/tlpkg/tlperl/lib/Storable.pm b/Master/tlpkg/tlperl/lib/Storable.pm
index 5823b930b8d..d8fd740eeef 100644
--- a/Master/tlpkg/tlperl/lib/Storable.pm
+++ b/Master/tlpkg/tlperl/lib/Storable.pm
@@ -22,7 +22,7 @@ package Storable; @ISA = qw(Exporter);
use vars qw($canonical $forgive_me $VERSION);
-$VERSION = '2.56_01';
+$VERSION = '2.62';
BEGIN {
if (eval {
@@ -119,7 +119,7 @@ sub file_magic {
my $file = shift;
my $fh = IO::File->new;
- open($fh, "<". $file) || die "Can't open '$file': $!";
+ open($fh, "<", $file) || die "Can't open '$file': $!";
binmode($fh);
defined(sysread($fh, my $buf, 32)) || die "Can't read from '$file': $!";
close($fh);
@@ -245,7 +245,7 @@ sub _store {
logcroak "wrong argument number" unless @_ == 2; # No @foo in arglist
local *FILE;
if ($use_locking) {
- open(FILE, ">>$file") || logcroak "can't write into $file: $!";
+ open(FILE, '>>', $file) || logcroak "can't write into $file: $!";
unless (&CAN_FLOCK) {
logcarp
"Storable::lock_store: fcntl/flock emulation broken on $^O";
@@ -256,7 +256,7 @@ sub _store {
truncate FILE, 0;
# Unlocking will happen when FILE is closed
} else {
- open(FILE, ">$file") || logcroak "can't create $file: $!";
+ open(FILE, '>', $file) || logcroak "can't create $file: $!";
}
binmode FILE; # Archaic systems...
my $da = $@; # Don't mess if called from exception handler
@@ -373,7 +373,7 @@ sub lock_retrieve {
sub _retrieve {
my ($file, $use_locking) = @_;
local *FILE;
- open(FILE, $file) || logcroak "can't open $file: $!";
+ open(FILE, '<', $file) || logcroak "can't open $file: $!";
binmode FILE; # Archaic systems...
my $self;
my $da = $@; # Could be from exception handler
diff --git a/Master/tlpkg/tlperl/lib/Sub/Util.pm b/Master/tlpkg/tlperl/lib/Sub/Util.pm
index 1bf58788869..28888f82655 100644
--- a/Master/tlpkg/tlperl/lib/Sub/Util.pm
+++ b/Master/tlpkg/tlperl/lib/Sub/Util.pm
@@ -15,7 +15,7 @@ our @EXPORT_OK = qw(
subname set_subname
);
-our $VERSION = "1.42_02";
+our $VERSION = "1.46_02";
$VERSION = eval $VERSION;
require List::Util; # as it has the XS
diff --git a/Master/tlpkg/tlperl/lib/Symbol.pm b/Master/tlpkg/tlperl/lib/Symbol.pm
index 1e408b59f71..0e8d67fffd9 100644
--- a/Master/tlpkg/tlperl/lib/Symbol.pm
+++ b/Master/tlpkg/tlperl/lib/Symbol.pm
@@ -9,7 +9,7 @@ Symbol - manipulate Perl symbols and their names
use Symbol;
$sym = gensym;
- open($sym, "filename");
+ open($sym, '<', "filename");
$_ = <$sym>;
# etc.
@@ -85,7 +85,7 @@ require Exporter;
@EXPORT = qw(gensym ungensym qualify qualify_to_ref);
@EXPORT_OK = qw(delete_package geniosym);
-$VERSION = '1.07';
+$VERSION = '1.08';
my $genpkg = "Symbol::";
my $genseq = 0;
diff --git a/Master/tlpkg/tlperl/lib/TAP/Base.pm b/Master/tlpkg/tlperl/lib/TAP/Base.pm
index e6ea22d6ecd..74b6a6b2b91 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Base.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Base.pm
@@ -12,11 +12,11 @@ and L<TAP::Harness>
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
use constant GOT_TIME_HIRES => do {
eval 'use Time::HiRes qw(time);';
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
index a2fa3ea765f..d2d35216457 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Base.pm
@@ -58,11 +58,11 @@ TAP::Formatter::Base - Base class for harness output delegates
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
index 728247c07d7..fecc40a2840 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Color.pm
@@ -71,11 +71,11 @@ TAP::Formatter::Color - Run Perl test scripts with color
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm
index 8cc3060dac3..bafc14401c9 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console.pm
@@ -11,11 +11,11 @@ TAP::Formatter::Console - Harness output delegate for default console output
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm
index c8cdf7c998d..8b47f49fb72 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/ParallelSession.pm
@@ -41,11 +41,11 @@ TAP::Formatter::Console::ParallelSession - Harness output delegate for parallel
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm
index 8a15812f3d8..f1b0bbcfaf2 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Console/Session.pm
@@ -26,11 +26,11 @@ TAP::Formatter::Console::Session - Harness output delegate for default console o
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm
index 45d93a1860e..02b64da1b43 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/File.pm
@@ -13,11 +13,11 @@ TAP::Formatter::File - Harness output delegate for file output
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm
index 371d7d56c63..c4851f6a828 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/File/Session.pm
@@ -10,11 +10,11 @@ TAP::Formatter::File::Session - Harness output delegate for file output
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm b/Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm
index 2924276f331..3416775c2f3 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Formatter/Session.pm
@@ -23,11 +23,11 @@ TAP::Formatter::Session - Abstract base class for harness output delegate
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 METHODS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Harness.pm b/Master/tlpkg/tlperl/lib/TAP/Harness.pm
index c916a32edd0..e65b9b175e6 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Harness.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Harness.pm
@@ -16,11 +16,11 @@ TAP::Harness - Run test scripts with statistics
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
$ENV{HARNESS_ACTIVE} = 1;
$ENV{HARNESS_VERSION} = $VERSION;
diff --git a/Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm b/Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm
index 0a328da76a7..842d9d79611 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Harness/Env.pm
@@ -7,7 +7,7 @@ use constant IS_VMS => ( $^O eq 'VMS' );
use TAP::Object;
use Text::ParseWords qw/shellwords/;
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
# Get the parts of @INC which are changed from the stock list AND
# preserve reordering of stock directories.
@@ -126,7 +126,7 @@ TAP::Harness::Env - Parsing harness related environmental variables where approp
=head1 VERSION
-Version 3.36
+Version 3.38
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Object.pm b/Master/tlpkg/tlperl/lib/TAP/Object.pm
index 5195bd7f26c..c500c4efaef 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Object.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Object.pm
@@ -9,11 +9,11 @@ TAP::Object - Base class that provides common functionality to all C<TAP::*> mod
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser.pm b/Master/tlpkg/tlperl/lib/TAP/Parser.pm
index f688c722f06..8c127743482 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser.pm
@@ -27,11 +27,11 @@ TAP::Parser - Parse L<TAP|Test::Harness::TAP> output
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
my $DEFAULT_TAP_VERSION = 12;
my $MAX_TAP_VERSION = 13;
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
index 94289a44c85..ccf7b1ca809 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Aggregator.pm
@@ -12,11 +12,11 @@ TAP::Parser::Aggregator - Aggregate TAP::Parser results
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm
index e4ab7b4ecc1..3add11d1514 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Grammar.pm
@@ -14,11 +14,11 @@ TAP::Parser::Grammar - A grammar for the Test Anything Protocol.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
index 93b8a7f5d08..591cf466607 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator - Base class for TAP source iterators
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm
index ce7000beaa3..0cef55fcfe5 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Array.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator::Array - Iterator for array-based TAP sources
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm
index cf842998d22..f9126b39840 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Process.pm
@@ -16,11 +16,11 @@ TAP::Parser::Iterator::Process - Iterator for process-based TAP sources
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm
index f98527969e0..a10e5937a44 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Iterator/Stream.pm
@@ -11,11 +11,11 @@ TAP::Parser::Iterator::Stream - Iterator for filehandle-based TAP sources
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm
index 7a80031be03..f2fe33e25a9 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/IteratorFactory.pm
@@ -16,11 +16,11 @@ TAP::Parser::IteratorFactory - Figures out which SourceHandler objects to use fo
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
index 55701f84a2d..86298c7b119 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Multiplexer.pm
@@ -17,11 +17,11 @@ TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm
index 270a24a63c7..4ec808deb0a 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result.pm
@@ -24,11 +24,11 @@ TAP::Parser::Result - Base class for TAP::Parser output objects
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
index d5c7e8cfdf9..fb0684fabfe 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Bailout.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Bailout - Bailout result token.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
index a519634436c..8ffe79a73a2 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Comment.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Comment - Comment result token.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
index 0b2b3362457..fb94d62047a 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Plan.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Plan - Plan result token.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
index 40380e7c603..fdc2d540236 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Pragma.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Pragma - TAP pragma token.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
index 46b63e9ef07..143a936f7ca 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Test.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Test - Test result token.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
index 89935239c19..a476896d576 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Unknown.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Unknown - Unknown result token.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
index 28bab595b9f..db9f40faf70 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/Version.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::Version - TAP syntax version token.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
index e93b43782de..3cc4fe6bfe0 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Result/YAML.pm
@@ -11,11 +11,11 @@ TAP::Parser::Result::YAML - YAML result token.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm
index c45074d08f8..036006fa622 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/ResultFactory.pm
@@ -29,11 +29,11 @@ TAP::Parser::ResultFactory - Factory for creating TAP::Parser output objects
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head2 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
index 2eea054d5e0..a00486f97c9 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler.pm
@@ -13,11 +13,11 @@ TAP::Parser::Scheduler - Schedule tests during parallel testing
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
index c5bb3544c5d..4ae86fba030 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Job.pm
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Job - A single testing job.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
index 768ade96ef8..a8fb21c8c81 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Scheduler/Spinner.pm
@@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Spinner - A no-op job.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm
index 1b4c2110fc3..b1c09fe5f2a 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/Source.pm
@@ -14,11 +14,11 @@ TAP::Parser::Source - a TAP source & meta data about it
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm
index e2d1cf960ae..8ed24785c37 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler.pm
@@ -12,11 +12,11 @@ TAP::Parser::SourceHandler - Base class for different TAP source handlers
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm
index a4df5dabbe2..4b1f3de02f2 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Executable.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::Executable - Stream output from an executable TAP so
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm
index 30187a028f3..49b6c236309 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/File.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::File - Stream TAP from a text file.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm
index 05b8dcb5a87..0c74d4448c6 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Handle.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::Handle - Stream TAP from an IO::Handle or a GLOB.
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm
index 7d238cd6249..dea39043c66 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/Perl.pm
@@ -21,11 +21,11 @@ TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm
index 6dfc815c5ac..f6fc0675b38 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/SourceHandler/RawTAP.pm
@@ -16,11 +16,11 @@ TAP::Parser::SourceHandler::RawTAP - Stream output from raw TAP in a scalar/arra
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
index 3381fa110e2..1bcaa186ad4 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Reader.pm
@@ -5,7 +5,7 @@ use warnings;
use base 'TAP::Object';
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
# TODO:
# Handle blessed object syntax
@@ -269,7 +269,7 @@ TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator
=head1 VERSION
-Version 3.36
+Version 3.38
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
index 4897aa88478..eb0afea2c3d 100644
--- a/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
+++ b/Master/tlpkg/tlperl/lib/TAP/Parser/YAMLish/Writer.pm
@@ -5,7 +5,7 @@ use warnings;
use base 'TAP::Object';
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
my $ESCAPE_CHAR = qr{ [ \x00-\x1f \" ] }x;
my $ESCAPE_KEY = qr{ (?: ^\W ) | $ESCAPE_CHAR }x;
@@ -146,7 +146,7 @@ TAP::Parser::YAMLish::Writer - Write YAMLish data
=head1 VERSION
-Version 3.36
+Version 3.38
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/Term/ANSIColor.pm b/Master/tlpkg/tlperl/lib/Term/ANSIColor.pm
index ace4d471676..730124b7f6d 100644
--- a/Master/tlpkg/tlperl/lib/Term/ANSIColor.pm
+++ b/Master/tlpkg/tlperl/lib/Term/ANSIColor.pm
@@ -1,7 +1,7 @@
-# Term::ANSIColor -- Color screen output using ANSI escape sequences.
+# Color screen output using ANSI escape sequences.
#
# Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2008, 2009, 2010,
-# 2011, 2012, 2013, 2014, 2015 Russ Allbery <rra@cpan.org>
+# 2011, 2012, 2013, 2014, 2015, 2016 Russ Allbery <rra@cpan.org>
# Copyright 1996 Zenin
# Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>
#
@@ -23,7 +23,8 @@ use 5.006;
use strict;
use warnings;
-use Carp qw(croak);
+# Also uses Carp but loads it on demand to reduce memory usage.
+
use Exporter ();
# use Exporter plus @ISA instead of use base for 5.6 compatibility.
@@ -40,7 +41,7 @@ our $AUTOLOAD;
# against circular module loading (not that we load any modules, but
# consistency is good).
BEGIN {
- $VERSION = '4.04';
+ $VERSION = '4.06';
# All of the basic supported constants, used in %EXPORT_TAGS.
my @colorlist = qw(
@@ -61,7 +62,7 @@ BEGIN {
# 256-color constants, used in %EXPORT_TAGS.
my @colorlist256 = (
- (map { ("ANSI$_", "ON_ANSI$_") } 0 .. 15),
+ (map { ("ANSI$_", "ON_ANSI$_") } 0 .. 255),
(map { ("GREY$_", "ON_GREY$_") } 0 .. 23),
);
for my $r (0 .. 5) {
@@ -144,8 +145,8 @@ our %ATTRIBUTES = (
# Generating the 256-color codes involves a lot of codes and offsets that are
# not helped by turning them into constants.
-# The first 16 256-color codes are duplicates of the 16 ANSI colors,
-# included for completeness.
+# The first 16 256-color codes are duplicates of the 16 ANSI colors. The rest
+# are RBG and greyscale values.
for my $code (0 .. 15) {
$ATTRIBUTES{"ansi$code"} = "38;5;$code";
$ATTRIBUTES{"on_ansi$code"} = "48;5;$code";
@@ -176,6 +177,15 @@ for my $attr (reverse sort keys %ATTRIBUTES) {
$ATTRIBUTES_R{ $ATTRIBUTES{$attr} } = $attr;
}
+# Provide ansiN names for all 256 characters to provide a convenient flat
+# namespace if one doesn't want to mess with the RGB and greyscale naming. Do
+# this after creating %ATTRIBUTES_R since we want to use the canonical names
+# when reversing a color.
+for my $code (16 .. 255) {
+ $ATTRIBUTES{"ansi$code"} = "38;5;$code";
+ $ATTRIBUTES{"on_ansi$code"} = "48;5;$code";
+}
+
# Import any custom colors set in the environment.
our %ALIASES;
if (exists $ENV{ANSI_COLORS_ALIASES}) {
@@ -207,6 +217,17 @@ if (exists $ENV{ANSI_COLORS_ALIASES}) {
our @COLORSTACK;
##############################################################################
+# Helper functions
+##############################################################################
+
+# Stub to load the Carp module on demand.
+sub croak {
+ my (@args) = @_;
+ require Carp;
+ Carp::croak(@args);
+}
+
+##############################################################################
# Implementation (constant form)
##############################################################################
@@ -233,10 +254,17 @@ our @COLORSTACK;
# make it easier to write scripts that also work on systems without any ANSI
# support, like Windows consoles.
#
+# Avoid using character classes like [:upper:] and \w here, since they load
+# Unicode character tables and consume a ton of memory. All of our constants
+# only use ASCII characters.
+#
## no critic (ClassHierarchies::ProhibitAutoloading)
## no critic (Subroutines::RequireArgUnpacking)
+## no critic (RegularExpressions::ProhibitEnumeratedClasses)
sub AUTOLOAD {
- my ($sub, $attr) = $AUTOLOAD =~ m{ \A ([\w:]*::([[:upper:]\d_]+)) \z }xms;
+ my ($sub, $attr) = $AUTOLOAD =~ m{
+ \A ( [a-zA-Z0-9:]* :: ([A-Z0-9_]+) ) \z
+ }xms;
# Check if we were called with something that doesn't look like an
# attribute.
@@ -295,7 +323,7 @@ sub AUTOLOAD {
## no critic (References::ProhibitDoubleSigils)
goto &$AUTOLOAD;
}
-## use critic (Subroutines::RequireArgUnpacking)
+## use critic
# Append a new color to the top of the color stack and return the top of
# the stack.
@@ -501,13 +529,21 @@ sub coloralias {
return $ATTRIBUTES_R{ $ALIASES{$alias} };
}
}
- if ($alias !~ m{ \A [\w._-]+ \z }xms) {
+
+ # Avoid \w here to not load Unicode character tables, which increases the
+ # memory footprint of this module considerably.
+ #
+ ## no critic (RegularExpressions::ProhibitEnumeratedClasses)
+ if ($alias !~ m{ \A [a-zA-Z0-9._-]+ \z }xms) {
croak(qq{Invalid alias name "$alias"});
} elsif ($ATTRIBUTES{$alias}) {
croak(qq{Cannot alias standard color "$alias"});
} elsif (!exists $ATTRIBUTES{$color}) {
croak(qq{Invalid attribute name "$color"});
}
+ ## use critic
+
+ # Set the alias and return.
$ALIASES{$alias} = $ATTRIBUTES{$color};
return $color;
}
@@ -668,10 +704,12 @@ sixteen-color emulators but use the 256-color escape syntax, C<grey0>
through C<grey23> ranging from nearly black to nearly white, and a set of
RGB colors. The RGB colors are of the form C<rgbI<RGB>> where I<R>, I<G>,
and I<B> are numbers from 0 to 5 giving the intensity of red, green, and
-blue. C<on_> variants of all of these colors are also provided. These
-colors may be ignored completely on non-256-color terminals or may be
-misinterpreted and produce random behavior. Additional attributes such as
-blink, italic, or bold may not work with the 256-color palette.
+blue. The grey and RGB colors are also available as C<ansi16> through
+C<ansi255> if you want simple names for all 256 colors. C<on_> variants
+of all of these colors are also provided. These colors may be ignored
+completely on non-256-color terminals or may be misinterpreted and produce
+random behavior. Additional attributes such as blink, italic, or bold may
+not work with the 256-color palette.
There is unfortunately no way to know whether the current emulator
supports more than eight colors, which makes the choice of colors
@@ -717,13 +755,13 @@ The recognized bright background color attributes (colors 8 to 15) are:
For 256-color terminals, the recognized foreground colors are:
- ansi0 .. ansi15
+ ansi0 .. ansi255
grey0 .. grey23
plus C<rgbI<RGB>> for I<R>, I<G>, and I<B> values from 0 to 5, such as
C<rgb000> or C<rgb515>. Similarly, the recognized background colors are:
- on_ansi0 .. on_ansi15
+ on_ansi0 .. on_ansi255
on_grey0 .. on_grey23
plus C<on_rgbI<RGB>> for I<R>, I<G>, and I<B> values from 0 to 5.
@@ -774,7 +812,9 @@ $Term::ANSIColor::EACHLINE to C<"\n"> to use this feature.
uncolor() performs the opposite translation as color(), turning escape
sequences into a list of strings corresponding to the attributes being set
-by those sequences.
+by those sequences. uncolor() will never return C<ansi16> through
+C<ansi255>, instead preferring the C<grey> and C<rgb> names (and likewise
+for C<on_ansi16> through C<on_ansi255>).
=item colorstrip(STRING[, STRING ...])
@@ -793,8 +833,8 @@ If ATTR is specified, coloralias() sets up an alias of ALIAS for the
standard color ATTR. From that point forward, ALIAS can be passed into
color(), colored(), and colorvalid() and will have the same meaning as
ATTR. One possible use of this facility is to give more meaningful names
-to the 256-color RGB colors. Only alphanumerics, C<.>, C<_>, and C<-> are
-allowed in alias names.
+to the 256-color RGB colors. Only ASCII alphanumerics, C<.>, C<_>, and
+C<-> are allowed in alias names.
If ATTR is not specified, coloralias() returns the standard color name to
which ALIAS is aliased, if any, or undef if ALIAS does not exist.
@@ -848,12 +888,12 @@ described above since a background color is being used.)
If you import C<:constants256>, you can use the following constants
directly:
- ANSI0 .. ANSI15
+ ANSI0 .. ANSI255
GREY0 .. GREY23
RGBXYZ (for X, Y, and Z values from 0 to 5, like RGB000 or RGB515)
- ON_ANSI0 .. ON_ANSI15
+ ON_ANSI0 .. ON_ANSI255
ON_GREY0 .. ON_GREY23
ON_RGBXYZ (for X, Y, and Z values from 0 to 5)
@@ -1095,6 +1135,10 @@ $Term::ANSIColor::AUTOLOCAL was changed to take precedence over
$Term::ANSIColor::AUTORESET, rather than the other way around, in
Term::ANSIColor 4.00, included in Perl 5.17.8.
+C<ansi16> through C<ansi255>, as aliases for the C<rgb> and C<grey>
+colors, and the corresponding C<on_ansi> names and C<ANSI> and C<ON_ANSI>
+constants, were added in Term::ANSIColor 4.06.
+
=head1 RESTRICTIONS
It would be nice if one could leave off the commas around the constants
@@ -1193,7 +1237,7 @@ voice solutions.
Copyright 1996 Zenin
Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2005, 2006, 2008, 2009, 2010,
-2011, 2012, 2013, 2014, 2015 Russ Allbery <rra@cpan.org>
+2011, 2012, 2013, 2014, 2015, 2016 Russ Allbery <rra@cpan.org>
Copyright 2012 Kurt Starsinic <kstarsinic@gmail.com>
@@ -1206,6 +1250,8 @@ The CPAN module L<Term::ExtendedColor> provides a different and more
comprehensive interface for 256-color emulators that may be more
convenient. The CPAN module L<Win32::Console::ANSI> provides ANSI color
(and other escape sequence) support in the Win32 Console environment.
+The CPAN module L<Term::Chrome> provides a different interface using
+objects and operator overloading.
ECMA-048 is available on-line (at least at the time of this writing) at
L<http://www.ecma-international.org/publications/standards/Ecma-048.htm>.
@@ -1220,7 +1266,7 @@ L<http://invisible-island.net/xterm/ctlseqs/ctlseqs.html> (search for
256-color).
The current version of this module is always available from its web site
-at L<http://www.eyrie.org/~eagle/software/ansicolor/>. It is also part of
-the Perl core distribution as of 5.6.0.
+at L<https://www.eyrie.org/~eagle/software/ansicolor/>. It is also part
+of the Perl core distribution as of 5.6.0.
=cut
diff --git a/Master/tlpkg/tlperl/lib/Term/ReadLine.pm b/Master/tlpkg/tlperl/lib/Term/ReadLine.pm
index db08947972d..88d5a758775 100644
--- a/Master/tlpkg/tlperl/lib/Term/ReadLine.pm
+++ b/Master/tlpkg/tlperl/lib/Term/ReadLine.pm
@@ -269,9 +269,8 @@ sub new {
# the Windows CONIN$ needs GENERIC_WRITE mode to allow
# a SetConsoleMode() if we end up using Term::ReadKey
- open FIN, ( $^O eq 'MSWin32' && $console eq 'CONIN$' ) ? "+<$console" :
- "<$console";
- open FOUT,">$consoleOUT";
+ open FIN, (( $^O eq 'MSWin32' && $console eq 'CONIN$' ) ? '+<' : '<' ), $console;
+ open FOUT,'>', $consoleOUT;
#OUT->autoflush(1); # Conflicts with debugger?
my $sel = select(FOUT);
@@ -320,7 +319,7 @@ sub Features { \%features }
package Term::ReadLine; # So late to allow the above code be defined?
-our $VERSION = '1.15';
+our $VERSION = '1.16';
my ($which) = exists $ENV{PERL_RL} ? split /\s+/, $ENV{PERL_RL} : undef;
if ($which) {
diff --git a/Master/tlpkg/tlperl/lib/Test.pm b/Master/tlpkg/tlperl/lib/Test.pm
index 3350517e649..ce544ffe19e 100644
--- a/Master/tlpkg/tlperl/lib/Test.pm
+++ b/Master/tlpkg/tlperl/lib/Test.pm
@@ -20,7 +20,7 @@ sub _reset_globals {
$planned = 0;
}
-$VERSION = '1.28_01';
+$VERSION = '1.30';
require Exporter;
@ISA=('Exporter');
@@ -199,7 +199,7 @@ sub _read_program {
my($file) = shift;
return unless defined $file and length $file
and -e $file and -f _ and -r _;
- open(SOURCEFILE, "<$file") || return;
+ open(SOURCEFILE, '<', $file) || return;
$Program_Lines{$file} = [<SOURCEFILE>];
close(SOURCEFILE);
@@ -346,7 +346,7 @@ If either (or both!) is a subroutine reference, it is run and used
as the value for comparing. For example:
ok sub {
- open(OUT, ">x.dat") || die $!;
+ open(OUT, '>', 'x.dat') || die $!;
print OUT "\x{e000}";
close OUT;
my $bytecount = -s 'x.dat';
@@ -540,7 +540,7 @@ sub _diff_complain_external {
if (close($got_fh) && close($exp_fh)) {
my $diff_cmd = "$diff $exp_filename $got_filename";
print $TESTERR "#\n# $prefix $diff_cmd\n";
- if (open(DIFF, "$diff_cmd |")) {
+ if (open(DIFF, '-|', $diff_cmd)) {
local $_;
while (<DIFF>) {
print $TESTERR "# $prefix $_";
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder.pm b/Master/tlpkg/tlperl/lib/Test/Builder.pm
index a8e7bd95b1c..052e2793b91 100644
--- a/Master/tlpkg/tlperl/lib/Test/Builder.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Builder.pm
@@ -4,8 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.001014';
-$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = '1.302073';
BEGIN {
if( $] < 5.008 ) {
@@ -13,516 +12,410 @@ BEGIN {
}
}
+use Scalar::Util qw/blessed reftype weaken/;
+use Test2::Util qw/USE_THREADS try get_tid/;
+use Test2::API qw/context release/;
# Make Test::Builder thread-safe for ithreads.
BEGIN {
- use Config;
- # Load threads::shared when threads are turned on.
- # 5.8.0's threads are so busted we no longer support them.
- if( $] >= 5.008001 && $Config{useithreads} && $INC{'threads.pm'} ) {
- require threads::shared;
-
- # Hack around YET ANOTHER threads::shared bug. It would
- # occasionally forget the contents of the variable when sharing it.
- # So we first copy the data, then share, then put our copy back.
- *share = sub (\[$@%]) {
- my $type = ref $_[0];
- my $data;
-
- if( $type eq 'HASH' ) {
- %$data = %{ $_[0] };
- }
- elsif( $type eq 'ARRAY' ) {
- @$data = @{ $_[0] };
- }
- elsif( $type eq 'SCALAR' ) {
- $$data = ${ $_[0] };
- }
- else {
- die( "Unknown type: " . $type );
- }
-
- $_[0] = &threads::shared::share( $_[0] );
-
- if( $type eq 'HASH' ) {
- %{ $_[0] } = %$data;
- }
- elsif( $type eq 'ARRAY' ) {
- @{ $_[0] } = @$data;
- }
- elsif( $type eq 'SCALAR' ) {
- ${ $_[0] } = $$data;
- }
- else {
- die( "Unknown type: " . $type );
- }
+ warn "Test::Builder was loaded after Test2 initialization, this is not recommended."
+ if Test2::API::test2_init_done() || Test2::API::test2_load_done();
- return $_[0];
- };
- }
- # 5.8.0's threads::shared is busted when threads are off
- # and earlier Perls just don't have that module at all.
- else {
- *share = sub { return $_[0] };
- *lock = sub { 0 };
+ if (USE_THREADS) {
+ require Test2::IPC;
+ require Test2::IPC::Driver::Files;
+ Test2::IPC::Driver::Files->import;
+ Test2::API::test2_ipc_enable_polling();
+ Test2::API::test2_no_wait(1);
+ Test2::API::test2_ipc_enable_shm();
}
}
-=head1 NAME
-
-Test::Builder - Backend for building test libraries
-
-=head1 SYNOPSIS
-
- package My::Test::Module;
- use base 'Test::Builder::Module';
-
- my $CLASS = __PACKAGE__;
-
- sub ok {
- my($test, $name) = @_;
- my $tb = $CLASS->builder;
+use Test2::Event::Subtest;
+use Test2::Hub::Subtest;
- $tb->ok($test, $name);
- }
+use Test::Builder::Formatter;
+use Test::Builder::TodoDiag;
+our $Level = 1;
+our $Test = $ENV{TB_NO_EARLY_INIT} ? undef : Test::Builder->new;
-=head1 DESCRIPTION
+sub _add_ts_hooks {
+ my $self = shift;
+ my $hub = $self->{Stack}->top;
-L<Test::Simple> and L<Test::More> have proven to be popular testing modules,
-but they're not always flexible enough. Test::Builder provides a
-building block upon which to write your own test libraries I<which can
-work together>.
+ # Take a reference to the hash key, we do this to avoid closing over $self
+ # which is the singleton. We use a reference because the value could change
+ # in rare cases.
+ my $epkgr = \$self->{Exported_To};
-=head2 Construction
+ #$hub->add_context_aquire(sub {$_[0]->{level} += $Level - 1});
-=over 4
+ $hub->pre_filter(sub {
+ my ($active_hub, $e) = @_;
-=item B<new>
+ my $epkg = $$epkgr;
+ my $cpkg = $e->{trace} ? $e->{trace}->{frame}->[0] : undef;
- my $Test = Test::Builder->new;
+ no strict 'refs';
+ no warnings 'once';
+ my $todo;
+ $todo = ${"$cpkg\::TODO"} if $cpkg;
+ $todo = ${"$epkg\::TODO"} if $epkg && !$todo;
-Returns a Test::Builder object representing the current state of the
-test.
+ return $e unless $todo;
-Since you only run one test per program C<new> always returns the same
-Test::Builder object. No matter how many times you call C<new()>, you're
-getting the same object. This is called a singleton. This is done so that
-multiple modules share such global information as the test counter and
-where test output is going.
+ # Turn a diag into a todo diag
+ return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 'Test2::Event::Diag';
-If you want a completely new Test::Builder object different from the
-singleton, use C<create>.
+ # Set todo on ok's
+ if ($e->isa('Test2::Event::Ok')) {
+ $e->set_todo($todo);
+ $e->set_effective_pass(1);
-=cut
+ if (my $result = $e->get_meta(__PACKAGE__)) {
+ $result->{reason} ||= $todo;
+ $result->{type} ||= 'todo';
+ $result->{ok} = 1;
+ }
+ }
-our $Test = Test::Builder->new;
+ return $e;
+ }, inherit => 1);
+}
sub new {
my($class) = shift;
- $Test ||= $class->create;
- return $Test;
-}
-
-=item B<create>
+ unless($Test) {
+ my $ctx = context();
+ $Test = $class->create(singleton => 1);
+ $ctx->release;
- my $Test = Test::Builder->create;
-
-Ok, so there can be more than one Test::Builder object and this is how
-you get it. You might use this instead of C<new()> if you're testing
-a Test::Builder based module, but otherwise you probably want C<new>.
+ # Non-TB tools normally expect 0 added to the level. $Level is normally 1. So
+ # we only want the level to change if $Level != 1.
+ # TB->ctx compensates for this later.
+ Test2::API::test2_add_callback_context_aquire(sub { $_[0]->{level} += $Level - 1 });
-B<NOTE>: the implementation is not complete. C<level>, for example, is
-still shared amongst B<all> Test::Builder objects, even ones created using
-this method. Also, the method name may change in the future.
+ Test2::API::test2_add_callback_exit(sub { $Test->_ending(@_) });
-=cut
+ Test2::API::test2_ipc()->set_no_fatal(1) if USE_THREADS;
+ }
+ return $Test;
+}
sub create {
my $class = shift;
+ my %params = @_;
my $self = bless {}, $class;
- $self->reset;
+ if ($params{singleton}) {
+ $self->{Stack} = Test2::API::test2_stack();
+ }
+ else {
+ $self->{Stack} = Test2::API::Stack->new;
+ $self->{Stack}->new_hub(
+ formatter => Test::Builder::Formatter->new,
+ ipc => Test2::API::test2_ipc(),
+ );
+ }
+ $self->reset(%params);
+ $self->_add_ts_hooks;
return $self;
}
-
-# Copy an object, currently a shallow.
-# This does *not* bless the destination. This keeps the destructor from
-# firing when we're just storing a copy of the object to restore later.
-sub _copy {
- my($src, $dest) = @_;
-
- %$dest = %$src;
- _share_keys($dest);
-
- return;
+sub ctx {
+ my $self = shift;
+ context(
+ # 1 for our frame, another for the -1 off of $Level in our hook at the top.
+ level => 2,
+ fudge => 1,
+ stack => $self->{Stack},
+ hub => $self->{Hub},
+ wrapped => 1,
+ @_
+ );
}
+sub parent {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ my $chub = $self->{Hub} || $ctx->hub;
+ $ctx->release;
-=item B<child>
-
- my $child = $builder->child($name_of_child);
- $child->plan( tests => 4 );
- $child->ok(some_code());
- ...
- $child->finalize;
-
-Returns a new instance of C<Test::Builder>. Any output from this child will
-be indented four spaces more than the parent's indentation. When done, the
-C<finalize> method I<must> be called explicitly.
-
-Trying to create a new child with a previous child still active (i.e.,
-C<finalize> not called) will C<croak>.
+ my $parent = $chub->meta(__PACKAGE__, {})->{parent};
-Trying to run a test when you have an open child will also C<croak> and cause
-the test suite to fail.
+ return undef unless $parent;
-=cut
+ return bless {
+ Original_Pid => $$,
+ Stack => $self->{Stack},
+ Hub => $parent,
+ }, blessed($self);
+}
sub child {
my( $self, $name ) = @_;
- if( $self->{Child_Name} ) {
- $self->croak("You already have a child named ($self->{Child_Name}) running");
- }
+ $name ||= "Child of " . $self->name;
+ my $ctx = $self->ctx;
- my $parent_in_todo = $self->in_todo;
+ my $parent = $ctx->hub;
+ my $pmeta = $parent->meta(__PACKAGE__, {});
+ $self->croak("You already have a child named ($pmeta->{child}) running")
+ if $pmeta->{child};
+
+ $pmeta->{child} = $name;
# Clear $TODO for the child.
my $orig_TODO = $self->find_TODO(undef, 1, undef);
- my $class = ref $self;
- my $child = $class->create;
-
- # Add to our indentation
- $child->_indent( $self->_indent . ' ' );
+ my $subevents = [];
- # Make the child use the same outputs as the parent
- for my $method (qw(output failure_output todo_output)) {
- $child->$method( $self->$method );
- }
+ my $hub = $ctx->stack->new_hub(
+ class => 'Test2::Hub::Subtest',
+ );
- # Ensure the child understands if they're inside a TODO
- if( $parent_in_todo ) {
- $child->failure_output( $self->todo_output );
- }
+ $hub->pre_filter(sub {
+ my ($active_hub, $e) = @_;
- # This will be reset in finalize. We do this here lest one child failure
- # cause all children to fail.
- $child->{Child_Error} = $?;
- $? = 0;
- $child->{Parent} = $self;
- $child->{Parent_TODO} = $orig_TODO;
- $child->{Name} = $name || "Child of " . $self->name;
- $self->{Child_Name} = $child->name;
- return $child;
-}
+ # Turn a diag into a todo diag
+ return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 'Test2::Event::Diag';
+ return $e;
+ }, inherit => 1) if $orig_TODO;
-=item B<subtest>
+ $hub->listen(sub { push @$subevents => $_[1] });
- $builder->subtest($name, \&subtests, @args);
+ $hub->set_nested( $parent->isa('Test2::Hub::Subtest') ? $parent->nested + 1 : 1 );
-See documentation of C<subtest> in Test::More.
+ my $meta = $hub->meta(__PACKAGE__, {});
+ $meta->{Name} = $name;
+ $meta->{TODO} = $orig_TODO;
+ $meta->{TODO_PKG} = $ctx->trace->package;
+ $meta->{parent} = $parent;
+ $meta->{Test_Results} = [];
+ $meta->{subevents} = $subevents;
+ $meta->{subtest_id} = $hub->id;
+ $meta->{subtest_buffered} = $parent->format ? 0 : 1;
-C<subtest> also, and optionally, accepts arguments which will be passed to the
-subtests reference.
+ $self->_add_ts_hooks;
-=cut
+ $ctx->release;
+ return bless { Original_Pid => $$, Stack => $self->{Stack}, Hub => $hub }, blessed($self);
+}
-sub subtest {
+sub finalize {
my $self = shift;
- my($name, $subtests, @args) = @_;
-
- if ('CODE' ne ref $subtests) {
- $self->croak("subtest()'s second argument must be a code ref");
- }
-
- # Turn the child into the parent so anyone who has stored a copy of
- # the Test::Builder singleton will get the child.
- my $error;
- my $child;
- my $parent = {};
- {
- # child() calls reset() which sets $Level to 1, so we localize
- # $Level first to limit the scope of the reset to the subtest.
- local $Test::Builder::Level = $Test::Builder::Level + 1;
+ my $ok = 1;
+ ($ok) = @_ if @_;
- # Store the guts of $self as $parent and turn $child into $self.
- $child = $self->child($name);
- _copy($self, $parent);
- _copy($child, $self);
-
- my $run_the_subtests = sub {
- # Add subtest name for clarification of starting point
- $self->note("Subtest: $name");
- $subtests->(@args);
- $self->done_testing unless $self->_plan_handled;
- 1;
- };
+ my $st_ctx = $self->ctx;
+ my $chub = $self->{Hub} || return $st_ctx->release;
- if( !eval { $run_the_subtests->() } ) {
- $error = $@;
- }
+ my $meta = $chub->meta(__PACKAGE__, {});
+ if ($meta->{child}) {
+ $self->croak("Can't call finalize() with child ($meta->{child}) active");
}
- # Restore the parent and the copied child.
- _copy($self, $child);
- _copy($parent, $self);
-
- # Restore the parent's $TODO
- $self->find_TODO(undef, 1, $child->{Parent_TODO});
-
- # Die *after* we restore the parent.
- die $error if $error and !eval { $error->isa('Test::Builder::Exception') };
-
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- my $finalize = $child->finalize;
-
- $self->BAIL_OUT($child->{Bailed_Out_Reason}) if $child->{Bailed_Out};
-
- return $finalize;
-}
-
-=begin _private
-
-=item B<_plan_handled>
-
- if ( $Test->_plan_handled ) { ... }
-
-Returns true if the developer has explicitly handled the plan via:
-
-=over 4
-
-=item * Explicitly setting the number of tests
-
-=item * Setting 'no_plan'
-
-=item * Set 'skip_all'.
-
-=back
-
-This is currently used in subtests when we implicitly call C<< $Test->done_testing >>
-if the developer has not set a plan.
-
-=end _private
-
-=cut
-
-sub _plan_handled {
- my $self = shift;
- return $self->{Have_Plan} || $self->{No_Plan} || $self->{Skip_All};
-}
-
-
-=item B<finalize>
+ local $? = 0; # don't fail if $subtests happened to set $? nonzero
- my $ok = $child->finalize;
+ $self->{Stack}->pop($chub);
-When your child is done running tests, you must call C<finalize> to clean up
-and tell the parent your pass/fail status.
+ $self->find_TODO($meta->{TODO_PKG}, 1, $meta->{TODO});
-Calling C<finalize> on a child with open children will C<croak>.
+ my $parent = $self->parent;
+ my $ctx = $parent->ctx;
+ my $trace = $ctx->trace;
+ delete $ctx->hub->meta(__PACKAGE__, {})->{child};
-If the child falls out of scope before C<finalize> is called, a failure
-diagnostic will be issued and the child is considered to have failed.
+ $chub->finalize($trace, 1)
+ if $ok
+ && $chub->count
+ && !$chub->no_ending
+ && !$chub->ended;
-No attempt to call methods on a child after C<finalize> is called is
-guaranteed to succeed.
+ my $plan = $chub->plan || 0;
+ my $count = $chub->count;
+ my $failed = $chub->failed;
+ my $passed = $chub->is_passing;
-Calling this on the root builder is a no-op.
+ my $num_extra = $plan =~ m/\D/ ? 0 : $count - $plan;
+ if ($count && $num_extra != 0) {
+ my $s = $plan == 1 ? '' : 's';
+ $st_ctx->diag(<<"FAIL");
+Looks like you planned $plan test$s but ran $count.
+FAIL
+ }
-=cut
+ if ($failed) {
+ my $s = $failed == 1 ? '' : 's';
-sub finalize {
- my $self = shift;
+ my $qualifier = $num_extra == 0 ? '' : ' run';
- return unless $self->parent;
- if( $self->{Child_Name} ) {
- $self->croak("Can't call finalize() with child ($self->{Child_Name}) active");
+ $st_ctx->diag(<<"FAIL");
+Looks like you failed $failed test$s of $count$qualifier.
+FAIL
}
- local $? = 0; # don't fail if $subtests happened to set $? nonzero
- $self->_ending;
+ if (!$passed && !$failed && $count && !$num_extra) {
+ $st_ctx->diag(<<"FAIL");
+All assertions inside the subtest passed, but errors were encountered.
+FAIL
+ }
- # XXX This will only be necessary for TAP envelopes (we think)
- #$self->_print( $self->is_passing ? "PASS\n" : "FAIL\n" );
+ $st_ctx->release;
- local $Test::Builder::Level = $Test::Builder::Level + 1;
- my $ok = 1;
- $self->parent->{Child_Name} = undef;
- unless ($self->{Bailed_Out}) {
- if ( $self->{Skip_All} ) {
- $self->parent->skip($self->{Skip_All}, $self->name);
+ unless ($chub->bailed_out) {
+ my $plan = $chub->plan;
+ if ( $plan && $plan eq 'SKIP' ) {
+ $parent->skip($chub->skip_reason, $meta->{Name});
}
- elsif ( not @{ $self->{Test_Results} } ) {
- $self->parent->ok( 0, sprintf q[No tests run for subtest "%s"], $self->name );
+ elsif ( !$chub->count ) {
+ $parent->ok( 0, sprintf q[No tests run for subtest "%s"], $meta->{Name} );
}
else {
- $self->parent->ok( $self->is_passing, $self->name );
+ $parent->{subevents} = $meta->{subevents};
+ $parent->{subtest_id} = $meta->{subtest_id};
+ $parent->{subtest_buffered} = $meta->{subtest_buffered};
+ $parent->ok( $chub->is_passing, $meta->{Name} );
}
}
- $? = $self->{Child_Error};
- delete $self->{Parent};
- return $self->is_passing;
+ $ctx->release;
+ return $chub->is_passing;
}
-sub _indent {
+sub subtest {
my $self = shift;
-
- if( @_ ) {
- $self->{Indent} = shift;
+ my ($name, $code, @args) = @_;
+ my $ctx = $self->ctx;
+ $ctx->throw("subtest()'s second argument must be a code ref")
+ unless $code && reftype($code) eq 'CODE';
+
+ $name ||= "Child of " . $self->name;
+
+ $ctx->note("Subtest: $name");
+
+ my $child = $self->child($name);
+
+ my $start_pid = $$;
+ my $st_ctx;
+ my ($ok, $err, $finished, $child_error);
+ T2_SUBTEST_WRAPPER: {
+ my $ctx = $self->ctx;
+ $st_ctx = $ctx->snapshot;
+ $ctx->release;
+ $ok = eval { local $Level = 1; $code->(@args); 1 };
+ ($err, $child_error) = ($@, $?);
+
+ # They might have done 'BEGIN { skip_all => "whatever" }'
+ if (!$ok && $err =~ m/Label not found for "last T2_SUBTEST_WRAPPER"/ || (blessed($err) && blessed($err) eq 'Test::Builder::Exception')) {
+ $ok = undef;
+ $err = undef;
+ }
+ else {
+ $finished = 1;
+ }
}
- return $self->{Indent};
-}
-
-=item B<parent>
+ if ($start_pid != $$ && !$INC{'Test/Sync/IPC.pm'}) {
+ warn $ok ? "Forked inside subtest, but subtest never finished!\n" : $err;
+ exit 255;
+ }
- if ( my $parent = $builder->parent ) {
- ...
- }
+ my $trace = $ctx->trace;
-Returns the parent C<Test::Builder> instance, if any. Only used with child
-builders for nested TAP.
+ if (!$finished) {
+ if(my $bailed = $st_ctx->hub->bailed_out) {
+ my $chub = $child->{Hub};
+ $self->{Stack}->pop($chub);
+ $ctx->bail($bailed->reason);
+ }
+ my $code = $st_ctx->hub->exit_code;
+ $ok = !$code;
+ $err = "Subtest ended with exit code $code" if $code;
+ }
-=cut
+ my $st_hub = $st_ctx->hub;
+ my $plan = $st_hub->plan;
+ my $count = $st_hub->count;
-sub parent { shift->{Parent} }
+ if (!$count && (!defined($plan) || "$plan" ne 'SKIP')) {
+ $st_ctx->plan(0) unless defined $plan;
+ $st_ctx->diag('No tests run!');
+ }
-=item B<name>
+ $child->finalize($st_ctx->trace);
- diag $builder->name;
+ $ctx->release;
-Returns the name of the current builder. Top level builders default to C<$0>
-(the name of the executable). Child builders are named via the C<child>
-method. If no name is supplied, will be named "Child of $parent->name".
+ die $err unless $ok;
-=cut
+ $? = $child_error if defined $child_error;
-sub name { shift->{Name} }
+ return $st_hub->is_passing;
+}
-sub DESTROY {
+sub name {
my $self = shift;
- if ( $self->parent and $$ == $self->{Original_Pid} ) {
- my $name = $self->name;
- $self->diag(<<"FAIL");
-Child ($name) exited without calling finalize()
-FAIL
- $self->parent->{In_Destroy} = 1;
- $self->parent->ok(0, $name);
- }
+ my $ctx = $self->ctx;
+ release $ctx, $ctx->hub->meta(__PACKAGE__, {})->{Name};
}
-=item B<reset>
-
- $Test->reset;
-
-Reinitializes the Test::Builder singleton to its original state.
-Mostly useful for tests run in persistent environments where the same
-test might be run multiple times in the same process.
-
-=cut
-
-our $Level;
-
sub reset { ## no critic (Subroutines::ProhibitBuiltinHomonyms)
- my($self) = @_;
+ my ($self, %params) = @_;
+
+ Test2::API::test2_set_is_end(0);
# We leave this a global because it has to be localized and localizing
# hash keys is just asking for pain. Also, it was documented.
$Level = 1;
- $self->{Name} = $0;
- $self->is_passing(1);
- $self->{Ending} = 0;
- $self->{Have_Plan} = 0;
- $self->{No_Plan} = 0;
- $self->{Have_Output_Plan} = 0;
- $self->{Done_Testing} = 0;
-
$self->{Original_Pid} = $$;
- $self->{Child_Name} = undef;
- $self->{Indent} ||= '';
-
- $self->{Curr_Test} = 0;
- $self->{Test_Results} = &share( [] );
-
- $self->{Exported_To} = undef;
- $self->{Expected_Tests} = 0;
-
- $self->{Skip_All} = 0;
- $self->{Use_Nums} = 1;
-
- $self->{No_Header} = 0;
- $self->{No_Ending} = 0;
-
- $self->{Todo} = undef;
- $self->{Todo_Stack} = [];
- $self->{Start_Todo} = 0;
- $self->{Opened_Testhandles} = 0;
+ my $ctx = $self->ctx;
+ unless ($params{singleton}) {
+ $ctx->hub->reset_state();
+ $ctx->hub->set_pid($$);
+ $ctx->hub->set_tid(get_tid);
+ }
- $self->_share_keys;
- $self->_dup_stdhandles;
+ my $meta = $ctx->hub->meta(__PACKAGE__, {});
+ %$meta = (
+ Name => $0,
+ Ending => 0,
+ Done_Testing => undef,
+ Skip_All => 0,
+ Test_Results => [],
+ );
- return;
-}
+ $self->{Exported_To} = undef;
+ $self->{Orig_Handles} ||= do {
+ my $format = $ctx->hub->format;
+ my $out;
+ if ($format && $format->isa('Test2::Formatter::TAP')) {
+ $out = $format->handles;
+ }
+ $out ? [@$out] : [];
+ };
-# Shared scalar values are lost when a hash is copied, so we have
-# a separate method to restore them.
-# Shared references are retained across copies.
-sub _share_keys {
- my $self = shift;
+ $self->use_numbers(1);
+ $self->no_header(0);
+ $self->no_ending(0);
+ $self->reset_outputs;
- share( $self->{Curr_Test} );
+ $ctx->release;
return;
}
-=back
-
-=head2 Setting up tests
-
-These methods are for setting up tests and declaring how many there
-are. You usually only want to call one of these methods.
-
-=over 4
-
-=item B<plan>
-
- $Test->plan('no_plan');
- $Test->plan( skip_all => $reason );
- $Test->plan( tests => $num_tests );
-
-A convenient way to set up your tests. Call this and Test::Builder
-will print the appropriate headers and take the appropriate actions.
-
-If you call C<plan()>, don't call any of the other methods below.
-
-If a child calls "skip_all" in the plan, a C<Test::Builder::Exception> is
-thrown. Trap this error, call C<finalize()> and don't run any more tests on
-the child.
-
- my $child = $Test->child('some child');
- eval { $child->plan( $condition ? ( skip_all => $reason ) : ( tests => 3 ) ) };
- if ( eval { $@->isa('Test::Builder::Exception') } ) {
- $child->finalize;
- return;
- }
- # run your tests
-
-=cut
-
my %plan_cmds = (
- no_plan => \&no_plan,
- skip_all => \&skip_all,
- tests => \&_plan_tests,
+ no_plan => \&no_plan,
+ skip_all => \&skip_all,
+ tests => \&_plan_tests,
);
sub plan {
@@ -530,9 +423,12 @@ sub plan {
return unless $cmd;
- local $Level = $Level + 1;
+ my $ctx = $self->ctx;
+ my $hub = $ctx->hub;
- $self->croak("You tried to plan twice") if $self->{Have_Plan};
+ $ctx->throw("You tried to plan twice") if $hub->plan;
+
+ local $Level = $Level + 1;
if( my $method = $plan_cmds{$cmd} ) {
local $Level = $Level + 1;
@@ -540,241 +436,156 @@ sub plan {
}
else {
my @args = grep { defined } ( $cmd, $arg );
- $self->croak("plan() doesn't understand @args");
+ $ctx->throw("plan() doesn't understand @args");
}
- return 1;
+ release $ctx, 1;
}
sub _plan_tests {
my($self, $arg) = @_;
+ my $ctx = $self->ctx;
+
if($arg) {
local $Level = $Level + 1;
- return $self->expected_tests($arg);
+ $self->expected_tests($arg);
}
elsif( !defined $arg ) {
- $self->croak("Got an undefined number of tests");
+ $ctx->throw("Got an undefined number of tests");
}
else {
- $self->croak("You said to run 0 tests");
+ $ctx->throw("You said to run 0 tests");
}
- return;
+ $ctx->release;
}
-=item B<expected_tests>
-
- my $max = $Test->expected_tests;
- $Test->expected_tests($max);
-
-Gets/sets the number of tests we expect this test to run and prints out
-the appropriate headers.
-
-=cut
sub expected_tests {
my $self = shift;
my($max) = @_;
+ my $ctx = $self->ctx;
+
if(@_) {
$self->croak("Number of tests must be a positive integer. You gave it '$max'")
unless $max =~ /^\+?\d+$/;
- $self->{Expected_Tests} = $max;
- $self->{Have_Plan} = 1;
-
- $self->_output_plan($max) unless $self->no_header;
+ $ctx->plan($max);
}
- return $self->{Expected_Tests};
-}
-=item B<no_plan>
+ my $hub = $ctx->hub;
- $Test->no_plan;
+ $ctx->release;
-Declares that this test will run an indeterminate number of tests.
+ my $plan = $hub->plan;
+ return 0 unless $plan;
+ return 0 if $plan =~ m/\D/;
+ return $plan;
+}
-=cut
sub no_plan {
my($self, $arg) = @_;
- $self->carp("no_plan takes no arguments") if $arg;
-
- $self->{No_Plan} = 1;
- $self->{Have_Plan} = 1;
+ my $ctx = $self->ctx;
- return 1;
-}
-
-=begin private
-
-=item B<_output_plan>
-
- $tb->_output_plan($max);
- $tb->_output_plan($max, $directive);
- $tb->_output_plan($max, $directive => $reason);
-
-Handles displaying the test plan.
-
-If a C<$directive> and/or C<$reason> are given they will be output with the
-plan. So here's what skipping all tests looks like:
-
- $tb->_output_plan(0, "SKIP", "Because I said so");
-
-It sets C<< $tb->{Have_Output_Plan} >> and will croak if the plan was already
-output.
-
-=end private
-
-=cut
-
-sub _output_plan {
- my($self, $max, $directive, $reason) = @_;
-
- $self->carp("The plan was already output") if $self->{Have_Output_Plan};
-
- my $plan = "1..$max";
- $plan .= " # $directive" if defined $directive;
- $plan .= " $reason" if defined $reason;
+ if (defined $ctx->hub->plan) {
+ warn "Plan already set, no_plan() is a no-op, this will change to a hard failure in the future.";
+ $ctx->release;
+ return;
+ }
- $self->_print("$plan\n");
+ $ctx->alert("no_plan takes no arguments") if $arg;
- $self->{Have_Output_Plan} = 1;
+ $ctx->hub->plan('NO PLAN');
- return;
+ release $ctx, 1;
}
-=item B<done_testing>
-
- $Test->done_testing();
- $Test->done_testing($num_tests);
-
-Declares that you are done testing, no more tests will be run after this point.
-
-If a plan has not yet been output, it will do so.
-
-$num_tests is the number of tests you planned to run. If a numbered
-plan was already declared, and if this contradicts, a failing test
-will be run to reflect the planning mistake. If C<no_plan> was declared,
-this will override.
-
-If C<done_testing()> is called twice, the second call will issue a
-failing test.
-
-If C<$num_tests> is omitted, the number of tests run will be used, like
-no_plan.
-
-C<done_testing()> is, in effect, used when you'd want to use C<no_plan>, but
-safer. You'd use it like so:
+sub done_testing {
+ my($self, $num_tests) = @_;
- $Test->ok($a == $b);
- $Test->done_testing();
+ my $ctx = $self->ctx;
-Or to plan a variable number of tests:
+ my $meta = $ctx->hub->meta(__PACKAGE__, {});
- for my $test (@tests) {
- $Test->ok($test);
+ if ($meta->{Done_Testing}) {
+ my ($file, $line) = @{$meta->{Done_Testing}}[1,2];
+ local $ctx->hub->{ended}; # OMG This is awful.
+ $self->ok(0, "done_testing() was already called at $file line $line");
+ $ctx->release;
+ return;
}
- $Test->done_testing(scalar @tests);
-
-=cut
+ $meta->{Done_Testing} = [$ctx->trace->call];
-sub done_testing {
- my($self, $num_tests) = @_;
+ my $plan = $ctx->hub->plan;
+ my $count = $ctx->hub->count;
- # If done_testing() specified the number of tests, shut off no_plan.
+ # If done_testing() specified the number of tests, shut off no_plan
if( defined $num_tests ) {
- $self->{No_Plan} = 0;
+ $ctx->plan($num_tests) if !$plan || $plan eq 'NO PLAN';
+ }
+ elsif ($count && defined $num_tests && $count != $num_tests) {
+ $self->ok(0, "planned to run @{[ $self->expected_tests ]} but done_testing() expects $num_tests");
}
else {
$num_tests = $self->current_test;
}
- if( $self->{Done_Testing} ) {
- my($file, $line) = @{$self->{Done_Testing}}[1,2];
- $self->ok(0, "done_testing() was already called at $file line $line");
- return;
- }
-
- $self->{Done_Testing} = [caller];
-
if( $self->expected_tests && $num_tests != $self->expected_tests ) {
$self->ok(0, "planned to run @{[ $self->expected_tests ]} ".
"but done_testing() expects $num_tests");
}
- else {
- $self->{Expected_Tests} = $num_tests;
- }
-
- $self->_output_plan($num_tests) unless $self->{Have_Output_Plan};
- $self->{Have_Plan} = 1;
+ $ctx->plan($num_tests) if $ctx->hub->plan && $ctx->hub->plan eq 'NO PLAN';
- # The wrong number of tests were run
- $self->is_passing(0) if $self->{Expected_Tests} != $self->{Curr_Test};
+ $ctx->hub->finalize($ctx->trace, 1);
- # No tests were run
- $self->is_passing(0) if $self->{Curr_Test} == 0;
-
- return 1;
+ release $ctx, 1;
}
-=item B<has_plan>
-
- $plan = $Test->has_plan
-
-Find out whether a plan has been defined. C<$plan> is either C<undef> (no plan
-has been set), C<no_plan> (indeterminate # of tests) or an integer (the number
-of expected tests).
-
-=cut
-
sub has_plan {
my $self = shift;
- return( $self->{Expected_Tests} ) if $self->{Expected_Tests};
- return('no_plan') if $self->{No_Plan};
+ my $ctx = $self->ctx;
+ my $plan = $ctx->hub->plan;
+ $ctx->release;
+
+ return( $plan ) if $plan && $plan !~ m/\D/;
+ return('no_plan') if $plan && $plan eq 'NO PLAN';
return(undef);
}
-=item B<skip_all>
-
- $Test->skip_all;
- $Test->skip_all($reason);
-
-Skips all the tests, using the given C<$reason>. Exits immediately with 0.
-
-=cut
sub skip_all {
my( $self, $reason ) = @_;
- $self->{Skip_All} = $self->parent ? $reason : 1;
-
- $self->_output_plan(0, "SKIP", $reason) unless $self->no_header;
- if ( $self->parent ) {
- die bless {} => 'Test::Builder::Exception';
- }
- exit(0);
-}
-
-=item B<exported_to>
+ my $ctx = $self->ctx;
- my $pack = $Test->exported_to;
- $Test->exported_to($pack);
+ $ctx->hub->meta(__PACKAGE__, {})->{Skip_All} = $reason || 1;
-Tells Test::Builder what package you exported your functions to.
+ # Work around old perl bug
+ if ($] < 5.020000) {
+ my $begin = 0;
+ my $level = 0;
+ while (my @call = caller($level++)) {
+ last unless @call && $call[0];
+ next unless $call[3] =~ m/::BEGIN$/;
+ $begin++;
+ last;
+ }
+ # HACK!
+ die 'Label not found for "last T2_SUBTEST_WRAPPER"' if $begin && $ctx->hub->meta(__PACKAGE__, {})->{parent};
+ }
-This method isn't terribly useful since modules which share the same
-Test::Builder object might get exported to different packages and only
-the last one will be honored.
+ $ctx->plan(0, SKIP => $reason);
+}
-=cut
sub exported_to {
my( $self, $pack ) = @_;
@@ -785,171 +596,124 @@ sub exported_to {
return $self->{Exported_To};
}
-=back
-
-=head2 Running tests
-
-These actually run the tests, analogous to the functions in Test::More.
-
-They all return true if the test passed, false if the test failed.
-
-C<$name> is always optional.
-
-=over 4
-
-=item B<ok>
-
- $Test->ok($test, $name);
-
-Your basic test. Pass if C<$test> is true, fail if $test is false. Just
-like Test::Simple's C<ok()>.
-
-=cut
sub ok {
my( $self, $test, $name ) = @_;
- if ( $self->{Child_Name} and not $self->{In_Destroy} ) {
- $name = 'unnamed test' unless defined $name;
- $self->is_passing(0);
- $self->croak("Cannot run test ($name) with active children");
- }
+ my $ctx = $self->ctx;
+
# $test might contain an object which we don't want to accidentally
# store, so we turn it into a boolean.
$test = $test ? 1 : 0;
- lock $self->{Curr_Test};
- $self->{Curr_Test}++;
-
# In case $name is a string overloaded object, force it to stringify.
- $self->_unoverload_str( \$name );
+ no warnings qw/uninitialized numeric/;
+ $name = "$name" if defined $name;
- $self->diag(<<"ERR") if defined $name and $name =~ /^[\d\s]+$/;
+ # Profiling showed that the regex here was a huge time waster, doing the
+ # numeric addition first cuts our profile time from ~300ms to ~50ms
+ $self->diag(<<" ERR") if 0 + $name && $name =~ /^[\d\s]+$/;
You named your test '$name'. You shouldn't use numbers for your test names.
Very confusing.
-ERR
-
- # Capture the value of $TODO for the rest of this ok() call
- # so it can more easily be found by other routines.
- my $todo = $self->todo();
- my $in_todo = $self->in_todo;
- local $self->{Todo} = $todo if $in_todo;
+ ERR
+ use warnings qw/uninitialized numeric/;
+
+ my $trace = $ctx->{trace};
+ my $hub = $ctx->{hub};
+
+ my $result = {
+ ok => $test,
+ actual_ok => $test,
+ reason => '',
+ type => '',
+ (name => defined($name) ? $name : ''),
+ };
- $self->_unoverload_str( \$todo );
+ $hub->{_meta}->{+__PACKAGE__}->{Test_Results}[ $hub->{count} ] = $result;
- my $out;
- my $result = &share( {} );
+ my $orig_name = $name;
- unless($test) {
- $out .= "not ";
- @$result{ 'ok', 'actual_ok' } = ( ( $self->in_todo ? 1 : 0 ), 0 );
- }
- else {
- @$result{ 'ok', 'actual_ok' } = ( 1, $test );
+ my @attrs;
+ my $subevents = delete $self->{subevents};
+ my $subtest_id = delete $self->{subtest_id};
+ my $subtest_buffered = delete $self->{subtest_buffered};
+ my $epkg = 'Test2::Event::Ok';
+ if ($subevents) {
+ $epkg = 'Test2::Event::Subtest';
+ push @attrs => (subevents => $subevents, subtest_id => $subtest_id, buffered => $subtest_buffered);
}
- $out .= "ok";
- $out .= " $self->{Curr_Test}" if $self->use_numbers;
+ my $e = bless {
+ trace => bless( {%$trace}, 'Test2::Util::Trace'),
+ pass => $test,
+ name => $name,
+ _meta => {'Test::Builder' => $result},
+ effective_pass => $test,
+ @attrs,
+ }, $epkg;
+ $hub->send($e);
- if( defined $name ) {
- $name =~ s|#|\\#|g; # # in a name can confuse Test::Harness.
- $out .= " - $name";
- $result->{name} = $name;
- }
- else {
- $result->{name} = '';
- }
+ $self->_ok_debug($trace, $orig_name) unless($test);
- if( $self->in_todo ) {
- $out .= " # TODO $todo";
- $result->{reason} = $todo;
- $result->{type} = 'todo';
- }
- else {
- $result->{reason} = '';
- $result->{type} = '';
- }
-
- $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = $result;
- $out .= "\n";
-
- $self->_print($out);
+ $ctx->release;
+ return $test;
+}
- unless($test) {
- my $msg = $self->in_todo ? "Failed (TODO)" : "Failed";
- $self->_print_to_fh( $self->_diag_fh, "\n" ) if $ENV{HARNESS_ACTIVE};
+sub _ok_debug {
+ my $self = shift;
+ my ($trace, $orig_name) = @_;
- my( undef, $file, $line ) = $self->caller;
- if( defined $name ) {
- $self->diag(qq[ $msg test '$name'\n]);
- $self->diag(qq[ at $file line $line.\n]);
- }
- else {
- $self->diag(qq[ $msg test at $file line $line.\n]);
- }
- }
+ my $is_todo = defined($self->todo);
- $self->is_passing(0) unless $test || $self->in_todo;
+ my $msg = $is_todo ? "Failed (TODO)" : "Failed";
- # Check that we haven't violated the plan
- $self->_check_is_passing_plan();
+ my $dfh = $self->_diag_fh;
+ print $dfh "\n" if $ENV{HARNESS_ACTIVE} && $dfh;
- return $test ? 1 : 0;
+ my (undef, $file, $line) = $trace->call;
+ if (defined $orig_name) {
+ $self->diag(qq[ $msg test '$orig_name'\n]);
+ $self->diag(qq[ at $file line $line.\n]);
+ }
+ else {
+ $self->diag(qq[ $msg test at $file line $line.\n]);
+ }
}
-
-# Check that we haven't yet violated the plan and set
-# is_passing() accordingly
-sub _check_is_passing_plan {
+sub _diag_fh {
my $self = shift;
-
- my $plan = $self->has_plan;
- return unless defined $plan; # no plan yet defined
- return unless $plan !~ /\D/; # no numeric plan
- $self->is_passing(0) if $plan < $self->{Curr_Test};
+ local $Level = $Level + 1;
+ return $self->in_todo ? $self->todo_output : $self->failure_output;
}
-
sub _unoverload {
- my $self = shift;
- my $type = shift;
-
- $self->_try(sub { require overload; }, die_on_fail => 1);
+ my ($self, $type, $thing) = @_;
- foreach my $thing (@_) {
- if( $self->_is_object($$thing) ) {
- if( my $string_meth = overload::Method( $$thing, $type ) ) {
- $$thing = $$thing->$string_meth();
- }
- }
+ return unless ref $$thing;
+ return unless blessed($$thing) || scalar $self->_try(sub{ $$thing->isa('UNIVERSAL') });
+ {
+ local ($!, $@);
+ require overload;
}
-
- return;
-}
-
-sub _is_object {
- my( $self, $thing ) = @_;
-
- return $self->_try( sub { ref $thing && $thing->isa('UNIVERSAL') } ) ? 1 : 0;
+ my $string_meth = overload::Method( $$thing, $type ) || return;
+ $$thing = $$thing->$string_meth();
}
sub _unoverload_str {
my $self = shift;
- return $self->_unoverload( q[""], @_ );
+ $self->_unoverload( q[""], $_ ) for @_;
}
sub _unoverload_num {
my $self = shift;
- $self->_unoverload( '0+', @_ );
+ $self->_unoverload( '0+', $_ ) for @_;
for my $val (@_) {
next unless $self->_is_dualvar($$val);
$$val = $$val + 0;
}
-
- return;
}
# This is a hack to detect a dualvar such as $!
@@ -964,28 +728,12 @@ sub _is_dualvar {
return ($numval != 0 and $numval ne $val ? 1 : 0);
}
-=item B<is_eq>
-
- $Test->is_eq($got, $expected, $name);
-
-Like Test::More's C<is()>. Checks if C<$got eq $expected>. This is the
-string version.
-
-C<undef> only ever matches another C<undef>.
-
-=item B<is_num>
-
- $Test->is_num($got, $expected, $name);
-
-Like Test::More's C<is()>. Checks if C<$got == $expected>. This is the
-numeric version.
-
-C<undef> only ever matches another C<undef>.
-
-=cut
sub is_eq {
my( $self, $got, $expect, $name ) = @_;
+
+ my $ctx = $self->ctx;
+
local $Level = $Level + 1;
if( !defined $got || !defined $expect ) {
@@ -994,14 +742,17 @@ sub is_eq {
$self->ok( $test, $name );
$self->_is_diag( $got, 'eq', $expect ) unless $test;
+ $ctx->release;
return $test;
}
- return $self->cmp_ok( $got, 'eq', $expect, $name );
+ release $ctx, $self->cmp_ok( $got, 'eq', $expect, $name );
}
+
sub is_num {
my( $self, $got, $expect, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
if( !defined $got || !defined $expect ) {
@@ -1010,12 +761,14 @@ sub is_num {
$self->ok( $test, $name );
$self->_is_diag( $got, '==', $expect ) unless $test;
+ $ctx->release;
return $test;
}
- return $self->cmp_ok( $got, '==', $expect, $name );
+ release $ctx, $self->cmp_ok( $got, '==', $expect, $name );
}
+
sub _diag_fmt {
my( $self, $type, $val ) = @_;
@@ -1036,6 +789,7 @@ sub _diag_fmt {
return;
}
+
sub _is_diag {
my( $self, $got, $type, $expect ) = @_;
@@ -1061,24 +815,10 @@ sub _isnt_diag {
DIAGNOSTIC
}
-=item B<isnt_eq>
-
- $Test->isnt_eq($got, $dont_expect, $name);
-
-Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
-the string version.
-
-=item B<isnt_num>
-
- $Test->isnt_num($got, $dont_expect, $name);
-
-Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
-the numeric version.
-
-=cut
sub isnt_eq {
my( $self, $got, $dont_expect, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
if( !defined $got || !defined $dont_expect ) {
@@ -1087,14 +827,16 @@ sub isnt_eq {
$self->ok( $test, $name );
$self->_isnt_diag( $got, 'ne' ) unless $test;
+ $ctx->release;
return $test;
}
- return $self->cmp_ok( $got, 'ne', $dont_expect, $name );
+ release $ctx, $self->cmp_ok( $got, 'ne', $dont_expect, $name );
}
sub isnt_num {
my( $self, $got, $dont_expect, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
if( !defined $got || !defined $dont_expect ) {
@@ -1103,52 +845,32 @@ sub isnt_num {
$self->ok( $test, $name );
$self->_isnt_diag( $got, '!=' ) unless $test;
+ $ctx->release;
return $test;
}
- return $self->cmp_ok( $got, '!=', $dont_expect, $name );
+ release $ctx, $self->cmp_ok( $got, '!=', $dont_expect, $name );
}
-=item B<like>
-
- $Test->like($thing, qr/$regex/, $name);
- $Test->like($thing, '/$regex/', $name);
-
-Like L<Test::More>'s C<like()>. Checks if $thing matches the given C<$regex>.
-
-=item B<unlike>
-
- $Test->unlike($thing, qr/$regex/, $name);
- $Test->unlike($thing, '/$regex/', $name);
-
-Like L<Test::More>'s C<unlike()>. Checks if $thing B<does not match> the
-given C<$regex>.
-
-=cut
sub like {
my( $self, $thing, $regex, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
- return $self->_regex_ok( $thing, $regex, '=~', $name );
+
+ release $ctx, $self->_regex_ok( $thing, $regex, '=~', $name );
}
sub unlike {
my( $self, $thing, $regex, $name ) = @_;
+ my $ctx = $self->ctx;
local $Level = $Level + 1;
- return $self->_regex_ok( $thing, $regex, '!~', $name );
-}
-
-=item B<cmp_ok>
-
- $Test->cmp_ok($thing, $type, $that, $name);
-
-Works just like L<Test::More>'s C<cmp_ok()>.
- $Test->cmp_ok($big_num, '!=', $other_big_num);
+ release $ctx, $self->_regex_ok( $thing, $regex, '!~', $name );
+}
-=cut
my %numeric_cmps = map { ( $_, 1 ) } ( "<", "<=", ">", ">=", "==", "!=", "<=>" );
@@ -1157,9 +879,10 @@ my %cmp_ok_bl = map { ( $_, 1 ) } ( "=", "+=", ".=", "x=", "^=", "|=", "||=", "&
sub cmp_ok {
my( $self, $got, $type, $expect, $name ) = @_;
+ my $ctx = $self->ctx;
if ($cmp_ok_bl{$type}) {
- $self->croak("$type is not a valid comparison operator in cmp_ok()");
+ $ctx->throw("$type is not a valid comparison operator in cmp_ok()");
}
my ($test, $succ);
@@ -1169,7 +892,7 @@ sub cmp_ok {
local( $@, $!, $SIG{__DIE__} ); # isolate eval
- my($pack, $file, $line) = $self->caller();
+ my($pack, $file, $line) = $ctx->trace->call();
# This is so that warnings come out at the caller's level
$succ = eval qq[
@@ -1203,13 +926,26 @@ END
$self->_is_diag( $got, $type, $expect );
}
elsif( $type =~ /^(ne|!=)$/ ) {
- $self->_isnt_diag( $got, $type );
+ no warnings;
+ my $eq = ($got eq $expect || $got == $expect)
+ && (
+ (defined($got) xor defined($expect))
+ || (length($got) != length($expect))
+ );
+ use warnings;
+
+ if ($eq) {
+ $self->_cmp_diag( $got, $type, $expect );
+ }
+ else {
+ $self->_isnt_diag( $got, $type );
+ }
}
else {
$self->_cmp_diag( $got, $type, $expect );
}
}
- return $ok;
+ return release $ctx, $ok;
}
sub _cmp_diag {
@@ -1237,182 +973,71 @@ sub _caller_context {
return $code;
}
-=back
-
-
-=head2 Other Testing Methods
-
-These are methods which are used in the course of writing a test but are not themselves tests.
-
-=over 4
-
-=item B<BAIL_OUT>
-
- $Test->BAIL_OUT($reason);
-
-Indicates to the L<Test::Harness> that things are going so badly all
-testing should terminate. This includes running any additional test
-scripts.
-
-It will exit with 255.
-
-=cut
sub BAIL_OUT {
my( $self, $reason ) = @_;
- $self->{Bailed_Out} = 1;
+ my $ctx = $self->ctx;
- if ($self->parent) {
- $self->{Bailed_Out_Reason} = $reason;
- $self->no_ending(1);
- die bless {} => 'Test::Builder::Exception';
- }
+ $self->{Bailed_Out} = 1;
- $self->_print("Bail out! $reason");
- exit 255;
+ $ctx->bail($reason);
}
-=for deprecated
-BAIL_OUT() used to be BAILOUT()
-
-=cut
{
no warnings 'once';
*BAILOUT = \&BAIL_OUT;
}
-=item B<skip>
-
- $Test->skip;
- $Test->skip($why);
-
-Skips the current test, reporting C<$why>.
-
-=cut
-
sub skip {
my( $self, $why, $name ) = @_;
$why ||= '';
$name = '' unless defined $name;
$self->_unoverload_str( \$why );
- lock( $self->{Curr_Test} );
- $self->{Curr_Test}++;
+ my $ctx = $self->ctx;
- $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = &share(
- {
- 'ok' => 1,
- actual_ok => 1,
- name => $name,
- type => 'skip',
- reason => $why,
- }
- );
+ $ctx->hub->meta(__PACKAGE__, {})->{Test_Results}[ $ctx->hub->count ] = {
+ 'ok' => 1,
+ actual_ok => 1,
+ name => $name,
+ type => 'skip',
+ reason => $why,
+ };
- my $out = "ok";
- $out .= " $self->{Curr_Test}" if $self->use_numbers;
- $out .= " # skip";
- $out .= " $why" if length $why;
- $out .= "\n";
+ $name =~ s|#|\\#|g; # # in a name can confuse Test::Harness.
+ $name =~ s{\n}{\n# }sg;
+ $why =~ s{\n}{\n# }sg;
- $self->_print($out);
+ my $tctx = $ctx->snapshot;
+ $tctx->skip('', $why);
- return 1;
+ return release $ctx, 1;
}
-=item B<todo_skip>
-
- $Test->todo_skip;
- $Test->todo_skip($why);
-
-Like C<skip()>, only it will declare the test as failing and TODO. Similar
-to
-
- print "not ok $tnum # TODO $why\n";
-
-=cut
sub todo_skip {
my( $self, $why ) = @_;
$why ||= '';
- lock( $self->{Curr_Test} );
- $self->{Curr_Test}++;
+ my $ctx = $self->ctx;
- $self->{Test_Results}[ $self->{Curr_Test} - 1 ] = &share(
- {
- 'ok' => 1,
- actual_ok => 0,
- name => '',
- type => 'todo_skip',
- reason => $why,
- }
- );
-
- my $out = "not ok";
- $out .= " $self->{Curr_Test}" if $self->use_numbers;
- $out .= " # TODO & SKIP $why\n";
+ $ctx->hub->meta(__PACKAGE__, {})->{Test_Results}[ $ctx->hub->count ] = {
+ 'ok' => 1,
+ actual_ok => 0,
+ name => '',
+ type => 'todo_skip',
+ reason => $why,
+ };
- $self->_print($out);
+ $why =~ s{\n}{\n# }sg;
+ my $tctx = $ctx->snapshot;
+ $tctx->send_event( 'Skip', todo => $why, todo_diag => 1, reason => $why, pass => 0);
- return 1;
+ return release $ctx, 1;
}
-=begin _unimplemented
-
-=item B<skip_rest>
-
- $Test->skip_rest;
- $Test->skip_rest($reason);
-
-Like C<skip()>, only it skips all the rest of the tests you plan to run
-and terminates the test.
-
-If you're running under C<no_plan>, it skips once and terminates the
-test.
-
-=end _unimplemented
-
-=back
-
-
-=head2 Test building utility methods
-
-These methods are useful when writing your own test methods.
-
-=over 4
-
-=item B<maybe_regex>
-
- $Test->maybe_regex(qr/$regex/);
- $Test->maybe_regex('/$regex/');
-
-This method used to be useful back when Test::Builder worked on Perls
-before 5.6 which didn't have qr//. Now its pretty useless.
-
-Convenience method for building testing functions that take regular
-expressions as arguments.
-
-Takes a quoted regular expression produced by C<qr//>, or a string
-representing a regular expression.
-
-Returns a Perl value which may be used instead of the corresponding
-regular expression, or C<undef> if its argument is not recognised.
-
-For example, a version of C<like()>, sans the useful diagnostic messages,
-could be written as:
-
- sub laconic_like {
- my ($self, $thing, $regex, $name) = @_;
- my $usable_regex = $self->maybe_regex($regex);
- die "expecting regex, found '$regex'\n"
- unless $usable_regex;
- $self->ok($thing =~ m/$usable_regex/, $name);
- }
-
-=cut
sub maybe_regex {
my( $self, $regex ) = @_;
@@ -1494,26 +1119,415 @@ DIAGNOSTIC
return $ok;
}
-# I'm not ready to publish this. It doesn't deal with array return
-# values from the code or context.
-=begin private
+sub is_fh {
+ my $self = shift;
+ my $maybe_fh = shift;
+ return 0 unless defined $maybe_fh;
+
+ return 1 if ref $maybe_fh eq 'GLOB'; # its a glob ref
+ return 1 if ref \$maybe_fh eq 'GLOB'; # its a glob
+
+ return eval { $maybe_fh->isa("IO::Handle") } ||
+ eval { tied($maybe_fh)->can('TIEHANDLE') };
+}
+
+
+sub level {
+ my( $self, $level ) = @_;
-=item B<_try>
+ if( defined $level ) {
+ $Level = $level;
+ }
+ return $Level;
+}
- my $return_from_code = $Test->try(sub { code });
- my($return_from_code, $error) = $Test->try(sub { code });
-Works like eval BLOCK except it ensures it has no effect on the rest
-of the test (ie. C<$@> is not set) nor is effected by outside
-interference (ie. C<$SIG{__DIE__}>) and works around some quirks in older
-Perls.
+sub use_numbers {
+ my( $self, $use_nums ) = @_;
-C<$error> is what would normally be in C<$@>.
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ unless ($format && $format->can('no_numbers') && $format->can('set_no_numbers')) {
+ warn "The current formatter does not support 'use_numbers'" if $format;
+ return release $ctx, 0;
+ }
-It is suggested you use this in place of eval BLOCK.
+ $format->set_no_numbers(!$use_nums) if defined $use_nums;
+
+ return release $ctx, $format->no_numbers ? 0 : 1;
+}
+
+BEGIN {
+ for my $method (qw(no_header no_diag)) {
+ my $set = "set_$method";
+ my $code = sub {
+ my( $self, $no ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ unless ($format && $format->can($set)) {
+ warn "The current formatter does not support '$method'" if $format;
+ $ctx->release;
+ return
+ }
+
+ $format->$set($no) if defined $no;
+
+ return release $ctx, $format->$method ? 1 : 0;
+ };
+
+ no strict 'refs'; ## no critic
+ *$method = $code;
+ }
+}
+
+sub no_ending {
+ my( $self, $no ) = @_;
+
+ my $ctx = $self->ctx;
+
+ $ctx->hub->set_no_ending($no) if defined $no;
+
+ return release $ctx, $ctx->hub->no_ending;
+}
+
+sub diag {
+ my $self = shift;
+ return unless @_;
+
+ my $ctx = $self->ctx;
+ $ctx->diag(join '' => map {defined($_) ? $_ : 'undef'} @_);
+ $ctx->release;
+ return 0;
+}
+
+
+sub note {
+ my $self = shift;
+ return unless @_;
+
+ my $ctx = $self->ctx;
+ $ctx->note(join '' => map {defined($_) ? $_ : 'undef'} @_);
+ $ctx->release;
+ return 0;
+}
+
+
+sub explain {
+ my $self = shift;
+
+ local ($@, $!);
+ require Data::Dumper;
+
+ return map {
+ ref $_
+ ? do {
+ my $dumper = Data::Dumper->new( [$_] );
+ $dumper->Indent(1)->Terse(1);
+ $dumper->Sortkeys(1) if $dumper->can("Sortkeys");
+ $dumper->Dump;
+ }
+ : $_
+ } @_;
+}
+
+
+sub output {
+ my( $self, $fh ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ $ctx->release;
+ return unless $format && $format->isa('Test2::Formatter::TAP');
+
+ $format->handles->[Test2::Formatter::TAP::OUT_STD()] = $self->_new_fh($fh)
+ if defined $fh;
+
+ return $format->handles->[Test2::Formatter::TAP::OUT_STD()];
+}
+
+sub failure_output {
+ my( $self, $fh ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ $ctx->release;
+ return unless $format && $format->isa('Test2::Formatter::TAP');
+
+ $format->handles->[Test2::Formatter::TAP::OUT_ERR()] = $self->_new_fh($fh)
+ if defined $fh;
+
+ return $format->handles->[Test2::Formatter::TAP::OUT_ERR()];
+}
+
+sub todo_output {
+ my( $self, $fh ) = @_;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ $ctx->release;
+ return unless $format && $format->isa('Test::Builder::Formatter');
+
+ $format->handles->[Test::Builder::Formatter::OUT_TODO()] = $self->_new_fh($fh)
+ if defined $fh;
+
+ return $format->handles->[Test::Builder::Formatter::OUT_TODO()];
+}
+
+sub _new_fh {
+ my $self = shift;
+ my($file_or_fh) = shift;
+
+ my $fh;
+ if( $self->is_fh($file_or_fh) ) {
+ $fh = $file_or_fh;
+ }
+ elsif( ref $file_or_fh eq 'SCALAR' ) {
+ # Scalar refs as filehandles was added in 5.8.
+ if( $] >= 5.008 ) {
+ open $fh, ">>", $file_or_fh
+ or $self->croak("Can't open scalar ref $file_or_fh: $!");
+ }
+ # Emulate scalar ref filehandles with a tie.
+ else {
+ $fh = Test::Builder::IO::Scalar->new($file_or_fh)
+ or $self->croak("Can't tie scalar ref $file_or_fh");
+ }
+ }
+ else {
+ open $fh, ">", $file_or_fh
+ or $self->croak("Can't open test output log $file_or_fh: $!");
+ _autoflush($fh);
+ }
+
+ return $fh;
+}
+
+sub _autoflush {
+ my($fh) = shift;
+ my $old_fh = select $fh;
+ $| = 1;
+ select $old_fh;
+
+ return;
+}
+
+
+sub reset_outputs {
+ my $self = shift;
+
+ my $ctx = $self->ctx;
+ my $format = $ctx->hub->format;
+ $ctx->release;
+ return unless $format && $format->isa('Test2::Formatter::TAP');
+ $format->set_handles([@{$self->{Orig_Handles}}]) if $self->{Orig_Handles};
+
+ return;
+}
+
+
+sub carp {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ $ctx->alert(join "", @_);
+ $ctx->release;
+}
+
+sub croak {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ $ctx->throw(join "", @_);
+ $ctx->release;
+}
+
+
+sub current_test {
+ my( $self, $num ) = @_;
+
+ my $ctx = $self->ctx;
+ my $hub = $ctx->hub;
+
+ if( defined $num ) {
+ $hub->set_count($num);
+
+ # If the test counter is being pushed forward fill in the details.
+ my $test_results = $ctx->hub->meta(__PACKAGE__, {})->{Test_Results};
+ if( $num > @$test_results ) {
+ my $start = @$test_results ? @$test_results : 0;
+ for( $start .. $num - 1 ) {
+ $test_results->[$_] = {
+ 'ok' => 1,
+ actual_ok => undef,
+ reason => 'incrementing test number',
+ type => 'unknown',
+ name => undef
+ };
+ }
+ }
+ # If backward, wipe history. Its their funeral.
+ elsif( $num < @$test_results ) {
+ $#{$test_results} = $num - 1;
+ }
+ }
+ return release $ctx, $hub->count;
+}
+
+
+sub is_passing {
+ my $self = shift;
+
+ my $ctx = $self->ctx;
+ my $hub = $ctx->hub;
+
+ if( @_ ) {
+ my ($bool) = @_;
+ $hub->set_failed(0) if $bool;
+ $hub->is_passing($bool);
+ }
+
+ return release $ctx, $hub->is_passing;
+}
+
+
+sub summary {
+ my($self) = shift;
+
+ my $ctx = $self->ctx;
+ my $data = $ctx->hub->meta(__PACKAGE__, {})->{Test_Results};
+ $ctx->release;
+ return map { $_->{'ok'} } @$data;
+}
+
+
+sub details {
+ my $self = shift;
+ my $ctx = $self->ctx;
+ my $data = $ctx->hub->meta(__PACKAGE__, {})->{Test_Results};
+ $ctx->release;
+ return @$data;
+}
+
+
+sub find_TODO {
+ my( $self, $pack, $set, $new_value ) = @_;
+
+ my $ctx = $self->ctx;
+
+ $pack ||= $ctx->trace->package || $self->exported_to;
+ $ctx->release;
+
+ return unless $pack;
+
+ no strict 'refs'; ## no critic
+ no warnings 'once';
+ my $old_value = ${ $pack . '::TODO' };
+ $set and ${ $pack . '::TODO' } = $new_value;
+ return $old_value;
+}
+
+sub todo {
+ my( $self, $pack ) = @_;
+
+ local $Level = $Level + 1;
+ my $ctx = $self->ctx;
+ $ctx->release;
+
+ my $meta = $ctx->hub->meta(__PACKAGE__, {todo => []})->{todo};
+ return $meta->[-1]->[1] if $meta && @$meta;
+
+ $pack ||= $ctx->trace->package;
+
+ return unless $pack;
+
+ no strict 'refs'; ## no critic
+ no warnings 'once';
+ return ${ $pack . '::TODO' };
+}
+
+sub in_todo {
+ my $self = shift;
+
+ local $Level = $Level + 1;
+ my $ctx = $self->ctx;
+ $ctx->release;
+
+ my $meta = $ctx->hub->meta(__PACKAGE__, {todo => []})->{todo};
+ return 1 if $meta && @$meta;
+
+ my $pack = $ctx->trace->package || return 0;
+
+ no strict 'refs'; ## no critic
+ no warnings 'once';
+ my $todo = ${ $pack . '::TODO' };
+
+ return 0 unless defined $todo;
+ return 0 if "$todo" eq '';
+ return 1;
+}
+
+sub todo_start {
+ my $self = shift;
+ my $message = @_ ? shift : '';
+
+ my $ctx = $self->ctx;
+
+ my $hub = $ctx->hub;
+ my $filter = $hub->pre_filter(sub {
+ my ($active_hub, $e) = @_;
+
+ # Turn a diag into a todo diag
+ return Test::Builder::TodoDiag->new(%$e) if ref($e) eq 'Test2::Event::Diag';
+
+ # Set todo on ok's
+ if ($hub == $active_hub && $e->isa('Test2::Event::Ok')) {
+ $e->set_todo($message);
+ $e->set_effective_pass(1);
+
+ if (my $result = $e->get_meta(__PACKAGE__)) {
+ $result->{reason} ||= $message;
+ $result->{type} ||= 'todo';
+ $result->{ok} = 1;
+ }
+ }
+
+ return $e;
+ }, inherit => 1);
+
+ push @{$ctx->hub->meta(__PACKAGE__, {todo => []})->{todo}} => [$filter, $message];
+
+ $ctx->release;
+
+ return;
+}
+
+sub todo_end {
+ my $self = shift;
+
+ my $ctx = $self->ctx;
+
+ my $set = pop @{$ctx->hub->meta(__PACKAGE__, {todo => []})->{todo}};
+
+ $ctx->throw('todo_end() called without todo_start()') unless $set;
+
+ $ctx->hub->pre_unfilter($set->[0]);
+
+ $ctx->release;
+
+ return;
+}
+
+
+sub caller { ## no critic (Subroutines::ProhibitBuiltinHomonyms)
+ my( $self ) = @_;
+
+ my $ctx = $self->ctx;
+
+ my $trace = $ctx->trace;
+ $ctx->release;
+ return wantarray ? $trace->call : $trace->package;
+}
-=cut
sub _try {
my( $self, $code, %opts ) = @_;
@@ -1533,7 +1547,513 @@ sub _try {
return wantarray ? ( $return, $error ) : $return;
}
-=end private
+sub _ending {
+ my $self = shift;
+ my ($ctx, $real_exit_code, $new) = @_;
+
+ unless ($ctx) {
+ my $octx = $self->ctx;
+ $ctx = $octx->snapshot;
+ $octx->release;
+ }
+
+ return if $ctx->hub->no_ending;
+ return if $ctx->hub->meta(__PACKAGE__, {})->{Ending}++;
+
+ # Don't bother with an ending if this is a forked copy. Only the parent
+ # should do the ending.
+ return unless $self->{Original_Pid} == $$;
+
+ my $hub = $ctx->hub;
+ return if $hub->bailed_out;
+
+ my $plan = $hub->plan;
+ my $count = $hub->count;
+ my $failed = $hub->failed;
+ my $passed = $hub->is_passing;
+ return unless $plan || $count || $failed;
+
+ # Ran tests but never declared a plan or hit done_testing
+ if( !$hub->plan and $hub->count ) {
+ $self->diag("Tests were run but no plan was declared and done_testing() was not seen.");
+
+ if($real_exit_code) {
+ $self->diag(<<"FAIL");
+Looks like your test exited with $real_exit_code just after $count.
+FAIL
+ $$new ||= $real_exit_code;
+ return;
+ }
+
+ # But if the tests ran, handle exit code.
+ if($failed > 0) {
+ my $exit_code = $failed <= 254 ? $failed : 254;
+ $$new ||= $exit_code;
+ return;
+ }
+
+ $$new ||= 254;
+ return;
+ }
+
+ if ($real_exit_code && !$count) {
+ $self->diag("Looks like your test exited with $real_exit_code before it could output anything.");
+ $$new ||= $real_exit_code;
+ return;
+ }
+
+ return if $plan && "$plan" eq 'SKIP';
+
+ if (!$count) {
+ $self->diag('No tests run!');
+ $$new ||= 255;
+ return;
+ }
+
+ if ($real_exit_code) {
+ $self->diag(<<"FAIL");
+Looks like your test exited with $real_exit_code just after $count.
+FAIL
+ $$new ||= $real_exit_code;
+ return;
+ }
+
+ if ($plan eq 'NO PLAN') {
+ $ctx->plan( $count );
+ $plan = $hub->plan;
+ }
+
+ # Figure out if we passed or failed and print helpful messages.
+ my $num_extra = $count - $plan;
+
+ if ($num_extra != 0) {
+ my $s = $plan == 1 ? '' : 's';
+ $self->diag(<<"FAIL");
+Looks like you planned $plan test$s but ran $count.
+FAIL
+ }
+
+ if ($failed) {
+ my $s = $failed == 1 ? '' : 's';
+
+ my $qualifier = $num_extra == 0 ? '' : ' run';
+
+ $self->diag(<<"FAIL");
+Looks like you failed $failed test$s of $count$qualifier.
+FAIL
+ }
+
+ if (!$passed && !$failed && $count && !$num_extra) {
+ $ctx->diag(<<"FAIL");
+All assertions passed, but errors were encountered.
+FAIL
+ }
+
+ my $exit_code = 0;
+ if ($failed) {
+ $exit_code = $failed <= 254 ? $failed : 254;
+ }
+ elsif ($num_extra != 0) {
+ $exit_code = 255;
+ }
+ elsif (!$passed) {
+ $exit_code = 255;
+ }
+
+ $$new ||= $exit_code;
+ return;
+}
+
+# Some things used this even though it was private... I am looking at you
+# Test::Builder::Prefix...
+sub _print_comment {
+ my( $self, $fh, @msgs ) = @_;
+
+ return if $self->no_diag;
+ return unless @msgs;
+
+ # Prevent printing headers when compiling (i.e. -c)
+ return if $^C;
+
+ # Smash args together like print does.
+ # Convert undef to 'undef' so its readable.
+ my $msg = join '', map { defined($_) ? $_ : 'undef' } @msgs;
+
+ # Escape the beginning, _print will take care of the rest.
+ $msg =~ s/^/# /;
+
+ local( $\, $", $, ) = ( undef, ' ', '' );
+ print $fh $msg;
+
+ return 0;
+}
+
+# This is used by Test::SharedFork to turn on IPC after the fact. Not
+# documenting because I do not want it used. The method name is borrowed from
+# Test::Builder 2
+# Once Test2 stuff goes stable this method will be removed and Test::SharedFork
+# will be made smarter.
+sub coordinate_forks {
+ my $self = shift;
+
+ {
+ local ($@, $!);
+ require Test2::IPC;
+ }
+ Test2::IPC->import;
+ Test2::API::test2_ipc_enable_polling();
+ my $ipc = Test2::IPC::apply_ipc($self->{Stack});
+ $ipc->set_no_fatal(1);
+ Test2::API::test2_no_wait(1);
+ Test2::API::test2_ipc_enable_shm();
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Test::Builder - Backend for building test libraries
+
+=head1 SYNOPSIS
+
+ package My::Test::Module;
+ use base 'Test::Builder::Module';
+
+ my $CLASS = __PACKAGE__;
+
+ sub ok {
+ my($test, $name) = @_;
+ my $tb = $CLASS->builder;
+
+ $tb->ok($test, $name);
+ }
+
+
+=head1 DESCRIPTION
+
+L<Test::Simple> and L<Test::More> have proven to be popular testing modules,
+but they're not always flexible enough. Test::Builder provides a
+building block upon which to write your own test libraries I<which can
+work together>.
+
+=head2 Construction
+
+=over 4
+
+=item B<new>
+
+ my $Test = Test::Builder->new;
+
+Returns a Test::Builder object representing the current state of the
+test.
+
+Since you only run one test per program C<new> always returns the same
+Test::Builder object. No matter how many times you call C<new()>, you're
+getting the same object. This is called a singleton. This is done so that
+multiple modules share such global information as the test counter and
+where test output is going.
+
+If you want a completely new Test::Builder object different from the
+singleton, use C<create>.
+
+=item B<create>
+
+ my $Test = Test::Builder->create;
+
+Ok, so there can be more than one Test::Builder object and this is how
+you get it. You might use this instead of C<new()> if you're testing
+a Test::Builder based module, but otherwise you probably want C<new>.
+
+B<NOTE>: the implementation is not complete. C<level>, for example, is still
+shared by B<all> Test::Builder objects, even ones created using this method.
+Also, the method name may change in the future.
+
+=item B<subtest>
+
+ $builder->subtest($name, \&subtests, @args);
+
+See documentation of C<subtest> in Test::More.
+
+C<subtest> also, and optionally, accepts arguments which will be passed to the
+subtests reference.
+
+=item B<name>
+
+ diag $builder->name;
+
+Returns the name of the current builder. Top level builders default to C<$0>
+(the name of the executable). Child builders are named via the C<child>
+method. If no name is supplied, will be named "Child of $parent->name".
+
+=item B<reset>
+
+ $Test->reset;
+
+Reinitializes the Test::Builder singleton to its original state.
+Mostly useful for tests run in persistent environments where the same
+test might be run multiple times in the same process.
+
+=back
+
+=head2 Setting up tests
+
+These methods are for setting up tests and declaring how many there
+are. You usually only want to call one of these methods.
+
+=over 4
+
+=item B<plan>
+
+ $Test->plan('no_plan');
+ $Test->plan( skip_all => $reason );
+ $Test->plan( tests => $num_tests );
+
+A convenient way to set up your tests. Call this and Test::Builder
+will print the appropriate headers and take the appropriate actions.
+
+If you call C<plan()>, don't call any of the other methods below.
+
+=item B<expected_tests>
+
+ my $max = $Test->expected_tests;
+ $Test->expected_tests($max);
+
+Gets/sets the number of tests we expect this test to run and prints out
+the appropriate headers.
+
+
+=item B<no_plan>
+
+ $Test->no_plan;
+
+Declares that this test will run an indeterminate number of tests.
+
+
+=item B<done_testing>
+
+ $Test->done_testing();
+ $Test->done_testing($num_tests);
+
+Declares that you are done testing, no more tests will be run after this point.
+
+If a plan has not yet been output, it will do so.
+
+$num_tests is the number of tests you planned to run. If a numbered
+plan was already declared, and if this contradicts, a failing test
+will be run to reflect the planning mistake. If C<no_plan> was declared,
+this will override.
+
+If C<done_testing()> is called twice, the second call will issue a
+failing test.
+
+If C<$num_tests> is omitted, the number of tests run will be used, like
+no_plan.
+
+C<done_testing()> is, in effect, used when you'd want to use C<no_plan>, but
+safer. You'd use it like so:
+
+ $Test->ok($a == $b);
+ $Test->done_testing();
+
+Or to plan a variable number of tests:
+
+ for my $test (@tests) {
+ $Test->ok($test);
+ }
+ $Test->done_testing(scalar @tests);
+
+
+=item B<has_plan>
+
+ $plan = $Test->has_plan
+
+Find out whether a plan has been defined. C<$plan> is either C<undef> (no plan
+has been set), C<no_plan> (indeterminate # of tests) or an integer (the number
+of expected tests).
+
+=item B<skip_all>
+
+ $Test->skip_all;
+ $Test->skip_all($reason);
+
+Skips all the tests, using the given C<$reason>. Exits immediately with 0.
+
+=item B<exported_to>
+
+ my $pack = $Test->exported_to;
+ $Test->exported_to($pack);
+
+Tells Test::Builder what package you exported your functions to.
+
+This method isn't terribly useful since modules which share the same
+Test::Builder object might get exported to different packages and only
+the last one will be honored.
+
+=back
+
+=head2 Running tests
+
+These actually run the tests, analogous to the functions in Test::More.
+
+They all return true if the test passed, false if the test failed.
+
+C<$name> is always optional.
+
+=over 4
+
+=item B<ok>
+
+ $Test->ok($test, $name);
+
+Your basic test. Pass if C<$test> is true, fail if $test is false. Just
+like Test::Simple's C<ok()>.
+
+=item B<is_eq>
+
+ $Test->is_eq($got, $expected, $name);
+
+Like Test::More's C<is()>. Checks if C<$got eq $expected>. This is the
+string version.
+
+C<undef> only ever matches another C<undef>.
+
+=item B<is_num>
+
+ $Test->is_num($got, $expected, $name);
+
+Like Test::More's C<is()>. Checks if C<$got == $expected>. This is the
+numeric version.
+
+C<undef> only ever matches another C<undef>.
+
+=item B<isnt_eq>
+
+ $Test->isnt_eq($got, $dont_expect, $name);
+
+Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
+the string version.
+
+=item B<isnt_num>
+
+ $Test->isnt_num($got, $dont_expect, $name);
+
+Like L<Test::More>'s C<isnt()>. Checks if C<$got ne $dont_expect>. This is
+the numeric version.
+
+=item B<like>
+
+ $Test->like($thing, qr/$regex/, $name);
+ $Test->like($thing, '/$regex/', $name);
+
+Like L<Test::More>'s C<like()>. Checks if $thing matches the given C<$regex>.
+
+=item B<unlike>
+
+ $Test->unlike($thing, qr/$regex/, $name);
+ $Test->unlike($thing, '/$regex/', $name);
+
+Like L<Test::More>'s C<unlike()>. Checks if $thing B<does not match> the
+given C<$regex>.
+
+=item B<cmp_ok>
+
+ $Test->cmp_ok($thing, $type, $that, $name);
+
+Works just like L<Test::More>'s C<cmp_ok()>.
+
+ $Test->cmp_ok($big_num, '!=', $other_big_num);
+
+=back
+
+=head2 Other Testing Methods
+
+These are methods which are used in the course of writing a test but are not themselves tests.
+
+=over 4
+
+=item B<BAIL_OUT>
+
+ $Test->BAIL_OUT($reason);
+
+Indicates to the L<Test::Harness> that things are going so badly all
+testing should terminate. This includes running any additional test
+scripts.
+
+It will exit with 255.
+
+=for deprecated
+BAIL_OUT() used to be BAILOUT()
+
+=item B<skip>
+
+ $Test->skip;
+ $Test->skip($why);
+
+Skips the current test, reporting C<$why>.
+
+=item B<todo_skip>
+
+ $Test->todo_skip;
+ $Test->todo_skip($why);
+
+Like C<skip()>, only it will declare the test as failing and TODO. Similar
+to
+
+ print "not ok $tnum # TODO $why\n";
+
+=begin _unimplemented
+
+=item B<skip_rest>
+
+ $Test->skip_rest;
+ $Test->skip_rest($reason);
+
+Like C<skip()>, only it skips all the rest of the tests you plan to run
+and terminates the test.
+
+If you're running under C<no_plan>, it skips once and terminates the
+test.
+
+=end _unimplemented
+
+=back
+
+
+=head2 Test building utility methods
+
+These methods are useful when writing your own test methods.
+
+=over 4
+
+=item B<maybe_regex>
+
+ $Test->maybe_regex(qr/$regex/);
+ $Test->maybe_regex('/$regex/');
+
+This method used to be useful back when Test::Builder worked on Perls
+before 5.6 which didn't have qr//. Now its pretty useless.
+
+Convenience method for building testing functions that take regular
+expressions as arguments.
+
+Takes a quoted regular expression produced by C<qr//>, or a string
+representing a regular expression.
+
+Returns a Perl value which may be used instead of the corresponding
+regular expression, or C<undef> if its argument is not recognized.
+
+For example, a version of C<like()>, sans the useful diagnostic messages,
+could be written as:
+
+ sub laconic_like {
+ my ($self, $thing, $regex, $name) = @_;
+ my $usable_regex = $self->maybe_regex($regex);
+ die "expecting regex, found '$regex'\n"
+ unless $usable_regex;
+ $self->ok($thing =~ m/$usable_regex/, $name);
+ }
=item B<is_fh>
@@ -1544,17 +2064,6 @@ Determines if the given C<$thing> can be used as a filehandle.
=cut
-sub is_fh {
- my $self = shift;
- my $maybe_fh = shift;
- return 0 unless defined $maybe_fh;
-
- return 1 if ref $maybe_fh eq 'GLOB'; # its a glob ref
- return 1 if ref \$maybe_fh eq 'GLOB'; # its a glob
-
- return eval { $maybe_fh->isa("IO::Handle") } ||
- eval { tied($maybe_fh)->can('TIEHANDLE') };
-}
=back
@@ -1585,17 +2094,6 @@ localized:
To be polite to other functions wrapping your own you usually want to increment C<$Level> rather than set it to a constant.
-=cut
-
-sub level {
- my( $self, $level ) = @_;
-
- if( defined $level ) {
- $Level = $level;
- }
- return $Level;
-}
-
=item B<use_numbers>
$Test->use_numbers($on_or_off);
@@ -1617,17 +2115,6 @@ when threads or forking is involved.
Defaults to on.
-=cut
-
-sub use_numbers {
- my( $self, $use_nums ) = @_;
-
- if( defined $use_nums ) {
- $self->{Use_Nums} = $use_nums;
- }
- return $self->{Use_Nums};
-}
-
=item B<no_diag>
$Test->no_diag($no_diag);
@@ -1650,24 +2137,6 @@ If this is true, none of that will be done.
If set to true, no "1..N" header will be printed.
-=cut
-
-foreach my $attribute (qw(No_Header No_Ending No_Diag)) {
- my $method = lc $attribute;
-
- my $code = sub {
- my( $self, $no ) = @_;
-
- if( defined $no ) {
- $self->{$attribute} = $no;
- }
- return $self->{$attribute};
- };
-
- no strict 'refs'; ## no critic
- *{ __PACKAGE__ . '::' . $method } = $code;
-}
-
=back
=head2 Output
@@ -1703,14 +2172,6 @@ a failing test (C<ok() || diag()>) it "passes through" the failure.
=for blame transfer
Mark Fowler <mark@twoshortplanks.com>
-=cut
-
-sub diag {
- my $self = shift;
-
- $self->_print_comment( $self->_diag_fh, @_ );
-}
-
=item B<note>
$Test->note(@msgs);
@@ -1718,43 +2179,6 @@ sub diag {
Like C<diag()>, but it prints to the C<output()> handle so it will not
normally be seen by the user except in verbose mode.
-=cut
-
-sub note {
- my $self = shift;
-
- $self->_print_comment( $self->output, @_ );
-}
-
-sub _diag_fh {
- my $self = shift;
-
- local $Level = $Level + 1;
- return $self->in_todo ? $self->todo_output : $self->failure_output;
-}
-
-sub _print_comment {
- my( $self, $fh, @msgs ) = @_;
-
- return if $self->no_diag;
- return unless @msgs;
-
- # Prevent printing headers when compiling (i.e. -c)
- return if $^C;
-
- # Smash args together like print does.
- # Convert undef to 'undef' so its readable.
- my $msg = join '', map { defined($_) ? $_ : 'undef' } @msgs;
-
- # Escape the beginning, _print will take care of the rest.
- $msg =~ s/^/# /;
-
- local $Level = $Level + 1;
- $self->_print_to_fh( $fh, $msg );
-
- return 0;
-}
-
=item B<explain>
my @dump = $Test->explain(@msgs);
@@ -1768,64 +2192,6 @@ or
is_deeply($have, $want) || note explain $have;
-=cut
-
-sub explain {
- my $self = shift;
-
- return map {
- ref $_
- ? do {
- $self->_try(sub { require Data::Dumper }, die_on_fail => 1);
-
- my $dumper = Data::Dumper->new( [$_] );
- $dumper->Indent(1)->Terse(1);
- $dumper->Sortkeys(1) if $dumper->can("Sortkeys");
- $dumper->Dump;
- }
- : $_
- } @_;
-}
-
-=begin _private
-
-=item B<_print>
-
- $Test->_print(@msgs);
-
-Prints to the C<output()> filehandle.
-
-=end _private
-
-=cut
-
-sub _print {
- my $self = shift;
- return $self->_print_to_fh( $self->output, @_ );
-}
-
-sub _print_to_fh {
- my( $self, $fh, @msgs ) = @_;
-
- # Prevent printing headers when only compiling. Mostly for when
- # tests are deparsed with B::Deparse
- return if $^C;
-
- my $msg = join '', @msgs;
- my $indent = $self->_indent;
-
- local( $\, $", $, ) = ( undef, ' ', '' );
-
- # Escape each line after the first with a # so we don't
- # confuse Test::Harness.
- $msg =~ s{\n(?!\z)}{\n$indent# }sg;
-
- # Stick a newline on the end if it needs it.
- $msg .= "\n" unless $msg =~ /\n\z/;
-
- return print $fh $indent, $msg;
-}
-
=item B<output>
=item B<failure_output>
@@ -1857,151 +2223,12 @@ user.
Defaults to STDOUT.
-=cut
-
-sub output {
- my( $self, $fh ) = @_;
-
- if( defined $fh ) {
- $self->{Out_FH} = $self->_new_fh($fh);
- }
- return $self->{Out_FH};
-}
-
-sub failure_output {
- my( $self, $fh ) = @_;
-
- if( defined $fh ) {
- $self->{Fail_FH} = $self->_new_fh($fh);
- }
- return $self->{Fail_FH};
-}
-
-sub todo_output {
- my( $self, $fh ) = @_;
-
- if( defined $fh ) {
- $self->{Todo_FH} = $self->_new_fh($fh);
- }
- return $self->{Todo_FH};
-}
-
-sub _new_fh {
- my $self = shift;
- my($file_or_fh) = shift;
-
- my $fh;
- if( $self->is_fh($file_or_fh) ) {
- $fh = $file_or_fh;
- }
- elsif( ref $file_or_fh eq 'SCALAR' ) {
- # Scalar refs as filehandles was added in 5.8.
- if( $] >= 5.008 ) {
- open $fh, ">>", $file_or_fh
- or $self->croak("Can't open scalar ref $file_or_fh: $!");
- }
- # Emulate scalar ref filehandles with a tie.
- else {
- $fh = Test::Builder::IO::Scalar->new($file_or_fh)
- or $self->croak("Can't tie scalar ref $file_or_fh");
- }
- }
- else {
- open $fh, ">", $file_or_fh
- or $self->croak("Can't open test output log $file_or_fh: $!");
- _autoflush($fh);
- }
-
- return $fh;
-}
-
-sub _autoflush {
- my($fh) = shift;
- my $old_fh = select $fh;
- $| = 1;
- select $old_fh;
-
- return;
-}
-
-my( $Testout, $Testerr );
-
-sub _dup_stdhandles {
- my $self = shift;
-
- $self->_open_testhandles;
-
- # Set everything to unbuffered else plain prints to STDOUT will
- # come out in the wrong order from our own prints.
- _autoflush($Testout);
- _autoflush( \*STDOUT );
- _autoflush($Testerr);
- _autoflush( \*STDERR );
-
- $self->reset_outputs;
-
- return;
-}
-
-sub _open_testhandles {
- my $self = shift;
-
- return if $self->{Opened_Testhandles};
-
- # We dup STDOUT and STDERR so people can change them in their
- # test suites while still getting normal test output.
- open( $Testout, ">&STDOUT" ) or die "Can't dup STDOUT: $!";
- open( $Testerr, ">&STDERR" ) or die "Can't dup STDERR: $!";
-
- $self->_copy_io_layers( \*STDOUT, $Testout );
- $self->_copy_io_layers( \*STDERR, $Testerr );
-
- $self->{Opened_Testhandles} = 1;
-
- return;
-}
-
-sub _copy_io_layers {
- my( $self, $src, $dst ) = @_;
-
- $self->_try(
- sub {
- require PerlIO;
- my @src_layers = PerlIO::get_layers($src);
-
- _apply_layers($dst, @src_layers) if @src_layers;
- }
- );
-
- return;
-}
-
-sub _apply_layers {
- my ($fh, @layers) = @_;
- my %seen;
- my @unique = grep { $_ ne 'unix' and !$seen{$_}++ } @layers;
- binmode($fh, join(":", "", "raw", @unique));
-}
-
-
=item reset_outputs
$tb->reset_outputs;
Resets all the output filehandles back to their defaults.
-=cut
-
-sub reset_outputs {
- my $self = shift;
-
- $self->output ($Testout);
- $self->failure_output($Testerr);
- $self->todo_output ($Testout);
-
- return;
-}
-
=item carp
$tb->carp(@message);
@@ -2016,26 +2243,6 @@ point where the original test function was called (C<< $tb->caller >>).
Dies with C<@message> but the message will appear to come from the
point where the original test function was called (C<< $tb->caller >>).
-=cut
-
-sub _message_at_caller {
- my $self = shift;
-
- local $Level = $Level + 1;
- my( $pack, $file, $line ) = $self->caller;
- return join( "", @_ ) . " at $file line $line.\n";
-}
-
-sub carp {
- my $self = shift;
- return warn $self->_message_at_caller(@_);
-}
-
-sub croak {
- my $self = shift;
- return die $self->_message_at_caller(@_);
-}
-
=back
@@ -2056,38 +2263,6 @@ If set forward, the details of the missing tests are filled in as 'unknown'.
if set backward, the details of the intervening tests are deleted. You
can erase history if you really want to.
-=cut
-
-sub current_test {
- my( $self, $num ) = @_;
-
- lock( $self->{Curr_Test} );
- if( defined $num ) {
- $self->{Curr_Test} = $num;
-
- # If the test counter is being pushed forward fill in the details.
- my $test_results = $self->{Test_Results};
- if( $num > @$test_results ) {
- my $start = @$test_results ? @$test_results : 0;
- for( $start .. $num - 1 ) {
- $test_results->[$_] = &share(
- {
- 'ok' => 1,
- actual_ok => undef,
- reason => 'incrementing test number',
- type => 'unknown',
- name => undef
- }
- );
- }
- }
- # If backward, wipe history. Its their funeral.
- elsif( $num < @$test_results ) {
- $#{$test_results} = $num - 1;
- }
- }
- return $self->{Curr_Test};
-}
=item B<is_passing>
@@ -2104,18 +2279,6 @@ test to it and start passing.
Don't think about it too much.
-=cut
-
-sub is_passing {
- my $self = shift;
-
- if( @_ ) {
- $self->{Is_Passing} = shift;
- }
-
- return $self->{Is_Passing};
-}
-
=item B<summary>
@@ -2126,13 +2289,6 @@ This is a logical pass/fail, so todos are passes.
Of course, test #1 is $tests[0], etc...
-=cut
-
-sub summary {
- my($self) = shift;
-
- return map { $_->{'ok'} } @{ $self->{Test_Results} };
-}
=item B<details>
@@ -2140,7 +2296,7 @@ sub summary {
Like C<summary()>, but with a lot more detail.
- $tests[$test_num - 1] =
+ $tests[$test_num - 1] =
{ 'ok' => is the test considered a pass?
actual_ok => did it literally say 'ok'?
name => name of the test (if any)
@@ -2181,12 +2337,6 @@ result in this structure:
reason => 'insufficient donuts'
};
-=cut
-
-sub details {
- my $self = shift;
- return @{ $self->{Test_Results} };
-}
=item B<todo>
@@ -2210,20 +2360,6 @@ Sometimes there is some confusion about where C<todo()> should be looking
for the C<$TODO> variable. If you want to be sure, tell it explicitly
what $pack to use.
-=cut
-
-sub todo {
- my( $self, $pack ) = @_;
-
- return $self->{Todo} if defined $self->{Todo};
-
- local $Level = $Level + 1;
- my $todo = $self->find_TODO($pack);
- return $todo if defined $todo;
-
- return '';
-}
-
=item B<find_TODO>
my $todo_reason = $Test->find_TODO();
@@ -2237,35 +2373,12 @@ old value:
my $old_reason = $Test->find_TODO($pack, 1, $new_reason);
-=cut
-
-sub find_TODO {
- my( $self, $pack, $set, $new_value ) = @_;
-
- $pack = $pack || $self->caller(1) || $self->exported_to;
- return unless $pack;
-
- no strict 'refs'; ## no critic
- my $old_value = ${ $pack . '::TODO' };
- $set and ${ $pack . '::TODO' } = $new_value;
- return $old_value;
-}
-
=item B<in_todo>
my $in_todo = $Test->in_todo;
Returns true if the test is currently inside a TODO block.
-=cut
-
-sub in_todo {
- my $self = shift;
-
- local $Level = $Level + 1;
- return( defined $self->{Todo} || $self->find_TODO ) ? 1 : 0;
-}
-
=item B<todo_start>
$Test->todo_start();
@@ -2307,20 +2420,6 @@ guaranteed and its use is also discouraged:
Pick one style or another of "TODO" to be on the safe side.
-=cut
-
-sub todo_start {
- my $self = shift;
- my $message = @_ ? shift : '';
-
- $self->{Start_Todo}++;
- if( $self->in_todo ) {
- push @{ $self->{Todo_Stack} } => $self->todo;
- }
- $self->{Todo} = $message;
-
- return;
-}
=item C<todo_end>
@@ -2329,27 +2428,6 @@ sub todo_start {
Stops running tests as "TODO" tests. This method is fatal if called without a
preceding C<todo_start> method call.
-=cut
-
-sub todo_end {
- my $self = shift;
-
- if( !$self->{Start_Todo} ) {
- $self->croak('todo_end() called without todo_start()');
- }
-
- $self->{Start_Todo}--;
-
- if( $self->{Start_Todo} && @{ $self->{Todo_Stack} } ) {
- $self->{Todo} = pop @{ $self->{Todo_Stack} };
- }
- else {
- delete $self->{Todo};
- }
-
- return;
-}
-
=item B<caller>
my $package = $Test->caller;
@@ -2362,233 +2440,8 @@ C<$height> will be added to the C<level()>.
If C<caller()> winds up off the top of the stack it report the highest context.
-=cut
-
-sub caller { ## no critic (Subroutines::ProhibitBuiltinHomonyms)
- my( $self, $height ) = @_;
- $height ||= 0;
-
- my $level = $self->level + $height + 1;
- my @caller;
- do {
- @caller = CORE::caller( $level );
- $level--;
- } until @caller;
- return wantarray ? @caller : $caller[0];
-}
-
=back
-=cut
-
-=begin _private
-
-=over 4
-
-=item B<_sanity_check>
-
- $self->_sanity_check();
-
-Runs a bunch of end of test sanity checks to make sure reality came
-through ok. If anything is wrong it will die with a fairly friendly
-error message.
-
-=cut
-
-#'#
-sub _sanity_check {
- my $self = shift;
-
- $self->_whoa( $self->{Curr_Test} < 0, 'Says here you ran a negative number of tests!' );
- $self->_whoa( $self->{Curr_Test} != @{ $self->{Test_Results} },
- 'Somehow you got a different number of results than tests ran!' );
-
- return;
-}
-
-=item B<_whoa>
-
- $self->_whoa($check, $description);
-
-A sanity check, similar to C<assert()>. If the C<$check> is true, something
-has gone horribly wrong. It will die with the given C<$description> and
-a note to contact the author.
-
-=cut
-
-sub _whoa {
- my( $self, $check, $desc ) = @_;
- if($check) {
- local $Level = $Level + 1;
- $self->croak(<<"WHOA");
-WHOA! $desc
-This should never happen! Please contact the author immediately!
-WHOA
- }
-
- return;
-}
-
-=item B<_my_exit>
-
- _my_exit($exit_num);
-
-Perl seems to have some trouble with exiting inside an C<END> block.
-5.6.1 does some odd things. Instead, this function edits C<$?>
-directly. It should B<only> be called from inside an C<END> block.
-It doesn't actually exit, that's your job.
-
-=cut
-
-sub _my_exit {
- $? = $_[0]; ## no critic (Variables::RequireLocalizedPunctuationVars)
-
- return 1;
-}
-
-=back
-
-=end _private
-
-=cut
-
-sub _ending {
- my $self = shift;
- return if $self->no_ending;
- return if $self->{Ending}++;
-
- my $real_exit_code = $?;
-
- # Don't bother with an ending if this is a forked copy. Only the parent
- # should do the ending.
- if( $self->{Original_Pid} != $$ ) {
- return;
- }
-
- # Ran tests but never declared a plan or hit done_testing
- if( !$self->{Have_Plan} and $self->{Curr_Test} ) {
- $self->is_passing(0);
- $self->diag("Tests were run but no plan was declared and done_testing() was not seen.");
-
- if($real_exit_code) {
- $self->diag(<<"FAIL");
-Looks like your test exited with $real_exit_code just after $self->{Curr_Test}.
-FAIL
- $self->is_passing(0);
- _my_exit($real_exit_code) && return;
- }
-
- # But if the tests ran, handle exit code.
- my $test_results = $self->{Test_Results};
- if(@$test_results) {
- my $num_failed = grep !$_->{'ok'}, @{$test_results}[ 0 .. $self->{Curr_Test} - 1 ];
- if ($num_failed > 0) {
-
- my $exit_code = $num_failed <= 254 ? $num_failed : 254;
- _my_exit($exit_code) && return;
- }
- }
- _my_exit(254) && return;
- }
-
- # Exit if plan() was never called. This is so "require Test::Simple"
- # doesn't puke.
- if( !$self->{Have_Plan} ) {
- return;
- }
-
- # Don't do an ending if we bailed out.
- if( $self->{Bailed_Out} ) {
- $self->is_passing(0);
- return;
- }
- # Figure out if we passed or failed and print helpful messages.
- my $test_results = $self->{Test_Results};
- if(@$test_results) {
- # The plan? We have no plan.
- if( $self->{No_Plan} ) {
- $self->_output_plan($self->{Curr_Test}) unless $self->no_header;
- $self->{Expected_Tests} = $self->{Curr_Test};
- }
-
- # Auto-extended arrays and elements which aren't explicitly
- # filled in with a shared reference will puke under 5.8.0
- # ithreads. So we have to fill them in by hand. :(
- my $empty_result = &share( {} );
- for my $idx ( 0 .. $self->{Expected_Tests} - 1 ) {
- $test_results->[$idx] = $empty_result
- unless defined $test_results->[$idx];
- }
-
- my $num_failed = grep !$_->{'ok'}, @{$test_results}[ 0 .. $self->{Curr_Test} - 1 ];
-
- my $num_extra = $self->{Curr_Test} - $self->{Expected_Tests};
-
- if( $num_extra != 0 ) {
- my $s = $self->{Expected_Tests} == 1 ? '' : 's';
- $self->diag(<<"FAIL");
-Looks like you planned $self->{Expected_Tests} test$s but ran $self->{Curr_Test}.
-FAIL
- $self->is_passing(0);
- }
-
- if($num_failed) {
- my $num_tests = $self->{Curr_Test};
- my $s = $num_failed == 1 ? '' : 's';
-
- my $qualifier = $num_extra == 0 ? '' : ' run';
-
- $self->diag(<<"FAIL");
-Looks like you failed $num_failed test$s of $num_tests$qualifier.
-FAIL
- $self->is_passing(0);
- }
-
- if($real_exit_code) {
- $self->diag(<<"FAIL");
-Looks like your test exited with $real_exit_code just after $self->{Curr_Test}.
-FAIL
- $self->is_passing(0);
- _my_exit($real_exit_code) && return;
- }
-
- my $exit_code;
- if($num_failed) {
- $exit_code = $num_failed <= 254 ? $num_failed : 254;
- }
- elsif( $num_extra != 0 ) {
- $exit_code = 255;
- }
- else {
- $exit_code = 0;
- }
-
- _my_exit($exit_code) && return;
- }
- elsif( $self->{Skip_All} ) {
- _my_exit(0) && return;
- }
- elsif($real_exit_code) {
- $self->diag(<<"FAIL");
-Looks like your test exited with $real_exit_code before it could output anything.
-FAIL
- $self->is_passing(0);
- _my_exit($real_exit_code) && return;
- }
- else {
- $self->diag("No tests run!\n");
- $self->is_passing(0);
- _my_exit(255) && return;
- }
-
- $self->is_passing(0);
- $self->_whoa( 1, "We fell off the end of _ending()" );
-}
-
-END {
- $Test->_ending if defined $Test;
-}
-
=head1 EXIT CODES
If all your tests passed, Test::Builder will exit with zero (which is
@@ -2609,9 +2462,9 @@ If you fail more than 254 tests, it will be reported as 254.
=head1 THREADS
-In perl 5.8.1 and later, Test::Builder is thread-safe. The test
-number is shared amongst all threads. This means if one thread sets
-the test number using C<current_test()> they will all be effected.
+In perl 5.8.1 and later, Test::Builder is thread-safe. The test number is
+shared by all threads. This means if one thread sets the test number using
+C<current_test()> they will all be effected.
While versions earlier than 5.8.1 had threads they contain too many
bugs to support.
@@ -2665,8 +2518,3 @@ 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>
-
-=cut
-
-1;
-
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/Formatter.pm b/Master/tlpkg/tlperl/lib/Test/Builder/Formatter.pm
new file mode 100755
index 00000000000..96571c6005d
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/Formatter.pm
@@ -0,0 +1,122 @@
+package Test::Builder::Formatter;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+BEGIN { require Test2::Formatter::TAP; our @ISA = qw(Test2::Formatter::TAP) }
+
+use Test2::Util::HashBase qw/no_header no_diag/;
+
+BEGIN {
+ *OUT_STD = Test2::Formatter::TAP->can('OUT_STD');
+ *OUT_ERR = Test2::Formatter::TAP->can('OUT_ERR');
+
+ my $todo = OUT_ERR() + 1;
+ *OUT_TODO = sub() { $todo };
+}
+
+__PACKAGE__->register_event('Test::Builder::TodoDiag', 'event_todo_diag');
+
+sub init {
+ my $self = shift;
+ $self->SUPER::init(@_);
+ $self->{+HANDLES}->[OUT_TODO] = $self->{+HANDLES}->[OUT_STD];
+}
+
+sub event_todo_diag {
+ my $self = shift;
+ my @out = $self->event_diag(@_);
+ $out[0]->[0] = OUT_TODO();
+ return @out;
+}
+
+sub event_diag {
+ my $self = shift;
+ return if $self->{+NO_DIAG};
+ return $self->SUPER::event_diag(@_);
+}
+
+sub event_plan {
+ my $self = shift;
+ return if $self->{+NO_HEADER};
+ return $self->SUPER::event_plan(@_);
+}
+
+sub event_ok_multiline {
+ my $self = shift;
+ my ($out, $space, @extra) = @_;
+
+ return(
+ [OUT_STD, "$out\n"],
+ map {[OUT_STD, "# $_\n"]} @extra,
+ );
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test::Builder::Formatter - Test::Builder subclass of Test2::Formatter::TAP
+
+=head1 DESCRIPTION
+
+This is what takes events and turns them into TAP.
+
+=head1 SYNOPSIS
+
+ use Test::Builder; # Loads Test::Builder::Formatter for you
+
+=head1 METHODS
+
+=over 4
+
+=item $f->event_todo_diag
+
+Additional method used to process L<Test::Builder::TodoDiag> events.
+
+=item $f->event_diag
+
+=item $f->event_plan
+
+These override the parent class methods to do nothing if C<no_header> is set.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/Module.pm b/Master/tlpkg/tlperl/lib/Test/Builder/Module.pm
index 2322d8a9b78..6fbba79fc0f 100644
--- a/Master/tlpkg/tlperl/lib/Test/Builder/Module.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/Module.pm
@@ -2,13 +2,12 @@ package Test::Builder::Module;
use strict;
-use Test::Builder 1.00;
+use Test::Builder;
require Exporter;
our @ISA = qw(Exporter);
-our $VERSION = '1.001014';
-$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = '1.302073';
=head1 NAME
@@ -22,7 +21,7 @@ Test::Builder::Module - Base class for test modules
my $CLASS = __PACKAGE__;
- use base 'Test::Builder::Module';
+ use parent 'Test::Builder::Module';
@EXPORT = qw(ok);
sub ok ($;$) {
@@ -90,7 +89,8 @@ sub import {
$test->plan(@_);
- $class->export_to_level( 1, $class, @imports );
+ local $Exporter::ExportLevel = $Exporter::ExportLevel + 1;
+ $class->Exporter::import(@imports);
}
sub _strip_imports {
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm b/Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm
index b0554b89aca..647ea2d3710 100644
--- a/Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/Tester.pm
@@ -1,9 +1,9 @@
package Test::Builder::Tester;
use strict;
-our $VERSION = "1.28";
+our $VERSION = '1.302073';
-use Test::Builder 0.99;
+use Test::Builder;
use Symbol;
use Carp;
@@ -104,16 +104,26 @@ my $original_is_passing;
my $original_output_handle;
my $original_failure_handle;
my $original_todo_handle;
+my $original_formatter;
my $original_harness_env;
# function that starts testing and redirects the filehandles for now
sub _start_testing {
+ # Hack for things that conditioned on Test-Stream being loaded
+ $INC{'Test/Stream.pm'} ||= 'fake' if $INC{'Test/Moose/More.pm'};
# even if we're running under Test::Harness pretend we're not
# for now. This needed so Test::Builder doesn't add extra spaces
$original_harness_env = $ENV{HARNESS_ACTIVE} || 0;
$ENV{HARNESS_ACTIVE} = 0;
+ my $hub = $t->{Hub} || Test2::API::test2_stack->top;
+ $original_formatter = $hub->format;
+ unless ($original_formatter && $original_formatter->isa('Test::Builder::Formatter')) {
+ my $fmt = Test::Builder::Formatter->new;
+ $hub->format($fmt);
+ }
+
# remember what the handles were set to
$original_output_handle = $t->output();
$original_failure_handle = $t->failure_output();
@@ -304,6 +314,8 @@ will function normally and cause success/errors for L<Test::Harness>.
=cut
sub test_test {
+ # END the hack
+ delete $INC{'Test/Stream.pm'} if $INC{'Test/Stream.pm'} && $INC{'Test/Stream.pm'} eq 'fake';
# decode the arguments as described in the pod
my $mess;
my %args;
@@ -321,6 +333,10 @@ sub test_test {
croak "Not testing. You must declare output with a test function first."
unless $testing;
+
+ my $hub = $t->{Hub} || Test2::API::test2_stack->top;
+ $hub->format($original_formatter);
+
# okay, reconnect the test suite back to the saved handles
$t->output($original_output_handle);
$t->failure_output($original_failure_handle);
@@ -420,17 +436,26 @@ sub color {
=head1 BUGS
+Test::Builder::Tester does not handle plans well. It has never done anything
+special with plans. This means that plans from outside Test::Builder::Tester
+will effect Test::Builder::Tester, worse plans when using Test::Builder::Tester
+will effect overall testing. At this point there are no plans to fix this bug
+as people have come to depend on it, and Test::Builder::Tester is now
+discouraged in favor of C<Test2::API::intercept()>. See
+L<https://github.com/Test-More/test-more/issues/667>
+
Calls C<< Test::Builder->no_ending >> turning off the ending tests.
This is needed as otherwise it will trip out because we've run more
tests than we strictly should have and it'll register any failures we
had that we were testing for as real failures.
The color function doesn't work unless L<Term::ANSIColor> is
-compatible with your terminal.
+compatible with your terminal. Additionally, L<Win32::Console::ANSI>
+must be installed on windows platforms for color output.
Bugs (and requests for new features) can be reported to the author
-though the CPAN RT system:
-L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Builder-Tester>
+though GitHub:
+L<https://github.com/Test-More/test-more/issues>
=head1 AUTHOR
@@ -487,8 +512,9 @@ sub expect {
sub _account_for_subtest {
my( $self, $check ) = @_;
- # Since we ship with Test::Builder, calling a private method is safe...ish.
- return ref($check) ? $check : $t->_indent . $check;
+ my $hub = $t->{Stack}->top;
+ my $nesting = $hub->isa('Test2::Hub::Subtest') ? $hub->nested : 0;
+ return ref($check) ? $check : (' ' x $nesting) . $check;
}
sub _translate_Failed_check {
@@ -535,6 +561,8 @@ sub complaint {
# get color
eval { require Term::ANSIColor };
unless($@) {
+ eval { require Win32::Console::ANSI } if 'MSWin32' eq $^O; # support color on windows platforms
+
# colours
my $green = Term::ANSIColor::color("black") . Term::ANSIColor::color("on_green");
@@ -563,6 +591,33 @@ sub complaint {
}
}
+ my @got = split "\n", $got;
+ my @wanted = split "\n", $wanted;
+
+ $got = "";
+ $wanted = "";
+
+ while (@got || @wanted) {
+ my $g = shift @got || "";
+ my $w = shift @wanted || "";
+ if ($g ne $w) {
+ if($g =~ s/(\s+)$/ |> /g) {
+ $g .= ($_ eq ' ' ? '_' : '\t') for split '', $1;
+ }
+ if($w =~ s/(\s+)$/ |> /g) {
+ $w .= ($_ eq ' ' ? '_' : '\t') for split '', $1;
+ }
+ $g = "> $g";
+ $w = "> $w";
+ }
+ else {
+ $g = " $g";
+ $w = " $w";
+ }
+ $got = $got ? "$got\n$g" : $g;
+ $wanted = $wanted ? "$wanted\n$w" : $w;
+ }
+
return "$type is:\n" . "$got\nnot:\n$wanted\nas expected";
}
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm b/Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
index 9a89310f1f3..939e7f1cd36 100644
--- a/Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/Tester/Color.pm
@@ -1,7 +1,7 @@
package Test::Builder::Tester::Color;
use strict;
-our $VERSION = "1.290001";
+our $VERSION = '1.302073';
require Test::Builder::Tester;
diff --git a/Master/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm b/Master/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm
new file mode 100755
index 00000000000..74ae0787b66
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test/Builder/TodoDiag.pm
@@ -0,0 +1,61 @@
+package Test::Builder::TodoDiag;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+BEGIN { require Test2::Event::Diag; our @ISA = qw(Test2::Event::Diag) }
+
+sub diagnostics { 0 }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test::Builder::TodoDiag - Test::Builder subclass of Test2::Event::Diag
+
+=head1 DESCRIPTION
+
+This is used to encapsulate diag messages created inside TODO.
+
+=head1 SYNOPSIS
+
+You do not need to use this directly.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test/Harness.pm b/Master/tlpkg/tlperl/lib/Test/Harness.pm
index fe9d3049f9f..3ec34931cee 100644
--- a/Master/tlpkg/tlperl/lib/Test/Harness.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Harness.pm
@@ -31,11 +31,11 @@ Test::Harness - Run Perl standard test scripts with statistics
=head1 VERSION
-Version 3.36
+Version 3.38
=cut
-our $VERSION = '3.36_01';
+our $VERSION = '3.38';
# Backwards compatibility for exportable variable names.
*verbose = *Verbose;
@@ -147,6 +147,7 @@ sub runtests {
my $harness = _new_harness();
my $aggregate = TAP::Parser::Aggregator->new();
+ local $ENV{PERL_USE_UNSAFE_INC} = 1 if not exists $ENV{PERL_USE_UNSAFE_INC};
_aggregate( $harness, $aggregate, @tests );
$harness->formatter->summary($aggregate);
@@ -354,6 +355,7 @@ sub execute_tests {
}
);
+ local $ENV{PERL_USE_UNSAFE_INC} = 1 if not exists $ENV{PERL_USE_UNSAFE_INC};
_aggregate( $harness, $aggregate, @{ $args{tests} } );
$tot{bench} = $aggregate->elapsed;
diff --git a/Master/tlpkg/tlperl/lib/Test/More.pm b/Master/tlpkg/tlperl/lib/Test/More.pm
index 4bab267fcf6..2863c1bba5b 100644
--- a/Master/tlpkg/tlperl/lib/Test/More.pm
+++ b/Master/tlpkg/tlperl/lib/Test/More.pm
@@ -17,10 +17,9 @@ sub _carp {
return warn @_, " at $file line $line\n";
}
-our $VERSION = '1.001014';
-$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = '1.302073';
-use Test::Builder::Module 0.99;
+use Test::Builder::Module;
our @ISA = qw(Test::Builder::Module);
our @EXPORT = qw(ok use_ok require_ok
is isnt like unlike is_deeply
@@ -126,6 +125,8 @@ the end.
done_testing( $number_of_tests_run );
+B<NOTE> C<done_testing()> should never be called in an C<END { ... }> block.
+
Sometimes you really don't know how many tests were run, or it's too
difficult to calculate. In which case you can leave off
$number_of_tests_run.
@@ -176,12 +177,22 @@ sub import_extra {
my @other = ();
my $idx = 0;
+ my $import;
while( $idx <= $#{$list} ) {
my $item = $list->[$idx];
if( defined $item and $item eq 'no_diag' ) {
$class->builder->no_diag(1);
}
+ elsif( defined $item and $item eq 'import' ) {
+ if ($import) {
+ push @$import, @{$list->[ ++$idx ]};
+ }
+ else {
+ $import = $list->[ ++$idx ];
+ push @other, $item, $import;
+ }
+ }
else {
push @other, $item;
}
@@ -191,6 +202,18 @@ sub import_extra {
@$list = @other;
+ if ($class eq __PACKAGE__ && (!$import || grep $_ eq '$TODO', @$import)) {
+ my $to = $class->builder->exported_to;
+ no strict 'refs';
+ *{"$to\::TODO"} = \our $TODO;
+ if ($import) {
+ @$import = grep $_ ne '$TODO', @$import;
+ }
+ else {
+ push @$list, import => [grep $_ ne '$TODO', @EXPORT];
+ }
+ }
+
return;
}
@@ -211,6 +234,10 @@ conclusion.
This is safer than and replaces the "no_plan" plan.
+B<Note:> You must never put C<done_testing()> inside an C<END { ... }> block.
+The plan is there to ensure your test does not exit before testing has
+completed. If you use an END block you completely bypass this protection.
+
=back
=cut
@@ -703,7 +730,7 @@ sub new_ok {
=item B<subtest>
- subtest $name => \&code;
+ subtest $name => \&code, @args;
C<subtest()> runs the &code as its own little test with its own plan and
its own result. The main test counts this as a single test using the
@@ -762,11 +789,20 @@ subtests are equivalent:
done_testing();
};
+Extra arguments given to C<subtest> are passed to the callback. For example:
+
+ sub my_subtest {
+ my $range = shift;
+ ...
+ }
+
+ for my $range (1, 10, 100, 1000) {
+ subtest "testing range $range", \&my_subtest, $range;
+ }
+
=cut
sub subtest {
- my ($name, $subtests) = @_;
-
my $tb = Test::More->builder;
return $tb->subtest(@_);
}
@@ -940,7 +976,10 @@ sub use_ok ($;@) {
@imports = () unless @imports;
my $tb = Test::More->builder;
- my( $pack, $filename, $line ) = caller;
+ my %caller;
+ @caller{qw/pack file line sub args want eval req strict warn/} = caller(0);
+
+ my ($pack, $filename, $line, $warn) = @caller{qw/pack file line warn/};
$filename =~ y/\n\r/_/; # so it doesn't run off the "#line $line $f" line
my $code;
@@ -949,7 +988,7 @@ sub use_ok ($;@) {
# for it to work with non-Exporter based modules.
$code = <<USE;
package $pack;
-
+BEGIN { \${^WARNING_BITS} = \$args[-1] if defined \$args[-1] }
#line $line $filename
use $module $imports[0];
1;
@@ -958,14 +997,14 @@ USE
else {
$code = <<USE;
package $pack;
-
+BEGIN { \${^WARNING_BITS} = \$args[-1] if defined \$args[-1] }
#line $line $filename
use $module \@{\$args[0]};
1;
USE
}
- my( $eval_result, $eval_error ) = _eval( $code, \@imports );
+ my ($eval_result, $eval_error) = _eval($code, \@imports, $warn);
my $ok = $tb->ok( $eval_result, "use $module;" );
unless($ok) {
@@ -1034,6 +1073,20 @@ improve in the future.
L<Test::Differences> and L<Test::Deep> provide more in-depth functionality
along these lines.
+B<NOTE> is_deeply() has limitations when it comes to comparing strings and
+refs:
+
+ my $path = path('.');
+ my $hash = {};
+ is_deeply( $path, "$path" ); # ok
+ is_deeply( $hash, "$hash" ); # fail
+
+This happens because is_deeply will unoverload all arguments unconditionally.
+It is probably best not to use is_deeply with overloading. For legacy reasons
+this is not likely to ever be fixed. If you would like a much better tool for
+this you should see L<Test2::Suite> Specifically L<Test2::Tools::Compare> has
+an C<is()> function that works like C<is_deeply> with many improvements.
+
=cut
our( @Data_Stack, %Refs_Seen );
@@ -1134,7 +1187,7 @@ sub _type {
return '' if !ref $thing;
- for my $type (qw(Regexp ARRAY HASH REF SCALAR GLOB CODE)) {
+ for my $type (qw(Regexp ARRAY HASH REF SCALAR GLOB CODE VSTRING)) {
return $type if UNIVERSAL::isa( $thing, $type );
}
@@ -1293,10 +1346,13 @@ sub skip {
my( $why, $how_many ) = @_;
my $tb = Test::More->builder;
- unless( defined $how_many ) {
- # $how_many can only be avoided when no_plan is in use.
+ # If the plan is set, and is static, then skip needs a count. If the plan
+ # is 'no_plan' we are fine. As well if plan is undefined then we are
+ # waiting for done_testing.
+ unless (defined $how_many) {
+ my $plan = $tb->has_plan;
_carp "skip() needs to know \$how_many tests are in the block"
- unless $tb->has_plan eq 'no_plan';
+ if $plan && $plan =~ m/^\d+$/;
$how_many = 1;
}
@@ -1903,8 +1959,6 @@ comes from.
=head2 BUNDLES
-L<Bundle::Test> installs a whole bunch of useful test modules.
-
L<Test::Most> Most commonly needed test functions and features.
=head1 AUTHORS
@@ -1925,7 +1979,7 @@ the perl-qa gang.
=head1 BUGS
-See F<http://rt.cpan.org> to report and view bugs.
+See F<https://github.com/Test-More/test-more/issues> to report and view bugs.
=head1 SOURCE
diff --git a/Master/tlpkg/tlperl/lib/Test/Simple.pm b/Master/tlpkg/tlperl/lib/Test/Simple.pm
index 56457b407f8..f148fe62c93 100644
--- a/Master/tlpkg/tlperl/lib/Test/Simple.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Simple.pm
@@ -4,10 +4,9 @@ use 5.006;
use strict;
-our $VERSION = '1.001014';
-$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+our $VERSION = '1.302073';
-use Test::Builder::Module 0.99;
+use Test::Builder::Module;
our @ISA = qw(Test::Builder::Module);
our @EXPORT = qw(ok);
diff --git a/Master/tlpkg/tlperl/lib/Test/Tester.pm b/Master/tlpkg/tlperl/lib/Test/Tester.pm
index a5f1ccfdbb8..a324a1bf479 100644
--- a/Master/tlpkg/tlperl/lib/Test/Tester.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Tester.pm
@@ -16,9 +16,10 @@ use Test::Tester::Delegate;
require Exporter;
-use vars qw( @ISA @EXPORT $VERSION );
+use vars qw( @ISA @EXPORT );
+
+our $VERSION = '1.302073';
-$VERSION = "0.114";
@EXPORT = qw( run_tests check_tests check_test cmp_results show_space );
@ISA = qw( Exporter );
@@ -39,10 +40,11 @@ sub show_space
my $colour = '';
my $reset = '';
-if (my $want_colour = $ENV{TESTTESTERCOLOUR} || $ENV{TESTTESTERCOLOUR})
+if (my $want_colour = $ENV{TESTTESTERCOLOUR} || $ENV{TESTTESTERCOLOR})
{
- if (eval "require Term::ANSIColor")
+ if (eval { require Term::ANSIColor; 1 })
{
+ eval { require Win32::Console::ANSI } if 'MSWin32' eq $^O; # support color on windows platforms
my ($f, $b) = split(",", $want_colour);
$colour = Term::ANSIColor::color($f).Term::ANSIColor::color("on_$b");
$reset = Term::ANSIColor::color("reset");
@@ -446,7 +448,7 @@ diagnostics output B<after> the test result is declared.
Note that Test::Builder ensures that any diagnostics end in a \n and
it in earlier versions of Test::Tester it was essential that you have
-the final \n in your expected diagnostics. From version 0.10 onwards,
+the final \n in your expected diagnostics. From version 0.10 onward,
Test::Tester will add the \n if you forgot it. It will not add a \n if
you are expecting no diagnostics. See below for help tracking down
hard to find space and tab related problems.
@@ -495,7 +497,7 @@ are scratching your head trying to work out why Test::Tester is saying that
your diagnostics are wrong when they look perfectly right then the answer is
probably whitespace. From version 0.10 on, Test::Tester surrounds the
expected and got diag values with single quotes to make it easier to spot
-trailing whitesapce. So in this example
+trailing whitespace. So in this example
# Got diag (5 bytes):
# 'abcd '
@@ -513,7 +515,7 @@ switch Test::Tester into a mode whereby all "tricky" characters are shown as
\{xx}. Tricky characters are those with ASCII code less than 33 or higher
than 126. This makes the output more difficult to read but much easier to
find subtle differences between strings. To turn on this mode either call
-show_space() in your test script or set the TESTTESTERSPACE environment
+C<show_space()> in your test script or set the C<TESTTESTERSPACE> environment
variable to be a true value. The example above would then look like
# Got diag (5 bytes):
@@ -524,13 +526,13 @@ variable to be a true value. The example above would then look like
=head1 COLOUR
If you prefer to use colour as a means of finding tricky whitespace
-characters then you can set the TESTTESTCOLOUR environment variable to a
+characters then you can set the C<TESTTESTCOLOUR> environment variable to a
comma separated pair of colours, the first for the foreground, the second
for the background. For example "white,red" will print white text on a red
background. This requires the Term::ANSIColor module. You can specify any
colour that would be acceptable to the Term::ANSIColor::color function.
-If you spell colour differently, that's no problem. The TESTTESTERCOLOR
+If you spell colour differently, that's no problem. The C<TESTTESTERCOLOR>
variable also works (if both are set then the British spelling wins out).
=head1 EXPORTED FUNCTIONS
diff --git a/Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm b/Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm
index 00e12e6458e..d8eb170b6c5 100644
--- a/Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Tester/Capture.pm
@@ -2,6 +2,9 @@ use strict;
package Test::Tester::Capture;
+our $VERSION = '1.302073';
+
+
use Test::Builder;
use vars qw( @ISA );
@@ -42,6 +45,8 @@ sub new
sub ok {
my($self, $test, $name) = @_;
+ my $ctx = $self->ctx;
+
# $test might contain an object which we don't want to accidentally
# store, so we turn it into a boolean.
$test = $test ? 1 : 0;
@@ -51,7 +56,7 @@ sub ok {
my($pack, $file, $line) = $self->caller;
- my $todo = $self->todo($pack);
+ my $todo = $self->todo();
my $result = {};
share($result);
@@ -92,6 +97,8 @@ sub ok {
$result->{_level} = $Test::Builder::Level;
$result->{_depth} = Test::Tester::find_run_tests();
+ $ctx->release;
+
return $test ? 1 : 0;
}
@@ -99,6 +106,8 @@ sub skip {
my($self, $why) = @_;
$why ||= '';
+ my $ctx = $self->ctx;
+
lock($Curr_Test);
$Curr_Test++;
@@ -116,6 +125,7 @@ sub skip {
);
$Test_Results[$Curr_Test-1] = \%result;
+ $ctx->release;
return 1;
}
@@ -123,6 +133,8 @@ sub todo_skip {
my($self, $why) = @_;
$why ||= '';
+ my $ctx = $self->ctx;
+
lock($Curr_Test);
$Curr_Test++;
@@ -141,6 +153,7 @@ sub todo_skip {
$Test_Results[$Curr_Test-1] = \%result;
+ $ctx->release;
return 1;
}
@@ -151,6 +164,8 @@ sub diag {
# Prevent printing headers when compiling (i.e. -c)
return if $^C;
+ my $ctx = $self->ctx;
+
# Escape each line with a #.
foreach (@msgs) {
$_ = 'undef' unless defined;
@@ -162,6 +177,7 @@ sub diag {
$result->{diag} .= join("", @msgs);
+ $ctx->release;
return 0;
}
diff --git a/Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm b/Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm
index f14a4c145aa..bed18e8c483 100644
--- a/Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Tester/CaptureRunner.pm
@@ -3,6 +3,9 @@ use strict;
package Test::Tester::CaptureRunner;
+our $VERSION = '1.302073';
+
+
use Test::Tester::Capture;
require Exporter;
diff --git a/Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm b/Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm
index 7ddb921cdfc..ed627db442a 100644
--- a/Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm
+++ b/Master/tlpkg/tlperl/lib/Test/Tester/Delegate.pm
@@ -3,6 +3,10 @@ use warnings;
package Test::Tester::Delegate;
+our $VERSION = '1.302073';
+
+use Scalar::Util();
+
use vars '$AUTOLOAD';
sub new
@@ -29,4 +33,13 @@ sub AUTOLOAD
goto &$ref;
}
+sub can {
+ my $this = shift;
+ my ($sub) = @_;
+
+ return $this->{Object}->can($sub) if Scalar::Util::blessed($this);
+
+ return $this->SUPER::can(@_);
+}
+
1;
diff --git a/Master/tlpkg/tlperl/lib/Test/use/ok.pm b/Master/tlpkg/tlperl/lib/Test/use/ok.pm
index 87d7cc52a55..fdc7326b3de 100644
--- a/Master/tlpkg/tlperl/lib/Test/use/ok.pm
+++ b/Master/tlpkg/tlperl/lib/Test/use/ok.pm
@@ -1,6 +1,8 @@
package Test::use::ok;
use 5.005;
-$Test::use::ok::VERSION = '0.16';
+
+our $VERSION = '1.302073';
+
__END__
diff --git a/Master/tlpkg/tlperl/lib/Test2.pm b/Master/tlpkg/tlperl/lib/Test2.pm
new file mode 100755
index 00000000000..1b65b334b5b
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2.pm
@@ -0,0 +1,213 @@
+package Test2;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2 - Framework for writing test tools that all work together.
+
+=head1 DESCRIPTION
+
+Test2 is a new testing framework produced by forking L<Test::Builder>,
+completely refactoring it, adding many new features and capabilities.
+
+=head2 WHAT IS NEW?
+
+=over 4
+
+=item Easier to test new testing tools.
+
+From the beginning Test2 was built with introspection capabilities. With
+Test::Builder it was difficult at best to capture test tool output for
+verification. Test2 Makes it easy with C<Test2::API::intercept()>.
+
+=item Better diagnostics capabilities.
+
+Test2 uses an L<Test2::API::Context> object to track filename, line number, and
+tool details. This object greatly simplifies tracking for where errors should
+be reported.
+
+=item Event driven.
+
+Test2 based tools produce events which get passed through a processing system
+before being output by a formatter. This event system allows for rich plugin
+and extension support.
+
+=item More complete API.
+
+Test::Builder only provided a handful of methods for generating lines of TAP.
+Test2 took inventory of everything people were doing with Test::Builder that
+required hacking it up. Test2 made public API functions for nearly all the
+desired functionality people didn't previously have.
+
+=item Support for output other than TAP.
+
+Test::Builder assumed everything would end up as TAP. Test2 makes no such
+assumption. Test2 provides ways for you to specify alternative and custom
+formatters.
+
+=item Subtest implementation is more sane.
+
+The Test::Builder implementation of subtests was certifiably insane. Test2 uses
+a stacked event hub system that greatly improves how subtests are implemented.
+
+=item Support for threading/forking.
+
+Test2 support for forking and threading can be turned on using L<Test2::IPC>.
+Once turned on threading and forking operate sanely and work as one would
+expect.
+
+=back
+
+=head1 GETTING STARTED
+
+If you are interested in writing tests using new tools then you should look at
+L<Test2::Suite>. L<Test2::Suite> is a separate cpan distribution that contains
+many tools implemented on Test2.
+
+If you are interested in writing new tools you should take a look at
+L<Test2::API> first.
+
+=head1 NAMESPACE LAYOUT
+
+This describes the namespace layout for the Test2 ecosystem. Not all the
+namespaces listed here are part of the Test2 distribution, some are implemented
+in L<Test2::Suite>.
+
+=head2 Test2::Tools::
+
+This namespace is for sets of tools. Modules in this namespace should export
+tools like C<ok()> and C<is()>. Most things written for Test2 should go here.
+Modules in this namespace B<MUST NOT> export subs from other tools. See the
+L</Test2::Bundle::> namespace if you want to do that.
+
+=head2 Test2::Plugin::
+
+This namespace is for plugins. Plugins are modules that change or enhance the
+behavior of Test2. An example of a plugin is a module that sets the encoding to
+utf8 globally. Another example is a module that causes a bail-out event after
+the first test failure.
+
+=head2 Test2::Bundle::
+
+This namespace is for bundles of tools and plugins. Loading one of these may
+load multiple tools and plugins. Modules in this namespace should not implement
+tools directly. In general modules in this namespace should load tools and
+plugins, then re-export things into the consumers namespace.
+
+=head2 Test2::Require::
+
+This namespace is for modules that cause a test to be skipped when conditions
+do not allow it to run. Examples would be modules that skip the test on older
+perls, or when non-essential modules have not been installed.
+
+=head2 Test2::Formatter::
+
+Formatters live under this namespace. L<Test2::Formatter::TAP> is the only
+formatter currently. It is acceptable for third party distributions to create
+new formatters under this namespace.
+
+=head2 Test2::Event::
+
+Events live under this namespace. It is considered acceptable for third party
+distributions to add new event types in this namespace.
+
+=head2 Test2::Hub::
+
+Hub subclasses (and some hub utility objects) live under this namespace. It is
+perfectly reasonable for third party distributions to add new hub subclasses in
+this namespace.
+
+=head2 Test2::IPC::
+
+The IPC subsystem lives in this namespace. There are not many good reasons to
+add anything to this namespace, with exception of IPC drivers.
+
+=head3 Test2::IPC::Driver::
+
+IPC drivers live in this namespace. It is fine to create new IPC drivers and to
+put them in this namespace.
+
+=head2 Test2::Util::
+
+This namespace is for general utilities used by testing tools. Please be
+considerate when adding new modules to this namespace.
+
+=head2 Test2::API::
+
+This is for Test2 API and related packages.
+
+=head2 Test2::
+
+The Test2:: namespace is intended for extensions and frameworks. Tools,
+Plugins, etc should not go directly into this namespace. However extensions
+that are used to build tools and plugins may go here.
+
+In short: If the module exports anything that should be run directly by a test
+script it should probably NOT go directly into C<Test2::XXX>.
+
+=head1 SEE ALSO
+
+L<Test2::API> - Primary API functions.
+
+L<Test2::API::Context> - Detailed documentation of the context object.
+
+L<Test2::IPC> - The IPC system used for threading/fork support.
+
+L<Test2::Formatter> - Formatters such as TAP live here.
+
+L<Test2::Event> - Events live in this namespace.
+
+L<Test2::Hub> - All events eventually funnel through a hub. Custom hubs are how
+C<intercept()> and C<run_subtest()> are implemented.
+
+=head1 CONTACTING US
+
+Many Test2 developers and users lurk on L<irc://irc.perl.org/#perl-qa> and
+L<irc://irc.perl.org/#toolchain>. We also have a slack team that can be joined
+by anyone with an C<@cpan.org> email address L<https://perl-test2.slack.com/>
+If you do not have an C<@cpan.org> email you can ask for a slack invite by
+emailing Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/API.pm b/Master/tlpkg/tlperl/lib/Test2/API.pm
new file mode 100755
index 00000000000..41cd0af209e
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/API.pm
@@ -0,0 +1,1310 @@
+package Test2::API;
+use strict;
+use warnings;
+
+BEGIN {
+ $ENV{TEST_ACTIVE} ||= 1;
+ $ENV{TEST2_ACTIVE} = 1;
+}
+
+our $VERSION = '1.302073';
+
+
+my $INST;
+my $ENDING = 0;
+sub test2_set_is_end { ($ENDING) = @_ ? @_ : (1) }
+sub test2_get_is_end { $ENDING }
+
+use Test2::API::Instance(\$INST);
+# Set the exit status
+END {
+ test2_set_is_end(); # See gh #16
+ $INST->set_exit();
+}
+
+# See gh #16
+{
+ no warnings;
+ INIT { eval 'END { test2_set_is_end() }; 1' or die $@ }
+}
+
+BEGIN {
+ no warnings 'once';
+ if($] ge '5.014' || $ENV{T2_CHECK_DEPTH} || $Test2::API::DO_DEPTH_CHECK) {
+ *DO_DEPTH_CHECK = sub() { 1 };
+ }
+ else {
+ *DO_DEPTH_CHECK = sub() { 0 };
+ }
+}
+
+use Test2::Util::Trace();
+
+use Test2::Hub::Subtest();
+use Test2::Hub::Interceptor();
+use Test2::Hub::Interceptor::Terminator();
+
+use Test2::Event::Ok();
+use Test2::Event::Diag();
+use Test2::Event::Note();
+use Test2::Event::Plan();
+use Test2::Event::Bail();
+use Test2::Event::Exception();
+use Test2::Event::Waiting();
+use Test2::Event::Skip();
+use Test2::Event::Subtest();
+
+use Carp qw/carp croak confess longmess/;
+use Scalar::Util qw/blessed weaken/;
+use Test2::Util qw/get_tid/;
+
+our @EXPORT_OK = qw{
+ context release
+ context_do
+ no_context
+ intercept
+ run_subtest
+
+ test2_init_done
+ test2_load_done
+
+ test2_set_is_end
+ test2_get_is_end
+
+ test2_pid
+ test2_tid
+ test2_stack
+ test2_no_wait
+
+ test2_add_callback_context_aquire
+ test2_add_callback_context_acquire
+ test2_add_callback_context_init
+ test2_add_callback_context_release
+ test2_add_callback_exit
+ test2_add_callback_post_load
+ test2_list_context_aquire_callbacks
+ test2_list_context_acquire_callbacks
+ test2_list_context_init_callbacks
+ test2_list_context_release_callbacks
+ test2_list_exit_callbacks
+ test2_list_post_load_callbacks
+
+ test2_ipc
+ test2_ipc_drivers
+ test2_ipc_add_driver
+ test2_ipc_polling
+ test2_ipc_disable_polling
+ test2_ipc_enable_polling
+ test2_ipc_get_pending
+ test2_ipc_set_pending
+ test2_ipc_enable_shm
+
+ test2_formatter
+ test2_formatters
+ test2_formatter_add
+ test2_formatter_set
+};
+BEGIN { require Exporter; our @ISA = qw(Exporter) }
+
+my $STACK = $INST->stack;
+my $CONTEXTS = $INST->contexts;
+my $INIT_CBS = $INST->context_init_callbacks;
+my $ACQUIRE_CBS = $INST->context_acquire_callbacks;
+
+sub test2_init_done { $INST->finalized }
+sub test2_load_done { $INST->loaded }
+
+sub test2_pid { $INST->pid }
+sub test2_tid { $INST->tid }
+sub test2_stack { $INST->stack }
+sub test2_no_wait {
+ $INST->set_no_wait(@_) if @_;
+ $INST->no_wait;
+}
+
+sub test2_add_callback_context_acquire { $INST->add_context_acquire_callback(@_) }
+sub test2_add_callback_context_aquire { $INST->add_context_acquire_callback(@_) }
+sub test2_add_callback_context_init { $INST->add_context_init_callback(@_) }
+sub test2_add_callback_context_release { $INST->add_context_release_callback(@_) }
+sub test2_add_callback_exit { $INST->add_exit_callback(@_) }
+sub test2_add_callback_post_load { $INST->add_post_load_callback(@_) }
+sub test2_list_context_aquire_callbacks { @{$INST->context_acquire_callbacks} }
+sub test2_list_context_acquire_callbacks { @{$INST->context_acquire_callbacks} }
+sub test2_list_context_init_callbacks { @{$INST->context_init_callbacks} }
+sub test2_list_context_release_callbacks { @{$INST->context_release_callbacks} }
+sub test2_list_exit_callbacks { @{$INST->exit_callbacks} }
+sub test2_list_post_load_callbacks { @{$INST->post_load_callbacks} }
+
+sub test2_ipc { $INST->ipc }
+sub test2_ipc_add_driver { $INST->add_ipc_driver(@_) }
+sub test2_ipc_drivers { @{$INST->ipc_drivers} }
+sub test2_ipc_polling { $INST->ipc_polling }
+sub test2_ipc_enable_polling { $INST->enable_ipc_polling }
+sub test2_ipc_disable_polling { $INST->disable_ipc_polling }
+sub test2_ipc_get_pending { $INST->get_ipc_pending }
+sub test2_ipc_set_pending { $INST->set_ipc_pending(@_) }
+sub test2_ipc_enable_shm { $INST->ipc_enable_shm }
+
+sub test2_formatter { $INST->formatter }
+sub test2_formatters { @{$INST->formatters} }
+sub test2_formatter_add { $INST->add_formatter(@_) }
+sub test2_formatter_set {
+ my ($formatter) = @_;
+ croak "No formatter specified" unless $formatter;
+ croak "Global Formatter already set" if $INST->formatter_set;
+ $INST->set_formatter($formatter);
+}
+
+# Private, for use in Test2::API::Context
+sub _contexts_ref { $INST->contexts }
+sub _context_acquire_callbacks_ref { $INST->context_acquire_callbacks }
+sub _context_init_callbacks_ref { $INST->context_init_callbacks }
+sub _context_release_callbacks_ref { $INST->context_release_callbacks }
+
+# Private, for use in Test2::IPC
+sub _set_ipc { $INST->set_ipc(@_) }
+
+sub context_do(&;@) {
+ my $code = shift;
+ my @args = @_;
+
+ my $ctx = context(level => 1);
+
+ my $want = wantarray;
+
+ my @out;
+ my $ok = eval {
+ $want ? @out = $code->($ctx, @args) :
+ defined($want) ? $out[0] = $code->($ctx, @args) :
+ $code->($ctx, @args) ;
+ 1;
+ };
+ my $err = $@;
+
+ $ctx->release;
+
+ die $err unless $ok;
+
+ return @out if $want;
+ return $out[0] if defined $want;
+ return;
+}
+
+sub no_context(&;$) {
+ my ($code, $hid) = @_;
+ $hid ||= $STACK->top->hid;
+
+ my $ctx = $CONTEXTS->{$hid};
+ delete $CONTEXTS->{$hid};
+ my $ok = eval { $code->(); 1 };
+ my $err = $@;
+
+ $CONTEXTS->{$hid} = $ctx;
+ weaken($CONTEXTS->{$hid});
+
+ die $err unless $ok;
+
+ return;
+};
+
+sub context {
+ # We need to grab these before anything else to ensure they are not
+ # changed.
+ my ($errno, $eval_error, $child_error) = (0 + $!, $@, $?);
+
+ my %params = (level => 0, wrapped => 0, @_);
+
+ # If something is getting a context then the sync system needs to be
+ # considered loaded...
+ $INST->load unless $INST->{loaded};
+
+ croak "context() called, but return value is ignored"
+ unless defined wantarray;
+
+ my $stack = $params{stack} || $STACK;
+ my $hub = $params{hub} || (@$stack ? $stack->[-1] : $stack->top);
+ my $hid = $hub->{hid};
+ my $current = $CONTEXTS->{$hid};
+
+ $_->(\%params) for @$ACQUIRE_CBS;
+ map $_->(\%params), @{$hub->{_context_acquire}} if $hub->{_context_acquire};
+
+ # This is for https://github.com/Test-More/test-more/issues/16
+ # and https://rt.perl.org/Public/Bug/Display.html?id=127774
+ my $phase = ${^GLOBAL_PHASE} || 'NA';
+ my $end_phase = $ENDING || $phase eq 'END' || $phase eq 'DESTRUCT';
+
+ my $level = 1 + $params{level};
+ my ($pkg, $file, $line, $sub) = $end_phase ? caller(0) : caller($level);
+ unless ($pkg || $end_phase) {
+ confess "Could not find context at depth $level" unless $params{fudge};
+ ($pkg, $file, $line, $sub) = caller(--$level) while ($level >= 0 && !$pkg);
+ }
+
+ my $depth = $level;
+ $depth++ while DO_DEPTH_CHECK && !$end_phase && (!$current || $depth <= $current->{_depth} + $params{wrapped}) && caller($depth + 1);
+ $depth -= $params{wrapped};
+ my $depth_ok = !DO_DEPTH_CHECK || $end_phase || !$current || $current->{_depth} < $depth;
+
+ if ($current && $params{on_release} && $depth_ok) {
+ $current->{_on_release} ||= [];
+ push @{$current->{_on_release}} => $params{on_release};
+ }
+
+ # I know this is ugly....
+ ($!, $@, $?) = ($errno, $eval_error, $child_error) and return bless(
+ {
+ %$current,
+ _is_canon => undef,
+ errno => $errno,
+ eval_error => $eval_error,
+ child_error => $child_error,
+ _is_spawn => [$pkg, $file, $line, $sub],
+ },
+ 'Test2::API::Context'
+ ) if $current && $depth_ok;
+
+ # Handle error condition of bad level
+ if ($current) {
+ unless (${$current->{_aborted}}) {
+ _canon_error($current, [$pkg, $file, $line, $sub, $depth])
+ unless $current->{_is_canon};
+
+ _depth_error($current, [$pkg, $file, $line, $sub, $depth])
+ unless $depth_ok;
+ }
+
+ $current->release if $current->{_is_canon};
+
+ delete $CONTEXTS->{$hid};
+ }
+
+ # Directly bless the object here, calling new is a noticeable performance
+ # hit with how often this needs to be called.
+ my $trace = bless(
+ {
+ frame => [$pkg, $file, $line, $sub],
+ pid => $$,
+ tid => get_tid(),
+ },
+ 'Test2::Util::Trace'
+ );
+
+ # Directly bless the object here, calling new is a noticeable performance
+ # hit with how often this needs to be called.
+ my $aborted = 0;
+ $current = bless(
+ {
+ _aborted => \$aborted,
+ stack => $stack,
+ hub => $hub,
+ trace => $trace,
+ _is_canon => 1,
+ _depth => $depth,
+ errno => $errno,
+ eval_error => $eval_error,
+ child_error => $child_error,
+ $params{on_release} ? (_on_release => [$params{on_release}]) : (),
+ },
+ 'Test2::API::Context'
+ );
+
+ $CONTEXTS->{$hid} = $current;
+ weaken($CONTEXTS->{$hid});
+
+ $_->($current) for @$INIT_CBS;
+ map $_->($current), @{$hub->{_context_init}} if $hub->{_context_init};
+
+ $params{on_init}->($current) if $params{on_init};
+
+ ($!, $@, $?) = ($errno, $eval_error, $child_error);
+
+ return $current;
+}
+
+sub _depth_error {
+ _existing_error(@_, <<" EOT");
+context() was called to retrieve an existing context, however the existing
+context was created in a stack frame at the same, or deeper level. This usually
+means that a tool failed to release the context when it was finished.
+ EOT
+}
+
+sub _canon_error {
+ _existing_error(@_, <<" EOT");
+context() was called to retrieve an existing context, however the existing
+context has an invalid internal state (!_canon_count). This should not normally
+happen unless something is mucking about with internals...
+ EOT
+}
+
+sub _existing_error {
+ my ($ctx, $details, $msg) = @_;
+ my ($pkg, $file, $line, $sub, $depth) = @$details;
+
+ my $oldframe = $ctx->{trace}->frame;
+ my $olddepth = $ctx->{_depth};
+
+ my $mess = longmess();
+
+ warn <<" EOT";
+$msg
+Old context details:
+ File: $oldframe->[1]
+ Line: $oldframe->[2]
+ Tool: $oldframe->[3]
+ Depth: $olddepth
+
+New context details:
+ File: $file
+ Line: $line
+ Tool: $sub
+ Depth: $depth
+
+Trace: $mess
+
+Removing the old context and creating a new one...
+ EOT
+}
+
+sub release($;$) {
+ $_[0]->release;
+ return $_[1];
+}
+
+sub intercept(&) {
+ my $code = shift;
+
+ my $ctx = context();
+
+ my $ipc;
+ if (my $global_ipc = test2_ipc()) {
+ my $driver = blessed($global_ipc);
+ $ipc = $driver->new;
+ }
+
+ my $hub = Test2::Hub::Interceptor->new(
+ ipc => $ipc,
+ no_ending => 1,
+ );
+
+ my @events;
+ $hub->listen(sub { push @events => $_[1] });
+
+ $ctx->stack->top; # Make sure there is a top hub before we begin.
+ $ctx->stack->push($hub);
+
+ my ($ok, $err) = (1, undef);
+ T2_SUBTEST_WRAPPER: {
+ # Do not use 'try' cause it localizes __DIE__
+ $ok = eval { $code->(hub => $hub, context => $ctx->snapshot); 1 };
+ $err = $@;
+
+ # They might have done 'BEGIN { skip_all => "whatever" }'
+ if (!$ok && $err =~ m/Label not found for "last T2_SUBTEST_WRAPPER"/ || (blessed($err) && $err->isa('Test2::Hub::Interceptor::Terminator'))) {
+ $ok = 1;
+ $err = undef;
+ }
+ }
+
+ $hub->cull;
+ $ctx->stack->pop($hub);
+
+ my $trace = $ctx->trace;
+ $ctx->release;
+
+ die $err unless $ok;
+
+ $hub->finalize($trace, 1)
+ if $ok
+ && !$hub->no_ending
+ && !$hub->ended;
+
+ return \@events;
+}
+
+sub run_subtest {
+ my ($name, $code, $params, @args) = @_;
+
+ $params = {buffered => $params} unless ref $params;
+ my $buffered = delete $params->{buffered};
+ my $inherit_trace = delete $params->{inherit_trace};
+
+ my $ctx = context();
+
+ $ctx->note($name) unless $buffered;
+
+ my $parent = $ctx->hub;
+
+ my $stack = $ctx->stack || $STACK;
+ my $hub = $stack->new_hub(
+ class => 'Test2::Hub::Subtest',
+ %$params,
+ );
+
+ my @events;
+ $hub->set_nested( $parent->isa('Test2::Hub::Subtest') ? $parent->nested + 1 : 1 );
+ $hub->listen(sub { push @events => $_[1] });
+
+ if ($buffered) {
+ if (my $format = $hub->format) {
+ my $hide = $format->can('hide_buffered') ? $format->hide_buffered : 1;
+ $hub->format(undef) if $hide;
+ }
+ }
+ elsif (! $parent->format) {
+ # If our parent has no format that means we're in a buffered subtest
+ # and now we're trying to run a streaming subtest. There's really no
+ # way for that to work, so we need to force the use of a buffered
+ # subtest here as
+ # well. https://github.com/Test-More/test-more/issues/721
+ $buffered = 1;
+ }
+
+ if ($inherit_trace) {
+ my $orig = $code;
+ $code = sub {
+ my $st_ctx = Test2::API::Context->new(
+ trace => $ctx->trace,
+ hub => $hub,
+ );
+ $st_ctx->do_in_context($orig, @args);
+ };
+ }
+
+ my ($ok, $err, $finished);
+ T2_SUBTEST_WRAPPER: {
+ # Do not use 'try' cause it localizes __DIE__
+ $ok = eval { $code->(@args); 1 };
+ $err = $@;
+
+ # They might have done 'BEGIN { skip_all => "whatever" }'
+ if (!$ok && $err =~ m/Label not found for "last T2_SUBTEST_WRAPPER"/ || (blessed($err) && blessed($err) eq 'Test::Builder::Exception')) {
+ $ok = undef;
+ $err = undef;
+ }
+ else {
+ $finished = 1;
+ }
+ }
+ $stack->pop($hub);
+
+ my $trace = $ctx->trace;
+
+ if (!$finished) {
+ if(my $bailed = $hub->bailed_out) {
+ $ctx->bail($bailed->reason);
+ }
+ my $code = $hub->exit_code;
+ $ok = !$code;
+ $err = "Subtest ended with exit code $code" if $code;
+ }
+
+ $hub->finalize($trace, 1)
+ if $ok
+ && !$hub->no_ending
+ && !$hub->ended;
+
+ my $pass = $ok && $hub->is_passing;
+ my $e = $ctx->build_event(
+ 'Subtest',
+ pass => $pass,
+ name => $name,
+ subtest_id => $hub->id,
+ buffered => $buffered,
+ subevents => \@events,
+ );
+
+ my $plan_ok = $hub->check_plan;
+
+ $ctx->hub->send($e);
+
+ $ctx->failure_diag($e) unless $e->pass;
+
+ $ctx->diag("Caught exception in subtest: $err") unless $ok;
+
+ $ctx->diag("Bad subtest plan, expected " . $hub->plan . " but ran " . $hub->count)
+ if defined($plan_ok) && !$plan_ok;
+
+ $ctx->release;
+ return $pass;
+}
+
+# There is a use-cycle between API and API/Context. Context needs to use some
+# API functions as the package is compiling. Test2::API::context() needs
+# Test2::API::Context to be loaded, but we cannot 'require' the module there as
+# it causes a very noticeable performance impact with how often context() is
+# called.
+require Test2::API::Context;
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::API - Primary interface for writing Test2 based testing tools.
+
+=head1 ***INTERNALS NOTE***
+
+B<The internals of this package are subject to change at any time!> The public
+methods provided will not change in backwards-incompatible ways (once there is
+a stable release), but the underlying implementation details might.
+B<Do not break encapsulation here!>
+
+Currently the implementation is to create a single instance of the
+L<Test2::API::Instance> Object. All class methods defer to the single
+instance. There is no public access to the singleton, and that is intentional.
+The class methods provided by this package provide the only functionality
+publicly exposed.
+
+This is done primarily to avoid the problems Test::Builder had by exposing its
+singleton. We do not want anyone to replace this singleton, rebless it, or
+directly muck with its internals. If you need to do something and cannot
+because of the restrictions placed here, then please report it as an issue. If
+possible, we will create a way for you to implement your functionality without
+exposing things that should not be exposed.
+
+=head1 DESCRIPTION
+
+This package exports all the functions necessary to write and/or verify testing
+tools. Using these building blocks you can begin writing test tools very
+quickly. You are also provided with tools that help you to test the tools you
+write.
+
+=head1 SYNOPSIS
+
+=head2 WRITING A TOOL
+
+The C<context()> method is your primary interface into the Test2 framework.
+
+ package My::Ok;
+ use Test2::API qw/context/;
+
+ our @EXPORT = qw/my_ok/;
+ use base 'Exporter';
+
+ # Just like ok() from Test::More
+ sub my_ok($;$) {
+ my ($bool, $name) = @_;
+ my $ctx = context(); # Get a context
+ $ctx->ok($bool, $name);
+ $ctx->release; # Release the context
+ return $bool;
+ }
+
+See L<Test2::API::Context> for a list of methods available on the context object.
+
+=head2 TESTING YOUR TOOLS
+
+The C<intercept { ... }> tool lets you temporarily intercept all events
+generated by the test system:
+
+ use Test2::API qw/intercept/;
+
+ use My::Ok qw/my_ok/;
+
+ my $events = intercept {
+ # These events are not displayed
+ my_ok(1, "pass");
+ my_ok(0, "fail");
+ };
+
+ my_ok(@$events == 2, "got 2 events, the pass and the fail");
+ my_ok($events->[0]->pass, "first event passed");
+ my_ok(!$events->[1]->pass, "second event failed");
+
+=head2 OTHER API FUNCTIONS
+
+ use Test2::API qw{
+ test2_init_done
+ test2_stack
+ test2_set_is_end
+ test2_get_is_end
+ test2_ipc
+ test2_formatter_set
+ test2_formatter
+ };
+
+ my $init = test2_init_done();
+ my $stack = test2_stack();
+ my $ipc = test2_ipc();
+
+ test2_formatter_set($FORMATTER)
+ my $formatter = test2_formatter();
+
+ ... And others ...
+
+=head1 MAIN API EXPORTS
+
+All exports are optional. You must specify subs to import.
+
+ use Test2::API qw/context intercept run_subtest/;
+
+This is the list of exports that are most commonly needed. If you are simply
+writing a tool, then this is probably all you need. If you need something and
+you cannot find it here, then you can also look at L</OTHER API EXPORTS>.
+
+These exports lack the 'test2_' prefix because of how important/common they
+are. Exports in the L</OTHER API EXPORTS> section have the 'test2_' prefix to
+ensure they stand out.
+
+=head2 context(...)
+
+Usage:
+
+=over 4
+
+=item $ctx = context()
+
+=item $ctx = context(%params)
+
+=back
+
+The C<context()> function will always return the current context. If
+there is already a context active, it will be returned. If there is not an
+active context, one will be generated. When a context is generated it will
+default to using the file and line number where the currently running sub was
+called from.
+
+Please see L<Test2::API::Context/"CRITICAL DETAILS"> for important rules about
+what you can and cannot do with a context once it is obtained.
+
+B<Note> This function will throw an exception if you ignore the context object
+it returns.
+
+B<Note> On perls 5.14+ a depth check is used to insure there are no context
+leaks. This cannot be safely done on older perls due to
+L<https://rt.perl.org/Public/Bug/Display.html?id=127774>
+You can forcefully enable it either by setting C<$ENV{T2_CHECK_DEPTH} = 1> or
+C<$Test2::API::DO_DEPTH_CHECK = 1> B<BEFORE> loading L<Test2::API>.
+
+=head3 OPTIONAL PARAMETERS
+
+All parameters to C<context> are optional.
+
+=over 4
+
+=item level => $int
+
+If you must obtain a context in a sub deeper than your entry point you can use
+this to tell it how many EXTRA stack frames to look back. If this option is not
+provided the default of C<0> is used.
+
+ sub third_party_tool {
+ my $sub = shift;
+ ... # Does not obtain a context
+ $sub->();
+ ...
+ }
+
+ third_party_tool(sub {
+ my $ctx = context(level => 1);
+ ...
+ $ctx->release;
+ });
+
+=item wrapped => $int
+
+Use this if you need to write your own tool that wraps a call to C<context()>
+with the intent that it should return a context object.
+
+ sub my_context {
+ my %params = ( wrapped => 0, @_ );
+ $params{wrapped}++;
+ my $ctx = context(%params);
+ ...
+ return $ctx;
+ }
+
+ sub my_tool {
+ my $ctx = my_context();
+ ...
+ $ctx->release;
+ }
+
+If you do not do this, then tools you call that also check for a context will
+notice that the context they grabbed was created at the same stack depth, which
+will trigger protective measures that warn you and destroy the existing
+context.
+
+=item stack => $stack
+
+Normally C<context()> looks at the global hub stack. If you are maintaining
+your own L<Test2::API::Stack> instance you may pass it in to be used
+instead of the global one.
+
+=item hub => $hub
+
+Use this parameter if you want to obtain the context for a specific hub instead
+of whatever one happens to be at the top of the stack.
+
+=item on_init => sub { ... }
+
+This lets you provide a callback sub that will be called B<ONLY> if your call
+to C<context()> generated a new context. The callback B<WILL NOT> be called if
+C<context()> is returning an existing context. The only argument passed into
+the callback will be the context object itself.
+
+ sub foo {
+ my $ctx = context(on_init => sub { 'will run' });
+
+ my $inner = sub {
+ # This callback is not run since we are getting the existing
+ # context from our parent sub.
+ my $ctx = context(on_init => sub { 'will NOT run' });
+ $ctx->release;
+ }
+ $inner->();
+
+ $ctx->release;
+ }
+
+=item on_release => sub { ... }
+
+This lets you provide a callback sub that will be called when the context
+instance is released. This callback will be added to the returned context even
+if an existing context is returned. If multiple calls to context add callbacks,
+then all will be called in reverse order when the context is finally released.
+
+ sub foo {
+ my $ctx = context(on_release => sub { 'will run second' });
+
+ my $inner = sub {
+ my $ctx = context(on_release => sub { 'will run first' });
+
+ # Neither callback runs on this release
+ $ctx->release;
+ }
+ $inner->();
+
+ # Both callbacks run here.
+ $ctx->release;
+ }
+
+=back
+
+=head2 release($;$)
+
+Usage:
+
+=over 4
+
+=item release $ctx;
+
+=item release $ctx, ...;
+
+=back
+
+This is intended as a shortcut that lets you release your context and return a
+value in one statement. This function will get your context, and an optional
+return value. It will release your context, then return your value. Scalar
+context is always assumed.
+
+ sub tool {
+ my $ctx = context();
+ ...
+
+ return release $ctx, 1;
+ }
+
+This tool is most useful when you want to return the value you get from calling
+a function that needs to see the current context:
+
+ my $ctx = context();
+ my $out = some_tool(...);
+ $ctx->release;
+ return $out;
+
+We can combine the last 3 lines of the above like so:
+
+ my $ctx = context();
+ release $ctx, some_tool(...);
+
+=head2 context_do(&;@)
+
+Usage:
+
+ sub my_tool {
+ context_do {
+ my $ctx = shift;
+
+ my (@args) = @_;
+
+ $ctx->ok(1, "pass");
+
+ ...
+
+ # No need to call $ctx->release, done for you on scope exit.
+ } @_;
+ }
+
+Using this inside your test tool takes care of a lot of boilerplate for you. It
+will ensure a context is acquired. It will capture and rethrow any exception. It
+will insure the context is released when you are done. It preserves the
+subroutine call context (array, scalar, void).
+
+This is the safest way to write a test tool. The only two downsides to this are a
+slight performance decrease, and some extra indentation in your source. If the
+indentation is a problem for you then you can take a peek at the next section.
+
+=head2 no_context(&;$)
+
+Usage:
+
+=over 4
+
+=item no_context { ... };
+
+=item no_context { ... } $hid;
+
+ sub my_tool(&) {
+ my $code = shift;
+ my $ctx = context();
+ ...
+
+ no_context {
+ # Things in here will not see our current context, they get a new
+ # one.
+
+ $code->();
+ };
+
+ ...
+ $ctx->release;
+ };
+
+=back
+
+This tool will hide a context for the provided block of code. This means any
+tools run inside the block will get a completely new context if they acquire
+one. The new context will be inherited by tools nested below the one that
+acquired it.
+
+This will normally hide the current context for the top hub. If you need to
+hide the context for a different hub you can pass in the optional C<$hid>
+parameter.
+
+=head2 intercept(&)
+
+Usage:
+
+ my $events = intercept {
+ ok(1, "pass");
+ ok(0, "fail");
+ ...
+ };
+
+This function takes a codeblock as its only argument, and it has a prototype.
+It will execute the codeblock, intercepting any generated events in the
+process. It will return an array reference with all the generated event
+objects. All events should be subclasses of L<Test2::Event>.
+
+This is a very low-level subtest tool. This is useful for writing tools which
+produce subtests. This is not intended for people simply writing tests.
+
+=head2 run_subtest(...)
+
+Usage:
+
+ run_subtest($NAME, \&CODE, $BUFFERED, @ARGS)
+
+ # or
+
+ run_subtest($NAME, \&CODE, \%PARAMS, @ARGS)
+
+This will run the provided codeblock with the args in C<@args>. This codeblock
+will be run as a subtest. A subtest is an isolated test state that is condensed
+into a single L<Test2::Event::Subtest> event, which contains all events
+generated inside the subtest.
+
+=head3 ARGUMENTS:
+
+=over 4
+
+=item $NAME
+
+The name of the subtest.
+
+=item \&CODE
+
+The code to run inside the subtest.
+
+=item $BUFFERED or \%PARAMS
+
+If this is a simple scalar then it will be treated as a boolean for the
+'buffered' setting. If this is a hash reference then it will be used as a
+parameters hash. The param hash will be used for hub construction (with the
+specified keys removed).
+
+Keys that are removed and used by run_subtest:
+
+=over 4
+
+=item 'buffered' => $bool
+
+Toggle buffered status.
+
+=item 'inherit_trace' => $bool
+
+Normally the subtest hub is pushed and the sub is allowed to generate its own
+root context for the hub. When this setting is turned on a root context will be
+created for the hub that shares the same trace as the current context.
+
+Set this to true if your tool is producing subtests without user-specified
+subs.
+
+=back
+
+=item @ARGS
+
+Any extra arguments you want passed into the subtest code.
+
+=back
+
+=head3 BUFFERED VS UNBUFFERED (OR STREAMED)
+
+Normally all events inside and outside a subtest are sent to the formatter
+immediately by the hub. Sometimes it is desirable to hold off sending events
+within a subtest until the subtest is complete. This usually depends on the
+formatter being used.
+
+=over 4
+
+=item Things not effected by this flag
+
+In both cases events are generated and stored in an array. This array is
+eventually used to populate the C<subevents> attribute on the
+L<Test2::Event::Subtest> event that is generated at the end of the subtest.
+This flag has no effect on this part, it always happens.
+
+At the end of the subtest, the final L<Test2::Event::Subtest> event is sent to
+the formatter.
+
+=item Things that are effected by this flag
+
+The C<buffered> attribute of the L<Test2::Event::Subtest> event will be set to
+the value of this flag. This means any formatter, listener, etc which looks at
+the event will know if it was buffered.
+
+=item Things that are formatter dependant
+
+Events within a buffered subtest may or may not be sent to the formatter as
+they happen. If a formatter fails to specify then the default is to B<NOT SEND>
+the events as they are generated, instead the formatter can pull them from the
+C<subevents> attribute.
+
+A formatter can specify by implementing the C<hide_buffered()> method. If this
+method returns true then events generated inside a buffered subtest will not be
+sent independently of the final subtest event.
+
+=back
+
+An example of how this is used is the L<Test2::Formatter::TAP> formatter. For
+unbuffered subtests the events are rendered as they are generated. At the end
+of the subtest, the final subtest event is rendered, but the C<subevents>
+attribute is ignored. For buffered subtests the opposite occurs, the events are
+NOT rendered as they are generated, instead the C<subevents> attribute is used
+to render them all at once. This is useful when running subtests tests in
+parallel, since without it the output from subtests would be interleaved
+together.
+
+=head1 OTHER API EXPORTS
+
+Exports in this section are not commonly needed. These all have the 'test2_'
+prefix to help ensure they stand out. You should look at the L</MAIN API
+EXPORTS> section before looking here. This section is one where "Great power
+comes with great responsibility". It is possible to break things badly if you
+are not careful with these.
+
+All exports are optional. You need to list which ones you want at import time:
+
+ use Test2::API qw/test2_init_done .../;
+
+=head2 STATUS AND INITIALIZATION STATE
+
+These provide access to internal state and object instances.
+
+=over 4
+
+=item $bool = test2_init_done()
+
+This will return true if the stack and IPC instances have already been
+initialized. It will return false if they have not. Init happens as late as
+possible. It happens as soon as a tool requests the IPC instance, the
+formatter, or the stack.
+
+=item $bool = test2_load_done()
+
+This will simply return the boolean value of the loaded flag. If Test2 has
+finished loading this will be true, otherwise false. Loading is considered
+complete the first time a tool requests a context.
+
+=item test2_set_is_end()
+
+=item test2_set_is_end($bool)
+
+This is used to toggle Test2's belief that the END phase has already started.
+With no arguments this will set it to true. With arguments it will set it to
+the first argument's value.
+
+This is used to prevent the use of C<caller()> in END blocks which can cause
+segfaults. This is only necessary in some persistent environments that may have
+multiple END phases.
+
+=item $bool = test2_get_is_end()
+
+Check if Test2 believes it is the END phase.
+
+=item $stack = test2_stack()
+
+This will return the global L<Test2::API::Stack> instance. If this has not
+yet been initialized it will be initialized now.
+
+=item $bool = test2_no_wait()
+
+=item test2_no_wait($bool)
+
+This can be used to get/set the no_wait status. Waiting is turned on by
+default. Waiting will cause the parent process/thread to wait until all child
+processes and threads are finished before exiting. You will almost never want
+to turn this off.
+
+=back
+
+=head2 BEHAVIOR HOOKS
+
+These are hooks that allow you to add custom behavior to actions taken by Test2
+and tools built on top of it.
+
+=over 4
+
+=item test2_add_callback_exit(sub { ... })
+
+This can be used to add a callback that is called after all testing is done. This
+is too late to add additional results, the main use of this callback is to set the
+exit code.
+
+ test2_add_callback_exit(
+ sub {
+ my ($context, $exit, \$new_exit) = @_;
+ ...
+ }
+ );
+
+The C<$context> passed in will be an instance of L<Test2::API::Context>. The
+C<$exit> argument will be the original exit code before anything modified it.
+C<$$new_exit> is a reference to the new exit code. You may modify this to
+change the exit code. Please note that C<$$new_exit> may already be different
+from C<$exit>
+
+=item test2_add_callback_post_load(sub { ... })
+
+Add a callback that will be called when Test2 is finished loading. This
+means the callback will be run once, the first time a context is obtained.
+If Test2 has already finished loading then the callback will be run immediately.
+
+=item test2_add_callback_context_acquire(sub { ... })
+
+Add a callback that will be called every time someone tries to acquire a
+context. This will be called on EVERY call to C<context()>. It gets a single
+argument, a reference to the hash of parameters being used the construct the
+context. This is your chance to change the parameters by directly altering the
+hash.
+
+ test2_add_callback_context_acquire(sub {
+ my $params = shift;
+ $params->{level}++;
+ });
+
+This is a very scary API function. Please do not use this unless you need to.
+This is here for L<Test::Builder> and backwards compatibility. This has you
+directly manipulate the hash instead of returning a new one for performance
+reasons.
+
+=item test2_add_callback_context_init(sub { ... })
+
+Add a callback that will be called every time a new context is created. The
+callback will receive the newly created context as its only argument.
+
+=item test2_add_callback_context_release(sub { ... })
+
+Add a callback that will be called every time a context is released. The
+callback will receive the released context as its only argument.
+
+=item @list = test2_list_context_acquire_callbacks()
+
+Return all the context acquire callback references.
+
+=item @list = test2_list_context_init_callbacks()
+
+Returns all the context init callback references.
+
+=item @list = test2_list_context_release_callbacks()
+
+Returns all the context release callback references.
+
+=item @list = test2_list_exit_callbacks()
+
+Returns all the exit callback references.
+
+=item @list = test2_list_post_load_callbacks()
+
+Returns all the post load callback references.
+
+=back
+
+=head2 IPC AND CONCURRENCY
+
+These let you access, or specify, the IPC system internals.
+
+=over 4
+
+=item $ipc = test2_ipc()
+
+This will return the global L<Test2::IPC::Driver> instance. If this has not yet
+been initialized it will be initialized now.
+
+=item test2_ipc_add_driver($DRIVER)
+
+Add an IPC driver to the list. This will add the driver to the start of the
+list.
+
+=item @drivers = test2_ipc_drivers()
+
+Get the list of IPC drivers.
+
+=item $bool = test2_ipc_polling()
+
+Check if polling is enabled.
+
+=item test2_ipc_enable_polling()
+
+Turn on polling. This will cull events from other processes and threads every
+time a context is created.
+
+=item test2_ipc_disable_polling()
+
+Turn off IPC polling.
+
+=item test2_ipc_enable_shm()
+
+Turn on IPC SHM. Only some IPC drivers use this, and most will turn it on
+themselves.
+
+=item test2_ipc_set_pending($uniq_val)
+
+Tell other processes and events that an event is pending. C<$uniq_val> should
+be a unique value no other thread/process will generate.
+
+B<Note:> After calling this C<test2_ipc_get_pending()> will return 1. This is
+intentional, and not avoidable.
+
+=item $pending = test2_ipc_get_pending()
+
+This returns -1 if there is no way to check (assume yes)
+
+This returns 0 if there are (most likely) no pending events.
+
+This returns 1 if there are (likely) pending events. Upon return it will reset,
+nothing else will be able to see that there were pending events.
+
+=back
+
+=head2 MANAGING FORMATTERS
+
+These let you access, or specify, the formatters that can/should be used.
+
+=over 4
+
+=item $formatter = test2_formatter
+
+This will return the global formatter class. This is not an instance. By
+default the formatter is set to L<Test2::Formatter::TAP>.
+
+You can override this default using the C<T2_FORMATTER> environment variable.
+
+Normally 'Test2::Formatter::' is prefixed to the value in the
+environment variable:
+
+ $ T2_FORMATTER='TAP' perl test.t # Use the Test2::Formatter::TAP formatter
+ $ T2_FORMATTER='Foo' perl test.t # Use the Test2::Formatter::Foo formatter
+
+If you want to specify a full module name you use the '+' prefix:
+
+ $ T2_FORMATTER='+Foo::Bar' perl test.t # Use the Foo::Bar formatter
+
+=item test2_formatter_set($class_or_instance)
+
+Set the global formatter class. This can only be set once. B<Note:> This will
+override anything specified in the 'T2_FORMATTER' environment variable.
+
+=item @formatters = test2_formatters()
+
+Get a list of all loaded formatters.
+
+=item test2_formatter_add($class_or_instance)
+
+Add a formatter to the list. Last formatter added is used at initialization. If
+this is called after initialization a warning will be issued.
+
+=back
+
+=head1 OTHER EXAMPLES
+
+See the C</Examples/> directory included in this distribution.
+
+=head1 SEE ALSO
+
+L<Test2::API::Context> - Detailed documentation of the context object.
+
+L<Test2::IPC> - The IPC system used for threading/fork support.
+
+L<Test2::Formatter> - Formatters such as TAP live here.
+
+L<Test2::Event> - Events live in this namespace.
+
+L<Test2::Hub> - All events eventually funnel through a hub. Custom hubs are how
+C<intercept()> and C<run_subtest()> are implemented.
+
+=head1 MAGIC
+
+This package has an END block. This END block is responsible for setting the
+exit code based on the test results. This end block also calls the callbacks that
+can be added to this package.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/API/Breakage.pm b/Master/tlpkg/tlperl/lib/Test2/API/Breakage.pm
new file mode 100755
index 00000000000..b85e4d54c9f
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/API/Breakage.pm
@@ -0,0 +1,175 @@
+package Test2::API::Breakage;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Test2::Util qw/pkg_to_file/;
+
+our @EXPORT_OK = qw{
+ upgrade_suggested
+ upgrade_required
+ known_broken
+};
+BEGIN { require Exporter; our @ISA = qw(Exporter) }
+
+sub upgrade_suggested {
+ return (
+ 'Test::Exception' => '0.42',
+ 'Test::FITesque' => '0.04',
+ 'Test::Module::Used' => '0.2.5',
+ 'Test::Moose::More' => '0.025',
+ );
+}
+
+sub upgrade_required {
+ return (
+ 'Test::Builder::Clutch' => '0.07',
+ 'Test::Dist::VersionSync' => '1.1.4',
+ 'Test::Modern' => '0.012',
+ 'Test::SharedFork' => '0.34',
+ 'Test::Alien' => '0.04',
+ 'Test::UseAllModules' => '0.14',
+
+ 'Test::Clustericious::Cluster' => '0.30',
+ );
+}
+
+sub known_broken {
+ return (
+ 'Net::BitTorrent' => '0.052',
+ 'Test::Able' => '0.11',
+ 'Test::Aggregate' => '0.373',
+ 'Test::Flatten' => '0.11',
+ 'Test::Group' => '0.20',
+ 'Test::More::Prefix' => '0.005',
+ 'Test::ParallelSubtest' => '0.05',
+ 'Test::Pretty' => '0.32',
+ 'Test::Wrapper' => '0.3.0',
+
+ 'Test::DBIx::Class::Schema' => '1.0.9',
+ 'Log::Dispatch::Config::TestLog' => '0.02',
+ );
+}
+
+# Not reportable:
+# Device::Chip => 0.07 - Tests will not pass, but not broken if already installed, also no fixed version we can upgrade to.
+
+sub report {
+ my $class = shift;
+ my ($require) = @_;
+
+ my %suggest = __PACKAGE__->upgrade_suggested();
+ my %required = __PACKAGE__->upgrade_required();
+ my %broken = __PACKAGE__->known_broken();
+
+ my @warn;
+ for my $mod (keys %suggest) {
+ my $file = pkg_to_file($mod);
+ next unless $INC{$file} || ($require && eval { require $file; 1 });
+ my $want = $suggest{$mod};
+ next if eval { $mod->VERSION($want); 1 };
+ push @warn => " * Module '$mod' is outdated, we recommed updating above $want.";
+ }
+
+ for my $mod (keys %required) {
+ my $file = pkg_to_file($mod);
+ next unless $INC{$file} || ($require && eval { require $file; 1 });
+ my $want = $required{$mod};
+ next if eval { $mod->VERSION($want); 1 };
+ push @warn => " * Module '$mod' is outdated and known to be broken, please update to $want or higher.";
+ }
+
+ for my $mod (keys %broken) {
+ my $file = pkg_to_file($mod);
+ next unless $INC{$file} || ($require && eval { require $file; 1 });
+ my $tested = $broken{$mod};
+ push @warn => " * Module '$mod' is known to be broken in version $tested and below, newer versions have not been tested. You have: " . $mod->VERSION;
+ }
+
+ return @warn;
+}
+
+1;
+
+__END__
+
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::API::Breakage - What breaks at what version
+
+=head1 DESCRIPTION
+
+This module provides lists of modules that are broken, or have been broken in
+the past, when upgrading L<Test::Builder> to use L<Test2>.
+
+=head1 FUNCTIONS
+
+These can be imported, or called as methods on the class.
+
+=over 4
+
+=item %mod_ver = upgrade_suggested()
+
+=item %mod_ver = Test2::API::Breakage->upgrade_suggested()
+
+This returns key/value pairs. The key is the module name, the value is the
+version number. If the installed version of the module is at or below the
+specified one then an upgrade would be a good idea, but not strictly necessary.
+
+=item %mod_ver = upgrade_required()
+
+=item %mod_ver = Test2::API::Breakage->upgrade_required()
+
+This returns key/value pairs. The key is the module name, the value is the
+version number. If the installed version of the module is at or below the
+specified one then an upgrade is required for the module to work properly.
+
+=item %mod_ver = known_broken()
+
+=item %mod_ver = Test2::API::Breakage->known_broken()
+
+This returns key/value pairs. The key is the module name, the value is the
+version number. If the installed version of the module is at or below the
+specified one then the module will not work. A newer version may work, but is
+not tested or verified.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/API/Context.pm b/Master/tlpkg/tlperl/lib/Test2/API/Context.pm
new file mode 100755
index 00000000000..7660fa69ea2
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/API/Context.pm
@@ -0,0 +1,739 @@
+package Test2::API::Context;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Carp qw/confess croak longmess/;
+use Scalar::Util qw/weaken blessed/;
+use Test2::Util qw/get_tid try pkg_to_file get_tid/;
+
+use Test2::Util::Trace();
+use Test2::API();
+
+# Preload some key event types
+my %LOADED = (
+ map {
+ my $pkg = "Test2::Event::$_";
+ my $file = "Test2/Event/$_.pm";
+ require $file unless $INC{$file};
+ ( $pkg => $pkg, $_ => $pkg )
+ } qw/Ok Diag Note Info Plan Bail Exception Waiting Skip Subtest/
+);
+
+use Test2::Util::ExternalMeta qw/meta get_meta set_meta delete_meta/;
+use Test2::Util::HashBase qw{
+ stack hub trace _on_release _depth _is_canon _is_spawn _aborted
+ errno eval_error child_error thrown
+};
+
+# Private, not package vars
+# It is safe to cache these.
+my $ON_RELEASE = Test2::API::_context_release_callbacks_ref();
+my $CONTEXTS = Test2::API::_contexts_ref();
+
+sub init {
+ my $self = shift;
+
+ confess "The 'trace' attribute is required"
+ unless $self->{+TRACE};
+
+ confess "The 'hub' attribute is required"
+ unless $self->{+HUB};
+
+ $self->{+_DEPTH} = 0 unless defined $self->{+_DEPTH};
+
+ $self->{+ERRNO} = $! unless exists $self->{+ERRNO};
+ $self->{+EVAL_ERROR} = $@ unless exists $self->{+EVAL_ERROR};
+ $self->{+CHILD_ERROR} = $? unless exists $self->{+CHILD_ERROR};
+}
+
+sub snapshot { bless {%{$_[0]}, _is_canon => undef, _is_spawn => undef, _aborted => undef}, __PACKAGE__ }
+
+sub restore_error_vars {
+ my $self = shift;
+ ($!, $@, $?) = @$self{+ERRNO, +EVAL_ERROR, +CHILD_ERROR};
+}
+
+sub DESTROY {
+ return unless $_[0]->{+_IS_CANON} || $_[0]->{+_IS_SPAWN};
+ return if $_[0]->{+_ABORTED} && ${$_[0]->{+_ABORTED}};
+ my ($self) = @_;
+
+ my $hub = $self->{+HUB};
+ my $hid = $hub->{hid};
+
+ # Do not show the warning if it looks like an exception has been thrown, or
+ # if the context is not local to this process or thread.
+ {
+ # Sometimes $@ is uninitialized, not a problem in this case so do not
+ # show the warning about using eq.
+ no warnings 'uninitialized';
+ if($self->{+EVAL_ERROR} eq $@ && $hub->is_local) {
+ my $frame = $self->{+_IS_SPAWN} || $self->{+TRACE}->frame;
+ warn <<" EOT";
+A context appears to have been destroyed without first calling release().
+Based on \$@ it does not look like an exception was thrown (this is not always
+a reliable test)
+
+This is a problem because the global error variables (\$!, \$@, and \$?) will
+not be restored. In addition some release callbacks will not work properly from
+inside a DESTROY method.
+
+Here are the context creation details, just in case a tool forgot to call
+release():
+ File: $frame->[1]
+ Line: $frame->[2]
+ Tool: $frame->[3]
+
+Cleaning up the CONTEXT stack...
+ EOT
+ }
+ }
+
+ return if $self->{+_IS_SPAWN};
+
+ # Remove the key itself to avoid a slow memory leak
+ delete $CONTEXTS->{$hid};
+ $self->{+_IS_CANON} = undef;
+
+ if (my $cbk = $self->{+_ON_RELEASE}) {
+ $_->($self) for reverse @$cbk;
+ }
+ if (my $hcbk = $hub->{_context_release}) {
+ $_->($self) for reverse @$hcbk;
+ }
+ $_->($self) for reverse @$ON_RELEASE;
+}
+
+# release exists to implement behaviors like die-on-fail. In die-on-fail you
+# want to die after a failure, but only after diagnostics have been reported.
+# The ideal time for the die to happen is when the context is released.
+# Unfortunately die does not work in a DESTROY block.
+sub release {
+ my ($self) = @_;
+
+ ($!, $@, $?) = @$self{+ERRNO, +EVAL_ERROR, +CHILD_ERROR} and return if $self->{+THROWN};
+
+ ($!, $@, $?) = @$self{+ERRNO, +EVAL_ERROR, +CHILD_ERROR} and return $self->{+_IS_SPAWN} = undef
+ if $self->{+_IS_SPAWN};
+
+ croak "release() should not be called on context that is neither canon nor a child"
+ unless $self->{+_IS_CANON};
+
+ my $hub = $self->{+HUB};
+ my $hid = $hub->{hid};
+
+ croak "context thinks it is canon, but it is not"
+ unless $CONTEXTS->{$hid} && $CONTEXTS->{$hid} == $self;
+
+ # Remove the key itself to avoid a slow memory leak
+ $self->{+_IS_CANON} = undef;
+ delete $CONTEXTS->{$hid};
+
+ if (my $cbk = $self->{+_ON_RELEASE}) {
+ $_->($self) for reverse @$cbk;
+ }
+ if (my $hcbk = $hub->{_context_release}) {
+ $_->($self) for reverse @$hcbk;
+ }
+ $_->($self) for reverse @$ON_RELEASE;
+
+ # Do this last so that nothing else changes them.
+ # If one of the hooks dies then these do not get restored, this is
+ # intentional
+ ($!, $@, $?) = @$self{+ERRNO, +EVAL_ERROR, +CHILD_ERROR};
+
+ return;
+}
+
+sub do_in_context {
+ my $self = shift;
+ my ($sub, @args) = @_;
+
+ # We need to update the pid/tid and error vars.
+ my $clone = $self->snapshot;
+ @$clone{+ERRNO, +EVAL_ERROR, +CHILD_ERROR} = ($!, $@, $?);
+ $clone->{+TRACE} = $clone->{+TRACE}->snapshot;
+ $clone->{+TRACE}->set_pid($$);
+ $clone->{+TRACE}->set_tid(get_tid());
+
+ my $hub = $clone->{+HUB};
+ my $hid = $hub->hid;
+
+ my $old = $CONTEXTS->{$hid};
+
+ $clone->{+_IS_CANON} = 1;
+ $CONTEXTS->{$hid} = $clone;
+ weaken($CONTEXTS->{$hid});
+ my ($ok, $err) = &try($sub, @args);
+ my ($rok, $rerr) = try { $clone->release };
+ delete $clone->{+_IS_CANON};
+
+ if ($old) {
+ $CONTEXTS->{$hid} = $old;
+ weaken($CONTEXTS->{$hid});
+ }
+ else {
+ delete $CONTEXTS->{$hid};
+ }
+
+ die $err unless $ok;
+ die $rerr unless $rok;
+}
+
+sub done_testing {
+ my $self = shift;
+ $self->hub->finalize($self->trace, 1);
+ return;
+}
+
+sub throw {
+ my ($self, $msg) = @_;
+ $self->{+THROWN} = 1;
+ ${$self->{+_ABORTED}}++ if $self->{+_ABORTED};
+ $self->release if $self->{+_IS_CANON} || $self->{+_IS_SPAWN};
+ $self->trace->throw($msg);
+}
+
+sub alert {
+ my ($self, $msg) = @_;
+ $self->trace->alert($msg);
+}
+
+sub send_event {
+ my $self = shift;
+ my $event = shift;
+ my %args = @_;
+
+ my $pkg = $LOADED{$event} || $self->_parse_event($event);
+
+ my $e = $pkg->new(
+ trace => $self->{+TRACE}->snapshot,
+ %args,
+ );
+
+ ${$self->{+_ABORTED}}++ if $self->{+_ABORTED} && defined $e->terminate;
+ $self->{+HUB}->send($e);
+}
+
+sub build_event {
+ my $self = shift;
+ my $event = shift;
+ my %args = @_;
+
+ my $pkg = $LOADED{$event} || $self->_parse_event($event);
+
+ $pkg->new(
+ trace => $self->{+TRACE}->snapshot,
+ %args,
+ );
+}
+
+sub ok {
+ my $self = shift;
+ my ($pass, $name, $on_fail) = @_;
+
+ my $hub = $self->{+HUB};
+
+ my $e = bless {
+ trace => bless( {%{$self->{+TRACE}}}, 'Test2::Util::Trace'),
+ pass => $pass,
+ name => $name,
+ }, 'Test2::Event::Ok';
+ $e->init;
+
+ $hub->send($e);
+ return $e if $pass;
+
+ $self->failure_diag($e);
+
+ if ($on_fail && @$on_fail) {
+ for my $of (@$on_fail) {
+ if (ref($of) eq 'CODE' || (blessed($of) && $of->can('render'))) {
+ $self->info($of, diagnostics => 1);
+ }
+ else {
+ $self->diag($of);
+ }
+ }
+ }
+
+ return $e;
+}
+
+sub failure_diag {
+ my $self = shift;
+ my ($e) = @_;
+
+ # This behavior is inherited from Test::Builder which injected a newline at
+ # the start of the first diagnostics when the harness is active, but not
+ # verbose. This is important to keep the diagnostics from showing up
+ # appended to the existing line, which is hard to read. In a verbose
+ # harness there is no need for this.
+ my $prefix = $ENV{HARNESS_ACTIVE} && !$ENV{HARNESS_IS_VERBOSE} ? "\n" : "";
+
+ # Figure out the debug info, this is typically the file name and line
+ # number, but can also be a custom message. If no trace object is provided
+ # then we have nothing useful to display.
+ my $name = $e->name;
+ my $trace = $e->trace;
+ my $debug = $trace ? $trace->debug : "[No trace info available]";
+
+ # Create the initial diagnostics. If the test has a name we put the debug
+ # info on a second line, this behavior is inherited from Test::Builder.
+ my $msg = defined($name)
+ ? qq[${prefix}Failed test '$name'\n$debug.\n]
+ : qq[${prefix}Failed test $debug.\n];
+
+ $self->diag($msg);
+}
+
+sub skip {
+ my $self = shift;
+ my ($name, $reason, @extra) = @_;
+ $self->send_event(
+ 'Skip',
+ name => $name,
+ reason => $reason,
+ pass => 1,
+ @extra,
+ );
+}
+
+sub info {
+ my $self = shift;
+ my ($renderer, %params) = @_;
+ $self->send_event('Info', renderer => $renderer, %params);
+}
+
+sub note {
+ my $self = shift;
+ my ($message) = @_;
+ $self->send_event('Note', message => $message);
+}
+
+sub diag {
+ my $self = shift;
+ my ($message) = @_;
+ my $hub = $self->{+HUB};
+ $self->send_event(
+ 'Diag',
+ message => $message,
+ );
+}
+
+sub plan {
+ my ($self, $max, $directive, $reason) = @_;
+ $self->send_event('Plan', max => $max, directive => $directive, reason => $reason);
+}
+
+sub bail {
+ my ($self, $reason) = @_;
+ $self->send_event('Bail', reason => $reason);
+}
+
+sub _parse_event {
+ my $self = shift;
+ my $event = shift;
+
+ my $pkg;
+ if ($event =~ m/^\+(.*)/) {
+ $pkg = $1;
+ }
+ else {
+ $pkg = "Test2::Event::$event";
+ }
+
+ unless ($LOADED{$pkg}) {
+ my $file = pkg_to_file($pkg);
+ my ($ok, $err) = try { require $file };
+ $self->throw("Could not load event module '$pkg': $err")
+ unless $ok;
+
+ $LOADED{$pkg} = $pkg;
+ }
+
+ confess "'$pkg' is not a subclass of 'Test2::Event'"
+ unless $pkg->isa('Test2::Event');
+
+ $LOADED{$event} = $pkg;
+
+ return $pkg;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::API::Context - Object to represent a testing context.
+
+=head1 DESCRIPTION
+
+The context object is the primary interface for authors of testing tools
+written with L<Test2>. The context object represents the context in
+which a test takes place (File and Line Number), and provides a quick way to
+generate events from that context. The context object also takes care of
+sending events to the correct L<Test2::Hub> instance.
+
+=head1 SYNOPSIS
+
+In general you will not be creating contexts directly. To obtain a context you
+should always use C<context()> which is exported by the L<Test2::API> module.
+
+ use Test2::API qw/context/;
+
+ sub my_ok {
+ my ($bool, $name) = @_;
+ my $ctx = context();
+ $ctx->ok($bool, $name);
+ $ctx->release; # You MUST do this!
+ return $bool;
+ }
+
+Context objects make it easy to wrap other tools that also use context. Once
+you grab a context, any tool you call before releasing your context will
+inherit it:
+
+ sub wrapper {
+ my ($bool, $name) = @_;
+ my $ctx = context();
+ $ctx->diag("wrapping my_ok");
+
+ my $out = my_ok($bool, $name);
+ $ctx->release; # You MUST do this!
+ return $out;
+ }
+
+=head1 CRITICAL DETAILS
+
+=over 4
+
+=item you MUST always use the context() sub from Test2::API
+
+Creating your own context via C<< Test2::API::Context->new() >> will almost never
+produce a desirable result. Use C<context()> which is exported by L<Test2::API>.
+
+There are a handful of cases where a tool author may want to create a new
+context by hand, which is why the C<new> method exists. Unless you really know
+what you are doing you should avoid this.
+
+=item You MUST always release the context when done with it
+
+Releasing the context tells the system you are done with it. This gives it a
+chance to run any necessary callbacks or cleanup tasks. If you forget to
+release the context it will try to detect the problem and warn you about it.
+
+=item You MUST NOT pass context objects around
+
+When you obtain a context object it is made specifically for your tool and any
+tools nested within. If you pass a context around you run the risk of polluting
+other tools with incorrect context information.
+
+If you are certain that you want a different tool to use the same context you
+may pass it a snapshot. C<< $ctx->snapshot >> will give you a shallow clone of
+the context that is safe to pass around or store.
+
+=item You MUST NOT store or cache a context for later
+
+As long as a context exists for a given hub, all tools that try to get a
+context will get the existing instance. If you try to store the context you
+will pollute other tools with incorrect context information.
+
+If you are certain that you want to save the context for later, you can use a
+snapshot. C<< $ctx->snapshot >> will give you a shallow clone of the context
+that is safe to pass around or store.
+
+C<context()> has some mechanisms to protect you if you do cause a context to
+persist beyond the scope in which it was obtained. In practice you should not
+rely on these protections, and they are fairly noisy with warnings.
+
+=item You SHOULD obtain your context as soon as possible in a given tool
+
+You never know what tools you call from within your own tool will need a
+context. Obtaining the context early ensures that nested tools can find the
+context you want them to find.
+
+=back
+
+=head1 METHODS
+
+=over 4
+
+=item $ctx->done_testing;
+
+Note that testing is finished. If no plan has been set this will generate a
+Plan event.
+
+=item $clone = $ctx->snapshot()
+
+This will return a shallow clone of the context. The shallow clone is safe to
+store for later.
+
+=item $ctx->release()
+
+This will release the context. This runs cleanup tasks, and several important
+hooks. It will also restore C<$!>, C<$?>, and C<$@> to what they were when the
+context was created.
+
+B<Note:> If a context is acquired more than once an internal refcount is kept.
+C<release()> decrements the ref count, none of the other actions of
+C<release()> will occur unless the refcount hits 0. This means only the last
+call to C<release()> will reset C<$?>, C<$!>, C<$@>,and run the cleanup tasks.
+
+=item $ctx->throw($message)
+
+This will throw an exception reporting to the file and line number of the
+context. This will also release the context for you.
+
+=item $ctx->alert($message)
+
+This will issue a warning from the file and line number of the context.
+
+=item $stack = $ctx->stack()
+
+This will return the L<Test2::API::Stack> instance the context used to find
+the current hub.
+
+=item $hub = $ctx->hub()
+
+This will return the L<Test2::Hub> instance the context recognizes as the
+current one to which all events should be sent.
+
+=item $dbg = $ctx->trace()
+
+This will return the L<Test2::Util::Trace> instance used by the context.
+
+=item $ctx->do_in_context(\&code, @args);
+
+Sometimes you have a context that is not current, and you want things to use it
+as the current one. In these cases you can call
+C<< $ctx->do_in_context(sub { ... }) >>. The codeblock will be run, and
+anything inside of it that looks for a context will find the one on which the
+method was called.
+
+This B<DOES NOT> affect context on other hubs, only the hub used by the context
+will be affected.
+
+ my $ctx = ...;
+ $ctx->do_in_context(sub {
+ my $ctx = context(); # returns the $ctx the sub is called on
+ });
+
+B<Note:> The context will actually be cloned, the clone will be used instead of
+the original. This allows the thread id, process id, and error variables to be correct without
+modifying the original context.
+
+=item $ctx->restore_error_vars()
+
+This will set C<$!>, C<$?>, and C<$@> to what they were when the context was
+created. There is no localization or anything done here, calling this method
+will actually set these vars.
+
+=item $! = $ctx->errno()
+
+The (numeric) value of C<$!> when the context was created.
+
+=item $? = $ctx->child_error()
+
+The value of C<$?> when the context was created.
+
+=item $@ = $ctx->eval_error()
+
+The value of C<$@> when the context was created.
+
+=back
+
+=head2 EVENT PRODUCTION METHODS
+
+=over 4
+
+=item $event = $ctx->ok($bool, $name)
+
+=item $event = $ctx->ok($bool, $name, \@on_fail)
+
+This will create an L<Test2::Event::Ok> object for you. If C<$bool> is false
+then an L<Test2::Event::Diag> event will be sent as well with details about the
+failure. If you do not want automatic diagnostics you should use the
+C<send_event()> method directly.
+
+The third argument C<\@on_fail>) is an optional set of diagnostics to be sent in
+the event of a test failure. Plain strings will be sent as
+L<Test2::Event::Diag> events. References will be used to construct
+L<Test2::Event::Info> events with C<< diagnostics => 1 >>.
+
+=item $event = $ctx->info($renderer, diagnostics => $bool, %other_params)
+
+Send an L<Test2::Event::Info>.
+
+=item $event = $ctx->note($message)
+
+Send an L<Test2::Event::Note>. This event prints a message to STDOUT.
+
+=item $event = $ctx->diag($message)
+
+Send an L<Test2::Event::Diag>. This event prints a message to STDERR.
+
+=item $event = $ctx->plan($max)
+
+=item $event = $ctx->plan(0, 'SKIP', $reason)
+
+This can be used to send an L<Test2::Event::Plan> event. This event
+usually takes either a number of tests you expect to run. Optionally you can
+set the expected count to 0 and give the 'SKIP' directive with a reason to
+cause all tests to be skipped.
+
+=item $event = $ctx->skip($name, $reason);
+
+Send an L<Test2::Event::Skip> event.
+
+=item $event = $ctx->bail($reason)
+
+This sends an L<Test2::Event::Bail> event. This event will completely
+terminate all testing.
+
+=item $event = $ctx->send_event($Type, %parameters)
+
+This lets you build and send an event of any type. The C<$Type> argument should
+be the event package name with C<Test2::Event::> left off, or a fully
+qualified package name prefixed with a '+'. The event is returned after it is
+sent.
+
+ my $event = $ctx->send_event('Ok', ...);
+
+or
+
+ my $event = $ctx->send_event('+Test2::Event::Ok', ...);
+
+=item $event = $ctx->build_event($Type, %parameters)
+
+This is the same as C<send_event()>, except it builds and returns the event
+without sending it.
+
+=back
+
+=head1 HOOKS
+
+There are 2 types of hooks, init hooks, and release hooks. As the names
+suggest, these hooks are triggered when contexts are created or released.
+
+=head2 INIT HOOKS
+
+These are called whenever a context is initialized. That means when a new
+instance is created. These hooks are B<NOT> called every time something
+requests a context, just when a new one is created.
+
+=head3 GLOBAL
+
+This is how you add a global init callback. Global callbacks happen for every
+context for any hub or stack.
+
+ Test2::API::test2_add_callback_context_init(sub {
+ my $ctx = shift;
+ ...
+ });
+
+=head3 PER HUB
+
+This is how you add an init callback for all contexts created for a given hub.
+These callbacks will not run for other hubs.
+
+ $hub->add_context_init(sub {
+ my $ctx = shift;
+ ...
+ });
+
+=head3 PER CONTEXT
+
+This is how you specify an init hook that will only run if your call to
+C<context()> generates a new context. The callback will be ignored if
+C<context()> is returning an existing context.
+
+ my $ctx = context(on_init => sub {
+ my $ctx = shift;
+ ...
+ });
+
+=head2 RELEASE HOOKS
+
+These are called whenever a context is released. That means when the last
+reference to the instance is about to be destroyed. These hooks are B<NOT>
+called every time C<< $ctx->release >> is called.
+
+=head3 GLOBAL
+
+This is how you add a global release callback. Global callbacks happen for every
+context for any hub or stack.
+
+ Test2::API::test2_add_callback_context_release(sub {
+ my $ctx = shift;
+ ...
+ });
+
+=head3 PER HUB
+
+This is how you add a release callback for all contexts created for a given
+hub. These callbacks will not run for other hubs.
+
+ $hub->add_context_release(sub {
+ my $ctx = shift;
+ ...
+ });
+
+=head3 PER CONTEXT
+
+This is how you add release callbacks directly to a context. The callback will
+B<ALWAYS> be added to the context that gets returned, it does not matter if a
+new one is generated, or if an existing one is returned.
+
+ my $ctx = context(on_release => sub {
+ my $ctx = shift;
+ ...
+ });
+
+=head1 THIRD PARTY META-DATA
+
+This object consumes L<Test2::Util::ExternalMeta> which provides a consistent
+way for you to attach meta-data to instances of this class. This is useful for
+tools, plugins, and other extensions.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=item Kent Fredric E<lt>kentnl@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/API/Instance.pm b/Master/tlpkg/tlperl/lib/Test2/API/Instance.pm
new file mode 100755
index 00000000000..70d4cd7bb78
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/API/Instance.pm
@@ -0,0 +1,754 @@
+package Test2::API::Instance;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+our @CARP_NOT = qw/Test2::API Test2::API::Instance Test2::IPC::Driver Test2::Formatter/;
+use Carp qw/confess carp/;
+use Scalar::Util qw/reftype/;
+
+use Test2::Util qw/get_tid USE_THREADS CAN_FORK pkg_to_file try/;
+
+use Test2::Util::Trace();
+use Test2::API::Stack();
+
+use Test2::Util::HashBase qw{
+ _pid _tid
+ no_wait
+ finalized loaded
+ ipc stack formatter
+ contexts
+
+ ipc_shm_size
+ ipc_shm_last
+ ipc_shm_id
+ ipc_polling
+ ipc_drivers
+ formatters
+
+ exit_callbacks
+ post_load_callbacks
+ context_acquire_callbacks
+ context_init_callbacks
+ context_release_callbacks
+};
+
+sub pid { $_[0]->{+_PID} ||= $$ }
+sub tid { $_[0]->{+_TID} ||= get_tid() }
+
+# Wrap around the getters that should call _finalize.
+BEGIN {
+ for my $finalizer (IPC, FORMATTER) {
+ my $orig = __PACKAGE__->can($finalizer);
+ my $new = sub {
+ my $self = shift;
+ $self->_finalize unless $self->{+FINALIZED};
+ $self->$orig;
+ };
+
+ no strict 'refs';
+ no warnings 'redefine';
+ *{$finalizer} = $new;
+ }
+}
+
+sub import {
+ my $class = shift;
+ return unless @_;
+ my ($ref) = @_;
+ $$ref = $class->new;
+}
+
+sub init { $_[0]->reset }
+
+sub reset {
+ my $self = shift;
+
+ delete $self->{+_PID};
+ delete $self->{+_TID};
+
+ $self->{+CONTEXTS} = {};
+
+ $self->{+IPC_DRIVERS} = [];
+ $self->{+IPC_POLLING} = undef;
+
+ $self->{+FORMATTERS} = [];
+ $self->{+FORMATTER} = undef;
+
+ $self->{+FINALIZED} = undef;
+ $self->{+IPC} = undef;
+
+ $self->{+NO_WAIT} = 0;
+ $self->{+LOADED} = 0;
+
+ $self->{+EXIT_CALLBACKS} = [];
+ $self->{+POST_LOAD_CALLBACKS} = [];
+ $self->{+CONTEXT_ACQUIRE_CALLBACKS} = [];
+ $self->{+CONTEXT_INIT_CALLBACKS} = [];
+ $self->{+CONTEXT_RELEASE_CALLBACKS} = [];
+
+ $self->{+STACK} = Test2::API::Stack->new;
+}
+
+sub _finalize {
+ my $self = shift;
+ my ($caller) = @_;
+ $caller ||= [caller(1)];
+
+ $self->{+FINALIZED} = $caller;
+
+ $self->{+_PID} = $$ unless defined $self->{+_PID};
+ $self->{+_TID} = get_tid() unless defined $self->{+_TID};
+
+ unless ($self->{+FORMATTER}) {
+ my ($formatter, $source);
+ if ($ENV{T2_FORMATTER}) {
+ $source = "set by the 'T2_FORMATTER' environment variable";
+
+ if ($ENV{T2_FORMATTER} =~ m/^(\+)?(.*)$/) {
+ $formatter = $1 ? $2 : "Test2::Formatter::$2"
+ }
+ else {
+ $formatter = '';
+ }
+ }
+ elsif (@{$self->{+FORMATTERS}}) {
+ ($formatter) = @{$self->{+FORMATTERS}};
+ $source = "Most recently added";
+ }
+ else {
+ $formatter = 'Test2::Formatter::TAP';
+ $source = 'default formatter';
+ }
+
+ unless (ref($formatter) || $formatter->can('write')) {
+ my $file = pkg_to_file($formatter);
+ my ($ok, $err) = try { require $file };
+ unless ($ok) {
+ my $line = "* COULD NOT LOAD FORMATTER '$formatter' ($source) *";
+ my $border = '*' x length($line);
+ die "\n\n $border\n $line\n $border\n\n$err";
+ }
+ }
+
+ $self->{+FORMATTER} = $formatter;
+ }
+
+ # Turn on IPC if threads are on, drivers are registered, or the Test2::IPC
+ # module is loaded.
+ return unless USE_THREADS || $INC{'Test2/IPC.pm'} || @{$self->{+IPC_DRIVERS}};
+
+ # Turn on polling by default, people expect it.
+ $self->enable_ipc_polling;
+
+ unless (@{$self->{+IPC_DRIVERS}}) {
+ my ($ok, $error) = try { require Test2::IPC::Driver::Files };
+ die $error unless $ok;
+ push @{$self->{+IPC_DRIVERS}} => 'Test2::IPC::Driver::Files';
+ }
+
+ for my $driver (@{$self->{+IPC_DRIVERS}}) {
+ next unless $driver->can('is_viable') && $driver->is_viable;
+ $self->{+IPC} = $driver->new or next;
+ $self->ipc_enable_shm if $self->{+IPC}->use_shm;
+ return;
+ }
+
+ die "IPC has been requested, but no viable drivers were found. Aborting...\n";
+}
+
+sub formatter_set { $_[0]->{+FORMATTER} ? 1 : 0 }
+
+sub add_formatter {
+ my $self = shift;
+ my ($formatter) = @_;
+ unshift @{$self->{+FORMATTERS}} => $formatter;
+
+ return unless $self->{+FINALIZED};
+
+ # Why is the @CARP_NOT entry not enough?
+ local %Carp::Internal = %Carp::Internal;
+ $Carp::Internal{'Test2::Formatter'} = 1;
+
+ carp "Formatter $formatter loaded too late to be used as the global formatter";
+}
+
+sub add_context_acquire_callback {
+ my $self = shift;
+ my ($code) = @_;
+
+ my $rtype = reftype($code) || "";
+
+ confess "Context-acquire callbacks must be coderefs"
+ unless $code && $rtype eq 'CODE';
+
+ push @{$self->{+CONTEXT_ACQUIRE_CALLBACKS}} => $code;
+}
+
+sub add_context_init_callback {
+ my $self = shift;
+ my ($code) = @_;
+
+ my $rtype = reftype($code) || "";
+
+ confess "Context-init callbacks must be coderefs"
+ unless $code && $rtype eq 'CODE';
+
+ push @{$self->{+CONTEXT_INIT_CALLBACKS}} => $code;
+}
+
+sub add_context_release_callback {
+ my $self = shift;
+ my ($code) = @_;
+
+ my $rtype = reftype($code) || "";
+
+ confess "Context-release callbacks must be coderefs"
+ unless $code && $rtype eq 'CODE';
+
+ push @{$self->{+CONTEXT_RELEASE_CALLBACKS}} => $code;
+}
+
+sub add_post_load_callback {
+ my $self = shift;
+ my ($code) = @_;
+
+ my $rtype = reftype($code) || "";
+
+ confess "Post-load callbacks must be coderefs"
+ unless $code && $rtype eq 'CODE';
+
+ push @{$self->{+POST_LOAD_CALLBACKS}} => $code;
+ $code->() if $self->{+LOADED};
+}
+
+sub load {
+ my $self = shift;
+ unless ($self->{+LOADED}) {
+ $self->{+_PID} = $$ unless defined $self->{+_PID};
+ $self->{+_TID} = get_tid() unless defined $self->{+_TID};
+
+ # This is for https://github.com/Test-More/test-more/issues/16
+ # and https://rt.perl.org/Public/Bug/Display.html?id=127774
+ # END blocks run in reverse order. This insures the END block is loaded
+ # as late as possible. It will not solve all cases, but it helps.
+ eval "END { Test2::API::test2_set_is_end() }; 1" or die $@;
+
+ $self->{+LOADED} = 1;
+ $_->() for @{$self->{+POST_LOAD_CALLBACKS}};
+ }
+ return $self->{+LOADED};
+}
+
+sub add_exit_callback {
+ my $self = shift;
+ my ($code) = @_;
+ my $rtype = reftype($code) || "";
+
+ confess "End callbacks must be coderefs"
+ unless $code && $rtype eq 'CODE';
+
+ push @{$self->{+EXIT_CALLBACKS}} => $code;
+}
+
+sub add_ipc_driver {
+ my $self = shift;
+ my ($driver) = @_;
+ unshift @{$self->{+IPC_DRIVERS}} => $driver;
+
+ return unless $self->{+FINALIZED};
+
+ # Why is the @CARP_NOT entry not enough?
+ local %Carp::Internal = %Carp::Internal;
+ $Carp::Internal{'Test2::IPC::Driver'} = 1;
+
+ carp "IPC driver $driver loaded too late to be used as the global ipc driver";
+}
+
+sub enable_ipc_polling {
+ my $self = shift;
+
+ $self->{+_PID} = $$ unless defined $self->{+_PID};
+ $self->{+_TID} = get_tid() unless defined $self->{+_TID};
+
+ $self->add_context_init_callback(
+ # This is called every time a context is created, it needs to be fast.
+ # $_[0] is a context object
+ sub {
+ return unless $self->{+IPC_POLLING};
+ return $_[0]->{hub}->cull unless $self->{+IPC_SHM_ID};
+
+ my $val;
+ {
+ shmread($self->{+IPC_SHM_ID}, $val, 0, $self->{+IPC_SHM_SIZE}) or return;
+
+ return if $val eq $self->{+IPC_SHM_LAST};
+ $self->{+IPC_SHM_LAST} = $val;
+ }
+
+ $_[0]->{hub}->cull;
+ }
+ ) unless defined $self->ipc_polling;
+
+ $self->set_ipc_polling(1);
+}
+
+sub ipc_enable_shm {
+ my $self = shift;
+
+ return 1 if defined $self->{+IPC_SHM_ID};
+
+ $self->{+_PID} = $$ unless defined $self->{+_PID};
+ $self->{+_TID} = get_tid() unless defined $self->{+_TID};
+
+ my ($ok, $err) = try {
+ # SysV IPC can be available but not enabled.
+ #
+ # In some systems (*BSD) accessing the SysV IPC APIs without
+ # them being enabled can cause a SIGSYS. We suppress the SIGSYS
+ # and then get ENOSYS from the calls.
+ local $SIG{SYS} = 'IGNORE';
+
+ require IPC::SysV;
+
+ my $ipc_key = IPC::SysV::IPC_PRIVATE();
+ my $shm_size = $self->{+IPC}->can('shm_size') ? $self->{+IPC}->shm_size : 64;
+ my $shm_id = shmget($ipc_key, $shm_size, 0666) or die;
+
+ my $initial = 'a' x $shm_size;
+ shmwrite($shm_id, $initial, 0, $shm_size) or die;
+
+ $self->{+IPC_SHM_SIZE} = $shm_size;
+ $self->{+IPC_SHM_ID} = $shm_id;
+ $self->{+IPC_SHM_LAST} = $initial;
+ };
+
+ return $ok;
+}
+
+sub ipc_free_shm {
+ my $self = shift;
+
+ my $id = delete $self->{+IPC_SHM_ID};
+ return unless defined $id;
+
+ shmctl($id, IPC::SysV::IPC_RMID(), 0);
+}
+
+sub get_ipc_pending {
+ my $self = shift;
+ return -1 unless defined $self->{+IPC_SHM_ID};
+ my $val;
+ shmread($self->{+IPC_SHM_ID}, $val, 0, $self->{+IPC_SHM_SIZE}) or return -1;
+ return 0 if $val eq $self->{+IPC_SHM_LAST};
+ $self->{+IPC_SHM_LAST} = $val;
+ return 1;
+}
+
+sub set_ipc_pending {
+ my $self = shift;
+
+ return undef unless defined $self->{+IPC_SHM_ID};
+
+ my ($val) = @_;
+
+ confess "value is required for set_ipc_pending"
+ unless $val;
+
+ shmwrite($self->{+IPC_SHM_ID}, $val, 0, $self->{+IPC_SHM_SIZE});
+}
+
+sub disable_ipc_polling {
+ my $self = shift;
+ return unless defined $self->{+IPC_POLLING};
+ $self->{+IPC_POLLING} = 0;
+}
+
+sub _ipc_wait {
+ my $fail = 0;
+
+ if (CAN_FORK) {
+ while (1) {
+ my $pid = CORE::wait();
+ my $err = $?;
+ last if $pid == -1;
+ next unless $err;
+ $fail++;
+ $err = $err >> 8;
+ warn "Process $pid did not exit cleanly (status: $err)\n";
+ }
+ }
+
+ if (USE_THREADS) {
+ for my $t (threads->list()) {
+ $t->join;
+ # In older threads we cannot check if a thread had an error unless
+ # we control it and its return.
+ my $err = $t->can('error') ? $t->error : undef;
+ next unless $err;
+ my $tid = $t->tid();
+ $fail++;
+ chomp($err);
+ warn "Thread $tid did not end cleanly: $err\n";
+ }
+ }
+
+ return 0 unless $fail;
+ return 255;
+}
+
+sub DESTROY {
+ my $self = shift;
+
+ return unless defined($self->{+_PID}) && $self->{+_PID} == $$;
+ return unless defined($self->{+_TID}) && $self->{+_TID} == get_tid();
+
+ shmctl($self->{+IPC_SHM_ID}, IPC::SysV::IPC_RMID(), 0)
+ if defined $self->{+IPC_SHM_ID};
+}
+
+sub set_exit {
+ my $self = shift;
+
+ my $exit = $?;
+ my $new_exit = $exit;
+
+ if ($INC{'Test/Builder.pm'} && $Test::Builder::VERSION ne $Test2::API::VERSION) {
+ print STDERR <<" EOT";
+
+********************************************************************************
+* *
+* Test::Builder -- Test2::API version mismatch detected *
+* *
+********************************************************************************
+ Test2::API Version: $Test2::API::VERSION
+Test::Builder Version: $Test::Builder::VERSION
+
+This is not a supported configuration, you will have problems.
+
+ EOT
+ }
+
+ for my $ctx (values %{$self->{+CONTEXTS}}) {
+ next unless $ctx;
+
+ next if $ctx->_aborted && ${$ctx->_aborted};
+
+ # Only worry about contexts in this PID
+ my $trace = $ctx->trace || next;
+ next unless $trace->pid && $trace->pid == $$;
+
+ # Do not worry about contexts that have no hub
+ my $hub = $ctx->hub || next;
+
+ # Do not worry if the state came to a sudden end.
+ next if $hub->bailed_out;
+ next if defined $hub->skip_reason;
+
+ # now we worry
+ $trace->alert("context object was never released! This means a testing tool is behaving very badly");
+
+ $exit = 255;
+ $new_exit = 255;
+ }
+
+ if (!defined($self->{+_PID}) or !defined($self->{+_TID}) or $self->{+_PID} != $$ or $self->{+_TID} != get_tid()) {
+ $? = $exit;
+ return;
+ }
+
+ my @hubs = $self->{+STACK} ? $self->{+STACK}->all : ();
+
+ if (@hubs and $self->{+IPC} and !$self->{+NO_WAIT}) {
+ local $?;
+ my %seen;
+ for my $hub (reverse @hubs) {
+ my $ipc = $hub->ipc or next;
+ next if $seen{$ipc}++;
+ $ipc->waiting();
+ }
+
+ my $ipc_exit = _ipc_wait();
+ $new_exit ||= $ipc_exit;
+ }
+
+ # None of this is necessary if we never got a root hub
+ if(my $root = shift @hubs) {
+ my $trace = Test2::Util::Trace->new(
+ frame => [__PACKAGE__, __FILE__, 0, __PACKAGE__ . '::END'],
+ detail => __PACKAGE__ . ' END Block finalization',
+ );
+ my $ctx = Test2::API::Context->new(
+ trace => $trace,
+ hub => $root,
+ );
+
+ if (@hubs) {
+ $ctx->diag("Test ended with extra hubs on the stack!");
+ $new_exit = 255;
+ }
+
+ unless ($root->no_ending) {
+ local $?;
+ $root->finalize($trace) unless $root->ended;
+ $_->($ctx, $exit, \$new_exit) for @{$self->{+EXIT_CALLBACKS}};
+ $new_exit ||= $root->failed;
+ $new_exit ||= 255 unless $root->is_passing;
+ }
+ }
+
+ $new_exit = 255 if $new_exit > 255;
+
+ if ($new_exit && eval { require Test2::API::Breakage; 1 }) {
+ my @warn = Test2::API::Breakage->report();
+
+ if (@warn) {
+ print STDERR "\nYou have loaded versions of test modules known to have problems with Test2.\nThis could explain some test failures.\n";
+ print STDERR "$_\n" for @warn;
+ print STDERR "\n";
+ }
+ }
+
+ $? = $new_exit;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::API::Instance - Object used by Test2::API under the hood
+
+=head1 DESCRIPTION
+
+This object encapsulates the global shared state tracked by
+L<Test2>. A single global instance of this package is stored (and
+obscured) by the L<Test2::API> package.
+
+There is no reason to directly use this package. This package is documented for
+completeness. This package can change, or go away completely at any time.
+Directly using, or monkeypatching this package is not supported in any way
+shape or form.
+
+=head1 SYNOPSIS
+
+ use Test2::API::Instance;
+
+ my $obj = Test2::API::Instance->new;
+
+=over 4
+
+=item $pid = $obj->pid
+
+PID of this instance.
+
+=item $obj->tid
+
+Thread ID of this instance.
+
+=item $obj->reset()
+
+Reset the object to defaults.
+
+=item $obj->load()
+
+Set the internal state to loaded, and run and stored post-load callbacks.
+
+=item $bool = $obj->loaded
+
+Check if the state is set to loaded.
+
+=item $arrayref = $obj->post_load_callbacks
+
+Get the post-load callbacks.
+
+=item $obj->add_post_load_callback(sub { ... })
+
+Add a post-load callback. If C<load()> has already been called then the callback will
+be immediately executed. If C<load()> has not been called then the callback will be
+stored and executed later when C<load()> is called.
+
+=item $hashref = $obj->contexts()
+
+Get a hashref of all active contexts keyed by hub id.
+
+=item $arrayref = $obj->context_acquire_callbacks
+
+Get all context acquire callbacks.
+
+=item $arrayref = $obj->context_init_callbacks
+
+Get all context init callbacks.
+
+=item $arrayref = $obj->context_release_callbacks
+
+Get all context release callbacks.
+
+=item $obj->add_context_init_callback(sub { ... })
+
+Add a context init callback. Subs are called every time a context is created. Subs
+get the newly created context as their only argument.
+
+=item $obj->add_context_release_callback(sub { ... })
+
+Add a context release callback. Subs are called every time a context is released. Subs
+get the released context as their only argument. These callbacks should not
+call release on the context.
+
+=item $obj->set_exit()
+
+This is intended to be called in an C<END { ... }> block. This will look at
+test state and set $?. This will also call any end callbacks, and wait on child
+processes/threads.
+
+=item $obj->ipc_enable_shm()
+
+Turn on SHM for IPC (if possible)
+
+=item $shm_id = $obj->ipc_shm_id()
+
+If SHM is enabled for IPC this will be the shm_id for it.
+
+=item $shm_size = $obj->ipc_shm_size()
+
+If SHM is enabled for IPC this will be the size of it.
+
+=item $shm_last_val = $obj->ipc_shm_last()
+
+If SHM is enabled for IPC this will return the last SHM value seen.
+
+=item $obj->set_ipc_pending($val)
+
+use the IPC SHM to tell other processes and threads there is a pending event.
+C<$val> should be a unique value no other thread/process will generate.
+
+B<Note:> This will also make the current process see a pending event. It does
+not set C<ipc_shm_last()>, this is important because doing so could hide a
+previous change.
+
+=item $pending = $obj->get_ipc_pending()
+
+This returns -1 if SHM is not enabled for IPC.
+
+This returns 0 if the SHM value matches the last known value, which means there
+are no pending events.
+
+This returns 1 if the SHM value has changed, which means there are probably
+pending events.
+
+When 1 is returned this will set C<< $obj->ipc_shm_last() >>.
+
+=item $drivers = $obj->ipc_drivers
+
+Get the list of IPC drivers.
+
+=item $obj->add_ipc_driver($DRIVER_CLASS)
+
+Add an IPC driver to the list. The most recently added IPC driver will become
+the global one during initialization. If a driver is added after initialization
+has occurred a warning will be generated:
+
+ "IPC driver $driver loaded too late to be used as the global ipc driver"
+
+=item $bool = $obj->ipc_polling
+
+Check if polling is enabled.
+
+=item $obj->enable_ipc_polling
+
+Turn on polling. This will cull events from other processes and threads every
+time a context is created.
+
+=item $obj->disable_ipc_polling
+
+Turn off IPC polling.
+
+=item $bool = $obj->no_wait
+
+=item $bool = $obj->set_no_wait($bool)
+
+Get/Set no_wait. This option is used to turn off process/thread waiting at exit.
+
+=item $arrayref = $obj->exit_callbacks
+
+Get the exit callbacks.
+
+=item $obj->add_exit_callback(sub { ... })
+
+Add an exit callback. This callback will be called by C<set_exit()>.
+
+=item $bool = $obj->finalized
+
+Check if the object is finalized. Finalization happens when either C<ipc()>,
+C<stack()>, or C<format()> are called on the object. Once finalization happens
+these fields are considered unchangeable (not enforced here, enforced by
+L<Test2>).
+
+=item $ipc = $obj->ipc
+
+Get the one true IPC instance.
+
+=item $stack = $obj->stack
+
+Get the one true hub stack.
+
+=item $formatter = $obj->formatter
+
+Get the global formatter. By default this is the C<'Test2::Formatter::TAP'>
+package. This could be any package that implements the C<write()> method. This
+can also be an instantiated object.
+
+=item $bool = $obj->formatter_set()
+
+Check if a formatter has been set.
+
+=item $obj->add_formatter($class)
+
+=item $obj->add_formatter($obj)
+
+Add a formatter. The most recently added formatter will become the global one
+during initialization. If a formatter is added after initialization has occurred
+a warning will be generated:
+
+ "Formatter $formatter loaded too late to be used as the global formatter"
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/API/Stack.pm b/Master/tlpkg/tlperl/lib/Test2/API/Stack.pm
new file mode 100755
index 00000000000..534cd78d1ba
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/API/Stack.pm
@@ -0,0 +1,220 @@
+package Test2::API::Stack;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Test2::Hub();
+
+use Carp qw/confess/;
+
+sub new {
+ my $class = shift;
+ return bless [], $class;
+}
+
+sub new_hub {
+ my $self = shift;
+ my %params = @_;
+
+ my $class = delete $params{class} || 'Test2::Hub';
+
+ my $hub = $class->new(%params);
+
+ if (@$self) {
+ $hub->inherit($self->[-1], %params);
+ }
+ else {
+ require Test2::API;
+ $hub->format(Test2::API::test2_formatter()->new)
+ unless $hub->format || exists($params{formatter});
+
+ my $ipc = Test2::API::test2_ipc();
+ if ($ipc && !$hub->ipc && !exists($params{ipc})) {
+ $hub->set_ipc($ipc);
+ $ipc->add_hub($hub->hid);
+ }
+ }
+
+ push @$self => $hub;
+
+ $hub;
+}
+
+sub top {
+ my $self = shift;
+ return $self->new_hub unless @$self;
+ return $self->[-1];
+}
+
+sub peek {
+ my $self = shift;
+ return @$self ? $self->[-1] : undef;
+}
+
+sub cull {
+ my $self = shift;
+ $_->cull for reverse @$self;
+}
+
+sub all {
+ my $self = shift;
+ return @$self;
+}
+
+sub clear {
+ my $self = shift;
+ @$self = ();
+}
+
+# Do these last without keywords in order to prevent them from getting used
+# when we want the real push/pop.
+
+{
+ no warnings 'once';
+
+ *push = sub {
+ my $self = shift;
+ my ($hub) = @_;
+ $hub->inherit($self->[-1]) if @$self;
+ push @$self => $hub;
+ };
+
+ *pop = sub {
+ my $self = shift;
+ my ($hub) = @_;
+ confess "No hubs on the stack"
+ unless @$self;
+ confess "You cannot pop the root hub"
+ if 1 == @$self;
+ confess "Hub stack mismatch, attempted to pop incorrect hub"
+ unless $self->[-1] == $hub;
+ pop @$self;
+ };
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::API::Stack - Object to manage a stack of L<Test2::Hub>
+instances.
+
+=head1 ***INTERNALS NOTE***
+
+B<The internals of this package are subject to change at any time!> The public
+methods provided will not change in backwards incompatible ways, but the
+underlying implementation details might. B<Do not break encapsulation here!>
+
+=head1 DESCRIPTION
+
+This module is used to represent and manage a stack of L<Test2::Hub>
+objects. Hubs are usually in a stack so that you can push a new hub into place
+that can intercept and handle events differently than the primary hub.
+
+=head1 SYNOPSIS
+
+ my $stack = Test2::API::Stack->new;
+ my $hub = $stack->top;
+
+=head1 METHODS
+
+=over 4
+
+=item $stack = Test2::API::Stack->new()
+
+This will create a new empty stack instance. All arguments are ignored.
+
+=item $hub = $stack->new_hub()
+
+=item $hub = $stack->new_hub(%params)
+
+=item $hub = $stack->new_hub(%params, class => $class)
+
+This will generate a new hub and push it to the top of the stack. Optionally
+you can provide arguments that will be passed into the constructor for the
+L<Test2::Hub> object.
+
+If you specify the C<< 'class' => $class >> argument, the new hub will be an
+instance of the specified class.
+
+Unless your parameters specify C<'formatter'> or C<'ipc'> arguments, the
+formatter and IPC instance will be inherited from the current top hub. You can
+set the parameters to C<undef> to avoid having a formatter or IPC instance.
+
+If there is no top hub, and you do not ask to leave IPC and formatter undef,
+then a new formatter will be created, and the IPC instance from
+L<Test2::API> will be used.
+
+=item $hub = $stack->top()
+
+This will return the top hub from the stack. If there is no top hub yet this
+will create it.
+
+=item $hub = $stack->peek()
+
+This will return the top hub from the stack. If there is no top hub yet this
+will return undef.
+
+=item $stack->cull
+
+This will call C<< $hub->cull >> on all hubs in the stack.
+
+=item @hubs = $stack->all
+
+This will return all the hubs in the stack as a list.
+
+=item $stack->clear
+
+This will completely remove all hubs from the stack. Normally you do not want
+to do this, but there are a few valid reasons for it.
+
+=item $stack->push($hub)
+
+This will push the new hub onto the stack.
+
+=item $stack->pop($hub)
+
+This will pop a hub from the stack, if the hub at the top of the stack does not
+match the hub you expect (passed in as an argument) it will throw an exception.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event.pm b/Master/tlpkg/tlperl/lib/Test2/Event.pm
new file mode 100755
index 00000000000..a59a366081d
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event.pm
@@ -0,0 +1,254 @@
+package Test2::Event;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+use Test2::Util::HashBase qw/trace nested in_subtest subtest_id/;
+use Test2::Util::ExternalMeta qw/meta get_meta set_meta delete_meta/;
+use Test2::Util qw(pkg_to_file);
+use Test2::Util::Trace;
+
+sub causes_fail { 0 }
+sub increments_count { 0 }
+sub diagnostics { 0 }
+sub no_display { 0 }
+
+sub callback { }
+
+sub terminate { () }
+sub global { () }
+sub sets_plan { () }
+
+sub summary { ref($_[0]) }
+
+sub from_json {
+ my $class = shift;
+ my %p = @_;
+
+ my $event_pkg = delete $p{__PACKAGE__};
+ require(pkg_to_file($event_pkg));
+
+ if (exists $p{trace}) {
+ $p{trace} = Test2::Util::Trace->from_json(%{$p{trace}});
+ }
+
+ if (exists $p{subevents}) {
+ my @subevents;
+ for my $subevent (@{delete $p{subevents} || []}) {
+ push @subevents, Test2::Event->from_json(%$subevent);
+ }
+ $p{subevents} = \@subevents;
+ }
+
+ return $event_pkg->new(%p);
+}
+
+sub TO_JSON {
+ my $self = shift;
+ return {%$self, __PACKAGE__ => ref $self};
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event - Base class for events
+
+=head1 DESCRIPTION
+
+Base class for all event objects that get passed through
+L<Test2>.
+
+=head1 SYNOPSIS
+
+ package Test2::Event::MyEvent;
+ use strict;
+ use warnings;
+
+ # This will make our class an event subclass (required)
+ use base 'Test2::Event';
+
+ # Add some accessors (optional)
+ # You are not obligated to use HashBase, you can use any object tool you
+ # want, or roll your own accessors.
+ use Test2::Util::HashBase qw/foo bar baz/;
+
+ # Chance to initialize some defaults
+ sub init {
+ my $self = shift;
+ # no other args in @_
+
+ $self->set_foo('xxx') unless defined $self->foo;
+
+ ...
+ }
+
+ 1;
+
+=head1 METHODS
+
+=over 4
+
+=item $trace = $e->trace
+
+Get a snapshot of the L<Test2::Util::Trace> as it was when this event was
+generated
+
+=item $bool = $e->causes_fail
+
+Returns true if this event should result in a test failure. In general this
+should be false.
+
+=item $bool = $e->increments_count
+
+Should be true if this event should result in a test count increment.
+
+=item $e->callback($hub)
+
+If your event needs to have extra effects on the L<Test2::Hub> you can override
+this method.
+
+This is called B<BEFORE> your event is passed to the formatter.
+
+=item $call = $e->created
+
+Get the C<caller()> details from when the event was generated. This is usually
+inside a tools package. This is typically used for debugging.
+
+=item $num = $e->nested
+
+If this event is nested inside of other events, this should be the depth of
+nesting. (This is mainly for subtests)
+
+=item $bool = $e->global
+
+Set this to true if your event is global, that is ALL threads and processes
+should see it no matter when or where it is generated. This is not a common
+thing to want, it is used by bail-out and skip_all to end testing.
+
+=item $code = $e->terminate
+
+This is called B<AFTER> your event has been passed to the formatter. This
+should normally return undef, only change this if your event should cause the
+test to exit immediately.
+
+If you want this event to cause the test to exit you should return the exit
+code here. Exit code of 0 means exit success, any other integer means exit with
+failure.
+
+This is used by L<Test2::Event::Plan> to exit 0 when the plan is
+'skip_all'. This is also used by L<Test2::Event:Bail> to force the test
+to exit with a failure.
+
+This is called after the event has been sent to the formatter in order to
+ensure the event is seen and understood.
+
+=item $todo = $e->todo
+
+=item $e->set_todo($todo)
+
+Get/Set the todo reason on the event. Any value other than C<undef> makes the
+event 'TODO'.
+
+Not all events make use of this field, but they can all have it set/cleared.
+
+=item $bool = $e->diag_todo
+
+=item $e->diag_todo($todo)
+
+True if this event should be considered 'TODO' for diagnostics purposes. This
+essentially means that any message that would go to STDERR will go to STDOUT
+instead so that a harness will hide it outside of verbose mode.
+
+=item $msg = $e->summary
+
+This is intended to be a human readable summary of the event. This should
+ideally only be one line long, but you can use multiple lines if necessary. This
+is intended for human consumption. You do not need to make it easy for machines
+to understand.
+
+The default is to simply return the event package name.
+
+=item ($count, $directive, $reason) = $e->sets_plan()
+
+Check if this event sets the testing plan. It will return an empty list if it
+does not. If it does set the plan it will return a list of 1 to 3 items in
+order: Expected Test Count, Test Directive, Reason for directive.
+
+=item $bool = $e->diagnostics
+
+True if the event contains diagnostics info. This is useful because a
+non-verbose harness may choose to hide events that are not in this category.
+Some formatters may choose to send these to STDERR instead of STDOUT to ensure
+they are seen.
+
+=item $bool = $e->no_display
+
+False by default. This will return true on events that should not be displayed
+by formatters.
+
+=item $id = $e->in_subtest
+
+If the event is inside a subtest this should have the subtest ID.
+
+=item $id = $e->subtest_id
+
+If the event is a final subtest event, this should contain the subtest ID.
+
+=item $hashref = $e->TO_JSON
+
+This returns a hashref suitable for passing to the C<< Test2::Event->from_json
+>> constructor. It is intended for use with the L<JSON> family of modules,
+which will look for a C<TO_JSON> method when C<convert_blessed> is true.
+
+=item $e = Test2::Event->from_json(%$hashref)
+
+Given the hash of data returned by C<< $e->TO_JSON >>, this method returns a
+new event object of the appropriate subclass.
+
+=back
+
+=head1 THIRD PARTY META-DATA
+
+This object consumes L<Test2::Util::ExternalMeta> which provides a consistent
+way for you to attach meta-data to instances of this class. This is useful for
+tools, plugins, and other extensions.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Bail.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Bail.pm
new file mode 100755
index 00000000000..0284aecd00f
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Bail.pm
@@ -0,0 +1,102 @@
+package Test2::Event::Bail;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw{reason};
+
+sub callback {
+ my $self = shift;
+ my ($hub) = @_;
+
+ $hub->set_bailed_out($self);
+}
+
+# Make sure the tests terminate
+sub terminate { 255 };
+
+sub global { 1 };
+
+sub causes_fail { 1 }
+
+sub summary {
+ my $self = shift;
+ return "Bail out! " . $self->{+REASON}
+ if $self->{+REASON};
+
+ return "Bail out!";
+}
+
+sub diagnostics { 1 }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Bail - Bailout!
+
+=head1 DESCRIPTION
+
+The bailout event is generated when things go horribly wrong and you need to
+halt all testing in the current file.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Bail;
+
+ my $ctx = context();
+ my $event = $ctx->bail('Stuff is broken');
+
+=head1 METHODS
+
+Inherits from L<Test2::Event>. Also defines:
+
+=over 4
+
+=item $reason = $e->reason
+
+The reason for the bailout.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Diag.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Diag.pm
new file mode 100755
index 00000000000..9d2ba88d6e3
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Diag.pm
@@ -0,0 +1,83 @@
+package Test2::Event::Diag;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw/message/;
+
+sub init {
+ $_[0]->{+MESSAGE} = 'undef' unless defined $_[0]->{+MESSAGE};
+}
+
+sub summary { $_[0]->{+MESSAGE} }
+
+sub diagnostics { 1 }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Diag - Diag event type
+
+=head1 DESCRIPTION
+
+Diagnostics messages, typically rendered to STDERR.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Diag;
+
+ my $ctx = context();
+ my $event = $ctx->diag($message);
+
+=head1 ACCESSORS
+
+=over 4
+
+=item $diag->message
+
+The message for the diag.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Encoding.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Encoding.pm
new file mode 100755
index 00000000000..52af3f2dc51
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Encoding.pm
@@ -0,0 +1,86 @@
+package Test2::Event::Encoding;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw/encoding/;
+
+sub init {
+ my $self = shift;
+ defined $self->{+ENCODING} or $self->trace->throw("'encoding' is a required attribute");
+}
+
+sub summary { 'Encoding set to ' . $_[0]->{+ENCODING} }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Encoding - Set the encoding for the output stream
+
+=head1 DESCRIPTION
+
+The encoding event is generated when a test file wants to specify the encoding
+to be used when formatting its output. This event is intended to be produced
+by formatter classes and used for interpreting test names, message contents,
+etc.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Encoding;
+
+ my $ctx = context();
+ my $event = $ctx->send_event('Encoding', encoding => 'UTF-8');
+
+=head1 METHODS
+
+Inherits from L<Test2::Event>. Also defines:
+
+=over 4
+
+=item $encoding = $e->encoding
+
+The encoding being specified.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Exception.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Exception.pm
new file mode 100755
index 00000000000..a10ca6756c0
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Exception.pm
@@ -0,0 +1,88 @@
+package Test2::Event::Exception;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw{error};
+
+sub causes_fail { 1 }
+
+sub summary {
+ my $self = shift;
+ chomp(my $msg = "Exception: " . $self->{+ERROR});
+ return $msg;
+}
+
+sub diagnostics { 1 }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Exception - Exception event
+
+=head1 DESCRIPTION
+
+An exception event will display to STDERR, and will prevent the overall test
+file from passing.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Exception;
+
+ my $ctx = context();
+ my $event = $ctx->send_event('Exception', error => 'Stuff is broken');
+
+=head1 METHODS
+
+Inherits from L<Test2::Event>. Also defines:
+
+=over 4
+
+=item $reason = $e->error
+
+The reason for the exception.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Generic.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Generic.pm
new file mode 100755
index 00000000000..ad00f5a963d
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Generic.pm
@@ -0,0 +1,263 @@
+package Test2::Event::Generic;
+use strict;
+use warnings;
+
+use Carp qw/croak/;
+use Scalar::Util qw/reftype/;
+
+our $VERSION = '1.302073';
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase;
+
+my @FIELDS = qw{
+ causes_fail increments_count diagnostics no_display callback terminate
+ global sets_plan summary
+};
+my %DEFAULTS = (
+ causes_fail => 0,
+ increments_count => 0,
+ diagnostics => 0,
+ no_display => 0,
+);
+
+sub init {
+ my $self = shift;
+
+ for my $field (@FIELDS) {
+ my $val = defined $self->{$field} ? delete $self->{$field} : $DEFAULTS{$field};
+ next unless defined $val;
+
+ my $set = "set_$field";
+ $self->$set($val);
+ }
+}
+
+for my $field (@FIELDS) {
+ no strict 'refs';
+ my $stash = \%{__PACKAGE__ . "::"};
+
+ *$field = sub { exists $_[0]->{$field} ? $_[0]->{$field} : () }
+ unless defined $stash->{$field}
+ && defined *{$stash->{$field}}{CODE};
+
+ *{"set_$field"} = sub { $_[0]->{$field} = $_[1] }
+ unless defined $stash->{"set_$field"}
+ && defined *{$stash->{"set_$field"}}{CODE};
+}
+
+sub summary {
+ my $self = shift;
+ return $self->{summary} if defined $self->{summary};
+ $self->SUPER::summary();
+}
+
+sub sets_plan {
+ my $self = shift;
+ return unless $self->{sets_plan};
+ return @{$self->{sets_plan}};
+}
+
+sub callback {
+ my $self = shift;
+ my $cb = $self->{callback} || return;
+ $self->$cb(@_);
+}
+
+sub set_global {
+ my $self = shift;
+ my ($bool) = @_;
+
+ if(!defined $bool) {
+ delete $self->{global};
+ return undef;
+ }
+
+ $self->{global} = $bool;
+}
+
+sub set_callback {
+ my $self = shift;
+ my ($cb) = @_;
+
+ if(!defined $cb) {
+ delete $self->{callback};
+ return undef;
+ }
+
+ croak "callback must be a code reference"
+ unless ref($cb) && reftype($cb) eq 'CODE';
+
+ $self->{callback} = $cb;
+}
+
+sub set_terminate {
+ my $self = shift;
+ my ($exit) = @_;
+
+ if(!defined $exit) {
+ delete $self->{terminate};
+ return undef;
+ }
+
+ croak "terminate must be a positive integer"
+ unless $exit =~ m/^\d+$/;
+
+ $self->{terminate} = $exit;
+}
+
+sub set_sets_plan {
+ my $self = shift;
+ my ($plan) = @_;
+
+ if(!defined $plan) {
+ delete $self->{sets_plan};
+ return undef;
+ }
+
+ croak "'sets_plan' must be an array reference"
+ unless ref($plan) && reftype($plan) eq 'ARRAY';
+
+ $self->{sets_plan} = $plan;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Generic - Generic event type.
+
+=head1 DESCRIPTION
+
+This is a generic event that lets you customize all fields in the event API.
+This is useful if you have need for a custom event that does not make sense as
+a published reusable event subclass.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+
+ sub send_custom_fail {
+ my $ctx = shift;
+
+ $ctx->send_event('Generic', causes_fail => 1, summary => 'The sky is falling');
+
+ $ctx->release;
+ }
+
+ send_custom_fail();
+
+=head1 METHODS
+
+=over 4
+
+=item $e->callback($hub)
+
+Call the custom callback if one is set, otherwise this does nothing.
+
+=item $e->set_callback(sub { ... })
+
+Set the custom callback. The custom callback must be a coderef. The first
+argument to your callback will be the event itself, the second will be the
+L<Test2::Event::Hub> that is using the callback.
+
+=item $bool = $e->causes_fail
+
+=item $e->set_causes_fail($bool)
+
+Get/Set the C<causes_fail> attribute. This defaults to C<0>.
+
+=item $bool = $e->diagnostics
+
+=item $e->set_diagnostics($bool)
+
+Get/Set the C<diagnostics> attribute. This defaults to C<0>.
+
+=item $bool_or_undef = $e->global
+
+=item @bool_or_empty = $e->global
+
+=item $e->set_global($bool_or_undef)
+
+Get/Set the C<diagnostics> attribute. This defaults to an empty list which is
+undef in scalar context.
+
+=item $bool = $e->increments_count
+
+=item $e->set_increments_count($bool)
+
+Get/Set the C<increments_count> attribute. This defaults to C<0>.
+
+=item $bool = $e->no_display
+
+=item $e->set_no_display($bool)
+
+Get/Set the C<no_display> attribute. This defaults to C<0>.
+
+=item @plan = $e->sets_plan
+
+Get the plan if this event sets one. The plan is a list of up to 3 items:
+C<($count, $directive, $reason)>. C<$count> must be defined, the others may be
+undef, or may not exist at all.
+
+=item $e->set_sets_plan(\@plan)
+
+Set the plan. You must pass in an arrayref with up to 3 elements.
+
+=item $summary = $e->summary
+
+=item $e->set_summary($summary_or_undef)
+
+Get/Set the summary. This will default to the event package
+C<'Test2::Event::Generic'>. You can set it to any value. Setting this to
+C<undef> will reset it to the default.
+
+=item $int_or_undef = $e->terminate
+
+=item @int_or_empty = $e->terminate
+
+=item $e->set_terminate($int_or_undef)
+
+This will get/set the C<terminate> attribute. This defaults to undef in scalar
+context, or an empty list in list context. Setting this to undef will clear it
+completely. This must be set to a positive integer (0 or larger).
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Info.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Info.pm
new file mode 100755
index 00000000000..51c4bbcd317
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Info.pm
@@ -0,0 +1,127 @@
+package Test2::Event::Info;
+use strict;
+use warnings;
+
+use Scalar::Util qw/blessed/;
+
+our $VERSION = '1.302073';
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw/diagnostics renderer/;
+
+sub init {
+ my $self = shift;
+
+ my $r = $self->{+RENDERER} or $self->trace->throw("'renderer' is a required attribute");
+
+ return if ref($r) eq 'CODE';
+ return if blessed($r) && $r->can('render');
+
+ $self->trace->throw("renderer '$r' is not a valid renderer, must be a coderef or an object implementing the 'render()' method");
+}
+
+sub render {
+ my $self = shift;
+ my ($fmt) = @_;
+
+ $fmt ||= 'text';
+
+ my $r = $self->{+RENDERER};
+
+ return $r->($fmt) if ref($r) eq 'CODE';
+ return $r->render($fmt);
+}
+
+sub summary { $_[0]->render($_[1] || 'text') }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Info - Info event base class
+
+=head1 DESCRIPTION
+
+Successor for note and diag events. This event base class supports multiple
+formats. This event makes it possible to send additional information such as
+color and highlighting to the harness.
+
+=head1 SYNOPSIS
+
+ use Test2::API::Context qw/context/;
+
+ $ctx->info($obj, diagnostics => $bool);
+
+=head1 FORMATS
+
+Format will be passed in to C<render()> and C<summary()> as a string. Any
+string is considered valid, if your event does not recognize the format it
+should fallback to 'text'.
+
+=over 4
+
+=item 'text'
+
+Plain and ordinary text.
+
+=item 'ansi'
+
+Text that may include ansi sequences such as colors.
+
+=item 'html'
+
+HTML formatted text.
+
+=back
+
+=head1 ACCESSORS
+
+=over 4
+
+=item $bool = $info->diagnostics()
+
+=item $info->set_diagnostics($bool)
+
+True if this info is essential for diagnostics. The implication is that
+diagnostics will got to STDERR while everything else goes to STDOUT, but that
+is formatter/harness specific.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Note.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Note.pm
new file mode 100755
index 00000000000..b9a2ded1e13
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Note.pm
@@ -0,0 +1,81 @@
+package Test2::Event::Note;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw/message/;
+
+sub init {
+ $_[0]->{+MESSAGE} = 'undef' unless defined $_[0]->{+MESSAGE};
+}
+
+sub summary { $_[0]->{+MESSAGE} }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Note - Note event type
+
+=head1 DESCRIPTION
+
+Notes, typically rendered to STDOUT.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Note;
+
+ my $ctx = context();
+ my $event = $ctx->Note($message);
+
+=head1 ACCESSORS
+
+=over 4
+
+=item $note->message
+
+The message for the note.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Ok.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Ok.pm
new file mode 100755
index 00000000000..456d6bbcf3c
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Ok.pm
@@ -0,0 +1,140 @@
+package Test2::Event::Ok;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw{
+ pass effective_pass name todo
+};
+
+sub init {
+ my $self = shift;
+
+ # Do not store objects here, only true or false
+ $self->{+PASS} = $self->{+PASS} ? 1 : 0;
+ $self->{+EFFECTIVE_PASS} = $self->{+PASS} || (defined($self->{+TODO}) ? 1 : 0);
+}
+
+{
+ no warnings 'redefine';
+ sub set_todo {
+ my $self = shift;
+ my ($todo) = @_;
+ $self->{+TODO} = $todo;
+ $self->{+EFFECTIVE_PASS} = defined($todo) ? 1 : $self->{+PASS};
+ }
+}
+
+sub increments_count { 1 };
+
+sub causes_fail { !$_[0]->{+EFFECTIVE_PASS} }
+
+sub summary {
+ my $self = shift;
+
+ my $name = $self->{+NAME} || "Nameless Assertion";
+
+ my $todo = $self->{+TODO};
+ if ($todo) {
+ $name .= " (TODO: $todo)";
+ }
+ elsif (defined $todo) {
+ $name .= " (TODO)"
+ }
+
+ return $name;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Ok - Ok event type
+
+=head1 DESCRIPTION
+
+Ok events are generated whenever you run a test that produces a result.
+Examples are C<ok()>, and C<is()>.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Ok;
+
+ my $ctx = context();
+ my $event = $ctx->ok($bool, $name, \@diag);
+
+or:
+
+ my $ctx = context();
+ my $event = $ctx->send_event(
+ 'Ok',
+ pass => $bool,
+ name => $name,
+ );
+
+=head1 ACCESSORS
+
+=over 4
+
+=item $rb = $e->pass
+
+The original true/false value of whatever was passed into the event (but
+reduced down to 1 or 0).
+
+=item $name = $e->name
+
+Name of the test.
+
+=item $b = $e->effective_pass
+
+This is the true/false value of the test after TODO and similar modifiers are
+taken into account.
+
+=item $b = $e->allow_bad_name
+
+This relaxes the test name checks such that they allow characters that can
+confuse a TAP parser.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Plan.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Plan.pm
new file mode 100755
index 00000000000..94b3030c349
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Plan.pm
@@ -0,0 +1,160 @@
+package Test2::Event::Plan;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw{max directive reason};
+
+use Carp qw/confess/;
+
+my %ALLOWED = (
+ 'SKIP' => 1,
+ 'NO PLAN' => 1,
+);
+
+sub init {
+ if ($_[0]->{+DIRECTIVE}) {
+ $_[0]->{+DIRECTIVE} = 'SKIP' if $_[0]->{+DIRECTIVE} eq 'skip_all';
+ $_[0]->{+DIRECTIVE} = 'NO PLAN' if $_[0]->{+DIRECTIVE} eq 'no_plan';
+
+ confess "'" . $_[0]->{+DIRECTIVE} . "' is not a valid plan directive"
+ unless $ALLOWED{$_[0]->{+DIRECTIVE}};
+ }
+ else {
+ confess "Cannot have a reason without a directive!"
+ if defined $_[0]->{+REASON};
+
+ confess "No number of tests specified"
+ unless defined $_[0]->{+MAX};
+
+ confess "Plan test count '" . $_[0]->{+MAX} . "' does not appear to be a valid positive integer"
+ unless $_[0]->{+MAX} =~ m/^\d+$/;
+
+ $_[0]->{+DIRECTIVE} = '';
+ }
+}
+
+sub sets_plan {
+ my $self = shift;
+ return (
+ $self->{+MAX},
+ $self->{+DIRECTIVE},
+ $self->{+REASON},
+ );
+}
+
+sub callback {
+ my $self = shift;
+ my ($hub) = @_;
+
+ $hub->plan($self->{+DIRECTIVE} || $self->{+MAX});
+
+ return unless $self->{+DIRECTIVE};
+
+ $hub->set_skip_reason($self->{+REASON} || 1) if $self->{+DIRECTIVE} eq 'SKIP';
+}
+
+sub terminate {
+ my $self = shift;
+ # On skip_all we want to terminate the hub
+ return 0 if $self->{+DIRECTIVE} && $self->{+DIRECTIVE} eq 'SKIP';
+ return undef;
+}
+
+sub summary {
+ my $self = shift;
+ my $max = $self->{+MAX};
+ my $directive = $self->{+DIRECTIVE};
+ my $reason = $self->{+REASON};
+
+ return "Plan is $max assertions"
+ if $max || !$directive;
+
+ return "Plan is '$directive', $reason"
+ if $reason;
+
+ return "Plan is '$directive'";
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Plan - The event of a plan
+
+=head1 DESCRIPTION
+
+Plan events are fired off whenever a plan is declared, done testing is called,
+or a subtext completes.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Plan;
+
+ my $ctx = context();
+
+ # Plan for 10 tests to run
+ my $event = $ctx->plan(10);
+
+ # Plan to skip all tests (will exit 0)
+ $ctx->plan(0, skip_all => "These tests need to be skipped");
+
+=head1 ACCESSORS
+
+=over 4
+
+=item $num = $plan->max
+
+Get the number of expected tests
+
+=item $dir = $plan->directive
+
+Get the directive (such as TODO, skip_all, or no_plan).
+
+=item $reason = $plan->reason
+
+Get the reason for the directive.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Skip.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Skip.pm
new file mode 100755
index 00000000000..7cca06165b9
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Skip.pm
@@ -0,0 +1,108 @@
+package Test2::Event::Skip;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
+use Test2::Util::HashBase qw{reason};
+
+sub init {
+ my $self = shift;
+ $self->SUPER::init;
+ $self->{+EFFECTIVE_PASS} = 1;
+}
+
+sub causes_fail { 0 }
+
+sub summary {
+ my $self = shift;
+ my $out = $self->SUPER::summary(@_);
+
+ if (my $reason = $self->reason) {
+ $out .= " (SKIP: $reason)";
+ }
+ else {
+ $out .= " (SKIP)";
+ }
+
+ return $out;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Skip - Skip event type
+
+=head1 DESCRIPTION
+
+Skip events bump test counts just like L<Test2::Event::Ok> events, but
+they can never fail.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Skip;
+
+ my $ctx = context();
+ my $event = $ctx->skip($name, $reason);
+
+or:
+
+ my $ctx = context();
+ my $event = $ctx->send_event(
+ 'Skip',
+ name => $name,
+ reason => $reason,
+ );
+
+=head1 ACCESSORS
+
+=over 4
+
+=item $reason = $e->reason
+
+The original true/false value of whatever was passed into the event (but
+reduced down to 1 or 0).
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<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>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Subtest.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Subtest.pm
new file mode 100755
index 00000000000..2b3c773bf67
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Subtest.pm
@@ -0,0 +1,131 @@
+package Test2::Event::Subtest;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event::Ok; our @ISA = qw(Test2::Event::Ok) }
+use Test2::Util::HashBase qw{subevents buffered subtest_id};
+
+sub init {
+ my $self = shift;
+ $self->SUPER::init();
+ $self->{+SUBEVENTS} ||= [];
+ if ($self->{+EFFECTIVE_PASS}) {
+ $_->set_effective_pass(1) for grep { $_->can('effective_pass') } @{$self->{+SUBEVENTS}};
+ }
+}
+
+{
+ no warnings 'redefine';
+
+ sub set_subevents {
+ my $self = shift;
+ my @subevents = @_;
+
+ if ($self->{+EFFECTIVE_PASS}) {
+ $_->set_effective_pass(1) for grep { $_->can('effective_pass') } @subevents;
+ }
+
+ $self->{+SUBEVENTS} = \@subevents;
+ }
+
+ sub set_effective_pass {
+ my $self = shift;
+ my ($pass) = @_;
+
+ if ($pass) {
+ $_->set_effective_pass(1) for grep { $_->can('effective_pass') } @{$self->{+SUBEVENTS}};
+ }
+ elsif ($self->{+EFFECTIVE_PASS} && !$pass) {
+ for my $s (grep { $_->can('effective_pass') } @{$self->{+SUBEVENTS}}) {
+ $_->set_effective_pass(0) unless $s->can('todo') && defined $s->todo;
+ }
+ }
+
+ $self->{+EFFECTIVE_PASS} = $pass;
+ }
+}
+
+sub summary {
+ my $self = shift;
+
+ my $name = $self->{+NAME} || "Nameless Subtest";
+
+ my $todo = $self->{+TODO};
+ if ($todo) {
+ $name .= " (TODO: $todo)";
+ }
+ elsif (defined $todo) {
+ $name .= " (TODO)"
+ }
+
+ return $name;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Subtest - Event for subtest types
+
+=head1 DESCRIPTION
+
+This class represents a subtest. This class is a subclass of
+L<Test2::Event::Ok>.
+
+=head1 ACCESSORS
+
+This class inherits from L<Test2::Event::Ok>.
+
+=over 4
+
+=item $arrayref = $e->subevents
+
+Returns the arrayref containing all the events from the subtest
+
+=item $bool = $e->buffered
+
+True if the subtest is buffered, that is all subevents render at once. If this
+is false it means all subevents render as they are produced.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm b/Master/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm
new file mode 100755
index 00000000000..b96a25adde4
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/TAP/Version.pm
@@ -0,0 +1,83 @@
+package Test2::Event::TAP::Version;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+use Test2::Util::HashBase qw/version/;
+
+sub init {
+ my $self = shift;
+ defined $self->{+VERSION} or $self->trace->throw("'version' is a required attribute");
+}
+
+sub summary { 'TAP version ' . $_[0]->{+VERSION} }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::TAP::Version - Event for TAP version.
+
+=head1 DESCRIPTION
+
+This event is used if a TAP formatter wishes to set a version.
+
+=head1 SYNOPSIS
+
+ use Test2::API qw/context/;
+ use Test2::Event::Encoding;
+
+ my $ctx = context();
+ my $event = $ctx->send_event('TAP::Version', version => 42);
+
+=head1 METHODS
+
+Inherits from L<Test2::Event>. Also defines:
+
+=over 4
+
+=item $version = $e->version
+
+The TAP version being parsed.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Event/Waiting.pm b/Master/tlpkg/tlperl/lib/Test2/Event/Waiting.pm
new file mode 100755
index 00000000000..fa87c6e8dd7
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Event/Waiting.pm
@@ -0,0 +1,61 @@
+package Test2::Event::Waiting;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Event; our @ISA = qw(Test2::Event) }
+
+sub global { 1 };
+
+sub summary { "IPC is waiting for children to finish..." }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Event::Waiting - Tell all procs/threads it is time to be done
+
+=head1 DESCRIPTION
+
+This event has no data of its own. This event is sent out by the IPC system
+when the main process/thread is ready to end.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Formatter.pm b/Master/tlpkg/tlperl/lib/Test2/Formatter.pm
new file mode 100755
index 00000000000..945d545dd65
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Formatter.pm
@@ -0,0 +1,128 @@
+package Test2::Formatter;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+my %ADDED;
+sub import {
+ my $class = shift;
+ return if $class eq __PACKAGE__;
+ return if $ADDED{$class}++;
+ require Test2::API;
+ Test2::API::test2_formatter_add($class);
+}
+
+sub hide_buffered { 1 }
+
+sub terminate { }
+
+sub finalize { }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Formatter - Namespace for formatters.
+
+=head1 DESCRIPTION
+
+This is the namespace for formatters. This is an empty package.
+
+=head1 CREATING FORMATTERS
+
+A formatter is any package or object with a C<write($event, $num)> method.
+
+ package Test2::Formatter::Foo;
+ use strict;
+ use warnings;
+
+ sub write {
+ my $self_or_class = shift;
+ my ($event, $assert_num) = @_;
+ ...
+ }
+
+ sub hide_buffered { 1 }
+
+ sub terminate { }
+
+ sub finalize { }
+
+ 1;
+
+The C<write> method is a method, so it either gets a class or instance. The two
+arguments are the C<$event> object it should record, and the C<$assert_num>
+which is the number of the current assertion (ok), or the last assertion if
+this even is not itself an assertion. The assertion number may be any integer 0
+or greater, and may be undefined in some cases.
+
+The C<hide_buffered()> method must return a boolean. This is used to tell
+buffered subtests whether or not to send it events as they are being buffered.
+See L<Test2::API/"run_subtest(...)"> for more information.
+
+The C<terminate> and C<finalize> methods are optional methods called that you
+can implement if the format you're generating needs to handle these cases, for
+example if you are generating XML and need close open tags.
+
+The C<terminate> method is called when an event's C<terminate> method returns
+true, for example when a L<Test2::Event::Plan> has a C<'skip_all'> plan, or
+when a L<Test2::Event::Bail> event is sent. The C<terminate> method is passed
+a single argument, the L<Test2::Event> object which triggered the terminate.
+
+The C<finalize> method is always the last thing called on the formatter, I<<
+except when C<terminate> is called for a Bail event >>. It is passed the
+following arguments:
+
+=over 4
+
+=item * The number of tests that were planned
+
+=item * The number of tests actually seen
+
+=item * The number of tests which failed
+
+=item * A boolean indicating whether or not the test suite passed
+
+=item * A boolean indicating whether or not this call is for a subtest
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm b/Master/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm
new file mode 100755
index 00000000000..680095cfede
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Formatter/TAP.pm
@@ -0,0 +1,538 @@
+package Test2::Formatter::TAP;
+use strict;
+use warnings;
+require PerlIO;
+
+our $VERSION = '1.302073';
+
+use Test2::Util::HashBase qw{
+ no_numbers handles _encoding
+};
+
+sub OUT_STD() { 0 }
+sub OUT_ERR() { 1 }
+
+use Carp qw/croak/;
+
+BEGIN { require Test2::Formatter; our @ISA = qw(Test2::Formatter) }
+
+my %CONVERTERS = (
+ 'Test2::Event::Ok' => 'event_ok',
+ 'Test2::Event::Skip' => 'event_skip',
+ 'Test2::Event::Note' => 'event_note',
+ 'Test2::Event::Diag' => 'event_diag',
+ 'Test2::Event::Bail' => 'event_bail',
+ 'Test2::Event::Exception' => 'event_exception',
+ 'Test2::Event::Subtest' => 'event_subtest',
+ 'Test2::Event::Plan' => 'event_plan',
+ 'Test2::Event::TAP::Version' => 'event_version',
+);
+
+# Initial list of converters are safe for direct hash access cause we control them.
+my %SAFE_TO_ACCESS_HASH = %CONVERTERS;
+
+sub register_event {
+ my $class = shift;
+ my ($type, $convert) = @_;
+ croak "Event type is a required argument" unless $type;
+ croak "Event type '$type' already registered" if $CONVERTERS{$type};
+ croak "The second argument to register_event() must be a code reference or method name"
+ unless $convert && (ref($convert) eq 'CODE' || $class->can($convert));
+ $CONVERTERS{$type} = $convert;
+}
+
+_autoflush(\*STDOUT);
+_autoflush(\*STDERR);
+
+sub init {
+ my $self = shift;
+
+ $self->{+HANDLES} ||= $self->_open_handles;
+ if(my $enc = delete $self->{encoding}) {
+ $self->encoding($enc);
+ }
+}
+
+sub hide_buffered { 1 }
+
+sub encoding {
+ my $self = shift;
+
+ if (@_) {
+ my ($enc) = @_;
+ my $handles = $self->{+HANDLES};
+
+ # https://rt.perl.org/Public/Bug/Display.html?id=31923
+ # If utf8 is requested we use ':utf8' instead of ':encoding(utf8)' in
+ # order to avoid the thread segfault.
+ if ($enc =~ m/^utf-?8$/i) {
+ binmode($_, ":utf8") for @$handles;
+ }
+ else {
+ binmode($_, ":encoding($enc)") for @$handles;
+ }
+ $self->{+_ENCODING} = $enc;
+ }
+
+ return $self->{+_ENCODING};
+}
+
+if ($^C) {
+ no warnings 'redefine';
+ *write = sub {};
+}
+sub write {
+ my ($self, $e, $num) = @_;
+
+ my $type = ref($e);
+
+ my $converter = $CONVERTERS{$type} || 'event_other';
+ my @tap = $self->$converter($e, $self->{+NO_NUMBERS} ? undef : $num) or return;
+
+ my $handles = $self->{+HANDLES};
+ my $nesting = ($SAFE_TO_ACCESS_HASH{$type} ? $e->{nested} : $e->nested) || 0;
+ my $indent = ' ' x $nesting;
+
+ # Local is expensive! Only do it if we really need to.
+ local($\, $,) = (undef, '') if $\ || $,;
+ for my $set (@tap) {
+ no warnings 'uninitialized';
+ my ($hid, $msg) = @$set;
+ next unless $msg;
+ my $io = $handles->[$hid] or next;
+
+ $msg =~ s/^/$indent/mg if $nesting;
+ print $io $msg;
+ }
+}
+
+sub _open_handles {
+ my $self = shift;
+
+ my %seen;
+ open(my $out, '>&', STDOUT) or die "Can't dup STDOUT: $!";
+ binmode($out, join(":", "", "raw", grep { $_ ne 'unix' and !$seen{$_}++ } PerlIO::get_layers(STDOUT)));
+
+ %seen = ();
+ open(my $err, '>&', STDERR) or die "Can't dup STDERR: $!";
+ binmode($err, join(":", "", "raw", grep { $_ ne 'unix' and !$seen{$_}++ } PerlIO::get_layers(STDERR)));
+
+ _autoflush($out);
+ _autoflush($err);
+
+ return [$out, $err];
+}
+
+sub _autoflush {
+ my($fh) = pop;
+ my $old_fh = select $fh;
+ $| = 1;
+ select $old_fh;
+}
+
+sub event_tap {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ my $converter = $CONVERTERS{ref($e)} or return;
+
+ $num = undef if $self->{+NO_NUMBERS};
+
+ return $self->$converter($e, $num);
+}
+
+sub event_ok {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ # We use direct hash access for performance. OK events are so common we
+ # need this to be fast.
+ my ($name, $todo) = @{$e}{qw/name todo/};
+ my $in_todo = defined($todo);
+
+ my $out = "";
+ $out .= "not " unless $e->{pass};
+ $out .= "ok";
+ $out .= " $num" if defined($num);
+
+ # The regex form is ~250ms, the index form is ~50ms
+ my @extra;
+ defined($name) && (
+ (index($name, "\n") != -1 && (($name, @extra) = split(/\n\r?/, $name, -1))),
+ ((index($name, "#" ) != -1 || substr($name, -1) eq '\\') && (($name =~ s|\\|\\\\|g), ($name =~ s|#|\\#|g)))
+ );
+
+ my $space = @extra ? ' ' x (length($out) + 2) : '';
+
+ $out .= " - $name" if defined $name;
+ $out .= " # TODO" if $in_todo;
+ $out .= " $todo" if defined($todo) && length($todo);
+
+ # The primary line of TAP, if the test passed this is all we need.
+ return([OUT_STD, "$out\n"]) unless @extra;
+
+ return $self->event_ok_multiline($out, $space, @extra);
+}
+
+sub event_ok_multiline {
+ my $self = shift;
+ my ($out, $space, @extra) = @_;
+
+ return(
+ [OUT_STD, "$out\n"],
+ map {[OUT_STD, "#${space}$_\n"]} @extra,
+ );
+}
+
+sub event_skip {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ my $name = $e->name;
+ my $reason = $e->reason;
+ my $todo = $e->todo;
+
+ my $out = "";
+ $out .= "not " unless $e->{pass};
+ $out .= "ok";
+ $out .= " $num" if defined $num;
+ $out .= " - $name" if $name;
+ if (defined($todo)) {
+ $out .= " # TODO & SKIP"
+ }
+ else {
+ $out .= " # skip";
+ }
+ $out .= " $reason" if defined($reason) && length($reason);
+
+ return([OUT_STD, "$out\n"]);
+}
+
+sub event_note {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ chomp(my $msg = $e->message);
+ $msg =~ s/^/# /;
+ $msg =~ s/\n/\n# /g;
+
+ return [OUT_STD, "$msg\n"];
+}
+
+sub event_diag {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ chomp(my $msg = $e->message);
+ $msg =~ s/^/# /;
+ $msg =~ s/\n/\n# /g;
+
+ return [OUT_ERR, "$msg\n"];
+}
+
+sub event_bail {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ return if $e->nested;
+
+ return [
+ OUT_STD,
+ "Bail out! " . $e->reason . "\n",
+ ];
+}
+
+sub event_exception {
+ my $self = shift;
+ my ($e, $num) = @_;
+ return [ OUT_ERR, $e->error ];
+}
+
+sub event_subtest {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ # A 'subtest' is a subclass of 'ok'. Let the code that renders 'ok' render
+ # this event.
+ my ($ok, @diag) = $self->event_ok($e, $num);
+
+ # If the subtest is not buffered then the sub-events have already been
+ # rendered, we can go ahead and return.
+ return ($ok, @diag) unless $e->buffered;
+
+ # In a verbose harness we indent the diagnostics from the 'Ok' event since
+ # they will appear inside the subtest braces. This helps readability. In a
+ # non-verbose harness we do not do this because it is less readable.
+ if ($ENV{HARNESS_IS_VERBOSE}) {
+ # index 0 is the filehandle, index 1 is the message we want to indent.
+ $_->[1] =~ s/^(.*\S.*)$/ $1/mg for @diag;
+ }
+
+ # Add the trailing ' {' to the 'ok' line of TAP output.
+ $ok->[1] =~ s/\n/ {\n/;
+
+ # Render the sub-events, we use our own counter for these.
+ my $count = 0;
+ my @subs = map {
+ # Bump the count for any event that should bump it.
+ $count++ if $_->increments_count;
+
+ # This indents all output lines generated for the sub-events.
+ # index 0 is the filehandle, index 1 is the message we want to indent.
+ map { $_->[1] =~ s/^(.*\S.*)$/ $1/mg; $_ } $self->event_tap($_, $count);
+ } @{$e->subevents};
+
+ return (
+ $ok, # opening ok - name {
+ @diag, # diagnostics if the subtest failed
+ @subs, # All the inner-event lines
+ [OUT_STD(), "}\n"], # } (closing brace)
+ );
+}
+
+sub event_plan {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ my $directive = $e->directive;
+ return if $directive && $directive eq 'NO PLAN';
+
+ my $reason = $e->reason;
+ $reason =~ s/\n/\n# /g if $reason;
+
+ my $plan = "1.." . $e->max;
+ if ($directive) {
+ $plan .= " # $directive";
+ $plan .= " $reason" if defined $reason;
+ }
+
+ return [OUT_STD, "$plan\n"];
+}
+
+sub event_version {
+ my $self = shift;
+ my ($e, $num) = @_;
+
+ my $version = $e->version;
+
+ return [OUT_STD, "TAP version $version\n"];
+}
+
+sub event_other {
+ my $self = shift;
+ my ($e, $num) = @_;
+ return if $e->no_display;
+
+ my @out;
+
+ if (my ($max, $directive, $reason) = $e->sets_plan) {
+ my $plan = "1..$max";
+ $plan .= " # $directive" if $directive;
+ $plan .= " $reason" if defined $reason;
+ push @out => [OUT_STD, "$plan\n"];
+ }
+
+ if ($e->increments_count) {
+ my $ok = "";
+ $ok .= "not " if $e->causes_fail;
+ $ok .= "ok";
+ $ok .= " $num" if defined($num);
+ $ok .= " - " . $e->summary if $e->summary;
+
+ push @out => [OUT_STD, "$ok\n"];
+ }
+ else { # Comment
+ my $handle = ($e->causes_fail || $e->diagnostics) ? OUT_ERR : OUT_STD;
+ my $summary = $e->summary || ref($e);
+ chomp($summary);
+ $summary =~ s/^/# /smg;
+ push @out => [$handle, "$summary\n"];
+ }
+
+ return @out;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Formatter::TAP - Standard TAP formatter
+
+=head1 DESCRIPTION
+
+This is what takes events and turns them into TAP.
+
+=head1 SYNOPSIS
+
+ use Test2::Formatter::TAP;
+ my $tap = Test2::Formatter::TAP->new();
+
+ # Switch to utf8
+ $tap->encoding('utf8');
+
+ $tap->write($event, $number); # Output an event
+
+=head1 METHODS
+
+=over 4
+
+=item $bool = $tap->no_numbers
+
+=item $tap->set_no_numbers($bool)
+
+Use to turn numbers on and off.
+
+=item $arrayref = $tap->handles
+
+=item $tap->set_handles(\@handles);
+
+Can be used to get/set the filehandles. Indexes are identified by the
+C<OUT_STD> and C<OUT_ERR> constants.
+
+=item $encoding = $tap->encoding
+
+=item $tap->encoding($encoding)
+
+Get or set the encoding. By default no encoding is set, the original settings
+of STDOUT and STDERR are used.
+
+This directly modifies the stored filehandles, it does not create new ones.
+
+=item $tap->write($e, $num)
+
+Write an event to the console.
+
+=item Test2::Formatter::TAP->register_event($pkg, sub { ... });
+
+In general custom events are not supported. There are however occasions where
+you might want to write a custom event type that results in TAP output. In
+order to do this you use the C<register_event()> class method.
+
+ package My::Event;
+ use Test2::Formatter::TAP;
+
+ use base 'Test2::Event';
+ use Test2::Util::HashBase qw/pass name diag note/;
+
+ Test2::Formatter::TAP->register_event(
+ __PACKAGE__,
+ sub {
+ my $self = shift;
+ my ($e, $num) = @_;
+ return (
+ [Test2::Formatter::TAP::OUT_STD, "ok $num - " . $e->name . "\n"],
+ [Test2::Formatter::TAP::OUT_ERR, "# " . $e->name . " " . $e->diag . "\n"],
+ [Test2::Formatter::TAP::OUT_STD, "# " . $e->name . " " . $e->note . "\n"],
+ );
+ }
+ );
+
+ 1;
+
+=back
+
+=head2 EVENT METHODS
+
+All these methods require the event itself. Optionally they can all except a
+test number.
+
+All methods return a list of array-refs. Each array-ref will have 2 items, the
+first is an integer identifying an output handle, the second is a string that
+should be written to the handle.
+
+=over 4
+
+=item @out = $TAP->event_ok($e)
+
+=item @out = $TAP->event_ok($e, $num)
+
+Process an L<Test2::Event::Ok> event.
+
+=item @out = $TAP->event_plan($e)
+
+=item @out = $TAP->event_plan($e, $num)
+
+Process an L<Test2::Event::Plan> event.
+
+=item @out = $TAP->event_note($e)
+
+=item @out = $TAP->event_note($e, $num)
+
+Process an L<Test2::Event::Note> event.
+
+=item @out = $TAP->event_diag($e)
+
+=item @out = $TAP->event_diag($e, $num)
+
+Process an L<Test2::Event::Diag> event.
+
+=item @out = $TAP->event_bail($e)
+
+=item @out = $TAP->event_bail($e, $num)
+
+Process an L<Test2::Event::Bail> event.
+
+=item @out = $TAP->event_exception($e)
+
+=item @out = $TAP->event_exception($e, $num)
+
+Process an L<Test2::Event::Exception> event.
+
+=item @out = $TAP->event_skip($e)
+
+=item @out = $TAP->event_skip($e, $num)
+
+Process an L<Test2::Event::Skip> event.
+
+=item @out = $TAP->event_subtest($e)
+
+=item @out = $TAP->event_subtest($e, $num)
+
+Process an L<Test2::Event::Subtest> event.
+
+=item @out = $TAP->event_other($e, $num)
+
+Fallback for unregistered event types. It uses the L<Test2::Event> API to
+convert the event to TAP.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=item Kent Fredric E<lt>kentnl@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Hub.pm b/Master/tlpkg/tlperl/lib/Test2/Hub.pm
new file mode 100755
index 00000000000..324f1a87bbb
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Hub.pm
@@ -0,0 +1,829 @@
+package Test2::Hub;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Carp qw/carp croak confess/;
+use Test2::Util qw/get_tid ipc_separator/;
+
+use Scalar::Util qw/weaken/;
+
+use Test2::Util::ExternalMeta qw/meta get_meta set_meta delete_meta/;
+use Test2::Util::HashBase qw{
+ pid tid hid ipc
+ no_ending
+ _filters
+ _pre_filters
+ _listeners
+ _follow_ups
+ _formatter
+ _context_acquire
+ _context_init
+ _context_release
+
+ active
+ count
+ failed
+ ended
+ bailed_out
+ _passing
+ _plan
+ skip_reason
+};
+
+my $ID_POSTFIX = 1;
+sub init {
+ my $self = shift;
+
+ $self->{+PID} = $$;
+ $self->{+TID} = get_tid();
+ $self->{+HID} = join ipc_separator, $self->{+PID}, $self->{+TID}, $ID_POSTFIX++;
+
+ $self->{+COUNT} = 0;
+ $self->{+FAILED} = 0;
+ $self->{+_PASSING} = 1;
+
+ if (my $formatter = delete $self->{formatter}) {
+ $self->format($formatter);
+ }
+
+ if (my $ipc = $self->{+IPC}) {
+ $ipc->add_hub($self->{+HID});
+ }
+}
+
+sub is_subtest { 0 }
+
+sub reset_state {
+ my $self = shift;
+
+ $self->{+COUNT} = 0;
+ $self->{+FAILED} = 0;
+ $self->{+_PASSING} = 1;
+
+ delete $self->{+_PLAN};
+ delete $self->{+ENDED};
+ delete $self->{+BAILED_OUT};
+ delete $self->{+SKIP_REASON};
+}
+
+sub inherit {
+ my $self = shift;
+ my ($from, %params) = @_;
+
+ $self->{+_FORMATTER} = $from->{+_FORMATTER}
+ unless $self->{+_FORMATTER} || exists($params{formatter});
+
+ if ($from->{+IPC} && !$self->{+IPC} && !exists($params{ipc})) {
+ my $ipc = $from->{+IPC};
+ $self->{+IPC} = $ipc;
+ $ipc->add_hub($self->{+HID});
+ }
+
+ if (my $ls = $from->{+_LISTENERS}) {
+ push @{$self->{+_LISTENERS}} => grep { $_->{inherit} } @$ls;
+ }
+
+ if (my $pfs = $from->{+_PRE_FILTERS}) {
+ push @{$self->{+_PRE_FILTERS}} => grep { $_->{inherit} } @$pfs;
+ }
+
+ if (my $fs = $from->{+_FILTERS}) {
+ push @{$self->{+_FILTERS}} => grep { $_->{inherit} } @$fs;
+ }
+}
+
+sub format {
+ my $self = shift;
+
+ my $old = $self->{+_FORMATTER};
+ ($self->{+_FORMATTER}) = @_ if @_;
+
+ return $old;
+}
+
+sub is_local {
+ my $self = shift;
+ return $$ == $self->{+PID}
+ && get_tid() == $self->{+TID};
+}
+
+sub listen {
+ my $self = shift;
+ my ($sub, %params) = @_;
+
+ carp "Useless addition of a listener in a child process or thread!"
+ if $$ != $self->{+PID} || get_tid() != $self->{+TID};
+
+ croak "listen only takes coderefs for arguments, got '$sub'"
+ unless ref $sub && ref $sub eq 'CODE';
+
+ push @{$self->{+_LISTENERS}} => { %params, code => $sub };
+
+ $sub; # Intentional return.
+}
+
+sub unlisten {
+ my $self = shift;
+
+ carp "Useless removal of a listener in a child process or thread!"
+ if $$ != $self->{+PID} || get_tid() != $self->{+TID};
+
+ my %subs = map {$_ => $_} @_;
+
+ @{$self->{+_LISTENERS}} = grep { !$subs{$_->{code}} } @{$self->{+_LISTENERS}};
+}
+
+sub filter {
+ my $self = shift;
+ my ($sub, %params) = @_;
+
+ carp "Useless addition of a filter in a child process or thread!"
+ if $$ != $self->{+PID} || get_tid() != $self->{+TID};
+
+ croak "filter only takes coderefs for arguments, got '$sub'"
+ unless ref $sub && ref $sub eq 'CODE';
+
+ push @{$self->{+_FILTERS}} => { %params, code => $sub };
+
+ $sub; # Intentional Return
+}
+
+sub unfilter {
+ my $self = shift;
+ carp "Useless removal of a filter in a child process or thread!"
+ if $$ != $self->{+PID} || get_tid() != $self->{+TID};
+ my %subs = map {$_ => $_} @_;
+ @{$self->{+_FILTERS}} = grep { !$subs{$_->{code}} } @{$self->{+_FILTERS}};
+}
+
+sub pre_filter {
+ my $self = shift;
+ my ($sub, %params) = @_;
+
+ croak "pre_filter only takes coderefs for arguments, got '$sub'"
+ unless ref $sub && ref $sub eq 'CODE';
+
+ push @{$self->{+_PRE_FILTERS}} => { %params, code => $sub };
+
+ $sub; # Intentional Return
+}
+
+sub pre_unfilter {
+ my $self = shift;
+ my %subs = map {$_ => $_} @_;
+ @{$self->{+_PRE_FILTERS}} = grep { !$subs{$_->{code}} } @{$self->{+_PRE_FILTERS}};
+}
+
+sub follow_up {
+ my $self = shift;
+ my ($sub) = @_;
+
+ carp "Useless addition of a follow-up in a child process or thread!"
+ if $$ != $self->{+PID} || get_tid() != $self->{+TID};
+
+ croak "follow_up only takes coderefs for arguments, got '$sub'"
+ unless ref $sub && ref $sub eq 'CODE';
+
+ push @{$self->{+_FOLLOW_UPS}} => $sub;
+}
+
+*add_context_aquire = \&add_context_acquire;
+sub add_context_acquire {
+ my $self = shift;
+ my ($sub) = @_;
+
+ croak "add_context_acquire only takes coderefs for arguments, got '$sub'"
+ unless ref $sub && ref $sub eq 'CODE';
+
+ push @{$self->{+_CONTEXT_ACQUIRE}} => $sub;
+
+ $sub; # Intentional return.
+}
+
+*remove_context_aquire = \&remove_context_acquire;
+sub remove_context_acquire {
+ my $self = shift;
+ my %subs = map {$_ => $_} @_;
+ @{$self->{+_CONTEXT_ACQUIRE}} = grep { !$subs{$_} == $_ } @{$self->{+_CONTEXT_ACQUIRE}};
+}
+
+sub add_context_init {
+ my $self = shift;
+ my ($sub) = @_;
+
+ croak "add_context_init only takes coderefs for arguments, got '$sub'"
+ unless ref $sub && ref $sub eq 'CODE';
+
+ push @{$self->{+_CONTEXT_INIT}} => $sub;
+
+ $sub; # Intentional return.
+}
+
+sub remove_context_init {
+ my $self = shift;
+ my %subs = map {$_ => $_} @_;
+ @{$self->{+_CONTEXT_INIT}} = grep { !$subs{$_} == $_ } @{$self->{+_CONTEXT_INIT}};
+}
+
+sub add_context_release {
+ my $self = shift;
+ my ($sub) = @_;
+
+ croak "add_context_release only takes coderefs for arguments, got '$sub'"
+ unless ref $sub && ref $sub eq 'CODE';
+
+ push @{$self->{+_CONTEXT_RELEASE}} => $sub;
+
+ $sub; # Intentional return.
+}
+
+sub remove_context_release {
+ my $self = shift;
+ my %subs = map {$_ => $_} @_;
+ @{$self->{+_CONTEXT_RELEASE}} = grep { !$subs{$_} == $_ } @{$self->{+_CONTEXT_RELEASE}};
+}
+
+sub send {
+ my $self = shift;
+ my ($e) = @_;
+
+ if ($self->{+_PRE_FILTERS}) {
+ for (@{$self->{+_PRE_FILTERS}}) {
+ $e = $_->{code}->($self, $e);
+ return unless $e;
+ }
+ }
+
+ my $ipc = $self->{+IPC} || return $self->process($e);
+
+ if($e->global) {
+ $ipc->send($self->{+HID}, $e, 'GLOBAL');
+ return $self->process($e);
+ }
+
+ return $ipc->send($self->{+HID}, $e)
+ if $$ != $self->{+PID} || get_tid() != $self->{+TID};
+
+ $self->process($e);
+}
+
+sub process {
+ my $self = shift;
+ my ($e) = @_;
+
+ if ($self->{+_FILTERS}) {
+ for (@{$self->{+_FILTERS}}) {
+ $e = $_->{code}->($self, $e);
+ return unless $e;
+ }
+ }
+
+ my $type = ref($e);
+ my $is_ok = $type eq 'Test2::Event::Ok';
+ my $no_fail = $type eq 'Test2::Event::Diag' || $type eq 'Test2::Event::Note';
+ my $causes_fail = $is_ok ? !$e->{effective_pass} : $no_fail ? 0 : $e->causes_fail;
+ my $counted = $is_ok || (!$no_fail && $e->increments_count);
+
+ $self->{+COUNT}++ if $counted;
+ $self->{+FAILED}++ if $causes_fail && $counted;
+ $self->{+_PASSING} = 0 if $causes_fail;
+
+ my $callback = $e->callback($self) unless $is_ok || $no_fail;
+
+ my $count = $self->{+COUNT};
+
+ $self->{+_FORMATTER}->write($e, $count) if $self->{+_FORMATTER};
+
+ if ($self->{+_LISTENERS}) {
+ $_->{code}->($self, $e, $count) for @{$self->{+_LISTENERS}};
+ }
+
+ return $e if $is_ok || $no_fail;
+
+ my $code = $e->terminate;
+ if (defined $code) {
+ $self->{+_FORMATTER}->terminate($e) if $self->{+_FORMATTER};
+ $self->terminate($code, $e);
+ }
+
+ return $e;
+}
+
+sub terminate {
+ my $self = shift;
+ my ($code) = @_;
+ exit($code);
+}
+
+sub cull {
+ my $self = shift;
+
+ my $ipc = $self->{+IPC} || return;
+ return if $self->{+PID} != $$ || $self->{+TID} != get_tid();
+
+ # No need to do IPC checks on culled events
+ $self->process($_) for $ipc->cull($self->{+HID});
+}
+
+sub finalize {
+ my $self = shift;
+ my ($trace, $do_plan) = @_;
+
+ $self->cull();
+
+ my $plan = $self->{+_PLAN};
+ my $count = $self->{+COUNT};
+ my $failed = $self->{+FAILED};
+ my $active = $self->{+ACTIVE};
+
+ # return if NOTHING was done.
+ unless ($active || $do_plan || defined($plan) || $count || $failed) {
+ $self->{+_FORMATTER}->finalize($plan, $count, $failed, 0, $self->is_subtest) if $self->{+_FORMATTER};
+ return;
+ }
+
+ unless ($self->{+ENDED}) {
+ if ($self->{+_FOLLOW_UPS}) {
+ $_->($trace, $self) for reverse @{$self->{+_FOLLOW_UPS}};
+ }
+
+ # These need to be refreshed now
+ $plan = $self->{+_PLAN};
+ $count = $self->{+COUNT};
+ $failed = $self->{+FAILED};
+
+ if (($plan && $plan eq 'NO PLAN') || ($do_plan && !$plan)) {
+ $self->send(
+ Test2::Event::Plan->new(
+ trace => $trace,
+ max => $count,
+ )
+ );
+ }
+ $plan = $self->{+_PLAN};
+ }
+
+ my $frame = $trace->frame;
+ if($self->{+ENDED}) {
+ my (undef, $ffile, $fline) = @{$self->{+ENDED}};
+ my (undef, $sfile, $sline) = @$frame;
+
+ die <<" EOT"
+Test already ended!
+First End: $ffile line $fline
+Second End: $sfile line $sline
+ EOT
+ }
+
+ $self->{+ENDED} = $frame;
+ my $pass = $self->is_passing(); # Generate the final boolean.
+
+ $self->{+_FORMATTER}->finalize($plan, $count, $failed, $pass, $self->is_subtest) if $self->{+_FORMATTER};
+
+ return $pass;
+}
+
+sub is_passing {
+ my $self = shift;
+
+ ($self->{+_PASSING}) = @_ if @_;
+
+ # If we already failed just return 0.
+ my $pass = $self->{+_PASSING} or return 0;
+ return $self->{+_PASSING} = 0 if $self->{+FAILED};
+
+ my $count = $self->{+COUNT};
+ my $ended = $self->{+ENDED};
+ my $plan = $self->{+_PLAN};
+
+ return $pass if !$count && $plan && $plan =~ m/^SKIP$/;
+
+ return $self->{+_PASSING} = 0
+ if $ended && (!$count || !$plan);
+
+ return $pass unless $plan && $plan =~ m/^\d+$/;
+
+ if ($ended) {
+ return $self->{+_PASSING} = 0 if $count != $plan;
+ }
+ else {
+ return $self->{+_PASSING} = 0 if $count > $plan;
+ }
+
+ return $pass;
+}
+
+sub plan {
+ my $self = shift;
+
+ return $self->{+_PLAN} unless @_;
+
+ my ($plan) = @_;
+
+ confess "You cannot unset the plan"
+ unless defined $plan;
+
+ confess "You cannot change the plan"
+ if $self->{+_PLAN} && $self->{+_PLAN} !~ m/^NO PLAN$/;
+
+ confess "'$plan' is not a valid plan! Plan must be an integer greater than 0, 'NO PLAN', or 'SKIP'"
+ unless $plan =~ m/^(\d+|NO PLAN|SKIP)$/;
+
+ $self->{+_PLAN} = $plan;
+}
+
+sub check_plan {
+ my $self = shift;
+
+ return undef unless $self->{+ENDED};
+ my $plan = $self->{+_PLAN} || return undef;
+
+ return 1 if $plan !~ m/^\d+$/;
+
+ return 1 if $plan == $self->{+COUNT};
+ return 0;
+}
+
+sub DESTROY {
+ my $self = shift;
+ my $ipc = $self->{+IPC} || return;
+ return unless $$ == $self->{+PID};
+ return unless get_tid() == $self->{+TID};
+
+ $ipc->drop_hub($self->{+HID});
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Hub - The conduit through which all events flow.
+
+=head1 SYNOPSIS
+
+ use Test2::Hub;
+
+ my $hub = Test2::Hub->new();
+ $hub->send(...);
+
+=head1 DESCRIPTION
+
+The hub is the place where all events get processed and handed off to the
+formatter. The hub also tracks test state, and provides several hooks into the
+event pipeline.
+
+=head1 COMMON TASKS
+
+=head2 SENDING EVENTS
+
+ $hub->send($event)
+
+The C<send()> method is used to issue an event to the hub. This method will
+handle thread/fork sync, filters, listeners, TAP output, etc.
+
+=head2 ALTERING OR REMOVING EVENTS
+
+You can use either C<filter()> or C<pre_filter()>, depending on your
+needs. Both have identical syntax, so only C<filter()> is shown here.
+
+ $hub->filter(sub {
+ my ($hub, $event) = @_;
+
+ my $action = get_action($event);
+
+ # No action should be taken
+ return $event if $action eq 'none';
+
+ # You want your filter to remove the event
+ return undef if $action eq 'delete';
+
+ if ($action eq 'do_it') {
+ my $new_event = copy_event($event);
+ ... Change your copy of the event ...
+ return $new_event;
+ }
+
+ die "Should not happen";
+ });
+
+By default, filters are not inherited by child hubs. That means if you start a
+subtest, the subtest will not inherit the filter. You can change this behavior
+with the C<inherit> parameter:
+
+ $hub->filter(sub { ... }, inherit => 1);
+
+=head2 LISTENING FOR EVENTS
+
+ $hub->listen(sub {
+ my ($hub, $event, $number) = @_;
+
+ ... do whatever you want with the event ...
+
+ # return is ignored
+ });
+
+By default listeners are not inherited by child hubs. That means if you start a
+subtest, the subtest will not inherit the listener. You can change this behavior
+with the C<inherit> parameter:
+
+ $hub->listen(sub { ... }, inherit => 1);
+
+
+=head2 POST-TEST BEHAVIORS
+
+ $hub->follow_up(sub {
+ my ($trace, $hub) = @_;
+
+ ... do whatever you need to ...
+
+ # Return is ignored
+ });
+
+follow_up subs are called only once, either when done_testing is called, or in
+an END block.
+
+=head2 SETTING THE FORMATTER
+
+By default an instance of L<Test2::Formatter::TAP> is created and used.
+
+ my $old = $hub->format(My::Formatter->new);
+
+Setting the formatter will REPLACE any existing formatter. You may set the
+formatter to undef to prevent output. The old formatter will be returned if one
+was already set. Only one formatter is allowed at a time.
+
+=head1 METHODS
+
+=over 4
+
+=item $hub->send($event)
+
+This is where all events enter the hub for processing.
+
+=item $hub->process($event)
+
+This is called by send after it does any IPC handling. You can use this to
+bypass the IPC process, but in general you should avoid using this.
+
+=item $old = $hub->format($formatter)
+
+Replace the existing formatter instance with a new one. Formatters must be
+objects that implement a C<< $formatter->write($event) >> method.
+
+=item $sub = $hub->listen(sub { ... }, %optional_params)
+
+You can use this to record all events AFTER they have been sent to the
+formatter. No changes made here will be meaningful, except possibly to other
+listeners.
+
+ $hub->listen(sub {
+ my ($hub, $event, $number) = @_;
+
+ ... do whatever you want with the event ...
+
+ # return is ignored
+ });
+
+Normally listeners are not inherited by child hubs such as subtests. You can
+add the C<< inherit => 1 >> parameter to allow a listener to be inherited.
+
+=item $hub->unlisten($sub)
+
+You can use this to remove a listen callback. You must pass in the coderef
+returned by the C<listen()> method.
+
+=item $sub = $hub->filter(sub { ... }, %optional_params)
+
+=item $sub = $hub->pre_filter(sub { ... }, %optional_params)
+
+These can be used to add filters. Filters can modify, replace, or remove events
+before anything else can see them.
+
+ $hub->filter(
+ sub {
+ my ($hub, $event) = @_;
+
+ return $event; # No Changes
+ return; # Remove the event
+
+ # Or you can modify an event before returning it.
+ $event->modify;
+ return $event;
+ }
+ );
+
+If you are not using threads, forking, or IPC then the only difference between
+a C<filter> and a C<pre_filter> is that C<pre_filter> subs run first. When you
+are using threads, forking, or IPC, pre_filters happen to events before they
+are sent to their destination proc/thread, ordinary filters happen only in the
+destination hub/thread.
+
+You cannot add a regular filter to a hub if the hub was created in another
+process or thread. You can always add a pre_filter.
+
+=item $hub->unfilter($sub)
+
+=item $hub->pre_unfilter($sub)
+
+These can be used to remove filters and pre_filters. The C<$sub> argument is
+the reference returned by C<filter()> or C<pre_filter()>.
+
+=item $hub->follow_op(sub { ... })
+
+Use this to add behaviors that are called just before the hub is finalized. The
+only argument to your codeblock will be a L<Test2::Util::Trace> instance.
+
+ $hub->follow_up(sub {
+ my ($trace, $hub) = @_;
+
+ ... do whatever you need to ...
+
+ # Return is ignored
+ });
+
+follow_up subs are called only once, ether when done_testing is called, or in
+an END block.
+
+=item $sub = $hub->add_context_acquire(sub { ... });
+
+Add a callback that will be called every time someone tries to acquire a
+context. It gets a single argument, a reference of the hash of parameters
+being used the construct the context. This is your chance to change the
+parameters by directly altering the hash.
+
+ test2_add_callback_context_acquire(sub {
+ my $params = shift;
+ $params->{level}++;
+ });
+
+This is a very scary API function. Please do not use this unless you need to.
+This is here for L<Test::Builder> and backwards compatibility. This has you
+directly manipulate the hash instead of returning a new one for performance
+reasons.
+
+B<Note> Using this hook could have a huge performance impact.
+
+The coderef you provide is returned and can be used to remove the hook later.
+
+=item $hub->remove_context_acquire($sub);
+
+This can be used to remove a context acquire hook.
+
+=item $sub = $hub->add_context_init(sub { ... });
+
+This allows you to add callbacks that will trigger every time a new context is
+created for the hub. The only argument to the sub will be the
+L<Test2::API::Context> instance that was created.
+
+B<Note> Using this hook could have a huge performance impact.
+
+The coderef you provide is returned and can be used to remove the hook later.
+
+=item $hub->remove_context_init($sub);
+
+This can be used to remove a context init hook.
+
+=item $sub = $hub->add_context_release(sub { ... });
+
+This allows you to add callbacks that will trigger every time a context for
+this hub is released. The only argument to the sub will be the
+L<Test2::API::Context> instance that was released. These will run in reverse
+order.
+
+B<Note> Using this hook could have a huge performance impact.
+
+The coderef you provide is returned and can be used to remove the hook later.
+
+=item $hub->remove_context_release($sub);
+
+This can be used to remove a context release hook.
+
+=item $hub->cull()
+
+Cull any IPC events (and process them).
+
+=item $pid = $hub->pid()
+
+Get the process id under which the hub was created.
+
+=item $tid = $hub->tid()
+
+Get the thread id under which the hub was created.
+
+=item $hud = $hub->hid()
+
+Get the identifier string of the hub.
+
+=item $ipc = $hub->ipc()
+
+Get the IPC object used by the hub.
+
+=item $hub->set_no_ending($bool)
+
+=item $bool = $hub->no_ending
+
+This can be used to disable auto-ending behavior for a hub. The auto-ending
+behavior is triggered by an end block and is used to cull IPC events, and
+output the final plan if the plan was 'no_plan'.
+
+=item $bool = $hub->active
+
+=item $hub->set_active($bool)
+
+These are used to get/set the 'active' attribute. When true this attribute will
+force C<< hub->finalize() >> to take action even if there is no plan, and no
+tests have been run. This flag is useful for plugins that add follow-up
+behaviors that need to run even if no events are seen.
+
+=back
+
+=head2 STATE METHODS
+
+=over 4
+
+=item $hub->reset_state()
+
+Reset all state to the start. This sets the test count to 0, clears the plan,
+removes the failures, etc.
+
+=item $num = $hub->count
+
+Get the number of tests that have been run.
+
+=item $num = $hub->failed
+
+Get the number of failures (Not all failures come from a test fail, so this
+number can be larger than the count).
+
+=item $bool = $hub->ended
+
+True if the testing has ended. This MAY return the stack frame of the tool that
+ended the test, but that is not guaranteed.
+
+=item $bool = $hub->is_passing
+
+=item $hub->is_passing($bool)
+
+Check if the overall test run is a failure. Can also be used to set the
+pass/fail status.
+
+=item $hub->plan($plan)
+
+=item $plan = $hub->plan
+
+Get or set the plan. The plan must be an integer larger than 0, the string
+'no_plan', or the string 'skip_all'.
+
+=item $bool = $hub->check_plan
+
+Check if the plan and counts match, but only if the tests have ended. If tests
+have not ended this will return undef, otherwise it will be a true/false.
+
+=back
+
+=head1 THIRD PARTY META-DATA
+
+This object consumes L<Test2::Util::ExternalMeta> which provides a consistent
+way for you to attach meta-data to instances of this class. This is useful for
+tools, plugins, and other extensions.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm b/Master/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm
new file mode 100755
index 00000000000..42be265f8d7
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Hub/Interceptor.pm
@@ -0,0 +1,80 @@
+package Test2::Hub::Interceptor;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Test2::Hub::Interceptor::Terminator();
+
+BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
+use Test2::Util::HashBase;
+
+sub inherit {
+ my $self = shift;
+ my ($from, %params) = @_;
+
+ if ($from->{+IPC} && !$self->{+IPC} && !exists($params{ipc})) {
+ my $ipc = $from->{+IPC};
+ $self->{+IPC} = $ipc;
+ $ipc->add_hub($self->{+HID});
+ }
+}
+
+sub terminate {
+ my $self = shift;
+ my ($code) = @_;
+
+ eval {
+ no warnings 'exiting';
+ last T2_SUBTEST_WRAPPER;
+ };
+ my $err = $@;
+
+ # Fallback
+ die bless(\$err, 'Test2::Hub::Interceptor::Terminator');
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Hub::Interceptor - Hub used by interceptor to grab results.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm b/Master/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm
new file mode 100755
index 00000000000..f7201904689
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Hub/Interceptor/Terminator.pm
@@ -0,0 +1,51 @@
+package Test2::Hub::Interceptor::Terminator;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Hub::Interceptor::Terminator - Exception class used by
+Test2::Hub::Interceptor
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm b/Master/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm
new file mode 100755
index 00000000000..adb3d6f15ed
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Hub/Subtest.pm
@@ -0,0 +1,125 @@
+package Test2::Hub::Subtest;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::Hub; our @ISA = qw(Test2::Hub) }
+use Test2::Util::HashBase qw/nested bailed_out exit_code manual_skip_all id/;
+use Test2::Util qw/get_tid/;
+
+my $ID = 1;
+sub init {
+ my $self = shift;
+ $self->SUPER::init(@_);
+ $self->{+ID} ||= join "-", $$, get_tid, $ID++;
+}
+
+sub is_subtest { 1 }
+
+sub process {
+ my $self = shift;
+ my ($e) = @_;
+ $e->set_nested($self->nested);
+ $e->set_in_subtest($self->{+ID});
+ $self->set_bailed_out($e) if $e->isa('Test2::Event::Bail');
+ $self->SUPER::process($e);
+}
+
+sub send {
+ my $self = shift;
+ my ($e) = @_;
+
+ my $out = $self->SUPER::send($e);
+
+ return $out if $self->{+MANUAL_SKIP_ALL};
+ return $out unless $e->isa('Test2::Event::Plan')
+ && $e->directive eq 'SKIP'
+ && ($e->trace->pid != $self->pid || $e->trace->tid != $self->tid);
+
+ no warnings 'exiting';
+ last T2_SUBTEST_WRAPPER;
+}
+
+sub terminate {
+ my $self = shift;
+ my ($code, $e) = @_;
+ $self->set_exit_code($code);
+
+ return if $self->{+MANUAL_SKIP_ALL};
+ return if $e->isa('Test2::Event::Plan')
+ && $e->directive eq 'SKIP'
+ && ($e->trace->pid != $$ || $e->trace->tid != get_tid);
+
+ no warnings 'exiting';
+ last T2_SUBTEST_WRAPPER;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Hub::Subtest - Hub used by subtests
+
+=head1 DESCRIPTION
+
+Subtests make use of this hub to route events.
+
+=head1 TOGGLES
+
+=over 4
+
+=item $bool = $hub->manual_skip_all
+
+=item $hub->set_manual_skip_all($bool)
+
+The default is false.
+
+Normally a skip-all plan event will cause a subtest to stop executing. This is
+accomplished via C<last LABEL> to a label inside the subtest code. Most of the
+time this is perfectly fine. There are times however where this flow control
+causes bad things to happen.
+
+This toggle lets you turn off the abort logic for the hub. When this is toggled
+to true B<you> are responsible for ensuring no additional events are generated.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/IPC.pm b/Master/tlpkg/tlperl/lib/Test2/IPC.pm
new file mode 100755
index 00000000000..92447919c11
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/IPC.pm
@@ -0,0 +1,140 @@
+package Test2::IPC;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Test2::API::Instance;
+use Test2::Util qw/get_tid/;
+use Test2::API qw{
+ test2_init_done
+ test2_ipc
+ test2_ipc_enable_polling
+ test2_pid
+ test2_stack
+ test2_tid
+ context
+};
+
+use Carp qw/confess/;
+
+our @EXPORT_OK = qw/cull/;
+BEGIN { require Exporter; our @ISA = qw(Exporter) }
+
+sub import {
+ goto &Exporter::import unless test2_init_done();
+
+ confess "Cannot add IPC in a child process (" . test2_pid() . " vs $$)" if test2_pid() != $$;
+ confess "Cannot add IPC in a child thread (" . test2_tid() . " vs " . get_tid() . ")" if test2_tid() != get_tid();
+
+ Test2::API::_set_ipc(_make_ipc());
+ apply_ipc(test2_stack());
+
+ goto &Exporter::import;
+}
+
+sub _make_ipc {
+ # Find a driver
+ my ($driver) = Test2::API::test2_ipc_drivers();
+ unless ($driver) {
+ require Test2::IPC::Driver::Files;
+ $driver = 'Test2::IPC::Driver::Files';
+ }
+
+ return $driver->new();
+}
+
+sub apply_ipc {
+ my $stack = shift;
+
+ my ($root) = @$stack;
+
+ return unless $root;
+
+ confess "Cannot add IPC in a child process" if $root->pid != $$;
+ confess "Cannot add IPC in a child thread" if $root->tid != get_tid();
+
+ my $ipc = $root->ipc || test2_ipc() || _make_ipc();
+
+ # Add the IPC to all hubs
+ for my $hub (@$stack) {
+ my $has = $hub->ipc;
+ confess "IPC Mismatch!" if $has && $has != $ipc;
+ next if $has;
+ $hub->set_ipc($ipc);
+ $ipc->add_hub($hub->hid);
+ }
+
+ test2_ipc_enable_polling();
+
+ return $ipc;
+}
+
+sub cull {
+ my $ctx = context();
+ $ctx->hub->cull;
+ $ctx->release;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::IPC - Turn on IPC for threading or forking support.
+
+=head1 SYNOPSIS
+
+You should C<use Test2::IPC;> as early as possible in your test file. If you
+import this module after API initialization it will attempt to retrofit IPC
+onto the existing hubs.
+
+=head1 EXPORTS
+
+All exports are optional.
+
+=over 4
+
+=item cull()
+
+Cull allows you to collect results from other processes or threads on demand.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/IPC/Driver.pm b/Master/tlpkg/tlperl/lib/Test2/IPC/Driver.pm
new file mode 100755
index 00000000000..cd34f7c0258
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/IPC/Driver.pm
@@ -0,0 +1,292 @@
+package Test2::IPC::Driver;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Carp qw/confess longmess/;
+use Test2::Util::HashBase qw{no_fatal};
+
+use Test2::API qw/test2_ipc_add_driver/;
+
+my %ADDED;
+sub import {
+ my $class = shift;
+ return if $class eq __PACKAGE__;
+ return if $ADDED{$class}++;
+ test2_ipc_add_driver($class);
+}
+
+sub use_shm { 0 }
+
+for my $meth (qw/send cull add_hub drop_hub waiting is_viable/) {
+ no strict 'refs';
+ *$meth = sub {
+ my $thing = shift;
+ confess "'$thing' did not define the required method '$meth'."
+ };
+}
+
+# Print the error and call exit. We are not using 'die' cause this is a
+# catastrophic error that should never be caught. If we get here it
+# means some serious shit has happened in a child process, the only way
+# to inform the parent may be to exit false.
+
+sub abort {
+ my $self = shift;
+ chomp(my ($msg) = @_);
+ print STDERR "IPC Fatal Error: $msg\n";
+ print STDOUT "not ok - IPC Fatal Error\n";
+
+ CORE::exit(255) unless $self->no_fatal;
+}
+
+sub abort_trace {
+ my $self = shift;
+ my ($msg) = @_;
+ $self->abort(longmess($msg));
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::IPC::Driver - Base class for Test2 IPC drivers.
+
+=head1 SYNOPSIS
+
+ package Test2::IPC::Driver::MyDriver;
+
+ use base 'Test2::IPC::Driver';
+
+ ...
+
+=head1 METHODS
+
+=over 4
+
+=item $self->abort($msg)
+
+If an IPC encounters a fatal error it should use this. This will print the
+message to STDERR with C<'IPC Fatal Error: '> prefixed to it, then it will
+forcefully exit 255. IPC errors may occur in threads or processes other than
+the main one, this method provides the best chance of the harness noticing the
+error.
+
+=item $self->abort_trace($msg)
+
+This is the same as C<< $ipc->abort($msg) >> except that it uses
+C<Carp::longmess> to add a stack trace to the message.
+
+=item $false = $self->use_shm
+
+The base class always returns false for this method. You may override it if you
+wish to use the SHM made available in L<Test2::API>/L<Test2::API::Instance>.
+
+=back
+
+=head1 LOADING DRIVERS
+
+Test2::IPC::Driver has an C<import()> method. All drivers inherit this import
+method. This import method registers the driver.
+
+In most cases you just need to load the desired IPC driver to make it work. You
+should load this driver as early as possible. A warning will be issued if you
+load it too late for it to be effective.
+
+ use Test2::IPC::Driver::MyDriver;
+ ...
+
+=head1 WRITING DRIVERS
+
+ package Test2::IPC::Driver::MyDriver;
+ use strict;
+ use warnings;
+
+ use base 'Test2::IPC::Driver';
+
+ sub is_viable {
+ return 0 if $^O eq 'win32'; # Will not work on windows.
+ return 1;
+ }
+
+ sub add_hub {
+ my $self = shift;
+ my ($hid) = @_;
+
+ ... # Make it possible to contact the hub
+ }
+
+ sub drop_hub {
+ my $self = shift;
+ my ($hid) = @_;
+
+ ... # Nothing should try to reach the hub anymore.
+ }
+
+ sub send {
+ my $self = shift;
+ my ($hid, $e, $global) = @_;
+
+ ... # Send the event to the proper hub.
+
+ # If you are using the SHM you should notify other procs/threads that
+ # there is a pending event.
+ Test2::API::test2_ipc_set_pending($uniq_val);
+ }
+
+ sub cull {
+ my $self = shift;
+ my ($hid) = @_;
+
+ my @events = ...; # Here is where you get the events for the hub
+
+ return @events;
+ }
+
+ sub waiting {
+ my $self = shift;
+
+ ... # Notify all listening procs and threads that the main
+ ... # process/thread is waiting for them to finish.
+ }
+
+ 1;
+
+=head2 METHODS SUBCLASSES MUST IMPLEMENT
+
+=over 4
+
+=item $ipc->is_viable
+
+This should return true if the driver works in the current environment. This
+should return false if it does not. This is a CLASS method.
+
+=item $ipc->add_hub($hid)
+
+This is used to alert the driver that a new hub is expecting events. The driver
+should keep track of the process and thread ids, the hub should only be dropped
+by the proc+thread that started it.
+
+ sub add_hub {
+ my $self = shift;
+ my ($hid) = @_;
+
+ ... # Make it possible to contact the hub
+ }
+
+=item $ipc->drop_hub($hid)
+
+This is used to alert the driver that a hub is no longer accepting events. The
+driver should keep track of the process and thread ids, the hub should only be
+dropped by the proc+thread that started it (This is the drivers responsibility
+to enforce).
+
+ sub drop_hub {
+ my $self = shift;
+ my ($hid) = @_;
+
+ ... # Nothing should try to reach the hub anymore.
+ }
+
+=item $ipc->send($hid, $event);
+
+=item $ipc->send($hid, $event, $global);
+
+Used to send events from the current process/thread to the specified hub in its
+process+thread.
+
+ sub send {
+ my $self = shift;
+ my ($hid, $e) = @_;
+
+ ... # Send the event to the proper hub.
+
+ # If you are using the SHM you should notify other procs/threads that
+ # there is a pending event.
+ Test2::API::test2_ipc_set_pending($uniq_val);
+ }
+
+If C<$global> is true then the driver should send the event to all hubs in all
+processes and threads.
+
+=item @events = $ipc->cull($hid)
+
+Used to collect events that have been sent to the specified hub.
+
+ sub cull {
+ my $self = shift;
+ my ($hid) = @_;
+
+ my @events = ...; # Here is where you get the events for the hub
+
+ return @events;
+ }
+
+=item $ipc->waiting()
+
+This is called in the parent process when it is complete and waiting for all
+child processes and threads to complete.
+
+ sub waiting {
+ my $self = shift;
+
+ ... # Notify all listening procs and threads that the main
+ ... # process/thread is waiting for them to finish.
+ }
+
+=back
+
+=head2 METHODS SUBCLASSES MAY IMPLEMENT OR OVERRIDE
+
+=over 4
+
+=item $bool = $ipc->use_shm()
+
+True if you want to make use of the L<Test2::API>/L<Test2::API::Instance> SHM.
+
+=item $bites = $ipc->shm_size()
+
+Use this to customize the size of the SHM space. There are no guarantees about
+what the size will be if you do not implement this.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm b/Master/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm
new file mode 100755
index 00000000000..998fef56376
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/IPC/Driver/Files.pm
@@ -0,0 +1,497 @@
+package Test2::IPC::Driver::Files;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+BEGIN { require Test2::IPC::Driver; our @ISA = qw(Test2::IPC::Driver) }
+
+use Test2::Util::HashBase qw{tempdir event_id tid pid globals};
+
+use Scalar::Util qw/blessed/;
+use File::Temp();
+use Storable();
+use File::Spec();
+use POSIX();
+
+use Test2::Util qw/try get_tid pkg_to_file IS_WIN32 ipc_separator/;
+use Test2::API qw/test2_ipc_set_pending/;
+
+BEGIN {
+ if (IS_WIN32) {
+ my $max_tries = 5;
+
+ *do_rename = sub {
+ my ($from, $to) = @_;
+
+ my $err;
+ for (1 .. $max_tries) {
+ return (1) if rename($from, $to);
+ $err = "$!";
+ last if $_ == $max_tries;
+ sleep 1;
+ }
+
+ return (0, $err);
+ };
+ *do_unlink = sub {
+ my ($file) = @_;
+
+ my $err;
+ for (1 .. $max_tries) {
+ return (1) if unlink($file);
+ $err = "$!";
+ last if $_ == $max_tries;
+ sleep 1;
+ }
+
+ return (0, "$!");
+ };
+ }
+ else {
+ *do_rename = sub {
+ my ($from, $to) = @_;
+ return (1) if rename($from, $to);
+ return (0, "$!");
+ };
+ *do_unlink = sub {
+ my ($file) = @_;
+ return (1) if unlink($file);
+ return (0, "$!");
+ };
+ }
+}
+
+sub use_shm { 1 }
+sub shm_size() { 64 }
+
+sub is_viable { 1 }
+
+sub init {
+ my $self = shift;
+
+ my $tmpdir = File::Temp::tempdir(
+ $ENV{T2_TEMPDIR_TEMPLATE} || "test2" . ipc_separator . $$ . ipc_separator . "XXXXXX",
+ CLEANUP => 0,
+ TMPDIR => 1,
+ );
+
+ $self->abort_trace("Could not get a temp dir") unless $tmpdir;
+
+ $self->{+TEMPDIR} = File::Spec->canonpath($tmpdir);
+
+ print STDERR "\nIPC Temp Dir: $tmpdir\n\n"
+ if $ENV{T2_KEEP_TEMPDIR};
+
+ $self->{+EVENT_ID} = 1;
+
+ $self->{+TID} = get_tid();
+ $self->{+PID} = $$;
+
+ $self->{+GLOBALS} = {};
+
+ return $self;
+}
+
+sub hub_file {
+ my $self = shift;
+ my ($hid) = @_;
+ my $tdir = $self->{+TEMPDIR};
+ return File::Spec->catfile($tdir, "HUB" . ipc_separator . $hid);
+}
+
+sub event_file {
+ my $self = shift;
+ my ($hid, $e) = @_;
+
+ my $tempdir = $self->{+TEMPDIR};
+ my $type = blessed($e) or $self->abort("'$e' is not a blessed object!");
+
+ $self->abort("'$e' is not an event object!")
+ unless $type->isa('Test2::Event');
+
+ my @type = split '::', $type;
+ my $name = join(ipc_separator, $hid, $$, get_tid(), $self->{+EVENT_ID}++, @type);
+
+ return File::Spec->catfile($tempdir, $name);
+}
+
+sub add_hub {
+ my $self = shift;
+ my ($hid) = @_;
+
+ my $hfile = $self->hub_file($hid);
+
+ $self->abort_trace("File for hub '$hid' already exists")
+ if -e $hfile;
+
+ open(my $fh, '>', $hfile) or $self->abort_trace("Could not create hub file '$hid': $!");
+ print $fh "$$\n" . get_tid() . "\n";
+ close($fh);
+}
+
+sub drop_hub {
+ my $self = shift;
+ my ($hid) = @_;
+
+ my $tdir = $self->{+TEMPDIR};
+ my $hfile = $self->hub_file($hid);
+
+ $self->abort_trace("File for hub '$hid' does not exist")
+ unless -e $hfile;
+
+ open(my $fh, '<', $hfile) or $self->abort_trace("Could not open hub file '$hid': $!");
+ my ($pid, $tid) = <$fh>;
+ close($fh);
+
+ $self->abort_trace("A hub file can only be closed by the process that started it\nExpected $pid, got $$")
+ unless $pid == $$;
+
+ $self->abort_trace("A hub file can only be closed by the thread that started it\nExpected $tid, got " . get_tid())
+ unless get_tid() == $tid;
+
+ if ($ENV{T2_KEEP_TEMPDIR}) {
+ my ($ok, $err) = do_rename($hfile, File::Spec->canonpath("$hfile.complete"));
+ $self->abort_trace("Could not rename file '$hfile' -> '$hfile.complete': $err") unless $ok
+ }
+ else {
+ my ($ok, $err) = do_unlink($hfile);
+ $self->abort_trace("Could not remove file for hub '$hid': $err") unless $ok
+ }
+
+ opendir(my $dh, $tdir) or $self->abort_trace("Could not open temp dir!");
+ for my $file (readdir($dh)) {
+ next if $file =~ m{\.complete$};
+ next unless $file =~ m{^$hid};
+ $self->abort_trace("Not all files from hub '$hid' have been collected!");
+ }
+ closedir($dh);
+}
+
+sub send {
+ my $self = shift;
+ my ($hid, $e, $global) = @_;
+
+ my $tempdir = $self->{+TEMPDIR};
+ my $hfile = $self->hub_file($hid);
+ my $dest = $global ? 'GLOBAL' : $hid;
+
+ $self->abort(<<" EOT") unless $global || -f $hfile;
+hub '$hid' is not available, failed to send event!
+
+There was an attempt to send an event to a hub in a parent process or thread,
+but that hub appears to be gone. This can happen if you fork, or start a new
+thread from inside subtest, and the parent finishes the subtest before the
+child returns.
+
+This can also happen if the parent process is done testing before the child
+finishes. Test2 normally waits automatically in the root process, but will not
+do so if Test::Builder is loaded for legacy reasons.
+ EOT
+
+ my $file = $self->event_file($dest, $e);
+ my $ready = File::Spec->canonpath("$file.ready");
+
+ if ($global) {
+ my $name = $ready;
+ $name =~ s{^.*(GLOBAL)}{GLOBAL};
+ $self->{+GLOBALS}->{$hid}->{$name}++;
+ }
+
+ my ($old, $blocked);
+ unless(IS_WIN32) {
+ my $to_block = POSIX::SigSet->new(
+ POSIX::SIGINT(),
+ POSIX::SIGALRM(),
+ POSIX::SIGHUP(),
+ POSIX::SIGTERM(),
+ POSIX::SIGUSR1(),
+ POSIX::SIGUSR2(),
+ );
+ $old = POSIX::SigSet->new;
+ $blocked = POSIX::sigprocmask(POSIX::SIG_BLOCK(), $to_block, $old);
+ # Silently go on if we failed to log signals, not much we can do.
+ }
+
+ # Write and rename the file.
+ my ($ok, $err) = try {
+ Storable::store($e, $file);
+ my ($ok, $err) = do_rename("$file", $ready);
+ unless ($ok) {
+ POSIX::sigprocmask(POSIX::SIG_SETMASK(), $old, POSIX::SigSet->new()) if defined $blocked;
+ $self->abort("Could not rename file '$file' -> '$ready': $err");
+ };
+ test2_ipc_set_pending(substr($file, -(shm_size)));
+ };
+
+ # If our block was successful we want to restore the old mask.
+ POSIX::sigprocmask(POSIX::SIG_SETMASK(), $old, POSIX::SigSet->new()) if defined $blocked;
+
+ if (!$ok) {
+ my $src_file = __FILE__;
+ $err =~ s{ at \Q$src_file\E.*$}{};
+ chomp($err);
+ my $tid = get_tid();
+ my $trace = $e->trace->debug;
+ my $type = blessed($e);
+
+ $self->abort(<<" EOT");
+
+*******************************************************************************
+There was an error writing an event:
+Destination: $dest
+Origin PID: $$
+Origin TID: $tid
+Event Type: $type
+Event Trace: $trace
+File Name: $file
+Ready Name: $ready
+Error: $err
+*******************************************************************************
+
+ EOT
+ }
+
+ return 1;
+}
+
+sub cull {
+ my $self = shift;
+ my ($hid) = @_;
+
+ my $tempdir = $self->{+TEMPDIR};
+
+ opendir(my $dh, $tempdir) or $self->abort("could not open IPC temp dir ($tempdir)!");
+
+ my @out;
+ for my $info (sort cmp_events map { $self->should_read_event($hid, $_) } readdir($dh)) {
+ my $full = $info->{full_path};
+ my $obj = $self->read_event_file($full);
+ push @out => $obj;
+
+ # Do not remove global events
+ next if $info->{global};
+
+ if ($ENV{T2_KEEP_TEMPDIR}) {
+ my $complete = File::Spec->canonpath("$full.complete");
+ my ($ok, $err) = do_rename($full, $complete);
+ $self->abort("Could not rename IPC file '$full', '$complete': $err") unless $ok;
+ }
+ else {
+ my ($ok, $err) = do_unlink("$full");
+ $self->abort("Could not unlink IPC file '$full': $err") unless $ok;
+ }
+ }
+
+ closedir($dh);
+ return @out;
+}
+
+sub parse_event_filename {
+ my $self = shift;
+ my ($file) = @_;
+
+ # The || is to force 0 in false
+ my $complete = substr($file, -9, 9) eq '.complete' || 0 and substr($file, -9, 9, "");
+ my $ready = substr($file, -6, 6) eq '.ready' || 0 and substr($file, -6, 6, "");
+
+ my @parts = split ipc_separator, $file;
+ my ($global, $hid) = $parts[0] eq 'GLOBAL' ? (1, shift @parts) : (0, join ipc_separator, splice(@parts, 0, 3));
+ my ($pid, $tid, $eid) = splice(@parts, 0, 3);
+ my $type = join '::' => @parts;
+
+ return {
+ ready => $ready,
+ complete => $complete,
+ global => $global,
+ type => $type,
+ hid => $hid,
+ pid => $pid,
+ tid => $tid,
+ eid => $eid,
+ };
+}
+
+sub should_read_event {
+ my $self = shift;
+ my ($hid, $file) = @_;
+
+ return if substr($file, 0, 1) eq '.';
+
+ my $parsed = $self->parse_event_filename($file);
+
+ return if $parsed->{complete};
+ return unless $parsed->{ready};
+ return unless $parsed->{global} || $parsed->{hid} eq $hid;
+
+ return if $parsed->{global} && $self->{+GLOBALS}->{$hid}->{$file}++;
+
+ # Untaint the path.
+ my $full = File::Spec->catfile($self->{+TEMPDIR}, $file);
+ ($full) = ($full =~ m/^(.*)$/gs) if ${^TAINT};
+
+ $parsed->{full_path} = $full;
+
+ return $parsed;
+}
+
+sub cmp_events {
+ # Globals first
+ return -1 if $a->{global} && !$b->{global};
+ return 1 if $b->{global} && !$a->{global};
+
+ return $a->{pid} <=> $b->{pid}
+ || $a->{tid} <=> $b->{tid}
+ || $a->{eid} <=> $b->{eid};
+}
+
+sub read_event_file {
+ my $self = shift;
+ my ($file) = @_;
+
+ my $obj = Storable::retrieve($file);
+ $self->abort("Got an unblessed object: '$obj'")
+ unless blessed($obj);
+
+ unless ($obj->isa('Test2::Event')) {
+ my $pkg = blessed($obj);
+ my $mod_file = pkg_to_file($pkg);
+ my ($ok, $err) = try { require $mod_file };
+
+ $self->abort("Event has unknown type ($pkg), tried to load '$mod_file' but failed: $err")
+ unless $ok;
+
+ $self->abort("'$obj' is not a 'Test2::Event' object")
+ unless $obj->isa('Test2::Event');
+ }
+
+ return $obj;
+}
+
+sub waiting {
+ my $self = shift;
+ require Test2::Event::Waiting;
+ $self->send(
+ GLOBAL => Test2::Event::Waiting->new(
+ trace => Test2::Util::Trace->new(frame => [caller()]),
+ ),
+ 'GLOBAL'
+ );
+ return;
+}
+
+sub DESTROY {
+ my $self = shift;
+
+ return unless defined $self->pid;
+ return unless defined $self->tid;
+
+ return unless $$ == $self->pid;
+ return unless get_tid() == $self->tid;
+
+ my $tempdir = $self->{+TEMPDIR};
+
+ opendir(my $dh, $tempdir) or $self->abort("Could not open temp dir! ($tempdir)");
+ while(my $file = readdir($dh)) {
+ next if $file =~ m/^\.+$/;
+ next if $file =~ m/\.complete$/;
+ my $full = File::Spec->catfile($tempdir, $file);
+
+ my $sep = ipc_separator;
+ if ($file =~ m/^(GLOBAL|HUB$sep)/) {
+ $full =~ m/^(.*)$/;
+ $full = $1; # Untaint it
+ next if $ENV{T2_KEEP_TEMPDIR};
+ my ($ok, $err) = do_unlink($full);
+ $self->abort("Could not unlink IPC file '$full': $err") unless $ok;
+ next;
+ }
+
+ $self->abort("Leftover files in the directory ($full)!\n");
+ }
+ closedir($dh);
+
+ if ($ENV{T2_KEEP_TEMPDIR}) {
+ print STDERR "# Not removing temp dir: $tempdir\n";
+ return;
+ }
+
+ rmdir($tempdir) or warn "Could not remove IPC temp dir ($tempdir)";
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::IPC::Driver::Files - Temp dir + Files concurrency model.
+
+=head1 DESCRIPTION
+
+This is the default, and fallback concurrency model for L<Test2>. This
+sends events between processes and threads using serialized files in a
+temporary directory. This is not particularly fast, but it works everywhere.
+
+=head1 SYNOPSIS
+
+ use Test2::IPC::Driver::Files;
+
+ # IPC is now enabled
+
+=head1 ENVIRONMENT VARIABLES
+
+=over 4
+
+=item T2_KEEP_TEMPDIR=0
+
+When true, the tempdir used by the IPC driver will not be deleted when the test
+is done.
+
+=item T2_TEMPDIR_TEMPLATE='test2-XXXXXX'
+
+This can be used to set the template for the IPC temp dir. The template should
+follow template specifications from L<File::Temp>.
+
+=back
+
+=head1 SEE ALSO
+
+See L<Test2::IPC::Driver> for methods.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm b/Master/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm
new file mode 100755
index 00000000000..857a923c6a2
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Tools/Tiny.pm
@@ -0,0 +1,425 @@
+package Test2::Tools::Tiny;
+use strict;
+use warnings;
+
+use Scalar::Util qw/blessed/;
+
+use Test2::Util qw/try/;
+use Test2::API qw/context run_subtest test2_stack/;
+
+use Test2::Hub::Interceptor();
+use Test2::Hub::Interceptor::Terminator();
+
+our $VERSION = '1.302073';
+
+BEGIN { require Exporter; our @ISA = qw(Exporter) }
+our @EXPORT = qw{
+ ok is isnt like unlike is_deeply diag note skip_all todo plan done_testing
+ warnings exception tests capture
+};
+
+sub ok($;$@) {
+ my ($bool, $name, @diag) = @_;
+ my $ctx = context();
+ $ctx->ok($bool, $name, \@diag);
+ $ctx->release;
+ return $bool ? 1 : 0;
+}
+
+sub is($$;$@) {
+ my ($got, $want, $name, @diag) = @_;
+ my $ctx = context();
+
+ my $bool;
+ if (defined($got) && defined($want)) {
+ $bool = "$got" eq "$want";
+ }
+ elsif (defined($got) xor defined($want)) {
+ $bool = 0;
+ }
+ else { # Both are undef
+ $bool = 1;
+ }
+
+ unless ($bool) {
+ $got = '*NOT DEFINED*' unless defined $got;
+ $want = '*NOT DEFINED*' unless defined $want;
+ unshift @diag => (
+ "GOT: $got",
+ "EXPECTED: $want",
+ );
+ }
+
+ $ctx->ok($bool, $name, \@diag);
+ $ctx->release;
+ return $bool;
+}
+
+sub isnt($$;$@) {
+ my ($got, $want, $name, @diag) = @_;
+ my $ctx = context();
+
+ my $bool;
+ if (defined($got) && defined($want)) {
+ $bool = "$got" ne "$want";
+ }
+ elsif (defined($got) xor defined($want)) {
+ $bool = 1;
+ }
+ else { # Both are undef
+ $bool = 0;
+ }
+
+ unshift @diag => "Strings are the same (they should not be)"
+ unless $bool;
+
+ $ctx->ok($bool, $name, \@diag);
+ $ctx->release;
+ return $bool;
+}
+
+sub like($$;$@) {
+ my ($thing, $pattern, $name, @diag) = @_;
+ my $ctx = context();
+
+ my $bool;
+ if (defined($thing)) {
+ $bool = "$thing" =~ $pattern;
+ unshift @diag => (
+ "Value: $thing",
+ "Does not match: $pattern"
+ ) unless $bool;
+ }
+ else {
+ $bool = 0;
+ unshift @diag => "Got an undefined value.";
+ }
+
+ $ctx->ok($bool, $name, \@diag);
+ $ctx->release;
+ return $bool;
+}
+
+sub unlike($$;$@) {
+ my ($thing, $pattern, $name, @diag) = @_;
+ my $ctx = context();
+
+ my $bool;
+ if (defined($thing)) {
+ $bool = "$thing" !~ $pattern;
+ unshift @diag => (
+ "Unexpected pattern match (it should not match)",
+ "Value: $thing",
+ "Matches: $pattern"
+ ) unless $bool;
+ }
+ else {
+ $bool = 0;
+ unshift @diag => "Got an undefined value.";
+ }
+
+ $ctx->ok($bool, $name, \@diag);
+ $ctx->release;
+ return $bool;
+}
+
+sub is_deeply($$;$@) {
+ my ($got, $want, $name, @diag) = @_;
+ my $ctx = context();
+
+ no warnings 'once';
+ require Data::Dumper;
+ local $Data::Dumper::Sortkeys = 1;
+ local $Data::Dumper::Deparse = 1;
+ local $Data::Dumper::Freezer = 'XXX';
+ local *UNIVERSAL::XXX = sub {
+ my ($thing) = @_;
+ if (ref($thing)) {
+ $thing = {%$thing} if "$thing" =~ m/=HASH/;
+ $thing = [@$thing] if "$thing" =~ m/=ARRAY/;
+ $thing = \"$$thing" if "$thing" =~ m/=SCALAR/;
+ }
+ $_[0] = $thing;
+ };
+
+ my $g = Data::Dumper::Dumper($got);
+ my $w = Data::Dumper::Dumper($want);
+
+ my $bool = $g eq $w;
+
+ my $diff;
+
+ $ctx->ok($bool, $name, [$diff ? $diff : ($g, $w), @diag]);
+ $ctx->release;
+ return $bool;
+}
+
+sub diag {
+ my $ctx = context();
+ $ctx->diag(join '', @_);
+ $ctx->release;
+}
+
+sub note {
+ my $ctx = context();
+ $ctx->note(join '', @_);
+ $ctx->release;
+}
+
+sub skip_all {
+ my ($reason) = @_;
+ my $ctx = context();
+ $ctx->plan(0, SKIP => $reason);
+ $ctx->release if $ctx;
+}
+
+sub todo {
+ my ($reason, $sub) = @_;
+ my $ctx = context();
+
+ # This code is mostly copied from Test2::Todo in the Test2-Suite
+ # distribution.
+ my $hub = test2_stack->top;
+ my $filter = $hub->pre_filter(
+ sub {
+ my ($active_hub, $event) = @_;
+
+ # Turn a diag into a note
+ return Test2::Event::Note->new(%$event) if ref($event) eq 'Test2::Event::Diag';
+
+ # Set todo on ok's
+ if ($hub == $active_hub && $event->isa('Test2::Event::Ok')) {
+ $event->set_todo($reason);
+ $event->set_effective_pass(1);
+ }
+
+ return $event;
+ },
+ inherit => 1,
+ todo => $reason,
+ );
+ $sub->();
+ $hub->pre_unfilter($filter);
+
+ $ctx->release if $ctx;
+}
+
+sub plan {
+ my ($max) = @_;
+ my $ctx = context();
+ $ctx->plan($max);
+ $ctx->release;
+}
+
+sub done_testing {
+ my $ctx = context();
+ $ctx->done_testing;
+ $ctx->release;
+}
+
+sub warnings(&) {
+ my $code = shift;
+ my @warnings;
+ local $SIG{__WARN__} = sub { push @warnings => @_ };
+ $code->();
+ return \@warnings;
+}
+
+sub exception(&) {
+ my $code = shift;
+ local ($@, $!, $SIG{__DIE__});
+ my $ok = eval { $code->(); 1 };
+ my $error = $@ || 'SQUASHED ERROR';
+ return $ok ? undef : $error;
+}
+
+sub tests {
+ my ($name, $code) = @_;
+ my $ctx = context();
+
+ before_each() if __PACKAGE__->can('before_each');
+
+ my $bool = run_subtest($name, $code, 1);
+
+ $ctx->release;
+
+ return $bool;
+}
+
+sub capture(&) {
+ my $code = shift;
+
+ my ($err, $out) = ("", "");
+
+ my $handles = test2_stack->top->format->handles;
+ my ($ok, $e);
+ {
+ my ($out_fh, $err_fh);
+
+ ($ok, $e) = try {
+ open($out_fh, '>', \$out) or die "Failed to open a temporary STDOUT: $!";
+ open($err_fh, '>', \$err) or die "Failed to open a temporary STDERR: $!";
+
+ test2_stack->top->format->set_handles([$out_fh, $err_fh, $out_fh]);
+
+ $code->();
+ };
+ }
+ test2_stack->top->format->set_handles($handles);
+
+ die $e unless $ok;
+
+ $err =~ s/ $/_/mg;
+ $out =~ s/ $/_/mg;
+
+ return {
+ STDOUT => $out,
+ STDERR => $err,
+ };
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Tools::Tiny - Tiny set of tools for unfortunate souls who cannot use
+L<Test2::Suite>.
+
+=head1 DESCRIPTION
+
+You should really look at L<Test2::Suite>. This package is some very basic
+essential tools implemented using L<Test2>. This exists only so that L<Test2>
+and other tools required by L<Test2::Suite> can be tested. This is the package
+L<Test2> uses to test itself.
+
+=head1 USE Test2::Suite INSTEAD
+
+Use L<Test2::Suite> if at all possible.
+
+=head1 EXPORTS
+
+=over 4
+
+=item ok($bool, $name)
+
+=item ok($bool, $name, @diag)
+
+Run a simple assertion.
+
+=item is($got, $want, $name)
+
+=item is($got, $want, $name, @diag)
+
+Assert that 2 strings are the same.
+
+=item isnt($got, $do_not_want, $name)
+
+=item isnt($got, $do_not_want, $name, @diag)
+
+Assert that 2 strings are not the same.
+
+=item like($got, $regex, $name)
+
+=item like($got, $regex, $name, @diag)
+
+Check that the input string matches the regex.
+
+=item unlike($got, $regex, $name)
+
+=item unlike($got, $regex, $name, @diag)
+
+Check that the input string does not match the regex.
+
+=item is_deeply($got, $want, $name)
+
+=item is_deeply($got, $want, $name, @diag)
+
+Check 2 data structures. Please note that this is a I<DUMB> implementation that
+compares the output of L<Data::Dumper> against both structures.
+
+=item diag($msg)
+
+Issue a diagnostics message to STDERR.
+
+=item note($msg)
+
+Issue a diagnostics message to STDOUT.
+
+=item skip_all($reason)
+
+Skip all tests.
+
+=item todo $reason => sub { ... }
+
+Run a block in TODO mode.
+
+=item plan($count)
+
+Set the plan.
+
+=item done_testing()
+
+Set the plan to the current test count.
+
+=item $warnings = warnings { ... }
+
+Capture an arrayref of warnings from the block.
+
+=item $exception = exception { ... }
+
+Capture an exception.
+
+=item tests $name => sub { ... }
+
+Run a subtest.
+
+=item $output = capture { ... }
+
+Capture STDOUT and STDERR output.
+
+Result looks like this:
+
+ {
+ STDOUT => "...",
+ STDERR => "...",
+ }
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Transition.pod b/Master/tlpkg/tlperl/lib/Test2/Transition.pod
new file mode 100755
index 00000000000..95f9d77e9b1
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Transition.pod
@@ -0,0 +1,512 @@
+=pod
+
+=head1 NAME
+
+Test2::Transition - Transition notes when upgrading to Test2
+
+=head1 DESCRIPTION
+
+This is where gotchas and breakages related to the Test2 upgrade are
+documented. The upgrade causes Test::Builder to defer to Test2 under the hood.
+This transition is mostly transparent, but there are a few cases that can trip
+you up.
+
+=head1 THINGS THAT BREAK
+
+This is the list of scenarios that break with the new internals.
+
+=head2 Test::Builder1.5/2 conditionals
+
+=head3 The Problem
+
+a few years back there were two attempts to upgrade/replace Test::Builder.
+Confusingly these were called Test::Builder2 and Test::Builder1.5, in that
+order. Many people put conditionals in their code to check the Test::Builder
+version number and adapt their code accordingly.
+
+The Test::Builder2/1.5 projects both died out. Now the conditional code people
+added has become a mine field. A vast majority of modules broken by Test2 fall
+into this category.
+
+=head3 The Fix
+
+The fix is to remove all Test::Builder1.5/2 related code. Either use the
+legacy Test::Builder API, or use Test2 directly.
+
+=head2 Replacing the Test::Builder singleton
+
+=head3 The Problem
+
+Some test modules would replace the Test::Builder singleton instance with their
+own instance or subclass. This was usually done to intercept or modify results
+as they happened.
+
+The Test::Builder singleton is now a simple compatibility wrapper around
+Test2. The Test::Builder singleton is no longer the central place for
+results. Many results bypass the Test::Builder singleton completely, which
+breaks and behavior intended when replacing the singleton.
+
+=head3 The Fix
+
+If you simply want to intercept all results instead of letting them go to TAP,
+you should look at the L<Test2::API> docs and read about pushing a new hub onto
+the hub stack. Replacing the hub temporarily is now the correct way to
+intercept results.
+
+If your goal is purely monitoring of events use the C<< Test2::Hub->listen() >>
+method exported by Test::More to watch events as they are fired. If you wish to
+modify results before they go to TAP look at the C<< Test2::Hub->filter() >>
+method.
+
+=head2 Directly Accessing Hash Elements
+
+=head3 The Problem
+
+Some modules look directly at hash keys on the Test::Builder singleton. The
+problem here is that the Test::Builder singleton no longer holds anything
+important.
+
+=head3 The Fix
+
+The fix is to use the API specified in L<Test2::API> to look at or modify state
+as needed.
+
+=head2 Subtest indentation
+
+=head3 The Problem
+
+An early change, in fact the change that made Test2 an idea, was a change to
+the indentation of the subtest note. IT was decided it would be more readable
+to outdent the subtest note instead of having it inline with the subtest:
+
+ # subtest foo
+ ok 1 - blah
+ 1..1
+ ok 1 - subtest foo
+
+The old style indented the note:
+
+ # subtest foo
+ ok 1 - blah
+ 1..1
+ ok 1 - subtest foo
+
+This breaks tests that do string comparison of TAP output.
+
+=head3 The Fix
+
+ my $indent = $INC{'Test2/API.pm'} ? '' : ' ';
+
+ is(
+ $subtest_output,
+ "${indent}# subtest foo",
+ "Got subtest note"
+ );
+
+Check if C<$INC{'Test2/API.pm'}> is set, if it is then no indentation should be
+expected. If it is not set than the old Test::Builder is in use, indentation
+should be expected.
+
+=head1 DISTRIBUTIONS THAT BREAK OR NEED TO BE UPGRADED
+
+This is a list of cpan modules that have been known to have been broken by the
+upgrade at one point.
+
+=head2 WORKS BUT TESTS WILL FAIL
+
+These modules still function correctly, but their test suites will not pass. If
+you already have these modules installed then you can continue to use them. If
+you are trying to install them after upgrading Test::Builder you will need to
+force installation, or bypass the broken tests.
+
+=over 4
+
+=item Test::DBIx::Class::Schema
+
+This module has a test that appears to work around a Test::Builder bug. The bug
+appears to have been fixed by Test2, which means the workaround causes a
+failure. This can be easily updated, but nobody has done so yet.
+
+Known broken in versions: 1.0.9 and older
+
+=item Test::Kit
+
+This actually works fine, but will not install because L<Test::Aggregate> is in
+the dependency chain.
+
+See the L<Test::Aggregate> info below for additional information.
+
+=item Device::Chip
+
+Tests break due to subtest indentation.
+
+Known broken in version 0.07. Apparently works fine in 0.06 though. Patch has
+been submitted to fix the issue.
+
+=back
+
+=head2 UPGRADE SUGGESTED
+
+These are modules that did not break, but had broken test suites that have
+since been fixed.
+
+=over 4
+
+=item Test::Exception
+
+Old versions work fine, but have a minor test name behavior that breaks with
+Test2. Old versions will no longer install because of this. The latest version
+on CPAN will install just fine. Upgrading is not required, but is recommended.
+
+Fixed in version: 0.43
+
+=item Data::Peek
+
+Some tests depended on C<$!> and C<$?> being modified in subtle ways. A patch
+was applied to correct things that changed.
+
+The module itself works fine, there is no need to upgrade.
+
+Fixed in version: 0.45
+
+=item circular::require
+
+Some tests were fragile and required base.pm to be loaded at a late stage.
+Test2 was loading base.pm too early. The tests were updated to fix this.
+
+The module itself never broke, you do not need to upgrade.
+
+Fixed in version: 0.12
+
+=item Test::Module::Used
+
+A test worked around a now-fixed planning bug. There is no need to upgrade if
+you have an old version installed. New versions install fine if you want them.
+
+Fixed in version: 0.2.5
+
+=item Test::Moose::More
+
+Some tests were fragile, but have been fixed. The actual breakage was from the
+subtest comment indentation change.
+
+No need to upgrade, old versions work fine. Only new versions will install.
+
+Fixed in version: 0.025
+
+=item Test::FITesque
+
+This was broken by a bugfix to how planning is done. The test was updated after
+the bugfix.
+
+Fixed in version: 0.04
+
+=item autouse
+
+A test broke because it depended on Scalar::Util not being loaded. Test2 loads
+Scalar::Util. The test was updated to load Test2 after checking Scalar::Util's
+load status.
+
+There is no need to upgrade if you already have it installed.
+
+Fixed in version: 1.11
+
+=back
+
+=head2 NEED TO UPGRADE
+
+=over 4
+
+=item Test::SharedFork
+
+Old versions need to directly access Test::Builder singleton hash elements. The
+latest version on CPAN will still do this on old Test::Builder, but will defer
+to L<Test2::IPC> on Test2.
+
+Fixed in version: 0.35
+
+=item Test::Builder::Clutch
+
+This works by doing overriding methods on the singleton, and directly accessing
+hash values on the singleton. A new version has been released that uses the
+Test2 API to accomplish the same result in a saner way.
+
+Fixed in version: 0.07
+
+=item Test::Dist::VersionSync
+
+This had Test::Builder2 conditionals. This was fixed by removing the
+conditionals.
+
+Fixed in version: 1.1.4
+
+=item Test::Modern
+
+This relied on C<< Test::Builder->_try() >> which was a private method,
+documented as something nobody should use. This was fixed by using a different
+tool.
+
+Fixed in version: 0.012
+
+=item Test::UseAllModules
+
+Version 0.14 relied on C<< Test::Builder->history >> which was available in
+Test::Builder 1.5. Versions 0.12 and 0.13 relied on other Test::Builder
+internals.
+
+Fixed in version: 0.15
+
+=back
+
+=head2 STILL BROKEN
+
+=over 4
+
+=item Test::Aggregate
+
+This distribution directly accesses the hash keys in the L<Test::Builder>
+singleton. It also approaches the problem from the wrong angle, please consider
+using L<Test2::Harness> or L<App::ForkProve> which both solve the same problem
+at the harness level.
+
+Still broken as of version: 0.373
+
+=item Test::Wrapper
+
+This module directly uses hash keys in the L<Test::Builder> singleton. This
+module is also obsolete thanks to the benefits of L<Test2>. Use C<intercept()>
+from L<Test2::API> to achieve a similar result.
+
+Still broken as of version: 0.3.0
+
+=item Test::ParallelSubtest
+
+This module overrides C<Test::Builder::subtest()> and
+C<Test::Builder::done_testing()>. It also directly accesses hash elements of
+the singleton. It has not yet been fixed.
+
+Alternatives: L<Test2::AsyncSubtest> and L<Test2::Workflow> (not stable).
+
+Still broken as of version: 0.05
+
+=item Test::Pretty
+
+See https://github.com/tokuhirom/Test-Pretty/issues/25
+
+The author admits the module is crazy, and he is awaiting a stable release of
+something new (Test2) to completely rewrite it in a sane way.
+
+Still broken as of version: 0.32
+
+=item Test::More::Prefix
+
+The current version, 0.005 is broken. A patch has been applied in git, and
+released in 0.006, but a version issue with 0.006 prevents its installation.
+
+Still broken as of version: 0.005
+Potentially fixed in version: 0.006 (not installable)
+
+=item Net::BitTorrent
+
+The tests for this module directly access L<Test::Builder> hash keys. Most, if
+not all of these hash keys have public API methods that could be used instead
+to avoid the problem.
+
+Still broken in version: 0.052
+
+=item Test::Group
+
+It monkeypatches Test::Builder, and calls it "black magic" in the code.
+
+Still broken as of version: 0.20
+
+=item Test::Flatten
+
+This modifies the Test::Builder internals in many ways. A better was to
+accomplish the goal of this module is to write your own subtest function.
+
+Still broken as of version: 0.11
+
+=item Log::Dispatch::Config::TestLog
+
+Modifies Test::Builder internals.
+
+Still broken as of version: 0.02
+
+=item Test::Able
+
+Modifies Test::Builder internals.
+
+Still broken as of version: 0.11
+
+=back
+
+=head1 MAKE ASSERTIONS -> SEND EVENTS
+
+=head2 LEGACY
+
+ use Test::Builder;
+
+ # A majority of tools out there do this:
+ # my $TB = Test::Builder->new;
+ # This works, but has always been wrong, forcing Test::Builder to implement
+ # subtests as a horrific hack. It also causes problems for tools that try
+ # to replace the singleton (also discouraged).
+
+ sub my_ok($;$) {
+ my ($bool, $name) = @_;
+ my $TB = Test::Builder->new;
+ $TB->ok($bool, $name);
+ }
+
+ sub my_diag($) {
+ my ($msg) = @_;
+ my $TB = Test::Builder->new;
+ $TB->diag($msg);
+ }
+
+=head2 TEST2
+
+ use Test2::API qw/context/;
+
+ sub my_ok($;$) {
+ my ($bool, $name) = @_;
+ my $ctx = context();
+ $ctx->ok($bool, $name);
+ $ctx->release;
+ }
+
+ sub my_diag($) {
+ my ($msg) = @_;
+ my $ctx = context();
+ $ctx->diag($msg);
+ $ctx->release;
+ }
+
+The context object has API compatible implementations of the following methods:
+
+=over 4
+
+=item ok($bool, $name)
+
+=item diag(@messages)
+
+=item note(@messages)
+
+=item subtest($name, $code)
+
+=back
+
+If you are looking for helpers with C<is>, C<like>, and others, see
+L<Test2::Suite>.
+
+=head1 WRAP EXISTING TOOLS
+
+=head2 LEGACY
+
+ use Test::More;
+
+ sub exclusive_ok {
+ my ($bool1, $bool2, $name) = @_;
+
+ # Ensure errors are reported 1 level higher
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+
+ $ok = $bool1 || $bool2;
+ $ok &&= !($bool1 && $bool2);
+ ok($ok, $name);
+
+ return $bool;
+ }
+
+Every single tool in the chain from this, to C<ok>, to anything C<ok> calls
+needs to increment the C<$Level> variable. When an error occurs Test::Builder
+will do a trace to the stack frame determined by C<$Level>, and report that
+file+line as the one where the error occurred. If you or any other tool you use
+forgets to set C<$Level> then errors will be reported to the wrong place.
+
+=head2 TEST2
+
+ use Test::More;
+
+ sub exclusive_ok {
+ my ($bool1, $bool2, $name) = @_;
+
+ # Grab and store the context, even if you do not need to use it
+ # directly.
+ my $ctx = context();
+
+ $ok = $bool1 || $bool2;
+ $ok &&= !($bool1 && $bool2);
+ ok($ok, $name);
+
+ $ctx->release;
+ return $bool;
+ }
+
+Instead of using C<$Level> to perform a backtrace, Test2 uses a context
+object. In this sample you create a context object and store it. This locks the
+context (errors report 1 level up from here) for all wrapped tools to find. You
+do not need to use the context object, but you do need to store it in a
+variable. Once the sub ends the C<$ctx> variable is destroyed which lets future
+tools find their own.
+
+=head1 USING UTF8
+
+=head2 LEGACY
+
+ # Set the mode BEFORE anything loads Test::Builder
+ use open ':std', ':encoding(utf8)';
+ use Test::More;
+
+Or
+
+ # Modify the filehandles
+ my $builder = Test::More->builder;
+ binmode $builder->output, ":encoding(utf8)";
+ binmode $builder->failure_output, ":encoding(utf8)";
+ binmode $builder->todo_output, ":encoding(utf8)";
+
+=head2 TEST2
+
+ use Test2::API qw/test2_stack/;
+
+ test2_stack->top->format->encoding('utf8');
+
+Though a much better way is to use the L<Test2::Plugin::UTF8> plugin, which is
+part of L<Test2::Suite>.
+
+=head1 AUTHORS, CONTRIBUTORS AND REVIEWERS
+
+The following people have all contributed to this document in some way, even if
+only for review.
+
+=over 4
+
+=item Chad Granum (EXODIST) E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 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 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<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>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Util.pm b/Master/tlpkg/tlperl/lib/Test2/Util.pm
new file mode 100755
index 00000000000..53379d41dde
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Util.pm
@@ -0,0 +1,258 @@
+package Test2::Util;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Config qw/%Config/;
+
+our @EXPORT_OK = qw{
+ try
+
+ pkg_to_file
+
+ get_tid USE_THREADS
+ CAN_THREAD
+ CAN_REALLY_FORK
+ CAN_FORK
+
+ IS_WIN32
+
+ ipc_separator
+};
+BEGIN { require Exporter; our @ISA = qw(Exporter) }
+
+BEGIN {
+ *IS_WIN32 = ($^O eq 'MSWin32') ? sub() { 1 } : sub() { 0 };
+}
+
+sub _can_thread {
+ return 0 unless $] >= 5.008001;
+ return 0 unless $Config{'useithreads'};
+
+ # Threads are broken on perl 5.10.0 built with gcc 4.8+
+ if ($] == 5.010000 && $Config{'ccname'} eq 'gcc' && $Config{'gccversion'}) {
+ my @parts = split /\./, $Config{'gccversion'};
+ return 0 if $parts[0] > 4 || ($parts[0] == 4 && $parts[1] >= 8);
+ }
+
+ # Change to a version check if this ever changes
+ return 0 if $INC{'Devel/Cover.pm'};
+ return 1;
+}
+
+sub _can_fork {
+ return 1 if $Config{d_fork};
+ return 0 unless IS_WIN32 || $^O eq 'NetWare';
+ return 0 unless $Config{useithreads};
+ return 0 unless $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/;
+
+ return _can_thread();
+}
+
+BEGIN {
+ no warnings 'once';
+ *CAN_THREAD = _can_thread() ? sub() { 1 } : sub() { 0 };
+}
+my $can_fork;
+sub CAN_FORK () {
+ return $can_fork
+ if defined $can_fork;
+ $can_fork = !!_can_fork();
+ no warnings 'redefine';
+ *CAN_FORK = $can_fork ? sub() { 1 } : sub() { 0 };
+ $can_fork;
+}
+my $can_really_fork;
+sub CAN_REALLY_FORK () {
+ return $can_really_fork
+ if defined $can_really_fork;
+ $can_really_fork = !!$Config{d_fork};
+ no warnings 'redefine';
+ *CAN_REALLY_FORK = $can_really_fork ? sub() { 1 } : sub() { 0 };
+ $can_really_fork;
+}
+
+sub _manual_try(&;@) {
+ my $code = shift;
+ my $args = \@_;
+ my $err;
+
+ my $die = delete $SIG{__DIE__};
+
+ eval { $code->(@$args); 1 } or $err = $@ || "Error was squashed!\n";
+
+ $die ? $SIG{__DIE__} = $die : delete $SIG{__DIE__};
+
+ return (!defined($err), $err);
+}
+
+sub _local_try(&;@) {
+ my $code = shift;
+ my $args = \@_;
+ my $err;
+
+ no warnings;
+ local $SIG{__DIE__};
+ eval { $code->(@$args); 1 } or $err = $@ || "Error was squashed!\n";
+
+ return (!defined($err), $err);
+}
+
+# Older versions of perl have a nasty bug on win32 when localizing a variable
+# before forking or starting a new thread. So for those systems we use the
+# non-local form. When possible though we use the faster 'local' form.
+BEGIN {
+ if (IS_WIN32 && $] < 5.020002) {
+ *try = \&_manual_try;
+ }
+ else {
+ *try = \&_local_try;
+ }
+}
+
+BEGIN {
+ if (CAN_THREAD) {
+ if ($INC{'threads.pm'}) {
+ # Threads are already loaded, so we do not need to check if they
+ # are loaded each time
+ *USE_THREADS = sub() { 1 };
+ *get_tid = sub() { threads->tid() };
+ }
+ else {
+ # :-( Need to check each time to see if they have been loaded.
+ *USE_THREADS = sub() { $INC{'threads.pm'} ? 1 : 0 };
+ *get_tid = sub() { $INC{'threads.pm'} ? threads->tid() : 0 };
+ }
+ }
+ else {
+ # No threads, not now, not ever!
+ *USE_THREADS = sub() { 0 };
+ *get_tid = sub() { 0 };
+ }
+}
+
+sub pkg_to_file {
+ my $pkg = shift;
+ my $file = $pkg;
+ $file =~ s{(::|')}{/}g;
+ $file .= '.pm';
+ return $file;
+}
+
+sub ipc_separator() { "~" }
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Util - Tools used by Test2 and friends.
+
+=head1 DESCRIPTION
+
+Collection of tools used by L<Test2> and friends.
+
+=head1 EXPORTS
+
+All exports are optional. You must specify subs to import.
+
+=over 4
+
+=item ($success, $error) = try { ... }
+
+Eval the codeblock, return success or failure, and the error message. This code
+protects $@ and $!, they will be restored by the end of the run. This code also
+temporarily blocks $SIG{DIE} handlers.
+
+=item protect { ... }
+
+Similar to try, except that it does not catch exceptions. The idea here is to
+protect $@ and $! from changes. $@ and $! will be restored to whatever they
+were before the run so long as it is successful. If the run fails $! will still
+be restored, but $@ will contain the exception being thrown.
+
+=item CAN_FORK
+
+True if this system is capable of true or pseudo-fork.
+
+=item CAN_REALLY_FORK
+
+True if the system can really fork. This will be false for systems where fork
+is emulated.
+
+=item CAN_THREAD
+
+True if this system is capable of using threads.
+
+=item USE_THREADS
+
+Returns true if threads are enabled, false if they are not.
+
+=item get_tid
+
+This will return the id of the current thread when threads are enabled,
+otherwise it returns 0.
+
+=item my $file = pkg_to_file($package)
+
+Convert a package name to a filename.
+
+=back
+
+=head1 NOTES && CAVEATS
+
+=over 4
+
+=item 5.10.0
+
+Perl 5.10.0 has a bug when compiled with newer gcc versions. This bug causes a
+segfault whenever a new thread is launched. Test2 will attempt to detect
+this, and note that the system is not capable of forking when it is detected.
+
+=item Devel::Cover
+
+Devel::Cover does not support threads. CAN_THREAD will return false if
+Devel::Cover is loaded before the check is first run.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=item Kent Fredric E<lt>kentnl@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm b/Master/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm
new file mode 100755
index 00000000000..f9c611e0f25
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Util/ExternalMeta.pm
@@ -0,0 +1,182 @@
+package Test2::Util::ExternalMeta;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Carp qw/croak/;
+
+sub META_KEY() { '_meta' }
+
+our @EXPORT = qw/meta set_meta get_meta delete_meta/;
+BEGIN { require Exporter; our @ISA = qw(Exporter) }
+
+sub set_meta {
+ my $self = shift;
+ my ($key, $value) = @_;
+
+ validate_key($key);
+
+ $self->{+META_KEY} ||= {};
+ $self->{+META_KEY}->{$key} = $value;
+}
+
+sub get_meta {
+ my $self = shift;
+ my ($key) = @_;
+
+ validate_key($key);
+
+ my $meta = $self->{+META_KEY} or return undef;
+ return $meta->{$key};
+}
+
+sub delete_meta {
+ my $self = shift;
+ my ($key) = @_;
+
+ validate_key($key);
+
+ my $meta = $self->{+META_KEY} or return undef;
+ delete $meta->{$key};
+}
+
+sub meta {
+ my $self = shift;
+ my ($key, $default) = @_;
+
+ validate_key($key);
+
+ my $meta = $self->{+META_KEY};
+ return undef unless $meta || defined($default);
+
+ unless($meta) {
+ $meta = {};
+ $self->{+META_KEY} = $meta;
+ }
+
+ $meta->{$key} = $default
+ if defined($default) && !defined($meta->{$key});
+
+ return $meta->{$key};
+}
+
+sub validate_key {
+ my $key = shift;
+
+ return if $key && !ref($key);
+
+ my $render_key = defined($key) ? "'$key'" : 'undef';
+ croak "Invalid META key: $render_key, keys must be true, and may not be references";
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Util::ExternalMeta - Allow third party tools to safely attach meta-data
+to your instances.
+
+=head1 DESCRIPTION
+
+This package lets you define a clear, and consistent way to allow third party
+tools to attach meta-data to your instances. If your object consumes this
+package, and imports its methods, then third party meta-data has a safe place
+to live.
+
+=head1 SYNOPSIS
+
+ package My::Object;
+ use strict;
+ use warnings;
+
+ use Test2::Util::ExternalMeta qw/meta get_meta set_meta delete_meta/;
+
+ ...
+
+Now to use it:
+
+ my $inst = My::Object->new;
+
+ $inst->set_meta(foo => 'bar');
+ my $val = $inst->get_meta('foo');
+
+=head1 WHERE IS THE DATA STORED?
+
+This package assumes your instances are blessed hashrefs, it will not work if
+that is not true. It will store all meta-data in the C<_meta> key on your
+objects hash. If your object makes use of the C<_meta> key in its underlying
+hash, then there is a conflict and you cannot use this package.
+
+=head1 EXPORTS
+
+=over 4
+
+=item $val = $obj->meta($key)
+
+=item $val = $obj->meta($key, $default)
+
+This will get the value for a specified meta C<$key>. Normally this will return
+C<undef> when there is no value for the C<$key>, however you can specify a
+C<$default> value to set when no value is already set.
+
+=item $val = $obj->get_meta($key)
+
+This will get the value for a specified meta C<$key>. This does not have the
+C<$default> overhead that C<meta()> does.
+
+=item $val = $obj->delete_meta($key)
+
+This will remove the value of a specified meta C<$key>. The old C<$val> will be
+returned.
+
+=item $obj->set_meta($key, $val)
+
+Set the value of a specified meta C<$key>.
+
+=back
+
+=head1 META-KEY RESTRICTIONS
+
+Meta keys must be defined, and must be true when used as a boolean. Keys may
+not be references. You are free to stringify a reference C<"$ref"> for use as a
+key, but this package will not stringify it for you.
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Util/HashBase.pm b/Master/tlpkg/tlperl/lib/Test2/Util/HashBase.pm
new file mode 100755
index 00000000000..76041efe5ee
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Util/HashBase.pm
@@ -0,0 +1,289 @@
+package Test2::Util::HashBase;
+use strict;
+use warnings;
+
+#################################################################
+# #
+# This is a generated file! Do not modify this file directly! #
+# Use hashbase_inc.pl script to regenerate this file. #
+# The script is part of the Object::HashBase distribution. #
+# #
+#################################################################
+
+{
+ no warnings 'once';
+ $Test2::Util::HashBase::VERSION = '0.002';
+ *Test2::Util::HashBase::ATTR_SUBS = \%Object::HashBase::ATTR_SUBS;
+}
+
+
+require Carp;
+{
+ no warnings 'once';
+ $Carp::Internal{+__PACKAGE__} = 1;
+}
+
+BEGIN {
+ # these are not strictly equivalent, but for out use we don't care
+ # about order
+ *_isa = ($] >= 5.010 && require mro) ? \&mro::get_linear_isa : sub {
+ no strict 'refs';
+ my @packages = ($_[0]);
+ my %seen;
+ for my $package (@packages) {
+ push @packages, grep !$seen{$_}++, @{"$package\::ISA"};
+ }
+ return \@packages;
+ }
+}
+
+my %STRIP = (
+ '^' => 1,
+ '-' => 1,
+);
+
+sub import {
+ my $class = shift;
+ my $into = caller;
+
+ my $isa = _isa($into);
+ my $attr_subs = $Test2::Util::HashBase::ATTR_SUBS{$into} ||= {};
+ my %subs = (
+ ($into->can('new') ? () : (new => \&_new)),
+ (map %{$Test2::Util::HashBase::ATTR_SUBS{$_} || {}}, @{$isa}[1 .. $#$isa]),
+ (
+ map {
+ my $p = substr($_, 0, 1);
+ my $x = $_;
+ substr($x, 0, 1) = '' if $STRIP{$p};
+ my ($sub, $attr) = (uc $x, $x);
+ $sub => ($attr_subs->{$sub} = sub() { $attr }),
+ $attr => sub { $_[0]->{$attr} },
+ $p eq '-' ? ("set_$attr" => sub { Carp::croak("'$attr' is read-only") })
+ : $p eq '^' ? ("set_$attr" => sub { Carp::carp("set_$attr() is deprecated"); $_[0]->{$attr} = $_[1] })
+ : ("set_$attr" => sub { $_[0]->{$attr} = $_[1] }),
+ } @_
+ ),
+ );
+
+ no strict 'refs';
+ *{"$into\::$_"} = $subs{$_} for keys %subs;
+}
+
+sub _new {
+ my ($class, %params) = @_;
+ my $self = bless \%params, $class;
+ $self->init if $self->can('init');
+ $self;
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Util::HashBase - Build hash based classes.
+
+=head1 SYNOPSIS
+
+A class:
+
+ package My::Class;
+ use strict;
+ use warnings;
+
+ # Generate 3 accessors
+ use Test2::Util::HashBase qw/foo -bar ^baz/;
+
+ # Chance to initialize defaults
+ sub init {
+ my $self = shift; # No other args
+ $self->{+FOO} ||= "foo";
+ $self->{+BAR} ||= "bar";
+ $self->{+BAZ} ||= "baz";
+ }
+
+ sub print {
+ print join ", " => map { $self->{$_} } FOO, BAR, BAZ;
+ }
+
+Subclass it
+
+ package My::Subclass;
+ use strict;
+ use warnings;
+
+ # Note, you should subclass before loading HashBase.
+ use base 'My::Class';
+ use Test2::Util::HashBase qw/bat/;
+
+ sub init {
+ my $self = shift;
+
+ # We get the constants from the base class for free.
+ $self->{+FOO} ||= 'SubFoo';
+ $self->{+BAT} ||= 'bat';
+
+ $self->SUPER::init();
+ }
+
+use it:
+
+ package main;
+ use strict;
+ use warnings;
+ use My::Class;
+
+ my $one = My::Class->new(foo => 'MyFoo', bar => 'MyBar');
+
+ # Accessors!
+ my $foo = $one->foo; # 'MyFoo'
+ my $bar = $one->bar; # 'MyBar'
+ my $baz = $one->baz; # Defaulted to: 'baz'
+
+ # Setters!
+ $one->set_foo('A Foo');
+
+ #'-bar' means read-only, so the setter will throw an exception (but is defined).
+ $one->set_bar('A bar');
+
+ # '^baz' means deprecated setter, this will warn about the setter being
+ # deprecated.
+ $one->set_baz('A Baz');
+
+ $one->{+FOO} = 'xxx';
+
+=head1 DESCRIPTION
+
+This package is used to generate classes based on hashrefs. Using this class
+will give you a C<new()> method, as well as generating accessors you request.
+Generated accessors will be getters, C<set_ACCESSOR> setters will also be
+generated for you. You also get constants for each accessor (all caps) which
+return the key into the hash for that accessor. Single inheritance is also
+supported.
+
+=head1 THIS IS A BUNDLED COPY OF HASHBASE
+
+This is a bundled copy of L<Object::HashBase>. This file was generated using
+the
+C</home/exodist/perl5/perlbrew/perls/main/bin/hashbase_inc.pl>
+script.
+
+=head1 METHODS
+
+=head2 PROVIDED BY HASH BASE
+
+=over 4
+
+=item $it = $class->new(@VALUES)
+
+Create a new instance using key/value pairs.
+
+HashBase will not export C<new()> if there is already a C<new()> method in your
+packages inheritance chain.
+
+B<If you do not want this method you can define your own> you just have to
+declare it before loading L<Test2::Util::HashBase>.
+
+ package My::Package;
+
+ # predeclare new() so that HashBase does not give us one.
+ sub new;
+
+ use Test2::Util::HashBase qw/foo bar baz/;
+
+ # Now we define our own new method.
+ sub new { ... }
+
+This makes it so that HashBase sees that you have your own C<new()> method.
+Alternatively you can define the method before loading HashBase instead of just
+declaring it, but that scatters your use statements.
+
+=back
+
+=head2 HOOKS
+
+=over 4
+
+=item $self->init()
+
+This gives you the chance to set some default values to your fields. The only
+argument is C<$self> with its indexes already set from the constructor.
+
+=back
+
+=head1 ACCESSORS
+
+To generate accessors you list them when using the module:
+
+ use Test2::Util::HashBase qw/foo/;
+
+This will generate the following subs in your namespace:
+
+=over 4
+
+=item foo()
+
+Getter, used to get the value of the C<foo> field.
+
+=item set_foo()
+
+Setter, used to set the value of the C<foo> field.
+
+=item FOO()
+
+Constant, returns the field C<foo>'s key into the class hashref. Subclasses will
+also get this function as a constant, not simply a method, that means it is
+copied into the subclass namespace.
+
+The main reason for using these constants is to help avoid spelling mistakes
+and similar typos. It will not help you if you forget to prefix the '+' though.
+
+=back
+
+=head1 SUBCLASSING
+
+You can subclass an existing HashBase class.
+
+ use base 'Another::HashBase::Class';
+ use Test2::Util::HashBase qw/foo bar baz/;
+
+The base class is added to C<@ISA> for you, and all constants from base classes
+are added to subclasses automatically.
+
+=head1 SOURCE
+
+The source code repository for HashBase can be found at
+F<http://github.com/Test-More/HashBase/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Test2/Util/Trace.pm b/Master/tlpkg/tlperl/lib/Test2/Util/Trace.pm
new file mode 100755
index 00000000000..0f10bcb6ad3
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Test2/Util/Trace.pm
@@ -0,0 +1,186 @@
+package Test2::Util::Trace;
+use strict;
+use warnings;
+
+our $VERSION = '1.302073';
+
+
+use Test2::Util qw/get_tid pkg_to_file/;
+
+use Carp qw/confess/;
+
+use Test2::Util::HashBase qw{frame detail pid tid};
+
+sub init {
+ confess "The 'frame' attribute is required"
+ unless $_[0]->{+FRAME};
+
+ $_[0]->{+PID} = $$ unless defined $_[0]->{+PID};
+ $_[0]->{+TID} = get_tid() unless defined $_[0]->{+TID};
+}
+
+sub snapshot { bless {%{$_[0]}}, __PACKAGE__ };
+
+sub debug {
+ my $self = shift;
+ return $self->{+DETAIL} if $self->{+DETAIL};
+ my ($pkg, $file, $line) = $self->call;
+ return "at $file line $line";
+}
+
+sub alert {
+ my $self = shift;
+ my ($msg) = @_;
+ warn $msg . ' ' . $self->debug . ".\n";
+}
+
+sub throw {
+ my $self = shift;
+ my ($msg) = @_;
+ die $msg . ' ' . $self->debug . ".\n";
+}
+
+sub call { @{$_[0]->{+FRAME}} }
+
+sub package { $_[0]->{+FRAME}->[0] }
+sub file { $_[0]->{+FRAME}->[1] }
+sub line { $_[0]->{+FRAME}->[2] }
+sub subname { $_[0]->{+FRAME}->[3] }
+
+sub from_json {
+ my $class = shift;
+ my %p = @_;
+
+ my $trace_pkg = delete $p{__PACKAGE__};
+ require(pkg_to_file($trace_pkg));
+
+ return $trace_pkg->new(%p);
+}
+
+sub TO_JSON {
+ my $self = shift;
+ return {%$self, __PACKAGE__ => ref $self};
+}
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Test2::Util::Trace - Debug information for events
+
+=head1 DESCRIPTION
+
+The L<Test2::API::Context> object, as well as all L<Test2::Event> types need to
+have access to information about where they were created. This object
+represents that information.
+
+=head1 SYNOPSIS
+
+ use Test2::Util::Trace;
+
+ my $trace = Test2::Util::Trace->new(
+ frame => [$package, $file, $line, $subname],
+ );
+
+=head1 METHODS
+
+=over 4
+
+=item $trace->set_detail($msg)
+
+=item $msg = $trace->detail
+
+Used to get/set a custom trace message that will be used INSTEAD of
+C<< at <FILE> line <LINE> >> when calling C<< $trace->debug >>.
+
+=item $str = $trace->debug
+
+Typically returns the string C<< at <FILE> line <LINE> >>. If C<detail> is set
+then its value will be returned instead.
+
+=item $trace->alert($MESSAGE)
+
+This issues a warning at the frame (filename and line number where
+errors should be reported).
+
+=item $trace->throw($MESSAGE)
+
+This throws an exception at the frame (filename and line number where
+errors should be reported).
+
+=item $frame = $trace->frame()
+
+Get the call frame arrayref.
+
+=item ($package, $file, $line, $subname) = $trace->call()
+
+Get the caller details for the debug-info. This is where errors should be
+reported.
+
+=item $pkg = $trace->package
+
+Get the debug-info package.
+
+=item $file = $trace->file
+
+Get the debug-info filename.
+
+=item $line = $trace->line
+
+Get the debug-info line number.
+
+=item $subname = $trace->subname
+
+Get the debug-info subroutine name.
+
+=item $hashref = $t->TO_JSON
+
+This returns a hashref suitable for passing to the C<<
+Test2::Util::Trace->from_json >> constructor. It is intended for use with the
+L<JSON> family of modules, which will look for a C<TO_JSON> method when
+C<convert_blessed> is true.
+
+=item $t = Test2::Util::Trace->from_json(%$hashref)
+
+Given the hash of data returned by C<< $t->TO_JSON >>, this method returns a
+new trace object of the appropriate subclass.
+
+=back
+
+=head1 SOURCE
+
+The source code repository for Test2 can be found at
+F<http://github.com/Test-More/test-more/>.
+
+=head1 MAINTAINERS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 AUTHORS
+
+=over 4
+
+=item Chad Granum E<lt>exodist@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright 2016 Chad Granum E<lt>exodist@cpan.orgE<gt>.
+
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+
+See F<http://dev.perl.org/licenses/>
+
+=cut
diff --git a/Master/tlpkg/tlperl/lib/Thread/Queue.pm b/Master/tlpkg/tlperl/lib/Thread/Queue.pm
index 2f87eed9c73..c0d21806536 100644
--- a/Master/tlpkg/tlperl/lib/Thread/Queue.pm
+++ b/Master/tlpkg/tlperl/lib/Thread/Queue.pm
@@ -3,7 +3,7 @@ package Thread::Queue;
use strict;
use warnings;
-our $VERSION = '3.09';
+our $VERSION = '3.12';
$VERSION = eval $VERSION;
use threads::shared 1.21;
@@ -65,8 +65,8 @@ sub end
lock(%$self);
# No more data is coming
$$self{'ENDED'} = 1;
- # Try to release at least one blocked thread
- cond_signal(%$self);
+
+ cond_signal(%$self); # Unblock possibly waiting threads
}
# Return 1 or more items from the head of a queue, blocking if needed
@@ -80,17 +80,21 @@ sub dequeue
# Wait for requisite number of items
cond_wait(%$self) while ((@$queue < $count) && ! $$self{'ENDED'});
- cond_signal(%$self) if ((@$queue >= $count) || $$self{'ENDED'});
# If no longer blocking, try getting whatever is left on the queue
return $self->dequeue_nb($count) if ($$self{'ENDED'});
# Return single item
- return shift(@$queue) if ($count == 1);
+ if ($count == 1) {
+ my $item = shift(@$queue);
+ cond_signal(%$self); # Unblock possibly waiting threads
+ return $item;
+ }
# Return multiple items
my @items;
push(@items, shift(@$queue)) for (1..$count);
+ cond_signal(%$self); # Unblock possibly waiting threads
return @items;
}
@@ -104,7 +108,11 @@ sub dequeue_nb
my $count = @_ ? $self->_validate_count(shift) : 1;
# Return single item
- return shift(@$queue) if ($count == 1);
+ if ($count == 1) {
+ my $item = shift(@$queue);
+ cond_signal(%$self); # Unblock possibly waiting threads
+ return $item;
+ }
# Return multiple items
my @items;
@@ -112,6 +120,7 @@ sub dequeue_nb
last if (! @$queue);
push(@items, shift(@$queue));
}
+ cond_signal(%$self); # Unblock possibly waiting threads
return @items;
}
@@ -135,7 +144,6 @@ sub dequeue_timed
while ((@$queue < $count) && ! $$self{'ENDED'}) {
last if (! cond_timedwait(%$self, $timeout));
}
- cond_signal(%$self) if ((@$queue >= $count) || $$self{'ENDED'});
# Get whatever we need off the queue if available
return $self->dequeue_nb($count);
@@ -187,8 +195,7 @@ sub insert
# Add previous items back onto the queue
push(@$queue, @tmp);
- # Soup's up
- cond_signal(%$self);
+ cond_signal(%$self); # Unblock possibly waiting threads
}
# Remove items from anywhere in a queue
@@ -206,7 +213,7 @@ sub extract
$index += @$queue;
if ($index < 0) {
$count += $index;
- return if ($count <= 0); # Beyond the head of the queue
+ return if ($count <= 0); # Beyond the head of the queue
return $self->dequeue_nb($count); # Extract from the head
}
}
@@ -224,6 +231,8 @@ sub extract
# Add back any removed items
push(@$queue, @tmp);
+ cond_signal(%$self); # Unblock possibly waiting threads
+
# Return single item
return $items[0] if ($count == 1);
@@ -263,14 +272,19 @@ sub _validate_count
if (! defined($count) ||
! looks_like_number($count) ||
(int($count) != $count) ||
- ($count < 1))
+ ($count < 1) ||
+ ($$self{'LIMIT'} && $count > $$self{'LIMIT'}))
{
require Carp;
my ($method) = (caller(1))[3];
my $class_name = ref($self);
$method =~ s/$class_name\:://;
$count = 'undef' if (! defined($count));
- Carp::croak("Invalid 'count' argument ($count) to '$method' method");
+ if ($$self{'LIMIT'} && $count > $$self{'LIMIT'}) {
+ Carp::croak("'count' argument ($count) to '$method' method exceeds queue size limit ($$self{'LIMIT'})");
+ } else {
+ Carp::croak("Invalid 'count' argument ($count) to '$method' method");
+ }
}
return $count;
@@ -304,7 +318,7 @@ Thread::Queue - Thread-safe queues
=head1 VERSION
-This document describes Thread::Queue version 3.09
+This document describes Thread::Queue version 3.12
=head1 SYNOPSIS
@@ -494,6 +508,9 @@ C<limit> does not prevent enqueuing items beyond that count:
# 'undef')
$q->limit = 0; # Queue size is now unlimited
+Calling any of the dequeue methods with C<COUNT> greater than a queue's
+C<limit> will generate an error.
+
=item ->end()
Declares that no more items will be added to the queue.
@@ -618,8 +635,11 @@ Passing array/hash refs that contain objects may not work for Perl prior to
=head1 SEE ALSO
-Thread::Queue Discussion Forum on CPAN:
-L<http://www.cpanforum.com/dist/Thread-Queue>
+Thread::Queue on MetaCPAN:
+L<https://metacpan.org/release/Thread-Queue>
+
+Code repository for CPAN distribution:
+L<https://github.com/Dual-Life/Thread-Queue>
L<threads>, L<threads::shared>
diff --git a/Master/tlpkg/tlperl/lib/Thread/Semaphore.pm b/Master/tlpkg/tlperl/lib/Thread/Semaphore.pm
index d940d031bf4..0154798e224 100644
--- a/Master/tlpkg/tlperl/lib/Thread/Semaphore.pm
+++ b/Master/tlpkg/tlperl/lib/Thread/Semaphore.pm
@@ -3,7 +3,7 @@ package Thread::Semaphore;
use strict;
use warnings;
-our $VERSION = '2.12';
+our $VERSION = '2.13';
$VERSION = eval $VERSION;
use threads::shared;
@@ -64,6 +64,22 @@ sub down_force {
$$sema -= $dec;
}
+# Decrement a semaphore's count with timeout
+# (timeout in seconds; decrement amount defaults to 1)
+sub down_timed {
+ my $sema = shift;
+ my $timeout = $validate_arg->(shift);
+ my $dec = @_ ? $validate_arg->(shift) : 1;
+
+ lock($$sema);
+ my $abs = time() + $timeout;
+ until ($$sema >= $dec) {
+ return if !cond_timedwait($$sema, $abs);
+ }
+ $$sema -= $dec;
+ return 1;
+}
+
# Increment a semaphore's count (increment amount defaults to 1)
sub up {
my $sema = shift;
@@ -102,7 +118,7 @@ Thread::Semaphore - Thread-safe semaphores
=head1 VERSION
-This document describes Thread::Semaphore version 2.12
+This document describes Thread::Semaphore version 2.13
=head1 SYNOPSIS
@@ -190,6 +206,23 @@ number (which must be an integer >= 1), or by one if no number is specified.
This method does not block, and may cause the semaphore's count to drop
below zero.
+=item ->down_timed(TIMEOUT)
+
+=item ->down_timed(TIMEOUT, NUMBER)
+
+The C<down_timed> method attempts to decrease the semaphore's count by 1
+or by the specified number within the specified timeout period given in
+seconds (which must be an integer >= 0).
+
+If the semaphore's count would drop below zero, this method will block
+until either the semaphore's count is greater than or equal to the
+amount you're C<down>ing the semaphore's count by, or until the timeout is
+reached.
+
+If the timeout is reached, this method will return I<false>, and the
+semaphore's count remains unchanged. Otherwise, the semaphore's count is
+decremented and this method returns I<true>.
+
=item ->up()
=item ->up(NUMBER)
@@ -218,11 +251,16 @@ environment.
=head1 SEE ALSO
-Thread::Semaphore Discussion Forum on CPAN:
-L<http://www.cpanforum.com/dist/Thread-Semaphore>
+Thread::Semaphore on MetaCPAN:
+L<https://metacpan.org/release/Thread-Semaphore>
+
+Code repository for CPAN distribution:
+L<https://github.com/Dual-Life/Thread-Semaphore>
L<threads>, L<threads::shared>
+Sample code in the I<examples> directory of this distribution on CPAN.
+
=head1 MAINTAINER
Jerry D. Hedden, S<E<lt>jdhedden AT cpan DOT orgE<gt>>
diff --git a/Master/tlpkg/tlperl/lib/Tie/Hash/NamedCapture.pm b/Master/tlpkg/tlperl/lib/Tie/Hash/NamedCapture.pm
index 9702666799c..32a0029ceed 100644
--- a/Master/tlpkg/tlperl/lib/Tie/Hash/NamedCapture.pm
+++ b/Master/tlpkg/tlperl/lib/Tie/Hash/NamedCapture.pm
@@ -1,7 +1,7 @@
use strict;
package Tie::Hash::NamedCapture;
-our $VERSION = "0.09";
+our $VERSION = "0.10";
require XSLoader;
XSLoader::load(); # This returns true, which makes require happy.
diff --git a/Master/tlpkg/tlperl/lib/Time/HiRes.pm b/Master/tlpkg/tlperl/lib/Time/HiRes.pm
index ad9a65c99d2..a3ddd595b74 100644
--- a/Master/tlpkg/tlperl/lib/Time/HiRes.pm
+++ b/Master/tlpkg/tlperl/lib/Time/HiRes.pm
@@ -23,12 +23,12 @@ our @EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval
ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF
TIMER_ABSTIME
d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer
- d_nanosleep d_clock_gettime d_clock_getres
+ d_nanosleep d_clock_gettime d_clock_getres d_hires_utime
d_clock d_clock_nanosleep
- stat lstat
+ stat lstat utime
);
-our $VERSION = '1.9733';
+our $VERSION = '1.9741';
our $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -60,6 +60,7 @@ sub import {
($i eq 'clock' && !&d_clock) ||
($i eq 'nanosleep' && !&d_nanosleep) ||
($i eq 'usleep' && !&d_usleep) ||
+ ($i eq 'utime' && !&d_hires_utime) ||
($i eq 'ualarm' && !&d_ualarm)) {
require Carp;
Carp::croak("Time::HiRes::$i(): unimplemented in this platform");
@@ -92,7 +93,7 @@ Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers
use Time::HiRes qw( usleep ualarm gettimeofday tv_interval nanosleep
clock_gettime clock_getres clock_nanosleep clock
- stat lstat );
+ stat lstat utime);
usleep ($microseconds);
nanosleep ($nanoseconds);
@@ -137,6 +138,9 @@ Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers
my @stat = stat(FH);
my @stat = lstat("file");
+ use Time::HiRes qw( utime );
+ utime $floating_seconds, $floating_seconds, file...;
+
=head1 DESCRIPTION
The C<Time::HiRes> module implements a Perl interface to the
@@ -446,6 +450,26 @@ if the operations are
the access time stamp from t2 need not be greater-than the modify
time stamp from t1: it may be equal or I<less>.
+=item utime LIST
+
+As L<perlfunc/utime>
+but with the ability to set the access/modify file timestamps
+in subsecond resolution, if the operating system and the filesystem
+both support such timestamps. To override the standard utime():
+
+ use Time::HiRes qw(utime);
+
+Test for the value of &Time::HiRes::d_hires_utime to find out whether
+the operating system supports setting subsecond file timestamps.
+
+As with CORE::utime(), passing undef as both the atime and mtime will
+call the syscall with a NULL argument.
+
+The actual achievable subsecond resolution depends on the combination
+of the operating system and the filesystem.
+
+Returns the number of files successfully changed.
+
=back
=head1 EXAMPLES
@@ -535,7 +559,7 @@ VMS have emulations for it.)
Here is an example of using C<NVtime> from C:
NV (*myNVtime)(); /* Returns -1 on failure. */
- SV **svp = hv_fetch(PL_modglobal, "Time::NVtime", 12, 0);
+ SV **svp = hv_fetchs(PL_modglobal, "Time::NVtime", 0);
if (!svp) croak("Time::HiRes is required");
if (!SvIOK(*svp)) croak("Time::NVtime isn't a function pointer");
myNVtime = INT2PTR(NV(*)(), SvIV(*svp));
@@ -586,9 +610,13 @@ might help in this (in case your system supports CLOCK_MONOTONIC).
Some systems have APIs but not implementations: for example QNX and Haiku
have the interval timer APIs but not the functionality.
-In OS X clock_getres(), clock_gettime() and clock_nanosleep() are
-emulated using the Mach timers; as a side effect of being emulated
-the CLOCK_REALTIME and CLOCK_MONOTONIC are the same timer.
+In pre-Sierra macOS (pre-10.12, OS X) clock_getres(), clock_gettime()
+and clock_nanosleep() are emulated using the Mach timers; as a side
+effect of being emulated the CLOCK_REALTIME and CLOCK_MONOTONIC are
+the same timer.
+
+gnukfreebsd seems to have non-functional futimens() and utimensat()
+(at least as of 10.1): therefore the hires utime() does not work.
=head1 SEE ALSO
diff --git a/Master/tlpkg/tlperl/lib/Time/Local.pm b/Master/tlpkg/tlperl/lib/Time/Local.pm
index ecdedef3dd8..65d7d588458 100644
--- a/Master/tlpkg/tlperl/lib/Time/Local.pm
+++ b/Master/tlpkg/tlperl/lib/Time/Local.pm
@@ -1,16 +1,16 @@
package Time::Local;
-require Exporter;
-use Carp;
-use Config;
use strict;
-use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK );
-$VERSION = '1.2300';
+use Carp ();
+use Exporter;
-@ISA = qw( Exporter );
-@EXPORT = qw( timegm timelocal );
-@EXPORT_OK = qw( timegm_nocheck timelocal_nocheck );
+our $VERSION = '1.25';
+
+use parent 'Exporter';
+
+our @EXPORT = qw( timegm timelocal );
+our @EXPORT_OK = qw( timegm_nocheck timelocal_nocheck );
my @MonthDays = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
@@ -29,36 +29,44 @@ use constant SECS_PER_HOUR => 3600;
use constant SECS_PER_DAY => 86400;
my $MaxDay;
-if ($] < 5.012000) {
+if ( $] < 5.012000 ) {
+ require Config;
+ ## no critic (Variables::ProhibitPackageVars)
+
my $MaxInt;
if ( $^O eq 'MacOS' ) {
+
# time_t is unsigned...
- $MaxInt = ( 1 << ( 8 * $Config{ivsize} ) ) - 1;
+ $MaxInt = ( 1 << ( 8 * $Config::Config{ivsize} ) )
+ - 1; ## no critic qw(ProhibitPackageVars)
}
else {
- $MaxInt = ( ( 1 << ( 8 * $Config{ivsize} - 2 ) ) - 1 ) * 2 + 1;
+ $MaxInt
+ = ( ( 1 << ( 8 * $Config::Config{ivsize} - 2 ) ) - 1 ) * 2
+ + 1; ## no critic qw(ProhibitPackageVars)
}
$MaxDay = int( ( $MaxInt - ( SECS_PER_DAY / 2 ) ) / SECS_PER_DAY ) - 1;
}
else {
# recent localtime()'s limit is the year 2**31
- $MaxDay = 365 * (2**31);
+ $MaxDay = 365 * ( 2**31 );
}
# Determine the EPOC day for this machine
my $Epoc = 0;
if ( $^O eq 'vos' ) {
+
# work around posix-977 -- VOS doesn't handle dates in the range
# 1970-1980.
$Epoc = _daygm( 0, 0, 0, 1, 0, 70, 4, 0 );
}
elsif ( $^O eq 'MacOS' ) {
- $MaxDay *=2 if $^O eq 'MacOS'; # time_t unsigned ... quick hack?
- # MacOS time() is seconds since 1 Jan 1904, localtime
- # so we need to calculate an offset to apply later
- $Epoc = 693901;
- $SecOff = timelocal( localtime(0)) - timelocal( gmtime(0) ) ;
+ $MaxDay *= 2 if $^O eq 'MacOS'; # time_t unsigned ... quick hack?
+ # MacOS time() is seconds since 1 Jan 1904, localtime
+ # so we need to calculate an offset to apply later
+ $Epoc = 693901;
+ $SecOff = timelocal( localtime(0) ) - timelocal( gmtime(0) );
$Epoc += _daygm( gmtime(0) );
}
else {
@@ -74,22 +82,22 @@ sub _daygm {
return $_[3] + (
$Cheat{ pack( 'ss', @_[ 4, 5 ] ) } ||= do {
my $month = ( $_[4] + 10 ) % 12;
- my $year = $_[5] + 1900 - int($month / 10);
+ my $year = $_[5] + 1900 - int( $month / 10 );
( ( 365 * $year )
- + int( $year / 4 )
- - int( $year / 100 )
- + int( $year / 400 )
- + int( ( ( $month * 306 ) + 5 ) / 10 )
- )
- - $Epoc;
- }
+ + int( $year / 4 )
+ - int( $year / 100 )
+ + int( $year / 400 )
+ + int( ( ( $month * 306 ) + 5 ) / 10 ) ) - $Epoc;
+ }
);
}
sub _timegm {
- my $sec =
- $SecOff + $_[0] + ( SECS_PER_MINUTE * $_[1] ) + ( SECS_PER_HOUR * $_[2] );
+ my $sec
+ = $SecOff + $_[0]
+ + ( SECS_PER_MINUTE * $_[1] )
+ + ( SECS_PER_HOUR * $_[2] );
return $sec + ( SECS_PER_DAY * &_daygm );
}
@@ -105,37 +113,42 @@ sub timegm {
}
unless ( $Options{no_range_check} ) {
- croak "Month '$month' out of range 0..11"
+ Carp::croak("Month '$month' out of range 0..11")
if $month > 11
or $month < 0;
- my $md = $MonthDays[$month];
+ my $md = $MonthDays[$month];
++$md
if $month == 1 && _is_leap_year( $year + 1900 );
- croak "Day '$mday' out of range 1..$md" if $mday > $md or $mday < 1;
- croak "Hour '$hour' out of range 0..23" if $hour > 23 or $hour < 0;
- croak "Minute '$min' out of range 0..59" if $min > 59 or $min < 0;
- croak "Second '$sec' out of range 0..59" if $sec >= 60 or $sec < 0;
+ Carp::croak("Day '$mday' out of range 1..$md")
+ if $mday > $md or $mday < 1;
+ Carp::croak("Hour '$hour' out of range 0..23")
+ if $hour > 23 or $hour < 0;
+ Carp::croak("Minute '$min' out of range 0..59")
+ if $min > 59 or $min < 0;
+ Carp::croak("Second '$sec' out of range 0..59")
+ if $sec >= 60 or $sec < 0;
}
my $days = _daygm( undef, undef, undef, $mday, $month, $year );
- unless ($Options{no_range_check} or abs($days) < $MaxDay) {
- my $msg = '';
+ unless ( $Options{no_range_check} or abs($days) < $MaxDay ) {
+ my $msg = q{};
$msg .= "Day too big - $days > $MaxDay\n" if $days > $MaxDay;
$year += 1900;
- $msg .= "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)";
+ $msg
+ .= "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)";
- croak $msg;
+ Carp::croak($msg);
}
- return $sec
- + $SecOff
- + ( SECS_PER_MINUTE * $min )
- + ( SECS_PER_HOUR * $hour )
- + ( SECS_PER_DAY * $days );
+ return
+ $sec + $SecOff
+ + ( SECS_PER_MINUTE * $min )
+ + ( SECS_PER_HOUR * $hour )
+ + ( SECS_PER_DAY * $days );
}
sub _is_leap_year {
@@ -152,7 +165,7 @@ sub timegm_nocheck {
}
sub timelocal {
- my $ref_t = &timegm;
+ my $ref_t = &timegm;
my $loc_for_ref_t = _timegm( localtime($ref_t) );
my $zone_off = $loc_for_ref_t - $ref_t
@@ -167,9 +180,11 @@ sub timelocal {
# If this evaluates to true, it means that the value in $loc_t is
# the _second_ hour after a DST change where the local time moves
# backward.
- if ( ! $dst_off &&
- ( ( $ref_t - SECS_PER_HOUR ) - _timegm( localtime( $loc_t - SECS_PER_HOUR ) ) < 0 )
- ) {
+ if (
+ !$dst_off
+ && ( ( $ref_t - SECS_PER_HOUR )
+ - _timegm( localtime( $loc_t - SECS_PER_HOUR ) ) < 0 )
+ ) {
return $loc_t - SECS_PER_HOUR;
}
@@ -193,47 +208,56 @@ sub timelocal_nocheck {
1;
+# ABSTRACT: Efficiently compute time from local and GMT time
+
__END__
+=pod
+
+=encoding UTF-8
+
=head1 NAME
-Time::Local - efficiently compute time from local and GMT time
+Time::Local - Efficiently compute time from local and GMT time
+
+=head1 VERSION
+
+version 1.25
=head1 SYNOPSIS
- $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
- $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
+ use Time::Local;
+
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year );
=head1 DESCRIPTION
-This module provides functions that are the inverse of built-in perl
-functions C<localtime()> and C<gmtime()>. They accept a date as a
-six-element array, and return the corresponding C<time(2)> value in
-seconds since the system epoch (Midnight, January 1, 1970 GMT on Unix,
-for example). This value can be positive or negative, though POSIX
-only requires support for positive values, so dates before the
-system's epoch may not work on all operating systems.
+This module provides functions that are the inverse of built-in perl functions
+C<localtime()> and C<gmtime()>. They accept a date as a six-element array, and
+return the corresponding C<time(2)> value in seconds since the system epoch
+(Midnight, January 1, 1970 GMT on Unix, for example). This value can be
+positive or negative, though POSIX only requires support for positive values,
+so dates before the system's epoch may not work on all operating systems.
-It is worth drawing particular attention to the expected ranges for
-the values provided. The value for the day of the month is the actual
-day (ie 1..31), while the month is the number of months since January
-(0..11). This is consistent with the values returned from
-C<localtime()> and C<gmtime()>.
+It is worth drawing particular attention to the expected ranges for the values
+provided. The value for the day of the month is the actual day (i.e. 1..31),
+while the month is the number of months since January (0..11). This is
+consistent with the values returned from C<localtime()> and C<gmtime()>.
=head1 FUNCTIONS
=head2 C<timelocal()> and C<timegm()>
-This module exports two functions by default, C<timelocal()> and
-C<timegm()>.
+This module exports two functions by default, C<timelocal()> and C<timegm()>.
-The C<timelocal()> and C<timegm()> functions perform range checking on
-the input $sec, $min, $hour, $mday, and $mon values by default.
+The C<timelocal()> and C<timegm()> functions perform range checking on the
+input $sec, $min, $hour, $mday, and $mon values by default.
=head2 C<timelocal_nocheck()> and C<timegm_nocheck()>
-If you are working with data you know to be valid, you can speed your
-code up by using the "nocheck" variants, C<timelocal_nocheck()> and
+If you are working with data you know to be valid, you can speed your code up
+by using the "nocheck" variants, C<timelocal_nocheck()> and
C<timegm_nocheck()>. These variants must be explicitly imported.
use Time::Local 'timelocal_nocheck';
@@ -241,144 +265,155 @@ C<timegm_nocheck()>. These variants must be explicitly imported.
# The 365th day of 1999
print scalar localtime timelocal_nocheck( 0, 0, 0, 365, 0, 99 );
-If you supply data which is not valid (month 27, second 1,000) the
-results will be unpredictable (so don't do that).
+If you supply data which is not valid (month 27, second 1,000) the results
+will be unpredictable (so don't do that).
=head2 Year Value Interpretation
-Strictly speaking, the year should be specified in a form consistent
-with C<localtime()>, i.e. the offset from 1900. In order to make the
-interpretation of the year easier for humans, however, who are more
-accustomed to seeing years as two-digit or four-digit values, the
-following conventions are followed:
+Strictly speaking, the year should be specified in a form consistent with
+C<localtime()>, i.e. the offset from 1900. In order to make the interpretation
+of the year easier for humans, however, who are more accustomed to seeing
+years as two-digit or four-digit values, the following conventions are
+followed:
=over 4
=item *
-Years greater than 999 are interpreted as being the actual year,
-rather than the offset from 1900. Thus, 1964 would indicate the year
-Martin Luther King won the Nobel prize, not the year 3864.
+Years greater than 999 are interpreted as being the actual year, rather than
+the offset from 1900. Thus, 1964 would indicate the year Martin Luther King
+won the Nobel prize, not the year 3864.
=item *
-Years in the range 100..999 are interpreted as offset from 1900, so
-that 112 indicates 2012. This rule also applies to years less than
-zero (but see note below regarding date range).
+Years in the range 100..999 are interpreted as offset from 1900, so that 112
+indicates 2012. This rule also applies to years less than zero (but see note
+below regarding date range).
=item *
-Years in the range 0..99 are interpreted as shorthand for years in the
-rolling "current century," defined as 50 years on either side of the
-current year. Thus, today, in 1999, 0 would refer to 2000, and 45 to
-2045, but 55 would refer to 1955. Twenty years from now, 55 would
-instead refer to 2055. This is messy, but matches the way people
-currently think about two digit dates. Whenever possible, use an
-absolute four digit year instead.
+Years in the range 0..99 are interpreted as shorthand for years in the rolling
+"current century," defined as 50 years on either side of the current
+year. Thus, today, in 1999, 0 would refer to 2000, and 45 to 2045, but 55
+would refer to 1955. Twenty years from now, 55 would instead refer to
+2055. This is messy, but matches the way people currently think about two
+digit dates. Whenever possible, use an absolute four digit year instead.
=back
-The scheme above allows interpretation of a wide range of dates,
-particularly if 4-digit years are used.
+The scheme above allows interpretation of a wide range of dates, particularly
+if 4-digit years are used.
=head2 Limits of time_t
-On perl versions older than 5.12.0, the range of dates that can be
-actually be handled depends on the size of C<time_t> (usually a signed
-integer) on the given platform. Currently, this is 32 bits for most
-systems, yielding an approximate range from Dec 1901 to Jan 2038.
+On perl versions older than 5.12.0, the range of dates that can be actually be
+handled depends on the size of C<time_t> (usually a signed integer) on the
+given platform. Currently, this is 32 bits for most systems, yielding an
+approximate range from Dec 1901 to Jan 2038.
-Both C<timelocal()> and C<timegm()> croak if given dates outside the
-supported range.
+Both C<timelocal()> and C<timegm()> croak if given dates outside the supported
+range.
-As of version 5.12.0, perl has stopped using the underlying time
-library of the operating system it's running on and has its own
-implementation of those routines with a safe range of at least
-+/ 2**52 (about 142 million years).
+As of version 5.12.0, perl has stopped using the underlying time library of
+the operating system it's running on and has its own implementation of those
+routines with a safe range of at least +/ 2**52 (about 142 million years).
=head2 Ambiguous Local Times (DST)
-Because of DST changes, there are many time zones where the same local
-time occurs for two different GMT times on the same day. For example,
-in the "Europe/Paris" time zone, the local time of 2001-10-28 02:30:00
-can represent either 2001-10-28 00:30:00 GMT, B<or> 2001-10-28
-01:30:00 GMT.
+Because of DST changes, there are many time zones where the same local time
+occurs for two different GMT times on the same day. For example, in the
+"Europe/Paris" time zone, the local time of 2001-10-28 02:30:00 can represent
+either 2001-10-28 00:30:00 GMT, B<or> 2001-10-28 01:30:00 GMT.
-When given an ambiguous local time, the timelocal() function should
-always return the epoch for the I<earlier> of the two possible GMT
-times.
+When given an ambiguous local time, the timelocal() function should always
+return the epoch for the I<earlier> of the two possible GMT times.
=head2 Non-Existent Local Times (DST)
-When a DST change causes a locale clock to skip one hour forward,
-there will be an hour's worth of local times that don't exist. Again,
-for the "Europe/Paris" time zone, the local clock jumped from
-2001-03-25 01:59:59 to 2001-03-25 03:00:00.
+When a DST change causes a locale clock to skip one hour forward, there will
+be an hour's worth of local times that don't exist. Again, for the
+"Europe/Paris" time zone, the local clock jumped from 2001-03-25 01:59:59 to
+2001-03-25 03:00:00.
-If the C<timelocal()> function is given a non-existent local time, it
-will simply return an epoch value for the time one hour later.
+If the C<timelocal()> function is given a non-existent local time, it will
+simply return an epoch value for the time one hour later.
=head2 Negative Epoch Values
-On perl version 5.12.0 and newer, negative epoch values are fully
-supported.
+On perl version 5.12.0 and newer, negative epoch values are fully supported.
-On older versions of perl, negative epoch (C<time_t>) values, which
-are not officially supported by the POSIX standards, are known not to
-work on some systems. These include MacOS (pre-OSX) and Win32.
+On older versions of perl, negative epoch (C<time_t>) values, which are not
+officially supported by the POSIX standards, are known not to work on some
+systems. These include MacOS (pre-OSX) and Win32.
-On systems which do support negative epoch values, this module should
-be able to cope with dates before the start of the epoch, down the
-minimum value of time_t for the system.
+On systems which do support negative epoch values, this module should be able
+to cope with dates before the start of the epoch, down the minimum value of
+time_t for the system.
=head1 IMPLEMENTATION
-These routines are quite efficient and yet are always guaranteed to
-agree with C<localtime()> and C<gmtime()>. We manage this by caching
-the start times of any months we've seen before. If we know the start
-time of the month, we can always calculate any time within the month.
-The start times are calculated using a mathematical formula. Unlike
-other algorithms that do multiple calls to C<gmtime()>.
+These routines are quite efficient and yet are always guaranteed to agree with
+C<localtime()> and C<gmtime()>. We manage this by caching the start times of
+any months we've seen before. If we know the start time of the month, we can
+always calculate any time within the month. The start times are calculated
+using a mathematical formula. Unlike other algorithms that do multiple calls
+to C<gmtime()>.
-The C<timelocal()> function is implemented using the same cache. We
-just assume that we're translating a GMT time, and then fudge it when
-we're done for the timezone and daylight savings arguments. Note that
-the timezone is evaluated for each date because countries occasionally
-change their official timezones. Assuming that C<localtime()> corrects
-for these changes, this routine will also be correct.
+The C<timelocal()> function is implemented using the same cache. We just
+assume that we're translating a GMT time, and then fudge it when we're done
+for the timezone and daylight savings arguments. Note that the timezone is
+evaluated for each date because countries occasionally change their official
+timezones. Assuming that C<localtime()> corrects for these changes, this
+routine will also be correct.
-=head1 BUGS
+=head1 AUTHORS EMERITUS
-The whole scheme for interpreting two-digit years can be considered a
-bug.
+This module is based on a Perl 4 library, timelocal.pl, that was
+included with Perl 4.036, and was most likely written by Tom
+Christiansen.
-=head1 SUPPORT
+The current version was written by Graham Barr.
-Support for this module is provided via the datetime@perl.org email
-list. See http://lists.perl.org/ for more details.
+=head1 BUGS
-Please submit bugs to the CPAN RT system at
-http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Time-Local or via email
-at bug-time-local@rt.cpan.org.
+The whole scheme for interpreting two-digit years can be considered a bug.
-=head1 COPYRIGHT
+Bugs may be submitted through L<https://github.com/houseabsolute/Time-Local/issues>.
-Copyright (c) 1997-2003 Graham Barr, 2003-2007 David Rolsky. All
-rights reserved. This program is free software; you can redistribute
-it and/or modify it under the same terms as Perl itself.
+There is a mailing list available for users of this distribution,
+L<mailto:datetime@perl.org>.
-The full text of the license can be found in the LICENSE file included
-with this module.
+I am also usually active on IRC as 'autarch' on C<irc://irc.perl.org>.
=head1 AUTHOR
-This module is based on a Perl 4 library, timelocal.pl, that was
-included with Perl 4.036, and was most likely written by Tom
-Christiansen.
+Dave Rolsky <autarch@urth.org>
-The current version was written by Graham Barr.
+=head1 CONTRIBUTORS
+
+=for stopwords Florian Ragwitz J. Nick Koston Unknown
+
+=over 4
+
+=item *
+
+Florian Ragwitz <rafl@debian.org>
+
+=item *
+
+J. Nick Koston <nick@cpanel.net>
+
+=item *
+
+Unknown <unknown@example.com>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1997 - 2016 by Graham Barr & Dave Rolsky.
-It is now being maintained separately from the Perl core by Dave
-Rolsky, <autarch@urth.org>.
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
=cut
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate.pm
index 493c281a837..e485387d9fa 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate.pm
@@ -17,7 +17,7 @@ use File::Spec;
no warnings 'utf8';
-our $VERSION = '1.14';
+our $VERSION = '1.19';
our $PACKAGE = __PACKAGE__;
### begin XS only ###
@@ -89,9 +89,9 @@ my $DefaultRearrange = [ 0x0E40..0x0E44, 0x0EC0..0x0EC4 ];
my $HighestVCE = pack(VCE_TEMPLATE, 0, 0xFFFE, 0x20, 0x5, 0xFFFF);
my $minimalVCE = pack(VCE_TEMPLATE, 0, 1, 0x20, 0x5, 0xFFFE);
-sub UCA_Version { "30" }
+sub UCA_Version { "32" }
-sub Base_Unicode_Version { "7.0.0" }
+sub Base_Unicode_Version { "8.0.0" }
######
@@ -189,6 +189,7 @@ my %DerivCode = (
26 => \&_derivCE_24, # 26 == 24
28 => \&_derivCE_24, # 28 == 24
30 => \&_derivCE_24, # 30 == 24
+ 32 => \&_derivCE_32,
);
sub checkCollator {
@@ -1097,7 +1098,7 @@ If the revision (previously "tracking version") number of UCA is given,
behavior of that revision is emulated on collating.
If omitted, the return value of C<UCA_Version()> is used.
-The following revisions are supported. The default is 30.
+The following revisions are supported. The default is 32.
UCA Unicode Standard DUCET (@version)
-------------------------------------------------------
@@ -1113,8 +1114,9 @@ The following revisions are supported. The default is 30.
26 6.2.0 6.2.0 (6.2.0)
28 6.3.0 6.3.0 (6.3.0)
30 7.0.0 7.0.0 (7.0.0)
+ 32 8.0.0 8.0.0 (8.0.0)
-* See below C<long_contraction> with C<UCA_Version> 22 and 24.
+* See below for C<long_contraction> with C<UCA_Version> 22 and 24.
* Noncharacters (e.g. U+FFFF) are not ignored, and can be overridden
since C<UCA_Version> 22.
@@ -1229,7 +1231,7 @@ table beforehand.
=item highestFFFF
--- see 5.14 Collation Elements, UTS #35.
+-- see 2.4 Tailored noncharacter weights, UTS #35 (LDML) Part 5: Collation.
If the parameter is made true, C<U+FFFF> has a highest primary weight.
When a boolean of C<$coll-E<gt>ge($str, "abc")> and
@@ -1373,7 +1375,7 @@ contraction C<0FB2 0F71> prohibits C<0FB2 0F71 0F80> from being detected.
=item minimalFFFE
--- see 5.14 Collation Elements, UTS #35.
+-- see 1.1.1 U+FFFE, UTS #35 (LDML) Part 5: Collation.
If the parameter is made true, C<U+FFFE> has a minimal primary weight.
The comparison between C<"$a1\x{FFFE}$a2"> and C<"$b1\x{FFFE}$b2">
@@ -1451,12 +1453,14 @@ those in the CJK Unified Ideographs Extension A etc.
U+4E00..U+9FBB if UCA_Version is 14 or 16.
U+4E00..U+9FC3 if UCA_Version is 18.
U+4E00..U+9FCB if UCA_Version is 20 or 22.
- U+4E00..U+9FCC if UCA_Version is 24 or later.
+ U+4E00..U+9FCC if UCA_Version is 24 to 30.
+ U+4E00..U+9FD5 if UCA_Version is 32.
In the CJK Unified Ideographs Extension blocks:
Ext.A (U+3400..U+4DB5) and Ext.B (U+20000..U+2A6D6) in any UCA_Version.
Ext.C (U+2A700..U+2B734) if UCA_Version is 20 or later.
Ext.D (U+2B740..U+2B81D) if UCA_Version is 22 or later.
+ Ext.E (U+2B820..U+2CEA1) if UCA_Version is 32.
Through C<overrideCJK>, ordering of CJK unified ideographs (including
extensions) can be overridden.
@@ -1648,8 +1652,7 @@ rewriting lines on reading an unmodified table every time.
=item suppress
--- see suppress contractions in 5.14.11 Special-Purpose Commands,
-UTS #35 (LDML).
+-- see 3.12 Special-Purpose Commands, UTS #35 (LDML) Part 5: Collation.
Contractions beginning with the specified characters are suppressed,
even if those contractions are defined in C<table>.
@@ -1660,7 +1663,7 @@ An example for Russian and some languages using the Cyrillic script:
where 0x0400 stands for C<U+0400>, CYRILLIC CAPITAL LETTER IE WITH GRAVE.
-B<NOTE>: Contractions via C<entry> are not be suppressed.
+B<NOTE>: Contractions via C<entry> will not be suppressed.
=item table
@@ -1707,7 +1710,7 @@ specified as a comment (following C<#>) on each line.
=item undefName
--- see 6.3.4 Reducing the Repertoire, UTS #10.
+-- see 6.3.3 Reducing the Repertoire, UTS #10.
Undefines the collation element as if it were unassigned in the C<table>.
This reduces the size of the table.
@@ -2078,16 +2081,16 @@ B<Unicode::Normalize is required to try The Conformance Test.>
=head1 AUTHOR, COPYRIGHT AND LICENSE
The Unicode::Collate module for perl was written by SADAHIRO Tomoyuki,
-<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2014,
+<SADAHIRO@cpan.org>. This module is Copyright(C) 2001-2016,
SADAHIRO Tomoyuki. Japan. All rights reserved.
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
The file Unicode/Collate/allkeys.txt was copied verbatim
-from L<http://www.unicode.org/Public/UCA/6.3.0/allkeys.txt>.
-For this file, Copyright (c) 2001-2012 Unicode, Inc.
-Distributed under the Terms of Use in L<http://www.unicode.org/copyright.html>.
+from L<http://www.unicode.org/Public/UCA/8.0.0/allkeys.txt>.
+For this file, Copyright (c) 2001-2015 Unicode, Inc.; distributed
+under the Terms of Use in L<http://www.unicode.org/terms_of_use.html>
=head1 SEE ALSO
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
index 63999976230..63f970a797f 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Big5.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.19';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
index f33eb693fe6..ce014132999 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/GB2312.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.19';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
index 492496b652f..fe85f757f7a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/JISX0208.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.19';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
index 04ef6763f85..3ca9eaaff6a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Korean.pm
@@ -4,21 +4,21 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.19';
my %jamo2prim = (
- '1100', 0x376F, '1101', 0x3770, '1102', 0x3771, '1103', 0x3772,
- '1105', 0x3774, '1106', 0x3775, '1107', 0x3776, '1109', 0x3778,
- '110A', 0x3779, '110B', 0x377A, '110C', 0x377B, '110E', 0x377D,
- '110F', 0x377E, '1110', 0x377F, '1111', 0x3780, '1112', 0x3781,
- '1161', 0x37ED, '1162', 0x37EE, '1163', 0x37EF, '1165', 0x37F1,
- '1166', 0x37F2, '1167', 0x37F3, '1168', 0x37F4, '1169', 0x37F5,
- '116A', 0x37F6, '116B', 0x37F7, '116C', 0x37F8, '116D', 0x37F9,
- '116E', 0x37FA, '116F', 0x37FB, '1170', 0x37FC, '1171', 0x37FD,
- '1172', 0x37FE, '1173', 0x37FF, '1174', 0x3800, '1175', 0x3801,
- '11A8', 0x384B, '11AB', 0x384E, '11AF', 0x3852, '11B7', 0x385A,
- '11B8', 0x385B, '11BC', 0x385F, '11BD', 0x3860,
-); # for DUCET v7.0.0
+ '1100', 0x3A5E, '1101', 0x3A5F, '1102', 0x3A60, '1103', 0x3A61,
+ '1105', 0x3A63, '1106', 0x3A64, '1107', 0x3A65, '1109', 0x3A67,
+ '110A', 0x3A68, '110B', 0x3A69, '110C', 0x3A6A, '110E', 0x3A6C,
+ '110F', 0x3A6D, '1110', 0x3A6E, '1111', 0x3A6F, '1112', 0x3A70,
+ '1161', 0x3ADC, '1162', 0x3ADD, '1163', 0x3ADE, '1165', 0x3AE0,
+ '1166', 0x3AE1, '1167', 0x3AE2, '1168', 0x3AE3, '1169', 0x3AE4,
+ '116A', 0x3AE5, '116B', 0x3AE6, '116C', 0x3AE7, '116D', 0x3AE8,
+ '116E', 0x3AE9, '116F', 0x3AEA, '1170', 0x3AEB, '1171', 0x3AEC,
+ '1172', 0x3AED, '1173', 0x3AEE, '1174', 0x3AEF, '1175', 0x3AF0,
+ '11A8', 0x3B3A, '11AB', 0x3B3D, '11AF', 0x3B41, '11B7', 0x3B49,
+ '11B8', 0x3B4A, '11BC', 0x3B4E, '11BD', 0x3B4F,
+); # for DUCET v8.0.0
my(%u2e, $prim, $wt);
while (<DATA>) {
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
index 5abe6505b79..751d0868686 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Pinyin.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.19';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
index e40e69106ed..cce32a1f85a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Stroke.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.19';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
index 13e4dc04bdb..57fb61ee25e 100755
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/CJK/Zhuyin.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '1.14';
+our $VERSION = '1.19';
my %u2p;
my $wt = 0x8000;
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
index f76abe579ab..63122b646d7 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale.pm
@@ -5,15 +5,15 @@ use warnings;
use Carp;
use base qw(Unicode::Collate);
-our $VERSION = '1.14';
+our $VERSION = '1.19';
my $PL_EXT = '.pl';
my %LocaleFile = map { ($_, $_) } qw(
- af ar as az be bg bn ca cs cy da ee eo es et fa fi fil fo fr
- gu ha haw hi hr hu hy ig is ja kk kl kn ko kok ln lt lv
- mk ml mr mt nb nn nso om or pa pl ro ru sa se si sk sl sq
- sr sv ta te th tn to tr uk ur vi wae wo yo zh
+ af ar as az be bn ca cs cy da ee eo es et fa fi fil fo
+ gu ha haw he hi hr hu hy ig is ja kk kl kn ko kok ln lt lv
+ mk ml mr mt nb nn nso om or pa pl ro sa se si sk sl sq
+ sr sv ta te th tn to tr uk ur vi vo wae wo yo zh
);
$LocaleFile{'default'} = '';
# aliases
@@ -22,10 +22,13 @@ my %LocaleFile = map { ($_, $_) } qw(
$LocaleFile{'sr_Latn'} = 'hr';
# short file names
$LocaleFile{'de__phonebook'} = 'de_phone';
+ $LocaleFile{'de_AT_phonebook'} = 'de_at_ph';
$LocaleFile{'es__traditional'} = 'es_trad';
+ $LocaleFile{'fr_CA'} = 'fr_ca';
$LocaleFile{'fi__phonebook'} = 'fi_phone';
$LocaleFile{'si__dictionary'} = 'si_dict';
$LocaleFile{'sv__reformed'} = 'sv_refo';
+ $LocaleFile{'ug_Cyrl'} = 'ug_cyrl';
$LocaleFile{'zh__big5han'} = 'zh_big5';
$LocaleFile{'zh__gb2312han'} = 'zh_gb';
$LocaleFile{'zh__pinyin'} = 'zh_pin';
@@ -125,97 +128,6 @@ sub new {
1;
__END__
-MEMORANDA for developing
-
-locale based CLDR
-----------------------------------------------------------------------------
-af 22.1 = 1.8.1
-ar 22.1 = 1.9.0
-as 22.1 = 1.8.1
-az 22.1 = 1.8.1 (type="standard")
-be 22.1 = 1.9.0
-bg 22.1 = 1.9.0
-bn 22.1 = 2.0.1 (type="standard")
-bs 22.1 = 1.9.0 (alias source="hr")
-bs_Cyrl 22.1 = 22 (alias source="sr")
-ca 22.1 = 1.8.1 (alt="proposed" type="standard")
-cs 22.1 = 1.8.1 (type="standard")
-cy 22.1 = 1.8.1
-da 22.1 = 1.8.1 (type="standard") [mod aA to pass CLDR test]
-de__phonebook 22.1 = 2.0 (type="phonebook")
-ee 22.1 = 22
-eo 22.1 = 1.8.1
-es 22.1 = 1.9.0 (type="standard")
-es__traditional 22.1 = 1.8.1 (type="traditional")
-et 22.1 = 1.8.1
-fa 22.1 = 1.8.1
-fi 22.1 = 1.8.1 (type="standard" alt="proposed")
-fi__phonebook 22.1 = 1.8.1 (type="phonebook")
-fil 22.1 = 1.9.0 (type="standard") = 1.8.1
-fo 22.1 = 1.8.1 (alt="proposed" type="standard")
-fr 22.1 = 1.9.0 (fr_CA, backwards="on")
-gu 22.1 = 1.9.0 (type="standard")
-ha 22.1 = 1.9.0
-haw 22.1 = 1.8.1
-hi 22.1 = 1.9.0 (type="standard")
-hr 22.1 = 1.9.0 (type="standard")
-hu 22.1 = 1.8.1 (alt="proposed" type="standard")
-hy 22.1 = 1.8.1
-ig 22.1 = 1.8.1
-is 22.1 = 1.8.1 (type="standard")
-ja 22.1 = 1.8.1 (type="standard")
-kk 22.1 = 1.9.0
-kl 22.1 = 1.8.1 (type="standard")
-kn 22.1 = 1.9.0 (type="standard")
-ko 22.1 = 1.8.1 (type="standard")
-kok 22.1 = 1.8.1
-ln 22.1 = 2.0 (type="standard") = 1.8.1
-lt 22.1 = 1.9.0
-lv 22.1 = 1.9.0 (type="standard") = 1.8.1
-mk 22.1 = 1.9.0
-ml 22.1 = 1.9.0
-mr 22.1 = 1.8.1
-mt 22.1 = 1.9.0
-nb 22.1 = 2.0 (type="standard")
-nn 22.1 = 2.0 (type="standard")
-nso 22.1 = 1.8.1
-om 22.1 = 1.8.1
-or 22.1 = 1.9.0
-pa 22.1 = 1.8.1
-pl 22.1 = 1.8.1
-ro 22.1 = 1.9.0 (type="standard")
-ru 22.1 = 1.9.0
-sa 1.9.1 = 1.8.1 (type="standard" alt="proposed") [now /seed]
-se 22.1 = 1.8.1 (type="standard")
-si 22.1 = 1.9.0 (type="standard")
-si__dictionary 22.1 = 1.9.0 (type="dictionary")
-sk 22.1 = 1.9.0 (type="standard")
-sl 22.1 = 1.8.1 (type="standard" alt="proposed")
-sq 22.1 = 1.8.1 (alt="proposed" type="standard")
-sr 22.1 = 1.9.0 (type="standard")
-sr_Latn 22.1 = 1.8.1 (alias source="hr")
-sv 22.1 = 1.9.0 (type="standard")
-sv__reformed 22.1 = 1.8.1 (type="reformed")
-ta 22.1 = 1.9.0
-te 22.1 = 1.9.0
-th 22.1 = 22
-tn 22.1 = 1.8.1
-to 22.1 = 22
-tr 22.1 = 1.8.1 (type="standard")
-uk 22.1 = 21
-ur 22.1 = 1.9.0
-vi 22.1 = 1.8.1
-wae 22.1 = 2.0
-wo 1.9.1 = 1.8.1 [now /seed]
-yo 22.1 = 1.8.1
-zh 22.1 = 1.8.1 (type="standard")
-zh__big5han 22.1 = 1.8.1 (type="big5han")
-zh__gb2312han 22.1 = 1.8.1 (type="gb2312han")
-zh__pinyin 22.1 = 2.0 (type='pinyin' alt='short')
-zh__stroke 22.1 = 1.9.1 (type='stroke' alt='short')
-zh__zhuyin 22.1 = 22 (type='zhuyin' alt='short')
-----------------------------------------------------------------------------
-
=head1 NAME
Unicode::Collate::Locale - Linguistic tailoring for DUCET via Unicode::Collate
@@ -252,12 +164,12 @@ The C<new> method returns a collator object.
A parameter list for the constructor is a hash, which can include
a special key C<locale> and its value (case-insensitive) standing
for a Unicode base language code (two or three-letter).
-For example, C<Unicode::Collate::Locale-E<gt>new(locale =E<gt> 'FR')>
-returns a collator tailored for French.
+For example, C<Unicode::Collate::Locale-E<gt>new(locale =E<gt> 'ES')>
+returns a collator tailored for Spanish.
C<$locale_name> may be suffixed with a Unicode script code (four-letter),
-a Unicode region code, a Unicode language variant code. These codes are
-case-insensitive, and separated with C<'_'> or C<'-'>.
+a Unicode region (territory) code, a Unicode language variant code.
+These codes are case-insensitive, and separated with C<'_'> or C<'-'>.
E.g. C<en_US> for English in USA,
C<az_Cyrl> for Azerbaijani in the Cyrillic script,
C<es_ES_traditional> for Spanish in Spain (Traditional).
@@ -278,12 +190,12 @@ is always untailorable, since it is reserved for DUCET.
However C<entry> is allowed, even if it is used for C<locale> support,
to add or override mappings.
-E.g. a collator for French, which ignores diacritics and case difference
+E.g. a collator for Spanish, which ignores diacritics and case difference
(i.e. level 1), with reversed case ordering and no normalization.
Unicode::Collate::Locale->new(
level => 1,
- locale => 'fr',
+ locale => 'es',
upper_before_lower => 1,
normalization => undef
)
@@ -299,7 +211,7 @@ if such a tailoring is passed to C<new()>.
However C<change()> inherited from C<Unicode::Collate> allows
such a tailoring that is reserved by C<locale>. Examples:
- new(locale => 'ca')->change(backwards => undef)
+ new(locale => 'fr_ca')->change(backwards => undef)
new(locale => 'da')->change(upper_before_lower => 0)
new(locale => 'ja')->change(overrideCJK => undef)
@@ -339,15 +251,15 @@ a combination of return values from C<getlocale> and C<locale_version>.
as Assamese
az Azerbaijani (Azeri)
be Belarusian
- bg Bulgarian
bn Bengali
- bs Bosnian
+ bs Bosnian (tailored as Croatian)
bs_Cyrl Bosnian in Cyrillic (tailored as Serbian)
ca Catalan
cs Czech
cy Welsh
da Danish
de__phonebook German (umlaut as 'ae', 'oe', 'ue')
+ de_AT_phonebook Austrian German (umlaut primary greater)
ee Ewe
eo Esperanto
es Spanish
@@ -358,10 +270,11 @@ a combination of return values from C<getlocale> and C<locale_version>.
fi__phonebook Finnish (v and w as separate characters)
fil Filipino
fo Faroese
- fr French
+ fr_CA Canadian French
gu Gujarati
ha Hausa
haw Hawaiian
+ he Hebrew
hi Hindi
hr Croatian
hu Hungarian
@@ -389,7 +302,6 @@ a combination of return values from C<getlocale> and C<locale_version>.
pa Punjabi
pl Polish
ro Romanian
- ru Russian
sa Sanskrit
se Northern Sami
si Sinhala
@@ -407,9 +319,11 @@ a combination of return values from C<getlocale> and C<locale_version>.
tn Tswana
to Tonga
tr Turkish
+ ug_Cyrl Uyghur in Cyrillic
uk Ukrainian
ur Urdu
vi Vietnamese
+ vo Volapuk
wae Walser
wo Wolof
yo Yoruba
@@ -422,19 +336,22 @@ a combination of return values from C<getlocale> and C<locale_version>.
--------------------------------------------------------------
Locales according to the default UCA rules include
-chr (Cherokee),
+am (Amharic) without C<[reorder Ethi]>,
+bg (Bulgarian) without C<[reorder Cyrl]>,
+chr (Cherokee) without C<[reorder Cher]>,
de (German),
en (English),
+fr (French),
ga (Irish),
id (Indonesian),
it (Italian),
-ka (Georgian),
+ka (Georgian) without C<[reorder Geor]>,
+mn (Mongolian) without C<[reorder Cyrl Mong]>,
ms (Malay),
nl (Dutch),
pt (Portuguese),
-st (Southern Sotho),
+ru (Russian) without C<[reorder Cyrl]>,
sw (Swahili),
-xh (Xhosa),
zu (Zulu).
B<Note>
@@ -466,7 +383,7 @@ Tests for C<Unicode::Collate::Locale> are named F<t/loc_*.t>.
=over 4
-=item tailoring is not maximum
+=item Tailoring is not maximum
Even if a certain letter is tailored, its equivalent would not always
tailored as well as it. For example, even though W is tailored,
@@ -475,13 +392,112 @@ tailored. The result may depend on whether source strings are
normalized or not, and whether decomposed or composed.
Thus C<(normalization =E<gt> undef)> is less preferred.
+=item Collation reordering is not supported
+
+The order of any groups including scripts is not changed.
+
=back
+=head2 Reference
+
+ locale based CLDR or other reference
+ --------------------------------------------------------------------
+ af 30 = 1.8.1
+ ar 22.1 = 1.9.0
+ as 30 = 28 (without [reorder Beng..]) = 23
+ az 30 = 24 (type="standard" without [reorder Latn Cyrl])
+ be 30 = 28 (without [reorder Cyrl])
+ bn 30 = 28 (type="standard" wo [reorder Beng..]) = 2.0.1
+ bs 30 = 28 (type="standard": [import hr])
+ bs_Cyrl 30 = 28 (type="standard": [import sr])
+ ca 30 = 23 (alt="proposed" type="standard")
+ cs 30 = 1.8.1 (type="standard")
+ cy 30 = 1.8.1
+ da 22.1 = 1.8.1 (type="standard")
+ de__phonebook 30 = 2.0 (type="phonebook")
+ de_AT_phonebook 30 = 27 (type="phonebook")
+ ee 22.1 = 22
+ eo 30 = 1.8.1
+ es 30 = 1.9.0 (type="standard")
+ es__traditional 30 = 1.8.1 (type="traditional")
+ et 30 = 26
+ fa 22.1 = 1.8.1
+ fi 22.1 = 1.8.1 (type="standard" alt="proposed")
+ fi__phonebook 22.1 = 1.8.1 (type="phonebook")
+ fil 30 = 1.9.0 (type="standard") = 1.8.1
+ fo 22.1 = 1.8.1 (alt="proposed" type="standard")
+ fr_CA 30 = 1.9.0
+ gu 30 = 28 (type="standard" wo [reorder Gujr..]) = 1.9.0
+ ha 30 = 1.9.0
+ haw 30 = 24
+ he 30 = 28 (without [reorder Hebr]) = 23
+ hi 30 = 28 (without [reorder Deva..]) = 1.9.0
+ hr 22.1 = 1.9.0 (type="standard")
+ hu 22.1 = 1.8.1 (alt="proposed" type="standard")
+ hy 30 = 28 (without [reorder Armn]) = 1.8.1
+ ig 30 = 1.8.1
+ is 22.1 = 1.8.1 (type="standard")
+ ja 22.1 = 1.8.1 (type="standard")
+ kk 30 = 28 (without [reorder Cyrl])
+ kl 22.1 = 1.8.1 (type="standard")
+ kn 30 = 28 (type="standard" wo [reorder Knda..]) = 1.9.0
+ ko 22.1 = 1.8.1 (type="standard")
+ kok 30 = 28 (without [reorder Deva..]) = 1.8.1
+ ln 30 = 2.0 (type="standard") = 1.8.1
+ lt 22.1 = 1.9.0
+ lv 22.1 = 1.9.0 (type="standard") = 1.8.1
+ mk 30 = 28 (without [reorder Cyrl])
+ ml 22.1 = 1.9.0
+ mr 30 = 28 (without [reorder Deva..]) = 1.8.1
+ mt 22.1 = 1.9.0
+ nb 22.1 = 2.0 (type="standard")
+ nn 22.1 = 2.0 (type="standard")
+ nso [*] 26 = 1.8.1
+ om 22.1 = 1.8.1
+ or 30 = 28 (without [reorder Orya..]) = 1.9.0
+ pa 22.1 = 1.8.1
+ pl 30 = 1.8.1
+ ro 30 = 1.9.0 (type="standard")
+ sa [*] 1.9.1 = 1.8.1 (type="standard" alt="proposed")
+ se 22.1 = 1.8.1 (type="standard")
+ si 30 = 28 (type="standard" wo [reorder Sinh..]) = 1.9.0
+ si__dictionary 30 = 28 (type="dictionary" wo [reorder Sinh..]) = 1.9.0
+ sk 22.1 = 1.9.0 (type="standard")
+ sl 22.1 = 1.8.1 (type="standard" alt="proposed")
+ sq 22.1 = 1.8.1 (alt="proposed" type="standard")
+ sr 30 = 28 (without [reorder Cyrl])
+ sr_Latn 30 = 28 (type="standard": [import hr])
+ sv 22.1 = 1.9.0 (type="standard")
+ sv__reformed 22.1 = 1.8.1 (type="reformed")
+ ta 22.1 = 1.9.0
+ te 30 = 28 (without [reorder Telu..]) = 1.9.0
+ th 22.1 = 22
+ tn [*] 26 = 1.8.1
+ to 22.1 = 22
+ tr 22.1 = 1.8.1 (type="standard")
+ uk 30 = 28 (without [reorder Cyrl])
+ ug_Cyrl https://en.wikipedia.org/wiki/Uyghur_Cyrillic_alphabet
+ ur 22.1 = 1.9.0
+ vi 22.1 = 1.8.1
+ vo 30 = 25
+ wae 30 = 2.0
+ wo [*] 1.9.1 = 1.8.1
+ yo 30 = 1.8.1
+ zh 22.1 = 1.8.1 (type="standard")
+ zh__big5han 22.1 = 1.8.1 (type="big5han")
+ zh__gb2312han 22.1 = 1.8.1 (type="gb2312han")
+ zh__pinyin 22.1 = 2.0 (type='pinyin' alt='short')
+ zh__stroke 22.1 = 1.9.1 (type='stroke' alt='short')
+ zh__zhuyin 22.1 = 22 (type='zhuyin' alt='short')
+ --------------------------------------------------------------------
+
+[*] http://www.unicode.org/repos/cldr/tags/latest/seed/collation/
+
=head1 AUTHOR
The Unicode::Collate::Locale module for perl was written
by SADAHIRO Tomoyuki, <SADAHIRO@cpan.org>.
-This module is Copyright(C) 2004-2013, SADAHIRO Tomoyuki. Japan.
+This module is Copyright(C) 2004-2016, SADAHIRO Tomoyuki. Japan.
All rights reserved.
This module is free software; you can redistribute it and/or
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
index 1a3a479ed4d..870101fc8d7 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/af.pl
@@ -1,6 +1,6 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0149 ; [.1A7D.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0149 ; [.1D34.0020.0009] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
index cf27cfd5dc1..5927b3bcb4d 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ar.pl
@@ -1,15 +1,15 @@
+{
- locale_version => 1.14,
- 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
-FE93 ; [.2025.0021.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-0649 ; [.20C7.0021.0002] # ARABIC LETTER ALEF MAKSURA
-FBE8 ; [.20C7.0021.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9 ; [.20C7.0021.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FEF0 ; [.20C7.0021.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEEF ; [.20C7.0021.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FC90 ; [.20C7.0021.001B] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC5D ; [.20C7.0021.001C] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0629 ; [.2296.0021.0002] # ARABIC LETTER TEH MARBUTA
+FE94 ; [.2296.0021.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
+FE93 ; [.2296.0021.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
+0649 ; [.233A.0021.0002] # ARABIC LETTER ALEF MAKSURA
+FBE8 ; [.233A.0021.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+FBE9 ; [.233A.0021.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FEF0 ; [.233A.0021.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEEF ; [.233A.0021.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+FC90 ; [.233A.0021.001B] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC5D ; [.233A.0021.001C] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
index 9a869cf671a..709004744e3 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/as.pl
@@ -1,13 +1,14 @@
+{
- locale_version => 1.14,
- 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
-0983 ; [.23CC.0020.0002][.FFF3.0000.0000] # BENGALI SIGN VISARGA
-0994 ; [.23CC.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
-09A4 09CD 200D ; [.23DB.0020.0002][.FFF1.0000.0000] # <BENGALI LETTER TA, BENGALI SIGN VIRAMA, ZERO WIDTH JOINER>
-09A3 ; [.23DB.0020.0002][.FFF0.0000.0000] # BENGALI LETTER NNA
-0995 09CD 09B7 ; [.23EE.0020.0002][.FFF1.0000.0000] # <BENGALI LETTER KA, BENGALI SIGN VIRAMA, BENGALI LETTER SSA>
-09B9 ; [.23EE.0020.0002][.FFF0.0000.0000] # BENGALI LETTER HA
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0982 ; [.2640.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
+0981 ; [.2640.0020.0002][.FFF2.0000.0000] # BENGALI SIGN CANDRABINDU
+0983 ; [.2640.0020.0002][.FFF3.0000.0000] # BENGALI SIGN VISARGA
+0994 ; [.2640.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
+09CE ; [.2650.0020.0002][.FFF0.0000.0000] # BENGALI LETTER KHANDA TA
+09A4 09CD 200D ; [.2650.0020.0002][.FFF0.0000.0000] # <BENGALI LETTER TA, BENGALI SIGN VIRAMA, ZERO WIDTH JOINER>
+09A4 ; [.2650.0020.0002][.FFF1.0000.0000] # BENGALI LETTER TA
+0995 09CD 09B7 ; [.2662.0020.0002][.FFF1.0000.0000] # <BENGALI LETTER KA, BENGALI SIGN VIRAMA, BENGALI LETTER SSA>
+09B9 ; [.2662.0020.0002][.FFF0.0000.0000] # BENGALI LETTER HA
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
index c405fc57c62..4431231b252 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/az.pl
@@ -1,51 +1,53 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# schwa doesn't require tailoring
- 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
-00C7 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-011F ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-0067 0306 ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0047 0306 ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0131 ; [.19F5.0020.0002] # LATIN SMALL LETTER DOTLESS I
-0049 ; [.19F5.0020.0008] # LATIN CAPITAL LETTER I
-00CC ; [.19F5.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-00CD ; [.19F5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00CE ; [.19F5.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF ; [.19F5.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-012A ; [.19F5.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-012C ; [.19F5.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-012E ; [.19F5.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-0130 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0049 0307 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-00F6 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1AA2.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA2.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-015F ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-00FC ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1B78.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B78.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1B78.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B78.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1B78.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B78.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1B78.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B78.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0071 ; [.1A2A.0020.0002] # LATIN SMALL LETTER Q
-0051 ; [.1A2A.0020.0008] # LATIN CAPITAL LETTER Q
-0078 ; [.19DD.0020.0002] # LATIN SMALL LETTER X
-0058 ; [.19DD.0020.0008] # LATIN CAPITAL LETTER X
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E7 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+0063 0327 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+00C7 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+0043 0327 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+011F ; [.1C70.0020.0002] # LATIN SMALL LETTER G WITH BREVE
+0067 0306 ; [.1C70.0020.0002] # LATIN SMALL LETTER G WITH BREVE
+011E ; [.1C70.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
+0047 0306 ; [.1C70.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
+0131 ; [.1CAC.0020.0002] # LATIN SMALL LETTER DOTLESS I
+0049 ; [.1CAC.0020.0008] # LATIN CAPITAL LETTER I
+00CC ; [.1CAC.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
+00CD ; [.1CAC.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
+00CE ; [.1CAC.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF ; [.1CAC.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
+012A ; [.1CAC.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
+012C ; [.1CAC.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
+012E ; [.1CAC.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
+0130 ; [.1CAD.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+0049 0307 ; [.1CAD.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+00F6 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1D59.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1D59.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+015F ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+0073 0327 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+015E ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+0053 0327 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+00FC ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E31.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E31.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E31.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E31.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E31.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E31.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E31.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E31.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0071 ; [.1CE1.0020.0002] # LATIN SMALL LETTER Q
+0051 ; [.1CE1.0020.0008] # LATIN CAPITAL LETTER Q
+0078 ; [.1C94.0020.0002] # LATIN SMALL LETTER X
+0058 ; [.1C94.0020.0008] # LATIN CAPITAL LETTER X
+0077 ; [.1E9D.0020.0002] # LATIN SMALL LETTER W
+0057 ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER W
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
index adb17e34945..48cb512c5bb 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/be.pl
@@ -1,43 +1,13 @@
+{
- locale_version => 1.14,
- 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,
- 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-0451 ; [.1D29.0020.0002] # CYRILLIC SMALL LETTER IO
-0435 0308 ; [.1D29.0020.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.1D29.0020.0008] # CYRILLIC CAPITAL LETTER IO
-0415 0308 ; [.1D29.0020.0008] # CYRILLIC CAPITAL LETTER IO
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0451 ; [.1FD6.0020.0002] # CYRILLIC SMALL LETTER IO
+0435 0308 ; [.1FD6.0020.0002] # CYRILLIC SMALL LETTER IO
+0401 ; [.1FD6.0020.0008] # CYRILLIC CAPITAL LETTER IO
+0415 0308 ; [.1FD6.0020.0008] # CYRILLIC CAPITAL LETTER IO
+045E ; [.2099.0020.0002] # CYRILLIC SMALL LETTER SHORT U
+0443 0306 ; [.2099.0020.0002] # CYRILLIC SMALL LETTER SHORT U
+040E ; [.2099.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
+0423 0306 ; [.2099.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl
deleted file mode 100644
index b23b64125ab..00000000000
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bg.pl
+++ /dev/null
@@ -1,45 +0,0 @@
-+{
- locale_version => 1.14,
- 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,
- 0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-ENTRY
-};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
index d2aacdb6c5e..aebde407dc8 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/bn.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- 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
-0981 ; [.23CC.0020.0002][.FFF3.0000.0000] # BENGALI SIGN CANDRABINDU
-0994 ; [.23CC.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0982 ; [.2640.0020.0002][.FFF1.0000.0000] # BENGALI SIGN ANUSVARA
+0983 ; [.2640.0020.0002][.FFF2.0000.0000] # BENGALI SIGN VISARGA
+0981 ; [.2640.0020.0002][.FFF3.0000.0000] # BENGALI SIGN CANDRABINDU
+0994 ; [.2640.0020.0002][.FFF0.0000.0000] # BENGALI LETTER AU
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
index f36465357cb..220736cc839 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ca.pl
@@ -1,18 +1,17 @@
+{
- locale_version => 1.14,
- backwards => 2,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0063 0068 ; [.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.193F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.193F.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-006C 006C ; [.1A3C.0020.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-006C 00B7 006C ; [.1A3C.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
-006C 004C ; [.1A3C.0020.0007][.0000.0000.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
-006C 00B7 004C ; [.1A3C.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
-004C 006C ; [.1A3C.0020.0007][.0000.0000.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 00B7 006C ; [.1A3C.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
-004C 004C ; [.1A3C.0020.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-004C 00B7 004C ; [.1A3C.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0063 0068 ; [.1BF6.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0063 0048 ; [.1BF6.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
+0043 0068 ; [.1BF6.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1BF6.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+006C 006C ; [.1CF3.0020.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+006C 00B7 006C ; [.1CF3.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
+006C 004C ; [.1CF3.0020.0007][.0000.0000.0002][.0000.0000.0001] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
+006C 00B7 004C ; [.1CF3.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
+004C 006C ; [.1CF3.0020.0007][.0000.0000.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 00B7 006C ; [.1CF3.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN SMALL LETTER L>
+004C 004C ; [.1CF3.0020.0008][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+004C 00B7 004C ; [.1CF3.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER L, MIDDLE DOT, LATIN CAPITAL LETTER L>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
index 920897c76e0..4f51ec42f76 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cs.pl
@@ -1,25 +1,25 @@
+{
- locale_version => 1.14,
- 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
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0063 0068 ; [.19DD.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.19DD.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.19DD.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.19DD.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0159 ; [.1AF6.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0072 030C ; [.1AF6.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.1AF6.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0052 030C ; [.1AF6.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+010D ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0063 0068 ; [.1C94.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0063 0048 ; [.1C94.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
+0043 0068 ; [.1C94.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1C94.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+0159 ; [.1DAF.0020.0002] # LATIN SMALL LETTER R WITH CARON
+0072 030C ; [.1DAF.0020.0002] # LATIN SMALL LETTER R WITH CARON
+0158 ; [.1DAF.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
+0052 030C ; [.1DAF.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
+0161 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
index 4e5baf6ef43..b712b6fe5a7 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/cy.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.14,
- 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>
-0043 0048 ; [.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0064 0064 ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D>
-0044 0064 ; [.1954.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D>
-0044 0044 ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D>
-0066 0066 ; [.19AA.0020.0002] # <LATIN SMALL LETTER F, LATIN SMALL LETTER F>
-0046 0066 ; [.19AA.0020.0007] # <LATIN CAPITAL LETTER F, LATIN SMALL LETTER F>
-0046 0046 ; [.19AA.0020.0008] # <LATIN CAPITAL LETTER F, LATIN CAPITAL LETTER F>
-006E 0067 ; [.19B9.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
-004E 0067 ; [.19B9.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
-004E 0047 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
-006C 006C ; [.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-004C 006C ; [.1A3C.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-0070 0068 ; [.1ACF.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
-0050 0068 ; [.1ACF.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
-0050 0048 ; [.1ACF.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
-0072 0068 ; [.1AF6.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER H>
-0052 0068 ; [.1AF6.0020.0007] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER H>
-0052 0048 ; [.1AF6.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER H>
-0074 0068 ; [.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
-0054 0068 ; [.1B58.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
-0054 0048 ; [.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0063 0068 ; [.1BF6.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0043 0068 ; [.1BF6.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1BF6.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+0064 0064 ; [.1C0B.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D>
+0044 0064 ; [.1C0B.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D>
+0044 0044 ; [.1C0B.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D>
+0066 0066 ; [.1C61.0020.0002] # <LATIN SMALL LETTER F, LATIN SMALL LETTER F>
+0046 0066 ; [.1C61.0020.0007] # <LATIN CAPITAL LETTER F, LATIN SMALL LETTER F>
+0046 0046 ; [.1C61.0020.0008] # <LATIN CAPITAL LETTER F, LATIN CAPITAL LETTER F>
+006E 0067 ; [.1C70.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
+004E 0067 ; [.1C70.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
+004E 0047 ; [.1C70.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
+006C 006C ; [.1CF3.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+004C 006C ; [.1CF3.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 004C ; [.1CF3.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+0070 0068 ; [.1D88.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
+0050 0068 ; [.1D88.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
+0050 0048 ; [.1D88.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
+0072 0068 ; [.1DAF.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER H>
+0052 0068 ; [.1DAF.0020.0007] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER H>
+0052 0048 ; [.1DAF.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER H>
+0074 0068 ; [.1E11.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
+0054 0068 ; [.1E11.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
+0054 0048 ; [.1E11.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
index 8dcffab0a86..b49098be2da 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/da.pl
@@ -1,78 +1,78 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
upper_before_lower => 1,
- 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
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008][.0000.0000.0001] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0000.0001][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0000.0001][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1C56.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1C56.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0061 0041 ; [.1C56.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
-0041 0041 ; [.1C56.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C0A.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0A.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0A.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E10.0020.0003][.1C93.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E10.0020.0009][.1C93.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F11.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F11.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F11.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F11.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F11.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F11.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F11.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F12.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F12.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F12.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F12.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F13.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F13.0020.0002][.0000.0000.0001] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F13.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F13.0020.0008][.0000.0000.0001] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F13.0020.0008][.0000.0000.0001] # ANGSTROM SIGN
+01FB ; [.1F13.0020.0002][.0000.0000.0001][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F13.0020.0008][.0000.0000.0001][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.1F13.0020.0002][.0000.0000.0007] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0041 0061 ; [.1F13.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0061 0041 ; [.1F13.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
+0041 0041 ; [.1F13.0020.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl
new file mode 100755
index 00000000000..4183e660ce2
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_at_ph.pl
@@ -0,0 +1,31 @@
++{
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E4 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1BC3.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1BC3.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00F6 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1D59.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1D59.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00FC ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E31.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E31.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E31.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E31.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E31.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E31.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E31.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E31.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00DF ; [.1DEC.0020.0002][.1DED.0020.0002] # LATIN SMALL LETTER SHARP S
+1E9E ; [.1DEC.0020.0008][.1DED.0020.0008] # LATIN CAPITAL LETTER SHARP S
+ENTRY
+};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
index b253e5c5b85..0c8933d9d05 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/de_phone.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.14,
- 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
-00C4 ; [.190C.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.190C.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.190C.0021.0002][.196E.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.190C.0021.0008][.196E.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.1AA1.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1AA1.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1AA1.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1AA1.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1AA1.0021.0002][.196E.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA1.0021.0008][.196E.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00FC ; [.1B77.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0021.0002][.196E.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0021.0008][.196E.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1B77.0021.0002][.196E.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0021.0008][.196E.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1B77.0021.0002][.196E.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0021.0008][.196E.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1B77.0021.0002][.196E.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008][.196E.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1B77.0021.0002][.196E.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0021.0008][.196E.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E4 ; [.1BC2.0021.0002][.1C25.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1BC2.0021.0002][.1C25.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1BC2.0021.0008][.1C25.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1BC2.0021.0008][.1C25.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1BC2.0021.0002][.1C25.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1BC2.0021.0008][.1C25.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00F6 ; [.1D58.0021.0002][.1C25.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1D58.0021.0002][.1C25.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1D58.0021.0008][.1C25.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1D58.0021.0008][.1C25.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1D58.0021.0002][.1C25.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1D58.0021.0008][.1C25.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00FC ; [.1E30.0021.0002][.1C25.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E30.0021.0002][.1C25.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E30.0021.0008][.1C25.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E30.0021.0008][.1C25.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E30.0021.0002][.1C25.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E30.0021.0008][.1C25.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E30.0021.0002][.1C25.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E30.0021.0008][.1C25.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E30.0021.0002][.1C25.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E30.0021.0008][.1C25.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E30.0021.0002][.1C25.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E30.0021.0008][.1C25.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
index c8b792469a2..652326af431 100755
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ee.pl
@@ -1,36 +1,36 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# d-tail, open-e, f-hook, gamma, eng, open-o, v-hook don't require tailoring
- entry => <<'ENTRY', # for DUCET v7.0.0
+ entry => <<'ENTRY', # for DUCET v8.0.0
0302 ; [.0000.0029.0002] # COMBINING CIRCUMFLEX ACCENT
-00E2 ; [.190C.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.190C.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-00EA ; [.196E.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-00EE ; [.19F6.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.19F6.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00F4 ; [.1AA1.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA1.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-00FB ; [.1B77.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00DB ; [.1B77.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-0177 ; [.1BCD.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0176 ; [.1BCD.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-0064 007A ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0044 007A ; [.1954.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 005A ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0067 0062 ; [.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.19B9.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-0078 ; [.19DD.0020.0002] # LATIN SMALL LETTER X
-0058 ; [.19DD.0020.0008] # LATIN CAPITAL LETTER X
-006B 0070 ; [.1A2A.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
-004B 0070 ; [.1A2A.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
-004B 0050 ; [.1A2A.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
-006E 0079 ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.1A7E.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0074 0073 ; [.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
-0054 0073 ; [.1B58.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
-0054 0053 ; [.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
+00E2 ; [.1BC2.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2 ; [.1BC2.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00EA ; [.1C25.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C25.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00EE ; [.1CAD.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+00CE ; [.1CAD.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00F4 ; [.1D58.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1D58.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00FB ; [.1E30.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
+00DB ; [.1E30.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0177 ; [.1E86.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0176 ; [.1E86.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0064 007A ; [.1C0B.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0044 007A ; [.1C0B.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0044 005A ; [.1C0B.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0067 0062 ; [.1C70.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
+0047 0062 ; [.1C70.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
+0047 0042 ; [.1C70.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
+0078 ; [.1C94.0020.0002] # LATIN SMALL LETTER X
+0058 ; [.1C94.0020.0008] # LATIN CAPITAL LETTER X
+006B 0070 ; [.1CE1.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
+004B 0070 ; [.1CE1.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
+004B 0050 ; [.1CE1.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
+006E 0079 ; [.1D35.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 0079 ; [.1D35.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1D35.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0074 0073 ; [.1E11.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
+0054 0073 ; [.1E11.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
+0054 0053 ; [.1E11.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
index de2d1075dd5..116f950eac1 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/eo.pl
@@ -1,29 +1,29 @@
+{
- locale_version => 1.14,
- 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
-0108 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-0043 0302 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-011D ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-0067 0302 ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011C ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-0047 0302 ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-0125 ; [.19DD.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0068 0302 ; [.19DD.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0124 ; [.19DD.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0048 0302 ; [.19DD.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-0135 ; [.1A11.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-006A 0302 ; [.1A11.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0134 ; [.1A11.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-004A 0302 ; [.1A11.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-015D ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-0073 0302 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-0053 0302 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-016D ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH BREVE
-0075 0306 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
-0055 0306 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0109 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
+0063 0302 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
+0108 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0043 0302 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+011D ; [.1C70.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
+0067 0302 ; [.1C70.0020.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
+011C ; [.1C70.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+0047 0302 ; [.1C70.0020.0008] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+0125 ; [.1C94.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
+0068 0302 ; [.1C94.0020.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
+0124 ; [.1C94.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0048 0302 ; [.1C94.0020.0008] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0135 ; [.1CC8.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
+006A 0302 ; [.1CC8.0020.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
+0134 ; [.1CC8.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+004A 0302 ; [.1CC8.0020.0008] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+015D ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
+0073 0302 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
+015C ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+0053 0302 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+016D ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH BREVE
+0075 0306 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH BREVE
+016C ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
+0055 0306 ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH BREVE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
index fb5e1006408..d7991e96ba5 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- 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
-00D1 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00F1 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
index 966a69bf4d7..2b8aad1ef3b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/es_trad.pl
@@ -1,15 +1,15 @@
+{
- locale_version => 1.14,
- 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>
-0043 0048 ; [.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-006C 006C ; [.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-004C 006C ; [.1A3C.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-00F1 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0063 0068 ; [.1BF6.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0043 0068 ; [.1BF6.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1BF6.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+006C 006C ; [.1CF3.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+004C 006C ; [.1CF3.0020.0007] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 004C ; [.1CF3.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+00F1 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
index 98087690f3e..ac084ec4f59 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/et.pl
@@ -1,53 +1,51 @@
+{
- locale_version => 1.14,
- 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
-0160 ; [.1B54.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B54.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-007A ; [.1B55.0020.0002] # LATIN SMALL LETTER Z
-005A ; [.1B55.0020.0008] # LATIN CAPITAL LETTER Z
-017E ; [.1B56.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1B56.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1B56.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1B56.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-0077 ; [.1BA5.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.1BA5.0021.0008] # LATIN CAPITAL LETTER W
-00F5 ; [.1BBD.0020.0002] # LATIN SMALL LETTER O WITH TILDE
-006F 0303 ; [.1BBD.0020.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1BBD.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
-004F 0303 ; [.1BBD.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.1BBD.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.1BBD.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-022D ; [.1BBD.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.1BBD.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-1E4F ; [.1BBD.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.1BBD.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1EE1 ; [.1BBD.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1BBD.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-00E4 ; [.1BBE.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1BBE.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1BBE.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1BBE.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1BBE.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1BBE.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.1BBF.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1BBF.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1BBF.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1BBF.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1BBF.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1BBF.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00FC ; [.1BC0.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BC0.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BC0.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BC0.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BC0.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BC0.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BC0.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BC0.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BC0.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BC0.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BC0.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BC0.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0161 ; [.1E0D.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E0D.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E0D.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E0D.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+007A ; [.1E0E.0020.0002] # LATIN SMALL LETTER Z
+005A ; [.1E0E.0020.0008] # LATIN CAPITAL LETTER Z
+017E ; [.1E0F.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1E0F.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1E0F.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1E0F.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+00F5 ; [.1E76.0020.0002] # LATIN SMALL LETTER O WITH TILDE
+006F 0303 ; [.1E76.0020.0002] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1E76.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
+004F 0303 ; [.1E76.0020.0008] # LATIN CAPITAL LETTER O WITH TILDE
+1E4D ; [.1E76.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4C ; [.1E76.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+022D ; [.1E76.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
+022C ; [.1E76.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+1E4F ; [.1E76.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E4E ; [.1E76.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1EE1 ; [.1E76.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE0 ; [.1E76.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+00E4 ; [.1E77.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1E77.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1E77.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1E77.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1E77.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1E77.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00F6 ; [.1E78.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1E78.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1E78.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1E78.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1E78.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1E78.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00FC ; [.1E79.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E79.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E79.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E79.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E79.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E79.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E79.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E79.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E79.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E79.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E79.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E79.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
index fbd3e28ac7c..bb0607a0316 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fa.pl
@@ -1,51 +1,51 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
0650 ; [.0000.0077.0002] # ARABIC KASRA
064B ; [.0000.007B.0002] # ARABIC FATHATAN
064D ; [.0000.007C.0002] # ARABIC KASRATAN
064C ; [.0000.007D.0002] # ARABIC DAMMATAN
-0622 ; [.2014.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.2014.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-08AC ; [.2014.0020.0002][.FFF0.0000.0000] # ARABIC LETTER ROHINGYA YEH
-0671 ; [.2015.0021.0002] # ARABIC LETTER ALEF WASLA
-0621 ; [.2016.0020.0002][.FFF0.0000.0000] # ARABIC LETTER HAMZA
-0623 ; [.2016.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0627 0654 ; [.2016.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0672 ; [.2016.0022.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0625 ; [.2016.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0627 0655 ; [.2016.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0673 ; [.2016.0024.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0624 ; [.2016.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.2016.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-06CC 0654 ; [.2016.0026.0002][.FFF0.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC HAMZA ABOVE>
-0649 0654 ; [.2016.0026.0003][.FFF0.0000.0000] # <ARABIC LETTER ALEF MAKSURA, ARABIC HAMZA ABOVE>
-0626 ; [.2016.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.2016.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-066E ; [.2016.0020.0002][.FFF1.0000.0000] # ARABIC LETTER DOTLESS BEH
-06AA ; [.208B.0021.0002] # ARABIC LETTER SWASH KAF
-06AB ; [.208B.0022.0002] # ARABIC LETTER KAF WITH RING
-0643 ; [.208B.0023.0002] # ARABIC LETTER KAF
-06AC ; [.208B.0024.0002] # ARABIC LETTER KAF WITH DOT ABOVE
-06AD ; [.208B.0025.0002] # ARABIC LETTER NG
-06AE ; [.208B.0026.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
-0647 ; [.20C2.0020.0002][.FFF1.0000.0000] # ARABIC LETTER HEH
-06D5 ; [.20C2.0021.0002][.FFF1.0000.0000] # ARABIC LETTER AE
-06C1 ; [.20C2.0022.0002][.FFF1.0000.0000] # ARABIC LETTER HEH GOAL
-06C2 ; [.20C2.0022.0002][.FFF1.0000.0000][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-0629 ; [.20C2.0023.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA
-06C3 ; [.20C2.0024.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
-06C0 ; [.20C2.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
-06D5 0654 ; [.20C2.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
-06BE ; [.20C2.0026.0002][.FFF1.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
-06CF ; [.20C2.0020.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH DOT ABOVE
-0649 ; [.20C8.0021.0002] # ARABIC LETTER ALEF MAKSURA
-06D2 ; [.20C8.0022.0002] # ARABIC LETTER YEH BARREE
-06D3 ; [.20C8.0022.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-064A ; [.20C8.0023.0002] # ARABIC LETTER YEH
-06D0 ; [.20C8.0024.0002] # ARABIC LETTER E
-06D1 ; [.20C8.0025.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
-06CD ; [.20C8.0026.0002] # ARABIC LETTER YEH WITH TAIL
-06CE ; [.20C8.0027.0002] # ARABIC LETTER YEH WITH SMALL V
+0622 ; [.2285.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
+0627 0653 ; [.2285.0020.0002][.FFF1.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
+08AC ; [.2285.0020.0002][.FFF0.0000.0000] # ARABIC LETTER ROHINGYA YEH
+0671 ; [.2286.0021.0002] # ARABIC LETTER ALEF WASLA
+0621 ; [.2287.0020.0002][.FFF0.0000.0000] # ARABIC LETTER HAMZA
+0623 ; [.2287.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0627 0654 ; [.2287.0021.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0672 ; [.2287.0022.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
+0625 ; [.2287.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
+0627 0655 ; [.2287.0023.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH HAMZA BELOW
+0673 ; [.2287.0024.0002][.FFF0.0000.0000] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
+0624 ; [.2287.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
+0648 0654 ; [.2287.0025.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
+06CC 0654 ; [.2287.0026.0002][.FFF0.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC HAMZA ABOVE>
+0649 0654 ; [.2287.0026.0003][.FFF0.0000.0000] # <ARABIC LETTER ALEF MAKSURA, ARABIC HAMZA ABOVE>
+0626 ; [.2287.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
+064A 0654 ; [.2287.0026.0004][.FFF0.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
+066E ; [.2287.0020.0002][.FFF1.0000.0000] # ARABIC LETTER DOTLESS BEH
+06AA ; [.22FD.0021.0002] # ARABIC LETTER SWASH KAF
+06AB ; [.22FD.0022.0002] # ARABIC LETTER KAF WITH RING
+0643 ; [.22FD.0023.0002] # ARABIC LETTER KAF
+06AC ; [.22FD.0024.0002] # ARABIC LETTER KAF WITH DOT ABOVE
+06AD ; [.22FD.0025.0002] # ARABIC LETTER NG
+06AE ; [.22FD.0026.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
+0647 ; [.2335.0020.0002][.FFF1.0000.0000] # ARABIC LETTER HEH
+06D5 ; [.2335.0021.0002][.FFF1.0000.0000] # ARABIC LETTER AE
+06C1 ; [.2335.0022.0002][.FFF1.0000.0000] # ARABIC LETTER HEH GOAL
+06C2 ; [.2335.0022.0002][.FFF1.0000.0000][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+0629 ; [.2335.0023.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA
+06C3 ; [.2335.0024.0002][.FFF1.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
+06C0 ; [.2335.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
+06D5 0654 ; [.2335.0025.0002][.FFF1.0000.0000] # ARABIC LETTER HEH WITH YEH ABOVE
+06BE ; [.2335.0026.0002][.FFF1.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
+06CF ; [.2335.0020.0002][.FFF0.0000.0000] # ARABIC LETTER WAW WITH DOT ABOVE
+0649 ; [.233B.0021.0002] # ARABIC LETTER ALEF MAKSURA
+06D2 ; [.233B.0022.0002] # ARABIC LETTER YEH BARREE
+06D3 ; [.233B.0022.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+064A ; [.233B.0023.0002] # ARABIC LETTER YEH
+06D0 ; [.233B.0024.0002] # ARABIC LETTER E
+06D1 ; [.233B.0025.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
+06CD ; [.233B.0026.0002] # ARABIC LETTER YEH WITH TAIL
+06CE ; [.233B.0027.0002] # ARABIC LETTER YEH WITH SMALL V
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
index a1e6a6b3906..11a0e899b0d 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi.pl
@@ -1,65 +1,65 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# 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
-0110 ; [.1953.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-01E5 ; [.19B8.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.19B8.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
-014B ; [.1A7D.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
-014A ; [.1A7D.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
-0167 ; [.1B57.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1B57.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
-0077 ; [.1BA5.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.1BA5.0021.0008] # LATIN CAPITAL LETTER W
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0292 ; [.1BE3.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1BE3.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
-01EF ; [.1BE3.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1BE3.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1C55.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C55.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C55.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C56.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C56.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
+01E5 ; [.1C6F.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
+01E4 ; [.1C6F.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
+014B ; [.1D34.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
+014A ; [.1D34.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
+0167 ; [.1E10.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
+0166 ; [.1E10.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
+0077 ; [.1E5E.0021.0002] # LATIN SMALL LETTER W
+0057 ; [.1E5E.0021.0008] # LATIN CAPITAL LETTER W
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0292 ; [.1E9C.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
+01B7 ; [.1E9C.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
+01EF ; [.1E9C.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.1E9C.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
+00E5 ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F11.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F12.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F12.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E6 ; [.1F12.0021.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F12.0021.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F12.0021.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F12.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F12.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00F6 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F13.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F13.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F13.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F13.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
index 93f3df17505..30f7c28a2c0 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fi_phone.pl
@@ -1,63 +1,63 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# 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
-0110 ; [.1953.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-01E5 ; [.19B8.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.19B8.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
-014B ; [.1A7D.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
-014A ; [.1A7D.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
-0167 ; [.1B57.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1B57.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0292 ; [.1BE3.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1BE3.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
-01EF ; [.1BE3.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1BE3.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1C55.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C55.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C55.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C56.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C56.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
+01E5 ; [.1C6F.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER G WITH STROKE
+01E4 ; [.1C6F.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER G WITH STROKE
+014B ; [.1D34.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER ENG
+014A ; [.1D34.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER ENG
+0167 ; [.1E10.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER T WITH STROKE
+0166 ; [.1E10.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER T WITH STROKE
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0292 ; [.1E9C.0021.0002][.0000.0039.0002] # LATIN SMALL LETTER EZH
+01B7 ; [.1E9C.0021.0008][.0000.0039.0002] # LATIN CAPITAL LETTER EZH
+01EF ; [.1E9C.0021.0002][.0000.0039.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.1E9C.0021.0008][.0000.0039.0002][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
+00E5 ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F11.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F12.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F12.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E6 ; [.1F12.0021.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F12.0021.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F12.0021.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F12.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F12.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00F6 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F13.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F13.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F13.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F13.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
index d53d155d724..5eaf69134eb 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fil.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.14,
- 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
-00D1 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-006E 0067 ; [.1A7F.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
-004E 0067 ; [.1A7F.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
-004E 0047 ; [.1A7F.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00F1 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+006E 0067 ; [.1D36.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
+004E 0067 ; [.1D36.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
+004E 0047 ; [.1D36.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
index ec79a4983ba..104d1ffb266 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fo.pl
@@ -1,77 +1,77 @@
+{
- locale_version => 1.14,
- 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
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1C56.0020.001C][.0000.0000.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0061 0041 ; [.1C56.0020.001C][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
-0041 0061 ; [.1C56.0020.001D][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1C56.0020.001D][.0000.0000.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C0A.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0A.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0A.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E10.0020.0003][.1C93.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E10.0020.0009][.1C93.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F11.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F11.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F11.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F11.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F11.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F11.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F11.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F12.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F12.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F12.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F12.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F13.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F13.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F13.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.1F13.0020.001C][.0000.0000.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0061 0041 ; [.1F13.0020.001C][.0000.0000.0008] # <LATIN SMALL LETTER A, LATIN CAPITAL LETTER A>
+0041 0061 ; [.1F13.0020.001D][.0000.0000.0002] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0041 0041 ; [.1F13.0020.001D][.0000.0000.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl
deleted file mode 100644
index 8c1a56567d0..00000000000
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr.pl
+++ /dev/null
@@ -1,4 +0,0 @@
-+{
- locale_version => 1.14,
- backwards => 2,
-};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl
new file mode 100755
index 00000000000..4007b59f215
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/fr_ca.pl
@@ -0,0 +1,4 @@
++{
+ locale_version => 1.19,
+ backwards => 2,
+};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
index 037b655b088..c4107d8c4ca 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/gu.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- 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
-0A83 ; [.2438.0020.0002][.FFF2.0000.0000] # GUJARATI SIGN VISARGA
-0AD0 ; [.2438.0020.0002][.FFF0.0000.0000] # GUJARATI OM
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0A82 ; [.26AC.0020.0002][.FFF1.0000.0000] # GUJARATI SIGN ANUSVARA
+0A81 ; [.26AC.0021.0002][.FFF1.0000.0000] # GUJARATI SIGN CANDRABINDU
+0A83 ; [.26AC.0020.0002][.FFF2.0000.0000] # GUJARATI SIGN VISARGA
+0AD0 ; [.26AC.0020.0002][.FFF0.0000.0000] # GUJARATI OM
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
index 845b7c0ceac..3f94d19398b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ha.pl
@@ -1,16 +1,16 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# 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>
-0053 0068 ; [.1B34.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.1B34.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-0074 0073 ; [.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
-0054 0073 ; [.1B58.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
-0054 0053 ; [.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
-02BC 0079 ; [.1BD9.0020.0003] # <MODIFIER LETTER APOSTROPHE, LATIN SMALL LETTER Y>
-02BC 0059 ; [.1BD9.0020.0009] # <MODIFIER LETTER APOSTROPHE, LATIN CAPITAL LETTER Y>
-0027 0079 ; [.1BD9.0020.0004] # <APOSTROPHE, LATIN SMALL LETTER Y>
-0027 0059 ; [.1BD9.0020.000A] # <APOSTROPHE, LATIN CAPITAL LETTER Y>
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0073 0068 ; [.1DED.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
+0053 0068 ; [.1DED.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+0053 0048 ; [.1DED.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
+0074 0073 ; [.1E11.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER S>
+0054 0073 ; [.1E11.0020.0007] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER S>
+0054 0053 ; [.1E11.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER S>
+02BC 0079 ; [.1E92.0020.0003] # <MODIFIER LETTER APOSTROPHE, LATIN SMALL LETTER Y>
+02BC 0059 ; [.1E92.0020.0009] # <MODIFIER LETTER APOSTROPHE, LATIN CAPITAL LETTER Y>
+0027 0079 ; [.1E92.0020.0004] # <APOSTROPHE, LATIN SMALL LETTER Y>
+0027 0059 ; [.1E92.0020.000A] # <APOSTROPHE, LATIN CAPITAL LETTER Y>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
index cb17e77a8e8..c35d19bf168 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/haw.pl
@@ -1,37 +1,22 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0065 ; [.190D.0020.0002] # LATIN SMALL LETTER E
-0045 ; [.190D.0020.0008] # LATIN CAPITAL LETTER E
-0069 ; [.190E.0020.0002] # LATIN SMALL LETTER I
-0049 ; [.190E.0020.0008] # LATIN CAPITAL LETTER I
-006F ; [.190F.0020.0002] # LATIN SMALL LETTER O
-004F ; [.190F.0020.0008] # LATIN CAPITAL LETTER O
-0075 ; [.1910.0020.0002] # LATIN SMALL LETTER U
-0055 ; [.1910.0020.0008] # LATIN CAPITAL LETTER U
-0068 ; [.1911.0020.0002] # LATIN SMALL LETTER H
-0048 ; [.1911.0020.0008] # LATIN CAPITAL LETTER H
-006B ; [.1912.0020.0002] # LATIN SMALL LETTER K
-004B ; [.1912.0020.0008] # LATIN CAPITAL LETTER K
-212A ; [.1912.0020.0008] # KELVIN SIGN
-006C ; [.1913.0020.0002] # LATIN SMALL LETTER L
-004C ; [.1913.0020.0008] # LATIN CAPITAL LETTER L
-006D ; [.1914.0020.0002] # LATIN SMALL LETTER M
-004D ; [.1914.0020.0008] # LATIN CAPITAL LETTER M
-006E ; [.1915.0020.0002] # LATIN SMALL LETTER N
-004E ; [.1915.0020.0008] # LATIN CAPITAL LETTER N
-0070 ; [.1916.0020.0002] # LATIN SMALL LETTER P
-0050 ; [.1916.0020.0008] # LATIN CAPITAL LETTER P
-0077 ; [.1917.0020.0002] # LATIN SMALL LETTER W
-0057 ; [.1917.0020.0008] # LATIN CAPITAL LETTER W
-02BB ; [.1918.0020.0002] # MODIFIER LETTER TURNED COMMA
-0113 ; [.190D.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.190D.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
-012B ; [.190E.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.190E.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-014D ; [.190F.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.190F.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
-016B ; [.1910.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1910.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0065 ; [.1BC3.0020.0002][.FFF1.0000.0000] # LATIN SMALL LETTER E
+0045 ; [.1BC3.0020.0008][.FFF1.0000.0000] # LATIN CAPITAL LETTER E
+0069 ; [.1BC3.0020.0002][.FFF2.0000.0000] # LATIN SMALL LETTER I
+0049 ; [.1BC3.0020.0008][.FFF2.0000.0000] # LATIN CAPITAL LETTER I
+006F ; [.1BC3.0020.0002][.FFF3.0000.0000] # LATIN SMALL LETTER O
+004F ; [.1BC3.0020.0008][.FFF3.0000.0000] # LATIN CAPITAL LETTER O
+0075 ; [.1BC3.0020.0002][.FFF4.0000.0000] # LATIN SMALL LETTER U
+0055 ; [.1BC3.0020.0008][.FFF4.0000.0000] # LATIN CAPITAL LETTER U
+02BB ; [.1E71.0020.0002] # MODIFIER LETTER TURNED COMMA
+0113 ; [.1BC3.0020.0002][.FFF1.0000.0000][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1BC3.0020.0008][.FFF1.0000.0000][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
+012B ; [.1BC3.0020.0002][.FFF2.0000.0000][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1BC3.0020.0008][.FFF2.0000.0000][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
+014D ; [.1BC3.0020.0002][.FFF3.0000.0000][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1BC3.0020.0008][.FFF3.0000.0000][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
+016B ; [.1BC3.0020.0002][.FFF4.0000.0000][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1BC3.0020.0008][.FFF4.0000.0000][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl
new file mode 100755
index 00000000000..f36eac539ff
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/he.pl
@@ -0,0 +1,7 @@
++{
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+05F3 ; [*02FE.001F.0002] # HEBREW PUNCTUATION GERESH
+05F4 ; [*0305.001F.0002] # HEBREW PUNCTUATION GERSHAYIM
+ENTRY
+};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
index 1fab20c2186..be52b800de0 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hi.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- 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
-0903 ; [.235B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.235B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0902 ; [.25CE.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901 ; [.25CE.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
+0903 ; [.25CE.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
+0950 ; [.25CE.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
index e7d29d61b3e..1824ab9c208 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hr.pl
@@ -1,48 +1,48 @@
+{
- locale_version => 1.14,
- 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
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0107 ; [.1940.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0301 ; [.1940.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0341 ; [.1940.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.1940.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0301 ; [.1940.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0341 ; [.1940.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0064 017E ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON>
-01C6 ; [.1954.0020.0003] # LATIN SMALL LETTER DZ WITH CARON
-0044 017E ; [.1954.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON>
-01C5 ; [.1954.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-0044 017D ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON>
-01C4 ; [.1954.0020.0009] # LATIN CAPITAL LETTER DZ WITH CARON
-0064 007A 030C ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
-0044 007A 030C ; [.1954.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
-0044 005A 030C ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, COMBINING CARON>
-0111 ; [.1955.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1955.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1955.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1955.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-006C 006A ; [.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER J>
-01C9 ; [.1A3C.0020.0003] # LATIN SMALL LETTER LJ
-004C 006A ; [.1A3C.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER J>
-01C8 ; [.1A3C.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-004C 004A ; [.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J>
-01C7 ; [.1A3C.0020.0009] # LATIN CAPITAL LETTER LJ
-006E 006A ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
-01CC ; [.1A7E.0020.0003] # LATIN SMALL LETTER NJ
-004E 006A ; [.1A7E.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
-01CB ; [.1A7E.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-004E 004A ; [.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
-01CA ; [.1A7E.0020.0009] # LATIN CAPITAL LETTER NJ
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+010D ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0107 ; [.1BF7.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0063 0301 ; [.1BF7.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0063 0341 ; [.1BF7.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0106 ; [.1BF7.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0043 0301 ; [.1BF7.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0043 0341 ; [.1BF7.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0064 017E ; [.1C0B.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z WITH CARON>
+01C6 ; [.1C0B.0020.0003] # LATIN SMALL LETTER DZ WITH CARON
+0044 017E ; [.1C0B.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z WITH CARON>
+01C5 ; [.1C0B.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+0044 017D ; [.1C0B.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z WITH CARON>
+01C4 ; [.1C0B.0020.0009] # LATIN CAPITAL LETTER DZ WITH CARON
+0064 007A 030C ; [.1C0B.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
+0044 007A 030C ; [.1C0B.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, COMBINING CARON>
+0044 005A 030C ; [.1C0B.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, COMBINING CARON>
+0111 ; [.1C0C.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0C.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0C.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0C.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+006C 006A ; [.1CF3.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER J>
+01C9 ; [.1CF3.0020.0003] # LATIN SMALL LETTER LJ
+004C 006A ; [.1CF3.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER J>
+01C8 ; [.1CF3.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
+004C 004A ; [.1CF3.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER J>
+01C7 ; [.1CF3.0020.0009] # LATIN CAPITAL LETTER LJ
+006E 006A ; [.1D35.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
+01CC ; [.1D35.0020.0003] # LATIN SMALL LETTER NJ
+004E 006A ; [.1D35.0020.0007][.0000.0000.0001] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
+01CB ; [.1D35.0020.0007][.0000.0000.0007] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
+004E 004A ; [.1D35.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
+01CA ; [.1D35.0020.0009] # LATIN CAPITAL LETTER NJ
+0161 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
index 62b6707e3f0..94794bfc3a5 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hu.pl
@@ -1,151 +1,151 @@
+{
- locale_version => 1.14,
- 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>
-0043 0073 ; [.193F.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0043 0053 ; [.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0064 007A ; [.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0064 005A ; [.1954.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0044 007A ; [.1954.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 005A ; [.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0064 007A 0073 ; [.1955.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0064 007A 0053 ; [.1955.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0064 005A 0073 ; [.1955.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0064 005A 0053 ; [.1955.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0044 007A 0073 ; [.1955.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0044 007A 0053 ; [.1955.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0044 005A 0073 ; [.1955.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0044 005A 0053 ; [.1955.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0067 0079 ; [.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0067 0059 ; [.19B9.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0079 ; [.19B9.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0047 0059 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-006C 0079 ; [.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-006C 0059 ; [.1A3C.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-004C 0079 ; [.1A3C.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-004C 0059 ; [.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-006E 0079 ; [.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-006E 0059 ; [.1A7E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-004E 0079 ; [.1A7E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0073 007A ; [.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0073 005A ; [.1B34.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0053 007A ; [.1B34.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0053 005A ; [.1B34.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0074 0079 ; [.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0074 0059 ; [.1B58.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0079 ; [.1B58.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0054 0059 ; [.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-007A 0073 ; [.1BE4.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-007A 0053 ; [.1BE4.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-005A 0073 ; [.1BE4.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-005A 0053 ; [.1BE4.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-00F6 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1AA2.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA2.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1AA2.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1AA2.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1AA2.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1AA2.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00FC ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1B78.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B78.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1B78.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B78.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1B78.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B78.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1B78.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B78.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1B78.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1B78.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1B78.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1B78.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0063 0063 0073 ; [.193F.0020.0002][.193F.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
-0063 0063 0053 ; [.193F.0020.0002][.193F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
-0063 0043 0073 ; [.193F.0020.0002][.193F.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0063 0043 0053 ; [.193F.0020.0002][.193F.0020.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0043 0063 0073 ; [.193F.0020.0008][.193F.0020.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
-0043 0063 0053 ; [.193F.0020.0008][.193F.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
-0043 0043 0073 ; [.193F.0020.0008][.193F.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
-0043 0043 0053 ; [.193F.0020.0008][.193F.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
-0064 0064 007A ; [.1954.0020.0002][.1954.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0064 0064 005A ; [.1954.0020.0002][.1954.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0064 0044 007A ; [.1954.0020.0002][.1954.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0064 0044 005A ; [.1954.0020.0002][.1954.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0044 0064 007A ; [.1954.0020.0008][.1954.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
-0044 0064 005A ; [.1954.0020.0008][.1954.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
-0044 0044 007A ; [.1954.0020.0008][.1954.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
-0044 0044 005A ; [.1954.0020.0008][.1954.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
-0064 0064 007A 0073 ; [.1955.0020.0002][.1955.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0064 0064 007A 0053 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0064 0064 005A 0073 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0064 0064 005A 0053 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0064 0044 007A 0073 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0064 0044 007A 0053 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0064 0044 005A 0073 ; [.1955.0020.0002][.1955.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0064 0044 005A 0053 ; [.1955.0020.0002][.1955.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0064 007A 0073 ; [.1955.0020.0008][.1955.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0044 0064 007A 0053 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0064 005A 0073 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0044 0064 005A 0053 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0044 007A 0073 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-0044 0044 007A 0053 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-0044 0044 005A 0073 ; [.1955.0020.0008][.1955.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-0044 0044 005A 0053 ; [.1955.0020.0008][.1955.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-0067 0067 0079 ; [.19B9.0020.0002][.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0067 0067 0059 ; [.19B9.0020.0002][.19B9.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0067 0047 0079 ; [.19B9.0020.0002][.19B9.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0067 0047 0059 ; [.19B9.0020.0002][.19B9.0020.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0067 0079 ; [.19B9.0020.0008][.19B9.0020.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
-0047 0067 0059 ; [.19B9.0020.0008][.19B9.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
-0047 0047 0079 ; [.19B9.0020.0008][.19B9.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
-0047 0047 0059 ; [.19B9.0020.0008][.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
-006C 006C 0079 ; [.1A3C.0020.0002][.1A3C.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-006C 006C 0059 ; [.1A3C.0020.0002][.1A3C.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-006C 004C 0079 ; [.1A3C.0020.0002][.1A3C.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-006C 004C 0059 ; [.1A3C.0020.0002][.1A3C.0020.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-004C 006C 0079 ; [.1A3C.0020.0008][.1A3C.0020.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
-004C 006C 0059 ; [.1A3C.0020.0008][.1A3C.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
-004C 004C 0079 ; [.1A3C.0020.0008][.1A3C.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
-004C 004C 0059 ; [.1A3C.0020.0008][.1A3C.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
-006E 006E 0079 ; [.1A7E.0020.0002][.1A7E.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-006E 006E 0059 ; [.1A7E.0020.0002][.1A7E.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-006E 004E 0079 ; [.1A7E.0020.0002][.1A7E.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-006E 004E 0059 ; [.1A7E.0020.0002][.1A7E.0020.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-004E 006E 0079 ; [.1A7E.0020.0008][.1A7E.0020.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 006E 0059 ; [.1A7E.0020.0008][.1A7E.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
-004E 004E 0079 ; [.1A7E.0020.0008][.1A7E.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 004E 0059 ; [.1A7E.0020.0008][.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0073 0073 007A ; [.1B34.0020.0002][.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0073 0073 005A ; [.1B34.0020.0002][.1B34.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0073 0053 007A ; [.1B34.0020.0002][.1B34.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0073 0053 005A ; [.1B34.0020.0002][.1B34.0020.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0053 0073 007A ; [.1B34.0020.0008][.1B34.0020.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
-0053 0073 005A ; [.1B34.0020.0008][.1B34.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
-0053 0053 007A ; [.1B34.0020.0008][.1B34.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
-0053 0053 005A ; [.1B34.0020.0008][.1B34.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
-0074 0074 0079 ; [.1B58.0020.0002][.1B58.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0074 0074 0059 ; [.1B58.0020.0002][.1B58.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0074 0054 0079 ; [.1B58.0020.0002][.1B58.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0074 0054 0059 ; [.1B58.0020.0002][.1B58.0020.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0074 0079 ; [.1B58.0020.0008][.1B58.0020.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
-0054 0074 0059 ; [.1B58.0020.0008][.1B58.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
-0054 0054 0079 ; [.1B58.0020.0008][.1B58.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
-0054 0054 0059 ; [.1B58.0020.0008][.1B58.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
-007A 007A 0073 ; [.1BE4.0020.0002][.1BE4.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-007A 007A 0053 ; [.1BE4.0020.0002][.1BE4.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-007A 005A 0073 ; [.1BE4.0020.0002][.1BE4.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-007A 005A 0053 ; [.1BE4.0020.0002][.1BE4.0020.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
-005A 007A 0073 ; [.1BE4.0020.0008][.1BE4.0020.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
-005A 007A 0053 ; [.1BE4.0020.0008][.1BE4.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
-005A 005A 0073 ; [.1BE4.0020.0008][.1BE4.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
-005A 005A 0053 ; [.1BE4.0020.0008][.1BE4.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0063 0073 ; [.1BF6.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER S>
+0063 0053 ; [.1BF6.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
+0043 0073 ; [.1BF6.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
+0043 0053 ; [.1BF6.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
+0064 007A ; [.1C0B.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0064 005A ; [.1C0B.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
+0044 007A ; [.1C0B.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0044 005A ; [.1C0B.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0064 007A 0073 ; [.1C0C.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0064 007A 0053 ; [.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0064 005A 0073 ; [.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0064 005A 0053 ; [.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0044 007A 0073 ; [.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0044 007A 0053 ; [.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0044 005A 0073 ; [.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0044 005A 0053 ; [.1C0C.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0067 0079 ; [.1C70.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
+0067 0059 ; [.1C70.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
+0047 0079 ; [.1C70.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
+0047 0059 ; [.1C70.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
+006C 0079 ; [.1CF3.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
+006C 0059 ; [.1CF3.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
+004C 0079 ; [.1CF3.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
+004C 0059 ; [.1CF3.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
+006E 0079 ; [.1D35.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+006E 0059 ; [.1D35.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
+004E 0079 ; [.1D35.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1D35.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0073 007A ; [.1DED.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
+0073 005A ; [.1DED.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
+0053 007A ; [.1DED.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
+0053 005A ; [.1DED.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
+0074 0079 ; [.1E11.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
+0074 0059 ; [.1E11.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
+0054 0079 ; [.1E11.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
+0054 0059 ; [.1E11.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
+007A 0073 ; [.1E9D.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+007A 0053 ; [.1E9D.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+005A 0073 ; [.1E9D.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+005A 0053 ; [.1E9D.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+00F6 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1D59.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1D59.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1D59.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1D59.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1D59.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1D59.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+00FC ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E31.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E31.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E31.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E31.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E31.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E31.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E31.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E31.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E31.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E31.0021.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E31.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E31.0021.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0063 0063 0073 ; [.1BF6.0020.0002][.1BF6.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
+0063 0063 0053 ; [.1BF6.0020.0002][.1BF6.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
+0063 0043 0073 ; [.1BF6.0020.0002][.1BF6.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
+0063 0043 0053 ; [.1BF6.0020.0002][.1BF6.0020.0008] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
+0043 0063 0073 ; [.1BF6.0020.0008][.1BF6.0020.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN SMALL LETTER S>
+0043 0063 0053 ; [.1BF6.0020.0008][.1BF6.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER C, LATIN CAPITAL LETTER S>
+0043 0043 0073 ; [.1BF6.0020.0008][.1BF6.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN SMALL LETTER S>
+0043 0043 0053 ; [.1BF6.0020.0008][.1BF6.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER S>
+0064 0064 007A ; [.1C0B.0020.0002][.1C0B.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0064 0064 005A ; [.1C0B.0020.0002][.1C0B.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
+0064 0044 007A ; [.1C0B.0020.0002][.1C0B.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0064 0044 005A ; [.1C0B.0020.0002][.1C0B.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0044 0064 007A ; [.1C0B.0020.0008][.1C0B.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z>
+0044 0064 005A ; [.1C0B.0020.0008][.1C0B.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z>
+0044 0044 007A ; [.1C0B.0020.0008][.1C0B.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z>
+0044 0044 005A ; [.1C0B.0020.0008][.1C0B.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z>
+0064 0064 007A 0073 ; [.1C0C.0020.0002][.1C0C.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0064 0064 007A 0053 ; [.1C0C.0020.0002][.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0064 0064 005A 0073 ; [.1C0C.0020.0002][.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0064 0064 005A 0053 ; [.1C0C.0020.0002][.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0064 0044 007A 0073 ; [.1C0C.0020.0002][.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0064 0044 007A 0053 ; [.1C0C.0020.0002][.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0064 0044 005A 0073 ; [.1C0C.0020.0002][.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0064 0044 005A 0053 ; [.1C0C.0020.0002][.1C0C.0020.0008] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0044 0064 007A 0073 ; [.1C0C.0020.0008][.1C0C.0020.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0044 0064 007A 0053 ; [.1C0C.0020.0008][.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0044 0064 005A 0073 ; [.1C0C.0020.0008][.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0044 0064 005A 0053 ; [.1C0C.0020.0008][.1C0C.0020.0007][.0000.0000.0002][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0044 0044 007A 0073 ; [.1C0C.0020.0008][.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0002] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+0044 0044 007A 0053 ; [.1C0C.0020.0008][.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0007] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+0044 0044 005A 0073 ; [.1C0C.0020.0008][.1C0C.0020.0007][.0000.0000.0008][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+0044 0044 005A 0053 ; [.1C0C.0020.0008][.1C0C.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+0067 0067 0079 ; [.1C70.0020.0002][.1C70.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
+0067 0067 0059 ; [.1C70.0020.0002][.1C70.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
+0067 0047 0079 ; [.1C70.0020.0002][.1C70.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
+0067 0047 0059 ; [.1C70.0020.0002][.1C70.0020.0008] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
+0047 0067 0079 ; [.1C70.0020.0008][.1C70.0020.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN SMALL LETTER Y>
+0047 0067 0059 ; [.1C70.0020.0008][.1C70.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER G, LATIN CAPITAL LETTER Y>
+0047 0047 0079 ; [.1C70.0020.0008][.1C70.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN SMALL LETTER Y>
+0047 0047 0059 ; [.1C70.0020.0008][.1C70.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER Y>
+006C 006C 0079 ; [.1CF3.0020.0002][.1CF3.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
+006C 006C 0059 ; [.1CF3.0020.0002][.1CF3.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
+006C 004C 0079 ; [.1CF3.0020.0002][.1CF3.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
+006C 004C 0059 ; [.1CF3.0020.0002][.1CF3.0020.0008] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
+004C 006C 0079 ; [.1CF3.0020.0008][.1CF3.0020.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN SMALL LETTER Y>
+004C 006C 0059 ; [.1CF3.0020.0008][.1CF3.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L, LATIN CAPITAL LETTER Y>
+004C 004C 0079 ; [.1CF3.0020.0008][.1CF3.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN SMALL LETTER Y>
+004C 004C 0059 ; [.1CF3.0020.0008][.1CF3.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER Y>
+006E 006E 0079 ; [.1D35.0020.0002][.1D35.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+006E 006E 0059 ; [.1D35.0020.0002][.1D35.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
+006E 004E 0079 ; [.1D35.0020.0002][.1D35.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+006E 004E 0059 ; [.1D35.0020.0002][.1D35.0020.0008] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+004E 006E 0079 ; [.1D35.0020.0008][.1D35.0020.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 006E 0059 ; [.1D35.0020.0008][.1D35.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER N, LATIN CAPITAL LETTER Y>
+004E 004E 0079 ; [.1D35.0020.0008][.1D35.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 004E 0059 ; [.1D35.0020.0008][.1D35.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0073 0073 007A ; [.1DED.0020.0002][.1DED.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
+0073 0073 005A ; [.1DED.0020.0002][.1DED.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
+0073 0053 007A ; [.1DED.0020.0002][.1DED.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
+0073 0053 005A ; [.1DED.0020.0002][.1DED.0020.0008] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
+0053 0073 007A ; [.1DED.0020.0008][.1DED.0020.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN SMALL LETTER Z>
+0053 0073 005A ; [.1DED.0020.0008][.1DED.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER S, LATIN CAPITAL LETTER Z>
+0053 0053 007A ; [.1DED.0020.0008][.1DED.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN SMALL LETTER Z>
+0053 0053 005A ; [.1DED.0020.0008][.1DED.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER Z>
+0074 0074 0079 ; [.1E11.0020.0002][.1E11.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
+0074 0074 0059 ; [.1E11.0020.0002][.1E11.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
+0074 0054 0079 ; [.1E11.0020.0002][.1E11.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
+0074 0054 0059 ; [.1E11.0020.0002][.1E11.0020.0008] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
+0054 0074 0079 ; [.1E11.0020.0008][.1E11.0020.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN SMALL LETTER Y>
+0054 0074 0059 ; [.1E11.0020.0008][.1E11.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER T, LATIN CAPITAL LETTER Y>
+0054 0054 0079 ; [.1E11.0020.0008][.1E11.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN SMALL LETTER Y>
+0054 0054 0059 ; [.1E11.0020.0008][.1E11.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER Y>
+007A 007A 0073 ; [.1E9D.0020.0002][.1E9D.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+007A 007A 0053 ; [.1E9D.0020.0002][.1E9D.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+007A 005A 0073 ; [.1E9D.0020.0002][.1E9D.0020.0007][.0000.0000.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+007A 005A 0053 ; [.1E9D.0020.0002][.1E9D.0020.0008] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
+005A 007A 0073 ; [.1E9D.0020.0008][.1E9D.0020.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN SMALL LETTER S>
+005A 007A 0053 ; [.1E9D.0020.0008][.1E9D.0020.0007][.0000.0000.0002] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER Z, LATIN CAPITAL LETTER S>
+005A 005A 0073 ; [.1E9D.0020.0008][.1E9D.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN SMALL LETTER S>
+005A 005A 0053 ; [.1E9D.0020.0008][.1E9D.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER S>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
index 2b5e06d7b5b..bce23ee6918 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/hy.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- 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
-0535 0582 ; [.1FBD.0020.0008][.FFF1.0000.0000] # <ARMENIAN CAPITAL LETTER ECH, ARMENIAN SMALL LETTER YIWN>
-0554 ; [.1FBD.0020.0008][.FFF0.0000.0000] # ARMENIAN CAPITAL LETTER KEH
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0587 ; [.222E.0020.0002][.FFF1.0000.0000] # ARMENIAN SMALL LIGATURE ECH YIWN
+0584 ; [.222E.0020.0002][.FFF0.0000.0000] # ARMENIAN SMALL LETTER KEH
+0535 0582 ; [.222E.0020.0008][.FFF1.0000.0000] # <ARMENIAN CAPITAL LETTER ECH, ARMENIAN SMALL LETTER YIWN>
+0554 ; [.222E.0020.0008][.FFF0.0000.0000] # ARMENIAN CAPITAL LETTER KEH
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
index 518cd522b9c..9376de996ca 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ig.pl
@@ -1,54 +1,54 @@
+{
- locale_version => 1.14,
- 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>
-0043 0048 ; [.1926.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0067 0062 ; [.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.19B9.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-0067 0068 ; [.19BA.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H>
-0047 0068 ; [.19BA.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H>
-0047 0048 ; [.19BA.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H>
-0067 0077 ; [.19BB.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER W>
-0047 0077 ; [.19BB.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER W>
-0047 0057 ; [.19BB.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER W>
-1ECB ; [.19F7.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-0069 0323 ; [.19F7.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.19F7.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
-0049 0323 ; [.19F7.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
-006B 0070 ; [.1A2A.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
-004B 0070 ; [.1A2A.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
-004B 0050 ; [.1A2A.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
-006B 0077 ; [.1A2B.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER W>
-004B 0077 ; [.1A2B.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER W>
-004B 0057 ; [.1A2B.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER W>
-1E45 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-006E 0307 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-1E44 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-004E 0307 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-006E 0077 ; [.1A7F.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER W>
-004E 0077 ; [.1A7F.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER W>
-004E 0057 ; [.1A7F.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER W>
-006E 0079 ; [.1A80.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.1A80.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1A80.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-1ECD ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-006F 0323 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-004F 0323 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.1AA2.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EE3 ; [.1AA2.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.1AA2.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-0073 0068 ; [.1B34.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0053 0068 ; [.1B34.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.1B34.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-1EE5 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-0075 0323 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
-0055 0323 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EF1 ; [.1B78.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1B78.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0063 0068 ; [.1BDC.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0043 0068 ; [.1BDC.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1BDC.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+0067 0062 ; [.1C70.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
+0047 0062 ; [.1C70.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
+0047 0042 ; [.1C70.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
+0067 0068 ; [.1C71.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H>
+0047 0068 ; [.1C71.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H>
+0047 0048 ; [.1C71.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H>
+0067 0077 ; [.1C72.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER W>
+0047 0077 ; [.1C72.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER W>
+0047 0057 ; [.1C72.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER W>
+1ECB ; [.1CAE.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
+0069 0323 ; [.1CAE.0020.0002] # LATIN SMALL LETTER I WITH DOT BELOW
+1ECA ; [.1CAE.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
+0049 0323 ; [.1CAE.0020.0008] # LATIN CAPITAL LETTER I WITH DOT BELOW
+006B 0070 ; [.1CE1.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER P>
+004B 0070 ; [.1CE1.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER P>
+004B 0050 ; [.1CE1.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER P>
+006B 0077 ; [.1CE2.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER W>
+004B 0077 ; [.1CE2.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER W>
+004B 0057 ; [.1CE2.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER W>
+1E45 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
+006E 0307 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
+1E44 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
+004E 0307 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH DOT ABOVE
+006E 0077 ; [.1D36.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER W>
+004E 0077 ; [.1D36.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER W>
+004E 0057 ; [.1D36.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER W>
+006E 0079 ; [.1D37.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 0079 ; [.1D37.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1D37.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+1ECD ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+006F 0323 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+1ECC ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
+004F 0323 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
+1ED9 ; [.1D59.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1D59.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EE3 ; [.1D59.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE2 ; [.1D59.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+0073 0068 ; [.1DED.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
+0053 0068 ; [.1DED.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+0053 0048 ; [.1DED.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
+1EE5 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
+0075 0323 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DOT BELOW
+1EE4 ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
+0055 0323 ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DOT BELOW
+1EF1 ; [.1E31.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF0 ; [.1E31.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
index 16d2491fe9b..fd808f4dda7 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/is.pl
@@ -1,81 +1,81 @@
+{
- locale_version => 1.14,
- 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
-0061 0341 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0111 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1953.0021.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1954.0020.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1954.0020.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1954.0020.0008] # LATIN CAPITAL LETTER ETH
-00E9 ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-00ED ; [.1A0F.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.1A0F.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.1A0F.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.1A0F.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.1A0F.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.1A0F.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-00F3 ; [.1ACD.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1ACD.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1ACD.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1ACD.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1ACD.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1ACD.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-00FA ; [.1BA4.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1BA4.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1BA4.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1BA4.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1BA4.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1BA4.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-00FD ; [.1BE2.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-0079 0301 ; [.1BE2.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-0079 0341 ; [.1BE2.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-0059 0301 ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-0059 0341 ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00F6 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E1 ; [.1BDA.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BDA.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BDA.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BDA.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BDA.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BDA.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0111 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C0B.0020.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0B.0020.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0B.0020.0008] # LATIN CAPITAL LETTER ETH
+00E9 ; [.1C5F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C5F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C5F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+00ED ; [.1CC6.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1CC6.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1CC6.0020.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CC6.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1CC6.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1CC6.0020.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+00F3 ; [.1D86.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D86.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D86.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D86.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D86.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D86.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+00FA ; [.1E5D.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1E5D.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1E5D.0020.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E5D.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1E5D.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1E5D.0020.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+00FD ; [.1E9B.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
+0079 0301 ; [.1E9B.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
+0079 0341 ; [.1E9B.0020.0002] # LATIN SMALL LETTER Y WITH ACUTE
+00DD ; [.1E9B.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
+0059 0301 ; [.1E9B.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
+0059 0341 ; [.1E9B.0020.0008] # LATIN CAPITAL LETTER Y WITH ACUTE
+00E6 ; [.1F11.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F11.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F11.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F11.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F11.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F11.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F11.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00F6 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F12.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F12.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F12.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F12.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00E5 ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F13.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F13.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F13.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
index 5cc9358bc33..90c0bd0200b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ja.pl
@@ -1,1337 +1,1337 @@
use Unicode::Collate::CJK::JISX0208;
+{
- locale_version => 1.14,
+ locale_version => 1.19,
overrideCJK => \&Unicode::Collate::CJK::JISX0208::weightJISX0208,
- entry => <<'ENTRY', # for DUCET v7.0.0
-30A1 ; [.38D4.0020.000F.0002] # KATAKANA LETTER SMALL A
-30A2 ; [.38D4.0020.0011.0002] # KATAKANA LETTER A
-30A3 ; [.38D5.0020.000F.0002] # KATAKANA LETTER SMALL I
-30A4 ; [.38D5.0020.0011.0002] # KATAKANA LETTER I
-30A5 ; [.38D6.0020.000F.0002] # KATAKANA LETTER SMALL U
-30A6 ; [.38D6.0020.0011.0002] # KATAKANA LETTER U
-30A7 ; [.38D8.0020.000F.0002] # KATAKANA LETTER SMALL E
-30A8 ; [.38D8.0020.0011.0002] # KATAKANA LETTER E
-30A9 ; [.38D9.0020.000F.0002] # KATAKANA LETTER SMALL O
-30AA ; [.38D9.0020.0011.0002] # KATAKANA LETTER O
-30AB ; [.38DA.0020.0011.0002] # KATAKANA LETTER KA
-30AC ; [.38DA.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GA
-30AD ; [.38DB.0020.0011.0002] # KATAKANA LETTER KI
-30AE ; [.38DB.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GI
-30AF ; [.38DC.0020.0011.0002] # KATAKANA LETTER KU
-30B0 ; [.38DC.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GU
-30B1 ; [.38DD.0020.0011.0002] # KATAKANA LETTER KE
-30B2 ; [.38DD.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GE
-30B3 ; [.38DE.0020.0011.0002] # KATAKANA LETTER KO
-30B4 ; [.38DE.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GO
-30B5 ; [.38DF.0020.0011.0002] # KATAKANA LETTER SA
-30B6 ; [.38DF.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZA
-30B7 ; [.38E0.0020.0011.0002] # KATAKANA LETTER SI
-30B8 ; [.38E0.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZI
-30B9 ; [.38E1.0020.0011.0002] # KATAKANA LETTER SU
-30BA ; [.38E1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZU
-30BB ; [.38E2.0020.0011.0002] # KATAKANA LETTER SE
-30BC ; [.38E2.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZE
-30BD ; [.38E3.0020.0011.0002] # KATAKANA LETTER SO
-30BE ; [.38E3.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZO
-30BF ; [.38E4.0020.0011.0002] # KATAKANA LETTER TA
-30C0 ; [.38E4.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DA
-30C1 ; [.38E5.0020.0011.0002] # KATAKANA LETTER TI
-30C2 ; [.38E5.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DI
-30C3 ; [.38E6.0020.000F.0002] # KATAKANA LETTER SMALL TU
-30C4 ; [.38E6.0020.0011.0002] # KATAKANA LETTER TU
-30C5 ; [.38E6.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DU
-30C6 ; [.38E7.0020.0011.0002] # KATAKANA LETTER TE
-30C7 ; [.38E7.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DE
-30C8 ; [.38E8.0020.0011.0002] # KATAKANA LETTER TO
-30C9 ; [.38E8.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DO
-30CA ; [.38E9.0020.0011.0002] # KATAKANA LETTER NA
-30CB ; [.38EA.0020.0011.0002] # KATAKANA LETTER NI
-30CC ; [.38EB.0020.0011.0002] # KATAKANA LETTER NU
-30CD ; [.38EC.0020.0011.0002] # KATAKANA LETTER NE
-30CE ; [.38ED.0020.0011.0002] # KATAKANA LETTER NO
-30CF ; [.38EE.0020.0011.0002] # KATAKANA LETTER HA
-30D0 ; [.38EE.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BA
-30D1 ; [.38EE.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PA
-30D2 ; [.38EF.0020.0011.0002] # KATAKANA LETTER HI
-30D3 ; [.38EF.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BI
-30D4 ; [.38EF.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PI
-30D5 ; [.38F0.0020.0011.0002] # KATAKANA LETTER HU
-30D6 ; [.38F0.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BU
-30D7 ; [.38F0.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PU
-30D8 ; [.38F1.0020.0011.0002] # KATAKANA LETTER HE
-30D9 ; [.38F1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BE
-30DA ; [.38F1.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PE
-30DB ; [.38F2.0020.0011.0002] # KATAKANA LETTER HO
-30DC ; [.38F2.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BO
-30DD ; [.38F2.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PO
-30DE ; [.38F3.0020.0011.0002] # KATAKANA LETTER MA
-30DF ; [.38F4.0020.0011.0002] # KATAKANA LETTER MI
-30E0 ; [.38F5.0020.0011.0002] # KATAKANA LETTER MU
-30E1 ; [.38F6.0020.0011.0002] # KATAKANA LETTER ME
-30E2 ; [.38F7.0020.0011.0002] # KATAKANA LETTER MO
-30E3 ; [.38F8.0020.000F.0002] # KATAKANA LETTER SMALL YA
-30E4 ; [.38F8.0020.0011.0002] # KATAKANA LETTER YA
-30E5 ; [.38F9.0020.000F.0002] # KATAKANA LETTER SMALL YU
-30E6 ; [.38F9.0020.0011.0002] # KATAKANA LETTER YU
-30E7 ; [.38FB.0020.000F.0002] # KATAKANA LETTER SMALL YO
-30E8 ; [.38FB.0020.0011.0002] # KATAKANA LETTER YO
-30E9 ; [.38FC.0020.0011.0002] # KATAKANA LETTER RA
-30EA ; [.38FD.0020.0011.0002] # KATAKANA LETTER RI
-30EB ; [.38FE.0020.0011.0002] # KATAKANA LETTER RU
-30EC ; [.38FF.0020.0011.0002] # KATAKANA LETTER RE
-30ED ; [.3900.0020.0011.0002] # KATAKANA LETTER RO
-30EE ; [.3901.0020.000F.0002] # KATAKANA LETTER SMALL WA
-30EF ; [.3901.0020.0011.0002] # KATAKANA LETTER WA
-30F0 ; [.3902.0020.0011.0002] # KATAKANA LETTER WI
-30F1 ; [.3903.0020.0011.0002] # KATAKANA LETTER WE
-30F2 ; [.3904.0020.0011.0002] # KATAKANA LETTER WO
-30F3 ; [.3905.0020.0011.0002] # KATAKANA LETTER N
-30F4 ; [.38D6.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VU
-30F5 ; [.38DA.0020.000F.0002] # KATAKANA LETTER SMALL KA
-30F6 ; [.38DD.0020.000F.0002] # KATAKANA LETTER SMALL KE
-30F7 ; [.3901.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VA
-30F8 ; [.3902.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VI
-30F9 ; [.3903.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VE
-30FA ; [.3904.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VO
-30FD ; [.18D5.0020.0002.0002] # KATAKANA ITERATION MARK
-30FE ; [.18D5.0020.0002.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
-3041 ; [.38D4.0020.000F.0001] # HIRAGANA LETTER SMALL A
-3042 ; [.38D4.0020.0011.0001] # HIRAGANA LETTER A
-3043 ; [.38D5.0020.000F.0001] # HIRAGANA LETTER SMALL I
-3044 ; [.38D5.0020.0011.0001] # HIRAGANA LETTER I
-3045 ; [.38D6.0020.000F.0001] # HIRAGANA LETTER SMALL U
-3046 ; [.38D6.0020.0011.0001] # HIRAGANA LETTER U
-3047 ; [.38D8.0020.000F.0001] # HIRAGANA LETTER SMALL E
-3048 ; [.38D8.0020.0011.0001] # HIRAGANA LETTER E
-3049 ; [.38D9.0020.000F.0001] # HIRAGANA LETTER SMALL O
-304A ; [.38D9.0020.0011.0001] # HIRAGANA LETTER O
-304B ; [.38DA.0020.0011.0001] # HIRAGANA LETTER KA
-304C ; [.38DA.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GA
-304D ; [.38DB.0020.0011.0001] # HIRAGANA LETTER KI
-304E ; [.38DB.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GI
-304F ; [.38DC.0020.0011.0001] # HIRAGANA LETTER KU
-3050 ; [.38DC.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GU
-3051 ; [.38DD.0020.0011.0001] # HIRAGANA LETTER KE
-3052 ; [.38DD.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GE
-3053 ; [.38DE.0020.0011.0001] # HIRAGANA LETTER KO
-3054 ; [.38DE.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GO
-3055 ; [.38DF.0020.0011.0001] # HIRAGANA LETTER SA
-3056 ; [.38DF.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZA
-3057 ; [.38E0.0020.0011.0001] # HIRAGANA LETTER SI
-3058 ; [.38E0.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZI
-3059 ; [.38E1.0020.0011.0001] # HIRAGANA LETTER SU
-305A ; [.38E1.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZU
-305B ; [.38E2.0020.0011.0001] # HIRAGANA LETTER SE
-305C ; [.38E2.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZE
-305D ; [.38E3.0020.0011.0001] # HIRAGANA LETTER SO
-305E ; [.38E3.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZO
-305F ; [.38E4.0020.0011.0001] # HIRAGANA LETTER TA
-3060 ; [.38E4.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DA
-3061 ; [.38E5.0020.0011.0001] # HIRAGANA LETTER TI
-3062 ; [.38E5.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DI
-3063 ; [.38E6.0020.000F.0001] # HIRAGANA LETTER SMALL TU
-3064 ; [.38E6.0020.0011.0001] # HIRAGANA LETTER TU
-3065 ; [.38E6.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DU
-3066 ; [.38E7.0020.0011.0001] # HIRAGANA LETTER TE
-3067 ; [.38E7.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DE
-3068 ; [.38E8.0020.0011.0001] # HIRAGANA LETTER TO
-3069 ; [.38E8.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DO
-306A ; [.38E9.0020.0011.0001] # HIRAGANA LETTER NA
-306B ; [.38EA.0020.0011.0001] # HIRAGANA LETTER NI
-306C ; [.38EB.0020.0011.0001] # HIRAGANA LETTER NU
-306D ; [.38EC.0020.0011.0001] # HIRAGANA LETTER NE
-306E ; [.38ED.0020.0011.0001] # HIRAGANA LETTER NO
-306F ; [.38EE.0020.0011.0001] # HIRAGANA LETTER HA
-3070 ; [.38EE.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BA
-3071 ; [.38EE.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PA
-3072 ; [.38EF.0020.0011.0001] # HIRAGANA LETTER HI
-3073 ; [.38EF.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BI
-3074 ; [.38EF.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PI
-3075 ; [.38F0.0020.0011.0001] # HIRAGANA LETTER HU
-3076 ; [.38F0.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BU
-3077 ; [.38F0.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PU
-3078 ; [.38F1.0020.0011.0001] # HIRAGANA LETTER HE
-3079 ; [.38F1.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BE
-307A ; [.38F1.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PE
-307B ; [.38F2.0020.0011.0001] # HIRAGANA LETTER HO
-307C ; [.38F2.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BO
-307D ; [.38F2.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PO
-307E ; [.38F3.0020.0011.0001] # HIRAGANA LETTER MA
-307F ; [.38F4.0020.0011.0001] # HIRAGANA LETTER MI
-3080 ; [.38F5.0020.0011.0001] # HIRAGANA LETTER MU
-3081 ; [.38F6.0020.0011.0001] # HIRAGANA LETTER ME
-3082 ; [.38F7.0020.0011.0001] # HIRAGANA LETTER MO
-3083 ; [.38F8.0020.000F.0001] # HIRAGANA LETTER SMALL YA
-3084 ; [.38F8.0020.0011.0001] # HIRAGANA LETTER YA
-3085 ; [.38F9.0020.000F.0001] # HIRAGANA LETTER SMALL YU
-3086 ; [.38F9.0020.0011.0001] # HIRAGANA LETTER YU
-3087 ; [.38FB.0020.000F.0001] # HIRAGANA LETTER SMALL YO
-3088 ; [.38FB.0020.0011.0001] # HIRAGANA LETTER YO
-3089 ; [.38FC.0020.0011.0001] # HIRAGANA LETTER RA
-308A ; [.38FD.0020.0011.0001] # HIRAGANA LETTER RI
-308B ; [.38FE.0020.0011.0001] # HIRAGANA LETTER RU
-308C ; [.38FF.0020.0011.0001] # HIRAGANA LETTER RE
-308D ; [.3900.0020.0011.0001] # HIRAGANA LETTER RO
-308E ; [.3901.0020.000F.0001] # HIRAGANA LETTER SMALL WA
-308F ; [.3901.0020.0011.0001] # HIRAGANA LETTER WA
-3090 ; [.3902.0020.0011.0001] # HIRAGANA LETTER WI
-3091 ; [.3903.0020.0011.0001] # HIRAGANA LETTER WE
-3092 ; [.3904.0020.0011.0001] # HIRAGANA LETTER WO
-3093 ; [.3905.0020.0011.0001] # HIRAGANA LETTER N
-3094 ; [.38D6.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER VU
-3095 ; [.38DA.0020.000F.0001] # HIRAGANA LETTER SMALL KA
-3096 ; [.38DD.0020.000F.0001] # HIRAGANA LETTER SMALL KE
-309D ; [.18D5.0020.0002.0001] # HIRAGANA ITERATION MARK
-309E ; [.18D5.0020.0002.0001][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
+ entry => <<'ENTRY', # for DUCET v8.0.0
+30A1 ; [.3BC3.0020.000F.0002] # KATAKANA LETTER SMALL A
+30A2 ; [.3BC3.0020.0011.0002] # KATAKANA LETTER A
+30A3 ; [.3BC4.0020.000F.0002] # KATAKANA LETTER SMALL I
+30A4 ; [.3BC4.0020.0011.0002] # KATAKANA LETTER I
+30A5 ; [.3BC5.0020.000F.0002] # KATAKANA LETTER SMALL U
+30A6 ; [.3BC5.0020.0011.0002] # KATAKANA LETTER U
+30A7 ; [.3BC7.0020.000F.0002] # KATAKANA LETTER SMALL E
+30A8 ; [.3BC7.0020.0011.0002] # KATAKANA LETTER E
+30A9 ; [.3BC8.0020.000F.0002] # KATAKANA LETTER SMALL O
+30AA ; [.3BC8.0020.0011.0002] # KATAKANA LETTER O
+30AB ; [.3BC9.0020.0011.0002] # KATAKANA LETTER KA
+30AC ; [.3BC9.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GA
+30AD ; [.3BCA.0020.0011.0002] # KATAKANA LETTER KI
+30AE ; [.3BCA.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GI
+30AF ; [.3BCB.0020.0011.0002] # KATAKANA LETTER KU
+30B0 ; [.3BCB.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GU
+30B1 ; [.3BCC.0020.0011.0002] # KATAKANA LETTER KE
+30B2 ; [.3BCC.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GE
+30B3 ; [.3BCD.0020.0011.0002] # KATAKANA LETTER KO
+30B4 ; [.3BCD.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER GO
+30B5 ; [.3BCE.0020.0011.0002] # KATAKANA LETTER SA
+30B6 ; [.3BCE.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZA
+30B7 ; [.3BCF.0020.0011.0002] # KATAKANA LETTER SI
+30B8 ; [.3BCF.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZI
+30B9 ; [.3BD0.0020.0011.0002] # KATAKANA LETTER SU
+30BA ; [.3BD0.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZU
+30BB ; [.3BD1.0020.0011.0002] # KATAKANA LETTER SE
+30BC ; [.3BD1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZE
+30BD ; [.3BD2.0020.0011.0002] # KATAKANA LETTER SO
+30BE ; [.3BD2.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER ZO
+30BF ; [.3BD3.0020.0011.0002] # KATAKANA LETTER TA
+30C0 ; [.3BD3.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DA
+30C1 ; [.3BD4.0020.0011.0002] # KATAKANA LETTER TI
+30C2 ; [.3BD4.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DI
+30C3 ; [.3BD5.0020.000F.0002] # KATAKANA LETTER SMALL TU
+30C4 ; [.3BD5.0020.0011.0002] # KATAKANA LETTER TU
+30C5 ; [.3BD5.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DU
+30C6 ; [.3BD6.0020.0011.0002] # KATAKANA LETTER TE
+30C7 ; [.3BD6.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DE
+30C8 ; [.3BD7.0020.0011.0002] # KATAKANA LETTER TO
+30C9 ; [.3BD7.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER DO
+30CA ; [.3BD8.0020.0011.0002] # KATAKANA LETTER NA
+30CB ; [.3BD9.0020.0011.0002] # KATAKANA LETTER NI
+30CC ; [.3BDA.0020.0011.0002] # KATAKANA LETTER NU
+30CD ; [.3BDB.0020.0011.0002] # KATAKANA LETTER NE
+30CE ; [.3BDC.0020.0011.0002] # KATAKANA LETTER NO
+30CF ; [.3BDD.0020.0011.0002] # KATAKANA LETTER HA
+30D0 ; [.3BDD.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BA
+30D1 ; [.3BDD.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PA
+30D2 ; [.3BDE.0020.0011.0002] # KATAKANA LETTER HI
+30D3 ; [.3BDE.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BI
+30D4 ; [.3BDE.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PI
+30D5 ; [.3BDF.0020.0011.0002] # KATAKANA LETTER HU
+30D6 ; [.3BDF.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BU
+30D7 ; [.3BDF.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PU
+30D8 ; [.3BE0.0020.0011.0002] # KATAKANA LETTER HE
+30D9 ; [.3BE0.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BE
+30DA ; [.3BE0.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PE
+30DB ; [.3BE1.0020.0011.0002] # KATAKANA LETTER HO
+30DC ; [.3BE1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER BO
+30DD ; [.3BE1.0020.0011.0002][.0000.0038.0002] # KATAKANA LETTER PO
+30DE ; [.3BE2.0020.0011.0002] # KATAKANA LETTER MA
+30DF ; [.3BE3.0020.0011.0002] # KATAKANA LETTER MI
+30E0 ; [.3BE4.0020.0011.0002] # KATAKANA LETTER MU
+30E1 ; [.3BE5.0020.0011.0002] # KATAKANA LETTER ME
+30E2 ; [.3BE6.0020.0011.0002] # KATAKANA LETTER MO
+30E3 ; [.3BE7.0020.000F.0002] # KATAKANA LETTER SMALL YA
+30E4 ; [.3BE7.0020.0011.0002] # KATAKANA LETTER YA
+30E5 ; [.3BE8.0020.000F.0002] # KATAKANA LETTER SMALL YU
+30E6 ; [.3BE8.0020.0011.0002] # KATAKANA LETTER YU
+30E7 ; [.3BEA.0020.000F.0002] # KATAKANA LETTER SMALL YO
+30E8 ; [.3BEA.0020.0011.0002] # KATAKANA LETTER YO
+30E9 ; [.3BEB.0020.0011.0002] # KATAKANA LETTER RA
+30EA ; [.3BEC.0020.0011.0002] # KATAKANA LETTER RI
+30EB ; [.3BED.0020.0011.0002] # KATAKANA LETTER RU
+30EC ; [.3BEE.0020.0011.0002] # KATAKANA LETTER RE
+30ED ; [.3BEF.0020.0011.0002] # KATAKANA LETTER RO
+30EE ; [.3BF0.0020.000F.0002] # KATAKANA LETTER SMALL WA
+30EF ; [.3BF0.0020.0011.0002] # KATAKANA LETTER WA
+30F0 ; [.3BF1.0020.0011.0002] # KATAKANA LETTER WI
+30F1 ; [.3BF2.0020.0011.0002] # KATAKANA LETTER WE
+30F2 ; [.3BF3.0020.0011.0002] # KATAKANA LETTER WO
+30F3 ; [.3BF4.0020.0011.0002] # KATAKANA LETTER N
+30F4 ; [.3BC5.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VU
+30F5 ; [.3BC9.0020.000F.0002] # KATAKANA LETTER SMALL KA
+30F6 ; [.3BCC.0020.000F.0002] # KATAKANA LETTER SMALL KE
+30F7 ; [.3BF0.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VA
+30F8 ; [.3BF1.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VI
+30F9 ; [.3BF2.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VE
+30FA ; [.3BF3.0020.0011.0002][.0000.0037.0002] # KATAKANA LETTER VO
+30FD ; [.1B8A.0020.0002.0002] # KATAKANA ITERATION MARK
+30FE ; [.1B8A.0020.0002.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
+3041 ; [.3BC3.0020.000F.0001] # HIRAGANA LETTER SMALL A
+3042 ; [.3BC3.0020.0011.0001] # HIRAGANA LETTER A
+3043 ; [.3BC4.0020.000F.0001] # HIRAGANA LETTER SMALL I
+3044 ; [.3BC4.0020.0011.0001] # HIRAGANA LETTER I
+3045 ; [.3BC5.0020.000F.0001] # HIRAGANA LETTER SMALL U
+3046 ; [.3BC5.0020.0011.0001] # HIRAGANA LETTER U
+3047 ; [.3BC7.0020.000F.0001] # HIRAGANA LETTER SMALL E
+3048 ; [.3BC7.0020.0011.0001] # HIRAGANA LETTER E
+3049 ; [.3BC8.0020.000F.0001] # HIRAGANA LETTER SMALL O
+304A ; [.3BC8.0020.0011.0001] # HIRAGANA LETTER O
+304B ; [.3BC9.0020.0011.0001] # HIRAGANA LETTER KA
+304C ; [.3BC9.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GA
+304D ; [.3BCA.0020.0011.0001] # HIRAGANA LETTER KI
+304E ; [.3BCA.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GI
+304F ; [.3BCB.0020.0011.0001] # HIRAGANA LETTER KU
+3050 ; [.3BCB.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GU
+3051 ; [.3BCC.0020.0011.0001] # HIRAGANA LETTER KE
+3052 ; [.3BCC.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GE
+3053 ; [.3BCD.0020.0011.0001] # HIRAGANA LETTER KO
+3054 ; [.3BCD.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER GO
+3055 ; [.3BCE.0020.0011.0001] # HIRAGANA LETTER SA
+3056 ; [.3BCE.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZA
+3057 ; [.3BCF.0020.0011.0001] # HIRAGANA LETTER SI
+3058 ; [.3BCF.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZI
+3059 ; [.3BD0.0020.0011.0001] # HIRAGANA LETTER SU
+305A ; [.3BD0.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZU
+305B ; [.3BD1.0020.0011.0001] # HIRAGANA LETTER SE
+305C ; [.3BD1.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZE
+305D ; [.3BD2.0020.0011.0001] # HIRAGANA LETTER SO
+305E ; [.3BD2.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER ZO
+305F ; [.3BD3.0020.0011.0001] # HIRAGANA LETTER TA
+3060 ; [.3BD3.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DA
+3061 ; [.3BD4.0020.0011.0001] # HIRAGANA LETTER TI
+3062 ; [.3BD4.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DI
+3063 ; [.3BD5.0020.000F.0001] # HIRAGANA LETTER SMALL TU
+3064 ; [.3BD5.0020.0011.0001] # HIRAGANA LETTER TU
+3065 ; [.3BD5.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DU
+3066 ; [.3BD6.0020.0011.0001] # HIRAGANA LETTER TE
+3067 ; [.3BD6.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DE
+3068 ; [.3BD7.0020.0011.0001] # HIRAGANA LETTER TO
+3069 ; [.3BD7.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER DO
+306A ; [.3BD8.0020.0011.0001] # HIRAGANA LETTER NA
+306B ; [.3BD9.0020.0011.0001] # HIRAGANA LETTER NI
+306C ; [.3BDA.0020.0011.0001] # HIRAGANA LETTER NU
+306D ; [.3BDB.0020.0011.0001] # HIRAGANA LETTER NE
+306E ; [.3BDC.0020.0011.0001] # HIRAGANA LETTER NO
+306F ; [.3BDD.0020.0011.0001] # HIRAGANA LETTER HA
+3070 ; [.3BDD.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BA
+3071 ; [.3BDD.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PA
+3072 ; [.3BDE.0020.0011.0001] # HIRAGANA LETTER HI
+3073 ; [.3BDE.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BI
+3074 ; [.3BDE.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PI
+3075 ; [.3BDF.0020.0011.0001] # HIRAGANA LETTER HU
+3076 ; [.3BDF.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BU
+3077 ; [.3BDF.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PU
+3078 ; [.3BE0.0020.0011.0001] # HIRAGANA LETTER HE
+3079 ; [.3BE0.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BE
+307A ; [.3BE0.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PE
+307B ; [.3BE1.0020.0011.0001] # HIRAGANA LETTER HO
+307C ; [.3BE1.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER BO
+307D ; [.3BE1.0020.0011.0001][.0000.0038.0002] # HIRAGANA LETTER PO
+307E ; [.3BE2.0020.0011.0001] # HIRAGANA LETTER MA
+307F ; [.3BE3.0020.0011.0001] # HIRAGANA LETTER MI
+3080 ; [.3BE4.0020.0011.0001] # HIRAGANA LETTER MU
+3081 ; [.3BE5.0020.0011.0001] # HIRAGANA LETTER ME
+3082 ; [.3BE6.0020.0011.0001] # HIRAGANA LETTER MO
+3083 ; [.3BE7.0020.000F.0001] # HIRAGANA LETTER SMALL YA
+3084 ; [.3BE7.0020.0011.0001] # HIRAGANA LETTER YA
+3085 ; [.3BE8.0020.000F.0001] # HIRAGANA LETTER SMALL YU
+3086 ; [.3BE8.0020.0011.0001] # HIRAGANA LETTER YU
+3087 ; [.3BEA.0020.000F.0001] # HIRAGANA LETTER SMALL YO
+3088 ; [.3BEA.0020.0011.0001] # HIRAGANA LETTER YO
+3089 ; [.3BEB.0020.0011.0001] # HIRAGANA LETTER RA
+308A ; [.3BEC.0020.0011.0001] # HIRAGANA LETTER RI
+308B ; [.3BED.0020.0011.0001] # HIRAGANA LETTER RU
+308C ; [.3BEE.0020.0011.0001] # HIRAGANA LETTER RE
+308D ; [.3BEF.0020.0011.0001] # HIRAGANA LETTER RO
+308E ; [.3BF0.0020.000F.0001] # HIRAGANA LETTER SMALL WA
+308F ; [.3BF0.0020.0011.0001] # HIRAGANA LETTER WA
+3090 ; [.3BF1.0020.0011.0001] # HIRAGANA LETTER WI
+3091 ; [.3BF2.0020.0011.0001] # HIRAGANA LETTER WE
+3092 ; [.3BF3.0020.0011.0001] # HIRAGANA LETTER WO
+3093 ; [.3BF4.0020.0011.0001] # HIRAGANA LETTER N
+3094 ; [.3BC5.0020.0011.0001][.0000.0037.0002] # HIRAGANA LETTER VU
+3095 ; [.3BC9.0020.000F.0001] # HIRAGANA LETTER SMALL KA
+3096 ; [.3BCC.0020.000F.0001] # HIRAGANA LETTER SMALL KE
+309D ; [.1B8A.0020.0002.0001] # HIRAGANA ITERATION MARK
+309E ; [.1B8A.0020.0002.0001][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
3000 ; [*0209.0020.0002] # IDEOGRAPHIC SPACE
FF01 ; [*025F.0020.0002] # FULLWIDTH EXCLAMATION MARK
-FF02 ; [*02FF.0020.0002] # FULLWIDTH QUOTATION MARK
-FF03 ; [*038B.0020.0002] # FULLWIDTH NUMBER SIGN
-FF04 ; [.18D8.0020.0002] # FULLWIDTH DOLLAR SIGN
-FF05 ; [*038C.0020.0002] # FULLWIDTH PERCENT SIGN
-FF06 ; [*0389.0020.0002] # FULLWIDTH AMPERSAND
-FF07 ; [*02F8.0020.0002] # FULLWIDTH APOSTROPHE
-FF08 ; [*030A.0020.0002] # FULLWIDTH LEFT PARENTHESIS
-FF09 ; [*030B.0020.0002] # FULLWIDTH RIGHT PARENTHESIS
-FF0A ; [*0382.0020.0002] # FULLWIDTH ASTERISK
-FF0B ; [*05D6.0020.0002] # FULLWIDTH PLUS SIGN
+FF02 ; [*0305.0020.0002] # FULLWIDTH QUOTATION MARK
+FF03 ; [*0391.0020.0002] # FULLWIDTH NUMBER SIGN
+FF04 ; [.1B8D.0020.0002] # FULLWIDTH DOLLAR SIGN
+FF05 ; [*0392.0020.0002] # FULLWIDTH PERCENT SIGN
+FF06 ; [*038F.0020.0002] # FULLWIDTH AMPERSAND
+FF07 ; [*02FE.0020.0002] # FULLWIDTH APOSTROPHE
+FF08 ; [*0310.0020.0002] # FULLWIDTH LEFT PARENTHESIS
+FF09 ; [*0311.0020.0002] # FULLWIDTH RIGHT PARENTHESIS
+FF0A ; [*0388.0020.0002] # FULLWIDTH ASTERISK
+FF0B ; [*05F6.0020.0002] # FULLWIDTH PLUS SIGN
FF0C ; [*0221.0020.0002] # FULLWIDTH COMMA
FF0D ; [*020D.0020.0002] # FULLWIDTH HYPHEN-MINUS
FF0E ; [*0274.0020.0002] # FULLWIDTH FULL STOP
-FF0F ; [*0387.0020.0002] # FULLWIDTH SOLIDUS
-FF10 ; [.1902.0020.0002] # FULLWIDTH DIGIT ZERO
-FF11 ; [.1903.0020.0002] # FULLWIDTH DIGIT ONE
-FF12 ; [.1904.0020.0002] # FULLWIDTH DIGIT TWO
-FF13 ; [.1905.0020.0002] # FULLWIDTH DIGIT THREE
-FF14 ; [.1906.0020.0002] # FULLWIDTH DIGIT FOUR
-FF15 ; [.1907.0020.0002] # FULLWIDTH DIGIT FIVE
-FF16 ; [.1908.0020.0002] # FULLWIDTH DIGIT SIX
-FF17 ; [.1909.0020.0002] # FULLWIDTH DIGIT SEVEN
-FF18 ; [.190A.0020.0002] # FULLWIDTH DIGIT EIGHT
-FF19 ; [.190B.0020.0002] # FULLWIDTH DIGIT NINE
+FF0F ; [*038D.0020.0002] # FULLWIDTH SOLIDUS
+FF10 ; [.1BB8.0020.0002] # FULLWIDTH DIGIT ZERO
+FF11 ; [.1BB9.0020.0002] # FULLWIDTH DIGIT ONE
+FF12 ; [.1BBA.0020.0002] # FULLWIDTH DIGIT TWO
+FF13 ; [.1BBB.0020.0002] # FULLWIDTH DIGIT THREE
+FF14 ; [.1BBC.0020.0002] # FULLWIDTH DIGIT FOUR
+FF15 ; [.1BBD.0020.0002] # FULLWIDTH DIGIT FIVE
+FF16 ; [.1BBE.0020.0002] # FULLWIDTH DIGIT SIX
+FF17 ; [.1BBF.0020.0002] # FULLWIDTH DIGIT SEVEN
+FF18 ; [.1BC0.0020.0002] # FULLWIDTH DIGIT EIGHT
+FF19 ; [.1BC1.0020.0002] # FULLWIDTH DIGIT NINE
FF1A ; [*0238.0020.0002] # FULLWIDTH COLON
FF1B ; [*0233.0020.0002] # FULLWIDTH SEMICOLON
-FF1C ; [*05DA.0020.0002] # FULLWIDTH LESS-THAN SIGN
-FF1D ; [*05DB.0020.0002] # FULLWIDTH EQUALS SIGN
-FF1E ; [*05DC.0020.0002] # FULLWIDTH GREATER-THAN SIGN
+FF1C ; [*05FA.0020.0002] # FULLWIDTH LESS-THAN SIGN
+FF1D ; [*05FB.0020.0002] # FULLWIDTH EQUALS SIGN
+FF1E ; [*05FC.0020.0002] # FULLWIDTH GREATER-THAN SIGN
FF1F ; [*0264.0020.0002] # FULLWIDTH QUESTION MARK
-FF20 ; [*0381.0020.0002] # FULLWIDTH COMMERCIAL AT
-FF21 ; [.190C.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER A
-FF22 ; [.1925.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER B
-FF23 ; [.193E.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER C
-FF24 ; [.1953.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER D
-FF25 ; [.196E.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER E
-FF26 ; [.19A9.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER F
-FF27 ; [.19B8.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER G
-FF28 ; [.19DC.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER H
-FF29 ; [.19F6.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER I
-FF2A ; [.1A10.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER J
-FF2B ; [.1A29.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER K
-FF2C ; [.1A3B.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER L
-FF2D ; [.1A6E.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER M
-FF2E ; [.1A7D.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER N
-FF2F ; [.1AA1.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER O
-FF30 ; [.1ACE.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER P
-FF31 ; [.1AE3.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Q
-FF32 ; [.1AF5.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER R
-FF33 ; [.1B33.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER S
-FF34 ; [.1B57.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER T
-FF35 ; [.1B77.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER U
-FF36 ; [.1BA5.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER V
-FF37 ; [.1BB7.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER W
-FF38 ; [.1BC1.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER X
-FF39 ; [.1BCD.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Y
-FF3A ; [.1BE3.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Z
-FF3B ; [*030C.0020.0002] # FULLWIDTH LEFT SQUARE BRACKET
-FF3C ; [*02F8.0020.0002] # FULLWIDTH REVERSE SOLIDUS
-FF3D ; [*030D.0020.0002] # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E ; [*0449.0020.0002] # FULLWIDTH CIRCUMFLEX ACCENT
+FF20 ; [*0387.0020.0002] # FULLWIDTH COMMERCIAL AT
+FF21 ; [.1BC2.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER A
+FF22 ; [.1BDB.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER B
+FF23 ; [.1BF5.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER C
+FF24 ; [.1C0A.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER D
+FF25 ; [.1C25.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER E
+FF26 ; [.1C60.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER F
+FF27 ; [.1C6F.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER G
+FF28 ; [.1C93.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER H
+FF29 ; [.1CAD.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER I
+FF2A ; [.1CC7.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER J
+FF2B ; [.1CE0.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER K
+FF2C ; [.1CF2.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER L
+FF2D ; [.1D25.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER M
+FF2E ; [.1D34.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER N
+FF2F ; [.1D58.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER O
+FF30 ; [.1D87.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER P
+FF31 ; [.1D9C.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Q
+FF32 ; [.1DAE.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER R
+FF33 ; [.1DEC.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER S
+FF34 ; [.1E10.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER T
+FF35 ; [.1E30.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER U
+FF36 ; [.1E5E.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER V
+FF37 ; [.1E70.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER W
+FF38 ; [.1E7A.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER X
+FF39 ; [.1E86.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Y
+FF3A ; [.1E9C.0020.0008] # FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; [*0312.0020.0002] # FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; [*02FE.0020.0002] # FULLWIDTH REVERSE SOLIDUS
+FF3D ; [*0313.0020.0002] # FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; [*0466.0020.0002] # FULLWIDTH CIRCUMFLEX ACCENT
FF3F ; [*020B.0020.0002] # FULLWIDTH LOW LINE
-FF40 ; [*0446.0020.0002] # FULLWIDTH GRAVE ACCENT
-FF41 ; [.190C.0020.0002] # FULLWIDTH LATIN SMALL LETTER A
-FF42 ; [.1925.0020.0002] # FULLWIDTH LATIN SMALL LETTER B
-FF43 ; [.193E.0020.0002] # FULLWIDTH LATIN SMALL LETTER C
-FF44 ; [.1953.0020.0002] # FULLWIDTH LATIN SMALL LETTER D
-FF45 ; [.196E.0020.0002] # FULLWIDTH LATIN SMALL LETTER E
-FF46 ; [.19A9.0020.0002] # FULLWIDTH LATIN SMALL LETTER F
-FF47 ; [.19B8.0020.0002] # FULLWIDTH LATIN SMALL LETTER G
-FF48 ; [.19DC.0020.0002] # FULLWIDTH LATIN SMALL LETTER H
-FF49 ; [.19F6.0020.0002] # FULLWIDTH LATIN SMALL LETTER I
-FF4A ; [.1A10.0020.0002] # FULLWIDTH LATIN SMALL LETTER J
-FF4B ; [.1A29.0020.0002] # FULLWIDTH LATIN SMALL LETTER K
-FF4C ; [.1A3B.0020.0002] # FULLWIDTH LATIN SMALL LETTER L
-FF4D ; [.1A6E.0020.0002] # FULLWIDTH LATIN SMALL LETTER M
-FF4E ; [.1A7D.0020.0002] # FULLWIDTH LATIN SMALL LETTER N
-FF4F ; [.1AA1.0020.0002] # FULLWIDTH LATIN SMALL LETTER O
-FF50 ; [.1ACE.0020.0002] # FULLWIDTH LATIN SMALL LETTER P
-FF51 ; [.1AE3.0020.0002] # FULLWIDTH LATIN SMALL LETTER Q
-FF52 ; [.1AF5.0020.0002] # FULLWIDTH LATIN SMALL LETTER R
-FF53 ; [.1B33.0020.0002] # FULLWIDTH LATIN SMALL LETTER S
-FF54 ; [.1B57.0020.0002] # FULLWIDTH LATIN SMALL LETTER T
-FF55 ; [.1B77.0020.0002] # FULLWIDTH LATIN SMALL LETTER U
-FF56 ; [.1BA5.0020.0002] # FULLWIDTH LATIN SMALL LETTER V
-FF57 ; [.1BB7.0020.0002] # FULLWIDTH LATIN SMALL LETTER W
-FF58 ; [.1BC1.0020.0002] # FULLWIDTH LATIN SMALL LETTER X
-FF59 ; [.1BCD.0020.0002] # FULLWIDTH LATIN SMALL LETTER Y
-FF5A ; [.1BE3.0020.0002] # FULLWIDTH LATIN SMALL LETTER Z
-FF5B ; [*030E.0020.0002] # FULLWIDTH LEFT CURLY BRACKET
-FF5C ; [*05DE.0020.0002] # FULLWIDTH VERTICAL LINE
-FF5D ; [*030F.0020.0002] # FULLWIDTH RIGHT CURLY BRACKET
-FF5E ; [*05E0.0020.0002] # FULLWIDTH TILDE
-FF5F ; [*0320.0020.0002] # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60 ; [*0321.0020.0002] # FULLWIDTH RIGHT WHITE PARENTHESIS
+FF40 ; [*0463.0020.0002] # FULLWIDTH GRAVE ACCENT
+FF41 ; [.1BC2.0020.0002] # FULLWIDTH LATIN SMALL LETTER A
+FF42 ; [.1BDB.0020.0002] # FULLWIDTH LATIN SMALL LETTER B
+FF43 ; [.1BF5.0020.0002] # FULLWIDTH LATIN SMALL LETTER C
+FF44 ; [.1C0A.0020.0002] # FULLWIDTH LATIN SMALL LETTER D
+FF45 ; [.1C25.0020.0002] # FULLWIDTH LATIN SMALL LETTER E
+FF46 ; [.1C60.0020.0002] # FULLWIDTH LATIN SMALL LETTER F
+FF47 ; [.1C6F.0020.0002] # FULLWIDTH LATIN SMALL LETTER G
+FF48 ; [.1C93.0020.0002] # FULLWIDTH LATIN SMALL LETTER H
+FF49 ; [.1CAD.0020.0002] # FULLWIDTH LATIN SMALL LETTER I
+FF4A ; [.1CC7.0020.0002] # FULLWIDTH LATIN SMALL LETTER J
+FF4B ; [.1CE0.0020.0002] # FULLWIDTH LATIN SMALL LETTER K
+FF4C ; [.1CF2.0020.0002] # FULLWIDTH LATIN SMALL LETTER L
+FF4D ; [.1D25.0020.0002] # FULLWIDTH LATIN SMALL LETTER M
+FF4E ; [.1D34.0020.0002] # FULLWIDTH LATIN SMALL LETTER N
+FF4F ; [.1D58.0020.0002] # FULLWIDTH LATIN SMALL LETTER O
+FF50 ; [.1D87.0020.0002] # FULLWIDTH LATIN SMALL LETTER P
+FF51 ; [.1D9C.0020.0002] # FULLWIDTH LATIN SMALL LETTER Q
+FF52 ; [.1DAE.0020.0002] # FULLWIDTH LATIN SMALL LETTER R
+FF53 ; [.1DEC.0020.0002] # FULLWIDTH LATIN SMALL LETTER S
+FF54 ; [.1E10.0020.0002] # FULLWIDTH LATIN SMALL LETTER T
+FF55 ; [.1E30.0020.0002] # FULLWIDTH LATIN SMALL LETTER U
+FF56 ; [.1E5E.0020.0002] # FULLWIDTH LATIN SMALL LETTER V
+FF57 ; [.1E70.0020.0002] # FULLWIDTH LATIN SMALL LETTER W
+FF58 ; [.1E7A.0020.0002] # FULLWIDTH LATIN SMALL LETTER X
+FF59 ; [.1E86.0020.0002] # FULLWIDTH LATIN SMALL LETTER Y
+FF5A ; [.1E9C.0020.0002] # FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; [*0314.0020.0002] # FULLWIDTH LEFT CURLY BRACKET
+FF5C ; [*05FE.0020.0002] # FULLWIDTH VERTICAL LINE
+FF5D ; [*0315.0020.0002] # FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; [*0600.0020.0002] # FULLWIDTH TILDE
+FF5F ; [*0326.0020.0002] # FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; [*0327.0020.0002] # FULLWIDTH RIGHT WHITE PARENTHESIS
FF61 ; [*0287.0020.0002] # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62 ; [*0366.0020.0002] # HALFWIDTH LEFT CORNER BRACKET
-FF63 ; [*0367.0020.0002] # HALFWIDTH RIGHT CORNER BRACKET
+FF62 ; [*036C.0020.0002] # HALFWIDTH LEFT CORNER BRACKET
+FF63 ; [*036D.0020.0002] # HALFWIDTH RIGHT CORNER BRACKET
FF64 ; [*0230.0020.0002] # HALFWIDTH IDEOGRAPHIC COMMA
FF65 ; [*0220.0020.0002] # HALFWIDTH KATAKANA MIDDLE DOT
-FF66 ; [.3904.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WO
-FF67 ; [.38D4.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL A
-FF68 ; [.38D5.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL I
-FF69 ; [.38D6.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL U
-FF6A ; [.38D8.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL E
-FF6B ; [.38D9.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL O
-FF6C ; [.38F8.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YA
-FF6D ; [.38F9.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YU
-FF6E ; [.38FB.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YO
-FF6F ; [.38E6.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL TU
-FF70 ; [.18D4.0020.0002] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF71 ; [.38D4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER A
-FF72 ; [.38D5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER I
-FF73 ; [.38D6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER U
-FF74 ; [.38D8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER E
-FF75 ; [.38D9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER O
-FF76 ; [.38DA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KA
-FF77 ; [.38DB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KI
-FF78 ; [.38DC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KU
-FF79 ; [.38DD.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KE
-FF7A ; [.38DE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KO
-FF7B ; [.38DF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SA
-FF7C ; [.38E0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SI
-FF7D ; [.38E1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SU
-FF7E ; [.38E2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SE
-FF7F ; [.38E3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SO
-FF80 ; [.38E4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TA
-FF81 ; [.38E5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TI
-FF82 ; [.38E6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TU
-FF83 ; [.38E7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TE
-FF84 ; [.38E8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TO
-FF85 ; [.38E9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NA
-FF86 ; [.38EA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NI
-FF87 ; [.38EB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NU
-FF88 ; [.38EC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NE
-FF89 ; [.38ED.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NO
-FF8A ; [.38EE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HA
-FF8B ; [.38EF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HI
-FF8C ; [.38F0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HU
-FF8D ; [.38F1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HE
-FF8E ; [.38F2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HO
-FF8F ; [.38F3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MA
-FF90 ; [.38F4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MI
-FF91 ; [.38F5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MU
-FF92 ; [.38F6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER ME
-FF93 ; [.38F7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MO
-FF94 ; [.38F8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YA
-FF95 ; [.38F9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YU
-FF96 ; [.38FB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YO
-FF97 ; [.38FC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RA
-FF98 ; [.38FD.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RI
-FF99 ; [.38FE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RU
-FF9A ; [.38FF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RE
-FF9B ; [.3900.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RO
-FF9C ; [.3901.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WA
-FF9D ; [.3905.0020.0011.0002] # HALFWIDTH KATAKANA LETTER N
+FF66 ; [.3BF3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WO
+FF67 ; [.3BC3.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL A
+FF68 ; [.3BC4.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL I
+FF69 ; [.3BC5.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL U
+FF6A ; [.3BC7.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL E
+FF6B ; [.3BC8.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL O
+FF6C ; [.3BE7.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D ; [.3BE8.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E ; [.3BEA.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F ; [.3BD5.0020.000F.0002] # HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; [.1B89.0020.0002] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71 ; [.3BC3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER A
+FF72 ; [.3BC4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER I
+FF73 ; [.3BC5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER U
+FF74 ; [.3BC7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER E
+FF75 ; [.3BC8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER O
+FF76 ; [.3BC9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KA
+FF77 ; [.3BCA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KI
+FF78 ; [.3BCB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KU
+FF79 ; [.3BCC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KE
+FF7A ; [.3BCD.0020.0011.0002] # HALFWIDTH KATAKANA LETTER KO
+FF7B ; [.3BCE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SA
+FF7C ; [.3BCF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SI
+FF7D ; [.3BD0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SU
+FF7E ; [.3BD1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SE
+FF7F ; [.3BD2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER SO
+FF80 ; [.3BD3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TA
+FF81 ; [.3BD4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TI
+FF82 ; [.3BD5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TU
+FF83 ; [.3BD6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TE
+FF84 ; [.3BD7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER TO
+FF85 ; [.3BD8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NA
+FF86 ; [.3BD9.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NI
+FF87 ; [.3BDA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NU
+FF88 ; [.3BDB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NE
+FF89 ; [.3BDC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER NO
+FF8A ; [.3BDD.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HA
+FF8B ; [.3BDE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HI
+FF8C ; [.3BDF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HU
+FF8D ; [.3BE0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HE
+FF8E ; [.3BE1.0020.0011.0002] # HALFWIDTH KATAKANA LETTER HO
+FF8F ; [.3BE2.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MA
+FF90 ; [.3BE3.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MI
+FF91 ; [.3BE4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MU
+FF92 ; [.3BE5.0020.0011.0002] # HALFWIDTH KATAKANA LETTER ME
+FF93 ; [.3BE6.0020.0011.0002] # HALFWIDTH KATAKANA LETTER MO
+FF94 ; [.3BE7.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YA
+FF95 ; [.3BE8.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YU
+FF96 ; [.3BEA.0020.0011.0002] # HALFWIDTH KATAKANA LETTER YO
+FF97 ; [.3BEB.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RA
+FF98 ; [.3BEC.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RI
+FF99 ; [.3BED.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RU
+FF9A ; [.3BEE.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RE
+FF9B ; [.3BEF.0020.0011.0002] # HALFWIDTH KATAKANA LETTER RO
+FF9C ; [.3BF0.0020.0011.0002] # HALFWIDTH KATAKANA LETTER WA
+FF9D ; [.3BF4.0020.0011.0002] # HALFWIDTH KATAKANA LETTER N
FF9E ; [.0000.0037.0002] # HALFWIDTH KATAKANA VOICED SOUND MARK
FF9F ; [.0000.0038.0002] # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFE0 ; [.18D7.0020.0002] # FULLWIDTH CENT SIGN
-FFE1 ; [.18D9.0020.0002] # FULLWIDTH POUND SIGN
-FFE2 ; [*05DD.0020.0002] # FULLWIDTH NOT SIGN
+FFE0 ; [.1B8C.0020.0002] # FULLWIDTH CENT SIGN
+FFE1 ; [.1B8E.0020.0002] # FULLWIDTH POUND SIGN
+FFE2 ; [*05FD.0020.0002] # FULLWIDTH NOT SIGN
FFE3 ; [*0209.0020.0002] # FULLWIDTH MACRON
-FFE4 ; [*05DF.0020.0002] # FULLWIDTH BROKEN BAR
-FFE5 ; [.18DA.0020.0002] # FULLWIDTH YEN SIGN
-FFE6 ; [.18ED.0020.0002] # FULLWIDTH WON SIGN
-FFE8 ; [*07D6.0020.0002] # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9 ; [*055C.0020.0002] # HALFWIDTH LEFTWARDS ARROW
-FFEA ; [*055E.0020.0002] # HALFWIDTH UPWARDS ARROW
-FFEB ; [*055D.0020.0002] # HALFWIDTH RIGHTWARDS ARROW
-FFEC ; [*055F.0020.0002] # HALFWIDTH DOWNWARDS ARROW
-FFED ; [*0874.0020.0002] # HALFWIDTH BLACK SQUARE
-FFEE ; [*089F.0020.0002] # HALFWIDTH WHITE CIRCLE
-30A1 30FC ; [.38D4.0020.000F.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF67 30FC ; [.38D4.0020.000F.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF67 FF70 ; [.38D4.0020.000F.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3041 30FC ; [.38D4.0020.000F.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A2 30FC ; [.38D4.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF71 30FC ; [.38D4.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF71 FF70 ; [.38D4.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3042 30FC ; [.38D4.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AB 30FC ; [.38DA.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 30FC ; [.38DA.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF70 ; [.38DA.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304B 30FC ; [.38DA.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AC 30FC ; [.38DA.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AB 3099 30FC ; [.38DA.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF9E 30FC ; [.38DA.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF76 FF9E FF70 ; [.38DA.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304C 30FC ; [.38DA.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304B 3099 30FC ; [.38DA.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B5 30FC ; [.38DF.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B 30FC ; [.38DF.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF70 ; [.38DF.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3055 30FC ; [.38DF.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B6 30FC ; [.38DF.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B5 3099 30FC ; [.38DF.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF9E 30FC ; [.38DF.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7B FF9E FF70 ; [.38DF.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3056 30FC ; [.38DF.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3055 3099 30FC ; [.38DF.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BF 30FC ; [.38E4.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 30FC ; [.38E4.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF70 ; [.38E4.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305F 30FC ; [.38E4.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C0 30FC ; [.38E4.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BF 3099 30FC ; [.38E4.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF9E 30FC ; [.38E4.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF80 FF9E FF70 ; [.38E4.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3060 30FC ; [.38E4.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305F 3099 30FC ; [.38E4.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CA 30FC ; [.38E9.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF85 30FC ; [.38E9.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF85 FF70 ; [.38E9.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306A 30FC ; [.38E9.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 30FC ; [.38EE.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A 30FC ; [.38EE.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF70 ; [.38EE.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 30FC ; [.38EE.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D0 30FC ; [.38EE.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 3099 30FC ; [.38EE.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9E 30FC ; [.38EE.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9E FF70 ; [.38EE.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3070 30FC ; [.38EE.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 3099 30FC ; [.38EE.0020.0011.0001][.0000.0037.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D1 30FC ; [.38EE.0020.0011.0002][.0000.0038.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CF 309A 30FC ; [.38EE.0020.0011.0002][.0000.0038.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9F 30FC ; [.38EE.0020.0011.0002][.0000.0038.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8A FF9F FF70 ; [.38EE.0020.0011.0002][.0000.0038.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3071 30FC ; [.38EE.0020.0011.0001][.0000.0038.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306F 309A 30FC ; [.38EE.0020.0011.0001][.0000.0038.0002][.38D4.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DE 30FC ; [.38F3.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8F 30FC ; [.38F3.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8F FF70 ; [.38F3.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307E 30FC ; [.38F3.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E3 30FC ; [.38F8.0020.000F.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6C 30FC ; [.38F8.0020.000F.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6C FF70 ; [.38F8.0020.000F.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3083 30FC ; [.38F8.0020.000F.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E4 30FC ; [.38F8.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF94 30FC ; [.38F8.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF94 FF70 ; [.38F8.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3084 30FC ; [.38F8.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E9 30FC ; [.38FC.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF97 30FC ; [.38FC.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF97 FF70 ; [.38FC.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3089 30FC ; [.38FC.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EE 30FC ; [.3901.0020.000F.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308E 30FC ; [.3901.0020.000F.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EF 30FC ; [.3901.0020.0011.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C 30FC ; [.3901.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF70 ; [.3901.0020.0011.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308F 30FC ; [.3901.0020.0011.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F7 30FC ; [.3901.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER VA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EF 3099 30FC ; [.3901.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF9E 30FC ; [.3901.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9C FF9E FF70 ; [.3901.0020.0011.0002][.0000.0037.0002][.38D4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F5 30FC ; [.38DA.0020.000F.0002][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3095 30FC ; [.38DA.0020.000F.0001][.38D4.0020.0007.0002] # <HIRAGANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F5 30FC ; [.38EE.0020.000F][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FB 30FC ; [.38FC.0020.000F][.38D4.0020.0007.0002] # <KATAKANA LETTER SMALL RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A3 30FC ; [.38D5.0020.000F.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF68 30FC ; [.38D5.0020.000F.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF68 FF70 ; [.38D5.0020.000F.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3043 30FC ; [.38D5.0020.000F.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A4 30FC ; [.38D5.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF72 30FC ; [.38D5.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF72 FF70 ; [.38D5.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3044 30FC ; [.38D5.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AD 30FC ; [.38DB.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 30FC ; [.38DB.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF70 ; [.38DB.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304D 30FC ; [.38DB.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AE 30FC ; [.38DB.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AD 3099 30FC ; [.38DB.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF9E 30FC ; [.38DB.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF77 FF9E FF70 ; [.38DB.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304E 30FC ; [.38DB.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304D 3099 30FC ; [.38DB.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B7 30FC ; [.38E0.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C 30FC ; [.38E0.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF70 ; [.38E0.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3057 30FC ; [.38E0.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B8 30FC ; [.38E0.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B7 3099 30FC ; [.38E0.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF9E 30FC ; [.38E0.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7C FF9E FF70 ; [.38E0.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3058 30FC ; [.38E0.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3057 3099 30FC ; [.38E0.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C1 30FC ; [.38E5.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 30FC ; [.38E5.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF70 ; [.38E5.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3061 30FC ; [.38E5.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C2 30FC ; [.38E5.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C1 3099 30FC ; [.38E5.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF9E 30FC ; [.38E5.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF81 FF9E FF70 ; [.38E5.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3062 30FC ; [.38E5.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3061 3099 30FC ; [.38E5.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CB 30FC ; [.38EA.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF86 30FC ; [.38EA.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF86 FF70 ; [.38EA.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306B 30FC ; [.38EA.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 30FC ; [.38EF.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B 30FC ; [.38EF.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF70 ; [.38EF.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 30FC ; [.38EF.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D3 30FC ; [.38EF.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 3099 30FC ; [.38EF.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9E 30FC ; [.38EF.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9E FF70 ; [.38EF.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3073 30FC ; [.38EF.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 3099 30FC ; [.38EF.0020.0011.0001][.0000.0037.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D4 30FC ; [.38EF.0020.0011.0002][.0000.0038.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D2 309A 30FC ; [.38EF.0020.0011.0002][.0000.0038.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9F 30FC ; [.38EF.0020.0011.0002][.0000.0038.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8B FF9F FF70 ; [.38EF.0020.0011.0002][.0000.0038.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3074 30FC ; [.38EF.0020.0011.0001][.0000.0038.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3072 309A 30FC ; [.38EF.0020.0011.0001][.0000.0038.0002][.38D5.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DF 30FC ; [.38F4.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF90 30FC ; [.38F4.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF90 FF70 ; [.38F4.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307F 30FC ; [.38F4.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EA 30FC ; [.38FD.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF98 30FC ; [.38FD.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF98 FF70 ; [.38FD.0020.0011.0002][.38D5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308A 30FC ; [.38FD.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F0 30FC ; [.3902.0020.0011.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3090 30FC ; [.3902.0020.0011.0001][.38D5.0020.0007.0002] # <HIRAGANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F8 30FC ; [.3902.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER VI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F0 3099 30FC ; [.3902.0020.0011.0002][.0000.0037.0002][.38D5.0020.0007.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F1 30FC ; [.38E0.0020.000F][.38D5.0020.0007.0002] # <KATAKANA LETTER SMALL SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F6 30FC ; [.38EF.0020.000F][.38D5.0020.0007.0002] # <KATAKANA LETTER SMALL HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FC 30FC ; [.38FD.0020.000F][.38D5.0020.0007.0002] # <KATAKANA LETTER SMALL RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A5 30FC ; [.38D6.0020.000F.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF69 30FC ; [.38D6.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF69 FF70 ; [.38D6.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3045 30FC ; [.38D6.0020.000F.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A6 30FC ; [.38D6.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 30FC ; [.38D6.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF70 ; [.38D6.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3046 30FC ; [.38D6.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AF 30FC ; [.38DC.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 30FC ; [.38DC.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF70 ; [.38DC.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304F 30FC ; [.38DC.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B0 30FC ; [.38DC.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AF 3099 30FC ; [.38DC.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF9E 30FC ; [.38DC.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF78 FF9E FF70 ; [.38DC.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3050 30FC ; [.38DC.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304F 3099 30FC ; [.38DC.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B9 30FC ; [.38E1.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D 30FC ; [.38E1.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF70 ; [.38E1.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3059 30FC ; [.38E1.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BA 30FC ; [.38E1.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B9 3099 30FC ; [.38E1.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF9E 30FC ; [.38E1.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7D FF9E FF70 ; [.38E1.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305A 30FC ; [.38E1.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3059 3099 30FC ; [.38E1.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C3 30FC ; [.38E6.0020.000F.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6F 30FC ; [.38E6.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6F FF70 ; [.38E6.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3063 30FC ; [.38E6.0020.000F.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C4 30FC ; [.38E6.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 30FC ; [.38E6.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF70 ; [.38E6.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3064 30FC ; [.38E6.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C5 30FC ; [.38E6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C4 3099 30FC ; [.38E6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF9E 30FC ; [.38E6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF82 FF9E FF70 ; [.38E6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3065 30FC ; [.38E6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3064 3099 30FC ; [.38E6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CC 30FC ; [.38EB.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF87 30FC ; [.38EB.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF87 FF70 ; [.38EB.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306C 30FC ; [.38EB.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 30FC ; [.38F0.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C 30FC ; [.38F0.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF70 ; [.38F0.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 30FC ; [.38F0.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D6 30FC ; [.38F0.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 3099 30FC ; [.38F0.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9E 30FC ; [.38F0.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9E FF70 ; [.38F0.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3076 30FC ; [.38F0.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 3099 30FC ; [.38F0.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D7 30FC ; [.38F0.0020.0011.0002][.0000.0038.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D5 309A 30FC ; [.38F0.0020.0011.0002][.0000.0038.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9F 30FC ; [.38F0.0020.0011.0002][.0000.0038.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8C FF9F FF70 ; [.38F0.0020.0011.0002][.0000.0038.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3077 30FC ; [.38F0.0020.0011.0001][.0000.0038.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3075 309A 30FC ; [.38F0.0020.0011.0001][.0000.0038.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E0 30FC ; [.38F5.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF91 30FC ; [.38F5.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF91 FF70 ; [.38F5.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3080 30FC ; [.38F5.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E5 30FC ; [.38F9.0020.000F.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6D 30FC ; [.38F9.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6D FF70 ; [.38F9.0020.000F.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3085 30FC ; [.38F9.0020.000F.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E6 30FC ; [.38F9.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF95 30FC ; [.38F9.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF95 FF70 ; [.38F9.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3086 30FC ; [.38F9.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EB 30FC ; [.38FE.0020.0011.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF99 30FC ; [.38FE.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF99 FF70 ; [.38FE.0020.0011.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308B 30FC ; [.38FE.0020.0011.0001][.38D6.0020.0007.0002] # <HIRAGANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F4 30FC ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A6 3099 30FC ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF9E 30FC ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF73 FF9E FF70 ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3094 30FC ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3046 3099 30FC ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0007.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F0 30FC ; [.38DC.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F2 30FC ; [.38E1.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F4 30FC ; [.38EB.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F7 30FC ; [.38F0.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FA 30FC ; [.38F5.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FD 30FC ; [.38FE.0020.000F][.38D6.0020.0007.0002] # <KATAKANA LETTER SMALL RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A7 30FC ; [.38D8.0020.000F.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6A 30FC ; [.38D8.0020.000F.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6A FF70 ; [.38D8.0020.000F.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3047 30FC ; [.38D8.0020.000F.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A8 30FC ; [.38D8.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF74 30FC ; [.38D8.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF74 FF70 ; [.38D8.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3048 30FC ; [.38D8.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B1 30FC ; [.38DD.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 30FC ; [.38DD.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF70 ; [.38DD.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3051 30FC ; [.38DD.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B2 30FC ; [.38DD.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B1 3099 30FC ; [.38DD.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF9E 30FC ; [.38DD.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF79 FF9E FF70 ; [.38DD.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3052 30FC ; [.38DD.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3051 3099 30FC ; [.38DD.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BB 30FC ; [.38E2.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E 30FC ; [.38E2.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF70 ; [.38E2.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305B 30FC ; [.38E2.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BC 30FC ; [.38E2.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BB 3099 30FC ; [.38E2.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF9E 30FC ; [.38E2.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7E FF9E FF70 ; [.38E2.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305C 30FC ; [.38E2.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305B 3099 30FC ; [.38E2.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C6 30FC ; [.38E7.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 30FC ; [.38E7.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF70 ; [.38E7.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3066 30FC ; [.38E7.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C7 30FC ; [.38E7.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C6 3099 30FC ; [.38E7.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF9E 30FC ; [.38E7.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF83 FF9E FF70 ; [.38E7.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3067 30FC ; [.38E7.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3066 3099 30FC ; [.38E7.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CD 30FC ; [.38EC.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF88 30FC ; [.38EC.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF88 FF70 ; [.38EC.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306D 30FC ; [.38EC.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 30FC ; [.38F1.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D 30FC ; [.38F1.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF70 ; [.38F1.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 30FC ; [.38F1.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D9 30FC ; [.38F1.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 3099 30FC ; [.38F1.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9E 30FC ; [.38F1.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9E FF70 ; [.38F1.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3079 30FC ; [.38F1.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 3099 30FC ; [.38F1.0020.0011.0001][.0000.0037.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DA 30FC ; [.38F1.0020.0011.0002][.0000.0038.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30D8 309A 30FC ; [.38F1.0020.0011.0002][.0000.0038.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9F 30FC ; [.38F1.0020.0011.0002][.0000.0038.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8D FF9F FF70 ; [.38F1.0020.0011.0002][.0000.0038.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307A 30FC ; [.38F1.0020.0011.0001][.0000.0038.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3078 309A 30FC ; [.38F1.0020.0011.0001][.0000.0038.0002][.38D8.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E1 30FC ; [.38F6.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF92 30FC ; [.38F6.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF92 FF70 ; [.38F6.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3081 30FC ; [.38F6.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30EC 30FC ; [.38FF.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9A 30FC ; [.38FF.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9A FF70 ; [.38FF.0020.0011.0002][.38D8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308C 30FC ; [.38FF.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F1 30FC ; [.3903.0020.0011.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3091 30FC ; [.3903.0020.0011.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F9 30FC ; [.3903.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER VE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F1 3099 30FC ; [.3903.0020.0011.0002][.0000.0037.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F6 30FC ; [.38DD.0020.000F.0002][.38D8.0020.0007.0002] # <KATAKANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3096 30FC ; [.38DD.0020.000F.0001][.38D8.0020.0007.0002] # <HIRAGANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F8 30FC ; [.38F1.0020.000F][.38D8.0020.0007.0002] # <KATAKANA LETTER SMALL HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FE 30FC ; [.38FF.0020.000F][.38D8.0020.0007.0002] # <KATAKANA LETTER SMALL RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A9 30FC ; [.38D9.0020.000F.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6B 30FC ; [.38D9.0020.000F.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6B FF70 ; [.38D9.0020.000F.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3049 30FC ; [.38D9.0020.000F.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30AA 30FC ; [.38D9.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF75 30FC ; [.38D9.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF75 FF70 ; [.38D9.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-304A 30FC ; [.38D9.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B3 30FC ; [.38DE.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A 30FC ; [.38DE.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF70 ; [.38DE.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3053 30FC ; [.38DE.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B4 30FC ; [.38DE.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30B3 3099 30FC ; [.38DE.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF9E 30FC ; [.38DE.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7A FF9E FF70 ; [.38DE.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3054 30FC ; [.38DE.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3053 3099 30FC ; [.38DE.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BD 30FC ; [.38E3.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F 30FC ; [.38E3.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF70 ; [.38E3.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305D 30FC ; [.38E3.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BE 30FC ; [.38E3.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30BD 3099 30FC ; [.38E3.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF9E 30FC ; [.38E3.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF7F FF9E FF70 ; [.38E3.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305E 30FC ; [.38E3.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-305D 3099 30FC ; [.38E3.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C8 30FC ; [.38E8.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 30FC ; [.38E8.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF70 ; [.38E8.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3068 30FC ; [.38E8.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C9 30FC ; [.38E8.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30C8 3099 30FC ; [.38E8.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF9E 30FC ; [.38E8.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF84 FF9E FF70 ; [.38E8.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3069 30FC ; [.38E8.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3068 3099 30FC ; [.38E8.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30CE 30FC ; [.38ED.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF89 30FC ; [.38ED.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF89 FF70 ; [.38ED.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-306E 30FC ; [.38ED.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 30FC ; [.38F2.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E 30FC ; [.38F2.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF70 ; [.38F2.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 30FC ; [.38F2.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DC 30FC ; [.38F2.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 3099 30FC ; [.38F2.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9E 30FC ; [.38F2.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9E FF70 ; [.38F2.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307C 30FC ; [.38F2.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 3099 30FC ; [.38F2.0020.0011.0001][.0000.0037.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DD 30FC ; [.38F2.0020.0011.0002][.0000.0038.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30DB 309A 30FC ; [.38F2.0020.0011.0002][.0000.0038.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9F 30FC ; [.38F2.0020.0011.0002][.0000.0038.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF8E FF9F FF70 ; [.38F2.0020.0011.0002][.0000.0038.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307D 30FC ; [.38F2.0020.0011.0001][.0000.0038.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-307B 309A 30FC ; [.38F2.0020.0011.0001][.0000.0038.0002][.38D9.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E2 30FC ; [.38F7.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF93 30FC ; [.38F7.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF93 FF70 ; [.38F7.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3082 30FC ; [.38F7.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E7 30FC ; [.38FB.0020.000F.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6E 30FC ; [.38FB.0020.000F.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF6E FF70 ; [.38FB.0020.000F.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3087 30FC ; [.38FB.0020.000F.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30E8 30FC ; [.38FB.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF96 30FC ; [.38FB.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF96 FF70 ; [.38FB.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3088 30FC ; [.38FB.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30ED 30FC ; [.3900.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9B 30FC ; [.3900.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF9B FF70 ; [.3900.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-308D 30FC ; [.3900.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F2 30FC ; [.3904.0020.0011.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 30FC ; [.3904.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF70 ; [.3904.0020.0011.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-3092 30FC ; [.3904.0020.0011.0001][.38D9.0020.0007.0002] # <HIRAGANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30FA 30FC ; [.3904.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER VO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30F2 3099 30FC ; [.3904.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF9E 30FC ; [.3904.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-FF66 FF9E FF70 ; [.3904.0020.0011.0002][.0000.0037.0002][.38D9.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F3 30FC ; [.38E8.0020.000F][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31F9 30FC ; [.38F2.0020.000F][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-31FF 30FC ; [.3900.0020.000F][.38D9.0020.0007.0002] # <KATAKANA LETTER SMALL RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
-30A1 30FD ; [.38D4.0020.000F.0002][.38D4.0020.0010.0002] # <KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
-FF67 30FD ; [.38D4.0020.000F.0002][.38D4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
-3041 309D ; [.38D4.0020.000F.0001][.38D4.0020.0010.0002] # <HIRAGANA LETTER SMALL A, HIRAGANA ITERATION MARK>
-30A2 30FD ; [.38D4.0020.0011.0002][.38D4.0020.0010.0002] # <KATAKANA LETTER A, KATAKANA ITERATION MARK>
-FF71 30FD ; [.38D4.0020.0011.0002][.38D4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA ITERATION MARK>
-3042 309D ; [.38D4.0020.0011.0001][.38D4.0020.0010.0002] # <HIRAGANA LETTER A, HIRAGANA ITERATION MARK>
-30A3 30FD ; [.38D5.0020.000F.0002][.38D5.0020.0010.0002] # <KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
-FF68 30FD ; [.38D5.0020.000F.0002][.38D5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
-3043 309D ; [.38D5.0020.000F.0001][.38D5.0020.0010.0002] # <HIRAGANA LETTER SMALL I, HIRAGANA ITERATION MARK>
-30A4 30FD ; [.38D5.0020.0011.0002][.38D5.0020.0010.0002] # <KATAKANA LETTER I, KATAKANA ITERATION MARK>
-FF72 30FD ; [.38D5.0020.0011.0002][.38D5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA ITERATION MARK>
-3044 309D ; [.38D5.0020.0011.0001][.38D5.0020.0010.0002] # <HIRAGANA LETTER I, HIRAGANA ITERATION MARK>
-30A5 30FD ; [.38D6.0020.000F.0002][.38D6.0020.0010.0002] # <KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
-FF69 30FD ; [.38D6.0020.000F.0002][.38D6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
-3045 309D ; [.38D6.0020.000F.0001][.38D6.0020.0010.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA ITERATION MARK>
-30A5 30FE ; [.38D6.0020.000F.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
-FF69 30FE ; [.38D6.0020.000F.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
-3045 309E ; [.38D6.0020.000F.0001][.38D6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA VOICED ITERATION MARK>
-30A6 30FD ; [.38D6.0020.0011.0002][.38D6.0020.0010.0002] # <KATAKANA LETTER U, KATAKANA ITERATION MARK>
-FF73 30FD ; [.38D6.0020.0011.0002][.38D6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA ITERATION MARK>
-3046 309D ; [.38D6.0020.0011.0001][.38D6.0020.0010.0002] # <HIRAGANA LETTER U, HIRAGANA ITERATION MARK>
-30A6 30FE ; [.38D6.0020.0011.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
-FF73 30FE ; [.38D6.0020.0011.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
-3046 309E ; [.38D6.0020.0011.0001][.38D6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, HIRAGANA VOICED ITERATION MARK>
-30A7 30FD ; [.38D8.0020.000F.0002][.38D8.0020.0010.0002] # <KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
-FF6A 30FD ; [.38D8.0020.000F.0002][.38D8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
-3047 309D ; [.38D8.0020.000F.0001][.38D8.0020.0010.0002] # <HIRAGANA LETTER SMALL E, HIRAGANA ITERATION MARK>
-30A8 30FD ; [.38D8.0020.0011.0002][.38D8.0020.0010.0002] # <KATAKANA LETTER E, KATAKANA ITERATION MARK>
-FF74 30FD ; [.38D8.0020.0011.0002][.38D8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA ITERATION MARK>
-3048 309D ; [.38D8.0020.0011.0001][.38D8.0020.0010.0002] # <HIRAGANA LETTER E, HIRAGANA ITERATION MARK>
-30A9 30FD ; [.38D9.0020.000F.0002][.38D9.0020.0010.0002] # <KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
-FF6B 30FD ; [.38D9.0020.000F.0002][.38D9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
-3049 309D ; [.38D9.0020.000F.0001][.38D9.0020.0010.0002] # <HIRAGANA LETTER SMALL O, HIRAGANA ITERATION MARK>
-30AA 30FD ; [.38D9.0020.0011.0002][.38D9.0020.0010.0002] # <KATAKANA LETTER O, KATAKANA ITERATION MARK>
-FF75 30FD ; [.38D9.0020.0011.0002][.38D9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA ITERATION MARK>
-304A 309D ; [.38D9.0020.0011.0001][.38D9.0020.0010.0002] # <HIRAGANA LETTER O, HIRAGANA ITERATION MARK>
-30AB 30FD ; [.38DA.0020.0011.0002][.38DA.0020.0010.0002] # <KATAKANA LETTER KA, KATAKANA ITERATION MARK>
-FF76 30FD ; [.38DA.0020.0011.0002][.38DA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA ITERATION MARK>
-304B 309D ; [.38DA.0020.0011.0001][.38DA.0020.0010.0002] # <HIRAGANA LETTER KA, HIRAGANA ITERATION MARK>
-30AB 30FE ; [.38DA.0020.0011.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
-FF76 30FE ; [.38DA.0020.0011.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
-304B 309E ; [.38DA.0020.0011.0001][.38DA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, HIRAGANA VOICED ITERATION MARK>
-30AC 30FD ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002] # <KATAKANA LETTER GA, KATAKANA ITERATION MARK>
-30AB 3099 30FD ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF76 FF9E 30FD ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-304C 309D ; [.38DA.0020.0011.0001][.0000.0037.0002][.38DA.0020.0010.0002] # <HIRAGANA LETTER GA, HIRAGANA ITERATION MARK>
-304B 3099 309D ; [.38DA.0020.0011.0001][.0000.0037.0002][.38DA.0020.0010.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30AC 30FE ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GA, KATAKANA VOICED ITERATION MARK>
-30AB 3099 30FE ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF76 FF9E 30FE ; [.38DA.0020.0011.0002][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-304C 309E ; [.38DA.0020.0011.0001][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GA, HIRAGANA VOICED ITERATION MARK>
-304B 3099 309E ; [.38DA.0020.0011.0001][.0000.0037.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30AD 30FD ; [.38DB.0020.0011.0002][.38DB.0020.0010.0002] # <KATAKANA LETTER KI, KATAKANA ITERATION MARK>
-FF77 30FD ; [.38DB.0020.0011.0002][.38DB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA ITERATION MARK>
-304D 309D ; [.38DB.0020.0011.0001][.38DB.0020.0010.0002] # <HIRAGANA LETTER KI, HIRAGANA ITERATION MARK>
-30AD 30FE ; [.38DB.0020.0011.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
-FF77 30FE ; [.38DB.0020.0011.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
-304D 309E ; [.38DB.0020.0011.0001][.38DB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, HIRAGANA VOICED ITERATION MARK>
-30AE 30FD ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002] # <KATAKANA LETTER GI, KATAKANA ITERATION MARK>
-30AD 3099 30FD ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF77 FF9E 30FD ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-304E 309D ; [.38DB.0020.0011.0001][.0000.0037.0002][.38DB.0020.0010.0002] # <HIRAGANA LETTER GI, HIRAGANA ITERATION MARK>
-304D 3099 309D ; [.38DB.0020.0011.0001][.0000.0037.0002][.38DB.0020.0010.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30AE 30FE ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GI, KATAKANA VOICED ITERATION MARK>
-30AD 3099 30FE ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF77 FF9E 30FE ; [.38DB.0020.0011.0002][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-304E 309E ; [.38DB.0020.0011.0001][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GI, HIRAGANA VOICED ITERATION MARK>
-304D 3099 309E ; [.38DB.0020.0011.0001][.0000.0037.0002][.38DB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30AF 30FD ; [.38DC.0020.0011.0002][.38DC.0020.0010.0002] # <KATAKANA LETTER KU, KATAKANA ITERATION MARK>
-FF78 30FD ; [.38DC.0020.0011.0002][.38DC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA ITERATION MARK>
-304F 309D ; [.38DC.0020.0011.0001][.38DC.0020.0010.0002] # <HIRAGANA LETTER KU, HIRAGANA ITERATION MARK>
-30AF 30FE ; [.38DC.0020.0011.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
-FF78 30FE ; [.38DC.0020.0011.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
-304F 309E ; [.38DC.0020.0011.0001][.38DC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, HIRAGANA VOICED ITERATION MARK>
-30B0 30FD ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002] # <KATAKANA LETTER GU, KATAKANA ITERATION MARK>
-30AF 3099 30FD ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF78 FF9E 30FD ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3050 309D ; [.38DC.0020.0011.0001][.0000.0037.0002][.38DC.0020.0010.0002] # <HIRAGANA LETTER GU, HIRAGANA ITERATION MARK>
-304F 3099 309D ; [.38DC.0020.0011.0001][.0000.0037.0002][.38DC.0020.0010.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B0 30FE ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GU, KATAKANA VOICED ITERATION MARK>
-30AF 3099 30FE ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF78 FF9E 30FE ; [.38DC.0020.0011.0002][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3050 309E ; [.38DC.0020.0011.0001][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GU, HIRAGANA VOICED ITERATION MARK>
-304F 3099 309E ; [.38DC.0020.0011.0001][.0000.0037.0002][.38DC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B1 30FD ; [.38DD.0020.0011.0002][.38DD.0020.0010.0002] # <KATAKANA LETTER KE, KATAKANA ITERATION MARK>
-FF79 30FD ; [.38DD.0020.0011.0002][.38DD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA ITERATION MARK>
-3051 309D ; [.38DD.0020.0011.0001][.38DD.0020.0010.0002] # <HIRAGANA LETTER KE, HIRAGANA ITERATION MARK>
-30B1 30FE ; [.38DD.0020.0011.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
-FF79 30FE ; [.38DD.0020.0011.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
-3051 309E ; [.38DD.0020.0011.0001][.38DD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, HIRAGANA VOICED ITERATION MARK>
-30B2 30FD ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002] # <KATAKANA LETTER GE, KATAKANA ITERATION MARK>
-30B1 3099 30FD ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF79 FF9E 30FD ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3052 309D ; [.38DD.0020.0011.0001][.0000.0037.0002][.38DD.0020.0010.0002] # <HIRAGANA LETTER GE, HIRAGANA ITERATION MARK>
-3051 3099 309D ; [.38DD.0020.0011.0001][.0000.0037.0002][.38DD.0020.0010.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B2 30FE ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GE, KATAKANA VOICED ITERATION MARK>
-30B1 3099 30FE ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF79 FF9E 30FE ; [.38DD.0020.0011.0002][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3052 309E ; [.38DD.0020.0011.0001][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GE, HIRAGANA VOICED ITERATION MARK>
-3051 3099 309E ; [.38DD.0020.0011.0001][.0000.0037.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B3 30FD ; [.38DE.0020.0011.0002][.38DE.0020.0010.0002] # <KATAKANA LETTER KO, KATAKANA ITERATION MARK>
-FF7A 30FD ; [.38DE.0020.0011.0002][.38DE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA ITERATION MARK>
-3053 309D ; [.38DE.0020.0011.0001][.38DE.0020.0010.0002] # <HIRAGANA LETTER KO, HIRAGANA ITERATION MARK>
-30B3 30FE ; [.38DE.0020.0011.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
-FF7A 30FE ; [.38DE.0020.0011.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
-3053 309E ; [.38DE.0020.0011.0001][.38DE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, HIRAGANA VOICED ITERATION MARK>
-30B4 30FD ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002] # <KATAKANA LETTER GO, KATAKANA ITERATION MARK>
-30B3 3099 30FD ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7A FF9E 30FD ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3054 309D ; [.38DE.0020.0011.0001][.0000.0037.0002][.38DE.0020.0010.0002] # <HIRAGANA LETTER GO, HIRAGANA ITERATION MARK>
-3053 3099 309D ; [.38DE.0020.0011.0001][.0000.0037.0002][.38DE.0020.0010.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B4 30FE ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GO, KATAKANA VOICED ITERATION MARK>
-30B3 3099 30FE ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7A FF9E 30FE ; [.38DE.0020.0011.0002][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3054 309E ; [.38DE.0020.0011.0001][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GO, HIRAGANA VOICED ITERATION MARK>
-3053 3099 309E ; [.38DE.0020.0011.0001][.0000.0037.0002][.38DE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B5 30FD ; [.38DF.0020.0011.0002][.38DF.0020.0010.0002] # <KATAKANA LETTER SA, KATAKANA ITERATION MARK>
-FF7B 30FD ; [.38DF.0020.0011.0002][.38DF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA ITERATION MARK>
-3055 309D ; [.38DF.0020.0011.0001][.38DF.0020.0010.0002] # <HIRAGANA LETTER SA, HIRAGANA ITERATION MARK>
-30B5 30FE ; [.38DF.0020.0011.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
-FF7B 30FE ; [.38DF.0020.0011.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
-3055 309E ; [.38DF.0020.0011.0001][.38DF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, HIRAGANA VOICED ITERATION MARK>
-30B6 30FD ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002] # <KATAKANA LETTER ZA, KATAKANA ITERATION MARK>
-30B5 3099 30FD ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7B FF9E 30FD ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3056 309D ; [.38DF.0020.0011.0001][.0000.0037.0002][.38DF.0020.0010.0002] # <HIRAGANA LETTER ZA, HIRAGANA ITERATION MARK>
-3055 3099 309D ; [.38DF.0020.0011.0001][.0000.0037.0002][.38DF.0020.0010.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B6 30FE ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZA, KATAKANA VOICED ITERATION MARK>
-30B5 3099 30FE ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7B FF9E 30FE ; [.38DF.0020.0011.0002][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3056 309E ; [.38DF.0020.0011.0001][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZA, HIRAGANA VOICED ITERATION MARK>
-3055 3099 309E ; [.38DF.0020.0011.0001][.0000.0037.0002][.38DF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B7 30FD ; [.38E0.0020.0011.0002][.38E0.0020.0010.0002] # <KATAKANA LETTER SI, KATAKANA ITERATION MARK>
-FF7C 30FD ; [.38E0.0020.0011.0002][.38E0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA ITERATION MARK>
-3057 309D ; [.38E0.0020.0011.0001][.38E0.0020.0010.0002] # <HIRAGANA LETTER SI, HIRAGANA ITERATION MARK>
-30B7 30FE ; [.38E0.0020.0011.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
-FF7C 30FE ; [.38E0.0020.0011.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
-3057 309E ; [.38E0.0020.0011.0001][.38E0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, HIRAGANA VOICED ITERATION MARK>
-30B8 30FD ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002] # <KATAKANA LETTER ZI, KATAKANA ITERATION MARK>
-30B7 3099 30FD ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7C FF9E 30FD ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3058 309D ; [.38E0.0020.0011.0001][.0000.0037.0002][.38E0.0020.0010.0002] # <HIRAGANA LETTER ZI, HIRAGANA ITERATION MARK>
-3057 3099 309D ; [.38E0.0020.0011.0001][.0000.0037.0002][.38E0.0020.0010.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30B8 30FE ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZI, KATAKANA VOICED ITERATION MARK>
-30B7 3099 30FE ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7C FF9E 30FE ; [.38E0.0020.0011.0002][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3058 309E ; [.38E0.0020.0011.0001][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZI, HIRAGANA VOICED ITERATION MARK>
-3057 3099 309E ; [.38E0.0020.0011.0001][.0000.0037.0002][.38E0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30B9 30FD ; [.38E1.0020.0011.0002][.38E1.0020.0010.0002] # <KATAKANA LETTER SU, KATAKANA ITERATION MARK>
-FF7D 30FD ; [.38E1.0020.0011.0002][.38E1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA ITERATION MARK>
-3059 309D ; [.38E1.0020.0011.0001][.38E1.0020.0010.0002] # <HIRAGANA LETTER SU, HIRAGANA ITERATION MARK>
-30B9 30FE ; [.38E1.0020.0011.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
-FF7D 30FE ; [.38E1.0020.0011.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
-3059 309E ; [.38E1.0020.0011.0001][.38E1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, HIRAGANA VOICED ITERATION MARK>
-30BA 30FD ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002] # <KATAKANA LETTER ZU, KATAKANA ITERATION MARK>
-30B9 3099 30FD ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7D FF9E 30FD ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305A 309D ; [.38E1.0020.0011.0001][.0000.0037.0002][.38E1.0020.0010.0002] # <HIRAGANA LETTER ZU, HIRAGANA ITERATION MARK>
-3059 3099 309D ; [.38E1.0020.0011.0001][.0000.0037.0002][.38E1.0020.0010.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BA 30FE ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZU, KATAKANA VOICED ITERATION MARK>
-30B9 3099 30FE ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7D FF9E 30FE ; [.38E1.0020.0011.0002][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305A 309E ; [.38E1.0020.0011.0001][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZU, HIRAGANA VOICED ITERATION MARK>
-3059 3099 309E ; [.38E1.0020.0011.0001][.0000.0037.0002][.38E1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BB 30FD ; [.38E2.0020.0011.0002][.38E2.0020.0010.0002] # <KATAKANA LETTER SE, KATAKANA ITERATION MARK>
-FF7E 30FD ; [.38E2.0020.0011.0002][.38E2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA ITERATION MARK>
-305B 309D ; [.38E2.0020.0011.0001][.38E2.0020.0010.0002] # <HIRAGANA LETTER SE, HIRAGANA ITERATION MARK>
-30BB 30FE ; [.38E2.0020.0011.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
-FF7E 30FE ; [.38E2.0020.0011.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
-305B 309E ; [.38E2.0020.0011.0001][.38E2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, HIRAGANA VOICED ITERATION MARK>
-30BC 30FD ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002] # <KATAKANA LETTER ZE, KATAKANA ITERATION MARK>
-30BB 3099 30FD ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7E FF9E 30FD ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305C 309D ; [.38E2.0020.0011.0001][.0000.0037.0002][.38E2.0020.0010.0002] # <HIRAGANA LETTER ZE, HIRAGANA ITERATION MARK>
-305B 3099 309D ; [.38E2.0020.0011.0001][.0000.0037.0002][.38E2.0020.0010.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BC 30FE ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZE, KATAKANA VOICED ITERATION MARK>
-30BB 3099 30FE ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7E FF9E 30FE ; [.38E2.0020.0011.0002][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305C 309E ; [.38E2.0020.0011.0001][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZE, HIRAGANA VOICED ITERATION MARK>
-305B 3099 309E ; [.38E2.0020.0011.0001][.0000.0037.0002][.38E2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BD 30FD ; [.38E3.0020.0011.0002][.38E3.0020.0010.0002] # <KATAKANA LETTER SO, KATAKANA ITERATION MARK>
-FF7F 30FD ; [.38E3.0020.0011.0002][.38E3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA ITERATION MARK>
-305D 309D ; [.38E3.0020.0011.0001][.38E3.0020.0010.0002] # <HIRAGANA LETTER SO, HIRAGANA ITERATION MARK>
-30BD 30FE ; [.38E3.0020.0011.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
-FF7F 30FE ; [.38E3.0020.0011.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
-305D 309E ; [.38E3.0020.0011.0001][.38E3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, HIRAGANA VOICED ITERATION MARK>
-30BE 30FD ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002] # <KATAKANA LETTER ZO, KATAKANA ITERATION MARK>
-30BD 3099 30FD ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF7F FF9E 30FD ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-305E 309D ; [.38E3.0020.0011.0001][.0000.0037.0002][.38E3.0020.0010.0002] # <HIRAGANA LETTER ZO, HIRAGANA ITERATION MARK>
-305D 3099 309D ; [.38E3.0020.0011.0001][.0000.0037.0002][.38E3.0020.0010.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30BE 30FE ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZO, KATAKANA VOICED ITERATION MARK>
-30BD 3099 30FE ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF7F FF9E 30FE ; [.38E3.0020.0011.0002][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-305E 309E ; [.38E3.0020.0011.0001][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZO, HIRAGANA VOICED ITERATION MARK>
-305D 3099 309E ; [.38E3.0020.0011.0001][.0000.0037.0002][.38E3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30BF 30FD ; [.38E4.0020.0011.0002][.38E4.0020.0010.0002] # <KATAKANA LETTER TA, KATAKANA ITERATION MARK>
-FF80 30FD ; [.38E4.0020.0011.0002][.38E4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA ITERATION MARK>
-305F 309D ; [.38E4.0020.0011.0001][.38E4.0020.0010.0002] # <HIRAGANA LETTER TA, HIRAGANA ITERATION MARK>
-30BF 30FE ; [.38E4.0020.0011.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
-FF80 30FE ; [.38E4.0020.0011.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
-305F 309E ; [.38E4.0020.0011.0001][.38E4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, HIRAGANA VOICED ITERATION MARK>
-30C0 30FD ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002] # <KATAKANA LETTER DA, KATAKANA ITERATION MARK>
-30BF 3099 30FD ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF80 FF9E 30FD ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3060 309D ; [.38E4.0020.0011.0001][.0000.0037.0002][.38E4.0020.0010.0002] # <HIRAGANA LETTER DA, HIRAGANA ITERATION MARK>
-305F 3099 309D ; [.38E4.0020.0011.0001][.0000.0037.0002][.38E4.0020.0010.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C0 30FE ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DA, KATAKANA VOICED ITERATION MARK>
-30BF 3099 30FE ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF80 FF9E 30FE ; [.38E4.0020.0011.0002][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3060 309E ; [.38E4.0020.0011.0001][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DA, HIRAGANA VOICED ITERATION MARK>
-305F 3099 309E ; [.38E4.0020.0011.0001][.0000.0037.0002][.38E4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C1 30FD ; [.38E5.0020.0011.0002][.38E5.0020.0010.0002] # <KATAKANA LETTER TI, KATAKANA ITERATION MARK>
-FF81 30FD ; [.38E5.0020.0011.0002][.38E5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA ITERATION MARK>
-3061 309D ; [.38E5.0020.0011.0001][.38E5.0020.0010.0002] # <HIRAGANA LETTER TI, HIRAGANA ITERATION MARK>
-30C1 30FE ; [.38E5.0020.0011.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
-FF81 30FE ; [.38E5.0020.0011.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
-3061 309E ; [.38E5.0020.0011.0001][.38E5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, HIRAGANA VOICED ITERATION MARK>
-30C2 30FD ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002] # <KATAKANA LETTER DI, KATAKANA ITERATION MARK>
-30C1 3099 30FD ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF81 FF9E 30FD ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3062 309D ; [.38E5.0020.0011.0001][.0000.0037.0002][.38E5.0020.0010.0002] # <HIRAGANA LETTER DI, HIRAGANA ITERATION MARK>
-3061 3099 309D ; [.38E5.0020.0011.0001][.0000.0037.0002][.38E5.0020.0010.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C2 30FE ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DI, KATAKANA VOICED ITERATION MARK>
-30C1 3099 30FE ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF81 FF9E 30FE ; [.38E5.0020.0011.0002][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3062 309E ; [.38E5.0020.0011.0001][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DI, HIRAGANA VOICED ITERATION MARK>
-3061 3099 309E ; [.38E5.0020.0011.0001][.0000.0037.0002][.38E5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C3 30FD ; [.38E6.0020.000F.0002][.38E6.0020.0010.0002] # <KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
-FF6F 30FD ; [.38E6.0020.000F.0002][.38E6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
-3063 309D ; [.38E6.0020.000F.0001][.38E6.0020.0010.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA ITERATION MARK>
-30C3 30FE ; [.38E6.0020.000F.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
-FF6F 30FE ; [.38E6.0020.000F.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
-3063 309E ; [.38E6.0020.000F.0001][.38E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA VOICED ITERATION MARK>
-30C4 30FD ; [.38E6.0020.0011.0002][.38E6.0020.0010.0002] # <KATAKANA LETTER TU, KATAKANA ITERATION MARK>
-FF82 30FD ; [.38E6.0020.0011.0002][.38E6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA ITERATION MARK>
-3064 309D ; [.38E6.0020.0011.0001][.38E6.0020.0010.0002] # <HIRAGANA LETTER TU, HIRAGANA ITERATION MARK>
-30C4 30FE ; [.38E6.0020.0011.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
-FF82 30FE ; [.38E6.0020.0011.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
-3064 309E ; [.38E6.0020.0011.0001][.38E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, HIRAGANA VOICED ITERATION MARK>
-30C5 30FD ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002] # <KATAKANA LETTER DU, KATAKANA ITERATION MARK>
-30C4 3099 30FD ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF82 FF9E 30FD ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3065 309D ; [.38E6.0020.0011.0001][.0000.0037.0002][.38E6.0020.0010.0002] # <HIRAGANA LETTER DU, HIRAGANA ITERATION MARK>
-3064 3099 309D ; [.38E6.0020.0011.0001][.0000.0037.0002][.38E6.0020.0010.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C5 30FE ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DU, KATAKANA VOICED ITERATION MARK>
-30C4 3099 30FE ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF82 FF9E 30FE ; [.38E6.0020.0011.0002][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3065 309E ; [.38E6.0020.0011.0001][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DU, HIRAGANA VOICED ITERATION MARK>
-3064 3099 309E ; [.38E6.0020.0011.0001][.0000.0037.0002][.38E6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C6 30FD ; [.38E7.0020.0011.0002][.38E7.0020.0010.0002] # <KATAKANA LETTER TE, KATAKANA ITERATION MARK>
-FF83 30FD ; [.38E7.0020.0011.0002][.38E7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA ITERATION MARK>
-3066 309D ; [.38E7.0020.0011.0001][.38E7.0020.0010.0002] # <HIRAGANA LETTER TE, HIRAGANA ITERATION MARK>
-30C6 30FE ; [.38E7.0020.0011.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
-FF83 30FE ; [.38E7.0020.0011.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
-3066 309E ; [.38E7.0020.0011.0001][.38E7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, HIRAGANA VOICED ITERATION MARK>
-30C7 30FD ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002] # <KATAKANA LETTER DE, KATAKANA ITERATION MARK>
-30C6 3099 30FD ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF83 FF9E 30FD ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3067 309D ; [.38E7.0020.0011.0001][.0000.0037.0002][.38E7.0020.0010.0002] # <HIRAGANA LETTER DE, HIRAGANA ITERATION MARK>
-3066 3099 309D ; [.38E7.0020.0011.0001][.0000.0037.0002][.38E7.0020.0010.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C7 30FE ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DE, KATAKANA VOICED ITERATION MARK>
-30C6 3099 30FE ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF83 FF9E 30FE ; [.38E7.0020.0011.0002][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3067 309E ; [.38E7.0020.0011.0001][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DE, HIRAGANA VOICED ITERATION MARK>
-3066 3099 309E ; [.38E7.0020.0011.0001][.0000.0037.0002][.38E7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30C8 30FD ; [.38E8.0020.0011.0002][.38E8.0020.0010.0002] # <KATAKANA LETTER TO, KATAKANA ITERATION MARK>
-FF84 30FD ; [.38E8.0020.0011.0002][.38E8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA ITERATION MARK>
-3068 309D ; [.38E8.0020.0011.0001][.38E8.0020.0010.0002] # <HIRAGANA LETTER TO, HIRAGANA ITERATION MARK>
-30C8 30FE ; [.38E8.0020.0011.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
-FF84 30FE ; [.38E8.0020.0011.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
-3068 309E ; [.38E8.0020.0011.0001][.38E8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, HIRAGANA VOICED ITERATION MARK>
-30C9 30FD ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002] # <KATAKANA LETTER DO, KATAKANA ITERATION MARK>
-30C8 3099 30FD ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF84 FF9E 30FD ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3069 309D ; [.38E8.0020.0011.0001][.0000.0037.0002][.38E8.0020.0010.0002] # <HIRAGANA LETTER DO, HIRAGANA ITERATION MARK>
-3068 3099 309D ; [.38E8.0020.0011.0001][.0000.0037.0002][.38E8.0020.0010.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30C9 30FE ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DO, KATAKANA VOICED ITERATION MARK>
-30C8 3099 30FE ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF84 FF9E 30FE ; [.38E8.0020.0011.0002][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3069 309E ; [.38E8.0020.0011.0001][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DO, HIRAGANA VOICED ITERATION MARK>
-3068 3099 309E ; [.38E8.0020.0011.0001][.0000.0037.0002][.38E8.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30CA 30FD ; [.38E9.0020.0011.0002][.38E9.0020.0010.0002] # <KATAKANA LETTER NA, KATAKANA ITERATION MARK>
-FF85 30FD ; [.38E9.0020.0011.0002][.38E9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA ITERATION MARK>
-306A 309D ; [.38E9.0020.0011.0001][.38E9.0020.0010.0002] # <HIRAGANA LETTER NA, HIRAGANA ITERATION MARK>
-30CB 30FD ; [.38EA.0020.0011.0002][.38EA.0020.0010.0002] # <KATAKANA LETTER NI, KATAKANA ITERATION MARK>
-FF86 30FD ; [.38EA.0020.0011.0002][.38EA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA ITERATION MARK>
-306B 309D ; [.38EA.0020.0011.0001][.38EA.0020.0010.0002] # <HIRAGANA LETTER NI, HIRAGANA ITERATION MARK>
-30CC 30FD ; [.38EB.0020.0011.0002][.38EB.0020.0010.0002] # <KATAKANA LETTER NU, KATAKANA ITERATION MARK>
-FF87 30FD ; [.38EB.0020.0011.0002][.38EB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA ITERATION MARK>
-306C 309D ; [.38EB.0020.0011.0001][.38EB.0020.0010.0002] # <HIRAGANA LETTER NU, HIRAGANA ITERATION MARK>
-30CD 30FD ; [.38EC.0020.0011.0002][.38EC.0020.0010.0002] # <KATAKANA LETTER NE, KATAKANA ITERATION MARK>
-FF88 30FD ; [.38EC.0020.0011.0002][.38EC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA ITERATION MARK>
-306D 309D ; [.38EC.0020.0011.0001][.38EC.0020.0010.0002] # <HIRAGANA LETTER NE, HIRAGANA ITERATION MARK>
-30CE 30FD ; [.38ED.0020.0011.0002][.38ED.0020.0010.0002] # <KATAKANA LETTER NO, KATAKANA ITERATION MARK>
-FF89 30FD ; [.38ED.0020.0011.0002][.38ED.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA ITERATION MARK>
-306E 309D ; [.38ED.0020.0011.0001][.38ED.0020.0010.0002] # <HIRAGANA LETTER NO, HIRAGANA ITERATION MARK>
-30CF 30FD ; [.38EE.0020.0011.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER HA, KATAKANA ITERATION MARK>
-FF8A 30FD ; [.38EE.0020.0011.0002][.38EE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA ITERATION MARK>
-306F 309D ; [.38EE.0020.0011.0001][.38EE.0020.0010.0002] # <HIRAGANA LETTER HA, HIRAGANA ITERATION MARK>
-30CF 30FE ; [.38EE.0020.0011.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
-FF8A 30FE ; [.38EE.0020.0011.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
-306F 309E ; [.38EE.0020.0011.0001][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, HIRAGANA VOICED ITERATION MARK>
-30D0 30FD ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER BA, KATAKANA ITERATION MARK>
-30CF 3099 30FD ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8A FF9E 30FD ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3070 309D ; [.38EE.0020.0011.0001][.0000.0037.0002][.38EE.0020.0010.0002] # <HIRAGANA LETTER BA, HIRAGANA ITERATION MARK>
-306F 3099 309D ; [.38EE.0020.0011.0001][.0000.0037.0002][.38EE.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D0 30FE ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BA, KATAKANA VOICED ITERATION MARK>
-30CF 3099 30FE ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8A FF9E 30FE ; [.38EE.0020.0011.0002][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3070 309E ; [.38EE.0020.0011.0001][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BA, HIRAGANA VOICED ITERATION MARK>
-306F 3099 309E ; [.38EE.0020.0011.0001][.0000.0037.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D1 30FD ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER PA, KATAKANA ITERATION MARK>
-30CF 309A 30FD ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8A FF9F 30FD ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3071 309D ; [.38EE.0020.0011.0001][.0000.0038.0002][.38EE.0020.0010.0002] # <HIRAGANA LETTER PA, HIRAGANA ITERATION MARK>
-306F 309A 309D ; [.38EE.0020.0011.0001][.0000.0038.0002][.38EE.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D1 30FE ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PA, KATAKANA VOICED ITERATION MARK>
-30CF 309A 30FE ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8A FF9F 30FE ; [.38EE.0020.0011.0002][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3071 309E ; [.38EE.0020.0011.0001][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PA, HIRAGANA VOICED ITERATION MARK>
-306F 309A 309E ; [.38EE.0020.0011.0001][.0000.0038.0002][.38EE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D2 30FD ; [.38EF.0020.0011.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER HI, KATAKANA ITERATION MARK>
-FF8B 30FD ; [.38EF.0020.0011.0002][.38EF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA ITERATION MARK>
-3072 309D ; [.38EF.0020.0011.0001][.38EF.0020.0010.0002] # <HIRAGANA LETTER HI, HIRAGANA ITERATION MARK>
-30D2 30FE ; [.38EF.0020.0011.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
-FF8B 30FE ; [.38EF.0020.0011.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
-3072 309E ; [.38EF.0020.0011.0001][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, HIRAGANA VOICED ITERATION MARK>
-30D3 30FD ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER BI, KATAKANA ITERATION MARK>
-30D2 3099 30FD ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8B FF9E 30FD ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3073 309D ; [.38EF.0020.0011.0001][.0000.0037.0002][.38EF.0020.0010.0002] # <HIRAGANA LETTER BI, HIRAGANA ITERATION MARK>
-3072 3099 309D ; [.38EF.0020.0011.0001][.0000.0037.0002][.38EF.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D3 30FE ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BI, KATAKANA VOICED ITERATION MARK>
-30D2 3099 30FE ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8B FF9E 30FE ; [.38EF.0020.0011.0002][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3073 309E ; [.38EF.0020.0011.0001][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BI, HIRAGANA VOICED ITERATION MARK>
-3072 3099 309E ; [.38EF.0020.0011.0001][.0000.0037.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D4 30FD ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER PI, KATAKANA ITERATION MARK>
-30D2 309A 30FD ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8B FF9F 30FD ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3074 309D ; [.38EF.0020.0011.0001][.0000.0038.0002][.38EF.0020.0010.0002] # <HIRAGANA LETTER PI, HIRAGANA ITERATION MARK>
-3072 309A 309D ; [.38EF.0020.0011.0001][.0000.0038.0002][.38EF.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D4 30FE ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PI, KATAKANA VOICED ITERATION MARK>
-30D2 309A 30FE ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8B FF9F 30FE ; [.38EF.0020.0011.0002][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3074 309E ; [.38EF.0020.0011.0001][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PI, HIRAGANA VOICED ITERATION MARK>
-3072 309A 309E ; [.38EF.0020.0011.0001][.0000.0038.0002][.38EF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D5 30FD ; [.38F0.0020.0011.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER HU, KATAKANA ITERATION MARK>
-FF8C 30FD ; [.38F0.0020.0011.0002][.38F0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA ITERATION MARK>
-3075 309D ; [.38F0.0020.0011.0001][.38F0.0020.0010.0002] # <HIRAGANA LETTER HU, HIRAGANA ITERATION MARK>
-30D5 30FE ; [.38F0.0020.0011.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
-FF8C 30FE ; [.38F0.0020.0011.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
-3075 309E ; [.38F0.0020.0011.0001][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, HIRAGANA VOICED ITERATION MARK>
-30D6 30FD ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER BU, KATAKANA ITERATION MARK>
-30D5 3099 30FD ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8C FF9E 30FD ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3076 309D ; [.38F0.0020.0011.0001][.0000.0037.0002][.38F0.0020.0010.0002] # <HIRAGANA LETTER BU, HIRAGANA ITERATION MARK>
-3075 3099 309D ; [.38F0.0020.0011.0001][.0000.0037.0002][.38F0.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D6 30FE ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BU, KATAKANA VOICED ITERATION MARK>
-30D5 3099 30FE ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8C FF9E 30FE ; [.38F0.0020.0011.0002][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3076 309E ; [.38F0.0020.0011.0001][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BU, HIRAGANA VOICED ITERATION MARK>
-3075 3099 309E ; [.38F0.0020.0011.0001][.0000.0037.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D7 30FD ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER PU, KATAKANA ITERATION MARK>
-30D5 309A 30FD ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8C FF9F 30FD ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3077 309D ; [.38F0.0020.0011.0001][.0000.0038.0002][.38F0.0020.0010.0002] # <HIRAGANA LETTER PU, HIRAGANA ITERATION MARK>
-3075 309A 309D ; [.38F0.0020.0011.0001][.0000.0038.0002][.38F0.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D7 30FE ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PU, KATAKANA VOICED ITERATION MARK>
-30D5 309A 30FE ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8C FF9F 30FE ; [.38F0.0020.0011.0002][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3077 309E ; [.38F0.0020.0011.0001][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PU, HIRAGANA VOICED ITERATION MARK>
-3075 309A 309E ; [.38F0.0020.0011.0001][.0000.0038.0002][.38F0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30D8 30FD ; [.38F1.0020.0011.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER HE, KATAKANA ITERATION MARK>
-FF8D 30FD ; [.38F1.0020.0011.0002][.38F1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA ITERATION MARK>
-3078 309D ; [.38F1.0020.0011.0001][.38F1.0020.0010.0002] # <HIRAGANA LETTER HE, HIRAGANA ITERATION MARK>
-30D8 30FE ; [.38F1.0020.0011.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
-FF8D 30FE ; [.38F1.0020.0011.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
-3078 309E ; [.38F1.0020.0011.0001][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, HIRAGANA VOICED ITERATION MARK>
-30D9 30FD ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER BE, KATAKANA ITERATION MARK>
-30D8 3099 30FD ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8D FF9E 30FD ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3079 309D ; [.38F1.0020.0011.0001][.0000.0037.0002][.38F1.0020.0010.0002] # <HIRAGANA LETTER BE, HIRAGANA ITERATION MARK>
-3078 3099 309D ; [.38F1.0020.0011.0001][.0000.0037.0002][.38F1.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30D9 30FE ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BE, KATAKANA VOICED ITERATION MARK>
-30D8 3099 30FE ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8D FF9E 30FE ; [.38F1.0020.0011.0002][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3079 309E ; [.38F1.0020.0011.0001][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BE, HIRAGANA VOICED ITERATION MARK>
-3078 3099 309E ; [.38F1.0020.0011.0001][.0000.0037.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DA 30FD ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER PE, KATAKANA ITERATION MARK>
-30D8 309A 30FD ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8D FF9F 30FD ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307A 309D ; [.38F1.0020.0011.0001][.0000.0038.0002][.38F1.0020.0010.0002] # <HIRAGANA LETTER PE, HIRAGANA ITERATION MARK>
-3078 309A 309D ; [.38F1.0020.0011.0001][.0000.0038.0002][.38F1.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DA 30FE ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PE, KATAKANA VOICED ITERATION MARK>
-30D8 309A 30FE ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8D FF9F 30FE ; [.38F1.0020.0011.0002][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307A 309E ; [.38F1.0020.0011.0001][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PE, HIRAGANA VOICED ITERATION MARK>
-3078 309A 309E ; [.38F1.0020.0011.0001][.0000.0038.0002][.38F1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DB 30FD ; [.38F2.0020.0011.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER HO, KATAKANA ITERATION MARK>
-FF8E 30FD ; [.38F2.0020.0011.0002][.38F2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA ITERATION MARK>
-307B 309D ; [.38F2.0020.0011.0001][.38F2.0020.0010.0002] # <HIRAGANA LETTER HO, HIRAGANA ITERATION MARK>
-30DB 30FE ; [.38F2.0020.0011.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
-FF8E 30FE ; [.38F2.0020.0011.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
-307B 309E ; [.38F2.0020.0011.0001][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, HIRAGANA VOICED ITERATION MARK>
-30DC 30FD ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER BO, KATAKANA ITERATION MARK>
-30DB 3099 30FD ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8E FF9E 30FD ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307C 309D ; [.38F2.0020.0011.0001][.0000.0037.0002][.38F2.0020.0010.0002] # <HIRAGANA LETTER BO, HIRAGANA ITERATION MARK>
-307B 3099 309D ; [.38F2.0020.0011.0001][.0000.0037.0002][.38F2.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DC 30FE ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BO, KATAKANA VOICED ITERATION MARK>
-30DB 3099 30FE ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8E FF9E 30FE ; [.38F2.0020.0011.0002][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307C 309E ; [.38F2.0020.0011.0001][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BO, HIRAGANA VOICED ITERATION MARK>
-307B 3099 309E ; [.38F2.0020.0011.0001][.0000.0037.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DD 30FD ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER PO, KATAKANA ITERATION MARK>
-30DB 309A 30FD ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF8E FF9F 30FD ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
-307D 309D ; [.38F2.0020.0011.0001][.0000.0038.0002][.38F2.0020.0010.0002] # <HIRAGANA LETTER PO, HIRAGANA ITERATION MARK>
-307B 309A 309D ; [.38F2.0020.0011.0001][.0000.0038.0002][.38F2.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30DD 30FE ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PO, KATAKANA VOICED ITERATION MARK>
-30DB 309A 30FE ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF8E FF9F 30FE ; [.38F2.0020.0011.0002][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-307D 309E ; [.38F2.0020.0011.0001][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PO, HIRAGANA VOICED ITERATION MARK>
-307B 309A 309E ; [.38F2.0020.0011.0001][.0000.0038.0002][.38F2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30DE 30FD ; [.38F3.0020.0011.0002][.38F3.0020.0010.0002] # <KATAKANA LETTER MA, KATAKANA ITERATION MARK>
-FF8F 30FD ; [.38F3.0020.0011.0002][.38F3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA ITERATION MARK>
-307E 309D ; [.38F3.0020.0011.0001][.38F3.0020.0010.0002] # <HIRAGANA LETTER MA, HIRAGANA ITERATION MARK>
-30DF 30FD ; [.38F4.0020.0011.0002][.38F4.0020.0010.0002] # <KATAKANA LETTER MI, KATAKANA ITERATION MARK>
-FF90 30FD ; [.38F4.0020.0011.0002][.38F4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA ITERATION MARK>
-307F 309D ; [.38F4.0020.0011.0001][.38F4.0020.0010.0002] # <HIRAGANA LETTER MI, HIRAGANA ITERATION MARK>
-30E0 30FD ; [.38F5.0020.0011.0002][.38F5.0020.0010.0002] # <KATAKANA LETTER MU, KATAKANA ITERATION MARK>
-FF91 30FD ; [.38F5.0020.0011.0002][.38F5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA ITERATION MARK>
-3080 309D ; [.38F5.0020.0011.0001][.38F5.0020.0010.0002] # <HIRAGANA LETTER MU, HIRAGANA ITERATION MARK>
-30E1 30FD ; [.38F6.0020.0011.0002][.38F6.0020.0010.0002] # <KATAKANA LETTER ME, KATAKANA ITERATION MARK>
-FF92 30FD ; [.38F6.0020.0011.0002][.38F6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA ITERATION MARK>
-3081 309D ; [.38F6.0020.0011.0001][.38F6.0020.0010.0002] # <HIRAGANA LETTER ME, HIRAGANA ITERATION MARK>
-30E2 30FD ; [.38F7.0020.0011.0002][.38F7.0020.0010.0002] # <KATAKANA LETTER MO, KATAKANA ITERATION MARK>
-FF93 30FD ; [.38F7.0020.0011.0002][.38F7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA ITERATION MARK>
-3082 309D ; [.38F7.0020.0011.0001][.38F7.0020.0010.0002] # <HIRAGANA LETTER MO, HIRAGANA ITERATION MARK>
-30E3 30FD ; [.38F8.0020.000F.0002][.38F8.0020.0010.0002] # <KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
-FF6C 30FD ; [.38F8.0020.000F.0002][.38F8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
-3083 309D ; [.38F8.0020.000F.0001][.38F8.0020.0010.0002] # <HIRAGANA LETTER SMALL YA, HIRAGANA ITERATION MARK>
-30E4 30FD ; [.38F8.0020.0011.0002][.38F8.0020.0010.0002] # <KATAKANA LETTER YA, KATAKANA ITERATION MARK>
-FF94 30FD ; [.38F8.0020.0011.0002][.38F8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA ITERATION MARK>
-3084 309D ; [.38F8.0020.0011.0001][.38F8.0020.0010.0002] # <HIRAGANA LETTER YA, HIRAGANA ITERATION MARK>
-30E5 30FD ; [.38F9.0020.000F.0002][.38F9.0020.0010.0002] # <KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
-FF6D 30FD ; [.38F9.0020.000F.0002][.38F9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
-3085 309D ; [.38F9.0020.000F.0001][.38F9.0020.0010.0002] # <HIRAGANA LETTER SMALL YU, HIRAGANA ITERATION MARK>
-30E6 30FD ; [.38F9.0020.0011.0002][.38F9.0020.0010.0002] # <KATAKANA LETTER YU, KATAKANA ITERATION MARK>
-FF95 30FD ; [.38F9.0020.0011.0002][.38F9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA ITERATION MARK>
-3086 309D ; [.38F9.0020.0011.0001][.38F9.0020.0010.0002] # <HIRAGANA LETTER YU, HIRAGANA ITERATION MARK>
-30E7 30FD ; [.38FB.0020.000F.0002][.38FB.0020.0010.0002] # <KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
-FF6E 30FD ; [.38FB.0020.000F.0002][.38FB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
-3087 309D ; [.38FB.0020.000F.0001][.38FB.0020.0010.0002] # <HIRAGANA LETTER SMALL YO, HIRAGANA ITERATION MARK>
-30E8 30FD ; [.38FB.0020.0011.0002][.38FB.0020.0010.0002] # <KATAKANA LETTER YO, KATAKANA ITERATION MARK>
-FF96 30FD ; [.38FB.0020.0011.0002][.38FB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA ITERATION MARK>
-3088 309D ; [.38FB.0020.0011.0001][.38FB.0020.0010.0002] # <HIRAGANA LETTER YO, HIRAGANA ITERATION MARK>
-30E9 30FD ; [.38FC.0020.0011.0002][.38FC.0020.0010.0002] # <KATAKANA LETTER RA, KATAKANA ITERATION MARK>
-FF97 30FD ; [.38FC.0020.0011.0002][.38FC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA ITERATION MARK>
-3089 309D ; [.38FC.0020.0011.0001][.38FC.0020.0010.0002] # <HIRAGANA LETTER RA, HIRAGANA ITERATION MARK>
-30EA 30FD ; [.38FD.0020.0011.0002][.38FD.0020.0010.0002] # <KATAKANA LETTER RI, KATAKANA ITERATION MARK>
-FF98 30FD ; [.38FD.0020.0011.0002][.38FD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA ITERATION MARK>
-308A 309D ; [.38FD.0020.0011.0001][.38FD.0020.0010.0002] # <HIRAGANA LETTER RI, HIRAGANA ITERATION MARK>
-30EB 30FD ; [.38FE.0020.0011.0002][.38FE.0020.0010.0002] # <KATAKANA LETTER RU, KATAKANA ITERATION MARK>
-FF99 30FD ; [.38FE.0020.0011.0002][.38FE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA ITERATION MARK>
-308B 309D ; [.38FE.0020.0011.0001][.38FE.0020.0010.0002] # <HIRAGANA LETTER RU, HIRAGANA ITERATION MARK>
-30EC 30FD ; [.38FF.0020.0011.0002][.38FF.0020.0010.0002] # <KATAKANA LETTER RE, KATAKANA ITERATION MARK>
-FF9A 30FD ; [.38FF.0020.0011.0002][.38FF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA ITERATION MARK>
-308C 309D ; [.38FF.0020.0011.0001][.38FF.0020.0010.0002] # <HIRAGANA LETTER RE, HIRAGANA ITERATION MARK>
-30ED 30FD ; [.3900.0020.0011.0002][.3900.0020.0010.0002] # <KATAKANA LETTER RO, KATAKANA ITERATION MARK>
-FF9B 30FD ; [.3900.0020.0011.0002][.3900.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA ITERATION MARK>
-308D 309D ; [.3900.0020.0011.0001][.3900.0020.0010.0002] # <HIRAGANA LETTER RO, HIRAGANA ITERATION MARK>
-30EE 30FD ; [.3901.0020.000F.0002][.3901.0020.0010.0002] # <KATAKANA LETTER SMALL WA, KATAKANA ITERATION MARK>
-308E 309D ; [.3901.0020.000F.0001][.3901.0020.0010.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA ITERATION MARK>
-30EE 30FE ; [.3901.0020.000F.0002][.3901.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL WA, KATAKANA VOICED ITERATION MARK>
-308E 309E ; [.3901.0020.000F.0001][.3901.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA VOICED ITERATION MARK>
-30EF 30FD ; [.3901.0020.0011.0002][.3901.0020.0010.0002] # <KATAKANA LETTER WA, KATAKANA ITERATION MARK>
-FF9C 30FD ; [.3901.0020.0011.0002][.3901.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA ITERATION MARK>
-308F 309D ; [.3901.0020.0011.0001][.3901.0020.0010.0002] # <HIRAGANA LETTER WA, HIRAGANA ITERATION MARK>
-30EF 30FE ; [.3901.0020.0011.0002][.3901.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
-FF9C 30FE ; [.3901.0020.0011.0002][.3901.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
-308F 309E ; [.3901.0020.0011.0001][.3901.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WA, HIRAGANA VOICED ITERATION MARK>
-30F0 30FD ; [.3902.0020.0011.0002][.3902.0020.0010.0002] # <KATAKANA LETTER WI, KATAKANA ITERATION MARK>
-3090 309D ; [.3902.0020.0011.0001][.3902.0020.0010.0002] # <HIRAGANA LETTER WI, HIRAGANA ITERATION MARK>
-30F0 30FE ; [.3902.0020.0011.0002][.3902.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, KATAKANA VOICED ITERATION MARK>
-3090 309E ; [.3902.0020.0011.0001][.3902.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WI, HIRAGANA VOICED ITERATION MARK>
-30F1 30FD ; [.3903.0020.0011.0002][.3903.0020.0010.0002] # <KATAKANA LETTER WE, KATAKANA ITERATION MARK>
-3091 309D ; [.3903.0020.0011.0001][.3903.0020.0010.0002] # <HIRAGANA LETTER WE, HIRAGANA ITERATION MARK>
-30F1 30FE ; [.3903.0020.0011.0002][.3903.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, KATAKANA VOICED ITERATION MARK>
-3091 309E ; [.3903.0020.0011.0001][.3903.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WE, HIRAGANA VOICED ITERATION MARK>
-30F2 30FD ; [.3904.0020.0011.0002][.3904.0020.0010.0002] # <KATAKANA LETTER WO, KATAKANA ITERATION MARK>
-FF66 30FD ; [.3904.0020.0011.0002][.3904.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA ITERATION MARK>
-3092 309D ; [.3904.0020.0011.0001][.3904.0020.0010.0002] # <HIRAGANA LETTER WO, HIRAGANA ITERATION MARK>
-30F2 30FE ; [.3904.0020.0011.0002][.3904.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
-FF66 30FE ; [.3904.0020.0011.0002][.3904.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
-3092 309E ; [.3904.0020.0011.0001][.3904.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WO, HIRAGANA VOICED ITERATION MARK>
-30F3 30FD ; [.3905.0020.0011.0002][.3905.0020.0010.0002] # <KATAKANA LETTER N, KATAKANA ITERATION MARK>
-FF9D 30FD ; [.3905.0020.0011.0002][.3905.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER N, KATAKANA ITERATION MARK>
-3093 309D ; [.3905.0020.0011.0001][.3905.0020.0010.0002] # <HIRAGANA LETTER N, HIRAGANA ITERATION MARK>
-30F4 30FD ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002] # <KATAKANA LETTER VU, KATAKANA ITERATION MARK>
-30A6 3099 30FD ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF73 FF9E 30FD ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-3094 309D ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0010.0002] # <HIRAGANA LETTER VU, HIRAGANA ITERATION MARK>
-3046 3099 309D ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0010.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
-30F4 30FE ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VU, KATAKANA VOICED ITERATION MARK>
-30A6 3099 30FE ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF73 FF9E 30FE ; [.38D6.0020.0011.0002][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-3094 309E ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER VU, HIRAGANA VOICED ITERATION MARK>
-3046 3099 309E ; [.38D6.0020.0011.0001][.0000.0037.0002][.38D6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
-30F5 30FD ; [.38DA.0020.000F.0002][.38DA.0020.0010.0002] # <KATAKANA LETTER SMALL KA, KATAKANA ITERATION MARK>
-3095 309D ; [.38DA.0020.000F.0001][.38DA.0020.0010.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA ITERATION MARK>
-30F5 30FE ; [.38DA.0020.000F.0002][.38DA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KA, KATAKANA VOICED ITERATION MARK>
-3095 309E ; [.38DA.0020.000F.0001][.38DA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA VOICED ITERATION MARK>
-30F6 30FD ; [.38DD.0020.000F.0002][.38DD.0020.0010.0002] # <KATAKANA LETTER SMALL KE, KATAKANA ITERATION MARK>
-3096 309D ; [.38DD.0020.000F.0001][.38DD.0020.0010.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA ITERATION MARK>
-30F6 30FE ; [.38DD.0020.000F.0002][.38DD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KE, KATAKANA VOICED ITERATION MARK>
-3096 309E ; [.38DD.0020.000F.0001][.38DD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA VOICED ITERATION MARK>
-30F7 30FD ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002] # <KATAKANA LETTER VA, KATAKANA ITERATION MARK>
-30EF 3099 30FD ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF9C FF9E 30FD ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F7 30FE ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VA, KATAKANA VOICED ITERATION MARK>
-30EF 3099 30FE ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF9C FF9E 30FE ; [.3901.0020.0011.0002][.0000.0037.0002][.3901.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30F8 30FD ; [.3902.0020.0011.0002][.0000.0037.0002][.3902.0020.0010.0002] # <KATAKANA LETTER VI, KATAKANA ITERATION MARK>
-30F0 3099 30FD ; [.3902.0020.0011.0002][.0000.0037.0002][.3902.0020.0010.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F8 30FE ; [.3902.0020.0011.0002][.0000.0037.0002][.3902.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VI, KATAKANA VOICED ITERATION MARK>
-30F0 3099 30FE ; [.3902.0020.0011.0002][.0000.0037.0002][.3902.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30F9 30FD ; [.3903.0020.0011.0002][.0000.0037.0002][.3903.0020.0010.0002] # <KATAKANA LETTER VE, KATAKANA ITERATION MARK>
-30F1 3099 30FD ; [.3903.0020.0011.0002][.0000.0037.0002][.3903.0020.0010.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30F9 30FE ; [.3903.0020.0011.0002][.0000.0037.0002][.3903.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VE, KATAKANA VOICED ITERATION MARK>
-30F1 3099 30FE ; [.3903.0020.0011.0002][.0000.0037.0002][.3903.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-30FA 30FD ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002] # <KATAKANA LETTER VO, KATAKANA ITERATION MARK>
-30F2 3099 30FD ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-FF66 FF9E 30FD ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
-30FA 30FE ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VO, KATAKANA VOICED ITERATION MARK>
-30F2 3099 30FE ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-FF66 FF9E 30FE ; [.3904.0020.0011.0002][.0000.0037.0002][.3904.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
-31F0 30FD ; [.38DC.0020.000F][.38DC.0020.0010.0002] # <KATAKANA LETTER SMALL KU, KATAKANA ITERATION MARK>
-31F0 30FE ; [.38DC.0020.000F][.38DC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KU, KATAKANA VOICED ITERATION MARK>
-31F1 30FD ; [.38E0.0020.000F][.38E0.0020.0010.0002] # <KATAKANA LETTER SMALL SI, KATAKANA ITERATION MARK>
-31F1 30FE ; [.38E0.0020.000F][.38E0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SI, KATAKANA VOICED ITERATION MARK>
-31F2 30FD ; [.38E1.0020.000F][.38E1.0020.0010.0002] # <KATAKANA LETTER SMALL SU, KATAKANA ITERATION MARK>
-31F2 30FE ; [.38E1.0020.000F][.38E1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SU, KATAKANA VOICED ITERATION MARK>
-31F3 30FD ; [.38E8.0020.000F][.38E8.0020.0010.0002] # <KATAKANA LETTER SMALL TO, KATAKANA ITERATION MARK>
-31F3 30FE ; [.38E8.0020.000F][.38E8.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TO, KATAKANA VOICED ITERATION MARK>
-31F4 30FD ; [.38EB.0020.000F][.38EB.0020.0010.0002] # <KATAKANA LETTER SMALL NU, KATAKANA ITERATION MARK>
-31F5 30FD ; [.38EE.0020.000F][.38EE.0020.0010.0002] # <KATAKANA LETTER SMALL HA, KATAKANA ITERATION MARK>
-31F5 30FE ; [.38EE.0020.000F][.38EE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HA, KATAKANA VOICED ITERATION MARK>
-31F6 30FD ; [.38EF.0020.000F][.38EF.0020.0010.0002] # <KATAKANA LETTER SMALL HI, KATAKANA ITERATION MARK>
-31F6 30FE ; [.38EF.0020.000F][.38EF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HI, KATAKANA VOICED ITERATION MARK>
-31F7 30FD ; [.38F0.0020.000F][.38F0.0020.0010.0002] # <KATAKANA LETTER SMALL HU, KATAKANA ITERATION MARK>
-31F7 30FE ; [.38F0.0020.000F][.38F0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HU, KATAKANA VOICED ITERATION MARK>
-31F8 30FD ; [.38F1.0020.000F][.38F1.0020.0010.0002] # <KATAKANA LETTER SMALL HE, KATAKANA ITERATION MARK>
-31F8 30FE ; [.38F1.0020.000F][.38F1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HE, KATAKANA VOICED ITERATION MARK>
-31F9 30FD ; [.38F2.0020.000F][.38F2.0020.0010.0002] # <KATAKANA LETTER SMALL HO, KATAKANA ITERATION MARK>
-31F9 30FE ; [.38F2.0020.000F][.38F2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HO, KATAKANA VOICED ITERATION MARK>
-31FA 30FD ; [.38F5.0020.000F][.38F5.0020.0010.0002] # <KATAKANA LETTER SMALL MU, KATAKANA ITERATION MARK>
-31FB 30FD ; [.38FC.0020.000F][.38FC.0020.0010.0002] # <KATAKANA LETTER SMALL RA, KATAKANA ITERATION MARK>
-31FC 30FD ; [.38FD.0020.000F][.38FD.0020.0010.0002] # <KATAKANA LETTER SMALL RI, KATAKANA ITERATION MARK>
-31FD 30FD ; [.38FE.0020.000F][.38FE.0020.0010.0002] # <KATAKANA LETTER SMALL RU, KATAKANA ITERATION MARK>
-31FE 30FD ; [.38FF.0020.000F][.38FF.0020.0010.0002] # <KATAKANA LETTER SMALL RE, KATAKANA ITERATION MARK>
-31FF 30FD ; [.3900.0020.000F][.3900.0020.0010.0002] # <KATAKANA LETTER SMALL RO, KATAKANA ITERATION MARK>
+FFE4 ; [*05FF.0020.0002] # FULLWIDTH BROKEN BAR
+FFE5 ; [.1B8F.0020.0002] # FULLWIDTH YEN SIGN
+FFE6 ; [.1BA2.0020.0002] # FULLWIDTH WON SIGN
+FFE8 ; [*07F6.0020.0002] # HALFWIDTH FORMS LIGHT VERTICAL
+FFE9 ; [*057C.0020.0002] # HALFWIDTH LEFTWARDS ARROW
+FFEA ; [*057E.0020.0002] # HALFWIDTH UPWARDS ARROW
+FFEB ; [*057D.0020.0002] # HALFWIDTH RIGHTWARDS ARROW
+FFEC ; [*057F.0020.0002] # HALFWIDTH DOWNWARDS ARROW
+FFED ; [*0894.0020.0002] # HALFWIDTH BLACK SQUARE
+FFEE ; [*08BF.0020.0002] # HALFWIDTH WHITE CIRCLE
+30A1 30FC ; [.3BC3.0020.000F.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF67 30FC ; [.3BC3.0020.000F.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF67 FF70 ; [.3BC3.0020.000F.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3041 30FC ; [.3BC3.0020.000F.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER SMALL A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A2 30FC ; [.3BC3.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF71 30FC ; [.3BC3.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF71 FF70 ; [.3BC3.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER A, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3042 30FC ; [.3BC3.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER A, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AB 30FC ; [.3BC9.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF76 30FC ; [.3BC9.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF76 FF70 ; [.3BC9.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304B 30FC ; [.3BC9.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AC 30FC ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AB 3099 30FC ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF76 FF9E 30FC ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF76 FF9E FF70 ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304C 30FC ; [.3BC9.0020.0011.0001][.0000.0037.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER GA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304B 3099 30FC ; [.3BC9.0020.0011.0001][.0000.0037.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B5 30FC ; [.3BCE.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7B 30FC ; [.3BCE.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7B FF70 ; [.3BCE.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3055 30FC ; [.3BCE.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER SA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B6 30FC ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B5 3099 30FC ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7B FF9E 30FC ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7B FF9E FF70 ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3056 30FC ; [.3BCE.0020.0011.0001][.0000.0037.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER ZA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3055 3099 30FC ; [.3BCE.0020.0011.0001][.0000.0037.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BF 30FC ; [.3BD3.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF80 30FC ; [.3BD3.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF80 FF70 ; [.3BD3.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305F 30FC ; [.3BD3.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER TA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C0 30FC ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BF 3099 30FC ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF80 FF9E 30FC ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF80 FF9E FF70 ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3060 30FC ; [.3BD3.0020.0011.0001][.0000.0037.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER DA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305F 3099 30FC ; [.3BD3.0020.0011.0001][.0000.0037.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CA 30FC ; [.3BD8.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF85 30FC ; [.3BD8.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF85 FF70 ; [.3BD8.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306A 30FC ; [.3BD8.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER NA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CF 30FC ; [.3BDD.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A 30FC ; [.3BDD.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF70 ; [.3BDD.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306F 30FC ; [.3BDD.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D0 30FC ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CF 3099 30FC ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF9E 30FC ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF9E FF70 ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3070 30FC ; [.3BDD.0020.0011.0001][.0000.0037.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER BA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306F 3099 30FC ; [.3BDD.0020.0011.0001][.0000.0037.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D1 30FC ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CF 309A 30FC ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF9F 30FC ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8A FF9F FF70 ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3071 30FC ; [.3BDD.0020.0011.0001][.0000.0038.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER PA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306F 309A 30FC ; [.3BDD.0020.0011.0001][.0000.0038.0002][.3BC3.0020.0007.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DE 30FC ; [.3BE2.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8F 30FC ; [.3BE2.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8F FF70 ; [.3BE2.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307E 30FC ; [.3BE2.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER MA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E3 30FC ; [.3BE7.0020.000F.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6C 30FC ; [.3BE7.0020.000F.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6C FF70 ; [.3BE7.0020.000F.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3083 30FC ; [.3BE7.0020.000F.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER SMALL YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E4 30FC ; [.3BE7.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF94 30FC ; [.3BE7.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF94 FF70 ; [.3BE7.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3084 30FC ; [.3BE7.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER YA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E9 30FC ; [.3BEB.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF97 30FC ; [.3BEB.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF97 FF70 ; [.3BEB.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3089 30FC ; [.3BEB.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EE 30FC ; [.3BF0.0020.000F.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308E 30FC ; [.3BF0.0020.000F.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER SMALL WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EF 30FC ; [.3BF0.0020.0011.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9C 30FC ; [.3BF0.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9C FF70 ; [.3BF0.0020.0011.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308F 30FC ; [.3BF0.0020.0011.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER WA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F7 30FC ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER VA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EF 3099 30FC ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9C FF9E 30FC ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9C FF9E FF70 ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BC3.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F5 30FC ; [.3BC9.0020.000F.0002][.3BC3.0020.0007.0002] # <KATAKANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3095 30FC ; [.3BC9.0020.000F.0001][.3BC3.0020.0007.0002] # <HIRAGANA LETTER SMALL KA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F5 30FC ; [.3BDD.0020.000F][.3BC3.0020.0007.0002] # <KATAKANA LETTER SMALL HA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FB 30FC ; [.3BEB.0020.000F][.3BC3.0020.0007.0002] # <KATAKANA LETTER SMALL RA, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A3 30FC ; [.3BC4.0020.000F.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF68 30FC ; [.3BC4.0020.000F.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF68 FF70 ; [.3BC4.0020.000F.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3043 30FC ; [.3BC4.0020.000F.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER SMALL I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A4 30FC ; [.3BC4.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF72 30FC ; [.3BC4.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF72 FF70 ; [.3BC4.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER I, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3044 30FC ; [.3BC4.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER I, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AD 30FC ; [.3BCA.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF77 30FC ; [.3BCA.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF77 FF70 ; [.3BCA.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304D 30FC ; [.3BCA.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER KI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AE 30FC ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AD 3099 30FC ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF77 FF9E 30FC ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF77 FF9E FF70 ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304E 30FC ; [.3BCA.0020.0011.0001][.0000.0037.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER GI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304D 3099 30FC ; [.3BCA.0020.0011.0001][.0000.0037.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B7 30FC ; [.3BCF.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7C 30FC ; [.3BCF.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7C FF70 ; [.3BCF.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3057 30FC ; [.3BCF.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B8 30FC ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B7 3099 30FC ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7C FF9E 30FC ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7C FF9E FF70 ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3058 30FC ; [.3BCF.0020.0011.0001][.0000.0037.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER ZI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3057 3099 30FC ; [.3BCF.0020.0011.0001][.0000.0037.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C1 30FC ; [.3BD4.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF81 30FC ; [.3BD4.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF81 FF70 ; [.3BD4.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3061 30FC ; [.3BD4.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER TI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C2 30FC ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C1 3099 30FC ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF81 FF9E 30FC ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF81 FF9E FF70 ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3062 30FC ; [.3BD4.0020.0011.0001][.0000.0037.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER DI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3061 3099 30FC ; [.3BD4.0020.0011.0001][.0000.0037.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CB 30FC ; [.3BD9.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF86 30FC ; [.3BD9.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF86 FF70 ; [.3BD9.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306B 30FC ; [.3BD9.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER NI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D2 30FC ; [.3BDE.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B 30FC ; [.3BDE.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF70 ; [.3BDE.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3072 30FC ; [.3BDE.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D3 30FC ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D2 3099 30FC ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF9E 30FC ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF9E FF70 ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3073 30FC ; [.3BDE.0020.0011.0001][.0000.0037.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER BI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3072 3099 30FC ; [.3BDE.0020.0011.0001][.0000.0037.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D4 30FC ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D2 309A 30FC ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF9F 30FC ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8B FF9F FF70 ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3074 30FC ; [.3BDE.0020.0011.0001][.0000.0038.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER PI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3072 309A 30FC ; [.3BDE.0020.0011.0001][.0000.0038.0002][.3BC4.0020.0007.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DF 30FC ; [.3BE3.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF90 30FC ; [.3BE3.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF90 FF70 ; [.3BE3.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307F 30FC ; [.3BE3.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER MI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EA 30FC ; [.3BEC.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF98 30FC ; [.3BEC.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF98 FF70 ; [.3BEC.0020.0011.0002][.3BC4.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RI, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308A 30FC ; [.3BEC.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F0 30FC ; [.3BF1.0020.0011.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3090 30FC ; [.3BF1.0020.0011.0001][.3BC4.0020.0007.0002] # <HIRAGANA LETTER WI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F8 30FC ; [.3BF1.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER VI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F0 3099 30FC ; [.3BF1.0020.0011.0002][.0000.0037.0002][.3BC4.0020.0007.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F1 30FC ; [.3BCF.0020.000F][.3BC4.0020.0007.0002] # <KATAKANA LETTER SMALL SI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F6 30FC ; [.3BDE.0020.000F][.3BC4.0020.0007.0002] # <KATAKANA LETTER SMALL HI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FC 30FC ; [.3BEC.0020.000F][.3BC4.0020.0007.0002] # <KATAKANA LETTER SMALL RI, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A5 30FC ; [.3BC5.0020.000F.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF69 30FC ; [.3BC5.0020.000F.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF69 FF70 ; [.3BC5.0020.000F.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3045 30FC ; [.3BC5.0020.000F.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER SMALL U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A6 30FC ; [.3BC5.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF73 30FC ; [.3BC5.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF73 FF70 ; [.3BC5.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3046 30FC ; [.3BC5.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER U, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AF 30FC ; [.3BCB.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF78 30FC ; [.3BCB.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF78 FF70 ; [.3BCB.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304F 30FC ; [.3BCB.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B0 30FC ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AF 3099 30FC ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF78 FF9E 30FC ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF78 FF9E FF70 ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3050 30FC ; [.3BCB.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER GU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304F 3099 30FC ; [.3BCB.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B9 30FC ; [.3BD0.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7D 30FC ; [.3BD0.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7D FF70 ; [.3BD0.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3059 30FC ; [.3BD0.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BA 30FC ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B9 3099 30FC ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7D FF9E 30FC ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7D FF9E FF70 ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305A 30FC ; [.3BD0.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER ZU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3059 3099 30FC ; [.3BD0.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C3 30FC ; [.3BD5.0020.000F.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6F 30FC ; [.3BD5.0020.000F.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6F FF70 ; [.3BD5.0020.000F.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3063 30FC ; [.3BD5.0020.000F.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER SMALL TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C4 30FC ; [.3BD5.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF82 30FC ; [.3BD5.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF82 FF70 ; [.3BD5.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3064 30FC ; [.3BD5.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER TU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C5 30FC ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C4 3099 30FC ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF82 FF9E 30FC ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF82 FF9E FF70 ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3065 30FC ; [.3BD5.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER DU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3064 3099 30FC ; [.3BD5.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CC 30FC ; [.3BDA.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF87 30FC ; [.3BDA.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF87 FF70 ; [.3BDA.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306C 30FC ; [.3BDA.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D5 30FC ; [.3BDF.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C 30FC ; [.3BDF.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF70 ; [.3BDF.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3075 30FC ; [.3BDF.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D6 30FC ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D5 3099 30FC ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF9E 30FC ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF9E FF70 ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3076 30FC ; [.3BDF.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER BU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3075 3099 30FC ; [.3BDF.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D7 30FC ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D5 309A 30FC ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF9F 30FC ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8C FF9F FF70 ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3077 30FC ; [.3BDF.0020.0011.0001][.0000.0038.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER PU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3075 309A 30FC ; [.3BDF.0020.0011.0001][.0000.0038.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E0 30FC ; [.3BE4.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF91 30FC ; [.3BE4.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF91 FF70 ; [.3BE4.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3080 30FC ; [.3BE4.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E5 30FC ; [.3BE8.0020.000F.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6D 30FC ; [.3BE8.0020.000F.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6D FF70 ; [.3BE8.0020.000F.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3085 30FC ; [.3BE8.0020.000F.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER SMALL YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E6 30FC ; [.3BE8.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF95 30FC ; [.3BE8.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF95 FF70 ; [.3BE8.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3086 30FC ; [.3BE8.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER YU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EB 30FC ; [.3BED.0020.0011.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF99 30FC ; [.3BED.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF99 FF70 ; [.3BED.0020.0011.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RU, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308B 30FC ; [.3BED.0020.0011.0001][.3BC5.0020.0007.0002] # <HIRAGANA LETTER RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F4 30FC ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A6 3099 30FC ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF73 FF9E 30FC ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF73 FF9E FF70 ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3094 30FC ; [.3BC5.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER VU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3046 3099 30FC ; [.3BC5.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0007.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F0 30FC ; [.3BCB.0020.000F][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL KU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F2 30FC ; [.3BD0.0020.000F][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL SU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F4 30FC ; [.3BDA.0020.000F][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL NU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F7 30FC ; [.3BDF.0020.000F][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL HU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FA 30FC ; [.3BE4.0020.000F][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL MU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FD 30FC ; [.3BED.0020.000F][.3BC5.0020.0007.0002] # <KATAKANA LETTER SMALL RU, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A7 30FC ; [.3BC7.0020.000F.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6A 30FC ; [.3BC7.0020.000F.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6A FF70 ; [.3BC7.0020.000F.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3047 30FC ; [.3BC7.0020.000F.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER SMALL E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A8 30FC ; [.3BC7.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF74 30FC ; [.3BC7.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF74 FF70 ; [.3BC7.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER E, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3048 30FC ; [.3BC7.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER E, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B1 30FC ; [.3BCC.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF79 30FC ; [.3BCC.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF79 FF70 ; [.3BCC.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3051 30FC ; [.3BCC.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B2 30FC ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B1 3099 30FC ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF79 FF9E 30FC ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF79 FF9E FF70 ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3052 30FC ; [.3BCC.0020.0011.0001][.0000.0037.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER GE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3051 3099 30FC ; [.3BCC.0020.0011.0001][.0000.0037.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BB 30FC ; [.3BD1.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7E 30FC ; [.3BD1.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7E FF70 ; [.3BD1.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305B 30FC ; [.3BD1.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER SE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BC 30FC ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BB 3099 30FC ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7E FF9E 30FC ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7E FF9E FF70 ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305C 30FC ; [.3BD1.0020.0011.0001][.0000.0037.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER ZE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305B 3099 30FC ; [.3BD1.0020.0011.0001][.0000.0037.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C6 30FC ; [.3BD6.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF83 30FC ; [.3BD6.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF83 FF70 ; [.3BD6.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3066 30FC ; [.3BD6.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER TE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C7 30FC ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C6 3099 30FC ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF83 FF9E 30FC ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF83 FF9E FF70 ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3067 30FC ; [.3BD6.0020.0011.0001][.0000.0037.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER DE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3066 3099 30FC ; [.3BD6.0020.0011.0001][.0000.0037.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CD 30FC ; [.3BDB.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF88 30FC ; [.3BDB.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF88 FF70 ; [.3BDB.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306D 30FC ; [.3BDB.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER NE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D8 30FC ; [.3BE0.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D 30FC ; [.3BE0.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF70 ; [.3BE0.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3078 30FC ; [.3BE0.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D9 30FC ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D8 3099 30FC ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF9E 30FC ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF9E FF70 ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3079 30FC ; [.3BE0.0020.0011.0001][.0000.0037.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER BE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3078 3099 30FC ; [.3BE0.0020.0011.0001][.0000.0037.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DA 30FC ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30D8 309A 30FC ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF9F 30FC ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8D FF9F FF70 ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307A 30FC ; [.3BE0.0020.0011.0001][.0000.0038.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER PE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3078 309A 30FC ; [.3BE0.0020.0011.0001][.0000.0038.0002][.3BC7.0020.0007.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E1 30FC ; [.3BE5.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF92 30FC ; [.3BE5.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF92 FF70 ; [.3BE5.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER ME, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3081 30FC ; [.3BE5.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER ME, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30EC 30FC ; [.3BEE.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9A 30FC ; [.3BEE.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9A FF70 ; [.3BEE.0020.0011.0002][.3BC7.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RE, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308C 30FC ; [.3BEE.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F1 30FC ; [.3BF2.0020.0011.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3091 30FC ; [.3BF2.0020.0011.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER WE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F9 30FC ; [.3BF2.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER VE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F1 3099 30FC ; [.3BF2.0020.0011.0002][.0000.0037.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F6 30FC ; [.3BCC.0020.000F.0002][.3BC7.0020.0007.0002] # <KATAKANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3096 30FC ; [.3BCC.0020.000F.0001][.3BC7.0020.0007.0002] # <HIRAGANA LETTER SMALL KE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F8 30FC ; [.3BE0.0020.000F][.3BC7.0020.0007.0002] # <KATAKANA LETTER SMALL HE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FE 30FC ; [.3BEE.0020.000F][.3BC7.0020.0007.0002] # <KATAKANA LETTER SMALL RE, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A9 30FC ; [.3BC8.0020.000F.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6B 30FC ; [.3BC8.0020.000F.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6B FF70 ; [.3BC8.0020.000F.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3049 30FC ; [.3BC8.0020.000F.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER SMALL O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30AA 30FC ; [.3BC8.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF75 30FC ; [.3BC8.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF75 FF70 ; [.3BC8.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER O, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+304A 30FC ; [.3BC8.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER O, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B3 30FC ; [.3BCD.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7A 30FC ; [.3BCD.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7A FF70 ; [.3BCD.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3053 30FC ; [.3BCD.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER KO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B4 30FC ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30B3 3099 30FC ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7A FF9E 30FC ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7A FF9E FF70 ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3054 30FC ; [.3BCD.0020.0011.0001][.0000.0037.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER GO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3053 3099 30FC ; [.3BCD.0020.0011.0001][.0000.0037.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BD 30FC ; [.3BD2.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7F 30FC ; [.3BD2.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7F FF70 ; [.3BD2.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305D 30FC ; [.3BD2.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER SO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BE 30FC ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30BD 3099 30FC ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7F FF9E 30FC ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF7F FF9E FF70 ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305E 30FC ; [.3BD2.0020.0011.0001][.0000.0037.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER ZO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+305D 3099 30FC ; [.3BD2.0020.0011.0001][.0000.0037.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C8 30FC ; [.3BD7.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF84 30FC ; [.3BD7.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF84 FF70 ; [.3BD7.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3068 30FC ; [.3BD7.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C9 30FC ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30C8 3099 30FC ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF84 FF9E 30FC ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF84 FF9E FF70 ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3069 30FC ; [.3BD7.0020.0011.0001][.0000.0037.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER DO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3068 3099 30FC ; [.3BD7.0020.0011.0001][.0000.0037.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30CE 30FC ; [.3BDC.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF89 30FC ; [.3BDC.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF89 FF70 ; [.3BDC.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER NO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+306E 30FC ; [.3BDC.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER NO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DB 30FC ; [.3BE1.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E 30FC ; [.3BE1.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF70 ; [.3BE1.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307B 30FC ; [.3BE1.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DC 30FC ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DB 3099 30FC ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF9E 30FC ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF9E FF70 ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307C 30FC ; [.3BE1.0020.0011.0001][.0000.0037.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER BO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307B 3099 30FC ; [.3BE1.0020.0011.0001][.0000.0037.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DD 30FC ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30DB 309A 30FC ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF9F 30FC ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF8E FF9F FF70 ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307D 30FC ; [.3BE1.0020.0011.0001][.0000.0038.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER PO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+307B 309A 30FC ; [.3BE1.0020.0011.0001][.0000.0038.0002][.3BC8.0020.0007.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E2 30FC ; [.3BE6.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF93 30FC ; [.3BE6.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF93 FF70 ; [.3BE6.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER MO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3082 30FC ; [.3BE6.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER MO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E7 30FC ; [.3BEA.0020.000F.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6E 30FC ; [.3BEA.0020.000F.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF6E FF70 ; [.3BEA.0020.000F.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3087 30FC ; [.3BEA.0020.000F.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER SMALL YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30E8 30FC ; [.3BEA.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF96 30FC ; [.3BEA.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF96 FF70 ; [.3BEA.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER YO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3088 30FC ; [.3BEA.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER YO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30ED 30FC ; [.3BEF.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9B 30FC ; [.3BEF.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF9B FF70 ; [.3BEF.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER RO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+308D 30FC ; [.3BEF.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F2 30FC ; [.3BF3.0020.0011.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF66 30FC ; [.3BF3.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF66 FF70 ; [.3BF3.0020.0011.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+3092 30FC ; [.3BF3.0020.0011.0001][.3BC8.0020.0007.0002] # <HIRAGANA LETTER WO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30FA 30FC ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER VO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30F2 3099 30FC ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF66 FF9E 30FC ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+FF66 FF9E FF70 ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BC8.0020.0007.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F3 30FC ; [.3BD7.0020.000F][.3BC8.0020.0007.0002] # <KATAKANA LETTER SMALL TO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31F9 30FC ; [.3BE1.0020.000F][.3BC8.0020.0007.0002] # <KATAKANA LETTER SMALL HO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+31FF 30FC ; [.3BEF.0020.000F][.3BC8.0020.0007.0002] # <KATAKANA LETTER SMALL RO, KATAKANA-HIRAGANA PROLONGED SOUND MARK>
+30A1 30FD ; [.3BC3.0020.000F.0002][.3BC3.0020.0010.0002] # <KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
+FF67 30FD ; [.3BC3.0020.000F.0002][.3BC3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL A, KATAKANA ITERATION MARK>
+3041 309D ; [.3BC3.0020.000F.0001][.3BC3.0020.0010.0002] # <HIRAGANA LETTER SMALL A, HIRAGANA ITERATION MARK>
+30A2 30FD ; [.3BC3.0020.0011.0002][.3BC3.0020.0010.0002] # <KATAKANA LETTER A, KATAKANA ITERATION MARK>
+FF71 30FD ; [.3BC3.0020.0011.0002][.3BC3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER A, KATAKANA ITERATION MARK>
+3042 309D ; [.3BC3.0020.0011.0001][.3BC3.0020.0010.0002] # <HIRAGANA LETTER A, HIRAGANA ITERATION MARK>
+30A3 30FD ; [.3BC4.0020.000F.0002][.3BC4.0020.0010.0002] # <KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
+FF68 30FD ; [.3BC4.0020.000F.0002][.3BC4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL I, KATAKANA ITERATION MARK>
+3043 309D ; [.3BC4.0020.000F.0001][.3BC4.0020.0010.0002] # <HIRAGANA LETTER SMALL I, HIRAGANA ITERATION MARK>
+30A4 30FD ; [.3BC4.0020.0011.0002][.3BC4.0020.0010.0002] # <KATAKANA LETTER I, KATAKANA ITERATION MARK>
+FF72 30FD ; [.3BC4.0020.0011.0002][.3BC4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER I, KATAKANA ITERATION MARK>
+3044 309D ; [.3BC4.0020.0011.0001][.3BC4.0020.0010.0002] # <HIRAGANA LETTER I, HIRAGANA ITERATION MARK>
+30A5 30FD ; [.3BC5.0020.000F.0002][.3BC5.0020.0010.0002] # <KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
+FF69 30FD ; [.3BC5.0020.000F.0002][.3BC5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA ITERATION MARK>
+3045 309D ; [.3BC5.0020.000F.0001][.3BC5.0020.0010.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA ITERATION MARK>
+30A5 30FE ; [.3BC5.0020.000F.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
+FF69 30FE ; [.3BC5.0020.000F.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL U, KATAKANA VOICED ITERATION MARK>
+3045 309E ; [.3BC5.0020.000F.0001][.3BC5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL U, HIRAGANA VOICED ITERATION MARK>
+30A6 30FD ; [.3BC5.0020.0011.0002][.3BC5.0020.0010.0002] # <KATAKANA LETTER U, KATAKANA ITERATION MARK>
+FF73 30FD ; [.3BC5.0020.0011.0002][.3BC5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA ITERATION MARK>
+3046 309D ; [.3BC5.0020.0011.0001][.3BC5.0020.0010.0002] # <HIRAGANA LETTER U, HIRAGANA ITERATION MARK>
+30A6 30FE ; [.3BC5.0020.0011.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
+FF73 30FE ; [.3BC5.0020.0011.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, KATAKANA VOICED ITERATION MARK>
+3046 309E ; [.3BC5.0020.0011.0001][.3BC5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, HIRAGANA VOICED ITERATION MARK>
+30A7 30FD ; [.3BC7.0020.000F.0002][.3BC7.0020.0010.0002] # <KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
+FF6A 30FD ; [.3BC7.0020.000F.0002][.3BC7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL E, KATAKANA ITERATION MARK>
+3047 309D ; [.3BC7.0020.000F.0001][.3BC7.0020.0010.0002] # <HIRAGANA LETTER SMALL E, HIRAGANA ITERATION MARK>
+30A8 30FD ; [.3BC7.0020.0011.0002][.3BC7.0020.0010.0002] # <KATAKANA LETTER E, KATAKANA ITERATION MARK>
+FF74 30FD ; [.3BC7.0020.0011.0002][.3BC7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER E, KATAKANA ITERATION MARK>
+3048 309D ; [.3BC7.0020.0011.0001][.3BC7.0020.0010.0002] # <HIRAGANA LETTER E, HIRAGANA ITERATION MARK>
+30A9 30FD ; [.3BC8.0020.000F.0002][.3BC8.0020.0010.0002] # <KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
+FF6B 30FD ; [.3BC8.0020.000F.0002][.3BC8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL O, KATAKANA ITERATION MARK>
+3049 309D ; [.3BC8.0020.000F.0001][.3BC8.0020.0010.0002] # <HIRAGANA LETTER SMALL O, HIRAGANA ITERATION MARK>
+30AA 30FD ; [.3BC8.0020.0011.0002][.3BC8.0020.0010.0002] # <KATAKANA LETTER O, KATAKANA ITERATION MARK>
+FF75 30FD ; [.3BC8.0020.0011.0002][.3BC8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER O, KATAKANA ITERATION MARK>
+304A 309D ; [.3BC8.0020.0011.0001][.3BC8.0020.0010.0002] # <HIRAGANA LETTER O, HIRAGANA ITERATION MARK>
+30AB 30FD ; [.3BC9.0020.0011.0002][.3BC9.0020.0010.0002] # <KATAKANA LETTER KA, KATAKANA ITERATION MARK>
+FF76 30FD ; [.3BC9.0020.0011.0002][.3BC9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA ITERATION MARK>
+304B 309D ; [.3BC9.0020.0011.0001][.3BC9.0020.0010.0002] # <HIRAGANA LETTER KA, HIRAGANA ITERATION MARK>
+30AB 30FE ; [.3BC9.0020.0011.0002][.3BC9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
+FF76 30FE ; [.3BC9.0020.0011.0002][.3BC9.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, KATAKANA VOICED ITERATION MARK>
+304B 309E ; [.3BC9.0020.0011.0001][.3BC9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, HIRAGANA VOICED ITERATION MARK>
+30AC 30FD ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC9.0020.0010.0002] # <KATAKANA LETTER GA, KATAKANA ITERATION MARK>
+30AB 3099 30FD ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC9.0020.0010.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF76 FF9E 30FD ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+304C 309D ; [.3BC9.0020.0011.0001][.0000.0037.0002][.3BC9.0020.0010.0002] # <HIRAGANA LETTER GA, HIRAGANA ITERATION MARK>
+304B 3099 309D ; [.3BC9.0020.0011.0001][.0000.0037.0002][.3BC9.0020.0010.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30AC 30FE ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GA, KATAKANA VOICED ITERATION MARK>
+30AB 3099 30FE ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF76 FF9E 30FE ; [.3BC9.0020.0011.0002][.0000.0037.0002][.3BC9.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+304C 309E ; [.3BC9.0020.0011.0001][.0000.0037.0002][.3BC9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GA, HIRAGANA VOICED ITERATION MARK>
+304B 3099 309E ; [.3BC9.0020.0011.0001][.0000.0037.0002][.3BC9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30AD 30FD ; [.3BCA.0020.0011.0002][.3BCA.0020.0010.0002] # <KATAKANA LETTER KI, KATAKANA ITERATION MARK>
+FF77 30FD ; [.3BCA.0020.0011.0002][.3BCA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA ITERATION MARK>
+304D 309D ; [.3BCA.0020.0011.0001][.3BCA.0020.0010.0002] # <HIRAGANA LETTER KI, HIRAGANA ITERATION MARK>
+30AD 30FE ; [.3BCA.0020.0011.0002][.3BCA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
+FF77 30FE ; [.3BCA.0020.0011.0002][.3BCA.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, KATAKANA VOICED ITERATION MARK>
+304D 309E ; [.3BCA.0020.0011.0001][.3BCA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, HIRAGANA VOICED ITERATION MARK>
+30AE 30FD ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BCA.0020.0010.0002] # <KATAKANA LETTER GI, KATAKANA ITERATION MARK>
+30AD 3099 30FD ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BCA.0020.0010.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF77 FF9E 30FD ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BCA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+304E 309D ; [.3BCA.0020.0011.0001][.0000.0037.0002][.3BCA.0020.0010.0002] # <HIRAGANA LETTER GI, HIRAGANA ITERATION MARK>
+304D 3099 309D ; [.3BCA.0020.0011.0001][.0000.0037.0002][.3BCA.0020.0010.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30AE 30FE ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BCA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GI, KATAKANA VOICED ITERATION MARK>
+30AD 3099 30FE ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BCA.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF77 FF9E 30FE ; [.3BCA.0020.0011.0002][.0000.0037.0002][.3BCA.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+304E 309E ; [.3BCA.0020.0011.0001][.0000.0037.0002][.3BCA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GI, HIRAGANA VOICED ITERATION MARK>
+304D 3099 309E ; [.3BCA.0020.0011.0001][.0000.0037.0002][.3BCA.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30AF 30FD ; [.3BCB.0020.0011.0002][.3BCB.0020.0010.0002] # <KATAKANA LETTER KU, KATAKANA ITERATION MARK>
+FF78 30FD ; [.3BCB.0020.0011.0002][.3BCB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA ITERATION MARK>
+304F 309D ; [.3BCB.0020.0011.0001][.3BCB.0020.0010.0002] # <HIRAGANA LETTER KU, HIRAGANA ITERATION MARK>
+30AF 30FE ; [.3BCB.0020.0011.0002][.3BCB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
+FF78 30FE ; [.3BCB.0020.0011.0002][.3BCB.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, KATAKANA VOICED ITERATION MARK>
+304F 309E ; [.3BCB.0020.0011.0001][.3BCB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, HIRAGANA VOICED ITERATION MARK>
+30B0 30FD ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BCB.0020.0010.0002] # <KATAKANA LETTER GU, KATAKANA ITERATION MARK>
+30AF 3099 30FD ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BCB.0020.0010.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF78 FF9E 30FD ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BCB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3050 309D ; [.3BCB.0020.0011.0001][.0000.0037.0002][.3BCB.0020.0010.0002] # <HIRAGANA LETTER GU, HIRAGANA ITERATION MARK>
+304F 3099 309D ; [.3BCB.0020.0011.0001][.0000.0037.0002][.3BCB.0020.0010.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B0 30FE ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BCB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GU, KATAKANA VOICED ITERATION MARK>
+30AF 3099 30FE ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BCB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF78 FF9E 30FE ; [.3BCB.0020.0011.0002][.0000.0037.0002][.3BCB.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3050 309E ; [.3BCB.0020.0011.0001][.0000.0037.0002][.3BCB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GU, HIRAGANA VOICED ITERATION MARK>
+304F 3099 309E ; [.3BCB.0020.0011.0001][.0000.0037.0002][.3BCB.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B1 30FD ; [.3BCC.0020.0011.0002][.3BCC.0020.0010.0002] # <KATAKANA LETTER KE, KATAKANA ITERATION MARK>
+FF79 30FD ; [.3BCC.0020.0011.0002][.3BCC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA ITERATION MARK>
+3051 309D ; [.3BCC.0020.0011.0001][.3BCC.0020.0010.0002] # <HIRAGANA LETTER KE, HIRAGANA ITERATION MARK>
+30B1 30FE ; [.3BCC.0020.0011.0002][.3BCC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
+FF79 30FE ; [.3BCC.0020.0011.0002][.3BCC.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, KATAKANA VOICED ITERATION MARK>
+3051 309E ; [.3BCC.0020.0011.0001][.3BCC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, HIRAGANA VOICED ITERATION MARK>
+30B2 30FD ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BCC.0020.0010.0002] # <KATAKANA LETTER GE, KATAKANA ITERATION MARK>
+30B1 3099 30FD ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BCC.0020.0010.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF79 FF9E 30FD ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BCC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3052 309D ; [.3BCC.0020.0011.0001][.0000.0037.0002][.3BCC.0020.0010.0002] # <HIRAGANA LETTER GE, HIRAGANA ITERATION MARK>
+3051 3099 309D ; [.3BCC.0020.0011.0001][.0000.0037.0002][.3BCC.0020.0010.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B2 30FE ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BCC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GE, KATAKANA VOICED ITERATION MARK>
+30B1 3099 30FE ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BCC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF79 FF9E 30FE ; [.3BCC.0020.0011.0002][.0000.0037.0002][.3BCC.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3052 309E ; [.3BCC.0020.0011.0001][.0000.0037.0002][.3BCC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GE, HIRAGANA VOICED ITERATION MARK>
+3051 3099 309E ; [.3BCC.0020.0011.0001][.0000.0037.0002][.3BCC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B3 30FD ; [.3BCD.0020.0011.0002][.3BCD.0020.0010.0002] # <KATAKANA LETTER KO, KATAKANA ITERATION MARK>
+FF7A 30FD ; [.3BCD.0020.0011.0002][.3BCD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA ITERATION MARK>
+3053 309D ; [.3BCD.0020.0011.0001][.3BCD.0020.0010.0002] # <HIRAGANA LETTER KO, HIRAGANA ITERATION MARK>
+30B3 30FE ; [.3BCD.0020.0011.0002][.3BCD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
+FF7A 30FE ; [.3BCD.0020.0011.0002][.3BCD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, KATAKANA VOICED ITERATION MARK>
+3053 309E ; [.3BCD.0020.0011.0001][.3BCD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, HIRAGANA VOICED ITERATION MARK>
+30B4 30FD ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BCD.0020.0010.0002] # <KATAKANA LETTER GO, KATAKANA ITERATION MARK>
+30B3 3099 30FD ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BCD.0020.0010.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7A FF9E 30FD ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BCD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3054 309D ; [.3BCD.0020.0011.0001][.0000.0037.0002][.3BCD.0020.0010.0002] # <HIRAGANA LETTER GO, HIRAGANA ITERATION MARK>
+3053 3099 309D ; [.3BCD.0020.0011.0001][.0000.0037.0002][.3BCD.0020.0010.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B4 30FE ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BCD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER GO, KATAKANA VOICED ITERATION MARK>
+30B3 3099 30FE ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BCD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7A FF9E 30FE ; [.3BCD.0020.0011.0002][.0000.0037.0002][.3BCD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER KO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3054 309E ; [.3BCD.0020.0011.0001][.0000.0037.0002][.3BCD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER GO, HIRAGANA VOICED ITERATION MARK>
+3053 3099 309E ; [.3BCD.0020.0011.0001][.0000.0037.0002][.3BCD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER KO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B5 30FD ; [.3BCE.0020.0011.0002][.3BCE.0020.0010.0002] # <KATAKANA LETTER SA, KATAKANA ITERATION MARK>
+FF7B 30FD ; [.3BCE.0020.0011.0002][.3BCE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA ITERATION MARK>
+3055 309D ; [.3BCE.0020.0011.0001][.3BCE.0020.0010.0002] # <HIRAGANA LETTER SA, HIRAGANA ITERATION MARK>
+30B5 30FE ; [.3BCE.0020.0011.0002][.3BCE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
+FF7B 30FE ; [.3BCE.0020.0011.0002][.3BCE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, KATAKANA VOICED ITERATION MARK>
+3055 309E ; [.3BCE.0020.0011.0001][.3BCE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, HIRAGANA VOICED ITERATION MARK>
+30B6 30FD ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BCE.0020.0010.0002] # <KATAKANA LETTER ZA, KATAKANA ITERATION MARK>
+30B5 3099 30FD ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BCE.0020.0010.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7B FF9E 30FD ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BCE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3056 309D ; [.3BCE.0020.0011.0001][.0000.0037.0002][.3BCE.0020.0010.0002] # <HIRAGANA LETTER ZA, HIRAGANA ITERATION MARK>
+3055 3099 309D ; [.3BCE.0020.0011.0001][.0000.0037.0002][.3BCE.0020.0010.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B6 30FE ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BCE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZA, KATAKANA VOICED ITERATION MARK>
+30B5 3099 30FE ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BCE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7B FF9E 30FE ; [.3BCE.0020.0011.0002][.0000.0037.0002][.3BCE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3056 309E ; [.3BCE.0020.0011.0001][.0000.0037.0002][.3BCE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZA, HIRAGANA VOICED ITERATION MARK>
+3055 3099 309E ; [.3BCE.0020.0011.0001][.0000.0037.0002][.3BCE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B7 30FD ; [.3BCF.0020.0011.0002][.3BCF.0020.0010.0002] # <KATAKANA LETTER SI, KATAKANA ITERATION MARK>
+FF7C 30FD ; [.3BCF.0020.0011.0002][.3BCF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA ITERATION MARK>
+3057 309D ; [.3BCF.0020.0011.0001][.3BCF.0020.0010.0002] # <HIRAGANA LETTER SI, HIRAGANA ITERATION MARK>
+30B7 30FE ; [.3BCF.0020.0011.0002][.3BCF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
+FF7C 30FE ; [.3BCF.0020.0011.0002][.3BCF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, KATAKANA VOICED ITERATION MARK>
+3057 309E ; [.3BCF.0020.0011.0001][.3BCF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, HIRAGANA VOICED ITERATION MARK>
+30B8 30FD ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BCF.0020.0010.0002] # <KATAKANA LETTER ZI, KATAKANA ITERATION MARK>
+30B7 3099 30FD ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BCF.0020.0010.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7C FF9E 30FD ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BCF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3058 309D ; [.3BCF.0020.0011.0001][.0000.0037.0002][.3BCF.0020.0010.0002] # <HIRAGANA LETTER ZI, HIRAGANA ITERATION MARK>
+3057 3099 309D ; [.3BCF.0020.0011.0001][.0000.0037.0002][.3BCF.0020.0010.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30B8 30FE ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BCF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZI, KATAKANA VOICED ITERATION MARK>
+30B7 3099 30FE ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BCF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7C FF9E 30FE ; [.3BCF.0020.0011.0002][.0000.0037.0002][.3BCF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3058 309E ; [.3BCF.0020.0011.0001][.0000.0037.0002][.3BCF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZI, HIRAGANA VOICED ITERATION MARK>
+3057 3099 309E ; [.3BCF.0020.0011.0001][.0000.0037.0002][.3BCF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30B9 30FD ; [.3BD0.0020.0011.0002][.3BD0.0020.0010.0002] # <KATAKANA LETTER SU, KATAKANA ITERATION MARK>
+FF7D 30FD ; [.3BD0.0020.0011.0002][.3BD0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA ITERATION MARK>
+3059 309D ; [.3BD0.0020.0011.0001][.3BD0.0020.0010.0002] # <HIRAGANA LETTER SU, HIRAGANA ITERATION MARK>
+30B9 30FE ; [.3BD0.0020.0011.0002][.3BD0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
+FF7D 30FE ; [.3BD0.0020.0011.0002][.3BD0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, KATAKANA VOICED ITERATION MARK>
+3059 309E ; [.3BD0.0020.0011.0001][.3BD0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, HIRAGANA VOICED ITERATION MARK>
+30BA 30FD ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BD0.0020.0010.0002] # <KATAKANA LETTER ZU, KATAKANA ITERATION MARK>
+30B9 3099 30FD ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BD0.0020.0010.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7D FF9E 30FD ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BD0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+305A 309D ; [.3BD0.0020.0011.0001][.0000.0037.0002][.3BD0.0020.0010.0002] # <HIRAGANA LETTER ZU, HIRAGANA ITERATION MARK>
+3059 3099 309D ; [.3BD0.0020.0011.0001][.0000.0037.0002][.3BD0.0020.0010.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30BA 30FE ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BD0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZU, KATAKANA VOICED ITERATION MARK>
+30B9 3099 30FE ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BD0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7D FF9E 30FE ; [.3BD0.0020.0011.0002][.0000.0037.0002][.3BD0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+305A 309E ; [.3BD0.0020.0011.0001][.0000.0037.0002][.3BD0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZU, HIRAGANA VOICED ITERATION MARK>
+3059 3099 309E ; [.3BD0.0020.0011.0001][.0000.0037.0002][.3BD0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30BB 30FD ; [.3BD1.0020.0011.0002][.3BD1.0020.0010.0002] # <KATAKANA LETTER SE, KATAKANA ITERATION MARK>
+FF7E 30FD ; [.3BD1.0020.0011.0002][.3BD1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA ITERATION MARK>
+305B 309D ; [.3BD1.0020.0011.0001][.3BD1.0020.0010.0002] # <HIRAGANA LETTER SE, HIRAGANA ITERATION MARK>
+30BB 30FE ; [.3BD1.0020.0011.0002][.3BD1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
+FF7E 30FE ; [.3BD1.0020.0011.0002][.3BD1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, KATAKANA VOICED ITERATION MARK>
+305B 309E ; [.3BD1.0020.0011.0001][.3BD1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, HIRAGANA VOICED ITERATION MARK>
+30BC 30FD ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BD1.0020.0010.0002] # <KATAKANA LETTER ZE, KATAKANA ITERATION MARK>
+30BB 3099 30FD ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BD1.0020.0010.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7E FF9E 30FD ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BD1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+305C 309D ; [.3BD1.0020.0011.0001][.0000.0037.0002][.3BD1.0020.0010.0002] # <HIRAGANA LETTER ZE, HIRAGANA ITERATION MARK>
+305B 3099 309D ; [.3BD1.0020.0011.0001][.0000.0037.0002][.3BD1.0020.0010.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30BC 30FE ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BD1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZE, KATAKANA VOICED ITERATION MARK>
+30BB 3099 30FE ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BD1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7E FF9E 30FE ; [.3BD1.0020.0011.0002][.0000.0037.0002][.3BD1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+305C 309E ; [.3BD1.0020.0011.0001][.0000.0037.0002][.3BD1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZE, HIRAGANA VOICED ITERATION MARK>
+305B 3099 309E ; [.3BD1.0020.0011.0001][.0000.0037.0002][.3BD1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30BD 30FD ; [.3BD2.0020.0011.0002][.3BD2.0020.0010.0002] # <KATAKANA LETTER SO, KATAKANA ITERATION MARK>
+FF7F 30FD ; [.3BD2.0020.0011.0002][.3BD2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA ITERATION MARK>
+305D 309D ; [.3BD2.0020.0011.0001][.3BD2.0020.0010.0002] # <HIRAGANA LETTER SO, HIRAGANA ITERATION MARK>
+30BD 30FE ; [.3BD2.0020.0011.0002][.3BD2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
+FF7F 30FE ; [.3BD2.0020.0011.0002][.3BD2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, KATAKANA VOICED ITERATION MARK>
+305D 309E ; [.3BD2.0020.0011.0001][.3BD2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, HIRAGANA VOICED ITERATION MARK>
+30BE 30FD ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BD2.0020.0010.0002] # <KATAKANA LETTER ZO, KATAKANA ITERATION MARK>
+30BD 3099 30FD ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BD2.0020.0010.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF7F FF9E 30FD ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BD2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+305E 309D ; [.3BD2.0020.0011.0001][.0000.0037.0002][.3BD2.0020.0010.0002] # <HIRAGANA LETTER ZO, HIRAGANA ITERATION MARK>
+305D 3099 309D ; [.3BD2.0020.0011.0001][.0000.0037.0002][.3BD2.0020.0010.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30BE 30FE ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BD2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER ZO, KATAKANA VOICED ITERATION MARK>
+30BD 3099 30FE ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BD2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF7F FF9E 30FE ; [.3BD2.0020.0011.0002][.0000.0037.0002][.3BD2.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+305E 309E ; [.3BD2.0020.0011.0001][.0000.0037.0002][.3BD2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER ZO, HIRAGANA VOICED ITERATION MARK>
+305D 3099 309E ; [.3BD2.0020.0011.0001][.0000.0037.0002][.3BD2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30BF 30FD ; [.3BD3.0020.0011.0002][.3BD3.0020.0010.0002] # <KATAKANA LETTER TA, KATAKANA ITERATION MARK>
+FF80 30FD ; [.3BD3.0020.0011.0002][.3BD3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA ITERATION MARK>
+305F 309D ; [.3BD3.0020.0011.0001][.3BD3.0020.0010.0002] # <HIRAGANA LETTER TA, HIRAGANA ITERATION MARK>
+30BF 30FE ; [.3BD3.0020.0011.0002][.3BD3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
+FF80 30FE ; [.3BD3.0020.0011.0002][.3BD3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, KATAKANA VOICED ITERATION MARK>
+305F 309E ; [.3BD3.0020.0011.0001][.3BD3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, HIRAGANA VOICED ITERATION MARK>
+30C0 30FD ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BD3.0020.0010.0002] # <KATAKANA LETTER DA, KATAKANA ITERATION MARK>
+30BF 3099 30FD ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BD3.0020.0010.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF80 FF9E 30FD ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BD3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3060 309D ; [.3BD3.0020.0011.0001][.0000.0037.0002][.3BD3.0020.0010.0002] # <HIRAGANA LETTER DA, HIRAGANA ITERATION MARK>
+305F 3099 309D ; [.3BD3.0020.0011.0001][.0000.0037.0002][.3BD3.0020.0010.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C0 30FE ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BD3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DA, KATAKANA VOICED ITERATION MARK>
+30BF 3099 30FE ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BD3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF80 FF9E 30FE ; [.3BD3.0020.0011.0002][.0000.0037.0002][.3BD3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3060 309E ; [.3BD3.0020.0011.0001][.0000.0037.0002][.3BD3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DA, HIRAGANA VOICED ITERATION MARK>
+305F 3099 309E ; [.3BD3.0020.0011.0001][.0000.0037.0002][.3BD3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30C1 30FD ; [.3BD4.0020.0011.0002][.3BD4.0020.0010.0002] # <KATAKANA LETTER TI, KATAKANA ITERATION MARK>
+FF81 30FD ; [.3BD4.0020.0011.0002][.3BD4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA ITERATION MARK>
+3061 309D ; [.3BD4.0020.0011.0001][.3BD4.0020.0010.0002] # <HIRAGANA LETTER TI, HIRAGANA ITERATION MARK>
+30C1 30FE ; [.3BD4.0020.0011.0002][.3BD4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
+FF81 30FE ; [.3BD4.0020.0011.0002][.3BD4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, KATAKANA VOICED ITERATION MARK>
+3061 309E ; [.3BD4.0020.0011.0001][.3BD4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, HIRAGANA VOICED ITERATION MARK>
+30C2 30FD ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BD4.0020.0010.0002] # <KATAKANA LETTER DI, KATAKANA ITERATION MARK>
+30C1 3099 30FD ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BD4.0020.0010.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF81 FF9E 30FD ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BD4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3062 309D ; [.3BD4.0020.0011.0001][.0000.0037.0002][.3BD4.0020.0010.0002] # <HIRAGANA LETTER DI, HIRAGANA ITERATION MARK>
+3061 3099 309D ; [.3BD4.0020.0011.0001][.0000.0037.0002][.3BD4.0020.0010.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C2 30FE ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BD4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DI, KATAKANA VOICED ITERATION MARK>
+30C1 3099 30FE ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BD4.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF81 FF9E 30FE ; [.3BD4.0020.0011.0002][.0000.0037.0002][.3BD4.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3062 309E ; [.3BD4.0020.0011.0001][.0000.0037.0002][.3BD4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DI, HIRAGANA VOICED ITERATION MARK>
+3061 3099 309E ; [.3BD4.0020.0011.0001][.0000.0037.0002][.3BD4.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30C3 30FD ; [.3BD5.0020.000F.0002][.3BD5.0020.0010.0002] # <KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
+FF6F 30FD ; [.3BD5.0020.000F.0002][.3BD5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA ITERATION MARK>
+3063 309D ; [.3BD5.0020.000F.0001][.3BD5.0020.0010.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA ITERATION MARK>
+30C3 30FE ; [.3BD5.0020.000F.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
+FF6F 30FE ; [.3BD5.0020.000F.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER SMALL TU, KATAKANA VOICED ITERATION MARK>
+3063 309E ; [.3BD5.0020.000F.0001][.3BD5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL TU, HIRAGANA VOICED ITERATION MARK>
+30C4 30FD ; [.3BD5.0020.0011.0002][.3BD5.0020.0010.0002] # <KATAKANA LETTER TU, KATAKANA ITERATION MARK>
+FF82 30FD ; [.3BD5.0020.0011.0002][.3BD5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA ITERATION MARK>
+3064 309D ; [.3BD5.0020.0011.0001][.3BD5.0020.0010.0002] # <HIRAGANA LETTER TU, HIRAGANA ITERATION MARK>
+30C4 30FE ; [.3BD5.0020.0011.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
+FF82 30FE ; [.3BD5.0020.0011.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, KATAKANA VOICED ITERATION MARK>
+3064 309E ; [.3BD5.0020.0011.0001][.3BD5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, HIRAGANA VOICED ITERATION MARK>
+30C5 30FD ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BD5.0020.0010.0002] # <KATAKANA LETTER DU, KATAKANA ITERATION MARK>
+30C4 3099 30FD ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BD5.0020.0010.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF82 FF9E 30FD ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BD5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3065 309D ; [.3BD5.0020.0011.0001][.0000.0037.0002][.3BD5.0020.0010.0002] # <HIRAGANA LETTER DU, HIRAGANA ITERATION MARK>
+3064 3099 309D ; [.3BD5.0020.0011.0001][.0000.0037.0002][.3BD5.0020.0010.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C5 30FE ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DU, KATAKANA VOICED ITERATION MARK>
+30C4 3099 30FE ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF82 FF9E 30FE ; [.3BD5.0020.0011.0002][.0000.0037.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3065 309E ; [.3BD5.0020.0011.0001][.0000.0037.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DU, HIRAGANA VOICED ITERATION MARK>
+3064 3099 309E ; [.3BD5.0020.0011.0001][.0000.0037.0002][.3BD5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30C6 30FD ; [.3BD6.0020.0011.0002][.3BD6.0020.0010.0002] # <KATAKANA LETTER TE, KATAKANA ITERATION MARK>
+FF83 30FD ; [.3BD6.0020.0011.0002][.3BD6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA ITERATION MARK>
+3066 309D ; [.3BD6.0020.0011.0001][.3BD6.0020.0010.0002] # <HIRAGANA LETTER TE, HIRAGANA ITERATION MARK>
+30C6 30FE ; [.3BD6.0020.0011.0002][.3BD6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
+FF83 30FE ; [.3BD6.0020.0011.0002][.3BD6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, KATAKANA VOICED ITERATION MARK>
+3066 309E ; [.3BD6.0020.0011.0001][.3BD6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, HIRAGANA VOICED ITERATION MARK>
+30C7 30FD ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BD6.0020.0010.0002] # <KATAKANA LETTER DE, KATAKANA ITERATION MARK>
+30C6 3099 30FD ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BD6.0020.0010.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF83 FF9E 30FD ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BD6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3067 309D ; [.3BD6.0020.0011.0001][.0000.0037.0002][.3BD6.0020.0010.0002] # <HIRAGANA LETTER DE, HIRAGANA ITERATION MARK>
+3066 3099 309D ; [.3BD6.0020.0011.0001][.0000.0037.0002][.3BD6.0020.0010.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C7 30FE ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BD6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DE, KATAKANA VOICED ITERATION MARK>
+30C6 3099 30FE ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BD6.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF83 FF9E 30FE ; [.3BD6.0020.0011.0002][.0000.0037.0002][.3BD6.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3067 309E ; [.3BD6.0020.0011.0001][.0000.0037.0002][.3BD6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DE, HIRAGANA VOICED ITERATION MARK>
+3066 3099 309E ; [.3BD6.0020.0011.0001][.0000.0037.0002][.3BD6.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30C8 30FD ; [.3BD7.0020.0011.0002][.3BD7.0020.0010.0002] # <KATAKANA LETTER TO, KATAKANA ITERATION MARK>
+FF84 30FD ; [.3BD7.0020.0011.0002][.3BD7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA ITERATION MARK>
+3068 309D ; [.3BD7.0020.0011.0001][.3BD7.0020.0010.0002] # <HIRAGANA LETTER TO, HIRAGANA ITERATION MARK>
+30C8 30FE ; [.3BD7.0020.0011.0002][.3BD7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
+FF84 30FE ; [.3BD7.0020.0011.0002][.3BD7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, KATAKANA VOICED ITERATION MARK>
+3068 309E ; [.3BD7.0020.0011.0001][.3BD7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, HIRAGANA VOICED ITERATION MARK>
+30C9 30FD ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BD7.0020.0010.0002] # <KATAKANA LETTER DO, KATAKANA ITERATION MARK>
+30C8 3099 30FD ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BD7.0020.0010.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF84 FF9E 30FD ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BD7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3069 309D ; [.3BD7.0020.0011.0001][.0000.0037.0002][.3BD7.0020.0010.0002] # <HIRAGANA LETTER DO, HIRAGANA ITERATION MARK>
+3068 3099 309D ; [.3BD7.0020.0011.0001][.0000.0037.0002][.3BD7.0020.0010.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30C9 30FE ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BD7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER DO, KATAKANA VOICED ITERATION MARK>
+30C8 3099 30FE ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BD7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF84 FF9E 30FE ; [.3BD7.0020.0011.0002][.0000.0037.0002][.3BD7.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER TO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3069 309E ; [.3BD7.0020.0011.0001][.0000.0037.0002][.3BD7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER DO, HIRAGANA VOICED ITERATION MARK>
+3068 3099 309E ; [.3BD7.0020.0011.0001][.0000.0037.0002][.3BD7.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER TO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30CA 30FD ; [.3BD8.0020.0011.0002][.3BD8.0020.0010.0002] # <KATAKANA LETTER NA, KATAKANA ITERATION MARK>
+FF85 30FD ; [.3BD8.0020.0011.0002][.3BD8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NA, KATAKANA ITERATION MARK>
+306A 309D ; [.3BD8.0020.0011.0001][.3BD8.0020.0010.0002] # <HIRAGANA LETTER NA, HIRAGANA ITERATION MARK>
+30CB 30FD ; [.3BD9.0020.0011.0002][.3BD9.0020.0010.0002] # <KATAKANA LETTER NI, KATAKANA ITERATION MARK>
+FF86 30FD ; [.3BD9.0020.0011.0002][.3BD9.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NI, KATAKANA ITERATION MARK>
+306B 309D ; [.3BD9.0020.0011.0001][.3BD9.0020.0010.0002] # <HIRAGANA LETTER NI, HIRAGANA ITERATION MARK>
+30CC 30FD ; [.3BDA.0020.0011.0002][.3BDA.0020.0010.0002] # <KATAKANA LETTER NU, KATAKANA ITERATION MARK>
+FF87 30FD ; [.3BDA.0020.0011.0002][.3BDA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NU, KATAKANA ITERATION MARK>
+306C 309D ; [.3BDA.0020.0011.0001][.3BDA.0020.0010.0002] # <HIRAGANA LETTER NU, HIRAGANA ITERATION MARK>
+30CD 30FD ; [.3BDB.0020.0011.0002][.3BDB.0020.0010.0002] # <KATAKANA LETTER NE, KATAKANA ITERATION MARK>
+FF88 30FD ; [.3BDB.0020.0011.0002][.3BDB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NE, KATAKANA ITERATION MARK>
+306D 309D ; [.3BDB.0020.0011.0001][.3BDB.0020.0010.0002] # <HIRAGANA LETTER NE, HIRAGANA ITERATION MARK>
+30CE 30FD ; [.3BDC.0020.0011.0002][.3BDC.0020.0010.0002] # <KATAKANA LETTER NO, KATAKANA ITERATION MARK>
+FF89 30FD ; [.3BDC.0020.0011.0002][.3BDC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER NO, KATAKANA ITERATION MARK>
+306E 309D ; [.3BDC.0020.0011.0001][.3BDC.0020.0010.0002] # <HIRAGANA LETTER NO, HIRAGANA ITERATION MARK>
+30CF 30FD ; [.3BDD.0020.0011.0002][.3BDD.0020.0010.0002] # <KATAKANA LETTER HA, KATAKANA ITERATION MARK>
+FF8A 30FD ; [.3BDD.0020.0011.0002][.3BDD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA ITERATION MARK>
+306F 309D ; [.3BDD.0020.0011.0001][.3BDD.0020.0010.0002] # <HIRAGANA LETTER HA, HIRAGANA ITERATION MARK>
+30CF 30FE ; [.3BDD.0020.0011.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
+FF8A 30FE ; [.3BDD.0020.0011.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, KATAKANA VOICED ITERATION MARK>
+306F 309E ; [.3BDD.0020.0011.0001][.3BDD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, HIRAGANA VOICED ITERATION MARK>
+30D0 30FD ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BDD.0020.0010.0002] # <KATAKANA LETTER BA, KATAKANA ITERATION MARK>
+30CF 3099 30FD ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BDD.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8A FF9E 30FD ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BDD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3070 309D ; [.3BDD.0020.0011.0001][.0000.0037.0002][.3BDD.0020.0010.0002] # <HIRAGANA LETTER BA, HIRAGANA ITERATION MARK>
+306F 3099 309D ; [.3BDD.0020.0011.0001][.0000.0037.0002][.3BDD.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D0 30FE ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BA, KATAKANA VOICED ITERATION MARK>
+30CF 3099 30FE ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8A FF9E 30FE ; [.3BDD.0020.0011.0002][.0000.0037.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3070 309E ; [.3BDD.0020.0011.0001][.0000.0037.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BA, HIRAGANA VOICED ITERATION MARK>
+306F 3099 309E ; [.3BDD.0020.0011.0001][.0000.0037.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D1 30FD ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BDD.0020.0010.0002] # <KATAKANA LETTER PA, KATAKANA ITERATION MARK>
+30CF 309A 30FD ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BDD.0020.0010.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8A FF9F 30FD ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BDD.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3071 309D ; [.3BDD.0020.0011.0001][.0000.0038.0002][.3BDD.0020.0010.0002] # <HIRAGANA LETTER PA, HIRAGANA ITERATION MARK>
+306F 309A 309D ; [.3BDD.0020.0011.0001][.0000.0038.0002][.3BDD.0020.0010.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D1 30FE ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PA, KATAKANA VOICED ITERATION MARK>
+30CF 309A 30FE ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8A FF9F 30FE ; [.3BDD.0020.0011.0002][.0000.0038.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HA, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3071 309E ; [.3BDD.0020.0011.0001][.0000.0038.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PA, HIRAGANA VOICED ITERATION MARK>
+306F 309A 309E ; [.3BDD.0020.0011.0001][.0000.0038.0002][.3BDD.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HA, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D2 30FD ; [.3BDE.0020.0011.0002][.3BDE.0020.0010.0002] # <KATAKANA LETTER HI, KATAKANA ITERATION MARK>
+FF8B 30FD ; [.3BDE.0020.0011.0002][.3BDE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA ITERATION MARK>
+3072 309D ; [.3BDE.0020.0011.0001][.3BDE.0020.0010.0002] # <HIRAGANA LETTER HI, HIRAGANA ITERATION MARK>
+30D2 30FE ; [.3BDE.0020.0011.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
+FF8B 30FE ; [.3BDE.0020.0011.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, KATAKANA VOICED ITERATION MARK>
+3072 309E ; [.3BDE.0020.0011.0001][.3BDE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, HIRAGANA VOICED ITERATION MARK>
+30D3 30FD ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BDE.0020.0010.0002] # <KATAKANA LETTER BI, KATAKANA ITERATION MARK>
+30D2 3099 30FD ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BDE.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8B FF9E 30FD ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BDE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3073 309D ; [.3BDE.0020.0011.0001][.0000.0037.0002][.3BDE.0020.0010.0002] # <HIRAGANA LETTER BI, HIRAGANA ITERATION MARK>
+3072 3099 309D ; [.3BDE.0020.0011.0001][.0000.0037.0002][.3BDE.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D3 30FE ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BI, KATAKANA VOICED ITERATION MARK>
+30D2 3099 30FE ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8B FF9E 30FE ; [.3BDE.0020.0011.0002][.0000.0037.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3073 309E ; [.3BDE.0020.0011.0001][.0000.0037.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BI, HIRAGANA VOICED ITERATION MARK>
+3072 3099 309E ; [.3BDE.0020.0011.0001][.0000.0037.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D4 30FD ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BDE.0020.0010.0002] # <KATAKANA LETTER PI, KATAKANA ITERATION MARK>
+30D2 309A 30FD ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BDE.0020.0010.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8B FF9F 30FD ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BDE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3074 309D ; [.3BDE.0020.0011.0001][.0000.0038.0002][.3BDE.0020.0010.0002] # <HIRAGANA LETTER PI, HIRAGANA ITERATION MARK>
+3072 309A 309D ; [.3BDE.0020.0011.0001][.0000.0038.0002][.3BDE.0020.0010.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D4 30FE ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PI, KATAKANA VOICED ITERATION MARK>
+30D2 309A 30FE ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8B FF9F 30FE ; [.3BDE.0020.0011.0002][.0000.0038.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HI, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3074 309E ; [.3BDE.0020.0011.0001][.0000.0038.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PI, HIRAGANA VOICED ITERATION MARK>
+3072 309A 309E ; [.3BDE.0020.0011.0001][.0000.0038.0002][.3BDE.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HI, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D5 30FD ; [.3BDF.0020.0011.0002][.3BDF.0020.0010.0002] # <KATAKANA LETTER HU, KATAKANA ITERATION MARK>
+FF8C 30FD ; [.3BDF.0020.0011.0002][.3BDF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA ITERATION MARK>
+3075 309D ; [.3BDF.0020.0011.0001][.3BDF.0020.0010.0002] # <HIRAGANA LETTER HU, HIRAGANA ITERATION MARK>
+30D5 30FE ; [.3BDF.0020.0011.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
+FF8C 30FE ; [.3BDF.0020.0011.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, KATAKANA VOICED ITERATION MARK>
+3075 309E ; [.3BDF.0020.0011.0001][.3BDF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, HIRAGANA VOICED ITERATION MARK>
+30D6 30FD ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BDF.0020.0010.0002] # <KATAKANA LETTER BU, KATAKANA ITERATION MARK>
+30D5 3099 30FD ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BDF.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8C FF9E 30FD ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BDF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3076 309D ; [.3BDF.0020.0011.0001][.0000.0037.0002][.3BDF.0020.0010.0002] # <HIRAGANA LETTER BU, HIRAGANA ITERATION MARK>
+3075 3099 309D ; [.3BDF.0020.0011.0001][.0000.0037.0002][.3BDF.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D6 30FE ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BU, KATAKANA VOICED ITERATION MARK>
+30D5 3099 30FE ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8C FF9E 30FE ; [.3BDF.0020.0011.0002][.0000.0037.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3076 309E ; [.3BDF.0020.0011.0001][.0000.0037.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BU, HIRAGANA VOICED ITERATION MARK>
+3075 3099 309E ; [.3BDF.0020.0011.0001][.0000.0037.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D7 30FD ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BDF.0020.0010.0002] # <KATAKANA LETTER PU, KATAKANA ITERATION MARK>
+30D5 309A 30FD ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BDF.0020.0010.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8C FF9F 30FD ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BDF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3077 309D ; [.3BDF.0020.0011.0001][.0000.0038.0002][.3BDF.0020.0010.0002] # <HIRAGANA LETTER PU, HIRAGANA ITERATION MARK>
+3075 309A 309D ; [.3BDF.0020.0011.0001][.0000.0038.0002][.3BDF.0020.0010.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D7 30FE ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PU, KATAKANA VOICED ITERATION MARK>
+30D5 309A 30FE ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8C FF9F 30FE ; [.3BDF.0020.0011.0002][.0000.0038.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HU, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3077 309E ; [.3BDF.0020.0011.0001][.0000.0038.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PU, HIRAGANA VOICED ITERATION MARK>
+3075 309A 309E ; [.3BDF.0020.0011.0001][.0000.0038.0002][.3BDF.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HU, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30D8 30FD ; [.3BE0.0020.0011.0002][.3BE0.0020.0010.0002] # <KATAKANA LETTER HE, KATAKANA ITERATION MARK>
+FF8D 30FD ; [.3BE0.0020.0011.0002][.3BE0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA ITERATION MARK>
+3078 309D ; [.3BE0.0020.0011.0001][.3BE0.0020.0010.0002] # <HIRAGANA LETTER HE, HIRAGANA ITERATION MARK>
+30D8 30FE ; [.3BE0.0020.0011.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
+FF8D 30FE ; [.3BE0.0020.0011.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, KATAKANA VOICED ITERATION MARK>
+3078 309E ; [.3BE0.0020.0011.0001][.3BE0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, HIRAGANA VOICED ITERATION MARK>
+30D9 30FD ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BE0.0020.0010.0002] # <KATAKANA LETTER BE, KATAKANA ITERATION MARK>
+30D8 3099 30FD ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BE0.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8D FF9E 30FD ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BE0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3079 309D ; [.3BE0.0020.0011.0001][.0000.0037.0002][.3BE0.0020.0010.0002] # <HIRAGANA LETTER BE, HIRAGANA ITERATION MARK>
+3078 3099 309D ; [.3BE0.0020.0011.0001][.0000.0037.0002][.3BE0.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30D9 30FE ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BE, KATAKANA VOICED ITERATION MARK>
+30D8 3099 30FE ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8D FF9E 30FE ; [.3BE0.0020.0011.0002][.0000.0037.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3079 309E ; [.3BE0.0020.0011.0001][.0000.0037.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BE, HIRAGANA VOICED ITERATION MARK>
+3078 3099 309E ; [.3BE0.0020.0011.0001][.0000.0037.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30DA 30FD ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BE0.0020.0010.0002] # <KATAKANA LETTER PE, KATAKANA ITERATION MARK>
+30D8 309A 30FD ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BE0.0020.0010.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8D FF9F 30FD ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BE0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+307A 309D ; [.3BE0.0020.0011.0001][.0000.0038.0002][.3BE0.0020.0010.0002] # <HIRAGANA LETTER PE, HIRAGANA ITERATION MARK>
+3078 309A 309D ; [.3BE0.0020.0011.0001][.0000.0038.0002][.3BE0.0020.0010.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30DA 30FE ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PE, KATAKANA VOICED ITERATION MARK>
+30D8 309A 30FE ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8D FF9F 30FE ; [.3BE0.0020.0011.0002][.0000.0038.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HE, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+307A 309E ; [.3BE0.0020.0011.0001][.0000.0038.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PE, HIRAGANA VOICED ITERATION MARK>
+3078 309A 309E ; [.3BE0.0020.0011.0001][.0000.0038.0002][.3BE0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HE, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30DB 30FD ; [.3BE1.0020.0011.0002][.3BE1.0020.0010.0002] # <KATAKANA LETTER HO, KATAKANA ITERATION MARK>
+FF8E 30FD ; [.3BE1.0020.0011.0002][.3BE1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA ITERATION MARK>
+307B 309D ; [.3BE1.0020.0011.0001][.3BE1.0020.0010.0002] # <HIRAGANA LETTER HO, HIRAGANA ITERATION MARK>
+30DB 30FE ; [.3BE1.0020.0011.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
+FF8E 30FE ; [.3BE1.0020.0011.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, KATAKANA VOICED ITERATION MARK>
+307B 309E ; [.3BE1.0020.0011.0001][.3BE1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, HIRAGANA VOICED ITERATION MARK>
+30DC 30FD ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BE1.0020.0010.0002] # <KATAKANA LETTER BO, KATAKANA ITERATION MARK>
+30DB 3099 30FD ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BE1.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8E FF9E 30FD ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BE1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+307C 309D ; [.3BE1.0020.0011.0001][.0000.0037.0002][.3BE1.0020.0010.0002] # <HIRAGANA LETTER BO, HIRAGANA ITERATION MARK>
+307B 3099 309D ; [.3BE1.0020.0011.0001][.0000.0037.0002][.3BE1.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30DC 30FE ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER BO, KATAKANA VOICED ITERATION MARK>
+30DB 3099 30FE ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8E FF9E 30FE ; [.3BE1.0020.0011.0002][.0000.0037.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+307C 309E ; [.3BE1.0020.0011.0001][.0000.0037.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER BO, HIRAGANA VOICED ITERATION MARK>
+307B 3099 309E ; [.3BE1.0020.0011.0001][.0000.0037.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30DD 30FD ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BE1.0020.0010.0002] # <KATAKANA LETTER PO, KATAKANA ITERATION MARK>
+30DB 309A 30FD ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BE1.0020.0010.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF8E FF9F 30FD ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BE1.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA ITERATION MARK>
+307D 309D ; [.3BE1.0020.0011.0001][.0000.0038.0002][.3BE1.0020.0010.0002] # <HIRAGANA LETTER PO, HIRAGANA ITERATION MARK>
+307B 309A 309D ; [.3BE1.0020.0011.0001][.0000.0038.0002][.3BE1.0020.0010.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30DD 30FE ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER PO, KATAKANA VOICED ITERATION MARK>
+30DB 309A 30FE ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF8E FF9F 30FE ; [.3BE1.0020.0011.0002][.0000.0038.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER HO, HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+307D 309E ; [.3BE1.0020.0011.0001][.0000.0038.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER PO, HIRAGANA VOICED ITERATION MARK>
+307B 309A 309E ; [.3BE1.0020.0011.0001][.0000.0038.0002][.3BE1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER HO, COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30DE 30FD ; [.3BE2.0020.0011.0002][.3BE2.0020.0010.0002] # <KATAKANA LETTER MA, KATAKANA ITERATION MARK>
+FF8F 30FD ; [.3BE2.0020.0011.0002][.3BE2.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MA, KATAKANA ITERATION MARK>
+307E 309D ; [.3BE2.0020.0011.0001][.3BE2.0020.0010.0002] # <HIRAGANA LETTER MA, HIRAGANA ITERATION MARK>
+30DF 30FD ; [.3BE3.0020.0011.0002][.3BE3.0020.0010.0002] # <KATAKANA LETTER MI, KATAKANA ITERATION MARK>
+FF90 30FD ; [.3BE3.0020.0011.0002][.3BE3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MI, KATAKANA ITERATION MARK>
+307F 309D ; [.3BE3.0020.0011.0001][.3BE3.0020.0010.0002] # <HIRAGANA LETTER MI, HIRAGANA ITERATION MARK>
+30E0 30FD ; [.3BE4.0020.0011.0002][.3BE4.0020.0010.0002] # <KATAKANA LETTER MU, KATAKANA ITERATION MARK>
+FF91 30FD ; [.3BE4.0020.0011.0002][.3BE4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MU, KATAKANA ITERATION MARK>
+3080 309D ; [.3BE4.0020.0011.0001][.3BE4.0020.0010.0002] # <HIRAGANA LETTER MU, HIRAGANA ITERATION MARK>
+30E1 30FD ; [.3BE5.0020.0011.0002][.3BE5.0020.0010.0002] # <KATAKANA LETTER ME, KATAKANA ITERATION MARK>
+FF92 30FD ; [.3BE5.0020.0011.0002][.3BE5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER ME, KATAKANA ITERATION MARK>
+3081 309D ; [.3BE5.0020.0011.0001][.3BE5.0020.0010.0002] # <HIRAGANA LETTER ME, HIRAGANA ITERATION MARK>
+30E2 30FD ; [.3BE6.0020.0011.0002][.3BE6.0020.0010.0002] # <KATAKANA LETTER MO, KATAKANA ITERATION MARK>
+FF93 30FD ; [.3BE6.0020.0011.0002][.3BE6.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER MO, KATAKANA ITERATION MARK>
+3082 309D ; [.3BE6.0020.0011.0001][.3BE6.0020.0010.0002] # <HIRAGANA LETTER MO, HIRAGANA ITERATION MARK>
+30E3 30FD ; [.3BE7.0020.000F.0002][.3BE7.0020.0010.0002] # <KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
+FF6C 30FD ; [.3BE7.0020.000F.0002][.3BE7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YA, KATAKANA ITERATION MARK>
+3083 309D ; [.3BE7.0020.000F.0001][.3BE7.0020.0010.0002] # <HIRAGANA LETTER SMALL YA, HIRAGANA ITERATION MARK>
+30E4 30FD ; [.3BE7.0020.0011.0002][.3BE7.0020.0010.0002] # <KATAKANA LETTER YA, KATAKANA ITERATION MARK>
+FF94 30FD ; [.3BE7.0020.0011.0002][.3BE7.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YA, KATAKANA ITERATION MARK>
+3084 309D ; [.3BE7.0020.0011.0001][.3BE7.0020.0010.0002] # <HIRAGANA LETTER YA, HIRAGANA ITERATION MARK>
+30E5 30FD ; [.3BE8.0020.000F.0002][.3BE8.0020.0010.0002] # <KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
+FF6D 30FD ; [.3BE8.0020.000F.0002][.3BE8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YU, KATAKANA ITERATION MARK>
+3085 309D ; [.3BE8.0020.000F.0001][.3BE8.0020.0010.0002] # <HIRAGANA LETTER SMALL YU, HIRAGANA ITERATION MARK>
+30E6 30FD ; [.3BE8.0020.0011.0002][.3BE8.0020.0010.0002] # <KATAKANA LETTER YU, KATAKANA ITERATION MARK>
+FF95 30FD ; [.3BE8.0020.0011.0002][.3BE8.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YU, KATAKANA ITERATION MARK>
+3086 309D ; [.3BE8.0020.0011.0001][.3BE8.0020.0010.0002] # <HIRAGANA LETTER YU, HIRAGANA ITERATION MARK>
+30E7 30FD ; [.3BEA.0020.000F.0002][.3BEA.0020.0010.0002] # <KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
+FF6E 30FD ; [.3BEA.0020.000F.0002][.3BEA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER SMALL YO, KATAKANA ITERATION MARK>
+3087 309D ; [.3BEA.0020.000F.0001][.3BEA.0020.0010.0002] # <HIRAGANA LETTER SMALL YO, HIRAGANA ITERATION MARK>
+30E8 30FD ; [.3BEA.0020.0011.0002][.3BEA.0020.0010.0002] # <KATAKANA LETTER YO, KATAKANA ITERATION MARK>
+FF96 30FD ; [.3BEA.0020.0011.0002][.3BEA.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER YO, KATAKANA ITERATION MARK>
+3088 309D ; [.3BEA.0020.0011.0001][.3BEA.0020.0010.0002] # <HIRAGANA LETTER YO, HIRAGANA ITERATION MARK>
+30E9 30FD ; [.3BEB.0020.0011.0002][.3BEB.0020.0010.0002] # <KATAKANA LETTER RA, KATAKANA ITERATION MARK>
+FF97 30FD ; [.3BEB.0020.0011.0002][.3BEB.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RA, KATAKANA ITERATION MARK>
+3089 309D ; [.3BEB.0020.0011.0001][.3BEB.0020.0010.0002] # <HIRAGANA LETTER RA, HIRAGANA ITERATION MARK>
+30EA 30FD ; [.3BEC.0020.0011.0002][.3BEC.0020.0010.0002] # <KATAKANA LETTER RI, KATAKANA ITERATION MARK>
+FF98 30FD ; [.3BEC.0020.0011.0002][.3BEC.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RI, KATAKANA ITERATION MARK>
+308A 309D ; [.3BEC.0020.0011.0001][.3BEC.0020.0010.0002] # <HIRAGANA LETTER RI, HIRAGANA ITERATION MARK>
+30EB 30FD ; [.3BED.0020.0011.0002][.3BED.0020.0010.0002] # <KATAKANA LETTER RU, KATAKANA ITERATION MARK>
+FF99 30FD ; [.3BED.0020.0011.0002][.3BED.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RU, KATAKANA ITERATION MARK>
+308B 309D ; [.3BED.0020.0011.0001][.3BED.0020.0010.0002] # <HIRAGANA LETTER RU, HIRAGANA ITERATION MARK>
+30EC 30FD ; [.3BEE.0020.0011.0002][.3BEE.0020.0010.0002] # <KATAKANA LETTER RE, KATAKANA ITERATION MARK>
+FF9A 30FD ; [.3BEE.0020.0011.0002][.3BEE.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RE, KATAKANA ITERATION MARK>
+308C 309D ; [.3BEE.0020.0011.0001][.3BEE.0020.0010.0002] # <HIRAGANA LETTER RE, HIRAGANA ITERATION MARK>
+30ED 30FD ; [.3BEF.0020.0011.0002][.3BEF.0020.0010.0002] # <KATAKANA LETTER RO, KATAKANA ITERATION MARK>
+FF9B 30FD ; [.3BEF.0020.0011.0002][.3BEF.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER RO, KATAKANA ITERATION MARK>
+308D 309D ; [.3BEF.0020.0011.0001][.3BEF.0020.0010.0002] # <HIRAGANA LETTER RO, HIRAGANA ITERATION MARK>
+30EE 30FD ; [.3BF0.0020.000F.0002][.3BF0.0020.0010.0002] # <KATAKANA LETTER SMALL WA, KATAKANA ITERATION MARK>
+308E 309D ; [.3BF0.0020.000F.0001][.3BF0.0020.0010.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA ITERATION MARK>
+30EE 30FE ; [.3BF0.0020.000F.0002][.3BF0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL WA, KATAKANA VOICED ITERATION MARK>
+308E 309E ; [.3BF0.0020.000F.0001][.3BF0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL WA, HIRAGANA VOICED ITERATION MARK>
+30EF 30FD ; [.3BF0.0020.0011.0002][.3BF0.0020.0010.0002] # <KATAKANA LETTER WA, KATAKANA ITERATION MARK>
+FF9C 30FD ; [.3BF0.0020.0011.0002][.3BF0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA ITERATION MARK>
+308F 309D ; [.3BF0.0020.0011.0001][.3BF0.0020.0010.0002] # <HIRAGANA LETTER WA, HIRAGANA ITERATION MARK>
+30EF 30FE ; [.3BF0.0020.0011.0002][.3BF0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
+FF9C 30FE ; [.3BF0.0020.0011.0002][.3BF0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, KATAKANA VOICED ITERATION MARK>
+308F 309E ; [.3BF0.0020.0011.0001][.3BF0.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WA, HIRAGANA VOICED ITERATION MARK>
+30F0 30FD ; [.3BF1.0020.0011.0002][.3BF1.0020.0010.0002] # <KATAKANA LETTER WI, KATAKANA ITERATION MARK>
+3090 309D ; [.3BF1.0020.0011.0001][.3BF1.0020.0010.0002] # <HIRAGANA LETTER WI, HIRAGANA ITERATION MARK>
+30F0 30FE ; [.3BF1.0020.0011.0002][.3BF1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, KATAKANA VOICED ITERATION MARK>
+3090 309E ; [.3BF1.0020.0011.0001][.3BF1.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WI, HIRAGANA VOICED ITERATION MARK>
+30F1 30FD ; [.3BF2.0020.0011.0002][.3BF2.0020.0010.0002] # <KATAKANA LETTER WE, KATAKANA ITERATION MARK>
+3091 309D ; [.3BF2.0020.0011.0001][.3BF2.0020.0010.0002] # <HIRAGANA LETTER WE, HIRAGANA ITERATION MARK>
+30F1 30FE ; [.3BF2.0020.0011.0002][.3BF2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, KATAKANA VOICED ITERATION MARK>
+3091 309E ; [.3BF2.0020.0011.0001][.3BF2.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WE, HIRAGANA VOICED ITERATION MARK>
+30F2 30FD ; [.3BF3.0020.0011.0002][.3BF3.0020.0010.0002] # <KATAKANA LETTER WO, KATAKANA ITERATION MARK>
+FF66 30FD ; [.3BF3.0020.0011.0002][.3BF3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA ITERATION MARK>
+3092 309D ; [.3BF3.0020.0011.0001][.3BF3.0020.0010.0002] # <HIRAGANA LETTER WO, HIRAGANA ITERATION MARK>
+30F2 30FE ; [.3BF3.0020.0011.0002][.3BF3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
+FF66 30FE ; [.3BF3.0020.0011.0002][.3BF3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, KATAKANA VOICED ITERATION MARK>
+3092 309E ; [.3BF3.0020.0011.0001][.3BF3.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER WO, HIRAGANA VOICED ITERATION MARK>
+30F3 30FD ; [.3BF4.0020.0011.0002][.3BF4.0020.0010.0002] # <KATAKANA LETTER N, KATAKANA ITERATION MARK>
+FF9D 30FD ; [.3BF4.0020.0011.0002][.3BF4.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER N, KATAKANA ITERATION MARK>
+3093 309D ; [.3BF4.0020.0011.0001][.3BF4.0020.0010.0002] # <HIRAGANA LETTER N, HIRAGANA ITERATION MARK>
+30F4 30FD ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0010.0002] # <KATAKANA LETTER VU, KATAKANA ITERATION MARK>
+30A6 3099 30FD ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0010.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF73 FF9E 30FD ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+3094 309D ; [.3BC5.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0010.0002] # <HIRAGANA LETTER VU, HIRAGANA ITERATION MARK>
+3046 3099 309D ; [.3BC5.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0010.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA ITERATION MARK>
+30F4 30FE ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VU, KATAKANA VOICED ITERATION MARK>
+30A6 3099 30FE ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF73 FF9E 30FE ; [.3BC5.0020.0011.0002][.0000.0037.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER U, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+3094 309E ; [.3BC5.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER VU, HIRAGANA VOICED ITERATION MARK>
+3046 3099 309E ; [.3BC5.0020.0011.0001][.0000.0037.0002][.3BC5.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER U, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, HIRAGANA VOICED ITERATION MARK>
+30F5 30FD ; [.3BC9.0020.000F.0002][.3BC9.0020.0010.0002] # <KATAKANA LETTER SMALL KA, KATAKANA ITERATION MARK>
+3095 309D ; [.3BC9.0020.000F.0001][.3BC9.0020.0010.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA ITERATION MARK>
+30F5 30FE ; [.3BC9.0020.000F.0002][.3BC9.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KA, KATAKANA VOICED ITERATION MARK>
+3095 309E ; [.3BC9.0020.000F.0001][.3BC9.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KA, HIRAGANA VOICED ITERATION MARK>
+30F6 30FD ; [.3BCC.0020.000F.0002][.3BCC.0020.0010.0002] # <KATAKANA LETTER SMALL KE, KATAKANA ITERATION MARK>
+3096 309D ; [.3BCC.0020.000F.0001][.3BCC.0020.0010.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA ITERATION MARK>
+30F6 30FE ; [.3BCC.0020.000F.0002][.3BCC.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KE, KATAKANA VOICED ITERATION MARK>
+3096 309E ; [.3BCC.0020.000F.0001][.3BCC.0020.0010.0002][.0000.0037.0002] # <HIRAGANA LETTER SMALL KE, HIRAGANA VOICED ITERATION MARK>
+30F7 30FD ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BF0.0020.0010.0002] # <KATAKANA LETTER VA, KATAKANA ITERATION MARK>
+30EF 3099 30FD ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BF0.0020.0010.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF9C FF9E 30FD ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BF0.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+30F7 30FE ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BF0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VA, KATAKANA VOICED ITERATION MARK>
+30EF 3099 30FE ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BF0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF9C FF9E 30FE ; [.3BF0.0020.0011.0002][.0000.0037.0002][.3BF0.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WA, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+30F8 30FD ; [.3BF1.0020.0011.0002][.0000.0037.0002][.3BF1.0020.0010.0002] # <KATAKANA LETTER VI, KATAKANA ITERATION MARK>
+30F0 3099 30FD ; [.3BF1.0020.0011.0002][.0000.0037.0002][.3BF1.0020.0010.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+30F8 30FE ; [.3BF1.0020.0011.0002][.0000.0037.0002][.3BF1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VI, KATAKANA VOICED ITERATION MARK>
+30F0 3099 30FE ; [.3BF1.0020.0011.0002][.0000.0037.0002][.3BF1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+30F9 30FD ; [.3BF2.0020.0011.0002][.0000.0037.0002][.3BF2.0020.0010.0002] # <KATAKANA LETTER VE, KATAKANA ITERATION MARK>
+30F1 3099 30FD ; [.3BF2.0020.0011.0002][.0000.0037.0002][.3BF2.0020.0010.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+30F9 30FE ; [.3BF2.0020.0011.0002][.0000.0037.0002][.3BF2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VE, KATAKANA VOICED ITERATION MARK>
+30F1 3099 30FE ; [.3BF2.0020.0011.0002][.0000.0037.0002][.3BF2.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WE, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+30FA 30FD ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BF3.0020.0010.0002] # <KATAKANA LETTER VO, KATAKANA ITERATION MARK>
+30F2 3099 30FD ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BF3.0020.0010.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+FF66 FF9E 30FD ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BF3.0020.0010.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA ITERATION MARK>
+30FA 30FE ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BF3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER VO, KATAKANA VOICED ITERATION MARK>
+30F2 3099 30FE ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BF3.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER WO, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+FF66 FF9E 30FE ; [.3BF3.0020.0011.0002][.0000.0037.0002][.3BF3.0020.0010.0002][.0000.0037.0002] # <HALFWIDTH KATAKANA LETTER WO, HALFWIDTH KATAKANA VOICED SOUND MARK, KATAKANA VOICED ITERATION MARK>
+31F0 30FD ; [.3BCB.0020.000F][.3BCB.0020.0010.0002] # <KATAKANA LETTER SMALL KU, KATAKANA ITERATION MARK>
+31F0 30FE ; [.3BCB.0020.000F][.3BCB.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL KU, KATAKANA VOICED ITERATION MARK>
+31F1 30FD ; [.3BCF.0020.000F][.3BCF.0020.0010.0002] # <KATAKANA LETTER SMALL SI, KATAKANA ITERATION MARK>
+31F1 30FE ; [.3BCF.0020.000F][.3BCF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SI, KATAKANA VOICED ITERATION MARK>
+31F2 30FD ; [.3BD0.0020.000F][.3BD0.0020.0010.0002] # <KATAKANA LETTER SMALL SU, KATAKANA ITERATION MARK>
+31F2 30FE ; [.3BD0.0020.000F][.3BD0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL SU, KATAKANA VOICED ITERATION MARK>
+31F3 30FD ; [.3BD7.0020.000F][.3BD7.0020.0010.0002] # <KATAKANA LETTER SMALL TO, KATAKANA ITERATION MARK>
+31F3 30FE ; [.3BD7.0020.000F][.3BD7.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL TO, KATAKANA VOICED ITERATION MARK>
+31F4 30FD ; [.3BDA.0020.000F][.3BDA.0020.0010.0002] # <KATAKANA LETTER SMALL NU, KATAKANA ITERATION MARK>
+31F5 30FD ; [.3BDD.0020.000F][.3BDD.0020.0010.0002] # <KATAKANA LETTER SMALL HA, KATAKANA ITERATION MARK>
+31F5 30FE ; [.3BDD.0020.000F][.3BDD.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HA, KATAKANA VOICED ITERATION MARK>
+31F6 30FD ; [.3BDE.0020.000F][.3BDE.0020.0010.0002] # <KATAKANA LETTER SMALL HI, KATAKANA ITERATION MARK>
+31F6 30FE ; [.3BDE.0020.000F][.3BDE.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HI, KATAKANA VOICED ITERATION MARK>
+31F7 30FD ; [.3BDF.0020.000F][.3BDF.0020.0010.0002] # <KATAKANA LETTER SMALL HU, KATAKANA ITERATION MARK>
+31F7 30FE ; [.3BDF.0020.000F][.3BDF.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HU, KATAKANA VOICED ITERATION MARK>
+31F8 30FD ; [.3BE0.0020.000F][.3BE0.0020.0010.0002] # <KATAKANA LETTER SMALL HE, KATAKANA ITERATION MARK>
+31F8 30FE ; [.3BE0.0020.000F][.3BE0.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HE, KATAKANA VOICED ITERATION MARK>
+31F9 30FD ; [.3BE1.0020.000F][.3BE1.0020.0010.0002] # <KATAKANA LETTER SMALL HO, KATAKANA ITERATION MARK>
+31F9 30FE ; [.3BE1.0020.000F][.3BE1.0020.0010.0002][.0000.0037.0002] # <KATAKANA LETTER SMALL HO, KATAKANA VOICED ITERATION MARK>
+31FA 30FD ; [.3BE4.0020.000F][.3BE4.0020.0010.0002] # <KATAKANA LETTER SMALL MU, KATAKANA ITERATION MARK>
+31FB 30FD ; [.3BEB.0020.000F][.3BEB.0020.0010.0002] # <KATAKANA LETTER SMALL RA, KATAKANA ITERATION MARK>
+31FC 30FD ; [.3BEC.0020.000F][.3BEC.0020.0010.0002] # <KATAKANA LETTER SMALL RI, KATAKANA ITERATION MARK>
+31FD 30FD ; [.3BED.0020.000F][.3BED.0020.0010.0002] # <KATAKANA LETTER SMALL RU, KATAKANA ITERATION MARK>
+31FE 30FD ; [.3BEE.0020.000F][.3BEE.0020.0010.0002] # <KATAKANA LETTER SMALL RE, KATAKANA ITERATION MARK>
+31FF 30FD ; [.3BEF.0020.000F][.3BEF.0020.0010.0002] # <KATAKANA LETTER SMALL RO, KATAKANA ITERATION MARK>
F967 ; [.8961.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
FA70 ; [.89AD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
F905 ; [.828D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
index 4d605ba231c..0fc12634d83 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kk.pl
@@ -1,53 +1,13 @@
+{
- locale_version => 1.14,
- 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,
- 0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-0451 ; [.1D29.0020.0002] # CYRILLIC SMALL LETTER IO
-0435 0308 ; [.1D29.0020.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.1D29.0020.0008] # CYRILLIC CAPITAL LETTER IO
-0415 0308 ; [.1D29.0020.0008] # CYRILLIC CAPITAL LETTER IO
-04AF ; [.1E20.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
-04AE ; [.1E20.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
-0456 ; [.1E99.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0406 ; [.1E99.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1E99.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1E99.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0451 ; [.1FD6.0020.0002] # CYRILLIC SMALL LETTER IO
+0435 0308 ; [.1FD6.0020.0002] # CYRILLIC SMALL LETTER IO
+0401 ; [.1FD6.0020.0008] # CYRILLIC CAPITAL LETTER IO
+0415 0308 ; [.1FD6.0020.0008] # CYRILLIC CAPITAL LETTER IO
+04AF ; [.20A1.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
+04AE ; [.20A1.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
+0456 ; [.2112.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0406 ; [.2112.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
index 9cd73f4d508..0c2c90539b8 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kl.pl
@@ -1,75 +1,75 @@
+{
- locale_version => 1.14,
- 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
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-0138 ; [.1AE3.0021.0002] # LATIN SMALL LETTER KRA
-004B 0027 ; [.1AE3.0021.0008] # <LATIN CAPITAL LETTER K, APOSTROPHE>
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C0A.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0A.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0A.0022.0008] # LATIN CAPITAL LETTER ETH
+0138 ; [.1D9C.0021.0002] # LATIN SMALL LETTER KRA
+004B 0027 ; [.1D9C.0021.0008] # <LATIN CAPITAL LETTER K, APOSTROPHE>
+00FE ; [.1E10.0020.0003][.1C93.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E10.0020.0009][.1C93.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F11.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F11.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F11.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F11.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F11.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F11.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F11.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F12.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F12.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F12.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F12.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F13.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F13.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F13.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
index 1f1f9e7a018..eb99de0c14b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kn.pl
@@ -1,10 +1,10 @@
+{
- locale_version => 1.14,
- 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
-0CF1 ; [.2549.0020.0002][.FFF3.0000.0000] # KANNADA SIGN JIHVAMULIYA
-0CF2 ; [.2549.0020.0002][.FFF4.0000.0000] # KANNADA SIGN UPADHMANIYA
-0C94 ; [.2549.0020.0002][.FFF0.0000.0000] # KANNADA LETTER AU
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0C82 ; [.27BF.0020.0002][.FFF1.0000.0000] # KANNADA SIGN ANUSVARA
+0C83 ; [.27BF.0020.0002][.FFF2.0000.0000] # KANNADA SIGN VISARGA
+0CF1 ; [.27BF.0020.0002][.FFF3.0000.0000] # KANNADA SIGN JIHVAMULIYA
+0CF2 ; [.27BF.0020.0002][.FFF4.0000.0000] # KANNADA SIGN UPADHMANIYA
+0C94 ; [.27BF.0020.0002][.FFF0.0000.0000] # KANNADA LETTER AU
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
index 049f4958a7a..62634eaf129 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ko.pl
@@ -1,647 +1,647 @@
use Unicode::Collate::CJK::Korean;
+{
- locale_version => 1.14,
+ locale_version => 1.19,
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
-FA70 ; [.3776.0032.0002.4E26][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
-F905 ; [.376F.0021.0002.4E32][.37F5.0020.0002][.3860.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
-2F801 ; [.3781.0021.0002.4E38][.37F6.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F801
-F95E ; [.3772.0021.0002.4E39][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95E
-F91B ; [.3774.0021.0002.4E82][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91B
-F9BA ; [.3774.0021.0002.4E86][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BA
-F977 ; [.3774.0021.0002.4EAE][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F977
-F9FD ; [.3778.0021.0002.4EC0][.3801.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FD
-F9A8 ; [.3774.0021.0002.4EE4][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A8
-F92D ; [.3774.0021.0002.4F86][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92D
-F9B5 ; [.3774.0021.0002.4F8B][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B5
-FA30 ; [.3775.0021.0002.4FAE][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA30
-2F805 ; [.3775.0021.0002.4FAE][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F805
-2F806 ; [.377F.0023.0002.4FBB][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F806
-F965 ; [.3780.0021.0002.4FBF][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F965
-2F807 ; [.3776.0022.0002.5002][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F807
-F9D4 ; [.3774.0022.0002.502B][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D4
-2F809 ; [.3776.0022.0002.5099][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F809
-2F80B ; [.3778.0023.0002.50CF][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80B
-F9BB ; [.3774.0022.0002.50DA][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BB
-FA31 ; [.3778.0023.0002.50E7][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA31
-2F80A ; [.3778.0023.0002.50E7][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80A
-FA0C ; [.377A.0021.0002.5140][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0C
-FA74 ; [.377D.0021.0002.5145][.37FA.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA74
-FA32 ; [.3775.0021.0002.514D][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA32
-2F80E ; [.3775.0021.0002.514D][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80E
-2F814 ; [.3771.0022.0002.5167][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F814
-FA72 ; [.377B.0024.0002.5168][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA72
-F978 ; [.3774.0023.0002.5169][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F978
-F9D1 ; [.3774.0021.0002.516D][.37FE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D1
-2F811 ; [.376F.0026.0002.5177][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F811
-FA75 ; [.376F.0024.0002.5180][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA75
-2F815 ; [.377B.0021.0002.518D][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F815
-2F8D2 ; [.3775.0022.0002.5192][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D2
-2F8D3 ; [.3775.0022.0002.5195][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D3
-2F817 ; [.377A.0023.0002.5197][.37F9.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F817
-2F818 ; [.377A.003B.0002.51A4][.37FB.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F818
-2F81A ; [.3772.0022.0002.51AC][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81A
-F92E ; [.3774.0021.0002.51B7][.37EE.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92E
-F979 ; [.3774.0024.0002.51C9][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F979
-F955 ; [.3774.0021.0002.51CC][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F955
-F954 ; [.3774.0021.0002.51DC][.37FF.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F954
-FA15 ; [.3781.0022.0002.51DE][.3800.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA15
-2F81E ; [.377A.0023.0002.5203][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81E
-FA00 ; [.377B.0021.0002.5207][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA00
-2F850 ; [.377B.0021.0002.5207][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F850
-F99C ; [.3774.0022.0002.5217][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99C
-F9DD ; [.3774.0022.0002.5229][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DD
-F9FF ; [.377B.0022.0002.523A][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FF
-2F820 ; [.376F.0021.0002.523B][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F820
-2F822 ; [.3781.0021.0002.5272][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F822
-2F823 ; [.3778.002D.0002.5277][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F823
-F9C7 ; [.3774.0021.0002.5289][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C7
-F98A ; [.3774.0021.0002.529B][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98A
-F99D ; [.3774.0023.0002.52A3][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99D
-FA76 ; [.377A.0024.0002.52C7][.37F9.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA76
-2F825 ; [.377A.0024.0002.52C7][.37F9.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F825
-FA33 ; [.3775.0023.0002.52C9][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA33
-2F826 ; [.3775.0023.0002.52C9][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F826
-F952 ; [.3774.0021.0002.52D2][.37FF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F952
-F92F ; [.3774.0021.0002.52DE][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92F
-FA34 ; [.376F.0023.0002.52E4][.37FF.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA34
-2F827 ; [.376F.0023.0002.52E4][.37FF.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F827
-F97F ; [.3774.0023.0002.52F5][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97F
-FA77 ; [.377B.0022.0002.52FA][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA77
-2F828 ; [.377B.0022.0002.52FA][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F828
-2F829 ; [.3780.0022.0002.5305][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F829
-F963 ; [.3776.0021.0002.5317][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F963
-2F82B ; [.3776.0021.0002.5317][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82B
-F9EB ; [.3771.0021.0002.533F][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EB
-2F82C ; [.3781.0021.0002.5349][.37FC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82C
-FA35 ; [.3776.0025.0002.5351][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA35
-2F82D ; [.3776.0025.0002.5351][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82D
-2F82E ; [.3776.0022.0002.535A][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82E
-2F82F ; [.377B.0022.0002.5373][.37FF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82F
-F91C ; [.3774.0022.0002.5375][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91C
-2F830 ; [.377B.0021.0002.537D][.37FF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F830
-2F831 ; [.376F.0028.0002.537F][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F831
-2F832 ; [.376F.0028.0002.537F][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F832
-2F833 ; [.376F.0028.0002.537F][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F833
-F96B ; [.377D.0022.0002.53C3][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96B
-2F836 ; [.376F.0022.0002.53CA][.37FF.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F836
-2F837 ; [.3778.005E.0002.53DF][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F837
-F906 ; [.376F.002A.0002.53E5][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F906
-2F839 ; [.376F.0021.0002.53EB][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F839
-2F83A ; [.377B.0022.0002.53F1][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83A
-F9DE ; [.3774.0024.0002.540F][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DE
-F9ED ; [.3774.0021.0002.541D][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9ED
-2F83D ; [.3781.0021.0002.5438][.37FF.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83D
-F980 ; [.3774.0024.0002.5442][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F980
-2F83E ; [.377B.0026.0002.5448][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83E
-2F83F ; [.377B.0028.0002.5468][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83F
-2F840 ; [.377A.0031.0002.54A2][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F840
-F99E ; [.377A.0025.0002.54BD][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99E
-2F842 ; [.3772.0021.0002.5510][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F842
-2F843 ; [.376F.0022.0002.5553][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F843
-2F844 ; [.3781.0024.0002.5563][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F844
-2F845 ; [.3778.0024.0002.5584][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F845
-2F846 ; [.3778.0024.0002.5584][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F846
-F90B ; [.3774.0021.0002.5587][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90B
-FA7A ; [.3781.0022.0002.5599][.37FC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7A
-2F847 ; [.3781.0022.0002.5599][.37FC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F847
-FA36 ; [.376F.0022.0002.559D][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA36
-FA78 ; [.376F.0022.0002.559D][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA78
-2F848 ; [.3770.0021.0002.55AB][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F848
-FA7B ; [.377A.0022.0002.55E2][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7B
-FA37 ; [.377F.0022.0002.5606][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA37
-2F84C ; [.377F.0022.0002.5606][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84C
-FA38 ; [.376F.0026.0002.5668][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA38
-2F84F ; [.3776.0023.0002.5674][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84F
-F9A9 ; [.3774.0023.0002.56F9][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A9
-2F84B ; [.3772.0024.0002.5716][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84B
-2F855 ; [.3781.0024.0002.578B][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F855
-2F852 ; [.3778.0021.0002.57CE][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F852
-2F853 ; [.3778.0021.0002.57F4][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F853
-2F857 ; [.3776.0023.0002.5831][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F857
-FA39 ; [.3776.0033.0002.5840][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA39
-FA10 ; [.377D.0022.0002.585A][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA10
-FA7C ; [.377D.0022.0002.585A][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7C
-F96C ; [.3778.0021.0002.585E][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96C
-FA3A ; [.3775.0021.0002.58A8][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3A
-FA7D ; [.3776.0024.0002.58B3][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7D
-F94A ; [.3774.0021.0002.58D8][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94A
-F942 ; [.3774.0021.0002.58DF][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F942
-2F85C ; [.3776.0032.0002.5906][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85C
-2F85D ; [.3772.0021.0002.591A][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85D
-2F85E ; [.3775.0021.0002.5922][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85E
-FA7E ; [.377A.0024.0002.5944][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7E
-F90C ; [.3771.0023.0002.5948][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90C
-F909 ; [.376F.0024.0002.5951][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F909
-FA7F ; [.3776.0025.0002.5954][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7F
-2F85F ; [.3778.0030.0002.5962][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85F
-F981 ; [.3771.0021.0002.5973][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F981
-2F862 ; [.3781.0026.0002.59EC][.3800.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F862
-2F863 ; [.377A.002C.0002.5A1B][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F863
-2F864 ; [.377F.0030.0002.5A27][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F864
-FA80 ; [.3776.0027.0002.5A62][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA80
-2F866 ; [.3776.002B.0002.5A66][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F866
-2F986 ; [.377A.0025.0002.5AB5][.3801.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F986
-2F869 ; [.377A.0041.0002.5B08][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F869
-FA81 ; [.377B.003C.0002.5B28][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA81
-2F86A ; [.3774.0029.0002.5B3E][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86A
-2F86B ; [.3774.0029.0002.5B3E][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86B
-FA04 ; [.3772.0021.0002.5B85][.37EE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA04
-2F86D ; [.377A.0029.0002.5BC3][.37FB.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86D
-2F86E ; [.377D.003B.0002.5BD8][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86E
-F95F ; [.3771.0021.0002.5BE7][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95F
-F9AA ; [.3771.0021.0002.5BE7][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AA
-2F86F ; [.3771.0021.0002.5BE7][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86F
-F9BC ; [.3774.0023.0002.5BEE][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BC
-F9BD ; [.3771.0021.0002.5C3F][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BD
-2F877 ; [.3772.0028.0002.5C60][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F877
-F94B ; [.3774.0023.0002.5C62][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94B
-FA3B ; [.377D.0021.0002.5C64][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3B
-F9DF ; [.3774.0026.0002.5C65][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DF
-2F879 ; [.3778.002A.0002.5CC0][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F879
-F9D5 ; [.3774.0023.0002.5D19][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D5
-F921 ; [.3774.0021.0002.5D50][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F921
-F9AB ; [.3774.0025.0002.5DBA][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AB
-2F881 ; [.3778.0021.0002.5DE1][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F881
-2F882 ; [.3778.0027.0002.5DE2][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F882
-2F884 ; [.3778.0022.0002.5DFD][.37F5.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F884
-2F885 ; [.3778.0029.0002.5E28][.37F2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F885
-2F886 ; [.3775.0025.0002.5E3D][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F886
-F98E ; [.3771.0021.0002.5E74][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98E
-FA01 ; [.3772.002B.0002.5EA6][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA01
-2F88C ; [.3776.0052.0002.5EB3][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88C
-2F88D ; [.3778.0025.0002.5EB6][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88D
-F9A2 ; [.3774.0021.0002.5EC9][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A2
-F928 ; [.3774.0021.0002.5ECA][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F928
-2F88E ; [.3774.0021.0002.5ECA][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88E
-FA0B ; [.376F.0021.0002.5ED3][.37F6.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0B
-F982 ; [.3774.0025.0002.5EEC][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F982
-F943 ; [.3774.0022.0002.5F04][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F943
-2F894 ; [.3772.004B.0002.5F22][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F894
-2F895 ; [.3772.004B.0002.5F22][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F895
-2F899 ; [.3781.0025.0002.5F62][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F899
-FA84 ; [.377D.0025.0002.5F69][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA84
-2F89A ; [.377B.0027.0002.5F6B][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89A
-F9D8 ; [.3774.0021.0002.5F8B][.37FE.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D8
-F966 ; [.3776.0026.0002.5FA9][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F966
-FA85 ; [.377A.0043.0002.5FAD][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA85
-2F89D ; [.377A.002A.0002.5FCD][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89D
-2F89E ; [.377B.0026.0002.5FD7][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89E
-F9A3 ; [.3771.0021.0002.5FF5][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A3
-F960 ; [.3771.0024.0002.6012][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F960
-F9AC ; [.3774.0026.0002.601C][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AC
-2F8A0 ; [.377A.0042.0002.6081][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A0
-FA3D ; [.3781.0026.0002.6094][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3D
-2F8A3 ; [.3781.0026.0002.6094][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A3
-2F8A5 ; [.3772.0022.0002.60C7][.37F5.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A5
-FA86 ; [.3775.002D.0002.60D8][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA86
-F9B9 ; [.377A.0025.0002.60E1][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B9
-FA88 ; [.377A.002E.0002.6108][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA88
-F9D9 ; [.3774.0022.0002.6144][.37FE.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D9
-2F8A6 ; [.377B.002A.0002.6148][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A6
-2F8A7 ; [.3781.0027.0002.614C][.37F6.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A7
-2F8A9 ; [.3781.0027.0002.614C][.37F6.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A9
-FA8A ; [.377A.0047.0002.6160][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8A
-FA3E ; [.376F.0028.0002.6168][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3E
-2F8AA ; [.3774.0031.0002.617A][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AA
-FA3F ; [.377B.0022.0002.618E][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3F
-FA89 ; [.377B.0022.0002.618E][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA89
-2F8AB ; [.377B.0022.0002.618E][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AB
-F98F ; [.3774.0021.0002.6190][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98F
-2F8AD ; [.3776.0028.0002.61A4][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AD
-2F8AE ; [.377D.0030.0002.61AF][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AE
-2F8AC ; [.3781.0021.0002.61B2][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AC
-2F8AF ; [.3775.0025.0002.61DE][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AF
-FA40 ; [.377B.0022.0002.61F2][.3801.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA40
-FA8B ; [.377B.0022.0002.61F2][.3801.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8B
-2F8B0 ; [.377B.0022.0002.61F2][.3801.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B0
-F90D ; [.3774.0022.0002.61F6][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90D
-2F8B1 ; [.3774.0022.0002.61F6][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B1
-F990 ; [.3774.0022.0002.6200][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F990
-2F8B2 ; [.3778.0026.0002.6210][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B2
-F9D2 ; [.3774.0022.0002.622E][.37FE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D2
-FA8C ; [.3772.0029.0002.6234][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8C
-2F8B5 ; [.3780.002B.0002.62B1][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B5
-F925 ; [.3774.0021.0002.62C9][.37ED.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F925
-F95B ; [.3771.0024.0002.62CF][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95B
-FA02 ; [.377D.0026.0002.62D3][.37F1.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA02
-2F8B6 ; [.3776.0022.0002.62D4][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B6
-F973 ; [.3778.0022.0002.62FE][.37FF.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F973
-2F8B9 ; [.3775.0027.0002.633D][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B9
-2F8B7 ; [.377A.0027.0002.6350][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B7
-2F8BB ; [.3778.0039.0002.6368][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BB
-F9A4 ; [.3771.0024.0002.637B][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A4
-2F8BC ; [.3778.0029.0002.6383][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BC
-F975 ; [.3774.0021.0002.63A0][.37EF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F975
-2F8C1 ; [.377A.0025.0002.63A9][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C1
-FA8D ; [.377A.0030.0002.63C4][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8D
-FA8E ; [.3778.0030.0002.641C][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8E
-2F8BF ; [.377B.0025.0002.6422][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BF
-2F8C3 ; [.3775.0021.0002.6469][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C3
-F991 ; [.3771.0022.0002.649A][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F991
-2F8C5 ; [.3781.0029.0002.649D][.37FD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C5
-F930 ; [.3774.0023.0002.64C4][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F930
-FA41 ; [.3775.0025.0002.654F][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA41
-2F8C8 ; [.3775.0025.0002.654F][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C8
-FA90 ; [.377A.0030.0002.6556][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA90
-2F8C9 ; [.376F.0030.0002.656C][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C9
-F969 ; [.3778.0032.0002.6578][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F969
-F9BE ; [.3774.0025.0002.6599][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BE
-F983 ; [.3774.0028.0002.65C5][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F983
-2F8CB ; [.376F.0035.0002.65E3][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CB
-F9E0 ; [.377A.0024.0002.6613][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E0
-2F8CD ; [.377B.0026.0002.6649][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CD
-FA12 ; [.377D.0022.0002.6674][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA12
-FA91 ; [.377D.0022.0002.6674][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA91
-F9C5 ; [.3781.002A.0002.6688][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C5
-FA43 ; [.3778.002B.0002.6691][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA43
-2F8CF ; [.3778.002B.0002.6691][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CF
-FA06 ; [.3780.0022.0002.66B4][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA06
-F98B ; [.3774.0022.0002.66C6][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98B
-F901 ; [.376F.0033.0002.66F4][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F901
-2F8CC ; [.3778.002D.0002.66F8][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CC
-2F8D4 ; [.377D.0023.0002.6700][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D4
-F929 ; [.3774.0022.0002.6717][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F929
-FA92 ; [.3774.0022.0002.6717][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA92
-2F8D8 ; [.3774.0022.0002.6717][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D8
-FA93 ; [.3775.0025.0002.671B][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA93
-2F8D9 ; [.3775.0025.0002.671B][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D9
-F9E1 ; [.3774.0028.0002.674E][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E1
-2F8DC ; [.3780.0025.0002.6753][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DC
-FA94 ; [.377B.002E.0002.6756][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA94
-2F8DB ; [.376F.0038.0002.675E][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DB
-F9C8 ; [.3771.0021.0002.677B][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C8
-F9F4 ; [.3774.0021.0002.6797][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F4
-F9C9 ; [.3774.0023.0002.67F3][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C9
-F9DA ; [.3774.0023.0002.6817][.37FE.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DA
-F97A ; [.3774.0025.0002.6881][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97A
-FA44 ; [.3775.0027.0002.6885][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA44
-2F8E2 ; [.3775.0027.0002.6885][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E2
-F9E2 ; [.3774.0029.0002.68A8][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E2
-2F8E8 ; [.3778.0062.0002.6942][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E8
-2F8EA ; [.376F.002A.0002.69EA][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EA
-F914 ; [.377A.0028.0002.6A02][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F914
-F95C ; [.377A.0028.0002.6A02][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95C
-F9BF ; [.377A.0028.0002.6A02][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BF
-F94C ; [.3774.0024.0002.6A13][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94C
-F931 ; [.3774.0024.0002.6AD3][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F931
-2F8ED ; [.377B.0021.0002.6ADB][.37FF.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8ED
-F91D ; [.3774.0023.0002.6B04][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91D
-2F8EF ; [.377D.0028.0002.6B21][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EF
-2F8F1 ; [.3781.0025.0002.6B54][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F1
-2F8F3 ; [.3778.0023.0002.6B72][.37F2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F3
-F98C ; [.3774.0023.0002.6B77][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98C
-F9A5 ; [.3774.0023.0002.6BAE][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A5
-F970 ; [.3778.0023.0002.6BBA][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F970
-FA96 ; [.3778.0023.0002.6BBA][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA96
-2F8F5 ; [.3778.0023.0002.6BBA][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F5
-2F8FA ; [.3776.0025.0002.6C4E][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FA
-F972 ; [.377D.0024.0002.6C88][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F972
-2F8FC ; [.377A.002B.0002.6CBF][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FC
-F968 ; [.3780.0024.0002.6CCC][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F968
-F9E3 ; [.3771.0022.0002.6CE5][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E3
-F915 ; [.3774.0021.0002.6D1B][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F915
-FA05 ; [.3772.002A.0002.6D1E][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA05
-2F900 ; [.3780.0029.0002.6D3E][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F900
-F9CA ; [.3774.0025.0002.6D41][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CA
-FA97 ; [.3774.0025.0002.6D41][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA97
-2F902 ; [.3774.0025.0002.6D41][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F902
-2F903 ; [.3781.002E.0002.6D69][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F903
-F92A ; [.3774.0023.0002.6D6A][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92A
-FA45 ; [.3781.002A.0002.6D77][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA45
-2F901 ; [.3781.002A.0002.6D77][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F901
-2F904 ; [.377D.0025.0002.6D78][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F904
-2F905 ; [.377A.0022.0002.6D85][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F905
-F9F5 ; [.3774.0022.0002.6DCB][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F5
-F94D ; [.3774.0025.0002.6DDA][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94D
-F9D6 ; [.3774.0024.0002.6DEA][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D6
-2F90E ; [.377A.0026.0002.6DF9][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90E
-FA46 ; [.377B.002C.0002.6E1A][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA46
-2F908 ; [.3781.002B.0002.6E2F][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F908
-2F909 ; [.377A.002B.0002.6E6E][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F909
-F9CB ; [.3774.0026.0002.6E9C][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CB
-F9EC ; [.3771.0022.0002.6EBA][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EC
-FA99 ; [.377B.002B.0002.6ECB][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA99
-2F90B ; [.377B.002B.0002.6ECB][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90B
-F904 ; [.3781.0022.0002.6ED1][.37F6.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F904
-F94E ; [.3774.0026.0002.6F0F][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94E
-FA47 ; [.3781.0026.0002.6F22][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA47
-FA9A ; [.3781.0026.0002.6F22][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9A
-F992 ; [.3774.0024.0002.6F23][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F992
-2F90F ; [.377B.0033.0002.6F6E][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90F
-2F912 ; [.3776.003C.0002.6FC6][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F912
-F922 ; [.3774.0025.0002.6FEB][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F922
-F984 ; [.3774.002A.0002.6FFE][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F984
-2F915 ; [.377A.002D.0002.701B][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F915
-FA9B ; [.377B.003D.0002.701E][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9B
-2F914 ; [.377B.003D.0002.701E][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F914
-2F835 ; [.3781.002D.0002.7070][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F835
-2F918 ; [.377B.002B.0002.707D][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F918
-F9FB ; [.377B.002C.0002.7099][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FB
-2F91A ; [.377F.0028.0002.70AD][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F91A
-F99F ; [.3774.0025.0002.70C8][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99F
-F916 ; [.3774.0022.0002.70D9][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F916
-F993 ; [.3774.0025.0002.7149][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F993
-FA48 ; [.377B.002D.0002.716E][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA48
-FA9C ; [.377B.002D.0002.716E][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9C
-F9C0 ; [.3774.0026.0002.71CE][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C0
-F9EE ; [.3774.0023.0002.71D0][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EE
-F932 ; [.3774.0027.0002.7210][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F932
-F91E ; [.3774.0026.0002.721B][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91E
-2F920 ; [.377D.0036.0002.7228][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F920
-FA9E ; [.377B.0028.0002.7235][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9E
-2F921 ; [.377B.0028.0002.7235][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F921
-F946 ; [.3774.0023.0002.7262][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F946
-2F924 ; [.3778.0030.0002.7280][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F924
-FA9F ; [.3776.0027.0002.72AF][.37F1.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9F
-F9FA ; [.3778.0035.0002.72C0][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FA
-F92B ; [.3774.0024.0002.72FC][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92B
-FA16 ; [.377B.002E.0002.732A][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA16
-FAA0 ; [.377B.002E.0002.732A][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA0
-F9A7 ; [.3774.0021.0002.7375][.37F3.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A7
-2F928 ; [.3772.0023.0002.737A][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F928
-F961 ; [.3778.0021.0002.7387][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F961
-F9DB ; [.3778.0021.0002.7387][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DB
-2F929 ; [.377A.0025.0002.738B][.37F6.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F929
-F9AD ; [.3774.0027.0002.73B2][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AD
-F917 ; [.3774.0023.0002.73DE][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F917
-F9E4 ; [.3774.002D.0002.7406][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E4
-F9CC ; [.3774.0028.0002.7409][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CC
-FA4A ; [.377F.002B.0002.7422][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4A
-2F92F ; [.377A.003D.0002.745C][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F92F
-F9AE ; [.3781.002D.0002.7469][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AE
-FAA1 ; [.377B.0057.0002.7471][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA1
-2F930 ; [.377B.0057.0002.7471][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F930
-F994 ; [.3774.0026.0002.7489][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F994
-F9EF ; [.3774.0024.0002.7498][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EF
-2F932 ; [.376F.003A.0002.74CA][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F932
-F9CD ; [.3774.002A.0002.7559][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CD
-F976 ; [.3774.0022.0002.7565][.37EF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F976
-F962 ; [.377A.002C.0002.7570][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F962
-2F938 ; [.377A.002C.0002.7570][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F938
-F9E5 ; [.3774.002F.0002.75E2][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E5
-2F93A ; [.377A.0059.0002.7610][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F93A
-FAA5 ; [.377A.0023.0002.761F][.37F5.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA5
-F9C1 ; [.3774.0027.0002.7642][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C1
-F90E ; [.3774.0023.0002.7669][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90E
-FA17 ; [.377A.0022.0002.76CA][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA17
-FAA6 ; [.377A.0022.0002.76CA][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA6
-FAA7 ; [.3778.002B.0002.76DB][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA7
-F933 ; [.3774.0028.0002.76E7][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F933
-FAA8 ; [.377B.0021.0002.76F4][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA8
-2F940 ; [.377B.0021.0002.76F4][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F940
-F96D ; [.3778.002C.0002.7701][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96D
-2F945 ; [.377B.0033.0002.771E][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F945
-FAAA ; [.377D.0023.0002.7740][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAA
-2F94A ; [.377B.0034.0002.778B][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94A
-F9CE ; [.3774.002C.0002.786B][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CE
-F93B ; [.3774.0021.0002.788C][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93B
-2F94F ; [.3774.0021.0002.788C][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94F
-FA4B ; [.3776.0038.0002.7891][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4B
-F947 ; [.3774.0024.0002.78CA][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F947
-F964 ; [.3776.0032.0002.78FB][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F964
-F985 ; [.3774.002B.0002.792A][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F985
-FA4C ; [.3778.0046.0002.793E][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4C
-FA4E ; [.376F.004C.0002.7948][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4E
-FA4D ; [.377B.0035.0002.7949][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4D
-FA4F ; [.377A.0032.0002.7950][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4F
-FA50 ; [.377B.0039.0002.7956][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA50
-2F953 ; [.377B.0039.0002.7956][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F953
-FA51 ; [.377D.0023.0002.795D][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA51
-FA19 ; [.3778.002C.0002.795E][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA19
-FA1A ; [.3778.0037.0002.7965][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1A
-F93C ; [.3774.0022.0002.797F][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93C
-FA52 ; [.3781.0027.0002.798D][.37F6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA52
-FA53 ; [.377B.0044.0002.798E][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA53
-FA1B ; [.3776.0028.0002.798F][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1B
-2F956 ; [.3776.0028.0002.798F][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F956
-F9B6 ; [.3774.0023.0002.79AE][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B6
-F995 ; [.3771.0023.0002.79CA][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F995
-2F957 ; [.377D.0024.0002.79EB][.37FA.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F957
-F956 ; [.3774.0023.0002.7A1C][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F956
-FA54 ; [.376F.0025.0002.7A40][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA54
-2F959 ; [.376F.0025.0002.7A40][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F959
-FA55 ; [.3772.0022.0002.7A81][.37F5.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA55
-F9F7 ; [.3774.0022.0002.7ACB][.3801.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F7
-F9F8 ; [.3774.0023.0002.7B20][.3801.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F8
-FA56 ; [.377B.0027.0002.7BC0][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA56
-FAAD ; [.377B.0027.0002.7BC0][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAD
-2F962 ; [.377B.003D.0002.7BC6][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F962
-2F963 ; [.377D.0026.0002.7BC9][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F963
-F9A6 ; [.3774.0025.0002.7C3E][.37F3.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A6
-F944 ; [.3774.0026.0002.7C60][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F944
-F9F9 ; [.3774.0024.0002.7C92][.3801.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F9
-FA1D ; [.377B.0047.0002.7CBE][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1D
-FA03 ; [.3772.0029.0002.7CD6][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA03
-F97B ; [.3774.0029.0002.7CE7][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97B
-2F96A ; [.376F.004F.0002.7D00][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96A
-F9CF ; [.3771.0022.0002.7D10][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CF
-F96A ; [.3778.0023.0002.7D22][.37EE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96A
-F94F ; [.3774.0028.0002.7D2F][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94F
-FAAF ; [.377B.0063.0002.7D5B][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAF
-2F96C ; [.3776.0034.0002.7D63][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96C
-F93D ; [.3774.0023.0002.7DA0][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93D
-F957 ; [.3774.0024.0002.7DBE][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F957
-2F96E ; [.377D.0030.0002.7DC7][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96E
-F996 ; [.3774.0027.0002.7DF4][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F996
-FA57 ; [.3774.0027.0002.7DF4][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA57
-FAB0 ; [.3774.0027.0002.7DF4][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB0
-FA58 ; [.377B.0036.0002.7E09][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA58
-F950 ; [.3774.0029.0002.7E37][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F950
-FA59 ; [.3776.0026.0002.7E41][.37F1.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA59
-2F970 ; [.3778.0052.0002.7E45][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F970
-FAB1 ; [.3776.0035.0002.7F3E][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB1
-FA5A ; [.3778.0035.0002.7F72][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5A
-F9E6 ; [.3774.0031.0002.7F79][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E6
-F90F ; [.3774.0024.0002.7F85][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90F
-F9AF ; [.3774.0029.0002.7F9A][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AF
-FA1E ; [.377A.0036.0002.7FBD][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1E
-2F979 ; [.376F.005A.0002.7FFA][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F979
-F934 ; [.3774.0029.0002.8001][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F934
-FA5B ; [.377B.0033.0002.8005][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5B
-FAB2 ; [.377B.0033.0002.8005][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB2
-2F97A ; [.377B.0033.0002.8005][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97A
-F9B0 ; [.3774.002B.0002.8046][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B0
-F997 ; [.3774.0028.0002.806F][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F997
-2F97F ; [.377D.0028.0002.8070][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97F
-F945 ; [.3774.0027.0002.807E][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F945
-F953 ; [.3774.0022.0002.808B][.37FF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F953
-2F8D6 ; [.3771.0023.0002.80AD][.37FA.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D6
-2F982 ; [.377A.0024.0002.80B2][.37FE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F982
-2F985 ; [.3776.003F.0002.813E][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F985
-F926 ; [.3774.0022.0002.81D8][.37ED.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F926
-F9F6 ; [.3774.0024.0002.81E8][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F6
-FA5C ; [.377D.002A.0002.81ED][.37FD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5C
-2F893 ; [.377A.002E.0002.8201][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F893
-2F98B ; [.377A.002E.0002.8201][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F98B
-F97C ; [.3774.002A.0002.826F][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97C
-2F990 ; [.377A.0037.0002.828B][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F990
-2F991 ; [.377B.003B.0002.829D][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F991
-2F993 ; [.3781.0029.0002.82B1][.37F6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F993
-2F994 ; [.3776.0035.0002.82B3][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F994
-2F995 ; [.377A.0029.0002.82BD][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F995
-F974 ; [.377A.0023.0002.82E5][.37EF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F974
-2F998 ; [.377A.0023.0002.82E5][.37EF.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F998
-2F996 ; [.376F.003A.0002.82E6][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F996
-2F999 ; [.377D.002E.0002.831D][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F999
-2F99C ; [.377A.004C.0002.8323][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99C
-F9FE ; [.3772.0022.0002.8336][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FE
-FAB3 ; [.3781.0034.0002.8352][.37F6.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB3
-2F99D ; [.3775.002A.0002.83BD][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99D
-F93E ; [.3774.0024.0002.83C9][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93E
-2F9A1 ; [.376F.0023.0002.83CA][.37FA.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A1
-2F9A2 ; [.376F.0025.0002.83CC][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A2
-2F9A3 ; [.377D.0029.0002.83DC][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A3
-FAB4 ; [.3781.002A.0002.83EF][.37F6.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB4
-F958 ; [.3774.0025.0002.83F1][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F958
-F918 ; [.3774.0025.0002.843D][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F918
-F96E ; [.377A.0023.0002.8449][.37F3.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96E
-FA5F ; [.377B.0034.0002.8457][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5F
-2F99F ; [.377B.0034.0002.8457][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99F
-F999 ; [.3774.0029.0002.84EE][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F999
-2F9A8 ; [.3780.002A.0002.84F1][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A8
-F9C2 ; [.3774.002A.0002.84FC][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C2
-2F9AC ; [.377A.0062.0002.8564][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9AC
-F923 ; [.3774.0028.0002.85CD][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F923
-F9F0 ; [.3774.0025.0002.85FA][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F0
-F935 ; [.3774.002A.0002.8606][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F935
-F91F ; [.3774.0027.0002.862D][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91F
-F910 ; [.3774.0025.0002.863F][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F910
-2F9B3 ; [.3781.0023.0002.8650][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B3
-F936 ; [.3774.002B.0002.865C][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F936
-2F9B4 ; [.3774.002B.0002.865C][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B4
-2F9B5 ; [.3781.0025.0002.8667][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B5
-2F9B7 ; [.377D.0034.0002.86A9][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B7
-2F9BC ; [.377B.0026.0002.8728][.37F1.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9BC
-F911 ; [.3774.0026.0002.87BA][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F911
-F927 ; [.3774.0023.0002.881F][.37ED.0020.0002][.385B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F927
-FA08 ; [.3781.0025.0002.884C][.37EE.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA08
-2F9C4 ; [.377A.0030.0002.8863][.3800.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9C4
-F9A0 ; [.3774.0026.0002.88C2][.37F3.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A0
-F9E7 ; [.3774.0034.0002.88CF][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E7
-F9E8 ; [.3774.0035.0002.88E1][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E8
-F912 ; [.3774.0027.0002.88F8][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F912
-FA60 ; [.376F.0028.0002.8910][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA60
-FAB6 ; [.376F.0034.0002.8941][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB6
-F924 ; [.3774.0029.0002.8964][.37ED.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F924
-FAB7 ; [.3776.002D.0002.8986][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB7
-FA0A ; [.376F.0028.0002.898B][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0A
-FA61 ; [.3778.0037.0002.8996][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA61
-FAB8 ; [.3778.0037.0002.8996][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB8
-2F9CF ; [.3778.0031.0002.8AA0][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9CF
-F96F ; [.3778.002B.0002.8AAA][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96F
-F9A1 ; [.3778.002B.0002.8AAA][.37F1.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A1
-FAB9 ; [.377B.0046.0002.8ABF][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB9
-FABB ; [.377D.0026.0002.8ACB][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABB
-F97D ; [.3774.002B.0002.8AD2][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97D
-F941 ; [.3774.0021.0002.8AD6][.37F5.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F941
-FABE ; [.377A.0046.0002.8AED][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABE
-2F9D0 ; [.377A.0046.0002.8AED][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D0
-FA22 ; [.377B.0030.0002.8AF8][.37F2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA22
-FABA ; [.377B.0030.0002.8AF8][.37F2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABA
-F95D ; [.3771.0021.0002.8AFE][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95D
-FABD ; [.3771.0021.0002.8AFE][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABD
-FA62 ; [.377A.0022.0002.8B01][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA62
-FABC ; [.377A.0022.0002.8B01][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABC
-FA63 ; [.376F.002D.0002.8B39][.37FF.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA63
-FABF ; [.376F.002D.0002.8B39][.37FF.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABF
-F9FC ; [.3778.002C.0002.8B58][.3801.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FC
-F95A ; [.3772.002A.0002.8B80][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95A
-FAC0 ; [.3776.0023.0002.8B8A][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC0
-2F9D1 ; [.3776.0023.0002.8B8A][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D1
-F900 ; [.376F.0057.0002.8C48][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F900
-2F9D2 ; [.3778.003B.0002.8C55][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D2
-2F9D4 ; [.376F.002E.0002.8CAB][.37F6.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D4
-2F9D5 ; [.3776.0032.0002.8CC1][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D5
-F948 ; [.3774.0025.0002.8CC2][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F948
-F903 ; [.376F.0039.0002.8CC8][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F903
-FA64 ; [.3776.002D.0002.8CD3][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA64
-FA65 ; [.377B.002B.0002.8D08][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA65
-FAC1 ; [.377B.002B.0002.8D08][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC1
-2F9D6 ; [.376F.0039.0002.8D1B][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D6
-2F9D7 ; [.376F.0058.0002.8D77][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D7
-2F9DA ; [.3776.0027.0002.8DCB][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DA
-F937 ; [.3774.002C.0002.8DEF][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F937
-F902 ; [.377D.002D.0002.8ECA][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F902
-F998 ; [.3774.002A.0002.8F26][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F998
-F9D7 ; [.3774.0026.0002.8F2A][.37FE.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D7
-FAC2 ; [.3778.004F.0002.8F38][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC2
-2F9DF ; [.3778.004F.0002.8F38][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DF
-FA07 ; [.3776.002F.0002.8F3B][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA07
-F98D ; [.3774.0026.0002.8F62][.37F3.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98D
-F971 ; [.377B.003E.0002.8FB0][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F971
-F99A ; [.3774.002B.0002.9023][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99A
-FA25 ; [.377A.0027.0002.9038][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA25
-FA67 ; [.377A.0027.0002.9038][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA67
-FAC3 ; [.377B.0041.0002.9072][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC3
-F9C3 ; [.3774.002B.0002.907C][.37F9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C3
-F913 ; [.3774.0028.0002.908F][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F913
-FA2E ; [.3774.0028.0002.90DE][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2E
-FA26 ; [.3772.0045.0002.90FD][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA26
-F919 ; [.3774.0026.0002.916A][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F919
-F9B7 ; [.3774.0024.0002.91B4][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B7
-F9E9 ; [.3774.0036.0002.91CC][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E9
-F97E ; [.3774.002D.0002.91CF][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97E
-F90A ; [.376F.0021.0002.91D1][.3801.0020.0002][.385A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90A
-F9B1 ; [.3774.002D.0002.9234][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B1
-2F9E7 ; [.3776.002F.0002.9238][.37ED.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E7
-2F9EA ; [.3776.0039.0002.927C][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EA
-2F9E8 ; [.3781.003F.0002.92D7][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E8
-F93F ; [.3774.0025.0002.9304][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93F
-F99B ; [.3774.002C.0002.934A][.37F3.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99B
-2F9EE ; [.376F.0033.0002.958B][.37EE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EE
-F986 ; [.3774.002E.0002.95AD][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F986
-F9C6 ; [.377A.0031.0002.962E][.37F6.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C6
-F951 ; [.3774.002D.0002.964B][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F951
-FA09 ; [.376F.0037.0002.964D][.37ED.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA09
-F959 ; [.3774.0026.0002.9675][.37FF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F959
-F9D3 ; [.3774.0023.0002.9678][.37FE.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D3
-FAC6 ; [.377B.004E.0002.967C][.37F1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC6
-F9DC ; [.3774.0021.0002.9686][.37FE.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DC
-F9F1 ; [.3774.0027.0002.96A3][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F1
-FA2F ; [.3774.0025.0002.96B7][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2F
-F9B8 ; [.3774.0026.0002.96B8][.37F4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B8
-F9EA ; [.3774.0038.0002.96E2][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EA
-FA68 ; [.3771.0023.0002.96E3][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA68
-FAC7 ; [.3771.0023.0002.96E3][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC7
-F9B2 ; [.3774.002E.0002.96F6][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B2
-F949 ; [.3774.0028.0002.96F7][.37F8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F949
-2F9F5 ; [.377A.0031.0002.9723][.37FA.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9F5
-F938 ; [.3774.002E.0002.9732][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F938
-F9B3 ; [.3774.002F.0002.9748][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B3
-FA1C ; [.377B.0054.0002.9756][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1C
-FAC8 ; [.377B.0054.0002.9756][.37F1.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC8
-2F9FA ; [.3780.0034.0002.97E0][.3801.0020.0002][.3852.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9FA
-FA69 ; [.3781.0026.0002.97FF][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA69
-FACA ; [.3781.0026.0002.97FF][.37EF.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACA
-F9B4 ; [.3774.0030.0002.9818][.37F3.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B4
-FA6A ; [.3776.002E.0002.983B][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA6A
-FACC ; [.3776.002E.0002.983B][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACC
-F9D0 ; [.3774.002E.0002.985E][.37FE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D0
-2FA02 ; [.376F.005B.0002.98E2][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA02
-FA2A ; [.3776.0039.0002.98EF][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2A
-FA2B ; [.3778.005A.0002.98FC][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2B
-FA2C ; [.376F.0030.0002.9928][.37F6.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2C
-F91A ; [.3774.0027.0002.99F1][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91A
-F987 ; [.3774.0030.0002.9A6A][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F987
-FACD ; [.377B.004C.0002.9B12][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACD
-2FA0A ; [.377B.004C.0002.9B12][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA0A
-F939 ; [.3774.002F.0002.9B6F][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F939
-F9F2 ; [.3774.0028.0002.9C57][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F2
-FA2D ; [.3781.0025.0002.9DB4][.37ED.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2D
-F93A ; [.3774.0030.0002.9DFA][.37F5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93A
-F920 ; [.3774.0028.0002.9E1E][.37ED.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F920
-F940 ; [.3774.0026.0002.9E7F][.37F5.0020.0002][.384B.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F940
-F988 ; [.3774.0031.0002.9E97][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F988
-F9F3 ; [.3774.0029.0002.9E9F][.3801.0020.0002][.384E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F3
-2FA15 ; [.3775.0028.0002.9EBB][.37ED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA15
-F989 ; [.3774.0032.0002.9ECE][.37F3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F989
-2FA1C ; [.3776.004A.0002.9F3B][.3801.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA1C
-F9C4 ; [.3774.0021.0002.9F8D][.37F9.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C4
-FAD9 ; [.3774.002E.0002.9F8E][.37F5.0020.0002][.385F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAD9
-F907 ; [.376F.0056.0002.9F9C][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F907
-F908 ; [.376F.0056.0002.9F9C][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F908
-FACE ; [.376F.0056.0002.9F9C][.37FA.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACE
+ entry => <<'ENTRY', # for DUCET v8.0.0
+F967 ; [.3A65.0021.0002.4E0D][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
+FA70 ; [.3A65.0032.0002.4E26][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
+F905 ; [.3A5E.0021.0002.4E32][.3AE4.0020.0002][.3B4F.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
+2F801 ; [.3A70.0021.0002.4E38][.3AE5.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F801
+F95E ; [.3A61.0021.0002.4E39][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95E
+F91B ; [.3A63.0021.0002.4E82][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91B
+F9BA ; [.3A63.0021.0002.4E86][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BA
+F977 ; [.3A63.0021.0002.4EAE][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F977
+F9FD ; [.3A67.0021.0002.4EC0][.3AF0.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FD
+F9A8 ; [.3A63.0021.0002.4EE4][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A8
+F92D ; [.3A63.0021.0002.4F86][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92D
+F9B5 ; [.3A63.0021.0002.4F8B][.3AE3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B5
+FA30 ; [.3A64.0021.0002.4FAE][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA30
+2F805 ; [.3A64.0021.0002.4FAE][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F805
+2F806 ; [.3A6E.0023.0002.4FBB][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F806
+F965 ; [.3A6F.0021.0002.4FBF][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F965
+2F807 ; [.3A65.0022.0002.5002][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F807
+F9D4 ; [.3A63.0022.0002.502B][.3AED.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D4
+2F809 ; [.3A65.0022.0002.5099][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F809
+2F80B ; [.3A67.0023.0002.50CF][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80B
+F9BB ; [.3A63.0022.0002.50DA][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BB
+FA31 ; [.3A67.0023.0002.50E7][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA31
+2F80A ; [.3A67.0023.0002.50E7][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80A
+FA0C ; [.3A69.0021.0002.5140][.3AE4.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0C
+FA74 ; [.3A6C.0021.0002.5145][.3AE9.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA74
+FA32 ; [.3A64.0021.0002.514D][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA32
+2F80E ; [.3A64.0021.0002.514D][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F80E
+2F814 ; [.3A60.0022.0002.5167][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F814
+FA72 ; [.3A6A.0024.0002.5168][.3AE0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA72
+F978 ; [.3A63.0023.0002.5169][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F978
+F9D1 ; [.3A63.0021.0002.516D][.3AED.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D1
+2F811 ; [.3A5E.0026.0002.5177][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F811
+FA75 ; [.3A5E.0024.0002.5180][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA75
+2F815 ; [.3A6A.0021.0002.518D][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F815
+2F8D2 ; [.3A64.0022.0002.5192][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D2
+2F8D3 ; [.3A64.0022.0002.5195][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D3
+2F817 ; [.3A69.0023.0002.5197][.3AE8.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F817
+2F818 ; [.3A69.003B.0002.51A4][.3AEA.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F818
+2F81A ; [.3A61.0022.0002.51AC][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81A
+F92E ; [.3A63.0021.0002.51B7][.3ADD.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92E
+F979 ; [.3A63.0024.0002.51C9][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F979
+F955 ; [.3A63.0021.0002.51CC][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F955
+F954 ; [.3A63.0021.0002.51DC][.3AEE.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F954
+FA15 ; [.3A70.0022.0002.51DE][.3AEF.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA15
+2F81E ; [.3A69.0023.0002.5203][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F81E
+FA00 ; [.3A6A.0021.0002.5207][.3AE0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA00
+2F850 ; [.3A6A.0021.0002.5207][.3AE0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F850
+F99C ; [.3A63.0022.0002.5217][.3AE2.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99C
+F9DD ; [.3A63.0022.0002.5229][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DD
+F9FF ; [.3A6A.0022.0002.523A][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FF
+2F820 ; [.3A5E.0021.0002.523B][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F820
+2F822 ; [.3A70.0021.0002.5272][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F822
+2F823 ; [.3A67.002D.0002.5277][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F823
+F9C7 ; [.3A63.0021.0002.5289][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C7
+F98A ; [.3A63.0021.0002.529B][.3AE2.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98A
+F99D ; [.3A63.0023.0002.52A3][.3AE2.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99D
+FA76 ; [.3A69.0024.0002.52C7][.3AE8.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA76
+2F825 ; [.3A69.0024.0002.52C7][.3AE8.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F825
+FA33 ; [.3A64.0023.0002.52C9][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA33
+2F826 ; [.3A64.0023.0002.52C9][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F826
+F952 ; [.3A63.0021.0002.52D2][.3AEE.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F952
+F92F ; [.3A63.0021.0002.52DE][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92F
+FA34 ; [.3A5E.0023.0002.52E4][.3AEE.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA34
+2F827 ; [.3A5E.0023.0002.52E4][.3AEE.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F827
+F97F ; [.3A63.0023.0002.52F5][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97F
+FA77 ; [.3A6A.0022.0002.52FA][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA77
+2F828 ; [.3A6A.0022.0002.52FA][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F828
+2F829 ; [.3A6F.0022.0002.5305][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F829
+F963 ; [.3A65.0021.0002.5317][.3AE9.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F963
+2F82B ; [.3A65.0021.0002.5317][.3AE9.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82B
+F9EB ; [.3A60.0021.0002.533F][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EB
+2F82C ; [.3A70.0021.0002.5349][.3AEB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82C
+FA35 ; [.3A65.0025.0002.5351][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA35
+2F82D ; [.3A65.0025.0002.5351][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82D
+2F82E ; [.3A65.0022.0002.535A][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82E
+2F82F ; [.3A6A.0022.0002.5373][.3AEE.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F82F
+F91C ; [.3A63.0022.0002.5375][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91C
+2F830 ; [.3A6A.0021.0002.537D][.3AEE.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F830
+2F831 ; [.3A5E.0028.0002.537F][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F831
+2F832 ; [.3A5E.0028.0002.537F][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F832
+2F833 ; [.3A5E.0028.0002.537F][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F833
+F96B ; [.3A6C.0022.0002.53C3][.3ADC.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96B
+2F836 ; [.3A5E.0022.0002.53CA][.3AEE.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F836
+2F837 ; [.3A67.005E.0002.53DF][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F837
+F906 ; [.3A5E.002A.0002.53E5][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F906
+2F839 ; [.3A5E.0021.0002.53EB][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F839
+2F83A ; [.3A6A.0022.0002.53F1][.3AF0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83A
+F9DE ; [.3A63.0024.0002.540F][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DE
+F9ED ; [.3A63.0021.0002.541D][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9ED
+2F83D ; [.3A70.0021.0002.5438][.3AEE.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83D
+F980 ; [.3A63.0024.0002.5442][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F980
+2F83E ; [.3A6A.0026.0002.5448][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83E
+2F83F ; [.3A6A.0028.0002.5468][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F83F
+2F840 ; [.3A69.0031.0002.54A2][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F840
+F99E ; [.3A69.0025.0002.54BD][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99E
+2F842 ; [.3A61.0021.0002.5510][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F842
+2F843 ; [.3A5E.0022.0002.5553][.3AE3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F843
+2F844 ; [.3A70.0024.0002.5563][.3ADC.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F844
+2F845 ; [.3A67.0024.0002.5584][.3AE0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F845
+2F846 ; [.3A67.0024.0002.5584][.3AE0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F846
+F90B ; [.3A63.0021.0002.5587][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90B
+FA7A ; [.3A70.0022.0002.5599][.3AEB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7A
+2F847 ; [.3A70.0022.0002.5599][.3AEB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F847
+FA36 ; [.3A5E.0022.0002.559D][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA36
+FA78 ; [.3A5E.0022.0002.559D][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA78
+2F848 ; [.3A5F.0021.0002.55AB][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F848
+FA7B ; [.3A69.0022.0002.55E2][.3AE4.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7B
+FA37 ; [.3A6E.0022.0002.5606][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA37
+2F84C ; [.3A6E.0022.0002.5606][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84C
+FA38 ; [.3A5E.0026.0002.5668][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA38
+2F84F ; [.3A65.0023.0002.5674][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84F
+F9A9 ; [.3A63.0023.0002.56F9][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A9
+2F84B ; [.3A61.0024.0002.5716][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F84B
+2F855 ; [.3A70.0024.0002.578B][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F855
+2F852 ; [.3A67.0021.0002.57CE][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F852
+2F853 ; [.3A67.0021.0002.57F4][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F853
+2F857 ; [.3A65.0023.0002.5831][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F857
+FA39 ; [.3A65.0033.0002.5840][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA39
+FA10 ; [.3A6C.0022.0002.585A][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA10
+FA7C ; [.3A6C.0022.0002.585A][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7C
+F96C ; [.3A67.0021.0002.585E][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96C
+FA3A ; [.3A64.0021.0002.58A8][.3AE9.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3A
+FA7D ; [.3A65.0024.0002.58B3][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7D
+F94A ; [.3A63.0021.0002.58D8][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94A
+F942 ; [.3A63.0021.0002.58DF][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F942
+2F85C ; [.3A65.0032.0002.5906][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85C
+2F85D ; [.3A61.0021.0002.591A][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85D
+2F85E ; [.3A64.0021.0002.5922][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85E
+FA7E ; [.3A69.0024.0002.5944][.3AE0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7E
+F90C ; [.3A60.0023.0002.5948][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90C
+F909 ; [.3A5E.0024.0002.5951][.3AE3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F909
+FA7F ; [.3A65.0025.0002.5954][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA7F
+2F85F ; [.3A67.0030.0002.5962][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F85F
+F981 ; [.3A60.0021.0002.5973][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F981
+2F862 ; [.3A70.0026.0002.59EC][.3AEF.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F862
+2F863 ; [.3A69.002C.0002.5A1B][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F863
+2F864 ; [.3A6E.0030.0002.5A27][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F864
+FA80 ; [.3A65.0027.0002.5A62][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA80
+2F866 ; [.3A65.002B.0002.5A66][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F866
+2F986 ; [.3A69.0025.0002.5AB5][.3AF0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F986
+2F869 ; [.3A69.0041.0002.5B08][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F869
+FA81 ; [.3A6A.003C.0002.5B28][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA81
+2F86A ; [.3A63.0029.0002.5B3E][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86A
+2F86B ; [.3A63.0029.0002.5B3E][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86B
+FA04 ; [.3A61.0021.0002.5B85][.3ADD.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA04
+2F86D ; [.3A69.0029.0002.5BC3][.3AEA.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86D
+2F86E ; [.3A6C.003B.0002.5BD8][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86E
+F95F ; [.3A60.0021.0002.5BE7][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95F
+F9AA ; [.3A60.0021.0002.5BE7][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AA
+2F86F ; [.3A60.0021.0002.5BE7][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F86F
+F9BC ; [.3A63.0023.0002.5BEE][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BC
+F9BD ; [.3A60.0021.0002.5C3F][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BD
+2F877 ; [.3A61.0028.0002.5C60][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F877
+F94B ; [.3A63.0023.0002.5C62][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94B
+FA3B ; [.3A6C.0021.0002.5C64][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3B
+F9DF ; [.3A63.0026.0002.5C65][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DF
+2F879 ; [.3A67.002A.0002.5CC0][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F879
+F9D5 ; [.3A63.0023.0002.5D19][.3AED.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D5
+F921 ; [.3A63.0021.0002.5D50][.3ADC.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F921
+F9AB ; [.3A63.0025.0002.5DBA][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AB
+2F881 ; [.3A67.0021.0002.5DE1][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F881
+2F882 ; [.3A67.0027.0002.5DE2][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F882
+2F884 ; [.3A67.0022.0002.5DFD][.3AE4.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F884
+2F885 ; [.3A67.0029.0002.5E28][.3AE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F885
+2F886 ; [.3A64.0025.0002.5E3D][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F886
+F98E ; [.3A60.0021.0002.5E74][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98E
+FA01 ; [.3A61.002B.0002.5EA6][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA01
+2F88C ; [.3A65.0052.0002.5EB3][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88C
+2F88D ; [.3A67.0025.0002.5EB6][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88D
+F9A2 ; [.3A63.0021.0002.5EC9][.3AE2.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A2
+F928 ; [.3A63.0021.0002.5ECA][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F928
+2F88E ; [.3A63.0021.0002.5ECA][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F88E
+FA0B ; [.3A5E.0021.0002.5ED3][.3AE5.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0B
+F982 ; [.3A63.0025.0002.5EEC][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F982
+F943 ; [.3A63.0022.0002.5F04][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F943
+2F894 ; [.3A61.004B.0002.5F22][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F894
+2F895 ; [.3A61.004B.0002.5F22][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F895
+2F899 ; [.3A70.0025.0002.5F62][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F899
+FA84 ; [.3A6C.0025.0002.5F69][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA84
+2F89A ; [.3A6A.0027.0002.5F6B][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89A
+F9D8 ; [.3A63.0021.0002.5F8B][.3AED.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D8
+F966 ; [.3A65.0026.0002.5FA9][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F966
+FA85 ; [.3A69.0043.0002.5FAD][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA85
+2F89D ; [.3A69.002A.0002.5FCD][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89D
+2F89E ; [.3A6A.0026.0002.5FD7][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F89E
+F9A3 ; [.3A60.0021.0002.5FF5][.3AE2.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A3
+F960 ; [.3A60.0024.0002.6012][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F960
+F9AC ; [.3A63.0026.0002.601C][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AC
+2F8A0 ; [.3A69.0042.0002.6081][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A0
+FA3D ; [.3A70.0026.0002.6094][.3AE7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3D
+2F8A3 ; [.3A70.0026.0002.6094][.3AE7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A3
+2F8A5 ; [.3A61.0022.0002.60C7][.3AE4.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A5
+FA86 ; [.3A64.002D.0002.60D8][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA86
+F9B9 ; [.3A69.0025.0002.60E1][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B9
+FA88 ; [.3A69.002E.0002.6108][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA88
+F9D9 ; [.3A63.0022.0002.6144][.3AED.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D9
+2F8A6 ; [.3A6A.002A.0002.6148][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A6
+2F8A7 ; [.3A70.0027.0002.614C][.3AE5.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A7
+2F8A9 ; [.3A70.0027.0002.614C][.3AE5.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8A9
+FA8A ; [.3A69.0047.0002.6160][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8A
+FA3E ; [.3A5E.0028.0002.6168][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3E
+2F8AA ; [.3A63.0031.0002.617A][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AA
+FA3F ; [.3A6A.0022.0002.618E][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA3F
+FA89 ; [.3A6A.0022.0002.618E][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA89
+2F8AB ; [.3A6A.0022.0002.618E][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AB
+F98F ; [.3A63.0021.0002.6190][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98F
+2F8AD ; [.3A65.0028.0002.61A4][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AD
+2F8AE ; [.3A6C.0030.0002.61AF][.3ADC.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AE
+2F8AC ; [.3A70.0021.0002.61B2][.3AE0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AC
+2F8AF ; [.3A64.0025.0002.61DE][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8AF
+FA40 ; [.3A6A.0022.0002.61F2][.3AF0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA40
+FA8B ; [.3A6A.0022.0002.61F2][.3AF0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8B
+2F8B0 ; [.3A6A.0022.0002.61F2][.3AF0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B0
+F90D ; [.3A63.0022.0002.61F6][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90D
+2F8B1 ; [.3A63.0022.0002.61F6][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B1
+F990 ; [.3A63.0022.0002.6200][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F990
+2F8B2 ; [.3A67.0026.0002.6210][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B2
+F9D2 ; [.3A63.0022.0002.622E][.3AED.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D2
+FA8C ; [.3A61.0029.0002.6234][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8C
+2F8B5 ; [.3A6F.002B.0002.62B1][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B5
+F925 ; [.3A63.0021.0002.62C9][.3ADC.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F925
+F95B ; [.3A60.0024.0002.62CF][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95B
+FA02 ; [.3A6C.0026.0002.62D3][.3AE0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA02
+2F8B6 ; [.3A65.0022.0002.62D4][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B6
+F973 ; [.3A67.0022.0002.62FE][.3AEE.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F973
+2F8B9 ; [.3A64.0027.0002.633D][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B9
+2F8B7 ; [.3A69.0027.0002.6350][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8B7
+2F8BB ; [.3A67.0039.0002.6368][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BB
+F9A4 ; [.3A60.0024.0002.637B][.3AE2.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A4
+2F8BC ; [.3A67.0029.0002.6383][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BC
+F975 ; [.3A63.0021.0002.63A0][.3ADE.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F975
+2F8C1 ; [.3A69.0025.0002.63A9][.3AE0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C1
+FA8D ; [.3A69.0030.0002.63C4][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8D
+FA8E ; [.3A67.0030.0002.641C][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA8E
+2F8BF ; [.3A6A.0025.0002.6422][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8BF
+2F8C3 ; [.3A64.0021.0002.6469][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C3
+F991 ; [.3A60.0022.0002.649A][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F991
+2F8C5 ; [.3A70.0029.0002.649D][.3AEC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C5
+F930 ; [.3A63.0023.0002.64C4][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F930
+FA41 ; [.3A64.0025.0002.654F][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA41
+2F8C8 ; [.3A64.0025.0002.654F][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C8
+FA90 ; [.3A69.0030.0002.6556][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA90
+2F8C9 ; [.3A5E.0030.0002.656C][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8C9
+F969 ; [.3A67.0032.0002.6578][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F969
+F9BE ; [.3A63.0025.0002.6599][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BE
+F983 ; [.3A63.0028.0002.65C5][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F983
+2F8CB ; [.3A5E.0035.0002.65E3][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CB
+F9E0 ; [.3A69.0024.0002.6613][.3AE2.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E0
+2F8CD ; [.3A6A.0026.0002.6649][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CD
+FA12 ; [.3A6C.0022.0002.6674][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA12
+FA91 ; [.3A6C.0022.0002.6674][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA91
+F9C5 ; [.3A70.002A.0002.6688][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C5
+FA43 ; [.3A67.002B.0002.6691][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA43
+2F8CF ; [.3A67.002B.0002.6691][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CF
+FA06 ; [.3A6F.0022.0002.66B4][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA06
+F98B ; [.3A63.0022.0002.66C6][.3AE2.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98B
+F901 ; [.3A5E.0033.0002.66F4][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F901
+2F8CC ; [.3A67.002D.0002.66F8][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8CC
+2F8D4 ; [.3A6C.0023.0002.6700][.3AE7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D4
+F929 ; [.3A63.0022.0002.6717][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F929
+FA92 ; [.3A63.0022.0002.6717][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA92
+2F8D8 ; [.3A63.0022.0002.6717][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D8
+FA93 ; [.3A64.0025.0002.671B][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA93
+2F8D9 ; [.3A64.0025.0002.671B][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D9
+F9E1 ; [.3A63.0028.0002.674E][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E1
+2F8DC ; [.3A6F.0025.0002.6753][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DC
+FA94 ; [.3A6A.002E.0002.6756][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA94
+2F8DB ; [.3A5E.0038.0002.675E][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8DB
+F9C8 ; [.3A60.0021.0002.677B][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C8
+F9F4 ; [.3A63.0021.0002.6797][.3AF0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F4
+F9C9 ; [.3A63.0023.0002.67F3][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C9
+F9DA ; [.3A63.0023.0002.6817][.3AED.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DA
+F97A ; [.3A63.0025.0002.6881][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97A
+FA44 ; [.3A64.0027.0002.6885][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA44
+2F8E2 ; [.3A64.0027.0002.6885][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E2
+F9E2 ; [.3A63.0029.0002.68A8][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E2
+2F8E8 ; [.3A67.0062.0002.6942][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8E8
+2F8EA ; [.3A5E.002A.0002.69EA][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EA
+F914 ; [.3A69.0028.0002.6A02][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F914
+F95C ; [.3A69.0028.0002.6A02][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95C
+F9BF ; [.3A69.0028.0002.6A02][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9BF
+F94C ; [.3A63.0024.0002.6A13][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94C
+F931 ; [.3A63.0024.0002.6AD3][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F931
+2F8ED ; [.3A6A.0021.0002.6ADB][.3AEE.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8ED
+F91D ; [.3A63.0023.0002.6B04][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91D
+2F8EF ; [.3A6C.0028.0002.6B21][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8EF
+2F8F1 ; [.3A70.0025.0002.6B54][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F1
+2F8F3 ; [.3A67.0023.0002.6B72][.3AE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F3
+F98C ; [.3A63.0023.0002.6B77][.3AE2.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98C
+F9A5 ; [.3A63.0023.0002.6BAE][.3AE2.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A5
+F970 ; [.3A67.0023.0002.6BBA][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F970
+FA96 ; [.3A67.0023.0002.6BBA][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA96
+2F8F5 ; [.3A67.0023.0002.6BBA][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8F5
+2F8FA ; [.3A65.0025.0002.6C4E][.3AE0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FA
+F972 ; [.3A6C.0024.0002.6C88][.3AF0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F972
+2F8FC ; [.3A69.002B.0002.6CBF][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8FC
+F968 ; [.3A6F.0024.0002.6CCC][.3AF0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F968
+F9E3 ; [.3A60.0022.0002.6CE5][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E3
+F915 ; [.3A63.0021.0002.6D1B][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F915
+FA05 ; [.3A61.002A.0002.6D1E][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA05
+2F900 ; [.3A6F.0029.0002.6D3E][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F900
+F9CA ; [.3A63.0025.0002.6D41][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CA
+FA97 ; [.3A63.0025.0002.6D41][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA97
+2F902 ; [.3A63.0025.0002.6D41][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F902
+2F903 ; [.3A70.002E.0002.6D69][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F903
+F92A ; [.3A63.0023.0002.6D6A][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92A
+FA45 ; [.3A70.002A.0002.6D77][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA45
+2F901 ; [.3A70.002A.0002.6D77][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F901
+2F904 ; [.3A6C.0025.0002.6D78][.3AF0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F904
+2F905 ; [.3A69.0022.0002.6D85][.3AE2.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F905
+F9F5 ; [.3A63.0022.0002.6DCB][.3AF0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F5
+F94D ; [.3A63.0025.0002.6DDA][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94D
+F9D6 ; [.3A63.0024.0002.6DEA][.3AED.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D6
+2F90E ; [.3A69.0026.0002.6DF9][.3AE0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90E
+FA46 ; [.3A6A.002C.0002.6E1A][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA46
+2F908 ; [.3A70.002B.0002.6E2F][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F908
+2F909 ; [.3A69.002B.0002.6E6E][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F909
+F9CB ; [.3A63.0026.0002.6E9C][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CB
+F9EC ; [.3A60.0022.0002.6EBA][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EC
+FA99 ; [.3A6A.002B.0002.6ECB][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA99
+2F90B ; [.3A6A.002B.0002.6ECB][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90B
+F904 ; [.3A70.0022.0002.6ED1][.3AE5.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F904
+F94E ; [.3A63.0026.0002.6F0F][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94E
+FA47 ; [.3A70.0026.0002.6F22][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA47
+FA9A ; [.3A70.0026.0002.6F22][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9A
+F992 ; [.3A63.0024.0002.6F23][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F992
+2F90F ; [.3A6A.0033.0002.6F6E][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F90F
+2F912 ; [.3A65.003C.0002.6FC6][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F912
+F922 ; [.3A63.0025.0002.6FEB][.3ADC.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F922
+F984 ; [.3A63.002A.0002.6FFE][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F984
+2F915 ; [.3A69.002D.0002.701B][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F915
+FA9B ; [.3A6A.003D.0002.701E][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9B
+2F914 ; [.3A6A.003D.0002.701E][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F914
+2F835 ; [.3A70.002D.0002.7070][.3AE7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F835
+2F918 ; [.3A6A.002B.0002.707D][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F918
+F9FB ; [.3A6A.002C.0002.7099][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FB
+2F91A ; [.3A6E.0028.0002.70AD][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F91A
+F99F ; [.3A63.0025.0002.70C8][.3AE2.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99F
+F916 ; [.3A63.0022.0002.70D9][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F916
+F993 ; [.3A63.0025.0002.7149][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F993
+FA48 ; [.3A6A.002D.0002.716E][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA48
+FA9C ; [.3A6A.002D.0002.716E][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9C
+F9C0 ; [.3A63.0026.0002.71CE][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C0
+F9EE ; [.3A63.0023.0002.71D0][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EE
+F932 ; [.3A63.0027.0002.7210][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F932
+F91E ; [.3A63.0026.0002.721B][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91E
+2F920 ; [.3A6C.0036.0002.7228][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F920
+FA9E ; [.3A6A.0028.0002.7235][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9E
+2F921 ; [.3A6A.0028.0002.7235][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F921
+F946 ; [.3A63.0023.0002.7262][.3AE7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F946
+2F924 ; [.3A67.0030.0002.7280][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F924
+FA9F ; [.3A65.0027.0002.72AF][.3AE0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA9F
+F9FA ; [.3A67.0035.0002.72C0][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FA
+F92B ; [.3A63.0024.0002.72FC][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F92B
+FA16 ; [.3A6A.002E.0002.732A][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA16
+FAA0 ; [.3A6A.002E.0002.732A][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA0
+F9A7 ; [.3A63.0021.0002.7375][.3AE2.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A7
+2F928 ; [.3A61.0023.0002.737A][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F928
+F961 ; [.3A67.0021.0002.7387][.3AE4.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F961
+F9DB ; [.3A67.0021.0002.7387][.3AE4.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DB
+2F929 ; [.3A69.0025.0002.738B][.3AE5.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F929
+F9AD ; [.3A63.0027.0002.73B2][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AD
+F917 ; [.3A63.0023.0002.73DE][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F917
+F9E4 ; [.3A63.002D.0002.7406][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E4
+F9CC ; [.3A63.0028.0002.7409][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CC
+FA4A ; [.3A6E.002B.0002.7422][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4A
+2F92F ; [.3A69.003D.0002.745C][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F92F
+F9AE ; [.3A70.002D.0002.7469][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AE
+FAA1 ; [.3A6A.0057.0002.7471][.3AE0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA1
+2F930 ; [.3A6A.0057.0002.7471][.3AE0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F930
+F994 ; [.3A63.0026.0002.7489][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F994
+F9EF ; [.3A63.0024.0002.7498][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EF
+2F932 ; [.3A5E.003A.0002.74CA][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F932
+F9CD ; [.3A63.002A.0002.7559][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CD
+F976 ; [.3A63.0022.0002.7565][.3ADE.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F976
+F962 ; [.3A69.002C.0002.7570][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F962
+2F938 ; [.3A69.002C.0002.7570][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F938
+F9E5 ; [.3A63.002F.0002.75E2][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E5
+2F93A ; [.3A69.0059.0002.7610][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F93A
+FAA5 ; [.3A69.0023.0002.761F][.3AE4.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA5
+F9C1 ; [.3A63.0027.0002.7642][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C1
+F90E ; [.3A63.0023.0002.7669][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90E
+FA17 ; [.3A69.0022.0002.76CA][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA17
+FAA6 ; [.3A69.0022.0002.76CA][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA6
+FAA7 ; [.3A67.002B.0002.76DB][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA7
+F933 ; [.3A63.0028.0002.76E7][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F933
+FAA8 ; [.3A6A.0021.0002.76F4][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAA8
+2F940 ; [.3A6A.0021.0002.76F4][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F940
+F96D ; [.3A67.002C.0002.7701][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96D
+2F945 ; [.3A6A.0033.0002.771E][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F945
+FAAA ; [.3A6C.0023.0002.7740][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAA
+2F94A ; [.3A6A.0034.0002.778B][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94A
+F9CE ; [.3A63.002C.0002.786B][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CE
+F93B ; [.3A63.0021.0002.788C][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93B
+2F94F ; [.3A63.0021.0002.788C][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F94F
+FA4B ; [.3A65.0038.0002.7891][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4B
+F947 ; [.3A63.0024.0002.78CA][.3AE7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F947
+F964 ; [.3A65.0032.0002.78FB][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F964
+F985 ; [.3A63.002B.0002.792A][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F985
+FA4C ; [.3A67.0046.0002.793E][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4C
+FA4E ; [.3A5E.004C.0002.7948][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4E
+FA4D ; [.3A6A.0035.0002.7949][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4D
+FA4F ; [.3A69.0032.0002.7950][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA4F
+FA50 ; [.3A6A.0039.0002.7956][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA50
+2F953 ; [.3A6A.0039.0002.7956][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F953
+FA51 ; [.3A6C.0023.0002.795D][.3AE9.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA51
+FA19 ; [.3A67.002C.0002.795E][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA19
+FA1A ; [.3A67.0037.0002.7965][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1A
+F93C ; [.3A63.0022.0002.797F][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93C
+FA52 ; [.3A70.0027.0002.798D][.3AE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA52
+FA53 ; [.3A6A.0044.0002.798E][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA53
+FA1B ; [.3A65.0028.0002.798F][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1B
+2F956 ; [.3A65.0028.0002.798F][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F956
+F9B6 ; [.3A63.0023.0002.79AE][.3AE3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B6
+F995 ; [.3A60.0023.0002.79CA][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F995
+2F957 ; [.3A6C.0024.0002.79EB][.3AE9.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F957
+F956 ; [.3A63.0023.0002.7A1C][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F956
+FA54 ; [.3A5E.0025.0002.7A40][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA54
+2F959 ; [.3A5E.0025.0002.7A40][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F959
+FA55 ; [.3A61.0022.0002.7A81][.3AE4.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA55
+F9F7 ; [.3A63.0022.0002.7ACB][.3AF0.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F7
+F9F8 ; [.3A63.0023.0002.7B20][.3AF0.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F8
+FA56 ; [.3A6A.0027.0002.7BC0][.3AE0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA56
+FAAD ; [.3A6A.0027.0002.7BC0][.3AE0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAD
+2F962 ; [.3A6A.003D.0002.7BC6][.3AE0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F962
+2F963 ; [.3A6C.0026.0002.7BC9][.3AE9.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F963
+F9A6 ; [.3A63.0025.0002.7C3E][.3AE2.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A6
+F944 ; [.3A63.0026.0002.7C60][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F944
+F9F9 ; [.3A63.0024.0002.7C92][.3AF0.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F9
+FA1D ; [.3A6A.0047.0002.7CBE][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1D
+FA03 ; [.3A61.0029.0002.7CD6][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA03
+F97B ; [.3A63.0029.0002.7CE7][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97B
+2F96A ; [.3A5E.004F.0002.7D00][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96A
+F9CF ; [.3A60.0022.0002.7D10][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9CF
+F96A ; [.3A67.0023.0002.7D22][.3ADD.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96A
+F94F ; [.3A63.0028.0002.7D2F][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F94F
+FAAF ; [.3A6A.0063.0002.7D5B][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAAF
+2F96C ; [.3A65.0034.0002.7D63][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96C
+F93D ; [.3A63.0023.0002.7DA0][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93D
+F957 ; [.3A63.0024.0002.7DBE][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F957
+2F96E ; [.3A6C.0030.0002.7DC7][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F96E
+F996 ; [.3A63.0027.0002.7DF4][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F996
+FA57 ; [.3A63.0027.0002.7DF4][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA57
+FAB0 ; [.3A63.0027.0002.7DF4][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB0
+FA58 ; [.3A6A.0036.0002.7E09][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA58
+F950 ; [.3A63.0029.0002.7E37][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F950
+FA59 ; [.3A65.0026.0002.7E41][.3AE0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA59
+2F970 ; [.3A67.0052.0002.7E45][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F970
+FAB1 ; [.3A65.0035.0002.7F3E][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB1
+FA5A ; [.3A67.0035.0002.7F72][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5A
+F9E6 ; [.3A63.0031.0002.7F79][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E6
+F90F ; [.3A63.0024.0002.7F85][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90F
+F9AF ; [.3A63.0029.0002.7F9A][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9AF
+FA1E ; [.3A69.0036.0002.7FBD][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1E
+2F979 ; [.3A5E.005A.0002.7FFA][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F979
+F934 ; [.3A63.0029.0002.8001][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F934
+FA5B ; [.3A6A.0033.0002.8005][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5B
+FAB2 ; [.3A6A.0033.0002.8005][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB2
+2F97A ; [.3A6A.0033.0002.8005][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97A
+F9B0 ; [.3A63.002B.0002.8046][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B0
+F997 ; [.3A63.0028.0002.806F][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F997
+2F97F ; [.3A6C.0028.0002.8070][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F97F
+F945 ; [.3A63.0027.0002.807E][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F945
+F953 ; [.3A63.0022.0002.808B][.3AEE.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F953
+2F8D6 ; [.3A60.0023.0002.80AD][.3AE9.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F8D6
+2F982 ; [.3A69.0024.0002.80B2][.3AED.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F982
+2F985 ; [.3A65.003F.0002.813E][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F985
+F926 ; [.3A63.0022.0002.81D8][.3ADC.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F926
+F9F6 ; [.3A63.0024.0002.81E8][.3AF0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F6
+FA5C ; [.3A6C.002A.0002.81ED][.3AEC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5C
+2F893 ; [.3A69.002E.0002.8201][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F893
+2F98B ; [.3A69.002E.0002.8201][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F98B
+F97C ; [.3A63.002A.0002.826F][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97C
+2F990 ; [.3A69.0037.0002.828B][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F990
+2F991 ; [.3A6A.003B.0002.829D][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F991
+2F993 ; [.3A70.0029.0002.82B1][.3AE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F993
+2F994 ; [.3A65.0035.0002.82B3][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F994
+2F995 ; [.3A69.0029.0002.82BD][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F995
+F974 ; [.3A69.0023.0002.82E5][.3ADE.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F974
+2F998 ; [.3A69.0023.0002.82E5][.3ADE.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F998
+2F996 ; [.3A5E.003A.0002.82E6][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F996
+2F999 ; [.3A6C.002E.0002.831D][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F999
+2F99C ; [.3A69.004C.0002.8323][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99C
+F9FE ; [.3A61.0022.0002.8336][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FE
+FAB3 ; [.3A70.0034.0002.8352][.3AE5.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB3
+2F99D ; [.3A64.002A.0002.83BD][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99D
+F93E ; [.3A63.0024.0002.83C9][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93E
+2F9A1 ; [.3A5E.0023.0002.83CA][.3AE9.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A1
+2F9A2 ; [.3A5E.0025.0002.83CC][.3AED.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A2
+2F9A3 ; [.3A6C.0029.0002.83DC][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A3
+FAB4 ; [.3A70.002A.0002.83EF][.3AE5.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB4
+F958 ; [.3A63.0025.0002.83F1][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F958
+F918 ; [.3A63.0025.0002.843D][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F918
+F96E ; [.3A69.0023.0002.8449][.3AE2.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96E
+FA5F ; [.3A6A.0034.0002.8457][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA5F
+2F99F ; [.3A6A.0034.0002.8457][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F99F
+F999 ; [.3A63.0029.0002.84EE][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F999
+2F9A8 ; [.3A6F.002A.0002.84F1][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9A8
+F9C2 ; [.3A63.002A.0002.84FC][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C2
+2F9AC ; [.3A69.0062.0002.8564][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9AC
+F923 ; [.3A63.0028.0002.85CD][.3ADC.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F923
+F9F0 ; [.3A63.0025.0002.85FA][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F0
+F935 ; [.3A63.002A.0002.8606][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F935
+F91F ; [.3A63.0027.0002.862D][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91F
+F910 ; [.3A63.0025.0002.863F][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F910
+2F9B3 ; [.3A70.0023.0002.8650][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B3
+F936 ; [.3A63.002B.0002.865C][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F936
+2F9B4 ; [.3A63.002B.0002.865C][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B4
+2F9B5 ; [.3A70.0025.0002.8667][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B5
+2F9B7 ; [.3A6C.0034.0002.86A9][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9B7
+2F9BC ; [.3A6A.0026.0002.8728][.3AE0.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9BC
+F911 ; [.3A63.0026.0002.87BA][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F911
+F927 ; [.3A63.0023.0002.881F][.3ADC.0020.0002][.3B4A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F927
+FA08 ; [.3A70.0025.0002.884C][.3ADD.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA08
+2F9C4 ; [.3A69.0030.0002.8863][.3AEF.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9C4
+F9A0 ; [.3A63.0026.0002.88C2][.3AE2.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A0
+F9E7 ; [.3A63.0034.0002.88CF][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E7
+F9E8 ; [.3A63.0035.0002.88E1][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E8
+F912 ; [.3A63.0027.0002.88F8][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F912
+FA60 ; [.3A5E.0028.0002.8910][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA60
+FAB6 ; [.3A5E.0034.0002.8941][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB6
+F924 ; [.3A63.0029.0002.8964][.3ADC.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F924
+FAB7 ; [.3A65.002D.0002.8986][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB7
+FA0A ; [.3A5E.0028.0002.898B][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA0A
+FA61 ; [.3A67.0037.0002.8996][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA61
+FAB8 ; [.3A67.0037.0002.8996][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB8
+2F9CF ; [.3A67.0031.0002.8AA0][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9CF
+F96F ; [.3A67.002B.0002.8AAA][.3AE0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F96F
+F9A1 ; [.3A67.002B.0002.8AAA][.3AE0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9A1
+FAB9 ; [.3A6A.0046.0002.8ABF][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAB9
+FABB ; [.3A6C.0026.0002.8ACB][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABB
+F97D ; [.3A63.002B.0002.8AD2][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97D
+F941 ; [.3A63.0021.0002.8AD6][.3AE4.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F941
+FABE ; [.3A69.0046.0002.8AED][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABE
+2F9D0 ; [.3A69.0046.0002.8AED][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D0
+FA22 ; [.3A6A.0030.0002.8AF8][.3AE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA22
+FABA ; [.3A6A.0030.0002.8AF8][.3AE1.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABA
+F95D ; [.3A60.0021.0002.8AFE][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95D
+FABD ; [.3A60.0021.0002.8AFE][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABD
+FA62 ; [.3A69.0022.0002.8B01][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA62
+FABC ; [.3A69.0022.0002.8B01][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABC
+FA63 ; [.3A5E.002D.0002.8B39][.3AEE.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA63
+FABF ; [.3A5E.002D.0002.8B39][.3AEE.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FABF
+F9FC ; [.3A67.002C.0002.8B58][.3AF0.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9FC
+F95A ; [.3A61.002A.0002.8B80][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F95A
+FAC0 ; [.3A65.0023.0002.8B8A][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC0
+2F9D1 ; [.3A65.0023.0002.8B8A][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D1
+F900 ; [.3A5E.0057.0002.8C48][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F900
+2F9D2 ; [.3A67.003B.0002.8C55][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D2
+2F9D4 ; [.3A5E.002E.0002.8CAB][.3AE5.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D4
+2F9D5 ; [.3A65.0032.0002.8CC1][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D5
+F948 ; [.3A63.0025.0002.8CC2][.3AE7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F948
+F903 ; [.3A5E.0039.0002.8CC8][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F903
+FA64 ; [.3A65.002D.0002.8CD3][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA64
+FA65 ; [.3A6A.002B.0002.8D08][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA65
+FAC1 ; [.3A6A.002B.0002.8D08][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC1
+2F9D6 ; [.3A5E.0039.0002.8D1B][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D6
+2F9D7 ; [.3A5E.0058.0002.8D77][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9D7
+2F9DA ; [.3A65.0027.0002.8DCB][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DA
+F937 ; [.3A63.002C.0002.8DEF][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F937
+F902 ; [.3A6C.002D.0002.8ECA][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F902
+F998 ; [.3A63.002A.0002.8F26][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F998
+F9D7 ; [.3A63.0026.0002.8F2A][.3AED.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D7
+FAC2 ; [.3A67.004F.0002.8F38][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC2
+2F9DF ; [.3A67.004F.0002.8F38][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9DF
+FA07 ; [.3A65.002F.0002.8F3B][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA07
+F98D ; [.3A63.0026.0002.8F62][.3AE2.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F98D
+F971 ; [.3A6A.003E.0002.8FB0][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F971
+F99A ; [.3A63.002B.0002.9023][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99A
+FA25 ; [.3A69.0027.0002.9038][.3AF0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA25
+FA67 ; [.3A69.0027.0002.9038][.3AF0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA67
+FAC3 ; [.3A6A.0041.0002.9072][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC3
+F9C3 ; [.3A63.002B.0002.907C][.3AE8.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C3
+F913 ; [.3A63.0028.0002.908F][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F913
+FA2E ; [.3A63.0028.0002.90DE][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2E
+FA26 ; [.3A61.0045.0002.90FD][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA26
+F919 ; [.3A63.0026.0002.916A][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F919
+F9B7 ; [.3A63.0024.0002.91B4][.3AE3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B7
+F9E9 ; [.3A63.0036.0002.91CC][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9E9
+F97E ; [.3A63.002D.0002.91CF][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F97E
+F90A ; [.3A5E.0021.0002.91D1][.3AF0.0020.0002][.3B49.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F90A
+F9B1 ; [.3A63.002D.0002.9234][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B1
+2F9E7 ; [.3A65.002F.0002.9238][.3ADC.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E7
+2F9EA ; [.3A65.0039.0002.927C][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EA
+2F9E8 ; [.3A70.003F.0002.92D7][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9E8
+F93F ; [.3A63.0025.0002.9304][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93F
+F99B ; [.3A63.002C.0002.934A][.3AE2.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F99B
+2F9EE ; [.3A5E.0033.0002.958B][.3ADD.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9EE
+F986 ; [.3A63.002E.0002.95AD][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F986
+F9C6 ; [.3A69.0031.0002.962E][.3AE5.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C6
+F951 ; [.3A63.002D.0002.964B][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F951
+FA09 ; [.3A5E.0037.0002.964D][.3ADC.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA09
+F959 ; [.3A63.0026.0002.9675][.3AEE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F959
+F9D3 ; [.3A63.0023.0002.9678][.3AED.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D3
+FAC6 ; [.3A6A.004E.0002.967C][.3AE0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC6
+F9DC ; [.3A63.0021.0002.9686][.3AED.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9DC
+F9F1 ; [.3A63.0027.0002.96A3][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F1
+FA2F ; [.3A63.0025.0002.96B7][.3AE3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2F
+F9B8 ; [.3A63.0026.0002.96B8][.3AE3.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B8
+F9EA ; [.3A63.0038.0002.96E2][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9EA
+FA68 ; [.3A60.0023.0002.96E3][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA68
+FAC7 ; [.3A60.0023.0002.96E3][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC7
+F9B2 ; [.3A63.002E.0002.96F6][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B2
+F949 ; [.3A63.0028.0002.96F7][.3AE7.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F949
+2F9F5 ; [.3A69.0031.0002.9723][.3AE9.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9F5
+F938 ; [.3A63.002E.0002.9732][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F938
+F9B3 ; [.3A63.002F.0002.9748][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B3
+FA1C ; [.3A6A.0054.0002.9756][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA1C
+FAC8 ; [.3A6A.0054.0002.9756][.3AE0.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAC8
+2F9FA ; [.3A6F.0034.0002.97E0][.3AF0.0020.0002][.3B41.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2F9FA
+FA69 ; [.3A70.0026.0002.97FF][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA69
+FACA ; [.3A70.0026.0002.97FF][.3ADE.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACA
+F9B4 ; [.3A63.0030.0002.9818][.3AE2.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9B4
+FA6A ; [.3A65.002E.0002.983B][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA6A
+FACC ; [.3A65.002E.0002.983B][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACC
+F9D0 ; [.3A63.002E.0002.985E][.3AED.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9D0
+2FA02 ; [.3A5E.005B.0002.98E2][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA02
+FA2A ; [.3A65.0039.0002.98EF][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2A
+FA2B ; [.3A67.005A.0002.98FC][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2B
+FA2C ; [.3A5E.0030.0002.9928][.3AE5.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2C
+F91A ; [.3A63.0027.0002.99F1][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F91A
+F987 ; [.3A63.0030.0002.9A6A][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F987
+FACD ; [.3A6A.004C.0002.9B12][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACD
+2FA0A ; [.3A6A.004C.0002.9B12][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA0A
+F939 ; [.3A63.002F.0002.9B6F][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F939
+F9F2 ; [.3A63.0028.0002.9C57][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F2
+FA2D ; [.3A70.0025.0002.9DB4][.3ADC.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA2D
+F93A ; [.3A63.0030.0002.9DFA][.3AE4.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F93A
+F920 ; [.3A63.0028.0002.9E1E][.3ADC.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F920
+F940 ; [.3A63.0026.0002.9E7F][.3AE4.0020.0002][.3B3A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F940
+F988 ; [.3A63.0031.0002.9E97][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F988
+F9F3 ; [.3A63.0029.0002.9E9F][.3AF0.0020.0002][.3B3D.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9F3
+2FA15 ; [.3A64.0028.0002.9EBB][.3ADC.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA15
+F989 ; [.3A63.0032.0002.9ECE][.3AE2.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F989
+2FA1C ; [.3A65.004A.0002.9F3B][.3AF0.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-2FA1C
+F9C4 ; [.3A63.0021.0002.9F8D][.3AE8.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F9C4
+FAD9 ; [.3A63.002E.0002.9F8E][.3AE4.0020.0002][.3B4E.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FAD9
+F907 ; [.3A5E.0056.0002.9F9C][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F907
+F908 ; [.3A5E.0056.0002.9F9C][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F908
+FACE ; [.3A5E.0056.0002.9F9C][.3AE9.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FACE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
index a49d361d012..0724a745020 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/kok.pl
@@ -1,13 +1,13 @@
+{
- locale_version => 1.14,
- 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
-0903 ; [.235B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.235B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.239D.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.239D.0020.0002][.FFF1.0000.0000][.0000.00BC.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.239D.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-0939 ; [.239D.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0902 ; [.25CE.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901 ; [.25CE.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
+0903 ; [.25CE.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
+0950 ; [.25CE.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+0933 ; [.2611.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
+0934 ; [.2611.0020.0002][.FFF1.0000.0000][.0000.00BD.0002] # DEVANAGARI LETTER LLLA
+0915 094D 0937 ; [.2611.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
+0939 ; [.2611.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
index 694e83698b8..425a0b7188e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ln.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.14,
- 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
-2107 ; [.196F.0020.000A] # EULER CONSTANT
-1D4B ; [.196F.0020.0014] # MODIFIER LETTER SMALL OPEN E
-0254 ; [.1AA1.0021.0002] # LATIN SMALL LETTER OPEN O
-0186 ; [.1AA1.0021.0008] # LATIN CAPITAL LETTER OPEN O
-1D53 ; [.1AA1.0021.0014] # MODIFIER LETTER SMALL OPEN O
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+025B ; [.1C26.0020.0002] # LATIN SMALL LETTER OPEN E
+0190 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER OPEN E
+2107 ; [.1C26.0020.000A] # EULER CONSTANT
+1D4B ; [.1C26.0020.0014] # MODIFIER LETTER SMALL OPEN E
+0254 ; [.1D58.0021.0002] # LATIN SMALL LETTER OPEN O
+0186 ; [.1D58.0021.0008] # LATIN CAPITAL LETTER OPEN O
+1D53 ; [.1D58.0021.0014] # MODIFIER LETTER SMALL OPEN O
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
index a4630feab32..7b6d3e165c1 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lt.pl
@@ -1,48 +1,48 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# 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>
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0049 0307 ; [.1CAD.0020.0008][.0000.002E.0002] # <LATIN CAPITAL LETTER I, COMBINING DOT ABOVE>
0307 0300 ; [.0000.0025.0002] # <COMBINING DOT ABOVE, COMBINING GRAVE ACCENT>
0307 0301 ; [.0000.0024.0002] # <COMBINING DOT ABOVE, COMBINING ACUTE ACCENT>
0307 0303 ; [.0000.002D.0002] # <COMBINING DOT ABOVE, COMBINING TILDE>
-0105 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
-0061 0328 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
-0104 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0041 0328 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-010D ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0119 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0117 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0065 0307 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0116 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0045 0307 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-012F ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
-0069 0328 ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
-012E ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
-0049 0328 ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
-0079 ; [.19F6.0022.0002] # LATIN SMALL LETTER Y
-0059 ; [.19F6.0022.0008] # LATIN CAPITAL LETTER Y
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0173 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
-0075 0328 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
-0172 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
-0055 0328 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
-016B ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+0105 ; [.1BC2.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
+0061 0328 ; [.1BC2.0021.0002] # LATIN SMALL LETTER A WITH OGONEK
+0104 ; [.1BC2.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
+0041 0328 ; [.1BC2.0021.0008] # LATIN CAPITAL LETTER A WITH OGONEK
+010D ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0119 ; [.1C25.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1C25.0021.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1C25.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1C25.0021.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0117 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
+0065 0307 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
+0116 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
+0045 0307 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH DOT ABOVE
+012F ; [.1CAD.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
+0069 0328 ; [.1CAD.0021.0002] # LATIN SMALL LETTER I WITH OGONEK
+012E ; [.1CAD.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
+0049 0328 ; [.1CAD.0021.0008] # LATIN CAPITAL LETTER I WITH OGONEK
+0079 ; [.1CAD.0022.0002] # LATIN SMALL LETTER Y
+0059 ; [.1CAD.0022.0008] # LATIN CAPITAL LETTER Y
+0161 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0173 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
+0075 0328 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH OGONEK
+0172 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
+0055 0328 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH OGONEK
+016B ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+017E ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
index ebd25078db2..23efcfc1ca2 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/lv.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.14,
- 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
-010C ; [.1952.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.1952.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0123 ; [.19DB.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0067 0327 ; [.19DB.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0122 ; [.19DB.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
-0047 0327 ; [.19DB.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
-0137 ; [.1A3A.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
-006B 0327 ; [.1A3A.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
-0136 ; [.1A3A.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
-004B 0327 ; [.1A3A.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
-013C ; [.1A6D.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
-006C 0327 ; [.1A6D.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
-013B ; [.1A6D.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
-004C 0327 ; [.1A6D.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
-0146 ; [.1AA0.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
-006E 0327 ; [.1AA0.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
-0145 ; [.1AA0.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
-004E 0327 ; [.1AA0.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
-0157 ; [.1B32.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0072 0327 ; [.1B32.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0156 ; [.1B32.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
-0052 0327 ; [.1B32.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
-0161 ; [.1B56.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B56.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B56.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B56.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BFF.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BFF.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BFF.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BFF.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+010D ; [.1C09.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C09.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C09.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C09.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0123 ; [.1C92.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
+0067 0327 ; [.1C92.0020.0002] # LATIN SMALL LETTER G WITH CEDILLA
+0122 ; [.1C92.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
+0047 0327 ; [.1C92.0020.0008] # LATIN CAPITAL LETTER G WITH CEDILLA
+0137 ; [.1CF1.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
+006B 0327 ; [.1CF1.0020.0002] # LATIN SMALL LETTER K WITH CEDILLA
+0136 ; [.1CF1.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
+004B 0327 ; [.1CF1.0020.0008] # LATIN CAPITAL LETTER K WITH CEDILLA
+013C ; [.1D24.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
+006C 0327 ; [.1D24.0020.0002] # LATIN SMALL LETTER L WITH CEDILLA
+013B ; [.1D24.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
+004C 0327 ; [.1D24.0020.0008] # LATIN CAPITAL LETTER L WITH CEDILLA
+0146 ; [.1D57.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
+006E 0327 ; [.1D57.0020.0002] # LATIN SMALL LETTER N WITH CEDILLA
+0145 ; [.1D57.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
+004E 0327 ; [.1D57.0020.0008] # LATIN CAPITAL LETTER N WITH CEDILLA
+0157 ; [.1DEB.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
+0072 0327 ; [.1DEB.0020.0002] # LATIN SMALL LETTER R WITH CEDILLA
+0156 ; [.1DEB.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
+0052 0327 ; [.1DEB.0020.0008] # LATIN CAPITAL LETTER R WITH CEDILLA
+0161 ; [.1E0F.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E0F.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E0F.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E0F.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1EB8.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1EB8.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1EB8.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1EB8.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
index 16efe353994..0c1519b79b0 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mk.pl
@@ -1,45 +1,20 @@
+{
- locale_version => 1.14,
- 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,
- 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E5 ; [.1D5A.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1D5A.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1D5A.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1D5A.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.19,
+ suppress => [0x0418, 0x0438],
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0453 ; [.1FD1.0020.0002] # CYRILLIC SMALL LETTER GJE
+0433 0301 ; [.1FD1.0020.0002] # CYRILLIC SMALL LETTER GJE
+0433 0341 ; [.1FD1.0020.0002] # CYRILLIC SMALL LETTER GJE
+0403 ; [.1FD1.0020.0008] # CYRILLIC CAPITAL LETTER GJE
+0413 0301 ; [.1FD1.0020.0008] # CYRILLIC CAPITAL LETTER GJE
+0413 0341 ; [.1FD1.0020.0008] # CYRILLIC CAPITAL LETTER GJE
+045C ; [.2095.0020.0002] # CYRILLIC SMALL LETTER KJE
+043A 0301 ; [.2095.0020.0002] # CYRILLIC SMALL LETTER KJE
+043A 0341 ; [.2095.0020.0002] # CYRILLIC SMALL LETTER KJE
+040C ; [.2095.0020.0008] # CYRILLIC CAPITAL LETTER KJE
+041A 0301 ; [.2095.0020.0008] # CYRILLIC CAPITAL LETTER KJE
+041A 0341 ; [.2095.0020.0008] # CYRILLIC CAPITAL LETTER KJE
+0439 ; [.1FFB.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
+0419 ; [.1FFB.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
index ad26fb751f7..3bf45a5297c 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ml.pl
@@ -1,23 +1,23 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0D3D ; [.0000.00C0.0002] # MALAYALAM SIGN AVAGRAHA
-0D57 ; [.25C8.0020.0002] # MALAYALAM AU LENGTH MARK
-0D4C ; [.25C8.0020.0003] # MALAYALAM VOWEL SIGN AU
-0D46 0D57 ; [.25C8.0020.0003] # MALAYALAM VOWEL SIGN AU
-0D15 0D4D 200D ; [.2593.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER KA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7F ; [.2593.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU K
-0D23 0D4D 200D ; [.25A1.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER NNA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7A ; [.25A1.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU NN
-0D28 0D4D 200D ; [.25A6.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7B ; [.25A6.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU N
-0D30 0D4D 200D ; [.25AE.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7C ; [.25AE.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU RR
-0D32 0D4D 200D ; [.25AF.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER LA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7D ; [.25AF.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU L
-0D33 0D4D 200D ; [.25B5.0020.0002][.25CA.0021.0002] # <MALAYALAM LETTER LLA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
-0D7E ; [.25B5.0020.0003][.25CA.0021.0002] # MALAYALAM LETTER CHILLU LL
-0D02 ; [.25AC.0020.0002][.25CA.0021.0002] # MALAYALAM SIGN ANUSVARA
-0D7B 0D4D ; [.25A6.0020.0002][.25CA.0020.0003] # <MALAYALAM LETTER CHILLU N, MALAYALAM SIGN VIRAMA>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0D3D ; [.0000.00C1.0002] # MALAYALAM SIGN AVAGRAHA
+0D57 ; [.283F.0020.0002] # MALAYALAM AU LENGTH MARK
+0D4C ; [.283F.0020.0003] # MALAYALAM VOWEL SIGN AU
+0D46 0D57 ; [.283F.0020.0003] # MALAYALAM VOWEL SIGN AU
+0D15 0D4D 200D ; [.280A.0020.0002][.2841.0021.0002] # <MALAYALAM LETTER KA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7F ; [.280A.0020.0003][.2841.0021.0002] # MALAYALAM LETTER CHILLU K
+0D23 0D4D 200D ; [.2818.0020.0002][.2841.0021.0002] # <MALAYALAM LETTER NNA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7A ; [.2818.0020.0003][.2841.0021.0002] # MALAYALAM LETTER CHILLU NN
+0D28 0D4D 200D ; [.281D.0020.0002][.2841.0021.0002] # <MALAYALAM LETTER NA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7B ; [.281D.0020.0003][.2841.0021.0002] # MALAYALAM LETTER CHILLU N
+0D30 0D4D 200D ; [.2825.0020.0002][.2841.0021.0002] # <MALAYALAM LETTER RA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7C ; [.2825.0020.0003][.2841.0021.0002] # MALAYALAM LETTER CHILLU RR
+0D32 0D4D 200D ; [.2826.0020.0002][.2841.0021.0002] # <MALAYALAM LETTER LA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7D ; [.2826.0020.0003][.2841.0021.0002] # MALAYALAM LETTER CHILLU L
+0D33 0D4D 200D ; [.282C.0020.0002][.2841.0021.0002] # <MALAYALAM LETTER LLA, MALAYALAM SIGN VIRAMA, ZERO WIDTH JOINER>
+0D7E ; [.282C.0020.0003][.2841.0021.0002] # MALAYALAM LETTER CHILLU LL
+0D02 ; [.2823.0020.0002][.2841.0021.0002] # MALAYALAM SIGN ANUSVARA
+0D7B 0D4D ; [.281D.0020.0002][.2841.0020.0003] # <MALAYALAM LETTER CHILLU N, MALAYALAM SIGN VIRAMA>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
index 44ca45a0e01..2b6b270ab3a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mr.pl
@@ -1,14 +1,14 @@
+{
- locale_version => 1.14,
- 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
-0903 ; [.235B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.235B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.239D.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.239D.0020.0002][.FFF1.0000.0000][.0000.00BC.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.239D.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-091C 094D 091E ; [.239D.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
-0939 ; [.239D.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0902 ; [.25CE.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901 ; [.25CE.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
+0903 ; [.25CE.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
+0950 ; [.25CE.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+0933 ; [.2611.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
+0934 ; [.2611.0020.0002][.FFF1.0000.0000][.0000.00BD.0002] # DEVANAGARI LETTER LLLA
+0915 094D 0937 ; [.2611.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
+091C 094D 091E ; [.2611.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
+0939 ; [.2611.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
index 38d14dc3375..6bd8574fe1f 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/mt.pl
@@ -1,31 +1,31 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
upper_before_lower => 1,
- entry => <<'ENTRY', # for DUCET v7.0.0
-010B ; [.193D.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-0063 0307 ; [.193D.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-010A ; [.193D.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-0043 0307 ; [.193D.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-0121 ; [.19B7.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0067 0307 ; [.19B7.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0120 ; [.19B7.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0047 0307 ; [.19B7.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0067 0127 ; [.19DB.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H WITH STROKE>
-0067 0126 ; [.19DB.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
-0047 0127 ; [.19DB.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H WITH STROKE>
-0047 0126 ; [.19DB.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
-0067 0068 0335 ; [.19DB.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0067 0048 0335 ; [.19DB.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0047 0068 0335 ; [.19DB.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0047 0048 0335 ; [.19DB.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
-0127 ; [.19F5.0020.0002] # LATIN SMALL LETTER H WITH STROKE
-0068 0335 ; [.19F5.0020.0002] # LATIN SMALL LETTER H WITH STROKE
-210F ; [.19F5.0020.0002] # PLANCK CONSTANT OVER TWO PI
-0126 ; [.19F5.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
-0048 0335 ; [.19F5.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
-017C ; [.1BE2.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-007A 0307 ; [.1BE2.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-005A 0307 ; [.1BE2.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ entry => <<'ENTRY', # for DUCET v8.0.0
+010B ; [.1BF4.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
+0063 0307 ; [.1BF4.0020.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
+010A ; [.1BF4.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
+0043 0307 ; [.1BF4.0020.0008] # LATIN CAPITAL LETTER C WITH DOT ABOVE
+0121 ; [.1C6E.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
+0067 0307 ; [.1C6E.0020.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
+0120 ; [.1C6E.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0047 0307 ; [.1C6E.0020.0008] # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0067 0127 ; [.1C92.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H WITH STROKE>
+0067 0126 ; [.1C92.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
+0047 0127 ; [.1C92.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H WITH STROKE>
+0047 0126 ; [.1C92.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H WITH STROKE>
+0067 0068 0335 ; [.1C92.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
+0067 0048 0335 ; [.1C92.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
+0047 0068 0335 ; [.1C92.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER H, COMBINING SHORT STROKE OVERLAY>
+0047 0048 0335 ; [.1C92.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER H, COMBINING SHORT STROKE OVERLAY>
+0127 ; [.1CAC.0020.0002] # LATIN SMALL LETTER H WITH STROKE
+0068 0335 ; [.1CAC.0020.0002] # LATIN SMALL LETTER H WITH STROKE
+210F ; [.1CAC.0020.0002] # PLANCK CONSTANT OVER TWO PI
+0126 ; [.1CAC.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
+0048 0335 ; [.1CAC.0020.0008] # LATIN CAPITAL LETTER H WITH STROKE
+017C ; [.1E9B.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+007A 0307 ; [.1E9B.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+017B ; [.1E9B.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+005A 0307 ; [.1E9B.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
index 6306b814001..474d1222e8b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nb.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.14,
- 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
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1C56.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1C56.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1C56.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C0A.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0A.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0A.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E10.0020.0003][.1C93.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E10.0020.0009][.1C93.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F11.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F11.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F11.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F11.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F11.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F11.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F11.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F12.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F12.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F12.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F12.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F13.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F13.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F13.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.1F13.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0041 0061 ; [.1F13.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0041 0041 ; [.1F13.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
index 6306b814001..474d1222e8b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nn.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.14,
- 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
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E6 ; [.1C54.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C54.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C54.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C54.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C54.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E4 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C54.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C54.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-0119 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C54.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C54.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F8 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C55.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C55.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C55.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-00F6 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C55.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C55.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C55.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C55.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C55.0023.0008] # LATIN CAPITAL LIGATURE OE
-00E5 ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C56.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C56.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C56.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C56.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C56.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0061 0061 ; [.1C56.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
-0041 0061 ; [.1C56.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
-0041 0041 ; [.1C56.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C0A.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0A.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0A.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E10.0020.0003][.1C93.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E10.0020.0009][.1C93.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E6 ; [.1F11.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F11.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F11.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F11.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F11.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E4 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F11.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F11.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+0119 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F11.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F11.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F8 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F12.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F12.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F12.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+00F6 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F12.0021.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F12.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F12.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F12.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F12.0023.0008] # LATIN CAPITAL LIGATURE OE
+00E5 ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F13.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F13.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F13.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F13.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F13.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0061 0061 ; [.1F13.0021.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+0041 0061 ; [.1F13.0021.0007] # <LATIN CAPITAL LETTER A, LATIN SMALL LETTER A>
+0041 0041 ; [.1F13.0021.0008] # <LATIN CAPITAL LETTER A, LATIN CAPITAL LETTER A>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
index d3c1d6bfb6a..1229a1a92fc 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/nso.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.14,
- 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
-00CA ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.196F.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196F.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.196F.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196F.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.196F.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196F.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196F.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196F.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196F.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196F.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1AA2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1AA2.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA2.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1AA2.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA2.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA2.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA2.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1AA2.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00EA ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC1 ; [.1C26.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C26.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EBF ; [.1C26.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C26.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC5 ; [.1C26.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C26.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C26.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C26.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C26.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C26.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+00F4 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1D59.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1D59.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1D59.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1D59.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1D59.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1D59.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1D59.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1D59.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1D59.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1D59.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+0161 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
index 5c7196ceca6..0ee1893aa0f 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/om.pl
@@ -1,22 +1,22 @@
+{
- locale_version => 1.14,
- 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>
-0043 0048 ; [.1BE4.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-0064 0068 ; [.1BE5.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
-0044 0068 ; [.1BE5.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
-0044 0048 ; [.1BE5.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
-006B 0068 ; [.1BE6.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER H>
-004B 0068 ; [.1BE6.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER H>
-004B 0048 ; [.1BE6.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER H>
-006E 0079 ; [.1BE7.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
-004E 0079 ; [.1BE7.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
-004E 0059 ; [.1BE7.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
-0070 0068 ; [.1BE8.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
-0050 0068 ; [.1BE8.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
-0050 0048 ; [.1BE8.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
-0073 0068 ; [.1BE9.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0053 0068 ; [.1BE9.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0063 0068 ; [.1E9D.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0043 0068 ; [.1E9D.0020.0007] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1E9D.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+0064 0068 ; [.1E9E.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
+0044 0068 ; [.1E9E.0020.0007] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
+0044 0048 ; [.1E9E.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
+006B 0068 ; [.1E9F.0020.0002] # <LATIN SMALL LETTER K, LATIN SMALL LETTER H>
+004B 0068 ; [.1E9F.0020.0007] # <LATIN CAPITAL LETTER K, LATIN SMALL LETTER H>
+004B 0048 ; [.1E9F.0020.0008] # <LATIN CAPITAL LETTER K, LATIN CAPITAL LETTER H>
+006E 0079 ; [.1EA0.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER Y>
+004E 0079 ; [.1EA0.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER Y>
+004E 0059 ; [.1EA0.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER Y>
+0070 0068 ; [.1EA1.0020.0002] # <LATIN SMALL LETTER P, LATIN SMALL LETTER H>
+0050 0068 ; [.1EA1.0020.0007] # <LATIN CAPITAL LETTER P, LATIN SMALL LETTER H>
+0050 0048 ; [.1EA1.0020.0008] # <LATIN CAPITAL LETTER P, LATIN CAPITAL LETTER H>
+0073 0068 ; [.1EA2.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
+0053 0068 ; [.1EA2.0020.0007] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
index fa34f4cc519..409a00673fa 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/or.pl
@@ -1,12 +1,12 @@
+{
- locale_version => 1.14,
- 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
-0B03 ; [.2489.0020.0002][.FFF3.0000.0000] # ORIYA SIGN VISARGA
-0B14 ; [.2489.0020.0002][.FFF0.0000.0000] # ORIYA LETTER AU
-0B15 0B4D 0B37 ; [.24AD.0020.0002][.FFF1.0000.0000] # <ORIYA LETTER KA, ORIYA SIGN VIRAMA, ORIYA LETTER SSA>
-0B39 ; [.24AD.0020.0002][.FFF0.0000.0000] # ORIYA LETTER HA
-0B5F ; [.24A3.0021.0002] # ORIYA LETTER YYA
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0B01 ; [.26FE.0020.0002][.FFF1.0000.0000] # ORIYA SIGN CANDRABINDU
+0B02 ; [.26FE.0020.0002][.FFF2.0000.0000] # ORIYA SIGN ANUSVARA
+0B03 ; [.26FE.0020.0002][.FFF3.0000.0000] # ORIYA SIGN VISARGA
+0B14 ; [.26FE.0020.0002][.FFF0.0000.0000] # ORIYA LETTER AU
+0B15 0B4D 0B37 ; [.2722.0020.0002][.FFF1.0000.0000] # <ORIYA LETTER KA, ORIYA SIGN VIRAMA, ORIYA LETTER SSA>
+0B39 ; [.2722.0020.0002][.FFF0.0000.0000] # ORIYA LETTER HA
+0B5F ; [.2718.0021.0002] # ORIYA LETTER YYA
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
index 1f53ce33bcd..d22d00e2361 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pa.pl
@@ -1,27 +1,27 @@
+{
- locale_version => 1.14,
- entry => <<'ENTRY', # for DUCET v7.0.0
-0A71 ; [.0000.00BD.0002] # GURMUKHI ADDAK
-0A03 ; [.0000.00BC.0002] # GURMUKHI SIGN VISARGA
-0A70 ; [.0000.00BE.0002] # GURMUKHI TIPPI
-0A02 ; [.0000.00BF.0002] # GURMUKHI SIGN BINDI
-0A01 ; [.0000.00C0.0002] # GURMUKHI SIGN ADAK BINDI
-0A3C ; [.0000.00C1.0002] # GURMUKHI SIGN NUKTA
-0A33 ; [.242B.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER LLA
-0A36 ; [.240C.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER SHA
-0A59 ; [.2410.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER KHHA
-0A5A ; [.2411.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER GHHA
-0A5B ; [.2416.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER ZA
-0A5E ; [.2424.0020.0002][.0000.00C1.0002] # GURMUKHI LETTER FA
-0A4D ; [.242E.0020.0002] # GURMUKHI SIGN VIRAMA
-0A3E ; [.242F.0020.0002] # GURMUKHI VOWEL SIGN AA
-0A3F ; [.2430.0020.0002] # GURMUKHI VOWEL SIGN I
-0A40 ; [.2431.0020.0002] # GURMUKHI VOWEL SIGN II
-0A41 ; [.2432.0020.0002] # GURMUKHI VOWEL SIGN U
-0A42 ; [.2433.0020.0002] # GURMUKHI VOWEL SIGN UU
-0A47 ; [.2434.0020.0002] # GURMUKHI VOWEL SIGN EE
-0A48 ; [.2435.0020.0002] # GURMUKHI VOWEL SIGN AI
-0A4B ; [.2436.0020.0002] # GURMUKHI VOWEL SIGN OO
-0A4C ; [.2437.0020.0002] # GURMUKHI VOWEL SIGN AU
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0A71 ; [.0000.00BE.0002] # GURMUKHI ADDAK
+0A03 ; [.0000.00BD.0002] # GURMUKHI SIGN VISARGA
+0A70 ; [.0000.00BF.0002] # GURMUKHI TIPPI
+0A02 ; [.0000.00C0.0002] # GURMUKHI SIGN BINDI
+0A01 ; [.0000.00C1.0002] # GURMUKHI SIGN ADAK BINDI
+0A3C ; [.0000.00C2.0002] # GURMUKHI SIGN NUKTA
+0A33 ; [.269F.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER LLA
+0A36 ; [.2680.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER SHA
+0A59 ; [.2684.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER KHHA
+0A5A ; [.2685.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER GHHA
+0A5B ; [.268A.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER ZA
+0A5E ; [.2698.0020.0002][.0000.00C2.0002] # GURMUKHI LETTER FA
+0A4D ; [.26A2.0020.0002] # GURMUKHI SIGN VIRAMA
+0A3E ; [.26A3.0020.0002] # GURMUKHI VOWEL SIGN AA
+0A3F ; [.26A4.0020.0002] # GURMUKHI VOWEL SIGN I
+0A40 ; [.26A5.0020.0002] # GURMUKHI VOWEL SIGN II
+0A41 ; [.26A6.0020.0002] # GURMUKHI VOWEL SIGN U
+0A42 ; [.26A7.0020.0002] # GURMUKHI VOWEL SIGN UU
+0A47 ; [.26A8.0020.0002] # GURMUKHI VOWEL SIGN EE
+0A48 ; [.26A9.0020.0002] # GURMUKHI VOWEL SIGN AI
+0A4B ; [.26AA.0020.0002] # GURMUKHI VOWEL SIGN OO
+0A4C ; [.26AB.0020.0002] # GURMUKHI VOWEL SIGN AU
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
index 90b839fb381..57bf3f1f508 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/pl.pl
@@ -1,51 +1,51 @@
+{
- locale_version => 1.14,
- 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
-0104 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0041 0328 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
-0107 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0301 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0063 0341 ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0301 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0043 0341 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
-0119 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0142 ; [.1A3C.0020.0002] # LATIN SMALL LETTER L WITH STROKE
-006C 0335 ; [.1A3C.0020.0002] # LATIN SMALL LETTER L WITH STROKE
-0141 ; [.1A3C.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
-004C 0335 ; [.1A3C.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
-0144 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-00F3 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-015B ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-0073 0301 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-0073 0341 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
-015A ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-0053 0301 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-0053 0341 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
-017A ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-007A 0301 ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-007A 0341 ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
-0179 ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-005A 0301 ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-005A 0341 ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
-017C ; [.1BE5.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-007A 0307 ; [.1BE5.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1BE5.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-005A 0307 ; [.1BE5.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0105 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
+0061 0328 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH OGONEK
+0104 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
+0041 0328 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH OGONEK
+0107 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0063 0301 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0063 0341 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH ACUTE
+0106 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0043 0301 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0043 0341 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH ACUTE
+0119 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0142 ; [.1CF3.0020.0002] # LATIN SMALL LETTER L WITH STROKE
+006C 0335 ; [.1CF3.0020.0002] # LATIN SMALL LETTER L WITH STROKE
+0141 ; [.1CF3.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
+004C 0335 ; [.1CF3.0020.0008] # LATIN CAPITAL LETTER L WITH STROKE
+0144 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+00F3 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+015B ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
+0073 0301 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
+0073 0341 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH ACUTE
+015A ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
+0053 0301 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
+0053 0341 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH ACUTE
+017A ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
+007A 0301 ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
+007A 0341 ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH ACUTE
+0179 ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
+005A 0301 ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
+005A 0341 ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH ACUTE
+017C ; [.1E9E.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+007A 0307 ; [.1E9E.0020.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+017B ; [.1E9E.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+005A 0307 ; [.1E9E.0020.0008] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
index 8d1ec1ee75c..69a94af684a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ro.pl
@@ -1,53 +1,53 @@
+{
- locale_version => 1.14,
- 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
-0102 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-0041 0306 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-1EB1 ; [.190D.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.190D.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EAF ; [.190D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.190D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB5 ; [.190D.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.190D.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.190D.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.190D.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB7 ; [.190D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.190D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-00E2 ; [.190E.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-0061 0302 ; [.190E.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.190E.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-0041 0302 ; [.190E.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA7 ; [.190E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.190E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA5 ; [.190E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.190E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EAB ; [.190E.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.190E.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.190E.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.190E.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAD ; [.190E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.190E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-00EE ; [.19F7.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-0069 0302 ; [.19F7.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.19F7.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-0049 0302 ; [.19F7.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-015F ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0219 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-0073 0326 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-015E ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0218 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0053 0326 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-0163 ; [.1B58.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
-0074 0327 ; [.1B58.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
-021B ; [.1B58.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-0074 0326 ; [.1B58.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-0162 ; [.1B58.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
-0054 0327 ; [.1B58.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
-021A ; [.1B58.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
-0054 0326 ; [.1B58.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0103 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH BREVE
+0061 0306 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH BREVE
+0102 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
+0041 0306 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
+1EB1 ; [.1BC3.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB0 ; [.1BC3.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EAF ; [.1BC3.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EAE ; [.1BC3.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EB5 ; [.1BC3.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB4 ; [.1BC3.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB3 ; [.1BC3.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB2 ; [.1BC3.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB7 ; [.1BC3.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB6 ; [.1BC3.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+00E2 ; [.1BC4.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0061 0302 ; [.1BC4.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2 ; [.1BC4.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0041 0302 ; [.1BC4.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+1EA7 ; [.1BC4.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA6 ; [.1BC4.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA5 ; [.1BC4.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA4 ; [.1BC4.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EAB ; [.1BC4.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAA ; [.1BC4.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EA9 ; [.1BC4.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA8 ; [.1BC4.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAD ; [.1BC4.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAC ; [.1BC4.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+00EE ; [.1CAE.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0069 0302 ; [.1CAE.0020.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+00CE ; [.1CAE.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0049 0302 ; [.1CAE.0020.0008] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+015F ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+0073 0327 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+0219 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
+0073 0326 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
+015E ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+0053 0327 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+0218 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
+0053 0326 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH COMMA BELOW
+0163 ; [.1E11.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
+0074 0327 ; [.1E11.0020.0002] # LATIN SMALL LETTER T WITH CEDILLA
+021B ; [.1E11.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
+0074 0326 ; [.1E11.0020.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
+0162 ; [.1E11.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
+0054 0327 ; [.1E11.0020.0008] # LATIN CAPITAL LETTER T WITH CEDILLA
+021A ; [.1E11.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
+0054 0326 ; [.1E11.0020.0008] # LATIN CAPITAL LETTER T WITH COMMA BELOW
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl
deleted file mode 100644
index b23b64125ab..00000000000
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ru.pl
+++ /dev/null
@@ -1,45 +0,0 @@
-+{
- locale_version => 1.14,
- 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,
- 0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-ENTRY
-};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
index 44ca45a0e01..2b6b270ab3a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sa.pl
@@ -1,14 +1,14 @@
+{
- locale_version => 1.14,
- 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
-0903 ; [.235B.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
-0950 ; [.235B.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
-0933 ; [.239D.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
-0934 ; [.239D.0020.0002][.FFF1.0000.0000][.0000.00BC.0002] # DEVANAGARI LETTER LLLA
-0915 094D 0937 ; [.239D.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
-091C 094D 091E ; [.239D.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
-0939 ; [.239D.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0902 ; [.25CE.0020.0002][.FFF1.0000.0000] # DEVANAGARI SIGN ANUSVARA
+0901 ; [.25CE.0021.0002][.FFF1.0000.0000] # DEVANAGARI SIGN CANDRABINDU
+0903 ; [.25CE.0020.0002][.FFF2.0000.0000] # DEVANAGARI SIGN VISARGA
+0950 ; [.25CE.0020.0002][.FFF0.0000.0000] # DEVANAGARI OM
+0933 ; [.2611.0020.0002][.FFF1.0000.0000] # DEVANAGARI LETTER LLA
+0934 ; [.2611.0020.0002][.FFF1.0000.0000][.0000.00BD.0002] # DEVANAGARI LETTER LLLA
+0915 094D 0937 ; [.2611.0020.0002][.FFF2.0000.0000] # <DEVANAGARI LETTER KA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER SSA>
+091C 094D 091E ; [.2611.0020.0002][.FFF3.0000.0000] # <DEVANAGARI LETTER JA, DEVANAGARI SIGN VIRAMA, DEVANAGARI LETTER NYA>
+0939 ; [.2611.0020.0002][.FFF0.0000.0000] # DEVANAGARI LETTER HA
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
index f693e93d4ae..57633b2b273 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/se.pl
@@ -1,150 +1,150 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# 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
-0061 0301 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.1924.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.1924.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-010D ; [.1950.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.1950.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.1950.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.1950.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0292 ; [.1951.0020.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1951.0020.0008] # LATIN CAPITAL LETTER EZH
-01EF ; [.1952.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
-0292 030C ; [.1952.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1952.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
-01B7 030C ; [.1952.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
-0111 ; [.196D.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.196D.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.196D.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.196D.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.196D.0021.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.196D.0021.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.196D.0021.0008] # LATIN CAPITAL LETTER ETH
-01E7 ; [.19C4.0020.0002] # LATIN SMALL LETTER G WITH CARON
-0067 030C ; [.19C4.0020.0002] # LATIN SMALL LETTER G WITH CARON
-01E6 ; [.19C4.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
-0047 030C ; [.19C4.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
-01E9 ; [.1A3A.0020.0002] # LATIN SMALL LETTER K WITH CARON
-006B 030C ; [.1A3A.0020.0002] # LATIN SMALL LETTER K WITH CARON
-01E8 ; [.1A3A.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
-004B 030C ; [.1A3A.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
-0144 ; [.1A9C.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A9C.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A9C.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A9C.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A9C.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A9C.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-00F1 ; [.1A9C.0022.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1A9C.0022.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A9C.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A9C.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
-0161 ; [.1B56.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B56.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B56.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B56.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-00FE ; [.1B5C.0021.0002] # LATIN SMALL LETTER THORN
-00DE ; [.1B5C.0021.0008] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-017E ; [.1C50.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1C50.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1C50.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1C50.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-00F8 ; [.1C51.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C51.0020.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C51.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C51.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C51.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C51.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0153 ; [.1C51.0021.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C51.0021.0008] # LATIN CAPITAL LIGATURE OE
-00E6 ; [.1C52.0020.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C52.0020.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C52.0020.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C52.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C52.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C52.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C52.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C52.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-0227 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0061 0307 ; [.1C54.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0226 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-0041 0307 ; [.1C54.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E3 ; [.1C55.0021.0002] # LATIN SMALL LETTER A WITH TILDE
-0061 0303 ; [.1C55.0021.0002] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
-0041 0303 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00F5 ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH TILDE
-006F 0303 ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
-004F 0303 ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.1C56.0022.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.1C56.0022.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-022D ; [.1C56.0022.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.1C56.0022.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-1E4F ; [.1C56.0022.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.1C56.0022.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-1EE1 ; [.1C56.0022.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1C56.0022.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-00F4 ; [.1C56.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1C56.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1C56.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1C56.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1C56.0023.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1C56.0023.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1C56.0023.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1C56.0023.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1C56.0023.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1C56.0023.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1C56.0023.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1C56.0023.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1C56.0023.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1C56.0023.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-01EB ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
-006F 0328 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
-01EA ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
-004F 0328 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E1 ; [.1BDA.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BDA.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BDA.0020.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BDA.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BDA.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BDA.0020.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+010D ; [.1C07.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1C07.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1C07.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1C07.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0292 ; [.1C08.0020.0002] # LATIN SMALL LETTER EZH
+01B7 ; [.1C08.0020.0008] # LATIN CAPITAL LETTER EZH
+01EF ; [.1C09.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
+0292 030C ; [.1C09.0020.0002] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.1C09.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
+01B7 030C ; [.1C09.0020.0008] # LATIN CAPITAL LETTER EZH WITH CARON
+0111 ; [.1C24.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C24.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C24.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C24.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C24.0021.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C24.0021.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C24.0021.0008] # LATIN CAPITAL LETTER ETH
+01E7 ; [.1C7B.0020.0002] # LATIN SMALL LETTER G WITH CARON
+0067 030C ; [.1C7B.0020.0002] # LATIN SMALL LETTER G WITH CARON
+01E6 ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
+0047 030C ; [.1C7B.0020.0008] # LATIN CAPITAL LETTER G WITH CARON
+01E9 ; [.1CF1.0020.0002] # LATIN SMALL LETTER K WITH CARON
+006B 030C ; [.1CF1.0020.0002] # LATIN SMALL LETTER K WITH CARON
+01E8 ; [.1CF1.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
+004B 030C ; [.1CF1.0020.0008] # LATIN CAPITAL LETTER K WITH CARON
+0144 ; [.1D53.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1D53.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1D53.0021.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D53.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1D53.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1D53.0021.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+00F1 ; [.1D53.0022.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1D53.0022.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1D53.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1D53.0022.0008] # LATIN CAPITAL LETTER N WITH TILDE
+0161 ; [.1E0F.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1E0F.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1E0F.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1E0F.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+00FE ; [.1E15.0021.0002] # LATIN SMALL LETTER THORN
+00DE ; [.1E15.0021.0008] # LATIN CAPITAL LETTER THORN
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+017E ; [.1F0D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1F0D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1F0D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1F0D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+00F8 ; [.1F0E.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F0E.0020.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F0E.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F0E.0020.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F0E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F0E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+0153 ; [.1F0E.0021.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F0E.0021.0008] # LATIN CAPITAL LIGATURE OE
+00E6 ; [.1F0F.0020.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F0F.0020.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F0F.0020.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F0F.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F0F.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F0F.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F0F.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F0F.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+00E5 ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F11.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+0227 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
+0061 0307 ; [.1F11.0021.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
+0226 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
+0041 0307 ; [.1F11.0021.0008] # LATIN CAPITAL LETTER A WITH DOT ABOVE
+00E4 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F12.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F12.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E3 ; [.1F12.0021.0002] # LATIN SMALL LETTER A WITH TILDE
+0061 0303 ; [.1F12.0021.0002] # LATIN SMALL LETTER A WITH TILDE
+00C3 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
+0041 0303 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER A WITH TILDE
+00F6 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F13.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F13.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+00F5 ; [.1F13.0022.0002] # LATIN SMALL LETTER O WITH TILDE
+006F 0303 ; [.1F13.0022.0002] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1F13.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
+004F 0303 ; [.1F13.0022.0008] # LATIN CAPITAL LETTER O WITH TILDE
+1E4D ; [.1F13.0022.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4C ; [.1F13.0022.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+022D ; [.1F13.0022.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
+022C ; [.1F13.0022.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+1E4F ; [.1F13.0022.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E4E ; [.1F13.0022.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1EE1 ; [.1F13.0022.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE0 ; [.1F13.0022.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+00F4 ; [.1F13.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1F13.0023.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1F13.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1F13.0023.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1F13.0023.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1F13.0023.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1F13.0023.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1F13.0023.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1F13.0023.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1F13.0023.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1F13.0023.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1F13.0023.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1F13.0023.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1F13.0023.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+01EB ; [.1F13.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
+006F 0328 ; [.1F13.0024.0002] # LATIN SMALL LETTER O WITH OGONEK
+01EA ; [.1F13.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
+004F 0328 ; [.1F13.0024.0008] # LATIN CAPITAL LETTER O WITH OGONEK
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
index 24e7ff8ef95..b67dc89f18e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si.pl
@@ -1,10 +1,10 @@
+{
- locale_version => 1.14,
- 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
-0D96 ; [.25DC.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
-0DA5 ; [.25E7.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA4 ; [.25E8.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0D82 ; [.2853.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
+0D83 ; [.2853.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
+0D96 ; [.2853.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
+0DA5 ; [.285E.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+0DA4 ; [.285F.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
index 708d2b41433..140de585e8e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/si_dict.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- 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
-0D96 ; [.25DC.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
-0DA5 ; [.25E5.0020.0002][.2617.0020.0002][.25E7.0021.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0D82 ; [.2853.0020.0002][.FFF1.0000.0000] # SINHALA SIGN ANUSVARAYA
+0D83 ; [.2853.0020.0002][.FFF2.0000.0000] # SINHALA SIGN VISARGAYA
+0D96 ; [.2853.0020.0002][.FFF0.0000.0000] # SINHALA LETTER AUYANNA
+0DA5 ; [.285C.0020.0002][.288E.0020.0002][.285E.0021.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
index 89f5de15883..a6c91d5d9b8 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sk.pl
@@ -1,45 +1,45 @@
+{
- locale_version => 1.14,
- 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
-00C4 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.190D.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.190D.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-010D ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-0063 030C ; [.193F.0020.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0063 0068 ; [.19DD.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0063 0048 ; [.19DD.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
-0043 0068 ; [.19DD.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
-0043 0048 ; [.19DD.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
-00F4 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1AA2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1AA2.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA2.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1AA2.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA2.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA2.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA2.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1AA2.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0159 ; [.1AF6.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0072 030C ; [.1AF6.0020.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.1AF6.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0052 030C ; [.1AF6.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E4 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1BC3.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1BC3.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+010D ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0063 0068 ; [.1C94.0020.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0063 0048 ; [.1C94.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER C, LATIN CAPITAL LETTER H>
+0043 0068 ; [.1C94.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER C, LATIN SMALL LETTER H>
+0043 0048 ; [.1C94.0020.0008] # <LATIN CAPITAL LETTER C, LATIN CAPITAL LETTER H>
+00F4 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1D59.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1D59.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1D59.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1D59.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1D59.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1D59.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1D59.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1D59.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1D59.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1D59.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+0159 ; [.1DAF.0020.0002] # LATIN SMALL LETTER R WITH CARON
+0072 030C ; [.1DAF.0020.0002] # LATIN SMALL LETTER R WITH CARON
+0158 ; [.1DAF.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
+0052 030C ; [.1DAF.0020.0008] # LATIN CAPITAL LETTER R WITH CARON
+0161 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
index 979e890fbdd..4209c38789c 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sl.pl
@@ -1,17 +1,17 @@
+{
- locale_version => 1.14,
- 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
-010C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0043 030C ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-017E ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-007A 030C ; [.1BE4.0020.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
-005A 030C ; [.1BE4.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+010D ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+0063 030C ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0043 030C ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CARON
+0161 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+017E ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+007A 030C ; [.1E9D.0020.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
+005A 030C ; [.1E9D.0020.0008] # LATIN CAPITAL LETTER Z WITH CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
index b8d243b54c3..9a10b102e06 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sq.pl
@@ -1,49 +1,49 @@
+{
- locale_version => 1.14,
- 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
-00C7 ; [.1952.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.1952.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0064 0068 ; [.196D.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
-0064 0048 ; [.196D.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER H>
-0044 0068 ; [.196D.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
-0044 0048 ; [.196D.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
-00EB ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-0065 0308 ; [.19A8.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0045 0308 ; [.19A8.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0067 006A ; [.19DB.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER J>
-0067 004A ; [.19DB.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER J>
-0047 006A ; [.19DB.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER J>
-0047 004A ; [.19DB.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER J>
-006C 006C ; [.1A6D.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
-006C 004C ; [.1A6D.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
-004C 006C ; [.1A6D.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
-004C 004C ; [.1A6D.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
-006E 006A ; [.1AA0.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
-006E 004A ; [.1AA0.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER J>
-004E 006A ; [.1AA0.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
-004E 004A ; [.1AA0.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
-0072 0072 ; [.1B32.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER R>
-0072 0052 ; [.1B32.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER R, LATIN CAPITAL LETTER R>
-0052 0072 ; [.1B32.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER R>
-0052 0052 ; [.1B32.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER R>
-0073 0068 ; [.1B56.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
-0073 0048 ; [.1B56.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER H>
-0053 0068 ; [.1B56.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
-0053 0048 ; [.1B56.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
-0074 0068 ; [.1B76.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
-0074 0048 ; [.1B76.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER H>
-0054 0068 ; [.1B76.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
-0054 0048 ; [.1B76.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
-0078 0068 ; [.1BCC.0020.0002] # <LATIN SMALL LETTER X, LATIN SMALL LETTER H>
-0078 0048 ; [.1BCC.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER X, LATIN CAPITAL LETTER H>
-0058 0068 ; [.1BCC.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER X, LATIN SMALL LETTER H>
-0058 0048 ; [.1BCC.0020.0008] # <LATIN CAPITAL LETTER X, LATIN CAPITAL LETTER H>
-007A 0068 ; [.1BFF.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER H>
-007A 0048 ; [.1BFF.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER H>
-005A 0068 ; [.1BFF.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER H>
-005A 0048 ; [.1BFF.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER H>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E7 ; [.1C09.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+0063 0327 ; [.1C09.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+00C7 ; [.1C09.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+0043 0327 ; [.1C09.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+0064 0068 ; [.1C24.0020.0002] # <LATIN SMALL LETTER D, LATIN SMALL LETTER H>
+0064 0048 ; [.1C24.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER D, LATIN CAPITAL LETTER H>
+0044 0068 ; [.1C24.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER D, LATIN SMALL LETTER H>
+0044 0048 ; [.1C24.0020.0008] # <LATIN CAPITAL LETTER D, LATIN CAPITAL LETTER H>
+00EB ; [.1C5F.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+0065 0308 ; [.1C5F.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+00CB ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
+0045 0308 ; [.1C5F.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
+0067 006A ; [.1C92.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER J>
+0067 004A ; [.1C92.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER G, LATIN CAPITAL LETTER J>
+0047 006A ; [.1C92.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER J>
+0047 004A ; [.1C92.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER J>
+006C 006C ; [.1D24.0020.0002] # <LATIN SMALL LETTER L, LATIN SMALL LETTER L>
+006C 004C ; [.1D24.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER L, LATIN CAPITAL LETTER L>
+004C 006C ; [.1D24.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER L, LATIN SMALL LETTER L>
+004C 004C ; [.1D24.0020.0008] # <LATIN CAPITAL LETTER L, LATIN CAPITAL LETTER L>
+006E 006A ; [.1D57.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER J>
+006E 004A ; [.1D57.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER N, LATIN CAPITAL LETTER J>
+004E 006A ; [.1D57.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER J>
+004E 004A ; [.1D57.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER J>
+0072 0072 ; [.1DEB.0020.0002] # <LATIN SMALL LETTER R, LATIN SMALL LETTER R>
+0072 0052 ; [.1DEB.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER R, LATIN CAPITAL LETTER R>
+0052 0072 ; [.1DEB.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER R, LATIN SMALL LETTER R>
+0052 0052 ; [.1DEB.0020.0008] # <LATIN CAPITAL LETTER R, LATIN CAPITAL LETTER R>
+0073 0068 ; [.1E0F.0020.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER H>
+0073 0048 ; [.1E0F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER S, LATIN CAPITAL LETTER H>
+0053 0068 ; [.1E0F.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER S, LATIN SMALL LETTER H>
+0053 0048 ; [.1E0F.0020.0008] # <LATIN CAPITAL LETTER S, LATIN CAPITAL LETTER H>
+0074 0068 ; [.1E2F.0020.0002] # <LATIN SMALL LETTER T, LATIN SMALL LETTER H>
+0074 0048 ; [.1E2F.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER T, LATIN CAPITAL LETTER H>
+0054 0068 ; [.1E2F.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER T, LATIN SMALL LETTER H>
+0054 0048 ; [.1E2F.0020.0008] # <LATIN CAPITAL LETTER T, LATIN CAPITAL LETTER H>
+0078 0068 ; [.1E85.0020.0002] # <LATIN SMALL LETTER X, LATIN SMALL LETTER H>
+0078 0048 ; [.1E85.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER X, LATIN CAPITAL LETTER H>
+0058 0068 ; [.1E85.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER X, LATIN SMALL LETTER H>
+0058 0048 ; [.1E85.0020.0008] # <LATIN CAPITAL LETTER X, LATIN CAPITAL LETTER H>
+007A 0068 ; [.1EB8.0020.0002] # <LATIN SMALL LETTER Z, LATIN SMALL LETTER H>
+007A 0048 ; [.1EB8.0020.0007][.0000.0000.0002] # <LATIN SMALL LETTER Z, LATIN CAPITAL LETTER H>
+005A 0068 ; [.1EB8.0020.0007][.0000.0000.0008] # <LATIN CAPITAL LETTER Z, LATIN SMALL LETTER H>
+005A 0048 ; [.1EB8.0020.0008] # <LATIN CAPITAL LETTER Z, LATIN CAPITAL LETTER H>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
index 8b829e1997a..9658402b01a 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sr.pl
@@ -1,49 +1,8 @@
+{
- locale_version => 1.14,
- 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,
- 0x0427, 0x0447, 0x042B, 0x044B, 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E5 ; [.1D5A.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1D5A.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0457 ; [.1D66.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
-0407 ; [.1D66.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1D5A.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1D5A.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.19,
+ suppress => [0x0418, 0x0438],
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0439 ; [.1FFB.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT I
+0419 ; [.1FFB.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT I
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
index 5fe73703e39..361251ba9ec 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv.pl
@@ -1,89 +1,89 @@
+{
- locale_version => 1.14,
- 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
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-0077 ; [.1BA5.0021.0002] # LATIN SMALL LETTER W
-0057 ; [.1BA5.0021.0008] # LATIN CAPITAL LETTER W
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1C55.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C55.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C55.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-0119 ; [.1C55.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C55.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C56.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C56.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0151 ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C56.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C56.0023.0008] # LATIN CAPITAL LIGATURE OE
-00F4 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1C56.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1C56.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1C56.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1C56.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1C56.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1C56.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1C56.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1C56.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1C56.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1C56.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C0A.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0A.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0A.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E10.0020.0003][.1C93.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E10.0020.0009][.1C93.0020.0009] # LATIN CAPITAL LETTER THORN
+0077 ; [.1E5E.0021.0002] # LATIN SMALL LETTER W
+0057 ; [.1E5E.0021.0008] # LATIN CAPITAL LETTER W
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E5 ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F11.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F12.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F12.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E6 ; [.1F12.0021.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F12.0021.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F12.0021.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F12.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F12.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+0119 ; [.1F12.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F12.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F6 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F13.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F13.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F13.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F13.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+0151 ; [.1F13.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F13.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F13.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F13.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F13.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F13.0023.0008] # LATIN CAPITAL LIGATURE OE
+00F4 ; [.1F13.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1F13.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1F13.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1F13.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1F13.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1F13.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1F13.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1F13.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1F13.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1F13.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1F13.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1F13.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1F13.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1F13.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
index 336054ea968..363828ae374 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/sv_refo.pl
@@ -1,87 +1,87 @@
+{
- locale_version => 1.14,
- 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
-0110 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1953.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00F0 ; [.1953.0022.0002] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0022.0002] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0022.0008] # LATIN CAPITAL LETTER ETH
-00FE ; [.1B57.0020.0003][.19DC.0020.0003] # LATIN SMALL LETTER THORN
-00DE ; [.1B57.0020.0009][.19DC.0020.0009] # LATIN CAPITAL LETTER THORN
-00FC ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1BCD.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1BCD.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1BCD.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1BCD.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1BCD.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1BCD.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1BCD.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1BCD.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1BCD.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1BCD.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0171 ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0075 030B ; [.1BCD.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0055 030B ; [.1BCD.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-00E5 ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-0061 030A ; [.1C54.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-0041 030A ; [.1C54.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.1C54.0020.0008] # ANGSTROM SIGN
-01FB ; [.1C54.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.1C54.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-0061 0308 ; [.1C55.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-00C4 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-0041 0308 ; [.1C55.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
-01DF ; [.1C55.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.1C55.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E6 ; [.1C55.0021.0002] # LATIN SMALL LETTER AE
-1DD4 ; [.1C55.0021.0002] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.1C55.0021.0008] # LATIN CAPITAL LETTER AE
-1D2D ; [.1C55.0021.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.1C55.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.1C55.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.1C55.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.1C55.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-0119 ; [.1C55.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0065 0328 ; [.1C55.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-0045 0328 ; [.1C55.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
-00F6 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1C56.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1C56.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1C56.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1C56.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-00F8 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-006F 0338 ; [.1C56.0021.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-004F 0338 ; [.1C56.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1C56.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1C56.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-0151 ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-006F 030B ; [.1C56.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-004F 030B ; [.1C56.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-0153 ; [.1C56.0023.0002] # LATIN SMALL LIGATURE OE
-0152 ; [.1C56.0023.0008] # LATIN CAPITAL LIGATURE OE
-00F4 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1C56.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1C56.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1C56.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1C56.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1C56.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1C56.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1C56.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1C56.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1C56.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1C56.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1C56.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1C56.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0111 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0A.0021.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0A.0021.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00F0 ; [.1C0A.0022.0002] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0A.0022.0002] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0A.0022.0008] # LATIN CAPITAL LETTER ETH
+00FE ; [.1E10.0020.0003][.1C93.0020.0003] # LATIN SMALL LETTER THORN
+00DE ; [.1E10.0020.0009][.1C93.0020.0009] # LATIN CAPITAL LETTER THORN
+00FC ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E86.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E86.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E86.0021.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E86.0021.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E86.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E86.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E86.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E86.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E86.0021.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E86.0021.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0171 ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0075 030B ; [.1E86.0022.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0055 030B ; [.1E86.0022.0008] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+00E5 ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+0061 030A ; [.1F11.0020.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+0041 030A ; [.1F11.0020.0008] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1F11.0020.0008] # ANGSTROM SIGN
+01FB ; [.1F11.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1F11.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1F12.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1F12.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1F12.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1F12.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E6 ; [.1F12.0021.0002] # LATIN SMALL LETTER AE
+1DD4 ; [.1F12.0021.0002] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1F12.0021.0008] # LATIN CAPITAL LETTER AE
+1D2D ; [.1F12.0021.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1F12.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1F12.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1F12.0021.0002][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1F12.0021.0008][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+0119 ; [.1F12.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0065 0328 ; [.1F12.0022.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+0045 0328 ; [.1F12.0022.0008] # LATIN CAPITAL LETTER E WITH OGONEK
+00F6 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1F13.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1F13.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1F13.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1F13.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00F8 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+006F 0338 ; [.1F13.0021.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+004F 0338 ; [.1F13.0021.0008] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1F13.0021.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1F13.0021.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+0151 ; [.1F13.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+006F 030B ; [.1F13.0022.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1F13.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+004F 030B ; [.1F13.0022.0008] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0153 ; [.1F13.0023.0002] # LATIN SMALL LIGATURE OE
+0152 ; [.1F13.0023.0008] # LATIN CAPITAL LIGATURE OE
+00F4 ; [.1F13.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1F13.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1F13.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1F13.0024.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1F13.0024.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1F13.0024.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1F13.0024.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1F13.0024.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1F13.0024.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1F13.0024.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1F13.0024.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1F13.0024.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1F13.0024.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1F13.0024.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
index 8bfd19e0e40..d754993ed78 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ta.pl
@@ -1,55 +1,55 @@
+{
- locale_version => 1.14,
- 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
-0B95 0BCD 0BB7 0BCD ; [.24E3.0020.0002][.FFF2.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
-0B95 0BCD 0BB7 ; [.24E3.0020.0002][.FFF3.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA>
-0B95 0BCD ; [.24CD.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA>
-0B95 ; [.24CD.0020.0002][.FFF1.0000.0000] # TAMIL LETTER KA
-0B99 0BCD ; [.24CE.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NGA, TAMIL SIGN VIRAMA>
-0B99 ; [.24CE.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NGA
-0B9A 0BCD ; [.24CF.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER CA, TAMIL SIGN VIRAMA>
-0B9A ; [.24CF.0020.0002][.FFF1.0000.0000] # TAMIL LETTER CA
-0B9E 0BCD ; [.24D0.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NYA, TAMIL SIGN VIRAMA>
-0B9E ; [.24D0.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NYA
-0B9F 0BCD ; [.24D1.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TTA, TAMIL SIGN VIRAMA>
-0B9F ; [.24D1.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TTA
-0BA3 0BCD ; [.24D2.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNA, TAMIL SIGN VIRAMA>
-0BA3 ; [.24D2.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNA
-0BA4 0BCD ; [.24D3.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TA, TAMIL SIGN VIRAMA>
-0BA4 ; [.24D3.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TA
-0BA8 0BCD ; [.24D4.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NA, TAMIL SIGN VIRAMA>
-0BA8 ; [.24D4.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NA
-0BAA 0BCD ; [.24D5.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER PA, TAMIL SIGN VIRAMA>
-0BAA ; [.24D5.0020.0002][.FFF1.0000.0000] # TAMIL LETTER PA
-0BAE 0BCD ; [.24D6.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER MA, TAMIL SIGN VIRAMA>
-0BAE ; [.24D6.0020.0002][.FFF1.0000.0000] # TAMIL LETTER MA
-0BAF 0BCD ; [.24D7.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER YA, TAMIL SIGN VIRAMA>
-0BAF ; [.24D7.0020.0002][.FFF1.0000.0000] # TAMIL LETTER YA
-0BB0 0BCD ; [.24D8.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RA, TAMIL SIGN VIRAMA>
-0BB0 ; [.24D8.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RA
-0BB2 0BCD ; [.24D9.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LA, TAMIL SIGN VIRAMA>
-0BB2 ; [.24D9.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LA
-0BB5 0BCD ; [.24DA.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER VA, TAMIL SIGN VIRAMA>
-0BB5 ; [.24DA.0020.0002][.FFF1.0000.0000] # TAMIL LETTER VA
-0BB4 0BCD ; [.24DB.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLLA, TAMIL SIGN VIRAMA>
-0BB4 ; [.24DB.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLLA
-0BB3 0BCD ; [.24DC.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLA, TAMIL SIGN VIRAMA>
-0BB3 ; [.24DC.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLA
-0BB1 0BCD ; [.24DD.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RRA, TAMIL SIGN VIRAMA>
-0BB1 ; [.24DD.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RRA
-0BA9 0BCD ; [.24DE.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNNA, TAMIL SIGN VIRAMA>
-0BA9 ; [.24DE.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNNA
-0B9C 0BCD ; [.24DF.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER JA, TAMIL SIGN VIRAMA>
-0B9C ; [.24DF.0020.0002][.FFF1.0000.0000] # TAMIL LETTER JA
-0BB6 0BCD ; [.24E0.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SHA, TAMIL SIGN VIRAMA>
-0BB6 ; [.24E0.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SHA
-0BB7 0BCD ; [.24E1.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
-0BB7 ; [.24E1.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SSA
-0BB8 0BCD ; [.24E2.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SA, TAMIL SIGN VIRAMA>
-0BB8 ; [.24E2.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SA
-0BB9 0BCD ; [.24E3.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER HA, TAMIL SIGN VIRAMA>
-0BB9 ; [.24E3.0020.0002][.FFF1.0000.0000] # TAMIL LETTER HA
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0B82 ; [.2741.0020.0002][.FFF0.0000.0000] # TAMIL SIGN ANUSVARA
+0B83 ; [.2741.0020.0002][.FFF1.0000.0000] # TAMIL SIGN VISARGA
+0B95 0BCD 0BB7 0BCD ; [.2758.0020.0002][.FFF2.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
+0B95 0BCD 0BB7 ; [.2758.0020.0002][.FFF3.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA, TAMIL LETTER SSA>
+0B95 0BCD ; [.2742.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER KA, TAMIL SIGN VIRAMA>
+0B95 ; [.2742.0020.0002][.FFF1.0000.0000] # TAMIL LETTER KA
+0B99 0BCD ; [.2743.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NGA, TAMIL SIGN VIRAMA>
+0B99 ; [.2743.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NGA
+0B9A 0BCD ; [.2744.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER CA, TAMIL SIGN VIRAMA>
+0B9A ; [.2744.0020.0002][.FFF1.0000.0000] # TAMIL LETTER CA
+0B9E 0BCD ; [.2745.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NYA, TAMIL SIGN VIRAMA>
+0B9E ; [.2745.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NYA
+0B9F 0BCD ; [.2746.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TTA, TAMIL SIGN VIRAMA>
+0B9F ; [.2746.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TTA
+0BA3 0BCD ; [.2747.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNA, TAMIL SIGN VIRAMA>
+0BA3 ; [.2747.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNA
+0BA4 0BCD ; [.2748.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER TA, TAMIL SIGN VIRAMA>
+0BA4 ; [.2748.0020.0002][.FFF1.0000.0000] # TAMIL LETTER TA
+0BA8 0BCD ; [.2749.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NA, TAMIL SIGN VIRAMA>
+0BA8 ; [.2749.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NA
+0BAA 0BCD ; [.274A.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER PA, TAMIL SIGN VIRAMA>
+0BAA ; [.274A.0020.0002][.FFF1.0000.0000] # TAMIL LETTER PA
+0BAE 0BCD ; [.274B.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER MA, TAMIL SIGN VIRAMA>
+0BAE ; [.274B.0020.0002][.FFF1.0000.0000] # TAMIL LETTER MA
+0BAF 0BCD ; [.274C.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER YA, TAMIL SIGN VIRAMA>
+0BAF ; [.274C.0020.0002][.FFF1.0000.0000] # TAMIL LETTER YA
+0BB0 0BCD ; [.274D.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RA, TAMIL SIGN VIRAMA>
+0BB0 ; [.274D.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RA
+0BB2 0BCD ; [.274E.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LA, TAMIL SIGN VIRAMA>
+0BB2 ; [.274E.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LA
+0BB5 0BCD ; [.274F.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER VA, TAMIL SIGN VIRAMA>
+0BB5 ; [.274F.0020.0002][.FFF1.0000.0000] # TAMIL LETTER VA
+0BB4 0BCD ; [.2750.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLLA, TAMIL SIGN VIRAMA>
+0BB4 ; [.2750.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLLA
+0BB3 0BCD ; [.2751.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER LLA, TAMIL SIGN VIRAMA>
+0BB3 ; [.2751.0020.0002][.FFF1.0000.0000] # TAMIL LETTER LLA
+0BB1 0BCD ; [.2752.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER RRA, TAMIL SIGN VIRAMA>
+0BB1 ; [.2752.0020.0002][.FFF1.0000.0000] # TAMIL LETTER RRA
+0BA9 0BCD ; [.2753.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER NNNA, TAMIL SIGN VIRAMA>
+0BA9 ; [.2753.0020.0002][.FFF1.0000.0000] # TAMIL LETTER NNNA
+0B9C 0BCD ; [.2754.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER JA, TAMIL SIGN VIRAMA>
+0B9C ; [.2754.0020.0002][.FFF1.0000.0000] # TAMIL LETTER JA
+0BB6 0BCD ; [.2755.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SHA, TAMIL SIGN VIRAMA>
+0BB6 ; [.2755.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SHA
+0BB7 0BCD ; [.2756.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SSA, TAMIL SIGN VIRAMA>
+0BB7 ; [.2756.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SSA
+0BB8 0BCD ; [.2757.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER SA, TAMIL SIGN VIRAMA>
+0BB8 ; [.2757.0020.0002][.FFF1.0000.0000] # TAMIL LETTER SA
+0BB9 0BCD ; [.2758.0020.0002][.FFF0.0000.0000] # <TAMIL LETTER HA, TAMIL SIGN VIRAMA>
+0BB9 ; [.2758.0020.0002][.FFF1.0000.0000] # TAMIL LETTER HA
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
index 93c55546763..d5843d1e700 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/te.pl
@@ -1,9 +1,9 @@
+{
- locale_version => 1.14,
- 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
-0C03 ; [.2500.0020.0002][.FFF3.0000.0000] # TELUGU SIGN VISARGA
-0C14 ; [.2500.0020.0002][.FFF0.0000.0000] # TELUGU LETTER AU
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0C01 ; [.2775.0020.0002][.FFF1.0000.0000] # TELUGU SIGN CANDRABINDU
+0C02 ; [.2775.0020.0002][.FFF2.0000.0000] # TELUGU SIGN ANUSVARA
+0C03 ; [.2775.0020.0002][.FFF3.0000.0000] # TELUGU SIGN VISARGA
+0C14 ; [.2775.0020.0002][.FFF0.0000.0000] # TELUGU LETTER AU
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
index 4c27713ad63..eb94ecde24e 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/th.pl
@@ -1,23 +1,23 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
variable => 'shifted',
alternate => 'shifted',
- entry => <<'ENTRY', # for DUCET v7.0.0
-0E2F ; [*03D3.0020.0002][*FFF0.0000.0000] # THAI CHARACTER PAIYANNOI
-0E5A ; [*03D3.0020.0002][*FFF1.0000.0000] # THAI CHARACTER ANGKHANKHU
-0E46 ; [*03D4.0020.0002][*FFF1.0000.0000] # THAI CHARACTER MAIYAMOK
-0E5B ; [*03D4.0020.0002][*FFF0.0000.0000] # THAI CHARACTER KHOMUT
-0E4C ; [.0000.00CA.0002] # THAI CHARACTER THANTHAKHAT
-0E47 ; [.0000.00CB.0002] # THAI CHARACTER MAITAIKHU
-0E48 ; [.0000.00CC.0002] # THAI CHARACTER MAI EK
-0E49 ; [.0000.00CD.0002] # THAI CHARACTER MAI THO
-0E4A ; [.0000.00CE.0002] # THAI CHARACTER MAI TRI
-0E4B ; [.0000.00CF.0002] # THAI CHARACTER MAI CHATTAWA
-0E4D ; [.29CB.0020.0002] # THAI CHARACTER NIKHAHIT
-0E45 ; [.29CE.0020.0003] # THAI CHARACTER LAKKHANGYAO
-0E4D 0E32 ; [.29CE.0020.0002][.29CB.0020.0003] # THAI CHARACTER SARA AM
-0E33 ; [.29CE.0020.0002][.29CB.0020.0004] # THAI CHARACTER SARA AM
-0E45 0E4D ; [.29CB.0020.0002][.29CE.0020.0004] # <THAI CHARACTER LAKKHANGYAO, THAI CHARACTER NIKHAHIT>
-0E3A ; [.29DC.0020.0002] # THAI CHARACTER PHINTHU
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0E2F ; [*03DA.0020.0002][*FFF0.0000.0000] # THAI CHARACTER PAIYANNOI
+0E5A ; [*03DA.0020.0002][*FFF1.0000.0000] # THAI CHARACTER ANGKHANKHU
+0E46 ; [*03DB.0020.0002][*FFF1.0000.0000] # THAI CHARACTER MAIYAMOK
+0E5B ; [*03DB.0020.0002][*FFF0.0000.0000] # THAI CHARACTER KHOMUT
+0E4C ; [.0000.00CD.0002] # THAI CHARACTER THANTHAKHAT
+0E47 ; [.0000.00CE.0002] # THAI CHARACTER MAITAIKHU
+0E48 ; [.0000.00CF.0002] # THAI CHARACTER MAI EK
+0E49 ; [.0000.00D0.0002] # THAI CHARACTER MAI THO
+0E4A ; [.0000.00D1.0002] # THAI CHARACTER MAI TRI
+0E4B ; [.0000.00D2.0002] # THAI CHARACTER MAI CHATTAWA
+0E4D ; [.2C90.0020.0002] # THAI CHARACTER NIKHAHIT
+0E45 ; [.2C93.0020.0003] # THAI CHARACTER LAKKHANGYAO
+0E4D 0E32 ; [.2C93.0020.0002][.2C90.0020.0003] # THAI CHARACTER SARA AM
+0E33 ; [.2C93.0020.0002][.2C90.0020.0004] # THAI CHARACTER SARA AM
+0E45 0E4D ; [.2C90.0020.0002][.2C93.0020.0004] # <THAI CHARACTER LAKKHANGYAO, THAI CHARACTER NIKHAHIT>
+0E3A ; [.2CA1.0020.0002] # THAI CHARACTER PHINTHU
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
index d3c1d6bfb6a..1229a1a92fc 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tn.pl
@@ -1,37 +1,37 @@
+{
- locale_version => 1.14,
- 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
-00CA ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.196F.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196F.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.196F.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196F.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.196F.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196F.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196F.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196F.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196F.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196F.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1AA2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1AA2.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA2.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1AA2.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA2.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA2.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA2.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1AA2.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0161 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0073 030C ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
-0053 030C ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00EA ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC1 ; [.1C26.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C26.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EBF ; [.1C26.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C26.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC5 ; [.1C26.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C26.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C26.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C26.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C26.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C26.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+00F4 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1D59.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1D59.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1D59.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1D59.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1D59.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1D59.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1D59.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1D59.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1D59.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1D59.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+0161 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0073 030C ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
+0053 030C ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
index ca33252f0b1..6df40d37955 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/to.pl
@@ -1,62 +1,62 @@
+{
- locale_version => 1.14,
- 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>
-004E 0047 ; [.1A7E.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
-014B ; [.1A7E.0020.001C] # LATIN SMALL LETTER ENG
-014A ; [.1A7E.0020.001D] # LATIN CAPITAL LETTER ENG
-02BB ; [.1BE4.0020.0002] # MODIFIER LETTER TURNED COMMA
-02BD ; [.1BE4.0020.0003] # MODIFIER LETTER REVERSED COMMA
-00E1 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0101 ; [.190C.0022.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.0022.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E9 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0113 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00ED ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-012B ; [.19F6.0022.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.0022.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00F3 ; [.1AA1.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-014D ; [.1AA1.0022.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.0022.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00FA ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-016B ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+006E 0067 ; [.1D35.0020.0002] # <LATIN SMALL LETTER N, LATIN SMALL LETTER G>
+004E 0067 ; [.1D35.0020.0007] # <LATIN CAPITAL LETTER N, LATIN SMALL LETTER G>
+004E 0047 ; [.1D35.0020.0008] # <LATIN CAPITAL LETTER N, LATIN CAPITAL LETTER G>
+014B ; [.1D35.0020.001C] # LATIN SMALL LETTER ENG
+014A ; [.1D35.0020.001D] # LATIN CAPITAL LETTER ENG
+02BB ; [.1E9D.0020.0002] # MODIFIER LETTER TURNED COMMA
+02BD ; [.1E9D.0020.0003] # MODIFIER LETTER REVERSED COMMA
+00E1 ; [.1BC2.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BC2.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BC2.0021.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BC2.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BC2.0021.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0101 ; [.1BC2.0022.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1BC2.0022.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1BC2.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1BC2.0022.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E9 ; [.1C25.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C25.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C25.0021.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C25.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C25.0021.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0113 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00ED ; [.1CAD.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1CAD.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1CAD.0021.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1CAD.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1CAD.0021.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+012B ; [.1CAD.0022.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1CAD.0022.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1CAD.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1CAD.0022.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00F3 ; [.1D58.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D58.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D58.0021.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D58.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D58.0021.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+014D ; [.1D58.0022.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1D58.0022.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1D58.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1D58.0022.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00FA ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+016B ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH MACRON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
index 5eb59581a34..468ab20ae7b 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/tr.pl
@@ -1,46 +1,46 @@
+{
- locale_version => 1.14,
- 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
-00C7 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-0043 0327 ; [.193F.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
-011F ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-0067 0306 ; [.19B9.0020.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0047 0306 ; [.19B9.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
-0131 ; [.19F5.0020.0002] # LATIN SMALL LETTER DOTLESS I
-0049 ; [.19F5.0020.0008] # LATIN CAPITAL LETTER I
-00CC ; [.19F5.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-00CD ; [.19F5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00CE ; [.19F5.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-00CF ; [.19F5.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-012A ; [.19F5.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-012C ; [.19F5.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-012E ; [.19F5.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-0130 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-0049 0307 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-00F6 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-006F 0308 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-00D6 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-004F 0308 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
-022B ; [.1AA2.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA2.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-015F ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-0073 0327 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-0053 0327 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
-00FC ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-01DC ; [.1B78.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B78.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01D8 ; [.1B78.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B78.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01D6 ; [.1B78.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B78.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-01DA ; [.1B78.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B78.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E7 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+0063 0327 ; [.1BF6.0020.0002] # LATIN SMALL LETTER C WITH CEDILLA
+00C7 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+0043 0327 ; [.1BF6.0020.0008] # LATIN CAPITAL LETTER C WITH CEDILLA
+011F ; [.1C70.0020.0002] # LATIN SMALL LETTER G WITH BREVE
+0067 0306 ; [.1C70.0020.0002] # LATIN SMALL LETTER G WITH BREVE
+011E ; [.1C70.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
+0047 0306 ; [.1C70.0020.0008] # LATIN CAPITAL LETTER G WITH BREVE
+0131 ; [.1CAC.0020.0002] # LATIN SMALL LETTER DOTLESS I
+0049 ; [.1CAC.0020.0008] # LATIN CAPITAL LETTER I
+00CC ; [.1CAC.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
+00CD ; [.1CAC.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
+00CE ; [.1CAC.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF ; [.1CAC.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
+012A ; [.1CAC.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
+012C ; [.1CAC.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
+012E ; [.1CAC.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
+0130 ; [.1CAD.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+0049 0307 ; [.1CAD.0020.0008] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+00F6 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1D59.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1D59.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+015F ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+0073 0327 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH CEDILLA
+015E ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+0053 0327 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH CEDILLA
+00FC ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E31.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E31.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E31.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E31.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E31.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E31.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E31.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E31.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl
new file mode 100755
index 00000000000..e36b1e9b3c2
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ug_cyrl.pl
@@ -0,0 +1,7 @@
++{
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+04D9 ; [.1FD6.0020.0002] # CYRILLIC SMALL LETTER SCHWA
+04D8 ; [.1FD6.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA
+ENTRY
+};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
index 844e836ec76..87240c248bd 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/uk.pl
@@ -1,45 +1,14 @@
+{
- locale_version => 1.14,
- 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,
- 0x042D, 0x044D, 0x0474, 0x0475],
- entry => <<'ENTRY', # for DUCET v7.0.0
-0491 ; [.1D01.0020.0002] # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0490 ; [.1D01.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-04D1 ; [.1CE0.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE0.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE0.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE0.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04DB ; [.1CEC.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CEC.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-0453 ; [.1D00.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D00.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
-04D7 ; [.1D28.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D28.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-04DD ; [.1D34.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D34.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-04DF ; [.1D42.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D42.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-04E7 ; [.1DC9.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DC9.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04EB ; [.1DD1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-045C ; [.1D78.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1D78.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
-045E ; [.1E0B.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0B.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E0B.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E0B.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E0B.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E0B.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04F5 ; [.1E5E.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E5E.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04F9 ; [.1E92.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E92.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-04ED ; [.1EA7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EA7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-0477 ; [.1EDD.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EDD.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0491 ; [.1FB2.0020.0002] # CYRILLIC SMALL LETTER GHE WITH UPTURN
+0490 ; [.1FB2.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+A647 ; [.2004.0020.0002] # CYRILLIC SMALL LETTER IOTA
+A646 ; [.2004.0020.0008] # CYRILLIC CAPITAL LETTER IOTA
+0457 ; [.2005.0020.0002] # CYRILLIC SMALL LETTER YI
+0456 0308 ; [.2005.0020.0002] # CYRILLIC SMALL LETTER YI
+0407 ; [.2005.0020.0008] # CYRILLIC CAPITAL LETTER YI
+0406 0308 ; [.2005.0020.0008] # CYRILLIC CAPITAL LETTER YI
+A676 ; [.2005.0020.0004] # COMBINING CYRILLIC LETTER YI
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
index b248e1ca89e..58e6822a123 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/ur.pl
@@ -1,76 +1,76 @@
+{
- locale_version => 1.14,
- 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
-0622 ; [.2016.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.2016.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0628 ; [.2016.0020.0002][.FFC1.0000.0000] # ARABIC LETTER BEH
-0628 06BE ; [.2016.0020.0002][.FFC2.0000.0000] # <ARABIC LETTER BEH, ARABIC LETTER HEH DOACHASHMEE>
-067E ; [.2016.0020.0002][.FFC3.0000.0000] # ARABIC LETTER PEH
-067E 06BE ; [.2016.0020.0002][.FFC4.0000.0000] # <ARABIC LETTER PEH, ARABIC LETTER HEH DOACHASHMEE>
-062A ; [.2016.0020.0002][.FFC5.0000.0000] # ARABIC LETTER TEH
-062A 06BE ; [.2016.0020.0002][.FFC6.0000.0000] # <ARABIC LETTER TEH, ARABIC LETTER HEH DOACHASHMEE>
-0679 ; [.2016.0020.0002][.FFC7.0000.0000] # ARABIC LETTER TTEH
-0679 06BE ; [.2016.0020.0002][.FFC8.0000.0000] # <ARABIC LETTER TTEH, ARABIC LETTER HEH DOACHASHMEE>
-062B ; [.2016.0020.0002][.FFC9.0000.0000] # ARABIC LETTER THEH
-062C ; [.2016.0020.0002][.FFCA.0000.0000] # ARABIC LETTER JEEM
-062C 06BE ; [.2016.0020.0002][.FFCB.0000.0000] # <ARABIC LETTER JEEM, ARABIC LETTER HEH DOACHASHMEE>
-0686 ; [.2016.0020.0002][.FFCC.0000.0000] # ARABIC LETTER TCHEH
-0686 06BE ; [.2016.0020.0002][.FFCD.0000.0000] # <ARABIC LETTER TCHEH, ARABIC LETTER HEH DOACHASHMEE>
-062D ; [.2016.0020.0002][.FFCE.0000.0000] # ARABIC LETTER HAH
-062E ; [.2016.0020.0002][.FFCF.0000.0000] # ARABIC LETTER KHAH
-062F ; [.2016.0020.0002][.FFD0.0000.0000] # ARABIC LETTER DAL
-062F 06BE ; [.2016.0020.0002][.FFD1.0000.0000] # <ARABIC LETTER DAL, ARABIC LETTER HEH DOACHASHMEE>
-0688 ; [.2016.0020.0002][.FFD2.0000.0000] # ARABIC LETTER DDAL
-0688 06BE ; [.2016.0020.0002][.FFD3.0000.0000] # <ARABIC LETTER DDAL, ARABIC LETTER HEH DOACHASHMEE>
-0630 ; [.2016.0020.0002][.FFD4.0000.0000] # ARABIC LETTER THAL
-0631 ; [.2016.0020.0002][.FFD5.0000.0000] # ARABIC LETTER REH
-0631 06BE ; [.2016.0020.0002][.FFD6.0000.0000] # <ARABIC LETTER REH, ARABIC LETTER HEH DOACHASHMEE>
-0691 ; [.2016.0020.0002][.FFD7.0000.0000] # ARABIC LETTER RREH
-0691 06BE ; [.2016.0020.0002][.FFD8.0000.0000] # <ARABIC LETTER RREH, ARABIC LETTER HEH DOACHASHMEE>
-0632 ; [.2016.0020.0002][.FFD9.0000.0000] # ARABIC LETTER ZAIN
-0698 ; [.2016.0020.0002][.FFDA.0000.0000] # ARABIC LETTER JEH
-0633 ; [.2016.0020.0002][.FFDB.0000.0000] # ARABIC LETTER SEEN
-0634 ; [.2016.0020.0002][.FFDC.0000.0000] # ARABIC LETTER SHEEN
-0635 ; [.2016.0020.0002][.FFDD.0000.0000] # ARABIC LETTER SAD
-0636 ; [.2016.0020.0002][.FFDE.0000.0000] # ARABIC LETTER DAD
-0637 ; [.2016.0020.0002][.FFDF.0000.0000] # ARABIC LETTER TAH
-0638 ; [.2016.0020.0002][.FFE0.0000.0000] # ARABIC LETTER ZAH
-0639 ; [.2016.0020.0002][.FFE1.0000.0000] # ARABIC LETTER AIN
-063A ; [.2016.0020.0002][.FFE2.0000.0000] # ARABIC LETTER GHAIN
-0641 ; [.2016.0020.0002][.FFE3.0000.0000] # ARABIC LETTER FEH
-0642 ; [.2016.0020.0002][.FFE4.0000.0000] # ARABIC LETTER QAF
-06A9 ; [.2016.0020.0002][.FFE5.0000.0000] # ARABIC LETTER KEHEH
-06A9 06BE ; [.2016.0020.0002][.FFE6.0000.0000] # <ARABIC LETTER KEHEH, ARABIC LETTER HEH DOACHASHMEE>
-06AF ; [.2016.0020.0002][.FFE7.0000.0000] # ARABIC LETTER GAF
-06AF 06BE ; [.2016.0020.0002][.FFE8.0000.0000] # <ARABIC LETTER GAF, ARABIC LETTER HEH DOACHASHMEE>
-0644 ; [.2016.0020.0002][.FFE9.0000.0000] # ARABIC LETTER LAM
-0644 06BE ; [.2016.0020.0002][.FFEA.0000.0000] # <ARABIC LETTER LAM, ARABIC LETTER HEH DOACHASHMEE>
-0645 ; [.2016.0020.0002][.FFEB.0000.0000] # ARABIC LETTER MEEM
-0645 06BE ; [.2016.0020.0002][.FFEC.0000.0000] # <ARABIC LETTER MEEM, ARABIC LETTER HEH DOACHASHMEE>
-0646 ; [.2016.0020.0002][.FFED.0000.0000] # ARABIC LETTER NOON
-0646 06BE ; [.2016.0020.0002][.FFEE.0000.0000] # <ARABIC LETTER NOON, ARABIC LETTER HEH DOACHASHMEE>
-06BA ; [.2016.0020.0002][.FFEF.0000.0000] # ARABIC LETTER NOON GHUNNA
-06BA 06BE ; [.2016.0020.0002][.FFF0.0000.0000] # <ARABIC LETTER NOON GHUNNA, ARABIC LETTER HEH DOACHASHMEE>
-0648 ; [.2016.0020.0002][.FFF1.0000.0000] # ARABIC LETTER WAW
-0624 ; [.2016.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.2016.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 06BE ; [.2016.0020.0002][.FFF2.0000.0000] # <ARABIC LETTER WAW, ARABIC LETTER HEH DOACHASHMEE>
-06C1 ; [.2016.0020.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL
-06C2 ; [.2016.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C1 0654 ; [.2016.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06BE ; [.2016.0020.0002][.FFF4.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
-06C3 ; [.2016.0020.0002][.FFF5.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
-0621 ; [.2016.0020.0002][.FFF6.0000.0000] # ARABIC LETTER HAMZA
-06CC ; [.2016.0020.0002][.FFF7.0000.0000] # ARABIC LETTER FARSI YEH
-0626 ; [.2016.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.2016.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
-06CC 06BE ; [.2016.0020.0002][.FFF8.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC LETTER HEH DOACHASHMEE>
-06D2 ; [.2016.0020.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE
-06D3 ; [.2016.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D2 0654 ; [.2016.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-066E ; [.2016.0020.0002][.FFFA.0000.0000] # ARABIC LETTER DOTLESS BEH
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0623 ; [.2286.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0627 0654 ; [.2286.0021.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0622 ; [.2287.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
+0627 0653 ; [.2287.0020.0002][.FFC0.0000.0000] # ARABIC LETTER ALEF WITH MADDA ABOVE
+0628 ; [.2287.0020.0002][.FFC1.0000.0000] # ARABIC LETTER BEH
+0628 06BE ; [.2287.0020.0002][.FFC2.0000.0000] # <ARABIC LETTER BEH, ARABIC LETTER HEH DOACHASHMEE>
+067E ; [.2287.0020.0002][.FFC3.0000.0000] # ARABIC LETTER PEH
+067E 06BE ; [.2287.0020.0002][.FFC4.0000.0000] # <ARABIC LETTER PEH, ARABIC LETTER HEH DOACHASHMEE>
+062A ; [.2287.0020.0002][.FFC5.0000.0000] # ARABIC LETTER TEH
+062A 06BE ; [.2287.0020.0002][.FFC6.0000.0000] # <ARABIC LETTER TEH, ARABIC LETTER HEH DOACHASHMEE>
+0679 ; [.2287.0020.0002][.FFC7.0000.0000] # ARABIC LETTER TTEH
+0679 06BE ; [.2287.0020.0002][.FFC8.0000.0000] # <ARABIC LETTER TTEH, ARABIC LETTER HEH DOACHASHMEE>
+062B ; [.2287.0020.0002][.FFC9.0000.0000] # ARABIC LETTER THEH
+062C ; [.2287.0020.0002][.FFCA.0000.0000] # ARABIC LETTER JEEM
+062C 06BE ; [.2287.0020.0002][.FFCB.0000.0000] # <ARABIC LETTER JEEM, ARABIC LETTER HEH DOACHASHMEE>
+0686 ; [.2287.0020.0002][.FFCC.0000.0000] # ARABIC LETTER TCHEH
+0686 06BE ; [.2287.0020.0002][.FFCD.0000.0000] # <ARABIC LETTER TCHEH, ARABIC LETTER HEH DOACHASHMEE>
+062D ; [.2287.0020.0002][.FFCE.0000.0000] # ARABIC LETTER HAH
+062E ; [.2287.0020.0002][.FFCF.0000.0000] # ARABIC LETTER KHAH
+062F ; [.2287.0020.0002][.FFD0.0000.0000] # ARABIC LETTER DAL
+062F 06BE ; [.2287.0020.0002][.FFD1.0000.0000] # <ARABIC LETTER DAL, ARABIC LETTER HEH DOACHASHMEE>
+0688 ; [.2287.0020.0002][.FFD2.0000.0000] # ARABIC LETTER DDAL
+0688 06BE ; [.2287.0020.0002][.FFD3.0000.0000] # <ARABIC LETTER DDAL, ARABIC LETTER HEH DOACHASHMEE>
+0630 ; [.2287.0020.0002][.FFD4.0000.0000] # ARABIC LETTER THAL
+0631 ; [.2287.0020.0002][.FFD5.0000.0000] # ARABIC LETTER REH
+0631 06BE ; [.2287.0020.0002][.FFD6.0000.0000] # <ARABIC LETTER REH, ARABIC LETTER HEH DOACHASHMEE>
+0691 ; [.2287.0020.0002][.FFD7.0000.0000] # ARABIC LETTER RREH
+0691 06BE ; [.2287.0020.0002][.FFD8.0000.0000] # <ARABIC LETTER RREH, ARABIC LETTER HEH DOACHASHMEE>
+0632 ; [.2287.0020.0002][.FFD9.0000.0000] # ARABIC LETTER ZAIN
+0698 ; [.2287.0020.0002][.FFDA.0000.0000] # ARABIC LETTER JEH
+0633 ; [.2287.0020.0002][.FFDB.0000.0000] # ARABIC LETTER SEEN
+0634 ; [.2287.0020.0002][.FFDC.0000.0000] # ARABIC LETTER SHEEN
+0635 ; [.2287.0020.0002][.FFDD.0000.0000] # ARABIC LETTER SAD
+0636 ; [.2287.0020.0002][.FFDE.0000.0000] # ARABIC LETTER DAD
+0637 ; [.2287.0020.0002][.FFDF.0000.0000] # ARABIC LETTER TAH
+0638 ; [.2287.0020.0002][.FFE0.0000.0000] # ARABIC LETTER ZAH
+0639 ; [.2287.0020.0002][.FFE1.0000.0000] # ARABIC LETTER AIN
+063A ; [.2287.0020.0002][.FFE2.0000.0000] # ARABIC LETTER GHAIN
+0641 ; [.2287.0020.0002][.FFE3.0000.0000] # ARABIC LETTER FEH
+0642 ; [.2287.0020.0002][.FFE4.0000.0000] # ARABIC LETTER QAF
+06A9 ; [.2287.0020.0002][.FFE5.0000.0000] # ARABIC LETTER KEHEH
+06A9 06BE ; [.2287.0020.0002][.FFE6.0000.0000] # <ARABIC LETTER KEHEH, ARABIC LETTER HEH DOACHASHMEE>
+06AF ; [.2287.0020.0002][.FFE7.0000.0000] # ARABIC LETTER GAF
+06AF 06BE ; [.2287.0020.0002][.FFE8.0000.0000] # <ARABIC LETTER GAF, ARABIC LETTER HEH DOACHASHMEE>
+0644 ; [.2287.0020.0002][.FFE9.0000.0000] # ARABIC LETTER LAM
+0644 06BE ; [.2287.0020.0002][.FFEA.0000.0000] # <ARABIC LETTER LAM, ARABIC LETTER HEH DOACHASHMEE>
+0645 ; [.2287.0020.0002][.FFEB.0000.0000] # ARABIC LETTER MEEM
+0645 06BE ; [.2287.0020.0002][.FFEC.0000.0000] # <ARABIC LETTER MEEM, ARABIC LETTER HEH DOACHASHMEE>
+0646 ; [.2287.0020.0002][.FFED.0000.0000] # ARABIC LETTER NOON
+0646 06BE ; [.2287.0020.0002][.FFEE.0000.0000] # <ARABIC LETTER NOON, ARABIC LETTER HEH DOACHASHMEE>
+06BA ; [.2287.0020.0002][.FFEF.0000.0000] # ARABIC LETTER NOON GHUNNA
+06BA 06BE ; [.2287.0020.0002][.FFF0.0000.0000] # <ARABIC LETTER NOON GHUNNA, ARABIC LETTER HEH DOACHASHMEE>
+0648 ; [.2287.0020.0002][.FFF1.0000.0000] # ARABIC LETTER WAW
+0624 ; [.2287.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
+0648 0654 ; [.2287.0021.0002][.FFF1.0000.0000] # ARABIC LETTER WAW WITH HAMZA ABOVE
+0648 06BE ; [.2287.0020.0002][.FFF2.0000.0000] # <ARABIC LETTER WAW, ARABIC LETTER HEH DOACHASHMEE>
+06C1 ; [.2287.0020.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL
+06C2 ; [.2287.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06C1 0654 ; [.2287.0021.0002][.FFF3.0000.0000] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06BE ; [.2287.0020.0002][.FFF4.0000.0000] # ARABIC LETTER HEH DOACHASHMEE
+06C3 ; [.2287.0020.0002][.FFF5.0000.0000] # ARABIC LETTER TEH MARBUTA GOAL
+0621 ; [.2287.0020.0002][.FFF6.0000.0000] # ARABIC LETTER HAMZA
+06CC ; [.2287.0020.0002][.FFF7.0000.0000] # ARABIC LETTER FARSI YEH
+0626 ; [.2287.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
+064A 0654 ; [.2287.0021.0002][.FFF7.0000.0000] # ARABIC LETTER YEH WITH HAMZA ABOVE
+06CC 06BE ; [.2287.0020.0002][.FFF8.0000.0000] # <ARABIC LETTER FARSI YEH, ARABIC LETTER HEH DOACHASHMEE>
+06D2 ; [.2287.0020.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE
+06D3 ; [.2287.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D2 0654 ; [.2287.0021.0002][.FFF9.0000.0000] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+066E ; [.2287.0020.0002][.FFFA.0000.0000] # ARABIC LETTER DOTLESS BEH
0652 ; [.0000.0074.0002] # ARABIC SUKUN
064E ; [.0000.0075.0002] # ARABIC FATHA
0650 ; [.0000.0076.0002] # ARABIC KASRA
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
index 9c99d49b8a4..351a052ea7d 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vi.pl
@@ -1,220 +1,220 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# 0306 is not a Vietnamese tone, just to avoid \x{306} eq. to something.
- entry => <<'ENTRY', # for DUCET v7.0.0
+ entry => <<'ENTRY', # for DUCET v8.0.0
0309 ; [.0000.0026.0002][.0000.00F0.0000] # COMBINING HOOK ABOVE
-1EA3 ; [.190C.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA2 ; [.190C.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-1EBB ; [.196E.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBA ; [.196E.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-1EC9 ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER I WITH HOOK ABOVE
-1EC8 ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-1ECF ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ECE ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-1EE7 ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE6 ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-1EF7 ; [.1BCD.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF6 ; [.1BCD.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EA3 ; [.1BC2.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA2 ; [.1BC2.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EBB ; [.1C25.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBA ; [.1C25.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EC9 ; [.1CAD.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER I WITH HOOK ABOVE
+1EC8 ; [.1CAD.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1ECF ; [.1D58.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HOOK ABOVE
+1ECE ; [.1D58.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1EE7 ; [.1E30.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE6 ; [.1E30.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EF7 ; [.1E86.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF6 ; [.1E86.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
0303 ; [.0000.0026.0002][.0000.00F1.0000] # COMBINING TILDE
-00E3 ; [.190C.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.190C.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH TILDE
-1EBD ; [.196E.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH TILDE
-1EBC ; [.196E.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH TILDE
-0129 ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER I WITH TILDE
-0128 ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER I WITH TILDE
-00F5 ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH TILDE
-0169 ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH TILDE
-0168 ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH TILDE
-1EF9 ; [.1BCD.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER Y WITH TILDE
-1EF8 ; [.1BCD.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER Y WITH TILDE
+00E3 ; [.1BC2.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH TILDE
+00C3 ; [.1BC2.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH TILDE
+1EBD ; [.1C25.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH TILDE
+1EBC ; [.1C25.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH TILDE
+0129 ; [.1CAD.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER I WITH TILDE
+0128 ; [.1CAD.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER I WITH TILDE
+00F5 ; [.1D58.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1D58.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH TILDE
+0169 ; [.1E30.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH TILDE
+0168 ; [.1E30.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH TILDE
+1EF9 ; [.1E86.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER Y WITH TILDE
+1EF8 ; [.1E86.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER Y WITH TILDE
0301 ; [.0000.0026.0002][.0000.00F2.0000] # COMBINING ACUTE ACCENT
-00E1 ; [.190C.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH ACUTE
-00E9 ; [.196E.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH ACUTE
-00ED ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER I WITH ACUTE
-00F3 ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH ACUTE
-00FA ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH ACUTE
-00FD ; [.1BCD.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.1BCD.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER Y WITH ACUTE
+00E1 ; [.1BC2.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH ACUTE
+00E9 ; [.1C25.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH ACUTE
+00ED ; [.1CAD.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER I WITH ACUTE
+00F3 ; [.1D58.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH ACUTE
+00FA ; [.1E30.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH ACUTE
+00FD ; [.1E86.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER Y WITH ACUTE
+00DD ; [.1E86.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER Y WITH ACUTE
0341 ; [.0000.0026.0002][.0000.00F2.0000] # COMBINING ACUTE TONE MARK
0323 ; [.0000.0026.0002][.0000.00F3.0000] # COMBINING DOT BELOW
-1EA1 ; [.190C.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH DOT BELOW
-1EA0 ; [.190C.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EB9 ; [.196E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH DOT BELOW
-1EB8 ; [.196E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1ECB ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER I WITH DOT BELOW
-1ECD ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1EE5 ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1EF5 ; [.1BCD.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF4 ; [.1BCD.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EA1 ; [.1BC2.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH DOT BELOW
+1EA0 ; [.1BC2.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH DOT BELOW
+1EB9 ; [.1C25.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH DOT BELOW
+1EB8 ; [.1C25.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH DOT BELOW
+1ECB ; [.1CAD.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER I WITH DOT BELOW
+1ECA ; [.1CAD.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECD ; [.1D58.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH DOT BELOW
+1ECC ; [.1D58.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH DOT BELOW
+1EE5 ; [.1E30.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH DOT BELOW
+1EE4 ; [.1E30.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH DOT BELOW
+1EF5 ; [.1E86.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER Y WITH DOT BELOW
+1EF4 ; [.1E86.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER Y WITH DOT BELOW
0306 ; [.0000.0026.0002][.0000.00F4.0000] # COMBINING BREVE
-0115 ; [.196E.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER E WITH BREVE
-0114 ; [.196E.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER E WITH BREVE
-012D ; [.19F6.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER I WITH BREVE
-012C ; [.19F6.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER I WITH BREVE
-014F ; [.1AA1.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER O WITH BREVE
-014E ; [.1AA1.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER O WITH BREVE
-016D ; [.1B77.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1B77.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER U WITH BREVE
-0103 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0061 0306 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH BREVE
-0102 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-0041 0306 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
-1EB1 ; [.190D.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.190D.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EAF ; [.190D.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.190D.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB5 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-1EB7 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-00E2 ; [.190E.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-0061 0302 ; [.190E.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.190E.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-0041 0302 ; [.190E.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA7 ; [.190E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.190E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA5 ; [.190E.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.190E.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EAB ; [.190E.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.190E.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.190E.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.190E.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EAD ; [.190E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.190E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-0111 ; [.1954.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0064 0335 ; [.1954.0020.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1954.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-0044 0335 ; [.1954.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
-00EA ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC1 ; [.196F.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196F.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EBF ; [.196F.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196F.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC5 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-00F4 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-006F 0302 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-004F 0302 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED3 ; [.1AA2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED1 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED7 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED9 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-01A1 ; [.1AA3.0020.0002] # LATIN SMALL LETTER O WITH HORN
-006F 031B ; [.1AA3.0020.0002] # LATIN SMALL LETTER O WITH HORN
-01A0 ; [.1AA3.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
-004F 031B ; [.1AA3.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
-1EDD ; [.1AA3.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDC ; [.1AA3.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EDB ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDA ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EE1 ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EDF ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EDE ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EE3 ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-01B0 ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH HORN
-0075 031B ; [.1B78.0020.0002] # LATIN SMALL LETTER U WITH HORN
-01AF ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
-0055 031B ; [.1B78.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
-1EEB ; [.1B78.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEA ; [.1B78.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EE9 ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EE8 ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EEF ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EEE ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EED ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEC ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EF1 ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EA1 0306 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING BREVE>
-1EA0 0306 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING BREVE>
-1EA1 0302 ; [.190E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EA0 0302 ; [.190E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EB9 0302 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1EB8 0302 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1ECD 0302 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-1ECC 0302 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-00F2 031B ; [.1AA3.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O WITH GRAVE, COMBINING HORN>
-1ECF 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O WITH HOOK ABOVE, COMBINING HORN>
-00F5 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O WITH TILDE, COMBINING HORN>
-00F3 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O WITH ACUTE, COMBINING HORN>
-1ECD 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING HORN>
-00D2 031B ; [.1AA3.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O WITH GRAVE, COMBINING HORN>
-1ECE 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O WITH HOOK ABOVE, COMBINING HORN>
-00D5 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O WITH TILDE, COMBINING HORN>
-00D3 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O WITH ACUTE, COMBINING HORN>
-1ECC 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING HORN>
-00F9 031B ; [.1B78.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U WITH GRAVE, COMBINING HORN>
-1EE7 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U WITH HOOK ABOVE, COMBINING HORN>
-0169 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U WITH TILDE, COMBINING HORN>
-00FA 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U WITH ACUTE, COMBINING HORN>
-1EE5 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U WITH DOT BELOW, COMBINING HORN>
-00D9 031B ; [.1B78.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U WITH GRAVE, COMBINING HORN>
-1EE6 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U WITH HOOK ABOVE, COMBINING HORN>
-0168 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U WITH TILDE, COMBINING HORN>
-00DA 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U WITH ACUTE, COMBINING HORN>
-1EE4 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U WITH DOT BELOW, COMBINING HORN>
-0061 0323 0306 ; [.190D.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
-0041 0323 0306 ; [.190D.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
-0061 0323 0302 ; [.190E.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0041 0323 0302 ; [.190E.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0065 0323 0302 ; [.196F.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-0045 0323 0302 ; [.196F.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-006F 0323 0302 ; [.1AA2.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-004F 0323 0302 ; [.1AA2.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
-006F 0300 031B ; [.1AA3.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
-006F 0340 031B ; [.1AA3.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
-006F 0309 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
-006F 0303 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O, COMBINING TILDE, COMBINING HORN>
-006F 0301 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
-006F 0341 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
-006F 0323 031B ; [.1AA3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
-004F 0300 031B ; [.1AA3.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
-004F 0340 031B ; [.1AA3.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
-004F 0309 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
-004F 0303 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O, COMBINING TILDE, COMBINING HORN>
-004F 0301 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
-004F 0341 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
-004F 0323 031B ; [.1AA3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
-0075 0300 031B ; [.1B78.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
-0075 0340 031B ; [.1B78.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
-0075 0309 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
-0075 0303 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U, COMBINING TILDE, COMBINING HORN>
-0075 0301 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
-0075 0341 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
-0075 0323 031B ; [.1B78.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
-0055 0300 031B ; [.1B78.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
-0055 0340 031B ; [.1B78.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
-0055 0309 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
-0055 0303 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U, COMBINING TILDE, COMBINING HORN>
-0055 0301 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
-0055 0341 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
-0055 0323 031B ; [.1B78.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
+0115 ; [.1C25.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER E WITH BREVE
+0114 ; [.1C25.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER E WITH BREVE
+012D ; [.1CAD.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER I WITH BREVE
+012C ; [.1CAD.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER I WITH BREVE
+014F ; [.1D58.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER O WITH BREVE
+014E ; [.1D58.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER O WITH BREVE
+016D ; [.1E30.0020.0002][.0000.0026.0002][.0000.00F4.0000] # LATIN SMALL LETTER U WITH BREVE
+016C ; [.1E30.0020.0008][.0000.0026.0002][.0000.00F4.0000] # LATIN CAPITAL LETTER U WITH BREVE
+0103 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH BREVE
+0061 0306 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH BREVE
+0102 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
+0041 0306 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH BREVE
+1EB1 ; [.1BC3.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB0 ; [.1BC3.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EAF ; [.1BC3.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EAE ; [.1BC3.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EB5 ; [.1BC3.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB4 ; [.1BC3.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB3 ; [.1BC3.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB2 ; [.1BC3.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB7 ; [.1BC3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB6 ; [.1BC3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+00E2 ; [.1BC4.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0061 0302 ; [.1BC4.0020.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2 ; [.1BC4.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0041 0302 ; [.1BC4.0020.0008] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+1EA7 ; [.1BC4.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA6 ; [.1BC4.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA5 ; [.1BC4.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA4 ; [.1BC4.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EAB ; [.1BC4.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAA ; [.1BC4.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EA9 ; [.1BC4.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA8 ; [.1BC4.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAD ; [.1BC4.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAC ; [.1BC4.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+0111 ; [.1C0B.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0064 0335 ; [.1C0B.0020.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0B.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+0044 0335 ; [.1C0B.0020.0008] # LATIN CAPITAL LETTER D WITH STROKE
+00EA ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC1 ; [.1C26.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C26.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EBF ; [.1C26.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C26.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC5 ; [.1C26.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C26.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C26.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C26.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C26.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C26.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+00F4 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+006F 0302 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+004F 0302 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED3 ; [.1D59.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1D59.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED1 ; [.1D59.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1D59.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED7 ; [.1D59.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1D59.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1D59.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1D59.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED9 ; [.1D59.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1D59.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+01A1 ; [.1D5A.0020.0002] # LATIN SMALL LETTER O WITH HORN
+006F 031B ; [.1D5A.0020.0002] # LATIN SMALL LETTER O WITH HORN
+01A0 ; [.1D5A.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
+004F 031B ; [.1D5A.0020.0008] # LATIN CAPITAL LETTER O WITH HORN
+1EDD ; [.1D5A.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDC ; [.1D5A.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDB ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDA ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EE1 ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE0 ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EDF ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EDE ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EE3 ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE2 ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+01B0 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH HORN
+0075 031B ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH HORN
+01AF ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
+0055 031B ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH HORN
+1EEB ; [.1E31.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEA ; [.1E31.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EE9 ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F2.0000] # LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EE8 ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F2.0000] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EEF ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F1.0000] # LATIN SMALL LETTER U WITH HORN AND TILDE
+1EEE ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F1.0000] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EED ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F0.0000] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEC ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F0.0000] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EF1 ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F3.0000] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF0 ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F3.0000] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EA1 0306 ; [.1BC3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING BREVE>
+1EA0 0306 ; [.1BC3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING BREVE>
+1EA1 0302 ; [.1BC4.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1EA0 0302 ; [.1BC4.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1EB9 0302 ; [.1C26.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1EB8 0302 ; [.1C26.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1ECD 0302 ; [.1D59.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+1ECC 0302 ; [.1D59.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+00F2 031B ; [.1D5A.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O WITH GRAVE, COMBINING HORN>
+1ECF 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O WITH HOOK ABOVE, COMBINING HORN>
+00F5 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O WITH TILDE, COMBINING HORN>
+00F3 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O WITH ACUTE, COMBINING HORN>
+1ECD 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O WITH DOT BELOW, COMBINING HORN>
+00D2 031B ; [.1D5A.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O WITH GRAVE, COMBINING HORN>
+1ECE 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O WITH HOOK ABOVE, COMBINING HORN>
+00D5 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O WITH TILDE, COMBINING HORN>
+00D3 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O WITH ACUTE, COMBINING HORN>
+1ECC 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O WITH DOT BELOW, COMBINING HORN>
+00F9 031B ; [.1E31.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U WITH GRAVE, COMBINING HORN>
+1EE7 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U WITH HOOK ABOVE, COMBINING HORN>
+0169 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U WITH TILDE, COMBINING HORN>
+00FA 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U WITH ACUTE, COMBINING HORN>
+1EE5 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U WITH DOT BELOW, COMBINING HORN>
+00D9 031B ; [.1E31.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U WITH GRAVE, COMBINING HORN>
+1EE6 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U WITH HOOK ABOVE, COMBINING HORN>
+0168 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U WITH TILDE, COMBINING HORN>
+00DA 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U WITH ACUTE, COMBINING HORN>
+1EE4 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U WITH DOT BELOW, COMBINING HORN>
+0061 0323 0306 ; [.1BC3.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
+0041 0323 0306 ; [.1BC3.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING BREVE>
+0061 0323 0302 ; [.1BC4.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+0041 0323 0302 ; [.1BC4.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER A, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+0065 0323 0302 ; [.1C26.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+0045 0323 0302 ; [.1C26.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER E, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+006F 0323 0302 ; [.1D59.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+004F 0323 0302 ; [.1D59.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING CIRCUMFLEX ACCENT>
+006F 0300 031B ; [.1D5A.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
+006F 0340 031B ; [.1D5A.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
+006F 0309 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
+006F 0303 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER O, COMBINING TILDE, COMBINING HORN>
+006F 0301 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
+006F 0341 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
+006F 0323 031B ; [.1D5A.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
+004F 0300 031B ; [.1D5A.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE ACCENT, COMBINING HORN>
+004F 0340 031B ; [.1D5A.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER O, COMBINING GRAVE TONE MARK, COMBINING HORN>
+004F 0309 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER O, COMBINING HOOK ABOVE, COMBINING HORN>
+004F 0303 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER O, COMBINING TILDE, COMBINING HORN>
+004F 0301 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE ACCENT, COMBINING HORN>
+004F 0341 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER O, COMBINING ACUTE TONE MARK, COMBINING HORN>
+004F 0323 031B ; [.1D5A.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER O, COMBINING DOT BELOW, COMBINING HORN>
+0075 0300 031B ; [.1E31.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
+0075 0340 031B ; [.1E31.0020.0002][.0000.0025.0002] # <LATIN SMALL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
+0075 0309 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F0.0000] # <LATIN SMALL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
+0075 0303 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F1.0000] # <LATIN SMALL LETTER U, COMBINING TILDE, COMBINING HORN>
+0075 0301 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
+0075 0341 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F2.0000] # <LATIN SMALL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
+0075 0323 031B ; [.1E31.0020.0002][.0000.0026.0002][.0000.00F3.0000] # <LATIN SMALL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
+0055 0300 031B ; [.1E31.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE ACCENT, COMBINING HORN>
+0055 0340 031B ; [.1E31.0020.0008][.0000.0025.0002] # <LATIN CAPITAL LETTER U, COMBINING GRAVE TONE MARK, COMBINING HORN>
+0055 0309 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F0.0000] # <LATIN CAPITAL LETTER U, COMBINING HOOK ABOVE, COMBINING HORN>
+0055 0303 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F1.0000] # <LATIN CAPITAL LETTER U, COMBINING TILDE, COMBINING HORN>
+0055 0301 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE ACCENT, COMBINING HORN>
+0055 0341 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F2.0000] # <LATIN CAPITAL LETTER U, COMBINING ACUTE TONE MARK, COMBINING HORN>
+0055 0323 031B ; [.1E31.0020.0008][.0000.0026.0002][.0000.00F3.0000] # <LATIN CAPITAL LETTER U, COMBINING DOT BELOW, COMBINING HORN>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl
new file mode 100755
index 00000000000..4e339627e52
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/vo.pl
@@ -0,0 +1,29 @@
++{
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E4 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+0061 0308 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+00C4 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+0041 0308 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH DIAERESIS
+01DF ; [.1BC3.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1BC3.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00F6 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+006F 0308 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+00D6 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+004F 0308 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DIAERESIS
+022B ; [.1D59.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1D59.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+00FC ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E31.0020.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E31.0020.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+01DC ; [.1E31.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E31.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01D8 ; [.1E31.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E31.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D6 ; [.1E31.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E31.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01DA ; [.1E31.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E31.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+ENTRY
+};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
index 42fcc2a23ad..fc3f5687509 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wae.pl
@@ -1,24 +1,24 @@
+{
- locale_version => 1.14,
- 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>
-00E4 0061 0308 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
-0061 0308 00E4 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
-0061 0308 0061 0308 ; [.190C.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
-0065 0065 ; [.196E.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER E, LATIN SMALL LETTER E>
-0069 0069 ; [.19F6.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER I, LATIN SMALL LETTER I>
-006F 006F ; [.1AA1.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER O, LATIN SMALL LETTER O>
-00F6 00F6 ; [.1AA1.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
-00F6 006F 0308 ; [.1AA1.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
-006F 0308 00F6 ; [.1AA1.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
-006F 0308 006F 0308 ; [.1AA1.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
-0063 0068 ; [.193E.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0073 0063 0068 ; [.1B33.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER C, LATIN SMALL LETTER H>
-0075 0075 ; [.1B77.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER U, LATIN SMALL LETTER U>
-00FC 00FC ; [.1B77.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
-00FC 0075 0308 ; [.1B77.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
-0075 0308 00FC ; [.1B77.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
-0075 0308 0075 0308 ; [.1B77.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0061 0061 ; [.1BC2.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER A, LATIN SMALL LETTER A>
+00E4 00E4 ; [.1BC2.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
+00E4 0061 0308 ; [.1BC2.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A WITH DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
+0061 0308 00E4 ; [.1BC2.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A WITH DIAERESIS>
+0061 0308 0061 0308 ; [.1BC2.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER A, COMBINING DIAERESIS, LATIN SMALL LETTER A, COMBINING DIAERESIS>
+0065 0065 ; [.1C25.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER E, LATIN SMALL LETTER E>
+0069 0069 ; [.1CAD.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER I, LATIN SMALL LETTER I>
+006F 006F ; [.1D58.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER O, LATIN SMALL LETTER O>
+00F6 00F6 ; [.1D58.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
+00F6 006F 0308 ; [.1D58.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O WITH DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
+006F 0308 00F6 ; [.1D58.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O WITH DIAERESIS>
+006F 0308 006F 0308 ; [.1D58.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER O, COMBINING DIAERESIS, LATIN SMALL LETTER O, COMBINING DIAERESIS>
+0063 0068 ; [.1BF5.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0073 0063 0068 ; [.1DEC.0020.0002][.0000.0028.0002] # <LATIN SMALL LETTER S, LATIN SMALL LETTER C, LATIN SMALL LETTER H>
+0075 0075 ; [.1E30.0020.0002][.0000.0024.0002] # <LATIN SMALL LETTER U, LATIN SMALL LETTER U>
+00FC 00FC ; [.1E30.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
+00FC 0075 0308 ; [.1E30.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
+0075 0308 00FC ; [.1E30.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U WITH DIAERESIS>
+0075 0308 0075 0308 ; [.1E30.0020.0002][.0000.002D.0002] # <LATIN SMALL LETTER U, COMBINING DIAERESIS, LATIN SMALL LETTER U, COMBINING DIAERESIS>
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
index dcc94fed6ee..148936ec3c4 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/wo.pl
@@ -1,32 +1,32 @@
+{
- locale_version => 1.14,
+ locale_version => 1.19,
# eng doesn't require tailoring
- entry => <<'ENTRY', # for DUCET v7.0.0
-00E0 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190D.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190D.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-00E9 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196F.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-00EB ; [.1970.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-0065 0308 ; [.1970.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.1970.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-0045 0308 ; [.1970.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
-00F1 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-006E 0303 ; [.1A7E.0020.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-004E 0303 ; [.1A7E.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
-00F3 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+ entry => <<'ENTRY', # for DUCET v8.0.0
+00E0 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1BC3.0020.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1BC3.0020.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+00E9 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+00EB ; [.1C27.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+0065 0308 ; [.1C27.0020.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+00CB ; [.1C27.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
+0045 0308 ; [.1C27.0020.0008] # LATIN CAPITAL LETTER E WITH DIAERESIS
+00F1 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+006E 0303 ; [.1D35.0020.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+004E 0303 ; [.1D35.0020.0008] # LATIN CAPITAL LETTER N WITH TILDE
+00F3 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH ACUTE
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
index 977dc8f2f28..ac070168471 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/yo.pl
@@ -1,26 +1,26 @@
+{
- locale_version => 1.14,
- 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
-1EB8 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
-0045 0323 ; [.196F.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EC7 ; [.196F.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196F.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-0067 0062 ; [.19B9.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
-0047 0062 ; [.19B9.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
-0047 0042 ; [.19B9.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
-1ECD ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-006F 0323 ; [.1AA2.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-004F 0323 ; [.1AA2.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.1AA2.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA2.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1EE3 ; [.1AA2.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.1AA2.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1E63 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-0073 0323 ; [.1B34.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-1E62 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
-0053 0323 ; [.1B34.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+1EB9 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
+0065 0323 ; [.1C26.0020.0002] # LATIN SMALL LETTER E WITH DOT BELOW
+1EB8 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
+0045 0323 ; [.1C26.0020.0008] # LATIN CAPITAL LETTER E WITH DOT BELOW
+1EC7 ; [.1C26.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C26.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+0067 0062 ; [.1C70.0020.0002] # <LATIN SMALL LETTER G, LATIN SMALL LETTER B>
+0047 0062 ; [.1C70.0020.0007] # <LATIN CAPITAL LETTER G, LATIN SMALL LETTER B>
+0047 0042 ; [.1C70.0020.0008] # <LATIN CAPITAL LETTER G, LATIN CAPITAL LETTER B>
+1ECD ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+006F 0323 ; [.1D59.0020.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+1ECC ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
+004F 0323 ; [.1D59.0020.0008] # LATIN CAPITAL LETTER O WITH DOT BELOW
+1ED9 ; [.1D59.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1D59.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EE3 ; [.1D59.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE2 ; [.1D59.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1E63 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
+0073 0323 ; [.1DED.0020.0002] # LATIN SMALL LETTER S WITH DOT BELOW
+1E62 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
+0053 0323 ; [.1DED.0020.0008] # LATIN CAPITAL LETTER S WITH DOT BELOW
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
index 75cd780fbc6..91900cd17b8 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh.pl
@@ -1,211 +1,211 @@
+{
- locale_version => 1.14,
- 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
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ locale_version => 1.19,
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0101 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1C25.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C25.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C25.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C25.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C25.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C25.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1D25.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1D25.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1D25.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1D25.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1D34.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1D34.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1E30.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1E30.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1E30.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1E30.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
ENTRY
};
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
index 8136f444e31..d129ae900b4 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_big5.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Big5;
+{
- locale_version => 1.14,
+ locale_version => 1.19,
overrideCJK => \&Unicode::Collate::CJK::Big5::weightBig5,
- 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
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0101 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1C25.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C25.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C25.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C25.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C25.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C25.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1D25.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1D25.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1D25.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1D25.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1D34.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1D34.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1E30.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1E30.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1E30.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1E30.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
F967 ; [.804A.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F967
FA70 ; [.82DE.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-FA70
F905 ; [.81CB.0020.0002] # CJK COMPATIBILITY IDEOGRAPH-F905
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
index 4d092a1dcf5..d714d9a8ad9 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_gb.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::GB2312;
+{
- locale_version => 1.14,
+ locale_version => 1.19,
overrideCJK => \&Unicode::Collate::CJK::GB2312::weightGB2312,
- 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
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0101 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1C25.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C25.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C25.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C25.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C25.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C25.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1D25.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1D25.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1D25.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1D25.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1D34.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1D34.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1E30.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1E30.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1E30.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1E30.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
E2D8 ; [.8EAB.0020.0002] # <unknown>
E2D9 ; [.8EAC.0020.0002] # <unknown>
E2DA ; [.8EAD.0020.0002] # <unknown>
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
index 3562aa112d2..1017527dfd1 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_pin.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Pinyin;
+{
- locale_version => 1.14,
+ locale_version => 1.19,
overrideCJK => \&Unicode::Collate::CJK::Pinyin::weightPinyin,
- 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
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0101 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1C25.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C25.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C25.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C25.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C25.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C25.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1D25.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1D25.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1D25.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1D25.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1D34.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1D34.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1E30.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1E30.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1E30.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1E30.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
FDD0 0041 ; [.8000.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER A>
FDD0 0042 ; [.80C5.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER B>
FDD0 0043 ; [.8441.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER C>
@@ -233,119 +233,119 @@ FDD0 0057 ; [.BBD3.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER W>
FDD0 0058 ; [.BE4A.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER X>
FDD0 0059 ; [.C382.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER Y>
FDD0 005A ; [.CB22.0020.0002] # <noncharacter-FDD0, LATIN CAPITAL LETTER Z>
-3220 ; [*030A.0020.0004][.C5CF.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*030A.0020.0004][.AE03.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*030A.0020.0004][.B35F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*030A.0020.0004][.9C92.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*030A.0020.0004][.8E0E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*030A.0020.0004][.BDF1.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*030A.0020.0004][.89B6.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*030A.0020.0004][.AE82.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*030A.0020.0004][.C1F9.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*030A.0020.0004][.80C6.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*030A.0020.0004][.A49F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*030A.0020.0004][.A132.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*030A.0020.0004][.B57B.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*030A.0020.0004][.C10A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*030A.0020.0004][.A8EB.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*030A.0020.0004][.9589.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*030A.0020.0004][.B715.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*030A.0020.0004][.BB2D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*030A.0020.0004][.C304.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*030A.0020.0004][.B272.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*030A.0020.0004][.CA96.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*030A.0020.0004][.C8D2.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*030A.0020.0004][.A98A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*030A.0020.0004][.CF58.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*030A.0020.0004][.B6BA.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*030A.0020.0004][.97BC.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*030A.0020.0004][.B980.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*030A.0020.0004][.999B.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*030A.0020.0004][.B4AC.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*030A.0020.0004][.CFAD.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*030A.0020.0004][.98D6.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*030A.0020.0004][.D0D4.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*030A.0020.0004][.CE51.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*030A.0020.0004][.844F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*030A.0020.0004][.D0A3.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*030A.0020.0004][.9B96.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.1902.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.1903.0020.0004][.1902.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.1903.0020.0004][.1902.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.1903.0020.0004][.1902.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.1903.0020.0004][.1903.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.1903.0020.0004][.1903.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.1903.0020.0004][.1903.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.1903.0020.0004][.1904.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.1903.0020.0004][.1904.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.1903.0020.0004][.1904.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.1903.0020.0004][.1905.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.1903.0020.0004][.1905.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.1903.0020.0004][.1906.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.1903.0020.0004][.1906.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.1903.0020.0004][.1907.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.1903.0020.0004][.1907.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.1903.0020.0004][.1908.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.1903.0020.0004][.1908.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.1903.0020.0004][.1909.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.1903.0020.0004][.1909.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.1903.0020.0004][.190A.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.1903.0020.0004][.190A.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.1903.0020.0004][.190B.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.1903.0020.0004][.190B.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.1903.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.1903.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.1903.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.1904.0020.0004][.1902.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.1904.0020.0004][.1902.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.1904.0020.0004][.1903.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.1904.0020.0004][.1903.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.1904.0020.0004][.1904.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.1904.0020.0004][.1904.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.1904.0020.0004][.1905.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.1904.0020.0004][.1905.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.1904.0020.0004][.1906.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.1904.0020.0004][.1906.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.1904.0020.0004][.1907.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.1904.0020.0004][.1908.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.1904.0020.0004][.1909.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.1904.0020.0004][.190A.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.1904.0020.0004][.190B.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.1904.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.1904.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.1904.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.1905.0020.0004][.1902.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.1905.0020.0004][.1903.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.1905.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.1905.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.1905.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.1906.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.1906.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.1906.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.1907.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.1907.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.1907.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.1908.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.1908.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.1908.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.1909.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.1909.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.1909.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.190A.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.190A.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.190A.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.190B.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.190B.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.190B.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*036C.0020.0004][.B35F.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*036C.0020.0004][.8E0E.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*036C.0020.0004][.B548.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*036C.0020.0004][.8049.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*036C.0020.0004][.89A6.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*036C.0020.0004][.811B.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*036C.0020.0004][.81FC.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*036C.0020.0004][.8B60.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*036C.0020.0004][.8A91.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+3220 ; [*0310.0020.0004][.C5CF.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3226 ; [*0310.0020.0004][.AE03.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3222 ; [*0310.0020.0004][.B35F.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
+3228 ; [*0310.0020.0004][.9C92.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3221 ; [*0310.0020.0004][.8E0E.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
+3224 ; [*0310.0020.0004][.BDF1.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3239 ; [*0310.0020.0004][.89B6.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+323D ; [*0310.0020.0004][.AE82.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+3241 ; [*0310.0020.0004][.C1F9.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3227 ; [*0310.0020.0004][.80C6.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3225 ; [*0310.0020.0004][.A49F.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3238 ; [*0310.0020.0004][.A132.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3229 ; [*0310.0020.0004][.B57B.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+323F ; [*0310.0020.0004][.C10A.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+3234 ; [*0310.0020.0004][.A8EB.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+323A ; [*0310.0020.0004][.9589.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+3223 ; [*0310.0020.0004][.B715.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+322F ; [*0310.0020.0004][.BB2D.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+323B ; [*0310.0020.0004][.C304.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+3230 ; [*0310.0020.0004][.B272.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+322A ; [*0310.0020.0004][.CA96.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+3232 ; [*0310.0020.0004][.C8D2.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+322D ; [*0310.0020.0004][.A98A.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+3231 ; [*0310.0020.0004][.CF58.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+322C ; [*0310.0020.0004][.B6BA.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322B ; [*0310.0020.0004][.97BC.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+3235 ; [*0310.0020.0004][.B980.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+323C ; [*0310.0020.0004][.999B.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+3233 ; [*0310.0020.0004][.B4AC.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3237 ; [*0310.0020.0004][.CFAD.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3240 ; [*0310.0020.0004][.98D6.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3242 ; [*0310.0020.0004][.D0D4.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3243 ; [*0310.0020.0004][.CE51.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3236 ; [*0310.0020.0004][.844F.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+323E ; [*0310.0020.0004][.D0A3.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+322E ; [*0310.0020.0004][.9B96.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+3358 ; [.1BB8.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+33E9 ; [.1BB9.0020.0004][.1BB8.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+32C9 ; [.1BB9.0020.0004][.1BB8.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+3362 ; [.1BB9.0020.0004][.1BB8.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+33EA ; [.1BB9.0020.0004][.1BB9.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+32CA ; [.1BB9.0020.0004][.1BB9.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+3363 ; [.1BB9.0020.0004][.1BB9.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+33EB ; [.1BB9.0020.0004][.1BBA.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+32CB ; [.1BB9.0020.0004][.1BBA.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+3364 ; [.1BB9.0020.0004][.1BBA.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+33EC ; [.1BB9.0020.0004][.1BBB.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+3365 ; [.1BB9.0020.0004][.1BBB.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+33ED ; [.1BB9.0020.0004][.1BBC.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+3366 ; [.1BB9.0020.0004][.1BBC.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+33EE ; [.1BB9.0020.0004][.1BBD.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+3367 ; [.1BB9.0020.0004][.1BBD.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+33EF ; [.1BB9.0020.0004][.1BBE.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+3368 ; [.1BB9.0020.0004][.1BBE.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+33F0 ; [.1BB9.0020.0004][.1BBF.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+3369 ; [.1BB9.0020.0004][.1BBF.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+33F1 ; [.1BB9.0020.0004][.1BC0.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+336A ; [.1BB9.0020.0004][.1BC0.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+33F2 ; [.1BB9.0020.0004][.1BC1.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+336B ; [.1BB9.0020.0004][.1BC1.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+33E0 ; [.1BB9.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+32C0 ; [.1BB9.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+3359 ; [.1BB9.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+33F3 ; [.1BBA.0020.0004][.1BB8.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+336C ; [.1BBA.0020.0004][.1BB8.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+33F4 ; [.1BBA.0020.0004][.1BB9.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+336D ; [.1BBA.0020.0004][.1BB9.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+33F5 ; [.1BBA.0020.0004][.1BBA.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+336E ; [.1BBA.0020.0004][.1BBA.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+33F6 ; [.1BBA.0020.0004][.1BBB.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+336F ; [.1BBA.0020.0004][.1BBB.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+33F7 ; [.1BBA.0020.0004][.1BBC.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+3370 ; [.1BBA.0020.0004][.1BBC.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+33F8 ; [.1BBA.0020.0004][.1BBD.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; [.1BBA.0020.0004][.1BBE.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; [.1BBA.0020.0004][.1BBF.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; [.1BBA.0020.0004][.1BC0.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; [.1BBA.0020.0004][.1BC1.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33E1 ; [.1BBA.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+32C1 ; [.1BBA.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+335A ; [.1BBA.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+33FD ; [.1BBB.0020.0004][.1BB8.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; [.1BBB.0020.0004][.1BB9.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33E2 ; [.1BBB.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+32C2 ; [.1BBB.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+335B ; [.1BBB.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+33E3 ; [.1BBC.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+32C3 ; [.1BBC.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+335C ; [.1BBC.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+33E4 ; [.1BBD.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+32C4 ; [.1BBD.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+335D ; [.1BBD.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+33E5 ; [.1BBE.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+32C5 ; [.1BBE.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+335E ; [.1BBE.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+33E6 ; [.1BBF.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+32C6 ; [.1BBF.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+335F ; [.1BBF.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+33E7 ; [.1BC0.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+32C7 ; [.1BC0.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+3360 ; [.1BC0.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+33E8 ; [.1BC1.0020.0004][.B272.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+32C8 ; [.1BC1.0020.0004][.CA96.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+3361 ; [.1BC1.0020.0004][.8B60.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+1F241 ; [*0372.0020.0004][.B35F.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; [*0372.0020.0004][.8E0E.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F247 ; [*0372.0020.0004][.B548.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F243 ; [*0372.0020.0004][.8049.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F245 ; [*0372.0020.0004][.89A6.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F248 ; [*0372.0020.0004][.811B.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F240 ; [*0372.0020.0004][.81FC.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F244 ; [*0372.0020.0004][.8B60.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F246 ; [*0372.0020.0004][.8A91.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
2F00 ; [.C5CF.0020.0004] # KANGXI RADICAL ONE
3192 ; [.C5CF.0020.0014] # IDEOGRAPHIC ANNOTATION ONE MARK
3280 ; [.C5CF.0020.0006] # CIRCLED IDEOGRAPH ONE
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
index 68d6edf2356..d222e226d1d 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_strk.pl
@@ -1,214 +1,214 @@
use Unicode::Collate::CJK::Stroke;
+{
- locale_version => 1.14,
+ locale_version => 1.19,
overrideCJK => \&Unicode::Collate::CJK::Stroke::weightStroke,
- 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
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+ entry => <<'ENTRY', # for DUCET v8.0.0
+0101 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1C25.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C25.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C25.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C25.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C25.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C25.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1D25.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1D25.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1D25.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1D25.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1D34.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1D34.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1E30.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1E30.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1E30.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1E30.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
FDD0 2801 ; [.8000.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-1>
2E84 ; [.8007.0020.0002] # CJK RADICAL SECOND THREE
3006 ; [.8012.0020.0002] # IDEOGRAPHIC CLOSING MARK
@@ -299,119 +299,119 @@ FDD0 2823 ; [.DC7C.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-126>
FDD0 2824 ; [.DC7E.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-36>
FDD0 2827 ; [.DC80.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-1236>
FDD0 2830 ; [.DC82.0020.0002] # <noncharacter-FDD0, BRAILLE PATTERN DOTS-56>
-3220 ; [*030A.0020.0004][.8001.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*030A.0020.0004][.801A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*030A.0020.0004][.8054.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*030A.0020.0004][.8027.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*030A.0020.0004][.802A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*030A.0020.0004][.80D7.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*030A.0020.0004][.81C2.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*030A.0020.0004][.831C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*030A.0020.0004][.832C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*030A.0020.0004][.8030.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*030A.0020.0004][.80F5.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*030A.0020.0004][.85A8.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*030A.0020.0004][.8041.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*030A.0020.0004][.899D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*030A.0020.0004][.839D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*030A.0020.0004][.89D5.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*030A.0020.0004][.822D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*030A.0020.0004][.8081.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*030A.0020.0004][.8A8D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*030A.0020.0004][.815C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*030A.0020.0004][.815F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*030A.0020.0004][.845A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*030A.0020.0004][.8160.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*030A.0020.0004][.979F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*030A.0020.0004][.816D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*030A.0020.0004][.816E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*030A.0020.0004][.9895.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*030A.0020.0004][.B79A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*030A.0020.0004][.8D2E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*030A.0020.0004][.9970.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*030A.0020.0004][.A100.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*030A.0020.0004][.84D8.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*030A.0020.0004][.84D9.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*030A.0020.0004][.9B3B.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*030A.0020.0004][.B2A5.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*030A.0020.0004][.8E33.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.1902.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.1903.0020.0004][.1902.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.1903.0020.0004][.1902.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.1903.0020.0004][.1902.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.1903.0020.0004][.1903.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.1903.0020.0004][.1903.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.1903.0020.0004][.1903.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.1903.0020.0004][.1904.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.1903.0020.0004][.1904.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.1903.0020.0004][.1904.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.1903.0020.0004][.1905.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.1903.0020.0004][.1905.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.1903.0020.0004][.1906.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.1903.0020.0004][.1906.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.1903.0020.0004][.1907.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.1903.0020.0004][.1907.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.1903.0020.0004][.1908.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.1903.0020.0004][.1908.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.1903.0020.0004][.1909.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.1903.0020.0004][.1909.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.1903.0020.0004][.190A.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.1903.0020.0004][.190A.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.1903.0020.0004][.190B.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.1903.0020.0004][.190B.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.1903.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.1903.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.1903.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.1904.0020.0004][.1902.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.1904.0020.0004][.1902.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.1904.0020.0004][.1903.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.1904.0020.0004][.1903.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.1904.0020.0004][.1904.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.1904.0020.0004][.1904.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.1904.0020.0004][.1905.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.1904.0020.0004][.1905.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.1904.0020.0004][.1906.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.1904.0020.0004][.1906.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.1904.0020.0004][.1907.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.1904.0020.0004][.1908.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.1904.0020.0004][.1909.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.1904.0020.0004][.190A.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.1904.0020.0004][.190B.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.1904.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.1904.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.1904.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.1905.0020.0004][.1902.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.1905.0020.0004][.1903.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.1905.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.1905.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.1905.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.1906.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.1906.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.1906.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.1907.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.1907.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.1907.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.1908.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.1908.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.1908.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.1909.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.1909.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.1909.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.190A.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.190A.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.190A.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.190B.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.190B.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.190B.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*036C.0020.0004][.8054.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*036C.0020.0004][.802A.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*036C.0020.0004][.A465.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*036C.0020.0004][.83F0.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*036C.0020.0004][.8277.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*036C.0020.0004][.9EDA.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*036C.0020.0004][.8283.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*036C.0020.0004][.9216.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*036C.0020.0004][.A0BD.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+3220 ; [*0310.0020.0004][.8001.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3226 ; [*0310.0020.0004][.801A.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3222 ; [*0310.0020.0004][.8054.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
+3228 ; [*0310.0020.0004][.8027.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3221 ; [*0310.0020.0004][.802A.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
+3224 ; [*0310.0020.0004][.80D7.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3239 ; [*0310.0020.0004][.81C2.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+323D ; [*0310.0020.0004][.831C.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+3241 ; [*0310.0020.0004][.832C.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3227 ; [*0310.0020.0004][.8030.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3225 ; [*0310.0020.0004][.80F5.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3238 ; [*0310.0020.0004][.85A8.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3229 ; [*0310.0020.0004][.8041.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+323F ; [*0310.0020.0004][.899D.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+3234 ; [*0310.0020.0004][.839D.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+323A ; [*0310.0020.0004][.89D5.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+3223 ; [*0310.0020.0004][.822D.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+322F ; [*0310.0020.0004][.8081.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+323B ; [*0310.0020.0004][.8A8D.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+3230 ; [*0310.0020.0004][.815C.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+322A ; [*0310.0020.0004][.815F.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+3232 ; [*0310.0020.0004][.845A.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+322D ; [*0310.0020.0004][.8160.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+3231 ; [*0310.0020.0004][.979F.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+322C ; [*0310.0020.0004][.816D.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322B ; [*0310.0020.0004][.816E.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+3235 ; [*0310.0020.0004][.9895.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+323C ; [*0310.0020.0004][.B79A.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+3233 ; [*0310.0020.0004][.8D2E.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3237 ; [*0310.0020.0004][.9970.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3240 ; [*0310.0020.0004][.A100.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3242 ; [*0310.0020.0004][.84D8.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3243 ; [*0310.0020.0004][.84D9.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3236 ; [*0310.0020.0004][.9B3B.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+323E ; [*0310.0020.0004][.B2A5.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+322E ; [*0310.0020.0004][.8E33.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+3358 ; [.1BB8.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+33E9 ; [.1BB9.0020.0004][.1BB8.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+32C9 ; [.1BB9.0020.0004][.1BB8.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+3362 ; [.1BB9.0020.0004][.1BB8.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+33EA ; [.1BB9.0020.0004][.1BB9.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+32CA ; [.1BB9.0020.0004][.1BB9.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+3363 ; [.1BB9.0020.0004][.1BB9.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+33EB ; [.1BB9.0020.0004][.1BBA.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+32CB ; [.1BB9.0020.0004][.1BBA.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+3364 ; [.1BB9.0020.0004][.1BBA.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+33EC ; [.1BB9.0020.0004][.1BBB.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+3365 ; [.1BB9.0020.0004][.1BBB.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+33ED ; [.1BB9.0020.0004][.1BBC.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+3366 ; [.1BB9.0020.0004][.1BBC.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+33EE ; [.1BB9.0020.0004][.1BBD.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+3367 ; [.1BB9.0020.0004][.1BBD.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+33EF ; [.1BB9.0020.0004][.1BBE.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+3368 ; [.1BB9.0020.0004][.1BBE.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+33F0 ; [.1BB9.0020.0004][.1BBF.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+3369 ; [.1BB9.0020.0004][.1BBF.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+33F1 ; [.1BB9.0020.0004][.1BC0.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+336A ; [.1BB9.0020.0004][.1BC0.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+33F2 ; [.1BB9.0020.0004][.1BC1.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+336B ; [.1BB9.0020.0004][.1BC1.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+33E0 ; [.1BB9.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+32C0 ; [.1BB9.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+3359 ; [.1BB9.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+33F3 ; [.1BBA.0020.0004][.1BB8.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+336C ; [.1BBA.0020.0004][.1BB8.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+33F4 ; [.1BBA.0020.0004][.1BB9.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+336D ; [.1BBA.0020.0004][.1BB9.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+33F5 ; [.1BBA.0020.0004][.1BBA.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+336E ; [.1BBA.0020.0004][.1BBA.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+33F6 ; [.1BBA.0020.0004][.1BBB.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+336F ; [.1BBA.0020.0004][.1BBB.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+33F7 ; [.1BBA.0020.0004][.1BBC.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+3370 ; [.1BBA.0020.0004][.1BBC.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+33F8 ; [.1BBA.0020.0004][.1BBD.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; [.1BBA.0020.0004][.1BBE.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; [.1BBA.0020.0004][.1BBF.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; [.1BBA.0020.0004][.1BC0.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; [.1BBA.0020.0004][.1BC1.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33E1 ; [.1BBA.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+32C1 ; [.1BBA.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+335A ; [.1BBA.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+33FD ; [.1BBB.0020.0004][.1BB8.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; [.1BBB.0020.0004][.1BB9.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33E2 ; [.1BBB.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+32C2 ; [.1BBB.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+335B ; [.1BBB.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+33E3 ; [.1BBC.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+32C3 ; [.1BBC.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+335C ; [.1BBC.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+33E4 ; [.1BBD.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+32C4 ; [.1BBD.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+335D ; [.1BBD.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+33E5 ; [.1BBE.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+32C5 ; [.1BBE.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+335E ; [.1BBE.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+33E6 ; [.1BBF.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+32C6 ; [.1BBF.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+335F ; [.1BBF.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+33E7 ; [.1BC0.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+32C7 ; [.1BC0.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+3360 ; [.1BC0.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+33E8 ; [.1BC1.0020.0004][.815C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+32C8 ; [.1BC1.0020.0004][.815F.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+3361 ; [.1BC1.0020.0004][.9216.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+1F241 ; [*0372.0020.0004][.8054.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; [*0372.0020.0004][.802A.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F247 ; [*0372.0020.0004][.A465.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F243 ; [*0372.0020.0004][.83F0.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F245 ; [*0372.0020.0004][.8277.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F248 ; [*0372.0020.0004][.9EDA.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F240 ; [*0372.0020.0004][.8283.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F244 ; [*0372.0020.0004][.9216.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F246 ; [*0372.0020.0004][.A0BD.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
2F00 ; [.8001.0020.0004] # KANGXI RADICAL ONE
3192 ; [.8001.0020.0014] # IDEOGRAPHIC ANNOTATION ONE MARK
3280 ; [.8001.0020.0006] # CIRCLED IDEOGRAPH ONE
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
index 5d235673a5b..674e879ad4b 100755
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/Locale/zh_zhu.pl
@@ -1,8 +1,8 @@
use Unicode::Collate::CJK::Zhuyin;
+{
- locale_version => 1.14,
+ locale_version => 1.19,
overrideCJK => \&Unicode::Collate::CJK::Zhuyin::weightZhuyin,
- entry => <<'ENTRY', # for DUCET v7.0.0
+ entry => <<'ENTRY', # for DUCET v8.0.0
02C9 ; [.0000.0199.0002] # MODIFIER LETTER MACRON
02CA ; [.019A.0020.0002] # MODIFIER LETTER ACUTE ACCENT
02C7 ; [.019B.0020.0002] # CARON
@@ -10,212 +10,212 @@ use Unicode::Collate::CJK::Zhuyin;
02D9 ; [.019D.0020.0002] # DOT ABOVE
02EA ; [.019E.0020.0002] # MODIFIER LETTER YIN DEPARTING TONE MARK
02EB ; [.019F.0020.0002] # MODIFIER LETTER YANG DEPARTING TONE MARK
-0101 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0061 0304 ; [.190C.001C.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-0041 0304 ; [.190C.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
-00E1 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0301 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-0061 0341 ; [.190C.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0301 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-0041 0341 ; [.190C.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
-01CE ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-0061 030C ; [.190C.001E.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-0041 030C ; [.190C.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
-00E0 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0300 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-0061 0340 ; [.190C.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0300 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0041 0340 ; [.190C.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
-0113 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0065 0304 ; [.196E.001C.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-0045 0304 ; [.196E.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
-00E9 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0301 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-0065 0341 ; [.196E.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0301 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-0045 0341 ; [.196E.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
-011B ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-0065 030C ; [.196E.001E.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-0045 030C ; [.196E.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
-00E8 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0300 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-0065 0340 ; [.196E.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0300 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-0045 0340 ; [.196E.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
-00EA 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-00CA 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
-0065 0302 0304 ; [.196E.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-0045 0302 0304 ; [.196E.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
-1EBF ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0301 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-0065 0302 0341 ; [.196E.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0301 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-0045 0302 0341 ; [.196E.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-00EA 0301 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00EA 0341 ; [.196E.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00CA 0301 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
-00CA 0341 ; [.196E.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
-00EA 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-00CA 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
-0065 0302 030C ; [.196E.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-0045 0302 030C ; [.196E.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
-1EC1 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0300 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-0065 0302 0340 ; [.196E.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0300 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-0045 0302 0340 ; [.196E.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-00EA 0300 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00EA 0340 ; [.196E.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00CA 0300 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
-00CA 0340 ; [.196E.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
-00EA ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-0065 0302 ; [.196E.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-0045 0302 ; [.196E.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EC5 ; [.196E.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC7 ; [.196E.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-012B ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-0069 0304 ; [.19F6.001C.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-0049 0304 ; [.19F6.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
-00ED ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0301 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-0069 0341 ; [.19F6.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0301 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-0049 0341 ; [.19F6.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
-01D0 ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-0069 030C ; [.19F6.001E.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-0049 030C ; [.19F6.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
-00EC ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0300 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-0069 0340 ; [.19F6.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0300 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-0049 0340 ; [.19F6.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
-006D 0304 ; [.1A6E.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
-004D 0304 ; [.1A6E.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
-1E3F ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0301 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-006D 0341 ; [.1A6E.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0301 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-004D 0341 ; [.1A6E.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
-006D 030C ; [.1A6E.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
-004D 030C ; [.1A6E.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
-006D 0300 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
-006D 0340 ; [.1A6E.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
-004D 0300 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
-004D 0340 ; [.1A6E.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
-006E 0304 ; [.1A7D.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
-004E 0304 ; [.1A7D.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
-0144 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0301 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-006E 0341 ; [.1A7D.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0301 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-004E 0341 ; [.1A7D.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
-0148 ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-006E 030C ; [.1A7D.001E.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-004E 030C ; [.1A7D.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
-01F9 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0300 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-006E 0340 ; [.1A7D.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0300 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-004E 0340 ; [.1A7D.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
-014D ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-006F 0304 ; [.1AA1.001C.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-004F 0304 ; [.1AA1.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
-00F3 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0301 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-006F 0341 ; [.1AA1.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0301 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-004F 0341 ; [.1AA1.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
-01D2 ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-006F 030C ; [.1AA1.001E.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-004F 030C ; [.1AA1.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
-00F2 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0300 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-006F 0340 ; [.1AA1.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0300 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-004F 0340 ; [.1AA1.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
-016B ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-0075 0304 ; [.1B77.001C.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-0055 0304 ; [.1B77.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
-00FA ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0301 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-0075 0341 ; [.1B77.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0301 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-0055 0341 ; [.1B77.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
-01D4 ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-0075 030C ; [.1B77.001E.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-0055 030C ; [.1B77.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
-00F9 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0300 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-0075 0340 ; [.1B77.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0300 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-0055 0340 ; [.1B77.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
-01D6 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-0075 0308 0304 ; [.1B77.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0055 0308 0304 ; [.1B77.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-00FC 0304 ; [.1B77.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
-00DC 0304 ; [.1B77.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
-01D8 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0301 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-0075 0308 0341 ; [.1B77.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0301 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-0055 0308 0341 ; [.1B77.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-00FC 0301 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00FC 0341 ; [.1B77.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-00DC 0301 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
-00DC 0341 ; [.1B77.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
-01DA ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-0075 0308 030C ; [.1B77.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-0055 0308 030C ; [.1B77.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-00FC 030C ; [.1B77.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
-00DC 030C ; [.1B77.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
-01DC ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0300 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-0075 0308 0340 ; [.1B77.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0300 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-0055 0308 0340 ; [.1B77.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-00FC 0300 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00FC 0340 ; [.1B77.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00DC 0300 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
-00DC 0340 ; [.1B77.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
-00FC ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-0075 0308 ; [.1B77.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-00DC ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
-0055 0308 ; [.1B77.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0101 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0061 0304 ; [.1BC2.001C.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+0041 0304 ; [.1BC2.001C.0008] # LATIN CAPITAL LETTER A WITH MACRON
+00E1 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0301 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+0061 0341 ; [.1BC2.001D.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0301 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+0041 0341 ; [.1BC2.001D.0008] # LATIN CAPITAL LETTER A WITH ACUTE
+01CE ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+0061 030C ; [.1BC2.001E.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+0041 030C ; [.1BC2.001E.0008] # LATIN CAPITAL LETTER A WITH CARON
+00E0 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0300 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+0061 0340 ; [.1BC2.001F.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0300 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0041 0340 ; [.1BC2.001F.0008] # LATIN CAPITAL LETTER A WITH GRAVE
+0113 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0065 0304 ; [.1C25.001C.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+0045 0304 ; [.1C25.001C.0008] # LATIN CAPITAL LETTER E WITH MACRON
+00E9 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0301 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+0065 0341 ; [.1C25.001D.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0301 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+0045 0341 ; [.1C25.001D.0008] # LATIN CAPITAL LETTER E WITH ACUTE
+011B ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+0065 030C ; [.1C25.001E.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+0045 030C ; [.1C25.001E.0008] # LATIN CAPITAL LETTER E WITH CARON
+00E8 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0300 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+0065 0340 ; [.1C25.001F.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0300 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+0045 0340 ; [.1C25.001F.0008] # LATIN CAPITAL LETTER E WITH GRAVE
+00EA 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+00CA 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING MACRON>
+0065 0302 0304 ; [.1C25.0021.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+0045 0302 0304 ; [.1C25.0021.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING MACRON>
+1EBF ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0301 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+0065 0302 0341 ; [.1C25.0022.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0301 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+0045 0302 0341 ; [.1C25.0022.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+00EA 0301 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00EA 0341 ; [.1C25.0022.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00CA 0301 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE ACCENT>
+00CA 0341 ; [.1C25.0022.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING ACUTE TONE MARK>
+00EA 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+00CA 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING CARON>
+0065 0302 030C ; [.1C25.0023.0002] # <LATIN SMALL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+0045 0302 030C ; [.1C25.0023.0008] # <LATIN CAPITAL LETTER E, COMBINING CIRCUMFLEX ACCENT, COMBINING CARON>
+1EC1 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0300 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+0065 0302 0340 ; [.1C25.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0300 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+0045 0302 0340 ; [.1C25.0024.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+00EA 0300 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00EA 0340 ; [.1C25.0024.0002] # <LATIN SMALL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00CA 0300 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE ACCENT>
+00CA 0340 ; [.1C25.0024.0008] # <LATIN CAPITAL LETTER E WITH CIRCUMFLEX, COMBINING GRAVE TONE MARK>
+00EA ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0065 0302 ; [.1C25.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0045 0302 ; [.1C25.0025.0008] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EC5 ; [.1C25.0025.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C25.0025.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C25.0025.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C25.0025.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC7 ; [.1C25.0025.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C25.0025.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+012B ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+0069 0304 ; [.1CAD.001C.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+0049 0304 ; [.1CAD.001C.0008] # LATIN CAPITAL LETTER I WITH MACRON
+00ED ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0301 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+0069 0341 ; [.1CAD.001D.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0301 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+0049 0341 ; [.1CAD.001D.0008] # LATIN CAPITAL LETTER I WITH ACUTE
+01D0 ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+0069 030C ; [.1CAD.001E.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+0049 030C ; [.1CAD.001E.0008] # LATIN CAPITAL LETTER I WITH CARON
+00EC ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0300 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+0069 0340 ; [.1CAD.001F.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0300 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+0049 0340 ; [.1CAD.001F.0008] # LATIN CAPITAL LETTER I WITH GRAVE
+006D 0304 ; [.1D25.001C.0002] # <LATIN SMALL LETTER M, COMBINING MACRON>
+004D 0304 ; [.1D25.001C.0008] # <LATIN CAPITAL LETTER M, COMBINING MACRON>
+1E3F ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0301 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+006D 0341 ; [.1D25.001D.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0301 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+004D 0341 ; [.1D25.001D.0008] # LATIN CAPITAL LETTER M WITH ACUTE
+006D 030C ; [.1D25.001E.0002] # <LATIN SMALL LETTER M, COMBINING CARON>
+004D 030C ; [.1D25.001E.0008] # <LATIN CAPITAL LETTER M, COMBINING CARON>
+006D 0300 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE ACCENT>
+006D 0340 ; [.1D25.001F.0002] # <LATIN SMALL LETTER M, COMBINING GRAVE TONE MARK>
+004D 0300 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE ACCENT>
+004D 0340 ; [.1D25.001F.0008] # <LATIN CAPITAL LETTER M, COMBINING GRAVE TONE MARK>
+006E 0304 ; [.1D34.001C.0002] # <LATIN SMALL LETTER N, COMBINING MACRON>
+004E 0304 ; [.1D34.001C.0008] # <LATIN CAPITAL LETTER N, COMBINING MACRON>
+0144 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0301 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+006E 0341 ; [.1D34.001D.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0301 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+004E 0341 ; [.1D34.001D.0008] # LATIN CAPITAL LETTER N WITH ACUTE
+0148 ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+006E 030C ; [.1D34.001E.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+004E 030C ; [.1D34.001E.0008] # LATIN CAPITAL LETTER N WITH CARON
+01F9 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0300 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+006E 0340 ; [.1D34.001F.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0300 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+004E 0340 ; [.1D34.001F.0008] # LATIN CAPITAL LETTER N WITH GRAVE
+014D ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+006F 0304 ; [.1D58.001C.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+004F 0304 ; [.1D58.001C.0008] # LATIN CAPITAL LETTER O WITH MACRON
+00F3 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0301 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+006F 0341 ; [.1D58.001D.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0301 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+004F 0341 ; [.1D58.001D.0008] # LATIN CAPITAL LETTER O WITH ACUTE
+01D2 ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+006F 030C ; [.1D58.001E.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+004F 030C ; [.1D58.001E.0008] # LATIN CAPITAL LETTER O WITH CARON
+00F2 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0300 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+006F 0340 ; [.1D58.001F.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0300 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+004F 0340 ; [.1D58.001F.0008] # LATIN CAPITAL LETTER O WITH GRAVE
+016B ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+0075 0304 ; [.1E30.001C.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+0055 0304 ; [.1E30.001C.0008] # LATIN CAPITAL LETTER U WITH MACRON
+00FA ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0301 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+0075 0341 ; [.1E30.001D.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0301 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+0055 0341 ; [.1E30.001D.0008] # LATIN CAPITAL LETTER U WITH ACUTE
+01D4 ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+0075 030C ; [.1E30.001E.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+0055 030C ; [.1E30.001E.0008] # LATIN CAPITAL LETTER U WITH CARON
+00F9 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0300 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+0075 0340 ; [.1E30.001F.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0300 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+0055 0340 ; [.1E30.001F.0008] # LATIN CAPITAL LETTER U WITH GRAVE
+01D6 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0075 0308 0304 ; [.1E30.0021.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0055 0308 0304 ; [.1E30.0021.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+00FC 0304 ; [.1E30.0021.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING MACRON>
+00DC 0304 ; [.1E30.0021.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING MACRON>
+01D8 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0301 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0075 0308 0341 ; [.1E30.0022.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0301 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+0055 0308 0341 ; [.1E30.0022.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+00FC 0301 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00FC 0341 ; [.1E30.0022.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+00DC 0301 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE ACCENT>
+00DC 0341 ; [.1E30.0022.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING ACUTE TONE MARK>
+01DA ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0075 0308 030C ; [.1E30.0023.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+0055 0308 030C ; [.1E30.0023.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+00FC 030C ; [.1E30.0023.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING CARON>
+00DC 030C ; [.1E30.0023.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING CARON>
+01DC ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0300 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0075 0308 0340 ; [.1E30.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0300 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+0055 0308 0340 ; [.1E30.0024.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+00FC 0300 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00FC 0340 ; [.1E30.0024.0002] # <LATIN SMALL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00DC 0300 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE ACCENT>
+00DC 0340 ; [.1E30.0024.0008] # <LATIN CAPITAL LETTER U WITH DIAERESIS, COMBINING GRAVE TONE MARK>
+00FC ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+0075 0308 ; [.1E30.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+00DC ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
+0055 0308 ; [.1E30.0025.0008] # LATIN CAPITAL LETTER U WITH DIAERESIS
FDD0 3105 ; [.8000.0020.0002] # <noncharacter-FDD0, BOPOMOFO LETTER B>
2E8A ; [.80B5.0020.0002] # CJK RADICAL DIVINATION
FDD0 3106 ; [.83B1.0020.0002] # <noncharacter-FDD0, BOPOMOFO LETTER P>
@@ -276,119 +276,119 @@ FDD0 3128 ; [.D16F.0020.0002] # <noncharacter-FDD0, BOPOMOFO LETTER U>
FDD0 3129 ; [.D403.0020.0002] # <noncharacter-FDD0, BOPOMOFO LETTER IU>
2ED7 ; [.D47E.0020.0002] # CJK RADICAL RAIN
2E9D ; [.D53B.0020.0002] # CJK RADICAL MOON
-3220 ; [*030A.0020.0004][.CBDC.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
-3226 ; [*030A.0020.0004][.AD39.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
-3222 ; [*030A.0020.0004][.C8DF.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-3228 ; [*030A.0020.0004][.A95D.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
-3221 ; [*030A.0020.0004][.CBCD.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-3224 ; [*030A.0020.0004][.D1A9.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
-3239 ; [*030A.0020.0004][.8C57.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
-323D ; [*030A.0020.0004][.ADC1.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
-3241 ; [*030A.0020.0004][.B3A8.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REST
-3227 ; [*030A.0020.0004][.8001.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
-3225 ; [*030A.0020.0004][.9953.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
-3238 ; [*030A.0020.0004][.969E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
-3229 ; [*030A.0020.0004][.BF85.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
-323F ; [*030A.0020.0004][.B2BC.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
-3234 ; [*030A.0020.0004][.892A.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
-323A ; [*030A.0020.0004][.A3B5.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
-3223 ; [*030A.0020.0004][.C82E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
-322F ; [*030A.0020.0004][.92EA.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
-323B ; [*030A.0020.0004][.B5F0.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
-3230 ; [*030A.0020.0004][.C2A4.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
-322A ; [*030A.0020.0004][.D53C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
-3232 ; [*030A.0020.0004][.CEC7.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
-322D ; [*030A.0020.0004][.895F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
-3231 ; [*030A.0020.0004][.BA36.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
-322C ; [*030A.0020.0004][.C26E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
-322B ; [*030A.0020.0004][.A48C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
-3235 ; [*030A.0020.0004][.9060.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
-323C ; [*030A.0020.0004][.A9B3.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
-3233 ; [*030A.0020.0004][.C05E.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
-3237 ; [*030A.0020.0004][.BA90.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
-3240 ; [*030A.0020.0004][.A78C.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
-3242 ; [*030A.0020.0004][.C457.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
-3243 ; [*030A.0020.0004][.B766.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
-3236 ; [*030A.0020.0004][.C69F.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
-323E ; [*030A.0020.0004][.C421.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
-322E ; [*030A.0020.0004][.AA72.0020.0004][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
-3358 ; [.1902.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-33E9 ; [.1903.0020.0004][.1902.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.1903.0020.0004][.1902.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.1903.0020.0004][.1902.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-33EA ; [.1903.0020.0004][.1903.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.1903.0020.0004][.1903.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.1903.0020.0004][.1903.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-33EB ; [.1903.0020.0004][.1904.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.1903.0020.0004][.1904.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.1903.0020.0004][.1904.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-33EC ; [.1903.0020.0004][.1905.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.1903.0020.0004][.1905.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-33ED ; [.1903.0020.0004][.1906.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.1903.0020.0004][.1906.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-33EE ; [.1903.0020.0004][.1907.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.1903.0020.0004][.1907.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-33EF ; [.1903.0020.0004][.1908.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.1903.0020.0004][.1908.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-33F0 ; [.1903.0020.0004][.1909.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.1903.0020.0004][.1909.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-33F1 ; [.1903.0020.0004][.190A.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.1903.0020.0004][.190A.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-33F2 ; [.1903.0020.0004][.190B.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.1903.0020.0004][.190B.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.1903.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.1903.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.1903.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-33F3 ; [.1904.0020.0004][.1902.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.1904.0020.0004][.1902.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-33F4 ; [.1904.0020.0004][.1903.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.1904.0020.0004][.1903.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-33F5 ; [.1904.0020.0004][.1904.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.1904.0020.0004][.1904.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-33F6 ; [.1904.0020.0004][.1905.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.1904.0020.0004][.1905.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-33F7 ; [.1904.0020.0004][.1906.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.1904.0020.0004][.1906.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-33F8 ; [.1904.0020.0004][.1907.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-33F9 ; [.1904.0020.0004][.1908.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-33FA ; [.1904.0020.0004][.1909.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-33FB ; [.1904.0020.0004][.190A.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-33FC ; [.1904.0020.0004][.190B.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.1904.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.1904.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.1904.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-33FD ; [.1905.0020.0004][.1902.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-33FE ; [.1905.0020.0004][.1903.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-33E2 ; [.1905.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.1905.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.1905.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-33E3 ; [.1906.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.1906.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.1906.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-33E4 ; [.1907.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.1907.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.1907.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-33E5 ; [.1908.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.1908.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.1908.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-33E6 ; [.1909.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.1909.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.1909.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-33E7 ; [.190A.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.190A.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.190A.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-33E8 ; [.190B.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.190B.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.190B.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-1F241 ; [*036C.0020.0004][.C8DF.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
-1F242 ; [*036C.0020.0004][.CBCD.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
-1F247 ; [*036C.0020.0004][.C1CC.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
-1F243 ; [*036C.0020.0004][.CB52.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
-1F245 ; [*036C.0020.0004][.8C38.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
-1F248 ; [*036C.0020.0004][.80CD.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F240 ; [*036C.0020.0004][.819A.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
-1F244 ; [*036C.0020.0004][.8E99.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
-1F246 ; [*036C.0020.0004][.8CA9.0020.0004][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+3220 ; [*0310.0020.0004][.CBDC.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3226 ; [*0310.0020.0004][.AD39.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3222 ; [*0310.0020.0004][.C8DF.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
+3228 ; [*0310.0020.0004][.A95D.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3221 ; [*0310.0020.0004][.CBCD.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
+3224 ; [*0310.0020.0004][.D1A9.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3239 ; [*0310.0020.0004][.8C57.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+323D ; [*0310.0020.0004][.ADC1.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+3241 ; [*0310.0020.0004][.B3A8.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3227 ; [*0310.0020.0004][.8001.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3225 ; [*0310.0020.0004][.9953.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3238 ; [*0310.0020.0004][.969E.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3229 ; [*0310.0020.0004][.BF85.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+323F ; [*0310.0020.0004][.B2BC.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+3234 ; [*0310.0020.0004][.892A.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+323A ; [*0310.0020.0004][.A3B5.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+3223 ; [*0310.0020.0004][.C82E.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+322F ; [*0310.0020.0004][.92EA.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+323B ; [*0310.0020.0004][.B5F0.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+3230 ; [*0310.0020.0004][.C2A4.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+322A ; [*0310.0020.0004][.D53C.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+3232 ; [*0310.0020.0004][.CEC7.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+322D ; [*0310.0020.0004][.895F.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+3231 ; [*0310.0020.0004][.BA36.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+322C ; [*0310.0020.0004][.C26E.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322B ; [*0310.0020.0004][.A48C.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+3235 ; [*0310.0020.0004][.9060.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+323C ; [*0310.0020.0004][.A9B3.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+3233 ; [*0310.0020.0004][.C05E.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3237 ; [*0310.0020.0004][.BA90.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3240 ; [*0310.0020.0004][.A78C.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3242 ; [*0310.0020.0004][.C457.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3243 ; [*0310.0020.0004][.B766.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3236 ; [*0310.0020.0004][.C69F.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+323E ; [*0310.0020.0004][.C421.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+322E ; [*0310.0020.0004][.AA72.0020.0004][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+3358 ; [.1BB8.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+33E9 ; [.1BB9.0020.0004][.1BB8.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+32C9 ; [.1BB9.0020.0004][.1BB8.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+3362 ; [.1BB9.0020.0004][.1BB8.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+33EA ; [.1BB9.0020.0004][.1BB9.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+32CA ; [.1BB9.0020.0004][.1BB9.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+3363 ; [.1BB9.0020.0004][.1BB9.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+33EB ; [.1BB9.0020.0004][.1BBA.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+32CB ; [.1BB9.0020.0004][.1BBA.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+3364 ; [.1BB9.0020.0004][.1BBA.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+33EC ; [.1BB9.0020.0004][.1BBB.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+3365 ; [.1BB9.0020.0004][.1BBB.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+33ED ; [.1BB9.0020.0004][.1BBC.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+3366 ; [.1BB9.0020.0004][.1BBC.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+33EE ; [.1BB9.0020.0004][.1BBD.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+3367 ; [.1BB9.0020.0004][.1BBD.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+33EF ; [.1BB9.0020.0004][.1BBE.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+3368 ; [.1BB9.0020.0004][.1BBE.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+33F0 ; [.1BB9.0020.0004][.1BBF.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+3369 ; [.1BB9.0020.0004][.1BBF.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+33F1 ; [.1BB9.0020.0004][.1BC0.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+336A ; [.1BB9.0020.0004][.1BC0.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+33F2 ; [.1BB9.0020.0004][.1BC1.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+336B ; [.1BB9.0020.0004][.1BC1.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+33E0 ; [.1BB9.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+32C0 ; [.1BB9.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+3359 ; [.1BB9.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+33F3 ; [.1BBA.0020.0004][.1BB8.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+336C ; [.1BBA.0020.0004][.1BB8.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+33F4 ; [.1BBA.0020.0004][.1BB9.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+336D ; [.1BBA.0020.0004][.1BB9.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+33F5 ; [.1BBA.0020.0004][.1BBA.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+336E ; [.1BBA.0020.0004][.1BBA.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+33F6 ; [.1BBA.0020.0004][.1BBB.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+336F ; [.1BBA.0020.0004][.1BBB.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+33F7 ; [.1BBA.0020.0004][.1BBC.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+3370 ; [.1BBA.0020.0004][.1BBC.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+33F8 ; [.1BBA.0020.0004][.1BBD.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; [.1BBA.0020.0004][.1BBE.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; [.1BBA.0020.0004][.1BBF.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; [.1BBA.0020.0004][.1BC0.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; [.1BBA.0020.0004][.1BC1.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33E1 ; [.1BBA.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+32C1 ; [.1BBA.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+335A ; [.1BBA.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+33FD ; [.1BBB.0020.0004][.1BB8.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; [.1BBB.0020.0004][.1BB9.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33E2 ; [.1BBB.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+32C2 ; [.1BBB.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+335B ; [.1BBB.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+33E3 ; [.1BBC.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+32C3 ; [.1BBC.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+335C ; [.1BBC.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+33E4 ; [.1BBD.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+32C4 ; [.1BBD.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+335D ; [.1BBD.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+33E5 ; [.1BBE.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+32C5 ; [.1BBE.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+335E ; [.1BBE.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+33E6 ; [.1BBF.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+32C6 ; [.1BBF.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+335F ; [.1BBF.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+33E7 ; [.1BC0.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+32C7 ; [.1BC0.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+3360 ; [.1BC0.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+33E8 ; [.1BC1.0020.0004][.C2A4.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+32C8 ; [.1BC1.0020.0004][.D53C.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+3361 ; [.1BC1.0020.0004][.8E99.0020.0004] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+1F241 ; [*0372.0020.0004][.C8DF.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; [*0372.0020.0004][.CBCD.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F247 ; [*0372.0020.0004][.C1CC.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F243 ; [*0372.0020.0004][.CB52.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F245 ; [*0372.0020.0004][.8C38.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F248 ; [*0372.0020.0004][.80CD.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F240 ; [*0372.0020.0004][.819A.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F244 ; [*0372.0020.0004][.8E99.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F246 ; [*0372.0020.0004][.8CA9.0020.0004][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
2F00 ; [.CBDC.0020.0004] # KANGXI RADICAL ONE
3192 ; [.CBDC.0020.0014] # IDEOGRAPHIC ANNOTATION ONE MARK
3280 ; [.CBDC.0020.0006] # CIRCLED IDEOGRAPH ONE
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt b/Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt
index 6c8f02ed5b5..e1c34b8feeb 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt
+++ b/Master/tlpkg/tlperl/lib/Unicode/Collate/allkeys.txt
@@ -1,81 +1,81 @@
-# unidata-7.0.0.txt
-# Date: 2014-04-07, 19:21:08 GMT [KW]
+# unidata-8.0.0.txt
+# Date: 2015-02-18, 15:42:57 GMT [KW]
#
# This file defines the Default Unicode Collation Element Table
# (DUCET) for the Unicode Collation Algorithm
#
-# Copyright (c) 2001-2014 Unicode, Inc.
+# Copyright (c) 2001-2015 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# See UTS #10, Unicode Collation Algorithm, for more information.
#
# Diagnostic weight ranges
-# Primary weight range: 0200..4CFC (19197)
-# Secondary weight range: 0020..010C (237)
-# Variant secondaries: 0108..010C (5)
+# Primary weight range: 0200..530C (20749)
+# Secondary weight range: 0020..010F (240)
+# Variant secondaries: 010B..010F (5)
# Tertiary weight range: 0002..001F (30)
#
-@version 7.0.0
+@version 8.0.0
-0000 ; [.0000.0000.0000] # NULL (in 6429)
-0001 ; [.0000.0000.0000] # START OF HEADING (in 6429)
-0002 ; [.0000.0000.0000] # START OF TEXT (in 6429)
-0003 ; [.0000.0000.0000] # END OF TEXT (in 6429)
-0004 ; [.0000.0000.0000] # END OF TRANSMISSION (in 6429)
-0005 ; [.0000.0000.0000] # ENQUIRY (in 6429)
-0006 ; [.0000.0000.0000] # ACKNOWLEDGE (in 6429)
-0007 ; [.0000.0000.0000] # BELL (in 6429)
-0008 ; [.0000.0000.0000] # BACKSPACE (in 6429)
-000E ; [.0000.0000.0000] # SHIFT OUT (in 6429)
-000F ; [.0000.0000.0000] # SHIFT IN (in 6429)
-0010 ; [.0000.0000.0000] # DATA LINK ESCAPE (in 6429)
-0011 ; [.0000.0000.0000] # DEVICE CONTROL ONE (in 6429)
-0012 ; [.0000.0000.0000] # DEVICE CONTROL TWO (in 6429)
-0013 ; [.0000.0000.0000] # DEVICE CONTROL THREE (in 6429)
-0014 ; [.0000.0000.0000] # DEVICE CONTROL FOUR (in 6429)
-0015 ; [.0000.0000.0000] # NEGATIVE ACKNOWLEDGE (in 6429)
-0016 ; [.0000.0000.0000] # SYNCHRONOUS IDLE (in 6429)
-0017 ; [.0000.0000.0000] # END OF TRANSMISSION BLOCK (in 6429)
-0018 ; [.0000.0000.0000] # CANCEL (in 6429)
-0019 ; [.0000.0000.0000] # END OF MEDIUM (in 6429)
-001A ; [.0000.0000.0000] # SUBSTITUTE (in 6429)
-001B ; [.0000.0000.0000] # ESCAPE (in 6429)
-001C ; [.0000.0000.0000] # FILE SEPARATOR (in 6429)
-001D ; [.0000.0000.0000] # GROUP SEPARATOR (in 6429)
-001E ; [.0000.0000.0000] # RECORD SEPARATOR (in 6429)
-001F ; [.0000.0000.0000] # UNIT SEPARATOR (in 6429)
-007F ; [.0000.0000.0000] # DELETE (in 6429)
+0000 ; [.0000.0000.0000] # NULL (in ISO 6429)
+0001 ; [.0000.0000.0000] # START OF HEADING (in ISO 6429)
+0002 ; [.0000.0000.0000] # START OF TEXT (in ISO 6429)
+0003 ; [.0000.0000.0000] # END OF TEXT (in ISO 6429)
+0004 ; [.0000.0000.0000] # END OF TRANSMISSION (in ISO 6429)
+0005 ; [.0000.0000.0000] # ENQUIRY (in ISO 6429)
+0006 ; [.0000.0000.0000] # ACKNOWLEDGE (in ISO 6429)
+0007 ; [.0000.0000.0000] # BELL (in ISO 6429)
+0008 ; [.0000.0000.0000] # BACKSPACE (in ISO 6429)
+000E ; [.0000.0000.0000] # SHIFT OUT (in ISO 6429)
+000F ; [.0000.0000.0000] # SHIFT IN (in ISO 6429)
+0010 ; [.0000.0000.0000] # DATA LINK ESCAPE (in ISO 6429)
+0011 ; [.0000.0000.0000] # DEVICE CONTROL ONE (in ISO 6429)
+0012 ; [.0000.0000.0000] # DEVICE CONTROL TWO (in ISO 6429)
+0013 ; [.0000.0000.0000] # DEVICE CONTROL THREE (in ISO 6429)
+0014 ; [.0000.0000.0000] # DEVICE CONTROL FOUR (in ISO 6429)
+0015 ; [.0000.0000.0000] # NEGATIVE ACKNOWLEDGE (in ISO 6429)
+0016 ; [.0000.0000.0000] # SYNCHRONOUS IDLE (in ISO 6429)
+0017 ; [.0000.0000.0000] # END OF TRANSMISSION BLOCK (in ISO 6429)
+0018 ; [.0000.0000.0000] # CANCEL (in ISO 6429)
+0019 ; [.0000.0000.0000] # END OF MEDIUM (in ISO 6429)
+001A ; [.0000.0000.0000] # SUBSTITUTE (in ISO 6429)
+001B ; [.0000.0000.0000] # ESCAPE (in ISO 6429)
+001C ; [.0000.0000.0000] # FILE SEPARATOR (in ISO 6429)
+001D ; [.0000.0000.0000] # GROUP SEPARATOR (in ISO 6429)
+001E ; [.0000.0000.0000] # RECORD SEPARATOR (in ISO 6429)
+001F ; [.0000.0000.0000] # UNIT SEPARATOR (in ISO 6429)
+007F ; [.0000.0000.0000] # DELETE (in ISO 6429)
0080 ; [.0000.0000.0000] # <control>
0081 ; [.0000.0000.0000] # <control>
-0082 ; [.0000.0000.0000] # BREAK PERMITTED HERE (in 6429)
-0083 ; [.0000.0000.0000] # NO BREAK HERE (in 6429)
+0082 ; [.0000.0000.0000] # BREAK PERMITTED HERE (in ISO 6429)
+0083 ; [.0000.0000.0000] # NO BREAK HERE (in ISO 6429)
0084 ; [.0000.0000.0000] # <control>
-0086 ; [.0000.0000.0000] # START OF SELECTED AREA (in 6429)
-0087 ; [.0000.0000.0000] # END OF SELECTED AREA (in 6429)
-0088 ; [.0000.0000.0000] # CHARACTER TABULATION SET (in 6429)
-0089 ; [.0000.0000.0000] # CHARACTER TABULATION WITH JUSTIFICATION (in 6429)
-008A ; [.0000.0000.0000] # LINE TABULATION SET (in 6429)
-008B ; [.0000.0000.0000] # PARTIAL LINE FORWARD (in 6429)
-008C ; [.0000.0000.0000] # PARTIAL LINE BACKWARD (in 6429)
-008D ; [.0000.0000.0000] # PARTIAL LINE FEED (in 6429)
-008E ; [.0000.0000.0000] # SINGLE SHIFT TWO (in 6429)
-008F ; [.0000.0000.0000] # SINGLE SHIFT THREE (in 6429)
-0090 ; [.0000.0000.0000] # DEVICE CONTROL STRING (in 6429)
-0091 ; [.0000.0000.0000] # PRIVATE USE ONE (in 6429)
-0092 ; [.0000.0000.0000] # PRIVATE USE TWO (in 6429)
-0093 ; [.0000.0000.0000] # SET TRANSMIT STATE (in 6429)
-0094 ; [.0000.0000.0000] # CANCEL CHARACTER (in 6429)
-0095 ; [.0000.0000.0000] # MESSAGE WAITING (in 6429)
-0096 ; [.0000.0000.0000] # START OF GUARDED AREA (in 6429)
-0097 ; [.0000.0000.0000] # END OF GUARDED AREA (in 6429)
-0098 ; [.0000.0000.0000] # START OF STRING (in 6429)
+0086 ; [.0000.0000.0000] # START OF SELECTED AREA (in ISO 6429)
+0087 ; [.0000.0000.0000] # END OF SELECTED AREA (in ISO 6429)
+0088 ; [.0000.0000.0000] # CHARACTER TABULATION SET (in ISO 6429)
+0089 ; [.0000.0000.0000] # CHARACTER TABULATION WITH JUSTIFICATION (in ISO 6429)
+008A ; [.0000.0000.0000] # LINE TABULATION SET (in ISO 6429)
+008B ; [.0000.0000.0000] # PARTIAL LINE FORWARD (in ISO 6429)
+008C ; [.0000.0000.0000] # PARTIAL LINE BACKWARD (in ISO 6429)
+008D ; [.0000.0000.0000] # PARTIAL LINE FEED (in ISO 6429)
+008E ; [.0000.0000.0000] # SINGLE SHIFT TWO (in ISO 6429)
+008F ; [.0000.0000.0000] # SINGLE SHIFT THREE (in ISO 6429)
+0090 ; [.0000.0000.0000] # DEVICE CONTROL STRING (in ISO 6429)
+0091 ; [.0000.0000.0000] # PRIVATE USE ONE (in ISO 6429)
+0092 ; [.0000.0000.0000] # PRIVATE USE TWO (in ISO 6429)
+0093 ; [.0000.0000.0000] # SET TRANSMIT STATE (in ISO 6429)
+0094 ; [.0000.0000.0000] # CANCEL CHARACTER (in ISO 6429)
+0095 ; [.0000.0000.0000] # MESSAGE WAITING (in ISO 6429)
+0096 ; [.0000.0000.0000] # START OF GUARDED AREA (in ISO 6429)
+0097 ; [.0000.0000.0000] # END OF GUARDED AREA (in ISO 6429)
+0098 ; [.0000.0000.0000] # START OF STRING (in ISO 6429)
0099 ; [.0000.0000.0000] # <control>
-009A ; [.0000.0000.0000] # SINGLE CHARACTER INTRODUCER (in 6429)
-009B ; [.0000.0000.0000] # CONTROL SEQUENCE INTRODUCER (in 6429)
-009C ; [.0000.0000.0000] # STRING TERMINATOR (in 6429)
-009D ; [.0000.0000.0000] # OPERATING SYSTEM COMMAND (in 6429)
-009E ; [.0000.0000.0000] # PRIVACY MESSAGE (in 6429)
-009F ; [.0000.0000.0000] # APPLICATION PROGRAM COMMAND (in 6429)
+009A ; [.0000.0000.0000] # SINGLE CHARACTER INTRODUCER (in ISO 6429)
+009B ; [.0000.0000.0000] # CONTROL SEQUENCE INTRODUCER (in ISO 6429)
+009C ; [.0000.0000.0000] # STRING TERMINATOR (in ISO 6429)
+009D ; [.0000.0000.0000] # OPERATING SYSTEM COMMAND (in ISO 6429)
+009E ; [.0000.0000.0000] # PRIVACY MESSAGE (in ISO 6429)
+009F ; [.0000.0000.0000] # APPLICATION PROGRAM COMMAND (in ISO 6429)
00AD ; [.0000.0000.0000] # SOFT HYPHEN
061C ; [.0000.0000.0000] # ARABIC LETTER MARK
070F ; [.0000.0000.0000] # SYRIAC ABBREVIATION MARK
@@ -473,141 +473,141 @@ E01EC ; [.0000.0000.0000] # VARIATION SELECTOR-253
E01ED ; [.0000.0000.0000] # VARIATION SELECTOR-254
E01EE ; [.0000.0000.0000] # VARIATION SELECTOR-255
E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
-0009 ; [*0201.0020.0002] # HORIZONTAL TABULATION (in 6429)
-000A ; [*0202.0020.0002] # LINE FEED (in 6429)
-000B ; [*0203.0020.0002] # VERTICAL TABULATION (in 6429)
-000C ; [*0204.0020.0002] # FORM FEED (in 6429)
-000D ; [*0205.0020.0002] # CARRIAGE RETURN (in 6429)
+0009 ; [*0201.0020.0002] # HORIZONTAL TABULATION (in ISO 6429)
+000A ; [*0202.0020.0002] # LINE FEED (in ISO 6429)
+000B ; [*0203.0020.0002] # VERTICAL TABULATION (in ISO 6429)
+000C ; [*0204.0020.0002] # FORM FEED (in ISO 6429)
+000D ; [*0205.0020.0002] # CARRIAGE RETURN (in ISO 6429)
0020 ; [*0209.0020.0002] # SPACE
0021 ; [*025F.0020.0002] # EXCLAMATION MARK
-0022 ; [*02FF.0020.0002] # QUOTATION MARK
-0023 ; [*038B.0020.0002] # NUMBER SIGN
-0025 ; [*038C.0020.0002] # PERCENT SIGN
-0026 ; [*0389.0020.0002] # AMPERSAND
-0027 ; [*02F8.0020.0002] # APOSTROPHE
-0028 ; [*030A.0020.0002] # LEFT PARENTHESIS
-0029 ; [*030B.0020.0002] # RIGHT PARENTHESIS
-002A ; [*0382.0020.0002] # ASTERISK
-002B ; [*05D6.0020.0002] # PLUS SIGN
+0022 ; [*0305.0020.0002] # QUOTATION MARK
+0023 ; [*0391.0020.0002] # NUMBER SIGN
+0025 ; [*0392.0020.0002] # PERCENT SIGN
+0026 ; [*038F.0020.0002] # AMPERSAND
+0027 ; [*02FE.0020.0002] # APOSTROPHE
+0028 ; [*0310.0020.0002] # LEFT PARENTHESIS
+0029 ; [*0311.0020.0002] # RIGHT PARENTHESIS
+002A ; [*0388.0020.0002] # ASTERISK
+002B ; [*05F6.0020.0002] # PLUS SIGN
002C ; [*0221.0020.0002] # COMMA
002D ; [*020D.0020.0002] # HYPHEN-MINUS
002E ; [*0274.0020.0002] # FULL STOP
-002F ; [*0387.0020.0002] # SOLIDUS
+002F ; [*038D.0020.0002] # SOLIDUS
003A ; [*0238.0020.0002] # COLON
003B ; [*0233.0020.0002] # SEMICOLON
-003C ; [*05DA.0020.0002] # LESS-THAN SIGN
-003D ; [*05DB.0020.0002] # EQUALS SIGN
-003E ; [*05DC.0020.0002] # GREATER-THAN SIGN
+003C ; [*05FA.0020.0002] # LESS-THAN SIGN
+003D ; [*05FB.0020.0002] # EQUALS SIGN
+003E ; [*05FC.0020.0002] # GREATER-THAN SIGN
003F ; [*0264.0020.0002] # QUESTION MARK
-0040 ; [*0381.0020.0002] # COMMERCIAL AT
-005B ; [*030C.0020.0002] # LEFT SQUARE BRACKET
-005C ; [*0388.0020.0002] # REVERSE SOLIDUS
-005D ; [*030D.0020.0002] # RIGHT SQUARE BRACKET
-005E ; [*0449.0020.0002] # CIRCUMFLEX ACCENT
+0040 ; [*0387.0020.0002] # COMMERCIAL AT
+005B ; [*0312.0020.0002] # LEFT SQUARE BRACKET
+005C ; [*038E.0020.0002] # REVERSE SOLIDUS
+005D ; [*0313.0020.0002] # RIGHT SQUARE BRACKET
+005E ; [*0466.0020.0002] # CIRCUMFLEX ACCENT
005F ; [*020B.0020.0002] # LOW LINE
-0060 ; [*0446.0020.0002] # GRAVE ACCENT
-007B ; [*030E.0020.0002] # LEFT CURLY BRACKET
-007C ; [*05DE.0020.0002] # VERTICAL LINE
-007D ; [*030F.0020.0002] # RIGHT CURLY BRACKET
-007E ; [*05E0.0020.0002] # TILDE
-0085 ; [*0206.0020.0002] # NEXT LINE (in 6429)
+0060 ; [*0463.0020.0002] # GRAVE ACCENT
+007B ; [*0314.0020.0002] # LEFT CURLY BRACKET
+007C ; [*05FE.0020.0002] # VERTICAL LINE
+007D ; [*0315.0020.0002] # RIGHT CURLY BRACKET
+007E ; [*0600.0020.0002] # TILDE
+0085 ; [*0206.0020.0002] # NEXT LINE (in ISO 6429)
00A0 ; [*0209.0020.001B] # NO-BREAK SPACE
00A1 ; [*0260.0020.0002] # INVERTED EXCLAMATION MARK
-00A6 ; [*05DF.0020.0002] # BROKEN BAR
-00A7 ; [*037C.0020.0002] # SECTION SIGN
-00A8 ; [*044D.0020.0002] # DIAERESIS
-00A9 ; [*0546.0020.0002] # COPYRIGHT SIGN
-00AB ; [*0308.0020.0002] # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC ; [*05DD.0020.0002] # NOT SIGN
-00AE ; [*0547.0020.0002] # REGISTERED SIGN
-00AF ; [*044A.0020.0002] # MACRON
-00B0 ; [*04BA.0020.0002] # DEGREE SIGN
-00B1 ; [*05D7.0020.0002] # PLUS-MINUS SIGN
-00B4 ; [*0447.0020.0002] # ACUTE ACCENT
-00B6 ; [*037E.0020.0002] # PILCROW SIGN
+00A6 ; [*05FF.0020.0002] # BROKEN BAR
+00A7 ; [*0382.0020.0002] # SECTION SIGN
+00A8 ; [*046A.0020.0002] # DIAERESIS
+00A9 ; [*0564.0020.0002] # COPYRIGHT SIGN
+00AB ; [*030E.0020.0002] # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC ; [*05FD.0020.0002] # NOT SIGN
+00AE ; [*0565.0020.0002] # REGISTERED SIGN
+00AF ; [*0467.0020.0002] # MACRON
+00B0 ; [*04D7.0020.0002] # DEGREE SIGN
+00B1 ; [*05F7.0020.0002] # PLUS-MINUS SIGN
+00B4 ; [*0464.0020.0002] # ACUTE ACCENT
+00B6 ; [*0384.0020.0002] # PILCROW SIGN
00B7 ; [*0288.0020.0002] # MIDDLE DOT
-00B8 ; [*0450.0020.0002] # CEDILLA
-00BB ; [*0309.0020.0002] # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00B8 ; [*046D.0020.0002] # CEDILLA
+00BB ; [*030F.0020.0002] # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
00BF ; [*0265.0020.0002] # INVERTED QUESTION MARK
-00D7 ; [*05D9.0020.0002] # MULTIPLICATION SIGN
-00F7 ; [*05D8.0020.0002] # DIVISION SIGN
-02B9 ; [*0457.0020.0002] # MODIFIER LETTER PRIME
-02BA ; [*0459.0020.0002] # MODIFIER LETTER DOUBLE PRIME
-02C2 ; [*045A.0020.0002] # MODIFIER LETTER LEFT ARROWHEAD
-02C3 ; [*045B.0020.0002] # MODIFIER LETTER RIGHT ARROWHEAD
-02C4 ; [*045C.0020.0002] # MODIFIER LETTER UP ARROWHEAD
-02C5 ; [*045D.0020.0002] # MODIFIER LETTER DOWN ARROWHEAD
-02C6 ; [*045E.0020.0002] # MODIFIER LETTER CIRCUMFLEX ACCENT
-02C7 ; [*045F.0020.0002] # CARON
-02C8 ; [*0460.0020.0002] # MODIFIER LETTER VERTICAL LINE
-02C9 ; [*0461.0020.0002] # MODIFIER LETTER MACRON
-02CA ; [*0462.0020.0002] # MODIFIER LETTER ACUTE ACCENT
-02CB ; [*0463.0020.0002] # MODIFIER LETTER GRAVE ACCENT
-02CC ; [*0464.0020.0002] # MODIFIER LETTER LOW VERTICAL LINE
-02CD ; [*0465.0020.0002] # MODIFIER LETTER LOW MACRON
-02CE ; [*0466.0020.0002] # MODIFIER LETTER LOW GRAVE ACCENT
-02CF ; [*0467.0020.0002] # MODIFIER LETTER LOW ACUTE ACCENT
-02D2 ; [*0468.0020.0002] # MODIFIER LETTER CENTRED RIGHT HALF RING
-02D3 ; [*0469.0020.0002] # MODIFIER LETTER CENTRED LEFT HALF RING
-02D4 ; [*046A.0020.0002] # MODIFIER LETTER UP TACK
-02D5 ; [*046B.0020.0002] # MODIFIER LETTER DOWN TACK
-02D6 ; [*046C.0020.0002] # MODIFIER LETTER PLUS SIGN
-02D7 ; [*046D.0020.0002] # MODIFIER LETTER MINUS SIGN
-02D8 ; [*044B.0020.0002] # BREVE
-02D9 ; [*044C.0020.0002] # DOT ABOVE
-02DA ; [*044E.0020.0002] # RING ABOVE
-02DB ; [*0451.0020.0002] # OGONEK
-02DC ; [*0448.0020.0002] # SMALL TILDE
-02DD ; [*044F.0020.0002] # DOUBLE ACUTE ACCENT
-02DE ; [*046E.0020.0002] # MODIFIER LETTER RHOTIC HOOK
-02DF ; [*046F.0020.0002] # MODIFIER LETTER CROSS ACCENT
-02E5 ; [*0470.0020.0002] # MODIFIER LETTER EXTRA-HIGH TONE BAR
-02E6 ; [*0471.0020.0002] # MODIFIER LETTER HIGH TONE BAR
-02E7 ; [*0472.0020.0002] # MODIFIER LETTER MID TONE BAR
-02E8 ; [*0473.0020.0002] # MODIFIER LETTER LOW TONE BAR
-02E9 ; [*0474.0020.0002] # MODIFIER LETTER EXTRA-LOW TONE BAR
-02EA ; [*0475.0020.0002] # MODIFIER LETTER YIN DEPARTING TONE MARK
-02EB ; [*0476.0020.0002] # MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC ; [*0477.0020.0002] # MODIFIER LETTER VOICING
-02ED ; [*0478.0020.0002] # MODIFIER LETTER UNASPIRATED
-02EF ; [*0479.0020.0002] # MODIFIER LETTER LOW DOWN ARROWHEAD
-02F0 ; [*047A.0020.0002] # MODIFIER LETTER LOW UP ARROWHEAD
-02F1 ; [*047B.0020.0002] # MODIFIER LETTER LOW LEFT ARROWHEAD
-02F2 ; [*047C.0020.0002] # MODIFIER LETTER LOW RIGHT ARROWHEAD
-02F3 ; [*047D.0020.0002] # MODIFIER LETTER LOW RING
-02F4 ; [*047E.0020.0002] # MODIFIER LETTER MIDDLE GRAVE ACCENT
-02F5 ; [*047F.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
-02F6 ; [*0480.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
-02F7 ; [*0481.0020.0002] # MODIFIER LETTER LOW TILDE
-02F8 ; [*0482.0020.0002] # MODIFIER LETTER RAISED COLON
-02F9 ; [*0483.0020.0002] # MODIFIER LETTER BEGIN HIGH TONE
-02FA ; [*0484.0020.0002] # MODIFIER LETTER END HIGH TONE
-02FB ; [*0485.0020.0002] # MODIFIER LETTER BEGIN LOW TONE
-02FC ; [*0486.0020.0002] # MODIFIER LETTER END LOW TONE
-02FD ; [*0487.0020.0002] # MODIFIER LETTER SHELF
-02FE ; [*0488.0020.0002] # MODIFIER LETTER OPEN SHELF
-02FF ; [*0489.0020.0002] # MODIFIER LETTER LOW LEFT ARROW
+00D7 ; [*05F9.0020.0002] # MULTIPLICATION SIGN
+00F7 ; [*05F8.0020.0002] # DIVISION SIGN
+02B9 ; [*0474.0020.0002] # MODIFIER LETTER PRIME
+02BA ; [*0476.0020.0002] # MODIFIER LETTER DOUBLE PRIME
+02C2 ; [*0477.0020.0002] # MODIFIER LETTER LEFT ARROWHEAD
+02C3 ; [*0478.0020.0002] # MODIFIER LETTER RIGHT ARROWHEAD
+02C4 ; [*0479.0020.0002] # MODIFIER LETTER UP ARROWHEAD
+02C5 ; [*047A.0020.0002] # MODIFIER LETTER DOWN ARROWHEAD
+02C6 ; [*047B.0020.0002] # MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7 ; [*047C.0020.0002] # CARON
+02C8 ; [*047D.0020.0002] # MODIFIER LETTER VERTICAL LINE
+02C9 ; [*047E.0020.0002] # MODIFIER LETTER MACRON
+02CA ; [*047F.0020.0002] # MODIFIER LETTER ACUTE ACCENT
+02CB ; [*0480.0020.0002] # MODIFIER LETTER GRAVE ACCENT
+02CC ; [*0481.0020.0002] # MODIFIER LETTER LOW VERTICAL LINE
+02CD ; [*0482.0020.0002] # MODIFIER LETTER LOW MACRON
+02CE ; [*0483.0020.0002] # MODIFIER LETTER LOW GRAVE ACCENT
+02CF ; [*0484.0020.0002] # MODIFIER LETTER LOW ACUTE ACCENT
+02D2 ; [*0485.0020.0002] # MODIFIER LETTER CENTRED RIGHT HALF RING
+02D3 ; [*0486.0020.0002] # MODIFIER LETTER CENTRED LEFT HALF RING
+02D4 ; [*0487.0020.0002] # MODIFIER LETTER UP TACK
+02D5 ; [*0488.0020.0002] # MODIFIER LETTER DOWN TACK
+02D6 ; [*0489.0020.0002] # MODIFIER LETTER PLUS SIGN
+02D7 ; [*048A.0020.0002] # MODIFIER LETTER MINUS SIGN
+02D8 ; [*0468.0020.0002] # BREVE
+02D9 ; [*0469.0020.0002] # DOT ABOVE
+02DA ; [*046B.0020.0002] # RING ABOVE
+02DB ; [*046E.0020.0002] # OGONEK
+02DC ; [*0465.0020.0002] # SMALL TILDE
+02DD ; [*046C.0020.0002] # DOUBLE ACUTE ACCENT
+02DE ; [*048B.0020.0002] # MODIFIER LETTER RHOTIC HOOK
+02DF ; [*048C.0020.0002] # MODIFIER LETTER CROSS ACCENT
+02E5 ; [*048D.0020.0002] # MODIFIER LETTER EXTRA-HIGH TONE BAR
+02E6 ; [*048E.0020.0002] # MODIFIER LETTER HIGH TONE BAR
+02E7 ; [*048F.0020.0002] # MODIFIER LETTER MID TONE BAR
+02E8 ; [*0490.0020.0002] # MODIFIER LETTER LOW TONE BAR
+02E9 ; [*0491.0020.0002] # MODIFIER LETTER EXTRA-LOW TONE BAR
+02EA ; [*0492.0020.0002] # MODIFIER LETTER YIN DEPARTING TONE MARK
+02EB ; [*0493.0020.0002] # MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; [*0494.0020.0002] # MODIFIER LETTER VOICING
+02ED ; [*0495.0020.0002] # MODIFIER LETTER UNASPIRATED
+02EF ; [*0496.0020.0002] # MODIFIER LETTER LOW DOWN ARROWHEAD
+02F0 ; [*0497.0020.0002] # MODIFIER LETTER LOW UP ARROWHEAD
+02F1 ; [*0498.0020.0002] # MODIFIER LETTER LOW LEFT ARROWHEAD
+02F2 ; [*0499.0020.0002] # MODIFIER LETTER LOW RIGHT ARROWHEAD
+02F3 ; [*049A.0020.0002] # MODIFIER LETTER LOW RING
+02F4 ; [*049B.0020.0002] # MODIFIER LETTER MIDDLE GRAVE ACCENT
+02F5 ; [*049C.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT
+02F6 ; [*049D.0020.0002] # MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT
+02F7 ; [*049E.0020.0002] # MODIFIER LETTER LOW TILDE
+02F8 ; [*049F.0020.0002] # MODIFIER LETTER RAISED COLON
+02F9 ; [*04A0.0020.0002] # MODIFIER LETTER BEGIN HIGH TONE
+02FA ; [*04A1.0020.0002] # MODIFIER LETTER END HIGH TONE
+02FB ; [*04A2.0020.0002] # MODIFIER LETTER BEGIN LOW TONE
+02FC ; [*04A3.0020.0002] # MODIFIER LETTER END LOW TONE
+02FD ; [*04A4.0020.0002] # MODIFIER LETTER SHELF
+02FE ; [*04A5.0020.0002] # MODIFIER LETTER OPEN SHELF
+02FF ; [*04A6.0020.0002] # MODIFIER LETTER LOW LEFT ARROW
034F ; [.0000.0000.0000] # COMBINING GRAPHEME JOINER
-0374 ; [*0457.0020.0002] # GREEK NUMERAL SIGN
-0375 ; [*0458.0020.0002] # GREEK LOWER NUMERAL SIGN
+0374 ; [*0474.0020.0002] # GREEK NUMERAL SIGN
+0375 ; [*0475.0020.0002] # GREEK LOWER NUMERAL SIGN
037E ; [*0233.0020.0002] # GREEK QUESTION MARK
-0384 ; [*0447.0020.0002] # GREEK TONOS
-0385 ; [*044D.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA TONOS
+0384 ; [*0464.0020.0002] # GREEK TONOS
+0385 ; [*046A.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA TONOS
0387 ; [*0288.0020.0002] # GREEK ANO TELEIA
-03F6 ; [*05D1.0020.0002] # GREEK REVERSED LUNATE EPSILON SYMBOL
-0482 ; [*04BB.0020.0002] # CYRILLIC THOUSANDS SIGN
+03F6 ; [*05F1.0020.0002] # GREEK REVERSED LUNATE EPSILON SYMBOL
+0482 ; [*04D8.0020.0002] # CYRILLIC THOUSANDS SIGN
0488 ; [.0000.0000.0000] # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN
0489 ; [.0000.0000.0000] # COMBINING CYRILLIC MILLIONS SIGN
-055A ; [*03BD.0020.0002] # ARMENIAN APOSTROPHE
-055B ; [*03BE.0020.0002] # ARMENIAN EMPHASIS MARK
+055A ; [*03C3.0020.0002] # ARMENIAN APOSTROPHE
+055B ; [*03C4.0020.0002] # ARMENIAN EMPHASIS MARK
055C ; [*0261.0020.0002] # ARMENIAN EXCLAMATION MARK
055D ; [*0225.0020.0002] # ARMENIAN COMMA
055E ; [*0267.0020.0002] # ARMENIAN QUESTION MARK
-055F ; [*03BF.0020.0002] # ARMENIAN ABBREVIATION MARK
+055F ; [*03C5.0020.0002] # ARMENIAN ABBREVIATION MARK
0589 ; [*0239.0020.0002] # ARMENIAN FULL STOP
058A ; [*020E.0020.0002] # ARMENIAN HYPHEN
-058D ; [*04BC.0020.0002] # RIGHT-FACING ARMENIAN ETERNITY SIGN
-058E ; [*04BD.0020.0002] # LEFT-FACING ARMENIAN ETERNITY SIGN
+058D ; [*04D9.0020.0002] # RIGHT-FACING ARMENIAN ETERNITY SIGN
+058E ; [*04DA.0020.0002] # LEFT-FACING ARMENIAN ETERNITY SIGN
0591 ; [.0000.0000.0000] # HEBREW ACCENT ETNAHTA
0592 ; [.0000.0000.0000] # HEBREW ACCENT SEGOL
0593 ; [.0000.0000.0000] # HEBREW ACCENT SHALSHELET
@@ -640,29 +640,29 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
05AE ; [.0000.0000.0000] # HEBREW ACCENT ZINOR
05AF ; [.0000.0000.0000] # HEBREW MARK MASORA CIRCLE
05BD ; [.0000.0000.0000] # HEBREW POINT METEG
-05BE ; [*03C0.0020.0002] # HEBREW PUNCTUATION MAQAF
-05C0 ; [*03C1.0020.0002] # HEBREW PUNCTUATION PASEQ
-05C3 ; [*03C2.0020.0002] # HEBREW PUNCTUATION SOF PASUQ
+05BE ; [*03C6.0020.0002] # HEBREW PUNCTUATION MAQAF
+05C0 ; [*03C7.0020.0002] # HEBREW PUNCTUATION PASEQ
+05C3 ; [*03C8.0020.0002] # HEBREW PUNCTUATION SOF PASUQ
05C4 ; [.0000.0000.0000] # HEBREW MARK UPPER DOT
05C5 ; [.0000.0000.0000] # HEBREW MARK LOWER DOT
-05C6 ; [*03C3.0020.0002] # HEBREW PUNCTUATION NUN HAFUKHA
-05F3 ; [*03C4.0020.0002] # HEBREW PUNCTUATION GERESH
-05F4 ; [*03C5.0020.0002] # HEBREW PUNCTUATION GERSHAYIM
+05C6 ; [*03C9.0020.0002] # HEBREW PUNCTUATION NUN HAFUKHA
+05F3 ; [*03CA.0020.0002] # HEBREW PUNCTUATION GERESH
+05F4 ; [*03CB.0020.0002] # HEBREW PUNCTUATION GERSHAYIM
0600 ; [.0000.0000.0000] # ARABIC NUMBER SIGN
0601 ; [.0000.0000.0000] # ARABIC SIGN SANAH
0602 ; [.0000.0000.0000] # ARABIC FOOTNOTE MARKER
0603 ; [.0000.0000.0000] # ARABIC SIGN SAFHA
0604 ; [.0000.0000.0000] # ARABIC SIGN SAMVAT
0605 ; [.0000.0000.0000] # ARABIC NUMBER MARK ABOVE
-0606 ; [*05ED.0020.0002] # ARABIC-INDIC CUBE ROOT
-0607 ; [*05EF.0020.0002] # ARABIC-INDIC FOURTH ROOT
-0608 ; [*04BE.0020.0002] # ARABIC RAY
-0609 ; [*038F.0020.0002] # ARABIC-INDIC PER MILLE SIGN
-060A ; [*0391.0020.0002] # ARABIC-INDIC PER TEN THOUSAND SIGN
+0606 ; [*060D.0020.0002] # ARABIC-INDIC CUBE ROOT
+0607 ; [*060F.0020.0002] # ARABIC-INDIC FOURTH ROOT
+0608 ; [*04DB.0020.0002] # ARABIC RAY
+0609 ; [*0395.0020.0002] # ARABIC-INDIC PER MILLE SIGN
+060A ; [*0397.0020.0002] # ARABIC-INDIC PER TEN THOUSAND SIGN
060C ; [*0226.0020.0002] # ARABIC COMMA
060D ; [*0227.0020.0002] # ARABIC DATE SEPARATOR
-060E ; [*04C1.0020.0002] # ARABIC POETIC VERSE SIGN
-060F ; [*04C2.0020.0002] # ARABIC SIGN MISRA
+060E ; [*04DE.0020.0002] # ARABIC POETIC VERSE SIGN
+060F ; [*04DF.0020.0002] # ARABIC SIGN MISRA
0610 ; [.0000.0000.0000] # ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM
0611 ; [.0000.0000.0000] # ARABIC SIGN ALAYHE ASSALLAM
0612 ; [.0000.0000.0000] # ARABIC SIGN RAHMATULLAH ALAYHE
@@ -678,10 +678,10 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
061E ; [*023A.0020.0002] # ARABIC TRIPLE DOT PUNCTUATION MARK
061F ; [*0268.0020.0002] # ARABIC QUESTION MARK
0640 ; [.0000.0000.0000] # ARABIC TATWEEL
-066A ; [*038D.0020.0002] # ARABIC PERCENT SIGN
+066A ; [*0393.0020.0002] # ARABIC PERCENT SIGN
066B ; [*0228.0020.0002] # ARABIC DECIMAL SEPARATOR
066C ; [*0229.0020.0002] # ARABIC THOUSANDS SEPARATOR
-066D ; [*0385.0020.0002] # ARABIC FIVE POINTED STAR
+066D ; [*038B.0020.0002] # ARABIC FIVE POINTED STAR
06D4 ; [*0276.0020.0002] # ARABIC FULL STOP
06D6 ; [.0000.0000.0000] # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA
06D7 ; [.0000.0000.0000] # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA
@@ -691,7 +691,7 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
06DB ; [.0000.0000.0000] # ARABIC SMALL HIGH THREE DOTS
06DC ; [.0000.0000.0000] # ARABIC SMALL HIGH SEEN
06DD ; [.0000.0000.0000] # ARABIC END OF AYAH
-06DE ; [*04C3.0020.0002] # ARABIC START OF RUB EL HIZB
+06DE ; [*04E0.0020.0002] # ARABIC START OF RUB EL HIZB
06DF ; [.0000.0000.0000] # ARABIC SMALL HIGH ROUNDED ZERO
06E0 ; [.0000.0000.0000] # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
06E1 ; [.0000.0000.0000] # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH
@@ -700,12 +700,12 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
06E4 ; [.0000.0000.0000] # ARABIC SMALL HIGH MADDA
06E7 ; [.0000.0000.0000] # ARABIC SMALL HIGH YEH
06E8 ; [.0000.0000.0000] # ARABIC SMALL HIGH NOON
-06E9 ; [*04C4.0020.0002] # ARABIC PLACE OF SAJDAH
+06E9 ; [*04E1.0020.0002] # ARABIC PLACE OF SAJDAH
06EA ; [.0000.0000.0000] # ARABIC EMPTY CENTRE LOW STOP
06EB ; [.0000.0000.0000] # ARABIC EMPTY CENTRE HIGH STOP
06EC ; [.0000.0000.0000] # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
06ED ; [.0000.0000.0000] # ARABIC SMALL LOW MEEM
-0700 ; [*02BB.0020.0002] # SYRIAC END OF PARAGRAPH
+0700 ; [*02BD.0020.0002] # SYRIAC END OF PARAGRAPH
0701 ; [*0277.0020.0002] # SYRIAC SUPRALINEAR FULL STOP
0702 ; [*0278.0020.0002] # SYRIAC SUBLINEAR FULL STOP
0703 ; [*023B.0020.0002] # SYRIAC SUPRALINEAR COLON
@@ -715,10 +715,10 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
0707 ; [*023F.0020.0002] # SYRIAC COLON SKEWED RIGHT
0708 ; [*0240.0020.0002] # SYRIAC SUPRALINEAR COLON SKEWED LEFT
0709 ; [*0269.0020.0002] # SYRIAC SUBLINEAR COLON SKEWED RIGHT
-070A ; [*03C6.0020.0002] # SYRIAC CONTRACTION
-070B ; [*03C7.0020.0002] # SYRIAC HARKLEAN OBELUS
-070C ; [*03C8.0020.0002] # SYRIAC HARKLEAN METOBELUS
-070D ; [*03C9.0020.0002] # SYRIAC HARKLEAN ASTERISCUS
+070A ; [*03CC.0020.0002] # SYRIAC CONTRACTION
+070B ; [*03CD.0020.0002] # SYRIAC HARKLEAN OBELUS
+070C ; [*03CE.0020.0002] # SYRIAC HARKLEAN METOBELUS
+070D ; [*03CF.0020.0002] # SYRIAC HARKLEAN ASTERISCUS
0740 ; [.0000.0000.0000] # SYRIAC FEMININE DOT
0743 ; [.0000.0000.0000] # SYRIAC TWO VERTICAL DOTS ABOVE
0744 ; [.0000.0000.0000] # SYRIAC TWO VERTICAL DOTS BELOW
@@ -726,8 +726,8 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
0748 ; [.0000.0000.0000] # SYRIAC OBLIQUE LINE BELOW
0749 ; [.0000.0000.0000] # SYRIAC MUSIC
074A ; [.0000.0000.0000] # SYRIAC BARREKH
-07F6 ; [*04D6.0020.0002] # NKO SYMBOL OO DENNEN
-07F7 ; [*02BC.0020.0002] # NKO SYMBOL GBAKURUNEN
+07F6 ; [*04F3.0020.0002] # NKO SYMBOL OO DENNEN
+07F7 ; [*02BE.0020.0002] # NKO SYMBOL GBAKURUNEN
07F8 ; [*022A.0020.0002] # NKO COMMA
07F9 ; [*0262.0020.0002] # NKO EXCLAMATION MARK
07FA ; [.0000.0000.0000] # NKO LAJANYALAN
@@ -746,7 +746,7 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
083C ; [*024D.0020.0002] # SAMARITAN PUNCTUATION ARKAANU
083D ; [*024E.0020.0002] # SAMARITAN PUNCTUATION SOF MASHFAAT
083E ; [*024F.0020.0002] # SAMARITAN PUNCTUATION ANNAAU
-085E ; [*03CA.0020.0002] # MANDAIC PUNCTUATION
+085E ; [*03D0.0020.0002] # MANDAIC PUNCTUATION
08EA ; [.0000.0000.0000] # ARABIC TONE ONE DOT ABOVE
08EB ; [.0000.0000.0000] # ARABIC TONE TWO DOTS ABOVE
08EC ; [.0000.0000.0000] # ARABIC TONE LOOP ABOVE
@@ -758,129 +758,129 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
0952 ; [.0000.0000.0000] # DEVANAGARI STRESS SIGN ANUDATTA
0964 ; [*028B.0020.0002] # DEVANAGARI DANDA
0965 ; [*028C.0020.0002] # DEVANAGARI DOUBLE DANDA
-0970 ; [*03CC.0020.0002] # DEVANAGARI ABBREVIATION SIGN
-09F4 ; [*17B1.0020.0002] # BENGALI CURRENCY NUMERATOR ONE
-09F5 ; [*17B2.0020.0002] # BENGALI CURRENCY NUMERATOR TWO
-09F6 ; [*17B3.0020.0002] # BENGALI CURRENCY NUMERATOR THREE
-09F7 ; [*17B4.0020.0002] # BENGALI CURRENCY NUMERATOR FOUR
-09F8 ; [*17B5.0020.0002] # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-09F9 ; [*17B6.0020.0002] # BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA ; [*04D7.0020.0002] # BENGALI ISSHAR
-0AF0 ; [*03D0.0020.0002] # GUJARATI ABBREVIATION SIGN
-0B70 ; [*04D8.0020.0002] # ORIYA ISSHAR
-0B72 ; [*17B7.0020.0002] # ORIYA FRACTION ONE QUARTER
-0B73 ; [*17B8.0020.0002] # ORIYA FRACTION ONE HALF
-0B74 ; [*17B9.0020.0002] # ORIYA FRACTION THREE QUARTERS
-0B75 ; [*17BA.0020.0002] # ORIYA FRACTION ONE SIXTEENTH
-0B76 ; [*17BB.0020.0002] # ORIYA FRACTION ONE EIGHTH
-0B77 ; [*17BC.0020.0002] # ORIYA FRACTION THREE SIXTEENTHS
-0BF0 ; [*17C3.0020.0002] # TAMIL NUMBER TEN
-0BF1 ; [*17C4.0020.0002] # TAMIL NUMBER ONE HUNDRED
-0BF2 ; [*17C5.0020.0002] # TAMIL NUMBER ONE THOUSAND
-0BF3 ; [*04D9.0020.0002] # TAMIL DAY SIGN
-0BF4 ; [*04DA.0020.0002] # TAMIL MONTH SIGN
-0BF5 ; [*04DB.0020.0002] # TAMIL YEAR SIGN
-0BF6 ; [*04DC.0020.0002] # TAMIL DEBIT SIGN
-0BF7 ; [*04DD.0020.0002] # TAMIL CREDIT SIGN
-0BF8 ; [*04DE.0020.0002] # TAMIL AS ABOVE SIGN
-0BFA ; [*04DF.0020.0002] # TAMIL NUMBER SIGN
-0C7F ; [*04E0.0020.0002] # TELUGU SIGN TUUMU
-0D70 ; [*17C6.0020.0002] # MALAYALAM NUMBER TEN
-0D71 ; [*17C7.0020.0002] # MALAYALAM NUMBER ONE HUNDRED
-0D72 ; [*17C8.0020.0002] # MALAYALAM NUMBER ONE THOUSAND
-0D73 ; [*17C9.0020.0002] # MALAYALAM FRACTION ONE QUARTER
-0D74 ; [*17CA.0020.0002] # MALAYALAM FRACTION ONE HALF
-0D75 ; [*17CB.0020.0002] # MALAYALAM FRACTION THREE QUARTERS
-0D79 ; [*04E1.0020.0002] # MALAYALAM DATE MARK
-0DF4 ; [*03D1.0020.0002] # SINHALA PUNCTUATION KUNDDALIYA
-0E4F ; [*03D2.0020.0002] # THAI CHARACTER FONGMAN
-0E5A ; [*03D3.0020.0002] # THAI CHARACTER ANGKHANKHU
-0E5B ; [*03D4.0020.0002] # THAI CHARACTER KHOMUT
-0F01 ; [*04E9.0020.0002] # TIBETAN MARK GTER YIG MGO TRUNCATED A
-0F02 ; [*04EA.0020.0002] # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
-0F03 ; [*04EB.0020.0002] # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04 ; [*03D7.0020.0002] # TIBETAN MARK INITIAL YIG MGO MDUN MA
-0F05 ; [*03D8.0020.0002] # TIBETAN MARK CLOSING YIG MGO SGAB MA
-0F06 ; [*03D9.0020.0002] # TIBETAN MARK CARET YIG MGO PHUR SHAD MA
-0F07 ; [*03DA.0020.0002] # TIBETAN MARK YIG MGO TSHEG SHAD MA
-0F08 ; [*03DB.0020.0002] # TIBETAN MARK SBRUL SHAD
-0F09 ; [*03DC.0020.0002] # TIBETAN MARK BSKUR YIG MGO
-0F0A ; [*03DD.0020.0002] # TIBETAN MARK BKA- SHOG YIG MGO
-0F0B ; [*03E0.0020.0002] # TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C ; [*03E0.0020.001B] # TIBETAN MARK DELIMITER TSHEG BSTAR
-0F0D ; [*03E1.0020.0002] # TIBETAN MARK SHAD
-0F0E ; [*03E2.0020.0002] # TIBETAN MARK NYIS SHAD
-0F0F ; [*03E3.0020.0002] # TIBETAN MARK TSHEG SHAD
-0F10 ; [*03E4.0020.0002] # TIBETAN MARK NYIS TSHEG SHAD
-0F11 ; [*03E5.0020.0002] # TIBETAN MARK RIN CHEN SPUNGS SHAD
-0F12 ; [*03E6.0020.0002] # TIBETAN MARK RGYA GRAM SHAD
-0F13 ; [*04EC.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0970 ; [*03D2.0020.0002] # DEVANAGARI ABBREVIATION SIGN
+09F4 ; [*1A26.0020.0002] # BENGALI CURRENCY NUMERATOR ONE
+09F5 ; [*1A27.0020.0002] # BENGALI CURRENCY NUMERATOR TWO
+09F6 ; [*1A28.0020.0002] # BENGALI CURRENCY NUMERATOR THREE
+09F7 ; [*1A29.0020.0002] # BENGALI CURRENCY NUMERATOR FOUR
+09F8 ; [*1A2A.0020.0002] # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+09F9 ; [*1A2B.0020.0002] # BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA ; [*04F4.0020.0002] # BENGALI ISSHAR
+0AF0 ; [*03D7.0020.0002] # GUJARATI ABBREVIATION SIGN
+0B70 ; [*04F5.0020.0002] # ORIYA ISSHAR
+0B72 ; [*1A2C.0020.0002] # ORIYA FRACTION ONE QUARTER
+0B73 ; [*1A2D.0020.0002] # ORIYA FRACTION ONE HALF
+0B74 ; [*1A2E.0020.0002] # ORIYA FRACTION THREE QUARTERS
+0B75 ; [*1A2F.0020.0002] # ORIYA FRACTION ONE SIXTEENTH
+0B76 ; [*1A30.0020.0002] # ORIYA FRACTION ONE EIGHTH
+0B77 ; [*1A31.0020.0002] # ORIYA FRACTION THREE SIXTEENTHS
+0BF0 ; [*1A38.0020.0002] # TAMIL NUMBER TEN
+0BF1 ; [*1A39.0020.0002] # TAMIL NUMBER ONE HUNDRED
+0BF2 ; [*1A3A.0020.0002] # TAMIL NUMBER ONE THOUSAND
+0BF3 ; [*04F6.0020.0002] # TAMIL DAY SIGN
+0BF4 ; [*04F7.0020.0002] # TAMIL MONTH SIGN
+0BF5 ; [*04F8.0020.0002] # TAMIL YEAR SIGN
+0BF6 ; [*04F9.0020.0002] # TAMIL DEBIT SIGN
+0BF7 ; [*04FA.0020.0002] # TAMIL CREDIT SIGN
+0BF8 ; [*04FB.0020.0002] # TAMIL AS ABOVE SIGN
+0BFA ; [*04FC.0020.0002] # TAMIL NUMBER SIGN
+0C7F ; [*04FD.0020.0002] # TELUGU SIGN TUUMU
+0D70 ; [*1A3B.0020.0002] # MALAYALAM NUMBER TEN
+0D71 ; [*1A3C.0020.0002] # MALAYALAM NUMBER ONE HUNDRED
+0D72 ; [*1A3D.0020.0002] # MALAYALAM NUMBER ONE THOUSAND
+0D73 ; [*1A3E.0020.0002] # MALAYALAM FRACTION ONE QUARTER
+0D74 ; [*1A3F.0020.0002] # MALAYALAM FRACTION ONE HALF
+0D75 ; [*1A40.0020.0002] # MALAYALAM FRACTION THREE QUARTERS
+0D79 ; [*04FE.0020.0002] # MALAYALAM DATE MARK
+0DF4 ; [*03D8.0020.0002] # SINHALA PUNCTUATION KUNDDALIYA
+0E4F ; [*03D9.0020.0002] # THAI CHARACTER FONGMAN
+0E5A ; [*03DA.0020.0002] # THAI CHARACTER ANGKHANKHU
+0E5B ; [*03DB.0020.0002] # THAI CHARACTER KHOMUT
+0F01 ; [*0506.0020.0002] # TIBETAN MARK GTER YIG MGO TRUNCATED A
+0F02 ; [*0507.0020.0002] # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA
+0F03 ; [*0508.0020.0002] # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04 ; [*03DE.0020.0002] # TIBETAN MARK INITIAL YIG MGO MDUN MA
+0F05 ; [*03DF.0020.0002] # TIBETAN MARK CLOSING YIG MGO SGAB MA
+0F06 ; [*03E0.0020.0002] # TIBETAN MARK CARET YIG MGO PHUR SHAD MA
+0F07 ; [*03E1.0020.0002] # TIBETAN MARK YIG MGO TSHEG SHAD MA
+0F08 ; [*03E2.0020.0002] # TIBETAN MARK SBRUL SHAD
+0F09 ; [*03E3.0020.0002] # TIBETAN MARK BSKUR YIG MGO
+0F0A ; [*03E4.0020.0002] # TIBETAN MARK BKA- SHOG YIG MGO
+0F0B ; [*03E7.0020.0002] # TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C ; [*03E7.0020.001B] # TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D ; [*03E8.0020.0002] # TIBETAN MARK SHAD
+0F0E ; [*03E9.0020.0002] # TIBETAN MARK NYIS SHAD
+0F0F ; [*03EA.0020.0002] # TIBETAN MARK TSHEG SHAD
+0F10 ; [*03EB.0020.0002] # TIBETAN MARK NYIS TSHEG SHAD
+0F11 ; [*03EC.0020.0002] # TIBETAN MARK RIN CHEN SPUNGS SHAD
+0F12 ; [*03ED.0020.0002] # TIBETAN MARK RGYA GRAM SHAD
+0F13 ; [*0509.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
0F14 ; [*0257.0020.0002] # TIBETAN MARK GTER TSHEG
-0F15 ; [*04ED.0020.0002] # TIBETAN LOGOTYPE SIGN CHAD RTAGS
-0F16 ; [*04EE.0020.0002] # TIBETAN LOGOTYPE SIGN LHAG RTAGS
-0F17 ; [*04EF.0020.0002] # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F15 ; [*050A.0020.0002] # TIBETAN LOGOTYPE SIGN CHAD RTAGS
+0F16 ; [*050B.0020.0002] # TIBETAN LOGOTYPE SIGN LHAG RTAGS
+0F17 ; [*050C.0020.0002] # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
0F18 ; [.0000.0000.0000] # TIBETAN ASTROLOGICAL SIGN -KHYUD PA
0F19 ; [.0000.0000.0000] # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A ; [*04F0.0020.0002] # TIBETAN SIGN RDEL DKAR GCIG
-0F1B ; [*04F1.0020.0002] # TIBETAN SIGN RDEL DKAR GNYIS
-0F1C ; [*04F2.0020.0002] # TIBETAN SIGN RDEL DKAR GSUM
-0F1D ; [*04F3.0020.0002] # TIBETAN SIGN RDEL NAG GCIG
-0F1E ; [*04F4.0020.0002] # TIBETAN SIGN RDEL NAG GNYIS
-0F1F ; [*04F5.0020.0002] # TIBETAN SIGN RDEL DKAR RDEL NAG
-0F34 ; [*04F6.0020.0002] # TIBETAN MARK BSDUS RTAGS
+0F1A ; [*050D.0020.0002] # TIBETAN SIGN RDEL DKAR GCIG
+0F1B ; [*050E.0020.0002] # TIBETAN SIGN RDEL DKAR GNYIS
+0F1C ; [*050F.0020.0002] # TIBETAN SIGN RDEL DKAR GSUM
+0F1D ; [*0510.0020.0002] # TIBETAN SIGN RDEL NAG GCIG
+0F1E ; [*0511.0020.0002] # TIBETAN SIGN RDEL NAG GNYIS
+0F1F ; [*0512.0020.0002] # TIBETAN SIGN RDEL DKAR RDEL NAG
+0F34 ; [*0513.0020.0002] # TIBETAN MARK BSDUS RTAGS
0F35 ; [.0000.0000.0000] # TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36 ; [*04F7.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F36 ; [*0514.0020.0002] # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
0F37 ; [.0000.0000.0000] # TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38 ; [*04F8.0020.0002] # TIBETAN MARK CHE MGO
-0F3A ; [*0310.0020.0002] # TIBETAN MARK GUG RTAGS GYON
-0F3B ; [*0311.0020.0002] # TIBETAN MARK GUG RTAGS GYAS
-0F3C ; [*0312.0020.0002] # TIBETAN MARK ANG KHANG GYON
-0F3D ; [*0313.0020.0002] # TIBETAN MARK ANG KHANG GYAS
+0F38 ; [*0515.0020.0002] # TIBETAN MARK CHE MGO
+0F3A ; [*0316.0020.0002] # TIBETAN MARK GUG RTAGS GYON
+0F3B ; [*0317.0020.0002] # TIBETAN MARK GUG RTAGS GYAS
+0F3C ; [*0318.0020.0002] # TIBETAN MARK ANG KHANG GYON
+0F3D ; [*0319.0020.0002] # TIBETAN MARK ANG KHANG GYAS
0F3E ; [.0000.0000.0000] # TIBETAN SIGN YAR TSHES
0F3F ; [.0000.0000.0000] # TIBETAN SIGN MAR TSHES
0F82 ; [.0000.0000.0000] # TIBETAN SIGN NYI ZLA NAA DA
0F83 ; [.0000.0000.0000] # TIBETAN SIGN SNA LDAN
-0F85 ; [*03E7.0020.0002] # TIBETAN MARK PALUTA
+0F85 ; [*03EE.0020.0002] # TIBETAN MARK PALUTA
0F86 ; [.0000.0000.0000] # TIBETAN SIGN LCI RTAGS
0F87 ; [.0000.0000.0000] # TIBETAN SIGN YANG RTAGS
-0FBE ; [*04F9.0020.0002] # TIBETAN KU RU KHA
-0FBF ; [*04FA.0020.0002] # TIBETAN KU RU KHA BZHI MIG CAN
-0FC0 ; [*04FB.0020.0002] # TIBETAN CANTILLATION SIGN HEAVY BEAT
-0FC1 ; [*04FC.0020.0002] # TIBETAN CANTILLATION SIGN LIGHT BEAT
-0FC2 ; [*04FD.0020.0002] # TIBETAN CANTILLATION SIGN CANG TE-U
-0FC3 ; [*04FE.0020.0002] # TIBETAN CANTILLATION SIGN SBUB -CHAL
-0FC4 ; [*04FF.0020.0002] # TIBETAN SYMBOL DRIL BU
-0FC5 ; [*0500.0020.0002] # TIBETAN SYMBOL RDO RJE
+0FBE ; [*0516.0020.0002] # TIBETAN KU RU KHA
+0FBF ; [*0517.0020.0002] # TIBETAN KU RU KHA BZHI MIG CAN
+0FC0 ; [*0518.0020.0002] # TIBETAN CANTILLATION SIGN HEAVY BEAT
+0FC1 ; [*0519.0020.0002] # TIBETAN CANTILLATION SIGN LIGHT BEAT
+0FC2 ; [*051A.0020.0002] # TIBETAN CANTILLATION SIGN CANG TE-U
+0FC3 ; [*051B.0020.0002] # TIBETAN CANTILLATION SIGN SBUB -CHAL
+0FC4 ; [*051C.0020.0002] # TIBETAN SYMBOL DRIL BU
+0FC5 ; [*051D.0020.0002] # TIBETAN SYMBOL RDO RJE
0FC6 ; [.0000.0000.0000] # TIBETAN SYMBOL PADMA GDAN
-0FC7 ; [*0501.0020.0002] # TIBETAN SYMBOL RDO RJE RGYA GRAM
-0FC8 ; [*0502.0020.0002] # TIBETAN SYMBOL PHUR PA
-0FC9 ; [*0503.0020.0002] # TIBETAN SYMBOL NOR BU
-0FCA ; [*0504.0020.0002] # TIBETAN SYMBOL NOR BU NYIS -KHYIL
-0FCB ; [*0505.0020.0002] # TIBETAN SYMBOL NOR BU GSUM -KHYIL
-0FCC ; [*0506.0020.0002] # TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCE ; [*0507.0020.0002] # TIBETAN SIGN RDEL NAG RDEL DKAR
-0FCF ; [*0508.0020.0002] # TIBETAN SIGN RDEL NAG GSUM
-0FD0 ; [*03DE.0020.0002] # TIBETAN MARK BSKA- SHOG GI MGO RGYAN
-0FD1 ; [*03DF.0020.0002] # TIBETAN MARK MNYAM YIG GI MGO RGYAN
-0FD2 ; [*03E8.0020.0002] # TIBETAN MARK NYIS TSHEG
-0FD3 ; [*03E9.0020.0002] # TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
-0FD4 ; [*03EA.0020.0002] # TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
-0FD5 ; [*0509.0020.0002] # RIGHT-FACING SVASTI SIGN
-0FD6 ; [*050A.0020.0002] # LEFT-FACING SVASTI SIGN
-0FD7 ; [*050B.0020.0002] # RIGHT-FACING SVASTI SIGN WITH DOTS
-0FD8 ; [*050C.0020.0002] # LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9 ; [*03EB.0020.0002] # TIBETAN MARK LEADING MCHAN RTAGS
-0FDA ; [*03EC.0020.0002] # TIBETAN MARK TRAILING MCHAN RTAGS
+0FC7 ; [*051E.0020.0002] # TIBETAN SYMBOL RDO RJE RGYA GRAM
+0FC8 ; [*051F.0020.0002] # TIBETAN SYMBOL PHUR PA
+0FC9 ; [*0520.0020.0002] # TIBETAN SYMBOL NOR BU
+0FCA ; [*0521.0020.0002] # TIBETAN SYMBOL NOR BU NYIS -KHYIL
+0FCB ; [*0522.0020.0002] # TIBETAN SYMBOL NOR BU GSUM -KHYIL
+0FCC ; [*0523.0020.0002] # TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE ; [*0524.0020.0002] # TIBETAN SIGN RDEL NAG RDEL DKAR
+0FCF ; [*0525.0020.0002] # TIBETAN SIGN RDEL NAG GSUM
+0FD0 ; [*03E5.0020.0002] # TIBETAN MARK BSKA- SHOG GI MGO RGYAN
+0FD1 ; [*03E6.0020.0002] # TIBETAN MARK MNYAM YIG GI MGO RGYAN
+0FD2 ; [*03EF.0020.0002] # TIBETAN MARK NYIS TSHEG
+0FD3 ; [*03F0.0020.0002] # TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
+0FD4 ; [*03F1.0020.0002] # TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5 ; [*0526.0020.0002] # RIGHT-FACING SVASTI SIGN
+0FD6 ; [*0527.0020.0002] # LEFT-FACING SVASTI SIGN
+0FD7 ; [*0528.0020.0002] # RIGHT-FACING SVASTI SIGN WITH DOTS
+0FD8 ; [*0529.0020.0002] # LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9 ; [*03F2.0020.0002] # TIBETAN MARK LEADING MCHAN RTAGS
+0FDA ; [*03F3.0020.0002] # TIBETAN MARK TRAILING MCHAN RTAGS
104A ; [*0296.0020.0002] # MYANMAR SIGN LITTLE SECTION
104B ; [*0297.0020.0002] # MYANMAR SIGN SECTION
-104C ; [*03F0.0020.0002] # MYANMAR SYMBOL LOCATIVE
-104D ; [*03F1.0020.0002] # MYANMAR SYMBOL COMPLETED
-104E ; [*03F2.0020.0002] # MYANMAR SYMBOL AFOREMENTIONED
-104F ; [*03F3.0020.0002] # MYANMAR SYMBOL GENITIVE
-109E ; [*050E.0020.0002] # MYANMAR SYMBOL SHAN ONE
-109F ; [*050F.0020.0002] # MYANMAR SYMBOL SHAN EXCLAMATION
-10FB ; [*02BD.0020.0002] # GEORGIAN PARAGRAPH SEPARATOR
-1360 ; [*02BE.0020.0002] # ETHIOPIC SECTION MARK
+104C ; [*03F7.0020.0002] # MYANMAR SYMBOL LOCATIVE
+104D ; [*03F8.0020.0002] # MYANMAR SYMBOL COMPLETED
+104E ; [*03F9.0020.0002] # MYANMAR SYMBOL AFOREMENTIONED
+104F ; [*03FA.0020.0002] # MYANMAR SYMBOL GENITIVE
+109E ; [*052B.0020.0002] # MYANMAR SYMBOL SHAN ONE
+109F ; [*052C.0020.0002] # MYANMAR SYMBOL SHAN EXCLAMATION
+10FB ; [*02BF.0020.0002] # GEORGIAN PARAGRAPH SEPARATOR
+1360 ; [*02C0.0020.0002] # ETHIOPIC SECTION MARK
1361 ; [*0250.0020.0002] # ETHIOPIC WORDSPACE
1362 ; [*0279.0020.0002] # ETHIOPIC FULL STOP
1363 ; [*0251.0020.0002] # ETHIOPIC COMMA
@@ -888,34 +888,34 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
1365 ; [*0253.0020.0002] # ETHIOPIC COLON
1366 ; [*0254.0020.0002] # ETHIOPIC PREFACE COLON
1367 ; [*026A.0020.0002] # ETHIOPIC QUESTION MARK
-1368 ; [*02BF.0020.0002] # ETHIOPIC PARAGRAPH SEPARATOR
-1372 ; [*17CC.0020.0002] # ETHIOPIC NUMBER TEN
-1373 ; [*17CD.0020.0002] # ETHIOPIC NUMBER TWENTY
-1374 ; [*17CE.0020.0002] # ETHIOPIC NUMBER THIRTY
-1375 ; [*17CF.0020.0002] # ETHIOPIC NUMBER FORTY
-1376 ; [*17D0.0020.0002] # ETHIOPIC NUMBER FIFTY
-1377 ; [*17D1.0020.0002] # ETHIOPIC NUMBER SIXTY
-1378 ; [*17D2.0020.0002] # ETHIOPIC NUMBER SEVENTY
-1379 ; [*17D3.0020.0002] # ETHIOPIC NUMBER EIGHTY
-137A ; [*17D4.0020.0002] # ETHIOPIC NUMBER NINETY
-137B ; [*17D5.0020.0002] # ETHIOPIC NUMBER HUNDRED
-137C ; [*17D6.0020.0002] # ETHIOPIC NUMBER TEN THOUSAND
-1390 ; [*048A.0020.0002] # ETHIOPIC TONAL MARK YIZET
-1391 ; [*048B.0020.0002] # ETHIOPIC TONAL MARK DERET
-1392 ; [*048C.0020.0002] # ETHIOPIC TONAL MARK RIKRIK
-1393 ; [*048D.0020.0002] # ETHIOPIC TONAL MARK SHORT RIKRIK
-1394 ; [*048E.0020.0002] # ETHIOPIC TONAL MARK DIFAT
-1395 ; [*048F.0020.0002] # ETHIOPIC TONAL MARK KENAT
-1396 ; [*0490.0020.0002] # ETHIOPIC TONAL MARK CHIRET
-1397 ; [*0491.0020.0002] # ETHIOPIC TONAL MARK HIDET
-1398 ; [*0492.0020.0002] # ETHIOPIC TONAL MARK DERET-HIDET
-1399 ; [*0493.0020.0002] # ETHIOPIC TONAL MARK KURT
+1368 ; [*02C1.0020.0002] # ETHIOPIC PARAGRAPH SEPARATOR
+1372 ; [*1A41.0020.0002] # ETHIOPIC NUMBER TEN
+1373 ; [*1A42.0020.0002] # ETHIOPIC NUMBER TWENTY
+1374 ; [*1A43.0020.0002] # ETHIOPIC NUMBER THIRTY
+1375 ; [*1A44.0020.0002] # ETHIOPIC NUMBER FORTY
+1376 ; [*1A45.0020.0002] # ETHIOPIC NUMBER FIFTY
+1377 ; [*1A46.0020.0002] # ETHIOPIC NUMBER SIXTY
+1378 ; [*1A47.0020.0002] # ETHIOPIC NUMBER SEVENTY
+1379 ; [*1A48.0020.0002] # ETHIOPIC NUMBER EIGHTY
+137A ; [*1A49.0020.0002] # ETHIOPIC NUMBER NINETY
+137B ; [*1A4A.0020.0002] # ETHIOPIC NUMBER HUNDRED
+137C ; [*1A4B.0020.0002] # ETHIOPIC NUMBER TEN THOUSAND
+1390 ; [*04A7.0020.0002] # ETHIOPIC TONAL MARK YIZET
+1391 ; [*04A8.0020.0002] # ETHIOPIC TONAL MARK DERET
+1392 ; [*04A9.0020.0002] # ETHIOPIC TONAL MARK RIKRIK
+1393 ; [*04AA.0020.0002] # ETHIOPIC TONAL MARK SHORT RIKRIK
+1394 ; [*04AB.0020.0002] # ETHIOPIC TONAL MARK DIFAT
+1395 ; [*04AC.0020.0002] # ETHIOPIC TONAL MARK KENAT
+1396 ; [*04AD.0020.0002] # ETHIOPIC TONAL MARK CHIRET
+1397 ; [*04AE.0020.0002] # ETHIOPIC TONAL MARK HIDET
+1398 ; [*04AF.0020.0002] # ETHIOPIC TONAL MARK DERET-HIDET
+1399 ; [*04B0.0020.0002] # ETHIOPIC TONAL MARK KURT
1400 ; [*020F.0020.0002] # CANADIAN SYLLABICS HYPHEN
-166D ; [*0400.0020.0002] # CANADIAN SYLLABICS CHI SIGN
+166D ; [*0407.0020.0002] # CANADIAN SYLLABICS CHI SIGN
166E ; [*027C.0020.0002] # CANADIAN SYLLABICS FULL STOP
1680 ; [*0209.0020.0004] # OGHAM SPACE MARK
-169B ; [*0314.0020.0002] # OGHAM FEATHER MARK
-169C ; [*0315.0020.0002] # OGHAM REVERSED FEATHER MARK
+169B ; [*031A.0020.0002] # OGHAM FEATHER MARK
+169C ; [*031B.0020.0002] # OGHAM REVERSED FEATHER MARK
16EB ; [*025B.0020.0002] # RUNIC SINGLE PUNCTUATION
16EC ; [*025C.0020.0002] # RUNIC MULTIPLE PUNCTUATION
16ED ; [*025D.0020.0002] # RUNIC CROSS PUNCTUATION
@@ -927,10 +927,10 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
17D4 ; [*0298.0020.0002] # KHMER SIGN KHAN
17D5 ; [*0299.0020.0002] # KHMER SIGN BARIYOOSAN
17D6 ; [*0258.0020.0002] # KHMER SIGN CAMNUC PII KUUH
-17D8 ; [*03F4.0020.0002] # KHMER SIGN BEYYAL
-17D9 ; [*03F5.0020.0002] # KHMER SIGN PHNAEK MUAN
-17DA ; [*03F6.0020.0002] # KHMER SIGN KOOMUUT
-1800 ; [*03CB.0020.0002] # MONGOLIAN BIRGA
+17D8 ; [*03FB.0020.0002] # KHMER SIGN BEYYAL
+17D9 ; [*03FC.0020.0002] # KHMER SIGN PHNAEK MUAN
+17DA ; [*03FD.0020.0002] # KHMER SIGN KOOMUUT
+1800 ; [*03D1.0020.0002] # MONGOLIAN BIRGA
1801 ; [*0275.0020.0002] # MONGOLIAN ELLIPSIS
1802 ; [*022B.0020.0002] # MONGOLIAN COMMA
1803 ; [*027A.0020.0002] # MONGOLIAN FULL STOP
@@ -941,74 +941,74 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
1808 ; [*022C.0020.0002] # MONGOLIAN MANCHU COMMA
1809 ; [*027B.0020.0002] # MONGOLIAN MANCHU FULL STOP
180A ; [.0000.0000.0000] # MONGOLIAN NIRUGU
-1940 ; [*050D.0020.0002] # LIMBU SIGN LOO
+1940 ; [*052A.0020.0002] # LIMBU SIGN LOO
1944 ; [*0263.0020.0002] # LIMBU EXCLAMATION MARK
1945 ; [*026B.0020.0002] # LIMBU QUESTION MARK
-19E0 ; [*0513.0020.0002] # KHMER SYMBOL PATHAMASAT
-19E1 ; [*0514.0020.0002] # KHMER SYMBOL MUOY KOET
-19E2 ; [*0515.0020.0002] # KHMER SYMBOL PII KOET
-19E3 ; [*0516.0020.0002] # KHMER SYMBOL BEI KOET
-19E4 ; [*0517.0020.0002] # KHMER SYMBOL BUON KOET
-19E5 ; [*0518.0020.0002] # KHMER SYMBOL PRAM KOET
-19E6 ; [*0519.0020.0002] # KHMER SYMBOL PRAM-MUOY KOET
-19E7 ; [*051A.0020.0002] # KHMER SYMBOL PRAM-PII KOET
-19E8 ; [*051B.0020.0002] # KHMER SYMBOL PRAM-BEI KOET
-19E9 ; [*051C.0020.0002] # KHMER SYMBOL PRAM-BUON KOET
-19EA ; [*051D.0020.0002] # KHMER SYMBOL DAP KOET
-19EB ; [*051E.0020.0002] # KHMER SYMBOL DAP-MUOY KOET
-19EC ; [*051F.0020.0002] # KHMER SYMBOL DAP-PII KOET
-19ED ; [*0520.0020.0002] # KHMER SYMBOL DAP-BEI KOET
-19EE ; [*0521.0020.0002] # KHMER SYMBOL DAP-BUON KOET
-19EF ; [*0522.0020.0002] # KHMER SYMBOL DAP-PRAM KOET
-19F0 ; [*0523.0020.0002] # KHMER SYMBOL TUTEYASAT
-19F1 ; [*0524.0020.0002] # KHMER SYMBOL MUOY ROC
-19F2 ; [*0525.0020.0002] # KHMER SYMBOL PII ROC
-19F3 ; [*0526.0020.0002] # KHMER SYMBOL BEI ROC
-19F4 ; [*0527.0020.0002] # KHMER SYMBOL BUON ROC
-19F5 ; [*0528.0020.0002] # KHMER SYMBOL PRAM ROC
-19F6 ; [*0529.0020.0002] # KHMER SYMBOL PRAM-MUOY ROC
-19F7 ; [*052A.0020.0002] # KHMER SYMBOL PRAM-PII ROC
-19F8 ; [*052B.0020.0002] # KHMER SYMBOL PRAM-BEI ROC
-19F9 ; [*052C.0020.0002] # KHMER SYMBOL PRAM-BUON ROC
-19FA ; [*052D.0020.0002] # KHMER SYMBOL DAP ROC
-19FB ; [*052E.0020.0002] # KHMER SYMBOL DAP-MUOY ROC
-19FC ; [*052F.0020.0002] # KHMER SYMBOL DAP-PII ROC
-19FD ; [*0530.0020.0002] # KHMER SYMBOL DAP-BEI ROC
-19FE ; [*0531.0020.0002] # KHMER SYMBOL DAP-BUON ROC
-19FF ; [*0532.0020.0002] # KHMER SYMBOL DAP-PRAM ROC
-1A1E ; [*02C0.0020.0002] # BUGINESE PALLAWA
-1A1F ; [*02C1.0020.0002] # BUGINESE END OF SECTION
+19E0 ; [*0531.0020.0002] # KHMER SYMBOL PATHAMASAT
+19E1 ; [*0532.0020.0002] # KHMER SYMBOL MUOY KOET
+19E2 ; [*0533.0020.0002] # KHMER SYMBOL PII KOET
+19E3 ; [*0534.0020.0002] # KHMER SYMBOL BEI KOET
+19E4 ; [*0535.0020.0002] # KHMER SYMBOL BUON KOET
+19E5 ; [*0536.0020.0002] # KHMER SYMBOL PRAM KOET
+19E6 ; [*0537.0020.0002] # KHMER SYMBOL PRAM-MUOY KOET
+19E7 ; [*0538.0020.0002] # KHMER SYMBOL PRAM-PII KOET
+19E8 ; [*0539.0020.0002] # KHMER SYMBOL PRAM-BEI KOET
+19E9 ; [*053A.0020.0002] # KHMER SYMBOL PRAM-BUON KOET
+19EA ; [*053B.0020.0002] # KHMER SYMBOL DAP KOET
+19EB ; [*053C.0020.0002] # KHMER SYMBOL DAP-MUOY KOET
+19EC ; [*053D.0020.0002] # KHMER SYMBOL DAP-PII KOET
+19ED ; [*053E.0020.0002] # KHMER SYMBOL DAP-BEI KOET
+19EE ; [*053F.0020.0002] # KHMER SYMBOL DAP-BUON KOET
+19EF ; [*0540.0020.0002] # KHMER SYMBOL DAP-PRAM KOET
+19F0 ; [*0541.0020.0002] # KHMER SYMBOL TUTEYASAT
+19F1 ; [*0542.0020.0002] # KHMER SYMBOL MUOY ROC
+19F2 ; [*0543.0020.0002] # KHMER SYMBOL PII ROC
+19F3 ; [*0544.0020.0002] # KHMER SYMBOL BEI ROC
+19F4 ; [*0545.0020.0002] # KHMER SYMBOL BUON ROC
+19F5 ; [*0546.0020.0002] # KHMER SYMBOL PRAM ROC
+19F6 ; [*0547.0020.0002] # KHMER SYMBOL PRAM-MUOY ROC
+19F7 ; [*0548.0020.0002] # KHMER SYMBOL PRAM-PII ROC
+19F8 ; [*0549.0020.0002] # KHMER SYMBOL PRAM-BEI ROC
+19F9 ; [*054A.0020.0002] # KHMER SYMBOL PRAM-BUON ROC
+19FA ; [*054B.0020.0002] # KHMER SYMBOL DAP ROC
+19FB ; [*054C.0020.0002] # KHMER SYMBOL DAP-MUOY ROC
+19FC ; [*054D.0020.0002] # KHMER SYMBOL DAP-PII ROC
+19FD ; [*054E.0020.0002] # KHMER SYMBOL DAP-BEI ROC
+19FE ; [*054F.0020.0002] # KHMER SYMBOL DAP-BUON ROC
+19FF ; [*0550.0020.0002] # KHMER SYMBOL DAP-PRAM ROC
+1A1E ; [*02C2.0020.0002] # BUGINESE PALLAWA
+1A1F ; [*02C3.0020.0002] # BUGINESE END OF SECTION
1A7F ; [.0000.0000.0000] # TAI THAM COMBINING CRYPTOGRAMMIC DOT
-1AA0 ; [*03F7.0020.0002] # TAI THAM SIGN WIANG
-1AA1 ; [*03F8.0020.0002] # TAI THAM SIGN WIANGWAAK
-1AA2 ; [*03F9.0020.0002] # TAI THAM SIGN SAWAN
-1AA3 ; [*03FA.0020.0002] # TAI THAM SIGN KEOW
-1AA4 ; [*03FB.0020.0002] # TAI THAM SIGN HOY
-1AA5 ; [*03FC.0020.0002] # TAI THAM SIGN DOKMAI
-1AA6 ; [*03FD.0020.0002] # TAI THAM SIGN REVERSED ROTATED RANA
+1AA0 ; [*03FE.0020.0002] # TAI THAM SIGN WIANG
+1AA1 ; [*03FF.0020.0002] # TAI THAM SIGN WIANGWAAK
+1AA2 ; [*0400.0020.0002] # TAI THAM SIGN SAWAN
+1AA3 ; [*0401.0020.0002] # TAI THAM SIGN KEOW
+1AA4 ; [*0402.0020.0002] # TAI THAM SIGN HOY
+1AA5 ; [*0403.0020.0002] # TAI THAM SIGN DOKMAI
+1AA6 ; [*0404.0020.0002] # TAI THAM SIGN REVERSED ROTATED RANA
1AA8 ; [*029A.0020.0002] # TAI THAM SIGN KAAN
1AA9 ; [*029B.0020.0002] # TAI THAM SIGN KAANKUU
1AAA ; [*029C.0020.0002] # TAI THAM SIGN SATKAAN
1AAB ; [*029D.0020.0002] # TAI THAM SIGN SATKAANKUU
-1AAC ; [*03FE.0020.0002] # TAI THAM SIGN HANG
-1AAD ; [*03FF.0020.0002] # TAI THAM SIGN CAANG
-1B5A ; [*02C2.0020.0002] # BALINESE PANTI
-1B5B ; [*02C3.0020.0002] # BALINESE PAMADA
+1AAC ; [*0405.0020.0002] # TAI THAM SIGN HANG
+1AAD ; [*0406.0020.0002] # TAI THAM SIGN CAANG
+1B5A ; [*02C4.0020.0002] # BALINESE PANTI
+1B5B ; [*02C5.0020.0002] # BALINESE PAMADA
1B5C ; [*027D.0020.0002] # BALINESE WINDU
1B5D ; [*0259.0020.0002] # BALINESE CARIK PAMUNGKAH
1B5E ; [*029E.0020.0002] # BALINESE CARIK SIKI
1B5F ; [*029F.0020.0002] # BALINESE CARIK PAREREN
1B60 ; [*0210.0020.0002] # BALINESE PAMENENG
-1B61 ; [*0533.0020.0002] # BALINESE MUSICAL SYMBOL DONG
-1B62 ; [*0534.0020.0002] # BALINESE MUSICAL SYMBOL DENG
-1B63 ; [*0535.0020.0002] # BALINESE MUSICAL SYMBOL DUNG
-1B64 ; [*0536.0020.0002] # BALINESE MUSICAL SYMBOL DANG
-1B65 ; [*0537.0020.0002] # BALINESE MUSICAL SYMBOL DANG SURANG
-1B66 ; [*0538.0020.0002] # BALINESE MUSICAL SYMBOL DING
-1B67 ; [*0539.0020.0002] # BALINESE MUSICAL SYMBOL DAENG
-1B68 ; [*053A.0020.0002] # BALINESE MUSICAL SYMBOL DEUNG
-1B69 ; [*053B.0020.0002] # BALINESE MUSICAL SYMBOL DAING
-1B6A ; [*053C.0020.0002] # BALINESE MUSICAL SYMBOL DANG GEDE
+1B61 ; [*0551.0020.0002] # BALINESE MUSICAL SYMBOL DONG
+1B62 ; [*0552.0020.0002] # BALINESE MUSICAL SYMBOL DENG
+1B63 ; [*0553.0020.0002] # BALINESE MUSICAL SYMBOL DUNG
+1B64 ; [*0554.0020.0002] # BALINESE MUSICAL SYMBOL DANG
+1B65 ; [*0555.0020.0002] # BALINESE MUSICAL SYMBOL DANG SURANG
+1B66 ; [*0556.0020.0002] # BALINESE MUSICAL SYMBOL DING
+1B67 ; [*0557.0020.0002] # BALINESE MUSICAL SYMBOL DAENG
+1B68 ; [*0558.0020.0002] # BALINESE MUSICAL SYMBOL DEUNG
+1B69 ; [*0559.0020.0002] # BALINESE MUSICAL SYMBOL DAING
+1B6A ; [*055A.0020.0002] # BALINESE MUSICAL SYMBOL DANG GEDE
1B6B ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING TEGEH
1B6C ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING ENDEP
1B6D ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING KEMPUL
@@ -1018,34 +1018,34 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
1B71 ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN
1B72 ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING BENDE
1B73 ; [.0000.0000.0000] # BALINESE MUSICAL SYMBOL COMBINING GONG
-1B74 ; [*053D.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG
-1B75 ; [*053E.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG
-1B76 ; [*053F.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK
-1B77 ; [*0540.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK
-1B78 ; [*0541.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG
-1B79 ; [*0542.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG
-1B7A ; [*0543.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK
-1B7B ; [*0544.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
-1B7C ; [*0545.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1BFC ; [*040C.0020.0002] # BATAK SYMBOL BINDU NA METEK
-1BFD ; [*040D.0020.0002] # BATAK SYMBOL BINDU PINARBORAS
-1BFE ; [*040E.0020.0002] # BATAK SYMBOL BINDU JUDUL
-1BFF ; [*040F.0020.0002] # BATAK SYMBOL BINDU PANGOLAT
+1B74 ; [*055B.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG
+1B75 ; [*055C.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG
+1B76 ; [*055D.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK
+1B77 ; [*055E.0020.0002] # BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK
+1B78 ; [*055F.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG
+1B79 ; [*0560.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG
+1B7A ; [*0561.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK
+1B7B ; [*0562.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK
+1B7C ; [*0563.0020.0002] # BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1BFC ; [*0413.0020.0002] # BATAK SYMBOL BINDU NA METEK
+1BFD ; [*0414.0020.0002] # BATAK SYMBOL BINDU PINARBORAS
+1BFE ; [*0415.0020.0002] # BATAK SYMBOL BINDU JUDUL
+1BFF ; [*0416.0020.0002] # BATAK SYMBOL BINDU PANGOLAT
1C3B ; [*028F.0020.0002] # LEPCHA PUNCTUATION TA-ROL
1C3C ; [*0290.0020.0002] # LEPCHA PUNCTUATION NYET THYOOM TA-ROL
-1C3D ; [*03ED.0020.0002] # LEPCHA PUNCTUATION CER-WA
-1C3E ; [*03EE.0020.0002] # LEPCHA PUNCTUATION TSHOOK CER-WA
-1C3F ; [*03EF.0020.0002] # LEPCHA PUNCTUATION TSHOOK
-1C7E ; [*02B9.0020.0002] # OL CHIKI PUNCTUATION MUCAAD
-1C7F ; [*02BA.0020.0002] # OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1CC0 ; [*0401.0020.0002] # SUNDANESE PUNCTUATION BINDU SURYA
-1CC1 ; [*0402.0020.0002] # SUNDANESE PUNCTUATION BINDU PANGLONG
-1CC2 ; [*0403.0020.0002] # SUNDANESE PUNCTUATION BINDU PURNAMA
-1CC3 ; [*0404.0020.0002] # SUNDANESE PUNCTUATION BINDU CAKRA
-1CC4 ; [*0405.0020.0002] # SUNDANESE PUNCTUATION BINDU LEU SATANGA
-1CC5 ; [*0406.0020.0002] # SUNDANESE PUNCTUATION BINDU KA SATANGA
-1CC6 ; [*0407.0020.0002] # SUNDANESE PUNCTUATION BINDU DA SATANGA
-1CC7 ; [*0408.0020.0002] # SUNDANESE PUNCTUATION BINDU BA SATANGA
+1C3D ; [*03F4.0020.0002] # LEPCHA PUNCTUATION CER-WA
+1C3E ; [*03F5.0020.0002] # LEPCHA PUNCTUATION TSHOOK CER-WA
+1C3F ; [*03F6.0020.0002] # LEPCHA PUNCTUATION TSHOOK
+1C7E ; [*02BB.0020.0002] # OL CHIKI PUNCTUATION MUCAAD
+1C7F ; [*02BC.0020.0002] # OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1CC0 ; [*0408.0020.0002] # SUNDANESE PUNCTUATION BINDU SURYA
+1CC1 ; [*0409.0020.0002] # SUNDANESE PUNCTUATION BINDU PANGLONG
+1CC2 ; [*040A.0020.0002] # SUNDANESE PUNCTUATION BINDU PURNAMA
+1CC3 ; [*040B.0020.0002] # SUNDANESE PUNCTUATION BINDU CAKRA
+1CC4 ; [*040C.0020.0002] # SUNDANESE PUNCTUATION BINDU LEU SATANGA
+1CC5 ; [*040D.0020.0002] # SUNDANESE PUNCTUATION BINDU KA SATANGA
+1CC6 ; [*040E.0020.0002] # SUNDANESE PUNCTUATION BINDU DA SATANGA
+1CC7 ; [*040F.0020.0002] # SUNDANESE PUNCTUATION BINDU BA SATANGA
1CD0 ; [.0000.0000.0000] # VEDIC TONE KARSHANA
1CD1 ; [.0000.0000.0000] # VEDIC TONE SHARA
1CD2 ; [.0000.0000.0000] # VEDIC TONE PRENKHA
@@ -1074,21 +1074,21 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
1CF4 ; [.0000.0000.0000] # VEDIC TONE CANDRA ABOVE
1CF8 ; [.0000.0000.0000] # VEDIC TONE RING ABOVE
1CF9 ; [.0000.0000.0000] # VEDIC TONE DOUBLE RING ABOVE
-1FBD ; [*0452.0020.0002] # GREEK KORONIS
-1FBF ; [*0452.0020.0002] # GREEK PSILI
-1FC0 ; [*0454.0020.0002] # GREEK PERISPOMENI
-1FC1 ; [*044D.0020.0002][.0000.002A.0002] # GREEK DIALYTIKA AND PERISPOMENI
-1FCD ; [*0452.0020.0002][.0000.0025.0002] # GREEK PSILI AND VARIA
-1FCE ; [*0452.0020.0002][.0000.0024.0002] # GREEK PSILI AND OXIA
-1FCF ; [*0452.0020.0002][.0000.002A.0002] # GREEK PSILI AND PERISPOMENI
-1FDD ; [*0453.0020.0002][.0000.0025.0002] # GREEK DASIA AND VARIA
-1FDE ; [*0453.0020.0002][.0000.0024.0002] # GREEK DASIA AND OXIA
-1FDF ; [*0453.0020.0002][.0000.002A.0002] # GREEK DASIA AND PERISPOMENI
-1FED ; [*044D.0020.0002][.0000.0025.0002] # GREEK DIALYTIKA AND VARIA
-1FEE ; [*044D.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA AND OXIA
-1FEF ; [*0446.0020.0002] # GREEK VARIA
-1FFD ; [*0447.0020.0002] # GREEK OXIA
-1FFE ; [*0453.0020.0002] # GREEK DASIA
+1FBD ; [*046F.0020.0002] # GREEK KORONIS
+1FBF ; [*046F.0020.0002] # GREEK PSILI
+1FC0 ; [*0471.0020.0002] # GREEK PERISPOMENI
+1FC1 ; [*046A.0020.0002][.0000.002A.0002] # GREEK DIALYTIKA AND PERISPOMENI
+1FCD ; [*046F.0020.0002][.0000.0025.0002] # GREEK PSILI AND VARIA
+1FCE ; [*046F.0020.0002][.0000.0024.0002] # GREEK PSILI AND OXIA
+1FCF ; [*046F.0020.0002][.0000.002A.0002] # GREEK PSILI AND PERISPOMENI
+1FDD ; [*0470.0020.0002][.0000.0025.0002] # GREEK DASIA AND VARIA
+1FDE ; [*0470.0020.0002][.0000.0024.0002] # GREEK DASIA AND OXIA
+1FDF ; [*0470.0020.0002][.0000.002A.0002] # GREEK DASIA AND PERISPOMENI
+1FED ; [*046A.0020.0002][.0000.0025.0002] # GREEK DIALYTIKA AND VARIA
+1FEE ; [*046A.0020.0002][.0000.0024.0002] # GREEK DIALYTIKA AND OXIA
+1FEF ; [*0463.0020.0002] # GREEK VARIA
+1FFD ; [*0464.0020.0002] # GREEK OXIA
+1FFE ; [*0470.0020.0002] # GREEK DASIA
2000 ; [*0209.0020.0004] # EN QUAD
2001 ; [*0209.0020.0004] # EM QUAD
2002 ; [*0209.0020.0004] # EN SPACE
@@ -1106,2555 +1106,2561 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
2013 ; [*0215.0020.0002] # EN DASH
2014 ; [*0216.0020.0002] # EM DASH
2015 ; [*0217.0020.0002] # HORIZONTAL BAR
-2016 ; [*0376.0020.0002] # DOUBLE VERTICAL LINE
+2016 ; [*037C.0020.0002] # DOUBLE VERTICAL LINE
2017 ; [*020C.0020.0002] # DOUBLE LOW LINE
-2018 ; [*02F9.0020.0002] # LEFT SINGLE QUOTATION MARK
-2019 ; [*02FA.0020.0002] # RIGHT SINGLE QUOTATION MARK
-201A ; [*02FB.0020.0002] # SINGLE LOW-9 QUOTATION MARK
-201B ; [*02FC.0020.0002] # SINGLE HIGH-REVERSED-9 QUOTATION MARK
-201C ; [*0300.0020.0002] # LEFT DOUBLE QUOTATION MARK
-201D ; [*0301.0020.0002] # RIGHT DOUBLE QUOTATION MARK
-201E ; [*0302.0020.0002] # DOUBLE LOW-9 QUOTATION MARK
-201F ; [*0303.0020.0002] # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020 ; [*0392.0020.0002] # DAGGER
-2021 ; [*0393.0020.0002] # DOUBLE DAGGER
-2022 ; [*0397.0020.0002] # BULLET
-2023 ; [*0398.0020.0002] # TRIANGULAR BULLET
+2018 ; [*02FF.0020.0002] # LEFT SINGLE QUOTATION MARK
+2019 ; [*0300.0020.0002] # RIGHT SINGLE QUOTATION MARK
+201A ; [*0301.0020.0002] # SINGLE LOW-9 QUOTATION MARK
+201B ; [*0302.0020.0002] # SINGLE HIGH-REVERSED-9 QUOTATION MARK
+201C ; [*0306.0020.0002] # LEFT DOUBLE QUOTATION MARK
+201D ; [*0307.0020.0002] # RIGHT DOUBLE QUOTATION MARK
+201E ; [*0308.0020.0002] # DOUBLE LOW-9 QUOTATION MARK
+201F ; [*0309.0020.0002] # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020 ; [*0398.0020.0002] # DAGGER
+2021 ; [*0399.0020.0002] # DOUBLE DAGGER
+2022 ; [*039D.0020.0002] # BULLET
+2023 ; [*039E.0020.0002] # TRIANGULAR BULLET
2024 ; [*0274.0020.0004] # ONE DOT LEADER
2025 ; [*0274.0020.0004][*0274.0020.0004] # TWO DOT LEADER
2026 ; [*0274.0020.0004][*0274.0020.0004][*0274.0020.0004] # HORIZONTAL ELLIPSIS
-2027 ; [*0399.0020.0002] # HYPHENATION POINT
+2027 ; [*039F.0020.0002] # HYPHENATION POINT
2028 ; [*0207.0020.0002] # LINE SEPARATOR
2029 ; [*0208.0020.0002] # PARAGRAPH SEPARATOR
202F ; [*0209.0020.001B] # NARROW NO-BREAK SPACE
-2030 ; [*038E.0020.0002] # PER MILLE SIGN
-2031 ; [*0390.0020.0002] # PER TEN THOUSAND SIGN
-2032 ; [*039D.0020.0002] # PRIME
-2033 ; [*039D.0020.0004][*039D.0020.0004] # DOUBLE PRIME
-2034 ; [*039D.0020.0004][*039D.0020.0004][*039D.0020.0004] # TRIPLE PRIME
-2035 ; [*039E.0020.0002] # REVERSED PRIME
-2036 ; [*039E.0020.0004][*039E.0020.0004] # REVERSED DOUBLE PRIME
-2037 ; [*039E.0020.0004][*039E.0020.0004][*039E.0020.0004] # REVERSED TRIPLE PRIME
-2038 ; [*03A1.0020.0002] # CARET
-2039 ; [*02FD.0020.0002] # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A ; [*02FE.0020.0002] # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B ; [*03A2.0020.0002] # REFERENCE MARK
+2030 ; [*0394.0020.0002] # PER MILLE SIGN
+2031 ; [*0396.0020.0002] # PER TEN THOUSAND SIGN
+2032 ; [*03A3.0020.0002] # PRIME
+2033 ; [*03A3.0020.0004][*03A3.0020.0004] # DOUBLE PRIME
+2034 ; [*03A3.0020.0004][*03A3.0020.0004][*03A3.0020.0004] # TRIPLE PRIME
+2035 ; [*03A4.0020.0002] # REVERSED PRIME
+2036 ; [*03A4.0020.0004][*03A4.0020.0004] # REVERSED DOUBLE PRIME
+2037 ; [*03A4.0020.0004][*03A4.0020.0004][*03A4.0020.0004] # REVERSED TRIPLE PRIME
+2038 ; [*03A7.0020.0002] # CARET
+2039 ; [*0303.0020.0002] # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A ; [*0304.0020.0002] # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B ; [*03A8.0020.0002] # REFERENCE MARK
203C ; [*025F.0020.0004][*025F.0020.0004] # DOUBLE EXCLAMATION MARK
203D ; [*0272.0020.0002] # INTERROBANG
203E ; [*020A.0020.0002] # OVERLINE
-203F ; [*03A3.0020.0002] # UNDERTIE
-2040 ; [*03A5.0020.0002] # CHARACTER TIE
-2041 ; [*03A7.0020.0002] # CARET INSERTION POINT
-2042 ; [*03A8.0020.0002] # ASTERISM
-2043 ; [*039A.0020.0002] # HYPHEN BULLET
-2044 ; [*05E6.0020.0002] # FRACTION SLASH
-2045 ; [*0316.0020.0002] # LEFT SQUARE BRACKET WITH QUILL
-2046 ; [*0317.0020.0002] # RIGHT SQUARE BRACKET WITH QUILL
+203F ; [*03A9.0020.0002] # UNDERTIE
+2040 ; [*03AB.0020.0002] # CHARACTER TIE
+2041 ; [*03AD.0020.0002] # CARET INSERTION POINT
+2042 ; [*03AE.0020.0002] # ASTERISM
+2043 ; [*03A0.0020.0002] # HYPHEN BULLET
+2044 ; [*0606.0020.0002] # FRACTION SLASH
+2045 ; [*031C.0020.0002] # LEFT SQUARE BRACKET WITH QUILL
+2046 ; [*031D.0020.0002] # RIGHT SQUARE BRACKET WITH QUILL
2047 ; [*0264.0020.0004][*0264.0020.0004] # DOUBLE QUESTION MARK
2048 ; [*0264.0020.0004][*025F.0020.0004] # QUESTION EXCLAMATION MARK
2049 ; [*025F.0020.0004][*0264.0020.0004] # EXCLAMATION QUESTION MARK
-204A ; [*038A.0020.0002] # TIRONIAN SIGN ET
-204B ; [*037F.0020.0002] # REVERSED PILCROW SIGN
-204C ; [*039B.0020.0002] # BLACK LEFTWARDS BULLET
-204D ; [*039C.0020.0002] # BLACK RIGHTWARDS BULLET
-204E ; [*0383.0020.0002] # LOW ASTERISK
+204A ; [*0390.0020.0002] # TIRONIAN SIGN ET
+204B ; [*0385.0020.0002] # REVERSED PILCROW SIGN
+204C ; [*03A1.0020.0002] # BLACK LEFTWARDS BULLET
+204D ; [*03A2.0020.0002] # BLACK RIGHTWARDS BULLET
+204E ; [*0389.0020.0002] # LOW ASTERISK
204F ; [*0235.0020.0002] # REVERSED SEMICOLON
-2050 ; [*03A6.0020.0002] # CLOSE UP
-2051 ; [*0384.0020.0002] # TWO ASTERISKS ALIGNED VERTICALLY
-2052 ; [*05E2.0020.0002] # COMMERCIAL MINUS SIGN
+2050 ; [*03AC.0020.0002] # CLOSE UP
+2051 ; [*038A.0020.0002] # TWO ASTERISKS ALIGNED VERTICALLY
+2052 ; [*0602.0020.0002] # COMMERCIAL MINUS SIGN
2053 ; [*021A.0020.0002] # SWUNG DASH
-2054 ; [*03A4.0020.0002] # INVERTED UNDERTIE
-2055 ; [*02DB.0020.0002] # FLOWER PUNCTUATION MARK
-2056 ; [*02DC.0020.0002] # THREE DOT PUNCTUATION
-2057 ; [*039D.0020.0004][*039D.0020.0004][*039D.0020.0004][*039D.0020.0004] # QUADRUPLE PRIME
-2058 ; [*02DD.0020.0002] # FOUR DOT PUNCTUATION
-2059 ; [*02DE.0020.0002] # FIVE DOT PUNCTUATION
-205A ; [*02DF.0020.0002] # TWO DOT PUNCTUATION
-205B ; [*02E0.0020.0002] # FOUR DOT MARK
-205C ; [*02E1.0020.0002] # DOTTED CROSS
-205D ; [*02E2.0020.0002] # TRICOLON
-205E ; [*02E3.0020.0002] # VERTICAL FOUR DOTS
+2054 ; [*03AA.0020.0002] # INVERTED UNDERTIE
+2055 ; [*02E1.0020.0002] # FLOWER PUNCTUATION MARK
+2056 ; [*02E2.0020.0002] # THREE DOT PUNCTUATION
+2057 ; [*03A3.0020.0004][*03A3.0020.0004][*03A3.0020.0004][*03A3.0020.0004] # QUADRUPLE PRIME
+2058 ; [*02E3.0020.0002] # FOUR DOT PUNCTUATION
+2059 ; [*02E4.0020.0002] # FIVE DOT PUNCTUATION
+205A ; [*02E5.0020.0002] # TWO DOT PUNCTUATION
+205B ; [*02E6.0020.0002] # FOUR DOT MARK
+205C ; [*02E7.0020.0002] # DOTTED CROSS
+205D ; [*02E8.0020.0002] # TRICOLON
+205E ; [*02E9.0020.0002] # VERTICAL FOUR DOTS
205F ; [*0209.0020.0004] # MEDIUM MATHEMATICAL SPACE
2061 ; [.0000.0000.0000] # FUNCTION APPLICATION
2062 ; [.0000.0000.0000] # INVISIBLE TIMES
2063 ; [.0000.0000.0000] # INVISIBLE SEPARATOR
2064 ; [.0000.0000.0000] # INVISIBLE PLUS
-207A ; [*05D6.0020.0014] # SUPERSCRIPT PLUS SIGN
-207B ; [*05E1.0020.0014] # SUPERSCRIPT MINUS
-207C ; [*05DB.0020.0014] # SUPERSCRIPT EQUALS SIGN
-207D ; [*030A.0020.0014] # SUPERSCRIPT LEFT PARENTHESIS
-207E ; [*030B.0020.0014] # SUPERSCRIPT RIGHT PARENTHESIS
-208A ; [*05D6.0020.0015] # SUBSCRIPT PLUS SIGN
-208B ; [*05E1.0020.0015] # SUBSCRIPT MINUS
-208C ; [*05DB.0020.0015] # SUBSCRIPT EQUALS SIGN
-208D ; [*030A.0020.0015] # SUBSCRIPT LEFT PARENTHESIS
-208E ; [*030B.0020.0015] # SUBSCRIPT RIGHT PARENTHESIS
-2104 ; [*0548.0020.0002] # CENTRE LINE SYMBOL
-2108 ; [*0549.0020.0002] # SCRUPLE
-2114 ; [*054A.0020.0002] # L B BAR SYMBOL
-2117 ; [*054B.0020.0002] # SOUND RECORDING COPYRIGHT
-2118 ; [*054C.0020.0002] # SCRIPT CAPITAL P
-211E ; [*054D.0020.0002] # PRESCRIPTION TAKE
-211F ; [*054E.0020.0002] # RESPONSE
-2123 ; [*054F.0020.0002] # VERSICLE
-2125 ; [*0550.0020.0002] # OUNCE SIGN
-2127 ; [*0551.0020.0002] # INVERTED OHM SIGN
-2129 ; [*0552.0020.0002] # TURNED GREEK SMALL LETTER IOTA
-212E ; [*0553.0020.0002] # ESTIMATED SYMBOL
-213A ; [*0554.0020.0002] # ROTATED CAPITAL Q
-2140 ; [*05D5.0020.0005] # DOUBLE-STRUCK N-ARY SUMMATION
-2141 ; [*0555.0020.0002] # TURNED SANS-SERIF CAPITAL G
-2142 ; [*0556.0020.0002] # TURNED SANS-SERIF CAPITAL L
-2143 ; [*0557.0020.0002] # REVERSED SANS-SERIF CAPITAL L
-2144 ; [*0558.0020.0002] # TURNED SANS-SERIF CAPITAL Y
-214A ; [*0559.0020.0002] # PROPERTY LINE
-214B ; [*0671.0020.0002] # TURNED AMPERSAND
-214C ; [*055A.0020.0002] # PER SIGN
-214F ; [*055B.0020.0002] # SYMBOL FOR SAMARITAN SOURCE
-2180 ; [*17D7.0020.0002] # ROMAN NUMERAL ONE THOUSAND C D
-2181 ; [*17D8.0020.0002] # ROMAN NUMERAL FIVE THOUSAND
-2182 ; [*17D9.0020.0002] # ROMAN NUMERAL TEN THOUSAND
-2186 ; [*17DA.0020.0002] # ROMAN NUMERAL FIFTY EARLY FORM
-2187 ; [*17DB.0020.0002] # ROMAN NUMERAL FIFTY THOUSAND
-2188 ; [*17DC.0020.0002] # ROMAN NUMERAL ONE HUNDRED THOUSAND
-2190 ; [*055C.0020.0002] # LEFTWARDS ARROW
-2191 ; [*055E.0020.0002] # UPWARDS ARROW
-2192 ; [*055D.0020.0002] # RIGHTWARDS ARROW
-2193 ; [*055F.0020.0002] # DOWNWARDS ARROW
-2194 ; [*0560.0020.0002] # LEFT RIGHT ARROW
-2195 ; [*0561.0020.0002] # UP DOWN ARROW
-2196 ; [*0562.0020.0002] # NORTH WEST ARROW
-2197 ; [*0563.0020.0002] # NORTH EAST ARROW
-2198 ; [*0564.0020.0002] # SOUTH EAST ARROW
-2199 ; [*0565.0020.0002] # SOUTH WEST ARROW
-219A ; [*055C.0020.0002][.0000.002F.0002] # LEFTWARDS ARROW WITH STROKE
-219B ; [*055D.0020.0002][.0000.002F.0002] # RIGHTWARDS ARROW WITH STROKE
-219C ; [*0566.0020.0002] # LEFTWARDS WAVE ARROW
-219D ; [*0567.0020.0002] # RIGHTWARDS WAVE ARROW
-219E ; [*0568.0020.0002] # LEFTWARDS TWO HEADED ARROW
-219F ; [*0569.0020.0002] # UPWARDS TWO HEADED ARROW
-21A0 ; [*056A.0020.0002] # RIGHTWARDS TWO HEADED ARROW
-21A1 ; [*056B.0020.0002] # DOWNWARDS TWO HEADED ARROW
-21A2 ; [*056C.0020.0002] # LEFTWARDS ARROW WITH TAIL
-21A3 ; [*056D.0020.0002] # RIGHTWARDS ARROW WITH TAIL
-21A4 ; [*056E.0020.0002] # LEFTWARDS ARROW FROM BAR
-21A5 ; [*056F.0020.0002] # UPWARDS ARROW FROM BAR
-21A6 ; [*0570.0020.0002] # RIGHTWARDS ARROW FROM BAR
-21A7 ; [*0571.0020.0002] # DOWNWARDS ARROW FROM BAR
-21A8 ; [*0572.0020.0002] # UP DOWN ARROW WITH BASE
-21A9 ; [*0573.0020.0002] # LEFTWARDS ARROW WITH HOOK
-21AA ; [*0574.0020.0002] # RIGHTWARDS ARROW WITH HOOK
-21AB ; [*0575.0020.0002] # LEFTWARDS ARROW WITH LOOP
-21AC ; [*0576.0020.0002] # RIGHTWARDS ARROW WITH LOOP
-21AD ; [*0577.0020.0002] # LEFT RIGHT WAVE ARROW
-21AE ; [*0560.0020.0002][.0000.002F.0002] # LEFT RIGHT ARROW WITH STROKE
-21AF ; [*0578.0020.0002] # DOWNWARDS ZIGZAG ARROW
-21B0 ; [*0579.0020.0002] # UPWARDS ARROW WITH TIP LEFTWARDS
-21B1 ; [*057A.0020.0002] # UPWARDS ARROW WITH TIP RIGHTWARDS
-21B2 ; [*057B.0020.0002] # DOWNWARDS ARROW WITH TIP LEFTWARDS
-21B3 ; [*057C.0020.0002] # DOWNWARDS ARROW WITH TIP RIGHTWARDS
-21B4 ; [*057D.0020.0002] # RIGHTWARDS ARROW WITH CORNER DOWNWARDS
-21B5 ; [*057E.0020.0002] # DOWNWARDS ARROW WITH CORNER LEFTWARDS
-21B6 ; [*057F.0020.0002] # ANTICLOCKWISE TOP SEMICIRCLE ARROW
-21B7 ; [*0580.0020.0002] # CLOCKWISE TOP SEMICIRCLE ARROW
-21B8 ; [*0581.0020.0002] # NORTH WEST ARROW TO LONG BAR
-21B9 ; [*0582.0020.0002] # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
-21BA ; [*0583.0020.0002] # ANTICLOCKWISE OPEN CIRCLE ARROW
-21BB ; [*0584.0020.0002] # CLOCKWISE OPEN CIRCLE ARROW
-21BC ; [*0585.0020.0002] # LEFTWARDS HARPOON WITH BARB UPWARDS
-21BD ; [*0586.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWNWARDS
-21BE ; [*0587.0020.0002] # UPWARDS HARPOON WITH BARB RIGHTWARDS
-21BF ; [*0588.0020.0002] # UPWARDS HARPOON WITH BARB LEFTWARDS
-21C0 ; [*0589.0020.0002] # RIGHTWARDS HARPOON WITH BARB UPWARDS
-21C1 ; [*058A.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWNWARDS
-21C2 ; [*058B.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHTWARDS
-21C3 ; [*058C.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFTWARDS
-21C4 ; [*058D.0020.0002] # RIGHTWARDS ARROW OVER LEFTWARDS ARROW
-21C5 ; [*058E.0020.0002] # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
-21C6 ; [*058F.0020.0002] # LEFTWARDS ARROW OVER RIGHTWARDS ARROW
-21C7 ; [*0590.0020.0002] # LEFTWARDS PAIRED ARROWS
-21C8 ; [*0591.0020.0002] # UPWARDS PAIRED ARROWS
-21C9 ; [*0592.0020.0002] # RIGHTWARDS PAIRED ARROWS
-21CA ; [*0593.0020.0002] # DOWNWARDS PAIRED ARROWS
-21CB ; [*0594.0020.0002] # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
-21CC ; [*0595.0020.0002] # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
-21CD ; [*0596.0020.0002][.0000.002F.0002] # LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE ; [*059A.0020.0002][.0000.002F.0002] # LEFT RIGHT DOUBLE ARROW WITH STROKE
-21CF ; [*0598.0020.0002][.0000.002F.0002] # RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0 ; [*0596.0020.0002] # LEFTWARDS DOUBLE ARROW
-21D1 ; [*0597.0020.0002] # UPWARDS DOUBLE ARROW
-21D2 ; [*0598.0020.0002] # RIGHTWARDS DOUBLE ARROW
-21D3 ; [*0599.0020.0002] # DOWNWARDS DOUBLE ARROW
-21D4 ; [*059A.0020.0002] # LEFT RIGHT DOUBLE ARROW
-21D5 ; [*059B.0020.0002] # UP DOWN DOUBLE ARROW
-21D6 ; [*059C.0020.0002] # NORTH WEST DOUBLE ARROW
-21D7 ; [*059D.0020.0002] # NORTH EAST DOUBLE ARROW
-21D8 ; [*059E.0020.0002] # SOUTH EAST DOUBLE ARROW
-21D9 ; [*059F.0020.0002] # SOUTH WEST DOUBLE ARROW
-21DA ; [*05A0.0020.0002] # LEFTWARDS TRIPLE ARROW
-21DB ; [*05A1.0020.0002] # RIGHTWARDS TRIPLE ARROW
-21DC ; [*05A2.0020.0002] # LEFTWARDS SQUIGGLE ARROW
-21DD ; [*05A3.0020.0002] # RIGHTWARDS SQUIGGLE ARROW
-21DE ; [*05A4.0020.0002] # UPWARDS ARROW WITH DOUBLE STROKE
-21DF ; [*05A5.0020.0002] # DOWNWARDS ARROW WITH DOUBLE STROKE
-21E0 ; [*05A6.0020.0002] # LEFTWARDS DASHED ARROW
-21E1 ; [*05A7.0020.0002] # UPWARDS DASHED ARROW
-21E2 ; [*05A8.0020.0002] # RIGHTWARDS DASHED ARROW
-21E3 ; [*05A9.0020.0002] # DOWNWARDS DASHED ARROW
-21E4 ; [*05AA.0020.0002] # LEFTWARDS ARROW TO BAR
-21E5 ; [*05AB.0020.0002] # RIGHTWARDS ARROW TO BAR
-21E6 ; [*05AC.0020.0002] # LEFTWARDS WHITE ARROW
-21E7 ; [*05AD.0020.0002] # UPWARDS WHITE ARROW
-21E8 ; [*05AE.0020.0002] # RIGHTWARDS WHITE ARROW
-21E9 ; [*05AF.0020.0002] # DOWNWARDS WHITE ARROW
-21EA ; [*05B0.0020.0002] # UPWARDS WHITE ARROW FROM BAR
-21EB ; [*05B1.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL
-21EC ; [*05B2.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
-21ED ; [*05B3.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
-21EE ; [*05B4.0020.0002] # UPWARDS WHITE DOUBLE ARROW
-21EF ; [*05B5.0020.0002] # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
-21F0 ; [*05B6.0020.0002] # RIGHTWARDS WHITE ARROW FROM WALL
-21F1 ; [*05B7.0020.0002] # NORTH WEST ARROW TO CORNER
-21F2 ; [*05B8.0020.0002] # SOUTH EAST ARROW TO CORNER
-21F3 ; [*05B9.0020.0002] # UP DOWN WHITE ARROW
-21F4 ; [*05BA.0020.0002] # RIGHT ARROW WITH SMALL CIRCLE
-21F5 ; [*05BB.0020.0002] # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
-21F6 ; [*05BC.0020.0002] # THREE RIGHTWARDS ARROWS
-21F7 ; [*05BD.0020.0002] # LEFTWARDS ARROW WITH VERTICAL STROKE
-21F8 ; [*05BE.0020.0002] # RIGHTWARDS ARROW WITH VERTICAL STROKE
-21F9 ; [*05BF.0020.0002] # LEFT RIGHT ARROW WITH VERTICAL STROKE
-21FA ; [*05C0.0020.0002] # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FB ; [*05C1.0020.0002] # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
-21FC ; [*05C2.0020.0002] # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
-21FD ; [*05C3.0020.0002] # LEFTWARDS OPEN-HEADED ARROW
-21FE ; [*05C4.0020.0002] # RIGHTWARDS OPEN-HEADED ARROW
-21FF ; [*05C5.0020.0002] # LEFT RIGHT OPEN-HEADED ARROW
-2200 ; [*05C6.0020.0002] # FOR ALL
-2201 ; [*05C7.0020.0002] # COMPLEMENT
-2202 ; [*05C8.0020.0002] # PARTIAL DIFFERENTIAL
-2203 ; [*05C9.0020.0002] # THERE EXISTS
-2204 ; [*05C9.0020.0002][.0000.002F.0002] # THERE DOES NOT EXIST
-2205 ; [*05CA.0020.0002] # EMPTY SET
-2206 ; [*05CB.0020.0002] # INCREMENT
-2207 ; [*05CC.0020.0002] # NABLA
-2208 ; [*05CD.0020.0002] # ELEMENT OF
-2209 ; [*05CD.0020.0002][.0000.002F.0002] # NOT AN ELEMENT OF
-220A ; [*05CE.0020.0002] # SMALL ELEMENT OF
-220B ; [*05CF.0020.0002] # CONTAINS AS MEMBER
-220C ; [*05CF.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS MEMBER
-220D ; [*05D0.0020.0002] # SMALL CONTAINS AS MEMBER
-220E ; [*05D2.0020.0002] # END OF PROOF
-220F ; [*05D3.0020.0002] # N-ARY PRODUCT
-2210 ; [*05D4.0020.0002] # N-ARY COPRODUCT
-2211 ; [*05D5.0020.0002] # N-ARY SUMMATION
-2212 ; [*05E1.0020.0002] # MINUS SIGN
-2213 ; [*05E3.0020.0002] # MINUS-OR-PLUS SIGN
-2214 ; [*05E4.0020.0002] # DOT PLUS
-2215 ; [*05E5.0020.0002] # DIVISION SLASH
-2216 ; [*05E7.0020.0002] # SET MINUS
-2217 ; [*05E8.0020.0002] # ASTERISK OPERATOR
-2218 ; [*05E9.0020.0002] # RING OPERATOR
-2219 ; [*05EA.0020.0002] # BULLET OPERATOR
-221A ; [*05EB.0020.0002] # SQUARE ROOT
-221B ; [*05EC.0020.0002] # CUBE ROOT
-221C ; [*05EE.0020.0002] # FOURTH ROOT
-221D ; [*05F0.0020.0002] # PROPORTIONAL TO
-221E ; [*05F1.0020.0002] # INFINITY
-221F ; [*05F2.0020.0002] # RIGHT ANGLE
-2220 ; [*05F3.0020.0002] # ANGLE
-2221 ; [*05F4.0020.0002] # MEASURED ANGLE
-2222 ; [*05F5.0020.0002] # SPHERICAL ANGLE
-2223 ; [*05F6.0020.0002] # DIVIDES
-2224 ; [*05F6.0020.0002][.0000.002F.0002] # DOES NOT DIVIDE
-2225 ; [*05F7.0020.0002] # PARALLEL TO
-2226 ; [*05F7.0020.0002][.0000.002F.0002] # NOT PARALLEL TO
-2227 ; [*05F8.0020.0002] # LOGICAL AND
-2228 ; [*05F9.0020.0002] # LOGICAL OR
-2229 ; [*05FA.0020.0002] # INTERSECTION
-222A ; [*05FB.0020.0002] # UNION
-222B ; [*05FC.0020.0002] # INTEGRAL
-222C ; [*05FC.0020.0004][*05FC.0020.0004] # DOUBLE INTEGRAL
-222D ; [*05FC.0020.0004][*05FC.0020.0004][*05FC.0020.0004] # TRIPLE INTEGRAL
-222E ; [*05FD.0020.0002] # CONTOUR INTEGRAL
-222F ; [*05FD.0020.0004][*05FD.0020.0004] # SURFACE INTEGRAL
-2230 ; [*05FD.0020.0004][*05FD.0020.0004][*05FD.0020.0004] # VOLUME INTEGRAL
-2231 ; [*05FE.0020.0002] # CLOCKWISE INTEGRAL
-2232 ; [*05FF.0020.0002] # CLOCKWISE CONTOUR INTEGRAL
-2233 ; [*0600.0020.0002] # ANTICLOCKWISE CONTOUR INTEGRAL
-2234 ; [*0601.0020.0002] # THEREFORE
-2235 ; [*0602.0020.0002] # BECAUSE
-2236 ; [*0603.0020.0002] # RATIO
-2237 ; [*0604.0020.0002] # PROPORTION
-2238 ; [*0605.0020.0002] # DOT MINUS
-2239 ; [*0606.0020.0002] # EXCESS
-223A ; [*0607.0020.0002] # GEOMETRIC PROPORTION
-223B ; [*0608.0020.0002] # HOMOTHETIC
-223C ; [*0609.0020.0002] # TILDE OPERATOR
-223D ; [*060A.0020.0002] # REVERSED TILDE
-223E ; [*060B.0020.0002] # INVERTED LAZY S
-223F ; [*060C.0020.0002] # SINE WAVE
-2240 ; [*060D.0020.0002] # WREATH PRODUCT
-2241 ; [*0609.0020.0002][.0000.002F.0002] # NOT TILDE
-2242 ; [*060E.0020.0002] # MINUS TILDE
-2243 ; [*060F.0020.0002] # ASYMPTOTICALLY EQUAL TO
-2244 ; [*060F.0020.0002][.0000.002F.0002] # NOT ASYMPTOTICALLY EQUAL TO
-2245 ; [*0610.0020.0002] # APPROXIMATELY EQUAL TO
-2246 ; [*0611.0020.0002] # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
-2247 ; [*0610.0020.0002][.0000.002F.0002] # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-2248 ; [*0612.0020.0002] # ALMOST EQUAL TO
-2249 ; [*0612.0020.0002][.0000.002F.0002] # NOT ALMOST EQUAL TO
-224A ; [*0613.0020.0002] # ALMOST EQUAL OR EQUAL TO
-224B ; [*0614.0020.0002] # TRIPLE TILDE
-224C ; [*0615.0020.0002] # ALL EQUAL TO
-224D ; [*0616.0020.0002] # EQUIVALENT TO
-224E ; [*0617.0020.0002] # GEOMETRICALLY EQUIVALENT TO
-224F ; [*0618.0020.0002] # DIFFERENCE BETWEEN
-2250 ; [*0619.0020.0002] # APPROACHES THE LIMIT
-2251 ; [*061A.0020.0002] # GEOMETRICALLY EQUAL TO
-2252 ; [*061B.0020.0002] # APPROXIMATELY EQUAL TO OR THE IMAGE OF
-2253 ; [*061C.0020.0002] # IMAGE OF OR APPROXIMATELY EQUAL TO
-2254 ; [*061D.0020.0002] # COLON EQUALS
-2255 ; [*061E.0020.0002] # EQUALS COLON
-2256 ; [*061F.0020.0002] # RING IN EQUAL TO
-2257 ; [*0620.0020.0002] # RING EQUAL TO
-2258 ; [*0621.0020.0002] # CORRESPONDS TO
-2259 ; [*0622.0020.0002] # ESTIMATES
-225A ; [*0623.0020.0002] # EQUIANGULAR TO
-225B ; [*0624.0020.0002] # STAR EQUALS
-225C ; [*0625.0020.0002] # DELTA EQUAL TO
-225D ; [*0626.0020.0002] # EQUAL TO BY DEFINITION
-225E ; [*0627.0020.0002] # MEASURED BY
-225F ; [*0628.0020.0002] # QUESTIONED EQUAL TO
-2260 ; [*05DB.0020.0002][.0000.002F.0002] # NOT EQUAL TO
-2261 ; [*0629.0020.0002] # IDENTICAL TO
-2262 ; [*0629.0020.0002][.0000.002F.0002] # NOT IDENTICAL TO
-2263 ; [*062A.0020.0002] # STRICTLY EQUIVALENT TO
-2264 ; [*062B.0020.0002] # LESS-THAN OR EQUAL TO
-2265 ; [*062C.0020.0002] # GREATER-THAN OR EQUAL TO
-2266 ; [*062D.0020.0002] # LESS-THAN OVER EQUAL TO
-2267 ; [*062E.0020.0002] # GREATER-THAN OVER EQUAL TO
-2268 ; [*062F.0020.0002] # LESS-THAN BUT NOT EQUAL TO
-2269 ; [*0630.0020.0002] # GREATER-THAN BUT NOT EQUAL TO
-226A ; [*0631.0020.0002] # MUCH LESS-THAN
-226B ; [*0632.0020.0002] # MUCH GREATER-THAN
-226C ; [*0633.0020.0002] # BETWEEN
-226D ; [*0616.0020.0002][.0000.002F.0002] # NOT EQUIVALENT TO
-226E ; [*05DA.0020.0002][.0000.002F.0002] # NOT LESS-THAN
-226F ; [*05DC.0020.0002][.0000.002F.0002] # NOT GREATER-THAN
-2270 ; [*062B.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUAL TO
-2271 ; [*062C.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUAL TO
-2272 ; [*0634.0020.0002] # LESS-THAN OR EQUIVALENT TO
-2273 ; [*0635.0020.0002] # GREATER-THAN OR EQUIVALENT TO
-2274 ; [*0634.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUIVALENT TO
-2275 ; [*0635.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUIVALENT TO
-2276 ; [*0636.0020.0002] # LESS-THAN OR GREATER-THAN
-2277 ; [*0637.0020.0002] # GREATER-THAN OR LESS-THAN
-2278 ; [*0636.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR GREATER-THAN
-2279 ; [*0637.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR LESS-THAN
-227A ; [*0638.0020.0002] # PRECEDES
-227B ; [*0639.0020.0002] # SUCCEEDS
-227C ; [*063A.0020.0002] # PRECEDES OR EQUAL TO
-227D ; [*063B.0020.0002] # SUCCEEDS OR EQUAL TO
-227E ; [*063C.0020.0002] # PRECEDES OR EQUIVALENT TO
-227F ; [*063D.0020.0002] # SUCCEEDS OR EQUIVALENT TO
-2280 ; [*0638.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE
-2281 ; [*0639.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED
-2282 ; [*063E.0020.0002] # SUBSET OF
-2283 ; [*063F.0020.0002] # SUPERSET OF
-2284 ; [*063E.0020.0002][.0000.002F.0002] # NOT A SUBSET OF
-2285 ; [*063F.0020.0002][.0000.002F.0002] # NOT A SUPERSET OF
-2286 ; [*0640.0020.0002] # SUBSET OF OR EQUAL TO
-2287 ; [*0641.0020.0002] # SUPERSET OF OR EQUAL TO
-2288 ; [*0640.0020.0002][.0000.002F.0002] # NEITHER A SUBSET OF NOR EQUAL TO
-2289 ; [*0641.0020.0002][.0000.002F.0002] # NEITHER A SUPERSET OF NOR EQUAL TO
-228A ; [*0642.0020.0002] # SUBSET OF WITH NOT EQUAL TO
-228B ; [*0643.0020.0002] # SUPERSET OF WITH NOT EQUAL TO
-228C ; [*0644.0020.0002] # MULTISET
-228D ; [*0645.0020.0002] # MULTISET MULTIPLICATION
-228E ; [*0646.0020.0002] # MULTISET UNION
-228F ; [*0647.0020.0002] # SQUARE IMAGE OF
-2290 ; [*0648.0020.0002] # SQUARE ORIGINAL OF
-2291 ; [*0649.0020.0002] # SQUARE IMAGE OF OR EQUAL TO
-2292 ; [*064A.0020.0002] # SQUARE ORIGINAL OF OR EQUAL TO
-2293 ; [*064B.0020.0002] # SQUARE CAP
-2294 ; [*064C.0020.0002] # SQUARE CUP
-2295 ; [*064D.0020.0002] # CIRCLED PLUS
-2296 ; [*064E.0020.0002] # CIRCLED MINUS
-2297 ; [*064F.0020.0002] # CIRCLED TIMES
-2298 ; [*0650.0020.0002] # CIRCLED DIVISION SLASH
-2299 ; [*0651.0020.0002] # CIRCLED DOT OPERATOR
-229A ; [*0652.0020.0002] # CIRCLED RING OPERATOR
-229B ; [*0653.0020.0002] # CIRCLED ASTERISK OPERATOR
-229C ; [*0654.0020.0002] # CIRCLED EQUALS
-229D ; [*0655.0020.0002] # CIRCLED DASH
-229E ; [*0656.0020.0002] # SQUARED PLUS
-229F ; [*0657.0020.0002] # SQUARED MINUS
-22A0 ; [*0658.0020.0002] # SQUARED TIMES
-22A1 ; [*0659.0020.0002] # SQUARED DOT OPERATOR
-22A2 ; [*065A.0020.0002] # RIGHT TACK
-22A3 ; [*065B.0020.0002] # LEFT TACK
-22A4 ; [*065C.0020.0002] # DOWN TACK
-22A5 ; [*065D.0020.0002] # UP TACK
-22A6 ; [*065E.0020.0002] # ASSERTION
-22A7 ; [*065F.0020.0002] # MODELS
-22A8 ; [*0660.0020.0002] # TRUE
-22A9 ; [*0661.0020.0002] # FORCES
-22AA ; [*0662.0020.0002] # TRIPLE VERTICAL BAR RIGHT TURNSTILE
-22AB ; [*0663.0020.0002] # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22AC ; [*065A.0020.0002][.0000.002F.0002] # DOES NOT PROVE
-22AD ; [*0660.0020.0002][.0000.002F.0002] # NOT TRUE
-22AE ; [*0661.0020.0002][.0000.002F.0002] # DOES NOT FORCE
-22AF ; [*0663.0020.0002][.0000.002F.0002] # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
-22B0 ; [*0664.0020.0002] # PRECEDES UNDER RELATION
-22B1 ; [*0665.0020.0002] # SUCCEEDS UNDER RELATION
-22B2 ; [*0666.0020.0002] # NORMAL SUBGROUP OF
-22B3 ; [*0667.0020.0002] # CONTAINS AS NORMAL SUBGROUP
-22B4 ; [*0668.0020.0002] # NORMAL SUBGROUP OF OR EQUAL TO
-22B5 ; [*0669.0020.0002] # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
-22B6 ; [*066A.0020.0002] # ORIGINAL OF
-22B7 ; [*066B.0020.0002] # IMAGE OF
-22B8 ; [*066C.0020.0002] # MULTIMAP
-22B9 ; [*066D.0020.0002] # HERMITIAN CONJUGATE MATRIX
-22BA ; [*066E.0020.0002] # INTERCALATE
-22BB ; [*066F.0020.0002] # XOR
-22BC ; [*0670.0020.0002] # NAND
-22BD ; [*0672.0020.0002] # NOR
-22BE ; [*0673.0020.0002] # RIGHT ANGLE WITH ARC
-22BF ; [*0674.0020.0002] # RIGHT TRIANGLE
-22C0 ; [*0675.0020.0002] # N-ARY LOGICAL AND
-22C1 ; [*0676.0020.0002] # N-ARY LOGICAL OR
-22C2 ; [*0677.0020.0002] # N-ARY INTERSECTION
-22C3 ; [*0678.0020.0002] # N-ARY UNION
-22C4 ; [*0679.0020.0002] # DIAMOND OPERATOR
-22C5 ; [*067A.0020.0002] # DOT OPERATOR
-22C6 ; [*067B.0020.0002] # STAR OPERATOR
-22C7 ; [*067C.0020.0002] # DIVISION TIMES
-22C8 ; [*067D.0020.0002] # BOWTIE
-22C9 ; [*067E.0020.0002] # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CA ; [*067F.0020.0002] # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
-22CB ; [*0680.0020.0002] # LEFT SEMIDIRECT PRODUCT
-22CC ; [*0681.0020.0002] # RIGHT SEMIDIRECT PRODUCT
-22CD ; [*0682.0020.0002] # REVERSED TILDE EQUALS
-22CE ; [*0683.0020.0002] # CURLY LOGICAL OR
-22CF ; [*0684.0020.0002] # CURLY LOGICAL AND
-22D0 ; [*0685.0020.0002] # DOUBLE SUBSET
-22D1 ; [*0686.0020.0002] # DOUBLE SUPERSET
-22D2 ; [*0687.0020.0002] # DOUBLE INTERSECTION
-22D3 ; [*0688.0020.0002] # DOUBLE UNION
-22D4 ; [*0689.0020.0002] # PITCHFORK
-22D5 ; [*068A.0020.0002] # EQUAL AND PARALLEL TO
-22D6 ; [*068B.0020.0002] # LESS-THAN WITH DOT
-22D7 ; [*068C.0020.0002] # GREATER-THAN WITH DOT
-22D8 ; [*068D.0020.0002] # VERY MUCH LESS-THAN
-22D9 ; [*068E.0020.0002] # VERY MUCH GREATER-THAN
-22DA ; [*068F.0020.0002] # LESS-THAN EQUAL TO OR GREATER-THAN
-22DB ; [*0690.0020.0002] # GREATER-THAN EQUAL TO OR LESS-THAN
-22DC ; [*0691.0020.0002] # EQUAL TO OR LESS-THAN
-22DD ; [*0692.0020.0002] # EQUAL TO OR GREATER-THAN
-22DE ; [*0693.0020.0002] # EQUAL TO OR PRECEDES
-22DF ; [*0694.0020.0002] # EQUAL TO OR SUCCEEDS
-22E0 ; [*063A.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE OR EQUAL
-22E1 ; [*063B.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED OR EQUAL
-22E2 ; [*0649.0020.0002][.0000.002F.0002] # NOT SQUARE IMAGE OF OR EQUAL TO
-22E3 ; [*064A.0020.0002][.0000.002F.0002] # NOT SQUARE ORIGINAL OF OR EQUAL TO
-22E4 ; [*0695.0020.0002] # SQUARE IMAGE OF OR NOT EQUAL TO
-22E5 ; [*0696.0020.0002] # SQUARE ORIGINAL OF OR NOT EQUAL TO
-22E6 ; [*0697.0020.0002] # LESS-THAN BUT NOT EQUIVALENT TO
-22E7 ; [*0698.0020.0002] # GREATER-THAN BUT NOT EQUIVALENT TO
-22E8 ; [*0699.0020.0002] # PRECEDES BUT NOT EQUIVALENT TO
-22E9 ; [*069A.0020.0002] # SUCCEEDS BUT NOT EQUIVALENT TO
-22EA ; [*0666.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF
-22EB ; [*0667.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP
-22EC ; [*0668.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF OR EQUAL TO
-22ED ; [*0669.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
-22EE ; [*069B.0020.0002] # VERTICAL ELLIPSIS
-22EF ; [*069C.0020.0002] # MIDLINE HORIZONTAL ELLIPSIS
-22F0 ; [*069D.0020.0002] # UP RIGHT DIAGONAL ELLIPSIS
-22F1 ; [*069E.0020.0002] # DOWN RIGHT DIAGONAL ELLIPSIS
-22F2 ; [*069F.0020.0002] # ELEMENT OF WITH LONG HORIZONTAL STROKE
-22F3 ; [*06A0.0020.0002] # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F4 ; [*06A1.0020.0002] # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22F5 ; [*06A2.0020.0002] # ELEMENT OF WITH DOT ABOVE
-22F6 ; [*06A3.0020.0002] # ELEMENT OF WITH OVERBAR
-22F7 ; [*06A4.0020.0002] # SMALL ELEMENT OF WITH OVERBAR
-22F8 ; [*06A5.0020.0002] # ELEMENT OF WITH UNDERBAR
-22F9 ; [*06A6.0020.0002] # ELEMENT OF WITH TWO HORIZONTAL STROKES
-22FA ; [*06A7.0020.0002] # CONTAINS WITH LONG HORIZONTAL STROKE
-22FB ; [*06A8.0020.0002] # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FC ; [*06A9.0020.0002] # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
-22FD ; [*06AA.0020.0002] # CONTAINS WITH OVERBAR
-22FE ; [*06AB.0020.0002] # SMALL CONTAINS WITH OVERBAR
-22FF ; [*06AC.0020.0002] # Z NOTATION BAG MEMBERSHIP
-2300 ; [*06AD.0020.0002] # DIAMETER SIGN
-2301 ; [*06AE.0020.0002] # ELECTRIC ARROW
-2302 ; [*06AF.0020.0002] # HOUSE
-2303 ; [*06B0.0020.0002] # UP ARROWHEAD
-2304 ; [*06B1.0020.0002] # DOWN ARROWHEAD
-2305 ; [*06B2.0020.0002] # PROJECTIVE
-2306 ; [*06B3.0020.0002] # PERSPECTIVE
-2307 ; [*06B4.0020.0002] # WAVY LINE
-2308 ; [*0318.0020.0002] # LEFT CEILING
-2309 ; [*0319.0020.0002] # RIGHT CEILING
-230A ; [*031A.0020.0002] # LEFT FLOOR
-230B ; [*031B.0020.0002] # RIGHT FLOOR
-230C ; [*06B5.0020.0002] # BOTTOM RIGHT CROP
-230D ; [*06B6.0020.0002] # BOTTOM LEFT CROP
-230E ; [*06B7.0020.0002] # TOP RIGHT CROP
-230F ; [*06B8.0020.0002] # TOP LEFT CROP
-2310 ; [*06B9.0020.0002] # REVERSED NOT SIGN
-2311 ; [*06BA.0020.0002] # SQUARE LOZENGE
-2312 ; [*06BB.0020.0002] # ARC
-2313 ; [*06BC.0020.0002] # SEGMENT
-2314 ; [*06BD.0020.0002] # SECTOR
-2315 ; [*06BE.0020.0002] # TELEPHONE RECORDER
-2316 ; [*06BF.0020.0002] # POSITION INDICATOR
-2317 ; [*06C0.0020.0002] # VIEWDATA SQUARE
-2318 ; [*06C1.0020.0002] # PLACE OF INTEREST SIGN
-2319 ; [*06C2.0020.0002] # TURNED NOT SIGN
-231A ; [*06C3.0020.0002] # WATCH
-231B ; [*06C4.0020.0002] # HOURGLASS
-231C ; [*06C5.0020.0002] # TOP LEFT CORNER
-231D ; [*06C6.0020.0002] # TOP RIGHT CORNER
-231E ; [*06C7.0020.0002] # BOTTOM LEFT CORNER
-231F ; [*06C8.0020.0002] # BOTTOM RIGHT CORNER
-2320 ; [*06C9.0020.0002] # TOP HALF INTEGRAL
-2321 ; [*06CA.0020.0002] # BOTTOM HALF INTEGRAL
-2322 ; [*06CB.0020.0002] # FROWN
-2323 ; [*06CC.0020.0002] # SMILE
-2324 ; [*06CD.0020.0002] # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
-2325 ; [*06CE.0020.0002] # OPTION KEY
-2326 ; [*06CF.0020.0002] # ERASE TO THE RIGHT
-2327 ; [*06D0.0020.0002] # X IN A RECTANGLE BOX
-2328 ; [*06D1.0020.0002] # KEYBOARD
-2329 ; [*0362.0020.0002] # LEFT-POINTING ANGLE BRACKET
-232A ; [*0363.0020.0002] # RIGHT-POINTING ANGLE BRACKET
-232B ; [*06D2.0020.0002] # ERASE TO THE LEFT
-232C ; [*06D3.0020.0002] # BENZENE RING
-232D ; [*06D4.0020.0002] # CYLINDRICITY
-232E ; [*06D5.0020.0002] # ALL AROUND-PROFILE
-232F ; [*06D6.0020.0002] # SYMMETRY
-2330 ; [*06D7.0020.0002] # TOTAL RUNOUT
-2331 ; [*06D8.0020.0002] # DIMENSION ORIGIN
-2332 ; [*06D9.0020.0002] # CONICAL TAPER
-2333 ; [*06DA.0020.0002] # SLOPE
-2334 ; [*06DB.0020.0002] # COUNTERBORE
-2335 ; [*06DC.0020.0002] # COUNTERSINK
-2336 ; [*06DD.0020.0002] # APL FUNCTIONAL SYMBOL I-BEAM
-2337 ; [*06DE.0020.0002] # APL FUNCTIONAL SYMBOL SQUISH QUAD
-2338 ; [*06DF.0020.0002] # APL FUNCTIONAL SYMBOL QUAD EQUAL
-2339 ; [*06E0.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIVIDE
-233A ; [*06E1.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIAMOND
-233B ; [*06E2.0020.0002] # APL FUNCTIONAL SYMBOL QUAD JOT
-233C ; [*06E3.0020.0002] # APL FUNCTIONAL SYMBOL QUAD CIRCLE
-233D ; [*06E4.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STILE
-233E ; [*06E5.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE JOT
-233F ; [*06E6.0020.0002] # APL FUNCTIONAL SYMBOL SLASH BAR
-2340 ; [*06E7.0020.0002] # APL FUNCTIONAL SYMBOL BACKSLASH BAR
-2341 ; [*06E8.0020.0002] # APL FUNCTIONAL SYMBOL QUAD SLASH
-2342 ; [*06E9.0020.0002] # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
-2343 ; [*06EA.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
-2344 ; [*06EB.0020.0002] # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
-2345 ; [*06EC.0020.0002] # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
-2346 ; [*06ED.0020.0002] # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
-2347 ; [*06EE.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
-2348 ; [*06EF.0020.0002] # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
-2349 ; [*06F0.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
-234A ; [*06F1.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
-234B ; [*06F2.0020.0002] # APL FUNCTIONAL SYMBOL DELTA STILE
-234C ; [*06F3.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
-234D ; [*06F4.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DELTA
-234E ; [*06F5.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK JOT
-234F ; [*06F6.0020.0002] # APL FUNCTIONAL SYMBOL UPWARDS VANE
-2350 ; [*06F7.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
-2351 ; [*06F8.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
-2352 ; [*06F9.0020.0002] # APL FUNCTIONAL SYMBOL DEL STILE
-2353 ; [*06FA.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UP CARET
-2354 ; [*06FB.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DEL
-2355 ; [*06FC.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK JOT
-2356 ; [*06FD.0020.0002] # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
-2357 ; [*06FE.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
-2358 ; [*06FF.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
-2359 ; [*0700.0020.0002] # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
-235A ; [*0701.0020.0002] # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
-235B ; [*0702.0020.0002] # APL FUNCTIONAL SYMBOL JOT UNDERBAR
-235C ; [*0703.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
-235D ; [*0704.0020.0002] # APL FUNCTIONAL SYMBOL UP SHOE JOT
-235E ; [*0705.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE QUAD
-235F ; [*0706.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STAR
-2360 ; [*0707.0020.0002] # APL FUNCTIONAL SYMBOL QUAD COLON
-2361 ; [*0708.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
-2362 ; [*0709.0020.0002] # APL FUNCTIONAL SYMBOL DEL DIAERESIS
-2363 ; [*070A.0020.0002] # APL FUNCTIONAL SYMBOL STAR DIAERESIS
-2364 ; [*070B.0020.0002] # APL FUNCTIONAL SYMBOL JOT DIAERESIS
-2365 ; [*070C.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
-2366 ; [*070D.0020.0002] # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
-2367 ; [*070E.0020.0002] # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
-2368 ; [*070F.0020.0002] # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
-2369 ; [*0710.0020.0002] # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
-236A ; [*0711.0020.0002] # APL FUNCTIONAL SYMBOL COMMA BAR
-236B ; [*0712.0020.0002] # APL FUNCTIONAL SYMBOL DEL TILDE
-236C ; [*0713.0020.0002] # APL FUNCTIONAL SYMBOL ZILDE
-236D ; [*0714.0020.0002] # APL FUNCTIONAL SYMBOL STILE TILDE
-236E ; [*0715.0020.0002] # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
-236F ; [*0716.0020.0002] # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
-2370 ; [*0717.0020.0002] # APL FUNCTIONAL SYMBOL QUAD QUESTION
-2371 ; [*0718.0020.0002] # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
-2372 ; [*0719.0020.0002] # APL FUNCTIONAL SYMBOL UP CARET TILDE
-2373 ; [*071A.0020.0002] # APL FUNCTIONAL SYMBOL IOTA
-2374 ; [*071B.0020.0002] # APL FUNCTIONAL SYMBOL RHO
-2375 ; [*071C.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA
-2376 ; [*071D.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
-2377 ; [*071E.0020.0002] # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
-2378 ; [*071F.0020.0002] # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
-2379 ; [*0720.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
-237A ; [*0721.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA
-237B ; [*0722.0020.0002] # NOT CHECK MARK
-237C ; [*0723.0020.0002] # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D ; [*0724.0020.0002] # SHOULDERED OPEN BOX
-237E ; [*0725.0020.0002] # BELL SYMBOL
-237F ; [*0726.0020.0002] # VERTICAL LINE WITH MIDDLE DOT
-2380 ; [*0727.0020.0002] # INSERTION SYMBOL
-2381 ; [*0728.0020.0002] # CONTINUOUS UNDERLINE SYMBOL
-2382 ; [*0729.0020.0002] # DISCONTINUOUS UNDERLINE SYMBOL
-2383 ; [*072A.0020.0002] # EMPHASIS SYMBOL
-2384 ; [*072B.0020.0002] # COMPOSITION SYMBOL
-2385 ; [*072C.0020.0002] # WHITE SQUARE WITH CENTRE VERTICAL LINE
-2386 ; [*072D.0020.0002] # ENTER SYMBOL
-2387 ; [*072E.0020.0002] # ALTERNATIVE KEY SYMBOL
-2388 ; [*072F.0020.0002] # HELM SYMBOL
-2389 ; [*0730.0020.0002] # CIRCLED HORIZONTAL BAR WITH NOTCH
-238A ; [*0731.0020.0002] # CIRCLED TRIANGLE DOWN
-238B ; [*0732.0020.0002] # BROKEN CIRCLE WITH NORTHWEST ARROW
-238C ; [*0733.0020.0002] # UNDO SYMBOL
-238D ; [*0734.0020.0002] # MONOSTABLE SYMBOL
-238E ; [*0735.0020.0002] # HYSTERESIS SYMBOL
-238F ; [*0736.0020.0002] # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
-2390 ; [*0737.0020.0002] # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
-2391 ; [*0738.0020.0002] # PASSIVE-PULL-DOWN-OUTPUT SYMBOL
-2392 ; [*0739.0020.0002] # PASSIVE-PULL-UP-OUTPUT SYMBOL
-2393 ; [*073A.0020.0002] # DIRECT CURRENT SYMBOL FORM TWO
-2394 ; [*073B.0020.0002] # SOFTWARE-FUNCTION SYMBOL
-2395 ; [*073C.0020.0002] # APL FUNCTIONAL SYMBOL QUAD
-2396 ; [*073D.0020.0002] # DECIMAL SEPARATOR KEY SYMBOL
-2397 ; [*073E.0020.0002] # PREVIOUS PAGE
-2398 ; [*073F.0020.0002] # NEXT PAGE
-2399 ; [*0740.0020.0002] # PRINT SCREEN SYMBOL
-239A ; [*0741.0020.0002] # CLEAR SCREEN SYMBOL
-239B ; [*0742.0020.0002] # LEFT PARENTHESIS UPPER HOOK
-239C ; [*0743.0020.0002] # LEFT PARENTHESIS EXTENSION
-239D ; [*0744.0020.0002] # LEFT PARENTHESIS LOWER HOOK
-239E ; [*0745.0020.0002] # RIGHT PARENTHESIS UPPER HOOK
-239F ; [*0746.0020.0002] # RIGHT PARENTHESIS EXTENSION
-23A0 ; [*0747.0020.0002] # RIGHT PARENTHESIS LOWER HOOK
-23A1 ; [*0748.0020.0002] # LEFT SQUARE BRACKET UPPER CORNER
-23A2 ; [*0749.0020.0002] # LEFT SQUARE BRACKET EXTENSION
-23A3 ; [*074A.0020.0002] # LEFT SQUARE BRACKET LOWER CORNER
-23A4 ; [*074B.0020.0002] # RIGHT SQUARE BRACKET UPPER CORNER
-23A5 ; [*074C.0020.0002] # RIGHT SQUARE BRACKET EXTENSION
-23A6 ; [*074D.0020.0002] # RIGHT SQUARE BRACKET LOWER CORNER
-23A7 ; [*074E.0020.0002] # LEFT CURLY BRACKET UPPER HOOK
-23A8 ; [*074F.0020.0002] # LEFT CURLY BRACKET MIDDLE PIECE
-23A9 ; [*0750.0020.0002] # LEFT CURLY BRACKET LOWER HOOK
-23AA ; [*0751.0020.0002] # CURLY BRACKET EXTENSION
-23AB ; [*0752.0020.0002] # RIGHT CURLY BRACKET UPPER HOOK
-23AC ; [*0753.0020.0002] # RIGHT CURLY BRACKET MIDDLE PIECE
-23AD ; [*0754.0020.0002] # RIGHT CURLY BRACKET LOWER HOOK
-23AE ; [*0755.0020.0002] # INTEGRAL EXTENSION
-23AF ; [*0756.0020.0002] # HORIZONTAL LINE EXTENSION
-23B0 ; [*0757.0020.0002] # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
-23B1 ; [*0758.0020.0002] # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
-23B2 ; [*0759.0020.0002] # SUMMATION TOP
-23B3 ; [*075A.0020.0002] # SUMMATION BOTTOM
-23B4 ; [*075B.0020.0002] # TOP SQUARE BRACKET
-23B5 ; [*075C.0020.0002] # BOTTOM SQUARE BRACKET
-23B6 ; [*075D.0020.0002] # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7 ; [*075E.0020.0002] # RADICAL SYMBOL BOTTOM
-23B8 ; [*075F.0020.0002] # LEFT VERTICAL BOX LINE
-23B9 ; [*0760.0020.0002] # RIGHT VERTICAL BOX LINE
-23BA ; [*0761.0020.0002] # HORIZONTAL SCAN LINE-1
-23BB ; [*0762.0020.0002] # HORIZONTAL SCAN LINE-3
-23BC ; [*0763.0020.0002] # HORIZONTAL SCAN LINE-7
-23BD ; [*0764.0020.0002] # HORIZONTAL SCAN LINE-9
-23BE ; [*0765.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
-23BF ; [*0766.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
-23C0 ; [*0767.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
-23C1 ; [*0768.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
-23C2 ; [*0769.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
-23C3 ; [*076A.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
-23C4 ; [*076B.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
-23C5 ; [*076C.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
-23C6 ; [*076D.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
-23C7 ; [*076E.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
-23C8 ; [*076F.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
-23C9 ; [*0770.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
-23CA ; [*0771.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
-23CB ; [*0772.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
-23CC ; [*0773.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
-23CD ; [*0774.0020.0002] # SQUARE FOOT
-23CE ; [*0775.0020.0002] # RETURN SYMBOL
-23CF ; [*0776.0020.0002] # EJECT SYMBOL
-23D0 ; [*0777.0020.0002] # VERTICAL LINE EXTENSION
-23D1 ; [*0778.0020.0002] # METRICAL BREVE
-23D2 ; [*0779.0020.0002] # METRICAL LONG OVER SHORT
-23D3 ; [*077A.0020.0002] # METRICAL SHORT OVER LONG
-23D4 ; [*077B.0020.0002] # METRICAL LONG OVER TWO SHORTS
-23D5 ; [*077C.0020.0002] # METRICAL TWO SHORTS OVER LONG
-23D6 ; [*077D.0020.0002] # METRICAL TWO SHORTS JOINED
-23D7 ; [*077E.0020.0002] # METRICAL TRISEME
-23D8 ; [*077F.0020.0002] # METRICAL TETRASEME
-23D9 ; [*0780.0020.0002] # METRICAL PENTASEME
-23DA ; [*0781.0020.0002] # EARTH GROUND
-23DB ; [*0782.0020.0002] # FUSE
-23DC ; [*0783.0020.0002] # TOP PARENTHESIS
-23DD ; [*0784.0020.0002] # BOTTOM PARENTHESIS
-23DE ; [*0785.0020.0002] # TOP CURLY BRACKET
-23DF ; [*0786.0020.0002] # BOTTOM CURLY BRACKET
-23E0 ; [*0787.0020.0002] # TOP TORTOISE SHELL BRACKET
-23E1 ; [*0788.0020.0002] # BOTTOM TORTOISE SHELL BRACKET
-23E2 ; [*0789.0020.0002] # WHITE TRAPEZIUM
-23E3 ; [*078A.0020.0002] # BENZENE RING WITH CIRCLE
-23E4 ; [*078B.0020.0002] # STRAIGHTNESS
-23E5 ; [*078C.0020.0002] # FLATNESS
-23E6 ; [*078D.0020.0002] # AC CURRENT
-23E7 ; [*078E.0020.0002] # ELECTRICAL INTERSECTION
-23E8 ; [*078F.0020.0002] # DECIMAL EXPONENT SYMBOL
-23E9 ; [*0790.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE
-23EA ; [*0791.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE
-23EB ; [*0792.0020.0002] # BLACK UP-POINTING DOUBLE TRIANGLE
-23EC ; [*0793.0020.0002] # BLACK DOWN-POINTING DOUBLE TRIANGLE
-23ED ; [*0794.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EE ; [*0795.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
-23EF ; [*0796.0020.0002] # BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23F0 ; [*0797.0020.0002] # ALARM CLOCK
-23F1 ; [*0798.0020.0002] # STOPWATCH
-23F2 ; [*0799.0020.0002] # TIMER CLOCK
-23F3 ; [*079A.0020.0002] # HOURGLASS WITH FLOWING SAND
-23F4 ; [*079B.0020.0002] # BLACK MEDIUM LEFT-POINTING TRIANGLE
-23F5 ; [*079C.0020.0002] # BLACK MEDIUM RIGHT-POINTING TRIANGLE
-23F6 ; [*079D.0020.0002] # BLACK MEDIUM UP-POINTING TRIANGLE
-23F7 ; [*079E.0020.0002] # BLACK MEDIUM DOWN-POINTING TRIANGLE
-23F8 ; [*079F.0020.0002] # DOUBLE VERTICAL BAR
-23F9 ; [*07A0.0020.0002] # BLACK SQUARE FOR STOP
-23FA ; [*07A1.0020.0002] # BLACK CIRCLE FOR RECORD
-2400 ; [*07A2.0020.0002] # SYMBOL FOR NULL
-2401 ; [*07A3.0020.0002] # SYMBOL FOR START OF HEADING
-2402 ; [*07A4.0020.0002] # SYMBOL FOR START OF TEXT
-2403 ; [*07A5.0020.0002] # SYMBOL FOR END OF TEXT
-2404 ; [*07A6.0020.0002] # SYMBOL FOR END OF TRANSMISSION
-2405 ; [*07A7.0020.0002] # SYMBOL FOR ENQUIRY
-2406 ; [*07A8.0020.0002] # SYMBOL FOR ACKNOWLEDGE
-2407 ; [*07A9.0020.0002] # SYMBOL FOR BELL
-2408 ; [*07AA.0020.0002] # SYMBOL FOR BACKSPACE
-2409 ; [*07AB.0020.0002] # SYMBOL FOR HORIZONTAL TABULATION
-240A ; [*07AC.0020.0002] # SYMBOL FOR LINE FEED
-240B ; [*07AD.0020.0002] # SYMBOL FOR VERTICAL TABULATION
-240C ; [*07AE.0020.0002] # SYMBOL FOR FORM FEED
-240D ; [*07AF.0020.0002] # SYMBOL FOR CARRIAGE RETURN
-240E ; [*07B0.0020.0002] # SYMBOL FOR SHIFT OUT
-240F ; [*07B1.0020.0002] # SYMBOL FOR SHIFT IN
-2410 ; [*07B2.0020.0002] # SYMBOL FOR DATA LINK ESCAPE
-2411 ; [*07B3.0020.0002] # SYMBOL FOR DEVICE CONTROL ONE
-2412 ; [*07B4.0020.0002] # SYMBOL FOR DEVICE CONTROL TWO
-2413 ; [*07B5.0020.0002] # SYMBOL FOR DEVICE CONTROL THREE
-2414 ; [*07B6.0020.0002] # SYMBOL FOR DEVICE CONTROL FOUR
-2415 ; [*07B7.0020.0002] # SYMBOL FOR NEGATIVE ACKNOWLEDGE
-2416 ; [*07B8.0020.0002] # SYMBOL FOR SYNCHRONOUS IDLE
-2417 ; [*07B9.0020.0002] # SYMBOL FOR END OF TRANSMISSION BLOCK
-2418 ; [*07BA.0020.0002] # SYMBOL FOR CANCEL
-2419 ; [*07BB.0020.0002] # SYMBOL FOR END OF MEDIUM
-241A ; [*07BC.0020.0002] # SYMBOL FOR SUBSTITUTE
-241B ; [*07BD.0020.0002] # SYMBOL FOR ESCAPE
-241C ; [*07BE.0020.0002] # SYMBOL FOR FILE SEPARATOR
-241D ; [*07BF.0020.0002] # SYMBOL FOR GROUP SEPARATOR
-241E ; [*07C0.0020.0002] # SYMBOL FOR RECORD SEPARATOR
-241F ; [*07C1.0020.0002] # SYMBOL FOR UNIT SEPARATOR
-2420 ; [*07C2.0020.0002] # SYMBOL FOR SPACE
-2421 ; [*07C3.0020.0002] # SYMBOL FOR DELETE
-2422 ; [*07C4.0020.0002] # BLANK SYMBOL
-2423 ; [*07C5.0020.0002] # OPEN BOX
-2424 ; [*07C6.0020.0002] # SYMBOL FOR NEWLINE
-2425 ; [*07C7.0020.0002] # SYMBOL FOR DELETE FORM TWO
-2426 ; [*07C8.0020.0002] # SYMBOL FOR SUBSTITUTE FORM TWO
-2440 ; [*07C9.0020.0002] # OCR HOOK
-2441 ; [*07CA.0020.0002] # OCR CHAIR
-2442 ; [*07CB.0020.0002] # OCR FORK
-2443 ; [*07CC.0020.0002] # OCR INVERTED FORK
-2444 ; [*07CD.0020.0002] # OCR BELT BUCKLE
-2445 ; [*07CE.0020.0002] # OCR BOW TIE
-2446 ; [*07CF.0020.0002] # OCR BRANCH BANK IDENTIFICATION
-2447 ; [*07D0.0020.0002] # OCR AMOUNT OF CHECK
-2448 ; [*07D1.0020.0002] # OCR DASH
-2449 ; [*07D2.0020.0002] # OCR CUSTOMER ACCOUNT NUMBER
-244A ; [*07D3.0020.0002] # OCR DOUBLE BACKSLASH
-2500 ; [*07D4.0020.0002] # BOX DRAWINGS LIGHT HORIZONTAL
-2501 ; [*07D5.0020.0002] # BOX DRAWINGS HEAVY HORIZONTAL
-2502 ; [*07D6.0020.0002] # BOX DRAWINGS LIGHT VERTICAL
-2503 ; [*07D7.0020.0002] # BOX DRAWINGS HEAVY VERTICAL
-2504 ; [*07D8.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
-2505 ; [*07D9.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
-2506 ; [*07DA.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
-2507 ; [*07DB.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
-2508 ; [*07DC.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
-2509 ; [*07DD.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
-250A ; [*07DE.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
-250B ; [*07DF.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
-250C ; [*07E0.0020.0002] # BOX DRAWINGS LIGHT DOWN AND RIGHT
-250D ; [*07E1.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
-250E ; [*07E2.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
-250F ; [*07E3.0020.0002] # BOX DRAWINGS HEAVY DOWN AND RIGHT
-2510 ; [*07E4.0020.0002] # BOX DRAWINGS LIGHT DOWN AND LEFT
-2511 ; [*07E5.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
-2512 ; [*07E6.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
-2513 ; [*07E7.0020.0002] # BOX DRAWINGS HEAVY DOWN AND LEFT
-2514 ; [*07E8.0020.0002] # BOX DRAWINGS LIGHT UP AND RIGHT
-2515 ; [*07E9.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
-2516 ; [*07EA.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
-2517 ; [*07EB.0020.0002] # BOX DRAWINGS HEAVY UP AND RIGHT
-2518 ; [*07EC.0020.0002] # BOX DRAWINGS LIGHT UP AND LEFT
-2519 ; [*07ED.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT HEAVY
-251A ; [*07EE.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT LIGHT
-251B ; [*07EF.0020.0002] # BOX DRAWINGS HEAVY UP AND LEFT
-251C ; [*07F0.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-251D ; [*07F1.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
-251E ; [*07F2.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
-251F ; [*07F3.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
-2520 ; [*07F4.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
-2521 ; [*07F5.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
-2522 ; [*07F6.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
-2523 ; [*07F7.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND RIGHT
-2524 ; [*07F8.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND LEFT
-2525 ; [*07F9.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
-2526 ; [*07FA.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
-2527 ; [*07FB.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
-2528 ; [*07FC.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
-2529 ; [*07FD.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
-252A ; [*07FE.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
-252B ; [*07FF.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND LEFT
-252C ; [*0800.0020.0002] # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-252D ; [*0801.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
-252E ; [*0802.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
-252F ; [*0803.0020.0002] # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
-2530 ; [*0804.0020.0002] # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
-2531 ; [*0805.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
-2532 ; [*0806.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
-2533 ; [*0807.0020.0002] # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
-2534 ; [*0808.0020.0002] # BOX DRAWINGS LIGHT UP AND HORIZONTAL
-2535 ; [*0809.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
-2536 ; [*080A.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
-2537 ; [*080B.0020.0002] # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
-2538 ; [*080C.0020.0002] # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
-2539 ; [*080D.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
-253A ; [*080E.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
-253B ; [*080F.0020.0002] # BOX DRAWINGS HEAVY UP AND HORIZONTAL
-253C ; [*0810.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-253D ; [*0811.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
-253E ; [*0812.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
-253F ; [*0813.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
-2540 ; [*0814.0020.0002] # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
-2541 ; [*0815.0020.0002] # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
-2542 ; [*0816.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
-2543 ; [*0817.0020.0002] # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
-2544 ; [*0818.0020.0002] # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
-2545 ; [*0819.0020.0002] # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
-2546 ; [*081A.0020.0002] # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
-2547 ; [*081B.0020.0002] # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
-2548 ; [*081C.0020.0002] # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
-2549 ; [*081D.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
-254A ; [*081E.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
-254B ; [*081F.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-254C ; [*0820.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
-254D ; [*0821.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
-254E ; [*0822.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
-254F ; [*0823.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-2550 ; [*0824.0020.0002] # BOX DRAWINGS DOUBLE HORIZONTAL
-2551 ; [*0825.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL
-2552 ; [*0826.0020.0002] # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-2553 ; [*0827.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-2554 ; [*0828.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND RIGHT
-2555 ; [*0829.0020.0002] # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-2556 ; [*082A.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-2557 ; [*082B.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND LEFT
-2558 ; [*082C.0020.0002] # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-2559 ; [*082D.0020.0002] # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-255A ; [*082E.0020.0002] # BOX DRAWINGS DOUBLE UP AND RIGHT
-255B ; [*082F.0020.0002] # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-255C ; [*0830.0020.0002] # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-255D ; [*0831.0020.0002] # BOX DRAWINGS DOUBLE UP AND LEFT
-255E ; [*0832.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-255F ; [*0833.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-2560 ; [*0834.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-2561 ; [*0835.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-2562 ; [*0836.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-2563 ; [*0837.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-2564 ; [*0838.0020.0002] # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-2565 ; [*0839.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-2566 ; [*083A.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-2567 ; [*083B.0020.0002] # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-2568 ; [*083C.0020.0002] # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-2569 ; [*083D.0020.0002] # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-256A ; [*083E.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-256B ; [*083F.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-256C ; [*0840.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-256D ; [*0841.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
-256E ; [*0842.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
-256F ; [*0843.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND LEFT
-2570 ; [*0844.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND RIGHT
-2571 ; [*0845.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
-2572 ; [*0846.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
-2573 ; [*0847.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL CROSS
-2574 ; [*0848.0020.0002] # BOX DRAWINGS LIGHT LEFT
-2575 ; [*0849.0020.0002] # BOX DRAWINGS LIGHT UP
-2576 ; [*084A.0020.0002] # BOX DRAWINGS LIGHT RIGHT
-2577 ; [*084B.0020.0002] # BOX DRAWINGS LIGHT DOWN
-2578 ; [*084C.0020.0002] # BOX DRAWINGS HEAVY LEFT
-2579 ; [*084D.0020.0002] # BOX DRAWINGS HEAVY UP
-257A ; [*084E.0020.0002] # BOX DRAWINGS HEAVY RIGHT
-257B ; [*084F.0020.0002] # BOX DRAWINGS HEAVY DOWN
-257C ; [*0850.0020.0002] # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
-257D ; [*0851.0020.0002] # BOX DRAWINGS LIGHT UP AND HEAVY DOWN
-257E ; [*0852.0020.0002] # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
-257F ; [*0853.0020.0002] # BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-2580 ; [*0854.0020.0002] # UPPER HALF BLOCK
-2581 ; [*0855.0020.0002] # LOWER ONE EIGHTH BLOCK
-2582 ; [*0856.0020.0002] # LOWER ONE QUARTER BLOCK
-2583 ; [*0857.0020.0002] # LOWER THREE EIGHTHS BLOCK
-2584 ; [*0858.0020.0002] # LOWER HALF BLOCK
-2585 ; [*0859.0020.0002] # LOWER FIVE EIGHTHS BLOCK
-2586 ; [*085A.0020.0002] # LOWER THREE QUARTERS BLOCK
-2587 ; [*085B.0020.0002] # LOWER SEVEN EIGHTHS BLOCK
-2588 ; [*085C.0020.0002] # FULL BLOCK
-2589 ; [*085D.0020.0002] # LEFT SEVEN EIGHTHS BLOCK
-258A ; [*085E.0020.0002] # LEFT THREE QUARTERS BLOCK
-258B ; [*085F.0020.0002] # LEFT FIVE EIGHTHS BLOCK
-258C ; [*0860.0020.0002] # LEFT HALF BLOCK
-258D ; [*0861.0020.0002] # LEFT THREE EIGHTHS BLOCK
-258E ; [*0862.0020.0002] # LEFT ONE QUARTER BLOCK
-258F ; [*0863.0020.0002] # LEFT ONE EIGHTH BLOCK
-2590 ; [*0864.0020.0002] # RIGHT HALF BLOCK
-2591 ; [*0865.0020.0002] # LIGHT SHADE
-2592 ; [*0866.0020.0002] # MEDIUM SHADE
-2593 ; [*0867.0020.0002] # DARK SHADE
-2594 ; [*0868.0020.0002] # UPPER ONE EIGHTH BLOCK
-2595 ; [*0869.0020.0002] # RIGHT ONE EIGHTH BLOCK
-2596 ; [*086A.0020.0002] # QUADRANT LOWER LEFT
-2597 ; [*086B.0020.0002] # QUADRANT LOWER RIGHT
-2598 ; [*086C.0020.0002] # QUADRANT UPPER LEFT
-2599 ; [*086D.0020.0002] # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
-259A ; [*086E.0020.0002] # QUADRANT UPPER LEFT AND LOWER RIGHT
-259B ; [*086F.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
-259C ; [*0870.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
-259D ; [*0871.0020.0002] # QUADRANT UPPER RIGHT
-259E ; [*0872.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT
-259F ; [*0873.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
-25A0 ; [*0874.0020.0002] # BLACK SQUARE
-25A1 ; [*0875.0020.0002] # WHITE SQUARE
-25A2 ; [*0876.0020.0002] # WHITE SQUARE WITH ROUNDED CORNERS
-25A3 ; [*0877.0020.0002] # WHITE SQUARE CONTAINING BLACK SMALL SQUARE
-25A4 ; [*0878.0020.0002] # SQUARE WITH HORIZONTAL FILL
-25A5 ; [*0879.0020.0002] # SQUARE WITH VERTICAL FILL
-25A6 ; [*087A.0020.0002] # SQUARE WITH ORTHOGONAL CROSSHATCH FILL
-25A7 ; [*087B.0020.0002] # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
-25A8 ; [*087C.0020.0002] # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
-25A9 ; [*087D.0020.0002] # SQUARE WITH DIAGONAL CROSSHATCH FILL
-25AA ; [*087E.0020.0002] # BLACK SMALL SQUARE
-25AB ; [*087F.0020.0002] # WHITE SMALL SQUARE
-25AC ; [*0880.0020.0002] # BLACK RECTANGLE
-25AD ; [*0881.0020.0002] # WHITE RECTANGLE
-25AE ; [*0882.0020.0002] # BLACK VERTICAL RECTANGLE
-25AF ; [*0883.0020.0002] # WHITE VERTICAL RECTANGLE
-25B0 ; [*0884.0020.0002] # BLACK PARALLELOGRAM
-25B1 ; [*0885.0020.0002] # WHITE PARALLELOGRAM
-25B2 ; [*0886.0020.0002] # BLACK UP-POINTING TRIANGLE
-25B3 ; [*0887.0020.0002] # WHITE UP-POINTING TRIANGLE
-25B4 ; [*0888.0020.0002] # BLACK UP-POINTING SMALL TRIANGLE
-25B5 ; [*0889.0020.0002] # WHITE UP-POINTING SMALL TRIANGLE
-25B6 ; [*088A.0020.0002] # BLACK RIGHT-POINTING TRIANGLE
-25B7 ; [*088B.0020.0002] # WHITE RIGHT-POINTING TRIANGLE
-25B8 ; [*088C.0020.0002] # BLACK RIGHT-POINTING SMALL TRIANGLE
-25B9 ; [*088D.0020.0002] # WHITE RIGHT-POINTING SMALL TRIANGLE
-25BA ; [*088E.0020.0002] # BLACK RIGHT-POINTING POINTER
-25BB ; [*088F.0020.0002] # WHITE RIGHT-POINTING POINTER
-25BC ; [*0890.0020.0002] # BLACK DOWN-POINTING TRIANGLE
-25BD ; [*0891.0020.0002] # WHITE DOWN-POINTING TRIANGLE
-25BE ; [*0892.0020.0002] # BLACK DOWN-POINTING SMALL TRIANGLE
-25BF ; [*0893.0020.0002] # WHITE DOWN-POINTING SMALL TRIANGLE
-25C0 ; [*0894.0020.0002] # BLACK LEFT-POINTING TRIANGLE
-25C1 ; [*0895.0020.0002] # WHITE LEFT-POINTING TRIANGLE
-25C2 ; [*0896.0020.0002] # BLACK LEFT-POINTING SMALL TRIANGLE
-25C3 ; [*0897.0020.0002] # WHITE LEFT-POINTING SMALL TRIANGLE
-25C4 ; [*0898.0020.0002] # BLACK LEFT-POINTING POINTER
-25C5 ; [*0899.0020.0002] # WHITE LEFT-POINTING POINTER
-25C6 ; [*089A.0020.0002] # BLACK DIAMOND
-25C7 ; [*089B.0020.0002] # WHITE DIAMOND
-25C8 ; [*089C.0020.0002] # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
-25C9 ; [*089D.0020.0002] # FISHEYE
-25CA ; [*089E.0020.0002] # LOZENGE
-25CB ; [*089F.0020.0002] # WHITE CIRCLE
-25CC ; [*08A0.0020.0002] # DOTTED CIRCLE
-25CD ; [*08A1.0020.0002] # CIRCLE WITH VERTICAL FILL
-25CE ; [*08A2.0020.0002] # BULLSEYE
-25CF ; [*08A3.0020.0002] # BLACK CIRCLE
-25D0 ; [*08A4.0020.0002] # CIRCLE WITH LEFT HALF BLACK
-25D1 ; [*08A5.0020.0002] # CIRCLE WITH RIGHT HALF BLACK
-25D2 ; [*08A6.0020.0002] # CIRCLE WITH LOWER HALF BLACK
-25D3 ; [*08A7.0020.0002] # CIRCLE WITH UPPER HALF BLACK
-25D4 ; [*08A8.0020.0002] # CIRCLE WITH UPPER RIGHT QUADRANT BLACK
-25D5 ; [*08A9.0020.0002] # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
-25D6 ; [*08AA.0020.0002] # LEFT HALF BLACK CIRCLE
-25D7 ; [*08AB.0020.0002] # RIGHT HALF BLACK CIRCLE
-25D8 ; [*08AC.0020.0002] # INVERSE BULLET
-25D9 ; [*08AD.0020.0002] # INVERSE WHITE CIRCLE
-25DA ; [*08AE.0020.0002] # UPPER HALF INVERSE WHITE CIRCLE
-25DB ; [*08AF.0020.0002] # LOWER HALF INVERSE WHITE CIRCLE
-25DC ; [*08B0.0020.0002] # UPPER LEFT QUADRANT CIRCULAR ARC
-25DD ; [*08B1.0020.0002] # UPPER RIGHT QUADRANT CIRCULAR ARC
-25DE ; [*08B2.0020.0002] # LOWER RIGHT QUADRANT CIRCULAR ARC
-25DF ; [*08B3.0020.0002] # LOWER LEFT QUADRANT CIRCULAR ARC
-25E0 ; [*08B4.0020.0002] # UPPER HALF CIRCLE
-25E1 ; [*08B5.0020.0002] # LOWER HALF CIRCLE
-25E2 ; [*08B6.0020.0002] # BLACK LOWER RIGHT TRIANGLE
-25E3 ; [*08B7.0020.0002] # BLACK LOWER LEFT TRIANGLE
-25E4 ; [*08B8.0020.0002] # BLACK UPPER LEFT TRIANGLE
-25E5 ; [*08B9.0020.0002] # BLACK UPPER RIGHT TRIANGLE
-25E6 ; [*08BA.0020.0002] # WHITE BULLET
-25E7 ; [*08BB.0020.0002] # SQUARE WITH LEFT HALF BLACK
-25E8 ; [*08BC.0020.0002] # SQUARE WITH RIGHT HALF BLACK
-25E9 ; [*08BD.0020.0002] # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
-25EA ; [*08BE.0020.0002] # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
-25EB ; [*08BF.0020.0002] # WHITE SQUARE WITH VERTICAL BISECTING LINE
-25EC ; [*08C0.0020.0002] # WHITE UP-POINTING TRIANGLE WITH DOT
-25ED ; [*08C1.0020.0002] # UP-POINTING TRIANGLE WITH LEFT HALF BLACK
-25EE ; [*08C2.0020.0002] # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
-25EF ; [*08C3.0020.0002] # LARGE CIRCLE
-25F0 ; [*08C4.0020.0002] # WHITE SQUARE WITH UPPER LEFT QUADRANT
-25F1 ; [*08C5.0020.0002] # WHITE SQUARE WITH LOWER LEFT QUADRANT
-25F2 ; [*08C6.0020.0002] # WHITE SQUARE WITH LOWER RIGHT QUADRANT
-25F3 ; [*08C7.0020.0002] # WHITE SQUARE WITH UPPER RIGHT QUADRANT
-25F4 ; [*08C8.0020.0002] # WHITE CIRCLE WITH UPPER LEFT QUADRANT
-25F5 ; [*08C9.0020.0002] # WHITE CIRCLE WITH LOWER LEFT QUADRANT
-25F6 ; [*08CA.0020.0002] # WHITE CIRCLE WITH LOWER RIGHT QUADRANT
-25F7 ; [*08CB.0020.0002] # WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8 ; [*08CC.0020.0002] # UPPER LEFT TRIANGLE
-25F9 ; [*08CD.0020.0002] # UPPER RIGHT TRIANGLE
-25FA ; [*08CE.0020.0002] # LOWER LEFT TRIANGLE
-25FB ; [*08CF.0020.0002] # WHITE MEDIUM SQUARE
-25FC ; [*08D0.0020.0002] # BLACK MEDIUM SQUARE
-25FD ; [*08D1.0020.0002] # WHITE MEDIUM SMALL SQUARE
-25FE ; [*08D2.0020.0002] # BLACK MEDIUM SMALL SQUARE
-25FF ; [*08D3.0020.0002] # LOWER RIGHT TRIANGLE
-2600 ; [*08D4.0020.0002] # BLACK SUN WITH RAYS
-2601 ; [*08D5.0020.0002] # CLOUD
-2602 ; [*08D6.0020.0002] # UMBRELLA
-2603 ; [*08D7.0020.0002] # SNOWMAN
-2604 ; [*08D8.0020.0002] # COMET
-2605 ; [*08D9.0020.0002] # BLACK STAR
-2606 ; [*08DA.0020.0002] # WHITE STAR
-2607 ; [*08DB.0020.0002] # LIGHTNING
-2608 ; [*08DC.0020.0002] # THUNDERSTORM
-2609 ; [*08DD.0020.0002] # SUN
-260A ; [*08DE.0020.0002] # ASCENDING NODE
-260B ; [*08DF.0020.0002] # DESCENDING NODE
-260C ; [*08E0.0020.0002] # CONJUNCTION
-260D ; [*08E1.0020.0002] # OPPOSITION
-260E ; [*08E2.0020.0002] # BLACK TELEPHONE
-260F ; [*08E3.0020.0002] # WHITE TELEPHONE
-2610 ; [*08E4.0020.0002] # BALLOT BOX
-2611 ; [*08E5.0020.0002] # BALLOT BOX WITH CHECK
-2612 ; [*08E6.0020.0002] # BALLOT BOX WITH X
-2613 ; [*08E7.0020.0002] # SALTIRE
-2614 ; [*08E8.0020.0002] # UMBRELLA WITH RAIN DROPS
-2615 ; [*08E9.0020.0002] # HOT BEVERAGE
-2616 ; [*08EA.0020.0002] # WHITE SHOGI PIECE
-2617 ; [*08EB.0020.0002] # BLACK SHOGI PIECE
-2618 ; [*08EC.0020.0002] # SHAMROCK
-2619 ; [*08ED.0020.0002] # REVERSED ROTATED FLORAL HEART BULLET
-261A ; [*08EE.0020.0002] # BLACK LEFT POINTING INDEX
-261B ; [*08EF.0020.0002] # BLACK RIGHT POINTING INDEX
-261C ; [*08F0.0020.0002] # WHITE LEFT POINTING INDEX
-261D ; [*08F1.0020.0002] # WHITE UP POINTING INDEX
-261E ; [*08F2.0020.0002] # WHITE RIGHT POINTING INDEX
-261F ; [*08F3.0020.0002] # WHITE DOWN POINTING INDEX
-2620 ; [*08F4.0020.0002] # SKULL AND CROSSBONES
-2621 ; [*08F5.0020.0002] # CAUTION SIGN
-2622 ; [*08F6.0020.0002] # RADIOACTIVE SIGN
-2623 ; [*08F7.0020.0002] # BIOHAZARD SIGN
-2624 ; [*08F8.0020.0002] # CADUCEUS
-2625 ; [*08F9.0020.0002] # ANKH
-2626 ; [*08FA.0020.0002] # ORTHODOX CROSS
-2627 ; [*08FB.0020.0002] # CHI RHO
-2628 ; [*08FC.0020.0002] # CROSS OF LORRAINE
-2629 ; [*08FD.0020.0002] # CROSS OF JERUSALEM
-262A ; [*08FE.0020.0002] # STAR AND CRESCENT
-262B ; [*08FF.0020.0002] # FARSI SYMBOL
-262C ; [*0900.0020.0002] # ADI SHAKTI
-262D ; [*0901.0020.0002] # HAMMER AND SICKLE
-262E ; [*0902.0020.0002] # PEACE SYMBOL
-262F ; [*0903.0020.0002] # YIN YANG
-2630 ; [*0E5A.0020.0002] # TRIGRAM FOR HEAVEN
-2631 ; [*0E5B.0020.0002] # TRIGRAM FOR LAKE
-2632 ; [*0E5C.0020.0002] # TRIGRAM FOR FIRE
-2633 ; [*0E5D.0020.0002] # TRIGRAM FOR THUNDER
-2634 ; [*0E5E.0020.0002] # TRIGRAM FOR WIND
-2635 ; [*0E5F.0020.0002] # TRIGRAM FOR WATER
-2636 ; [*0E60.0020.0002] # TRIGRAM FOR MOUNTAIN
-2637 ; [*0E61.0020.0002] # TRIGRAM FOR EARTH
-2638 ; [*0904.0020.0002] # WHEEL OF DHARMA
-2639 ; [*0905.0020.0002] # WHITE FROWNING FACE
-263A ; [*0906.0020.0002] # WHITE SMILING FACE
-263B ; [*0907.0020.0002] # BLACK SMILING FACE
-263C ; [*0908.0020.0002] # WHITE SUN WITH RAYS
-263D ; [*0909.0020.0002] # FIRST QUARTER MOON
-263E ; [*090A.0020.0002] # LAST QUARTER MOON
-263F ; [*090B.0020.0002] # MERCURY
-2640 ; [*090C.0020.0002] # FEMALE SIGN
-2641 ; [*090D.0020.0002] # EARTH
-2642 ; [*090E.0020.0002] # MALE SIGN
-2643 ; [*090F.0020.0002] # JUPITER
-2644 ; [*0910.0020.0002] # SATURN
-2645 ; [*0911.0020.0002] # URANUS
-2646 ; [*0912.0020.0002] # NEPTUNE
-2647 ; [*0913.0020.0002] # PLUTO
-2648 ; [*0914.0020.0002] # ARIES
-2649 ; [*0915.0020.0002] # TAURUS
-264A ; [*0916.0020.0002] # GEMINI
-264B ; [*0917.0020.0002] # CANCER
-264C ; [*0918.0020.0002] # LEO
-264D ; [*0919.0020.0002] # VIRGO
-264E ; [*091A.0020.0002] # LIBRA
-264F ; [*091B.0020.0002] # SCORPIUS
-2650 ; [*091C.0020.0002] # SAGITTARIUS
-2651 ; [*091D.0020.0002] # CAPRICORN
-2652 ; [*091E.0020.0002] # AQUARIUS
-2653 ; [*091F.0020.0002] # PISCES
-2654 ; [*0920.0020.0002] # WHITE CHESS KING
-2655 ; [*0921.0020.0002] # WHITE CHESS QUEEN
-2656 ; [*0922.0020.0002] # WHITE CHESS ROOK
-2657 ; [*0923.0020.0002] # WHITE CHESS BISHOP
-2658 ; [*0924.0020.0002] # WHITE CHESS KNIGHT
-2659 ; [*0925.0020.0002] # WHITE CHESS PAWN
-265A ; [*0926.0020.0002] # BLACK CHESS KING
-265B ; [*0927.0020.0002] # BLACK CHESS QUEEN
-265C ; [*0928.0020.0002] # BLACK CHESS ROOK
-265D ; [*0929.0020.0002] # BLACK CHESS BISHOP
-265E ; [*092A.0020.0002] # BLACK CHESS KNIGHT
-265F ; [*092B.0020.0002] # BLACK CHESS PAWN
-2660 ; [*092C.0020.0002] # BLACK SPADE SUIT
-2661 ; [*092D.0020.0002] # WHITE HEART SUIT
-2662 ; [*092E.0020.0002] # WHITE DIAMOND SUIT
-2663 ; [*092F.0020.0002] # BLACK CLUB SUIT
-2664 ; [*0930.0020.0002] # WHITE SPADE SUIT
-2665 ; [*0931.0020.0002] # BLACK HEART SUIT
-2666 ; [*0932.0020.0002] # BLACK DIAMOND SUIT
-2667 ; [*0933.0020.0002] # WHITE CLUB SUIT
-2668 ; [*0934.0020.0002] # HOT SPRINGS
-2669 ; [*0935.0020.0002] # QUARTER NOTE
-266A ; [*0936.0020.0002] # EIGHTH NOTE
-266B ; [*0937.0020.0002] # BEAMED EIGHTH NOTES
-266C ; [*0938.0020.0002] # BEAMED SIXTEENTH NOTES
-266D ; [*10A9.0020.0002] # MUSIC FLAT SIGN
-266E ; [*10AA.0020.0002] # MUSIC NATURAL SIGN
-266F ; [*10AB.0020.0002] # MUSIC SHARP SIGN
-2670 ; [*0939.0020.0002] # WEST SYRIAC CROSS
-2671 ; [*093A.0020.0002] # EAST SYRIAC CROSS
-2672 ; [*093B.0020.0002] # UNIVERSAL RECYCLING SYMBOL
-2673 ; [*093C.0020.0002] # RECYCLING SYMBOL FOR TYPE-1 PLASTICS
-2674 ; [*093D.0020.0002] # RECYCLING SYMBOL FOR TYPE-2 PLASTICS
-2675 ; [*093E.0020.0002] # RECYCLING SYMBOL FOR TYPE-3 PLASTICS
-2676 ; [*093F.0020.0002] # RECYCLING SYMBOL FOR TYPE-4 PLASTICS
-2677 ; [*0940.0020.0002] # RECYCLING SYMBOL FOR TYPE-5 PLASTICS
-2678 ; [*0941.0020.0002] # RECYCLING SYMBOL FOR TYPE-6 PLASTICS
-2679 ; [*0942.0020.0002] # RECYCLING SYMBOL FOR TYPE-7 PLASTICS
-267A ; [*0943.0020.0002] # RECYCLING SYMBOL FOR GENERIC MATERIALS
-267B ; [*0944.0020.0002] # BLACK UNIVERSAL RECYCLING SYMBOL
-267C ; [*0945.0020.0002] # RECYCLED PAPER SYMBOL
-267D ; [*0946.0020.0002] # PARTIALLY-RECYCLED PAPER SYMBOL
-267E ; [*0947.0020.0002] # PERMANENT PAPER SIGN
-267F ; [*0948.0020.0002] # WHEELCHAIR SYMBOL
-2680 ; [*0949.0020.0002] # DIE FACE-1
-2681 ; [*094A.0020.0002] # DIE FACE-2
-2682 ; [*094B.0020.0002] # DIE FACE-3
-2683 ; [*094C.0020.0002] # DIE FACE-4
-2684 ; [*094D.0020.0002] # DIE FACE-5
-2685 ; [*094E.0020.0002] # DIE FACE-6
-2686 ; [*094F.0020.0002] # WHITE CIRCLE WITH DOT RIGHT
-2687 ; [*0950.0020.0002] # WHITE CIRCLE WITH TWO DOTS
-2688 ; [*0951.0020.0002] # BLACK CIRCLE WITH WHITE DOT RIGHT
-2689 ; [*0952.0020.0002] # BLACK CIRCLE WITH TWO WHITE DOTS
-268A ; [*0E54.0020.0002] # MONOGRAM FOR YANG
-268B ; [*0E55.0020.0002] # MONOGRAM FOR YIN
-268C ; [*0E56.0020.0002] # DIGRAM FOR GREATER YANG
-268D ; [*0E57.0020.0002] # DIGRAM FOR LESSER YIN
-268E ; [*0E58.0020.0002] # DIGRAM FOR LESSER YANG
-268F ; [*0E59.0020.0002] # DIGRAM FOR GREATER YIN
-2690 ; [*0953.0020.0002] # WHITE FLAG
-2691 ; [*0954.0020.0002] # BLACK FLAG
-2692 ; [*0955.0020.0002] # HAMMER AND PICK
-2693 ; [*0956.0020.0002] # ANCHOR
-2694 ; [*0957.0020.0002] # CROSSED SWORDS
-2695 ; [*0958.0020.0002] # STAFF OF AESCULAPIUS
-2696 ; [*0959.0020.0002] # SCALES
-2697 ; [*095A.0020.0002] # ALEMBIC
-2698 ; [*095B.0020.0002] # FLOWER
-2699 ; [*095C.0020.0002] # GEAR
-269A ; [*095D.0020.0002] # STAFF OF HERMES
-269B ; [*095E.0020.0002] # ATOM SYMBOL
-269C ; [*095F.0020.0002] # FLEUR-DE-LIS
-269D ; [*0960.0020.0002] # OUTLINED WHITE STAR
-269E ; [*0961.0020.0002] # THREE LINES CONVERGING RIGHT
-269F ; [*0962.0020.0002] # THREE LINES CONVERGING LEFT
-26A0 ; [*0963.0020.0002] # WARNING SIGN
-26A1 ; [*0964.0020.0002] # HIGH VOLTAGE SIGN
-26A2 ; [*0965.0020.0002] # DOUBLED FEMALE SIGN
-26A3 ; [*0966.0020.0002] # DOUBLED MALE SIGN
-26A4 ; [*0967.0020.0002] # INTERLOCKED FEMALE AND MALE SIGN
-26A5 ; [*0968.0020.0002] # MALE AND FEMALE SIGN
-26A6 ; [*0969.0020.0002] # MALE WITH STROKE SIGN
-26A7 ; [*096A.0020.0002] # MALE WITH STROKE AND MALE AND FEMALE SIGN
-26A8 ; [*096B.0020.0002] # VERTICAL MALE WITH STROKE SIGN
-26A9 ; [*096C.0020.0002] # HORIZONTAL MALE WITH STROKE SIGN
-26AA ; [*096D.0020.0002] # MEDIUM WHITE CIRCLE
-26AB ; [*096E.0020.0002] # MEDIUM BLACK CIRCLE
-26AC ; [*096F.0020.0002] # MEDIUM SMALL WHITE CIRCLE
-26AD ; [*0970.0020.0002] # MARRIAGE SYMBOL
-26AE ; [*0971.0020.0002] # DIVORCE SYMBOL
-26AF ; [*0972.0020.0002] # UNMARRIED PARTNERSHIP SYMBOL
-26B0 ; [*0973.0020.0002] # COFFIN
-26B1 ; [*0974.0020.0002] # FUNERAL URN
-26B2 ; [*0975.0020.0002] # NEUTER
-26B3 ; [*0976.0020.0002] # CERES
-26B4 ; [*0977.0020.0002] # PALLAS
-26B5 ; [*0978.0020.0002] # JUNO
-26B6 ; [*0979.0020.0002] # VESTA
-26B7 ; [*097A.0020.0002] # CHIRON
-26B8 ; [*097B.0020.0002] # BLACK MOON LILITH
-26B9 ; [*097C.0020.0002] # SEXTILE
-26BA ; [*097D.0020.0002] # SEMISEXTILE
-26BB ; [*097E.0020.0002] # QUINCUNX
-26BC ; [*097F.0020.0002] # SESQUIQUADRATE
-26BD ; [*0980.0020.0002] # SOCCER BALL
-26BE ; [*0981.0020.0002] # BASEBALL
-26BF ; [*0982.0020.0002] # SQUARED KEY
-26C0 ; [*0983.0020.0002] # WHITE DRAUGHTS MAN
-26C1 ; [*0984.0020.0002] # WHITE DRAUGHTS KING
-26C2 ; [*0985.0020.0002] # BLACK DRAUGHTS MAN
-26C3 ; [*0986.0020.0002] # BLACK DRAUGHTS KING
-26C4 ; [*0987.0020.0002] # SNOWMAN WITHOUT SNOW
-26C5 ; [*0988.0020.0002] # SUN BEHIND CLOUD
-26C6 ; [*0989.0020.0002] # RAIN
-26C7 ; [*098A.0020.0002] # BLACK SNOWMAN
-26C8 ; [*098B.0020.0002] # THUNDER CLOUD AND RAIN
-26C9 ; [*098C.0020.0002] # TURNED WHITE SHOGI PIECE
-26CA ; [*098D.0020.0002] # TURNED BLACK SHOGI PIECE
-26CB ; [*098E.0020.0002] # WHITE DIAMOND IN SQUARE
-26CC ; [*098F.0020.0002] # CROSSING LANES
-26CD ; [*0990.0020.0002] # DISABLED CAR
-26CE ; [*0991.0020.0002] # OPHIUCHUS
-26CF ; [*0992.0020.0002] # PICK
-26D0 ; [*0993.0020.0002] # CAR SLIDING
-26D1 ; [*0994.0020.0002] # HELMET WITH WHITE CROSS
-26D2 ; [*0995.0020.0002] # CIRCLED CROSSING LANES
-26D3 ; [*0996.0020.0002] # CHAINS
-26D4 ; [*0997.0020.0002] # NO ENTRY
-26D5 ; [*0998.0020.0002] # ALTERNATE ONE-WAY LEFT WAY TRAFFIC
-26D6 ; [*0999.0020.0002] # BLACK TWO-WAY LEFT WAY TRAFFIC
-26D7 ; [*099A.0020.0002] # WHITE TWO-WAY LEFT WAY TRAFFIC
-26D8 ; [*099B.0020.0002] # BLACK LEFT LANE MERGE
-26D9 ; [*099C.0020.0002] # WHITE LEFT LANE MERGE
-26DA ; [*099D.0020.0002] # DRIVE SLOW SIGN
-26DB ; [*099E.0020.0002] # HEAVY WHITE DOWN-POINTING TRIANGLE
-26DC ; [*099F.0020.0002] # LEFT CLOSED ENTRY
-26DD ; [*09A0.0020.0002] # SQUARED SALTIRE
-26DE ; [*09A1.0020.0002] # FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
-26DF ; [*09A2.0020.0002] # BLACK TRUCK
-26E0 ; [*09A3.0020.0002] # RESTRICTED LEFT ENTRY-1
-26E1 ; [*09A4.0020.0002] # RESTRICTED LEFT ENTRY-2
-26E2 ; [*09A5.0020.0002] # ASTRONOMICAL SYMBOL FOR URANUS
-26E3 ; [*09A6.0020.0002] # HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
-26E4 ; [*09A7.0020.0002] # PENTAGRAM
-26E5 ; [*09A8.0020.0002] # RIGHT-HANDED INTERLACED PENTAGRAM
-26E6 ; [*09A9.0020.0002] # LEFT-HANDED INTERLACED PENTAGRAM
-26E7 ; [*09AA.0020.0002] # INVERTED PENTAGRAM
-26E8 ; [*09AB.0020.0002] # BLACK CROSS ON SHIELD
-26E9 ; [*09AC.0020.0002] # SHINTO SHRINE
-26EA ; [*09AD.0020.0002] # CHURCH
-26EB ; [*09AE.0020.0002] # CASTLE
-26EC ; [*09AF.0020.0002] # HISTORIC SITE
-26ED ; [*09B0.0020.0002] # GEAR WITHOUT HUB
-26EE ; [*09B1.0020.0002] # GEAR WITH HANDLES
-26EF ; [*09B2.0020.0002] # MAP SYMBOL FOR LIGHTHOUSE
-26F0 ; [*09B3.0020.0002] # MOUNTAIN
-26F1 ; [*09B4.0020.0002] # UMBRELLA ON GROUND
-26F2 ; [*09B5.0020.0002] # FOUNTAIN
-26F3 ; [*09B6.0020.0002] # FLAG IN HOLE
-26F4 ; [*09B7.0020.0002] # FERRY
-26F5 ; [*09B8.0020.0002] # SAILBOAT
-26F6 ; [*09B9.0020.0002] # SQUARE FOUR CORNERS
-26F7 ; [*09BA.0020.0002] # SKIER
-26F8 ; [*09BB.0020.0002] # ICE SKATE
-26F9 ; [*09BC.0020.0002] # PERSON WITH BALL
-26FA ; [*09BD.0020.0002] # TENT
-26FB ; [*09BE.0020.0002] # JAPANESE BANK SYMBOL
-26FC ; [*09BF.0020.0002] # HEADSTONE GRAVEYARD SYMBOL
-26FD ; [*09C0.0020.0002] # FUEL PUMP
-26FE ; [*09C1.0020.0002] # CUP ON BLACK SQUARE
-26FF ; [*09C2.0020.0002] # WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2700 ; [*09DD.0020.0002] # BLACK SAFETY SCISSORS
-2701 ; [*09DE.0020.0002] # UPPER BLADE SCISSORS
-2702 ; [*09DF.0020.0002] # BLACK SCISSORS
-2703 ; [*09E0.0020.0002] # LOWER BLADE SCISSORS
-2704 ; [*09E1.0020.0002] # WHITE SCISSORS
-2705 ; [*09E2.0020.0002] # WHITE HEAVY CHECK MARK
-2706 ; [*09E3.0020.0002] # TELEPHONE LOCATION SIGN
-2707 ; [*09E4.0020.0002] # TAPE DRIVE
-2708 ; [*09E5.0020.0002] # AIRPLANE
-2709 ; [*09E6.0020.0002] # ENVELOPE
-270A ; [*09E7.0020.0002] # RAISED FIST
-270B ; [*09E8.0020.0002] # RAISED HAND
-270C ; [*09E9.0020.0002] # VICTORY HAND
-270D ; [*09EA.0020.0002] # WRITING HAND
-270E ; [*09EB.0020.0002] # LOWER RIGHT PENCIL
-270F ; [*09EC.0020.0002] # PENCIL
-2710 ; [*09ED.0020.0002] # UPPER RIGHT PENCIL
-2711 ; [*09EE.0020.0002] # WHITE NIB
-2712 ; [*09EF.0020.0002] # BLACK NIB
-2713 ; [*09F0.0020.0002] # CHECK MARK
-2714 ; [*09F1.0020.0002] # HEAVY CHECK MARK
-2715 ; [*09F2.0020.0002] # MULTIPLICATION X
-2716 ; [*09F3.0020.0002] # HEAVY MULTIPLICATION X
-2717 ; [*09F4.0020.0002] # BALLOT X
-2718 ; [*09F5.0020.0002] # HEAVY BALLOT X
-2719 ; [*09F6.0020.0002] # OUTLINED GREEK CROSS
-271A ; [*09F7.0020.0002] # HEAVY GREEK CROSS
-271B ; [*09F8.0020.0002] # OPEN CENTRE CROSS
-271C ; [*09F9.0020.0002] # HEAVY OPEN CENTRE CROSS
-271D ; [*09FA.0020.0002] # LATIN CROSS
-271E ; [*09FB.0020.0002] # SHADOWED WHITE LATIN CROSS
-271F ; [*09FC.0020.0002] # OUTLINED LATIN CROSS
-2720 ; [*09FD.0020.0002] # MALTESE CROSS
-2721 ; [*09FE.0020.0002] # STAR OF DAVID
-2722 ; [*09FF.0020.0002] # FOUR TEARDROP-SPOKED ASTERISK
-2723 ; [*0A00.0020.0002] # FOUR BALLOON-SPOKED ASTERISK
-2724 ; [*0A01.0020.0002] # HEAVY FOUR BALLOON-SPOKED ASTERISK
-2725 ; [*0A02.0020.0002] # FOUR CLUB-SPOKED ASTERISK
-2726 ; [*0A03.0020.0002] # BLACK FOUR POINTED STAR
-2727 ; [*0A04.0020.0002] # WHITE FOUR POINTED STAR
-2728 ; [*0A05.0020.0002] # SPARKLES
-2729 ; [*0A06.0020.0002] # STRESS OUTLINED WHITE STAR
-272A ; [*0A07.0020.0002] # CIRCLED WHITE STAR
-272B ; [*0A08.0020.0002] # OPEN CENTRE BLACK STAR
-272C ; [*0A09.0020.0002] # BLACK CENTRE WHITE STAR
-272D ; [*0A0A.0020.0002] # OUTLINED BLACK STAR
-272E ; [*0A0B.0020.0002] # HEAVY OUTLINED BLACK STAR
-272F ; [*0A0C.0020.0002] # PINWHEEL STAR
-2730 ; [*0A0D.0020.0002] # SHADOWED WHITE STAR
-2731 ; [*0A0E.0020.0002] # HEAVY ASTERISK
-2732 ; [*0A0F.0020.0002] # OPEN CENTRE ASTERISK
-2733 ; [*0A10.0020.0002] # EIGHT SPOKED ASTERISK
-2734 ; [*0A11.0020.0002] # EIGHT POINTED BLACK STAR
-2735 ; [*0A12.0020.0002] # EIGHT POINTED PINWHEEL STAR
-2736 ; [*0A13.0020.0002] # SIX POINTED BLACK STAR
-2737 ; [*0A14.0020.0002] # EIGHT POINTED RECTILINEAR BLACK STAR
-2738 ; [*0A15.0020.0002] # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
-2739 ; [*0A16.0020.0002] # TWELVE POINTED BLACK STAR
-273A ; [*0A17.0020.0002] # SIXTEEN POINTED ASTERISK
-273B ; [*0A18.0020.0002] # TEARDROP-SPOKED ASTERISK
-273C ; [*0A19.0020.0002] # OPEN CENTRE TEARDROP-SPOKED ASTERISK
-273D ; [*0A1A.0020.0002] # HEAVY TEARDROP-SPOKED ASTERISK
-273E ; [*0A1B.0020.0002] # SIX PETALLED BLACK AND WHITE FLORETTE
-273F ; [*0A1C.0020.0002] # BLACK FLORETTE
-2740 ; [*0A1D.0020.0002] # WHITE FLORETTE
-2741 ; [*0A1E.0020.0002] # EIGHT PETALLED OUTLINED BLACK FLORETTE
-2742 ; [*0A1F.0020.0002] # CIRCLED OPEN CENTRE EIGHT POINTED STAR
-2743 ; [*0A20.0020.0002] # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
-2744 ; [*0A21.0020.0002] # SNOWFLAKE
-2745 ; [*0A22.0020.0002] # TIGHT TRIFOLIATE SNOWFLAKE
-2746 ; [*0A23.0020.0002] # HEAVY CHEVRON SNOWFLAKE
-2747 ; [*0A24.0020.0002] # SPARKLE
-2748 ; [*0A25.0020.0002] # HEAVY SPARKLE
-2749 ; [*0A26.0020.0002] # BALLOON-SPOKED ASTERISK
-274A ; [*0A27.0020.0002] # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274B ; [*0A28.0020.0002] # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274C ; [*0A29.0020.0002] # CROSS MARK
-274D ; [*0A2A.0020.0002] # SHADOWED WHITE CIRCLE
-274E ; [*0A2B.0020.0002] # NEGATIVE SQUARED CROSS MARK
-274F ; [*0A2C.0020.0002] # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
-2750 ; [*0A2D.0020.0002] # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
-2751 ; [*0A2E.0020.0002] # LOWER RIGHT SHADOWED WHITE SQUARE
-2752 ; [*0A2F.0020.0002] # UPPER RIGHT SHADOWED WHITE SQUARE
-2753 ; [*0A30.0020.0002] # BLACK QUESTION MARK ORNAMENT
-2754 ; [*0A31.0020.0002] # WHITE QUESTION MARK ORNAMENT
-2755 ; [*0A32.0020.0002] # WHITE EXCLAMATION MARK ORNAMENT
-2756 ; [*0A33.0020.0002] # BLACK DIAMOND MINUS WHITE X
-2757 ; [*0A34.0020.0002] # HEAVY EXCLAMATION MARK SYMBOL
-2758 ; [*0A35.0020.0002] # LIGHT VERTICAL BAR
-2759 ; [*0A36.0020.0002] # MEDIUM VERTICAL BAR
-275A ; [*0A37.0020.0002] # HEAVY VERTICAL BAR
-275B ; [*0A38.0020.0002] # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
-275C ; [*0A39.0020.0002] # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
-275D ; [*0A3A.0020.0002] # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-275E ; [*0A3B.0020.0002] # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-275F ; [*0A3C.0020.0002] # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
-2760 ; [*0A3D.0020.0002] # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761 ; [*0A3E.0020.0002] # CURVED STEM PARAGRAPH SIGN ORNAMENT
-2762 ; [*0A3F.0020.0002] # HEAVY EXCLAMATION MARK ORNAMENT
-2763 ; [*0A40.0020.0002] # HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764 ; [*0A41.0020.0002] # HEAVY BLACK HEART
-2765 ; [*0A42.0020.0002] # ROTATED HEAVY BLACK HEART BULLET
-2766 ; [*0A43.0020.0002] # FLORAL HEART
-2767 ; [*0A44.0020.0002] # ROTATED FLORAL HEART BULLET
-2768 ; [*0340.0020.0002] # MEDIUM LEFT PARENTHESIS ORNAMENT
-2769 ; [*0341.0020.0002] # MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A ; [*0342.0020.0002] # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B ; [*0343.0020.0002] # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C ; [*0344.0020.0002] # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D ; [*0345.0020.0002] # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E ; [*0346.0020.0002] # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F ; [*0347.0020.0002] # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770 ; [*0348.0020.0002] # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771 ; [*0349.0020.0002] # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772 ; [*034A.0020.0002] # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773 ; [*034B.0020.0002] # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774 ; [*034C.0020.0002] # MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775 ; [*034D.0020.0002] # MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2794 ; [*0A45.0020.0002] # HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2795 ; [*0A46.0020.0002] # HEAVY PLUS SIGN
-2796 ; [*0A47.0020.0002] # HEAVY MINUS SIGN
-2797 ; [*0A48.0020.0002] # HEAVY DIVISION SIGN
-2798 ; [*0A49.0020.0002] # HEAVY SOUTH EAST ARROW
-2799 ; [*0A4A.0020.0002] # HEAVY RIGHTWARDS ARROW
-279A ; [*0A4B.0020.0002] # HEAVY NORTH EAST ARROW
-279B ; [*0A4C.0020.0002] # DRAFTING POINT RIGHTWARDS ARROW
-279C ; [*0A4D.0020.0002] # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
-279D ; [*0A4E.0020.0002] # TRIANGLE-HEADED RIGHTWARDS ARROW
-279E ; [*0A4F.0020.0002] # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
-279F ; [*0A50.0020.0002] # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A0 ; [*0A51.0020.0002] # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
-27A1 ; [*0A52.0020.0002] # BLACK RIGHTWARDS ARROW
-27A2 ; [*0A53.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
-27A3 ; [*0A54.0020.0002] # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
-27A4 ; [*0A55.0020.0002] # BLACK RIGHTWARDS ARROWHEAD
-27A5 ; [*0A56.0020.0002] # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-27A6 ; [*0A57.0020.0002] # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-27A7 ; [*0A58.0020.0002] # SQUAT BLACK RIGHTWARDS ARROW
-27A8 ; [*0A59.0020.0002] # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
-27A9 ; [*0A5A.0020.0002] # RIGHT-SHADED WHITE RIGHTWARDS ARROW
-27AA ; [*0A5B.0020.0002] # LEFT-SHADED WHITE RIGHTWARDS ARROW
-27AB ; [*0A5C.0020.0002] # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AC ; [*0A5D.0020.0002] # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
-27AD ; [*0A5E.0020.0002] # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AE ; [*0A5F.0020.0002] # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27AF ; [*0A60.0020.0002] # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0 ; [*0A61.0020.0002] # CURLY LOOP
-27B1 ; [*0A62.0020.0002] # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B2 ; [*0A63.0020.0002] # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
-27B3 ; [*0A64.0020.0002] # WHITE-FEATHERED RIGHTWARDS ARROW
-27B4 ; [*0A65.0020.0002] # BLACK-FEATHERED SOUTH EAST ARROW
-27B5 ; [*0A66.0020.0002] # BLACK-FEATHERED RIGHTWARDS ARROW
-27B6 ; [*0A67.0020.0002] # BLACK-FEATHERED NORTH EAST ARROW
-27B7 ; [*0A68.0020.0002] # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
-27B8 ; [*0A69.0020.0002] # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
-27B9 ; [*0A6A.0020.0002] # HEAVY BLACK-FEATHERED NORTH EAST ARROW
-27BA ; [*0A6B.0020.0002] # TEARDROP-BARBED RIGHTWARDS ARROW
-27BB ; [*0A6C.0020.0002] # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
-27BC ; [*0A6D.0020.0002] # WEDGE-TAILED RIGHTWARDS ARROW
-27BD ; [*0A6E.0020.0002] # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
-27BE ; [*0A6F.0020.0002] # OPEN-OUTLINED RIGHTWARDS ARROW
-27BF ; [*0A70.0020.0002] # DOUBLE CURLY LOOP
-27C0 ; [*0A71.0020.0002] # THREE DIMENSIONAL ANGLE
-27C1 ; [*0A72.0020.0002] # WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
-27C2 ; [*0A73.0020.0002] # PERPENDICULAR
-27C3 ; [*0A74.0020.0002] # OPEN SUBSET
-27C4 ; [*0A75.0020.0002] # OPEN SUPERSET
-27C5 ; [*0334.0020.0002] # LEFT S-SHAPED BAG DELIMITER
-27C6 ; [*0335.0020.0002] # RIGHT S-SHAPED BAG DELIMITER
-27C7 ; [*0A76.0020.0002] # OR WITH DOT INSIDE
-27C8 ; [*0A77.0020.0002] # REVERSE SOLIDUS PRECEDING SUBSET
-27C9 ; [*0A78.0020.0002] # SUPERSET PRECEDING SOLIDUS
-27CA ; [*0A79.0020.0002] # VERTICAL BAR WITH HORIZONTAL STROKE
-27CB ; [*0A7A.0020.0002] # MATHEMATICAL RISING DIAGONAL
-27CC ; [*0A7B.0020.0002] # LONG DIVISION
-27CD ; [*0A7C.0020.0002] # MATHEMATICAL FALLING DIAGONAL
-27CE ; [*0A7D.0020.0002] # SQUARED LOGICAL AND
-27CF ; [*0A7E.0020.0002] # SQUARED LOGICAL OR
-27D0 ; [*0A7F.0020.0002] # WHITE DIAMOND WITH CENTRED DOT
-27D1 ; [*0A80.0020.0002] # AND WITH DOT
-27D2 ; [*0A81.0020.0002] # ELEMENT OF OPENING UPWARDS
-27D3 ; [*0A82.0020.0002] # LOWER RIGHT CORNER WITH DOT
-27D4 ; [*0A83.0020.0002] # UPPER LEFT CORNER WITH DOT
-27D5 ; [*0A84.0020.0002] # LEFT OUTER JOIN
-27D6 ; [*0A85.0020.0002] # RIGHT OUTER JOIN
-27D7 ; [*0A86.0020.0002] # FULL OUTER JOIN
-27D8 ; [*0A87.0020.0002] # LARGE UP TACK
-27D9 ; [*0A88.0020.0002] # LARGE DOWN TACK
-27DA ; [*0A89.0020.0002] # LEFT AND RIGHT DOUBLE TURNSTILE
-27DB ; [*0A8A.0020.0002] # LEFT AND RIGHT TACK
-27DC ; [*0A8B.0020.0002] # LEFT MULTIMAP
-27DD ; [*0A8C.0020.0002] # LONG RIGHT TACK
-27DE ; [*0A8D.0020.0002] # LONG LEFT TACK
-27DF ; [*0A8E.0020.0002] # UP TACK WITH CIRCLE ABOVE
-27E0 ; [*0A8F.0020.0002] # LOZENGE DIVIDED BY HORIZONTAL RULE
-27E1 ; [*0A90.0020.0002] # WHITE CONCAVE-SIDED DIAMOND
-27E2 ; [*0A91.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
-27E3 ; [*0A92.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
-27E4 ; [*0A93.0020.0002] # WHITE SQUARE WITH LEFTWARDS TICK
-27E5 ; [*0A94.0020.0002] # WHITE SQUARE WITH RIGHTWARDS TICK
-27E6 ; [*0336.0020.0002] # MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7 ; [*0337.0020.0002] # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8 ; [*0338.0020.0002] # MATHEMATICAL LEFT ANGLE BRACKET
-27E9 ; [*0339.0020.0002] # MATHEMATICAL RIGHT ANGLE BRACKET
-27EA ; [*033A.0020.0002] # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB ; [*033B.0020.0002] # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27EC ; [*033C.0020.0002] # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
-27ED ; [*033D.0020.0002] # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
-27EE ; [*033E.0020.0002] # MATHEMATICAL LEFT FLATTENED PARENTHESIS
-27EF ; [*033F.0020.0002] # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
-27F0 ; [*0A95.0020.0002] # UPWARDS QUADRUPLE ARROW
-27F1 ; [*0A96.0020.0002] # DOWNWARDS QUADRUPLE ARROW
-27F2 ; [*0A97.0020.0002] # ANTICLOCKWISE GAPPED CIRCLE ARROW
-27F3 ; [*0A98.0020.0002] # CLOCKWISE GAPPED CIRCLE ARROW
-27F4 ; [*0A99.0020.0002] # RIGHT ARROW WITH CIRCLED PLUS
-27F5 ; [*0A9A.0020.0002] # LONG LEFTWARDS ARROW
-27F6 ; [*0A9B.0020.0002] # LONG RIGHTWARDS ARROW
-27F7 ; [*0A9C.0020.0002] # LONG LEFT RIGHT ARROW
-27F8 ; [*0A9D.0020.0002] # LONG LEFTWARDS DOUBLE ARROW
-27F9 ; [*0A9E.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW
-27FA ; [*0A9F.0020.0002] # LONG LEFT RIGHT DOUBLE ARROW
-27FB ; [*0AA0.0020.0002] # LONG LEFTWARDS ARROW FROM BAR
-27FC ; [*0AA1.0020.0002] # LONG RIGHTWARDS ARROW FROM BAR
-27FD ; [*0AA2.0020.0002] # LONG LEFTWARDS DOUBLE ARROW FROM BAR
-27FE ; [*0AA3.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW FROM BAR
-27FF ; [*0AA4.0020.0002] # LONG RIGHTWARDS SQUIGGLE ARROW
-2800 ; [*0D54.0020.0002] # BRAILLE PATTERN BLANK
-2801 ; [*0D55.0020.0002] # BRAILLE PATTERN DOTS-1
-2802 ; [*0D56.0020.0002] # BRAILLE PATTERN DOTS-2
-2803 ; [*0D57.0020.0002] # BRAILLE PATTERN DOTS-12
-2804 ; [*0D58.0020.0002] # BRAILLE PATTERN DOTS-3
-2805 ; [*0D59.0020.0002] # BRAILLE PATTERN DOTS-13
-2806 ; [*0D5A.0020.0002] # BRAILLE PATTERN DOTS-23
-2807 ; [*0D5B.0020.0002] # BRAILLE PATTERN DOTS-123
-2808 ; [*0D5C.0020.0002] # BRAILLE PATTERN DOTS-4
-2809 ; [*0D5D.0020.0002] # BRAILLE PATTERN DOTS-14
-280A ; [*0D5E.0020.0002] # BRAILLE PATTERN DOTS-24
-280B ; [*0D5F.0020.0002] # BRAILLE PATTERN DOTS-124
-280C ; [*0D60.0020.0002] # BRAILLE PATTERN DOTS-34
-280D ; [*0D61.0020.0002] # BRAILLE PATTERN DOTS-134
-280E ; [*0D62.0020.0002] # BRAILLE PATTERN DOTS-234
-280F ; [*0D63.0020.0002] # BRAILLE PATTERN DOTS-1234
-2810 ; [*0D64.0020.0002] # BRAILLE PATTERN DOTS-5
-2811 ; [*0D65.0020.0002] # BRAILLE PATTERN DOTS-15
-2812 ; [*0D66.0020.0002] # BRAILLE PATTERN DOTS-25
-2813 ; [*0D67.0020.0002] # BRAILLE PATTERN DOTS-125
-2814 ; [*0D68.0020.0002] # BRAILLE PATTERN DOTS-35
-2815 ; [*0D69.0020.0002] # BRAILLE PATTERN DOTS-135
-2816 ; [*0D6A.0020.0002] # BRAILLE PATTERN DOTS-235
-2817 ; [*0D6B.0020.0002] # BRAILLE PATTERN DOTS-1235
-2818 ; [*0D6C.0020.0002] # BRAILLE PATTERN DOTS-45
-2819 ; [*0D6D.0020.0002] # BRAILLE PATTERN DOTS-145
-281A ; [*0D6E.0020.0002] # BRAILLE PATTERN DOTS-245
-281B ; [*0D6F.0020.0002] # BRAILLE PATTERN DOTS-1245
-281C ; [*0D70.0020.0002] # BRAILLE PATTERN DOTS-345
-281D ; [*0D71.0020.0002] # BRAILLE PATTERN DOTS-1345
-281E ; [*0D72.0020.0002] # BRAILLE PATTERN DOTS-2345
-281F ; [*0D73.0020.0002] # BRAILLE PATTERN DOTS-12345
-2820 ; [*0D74.0020.0002] # BRAILLE PATTERN DOTS-6
-2821 ; [*0D75.0020.0002] # BRAILLE PATTERN DOTS-16
-2822 ; [*0D76.0020.0002] # BRAILLE PATTERN DOTS-26
-2823 ; [*0D77.0020.0002] # BRAILLE PATTERN DOTS-126
-2824 ; [*0D78.0020.0002] # BRAILLE PATTERN DOTS-36
-2825 ; [*0D79.0020.0002] # BRAILLE PATTERN DOTS-136
-2826 ; [*0D7A.0020.0002] # BRAILLE PATTERN DOTS-236
-2827 ; [*0D7B.0020.0002] # BRAILLE PATTERN DOTS-1236
-2828 ; [*0D7C.0020.0002] # BRAILLE PATTERN DOTS-46
-2829 ; [*0D7D.0020.0002] # BRAILLE PATTERN DOTS-146
-282A ; [*0D7E.0020.0002] # BRAILLE PATTERN DOTS-246
-282B ; [*0D7F.0020.0002] # BRAILLE PATTERN DOTS-1246
-282C ; [*0D80.0020.0002] # BRAILLE PATTERN DOTS-346
-282D ; [*0D81.0020.0002] # BRAILLE PATTERN DOTS-1346
-282E ; [*0D82.0020.0002] # BRAILLE PATTERN DOTS-2346
-282F ; [*0D83.0020.0002] # BRAILLE PATTERN DOTS-12346
-2830 ; [*0D84.0020.0002] # BRAILLE PATTERN DOTS-56
-2831 ; [*0D85.0020.0002] # BRAILLE PATTERN DOTS-156
-2832 ; [*0D86.0020.0002] # BRAILLE PATTERN DOTS-256
-2833 ; [*0D87.0020.0002] # BRAILLE PATTERN DOTS-1256
-2834 ; [*0D88.0020.0002] # BRAILLE PATTERN DOTS-356
-2835 ; [*0D89.0020.0002] # BRAILLE PATTERN DOTS-1356
-2836 ; [*0D8A.0020.0002] # BRAILLE PATTERN DOTS-2356
-2837 ; [*0D8B.0020.0002] # BRAILLE PATTERN DOTS-12356
-2838 ; [*0D8C.0020.0002] # BRAILLE PATTERN DOTS-456
-2839 ; [*0D8D.0020.0002] # BRAILLE PATTERN DOTS-1456
-283A ; [*0D8E.0020.0002] # BRAILLE PATTERN DOTS-2456
-283B ; [*0D8F.0020.0002] # BRAILLE PATTERN DOTS-12456
-283C ; [*0D90.0020.0002] # BRAILLE PATTERN DOTS-3456
-283D ; [*0D91.0020.0002] # BRAILLE PATTERN DOTS-13456
-283E ; [*0D92.0020.0002] # BRAILLE PATTERN DOTS-23456
-283F ; [*0D93.0020.0002] # BRAILLE PATTERN DOTS-123456
-2840 ; [*0D94.0020.0002] # BRAILLE PATTERN DOTS-7
-2841 ; [*0D95.0020.0002] # BRAILLE PATTERN DOTS-17
-2842 ; [*0D96.0020.0002] # BRAILLE PATTERN DOTS-27
-2843 ; [*0D97.0020.0002] # BRAILLE PATTERN DOTS-127
-2844 ; [*0D98.0020.0002] # BRAILLE PATTERN DOTS-37
-2845 ; [*0D99.0020.0002] # BRAILLE PATTERN DOTS-137
-2846 ; [*0D9A.0020.0002] # BRAILLE PATTERN DOTS-237
-2847 ; [*0D9B.0020.0002] # BRAILLE PATTERN DOTS-1237
-2848 ; [*0D9C.0020.0002] # BRAILLE PATTERN DOTS-47
-2849 ; [*0D9D.0020.0002] # BRAILLE PATTERN DOTS-147
-284A ; [*0D9E.0020.0002] # BRAILLE PATTERN DOTS-247
-284B ; [*0D9F.0020.0002] # BRAILLE PATTERN DOTS-1247
-284C ; [*0DA0.0020.0002] # BRAILLE PATTERN DOTS-347
-284D ; [*0DA1.0020.0002] # BRAILLE PATTERN DOTS-1347
-284E ; [*0DA2.0020.0002] # BRAILLE PATTERN DOTS-2347
-284F ; [*0DA3.0020.0002] # BRAILLE PATTERN DOTS-12347
-2850 ; [*0DA4.0020.0002] # BRAILLE PATTERN DOTS-57
-2851 ; [*0DA5.0020.0002] # BRAILLE PATTERN DOTS-157
-2852 ; [*0DA6.0020.0002] # BRAILLE PATTERN DOTS-257
-2853 ; [*0DA7.0020.0002] # BRAILLE PATTERN DOTS-1257
-2854 ; [*0DA8.0020.0002] # BRAILLE PATTERN DOTS-357
-2855 ; [*0DA9.0020.0002] # BRAILLE PATTERN DOTS-1357
-2856 ; [*0DAA.0020.0002] # BRAILLE PATTERN DOTS-2357
-2857 ; [*0DAB.0020.0002] # BRAILLE PATTERN DOTS-12357
-2858 ; [*0DAC.0020.0002] # BRAILLE PATTERN DOTS-457
-2859 ; [*0DAD.0020.0002] # BRAILLE PATTERN DOTS-1457
-285A ; [*0DAE.0020.0002] # BRAILLE PATTERN DOTS-2457
-285B ; [*0DAF.0020.0002] # BRAILLE PATTERN DOTS-12457
-285C ; [*0DB0.0020.0002] # BRAILLE PATTERN DOTS-3457
-285D ; [*0DB1.0020.0002] # BRAILLE PATTERN DOTS-13457
-285E ; [*0DB2.0020.0002] # BRAILLE PATTERN DOTS-23457
-285F ; [*0DB3.0020.0002] # BRAILLE PATTERN DOTS-123457
-2860 ; [*0DB4.0020.0002] # BRAILLE PATTERN DOTS-67
-2861 ; [*0DB5.0020.0002] # BRAILLE PATTERN DOTS-167
-2862 ; [*0DB6.0020.0002] # BRAILLE PATTERN DOTS-267
-2863 ; [*0DB7.0020.0002] # BRAILLE PATTERN DOTS-1267
-2864 ; [*0DB8.0020.0002] # BRAILLE PATTERN DOTS-367
-2865 ; [*0DB9.0020.0002] # BRAILLE PATTERN DOTS-1367
-2866 ; [*0DBA.0020.0002] # BRAILLE PATTERN DOTS-2367
-2867 ; [*0DBB.0020.0002] # BRAILLE PATTERN DOTS-12367
-2868 ; [*0DBC.0020.0002] # BRAILLE PATTERN DOTS-467
-2869 ; [*0DBD.0020.0002] # BRAILLE PATTERN DOTS-1467
-286A ; [*0DBE.0020.0002] # BRAILLE PATTERN DOTS-2467
-286B ; [*0DBF.0020.0002] # BRAILLE PATTERN DOTS-12467
-286C ; [*0DC0.0020.0002] # BRAILLE PATTERN DOTS-3467
-286D ; [*0DC1.0020.0002] # BRAILLE PATTERN DOTS-13467
-286E ; [*0DC2.0020.0002] # BRAILLE PATTERN DOTS-23467
-286F ; [*0DC3.0020.0002] # BRAILLE PATTERN DOTS-123467
-2870 ; [*0DC4.0020.0002] # BRAILLE PATTERN DOTS-567
-2871 ; [*0DC5.0020.0002] # BRAILLE PATTERN DOTS-1567
-2872 ; [*0DC6.0020.0002] # BRAILLE PATTERN DOTS-2567
-2873 ; [*0DC7.0020.0002] # BRAILLE PATTERN DOTS-12567
-2874 ; [*0DC8.0020.0002] # BRAILLE PATTERN DOTS-3567
-2875 ; [*0DC9.0020.0002] # BRAILLE PATTERN DOTS-13567
-2876 ; [*0DCA.0020.0002] # BRAILLE PATTERN DOTS-23567
-2877 ; [*0DCB.0020.0002] # BRAILLE PATTERN DOTS-123567
-2878 ; [*0DCC.0020.0002] # BRAILLE PATTERN DOTS-4567
-2879 ; [*0DCD.0020.0002] # BRAILLE PATTERN DOTS-14567
-287A ; [*0DCE.0020.0002] # BRAILLE PATTERN DOTS-24567
-287B ; [*0DCF.0020.0002] # BRAILLE PATTERN DOTS-124567
-287C ; [*0DD0.0020.0002] # BRAILLE PATTERN DOTS-34567
-287D ; [*0DD1.0020.0002] # BRAILLE PATTERN DOTS-134567
-287E ; [*0DD2.0020.0002] # BRAILLE PATTERN DOTS-234567
-287F ; [*0DD3.0020.0002] # BRAILLE PATTERN DOTS-1234567
-2880 ; [*0DD4.0020.0002] # BRAILLE PATTERN DOTS-8
-2881 ; [*0DD5.0020.0002] # BRAILLE PATTERN DOTS-18
-2882 ; [*0DD6.0020.0002] # BRAILLE PATTERN DOTS-28
-2883 ; [*0DD7.0020.0002] # BRAILLE PATTERN DOTS-128
-2884 ; [*0DD8.0020.0002] # BRAILLE PATTERN DOTS-38
-2885 ; [*0DD9.0020.0002] # BRAILLE PATTERN DOTS-138
-2886 ; [*0DDA.0020.0002] # BRAILLE PATTERN DOTS-238
-2887 ; [*0DDB.0020.0002] # BRAILLE PATTERN DOTS-1238
-2888 ; [*0DDC.0020.0002] # BRAILLE PATTERN DOTS-48
-2889 ; [*0DDD.0020.0002] # BRAILLE PATTERN DOTS-148
-288A ; [*0DDE.0020.0002] # BRAILLE PATTERN DOTS-248
-288B ; [*0DDF.0020.0002] # BRAILLE PATTERN DOTS-1248
-288C ; [*0DE0.0020.0002] # BRAILLE PATTERN DOTS-348
-288D ; [*0DE1.0020.0002] # BRAILLE PATTERN DOTS-1348
-288E ; [*0DE2.0020.0002] # BRAILLE PATTERN DOTS-2348
-288F ; [*0DE3.0020.0002] # BRAILLE PATTERN DOTS-12348
-2890 ; [*0DE4.0020.0002] # BRAILLE PATTERN DOTS-58
-2891 ; [*0DE5.0020.0002] # BRAILLE PATTERN DOTS-158
-2892 ; [*0DE6.0020.0002] # BRAILLE PATTERN DOTS-258
-2893 ; [*0DE7.0020.0002] # BRAILLE PATTERN DOTS-1258
-2894 ; [*0DE8.0020.0002] # BRAILLE PATTERN DOTS-358
-2895 ; [*0DE9.0020.0002] # BRAILLE PATTERN DOTS-1358
-2896 ; [*0DEA.0020.0002] # BRAILLE PATTERN DOTS-2358
-2897 ; [*0DEB.0020.0002] # BRAILLE PATTERN DOTS-12358
-2898 ; [*0DEC.0020.0002] # BRAILLE PATTERN DOTS-458
-2899 ; [*0DED.0020.0002] # BRAILLE PATTERN DOTS-1458
-289A ; [*0DEE.0020.0002] # BRAILLE PATTERN DOTS-2458
-289B ; [*0DEF.0020.0002] # BRAILLE PATTERN DOTS-12458
-289C ; [*0DF0.0020.0002] # BRAILLE PATTERN DOTS-3458
-289D ; [*0DF1.0020.0002] # BRAILLE PATTERN DOTS-13458
-289E ; [*0DF2.0020.0002] # BRAILLE PATTERN DOTS-23458
-289F ; [*0DF3.0020.0002] # BRAILLE PATTERN DOTS-123458
-28A0 ; [*0DF4.0020.0002] # BRAILLE PATTERN DOTS-68
-28A1 ; [*0DF5.0020.0002] # BRAILLE PATTERN DOTS-168
-28A2 ; [*0DF6.0020.0002] # BRAILLE PATTERN DOTS-268
-28A3 ; [*0DF7.0020.0002] # BRAILLE PATTERN DOTS-1268
-28A4 ; [*0DF8.0020.0002] # BRAILLE PATTERN DOTS-368
-28A5 ; [*0DF9.0020.0002] # BRAILLE PATTERN DOTS-1368
-28A6 ; [*0DFA.0020.0002] # BRAILLE PATTERN DOTS-2368
-28A7 ; [*0DFB.0020.0002] # BRAILLE PATTERN DOTS-12368
-28A8 ; [*0DFC.0020.0002] # BRAILLE PATTERN DOTS-468
-28A9 ; [*0DFD.0020.0002] # BRAILLE PATTERN DOTS-1468
-28AA ; [*0DFE.0020.0002] # BRAILLE PATTERN DOTS-2468
-28AB ; [*0DFF.0020.0002] # BRAILLE PATTERN DOTS-12468
-28AC ; [*0E00.0020.0002] # BRAILLE PATTERN DOTS-3468
-28AD ; [*0E01.0020.0002] # BRAILLE PATTERN DOTS-13468
-28AE ; [*0E02.0020.0002] # BRAILLE PATTERN DOTS-23468
-28AF ; [*0E03.0020.0002] # BRAILLE PATTERN DOTS-123468
-28B0 ; [*0E04.0020.0002] # BRAILLE PATTERN DOTS-568
-28B1 ; [*0E05.0020.0002] # BRAILLE PATTERN DOTS-1568
-28B2 ; [*0E06.0020.0002] # BRAILLE PATTERN DOTS-2568
-28B3 ; [*0E07.0020.0002] # BRAILLE PATTERN DOTS-12568
-28B4 ; [*0E08.0020.0002] # BRAILLE PATTERN DOTS-3568
-28B5 ; [*0E09.0020.0002] # BRAILLE PATTERN DOTS-13568
-28B6 ; [*0E0A.0020.0002] # BRAILLE PATTERN DOTS-23568
-28B7 ; [*0E0B.0020.0002] # BRAILLE PATTERN DOTS-123568
-28B8 ; [*0E0C.0020.0002] # BRAILLE PATTERN DOTS-4568
-28B9 ; [*0E0D.0020.0002] # BRAILLE PATTERN DOTS-14568
-28BA ; [*0E0E.0020.0002] # BRAILLE PATTERN DOTS-24568
-28BB ; [*0E0F.0020.0002] # BRAILLE PATTERN DOTS-124568
-28BC ; [*0E10.0020.0002] # BRAILLE PATTERN DOTS-34568
-28BD ; [*0E11.0020.0002] # BRAILLE PATTERN DOTS-134568
-28BE ; [*0E12.0020.0002] # BRAILLE PATTERN DOTS-234568
-28BF ; [*0E13.0020.0002] # BRAILLE PATTERN DOTS-1234568
-28C0 ; [*0E14.0020.0002] # BRAILLE PATTERN DOTS-78
-28C1 ; [*0E15.0020.0002] # BRAILLE PATTERN DOTS-178
-28C2 ; [*0E16.0020.0002] # BRAILLE PATTERN DOTS-278
-28C3 ; [*0E17.0020.0002] # BRAILLE PATTERN DOTS-1278
-28C4 ; [*0E18.0020.0002] # BRAILLE PATTERN DOTS-378
-28C5 ; [*0E19.0020.0002] # BRAILLE PATTERN DOTS-1378
-28C6 ; [*0E1A.0020.0002] # BRAILLE PATTERN DOTS-2378
-28C7 ; [*0E1B.0020.0002] # BRAILLE PATTERN DOTS-12378
-28C8 ; [*0E1C.0020.0002] # BRAILLE PATTERN DOTS-478
-28C9 ; [*0E1D.0020.0002] # BRAILLE PATTERN DOTS-1478
-28CA ; [*0E1E.0020.0002] # BRAILLE PATTERN DOTS-2478
-28CB ; [*0E1F.0020.0002] # BRAILLE PATTERN DOTS-12478
-28CC ; [*0E20.0020.0002] # BRAILLE PATTERN DOTS-3478
-28CD ; [*0E21.0020.0002] # BRAILLE PATTERN DOTS-13478
-28CE ; [*0E22.0020.0002] # BRAILLE PATTERN DOTS-23478
-28CF ; [*0E23.0020.0002] # BRAILLE PATTERN DOTS-123478
-28D0 ; [*0E24.0020.0002] # BRAILLE PATTERN DOTS-578
-28D1 ; [*0E25.0020.0002] # BRAILLE PATTERN DOTS-1578
-28D2 ; [*0E26.0020.0002] # BRAILLE PATTERN DOTS-2578
-28D3 ; [*0E27.0020.0002] # BRAILLE PATTERN DOTS-12578
-28D4 ; [*0E28.0020.0002] # BRAILLE PATTERN DOTS-3578
-28D5 ; [*0E29.0020.0002] # BRAILLE PATTERN DOTS-13578
-28D6 ; [*0E2A.0020.0002] # BRAILLE PATTERN DOTS-23578
-28D7 ; [*0E2B.0020.0002] # BRAILLE PATTERN DOTS-123578
-28D8 ; [*0E2C.0020.0002] # BRAILLE PATTERN DOTS-4578
-28D9 ; [*0E2D.0020.0002] # BRAILLE PATTERN DOTS-14578
-28DA ; [*0E2E.0020.0002] # BRAILLE PATTERN DOTS-24578
-28DB ; [*0E2F.0020.0002] # BRAILLE PATTERN DOTS-124578
-28DC ; [*0E30.0020.0002] # BRAILLE PATTERN DOTS-34578
-28DD ; [*0E31.0020.0002] # BRAILLE PATTERN DOTS-134578
-28DE ; [*0E32.0020.0002] # BRAILLE PATTERN DOTS-234578
-28DF ; [*0E33.0020.0002] # BRAILLE PATTERN DOTS-1234578
-28E0 ; [*0E34.0020.0002] # BRAILLE PATTERN DOTS-678
-28E1 ; [*0E35.0020.0002] # BRAILLE PATTERN DOTS-1678
-28E2 ; [*0E36.0020.0002] # BRAILLE PATTERN DOTS-2678
-28E3 ; [*0E37.0020.0002] # BRAILLE PATTERN DOTS-12678
-28E4 ; [*0E38.0020.0002] # BRAILLE PATTERN DOTS-3678
-28E5 ; [*0E39.0020.0002] # BRAILLE PATTERN DOTS-13678
-28E6 ; [*0E3A.0020.0002] # BRAILLE PATTERN DOTS-23678
-28E7 ; [*0E3B.0020.0002] # BRAILLE PATTERN DOTS-123678
-28E8 ; [*0E3C.0020.0002] # BRAILLE PATTERN DOTS-4678
-28E9 ; [*0E3D.0020.0002] # BRAILLE PATTERN DOTS-14678
-28EA ; [*0E3E.0020.0002] # BRAILLE PATTERN DOTS-24678
-28EB ; [*0E3F.0020.0002] # BRAILLE PATTERN DOTS-124678
-28EC ; [*0E40.0020.0002] # BRAILLE PATTERN DOTS-34678
-28ED ; [*0E41.0020.0002] # BRAILLE PATTERN DOTS-134678
-28EE ; [*0E42.0020.0002] # BRAILLE PATTERN DOTS-234678
-28EF ; [*0E43.0020.0002] # BRAILLE PATTERN DOTS-1234678
-28F0 ; [*0E44.0020.0002] # BRAILLE PATTERN DOTS-5678
-28F1 ; [*0E45.0020.0002] # BRAILLE PATTERN DOTS-15678
-28F2 ; [*0E46.0020.0002] # BRAILLE PATTERN DOTS-25678
-28F3 ; [*0E47.0020.0002] # BRAILLE PATTERN DOTS-125678
-28F4 ; [*0E48.0020.0002] # BRAILLE PATTERN DOTS-35678
-28F5 ; [*0E49.0020.0002] # BRAILLE PATTERN DOTS-135678
-28F6 ; [*0E4A.0020.0002] # BRAILLE PATTERN DOTS-235678
-28F7 ; [*0E4B.0020.0002] # BRAILLE PATTERN DOTS-1235678
-28F8 ; [*0E4C.0020.0002] # BRAILLE PATTERN DOTS-45678
-28F9 ; [*0E4D.0020.0002] # BRAILLE PATTERN DOTS-145678
-28FA ; [*0E4E.0020.0002] # BRAILLE PATTERN DOTS-245678
-28FB ; [*0E4F.0020.0002] # BRAILLE PATTERN DOTS-1245678
-28FC ; [*0E50.0020.0002] # BRAILLE PATTERN DOTS-345678
-28FD ; [*0E51.0020.0002] # BRAILLE PATTERN DOTS-1345678
-28FE ; [*0E52.0020.0002] # BRAILLE PATTERN DOTS-2345678
-28FF ; [*0E53.0020.0002] # BRAILLE PATTERN DOTS-12345678
-2900 ; [*0AA5.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2901 ; [*0AA6.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2902 ; [*0AA7.0020.0002] # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2903 ; [*0AA8.0020.0002] # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
-2904 ; [*0AA9.0020.0002] # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
-2905 ; [*0AAA.0020.0002] # RIGHTWARDS TWO-HEADED ARROW FROM BAR
-2906 ; [*0AAB.0020.0002] # LEFTWARDS DOUBLE ARROW FROM BAR
-2907 ; [*0AAC.0020.0002] # RIGHTWARDS DOUBLE ARROW FROM BAR
-2908 ; [*0AAD.0020.0002] # DOWNWARDS ARROW WITH HORIZONTAL STROKE
-2909 ; [*0AAE.0020.0002] # UPWARDS ARROW WITH HORIZONTAL STROKE
-290A ; [*0AAF.0020.0002] # UPWARDS TRIPLE ARROW
-290B ; [*0AB0.0020.0002] # DOWNWARDS TRIPLE ARROW
-290C ; [*0AB1.0020.0002] # LEFTWARDS DOUBLE DASH ARROW
-290D ; [*0AB2.0020.0002] # RIGHTWARDS DOUBLE DASH ARROW
-290E ; [*0AB3.0020.0002] # LEFTWARDS TRIPLE DASH ARROW
-290F ; [*0AB4.0020.0002] # RIGHTWARDS TRIPLE DASH ARROW
-2910 ; [*0AB5.0020.0002] # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
-2911 ; [*0AB6.0020.0002] # RIGHTWARDS ARROW WITH DOTTED STEM
-2912 ; [*0AB7.0020.0002] # UPWARDS ARROW TO BAR
-2913 ; [*0AB8.0020.0002] # DOWNWARDS ARROW TO BAR
-2914 ; [*0AB9.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2915 ; [*0ABA.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2916 ; [*0ABB.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL
-2917 ; [*0ABC.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2918 ; [*0ABD.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2919 ; [*0ABE.0020.0002] # LEFTWARDS ARROW-TAIL
-291A ; [*0ABF.0020.0002] # RIGHTWARDS ARROW-TAIL
-291B ; [*0AC0.0020.0002] # LEFTWARDS DOUBLE ARROW-TAIL
-291C ; [*0AC1.0020.0002] # RIGHTWARDS DOUBLE ARROW-TAIL
-291D ; [*0AC2.0020.0002] # LEFTWARDS ARROW TO BLACK DIAMOND
-291E ; [*0AC3.0020.0002] # RIGHTWARDS ARROW TO BLACK DIAMOND
-291F ; [*0AC4.0020.0002] # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2920 ; [*0AC5.0020.0002] # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
-2921 ; [*0AC6.0020.0002] # NORTH WEST AND SOUTH EAST ARROW
-2922 ; [*0AC7.0020.0002] # NORTH EAST AND SOUTH WEST ARROW
-2923 ; [*0AC8.0020.0002] # NORTH WEST ARROW WITH HOOK
-2924 ; [*0AC9.0020.0002] # NORTH EAST ARROW WITH HOOK
-2925 ; [*0ACA.0020.0002] # SOUTH EAST ARROW WITH HOOK
-2926 ; [*0ACB.0020.0002] # SOUTH WEST ARROW WITH HOOK
-2927 ; [*0ACC.0020.0002] # NORTH WEST ARROW AND NORTH EAST ARROW
-2928 ; [*0ACD.0020.0002] # NORTH EAST ARROW AND SOUTH EAST ARROW
-2929 ; [*0ACE.0020.0002] # SOUTH EAST ARROW AND SOUTH WEST ARROW
-292A ; [*0ACF.0020.0002] # SOUTH WEST ARROW AND NORTH WEST ARROW
-292B ; [*0AD0.0020.0002] # RISING DIAGONAL CROSSING FALLING DIAGONAL
-292C ; [*0AD1.0020.0002] # FALLING DIAGONAL CROSSING RISING DIAGONAL
-292D ; [*0AD2.0020.0002] # SOUTH EAST ARROW CROSSING NORTH EAST ARROW
-292E ; [*0AD3.0020.0002] # NORTH EAST ARROW CROSSING SOUTH EAST ARROW
-292F ; [*0AD4.0020.0002] # FALLING DIAGONAL CROSSING NORTH EAST ARROW
-2930 ; [*0AD5.0020.0002] # RISING DIAGONAL CROSSING SOUTH EAST ARROW
-2931 ; [*0AD6.0020.0002] # NORTH EAST ARROW CROSSING NORTH WEST ARROW
-2932 ; [*0AD7.0020.0002] # NORTH WEST ARROW CROSSING NORTH EAST ARROW
-2933 ; [*0AD8.0020.0002] # WAVE ARROW POINTING DIRECTLY RIGHT
-2934 ; [*0AD9.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
-2935 ; [*0ADA.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
-2936 ; [*0ADB.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
-2937 ; [*0ADC.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
-2938 ; [*0ADD.0020.0002] # RIGHT-SIDE ARC CLOCKWISE ARROW
-2939 ; [*0ADE.0020.0002] # LEFT-SIDE ARC ANTICLOCKWISE ARROW
-293A ; [*0ADF.0020.0002] # TOP ARC ANTICLOCKWISE ARROW
-293B ; [*0AE0.0020.0002] # BOTTOM ARC ANTICLOCKWISE ARROW
-293C ; [*0AE1.0020.0002] # TOP ARC CLOCKWISE ARROW WITH MINUS
-293D ; [*0AE2.0020.0002] # TOP ARC ANTICLOCKWISE ARROW WITH PLUS
-293E ; [*0AE3.0020.0002] # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
-293F ; [*0AE4.0020.0002] # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
-2940 ; [*0AE5.0020.0002] # ANTICLOCKWISE CLOSED CIRCLE ARROW
-2941 ; [*0AE6.0020.0002] # CLOCKWISE CLOSED CIRCLE ARROW
-2942 ; [*0AE7.0020.0002] # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
-2943 ; [*0AE8.0020.0002] # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
-2944 ; [*0AE9.0020.0002] # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
-2945 ; [*0AEA.0020.0002] # RIGHTWARDS ARROW WITH PLUS BELOW
-2946 ; [*0AEB.0020.0002] # LEFTWARDS ARROW WITH PLUS BELOW
-2947 ; [*0AEC.0020.0002] # RIGHTWARDS ARROW THROUGH X
-2948 ; [*0AED.0020.0002] # LEFT RIGHT ARROW THROUGH SMALL CIRCLE
-2949 ; [*0AEE.0020.0002] # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
-294A ; [*0AEF.0020.0002] # LEFT BARB UP RIGHT BARB DOWN HARPOON
-294B ; [*0AF0.0020.0002] # LEFT BARB DOWN RIGHT BARB UP HARPOON
-294C ; [*0AF1.0020.0002] # UP BARB RIGHT DOWN BARB LEFT HARPOON
-294D ; [*0AF2.0020.0002] # UP BARB LEFT DOWN BARB RIGHT HARPOON
-294E ; [*0AF3.0020.0002] # LEFT BARB UP RIGHT BARB UP HARPOON
-294F ; [*0AF4.0020.0002] # UP BARB RIGHT DOWN BARB RIGHT HARPOON
-2950 ; [*0AF5.0020.0002] # LEFT BARB DOWN RIGHT BARB DOWN HARPOON
-2951 ; [*0AF6.0020.0002] # UP BARB LEFT DOWN BARB LEFT HARPOON
-2952 ; [*0AF7.0020.0002] # LEFTWARDS HARPOON WITH BARB UP TO BAR
-2953 ; [*0AF8.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP TO BAR
-2954 ; [*0AF9.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT TO BAR
-2955 ; [*0AFA.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
-2956 ; [*0AFB.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN TO BAR
-2957 ; [*0AFC.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
-2958 ; [*0AFD.0020.0002] # UPWARDS HARPOON WITH BARB LEFT TO BAR
-2959 ; [*0AFE.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT TO BAR
-295A ; [*0AFF.0020.0002] # LEFTWARDS HARPOON WITH BARB UP FROM BAR
-295B ; [*0B00.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP FROM BAR
-295C ; [*0B01.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT FROM BAR
-295D ; [*0B02.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
-295E ; [*0B03.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
-295F ; [*0B04.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
-2960 ; [*0B05.0020.0002] # UPWARDS HARPOON WITH BARB LEFT FROM BAR
-2961 ; [*0B06.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
-2962 ; [*0B07.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-2963 ; [*0B08.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2964 ; [*0B09.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2965 ; [*0B0A.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-2966 ; [*0B0B.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
-2967 ; [*0B0C.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
-2968 ; [*0B0D.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
-2969 ; [*0B0E.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
-296A ; [*0B0F.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296B ; [*0B10.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296C ; [*0B11.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
-296D ; [*0B12.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
-296E ; [*0B13.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
-296F ; [*0B14.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
-2970 ; [*0B15.0020.0002] # RIGHT DOUBLE ARROW WITH ROUNDED HEAD
-2971 ; [*0B16.0020.0002] # EQUALS SIGN ABOVE RIGHTWARDS ARROW
-2972 ; [*0B17.0020.0002] # TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2973 ; [*0B18.0020.0002] # LEFTWARDS ARROW ABOVE TILDE OPERATOR
-2974 ; [*0B19.0020.0002] # RIGHTWARDS ARROW ABOVE TILDE OPERATOR
-2975 ; [*0B1A.0020.0002] # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
-2976 ; [*0B1B.0020.0002] # LESS-THAN ABOVE LEFTWARDS ARROW
-2977 ; [*0B1C.0020.0002] # LEFTWARDS ARROW THROUGH LESS-THAN
-2978 ; [*0B1D.0020.0002] # GREATER-THAN ABOVE RIGHTWARDS ARROW
-2979 ; [*0B1E.0020.0002] # SUBSET ABOVE RIGHTWARDS ARROW
-297A ; [*0B1F.0020.0002] # LEFTWARDS ARROW THROUGH SUBSET
-297B ; [*0B20.0020.0002] # SUPERSET ABOVE LEFTWARDS ARROW
-297C ; [*0B21.0020.0002] # LEFT FISH TAIL
-297D ; [*0B22.0020.0002] # RIGHT FISH TAIL
-297E ; [*0B23.0020.0002] # UP FISH TAIL
-297F ; [*0B24.0020.0002] # DOWN FISH TAIL
-2980 ; [*0B25.0020.0002] # TRIPLE VERTICAL BAR DELIMITER
-2981 ; [*0B26.0020.0002] # Z NOTATION SPOT
-2982 ; [*0B27.0020.0002] # Z NOTATION TYPE COLON
-2983 ; [*031E.0020.0002] # LEFT WHITE CURLY BRACKET
-2984 ; [*031F.0020.0002] # RIGHT WHITE CURLY BRACKET
-2985 ; [*0320.0020.0002] # LEFT WHITE PARENTHESIS
-2986 ; [*0321.0020.0002] # RIGHT WHITE PARENTHESIS
-2987 ; [*0322.0020.0002] # Z NOTATION LEFT IMAGE BRACKET
-2988 ; [*0323.0020.0002] # Z NOTATION RIGHT IMAGE BRACKET
-2989 ; [*0324.0020.0002] # Z NOTATION LEFT BINDING BRACKET
-298A ; [*0325.0020.0002] # Z NOTATION RIGHT BINDING BRACKET
-298B ; [*0326.0020.0002] # LEFT SQUARE BRACKET WITH UNDERBAR
-298C ; [*0327.0020.0002] # RIGHT SQUARE BRACKET WITH UNDERBAR
-298D ; [*0328.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E ; [*0329.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F ; [*032A.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990 ; [*032B.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991 ; [*032C.0020.0002] # LEFT ANGLE BRACKET WITH DOT
-2992 ; [*032D.0020.0002] # RIGHT ANGLE BRACKET WITH DOT
-2993 ; [*032E.0020.0002] # LEFT ARC LESS-THAN BRACKET
-2994 ; [*032F.0020.0002] # RIGHT ARC GREATER-THAN BRACKET
-2995 ; [*0330.0020.0002] # DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996 ; [*0331.0020.0002] # DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997 ; [*0332.0020.0002] # LEFT BLACK TORTOISE SHELL BRACKET
-2998 ; [*0333.0020.0002] # RIGHT BLACK TORTOISE SHELL BRACKET
-2999 ; [*0B28.0020.0002] # DOTTED FENCE
-299A ; [*0B29.0020.0002] # VERTICAL ZIGZAG LINE
-299B ; [*0B2A.0020.0002] # MEASURED ANGLE OPENING LEFT
-299C ; [*0B2B.0020.0002] # RIGHT ANGLE VARIANT WITH SQUARE
-299D ; [*0B2C.0020.0002] # MEASURED RIGHT ANGLE WITH DOT
-299E ; [*0B2D.0020.0002] # ANGLE WITH S INSIDE
-299F ; [*0B2E.0020.0002] # ACUTE ANGLE
-29A0 ; [*0B2F.0020.0002] # SPHERICAL ANGLE OPENING LEFT
-29A1 ; [*0B30.0020.0002] # SPHERICAL ANGLE OPENING UP
-29A2 ; [*0B31.0020.0002] # TURNED ANGLE
-29A3 ; [*0B32.0020.0002] # REVERSED ANGLE
-29A4 ; [*0B33.0020.0002] # ANGLE WITH UNDERBAR
-29A5 ; [*0B34.0020.0002] # REVERSED ANGLE WITH UNDERBAR
-29A6 ; [*0B35.0020.0002] # OBLIQUE ANGLE OPENING UP
-29A7 ; [*0B36.0020.0002] # OBLIQUE ANGLE OPENING DOWN
-29A8 ; [*0B37.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
-29A9 ; [*0B38.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
-29AA ; [*0B39.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
-29AB ; [*0B3A.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
-29AC ; [*0B3B.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
-29AD ; [*0B3C.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
-29AE ; [*0B3D.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
-29AF ; [*0B3E.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
-29B0 ; [*0B3F.0020.0002] # REVERSED EMPTY SET
-29B1 ; [*0B40.0020.0002] # EMPTY SET WITH OVERBAR
-29B2 ; [*0B41.0020.0002] # EMPTY SET WITH SMALL CIRCLE ABOVE
-29B3 ; [*0B42.0020.0002] # EMPTY SET WITH RIGHT ARROW ABOVE
-29B4 ; [*0B43.0020.0002] # EMPTY SET WITH LEFT ARROW ABOVE
-29B5 ; [*0B44.0020.0002] # CIRCLE WITH HORIZONTAL BAR
-29B6 ; [*0B45.0020.0002] # CIRCLED VERTICAL BAR
-29B7 ; [*0B46.0020.0002] # CIRCLED PARALLEL
-29B8 ; [*0B47.0020.0002] # CIRCLED REVERSE SOLIDUS
-29B9 ; [*0B48.0020.0002] # CIRCLED PERPENDICULAR
-29BA ; [*0B49.0020.0002] # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
-29BB ; [*0B4A.0020.0002] # CIRCLE WITH SUPERIMPOSED X
-29BC ; [*0B4B.0020.0002] # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
-29BD ; [*0B4C.0020.0002] # UP ARROW THROUGH CIRCLE
-29BE ; [*0B4D.0020.0002] # CIRCLED WHITE BULLET
-29BF ; [*0B4E.0020.0002] # CIRCLED BULLET
-29C0 ; [*0B4F.0020.0002] # CIRCLED LESS-THAN
-29C1 ; [*0B50.0020.0002] # CIRCLED GREATER-THAN
-29C2 ; [*0B51.0020.0002] # CIRCLE WITH SMALL CIRCLE TO THE RIGHT
-29C3 ; [*0B52.0020.0002] # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
-29C4 ; [*0B53.0020.0002] # SQUARED RISING DIAGONAL SLASH
-29C5 ; [*0B54.0020.0002] # SQUARED FALLING DIAGONAL SLASH
-29C6 ; [*0B55.0020.0002] # SQUARED ASTERISK
-29C7 ; [*0B56.0020.0002] # SQUARED SMALL CIRCLE
-29C8 ; [*0B57.0020.0002] # SQUARED SQUARE
-29C9 ; [*0B58.0020.0002] # TWO JOINED SQUARES
-29CA ; [*0B59.0020.0002] # TRIANGLE WITH DOT ABOVE
-29CB ; [*0B5A.0020.0002] # TRIANGLE WITH UNDERBAR
-29CC ; [*0B5B.0020.0002] # S IN TRIANGLE
-29CD ; [*0B5C.0020.0002] # TRIANGLE WITH SERIFS AT BOTTOM
-29CE ; [*0B5D.0020.0002] # RIGHT TRIANGLE ABOVE LEFT TRIANGLE
-29CF ; [*0B5E.0020.0002] # LEFT TRIANGLE BESIDE VERTICAL BAR
-29D0 ; [*0B5F.0020.0002] # VERTICAL BAR BESIDE RIGHT TRIANGLE
-29D1 ; [*0B60.0020.0002] # BOWTIE WITH LEFT HALF BLACK
-29D2 ; [*0B61.0020.0002] # BOWTIE WITH RIGHT HALF BLACK
-29D3 ; [*0B62.0020.0002] # BLACK BOWTIE
-29D4 ; [*0B63.0020.0002] # TIMES WITH LEFT HALF BLACK
-29D5 ; [*0B64.0020.0002] # TIMES WITH RIGHT HALF BLACK
-29D6 ; [*0B65.0020.0002] # WHITE HOURGLASS
-29D7 ; [*0B66.0020.0002] # BLACK HOURGLASS
-29D8 ; [*0378.0020.0002] # LEFT WIGGLY FENCE
-29D9 ; [*0379.0020.0002] # RIGHT WIGGLY FENCE
-29DA ; [*037A.0020.0002] # LEFT DOUBLE WIGGLY FENCE
-29DB ; [*037B.0020.0002] # RIGHT DOUBLE WIGGLY FENCE
-29DC ; [*0B67.0020.0002] # INCOMPLETE INFINITY
-29DD ; [*0B68.0020.0002] # TIE OVER INFINITY
-29DE ; [*0B69.0020.0002] # INFINITY NEGATED WITH VERTICAL BAR
-29DF ; [*0B6A.0020.0002] # DOUBLE-ENDED MULTIMAP
-29E0 ; [*0B6B.0020.0002] # SQUARE WITH CONTOURED OUTLINE
-29E1 ; [*0B6C.0020.0002] # INCREASES AS
-29E2 ; [*0B6D.0020.0002] # SHUFFLE PRODUCT
-29E3 ; [*0B6E.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL
-29E4 ; [*0B6F.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
-29E5 ; [*0B70.0020.0002] # IDENTICAL TO AND SLANTED PARALLEL
-29E6 ; [*0B71.0020.0002] # GLEICH STARK
-29E7 ; [*0B72.0020.0002] # THERMODYNAMIC
-29E8 ; [*0B73.0020.0002] # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
-29E9 ; [*0B74.0020.0002] # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
-29EA ; [*0B75.0020.0002] # BLACK DIAMOND WITH DOWN ARROW
-29EB ; [*0B76.0020.0002] # BLACK LOZENGE
-29EC ; [*0B77.0020.0002] # WHITE CIRCLE WITH DOWN ARROW
-29ED ; [*0B78.0020.0002] # BLACK CIRCLE WITH DOWN ARROW
-29EE ; [*0B79.0020.0002] # ERROR-BARRED WHITE SQUARE
-29EF ; [*0B7A.0020.0002] # ERROR-BARRED BLACK SQUARE
-29F0 ; [*0B7B.0020.0002] # ERROR-BARRED WHITE DIAMOND
-29F1 ; [*0B7C.0020.0002] # ERROR-BARRED BLACK DIAMOND
-29F2 ; [*0B7D.0020.0002] # ERROR-BARRED WHITE CIRCLE
-29F3 ; [*0B7E.0020.0002] # ERROR-BARRED BLACK CIRCLE
-29F4 ; [*0B7F.0020.0002] # RULE-DELAYED
-29F5 ; [*0B80.0020.0002] # REVERSE SOLIDUS OPERATOR
-29F6 ; [*0B81.0020.0002] # SOLIDUS WITH OVERBAR
-29F7 ; [*0B82.0020.0002] # REVERSE SOLIDUS WITH HORIZONTAL STROKE
-29F8 ; [*0B83.0020.0002] # BIG SOLIDUS
-29F9 ; [*0B84.0020.0002] # BIG REVERSE SOLIDUS
-29FA ; [*0B85.0020.0002] # DOUBLE PLUS
-29FB ; [*0B86.0020.0002] # TRIPLE PLUS
-29FC ; [*031C.0020.0002] # LEFT-POINTING CURVED ANGLE BRACKET
-29FD ; [*031D.0020.0002] # RIGHT-POINTING CURVED ANGLE BRACKET
-29FE ; [*0B87.0020.0002] # TINY
-29FF ; [*0B88.0020.0002] # MINY
-2A00 ; [*0B89.0020.0002] # N-ARY CIRCLED DOT OPERATOR
-2A01 ; [*0B8A.0020.0002] # N-ARY CIRCLED PLUS OPERATOR
-2A02 ; [*0B8B.0020.0002] # N-ARY CIRCLED TIMES OPERATOR
-2A03 ; [*0B8C.0020.0002] # N-ARY UNION OPERATOR WITH DOT
-2A04 ; [*0B8D.0020.0002] # N-ARY UNION OPERATOR WITH PLUS
-2A05 ; [*0B8E.0020.0002] # N-ARY SQUARE INTERSECTION OPERATOR
-2A06 ; [*0B8F.0020.0002] # N-ARY SQUARE UNION OPERATOR
-2A07 ; [*0B90.0020.0002] # TWO LOGICAL AND OPERATOR
-2A08 ; [*0B91.0020.0002] # TWO LOGICAL OR OPERATOR
-2A09 ; [*0B92.0020.0002] # N-ARY TIMES OPERATOR
-2A0A ; [*0B93.0020.0002] # MODULO TWO SUM
-2A0B ; [*0B94.0020.0002] # SUMMATION WITH INTEGRAL
-2A0C ; [*05FC.0020.0004][*05FC.0020.0004][*05FC.0020.0004][*05FC.0020.0004] # QUADRUPLE INTEGRAL OPERATOR
-2A0D ; [*0B95.0020.0002] # FINITE PART INTEGRAL
-2A0E ; [*0B96.0020.0002] # INTEGRAL WITH DOUBLE STROKE
-2A0F ; [*0B97.0020.0002] # INTEGRAL AVERAGE WITH SLASH
-2A10 ; [*0B98.0020.0002] # CIRCULATION FUNCTION
-2A11 ; [*0B99.0020.0002] # ANTICLOCKWISE INTEGRATION
-2A12 ; [*0B9A.0020.0002] # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
-2A13 ; [*0B9B.0020.0002] # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
-2A14 ; [*0B9C.0020.0002] # LINE INTEGRATION NOT INCLUDING THE POLE
-2A15 ; [*0B9D.0020.0002] # INTEGRAL AROUND A POINT OPERATOR
-2A16 ; [*0B9E.0020.0002] # QUATERNION INTEGRAL OPERATOR
-2A17 ; [*0B9F.0020.0002] # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
-2A18 ; [*0BA0.0020.0002] # INTEGRAL WITH TIMES SIGN
-2A19 ; [*0BA1.0020.0002] # INTEGRAL WITH INTERSECTION
-2A1A ; [*0BA2.0020.0002] # INTEGRAL WITH UNION
-2A1B ; [*0BA3.0020.0002] # INTEGRAL WITH OVERBAR
-2A1C ; [*0BA4.0020.0002] # INTEGRAL WITH UNDERBAR
-2A1D ; [*0BA5.0020.0002] # JOIN
-2A1E ; [*0BA6.0020.0002] # LARGE LEFT TRIANGLE OPERATOR
-2A1F ; [*0BA7.0020.0002] # Z NOTATION SCHEMA COMPOSITION
-2A20 ; [*0BA8.0020.0002] # Z NOTATION SCHEMA PIPING
-2A21 ; [*0BA9.0020.0002] # Z NOTATION SCHEMA PROJECTION
-2A22 ; [*0BAA.0020.0002] # PLUS SIGN WITH SMALL CIRCLE ABOVE
-2A23 ; [*0BAB.0020.0002] # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
-2A24 ; [*0BAC.0020.0002] # PLUS SIGN WITH TILDE ABOVE
-2A25 ; [*0BAD.0020.0002] # PLUS SIGN WITH DOT BELOW
-2A26 ; [*0BAE.0020.0002] # PLUS SIGN WITH TILDE BELOW
-2A27 ; [*0BAF.0020.0002] # PLUS SIGN WITH SUBSCRIPT TWO
-2A28 ; [*0BB0.0020.0002] # PLUS SIGN WITH BLACK TRIANGLE
-2A29 ; [*0BB1.0020.0002] # MINUS SIGN WITH COMMA ABOVE
-2A2A ; [*0BB2.0020.0002] # MINUS SIGN WITH DOT BELOW
-2A2B ; [*0BB3.0020.0002] # MINUS SIGN WITH FALLING DOTS
-2A2C ; [*0BB4.0020.0002] # MINUS SIGN WITH RISING DOTS
-2A2D ; [*0BB5.0020.0002] # PLUS SIGN IN LEFT HALF CIRCLE
-2A2E ; [*0BB6.0020.0002] # PLUS SIGN IN RIGHT HALF CIRCLE
-2A2F ; [*0BB7.0020.0002] # VECTOR OR CROSS PRODUCT
-2A30 ; [*0BB8.0020.0002] # MULTIPLICATION SIGN WITH DOT ABOVE
-2A31 ; [*0BB9.0020.0002] # MULTIPLICATION SIGN WITH UNDERBAR
-2A32 ; [*0BBA.0020.0002] # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
-2A33 ; [*0BBB.0020.0002] # SMASH PRODUCT
-2A34 ; [*0BBC.0020.0002] # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
-2A35 ; [*0BBD.0020.0002] # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
-2A36 ; [*0BBE.0020.0002] # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
-2A37 ; [*0BBF.0020.0002] # MULTIPLICATION SIGN IN DOUBLE CIRCLE
-2A38 ; [*0BC0.0020.0002] # CIRCLED DIVISION SIGN
-2A39 ; [*0BC1.0020.0002] # PLUS SIGN IN TRIANGLE
-2A3A ; [*0BC2.0020.0002] # MINUS SIGN IN TRIANGLE
-2A3B ; [*0BC3.0020.0002] # MULTIPLICATION SIGN IN TRIANGLE
-2A3C ; [*0BC4.0020.0002] # INTERIOR PRODUCT
-2A3D ; [*0BC5.0020.0002] # RIGHTHAND INTERIOR PRODUCT
-2A3E ; [*0BC6.0020.0002] # Z NOTATION RELATIONAL COMPOSITION
-2A3F ; [*0BC7.0020.0002] # AMALGAMATION OR COPRODUCT
-2A40 ; [*0BC8.0020.0002] # INTERSECTION WITH DOT
-2A41 ; [*0BC9.0020.0002] # UNION WITH MINUS SIGN
-2A42 ; [*0BCA.0020.0002] # UNION WITH OVERBAR
-2A43 ; [*0BCB.0020.0002] # INTERSECTION WITH OVERBAR
-2A44 ; [*0BCC.0020.0002] # INTERSECTION WITH LOGICAL AND
-2A45 ; [*0BCD.0020.0002] # UNION WITH LOGICAL OR
-2A46 ; [*0BCE.0020.0002] # UNION ABOVE INTERSECTION
-2A47 ; [*0BCF.0020.0002] # INTERSECTION ABOVE UNION
-2A48 ; [*0BD0.0020.0002] # UNION ABOVE BAR ABOVE INTERSECTION
-2A49 ; [*0BD1.0020.0002] # INTERSECTION ABOVE BAR ABOVE UNION
-2A4A ; [*0BD2.0020.0002] # UNION BESIDE AND JOINED WITH UNION
-2A4B ; [*0BD3.0020.0002] # INTERSECTION BESIDE AND JOINED WITH INTERSECTION
-2A4C ; [*0BD4.0020.0002] # CLOSED UNION WITH SERIFS
-2A4D ; [*0BD5.0020.0002] # CLOSED INTERSECTION WITH SERIFS
-2A4E ; [*0BD6.0020.0002] # DOUBLE SQUARE INTERSECTION
-2A4F ; [*0BD7.0020.0002] # DOUBLE SQUARE UNION
-2A50 ; [*0BD8.0020.0002] # CLOSED UNION WITH SERIFS AND SMASH PRODUCT
-2A51 ; [*0BD9.0020.0002] # LOGICAL AND WITH DOT ABOVE
-2A52 ; [*0BDA.0020.0002] # LOGICAL OR WITH DOT ABOVE
-2A53 ; [*0BDB.0020.0002] # DOUBLE LOGICAL AND
-2A54 ; [*0BDC.0020.0002] # DOUBLE LOGICAL OR
-2A55 ; [*0BDD.0020.0002] # TWO INTERSECTING LOGICAL AND
-2A56 ; [*0BDE.0020.0002] # TWO INTERSECTING LOGICAL OR
-2A57 ; [*0BDF.0020.0002] # SLOPING LARGE OR
-2A58 ; [*0BE0.0020.0002] # SLOPING LARGE AND
-2A59 ; [*0BE1.0020.0002] # LOGICAL OR OVERLAPPING LOGICAL AND
-2A5A ; [*0BE2.0020.0002] # LOGICAL AND WITH MIDDLE STEM
-2A5B ; [*0BE3.0020.0002] # LOGICAL OR WITH MIDDLE STEM
-2A5C ; [*0BE4.0020.0002] # LOGICAL AND WITH HORIZONTAL DASH
-2A5D ; [*0BE5.0020.0002] # LOGICAL OR WITH HORIZONTAL DASH
-2A5E ; [*0BE6.0020.0002] # LOGICAL AND WITH DOUBLE OVERBAR
-2A5F ; [*0BE7.0020.0002] # LOGICAL AND WITH UNDERBAR
-2A60 ; [*0BE8.0020.0002] # LOGICAL AND WITH DOUBLE UNDERBAR
-2A61 ; [*0BE9.0020.0002] # SMALL VEE WITH UNDERBAR
-2A62 ; [*0BEA.0020.0002] # LOGICAL OR WITH DOUBLE OVERBAR
-2A63 ; [*0BEB.0020.0002] # LOGICAL OR WITH DOUBLE UNDERBAR
-2A64 ; [*0BEC.0020.0002] # Z NOTATION DOMAIN ANTIRESTRICTION
-2A65 ; [*0BED.0020.0002] # Z NOTATION RANGE ANTIRESTRICTION
-2A66 ; [*0BEE.0020.0002] # EQUALS SIGN WITH DOT BELOW
-2A67 ; [*0BEF.0020.0002] # IDENTICAL WITH DOT ABOVE
-2A68 ; [*0BF0.0020.0002] # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
-2A69 ; [*0BF1.0020.0002] # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
-2A6A ; [*0BF2.0020.0002] # TILDE OPERATOR WITH DOT ABOVE
-2A6B ; [*0BF3.0020.0002] # TILDE OPERATOR WITH RISING DOTS
-2A6C ; [*0BF4.0020.0002] # SIMILAR MINUS SIMILAR
-2A6D ; [*0BF5.0020.0002] # CONGRUENT WITH DOT ABOVE
-2A6E ; [*0BF6.0020.0002] # EQUALS WITH ASTERISK
-2A6F ; [*0BF7.0020.0002] # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
-2A70 ; [*0BF8.0020.0002] # APPROXIMATELY EQUAL OR EQUAL TO
-2A71 ; [*0BF9.0020.0002] # EQUALS SIGN ABOVE PLUS SIGN
-2A72 ; [*0BFA.0020.0002] # PLUS SIGN ABOVE EQUALS SIGN
-2A73 ; [*0BFB.0020.0002] # EQUALS SIGN ABOVE TILDE OPERATOR
-2A74 ; [*0238.0020.0004][*0238.0020.0004][*05DB.0020.0004] # DOUBLE COLON EQUAL
-2A75 ; [*05DB.0020.0004][*05DB.0020.0004] # TWO CONSECUTIVE EQUALS SIGNS
-2A76 ; [*05DB.0020.0004][*05DB.0020.0004][*05DB.0020.0004] # THREE CONSECUTIVE EQUALS SIGNS
-2A77 ; [*0BFC.0020.0002] # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
-2A78 ; [*0BFD.0020.0002] # EQUIVALENT WITH FOUR DOTS ABOVE
-2A79 ; [*0BFE.0020.0002] # LESS-THAN WITH CIRCLE INSIDE
-2A7A ; [*0BFF.0020.0002] # GREATER-THAN WITH CIRCLE INSIDE
-2A7B ; [*0C00.0020.0002] # LESS-THAN WITH QUESTION MARK ABOVE
-2A7C ; [*0C01.0020.0002] # GREATER-THAN WITH QUESTION MARK ABOVE
-2A7D ; [*0C02.0020.0002] # LESS-THAN OR SLANTED EQUAL TO
-2A7E ; [*0C03.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO
-2A7F ; [*0C04.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A80 ; [*0C05.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
-2A81 ; [*0C06.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A82 ; [*0C07.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
-2A83 ; [*0C08.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
-2A84 ; [*0C09.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
-2A85 ; [*0C0A.0020.0002] # LESS-THAN OR APPROXIMATE
-2A86 ; [*0C0B.0020.0002] # GREATER-THAN OR APPROXIMATE
-2A87 ; [*0C0C.0020.0002] # LESS-THAN AND SINGLE-LINE NOT EQUAL TO
-2A88 ; [*0C0D.0020.0002] # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
-2A89 ; [*0C0E.0020.0002] # LESS-THAN AND NOT APPROXIMATE
-2A8A ; [*0C0F.0020.0002] # GREATER-THAN AND NOT APPROXIMATE
-2A8B ; [*0C10.0020.0002] # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
-2A8C ; [*0C11.0020.0002] # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
-2A8D ; [*0C12.0020.0002] # LESS-THAN ABOVE SIMILAR OR EQUAL
-2A8E ; [*0C13.0020.0002] # GREATER-THAN ABOVE SIMILAR OR EQUAL
-2A8F ; [*0C14.0020.0002] # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
-2A90 ; [*0C15.0020.0002] # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
-2A91 ; [*0C16.0020.0002] # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
-2A92 ; [*0C17.0020.0002] # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
-2A93 ; [*0C18.0020.0002] # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
-2A94 ; [*0C19.0020.0002] # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
-2A95 ; [*0C1A.0020.0002] # SLANTED EQUAL TO OR LESS-THAN
-2A96 ; [*0C1B.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN
-2A97 ; [*0C1C.0020.0002] # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
-2A98 ; [*0C1D.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
-2A99 ; [*0C1E.0020.0002] # DOUBLE-LINE EQUAL TO OR LESS-THAN
-2A9A ; [*0C1F.0020.0002] # DOUBLE-LINE EQUAL TO OR GREATER-THAN
-2A9B ; [*0C20.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
-2A9C ; [*0C21.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
-2A9D ; [*0C22.0020.0002] # SIMILAR OR LESS-THAN
-2A9E ; [*0C23.0020.0002] # SIMILAR OR GREATER-THAN
-2A9F ; [*0C24.0020.0002] # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
-2AA0 ; [*0C25.0020.0002] # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
-2AA1 ; [*0C26.0020.0002] # DOUBLE NESTED LESS-THAN
-2AA2 ; [*0C27.0020.0002] # DOUBLE NESTED GREATER-THAN
-2AA3 ; [*0C28.0020.0002] # DOUBLE NESTED LESS-THAN WITH UNDERBAR
-2AA4 ; [*0C29.0020.0002] # GREATER-THAN OVERLAPPING LESS-THAN
-2AA5 ; [*0C2A.0020.0002] # GREATER-THAN BESIDE LESS-THAN
-2AA6 ; [*0C2B.0020.0002] # LESS-THAN CLOSED BY CURVE
-2AA7 ; [*0C2C.0020.0002] # GREATER-THAN CLOSED BY CURVE
-2AA8 ; [*0C2D.0020.0002] # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AA9 ; [*0C2E.0020.0002] # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
-2AAA ; [*0C2F.0020.0002] # SMALLER THAN
-2AAB ; [*0C30.0020.0002] # LARGER THAN
-2AAC ; [*0C31.0020.0002] # SMALLER THAN OR EQUAL TO
-2AAD ; [*0C32.0020.0002] # LARGER THAN OR EQUAL TO
-2AAE ; [*0C33.0020.0002] # EQUALS SIGN WITH BUMPY ABOVE
-2AAF ; [*0C34.0020.0002] # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
-2AB0 ; [*0C35.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
-2AB1 ; [*0C36.0020.0002] # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
-2AB2 ; [*0C37.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
-2AB3 ; [*0C38.0020.0002] # PRECEDES ABOVE EQUALS SIGN
-2AB4 ; [*0C39.0020.0002] # SUCCEEDS ABOVE EQUALS SIGN
-2AB5 ; [*0C3A.0020.0002] # PRECEDES ABOVE NOT EQUAL TO
-2AB6 ; [*0C3B.0020.0002] # SUCCEEDS ABOVE NOT EQUAL TO
-2AB7 ; [*0C3C.0020.0002] # PRECEDES ABOVE ALMOST EQUAL TO
-2AB8 ; [*0C3D.0020.0002] # SUCCEEDS ABOVE ALMOST EQUAL TO
-2AB9 ; [*0C3E.0020.0002] # PRECEDES ABOVE NOT ALMOST EQUAL TO
-2ABA ; [*0C3F.0020.0002] # SUCCEEDS ABOVE NOT ALMOST EQUAL TO
-2ABB ; [*0C40.0020.0002] # DOUBLE PRECEDES
-2ABC ; [*0C41.0020.0002] # DOUBLE SUCCEEDS
-2ABD ; [*0C42.0020.0002] # SUBSET WITH DOT
-2ABE ; [*0C43.0020.0002] # SUPERSET WITH DOT
-2ABF ; [*0C44.0020.0002] # SUBSET WITH PLUS SIGN BELOW
-2AC0 ; [*0C45.0020.0002] # SUPERSET WITH PLUS SIGN BELOW
-2AC1 ; [*0C46.0020.0002] # SUBSET WITH MULTIPLICATION SIGN BELOW
-2AC2 ; [*0C47.0020.0002] # SUPERSET WITH MULTIPLICATION SIGN BELOW
-2AC3 ; [*0C48.0020.0002] # SUBSET OF OR EQUAL TO WITH DOT ABOVE
-2AC4 ; [*0C49.0020.0002] # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
-2AC5 ; [*0C4A.0020.0002] # SUBSET OF ABOVE EQUALS SIGN
-2AC6 ; [*0C4B.0020.0002] # SUPERSET OF ABOVE EQUALS SIGN
-2AC7 ; [*0C4C.0020.0002] # SUBSET OF ABOVE TILDE OPERATOR
-2AC8 ; [*0C4D.0020.0002] # SUPERSET OF ABOVE TILDE OPERATOR
-2AC9 ; [*0C4E.0020.0002] # SUBSET OF ABOVE ALMOST EQUAL TO
-2ACA ; [*0C4F.0020.0002] # SUPERSET OF ABOVE ALMOST EQUAL TO
-2ACB ; [*0C50.0020.0002] # SUBSET OF ABOVE NOT EQUAL TO
-2ACC ; [*0C51.0020.0002] # SUPERSET OF ABOVE NOT EQUAL TO
-2ACD ; [*0C52.0020.0002] # SQUARE LEFT OPEN BOX OPERATOR
-2ACE ; [*0C53.0020.0002] # SQUARE RIGHT OPEN BOX OPERATOR
-2ACF ; [*0C54.0020.0002] # CLOSED SUBSET
-2AD0 ; [*0C55.0020.0002] # CLOSED SUPERSET
-2AD1 ; [*0C56.0020.0002] # CLOSED SUBSET OR EQUAL TO
-2AD2 ; [*0C57.0020.0002] # CLOSED SUPERSET OR EQUAL TO
-2AD3 ; [*0C58.0020.0002] # SUBSET ABOVE SUPERSET
-2AD4 ; [*0C59.0020.0002] # SUPERSET ABOVE SUBSET
-2AD5 ; [*0C5A.0020.0002] # SUBSET ABOVE SUBSET
-2AD6 ; [*0C5B.0020.0002] # SUPERSET ABOVE SUPERSET
-2AD7 ; [*0C5C.0020.0002] # SUPERSET BESIDE SUBSET
-2AD8 ; [*0C5D.0020.0002] # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
-2AD9 ; [*0C5E.0020.0002] # ELEMENT OF OPENING DOWNWARDS
-2ADA ; [*0C5F.0020.0002] # PITCHFORK WITH TEE TOP
-2ADB ; [*0C60.0020.0002] # TRANSVERSAL INTERSECTION
-2ADC ; [*0C61.0020.0002][.0000.002F.0002] # FORKING
-2ADD ; [*0C61.0020.0002] # NONFORKING
-2ADE ; [*0C62.0020.0002] # SHORT LEFT TACK
-2ADF ; [*0C63.0020.0002] # SHORT DOWN TACK
-2AE0 ; [*0C64.0020.0002] # SHORT UP TACK
-2AE1 ; [*0C65.0020.0002] # PERPENDICULAR WITH S
-2AE2 ; [*0C66.0020.0002] # VERTICAL BAR TRIPLE RIGHT TURNSTILE
-2AE3 ; [*0C67.0020.0002] # DOUBLE VERTICAL BAR LEFT TURNSTILE
-2AE4 ; [*0C68.0020.0002] # VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE5 ; [*0C69.0020.0002] # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
-2AE6 ; [*0C6A.0020.0002] # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
-2AE7 ; [*0C6B.0020.0002] # SHORT DOWN TACK WITH OVERBAR
-2AE8 ; [*0C6C.0020.0002] # SHORT UP TACK WITH UNDERBAR
-2AE9 ; [*0C6D.0020.0002] # SHORT UP TACK ABOVE SHORT DOWN TACK
-2AEA ; [*0C6E.0020.0002] # DOUBLE DOWN TACK
-2AEB ; [*0C6F.0020.0002] # DOUBLE UP TACK
-2AEC ; [*0C70.0020.0002] # DOUBLE STROKE NOT SIGN
-2AED ; [*0C71.0020.0002] # REVERSED DOUBLE STROKE NOT SIGN
-2AEE ; [*0C72.0020.0002] # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
-2AEF ; [*0C73.0020.0002] # VERTICAL LINE WITH CIRCLE ABOVE
-2AF0 ; [*0C74.0020.0002] # VERTICAL LINE WITH CIRCLE BELOW
-2AF1 ; [*0C75.0020.0002] # DOWN TACK WITH CIRCLE BELOW
-2AF2 ; [*0C76.0020.0002] # PARALLEL WITH HORIZONTAL STROKE
-2AF3 ; [*0C77.0020.0002] # PARALLEL WITH TILDE OPERATOR
-2AF4 ; [*0C78.0020.0002] # TRIPLE VERTICAL BAR BINARY RELATION
-2AF5 ; [*0C79.0020.0002] # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
-2AF6 ; [*0C7A.0020.0002] # TRIPLE COLON OPERATOR
-2AF7 ; [*0C7B.0020.0002] # TRIPLE NESTED LESS-THAN
-2AF8 ; [*0C7C.0020.0002] # TRIPLE NESTED GREATER-THAN
-2AF9 ; [*0C7D.0020.0002] # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
-2AFA ; [*0C7E.0020.0002] # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
-2AFB ; [*0C7F.0020.0002] # TRIPLE SOLIDUS BINARY RELATION
-2AFC ; [*0C80.0020.0002] # LARGE TRIPLE VERTICAL BAR OPERATOR
-2AFD ; [*0C81.0020.0002] # DOUBLE SOLIDUS OPERATOR
-2AFE ; [*0C82.0020.0002] # WHITE VERTICAL BAR
-2AFF ; [*0C83.0020.0002] # N-ARY WHITE VERTICAL BAR
-2B00 ; [*0C84.0020.0002] # NORTH EAST WHITE ARROW
-2B01 ; [*0C85.0020.0002] # NORTH WEST WHITE ARROW
-2B02 ; [*0C86.0020.0002] # SOUTH EAST WHITE ARROW
-2B03 ; [*0C87.0020.0002] # SOUTH WEST WHITE ARROW
-2B04 ; [*0C88.0020.0002] # LEFT RIGHT WHITE ARROW
-2B05 ; [*0C89.0020.0002] # LEFTWARDS BLACK ARROW
-2B06 ; [*0C8A.0020.0002] # UPWARDS BLACK ARROW
-2B07 ; [*0C8B.0020.0002] # DOWNWARDS BLACK ARROW
-2B08 ; [*0C8C.0020.0002] # NORTH EAST BLACK ARROW
-2B09 ; [*0C8D.0020.0002] # NORTH WEST BLACK ARROW
-2B0A ; [*0C8E.0020.0002] # SOUTH EAST BLACK ARROW
-2B0B ; [*0C8F.0020.0002] # SOUTH WEST BLACK ARROW
-2B0C ; [*0C90.0020.0002] # LEFT RIGHT BLACK ARROW
-2B0D ; [*0C91.0020.0002] # UP DOWN BLACK ARROW
-2B0E ; [*0C92.0020.0002] # RIGHTWARDS ARROW WITH TIP DOWNWARDS
-2B0F ; [*0C93.0020.0002] # RIGHTWARDS ARROW WITH TIP UPWARDS
-2B10 ; [*0C94.0020.0002] # LEFTWARDS ARROW WITH TIP DOWNWARDS
-2B11 ; [*0C95.0020.0002] # LEFTWARDS ARROW WITH TIP UPWARDS
-2B12 ; [*0C96.0020.0002] # SQUARE WITH TOP HALF BLACK
-2B13 ; [*0C97.0020.0002] # SQUARE WITH BOTTOM HALF BLACK
-2B14 ; [*0C98.0020.0002] # SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
-2B15 ; [*0C99.0020.0002] # SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
-2B16 ; [*0C9A.0020.0002] # DIAMOND WITH LEFT HALF BLACK
-2B17 ; [*0C9B.0020.0002] # DIAMOND WITH RIGHT HALF BLACK
-2B18 ; [*0C9C.0020.0002] # DIAMOND WITH TOP HALF BLACK
-2B19 ; [*0C9D.0020.0002] # DIAMOND WITH BOTTOM HALF BLACK
-2B1A ; [*0C9E.0020.0002] # DOTTED SQUARE
-2B1B ; [*0C9F.0020.0002] # BLACK LARGE SQUARE
-2B1C ; [*0CA0.0020.0002] # WHITE LARGE SQUARE
-2B1D ; [*0CA1.0020.0002] # BLACK VERY SMALL SQUARE
-2B1E ; [*0CA2.0020.0002] # WHITE VERY SMALL SQUARE
-2B1F ; [*0CA3.0020.0002] # BLACK PENTAGON
-2B20 ; [*0CA4.0020.0002] # WHITE PENTAGON
-2B21 ; [*0CA5.0020.0002] # WHITE HEXAGON
-2B22 ; [*0CA6.0020.0002] # BLACK HEXAGON
-2B23 ; [*0CA7.0020.0002] # HORIZONTAL BLACK HEXAGON
-2B24 ; [*0CA8.0020.0002] # BLACK LARGE CIRCLE
-2B25 ; [*0CA9.0020.0002] # BLACK MEDIUM DIAMOND
-2B26 ; [*0CAA.0020.0002] # WHITE MEDIUM DIAMOND
-2B27 ; [*0CAB.0020.0002] # BLACK MEDIUM LOZENGE
-2B28 ; [*0CAC.0020.0002] # WHITE MEDIUM LOZENGE
-2B29 ; [*0CAD.0020.0002] # BLACK SMALL DIAMOND
-2B2A ; [*0CAE.0020.0002] # BLACK SMALL LOZENGE
-2B2B ; [*0CAF.0020.0002] # WHITE SMALL LOZENGE
-2B2C ; [*0CB0.0020.0002] # BLACK HORIZONTAL ELLIPSE
-2B2D ; [*0CB1.0020.0002] # WHITE HORIZONTAL ELLIPSE
-2B2E ; [*0CB2.0020.0002] # BLACK VERTICAL ELLIPSE
-2B2F ; [*0CB3.0020.0002] # WHITE VERTICAL ELLIPSE
-2B30 ; [*0CB4.0020.0002] # LEFT ARROW WITH SMALL CIRCLE
-2B31 ; [*0CB5.0020.0002] # THREE LEFTWARDS ARROWS
-2B32 ; [*0CB6.0020.0002] # LEFT ARROW WITH CIRCLED PLUS
-2B33 ; [*0CB7.0020.0002] # LONG LEFTWARDS SQUIGGLE ARROW
-2B34 ; [*0CB8.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
-2B35 ; [*0CB9.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
-2B36 ; [*0CBA.0020.0002] # LEFTWARDS TWO-HEADED ARROW FROM BAR
-2B37 ; [*0CBB.0020.0002] # LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
-2B38 ; [*0CBC.0020.0002] # LEFTWARDS ARROW WITH DOTTED STEM
-2B39 ; [*0CBD.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
-2B3A ; [*0CBE.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3B ; [*0CBF.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL
-2B3C ; [*0CC0.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
-2B3D ; [*0CC1.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
-2B3E ; [*0CC2.0020.0002] # LEFTWARDS ARROW THROUGH X
-2B3F ; [*0CC3.0020.0002] # WAVE ARROW POINTING DIRECTLY LEFT
-2B40 ; [*0CC4.0020.0002] # EQUALS SIGN ABOVE LEFTWARDS ARROW
-2B41 ; [*0CC5.0020.0002] # REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B42 ; [*0CC6.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B43 ; [*0CC7.0020.0002] # RIGHTWARDS ARROW THROUGH GREATER-THAN
-2B44 ; [*0CC8.0020.0002] # RIGHTWARDS ARROW THROUGH SUPERSET
-2B45 ; [*0CC9.0020.0002] # LEFTWARDS QUADRUPLE ARROW
-2B46 ; [*0CCA.0020.0002] # RIGHTWARDS QUADRUPLE ARROW
-2B47 ; [*0CCB.0020.0002] # REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
-2B48 ; [*0CCC.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
-2B49 ; [*0CCD.0020.0002] # TILDE OPERATOR ABOVE LEFTWARDS ARROW
-2B4A ; [*0CCE.0020.0002] # LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
-2B4B ; [*0CCF.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4C ; [*0CD0.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4D ; [*0CD1.0020.0002] # DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW
-2B4E ; [*0CD2.0020.0002] # SHORT SLANTED NORTH ARROW
-2B4F ; [*0CD3.0020.0002] # SHORT BACKSLANTED SOUTH ARROW
-2B50 ; [*0CD4.0020.0002] # WHITE MEDIUM STAR
-2B51 ; [*0CD5.0020.0002] # BLACK SMALL STAR
-2B52 ; [*0CD6.0020.0002] # WHITE SMALL STAR
-2B53 ; [*0CD7.0020.0002] # BLACK RIGHT-POINTING PENTAGON
-2B54 ; [*0CD8.0020.0002] # WHITE RIGHT-POINTING PENTAGON
-2B55 ; [*0CD9.0020.0002] # HEAVY LARGE CIRCLE
-2B56 ; [*0CDA.0020.0002] # HEAVY OVAL WITH OVAL INSIDE
-2B57 ; [*0CDB.0020.0002] # HEAVY CIRCLE WITH CIRCLE INSIDE
-2B58 ; [*0CDC.0020.0002] # HEAVY CIRCLE
-2B59 ; [*0CDD.0020.0002] # HEAVY CIRCLED SALTIRE
-2B5A ; [*0CDE.0020.0002] # SLANTED NORTH ARROW WITH HOOKED HEAD
-2B5B ; [*0CDF.0020.0002] # BACKSLANTED SOUTH ARROW WITH HOOKED TAIL
-2B5C ; [*0CE0.0020.0002] # SLANTED NORTH ARROW WITH HORIZONTAL TAIL
-2B5D ; [*0CE1.0020.0002] # BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL
-2B5E ; [*0CE2.0020.0002] # BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
-2B5F ; [*0CE3.0020.0002] # SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
-2B60 ; [*0CE4.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW
-2B61 ; [*0CE5.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW
-2B62 ; [*0CE6.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW
-2B63 ; [*0CE7.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW
-2B64 ; [*0CE8.0020.0002] # LEFT RIGHT TRIANGLE-HEADED ARROW
-2B65 ; [*0CE9.0020.0002] # UP DOWN TRIANGLE-HEADED ARROW
-2B66 ; [*0CEA.0020.0002] # NORTH WEST TRIANGLE-HEADED ARROW
-2B67 ; [*0CEB.0020.0002] # NORTH EAST TRIANGLE-HEADED ARROW
-2B68 ; [*0CEC.0020.0002] # SOUTH EAST TRIANGLE-HEADED ARROW
-2B69 ; [*0CED.0020.0002] # SOUTH WEST TRIANGLE-HEADED ARROW
-2B6A ; [*0CEE.0020.0002] # LEFTWARDS TRIANGLE-HEADED DASHED ARROW
-2B6B ; [*0CEF.0020.0002] # UPWARDS TRIANGLE-HEADED DASHED ARROW
-2B6C ; [*0CF0.0020.0002] # RIGHTWARDS TRIANGLE-HEADED DASHED ARROW
-2B6D ; [*0CF1.0020.0002] # DOWNWARDS TRIANGLE-HEADED DASHED ARROW
-2B6E ; [*0CF2.0020.0002] # CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
-2B6F ; [*0CF3.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
-2B70 ; [*0CF4.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
-2B71 ; [*0CF5.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW TO BAR
-2B72 ; [*0CF6.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR
-2B73 ; [*0CF7.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
-2B76 ; [*0CF8.0020.0002] # NORTH WEST TRIANGLE-HEADED ARROW TO BAR
-2B77 ; [*0CF9.0020.0002] # NORTH EAST TRIANGLE-HEADED ARROW TO BAR
-2B78 ; [*0CFA.0020.0002] # SOUTH EAST TRIANGLE-HEADED ARROW TO BAR
-2B79 ; [*0CFB.0020.0002] # SOUTH WEST TRIANGLE-HEADED ARROW TO BAR
-2B7A ; [*0CFC.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
-2B7B ; [*0CFD.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
-2B7C ; [*0CFE.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
-2B7D ; [*0CFF.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
-2B7E ; [*0D00.0020.0002] # HORIZONTAL TAB KEY
-2B7F ; [*0D01.0020.0002] # VERTICAL TAB KEY
-2B80 ; [*0D02.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW
-2B81 ; [*0D03.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW
-2B82 ; [*0D04.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW
-2B83 ; [*0D05.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW
-2B84 ; [*0D06.0020.0002] # LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
-2B85 ; [*0D07.0020.0002] # UPWARDS TRIANGLE-HEADED PAIRED ARROWS
-2B86 ; [*0D08.0020.0002] # RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS
-2B87 ; [*0D09.0020.0002] # DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS
-2B88 ; [*0D0A.0020.0002] # LEFTWARDS BLACK CIRCLED WHITE ARROW
-2B89 ; [*0D0B.0020.0002] # UPWARDS BLACK CIRCLED WHITE ARROW
-2B8A ; [*0D0C.0020.0002] # RIGHTWARDS BLACK CIRCLED WHITE ARROW
-2B8B ; [*0D0D.0020.0002] # DOWNWARDS BLACK CIRCLED WHITE ARROW
-2B8C ; [*0D0E.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW
-2B8D ; [*0D0F.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW
-2B8E ; [*0D10.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW
-2B8F ; [*0D11.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW
-2B90 ; [*0D12.0020.0002] # RETURN LEFT
-2B91 ; [*0D13.0020.0002] # RETURN RIGHT
-2B92 ; [*0D14.0020.0002] # NEWLINE LEFT
-2B93 ; [*0D15.0020.0002] # NEWLINE RIGHT
-2B94 ; [*0D16.0020.0002] # FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE
-2B95 ; [*0D17.0020.0002] # RIGHTWARDS BLACK ARROW
-2B98 ; [*0D18.0020.0002] # THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD
-2B99 ; [*0D19.0020.0002] # THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD
-2B9A ; [*0D1A.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD
-2B9B ; [*0D1B.0020.0002] # THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD
-2B9C ; [*0D1C.0020.0002] # BLACK LEFTWARDS EQUILATERAL ARROWHEAD
-2B9D ; [*0D1D.0020.0002] # BLACK UPWARDS EQUILATERAL ARROWHEAD
-2B9E ; [*0D1E.0020.0002] # BLACK RIGHTWARDS EQUILATERAL ARROWHEAD
-2B9F ; [*0D1F.0020.0002] # BLACK DOWNWARDS EQUILATERAL ARROWHEAD
-2BA0 ; [*0D20.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
-2BA1 ; [*0D21.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
-2BA2 ; [*0D22.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
-2BA3 ; [*0D23.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
-2BA4 ; [*0D24.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
-2BA5 ; [*0D25.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
-2BA6 ; [*0D26.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
-2BA7 ; [*0D27.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
-2BA8 ; [*0D28.0020.0002] # BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW
-2BA9 ; [*0D29.0020.0002] # BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
-2BAA ; [*0D2A.0020.0002] # BLACK CURVED UPWARDS AND LEFTWARDS ARROW
-2BAB ; [*0D2B.0020.0002] # BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
-2BAC ; [*0D2C.0020.0002] # BLACK CURVED LEFTWARDS AND UPWARDS ARROW
-2BAD ; [*0D2D.0020.0002] # BLACK CURVED RIGHTWARDS AND UPWARDS ARROW
-2BAE ; [*0D2E.0020.0002] # BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW
-2BAF ; [*0D2F.0020.0002] # BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW
-2BB0 ; [*0D30.0020.0002] # RIBBON ARROW DOWN LEFT
-2BB1 ; [*0D31.0020.0002] # RIBBON ARROW DOWN RIGHT
-2BB2 ; [*0D32.0020.0002] # RIBBON ARROW UP LEFT
-2BB3 ; [*0D33.0020.0002] # RIBBON ARROW UP RIGHT
-2BB4 ; [*0D34.0020.0002] # RIBBON ARROW LEFT UP
-2BB5 ; [*0D35.0020.0002] # RIBBON ARROW RIGHT UP
-2BB6 ; [*0D36.0020.0002] # RIBBON ARROW LEFT DOWN
-2BB7 ; [*0D37.0020.0002] # RIBBON ARROW RIGHT DOWN
-2BB8 ; [*0D38.0020.0002] # UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR
-2BB9 ; [*0D39.0020.0002] # UP ARROWHEAD IN A RECTANGLE BOX
-2BBD ; [*0D3A.0020.0002] # BALLOT BOX WITH LIGHT X
-2BBE ; [*0D3B.0020.0002] # CIRCLED X
-2BBF ; [*0D3C.0020.0002] # CIRCLED BOLD X
-2BC0 ; [*0D3D.0020.0002] # BLACK SQUARE CENTRED
-2BC1 ; [*0D3E.0020.0002] # BLACK DIAMOND CENTRED
-2BC2 ; [*0D3F.0020.0002] # TURNED BLACK PENTAGON
-2BC3 ; [*0D40.0020.0002] # HORIZONTAL BLACK OCTAGON
-2BC4 ; [*0D41.0020.0002] # BLACK OCTAGON
-2BC5 ; [*0D42.0020.0002] # BLACK MEDIUM UP-POINTING TRIANGLE CENTRED
-2BC6 ; [*0D43.0020.0002] # BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED
-2BC7 ; [*0D44.0020.0002] # BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED
-2BC8 ; [*0D45.0020.0002] # BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
-2BCA ; [*0D46.0020.0002] # TOP HALF BLACK CIRCLE
-2BCB ; [*0D47.0020.0002] # BOTTOM HALF BLACK CIRCLE
-2BCC ; [*0D48.0020.0002] # LIGHT FOUR POINTED BLACK CUSP
-2BCD ; [*0D49.0020.0002] # ROTATED LIGHT FOUR POINTED BLACK CUSP
-2BCE ; [*0D4A.0020.0002] # WHITE FOUR POINTED CUSP
-2BCF ; [*0D4B.0020.0002] # ROTATED WHITE FOUR POINTED CUSP
-2BD0 ; [*0D4C.0020.0002] # SQUARE POSITION INDICATOR
-2BD1 ; [*0D4D.0020.0002] # UNCERTAINTY SIGN
-2CE5 ; [*0D4E.0020.0002] # COPTIC SYMBOL MI RO
-2CE6 ; [*0D4F.0020.0002] # COPTIC SYMBOL PI RO
-2CE7 ; [*0D50.0020.0002] # COPTIC SYMBOL STAUROS
-2CE8 ; [*0D51.0020.0002] # COPTIC SYMBOL TAU RO
-2CE9 ; [*0D52.0020.0002] # COPTIC SYMBOL KHI RO
-2CEA ; [*0D53.0020.0002] # COPTIC SYMBOL SHIMA SIMA
+207A ; [*05F6.0020.0014] # SUPERSCRIPT PLUS SIGN
+207B ; [*0601.0020.0014] # SUPERSCRIPT MINUS
+207C ; [*05FB.0020.0014] # SUPERSCRIPT EQUALS SIGN
+207D ; [*0310.0020.0014] # SUPERSCRIPT LEFT PARENTHESIS
+207E ; [*0311.0020.0014] # SUPERSCRIPT RIGHT PARENTHESIS
+208A ; [*05F6.0020.0015] # SUBSCRIPT PLUS SIGN
+208B ; [*0601.0020.0015] # SUBSCRIPT MINUS
+208C ; [*05FB.0020.0015] # SUBSCRIPT EQUALS SIGN
+208D ; [*0310.0020.0015] # SUBSCRIPT LEFT PARENTHESIS
+208E ; [*0311.0020.0015] # SUBSCRIPT RIGHT PARENTHESIS
+2104 ; [*0566.0020.0002] # CENTRE LINE SYMBOL
+2108 ; [*0567.0020.0002] # SCRUPLE
+2114 ; [*0568.0020.0002] # L B BAR SYMBOL
+2117 ; [*0569.0020.0002] # SOUND RECORDING COPYRIGHT
+2118 ; [*056A.0020.0002] # SCRIPT CAPITAL P
+211E ; [*056B.0020.0002] # PRESCRIPTION TAKE
+211F ; [*056C.0020.0002] # RESPONSE
+2123 ; [*056D.0020.0002] # VERSICLE
+2125 ; [*056E.0020.0002] # OUNCE SIGN
+2127 ; [*056F.0020.0002] # INVERTED OHM SIGN
+2129 ; [*0570.0020.0002] # TURNED GREEK SMALL LETTER IOTA
+212E ; [*0571.0020.0002] # ESTIMATED SYMBOL
+213A ; [*0572.0020.0002] # ROTATED CAPITAL Q
+2140 ; [*05F5.0020.0005] # DOUBLE-STRUCK N-ARY SUMMATION
+2141 ; [*0573.0020.0002] # TURNED SANS-SERIF CAPITAL G
+2142 ; [*0574.0020.0002] # TURNED SANS-SERIF CAPITAL L
+2143 ; [*0575.0020.0002] # REVERSED SANS-SERIF CAPITAL L
+2144 ; [*0576.0020.0002] # TURNED SANS-SERIF CAPITAL Y
+214A ; [*0577.0020.0002] # PROPERTY LINE
+214B ; [*0691.0020.0002] # TURNED AMPERSAND
+214C ; [*0578.0020.0002] # PER SIGN
+214F ; [*0579.0020.0002] # SYMBOL FOR SAMARITAN SOURCE
+2180 ; [*1A4C.0020.0002] # ROMAN NUMERAL ONE THOUSAND C D
+2181 ; [*1A4D.0020.0002] # ROMAN NUMERAL FIVE THOUSAND
+2182 ; [*1A4E.0020.0002] # ROMAN NUMERAL TEN THOUSAND
+2186 ; [*1A4F.0020.0002] # ROMAN NUMERAL FIFTY EARLY FORM
+2187 ; [*1A50.0020.0002] # ROMAN NUMERAL FIFTY THOUSAND
+2188 ; [*1A51.0020.0002] # ROMAN NUMERAL ONE HUNDRED THOUSAND
+218A ; [*057A.0020.0002] # TURNED DIGIT TWO
+218B ; [*057B.0020.0002] # TURNED DIGIT THREE
+2190 ; [*057C.0020.0002] # LEFTWARDS ARROW
+2191 ; [*057E.0020.0002] # UPWARDS ARROW
+2192 ; [*057D.0020.0002] # RIGHTWARDS ARROW
+2193 ; [*057F.0020.0002] # DOWNWARDS ARROW
+2194 ; [*0580.0020.0002] # LEFT RIGHT ARROW
+2195 ; [*0581.0020.0002] # UP DOWN ARROW
+2196 ; [*0582.0020.0002] # NORTH WEST ARROW
+2197 ; [*0583.0020.0002] # NORTH EAST ARROW
+2198 ; [*0584.0020.0002] # SOUTH EAST ARROW
+2199 ; [*0585.0020.0002] # SOUTH WEST ARROW
+219A ; [*057C.0020.0002][.0000.002F.0002] # LEFTWARDS ARROW WITH STROKE
+219B ; [*057D.0020.0002][.0000.002F.0002] # RIGHTWARDS ARROW WITH STROKE
+219C ; [*0586.0020.0002] # LEFTWARDS WAVE ARROW
+219D ; [*0587.0020.0002] # RIGHTWARDS WAVE ARROW
+219E ; [*0588.0020.0002] # LEFTWARDS TWO HEADED ARROW
+219F ; [*0589.0020.0002] # UPWARDS TWO HEADED ARROW
+21A0 ; [*058A.0020.0002] # RIGHTWARDS TWO HEADED ARROW
+21A1 ; [*058B.0020.0002] # DOWNWARDS TWO HEADED ARROW
+21A2 ; [*058C.0020.0002] # LEFTWARDS ARROW WITH TAIL
+21A3 ; [*058D.0020.0002] # RIGHTWARDS ARROW WITH TAIL
+21A4 ; [*058E.0020.0002] # LEFTWARDS ARROW FROM BAR
+21A5 ; [*058F.0020.0002] # UPWARDS ARROW FROM BAR
+21A6 ; [*0590.0020.0002] # RIGHTWARDS ARROW FROM BAR
+21A7 ; [*0591.0020.0002] # DOWNWARDS ARROW FROM BAR
+21A8 ; [*0592.0020.0002] # UP DOWN ARROW WITH BASE
+21A9 ; [*0593.0020.0002] # LEFTWARDS ARROW WITH HOOK
+21AA ; [*0594.0020.0002] # RIGHTWARDS ARROW WITH HOOK
+21AB ; [*0595.0020.0002] # LEFTWARDS ARROW WITH LOOP
+21AC ; [*0596.0020.0002] # RIGHTWARDS ARROW WITH LOOP
+21AD ; [*0597.0020.0002] # LEFT RIGHT WAVE ARROW
+21AE ; [*0580.0020.0002][.0000.002F.0002] # LEFT RIGHT ARROW WITH STROKE
+21AF ; [*0598.0020.0002] # DOWNWARDS ZIGZAG ARROW
+21B0 ; [*0599.0020.0002] # UPWARDS ARROW WITH TIP LEFTWARDS
+21B1 ; [*059A.0020.0002] # UPWARDS ARROW WITH TIP RIGHTWARDS
+21B2 ; [*059B.0020.0002] # DOWNWARDS ARROW WITH TIP LEFTWARDS
+21B3 ; [*059C.0020.0002] # DOWNWARDS ARROW WITH TIP RIGHTWARDS
+21B4 ; [*059D.0020.0002] # RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+21B5 ; [*059E.0020.0002] # DOWNWARDS ARROW WITH CORNER LEFTWARDS
+21B6 ; [*059F.0020.0002] # ANTICLOCKWISE TOP SEMICIRCLE ARROW
+21B7 ; [*05A0.0020.0002] # CLOCKWISE TOP SEMICIRCLE ARROW
+21B8 ; [*05A1.0020.0002] # NORTH WEST ARROW TO LONG BAR
+21B9 ; [*05A2.0020.0002] # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+21BA ; [*05A3.0020.0002] # ANTICLOCKWISE OPEN CIRCLE ARROW
+21BB ; [*05A4.0020.0002] # CLOCKWISE OPEN CIRCLE ARROW
+21BC ; [*05A5.0020.0002] # LEFTWARDS HARPOON WITH BARB UPWARDS
+21BD ; [*05A6.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWNWARDS
+21BE ; [*05A7.0020.0002] # UPWARDS HARPOON WITH BARB RIGHTWARDS
+21BF ; [*05A8.0020.0002] # UPWARDS HARPOON WITH BARB LEFTWARDS
+21C0 ; [*05A9.0020.0002] # RIGHTWARDS HARPOON WITH BARB UPWARDS
+21C1 ; [*05AA.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+21C2 ; [*05AB.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+21C3 ; [*05AC.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFTWARDS
+21C4 ; [*05AD.0020.0002] # RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+21C5 ; [*05AE.0020.0002] # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+21C6 ; [*05AF.0020.0002] # LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+21C7 ; [*05B0.0020.0002] # LEFTWARDS PAIRED ARROWS
+21C8 ; [*05B1.0020.0002] # UPWARDS PAIRED ARROWS
+21C9 ; [*05B2.0020.0002] # RIGHTWARDS PAIRED ARROWS
+21CA ; [*05B3.0020.0002] # DOWNWARDS PAIRED ARROWS
+21CB ; [*05B4.0020.0002] # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+21CC ; [*05B5.0020.0002] # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+21CD ; [*05B6.0020.0002][.0000.002F.0002] # LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE ; [*05BA.0020.0002][.0000.002F.0002] # LEFT RIGHT DOUBLE ARROW WITH STROKE
+21CF ; [*05B8.0020.0002][.0000.002F.0002] # RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0 ; [*05B6.0020.0002] # LEFTWARDS DOUBLE ARROW
+21D1 ; [*05B7.0020.0002] # UPWARDS DOUBLE ARROW
+21D2 ; [*05B8.0020.0002] # RIGHTWARDS DOUBLE ARROW
+21D3 ; [*05B9.0020.0002] # DOWNWARDS DOUBLE ARROW
+21D4 ; [*05BA.0020.0002] # LEFT RIGHT DOUBLE ARROW
+21D5 ; [*05BB.0020.0002] # UP DOWN DOUBLE ARROW
+21D6 ; [*05BC.0020.0002] # NORTH WEST DOUBLE ARROW
+21D7 ; [*05BD.0020.0002] # NORTH EAST DOUBLE ARROW
+21D8 ; [*05BE.0020.0002] # SOUTH EAST DOUBLE ARROW
+21D9 ; [*05BF.0020.0002] # SOUTH WEST DOUBLE ARROW
+21DA ; [*05C0.0020.0002] # LEFTWARDS TRIPLE ARROW
+21DB ; [*05C1.0020.0002] # RIGHTWARDS TRIPLE ARROW
+21DC ; [*05C2.0020.0002] # LEFTWARDS SQUIGGLE ARROW
+21DD ; [*05C3.0020.0002] # RIGHTWARDS SQUIGGLE ARROW
+21DE ; [*05C4.0020.0002] # UPWARDS ARROW WITH DOUBLE STROKE
+21DF ; [*05C5.0020.0002] # DOWNWARDS ARROW WITH DOUBLE STROKE
+21E0 ; [*05C6.0020.0002] # LEFTWARDS DASHED ARROW
+21E1 ; [*05C7.0020.0002] # UPWARDS DASHED ARROW
+21E2 ; [*05C8.0020.0002] # RIGHTWARDS DASHED ARROW
+21E3 ; [*05C9.0020.0002] # DOWNWARDS DASHED ARROW
+21E4 ; [*05CA.0020.0002] # LEFTWARDS ARROW TO BAR
+21E5 ; [*05CB.0020.0002] # RIGHTWARDS ARROW TO BAR
+21E6 ; [*05CC.0020.0002] # LEFTWARDS WHITE ARROW
+21E7 ; [*05CD.0020.0002] # UPWARDS WHITE ARROW
+21E8 ; [*05CE.0020.0002] # RIGHTWARDS WHITE ARROW
+21E9 ; [*05CF.0020.0002] # DOWNWARDS WHITE ARROW
+21EA ; [*05D0.0020.0002] # UPWARDS WHITE ARROW FROM BAR
+21EB ; [*05D1.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL
+21EC ; [*05D2.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+21ED ; [*05D3.0020.0002] # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+21EE ; [*05D4.0020.0002] # UPWARDS WHITE DOUBLE ARROW
+21EF ; [*05D5.0020.0002] # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+21F0 ; [*05D6.0020.0002] # RIGHTWARDS WHITE ARROW FROM WALL
+21F1 ; [*05D7.0020.0002] # NORTH WEST ARROW TO CORNER
+21F2 ; [*05D8.0020.0002] # SOUTH EAST ARROW TO CORNER
+21F3 ; [*05D9.0020.0002] # UP DOWN WHITE ARROW
+21F4 ; [*05DA.0020.0002] # RIGHT ARROW WITH SMALL CIRCLE
+21F5 ; [*05DB.0020.0002] # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+21F6 ; [*05DC.0020.0002] # THREE RIGHTWARDS ARROWS
+21F7 ; [*05DD.0020.0002] # LEFTWARDS ARROW WITH VERTICAL STROKE
+21F8 ; [*05DE.0020.0002] # RIGHTWARDS ARROW WITH VERTICAL STROKE
+21F9 ; [*05DF.0020.0002] # LEFT RIGHT ARROW WITH VERTICAL STROKE
+21FA ; [*05E0.0020.0002] # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+21FB ; [*05E1.0020.0002] # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+21FC ; [*05E2.0020.0002] # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
+21FD ; [*05E3.0020.0002] # LEFTWARDS OPEN-HEADED ARROW
+21FE ; [*05E4.0020.0002] # RIGHTWARDS OPEN-HEADED ARROW
+21FF ; [*05E5.0020.0002] # LEFT RIGHT OPEN-HEADED ARROW
+2200 ; [*05E6.0020.0002] # FOR ALL
+2201 ; [*05E7.0020.0002] # COMPLEMENT
+2202 ; [*05E8.0020.0002] # PARTIAL DIFFERENTIAL
+2203 ; [*05E9.0020.0002] # THERE EXISTS
+2204 ; [*05E9.0020.0002][.0000.002F.0002] # THERE DOES NOT EXIST
+2205 ; [*05EA.0020.0002] # EMPTY SET
+2206 ; [*05EB.0020.0002] # INCREMENT
+2207 ; [*05EC.0020.0002] # NABLA
+2208 ; [*05ED.0020.0002] # ELEMENT OF
+2209 ; [*05ED.0020.0002][.0000.002F.0002] # NOT AN ELEMENT OF
+220A ; [*05EE.0020.0002] # SMALL ELEMENT OF
+220B ; [*05EF.0020.0002] # CONTAINS AS MEMBER
+220C ; [*05EF.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS MEMBER
+220D ; [*05F0.0020.0002] # SMALL CONTAINS AS MEMBER
+220E ; [*05F2.0020.0002] # END OF PROOF
+220F ; [*05F3.0020.0002] # N-ARY PRODUCT
+2210 ; [*05F4.0020.0002] # N-ARY COPRODUCT
+2211 ; [*05F5.0020.0002] # N-ARY SUMMATION
+2212 ; [*0601.0020.0002] # MINUS SIGN
+2213 ; [*0603.0020.0002] # MINUS-OR-PLUS SIGN
+2214 ; [*0604.0020.0002] # DOT PLUS
+2215 ; [*0605.0020.0002] # DIVISION SLASH
+2216 ; [*0607.0020.0002] # SET MINUS
+2217 ; [*0608.0020.0002] # ASTERISK OPERATOR
+2218 ; [*0609.0020.0002] # RING OPERATOR
+2219 ; [*060A.0020.0002] # BULLET OPERATOR
+221A ; [*060B.0020.0002] # SQUARE ROOT
+221B ; [*060C.0020.0002] # CUBE ROOT
+221C ; [*060E.0020.0002] # FOURTH ROOT
+221D ; [*0610.0020.0002] # PROPORTIONAL TO
+221E ; [*0611.0020.0002] # INFINITY
+221F ; [*0612.0020.0002] # RIGHT ANGLE
+2220 ; [*0613.0020.0002] # ANGLE
+2221 ; [*0614.0020.0002] # MEASURED ANGLE
+2222 ; [*0615.0020.0002] # SPHERICAL ANGLE
+2223 ; [*0616.0020.0002] # DIVIDES
+2224 ; [*0616.0020.0002][.0000.002F.0002] # DOES NOT DIVIDE
+2225 ; [*0617.0020.0002] # PARALLEL TO
+2226 ; [*0617.0020.0002][.0000.002F.0002] # NOT PARALLEL TO
+2227 ; [*0618.0020.0002] # LOGICAL AND
+2228 ; [*0619.0020.0002] # LOGICAL OR
+2229 ; [*061A.0020.0002] # INTERSECTION
+222A ; [*061B.0020.0002] # UNION
+222B ; [*061C.0020.0002] # INTEGRAL
+222C ; [*061C.0020.0004][*061C.0020.0004] # DOUBLE INTEGRAL
+222D ; [*061C.0020.0004][*061C.0020.0004][*061C.0020.0004] # TRIPLE INTEGRAL
+222E ; [*061D.0020.0002] # CONTOUR INTEGRAL
+222F ; [*061D.0020.0004][*061D.0020.0004] # SURFACE INTEGRAL
+2230 ; [*061D.0020.0004][*061D.0020.0004][*061D.0020.0004] # VOLUME INTEGRAL
+2231 ; [*061E.0020.0002] # CLOCKWISE INTEGRAL
+2232 ; [*061F.0020.0002] # CLOCKWISE CONTOUR INTEGRAL
+2233 ; [*0620.0020.0002] # ANTICLOCKWISE CONTOUR INTEGRAL
+2234 ; [*0621.0020.0002] # THEREFORE
+2235 ; [*0622.0020.0002] # BECAUSE
+2236 ; [*0623.0020.0002] # RATIO
+2237 ; [*0624.0020.0002] # PROPORTION
+2238 ; [*0625.0020.0002] # DOT MINUS
+2239 ; [*0626.0020.0002] # EXCESS
+223A ; [*0627.0020.0002] # GEOMETRIC PROPORTION
+223B ; [*0628.0020.0002] # HOMOTHETIC
+223C ; [*0629.0020.0002] # TILDE OPERATOR
+223D ; [*062A.0020.0002] # REVERSED TILDE
+223E ; [*062B.0020.0002] # INVERTED LAZY S
+223F ; [*062C.0020.0002] # SINE WAVE
+2240 ; [*062D.0020.0002] # WREATH PRODUCT
+2241 ; [*0629.0020.0002][.0000.002F.0002] # NOT TILDE
+2242 ; [*062E.0020.0002] # MINUS TILDE
+2243 ; [*062F.0020.0002] # ASYMPTOTICALLY EQUAL TO
+2244 ; [*062F.0020.0002][.0000.002F.0002] # NOT ASYMPTOTICALLY EQUAL TO
+2245 ; [*0630.0020.0002] # APPROXIMATELY EQUAL TO
+2246 ; [*0631.0020.0002] # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+2247 ; [*0630.0020.0002][.0000.002F.0002] # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248 ; [*0632.0020.0002] # ALMOST EQUAL TO
+2249 ; [*0632.0020.0002][.0000.002F.0002] # NOT ALMOST EQUAL TO
+224A ; [*0633.0020.0002] # ALMOST EQUAL OR EQUAL TO
+224B ; [*0634.0020.0002] # TRIPLE TILDE
+224C ; [*0635.0020.0002] # ALL EQUAL TO
+224D ; [*0636.0020.0002] # EQUIVALENT TO
+224E ; [*0637.0020.0002] # GEOMETRICALLY EQUIVALENT TO
+224F ; [*0638.0020.0002] # DIFFERENCE BETWEEN
+2250 ; [*0639.0020.0002] # APPROACHES THE LIMIT
+2251 ; [*063A.0020.0002] # GEOMETRICALLY EQUAL TO
+2252 ; [*063B.0020.0002] # APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253 ; [*063C.0020.0002] # IMAGE OF OR APPROXIMATELY EQUAL TO
+2254 ; [*063D.0020.0002] # COLON EQUALS
+2255 ; [*063E.0020.0002] # EQUALS COLON
+2256 ; [*063F.0020.0002] # RING IN EQUAL TO
+2257 ; [*0640.0020.0002] # RING EQUAL TO
+2258 ; [*0641.0020.0002] # CORRESPONDS TO
+2259 ; [*0642.0020.0002] # ESTIMATES
+225A ; [*0643.0020.0002] # EQUIANGULAR TO
+225B ; [*0644.0020.0002] # STAR EQUALS
+225C ; [*0645.0020.0002] # DELTA EQUAL TO
+225D ; [*0646.0020.0002] # EQUAL TO BY DEFINITION
+225E ; [*0647.0020.0002] # MEASURED BY
+225F ; [*0648.0020.0002] # QUESTIONED EQUAL TO
+2260 ; [*05FB.0020.0002][.0000.002F.0002] # NOT EQUAL TO
+2261 ; [*0649.0020.0002] # IDENTICAL TO
+2262 ; [*0649.0020.0002][.0000.002F.0002] # NOT IDENTICAL TO
+2263 ; [*064A.0020.0002] # STRICTLY EQUIVALENT TO
+2264 ; [*064B.0020.0002] # LESS-THAN OR EQUAL TO
+2265 ; [*064C.0020.0002] # GREATER-THAN OR EQUAL TO
+2266 ; [*064D.0020.0002] # LESS-THAN OVER EQUAL TO
+2267 ; [*064E.0020.0002] # GREATER-THAN OVER EQUAL TO
+2268 ; [*064F.0020.0002] # LESS-THAN BUT NOT EQUAL TO
+2269 ; [*0650.0020.0002] # GREATER-THAN BUT NOT EQUAL TO
+226A ; [*0651.0020.0002] # MUCH LESS-THAN
+226B ; [*0652.0020.0002] # MUCH GREATER-THAN
+226C ; [*0653.0020.0002] # BETWEEN
+226D ; [*0636.0020.0002][.0000.002F.0002] # NOT EQUIVALENT TO
+226E ; [*05FA.0020.0002][.0000.002F.0002] # NOT LESS-THAN
+226F ; [*05FC.0020.0002][.0000.002F.0002] # NOT GREATER-THAN
+2270 ; [*064B.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUAL TO
+2271 ; [*064C.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUAL TO
+2272 ; [*0654.0020.0002] # LESS-THAN OR EQUIVALENT TO
+2273 ; [*0655.0020.0002] # GREATER-THAN OR EQUIVALENT TO
+2274 ; [*0654.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR EQUIVALENT TO
+2275 ; [*0655.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR EQUIVALENT TO
+2276 ; [*0656.0020.0002] # LESS-THAN OR GREATER-THAN
+2277 ; [*0657.0020.0002] # GREATER-THAN OR LESS-THAN
+2278 ; [*0656.0020.0002][.0000.002F.0002] # NEITHER LESS-THAN NOR GREATER-THAN
+2279 ; [*0657.0020.0002][.0000.002F.0002] # NEITHER GREATER-THAN NOR LESS-THAN
+227A ; [*0658.0020.0002] # PRECEDES
+227B ; [*0659.0020.0002] # SUCCEEDS
+227C ; [*065A.0020.0002] # PRECEDES OR EQUAL TO
+227D ; [*065B.0020.0002] # SUCCEEDS OR EQUAL TO
+227E ; [*065C.0020.0002] # PRECEDES OR EQUIVALENT TO
+227F ; [*065D.0020.0002] # SUCCEEDS OR EQUIVALENT TO
+2280 ; [*0658.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE
+2281 ; [*0659.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED
+2282 ; [*065E.0020.0002] # SUBSET OF
+2283 ; [*065F.0020.0002] # SUPERSET OF
+2284 ; [*065E.0020.0002][.0000.002F.0002] # NOT A SUBSET OF
+2285 ; [*065F.0020.0002][.0000.002F.0002] # NOT A SUPERSET OF
+2286 ; [*0660.0020.0002] # SUBSET OF OR EQUAL TO
+2287 ; [*0661.0020.0002] # SUPERSET OF OR EQUAL TO
+2288 ; [*0660.0020.0002][.0000.002F.0002] # NEITHER A SUBSET OF NOR EQUAL TO
+2289 ; [*0661.0020.0002][.0000.002F.0002] # NEITHER A SUPERSET OF NOR EQUAL TO
+228A ; [*0662.0020.0002] # SUBSET OF WITH NOT EQUAL TO
+228B ; [*0663.0020.0002] # SUPERSET OF WITH NOT EQUAL TO
+228C ; [*0664.0020.0002] # MULTISET
+228D ; [*0665.0020.0002] # MULTISET MULTIPLICATION
+228E ; [*0666.0020.0002] # MULTISET UNION
+228F ; [*0667.0020.0002] # SQUARE IMAGE OF
+2290 ; [*0668.0020.0002] # SQUARE ORIGINAL OF
+2291 ; [*0669.0020.0002] # SQUARE IMAGE OF OR EQUAL TO
+2292 ; [*066A.0020.0002] # SQUARE ORIGINAL OF OR EQUAL TO
+2293 ; [*066B.0020.0002] # SQUARE CAP
+2294 ; [*066C.0020.0002] # SQUARE CUP
+2295 ; [*066D.0020.0002] # CIRCLED PLUS
+2296 ; [*066E.0020.0002] # CIRCLED MINUS
+2297 ; [*066F.0020.0002] # CIRCLED TIMES
+2298 ; [*0670.0020.0002] # CIRCLED DIVISION SLASH
+2299 ; [*0671.0020.0002] # CIRCLED DOT OPERATOR
+229A ; [*0672.0020.0002] # CIRCLED RING OPERATOR
+229B ; [*0673.0020.0002] # CIRCLED ASTERISK OPERATOR
+229C ; [*0674.0020.0002] # CIRCLED EQUALS
+229D ; [*0675.0020.0002] # CIRCLED DASH
+229E ; [*0676.0020.0002] # SQUARED PLUS
+229F ; [*0677.0020.0002] # SQUARED MINUS
+22A0 ; [*0678.0020.0002] # SQUARED TIMES
+22A1 ; [*0679.0020.0002] # SQUARED DOT OPERATOR
+22A2 ; [*067A.0020.0002] # RIGHT TACK
+22A3 ; [*067B.0020.0002] # LEFT TACK
+22A4 ; [*067C.0020.0002] # DOWN TACK
+22A5 ; [*067D.0020.0002] # UP TACK
+22A6 ; [*067E.0020.0002] # ASSERTION
+22A7 ; [*067F.0020.0002] # MODELS
+22A8 ; [*0680.0020.0002] # TRUE
+22A9 ; [*0681.0020.0002] # FORCES
+22AA ; [*0682.0020.0002] # TRIPLE VERTICAL BAR RIGHT TURNSTILE
+22AB ; [*0683.0020.0002] # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22AC ; [*067A.0020.0002][.0000.002F.0002] # DOES NOT PROVE
+22AD ; [*0680.0020.0002][.0000.002F.0002] # NOT TRUE
+22AE ; [*0681.0020.0002][.0000.002F.0002] # DOES NOT FORCE
+22AF ; [*0683.0020.0002][.0000.002F.0002] # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22B0 ; [*0684.0020.0002] # PRECEDES UNDER RELATION
+22B1 ; [*0685.0020.0002] # SUCCEEDS UNDER RELATION
+22B2 ; [*0686.0020.0002] # NORMAL SUBGROUP OF
+22B3 ; [*0687.0020.0002] # CONTAINS AS NORMAL SUBGROUP
+22B4 ; [*0688.0020.0002] # NORMAL SUBGROUP OF OR EQUAL TO
+22B5 ; [*0689.0020.0002] # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+22B6 ; [*068A.0020.0002] # ORIGINAL OF
+22B7 ; [*068B.0020.0002] # IMAGE OF
+22B8 ; [*068C.0020.0002] # MULTIMAP
+22B9 ; [*068D.0020.0002] # HERMITIAN CONJUGATE MATRIX
+22BA ; [*068E.0020.0002] # INTERCALATE
+22BB ; [*068F.0020.0002] # XOR
+22BC ; [*0690.0020.0002] # NAND
+22BD ; [*0692.0020.0002] # NOR
+22BE ; [*0693.0020.0002] # RIGHT ANGLE WITH ARC
+22BF ; [*0694.0020.0002] # RIGHT TRIANGLE
+22C0 ; [*0695.0020.0002] # N-ARY LOGICAL AND
+22C1 ; [*0696.0020.0002] # N-ARY LOGICAL OR
+22C2 ; [*0697.0020.0002] # N-ARY INTERSECTION
+22C3 ; [*0698.0020.0002] # N-ARY UNION
+22C4 ; [*0699.0020.0002] # DIAMOND OPERATOR
+22C5 ; [*069A.0020.0002] # DOT OPERATOR
+22C6 ; [*069B.0020.0002] # STAR OPERATOR
+22C7 ; [*069C.0020.0002] # DIVISION TIMES
+22C8 ; [*069D.0020.0002] # BOWTIE
+22C9 ; [*069E.0020.0002] # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CA ; [*069F.0020.0002] # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CB ; [*06A0.0020.0002] # LEFT SEMIDIRECT PRODUCT
+22CC ; [*06A1.0020.0002] # RIGHT SEMIDIRECT PRODUCT
+22CD ; [*06A2.0020.0002] # REVERSED TILDE EQUALS
+22CE ; [*06A3.0020.0002] # CURLY LOGICAL OR
+22CF ; [*06A4.0020.0002] # CURLY LOGICAL AND
+22D0 ; [*06A5.0020.0002] # DOUBLE SUBSET
+22D1 ; [*06A6.0020.0002] # DOUBLE SUPERSET
+22D2 ; [*06A7.0020.0002] # DOUBLE INTERSECTION
+22D3 ; [*06A8.0020.0002] # DOUBLE UNION
+22D4 ; [*06A9.0020.0002] # PITCHFORK
+22D5 ; [*06AA.0020.0002] # EQUAL AND PARALLEL TO
+22D6 ; [*06AB.0020.0002] # LESS-THAN WITH DOT
+22D7 ; [*06AC.0020.0002] # GREATER-THAN WITH DOT
+22D8 ; [*06AD.0020.0002] # VERY MUCH LESS-THAN
+22D9 ; [*06AE.0020.0002] # VERY MUCH GREATER-THAN
+22DA ; [*06AF.0020.0002] # LESS-THAN EQUAL TO OR GREATER-THAN
+22DB ; [*06B0.0020.0002] # GREATER-THAN EQUAL TO OR LESS-THAN
+22DC ; [*06B1.0020.0002] # EQUAL TO OR LESS-THAN
+22DD ; [*06B2.0020.0002] # EQUAL TO OR GREATER-THAN
+22DE ; [*06B3.0020.0002] # EQUAL TO OR PRECEDES
+22DF ; [*06B4.0020.0002] # EQUAL TO OR SUCCEEDS
+22E0 ; [*065A.0020.0002][.0000.002F.0002] # DOES NOT PRECEDE OR EQUAL
+22E1 ; [*065B.0020.0002][.0000.002F.0002] # DOES NOT SUCCEED OR EQUAL
+22E2 ; [*0669.0020.0002][.0000.002F.0002] # NOT SQUARE IMAGE OF OR EQUAL TO
+22E3 ; [*066A.0020.0002][.0000.002F.0002] # NOT SQUARE ORIGINAL OF OR EQUAL TO
+22E4 ; [*06B5.0020.0002] # SQUARE IMAGE OF OR NOT EQUAL TO
+22E5 ; [*06B6.0020.0002] # SQUARE ORIGINAL OF OR NOT EQUAL TO
+22E6 ; [*06B7.0020.0002] # LESS-THAN BUT NOT EQUIVALENT TO
+22E7 ; [*06B8.0020.0002] # GREATER-THAN BUT NOT EQUIVALENT TO
+22E8 ; [*06B9.0020.0002] # PRECEDES BUT NOT EQUIVALENT TO
+22E9 ; [*06BA.0020.0002] # SUCCEEDS BUT NOT EQUIVALENT TO
+22EA ; [*0686.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF
+22EB ; [*0687.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP
+22EC ; [*0688.0020.0002][.0000.002F.0002] # NOT NORMAL SUBGROUP OF OR EQUAL TO
+22ED ; [*0689.0020.0002][.0000.002F.0002] # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+22EE ; [*06BB.0020.0002] # VERTICAL ELLIPSIS
+22EF ; [*06BC.0020.0002] # MIDLINE HORIZONTAL ELLIPSIS
+22F0 ; [*06BD.0020.0002] # UP RIGHT DIAGONAL ELLIPSIS
+22F1 ; [*06BE.0020.0002] # DOWN RIGHT DIAGONAL ELLIPSIS
+22F2 ; [*06BF.0020.0002] # ELEMENT OF WITH LONG HORIZONTAL STROKE
+22F3 ; [*06C0.0020.0002] # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F4 ; [*06C1.0020.0002] # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F5 ; [*06C2.0020.0002] # ELEMENT OF WITH DOT ABOVE
+22F6 ; [*06C3.0020.0002] # ELEMENT OF WITH OVERBAR
+22F7 ; [*06C4.0020.0002] # SMALL ELEMENT OF WITH OVERBAR
+22F8 ; [*06C5.0020.0002] # ELEMENT OF WITH UNDERBAR
+22F9 ; [*06C6.0020.0002] # ELEMENT OF WITH TWO HORIZONTAL STROKES
+22FA ; [*06C7.0020.0002] # CONTAINS WITH LONG HORIZONTAL STROKE
+22FB ; [*06C8.0020.0002] # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FC ; [*06C9.0020.0002] # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FD ; [*06CA.0020.0002] # CONTAINS WITH OVERBAR
+22FE ; [*06CB.0020.0002] # SMALL CONTAINS WITH OVERBAR
+22FF ; [*06CC.0020.0002] # Z NOTATION BAG MEMBERSHIP
+2300 ; [*06CD.0020.0002] # DIAMETER SIGN
+2301 ; [*06CE.0020.0002] # ELECTRIC ARROW
+2302 ; [*06CF.0020.0002] # HOUSE
+2303 ; [*06D0.0020.0002] # UP ARROWHEAD
+2304 ; [*06D1.0020.0002] # DOWN ARROWHEAD
+2305 ; [*06D2.0020.0002] # PROJECTIVE
+2306 ; [*06D3.0020.0002] # PERSPECTIVE
+2307 ; [*06D4.0020.0002] # WAVY LINE
+2308 ; [*031E.0020.0002] # LEFT CEILING
+2309 ; [*031F.0020.0002] # RIGHT CEILING
+230A ; [*0320.0020.0002] # LEFT FLOOR
+230B ; [*0321.0020.0002] # RIGHT FLOOR
+230C ; [*06D5.0020.0002] # BOTTOM RIGHT CROP
+230D ; [*06D6.0020.0002] # BOTTOM LEFT CROP
+230E ; [*06D7.0020.0002] # TOP RIGHT CROP
+230F ; [*06D8.0020.0002] # TOP LEFT CROP
+2310 ; [*06D9.0020.0002] # REVERSED NOT SIGN
+2311 ; [*06DA.0020.0002] # SQUARE LOZENGE
+2312 ; [*06DB.0020.0002] # ARC
+2313 ; [*06DC.0020.0002] # SEGMENT
+2314 ; [*06DD.0020.0002] # SECTOR
+2315 ; [*06DE.0020.0002] # TELEPHONE RECORDER
+2316 ; [*06DF.0020.0002] # POSITION INDICATOR
+2317 ; [*06E0.0020.0002] # VIEWDATA SQUARE
+2318 ; [*06E1.0020.0002] # PLACE OF INTEREST SIGN
+2319 ; [*06E2.0020.0002] # TURNED NOT SIGN
+231A ; [*06E3.0020.0002] # WATCH
+231B ; [*06E4.0020.0002] # HOURGLASS
+231C ; [*06E5.0020.0002] # TOP LEFT CORNER
+231D ; [*06E6.0020.0002] # TOP RIGHT CORNER
+231E ; [*06E7.0020.0002] # BOTTOM LEFT CORNER
+231F ; [*06E8.0020.0002] # BOTTOM RIGHT CORNER
+2320 ; [*06E9.0020.0002] # TOP HALF INTEGRAL
+2321 ; [*06EA.0020.0002] # BOTTOM HALF INTEGRAL
+2322 ; [*06EB.0020.0002] # FROWN
+2323 ; [*06EC.0020.0002] # SMILE
+2324 ; [*06ED.0020.0002] # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS
+2325 ; [*06EE.0020.0002] # OPTION KEY
+2326 ; [*06EF.0020.0002] # ERASE TO THE RIGHT
+2327 ; [*06F0.0020.0002] # X IN A RECTANGLE BOX
+2328 ; [*06F1.0020.0002] # KEYBOARD
+2329 ; [*0368.0020.0002] # LEFT-POINTING ANGLE BRACKET
+232A ; [*0369.0020.0002] # RIGHT-POINTING ANGLE BRACKET
+232B ; [*06F2.0020.0002] # ERASE TO THE LEFT
+232C ; [*06F3.0020.0002] # BENZENE RING
+232D ; [*06F4.0020.0002] # CYLINDRICITY
+232E ; [*06F5.0020.0002] # ALL AROUND-PROFILE
+232F ; [*06F6.0020.0002] # SYMMETRY
+2330 ; [*06F7.0020.0002] # TOTAL RUNOUT
+2331 ; [*06F8.0020.0002] # DIMENSION ORIGIN
+2332 ; [*06F9.0020.0002] # CONICAL TAPER
+2333 ; [*06FA.0020.0002] # SLOPE
+2334 ; [*06FB.0020.0002] # COUNTERBORE
+2335 ; [*06FC.0020.0002] # COUNTERSINK
+2336 ; [*06FD.0020.0002] # APL FUNCTIONAL SYMBOL I-BEAM
+2337 ; [*06FE.0020.0002] # APL FUNCTIONAL SYMBOL SQUISH QUAD
+2338 ; [*06FF.0020.0002] # APL FUNCTIONAL SYMBOL QUAD EQUAL
+2339 ; [*0700.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIVIDE
+233A ; [*0701.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DIAMOND
+233B ; [*0702.0020.0002] # APL FUNCTIONAL SYMBOL QUAD JOT
+233C ; [*0703.0020.0002] # APL FUNCTIONAL SYMBOL QUAD CIRCLE
+233D ; [*0704.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STILE
+233E ; [*0705.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE JOT
+233F ; [*0706.0020.0002] # APL FUNCTIONAL SYMBOL SLASH BAR
+2340 ; [*0707.0020.0002] # APL FUNCTIONAL SYMBOL BACKSLASH BAR
+2341 ; [*0708.0020.0002] # APL FUNCTIONAL SYMBOL QUAD SLASH
+2342 ; [*0709.0020.0002] # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
+2343 ; [*070A.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
+2344 ; [*070B.0020.0002] # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
+2345 ; [*070C.0020.0002] # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
+2346 ; [*070D.0020.0002] # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
+2347 ; [*070E.0020.0002] # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
+2348 ; [*070F.0020.0002] # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
+2349 ; [*0710.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
+234A ; [*0711.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
+234B ; [*0712.0020.0002] # APL FUNCTIONAL SYMBOL DELTA STILE
+234C ; [*0713.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
+234D ; [*0714.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DELTA
+234E ; [*0715.0020.0002] # APL FUNCTIONAL SYMBOL DOWN TACK JOT
+234F ; [*0716.0020.0002] # APL FUNCTIONAL SYMBOL UPWARDS VANE
+2350 ; [*0717.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
+2351 ; [*0718.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
+2352 ; [*0719.0020.0002] # APL FUNCTIONAL SYMBOL DEL STILE
+2353 ; [*071A.0020.0002] # APL FUNCTIONAL SYMBOL QUAD UP CARET
+2354 ; [*071B.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DEL
+2355 ; [*071C.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK JOT
+2356 ; [*071D.0020.0002] # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
+2357 ; [*071E.0020.0002] # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
+2358 ; [*071F.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
+2359 ; [*0720.0020.0002] # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
+235A ; [*0721.0020.0002] # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
+235B ; [*0722.0020.0002] # APL FUNCTIONAL SYMBOL JOT UNDERBAR
+235C ; [*0723.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
+235D ; [*0724.0020.0002] # APL FUNCTIONAL SYMBOL UP SHOE JOT
+235E ; [*0725.0020.0002] # APL FUNCTIONAL SYMBOL QUOTE QUAD
+235F ; [*0726.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE STAR
+2360 ; [*0727.0020.0002] # APL FUNCTIONAL SYMBOL QUAD COLON
+2361 ; [*0728.0020.0002] # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
+2362 ; [*0729.0020.0002] # APL FUNCTIONAL SYMBOL DEL DIAERESIS
+2363 ; [*072A.0020.0002] # APL FUNCTIONAL SYMBOL STAR DIAERESIS
+2364 ; [*072B.0020.0002] # APL FUNCTIONAL SYMBOL JOT DIAERESIS
+2365 ; [*072C.0020.0002] # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
+2366 ; [*072D.0020.0002] # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
+2367 ; [*072E.0020.0002] # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
+2368 ; [*072F.0020.0002] # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
+2369 ; [*0730.0020.0002] # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
+236A ; [*0731.0020.0002] # APL FUNCTIONAL SYMBOL COMMA BAR
+236B ; [*0732.0020.0002] # APL FUNCTIONAL SYMBOL DEL TILDE
+236C ; [*0733.0020.0002] # APL FUNCTIONAL SYMBOL ZILDE
+236D ; [*0734.0020.0002] # APL FUNCTIONAL SYMBOL STILE TILDE
+236E ; [*0735.0020.0002] # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
+236F ; [*0736.0020.0002] # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
+2370 ; [*0737.0020.0002] # APL FUNCTIONAL SYMBOL QUAD QUESTION
+2371 ; [*0738.0020.0002] # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
+2372 ; [*0739.0020.0002] # APL FUNCTIONAL SYMBOL UP CARET TILDE
+2373 ; [*073A.0020.0002] # APL FUNCTIONAL SYMBOL IOTA
+2374 ; [*073B.0020.0002] # APL FUNCTIONAL SYMBOL RHO
+2375 ; [*073C.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA
+2376 ; [*073D.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
+2377 ; [*073E.0020.0002] # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
+2378 ; [*073F.0020.0002] # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
+2379 ; [*0740.0020.0002] # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
+237A ; [*0741.0020.0002] # APL FUNCTIONAL SYMBOL ALPHA
+237B ; [*0742.0020.0002] # NOT CHECK MARK
+237C ; [*0743.0020.0002] # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D ; [*0744.0020.0002] # SHOULDERED OPEN BOX
+237E ; [*0745.0020.0002] # BELL SYMBOL
+237F ; [*0746.0020.0002] # VERTICAL LINE WITH MIDDLE DOT
+2380 ; [*0747.0020.0002] # INSERTION SYMBOL
+2381 ; [*0748.0020.0002] # CONTINUOUS UNDERLINE SYMBOL
+2382 ; [*0749.0020.0002] # DISCONTINUOUS UNDERLINE SYMBOL
+2383 ; [*074A.0020.0002] # EMPHASIS SYMBOL
+2384 ; [*074B.0020.0002] # COMPOSITION SYMBOL
+2385 ; [*074C.0020.0002] # WHITE SQUARE WITH CENTRE VERTICAL LINE
+2386 ; [*074D.0020.0002] # ENTER SYMBOL
+2387 ; [*074E.0020.0002] # ALTERNATIVE KEY SYMBOL
+2388 ; [*074F.0020.0002] # HELM SYMBOL
+2389 ; [*0750.0020.0002] # CIRCLED HORIZONTAL BAR WITH NOTCH
+238A ; [*0751.0020.0002] # CIRCLED TRIANGLE DOWN
+238B ; [*0752.0020.0002] # BROKEN CIRCLE WITH NORTHWEST ARROW
+238C ; [*0753.0020.0002] # UNDO SYMBOL
+238D ; [*0754.0020.0002] # MONOSTABLE SYMBOL
+238E ; [*0755.0020.0002] # HYSTERESIS SYMBOL
+238F ; [*0756.0020.0002] # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL
+2390 ; [*0757.0020.0002] # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL
+2391 ; [*0758.0020.0002] # PASSIVE-PULL-DOWN-OUTPUT SYMBOL
+2392 ; [*0759.0020.0002] # PASSIVE-PULL-UP-OUTPUT SYMBOL
+2393 ; [*075A.0020.0002] # DIRECT CURRENT SYMBOL FORM TWO
+2394 ; [*075B.0020.0002] # SOFTWARE-FUNCTION SYMBOL
+2395 ; [*075C.0020.0002] # APL FUNCTIONAL SYMBOL QUAD
+2396 ; [*075D.0020.0002] # DECIMAL SEPARATOR KEY SYMBOL
+2397 ; [*075E.0020.0002] # PREVIOUS PAGE
+2398 ; [*075F.0020.0002] # NEXT PAGE
+2399 ; [*0760.0020.0002] # PRINT SCREEN SYMBOL
+239A ; [*0761.0020.0002] # CLEAR SCREEN SYMBOL
+239B ; [*0762.0020.0002] # LEFT PARENTHESIS UPPER HOOK
+239C ; [*0763.0020.0002] # LEFT PARENTHESIS EXTENSION
+239D ; [*0764.0020.0002] # LEFT PARENTHESIS LOWER HOOK
+239E ; [*0765.0020.0002] # RIGHT PARENTHESIS UPPER HOOK
+239F ; [*0766.0020.0002] # RIGHT PARENTHESIS EXTENSION
+23A0 ; [*0767.0020.0002] # RIGHT PARENTHESIS LOWER HOOK
+23A1 ; [*0768.0020.0002] # LEFT SQUARE BRACKET UPPER CORNER
+23A2 ; [*0769.0020.0002] # LEFT SQUARE BRACKET EXTENSION
+23A3 ; [*076A.0020.0002] # LEFT SQUARE BRACKET LOWER CORNER
+23A4 ; [*076B.0020.0002] # RIGHT SQUARE BRACKET UPPER CORNER
+23A5 ; [*076C.0020.0002] # RIGHT SQUARE BRACKET EXTENSION
+23A6 ; [*076D.0020.0002] # RIGHT SQUARE BRACKET LOWER CORNER
+23A7 ; [*076E.0020.0002] # LEFT CURLY BRACKET UPPER HOOK
+23A8 ; [*076F.0020.0002] # LEFT CURLY BRACKET MIDDLE PIECE
+23A9 ; [*0770.0020.0002] # LEFT CURLY BRACKET LOWER HOOK
+23AA ; [*0771.0020.0002] # CURLY BRACKET EXTENSION
+23AB ; [*0772.0020.0002] # RIGHT CURLY BRACKET UPPER HOOK
+23AC ; [*0773.0020.0002] # RIGHT CURLY BRACKET MIDDLE PIECE
+23AD ; [*0774.0020.0002] # RIGHT CURLY BRACKET LOWER HOOK
+23AE ; [*0775.0020.0002] # INTEGRAL EXTENSION
+23AF ; [*0776.0020.0002] # HORIZONTAL LINE EXTENSION
+23B0 ; [*0777.0020.0002] # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION
+23B1 ; [*0778.0020.0002] # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION
+23B2 ; [*0779.0020.0002] # SUMMATION TOP
+23B3 ; [*077A.0020.0002] # SUMMATION BOTTOM
+23B4 ; [*077B.0020.0002] # TOP SQUARE BRACKET
+23B5 ; [*077C.0020.0002] # BOTTOM SQUARE BRACKET
+23B6 ; [*077D.0020.0002] # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
+23B7 ; [*077E.0020.0002] # RADICAL SYMBOL BOTTOM
+23B8 ; [*077F.0020.0002] # LEFT VERTICAL BOX LINE
+23B9 ; [*0780.0020.0002] # RIGHT VERTICAL BOX LINE
+23BA ; [*0781.0020.0002] # HORIZONTAL SCAN LINE-1
+23BB ; [*0782.0020.0002] # HORIZONTAL SCAN LINE-3
+23BC ; [*0783.0020.0002] # HORIZONTAL SCAN LINE-7
+23BD ; [*0784.0020.0002] # HORIZONTAL SCAN LINE-9
+23BE ; [*0785.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT
+23BF ; [*0786.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT
+23C0 ; [*0787.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE
+23C1 ; [*0788.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE
+23C2 ; [*0789.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE
+23C3 ; [*078A.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE
+23C4 ; [*078B.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE
+23C5 ; [*078C.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE
+23C6 ; [*078D.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE
+23C7 ; [*078E.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE
+23C8 ; [*078F.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE
+23C9 ; [*0790.0020.0002] # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL
+23CA ; [*0791.0020.0002] # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL
+23CB ; [*0792.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT
+23CC ; [*0793.0020.0002] # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT
+23CD ; [*0794.0020.0002] # SQUARE FOOT
+23CE ; [*0795.0020.0002] # RETURN SYMBOL
+23CF ; [*0796.0020.0002] # EJECT SYMBOL
+23D0 ; [*0797.0020.0002] # VERTICAL LINE EXTENSION
+23D1 ; [*0798.0020.0002] # METRICAL BREVE
+23D2 ; [*0799.0020.0002] # METRICAL LONG OVER SHORT
+23D3 ; [*079A.0020.0002] # METRICAL SHORT OVER LONG
+23D4 ; [*079B.0020.0002] # METRICAL LONG OVER TWO SHORTS
+23D5 ; [*079C.0020.0002] # METRICAL TWO SHORTS OVER LONG
+23D6 ; [*079D.0020.0002] # METRICAL TWO SHORTS JOINED
+23D7 ; [*079E.0020.0002] # METRICAL TRISEME
+23D8 ; [*079F.0020.0002] # METRICAL TETRASEME
+23D9 ; [*07A0.0020.0002] # METRICAL PENTASEME
+23DA ; [*07A1.0020.0002] # EARTH GROUND
+23DB ; [*07A2.0020.0002] # FUSE
+23DC ; [*07A3.0020.0002] # TOP PARENTHESIS
+23DD ; [*07A4.0020.0002] # BOTTOM PARENTHESIS
+23DE ; [*07A5.0020.0002] # TOP CURLY BRACKET
+23DF ; [*07A6.0020.0002] # BOTTOM CURLY BRACKET
+23E0 ; [*07A7.0020.0002] # TOP TORTOISE SHELL BRACKET
+23E1 ; [*07A8.0020.0002] # BOTTOM TORTOISE SHELL BRACKET
+23E2 ; [*07A9.0020.0002] # WHITE TRAPEZIUM
+23E3 ; [*07AA.0020.0002] # BENZENE RING WITH CIRCLE
+23E4 ; [*07AB.0020.0002] # STRAIGHTNESS
+23E5 ; [*07AC.0020.0002] # FLATNESS
+23E6 ; [*07AD.0020.0002] # AC CURRENT
+23E7 ; [*07AE.0020.0002] # ELECTRICAL INTERSECTION
+23E8 ; [*07AF.0020.0002] # DECIMAL EXPONENT SYMBOL
+23E9 ; [*07B0.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE
+23EA ; [*07B1.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE
+23EB ; [*07B2.0020.0002] # BLACK UP-POINTING DOUBLE TRIANGLE
+23EC ; [*07B3.0020.0002] # BLACK DOWN-POINTING DOUBLE TRIANGLE
+23ED ; [*07B4.0020.0002] # BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
+23EE ; [*07B5.0020.0002] # BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
+23EF ; [*07B6.0020.0002] # BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23F0 ; [*07B7.0020.0002] # ALARM CLOCK
+23F1 ; [*07B8.0020.0002] # STOPWATCH
+23F2 ; [*07B9.0020.0002] # TIMER CLOCK
+23F3 ; [*07BA.0020.0002] # HOURGLASS WITH FLOWING SAND
+23F4 ; [*07BB.0020.0002] # BLACK MEDIUM LEFT-POINTING TRIANGLE
+23F5 ; [*07BC.0020.0002] # BLACK MEDIUM RIGHT-POINTING TRIANGLE
+23F6 ; [*07BD.0020.0002] # BLACK MEDIUM UP-POINTING TRIANGLE
+23F7 ; [*07BE.0020.0002] # BLACK MEDIUM DOWN-POINTING TRIANGLE
+23F8 ; [*07BF.0020.0002] # DOUBLE VERTICAL BAR
+23F9 ; [*07C0.0020.0002] # BLACK SQUARE FOR STOP
+23FA ; [*07C1.0020.0002] # BLACK CIRCLE FOR RECORD
+2400 ; [*07C2.0020.0002] # SYMBOL FOR NULL
+2401 ; [*07C3.0020.0002] # SYMBOL FOR START OF HEADING
+2402 ; [*07C4.0020.0002] # SYMBOL FOR START OF TEXT
+2403 ; [*07C5.0020.0002] # SYMBOL FOR END OF TEXT
+2404 ; [*07C6.0020.0002] # SYMBOL FOR END OF TRANSMISSION
+2405 ; [*07C7.0020.0002] # SYMBOL FOR ENQUIRY
+2406 ; [*07C8.0020.0002] # SYMBOL FOR ACKNOWLEDGE
+2407 ; [*07C9.0020.0002] # SYMBOL FOR BELL
+2408 ; [*07CA.0020.0002] # SYMBOL FOR BACKSPACE
+2409 ; [*07CB.0020.0002] # SYMBOL FOR HORIZONTAL TABULATION
+240A ; [*07CC.0020.0002] # SYMBOL FOR LINE FEED
+240B ; [*07CD.0020.0002] # SYMBOL FOR VERTICAL TABULATION
+240C ; [*07CE.0020.0002] # SYMBOL FOR FORM FEED
+240D ; [*07CF.0020.0002] # SYMBOL FOR CARRIAGE RETURN
+240E ; [*07D0.0020.0002] # SYMBOL FOR SHIFT OUT
+240F ; [*07D1.0020.0002] # SYMBOL FOR SHIFT IN
+2410 ; [*07D2.0020.0002] # SYMBOL FOR DATA LINK ESCAPE
+2411 ; [*07D3.0020.0002] # SYMBOL FOR DEVICE CONTROL ONE
+2412 ; [*07D4.0020.0002] # SYMBOL FOR DEVICE CONTROL TWO
+2413 ; [*07D5.0020.0002] # SYMBOL FOR DEVICE CONTROL THREE
+2414 ; [*07D6.0020.0002] # SYMBOL FOR DEVICE CONTROL FOUR
+2415 ; [*07D7.0020.0002] # SYMBOL FOR NEGATIVE ACKNOWLEDGE
+2416 ; [*07D8.0020.0002] # SYMBOL FOR SYNCHRONOUS IDLE
+2417 ; [*07D9.0020.0002] # SYMBOL FOR END OF TRANSMISSION BLOCK
+2418 ; [*07DA.0020.0002] # SYMBOL FOR CANCEL
+2419 ; [*07DB.0020.0002] # SYMBOL FOR END OF MEDIUM
+241A ; [*07DC.0020.0002] # SYMBOL FOR SUBSTITUTE
+241B ; [*07DD.0020.0002] # SYMBOL FOR ESCAPE
+241C ; [*07DE.0020.0002] # SYMBOL FOR FILE SEPARATOR
+241D ; [*07DF.0020.0002] # SYMBOL FOR GROUP SEPARATOR
+241E ; [*07E0.0020.0002] # SYMBOL FOR RECORD SEPARATOR
+241F ; [*07E1.0020.0002] # SYMBOL FOR UNIT SEPARATOR
+2420 ; [*07E2.0020.0002] # SYMBOL FOR SPACE
+2421 ; [*07E3.0020.0002] # SYMBOL FOR DELETE
+2422 ; [*07E4.0020.0002] # BLANK SYMBOL
+2423 ; [*07E5.0020.0002] # OPEN BOX
+2424 ; [*07E6.0020.0002] # SYMBOL FOR NEWLINE
+2425 ; [*07E7.0020.0002] # SYMBOL FOR DELETE FORM TWO
+2426 ; [*07E8.0020.0002] # SYMBOL FOR SUBSTITUTE FORM TWO
+2440 ; [*07E9.0020.0002] # OCR HOOK
+2441 ; [*07EA.0020.0002] # OCR CHAIR
+2442 ; [*07EB.0020.0002] # OCR FORK
+2443 ; [*07EC.0020.0002] # OCR INVERTED FORK
+2444 ; [*07ED.0020.0002] # OCR BELT BUCKLE
+2445 ; [*07EE.0020.0002] # OCR BOW TIE
+2446 ; [*07EF.0020.0002] # OCR BRANCH BANK IDENTIFICATION
+2447 ; [*07F0.0020.0002] # OCR AMOUNT OF CHECK
+2448 ; [*07F1.0020.0002] # OCR DASH
+2449 ; [*07F2.0020.0002] # OCR CUSTOMER ACCOUNT NUMBER
+244A ; [*07F3.0020.0002] # OCR DOUBLE BACKSLASH
+2500 ; [*07F4.0020.0002] # BOX DRAWINGS LIGHT HORIZONTAL
+2501 ; [*07F5.0020.0002] # BOX DRAWINGS HEAVY HORIZONTAL
+2502 ; [*07F6.0020.0002] # BOX DRAWINGS LIGHT VERTICAL
+2503 ; [*07F7.0020.0002] # BOX DRAWINGS HEAVY VERTICAL
+2504 ; [*07F8.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+2505 ; [*07F9.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+2506 ; [*07FA.0020.0002] # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+2507 ; [*07FB.0020.0002] # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+2508 ; [*07FC.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+2509 ; [*07FD.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+250A ; [*07FE.0020.0002] # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+250B ; [*07FF.0020.0002] # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+250C ; [*0800.0020.0002] # BOX DRAWINGS LIGHT DOWN AND RIGHT
+250D ; [*0801.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+250E ; [*0802.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+250F ; [*0803.0020.0002] # BOX DRAWINGS HEAVY DOWN AND RIGHT
+2510 ; [*0804.0020.0002] # BOX DRAWINGS LIGHT DOWN AND LEFT
+2511 ; [*0805.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+2512 ; [*0806.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+2513 ; [*0807.0020.0002] # BOX DRAWINGS HEAVY DOWN AND LEFT
+2514 ; [*0808.0020.0002] # BOX DRAWINGS LIGHT UP AND RIGHT
+2515 ; [*0809.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+2516 ; [*080A.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+2517 ; [*080B.0020.0002] # BOX DRAWINGS HEAVY UP AND RIGHT
+2518 ; [*080C.0020.0002] # BOX DRAWINGS LIGHT UP AND LEFT
+2519 ; [*080D.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+251A ; [*080E.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+251B ; [*080F.0020.0002] # BOX DRAWINGS HEAVY UP AND LEFT
+251C ; [*0810.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+251D ; [*0811.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+251E ; [*0812.0020.0002] # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+251F ; [*0813.0020.0002] # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+2520 ; [*0814.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+2521 ; [*0815.0020.0002] # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+2522 ; [*0816.0020.0002] # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+2523 ; [*0817.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+2524 ; [*0818.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+2525 ; [*0819.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+2526 ; [*081A.0020.0002] # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+2527 ; [*081B.0020.0002] # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+2528 ; [*081C.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+2529 ; [*081D.0020.0002] # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+252A ; [*081E.0020.0002] # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+252B ; [*081F.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND LEFT
+252C ; [*0820.0020.0002] # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+252D ; [*0821.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+252E ; [*0822.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+252F ; [*0823.0020.0002] # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+2530 ; [*0824.0020.0002] # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+2531 ; [*0825.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+2532 ; [*0826.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+2533 ; [*0827.0020.0002] # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+2534 ; [*0828.0020.0002] # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+2535 ; [*0829.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+2536 ; [*082A.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+2537 ; [*082B.0020.0002] # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+2538 ; [*082C.0020.0002] # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+2539 ; [*082D.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+253A ; [*082E.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+253B ; [*082F.0020.0002] # BOX DRAWINGS HEAVY UP AND HORIZONTAL
+253C ; [*0830.0020.0002] # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+253D ; [*0831.0020.0002] # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+253E ; [*0832.0020.0002] # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+253F ; [*0833.0020.0002] # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+2540 ; [*0834.0020.0002] # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+2541 ; [*0835.0020.0002] # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+2542 ; [*0836.0020.0002] # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+2543 ; [*0837.0020.0002] # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+2544 ; [*0838.0020.0002] # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+2545 ; [*0839.0020.0002] # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+2546 ; [*083A.0020.0002] # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+2547 ; [*083B.0020.0002] # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+2548 ; [*083C.0020.0002] # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+2549 ; [*083D.0020.0002] # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+254A ; [*083E.0020.0002] # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+254B ; [*083F.0020.0002] # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C ; [*0840.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
+254D ; [*0841.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
+254E ; [*0842.0020.0002] # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
+254F ; [*0843.0020.0002] # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550 ; [*0844.0020.0002] # BOX DRAWINGS DOUBLE HORIZONTAL
+2551 ; [*0845.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL
+2552 ; [*0846.0020.0002] # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+2553 ; [*0847.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+2554 ; [*0848.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+2555 ; [*0849.0020.0002] # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+2556 ; [*084A.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+2557 ; [*084B.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND LEFT
+2558 ; [*084C.0020.0002] # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+2559 ; [*084D.0020.0002] # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+255A ; [*084E.0020.0002] # BOX DRAWINGS DOUBLE UP AND RIGHT
+255B ; [*084F.0020.0002] # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+255C ; [*0850.0020.0002] # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+255D ; [*0851.0020.0002] # BOX DRAWINGS DOUBLE UP AND LEFT
+255E ; [*0852.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+255F ; [*0853.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+2560 ; [*0854.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+2561 ; [*0855.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+2562 ; [*0856.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+2563 ; [*0857.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+2564 ; [*0858.0020.0002] # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+2565 ; [*0859.0020.0002] # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+2566 ; [*085A.0020.0002] # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+2567 ; [*085B.0020.0002] # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+2568 ; [*085C.0020.0002] # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+2569 ; [*085D.0020.0002] # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+256A ; [*085E.0020.0002] # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+256B ; [*085F.0020.0002] # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+256C ; [*0860.0020.0002] # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+256D ; [*0861.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+256E ; [*0862.0020.0002] # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+256F ; [*0863.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND LEFT
+2570 ; [*0864.0020.0002] # BOX DRAWINGS LIGHT ARC UP AND RIGHT
+2571 ; [*0865.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+2572 ; [*0866.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+2573 ; [*0867.0020.0002] # BOX DRAWINGS LIGHT DIAGONAL CROSS
+2574 ; [*0868.0020.0002] # BOX DRAWINGS LIGHT LEFT
+2575 ; [*0869.0020.0002] # BOX DRAWINGS LIGHT UP
+2576 ; [*086A.0020.0002] # BOX DRAWINGS LIGHT RIGHT
+2577 ; [*086B.0020.0002] # BOX DRAWINGS LIGHT DOWN
+2578 ; [*086C.0020.0002] # BOX DRAWINGS HEAVY LEFT
+2579 ; [*086D.0020.0002] # BOX DRAWINGS HEAVY UP
+257A ; [*086E.0020.0002] # BOX DRAWINGS HEAVY RIGHT
+257B ; [*086F.0020.0002] # BOX DRAWINGS HEAVY DOWN
+257C ; [*0870.0020.0002] # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
+257D ; [*0871.0020.0002] # BOX DRAWINGS LIGHT UP AND HEAVY DOWN
+257E ; [*0872.0020.0002] # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
+257F ; [*0873.0020.0002] # BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580 ; [*0874.0020.0002] # UPPER HALF BLOCK
+2581 ; [*0875.0020.0002] # LOWER ONE EIGHTH BLOCK
+2582 ; [*0876.0020.0002] # LOWER ONE QUARTER BLOCK
+2583 ; [*0877.0020.0002] # LOWER THREE EIGHTHS BLOCK
+2584 ; [*0878.0020.0002] # LOWER HALF BLOCK
+2585 ; [*0879.0020.0002] # LOWER FIVE EIGHTHS BLOCK
+2586 ; [*087A.0020.0002] # LOWER THREE QUARTERS BLOCK
+2587 ; [*087B.0020.0002] # LOWER SEVEN EIGHTHS BLOCK
+2588 ; [*087C.0020.0002] # FULL BLOCK
+2589 ; [*087D.0020.0002] # LEFT SEVEN EIGHTHS BLOCK
+258A ; [*087E.0020.0002] # LEFT THREE QUARTERS BLOCK
+258B ; [*087F.0020.0002] # LEFT FIVE EIGHTHS BLOCK
+258C ; [*0880.0020.0002] # LEFT HALF BLOCK
+258D ; [*0881.0020.0002] # LEFT THREE EIGHTHS BLOCK
+258E ; [*0882.0020.0002] # LEFT ONE QUARTER BLOCK
+258F ; [*0883.0020.0002] # LEFT ONE EIGHTH BLOCK
+2590 ; [*0884.0020.0002] # RIGHT HALF BLOCK
+2591 ; [*0885.0020.0002] # LIGHT SHADE
+2592 ; [*0886.0020.0002] # MEDIUM SHADE
+2593 ; [*0887.0020.0002] # DARK SHADE
+2594 ; [*0888.0020.0002] # UPPER ONE EIGHTH BLOCK
+2595 ; [*0889.0020.0002] # RIGHT ONE EIGHTH BLOCK
+2596 ; [*088A.0020.0002] # QUADRANT LOWER LEFT
+2597 ; [*088B.0020.0002] # QUADRANT LOWER RIGHT
+2598 ; [*088C.0020.0002] # QUADRANT UPPER LEFT
+2599 ; [*088D.0020.0002] # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT
+259A ; [*088E.0020.0002] # QUADRANT UPPER LEFT AND LOWER RIGHT
+259B ; [*088F.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT
+259C ; [*0890.0020.0002] # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT
+259D ; [*0891.0020.0002] # QUADRANT UPPER RIGHT
+259E ; [*0892.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT
+259F ; [*0893.0020.0002] # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0 ; [*0894.0020.0002] # BLACK SQUARE
+25A1 ; [*0895.0020.0002] # WHITE SQUARE
+25A2 ; [*0896.0020.0002] # WHITE SQUARE WITH ROUNDED CORNERS
+25A3 ; [*0897.0020.0002] # WHITE SQUARE CONTAINING BLACK SMALL SQUARE
+25A4 ; [*0898.0020.0002] # SQUARE WITH HORIZONTAL FILL
+25A5 ; [*0899.0020.0002] # SQUARE WITH VERTICAL FILL
+25A6 ; [*089A.0020.0002] # SQUARE WITH ORTHOGONAL CROSSHATCH FILL
+25A7 ; [*089B.0020.0002] # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
+25A8 ; [*089C.0020.0002] # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
+25A9 ; [*089D.0020.0002] # SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA ; [*089E.0020.0002] # BLACK SMALL SQUARE
+25AB ; [*089F.0020.0002] # WHITE SMALL SQUARE
+25AC ; [*08A0.0020.0002] # BLACK RECTANGLE
+25AD ; [*08A1.0020.0002] # WHITE RECTANGLE
+25AE ; [*08A2.0020.0002] # BLACK VERTICAL RECTANGLE
+25AF ; [*08A3.0020.0002] # WHITE VERTICAL RECTANGLE
+25B0 ; [*08A4.0020.0002] # BLACK PARALLELOGRAM
+25B1 ; [*08A5.0020.0002] # WHITE PARALLELOGRAM
+25B2 ; [*08A6.0020.0002] # BLACK UP-POINTING TRIANGLE
+25B3 ; [*08A7.0020.0002] # WHITE UP-POINTING TRIANGLE
+25B4 ; [*08A8.0020.0002] # BLACK UP-POINTING SMALL TRIANGLE
+25B5 ; [*08A9.0020.0002] # WHITE UP-POINTING SMALL TRIANGLE
+25B6 ; [*08AA.0020.0002] # BLACK RIGHT-POINTING TRIANGLE
+25B7 ; [*08AB.0020.0002] # WHITE RIGHT-POINTING TRIANGLE
+25B8 ; [*08AC.0020.0002] # BLACK RIGHT-POINTING SMALL TRIANGLE
+25B9 ; [*08AD.0020.0002] # WHITE RIGHT-POINTING SMALL TRIANGLE
+25BA ; [*08AE.0020.0002] # BLACK RIGHT-POINTING POINTER
+25BB ; [*08AF.0020.0002] # WHITE RIGHT-POINTING POINTER
+25BC ; [*08B0.0020.0002] # BLACK DOWN-POINTING TRIANGLE
+25BD ; [*08B1.0020.0002] # WHITE DOWN-POINTING TRIANGLE
+25BE ; [*08B2.0020.0002] # BLACK DOWN-POINTING SMALL TRIANGLE
+25BF ; [*08B3.0020.0002] # WHITE DOWN-POINTING SMALL TRIANGLE
+25C0 ; [*08B4.0020.0002] # BLACK LEFT-POINTING TRIANGLE
+25C1 ; [*08B5.0020.0002] # WHITE LEFT-POINTING TRIANGLE
+25C2 ; [*08B6.0020.0002] # BLACK LEFT-POINTING SMALL TRIANGLE
+25C3 ; [*08B7.0020.0002] # WHITE LEFT-POINTING SMALL TRIANGLE
+25C4 ; [*08B8.0020.0002] # BLACK LEFT-POINTING POINTER
+25C5 ; [*08B9.0020.0002] # WHITE LEFT-POINTING POINTER
+25C6 ; [*08BA.0020.0002] # BLACK DIAMOND
+25C7 ; [*08BB.0020.0002] # WHITE DIAMOND
+25C8 ; [*08BC.0020.0002] # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9 ; [*08BD.0020.0002] # FISHEYE
+25CA ; [*08BE.0020.0002] # LOZENGE
+25CB ; [*08BF.0020.0002] # WHITE CIRCLE
+25CC ; [*08C0.0020.0002] # DOTTED CIRCLE
+25CD ; [*08C1.0020.0002] # CIRCLE WITH VERTICAL FILL
+25CE ; [*08C2.0020.0002] # BULLSEYE
+25CF ; [*08C3.0020.0002] # BLACK CIRCLE
+25D0 ; [*08C4.0020.0002] # CIRCLE WITH LEFT HALF BLACK
+25D1 ; [*08C5.0020.0002] # CIRCLE WITH RIGHT HALF BLACK
+25D2 ; [*08C6.0020.0002] # CIRCLE WITH LOWER HALF BLACK
+25D3 ; [*08C7.0020.0002] # CIRCLE WITH UPPER HALF BLACK
+25D4 ; [*08C8.0020.0002] # CIRCLE WITH UPPER RIGHT QUADRANT BLACK
+25D5 ; [*08C9.0020.0002] # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
+25D6 ; [*08CA.0020.0002] # LEFT HALF BLACK CIRCLE
+25D7 ; [*08CB.0020.0002] # RIGHT HALF BLACK CIRCLE
+25D8 ; [*08CC.0020.0002] # INVERSE BULLET
+25D9 ; [*08CD.0020.0002] # INVERSE WHITE CIRCLE
+25DA ; [*08CE.0020.0002] # UPPER HALF INVERSE WHITE CIRCLE
+25DB ; [*08CF.0020.0002] # LOWER HALF INVERSE WHITE CIRCLE
+25DC ; [*08D0.0020.0002] # UPPER LEFT QUADRANT CIRCULAR ARC
+25DD ; [*08D1.0020.0002] # UPPER RIGHT QUADRANT CIRCULAR ARC
+25DE ; [*08D2.0020.0002] # LOWER RIGHT QUADRANT CIRCULAR ARC
+25DF ; [*08D3.0020.0002] # LOWER LEFT QUADRANT CIRCULAR ARC
+25E0 ; [*08D4.0020.0002] # UPPER HALF CIRCLE
+25E1 ; [*08D5.0020.0002] # LOWER HALF CIRCLE
+25E2 ; [*08D6.0020.0002] # BLACK LOWER RIGHT TRIANGLE
+25E3 ; [*08D7.0020.0002] # BLACK LOWER LEFT TRIANGLE
+25E4 ; [*08D8.0020.0002] # BLACK UPPER LEFT TRIANGLE
+25E5 ; [*08D9.0020.0002] # BLACK UPPER RIGHT TRIANGLE
+25E6 ; [*08DA.0020.0002] # WHITE BULLET
+25E7 ; [*08DB.0020.0002] # SQUARE WITH LEFT HALF BLACK
+25E8 ; [*08DC.0020.0002] # SQUARE WITH RIGHT HALF BLACK
+25E9 ; [*08DD.0020.0002] # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
+25EA ; [*08DE.0020.0002] # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
+25EB ; [*08DF.0020.0002] # WHITE SQUARE WITH VERTICAL BISECTING LINE
+25EC ; [*08E0.0020.0002] # WHITE UP-POINTING TRIANGLE WITH DOT
+25ED ; [*08E1.0020.0002] # UP-POINTING TRIANGLE WITH LEFT HALF BLACK
+25EE ; [*08E2.0020.0002] # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF ; [*08E3.0020.0002] # LARGE CIRCLE
+25F0 ; [*08E4.0020.0002] # WHITE SQUARE WITH UPPER LEFT QUADRANT
+25F1 ; [*08E5.0020.0002] # WHITE SQUARE WITH LOWER LEFT QUADRANT
+25F2 ; [*08E6.0020.0002] # WHITE SQUARE WITH LOWER RIGHT QUADRANT
+25F3 ; [*08E7.0020.0002] # WHITE SQUARE WITH UPPER RIGHT QUADRANT
+25F4 ; [*08E8.0020.0002] # WHITE CIRCLE WITH UPPER LEFT QUADRANT
+25F5 ; [*08E9.0020.0002] # WHITE CIRCLE WITH LOWER LEFT QUADRANT
+25F6 ; [*08EA.0020.0002] # WHITE CIRCLE WITH LOWER RIGHT QUADRANT
+25F7 ; [*08EB.0020.0002] # WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8 ; [*08EC.0020.0002] # UPPER LEFT TRIANGLE
+25F9 ; [*08ED.0020.0002] # UPPER RIGHT TRIANGLE
+25FA ; [*08EE.0020.0002] # LOWER LEFT TRIANGLE
+25FB ; [*08EF.0020.0002] # WHITE MEDIUM SQUARE
+25FC ; [*08F0.0020.0002] # BLACK MEDIUM SQUARE
+25FD ; [*08F1.0020.0002] # WHITE MEDIUM SMALL SQUARE
+25FE ; [*08F2.0020.0002] # BLACK MEDIUM SMALL SQUARE
+25FF ; [*08F3.0020.0002] # LOWER RIGHT TRIANGLE
+2600 ; [*08F4.0020.0002] # BLACK SUN WITH RAYS
+2601 ; [*08F5.0020.0002] # CLOUD
+2602 ; [*08F6.0020.0002] # UMBRELLA
+2603 ; [*08F7.0020.0002] # SNOWMAN
+2604 ; [*08F8.0020.0002] # COMET
+2605 ; [*08F9.0020.0002] # BLACK STAR
+2606 ; [*08FA.0020.0002] # WHITE STAR
+2607 ; [*08FB.0020.0002] # LIGHTNING
+2608 ; [*08FC.0020.0002] # THUNDERSTORM
+2609 ; [*08FD.0020.0002] # SUN
+260A ; [*08FE.0020.0002] # ASCENDING NODE
+260B ; [*08FF.0020.0002] # DESCENDING NODE
+260C ; [*0900.0020.0002] # CONJUNCTION
+260D ; [*0901.0020.0002] # OPPOSITION
+260E ; [*0902.0020.0002] # BLACK TELEPHONE
+260F ; [*0903.0020.0002] # WHITE TELEPHONE
+2610 ; [*0904.0020.0002] # BALLOT BOX
+2611 ; [*0905.0020.0002] # BALLOT BOX WITH CHECK
+2612 ; [*0906.0020.0002] # BALLOT BOX WITH X
+2613 ; [*0907.0020.0002] # SALTIRE
+2614 ; [*0908.0020.0002] # UMBRELLA WITH RAIN DROPS
+2615 ; [*0909.0020.0002] # HOT BEVERAGE
+2616 ; [*090A.0020.0002] # WHITE SHOGI PIECE
+2617 ; [*090B.0020.0002] # BLACK SHOGI PIECE
+2618 ; [*090C.0020.0002] # SHAMROCK
+2619 ; [*090D.0020.0002] # REVERSED ROTATED FLORAL HEART BULLET
+261A ; [*090E.0020.0002] # BLACK LEFT POINTING INDEX
+261B ; [*090F.0020.0002] # BLACK RIGHT POINTING INDEX
+261C ; [*0910.0020.0002] # WHITE LEFT POINTING INDEX
+261D ; [*0911.0020.0002] # WHITE UP POINTING INDEX
+261E ; [*0912.0020.0002] # WHITE RIGHT POINTING INDEX
+261F ; [*0913.0020.0002] # WHITE DOWN POINTING INDEX
+2620 ; [*0914.0020.0002] # SKULL AND CROSSBONES
+2621 ; [*0915.0020.0002] # CAUTION SIGN
+2622 ; [*0916.0020.0002] # RADIOACTIVE SIGN
+2623 ; [*0917.0020.0002] # BIOHAZARD SIGN
+2624 ; [*0918.0020.0002] # CADUCEUS
+2625 ; [*0919.0020.0002] # ANKH
+2626 ; [*091A.0020.0002] # ORTHODOX CROSS
+2627 ; [*091B.0020.0002] # CHI RHO
+2628 ; [*091C.0020.0002] # CROSS OF LORRAINE
+2629 ; [*091D.0020.0002] # CROSS OF JERUSALEM
+262A ; [*091E.0020.0002] # STAR AND CRESCENT
+262B ; [*091F.0020.0002] # FARSI SYMBOL
+262C ; [*0920.0020.0002] # ADI SHAKTI
+262D ; [*0921.0020.0002] # HAMMER AND SICKLE
+262E ; [*0922.0020.0002] # PEACE SYMBOL
+262F ; [*0923.0020.0002] # YIN YANG
+2630 ; [*0E7E.0020.0002] # TRIGRAM FOR HEAVEN
+2631 ; [*0E7F.0020.0002] # TRIGRAM FOR LAKE
+2632 ; [*0E80.0020.0002] # TRIGRAM FOR FIRE
+2633 ; [*0E81.0020.0002] # TRIGRAM FOR THUNDER
+2634 ; [*0E82.0020.0002] # TRIGRAM FOR WIND
+2635 ; [*0E83.0020.0002] # TRIGRAM FOR WATER
+2636 ; [*0E84.0020.0002] # TRIGRAM FOR MOUNTAIN
+2637 ; [*0E85.0020.0002] # TRIGRAM FOR EARTH
+2638 ; [*0924.0020.0002] # WHEEL OF DHARMA
+2639 ; [*0925.0020.0002] # WHITE FROWNING FACE
+263A ; [*0926.0020.0002] # WHITE SMILING FACE
+263B ; [*0927.0020.0002] # BLACK SMILING FACE
+263C ; [*0928.0020.0002] # WHITE SUN WITH RAYS
+263D ; [*0929.0020.0002] # FIRST QUARTER MOON
+263E ; [*092A.0020.0002] # LAST QUARTER MOON
+263F ; [*092B.0020.0002] # MERCURY
+2640 ; [*092C.0020.0002] # FEMALE SIGN
+2641 ; [*092D.0020.0002] # EARTH
+2642 ; [*092E.0020.0002] # MALE SIGN
+2643 ; [*092F.0020.0002] # JUPITER
+2644 ; [*0930.0020.0002] # SATURN
+2645 ; [*0931.0020.0002] # URANUS
+2646 ; [*0932.0020.0002] # NEPTUNE
+2647 ; [*0933.0020.0002] # PLUTO
+2648 ; [*0934.0020.0002] # ARIES
+2649 ; [*0935.0020.0002] # TAURUS
+264A ; [*0936.0020.0002] # GEMINI
+264B ; [*0937.0020.0002] # CANCER
+264C ; [*0938.0020.0002] # LEO
+264D ; [*0939.0020.0002] # VIRGO
+264E ; [*093A.0020.0002] # LIBRA
+264F ; [*093B.0020.0002] # SCORPIUS
+2650 ; [*093C.0020.0002] # SAGITTARIUS
+2651 ; [*093D.0020.0002] # CAPRICORN
+2652 ; [*093E.0020.0002] # AQUARIUS
+2653 ; [*093F.0020.0002] # PISCES
+2654 ; [*0940.0020.0002] # WHITE CHESS KING
+2655 ; [*0941.0020.0002] # WHITE CHESS QUEEN
+2656 ; [*0942.0020.0002] # WHITE CHESS ROOK
+2657 ; [*0943.0020.0002] # WHITE CHESS BISHOP
+2658 ; [*0944.0020.0002] # WHITE CHESS KNIGHT
+2659 ; [*0945.0020.0002] # WHITE CHESS PAWN
+265A ; [*0946.0020.0002] # BLACK CHESS KING
+265B ; [*0947.0020.0002] # BLACK CHESS QUEEN
+265C ; [*0948.0020.0002] # BLACK CHESS ROOK
+265D ; [*0949.0020.0002] # BLACK CHESS BISHOP
+265E ; [*094A.0020.0002] # BLACK CHESS KNIGHT
+265F ; [*094B.0020.0002] # BLACK CHESS PAWN
+2660 ; [*094C.0020.0002] # BLACK SPADE SUIT
+2661 ; [*094D.0020.0002] # WHITE HEART SUIT
+2662 ; [*094E.0020.0002] # WHITE DIAMOND SUIT
+2663 ; [*094F.0020.0002] # BLACK CLUB SUIT
+2664 ; [*0950.0020.0002] # WHITE SPADE SUIT
+2665 ; [*0951.0020.0002] # BLACK HEART SUIT
+2666 ; [*0952.0020.0002] # BLACK DIAMOND SUIT
+2667 ; [*0953.0020.0002] # WHITE CLUB SUIT
+2668 ; [*0954.0020.0002] # HOT SPRINGS
+2669 ; [*0955.0020.0002] # QUARTER NOTE
+266A ; [*0956.0020.0002] # EIGHTH NOTE
+266B ; [*0957.0020.0002] # BEAMED EIGHTH NOTES
+266C ; [*0958.0020.0002] # BEAMED SIXTEENTH NOTES
+266D ; [*10CD.0020.0002] # MUSIC FLAT SIGN
+266E ; [*10CE.0020.0002] # MUSIC NATURAL SIGN
+266F ; [*10CF.0020.0002] # MUSIC SHARP SIGN
+2670 ; [*0959.0020.0002] # WEST SYRIAC CROSS
+2671 ; [*095A.0020.0002] # EAST SYRIAC CROSS
+2672 ; [*095B.0020.0002] # UNIVERSAL RECYCLING SYMBOL
+2673 ; [*095C.0020.0002] # RECYCLING SYMBOL FOR TYPE-1 PLASTICS
+2674 ; [*095D.0020.0002] # RECYCLING SYMBOL FOR TYPE-2 PLASTICS
+2675 ; [*095E.0020.0002] # RECYCLING SYMBOL FOR TYPE-3 PLASTICS
+2676 ; [*095F.0020.0002] # RECYCLING SYMBOL FOR TYPE-4 PLASTICS
+2677 ; [*0960.0020.0002] # RECYCLING SYMBOL FOR TYPE-5 PLASTICS
+2678 ; [*0961.0020.0002] # RECYCLING SYMBOL FOR TYPE-6 PLASTICS
+2679 ; [*0962.0020.0002] # RECYCLING SYMBOL FOR TYPE-7 PLASTICS
+267A ; [*0963.0020.0002] # RECYCLING SYMBOL FOR GENERIC MATERIALS
+267B ; [*0964.0020.0002] # BLACK UNIVERSAL RECYCLING SYMBOL
+267C ; [*0965.0020.0002] # RECYCLED PAPER SYMBOL
+267D ; [*0966.0020.0002] # PARTIALLY-RECYCLED PAPER SYMBOL
+267E ; [*0967.0020.0002] # PERMANENT PAPER SIGN
+267F ; [*0968.0020.0002] # WHEELCHAIR SYMBOL
+2680 ; [*0969.0020.0002] # DIE FACE-1
+2681 ; [*096A.0020.0002] # DIE FACE-2
+2682 ; [*096B.0020.0002] # DIE FACE-3
+2683 ; [*096C.0020.0002] # DIE FACE-4
+2684 ; [*096D.0020.0002] # DIE FACE-5
+2685 ; [*096E.0020.0002] # DIE FACE-6
+2686 ; [*096F.0020.0002] # WHITE CIRCLE WITH DOT RIGHT
+2687 ; [*0970.0020.0002] # WHITE CIRCLE WITH TWO DOTS
+2688 ; [*0971.0020.0002] # BLACK CIRCLE WITH WHITE DOT RIGHT
+2689 ; [*0972.0020.0002] # BLACK CIRCLE WITH TWO WHITE DOTS
+268A ; [*0E78.0020.0002] # MONOGRAM FOR YANG
+268B ; [*0E79.0020.0002] # MONOGRAM FOR YIN
+268C ; [*0E7A.0020.0002] # DIGRAM FOR GREATER YANG
+268D ; [*0E7B.0020.0002] # DIGRAM FOR LESSER YIN
+268E ; [*0E7C.0020.0002] # DIGRAM FOR LESSER YANG
+268F ; [*0E7D.0020.0002] # DIGRAM FOR GREATER YIN
+2690 ; [*0973.0020.0002] # WHITE FLAG
+2691 ; [*0974.0020.0002] # BLACK FLAG
+2692 ; [*0975.0020.0002] # HAMMER AND PICK
+2693 ; [*0976.0020.0002] # ANCHOR
+2694 ; [*0977.0020.0002] # CROSSED SWORDS
+2695 ; [*0978.0020.0002] # STAFF OF AESCULAPIUS
+2696 ; [*0979.0020.0002] # SCALES
+2697 ; [*097A.0020.0002] # ALEMBIC
+2698 ; [*097B.0020.0002] # FLOWER
+2699 ; [*097C.0020.0002] # GEAR
+269A ; [*097D.0020.0002] # STAFF OF HERMES
+269B ; [*097E.0020.0002] # ATOM SYMBOL
+269C ; [*097F.0020.0002] # FLEUR-DE-LIS
+269D ; [*0980.0020.0002] # OUTLINED WHITE STAR
+269E ; [*0981.0020.0002] # THREE LINES CONVERGING RIGHT
+269F ; [*0982.0020.0002] # THREE LINES CONVERGING LEFT
+26A0 ; [*0983.0020.0002] # WARNING SIGN
+26A1 ; [*0984.0020.0002] # HIGH VOLTAGE SIGN
+26A2 ; [*0985.0020.0002] # DOUBLED FEMALE SIGN
+26A3 ; [*0986.0020.0002] # DOUBLED MALE SIGN
+26A4 ; [*0987.0020.0002] # INTERLOCKED FEMALE AND MALE SIGN
+26A5 ; [*0988.0020.0002] # MALE AND FEMALE SIGN
+26A6 ; [*0989.0020.0002] # MALE WITH STROKE SIGN
+26A7 ; [*098A.0020.0002] # MALE WITH STROKE AND MALE AND FEMALE SIGN
+26A8 ; [*098B.0020.0002] # VERTICAL MALE WITH STROKE SIGN
+26A9 ; [*098C.0020.0002] # HORIZONTAL MALE WITH STROKE SIGN
+26AA ; [*098D.0020.0002] # MEDIUM WHITE CIRCLE
+26AB ; [*098E.0020.0002] # MEDIUM BLACK CIRCLE
+26AC ; [*098F.0020.0002] # MEDIUM SMALL WHITE CIRCLE
+26AD ; [*0990.0020.0002] # MARRIAGE SYMBOL
+26AE ; [*0991.0020.0002] # DIVORCE SYMBOL
+26AF ; [*0992.0020.0002] # UNMARRIED PARTNERSHIP SYMBOL
+26B0 ; [*0993.0020.0002] # COFFIN
+26B1 ; [*0994.0020.0002] # FUNERAL URN
+26B2 ; [*0995.0020.0002] # NEUTER
+26B3 ; [*0996.0020.0002] # CERES
+26B4 ; [*0997.0020.0002] # PALLAS
+26B5 ; [*0998.0020.0002] # JUNO
+26B6 ; [*0999.0020.0002] # VESTA
+26B7 ; [*099A.0020.0002] # CHIRON
+26B8 ; [*099B.0020.0002] # BLACK MOON LILITH
+26B9 ; [*099C.0020.0002] # SEXTILE
+26BA ; [*099D.0020.0002] # SEMISEXTILE
+26BB ; [*099E.0020.0002] # QUINCUNX
+26BC ; [*099F.0020.0002] # SESQUIQUADRATE
+26BD ; [*09A0.0020.0002] # SOCCER BALL
+26BE ; [*09A1.0020.0002] # BASEBALL
+26BF ; [*09A2.0020.0002] # SQUARED KEY
+26C0 ; [*09A3.0020.0002] # WHITE DRAUGHTS MAN
+26C1 ; [*09A4.0020.0002] # WHITE DRAUGHTS KING
+26C2 ; [*09A5.0020.0002] # BLACK DRAUGHTS MAN
+26C3 ; [*09A6.0020.0002] # BLACK DRAUGHTS KING
+26C4 ; [*09A7.0020.0002] # SNOWMAN WITHOUT SNOW
+26C5 ; [*09A8.0020.0002] # SUN BEHIND CLOUD
+26C6 ; [*09A9.0020.0002] # RAIN
+26C7 ; [*09AA.0020.0002] # BLACK SNOWMAN
+26C8 ; [*09AB.0020.0002] # THUNDER CLOUD AND RAIN
+26C9 ; [*09AC.0020.0002] # TURNED WHITE SHOGI PIECE
+26CA ; [*09AD.0020.0002] # TURNED BLACK SHOGI PIECE
+26CB ; [*09AE.0020.0002] # WHITE DIAMOND IN SQUARE
+26CC ; [*09AF.0020.0002] # CROSSING LANES
+26CD ; [*09B0.0020.0002] # DISABLED CAR
+26CE ; [*09B1.0020.0002] # OPHIUCHUS
+26CF ; [*09B2.0020.0002] # PICK
+26D0 ; [*09B3.0020.0002] # CAR SLIDING
+26D1 ; [*09B4.0020.0002] # HELMET WITH WHITE CROSS
+26D2 ; [*09B5.0020.0002] # CIRCLED CROSSING LANES
+26D3 ; [*09B6.0020.0002] # CHAINS
+26D4 ; [*09B7.0020.0002] # NO ENTRY
+26D5 ; [*09B8.0020.0002] # ALTERNATE ONE-WAY LEFT WAY TRAFFIC
+26D6 ; [*09B9.0020.0002] # BLACK TWO-WAY LEFT WAY TRAFFIC
+26D7 ; [*09BA.0020.0002] # WHITE TWO-WAY LEFT WAY TRAFFIC
+26D8 ; [*09BB.0020.0002] # BLACK LEFT LANE MERGE
+26D9 ; [*09BC.0020.0002] # WHITE LEFT LANE MERGE
+26DA ; [*09BD.0020.0002] # DRIVE SLOW SIGN
+26DB ; [*09BE.0020.0002] # HEAVY WHITE DOWN-POINTING TRIANGLE
+26DC ; [*09BF.0020.0002] # LEFT CLOSED ENTRY
+26DD ; [*09C0.0020.0002] # SQUARED SALTIRE
+26DE ; [*09C1.0020.0002] # FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
+26DF ; [*09C2.0020.0002] # BLACK TRUCK
+26E0 ; [*09C3.0020.0002] # RESTRICTED LEFT ENTRY-1
+26E1 ; [*09C4.0020.0002] # RESTRICTED LEFT ENTRY-2
+26E2 ; [*09C5.0020.0002] # ASTRONOMICAL SYMBOL FOR URANUS
+26E3 ; [*09C6.0020.0002] # HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4 ; [*09C7.0020.0002] # PENTAGRAM
+26E5 ; [*09C8.0020.0002] # RIGHT-HANDED INTERLACED PENTAGRAM
+26E6 ; [*09C9.0020.0002] # LEFT-HANDED INTERLACED PENTAGRAM
+26E7 ; [*09CA.0020.0002] # INVERTED PENTAGRAM
+26E8 ; [*09CB.0020.0002] # BLACK CROSS ON SHIELD
+26E9 ; [*09CC.0020.0002] # SHINTO SHRINE
+26EA ; [*09CD.0020.0002] # CHURCH
+26EB ; [*09CE.0020.0002] # CASTLE
+26EC ; [*09CF.0020.0002] # HISTORIC SITE
+26ED ; [*09D0.0020.0002] # GEAR WITHOUT HUB
+26EE ; [*09D1.0020.0002] # GEAR WITH HANDLES
+26EF ; [*09D2.0020.0002] # MAP SYMBOL FOR LIGHTHOUSE
+26F0 ; [*09D3.0020.0002] # MOUNTAIN
+26F1 ; [*09D4.0020.0002] # UMBRELLA ON GROUND
+26F2 ; [*09D5.0020.0002] # FOUNTAIN
+26F3 ; [*09D6.0020.0002] # FLAG IN HOLE
+26F4 ; [*09D7.0020.0002] # FERRY
+26F5 ; [*09D8.0020.0002] # SAILBOAT
+26F6 ; [*09D9.0020.0002] # SQUARE FOUR CORNERS
+26F7 ; [*09DA.0020.0002] # SKIER
+26F8 ; [*09DB.0020.0002] # ICE SKATE
+26F9 ; [*09DC.0020.0002] # PERSON WITH BALL
+26FA ; [*09DD.0020.0002] # TENT
+26FB ; [*09DE.0020.0002] # JAPANESE BANK SYMBOL
+26FC ; [*09DF.0020.0002] # HEADSTONE GRAVEYARD SYMBOL
+26FD ; [*09E0.0020.0002] # FUEL PUMP
+26FE ; [*09E1.0020.0002] # CUP ON BLACK SQUARE
+26FF ; [*09E2.0020.0002] # WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700 ; [*09FD.0020.0002] # BLACK SAFETY SCISSORS
+2701 ; [*09FE.0020.0002] # UPPER BLADE SCISSORS
+2702 ; [*09FF.0020.0002] # BLACK SCISSORS
+2703 ; [*0A00.0020.0002] # LOWER BLADE SCISSORS
+2704 ; [*0A01.0020.0002] # WHITE SCISSORS
+2705 ; [*0A02.0020.0002] # WHITE HEAVY CHECK MARK
+2706 ; [*0A03.0020.0002] # TELEPHONE LOCATION SIGN
+2707 ; [*0A04.0020.0002] # TAPE DRIVE
+2708 ; [*0A05.0020.0002] # AIRPLANE
+2709 ; [*0A06.0020.0002] # ENVELOPE
+270A ; [*0A07.0020.0002] # RAISED FIST
+270B ; [*0A08.0020.0002] # RAISED HAND
+270C ; [*0A09.0020.0002] # VICTORY HAND
+270D ; [*0A0A.0020.0002] # WRITING HAND
+270E ; [*0A0B.0020.0002] # LOWER RIGHT PENCIL
+270F ; [*0A0C.0020.0002] # PENCIL
+2710 ; [*0A0D.0020.0002] # UPPER RIGHT PENCIL
+2711 ; [*0A0E.0020.0002] # WHITE NIB
+2712 ; [*0A0F.0020.0002] # BLACK NIB
+2713 ; [*0A10.0020.0002] # CHECK MARK
+2714 ; [*0A11.0020.0002] # HEAVY CHECK MARK
+2715 ; [*0A12.0020.0002] # MULTIPLICATION X
+2716 ; [*0A13.0020.0002] # HEAVY MULTIPLICATION X
+2717 ; [*0A14.0020.0002] # BALLOT X
+2718 ; [*0A15.0020.0002] # HEAVY BALLOT X
+2719 ; [*0A16.0020.0002] # OUTLINED GREEK CROSS
+271A ; [*0A17.0020.0002] # HEAVY GREEK CROSS
+271B ; [*0A18.0020.0002] # OPEN CENTRE CROSS
+271C ; [*0A19.0020.0002] # HEAVY OPEN CENTRE CROSS
+271D ; [*0A1A.0020.0002] # LATIN CROSS
+271E ; [*0A1B.0020.0002] # SHADOWED WHITE LATIN CROSS
+271F ; [*0A1C.0020.0002] # OUTLINED LATIN CROSS
+2720 ; [*0A1D.0020.0002] # MALTESE CROSS
+2721 ; [*0A1E.0020.0002] # STAR OF DAVID
+2722 ; [*0A1F.0020.0002] # FOUR TEARDROP-SPOKED ASTERISK
+2723 ; [*0A20.0020.0002] # FOUR BALLOON-SPOKED ASTERISK
+2724 ; [*0A21.0020.0002] # HEAVY FOUR BALLOON-SPOKED ASTERISK
+2725 ; [*0A22.0020.0002] # FOUR CLUB-SPOKED ASTERISK
+2726 ; [*0A23.0020.0002] # BLACK FOUR POINTED STAR
+2727 ; [*0A24.0020.0002] # WHITE FOUR POINTED STAR
+2728 ; [*0A25.0020.0002] # SPARKLES
+2729 ; [*0A26.0020.0002] # STRESS OUTLINED WHITE STAR
+272A ; [*0A27.0020.0002] # CIRCLED WHITE STAR
+272B ; [*0A28.0020.0002] # OPEN CENTRE BLACK STAR
+272C ; [*0A29.0020.0002] # BLACK CENTRE WHITE STAR
+272D ; [*0A2A.0020.0002] # OUTLINED BLACK STAR
+272E ; [*0A2B.0020.0002] # HEAVY OUTLINED BLACK STAR
+272F ; [*0A2C.0020.0002] # PINWHEEL STAR
+2730 ; [*0A2D.0020.0002] # SHADOWED WHITE STAR
+2731 ; [*0A2E.0020.0002] # HEAVY ASTERISK
+2732 ; [*0A2F.0020.0002] # OPEN CENTRE ASTERISK
+2733 ; [*0A30.0020.0002] # EIGHT SPOKED ASTERISK
+2734 ; [*0A31.0020.0002] # EIGHT POINTED BLACK STAR
+2735 ; [*0A32.0020.0002] # EIGHT POINTED PINWHEEL STAR
+2736 ; [*0A33.0020.0002] # SIX POINTED BLACK STAR
+2737 ; [*0A34.0020.0002] # EIGHT POINTED RECTILINEAR BLACK STAR
+2738 ; [*0A35.0020.0002] # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
+2739 ; [*0A36.0020.0002] # TWELVE POINTED BLACK STAR
+273A ; [*0A37.0020.0002] # SIXTEEN POINTED ASTERISK
+273B ; [*0A38.0020.0002] # TEARDROP-SPOKED ASTERISK
+273C ; [*0A39.0020.0002] # OPEN CENTRE TEARDROP-SPOKED ASTERISK
+273D ; [*0A3A.0020.0002] # HEAVY TEARDROP-SPOKED ASTERISK
+273E ; [*0A3B.0020.0002] # SIX PETALLED BLACK AND WHITE FLORETTE
+273F ; [*0A3C.0020.0002] # BLACK FLORETTE
+2740 ; [*0A3D.0020.0002] # WHITE FLORETTE
+2741 ; [*0A3E.0020.0002] # EIGHT PETALLED OUTLINED BLACK FLORETTE
+2742 ; [*0A3F.0020.0002] # CIRCLED OPEN CENTRE EIGHT POINTED STAR
+2743 ; [*0A40.0020.0002] # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
+2744 ; [*0A41.0020.0002] # SNOWFLAKE
+2745 ; [*0A42.0020.0002] # TIGHT TRIFOLIATE SNOWFLAKE
+2746 ; [*0A43.0020.0002] # HEAVY CHEVRON SNOWFLAKE
+2747 ; [*0A44.0020.0002] # SPARKLE
+2748 ; [*0A45.0020.0002] # HEAVY SPARKLE
+2749 ; [*0A46.0020.0002] # BALLOON-SPOKED ASTERISK
+274A ; [*0A47.0020.0002] # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274B ; [*0A48.0020.0002] # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274C ; [*0A49.0020.0002] # CROSS MARK
+274D ; [*0A4A.0020.0002] # SHADOWED WHITE CIRCLE
+274E ; [*0A4B.0020.0002] # NEGATIVE SQUARED CROSS MARK
+274F ; [*0A4C.0020.0002] # LOWER RIGHT DROP-SHADOWED WHITE SQUARE
+2750 ; [*0A4D.0020.0002] # UPPER RIGHT DROP-SHADOWED WHITE SQUARE
+2751 ; [*0A4E.0020.0002] # LOWER RIGHT SHADOWED WHITE SQUARE
+2752 ; [*0A4F.0020.0002] # UPPER RIGHT SHADOWED WHITE SQUARE
+2753 ; [*0A50.0020.0002] # BLACK QUESTION MARK ORNAMENT
+2754 ; [*0A51.0020.0002] # WHITE QUESTION MARK ORNAMENT
+2755 ; [*0A52.0020.0002] # WHITE EXCLAMATION MARK ORNAMENT
+2756 ; [*0A53.0020.0002] # BLACK DIAMOND MINUS WHITE X
+2757 ; [*0A54.0020.0002] # HEAVY EXCLAMATION MARK SYMBOL
+2758 ; [*0A55.0020.0002] # LIGHT VERTICAL BAR
+2759 ; [*0A56.0020.0002] # MEDIUM VERTICAL BAR
+275A ; [*0A57.0020.0002] # HEAVY VERTICAL BAR
+275B ; [*0A58.0020.0002] # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
+275C ; [*0A59.0020.0002] # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
+275D ; [*0A5A.0020.0002] # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+275E ; [*0A5B.0020.0002] # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+275F ; [*0A5C.0020.0002] # HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
+2760 ; [*0A5D.0020.0002] # HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761 ; [*0A5E.0020.0002] # CURVED STEM PARAGRAPH SIGN ORNAMENT
+2762 ; [*0A5F.0020.0002] # HEAVY EXCLAMATION MARK ORNAMENT
+2763 ; [*0A60.0020.0002] # HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764 ; [*0A61.0020.0002] # HEAVY BLACK HEART
+2765 ; [*0A62.0020.0002] # ROTATED HEAVY BLACK HEART BULLET
+2766 ; [*0A63.0020.0002] # FLORAL HEART
+2767 ; [*0A64.0020.0002] # ROTATED FLORAL HEART BULLET
+2768 ; [*0346.0020.0002] # MEDIUM LEFT PARENTHESIS ORNAMENT
+2769 ; [*0347.0020.0002] # MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A ; [*0348.0020.0002] # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B ; [*0349.0020.0002] # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C ; [*034A.0020.0002] # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D ; [*034B.0020.0002] # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E ; [*034C.0020.0002] # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F ; [*034D.0020.0002] # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770 ; [*034E.0020.0002] # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771 ; [*034F.0020.0002] # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772 ; [*0350.0020.0002] # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773 ; [*0351.0020.0002] # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774 ; [*0352.0020.0002] # MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775 ; [*0353.0020.0002] # MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2794 ; [*0A65.0020.0002] # HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2795 ; [*0A66.0020.0002] # HEAVY PLUS SIGN
+2796 ; [*0A67.0020.0002] # HEAVY MINUS SIGN
+2797 ; [*0A68.0020.0002] # HEAVY DIVISION SIGN
+2798 ; [*0A69.0020.0002] # HEAVY SOUTH EAST ARROW
+2799 ; [*0A6A.0020.0002] # HEAVY RIGHTWARDS ARROW
+279A ; [*0A6B.0020.0002] # HEAVY NORTH EAST ARROW
+279B ; [*0A6C.0020.0002] # DRAFTING POINT RIGHTWARDS ARROW
+279C ; [*0A6D.0020.0002] # HEAVY ROUND-TIPPED RIGHTWARDS ARROW
+279D ; [*0A6E.0020.0002] # TRIANGLE-HEADED RIGHTWARDS ARROW
+279E ; [*0A6F.0020.0002] # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
+279F ; [*0A70.0020.0002] # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A0 ; [*0A71.0020.0002] # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
+27A1 ; [*0A72.0020.0002] # BLACK RIGHTWARDS ARROW
+27A2 ; [*0A73.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
+27A3 ; [*0A74.0020.0002] # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
+27A4 ; [*0A75.0020.0002] # BLACK RIGHTWARDS ARROWHEAD
+27A5 ; [*0A76.0020.0002] # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+27A6 ; [*0A77.0020.0002] # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+27A7 ; [*0A78.0020.0002] # SQUAT BLACK RIGHTWARDS ARROW
+27A8 ; [*0A79.0020.0002] # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
+27A9 ; [*0A7A.0020.0002] # RIGHT-SHADED WHITE RIGHTWARDS ARROW
+27AA ; [*0A7B.0020.0002] # LEFT-SHADED WHITE RIGHTWARDS ARROW
+27AB ; [*0A7C.0020.0002] # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AC ; [*0A7D.0020.0002] # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
+27AD ; [*0A7E.0020.0002] # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AE ; [*0A7F.0020.0002] # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27AF ; [*0A80.0020.0002] # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B0 ; [*0A81.0020.0002] # CURLY LOOP
+27B1 ; [*0A82.0020.0002] # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B2 ; [*0A83.0020.0002] # CIRCLED HEAVY WHITE RIGHTWARDS ARROW
+27B3 ; [*0A84.0020.0002] # WHITE-FEATHERED RIGHTWARDS ARROW
+27B4 ; [*0A85.0020.0002] # BLACK-FEATHERED SOUTH EAST ARROW
+27B5 ; [*0A86.0020.0002] # BLACK-FEATHERED RIGHTWARDS ARROW
+27B6 ; [*0A87.0020.0002] # BLACK-FEATHERED NORTH EAST ARROW
+27B7 ; [*0A88.0020.0002] # HEAVY BLACK-FEATHERED SOUTH EAST ARROW
+27B8 ; [*0A89.0020.0002] # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
+27B9 ; [*0A8A.0020.0002] # HEAVY BLACK-FEATHERED NORTH EAST ARROW
+27BA ; [*0A8B.0020.0002] # TEARDROP-BARBED RIGHTWARDS ARROW
+27BB ; [*0A8C.0020.0002] # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
+27BC ; [*0A8D.0020.0002] # WEDGE-TAILED RIGHTWARDS ARROW
+27BD ; [*0A8E.0020.0002] # HEAVY WEDGE-TAILED RIGHTWARDS ARROW
+27BE ; [*0A8F.0020.0002] # OPEN-OUTLINED RIGHTWARDS ARROW
+27BF ; [*0A90.0020.0002] # DOUBLE CURLY LOOP
+27C0 ; [*0A91.0020.0002] # THREE DIMENSIONAL ANGLE
+27C1 ; [*0A92.0020.0002] # WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
+27C2 ; [*0A93.0020.0002] # PERPENDICULAR
+27C3 ; [*0A94.0020.0002] # OPEN SUBSET
+27C4 ; [*0A95.0020.0002] # OPEN SUPERSET
+27C5 ; [*033A.0020.0002] # LEFT S-SHAPED BAG DELIMITER
+27C6 ; [*033B.0020.0002] # RIGHT S-SHAPED BAG DELIMITER
+27C7 ; [*0A96.0020.0002] # OR WITH DOT INSIDE
+27C8 ; [*0A97.0020.0002] # REVERSE SOLIDUS PRECEDING SUBSET
+27C9 ; [*0A98.0020.0002] # SUPERSET PRECEDING SOLIDUS
+27CA ; [*0A99.0020.0002] # VERTICAL BAR WITH HORIZONTAL STROKE
+27CB ; [*0A9A.0020.0002] # MATHEMATICAL RISING DIAGONAL
+27CC ; [*0A9B.0020.0002] # LONG DIVISION
+27CD ; [*0A9C.0020.0002] # MATHEMATICAL FALLING DIAGONAL
+27CE ; [*0A9D.0020.0002] # SQUARED LOGICAL AND
+27CF ; [*0A9E.0020.0002] # SQUARED LOGICAL OR
+27D0 ; [*0A9F.0020.0002] # WHITE DIAMOND WITH CENTRED DOT
+27D1 ; [*0AA0.0020.0002] # AND WITH DOT
+27D2 ; [*0AA1.0020.0002] # ELEMENT OF OPENING UPWARDS
+27D3 ; [*0AA2.0020.0002] # LOWER RIGHT CORNER WITH DOT
+27D4 ; [*0AA3.0020.0002] # UPPER LEFT CORNER WITH DOT
+27D5 ; [*0AA4.0020.0002] # LEFT OUTER JOIN
+27D6 ; [*0AA5.0020.0002] # RIGHT OUTER JOIN
+27D7 ; [*0AA6.0020.0002] # FULL OUTER JOIN
+27D8 ; [*0AA7.0020.0002] # LARGE UP TACK
+27D9 ; [*0AA8.0020.0002] # LARGE DOWN TACK
+27DA ; [*0AA9.0020.0002] # LEFT AND RIGHT DOUBLE TURNSTILE
+27DB ; [*0AAA.0020.0002] # LEFT AND RIGHT TACK
+27DC ; [*0AAB.0020.0002] # LEFT MULTIMAP
+27DD ; [*0AAC.0020.0002] # LONG RIGHT TACK
+27DE ; [*0AAD.0020.0002] # LONG LEFT TACK
+27DF ; [*0AAE.0020.0002] # UP TACK WITH CIRCLE ABOVE
+27E0 ; [*0AAF.0020.0002] # LOZENGE DIVIDED BY HORIZONTAL RULE
+27E1 ; [*0AB0.0020.0002] # WHITE CONCAVE-SIDED DIAMOND
+27E2 ; [*0AB1.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
+27E3 ; [*0AB2.0020.0002] # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
+27E4 ; [*0AB3.0020.0002] # WHITE SQUARE WITH LEFTWARDS TICK
+27E5 ; [*0AB4.0020.0002] # WHITE SQUARE WITH RIGHTWARDS TICK
+27E6 ; [*033C.0020.0002] # MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7 ; [*033D.0020.0002] # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8 ; [*033E.0020.0002] # MATHEMATICAL LEFT ANGLE BRACKET
+27E9 ; [*033F.0020.0002] # MATHEMATICAL RIGHT ANGLE BRACKET
+27EA ; [*0340.0020.0002] # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB ; [*0341.0020.0002] # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC ; [*0342.0020.0002] # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED ; [*0343.0020.0002] # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE ; [*0344.0020.0002] # MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF ; [*0345.0020.0002] # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0 ; [*0AB5.0020.0002] # UPWARDS QUADRUPLE ARROW
+27F1 ; [*0AB6.0020.0002] # DOWNWARDS QUADRUPLE ARROW
+27F2 ; [*0AB7.0020.0002] # ANTICLOCKWISE GAPPED CIRCLE ARROW
+27F3 ; [*0AB8.0020.0002] # CLOCKWISE GAPPED CIRCLE ARROW
+27F4 ; [*0AB9.0020.0002] # RIGHT ARROW WITH CIRCLED PLUS
+27F5 ; [*0ABA.0020.0002] # LONG LEFTWARDS ARROW
+27F6 ; [*0ABB.0020.0002] # LONG RIGHTWARDS ARROW
+27F7 ; [*0ABC.0020.0002] # LONG LEFT RIGHT ARROW
+27F8 ; [*0ABD.0020.0002] # LONG LEFTWARDS DOUBLE ARROW
+27F9 ; [*0ABE.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW
+27FA ; [*0ABF.0020.0002] # LONG LEFT RIGHT DOUBLE ARROW
+27FB ; [*0AC0.0020.0002] # LONG LEFTWARDS ARROW FROM BAR
+27FC ; [*0AC1.0020.0002] # LONG RIGHTWARDS ARROW FROM BAR
+27FD ; [*0AC2.0020.0002] # LONG LEFTWARDS DOUBLE ARROW FROM BAR
+27FE ; [*0AC3.0020.0002] # LONG RIGHTWARDS DOUBLE ARROW FROM BAR
+27FF ; [*0AC4.0020.0002] # LONG RIGHTWARDS SQUIGGLE ARROW
+2800 ; [*0D78.0020.0002] # BRAILLE PATTERN BLANK
+2801 ; [*0D79.0020.0002] # BRAILLE PATTERN DOTS-1
+2802 ; [*0D7A.0020.0002] # BRAILLE PATTERN DOTS-2
+2803 ; [*0D7B.0020.0002] # BRAILLE PATTERN DOTS-12
+2804 ; [*0D7C.0020.0002] # BRAILLE PATTERN DOTS-3
+2805 ; [*0D7D.0020.0002] # BRAILLE PATTERN DOTS-13
+2806 ; [*0D7E.0020.0002] # BRAILLE PATTERN DOTS-23
+2807 ; [*0D7F.0020.0002] # BRAILLE PATTERN DOTS-123
+2808 ; [*0D80.0020.0002] # BRAILLE PATTERN DOTS-4
+2809 ; [*0D81.0020.0002] # BRAILLE PATTERN DOTS-14
+280A ; [*0D82.0020.0002] # BRAILLE PATTERN DOTS-24
+280B ; [*0D83.0020.0002] # BRAILLE PATTERN DOTS-124
+280C ; [*0D84.0020.0002] # BRAILLE PATTERN DOTS-34
+280D ; [*0D85.0020.0002] # BRAILLE PATTERN DOTS-134
+280E ; [*0D86.0020.0002] # BRAILLE PATTERN DOTS-234
+280F ; [*0D87.0020.0002] # BRAILLE PATTERN DOTS-1234
+2810 ; [*0D88.0020.0002] # BRAILLE PATTERN DOTS-5
+2811 ; [*0D89.0020.0002] # BRAILLE PATTERN DOTS-15
+2812 ; [*0D8A.0020.0002] # BRAILLE PATTERN DOTS-25
+2813 ; [*0D8B.0020.0002] # BRAILLE PATTERN DOTS-125
+2814 ; [*0D8C.0020.0002] # BRAILLE PATTERN DOTS-35
+2815 ; [*0D8D.0020.0002] # BRAILLE PATTERN DOTS-135
+2816 ; [*0D8E.0020.0002] # BRAILLE PATTERN DOTS-235
+2817 ; [*0D8F.0020.0002] # BRAILLE PATTERN DOTS-1235
+2818 ; [*0D90.0020.0002] # BRAILLE PATTERN DOTS-45
+2819 ; [*0D91.0020.0002] # BRAILLE PATTERN DOTS-145
+281A ; [*0D92.0020.0002] # BRAILLE PATTERN DOTS-245
+281B ; [*0D93.0020.0002] # BRAILLE PATTERN DOTS-1245
+281C ; [*0D94.0020.0002] # BRAILLE PATTERN DOTS-345
+281D ; [*0D95.0020.0002] # BRAILLE PATTERN DOTS-1345
+281E ; [*0D96.0020.0002] # BRAILLE PATTERN DOTS-2345
+281F ; [*0D97.0020.0002] # BRAILLE PATTERN DOTS-12345
+2820 ; [*0D98.0020.0002] # BRAILLE PATTERN DOTS-6
+2821 ; [*0D99.0020.0002] # BRAILLE PATTERN DOTS-16
+2822 ; [*0D9A.0020.0002] # BRAILLE PATTERN DOTS-26
+2823 ; [*0D9B.0020.0002] # BRAILLE PATTERN DOTS-126
+2824 ; [*0D9C.0020.0002] # BRAILLE PATTERN DOTS-36
+2825 ; [*0D9D.0020.0002] # BRAILLE PATTERN DOTS-136
+2826 ; [*0D9E.0020.0002] # BRAILLE PATTERN DOTS-236
+2827 ; [*0D9F.0020.0002] # BRAILLE PATTERN DOTS-1236
+2828 ; [*0DA0.0020.0002] # BRAILLE PATTERN DOTS-46
+2829 ; [*0DA1.0020.0002] # BRAILLE PATTERN DOTS-146
+282A ; [*0DA2.0020.0002] # BRAILLE PATTERN DOTS-246
+282B ; [*0DA3.0020.0002] # BRAILLE PATTERN DOTS-1246
+282C ; [*0DA4.0020.0002] # BRAILLE PATTERN DOTS-346
+282D ; [*0DA5.0020.0002] # BRAILLE PATTERN DOTS-1346
+282E ; [*0DA6.0020.0002] # BRAILLE PATTERN DOTS-2346
+282F ; [*0DA7.0020.0002] # BRAILLE PATTERN DOTS-12346
+2830 ; [*0DA8.0020.0002] # BRAILLE PATTERN DOTS-56
+2831 ; [*0DA9.0020.0002] # BRAILLE PATTERN DOTS-156
+2832 ; [*0DAA.0020.0002] # BRAILLE PATTERN DOTS-256
+2833 ; [*0DAB.0020.0002] # BRAILLE PATTERN DOTS-1256
+2834 ; [*0DAC.0020.0002] # BRAILLE PATTERN DOTS-356
+2835 ; [*0DAD.0020.0002] # BRAILLE PATTERN DOTS-1356
+2836 ; [*0DAE.0020.0002] # BRAILLE PATTERN DOTS-2356
+2837 ; [*0DAF.0020.0002] # BRAILLE PATTERN DOTS-12356
+2838 ; [*0DB0.0020.0002] # BRAILLE PATTERN DOTS-456
+2839 ; [*0DB1.0020.0002] # BRAILLE PATTERN DOTS-1456
+283A ; [*0DB2.0020.0002] # BRAILLE PATTERN DOTS-2456
+283B ; [*0DB3.0020.0002] # BRAILLE PATTERN DOTS-12456
+283C ; [*0DB4.0020.0002] # BRAILLE PATTERN DOTS-3456
+283D ; [*0DB5.0020.0002] # BRAILLE PATTERN DOTS-13456
+283E ; [*0DB6.0020.0002] # BRAILLE PATTERN DOTS-23456
+283F ; [*0DB7.0020.0002] # BRAILLE PATTERN DOTS-123456
+2840 ; [*0DB8.0020.0002] # BRAILLE PATTERN DOTS-7
+2841 ; [*0DB9.0020.0002] # BRAILLE PATTERN DOTS-17
+2842 ; [*0DBA.0020.0002] # BRAILLE PATTERN DOTS-27
+2843 ; [*0DBB.0020.0002] # BRAILLE PATTERN DOTS-127
+2844 ; [*0DBC.0020.0002] # BRAILLE PATTERN DOTS-37
+2845 ; [*0DBD.0020.0002] # BRAILLE PATTERN DOTS-137
+2846 ; [*0DBE.0020.0002] # BRAILLE PATTERN DOTS-237
+2847 ; [*0DBF.0020.0002] # BRAILLE PATTERN DOTS-1237
+2848 ; [*0DC0.0020.0002] # BRAILLE PATTERN DOTS-47
+2849 ; [*0DC1.0020.0002] # BRAILLE PATTERN DOTS-147
+284A ; [*0DC2.0020.0002] # BRAILLE PATTERN DOTS-247
+284B ; [*0DC3.0020.0002] # BRAILLE PATTERN DOTS-1247
+284C ; [*0DC4.0020.0002] # BRAILLE PATTERN DOTS-347
+284D ; [*0DC5.0020.0002] # BRAILLE PATTERN DOTS-1347
+284E ; [*0DC6.0020.0002] # BRAILLE PATTERN DOTS-2347
+284F ; [*0DC7.0020.0002] # BRAILLE PATTERN DOTS-12347
+2850 ; [*0DC8.0020.0002] # BRAILLE PATTERN DOTS-57
+2851 ; [*0DC9.0020.0002] # BRAILLE PATTERN DOTS-157
+2852 ; [*0DCA.0020.0002] # BRAILLE PATTERN DOTS-257
+2853 ; [*0DCB.0020.0002] # BRAILLE PATTERN DOTS-1257
+2854 ; [*0DCC.0020.0002] # BRAILLE PATTERN DOTS-357
+2855 ; [*0DCD.0020.0002] # BRAILLE PATTERN DOTS-1357
+2856 ; [*0DCE.0020.0002] # BRAILLE PATTERN DOTS-2357
+2857 ; [*0DCF.0020.0002] # BRAILLE PATTERN DOTS-12357
+2858 ; [*0DD0.0020.0002] # BRAILLE PATTERN DOTS-457
+2859 ; [*0DD1.0020.0002] # BRAILLE PATTERN DOTS-1457
+285A ; [*0DD2.0020.0002] # BRAILLE PATTERN DOTS-2457
+285B ; [*0DD3.0020.0002] # BRAILLE PATTERN DOTS-12457
+285C ; [*0DD4.0020.0002] # BRAILLE PATTERN DOTS-3457
+285D ; [*0DD5.0020.0002] # BRAILLE PATTERN DOTS-13457
+285E ; [*0DD6.0020.0002] # BRAILLE PATTERN DOTS-23457
+285F ; [*0DD7.0020.0002] # BRAILLE PATTERN DOTS-123457
+2860 ; [*0DD8.0020.0002] # BRAILLE PATTERN DOTS-67
+2861 ; [*0DD9.0020.0002] # BRAILLE PATTERN DOTS-167
+2862 ; [*0DDA.0020.0002] # BRAILLE PATTERN DOTS-267
+2863 ; [*0DDB.0020.0002] # BRAILLE PATTERN DOTS-1267
+2864 ; [*0DDC.0020.0002] # BRAILLE PATTERN DOTS-367
+2865 ; [*0DDD.0020.0002] # BRAILLE PATTERN DOTS-1367
+2866 ; [*0DDE.0020.0002] # BRAILLE PATTERN DOTS-2367
+2867 ; [*0DDF.0020.0002] # BRAILLE PATTERN DOTS-12367
+2868 ; [*0DE0.0020.0002] # BRAILLE PATTERN DOTS-467
+2869 ; [*0DE1.0020.0002] # BRAILLE PATTERN DOTS-1467
+286A ; [*0DE2.0020.0002] # BRAILLE PATTERN DOTS-2467
+286B ; [*0DE3.0020.0002] # BRAILLE PATTERN DOTS-12467
+286C ; [*0DE4.0020.0002] # BRAILLE PATTERN DOTS-3467
+286D ; [*0DE5.0020.0002] # BRAILLE PATTERN DOTS-13467
+286E ; [*0DE6.0020.0002] # BRAILLE PATTERN DOTS-23467
+286F ; [*0DE7.0020.0002] # BRAILLE PATTERN DOTS-123467
+2870 ; [*0DE8.0020.0002] # BRAILLE PATTERN DOTS-567
+2871 ; [*0DE9.0020.0002] # BRAILLE PATTERN DOTS-1567
+2872 ; [*0DEA.0020.0002] # BRAILLE PATTERN DOTS-2567
+2873 ; [*0DEB.0020.0002] # BRAILLE PATTERN DOTS-12567
+2874 ; [*0DEC.0020.0002] # BRAILLE PATTERN DOTS-3567
+2875 ; [*0DED.0020.0002] # BRAILLE PATTERN DOTS-13567
+2876 ; [*0DEE.0020.0002] # BRAILLE PATTERN DOTS-23567
+2877 ; [*0DEF.0020.0002] # BRAILLE PATTERN DOTS-123567
+2878 ; [*0DF0.0020.0002] # BRAILLE PATTERN DOTS-4567
+2879 ; [*0DF1.0020.0002] # BRAILLE PATTERN DOTS-14567
+287A ; [*0DF2.0020.0002] # BRAILLE PATTERN DOTS-24567
+287B ; [*0DF3.0020.0002] # BRAILLE PATTERN DOTS-124567
+287C ; [*0DF4.0020.0002] # BRAILLE PATTERN DOTS-34567
+287D ; [*0DF5.0020.0002] # BRAILLE PATTERN DOTS-134567
+287E ; [*0DF6.0020.0002] # BRAILLE PATTERN DOTS-234567
+287F ; [*0DF7.0020.0002] # BRAILLE PATTERN DOTS-1234567
+2880 ; [*0DF8.0020.0002] # BRAILLE PATTERN DOTS-8
+2881 ; [*0DF9.0020.0002] # BRAILLE PATTERN DOTS-18
+2882 ; [*0DFA.0020.0002] # BRAILLE PATTERN DOTS-28
+2883 ; [*0DFB.0020.0002] # BRAILLE PATTERN DOTS-128
+2884 ; [*0DFC.0020.0002] # BRAILLE PATTERN DOTS-38
+2885 ; [*0DFD.0020.0002] # BRAILLE PATTERN DOTS-138
+2886 ; [*0DFE.0020.0002] # BRAILLE PATTERN DOTS-238
+2887 ; [*0DFF.0020.0002] # BRAILLE PATTERN DOTS-1238
+2888 ; [*0E00.0020.0002] # BRAILLE PATTERN DOTS-48
+2889 ; [*0E01.0020.0002] # BRAILLE PATTERN DOTS-148
+288A ; [*0E02.0020.0002] # BRAILLE PATTERN DOTS-248
+288B ; [*0E03.0020.0002] # BRAILLE PATTERN DOTS-1248
+288C ; [*0E04.0020.0002] # BRAILLE PATTERN DOTS-348
+288D ; [*0E05.0020.0002] # BRAILLE PATTERN DOTS-1348
+288E ; [*0E06.0020.0002] # BRAILLE PATTERN DOTS-2348
+288F ; [*0E07.0020.0002] # BRAILLE PATTERN DOTS-12348
+2890 ; [*0E08.0020.0002] # BRAILLE PATTERN DOTS-58
+2891 ; [*0E09.0020.0002] # BRAILLE PATTERN DOTS-158
+2892 ; [*0E0A.0020.0002] # BRAILLE PATTERN DOTS-258
+2893 ; [*0E0B.0020.0002] # BRAILLE PATTERN DOTS-1258
+2894 ; [*0E0C.0020.0002] # BRAILLE PATTERN DOTS-358
+2895 ; [*0E0D.0020.0002] # BRAILLE PATTERN DOTS-1358
+2896 ; [*0E0E.0020.0002] # BRAILLE PATTERN DOTS-2358
+2897 ; [*0E0F.0020.0002] # BRAILLE PATTERN DOTS-12358
+2898 ; [*0E10.0020.0002] # BRAILLE PATTERN DOTS-458
+2899 ; [*0E11.0020.0002] # BRAILLE PATTERN DOTS-1458
+289A ; [*0E12.0020.0002] # BRAILLE PATTERN DOTS-2458
+289B ; [*0E13.0020.0002] # BRAILLE PATTERN DOTS-12458
+289C ; [*0E14.0020.0002] # BRAILLE PATTERN DOTS-3458
+289D ; [*0E15.0020.0002] # BRAILLE PATTERN DOTS-13458
+289E ; [*0E16.0020.0002] # BRAILLE PATTERN DOTS-23458
+289F ; [*0E17.0020.0002] # BRAILLE PATTERN DOTS-123458
+28A0 ; [*0E18.0020.0002] # BRAILLE PATTERN DOTS-68
+28A1 ; [*0E19.0020.0002] # BRAILLE PATTERN DOTS-168
+28A2 ; [*0E1A.0020.0002] # BRAILLE PATTERN DOTS-268
+28A3 ; [*0E1B.0020.0002] # BRAILLE PATTERN DOTS-1268
+28A4 ; [*0E1C.0020.0002] # BRAILLE PATTERN DOTS-368
+28A5 ; [*0E1D.0020.0002] # BRAILLE PATTERN DOTS-1368
+28A6 ; [*0E1E.0020.0002] # BRAILLE PATTERN DOTS-2368
+28A7 ; [*0E1F.0020.0002] # BRAILLE PATTERN DOTS-12368
+28A8 ; [*0E20.0020.0002] # BRAILLE PATTERN DOTS-468
+28A9 ; [*0E21.0020.0002] # BRAILLE PATTERN DOTS-1468
+28AA ; [*0E22.0020.0002] # BRAILLE PATTERN DOTS-2468
+28AB ; [*0E23.0020.0002] # BRAILLE PATTERN DOTS-12468
+28AC ; [*0E24.0020.0002] # BRAILLE PATTERN DOTS-3468
+28AD ; [*0E25.0020.0002] # BRAILLE PATTERN DOTS-13468
+28AE ; [*0E26.0020.0002] # BRAILLE PATTERN DOTS-23468
+28AF ; [*0E27.0020.0002] # BRAILLE PATTERN DOTS-123468
+28B0 ; [*0E28.0020.0002] # BRAILLE PATTERN DOTS-568
+28B1 ; [*0E29.0020.0002] # BRAILLE PATTERN DOTS-1568
+28B2 ; [*0E2A.0020.0002] # BRAILLE PATTERN DOTS-2568
+28B3 ; [*0E2B.0020.0002] # BRAILLE PATTERN DOTS-12568
+28B4 ; [*0E2C.0020.0002] # BRAILLE PATTERN DOTS-3568
+28B5 ; [*0E2D.0020.0002] # BRAILLE PATTERN DOTS-13568
+28B6 ; [*0E2E.0020.0002] # BRAILLE PATTERN DOTS-23568
+28B7 ; [*0E2F.0020.0002] # BRAILLE PATTERN DOTS-123568
+28B8 ; [*0E30.0020.0002] # BRAILLE PATTERN DOTS-4568
+28B9 ; [*0E31.0020.0002] # BRAILLE PATTERN DOTS-14568
+28BA ; [*0E32.0020.0002] # BRAILLE PATTERN DOTS-24568
+28BB ; [*0E33.0020.0002] # BRAILLE PATTERN DOTS-124568
+28BC ; [*0E34.0020.0002] # BRAILLE PATTERN DOTS-34568
+28BD ; [*0E35.0020.0002] # BRAILLE PATTERN DOTS-134568
+28BE ; [*0E36.0020.0002] # BRAILLE PATTERN DOTS-234568
+28BF ; [*0E37.0020.0002] # BRAILLE PATTERN DOTS-1234568
+28C0 ; [*0E38.0020.0002] # BRAILLE PATTERN DOTS-78
+28C1 ; [*0E39.0020.0002] # BRAILLE PATTERN DOTS-178
+28C2 ; [*0E3A.0020.0002] # BRAILLE PATTERN DOTS-278
+28C3 ; [*0E3B.0020.0002] # BRAILLE PATTERN DOTS-1278
+28C4 ; [*0E3C.0020.0002] # BRAILLE PATTERN DOTS-378
+28C5 ; [*0E3D.0020.0002] # BRAILLE PATTERN DOTS-1378
+28C6 ; [*0E3E.0020.0002] # BRAILLE PATTERN DOTS-2378
+28C7 ; [*0E3F.0020.0002] # BRAILLE PATTERN DOTS-12378
+28C8 ; [*0E40.0020.0002] # BRAILLE PATTERN DOTS-478
+28C9 ; [*0E41.0020.0002] # BRAILLE PATTERN DOTS-1478
+28CA ; [*0E42.0020.0002] # BRAILLE PATTERN DOTS-2478
+28CB ; [*0E43.0020.0002] # BRAILLE PATTERN DOTS-12478
+28CC ; [*0E44.0020.0002] # BRAILLE PATTERN DOTS-3478
+28CD ; [*0E45.0020.0002] # BRAILLE PATTERN DOTS-13478
+28CE ; [*0E46.0020.0002] # BRAILLE PATTERN DOTS-23478
+28CF ; [*0E47.0020.0002] # BRAILLE PATTERN DOTS-123478
+28D0 ; [*0E48.0020.0002] # BRAILLE PATTERN DOTS-578
+28D1 ; [*0E49.0020.0002] # BRAILLE PATTERN DOTS-1578
+28D2 ; [*0E4A.0020.0002] # BRAILLE PATTERN DOTS-2578
+28D3 ; [*0E4B.0020.0002] # BRAILLE PATTERN DOTS-12578
+28D4 ; [*0E4C.0020.0002] # BRAILLE PATTERN DOTS-3578
+28D5 ; [*0E4D.0020.0002] # BRAILLE PATTERN DOTS-13578
+28D6 ; [*0E4E.0020.0002] # BRAILLE PATTERN DOTS-23578
+28D7 ; [*0E4F.0020.0002] # BRAILLE PATTERN DOTS-123578
+28D8 ; [*0E50.0020.0002] # BRAILLE PATTERN DOTS-4578
+28D9 ; [*0E51.0020.0002] # BRAILLE PATTERN DOTS-14578
+28DA ; [*0E52.0020.0002] # BRAILLE PATTERN DOTS-24578
+28DB ; [*0E53.0020.0002] # BRAILLE PATTERN DOTS-124578
+28DC ; [*0E54.0020.0002] # BRAILLE PATTERN DOTS-34578
+28DD ; [*0E55.0020.0002] # BRAILLE PATTERN DOTS-134578
+28DE ; [*0E56.0020.0002] # BRAILLE PATTERN DOTS-234578
+28DF ; [*0E57.0020.0002] # BRAILLE PATTERN DOTS-1234578
+28E0 ; [*0E58.0020.0002] # BRAILLE PATTERN DOTS-678
+28E1 ; [*0E59.0020.0002] # BRAILLE PATTERN DOTS-1678
+28E2 ; [*0E5A.0020.0002] # BRAILLE PATTERN DOTS-2678
+28E3 ; [*0E5B.0020.0002] # BRAILLE PATTERN DOTS-12678
+28E4 ; [*0E5C.0020.0002] # BRAILLE PATTERN DOTS-3678
+28E5 ; [*0E5D.0020.0002] # BRAILLE PATTERN DOTS-13678
+28E6 ; [*0E5E.0020.0002] # BRAILLE PATTERN DOTS-23678
+28E7 ; [*0E5F.0020.0002] # BRAILLE PATTERN DOTS-123678
+28E8 ; [*0E60.0020.0002] # BRAILLE PATTERN DOTS-4678
+28E9 ; [*0E61.0020.0002] # BRAILLE PATTERN DOTS-14678
+28EA ; [*0E62.0020.0002] # BRAILLE PATTERN DOTS-24678
+28EB ; [*0E63.0020.0002] # BRAILLE PATTERN DOTS-124678
+28EC ; [*0E64.0020.0002] # BRAILLE PATTERN DOTS-34678
+28ED ; [*0E65.0020.0002] # BRAILLE PATTERN DOTS-134678
+28EE ; [*0E66.0020.0002] # BRAILLE PATTERN DOTS-234678
+28EF ; [*0E67.0020.0002] # BRAILLE PATTERN DOTS-1234678
+28F0 ; [*0E68.0020.0002] # BRAILLE PATTERN DOTS-5678
+28F1 ; [*0E69.0020.0002] # BRAILLE PATTERN DOTS-15678
+28F2 ; [*0E6A.0020.0002] # BRAILLE PATTERN DOTS-25678
+28F3 ; [*0E6B.0020.0002] # BRAILLE PATTERN DOTS-125678
+28F4 ; [*0E6C.0020.0002] # BRAILLE PATTERN DOTS-35678
+28F5 ; [*0E6D.0020.0002] # BRAILLE PATTERN DOTS-135678
+28F6 ; [*0E6E.0020.0002] # BRAILLE PATTERN DOTS-235678
+28F7 ; [*0E6F.0020.0002] # BRAILLE PATTERN DOTS-1235678
+28F8 ; [*0E70.0020.0002] # BRAILLE PATTERN DOTS-45678
+28F9 ; [*0E71.0020.0002] # BRAILLE PATTERN DOTS-145678
+28FA ; [*0E72.0020.0002] # BRAILLE PATTERN DOTS-245678
+28FB ; [*0E73.0020.0002] # BRAILLE PATTERN DOTS-1245678
+28FC ; [*0E74.0020.0002] # BRAILLE PATTERN DOTS-345678
+28FD ; [*0E75.0020.0002] # BRAILLE PATTERN DOTS-1345678
+28FE ; [*0E76.0020.0002] # BRAILLE PATTERN DOTS-2345678
+28FF ; [*0E77.0020.0002] # BRAILLE PATTERN DOTS-12345678
+2900 ; [*0AC5.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
+2901 ; [*0AC6.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
+2902 ; [*0AC7.0020.0002] # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+2903 ; [*0AC8.0020.0002] # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE
+2904 ; [*0AC9.0020.0002] # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE
+2905 ; [*0ACA.0020.0002] # RIGHTWARDS TWO-HEADED ARROW FROM BAR
+2906 ; [*0ACB.0020.0002] # LEFTWARDS DOUBLE ARROW FROM BAR
+2907 ; [*0ACC.0020.0002] # RIGHTWARDS DOUBLE ARROW FROM BAR
+2908 ; [*0ACD.0020.0002] # DOWNWARDS ARROW WITH HORIZONTAL STROKE
+2909 ; [*0ACE.0020.0002] # UPWARDS ARROW WITH HORIZONTAL STROKE
+290A ; [*0ACF.0020.0002] # UPWARDS TRIPLE ARROW
+290B ; [*0AD0.0020.0002] # DOWNWARDS TRIPLE ARROW
+290C ; [*0AD1.0020.0002] # LEFTWARDS DOUBLE DASH ARROW
+290D ; [*0AD2.0020.0002] # RIGHTWARDS DOUBLE DASH ARROW
+290E ; [*0AD3.0020.0002] # LEFTWARDS TRIPLE DASH ARROW
+290F ; [*0AD4.0020.0002] # RIGHTWARDS TRIPLE DASH ARROW
+2910 ; [*0AD5.0020.0002] # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW
+2911 ; [*0AD6.0020.0002] # RIGHTWARDS ARROW WITH DOTTED STEM
+2912 ; [*0AD7.0020.0002] # UPWARDS ARROW TO BAR
+2913 ; [*0AD8.0020.0002] # DOWNWARDS ARROW TO BAR
+2914 ; [*0AD9.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
+2915 ; [*0ADA.0020.0002] # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2916 ; [*0ADB.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL
+2917 ; [*0ADC.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
+2918 ; [*0ADD.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2919 ; [*0ADE.0020.0002] # LEFTWARDS ARROW-TAIL
+291A ; [*0ADF.0020.0002] # RIGHTWARDS ARROW-TAIL
+291B ; [*0AE0.0020.0002] # LEFTWARDS DOUBLE ARROW-TAIL
+291C ; [*0AE1.0020.0002] # RIGHTWARDS DOUBLE ARROW-TAIL
+291D ; [*0AE2.0020.0002] # LEFTWARDS ARROW TO BLACK DIAMOND
+291E ; [*0AE3.0020.0002] # RIGHTWARDS ARROW TO BLACK DIAMOND
+291F ; [*0AE4.0020.0002] # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
+2920 ; [*0AE5.0020.0002] # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
+2921 ; [*0AE6.0020.0002] # NORTH WEST AND SOUTH EAST ARROW
+2922 ; [*0AE7.0020.0002] # NORTH EAST AND SOUTH WEST ARROW
+2923 ; [*0AE8.0020.0002] # NORTH WEST ARROW WITH HOOK
+2924 ; [*0AE9.0020.0002] # NORTH EAST ARROW WITH HOOK
+2925 ; [*0AEA.0020.0002] # SOUTH EAST ARROW WITH HOOK
+2926 ; [*0AEB.0020.0002] # SOUTH WEST ARROW WITH HOOK
+2927 ; [*0AEC.0020.0002] # NORTH WEST ARROW AND NORTH EAST ARROW
+2928 ; [*0AED.0020.0002] # NORTH EAST ARROW AND SOUTH EAST ARROW
+2929 ; [*0AEE.0020.0002] # SOUTH EAST ARROW AND SOUTH WEST ARROW
+292A ; [*0AEF.0020.0002] # SOUTH WEST ARROW AND NORTH WEST ARROW
+292B ; [*0AF0.0020.0002] # RISING DIAGONAL CROSSING FALLING DIAGONAL
+292C ; [*0AF1.0020.0002] # FALLING DIAGONAL CROSSING RISING DIAGONAL
+292D ; [*0AF2.0020.0002] # SOUTH EAST ARROW CROSSING NORTH EAST ARROW
+292E ; [*0AF3.0020.0002] # NORTH EAST ARROW CROSSING SOUTH EAST ARROW
+292F ; [*0AF4.0020.0002] # FALLING DIAGONAL CROSSING NORTH EAST ARROW
+2930 ; [*0AF5.0020.0002] # RISING DIAGONAL CROSSING SOUTH EAST ARROW
+2931 ; [*0AF6.0020.0002] # NORTH EAST ARROW CROSSING NORTH WEST ARROW
+2932 ; [*0AF7.0020.0002] # NORTH WEST ARROW CROSSING NORTH EAST ARROW
+2933 ; [*0AF8.0020.0002] # WAVE ARROW POINTING DIRECTLY RIGHT
+2934 ; [*0AF9.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS
+2935 ; [*0AFA.0020.0002] # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS
+2936 ; [*0AFB.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS
+2937 ; [*0AFC.0020.0002] # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS
+2938 ; [*0AFD.0020.0002] # RIGHT-SIDE ARC CLOCKWISE ARROW
+2939 ; [*0AFE.0020.0002] # LEFT-SIDE ARC ANTICLOCKWISE ARROW
+293A ; [*0AFF.0020.0002] # TOP ARC ANTICLOCKWISE ARROW
+293B ; [*0B00.0020.0002] # BOTTOM ARC ANTICLOCKWISE ARROW
+293C ; [*0B01.0020.0002] # TOP ARC CLOCKWISE ARROW WITH MINUS
+293D ; [*0B02.0020.0002] # TOP ARC ANTICLOCKWISE ARROW WITH PLUS
+293E ; [*0B03.0020.0002] # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW
+293F ; [*0B04.0020.0002] # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW
+2940 ; [*0B05.0020.0002] # ANTICLOCKWISE CLOSED CIRCLE ARROW
+2941 ; [*0B06.0020.0002] # CLOCKWISE CLOSED CIRCLE ARROW
+2942 ; [*0B07.0020.0002] # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW
+2943 ; [*0B08.0020.0002] # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW
+2944 ; [*0B09.0020.0002] # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW
+2945 ; [*0B0A.0020.0002] # RIGHTWARDS ARROW WITH PLUS BELOW
+2946 ; [*0B0B.0020.0002] # LEFTWARDS ARROW WITH PLUS BELOW
+2947 ; [*0B0C.0020.0002] # RIGHTWARDS ARROW THROUGH X
+2948 ; [*0B0D.0020.0002] # LEFT RIGHT ARROW THROUGH SMALL CIRCLE
+2949 ; [*0B0E.0020.0002] # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE
+294A ; [*0B0F.0020.0002] # LEFT BARB UP RIGHT BARB DOWN HARPOON
+294B ; [*0B10.0020.0002] # LEFT BARB DOWN RIGHT BARB UP HARPOON
+294C ; [*0B11.0020.0002] # UP BARB RIGHT DOWN BARB LEFT HARPOON
+294D ; [*0B12.0020.0002] # UP BARB LEFT DOWN BARB RIGHT HARPOON
+294E ; [*0B13.0020.0002] # LEFT BARB UP RIGHT BARB UP HARPOON
+294F ; [*0B14.0020.0002] # UP BARB RIGHT DOWN BARB RIGHT HARPOON
+2950 ; [*0B15.0020.0002] # LEFT BARB DOWN RIGHT BARB DOWN HARPOON
+2951 ; [*0B16.0020.0002] # UP BARB LEFT DOWN BARB LEFT HARPOON
+2952 ; [*0B17.0020.0002] # LEFTWARDS HARPOON WITH BARB UP TO BAR
+2953 ; [*0B18.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP TO BAR
+2954 ; [*0B19.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT TO BAR
+2955 ; [*0B1A.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR
+2956 ; [*0B1B.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN TO BAR
+2957 ; [*0B1C.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR
+2958 ; [*0B1D.0020.0002] # UPWARDS HARPOON WITH BARB LEFT TO BAR
+2959 ; [*0B1E.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT TO BAR
+295A ; [*0B1F.0020.0002] # LEFTWARDS HARPOON WITH BARB UP FROM BAR
+295B ; [*0B20.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP FROM BAR
+295C ; [*0B21.0020.0002] # UPWARDS HARPOON WITH BARB RIGHT FROM BAR
+295D ; [*0B22.0020.0002] # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR
+295E ; [*0B23.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
+295F ; [*0B24.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR
+2960 ; [*0B25.0020.0002] # UPWARDS HARPOON WITH BARB LEFT FROM BAR
+2961 ; [*0B26.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR
+2962 ; [*0B27.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+2963 ; [*0B28.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+2964 ; [*0B29.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+2965 ; [*0B2A.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+2966 ; [*0B2B.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP
+2967 ; [*0B2C.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN
+2968 ; [*0B2D.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP
+2969 ; [*0B2E.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN
+296A ; [*0B2F.0020.0002] # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+296B ; [*0B30.0020.0002] # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+296C ; [*0B31.0020.0002] # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH
+296D ; [*0B32.0020.0002] # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH
+296E ; [*0B33.0020.0002] # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT
+296F ; [*0B34.0020.0002] # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT
+2970 ; [*0B35.0020.0002] # RIGHT DOUBLE ARROW WITH ROUNDED HEAD
+2971 ; [*0B36.0020.0002] # EQUALS SIGN ABOVE RIGHTWARDS ARROW
+2972 ; [*0B37.0020.0002] # TILDE OPERATOR ABOVE RIGHTWARDS ARROW
+2973 ; [*0B38.0020.0002] # LEFTWARDS ARROW ABOVE TILDE OPERATOR
+2974 ; [*0B39.0020.0002] # RIGHTWARDS ARROW ABOVE TILDE OPERATOR
+2975 ; [*0B3A.0020.0002] # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO
+2976 ; [*0B3B.0020.0002] # LESS-THAN ABOVE LEFTWARDS ARROW
+2977 ; [*0B3C.0020.0002] # LEFTWARDS ARROW THROUGH LESS-THAN
+2978 ; [*0B3D.0020.0002] # GREATER-THAN ABOVE RIGHTWARDS ARROW
+2979 ; [*0B3E.0020.0002] # SUBSET ABOVE RIGHTWARDS ARROW
+297A ; [*0B3F.0020.0002] # LEFTWARDS ARROW THROUGH SUBSET
+297B ; [*0B40.0020.0002] # SUPERSET ABOVE LEFTWARDS ARROW
+297C ; [*0B41.0020.0002] # LEFT FISH TAIL
+297D ; [*0B42.0020.0002] # RIGHT FISH TAIL
+297E ; [*0B43.0020.0002] # UP FISH TAIL
+297F ; [*0B44.0020.0002] # DOWN FISH TAIL
+2980 ; [*0B45.0020.0002] # TRIPLE VERTICAL BAR DELIMITER
+2981 ; [*0B46.0020.0002] # Z NOTATION SPOT
+2982 ; [*0B47.0020.0002] # Z NOTATION TYPE COLON
+2983 ; [*0324.0020.0002] # LEFT WHITE CURLY BRACKET
+2984 ; [*0325.0020.0002] # RIGHT WHITE CURLY BRACKET
+2985 ; [*0326.0020.0002] # LEFT WHITE PARENTHESIS
+2986 ; [*0327.0020.0002] # RIGHT WHITE PARENTHESIS
+2987 ; [*0328.0020.0002] # Z NOTATION LEFT IMAGE BRACKET
+2988 ; [*0329.0020.0002] # Z NOTATION RIGHT IMAGE BRACKET
+2989 ; [*032A.0020.0002] # Z NOTATION LEFT BINDING BRACKET
+298A ; [*032B.0020.0002] # Z NOTATION RIGHT BINDING BRACKET
+298B ; [*032C.0020.0002] # LEFT SQUARE BRACKET WITH UNDERBAR
+298C ; [*032D.0020.0002] # RIGHT SQUARE BRACKET WITH UNDERBAR
+298D ; [*032E.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E ; [*032F.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F ; [*0330.0020.0002] # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990 ; [*0331.0020.0002] # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991 ; [*0332.0020.0002] # LEFT ANGLE BRACKET WITH DOT
+2992 ; [*0333.0020.0002] # RIGHT ANGLE BRACKET WITH DOT
+2993 ; [*0334.0020.0002] # LEFT ARC LESS-THAN BRACKET
+2994 ; [*0335.0020.0002] # RIGHT ARC GREATER-THAN BRACKET
+2995 ; [*0336.0020.0002] # DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996 ; [*0337.0020.0002] # DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997 ; [*0338.0020.0002] # LEFT BLACK TORTOISE SHELL BRACKET
+2998 ; [*0339.0020.0002] # RIGHT BLACK TORTOISE SHELL BRACKET
+2999 ; [*0B48.0020.0002] # DOTTED FENCE
+299A ; [*0B49.0020.0002] # VERTICAL ZIGZAG LINE
+299B ; [*0B4A.0020.0002] # MEASURED ANGLE OPENING LEFT
+299C ; [*0B4B.0020.0002] # RIGHT ANGLE VARIANT WITH SQUARE
+299D ; [*0B4C.0020.0002] # MEASURED RIGHT ANGLE WITH DOT
+299E ; [*0B4D.0020.0002] # ANGLE WITH S INSIDE
+299F ; [*0B4E.0020.0002] # ACUTE ANGLE
+29A0 ; [*0B4F.0020.0002] # SPHERICAL ANGLE OPENING LEFT
+29A1 ; [*0B50.0020.0002] # SPHERICAL ANGLE OPENING UP
+29A2 ; [*0B51.0020.0002] # TURNED ANGLE
+29A3 ; [*0B52.0020.0002] # REVERSED ANGLE
+29A4 ; [*0B53.0020.0002] # ANGLE WITH UNDERBAR
+29A5 ; [*0B54.0020.0002] # REVERSED ANGLE WITH UNDERBAR
+29A6 ; [*0B55.0020.0002] # OBLIQUE ANGLE OPENING UP
+29A7 ; [*0B56.0020.0002] # OBLIQUE ANGLE OPENING DOWN
+29A8 ; [*0B57.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
+29A9 ; [*0B58.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
+29AA ; [*0B59.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
+29AB ; [*0B5A.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
+29AC ; [*0B5B.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
+29AD ; [*0B5C.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
+29AE ; [*0B5D.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
+29AF ; [*0B5E.0020.0002] # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
+29B0 ; [*0B5F.0020.0002] # REVERSED EMPTY SET
+29B1 ; [*0B60.0020.0002] # EMPTY SET WITH OVERBAR
+29B2 ; [*0B61.0020.0002] # EMPTY SET WITH SMALL CIRCLE ABOVE
+29B3 ; [*0B62.0020.0002] # EMPTY SET WITH RIGHT ARROW ABOVE
+29B4 ; [*0B63.0020.0002] # EMPTY SET WITH LEFT ARROW ABOVE
+29B5 ; [*0B64.0020.0002] # CIRCLE WITH HORIZONTAL BAR
+29B6 ; [*0B65.0020.0002] # CIRCLED VERTICAL BAR
+29B7 ; [*0B66.0020.0002] # CIRCLED PARALLEL
+29B8 ; [*0B67.0020.0002] # CIRCLED REVERSE SOLIDUS
+29B9 ; [*0B68.0020.0002] # CIRCLED PERPENDICULAR
+29BA ; [*0B69.0020.0002] # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR
+29BB ; [*0B6A.0020.0002] # CIRCLE WITH SUPERIMPOSED X
+29BC ; [*0B6B.0020.0002] # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN
+29BD ; [*0B6C.0020.0002] # UP ARROW THROUGH CIRCLE
+29BE ; [*0B6D.0020.0002] # CIRCLED WHITE BULLET
+29BF ; [*0B6E.0020.0002] # CIRCLED BULLET
+29C0 ; [*0B6F.0020.0002] # CIRCLED LESS-THAN
+29C1 ; [*0B70.0020.0002] # CIRCLED GREATER-THAN
+29C2 ; [*0B71.0020.0002] # CIRCLE WITH SMALL CIRCLE TO THE RIGHT
+29C3 ; [*0B72.0020.0002] # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
+29C4 ; [*0B73.0020.0002] # SQUARED RISING DIAGONAL SLASH
+29C5 ; [*0B74.0020.0002] # SQUARED FALLING DIAGONAL SLASH
+29C6 ; [*0B75.0020.0002] # SQUARED ASTERISK
+29C7 ; [*0B76.0020.0002] # SQUARED SMALL CIRCLE
+29C8 ; [*0B77.0020.0002] # SQUARED SQUARE
+29C9 ; [*0B78.0020.0002] # TWO JOINED SQUARES
+29CA ; [*0B79.0020.0002] # TRIANGLE WITH DOT ABOVE
+29CB ; [*0B7A.0020.0002] # TRIANGLE WITH UNDERBAR
+29CC ; [*0B7B.0020.0002] # S IN TRIANGLE
+29CD ; [*0B7C.0020.0002] # TRIANGLE WITH SERIFS AT BOTTOM
+29CE ; [*0B7D.0020.0002] # RIGHT TRIANGLE ABOVE LEFT TRIANGLE
+29CF ; [*0B7E.0020.0002] # LEFT TRIANGLE BESIDE VERTICAL BAR
+29D0 ; [*0B7F.0020.0002] # VERTICAL BAR BESIDE RIGHT TRIANGLE
+29D1 ; [*0B80.0020.0002] # BOWTIE WITH LEFT HALF BLACK
+29D2 ; [*0B81.0020.0002] # BOWTIE WITH RIGHT HALF BLACK
+29D3 ; [*0B82.0020.0002] # BLACK BOWTIE
+29D4 ; [*0B83.0020.0002] # TIMES WITH LEFT HALF BLACK
+29D5 ; [*0B84.0020.0002] # TIMES WITH RIGHT HALF BLACK
+29D6 ; [*0B85.0020.0002] # WHITE HOURGLASS
+29D7 ; [*0B86.0020.0002] # BLACK HOURGLASS
+29D8 ; [*037E.0020.0002] # LEFT WIGGLY FENCE
+29D9 ; [*037F.0020.0002] # RIGHT WIGGLY FENCE
+29DA ; [*0380.0020.0002] # LEFT DOUBLE WIGGLY FENCE
+29DB ; [*0381.0020.0002] # RIGHT DOUBLE WIGGLY FENCE
+29DC ; [*0B87.0020.0002] # INCOMPLETE INFINITY
+29DD ; [*0B88.0020.0002] # TIE OVER INFINITY
+29DE ; [*0B89.0020.0002] # INFINITY NEGATED WITH VERTICAL BAR
+29DF ; [*0B8A.0020.0002] # DOUBLE-ENDED MULTIMAP
+29E0 ; [*0B8B.0020.0002] # SQUARE WITH CONTOURED OUTLINE
+29E1 ; [*0B8C.0020.0002] # INCREASES AS
+29E2 ; [*0B8D.0020.0002] # SHUFFLE PRODUCT
+29E3 ; [*0B8E.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL
+29E4 ; [*0B8F.0020.0002] # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
+29E5 ; [*0B90.0020.0002] # IDENTICAL TO AND SLANTED PARALLEL
+29E6 ; [*0B91.0020.0002] # GLEICH STARK
+29E7 ; [*0B92.0020.0002] # THERMODYNAMIC
+29E8 ; [*0B93.0020.0002] # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
+29E9 ; [*0B94.0020.0002] # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
+29EA ; [*0B95.0020.0002] # BLACK DIAMOND WITH DOWN ARROW
+29EB ; [*0B96.0020.0002] # BLACK LOZENGE
+29EC ; [*0B97.0020.0002] # WHITE CIRCLE WITH DOWN ARROW
+29ED ; [*0B98.0020.0002] # BLACK CIRCLE WITH DOWN ARROW
+29EE ; [*0B99.0020.0002] # ERROR-BARRED WHITE SQUARE
+29EF ; [*0B9A.0020.0002] # ERROR-BARRED BLACK SQUARE
+29F0 ; [*0B9B.0020.0002] # ERROR-BARRED WHITE DIAMOND
+29F1 ; [*0B9C.0020.0002] # ERROR-BARRED BLACK DIAMOND
+29F2 ; [*0B9D.0020.0002] # ERROR-BARRED WHITE CIRCLE
+29F3 ; [*0B9E.0020.0002] # ERROR-BARRED BLACK CIRCLE
+29F4 ; [*0B9F.0020.0002] # RULE-DELAYED
+29F5 ; [*0BA0.0020.0002] # REVERSE SOLIDUS OPERATOR
+29F6 ; [*0BA1.0020.0002] # SOLIDUS WITH OVERBAR
+29F7 ; [*0BA2.0020.0002] # REVERSE SOLIDUS WITH HORIZONTAL STROKE
+29F8 ; [*0BA3.0020.0002] # BIG SOLIDUS
+29F9 ; [*0BA4.0020.0002] # BIG REVERSE SOLIDUS
+29FA ; [*0BA5.0020.0002] # DOUBLE PLUS
+29FB ; [*0BA6.0020.0002] # TRIPLE PLUS
+29FC ; [*0322.0020.0002] # LEFT-POINTING CURVED ANGLE BRACKET
+29FD ; [*0323.0020.0002] # RIGHT-POINTING CURVED ANGLE BRACKET
+29FE ; [*0BA7.0020.0002] # TINY
+29FF ; [*0BA8.0020.0002] # MINY
+2A00 ; [*0BA9.0020.0002] # N-ARY CIRCLED DOT OPERATOR
+2A01 ; [*0BAA.0020.0002] # N-ARY CIRCLED PLUS OPERATOR
+2A02 ; [*0BAB.0020.0002] # N-ARY CIRCLED TIMES OPERATOR
+2A03 ; [*0BAC.0020.0002] # N-ARY UNION OPERATOR WITH DOT
+2A04 ; [*0BAD.0020.0002] # N-ARY UNION OPERATOR WITH PLUS
+2A05 ; [*0BAE.0020.0002] # N-ARY SQUARE INTERSECTION OPERATOR
+2A06 ; [*0BAF.0020.0002] # N-ARY SQUARE UNION OPERATOR
+2A07 ; [*0BB0.0020.0002] # TWO LOGICAL AND OPERATOR
+2A08 ; [*0BB1.0020.0002] # TWO LOGICAL OR OPERATOR
+2A09 ; [*0BB2.0020.0002] # N-ARY TIMES OPERATOR
+2A0A ; [*0BB3.0020.0002] # MODULO TWO SUM
+2A0B ; [*0BB4.0020.0002] # SUMMATION WITH INTEGRAL
+2A0C ; [*061C.0020.0004][*061C.0020.0004][*061C.0020.0004][*061C.0020.0004] # QUADRUPLE INTEGRAL OPERATOR
+2A0D ; [*0BB5.0020.0002] # FINITE PART INTEGRAL
+2A0E ; [*0BB6.0020.0002] # INTEGRAL WITH DOUBLE STROKE
+2A0F ; [*0BB7.0020.0002] # INTEGRAL AVERAGE WITH SLASH
+2A10 ; [*0BB8.0020.0002] # CIRCULATION FUNCTION
+2A11 ; [*0BB9.0020.0002] # ANTICLOCKWISE INTEGRATION
+2A12 ; [*0BBA.0020.0002] # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
+2A13 ; [*0BBB.0020.0002] # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
+2A14 ; [*0BBC.0020.0002] # LINE INTEGRATION NOT INCLUDING THE POLE
+2A15 ; [*0BBD.0020.0002] # INTEGRAL AROUND A POINT OPERATOR
+2A16 ; [*0BBE.0020.0002] # QUATERNION INTEGRAL OPERATOR
+2A17 ; [*0BBF.0020.0002] # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
+2A18 ; [*0BC0.0020.0002] # INTEGRAL WITH TIMES SIGN
+2A19 ; [*0BC1.0020.0002] # INTEGRAL WITH INTERSECTION
+2A1A ; [*0BC2.0020.0002] # INTEGRAL WITH UNION
+2A1B ; [*0BC3.0020.0002] # INTEGRAL WITH OVERBAR
+2A1C ; [*0BC4.0020.0002] # INTEGRAL WITH UNDERBAR
+2A1D ; [*0BC5.0020.0002] # JOIN
+2A1E ; [*0BC6.0020.0002] # LARGE LEFT TRIANGLE OPERATOR
+2A1F ; [*0BC7.0020.0002] # Z NOTATION SCHEMA COMPOSITION
+2A20 ; [*0BC8.0020.0002] # Z NOTATION SCHEMA PIPING
+2A21 ; [*0BC9.0020.0002] # Z NOTATION SCHEMA PROJECTION
+2A22 ; [*0BCA.0020.0002] # PLUS SIGN WITH SMALL CIRCLE ABOVE
+2A23 ; [*0BCB.0020.0002] # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE
+2A24 ; [*0BCC.0020.0002] # PLUS SIGN WITH TILDE ABOVE
+2A25 ; [*0BCD.0020.0002] # PLUS SIGN WITH DOT BELOW
+2A26 ; [*0BCE.0020.0002] # PLUS SIGN WITH TILDE BELOW
+2A27 ; [*0BCF.0020.0002] # PLUS SIGN WITH SUBSCRIPT TWO
+2A28 ; [*0BD0.0020.0002] # PLUS SIGN WITH BLACK TRIANGLE
+2A29 ; [*0BD1.0020.0002] # MINUS SIGN WITH COMMA ABOVE
+2A2A ; [*0BD2.0020.0002] # MINUS SIGN WITH DOT BELOW
+2A2B ; [*0BD3.0020.0002] # MINUS SIGN WITH FALLING DOTS
+2A2C ; [*0BD4.0020.0002] # MINUS SIGN WITH RISING DOTS
+2A2D ; [*0BD5.0020.0002] # PLUS SIGN IN LEFT HALF CIRCLE
+2A2E ; [*0BD6.0020.0002] # PLUS SIGN IN RIGHT HALF CIRCLE
+2A2F ; [*0BD7.0020.0002] # VECTOR OR CROSS PRODUCT
+2A30 ; [*0BD8.0020.0002] # MULTIPLICATION SIGN WITH DOT ABOVE
+2A31 ; [*0BD9.0020.0002] # MULTIPLICATION SIGN WITH UNDERBAR
+2A32 ; [*0BDA.0020.0002] # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED
+2A33 ; [*0BDB.0020.0002] # SMASH PRODUCT
+2A34 ; [*0BDC.0020.0002] # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
+2A35 ; [*0BDD.0020.0002] # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
+2A36 ; [*0BDE.0020.0002] # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT
+2A37 ; [*0BDF.0020.0002] # MULTIPLICATION SIGN IN DOUBLE CIRCLE
+2A38 ; [*0BE0.0020.0002] # CIRCLED DIVISION SIGN
+2A39 ; [*0BE1.0020.0002] # PLUS SIGN IN TRIANGLE
+2A3A ; [*0BE2.0020.0002] # MINUS SIGN IN TRIANGLE
+2A3B ; [*0BE3.0020.0002] # MULTIPLICATION SIGN IN TRIANGLE
+2A3C ; [*0BE4.0020.0002] # INTERIOR PRODUCT
+2A3D ; [*0BE5.0020.0002] # RIGHTHAND INTERIOR PRODUCT
+2A3E ; [*0BE6.0020.0002] # Z NOTATION RELATIONAL COMPOSITION
+2A3F ; [*0BE7.0020.0002] # AMALGAMATION OR COPRODUCT
+2A40 ; [*0BE8.0020.0002] # INTERSECTION WITH DOT
+2A41 ; [*0BE9.0020.0002] # UNION WITH MINUS SIGN
+2A42 ; [*0BEA.0020.0002] # UNION WITH OVERBAR
+2A43 ; [*0BEB.0020.0002] # INTERSECTION WITH OVERBAR
+2A44 ; [*0BEC.0020.0002] # INTERSECTION WITH LOGICAL AND
+2A45 ; [*0BED.0020.0002] # UNION WITH LOGICAL OR
+2A46 ; [*0BEE.0020.0002] # UNION ABOVE INTERSECTION
+2A47 ; [*0BEF.0020.0002] # INTERSECTION ABOVE UNION
+2A48 ; [*0BF0.0020.0002] # UNION ABOVE BAR ABOVE INTERSECTION
+2A49 ; [*0BF1.0020.0002] # INTERSECTION ABOVE BAR ABOVE UNION
+2A4A ; [*0BF2.0020.0002] # UNION BESIDE AND JOINED WITH UNION
+2A4B ; [*0BF3.0020.0002] # INTERSECTION BESIDE AND JOINED WITH INTERSECTION
+2A4C ; [*0BF4.0020.0002] # CLOSED UNION WITH SERIFS
+2A4D ; [*0BF5.0020.0002] # CLOSED INTERSECTION WITH SERIFS
+2A4E ; [*0BF6.0020.0002] # DOUBLE SQUARE INTERSECTION
+2A4F ; [*0BF7.0020.0002] # DOUBLE SQUARE UNION
+2A50 ; [*0BF8.0020.0002] # CLOSED UNION WITH SERIFS AND SMASH PRODUCT
+2A51 ; [*0BF9.0020.0002] # LOGICAL AND WITH DOT ABOVE
+2A52 ; [*0BFA.0020.0002] # LOGICAL OR WITH DOT ABOVE
+2A53 ; [*0BFB.0020.0002] # DOUBLE LOGICAL AND
+2A54 ; [*0BFC.0020.0002] # DOUBLE LOGICAL OR
+2A55 ; [*0BFD.0020.0002] # TWO INTERSECTING LOGICAL AND
+2A56 ; [*0BFE.0020.0002] # TWO INTERSECTING LOGICAL OR
+2A57 ; [*0BFF.0020.0002] # SLOPING LARGE OR
+2A58 ; [*0C00.0020.0002] # SLOPING LARGE AND
+2A59 ; [*0C01.0020.0002] # LOGICAL OR OVERLAPPING LOGICAL AND
+2A5A ; [*0C02.0020.0002] # LOGICAL AND WITH MIDDLE STEM
+2A5B ; [*0C03.0020.0002] # LOGICAL OR WITH MIDDLE STEM
+2A5C ; [*0C04.0020.0002] # LOGICAL AND WITH HORIZONTAL DASH
+2A5D ; [*0C05.0020.0002] # LOGICAL OR WITH HORIZONTAL DASH
+2A5E ; [*0C06.0020.0002] # LOGICAL AND WITH DOUBLE OVERBAR
+2A5F ; [*0C07.0020.0002] # LOGICAL AND WITH UNDERBAR
+2A60 ; [*0C08.0020.0002] # LOGICAL AND WITH DOUBLE UNDERBAR
+2A61 ; [*0C09.0020.0002] # SMALL VEE WITH UNDERBAR
+2A62 ; [*0C0A.0020.0002] # LOGICAL OR WITH DOUBLE OVERBAR
+2A63 ; [*0C0B.0020.0002] # LOGICAL OR WITH DOUBLE UNDERBAR
+2A64 ; [*0C0C.0020.0002] # Z NOTATION DOMAIN ANTIRESTRICTION
+2A65 ; [*0C0D.0020.0002] # Z NOTATION RANGE ANTIRESTRICTION
+2A66 ; [*0C0E.0020.0002] # EQUALS SIGN WITH DOT BELOW
+2A67 ; [*0C0F.0020.0002] # IDENTICAL WITH DOT ABOVE
+2A68 ; [*0C10.0020.0002] # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE
+2A69 ; [*0C11.0020.0002] # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE
+2A6A ; [*0C12.0020.0002] # TILDE OPERATOR WITH DOT ABOVE
+2A6B ; [*0C13.0020.0002] # TILDE OPERATOR WITH RISING DOTS
+2A6C ; [*0C14.0020.0002] # SIMILAR MINUS SIMILAR
+2A6D ; [*0C15.0020.0002] # CONGRUENT WITH DOT ABOVE
+2A6E ; [*0C16.0020.0002] # EQUALS WITH ASTERISK
+2A6F ; [*0C17.0020.0002] # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
+2A70 ; [*0C18.0020.0002] # APPROXIMATELY EQUAL OR EQUAL TO
+2A71 ; [*0C19.0020.0002] # EQUALS SIGN ABOVE PLUS SIGN
+2A72 ; [*0C1A.0020.0002] # PLUS SIGN ABOVE EQUALS SIGN
+2A73 ; [*0C1B.0020.0002] # EQUALS SIGN ABOVE TILDE OPERATOR
+2A74 ; [*0238.0020.0004][*0238.0020.0004][*05FB.0020.0004] # DOUBLE COLON EQUAL
+2A75 ; [*05FB.0020.0004][*05FB.0020.0004] # TWO CONSECUTIVE EQUALS SIGNS
+2A76 ; [*05FB.0020.0004][*05FB.0020.0004][*05FB.0020.0004] # THREE CONSECUTIVE EQUALS SIGNS
+2A77 ; [*0C1C.0020.0002] # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
+2A78 ; [*0C1D.0020.0002] # EQUIVALENT WITH FOUR DOTS ABOVE
+2A79 ; [*0C1E.0020.0002] # LESS-THAN WITH CIRCLE INSIDE
+2A7A ; [*0C1F.0020.0002] # GREATER-THAN WITH CIRCLE INSIDE
+2A7B ; [*0C20.0020.0002] # LESS-THAN WITH QUESTION MARK ABOVE
+2A7C ; [*0C21.0020.0002] # GREATER-THAN WITH QUESTION MARK ABOVE
+2A7D ; [*0C22.0020.0002] # LESS-THAN OR SLANTED EQUAL TO
+2A7E ; [*0C23.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO
+2A7F ; [*0C24.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A80 ; [*0C25.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A81 ; [*0C26.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A82 ; [*0C27.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A83 ; [*0C28.0020.0002] # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
+2A84 ; [*0C29.0020.0002] # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
+2A85 ; [*0C2A.0020.0002] # LESS-THAN OR APPROXIMATE
+2A86 ; [*0C2B.0020.0002] # GREATER-THAN OR APPROXIMATE
+2A87 ; [*0C2C.0020.0002] # LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+2A88 ; [*0C2D.0020.0002] # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+2A89 ; [*0C2E.0020.0002] # LESS-THAN AND NOT APPROXIMATE
+2A8A ; [*0C2F.0020.0002] # GREATER-THAN AND NOT APPROXIMATE
+2A8B ; [*0C30.0020.0002] # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
+2A8C ; [*0C31.0020.0002] # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
+2A8D ; [*0C32.0020.0002] # LESS-THAN ABOVE SIMILAR OR EQUAL
+2A8E ; [*0C33.0020.0002] # GREATER-THAN ABOVE SIMILAR OR EQUAL
+2A8F ; [*0C34.0020.0002] # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
+2A90 ; [*0C35.0020.0002] # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
+2A91 ; [*0C36.0020.0002] # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
+2A92 ; [*0C37.0020.0002] # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
+2A93 ; [*0C38.0020.0002] # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
+2A94 ; [*0C39.0020.0002] # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
+2A95 ; [*0C3A.0020.0002] # SLANTED EQUAL TO OR LESS-THAN
+2A96 ; [*0C3B.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN
+2A97 ; [*0C3C.0020.0002] # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
+2A98 ; [*0C3D.0020.0002] # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
+2A99 ; [*0C3E.0020.0002] # DOUBLE-LINE EQUAL TO OR LESS-THAN
+2A9A ; [*0C3F.0020.0002] # DOUBLE-LINE EQUAL TO OR GREATER-THAN
+2A9B ; [*0C40.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
+2A9C ; [*0C41.0020.0002] # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
+2A9D ; [*0C42.0020.0002] # SIMILAR OR LESS-THAN
+2A9E ; [*0C43.0020.0002] # SIMILAR OR GREATER-THAN
+2A9F ; [*0C44.0020.0002] # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
+2AA0 ; [*0C45.0020.0002] # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
+2AA1 ; [*0C46.0020.0002] # DOUBLE NESTED LESS-THAN
+2AA2 ; [*0C47.0020.0002] # DOUBLE NESTED GREATER-THAN
+2AA3 ; [*0C48.0020.0002] # DOUBLE NESTED LESS-THAN WITH UNDERBAR
+2AA4 ; [*0C49.0020.0002] # GREATER-THAN OVERLAPPING LESS-THAN
+2AA5 ; [*0C4A.0020.0002] # GREATER-THAN BESIDE LESS-THAN
+2AA6 ; [*0C4B.0020.0002] # LESS-THAN CLOSED BY CURVE
+2AA7 ; [*0C4C.0020.0002] # GREATER-THAN CLOSED BY CURVE
+2AA8 ; [*0C4D.0020.0002] # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AA9 ; [*0C4E.0020.0002] # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AAA ; [*0C4F.0020.0002] # SMALLER THAN
+2AAB ; [*0C50.0020.0002] # LARGER THAN
+2AAC ; [*0C51.0020.0002] # SMALLER THAN OR EQUAL TO
+2AAD ; [*0C52.0020.0002] # LARGER THAN OR EQUAL TO
+2AAE ; [*0C53.0020.0002] # EQUALS SIGN WITH BUMPY ABOVE
+2AAF ; [*0C54.0020.0002] # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+2AB0 ; [*0C55.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+2AB1 ; [*0C56.0020.0002] # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
+2AB2 ; [*0C57.0020.0002] # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
+2AB3 ; [*0C58.0020.0002] # PRECEDES ABOVE EQUALS SIGN
+2AB4 ; [*0C59.0020.0002] # SUCCEEDS ABOVE EQUALS SIGN
+2AB5 ; [*0C5A.0020.0002] # PRECEDES ABOVE NOT EQUAL TO
+2AB6 ; [*0C5B.0020.0002] # SUCCEEDS ABOVE NOT EQUAL TO
+2AB7 ; [*0C5C.0020.0002] # PRECEDES ABOVE ALMOST EQUAL TO
+2AB8 ; [*0C5D.0020.0002] # SUCCEEDS ABOVE ALMOST EQUAL TO
+2AB9 ; [*0C5E.0020.0002] # PRECEDES ABOVE NOT ALMOST EQUAL TO
+2ABA ; [*0C5F.0020.0002] # SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+2ABB ; [*0C60.0020.0002] # DOUBLE PRECEDES
+2ABC ; [*0C61.0020.0002] # DOUBLE SUCCEEDS
+2ABD ; [*0C62.0020.0002] # SUBSET WITH DOT
+2ABE ; [*0C63.0020.0002] # SUPERSET WITH DOT
+2ABF ; [*0C64.0020.0002] # SUBSET WITH PLUS SIGN BELOW
+2AC0 ; [*0C65.0020.0002] # SUPERSET WITH PLUS SIGN BELOW
+2AC1 ; [*0C66.0020.0002] # SUBSET WITH MULTIPLICATION SIGN BELOW
+2AC2 ; [*0C67.0020.0002] # SUPERSET WITH MULTIPLICATION SIGN BELOW
+2AC3 ; [*0C68.0020.0002] # SUBSET OF OR EQUAL TO WITH DOT ABOVE
+2AC4 ; [*0C69.0020.0002] # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
+2AC5 ; [*0C6A.0020.0002] # SUBSET OF ABOVE EQUALS SIGN
+2AC6 ; [*0C6B.0020.0002] # SUPERSET OF ABOVE EQUALS SIGN
+2AC7 ; [*0C6C.0020.0002] # SUBSET OF ABOVE TILDE OPERATOR
+2AC8 ; [*0C6D.0020.0002] # SUPERSET OF ABOVE TILDE OPERATOR
+2AC9 ; [*0C6E.0020.0002] # SUBSET OF ABOVE ALMOST EQUAL TO
+2ACA ; [*0C6F.0020.0002] # SUPERSET OF ABOVE ALMOST EQUAL TO
+2ACB ; [*0C70.0020.0002] # SUBSET OF ABOVE NOT EQUAL TO
+2ACC ; [*0C71.0020.0002] # SUPERSET OF ABOVE NOT EQUAL TO
+2ACD ; [*0C72.0020.0002] # SQUARE LEFT OPEN BOX OPERATOR
+2ACE ; [*0C73.0020.0002] # SQUARE RIGHT OPEN BOX OPERATOR
+2ACF ; [*0C74.0020.0002] # CLOSED SUBSET
+2AD0 ; [*0C75.0020.0002] # CLOSED SUPERSET
+2AD1 ; [*0C76.0020.0002] # CLOSED SUBSET OR EQUAL TO
+2AD2 ; [*0C77.0020.0002] # CLOSED SUPERSET OR EQUAL TO
+2AD3 ; [*0C78.0020.0002] # SUBSET ABOVE SUPERSET
+2AD4 ; [*0C79.0020.0002] # SUPERSET ABOVE SUBSET
+2AD5 ; [*0C7A.0020.0002] # SUBSET ABOVE SUBSET
+2AD6 ; [*0C7B.0020.0002] # SUPERSET ABOVE SUPERSET
+2AD7 ; [*0C7C.0020.0002] # SUPERSET BESIDE SUBSET
+2AD8 ; [*0C7D.0020.0002] # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET
+2AD9 ; [*0C7E.0020.0002] # ELEMENT OF OPENING DOWNWARDS
+2ADA ; [*0C7F.0020.0002] # PITCHFORK WITH TEE TOP
+2ADB ; [*0C80.0020.0002] # TRANSVERSAL INTERSECTION
+2ADC ; [*0C81.0020.0002][.0000.002F.0002] # FORKING
+2ADD ; [*0C81.0020.0002] # NONFORKING
+2ADE ; [*0C82.0020.0002] # SHORT LEFT TACK
+2ADF ; [*0C83.0020.0002] # SHORT DOWN TACK
+2AE0 ; [*0C84.0020.0002] # SHORT UP TACK
+2AE1 ; [*0C85.0020.0002] # PERPENDICULAR WITH S
+2AE2 ; [*0C86.0020.0002] # VERTICAL BAR TRIPLE RIGHT TURNSTILE
+2AE3 ; [*0C87.0020.0002] # DOUBLE VERTICAL BAR LEFT TURNSTILE
+2AE4 ; [*0C88.0020.0002] # VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AE5 ; [*0C89.0020.0002] # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AE6 ; [*0C8A.0020.0002] # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
+2AE7 ; [*0C8B.0020.0002] # SHORT DOWN TACK WITH OVERBAR
+2AE8 ; [*0C8C.0020.0002] # SHORT UP TACK WITH UNDERBAR
+2AE9 ; [*0C8D.0020.0002] # SHORT UP TACK ABOVE SHORT DOWN TACK
+2AEA ; [*0C8E.0020.0002] # DOUBLE DOWN TACK
+2AEB ; [*0C8F.0020.0002] # DOUBLE UP TACK
+2AEC ; [*0C90.0020.0002] # DOUBLE STROKE NOT SIGN
+2AED ; [*0C91.0020.0002] # REVERSED DOUBLE STROKE NOT SIGN
+2AEE ; [*0C92.0020.0002] # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
+2AEF ; [*0C93.0020.0002] # VERTICAL LINE WITH CIRCLE ABOVE
+2AF0 ; [*0C94.0020.0002] # VERTICAL LINE WITH CIRCLE BELOW
+2AF1 ; [*0C95.0020.0002] # DOWN TACK WITH CIRCLE BELOW
+2AF2 ; [*0C96.0020.0002] # PARALLEL WITH HORIZONTAL STROKE
+2AF3 ; [*0C97.0020.0002] # PARALLEL WITH TILDE OPERATOR
+2AF4 ; [*0C98.0020.0002] # TRIPLE VERTICAL BAR BINARY RELATION
+2AF5 ; [*0C99.0020.0002] # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE
+2AF6 ; [*0C9A.0020.0002] # TRIPLE COLON OPERATOR
+2AF7 ; [*0C9B.0020.0002] # TRIPLE NESTED LESS-THAN
+2AF8 ; [*0C9C.0020.0002] # TRIPLE NESTED GREATER-THAN
+2AF9 ; [*0C9D.0020.0002] # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
+2AFA ; [*0C9E.0020.0002] # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
+2AFB ; [*0C9F.0020.0002] # TRIPLE SOLIDUS BINARY RELATION
+2AFC ; [*0CA0.0020.0002] # LARGE TRIPLE VERTICAL BAR OPERATOR
+2AFD ; [*0CA1.0020.0002] # DOUBLE SOLIDUS OPERATOR
+2AFE ; [*0CA2.0020.0002] # WHITE VERTICAL BAR
+2AFF ; [*0CA3.0020.0002] # N-ARY WHITE VERTICAL BAR
+2B00 ; [*0CA4.0020.0002] # NORTH EAST WHITE ARROW
+2B01 ; [*0CA5.0020.0002] # NORTH WEST WHITE ARROW
+2B02 ; [*0CA6.0020.0002] # SOUTH EAST WHITE ARROW
+2B03 ; [*0CA7.0020.0002] # SOUTH WEST WHITE ARROW
+2B04 ; [*0CA8.0020.0002] # LEFT RIGHT WHITE ARROW
+2B05 ; [*0CA9.0020.0002] # LEFTWARDS BLACK ARROW
+2B06 ; [*0CAA.0020.0002] # UPWARDS BLACK ARROW
+2B07 ; [*0CAB.0020.0002] # DOWNWARDS BLACK ARROW
+2B08 ; [*0CAC.0020.0002] # NORTH EAST BLACK ARROW
+2B09 ; [*0CAD.0020.0002] # NORTH WEST BLACK ARROW
+2B0A ; [*0CAE.0020.0002] # SOUTH EAST BLACK ARROW
+2B0B ; [*0CAF.0020.0002] # SOUTH WEST BLACK ARROW
+2B0C ; [*0CB0.0020.0002] # LEFT RIGHT BLACK ARROW
+2B0D ; [*0CB1.0020.0002] # UP DOWN BLACK ARROW
+2B0E ; [*0CB2.0020.0002] # RIGHTWARDS ARROW WITH TIP DOWNWARDS
+2B0F ; [*0CB3.0020.0002] # RIGHTWARDS ARROW WITH TIP UPWARDS
+2B10 ; [*0CB4.0020.0002] # LEFTWARDS ARROW WITH TIP DOWNWARDS
+2B11 ; [*0CB5.0020.0002] # LEFTWARDS ARROW WITH TIP UPWARDS
+2B12 ; [*0CB6.0020.0002] # SQUARE WITH TOP HALF BLACK
+2B13 ; [*0CB7.0020.0002] # SQUARE WITH BOTTOM HALF BLACK
+2B14 ; [*0CB8.0020.0002] # SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK
+2B15 ; [*0CB9.0020.0002] # SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK
+2B16 ; [*0CBA.0020.0002] # DIAMOND WITH LEFT HALF BLACK
+2B17 ; [*0CBB.0020.0002] # DIAMOND WITH RIGHT HALF BLACK
+2B18 ; [*0CBC.0020.0002] # DIAMOND WITH TOP HALF BLACK
+2B19 ; [*0CBD.0020.0002] # DIAMOND WITH BOTTOM HALF BLACK
+2B1A ; [*0CBE.0020.0002] # DOTTED SQUARE
+2B1B ; [*0CBF.0020.0002] # BLACK LARGE SQUARE
+2B1C ; [*0CC0.0020.0002] # WHITE LARGE SQUARE
+2B1D ; [*0CC1.0020.0002] # BLACK VERY SMALL SQUARE
+2B1E ; [*0CC2.0020.0002] # WHITE VERY SMALL SQUARE
+2B1F ; [*0CC3.0020.0002] # BLACK PENTAGON
+2B20 ; [*0CC4.0020.0002] # WHITE PENTAGON
+2B21 ; [*0CC5.0020.0002] # WHITE HEXAGON
+2B22 ; [*0CC6.0020.0002] # BLACK HEXAGON
+2B23 ; [*0CC7.0020.0002] # HORIZONTAL BLACK HEXAGON
+2B24 ; [*0CC8.0020.0002] # BLACK LARGE CIRCLE
+2B25 ; [*0CC9.0020.0002] # BLACK MEDIUM DIAMOND
+2B26 ; [*0CCA.0020.0002] # WHITE MEDIUM DIAMOND
+2B27 ; [*0CCB.0020.0002] # BLACK MEDIUM LOZENGE
+2B28 ; [*0CCC.0020.0002] # WHITE MEDIUM LOZENGE
+2B29 ; [*0CCD.0020.0002] # BLACK SMALL DIAMOND
+2B2A ; [*0CCE.0020.0002] # BLACK SMALL LOZENGE
+2B2B ; [*0CCF.0020.0002] # WHITE SMALL LOZENGE
+2B2C ; [*0CD0.0020.0002] # BLACK HORIZONTAL ELLIPSE
+2B2D ; [*0CD1.0020.0002] # WHITE HORIZONTAL ELLIPSE
+2B2E ; [*0CD2.0020.0002] # BLACK VERTICAL ELLIPSE
+2B2F ; [*0CD3.0020.0002] # WHITE VERTICAL ELLIPSE
+2B30 ; [*0CD4.0020.0002] # LEFT ARROW WITH SMALL CIRCLE
+2B31 ; [*0CD5.0020.0002] # THREE LEFTWARDS ARROWS
+2B32 ; [*0CD6.0020.0002] # LEFT ARROW WITH CIRCLED PLUS
+2B33 ; [*0CD7.0020.0002] # LONG LEFTWARDS SQUIGGLE ARROW
+2B34 ; [*0CD8.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE
+2B35 ; [*0CD9.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE
+2B36 ; [*0CDA.0020.0002] # LEFTWARDS TWO-HEADED ARROW FROM BAR
+2B37 ; [*0CDB.0020.0002] # LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
+2B38 ; [*0CDC.0020.0002] # LEFTWARDS ARROW WITH DOTTED STEM
+2B39 ; [*0CDD.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE
+2B3A ; [*0CDE.0020.0002] # LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2B3B ; [*0CDF.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL
+2B3C ; [*0CE0.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE
+2B3D ; [*0CE1.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE
+2B3E ; [*0CE2.0020.0002] # LEFTWARDS ARROW THROUGH X
+2B3F ; [*0CE3.0020.0002] # WAVE ARROW POINTING DIRECTLY LEFT
+2B40 ; [*0CE4.0020.0002] # EQUALS SIGN ABOVE LEFTWARDS ARROW
+2B41 ; [*0CE5.0020.0002] # REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW
+2B42 ; [*0CE6.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
+2B43 ; [*0CE7.0020.0002] # RIGHTWARDS ARROW THROUGH GREATER-THAN
+2B44 ; [*0CE8.0020.0002] # RIGHTWARDS ARROW THROUGH SUPERSET
+2B45 ; [*0CE9.0020.0002] # LEFTWARDS QUADRUPLE ARROW
+2B46 ; [*0CEA.0020.0002] # RIGHTWARDS QUADRUPLE ARROW
+2B47 ; [*0CEB.0020.0002] # REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW
+2B48 ; [*0CEC.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
+2B49 ; [*0CED.0020.0002] # TILDE OPERATOR ABOVE LEFTWARDS ARROW
+2B4A ; [*0CEE.0020.0002] # LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
+2B4B ; [*0CEF.0020.0002] # LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4C ; [*0CF0.0020.0002] # RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D ; [*0CF1.0020.0002] # DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW
+2B4E ; [*0CF2.0020.0002] # SHORT SLANTED NORTH ARROW
+2B4F ; [*0CF3.0020.0002] # SHORT BACKSLANTED SOUTH ARROW
+2B50 ; [*0CF4.0020.0002] # WHITE MEDIUM STAR
+2B51 ; [*0CF5.0020.0002] # BLACK SMALL STAR
+2B52 ; [*0CF6.0020.0002] # WHITE SMALL STAR
+2B53 ; [*0CF7.0020.0002] # BLACK RIGHT-POINTING PENTAGON
+2B54 ; [*0CF8.0020.0002] # WHITE RIGHT-POINTING PENTAGON
+2B55 ; [*0CF9.0020.0002] # HEAVY LARGE CIRCLE
+2B56 ; [*0CFA.0020.0002] # HEAVY OVAL WITH OVAL INSIDE
+2B57 ; [*0CFB.0020.0002] # HEAVY CIRCLE WITH CIRCLE INSIDE
+2B58 ; [*0CFC.0020.0002] # HEAVY CIRCLE
+2B59 ; [*0CFD.0020.0002] # HEAVY CIRCLED SALTIRE
+2B5A ; [*0CFE.0020.0002] # SLANTED NORTH ARROW WITH HOOKED HEAD
+2B5B ; [*0CFF.0020.0002] # BACKSLANTED SOUTH ARROW WITH HOOKED TAIL
+2B5C ; [*0D00.0020.0002] # SLANTED NORTH ARROW WITH HORIZONTAL TAIL
+2B5D ; [*0D01.0020.0002] # BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL
+2B5E ; [*0D02.0020.0002] # BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
+2B5F ; [*0D03.0020.0002] # SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST
+2B60 ; [*0D04.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW
+2B61 ; [*0D05.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW
+2B62 ; [*0D06.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW
+2B63 ; [*0D07.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW
+2B64 ; [*0D08.0020.0002] # LEFT RIGHT TRIANGLE-HEADED ARROW
+2B65 ; [*0D09.0020.0002] # UP DOWN TRIANGLE-HEADED ARROW
+2B66 ; [*0D0A.0020.0002] # NORTH WEST TRIANGLE-HEADED ARROW
+2B67 ; [*0D0B.0020.0002] # NORTH EAST TRIANGLE-HEADED ARROW
+2B68 ; [*0D0C.0020.0002] # SOUTH EAST TRIANGLE-HEADED ARROW
+2B69 ; [*0D0D.0020.0002] # SOUTH WEST TRIANGLE-HEADED ARROW
+2B6A ; [*0D0E.0020.0002] # LEFTWARDS TRIANGLE-HEADED DASHED ARROW
+2B6B ; [*0D0F.0020.0002] # UPWARDS TRIANGLE-HEADED DASHED ARROW
+2B6C ; [*0D10.0020.0002] # RIGHTWARDS TRIANGLE-HEADED DASHED ARROW
+2B6D ; [*0D11.0020.0002] # DOWNWARDS TRIANGLE-HEADED DASHED ARROW
+2B6E ; [*0D12.0020.0002] # CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
+2B6F ; [*0D13.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW
+2B70 ; [*0D14.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
+2B71 ; [*0D15.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW TO BAR
+2B72 ; [*0D16.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR
+2B73 ; [*0D17.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76 ; [*0D18.0020.0002] # NORTH WEST TRIANGLE-HEADED ARROW TO BAR
+2B77 ; [*0D19.0020.0002] # NORTH EAST TRIANGLE-HEADED ARROW TO BAR
+2B78 ; [*0D1A.0020.0002] # SOUTH EAST TRIANGLE-HEADED ARROW TO BAR
+2B79 ; [*0D1B.0020.0002] # SOUTH WEST TRIANGLE-HEADED ARROW TO BAR
+2B7A ; [*0D1C.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7B ; [*0D1D.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7C ; [*0D1E.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7D ; [*0D1F.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE
+2B7E ; [*0D20.0020.0002] # HORIZONTAL TAB KEY
+2B7F ; [*0D21.0020.0002] # VERTICAL TAB KEY
+2B80 ; [*0D22.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW
+2B81 ; [*0D23.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW
+2B82 ; [*0D24.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW
+2B83 ; [*0D25.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW
+2B84 ; [*0D26.0020.0002] # LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
+2B85 ; [*0D27.0020.0002] # UPWARDS TRIANGLE-HEADED PAIRED ARROWS
+2B86 ; [*0D28.0020.0002] # RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS
+2B87 ; [*0D29.0020.0002] # DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS
+2B88 ; [*0D2A.0020.0002] # LEFTWARDS BLACK CIRCLED WHITE ARROW
+2B89 ; [*0D2B.0020.0002] # UPWARDS BLACK CIRCLED WHITE ARROW
+2B8A ; [*0D2C.0020.0002] # RIGHTWARDS BLACK CIRCLED WHITE ARROW
+2B8B ; [*0D2D.0020.0002] # DOWNWARDS BLACK CIRCLED WHITE ARROW
+2B8C ; [*0D2E.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW
+2B8D ; [*0D2F.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW
+2B8E ; [*0D30.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW
+2B8F ; [*0D31.0020.0002] # ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW
+2B90 ; [*0D32.0020.0002] # RETURN LEFT
+2B91 ; [*0D33.0020.0002] # RETURN RIGHT
+2B92 ; [*0D34.0020.0002] # NEWLINE LEFT
+2B93 ; [*0D35.0020.0002] # NEWLINE RIGHT
+2B94 ; [*0D36.0020.0002] # FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE
+2B95 ; [*0D37.0020.0002] # RIGHTWARDS BLACK ARROW
+2B98 ; [*0D38.0020.0002] # THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD
+2B99 ; [*0D39.0020.0002] # THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD
+2B9A ; [*0D3A.0020.0002] # THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD
+2B9B ; [*0D3B.0020.0002] # THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD
+2B9C ; [*0D3C.0020.0002] # BLACK LEFTWARDS EQUILATERAL ARROWHEAD
+2B9D ; [*0D3D.0020.0002] # BLACK UPWARDS EQUILATERAL ARROWHEAD
+2B9E ; [*0D3E.0020.0002] # BLACK RIGHTWARDS EQUILATERAL ARROWHEAD
+2B9F ; [*0D3F.0020.0002] # BLACK DOWNWARDS EQUILATERAL ARROWHEAD
+2BA0 ; [*0D40.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
+2BA1 ; [*0D41.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
+2BA2 ; [*0D42.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS
+2BA3 ; [*0D43.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS
+2BA4 ; [*0D44.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
+2BA5 ; [*0D45.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS
+2BA6 ; [*0D46.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
+2BA7 ; [*0D47.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS
+2BA8 ; [*0D48.0020.0002] # BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW
+2BA9 ; [*0D49.0020.0002] # BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
+2BAA ; [*0D4A.0020.0002] # BLACK CURVED UPWARDS AND LEFTWARDS ARROW
+2BAB ; [*0D4B.0020.0002] # BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
+2BAC ; [*0D4C.0020.0002] # BLACK CURVED LEFTWARDS AND UPWARDS ARROW
+2BAD ; [*0D4D.0020.0002] # BLACK CURVED RIGHTWARDS AND UPWARDS ARROW
+2BAE ; [*0D4E.0020.0002] # BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW
+2BAF ; [*0D4F.0020.0002] # BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW
+2BB0 ; [*0D50.0020.0002] # RIBBON ARROW DOWN LEFT
+2BB1 ; [*0D51.0020.0002] # RIBBON ARROW DOWN RIGHT
+2BB2 ; [*0D52.0020.0002] # RIBBON ARROW UP LEFT
+2BB3 ; [*0D53.0020.0002] # RIBBON ARROW UP RIGHT
+2BB4 ; [*0D54.0020.0002] # RIBBON ARROW LEFT UP
+2BB5 ; [*0D55.0020.0002] # RIBBON ARROW RIGHT UP
+2BB6 ; [*0D56.0020.0002] # RIBBON ARROW LEFT DOWN
+2BB7 ; [*0D57.0020.0002] # RIBBON ARROW RIGHT DOWN
+2BB8 ; [*0D58.0020.0002] # UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR
+2BB9 ; [*0D59.0020.0002] # UP ARROWHEAD IN A RECTANGLE BOX
+2BBD ; [*0D5A.0020.0002] # BALLOT BOX WITH LIGHT X
+2BBE ; [*0D5B.0020.0002] # CIRCLED X
+2BBF ; [*0D5C.0020.0002] # CIRCLED BOLD X
+2BC0 ; [*0D5D.0020.0002] # BLACK SQUARE CENTRED
+2BC1 ; [*0D5E.0020.0002] # BLACK DIAMOND CENTRED
+2BC2 ; [*0D5F.0020.0002] # TURNED BLACK PENTAGON
+2BC3 ; [*0D60.0020.0002] # HORIZONTAL BLACK OCTAGON
+2BC4 ; [*0D61.0020.0002] # BLACK OCTAGON
+2BC5 ; [*0D62.0020.0002] # BLACK MEDIUM UP-POINTING TRIANGLE CENTRED
+2BC6 ; [*0D63.0020.0002] # BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED
+2BC7 ; [*0D64.0020.0002] # BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED
+2BC8 ; [*0D65.0020.0002] # BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BCA ; [*0D66.0020.0002] # TOP HALF BLACK CIRCLE
+2BCB ; [*0D67.0020.0002] # BOTTOM HALF BLACK CIRCLE
+2BCC ; [*0D68.0020.0002] # LIGHT FOUR POINTED BLACK CUSP
+2BCD ; [*0D69.0020.0002] # ROTATED LIGHT FOUR POINTED BLACK CUSP
+2BCE ; [*0D6A.0020.0002] # WHITE FOUR POINTED CUSP
+2BCF ; [*0D6B.0020.0002] # ROTATED WHITE FOUR POINTED CUSP
+2BD0 ; [*0D6C.0020.0002] # SQUARE POSITION INDICATOR
+2BD1 ; [*0D6D.0020.0002] # UNCERTAINTY SIGN
+2BEC ; [*0D6E.0020.0002] # LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2BED ; [*0D6F.0020.0002] # UPWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2BEE ; [*0D70.0020.0002] # RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2BEF ; [*0D71.0020.0002] # DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2CE5 ; [*0D72.0020.0002] # COPTIC SYMBOL MI RO
+2CE6 ; [*0D73.0020.0002] # COPTIC SYMBOL PI RO
+2CE7 ; [*0D74.0020.0002] # COPTIC SYMBOL STAUROS
+2CE8 ; [*0D75.0020.0002] # COPTIC SYMBOL TAU RO
+2CE9 ; [*0D76.0020.0002] # COPTIC SYMBOL KHI RO
+2CEA ; [*0D77.0020.0002] # COPTIC SYMBOL SHIMA SIMA
2CF9 ; [*027E.0020.0002] # COPTIC OLD NUBIAN FULL STOP
2CFA ; [*026C.0020.0002] # COPTIC OLD NUBIAN DIRECT QUESTION MARK
2CFB ; [*026D.0020.0002] # COPTIC OLD NUBIAN INDIRECT QUESTION MARK
-2CFC ; [*02E9.0020.0002] # COPTIC OLD NUBIAN VERSE DIVIDER
-2CFD ; [*17F3.0020.0002] # COPTIC FRACTION ONE HALF
+2CFC ; [*02EF.0020.0002] # COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD ; [*1A68.0020.0002] # COPTIC FRACTION ONE HALF
2CFE ; [*027F.0020.0002] # COPTIC FULL STOP
-2CFF ; [*02EA.0020.0002] # COPTIC MORPHOLOGICAL DIVIDER
-2D70 ; [*0409.0020.0002] # TIFINAGH SEPARATOR MARK
+2CFF ; [*02F0.0020.0002] # COPTIC MORPHOLOGICAL DIVIDER
+2D70 ; [*0410.0020.0002] # TIFINAGH SEPARATOR MARK
2D7F ; [.0000.0000.0000] # TIFINAGH CONSONANT JOINER
-2E00 ; [*03A9.0020.0002] # RIGHT ANGLE SUBSTITUTION MARKER
-2E01 ; [*03AA.0020.0002] # RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02 ; [*034E.0020.0002] # LEFT SUBSTITUTION BRACKET
-2E03 ; [*034F.0020.0002] # RIGHT SUBSTITUTION BRACKET
-2E04 ; [*0350.0020.0002] # LEFT DOTTED SUBSTITUTION BRACKET
-2E05 ; [*0351.0020.0002] # RIGHT DOTTED SUBSTITUTION BRACKET
-2E06 ; [*03AB.0020.0002] # RAISED INTERPOLATION MARKER
-2E07 ; [*03AC.0020.0002] # RAISED DOTTED INTERPOLATION MARKER
-2E08 ; [*03AD.0020.0002] # DOTTED TRANSPOSITION MARKER
-2E09 ; [*0352.0020.0002] # LEFT TRANSPOSITION BRACKET
-2E0A ; [*0353.0020.0002] # RIGHT TRANSPOSITION BRACKET
-2E0B ; [*03AE.0020.0002] # RAISED SQUARE
-2E0C ; [*0354.0020.0002] # LEFT RAISED OMISSION BRACKET
-2E0D ; [*0355.0020.0002] # RIGHT RAISED OMISSION BRACKET
-2E0E ; [*03AF.0020.0002] # EDITORIAL CORONIS
-2E0F ; [*03B0.0020.0002] # PARAGRAPHOS
-2E10 ; [*03B1.0020.0002] # FORKED PARAGRAPHOS
-2E11 ; [*03B2.0020.0002] # REVERSED FORKED PARAGRAPHOS
-2E12 ; [*03B3.0020.0002] # HYPODIASTOLE
-2E13 ; [*03B4.0020.0002] # DOTTED OBELOS
-2E14 ; [*03B5.0020.0002] # DOWNWARDS ANCORA
-2E15 ; [*03B6.0020.0002] # UPWARDS ANCORA
-2E16 ; [*03B7.0020.0002] # DOTTED RIGHT-POINTING ANGLE
+2E00 ; [*03AF.0020.0002] # RIGHT ANGLE SUBSTITUTION MARKER
+2E01 ; [*03B0.0020.0002] # RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02 ; [*0354.0020.0002] # LEFT SUBSTITUTION BRACKET
+2E03 ; [*0355.0020.0002] # RIGHT SUBSTITUTION BRACKET
+2E04 ; [*0356.0020.0002] # LEFT DOTTED SUBSTITUTION BRACKET
+2E05 ; [*0357.0020.0002] # RIGHT DOTTED SUBSTITUTION BRACKET
+2E06 ; [*03B1.0020.0002] # RAISED INTERPOLATION MARKER
+2E07 ; [*03B2.0020.0002] # RAISED DOTTED INTERPOLATION MARKER
+2E08 ; [*03B3.0020.0002] # DOTTED TRANSPOSITION MARKER
+2E09 ; [*0358.0020.0002] # LEFT TRANSPOSITION BRACKET
+2E0A ; [*0359.0020.0002] # RIGHT TRANSPOSITION BRACKET
+2E0B ; [*03B4.0020.0002] # RAISED SQUARE
+2E0C ; [*035A.0020.0002] # LEFT RAISED OMISSION BRACKET
+2E0D ; [*035B.0020.0002] # RIGHT RAISED OMISSION BRACKET
+2E0E ; [*03B5.0020.0002] # EDITORIAL CORONIS
+2E0F ; [*03B6.0020.0002] # PARAGRAPHOS
+2E10 ; [*03B7.0020.0002] # FORKED PARAGRAPHOS
+2E11 ; [*03B8.0020.0002] # REVERSED FORKED PARAGRAPHOS
+2E12 ; [*03B9.0020.0002] # HYPODIASTOLE
+2E13 ; [*03BA.0020.0002] # DOTTED OBELOS
+2E14 ; [*03BB.0020.0002] # DOWNWARDS ANCORA
+2E15 ; [*03BC.0020.0002] # UPWARDS ANCORA
+2E16 ; [*03BD.0020.0002] # DOTTED RIGHT-POINTING ANGLE
2E17 ; [*021B.0020.0002] # DOUBLE OBLIQUE HYPHEN
2E18 ; [*0273.0020.0002] # INVERTED INTERROBANG
-2E19 ; [*02EB.0020.0002] # PALM BRANCH
-2E1A ; [*03B8.0020.0002] # HYPHEN WITH DIAERESIS
-2E1B ; [*03B9.0020.0002] # TILDE WITH RING ABOVE
-2E1C ; [*0356.0020.0002] # LEFT LOW PARAPHRASE BRACKET
-2E1D ; [*0357.0020.0002] # RIGHT LOW PARAPHRASE BRACKET
-2E1E ; [*03BA.0020.0002] # TILDE WITH DOT ABOVE
-2E1F ; [*03BB.0020.0002] # TILDE WITH DOT BELOW
-2E20 ; [*0358.0020.0002] # LEFT VERTICAL BAR WITH QUILL
-2E21 ; [*0359.0020.0002] # RIGHT VERTICAL BAR WITH QUILL
-2E22 ; [*035A.0020.0002] # TOP LEFT HALF BRACKET
-2E23 ; [*035B.0020.0002] # TOP RIGHT HALF BRACKET
-2E24 ; [*035C.0020.0002] # BOTTOM LEFT HALF BRACKET
-2E25 ; [*035D.0020.0002] # BOTTOM RIGHT HALF BRACKET
-2E26 ; [*035E.0020.0002] # LEFT SIDEWAYS U BRACKET
-2E27 ; [*035F.0020.0002] # RIGHT SIDEWAYS U BRACKET
-2E28 ; [*0360.0020.0002] # LEFT DOUBLE PARENTHESIS
-2E29 ; [*0361.0020.0002] # RIGHT DOUBLE PARENTHESIS
-2E2A ; [*02E4.0020.0002] # TWO DOTS OVER ONE DOT PUNCTUATION
-2E2B ; [*02E5.0020.0002] # ONE DOT OVER TWO DOTS PUNCTUATION
-2E2C ; [*02E6.0020.0002] # SQUARED FOUR DOT PUNCTUATION
-2E2D ; [*02E7.0020.0002] # FIVE DOT MARK
+2E19 ; [*02F1.0020.0002] # PALM BRANCH
+2E1A ; [*03BE.0020.0002] # HYPHEN WITH DIAERESIS
+2E1B ; [*03BF.0020.0002] # TILDE WITH RING ABOVE
+2E1C ; [*035C.0020.0002] # LEFT LOW PARAPHRASE BRACKET
+2E1D ; [*035D.0020.0002] # RIGHT LOW PARAPHRASE BRACKET
+2E1E ; [*03C0.0020.0002] # TILDE WITH DOT ABOVE
+2E1F ; [*03C1.0020.0002] # TILDE WITH DOT BELOW
+2E20 ; [*035E.0020.0002] # LEFT VERTICAL BAR WITH QUILL
+2E21 ; [*035F.0020.0002] # RIGHT VERTICAL BAR WITH QUILL
+2E22 ; [*0360.0020.0002] # TOP LEFT HALF BRACKET
+2E23 ; [*0361.0020.0002] # TOP RIGHT HALF BRACKET
+2E24 ; [*0362.0020.0002] # BOTTOM LEFT HALF BRACKET
+2E25 ; [*0363.0020.0002] # BOTTOM RIGHT HALF BRACKET
+2E26 ; [*0364.0020.0002] # LEFT SIDEWAYS U BRACKET
+2E27 ; [*0365.0020.0002] # RIGHT SIDEWAYS U BRACKET
+2E28 ; [*0366.0020.0002] # LEFT DOUBLE PARENTHESIS
+2E29 ; [*0367.0020.0002] # RIGHT DOUBLE PARENTHESIS
+2E2A ; [*02EA.0020.0002] # TWO DOTS OVER ONE DOT PUNCTUATION
+2E2B ; [*02EB.0020.0002] # ONE DOT OVER TWO DOTS PUNCTUATION
+2E2C ; [*02EC.0020.0002] # SQUARED FOUR DOT PUNCTUATION
+2E2D ; [*02ED.0020.0002] # FIVE DOT MARK
2E2E ; [*0266.0020.0002] # REVERSED QUESTION MARK
2E30 ; [*0280.0020.0002] # RING POINT
2E31 ; [*0289.0020.0002] # WORD SEPARATOR MIDDLE DOT
@@ -3662,229 +3668,229 @@ E01EF ; [.0000.0000.0000] # VARIATION SELECTOR-256
2E33 ; [*028A.0020.0002] # RAISED DOT
2E34 ; [*0222.0020.0002] # RAISED COMMA
2E35 ; [*0236.0020.0002] # TURNED SEMICOLON
-2E36 ; [*0394.0020.0002] # DAGGER WITH LEFT GUARD
-2E37 ; [*0395.0020.0002] # DAGGER WITH RIGHT GUARD
-2E38 ; [*0396.0020.0002] # TURNED DAGGER
-2E39 ; [*037D.0020.0002] # TOP HALF SECTION SIGN
+2E36 ; [*039A.0020.0002] # DAGGER WITH LEFT GUARD
+2E37 ; [*039B.0020.0002] # DAGGER WITH RIGHT GUARD
+2E38 ; [*039C.0020.0002] # TURNED DAGGER
+2E39 ; [*0383.0020.0002] # TOP HALF SECTION SIGN
2E3A ; [*0218.0020.0002] # TWO-EM DASH
2E3B ; [*0219.0020.0002] # THREE-EM DASH
2E3C ; [*0281.0020.0002] # STENOGRAPHIC FULL STOP
-2E3D ; [*02E8.0020.0002] # VERTICAL SIX DOTS
-2E3E ; [*0377.0020.0002] # WIGGLY VERTICAL LINE
-2E3F ; [*0380.0020.0002] # CAPITULUM
+2E3D ; [*02EE.0020.0002] # VERTICAL SIX DOTS
+2E3E ; [*037D.0020.0002] # WIGGLY VERTICAL LINE
+2E3F ; [*0386.0020.0002] # CAPITULUM
2E40 ; [*021C.0020.0002] # DOUBLE HYPHEN
2E41 ; [*0224.0020.0002] # REVERSED COMMA
-2E42 ; [*0304.0020.0002] # DOUBLE LOW-REVERSED-9 QUOTATION MARK
-2FF0 ; [*1776.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
-2FF1 ; [*1777.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
-2FF2 ; [*1778.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
-2FF3 ; [*1779.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
-2FF4 ; [*177A.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
-2FF5 ; [*177B.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
-2FF6 ; [*177C.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
-2FF7 ; [*177D.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
-2FF8 ; [*177E.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
-2FF9 ; [*177F.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
-2FFA ; [*1780.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
-2FFB ; [*1781.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2E42 ; [*030A.0020.0002] # DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2FF0 ; [*19EB.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
+2FF1 ; [*19EC.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
+2FF2 ; [*19ED.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
+2FF3 ; [*19EE.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
+2FF4 ; [*19EF.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
+2FF5 ; [*19F0.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
+2FF6 ; [*19F1.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
+2FF7 ; [*19F2.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
+2FF8 ; [*19F3.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
+2FF9 ; [*19F4.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
+2FFA ; [*19F5.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
+2FFB ; [*19F6.0020.0002] # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
3000 ; [*0209.0020.0003] # IDEOGRAPHIC SPACE
3001 ; [*0230.0020.0002] # IDEOGRAPHIC COMMA
3002 ; [*0287.0020.0002] # IDEOGRAPHIC FULL STOP
-3003 ; [*039F.0020.0002] # DITTO MARK
-3004 ; [*17A6.0020.0002] # JAPANESE INDUSTRIAL STANDARD SYMBOL
-3008 ; [*0362.0020.0002] # LEFT ANGLE BRACKET
-3009 ; [*0363.0020.0002] # RIGHT ANGLE BRACKET
-300A ; [*0364.0020.0002] # LEFT DOUBLE ANGLE BRACKET
-300B ; [*0365.0020.0002] # RIGHT DOUBLE ANGLE BRACKET
-300C ; [*0366.0020.0002] # LEFT CORNER BRACKET
-300D ; [*0367.0020.0002] # RIGHT CORNER BRACKET
-300E ; [*0368.0020.0002] # LEFT WHITE CORNER BRACKET
-300F ; [*0369.0020.0002] # RIGHT WHITE CORNER BRACKET
-3010 ; [*036A.0020.0002] # LEFT BLACK LENTICULAR BRACKET
-3011 ; [*036B.0020.0002] # RIGHT BLACK LENTICULAR BRACKET
-3012 ; [*17A7.0020.0002] # POSTAL MARK
-3013 ; [*17A8.0020.0002] # GETA MARK
-3014 ; [*036C.0020.0002] # LEFT TORTOISE SHELL BRACKET
-3015 ; [*036D.0020.0002] # RIGHT TORTOISE SHELL BRACKET
-3016 ; [*036E.0020.0002] # LEFT WHITE LENTICULAR BRACKET
-3017 ; [*036F.0020.0002] # RIGHT WHITE LENTICULAR BRACKET
-3018 ; [*0370.0020.0002] # LEFT WHITE TORTOISE SHELL BRACKET
-3019 ; [*0371.0020.0002] # RIGHT WHITE TORTOISE SHELL BRACKET
-301A ; [*0372.0020.0002] # LEFT WHITE SQUARE BRACKET
-301B ; [*0373.0020.0002] # RIGHT WHITE SQUARE BRACKET
+3003 ; [*03A5.0020.0002] # DITTO MARK
+3004 ; [*1A1B.0020.0002] # JAPANESE INDUSTRIAL STANDARD SYMBOL
+3008 ; [*0368.0020.0002] # LEFT ANGLE BRACKET
+3009 ; [*0369.0020.0002] # RIGHT ANGLE BRACKET
+300A ; [*036A.0020.0002] # LEFT DOUBLE ANGLE BRACKET
+300B ; [*036B.0020.0002] # RIGHT DOUBLE ANGLE BRACKET
+300C ; [*036C.0020.0002] # LEFT CORNER BRACKET
+300D ; [*036D.0020.0002] # RIGHT CORNER BRACKET
+300E ; [*036E.0020.0002] # LEFT WHITE CORNER BRACKET
+300F ; [*036F.0020.0002] # RIGHT WHITE CORNER BRACKET
+3010 ; [*0370.0020.0002] # LEFT BLACK LENTICULAR BRACKET
+3011 ; [*0371.0020.0002] # RIGHT BLACK LENTICULAR BRACKET
+3012 ; [*1A1C.0020.0002] # POSTAL MARK
+3013 ; [*1A1D.0020.0002] # GETA MARK
+3014 ; [*0372.0020.0002] # LEFT TORTOISE SHELL BRACKET
+3015 ; [*0373.0020.0002] # RIGHT TORTOISE SHELL BRACKET
+3016 ; [*0374.0020.0002] # LEFT WHITE LENTICULAR BRACKET
+3017 ; [*0375.0020.0002] # RIGHT WHITE LENTICULAR BRACKET
+3018 ; [*0376.0020.0002] # LEFT WHITE TORTOISE SHELL BRACKET
+3019 ; [*0377.0020.0002] # RIGHT WHITE TORTOISE SHELL BRACKET
+301A ; [*0378.0020.0002] # LEFT WHITE SQUARE BRACKET
+301B ; [*0379.0020.0002] # RIGHT WHITE SQUARE BRACKET
301C ; [*021D.0020.0002] # WAVE DASH
-301D ; [*0305.0020.0002] # REVERSED DOUBLE PRIME QUOTATION MARK
-301E ; [*0306.0020.0002] # DOUBLE PRIME QUOTATION MARK
-301F ; [*0307.0020.0002] # LOW DOUBLE PRIME QUOTATION MARK
-3020 ; [*17A9.0020.0002] # POSTAL MARK FACE
+301D ; [*030B.0020.0002] # REVERSED DOUBLE PRIME QUOTATION MARK
+301E ; [*030C.0020.0002] # DOUBLE PRIME QUOTATION MARK
+301F ; [*030D.0020.0002] # LOW DOUBLE PRIME QUOTATION MARK
+3020 ; [*1A1E.0020.0002] # POSTAL MARK FACE
3030 ; [*021E.0020.0002] # WAVY DASH
-3036 ; [*17A7.0020.0004] # CIRCLED POSTAL MARK
-3037 ; [*17AA.0020.0002] # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-303D ; [*03A0.0020.0002] # PART ALTERNATION MARK
-303E ; [*17AB.0020.0002] # IDEOGRAPHIC VARIATION INDICATOR
-303F ; [*17AC.0020.0002] # IDEOGRAPHIC HALF FILL SPACE
-309B ; [*0455.0020.0002] # KATAKANA-HIRAGANA VOICED SOUND MARK
-309C ; [*0456.0020.0002] # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+3036 ; [*1A1C.0020.0004] # CIRCLED POSTAL MARK
+3037 ; [*1A1F.0020.0002] # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+303D ; [*03A6.0020.0002] # PART ALTERNATION MARK
+303E ; [*1A20.0020.0002] # IDEOGRAPHIC VARIATION INDICATOR
+303F ; [*1A21.0020.0002] # IDEOGRAPHIC HALF FILL SPACE
+309B ; [*0472.0020.0002] # KATAKANA-HIRAGANA VOICED SOUND MARK
+309C ; [*0473.0020.0002] # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
30A0 ; [*021F.0020.0002] # KATAKANA-HIRAGANA DOUBLE HYPHEN
30FB ; [*0220.0020.0002] # KATAKANA MIDDLE DOT
-3190 ; [*17AD.0020.0002] # IDEOGRAPHIC ANNOTATION LINKING MARK
-3191 ; [*17AE.0020.0002] # IDEOGRAPHIC ANNOTATION REVERSE MARK
-31C0 ; [*1782.0020.0002] # CJK STROKE T
-31C1 ; [*1783.0020.0002] # CJK STROKE WG
-31C2 ; [*1784.0020.0002] # CJK STROKE XG
-31C3 ; [*1785.0020.0002] # CJK STROKE BXG
-31C4 ; [*1786.0020.0002] # CJK STROKE SW
-31C5 ; [*1787.0020.0002] # CJK STROKE HZZ
-31C6 ; [*1788.0020.0002] # CJK STROKE HZG
-31C7 ; [*1789.0020.0002] # CJK STROKE HP
-31C8 ; [*178A.0020.0002] # CJK STROKE HZWG
-31C9 ; [*178B.0020.0002] # CJK STROKE SZWG
-31CA ; [*178C.0020.0002] # CJK STROKE HZT
-31CB ; [*178D.0020.0002] # CJK STROKE HZZP
-31CC ; [*178E.0020.0002] # CJK STROKE HPWG
-31CD ; [*178F.0020.0002] # CJK STROKE HZW
-31CE ; [*1790.0020.0002] # CJK STROKE HZZZ
-31CF ; [*1791.0020.0002] # CJK STROKE N
-31D0 ; [*1792.0020.0002] # CJK STROKE H
-31D1 ; [*1793.0020.0002] # CJK STROKE S
-31D2 ; [*1794.0020.0002] # CJK STROKE P
-31D3 ; [*1795.0020.0002] # CJK STROKE SP
-31D4 ; [*1796.0020.0002] # CJK STROKE D
-31D5 ; [*1797.0020.0002] # CJK STROKE HZ
-31D6 ; [*1798.0020.0002] # CJK STROKE HG
-31D7 ; [*1799.0020.0002] # CJK STROKE SZ
-31D8 ; [*179A.0020.0002] # CJK STROKE SWZ
-31D9 ; [*179B.0020.0002] # CJK STROKE ST
-31DA ; [*179C.0020.0002] # CJK STROKE SG
-31DB ; [*179D.0020.0002] # CJK STROKE PD
-31DC ; [*179E.0020.0002] # CJK STROKE PZ
-31DD ; [*179F.0020.0002] # CJK STROKE TN
-31DE ; [*17A0.0020.0002] # CJK STROKE SZZ
-31DF ; [*17A1.0020.0002] # CJK STROKE SWG
-31E0 ; [*17A2.0020.0002] # CJK STROKE HXWG
-31E1 ; [*17A3.0020.0002] # CJK STROKE HZZZG
-31E2 ; [*17A4.0020.0002] # CJK STROKE PG
-31E3 ; [*17A5.0020.0002] # CJK STROKE Q
-327F ; [*17AF.0020.0002] # KOREAN STANDARD SYMBOL
-4DC0 ; [*0E62.0020.0002] # HEXAGRAM FOR THE CREATIVE HEAVEN
-4DC1 ; [*0E63.0020.0002] # HEXAGRAM FOR THE RECEPTIVE EARTH
-4DC2 ; [*0E64.0020.0002] # HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
-4DC3 ; [*0E65.0020.0002] # HEXAGRAM FOR YOUTHFUL FOLLY
-4DC4 ; [*0E66.0020.0002] # HEXAGRAM FOR WAITING
-4DC5 ; [*0E67.0020.0002] # HEXAGRAM FOR CONFLICT
-4DC6 ; [*0E68.0020.0002] # HEXAGRAM FOR THE ARMY
-4DC7 ; [*0E69.0020.0002] # HEXAGRAM FOR HOLDING TOGETHER
-4DC8 ; [*0E6A.0020.0002] # HEXAGRAM FOR SMALL TAMING
-4DC9 ; [*0E6B.0020.0002] # HEXAGRAM FOR TREADING
-4DCA ; [*0E6C.0020.0002] # HEXAGRAM FOR PEACE
-4DCB ; [*0E6D.0020.0002] # HEXAGRAM FOR STANDSTILL
-4DCC ; [*0E6E.0020.0002] # HEXAGRAM FOR FELLOWSHIP
-4DCD ; [*0E6F.0020.0002] # HEXAGRAM FOR GREAT POSSESSION
-4DCE ; [*0E70.0020.0002] # HEXAGRAM FOR MODESTY
-4DCF ; [*0E71.0020.0002] # HEXAGRAM FOR ENTHUSIASM
-4DD0 ; [*0E72.0020.0002] # HEXAGRAM FOR FOLLOWING
-4DD1 ; [*0E73.0020.0002] # HEXAGRAM FOR WORK ON THE DECAYED
-4DD2 ; [*0E74.0020.0002] # HEXAGRAM FOR APPROACH
-4DD3 ; [*0E75.0020.0002] # HEXAGRAM FOR CONTEMPLATION
-4DD4 ; [*0E76.0020.0002] # HEXAGRAM FOR BITING THROUGH
-4DD5 ; [*0E77.0020.0002] # HEXAGRAM FOR GRACE
-4DD6 ; [*0E78.0020.0002] # HEXAGRAM FOR SPLITTING APART
-4DD7 ; [*0E79.0020.0002] # HEXAGRAM FOR RETURN
-4DD8 ; [*0E7A.0020.0002] # HEXAGRAM FOR INNOCENCE
-4DD9 ; [*0E7B.0020.0002] # HEXAGRAM FOR GREAT TAMING
-4DDA ; [*0E7C.0020.0002] # HEXAGRAM FOR MOUTH CORNERS
-4DDB ; [*0E7D.0020.0002] # HEXAGRAM FOR GREAT PREPONDERANCE
-4DDC ; [*0E7E.0020.0002] # HEXAGRAM FOR THE ABYSMAL WATER
-4DDD ; [*0E7F.0020.0002] # HEXAGRAM FOR THE CLINGING FIRE
-4DDE ; [*0E80.0020.0002] # HEXAGRAM FOR INFLUENCE
-4DDF ; [*0E81.0020.0002] # HEXAGRAM FOR DURATION
-4DE0 ; [*0E82.0020.0002] # HEXAGRAM FOR RETREAT
-4DE1 ; [*0E83.0020.0002] # HEXAGRAM FOR GREAT POWER
-4DE2 ; [*0E84.0020.0002] # HEXAGRAM FOR PROGRESS
-4DE3 ; [*0E85.0020.0002] # HEXAGRAM FOR DARKENING OF THE LIGHT
-4DE4 ; [*0E86.0020.0002] # HEXAGRAM FOR THE FAMILY
-4DE5 ; [*0E87.0020.0002] # HEXAGRAM FOR OPPOSITION
-4DE6 ; [*0E88.0020.0002] # HEXAGRAM FOR OBSTRUCTION
-4DE7 ; [*0E89.0020.0002] # HEXAGRAM FOR DELIVERANCE
-4DE8 ; [*0E8A.0020.0002] # HEXAGRAM FOR DECREASE
-4DE9 ; [*0E8B.0020.0002] # HEXAGRAM FOR INCREASE
-4DEA ; [*0E8C.0020.0002] # HEXAGRAM FOR BREAKTHROUGH
-4DEB ; [*0E8D.0020.0002] # HEXAGRAM FOR COMING TO MEET
-4DEC ; [*0E8E.0020.0002] # HEXAGRAM FOR GATHERING TOGETHER
-4DED ; [*0E8F.0020.0002] # HEXAGRAM FOR PUSHING UPWARD
-4DEE ; [*0E90.0020.0002] # HEXAGRAM FOR OPPRESSION
-4DEF ; [*0E91.0020.0002] # HEXAGRAM FOR THE WELL
-4DF0 ; [*0E92.0020.0002] # HEXAGRAM FOR REVOLUTION
-4DF1 ; [*0E93.0020.0002] # HEXAGRAM FOR THE CAULDRON
-4DF2 ; [*0E94.0020.0002] # HEXAGRAM FOR THE AROUSING THUNDER
-4DF3 ; [*0E95.0020.0002] # HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
-4DF4 ; [*0E96.0020.0002] # HEXAGRAM FOR DEVELOPMENT
-4DF5 ; [*0E97.0020.0002] # HEXAGRAM FOR THE MARRYING MAIDEN
-4DF6 ; [*0E98.0020.0002] # HEXAGRAM FOR ABUNDANCE
-4DF7 ; [*0E99.0020.0002] # HEXAGRAM FOR THE WANDERER
-4DF8 ; [*0E9A.0020.0002] # HEXAGRAM FOR THE GENTLE WIND
-4DF9 ; [*0E9B.0020.0002] # HEXAGRAM FOR THE JOYOUS LAKE
-4DFA ; [*0E9C.0020.0002] # HEXAGRAM FOR DISPERSION
-4DFB ; [*0E9D.0020.0002] # HEXAGRAM FOR LIMITATION
-4DFC ; [*0E9E.0020.0002] # HEXAGRAM FOR INNER TRUTH
-4DFD ; [*0E9F.0020.0002] # HEXAGRAM FOR SMALL PREPONDERANCE
-4DFE ; [*0EA0.0020.0002] # HEXAGRAM FOR AFTER COMPLETION
-4DFF ; [*0EA1.0020.0002] # HEXAGRAM FOR BEFORE COMPLETION
-A490 ; [*0EF9.0020.0002] # YI RADICAL QOT
-A491 ; [*0EFA.0020.0002] # YI RADICAL LI
-A492 ; [*0EFB.0020.0002] # YI RADICAL KIT
-A493 ; [*0EFC.0020.0002] # YI RADICAL NYIP
-A494 ; [*0EFD.0020.0002] # YI RADICAL CYP
-A495 ; [*0EFE.0020.0002] # YI RADICAL SSI
-A496 ; [*0EFF.0020.0002] # YI RADICAL GGOP
-A497 ; [*0F00.0020.0002] # YI RADICAL GEP
-A498 ; [*0F01.0020.0002] # YI RADICAL MI
-A499 ; [*0F02.0020.0002] # YI RADICAL HXIT
-A49A ; [*0F03.0020.0002] # YI RADICAL LYR
-A49B ; [*0F04.0020.0002] # YI RADICAL BBUT
-A49C ; [*0F05.0020.0002] # YI RADICAL MOP
-A49D ; [*0F06.0020.0002] # YI RADICAL YO
-A49E ; [*0F07.0020.0002] # YI RADICAL PUT
-A49F ; [*0F08.0020.0002] # YI RADICAL HXUO
-A4A0 ; [*0F09.0020.0002] # YI RADICAL TAT
-A4A1 ; [*0F0A.0020.0002] # YI RADICAL GA
-A4A2 ; [*0F0B.0020.0002] # YI RADICAL ZUP
-A4A3 ; [*0F0C.0020.0002] # YI RADICAL CYT
-A4A4 ; [*0F0D.0020.0002] # YI RADICAL DDUR
-A4A5 ; [*0F0E.0020.0002] # YI RADICAL BUR
-A4A6 ; [*0F0F.0020.0002] # YI RADICAL GGUO
-A4A7 ; [*0F10.0020.0002] # YI RADICAL NYOP
-A4A8 ; [*0F11.0020.0002] # YI RADICAL TU
-A4A9 ; [*0F12.0020.0002] # YI RADICAL OP
-A4AA ; [*0F13.0020.0002] # YI RADICAL JJUT
-A4AB ; [*0F14.0020.0002] # YI RADICAL ZOT
-A4AC ; [*0F15.0020.0002] # YI RADICAL PYT
-A4AD ; [*0F16.0020.0002] # YI RADICAL HMO
-A4AE ; [*0F17.0020.0002] # YI RADICAL YIT
-A4AF ; [*0F18.0020.0002] # YI RADICAL VUR
-A4B0 ; [*0F19.0020.0002] # YI RADICAL SHY
-A4B1 ; [*0F1A.0020.0002] # YI RADICAL VEP
-A4B2 ; [*0F1B.0020.0002] # YI RADICAL ZA
-A4B3 ; [*0F1C.0020.0002] # YI RADICAL JO
-A4B4 ; [*0F1D.0020.0002] # YI RADICAL NZUP
-A4B5 ; [*0F1E.0020.0002] # YI RADICAL JJY
-A4B6 ; [*0F1F.0020.0002] # YI RADICAL GOT
-A4B7 ; [*0F20.0020.0002] # YI RADICAL JJIE
-A4B8 ; [*0F21.0020.0002] # YI RADICAL WO
-A4B9 ; [*0F22.0020.0002] # YI RADICAL DU
-A4BA ; [*0F23.0020.0002] # YI RADICAL SHUR
-A4BB ; [*0F24.0020.0002] # YI RADICAL LIE
-A4BC ; [*0F25.0020.0002] # YI RADICAL CY
-A4BD ; [*0F26.0020.0002] # YI RADICAL CUOP
-A4BE ; [*0F27.0020.0002] # YI RADICAL CIP
-A4BF ; [*0F28.0020.0002] # YI RADICAL HXOP
-A4C0 ; [*0F29.0020.0002] # YI RADICAL SHAT
-A4C1 ; [*0F2A.0020.0002] # YI RADICAL ZUR
-A4C2 ; [*0F2B.0020.0002] # YI RADICAL SHOP
-A4C3 ; [*0F2C.0020.0002] # YI RADICAL CHE
-A4C4 ; [*0F2D.0020.0002] # YI RADICAL ZZIET
-A4C5 ; [*0F2E.0020.0002] # YI RADICAL NBIE
-A4C6 ; [*0F2F.0020.0002] # YI RADICAL KE
+3190 ; [*1A22.0020.0002] # IDEOGRAPHIC ANNOTATION LINKING MARK
+3191 ; [*1A23.0020.0002] # IDEOGRAPHIC ANNOTATION REVERSE MARK
+31C0 ; [*19F7.0020.0002] # CJK STROKE T
+31C1 ; [*19F8.0020.0002] # CJK STROKE WG
+31C2 ; [*19F9.0020.0002] # CJK STROKE XG
+31C3 ; [*19FA.0020.0002] # CJK STROKE BXG
+31C4 ; [*19FB.0020.0002] # CJK STROKE SW
+31C5 ; [*19FC.0020.0002] # CJK STROKE HZZ
+31C6 ; [*19FD.0020.0002] # CJK STROKE HZG
+31C7 ; [*19FE.0020.0002] # CJK STROKE HP
+31C8 ; [*19FF.0020.0002] # CJK STROKE HZWG
+31C9 ; [*1A00.0020.0002] # CJK STROKE SZWG
+31CA ; [*1A01.0020.0002] # CJK STROKE HZT
+31CB ; [*1A02.0020.0002] # CJK STROKE HZZP
+31CC ; [*1A03.0020.0002] # CJK STROKE HPWG
+31CD ; [*1A04.0020.0002] # CJK STROKE HZW
+31CE ; [*1A05.0020.0002] # CJK STROKE HZZZ
+31CF ; [*1A06.0020.0002] # CJK STROKE N
+31D0 ; [*1A07.0020.0002] # CJK STROKE H
+31D1 ; [*1A08.0020.0002] # CJK STROKE S
+31D2 ; [*1A09.0020.0002] # CJK STROKE P
+31D3 ; [*1A0A.0020.0002] # CJK STROKE SP
+31D4 ; [*1A0B.0020.0002] # CJK STROKE D
+31D5 ; [*1A0C.0020.0002] # CJK STROKE HZ
+31D6 ; [*1A0D.0020.0002] # CJK STROKE HG
+31D7 ; [*1A0E.0020.0002] # CJK STROKE SZ
+31D8 ; [*1A0F.0020.0002] # CJK STROKE SWZ
+31D9 ; [*1A10.0020.0002] # CJK STROKE ST
+31DA ; [*1A11.0020.0002] # CJK STROKE SG
+31DB ; [*1A12.0020.0002] # CJK STROKE PD
+31DC ; [*1A13.0020.0002] # CJK STROKE PZ
+31DD ; [*1A14.0020.0002] # CJK STROKE TN
+31DE ; [*1A15.0020.0002] # CJK STROKE SZZ
+31DF ; [*1A16.0020.0002] # CJK STROKE SWG
+31E0 ; [*1A17.0020.0002] # CJK STROKE HXWG
+31E1 ; [*1A18.0020.0002] # CJK STROKE HZZZG
+31E2 ; [*1A19.0020.0002] # CJK STROKE PG
+31E3 ; [*1A1A.0020.0002] # CJK STROKE Q
+327F ; [*1A24.0020.0002] # KOREAN STANDARD SYMBOL
+4DC0 ; [*0E86.0020.0002] # HEXAGRAM FOR THE CREATIVE HEAVEN
+4DC1 ; [*0E87.0020.0002] # HEXAGRAM FOR THE RECEPTIVE EARTH
+4DC2 ; [*0E88.0020.0002] # HEXAGRAM FOR DIFFICULTY AT THE BEGINNING
+4DC3 ; [*0E89.0020.0002] # HEXAGRAM FOR YOUTHFUL FOLLY
+4DC4 ; [*0E8A.0020.0002] # HEXAGRAM FOR WAITING
+4DC5 ; [*0E8B.0020.0002] # HEXAGRAM FOR CONFLICT
+4DC6 ; [*0E8C.0020.0002] # HEXAGRAM FOR THE ARMY
+4DC7 ; [*0E8D.0020.0002] # HEXAGRAM FOR HOLDING TOGETHER
+4DC8 ; [*0E8E.0020.0002] # HEXAGRAM FOR SMALL TAMING
+4DC9 ; [*0E8F.0020.0002] # HEXAGRAM FOR TREADING
+4DCA ; [*0E90.0020.0002] # HEXAGRAM FOR PEACE
+4DCB ; [*0E91.0020.0002] # HEXAGRAM FOR STANDSTILL
+4DCC ; [*0E92.0020.0002] # HEXAGRAM FOR FELLOWSHIP
+4DCD ; [*0E93.0020.0002] # HEXAGRAM FOR GREAT POSSESSION
+4DCE ; [*0E94.0020.0002] # HEXAGRAM FOR MODESTY
+4DCF ; [*0E95.0020.0002] # HEXAGRAM FOR ENTHUSIASM
+4DD0 ; [*0E96.0020.0002] # HEXAGRAM FOR FOLLOWING
+4DD1 ; [*0E97.0020.0002] # HEXAGRAM FOR WORK ON THE DECAYED
+4DD2 ; [*0E98.0020.0002] # HEXAGRAM FOR APPROACH
+4DD3 ; [*0E99.0020.0002] # HEXAGRAM FOR CONTEMPLATION
+4DD4 ; [*0E9A.0020.0002] # HEXAGRAM FOR BITING THROUGH
+4DD5 ; [*0E9B.0020.0002] # HEXAGRAM FOR GRACE
+4DD6 ; [*0E9C.0020.0002] # HEXAGRAM FOR SPLITTING APART
+4DD7 ; [*0E9D.0020.0002] # HEXAGRAM FOR RETURN
+4DD8 ; [*0E9E.0020.0002] # HEXAGRAM FOR INNOCENCE
+4DD9 ; [*0E9F.0020.0002] # HEXAGRAM FOR GREAT TAMING
+4DDA ; [*0EA0.0020.0002] # HEXAGRAM FOR MOUTH CORNERS
+4DDB ; [*0EA1.0020.0002] # HEXAGRAM FOR GREAT PREPONDERANCE
+4DDC ; [*0EA2.0020.0002] # HEXAGRAM FOR THE ABYSMAL WATER
+4DDD ; [*0EA3.0020.0002] # HEXAGRAM FOR THE CLINGING FIRE
+4DDE ; [*0EA4.0020.0002] # HEXAGRAM FOR INFLUENCE
+4DDF ; [*0EA5.0020.0002] # HEXAGRAM FOR DURATION
+4DE0 ; [*0EA6.0020.0002] # HEXAGRAM FOR RETREAT
+4DE1 ; [*0EA7.0020.0002] # HEXAGRAM FOR GREAT POWER
+4DE2 ; [*0EA8.0020.0002] # HEXAGRAM FOR PROGRESS
+4DE3 ; [*0EA9.0020.0002] # HEXAGRAM FOR DARKENING OF THE LIGHT
+4DE4 ; [*0EAA.0020.0002] # HEXAGRAM FOR THE FAMILY
+4DE5 ; [*0EAB.0020.0002] # HEXAGRAM FOR OPPOSITION
+4DE6 ; [*0EAC.0020.0002] # HEXAGRAM FOR OBSTRUCTION
+4DE7 ; [*0EAD.0020.0002] # HEXAGRAM FOR DELIVERANCE
+4DE8 ; [*0EAE.0020.0002] # HEXAGRAM FOR DECREASE
+4DE9 ; [*0EAF.0020.0002] # HEXAGRAM FOR INCREASE
+4DEA ; [*0EB0.0020.0002] # HEXAGRAM FOR BREAKTHROUGH
+4DEB ; [*0EB1.0020.0002] # HEXAGRAM FOR COMING TO MEET
+4DEC ; [*0EB2.0020.0002] # HEXAGRAM FOR GATHERING TOGETHER
+4DED ; [*0EB3.0020.0002] # HEXAGRAM FOR PUSHING UPWARD
+4DEE ; [*0EB4.0020.0002] # HEXAGRAM FOR OPPRESSION
+4DEF ; [*0EB5.0020.0002] # HEXAGRAM FOR THE WELL
+4DF0 ; [*0EB6.0020.0002] # HEXAGRAM FOR REVOLUTION
+4DF1 ; [*0EB7.0020.0002] # HEXAGRAM FOR THE CAULDRON
+4DF2 ; [*0EB8.0020.0002] # HEXAGRAM FOR THE AROUSING THUNDER
+4DF3 ; [*0EB9.0020.0002] # HEXAGRAM FOR THE KEEPING STILL MOUNTAIN
+4DF4 ; [*0EBA.0020.0002] # HEXAGRAM FOR DEVELOPMENT
+4DF5 ; [*0EBB.0020.0002] # HEXAGRAM FOR THE MARRYING MAIDEN
+4DF6 ; [*0EBC.0020.0002] # HEXAGRAM FOR ABUNDANCE
+4DF7 ; [*0EBD.0020.0002] # HEXAGRAM FOR THE WANDERER
+4DF8 ; [*0EBE.0020.0002] # HEXAGRAM FOR THE GENTLE WIND
+4DF9 ; [*0EBF.0020.0002] # HEXAGRAM FOR THE JOYOUS LAKE
+4DFA ; [*0EC0.0020.0002] # HEXAGRAM FOR DISPERSION
+4DFB ; [*0EC1.0020.0002] # HEXAGRAM FOR LIMITATION
+4DFC ; [*0EC2.0020.0002] # HEXAGRAM FOR INNER TRUTH
+4DFD ; [*0EC3.0020.0002] # HEXAGRAM FOR SMALL PREPONDERANCE
+4DFE ; [*0EC4.0020.0002] # HEXAGRAM FOR AFTER COMPLETION
+4DFF ; [*0EC5.0020.0002] # HEXAGRAM FOR BEFORE COMPLETION
+A490 ; [*0F1D.0020.0002] # YI RADICAL QOT
+A491 ; [*0F1E.0020.0002] # YI RADICAL LI
+A492 ; [*0F1F.0020.0002] # YI RADICAL KIT
+A493 ; [*0F20.0020.0002] # YI RADICAL NYIP
+A494 ; [*0F21.0020.0002] # YI RADICAL CYP
+A495 ; [*0F22.0020.0002] # YI RADICAL SSI
+A496 ; [*0F23.0020.0002] # YI RADICAL GGOP
+A497 ; [*0F24.0020.0002] # YI RADICAL GEP
+A498 ; [*0F25.0020.0002] # YI RADICAL MI
+A499 ; [*0F26.0020.0002] # YI RADICAL HXIT
+A49A ; [*0F27.0020.0002] # YI RADICAL LYR
+A49B ; [*0F28.0020.0002] # YI RADICAL BBUT
+A49C ; [*0F29.0020.0002] # YI RADICAL MOP
+A49D ; [*0F2A.0020.0002] # YI RADICAL YO
+A49E ; [*0F2B.0020.0002] # YI RADICAL PUT
+A49F ; [*0F2C.0020.0002] # YI RADICAL HXUO
+A4A0 ; [*0F2D.0020.0002] # YI RADICAL TAT
+A4A1 ; [*0F2E.0020.0002] # YI RADICAL GA
+A4A2 ; [*0F2F.0020.0002] # YI RADICAL ZUP
+A4A3 ; [*0F30.0020.0002] # YI RADICAL CYT
+A4A4 ; [*0F31.0020.0002] # YI RADICAL DDUR
+A4A5 ; [*0F32.0020.0002] # YI RADICAL BUR
+A4A6 ; [*0F33.0020.0002] # YI RADICAL GGUO
+A4A7 ; [*0F34.0020.0002] # YI RADICAL NYOP
+A4A8 ; [*0F35.0020.0002] # YI RADICAL TU
+A4A9 ; [*0F36.0020.0002] # YI RADICAL OP
+A4AA ; [*0F37.0020.0002] # YI RADICAL JJUT
+A4AB ; [*0F38.0020.0002] # YI RADICAL ZOT
+A4AC ; [*0F39.0020.0002] # YI RADICAL PYT
+A4AD ; [*0F3A.0020.0002] # YI RADICAL HMO
+A4AE ; [*0F3B.0020.0002] # YI RADICAL YIT
+A4AF ; [*0F3C.0020.0002] # YI RADICAL VUR
+A4B0 ; [*0F3D.0020.0002] # YI RADICAL SHY
+A4B1 ; [*0F3E.0020.0002] # YI RADICAL VEP
+A4B2 ; [*0F3F.0020.0002] # YI RADICAL ZA
+A4B3 ; [*0F40.0020.0002] # YI RADICAL JO
+A4B4 ; [*0F41.0020.0002] # YI RADICAL NZUP
+A4B5 ; [*0F42.0020.0002] # YI RADICAL JJY
+A4B6 ; [*0F43.0020.0002] # YI RADICAL GOT
+A4B7 ; [*0F44.0020.0002] # YI RADICAL JJIE
+A4B8 ; [*0F45.0020.0002] # YI RADICAL WO
+A4B9 ; [*0F46.0020.0002] # YI RADICAL DU
+A4BA ; [*0F47.0020.0002] # YI RADICAL SHUR
+A4BB ; [*0F48.0020.0002] # YI RADICAL LIE
+A4BC ; [*0F49.0020.0002] # YI RADICAL CY
+A4BD ; [*0F4A.0020.0002] # YI RADICAL CUOP
+A4BE ; [*0F4B.0020.0002] # YI RADICAL CIP
+A4BF ; [*0F4C.0020.0002] # YI RADICAL HXOP
+A4C0 ; [*0F4D.0020.0002] # YI RADICAL SHAT
+A4C1 ; [*0F4E.0020.0002] # YI RADICAL ZUR
+A4C2 ; [*0F4F.0020.0002] # YI RADICAL SHOP
+A4C3 ; [*0F50.0020.0002] # YI RADICAL CHE
+A4C4 ; [*0F51.0020.0002] # YI RADICAL ZZIET
+A4C5 ; [*0F52.0020.0002] # YI RADICAL NBIE
+A4C6 ; [*0F53.0020.0002] # YI RADICAL KE
A4FE ; [*022D.0020.0002] # LISU PUNCTUATION COMMA
A4FF ; [*0282.0020.0002] # LISU PUNCTUATION FULL STOP
A60D ; [*022E.0020.0002] # VAI COMMA
@@ -3893,66 +3899,66 @@ A60F ; [*026E.0020.0002] # VAI QUESTION MARK
A670 ; [.0000.0000.0000] # COMBINING CYRILLIC TEN MILLIONS SIGN
A671 ; [.0000.0000.0000] # COMBINING CYRILLIC HUNDRED MILLIONS SIGN
A672 ; [.0000.0000.0000] # COMBINING CYRILLIC THOUSAND MILLIONS SIGN
-A673 ; [*0386.0020.0002] # SLAVONIC ASTERISK
-A67E ; [*03BC.0020.0002] # CYRILLIC KAVYKA
-A6F2 ; [*02CE.0020.0002] # BAMUM NJAEMLI
+A673 ; [*038C.0020.0002] # SLAVONIC ASTERISK
+A67E ; [*03C2.0020.0002] # CYRILLIC KAVYKA
+A6F2 ; [*02D0.0020.0002] # BAMUM NJAEMLI
A6F3 ; [*0284.0020.0002] # BAMUM FULL STOP
A6F4 ; [*025E.0020.0002] # BAMUM COLON
A6F5 ; [*022F.0020.0002] # BAMUM COMMA
A6F6 ; [*0237.0020.0002] # BAMUM SEMICOLON
A6F7 ; [*026F.0020.0002] # BAMUM QUESTION MARK
-A700 ; [*0494.0020.0002] # MODIFIER LETTER CHINESE TONE YIN PING
-A701 ; [*0495.0020.0002] # MODIFIER LETTER CHINESE TONE YANG PING
-A702 ; [*0496.0020.0002] # MODIFIER LETTER CHINESE TONE YIN SHANG
-A703 ; [*0497.0020.0002] # MODIFIER LETTER CHINESE TONE YANG SHANG
-A704 ; [*0498.0020.0002] # MODIFIER LETTER CHINESE TONE YIN QU
-A705 ; [*0499.0020.0002] # MODIFIER LETTER CHINESE TONE YANG QU
-A706 ; [*049A.0020.0002] # MODIFIER LETTER CHINESE TONE YIN RU
-A707 ; [*049B.0020.0002] # MODIFIER LETTER CHINESE TONE YANG RU
-A708 ; [*049C.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
-A709 ; [*049D.0020.0002] # MODIFIER LETTER HIGH DOTTED TONE BAR
-A70A ; [*049E.0020.0002] # MODIFIER LETTER MID DOTTED TONE BAR
-A70B ; [*049F.0020.0002] # MODIFIER LETTER LOW DOTTED TONE BAR
-A70C ; [*04A0.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
-A70D ; [*04A1.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
-A70E ; [*04A2.0020.0002] # MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
-A70F ; [*04A3.0020.0002] # MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
-A710 ; [*04A4.0020.0002] # MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
-A711 ; [*04A5.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
-A712 ; [*04A6.0020.0002] # MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
-A713 ; [*04A7.0020.0002] # MODIFIER LETTER HIGH LEFT-STEM TONE BAR
-A714 ; [*04A8.0020.0002] # MODIFIER LETTER MID LEFT-STEM TONE BAR
-A715 ; [*04A9.0020.0002] # MODIFIER LETTER LOW LEFT-STEM TONE BAR
-A716 ; [*04AA.0020.0002] # MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-A717 ; [*04AB.0020.0002] # MODIFIER LETTER DOT VERTICAL BAR
-A718 ; [*04AC.0020.0002] # MODIFIER LETTER DOT SLASH
-A719 ; [*04AD.0020.0002] # MODIFIER LETTER DOT HORIZONTAL BAR
-A71A ; [*04AE.0020.0002] # MODIFIER LETTER LOWER RIGHT CORNER ANGLE
-A71B ; [*04AF.0020.0002] # MODIFIER LETTER RAISED UP ARROW
-A71C ; [*04B0.0020.0002] # MODIFIER LETTER RAISED DOWN ARROW
-A71D ; [*04B1.0020.0002] # MODIFIER LETTER RAISED EXCLAMATION MARK
-A71E ; [*04B2.0020.0002] # MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK
-A71F ; [*04B3.0020.0002] # MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
-A720 ; [*04B4.0020.0002] # MODIFIER LETTER STRESS AND HIGH TONE
-A721 ; [*04B5.0020.0002] # MODIFIER LETTER STRESS AND LOW TONE
-A788 ; [*04B6.0020.0002] # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
-A789 ; [*04B7.0020.0002] # MODIFIER LETTER COLON
-A78A ; [*04B8.0020.0002] # MODIFIER LETTER SHORT EQUALS SIGN
-A828 ; [*04E2.0020.0002] # SYLOTI NAGRI POETRY MARK-1
-A829 ; [*04E3.0020.0002] # SYLOTI NAGRI POETRY MARK-2
-A82A ; [*04E4.0020.0002] # SYLOTI NAGRI POETRY MARK-3
-A82B ; [*04E5.0020.0002] # SYLOTI NAGRI POETRY MARK-4
-A830 ; [*17BD.0020.0002] # NORTH INDIC FRACTION ONE QUARTER
-A831 ; [*17BE.0020.0002] # NORTH INDIC FRACTION ONE HALF
-A832 ; [*17BF.0020.0002] # NORTH INDIC FRACTION THREE QUARTERS
-A833 ; [*17C0.0020.0002] # NORTH INDIC FRACTION ONE SIXTEENTH
-A834 ; [*17C1.0020.0002] # NORTH INDIC FRACTION ONE EIGHTH
-A835 ; [*17C2.0020.0002] # NORTH INDIC FRACTION THREE SIXTEENTHS
-A836 ; [*04E6.0020.0002] # NORTH INDIC QUARTER MARK
-A837 ; [*04E7.0020.0002] # NORTH INDIC PLACEHOLDER MARK
-A839 ; [*04E8.0020.0002] # NORTH INDIC QUANTITY MARK
-A874 ; [*040A.0020.0002] # PHAGS-PA SINGLE HEAD MARK
-A875 ; [*040B.0020.0002] # PHAGS-PA DOUBLE HEAD MARK
+A700 ; [*04B1.0020.0002] # MODIFIER LETTER CHINESE TONE YIN PING
+A701 ; [*04B2.0020.0002] # MODIFIER LETTER CHINESE TONE YANG PING
+A702 ; [*04B3.0020.0002] # MODIFIER LETTER CHINESE TONE YIN SHANG
+A703 ; [*04B4.0020.0002] # MODIFIER LETTER CHINESE TONE YANG SHANG
+A704 ; [*04B5.0020.0002] # MODIFIER LETTER CHINESE TONE YIN QU
+A705 ; [*04B6.0020.0002] # MODIFIER LETTER CHINESE TONE YANG QU
+A706 ; [*04B7.0020.0002] # MODIFIER LETTER CHINESE TONE YIN RU
+A707 ; [*04B8.0020.0002] # MODIFIER LETTER CHINESE TONE YANG RU
+A708 ; [*04B9.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR
+A709 ; [*04BA.0020.0002] # MODIFIER LETTER HIGH DOTTED TONE BAR
+A70A ; [*04BB.0020.0002] # MODIFIER LETTER MID DOTTED TONE BAR
+A70B ; [*04BC.0020.0002] # MODIFIER LETTER LOW DOTTED TONE BAR
+A70C ; [*04BD.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR
+A70D ; [*04BE.0020.0002] # MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR
+A70E ; [*04BF.0020.0002] # MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR
+A70F ; [*04C0.0020.0002] # MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR
+A710 ; [*04C1.0020.0002] # MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR
+A711 ; [*04C2.0020.0002] # MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR
+A712 ; [*04C3.0020.0002] # MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR
+A713 ; [*04C4.0020.0002] # MODIFIER LETTER HIGH LEFT-STEM TONE BAR
+A714 ; [*04C5.0020.0002] # MODIFIER LETTER MID LEFT-STEM TONE BAR
+A715 ; [*04C6.0020.0002] # MODIFIER LETTER LOW LEFT-STEM TONE BAR
+A716 ; [*04C7.0020.0002] # MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717 ; [*04C8.0020.0002] # MODIFIER LETTER DOT VERTICAL BAR
+A718 ; [*04C9.0020.0002] # MODIFIER LETTER DOT SLASH
+A719 ; [*04CA.0020.0002] # MODIFIER LETTER DOT HORIZONTAL BAR
+A71A ; [*04CB.0020.0002] # MODIFIER LETTER LOWER RIGHT CORNER ANGLE
+A71B ; [*04CC.0020.0002] # MODIFIER LETTER RAISED UP ARROW
+A71C ; [*04CD.0020.0002] # MODIFIER LETTER RAISED DOWN ARROW
+A71D ; [*04CE.0020.0002] # MODIFIER LETTER RAISED EXCLAMATION MARK
+A71E ; [*04CF.0020.0002] # MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK
+A71F ; [*04D0.0020.0002] # MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720 ; [*04D1.0020.0002] # MODIFIER LETTER STRESS AND HIGH TONE
+A721 ; [*04D2.0020.0002] # MODIFIER LETTER STRESS AND LOW TONE
+A788 ; [*04D3.0020.0002] # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789 ; [*04D4.0020.0002] # MODIFIER LETTER COLON
+A78A ; [*04D5.0020.0002] # MODIFIER LETTER SHORT EQUALS SIGN
+A828 ; [*04FF.0020.0002] # SYLOTI NAGRI POETRY MARK-1
+A829 ; [*0500.0020.0002] # SYLOTI NAGRI POETRY MARK-2
+A82A ; [*0501.0020.0002] # SYLOTI NAGRI POETRY MARK-3
+A82B ; [*0502.0020.0002] # SYLOTI NAGRI POETRY MARK-4
+A830 ; [*1A32.0020.0002] # NORTH INDIC FRACTION ONE QUARTER
+A831 ; [*1A33.0020.0002] # NORTH INDIC FRACTION ONE HALF
+A832 ; [*1A34.0020.0002] # NORTH INDIC FRACTION THREE QUARTERS
+A833 ; [*1A35.0020.0002] # NORTH INDIC FRACTION ONE SIXTEENTH
+A834 ; [*1A36.0020.0002] # NORTH INDIC FRACTION ONE EIGHTH
+A835 ; [*1A37.0020.0002] # NORTH INDIC FRACTION THREE SIXTEENTHS
+A836 ; [*0503.0020.0002] # NORTH INDIC QUARTER MARK
+A837 ; [*0504.0020.0002] # NORTH INDIC PLACEHOLDER MARK
+A839 ; [*0505.0020.0002] # NORTH INDIC QUANTITY MARK
+A874 ; [*0411.0020.0002] # PHAGS-PA SINGLE HEAD MARK
+A875 ; [*0412.0020.0002] # PHAGS-PA DOUBLE HEAD MARK
A876 ; [*0291.0020.0002] # PHAGS-PA MARK SHAD
A877 ; [*0292.0020.0002] # PHAGS-PA MARK DOUBLE SHAD
A8CE ; [*028D.0020.0002] # SAURASHTRA DANDA
@@ -3975,60 +3981,61 @@ A8EE ; [.0000.0000.0000] # COMBINING DEVANAGARI LETTER PA
A8EF ; [.0000.0000.0000] # COMBINING DEVANAGARI LETTER RA
A8F0 ; [.0000.0000.0000] # COMBINING DEVANAGARI LETTER VI
A8F1 ; [.0000.0000.0000] # COMBINING DEVANAGARI SIGN AVAGRAHA
-A8F8 ; [*03CD.0020.0002] # DEVANAGARI SIGN PUSHPIKA
-A8F9 ; [*03CE.0020.0002] # DEVANAGARI GAP FILLER
-A8FA ; [*03CF.0020.0002] # DEVANAGARI CARET
-A92E ; [*0410.0020.0002] # KAYAH LI SIGN CWI
+A8F8 ; [*03D3.0020.0002] # DEVANAGARI SIGN PUSHPIKA
+A8F9 ; [*03D4.0020.0002] # DEVANAGARI GAP FILLER
+A8FA ; [*03D5.0020.0002] # DEVANAGARI CARET
+A8FC ; [*03D6.0020.0002] # DEVANAGARI SIGN SIDDHAM
+A92E ; [*0417.0020.0002] # KAYAH LI SIGN CWI
A92F ; [*0295.0020.0002] # KAYAH LI SIGN SHYA
-A95F ; [*02CF.0020.0002] # REJANG SECTION MARK
-A9C1 ; [*02C4.0020.0002] # JAVANESE LEFT RERENGGAN
-A9C2 ; [*02C5.0020.0002] # JAVANESE RIGHT RERENGGAN
-A9C3 ; [*02C6.0020.0002] # JAVANESE PADA ANDAP
-A9C4 ; [*02C7.0020.0002] # JAVANESE PADA MADYA
-A9C5 ; [*02C8.0020.0002] # JAVANESE PADA LUHUR
-A9C6 ; [*02C9.0020.0002] # JAVANESE PADA WINDU
+A95F ; [*02D1.0020.0002] # REJANG SECTION MARK
+A9C1 ; [*02C6.0020.0002] # JAVANESE LEFT RERENGGAN
+A9C2 ; [*02C7.0020.0002] # JAVANESE RIGHT RERENGGAN
+A9C3 ; [*02C8.0020.0002] # JAVANESE PADA ANDAP
+A9C4 ; [*02C9.0020.0002] # JAVANESE PADA MADYA
+A9C5 ; [*02CA.0020.0002] # JAVANESE PADA LUHUR
+A9C6 ; [*02CB.0020.0002] # JAVANESE PADA WINDU
A9C7 ; [*025A.0020.0002] # JAVANESE PADA PANGKAT
A9C8 ; [*02A0.0020.0002] # JAVANESE PADA LINGSA
A9C9 ; [*02A1.0020.0002] # JAVANESE PADA LUNGSI
-A9CA ; [*02CA.0020.0002] # JAVANESE PADA ADEG
-A9CB ; [*02CB.0020.0002] # JAVANESE PADA ADEG ADEG
-A9CC ; [*02CC.0020.0002] # JAVANESE PADA PISELEH
-A9CD ; [*02CD.0020.0002] # JAVANESE TURNED PADA PISELEH
-A9DE ; [*0411.0020.0002] # JAVANESE PADA TIRTA TUMETES
-A9DF ; [*0412.0020.0002] # JAVANESE PADA ISEN-ISEN
-AA5C ; [*0413.0020.0002] # CHAM PUNCTUATION SPIRAL
+A9CA ; [*02CC.0020.0002] # JAVANESE PADA ADEG
+A9CB ; [*02CD.0020.0002] # JAVANESE PADA ADEG ADEG
+A9CC ; [*02CE.0020.0002] # JAVANESE PADA PISELEH
+A9CD ; [*02CF.0020.0002] # JAVANESE TURNED PADA PISELEH
+A9DE ; [*0418.0020.0002] # JAVANESE PADA TIRTA TUMETES
+A9DF ; [*0419.0020.0002] # JAVANESE PADA ISEN-ISEN
+AA5C ; [*041A.0020.0002] # CHAM PUNCTUATION SPIRAL
AA5D ; [*02A2.0020.0002] # CHAM PUNCTUATION DANDA
AA5E ; [*02A3.0020.0002] # CHAM PUNCTUATION DOUBLE DANDA
AA5F ; [*02A4.0020.0002] # CHAM PUNCTUATION TRIPLE DANDA
-AA77 ; [*0510.0020.0002] # MYANMAR SYMBOL AITON EXCLAMATION
-AA78 ; [*0511.0020.0002] # MYANMAR SYMBOL AITON ONE
-AA79 ; [*0512.0020.0002] # MYANMAR SYMBOL AITON TWO
-AADE ; [*03D5.0020.0002] # TAI VIET SYMBOL HO HOI
-AADF ; [*03D6.0020.0002] # TAI VIET SYMBOL KOI KOI
+AA77 ; [*052D.0020.0002] # MYANMAR SYMBOL AITON EXCLAMATION
+AA78 ; [*052E.0020.0002] # MYANMAR SYMBOL AITON ONE
+AA79 ; [*052F.0020.0002] # MYANMAR SYMBOL AITON TWO
+AADE ; [*03DC.0020.0002] # TAI VIET SYMBOL HO HOI
+AADF ; [*03DD.0020.0002] # TAI VIET SYMBOL KOI KOI
AAF0 ; [*02A5.0020.0002] # MEETEI MAYEK CHEIKHAN
AAF1 ; [*0270.0020.0002] # MEETEI MAYEK AHANG KHUDAM
-AB5B ; [*04B9.0020.0002] # MODIFIER BREVE WITH INVERTED BREVE
+AB5B ; [*04D6.0020.0002] # MODIFIER BREVE WITH INVERTED BREVE
ABEB ; [*02A6.0020.0002] # MEETEI MAYEK CHEIKHEI
-FB29 ; [*05D6.0020.0005] # HEBREW LETTER ALTERNATIVE PLUS SIGN
-FBB2 ; [*04C6.0020.0002] # ARABIC SYMBOL DOT ABOVE
-FBB3 ; [*04C7.0020.0002] # ARABIC SYMBOL DOT BELOW
-FBB4 ; [*04C8.0020.0002] # ARABIC SYMBOL TWO DOTS ABOVE
-FBB5 ; [*04C9.0020.0002] # ARABIC SYMBOL TWO DOTS BELOW
-FBB6 ; [*04CA.0020.0002] # ARABIC SYMBOL THREE DOTS ABOVE
-FBB7 ; [*04CB.0020.0002] # ARABIC SYMBOL THREE DOTS BELOW
-FBB8 ; [*04CC.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
-FBB9 ; [*04CD.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
-FBBA ; [*04CE.0020.0002] # ARABIC SYMBOL FOUR DOTS ABOVE
-FBBB ; [*04CF.0020.0002] # ARABIC SYMBOL FOUR DOTS BELOW
-FBBC ; [*04D0.0020.0002] # ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
-FBBD ; [*04D1.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
-FBBE ; [*04D2.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
-FBBF ; [*04D3.0020.0002] # ARABIC SYMBOL RING
-FBC0 ; [*04D4.0020.0002] # ARABIC SYMBOL SMALL TAH ABOVE
-FBC1 ; [*04D5.0020.0002] # ARABIC SYMBOL SMALL TAH BELOW
-FD3E ; [*0374.0020.0002] # ORNATE LEFT PARENTHESIS
-FD3F ; [*0375.0020.0002] # ORNATE RIGHT PARENTHESIS
-FDFD ; [*04C5.0020.0002] # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FB29 ; [*05F6.0020.0005] # HEBREW LETTER ALTERNATIVE PLUS SIGN
+FBB2 ; [*04E3.0020.0002] # ARABIC SYMBOL DOT ABOVE
+FBB3 ; [*04E4.0020.0002] # ARABIC SYMBOL DOT BELOW
+FBB4 ; [*04E5.0020.0002] # ARABIC SYMBOL TWO DOTS ABOVE
+FBB5 ; [*04E6.0020.0002] # ARABIC SYMBOL TWO DOTS BELOW
+FBB6 ; [*04E7.0020.0002] # ARABIC SYMBOL THREE DOTS ABOVE
+FBB7 ; [*04E8.0020.0002] # ARABIC SYMBOL THREE DOTS BELOW
+FBB8 ; [*04E9.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
+FBB9 ; [*04EA.0020.0002] # ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
+FBBA ; [*04EB.0020.0002] # ARABIC SYMBOL FOUR DOTS ABOVE
+FBBB ; [*04EC.0020.0002] # ARABIC SYMBOL FOUR DOTS BELOW
+FBBC ; [*04ED.0020.0002] # ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
+FBBD ; [*04EE.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
+FBBE ; [*04EF.0020.0002] # ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
+FBBF ; [*04F0.0020.0002] # ARABIC SYMBOL RING
+FBC0 ; [*04F1.0020.0002] # ARABIC SYMBOL SMALL TAH ABOVE
+FBC1 ; [*04F2.0020.0002] # ARABIC SYMBOL SMALL TAH BELOW
+FD3E ; [*037A.0020.0002] # ORNATE LEFT PARENTHESIS
+FD3F ; [*037B.0020.0002] # ORNATE RIGHT PARENTHESIS
+FDFD ; [*04E2.0020.0002] # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
FE10 ; [*0221.0020.0016] # PRESENTATION FORM FOR VERTICAL COMMA
FE11 ; [*0230.0020.0016] # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
FE12 ; [*0287.0020.0016] # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
@@ -4036,8 +4043,8 @@ FE13 ; [*0238.0020.0016] # PRESENTATION FORM FOR VERTICAL COLON
FE14 ; [*0233.0020.0016] # PRESENTATION FORM FOR VERTICAL SEMICOLON
FE15 ; [*025F.0020.0016] # PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
FE16 ; [*0264.0020.0016] # PRESENTATION FORM FOR VERTICAL QUESTION MARK
-FE17 ; [*036E.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
-FE18 ; [*036F.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE17 ; [*0374.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; [*0375.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
FE19 ; [*0274.0020.0016][*0274.0020.0016][*0274.0020.0016] # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
FE21 ; [.0000.0000.0000] # COMBINING LIGATURE RIGHT HALF
FE23 ; [.0000.0000.0000] # COMBINING DOUBLE TILDE RIGHT HALF
@@ -4049,31 +4056,32 @@ FE2A ; [.0000.0000.0000] # COMBINING TILDE RIGHT HALF BELOW
FE2B ; [.0000.0000.0000] # COMBINING MACRON LEFT HALF BELOW
FE2C ; [.0000.0000.0000] # COMBINING MACRON RIGHT HALF BELOW
FE2D ; [.0000.0000.0000] # COMBINING CONJOINING MACRON BELOW
+FE2F ; [.0000.0000.0000] # COMBINING CYRILLIC TITLO RIGHT HALF
FE30 ; [*0274.0020.0016][*0274.0020.0016] # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
FE31 ; [*0216.0020.0016] # PRESENTATION FORM FOR VERTICAL EM DASH
FE32 ; [*0215.0020.0016] # PRESENTATION FORM FOR VERTICAL EN DASH
FE33 ; [*020B.0020.0016] # PRESENTATION FORM FOR VERTICAL LOW LINE
FE34 ; [*020B.0020.0016] # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-FE35 ; [*030A.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36 ; [*030B.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37 ; [*030E.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38 ; [*030F.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39 ; [*036C.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A ; [*036D.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B ; [*036A.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C ; [*036B.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D ; [*0364.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E ; [*0365.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F ; [*0362.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40 ; [*0363.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41 ; [*0366.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42 ; [*0367.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43 ; [*0368.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44 ; [*0369.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE35 ; [*0310.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; [*0311.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; [*0314.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; [*0315.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; [*0372.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; [*0373.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; [*0370.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; [*0371.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; [*036A.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; [*036B.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; [*0368.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; [*0369.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; [*036C.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; [*036D.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; [*036E.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; [*036F.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
FE45 ; [*0231.0020.0002] # SESAME DOT
FE46 ; [*0232.0020.0002] # WHITE SESAME DOT
-FE47 ; [*030C.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
-FE48 ; [*030D.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE47 ; [*0312.0020.0016] # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; [*0313.0020.0016] # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
FE49 ; [*020A.0020.0004] # DASHED OVERLINE
FE4A ; [*020A.0020.0004] # CENTRELINE OVERLINE
FE4B ; [*020A.0020.0004] # WAVY OVERLINE
@@ -4089,411 +4097,479 @@ FE55 ; [*0238.0020.000F] # SMALL COLON
FE56 ; [*0264.0020.000F] # SMALL QUESTION MARK
FE57 ; [*025F.0020.000F] # SMALL EXCLAMATION MARK
FE58 ; [*0216.0020.000F] # SMALL EM DASH
-FE59 ; [*030A.0020.000F] # SMALL LEFT PARENTHESIS
-FE5A ; [*030B.0020.000F] # SMALL RIGHT PARENTHESIS
-FE5B ; [*030E.0020.000F] # SMALL LEFT CURLY BRACKET
-FE5C ; [*030F.0020.000F] # SMALL RIGHT CURLY BRACKET
-FE5D ; [*036C.0020.000F] # SMALL LEFT TORTOISE SHELL BRACKET
-FE5E ; [*036D.0020.000F] # SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F ; [*038B.0020.000F] # SMALL NUMBER SIGN
-FE60 ; [*0389.0020.000F] # SMALL AMPERSAND
-FE61 ; [*0382.0020.000F] # SMALL ASTERISK
-FE62 ; [*05D6.0020.000F] # SMALL PLUS SIGN
+FE59 ; [*0310.0020.000F] # SMALL LEFT PARENTHESIS
+FE5A ; [*0311.0020.000F] # SMALL RIGHT PARENTHESIS
+FE5B ; [*0314.0020.000F] # SMALL LEFT CURLY BRACKET
+FE5C ; [*0315.0020.000F] # SMALL RIGHT CURLY BRACKET
+FE5D ; [*0372.0020.000F] # SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; [*0373.0020.000F] # SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F ; [*0391.0020.000F] # SMALL NUMBER SIGN
+FE60 ; [*038F.0020.000F] # SMALL AMPERSAND
+FE61 ; [*0388.0020.000F] # SMALL ASTERISK
+FE62 ; [*05F6.0020.000F] # SMALL PLUS SIGN
FE63 ; [*020D.0020.000F] # SMALL HYPHEN-MINUS
-FE64 ; [*05DA.0020.000F] # SMALL LESS-THAN SIGN
-FE65 ; [*05DC.0020.000F] # SMALL GREATER-THAN SIGN
-FE66 ; [*05DB.0020.000F] # SMALL EQUALS SIGN
-FE68 ; [*0388.0020.000F] # SMALL REVERSE SOLIDUS
-FE6A ; [*038C.0020.000F] # SMALL PERCENT SIGN
-FE6B ; [*0381.0020.000F] # SMALL COMMERCIAL AT
+FE64 ; [*05FA.0020.000F] # SMALL LESS-THAN SIGN
+FE65 ; [*05FC.0020.000F] # SMALL GREATER-THAN SIGN
+FE66 ; [*05FB.0020.000F] # SMALL EQUALS SIGN
+FE68 ; [*038E.0020.000F] # SMALL REVERSE SOLIDUS
+FE6A ; [*0392.0020.000F] # SMALL PERCENT SIGN
+FE6B ; [*0387.0020.000F] # SMALL COMMERCIAL AT
FE73 ; [.0000.0000.0000] # ARABIC TAIL FRAGMENT
FF01 ; [*025F.0020.0003] # FULLWIDTH EXCLAMATION MARK
-FF02 ; [*02FF.0020.0003] # FULLWIDTH QUOTATION MARK
-FF03 ; [*038B.0020.0003] # FULLWIDTH NUMBER SIGN
-FF05 ; [*038C.0020.0003] # FULLWIDTH PERCENT SIGN
-FF06 ; [*0389.0020.0003] # FULLWIDTH AMPERSAND
-FF07 ; [*02F8.0020.0003] # FULLWIDTH APOSTROPHE
-FF08 ; [*030A.0020.0003] # FULLWIDTH LEFT PARENTHESIS
-FF09 ; [*030B.0020.0003] # FULLWIDTH RIGHT PARENTHESIS
-FF0A ; [*0382.0020.0003] # FULLWIDTH ASTERISK
-FF0B ; [*05D6.0020.0003] # FULLWIDTH PLUS SIGN
+FF02 ; [*0305.0020.0003] # FULLWIDTH QUOTATION MARK
+FF03 ; [*0391.0020.0003] # FULLWIDTH NUMBER SIGN
+FF05 ; [*0392.0020.0003] # FULLWIDTH PERCENT SIGN
+FF06 ; [*038F.0020.0003] # FULLWIDTH AMPERSAND
+FF07 ; [*02FE.0020.0003] # FULLWIDTH APOSTROPHE
+FF08 ; [*0310.0020.0003] # FULLWIDTH LEFT PARENTHESIS
+FF09 ; [*0311.0020.0003] # FULLWIDTH RIGHT PARENTHESIS
+FF0A ; [*0388.0020.0003] # FULLWIDTH ASTERISK
+FF0B ; [*05F6.0020.0003] # FULLWIDTH PLUS SIGN
FF0C ; [*0221.0020.0003] # FULLWIDTH COMMA
FF0D ; [*020D.0020.0003] # FULLWIDTH HYPHEN-MINUS
FF0E ; [*0274.0020.0003] # FULLWIDTH FULL STOP
-FF0F ; [*0387.0020.0003] # FULLWIDTH SOLIDUS
+FF0F ; [*038D.0020.0003] # FULLWIDTH SOLIDUS
FF1A ; [*0238.0020.0003] # FULLWIDTH COLON
FF1B ; [*0233.0020.0003] # FULLWIDTH SEMICOLON
-FF1C ; [*05DA.0020.0003] # FULLWIDTH LESS-THAN SIGN
-FF1D ; [*05DB.0020.0003] # FULLWIDTH EQUALS SIGN
-FF1E ; [*05DC.0020.0003] # FULLWIDTH GREATER-THAN SIGN
+FF1C ; [*05FA.0020.0003] # FULLWIDTH LESS-THAN SIGN
+FF1D ; [*05FB.0020.0003] # FULLWIDTH EQUALS SIGN
+FF1E ; [*05FC.0020.0003] # FULLWIDTH GREATER-THAN SIGN
FF1F ; [*0264.0020.0003] # FULLWIDTH QUESTION MARK
-FF20 ; [*0381.0020.0003] # FULLWIDTH COMMERCIAL AT
-FF3B ; [*030C.0020.0003] # FULLWIDTH LEFT SQUARE BRACKET
-FF3C ; [*0388.0020.0003] # FULLWIDTH REVERSE SOLIDUS
-FF3D ; [*030D.0020.0003] # FULLWIDTH RIGHT SQUARE BRACKET
-FF3E ; [*0449.0020.0003] # FULLWIDTH CIRCUMFLEX ACCENT
+FF20 ; [*0387.0020.0003] # FULLWIDTH COMMERCIAL AT
+FF3B ; [*0312.0020.0003] # FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; [*038E.0020.0003] # FULLWIDTH REVERSE SOLIDUS
+FF3D ; [*0313.0020.0003] # FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; [*0466.0020.0003] # FULLWIDTH CIRCUMFLEX ACCENT
FF3F ; [*020B.0020.0003] # FULLWIDTH LOW LINE
-FF40 ; [*0446.0020.0003] # FULLWIDTH GRAVE ACCENT
-FF5B ; [*030E.0020.0003] # FULLWIDTH LEFT CURLY BRACKET
-FF5C ; [*05DE.0020.0003] # FULLWIDTH VERTICAL LINE
-FF5D ; [*030F.0020.0003] # FULLWIDTH RIGHT CURLY BRACKET
-FF5E ; [*05E0.0020.0003] # FULLWIDTH TILDE
-FF5F ; [*0320.0020.0003] # FULLWIDTH LEFT WHITE PARENTHESIS
-FF60 ; [*0321.0020.0003] # FULLWIDTH RIGHT WHITE PARENTHESIS
+FF40 ; [*0463.0020.0003] # FULLWIDTH GRAVE ACCENT
+FF5B ; [*0314.0020.0003] # FULLWIDTH LEFT CURLY BRACKET
+FF5C ; [*05FE.0020.0003] # FULLWIDTH VERTICAL LINE
+FF5D ; [*0315.0020.0003] # FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; [*0600.0020.0003] # FULLWIDTH TILDE
+FF5F ; [*0326.0020.0003] # FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; [*0327.0020.0003] # FULLWIDTH RIGHT WHITE PARENTHESIS
FF61 ; [*0287.0020.0012] # HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62 ; [*0366.0020.0012] # HALFWIDTH LEFT CORNER BRACKET
-FF63 ; [*0367.0020.0012] # HALFWIDTH RIGHT CORNER BRACKET
+FF62 ; [*036C.0020.0012] # HALFWIDTH LEFT CORNER BRACKET
+FF63 ; [*036D.0020.0012] # HALFWIDTH RIGHT CORNER BRACKET
FF64 ; [*0230.0020.0012] # HALFWIDTH IDEOGRAPHIC COMMA
FF65 ; [*0220.0020.0012] # HALFWIDTH KATAKANA MIDDLE DOT
-FFE2 ; [*05DD.0020.0003] # FULLWIDTH NOT SIGN
-FFE3 ; [*044A.0020.0003] # FULLWIDTH MACRON
-FFE4 ; [*05DF.0020.0003] # FULLWIDTH BROKEN BAR
-FFE8 ; [*07D6.0020.0012] # HALFWIDTH FORMS LIGHT VERTICAL
-FFE9 ; [*055C.0020.0012] # HALFWIDTH LEFTWARDS ARROW
-FFEA ; [*055E.0020.0012] # HALFWIDTH UPWARDS ARROW
-FFEB ; [*055D.0020.0012] # HALFWIDTH RIGHTWARDS ARROW
-FFEC ; [*055F.0020.0012] # HALFWIDTH DOWNWARDS ARROW
-FFED ; [*0874.0020.0012] # HALFWIDTH BLACK SQUARE
-FFEE ; [*089F.0020.0012] # HALFWIDTH WHITE CIRCLE
-FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
-10100 ; [*02ED.0020.0002] # AEGEAN WORD SEPARATOR LINE
-10101 ; [*02EE.0020.0002] # AEGEAN WORD SEPARATOR DOT
-10102 ; [*02EF.0020.0002] # AEGEAN CHECK MARK
-10110 ; [*17F6.0020.0002] # AEGEAN NUMBER TEN
-10111 ; [*17F7.0020.0002] # AEGEAN NUMBER TWENTY
-10112 ; [*17F8.0020.0002] # AEGEAN NUMBER THIRTY
-10113 ; [*17F9.0020.0002] # AEGEAN NUMBER FORTY
-10114 ; [*17FA.0020.0002] # AEGEAN NUMBER FIFTY
-10115 ; [*17FB.0020.0002] # AEGEAN NUMBER SIXTY
-10116 ; [*17FC.0020.0002] # AEGEAN NUMBER SEVENTY
-10117 ; [*17FD.0020.0002] # AEGEAN NUMBER EIGHTY
-10118 ; [*17FE.0020.0002] # AEGEAN NUMBER NINETY
-10119 ; [*17FF.0020.0002] # AEGEAN NUMBER ONE HUNDRED
-1011A ; [*1800.0020.0002] # AEGEAN NUMBER TWO HUNDRED
-1011B ; [*1801.0020.0002] # AEGEAN NUMBER THREE HUNDRED
-1011C ; [*1802.0020.0002] # AEGEAN NUMBER FOUR HUNDRED
-1011D ; [*1803.0020.0002] # AEGEAN NUMBER FIVE HUNDRED
-1011E ; [*1804.0020.0002] # AEGEAN NUMBER SIX HUNDRED
-1011F ; [*1805.0020.0002] # AEGEAN NUMBER SEVEN HUNDRED
-10120 ; [*1806.0020.0002] # AEGEAN NUMBER EIGHT HUNDRED
-10121 ; [*1807.0020.0002] # AEGEAN NUMBER NINE HUNDRED
-10122 ; [*1808.0020.0002] # AEGEAN NUMBER ONE THOUSAND
-10123 ; [*1809.0020.0002] # AEGEAN NUMBER TWO THOUSAND
-10124 ; [*180A.0020.0002] # AEGEAN NUMBER THREE THOUSAND
-10125 ; [*180B.0020.0002] # AEGEAN NUMBER FOUR THOUSAND
-10126 ; [*180C.0020.0002] # AEGEAN NUMBER FIVE THOUSAND
-10127 ; [*180D.0020.0002] # AEGEAN NUMBER SIX THOUSAND
-10128 ; [*180E.0020.0002] # AEGEAN NUMBER SEVEN THOUSAND
-10129 ; [*180F.0020.0002] # AEGEAN NUMBER EIGHT THOUSAND
-1012A ; [*1810.0020.0002] # AEGEAN NUMBER NINE THOUSAND
-1012B ; [*1811.0020.0002] # AEGEAN NUMBER TEN THOUSAND
-1012C ; [*1812.0020.0002] # AEGEAN NUMBER TWENTY THOUSAND
-1012D ; [*1813.0020.0002] # AEGEAN NUMBER THIRTY THOUSAND
-1012E ; [*1814.0020.0002] # AEGEAN NUMBER FORTY THOUSAND
-1012F ; [*1815.0020.0002] # AEGEAN NUMBER FIFTY THOUSAND
-10130 ; [*1816.0020.0002] # AEGEAN NUMBER SIXTY THOUSAND
-10131 ; [*1817.0020.0002] # AEGEAN NUMBER SEVENTY THOUSAND
-10132 ; [*1818.0020.0002] # AEGEAN NUMBER EIGHTY THOUSAND
-10133 ; [*1819.0020.0002] # AEGEAN NUMBER NINETY THOUSAND
-10137 ; [*0F30.0020.0002] # AEGEAN WEIGHT BASE UNIT
-10138 ; [*0F31.0020.0002] # AEGEAN WEIGHT FIRST SUBUNIT
-10139 ; [*0F32.0020.0002] # AEGEAN WEIGHT SECOND SUBUNIT
-1013A ; [*0F33.0020.0002] # AEGEAN WEIGHT THIRD SUBUNIT
-1013B ; [*0F34.0020.0002] # AEGEAN WEIGHT FOURTH SUBUNIT
-1013C ; [*0F35.0020.0002] # AEGEAN DRY MEASURE FIRST SUBUNIT
-1013D ; [*0F36.0020.0002] # AEGEAN LIQUID MEASURE FIRST SUBUNIT
-1013E ; [*0F37.0020.0002] # AEGEAN MEASURE SECOND SUBUNIT
-1013F ; [*0F38.0020.0002] # AEGEAN MEASURE THIRD SUBUNIT
-10140 ; [*181A.0020.0002] # GREEK ACROPHONIC ATTIC ONE QUARTER
-10141 ; [*181B.0020.0002] # GREEK ACROPHONIC ATTIC ONE HALF
-10144 ; [*181C.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY
-10145 ; [*181D.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED
-10146 ; [*181E.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND
-10147 ; [*181F.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND
-10149 ; [*1820.0020.0002] # GREEK ACROPHONIC ATTIC TEN TALENTS
-1014A ; [*1821.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY TALENTS
-1014B ; [*1822.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
-1014C ; [*1823.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
-1014D ; [*1824.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
-1014E ; [*1825.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
-10150 ; [*1826.0020.0002] # GREEK ACROPHONIC ATTIC TEN STATERS
-10151 ; [*1827.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY STATERS
-10152 ; [*1828.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
-10153 ; [*1829.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
-10154 ; [*182A.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
-10155 ; [*182B.0020.0002] # GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
-10156 ; [*182C.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
-10157 ; [*182D.0020.0002] # GREEK ACROPHONIC ATTIC TEN MNAS
-10160 ; [*182E.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN
-10161 ; [*182F.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM
-10162 ; [*1830.0020.0002] # GREEK ACROPHONIC HERMIONIAN TEN
-10163 ; [*1831.0020.0002] # GREEK ACROPHONIC MESSENIAN TEN
-10164 ; [*1832.0020.0002] # GREEK ACROPHONIC THESPIAN TEN
-10165 ; [*1833.0020.0002] # GREEK ACROPHONIC THESPIAN THIRTY
-10166 ; [*1834.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY
-10167 ; [*1835.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
-10168 ; [*1836.0020.0002] # GREEK ACROPHONIC HERMIONIAN FIFTY
-10169 ; [*1837.0020.0002] # GREEK ACROPHONIC THESPIAN FIFTY
-1016A ; [*1838.0020.0002] # GREEK ACROPHONIC THESPIAN ONE HUNDRED
-1016B ; [*1839.0020.0002] # GREEK ACROPHONIC THESPIAN THREE HUNDRED
-1016C ; [*183A.0020.0002] # GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
-1016D ; [*183B.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
-1016E ; [*183C.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE HUNDRED
-1016F ; [*183D.0020.0002] # GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
-10170 ; [*183E.0020.0002] # GREEK ACROPHONIC NAXIAN FIVE HUNDRED
-10171 ; [*183F.0020.0002] # GREEK ACROPHONIC THESPIAN ONE THOUSAND
-10172 ; [*1840.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE THOUSAND
-10174 ; [*1841.0020.0002] # GREEK ACROPHONIC STRATIAN FIFTY MNAS
-10175 ; [*1842.0020.0002] # GREEK ONE HALF SIGN
-10176 ; [*1843.0020.0002] # GREEK ONE HALF SIGN ALTERNATE FORM
-10177 ; [*1844.0020.0002] # GREEK TWO THIRDS SIGN
-10178 ; [*1845.0020.0002] # GREEK THREE QUARTERS SIGN
-10179 ; [*0F39.0020.0002] # GREEK YEAR SIGN
-1017A ; [*0F3A.0020.0002] # GREEK TALENT SIGN
-1017B ; [*0F3B.0020.0002] # GREEK DRACHMA SIGN
-1017C ; [*0F3C.0020.0002] # GREEK OBOL SIGN
-1017D ; [*0F3D.0020.0002] # GREEK TWO OBOLS SIGN
-1017E ; [*0F3E.0020.0002] # GREEK THREE OBOLS SIGN
-1017F ; [*0F3F.0020.0002] # GREEK FOUR OBOLS SIGN
-10180 ; [*0F40.0020.0002] # GREEK FIVE OBOLS SIGN
-10181 ; [*0F41.0020.0002] # GREEK METRETES SIGN
-10182 ; [*0F42.0020.0002] # GREEK KYATHOS BASE SIGN
-10183 ; [*0F43.0020.0002] # GREEK LITRA SIGN
-10184 ; [*0F44.0020.0002] # GREEK OUNKIA SIGN
-10185 ; [*0F45.0020.0002] # GREEK XESTES SIGN
-10186 ; [*0F46.0020.0002] # GREEK ARTABE SIGN
-10187 ; [*0F47.0020.0002] # GREEK AROURA SIGN
-10188 ; [*0F48.0020.0002] # GREEK GRAMMA SIGN
-10189 ; [*0F49.0020.0002] # GREEK TRYBLION BASE SIGN
-1018B ; [*1846.0020.0002] # GREEK ONE QUARTER SIGN
-1018C ; [*0F4A.0020.0002] # GREEK SINUSOID SIGN
-10190 ; [*0F4B.0020.0002] # ROMAN SEXTANS SIGN
-10191 ; [*0F4C.0020.0002] # ROMAN UNCIA SIGN
-10192 ; [*0F4D.0020.0002] # ROMAN SEMUNCIA SIGN
-10193 ; [*0F4E.0020.0002] # ROMAN SEXTULA SIGN
-10194 ; [*0F4F.0020.0002] # ROMAN DIMIDIA SEXTULA SIGN
-10195 ; [*0F50.0020.0002] # ROMAN SILIQUA SIGN
-10196 ; [*0F51.0020.0002] # ROMAN DENARIUS SIGN
-10197 ; [*0F52.0020.0002] # ROMAN QUINARIUS SIGN
-10198 ; [*0F53.0020.0002] # ROMAN SESTERTIUS SIGN
-10199 ; [*0F54.0020.0002] # ROMAN DUPONDIUS SIGN
-1019A ; [*0F55.0020.0002] # ROMAN AS SIGN
-1019B ; [*0F56.0020.0002] # ROMAN CENTURIAL SIGN
-101A0 ; [*0F57.0020.0002] # GREEK SYMBOL TAU RHO
-101D0 ; [*0F58.0020.0002] # PHAISTOS DISC SIGN PEDESTRIAN
-101D1 ; [*0F59.0020.0002] # PHAISTOS DISC SIGN PLUMED HEAD
-101D2 ; [*0F5A.0020.0002] # PHAISTOS DISC SIGN TATTOOED HEAD
-101D3 ; [*0F5B.0020.0002] # PHAISTOS DISC SIGN CAPTIVE
-101D4 ; [*0F5C.0020.0002] # PHAISTOS DISC SIGN CHILD
-101D5 ; [*0F5D.0020.0002] # PHAISTOS DISC SIGN WOMAN
-101D6 ; [*0F5E.0020.0002] # PHAISTOS DISC SIGN HELMET
-101D7 ; [*0F5F.0020.0002] # PHAISTOS DISC SIGN GAUNTLET
-101D8 ; [*0F60.0020.0002] # PHAISTOS DISC SIGN TIARA
-101D9 ; [*0F61.0020.0002] # PHAISTOS DISC SIGN ARROW
-101DA ; [*0F62.0020.0002] # PHAISTOS DISC SIGN BOW
-101DB ; [*0F63.0020.0002] # PHAISTOS DISC SIGN SHIELD
-101DC ; [*0F64.0020.0002] # PHAISTOS DISC SIGN CLUB
-101DD ; [*0F65.0020.0002] # PHAISTOS DISC SIGN MANACLES
-101DE ; [*0F66.0020.0002] # PHAISTOS DISC SIGN MATTOCK
-101DF ; [*0F67.0020.0002] # PHAISTOS DISC SIGN SAW
-101E0 ; [*0F68.0020.0002] # PHAISTOS DISC SIGN LID
-101E1 ; [*0F69.0020.0002] # PHAISTOS DISC SIGN BOOMERANG
-101E2 ; [*0F6A.0020.0002] # PHAISTOS DISC SIGN CARPENTRY PLANE
-101E3 ; [*0F6B.0020.0002] # PHAISTOS DISC SIGN DOLIUM
-101E4 ; [*0F6C.0020.0002] # PHAISTOS DISC SIGN COMB
-101E5 ; [*0F6D.0020.0002] # PHAISTOS DISC SIGN SLING
-101E6 ; [*0F6E.0020.0002] # PHAISTOS DISC SIGN COLUMN
-101E7 ; [*0F6F.0020.0002] # PHAISTOS DISC SIGN BEEHIVE
-101E8 ; [*0F70.0020.0002] # PHAISTOS DISC SIGN SHIP
-101E9 ; [*0F71.0020.0002] # PHAISTOS DISC SIGN HORN
-101EA ; [*0F72.0020.0002] # PHAISTOS DISC SIGN HIDE
-101EB ; [*0F73.0020.0002] # PHAISTOS DISC SIGN BULLS LEG
-101EC ; [*0F74.0020.0002] # PHAISTOS DISC SIGN CAT
-101ED ; [*0F75.0020.0002] # PHAISTOS DISC SIGN RAM
-101EE ; [*0F76.0020.0002] # PHAISTOS DISC SIGN EAGLE
-101EF ; [*0F77.0020.0002] # PHAISTOS DISC SIGN DOVE
-101F0 ; [*0F78.0020.0002] # PHAISTOS DISC SIGN TUNNY
-101F1 ; [*0F79.0020.0002] # PHAISTOS DISC SIGN BEE
-101F2 ; [*0F7A.0020.0002] # PHAISTOS DISC SIGN PLANE TREE
-101F3 ; [*0F7B.0020.0002] # PHAISTOS DISC SIGN VINE
-101F4 ; [*0F7C.0020.0002] # PHAISTOS DISC SIGN PAPYRUS
-101F5 ; [*0F7D.0020.0002] # PHAISTOS DISC SIGN ROSETTE
-101F6 ; [*0F7E.0020.0002] # PHAISTOS DISC SIGN LILY
-101F7 ; [*0F7F.0020.0002] # PHAISTOS DISC SIGN OX BACK
-101F8 ; [*0F80.0020.0002] # PHAISTOS DISC SIGN FLUTE
-101F9 ; [*0F81.0020.0002] # PHAISTOS DISC SIGN GRATER
-101FA ; [*0F82.0020.0002] # PHAISTOS DISC SIGN STRAINER
-101FB ; [*0F83.0020.0002] # PHAISTOS DISC SIGN SMALL AXE
-101FC ; [*0F84.0020.0002] # PHAISTOS DISC SIGN WAVY BAND
+FFE2 ; [*05FD.0020.0003] # FULLWIDTH NOT SIGN
+FFE3 ; [*0467.0020.0003] # FULLWIDTH MACRON
+FFE4 ; [*05FF.0020.0003] # FULLWIDTH BROKEN BAR
+FFE8 ; [*07F6.0020.0012] # HALFWIDTH FORMS LIGHT VERTICAL
+FFE9 ; [*057C.0020.0012] # HALFWIDTH LEFTWARDS ARROW
+FFEA ; [*057E.0020.0012] # HALFWIDTH UPWARDS ARROW
+FFEB ; [*057D.0020.0012] # HALFWIDTH RIGHTWARDS ARROW
+FFEC ; [*057F.0020.0012] # HALFWIDTH DOWNWARDS ARROW
+FFED ; [*0894.0020.0012] # HALFWIDTH BLACK SQUARE
+FFEE ; [*08BF.0020.0012] # HALFWIDTH WHITE CIRCLE
+FFFC ; [*1A25.0020.0002] # OBJECT REPLACEMENT CHARACTER
+10100 ; [*02F3.0020.0002] # AEGEAN WORD SEPARATOR LINE
+10101 ; [*02F4.0020.0002] # AEGEAN WORD SEPARATOR DOT
+10102 ; [*02F5.0020.0002] # AEGEAN CHECK MARK
+10110 ; [*1A6F.0020.0002] # AEGEAN NUMBER TEN
+10111 ; [*1A70.0020.0002] # AEGEAN NUMBER TWENTY
+10112 ; [*1A71.0020.0002] # AEGEAN NUMBER THIRTY
+10113 ; [*1A72.0020.0002] # AEGEAN NUMBER FORTY
+10114 ; [*1A73.0020.0002] # AEGEAN NUMBER FIFTY
+10115 ; [*1A74.0020.0002] # AEGEAN NUMBER SIXTY
+10116 ; [*1A75.0020.0002] # AEGEAN NUMBER SEVENTY
+10117 ; [*1A76.0020.0002] # AEGEAN NUMBER EIGHTY
+10118 ; [*1A77.0020.0002] # AEGEAN NUMBER NINETY
+10119 ; [*1A78.0020.0002] # AEGEAN NUMBER ONE HUNDRED
+1011A ; [*1A79.0020.0002] # AEGEAN NUMBER TWO HUNDRED
+1011B ; [*1A7A.0020.0002] # AEGEAN NUMBER THREE HUNDRED
+1011C ; [*1A7B.0020.0002] # AEGEAN NUMBER FOUR HUNDRED
+1011D ; [*1A7C.0020.0002] # AEGEAN NUMBER FIVE HUNDRED
+1011E ; [*1A7D.0020.0002] # AEGEAN NUMBER SIX HUNDRED
+1011F ; [*1A7E.0020.0002] # AEGEAN NUMBER SEVEN HUNDRED
+10120 ; [*1A7F.0020.0002] # AEGEAN NUMBER EIGHT HUNDRED
+10121 ; [*1A80.0020.0002] # AEGEAN NUMBER NINE HUNDRED
+10122 ; [*1A81.0020.0002] # AEGEAN NUMBER ONE THOUSAND
+10123 ; [*1A82.0020.0002] # AEGEAN NUMBER TWO THOUSAND
+10124 ; [*1A83.0020.0002] # AEGEAN NUMBER THREE THOUSAND
+10125 ; [*1A84.0020.0002] # AEGEAN NUMBER FOUR THOUSAND
+10126 ; [*1A85.0020.0002] # AEGEAN NUMBER FIVE THOUSAND
+10127 ; [*1A86.0020.0002] # AEGEAN NUMBER SIX THOUSAND
+10128 ; [*1A87.0020.0002] # AEGEAN NUMBER SEVEN THOUSAND
+10129 ; [*1A88.0020.0002] # AEGEAN NUMBER EIGHT THOUSAND
+1012A ; [*1A89.0020.0002] # AEGEAN NUMBER NINE THOUSAND
+1012B ; [*1A8A.0020.0002] # AEGEAN NUMBER TEN THOUSAND
+1012C ; [*1A8B.0020.0002] # AEGEAN NUMBER TWENTY THOUSAND
+1012D ; [*1A8C.0020.0002] # AEGEAN NUMBER THIRTY THOUSAND
+1012E ; [*1A8D.0020.0002] # AEGEAN NUMBER FORTY THOUSAND
+1012F ; [*1A8E.0020.0002] # AEGEAN NUMBER FIFTY THOUSAND
+10130 ; [*1A8F.0020.0002] # AEGEAN NUMBER SIXTY THOUSAND
+10131 ; [*1A90.0020.0002] # AEGEAN NUMBER SEVENTY THOUSAND
+10132 ; [*1A91.0020.0002] # AEGEAN NUMBER EIGHTY THOUSAND
+10133 ; [*1A92.0020.0002] # AEGEAN NUMBER NINETY THOUSAND
+10137 ; [*0F54.0020.0002] # AEGEAN WEIGHT BASE UNIT
+10138 ; [*0F55.0020.0002] # AEGEAN WEIGHT FIRST SUBUNIT
+10139 ; [*0F56.0020.0002] # AEGEAN WEIGHT SECOND SUBUNIT
+1013A ; [*0F57.0020.0002] # AEGEAN WEIGHT THIRD SUBUNIT
+1013B ; [*0F58.0020.0002] # AEGEAN WEIGHT FOURTH SUBUNIT
+1013C ; [*0F59.0020.0002] # AEGEAN DRY MEASURE FIRST SUBUNIT
+1013D ; [*0F5A.0020.0002] # AEGEAN LIQUID MEASURE FIRST SUBUNIT
+1013E ; [*0F5B.0020.0002] # AEGEAN MEASURE SECOND SUBUNIT
+1013F ; [*0F5C.0020.0002] # AEGEAN MEASURE THIRD SUBUNIT
+10140 ; [*1A93.0020.0002] # GREEK ACROPHONIC ATTIC ONE QUARTER
+10141 ; [*1A94.0020.0002] # GREEK ACROPHONIC ATTIC ONE HALF
+10144 ; [*1A95.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY
+10145 ; [*1A96.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED
+10146 ; [*1A97.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND
+10147 ; [*1A98.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND
+10149 ; [*1A99.0020.0002] # GREEK ACROPHONIC ATTIC TEN TALENTS
+1014A ; [*1A9A.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY TALENTS
+1014B ; [*1A9B.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS
+1014C ; [*1A9C.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS
+1014D ; [*1A9D.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS
+1014E ; [*1A9E.0020.0002] # GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS
+10150 ; [*1A9F.0020.0002] # GREEK ACROPHONIC ATTIC TEN STATERS
+10151 ; [*1AA0.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY STATERS
+10152 ; [*1AA1.0020.0002] # GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
+10153 ; [*1AA2.0020.0002] # GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS
+10154 ; [*1AA3.0020.0002] # GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS
+10155 ; [*1AA4.0020.0002] # GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS
+10156 ; [*1AA5.0020.0002] # GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS
+10157 ; [*1AA6.0020.0002] # GREEK ACROPHONIC ATTIC TEN MNAS
+10160 ; [*1AA7.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN
+10161 ; [*1AA8.0020.0002] # GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM
+10162 ; [*1AA9.0020.0002] # GREEK ACROPHONIC HERMIONIAN TEN
+10163 ; [*1AAA.0020.0002] # GREEK ACROPHONIC MESSENIAN TEN
+10164 ; [*1AAB.0020.0002] # GREEK ACROPHONIC THESPIAN TEN
+10165 ; [*1AAC.0020.0002] # GREEK ACROPHONIC THESPIAN THIRTY
+10166 ; [*1AAD.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY
+10167 ; [*1AAE.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
+10168 ; [*1AAF.0020.0002] # GREEK ACROPHONIC HERMIONIAN FIFTY
+10169 ; [*1AB0.0020.0002] # GREEK ACROPHONIC THESPIAN FIFTY
+1016A ; [*1AB1.0020.0002] # GREEK ACROPHONIC THESPIAN ONE HUNDRED
+1016B ; [*1AB2.0020.0002] # GREEK ACROPHONIC THESPIAN THREE HUNDRED
+1016C ; [*1AB3.0020.0002] # GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED
+1016D ; [*1AB4.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED
+1016E ; [*1AB5.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE HUNDRED
+1016F ; [*1AB6.0020.0002] # GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED
+10170 ; [*1AB7.0020.0002] # GREEK ACROPHONIC NAXIAN FIVE HUNDRED
+10171 ; [*1AB8.0020.0002] # GREEK ACROPHONIC THESPIAN ONE THOUSAND
+10172 ; [*1AB9.0020.0002] # GREEK ACROPHONIC THESPIAN FIVE THOUSAND
+10174 ; [*1ABA.0020.0002] # GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175 ; [*1ABB.0020.0002] # GREEK ONE HALF SIGN
+10176 ; [*1ABC.0020.0002] # GREEK ONE HALF SIGN ALTERNATE FORM
+10177 ; [*1ABD.0020.0002] # GREEK TWO THIRDS SIGN
+10178 ; [*1ABE.0020.0002] # GREEK THREE QUARTERS SIGN
+10179 ; [*0F5D.0020.0002] # GREEK YEAR SIGN
+1017A ; [*0F5E.0020.0002] # GREEK TALENT SIGN
+1017B ; [*0F5F.0020.0002] # GREEK DRACHMA SIGN
+1017C ; [*0F60.0020.0002] # GREEK OBOL SIGN
+1017D ; [*0F61.0020.0002] # GREEK TWO OBOLS SIGN
+1017E ; [*0F62.0020.0002] # GREEK THREE OBOLS SIGN
+1017F ; [*0F63.0020.0002] # GREEK FOUR OBOLS SIGN
+10180 ; [*0F64.0020.0002] # GREEK FIVE OBOLS SIGN
+10181 ; [*0F65.0020.0002] # GREEK METRETES SIGN
+10182 ; [*0F66.0020.0002] # GREEK KYATHOS BASE SIGN
+10183 ; [*0F67.0020.0002] # GREEK LITRA SIGN
+10184 ; [*0F68.0020.0002] # GREEK OUNKIA SIGN
+10185 ; [*0F69.0020.0002] # GREEK XESTES SIGN
+10186 ; [*0F6A.0020.0002] # GREEK ARTABE SIGN
+10187 ; [*0F6B.0020.0002] # GREEK AROURA SIGN
+10188 ; [*0F6C.0020.0002] # GREEK GRAMMA SIGN
+10189 ; [*0F6D.0020.0002] # GREEK TRYBLION BASE SIGN
+1018B ; [*1ABF.0020.0002] # GREEK ONE QUARTER SIGN
+1018C ; [*0F6E.0020.0002] # GREEK SINUSOID SIGN
+10190 ; [*0F6F.0020.0002] # ROMAN SEXTANS SIGN
+10191 ; [*0F70.0020.0002] # ROMAN UNCIA SIGN
+10192 ; [*0F71.0020.0002] # ROMAN SEMUNCIA SIGN
+10193 ; [*0F72.0020.0002] # ROMAN SEXTULA SIGN
+10194 ; [*0F73.0020.0002] # ROMAN DIMIDIA SEXTULA SIGN
+10195 ; [*0F74.0020.0002] # ROMAN SILIQUA SIGN
+10196 ; [*0F75.0020.0002] # ROMAN DENARIUS SIGN
+10197 ; [*0F76.0020.0002] # ROMAN QUINARIUS SIGN
+10198 ; [*0F77.0020.0002] # ROMAN SESTERTIUS SIGN
+10199 ; [*0F78.0020.0002] # ROMAN DUPONDIUS SIGN
+1019A ; [*0F79.0020.0002] # ROMAN AS SIGN
+1019B ; [*0F7A.0020.0002] # ROMAN CENTURIAL SIGN
+101A0 ; [*0F7B.0020.0002] # GREEK SYMBOL TAU RHO
+101D0 ; [*0F7C.0020.0002] # PHAISTOS DISC SIGN PEDESTRIAN
+101D1 ; [*0F7D.0020.0002] # PHAISTOS DISC SIGN PLUMED HEAD
+101D2 ; [*0F7E.0020.0002] # PHAISTOS DISC SIGN TATTOOED HEAD
+101D3 ; [*0F7F.0020.0002] # PHAISTOS DISC SIGN CAPTIVE
+101D4 ; [*0F80.0020.0002] # PHAISTOS DISC SIGN CHILD
+101D5 ; [*0F81.0020.0002] # PHAISTOS DISC SIGN WOMAN
+101D6 ; [*0F82.0020.0002] # PHAISTOS DISC SIGN HELMET
+101D7 ; [*0F83.0020.0002] # PHAISTOS DISC SIGN GAUNTLET
+101D8 ; [*0F84.0020.0002] # PHAISTOS DISC SIGN TIARA
+101D9 ; [*0F85.0020.0002] # PHAISTOS DISC SIGN ARROW
+101DA ; [*0F86.0020.0002] # PHAISTOS DISC SIGN BOW
+101DB ; [*0F87.0020.0002] # PHAISTOS DISC SIGN SHIELD
+101DC ; [*0F88.0020.0002] # PHAISTOS DISC SIGN CLUB
+101DD ; [*0F89.0020.0002] # PHAISTOS DISC SIGN MANACLES
+101DE ; [*0F8A.0020.0002] # PHAISTOS DISC SIGN MATTOCK
+101DF ; [*0F8B.0020.0002] # PHAISTOS DISC SIGN SAW
+101E0 ; [*0F8C.0020.0002] # PHAISTOS DISC SIGN LID
+101E1 ; [*0F8D.0020.0002] # PHAISTOS DISC SIGN BOOMERANG
+101E2 ; [*0F8E.0020.0002] # PHAISTOS DISC SIGN CARPENTRY PLANE
+101E3 ; [*0F8F.0020.0002] # PHAISTOS DISC SIGN DOLIUM
+101E4 ; [*0F90.0020.0002] # PHAISTOS DISC SIGN COMB
+101E5 ; [*0F91.0020.0002] # PHAISTOS DISC SIGN SLING
+101E6 ; [*0F92.0020.0002] # PHAISTOS DISC SIGN COLUMN
+101E7 ; [*0F93.0020.0002] # PHAISTOS DISC SIGN BEEHIVE
+101E8 ; [*0F94.0020.0002] # PHAISTOS DISC SIGN SHIP
+101E9 ; [*0F95.0020.0002] # PHAISTOS DISC SIGN HORN
+101EA ; [*0F96.0020.0002] # PHAISTOS DISC SIGN HIDE
+101EB ; [*0F97.0020.0002] # PHAISTOS DISC SIGN BULLS LEG
+101EC ; [*0F98.0020.0002] # PHAISTOS DISC SIGN CAT
+101ED ; [*0F99.0020.0002] # PHAISTOS DISC SIGN RAM
+101EE ; [*0F9A.0020.0002] # PHAISTOS DISC SIGN EAGLE
+101EF ; [*0F9B.0020.0002] # PHAISTOS DISC SIGN DOVE
+101F0 ; [*0F9C.0020.0002] # PHAISTOS DISC SIGN TUNNY
+101F1 ; [*0F9D.0020.0002] # PHAISTOS DISC SIGN BEE
+101F2 ; [*0F9E.0020.0002] # PHAISTOS DISC SIGN PLANE TREE
+101F3 ; [*0F9F.0020.0002] # PHAISTOS DISC SIGN VINE
+101F4 ; [*0FA0.0020.0002] # PHAISTOS DISC SIGN PAPYRUS
+101F5 ; [*0FA1.0020.0002] # PHAISTOS DISC SIGN ROSETTE
+101F6 ; [*0FA2.0020.0002] # PHAISTOS DISC SIGN LILY
+101F7 ; [*0FA3.0020.0002] # PHAISTOS DISC SIGN OX BACK
+101F8 ; [*0FA4.0020.0002] # PHAISTOS DISC SIGN FLUTE
+101F9 ; [*0FA5.0020.0002] # PHAISTOS DISC SIGN GRATER
+101FA ; [*0FA6.0020.0002] # PHAISTOS DISC SIGN STRAINER
+101FB ; [*0FA7.0020.0002] # PHAISTOS DISC SIGN SMALL AXE
+101FC ; [*0FA8.0020.0002] # PHAISTOS DISC SIGN WAVY BAND
102E0 ; [.0000.0000.0000] # COPTIC EPACT THOUSANDS MARK
-102EA ; [*1847.0020.0002] # COPTIC EPACT NUMBER TEN
-102EB ; [*1848.0020.0002] # COPTIC EPACT NUMBER TWENTY
-102EC ; [*1849.0020.0002] # COPTIC EPACT NUMBER THIRTY
-102ED ; [*184A.0020.0002] # COPTIC EPACT NUMBER FORTY
-102EE ; [*184B.0020.0002] # COPTIC EPACT NUMBER FIFTY
-102EF ; [*184C.0020.0002] # COPTIC EPACT NUMBER SIXTY
-102F0 ; [*184D.0020.0002] # COPTIC EPACT NUMBER SEVENTY
-102F1 ; [*184E.0020.0002] # COPTIC EPACT NUMBER EIGHTY
-102F2 ; [*184F.0020.0002] # COPTIC EPACT NUMBER NINETY
-102F3 ; [*1850.0020.0002] # COPTIC EPACT NUMBER ONE HUNDRED
-102F4 ; [*1851.0020.0002] # COPTIC EPACT NUMBER TWO HUNDRED
-102F5 ; [*1852.0020.0002] # COPTIC EPACT NUMBER THREE HUNDRED
-102F6 ; [*1853.0020.0002] # COPTIC EPACT NUMBER FOUR HUNDRED
-102F7 ; [*1854.0020.0002] # COPTIC EPACT NUMBER FIVE HUNDRED
-102F8 ; [*1855.0020.0002] # COPTIC EPACT NUMBER SIX HUNDRED
-102F9 ; [*1856.0020.0002] # COPTIC EPACT NUMBER SEVEN HUNDRED
-102FA ; [*1857.0020.0002] # COPTIC EPACT NUMBER EIGHT HUNDRED
-102FB ; [*1858.0020.0002] # COPTIC EPACT NUMBER NINE HUNDRED
-10322 ; [*17F4.0020.0002] # OLD ITALIC NUMERAL TEN
-10323 ; [*17F5.0020.0002] # OLD ITALIC NUMERAL FIFTY
-1039F ; [*02F0.0020.0002] # UGARITIC WORD DIVIDER
-103D0 ; [*02F1.0020.0002] # OLD PERSIAN WORD DIVIDER
-103D3 ; [*1859.0020.0002] # OLD PERSIAN NUMBER TEN
-103D4 ; [*185A.0020.0002] # OLD PERSIAN NUMBER TWENTY
-103D5 ; [*185B.0020.0002] # OLD PERSIAN NUMBER HUNDRED
-1056F ; [*0414.0020.0002] # CAUCASIAN ALBANIAN CITATION MARK
-10857 ; [*02D0.0020.0002] # IMPERIAL ARAMAIC SECTION SIGN
-1085B ; [*1868.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN
-1085C ; [*1869.0020.0002] # IMPERIAL ARAMAIC NUMBER TWENTY
-1085D ; [*186A.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE HUNDRED
-1085E ; [*186B.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE THOUSAND
-1085F ; [*186C.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10877 ; [*0F85.0020.0002] # PALMYRENE LEFT-POINTING FLEURON
-10878 ; [*0F86.0020.0002] # PALMYRENE RIGHT-POINTING FLEURON
-1087E ; [*185C.0020.0002] # PALMYRENE NUMBER TEN
-1087F ; [*185D.0020.0002] # PALMYRENE NUMBER TWENTY
-108AD ; [*185E.0020.0002] # NABATAEAN NUMBER TEN
-108AE ; [*185F.0020.0002] # NABATAEAN NUMBER TWENTY
-108AF ; [*1860.0020.0002] # NABATAEAN NUMBER ONE HUNDRED
-10917 ; [*1865.0020.0002] # PHOENICIAN NUMBER TEN
-10918 ; [*1866.0020.0002] # PHOENICIAN NUMBER TWENTY
-10919 ; [*1867.0020.0002] # PHOENICIAN NUMBER ONE HUNDRED
-1091F ; [*02F2.0020.0002] # PHOENICIAN WORD SEPARATOR
-1093F ; [*02EC.0020.0002] # LYDIAN TRIANGULAR MARK
-10A44 ; [*1886.0020.0002] # KHAROSHTHI NUMBER TEN
-10A45 ; [*1887.0020.0002] # KHAROSHTHI NUMBER TWENTY
-10A46 ; [*1888.0020.0002] # KHAROSHTHI NUMBER ONE HUNDRED
-10A47 ; [*1889.0020.0002] # KHAROSHTHI NUMBER ONE THOUSAND
-10A50 ; [*041A.0020.0002] # KHAROSHTHI PUNCTUATION DOT
-10A51 ; [*041B.0020.0002] # KHAROSHTHI PUNCTUATION SMALL CIRCLE
-10A52 ; [*041C.0020.0002] # KHAROSHTHI PUNCTUATION CIRCLE
-10A53 ; [*041D.0020.0002] # KHAROSHTHI PUNCTUATION CRESCENT BAR
-10A54 ; [*041E.0020.0002] # KHAROSHTHI PUNCTUATION MANGALAM
-10A55 ; [*041F.0020.0002] # KHAROSHTHI PUNCTUATION LOTUS
+102EA ; [*1AC0.0020.0002] # COPTIC EPACT NUMBER TEN
+102EB ; [*1AC1.0020.0002] # COPTIC EPACT NUMBER TWENTY
+102EC ; [*1AC2.0020.0002] # COPTIC EPACT NUMBER THIRTY
+102ED ; [*1AC3.0020.0002] # COPTIC EPACT NUMBER FORTY
+102EE ; [*1AC4.0020.0002] # COPTIC EPACT NUMBER FIFTY
+102EF ; [*1AC5.0020.0002] # COPTIC EPACT NUMBER SIXTY
+102F0 ; [*1AC6.0020.0002] # COPTIC EPACT NUMBER SEVENTY
+102F1 ; [*1AC7.0020.0002] # COPTIC EPACT NUMBER EIGHTY
+102F2 ; [*1AC8.0020.0002] # COPTIC EPACT NUMBER NINETY
+102F3 ; [*1AC9.0020.0002] # COPTIC EPACT NUMBER ONE HUNDRED
+102F4 ; [*1ACA.0020.0002] # COPTIC EPACT NUMBER TWO HUNDRED
+102F5 ; [*1ACB.0020.0002] # COPTIC EPACT NUMBER THREE HUNDRED
+102F6 ; [*1ACC.0020.0002] # COPTIC EPACT NUMBER FOUR HUNDRED
+102F7 ; [*1ACD.0020.0002] # COPTIC EPACT NUMBER FIVE HUNDRED
+102F8 ; [*1ACE.0020.0002] # COPTIC EPACT NUMBER SIX HUNDRED
+102F9 ; [*1ACF.0020.0002] # COPTIC EPACT NUMBER SEVEN HUNDRED
+102FA ; [*1AD0.0020.0002] # COPTIC EPACT NUMBER EIGHT HUNDRED
+102FB ; [*1AD1.0020.0002] # COPTIC EPACT NUMBER NINE HUNDRED
+10322 ; [*1A69.0020.0002] # OLD ITALIC NUMERAL TEN
+10323 ; [*1A6A.0020.0002] # OLD ITALIC NUMERAL FIFTY
+1039F ; [*02F6.0020.0002] # UGARITIC WORD DIVIDER
+103D0 ; [*02F7.0020.0002] # OLD PERSIAN WORD DIVIDER
+103D3 ; [*1AD2.0020.0002] # OLD PERSIAN NUMBER TEN
+103D4 ; [*1AD3.0020.0002] # OLD PERSIAN NUMBER TWENTY
+103D5 ; [*1AD4.0020.0002] # OLD PERSIAN NUMBER HUNDRED
+1056F ; [*041B.0020.0002] # CAUCASIAN ALBANIAN CITATION MARK
+10857 ; [*02D2.0020.0002] # IMPERIAL ARAMAIC SECTION SIGN
+1085B ; [*1AE4.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN
+1085C ; [*1AE5.0020.0002] # IMPERIAL ARAMAIC NUMBER TWENTY
+1085D ; [*1AE6.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE HUNDRED
+1085E ; [*1AE7.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE THOUSAND
+1085F ; [*1AE8.0020.0002] # IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10877 ; [*0FA9.0020.0002] # PALMYRENE LEFT-POINTING FLEURON
+10878 ; [*0FAA.0020.0002] # PALMYRENE RIGHT-POINTING FLEURON
+1087E ; [*1AD5.0020.0002] # PALMYRENE NUMBER TEN
+1087F ; [*1AD6.0020.0002] # PALMYRENE NUMBER TWENTY
+108AD ; [*1AD7.0020.0002] # NABATAEAN NUMBER TEN
+108AE ; [*1AD8.0020.0002] # NABATAEAN NUMBER TWENTY
+108AF ; [*1AD9.0020.0002] # NABATAEAN NUMBER ONE HUNDRED
+108FD ; [*1ADA.0020.0002] # HATRAN NUMBER TEN
+108FE ; [*1ADB.0020.0002] # HATRAN NUMBER TWENTY
+108FF ; [*1ADC.0020.0002] # HATRAN NUMBER ONE HUNDRED
+10917 ; [*1AE1.0020.0002] # PHOENICIAN NUMBER TEN
+10918 ; [*1AE2.0020.0002] # PHOENICIAN NUMBER TWENTY
+10919 ; [*1AE3.0020.0002] # PHOENICIAN NUMBER ONE HUNDRED
+1091F ; [*02F8.0020.0002] # PHOENICIAN WORD SEPARATOR
+1093F ; [*02F2.0020.0002] # LYDIAN TRIANGULAR MARK
+109BC ; [*1B59.0020.0002] # MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS
+109BD ; [*1B4E.0020.0002] # MEROITIC CURSIVE FRACTION ONE HALF
+109C9 ; [*1B23.0020.0002] # MEROITIC CURSIVE NUMBER TEN
+109CA ; [*1B24.0020.0002] # MEROITIC CURSIVE NUMBER TWENTY
+109CB ; [*1B25.0020.0002] # MEROITIC CURSIVE NUMBER THIRTY
+109CC ; [*1B26.0020.0002] # MEROITIC CURSIVE NUMBER FORTY
+109CD ; [*1B27.0020.0002] # MEROITIC CURSIVE NUMBER FIFTY
+109CE ; [*1B28.0020.0002] # MEROITIC CURSIVE NUMBER SIXTY
+109CF ; [*1B29.0020.0002] # MEROITIC CURSIVE NUMBER SEVENTY
+109D2 ; [*1B2A.0020.0002] # MEROITIC CURSIVE NUMBER ONE HUNDRED
+109D3 ; [*1B2B.0020.0002] # MEROITIC CURSIVE NUMBER TWO HUNDRED
+109D4 ; [*1B2C.0020.0002] # MEROITIC CURSIVE NUMBER THREE HUNDRED
+109D5 ; [*1B2D.0020.0002] # MEROITIC CURSIVE NUMBER FOUR HUNDRED
+109D6 ; [*1B2E.0020.0002] # MEROITIC CURSIVE NUMBER FIVE HUNDRED
+109D7 ; [*1B2F.0020.0002] # MEROITIC CURSIVE NUMBER SIX HUNDRED
+109D8 ; [*1B30.0020.0002] # MEROITIC CURSIVE NUMBER SEVEN HUNDRED
+109D9 ; [*1B31.0020.0002] # MEROITIC CURSIVE NUMBER EIGHT HUNDRED
+109DA ; [*1B32.0020.0002] # MEROITIC CURSIVE NUMBER NINE HUNDRED
+109DB ; [*1B33.0020.0002] # MEROITIC CURSIVE NUMBER ONE THOUSAND
+109DC ; [*1B34.0020.0002] # MEROITIC CURSIVE NUMBER TWO THOUSAND
+109DD ; [*1B35.0020.0002] # MEROITIC CURSIVE NUMBER THREE THOUSAND
+109DE ; [*1B36.0020.0002] # MEROITIC CURSIVE NUMBER FOUR THOUSAND
+109DF ; [*1B37.0020.0002] # MEROITIC CURSIVE NUMBER FIVE THOUSAND
+109E0 ; [*1B38.0020.0002] # MEROITIC CURSIVE NUMBER SIX THOUSAND
+109E1 ; [*1B39.0020.0002] # MEROITIC CURSIVE NUMBER SEVEN THOUSAND
+109E2 ; [*1B3A.0020.0002] # MEROITIC CURSIVE NUMBER EIGHT THOUSAND
+109E3 ; [*1B3B.0020.0002] # MEROITIC CURSIVE NUMBER NINE THOUSAND
+109E4 ; [*1B3C.0020.0002] # MEROITIC CURSIVE NUMBER TEN THOUSAND
+109E5 ; [*1B3D.0020.0002] # MEROITIC CURSIVE NUMBER TWENTY THOUSAND
+109E6 ; [*1B3E.0020.0002] # MEROITIC CURSIVE NUMBER THIRTY THOUSAND
+109E7 ; [*1B3F.0020.0002] # MEROITIC CURSIVE NUMBER FORTY THOUSAND
+109E8 ; [*1B40.0020.0002] # MEROITIC CURSIVE NUMBER FIFTY THOUSAND
+109E9 ; [*1B41.0020.0002] # MEROITIC CURSIVE NUMBER SIXTY THOUSAND
+109EA ; [*1B42.0020.0002] # MEROITIC CURSIVE NUMBER SEVENTY THOUSAND
+109EB ; [*1B43.0020.0002] # MEROITIC CURSIVE NUMBER EIGHTY THOUSAND
+109EC ; [*1B44.0020.0002] # MEROITIC CURSIVE NUMBER NINETY THOUSAND
+109ED ; [*1B45.0020.0002] # MEROITIC CURSIVE NUMBER ONE HUNDRED THOUSAND
+109EE ; [*1B46.0020.0002] # MEROITIC CURSIVE NUMBER TWO HUNDRED THOUSAND
+109EF ; [*1B47.0020.0002] # MEROITIC CURSIVE NUMBER THREE HUNDRED THOUSAND
+109F0 ; [*1B48.0020.0002] # MEROITIC CURSIVE NUMBER FOUR HUNDRED THOUSAND
+109F1 ; [*1B49.0020.0002] # MEROITIC CURSIVE NUMBER FIVE HUNDRED THOUSAND
+109F2 ; [*1B4A.0020.0002] # MEROITIC CURSIVE NUMBER SIX HUNDRED THOUSAND
+109F3 ; [*1B4B.0020.0002] # MEROITIC CURSIVE NUMBER SEVEN HUNDRED THOUSAND
+109F4 ; [*1B4C.0020.0002] # MEROITIC CURSIVE NUMBER EIGHT HUNDRED THOUSAND
+109F5 ; [*1B4D.0020.0002] # MEROITIC CURSIVE NUMBER NINE HUNDRED THOUSAND
+109F6 ; [*1B4F.0020.0002] # MEROITIC CURSIVE FRACTION ONE TWELFTH
+109F7 ; [*1B50.0020.0002] # MEROITIC CURSIVE FRACTION TWO TWELFTHS
+109F8 ; [*1B51.0020.0002] # MEROITIC CURSIVE FRACTION THREE TWELFTHS
+109F9 ; [*1B52.0020.0002] # MEROITIC CURSIVE FRACTION FOUR TWELFTHS
+109FA ; [*1B53.0020.0002] # MEROITIC CURSIVE FRACTION FIVE TWELFTHS
+109FB ; [*1B54.0020.0002] # MEROITIC CURSIVE FRACTION SIX TWELFTHS
+109FC ; [*1B55.0020.0002] # MEROITIC CURSIVE FRACTION SEVEN TWELFTHS
+109FD ; [*1B56.0020.0002] # MEROITIC CURSIVE FRACTION EIGHT TWELFTHS
+109FE ; [*1B57.0020.0002] # MEROITIC CURSIVE FRACTION NINE TWELFTHS
+109FF ; [*1B58.0020.0002] # MEROITIC CURSIVE FRACTION TEN TWELFTHS
+10A44 ; [*1B04.0020.0002] # KHAROSHTHI NUMBER TEN
+10A45 ; [*1B05.0020.0002] # KHAROSHTHI NUMBER TWENTY
+10A46 ; [*1B06.0020.0002] # KHAROSHTHI NUMBER ONE HUNDRED
+10A47 ; [*1B07.0020.0002] # KHAROSHTHI NUMBER ONE THOUSAND
+10A50 ; [*0421.0020.0002] # KHAROSHTHI PUNCTUATION DOT
+10A51 ; [*0422.0020.0002] # KHAROSHTHI PUNCTUATION SMALL CIRCLE
+10A52 ; [*0423.0020.0002] # KHAROSHTHI PUNCTUATION CIRCLE
+10A53 ; [*0424.0020.0002] # KHAROSHTHI PUNCTUATION CRESCENT BAR
+10A54 ; [*0425.0020.0002] # KHAROSHTHI PUNCTUATION MANGALAM
+10A55 ; [*0426.0020.0002] # KHAROSHTHI PUNCTUATION LOTUS
10A56 ; [*02A7.0020.0002] # KHAROSHTHI PUNCTUATION DANDA
10A57 ; [*02A8.0020.0002] # KHAROSHTHI PUNCTUATION DOUBLE DANDA
-10A58 ; [*0420.0020.0002] # KHAROSHTHI PUNCTUATION LINES
-10A7E ; [*1861.0020.0002] # OLD SOUTH ARABIAN NUMBER FIFTY
-10A7F ; [*1862.0020.0002] # OLD SOUTH ARABIAN NUMERIC INDICATOR
-10A9E ; [*1863.0020.0002] # OLD NORTH ARABIAN NUMBER TEN
-10A9F ; [*1864.0020.0002] # OLD NORTH ARABIAN NUMBER TWENTY
-10AED ; [*186D.0020.0002] # MANICHAEAN NUMBER TEN
-10AEE ; [*186E.0020.0002] # MANICHAEAN NUMBER TWENTY
-10AEF ; [*186F.0020.0002] # MANICHAEAN NUMBER ONE HUNDRED
-10AF0 ; [*0422.0020.0002] # MANICHAEAN PUNCTUATION STAR
-10AF1 ; [*0423.0020.0002] # MANICHAEAN PUNCTUATION FLEURON
-10AF2 ; [*0424.0020.0002] # MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT
-10AF3 ; [*0425.0020.0002] # MANICHAEAN PUNCTUATION DOT WITHIN DOT
-10AF4 ; [*0426.0020.0002] # MANICHAEAN PUNCTUATION DOT
-10AF5 ; [*0427.0020.0002] # MANICHAEAN PUNCTUATION TWO DOTS
-10AF6 ; [*0428.0020.0002] # MANICHAEAN PUNCTUATION LINE FILLER
-10B39 ; [*0421.0020.0002] # AVESTAN ABBREVIATION MARK
-10B3A ; [*02D1.0020.0002] # TINY TWO DOTS OVER ONE DOT PUNCTUATION
-10B3B ; [*02D2.0020.0002] # SMALL TWO DOTS OVER ONE DOT PUNCTUATION
-10B3C ; [*02D3.0020.0002] # LARGE TWO DOTS OVER ONE DOT PUNCTUATION
-10B3D ; [*02D4.0020.0002] # LARGE ONE DOT OVER TWO DOTS PUNCTUATION
-10B3E ; [*02D5.0020.0002] # LARGE TWO RINGS OVER ONE RING PUNCTUATION
-10B3F ; [*02D6.0020.0002] # LARGE ONE RING OVER TWO RINGS PUNCTUATION
-10B5C ; [*1870.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TEN
-10B5D ; [*1871.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWENTY
-10B5E ; [*1872.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
-10B5F ; [*1873.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
-10B7C ; [*1874.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TEN
-10B7D ; [*1875.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWENTY
-10B7E ; [*1876.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
-10B7F ; [*1877.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10B99 ; [*0429.0020.0002] # PSALTER PAHLAVI SECTION MARK
-10B9A ; [*042A.0020.0002] # PSALTER PAHLAVI TURNED SECTION MARK
-10B9B ; [*042B.0020.0002] # PSALTER PAHLAVI FOUR DOTS WITH CROSS
-10B9C ; [*042C.0020.0002] # PSALTER PAHLAVI FOUR DOTS WITH DOT
-10BAD ; [*1878.0020.0002] # PSALTER PAHLAVI NUMBER TEN
-10BAE ; [*1879.0020.0002] # PSALTER PAHLAVI NUMBER TWENTY
-10BAF ; [*187A.0020.0002] # PSALTER PAHLAVI NUMBER ONE HUNDRED
-10E69 ; [*17DD.0020.0002] # RUMI NUMBER TEN
-10E6A ; [*17DE.0020.0002] # RUMI NUMBER TWENTY
-10E6B ; [*17DF.0020.0002] # RUMI NUMBER THIRTY
-10E6C ; [*17E0.0020.0002] # RUMI NUMBER FORTY
-10E6D ; [*17E1.0020.0002] # RUMI NUMBER FIFTY
-10E6E ; [*17E2.0020.0002] # RUMI NUMBER SIXTY
-10E6F ; [*17E3.0020.0002] # RUMI NUMBER SEVENTY
-10E70 ; [*17E4.0020.0002] # RUMI NUMBER EIGHTY
-10E71 ; [*17E5.0020.0002] # RUMI NUMBER NINETY
-10E72 ; [*17E6.0020.0002] # RUMI NUMBER ONE HUNDRED
-10E73 ; [*17E7.0020.0002] # RUMI NUMBER TWO HUNDRED
-10E74 ; [*17E8.0020.0002] # RUMI NUMBER THREE HUNDRED
-10E75 ; [*17E9.0020.0002] # RUMI NUMBER FOUR HUNDRED
-10E76 ; [*17EA.0020.0002] # RUMI NUMBER FIVE HUNDRED
-10E77 ; [*17EB.0020.0002] # RUMI NUMBER SIX HUNDRED
-10E78 ; [*17EC.0020.0002] # RUMI NUMBER SEVEN HUNDRED
-10E79 ; [*17ED.0020.0002] # RUMI NUMBER EIGHT HUNDRED
-10E7A ; [*17EE.0020.0002] # RUMI NUMBER NINE HUNDRED
-10E7B ; [*17EF.0020.0002] # RUMI FRACTION ONE HALF
-10E7C ; [*17F0.0020.0002] # RUMI FRACTION ONE QUARTER
-10E7D ; [*17F1.0020.0002] # RUMI FRACTION ONE THIRD
-10E7E ; [*17F2.0020.0002] # RUMI FRACTION TWO THIRDS
+10A58 ; [*0427.0020.0002] # KHAROSHTHI PUNCTUATION LINES
+10A7E ; [*1ADD.0020.0002] # OLD SOUTH ARABIAN NUMBER FIFTY
+10A7F ; [*1ADE.0020.0002] # OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A9E ; [*1ADF.0020.0002] # OLD NORTH ARABIAN NUMBER TEN
+10A9F ; [*1AE0.0020.0002] # OLD NORTH ARABIAN NUMBER TWENTY
+10AED ; [*1AE9.0020.0002] # MANICHAEAN NUMBER TEN
+10AEE ; [*1AEA.0020.0002] # MANICHAEAN NUMBER TWENTY
+10AEF ; [*1AEB.0020.0002] # MANICHAEAN NUMBER ONE HUNDRED
+10AF0 ; [*0429.0020.0002] # MANICHAEAN PUNCTUATION STAR
+10AF1 ; [*042A.0020.0002] # MANICHAEAN PUNCTUATION FLEURON
+10AF2 ; [*042B.0020.0002] # MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT
+10AF3 ; [*042C.0020.0002] # MANICHAEAN PUNCTUATION DOT WITHIN DOT
+10AF4 ; [*042D.0020.0002] # MANICHAEAN PUNCTUATION DOT
+10AF5 ; [*042E.0020.0002] # MANICHAEAN PUNCTUATION TWO DOTS
+10AF6 ; [*042F.0020.0002] # MANICHAEAN PUNCTUATION LINE FILLER
+10B39 ; [*0428.0020.0002] # AVESTAN ABBREVIATION MARK
+10B3A ; [*02D3.0020.0002] # TINY TWO DOTS OVER ONE DOT PUNCTUATION
+10B3B ; [*02D4.0020.0002] # SMALL TWO DOTS OVER ONE DOT PUNCTUATION
+10B3C ; [*02D5.0020.0002] # LARGE TWO DOTS OVER ONE DOT PUNCTUATION
+10B3D ; [*02D6.0020.0002] # LARGE ONE DOT OVER TWO DOTS PUNCTUATION
+10B3E ; [*02D7.0020.0002] # LARGE TWO RINGS OVER ONE RING PUNCTUATION
+10B3F ; [*02D8.0020.0002] # LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B5C ; [*1AEC.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TEN
+10B5D ; [*1AED.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWENTY
+10B5E ; [*1AEE.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
+10B5F ; [*1AEF.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B7C ; [*1AF0.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TEN
+10B7D ; [*1AF1.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWENTY
+10B7E ; [*1AF2.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
+10B7F ; [*1AF3.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B99 ; [*0430.0020.0002] # PSALTER PAHLAVI SECTION MARK
+10B9A ; [*0431.0020.0002] # PSALTER PAHLAVI TURNED SECTION MARK
+10B9B ; [*0432.0020.0002] # PSALTER PAHLAVI FOUR DOTS WITH CROSS
+10B9C ; [*0433.0020.0002] # PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BAD ; [*1AF4.0020.0002] # PSALTER PAHLAVI NUMBER TEN
+10BAE ; [*1AF5.0020.0002] # PSALTER PAHLAVI NUMBER TWENTY
+10BAF ; [*1AF6.0020.0002] # PSALTER PAHLAVI NUMBER ONE HUNDRED
+10CFC ; [*1A6B.0020.0002] # OLD HUNGARIAN NUMBER TEN
+10CFD ; [*1A6C.0020.0002] # OLD HUNGARIAN NUMBER FIFTY
+10CFE ; [*1A6D.0020.0002] # OLD HUNGARIAN NUMBER ONE HUNDRED
+10CFF ; [*1A6E.0020.0002] # OLD HUNGARIAN NUMBER ONE THOUSAND
+10E69 ; [*1A52.0020.0002] # RUMI NUMBER TEN
+10E6A ; [*1A53.0020.0002] # RUMI NUMBER TWENTY
+10E6B ; [*1A54.0020.0002] # RUMI NUMBER THIRTY
+10E6C ; [*1A55.0020.0002] # RUMI NUMBER FORTY
+10E6D ; [*1A56.0020.0002] # RUMI NUMBER FIFTY
+10E6E ; [*1A57.0020.0002] # RUMI NUMBER SIXTY
+10E6F ; [*1A58.0020.0002] # RUMI NUMBER SEVENTY
+10E70 ; [*1A59.0020.0002] # RUMI NUMBER EIGHTY
+10E71 ; [*1A5A.0020.0002] # RUMI NUMBER NINETY
+10E72 ; [*1A5B.0020.0002] # RUMI NUMBER ONE HUNDRED
+10E73 ; [*1A5C.0020.0002] # RUMI NUMBER TWO HUNDRED
+10E74 ; [*1A5D.0020.0002] # RUMI NUMBER THREE HUNDRED
+10E75 ; [*1A5E.0020.0002] # RUMI NUMBER FOUR HUNDRED
+10E76 ; [*1A5F.0020.0002] # RUMI NUMBER FIVE HUNDRED
+10E77 ; [*1A60.0020.0002] # RUMI NUMBER SIX HUNDRED
+10E78 ; [*1A61.0020.0002] # RUMI NUMBER SEVEN HUNDRED
+10E79 ; [*1A62.0020.0002] # RUMI NUMBER EIGHT HUNDRED
+10E7A ; [*1A63.0020.0002] # RUMI NUMBER NINE HUNDRED
+10E7B ; [*1A64.0020.0002] # RUMI FRACTION ONE HALF
+10E7C ; [*1A65.0020.0002] # RUMI FRACTION ONE QUARTER
+10E7D ; [*1A66.0020.0002] # RUMI FRACTION ONE THIRD
+10E7E ; [*1A67.0020.0002] # RUMI FRACTION TWO THIRDS
11047 ; [*02A9.0020.0002] # BRAHMI DANDA
11048 ; [*02AA.0020.0002] # BRAHMI DOUBLE DANDA
-11049 ; [*0415.0020.0002] # BRAHMI PUNCTUATION DOT
-1104A ; [*0416.0020.0002] # BRAHMI PUNCTUATION DOUBLE DOT
-1104B ; [*0417.0020.0002] # BRAHMI PUNCTUATION LINE
-1104C ; [*0418.0020.0002] # BRAHMI PUNCTUATION CRESCENT BAR
-1104D ; [*0419.0020.0002] # BRAHMI PUNCTUATION LOTUS
-1105B ; [*187B.0020.0002] # BRAHMI NUMBER TEN
-1105C ; [*187C.0020.0002] # BRAHMI NUMBER TWENTY
-1105D ; [*187D.0020.0002] # BRAHMI NUMBER THIRTY
-1105E ; [*187E.0020.0002] # BRAHMI NUMBER FORTY
-1105F ; [*187F.0020.0002] # BRAHMI NUMBER FIFTY
-11060 ; [*1880.0020.0002] # BRAHMI NUMBER SIXTY
-11061 ; [*1881.0020.0002] # BRAHMI NUMBER SEVENTY
-11062 ; [*1882.0020.0002] # BRAHMI NUMBER EIGHTY
-11063 ; [*1883.0020.0002] # BRAHMI NUMBER NINETY
-11064 ; [*1884.0020.0002] # BRAHMI NUMBER ONE HUNDRED
-11065 ; [*1885.0020.0002] # BRAHMI NUMBER ONE THOUSAND
-110BB ; [*042D.0020.0002] # KAITHI ABBREVIATION SIGN
-110BC ; [*042E.0020.0002] # KAITHI ENUMERATION SIGN
+11049 ; [*041C.0020.0002] # BRAHMI PUNCTUATION DOT
+1104A ; [*041D.0020.0002] # BRAHMI PUNCTUATION DOUBLE DOT
+1104B ; [*041E.0020.0002] # BRAHMI PUNCTUATION LINE
+1104C ; [*041F.0020.0002] # BRAHMI PUNCTUATION CRESCENT BAR
+1104D ; [*0420.0020.0002] # BRAHMI PUNCTUATION LOTUS
+1105B ; [*1AF9.0020.0002] # BRAHMI NUMBER TEN
+1105C ; [*1AFA.0020.0002] # BRAHMI NUMBER TWENTY
+1105D ; [*1AFB.0020.0002] # BRAHMI NUMBER THIRTY
+1105E ; [*1AFC.0020.0002] # BRAHMI NUMBER FORTY
+1105F ; [*1AFD.0020.0002] # BRAHMI NUMBER FIFTY
+11060 ; [*1AFE.0020.0002] # BRAHMI NUMBER SIXTY
+11061 ; [*1AFF.0020.0002] # BRAHMI NUMBER SEVENTY
+11062 ; [*1B00.0020.0002] # BRAHMI NUMBER EIGHTY
+11063 ; [*1B01.0020.0002] # BRAHMI NUMBER NINETY
+11064 ; [*1B02.0020.0002] # BRAHMI NUMBER ONE HUNDRED
+11065 ; [*1B03.0020.0002] # BRAHMI NUMBER ONE THOUSAND
+110BB ; [*0434.0020.0002] # KAITHI ABBREVIATION SIGN
+110BC ; [*0435.0020.0002] # KAITHI ENUMERATION SIGN
110BD ; [.0000.0000.0000] # KAITHI NUMBER SIGN
-110BE ; [*02D7.0020.0002] # KAITHI SECTION MARK
-110BF ; [*02D8.0020.0002] # KAITHI DOUBLE SECTION MARK
+110BE ; [*02D9.0020.0002] # KAITHI SECTION MARK
+110BF ; [*02DA.0020.0002] # KAITHI DOUBLE SECTION MARK
110C0 ; [*02AB.0020.0002] # KAITHI DANDA
110C1 ; [*02AC.0020.0002] # KAITHI DOUBLE DANDA
-11140 ; [*02D9.0020.0002] # CHAKMA SECTION MARK
+11140 ; [*02DB.0020.0002] # CHAKMA SECTION MARK
11141 ; [*02AD.0020.0002] # CHAKMA DANDA
11142 ; [*02AE.0020.0002] # CHAKMA DOUBLE DANDA
11143 ; [*0271.0020.0002] # CHAKMA QUESTION MARK
-11174 ; [*042F.0020.0002] # MAHAJANI ABBREVIATION SIGN
-11175 ; [*0430.0020.0002] # MAHAJANI SECTION MARK
+11174 ; [*0436.0020.0002] # MAHAJANI ABBREVIATION SIGN
+11175 ; [*0437.0020.0002] # MAHAJANI SECTION MARK
111C5 ; [*02AF.0020.0002] # SHARADA DANDA
111C6 ; [*02B0.0020.0002] # SHARADA DOUBLE DANDA
-111C7 ; [*0432.0020.0002] # SHARADA ABBREVIATION SIGN
-111C8 ; [*02DA.0020.0002] # SHARADA SEPARATOR
-111CD ; [*0431.0020.0002] # SHARADA SUTRA MARK
-111EA ; [*188A.0020.0002] # SINHALA ARCHAIC NUMBER TEN
-111EB ; [*188B.0020.0002] # SINHALA ARCHAIC NUMBER TWENTY
-111EC ; [*188C.0020.0002] # SINHALA ARCHAIC NUMBER THIRTY
-111ED ; [*188D.0020.0002] # SINHALA ARCHAIC NUMBER FORTY
-111EE ; [*188E.0020.0002] # SINHALA ARCHAIC NUMBER FIFTY
-111EF ; [*188F.0020.0002] # SINHALA ARCHAIC NUMBER SIXTY
-111F0 ; [*1890.0020.0002] # SINHALA ARCHAIC NUMBER SEVENTY
-111F1 ; [*1891.0020.0002] # SINHALA ARCHAIC NUMBER EIGHTY
-111F2 ; [*1892.0020.0002] # SINHALA ARCHAIC NUMBER NINETY
-111F3 ; [*1893.0020.0002] # SINHALA ARCHAIC NUMBER ONE HUNDRED
-111F4 ; [*1894.0020.0002] # SINHALA ARCHAIC NUMBER ONE THOUSAND
+111C7 ; [*0439.0020.0002] # SHARADA ABBREVIATION SIGN
+111C8 ; [*02DC.0020.0002] # SHARADA SEPARATOR
+111C9 ; [*043A.0020.0002] # SHARADA SANDHI MARK
+111CD ; [*0438.0020.0002] # SHARADA SUTRA MARK
+111DB ; [*043B.0020.0002] # SHARADA SIGN SIDDHAM
+111DD ; [*043C.0020.0002] # SHARADA CONTINUATION SIGN
+111DE ; [*02DD.0020.0002] # SHARADA SECTION MARK-1
+111DF ; [*02DE.0020.0002] # SHARADA SECTION MARK-2
+111EA ; [*1B08.0020.0002] # SINHALA ARCHAIC NUMBER TEN
+111EB ; [*1B09.0020.0002] # SINHALA ARCHAIC NUMBER TWENTY
+111EC ; [*1B0A.0020.0002] # SINHALA ARCHAIC NUMBER THIRTY
+111ED ; [*1B0B.0020.0002] # SINHALA ARCHAIC NUMBER FORTY
+111EE ; [*1B0C.0020.0002] # SINHALA ARCHAIC NUMBER FIFTY
+111EF ; [*1B0D.0020.0002] # SINHALA ARCHAIC NUMBER SIXTY
+111F0 ; [*1B0E.0020.0002] # SINHALA ARCHAIC NUMBER SEVENTY
+111F1 ; [*1B0F.0020.0002] # SINHALA ARCHAIC NUMBER EIGHTY
+111F2 ; [*1B10.0020.0002] # SINHALA ARCHAIC NUMBER NINETY
+111F3 ; [*1B11.0020.0002] # SINHALA ARCHAIC NUMBER ONE HUNDRED
+111F4 ; [*1B12.0020.0002] # SINHALA ARCHAIC NUMBER ONE THOUSAND
11238 ; [*02B1.0020.0002] # KHOJKI DANDA
11239 ; [*02B2.0020.0002] # KHOJKI DOUBLE DANDA
-1123A ; [*0433.0020.0002] # KHOJKI WORD SEPARATOR
-1123B ; [*0434.0020.0002] # KHOJKI SECTION MARK
-1123C ; [*0435.0020.0002] # KHOJKI DOUBLE SECTION MARK
-1123D ; [*0436.0020.0002] # KHOJKI ABBREVIATION SIGN
+1123A ; [*043D.0020.0002] # KHOJKI WORD SEPARATOR
+1123B ; [*043E.0020.0002] # KHOJKI SECTION MARK
+1123C ; [*043F.0020.0002] # KHOJKI DOUBLE SECTION MARK
+1123D ; [*0440.0020.0002] # KHOJKI ABBREVIATION SIGN
+112A9 ; [*02DF.0020.0002] # MULTANI SECTION MARK
11366 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT ZERO
11367 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT ONE
11368 ; [.0000.0000.0000] # COMBINING GRANTHA DIGIT TWO
@@ -4506,426 +4582,446 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
11372 ; [.0000.0000.0000] # COMBINING GRANTHA LETTER NA
11373 ; [.0000.0000.0000] # COMBINING GRANTHA LETTER VI
11374 ; [.0000.0000.0000] # COMBINING GRANTHA LETTER PA
-114C6 ; [*0437.0020.0002] # TIRHUTA ABBREVIATION SIGN
-115C1 ; [*0438.0020.0002] # SIDDHAM SIGN SIDDHAM
+114C6 ; [*0441.0020.0002] # TIRHUTA ABBREVIATION SIGN
+115C1 ; [*0442.0020.0002] # SIDDHAM SIGN SIDDHAM
115C2 ; [*02B3.0020.0002] # SIDDHAM DANDA
115C3 ; [*02B4.0020.0002] # SIDDHAM DOUBLE DANDA
-115C4 ; [*0439.0020.0002] # SIDDHAM SEPARATOR DOT
-115C5 ; [*043A.0020.0002] # SIDDHAM SEPARATOR BAR
-115C6 ; [*043B.0020.0002] # SIDDHAM REPETITION MARK-1
-115C7 ; [*043C.0020.0002] # SIDDHAM REPETITION MARK-2
-115C8 ; [*043D.0020.0002] # SIDDHAM REPETITION MARK-3
-115C9 ; [*043E.0020.0002] # SIDDHAM END OF TEXT MARK
+115C4 ; [*0443.0020.0002] # SIDDHAM SEPARATOR DOT
+115C5 ; [*0444.0020.0002] # SIDDHAM SEPARATOR BAR
+115C6 ; [*0445.0020.0002] # SIDDHAM REPETITION MARK-1
+115C7 ; [*0446.0020.0002] # SIDDHAM REPETITION MARK-2
+115C8 ; [*0447.0020.0002] # SIDDHAM REPETITION MARK-3
+115C9 ; [*0448.0020.0002] # SIDDHAM END OF TEXT MARK
+115CA ; [*0449.0020.0002] # SIDDHAM SECTION MARK WITH TRIDENT AND U-SHAPED ORNAMENTS
+115CB ; [*044A.0020.0002] # SIDDHAM SECTION MARK WITH TRIDENT AND DOTTED CRESCENTS
+115CC ; [*044B.0020.0002] # SIDDHAM SECTION MARK WITH RAYS AND DOTTED CRESCENTS
+115CD ; [*044C.0020.0002] # SIDDHAM SECTION MARK WITH RAYS AND DOTTED DOUBLE CRESCENTS
+115CE ; [*044D.0020.0002] # SIDDHAM SECTION MARK WITH RAYS AND DOTTED TRIPLE CRESCENTS
+115CF ; [*044E.0020.0002] # SIDDHAM SECTION MARK DOUBLE RING
+115D0 ; [*044F.0020.0002] # SIDDHAM SECTION MARK DOUBLE RING WITH RAYS
+115D1 ; [*0450.0020.0002] # SIDDHAM SECTION MARK WITH DOUBLE CRESCENTS
+115D2 ; [*0451.0020.0002] # SIDDHAM SECTION MARK WITH TRIPLE CRESCENTS
+115D3 ; [*0452.0020.0002] # SIDDHAM SECTION MARK WITH QUADRUPLE CRESCENTS
+115D4 ; [*0453.0020.0002] # SIDDHAM SECTION MARK WITH SEPTUPLE CRESCENTS
+115D5 ; [*0454.0020.0002] # SIDDHAM SECTION MARK WITH CIRCLES AND RAYS
+115D6 ; [*0455.0020.0002] # SIDDHAM SECTION MARK WITH CIRCLES AND TWO ENCLOSURES
+115D7 ; [*0456.0020.0002] # SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
11641 ; [*02B5.0020.0002] # MODI DANDA
11642 ; [*02B6.0020.0002] # MODI DOUBLE DANDA
-11643 ; [*043F.0020.0002] # MODI ABBREVIATION SIGN
-118EA ; [*1895.0020.0002] # WARANG CITI NUMBER TEN
-118EB ; [*1896.0020.0002] # WARANG CITI NUMBER TWENTY
-118EC ; [*1897.0020.0002] # WARANG CITI NUMBER THIRTY
-118ED ; [*1898.0020.0002] # WARANG CITI NUMBER FORTY
-118EE ; [*1899.0020.0002] # WARANG CITI NUMBER FIFTY
-118EF ; [*189A.0020.0002] # WARANG CITI NUMBER SIXTY
-118F0 ; [*189B.0020.0002] # WARANG CITI NUMBER SEVENTY
-118F1 ; [*189C.0020.0002] # WARANG CITI NUMBER EIGHTY
-118F2 ; [*189D.0020.0002] # WARANG CITI NUMBER NINETY
-12432 ; [*18A5.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
-12433 ; [*18A6.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
-1245A ; [*18A7.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD DISH
-1245B ; [*18A8.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
-1245C ; [*18A9.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
-1245D ; [*18AA.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
-1245E ; [*18AB.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
-1245F ; [*18AC.0020.0002] # CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
-12460 ; [*18AD.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
-12461 ; [*18AE.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
-12462 ; [*18AF.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-12463 ; [*18B0.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER GUR
-12464 ; [*18B1.0020.0002] # CUNEIFORM NUMERIC SIGN ONE HALF GUR
-12465 ; [*18B2.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD
-12466 ; [*18B3.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS
-12467 ; [*18B4.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE FORTY
-12468 ; [*18B5.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE FIFTY
-12470 ; [*02F3.0020.0002] # CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
-12471 ; [*02F4.0020.0002] # CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
-12472 ; [*02F5.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
-12473 ; [*02F6.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
-12474 ; [*02F7.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
-16A6E ; [*02B7.0020.0002] # MRO DANDA
-16A6F ; [*02B8.0020.0002] # MRO DOUBLE DANDA
+11643 ; [*0457.0020.0002] # MODI ABBREVIATION SIGN
+1173A ; [*1AF7.0020.0002] # AHOM NUMBER TEN
+1173B ; [*1AF8.0020.0002] # AHOM NUMBER TWENTY
+1173C ; [*02B7.0020.0002] # AHOM SIGN SMALL SECTION
+1173D ; [*02B8.0020.0002] # AHOM SIGN SECTION
+1173E ; [*02E0.0020.0002] # AHOM SIGN RULAI
+1173F ; [*0530.0020.0002] # AHOM SYMBOL VI
+118EA ; [*1B13.0020.0002] # WARANG CITI NUMBER TEN
+118EB ; [*1B14.0020.0002] # WARANG CITI NUMBER TWENTY
+118EC ; [*1B15.0020.0002] # WARANG CITI NUMBER THIRTY
+118ED ; [*1B16.0020.0002] # WARANG CITI NUMBER FORTY
+118EE ; [*1B17.0020.0002] # WARANG CITI NUMBER FIFTY
+118EF ; [*1B18.0020.0002] # WARANG CITI NUMBER SIXTY
+118F0 ; [*1B19.0020.0002] # WARANG CITI NUMBER SEVENTY
+118F1 ; [*1B1A.0020.0002] # WARANG CITI NUMBER EIGHTY
+118F2 ; [*1B1B.0020.0002] # WARANG CITI NUMBER NINETY
+12432 ; [*1B5A.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
+12433 ; [*1B5B.0020.0002] # CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
+1245A ; [*1B5C.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD DISH
+1245B ; [*1B5D.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
+1245C ; [*1B5E.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
+1245D ; [*1B5F.0020.0002] # CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
+1245E ; [*1B60.0020.0002] # CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
+1245F ; [*1B61.0020.0002] # CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
+12460 ; [*1B62.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
+12461 ; [*1B63.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
+12462 ; [*1B64.0020.0002] # CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12463 ; [*1B65.0020.0002] # CUNEIFORM NUMERIC SIGN ONE QUARTER GUR
+12464 ; [*1B66.0020.0002] # CUNEIFORM NUMERIC SIGN ONE HALF GUR
+12465 ; [*1B67.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD
+12466 ; [*1B68.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS
+12467 ; [*1B69.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE FORTY
+12468 ; [*1B6A.0020.0002] # CUNEIFORM NUMERIC SIGN ELAMITE FIFTY
+12470 ; [*02F9.0020.0002] # CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
+12471 ; [*02FA.0020.0002] # CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
+12472 ; [*02FB.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
+12473 ; [*02FC.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+12474 ; [*02FD.0020.0002] # CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+16A6E ; [*02B9.0020.0002] # MRO DANDA
+16A6F ; [*02BA.0020.0002] # MRO DOUBLE DANDA
16AF5 ; [*0285.0020.0002] # BASSA VAH FULL STOP
-16B37 ; [*0440.0020.0002] # PAHAWH HMONG SIGN VOS THOM
-16B38 ; [*0441.0020.0002] # PAHAWH HMONG SIGN VOS TSHAB CEEB
-16B39 ; [*0442.0020.0002] # PAHAWH HMONG SIGN CIM CHEEM
-16B3A ; [*0443.0020.0002] # PAHAWH HMONG SIGN VOS THIAB
-16B3B ; [*0444.0020.0002] # PAHAWH HMONG SIGN VOS FEEM
-16B3C ; [*0F87.0020.0002] # PAHAWH HMONG SIGN XYEEM NTXIV
-16B3D ; [*0F88.0020.0002] # PAHAWH HMONG SIGN XYEEM RHO
-16B3E ; [*0F89.0020.0002] # PAHAWH HMONG SIGN XYEEM TOV
-16B3F ; [*0F8A.0020.0002] # PAHAWH HMONG SIGN XYEEM FAIB
-16B44 ; [*0445.0020.0002] # PAHAWH HMONG SIGN XAUS
-16B45 ; [*0F8B.0020.0002] # PAHAWH HMONG SIGN CIM TSOV ROG
-16B5B ; [*189E.0020.0002] # PAHAWH HMONG NUMBER TENS
-16B5C ; [*189F.0020.0002] # PAHAWH HMONG NUMBER HUNDREDS
-16B5D ; [*18A0.0020.0002] # PAHAWH HMONG NUMBER TEN THOUSANDS
-16B5E ; [*18A1.0020.0002] # PAHAWH HMONG NUMBER MILLIONS
-16B5F ; [*18A2.0020.0002] # PAHAWH HMONG NUMBER HUNDRED MILLIONS
-16B60 ; [*18A3.0020.0002] # PAHAWH HMONG NUMBER TEN BILLIONS
-16B61 ; [*18A4.0020.0002] # PAHAWH HMONG NUMBER TRILLIONS
-1BC9C ; [*1171.0020.0002] # DUPLOYAN SIGN O WITH CROSS
+16B37 ; [*0458.0020.0002] # PAHAWH HMONG SIGN VOS THOM
+16B38 ; [*0459.0020.0002] # PAHAWH HMONG SIGN VOS TSHAB CEEB
+16B39 ; [*045A.0020.0002] # PAHAWH HMONG SIGN CIM CHEEM
+16B3A ; [*045B.0020.0002] # PAHAWH HMONG SIGN VOS THIAB
+16B3B ; [*045C.0020.0002] # PAHAWH HMONG SIGN VOS FEEM
+16B3C ; [*0FAB.0020.0002] # PAHAWH HMONG SIGN XYEEM NTXIV
+16B3D ; [*0FAC.0020.0002] # PAHAWH HMONG SIGN XYEEM RHO
+16B3E ; [*0FAD.0020.0002] # PAHAWH HMONG SIGN XYEEM TOV
+16B3F ; [*0FAE.0020.0002] # PAHAWH HMONG SIGN XYEEM FAIB
+16B44 ; [*045D.0020.0002] # PAHAWH HMONG SIGN XAUS
+16B45 ; [*0FAF.0020.0002] # PAHAWH HMONG SIGN CIM TSOV ROG
+16B5B ; [*1B1C.0020.0002] # PAHAWH HMONG NUMBER TENS
+16B5C ; [*1B1D.0020.0002] # PAHAWH HMONG NUMBER HUNDREDS
+16B5D ; [*1B1E.0020.0002] # PAHAWH HMONG NUMBER TEN THOUSANDS
+16B5E ; [*1B1F.0020.0002] # PAHAWH HMONG NUMBER MILLIONS
+16B5F ; [*1B20.0020.0002] # PAHAWH HMONG NUMBER HUNDRED MILLIONS
+16B60 ; [*1B21.0020.0002] # PAHAWH HMONG NUMBER TEN BILLIONS
+16B61 ; [*1B22.0020.0002] # PAHAWH HMONG NUMBER TRILLIONS
+1BC9C ; [*11A0.0020.0002] # DUPLOYAN SIGN O WITH CROSS
1BC9F ; [*0286.0020.0002] # DUPLOYAN PUNCTUATION CHINOOK FULL STOP
-1D000 ; [*0F8C.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILI
-1D001 ; [*0F8D.0020.0002] # BYZANTINE MUSICAL SYMBOL DASEIA
-1D002 ; [*0F8E.0020.0002] # BYZANTINE MUSICAL SYMBOL PERISPOMENI
-1D003 ; [*0F8F.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
-1D004 ; [*0F90.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
-1D005 ; [*0F91.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
-1D006 ; [*0F92.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
-1D007 ; [*0F93.0020.0002] # BYZANTINE MUSICAL SYMBOL KATHISTI
-1D008 ; [*0F94.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMATIKI
-1D009 ; [*0F95.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI
-1D00A ; [*0F96.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS
-1D00B ; [*0F97.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
-1D00C ; [*0F98.0020.0002] # BYZANTINE MUSICAL SYMBOL KREMASTI
-1D00D ; [*0F99.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
-1D00E ; [*0F9A.0020.0002] # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
-1D00F ; [*0F9B.0020.0002] # BYZANTINE MUSICAL SYMBOL TELEIA
-1D010 ; [*0F9C.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA
-1D011 ; [*0F9D.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS
-1D012 ; [*0F9E.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
-1D013 ; [*0F9F.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNEVMA
-1D014 ; [*0FA0.0020.0002] # BYZANTINE MUSICAL SYMBOL THITA
-1D015 ; [*0FA1.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
-1D016 ; [*0FA2.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
-1D017 ; [*0FA3.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILON
-1D018 ; [*0FA4.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILON
-1D019 ; [*0FA5.0020.0002] # BYZANTINE MUSICAL SYMBOL VATHY
-1D01A ; [*0FA6.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON ARCHAION
-1D01B ; [*0FA7.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
-1D01C ; [*0FA8.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
-1D01D ; [*0FA9.0020.0002] # BYZANTINE MUSICAL SYMBOL SAXIMATA
-1D01E ; [*0FAA.0020.0002] # BYZANTINE MUSICAL SYMBOL PARICHON
-1D01F ; [*0FAB.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
-1D020 ; [*0FAC.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
-1D021 ; [*0FAD.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
-1D022 ; [*0FAE.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
-1D023 ; [*0FAF.0020.0002] # BYZANTINE MUSICAL SYMBOL APOTHEMA
-1D024 ; [*0FB0.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA
-1D025 ; [*0FB1.0020.0002] # BYZANTINE MUSICAL SYMBOL REVMA
-1D026 ; [*0FB2.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
-1D027 ; [*0FB3.0020.0002] # BYZANTINE MUSICAL SYMBOL TINAGMA
-1D028 ; [*0FB4.0020.0002] # BYZANTINE MUSICAL SYMBOL ANATRICHISMA
-1D029 ; [*0FB5.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA
-1D02A ; [*0FB6.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
-1D02B ; [*0FB7.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
-1D02C ; [*0FB8.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
-1D02D ; [*0FB9.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA
-1D02E ; [*0FBA.0020.0002] # BYZANTINE MUSICAL SYMBOL LEMOI
-1D02F ; [*0FBB.0020.0002] # BYZANTINE MUSICAL SYMBOL DYO
-1D030 ; [*0FBC.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIA
-1D031 ; [*0FBD.0020.0002] # BYZANTINE MUSICAL SYMBOL TESSERA
-1D032 ; [*0FBE.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMATA
-1D033 ; [*0FBF.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EXO NEO
-1D034 ; [*0FC0.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
-1D035 ; [*0FC1.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORA
-1D036 ; [*0FC2.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
-1D037 ; [*0FC3.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
-1D038 ; [*0FC4.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON
-1D039 ; [*0FC5.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON
-1D03A ; [*0FC6.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA
-1D03B ; [*0FC7.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
-1D03C ; [*0FC8.0020.0002] # BYZANTINE MUSICAL SYMBOL RAPISMA
-1D03D ; [*0FC9.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
-1D03E ; [*0FCA.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
-1D03F ; [*0FCB.0020.0002] # BYZANTINE MUSICAL SYMBOL ICHADIN
-1D040 ; [*0FCC.0020.0002] # BYZANTINE MUSICAL SYMBOL NANA
-1D041 ; [*0FCD.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASMA
-1D042 ; [*0FCE.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
-1D043 ; [*0FCF.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
-1D044 ; [*0FD0.0020.0002] # BYZANTINE MUSICAL SYMBOL STRAGGISMATA
-1D045 ; [*0FD1.0020.0002] # BYZANTINE MUSICAL SYMBOL GRONTHISMATA
-1D046 ; [*0FD2.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON NEO
-1D047 ; [*0FD3.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON NEO
-1D048 ; [*0FD4.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA NEO
-1D049 ; [*0FD5.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTI
-1D04A ; [*0FD6.0020.0002] # BYZANTINE MUSICAL SYMBOL KOUFISMA
-1D04B ; [*0FD7.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
-1D04C ; [*0FD8.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
-1D04D ; [*0FD9.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON NEO
-1D04E ; [*0FDA.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
-1D04F ; [*0FDB.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
-1D050 ; [*0FDC.0020.0002] # BYZANTINE MUSICAL SYMBOL YPSILI
-1D051 ; [*0FDD.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
-1D052 ; [*0FDE.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
-1D053 ; [*0FDF.0020.0002] # BYZANTINE MUSICAL SYMBOL YPORROI
-1D054 ; [*0FE0.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
-1D055 ; [*0FE1.0020.0002] # BYZANTINE MUSICAL SYMBOL ELAFRON
-1D056 ; [*0FE2.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILI
-1D057 ; [*0FE3.0020.0002] # BYZANTINE MUSICAL SYMBOL MIKRON ISON
-1D058 ; [*0FE4.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA NEO
-1D059 ; [*0FE5.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA NEO
-1D05A ; [*0FE6.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
-1D05B ; [*0FE7.0020.0002] # BYZANTINE MUSICAL SYMBOL OMALON
-1D05C ; [*0FE8.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOMA
-1D05D ; [*0FE9.0020.0002] # BYZANTINE MUSICAL SYMBOL LYGISMA
-1D05E ; [*0FEA.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
-1D05F ; [*0FEB.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
-1D060 ; [*0FEC.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
-1D061 ; [*0FED.0020.0002] # BYZANTINE MUSICAL SYMBOL KYLISMA
-1D062 ; [*0FEE.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
-1D063 ; [*0FEF.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON NEO
-1D064 ; [*0FF0.0020.0002] # BYZANTINE MUSICAL SYMBOL EKSTREPTON
-1D065 ; [*0FF1.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
-1D066 ; [*0FF2.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMA
-1D067 ; [*0FF3.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
-1D068 ; [*0FF4.0020.0002] # BYZANTINE MUSICAL SYMBOL EPEGERMA
-1D069 ; [*0FF5.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA NEO
-1D06A ; [*0FF6.0020.0002] # BYZANTINE MUSICAL SYMBOL XIRON KLASMA
-1D06B ; [*0FF7.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
-1D06C ; [*0FF8.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
-1D06D ; [*0FF9.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
-1D06E ; [*0FFA.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
-1D06F ; [*0FFB.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
-1D070 ; [*0FFC.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
-1D071 ; [*0FFD.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
-1D072 ; [*0FFE.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
-1D073 ; [*0FFF.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
-1D074 ; [*1000.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
-1D075 ; [*1001.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
-1D076 ; [*1002.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
-1D077 ; [*1003.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
-1D078 ; [*1004.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA APLOUN
-1D079 ; [*1005.0020.0002] # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
-1D07A ; [*1006.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVASMA
-1D07B ; [*1007.0020.0002] # BYZANTINE MUSICAL SYMBOL ENDOFONON
-1D07C ; [*1008.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN KATO
-1D07D ; [*1009.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN ANO
-1D07E ; [*100A.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS
-1D07F ; [*100B.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA ANO
-1D080 ; [*100C.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
-1D081 ; [*100D.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
-1D082 ; [*100E.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
-1D083 ; [*100F.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA NEO
-1D084 ; [*1010.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA NEO
-1D085 ; [*1011.0020.0002] # BYZANTINE MUSICAL SYMBOL APLI
-1D086 ; [*1012.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI
-1D087 ; [*1013.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIPLI
-1D088 ; [*1014.0020.0002] # BYZANTINE MUSICAL SYMBOL TETRAPLI
-1D089 ; [*1015.0020.0002] # BYZANTINE MUSICAL SYMBOL KORONIS
-1D08A ; [*1016.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
-1D08B ; [*1017.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
-1D08C ; [*1018.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
-1D08D ; [*1019.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
-1D08E ; [*101A.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
-1D08F ; [*101B.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
-1D090 ; [*101C.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
-1D091 ; [*101D.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
-1D092 ; [*101E.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON
-1D093 ; [*101F.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
-1D094 ; [*1020.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
-1D095 ; [*1021.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
-1D096 ; [*1022.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIGORGON
-1D097 ; [*1023.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGON
-1D098 ; [*1024.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIDIARGON
-1D099 ; [*1025.0020.0002] # BYZANTINE MUSICAL SYMBOL DIARGON
-1D09A ; [*1026.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
-1D09B ; [*1027.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
-1D09C ; [*1028.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGI
-1D09D ; [*1029.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI METRIA
-1D09E ; [*102A.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI MESI
-1D09F ; [*102B.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGI
-1D0A0 ; [*102C.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
-1D0A1 ; [*102D.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
-1D0A2 ; [*102E.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
-1D0A3 ; [*102F.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
-1D0A4 ; [*1030.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
-1D0A5 ; [*1031.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
-1D0A6 ; [*1032.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
-1D0A7 ; [*1033.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
-1D0A8 ; [*1034.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
-1D0A9 ; [*1035.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
-1D0AA ; [*1036.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
-1D0AB ; [*1037.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
-1D0AC ; [*1038.0020.0002] # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
-1D0AD ; [*1039.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
-1D0AE ; [*103A.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
-1D0AF ; [*103B.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
-1D0B0 ; [*103C.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
-1D0B1 ; [*103D.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
-1D0B2 ; [*103E.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
-1D0B3 ; [*103F.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
-1D0B4 ; [*1040.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
-1D0B5 ; [*1041.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
-1D0B6 ; [*1042.0020.0002] # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
-1D0B7 ; [*1043.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFONON
-1D0B8 ; [*1044.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORON
-1D0B9 ; [*1045.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
-1D0BA ; [*1046.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
-1D0BB ; [*1047.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
-1D0BC ; [*1048.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
-1D0BD ; [*1049.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
-1D0BE ; [*104A.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
-1D0BF ; [*104B.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
-1D0C0 ; [*104C.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
-1D0C1 ; [*104D.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
-1D0C2 ; [*104E.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
-1D0C3 ; [*104F.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
-1D0C4 ; [*1050.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
-1D0C5 ; [*1051.0020.0002] # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
-1D0C6 ; [*1052.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
-1D0C7 ; [*1053.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NENANO
-1D0C8 ; [*1054.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
-1D0C9 ; [*1055.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA KLITON
-1D0CA ; [*1056.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA SPATHI
-1D0CB ; [*1057.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
-1D0CC ; [*1058.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
-1D0CD ; [*1059.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
-1D0CE ; [*105A.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
-1D0CF ; [*105B.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
-1D0D0 ; [*105C.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
-1D0D1 ; [*105D.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D2 ; [*105E.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
-1D0D3 ; [*105F.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
-1D0D4 ; [*1060.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
-1D0D5 ; [*1061.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
-1D0D6 ; [*1062.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
-1D0D7 ; [*1063.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
-1D0D8 ; [*1064.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
-1D0D9 ; [*1065.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
-1D0DA ; [*1066.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
-1D0DB ; [*1067.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
-1D0DC ; [*1068.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
-1D0DD ; [*1069.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
-1D0DE ; [*106A.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
-1D0DF ; [*106B.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
-1D0E0 ; [*106C.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
-1D0E1 ; [*106D.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
-1D0E2 ; [*106E.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
-1D0E3 ; [*106F.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
-1D0E4 ; [*1070.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
-1D0E5 ; [*1071.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
-1D0E6 ; [*1072.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
-1D0E7 ; [*1073.0020.0002] # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
-1D0E8 ; [*1074.0020.0002] # BYZANTINE MUSICAL SYMBOL STIGMA
-1D0E9 ; [*1075.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO PA
-1D0EA ; [*1076.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
-1D0EB ; [*1077.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO GA
-1D0EC ; [*1078.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO DI
-1D0ED ; [*1079.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO KE
-1D0EE ; [*107A.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
-1D0EF ; [*107B.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO NI
-1D0F0 ; [*107C.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
-1D0F1 ; [*107D.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
-1D0F2 ; [*107E.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
-1D0F3 ; [*107F.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
-1D0F4 ; [*1080.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA KATO
-1D0F5 ; [*1081.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100 ; [*1082.0020.0002] # MUSICAL SYMBOL SINGLE BARLINE
-1D101 ; [*1083.0020.0002] # MUSICAL SYMBOL DOUBLE BARLINE
-1D102 ; [*1084.0020.0002] # MUSICAL SYMBOL FINAL BARLINE
-1D103 ; [*1085.0020.0002] # MUSICAL SYMBOL REVERSE FINAL BARLINE
-1D104 ; [*1086.0020.0002] # MUSICAL SYMBOL DASHED BARLINE
-1D105 ; [*1087.0020.0002] # MUSICAL SYMBOL SHORT BARLINE
-1D106 ; [*1088.0020.0002] # MUSICAL SYMBOL LEFT REPEAT SIGN
-1D107 ; [*1089.0020.0002] # MUSICAL SYMBOL RIGHT REPEAT SIGN
-1D108 ; [*108A.0020.0002] # MUSICAL SYMBOL REPEAT DOTS
-1D109 ; [*108B.0020.0002] # MUSICAL SYMBOL DAL SEGNO
-1D10A ; [*108C.0020.0002] # MUSICAL SYMBOL DA CAPO
-1D10B ; [*108D.0020.0002] # MUSICAL SYMBOL SEGNO
-1D10C ; [*108E.0020.0002] # MUSICAL SYMBOL CODA
-1D10D ; [*108F.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-1
-1D10E ; [*1090.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-2
-1D10F ; [*1091.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-3
-1D110 ; [*1092.0020.0002] # MUSICAL SYMBOL FERMATA
-1D111 ; [*1093.0020.0002] # MUSICAL SYMBOL FERMATA BELOW
-1D112 ; [*1094.0020.0002] # MUSICAL SYMBOL BREATH MARK
-1D113 ; [*1095.0020.0002] # MUSICAL SYMBOL CAESURA
-1D114 ; [*1096.0020.0002] # MUSICAL SYMBOL BRACE
-1D115 ; [*1097.0020.0002] # MUSICAL SYMBOL BRACKET
-1D116 ; [*1098.0020.0002] # MUSICAL SYMBOL ONE-LINE STAFF
-1D117 ; [*1099.0020.0002] # MUSICAL SYMBOL TWO-LINE STAFF
-1D118 ; [*109A.0020.0002] # MUSICAL SYMBOL THREE-LINE STAFF
-1D119 ; [*109B.0020.0002] # MUSICAL SYMBOL FOUR-LINE STAFF
-1D11A ; [*109C.0020.0002] # MUSICAL SYMBOL FIVE-LINE STAFF
-1D11B ; [*109D.0020.0002] # MUSICAL SYMBOL SIX-LINE STAFF
-1D11C ; [*109E.0020.0002] # MUSICAL SYMBOL SIX-STRING FRETBOARD
-1D11D ; [*109F.0020.0002] # MUSICAL SYMBOL FOUR-STRING FRETBOARD
-1D11E ; [*10A0.0020.0002] # MUSICAL SYMBOL G CLEF
-1D11F ; [*10A1.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA ALTA
-1D120 ; [*10A2.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA BASSA
-1D121 ; [*10A3.0020.0002] # MUSICAL SYMBOL C CLEF
-1D122 ; [*10A4.0020.0002] # MUSICAL SYMBOL F CLEF
-1D123 ; [*10A5.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA ALTA
-1D124 ; [*10A6.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA BASSA
-1D125 ; [*10A7.0020.0002] # MUSICAL SYMBOL DRUM CLEF-1
-1D126 ; [*10A8.0020.0002] # MUSICAL SYMBOL DRUM CLEF-2
-1D129 ; [*10BC.0020.0002] # MUSICAL SYMBOL MULTIPLE MEASURE REST
-1D12A ; [*10AC.0020.0002] # MUSICAL SYMBOL DOUBLE SHARP
-1D12B ; [*10AD.0020.0002] # MUSICAL SYMBOL DOUBLE FLAT
-1D12C ; [*10AE.0020.0002] # MUSICAL SYMBOL FLAT UP
-1D12D ; [*10AF.0020.0002] # MUSICAL SYMBOL FLAT DOWN
-1D12E ; [*10B0.0020.0002] # MUSICAL SYMBOL NATURAL UP
-1D12F ; [*10B1.0020.0002] # MUSICAL SYMBOL NATURAL DOWN
-1D130 ; [*10B2.0020.0002] # MUSICAL SYMBOL SHARP UP
-1D131 ; [*10B3.0020.0002] # MUSICAL SYMBOL SHARP DOWN
-1D132 ; [*10B4.0020.0002] # MUSICAL SYMBOL QUARTER TONE SHARP
-1D133 ; [*10B5.0020.0002] # MUSICAL SYMBOL QUARTER TONE FLAT
-1D134 ; [*10B6.0020.0002] # MUSICAL SYMBOL COMMON TIME
-1D135 ; [*10B7.0020.0002] # MUSICAL SYMBOL CUT TIME
-1D136 ; [*10B8.0020.0002] # MUSICAL SYMBOL OTTAVA ALTA
-1D137 ; [*10B9.0020.0002] # MUSICAL SYMBOL OTTAVA BASSA
-1D138 ; [*10BA.0020.0002] # MUSICAL SYMBOL QUINDICESIMA ALTA
-1D139 ; [*10BB.0020.0002] # MUSICAL SYMBOL QUINDICESIMA BASSA
-1D13A ; [*10BD.0020.0002] # MUSICAL SYMBOL MULTI REST
-1D13B ; [*10BE.0020.0002] # MUSICAL SYMBOL WHOLE REST
-1D13C ; [*10BF.0020.0002] # MUSICAL SYMBOL HALF REST
-1D13D ; [*10C0.0020.0002] # MUSICAL SYMBOL QUARTER REST
-1D13E ; [*10C1.0020.0002] # MUSICAL SYMBOL EIGHTH REST
-1D13F ; [*10C2.0020.0002] # MUSICAL SYMBOL SIXTEENTH REST
-1D140 ; [*10C3.0020.0002] # MUSICAL SYMBOL THIRTY-SECOND REST
-1D141 ; [*10C4.0020.0002] # MUSICAL SYMBOL SIXTY-FOURTH REST
-1D142 ; [*10C5.0020.0002] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
-1D143 ; [*10C6.0020.0002] # MUSICAL SYMBOL X NOTEHEAD
-1D144 ; [*10C7.0020.0002] # MUSICAL SYMBOL PLUS NOTEHEAD
-1D145 ; [*10C8.0020.0002] # MUSICAL SYMBOL CIRCLE X NOTEHEAD
-1D146 ; [*10C9.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
-1D147 ; [*10CA.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
-1D148 ; [*10CB.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
-1D149 ; [*10CC.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
-1D14A ; [*10CD.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
-1D14B ; [*10CE.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
-1D14C ; [*10CF.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
-1D14D ; [*10D0.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
-1D14E ; [*10D1.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
-1D14F ; [*10D2.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
-1D150 ; [*10D3.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
-1D151 ; [*10D4.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
-1D152 ; [*10D5.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD WHITE
-1D153 ; [*10D6.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD BLACK
-1D154 ; [*10D7.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
-1D155 ; [*10D8.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
-1D156 ; [*10D9.0020.0002] # MUSICAL SYMBOL PARENTHESIS NOTEHEAD
-1D157 ; [*10DA.0020.0002] # MUSICAL SYMBOL VOID NOTEHEAD
-1D158 ; [*10DB.0020.0002] # MUSICAL SYMBOL NOTEHEAD BLACK
-1D159 ; [*10DC.0020.0002] # MUSICAL SYMBOL NULL NOTEHEAD
-1D15A ; [*10DD.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
-1D15B ; [*10DE.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
-1D15C ; [*10DF.0020.0002] # MUSICAL SYMBOL BREVE
-1D15D ; [*10E0.0020.0002] # MUSICAL SYMBOL WHOLE NOTE
-1D15E ; [*10DA.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL HALF NOTE
-1D15F ; [*10DB.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL QUARTER NOTE
-1D160 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL EIGHTH NOTE
-1D161 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTEENTH NOTE
-1D162 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL THIRTY-SECOND NOTE
-1D163 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTY-FOURTH NOTE
-1D164 ; [*10DB.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D000 ; [*0FB0.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILI
+1D001 ; [*0FB1.0020.0002] # BYZANTINE MUSICAL SYMBOL DASEIA
+1D002 ; [*0FB2.0020.0002] # BYZANTINE MUSICAL SYMBOL PERISPOMENI
+1D003 ; [*0FB3.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON
+1D004 ; [*0FB4.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI
+1D005 ; [*0FB5.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON
+1D006 ; [*0FB6.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI
+1D007 ; [*0FB7.0020.0002] # BYZANTINE MUSICAL SYMBOL KATHISTI
+1D008 ; [*0FB8.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMATIKI
+1D009 ; [*0FB9.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI
+1D00A ; [*0FBA.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS
+1D00B ; [*0FBB.0020.0002] # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI
+1D00C ; [*0FBC.0020.0002] # BYZANTINE MUSICAL SYMBOL KREMASTI
+1D00D ; [*0FBD.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON
+1D00E ; [*0FBE.0020.0002] # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON
+1D00F ; [*0FBF.0020.0002] # BYZANTINE MUSICAL SYMBOL TELEIA
+1D010 ; [*0FC0.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA
+1D011 ; [*0FC1.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS
+1D012 ; [*0FC2.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI
+1D013 ; [*0FC3.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNEVMA
+1D014 ; [*0FC4.0020.0002] # BYZANTINE MUSICAL SYMBOL THITA
+1D015 ; [*0FC5.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION
+1D016 ; [*0FC6.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION
+1D017 ; [*0FC7.0020.0002] # BYZANTINE MUSICAL SYMBOL PSILON
+1D018 ; [*0FC8.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILON
+1D019 ; [*0FC9.0020.0002] # BYZANTINE MUSICAL SYMBOL VATHY
+1D01A ; [*0FCA.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON ARCHAION
+1D01B ; [*0FCB.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION
+1D01C ; [*0FCC.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION
+1D01D ; [*0FCD.0020.0002] # BYZANTINE MUSICAL SYMBOL SAXIMATA
+1D01E ; [*0FCE.0020.0002] # BYZANTINE MUSICAL SYMBOL PARICHON
+1D01F ; [*0FCF.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA
+1D020 ; [*0FD0.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION
+1D021 ; [*0FD1.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION
+1D022 ; [*0FD2.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION
+1D023 ; [*0FD3.0020.0002] # BYZANTINE MUSICAL SYMBOL APOTHEMA
+1D024 ; [*0FD4.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA
+1D025 ; [*0FD5.0020.0002] # BYZANTINE MUSICAL SYMBOL REVMA
+1D026 ; [*0FD6.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION
+1D027 ; [*0FD7.0020.0002] # BYZANTINE MUSICAL SYMBOL TINAGMA
+1D028 ; [*0FD8.0020.0002] # BYZANTINE MUSICAL SYMBOL ANATRICHISMA
+1D029 ; [*0FD9.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA
+1D02A ; [*0FDA.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION
+1D02B ; [*0FDB.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU
+1D02C ; [*0FDC.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION
+1D02D ; [*0FDD.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA
+1D02E ; [*0FDE.0020.0002] # BYZANTINE MUSICAL SYMBOL LEMOI
+1D02F ; [*0FDF.0020.0002] # BYZANTINE MUSICAL SYMBOL DYO
+1D030 ; [*0FE0.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIA
+1D031 ; [*0FE1.0020.0002] # BYZANTINE MUSICAL SYMBOL TESSERA
+1D032 ; [*0FE2.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMATA
+1D033 ; [*0FE3.0020.0002] # BYZANTINE MUSICAL SYMBOL APESO EXO NEO
+1D034 ; [*0FE4.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION
+1D035 ; [*0FE5.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORA
+1D036 ; [*0FE6.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION
+1D037 ; [*0FE7.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON
+1D038 ; [*0FE8.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON
+1D039 ; [*0FE9.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON
+1D03A ; [*0FEA.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA
+1D03B ; [*0FEB.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION
+1D03C ; [*0FEC.0020.0002] # BYZANTINE MUSICAL SYMBOL RAPISMA
+1D03D ; [*0FED.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION
+1D03E ; [*0FEE.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION
+1D03F ; [*0FEF.0020.0002] # BYZANTINE MUSICAL SYMBOL ICHADIN
+1D040 ; [*0FF0.0020.0002] # BYZANTINE MUSICAL SYMBOL NANA
+1D041 ; [*0FF1.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASMA
+1D042 ; [*0FF2.0020.0002] # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO
+1D043 ; [*0FF3.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO
+1D044 ; [*0FF4.0020.0002] # BYZANTINE MUSICAL SYMBOL STRAGGISMATA
+1D045 ; [*0FF5.0020.0002] # BYZANTINE MUSICAL SYMBOL GRONTHISMATA
+1D046 ; [*0FF6.0020.0002] # BYZANTINE MUSICAL SYMBOL ISON NEO
+1D047 ; [*0FF7.0020.0002] # BYZANTINE MUSICAL SYMBOL OLIGON NEO
+1D048 ; [*0FF8.0020.0002] # BYZANTINE MUSICAL SYMBOL OXEIA NEO
+1D049 ; [*0FF9.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTI
+1D04A ; [*0FFA.0020.0002] # BYZANTINE MUSICAL SYMBOL KOUFISMA
+1D04B ; [*0FFB.0020.0002] # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA
+1D04C ; [*0FFC.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA
+1D04D ; [*0FFD.0020.0002] # BYZANTINE MUSICAL SYMBOL PELASTON NEO
+1D04E ; [*0FFE.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO
+1D04F ; [*0FFF.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO
+1D050 ; [*1000.0020.0002] # BYZANTINE MUSICAL SYMBOL YPSILI
+1D051 ; [*1001.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO
+1D052 ; [*1002.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO
+1D053 ; [*1003.0020.0002] # BYZANTINE MUSICAL SYMBOL YPORROI
+1D054 ; [*1004.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON
+1D055 ; [*1005.0020.0002] # BYZANTINE MUSICAL SYMBOL ELAFRON
+1D056 ; [*1006.0020.0002] # BYZANTINE MUSICAL SYMBOL CHAMILI
+1D057 ; [*1007.0020.0002] # BYZANTINE MUSICAL SYMBOL MIKRON ISON
+1D058 ; [*1008.0020.0002] # BYZANTINE MUSICAL SYMBOL VAREIA NEO
+1D059 ; [*1009.0020.0002] # BYZANTINE MUSICAL SYMBOL PIASMA NEO
+1D05A ; [*100A.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO
+1D05B ; [*100B.0020.0002] # BYZANTINE MUSICAL SYMBOL OMALON
+1D05C ; [*100C.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOMA
+1D05D ; [*100D.0020.0002] # BYZANTINE MUSICAL SYMBOL LYGISMA
+1D05E ; [*100E.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO
+1D05F ; [*100F.0020.0002] # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO
+1D060 ; [*1010.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA
+1D061 ; [*1011.0020.0002] # BYZANTINE MUSICAL SYMBOL KYLISMA
+1D062 ; [*1012.0020.0002] # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA
+1D063 ; [*1013.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKON NEO
+1D064 ; [*1014.0020.0002] # BYZANTINE MUSICAL SYMBOL EKSTREPTON
+1D065 ; [*1015.0020.0002] # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO
+1D066 ; [*1016.0020.0002] # BYZANTINE MUSICAL SYMBOL SYRMA
+1D067 ; [*1017.0020.0002] # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO
+1D068 ; [*1018.0020.0002] # BYZANTINE MUSICAL SYMBOL EPEGERMA
+1D069 ; [*1019.0020.0002] # BYZANTINE MUSICAL SYMBOL SEISMA NEO
+1D06A ; [*101A.0020.0002] # BYZANTINE MUSICAL SYMBOL XIRON KLASMA
+1D06B ; [*101B.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON
+1D06C ; [*101C.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA
+1D06D ; [*101D.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA
+1D06E ; [*101E.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA
+1D06F ; [*101F.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA
+1D070 ; [*1020.0020.0002] # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA
+1D071 ; [*1021.0020.0002] # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA
+1D072 ; [*1022.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON
+1D073 ; [*1023.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON
+1D074 ; [*1024.0020.0002] # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON
+1D075 ; [*1025.0020.0002] # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO
+1D076 ; [*1026.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO
+1D077 ; [*1027.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO
+1D078 ; [*1028.0020.0002] # BYZANTINE MUSICAL SYMBOL THEMA APLOUN
+1D079 ; [*1029.0020.0002] # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES
+1D07A ; [*102A.0020.0002] # BYZANTINE MUSICAL SYMBOL KATAVASMA
+1D07B ; [*102B.0020.0002] # BYZANTINE MUSICAL SYMBOL ENDOFONON
+1D07C ; [*102C.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN KATO
+1D07D ; [*102D.0020.0002] # BYZANTINE MUSICAL SYMBOL YFEN ANO
+1D07E ; [*102E.0020.0002] # BYZANTINE MUSICAL SYMBOL STAVROS
+1D07F ; [*102F.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA ANO
+1D080 ; [*1030.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION
+1D081 ; [*1031.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION
+1D082 ; [*1032.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO
+1D083 ; [*1033.0020.0002] # BYZANTINE MUSICAL SYMBOL KRATIMA NEO
+1D084 ; [*1034.0020.0002] # BYZANTINE MUSICAL SYMBOL APODERMA NEO
+1D085 ; [*1035.0020.0002] # BYZANTINE MUSICAL SYMBOL APLI
+1D086 ; [*1036.0020.0002] # BYZANTINE MUSICAL SYMBOL DIPLI
+1D087 ; [*1037.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIPLI
+1D088 ; [*1038.0020.0002] # BYZANTINE MUSICAL SYMBOL TETRAPLI
+1D089 ; [*1039.0020.0002] # BYZANTINE MUSICAL SYMBOL KORONIS
+1D08A ; [*103A.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU
+1D08B ; [*103B.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON
+1D08C ; [*103C.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON
+1D08D ; [*103D.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON
+1D08E ; [*103E.0020.0002] # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU
+1D08F ; [*103F.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO
+1D090 ; [*1040.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA
+1D091 ; [*1041.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA
+1D092 ; [*1042.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON
+1D093 ; [*1043.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO
+1D094 ; [*1044.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO
+1D095 ; [*1045.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA
+1D096 ; [*1046.0020.0002] # BYZANTINE MUSICAL SYMBOL TRIGORGON
+1D097 ; [*1047.0020.0002] # BYZANTINE MUSICAL SYMBOL ARGON
+1D098 ; [*1048.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIDIARGON
+1D099 ; [*1049.0020.0002] # BYZANTINE MUSICAL SYMBOL DIARGON
+1D09A ; [*104A.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI
+1D09B ; [*104B.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI
+1D09C ; [*104C.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI ARGI
+1D09D ; [*104D.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI METRIA
+1D09E ; [*104E.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI MESI
+1D09F ; [*104F.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGI
+1D0A0 ; [*1050.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI
+1D0A1 ; [*1051.0020.0002] # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI
+1D0A2 ; [*1052.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS
+1D0A3 ; [*1053.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS
+1D0A4 ; [*1054.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS
+1D0A5 ; [*1055.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS
+1D0A6 ; [*1056.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS
+1D0A7 ; [*1057.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS
+1D0A8 ; [*1058.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS
+1D0A9 ; [*1059.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS
+1D0AA ; [*105A.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS
+1D0AB ; [*105B.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS
+1D0AC ; [*105C.0020.0002] # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS
+1D0AD ; [*105D.0020.0002] # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS
+1D0AE ; [*105E.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS
+1D0AF ; [*105F.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS
+1D0B0 ; [*1060.0020.0002] # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS
+1D0B1 ; [*1061.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS
+1D0B2 ; [*1062.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS
+1D0B3 ; [*1063.0020.0002] # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS
+1D0B4 ; [*1064.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN
+1D0B5 ; [*1065.0020.0002] # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN
+1D0B6 ; [*1066.0020.0002] # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU
+1D0B7 ; [*1067.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFONON
+1D0B8 ; [*1068.0020.0002] # BYZANTINE MUSICAL SYMBOL IMIFTHORON
+1D0B9 ; [*1069.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU
+1D0BA ; [*106A.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA
+1D0BB ; [*106B.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA
+1D0BC ; [*106C.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS
+1D0BD ; [*106D.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI
+1D0BE ; [*106E.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI
+1D0BF ; [*106F.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE
+1D0C0 ; [*1070.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO
+1D0C1 ; [*1071.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO
+1D0C2 ; [*1072.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO
+1D0C3 ; [*1073.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS
+1D0C4 ; [*1074.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS
+1D0C5 ; [*1075.0020.0002] # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS
+1D0C6 ; [*1076.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI
+1D0C7 ; [*1077.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA NENANO
+1D0C8 ; [*1078.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS
+1D0C9 ; [*1079.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA KLITON
+1D0CA ; [*107A.0020.0002] # BYZANTINE MUSICAL SYMBOL CHROA SPATHI
+1D0CB ; [*107B.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION
+1D0CC ; [*107C.0020.0002] # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA
+1D0CD ; [*107D.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION
+1D0CE ; [*107E.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION
+1D0CF ; [*107F.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION
+1D0D0 ; [*1080.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA
+1D0D1 ; [*1081.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA
+1D0D2 ; [*1082.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA
+1D0D3 ; [*1083.0020.0002] # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA
+1D0D4 ; [*1084.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA
+1D0D5 ; [*1085.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA
+1D0D6 ; [*1086.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA
+1D0D7 ; [*1087.0020.0002] # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA
+1D0D8 ; [*1088.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS
+1D0D9 ; [*1089.0020.0002] # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS
+1D0DA ; [*108A.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI
+1D0DB ; [*108B.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI
+1D0DC ; [*108C.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI
+1D0DD ; [*108D.0020.0002] # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS
+1D0DE ; [*108E.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS
+1D0DF ; [*108F.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU
+1D0E0 ; [*1090.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU
+1D0E1 ; [*1091.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU
+1D0E2 ; [*1092.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS
+1D0E3 ; [*1093.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU
+1D0E4 ; [*1094.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU
+1D0E5 ; [*1095.0020.0002] # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU
+1D0E6 ; [*1096.0020.0002] # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG
+1D0E7 ; [*1097.0020.0002] # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU
+1D0E8 ; [*1098.0020.0002] # BYZANTINE MUSICAL SYMBOL STIGMA
+1D0E9 ; [*1099.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO PA
+1D0EA ; [*109A.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU
+1D0EB ; [*109B.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO GA
+1D0EC ; [*109C.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO DI
+1D0ED ; [*109D.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO KE
+1D0EE ; [*109E.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO
+1D0EF ; [*109F.0020.0002] # BYZANTINE MUSICAL SYMBOL ARKTIKO NI
+1D0F0 ; [*10A0.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO
+1D0F1 ; [*10A1.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO
+1D0F2 ; [*10A2.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO
+1D0F3 ; [*10A3.0020.0002] # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO
+1D0F4 ; [*10A4.0020.0002] # BYZANTINE MUSICAL SYMBOL KLASMA KATO
+1D0F5 ; [*10A5.0020.0002] # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100 ; [*10A6.0020.0002] # MUSICAL SYMBOL SINGLE BARLINE
+1D101 ; [*10A7.0020.0002] # MUSICAL SYMBOL DOUBLE BARLINE
+1D102 ; [*10A8.0020.0002] # MUSICAL SYMBOL FINAL BARLINE
+1D103 ; [*10A9.0020.0002] # MUSICAL SYMBOL REVERSE FINAL BARLINE
+1D104 ; [*10AA.0020.0002] # MUSICAL SYMBOL DASHED BARLINE
+1D105 ; [*10AB.0020.0002] # MUSICAL SYMBOL SHORT BARLINE
+1D106 ; [*10AC.0020.0002] # MUSICAL SYMBOL LEFT REPEAT SIGN
+1D107 ; [*10AD.0020.0002] # MUSICAL SYMBOL RIGHT REPEAT SIGN
+1D108 ; [*10AE.0020.0002] # MUSICAL SYMBOL REPEAT DOTS
+1D109 ; [*10AF.0020.0002] # MUSICAL SYMBOL DAL SEGNO
+1D10A ; [*10B0.0020.0002] # MUSICAL SYMBOL DA CAPO
+1D10B ; [*10B1.0020.0002] # MUSICAL SYMBOL SEGNO
+1D10C ; [*10B2.0020.0002] # MUSICAL SYMBOL CODA
+1D10D ; [*10B3.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-1
+1D10E ; [*10B4.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-2
+1D10F ; [*10B5.0020.0002] # MUSICAL SYMBOL REPEATED FIGURE-3
+1D110 ; [*10B6.0020.0002] # MUSICAL SYMBOL FERMATA
+1D111 ; [*10B7.0020.0002] # MUSICAL SYMBOL FERMATA BELOW
+1D112 ; [*10B8.0020.0002] # MUSICAL SYMBOL BREATH MARK
+1D113 ; [*10B9.0020.0002] # MUSICAL SYMBOL CAESURA
+1D114 ; [*10BA.0020.0002] # MUSICAL SYMBOL BRACE
+1D115 ; [*10BB.0020.0002] # MUSICAL SYMBOL BRACKET
+1D116 ; [*10BC.0020.0002] # MUSICAL SYMBOL ONE-LINE STAFF
+1D117 ; [*10BD.0020.0002] # MUSICAL SYMBOL TWO-LINE STAFF
+1D118 ; [*10BE.0020.0002] # MUSICAL SYMBOL THREE-LINE STAFF
+1D119 ; [*10BF.0020.0002] # MUSICAL SYMBOL FOUR-LINE STAFF
+1D11A ; [*10C0.0020.0002] # MUSICAL SYMBOL FIVE-LINE STAFF
+1D11B ; [*10C1.0020.0002] # MUSICAL SYMBOL SIX-LINE STAFF
+1D11C ; [*10C2.0020.0002] # MUSICAL SYMBOL SIX-STRING FRETBOARD
+1D11D ; [*10C3.0020.0002] # MUSICAL SYMBOL FOUR-STRING FRETBOARD
+1D11E ; [*10C4.0020.0002] # MUSICAL SYMBOL G CLEF
+1D11F ; [*10C5.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA ALTA
+1D120 ; [*10C6.0020.0002] # MUSICAL SYMBOL G CLEF OTTAVA BASSA
+1D121 ; [*10C7.0020.0002] # MUSICAL SYMBOL C CLEF
+1D122 ; [*10C8.0020.0002] # MUSICAL SYMBOL F CLEF
+1D123 ; [*10C9.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA ALTA
+1D124 ; [*10CA.0020.0002] # MUSICAL SYMBOL F CLEF OTTAVA BASSA
+1D125 ; [*10CB.0020.0002] # MUSICAL SYMBOL DRUM CLEF-1
+1D126 ; [*10CC.0020.0002] # MUSICAL SYMBOL DRUM CLEF-2
+1D129 ; [*10E0.0020.0002] # MUSICAL SYMBOL MULTIPLE MEASURE REST
+1D12A ; [*10D0.0020.0002] # MUSICAL SYMBOL DOUBLE SHARP
+1D12B ; [*10D1.0020.0002] # MUSICAL SYMBOL DOUBLE FLAT
+1D12C ; [*10D2.0020.0002] # MUSICAL SYMBOL FLAT UP
+1D12D ; [*10D3.0020.0002] # MUSICAL SYMBOL FLAT DOWN
+1D12E ; [*10D4.0020.0002] # MUSICAL SYMBOL NATURAL UP
+1D12F ; [*10D5.0020.0002] # MUSICAL SYMBOL NATURAL DOWN
+1D130 ; [*10D6.0020.0002] # MUSICAL SYMBOL SHARP UP
+1D131 ; [*10D7.0020.0002] # MUSICAL SYMBOL SHARP DOWN
+1D132 ; [*10D8.0020.0002] # MUSICAL SYMBOL QUARTER TONE SHARP
+1D133 ; [*10D9.0020.0002] # MUSICAL SYMBOL QUARTER TONE FLAT
+1D134 ; [*10DA.0020.0002] # MUSICAL SYMBOL COMMON TIME
+1D135 ; [*10DB.0020.0002] # MUSICAL SYMBOL CUT TIME
+1D136 ; [*10DC.0020.0002] # MUSICAL SYMBOL OTTAVA ALTA
+1D137 ; [*10DD.0020.0002] # MUSICAL SYMBOL OTTAVA BASSA
+1D138 ; [*10DE.0020.0002] # MUSICAL SYMBOL QUINDICESIMA ALTA
+1D139 ; [*10DF.0020.0002] # MUSICAL SYMBOL QUINDICESIMA BASSA
+1D13A ; [*10E1.0020.0002] # MUSICAL SYMBOL MULTI REST
+1D13B ; [*10E2.0020.0002] # MUSICAL SYMBOL WHOLE REST
+1D13C ; [*10E3.0020.0002] # MUSICAL SYMBOL HALF REST
+1D13D ; [*10E4.0020.0002] # MUSICAL SYMBOL QUARTER REST
+1D13E ; [*10E5.0020.0002] # MUSICAL SYMBOL EIGHTH REST
+1D13F ; [*10E6.0020.0002] # MUSICAL SYMBOL SIXTEENTH REST
+1D140 ; [*10E7.0020.0002] # MUSICAL SYMBOL THIRTY-SECOND REST
+1D141 ; [*10E8.0020.0002] # MUSICAL SYMBOL SIXTY-FOURTH REST
+1D142 ; [*10E9.0020.0002] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST
+1D143 ; [*10EA.0020.0002] # MUSICAL SYMBOL X NOTEHEAD
+1D144 ; [*10EB.0020.0002] # MUSICAL SYMBOL PLUS NOTEHEAD
+1D145 ; [*10EC.0020.0002] # MUSICAL SYMBOL CIRCLE X NOTEHEAD
+1D146 ; [*10ED.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE
+1D147 ; [*10EE.0020.0002] # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK
+1D148 ; [*10EF.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE
+1D149 ; [*10F0.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK
+1D14A ; [*10F1.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE
+1D14B ; [*10F2.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK
+1D14C ; [*10F3.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE
+1D14D ; [*10F4.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK
+1D14E ; [*10F5.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE
+1D14F ; [*10F6.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK
+1D150 ; [*10F7.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE
+1D151 ; [*10F8.0020.0002] # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK
+1D152 ; [*10F9.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD WHITE
+1D153 ; [*10FA.0020.0002] # MUSICAL SYMBOL MOON NOTEHEAD BLACK
+1D154 ; [*10FB.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE
+1D155 ; [*10FC.0020.0002] # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK
+1D156 ; [*10FD.0020.0002] # MUSICAL SYMBOL PARENTHESIS NOTEHEAD
+1D157 ; [*10FE.0020.0002] # MUSICAL SYMBOL VOID NOTEHEAD
+1D158 ; [*10FF.0020.0002] # MUSICAL SYMBOL NOTEHEAD BLACK
+1D159 ; [*1100.0020.0002] # MUSICAL SYMBOL NULL NOTEHEAD
+1D15A ; [*1101.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE
+1D15B ; [*1102.0020.0002] # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK
+1D15C ; [*1103.0020.0002] # MUSICAL SYMBOL BREVE
+1D15D ; [*1104.0020.0002] # MUSICAL SYMBOL WHOLE NOTE
+1D15E ; [*10FE.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL HALF NOTE
+1D15F ; [*10FF.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL QUARTER NOTE
+1D160 ; [*10FF.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL EIGHTH NOTE
+1D161 ; [*10FF.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTEENTH NOTE
+1D162 ; [*10FF.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL THIRTY-SECOND NOTE
+1D163 ; [*10FF.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SIXTY-FOURTH NOTE
+1D164 ; [*10FF.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D165 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING STEM
1D166 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-1
1D168 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-2
1D169 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING TREMOLO-3
-1D16A ; [*10E1.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-1
-1D16B ; [*10E2.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-2
-1D16C ; [*10E3.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-3
+1D16A ; [*1105.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-1
+1D16B ; [*1106.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-2
+1D16C ; [*1107.0020.0002] # MUSICAL SYMBOL FINGERED TREMOLO-3
1D16D ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING AUGMENTATION DOT
1D16E ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-1
1D16F ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLAG-2
@@ -4940,8 +5036,8 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
1D180 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING MARCATO-STACCATO
1D181 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING ACCENT-STACCATO
1D182 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING LOURE
-1D183 ; [*10E4.0020.0002] # MUSICAL SYMBOL ARPEGGIATO UP
-1D184 ; [*10E5.0020.0002] # MUSICAL SYMBOL ARPEGGIATO DOWN
+1D183 ; [*1108.0020.0002] # MUSICAL SYMBOL ARPEGGIATO UP
+1D184 ; [*1109.0020.0002] # MUSICAL SYMBOL ARPEGGIATO DOWN
1D185 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOIT
1D186 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING RIP
1D187 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING FLIP
@@ -4949,264 +5045,947 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
1D189 ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING BEND
1D18A ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOUBLE TONGUE
1D18B ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D18C ; [*10E6.0020.0002] # MUSICAL SYMBOL RINFORZANDO
-1D18D ; [*10E7.0020.0002] # MUSICAL SYMBOL SUBITO
-1D18E ; [*10E8.0020.0002] # MUSICAL SYMBOL Z
-1D18F ; [*10E9.0020.0002] # MUSICAL SYMBOL PIANO
-1D190 ; [*10EA.0020.0002] # MUSICAL SYMBOL MEZZO
-1D191 ; [*10EB.0020.0002] # MUSICAL SYMBOL FORTE
-1D192 ; [*10EC.0020.0002] # MUSICAL SYMBOL CRESCENDO
-1D193 ; [*10ED.0020.0002] # MUSICAL SYMBOL DECRESCENDO
-1D194 ; [*10EE.0020.0002] # MUSICAL SYMBOL GRACE NOTE SLASH
-1D195 ; [*10EF.0020.0002] # MUSICAL SYMBOL GRACE NOTE NO SLASH
-1D196 ; [*10F0.0020.0002] # MUSICAL SYMBOL TR
-1D197 ; [*10F1.0020.0002] # MUSICAL SYMBOL TURN
-1D198 ; [*10F2.0020.0002] # MUSICAL SYMBOL INVERTED TURN
-1D199 ; [*10F3.0020.0002] # MUSICAL SYMBOL TURN SLASH
-1D19A ; [*10F4.0020.0002] # MUSICAL SYMBOL TURN UP
-1D19B ; [*10F5.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-1
-1D19C ; [*10F6.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-2
-1D19D ; [*10F7.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-3
-1D19E ; [*10F8.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-4
-1D19F ; [*10F9.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-5
-1D1A0 ; [*10FA.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-6
-1D1A1 ; [*10FB.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-7
-1D1A2 ; [*10FC.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-8
-1D1A3 ; [*10FD.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-9
-1D1A4 ; [*10FE.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-10
-1D1A5 ; [*10FF.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-11
-1D1A6 ; [*1100.0020.0002] # MUSICAL SYMBOL HAUPTSTIMME
-1D1A7 ; [*1101.0020.0002] # MUSICAL SYMBOL NEBENSTIMME
-1D1A8 ; [*1102.0020.0002] # MUSICAL SYMBOL END OF STIMME
-1D1A9 ; [*1103.0020.0002] # MUSICAL SYMBOL DEGREE SLASH
+1D18C ; [*110A.0020.0002] # MUSICAL SYMBOL RINFORZANDO
+1D18D ; [*110B.0020.0002] # MUSICAL SYMBOL SUBITO
+1D18E ; [*110C.0020.0002] # MUSICAL SYMBOL Z
+1D18F ; [*110D.0020.0002] # MUSICAL SYMBOL PIANO
+1D190 ; [*110E.0020.0002] # MUSICAL SYMBOL MEZZO
+1D191 ; [*110F.0020.0002] # MUSICAL SYMBOL FORTE
+1D192 ; [*1110.0020.0002] # MUSICAL SYMBOL CRESCENDO
+1D193 ; [*1111.0020.0002] # MUSICAL SYMBOL DECRESCENDO
+1D194 ; [*1112.0020.0002] # MUSICAL SYMBOL GRACE NOTE SLASH
+1D195 ; [*1113.0020.0002] # MUSICAL SYMBOL GRACE NOTE NO SLASH
+1D196 ; [*1114.0020.0002] # MUSICAL SYMBOL TR
+1D197 ; [*1115.0020.0002] # MUSICAL SYMBOL TURN
+1D198 ; [*1116.0020.0002] # MUSICAL SYMBOL INVERTED TURN
+1D199 ; [*1117.0020.0002] # MUSICAL SYMBOL TURN SLASH
+1D19A ; [*1118.0020.0002] # MUSICAL SYMBOL TURN UP
+1D19B ; [*1119.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-1
+1D19C ; [*111A.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-2
+1D19D ; [*111B.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-3
+1D19E ; [*111C.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-4
+1D19F ; [*111D.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-5
+1D1A0 ; [*111E.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-6
+1D1A1 ; [*111F.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-7
+1D1A2 ; [*1120.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-8
+1D1A3 ; [*1121.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-9
+1D1A4 ; [*1122.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-10
+1D1A5 ; [*1123.0020.0002] # MUSICAL SYMBOL ORNAMENT STROKE-11
+1D1A6 ; [*1124.0020.0002] # MUSICAL SYMBOL HAUPTSTIMME
+1D1A7 ; [*1125.0020.0002] # MUSICAL SYMBOL NEBENSTIMME
+1D1A8 ; [*1126.0020.0002] # MUSICAL SYMBOL END OF STIMME
+1D1A9 ; [*1127.0020.0002] # MUSICAL SYMBOL DEGREE SLASH
1D1AA ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING DOWN BOW
1D1AB ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING UP BOW
1D1AC ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING HARMONIC
1D1AD ; [.0000.0000.0000] # MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-1D1AE ; [*1104.0020.0002] # MUSICAL SYMBOL PEDAL MARK
-1D1AF ; [*1105.0020.0002] # MUSICAL SYMBOL PEDAL UP MARK
-1D1B0 ; [*1106.0020.0002] # MUSICAL SYMBOL HALF PEDAL MARK
-1D1B1 ; [*1107.0020.0002] # MUSICAL SYMBOL GLISSANDO UP
-1D1B2 ; [*1108.0020.0002] # MUSICAL SYMBOL GLISSANDO DOWN
-1D1B3 ; [*1109.0020.0002] # MUSICAL SYMBOL WITH FINGERNAILS
-1D1B4 ; [*110A.0020.0002] # MUSICAL SYMBOL DAMP
-1D1B5 ; [*110B.0020.0002] # MUSICAL SYMBOL DAMP ALL
-1D1B6 ; [*110C.0020.0002] # MUSICAL SYMBOL MAXIMA
-1D1B7 ; [*110D.0020.0002] # MUSICAL SYMBOL LONGA
-1D1B8 ; [*110E.0020.0002] # MUSICAL SYMBOL BREVIS
-1D1B9 ; [*110F.0020.0002] # MUSICAL SYMBOL SEMIBREVIS WHITE
-1D1BA ; [*1110.0020.0002] # MUSICAL SYMBOL SEMIBREVIS BLACK
-1D1BB ; [*110F.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA
-1D1BC ; [*1110.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA BLACK
-1D1BD ; [*110F.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA WHITE
-1D1BE ; [*1110.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA BLACK
-1D1BF ; [*110F.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA WHITE
-1D1C0 ; [*1110.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA BLACK
-1D1C1 ; [*1111.0020.0002] # MUSICAL SYMBOL LONGA PERFECTA REST
-1D1C2 ; [*1112.0020.0002] # MUSICAL SYMBOL LONGA IMPERFECTA REST
-1D1C3 ; [*1113.0020.0002] # MUSICAL SYMBOL BREVIS REST
-1D1C4 ; [*1114.0020.0002] # MUSICAL SYMBOL SEMIBREVIS REST
-1D1C5 ; [*1115.0020.0002] # MUSICAL SYMBOL MINIMA REST
-1D1C6 ; [*1116.0020.0002] # MUSICAL SYMBOL SEMIMINIMA REST
-1D1C7 ; [*1117.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
-1D1C8 ; [*1118.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
-1D1C9 ; [*1119.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
-1D1CA ; [*111A.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
-1D1CB ; [*111B.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
-1D1CC ; [*111C.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
-1D1CD ; [*111D.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
-1D1CE ; [*111E.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
-1D1CF ; [*111F.0020.0002] # MUSICAL SYMBOL CROIX
-1D1D0 ; [*1120.0020.0002] # MUSICAL SYMBOL GREGORIAN C CLEF
-1D1D1 ; [*1121.0020.0002] # MUSICAL SYMBOL GREGORIAN F CLEF
-1D1D2 ; [*1122.0020.0002] # MUSICAL SYMBOL SQUARE B
-1D1D3 ; [*1123.0020.0002] # MUSICAL SYMBOL VIRGA
-1D1D4 ; [*1124.0020.0002] # MUSICAL SYMBOL PODATUS
-1D1D5 ; [*1125.0020.0002] # MUSICAL SYMBOL CLIVIS
-1D1D6 ; [*1126.0020.0002] # MUSICAL SYMBOL SCANDICUS
-1D1D7 ; [*1127.0020.0002] # MUSICAL SYMBOL CLIMACUS
-1D1D8 ; [*1128.0020.0002] # MUSICAL SYMBOL TORCULUS
-1D1D9 ; [*1129.0020.0002] # MUSICAL SYMBOL PORRECTUS
-1D1DA ; [*112A.0020.0002] # MUSICAL SYMBOL PORRECTUS FLEXUS
-1D1DB ; [*112B.0020.0002] # MUSICAL SYMBOL SCANDICUS FLEXUS
-1D1DC ; [*112C.0020.0002] # MUSICAL SYMBOL TORCULUS RESUPINUS
-1D1DD ; [*112D.0020.0002] # MUSICAL SYMBOL PES SUBPUNCTIS
-1D200 ; [*112E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-1
-1D201 ; [*112F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-2
-1D202 ; [*1130.0020.0002] # GREEK VOCAL NOTATION SYMBOL-3
-1D203 ; [*1131.0020.0002] # GREEK VOCAL NOTATION SYMBOL-4
-1D204 ; [*1132.0020.0002] # GREEK VOCAL NOTATION SYMBOL-5
-1D205 ; [*1133.0020.0002] # GREEK VOCAL NOTATION SYMBOL-6
-1D206 ; [*1134.0020.0002] # GREEK VOCAL NOTATION SYMBOL-7
-1D207 ; [*1135.0020.0002] # GREEK VOCAL NOTATION SYMBOL-8
-1D208 ; [*1136.0020.0002] # GREEK VOCAL NOTATION SYMBOL-9
-1D209 ; [*1137.0020.0002] # GREEK VOCAL NOTATION SYMBOL-10
-1D20A ; [*1138.0020.0002] # GREEK VOCAL NOTATION SYMBOL-11
-1D20B ; [*1139.0020.0002] # GREEK VOCAL NOTATION SYMBOL-12
-1D20C ; [*113A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-13
-1D20D ; [*113B.0020.0002] # GREEK VOCAL NOTATION SYMBOL-14
-1D20E ; [*113C.0020.0002] # GREEK VOCAL NOTATION SYMBOL-15
-1D20F ; [*113D.0020.0002] # GREEK VOCAL NOTATION SYMBOL-16
-1D210 ; [*113E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-17
-1D211 ; [*113F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-18
-1D212 ; [*1140.0020.0002] # GREEK VOCAL NOTATION SYMBOL-19
-1D213 ; [*1141.0020.0002] # GREEK VOCAL NOTATION SYMBOL-20
-1D214 ; [*1142.0020.0002] # GREEK VOCAL NOTATION SYMBOL-21
-1D215 ; [*1143.0020.0002] # GREEK VOCAL NOTATION SYMBOL-22
-1D216 ; [*1144.0020.0002] # GREEK VOCAL NOTATION SYMBOL-23
-1D217 ; [*1145.0020.0002] # GREEK VOCAL NOTATION SYMBOL-24
-1D218 ; [*1146.0020.0002] # GREEK VOCAL NOTATION SYMBOL-50
-1D219 ; [*1147.0020.0002] # GREEK VOCAL NOTATION SYMBOL-51
-1D21A ; [*1148.0020.0002] # GREEK VOCAL NOTATION SYMBOL-52
-1D21B ; [*1149.0020.0002] # GREEK VOCAL NOTATION SYMBOL-53
-1D21C ; [*114A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-54
-1D21D ; [*114B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-1
-1D21E ; [*114C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-2
-1D21F ; [*114D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-4
-1D220 ; [*114E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-5
-1D221 ; [*114F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-7
-1D222 ; [*1150.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-8
-1D223 ; [*1151.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-11
-1D224 ; [*1152.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-12
-1D225 ; [*1153.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-13
-1D226 ; [*1154.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-14
-1D227 ; [*1155.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-17
-1D228 ; [*1156.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-18
-1D229 ; [*1157.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-19
-1D22A ; [*1158.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-23
-1D22B ; [*1159.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-24
-1D22C ; [*115A.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-25
-1D22D ; [*115B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-26
-1D22E ; [*115C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-27
-1D22F ; [*115D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-29
-1D230 ; [*115E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-30
-1D231 ; [*115F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-32
-1D232 ; [*1160.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-36
-1D233 ; [*1161.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-37
-1D234 ; [*1162.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-38
-1D235 ; [*1163.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-39
-1D236 ; [*1164.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-40
-1D237 ; [*1165.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-42
-1D238 ; [*1166.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-43
-1D239 ; [*1167.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-45
-1D23A ; [*1168.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-47
-1D23B ; [*1169.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-48
-1D23C ; [*116A.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-49
-1D23D ; [*116B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-50
-1D23E ; [*116C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-51
-1D23F ; [*116D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-52
-1D240 ; [*116E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-53
-1D241 ; [*116F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D1AE ; [*1128.0020.0002] # MUSICAL SYMBOL PEDAL MARK
+1D1AF ; [*1129.0020.0002] # MUSICAL SYMBOL PEDAL UP MARK
+1D1B0 ; [*112A.0020.0002] # MUSICAL SYMBOL HALF PEDAL MARK
+1D1B1 ; [*112B.0020.0002] # MUSICAL SYMBOL GLISSANDO UP
+1D1B2 ; [*112C.0020.0002] # MUSICAL SYMBOL GLISSANDO DOWN
+1D1B3 ; [*112D.0020.0002] # MUSICAL SYMBOL WITH FINGERNAILS
+1D1B4 ; [*112E.0020.0002] # MUSICAL SYMBOL DAMP
+1D1B5 ; [*112F.0020.0002] # MUSICAL SYMBOL DAMP ALL
+1D1B6 ; [*1130.0020.0002] # MUSICAL SYMBOL MAXIMA
+1D1B7 ; [*1131.0020.0002] # MUSICAL SYMBOL LONGA
+1D1B8 ; [*1132.0020.0002] # MUSICAL SYMBOL BREVIS
+1D1B9 ; [*1133.0020.0002] # MUSICAL SYMBOL SEMIBREVIS WHITE
+1D1BA ; [*1134.0020.0002] # MUSICAL SYMBOL SEMIBREVIS BLACK
+1D1BB ; [*1133.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA
+1D1BC ; [*1134.0020.0002][.0000.0000.0000] # MUSICAL SYMBOL MINIMA BLACK
+1D1BD ; [*1133.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA WHITE
+1D1BE ; [*1134.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL SEMIMINIMA BLACK
+1D1BF ; [*1133.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA WHITE
+1D1C0 ; [*1134.0020.0002][.0000.0000.0000][.0000.0000.0000] # MUSICAL SYMBOL FUSA BLACK
+1D1C1 ; [*1135.0020.0002] # MUSICAL SYMBOL LONGA PERFECTA REST
+1D1C2 ; [*1136.0020.0002] # MUSICAL SYMBOL LONGA IMPERFECTA REST
+1D1C3 ; [*1137.0020.0002] # MUSICAL SYMBOL BREVIS REST
+1D1C4 ; [*1138.0020.0002] # MUSICAL SYMBOL SEMIBREVIS REST
+1D1C5 ; [*1139.0020.0002] # MUSICAL SYMBOL MINIMA REST
+1D1C6 ; [*113A.0020.0002] # MUSICAL SYMBOL SEMIMINIMA REST
+1D1C7 ; [*113B.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA
+1D1C8 ; [*113C.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA
+1D1C9 ; [*113D.0020.0002] # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1
+1D1CA ; [*113E.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA
+1D1CB ; [*113F.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA
+1D1CC ; [*1140.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1
+1D1CD ; [*1141.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2
+1D1CE ; [*1142.0020.0002] # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3
+1D1CF ; [*1143.0020.0002] # MUSICAL SYMBOL CROIX
+1D1D0 ; [*1144.0020.0002] # MUSICAL SYMBOL GREGORIAN C CLEF
+1D1D1 ; [*1145.0020.0002] # MUSICAL SYMBOL GREGORIAN F CLEF
+1D1D2 ; [*1146.0020.0002] # MUSICAL SYMBOL SQUARE B
+1D1D3 ; [*1147.0020.0002] # MUSICAL SYMBOL VIRGA
+1D1D4 ; [*1148.0020.0002] # MUSICAL SYMBOL PODATUS
+1D1D5 ; [*1149.0020.0002] # MUSICAL SYMBOL CLIVIS
+1D1D6 ; [*114A.0020.0002] # MUSICAL SYMBOL SCANDICUS
+1D1D7 ; [*114B.0020.0002] # MUSICAL SYMBOL CLIMACUS
+1D1D8 ; [*114C.0020.0002] # MUSICAL SYMBOL TORCULUS
+1D1D9 ; [*114D.0020.0002] # MUSICAL SYMBOL PORRECTUS
+1D1DA ; [*114E.0020.0002] # MUSICAL SYMBOL PORRECTUS FLEXUS
+1D1DB ; [*114F.0020.0002] # MUSICAL SYMBOL SCANDICUS FLEXUS
+1D1DC ; [*1150.0020.0002] # MUSICAL SYMBOL TORCULUS RESUPINUS
+1D1DD ; [*1151.0020.0002] # MUSICAL SYMBOL PES SUBPUNCTIS
+1D1DE ; [*1152.0020.0002] # MUSICAL SYMBOL KIEVAN C CLEF
+1D1DF ; [*1153.0020.0002] # MUSICAL SYMBOL KIEVAN END OF PIECE
+1D1E0 ; [*1154.0020.0002] # MUSICAL SYMBOL KIEVAN FINAL NOTE
+1D1E1 ; [*1155.0020.0002] # MUSICAL SYMBOL KIEVAN RECITATIVE MARK
+1D1E2 ; [*1156.0020.0002] # MUSICAL SYMBOL KIEVAN WHOLE NOTE
+1D1E3 ; [*1157.0020.0002] # MUSICAL SYMBOL KIEVAN HALF NOTE
+1D1E4 ; [*1158.0020.0002] # MUSICAL SYMBOL KIEVAN QUARTER NOTE STEM DOWN
+1D1E5 ; [*1159.0020.0002] # MUSICAL SYMBOL KIEVAN QUARTER NOTE STEM UP
+1D1E6 ; [*115A.0020.0002] # MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM DOWN
+1D1E7 ; [*115B.0020.0002] # MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM UP
+1D1E8 ; [*115C.0020.0002] # MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D200 ; [*115D.0020.0002] # GREEK VOCAL NOTATION SYMBOL-1
+1D201 ; [*115E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-2
+1D202 ; [*115F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-3
+1D203 ; [*1160.0020.0002] # GREEK VOCAL NOTATION SYMBOL-4
+1D204 ; [*1161.0020.0002] # GREEK VOCAL NOTATION SYMBOL-5
+1D205 ; [*1162.0020.0002] # GREEK VOCAL NOTATION SYMBOL-6
+1D206 ; [*1163.0020.0002] # GREEK VOCAL NOTATION SYMBOL-7
+1D207 ; [*1164.0020.0002] # GREEK VOCAL NOTATION SYMBOL-8
+1D208 ; [*1165.0020.0002] # GREEK VOCAL NOTATION SYMBOL-9
+1D209 ; [*1166.0020.0002] # GREEK VOCAL NOTATION SYMBOL-10
+1D20A ; [*1167.0020.0002] # GREEK VOCAL NOTATION SYMBOL-11
+1D20B ; [*1168.0020.0002] # GREEK VOCAL NOTATION SYMBOL-12
+1D20C ; [*1169.0020.0002] # GREEK VOCAL NOTATION SYMBOL-13
+1D20D ; [*116A.0020.0002] # GREEK VOCAL NOTATION SYMBOL-14
+1D20E ; [*116B.0020.0002] # GREEK VOCAL NOTATION SYMBOL-15
+1D20F ; [*116C.0020.0002] # GREEK VOCAL NOTATION SYMBOL-16
+1D210 ; [*116D.0020.0002] # GREEK VOCAL NOTATION SYMBOL-17
+1D211 ; [*116E.0020.0002] # GREEK VOCAL NOTATION SYMBOL-18
+1D212 ; [*116F.0020.0002] # GREEK VOCAL NOTATION SYMBOL-19
+1D213 ; [*1170.0020.0002] # GREEK VOCAL NOTATION SYMBOL-20
+1D214 ; [*1171.0020.0002] # GREEK VOCAL NOTATION SYMBOL-21
+1D215 ; [*1172.0020.0002] # GREEK VOCAL NOTATION SYMBOL-22
+1D216 ; [*1173.0020.0002] # GREEK VOCAL NOTATION SYMBOL-23
+1D217 ; [*1174.0020.0002] # GREEK VOCAL NOTATION SYMBOL-24
+1D218 ; [*1175.0020.0002] # GREEK VOCAL NOTATION SYMBOL-50
+1D219 ; [*1176.0020.0002] # GREEK VOCAL NOTATION SYMBOL-51
+1D21A ; [*1177.0020.0002] # GREEK VOCAL NOTATION SYMBOL-52
+1D21B ; [*1178.0020.0002] # GREEK VOCAL NOTATION SYMBOL-53
+1D21C ; [*1179.0020.0002] # GREEK VOCAL NOTATION SYMBOL-54
+1D21D ; [*117A.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-1
+1D21E ; [*117B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-2
+1D21F ; [*117C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-4
+1D220 ; [*117D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-5
+1D221 ; [*117E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-7
+1D222 ; [*117F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-8
+1D223 ; [*1180.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-11
+1D224 ; [*1181.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-12
+1D225 ; [*1182.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-13
+1D226 ; [*1183.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-14
+1D227 ; [*1184.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-17
+1D228 ; [*1185.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-18
+1D229 ; [*1186.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-19
+1D22A ; [*1187.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-23
+1D22B ; [*1188.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-24
+1D22C ; [*1189.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-25
+1D22D ; [*118A.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-26
+1D22E ; [*118B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-27
+1D22F ; [*118C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-29
+1D230 ; [*118D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-30
+1D231 ; [*118E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-32
+1D232 ; [*118F.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-36
+1D233 ; [*1190.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-37
+1D234 ; [*1191.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-38
+1D235 ; [*1192.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-39
+1D236 ; [*1193.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-40
+1D237 ; [*1194.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-42
+1D238 ; [*1195.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-43
+1D239 ; [*1196.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-45
+1D23A ; [*1197.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-47
+1D23B ; [*1198.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-48
+1D23C ; [*1199.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-49
+1D23D ; [*119A.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-50
+1D23E ; [*119B.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-51
+1D23F ; [*119C.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-52
+1D240 ; [*119D.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-53
+1D241 ; [*119E.0020.0002] # GREEK INSTRUMENTAL NOTATION SYMBOL-54
1D242 ; [.0000.0000.0000] # COMBINING GREEK MUSICAL TRISEME
1D243 ; [.0000.0000.0000] # COMBINING GREEK MUSICAL TETRASEME
1D244 ; [.0000.0000.0000] # COMBINING GREEK MUSICAL PENTASEME
-1D245 ; [*1170.0020.0002] # GREEK MUSICAL LEIMMA
-1D300 ; [*0EA2.0020.0002] # MONOGRAM FOR EARTH
-1D301 ; [*0EA3.0020.0002] # DIGRAM FOR HEAVENLY EARTH
-1D302 ; [*0EA4.0020.0002] # DIGRAM FOR HUMAN EARTH
-1D303 ; [*0EA5.0020.0002] # DIGRAM FOR EARTHLY HEAVEN
-1D304 ; [*0EA6.0020.0002] # DIGRAM FOR EARTHLY HUMAN
-1D305 ; [*0EA7.0020.0002] # DIGRAM FOR EARTH
-1D306 ; [*0EA8.0020.0002] # TETRAGRAM FOR CENTRE
-1D307 ; [*0EA9.0020.0002] # TETRAGRAM FOR FULL CIRCLE
-1D308 ; [*0EAA.0020.0002] # TETRAGRAM FOR MIRED
-1D309 ; [*0EAB.0020.0002] # TETRAGRAM FOR BARRIER
-1D30A ; [*0EAC.0020.0002] # TETRAGRAM FOR KEEPING SMALL
-1D30B ; [*0EAD.0020.0002] # TETRAGRAM FOR CONTRARIETY
-1D30C ; [*0EAE.0020.0002] # TETRAGRAM FOR ASCENT
-1D30D ; [*0EAF.0020.0002] # TETRAGRAM FOR OPPOSITION
-1D30E ; [*0EB0.0020.0002] # TETRAGRAM FOR BRANCHING OUT
-1D30F ; [*0EB1.0020.0002] # TETRAGRAM FOR DEFECTIVENESS OR DISTORTION
-1D310 ; [*0EB2.0020.0002] # TETRAGRAM FOR DIVERGENCE
-1D311 ; [*0EB3.0020.0002] # TETRAGRAM FOR YOUTHFULNESS
-1D312 ; [*0EB4.0020.0002] # TETRAGRAM FOR INCREASE
-1D313 ; [*0EB5.0020.0002] # TETRAGRAM FOR PENETRATION
-1D314 ; [*0EB6.0020.0002] # TETRAGRAM FOR REACH
-1D315 ; [*0EB7.0020.0002] # TETRAGRAM FOR CONTACT
-1D316 ; [*0EB8.0020.0002] # TETRAGRAM FOR HOLDING BACK
-1D317 ; [*0EB9.0020.0002] # TETRAGRAM FOR WAITING
-1D318 ; [*0EBA.0020.0002] # TETRAGRAM FOR FOLLOWING
-1D319 ; [*0EBB.0020.0002] # TETRAGRAM FOR ADVANCE
-1D31A ; [*0EBC.0020.0002] # TETRAGRAM FOR RELEASE
-1D31B ; [*0EBD.0020.0002] # TETRAGRAM FOR RESISTANCE
-1D31C ; [*0EBE.0020.0002] # TETRAGRAM FOR EASE
-1D31D ; [*0EBF.0020.0002] # TETRAGRAM FOR JOY
-1D31E ; [*0EC0.0020.0002] # TETRAGRAM FOR CONTENTION
-1D31F ; [*0EC1.0020.0002] # TETRAGRAM FOR ENDEAVOUR
-1D320 ; [*0EC2.0020.0002] # TETRAGRAM FOR DUTIES
-1D321 ; [*0EC3.0020.0002] # TETRAGRAM FOR CHANGE
-1D322 ; [*0EC4.0020.0002] # TETRAGRAM FOR DECISIVENESS
-1D323 ; [*0EC5.0020.0002] # TETRAGRAM FOR BOLD RESOLUTION
-1D324 ; [*0EC6.0020.0002] # TETRAGRAM FOR PACKING
-1D325 ; [*0EC7.0020.0002] # TETRAGRAM FOR LEGION
-1D326 ; [*0EC8.0020.0002] # TETRAGRAM FOR CLOSENESS
-1D327 ; [*0EC9.0020.0002] # TETRAGRAM FOR KINSHIP
-1D328 ; [*0ECA.0020.0002] # TETRAGRAM FOR GATHERING
-1D329 ; [*0ECB.0020.0002] # TETRAGRAM FOR STRENGTH
-1D32A ; [*0ECC.0020.0002] # TETRAGRAM FOR PURITY
-1D32B ; [*0ECD.0020.0002] # TETRAGRAM FOR FULLNESS
-1D32C ; [*0ECE.0020.0002] # TETRAGRAM FOR RESIDENCE
-1D32D ; [*0ECF.0020.0002] # TETRAGRAM FOR LAW OR MODEL
-1D32E ; [*0ED0.0020.0002] # TETRAGRAM FOR RESPONSE
-1D32F ; [*0ED1.0020.0002] # TETRAGRAM FOR GOING TO MEET
-1D330 ; [*0ED2.0020.0002] # TETRAGRAM FOR ENCOUNTERS
-1D331 ; [*0ED3.0020.0002] # TETRAGRAM FOR STOVE
-1D332 ; [*0ED4.0020.0002] # TETRAGRAM FOR GREATNESS
-1D333 ; [*0ED5.0020.0002] # TETRAGRAM FOR ENLARGEMENT
-1D334 ; [*0ED6.0020.0002] # TETRAGRAM FOR PATTERN
-1D335 ; [*0ED7.0020.0002] # TETRAGRAM FOR RITUAL
-1D336 ; [*0ED8.0020.0002] # TETRAGRAM FOR FLIGHT
-1D337 ; [*0ED9.0020.0002] # TETRAGRAM FOR VASTNESS OR WASTING
-1D338 ; [*0EDA.0020.0002] # TETRAGRAM FOR CONSTANCY
-1D339 ; [*0EDB.0020.0002] # TETRAGRAM FOR MEASURE
-1D33A ; [*0EDC.0020.0002] # TETRAGRAM FOR ETERNITY
-1D33B ; [*0EDD.0020.0002] # TETRAGRAM FOR UNITY
-1D33C ; [*0EDE.0020.0002] # TETRAGRAM FOR DIMINISHMENT
-1D33D ; [*0EDF.0020.0002] # TETRAGRAM FOR CLOSED MOUTH
-1D33E ; [*0EE0.0020.0002] # TETRAGRAM FOR GUARDEDNESS
-1D33F ; [*0EE1.0020.0002] # TETRAGRAM FOR GATHERING IN
-1D340 ; [*0EE2.0020.0002] # TETRAGRAM FOR MASSING
-1D341 ; [*0EE3.0020.0002] # TETRAGRAM FOR ACCUMULATION
-1D342 ; [*0EE4.0020.0002] # TETRAGRAM FOR EMBELLISHMENT
-1D343 ; [*0EE5.0020.0002] # TETRAGRAM FOR DOUBT
-1D344 ; [*0EE6.0020.0002] # TETRAGRAM FOR WATCH
-1D345 ; [*0EE7.0020.0002] # TETRAGRAM FOR SINKING
-1D346 ; [*0EE8.0020.0002] # TETRAGRAM FOR INNER
-1D347 ; [*0EE9.0020.0002] # TETRAGRAM FOR DEPARTURE
-1D348 ; [*0EEA.0020.0002] # TETRAGRAM FOR DARKENING
-1D349 ; [*0EEB.0020.0002] # TETRAGRAM FOR DIMMING
-1D34A ; [*0EEC.0020.0002] # TETRAGRAM FOR EXHAUSTION
-1D34B ; [*0EED.0020.0002] # TETRAGRAM FOR SEVERANCE
-1D34C ; [*0EEE.0020.0002] # TETRAGRAM FOR STOPPAGE
-1D34D ; [*0EEF.0020.0002] # TETRAGRAM FOR HARDNESS
-1D34E ; [*0EF0.0020.0002] # TETRAGRAM FOR COMPLETION
-1D34F ; [*0EF1.0020.0002] # TETRAGRAM FOR CLOSURE
-1D350 ; [*0EF2.0020.0002] # TETRAGRAM FOR FAILURE
-1D351 ; [*0EF3.0020.0002] # TETRAGRAM FOR AGGRAVATION
-1D352 ; [*0EF4.0020.0002] # TETRAGRAM FOR COMPLIANCE
-1D353 ; [*0EF5.0020.0002] # TETRAGRAM FOR ON THE VERGE
-1D354 ; [*0EF6.0020.0002] # TETRAGRAM FOR DIFFICULTIES
-1D355 ; [*0EF7.0020.0002] # TETRAGRAM FOR LABOURING
-1D356 ; [*0EF8.0020.0002] # TETRAGRAM FOR FOSTERING
-1D369 ; [*18B6.0020.0002] # COUNTING ROD TENS DIGIT ONE
-1D36A ; [*18B7.0020.0002] # COUNTING ROD TENS DIGIT TWO
-1D36B ; [*18B8.0020.0002] # COUNTING ROD TENS DIGIT THREE
-1D36C ; [*18B9.0020.0002] # COUNTING ROD TENS DIGIT FOUR
-1D36D ; [*18BA.0020.0002] # COUNTING ROD TENS DIGIT FIVE
-1D36E ; [*18BB.0020.0002] # COUNTING ROD TENS DIGIT SIX
-1D36F ; [*18BC.0020.0002] # COUNTING ROD TENS DIGIT SEVEN
-1D370 ; [*18BD.0020.0002] # COUNTING ROD TENS DIGIT EIGHT
-1D371 ; [*18BE.0020.0002] # COUNTING ROD TENS DIGIT NINE
-1D6C1 ; [*05CC.0020.0005] # MATHEMATICAL BOLD NABLA
-1D6DB ; [*05C8.0020.0005] # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6FB ; [*05CC.0020.0005] # MATHEMATICAL ITALIC NABLA
-1D715 ; [*05C8.0020.0005] # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D735 ; [*05CC.0020.0005] # MATHEMATICAL BOLD ITALIC NABLA
-1D74F ; [*05C8.0020.0005] # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D76F ; [*05CC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD NABLA
-1D789 ; [*05C8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D7A9 ; [*05CC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7C3 ; [*05C8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D245 ; [*119F.0020.0002] # GREEK MUSICAL LEIMMA
+1D300 ; [*0EC6.0020.0002] # MONOGRAM FOR EARTH
+1D301 ; [*0EC7.0020.0002] # DIGRAM FOR HEAVENLY EARTH
+1D302 ; [*0EC8.0020.0002] # DIGRAM FOR HUMAN EARTH
+1D303 ; [*0EC9.0020.0002] # DIGRAM FOR EARTHLY HEAVEN
+1D304 ; [*0ECA.0020.0002] # DIGRAM FOR EARTHLY HUMAN
+1D305 ; [*0ECB.0020.0002] # DIGRAM FOR EARTH
+1D306 ; [*0ECC.0020.0002] # TETRAGRAM FOR CENTRE
+1D307 ; [*0ECD.0020.0002] # TETRAGRAM FOR FULL CIRCLE
+1D308 ; [*0ECE.0020.0002] # TETRAGRAM FOR MIRED
+1D309 ; [*0ECF.0020.0002] # TETRAGRAM FOR BARRIER
+1D30A ; [*0ED0.0020.0002] # TETRAGRAM FOR KEEPING SMALL
+1D30B ; [*0ED1.0020.0002] # TETRAGRAM FOR CONTRARIETY
+1D30C ; [*0ED2.0020.0002] # TETRAGRAM FOR ASCENT
+1D30D ; [*0ED3.0020.0002] # TETRAGRAM FOR OPPOSITION
+1D30E ; [*0ED4.0020.0002] # TETRAGRAM FOR BRANCHING OUT
+1D30F ; [*0ED5.0020.0002] # TETRAGRAM FOR DEFECTIVENESS OR DISTORTION
+1D310 ; [*0ED6.0020.0002] # TETRAGRAM FOR DIVERGENCE
+1D311 ; [*0ED7.0020.0002] # TETRAGRAM FOR YOUTHFULNESS
+1D312 ; [*0ED8.0020.0002] # TETRAGRAM FOR INCREASE
+1D313 ; [*0ED9.0020.0002] # TETRAGRAM FOR PENETRATION
+1D314 ; [*0EDA.0020.0002] # TETRAGRAM FOR REACH
+1D315 ; [*0EDB.0020.0002] # TETRAGRAM FOR CONTACT
+1D316 ; [*0EDC.0020.0002] # TETRAGRAM FOR HOLDING BACK
+1D317 ; [*0EDD.0020.0002] # TETRAGRAM FOR WAITING
+1D318 ; [*0EDE.0020.0002] # TETRAGRAM FOR FOLLOWING
+1D319 ; [*0EDF.0020.0002] # TETRAGRAM FOR ADVANCE
+1D31A ; [*0EE0.0020.0002] # TETRAGRAM FOR RELEASE
+1D31B ; [*0EE1.0020.0002] # TETRAGRAM FOR RESISTANCE
+1D31C ; [*0EE2.0020.0002] # TETRAGRAM FOR EASE
+1D31D ; [*0EE3.0020.0002] # TETRAGRAM FOR JOY
+1D31E ; [*0EE4.0020.0002] # TETRAGRAM FOR CONTENTION
+1D31F ; [*0EE5.0020.0002] # TETRAGRAM FOR ENDEAVOUR
+1D320 ; [*0EE6.0020.0002] # TETRAGRAM FOR DUTIES
+1D321 ; [*0EE7.0020.0002] # TETRAGRAM FOR CHANGE
+1D322 ; [*0EE8.0020.0002] # TETRAGRAM FOR DECISIVENESS
+1D323 ; [*0EE9.0020.0002] # TETRAGRAM FOR BOLD RESOLUTION
+1D324 ; [*0EEA.0020.0002] # TETRAGRAM FOR PACKING
+1D325 ; [*0EEB.0020.0002] # TETRAGRAM FOR LEGION
+1D326 ; [*0EEC.0020.0002] # TETRAGRAM FOR CLOSENESS
+1D327 ; [*0EED.0020.0002] # TETRAGRAM FOR KINSHIP
+1D328 ; [*0EEE.0020.0002] # TETRAGRAM FOR GATHERING
+1D329 ; [*0EEF.0020.0002] # TETRAGRAM FOR STRENGTH
+1D32A ; [*0EF0.0020.0002] # TETRAGRAM FOR PURITY
+1D32B ; [*0EF1.0020.0002] # TETRAGRAM FOR FULLNESS
+1D32C ; [*0EF2.0020.0002] # TETRAGRAM FOR RESIDENCE
+1D32D ; [*0EF3.0020.0002] # TETRAGRAM FOR LAW OR MODEL
+1D32E ; [*0EF4.0020.0002] # TETRAGRAM FOR RESPONSE
+1D32F ; [*0EF5.0020.0002] # TETRAGRAM FOR GOING TO MEET
+1D330 ; [*0EF6.0020.0002] # TETRAGRAM FOR ENCOUNTERS
+1D331 ; [*0EF7.0020.0002] # TETRAGRAM FOR STOVE
+1D332 ; [*0EF8.0020.0002] # TETRAGRAM FOR GREATNESS
+1D333 ; [*0EF9.0020.0002] # TETRAGRAM FOR ENLARGEMENT
+1D334 ; [*0EFA.0020.0002] # TETRAGRAM FOR PATTERN
+1D335 ; [*0EFB.0020.0002] # TETRAGRAM FOR RITUAL
+1D336 ; [*0EFC.0020.0002] # TETRAGRAM FOR FLIGHT
+1D337 ; [*0EFD.0020.0002] # TETRAGRAM FOR VASTNESS OR WASTING
+1D338 ; [*0EFE.0020.0002] # TETRAGRAM FOR CONSTANCY
+1D339 ; [*0EFF.0020.0002] # TETRAGRAM FOR MEASURE
+1D33A ; [*0F00.0020.0002] # TETRAGRAM FOR ETERNITY
+1D33B ; [*0F01.0020.0002] # TETRAGRAM FOR UNITY
+1D33C ; [*0F02.0020.0002] # TETRAGRAM FOR DIMINISHMENT
+1D33D ; [*0F03.0020.0002] # TETRAGRAM FOR CLOSED MOUTH
+1D33E ; [*0F04.0020.0002] # TETRAGRAM FOR GUARDEDNESS
+1D33F ; [*0F05.0020.0002] # TETRAGRAM FOR GATHERING IN
+1D340 ; [*0F06.0020.0002] # TETRAGRAM FOR MASSING
+1D341 ; [*0F07.0020.0002] # TETRAGRAM FOR ACCUMULATION
+1D342 ; [*0F08.0020.0002] # TETRAGRAM FOR EMBELLISHMENT
+1D343 ; [*0F09.0020.0002] # TETRAGRAM FOR DOUBT
+1D344 ; [*0F0A.0020.0002] # TETRAGRAM FOR WATCH
+1D345 ; [*0F0B.0020.0002] # TETRAGRAM FOR SINKING
+1D346 ; [*0F0C.0020.0002] # TETRAGRAM FOR INNER
+1D347 ; [*0F0D.0020.0002] # TETRAGRAM FOR DEPARTURE
+1D348 ; [*0F0E.0020.0002] # TETRAGRAM FOR DARKENING
+1D349 ; [*0F0F.0020.0002] # TETRAGRAM FOR DIMMING
+1D34A ; [*0F10.0020.0002] # TETRAGRAM FOR EXHAUSTION
+1D34B ; [*0F11.0020.0002] # TETRAGRAM FOR SEVERANCE
+1D34C ; [*0F12.0020.0002] # TETRAGRAM FOR STOPPAGE
+1D34D ; [*0F13.0020.0002] # TETRAGRAM FOR HARDNESS
+1D34E ; [*0F14.0020.0002] # TETRAGRAM FOR COMPLETION
+1D34F ; [*0F15.0020.0002] # TETRAGRAM FOR CLOSURE
+1D350 ; [*0F16.0020.0002] # TETRAGRAM FOR FAILURE
+1D351 ; [*0F17.0020.0002] # TETRAGRAM FOR AGGRAVATION
+1D352 ; [*0F18.0020.0002] # TETRAGRAM FOR COMPLIANCE
+1D353 ; [*0F19.0020.0002] # TETRAGRAM FOR ON THE VERGE
+1D354 ; [*0F1A.0020.0002] # TETRAGRAM FOR DIFFICULTIES
+1D355 ; [*0F1B.0020.0002] # TETRAGRAM FOR LABOURING
+1D356 ; [*0F1C.0020.0002] # TETRAGRAM FOR FOSTERING
+1D369 ; [*1B6B.0020.0002] # COUNTING ROD TENS DIGIT ONE
+1D36A ; [*1B6C.0020.0002] # COUNTING ROD TENS DIGIT TWO
+1D36B ; [*1B6D.0020.0002] # COUNTING ROD TENS DIGIT THREE
+1D36C ; [*1B6E.0020.0002] # COUNTING ROD TENS DIGIT FOUR
+1D36D ; [*1B6F.0020.0002] # COUNTING ROD TENS DIGIT FIVE
+1D36E ; [*1B70.0020.0002] # COUNTING ROD TENS DIGIT SIX
+1D36F ; [*1B71.0020.0002] # COUNTING ROD TENS DIGIT SEVEN
+1D370 ; [*1B72.0020.0002] # COUNTING ROD TENS DIGIT EIGHT
+1D371 ; [*1B73.0020.0002] # COUNTING ROD TENS DIGIT NINE
+1D6C1 ; [*05EC.0020.0005] # MATHEMATICAL BOLD NABLA
+1D6DB ; [*05E8.0020.0005] # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6FB ; [*05EC.0020.0005] # MATHEMATICAL ITALIC NABLA
+1D715 ; [*05E8.0020.0005] # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D735 ; [*05EC.0020.0005] # MATHEMATICAL BOLD ITALIC NABLA
+1D74F ; [*05E8.0020.0005] # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D76F ; [*05EC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD NABLA
+1D789 ; [*05E8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D7A9 ; [*05EC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7C3 ; [*05E8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D800 ; [*17CF.0020.0002] # SIGNWRITING HAND-FIST INDEX
+1D801 ; [*17D0.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX
+1D802 ; [*17D1.0020.0002] # SIGNWRITING HAND-CUP INDEX
+1D803 ; [*17D2.0020.0002] # SIGNWRITING HAND-OVAL INDEX
+1D804 ; [*17D3.0020.0002] # SIGNWRITING HAND-HINGE INDEX
+1D805 ; [*17D4.0020.0002] # SIGNWRITING HAND-ANGLE INDEX
+1D806 ; [*17D5.0020.0002] # SIGNWRITING HAND-FIST INDEX BENT
+1D807 ; [*17D6.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX BENT
+1D808 ; [*17D7.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER INDEX BENT
+1D809 ; [*17D8.0020.0002] # SIGNWRITING HAND-FIST INDEX RAISED KNUCKLE
+1D80A ; [*17D9.0020.0002] # SIGNWRITING HAND-FIST INDEX CUPPED
+1D80B ; [*17DA.0020.0002] # SIGNWRITING HAND-FIST INDEX HINGED
+1D80C ; [*17DB.0020.0002] # SIGNWRITING HAND-FIST INDEX HINGED LOW
+1D80D ; [*17DC.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX HINGE
+1D80E ; [*17DD.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE
+1D80F ; [*17DE.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE
+1D810 ; [*17DF.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE BENT
+1D811 ; [*17E0.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE RAISED KNUCKLES
+1D812 ; [*17E1.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE HINGED
+1D813 ; [*17E2.0020.0002] # SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED
+1D814 ; [*17E3.0020.0002] # SIGNWRITING HAND-FIST INDEX HINGED MIDDLE UP
+1D815 ; [*17E4.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED
+1D816 ; [*17E5.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED INDEX BENT
+1D817 ; [*17E6.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED MIDDLE BENT
+1D818 ; [*17E7.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED CUPPED
+1D819 ; [*17E8.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED HINGED
+1D81A ; [*17E9.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CROSSED
+1D81B ; [*17EA.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE CROSSED
+1D81C ; [*17EB.0020.0002] # SIGNWRITING HAND-FIST MIDDLE BENT OVER INDEX
+1D81D ; [*17EC.0020.0002] # SIGNWRITING HAND-FIST INDEX BENT OVER MIDDLE
+1D81E ; [*17ED.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB
+1D81F ; [*17EE.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE THUMB
+1D820 ; [*17EF.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE STRAIGHT THUMB BENT
+1D821 ; [*17F0.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE BENT THUMB STRAIGHT
+1D822 ; [*17F1.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB BENT
+1D823 ; [*17F2.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE HINGED SPREAD THUMB SIDE
+1D824 ; [*17F3.0020.0002] # SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED THUMB SIDE
+1D825 ; [*17F4.0020.0002] # SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED THUMB CONJOINED
+1D826 ; [*17F5.0020.0002] # SIGNWRITING HAND-FIST INDEX HINGED MIDDLE UP THUMB SIDE
+1D827 ; [*17F6.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE UP SPREAD THUMB FORWARD
+1D828 ; [*17F7.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CUPPED
+1D829 ; [*17F8.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CIRCLED
+1D82A ; [*17F9.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB HOOKED
+1D82B ; [*17FA.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB HINGED
+1D82C ; [*17FB.0020.0002] # SIGNWRITING HAND-FIST THUMB BETWEEN INDEX MIDDLE STRAIGHT
+1D82D ; [*17FC.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE
+1D82E ; [*17FD.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE CONJOINED
+1D82F ; [*17FE.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE BENT
+1D830 ; [*17FF.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB HOOKED INDEX UP
+1D831 ; [*1800.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB HOOKED MIDDLE UP
+1D832 ; [*1801.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED HINGED THUMB SIDE
+1D833 ; [*1802.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CROSSED THUMB SIDE
+1D834 ; [*1803.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB FORWARD
+1D835 ; [*1804.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED CUPPED THUMB FORWARD
+1D836 ; [*1805.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB CUPPED INDEX UP
+1D837 ; [*1806.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CUPPED MIDDLE UP
+1D838 ; [*1807.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB CIRCLED INDEX UP
+1D839 ; [*1808.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB CIRCLED INDEX HINGED
+1D83A ; [*1809.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB ANGLED OUT MIDDLE UP
+1D83B ; [*180A.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB ANGLED IN MIDDLE UP
+1D83C ; [*180B.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CIRCLED MIDDLE UP
+1D83D ; [*180C.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CONJOINED HINGED
+1D83E ; [*180D.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB ANGLED OUT
+1D83F ; [*180E.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE THUMB ANGLED
+1D840 ; [*180F.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED OUT INDEX UP
+1D841 ; [*1810.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED OUT INDEX CROSSED
+1D842 ; [*1811.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED INDEX UP
+1D843 ; [*1812.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB HOOKED MIDDLE HINGED
+1D844 ; [*1813.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS
+1D845 ; [*1814.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS BENT
+1D846 ; [*1815.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS HINGED
+1D847 ; [*1816.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS CONJOINED
+1D848 ; [*1817.0020.0002] # SIGNWRITING HAND-FLAT FOUR FINGERS CONJOINED SPLIT
+1D849 ; [*1818.0020.0002] # SIGNWRITING HAND-CLAW FOUR FINGERS CONJOINED
+1D84A ; [*1819.0020.0002] # SIGNWRITING HAND-FIST FOUR FINGERS CONJOINED BENT
+1D84B ; [*181A.0020.0002] # SIGNWRITING HAND-HINGE FOUR FINGERS CONJOINED
+1D84C ; [*181B.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD
+1D84D ; [*181C.0020.0002] # SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD
+1D84E ; [*181D.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD FOUR BENT
+1D84F ; [*181E.0020.0002] # SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD FOUR BENT
+1D850 ; [*181F.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD BENT
+1D851 ; [*1820.0020.0002] # SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD BENT
+1D852 ; [*1821.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD THUMB FORWARD
+1D853 ; [*1822.0020.0002] # SIGNWRITING HAND-CUP FIVE FINGERS SPREAD
+1D854 ; [*1823.0020.0002] # SIGNWRITING HAND-CUP FIVE FINGERS SPREAD OPEN
+1D855 ; [*1824.0020.0002] # SIGNWRITING HAND-HINGE FIVE FINGERS SPREAD OPEN
+1D856 ; [*1825.0020.0002] # SIGNWRITING HAND-OVAL FIVE FINGERS SPREAD
+1D857 ; [*1826.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED
+1D858 ; [*1827.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED THUMB SIDE
+1D859 ; [*1828.0020.0002] # SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED NO THUMB
+1D85A ; [*1829.0020.0002] # SIGNWRITING HAND-FLAT
+1D85B ; [*182A.0020.0002] # SIGNWRITING HAND-FLAT BETWEEN PALM FACINGS
+1D85C ; [*182B.0020.0002] # SIGNWRITING HAND-FLAT HEEL
+1D85D ; [*182C.0020.0002] # SIGNWRITING HAND-FLAT THUMB SIDE
+1D85E ; [*182D.0020.0002] # SIGNWRITING HAND-FLAT HEEL THUMB SIDE
+1D85F ; [*182E.0020.0002] # SIGNWRITING HAND-FLAT THUMB BENT
+1D860 ; [*182F.0020.0002] # SIGNWRITING HAND-FLAT THUMB FORWARD
+1D861 ; [*1830.0020.0002] # SIGNWRITING HAND-FLAT SPLIT INDEX THUMB SIDE
+1D862 ; [*1831.0020.0002] # SIGNWRITING HAND-FLAT SPLIT CENTRE
+1D863 ; [*1832.0020.0002] # SIGNWRITING HAND-FLAT SPLIT CENTRE THUMB SIDE
+1D864 ; [*1833.0020.0002] # SIGNWRITING HAND-FLAT SPLIT CENTRE THUMB SIDE BENT
+1D865 ; [*1834.0020.0002] # SIGNWRITING HAND-FLAT SPLIT LITTLE
+1D866 ; [*1835.0020.0002] # SIGNWRITING HAND-CLAW
+1D867 ; [*1836.0020.0002] # SIGNWRITING HAND-CLAW THUMB SIDE
+1D868 ; [*1837.0020.0002] # SIGNWRITING HAND-CLAW NO THUMB
+1D869 ; [*1838.0020.0002] # SIGNWRITING HAND-CLAW THUMB FORWARD
+1D86A ; [*1839.0020.0002] # SIGNWRITING HAND-HOOK CURLICUE
+1D86B ; [*183A.0020.0002] # SIGNWRITING HAND-HOOK
+1D86C ; [*183B.0020.0002] # SIGNWRITING HAND-CUP OPEN
+1D86D ; [*183C.0020.0002] # SIGNWRITING HAND-CUP
+1D86E ; [*183D.0020.0002] # SIGNWRITING HAND-CUP OPEN THUMB SIDE
+1D86F ; [*183E.0020.0002] # SIGNWRITING HAND-CUP THUMB SIDE
+1D870 ; [*183F.0020.0002] # SIGNWRITING HAND-CUP OPEN NO THUMB
+1D871 ; [*1840.0020.0002] # SIGNWRITING HAND-CUP NO THUMB
+1D872 ; [*1841.0020.0002] # SIGNWRITING HAND-CUP OPEN THUMB FORWARD
+1D873 ; [*1842.0020.0002] # SIGNWRITING HAND-CUP THUMB FORWARD
+1D874 ; [*1843.0020.0002] # SIGNWRITING HAND-CURLICUE OPEN
+1D875 ; [*1844.0020.0002] # SIGNWRITING HAND-CURLICUE
+1D876 ; [*1845.0020.0002] # SIGNWRITING HAND-CIRCLE
+1D877 ; [*1846.0020.0002] # SIGNWRITING HAND-OVAL
+1D878 ; [*1847.0020.0002] # SIGNWRITING HAND-OVAL THUMB SIDE
+1D879 ; [*1848.0020.0002] # SIGNWRITING HAND-OVAL NO THUMB
+1D87A ; [*1849.0020.0002] # SIGNWRITING HAND-OVAL THUMB FORWARD
+1D87B ; [*184A.0020.0002] # SIGNWRITING HAND-HINGE OPEN
+1D87C ; [*184B.0020.0002] # SIGNWRITING HAND-HINGE OPEN THUMB FORWARD
+1D87D ; [*184C.0020.0002] # SIGNWRITING HAND-HINGE
+1D87E ; [*184D.0020.0002] # SIGNWRITING HAND-HINGE SMALL
+1D87F ; [*184E.0020.0002] # SIGNWRITING HAND-HINGE OPEN THUMB SIDE
+1D880 ; [*184F.0020.0002] # SIGNWRITING HAND-HINGE THUMB SIDE
+1D881 ; [*1850.0020.0002] # SIGNWRITING HAND-HINGE OPEN NO THUMB
+1D882 ; [*1851.0020.0002] # SIGNWRITING HAND-HINGE NO THUMB
+1D883 ; [*1852.0020.0002] # SIGNWRITING HAND-HINGE THUMB SIDE TOUCHING INDEX
+1D884 ; [*1853.0020.0002] # SIGNWRITING HAND-HINGE THUMB BETWEEN MIDDLE RING
+1D885 ; [*1854.0020.0002] # SIGNWRITING HAND-ANGLE
+1D886 ; [*1855.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE RING
+1D887 ; [*1856.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE RING
+1D888 ; [*1857.0020.0002] # SIGNWRITING HAND-HINGE INDEX MIDDLE RING
+1D889 ; [*1858.0020.0002] # SIGNWRITING HAND-ANGLE INDEX MIDDLE RING
+1D88A ; [*1859.0020.0002] # SIGNWRITING HAND-HINGE LITTLE
+1D88B ; [*185A.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE RING BENT
+1D88C ; [*185B.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE RING CONJOINED
+1D88D ; [*185C.0020.0002] # SIGNWRITING HAND-HINGE INDEX MIDDLE RING CONJOINED
+1D88E ; [*185D.0020.0002] # SIGNWRITING HAND-FIST LITTLE DOWN
+1D88F ; [*185E.0020.0002] # SIGNWRITING HAND-FIST LITTLE DOWN RIPPLE STRAIGHT
+1D890 ; [*185F.0020.0002] # SIGNWRITING HAND-FIST LITTLE DOWN RIPPLE CURVED
+1D891 ; [*1860.0020.0002] # SIGNWRITING HAND-FIST LITTLE DOWN OTHERS CIRCLED
+1D892 ; [*1861.0020.0002] # SIGNWRITING HAND-FIST LITTLE UP
+1D893 ; [*1862.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER LITTLE UP
+1D894 ; [*1863.0020.0002] # SIGNWRITING HAND-CIRCLE LITTLE UP
+1D895 ; [*1864.0020.0002] # SIGNWRITING HAND-OVAL LITTLE UP
+1D896 ; [*1865.0020.0002] # SIGNWRITING HAND-ANGLE LITTLE UP
+1D897 ; [*1866.0020.0002] # SIGNWRITING HAND-FIST LITTLE RAISED KNUCKLE
+1D898 ; [*1867.0020.0002] # SIGNWRITING HAND-FIST LITTLE BENT
+1D899 ; [*1868.0020.0002] # SIGNWRITING HAND-FIST LITTLE TOUCHES THUMB
+1D89A ; [*1869.0020.0002] # SIGNWRITING HAND-FIST LITTLE THUMB
+1D89B ; [*186A.0020.0002] # SIGNWRITING HAND-HINGE LITTLE THUMB
+1D89C ; [*186B.0020.0002] # SIGNWRITING HAND-FIST LITTLE INDEX THUMB
+1D89D ; [*186C.0020.0002] # SIGNWRITING HAND-HINGE LITTLE INDEX THUMB
+1D89E ; [*186D.0020.0002] # SIGNWRITING HAND-ANGLE LITTLE INDEX THUMB INDEX THUMB OUT
+1D89F ; [*186E.0020.0002] # SIGNWRITING HAND-ANGLE LITTLE INDEX THUMB INDEX THUMB
+1D8A0 ; [*186F.0020.0002] # SIGNWRITING HAND-FIST LITTLE INDEX
+1D8A1 ; [*1870.0020.0002] # SIGNWRITING HAND-CIRCLE LITTLE INDEX
+1D8A2 ; [*1871.0020.0002] # SIGNWRITING HAND-HINGE LITTLE INDEX
+1D8A3 ; [*1872.0020.0002] # SIGNWRITING HAND-ANGLE LITTLE INDEX
+1D8A4 ; [*1873.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE LITTLE
+1D8A5 ; [*1874.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE LITTLE
+1D8A6 ; [*1875.0020.0002] # SIGNWRITING HAND-HINGE INDEX MIDDLE LITTLE
+1D8A7 ; [*1876.0020.0002] # SIGNWRITING HAND-HINGE RING
+1D8A8 ; [*1877.0020.0002] # SIGNWRITING HAND-ANGLE INDEX MIDDLE LITTLE
+1D8A9 ; [*1878.0020.0002] # SIGNWRITING HAND-FIST INDEX MIDDLE CROSS LITTLE
+1D8AA ; [*1879.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX MIDDLE CROSS LITTLE
+1D8AB ; [*187A.0020.0002] # SIGNWRITING HAND-FIST RING DOWN
+1D8AC ; [*187B.0020.0002] # SIGNWRITING HAND-HINGE RING DOWN INDEX THUMB HOOK MIDDLE
+1D8AD ; [*187C.0020.0002] # SIGNWRITING HAND-ANGLE RING DOWN MIDDLE THUMB INDEX CROSS
+1D8AE ; [*187D.0020.0002] # SIGNWRITING HAND-FIST RING UP
+1D8AF ; [*187E.0020.0002] # SIGNWRITING HAND-FIST RING RAISED KNUCKLE
+1D8B0 ; [*187F.0020.0002] # SIGNWRITING HAND-FIST RING LITTLE
+1D8B1 ; [*1880.0020.0002] # SIGNWRITING HAND-CIRCLE RING LITTLE
+1D8B2 ; [*1881.0020.0002] # SIGNWRITING HAND-OVAL RING LITTLE
+1D8B3 ; [*1882.0020.0002] # SIGNWRITING HAND-ANGLE RING LITTLE
+1D8B4 ; [*1883.0020.0002] # SIGNWRITING HAND-FIST RING MIDDLE
+1D8B5 ; [*1884.0020.0002] # SIGNWRITING HAND-FIST RING MIDDLE CONJOINED
+1D8B6 ; [*1885.0020.0002] # SIGNWRITING HAND-FIST RING MIDDLE RAISED KNUCKLES
+1D8B7 ; [*1886.0020.0002] # SIGNWRITING HAND-FIST RING INDEX
+1D8B8 ; [*1887.0020.0002] # SIGNWRITING HAND-FIST RING THUMB
+1D8B9 ; [*1888.0020.0002] # SIGNWRITING HAND-HOOK RING THUMB
+1D8BA ; [*1889.0020.0002] # SIGNWRITING HAND-FIST INDEX RING LITTLE
+1D8BB ; [*188A.0020.0002] # SIGNWRITING HAND-CIRCLE INDEX RING LITTLE
+1D8BC ; [*188B.0020.0002] # SIGNWRITING HAND-CURLICUE INDEX RING LITTLE ON
+1D8BD ; [*188C.0020.0002] # SIGNWRITING HAND-HOOK INDEX RING LITTLE OUT
+1D8BE ; [*188D.0020.0002] # SIGNWRITING HAND-HOOK INDEX RING LITTLE IN
+1D8BF ; [*188E.0020.0002] # SIGNWRITING HAND-HOOK INDEX RING LITTLE UNDER
+1D8C0 ; [*188F.0020.0002] # SIGNWRITING HAND-CUP INDEX RING LITTLE
+1D8C1 ; [*1890.0020.0002] # SIGNWRITING HAND-HINGE INDEX RING LITTLE
+1D8C2 ; [*1891.0020.0002] # SIGNWRITING HAND-ANGLE INDEX RING LITTLE OUT
+1D8C3 ; [*1892.0020.0002] # SIGNWRITING HAND-ANGLE INDEX RING LITTLE
+1D8C4 ; [*1893.0020.0002] # SIGNWRITING HAND-FIST MIDDLE DOWN
+1D8C5 ; [*1894.0020.0002] # SIGNWRITING HAND-HINGE MIDDLE
+1D8C6 ; [*1895.0020.0002] # SIGNWRITING HAND-FIST MIDDLE UP
+1D8C7 ; [*1896.0020.0002] # SIGNWRITING HAND-CIRCLE MIDDLE UP
+1D8C8 ; [*1897.0020.0002] # SIGNWRITING HAND-FIST MIDDLE RAISED KNUCKLE
+1D8C9 ; [*1898.0020.0002] # SIGNWRITING HAND-FIST MIDDLE UP THUMB SIDE
+1D8CA ; [*1899.0020.0002] # SIGNWRITING HAND-HOOK MIDDLE THUMB
+1D8CB ; [*189A.0020.0002] # SIGNWRITING HAND-FIST MIDDLE THUMB LITTLE
+1D8CC ; [*189B.0020.0002] # SIGNWRITING HAND-FIST MIDDLE LITTLE
+1D8CD ; [*189C.0020.0002] # SIGNWRITING HAND-FIST MIDDLE RING LITTLE
+1D8CE ; [*189D.0020.0002] # SIGNWRITING HAND-CIRCLE MIDDLE RING LITTLE
+1D8CF ; [*189E.0020.0002] # SIGNWRITING HAND-CURLICUE MIDDLE RING LITTLE ON
+1D8D0 ; [*189F.0020.0002] # SIGNWRITING HAND-CUP MIDDLE RING LITTLE
+1D8D1 ; [*18A0.0020.0002] # SIGNWRITING HAND-HINGE MIDDLE RING LITTLE
+1D8D2 ; [*18A1.0020.0002] # SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE OUT
+1D8D3 ; [*18A2.0020.0002] # SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE IN
+1D8D4 ; [*18A3.0020.0002] # SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE
+1D8D5 ; [*18A4.0020.0002] # SIGNWRITING HAND-CIRCLE MIDDLE RING LITTLE BENT
+1D8D6 ; [*18A5.0020.0002] # SIGNWRITING HAND-CLAW MIDDLE RING LITTLE CONJOINED
+1D8D7 ; [*18A6.0020.0002] # SIGNWRITING HAND-CLAW MIDDLE RING LITTLE CONJOINED SIDE
+1D8D8 ; [*18A7.0020.0002] # SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED OUT
+1D8D9 ; [*18A8.0020.0002] # SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED IN
+1D8DA ; [*18A9.0020.0002] # SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED
+1D8DB ; [*18AA.0020.0002] # SIGNWRITING HAND-HINGE INDEX HINGED
+1D8DC ; [*18AB.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE
+1D8DD ; [*18AC.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB SIDE
+1D8DE ; [*18AD.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB DIAGONAL
+1D8DF ; [*18AE.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB CONJOINED
+1D8E0 ; [*18AF.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB BENT
+1D8E1 ; [*18B0.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE INDEX BENT
+1D8E2 ; [*18B1.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE BOTH BENT
+1D8E3 ; [*18B2.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB SIDE INDEX HINGE
+1D8E4 ; [*18B3.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB FORWARD INDEX STRAIGHT
+1D8E5 ; [*18B4.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB FORWARD INDEX BENT
+1D8E6 ; [*18B5.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB HOOK
+1D8E7 ; [*18B6.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CURLICUE
+1D8E8 ; [*18B7.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CURVE THUMB INSIDE
+1D8E9 ; [*18B8.0020.0002] # SIGNWRITING HAND-CLAW INDEX THUMB CURVE THUMB INSIDE
+1D8EA ; [*18B9.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CURVE THUMB UNDER
+1D8EB ; [*18BA.0020.0002] # SIGNWRITING HAND-FIST INDEX THUMB CIRCLE
+1D8EC ; [*18BB.0020.0002] # SIGNWRITING HAND-CUP INDEX THUMB
+1D8ED ; [*18BC.0020.0002] # SIGNWRITING HAND-CUP INDEX THUMB OPEN
+1D8EE ; [*18BD.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB OPEN
+1D8EF ; [*18BE.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB LARGE
+1D8F0 ; [*18BF.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB
+1D8F1 ; [*18C0.0020.0002] # SIGNWRITING HAND-HINGE INDEX THUMB SMALL
+1D8F2 ; [*18C1.0020.0002] # SIGNWRITING HAND-ANGLE INDEX THUMB OUT
+1D8F3 ; [*18C2.0020.0002] # SIGNWRITING HAND-ANGLE INDEX THUMB IN
+1D8F4 ; [*18C3.0020.0002] # SIGNWRITING HAND-ANGLE INDEX THUMB
+1D8F5 ; [*18C4.0020.0002] # SIGNWRITING HAND-FIST THUMB
+1D8F6 ; [*18C5.0020.0002] # SIGNWRITING HAND-FIST THUMB HEEL
+1D8F7 ; [*18C6.0020.0002] # SIGNWRITING HAND-FIST THUMB SIDE DIAGONAL
+1D8F8 ; [*18C7.0020.0002] # SIGNWRITING HAND-FIST THUMB SIDE CONJOINED
+1D8F9 ; [*18C8.0020.0002] # SIGNWRITING HAND-FIST THUMB SIDE BENT
+1D8FA ; [*18C9.0020.0002] # SIGNWRITING HAND-FIST THUMB FORWARD
+1D8FB ; [*18CA.0020.0002] # SIGNWRITING HAND-FIST THUMB BETWEEN INDEX MIDDLE
+1D8FC ; [*18CB.0020.0002] # SIGNWRITING HAND-FIST THUMB BETWEEN MIDDLE RING
+1D8FD ; [*18CC.0020.0002] # SIGNWRITING HAND-FIST THUMB BETWEEN RING LITTLE
+1D8FE ; [*18CD.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER TWO FINGERS
+1D8FF ; [*18CE.0020.0002] # SIGNWRITING HAND-FIST THUMB OVER TWO FINGERS
+1D900 ; [*18CF.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER THREE FINGERS
+1D901 ; [*18D0.0020.0002] # SIGNWRITING HAND-FIST THUMB UNDER FOUR FINGERS
+1D902 ; [*18D1.0020.0002] # SIGNWRITING HAND-FIST THUMB OVER FOUR RAISED KNUCKLES
+1D903 ; [*18D2.0020.0002] # SIGNWRITING HAND-FIST
+1D904 ; [*18D3.0020.0002] # SIGNWRITING HAND-FIST HEEL
+1D905 ; [*18D4.0020.0002] # SIGNWRITING TOUCH SINGLE
+1D906 ; [*18D5.0020.0002] # SIGNWRITING TOUCH MULTIPLE
+1D907 ; [*18D6.0020.0002] # SIGNWRITING TOUCH BETWEEN
+1D908 ; [*18D7.0020.0002] # SIGNWRITING GRASP SINGLE
+1D909 ; [*18D8.0020.0002] # SIGNWRITING GRASP MULTIPLE
+1D90A ; [*18D9.0020.0002] # SIGNWRITING GRASP BETWEEN
+1D90B ; [*18DA.0020.0002] # SIGNWRITING STRIKE SINGLE
+1D90C ; [*18DB.0020.0002] # SIGNWRITING STRIKE MULTIPLE
+1D90D ; [*18DC.0020.0002] # SIGNWRITING STRIKE BETWEEN
+1D90E ; [*18DD.0020.0002] # SIGNWRITING BRUSH SINGLE
+1D90F ; [*18DE.0020.0002] # SIGNWRITING BRUSH MULTIPLE
+1D910 ; [*18DF.0020.0002] # SIGNWRITING BRUSH BETWEEN
+1D911 ; [*18E0.0020.0002] # SIGNWRITING RUB SINGLE
+1D912 ; [*18E1.0020.0002] # SIGNWRITING RUB MULTIPLE
+1D913 ; [*18E2.0020.0002] # SIGNWRITING RUB BETWEEN
+1D914 ; [*18E3.0020.0002] # SIGNWRITING SURFACE SYMBOLS
+1D915 ; [*18E4.0020.0002] # SIGNWRITING SURFACE BETWEEN
+1D916 ; [*18E5.0020.0002] # SIGNWRITING SQUEEZE LARGE SINGLE
+1D917 ; [*18E6.0020.0002] # SIGNWRITING SQUEEZE SMALL SINGLE
+1D918 ; [*18E7.0020.0002] # SIGNWRITING SQUEEZE LARGE MULTIPLE
+1D919 ; [*18E8.0020.0002] # SIGNWRITING SQUEEZE SMALL MULTIPLE
+1D91A ; [*18E9.0020.0002] # SIGNWRITING SQUEEZE SEQUENTIAL
+1D91B ; [*18EA.0020.0002] # SIGNWRITING FLICK LARGE SINGLE
+1D91C ; [*18EB.0020.0002] # SIGNWRITING FLICK SMALL SINGLE
+1D91D ; [*18EC.0020.0002] # SIGNWRITING FLICK LARGE MULTIPLE
+1D91E ; [*18ED.0020.0002] # SIGNWRITING FLICK SMALL MULTIPLE
+1D91F ; [*18EE.0020.0002] # SIGNWRITING FLICK SEQUENTIAL
+1D920 ; [*18EF.0020.0002] # SIGNWRITING SQUEEZE FLICK ALTERNATING
+1D921 ; [*18F0.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP DOWN LARGE
+1D922 ; [*18F1.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP DOWN SMALL
+1D923 ; [*18F2.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP SEQUENTIAL
+1D924 ; [*18F3.0020.0002] # SIGNWRITING MOVEMENT-HINGE DOWN SEQUENTIAL
+1D925 ; [*18F4.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP DOWN ALTERNATING LARGE
+1D926 ; [*18F5.0020.0002] # SIGNWRITING MOVEMENT-HINGE UP DOWN ALTERNATING SMALL
+1D927 ; [*18F6.0020.0002] # SIGNWRITING MOVEMENT-HINGE SIDE TO SIDE SCISSORS
+1D928 ; [*18F7.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE FINGER CONTACT
+1D929 ; [*18F8.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE FINGER CONTACT
+1D92A ; [*18F9.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT SMALL
+1D92B ; [*18FA.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT MEDIUM
+1D92C ; [*18FB.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT LARGE
+1D92D ; [*18FC.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT LARGEST
+1D92E ; [*18FD.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SINGLE WRIST FLEX
+1D92F ; [*18FE.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE DOUBLE STRAIGHT
+1D930 ; [*18FF.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE DOUBLE WRIST FLEX
+1D931 ; [*1900.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE DOUBLE ALTERNATING
+1D932 ; [*1901.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE DOUBLE ALTERNATING WRIST FLEX
+1D933 ; [*1902.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CROSS
+1D934 ; [*1903.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE TRIPLE STRAIGHT MOVEMENT
+1D935 ; [*1904.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE TRIPLE WRIST FLEX
+1D936 ; [*1905.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE TRIPLE ALTERNATING
+1D937 ; [*1906.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE TRIPLE ALTERNATING WRIST FLEX
+1D938 ; [*1907.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BEND SMALL
+1D939 ; [*1908.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BEND MEDIUM
+1D93A ; [*1909.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BEND LARGE
+1D93B ; [*190A.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CORNER SMALL
+1D93C ; [*190B.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CORNER MEDIUM
+1D93D ; [*190C.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CORNER LARGE
+1D93E ; [*190D.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CORNER ROTATION
+1D93F ; [*190E.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CHECK SMALL
+1D940 ; [*190F.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CHECK MEDIUM
+1D941 ; [*1910.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CHECK LARGE
+1D942 ; [*1911.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BOX SMALL
+1D943 ; [*1912.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BOX MEDIUM
+1D944 ; [*1913.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE BOX LARGE
+1D945 ; [*1914.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG SMALL
+1D946 ; [*1915.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG MEDIUM
+1D947 ; [*1916.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG LARGE
+1D948 ; [*1917.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE PEAKS SMALL
+1D949 ; [*1918.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE PEAKS MEDIUM
+1D94A ; [*1919.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE PEAKS LARGE
+1D94B ; [*191A.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE SINGLE
+1D94C ; [*191B.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE DOUBLE
+1D94D ; [*191C.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE ALTERNATING
+1D94E ; [*191D.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE SINGLE
+1D94F ; [*191E.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE DOUBLE
+1D950 ; [*191F.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE ALTERNATING
+1D951 ; [*1920.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE SHAKING
+1D952 ; [*1921.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL SINGLE
+1D953 ; [*1922.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL DOUBLE
+1D954 ; [*1923.0020.0002] # SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL TRIPLE
+1D955 ; [*1924.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL AWAY SMALL
+1D956 ; [*1925.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL AWAY MEDIUM
+1D957 ; [*1926.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL AWAY LARGE
+1D958 ; [*1927.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL AWAY LARGEST
+1D959 ; [*1928.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL TOWARDS SMALL
+1D95A ; [*1929.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL TOWARDS MEDIUM
+1D95B ; [*192A.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL TOWARDS LARGE
+1D95C ; [*192B.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL TOWARDS LARGEST
+1D95D ; [*192C.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY SMALL
+1D95E ; [*192D.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY MEDIUM
+1D95F ; [*192E.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY LARGE
+1D960 ; [*192F.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY LARGEST
+1D961 ; [*1930.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS SMALL
+1D962 ; [*1931.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS MEDIUM
+1D963 ; [*1932.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS LARGE
+1D964 ; [*1933.0020.0002] # SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS LARGEST
+1D965 ; [*1934.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT SMALL
+1D966 ; [*1935.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT MEDIUM
+1D967 ; [*1936.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT LARGE
+1D968 ; [*1937.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT LARGEST
+1D969 ; [*1938.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SINGLE WRIST FLEX
+1D96A ; [*1939.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE STRAIGHT
+1D96B ; [*193A.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE WRIST FLEX
+1D96C ; [*193B.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE ALTERNATING
+1D96D ; [*193C.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE ALTERNATING WRIST FLEX
+1D96E ; [*193D.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CROSS
+1D96F ; [*193E.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE STRAIGHT MOVEMENT
+1D970 ; [*193F.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE WRIST FLEX
+1D971 ; [*1940.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE ALTERNATING MOVEMENT
+1D972 ; [*1941.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE ALTERNATING WRIST FLEX
+1D973 ; [*1942.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE BEND
+1D974 ; [*1943.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CORNER SMALL
+1D975 ; [*1944.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CORNER MEDIUM
+1D976 ; [*1945.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CORNER LARGE
+1D977 ; [*1946.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CHECK
+1D978 ; [*1947.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE BOX SMALL
+1D979 ; [*1948.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE BOX MEDIUM
+1D97A ; [*1949.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE BOX LARGE
+1D97B ; [*194A.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG SMALL
+1D97C ; [*194B.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG MEDIUM
+1D97D ; [*194C.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG LARGE
+1D97E ; [*194D.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE PEAKS SMALL
+1D97F ; [*194E.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE PEAKS MEDIUM
+1D980 ; [*194F.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE PEAKS LARGE
+1D981 ; [*1950.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE SINGLE
+1D982 ; [*1951.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE DOUBLE
+1D983 ; [*1952.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE ALTERNATING
+1D984 ; [*1953.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE SINGLE
+1D985 ; [*1954.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE DOUBLE
+1D986 ; [*1955.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE ALTERNATING
+1D987 ; [*1956.0020.0002] # SIGNWRITING TRAVEL-FLOORPLANE SHAKING
+1D988 ; [*1957.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER SMALL
+1D989 ; [*1958.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER MEDIUM
+1D98A ; [*1959.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER LARGE
+1D98B ; [*195A.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER LARGEST
+1D98C ; [*195B.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE SMALL
+1D98D ; [*195C.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE MEDIUM
+1D98E ; [*195D.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE LARGE
+1D98F ; [*195E.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE LARGEST
+1D990 ; [*195F.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE THREE-QUARTER CIRCLE SMALL
+1D991 ; [*1960.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE THREE-QUARTER CIRCLE MEDIUM
+1D992 ; [*1961.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP SMALL
+1D993 ; [*1962.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP MEDIUM
+1D994 ; [*1963.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP LARGE
+1D995 ; [*1964.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP SMALL
+1D996 ; [*1965.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP MEDIUM
+1D997 ; [*1966.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP LARGE
+1D998 ; [*1967.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP SMALL DOUBLE
+1D999 ; [*1968.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE SMALL
+1D99A ; [*1969.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE MEDIUM
+1D99B ; [*196A.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE LARGE
+1D99C ; [*196B.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE SMALL
+1D99D ; [*196C.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE MEDIUM
+1D99E ; [*196D.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE LARGE
+1D99F ; [*196E.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE THEN STRAIGHT
+1D9A0 ; [*196F.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVED CROSS SMALL
+1D9A1 ; [*1970.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVED CROSS MEDIUM
+1D9A2 ; [*1971.0020.0002] # SIGNWRITING ROTATION-WALLPLANE SINGLE
+1D9A3 ; [*1972.0020.0002] # SIGNWRITING ROTATION-WALLPLANE DOUBLE
+1D9A4 ; [*1973.0020.0002] # SIGNWRITING ROTATION-WALLPLANE ALTERNATE
+1D9A5 ; [*1974.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE SHAKING
+1D9A6 ; [*1975.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HITTING FRONT WALL
+1D9A7 ; [*1976.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP HITTING FRONT WALL
+1D9A8 ; [*1977.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP HITTING FRONT WALL
+1D9A9 ; [*1978.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE HITTING FRONT WALL
+1D9AA ; [*1979.0020.0002] # SIGNWRITING ROTATION-WALLPLANE SINGLE HITTING FRONT WALL
+1D9AB ; [*197A.0020.0002] # SIGNWRITING ROTATION-WALLPLANE DOUBLE HITTING FRONT WALL
+1D9AC ; [*197B.0020.0002] # SIGNWRITING ROTATION-WALLPLANE ALTERNATING HITTING FRONT WALL
+1D9AD ; [*197C.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE CURVE HITTING CHEST
+1D9AE ; [*197D.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE HUMP HITTING CHEST
+1D9AF ; [*197E.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE LOOP HITTING CHEST
+1D9B0 ; [*197F.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE HITTING CHEST
+1D9B1 ; [*1980.0020.0002] # SIGNWRITING ROTATION-WALLPLANE SINGLE HITTING CHEST
+1D9B2 ; [*1981.0020.0002] # SIGNWRITING ROTATION-WALLPLANE DOUBLE HITTING CHEST
+1D9B3 ; [*1982.0020.0002] # SIGNWRITING ROTATION-WALLPLANE ALTERNATING HITTING CHEST
+1D9B4 ; [*1983.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH SMALL
+1D9B5 ; [*1984.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH MEDIUM
+1D9B6 ; [*1985.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH LARGE
+1D9B7 ; [*1986.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING CEILING SMALL
+1D9B8 ; [*1987.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING CEILING LARGE
+1D9B9 ; [*1988.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING SMALL DOUBLE
+1D9BA ; [*1989.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING LARGE DOUBLE
+1D9BB ; [*198A.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING SMALL TRIPLE
+1D9BC ; [*198B.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING LARGE TRIPLE
+1D9BD ; [*198C.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING SMALL SINGLE
+1D9BE ; [*198D.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING LARGE SINGLE
+1D9BF ; [*198E.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING SMALL DOUBLE
+1D9C0 ; [*198F.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING LARGE DOUBLE
+1D9C1 ; [*1990.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING CEILING SMALL
+1D9C2 ; [*1991.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING CEILING LARGE
+1D9C3 ; [*1992.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE SINGLE HITTING CEILING
+1D9C4 ; [*1993.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE DOUBLE HITTING CEILING
+1D9C5 ; [*1994.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE ALTERNATING HITTING CEILING
+1D9C6 ; [*1995.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING FLOOR SMALL
+1D9C7 ; [*1996.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING FLOOR LARGE
+1D9C8 ; [*1997.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR SMALL DOUBLE
+1D9C9 ; [*1998.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR LARGE DOUBLE
+1D9CA ; [*1999.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR TRIPLE SMALL TRIPLE
+1D9CB ; [*199A.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR TRIPLE LARGE TRIPLE
+1D9CC ; [*199B.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR SMALL SINGLE
+1D9CD ; [*199C.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR LARGE SINGLE
+1D9CE ; [*199D.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR SMALL DOUBLE
+1D9CF ; [*199E.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR LARGE DOUBLE
+1D9D0 ; [*199F.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING FLOOR SMALL
+1D9D1 ; [*19A0.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING FLOOR LARGE
+1D9D2 ; [*19A1.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE SINGLE HITTING FLOOR
+1D9D3 ; [*19A2.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE DOUBLE HITTING FLOOR
+1D9D4 ; [*19A3.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE ALTERNATING HITTING FLOOR
+1D9D5 ; [*19A4.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE SMALL
+1D9D6 ; [*19A5.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE MEDIUM
+1D9D7 ; [*19A6.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE LARGE
+1D9D8 ; [*19A7.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE LARGEST
+1D9D9 ; [*19A8.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE CURVE COMBINED
+1D9DA ; [*19A9.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE HUMP SMALL
+1D9DB ; [*19AA.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE LOOP SMALL
+1D9DC ; [*19AB.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE SNAKE
+1D9DD ; [*19AC.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE SMALL
+1D9DE ; [*19AD.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WAVE LARGE
+1D9DF ; [*19AE.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE SINGLE
+1D9E0 ; [*19AF.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE DOUBLE
+1D9E1 ; [*19B0.0020.0002] # SIGNWRITING ROTATION-FLOORPLANE ALTERNATING
+1D9E2 ; [*19B1.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE SHAKING PARALLEL
+1D9E3 ; [*19B2.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE SMALL SINGLE
+1D9E4 ; [*19B3.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE MEDIUM SINGLE
+1D9E5 ; [*19B4.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE SMALL DOUBLE
+1D9E6 ; [*19B5.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE MEDIUM DOUBLE
+1D9E7 ; [*19B6.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL SMALL SINGLE
+1D9E8 ; [*19B7.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL MEDIUM SINGLE
+1D9E9 ; [*19B8.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL LARGE SINGLE
+1D9EA ; [*19B9.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL SMALL DOUBLE
+1D9EB ; [*19BA.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL MEDIUM DOUBLE
+1D9EC ; [*19BB.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL LARGE DOUBLE
+1D9ED ; [*19BC.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WRIST CIRCLE FRONT SINGLE
+1D9EE ; [*19BD.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE WRIST CIRCLE FRONT DOUBLE
+1D9EF ; [*19BE.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WRIST CIRCLE HITTING WALL SINGLE
+1D9F0 ; [*19BF.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE WRIST CIRCLE HITTING WALL DOUBLE
+1D9F1 ; [*19C0.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE FINGER CIRCLES SINGLE
+1D9F2 ; [*19C1.0020.0002] # SIGNWRITING MOVEMENT-WALLPLANE FINGER CIRCLES DOUBLE
+1D9F3 ; [*19C2.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE FINGER CIRCLES HITTING WALL SINGLE
+1D9F4 ; [*19C3.0020.0002] # SIGNWRITING MOVEMENT-FLOORPLANE FINGER CIRCLES HITTING WALL DOUBLE
+1D9F5 ; [*19C4.0020.0002] # SIGNWRITING DYNAMIC ARROWHEAD SMALL
+1D9F6 ; [*19C5.0020.0002] # SIGNWRITING DYNAMIC ARROWHEAD LARGE
+1D9F7 ; [*19C6.0020.0002] # SIGNWRITING DYNAMIC FAST
+1D9F8 ; [*19C7.0020.0002] # SIGNWRITING DYNAMIC SLOW
+1D9F9 ; [*19C8.0020.0002] # SIGNWRITING DYNAMIC TENSE
+1D9FA ; [*19C9.0020.0002] # SIGNWRITING DYNAMIC RELAXED
+1D9FB ; [*19CA.0020.0002] # SIGNWRITING DYNAMIC SIMULTANEOUS
+1D9FC ; [*19CB.0020.0002] # SIGNWRITING DYNAMIC SIMULTANEOUS ALTERNATING
+1D9FD ; [*19CC.0020.0002] # SIGNWRITING DYNAMIC EVERY OTHER TIME
+1D9FE ; [*19CD.0020.0002] # SIGNWRITING DYNAMIC GRADUAL
+1D9FF ; [*19CE.0020.0002] # SIGNWRITING HEAD
+1DA00 ; [.0000.0000.0000] # SIGNWRITING HEAD RIM
+1DA01 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-WALLPLANE STRAIGHT
+1DA02 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-WALLPLANE TILT
+1DA03 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-FLOORPLANE STRAIGHT
+1DA04 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-WALLPLANE CURVE
+1DA05 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT-FLOORPLANE CURVE
+1DA06 ; [.0000.0000.0000] # SIGNWRITING HEAD MOVEMENT CIRCLE
+1DA07 ; [.0000.0000.0000] # SIGNWRITING FACE DIRECTION POSITION NOSE FORWARD TILTING
+1DA08 ; [.0000.0000.0000] # SIGNWRITING FACE DIRECTION POSITION NOSE UP OR DOWN
+1DA09 ; [.0000.0000.0000] # SIGNWRITING FACE DIRECTION POSITION NOSE UP OR DOWN TILTING
+1DA0A ; [.0000.0000.0000] # SIGNWRITING EYEBROWS STRAIGHT UP
+1DA0B ; [.0000.0000.0000] # SIGNWRITING EYEBROWS STRAIGHT NEUTRAL
+1DA0C ; [.0000.0000.0000] # SIGNWRITING EYEBROWS STRAIGHT DOWN
+1DA0D ; [.0000.0000.0000] # SIGNWRITING DREAMY EYEBROWS NEUTRAL DOWN
+1DA0E ; [.0000.0000.0000] # SIGNWRITING DREAMY EYEBROWS DOWN NEUTRAL
+1DA0F ; [.0000.0000.0000] # SIGNWRITING DREAMY EYEBROWS UP NEUTRAL
+1DA10 ; [.0000.0000.0000] # SIGNWRITING DREAMY EYEBROWS NEUTRAL UP
+1DA11 ; [.0000.0000.0000] # SIGNWRITING FOREHEAD NEUTRAL
+1DA12 ; [.0000.0000.0000] # SIGNWRITING FOREHEAD CONTACT
+1DA13 ; [.0000.0000.0000] # SIGNWRITING FOREHEAD WRINKLED
+1DA14 ; [.0000.0000.0000] # SIGNWRITING EYES OPEN
+1DA15 ; [.0000.0000.0000] # SIGNWRITING EYES SQUEEZED
+1DA16 ; [.0000.0000.0000] # SIGNWRITING EYES CLOSED
+1DA17 ; [.0000.0000.0000] # SIGNWRITING EYE BLINK SINGLE
+1DA18 ; [.0000.0000.0000] # SIGNWRITING EYE BLINK MULTIPLE
+1DA19 ; [.0000.0000.0000] # SIGNWRITING EYES HALF OPEN
+1DA1A ; [.0000.0000.0000] # SIGNWRITING EYES WIDE OPEN
+1DA1B ; [.0000.0000.0000] # SIGNWRITING EYES HALF CLOSED
+1DA1C ; [.0000.0000.0000] # SIGNWRITING EYES WIDENING MOVEMENT
+1DA1D ; [.0000.0000.0000] # SIGNWRITING EYE WINK
+1DA1E ; [.0000.0000.0000] # SIGNWRITING EYELASHES UP
+1DA1F ; [.0000.0000.0000] # SIGNWRITING EYELASHES DOWN
+1DA20 ; [.0000.0000.0000] # SIGNWRITING EYELASHES FLUTTERING
+1DA21 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT
+1DA22 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT DOUBLE
+1DA23 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT ALTERNATING
+1DA24 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT
+1DA25 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT DOUBLE
+1DA26 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT ALTERNATING
+1DA27 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE CURVED
+1DA28 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-FLOORPLANE CURVED
+1DA29 ; [.0000.0000.0000] # SIGNWRITING EYEGAZE-WALLPLANE CIRCLING
+1DA2A ; [.0000.0000.0000] # SIGNWRITING CHEEKS PUFFED
+1DA2B ; [.0000.0000.0000] # SIGNWRITING CHEEKS NEUTRAL
+1DA2C ; [.0000.0000.0000] # SIGNWRITING CHEEKS SUCKED
+1DA2D ; [.0000.0000.0000] # SIGNWRITING TENSE CHEEKS HIGH
+1DA2E ; [.0000.0000.0000] # SIGNWRITING TENSE CHEEKS MIDDLE
+1DA2F ; [.0000.0000.0000] # SIGNWRITING TENSE CHEEKS LOW
+1DA30 ; [.0000.0000.0000] # SIGNWRITING EARS
+1DA31 ; [.0000.0000.0000] # SIGNWRITING NOSE NEUTRAL
+1DA32 ; [.0000.0000.0000] # SIGNWRITING NOSE CONTACT
+1DA33 ; [.0000.0000.0000] # SIGNWRITING NOSE WRINKLES
+1DA34 ; [.0000.0000.0000] # SIGNWRITING NOSE WIGGLES
+1DA35 ; [.0000.0000.0000] # SIGNWRITING AIR BLOWING OUT
+1DA36 ; [.0000.0000.0000] # SIGNWRITING AIR SUCKING IN
+1DA37 ; [*19CF.0020.0002] # SIGNWRITING AIR BLOW SMALL ROTATIONS
+1DA38 ; [*19D0.0020.0002] # SIGNWRITING AIR SUCK SMALL ROTATIONS
+1DA39 ; [*19D1.0020.0002] # SIGNWRITING BREATH INHALE
+1DA3A ; [*19D2.0020.0002] # SIGNWRITING BREATH EXHALE
+1DA3B ; [.0000.0000.0000] # SIGNWRITING MOUTH CLOSED NEUTRAL
+1DA3C ; [.0000.0000.0000] # SIGNWRITING MOUTH CLOSED FORWARD
+1DA3D ; [.0000.0000.0000] # SIGNWRITING MOUTH CLOSED CONTACT
+1DA3E ; [.0000.0000.0000] # SIGNWRITING MOUTH SMILE
+1DA3F ; [.0000.0000.0000] # SIGNWRITING MOUTH SMILE WRINKLED
+1DA40 ; [.0000.0000.0000] # SIGNWRITING MOUTH SMILE OPEN
+1DA41 ; [.0000.0000.0000] # SIGNWRITING MOUTH FROWN
+1DA42 ; [.0000.0000.0000] # SIGNWRITING MOUTH FROWN WRINKLED
+1DA43 ; [.0000.0000.0000] # SIGNWRITING MOUTH FROWN OPEN
+1DA44 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN CIRCLE
+1DA45 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN FORWARD
+1DA46 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN WRINKLED
+1DA47 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN OVAL
+1DA48 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN OVAL WRINKLED
+1DA49 ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN OVAL YAWN
+1DA4A ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN RECTANGLE
+1DA4B ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN RECTANGLE WRINKLED
+1DA4C ; [.0000.0000.0000] # SIGNWRITING MOUTH OPEN RECTANGLE YAWN
+1DA4D ; [.0000.0000.0000] # SIGNWRITING MOUTH KISS
+1DA4E ; [.0000.0000.0000] # SIGNWRITING MOUTH KISS FORWARD
+1DA4F ; [.0000.0000.0000] # SIGNWRITING MOUTH KISS WRINKLED
+1DA50 ; [.0000.0000.0000] # SIGNWRITING MOUTH TENSE
+1DA51 ; [.0000.0000.0000] # SIGNWRITING MOUTH TENSE FORWARD
+1DA52 ; [.0000.0000.0000] # SIGNWRITING MOUTH TENSE SUCKED
+1DA53 ; [.0000.0000.0000] # SIGNWRITING LIPS PRESSED TOGETHER
+1DA54 ; [.0000.0000.0000] # SIGNWRITING LIP LOWER OVER UPPER
+1DA55 ; [.0000.0000.0000] # SIGNWRITING LIP UPPER OVER LOWER
+1DA56 ; [.0000.0000.0000] # SIGNWRITING MOUTH CORNERS
+1DA57 ; [.0000.0000.0000] # SIGNWRITING MOUTH WRINKLES SINGLE
+1DA58 ; [.0000.0000.0000] # SIGNWRITING MOUTH WRINKLES DOUBLE
+1DA59 ; [.0000.0000.0000] # SIGNWRITING TONGUE STICKING OUT FAR
+1DA5A ; [.0000.0000.0000] # SIGNWRITING TONGUE LICKING LIPS
+1DA5B ; [.0000.0000.0000] # SIGNWRITING TONGUE TIP BETWEEN LIPS
+1DA5C ; [.0000.0000.0000] # SIGNWRITING TONGUE TIP TOUCHING INSIDE MOUTH
+1DA5D ; [.0000.0000.0000] # SIGNWRITING TONGUE INSIDE MOUTH RELAXED
+1DA5E ; [.0000.0000.0000] # SIGNWRITING TONGUE MOVES AGAINST CHEEK
+1DA5F ; [.0000.0000.0000] # SIGNWRITING TONGUE CENTRE STICKING OUT
+1DA60 ; [.0000.0000.0000] # SIGNWRITING TONGUE CENTRE INSIDE MOUTH
+1DA61 ; [.0000.0000.0000] # SIGNWRITING TEETH
+1DA62 ; [.0000.0000.0000] # SIGNWRITING TEETH MOVEMENT
+1DA63 ; [.0000.0000.0000] # SIGNWRITING TEETH ON TONGUE
+1DA64 ; [.0000.0000.0000] # SIGNWRITING TEETH ON TONGUE MOVEMENT
+1DA65 ; [.0000.0000.0000] # SIGNWRITING TEETH ON LIPS
+1DA66 ; [.0000.0000.0000] # SIGNWRITING TEETH ON LIPS MOVEMENT
+1DA67 ; [.0000.0000.0000] # SIGNWRITING TEETH BITE LIPS
+1DA68 ; [.0000.0000.0000] # SIGNWRITING MOVEMENT-WALLPLANE JAW
+1DA69 ; [.0000.0000.0000] # SIGNWRITING MOVEMENT-FLOORPLANE JAW
+1DA6A ; [.0000.0000.0000] # SIGNWRITING NECK
+1DA6B ; [.0000.0000.0000] # SIGNWRITING HAIR
+1DA6C ; [.0000.0000.0000] # SIGNWRITING EXCITEMENT
+1DA6D ; [*19D3.0020.0002] # SIGNWRITING SHOULDER HIP SPINE
+1DA6E ; [*19D4.0020.0002] # SIGNWRITING SHOULDER HIP POSITIONS
+1DA6F ; [*19D5.0020.0002] # SIGNWRITING WALLPLANE SHOULDER HIP MOVE
+1DA70 ; [*19D6.0020.0002] # SIGNWRITING FLOORPLANE SHOULDER HIP MOVE
+1DA71 ; [*19D7.0020.0002] # SIGNWRITING SHOULDER TILTING FROM WAIST
+1DA72 ; [*19D8.0020.0002] # SIGNWRITING TORSO-WALLPLANE STRAIGHT STRETCH
+1DA73 ; [*19D9.0020.0002] # SIGNWRITING TORSO-WALLPLANE CURVED BEND
+1DA74 ; [*19DA.0020.0002] # SIGNWRITING TORSO-FLOORPLANE TWISTING
+1DA75 ; [.0000.0000.0000] # SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+1DA76 ; [*19DB.0020.0002] # SIGNWRITING LIMB COMBINATION
+1DA77 ; [*19DC.0020.0002] # SIGNWRITING LIMB LENGTH-1
+1DA78 ; [*19DD.0020.0002] # SIGNWRITING LIMB LENGTH-2
+1DA79 ; [*19DE.0020.0002] # SIGNWRITING LIMB LENGTH-3
+1DA7A ; [*19DF.0020.0002] # SIGNWRITING LIMB LENGTH-4
+1DA7B ; [*19E0.0020.0002] # SIGNWRITING LIMB LENGTH-5
+1DA7C ; [*19E1.0020.0002] # SIGNWRITING LIMB LENGTH-6
+1DA7D ; [*19E2.0020.0002] # SIGNWRITING LIMB LENGTH-7
+1DA7E ; [*19E3.0020.0002] # SIGNWRITING FINGER
+1DA7F ; [*19E4.0020.0002] # SIGNWRITING LOCATION-WALLPLANE SPACE
+1DA80 ; [*19E5.0020.0002] # SIGNWRITING LOCATION-FLOORPLANE SPACE
+1DA81 ; [*19E6.0020.0002] # SIGNWRITING LOCATION HEIGHT
+1DA82 ; [*19E7.0020.0002] # SIGNWRITING LOCATION WIDTH
+1DA83 ; [*19E8.0020.0002] # SIGNWRITING LOCATION DEPTH
+1DA84 ; [.0000.0000.0000] # SIGNWRITING LOCATION HEAD NECK
+1DA85 ; [*19E9.0020.0002] # SIGNWRITING LOCATION TORSO
+1DA86 ; [*19EA.0020.0002] # SIGNWRITING LOCATION LIMBS DIGITS
+1DA87 ; [*045E.0020.0002] # SIGNWRITING COMMA
+1DA88 ; [*045F.0020.0002] # SIGNWRITING FULL STOP
+1DA89 ; [*0460.0020.0002] # SIGNWRITING SEMICOLON
+1DA8A ; [*0461.0020.0002] # SIGNWRITING COLON
+1DA8B ; [*0462.0020.0002] # SIGNWRITING PARENTHESIS
+1DA9B ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-2
+1DA9C ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-3
+1DA9D ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-4
+1DA9E ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-5
+1DA9F ; [.0000.0000.0000] # SIGNWRITING FILL MODIFIER-6
+1DAA1 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-2
+1DAA2 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-3
+1DAA3 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-4
+1DAA4 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-5
+1DAA5 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-6
+1DAA6 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-7
+1DAA7 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-8
+1DAA8 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-9
+1DAA9 ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-10
+1DAAA ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-11
+1DAAB ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-12
+1DAAC ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-13
+1DAAD ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-14
+1DAAE ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-15
+1DAAF ; [.0000.0000.0000] # SIGNWRITING ROTATION MODIFIER-16
1E8D0 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER TEENS
1E8D1 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER TENS
1E8D2 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER HUNDREDS
@@ -5214,1574 +5993,1616 @@ FFFC ; [*17B0.0020.0002] # OBJECT REPLACEMENT CHARACTER
1E8D4 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS
1E8D5 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS
1E8D6 ; [.0000.0000.0000] # MENDE KIKAKUI COMBINING NUMBER MILLIONS
-1EEF0 ; [*04BF.0020.0002] # ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
-1EEF1 ; [*04C0.0020.0002] # ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-1F000 ; [*1172.0020.0002] # MAHJONG TILE EAST WIND
-1F001 ; [*1173.0020.0002] # MAHJONG TILE SOUTH WIND
-1F002 ; [*1174.0020.0002] # MAHJONG TILE WEST WIND
-1F003 ; [*1175.0020.0002] # MAHJONG TILE NORTH WIND
-1F004 ; [*1176.0020.0002] # MAHJONG TILE RED DRAGON
-1F005 ; [*1177.0020.0002] # MAHJONG TILE GREEN DRAGON
-1F006 ; [*1178.0020.0002] # MAHJONG TILE WHITE DRAGON
-1F007 ; [*1179.0020.0002] # MAHJONG TILE ONE OF CHARACTERS
-1F008 ; [*117A.0020.0002] # MAHJONG TILE TWO OF CHARACTERS
-1F009 ; [*117B.0020.0002] # MAHJONG TILE THREE OF CHARACTERS
-1F00A ; [*117C.0020.0002] # MAHJONG TILE FOUR OF CHARACTERS
-1F00B ; [*117D.0020.0002] # MAHJONG TILE FIVE OF CHARACTERS
-1F00C ; [*117E.0020.0002] # MAHJONG TILE SIX OF CHARACTERS
-1F00D ; [*117F.0020.0002] # MAHJONG TILE SEVEN OF CHARACTERS
-1F00E ; [*1180.0020.0002] # MAHJONG TILE EIGHT OF CHARACTERS
-1F00F ; [*1181.0020.0002] # MAHJONG TILE NINE OF CHARACTERS
-1F010 ; [*1182.0020.0002] # MAHJONG TILE ONE OF BAMBOOS
-1F011 ; [*1183.0020.0002] # MAHJONG TILE TWO OF BAMBOOS
-1F012 ; [*1184.0020.0002] # MAHJONG TILE THREE OF BAMBOOS
-1F013 ; [*1185.0020.0002] # MAHJONG TILE FOUR OF BAMBOOS
-1F014 ; [*1186.0020.0002] # MAHJONG TILE FIVE OF BAMBOOS
-1F015 ; [*1187.0020.0002] # MAHJONG TILE SIX OF BAMBOOS
-1F016 ; [*1188.0020.0002] # MAHJONG TILE SEVEN OF BAMBOOS
-1F017 ; [*1189.0020.0002] # MAHJONG TILE EIGHT OF BAMBOOS
-1F018 ; [*118A.0020.0002] # MAHJONG TILE NINE OF BAMBOOS
-1F019 ; [*118B.0020.0002] # MAHJONG TILE ONE OF CIRCLES
-1F01A ; [*118C.0020.0002] # MAHJONG TILE TWO OF CIRCLES
-1F01B ; [*118D.0020.0002] # MAHJONG TILE THREE OF CIRCLES
-1F01C ; [*118E.0020.0002] # MAHJONG TILE FOUR OF CIRCLES
-1F01D ; [*118F.0020.0002] # MAHJONG TILE FIVE OF CIRCLES
-1F01E ; [*1190.0020.0002] # MAHJONG TILE SIX OF CIRCLES
-1F01F ; [*1191.0020.0002] # MAHJONG TILE SEVEN OF CIRCLES
-1F020 ; [*1192.0020.0002] # MAHJONG TILE EIGHT OF CIRCLES
-1F021 ; [*1193.0020.0002] # MAHJONG TILE NINE OF CIRCLES
-1F022 ; [*1194.0020.0002] # MAHJONG TILE PLUM
-1F023 ; [*1195.0020.0002] # MAHJONG TILE ORCHID
-1F024 ; [*1196.0020.0002] # MAHJONG TILE BAMBOO
-1F025 ; [*1197.0020.0002] # MAHJONG TILE CHRYSANTHEMUM
-1F026 ; [*1198.0020.0002] # MAHJONG TILE SPRING
-1F027 ; [*1199.0020.0002] # MAHJONG TILE SUMMER
-1F028 ; [*119A.0020.0002] # MAHJONG TILE AUTUMN
-1F029 ; [*119B.0020.0002] # MAHJONG TILE WINTER
-1F02A ; [*119C.0020.0002] # MAHJONG TILE JOKER
-1F02B ; [*119D.0020.0002] # MAHJONG TILE BACK
-1F030 ; [*119E.0020.0002] # DOMINO TILE HORIZONTAL BACK
-1F031 ; [*119F.0020.0002] # DOMINO TILE HORIZONTAL-00-00
-1F032 ; [*11A0.0020.0002] # DOMINO TILE HORIZONTAL-00-01
-1F033 ; [*11A1.0020.0002] # DOMINO TILE HORIZONTAL-00-02
-1F034 ; [*11A2.0020.0002] # DOMINO TILE HORIZONTAL-00-03
-1F035 ; [*11A3.0020.0002] # DOMINO TILE HORIZONTAL-00-04
-1F036 ; [*11A4.0020.0002] # DOMINO TILE HORIZONTAL-00-05
-1F037 ; [*11A5.0020.0002] # DOMINO TILE HORIZONTAL-00-06
-1F038 ; [*11A6.0020.0002] # DOMINO TILE HORIZONTAL-01-00
-1F039 ; [*11A7.0020.0002] # DOMINO TILE HORIZONTAL-01-01
-1F03A ; [*11A8.0020.0002] # DOMINO TILE HORIZONTAL-01-02
-1F03B ; [*11A9.0020.0002] # DOMINO TILE HORIZONTAL-01-03
-1F03C ; [*11AA.0020.0002] # DOMINO TILE HORIZONTAL-01-04
-1F03D ; [*11AB.0020.0002] # DOMINO TILE HORIZONTAL-01-05
-1F03E ; [*11AC.0020.0002] # DOMINO TILE HORIZONTAL-01-06
-1F03F ; [*11AD.0020.0002] # DOMINO TILE HORIZONTAL-02-00
-1F040 ; [*11AE.0020.0002] # DOMINO TILE HORIZONTAL-02-01
-1F041 ; [*11AF.0020.0002] # DOMINO TILE HORIZONTAL-02-02
-1F042 ; [*11B0.0020.0002] # DOMINO TILE HORIZONTAL-02-03
-1F043 ; [*11B1.0020.0002] # DOMINO TILE HORIZONTAL-02-04
-1F044 ; [*11B2.0020.0002] # DOMINO TILE HORIZONTAL-02-05
-1F045 ; [*11B3.0020.0002] # DOMINO TILE HORIZONTAL-02-06
-1F046 ; [*11B4.0020.0002] # DOMINO TILE HORIZONTAL-03-00
-1F047 ; [*11B5.0020.0002] # DOMINO TILE HORIZONTAL-03-01
-1F048 ; [*11B6.0020.0002] # DOMINO TILE HORIZONTAL-03-02
-1F049 ; [*11B7.0020.0002] # DOMINO TILE HORIZONTAL-03-03
-1F04A ; [*11B8.0020.0002] # DOMINO TILE HORIZONTAL-03-04
-1F04B ; [*11B9.0020.0002] # DOMINO TILE HORIZONTAL-03-05
-1F04C ; [*11BA.0020.0002] # DOMINO TILE HORIZONTAL-03-06
-1F04D ; [*11BB.0020.0002] # DOMINO TILE HORIZONTAL-04-00
-1F04E ; [*11BC.0020.0002] # DOMINO TILE HORIZONTAL-04-01
-1F04F ; [*11BD.0020.0002] # DOMINO TILE HORIZONTAL-04-02
-1F050 ; [*11BE.0020.0002] # DOMINO TILE HORIZONTAL-04-03
-1F051 ; [*11BF.0020.0002] # DOMINO TILE HORIZONTAL-04-04
-1F052 ; [*11C0.0020.0002] # DOMINO TILE HORIZONTAL-04-05
-1F053 ; [*11C1.0020.0002] # DOMINO TILE HORIZONTAL-04-06
-1F054 ; [*11C2.0020.0002] # DOMINO TILE HORIZONTAL-05-00
-1F055 ; [*11C3.0020.0002] # DOMINO TILE HORIZONTAL-05-01
-1F056 ; [*11C4.0020.0002] # DOMINO TILE HORIZONTAL-05-02
-1F057 ; [*11C5.0020.0002] # DOMINO TILE HORIZONTAL-05-03
-1F058 ; [*11C6.0020.0002] # DOMINO TILE HORIZONTAL-05-04
-1F059 ; [*11C7.0020.0002] # DOMINO TILE HORIZONTAL-05-05
-1F05A ; [*11C8.0020.0002] # DOMINO TILE HORIZONTAL-05-06
-1F05B ; [*11C9.0020.0002] # DOMINO TILE HORIZONTAL-06-00
-1F05C ; [*11CA.0020.0002] # DOMINO TILE HORIZONTAL-06-01
-1F05D ; [*11CB.0020.0002] # DOMINO TILE HORIZONTAL-06-02
-1F05E ; [*11CC.0020.0002] # DOMINO TILE HORIZONTAL-06-03
-1F05F ; [*11CD.0020.0002] # DOMINO TILE HORIZONTAL-06-04
-1F060 ; [*11CE.0020.0002] # DOMINO TILE HORIZONTAL-06-05
-1F061 ; [*11CF.0020.0002] # DOMINO TILE HORIZONTAL-06-06
-1F062 ; [*11D0.0020.0002] # DOMINO TILE VERTICAL BACK
-1F063 ; [*11D1.0020.0002] # DOMINO TILE VERTICAL-00-00
-1F064 ; [*11D2.0020.0002] # DOMINO TILE VERTICAL-00-01
-1F065 ; [*11D3.0020.0002] # DOMINO TILE VERTICAL-00-02
-1F066 ; [*11D4.0020.0002] # DOMINO TILE VERTICAL-00-03
-1F067 ; [*11D5.0020.0002] # DOMINO TILE VERTICAL-00-04
-1F068 ; [*11D6.0020.0002] # DOMINO TILE VERTICAL-00-05
-1F069 ; [*11D7.0020.0002] # DOMINO TILE VERTICAL-00-06
-1F06A ; [*11D8.0020.0002] # DOMINO TILE VERTICAL-01-00
-1F06B ; [*11D9.0020.0002] # DOMINO TILE VERTICAL-01-01
-1F06C ; [*11DA.0020.0002] # DOMINO TILE VERTICAL-01-02
-1F06D ; [*11DB.0020.0002] # DOMINO TILE VERTICAL-01-03
-1F06E ; [*11DC.0020.0002] # DOMINO TILE VERTICAL-01-04
-1F06F ; [*11DD.0020.0002] # DOMINO TILE VERTICAL-01-05
-1F070 ; [*11DE.0020.0002] # DOMINO TILE VERTICAL-01-06
-1F071 ; [*11DF.0020.0002] # DOMINO TILE VERTICAL-02-00
-1F072 ; [*11E0.0020.0002] # DOMINO TILE VERTICAL-02-01
-1F073 ; [*11E1.0020.0002] # DOMINO TILE VERTICAL-02-02
-1F074 ; [*11E2.0020.0002] # DOMINO TILE VERTICAL-02-03
-1F075 ; [*11E3.0020.0002] # DOMINO TILE VERTICAL-02-04
-1F076 ; [*11E4.0020.0002] # DOMINO TILE VERTICAL-02-05
-1F077 ; [*11E5.0020.0002] # DOMINO TILE VERTICAL-02-06
-1F078 ; [*11E6.0020.0002] # DOMINO TILE VERTICAL-03-00
-1F079 ; [*11E7.0020.0002] # DOMINO TILE VERTICAL-03-01
-1F07A ; [*11E8.0020.0002] # DOMINO TILE VERTICAL-03-02
-1F07B ; [*11E9.0020.0002] # DOMINO TILE VERTICAL-03-03
-1F07C ; [*11EA.0020.0002] # DOMINO TILE VERTICAL-03-04
-1F07D ; [*11EB.0020.0002] # DOMINO TILE VERTICAL-03-05
-1F07E ; [*11EC.0020.0002] # DOMINO TILE VERTICAL-03-06
-1F07F ; [*11ED.0020.0002] # DOMINO TILE VERTICAL-04-00
-1F080 ; [*11EE.0020.0002] # DOMINO TILE VERTICAL-04-01
-1F081 ; [*11EF.0020.0002] # DOMINO TILE VERTICAL-04-02
-1F082 ; [*11F0.0020.0002] # DOMINO TILE VERTICAL-04-03
-1F083 ; [*11F1.0020.0002] # DOMINO TILE VERTICAL-04-04
-1F084 ; [*11F2.0020.0002] # DOMINO TILE VERTICAL-04-05
-1F085 ; [*11F3.0020.0002] # DOMINO TILE VERTICAL-04-06
-1F086 ; [*11F4.0020.0002] # DOMINO TILE VERTICAL-05-00
-1F087 ; [*11F5.0020.0002] # DOMINO TILE VERTICAL-05-01
-1F088 ; [*11F6.0020.0002] # DOMINO TILE VERTICAL-05-02
-1F089 ; [*11F7.0020.0002] # DOMINO TILE VERTICAL-05-03
-1F08A ; [*11F8.0020.0002] # DOMINO TILE VERTICAL-05-04
-1F08B ; [*11F9.0020.0002] # DOMINO TILE VERTICAL-05-05
-1F08C ; [*11FA.0020.0002] # DOMINO TILE VERTICAL-05-06
-1F08D ; [*11FB.0020.0002] # DOMINO TILE VERTICAL-06-00
-1F08E ; [*11FC.0020.0002] # DOMINO TILE VERTICAL-06-01
-1F08F ; [*11FD.0020.0002] # DOMINO TILE VERTICAL-06-02
-1F090 ; [*11FE.0020.0002] # DOMINO TILE VERTICAL-06-03
-1F091 ; [*11FF.0020.0002] # DOMINO TILE VERTICAL-06-04
-1F092 ; [*1200.0020.0002] # DOMINO TILE VERTICAL-06-05
-1F093 ; [*1201.0020.0002] # DOMINO TILE VERTICAL-06-06
-1F0A0 ; [*1202.0020.0002] # PLAYING CARD BACK
-1F0A1 ; [*1203.0020.0002] # PLAYING CARD ACE OF SPADES
-1F0A2 ; [*1204.0020.0002] # PLAYING CARD TWO OF SPADES
-1F0A3 ; [*1205.0020.0002] # PLAYING CARD THREE OF SPADES
-1F0A4 ; [*1206.0020.0002] # PLAYING CARD FOUR OF SPADES
-1F0A5 ; [*1207.0020.0002] # PLAYING CARD FIVE OF SPADES
-1F0A6 ; [*1208.0020.0002] # PLAYING CARD SIX OF SPADES
-1F0A7 ; [*1209.0020.0002] # PLAYING CARD SEVEN OF SPADES
-1F0A8 ; [*120A.0020.0002] # PLAYING CARD EIGHT OF SPADES
-1F0A9 ; [*120B.0020.0002] # PLAYING CARD NINE OF SPADES
-1F0AA ; [*120C.0020.0002] # PLAYING CARD TEN OF SPADES
-1F0AB ; [*120D.0020.0002] # PLAYING CARD JACK OF SPADES
-1F0AC ; [*120E.0020.0002] # PLAYING CARD KNIGHT OF SPADES
-1F0AD ; [*120F.0020.0002] # PLAYING CARD QUEEN OF SPADES
-1F0AE ; [*1210.0020.0002] # PLAYING CARD KING OF SPADES
-1F0B1 ; [*1211.0020.0002] # PLAYING CARD ACE OF HEARTS
-1F0B2 ; [*1212.0020.0002] # PLAYING CARD TWO OF HEARTS
-1F0B3 ; [*1213.0020.0002] # PLAYING CARD THREE OF HEARTS
-1F0B4 ; [*1214.0020.0002] # PLAYING CARD FOUR OF HEARTS
-1F0B5 ; [*1215.0020.0002] # PLAYING CARD FIVE OF HEARTS
-1F0B6 ; [*1216.0020.0002] # PLAYING CARD SIX OF HEARTS
-1F0B7 ; [*1217.0020.0002] # PLAYING CARD SEVEN OF HEARTS
-1F0B8 ; [*1218.0020.0002] # PLAYING CARD EIGHT OF HEARTS
-1F0B9 ; [*1219.0020.0002] # PLAYING CARD NINE OF HEARTS
-1F0BA ; [*121A.0020.0002] # PLAYING CARD TEN OF HEARTS
-1F0BB ; [*121B.0020.0002] # PLAYING CARD JACK OF HEARTS
-1F0BC ; [*121C.0020.0002] # PLAYING CARD KNIGHT OF HEARTS
-1F0BD ; [*121D.0020.0002] # PLAYING CARD QUEEN OF HEARTS
-1F0BE ; [*121E.0020.0002] # PLAYING CARD KING OF HEARTS
-1F0BF ; [*121F.0020.0002] # PLAYING CARD RED JOKER
-1F0C1 ; [*1220.0020.0002] # PLAYING CARD ACE OF DIAMONDS
-1F0C2 ; [*1221.0020.0002] # PLAYING CARD TWO OF DIAMONDS
-1F0C3 ; [*1222.0020.0002] # PLAYING CARD THREE OF DIAMONDS
-1F0C4 ; [*1223.0020.0002] # PLAYING CARD FOUR OF DIAMONDS
-1F0C5 ; [*1224.0020.0002] # PLAYING CARD FIVE OF DIAMONDS
-1F0C6 ; [*1225.0020.0002] # PLAYING CARD SIX OF DIAMONDS
-1F0C7 ; [*1226.0020.0002] # PLAYING CARD SEVEN OF DIAMONDS
-1F0C8 ; [*1227.0020.0002] # PLAYING CARD EIGHT OF DIAMONDS
-1F0C9 ; [*1228.0020.0002] # PLAYING CARD NINE OF DIAMONDS
-1F0CA ; [*1229.0020.0002] # PLAYING CARD TEN OF DIAMONDS
-1F0CB ; [*122A.0020.0002] # PLAYING CARD JACK OF DIAMONDS
-1F0CC ; [*122B.0020.0002] # PLAYING CARD KNIGHT OF DIAMONDS
-1F0CD ; [*122C.0020.0002] # PLAYING CARD QUEEN OF DIAMONDS
-1F0CE ; [*122D.0020.0002] # PLAYING CARD KING OF DIAMONDS
-1F0CF ; [*122E.0020.0002] # PLAYING CARD BLACK JOKER
-1F0D1 ; [*122F.0020.0002] # PLAYING CARD ACE OF CLUBS
-1F0D2 ; [*1230.0020.0002] # PLAYING CARD TWO OF CLUBS
-1F0D3 ; [*1231.0020.0002] # PLAYING CARD THREE OF CLUBS
-1F0D4 ; [*1232.0020.0002] # PLAYING CARD FOUR OF CLUBS
-1F0D5 ; [*1233.0020.0002] # PLAYING CARD FIVE OF CLUBS
-1F0D6 ; [*1234.0020.0002] # PLAYING CARD SIX OF CLUBS
-1F0D7 ; [*1235.0020.0002] # PLAYING CARD SEVEN OF CLUBS
-1F0D8 ; [*1236.0020.0002] # PLAYING CARD EIGHT OF CLUBS
-1F0D9 ; [*1237.0020.0002] # PLAYING CARD NINE OF CLUBS
-1F0DA ; [*1238.0020.0002] # PLAYING CARD TEN OF CLUBS
-1F0DB ; [*1239.0020.0002] # PLAYING CARD JACK OF CLUBS
-1F0DC ; [*123A.0020.0002] # PLAYING CARD KNIGHT OF CLUBS
-1F0DD ; [*123B.0020.0002] # PLAYING CARD QUEEN OF CLUBS
-1F0DE ; [*123C.0020.0002] # PLAYING CARD KING OF CLUBS
-1F0DF ; [*123D.0020.0002] # PLAYING CARD WHITE JOKER
-1F0E0 ; [*123E.0020.0002] # PLAYING CARD FOOL
-1F0E1 ; [*123F.0020.0002] # PLAYING CARD TRUMP-1
-1F0E2 ; [*1240.0020.0002] # PLAYING CARD TRUMP-2
-1F0E3 ; [*1241.0020.0002] # PLAYING CARD TRUMP-3
-1F0E4 ; [*1242.0020.0002] # PLAYING CARD TRUMP-4
-1F0E5 ; [*1243.0020.0002] # PLAYING CARD TRUMP-5
-1F0E6 ; [*1244.0020.0002] # PLAYING CARD TRUMP-6
-1F0E7 ; [*1245.0020.0002] # PLAYING CARD TRUMP-7
-1F0E8 ; [*1246.0020.0002] # PLAYING CARD TRUMP-8
-1F0E9 ; [*1247.0020.0002] # PLAYING CARD TRUMP-9
-1F0EA ; [*1248.0020.0002] # PLAYING CARD TRUMP-10
-1F0EB ; [*1249.0020.0002] # PLAYING CARD TRUMP-11
-1F0EC ; [*124A.0020.0002] # PLAYING CARD TRUMP-12
-1F0ED ; [*124B.0020.0002] # PLAYING CARD TRUMP-13
-1F0EE ; [*124C.0020.0002] # PLAYING CARD TRUMP-14
-1F0EF ; [*124D.0020.0002] # PLAYING CARD TRUMP-15
-1F0F0 ; [*124E.0020.0002] # PLAYING CARD TRUMP-16
-1F0F1 ; [*124F.0020.0002] # PLAYING CARD TRUMP-17
-1F0F2 ; [*1250.0020.0002] # PLAYING CARD TRUMP-18
-1F0F3 ; [*1251.0020.0002] # PLAYING CARD TRUMP-19
-1F0F4 ; [*1252.0020.0002] # PLAYING CARD TRUMP-20
-1F0F5 ; [*1253.0020.0002] # PLAYING CARD TRUMP-21
-1F1E6 ; [*09C3.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER A
-1F1E7 ; [*09C4.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER B
-1F1E8 ; [*09C5.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER C
-1F1E9 ; [*09C6.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER D
-1F1EA ; [*09C7.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER E
-1F1EB ; [*09C8.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER F
-1F1EC ; [*09C9.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER G
-1F1ED ; [*09CA.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER H
-1F1EE ; [*09CB.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER I
-1F1EF ; [*09CC.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER J
-1F1F0 ; [*09CD.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER K
-1F1F1 ; [*09CE.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER L
-1F1F2 ; [*09CF.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER M
-1F1F3 ; [*09D0.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER N
-1F1F4 ; [*09D1.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER O
-1F1F5 ; [*09D2.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER P
-1F1F6 ; [*09D3.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Q
-1F1F7 ; [*09D4.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER R
-1F1F8 ; [*09D5.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER S
-1F1F9 ; [*09D6.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER T
-1F1FA ; [*09D7.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER U
-1F1FB ; [*09D8.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER V
-1F1FC ; [*09D9.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER W
-1F1FD ; [*09DA.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER X
-1F1FE ; [*09DB.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Y
-1F1FF ; [*09DC.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Z
-1F300 ; [*1254.0020.0002] # CYCLONE
-1F301 ; [*1255.0020.0002] # FOGGY
-1F302 ; [*1256.0020.0002] # CLOSED UMBRELLA
-1F303 ; [*1257.0020.0002] # NIGHT WITH STARS
-1F304 ; [*1258.0020.0002] # SUNRISE OVER MOUNTAINS
-1F305 ; [*1259.0020.0002] # SUNRISE
-1F306 ; [*125A.0020.0002] # CITYSCAPE AT DUSK
-1F307 ; [*125B.0020.0002] # SUNSET OVER BUILDINGS
-1F308 ; [*125C.0020.0002] # RAINBOW
-1F309 ; [*125D.0020.0002] # BRIDGE AT NIGHT
-1F30A ; [*125E.0020.0002] # WATER WAVE
-1F30B ; [*125F.0020.0002] # VOLCANO
-1F30C ; [*1260.0020.0002] # MILKY WAY
-1F30D ; [*1261.0020.0002] # EARTH GLOBE EUROPE-AFRICA
-1F30E ; [*1262.0020.0002] # EARTH GLOBE AMERICAS
-1F30F ; [*1263.0020.0002] # EARTH GLOBE ASIA-AUSTRALIA
-1F310 ; [*1264.0020.0002] # GLOBE WITH MERIDIANS
-1F311 ; [*1265.0020.0002] # NEW MOON SYMBOL
-1F312 ; [*1266.0020.0002] # WAXING CRESCENT MOON SYMBOL
-1F313 ; [*1267.0020.0002] # FIRST QUARTER MOON SYMBOL
-1F314 ; [*1268.0020.0002] # WAXING GIBBOUS MOON SYMBOL
-1F315 ; [*1269.0020.0002] # FULL MOON SYMBOL
-1F316 ; [*126A.0020.0002] # WANING GIBBOUS MOON SYMBOL
-1F317 ; [*126B.0020.0002] # LAST QUARTER MOON SYMBOL
-1F318 ; [*126C.0020.0002] # WANING CRESCENT MOON SYMBOL
-1F319 ; [*126D.0020.0002] # CRESCENT MOON
-1F31A ; [*126E.0020.0002] # NEW MOON WITH FACE
-1F31B ; [*126F.0020.0002] # FIRST QUARTER MOON WITH FACE
-1F31C ; [*1270.0020.0002] # LAST QUARTER MOON WITH FACE
-1F31D ; [*1271.0020.0002] # FULL MOON WITH FACE
-1F31E ; [*1272.0020.0002] # SUN WITH FACE
-1F31F ; [*1273.0020.0002] # GLOWING STAR
-1F320 ; [*1274.0020.0002] # SHOOTING STAR
-1F321 ; [*1275.0020.0002] # THERMOMETER
-1F322 ; [*1276.0020.0002] # BLACK DROPLET
-1F323 ; [*1277.0020.0002] # WHITE SUN
-1F324 ; [*1278.0020.0002] # WHITE SUN WITH SMALL CLOUD
-1F325 ; [*1279.0020.0002] # WHITE SUN BEHIND CLOUD
-1F326 ; [*127A.0020.0002] # WHITE SUN BEHIND CLOUD WITH RAIN
-1F327 ; [*127B.0020.0002] # CLOUD WITH RAIN
-1F328 ; [*127C.0020.0002] # CLOUD WITH SNOW
-1F329 ; [*127D.0020.0002] # CLOUD WITH LIGHTNING
-1F32A ; [*127E.0020.0002] # CLOUD WITH TORNADO
-1F32B ; [*127F.0020.0002] # FOG
-1F32C ; [*1280.0020.0002] # WIND BLOWING FACE
-1F330 ; [*1281.0020.0002] # CHESTNUT
-1F331 ; [*1282.0020.0002] # SEEDLING
-1F332 ; [*1283.0020.0002] # EVERGREEN TREE
-1F333 ; [*1284.0020.0002] # DECIDUOUS TREE
-1F334 ; [*1285.0020.0002] # PALM TREE
-1F335 ; [*1286.0020.0002] # CACTUS
-1F336 ; [*1287.0020.0002] # HOT PEPPER
-1F337 ; [*1288.0020.0002] # TULIP
-1F338 ; [*1289.0020.0002] # CHERRY BLOSSOM
-1F339 ; [*128A.0020.0002] # ROSE
-1F33A ; [*128B.0020.0002] # HIBISCUS
-1F33B ; [*128C.0020.0002] # SUNFLOWER
-1F33C ; [*128D.0020.0002] # BLOSSOM
-1F33D ; [*128E.0020.0002] # EAR OF MAIZE
-1F33E ; [*128F.0020.0002] # EAR OF RICE
-1F33F ; [*1290.0020.0002] # HERB
-1F340 ; [*1291.0020.0002] # FOUR LEAF CLOVER
-1F341 ; [*1292.0020.0002] # MAPLE LEAF
-1F342 ; [*1293.0020.0002] # FALLEN LEAF
-1F343 ; [*1294.0020.0002] # LEAF FLUTTERING IN WIND
-1F344 ; [*1295.0020.0002] # MUSHROOM
-1F345 ; [*1296.0020.0002] # TOMATO
-1F346 ; [*1297.0020.0002] # AUBERGINE
-1F347 ; [*1298.0020.0002] # GRAPES
-1F348 ; [*1299.0020.0002] # MELON
-1F349 ; [*129A.0020.0002] # WATERMELON
-1F34A ; [*129B.0020.0002] # TANGERINE
-1F34B ; [*129C.0020.0002] # LEMON
-1F34C ; [*129D.0020.0002] # BANANA
-1F34D ; [*129E.0020.0002] # PINEAPPLE
-1F34E ; [*129F.0020.0002] # RED APPLE
-1F34F ; [*12A0.0020.0002] # GREEN APPLE
-1F350 ; [*12A1.0020.0002] # PEAR
-1F351 ; [*12A2.0020.0002] # PEACH
-1F352 ; [*12A3.0020.0002] # CHERRIES
-1F353 ; [*12A4.0020.0002] # STRAWBERRY
-1F354 ; [*12A5.0020.0002] # HAMBURGER
-1F355 ; [*12A6.0020.0002] # SLICE OF PIZZA
-1F356 ; [*12A7.0020.0002] # MEAT ON BONE
-1F357 ; [*12A8.0020.0002] # POULTRY LEG
-1F358 ; [*12A9.0020.0002] # RICE CRACKER
-1F359 ; [*12AA.0020.0002] # RICE BALL
-1F35A ; [*12AB.0020.0002] # COOKED RICE
-1F35B ; [*12AC.0020.0002] # CURRY AND RICE
-1F35C ; [*12AD.0020.0002] # STEAMING BOWL
-1F35D ; [*12AE.0020.0002] # SPAGHETTI
-1F35E ; [*12AF.0020.0002] # BREAD
-1F35F ; [*12B0.0020.0002] # FRENCH FRIES
-1F360 ; [*12B1.0020.0002] # ROASTED SWEET POTATO
-1F361 ; [*12B2.0020.0002] # DANGO
-1F362 ; [*12B3.0020.0002] # ODEN
-1F363 ; [*12B4.0020.0002] # SUSHI
-1F364 ; [*12B5.0020.0002] # FRIED SHRIMP
-1F365 ; [*12B6.0020.0002] # FISH CAKE WITH SWIRL DESIGN
-1F366 ; [*12B7.0020.0002] # SOFT ICE CREAM
-1F367 ; [*12B8.0020.0002] # SHAVED ICE
-1F368 ; [*12B9.0020.0002] # ICE CREAM
-1F369 ; [*12BA.0020.0002] # DOUGHNUT
-1F36A ; [*12BB.0020.0002] # COOKIE
-1F36B ; [*12BC.0020.0002] # CHOCOLATE BAR
-1F36C ; [*12BD.0020.0002] # CANDY
-1F36D ; [*12BE.0020.0002] # LOLLIPOP
-1F36E ; [*12BF.0020.0002] # CUSTARD
-1F36F ; [*12C0.0020.0002] # HONEY POT
-1F370 ; [*12C1.0020.0002] # SHORTCAKE
-1F371 ; [*12C2.0020.0002] # BENTO BOX
-1F372 ; [*12C3.0020.0002] # POT OF FOOD
-1F373 ; [*12C4.0020.0002] # COOKING
-1F374 ; [*12C5.0020.0002] # FORK AND KNIFE
-1F375 ; [*12C6.0020.0002] # TEACUP WITHOUT HANDLE
-1F376 ; [*12C7.0020.0002] # SAKE BOTTLE AND CUP
-1F377 ; [*12C8.0020.0002] # WINE GLASS
-1F378 ; [*12C9.0020.0002] # COCKTAIL GLASS
-1F379 ; [*12CA.0020.0002] # TROPICAL DRINK
-1F37A ; [*12CB.0020.0002] # BEER MUG
-1F37B ; [*12CC.0020.0002] # CLINKING BEER MUGS
-1F37C ; [*12CD.0020.0002] # BABY BOTTLE
-1F37D ; [*12CE.0020.0002] # FORK AND KNIFE WITH PLATE
-1F380 ; [*12CF.0020.0002] # RIBBON
-1F381 ; [*12D0.0020.0002] # WRAPPED PRESENT
-1F382 ; [*12D1.0020.0002] # BIRTHDAY CAKE
-1F383 ; [*12D2.0020.0002] # JACK-O-LANTERN
-1F384 ; [*12D3.0020.0002] # CHRISTMAS TREE
-1F385 ; [*12D4.0020.0002] # FATHER CHRISTMAS
-1F386 ; [*12D5.0020.0002] # FIREWORKS
-1F387 ; [*12D6.0020.0002] # FIREWORK SPARKLER
-1F388 ; [*12D7.0020.0002] # BALLOON
-1F389 ; [*12D8.0020.0002] # PARTY POPPER
-1F38A ; [*12D9.0020.0002] # CONFETTI BALL
-1F38B ; [*12DA.0020.0002] # TANABATA TREE
-1F38C ; [*12DB.0020.0002] # CROSSED FLAGS
-1F38D ; [*12DC.0020.0002] # PINE DECORATION
-1F38E ; [*12DD.0020.0002] # JAPANESE DOLLS
-1F38F ; [*12DE.0020.0002] # CARP STREAMER
-1F390 ; [*12DF.0020.0002] # WIND CHIME
-1F391 ; [*12E0.0020.0002] # MOON VIEWING CEREMONY
-1F392 ; [*12E1.0020.0002] # SCHOOL SATCHEL
-1F393 ; [*12E2.0020.0002] # GRADUATION CAP
-1F394 ; [*12E3.0020.0002] # HEART WITH TIP ON THE LEFT
-1F395 ; [*12E4.0020.0002] # BOUQUET OF FLOWERS
-1F396 ; [*12E5.0020.0002] # MILITARY MEDAL
-1F397 ; [*12E6.0020.0002] # REMINDER RIBBON
-1F398 ; [*12E7.0020.0002] # MUSICAL KEYBOARD WITH JACKS
-1F399 ; [*12E8.0020.0002] # STUDIO MICROPHONE
-1F39A ; [*12E9.0020.0002] # LEVEL SLIDER
-1F39B ; [*12EA.0020.0002] # CONTROL KNOBS
-1F39C ; [*12EB.0020.0002] # BEAMED ASCENDING MUSICAL NOTES
-1F39D ; [*12EC.0020.0002] # BEAMED DESCENDING MUSICAL NOTES
-1F39E ; [*12ED.0020.0002] # FILM FRAMES
-1F39F ; [*12EE.0020.0002] # ADMISSION TICKETS
-1F3A0 ; [*12EF.0020.0002] # CAROUSEL HORSE
-1F3A1 ; [*12F0.0020.0002] # FERRIS WHEEL
-1F3A2 ; [*12F1.0020.0002] # ROLLER COASTER
-1F3A3 ; [*12F2.0020.0002] # FISHING POLE AND FISH
-1F3A4 ; [*12F3.0020.0002] # MICROPHONE
-1F3A5 ; [*12F4.0020.0002] # MOVIE CAMERA
-1F3A6 ; [*12F5.0020.0002] # CINEMA
-1F3A7 ; [*12F6.0020.0002] # HEADPHONE
-1F3A8 ; [*12F7.0020.0002] # ARTIST PALETTE
-1F3A9 ; [*12F8.0020.0002] # TOP HAT
-1F3AA ; [*12F9.0020.0002] # CIRCUS TENT
-1F3AB ; [*12FA.0020.0002] # TICKET
-1F3AC ; [*12FB.0020.0002] # CLAPPER BOARD
-1F3AD ; [*12FC.0020.0002] # PERFORMING ARTS
-1F3AE ; [*12FD.0020.0002] # VIDEO GAME
-1F3AF ; [*12FE.0020.0002] # DIRECT HIT
-1F3B0 ; [*12FF.0020.0002] # SLOT MACHINE
-1F3B1 ; [*1300.0020.0002] # BILLIARDS
-1F3B2 ; [*1301.0020.0002] # GAME DIE
-1F3B3 ; [*1302.0020.0002] # BOWLING
-1F3B4 ; [*1303.0020.0002] # FLOWER PLAYING CARDS
-1F3B5 ; [*1304.0020.0002] # MUSICAL NOTE
-1F3B6 ; [*1305.0020.0002] # MULTIPLE MUSICAL NOTES
-1F3B7 ; [*1306.0020.0002] # SAXOPHONE
-1F3B8 ; [*1307.0020.0002] # GUITAR
-1F3B9 ; [*1308.0020.0002] # MUSICAL KEYBOARD
-1F3BA ; [*1309.0020.0002] # TRUMPET
-1F3BB ; [*130A.0020.0002] # VIOLIN
-1F3BC ; [*130B.0020.0002] # MUSICAL SCORE
-1F3BD ; [*130C.0020.0002] # RUNNING SHIRT WITH SASH
-1F3BE ; [*130D.0020.0002] # TENNIS RACQUET AND BALL
-1F3BF ; [*130E.0020.0002] # SKI AND SKI BOOT
-1F3C0 ; [*130F.0020.0002] # BASKETBALL AND HOOP
-1F3C1 ; [*1310.0020.0002] # CHEQUERED FLAG
-1F3C2 ; [*1311.0020.0002] # SNOWBOARDER
-1F3C3 ; [*1312.0020.0002] # RUNNER
-1F3C4 ; [*1313.0020.0002] # SURFER
-1F3C5 ; [*1314.0020.0002] # SPORTS MEDAL
-1F3C6 ; [*1315.0020.0002] # TROPHY
-1F3C7 ; [*1316.0020.0002] # HORSE RACING
-1F3C8 ; [*1317.0020.0002] # AMERICAN FOOTBALL
-1F3C9 ; [*1318.0020.0002] # RUGBY FOOTBALL
-1F3CA ; [*1319.0020.0002] # SWIMMER
-1F3CB ; [*131A.0020.0002] # WEIGHT LIFTER
-1F3CC ; [*131B.0020.0002] # GOLFER
-1F3CD ; [*131C.0020.0002] # RACING MOTORCYCLE
-1F3CE ; [*131D.0020.0002] # RACING CAR
-1F3D4 ; [*131E.0020.0002] # SNOW CAPPED MOUNTAIN
-1F3D5 ; [*131F.0020.0002] # CAMPING
-1F3D6 ; [*1320.0020.0002] # BEACH WITH UMBRELLA
-1F3D7 ; [*1321.0020.0002] # BUILDING CONSTRUCTION
-1F3D8 ; [*1322.0020.0002] # HOUSE BUILDINGS
-1F3D9 ; [*1323.0020.0002] # CITYSCAPE
-1F3DA ; [*1324.0020.0002] # DERELICT HOUSE BUILDING
-1F3DB ; [*1325.0020.0002] # CLASSICAL BUILDING
-1F3DC ; [*1326.0020.0002] # DESERT
-1F3DD ; [*1327.0020.0002] # DESERT ISLAND
-1F3DE ; [*1328.0020.0002] # NATIONAL PARK
-1F3DF ; [*1329.0020.0002] # STADIUM
-1F3E0 ; [*132A.0020.0002] # HOUSE BUILDING
-1F3E1 ; [*132B.0020.0002] # HOUSE WITH GARDEN
-1F3E2 ; [*132C.0020.0002] # OFFICE BUILDING
-1F3E3 ; [*132D.0020.0002] # JAPANESE POST OFFICE
-1F3E4 ; [*132E.0020.0002] # EUROPEAN POST OFFICE
-1F3E5 ; [*132F.0020.0002] # HOSPITAL
-1F3E6 ; [*1330.0020.0002] # BANK
-1F3E7 ; [*1331.0020.0002] # AUTOMATED TELLER MACHINE
-1F3E8 ; [*1332.0020.0002] # HOTEL
-1F3E9 ; [*1333.0020.0002] # LOVE HOTEL
-1F3EA ; [*1334.0020.0002] # CONVENIENCE STORE
-1F3EB ; [*1335.0020.0002] # SCHOOL
-1F3EC ; [*1336.0020.0002] # DEPARTMENT STORE
-1F3ED ; [*1337.0020.0002] # FACTORY
-1F3EE ; [*1338.0020.0002] # IZAKAYA LANTERN
-1F3EF ; [*1339.0020.0002] # JAPANESE CASTLE
-1F3F0 ; [*133A.0020.0002] # EUROPEAN CASTLE
-1F3F1 ; [*133B.0020.0002] # WHITE PENNANT
-1F3F2 ; [*133C.0020.0002] # BLACK PENNANT
-1F3F3 ; [*133D.0020.0002] # WAVING WHITE FLAG
-1F3F4 ; [*133E.0020.0002] # WAVING BLACK FLAG
-1F3F5 ; [*133F.0020.0002] # ROSETTE
-1F3F6 ; [*1340.0020.0002] # BLACK ROSETTE
-1F3F7 ; [*1341.0020.0002] # LABEL
-1F400 ; [*1342.0020.0002] # RAT
-1F401 ; [*1343.0020.0002] # MOUSE
-1F402 ; [*1344.0020.0002] # OX
-1F403 ; [*1345.0020.0002] # WATER BUFFALO
-1F404 ; [*1346.0020.0002] # COW
-1F405 ; [*1347.0020.0002] # TIGER
-1F406 ; [*1348.0020.0002] # LEOPARD
-1F407 ; [*1349.0020.0002] # RABBIT
-1F408 ; [*134A.0020.0002] # CAT
-1F409 ; [*134B.0020.0002] # DRAGON
-1F40A ; [*134C.0020.0002] # CROCODILE
-1F40B ; [*134D.0020.0002] # WHALE
-1F40C ; [*134E.0020.0002] # SNAIL
-1F40D ; [*134F.0020.0002] # SNAKE
-1F40E ; [*1350.0020.0002] # HORSE
-1F40F ; [*1351.0020.0002] # RAM
-1F410 ; [*1352.0020.0002] # GOAT
-1F411 ; [*1353.0020.0002] # SHEEP
-1F412 ; [*1354.0020.0002] # MONKEY
-1F413 ; [*1355.0020.0002] # ROOSTER
-1F414 ; [*1356.0020.0002] # CHICKEN
-1F415 ; [*1357.0020.0002] # DOG
-1F416 ; [*1358.0020.0002] # PIG
-1F417 ; [*1359.0020.0002] # BOAR
-1F418 ; [*135A.0020.0002] # ELEPHANT
-1F419 ; [*135B.0020.0002] # OCTOPUS
-1F41A ; [*135C.0020.0002] # SPIRAL SHELL
-1F41B ; [*135D.0020.0002] # BUG
-1F41C ; [*135E.0020.0002] # ANT
-1F41D ; [*135F.0020.0002] # HONEYBEE
-1F41E ; [*1360.0020.0002] # LADY BEETLE
-1F41F ; [*1361.0020.0002] # FISH
-1F420 ; [*1362.0020.0002] # TROPICAL FISH
-1F421 ; [*1363.0020.0002] # BLOWFISH
-1F422 ; [*1364.0020.0002] # TURTLE
-1F423 ; [*1365.0020.0002] # HATCHING CHICK
-1F424 ; [*1366.0020.0002] # BABY CHICK
-1F425 ; [*1367.0020.0002] # FRONT-FACING BABY CHICK
-1F426 ; [*1368.0020.0002] # BIRD
-1F427 ; [*1369.0020.0002] # PENGUIN
-1F428 ; [*136A.0020.0002] # KOALA
-1F429 ; [*136B.0020.0002] # POODLE
-1F42A ; [*136C.0020.0002] # DROMEDARY CAMEL
-1F42B ; [*136D.0020.0002] # BACTRIAN CAMEL
-1F42C ; [*136E.0020.0002] # DOLPHIN
-1F42D ; [*136F.0020.0002] # MOUSE FACE
-1F42E ; [*1370.0020.0002] # COW FACE
-1F42F ; [*1371.0020.0002] # TIGER FACE
-1F430 ; [*1372.0020.0002] # RABBIT FACE
-1F431 ; [*1373.0020.0002] # CAT FACE
-1F432 ; [*1374.0020.0002] # DRAGON FACE
-1F433 ; [*1375.0020.0002] # SPOUTING WHALE
-1F434 ; [*1376.0020.0002] # HORSE FACE
-1F435 ; [*1377.0020.0002] # MONKEY FACE
-1F436 ; [*1378.0020.0002] # DOG FACE
-1F437 ; [*1379.0020.0002] # PIG FACE
-1F438 ; [*137A.0020.0002] # FROG FACE
-1F439 ; [*137B.0020.0002] # HAMSTER FACE
-1F43A ; [*137C.0020.0002] # WOLF FACE
-1F43B ; [*137D.0020.0002] # BEAR FACE
-1F43C ; [*137E.0020.0002] # PANDA FACE
-1F43D ; [*137F.0020.0002] # PIG NOSE
-1F43E ; [*1380.0020.0002] # PAW PRINTS
-1F43F ; [*1381.0020.0002] # CHIPMUNK
-1F440 ; [*1382.0020.0002] # EYES
-1F441 ; [*1383.0020.0002] # EYE
-1F442 ; [*1384.0020.0002] # EAR
-1F443 ; [*1385.0020.0002] # NOSE
-1F444 ; [*1386.0020.0002] # MOUTH
-1F445 ; [*1387.0020.0002] # TONGUE
-1F446 ; [*1388.0020.0002] # WHITE UP POINTING BACKHAND INDEX
-1F447 ; [*1389.0020.0002] # WHITE DOWN POINTING BACKHAND INDEX
-1F448 ; [*138A.0020.0002] # WHITE LEFT POINTING BACKHAND INDEX
-1F449 ; [*138B.0020.0002] # WHITE RIGHT POINTING BACKHAND INDEX
-1F44A ; [*138C.0020.0002] # FISTED HAND SIGN
-1F44B ; [*138D.0020.0002] # WAVING HAND SIGN
-1F44C ; [*138E.0020.0002] # OK HAND SIGN
-1F44D ; [*138F.0020.0002] # THUMBS UP SIGN
-1F44E ; [*1390.0020.0002] # THUMBS DOWN SIGN
-1F44F ; [*1391.0020.0002] # CLAPPING HANDS SIGN
-1F450 ; [*1392.0020.0002] # OPEN HANDS SIGN
-1F451 ; [*1393.0020.0002] # CROWN
-1F452 ; [*1394.0020.0002] # WOMANS HAT
-1F453 ; [*1395.0020.0002] # EYEGLASSES
-1F454 ; [*1396.0020.0002] # NECKTIE
-1F455 ; [*1397.0020.0002] # T-SHIRT
-1F456 ; [*1398.0020.0002] # JEANS
-1F457 ; [*1399.0020.0002] # DRESS
-1F458 ; [*139A.0020.0002] # KIMONO
-1F459 ; [*139B.0020.0002] # BIKINI
-1F45A ; [*139C.0020.0002] # WOMANS CLOTHES
-1F45B ; [*139D.0020.0002] # PURSE
-1F45C ; [*139E.0020.0002] # HANDBAG
-1F45D ; [*139F.0020.0002] # POUCH
-1F45E ; [*13A0.0020.0002] # MANS SHOE
-1F45F ; [*13A1.0020.0002] # ATHLETIC SHOE
-1F460 ; [*13A2.0020.0002] # HIGH-HEELED SHOE
-1F461 ; [*13A3.0020.0002] # WOMANS SANDAL
-1F462 ; [*13A4.0020.0002] # WOMANS BOOTS
-1F463 ; [*13A5.0020.0002] # FOOTPRINTS
-1F464 ; [*13A6.0020.0002] # BUST IN SILHOUETTE
-1F465 ; [*13A7.0020.0002] # BUSTS IN SILHOUETTE
-1F466 ; [*13A8.0020.0002] # BOY
-1F467 ; [*13A9.0020.0002] # GIRL
-1F468 ; [*13AA.0020.0002] # MAN
-1F469 ; [*13AB.0020.0002] # WOMAN
-1F46A ; [*13AC.0020.0002] # FAMILY
-1F46B ; [*13AD.0020.0002] # MAN AND WOMAN HOLDING HANDS
-1F46C ; [*13AE.0020.0002] # TWO MEN HOLDING HANDS
-1F46D ; [*13AF.0020.0002] # TWO WOMEN HOLDING HANDS
-1F46E ; [*13B0.0020.0002] # POLICE OFFICER
-1F46F ; [*13B1.0020.0002] # WOMAN WITH BUNNY EARS
-1F470 ; [*13B2.0020.0002] # BRIDE WITH VEIL
-1F471 ; [*13B3.0020.0002] # PERSON WITH BLOND HAIR
-1F472 ; [*13B4.0020.0002] # MAN WITH GUA PI MAO
-1F473 ; [*13B5.0020.0002] # MAN WITH TURBAN
-1F474 ; [*13B6.0020.0002] # OLDER MAN
-1F475 ; [*13B7.0020.0002] # OLDER WOMAN
-1F476 ; [*13B8.0020.0002] # BABY
-1F477 ; [*13B9.0020.0002] # CONSTRUCTION WORKER
-1F478 ; [*13BA.0020.0002] # PRINCESS
-1F479 ; [*13BB.0020.0002] # JAPANESE OGRE
-1F47A ; [*13BC.0020.0002] # JAPANESE GOBLIN
-1F47B ; [*13BD.0020.0002] # GHOST
-1F47C ; [*13BE.0020.0002] # BABY ANGEL
-1F47D ; [*13BF.0020.0002] # EXTRATERRESTRIAL ALIEN
-1F47E ; [*13C0.0020.0002] # ALIEN MONSTER
-1F47F ; [*13C1.0020.0002] # IMP
-1F480 ; [*13C2.0020.0002] # SKULL
-1F481 ; [*13C3.0020.0002] # INFORMATION DESK PERSON
-1F482 ; [*13C4.0020.0002] # GUARDSMAN
-1F483 ; [*13C5.0020.0002] # DANCER
-1F484 ; [*13C6.0020.0002] # LIPSTICK
-1F485 ; [*13C7.0020.0002] # NAIL POLISH
-1F486 ; [*13C8.0020.0002] # FACE MASSAGE
-1F487 ; [*13C9.0020.0002] # HAIRCUT
-1F488 ; [*13CA.0020.0002] # BARBER POLE
-1F489 ; [*13CB.0020.0002] # SYRINGE
-1F48A ; [*13CC.0020.0002] # PILL
-1F48B ; [*13CD.0020.0002] # KISS MARK
-1F48C ; [*13CE.0020.0002] # LOVE LETTER
-1F48D ; [*13CF.0020.0002] # RING
-1F48E ; [*13D0.0020.0002] # GEM STONE
-1F48F ; [*13D1.0020.0002] # KISS
-1F490 ; [*13D2.0020.0002] # BOUQUET
-1F491 ; [*13D3.0020.0002] # COUPLE WITH HEART
-1F492 ; [*13D4.0020.0002] # WEDDING
-1F493 ; [*13D5.0020.0002] # BEATING HEART
-1F494 ; [*13D6.0020.0002] # BROKEN HEART
-1F495 ; [*13D7.0020.0002] # TWO HEARTS
-1F496 ; [*13D8.0020.0002] # SPARKLING HEART
-1F497 ; [*13D9.0020.0002] # GROWING HEART
-1F498 ; [*13DA.0020.0002] # HEART WITH ARROW
-1F499 ; [*13DB.0020.0002] # BLUE HEART
-1F49A ; [*13DC.0020.0002] # GREEN HEART
-1F49B ; [*13DD.0020.0002] # YELLOW HEART
-1F49C ; [*13DE.0020.0002] # PURPLE HEART
-1F49D ; [*13DF.0020.0002] # HEART WITH RIBBON
-1F49E ; [*13E0.0020.0002] # REVOLVING HEARTS
-1F49F ; [*13E1.0020.0002] # HEART DECORATION
-1F4A0 ; [*13E2.0020.0002] # DIAMOND SHAPE WITH A DOT INSIDE
-1F4A1 ; [*13E3.0020.0002] # ELECTRIC LIGHT BULB
-1F4A2 ; [*13E4.0020.0002] # ANGER SYMBOL
-1F4A3 ; [*13E5.0020.0002] # BOMB
-1F4A4 ; [*13E6.0020.0002] # SLEEPING SYMBOL
-1F4A5 ; [*13E7.0020.0002] # COLLISION SYMBOL
-1F4A6 ; [*13E8.0020.0002] # SPLASHING SWEAT SYMBOL
-1F4A7 ; [*13E9.0020.0002] # DROPLET
-1F4A8 ; [*13EA.0020.0002] # DASH SYMBOL
-1F4A9 ; [*13EB.0020.0002] # PILE OF POO
-1F4AA ; [*13EC.0020.0002] # FLEXED BICEPS
-1F4AB ; [*13ED.0020.0002] # DIZZY SYMBOL
-1F4AC ; [*13EE.0020.0002] # SPEECH BALLOON
-1F4AD ; [*13EF.0020.0002] # THOUGHT BALLOON
-1F4AE ; [*13F0.0020.0002] # WHITE FLOWER
-1F4AF ; [*13F1.0020.0002] # HUNDRED POINTS SYMBOL
-1F4B0 ; [*13F2.0020.0002] # MONEY BAG
-1F4B1 ; [*13F3.0020.0002] # CURRENCY EXCHANGE
-1F4B2 ; [*13F4.0020.0002] # HEAVY DOLLAR SIGN
-1F4B3 ; [*13F5.0020.0002] # CREDIT CARD
-1F4B4 ; [*13F6.0020.0002] # BANKNOTE WITH YEN SIGN
-1F4B5 ; [*13F7.0020.0002] # BANKNOTE WITH DOLLAR SIGN
-1F4B6 ; [*13F8.0020.0002] # BANKNOTE WITH EURO SIGN
-1F4B7 ; [*13F9.0020.0002] # BANKNOTE WITH POUND SIGN
-1F4B8 ; [*13FA.0020.0002] # MONEY WITH WINGS
-1F4B9 ; [*13FB.0020.0002] # CHART WITH UPWARDS TREND AND YEN SIGN
-1F4BA ; [*13FC.0020.0002] # SEAT
-1F4BB ; [*13FD.0020.0002] # PERSONAL COMPUTER
-1F4BC ; [*13FE.0020.0002] # BRIEFCASE
-1F4BD ; [*13FF.0020.0002] # MINIDISC
-1F4BE ; [*1400.0020.0002] # FLOPPY DISK
-1F4BF ; [*1401.0020.0002] # OPTICAL DISC
-1F4C0 ; [*1402.0020.0002] # DVD
-1F4C1 ; [*1403.0020.0002] # FILE FOLDER
-1F4C2 ; [*1404.0020.0002] # OPEN FILE FOLDER
-1F4C3 ; [*1405.0020.0002] # PAGE WITH CURL
-1F4C4 ; [*1406.0020.0002] # PAGE FACING UP
-1F4C5 ; [*1407.0020.0002] # CALENDAR
-1F4C6 ; [*1408.0020.0002] # TEAR-OFF CALENDAR
-1F4C7 ; [*1409.0020.0002] # CARD INDEX
-1F4C8 ; [*140A.0020.0002] # CHART WITH UPWARDS TREND
-1F4C9 ; [*140B.0020.0002] # CHART WITH DOWNWARDS TREND
-1F4CA ; [*140C.0020.0002] # BAR CHART
-1F4CB ; [*140D.0020.0002] # CLIPBOARD
-1F4CC ; [*140E.0020.0002] # PUSHPIN
-1F4CD ; [*140F.0020.0002] # ROUND PUSHPIN
-1F4CE ; [*1410.0020.0002] # PAPERCLIP
-1F4CF ; [*1411.0020.0002] # STRAIGHT RULER
-1F4D0 ; [*1412.0020.0002] # TRIANGULAR RULER
-1F4D1 ; [*1413.0020.0002] # BOOKMARK TABS
-1F4D2 ; [*1414.0020.0002] # LEDGER
-1F4D3 ; [*1415.0020.0002] # NOTEBOOK
-1F4D4 ; [*1416.0020.0002] # NOTEBOOK WITH DECORATIVE COVER
-1F4D5 ; [*1417.0020.0002] # CLOSED BOOK
-1F4D6 ; [*1418.0020.0002] # OPEN BOOK
-1F4D7 ; [*1419.0020.0002] # GREEN BOOK
-1F4D8 ; [*141A.0020.0002] # BLUE BOOK
-1F4D9 ; [*141B.0020.0002] # ORANGE BOOK
-1F4DA ; [*141C.0020.0002] # BOOKS
-1F4DB ; [*141D.0020.0002] # NAME BADGE
-1F4DC ; [*141E.0020.0002] # SCROLL
-1F4DD ; [*141F.0020.0002] # MEMO
-1F4DE ; [*1420.0020.0002] # TELEPHONE RECEIVER
-1F4DF ; [*1421.0020.0002] # PAGER
-1F4E0 ; [*1422.0020.0002] # FAX MACHINE
-1F4E1 ; [*1423.0020.0002] # SATELLITE ANTENNA
-1F4E2 ; [*1424.0020.0002] # PUBLIC ADDRESS LOUDSPEAKER
-1F4E3 ; [*1425.0020.0002] # CHEERING MEGAPHONE
-1F4E4 ; [*1426.0020.0002] # OUTBOX TRAY
-1F4E5 ; [*1427.0020.0002] # INBOX TRAY
-1F4E6 ; [*1428.0020.0002] # PACKAGE
-1F4E7 ; [*1429.0020.0002] # E-MAIL SYMBOL
-1F4E8 ; [*142A.0020.0002] # INCOMING ENVELOPE
-1F4E9 ; [*142B.0020.0002] # ENVELOPE WITH DOWNWARDS ARROW ABOVE
-1F4EA ; [*142C.0020.0002] # CLOSED MAILBOX WITH LOWERED FLAG
-1F4EB ; [*142D.0020.0002] # CLOSED MAILBOX WITH RAISED FLAG
-1F4EC ; [*142E.0020.0002] # OPEN MAILBOX WITH RAISED FLAG
-1F4ED ; [*142F.0020.0002] # OPEN MAILBOX WITH LOWERED FLAG
-1F4EE ; [*1430.0020.0002] # POSTBOX
-1F4EF ; [*1431.0020.0002] # POSTAL HORN
-1F4F0 ; [*1432.0020.0002] # NEWSPAPER
-1F4F1 ; [*1433.0020.0002] # MOBILE PHONE
-1F4F2 ; [*1434.0020.0002] # MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
-1F4F3 ; [*1435.0020.0002] # VIBRATION MODE
-1F4F4 ; [*1436.0020.0002] # MOBILE PHONE OFF
-1F4F5 ; [*1437.0020.0002] # NO MOBILE PHONES
-1F4F6 ; [*1438.0020.0002] # ANTENNA WITH BARS
-1F4F7 ; [*1439.0020.0002] # CAMERA
-1F4F8 ; [*143A.0020.0002] # CAMERA WITH FLASH
-1F4F9 ; [*143B.0020.0002] # VIDEO CAMERA
-1F4FA ; [*143C.0020.0002] # TELEVISION
-1F4FB ; [*143D.0020.0002] # RADIO
-1F4FC ; [*143E.0020.0002] # VIDEOCASSETTE
-1F4FD ; [*143F.0020.0002] # FILM PROJECTOR
-1F4FE ; [*1440.0020.0002] # PORTABLE STEREO
-1F500 ; [*1441.0020.0002] # TWISTED RIGHTWARDS ARROWS
-1F501 ; [*1442.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
-1F502 ; [*1443.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
-1F503 ; [*1444.0020.0002] # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F504 ; [*1445.0020.0002] # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
-1F505 ; [*1446.0020.0002] # LOW BRIGHTNESS SYMBOL
-1F506 ; [*1447.0020.0002] # HIGH BRIGHTNESS SYMBOL
-1F507 ; [*1448.0020.0002] # SPEAKER WITH CANCELLATION STROKE
-1F508 ; [*1449.0020.0002] # SPEAKER
-1F509 ; [*144A.0020.0002] # SPEAKER WITH ONE SOUND WAVE
-1F50A ; [*144B.0020.0002] # SPEAKER WITH THREE SOUND WAVES
-1F50B ; [*144C.0020.0002] # BATTERY
-1F50C ; [*144D.0020.0002] # ELECTRIC PLUG
-1F50D ; [*144E.0020.0002] # LEFT-POINTING MAGNIFYING GLASS
-1F50E ; [*144F.0020.0002] # RIGHT-POINTING MAGNIFYING GLASS
-1F50F ; [*1450.0020.0002] # LOCK WITH INK PEN
-1F510 ; [*1451.0020.0002] # CLOSED LOCK WITH KEY
-1F511 ; [*1452.0020.0002] # KEY
-1F512 ; [*1453.0020.0002] # LOCK
-1F513 ; [*1454.0020.0002] # OPEN LOCK
-1F514 ; [*1455.0020.0002] # BELL
-1F515 ; [*1456.0020.0002] # BELL WITH CANCELLATION STROKE
-1F516 ; [*1457.0020.0002] # BOOKMARK
-1F517 ; [*1458.0020.0002] # LINK SYMBOL
-1F518 ; [*1459.0020.0002] # RADIO BUTTON
-1F519 ; [*145A.0020.0002] # BACK WITH LEFTWARDS ARROW ABOVE
-1F51A ; [*145B.0020.0002] # END WITH LEFTWARDS ARROW ABOVE
-1F51B ; [*145C.0020.0002] # ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
-1F51C ; [*145D.0020.0002] # SOON WITH RIGHTWARDS ARROW ABOVE
-1F51D ; [*145E.0020.0002] # TOP WITH UPWARDS ARROW ABOVE
-1F51E ; [*145F.0020.0002] # NO ONE UNDER EIGHTEEN SYMBOL
-1F51F ; [*1460.0020.0002] # KEYCAP TEN
-1F520 ; [*1461.0020.0002] # INPUT SYMBOL FOR LATIN CAPITAL LETTERS
-1F521 ; [*1462.0020.0002] # INPUT SYMBOL FOR LATIN SMALL LETTERS
-1F522 ; [*1463.0020.0002] # INPUT SYMBOL FOR NUMBERS
-1F523 ; [*1464.0020.0002] # INPUT SYMBOL FOR SYMBOLS
-1F524 ; [*1465.0020.0002] # INPUT SYMBOL FOR LATIN LETTERS
-1F525 ; [*1466.0020.0002] # FIRE
-1F526 ; [*1467.0020.0002] # ELECTRIC TORCH
-1F527 ; [*1468.0020.0002] # WRENCH
-1F528 ; [*1469.0020.0002] # HAMMER
-1F529 ; [*146A.0020.0002] # NUT AND BOLT
-1F52A ; [*146B.0020.0002] # HOCHO
-1F52B ; [*146C.0020.0002] # PISTOL
-1F52C ; [*146D.0020.0002] # MICROSCOPE
-1F52D ; [*146E.0020.0002] # TELESCOPE
-1F52E ; [*146F.0020.0002] # CRYSTAL BALL
-1F52F ; [*1470.0020.0002] # SIX POINTED STAR WITH MIDDLE DOT
-1F530 ; [*1471.0020.0002] # JAPANESE SYMBOL FOR BEGINNER
-1F531 ; [*1472.0020.0002] # TRIDENT EMBLEM
-1F532 ; [*1473.0020.0002] # BLACK SQUARE BUTTON
-1F533 ; [*1474.0020.0002] # WHITE SQUARE BUTTON
-1F534 ; [*1475.0020.0002] # LARGE RED CIRCLE
-1F535 ; [*1476.0020.0002] # LARGE BLUE CIRCLE
-1F536 ; [*1477.0020.0002] # LARGE ORANGE DIAMOND
-1F537 ; [*1478.0020.0002] # LARGE BLUE DIAMOND
-1F538 ; [*1479.0020.0002] # SMALL ORANGE DIAMOND
-1F539 ; [*147A.0020.0002] # SMALL BLUE DIAMOND
-1F53A ; [*147B.0020.0002] # UP-POINTING RED TRIANGLE
-1F53B ; [*147C.0020.0002] # DOWN-POINTING RED TRIANGLE
-1F53C ; [*147D.0020.0002] # UP-POINTING SMALL RED TRIANGLE
-1F53D ; [*147E.0020.0002] # DOWN-POINTING SMALL RED TRIANGLE
-1F53E ; [*147F.0020.0002] # LOWER RIGHT SHADOWED WHITE CIRCLE
-1F53F ; [*1480.0020.0002] # UPPER RIGHT SHADOWED WHITE CIRCLE
-1F540 ; [*1481.0020.0002] # CIRCLED CROSS POMMEE
-1F541 ; [*1482.0020.0002] # CROSS POMMEE WITH HALF-CIRCLE BELOW
-1F542 ; [*1483.0020.0002] # CROSS POMMEE
-1F543 ; [*1484.0020.0002] # NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
-1F544 ; [*1485.0020.0002] # NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS
-1F545 ; [*1486.0020.0002] # SYMBOL FOR MARKS CHAPTER
-1F546 ; [*1487.0020.0002] # WHITE LATIN CROSS
-1F547 ; [*1488.0020.0002] # HEAVY LATIN CROSS
-1F548 ; [*1489.0020.0002] # CELTIC CROSS
-1F549 ; [*148A.0020.0002] # OM SYMBOL
-1F54A ; [*148B.0020.0002] # DOVE OF PEACE
-1F550 ; [*148C.0020.0002] # CLOCK FACE ONE OCLOCK
-1F551 ; [*148D.0020.0002] # CLOCK FACE TWO OCLOCK
-1F552 ; [*148E.0020.0002] # CLOCK FACE THREE OCLOCK
-1F553 ; [*148F.0020.0002] # CLOCK FACE FOUR OCLOCK
-1F554 ; [*1490.0020.0002] # CLOCK FACE FIVE OCLOCK
-1F555 ; [*1491.0020.0002] # CLOCK FACE SIX OCLOCK
-1F556 ; [*1492.0020.0002] # CLOCK FACE SEVEN OCLOCK
-1F557 ; [*1493.0020.0002] # CLOCK FACE EIGHT OCLOCK
-1F558 ; [*1494.0020.0002] # CLOCK FACE NINE OCLOCK
-1F559 ; [*1495.0020.0002] # CLOCK FACE TEN OCLOCK
-1F55A ; [*1496.0020.0002] # CLOCK FACE ELEVEN OCLOCK
-1F55B ; [*1497.0020.0002] # CLOCK FACE TWELVE OCLOCK
-1F55C ; [*1498.0020.0002] # CLOCK FACE ONE-THIRTY
-1F55D ; [*1499.0020.0002] # CLOCK FACE TWO-THIRTY
-1F55E ; [*149A.0020.0002] # CLOCK FACE THREE-THIRTY
-1F55F ; [*149B.0020.0002] # CLOCK FACE FOUR-THIRTY
-1F560 ; [*149C.0020.0002] # CLOCK FACE FIVE-THIRTY
-1F561 ; [*149D.0020.0002] # CLOCK FACE SIX-THIRTY
-1F562 ; [*149E.0020.0002] # CLOCK FACE SEVEN-THIRTY
-1F563 ; [*149F.0020.0002] # CLOCK FACE EIGHT-THIRTY
-1F564 ; [*14A0.0020.0002] # CLOCK FACE NINE-THIRTY
-1F565 ; [*14A1.0020.0002] # CLOCK FACE TEN-THIRTY
-1F566 ; [*14A2.0020.0002] # CLOCK FACE ELEVEN-THIRTY
-1F567 ; [*14A3.0020.0002] # CLOCK FACE TWELVE-THIRTY
-1F568 ; [*14A4.0020.0002] # RIGHT SPEAKER
-1F569 ; [*14A5.0020.0002] # RIGHT SPEAKER WITH ONE SOUND WAVE
-1F56A ; [*14A6.0020.0002] # RIGHT SPEAKER WITH THREE SOUND WAVES
-1F56B ; [*14A7.0020.0002] # BULLHORN
-1F56C ; [*14A8.0020.0002] # BULLHORN WITH SOUND WAVES
-1F56D ; [*14A9.0020.0002] # RINGING BELL
-1F56E ; [*14AA.0020.0002] # BOOK
-1F56F ; [*14AB.0020.0002] # CANDLE
-1F570 ; [*14AC.0020.0002] # MANTELPIECE CLOCK
-1F571 ; [*14AD.0020.0002] # BLACK SKULL AND CROSSBONES
-1F572 ; [*14AE.0020.0002] # NO PIRACY
-1F573 ; [*14AF.0020.0002] # HOLE
-1F574 ; [*14B0.0020.0002] # MAN IN BUSINESS SUIT LEVITATING
-1F575 ; [*14B1.0020.0002] # SLEUTH OR SPY
-1F576 ; [*14B2.0020.0002] # DARK SUNGLASSES
-1F577 ; [*14B3.0020.0002] # SPIDER
-1F578 ; [*14B4.0020.0002] # SPIDER WEB
-1F579 ; [*14B5.0020.0002] # JOYSTICK
-1F57B ; [*14B6.0020.0002] # LEFT HAND TELEPHONE RECEIVER
-1F57C ; [*14B7.0020.0002] # TELEPHONE RECEIVER WITH PAGE
-1F57D ; [*14B8.0020.0002] # RIGHT HAND TELEPHONE RECEIVER
-1F57E ; [*14B9.0020.0002] # WHITE TOUCHTONE TELEPHONE
-1F57F ; [*14BA.0020.0002] # BLACK TOUCHTONE TELEPHONE
-1F580 ; [*14BB.0020.0002] # TELEPHONE ON TOP OF MODEM
-1F581 ; [*14BC.0020.0002] # CLAMSHELL MOBILE PHONE
-1F582 ; [*14BD.0020.0002] # BACK OF ENVELOPE
-1F583 ; [*14BE.0020.0002] # STAMPED ENVELOPE
-1F584 ; [*14BF.0020.0002] # ENVELOPE WITH LIGHTNING
-1F585 ; [*14C0.0020.0002] # FLYING ENVELOPE
-1F586 ; [*14C1.0020.0002] # PEN OVER STAMPED ENVELOPE
-1F587 ; [*14C2.0020.0002] # LINKED PAPERCLIPS
-1F588 ; [*14C3.0020.0002] # BLACK PUSHPIN
-1F589 ; [*14C4.0020.0002] # LOWER LEFT PENCIL
-1F58A ; [*14C5.0020.0002] # LOWER LEFT BALLPOINT PEN
-1F58B ; [*14C6.0020.0002] # LOWER LEFT FOUNTAIN PEN
-1F58C ; [*14C7.0020.0002] # LOWER LEFT PAINTBRUSH
-1F58D ; [*14C8.0020.0002] # LOWER LEFT CRAYON
-1F58E ; [*14C9.0020.0002] # LEFT WRITING HAND
-1F58F ; [*14CA.0020.0002] # TURNED OK HAND SIGN
-1F590 ; [*14CB.0020.0002] # RAISED HAND WITH FINGERS SPLAYED
-1F591 ; [*14CC.0020.0002] # REVERSED RAISED HAND WITH FINGERS SPLAYED
-1F592 ; [*14CD.0020.0002] # REVERSED THUMBS UP SIGN
-1F593 ; [*14CE.0020.0002] # REVERSED THUMBS DOWN SIGN
-1F594 ; [*14CF.0020.0002] # REVERSED VICTORY HAND
-1F595 ; [*14D0.0020.0002] # REVERSED HAND WITH MIDDLE FINGER EXTENDED
-1F596 ; [*14D1.0020.0002] # RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
-1F597 ; [*14D2.0020.0002] # WHITE DOWN POINTING LEFT HAND INDEX
-1F598 ; [*14D3.0020.0002] # SIDEWAYS WHITE LEFT POINTING INDEX
-1F599 ; [*14D4.0020.0002] # SIDEWAYS WHITE RIGHT POINTING INDEX
-1F59A ; [*14D5.0020.0002] # SIDEWAYS BLACK LEFT POINTING INDEX
-1F59B ; [*14D6.0020.0002] # SIDEWAYS BLACK RIGHT POINTING INDEX
-1F59C ; [*14D7.0020.0002] # BLACK LEFT POINTING BACKHAND INDEX
-1F59D ; [*14D8.0020.0002] # BLACK RIGHT POINTING BACKHAND INDEX
-1F59E ; [*14D9.0020.0002] # SIDEWAYS WHITE UP POINTING INDEX
-1F59F ; [*14DA.0020.0002] # SIDEWAYS WHITE DOWN POINTING INDEX
-1F5A0 ; [*14DB.0020.0002] # SIDEWAYS BLACK UP POINTING INDEX
-1F5A1 ; [*14DC.0020.0002] # SIDEWAYS BLACK DOWN POINTING INDEX
-1F5A2 ; [*14DD.0020.0002] # BLACK UP POINTING BACKHAND INDEX
-1F5A3 ; [*14DE.0020.0002] # BLACK DOWN POINTING BACKHAND INDEX
-1F5A5 ; [*14DF.0020.0002] # DESKTOP COMPUTER
-1F5A6 ; [*14E0.0020.0002] # KEYBOARD AND MOUSE
-1F5A7 ; [*14E1.0020.0002] # THREE NETWORKED COMPUTERS
-1F5A8 ; [*14E2.0020.0002] # PRINTER
-1F5A9 ; [*14E3.0020.0002] # POCKET CALCULATOR
-1F5AA ; [*14E4.0020.0002] # BLACK HARD SHELL FLOPPY DISK
-1F5AB ; [*14E5.0020.0002] # WHITE HARD SHELL FLOPPY DISK
-1F5AC ; [*14E6.0020.0002] # SOFT SHELL FLOPPY DISK
-1F5AD ; [*14E7.0020.0002] # TAPE CARTRIDGE
-1F5AE ; [*14E8.0020.0002] # WIRED KEYBOARD
-1F5AF ; [*14E9.0020.0002] # ONE BUTTON MOUSE
-1F5B0 ; [*14EA.0020.0002] # TWO BUTTON MOUSE
-1F5B1 ; [*14EB.0020.0002] # THREE BUTTON MOUSE
-1F5B2 ; [*14EC.0020.0002] # TRACKBALL
-1F5B3 ; [*14ED.0020.0002] # OLD PERSONAL COMPUTER
-1F5B4 ; [*14EE.0020.0002] # HARD DISK
-1F5B5 ; [*14EF.0020.0002] # SCREEN
-1F5B6 ; [*14F0.0020.0002] # PRINTER ICON
-1F5B7 ; [*14F1.0020.0002] # FAX ICON
-1F5B8 ; [*14F2.0020.0002] # OPTICAL DISC ICON
-1F5B9 ; [*14F3.0020.0002] # DOCUMENT WITH TEXT
-1F5BA ; [*14F4.0020.0002] # DOCUMENT WITH TEXT AND PICTURE
-1F5BB ; [*14F5.0020.0002] # DOCUMENT WITH PICTURE
-1F5BC ; [*14F6.0020.0002] # FRAME WITH PICTURE
-1F5BD ; [*14F7.0020.0002] # FRAME WITH TILES
-1F5BE ; [*14F8.0020.0002] # FRAME WITH AN X
-1F5BF ; [*14F9.0020.0002] # BLACK FOLDER
-1F5C0 ; [*14FA.0020.0002] # FOLDER
-1F5C1 ; [*14FB.0020.0002] # OPEN FOLDER
-1F5C2 ; [*14FC.0020.0002] # CARD INDEX DIVIDERS
-1F5C3 ; [*14FD.0020.0002] # CARD FILE BOX
-1F5C4 ; [*14FE.0020.0002] # FILE CABINET
-1F5C5 ; [*14FF.0020.0002] # EMPTY NOTE
-1F5C6 ; [*1500.0020.0002] # EMPTY NOTE PAGE
-1F5C7 ; [*1501.0020.0002] # EMPTY NOTE PAD
-1F5C8 ; [*1502.0020.0002] # NOTE
-1F5C9 ; [*1503.0020.0002] # NOTE PAGE
-1F5CA ; [*1504.0020.0002] # NOTE PAD
-1F5CB ; [*1505.0020.0002] # EMPTY DOCUMENT
-1F5CC ; [*1506.0020.0002] # EMPTY PAGE
-1F5CD ; [*1507.0020.0002] # EMPTY PAGES
-1F5CE ; [*1508.0020.0002] # DOCUMENT
-1F5CF ; [*1509.0020.0002] # PAGE
-1F5D0 ; [*150A.0020.0002] # PAGES
-1F5D1 ; [*150B.0020.0002] # WASTEBASKET
-1F5D2 ; [*150C.0020.0002] # SPIRAL NOTE PAD
-1F5D3 ; [*150D.0020.0002] # SPIRAL CALENDAR PAD
-1F5D4 ; [*150E.0020.0002] # DESKTOP WINDOW
-1F5D5 ; [*150F.0020.0002] # MINIMIZE
-1F5D6 ; [*1510.0020.0002] # MAXIMIZE
-1F5D7 ; [*1511.0020.0002] # OVERLAP
-1F5D8 ; [*1512.0020.0002] # CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS
-1F5D9 ; [*1513.0020.0002] # CANCELLATION X
-1F5DA ; [*1514.0020.0002] # INCREASE FONT SIZE SYMBOL
-1F5DB ; [*1515.0020.0002] # DECREASE FONT SIZE SYMBOL
-1F5DC ; [*1516.0020.0002] # COMPRESSION
-1F5DD ; [*1517.0020.0002] # OLD KEY
-1F5DE ; [*1518.0020.0002] # ROLLED-UP NEWSPAPER
-1F5DF ; [*1519.0020.0002] # PAGE WITH CIRCLED TEXT
-1F5E0 ; [*151A.0020.0002] # STOCK CHART
-1F5E1 ; [*151B.0020.0002] # DAGGER KNIFE
-1F5E2 ; [*151C.0020.0002] # LIPS
-1F5E3 ; [*151D.0020.0002] # SPEAKING HEAD IN SILHOUETTE
-1F5E4 ; [*151E.0020.0002] # THREE RAYS ABOVE
-1F5E5 ; [*151F.0020.0002] # THREE RAYS BELOW
-1F5E6 ; [*1520.0020.0002] # THREE RAYS LEFT
-1F5E7 ; [*1521.0020.0002] # THREE RAYS RIGHT
-1F5E8 ; [*1522.0020.0002] # LEFT SPEECH BUBBLE
-1F5E9 ; [*1523.0020.0002] # RIGHT SPEECH BUBBLE
-1F5EA ; [*1524.0020.0002] # TWO SPEECH BUBBLES
-1F5EB ; [*1525.0020.0002] # THREE SPEECH BUBBLES
-1F5EC ; [*1526.0020.0002] # LEFT THOUGHT BUBBLE
-1F5ED ; [*1527.0020.0002] # RIGHT THOUGHT BUBBLE
-1F5EE ; [*1528.0020.0002] # LEFT ANGER BUBBLE
-1F5EF ; [*1529.0020.0002] # RIGHT ANGER BUBBLE
-1F5F0 ; [*152A.0020.0002] # MOOD BUBBLE
-1F5F1 ; [*152B.0020.0002] # LIGHTNING MOOD BUBBLE
-1F5F2 ; [*152C.0020.0002] # LIGHTNING MOOD
-1F5F3 ; [*152D.0020.0002] # BALLOT BOX WITH BALLOT
-1F5F4 ; [*152E.0020.0002] # BALLOT SCRIPT X
-1F5F5 ; [*152F.0020.0002] # BALLOT BOX WITH SCRIPT X
-1F5F6 ; [*1530.0020.0002] # BALLOT BOLD SCRIPT X
-1F5F7 ; [*1531.0020.0002] # BALLOT BOX WITH BOLD SCRIPT X
-1F5F8 ; [*1532.0020.0002] # LIGHT CHECK MARK
-1F5F9 ; [*1533.0020.0002] # BALLOT BOX WITH BOLD CHECK
-1F5FA ; [*1534.0020.0002] # WORLD MAP
-1F5FB ; [*1535.0020.0002] # MOUNT FUJI
-1F5FC ; [*1536.0020.0002] # TOKYO TOWER
-1F5FD ; [*1537.0020.0002] # STATUE OF LIBERTY
-1F5FE ; [*1538.0020.0002] # SILHOUETTE OF JAPAN
-1F5FF ; [*1539.0020.0002] # MOYAI
-1F600 ; [*153A.0020.0002] # GRINNING FACE
-1F601 ; [*153B.0020.0002] # GRINNING FACE WITH SMILING EYES
-1F602 ; [*153C.0020.0002] # FACE WITH TEARS OF JOY
-1F603 ; [*153D.0020.0002] # SMILING FACE WITH OPEN MOUTH
-1F604 ; [*153E.0020.0002] # SMILING FACE WITH OPEN MOUTH AND SMILING EYES
-1F605 ; [*153F.0020.0002] # SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
-1F606 ; [*1540.0020.0002] # SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
-1F607 ; [*1541.0020.0002] # SMILING FACE WITH HALO
-1F608 ; [*1542.0020.0002] # SMILING FACE WITH HORNS
-1F609 ; [*1543.0020.0002] # WINKING FACE
-1F60A ; [*1544.0020.0002] # SMILING FACE WITH SMILING EYES
-1F60B ; [*1545.0020.0002] # FACE SAVOURING DELICIOUS FOOD
-1F60C ; [*1546.0020.0002] # RELIEVED FACE
-1F60D ; [*1547.0020.0002] # SMILING FACE WITH HEART-SHAPED EYES
-1F60E ; [*1548.0020.0002] # SMILING FACE WITH SUNGLASSES
-1F60F ; [*1549.0020.0002] # SMIRKING FACE
-1F610 ; [*154A.0020.0002] # NEUTRAL FACE
-1F611 ; [*154B.0020.0002] # EXPRESSIONLESS FACE
-1F612 ; [*154C.0020.0002] # UNAMUSED FACE
-1F613 ; [*154D.0020.0002] # FACE WITH COLD SWEAT
-1F614 ; [*154E.0020.0002] # PENSIVE FACE
-1F615 ; [*154F.0020.0002] # CONFUSED FACE
-1F616 ; [*1550.0020.0002] # CONFOUNDED FACE
-1F617 ; [*1551.0020.0002] # KISSING FACE
-1F618 ; [*1552.0020.0002] # FACE THROWING A KISS
-1F619 ; [*1553.0020.0002] # KISSING FACE WITH SMILING EYES
-1F61A ; [*1554.0020.0002] # KISSING FACE WITH CLOSED EYES
-1F61B ; [*1555.0020.0002] # FACE WITH STUCK-OUT TONGUE
-1F61C ; [*1556.0020.0002] # FACE WITH STUCK-OUT TONGUE AND WINKING EYE
-1F61D ; [*1557.0020.0002] # FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
-1F61E ; [*1558.0020.0002] # DISAPPOINTED FACE
-1F61F ; [*1559.0020.0002] # WORRIED FACE
-1F620 ; [*155A.0020.0002] # ANGRY FACE
-1F621 ; [*155B.0020.0002] # POUTING FACE
-1F622 ; [*155C.0020.0002] # CRYING FACE
-1F623 ; [*155D.0020.0002] # PERSEVERING FACE
-1F624 ; [*155E.0020.0002] # FACE WITH LOOK OF TRIUMPH
-1F625 ; [*155F.0020.0002] # DISAPPOINTED BUT RELIEVED FACE
-1F626 ; [*1560.0020.0002] # FROWNING FACE WITH OPEN MOUTH
-1F627 ; [*1561.0020.0002] # ANGUISHED FACE
-1F628 ; [*1562.0020.0002] # FEARFUL FACE
-1F629 ; [*1563.0020.0002] # WEARY FACE
-1F62A ; [*1564.0020.0002] # SLEEPY FACE
-1F62B ; [*1565.0020.0002] # TIRED FACE
-1F62C ; [*1566.0020.0002] # GRIMACING FACE
-1F62D ; [*1567.0020.0002] # LOUDLY CRYING FACE
-1F62E ; [*1568.0020.0002] # FACE WITH OPEN MOUTH
-1F62F ; [*1569.0020.0002] # HUSHED FACE
-1F630 ; [*156A.0020.0002] # FACE WITH OPEN MOUTH AND COLD SWEAT
-1F631 ; [*156B.0020.0002] # FACE SCREAMING IN FEAR
-1F632 ; [*156C.0020.0002] # ASTONISHED FACE
-1F633 ; [*156D.0020.0002] # FLUSHED FACE
-1F634 ; [*156E.0020.0002] # SLEEPING FACE
-1F635 ; [*156F.0020.0002] # DIZZY FACE
-1F636 ; [*1570.0020.0002] # FACE WITHOUT MOUTH
-1F637 ; [*1571.0020.0002] # FACE WITH MEDICAL MASK
-1F638 ; [*1572.0020.0002] # GRINNING CAT FACE WITH SMILING EYES
-1F639 ; [*1573.0020.0002] # CAT FACE WITH TEARS OF JOY
-1F63A ; [*1574.0020.0002] # SMILING CAT FACE WITH OPEN MOUTH
-1F63B ; [*1575.0020.0002] # SMILING CAT FACE WITH HEART-SHAPED EYES
-1F63C ; [*1576.0020.0002] # CAT FACE WITH WRY SMILE
-1F63D ; [*1577.0020.0002] # KISSING CAT FACE WITH CLOSED EYES
-1F63E ; [*1578.0020.0002] # POUTING CAT FACE
-1F63F ; [*1579.0020.0002] # CRYING CAT FACE
-1F640 ; [*157A.0020.0002] # WEARY CAT FACE
-1F641 ; [*157B.0020.0002] # SLIGHTLY FROWNING FACE
-1F642 ; [*157C.0020.0002] # SLIGHTLY SMILING FACE
-1F645 ; [*157D.0020.0002] # FACE WITH NO GOOD GESTURE
-1F646 ; [*157E.0020.0002] # FACE WITH OK GESTURE
-1F647 ; [*157F.0020.0002] # PERSON BOWING DEEPLY
-1F648 ; [*1580.0020.0002] # SEE-NO-EVIL MONKEY
-1F649 ; [*1581.0020.0002] # HEAR-NO-EVIL MONKEY
-1F64A ; [*1582.0020.0002] # SPEAK-NO-EVIL MONKEY
-1F64B ; [*1583.0020.0002] # HAPPY PERSON RAISING ONE HAND
-1F64C ; [*1584.0020.0002] # PERSON RAISING BOTH HANDS IN CELEBRATION
-1F64D ; [*1585.0020.0002] # PERSON FROWNING
-1F64E ; [*1586.0020.0002] # PERSON WITH POUTING FACE
-1F64F ; [*1587.0020.0002] # PERSON WITH FOLDED HANDS
-1F650 ; [*1588.0020.0002] # NORTH WEST POINTING LEAF
-1F651 ; [*1589.0020.0002] # SOUTH WEST POINTING LEAF
-1F652 ; [*158A.0020.0002] # NORTH EAST POINTING LEAF
-1F653 ; [*158B.0020.0002] # SOUTH EAST POINTING LEAF
-1F654 ; [*158C.0020.0002] # TURNED NORTH WEST POINTING LEAF
-1F655 ; [*158D.0020.0002] # TURNED SOUTH WEST POINTING LEAF
-1F656 ; [*158E.0020.0002] # TURNED NORTH EAST POINTING LEAF
-1F657 ; [*158F.0020.0002] # TURNED SOUTH EAST POINTING LEAF
-1F658 ; [*1590.0020.0002] # NORTH WEST POINTING VINE LEAF
-1F659 ; [*1591.0020.0002] # SOUTH WEST POINTING VINE LEAF
-1F65A ; [*1592.0020.0002] # NORTH EAST POINTING VINE LEAF
-1F65B ; [*1593.0020.0002] # SOUTH EAST POINTING VINE LEAF
-1F65C ; [*1594.0020.0002] # HEAVY NORTH WEST POINTING VINE LEAF
-1F65D ; [*1595.0020.0002] # HEAVY SOUTH WEST POINTING VINE LEAF
-1F65E ; [*1596.0020.0002] # HEAVY NORTH EAST POINTING VINE LEAF
-1F65F ; [*1597.0020.0002] # HEAVY SOUTH EAST POINTING VINE LEAF
-1F660 ; [*1598.0020.0002] # NORTH WEST POINTING BUD
-1F661 ; [*1599.0020.0002] # SOUTH WEST POINTING BUD
-1F662 ; [*159A.0020.0002] # NORTH EAST POINTING BUD
-1F663 ; [*159B.0020.0002] # SOUTH EAST POINTING BUD
-1F664 ; [*159C.0020.0002] # HEAVY NORTH WEST POINTING BUD
-1F665 ; [*159D.0020.0002] # HEAVY SOUTH WEST POINTING BUD
-1F666 ; [*159E.0020.0002] # HEAVY NORTH EAST POINTING BUD
-1F667 ; [*159F.0020.0002] # HEAVY SOUTH EAST POINTING BUD
-1F668 ; [*15A0.0020.0002] # HOLLOW QUILT SQUARE ORNAMENT
-1F669 ; [*15A1.0020.0002] # HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE
-1F66A ; [*15A2.0020.0002] # SOLID QUILT SQUARE ORNAMENT
-1F66B ; [*15A3.0020.0002] # SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE
-1F66C ; [*15A4.0020.0002] # LEFTWARDS ROCKET
-1F66D ; [*15A5.0020.0002] # UPWARDS ROCKET
-1F66E ; [*15A6.0020.0002] # RIGHTWARDS ROCKET
-1F66F ; [*15A7.0020.0002] # DOWNWARDS ROCKET
-1F670 ; [*15A8.0020.0002] # SCRIPT LIGATURE ET ORNAMENT
-1F671 ; [*15A9.0020.0002] # HEAVY SCRIPT LIGATURE ET ORNAMENT
-1F672 ; [*15AA.0020.0002] # LIGATURE OPEN ET ORNAMENT
-1F673 ; [*15AB.0020.0002] # HEAVY LIGATURE OPEN ET ORNAMENT
-1F674 ; [*15AC.0020.0002] # HEAVY AMPERSAND ORNAMENT
-1F675 ; [*15AD.0020.0002] # SWASH AMPERSAND ORNAMENT
-1F676 ; [*15AE.0020.0002] # SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
-1F677 ; [*15AF.0020.0002] # SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-1F678 ; [*15B0.0020.0002] # SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-1F679 ; [*15B1.0020.0002] # HEAVY INTERROBANG ORNAMENT
-1F67A ; [*15B2.0020.0002] # SANS-SERIF INTERROBANG ORNAMENT
-1F67B ; [*15B3.0020.0002] # HEAVY SANS-SERIF INTERROBANG ORNAMENT
-1F67C ; [*15B4.0020.0002] # VERY HEAVY SOLIDUS
-1F67D ; [*15B5.0020.0002] # VERY HEAVY REVERSE SOLIDUS
-1F67E ; [*15B6.0020.0002] # CHECKER BOARD
-1F67F ; [*15B7.0020.0002] # REVERSE CHECKER BOARD
-1F680 ; [*15B8.0020.0002] # ROCKET
-1F681 ; [*15B9.0020.0002] # HELICOPTER
-1F682 ; [*15BA.0020.0002] # STEAM LOCOMOTIVE
-1F683 ; [*15BB.0020.0002] # RAILWAY CAR
-1F684 ; [*15BC.0020.0002] # HIGH-SPEED TRAIN
-1F685 ; [*15BD.0020.0002] # HIGH-SPEED TRAIN WITH BULLET NOSE
-1F686 ; [*15BE.0020.0002] # TRAIN
-1F687 ; [*15BF.0020.0002] # METRO
-1F688 ; [*15C0.0020.0002] # LIGHT RAIL
-1F689 ; [*15C1.0020.0002] # STATION
-1F68A ; [*15C2.0020.0002] # TRAM
-1F68B ; [*15C3.0020.0002] # TRAM CAR
-1F68C ; [*15C4.0020.0002] # BUS
-1F68D ; [*15C5.0020.0002] # ONCOMING BUS
-1F68E ; [*15C6.0020.0002] # TROLLEYBUS
-1F68F ; [*15C7.0020.0002] # BUS STOP
-1F690 ; [*15C8.0020.0002] # MINIBUS
-1F691 ; [*15C9.0020.0002] # AMBULANCE
-1F692 ; [*15CA.0020.0002] # FIRE ENGINE
-1F693 ; [*15CB.0020.0002] # POLICE CAR
-1F694 ; [*15CC.0020.0002] # ONCOMING POLICE CAR
-1F695 ; [*15CD.0020.0002] # TAXI
-1F696 ; [*15CE.0020.0002] # ONCOMING TAXI
-1F697 ; [*15CF.0020.0002] # AUTOMOBILE
-1F698 ; [*15D0.0020.0002] # ONCOMING AUTOMOBILE
-1F699 ; [*15D1.0020.0002] # RECREATIONAL VEHICLE
-1F69A ; [*15D2.0020.0002] # DELIVERY TRUCK
-1F69B ; [*15D3.0020.0002] # ARTICULATED LORRY
-1F69C ; [*15D4.0020.0002] # TRACTOR
-1F69D ; [*15D5.0020.0002] # MONORAIL
-1F69E ; [*15D6.0020.0002] # MOUNTAIN RAILWAY
-1F69F ; [*15D7.0020.0002] # SUSPENSION RAILWAY
-1F6A0 ; [*15D8.0020.0002] # MOUNTAIN CABLEWAY
-1F6A1 ; [*15D9.0020.0002] # AERIAL TRAMWAY
-1F6A2 ; [*15DA.0020.0002] # SHIP
-1F6A3 ; [*15DB.0020.0002] # ROWBOAT
-1F6A4 ; [*15DC.0020.0002] # SPEEDBOAT
-1F6A5 ; [*15DD.0020.0002] # HORIZONTAL TRAFFIC LIGHT
-1F6A6 ; [*15DE.0020.0002] # VERTICAL TRAFFIC LIGHT
-1F6A7 ; [*15DF.0020.0002] # CONSTRUCTION SIGN
-1F6A8 ; [*15E0.0020.0002] # POLICE CARS REVOLVING LIGHT
-1F6A9 ; [*15E1.0020.0002] # TRIANGULAR FLAG ON POST
-1F6AA ; [*15E2.0020.0002] # DOOR
-1F6AB ; [*15E3.0020.0002] # NO ENTRY SIGN
-1F6AC ; [*15E4.0020.0002] # SMOKING SYMBOL
-1F6AD ; [*15E5.0020.0002] # NO SMOKING SYMBOL
-1F6AE ; [*15E6.0020.0002] # PUT LITTER IN ITS PLACE SYMBOL
-1F6AF ; [*15E7.0020.0002] # DO NOT LITTER SYMBOL
-1F6B0 ; [*15E8.0020.0002] # POTABLE WATER SYMBOL
-1F6B1 ; [*15E9.0020.0002] # NON-POTABLE WATER SYMBOL
-1F6B2 ; [*15EA.0020.0002] # BICYCLE
-1F6B3 ; [*15EB.0020.0002] # NO BICYCLES
-1F6B4 ; [*15EC.0020.0002] # BICYCLIST
-1F6B5 ; [*15ED.0020.0002] # MOUNTAIN BICYCLIST
-1F6B6 ; [*15EE.0020.0002] # PEDESTRIAN
-1F6B7 ; [*15EF.0020.0002] # NO PEDESTRIANS
-1F6B8 ; [*15F0.0020.0002] # CHILDREN CROSSING
-1F6B9 ; [*15F1.0020.0002] # MENS SYMBOL
-1F6BA ; [*15F2.0020.0002] # WOMENS SYMBOL
-1F6BB ; [*15F3.0020.0002] # RESTROOM
-1F6BC ; [*15F4.0020.0002] # BABY SYMBOL
-1F6BD ; [*15F5.0020.0002] # TOILET
-1F6BE ; [*15F6.0020.0002] # WATER CLOSET
-1F6BF ; [*15F7.0020.0002] # SHOWER
-1F6C0 ; [*15F8.0020.0002] # BATH
-1F6C1 ; [*15F9.0020.0002] # BATHTUB
-1F6C2 ; [*15FA.0020.0002] # PASSPORT CONTROL
-1F6C3 ; [*15FB.0020.0002] # CUSTOMS
-1F6C4 ; [*15FC.0020.0002] # BAGGAGE CLAIM
-1F6C5 ; [*15FD.0020.0002] # LEFT LUGGAGE
-1F6C6 ; [*15FE.0020.0002] # TRIANGLE WITH ROUNDED CORNERS
-1F6C7 ; [*15FF.0020.0002] # PROHIBITED SIGN
-1F6C8 ; [*1600.0020.0002] # CIRCLED INFORMATION SOURCE
-1F6C9 ; [*1601.0020.0002] # BOYS SYMBOL
-1F6CA ; [*1602.0020.0002] # GIRLS SYMBOL
-1F6CB ; [*1603.0020.0002] # COUCH AND LAMP
-1F6CC ; [*1604.0020.0002] # SLEEPING ACCOMMODATION
-1F6CD ; [*1605.0020.0002] # SHOPPING BAGS
-1F6CE ; [*1606.0020.0002] # BELLHOP BELL
-1F6CF ; [*1607.0020.0002] # BED
-1F6E0 ; [*1608.0020.0002] # HAMMER AND WRENCH
-1F6E1 ; [*1609.0020.0002] # SHIELD
-1F6E2 ; [*160A.0020.0002] # OIL DRUM
-1F6E3 ; [*160B.0020.0002] # MOTORWAY
-1F6E4 ; [*160C.0020.0002] # RAILWAY TRACK
-1F6E5 ; [*160D.0020.0002] # MOTOR BOAT
-1F6E6 ; [*160E.0020.0002] # UP-POINTING MILITARY AIRPLANE
-1F6E7 ; [*160F.0020.0002] # UP-POINTING AIRPLANE
-1F6E8 ; [*1610.0020.0002] # UP-POINTING SMALL AIRPLANE
-1F6E9 ; [*1611.0020.0002] # SMALL AIRPLANE
-1F6EA ; [*1612.0020.0002] # NORTHEAST-POINTING AIRPLANE
-1F6EB ; [*1613.0020.0002] # AIRPLANE DEPARTURE
-1F6EC ; [*1614.0020.0002] # AIRPLANE ARRIVING
-1F6F0 ; [*1615.0020.0002] # SATELLITE
-1F6F1 ; [*1616.0020.0002] # ONCOMING FIRE ENGINE
-1F6F2 ; [*1617.0020.0002] # DIESEL LOCOMOTIVE
-1F6F3 ; [*1618.0020.0002] # PASSENGER SHIP
-1F700 ; [*1619.0020.0002] # ALCHEMICAL SYMBOL FOR QUINTESSENCE
-1F701 ; [*161A.0020.0002] # ALCHEMICAL SYMBOL FOR AIR
-1F702 ; [*161B.0020.0002] # ALCHEMICAL SYMBOL FOR FIRE
-1F703 ; [*161C.0020.0002] # ALCHEMICAL SYMBOL FOR EARTH
-1F704 ; [*161D.0020.0002] # ALCHEMICAL SYMBOL FOR WATER
-1F705 ; [*161E.0020.0002] # ALCHEMICAL SYMBOL FOR AQUAFORTIS
-1F706 ; [*161F.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA
-1F707 ; [*1620.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA-2
-1F708 ; [*1621.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE
-1F709 ; [*1622.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE-2
-1F70A ; [*1623.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR
-1F70B ; [*1624.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-2
-1F70C ; [*1625.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-3
-1F70D ; [*1626.0020.0002] # ALCHEMICAL SYMBOL FOR SULFUR
-1F70E ; [*1627.0020.0002] # ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
-1F70F ; [*1628.0020.0002] # ALCHEMICAL SYMBOL FOR BLACK SULFUR
-1F710 ; [*1629.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
-1F711 ; [*162A.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
-1F712 ; [*162B.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
-1F713 ; [*162C.0020.0002] # ALCHEMICAL SYMBOL FOR CINNABAR
-1F714 ; [*162D.0020.0002] # ALCHEMICAL SYMBOL FOR SALT
-1F715 ; [*162E.0020.0002] # ALCHEMICAL SYMBOL FOR NITRE
-1F716 ; [*162F.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL
-1F717 ; [*1630.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL-2
-1F718 ; [*1631.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT
-1F719 ; [*1632.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT-2
-1F71A ; [*1633.0020.0002] # ALCHEMICAL SYMBOL FOR GOLD
-1F71B ; [*1634.0020.0002] # ALCHEMICAL SYMBOL FOR SILVER
-1F71C ; [*1635.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE
-1F71D ; [*1636.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE-2
-1F71E ; [*1637.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF IRON
-1F71F ; [*1638.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF IRON
-1F720 ; [*1639.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ORE
-1F721 ; [*163A.0020.0002] # ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
-1F722 ; [*163B.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
-1F723 ; [*163C.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
-1F724 ; [*163D.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
-1F725 ; [*163E.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
-1F726 ; [*163F.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
-1F727 ; [*1640.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
-1F728 ; [*1641.0020.0002] # ALCHEMICAL SYMBOL FOR VERDIGRIS
-1F729 ; [*1642.0020.0002] # ALCHEMICAL SYMBOL FOR TIN ORE
-1F72A ; [*1643.0020.0002] # ALCHEMICAL SYMBOL FOR LEAD ORE
-1F72B ; [*1644.0020.0002] # ALCHEMICAL SYMBOL FOR ANTIMONY ORE
-1F72C ; [*1645.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
-1F72D ; [*1646.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
-1F72E ; [*1647.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
-1F72F ; [*1648.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
-1F730 ; [*1649.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
-1F731 ; [*164A.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
-1F732 ; [*164B.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS
-1F733 ; [*164C.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-2
-1F734 ; [*164D.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-3
-1F735 ; [*164E.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-4
-1F736 ; [*164F.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI
-1F737 ; [*1650.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI-2
-1F738 ; [*1651.0020.0002] # ALCHEMICAL SYMBOL FOR MARCASITE
-1F739 ; [*1652.0020.0002] # ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
-1F73A ; [*1653.0020.0002] # ALCHEMICAL SYMBOL FOR ARSENIC
-1F73B ; [*1654.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR
-1F73C ; [*1655.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR-2
-1F73D ; [*1656.0020.0002] # ALCHEMICAL SYMBOL FOR AURIPIGMENT
-1F73E ; [*1657.0020.0002] # ALCHEMICAL SYMBOL FOR BISMUTH ORE
-1F73F ; [*1658.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR
-1F740 ; [*1659.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR-2
-1F741 ; [*165A.0020.0002] # ALCHEMICAL SYMBOL FOR QUICK LIME
-1F742 ; [*165B.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX
-1F743 ; [*165C.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-2
-1F744 ; [*165D.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-3
-1F745 ; [*165E.0020.0002] # ALCHEMICAL SYMBOL FOR ALUM
-1F746 ; [*165F.0020.0002] # ALCHEMICAL SYMBOL FOR OIL
-1F747 ; [*1660.0020.0002] # ALCHEMICAL SYMBOL FOR SPIRIT
-1F748 ; [*1661.0020.0002] # ALCHEMICAL SYMBOL FOR TINCTURE
-1F749 ; [*1662.0020.0002] # ALCHEMICAL SYMBOL FOR GUM
-1F74A ; [*1663.0020.0002] # ALCHEMICAL SYMBOL FOR WAX
-1F74B ; [*1664.0020.0002] # ALCHEMICAL SYMBOL FOR POWDER
-1F74C ; [*1665.0020.0002] # ALCHEMICAL SYMBOL FOR CALX
-1F74D ; [*1666.0020.0002] # ALCHEMICAL SYMBOL FOR TUTTY
-1F74E ; [*1667.0020.0002] # ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
-1F74F ; [*1668.0020.0002] # ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
-1F750 ; [*1669.0020.0002] # ALCHEMICAL SYMBOL FOR CADUCEUS
-1F751 ; [*166A.0020.0002] # ALCHEMICAL SYMBOL FOR TRIDENT
-1F752 ; [*166B.0020.0002] # ALCHEMICAL SYMBOL FOR STARRED TRIDENT
-1F753 ; [*166C.0020.0002] # ALCHEMICAL SYMBOL FOR LODESTONE
-1F754 ; [*166D.0020.0002] # ALCHEMICAL SYMBOL FOR SOAP
-1F755 ; [*166E.0020.0002] # ALCHEMICAL SYMBOL FOR URINE
-1F756 ; [*166F.0020.0002] # ALCHEMICAL SYMBOL FOR HORSE DUNG
-1F757 ; [*1670.0020.0002] # ALCHEMICAL SYMBOL FOR ASHES
-1F758 ; [*1671.0020.0002] # ALCHEMICAL SYMBOL FOR POT ASHES
-1F759 ; [*1672.0020.0002] # ALCHEMICAL SYMBOL FOR BRICK
-1F75A ; [*1673.0020.0002] # ALCHEMICAL SYMBOL FOR POWDERED BRICK
-1F75B ; [*1674.0020.0002] # ALCHEMICAL SYMBOL FOR AMALGAM
-1F75C ; [*1675.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
-1F75D ; [*1676.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
-1F75E ; [*1677.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATION
-1F75F ; [*1678.0020.0002] # ALCHEMICAL SYMBOL FOR PRECIPITATE
-1F760 ; [*1679.0020.0002] # ALCHEMICAL SYMBOL FOR DISTILL
-1F761 ; [*167A.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE
-1F762 ; [*167B.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE-2
-1F763 ; [*167C.0020.0002] # ALCHEMICAL SYMBOL FOR PURIFY
-1F764 ; [*167D.0020.0002] # ALCHEMICAL SYMBOL FOR PUTREFACTION
-1F765 ; [*167E.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE
-1F766 ; [*167F.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-2
-1F767 ; [*1680.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-3
-1F768 ; [*1681.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-4
-1F769 ; [*1682.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-5
-1F76A ; [*1683.0020.0002] # ALCHEMICAL SYMBOL FOR ALEMBIC
-1F76B ; [*1684.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF MARY
-1F76C ; [*1685.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
-1F76D ; [*1686.0020.0002] # ALCHEMICAL SYMBOL FOR RETORT
-1F76E ; [*1687.0020.0002] # ALCHEMICAL SYMBOL FOR HOUR
-1F76F ; [*1688.0020.0002] # ALCHEMICAL SYMBOL FOR NIGHT
-1F770 ; [*1689.0020.0002] # ALCHEMICAL SYMBOL FOR DAY-NIGHT
-1F771 ; [*168A.0020.0002] # ALCHEMICAL SYMBOL FOR MONTH
-1F772 ; [*168B.0020.0002] # ALCHEMICAL SYMBOL FOR HALF DRAM
-1F773 ; [*168C.0020.0002] # ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780 ; [*168D.0020.0002] # BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE
-1F781 ; [*168E.0020.0002] # BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE
-1F782 ; [*168F.0020.0002] # BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE
-1F783 ; [*1690.0020.0002] # BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE
-1F784 ; [*1691.0020.0002] # BLACK SLIGHTLY SMALL CIRCLE
-1F785 ; [*1692.0020.0002] # MEDIUM BOLD WHITE CIRCLE
-1F786 ; [*1693.0020.0002] # BOLD WHITE CIRCLE
-1F787 ; [*1694.0020.0002] # HEAVY WHITE CIRCLE
-1F788 ; [*1695.0020.0002] # VERY HEAVY WHITE CIRCLE
-1F789 ; [*1696.0020.0002] # EXTREMELY HEAVY WHITE CIRCLE
-1F78A ; [*1697.0020.0002] # WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE
-1F78B ; [*1698.0020.0002] # ROUND TARGET
-1F78C ; [*1699.0020.0002] # BLACK TINY SQUARE
-1F78D ; [*169A.0020.0002] # BLACK SLIGHTLY SMALL SQUARE
-1F78E ; [*169B.0020.0002] # LIGHT WHITE SQUARE
-1F78F ; [*169C.0020.0002] # MEDIUM WHITE SQUARE
-1F790 ; [*169D.0020.0002] # BOLD WHITE SQUARE
-1F791 ; [*169E.0020.0002] # HEAVY WHITE SQUARE
-1F792 ; [*169F.0020.0002] # VERY HEAVY WHITE SQUARE
-1F793 ; [*16A0.0020.0002] # EXTREMELY HEAVY WHITE SQUARE
-1F794 ; [*16A1.0020.0002] # WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE
-1F795 ; [*16A2.0020.0002] # WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE
-1F796 ; [*16A3.0020.0002] # SQUARE TARGET
-1F797 ; [*16A4.0020.0002] # BLACK TINY DIAMOND
-1F798 ; [*16A5.0020.0002] # BLACK VERY SMALL DIAMOND
-1F799 ; [*16A6.0020.0002] # BLACK MEDIUM SMALL DIAMOND
-1F79A ; [*16A7.0020.0002] # WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND
-1F79B ; [*16A8.0020.0002] # WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND
-1F79C ; [*16A9.0020.0002] # DIAMOND TARGET
-1F79D ; [*16AA.0020.0002] # BLACK TINY LOZENGE
-1F79E ; [*16AB.0020.0002] # BLACK VERY SMALL LOZENGE
-1F79F ; [*16AC.0020.0002] # BLACK MEDIUM SMALL LOZENGE
-1F7A0 ; [*16AD.0020.0002] # WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE
-1F7A1 ; [*16AE.0020.0002] # THIN GREEK CROSS
-1F7A2 ; [*16AF.0020.0002] # LIGHT GREEK CROSS
-1F7A3 ; [*16B0.0020.0002] # MEDIUM GREEK CROSS
-1F7A4 ; [*16B1.0020.0002] # BOLD GREEK CROSS
-1F7A5 ; [*16B2.0020.0002] # VERY BOLD GREEK CROSS
-1F7A6 ; [*16B3.0020.0002] # VERY HEAVY GREEK CROSS
-1F7A7 ; [*16B4.0020.0002] # EXTREMELY HEAVY GREEK CROSS
-1F7A8 ; [*16B5.0020.0002] # THIN SALTIRE
-1F7A9 ; [*16B6.0020.0002] # LIGHT SALTIRE
-1F7AA ; [*16B7.0020.0002] # MEDIUM SALTIRE
-1F7AB ; [*16B8.0020.0002] # BOLD SALTIRE
-1F7AC ; [*16B9.0020.0002] # HEAVY SALTIRE
-1F7AD ; [*16BA.0020.0002] # VERY HEAVY SALTIRE
-1F7AE ; [*16BB.0020.0002] # EXTREMELY HEAVY SALTIRE
-1F7AF ; [*16BC.0020.0002] # LIGHT FIVE SPOKED ASTERISK
-1F7B0 ; [*16BD.0020.0002] # MEDIUM FIVE SPOKED ASTERISK
-1F7B1 ; [*16BE.0020.0002] # BOLD FIVE SPOKED ASTERISK
-1F7B2 ; [*16BF.0020.0002] # HEAVY FIVE SPOKED ASTERISK
-1F7B3 ; [*16C0.0020.0002] # VERY HEAVY FIVE SPOKED ASTERISK
-1F7B4 ; [*16C1.0020.0002] # EXTREMELY HEAVY FIVE SPOKED ASTERISK
-1F7B5 ; [*16C2.0020.0002] # LIGHT SIX SPOKED ASTERISK
-1F7B6 ; [*16C3.0020.0002] # MEDIUM SIX SPOKED ASTERISK
-1F7B7 ; [*16C4.0020.0002] # BOLD SIX SPOKED ASTERISK
-1F7B8 ; [*16C5.0020.0002] # HEAVY SIX SPOKED ASTERISK
-1F7B9 ; [*16C6.0020.0002] # VERY HEAVY SIX SPOKED ASTERISK
-1F7BA ; [*16C7.0020.0002] # EXTREMELY HEAVY SIX SPOKED ASTERISK
-1F7BB ; [*16C8.0020.0002] # LIGHT EIGHT SPOKED ASTERISK
-1F7BC ; [*16C9.0020.0002] # MEDIUM EIGHT SPOKED ASTERISK
-1F7BD ; [*16CA.0020.0002] # BOLD EIGHT SPOKED ASTERISK
-1F7BE ; [*16CB.0020.0002] # HEAVY EIGHT SPOKED ASTERISK
-1F7BF ; [*16CC.0020.0002] # VERY HEAVY EIGHT SPOKED ASTERISK
-1F7C0 ; [*16CD.0020.0002] # LIGHT THREE POINTED BLACK STAR
-1F7C1 ; [*16CE.0020.0002] # MEDIUM THREE POINTED BLACK STAR
-1F7C2 ; [*16CF.0020.0002] # THREE POINTED BLACK STAR
-1F7C3 ; [*16D0.0020.0002] # MEDIUM THREE POINTED PINWHEEL STAR
-1F7C4 ; [*16D1.0020.0002] # LIGHT FOUR POINTED BLACK STAR
-1F7C5 ; [*16D2.0020.0002] # MEDIUM FOUR POINTED BLACK STAR
-1F7C6 ; [*16D3.0020.0002] # FOUR POINTED BLACK STAR
-1F7C7 ; [*16D4.0020.0002] # MEDIUM FOUR POINTED PINWHEEL STAR
-1F7C8 ; [*16D5.0020.0002] # REVERSE LIGHT FOUR POINTED PINWHEEL STAR
-1F7C9 ; [*16D6.0020.0002] # LIGHT FIVE POINTED BLACK STAR
-1F7CA ; [*16D7.0020.0002] # HEAVY FIVE POINTED BLACK STAR
-1F7CB ; [*16D8.0020.0002] # MEDIUM SIX POINTED BLACK STAR
-1F7CC ; [*16D9.0020.0002] # HEAVY SIX POINTED BLACK STAR
-1F7CD ; [*16DA.0020.0002] # SIX POINTED PINWHEEL STAR
-1F7CE ; [*16DB.0020.0002] # MEDIUM EIGHT POINTED BLACK STAR
-1F7CF ; [*16DC.0020.0002] # HEAVY EIGHT POINTED BLACK STAR
-1F7D0 ; [*16DD.0020.0002] # VERY HEAVY EIGHT POINTED BLACK STAR
-1F7D1 ; [*16DE.0020.0002] # HEAVY EIGHT POINTED PINWHEEL STAR
-1F7D2 ; [*16DF.0020.0002] # LIGHT TWELVE POINTED BLACK STAR
-1F7D3 ; [*16E0.0020.0002] # HEAVY TWELVE POINTED BLACK STAR
-1F7D4 ; [*16E1.0020.0002] # HEAVY TWELVE POINTED PINWHEEL STAR
-1F800 ; [*16E2.0020.0002] # LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
-1F801 ; [*16E3.0020.0002] # UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
-1F802 ; [*16E4.0020.0002] # RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
-1F803 ; [*16E5.0020.0002] # DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
-1F804 ; [*16E6.0020.0002] # LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
-1F805 ; [*16E7.0020.0002] # UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
-1F806 ; [*16E8.0020.0002] # RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
-1F807 ; [*16E9.0020.0002] # DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
-1F808 ; [*16EA.0020.0002] # LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F809 ; [*16EB.0020.0002] # UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F80A ; [*16EC.0020.0002] # RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F80B ; [*16ED.0020.0002] # DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F810 ; [*16EE.0020.0002] # LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
-1F811 ; [*16EF.0020.0002] # UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
-1F812 ; [*16F0.0020.0002] # RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
-1F813 ; [*16F1.0020.0002] # DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
-1F814 ; [*16F2.0020.0002] # LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F815 ; [*16F3.0020.0002] # UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F816 ; [*16F4.0020.0002] # RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F817 ; [*16F5.0020.0002] # DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F818 ; [*16F6.0020.0002] # HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F819 ; [*16F7.0020.0002] # HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F81A ; [*16F8.0020.0002] # HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F81B ; [*16F9.0020.0002] # HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
-1F81C ; [*16FA.0020.0002] # HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
-1F81D ; [*16FB.0020.0002] # HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
-1F81E ; [*16FC.0020.0002] # HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
-1F81F ; [*16FD.0020.0002] # HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
-1F820 ; [*16FE.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
-1F821 ; [*16FF.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
-1F822 ; [*1700.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
-1F823 ; [*1701.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
-1F824 ; [*1702.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
-1F825 ; [*1703.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
-1F826 ; [*1704.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
-1F827 ; [*1705.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
-1F828 ; [*1706.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
-1F829 ; [*1707.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
-1F82A ; [*1708.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
-1F82B ; [*1709.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
-1F82C ; [*170A.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
-1F82D ; [*170B.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
-1F82E ; [*170C.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
-1F82F ; [*170D.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
-1F830 ; [*170E.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
-1F831 ; [*170F.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
-1F832 ; [*1710.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
-1F833 ; [*1711.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
-1F834 ; [*1712.0020.0002] # LEFTWARDS FINGER-POST ARROW
-1F835 ; [*1713.0020.0002] # UPWARDS FINGER-POST ARROW
-1F836 ; [*1714.0020.0002] # RIGHTWARDS FINGER-POST ARROW
-1F837 ; [*1715.0020.0002] # DOWNWARDS FINGER-POST ARROW
-1F838 ; [*1716.0020.0002] # LEFTWARDS SQUARED ARROW
-1F839 ; [*1717.0020.0002] # UPWARDS SQUARED ARROW
-1F83A ; [*1718.0020.0002] # RIGHTWARDS SQUARED ARROW
-1F83B ; [*1719.0020.0002] # DOWNWARDS SQUARED ARROW
-1F83C ; [*171A.0020.0002] # LEFTWARDS COMPRESSED ARROW
-1F83D ; [*171B.0020.0002] # UPWARDS COMPRESSED ARROW
-1F83E ; [*171C.0020.0002] # RIGHTWARDS COMPRESSED ARROW
-1F83F ; [*171D.0020.0002] # DOWNWARDS COMPRESSED ARROW
-1F840 ; [*171E.0020.0002] # LEFTWARDS HEAVY COMPRESSED ARROW
-1F841 ; [*171F.0020.0002] # UPWARDS HEAVY COMPRESSED ARROW
-1F842 ; [*1720.0020.0002] # RIGHTWARDS HEAVY COMPRESSED ARROW
-1F843 ; [*1721.0020.0002] # DOWNWARDS HEAVY COMPRESSED ARROW
-1F844 ; [*1722.0020.0002] # LEFTWARDS HEAVY ARROW
-1F845 ; [*1723.0020.0002] # UPWARDS HEAVY ARROW
-1F846 ; [*1724.0020.0002] # RIGHTWARDS HEAVY ARROW
-1F847 ; [*1725.0020.0002] # DOWNWARDS HEAVY ARROW
-1F850 ; [*1726.0020.0002] # LEFTWARDS SANS-SERIF ARROW
-1F851 ; [*1727.0020.0002] # UPWARDS SANS-SERIF ARROW
-1F852 ; [*1728.0020.0002] # RIGHTWARDS SANS-SERIF ARROW
-1F853 ; [*1729.0020.0002] # DOWNWARDS SANS-SERIF ARROW
-1F854 ; [*172A.0020.0002] # NORTH WEST SANS-SERIF ARROW
-1F855 ; [*172B.0020.0002] # NORTH EAST SANS-SERIF ARROW
-1F856 ; [*172C.0020.0002] # SOUTH EAST SANS-SERIF ARROW
-1F857 ; [*172D.0020.0002] # SOUTH WEST SANS-SERIF ARROW
-1F858 ; [*172E.0020.0002] # LEFT RIGHT SANS-SERIF ARROW
-1F859 ; [*172F.0020.0002] # UP DOWN SANS-SERIF ARROW
-1F860 ; [*1730.0020.0002] # WIDE-HEADED LEFTWARDS LIGHT BARB ARROW
-1F861 ; [*1731.0020.0002] # WIDE-HEADED UPWARDS LIGHT BARB ARROW
-1F862 ; [*1732.0020.0002] # WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW
-1F863 ; [*1733.0020.0002] # WIDE-HEADED DOWNWARDS LIGHT BARB ARROW
-1F864 ; [*1734.0020.0002] # WIDE-HEADED NORTH WEST LIGHT BARB ARROW
-1F865 ; [*1735.0020.0002] # WIDE-HEADED NORTH EAST LIGHT BARB ARROW
-1F866 ; [*1736.0020.0002] # WIDE-HEADED SOUTH EAST LIGHT BARB ARROW
-1F867 ; [*1737.0020.0002] # WIDE-HEADED SOUTH WEST LIGHT BARB ARROW
-1F868 ; [*1738.0020.0002] # WIDE-HEADED LEFTWARDS BARB ARROW
-1F869 ; [*1739.0020.0002] # WIDE-HEADED UPWARDS BARB ARROW
-1F86A ; [*173A.0020.0002] # WIDE-HEADED RIGHTWARDS BARB ARROW
-1F86B ; [*173B.0020.0002] # WIDE-HEADED DOWNWARDS BARB ARROW
-1F86C ; [*173C.0020.0002] # WIDE-HEADED NORTH WEST BARB ARROW
-1F86D ; [*173D.0020.0002] # WIDE-HEADED NORTH EAST BARB ARROW
-1F86E ; [*173E.0020.0002] # WIDE-HEADED SOUTH EAST BARB ARROW
-1F86F ; [*173F.0020.0002] # WIDE-HEADED SOUTH WEST BARB ARROW
-1F870 ; [*1740.0020.0002] # WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW
-1F871 ; [*1741.0020.0002] # WIDE-HEADED UPWARDS MEDIUM BARB ARROW
-1F872 ; [*1742.0020.0002] # WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW
-1F873 ; [*1743.0020.0002] # WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW
-1F874 ; [*1744.0020.0002] # WIDE-HEADED NORTH WEST MEDIUM BARB ARROW
-1F875 ; [*1745.0020.0002] # WIDE-HEADED NORTH EAST MEDIUM BARB ARROW
-1F876 ; [*1746.0020.0002] # WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW
-1F877 ; [*1747.0020.0002] # WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW
-1F878 ; [*1748.0020.0002] # WIDE-HEADED LEFTWARDS HEAVY BARB ARROW
-1F879 ; [*1749.0020.0002] # WIDE-HEADED UPWARDS HEAVY BARB ARROW
-1F87A ; [*174A.0020.0002] # WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW
-1F87B ; [*174B.0020.0002] # WIDE-HEADED DOWNWARDS HEAVY BARB ARROW
-1F87C ; [*174C.0020.0002] # WIDE-HEADED NORTH WEST HEAVY BARB ARROW
-1F87D ; [*174D.0020.0002] # WIDE-HEADED NORTH EAST HEAVY BARB ARROW
-1F87E ; [*174E.0020.0002] # WIDE-HEADED SOUTH EAST HEAVY BARB ARROW
-1F87F ; [*174F.0020.0002] # WIDE-HEADED SOUTH WEST HEAVY BARB ARROW
-1F880 ; [*1750.0020.0002] # WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW
-1F881 ; [*1751.0020.0002] # WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW
-1F882 ; [*1752.0020.0002] # WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW
-1F883 ; [*1753.0020.0002] # WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW
-1F884 ; [*1754.0020.0002] # WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW
-1F885 ; [*1755.0020.0002] # WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW
-1F886 ; [*1756.0020.0002] # WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW
-1F887 ; [*1757.0020.0002] # WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
-1F890 ; [*1758.0020.0002] # LEFTWARDS TRIANGLE ARROWHEAD
-1F891 ; [*1759.0020.0002] # UPWARDS TRIANGLE ARROWHEAD
-1F892 ; [*175A.0020.0002] # RIGHTWARDS TRIANGLE ARROWHEAD
-1F893 ; [*175B.0020.0002] # DOWNWARDS TRIANGLE ARROWHEAD
-1F894 ; [*175C.0020.0002] # LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
-1F895 ; [*175D.0020.0002] # UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
-1F896 ; [*175E.0020.0002] # RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
-1F897 ; [*175F.0020.0002] # DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
-1F898 ; [*1760.0020.0002] # LEFTWARDS ARROW WITH NOTCHED TAIL
-1F899 ; [*1761.0020.0002] # UPWARDS ARROW WITH NOTCHED TAIL
-1F89A ; [*1762.0020.0002] # RIGHTWARDS ARROW WITH NOTCHED TAIL
-1F89B ; [*1763.0020.0002] # DOWNWARDS ARROW WITH NOTCHED TAIL
-1F89C ; [*1764.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE
-1F89D ; [*1765.0020.0002] # HEAVY ARROW SHAFT WIDTH TWO THIRDS
-1F89E ; [*1766.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE HALF
-1F89F ; [*1767.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE THIRD
-1F8A0 ; [*1768.0020.0002] # LEFTWARDS BOTTOM-SHADED WHITE ARROW
-1F8A1 ; [*1769.0020.0002] # RIGHTWARDS BOTTOM SHADED WHITE ARROW
-1F8A2 ; [*176A.0020.0002] # LEFTWARDS TOP SHADED WHITE ARROW
-1F8A3 ; [*176B.0020.0002] # RIGHTWARDS TOP SHADED WHITE ARROW
-1F8A4 ; [*176C.0020.0002] # LEFTWARDS LEFT-SHADED WHITE ARROW
-1F8A5 ; [*176D.0020.0002] # RIGHTWARDS RIGHT-SHADED WHITE ARROW
-1F8A6 ; [*176E.0020.0002] # LEFTWARDS RIGHT-SHADED WHITE ARROW
-1F8A7 ; [*176F.0020.0002] # RIGHTWARDS LEFT-SHADED WHITE ARROW
-1F8A8 ; [*1770.0020.0002] # LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
-1F8A9 ; [*1771.0020.0002] # RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW
-1F8AA ; [*1772.0020.0002] # LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW
-1F8AB ; [*1773.0020.0002] # RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW
-1F8AC ; [*1774.0020.0002] # WHITE ARROW SHAFT WIDTH ONE
-1F8AD ; [*1775.0020.0002] # WHITE ARROW SHAFT WIDTH TWO THIRDS
+1EEF0 ; [*04DC.0020.0002] # ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL
+1EEF1 ; [*04DD.0020.0002] # ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1F000 ; [*11A1.0020.0002] # MAHJONG TILE EAST WIND
+1F001 ; [*11A2.0020.0002] # MAHJONG TILE SOUTH WIND
+1F002 ; [*11A3.0020.0002] # MAHJONG TILE WEST WIND
+1F003 ; [*11A4.0020.0002] # MAHJONG TILE NORTH WIND
+1F004 ; [*11A5.0020.0002] # MAHJONG TILE RED DRAGON
+1F005 ; [*11A6.0020.0002] # MAHJONG TILE GREEN DRAGON
+1F006 ; [*11A7.0020.0002] # MAHJONG TILE WHITE DRAGON
+1F007 ; [*11A8.0020.0002] # MAHJONG TILE ONE OF CHARACTERS
+1F008 ; [*11A9.0020.0002] # MAHJONG TILE TWO OF CHARACTERS
+1F009 ; [*11AA.0020.0002] # MAHJONG TILE THREE OF CHARACTERS
+1F00A ; [*11AB.0020.0002] # MAHJONG TILE FOUR OF CHARACTERS
+1F00B ; [*11AC.0020.0002] # MAHJONG TILE FIVE OF CHARACTERS
+1F00C ; [*11AD.0020.0002] # MAHJONG TILE SIX OF CHARACTERS
+1F00D ; [*11AE.0020.0002] # MAHJONG TILE SEVEN OF CHARACTERS
+1F00E ; [*11AF.0020.0002] # MAHJONG TILE EIGHT OF CHARACTERS
+1F00F ; [*11B0.0020.0002] # MAHJONG TILE NINE OF CHARACTERS
+1F010 ; [*11B1.0020.0002] # MAHJONG TILE ONE OF BAMBOOS
+1F011 ; [*11B2.0020.0002] # MAHJONG TILE TWO OF BAMBOOS
+1F012 ; [*11B3.0020.0002] # MAHJONG TILE THREE OF BAMBOOS
+1F013 ; [*11B4.0020.0002] # MAHJONG TILE FOUR OF BAMBOOS
+1F014 ; [*11B5.0020.0002] # MAHJONG TILE FIVE OF BAMBOOS
+1F015 ; [*11B6.0020.0002] # MAHJONG TILE SIX OF BAMBOOS
+1F016 ; [*11B7.0020.0002] # MAHJONG TILE SEVEN OF BAMBOOS
+1F017 ; [*11B8.0020.0002] # MAHJONG TILE EIGHT OF BAMBOOS
+1F018 ; [*11B9.0020.0002] # MAHJONG TILE NINE OF BAMBOOS
+1F019 ; [*11BA.0020.0002] # MAHJONG TILE ONE OF CIRCLES
+1F01A ; [*11BB.0020.0002] # MAHJONG TILE TWO OF CIRCLES
+1F01B ; [*11BC.0020.0002] # MAHJONG TILE THREE OF CIRCLES
+1F01C ; [*11BD.0020.0002] # MAHJONG TILE FOUR OF CIRCLES
+1F01D ; [*11BE.0020.0002] # MAHJONG TILE FIVE OF CIRCLES
+1F01E ; [*11BF.0020.0002] # MAHJONG TILE SIX OF CIRCLES
+1F01F ; [*11C0.0020.0002] # MAHJONG TILE SEVEN OF CIRCLES
+1F020 ; [*11C1.0020.0002] # MAHJONG TILE EIGHT OF CIRCLES
+1F021 ; [*11C2.0020.0002] # MAHJONG TILE NINE OF CIRCLES
+1F022 ; [*11C3.0020.0002] # MAHJONG TILE PLUM
+1F023 ; [*11C4.0020.0002] # MAHJONG TILE ORCHID
+1F024 ; [*11C5.0020.0002] # MAHJONG TILE BAMBOO
+1F025 ; [*11C6.0020.0002] # MAHJONG TILE CHRYSANTHEMUM
+1F026 ; [*11C7.0020.0002] # MAHJONG TILE SPRING
+1F027 ; [*11C8.0020.0002] # MAHJONG TILE SUMMER
+1F028 ; [*11C9.0020.0002] # MAHJONG TILE AUTUMN
+1F029 ; [*11CA.0020.0002] # MAHJONG TILE WINTER
+1F02A ; [*11CB.0020.0002] # MAHJONG TILE JOKER
+1F02B ; [*11CC.0020.0002] # MAHJONG TILE BACK
+1F030 ; [*11CD.0020.0002] # DOMINO TILE HORIZONTAL BACK
+1F031 ; [*11CE.0020.0002] # DOMINO TILE HORIZONTAL-00-00
+1F032 ; [*11CF.0020.0002] # DOMINO TILE HORIZONTAL-00-01
+1F033 ; [*11D0.0020.0002] # DOMINO TILE HORIZONTAL-00-02
+1F034 ; [*11D1.0020.0002] # DOMINO TILE HORIZONTAL-00-03
+1F035 ; [*11D2.0020.0002] # DOMINO TILE HORIZONTAL-00-04
+1F036 ; [*11D3.0020.0002] # DOMINO TILE HORIZONTAL-00-05
+1F037 ; [*11D4.0020.0002] # DOMINO TILE HORIZONTAL-00-06
+1F038 ; [*11D5.0020.0002] # DOMINO TILE HORIZONTAL-01-00
+1F039 ; [*11D6.0020.0002] # DOMINO TILE HORIZONTAL-01-01
+1F03A ; [*11D7.0020.0002] # DOMINO TILE HORIZONTAL-01-02
+1F03B ; [*11D8.0020.0002] # DOMINO TILE HORIZONTAL-01-03
+1F03C ; [*11D9.0020.0002] # DOMINO TILE HORIZONTAL-01-04
+1F03D ; [*11DA.0020.0002] # DOMINO TILE HORIZONTAL-01-05
+1F03E ; [*11DB.0020.0002] # DOMINO TILE HORIZONTAL-01-06
+1F03F ; [*11DC.0020.0002] # DOMINO TILE HORIZONTAL-02-00
+1F040 ; [*11DD.0020.0002] # DOMINO TILE HORIZONTAL-02-01
+1F041 ; [*11DE.0020.0002] # DOMINO TILE HORIZONTAL-02-02
+1F042 ; [*11DF.0020.0002] # DOMINO TILE HORIZONTAL-02-03
+1F043 ; [*11E0.0020.0002] # DOMINO TILE HORIZONTAL-02-04
+1F044 ; [*11E1.0020.0002] # DOMINO TILE HORIZONTAL-02-05
+1F045 ; [*11E2.0020.0002] # DOMINO TILE HORIZONTAL-02-06
+1F046 ; [*11E3.0020.0002] # DOMINO TILE HORIZONTAL-03-00
+1F047 ; [*11E4.0020.0002] # DOMINO TILE HORIZONTAL-03-01
+1F048 ; [*11E5.0020.0002] # DOMINO TILE HORIZONTAL-03-02
+1F049 ; [*11E6.0020.0002] # DOMINO TILE HORIZONTAL-03-03
+1F04A ; [*11E7.0020.0002] # DOMINO TILE HORIZONTAL-03-04
+1F04B ; [*11E8.0020.0002] # DOMINO TILE HORIZONTAL-03-05
+1F04C ; [*11E9.0020.0002] # DOMINO TILE HORIZONTAL-03-06
+1F04D ; [*11EA.0020.0002] # DOMINO TILE HORIZONTAL-04-00
+1F04E ; [*11EB.0020.0002] # DOMINO TILE HORIZONTAL-04-01
+1F04F ; [*11EC.0020.0002] # DOMINO TILE HORIZONTAL-04-02
+1F050 ; [*11ED.0020.0002] # DOMINO TILE HORIZONTAL-04-03
+1F051 ; [*11EE.0020.0002] # DOMINO TILE HORIZONTAL-04-04
+1F052 ; [*11EF.0020.0002] # DOMINO TILE HORIZONTAL-04-05
+1F053 ; [*11F0.0020.0002] # DOMINO TILE HORIZONTAL-04-06
+1F054 ; [*11F1.0020.0002] # DOMINO TILE HORIZONTAL-05-00
+1F055 ; [*11F2.0020.0002] # DOMINO TILE HORIZONTAL-05-01
+1F056 ; [*11F3.0020.0002] # DOMINO TILE HORIZONTAL-05-02
+1F057 ; [*11F4.0020.0002] # DOMINO TILE HORIZONTAL-05-03
+1F058 ; [*11F5.0020.0002] # DOMINO TILE HORIZONTAL-05-04
+1F059 ; [*11F6.0020.0002] # DOMINO TILE HORIZONTAL-05-05
+1F05A ; [*11F7.0020.0002] # DOMINO TILE HORIZONTAL-05-06
+1F05B ; [*11F8.0020.0002] # DOMINO TILE HORIZONTAL-06-00
+1F05C ; [*11F9.0020.0002] # DOMINO TILE HORIZONTAL-06-01
+1F05D ; [*11FA.0020.0002] # DOMINO TILE HORIZONTAL-06-02
+1F05E ; [*11FB.0020.0002] # DOMINO TILE HORIZONTAL-06-03
+1F05F ; [*11FC.0020.0002] # DOMINO TILE HORIZONTAL-06-04
+1F060 ; [*11FD.0020.0002] # DOMINO TILE HORIZONTAL-06-05
+1F061 ; [*11FE.0020.0002] # DOMINO TILE HORIZONTAL-06-06
+1F062 ; [*11FF.0020.0002] # DOMINO TILE VERTICAL BACK
+1F063 ; [*1200.0020.0002] # DOMINO TILE VERTICAL-00-00
+1F064 ; [*1201.0020.0002] # DOMINO TILE VERTICAL-00-01
+1F065 ; [*1202.0020.0002] # DOMINO TILE VERTICAL-00-02
+1F066 ; [*1203.0020.0002] # DOMINO TILE VERTICAL-00-03
+1F067 ; [*1204.0020.0002] # DOMINO TILE VERTICAL-00-04
+1F068 ; [*1205.0020.0002] # DOMINO TILE VERTICAL-00-05
+1F069 ; [*1206.0020.0002] # DOMINO TILE VERTICAL-00-06
+1F06A ; [*1207.0020.0002] # DOMINO TILE VERTICAL-01-00
+1F06B ; [*1208.0020.0002] # DOMINO TILE VERTICAL-01-01
+1F06C ; [*1209.0020.0002] # DOMINO TILE VERTICAL-01-02
+1F06D ; [*120A.0020.0002] # DOMINO TILE VERTICAL-01-03
+1F06E ; [*120B.0020.0002] # DOMINO TILE VERTICAL-01-04
+1F06F ; [*120C.0020.0002] # DOMINO TILE VERTICAL-01-05
+1F070 ; [*120D.0020.0002] # DOMINO TILE VERTICAL-01-06
+1F071 ; [*120E.0020.0002] # DOMINO TILE VERTICAL-02-00
+1F072 ; [*120F.0020.0002] # DOMINO TILE VERTICAL-02-01
+1F073 ; [*1210.0020.0002] # DOMINO TILE VERTICAL-02-02
+1F074 ; [*1211.0020.0002] # DOMINO TILE VERTICAL-02-03
+1F075 ; [*1212.0020.0002] # DOMINO TILE VERTICAL-02-04
+1F076 ; [*1213.0020.0002] # DOMINO TILE VERTICAL-02-05
+1F077 ; [*1214.0020.0002] # DOMINO TILE VERTICAL-02-06
+1F078 ; [*1215.0020.0002] # DOMINO TILE VERTICAL-03-00
+1F079 ; [*1216.0020.0002] # DOMINO TILE VERTICAL-03-01
+1F07A ; [*1217.0020.0002] # DOMINO TILE VERTICAL-03-02
+1F07B ; [*1218.0020.0002] # DOMINO TILE VERTICAL-03-03
+1F07C ; [*1219.0020.0002] # DOMINO TILE VERTICAL-03-04
+1F07D ; [*121A.0020.0002] # DOMINO TILE VERTICAL-03-05
+1F07E ; [*121B.0020.0002] # DOMINO TILE VERTICAL-03-06
+1F07F ; [*121C.0020.0002] # DOMINO TILE VERTICAL-04-00
+1F080 ; [*121D.0020.0002] # DOMINO TILE VERTICAL-04-01
+1F081 ; [*121E.0020.0002] # DOMINO TILE VERTICAL-04-02
+1F082 ; [*121F.0020.0002] # DOMINO TILE VERTICAL-04-03
+1F083 ; [*1220.0020.0002] # DOMINO TILE VERTICAL-04-04
+1F084 ; [*1221.0020.0002] # DOMINO TILE VERTICAL-04-05
+1F085 ; [*1222.0020.0002] # DOMINO TILE VERTICAL-04-06
+1F086 ; [*1223.0020.0002] # DOMINO TILE VERTICAL-05-00
+1F087 ; [*1224.0020.0002] # DOMINO TILE VERTICAL-05-01
+1F088 ; [*1225.0020.0002] # DOMINO TILE VERTICAL-05-02
+1F089 ; [*1226.0020.0002] # DOMINO TILE VERTICAL-05-03
+1F08A ; [*1227.0020.0002] # DOMINO TILE VERTICAL-05-04
+1F08B ; [*1228.0020.0002] # DOMINO TILE VERTICAL-05-05
+1F08C ; [*1229.0020.0002] # DOMINO TILE VERTICAL-05-06
+1F08D ; [*122A.0020.0002] # DOMINO TILE VERTICAL-06-00
+1F08E ; [*122B.0020.0002] # DOMINO TILE VERTICAL-06-01
+1F08F ; [*122C.0020.0002] # DOMINO TILE VERTICAL-06-02
+1F090 ; [*122D.0020.0002] # DOMINO TILE VERTICAL-06-03
+1F091 ; [*122E.0020.0002] # DOMINO TILE VERTICAL-06-04
+1F092 ; [*122F.0020.0002] # DOMINO TILE VERTICAL-06-05
+1F093 ; [*1230.0020.0002] # DOMINO TILE VERTICAL-06-06
+1F0A0 ; [*1231.0020.0002] # PLAYING CARD BACK
+1F0A1 ; [*1232.0020.0002] # PLAYING CARD ACE OF SPADES
+1F0A2 ; [*1233.0020.0002] # PLAYING CARD TWO OF SPADES
+1F0A3 ; [*1234.0020.0002] # PLAYING CARD THREE OF SPADES
+1F0A4 ; [*1235.0020.0002] # PLAYING CARD FOUR OF SPADES
+1F0A5 ; [*1236.0020.0002] # PLAYING CARD FIVE OF SPADES
+1F0A6 ; [*1237.0020.0002] # PLAYING CARD SIX OF SPADES
+1F0A7 ; [*1238.0020.0002] # PLAYING CARD SEVEN OF SPADES
+1F0A8 ; [*1239.0020.0002] # PLAYING CARD EIGHT OF SPADES
+1F0A9 ; [*123A.0020.0002] # PLAYING CARD NINE OF SPADES
+1F0AA ; [*123B.0020.0002] # PLAYING CARD TEN OF SPADES
+1F0AB ; [*123C.0020.0002] # PLAYING CARD JACK OF SPADES
+1F0AC ; [*123D.0020.0002] # PLAYING CARD KNIGHT OF SPADES
+1F0AD ; [*123E.0020.0002] # PLAYING CARD QUEEN OF SPADES
+1F0AE ; [*123F.0020.0002] # PLAYING CARD KING OF SPADES
+1F0B1 ; [*1240.0020.0002] # PLAYING CARD ACE OF HEARTS
+1F0B2 ; [*1241.0020.0002] # PLAYING CARD TWO OF HEARTS
+1F0B3 ; [*1242.0020.0002] # PLAYING CARD THREE OF HEARTS
+1F0B4 ; [*1243.0020.0002] # PLAYING CARD FOUR OF HEARTS
+1F0B5 ; [*1244.0020.0002] # PLAYING CARD FIVE OF HEARTS
+1F0B6 ; [*1245.0020.0002] # PLAYING CARD SIX OF HEARTS
+1F0B7 ; [*1246.0020.0002] # PLAYING CARD SEVEN OF HEARTS
+1F0B8 ; [*1247.0020.0002] # PLAYING CARD EIGHT OF HEARTS
+1F0B9 ; [*1248.0020.0002] # PLAYING CARD NINE OF HEARTS
+1F0BA ; [*1249.0020.0002] # PLAYING CARD TEN OF HEARTS
+1F0BB ; [*124A.0020.0002] # PLAYING CARD JACK OF HEARTS
+1F0BC ; [*124B.0020.0002] # PLAYING CARD KNIGHT OF HEARTS
+1F0BD ; [*124C.0020.0002] # PLAYING CARD QUEEN OF HEARTS
+1F0BE ; [*124D.0020.0002] # PLAYING CARD KING OF HEARTS
+1F0BF ; [*124E.0020.0002] # PLAYING CARD RED JOKER
+1F0C1 ; [*124F.0020.0002] # PLAYING CARD ACE OF DIAMONDS
+1F0C2 ; [*1250.0020.0002] # PLAYING CARD TWO OF DIAMONDS
+1F0C3 ; [*1251.0020.0002] # PLAYING CARD THREE OF DIAMONDS
+1F0C4 ; [*1252.0020.0002] # PLAYING CARD FOUR OF DIAMONDS
+1F0C5 ; [*1253.0020.0002] # PLAYING CARD FIVE OF DIAMONDS
+1F0C6 ; [*1254.0020.0002] # PLAYING CARD SIX OF DIAMONDS
+1F0C7 ; [*1255.0020.0002] # PLAYING CARD SEVEN OF DIAMONDS
+1F0C8 ; [*1256.0020.0002] # PLAYING CARD EIGHT OF DIAMONDS
+1F0C9 ; [*1257.0020.0002] # PLAYING CARD NINE OF DIAMONDS
+1F0CA ; [*1258.0020.0002] # PLAYING CARD TEN OF DIAMONDS
+1F0CB ; [*1259.0020.0002] # PLAYING CARD JACK OF DIAMONDS
+1F0CC ; [*125A.0020.0002] # PLAYING CARD KNIGHT OF DIAMONDS
+1F0CD ; [*125B.0020.0002] # PLAYING CARD QUEEN OF DIAMONDS
+1F0CE ; [*125C.0020.0002] # PLAYING CARD KING OF DIAMONDS
+1F0CF ; [*125D.0020.0002] # PLAYING CARD BLACK JOKER
+1F0D1 ; [*125E.0020.0002] # PLAYING CARD ACE OF CLUBS
+1F0D2 ; [*125F.0020.0002] # PLAYING CARD TWO OF CLUBS
+1F0D3 ; [*1260.0020.0002] # PLAYING CARD THREE OF CLUBS
+1F0D4 ; [*1261.0020.0002] # PLAYING CARD FOUR OF CLUBS
+1F0D5 ; [*1262.0020.0002] # PLAYING CARD FIVE OF CLUBS
+1F0D6 ; [*1263.0020.0002] # PLAYING CARD SIX OF CLUBS
+1F0D7 ; [*1264.0020.0002] # PLAYING CARD SEVEN OF CLUBS
+1F0D8 ; [*1265.0020.0002] # PLAYING CARD EIGHT OF CLUBS
+1F0D9 ; [*1266.0020.0002] # PLAYING CARD NINE OF CLUBS
+1F0DA ; [*1267.0020.0002] # PLAYING CARD TEN OF CLUBS
+1F0DB ; [*1268.0020.0002] # PLAYING CARD JACK OF CLUBS
+1F0DC ; [*1269.0020.0002] # PLAYING CARD KNIGHT OF CLUBS
+1F0DD ; [*126A.0020.0002] # PLAYING CARD QUEEN OF CLUBS
+1F0DE ; [*126B.0020.0002] # PLAYING CARD KING OF CLUBS
+1F0DF ; [*126C.0020.0002] # PLAYING CARD WHITE JOKER
+1F0E0 ; [*126D.0020.0002] # PLAYING CARD FOOL
+1F0E1 ; [*126E.0020.0002] # PLAYING CARD TRUMP-1
+1F0E2 ; [*126F.0020.0002] # PLAYING CARD TRUMP-2
+1F0E3 ; [*1270.0020.0002] # PLAYING CARD TRUMP-3
+1F0E4 ; [*1271.0020.0002] # PLAYING CARD TRUMP-4
+1F0E5 ; [*1272.0020.0002] # PLAYING CARD TRUMP-5
+1F0E6 ; [*1273.0020.0002] # PLAYING CARD TRUMP-6
+1F0E7 ; [*1274.0020.0002] # PLAYING CARD TRUMP-7
+1F0E8 ; [*1275.0020.0002] # PLAYING CARD TRUMP-8
+1F0E9 ; [*1276.0020.0002] # PLAYING CARD TRUMP-9
+1F0EA ; [*1277.0020.0002] # PLAYING CARD TRUMP-10
+1F0EB ; [*1278.0020.0002] # PLAYING CARD TRUMP-11
+1F0EC ; [*1279.0020.0002] # PLAYING CARD TRUMP-12
+1F0ED ; [*127A.0020.0002] # PLAYING CARD TRUMP-13
+1F0EE ; [*127B.0020.0002] # PLAYING CARD TRUMP-14
+1F0EF ; [*127C.0020.0002] # PLAYING CARD TRUMP-15
+1F0F0 ; [*127D.0020.0002] # PLAYING CARD TRUMP-16
+1F0F1 ; [*127E.0020.0002] # PLAYING CARD TRUMP-17
+1F0F2 ; [*127F.0020.0002] # PLAYING CARD TRUMP-18
+1F0F3 ; [*1280.0020.0002] # PLAYING CARD TRUMP-19
+1F0F4 ; [*1281.0020.0002] # PLAYING CARD TRUMP-20
+1F0F5 ; [*1282.0020.0002] # PLAYING CARD TRUMP-21
+1F1E6 ; [*09E3.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER A
+1F1E7 ; [*09E4.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER B
+1F1E8 ; [*09E5.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER C
+1F1E9 ; [*09E6.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER D
+1F1EA ; [*09E7.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER E
+1F1EB ; [*09E8.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER F
+1F1EC ; [*09E9.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER G
+1F1ED ; [*09EA.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER H
+1F1EE ; [*09EB.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER I
+1F1EF ; [*09EC.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER J
+1F1F0 ; [*09ED.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER K
+1F1F1 ; [*09EE.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER L
+1F1F2 ; [*09EF.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER M
+1F1F3 ; [*09F0.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER N
+1F1F4 ; [*09F1.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER O
+1F1F5 ; [*09F2.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER P
+1F1F6 ; [*09F3.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Q
+1F1F7 ; [*09F4.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER R
+1F1F8 ; [*09F5.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER S
+1F1F9 ; [*09F6.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER T
+1F1FA ; [*09F7.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER U
+1F1FB ; [*09F8.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER V
+1F1FC ; [*09F9.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER W
+1F1FD ; [*09FA.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER X
+1F1FE ; [*09FB.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Y
+1F1FF ; [*09FC.0020.0002] # REGIONAL INDICATOR SYMBOL LETTER Z
+1F300 ; [*1283.0020.0002] # CYCLONE
+1F301 ; [*1284.0020.0002] # FOGGY
+1F302 ; [*1285.0020.0002] # CLOSED UMBRELLA
+1F303 ; [*1286.0020.0002] # NIGHT WITH STARS
+1F304 ; [*1287.0020.0002] # SUNRISE OVER MOUNTAINS
+1F305 ; [*1288.0020.0002] # SUNRISE
+1F306 ; [*1289.0020.0002] # CITYSCAPE AT DUSK
+1F307 ; [*128A.0020.0002] # SUNSET OVER BUILDINGS
+1F308 ; [*128B.0020.0002] # RAINBOW
+1F309 ; [*128C.0020.0002] # BRIDGE AT NIGHT
+1F30A ; [*128D.0020.0002] # WATER WAVE
+1F30B ; [*128E.0020.0002] # VOLCANO
+1F30C ; [*128F.0020.0002] # MILKY WAY
+1F30D ; [*1290.0020.0002] # EARTH GLOBE EUROPE-AFRICA
+1F30E ; [*1291.0020.0002] # EARTH GLOBE AMERICAS
+1F30F ; [*1292.0020.0002] # EARTH GLOBE ASIA-AUSTRALIA
+1F310 ; [*1293.0020.0002] # GLOBE WITH MERIDIANS
+1F311 ; [*1294.0020.0002] # NEW MOON SYMBOL
+1F312 ; [*1295.0020.0002] # WAXING CRESCENT MOON SYMBOL
+1F313 ; [*1296.0020.0002] # FIRST QUARTER MOON SYMBOL
+1F314 ; [*1297.0020.0002] # WAXING GIBBOUS MOON SYMBOL
+1F315 ; [*1298.0020.0002] # FULL MOON SYMBOL
+1F316 ; [*1299.0020.0002] # WANING GIBBOUS MOON SYMBOL
+1F317 ; [*129A.0020.0002] # LAST QUARTER MOON SYMBOL
+1F318 ; [*129B.0020.0002] # WANING CRESCENT MOON SYMBOL
+1F319 ; [*129C.0020.0002] # CRESCENT MOON
+1F31A ; [*129D.0020.0002] # NEW MOON WITH FACE
+1F31B ; [*129E.0020.0002] # FIRST QUARTER MOON WITH FACE
+1F31C ; [*129F.0020.0002] # LAST QUARTER MOON WITH FACE
+1F31D ; [*12A0.0020.0002] # FULL MOON WITH FACE
+1F31E ; [*12A1.0020.0002] # SUN WITH FACE
+1F31F ; [*12A2.0020.0002] # GLOWING STAR
+1F320 ; [*12A3.0020.0002] # SHOOTING STAR
+1F321 ; [*12A4.0020.0002] # THERMOMETER
+1F322 ; [*12A5.0020.0002] # BLACK DROPLET
+1F323 ; [*12A6.0020.0002] # WHITE SUN
+1F324 ; [*12A7.0020.0002] # WHITE SUN WITH SMALL CLOUD
+1F325 ; [*12A8.0020.0002] # WHITE SUN BEHIND CLOUD
+1F326 ; [*12A9.0020.0002] # WHITE SUN BEHIND CLOUD WITH RAIN
+1F327 ; [*12AA.0020.0002] # CLOUD WITH RAIN
+1F328 ; [*12AB.0020.0002] # CLOUD WITH SNOW
+1F329 ; [*12AC.0020.0002] # CLOUD WITH LIGHTNING
+1F32A ; [*12AD.0020.0002] # CLOUD WITH TORNADO
+1F32B ; [*12AE.0020.0002] # FOG
+1F32C ; [*12AF.0020.0002] # WIND BLOWING FACE
+1F32D ; [*12B0.0020.0002] # HOT DOG
+1F32E ; [*12B1.0020.0002] # TACO
+1F32F ; [*12B2.0020.0002] # BURRITO
+1F330 ; [*12B3.0020.0002] # CHESTNUT
+1F331 ; [*12B4.0020.0002] # SEEDLING
+1F332 ; [*12B5.0020.0002] # EVERGREEN TREE
+1F333 ; [*12B6.0020.0002] # DECIDUOUS TREE
+1F334 ; [*12B7.0020.0002] # PALM TREE
+1F335 ; [*12B8.0020.0002] # CACTUS
+1F336 ; [*12B9.0020.0002] # HOT PEPPER
+1F337 ; [*12BA.0020.0002] # TULIP
+1F338 ; [*12BB.0020.0002] # CHERRY BLOSSOM
+1F339 ; [*12BC.0020.0002] # ROSE
+1F33A ; [*12BD.0020.0002] # HIBISCUS
+1F33B ; [*12BE.0020.0002] # SUNFLOWER
+1F33C ; [*12BF.0020.0002] # BLOSSOM
+1F33D ; [*12C0.0020.0002] # EAR OF MAIZE
+1F33E ; [*12C1.0020.0002] # EAR OF RICE
+1F33F ; [*12C2.0020.0002] # HERB
+1F340 ; [*12C3.0020.0002] # FOUR LEAF CLOVER
+1F341 ; [*12C4.0020.0002] # MAPLE LEAF
+1F342 ; [*12C5.0020.0002] # FALLEN LEAF
+1F343 ; [*12C6.0020.0002] # LEAF FLUTTERING IN WIND
+1F344 ; [*12C7.0020.0002] # MUSHROOM
+1F345 ; [*12C8.0020.0002] # TOMATO
+1F346 ; [*12C9.0020.0002] # AUBERGINE
+1F347 ; [*12CA.0020.0002] # GRAPES
+1F348 ; [*12CB.0020.0002] # MELON
+1F349 ; [*12CC.0020.0002] # WATERMELON
+1F34A ; [*12CD.0020.0002] # TANGERINE
+1F34B ; [*12CE.0020.0002] # LEMON
+1F34C ; [*12CF.0020.0002] # BANANA
+1F34D ; [*12D0.0020.0002] # PINEAPPLE
+1F34E ; [*12D1.0020.0002] # RED APPLE
+1F34F ; [*12D2.0020.0002] # GREEN APPLE
+1F350 ; [*12D3.0020.0002] # PEAR
+1F351 ; [*12D4.0020.0002] # PEACH
+1F352 ; [*12D5.0020.0002] # CHERRIES
+1F353 ; [*12D6.0020.0002] # STRAWBERRY
+1F354 ; [*12D7.0020.0002] # HAMBURGER
+1F355 ; [*12D8.0020.0002] # SLICE OF PIZZA
+1F356 ; [*12D9.0020.0002] # MEAT ON BONE
+1F357 ; [*12DA.0020.0002] # POULTRY LEG
+1F358 ; [*12DB.0020.0002] # RICE CRACKER
+1F359 ; [*12DC.0020.0002] # RICE BALL
+1F35A ; [*12DD.0020.0002] # COOKED RICE
+1F35B ; [*12DE.0020.0002] # CURRY AND RICE
+1F35C ; [*12DF.0020.0002] # STEAMING BOWL
+1F35D ; [*12E0.0020.0002] # SPAGHETTI
+1F35E ; [*12E1.0020.0002] # BREAD
+1F35F ; [*12E2.0020.0002] # FRENCH FRIES
+1F360 ; [*12E3.0020.0002] # ROASTED SWEET POTATO
+1F361 ; [*12E4.0020.0002] # DANGO
+1F362 ; [*12E5.0020.0002] # ODEN
+1F363 ; [*12E6.0020.0002] # SUSHI
+1F364 ; [*12E7.0020.0002] # FRIED SHRIMP
+1F365 ; [*12E8.0020.0002] # FISH CAKE WITH SWIRL DESIGN
+1F366 ; [*12E9.0020.0002] # SOFT ICE CREAM
+1F367 ; [*12EA.0020.0002] # SHAVED ICE
+1F368 ; [*12EB.0020.0002] # ICE CREAM
+1F369 ; [*12EC.0020.0002] # DOUGHNUT
+1F36A ; [*12ED.0020.0002] # COOKIE
+1F36B ; [*12EE.0020.0002] # CHOCOLATE BAR
+1F36C ; [*12EF.0020.0002] # CANDY
+1F36D ; [*12F0.0020.0002] # LOLLIPOP
+1F36E ; [*12F1.0020.0002] # CUSTARD
+1F36F ; [*12F2.0020.0002] # HONEY POT
+1F370 ; [*12F3.0020.0002] # SHORTCAKE
+1F371 ; [*12F4.0020.0002] # BENTO BOX
+1F372 ; [*12F5.0020.0002] # POT OF FOOD
+1F373 ; [*12F6.0020.0002] # COOKING
+1F374 ; [*12F7.0020.0002] # FORK AND KNIFE
+1F375 ; [*12F8.0020.0002] # TEACUP WITHOUT HANDLE
+1F376 ; [*12F9.0020.0002] # SAKE BOTTLE AND CUP
+1F377 ; [*12FA.0020.0002] # WINE GLASS
+1F378 ; [*12FB.0020.0002] # COCKTAIL GLASS
+1F379 ; [*12FC.0020.0002] # TROPICAL DRINK
+1F37A ; [*12FD.0020.0002] # BEER MUG
+1F37B ; [*12FE.0020.0002] # CLINKING BEER MUGS
+1F37C ; [*12FF.0020.0002] # BABY BOTTLE
+1F37D ; [*1300.0020.0002] # FORK AND KNIFE WITH PLATE
+1F37E ; [*1301.0020.0002] # BOTTLE WITH POPPING CORK
+1F37F ; [*1302.0020.0002] # POPCORN
+1F380 ; [*1303.0020.0002] # RIBBON
+1F381 ; [*1304.0020.0002] # WRAPPED PRESENT
+1F382 ; [*1305.0020.0002] # BIRTHDAY CAKE
+1F383 ; [*1306.0020.0002] # JACK-O-LANTERN
+1F384 ; [*1307.0020.0002] # CHRISTMAS TREE
+1F385 ; [*1308.0020.0002] # FATHER CHRISTMAS
+1F386 ; [*1309.0020.0002] # FIREWORKS
+1F387 ; [*130A.0020.0002] # FIREWORK SPARKLER
+1F388 ; [*130B.0020.0002] # BALLOON
+1F389 ; [*130C.0020.0002] # PARTY POPPER
+1F38A ; [*130D.0020.0002] # CONFETTI BALL
+1F38B ; [*130E.0020.0002] # TANABATA TREE
+1F38C ; [*130F.0020.0002] # CROSSED FLAGS
+1F38D ; [*1310.0020.0002] # PINE DECORATION
+1F38E ; [*1311.0020.0002] # JAPANESE DOLLS
+1F38F ; [*1312.0020.0002] # CARP STREAMER
+1F390 ; [*1313.0020.0002] # WIND CHIME
+1F391 ; [*1314.0020.0002] # MOON VIEWING CEREMONY
+1F392 ; [*1315.0020.0002] # SCHOOL SATCHEL
+1F393 ; [*1316.0020.0002] # GRADUATION CAP
+1F394 ; [*1317.0020.0002] # HEART WITH TIP ON THE LEFT
+1F395 ; [*1318.0020.0002] # BOUQUET OF FLOWERS
+1F396 ; [*1319.0020.0002] # MILITARY MEDAL
+1F397 ; [*131A.0020.0002] # REMINDER RIBBON
+1F398 ; [*131B.0020.0002] # MUSICAL KEYBOARD WITH JACKS
+1F399 ; [*131C.0020.0002] # STUDIO MICROPHONE
+1F39A ; [*131D.0020.0002] # LEVEL SLIDER
+1F39B ; [*131E.0020.0002] # CONTROL KNOBS
+1F39C ; [*131F.0020.0002] # BEAMED ASCENDING MUSICAL NOTES
+1F39D ; [*1320.0020.0002] # BEAMED DESCENDING MUSICAL NOTES
+1F39E ; [*1321.0020.0002] # FILM FRAMES
+1F39F ; [*1322.0020.0002] # ADMISSION TICKETS
+1F3A0 ; [*1323.0020.0002] # CAROUSEL HORSE
+1F3A1 ; [*1324.0020.0002] # FERRIS WHEEL
+1F3A2 ; [*1325.0020.0002] # ROLLER COASTER
+1F3A3 ; [*1326.0020.0002] # FISHING POLE AND FISH
+1F3A4 ; [*1327.0020.0002] # MICROPHONE
+1F3A5 ; [*1328.0020.0002] # MOVIE CAMERA
+1F3A6 ; [*1329.0020.0002] # CINEMA
+1F3A7 ; [*132A.0020.0002] # HEADPHONE
+1F3A8 ; [*132B.0020.0002] # ARTIST PALETTE
+1F3A9 ; [*132C.0020.0002] # TOP HAT
+1F3AA ; [*132D.0020.0002] # CIRCUS TENT
+1F3AB ; [*132E.0020.0002] # TICKET
+1F3AC ; [*132F.0020.0002] # CLAPPER BOARD
+1F3AD ; [*1330.0020.0002] # PERFORMING ARTS
+1F3AE ; [*1331.0020.0002] # VIDEO GAME
+1F3AF ; [*1332.0020.0002] # DIRECT HIT
+1F3B0 ; [*1333.0020.0002] # SLOT MACHINE
+1F3B1 ; [*1334.0020.0002] # BILLIARDS
+1F3B2 ; [*1335.0020.0002] # GAME DIE
+1F3B3 ; [*1336.0020.0002] # BOWLING
+1F3B4 ; [*1337.0020.0002] # FLOWER PLAYING CARDS
+1F3B5 ; [*1338.0020.0002] # MUSICAL NOTE
+1F3B6 ; [*1339.0020.0002] # MULTIPLE MUSICAL NOTES
+1F3B7 ; [*133A.0020.0002] # SAXOPHONE
+1F3B8 ; [*133B.0020.0002] # GUITAR
+1F3B9 ; [*133C.0020.0002] # MUSICAL KEYBOARD
+1F3BA ; [*133D.0020.0002] # TRUMPET
+1F3BB ; [*133E.0020.0002] # VIOLIN
+1F3BC ; [*133F.0020.0002] # MUSICAL SCORE
+1F3BD ; [*1340.0020.0002] # RUNNING SHIRT WITH SASH
+1F3BE ; [*1341.0020.0002] # TENNIS RACQUET AND BALL
+1F3BF ; [*1342.0020.0002] # SKI AND SKI BOOT
+1F3C0 ; [*1343.0020.0002] # BASKETBALL AND HOOP
+1F3C1 ; [*1344.0020.0002] # CHEQUERED FLAG
+1F3C2 ; [*1345.0020.0002] # SNOWBOARDER
+1F3C3 ; [*1346.0020.0002] # RUNNER
+1F3C4 ; [*1347.0020.0002] # SURFER
+1F3C5 ; [*1348.0020.0002] # SPORTS MEDAL
+1F3C6 ; [*1349.0020.0002] # TROPHY
+1F3C7 ; [*134A.0020.0002] # HORSE RACING
+1F3C8 ; [*134B.0020.0002] # AMERICAN FOOTBALL
+1F3C9 ; [*134C.0020.0002] # RUGBY FOOTBALL
+1F3CA ; [*134D.0020.0002] # SWIMMER
+1F3CB ; [*134E.0020.0002] # WEIGHT LIFTER
+1F3CC ; [*134F.0020.0002] # GOLFER
+1F3CD ; [*1350.0020.0002] # RACING MOTORCYCLE
+1F3CE ; [*1351.0020.0002] # RACING CAR
+1F3CF ; [*1352.0020.0002] # CRICKET BAT AND BALL
+1F3D0 ; [*1353.0020.0002] # VOLLEYBALL
+1F3D1 ; [*1354.0020.0002] # FIELD HOCKEY STICK AND BALL
+1F3D2 ; [*1355.0020.0002] # ICE HOCKEY STICK AND PUCK
+1F3D3 ; [*1356.0020.0002] # TABLE TENNIS PADDLE AND BALL
+1F3D4 ; [*1357.0020.0002] # SNOW CAPPED MOUNTAIN
+1F3D5 ; [*1358.0020.0002] # CAMPING
+1F3D6 ; [*1359.0020.0002] # BEACH WITH UMBRELLA
+1F3D7 ; [*135A.0020.0002] # BUILDING CONSTRUCTION
+1F3D8 ; [*135B.0020.0002] # HOUSE BUILDINGS
+1F3D9 ; [*135C.0020.0002] # CITYSCAPE
+1F3DA ; [*135D.0020.0002] # DERELICT HOUSE BUILDING
+1F3DB ; [*135E.0020.0002] # CLASSICAL BUILDING
+1F3DC ; [*135F.0020.0002] # DESERT
+1F3DD ; [*1360.0020.0002] # DESERT ISLAND
+1F3DE ; [*1361.0020.0002] # NATIONAL PARK
+1F3DF ; [*1362.0020.0002] # STADIUM
+1F3E0 ; [*1363.0020.0002] # HOUSE BUILDING
+1F3E1 ; [*1364.0020.0002] # HOUSE WITH GARDEN
+1F3E2 ; [*1365.0020.0002] # OFFICE BUILDING
+1F3E3 ; [*1366.0020.0002] # JAPANESE POST OFFICE
+1F3E4 ; [*1367.0020.0002] # EUROPEAN POST OFFICE
+1F3E5 ; [*1368.0020.0002] # HOSPITAL
+1F3E6 ; [*1369.0020.0002] # BANK
+1F3E7 ; [*136A.0020.0002] # AUTOMATED TELLER MACHINE
+1F3E8 ; [*136B.0020.0002] # HOTEL
+1F3E9 ; [*136C.0020.0002] # LOVE HOTEL
+1F3EA ; [*136D.0020.0002] # CONVENIENCE STORE
+1F3EB ; [*136E.0020.0002] # SCHOOL
+1F3EC ; [*136F.0020.0002] # DEPARTMENT STORE
+1F3ED ; [*1370.0020.0002] # FACTORY
+1F3EE ; [*1371.0020.0002] # IZAKAYA LANTERN
+1F3EF ; [*1372.0020.0002] # JAPANESE CASTLE
+1F3F0 ; [*1373.0020.0002] # EUROPEAN CASTLE
+1F3F1 ; [*1374.0020.0002] # WHITE PENNANT
+1F3F2 ; [*1375.0020.0002] # BLACK PENNANT
+1F3F3 ; [*1376.0020.0002] # WAVING WHITE FLAG
+1F3F4 ; [*1377.0020.0002] # WAVING BLACK FLAG
+1F3F5 ; [*1378.0020.0002] # ROSETTE
+1F3F6 ; [*1379.0020.0002] # BLACK ROSETTE
+1F3F7 ; [*137A.0020.0002] # LABEL
+1F3F8 ; [*137B.0020.0002] # BADMINTON RACQUET AND SHUTTLECOCK
+1F3F9 ; [*137C.0020.0002] # BOW AND ARROW
+1F3FA ; [*137D.0020.0002] # AMPHORA
+1F3FB ; [*137E.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-1-2
+1F3FC ; [*137F.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-3
+1F3FD ; [*1380.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-4
+1F3FE ; [*1381.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-5
+1F3FF ; [*1382.0020.0002] # EMOJI MODIFIER FITZPATRICK TYPE-6
+1F400 ; [*1383.0020.0002] # RAT
+1F401 ; [*1384.0020.0002] # MOUSE
+1F402 ; [*1385.0020.0002] # OX
+1F403 ; [*1386.0020.0002] # WATER BUFFALO
+1F404 ; [*1387.0020.0002] # COW
+1F405 ; [*1388.0020.0002] # TIGER
+1F406 ; [*1389.0020.0002] # LEOPARD
+1F407 ; [*138A.0020.0002] # RABBIT
+1F408 ; [*138B.0020.0002] # CAT
+1F409 ; [*138C.0020.0002] # DRAGON
+1F40A ; [*138D.0020.0002] # CROCODILE
+1F40B ; [*138E.0020.0002] # WHALE
+1F40C ; [*138F.0020.0002] # SNAIL
+1F40D ; [*1390.0020.0002] # SNAKE
+1F40E ; [*1391.0020.0002] # HORSE
+1F40F ; [*1392.0020.0002] # RAM
+1F410 ; [*1393.0020.0002] # GOAT
+1F411 ; [*1394.0020.0002] # SHEEP
+1F412 ; [*1395.0020.0002] # MONKEY
+1F413 ; [*1396.0020.0002] # ROOSTER
+1F414 ; [*1397.0020.0002] # CHICKEN
+1F415 ; [*1398.0020.0002] # DOG
+1F416 ; [*1399.0020.0002] # PIG
+1F417 ; [*139A.0020.0002] # BOAR
+1F418 ; [*139B.0020.0002] # ELEPHANT
+1F419 ; [*139C.0020.0002] # OCTOPUS
+1F41A ; [*139D.0020.0002] # SPIRAL SHELL
+1F41B ; [*139E.0020.0002] # BUG
+1F41C ; [*139F.0020.0002] # ANT
+1F41D ; [*13A0.0020.0002] # HONEYBEE
+1F41E ; [*13A1.0020.0002] # LADY BEETLE
+1F41F ; [*13A2.0020.0002] # FISH
+1F420 ; [*13A3.0020.0002] # TROPICAL FISH
+1F421 ; [*13A4.0020.0002] # BLOWFISH
+1F422 ; [*13A5.0020.0002] # TURTLE
+1F423 ; [*13A6.0020.0002] # HATCHING CHICK
+1F424 ; [*13A7.0020.0002] # BABY CHICK
+1F425 ; [*13A8.0020.0002] # FRONT-FACING BABY CHICK
+1F426 ; [*13A9.0020.0002] # BIRD
+1F427 ; [*13AA.0020.0002] # PENGUIN
+1F428 ; [*13AB.0020.0002] # KOALA
+1F429 ; [*13AC.0020.0002] # POODLE
+1F42A ; [*13AD.0020.0002] # DROMEDARY CAMEL
+1F42B ; [*13AE.0020.0002] # BACTRIAN CAMEL
+1F42C ; [*13AF.0020.0002] # DOLPHIN
+1F42D ; [*13B0.0020.0002] # MOUSE FACE
+1F42E ; [*13B1.0020.0002] # COW FACE
+1F42F ; [*13B2.0020.0002] # TIGER FACE
+1F430 ; [*13B3.0020.0002] # RABBIT FACE
+1F431 ; [*13B4.0020.0002] # CAT FACE
+1F432 ; [*13B5.0020.0002] # DRAGON FACE
+1F433 ; [*13B6.0020.0002] # SPOUTING WHALE
+1F434 ; [*13B7.0020.0002] # HORSE FACE
+1F435 ; [*13B8.0020.0002] # MONKEY FACE
+1F436 ; [*13B9.0020.0002] # DOG FACE
+1F437 ; [*13BA.0020.0002] # PIG FACE
+1F438 ; [*13BB.0020.0002] # FROG FACE
+1F439 ; [*13BC.0020.0002] # HAMSTER FACE
+1F43A ; [*13BD.0020.0002] # WOLF FACE
+1F43B ; [*13BE.0020.0002] # BEAR FACE
+1F43C ; [*13BF.0020.0002] # PANDA FACE
+1F43D ; [*13C0.0020.0002] # PIG NOSE
+1F43E ; [*13C1.0020.0002] # PAW PRINTS
+1F43F ; [*13C2.0020.0002] # CHIPMUNK
+1F440 ; [*13C3.0020.0002] # EYES
+1F441 ; [*13C4.0020.0002] # EYE
+1F442 ; [*13C5.0020.0002] # EAR
+1F443 ; [*13C6.0020.0002] # NOSE
+1F444 ; [*13C7.0020.0002] # MOUTH
+1F445 ; [*13C8.0020.0002] # TONGUE
+1F446 ; [*13C9.0020.0002] # WHITE UP POINTING BACKHAND INDEX
+1F447 ; [*13CA.0020.0002] # WHITE DOWN POINTING BACKHAND INDEX
+1F448 ; [*13CB.0020.0002] # WHITE LEFT POINTING BACKHAND INDEX
+1F449 ; [*13CC.0020.0002] # WHITE RIGHT POINTING BACKHAND INDEX
+1F44A ; [*13CD.0020.0002] # FISTED HAND SIGN
+1F44B ; [*13CE.0020.0002] # WAVING HAND SIGN
+1F44C ; [*13CF.0020.0002] # OK HAND SIGN
+1F44D ; [*13D0.0020.0002] # THUMBS UP SIGN
+1F44E ; [*13D1.0020.0002] # THUMBS DOWN SIGN
+1F44F ; [*13D2.0020.0002] # CLAPPING HANDS SIGN
+1F450 ; [*13D3.0020.0002] # OPEN HANDS SIGN
+1F451 ; [*13D4.0020.0002] # CROWN
+1F452 ; [*13D5.0020.0002] # WOMANS HAT
+1F453 ; [*13D6.0020.0002] # EYEGLASSES
+1F454 ; [*13D7.0020.0002] # NECKTIE
+1F455 ; [*13D8.0020.0002] # T-SHIRT
+1F456 ; [*13D9.0020.0002] # JEANS
+1F457 ; [*13DA.0020.0002] # DRESS
+1F458 ; [*13DB.0020.0002] # KIMONO
+1F459 ; [*13DC.0020.0002] # BIKINI
+1F45A ; [*13DD.0020.0002] # WOMANS CLOTHES
+1F45B ; [*13DE.0020.0002] # PURSE
+1F45C ; [*13DF.0020.0002] # HANDBAG
+1F45D ; [*13E0.0020.0002] # POUCH
+1F45E ; [*13E1.0020.0002] # MANS SHOE
+1F45F ; [*13E2.0020.0002] # ATHLETIC SHOE
+1F460 ; [*13E3.0020.0002] # HIGH-HEELED SHOE
+1F461 ; [*13E4.0020.0002] # WOMANS SANDAL
+1F462 ; [*13E5.0020.0002] # WOMANS BOOTS
+1F463 ; [*13E6.0020.0002] # FOOTPRINTS
+1F464 ; [*13E7.0020.0002] # BUST IN SILHOUETTE
+1F465 ; [*13E8.0020.0002] # BUSTS IN SILHOUETTE
+1F466 ; [*13E9.0020.0002] # BOY
+1F467 ; [*13EA.0020.0002] # GIRL
+1F468 ; [*13EB.0020.0002] # MAN
+1F469 ; [*13EC.0020.0002] # WOMAN
+1F46A ; [*13ED.0020.0002] # FAMILY
+1F46B ; [*13EE.0020.0002] # MAN AND WOMAN HOLDING HANDS
+1F46C ; [*13EF.0020.0002] # TWO MEN HOLDING HANDS
+1F46D ; [*13F0.0020.0002] # TWO WOMEN HOLDING HANDS
+1F46E ; [*13F1.0020.0002] # POLICE OFFICER
+1F46F ; [*13F2.0020.0002] # WOMAN WITH BUNNY EARS
+1F470 ; [*13F3.0020.0002] # BRIDE WITH VEIL
+1F471 ; [*13F4.0020.0002] # PERSON WITH BLOND HAIR
+1F472 ; [*13F5.0020.0002] # MAN WITH GUA PI MAO
+1F473 ; [*13F6.0020.0002] # MAN WITH TURBAN
+1F474 ; [*13F7.0020.0002] # OLDER MAN
+1F475 ; [*13F8.0020.0002] # OLDER WOMAN
+1F476 ; [*13F9.0020.0002] # BABY
+1F477 ; [*13FA.0020.0002] # CONSTRUCTION WORKER
+1F478 ; [*13FB.0020.0002] # PRINCESS
+1F479 ; [*13FC.0020.0002] # JAPANESE OGRE
+1F47A ; [*13FD.0020.0002] # JAPANESE GOBLIN
+1F47B ; [*13FE.0020.0002] # GHOST
+1F47C ; [*13FF.0020.0002] # BABY ANGEL
+1F47D ; [*1400.0020.0002] # EXTRATERRESTRIAL ALIEN
+1F47E ; [*1401.0020.0002] # ALIEN MONSTER
+1F47F ; [*1402.0020.0002] # IMP
+1F480 ; [*1403.0020.0002] # SKULL
+1F481 ; [*1404.0020.0002] # INFORMATION DESK PERSON
+1F482 ; [*1405.0020.0002] # GUARDSMAN
+1F483 ; [*1406.0020.0002] # DANCER
+1F484 ; [*1407.0020.0002] # LIPSTICK
+1F485 ; [*1408.0020.0002] # NAIL POLISH
+1F486 ; [*1409.0020.0002] # FACE MASSAGE
+1F487 ; [*140A.0020.0002] # HAIRCUT
+1F488 ; [*140B.0020.0002] # BARBER POLE
+1F489 ; [*140C.0020.0002] # SYRINGE
+1F48A ; [*140D.0020.0002] # PILL
+1F48B ; [*140E.0020.0002] # KISS MARK
+1F48C ; [*140F.0020.0002] # LOVE LETTER
+1F48D ; [*1410.0020.0002] # RING
+1F48E ; [*1411.0020.0002] # GEM STONE
+1F48F ; [*1412.0020.0002] # KISS
+1F490 ; [*1413.0020.0002] # BOUQUET
+1F491 ; [*1414.0020.0002] # COUPLE WITH HEART
+1F492 ; [*1415.0020.0002] # WEDDING
+1F493 ; [*1416.0020.0002] # BEATING HEART
+1F494 ; [*1417.0020.0002] # BROKEN HEART
+1F495 ; [*1418.0020.0002] # TWO HEARTS
+1F496 ; [*1419.0020.0002] # SPARKLING HEART
+1F497 ; [*141A.0020.0002] # GROWING HEART
+1F498 ; [*141B.0020.0002] # HEART WITH ARROW
+1F499 ; [*141C.0020.0002] # BLUE HEART
+1F49A ; [*141D.0020.0002] # GREEN HEART
+1F49B ; [*141E.0020.0002] # YELLOW HEART
+1F49C ; [*141F.0020.0002] # PURPLE HEART
+1F49D ; [*1420.0020.0002] # HEART WITH RIBBON
+1F49E ; [*1421.0020.0002] # REVOLVING HEARTS
+1F49F ; [*1422.0020.0002] # HEART DECORATION
+1F4A0 ; [*1423.0020.0002] # DIAMOND SHAPE WITH A DOT INSIDE
+1F4A1 ; [*1424.0020.0002] # ELECTRIC LIGHT BULB
+1F4A2 ; [*1425.0020.0002] # ANGER SYMBOL
+1F4A3 ; [*1426.0020.0002] # BOMB
+1F4A4 ; [*1427.0020.0002] # SLEEPING SYMBOL
+1F4A5 ; [*1428.0020.0002] # COLLISION SYMBOL
+1F4A6 ; [*1429.0020.0002] # SPLASHING SWEAT SYMBOL
+1F4A7 ; [*142A.0020.0002] # DROPLET
+1F4A8 ; [*142B.0020.0002] # DASH SYMBOL
+1F4A9 ; [*142C.0020.0002] # PILE OF POO
+1F4AA ; [*142D.0020.0002] # FLEXED BICEPS
+1F4AB ; [*142E.0020.0002] # DIZZY SYMBOL
+1F4AC ; [*142F.0020.0002] # SPEECH BALLOON
+1F4AD ; [*1430.0020.0002] # THOUGHT BALLOON
+1F4AE ; [*1431.0020.0002] # WHITE FLOWER
+1F4AF ; [*1432.0020.0002] # HUNDRED POINTS SYMBOL
+1F4B0 ; [*1433.0020.0002] # MONEY BAG
+1F4B1 ; [*1434.0020.0002] # CURRENCY EXCHANGE
+1F4B2 ; [*1435.0020.0002] # HEAVY DOLLAR SIGN
+1F4B3 ; [*1436.0020.0002] # CREDIT CARD
+1F4B4 ; [*1437.0020.0002] # BANKNOTE WITH YEN SIGN
+1F4B5 ; [*1438.0020.0002] # BANKNOTE WITH DOLLAR SIGN
+1F4B6 ; [*1439.0020.0002] # BANKNOTE WITH EURO SIGN
+1F4B7 ; [*143A.0020.0002] # BANKNOTE WITH POUND SIGN
+1F4B8 ; [*143B.0020.0002] # MONEY WITH WINGS
+1F4B9 ; [*143C.0020.0002] # CHART WITH UPWARDS TREND AND YEN SIGN
+1F4BA ; [*143D.0020.0002] # SEAT
+1F4BB ; [*143E.0020.0002] # PERSONAL COMPUTER
+1F4BC ; [*143F.0020.0002] # BRIEFCASE
+1F4BD ; [*1440.0020.0002] # MINIDISC
+1F4BE ; [*1441.0020.0002] # FLOPPY DISK
+1F4BF ; [*1442.0020.0002] # OPTICAL DISC
+1F4C0 ; [*1443.0020.0002] # DVD
+1F4C1 ; [*1444.0020.0002] # FILE FOLDER
+1F4C2 ; [*1445.0020.0002] # OPEN FILE FOLDER
+1F4C3 ; [*1446.0020.0002] # PAGE WITH CURL
+1F4C4 ; [*1447.0020.0002] # PAGE FACING UP
+1F4C5 ; [*1448.0020.0002] # CALENDAR
+1F4C6 ; [*1449.0020.0002] # TEAR-OFF CALENDAR
+1F4C7 ; [*144A.0020.0002] # CARD INDEX
+1F4C8 ; [*144B.0020.0002] # CHART WITH UPWARDS TREND
+1F4C9 ; [*144C.0020.0002] # CHART WITH DOWNWARDS TREND
+1F4CA ; [*144D.0020.0002] # BAR CHART
+1F4CB ; [*144E.0020.0002] # CLIPBOARD
+1F4CC ; [*144F.0020.0002] # PUSHPIN
+1F4CD ; [*1450.0020.0002] # ROUND PUSHPIN
+1F4CE ; [*1451.0020.0002] # PAPERCLIP
+1F4CF ; [*1452.0020.0002] # STRAIGHT RULER
+1F4D0 ; [*1453.0020.0002] # TRIANGULAR RULER
+1F4D1 ; [*1454.0020.0002] # BOOKMARK TABS
+1F4D2 ; [*1455.0020.0002] # LEDGER
+1F4D3 ; [*1456.0020.0002] # NOTEBOOK
+1F4D4 ; [*1457.0020.0002] # NOTEBOOK WITH DECORATIVE COVER
+1F4D5 ; [*1458.0020.0002] # CLOSED BOOK
+1F4D6 ; [*1459.0020.0002] # OPEN BOOK
+1F4D7 ; [*145A.0020.0002] # GREEN BOOK
+1F4D8 ; [*145B.0020.0002] # BLUE BOOK
+1F4D9 ; [*145C.0020.0002] # ORANGE BOOK
+1F4DA ; [*145D.0020.0002] # BOOKS
+1F4DB ; [*145E.0020.0002] # NAME BADGE
+1F4DC ; [*145F.0020.0002] # SCROLL
+1F4DD ; [*1460.0020.0002] # MEMO
+1F4DE ; [*1461.0020.0002] # TELEPHONE RECEIVER
+1F4DF ; [*1462.0020.0002] # PAGER
+1F4E0 ; [*1463.0020.0002] # FAX MACHINE
+1F4E1 ; [*1464.0020.0002] # SATELLITE ANTENNA
+1F4E2 ; [*1465.0020.0002] # PUBLIC ADDRESS LOUDSPEAKER
+1F4E3 ; [*1466.0020.0002] # CHEERING MEGAPHONE
+1F4E4 ; [*1467.0020.0002] # OUTBOX TRAY
+1F4E5 ; [*1468.0020.0002] # INBOX TRAY
+1F4E6 ; [*1469.0020.0002] # PACKAGE
+1F4E7 ; [*146A.0020.0002] # E-MAIL SYMBOL
+1F4E8 ; [*146B.0020.0002] # INCOMING ENVELOPE
+1F4E9 ; [*146C.0020.0002] # ENVELOPE WITH DOWNWARDS ARROW ABOVE
+1F4EA ; [*146D.0020.0002] # CLOSED MAILBOX WITH LOWERED FLAG
+1F4EB ; [*146E.0020.0002] # CLOSED MAILBOX WITH RAISED FLAG
+1F4EC ; [*146F.0020.0002] # OPEN MAILBOX WITH RAISED FLAG
+1F4ED ; [*1470.0020.0002] # OPEN MAILBOX WITH LOWERED FLAG
+1F4EE ; [*1471.0020.0002] # POSTBOX
+1F4EF ; [*1472.0020.0002] # POSTAL HORN
+1F4F0 ; [*1473.0020.0002] # NEWSPAPER
+1F4F1 ; [*1474.0020.0002] # MOBILE PHONE
+1F4F2 ; [*1475.0020.0002] # MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
+1F4F3 ; [*1476.0020.0002] # VIBRATION MODE
+1F4F4 ; [*1477.0020.0002] # MOBILE PHONE OFF
+1F4F5 ; [*1478.0020.0002] # NO MOBILE PHONES
+1F4F6 ; [*1479.0020.0002] # ANTENNA WITH BARS
+1F4F7 ; [*147A.0020.0002] # CAMERA
+1F4F8 ; [*147B.0020.0002] # CAMERA WITH FLASH
+1F4F9 ; [*147C.0020.0002] # VIDEO CAMERA
+1F4FA ; [*147D.0020.0002] # TELEVISION
+1F4FB ; [*147E.0020.0002] # RADIO
+1F4FC ; [*147F.0020.0002] # VIDEOCASSETTE
+1F4FD ; [*1480.0020.0002] # FILM PROJECTOR
+1F4FE ; [*1481.0020.0002] # PORTABLE STEREO
+1F4FF ; [*1482.0020.0002] # PRAYER BEADS
+1F500 ; [*1483.0020.0002] # TWISTED RIGHTWARDS ARROWS
+1F501 ; [*1484.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
+1F502 ; [*1485.0020.0002] # CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
+1F503 ; [*1486.0020.0002] # CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+1F504 ; [*1487.0020.0002] # ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
+1F505 ; [*1488.0020.0002] # LOW BRIGHTNESS SYMBOL
+1F506 ; [*1489.0020.0002] # HIGH BRIGHTNESS SYMBOL
+1F507 ; [*148A.0020.0002] # SPEAKER WITH CANCELLATION STROKE
+1F508 ; [*148B.0020.0002] # SPEAKER
+1F509 ; [*148C.0020.0002] # SPEAKER WITH ONE SOUND WAVE
+1F50A ; [*148D.0020.0002] # SPEAKER WITH THREE SOUND WAVES
+1F50B ; [*148E.0020.0002] # BATTERY
+1F50C ; [*148F.0020.0002] # ELECTRIC PLUG
+1F50D ; [*1490.0020.0002] # LEFT-POINTING MAGNIFYING GLASS
+1F50E ; [*1491.0020.0002] # RIGHT-POINTING MAGNIFYING GLASS
+1F50F ; [*1492.0020.0002] # LOCK WITH INK PEN
+1F510 ; [*1493.0020.0002] # CLOSED LOCK WITH KEY
+1F511 ; [*1494.0020.0002] # KEY
+1F512 ; [*1495.0020.0002] # LOCK
+1F513 ; [*1496.0020.0002] # OPEN LOCK
+1F514 ; [*1497.0020.0002] # BELL
+1F515 ; [*1498.0020.0002] # BELL WITH CANCELLATION STROKE
+1F516 ; [*1499.0020.0002] # BOOKMARK
+1F517 ; [*149A.0020.0002] # LINK SYMBOL
+1F518 ; [*149B.0020.0002] # RADIO BUTTON
+1F519 ; [*149C.0020.0002] # BACK WITH LEFTWARDS ARROW ABOVE
+1F51A ; [*149D.0020.0002] # END WITH LEFTWARDS ARROW ABOVE
+1F51B ; [*149E.0020.0002] # ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
+1F51C ; [*149F.0020.0002] # SOON WITH RIGHTWARDS ARROW ABOVE
+1F51D ; [*14A0.0020.0002] # TOP WITH UPWARDS ARROW ABOVE
+1F51E ; [*14A1.0020.0002] # NO ONE UNDER EIGHTEEN SYMBOL
+1F51F ; [*14A2.0020.0002] # KEYCAP TEN
+1F520 ; [*14A3.0020.0002] # INPUT SYMBOL FOR LATIN CAPITAL LETTERS
+1F521 ; [*14A4.0020.0002] # INPUT SYMBOL FOR LATIN SMALL LETTERS
+1F522 ; [*14A5.0020.0002] # INPUT SYMBOL FOR NUMBERS
+1F523 ; [*14A6.0020.0002] # INPUT SYMBOL FOR SYMBOLS
+1F524 ; [*14A7.0020.0002] # INPUT SYMBOL FOR LATIN LETTERS
+1F525 ; [*14A8.0020.0002] # FIRE
+1F526 ; [*14A9.0020.0002] # ELECTRIC TORCH
+1F527 ; [*14AA.0020.0002] # WRENCH
+1F528 ; [*14AB.0020.0002] # HAMMER
+1F529 ; [*14AC.0020.0002] # NUT AND BOLT
+1F52A ; [*14AD.0020.0002] # HOCHO
+1F52B ; [*14AE.0020.0002] # PISTOL
+1F52C ; [*14AF.0020.0002] # MICROSCOPE
+1F52D ; [*14B0.0020.0002] # TELESCOPE
+1F52E ; [*14B1.0020.0002] # CRYSTAL BALL
+1F52F ; [*14B2.0020.0002] # SIX POINTED STAR WITH MIDDLE DOT
+1F530 ; [*14B3.0020.0002] # JAPANESE SYMBOL FOR BEGINNER
+1F531 ; [*14B4.0020.0002] # TRIDENT EMBLEM
+1F532 ; [*14B5.0020.0002] # BLACK SQUARE BUTTON
+1F533 ; [*14B6.0020.0002] # WHITE SQUARE BUTTON
+1F534 ; [*14B7.0020.0002] # LARGE RED CIRCLE
+1F535 ; [*14B8.0020.0002] # LARGE BLUE CIRCLE
+1F536 ; [*14B9.0020.0002] # LARGE ORANGE DIAMOND
+1F537 ; [*14BA.0020.0002] # LARGE BLUE DIAMOND
+1F538 ; [*14BB.0020.0002] # SMALL ORANGE DIAMOND
+1F539 ; [*14BC.0020.0002] # SMALL BLUE DIAMOND
+1F53A ; [*14BD.0020.0002] # UP-POINTING RED TRIANGLE
+1F53B ; [*14BE.0020.0002] # DOWN-POINTING RED TRIANGLE
+1F53C ; [*14BF.0020.0002] # UP-POINTING SMALL RED TRIANGLE
+1F53D ; [*14C0.0020.0002] # DOWN-POINTING SMALL RED TRIANGLE
+1F53E ; [*14C1.0020.0002] # LOWER RIGHT SHADOWED WHITE CIRCLE
+1F53F ; [*14C2.0020.0002] # UPPER RIGHT SHADOWED WHITE CIRCLE
+1F540 ; [*14C3.0020.0002] # CIRCLED CROSS POMMEE
+1F541 ; [*14C4.0020.0002] # CROSS POMMEE WITH HALF-CIRCLE BELOW
+1F542 ; [*14C5.0020.0002] # CROSS POMMEE
+1F543 ; [*14C6.0020.0002] # NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
+1F544 ; [*14C7.0020.0002] # NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS
+1F545 ; [*14C8.0020.0002] # SYMBOL FOR MARKS CHAPTER
+1F546 ; [*14C9.0020.0002] # WHITE LATIN CROSS
+1F547 ; [*14CA.0020.0002] # HEAVY LATIN CROSS
+1F548 ; [*14CB.0020.0002] # CELTIC CROSS
+1F549 ; [*14CC.0020.0002] # OM SYMBOL
+1F54A ; [*14CD.0020.0002] # DOVE OF PEACE
+1F54B ; [*14CE.0020.0002] # KAABA
+1F54C ; [*14CF.0020.0002] # MOSQUE
+1F54D ; [*14D0.0020.0002] # SYNAGOGUE
+1F54E ; [*14D1.0020.0002] # MENORAH WITH NINE BRANCHES
+1F54F ; [*14D2.0020.0002] # BOWL OF HYGIEIA
+1F550 ; [*14D3.0020.0002] # CLOCK FACE ONE OCLOCK
+1F551 ; [*14D4.0020.0002] # CLOCK FACE TWO OCLOCK
+1F552 ; [*14D5.0020.0002] # CLOCK FACE THREE OCLOCK
+1F553 ; [*14D6.0020.0002] # CLOCK FACE FOUR OCLOCK
+1F554 ; [*14D7.0020.0002] # CLOCK FACE FIVE OCLOCK
+1F555 ; [*14D8.0020.0002] # CLOCK FACE SIX OCLOCK
+1F556 ; [*14D9.0020.0002] # CLOCK FACE SEVEN OCLOCK
+1F557 ; [*14DA.0020.0002] # CLOCK FACE EIGHT OCLOCK
+1F558 ; [*14DB.0020.0002] # CLOCK FACE NINE OCLOCK
+1F559 ; [*14DC.0020.0002] # CLOCK FACE TEN OCLOCK
+1F55A ; [*14DD.0020.0002] # CLOCK FACE ELEVEN OCLOCK
+1F55B ; [*14DE.0020.0002] # CLOCK FACE TWELVE OCLOCK
+1F55C ; [*14DF.0020.0002] # CLOCK FACE ONE-THIRTY
+1F55D ; [*14E0.0020.0002] # CLOCK FACE TWO-THIRTY
+1F55E ; [*14E1.0020.0002] # CLOCK FACE THREE-THIRTY
+1F55F ; [*14E2.0020.0002] # CLOCK FACE FOUR-THIRTY
+1F560 ; [*14E3.0020.0002] # CLOCK FACE FIVE-THIRTY
+1F561 ; [*14E4.0020.0002] # CLOCK FACE SIX-THIRTY
+1F562 ; [*14E5.0020.0002] # CLOCK FACE SEVEN-THIRTY
+1F563 ; [*14E6.0020.0002] # CLOCK FACE EIGHT-THIRTY
+1F564 ; [*14E7.0020.0002] # CLOCK FACE NINE-THIRTY
+1F565 ; [*14E8.0020.0002] # CLOCK FACE TEN-THIRTY
+1F566 ; [*14E9.0020.0002] # CLOCK FACE ELEVEN-THIRTY
+1F567 ; [*14EA.0020.0002] # CLOCK FACE TWELVE-THIRTY
+1F568 ; [*14EB.0020.0002] # RIGHT SPEAKER
+1F569 ; [*14EC.0020.0002] # RIGHT SPEAKER WITH ONE SOUND WAVE
+1F56A ; [*14ED.0020.0002] # RIGHT SPEAKER WITH THREE SOUND WAVES
+1F56B ; [*14EE.0020.0002] # BULLHORN
+1F56C ; [*14EF.0020.0002] # BULLHORN WITH SOUND WAVES
+1F56D ; [*14F0.0020.0002] # RINGING BELL
+1F56E ; [*14F1.0020.0002] # BOOK
+1F56F ; [*14F2.0020.0002] # CANDLE
+1F570 ; [*14F3.0020.0002] # MANTELPIECE CLOCK
+1F571 ; [*14F4.0020.0002] # BLACK SKULL AND CROSSBONES
+1F572 ; [*14F5.0020.0002] # NO PIRACY
+1F573 ; [*14F6.0020.0002] # HOLE
+1F574 ; [*14F7.0020.0002] # MAN IN BUSINESS SUIT LEVITATING
+1F575 ; [*14F8.0020.0002] # SLEUTH OR SPY
+1F576 ; [*14F9.0020.0002] # DARK SUNGLASSES
+1F577 ; [*14FA.0020.0002] # SPIDER
+1F578 ; [*14FB.0020.0002] # SPIDER WEB
+1F579 ; [*14FC.0020.0002] # JOYSTICK
+1F57B ; [*14FD.0020.0002] # LEFT HAND TELEPHONE RECEIVER
+1F57C ; [*14FE.0020.0002] # TELEPHONE RECEIVER WITH PAGE
+1F57D ; [*14FF.0020.0002] # RIGHT HAND TELEPHONE RECEIVER
+1F57E ; [*1500.0020.0002] # WHITE TOUCHTONE TELEPHONE
+1F57F ; [*1501.0020.0002] # BLACK TOUCHTONE TELEPHONE
+1F580 ; [*1502.0020.0002] # TELEPHONE ON TOP OF MODEM
+1F581 ; [*1503.0020.0002] # CLAMSHELL MOBILE PHONE
+1F582 ; [*1504.0020.0002] # BACK OF ENVELOPE
+1F583 ; [*1505.0020.0002] # STAMPED ENVELOPE
+1F584 ; [*1506.0020.0002] # ENVELOPE WITH LIGHTNING
+1F585 ; [*1507.0020.0002] # FLYING ENVELOPE
+1F586 ; [*1508.0020.0002] # PEN OVER STAMPED ENVELOPE
+1F587 ; [*1509.0020.0002] # LINKED PAPERCLIPS
+1F588 ; [*150A.0020.0002] # BLACK PUSHPIN
+1F589 ; [*150B.0020.0002] # LOWER LEFT PENCIL
+1F58A ; [*150C.0020.0002] # LOWER LEFT BALLPOINT PEN
+1F58B ; [*150D.0020.0002] # LOWER LEFT FOUNTAIN PEN
+1F58C ; [*150E.0020.0002] # LOWER LEFT PAINTBRUSH
+1F58D ; [*150F.0020.0002] # LOWER LEFT CRAYON
+1F58E ; [*1510.0020.0002] # LEFT WRITING HAND
+1F58F ; [*1511.0020.0002] # TURNED OK HAND SIGN
+1F590 ; [*1512.0020.0002] # RAISED HAND WITH FINGERS SPLAYED
+1F591 ; [*1513.0020.0002] # REVERSED RAISED HAND WITH FINGERS SPLAYED
+1F592 ; [*1514.0020.0002] # REVERSED THUMBS UP SIGN
+1F593 ; [*1515.0020.0002] # REVERSED THUMBS DOWN SIGN
+1F594 ; [*1516.0020.0002] # REVERSED VICTORY HAND
+1F595 ; [*1517.0020.0002] # REVERSED HAND WITH MIDDLE FINGER EXTENDED
+1F596 ; [*1518.0020.0002] # RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
+1F597 ; [*1519.0020.0002] # WHITE DOWN POINTING LEFT HAND INDEX
+1F598 ; [*151A.0020.0002] # SIDEWAYS WHITE LEFT POINTING INDEX
+1F599 ; [*151B.0020.0002] # SIDEWAYS WHITE RIGHT POINTING INDEX
+1F59A ; [*151C.0020.0002] # SIDEWAYS BLACK LEFT POINTING INDEX
+1F59B ; [*151D.0020.0002] # SIDEWAYS BLACK RIGHT POINTING INDEX
+1F59C ; [*151E.0020.0002] # BLACK LEFT POINTING BACKHAND INDEX
+1F59D ; [*151F.0020.0002] # BLACK RIGHT POINTING BACKHAND INDEX
+1F59E ; [*1520.0020.0002] # SIDEWAYS WHITE UP POINTING INDEX
+1F59F ; [*1521.0020.0002] # SIDEWAYS WHITE DOWN POINTING INDEX
+1F5A0 ; [*1522.0020.0002] # SIDEWAYS BLACK UP POINTING INDEX
+1F5A1 ; [*1523.0020.0002] # SIDEWAYS BLACK DOWN POINTING INDEX
+1F5A2 ; [*1524.0020.0002] # BLACK UP POINTING BACKHAND INDEX
+1F5A3 ; [*1525.0020.0002] # BLACK DOWN POINTING BACKHAND INDEX
+1F5A5 ; [*1526.0020.0002] # DESKTOP COMPUTER
+1F5A6 ; [*1527.0020.0002] # KEYBOARD AND MOUSE
+1F5A7 ; [*1528.0020.0002] # THREE NETWORKED COMPUTERS
+1F5A8 ; [*1529.0020.0002] # PRINTER
+1F5A9 ; [*152A.0020.0002] # POCKET CALCULATOR
+1F5AA ; [*152B.0020.0002] # BLACK HARD SHELL FLOPPY DISK
+1F5AB ; [*152C.0020.0002] # WHITE HARD SHELL FLOPPY DISK
+1F5AC ; [*152D.0020.0002] # SOFT SHELL FLOPPY DISK
+1F5AD ; [*152E.0020.0002] # TAPE CARTRIDGE
+1F5AE ; [*152F.0020.0002] # WIRED KEYBOARD
+1F5AF ; [*1530.0020.0002] # ONE BUTTON MOUSE
+1F5B0 ; [*1531.0020.0002] # TWO BUTTON MOUSE
+1F5B1 ; [*1532.0020.0002] # THREE BUTTON MOUSE
+1F5B2 ; [*1533.0020.0002] # TRACKBALL
+1F5B3 ; [*1534.0020.0002] # OLD PERSONAL COMPUTER
+1F5B4 ; [*1535.0020.0002] # HARD DISK
+1F5B5 ; [*1536.0020.0002] # SCREEN
+1F5B6 ; [*1537.0020.0002] # PRINTER ICON
+1F5B7 ; [*1538.0020.0002] # FAX ICON
+1F5B8 ; [*1539.0020.0002] # OPTICAL DISC ICON
+1F5B9 ; [*153A.0020.0002] # DOCUMENT WITH TEXT
+1F5BA ; [*153B.0020.0002] # DOCUMENT WITH TEXT AND PICTURE
+1F5BB ; [*153C.0020.0002] # DOCUMENT WITH PICTURE
+1F5BC ; [*153D.0020.0002] # FRAME WITH PICTURE
+1F5BD ; [*153E.0020.0002] # FRAME WITH TILES
+1F5BE ; [*153F.0020.0002] # FRAME WITH AN X
+1F5BF ; [*1540.0020.0002] # BLACK FOLDER
+1F5C0 ; [*1541.0020.0002] # FOLDER
+1F5C1 ; [*1542.0020.0002] # OPEN FOLDER
+1F5C2 ; [*1543.0020.0002] # CARD INDEX DIVIDERS
+1F5C3 ; [*1544.0020.0002] # CARD FILE BOX
+1F5C4 ; [*1545.0020.0002] # FILE CABINET
+1F5C5 ; [*1546.0020.0002] # EMPTY NOTE
+1F5C6 ; [*1547.0020.0002] # EMPTY NOTE PAGE
+1F5C7 ; [*1548.0020.0002] # EMPTY NOTE PAD
+1F5C8 ; [*1549.0020.0002] # NOTE
+1F5C9 ; [*154A.0020.0002] # NOTE PAGE
+1F5CA ; [*154B.0020.0002] # NOTE PAD
+1F5CB ; [*154C.0020.0002] # EMPTY DOCUMENT
+1F5CC ; [*154D.0020.0002] # EMPTY PAGE
+1F5CD ; [*154E.0020.0002] # EMPTY PAGES
+1F5CE ; [*154F.0020.0002] # DOCUMENT
+1F5CF ; [*1550.0020.0002] # PAGE
+1F5D0 ; [*1551.0020.0002] # PAGES
+1F5D1 ; [*1552.0020.0002] # WASTEBASKET
+1F5D2 ; [*1553.0020.0002] # SPIRAL NOTE PAD
+1F5D3 ; [*1554.0020.0002] # SPIRAL CALENDAR PAD
+1F5D4 ; [*1555.0020.0002] # DESKTOP WINDOW
+1F5D5 ; [*1556.0020.0002] # MINIMIZE
+1F5D6 ; [*1557.0020.0002] # MAXIMIZE
+1F5D7 ; [*1558.0020.0002] # OVERLAP
+1F5D8 ; [*1559.0020.0002] # CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS
+1F5D9 ; [*155A.0020.0002] # CANCELLATION X
+1F5DA ; [*155B.0020.0002] # INCREASE FONT SIZE SYMBOL
+1F5DB ; [*155C.0020.0002] # DECREASE FONT SIZE SYMBOL
+1F5DC ; [*155D.0020.0002] # COMPRESSION
+1F5DD ; [*155E.0020.0002] # OLD KEY
+1F5DE ; [*155F.0020.0002] # ROLLED-UP NEWSPAPER
+1F5DF ; [*1560.0020.0002] # PAGE WITH CIRCLED TEXT
+1F5E0 ; [*1561.0020.0002] # STOCK CHART
+1F5E1 ; [*1562.0020.0002] # DAGGER KNIFE
+1F5E2 ; [*1563.0020.0002] # LIPS
+1F5E3 ; [*1564.0020.0002] # SPEAKING HEAD IN SILHOUETTE
+1F5E4 ; [*1565.0020.0002] # THREE RAYS ABOVE
+1F5E5 ; [*1566.0020.0002] # THREE RAYS BELOW
+1F5E6 ; [*1567.0020.0002] # THREE RAYS LEFT
+1F5E7 ; [*1568.0020.0002] # THREE RAYS RIGHT
+1F5E8 ; [*1569.0020.0002] # LEFT SPEECH BUBBLE
+1F5E9 ; [*156A.0020.0002] # RIGHT SPEECH BUBBLE
+1F5EA ; [*156B.0020.0002] # TWO SPEECH BUBBLES
+1F5EB ; [*156C.0020.0002] # THREE SPEECH BUBBLES
+1F5EC ; [*156D.0020.0002] # LEFT THOUGHT BUBBLE
+1F5ED ; [*156E.0020.0002] # RIGHT THOUGHT BUBBLE
+1F5EE ; [*156F.0020.0002] # LEFT ANGER BUBBLE
+1F5EF ; [*1570.0020.0002] # RIGHT ANGER BUBBLE
+1F5F0 ; [*1571.0020.0002] # MOOD BUBBLE
+1F5F1 ; [*1572.0020.0002] # LIGHTNING MOOD BUBBLE
+1F5F2 ; [*1573.0020.0002] # LIGHTNING MOOD
+1F5F3 ; [*1574.0020.0002] # BALLOT BOX WITH BALLOT
+1F5F4 ; [*1575.0020.0002] # BALLOT SCRIPT X
+1F5F5 ; [*1576.0020.0002] # BALLOT BOX WITH SCRIPT X
+1F5F6 ; [*1577.0020.0002] # BALLOT BOLD SCRIPT X
+1F5F7 ; [*1578.0020.0002] # BALLOT BOX WITH BOLD SCRIPT X
+1F5F8 ; [*1579.0020.0002] # LIGHT CHECK MARK
+1F5F9 ; [*157A.0020.0002] # BALLOT BOX WITH BOLD CHECK
+1F5FA ; [*157B.0020.0002] # WORLD MAP
+1F5FB ; [*157C.0020.0002] # MOUNT FUJI
+1F5FC ; [*157D.0020.0002] # TOKYO TOWER
+1F5FD ; [*157E.0020.0002] # STATUE OF LIBERTY
+1F5FE ; [*157F.0020.0002] # SILHOUETTE OF JAPAN
+1F5FF ; [*1580.0020.0002] # MOYAI
+1F600 ; [*1590.0020.0002] # GRINNING FACE
+1F601 ; [*1591.0020.0002] # GRINNING FACE WITH SMILING EYES
+1F602 ; [*1592.0020.0002] # FACE WITH TEARS OF JOY
+1F603 ; [*1593.0020.0002] # SMILING FACE WITH OPEN MOUTH
+1F604 ; [*1594.0020.0002] # SMILING FACE WITH OPEN MOUTH AND SMILING EYES
+1F605 ; [*1595.0020.0002] # SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
+1F606 ; [*1596.0020.0002] # SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
+1F607 ; [*1597.0020.0002] # SMILING FACE WITH HALO
+1F608 ; [*1598.0020.0002] # SMILING FACE WITH HORNS
+1F609 ; [*1599.0020.0002] # WINKING FACE
+1F60A ; [*159A.0020.0002] # SMILING FACE WITH SMILING EYES
+1F60B ; [*159B.0020.0002] # FACE SAVOURING DELICIOUS FOOD
+1F60C ; [*159C.0020.0002] # RELIEVED FACE
+1F60D ; [*159D.0020.0002] # SMILING FACE WITH HEART-SHAPED EYES
+1F60E ; [*159E.0020.0002] # SMILING FACE WITH SUNGLASSES
+1F60F ; [*159F.0020.0002] # SMIRKING FACE
+1F610 ; [*15A0.0020.0002] # NEUTRAL FACE
+1F611 ; [*15A1.0020.0002] # EXPRESSIONLESS FACE
+1F612 ; [*15A2.0020.0002] # UNAMUSED FACE
+1F613 ; [*15A3.0020.0002] # FACE WITH COLD SWEAT
+1F614 ; [*15A4.0020.0002] # PENSIVE FACE
+1F615 ; [*15A5.0020.0002] # CONFUSED FACE
+1F616 ; [*15A6.0020.0002] # CONFOUNDED FACE
+1F617 ; [*15A7.0020.0002] # KISSING FACE
+1F618 ; [*15A8.0020.0002] # FACE THROWING A KISS
+1F619 ; [*15A9.0020.0002] # KISSING FACE WITH SMILING EYES
+1F61A ; [*15AA.0020.0002] # KISSING FACE WITH CLOSED EYES
+1F61B ; [*15AB.0020.0002] # FACE WITH STUCK-OUT TONGUE
+1F61C ; [*15AC.0020.0002] # FACE WITH STUCK-OUT TONGUE AND WINKING EYE
+1F61D ; [*15AD.0020.0002] # FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
+1F61E ; [*15AE.0020.0002] # DISAPPOINTED FACE
+1F61F ; [*15AF.0020.0002] # WORRIED FACE
+1F620 ; [*15B0.0020.0002] # ANGRY FACE
+1F621 ; [*15B1.0020.0002] # POUTING FACE
+1F622 ; [*15B2.0020.0002] # CRYING FACE
+1F623 ; [*15B3.0020.0002] # PERSEVERING FACE
+1F624 ; [*15B4.0020.0002] # FACE WITH LOOK OF TRIUMPH
+1F625 ; [*15B5.0020.0002] # DISAPPOINTED BUT RELIEVED FACE
+1F626 ; [*15B6.0020.0002] # FROWNING FACE WITH OPEN MOUTH
+1F627 ; [*15B7.0020.0002] # ANGUISHED FACE
+1F628 ; [*15B8.0020.0002] # FEARFUL FACE
+1F629 ; [*15B9.0020.0002] # WEARY FACE
+1F62A ; [*15BA.0020.0002] # SLEEPY FACE
+1F62B ; [*15BB.0020.0002] # TIRED FACE
+1F62C ; [*15BC.0020.0002] # GRIMACING FACE
+1F62D ; [*15BD.0020.0002] # LOUDLY CRYING FACE
+1F62E ; [*15BE.0020.0002] # FACE WITH OPEN MOUTH
+1F62F ; [*15BF.0020.0002] # HUSHED FACE
+1F630 ; [*15C0.0020.0002] # FACE WITH OPEN MOUTH AND COLD SWEAT
+1F631 ; [*15C1.0020.0002] # FACE SCREAMING IN FEAR
+1F632 ; [*15C2.0020.0002] # ASTONISHED FACE
+1F633 ; [*15C3.0020.0002] # FLUSHED FACE
+1F634 ; [*15C4.0020.0002] # SLEEPING FACE
+1F635 ; [*15C5.0020.0002] # DIZZY FACE
+1F636 ; [*15C6.0020.0002] # FACE WITHOUT MOUTH
+1F637 ; [*15C7.0020.0002] # FACE WITH MEDICAL MASK
+1F638 ; [*15C8.0020.0002] # GRINNING CAT FACE WITH SMILING EYES
+1F639 ; [*15C9.0020.0002] # CAT FACE WITH TEARS OF JOY
+1F63A ; [*15CA.0020.0002] # SMILING CAT FACE WITH OPEN MOUTH
+1F63B ; [*15CB.0020.0002] # SMILING CAT FACE WITH HEART-SHAPED EYES
+1F63C ; [*15CC.0020.0002] # CAT FACE WITH WRY SMILE
+1F63D ; [*15CD.0020.0002] # KISSING CAT FACE WITH CLOSED EYES
+1F63E ; [*15CE.0020.0002] # POUTING CAT FACE
+1F63F ; [*15CF.0020.0002] # CRYING CAT FACE
+1F640 ; [*15D0.0020.0002] # WEARY CAT FACE
+1F641 ; [*15D1.0020.0002] # SLIGHTLY FROWNING FACE
+1F642 ; [*15D2.0020.0002] # SLIGHTLY SMILING FACE
+1F643 ; [*15D3.0020.0002] # UPSIDE-DOWN FACE
+1F644 ; [*15D4.0020.0002] # FACE WITH ROLLING EYES
+1F645 ; [*15D5.0020.0002] # FACE WITH NO GOOD GESTURE
+1F646 ; [*15D6.0020.0002] # FACE WITH OK GESTURE
+1F647 ; [*15D7.0020.0002] # PERSON BOWING DEEPLY
+1F648 ; [*15D8.0020.0002] # SEE-NO-EVIL MONKEY
+1F649 ; [*15D9.0020.0002] # HEAR-NO-EVIL MONKEY
+1F64A ; [*15DA.0020.0002] # SPEAK-NO-EVIL MONKEY
+1F64B ; [*15DB.0020.0002] # HAPPY PERSON RAISING ONE HAND
+1F64C ; [*15DC.0020.0002] # PERSON RAISING BOTH HANDS IN CELEBRATION
+1F64D ; [*15DD.0020.0002] # PERSON FROWNING
+1F64E ; [*15DE.0020.0002] # PERSON WITH POUTING FACE
+1F64F ; [*15DF.0020.0002] # PERSON WITH FOLDED HANDS
+1F650 ; [*15E0.0020.0002] # NORTH WEST POINTING LEAF
+1F651 ; [*15E1.0020.0002] # SOUTH WEST POINTING LEAF
+1F652 ; [*15E2.0020.0002] # NORTH EAST POINTING LEAF
+1F653 ; [*15E3.0020.0002] # SOUTH EAST POINTING LEAF
+1F654 ; [*15E4.0020.0002] # TURNED NORTH WEST POINTING LEAF
+1F655 ; [*15E5.0020.0002] # TURNED SOUTH WEST POINTING LEAF
+1F656 ; [*15E6.0020.0002] # TURNED NORTH EAST POINTING LEAF
+1F657 ; [*15E7.0020.0002] # TURNED SOUTH EAST POINTING LEAF
+1F658 ; [*15E8.0020.0002] # NORTH WEST POINTING VINE LEAF
+1F659 ; [*15E9.0020.0002] # SOUTH WEST POINTING VINE LEAF
+1F65A ; [*15EA.0020.0002] # NORTH EAST POINTING VINE LEAF
+1F65B ; [*15EB.0020.0002] # SOUTH EAST POINTING VINE LEAF
+1F65C ; [*15EC.0020.0002] # HEAVY NORTH WEST POINTING VINE LEAF
+1F65D ; [*15ED.0020.0002] # HEAVY SOUTH WEST POINTING VINE LEAF
+1F65E ; [*15EE.0020.0002] # HEAVY NORTH EAST POINTING VINE LEAF
+1F65F ; [*15EF.0020.0002] # HEAVY SOUTH EAST POINTING VINE LEAF
+1F660 ; [*15F0.0020.0002] # NORTH WEST POINTING BUD
+1F661 ; [*15F1.0020.0002] # SOUTH WEST POINTING BUD
+1F662 ; [*15F2.0020.0002] # NORTH EAST POINTING BUD
+1F663 ; [*15F3.0020.0002] # SOUTH EAST POINTING BUD
+1F664 ; [*15F4.0020.0002] # HEAVY NORTH WEST POINTING BUD
+1F665 ; [*15F5.0020.0002] # HEAVY SOUTH WEST POINTING BUD
+1F666 ; [*15F6.0020.0002] # HEAVY NORTH EAST POINTING BUD
+1F667 ; [*15F7.0020.0002] # HEAVY SOUTH EAST POINTING BUD
+1F668 ; [*15F8.0020.0002] # HOLLOW QUILT SQUARE ORNAMENT
+1F669 ; [*15F9.0020.0002] # HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE
+1F66A ; [*15FA.0020.0002] # SOLID QUILT SQUARE ORNAMENT
+1F66B ; [*15FB.0020.0002] # SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE
+1F66C ; [*15FC.0020.0002] # LEFTWARDS ROCKET
+1F66D ; [*15FD.0020.0002] # UPWARDS ROCKET
+1F66E ; [*15FE.0020.0002] # RIGHTWARDS ROCKET
+1F66F ; [*15FF.0020.0002] # DOWNWARDS ROCKET
+1F670 ; [*1600.0020.0002] # SCRIPT LIGATURE ET ORNAMENT
+1F671 ; [*1601.0020.0002] # HEAVY SCRIPT LIGATURE ET ORNAMENT
+1F672 ; [*1602.0020.0002] # LIGATURE OPEN ET ORNAMENT
+1F673 ; [*1603.0020.0002] # HEAVY LIGATURE OPEN ET ORNAMENT
+1F674 ; [*1604.0020.0002] # HEAVY AMPERSAND ORNAMENT
+1F675 ; [*1605.0020.0002] # SWASH AMPERSAND ORNAMENT
+1F676 ; [*1606.0020.0002] # SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+1F677 ; [*1607.0020.0002] # SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F678 ; [*1608.0020.0002] # SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F679 ; [*1609.0020.0002] # HEAVY INTERROBANG ORNAMENT
+1F67A ; [*160A.0020.0002] # SANS-SERIF INTERROBANG ORNAMENT
+1F67B ; [*160B.0020.0002] # HEAVY SANS-SERIF INTERROBANG ORNAMENT
+1F67C ; [*160C.0020.0002] # VERY HEAVY SOLIDUS
+1F67D ; [*160D.0020.0002] # VERY HEAVY REVERSE SOLIDUS
+1F67E ; [*160E.0020.0002] # CHECKER BOARD
+1F67F ; [*160F.0020.0002] # REVERSE CHECKER BOARD
+1F680 ; [*1610.0020.0002] # ROCKET
+1F681 ; [*1611.0020.0002] # HELICOPTER
+1F682 ; [*1612.0020.0002] # STEAM LOCOMOTIVE
+1F683 ; [*1613.0020.0002] # RAILWAY CAR
+1F684 ; [*1614.0020.0002] # HIGH-SPEED TRAIN
+1F685 ; [*1615.0020.0002] # HIGH-SPEED TRAIN WITH BULLET NOSE
+1F686 ; [*1616.0020.0002] # TRAIN
+1F687 ; [*1617.0020.0002] # METRO
+1F688 ; [*1618.0020.0002] # LIGHT RAIL
+1F689 ; [*1619.0020.0002] # STATION
+1F68A ; [*161A.0020.0002] # TRAM
+1F68B ; [*161B.0020.0002] # TRAM CAR
+1F68C ; [*161C.0020.0002] # BUS
+1F68D ; [*161D.0020.0002] # ONCOMING BUS
+1F68E ; [*161E.0020.0002] # TROLLEYBUS
+1F68F ; [*161F.0020.0002] # BUS STOP
+1F690 ; [*1620.0020.0002] # MINIBUS
+1F691 ; [*1621.0020.0002] # AMBULANCE
+1F692 ; [*1622.0020.0002] # FIRE ENGINE
+1F693 ; [*1623.0020.0002] # POLICE CAR
+1F694 ; [*1624.0020.0002] # ONCOMING POLICE CAR
+1F695 ; [*1625.0020.0002] # TAXI
+1F696 ; [*1626.0020.0002] # ONCOMING TAXI
+1F697 ; [*1627.0020.0002] # AUTOMOBILE
+1F698 ; [*1628.0020.0002] # ONCOMING AUTOMOBILE
+1F699 ; [*1629.0020.0002] # RECREATIONAL VEHICLE
+1F69A ; [*162A.0020.0002] # DELIVERY TRUCK
+1F69B ; [*162B.0020.0002] # ARTICULATED LORRY
+1F69C ; [*162C.0020.0002] # TRACTOR
+1F69D ; [*162D.0020.0002] # MONORAIL
+1F69E ; [*162E.0020.0002] # MOUNTAIN RAILWAY
+1F69F ; [*162F.0020.0002] # SUSPENSION RAILWAY
+1F6A0 ; [*1630.0020.0002] # MOUNTAIN CABLEWAY
+1F6A1 ; [*1631.0020.0002] # AERIAL TRAMWAY
+1F6A2 ; [*1632.0020.0002] # SHIP
+1F6A3 ; [*1633.0020.0002] # ROWBOAT
+1F6A4 ; [*1634.0020.0002] # SPEEDBOAT
+1F6A5 ; [*1635.0020.0002] # HORIZONTAL TRAFFIC LIGHT
+1F6A6 ; [*1636.0020.0002] # VERTICAL TRAFFIC LIGHT
+1F6A7 ; [*1637.0020.0002] # CONSTRUCTION SIGN
+1F6A8 ; [*1638.0020.0002] # POLICE CARS REVOLVING LIGHT
+1F6A9 ; [*1639.0020.0002] # TRIANGULAR FLAG ON POST
+1F6AA ; [*163A.0020.0002] # DOOR
+1F6AB ; [*163B.0020.0002] # NO ENTRY SIGN
+1F6AC ; [*163C.0020.0002] # SMOKING SYMBOL
+1F6AD ; [*163D.0020.0002] # NO SMOKING SYMBOL
+1F6AE ; [*163E.0020.0002] # PUT LITTER IN ITS PLACE SYMBOL
+1F6AF ; [*163F.0020.0002] # DO NOT LITTER SYMBOL
+1F6B0 ; [*1640.0020.0002] # POTABLE WATER SYMBOL
+1F6B1 ; [*1641.0020.0002] # NON-POTABLE WATER SYMBOL
+1F6B2 ; [*1642.0020.0002] # BICYCLE
+1F6B3 ; [*1643.0020.0002] # NO BICYCLES
+1F6B4 ; [*1644.0020.0002] # BICYCLIST
+1F6B5 ; [*1645.0020.0002] # MOUNTAIN BICYCLIST
+1F6B6 ; [*1646.0020.0002] # PEDESTRIAN
+1F6B7 ; [*1647.0020.0002] # NO PEDESTRIANS
+1F6B8 ; [*1648.0020.0002] # CHILDREN CROSSING
+1F6B9 ; [*1649.0020.0002] # MENS SYMBOL
+1F6BA ; [*164A.0020.0002] # WOMENS SYMBOL
+1F6BB ; [*164B.0020.0002] # RESTROOM
+1F6BC ; [*164C.0020.0002] # BABY SYMBOL
+1F6BD ; [*164D.0020.0002] # TOILET
+1F6BE ; [*164E.0020.0002] # WATER CLOSET
+1F6BF ; [*164F.0020.0002] # SHOWER
+1F6C0 ; [*1650.0020.0002] # BATH
+1F6C1 ; [*1651.0020.0002] # BATHTUB
+1F6C2 ; [*1652.0020.0002] # PASSPORT CONTROL
+1F6C3 ; [*1653.0020.0002] # CUSTOMS
+1F6C4 ; [*1654.0020.0002] # BAGGAGE CLAIM
+1F6C5 ; [*1655.0020.0002] # LEFT LUGGAGE
+1F6C6 ; [*1656.0020.0002] # TRIANGLE WITH ROUNDED CORNERS
+1F6C7 ; [*1657.0020.0002] # PROHIBITED SIGN
+1F6C8 ; [*1658.0020.0002] # CIRCLED INFORMATION SOURCE
+1F6C9 ; [*1659.0020.0002] # BOYS SYMBOL
+1F6CA ; [*165A.0020.0002] # GIRLS SYMBOL
+1F6CB ; [*165B.0020.0002] # COUCH AND LAMP
+1F6CC ; [*165C.0020.0002] # SLEEPING ACCOMMODATION
+1F6CD ; [*165D.0020.0002] # SHOPPING BAGS
+1F6CE ; [*165E.0020.0002] # BELLHOP BELL
+1F6CF ; [*165F.0020.0002] # BED
+1F6D0 ; [*1660.0020.0002] # PLACE OF WORSHIP
+1F6E0 ; [*1661.0020.0002] # HAMMER AND WRENCH
+1F6E1 ; [*1662.0020.0002] # SHIELD
+1F6E2 ; [*1663.0020.0002] # OIL DRUM
+1F6E3 ; [*1664.0020.0002] # MOTORWAY
+1F6E4 ; [*1665.0020.0002] # RAILWAY TRACK
+1F6E5 ; [*1666.0020.0002] # MOTOR BOAT
+1F6E6 ; [*1667.0020.0002] # UP-POINTING MILITARY AIRPLANE
+1F6E7 ; [*1668.0020.0002] # UP-POINTING AIRPLANE
+1F6E8 ; [*1669.0020.0002] # UP-POINTING SMALL AIRPLANE
+1F6E9 ; [*166A.0020.0002] # SMALL AIRPLANE
+1F6EA ; [*166B.0020.0002] # NORTHEAST-POINTING AIRPLANE
+1F6EB ; [*166C.0020.0002] # AIRPLANE DEPARTURE
+1F6EC ; [*166D.0020.0002] # AIRPLANE ARRIVING
+1F6F0 ; [*166E.0020.0002] # SATELLITE
+1F6F1 ; [*166F.0020.0002] # ONCOMING FIRE ENGINE
+1F6F2 ; [*1670.0020.0002] # DIESEL LOCOMOTIVE
+1F6F3 ; [*1671.0020.0002] # PASSENGER SHIP
+1F700 ; [*1672.0020.0002] # ALCHEMICAL SYMBOL FOR QUINTESSENCE
+1F701 ; [*1673.0020.0002] # ALCHEMICAL SYMBOL FOR AIR
+1F702 ; [*1674.0020.0002] # ALCHEMICAL SYMBOL FOR FIRE
+1F703 ; [*1675.0020.0002] # ALCHEMICAL SYMBOL FOR EARTH
+1F704 ; [*1676.0020.0002] # ALCHEMICAL SYMBOL FOR WATER
+1F705 ; [*1677.0020.0002] # ALCHEMICAL SYMBOL FOR AQUAFORTIS
+1F706 ; [*1678.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA
+1F707 ; [*1679.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA REGIA-2
+1F708 ; [*167A.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE
+1F709 ; [*167B.0020.0002] # ALCHEMICAL SYMBOL FOR AQUA VITAE-2
+1F70A ; [*167C.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR
+1F70B ; [*167D.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-2
+1F70C ; [*167E.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR-3
+1F70D ; [*167F.0020.0002] # ALCHEMICAL SYMBOL FOR SULFUR
+1F70E ; [*1680.0020.0002] # ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
+1F70F ; [*1681.0020.0002] # ALCHEMICAL SYMBOL FOR BLACK SULFUR
+1F710 ; [*1682.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
+1F711 ; [*1683.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
+1F712 ; [*1684.0020.0002] # ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
+1F713 ; [*1685.0020.0002] # ALCHEMICAL SYMBOL FOR CINNABAR
+1F714 ; [*1686.0020.0002] # ALCHEMICAL SYMBOL FOR SALT
+1F715 ; [*1687.0020.0002] # ALCHEMICAL SYMBOL FOR NITRE
+1F716 ; [*1688.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL
+1F717 ; [*1689.0020.0002] # ALCHEMICAL SYMBOL FOR VITRIOL-2
+1F718 ; [*168A.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT
+1F719 ; [*168B.0020.0002] # ALCHEMICAL SYMBOL FOR ROCK SALT-2
+1F71A ; [*168C.0020.0002] # ALCHEMICAL SYMBOL FOR GOLD
+1F71B ; [*168D.0020.0002] # ALCHEMICAL SYMBOL FOR SILVER
+1F71C ; [*168E.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE
+1F71D ; [*168F.0020.0002] # ALCHEMICAL SYMBOL FOR IRON ORE-2
+1F71E ; [*1690.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF IRON
+1F71F ; [*1691.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF IRON
+1F720 ; [*1692.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ORE
+1F721 ; [*1693.0020.0002] # ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
+1F722 ; [*1694.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
+1F723 ; [*1695.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
+1F724 ; [*1696.0020.0002] # ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
+1F725 ; [*1697.0020.0002] # ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
+1F726 ; [*1698.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
+1F727 ; [*1699.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
+1F728 ; [*169A.0020.0002] # ALCHEMICAL SYMBOL FOR VERDIGRIS
+1F729 ; [*169B.0020.0002] # ALCHEMICAL SYMBOL FOR TIN ORE
+1F72A ; [*169C.0020.0002] # ALCHEMICAL SYMBOL FOR LEAD ORE
+1F72B ; [*169D.0020.0002] # ALCHEMICAL SYMBOL FOR ANTIMONY ORE
+1F72C ; [*169E.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
+1F72D ; [*169F.0020.0002] # ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
+1F72E ; [*16A0.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
+1F72F ; [*16A1.0020.0002] # ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
+1F730 ; [*16A2.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
+1F731 ; [*16A3.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
+1F732 ; [*16A4.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS
+1F733 ; [*16A5.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-2
+1F734 ; [*16A6.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-3
+1F735 ; [*16A7.0020.0002] # ALCHEMICAL SYMBOL FOR REGULUS-4
+1F736 ; [*16A8.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI
+1F737 ; [*16A9.0020.0002] # ALCHEMICAL SYMBOL FOR ALKALI-2
+1F738 ; [*16AA.0020.0002] # ALCHEMICAL SYMBOL FOR MARCASITE
+1F739 ; [*16AB.0020.0002] # ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
+1F73A ; [*16AC.0020.0002] # ALCHEMICAL SYMBOL FOR ARSENIC
+1F73B ; [*16AD.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR
+1F73C ; [*16AE.0020.0002] # ALCHEMICAL SYMBOL FOR REALGAR-2
+1F73D ; [*16AF.0020.0002] # ALCHEMICAL SYMBOL FOR AURIPIGMENT
+1F73E ; [*16B0.0020.0002] # ALCHEMICAL SYMBOL FOR BISMUTH ORE
+1F73F ; [*16B1.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR
+1F740 ; [*16B2.0020.0002] # ALCHEMICAL SYMBOL FOR TARTAR-2
+1F741 ; [*16B3.0020.0002] # ALCHEMICAL SYMBOL FOR QUICK LIME
+1F742 ; [*16B4.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX
+1F743 ; [*16B5.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-2
+1F744 ; [*16B6.0020.0002] # ALCHEMICAL SYMBOL FOR BORAX-3
+1F745 ; [*16B7.0020.0002] # ALCHEMICAL SYMBOL FOR ALUM
+1F746 ; [*16B8.0020.0002] # ALCHEMICAL SYMBOL FOR OIL
+1F747 ; [*16B9.0020.0002] # ALCHEMICAL SYMBOL FOR SPIRIT
+1F748 ; [*16BA.0020.0002] # ALCHEMICAL SYMBOL FOR TINCTURE
+1F749 ; [*16BB.0020.0002] # ALCHEMICAL SYMBOL FOR GUM
+1F74A ; [*16BC.0020.0002] # ALCHEMICAL SYMBOL FOR WAX
+1F74B ; [*16BD.0020.0002] # ALCHEMICAL SYMBOL FOR POWDER
+1F74C ; [*16BE.0020.0002] # ALCHEMICAL SYMBOL FOR CALX
+1F74D ; [*16BF.0020.0002] # ALCHEMICAL SYMBOL FOR TUTTY
+1F74E ; [*16C0.0020.0002] # ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
+1F74F ; [*16C1.0020.0002] # ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
+1F750 ; [*16C2.0020.0002] # ALCHEMICAL SYMBOL FOR CADUCEUS
+1F751 ; [*16C3.0020.0002] # ALCHEMICAL SYMBOL FOR TRIDENT
+1F752 ; [*16C4.0020.0002] # ALCHEMICAL SYMBOL FOR STARRED TRIDENT
+1F753 ; [*16C5.0020.0002] # ALCHEMICAL SYMBOL FOR LODESTONE
+1F754 ; [*16C6.0020.0002] # ALCHEMICAL SYMBOL FOR SOAP
+1F755 ; [*16C7.0020.0002] # ALCHEMICAL SYMBOL FOR URINE
+1F756 ; [*16C8.0020.0002] # ALCHEMICAL SYMBOL FOR HORSE DUNG
+1F757 ; [*16C9.0020.0002] # ALCHEMICAL SYMBOL FOR ASHES
+1F758 ; [*16CA.0020.0002] # ALCHEMICAL SYMBOL FOR POT ASHES
+1F759 ; [*16CB.0020.0002] # ALCHEMICAL SYMBOL FOR BRICK
+1F75A ; [*16CC.0020.0002] # ALCHEMICAL SYMBOL FOR POWDERED BRICK
+1F75B ; [*16CD.0020.0002] # ALCHEMICAL SYMBOL FOR AMALGAM
+1F75C ; [*16CE.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
+1F75D ; [*16CF.0020.0002] # ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
+1F75E ; [*16D0.0020.0002] # ALCHEMICAL SYMBOL FOR SUBLIMATION
+1F75F ; [*16D1.0020.0002] # ALCHEMICAL SYMBOL FOR PRECIPITATE
+1F760 ; [*16D2.0020.0002] # ALCHEMICAL SYMBOL FOR DISTILL
+1F761 ; [*16D3.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE
+1F762 ; [*16D4.0020.0002] # ALCHEMICAL SYMBOL FOR DISSOLVE-2
+1F763 ; [*16D5.0020.0002] # ALCHEMICAL SYMBOL FOR PURIFY
+1F764 ; [*16D6.0020.0002] # ALCHEMICAL SYMBOL FOR PUTREFACTION
+1F765 ; [*16D7.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE
+1F766 ; [*16D8.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-2
+1F767 ; [*16D9.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-3
+1F768 ; [*16DA.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-4
+1F769 ; [*16DB.0020.0002] # ALCHEMICAL SYMBOL FOR CRUCIBLE-5
+1F76A ; [*16DC.0020.0002] # ALCHEMICAL SYMBOL FOR ALEMBIC
+1F76B ; [*16DD.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF MARY
+1F76C ; [*16DE.0020.0002] # ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
+1F76D ; [*16DF.0020.0002] # ALCHEMICAL SYMBOL FOR RETORT
+1F76E ; [*16E0.0020.0002] # ALCHEMICAL SYMBOL FOR HOUR
+1F76F ; [*16E1.0020.0002] # ALCHEMICAL SYMBOL FOR NIGHT
+1F770 ; [*16E2.0020.0002] # ALCHEMICAL SYMBOL FOR DAY-NIGHT
+1F771 ; [*16E3.0020.0002] # ALCHEMICAL SYMBOL FOR MONTH
+1F772 ; [*16E4.0020.0002] # ALCHEMICAL SYMBOL FOR HALF DRAM
+1F773 ; [*16E5.0020.0002] # ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F780 ; [*16E6.0020.0002] # BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE
+1F781 ; [*16E7.0020.0002] # BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE
+1F782 ; [*16E8.0020.0002] # BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE
+1F783 ; [*16E9.0020.0002] # BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE
+1F784 ; [*16EA.0020.0002] # BLACK SLIGHTLY SMALL CIRCLE
+1F785 ; [*16EB.0020.0002] # MEDIUM BOLD WHITE CIRCLE
+1F786 ; [*16EC.0020.0002] # BOLD WHITE CIRCLE
+1F787 ; [*16ED.0020.0002] # HEAVY WHITE CIRCLE
+1F788 ; [*16EE.0020.0002] # VERY HEAVY WHITE CIRCLE
+1F789 ; [*16EF.0020.0002] # EXTREMELY HEAVY WHITE CIRCLE
+1F78A ; [*16F0.0020.0002] # WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE
+1F78B ; [*16F1.0020.0002] # ROUND TARGET
+1F78C ; [*16F2.0020.0002] # BLACK TINY SQUARE
+1F78D ; [*16F3.0020.0002] # BLACK SLIGHTLY SMALL SQUARE
+1F78E ; [*16F4.0020.0002] # LIGHT WHITE SQUARE
+1F78F ; [*16F5.0020.0002] # MEDIUM WHITE SQUARE
+1F790 ; [*16F6.0020.0002] # BOLD WHITE SQUARE
+1F791 ; [*16F7.0020.0002] # HEAVY WHITE SQUARE
+1F792 ; [*16F8.0020.0002] # VERY HEAVY WHITE SQUARE
+1F793 ; [*16F9.0020.0002] # EXTREMELY HEAVY WHITE SQUARE
+1F794 ; [*16FA.0020.0002] # WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE
+1F795 ; [*16FB.0020.0002] # WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE
+1F796 ; [*16FC.0020.0002] # SQUARE TARGET
+1F797 ; [*16FD.0020.0002] # BLACK TINY DIAMOND
+1F798 ; [*16FE.0020.0002] # BLACK VERY SMALL DIAMOND
+1F799 ; [*16FF.0020.0002] # BLACK MEDIUM SMALL DIAMOND
+1F79A ; [*1700.0020.0002] # WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND
+1F79B ; [*1701.0020.0002] # WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND
+1F79C ; [*1702.0020.0002] # DIAMOND TARGET
+1F79D ; [*1703.0020.0002] # BLACK TINY LOZENGE
+1F79E ; [*1704.0020.0002] # BLACK VERY SMALL LOZENGE
+1F79F ; [*1705.0020.0002] # BLACK MEDIUM SMALL LOZENGE
+1F7A0 ; [*1706.0020.0002] # WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE
+1F7A1 ; [*1707.0020.0002] # THIN GREEK CROSS
+1F7A2 ; [*1708.0020.0002] # LIGHT GREEK CROSS
+1F7A3 ; [*1709.0020.0002] # MEDIUM GREEK CROSS
+1F7A4 ; [*170A.0020.0002] # BOLD GREEK CROSS
+1F7A5 ; [*170B.0020.0002] # VERY BOLD GREEK CROSS
+1F7A6 ; [*170C.0020.0002] # VERY HEAVY GREEK CROSS
+1F7A7 ; [*170D.0020.0002] # EXTREMELY HEAVY GREEK CROSS
+1F7A8 ; [*170E.0020.0002] # THIN SALTIRE
+1F7A9 ; [*170F.0020.0002] # LIGHT SALTIRE
+1F7AA ; [*1710.0020.0002] # MEDIUM SALTIRE
+1F7AB ; [*1711.0020.0002] # BOLD SALTIRE
+1F7AC ; [*1712.0020.0002] # HEAVY SALTIRE
+1F7AD ; [*1713.0020.0002] # VERY HEAVY SALTIRE
+1F7AE ; [*1714.0020.0002] # EXTREMELY HEAVY SALTIRE
+1F7AF ; [*1715.0020.0002] # LIGHT FIVE SPOKED ASTERISK
+1F7B0 ; [*1716.0020.0002] # MEDIUM FIVE SPOKED ASTERISK
+1F7B1 ; [*1717.0020.0002] # BOLD FIVE SPOKED ASTERISK
+1F7B2 ; [*1718.0020.0002] # HEAVY FIVE SPOKED ASTERISK
+1F7B3 ; [*1719.0020.0002] # VERY HEAVY FIVE SPOKED ASTERISK
+1F7B4 ; [*171A.0020.0002] # EXTREMELY HEAVY FIVE SPOKED ASTERISK
+1F7B5 ; [*171B.0020.0002] # LIGHT SIX SPOKED ASTERISK
+1F7B6 ; [*171C.0020.0002] # MEDIUM SIX SPOKED ASTERISK
+1F7B7 ; [*171D.0020.0002] # BOLD SIX SPOKED ASTERISK
+1F7B8 ; [*171E.0020.0002] # HEAVY SIX SPOKED ASTERISK
+1F7B9 ; [*171F.0020.0002] # VERY HEAVY SIX SPOKED ASTERISK
+1F7BA ; [*1720.0020.0002] # EXTREMELY HEAVY SIX SPOKED ASTERISK
+1F7BB ; [*1721.0020.0002] # LIGHT EIGHT SPOKED ASTERISK
+1F7BC ; [*1722.0020.0002] # MEDIUM EIGHT SPOKED ASTERISK
+1F7BD ; [*1723.0020.0002] # BOLD EIGHT SPOKED ASTERISK
+1F7BE ; [*1724.0020.0002] # HEAVY EIGHT SPOKED ASTERISK
+1F7BF ; [*1725.0020.0002] # VERY HEAVY EIGHT SPOKED ASTERISK
+1F7C0 ; [*1726.0020.0002] # LIGHT THREE POINTED BLACK STAR
+1F7C1 ; [*1727.0020.0002] # MEDIUM THREE POINTED BLACK STAR
+1F7C2 ; [*1728.0020.0002] # THREE POINTED BLACK STAR
+1F7C3 ; [*1729.0020.0002] # MEDIUM THREE POINTED PINWHEEL STAR
+1F7C4 ; [*172A.0020.0002] # LIGHT FOUR POINTED BLACK STAR
+1F7C5 ; [*172B.0020.0002] # MEDIUM FOUR POINTED BLACK STAR
+1F7C6 ; [*172C.0020.0002] # FOUR POINTED BLACK STAR
+1F7C7 ; [*172D.0020.0002] # MEDIUM FOUR POINTED PINWHEEL STAR
+1F7C8 ; [*172E.0020.0002] # REVERSE LIGHT FOUR POINTED PINWHEEL STAR
+1F7C9 ; [*172F.0020.0002] # LIGHT FIVE POINTED BLACK STAR
+1F7CA ; [*1730.0020.0002] # HEAVY FIVE POINTED BLACK STAR
+1F7CB ; [*1731.0020.0002] # MEDIUM SIX POINTED BLACK STAR
+1F7CC ; [*1732.0020.0002] # HEAVY SIX POINTED BLACK STAR
+1F7CD ; [*1733.0020.0002] # SIX POINTED PINWHEEL STAR
+1F7CE ; [*1734.0020.0002] # MEDIUM EIGHT POINTED BLACK STAR
+1F7CF ; [*1735.0020.0002] # HEAVY EIGHT POINTED BLACK STAR
+1F7D0 ; [*1736.0020.0002] # VERY HEAVY EIGHT POINTED BLACK STAR
+1F7D1 ; [*1737.0020.0002] # HEAVY EIGHT POINTED PINWHEEL STAR
+1F7D2 ; [*1738.0020.0002] # LIGHT TWELVE POINTED BLACK STAR
+1F7D3 ; [*1739.0020.0002] # HEAVY TWELVE POINTED BLACK STAR
+1F7D4 ; [*173A.0020.0002] # HEAVY TWELVE POINTED PINWHEEL STAR
+1F800 ; [*173B.0020.0002] # LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F801 ; [*173C.0020.0002] # UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F802 ; [*173D.0020.0002] # RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F803 ; [*173E.0020.0002] # DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD
+1F804 ; [*173F.0020.0002] # LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F805 ; [*1740.0020.0002] # UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F806 ; [*1741.0020.0002] # RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F807 ; [*1742.0020.0002] # DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD
+1F808 ; [*1743.0020.0002] # LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F809 ; [*1744.0020.0002] # UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80A ; [*1745.0020.0002] # RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80B ; [*1746.0020.0002] # DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810 ; [*1747.0020.0002] # LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F811 ; [*1748.0020.0002] # UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F812 ; [*1749.0020.0002] # RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F813 ; [*174A.0020.0002] # DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD
+1F814 ; [*174B.0020.0002] # LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F815 ; [*174C.0020.0002] # UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F816 ; [*174D.0020.0002] # RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F817 ; [*174E.0020.0002] # DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F818 ; [*174F.0020.0002] # HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F819 ; [*1750.0020.0002] # HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81A ; [*1751.0020.0002] # HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81B ; [*1752.0020.0002] # HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD
+1F81C ; [*1753.0020.0002] # HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81D ; [*1754.0020.0002] # HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81E ; [*1755.0020.0002] # HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F81F ; [*1756.0020.0002] # HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD
+1F820 ; [*1757.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F821 ; [*1758.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F822 ; [*1759.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F823 ; [*175A.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT
+1F824 ; [*175B.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F825 ; [*175C.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F826 ; [*175D.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F827 ; [*175E.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT
+1F828 ; [*175F.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F829 ; [*1760.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82A ; [*1761.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82B ; [*1762.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT
+1F82C ; [*1763.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82D ; [*1764.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82E ; [*1765.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F82F ; [*1766.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT
+1F830 ; [*1767.0020.0002] # LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F831 ; [*1768.0020.0002] # UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F832 ; [*1769.0020.0002] # RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F833 ; [*176A.0020.0002] # DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT
+1F834 ; [*176B.0020.0002] # LEFTWARDS FINGER-POST ARROW
+1F835 ; [*176C.0020.0002] # UPWARDS FINGER-POST ARROW
+1F836 ; [*176D.0020.0002] # RIGHTWARDS FINGER-POST ARROW
+1F837 ; [*176E.0020.0002] # DOWNWARDS FINGER-POST ARROW
+1F838 ; [*176F.0020.0002] # LEFTWARDS SQUARED ARROW
+1F839 ; [*1770.0020.0002] # UPWARDS SQUARED ARROW
+1F83A ; [*1771.0020.0002] # RIGHTWARDS SQUARED ARROW
+1F83B ; [*1772.0020.0002] # DOWNWARDS SQUARED ARROW
+1F83C ; [*1773.0020.0002] # LEFTWARDS COMPRESSED ARROW
+1F83D ; [*1774.0020.0002] # UPWARDS COMPRESSED ARROW
+1F83E ; [*1775.0020.0002] # RIGHTWARDS COMPRESSED ARROW
+1F83F ; [*1776.0020.0002] # DOWNWARDS COMPRESSED ARROW
+1F840 ; [*1777.0020.0002] # LEFTWARDS HEAVY COMPRESSED ARROW
+1F841 ; [*1778.0020.0002] # UPWARDS HEAVY COMPRESSED ARROW
+1F842 ; [*1779.0020.0002] # RIGHTWARDS HEAVY COMPRESSED ARROW
+1F843 ; [*177A.0020.0002] # DOWNWARDS HEAVY COMPRESSED ARROW
+1F844 ; [*177B.0020.0002] # LEFTWARDS HEAVY ARROW
+1F845 ; [*177C.0020.0002] # UPWARDS HEAVY ARROW
+1F846 ; [*177D.0020.0002] # RIGHTWARDS HEAVY ARROW
+1F847 ; [*177E.0020.0002] # DOWNWARDS HEAVY ARROW
+1F850 ; [*177F.0020.0002] # LEFTWARDS SANS-SERIF ARROW
+1F851 ; [*1780.0020.0002] # UPWARDS SANS-SERIF ARROW
+1F852 ; [*1781.0020.0002] # RIGHTWARDS SANS-SERIF ARROW
+1F853 ; [*1782.0020.0002] # DOWNWARDS SANS-SERIF ARROW
+1F854 ; [*1783.0020.0002] # NORTH WEST SANS-SERIF ARROW
+1F855 ; [*1784.0020.0002] # NORTH EAST SANS-SERIF ARROW
+1F856 ; [*1785.0020.0002] # SOUTH EAST SANS-SERIF ARROW
+1F857 ; [*1786.0020.0002] # SOUTH WEST SANS-SERIF ARROW
+1F858 ; [*1787.0020.0002] # LEFT RIGHT SANS-SERIF ARROW
+1F859 ; [*1788.0020.0002] # UP DOWN SANS-SERIF ARROW
+1F860 ; [*1789.0020.0002] # WIDE-HEADED LEFTWARDS LIGHT BARB ARROW
+1F861 ; [*178A.0020.0002] # WIDE-HEADED UPWARDS LIGHT BARB ARROW
+1F862 ; [*178B.0020.0002] # WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW
+1F863 ; [*178C.0020.0002] # WIDE-HEADED DOWNWARDS LIGHT BARB ARROW
+1F864 ; [*178D.0020.0002] # WIDE-HEADED NORTH WEST LIGHT BARB ARROW
+1F865 ; [*178E.0020.0002] # WIDE-HEADED NORTH EAST LIGHT BARB ARROW
+1F866 ; [*178F.0020.0002] # WIDE-HEADED SOUTH EAST LIGHT BARB ARROW
+1F867 ; [*1790.0020.0002] # WIDE-HEADED SOUTH WEST LIGHT BARB ARROW
+1F868 ; [*1791.0020.0002] # WIDE-HEADED LEFTWARDS BARB ARROW
+1F869 ; [*1792.0020.0002] # WIDE-HEADED UPWARDS BARB ARROW
+1F86A ; [*1793.0020.0002] # WIDE-HEADED RIGHTWARDS BARB ARROW
+1F86B ; [*1794.0020.0002] # WIDE-HEADED DOWNWARDS BARB ARROW
+1F86C ; [*1795.0020.0002] # WIDE-HEADED NORTH WEST BARB ARROW
+1F86D ; [*1796.0020.0002] # WIDE-HEADED NORTH EAST BARB ARROW
+1F86E ; [*1797.0020.0002] # WIDE-HEADED SOUTH EAST BARB ARROW
+1F86F ; [*1798.0020.0002] # WIDE-HEADED SOUTH WEST BARB ARROW
+1F870 ; [*1799.0020.0002] # WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW
+1F871 ; [*179A.0020.0002] # WIDE-HEADED UPWARDS MEDIUM BARB ARROW
+1F872 ; [*179B.0020.0002] # WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW
+1F873 ; [*179C.0020.0002] # WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW
+1F874 ; [*179D.0020.0002] # WIDE-HEADED NORTH WEST MEDIUM BARB ARROW
+1F875 ; [*179E.0020.0002] # WIDE-HEADED NORTH EAST MEDIUM BARB ARROW
+1F876 ; [*179F.0020.0002] # WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW
+1F877 ; [*17A0.0020.0002] # WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW
+1F878 ; [*17A1.0020.0002] # WIDE-HEADED LEFTWARDS HEAVY BARB ARROW
+1F879 ; [*17A2.0020.0002] # WIDE-HEADED UPWARDS HEAVY BARB ARROW
+1F87A ; [*17A3.0020.0002] # WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW
+1F87B ; [*17A4.0020.0002] # WIDE-HEADED DOWNWARDS HEAVY BARB ARROW
+1F87C ; [*17A5.0020.0002] # WIDE-HEADED NORTH WEST HEAVY BARB ARROW
+1F87D ; [*17A6.0020.0002] # WIDE-HEADED NORTH EAST HEAVY BARB ARROW
+1F87E ; [*17A7.0020.0002] # WIDE-HEADED SOUTH EAST HEAVY BARB ARROW
+1F87F ; [*17A8.0020.0002] # WIDE-HEADED SOUTH WEST HEAVY BARB ARROW
+1F880 ; [*17A9.0020.0002] # WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW
+1F881 ; [*17AA.0020.0002] # WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW
+1F882 ; [*17AB.0020.0002] # WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW
+1F883 ; [*17AC.0020.0002] # WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW
+1F884 ; [*17AD.0020.0002] # WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW
+1F885 ; [*17AE.0020.0002] # WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW
+1F886 ; [*17AF.0020.0002] # WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW
+1F887 ; [*17B0.0020.0002] # WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890 ; [*17B1.0020.0002] # LEFTWARDS TRIANGLE ARROWHEAD
+1F891 ; [*17B2.0020.0002] # UPWARDS TRIANGLE ARROWHEAD
+1F892 ; [*17B3.0020.0002] # RIGHTWARDS TRIANGLE ARROWHEAD
+1F893 ; [*17B4.0020.0002] # DOWNWARDS TRIANGLE ARROWHEAD
+1F894 ; [*17B5.0020.0002] # LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F895 ; [*17B6.0020.0002] # UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F896 ; [*17B7.0020.0002] # RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F897 ; [*17B8.0020.0002] # DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD
+1F898 ; [*17B9.0020.0002] # LEFTWARDS ARROW WITH NOTCHED TAIL
+1F899 ; [*17BA.0020.0002] # UPWARDS ARROW WITH NOTCHED TAIL
+1F89A ; [*17BB.0020.0002] # RIGHTWARDS ARROW WITH NOTCHED TAIL
+1F89B ; [*17BC.0020.0002] # DOWNWARDS ARROW WITH NOTCHED TAIL
+1F89C ; [*17BD.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE
+1F89D ; [*17BE.0020.0002] # HEAVY ARROW SHAFT WIDTH TWO THIRDS
+1F89E ; [*17BF.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE HALF
+1F89F ; [*17C0.0020.0002] # HEAVY ARROW SHAFT WIDTH ONE THIRD
+1F8A0 ; [*17C1.0020.0002] # LEFTWARDS BOTTOM-SHADED WHITE ARROW
+1F8A1 ; [*17C2.0020.0002] # RIGHTWARDS BOTTOM SHADED WHITE ARROW
+1F8A2 ; [*17C3.0020.0002] # LEFTWARDS TOP SHADED WHITE ARROW
+1F8A3 ; [*17C4.0020.0002] # RIGHTWARDS TOP SHADED WHITE ARROW
+1F8A4 ; [*17C5.0020.0002] # LEFTWARDS LEFT-SHADED WHITE ARROW
+1F8A5 ; [*17C6.0020.0002] # RIGHTWARDS RIGHT-SHADED WHITE ARROW
+1F8A6 ; [*17C7.0020.0002] # LEFTWARDS RIGHT-SHADED WHITE ARROW
+1F8A7 ; [*17C8.0020.0002] # RIGHTWARDS LEFT-SHADED WHITE ARROW
+1F8A8 ; [*17C9.0020.0002] # LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
+1F8A9 ; [*17CA.0020.0002] # RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW
+1F8AA ; [*17CB.0020.0002] # LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW
+1F8AB ; [*17CC.0020.0002] # RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW
+1F8AC ; [*17CD.0020.0002] # WHITE ARROW SHAFT WIDTH ONE
+1F8AD ; [*17CE.0020.0002] # WHITE ARROW SHAFT WIDTH TWO THIRDS
+1F910 ; [*1581.0020.0002] # ZIPPER-MOUTH FACE
+1F911 ; [*1582.0020.0002] # MONEY-MOUTH FACE
+1F912 ; [*1583.0020.0002] # FACE WITH THERMOMETER
+1F913 ; [*1584.0020.0002] # NERD FACE
+1F914 ; [*1585.0020.0002] # THINKING FACE
+1F915 ; [*1586.0020.0002] # FACE WITH HEAD-BANDAGE
+1F916 ; [*1587.0020.0002] # ROBOT FACE
+1F917 ; [*1588.0020.0002] # HUGGING FACE
+1F918 ; [*1589.0020.0002] # SIGN OF THE HORNS
+1F980 ; [*158A.0020.0002] # CRAB
+1F981 ; [*158B.0020.0002] # LION FACE
+1F982 ; [*158C.0020.0002] # SCORPION
+1F983 ; [*158D.0020.0002] # TURKEY
+1F984 ; [*158E.0020.0002] # UNICORN FACE
+1F9C0 ; [*158F.0020.0002] # CHEESE WEDGE
0332 ; [.0000.0021.0002] # COMBINING LOW LINE
0313 ; [.0000.0022.0002] # COMBINING COMMA ABOVE
0343 ; [.0000.0022.0002] # COMBINING GREEK KORONIS
@@ -6975,6 +7796,7 @@ FE29 ; [.0000.004E.0002] # COMBINING TILDE LEFT HALF BELOW
0361 ; [.0000.004F.0002] # COMBINING DOUBLE INVERTED BREVE
FE20 ; [.0000.004F.0002] # COMBINING LIGATURE LEFT HALF
0483 ; [.0000.0050.0002] # COMBINING CYRILLIC TITLO
+FE2E ; [.0000.0050.0002] # COMBINING CYRILLIC TITLO LEFT HALF
A66F ; [.0000.0051.0002] # COMBINING CYRILLIC VZMET
05B0 ; [.0000.0052.0002] # HEBREW POINT SHEVA
05B1 ; [.0000.0053.0002] # HEBREW POINT HATAF SEGOL
@@ -7055,7 +7877,7 @@ FC62 ; [.0000.007D.001A][.0000.0080.001A] # ARABIC LIGATURE SHADDA WITH KASRA I
11237 ; [.0000.0080.0002] # KHOJKI SIGN SHADDA
FE7D ; [.0000.0080.0018] # ARABIC SHADDA MEDIAL FORM
FE7C ; [.0000.0080.001A] # ARABIC SHADDA ISOLATED FORM
-FC63 ; [.0000.0080.001A][.0000.0097.001A] # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC63 ; [.0000.0080.001A][.0000.0098.001A] # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
0652 ; [.0000.0081.0002] # ARABIC SUKUN
FE7F ; [.0000.0081.0018] # ARABIC SUKUN MEDIAL FORM
FE7E ; [.0000.0081.001A] # ARABIC SUKUN ISOLATED FORM
@@ -7073,19430 +7895,20687 @@ FE7E ; [.0000.0081.001A] # ARABIC SUKUN ISOLATED FORM
065C ; [.0000.008D.0002] # ARABIC VOWEL SIGN DOT BELOW
065D ; [.0000.008E.0002] # ARABIC REVERSED DAMMA
065E ; [.0000.008F.0002] # ARABIC FATHA WITH TWO DOTS
-08F7 ; [.0000.0090.0002] # ARABIC LEFT ARROWHEAD ABOVE
-08F8 ; [.0000.0091.0002] # ARABIC RIGHT ARROWHEAD ABOVE
-08FD ; [.0000.0092.0002] # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
-08FB ; [.0000.0093.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE
-08FC ; [.0000.0094.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
-08F9 ; [.0000.0095.0002] # ARABIC LEFT ARROWHEAD BELOW
-08FA ; [.0000.0096.0002] # ARABIC RIGHT ARROWHEAD BELOW
-0670 ; [.0000.0097.0002] # ARABIC LETTER SUPERSCRIPT ALEF
-0711 ; [.0000.0098.0002] # SYRIAC LETTER SUPERSCRIPT ALAPH
-0730 ; [.0000.0099.0002] # SYRIAC PTHAHA ABOVE
-0731 ; [.0000.009A.0002] # SYRIAC PTHAHA BELOW
-0732 ; [.0000.009B.0002] # SYRIAC PTHAHA DOTTED
-0733 ; [.0000.009C.0002] # SYRIAC ZQAPHA ABOVE
-0734 ; [.0000.009D.0002] # SYRIAC ZQAPHA BELOW
-0735 ; [.0000.009E.0002] # SYRIAC ZQAPHA DOTTED
-0736 ; [.0000.009F.0002] # SYRIAC RBASA ABOVE
-0737 ; [.0000.00A0.0002] # SYRIAC RBASA BELOW
-0738 ; [.0000.00A1.0002] # SYRIAC DOTTED ZLAMA HORIZONTAL
-0739 ; [.0000.00A2.0002] # SYRIAC DOTTED ZLAMA ANGULAR
-073A ; [.0000.00A3.0002] # SYRIAC HBASA ABOVE
-073B ; [.0000.00A4.0002] # SYRIAC HBASA BELOW
-073C ; [.0000.00A5.0002] # SYRIAC HBASA-ESASA DOTTED
-073D ; [.0000.00A6.0002] # SYRIAC ESASA ABOVE
-073E ; [.0000.00A7.0002] # SYRIAC ESASA BELOW
-073F ; [.0000.00A8.0002] # SYRIAC RWAHA
-07EB ; [.0000.00A9.0002] # NKO COMBINING SHORT HIGH TONE
-07EC ; [.0000.00AA.0002] # NKO COMBINING SHORT LOW TONE
-07ED ; [.0000.00AB.0002] # NKO COMBINING SHORT RISING TONE
-07EE ; [.0000.00AC.0002] # NKO COMBINING LONG DESCENDING TONE
-07EF ; [.0000.00AD.0002] # NKO COMBINING LONG HIGH TONE
-07F0 ; [.0000.00AE.0002] # NKO COMBINING LONG LOW TONE
-07F1 ; [.0000.00AF.0002] # NKO COMBINING LONG RISING TONE
-07F2 ; [.0000.00B0.0002] # NKO COMBINING NASALIZATION MARK
-07F3 ; [.0000.00B1.0002] # NKO COMBINING DOUBLE DOT ABOVE
-135F ; [.0000.00B2.0002] # ETHIOPIC COMBINING GEMINATION MARK
-135E ; [.0000.00B3.0002] # ETHIOPIC COMBINING VOWEL LENGTH MARK
-135D ; [.0000.00B4.0002] # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
-A6F0 ; [.0000.00B5.0002] # BAMUM COMBINING MARK KOQNDON
-A6F1 ; [.0000.00B6.0002] # BAMUM COMBINING MARK TUKWENTIS
-16AF0 ; [.0000.00B7.0002] # BASSA VAH COMBINING HIGH TONE
-16AF1 ; [.0000.00B8.0002] # BASSA VAH COMBINING LOW TONE
-16AF2 ; [.0000.00B9.0002] # BASSA VAH COMBINING MID TONE
-16AF3 ; [.0000.00BA.0002] # BASSA VAH COMBINING LOW-MID TONE
-16AF4 ; [.0000.00BB.0002] # BASSA VAH COMBINING HIGH-LOW TONE
-093C ; [.0000.00BC.0002] # DEVANAGARI SIGN NUKTA
-09BC ; [.0000.00BC.0002] # BENGALI SIGN NUKTA
-0A3C ; [.0000.00BC.0002] # GURMUKHI SIGN NUKTA
-0ABC ; [.0000.00BC.0002] # GUJARATI SIGN NUKTA
-0B3C ; [.0000.00BC.0002] # ORIYA SIGN NUKTA
-0CBC ; [.0000.00BC.0002] # KANNADA SIGN NUKTA
-1B34 ; [.0000.00BC.0002] # BALINESE SIGN REREKAN
-1BE6 ; [.0000.00BC.0002] # BATAK SIGN TOMPI
-1C37 ; [.0000.00BC.0002] # LEPCHA SIGN NUKTA
-A9B3 ; [.0000.00BC.0002] # JAVANESE SIGN CECAK TELU
-110BA ; [.0000.00BC.0002] # KAITHI SIGN NUKTA
-11173 ; [.0000.00BC.0002] # MAHAJANI SIGN NUKTA
-11236 ; [.0000.00BC.0002] # KHOJKI SIGN NUKTA
-112E9 ; [.0000.00BC.0002] # KHUDAWADI SIGN NUKTA
-1133C ; [.0000.00BC.0002] # GRANTHA SIGN NUKTA
-114C3 ; [.0000.00BC.0002] # TIRHUTA SIGN NUKTA
-115C0 ; [.0000.00BC.0002] # SIDDHAM SIGN NUKTA
-116B7 ; [.0000.00BC.0002] # TAKRI SIGN NUKTA
-0900 ; [.0000.00BD.0002] # DEVANAGARI SIGN INVERTED CANDRABINDU
-0901 ; [.0000.00BD.0002] # DEVANAGARI SIGN CANDRABINDU
-0981 ; [.0000.00BD.0002] # BENGALI SIGN CANDRABINDU
-0A01 ; [.0000.00BD.0002] # GURMUKHI SIGN ADAK BINDI
-0A81 ; [.0000.00BD.0002] # GUJARATI SIGN CANDRABINDU
-0B01 ; [.0000.00BD.0002] # ORIYA SIGN CANDRABINDU
-0C00 ; [.0000.00BD.0002] # TELUGU SIGN COMBINING CANDRABINDU ABOVE
-0C01 ; [.0000.00BD.0002] # TELUGU SIGN CANDRABINDU
-0C81 ; [.0000.00BD.0002] # KANNADA SIGN CANDRABINDU
-0D01 ; [.0000.00BD.0002] # MALAYALAM SIGN CANDRABINDU
-1B00 ; [.0000.00BD.0002] # BALINESE SIGN ULU RICEM
-1B01 ; [.0000.00BD.0002] # BALINESE SIGN ULU CANDRA
-A980 ; [.0000.00BD.0002] # JAVANESE SIGN PANYANGGA
-11000 ; [.0000.00BD.0002] # BRAHMI SIGN CANDRABINDU
-11080 ; [.0000.00BD.0002] # KAITHI SIGN CANDRABINDU
-11100 ; [.0000.00BD.0002] # CHAKMA SIGN CANDRABINDU
-11180 ; [.0000.00BD.0002] # SHARADA SIGN CANDRABINDU
-11301 ; [.0000.00BD.0002] # GRANTHA SIGN CANDRABINDU
-114BF ; [.0000.00BD.0002] # TIRHUTA SIGN CANDRABINDU
-115BC ; [.0000.00BD.0002] # SIDDHAM SIGN CANDRABINDU
-11640 ; [.0000.00BD.0002] # MODI SIGN ARDHACANDRA
-0902 ; [.0000.00BE.0002] # DEVANAGARI SIGN ANUSVARA
-0982 ; [.0000.00BE.0002] # BENGALI SIGN ANUSVARA
-0A02 ; [.0000.00BE.0002] # GURMUKHI SIGN BINDI
-0A82 ; [.0000.00BE.0002] # GUJARATI SIGN ANUSVARA
-0B02 ; [.0000.00BE.0002] # ORIYA SIGN ANUSVARA
-0B82 ; [.0000.00BE.0002] # TAMIL SIGN ANUSVARA
-0C02 ; [.0000.00BE.0002] # TELUGU SIGN ANUSVARA
-0C82 ; [.0000.00BE.0002] # KANNADA SIGN ANUSVARA
-0D02 ; [.0000.00BE.0002] # MALAYALAM SIGN ANUSVARA
-0D82 ; [.0000.00BE.0002] # SINHALA SIGN ANUSVARAYA
-0F7E ; [.0000.00BE.0002] # TIBETAN SIGN RJES SU NGA RO
-1036 ; [.0000.00BE.0002] # MYANMAR SIGN ANUSVARA
-17C6 ; [.0000.00BE.0002] # KHMER SIGN NIKAHIT
-1A74 ; [.0000.00BE.0002] # TAI THAM SIGN MAI KANG
-1B02 ; [.0000.00BE.0002] # BALINESE SIGN CECEK
-1B80 ; [.0000.00BE.0002] # SUNDANESE SIGN PANYECEK
-1CED ; [.0000.00BE.0002] # VEDIC SIGN TIRYAK
-A80B ; [.0000.00BE.0002] # SYLOTI NAGRI SIGN ANUSVARA
-A880 ; [.0000.00BE.0002] # SAURASHTRA SIGN ANUSVARA
-A981 ; [.0000.00BE.0002] # JAVANESE SIGN CECAK
-10A0E ; [.0000.00BE.0002] # KHAROSHTHI SIGN ANUSVARA
-11001 ; [.0000.00BE.0002] # BRAHMI SIGN ANUSVARA
-11081 ; [.0000.00BE.0002] # KAITHI SIGN ANUSVARA
-11101 ; [.0000.00BE.0002] # CHAKMA SIGN ANUSVARA
-11181 ; [.0000.00BE.0002] # SHARADA SIGN ANUSVARA
-11234 ; [.0000.00BE.0002] # KHOJKI SIGN ANUSVARA
-112DF ; [.0000.00BE.0002] # KHUDAWADI SIGN ANUSVARA
-11302 ; [.0000.00BE.0002] # GRANTHA SIGN ANUSVARA
-114C0 ; [.0000.00BE.0002] # TIRHUTA SIGN ANUSVARA
-115BD ; [.0000.00BE.0002] # SIDDHAM SIGN ANUSVARA
-1163D ; [.0000.00BE.0002] # MODI SIGN ANUSVARA
-116AB ; [.0000.00BE.0002] # TAKRI SIGN ANUSVARA
-0903 ; [.0000.00BF.0002] # DEVANAGARI SIGN VISARGA
-0983 ; [.0000.00BF.0002] # BENGALI SIGN VISARGA
-0A03 ; [.0000.00BF.0002] # GURMUKHI SIGN VISARGA
-0A83 ; [.0000.00BF.0002] # GUJARATI SIGN VISARGA
-0B03 ; [.0000.00BF.0002] # ORIYA SIGN VISARGA
-0C03 ; [.0000.00BF.0002] # TELUGU SIGN VISARGA
-0C83 ; [.0000.00BF.0002] # KANNADA SIGN VISARGA
-0D03 ; [.0000.00BF.0002] # MALAYALAM SIGN VISARGA
-0D83 ; [.0000.00BF.0002] # SINHALA SIGN VISARGAYA
-0F7F ; [.0000.00BF.0002] # TIBETAN SIGN RNAM BCAD
-1038 ; [.0000.00BF.0002] # MYANMAR SIGN VISARGA
-17C7 ; [.0000.00BF.0002] # KHMER SIGN REAHMUK
-1B04 ; [.0000.00BF.0002] # BALINESE SIGN BISAH
-1B82 ; [.0000.00BF.0002] # SUNDANESE SIGN PANGWISAD
-1CF2 ; [.0000.00BF.0002] # VEDIC SIGN ARDHAVISARGA
-1CF3 ; [.0000.00BF.0002] # VEDIC SIGN ROTATED ARDHAVISARGA
-A881 ; [.0000.00BF.0002] # SAURASHTRA SIGN VISARGA
-A983 ; [.0000.00BF.0002] # JAVANESE SIGN WIGNYAN
-10A0F ; [.0000.00BF.0002] # KHAROSHTHI SIGN VISARGA
-11002 ; [.0000.00BF.0002] # BRAHMI SIGN VISARGA
-11082 ; [.0000.00BF.0002] # KAITHI SIGN VISARGA
-11102 ; [.0000.00BF.0002] # CHAKMA SIGN VISARGA
-11182 ; [.0000.00BF.0002] # SHARADA SIGN VISARGA
-11303 ; [.0000.00BF.0002] # GRANTHA SIGN VISARGA
-114C1 ; [.0000.00BF.0002] # TIRHUTA SIGN VISARGA
-115BE ; [.0000.00BF.0002] # SIDDHAM SIGN VISARGA
-1163E ; [.0000.00BF.0002] # MODI SIGN VISARGA
-116AC ; [.0000.00BF.0002] # TAKRI SIGN VISARGA
-0A70 ; [.0000.00C0.0002] # GURMUKHI TIPPI
-0A71 ; [.0000.00C1.0002] # GURMUKHI ADDAK
-1B03 ; [.0000.00C2.0002] # BALINESE SIGN SURANG
-A982 ; [.0000.00C3.0002] # JAVANESE SIGN LAYAR
-1B81 ; [.0000.00C4.0002] # SUNDANESE SIGN PANGLAYAR
-ABEC ; [.0000.00C5.0002] # MEETEI MAYEK LUM IYEK
-10A38 ; [.0000.00C6.0002] # KHAROSHTHI SIGN BAR ABOVE
-10A39 ; [.0000.00C7.0002] # KHAROSHTHI SIGN CAUDA
-10A3A ; [.0000.00C8.0002] # KHAROSHTHI SIGN DOT BELOW
-0E4E ; [.0000.00C9.0002] # THAI CHARACTER YAMAKKAN
-0E47 ; [.0000.00CA.0002] # THAI CHARACTER MAITAIKHU
-0E48 ; [.0000.00CB.0002] # THAI CHARACTER MAI EK
-0E49 ; [.0000.00CC.0002] # THAI CHARACTER MAI THO
-0E4A ; [.0000.00CD.0002] # THAI CHARACTER MAI TRI
-0E4B ; [.0000.00CE.0002] # THAI CHARACTER MAI CHATTAWA
-0E4C ; [.0000.00CF.0002] # THAI CHARACTER THANTHAKHAT
-0E4D ; [.0000.00D0.0002] # THAI CHARACTER NIKHAHIT
-0EC8 ; [.0000.00D1.0002] # LAO TONE MAI EK
-0EC9 ; [.0000.00D2.0002] # LAO TONE MAI THO
-0ECA ; [.0000.00D3.0002] # LAO TONE MAI TI
-0ECB ; [.0000.00D4.0002] # LAO TONE MAI CATAWA
-0ECC ; [.0000.00D5.0002] # LAO CANCELLATION MARK
-0ECD ; [.0000.00D6.0002] # LAO NIGGAHITA
-AABF ; [.0000.00D7.0002] # TAI VIET TONE MAI EK
-AAC1 ; [.0000.00D8.0002] # TAI VIET TONE MAI THO
-0F39 ; [.0000.00D9.0002] # TIBETAN MARK TSA -PHRU
-A92B ; [.0000.00DA.0002] # KAYAH LI TONE PLOPHU
-A92C ; [.0000.00DB.0002] # KAYAH LI TONE CALYA
-A92D ; [.0000.00DC.0002] # KAYAH LI TONE CALYA PLOPHU
-1037 ; [.0000.00DD.0002] # MYANMAR SIGN DOT BELOW
-17C8 ; [.0000.00DE.0002] # KHMER SIGN YUUKALEAPINTU
-17C9 ; [.0000.00DF.0002] # KHMER SIGN MUUSIKATOAN
-17CA ; [.0000.00E0.0002] # KHMER SIGN TRIISAP
-1A75 ; [.0000.00E1.0002] # TAI THAM SIGN TONE-1
-1A76 ; [.0000.00E2.0002] # TAI THAM SIGN TONE-2
-1A77 ; [.0000.00E3.0002] # TAI THAM SIGN KHUEN TONE-3
-1A78 ; [.0000.00E4.0002] # TAI THAM SIGN KHUEN TONE-4
-1A79 ; [.0000.00E5.0002] # TAI THAM SIGN KHUEN TONE-5
-1A7A ; [.0000.00E6.0002] # TAI THAM SIGN RA HAAM
-1A7B ; [.0000.00E7.0002] # TAI THAM SIGN MAI SAM
-1A7C ; [.0000.00E8.0002] # TAI THAM SIGN KHUEN-LUE KARAN
-1939 ; [.0000.00E9.0002] # LIMBU SIGN MUKPHRENG
-193A ; [.0000.00EA.0002] # LIMBU SIGN KEMPHRENG
-193B ; [.0000.00EB.0002] # LIMBU SIGN SA-I
-16B30 ; [.0000.00EC.0002] # PAHAWH HMONG MARK CIM TUB
-16B31 ; [.0000.00ED.0002] # PAHAWH HMONG MARK CIM SO
-16B32 ; [.0000.00EE.0002] # PAHAWH HMONG MARK CIM KES
-16B33 ; [.0000.00EF.0002] # PAHAWH HMONG MARK CIM KHAV
-16B34 ; [.0000.00F0.0002] # PAHAWH HMONG MARK CIM SUAM
-16B35 ; [.0000.00F1.0002] # PAHAWH HMONG MARK CIM HOM
-16B36 ; [.0000.00F2.0002] # PAHAWH HMONG MARK CIM TAUM
-302A ; [.0000.00F3.0002] # IDEOGRAPHIC LEVEL TONE MARK
-302B ; [.0000.00F4.0002] # IDEOGRAPHIC RISING TONE MARK
-302C ; [.0000.00F5.0002] # IDEOGRAPHIC DEPARTING TONE MARK
-302D ; [.0000.00F6.0002] # IDEOGRAPHIC ENTERING TONE MARK
-302E ; [.0000.00F7.0002] # HANGUL SINGLE DOT TONE MARK
-302F ; [.0000.00F8.0002] # HANGUL DOUBLE DOT TONE MARK
-20D0 ; [.0000.00F9.0002] # COMBINING LEFT HARPOON ABOVE
-20D1 ; [.0000.00FA.0002] # COMBINING RIGHT HARPOON ABOVE
-20D2 ; [.0000.00FB.0002] # COMBINING LONG VERTICAL LINE OVERLAY
-20D3 ; [.0000.00FB.0002] # COMBINING SHORT VERTICAL LINE OVERLAY
-20D4 ; [.0000.00FC.0002] # COMBINING ANTICLOCKWISE ARROW ABOVE
-20D5 ; [.0000.00FD.0002] # COMBINING CLOCKWISE ARROW ABOVE
-20D6 ; [.0000.00FE.0002] # COMBINING LEFT ARROW ABOVE
-20D7 ; [.0000.00FF.0002] # COMBINING RIGHT ARROW ABOVE
-20DB ; [.0000.0100.0002] # COMBINING THREE DOTS ABOVE
-20DC ; [.0000.0101.0002] # COMBINING FOUR DOTS ABOVE
-20E1 ; [.0000.0102.0002] # COMBINING LEFT RIGHT ARROW ABOVE
-20E6 ; [.0000.0103.0002] # COMBINING DOUBLE VERTICAL STROKE OVERLAY
-20E7 ; [.0000.0104.0002] # COMBINING ANNUITY SYMBOL
-20E8 ; [.0000.0105.0002] # COMBINING TRIPLE UNDERDOT
-20E9 ; [.0000.0106.0002] # COMBINING WIDE BRIDGE ABOVE
-101FD ; [.0000.0107.0002] # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-02D0 ; [.18BF.0020.0002] # MODIFIER LETTER TRIANGULAR COLON
-02D1 ; [.18C0.0020.0002] # MODIFIER LETTER HALF TRIANGULAR COLON
-0971 ; [.18C1.0020.0002] # DEVANAGARI SIGN HIGH SPACING DOT
-0E46 ; [.18C2.0020.0002] # THAI CHARACTER MAIYAMOK
-0EC6 ; [.18C3.0020.0002] # LAO KO LA
-17D7 ; [.18C4.0020.0002] # KHMER SIGN LEK TOO
-1AA7 ; [.18C5.0020.0002] # TAI THAM SIGN MAI YAMOK
-A9CF ; [.18C6.0020.0002] # JAVANESE PANGRANGKEP
-A9E6 ; [.18C7.0020.0002] # MYANMAR MODIFIER LETTER SHAN REDUPLICATION
-AA70 ; [.18C8.0020.0002] # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
-AADD ; [.18C9.0020.0002] # TAI VIET SYMBOL SAM
-AAF3 ; [.18CA.0020.0002] # MEETEI MAYEK SYLLABLE REPETITION MARK
-AAF4 ; [.18CB.0020.0002] # MEETEI MAYEK WORD REPETITION MARK
-16B42 ; [.18CC.0020.0002] # PAHAWH HMONG SIGN VOS NRUA
-16B43 ; [.18CD.0020.0002] # PAHAWH HMONG SIGN IB YAM
-3005 ; [.18CE.0020.0002] # IDEOGRAPHIC ITERATION MARK
-303B ; [.18CF.0020.0002] # VERTICAL IDEOGRAPHIC ITERATION MARK
-3031 ; [.18D0.0020.0002] # VERTICAL KANA REPEAT MARK
-3032 ; [.18D0.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK
-3033 ; [.18D1.0020.0002] # VERTICAL KANA REPEAT MARK UPPER HALF
-3034 ; [.18D1.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
-3035 ; [.18D2.0020.0002] # VERTICAL KANA REPEAT MARK LOWER HALF
-309D ; [.18D3.0020.0002] # HIRAGANA ITERATION MARK
-309E ; [.18D3.0020.0002][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
-30FC ; [.18D4.0020.0002] # KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF70 ; [.18D4.0020.0012] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-30FD ; [.18D5.0020.0002] # KATAKANA ITERATION MARK
-30FE ; [.18D5.0020.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
-00A4 ; [.18D6.0020.0002] # CURRENCY SIGN
-00A2 ; [.18D7.0020.0002] # CENT SIGN
-FFE0 ; [.18D7.0020.0003] # FULLWIDTH CENT SIGN
-0024 ; [.18D8.0020.0002] # DOLLAR SIGN
-FF04 ; [.18D8.0020.0003] # FULLWIDTH DOLLAR SIGN
-FE69 ; [.18D8.0020.000F] # SMALL DOLLAR SIGN
-00A3 ; [.18D9.0020.0002] # POUND SIGN
-FFE1 ; [.18D9.0020.0003] # FULLWIDTH POUND SIGN
-00A5 ; [.18DA.0020.0002] # YEN SIGN
-FFE5 ; [.18DA.0020.0003] # FULLWIDTH YEN SIGN
-058F ; [.18DB.0020.0002] # ARMENIAN DRAM SIGN
-060B ; [.18DC.0020.0002] # AFGHANI SIGN
-09F2 ; [.18DD.0020.0002] # BENGALI RUPEE MARK
-09F3 ; [.18DE.0020.0002] # BENGALI RUPEE SIGN
-09FB ; [.18DF.0020.0002] # BENGALI GANDA MARK
-0AF1 ; [.18E0.0020.0002] # GUJARATI RUPEE SIGN
-A838 ; [.18E1.0020.0002] # NORTH INDIC RUPEE MARK
-0BF9 ; [.18E2.0020.0002] # TAMIL RUPEE SIGN
-0E3F ; [.18E3.0020.0002] # THAI CURRENCY SYMBOL BAHT
-17DB ; [.18E4.0020.0002] # KHMER CURRENCY SYMBOL RIEL
-20A0 ; [.18E5.0020.0002] # EURO-CURRENCY SIGN
-20A1 ; [.18E6.0020.0002] # COLON SIGN
-20A2 ; [.18E7.0020.0002] # CRUZEIRO SIGN
-20A3 ; [.18E8.0020.0002] # FRENCH FRANC SIGN
-20A4 ; [.18E9.0020.0002] # LIRA SIGN
-20A5 ; [.18EA.0020.0002] # MILL SIGN
-20A6 ; [.18EB.0020.0002] # NAIRA SIGN
-20A7 ; [.18EC.0020.0002] # PESETA SIGN
-20A9 ; [.18ED.0020.0002] # WON SIGN
-FFE6 ; [.18ED.0020.0003] # FULLWIDTH WON SIGN
-20AA ; [.18EE.0020.0002] # NEW SHEQEL SIGN
-20AB ; [.18EF.0020.0002] # DONG SIGN
-20AC ; [.18F0.0020.0002] # EURO SIGN
-20AD ; [.18F1.0020.0002] # KIP SIGN
-20AE ; [.18F2.0020.0002] # TUGRIK SIGN
-20AF ; [.18F3.0020.0002] # DRACHMA SIGN
-20B0 ; [.18F4.0020.0002] # GERMAN PENNY SIGN
-20B1 ; [.18F5.0020.0002] # PESO SIGN
-20B2 ; [.18F6.0020.0002] # GUARANI SIGN
-20B3 ; [.18F7.0020.0002] # AUSTRAL SIGN
-20B4 ; [.18F8.0020.0002] # HRYVNIA SIGN
-20B5 ; [.18F9.0020.0002] # CEDI SIGN
-20B6 ; [.18FA.0020.0002] # LIVRE TOURNOIS SIGN
-20B7 ; [.18FB.0020.0002] # SPESMILO SIGN
-20B8 ; [.18FC.0020.0002] # TENGE SIGN
-20B9 ; [.18FD.0020.0002] # INDIAN RUPEE SIGN
-20BA ; [.18FE.0020.0002] # TURKISH LIRA SIGN
-20BB ; [.18FF.0020.0002] # NORDIC MARK SIGN
-20BC ; [.1900.0020.0002] # MANAT SIGN
-20BD ; [.1901.0020.0002] # RUBLE SIGN
-0030 ; [.1902.0020.0002] # DIGIT ZERO
-0660 ; [.1902.0020.0002] # ARABIC-INDIC DIGIT ZERO
-06F0 ; [.1902.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ZERO
-07C0 ; [.1902.0020.0002] # NKO DIGIT ZERO
-0966 ; [.1902.0020.0002] # DEVANAGARI DIGIT ZERO
-09E6 ; [.1902.0020.0002] # BENGALI DIGIT ZERO
-0A66 ; [.1902.0020.0002] # GURMUKHI DIGIT ZERO
-0AE6 ; [.1902.0020.0002] # GUJARATI DIGIT ZERO
-0B66 ; [.1902.0020.0002] # ORIYA DIGIT ZERO
-0BE6 ; [.1902.0020.0002] # TAMIL DIGIT ZERO
-0C66 ; [.1902.0020.0002] # TELUGU DIGIT ZERO
-0C78 ; [.1902.0020.0002] # TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
-0CE6 ; [.1902.0020.0002] # KANNADA DIGIT ZERO
-0D66 ; [.1902.0020.0002] # MALAYALAM DIGIT ZERO
-0DE6 ; [.1902.0020.0002] # SINHALA LITH DIGIT ZERO
-0E50 ; [.1902.0020.0002] # THAI DIGIT ZERO
-0ED0 ; [.1902.0020.0002] # LAO DIGIT ZERO
-0F20 ; [.1902.0020.0002] # TIBETAN DIGIT ZERO
-1040 ; [.1902.0020.0002] # MYANMAR DIGIT ZERO
-1090 ; [.1902.0020.0002] # MYANMAR SHAN DIGIT ZERO
-17E0 ; [.1902.0020.0002] # KHMER DIGIT ZERO
-17F0 ; [.1902.0020.0002] # KHMER SYMBOL LEK ATTAK SON
-1810 ; [.1902.0020.0002] # MONGOLIAN DIGIT ZERO
-1946 ; [.1902.0020.0002] # LIMBU DIGIT ZERO
-19D0 ; [.1902.0020.0002] # NEW TAI LUE DIGIT ZERO
-1A80 ; [.1902.0020.0002] # TAI THAM HORA DIGIT ZERO
-1A90 ; [.1902.0020.0002] # TAI THAM THAM DIGIT ZERO
-1B50 ; [.1902.0020.0002] # BALINESE DIGIT ZERO
-1BB0 ; [.1902.0020.0002] # SUNDANESE DIGIT ZERO
-1C40 ; [.1902.0020.0002] # LEPCHA DIGIT ZERO
-1C50 ; [.1902.0020.0002] # OL CHIKI DIGIT ZERO
-3007 ; [.1902.0020.0002] # IDEOGRAPHIC NUMBER ZERO
-A620 ; [.1902.0020.0002] # VAI DIGIT ZERO
-A8D0 ; [.1902.0020.0002] # SAURASHTRA DIGIT ZERO
-A900 ; [.1902.0020.0002] # KAYAH LI DIGIT ZERO
-A9D0 ; [.1902.0020.0002] # JAVANESE DIGIT ZERO
-A9F0 ; [.1902.0020.0002] # MYANMAR TAI LAING DIGIT ZERO
-AA50 ; [.1902.0020.0002] # CHAM DIGIT ZERO
-ABF0 ; [.1902.0020.0002] # MEETEI MAYEK DIGIT ZERO
-1018A ; [.1902.0020.0002] # GREEK ZERO SIGN
-104A0 ; [.1902.0020.0002] # OSMANYA DIGIT ZERO
-11066 ; [.1902.0020.0002] # BRAHMI DIGIT ZERO
-110F0 ; [.1902.0020.0002] # SORA SOMPENG DIGIT ZERO
-11136 ; [.1902.0020.0002] # CHAKMA DIGIT ZERO
-111D0 ; [.1902.0020.0002] # SHARADA DIGIT ZERO
-112F0 ; [.1902.0020.0002] # KHUDAWADI DIGIT ZERO
-114D0 ; [.1902.0020.0002] # TIRHUTA DIGIT ZERO
-11650 ; [.1902.0020.0002] # MODI DIGIT ZERO
-116C0 ; [.1902.0020.0002] # TAKRI DIGIT ZERO
-118E0 ; [.1902.0020.0002] # WARANG CITI DIGIT ZERO
-16A60 ; [.1902.0020.0002] # MRO DIGIT ZERO
-16B50 ; [.1902.0020.0002] # PAHAWH HMONG DIGIT ZERO
-FF10 ; [.1902.0020.0003] # FULLWIDTH DIGIT ZERO
-0F33 ; [.1902.0020.0004] # TIBETAN DIGIT HALF ZERO
-1F100 ; [.1902.0020.0004][*0274.0020.0004] # DIGIT ZERO FULL STOP
-1F101 ; [.1902.0020.0004][*0221.0020.0004] # DIGIT ZERO COMMA
-1D7CE ; [.1902.0020.0005] # MATHEMATICAL BOLD DIGIT ZERO
-1D7D8 ; [.1902.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
-1D7E2 ; [.1902.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ZERO
-1D7EC ; [.1902.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
-1D7F6 ; [.1902.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ZERO
-24EA ; [.1902.0020.0006] # CIRCLED DIGIT ZERO
-24FF ; [.1902.0020.0006] # NEGATIVE CIRCLED DIGIT ZERO
-1F10B ; [.1902.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ZERO
-1F10C ; [.1902.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
-2070 ; [.1902.0020.0014] # SUPERSCRIPT ZERO
-2080 ; [.1902.0020.0015] # SUBSCRIPT ZERO
-2189 ; [.1902.0020.001E][*05E6.0020.001E][.1905.0020.001E] # VULGAR FRACTION ZERO THIRDS
-3358 ; [.1902.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
-0031 ; [.1903.0020.0002] # DIGIT ONE
-0661 ; [.1903.0020.0002] # ARABIC-INDIC DIGIT ONE
-06F1 ; [.1903.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ONE
-07C1 ; [.1903.0020.0002] # NKO DIGIT ONE
-0967 ; [.1903.0020.0002] # DEVANAGARI DIGIT ONE
-09E7 ; [.1903.0020.0002] # BENGALI DIGIT ONE
-0A67 ; [.1903.0020.0002] # GURMUKHI DIGIT ONE
-0AE7 ; [.1903.0020.0002] # GUJARATI DIGIT ONE
-0B67 ; [.1903.0020.0002] # ORIYA DIGIT ONE
-0BE7 ; [.1903.0020.0002] # TAMIL DIGIT ONE
-0C67 ; [.1903.0020.0002] # TELUGU DIGIT ONE
-0C79 ; [.1903.0020.0002] # TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
-0C7C ; [.1903.0020.0002] # TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
-0CE7 ; [.1903.0020.0002] # KANNADA DIGIT ONE
-0D67 ; [.1903.0020.0002] # MALAYALAM DIGIT ONE
-0DE7 ; [.1903.0020.0002] # SINHALA LITH DIGIT ONE
-0E51 ; [.1903.0020.0002] # THAI DIGIT ONE
-0ED1 ; [.1903.0020.0002] # LAO DIGIT ONE
-0F21 ; [.1903.0020.0002] # TIBETAN DIGIT ONE
-1041 ; [.1903.0020.0002] # MYANMAR DIGIT ONE
-1091 ; [.1903.0020.0002] # MYANMAR SHAN DIGIT ONE
-1369 ; [.1903.0020.0002] # ETHIOPIC DIGIT ONE
-17E1 ; [.1903.0020.0002] # KHMER DIGIT ONE
-17F1 ; [.1903.0020.0002] # KHMER SYMBOL LEK ATTAK MUOY
-1811 ; [.1903.0020.0002] # MONGOLIAN DIGIT ONE
-1947 ; [.1903.0020.0002] # LIMBU DIGIT ONE
-19D1 ; [.1903.0020.0002] # NEW TAI LUE DIGIT ONE
-19DA ; [.1903.0020.0002] # NEW TAI LUE THAM DIGIT ONE
-1A81 ; [.1903.0020.0002] # TAI THAM HORA DIGIT ONE
-1A91 ; [.1903.0020.0002] # TAI THAM THAM DIGIT ONE
-1B51 ; [.1903.0020.0002] # BALINESE DIGIT ONE
-1BB1 ; [.1903.0020.0002] # SUNDANESE DIGIT ONE
-1C41 ; [.1903.0020.0002] # LEPCHA DIGIT ONE
-1C51 ; [.1903.0020.0002] # OL CHIKI DIGIT ONE
-3021 ; [.1903.0020.0002] # HANGZHOU NUMERAL ONE
-A621 ; [.1903.0020.0002] # VAI DIGIT ONE
-A8D1 ; [.1903.0020.0002] # SAURASHTRA DIGIT ONE
-A901 ; [.1903.0020.0002] # KAYAH LI DIGIT ONE
-A9D1 ; [.1903.0020.0002] # JAVANESE DIGIT ONE
-A9F1 ; [.1903.0020.0002] # MYANMAR TAI LAING DIGIT ONE
-AA51 ; [.1903.0020.0002] # CHAM DIGIT ONE
-ABF1 ; [.1903.0020.0002] # MEETEI MAYEK DIGIT ONE
-10107 ; [.1903.0020.0002] # AEGEAN NUMBER ONE
-10142 ; [.1903.0020.0002] # GREEK ACROPHONIC ATTIC ONE DRACHMA
-10158 ; [.1903.0020.0002] # GREEK ACROPHONIC HERAEUM ONE PLETHRON
-10159 ; [.1903.0020.0002] # GREEK ACROPHONIC THESPIAN ONE
-1015A ; [.1903.0020.0002] # GREEK ACROPHONIC HERMIONIAN ONE
-102E1 ; [.1903.0020.0002] # COPTIC EPACT DIGIT ONE
-10320 ; [.1903.0020.0002] # OLD ITALIC NUMERAL ONE
-103D1 ; [.1903.0020.0002] # OLD PERSIAN NUMBER ONE
-104A1 ; [.1903.0020.0002] # OSMANYA DIGIT ONE
-10858 ; [.1903.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE
-10879 ; [.1903.0020.0002] # PALMYRENE NUMBER ONE
-108A7 ; [.1903.0020.0002] # NABATAEAN NUMBER ONE
-10916 ; [.1903.0020.0002] # PHOENICIAN NUMBER ONE
-10A40 ; [.1903.0020.0002] # KHAROSHTHI DIGIT ONE
-10A7D ; [.1903.0020.0002] # OLD SOUTH ARABIAN NUMBER ONE
-10A9D ; [.1903.0020.0002] # OLD NORTH ARABIAN NUMBER ONE
-10AEB ; [.1903.0020.0002] # MANICHAEAN NUMBER ONE
-10B58 ; [.1903.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE
-10B78 ; [.1903.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE
-10BA9 ; [.1903.0020.0002] # PSALTER PAHLAVI NUMBER ONE
-10E60 ; [.1903.0020.0002] # RUMI DIGIT ONE
-11052 ; [.1903.0020.0002] # BRAHMI NUMBER ONE
-11067 ; [.1903.0020.0002] # BRAHMI DIGIT ONE
-110F1 ; [.1903.0020.0002] # SORA SOMPENG DIGIT ONE
-11137 ; [.1903.0020.0002] # CHAKMA DIGIT ONE
-111D1 ; [.1903.0020.0002] # SHARADA DIGIT ONE
-111E1 ; [.1903.0020.0002] # SINHALA ARCHAIC DIGIT ONE
-112F1 ; [.1903.0020.0002] # KHUDAWADI DIGIT ONE
-114D1 ; [.1903.0020.0002] # TIRHUTA DIGIT ONE
-11651 ; [.1903.0020.0002] # MODI DIGIT ONE
-116C1 ; [.1903.0020.0002] # TAKRI DIGIT ONE
-118E1 ; [.1903.0020.0002] # WARANG CITI DIGIT ONE
-12415 ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESH2
-1241E ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESHU
-1242C ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE SHARU
-12434 ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BURU
-1244F ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BAN2
-12458 ; [.1903.0020.0002] # CUNEIFORM NUMERIC SIGN ONE ESHE3
-16A61 ; [.1903.0020.0002] # MRO DIGIT ONE
-16B51 ; [.1903.0020.0002] # PAHAWH HMONG DIGIT ONE
-1D360 ; [.1903.0020.0002] # COUNTING ROD UNIT DIGIT ONE
-1E8C7 ; [.1903.0020.0002] # MENDE KIKAKUI DIGIT ONE
-FF11 ; [.1903.0020.0003] # FULLWIDTH DIGIT ONE
-0F2A ; [.1903.0020.0004] # TIBETAN DIGIT HALF ONE
-2474 ; [*030A.0020.0004][.1903.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT ONE
-2488 ; [.1903.0020.0004][*0274.0020.0004] # DIGIT ONE FULL STOP
-1F102 ; [.1903.0020.0004][*0221.0020.0004] # DIGIT ONE COMMA
-1D7CF ; [.1903.0020.0005] # MATHEMATICAL BOLD DIGIT ONE
-1D7D9 ; [.1903.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
-1D7E3 ; [.1903.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ONE
-1D7ED ; [.1903.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
-1D7F7 ; [.1903.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ONE
-2460 ; [.1903.0020.0006] # CIRCLED DIGIT ONE
-24F5 ; [.1903.0020.0006] # DOUBLE CIRCLED DIGIT ONE
-2776 ; [.1903.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT ONE
-2780 ; [.1903.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
-278A ; [.1903.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
-00B9 ; [.1903.0020.0014] # SUPERSCRIPT ONE
-2081 ; [.1903.0020.0015] # SUBSCRIPT ONE
-215F ; [.1903.0020.001E][*05E6.0020.001E] # FRACTION NUMERATOR ONE
-247D ; [*030A.0020.0004][.1903.0020.0004][.1902.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER TEN
-2491 ; [.1903.0020.0004][.1902.0020.0004][*0274.0020.0004] # NUMBER TEN FULL STOP
-2469 ; [.1903.0020.0006][.1902.0020.0006] # CIRCLED NUMBER TEN
-24FE ; [.1903.0020.0006][.1902.0020.0006] # DOUBLE CIRCLED NUMBER TEN
-277F ; [.1903.0020.0006][.1902.0020.0006] # DINGBAT NEGATIVE CIRCLED NUMBER TEN
-2789 ; [.1903.0020.0006][.1902.0020.0006] # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
-2793 ; [.1903.0020.0006][.1902.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-3248 ; [.1903.0020.0006][.1902.0020.0006] # CIRCLED NUMBER TEN ON BLACK SQUARE
-33E9 ; [.1903.0020.0004][.1902.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
-32C9 ; [.1903.0020.0004][.1902.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
-3362 ; [.1903.0020.0004][.1902.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
-247E ; [*030A.0020.0004][.1903.0020.0004][.1903.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER ELEVEN
-2492 ; [.1903.0020.0004][.1903.0020.0004][*0274.0020.0004] # NUMBER ELEVEN FULL STOP
-246A ; [.1903.0020.0006][.1903.0020.0006] # CIRCLED NUMBER ELEVEN
-24EB ; [.1903.0020.0006][.1903.0020.0006] # NEGATIVE CIRCLED NUMBER ELEVEN
-2152 ; [.1903.0020.001E][*05E6.0020.001E][.1903.0020.001E][.1902.0020.001E] # VULGAR FRACTION ONE TENTH
-33EA ; [.1903.0020.0004][.1903.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
-32CA ; [.1903.0020.0004][.1903.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
-3363 ; [.1903.0020.0004][.1903.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
-247F ; [*030A.0020.0004][.1903.0020.0004][.1904.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER TWELVE
-2493 ; [.1903.0020.0004][.1904.0020.0004][*0274.0020.0004] # NUMBER TWELVE FULL STOP
-246B ; [.1903.0020.0006][.1904.0020.0006] # CIRCLED NUMBER TWELVE
-24EC ; [.1903.0020.0006][.1904.0020.0006] # NEGATIVE CIRCLED NUMBER TWELVE
-00BD ; [.1903.0020.001E][*05E6.0020.001E][.1904.0020.001E] # VULGAR FRACTION ONE HALF
-33EB ; [.1903.0020.0004][.1904.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
-32CB ; [.1903.0020.0004][.1904.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
-3364 ; [.1903.0020.0004][.1904.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
-2480 ; [*030A.0020.0004][.1903.0020.0004][.1905.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER THIRTEEN
-2494 ; [.1903.0020.0004][.1905.0020.0004][*0274.0020.0004] # NUMBER THIRTEEN FULL STOP
-246C ; [.1903.0020.0006][.1905.0020.0006] # CIRCLED NUMBER THIRTEEN
-24ED ; [.1903.0020.0006][.1905.0020.0006] # NEGATIVE CIRCLED NUMBER THIRTEEN
-2153 ; [.1903.0020.001E][*05E6.0020.001E][.1905.0020.001E] # VULGAR FRACTION ONE THIRD
-33EC ; [.1903.0020.0004][.1905.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
-3365 ; [.1903.0020.0004][.1905.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
-2481 ; [*030A.0020.0004][.1903.0020.0004][.1906.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER FOURTEEN
-2495 ; [.1903.0020.0004][.1906.0020.0004][*0274.0020.0004] # NUMBER FOURTEEN FULL STOP
-246D ; [.1903.0020.0006][.1906.0020.0006] # CIRCLED NUMBER FOURTEEN
-24EE ; [.1903.0020.0006][.1906.0020.0006] # NEGATIVE CIRCLED NUMBER FOURTEEN
-00BC ; [.1903.0020.001E][*05E6.0020.001E][.1906.0020.001E] # VULGAR FRACTION ONE QUARTER
-33ED ; [.1903.0020.0004][.1906.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
-3366 ; [.1903.0020.0004][.1906.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
-2482 ; [*030A.0020.0004][.1903.0020.0004][.1907.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER FIFTEEN
-2496 ; [.1903.0020.0004][.1907.0020.0004][*0274.0020.0004] # NUMBER FIFTEEN FULL STOP
-246E ; [.1903.0020.0006][.1907.0020.0006] # CIRCLED NUMBER FIFTEEN
-24EF ; [.1903.0020.0006][.1907.0020.0006] # NEGATIVE CIRCLED NUMBER FIFTEEN
-2155 ; [.1903.0020.001E][*05E6.0020.001E][.1907.0020.001E] # VULGAR FRACTION ONE FIFTH
-33EE ; [.1903.0020.0004][.1907.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
-3367 ; [.1903.0020.0004][.1907.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
-2483 ; [*030A.0020.0004][.1903.0020.0004][.1908.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER SIXTEEN
-2497 ; [.1903.0020.0004][.1908.0020.0004][*0274.0020.0004] # NUMBER SIXTEEN FULL STOP
-246F ; [.1903.0020.0006][.1908.0020.0006] # CIRCLED NUMBER SIXTEEN
-24F0 ; [.1903.0020.0006][.1908.0020.0006] # NEGATIVE CIRCLED NUMBER SIXTEEN
-2159 ; [.1903.0020.001E][*05E6.0020.001E][.1908.0020.001E] # VULGAR FRACTION ONE SIXTH
-33EF ; [.1903.0020.0004][.1908.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
-3368 ; [.1903.0020.0004][.1908.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
-2484 ; [*030A.0020.0004][.1903.0020.0004][.1909.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER SEVENTEEN
-2498 ; [.1903.0020.0004][.1909.0020.0004][*0274.0020.0004] # NUMBER SEVENTEEN FULL STOP
-2470 ; [.1903.0020.0006][.1909.0020.0006] # CIRCLED NUMBER SEVENTEEN
-24F1 ; [.1903.0020.0006][.1909.0020.0006] # NEGATIVE CIRCLED NUMBER SEVENTEEN
-2150 ; [.1903.0020.001E][*05E6.0020.001E][.1909.0020.001E] # VULGAR FRACTION ONE SEVENTH
-33F0 ; [.1903.0020.0004][.1909.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
-3369 ; [.1903.0020.0004][.1909.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
-2485 ; [*030A.0020.0004][.1903.0020.0004][.190A.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER EIGHTEEN
-2499 ; [.1903.0020.0004][.190A.0020.0004][*0274.0020.0004] # NUMBER EIGHTEEN FULL STOP
-2471 ; [.1903.0020.0006][.190A.0020.0006] # CIRCLED NUMBER EIGHTEEN
-24F2 ; [.1903.0020.0006][.190A.0020.0006] # NEGATIVE CIRCLED NUMBER EIGHTEEN
-215B ; [.1903.0020.001E][*05E6.0020.001E][.190A.0020.001E] # VULGAR FRACTION ONE EIGHTH
-33F1 ; [.1903.0020.0004][.190A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
-336A ; [.1903.0020.0004][.190A.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
-2486 ; [*030A.0020.0004][.1903.0020.0004][.190B.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER NINETEEN
-249A ; [.1903.0020.0004][.190B.0020.0004][*0274.0020.0004] # NUMBER NINETEEN FULL STOP
-2472 ; [.1903.0020.0006][.190B.0020.0006] # CIRCLED NUMBER NINETEEN
-24F3 ; [.1903.0020.0006][.190B.0020.0006] # NEGATIVE CIRCLED NUMBER NINETEEN
-2151 ; [.1903.0020.001E][*05E6.0020.001E][.190B.0020.001E] # VULGAR FRACTION ONE NINTH
-33F2 ; [.1903.0020.0004][.190B.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
-336B ; [.1903.0020.0004][.190B.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
-33E0 ; [.1903.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
-32C0 ; [.1903.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
-3359 ; [.1903.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
-0032 ; [.1904.0020.0002] # DIGIT TWO
-0662 ; [.1904.0020.0002] # ARABIC-INDIC DIGIT TWO
-06F2 ; [.1904.0020.0002] # EXTENDED ARABIC-INDIC DIGIT TWO
-07C2 ; [.1904.0020.0002] # NKO DIGIT TWO
-0968 ; [.1904.0020.0002] # DEVANAGARI DIGIT TWO
-09E8 ; [.1904.0020.0002] # BENGALI DIGIT TWO
-0A68 ; [.1904.0020.0002] # GURMUKHI DIGIT TWO
-0AE8 ; [.1904.0020.0002] # GUJARATI DIGIT TWO
-0B68 ; [.1904.0020.0002] # ORIYA DIGIT TWO
-0BE8 ; [.1904.0020.0002] # TAMIL DIGIT TWO
-0C68 ; [.1904.0020.0002] # TELUGU DIGIT TWO
-0C7A ; [.1904.0020.0002] # TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
-0C7D ; [.1904.0020.0002] # TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
-0CE8 ; [.1904.0020.0002] # KANNADA DIGIT TWO
-0D68 ; [.1904.0020.0002] # MALAYALAM DIGIT TWO
-0DE8 ; [.1904.0020.0002] # SINHALA LITH DIGIT TWO
-0E52 ; [.1904.0020.0002] # THAI DIGIT TWO
-0ED2 ; [.1904.0020.0002] # LAO DIGIT TWO
-0F22 ; [.1904.0020.0002] # TIBETAN DIGIT TWO
-1042 ; [.1904.0020.0002] # MYANMAR DIGIT TWO
-1092 ; [.1904.0020.0002] # MYANMAR SHAN DIGIT TWO
-136A ; [.1904.0020.0002] # ETHIOPIC DIGIT TWO
-17E2 ; [.1904.0020.0002] # KHMER DIGIT TWO
-17F2 ; [.1904.0020.0002] # KHMER SYMBOL LEK ATTAK PII
-1812 ; [.1904.0020.0002] # MONGOLIAN DIGIT TWO
-1948 ; [.1904.0020.0002] # LIMBU DIGIT TWO
-19D2 ; [.1904.0020.0002] # NEW TAI LUE DIGIT TWO
-1A82 ; [.1904.0020.0002] # TAI THAM HORA DIGIT TWO
-1A92 ; [.1904.0020.0002] # TAI THAM THAM DIGIT TWO
-1B52 ; [.1904.0020.0002] # BALINESE DIGIT TWO
-1BB2 ; [.1904.0020.0002] # SUNDANESE DIGIT TWO
-1C42 ; [.1904.0020.0002] # LEPCHA DIGIT TWO
-1C52 ; [.1904.0020.0002] # OL CHIKI DIGIT TWO
-3022 ; [.1904.0020.0002] # HANGZHOU NUMERAL TWO
-A622 ; [.1904.0020.0002] # VAI DIGIT TWO
-A8D2 ; [.1904.0020.0002] # SAURASHTRA DIGIT TWO
-A902 ; [.1904.0020.0002] # KAYAH LI DIGIT TWO
-A9D2 ; [.1904.0020.0002] # JAVANESE DIGIT TWO
-A9F2 ; [.1904.0020.0002] # MYANMAR TAI LAING DIGIT TWO
-AA52 ; [.1904.0020.0002] # CHAM DIGIT TWO
-ABF2 ; [.1904.0020.0002] # MEETEI MAYEK DIGIT TWO
-10108 ; [.1904.0020.0002] # AEGEAN NUMBER TWO
-1015B ; [.1904.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO
-1015C ; [.1904.0020.0002] # GREEK ACROPHONIC THESPIAN TWO
-1015D ; [.1904.0020.0002] # GREEK ACROPHONIC CYRENAIC TWO DRACHMAS
-1015E ; [.1904.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
-102E2 ; [.1904.0020.0002] # COPTIC EPACT DIGIT TWO
-103D2 ; [.1904.0020.0002] # OLD PERSIAN NUMBER TWO
-104A2 ; [.1904.0020.0002] # OSMANYA DIGIT TWO
-10859 ; [.1904.0020.0002] # IMPERIAL ARAMAIC NUMBER TWO
-1087A ; [.1904.0020.0002] # PALMYRENE NUMBER TWO
-108A8 ; [.1904.0020.0002] # NABATAEAN NUMBER TWO
-1091A ; [.1904.0020.0002] # PHOENICIAN NUMBER TWO
-10A41 ; [.1904.0020.0002] # KHAROSHTHI DIGIT TWO
-10B59 ; [.1904.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWO
-10B79 ; [.1904.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWO
-10BAA ; [.1904.0020.0002] # PSALTER PAHLAVI NUMBER TWO
-10E61 ; [.1904.0020.0002] # RUMI DIGIT TWO
-11053 ; [.1904.0020.0002] # BRAHMI NUMBER TWO
-11068 ; [.1904.0020.0002] # BRAHMI DIGIT TWO
-110F2 ; [.1904.0020.0002] # SORA SOMPENG DIGIT TWO
-11138 ; [.1904.0020.0002] # CHAKMA DIGIT TWO
-111D2 ; [.1904.0020.0002] # SHARADA DIGIT TWO
-111E2 ; [.1904.0020.0002] # SINHALA ARCHAIC DIGIT TWO
-112F2 ; [.1904.0020.0002] # KHUDAWADI DIGIT TWO
-114D2 ; [.1904.0020.0002] # TIRHUTA DIGIT TWO
-11652 ; [.1904.0020.0002] # MODI DIGIT TWO
-116C2 ; [.1904.0020.0002] # TAKRI DIGIT TWO
-118E2 ; [.1904.0020.0002] # WARANG CITI DIGIT TWO
-12400 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH
-12416 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESH2
-1241F ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESHU
-12423 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHAR2
-1242D ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHARU
-12435 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BURU
-1244A ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH TENU
-12450 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BAN2
-12456 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAMIN
-12459 ; [.1904.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ESHE3
-16A62 ; [.1904.0020.0002] # MRO DIGIT TWO
-16B52 ; [.1904.0020.0002] # PAHAWH HMONG DIGIT TWO
-1D361 ; [.1904.0020.0002] # COUNTING ROD UNIT DIGIT TWO
-1E8C8 ; [.1904.0020.0002] # MENDE KIKAKUI DIGIT TWO
-FF12 ; [.1904.0020.0003] # FULLWIDTH DIGIT TWO
-0F2B ; [.1904.0020.0004] # TIBETAN DIGIT HALF TWO
-2475 ; [*030A.0020.0004][.1904.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT TWO
-2489 ; [.1904.0020.0004][*0274.0020.0004] # DIGIT TWO FULL STOP
-1F103 ; [.1904.0020.0004][*0221.0020.0004] # DIGIT TWO COMMA
-1D7D0 ; [.1904.0020.0005] # MATHEMATICAL BOLD DIGIT TWO
-1D7DA ; [.1904.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
-1D7E4 ; [.1904.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT TWO
-1D7EE ; [.1904.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
-1D7F8 ; [.1904.0020.0005] # MATHEMATICAL MONOSPACE DIGIT TWO
-2461 ; [.1904.0020.0006] # CIRCLED DIGIT TWO
-24F6 ; [.1904.0020.0006] # DOUBLE CIRCLED DIGIT TWO
-2777 ; [.1904.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT TWO
-2781 ; [.1904.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
-278B ; [.1904.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
-00B2 ; [.1904.0020.0014] # SUPERSCRIPT TWO
-2082 ; [.1904.0020.0015] # SUBSCRIPT TWO
-2487 ; [*030A.0020.0004][.1904.0020.0004][.1902.0020.0004][*030B.0020.0004] # PARENTHESIZED NUMBER TWENTY
-249B ; [.1904.0020.0004][.1902.0020.0004][*0274.0020.0004] # NUMBER TWENTY FULL STOP
-2473 ; [.1904.0020.0006][.1902.0020.0006] # CIRCLED NUMBER TWENTY
-24F4 ; [.1904.0020.0006][.1902.0020.0006] # NEGATIVE CIRCLED NUMBER TWENTY
-3249 ; [.1904.0020.0006][.1902.0020.0006] # CIRCLED NUMBER TWENTY ON BLACK SQUARE
-33F3 ; [.1904.0020.0004][.1902.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
-336C ; [.1904.0020.0004][.1902.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
-3251 ; [.1904.0020.0006][.1903.0020.0006] # CIRCLED NUMBER TWENTY ONE
-33F4 ; [.1904.0020.0004][.1903.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
-336D ; [.1904.0020.0004][.1903.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
-3252 ; [.1904.0020.0006][.1904.0020.0006] # CIRCLED NUMBER TWENTY TWO
-33F5 ; [.1904.0020.0004][.1904.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
-336E ; [.1904.0020.0004][.1904.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
-3253 ; [.1904.0020.0006][.1905.0020.0006] # CIRCLED NUMBER TWENTY THREE
-2154 ; [.1904.0020.001E][*05E6.0020.001E][.1905.0020.001E] # VULGAR FRACTION TWO THIRDS
-33F6 ; [.1904.0020.0004][.1905.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
-336F ; [.1904.0020.0004][.1905.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
-3254 ; [.1904.0020.0006][.1906.0020.0006] # CIRCLED NUMBER TWENTY FOUR
-33F7 ; [.1904.0020.0004][.1906.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
-3370 ; [.1904.0020.0004][.1906.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
-3255 ; [.1904.0020.0006][.1907.0020.0006] # CIRCLED NUMBER TWENTY FIVE
-2156 ; [.1904.0020.001E][*05E6.0020.001E][.1907.0020.001E] # VULGAR FRACTION TWO FIFTHS
-33F8 ; [.1904.0020.0004][.1907.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
-3256 ; [.1904.0020.0006][.1908.0020.0006] # CIRCLED NUMBER TWENTY SIX
-33F9 ; [.1904.0020.0004][.1908.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
-3257 ; [.1904.0020.0006][.1909.0020.0006] # CIRCLED NUMBER TWENTY SEVEN
-33FA ; [.1904.0020.0004][.1909.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
-3258 ; [.1904.0020.0006][.190A.0020.0006] # CIRCLED NUMBER TWENTY EIGHT
-33FB ; [.1904.0020.0004][.190A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
-3259 ; [.1904.0020.0006][.190B.0020.0006] # CIRCLED NUMBER TWENTY NINE
-33FC ; [.1904.0020.0004][.190B.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
-33E1 ; [.1904.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
-32C1 ; [.1904.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
-335A ; [.1904.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
-0033 ; [.1905.0020.0002] # DIGIT THREE
-0663 ; [.1905.0020.0002] # ARABIC-INDIC DIGIT THREE
-06F3 ; [.1905.0020.0002] # EXTENDED ARABIC-INDIC DIGIT THREE
-07C3 ; [.1905.0020.0002] # NKO DIGIT THREE
-0969 ; [.1905.0020.0002] # DEVANAGARI DIGIT THREE
-09E9 ; [.1905.0020.0002] # BENGALI DIGIT THREE
-0A69 ; [.1905.0020.0002] # GURMUKHI DIGIT THREE
-0AE9 ; [.1905.0020.0002] # GUJARATI DIGIT THREE
-0B69 ; [.1905.0020.0002] # ORIYA DIGIT THREE
-0BE9 ; [.1905.0020.0002] # TAMIL DIGIT THREE
-0C69 ; [.1905.0020.0002] # TELUGU DIGIT THREE
-0C7B ; [.1905.0020.0002] # TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
-0C7E ; [.1905.0020.0002] # TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
-0CE9 ; [.1905.0020.0002] # KANNADA DIGIT THREE
-0D69 ; [.1905.0020.0002] # MALAYALAM DIGIT THREE
-0DE9 ; [.1905.0020.0002] # SINHALA LITH DIGIT THREE
-0E53 ; [.1905.0020.0002] # THAI DIGIT THREE
-0ED3 ; [.1905.0020.0002] # LAO DIGIT THREE
-0F23 ; [.1905.0020.0002] # TIBETAN DIGIT THREE
-1043 ; [.1905.0020.0002] # MYANMAR DIGIT THREE
-1093 ; [.1905.0020.0002] # MYANMAR SHAN DIGIT THREE
-136B ; [.1905.0020.0002] # ETHIOPIC DIGIT THREE
-17E3 ; [.1905.0020.0002] # KHMER DIGIT THREE
-17F3 ; [.1905.0020.0002] # KHMER SYMBOL LEK ATTAK BEI
-1813 ; [.1905.0020.0002] # MONGOLIAN DIGIT THREE
-1949 ; [.1905.0020.0002] # LIMBU DIGIT THREE
-19D3 ; [.1905.0020.0002] # NEW TAI LUE DIGIT THREE
-1A83 ; [.1905.0020.0002] # TAI THAM HORA DIGIT THREE
-1A93 ; [.1905.0020.0002] # TAI THAM THAM DIGIT THREE
-1B53 ; [.1905.0020.0002] # BALINESE DIGIT THREE
-1BB3 ; [.1905.0020.0002] # SUNDANESE DIGIT THREE
-1C43 ; [.1905.0020.0002] # LEPCHA DIGIT THREE
-1C53 ; [.1905.0020.0002] # OL CHIKI DIGIT THREE
-3023 ; [.1905.0020.0002] # HANGZHOU NUMERAL THREE
-A623 ; [.1905.0020.0002] # VAI DIGIT THREE
-A8D3 ; [.1905.0020.0002] # SAURASHTRA DIGIT THREE
-A903 ; [.1905.0020.0002] # KAYAH LI DIGIT THREE
-A9D3 ; [.1905.0020.0002] # JAVANESE DIGIT THREE
-A9F3 ; [.1905.0020.0002] # MYANMAR TAI LAING DIGIT THREE
-AA53 ; [.1905.0020.0002] # CHAM DIGIT THREE
-ABF3 ; [.1905.0020.0002] # MEETEI MAYEK DIGIT THREE
-10109 ; [.1905.0020.0002] # AEGEAN NUMBER THREE
-102E3 ; [.1905.0020.0002] # COPTIC EPACT DIGIT THREE
-104A3 ; [.1905.0020.0002] # OSMANYA DIGIT THREE
-1085A ; [.1905.0020.0002] # IMPERIAL ARAMAIC NUMBER THREE
-1087B ; [.1905.0020.0002] # PALMYRENE NUMBER THREE
-108A9 ; [.1905.0020.0002] # NABATAEAN NUMBER THREE
-1091B ; [.1905.0020.0002] # PHOENICIAN NUMBER THREE
-10A42 ; [.1905.0020.0002] # KHAROSHTHI DIGIT THREE
-10B5A ; [.1905.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER THREE
-10B7A ; [.1905.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER THREE
-10BAB ; [.1905.0020.0002] # PSALTER PAHLAVI NUMBER THREE
-10E62 ; [.1905.0020.0002] # RUMI DIGIT THREE
-11054 ; [.1905.0020.0002] # BRAHMI NUMBER THREE
-11069 ; [.1905.0020.0002] # BRAHMI DIGIT THREE
-110F3 ; [.1905.0020.0002] # SORA SOMPENG DIGIT THREE
-11139 ; [.1905.0020.0002] # CHAKMA DIGIT THREE
-111D3 ; [.1905.0020.0002] # SHARADA DIGIT THREE
-111E3 ; [.1905.0020.0002] # SINHALA ARCHAIC DIGIT THREE
-112F3 ; [.1905.0020.0002] # KHUDAWADI DIGIT THREE
-114D3 ; [.1905.0020.0002] # TIRHUTA DIGIT THREE
-11653 ; [.1905.0020.0002] # MODI DIGIT THREE
-116C3 ; [.1905.0020.0002] # TAKRI DIGIT THREE
-118E3 ; [.1905.0020.0002] # WARANG CITI DIGIT THREE
-12401 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH
-12408 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE DISH
-12417 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESH2
-12420 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESHU
-12424 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2
-12425 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
-1242E ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU
-1242F ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
-12436 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU
-12437 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
-1243A ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16
-1243B ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
-1244B ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH TENU
-12451 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BAN2
-12457 ; [.1905.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAESH
-16A63 ; [.1905.0020.0002] # MRO DIGIT THREE
-16B53 ; [.1905.0020.0002] # PAHAWH HMONG DIGIT THREE
-1D362 ; [.1905.0020.0002] # COUNTING ROD UNIT DIGIT THREE
-1E8C9 ; [.1905.0020.0002] # MENDE KIKAKUI DIGIT THREE
-FF13 ; [.1905.0020.0003] # FULLWIDTH DIGIT THREE
-0F2C ; [.1905.0020.0004] # TIBETAN DIGIT HALF THREE
-2476 ; [*030A.0020.0004][.1905.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT THREE
-248A ; [.1905.0020.0004][*0274.0020.0004] # DIGIT THREE FULL STOP
-1F104 ; [.1905.0020.0004][*0221.0020.0004] # DIGIT THREE COMMA
-1D7D1 ; [.1905.0020.0005] # MATHEMATICAL BOLD DIGIT THREE
-1D7DB ; [.1905.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
-1D7E5 ; [.1905.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT THREE
-1D7EF ; [.1905.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
-1D7F9 ; [.1905.0020.0005] # MATHEMATICAL MONOSPACE DIGIT THREE
-2462 ; [.1905.0020.0006] # CIRCLED DIGIT THREE
-24F7 ; [.1905.0020.0006] # DOUBLE CIRCLED DIGIT THREE
-2778 ; [.1905.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT THREE
-2782 ; [.1905.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
-278C ; [.1905.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
-00B3 ; [.1905.0020.0014] # SUPERSCRIPT THREE
-2083 ; [.1905.0020.0015] # SUBSCRIPT THREE
-324A ; [.1905.0020.0006][.1902.0020.0006] # CIRCLED NUMBER THIRTY ON BLACK SQUARE
-325A ; [.1905.0020.0006][.1902.0020.0006] # CIRCLED NUMBER THIRTY
-33FD ; [.1905.0020.0004][.1902.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
-325B ; [.1905.0020.0006][.1903.0020.0006] # CIRCLED NUMBER THIRTY ONE
-33FE ; [.1905.0020.0004][.1903.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
-325C ; [.1905.0020.0006][.1904.0020.0006] # CIRCLED NUMBER THIRTY TWO
-325D ; [.1905.0020.0006][.1905.0020.0006] # CIRCLED NUMBER THIRTY THREE
-325E ; [.1905.0020.0006][.1906.0020.0006] # CIRCLED NUMBER THIRTY FOUR
-00BE ; [.1905.0020.001E][*05E6.0020.001E][.1906.0020.001E] # VULGAR FRACTION THREE QUARTERS
-325F ; [.1905.0020.0006][.1907.0020.0006] # CIRCLED NUMBER THIRTY FIVE
-2157 ; [.1905.0020.001E][*05E6.0020.001E][.1907.0020.001E] # VULGAR FRACTION THREE FIFTHS
-32B1 ; [.1905.0020.0006][.1908.0020.0006] # CIRCLED NUMBER THIRTY SIX
-32B2 ; [.1905.0020.0006][.1909.0020.0006] # CIRCLED NUMBER THIRTY SEVEN
-32B3 ; [.1905.0020.0006][.190A.0020.0006] # CIRCLED NUMBER THIRTY EIGHT
-215C ; [.1905.0020.001E][*05E6.0020.001E][.190A.0020.001E] # VULGAR FRACTION THREE EIGHTHS
-32B4 ; [.1905.0020.0006][.190B.0020.0006] # CIRCLED NUMBER THIRTY NINE
-33E2 ; [.1905.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
-32C2 ; [.1905.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
-335B ; [.1905.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
-0034 ; [.1906.0020.0002] # DIGIT FOUR
-0664 ; [.1906.0020.0002] # ARABIC-INDIC DIGIT FOUR
-06F4 ; [.1906.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FOUR
-07C4 ; [.1906.0020.0002] # NKO DIGIT FOUR
-096A ; [.1906.0020.0002] # DEVANAGARI DIGIT FOUR
-09EA ; [.1906.0020.0002] # BENGALI DIGIT FOUR
-0A6A ; [.1906.0020.0002] # GURMUKHI DIGIT FOUR
-0AEA ; [.1906.0020.0002] # GUJARATI DIGIT FOUR
-0B6A ; [.1906.0020.0002] # ORIYA DIGIT FOUR
-0BEA ; [.1906.0020.0002] # TAMIL DIGIT FOUR
-0C6A ; [.1906.0020.0002] # TELUGU DIGIT FOUR
-0CEA ; [.1906.0020.0002] # KANNADA DIGIT FOUR
-0D6A ; [.1906.0020.0002] # MALAYALAM DIGIT FOUR
-0DEA ; [.1906.0020.0002] # SINHALA LITH DIGIT FOUR
-0E54 ; [.1906.0020.0002] # THAI DIGIT FOUR
-0ED4 ; [.1906.0020.0002] # LAO DIGIT FOUR
-0F24 ; [.1906.0020.0002] # TIBETAN DIGIT FOUR
-1044 ; [.1906.0020.0002] # MYANMAR DIGIT FOUR
-1094 ; [.1906.0020.0002] # MYANMAR SHAN DIGIT FOUR
-136C ; [.1906.0020.0002] # ETHIOPIC DIGIT FOUR
-17E4 ; [.1906.0020.0002] # KHMER DIGIT FOUR
-17F4 ; [.1906.0020.0002] # KHMER SYMBOL LEK ATTAK BUON
-1814 ; [.1906.0020.0002] # MONGOLIAN DIGIT FOUR
-194A ; [.1906.0020.0002] # LIMBU DIGIT FOUR
-19D4 ; [.1906.0020.0002] # NEW TAI LUE DIGIT FOUR
-1A84 ; [.1906.0020.0002] # TAI THAM HORA DIGIT FOUR
-1A94 ; [.1906.0020.0002] # TAI THAM THAM DIGIT FOUR
-1B54 ; [.1906.0020.0002] # BALINESE DIGIT FOUR
-1BB4 ; [.1906.0020.0002] # SUNDANESE DIGIT FOUR
-1C44 ; [.1906.0020.0002] # LEPCHA DIGIT FOUR
-1C54 ; [.1906.0020.0002] # OL CHIKI DIGIT FOUR
-3024 ; [.1906.0020.0002] # HANGZHOU NUMERAL FOUR
-A624 ; [.1906.0020.0002] # VAI DIGIT FOUR
-A8D4 ; [.1906.0020.0002] # SAURASHTRA DIGIT FOUR
-A904 ; [.1906.0020.0002] # KAYAH LI DIGIT FOUR
-A9D4 ; [.1906.0020.0002] # JAVANESE DIGIT FOUR
-A9F4 ; [.1906.0020.0002] # MYANMAR TAI LAING DIGIT FOUR
-AA54 ; [.1906.0020.0002] # CHAM DIGIT FOUR
-ABF4 ; [.1906.0020.0002] # MEETEI MAYEK DIGIT FOUR
-1010A ; [.1906.0020.0002] # AEGEAN NUMBER FOUR
-102E4 ; [.1906.0020.0002] # COPTIC EPACT DIGIT FOUR
-104A4 ; [.1906.0020.0002] # OSMANYA DIGIT FOUR
-1087C ; [.1906.0020.0002] # PALMYRENE NUMBER FOUR
-108AA ; [.1906.0020.0002] # NABATAEAN NUMBER FOUR
-108AB ; [.1906.0020.0002] # NABATAEAN CRUCIFORM NUMBER FOUR
-10A43 ; [.1906.0020.0002] # KHAROSHTHI DIGIT FOUR
-10B5B ; [.1906.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER FOUR
-10B7B ; [.1906.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER FOUR
-10BAC ; [.1906.0020.0002] # PSALTER PAHLAVI NUMBER FOUR
-10E63 ; [.1906.0020.0002] # RUMI DIGIT FOUR
-11055 ; [.1906.0020.0002] # BRAHMI NUMBER FOUR
-1106A ; [.1906.0020.0002] # BRAHMI DIGIT FOUR
-110F4 ; [.1906.0020.0002] # SORA SOMPENG DIGIT FOUR
-1113A ; [.1906.0020.0002] # CHAKMA DIGIT FOUR
-111D4 ; [.1906.0020.0002] # SHARADA DIGIT FOUR
-111E4 ; [.1906.0020.0002] # SINHALA ARCHAIC DIGIT FOUR
-112F4 ; [.1906.0020.0002] # KHUDAWADI DIGIT FOUR
-114D4 ; [.1906.0020.0002] # TIRHUTA DIGIT FOUR
-11654 ; [.1906.0020.0002] # MODI DIGIT FOUR
-116C4 ; [.1906.0020.0002] # TAKRI DIGIT FOUR
-118E4 ; [.1906.0020.0002] # WARANG CITI DIGIT FOUR
-12402 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH
-12409 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR DISH
-1240F ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U
-12418 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESH2
-12421 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESHU
-12426 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHAR2
-12430 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHARU
-12438 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BURU
-1243C ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU
-1243D ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4
-1243E ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A
-1243F ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
-1244C ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH TENU
-12452 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2
-12453 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
-12469 ; [.1906.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM
-16A64 ; [.1906.0020.0002] # MRO DIGIT FOUR
-16B54 ; [.1906.0020.0002] # PAHAWH HMONG DIGIT FOUR
-1D363 ; [.1906.0020.0002] # COUNTING ROD UNIT DIGIT FOUR
-1E8CA ; [.1906.0020.0002] # MENDE KIKAKUI DIGIT FOUR
-FF14 ; [.1906.0020.0003] # FULLWIDTH DIGIT FOUR
-0F2D ; [.1906.0020.0004] # TIBETAN DIGIT HALF FOUR
-2477 ; [*030A.0020.0004][.1906.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT FOUR
-248B ; [.1906.0020.0004][*0274.0020.0004] # DIGIT FOUR FULL STOP
-1F105 ; [.1906.0020.0004][*0221.0020.0004] # DIGIT FOUR COMMA
-1D7D2 ; [.1906.0020.0005] # MATHEMATICAL BOLD DIGIT FOUR
-1D7DC ; [.1906.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
-1D7E6 ; [.1906.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FOUR
-1D7F0 ; [.1906.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
-1D7FA ; [.1906.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FOUR
-2463 ; [.1906.0020.0006] # CIRCLED DIGIT FOUR
-24F8 ; [.1906.0020.0006] # DOUBLE CIRCLED DIGIT FOUR
-2779 ; [.1906.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
-2783 ; [.1906.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
-278D ; [.1906.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
-2074 ; [.1906.0020.0014] # SUPERSCRIPT FOUR
-2084 ; [.1906.0020.0015] # SUBSCRIPT FOUR
-324B ; [.1906.0020.0006][.1902.0020.0006] # CIRCLED NUMBER FORTY ON BLACK SQUARE
-32B5 ; [.1906.0020.0006][.1902.0020.0006] # CIRCLED NUMBER FORTY
-32B6 ; [.1906.0020.0006][.1903.0020.0006] # CIRCLED NUMBER FORTY ONE
-32B7 ; [.1906.0020.0006][.1904.0020.0006] # CIRCLED NUMBER FORTY TWO
-32B8 ; [.1906.0020.0006][.1905.0020.0006] # CIRCLED NUMBER FORTY THREE
-32B9 ; [.1906.0020.0006][.1906.0020.0006] # CIRCLED NUMBER FORTY FOUR
-32BA ; [.1906.0020.0006][.1907.0020.0006] # CIRCLED NUMBER FORTY FIVE
-2158 ; [.1906.0020.001E][*05E6.0020.001E][.1907.0020.001E] # VULGAR FRACTION FOUR FIFTHS
-32BB ; [.1906.0020.0006][.1908.0020.0006] # CIRCLED NUMBER FORTY SIX
-32BC ; [.1906.0020.0006][.1909.0020.0006] # CIRCLED NUMBER FORTY SEVEN
-32BD ; [.1906.0020.0006][.190A.0020.0006] # CIRCLED NUMBER FORTY EIGHT
-32BE ; [.1906.0020.0006][.190B.0020.0006] # CIRCLED NUMBER FORTY NINE
-33E3 ; [.1906.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
-32C3 ; [.1906.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
-335C ; [.1906.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
-0035 ; [.1907.0020.0002] # DIGIT FIVE
-0665 ; [.1907.0020.0002] # ARABIC-INDIC DIGIT FIVE
-06F5 ; [.1907.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FIVE
-07C5 ; [.1907.0020.0002] # NKO DIGIT FIVE
-096B ; [.1907.0020.0002] # DEVANAGARI DIGIT FIVE
-09EB ; [.1907.0020.0002] # BENGALI DIGIT FIVE
-0A6B ; [.1907.0020.0002] # GURMUKHI DIGIT FIVE
-0AEB ; [.1907.0020.0002] # GUJARATI DIGIT FIVE
-0B6B ; [.1907.0020.0002] # ORIYA DIGIT FIVE
-0BEB ; [.1907.0020.0002] # TAMIL DIGIT FIVE
-0C6B ; [.1907.0020.0002] # TELUGU DIGIT FIVE
-0CEB ; [.1907.0020.0002] # KANNADA DIGIT FIVE
-0D6B ; [.1907.0020.0002] # MALAYALAM DIGIT FIVE
-0DEB ; [.1907.0020.0002] # SINHALA LITH DIGIT FIVE
-0E55 ; [.1907.0020.0002] # THAI DIGIT FIVE
-0ED5 ; [.1907.0020.0002] # LAO DIGIT FIVE
-0F25 ; [.1907.0020.0002] # TIBETAN DIGIT FIVE
-1045 ; [.1907.0020.0002] # MYANMAR DIGIT FIVE
-1095 ; [.1907.0020.0002] # MYANMAR SHAN DIGIT FIVE
-136D ; [.1907.0020.0002] # ETHIOPIC DIGIT FIVE
-17E5 ; [.1907.0020.0002] # KHMER DIGIT FIVE
-17F5 ; [.1907.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM
-1815 ; [.1907.0020.0002] # MONGOLIAN DIGIT FIVE
-194B ; [.1907.0020.0002] # LIMBU DIGIT FIVE
-19D5 ; [.1907.0020.0002] # NEW TAI LUE DIGIT FIVE
-1A85 ; [.1907.0020.0002] # TAI THAM HORA DIGIT FIVE
-1A95 ; [.1907.0020.0002] # TAI THAM THAM DIGIT FIVE
-1B55 ; [.1907.0020.0002] # BALINESE DIGIT FIVE
-1BB5 ; [.1907.0020.0002] # SUNDANESE DIGIT FIVE
-1C45 ; [.1907.0020.0002] # LEPCHA DIGIT FIVE
-1C55 ; [.1907.0020.0002] # OL CHIKI DIGIT FIVE
-3025 ; [.1907.0020.0002] # HANGZHOU NUMERAL FIVE
-A625 ; [.1907.0020.0002] # VAI DIGIT FIVE
-A8D5 ; [.1907.0020.0002] # SAURASHTRA DIGIT FIVE
-A905 ; [.1907.0020.0002] # KAYAH LI DIGIT FIVE
-A9D5 ; [.1907.0020.0002] # JAVANESE DIGIT FIVE
-A9F5 ; [.1907.0020.0002] # MYANMAR TAI LAING DIGIT FIVE
-AA55 ; [.1907.0020.0002] # CHAM DIGIT FIVE
-ABF5 ; [.1907.0020.0002] # MEETEI MAYEK DIGIT FIVE
-1010B ; [.1907.0020.0002] # AEGEAN NUMBER FIVE
-10143 ; [.1907.0020.0002] # GREEK ACROPHONIC ATTIC FIVE
-10148 ; [.1907.0020.0002] # GREEK ACROPHONIC ATTIC FIVE TALENTS
-1014F ; [.1907.0020.0002] # GREEK ACROPHONIC ATTIC FIVE STATERS
-1015F ; [.1907.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE
-10173 ; [.1907.0020.0002] # GREEK ACROPHONIC DELPHIC FIVE MNAS
-102E5 ; [.1907.0020.0002] # COPTIC EPACT DIGIT FIVE
-10321 ; [.1907.0020.0002] # OLD ITALIC NUMERAL FIVE
-104A5 ; [.1907.0020.0002] # OSMANYA DIGIT FIVE
-1087D ; [.1907.0020.0002] # PALMYRENE NUMBER FIVE
-108AC ; [.1907.0020.0002] # NABATAEAN NUMBER FIVE
-10AEC ; [.1907.0020.0002] # MANICHAEAN NUMBER FIVE
-10E64 ; [.1907.0020.0002] # RUMI DIGIT FIVE
-11056 ; [.1907.0020.0002] # BRAHMI NUMBER FIVE
-1106B ; [.1907.0020.0002] # BRAHMI DIGIT FIVE
-110F5 ; [.1907.0020.0002] # SORA SOMPENG DIGIT FIVE
-1113B ; [.1907.0020.0002] # CHAKMA DIGIT FIVE
-111D5 ; [.1907.0020.0002] # SHARADA DIGIT FIVE
-111E5 ; [.1907.0020.0002] # SINHALA ARCHAIC DIGIT FIVE
-112F5 ; [.1907.0020.0002] # KHUDAWADI DIGIT FIVE
-114D5 ; [.1907.0020.0002] # TIRHUTA DIGIT FIVE
-11655 ; [.1907.0020.0002] # MODI DIGIT FIVE
-116C5 ; [.1907.0020.0002] # TAKRI DIGIT FIVE
-118E5 ; [.1907.0020.0002] # WARANG CITI DIGIT FIVE
-12403 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH
-1240A ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE DISH
-12410 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U
-12419 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESH2
-12422 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESHU
-12427 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHAR2
-12431 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHARU
-12439 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BURU
-1244D ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH TENU
-12454 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2
-12455 ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
-1246A ; [.1907.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM
-16A65 ; [.1907.0020.0002] # MRO DIGIT FIVE
-16B55 ; [.1907.0020.0002] # PAHAWH HMONG DIGIT FIVE
-1D364 ; [.1907.0020.0002] # COUNTING ROD UNIT DIGIT FIVE
-1E8CB ; [.1907.0020.0002] # MENDE KIKAKUI DIGIT FIVE
-FF15 ; [.1907.0020.0003] # FULLWIDTH DIGIT FIVE
-0F2E ; [.1907.0020.0004] # TIBETAN DIGIT HALF FIVE
-2478 ; [*030A.0020.0004][.1907.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT FIVE
-248C ; [.1907.0020.0004][*0274.0020.0004] # DIGIT FIVE FULL STOP
-1F106 ; [.1907.0020.0004][*0221.0020.0004] # DIGIT FIVE COMMA
-1D7D3 ; [.1907.0020.0005] # MATHEMATICAL BOLD DIGIT FIVE
-1D7DD ; [.1907.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
-1D7E7 ; [.1907.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FIVE
-1D7F1 ; [.1907.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
-1D7FB ; [.1907.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FIVE
-2464 ; [.1907.0020.0006] # CIRCLED DIGIT FIVE
-24F9 ; [.1907.0020.0006] # DOUBLE CIRCLED DIGIT FIVE
-277A ; [.1907.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
-2784 ; [.1907.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
-278E ; [.1907.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
-2075 ; [.1907.0020.0014] # SUPERSCRIPT FIVE
-2085 ; [.1907.0020.0015] # SUBSCRIPT FIVE
-324C ; [.1907.0020.0006][.1902.0020.0006] # CIRCLED NUMBER FIFTY ON BLACK SQUARE
-32BF ; [.1907.0020.0006][.1902.0020.0006] # CIRCLED NUMBER FIFTY
-215A ; [.1907.0020.001E][*05E6.0020.001E][.1908.0020.001E] # VULGAR FRACTION FIVE SIXTHS
-215D ; [.1907.0020.001E][*05E6.0020.001E][.190A.0020.001E] # VULGAR FRACTION FIVE EIGHTHS
-33E4 ; [.1907.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
-32C4 ; [.1907.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
-335D ; [.1907.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
-0036 ; [.1908.0020.0002] # DIGIT SIX
-0666 ; [.1908.0020.0002] # ARABIC-INDIC DIGIT SIX
-06F6 ; [.1908.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SIX
-07C6 ; [.1908.0020.0002] # NKO DIGIT SIX
-096C ; [.1908.0020.0002] # DEVANAGARI DIGIT SIX
-09EC ; [.1908.0020.0002] # BENGALI DIGIT SIX
-0A6C ; [.1908.0020.0002] # GURMUKHI DIGIT SIX
-0AEC ; [.1908.0020.0002] # GUJARATI DIGIT SIX
-0B6C ; [.1908.0020.0002] # ORIYA DIGIT SIX
-0BEC ; [.1908.0020.0002] # TAMIL DIGIT SIX
-0C6C ; [.1908.0020.0002] # TELUGU DIGIT SIX
-0CEC ; [.1908.0020.0002] # KANNADA DIGIT SIX
-0D6C ; [.1908.0020.0002] # MALAYALAM DIGIT SIX
-0DEC ; [.1908.0020.0002] # SINHALA LITH DIGIT SIX
-0E56 ; [.1908.0020.0002] # THAI DIGIT SIX
-0ED6 ; [.1908.0020.0002] # LAO DIGIT SIX
-0F26 ; [.1908.0020.0002] # TIBETAN DIGIT SIX
-1046 ; [.1908.0020.0002] # MYANMAR DIGIT SIX
-1096 ; [.1908.0020.0002] # MYANMAR SHAN DIGIT SIX
-136E ; [.1908.0020.0002] # ETHIOPIC DIGIT SIX
-17E6 ; [.1908.0020.0002] # KHMER DIGIT SIX
-17F6 ; [.1908.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-MUOY
-1816 ; [.1908.0020.0002] # MONGOLIAN DIGIT SIX
-194C ; [.1908.0020.0002] # LIMBU DIGIT SIX
-19D6 ; [.1908.0020.0002] # NEW TAI LUE DIGIT SIX
-1A86 ; [.1908.0020.0002] # TAI THAM HORA DIGIT SIX
-1A96 ; [.1908.0020.0002] # TAI THAM THAM DIGIT SIX
-1B56 ; [.1908.0020.0002] # BALINESE DIGIT SIX
-1BB6 ; [.1908.0020.0002] # SUNDANESE DIGIT SIX
-1C46 ; [.1908.0020.0002] # LEPCHA DIGIT SIX
-1C56 ; [.1908.0020.0002] # OL CHIKI DIGIT SIX
-2185 ; [.1908.0020.0002] # ROMAN NUMERAL SIX LATE FORM
-3026 ; [.1908.0020.0002] # HANGZHOU NUMERAL SIX
-A626 ; [.1908.0020.0002] # VAI DIGIT SIX
-A8D6 ; [.1908.0020.0002] # SAURASHTRA DIGIT SIX
-A906 ; [.1908.0020.0002] # KAYAH LI DIGIT SIX
-A9D6 ; [.1908.0020.0002] # JAVANESE DIGIT SIX
-A9F6 ; [.1908.0020.0002] # MYANMAR TAI LAING DIGIT SIX
-AA56 ; [.1908.0020.0002] # CHAM DIGIT SIX
-ABF6 ; [.1908.0020.0002] # MEETEI MAYEK DIGIT SIX
-1010C ; [.1908.0020.0002] # AEGEAN NUMBER SIX
-102E6 ; [.1908.0020.0002] # COPTIC EPACT DIGIT SIX
-104A6 ; [.1908.0020.0002] # OSMANYA DIGIT SIX
-10E65 ; [.1908.0020.0002] # RUMI DIGIT SIX
-11057 ; [.1908.0020.0002] # BRAHMI NUMBER SIX
-1106C ; [.1908.0020.0002] # BRAHMI DIGIT SIX
-110F6 ; [.1908.0020.0002] # SORA SOMPENG DIGIT SIX
-1113C ; [.1908.0020.0002] # CHAKMA DIGIT SIX
-111D6 ; [.1908.0020.0002] # SHARADA DIGIT SIX
-111E6 ; [.1908.0020.0002] # SINHALA ARCHAIC DIGIT SIX
-112F6 ; [.1908.0020.0002] # KHUDAWADI DIGIT SIX
-114D6 ; [.1908.0020.0002] # TIRHUTA DIGIT SIX
-11656 ; [.1908.0020.0002] # MODI DIGIT SIX
-116C6 ; [.1908.0020.0002] # TAKRI DIGIT SIX
-118E6 ; [.1908.0020.0002] # WARANG CITI DIGIT SIX
-12404 ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH
-1240B ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX DISH
-12411 ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U
-1241A ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX GESH2
-12428 ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX SHAR2
-12440 ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
-1244E ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH TENU
-1246B ; [.1908.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM
-16A66 ; [.1908.0020.0002] # MRO DIGIT SIX
-16B56 ; [.1908.0020.0002] # PAHAWH HMONG DIGIT SIX
-1D365 ; [.1908.0020.0002] # COUNTING ROD UNIT DIGIT SIX
-1E8CC ; [.1908.0020.0002] # MENDE KIKAKUI DIGIT SIX
-FF16 ; [.1908.0020.0003] # FULLWIDTH DIGIT SIX
-0F2F ; [.1908.0020.0004] # TIBETAN DIGIT HALF SIX
-2479 ; [*030A.0020.0004][.1908.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT SIX
-248D ; [.1908.0020.0004][*0274.0020.0004] # DIGIT SIX FULL STOP
-1F107 ; [.1908.0020.0004][*0221.0020.0004] # DIGIT SIX COMMA
-1D7D4 ; [.1908.0020.0005] # MATHEMATICAL BOLD DIGIT SIX
-1D7DE ; [.1908.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
-1D7E8 ; [.1908.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SIX
-1D7F2 ; [.1908.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
-1D7FC ; [.1908.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SIX
-2465 ; [.1908.0020.0006] # CIRCLED DIGIT SIX
-24FA ; [.1908.0020.0006] # DOUBLE CIRCLED DIGIT SIX
-277B ; [.1908.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SIX
-2785 ; [.1908.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
-278F ; [.1908.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
-2076 ; [.1908.0020.0014] # SUPERSCRIPT SIX
-2086 ; [.1908.0020.0015] # SUBSCRIPT SIX
-324D ; [.1908.0020.0006][.1902.0020.0006] # CIRCLED NUMBER SIXTY ON BLACK SQUARE
-33E5 ; [.1908.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
-32C5 ; [.1908.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
-335E ; [.1908.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
-0037 ; [.1909.0020.0002] # DIGIT SEVEN
-0667 ; [.1909.0020.0002] # ARABIC-INDIC DIGIT SEVEN
-06F7 ; [.1909.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SEVEN
-07C7 ; [.1909.0020.0002] # NKO DIGIT SEVEN
-096D ; [.1909.0020.0002] # DEVANAGARI DIGIT SEVEN
-09ED ; [.1909.0020.0002] # BENGALI DIGIT SEVEN
-0A6D ; [.1909.0020.0002] # GURMUKHI DIGIT SEVEN
-0AED ; [.1909.0020.0002] # GUJARATI DIGIT SEVEN
-0B6D ; [.1909.0020.0002] # ORIYA DIGIT SEVEN
-0BED ; [.1909.0020.0002] # TAMIL DIGIT SEVEN
-0C6D ; [.1909.0020.0002] # TELUGU DIGIT SEVEN
-0CED ; [.1909.0020.0002] # KANNADA DIGIT SEVEN
-0D6D ; [.1909.0020.0002] # MALAYALAM DIGIT SEVEN
-0DED ; [.1909.0020.0002] # SINHALA LITH DIGIT SEVEN
-0E57 ; [.1909.0020.0002] # THAI DIGIT SEVEN
-0ED7 ; [.1909.0020.0002] # LAO DIGIT SEVEN
-0F27 ; [.1909.0020.0002] # TIBETAN DIGIT SEVEN
-1047 ; [.1909.0020.0002] # MYANMAR DIGIT SEVEN
-1097 ; [.1909.0020.0002] # MYANMAR SHAN DIGIT SEVEN
-136F ; [.1909.0020.0002] # ETHIOPIC DIGIT SEVEN
-17E7 ; [.1909.0020.0002] # KHMER DIGIT SEVEN
-17F7 ; [.1909.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-PII
-1817 ; [.1909.0020.0002] # MONGOLIAN DIGIT SEVEN
-194D ; [.1909.0020.0002] # LIMBU DIGIT SEVEN
-19D7 ; [.1909.0020.0002] # NEW TAI LUE DIGIT SEVEN
-1A87 ; [.1909.0020.0002] # TAI THAM HORA DIGIT SEVEN
-1A97 ; [.1909.0020.0002] # TAI THAM THAM DIGIT SEVEN
-1B57 ; [.1909.0020.0002] # BALINESE DIGIT SEVEN
-1BB7 ; [.1909.0020.0002] # SUNDANESE DIGIT SEVEN
-1C47 ; [.1909.0020.0002] # LEPCHA DIGIT SEVEN
-1C57 ; [.1909.0020.0002] # OL CHIKI DIGIT SEVEN
-3027 ; [.1909.0020.0002] # HANGZHOU NUMERAL SEVEN
-A627 ; [.1909.0020.0002] # VAI DIGIT SEVEN
-A8D7 ; [.1909.0020.0002] # SAURASHTRA DIGIT SEVEN
-A907 ; [.1909.0020.0002] # KAYAH LI DIGIT SEVEN
-A9D7 ; [.1909.0020.0002] # JAVANESE DIGIT SEVEN
-A9F7 ; [.1909.0020.0002] # MYANMAR TAI LAING DIGIT SEVEN
-AA57 ; [.1909.0020.0002] # CHAM DIGIT SEVEN
-ABF7 ; [.1909.0020.0002] # MEETEI MAYEK DIGIT SEVEN
-1010D ; [.1909.0020.0002] # AEGEAN NUMBER SEVEN
-102E7 ; [.1909.0020.0002] # COPTIC EPACT DIGIT SEVEN
-104A7 ; [.1909.0020.0002] # OSMANYA DIGIT SEVEN
-10E66 ; [.1909.0020.0002] # RUMI DIGIT SEVEN
-11058 ; [.1909.0020.0002] # BRAHMI NUMBER SEVEN
-1106D ; [.1909.0020.0002] # BRAHMI DIGIT SEVEN
-110F7 ; [.1909.0020.0002] # SORA SOMPENG DIGIT SEVEN
-1113D ; [.1909.0020.0002] # CHAKMA DIGIT SEVEN
-111D7 ; [.1909.0020.0002] # SHARADA DIGIT SEVEN
-111E7 ; [.1909.0020.0002] # SINHALA ARCHAIC DIGIT SEVEN
-112F7 ; [.1909.0020.0002] # KHUDAWADI DIGIT SEVEN
-114D7 ; [.1909.0020.0002] # TIRHUTA DIGIT SEVEN
-11657 ; [.1909.0020.0002] # MODI DIGIT SEVEN
-116C7 ; [.1909.0020.0002] # TAKRI DIGIT SEVEN
-118E7 ; [.1909.0020.0002] # WARANG CITI DIGIT SEVEN
-12405 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN ASH
-1240C ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN DISH
-12412 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U
-1241B ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN GESH2
-12429 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN SHAR2
-12441 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3
-12442 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A
-12443 ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
-1246C ; [.1909.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM
-16A67 ; [.1909.0020.0002] # MRO DIGIT SEVEN
-16B57 ; [.1909.0020.0002] # PAHAWH HMONG DIGIT SEVEN
-1D366 ; [.1909.0020.0002] # COUNTING ROD UNIT DIGIT SEVEN
-1E8CD ; [.1909.0020.0002] # MENDE KIKAKUI DIGIT SEVEN
-FF17 ; [.1909.0020.0003] # FULLWIDTH DIGIT SEVEN
-0F30 ; [.1909.0020.0004] # TIBETAN DIGIT HALF SEVEN
-247A ; [*030A.0020.0004][.1909.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT SEVEN
-248E ; [.1909.0020.0004][*0274.0020.0004] # DIGIT SEVEN FULL STOP
-1F108 ; [.1909.0020.0004][*0221.0020.0004] # DIGIT SEVEN COMMA
-1D7D5 ; [.1909.0020.0005] # MATHEMATICAL BOLD DIGIT SEVEN
-1D7DF ; [.1909.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
-1D7E9 ; [.1909.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SEVEN
-1D7F3 ; [.1909.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
-1D7FD ; [.1909.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SEVEN
-2466 ; [.1909.0020.0006] # CIRCLED DIGIT SEVEN
-24FB ; [.1909.0020.0006] # DOUBLE CIRCLED DIGIT SEVEN
-277C ; [.1909.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
-2786 ; [.1909.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
-2790 ; [.1909.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
-2077 ; [.1909.0020.0014] # SUPERSCRIPT SEVEN
-2087 ; [.1909.0020.0015] # SUBSCRIPT SEVEN
-324E ; [.1909.0020.0006][.1902.0020.0006] # CIRCLED NUMBER SEVENTY ON BLACK SQUARE
-215E ; [.1909.0020.001E][*05E6.0020.001E][.190A.0020.001E] # VULGAR FRACTION SEVEN EIGHTHS
-33E6 ; [.1909.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
-32C6 ; [.1909.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
-335F ; [.1909.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
-0038 ; [.190A.0020.0002] # DIGIT EIGHT
-0668 ; [.190A.0020.0002] # ARABIC-INDIC DIGIT EIGHT
-06F8 ; [.190A.0020.0002] # EXTENDED ARABIC-INDIC DIGIT EIGHT
-07C8 ; [.190A.0020.0002] # NKO DIGIT EIGHT
-096E ; [.190A.0020.0002] # DEVANAGARI DIGIT EIGHT
-09EE ; [.190A.0020.0002] # BENGALI DIGIT EIGHT
-0A6E ; [.190A.0020.0002] # GURMUKHI DIGIT EIGHT
-0AEE ; [.190A.0020.0002] # GUJARATI DIGIT EIGHT
-0B6E ; [.190A.0020.0002] # ORIYA DIGIT EIGHT
-0BEE ; [.190A.0020.0002] # TAMIL DIGIT EIGHT
-0C6E ; [.190A.0020.0002] # TELUGU DIGIT EIGHT
-0CEE ; [.190A.0020.0002] # KANNADA DIGIT EIGHT
-0D6E ; [.190A.0020.0002] # MALAYALAM DIGIT EIGHT
-0DEE ; [.190A.0020.0002] # SINHALA LITH DIGIT EIGHT
-0E58 ; [.190A.0020.0002] # THAI DIGIT EIGHT
-0ED8 ; [.190A.0020.0002] # LAO DIGIT EIGHT
-0F28 ; [.190A.0020.0002] # TIBETAN DIGIT EIGHT
-1048 ; [.190A.0020.0002] # MYANMAR DIGIT EIGHT
-1098 ; [.190A.0020.0002] # MYANMAR SHAN DIGIT EIGHT
-1370 ; [.190A.0020.0002] # ETHIOPIC DIGIT EIGHT
-17E8 ; [.190A.0020.0002] # KHMER DIGIT EIGHT
-17F8 ; [.190A.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BEI
-1818 ; [.190A.0020.0002] # MONGOLIAN DIGIT EIGHT
-194E ; [.190A.0020.0002] # LIMBU DIGIT EIGHT
-19D8 ; [.190A.0020.0002] # NEW TAI LUE DIGIT EIGHT
-1A88 ; [.190A.0020.0002] # TAI THAM HORA DIGIT EIGHT
-1A98 ; [.190A.0020.0002] # TAI THAM THAM DIGIT EIGHT
-1B58 ; [.190A.0020.0002] # BALINESE DIGIT EIGHT
-1BB8 ; [.190A.0020.0002] # SUNDANESE DIGIT EIGHT
-1C48 ; [.190A.0020.0002] # LEPCHA DIGIT EIGHT
-1C58 ; [.190A.0020.0002] # OL CHIKI DIGIT EIGHT
-3028 ; [.190A.0020.0002] # HANGZHOU NUMERAL EIGHT
-A628 ; [.190A.0020.0002] # VAI DIGIT EIGHT
-A8D8 ; [.190A.0020.0002] # SAURASHTRA DIGIT EIGHT
-A908 ; [.190A.0020.0002] # KAYAH LI DIGIT EIGHT
-A9D8 ; [.190A.0020.0002] # JAVANESE DIGIT EIGHT
-A9F8 ; [.190A.0020.0002] # MYANMAR TAI LAING DIGIT EIGHT
-AA58 ; [.190A.0020.0002] # CHAM DIGIT EIGHT
-ABF8 ; [.190A.0020.0002] # MEETEI MAYEK DIGIT EIGHT
-1010E ; [.190A.0020.0002] # AEGEAN NUMBER EIGHT
-102E8 ; [.190A.0020.0002] # COPTIC EPACT DIGIT EIGHT
-104A8 ; [.190A.0020.0002] # OSMANYA DIGIT EIGHT
-10E67 ; [.190A.0020.0002] # RUMI DIGIT EIGHT
-11059 ; [.190A.0020.0002] # BRAHMI NUMBER EIGHT
-1106E ; [.190A.0020.0002] # BRAHMI DIGIT EIGHT
-110F8 ; [.190A.0020.0002] # SORA SOMPENG DIGIT EIGHT
-1113E ; [.190A.0020.0002] # CHAKMA DIGIT EIGHT
-111D8 ; [.190A.0020.0002] # SHARADA DIGIT EIGHT
-111E8 ; [.190A.0020.0002] # SINHALA ARCHAIC DIGIT EIGHT
-112F8 ; [.190A.0020.0002] # KHUDAWADI DIGIT EIGHT
-114D8 ; [.190A.0020.0002] # TIRHUTA DIGIT EIGHT
-11658 ; [.190A.0020.0002] # MODI DIGIT EIGHT
-116C8 ; [.190A.0020.0002] # TAKRI DIGIT EIGHT
-118E8 ; [.190A.0020.0002] # WARANG CITI DIGIT EIGHT
-12406 ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT ASH
-1240D ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT DISH
-12413 ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U
-1241C ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT GESH2
-1242A ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT SHAR2
-12444 ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU
-12445 ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
-1246D ; [.190A.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM
-16A68 ; [.190A.0020.0002] # MRO DIGIT EIGHT
-16B58 ; [.190A.0020.0002] # PAHAWH HMONG DIGIT EIGHT
-1D367 ; [.190A.0020.0002] # COUNTING ROD UNIT DIGIT EIGHT
-1E8CE ; [.190A.0020.0002] # MENDE KIKAKUI DIGIT EIGHT
-FF18 ; [.190A.0020.0003] # FULLWIDTH DIGIT EIGHT
-0F31 ; [.190A.0020.0004] # TIBETAN DIGIT HALF EIGHT
-247B ; [*030A.0020.0004][.190A.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT EIGHT
-248F ; [.190A.0020.0004][*0274.0020.0004] # DIGIT EIGHT FULL STOP
-1F109 ; [.190A.0020.0004][*0221.0020.0004] # DIGIT EIGHT COMMA
-1D7D6 ; [.190A.0020.0005] # MATHEMATICAL BOLD DIGIT EIGHT
-1D7E0 ; [.190A.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
-1D7EA ; [.190A.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT EIGHT
-1D7F4 ; [.190A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
-1D7FE ; [.190A.0020.0005] # MATHEMATICAL MONOSPACE DIGIT EIGHT
-2467 ; [.190A.0020.0006] # CIRCLED DIGIT EIGHT
-24FC ; [.190A.0020.0006] # DOUBLE CIRCLED DIGIT EIGHT
-277D ; [.190A.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
-2787 ; [.190A.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
-2791 ; [.190A.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
-2078 ; [.190A.0020.0014] # SUPERSCRIPT EIGHT
-2088 ; [.190A.0020.0015] # SUBSCRIPT EIGHT
-324F ; [.190A.0020.0006][.1902.0020.0006] # CIRCLED NUMBER EIGHTY ON BLACK SQUARE
-33E7 ; [.190A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
-32C7 ; [.190A.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
-3360 ; [.190A.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
-0039 ; [.190B.0020.0002] # DIGIT NINE
-0669 ; [.190B.0020.0002] # ARABIC-INDIC DIGIT NINE
-06F9 ; [.190B.0020.0002] # EXTENDED ARABIC-INDIC DIGIT NINE
-07C9 ; [.190B.0020.0002] # NKO DIGIT NINE
-096F ; [.190B.0020.0002] # DEVANAGARI DIGIT NINE
-09EF ; [.190B.0020.0002] # BENGALI DIGIT NINE
-0A6F ; [.190B.0020.0002] # GURMUKHI DIGIT NINE
-0AEF ; [.190B.0020.0002] # GUJARATI DIGIT NINE
-0B6F ; [.190B.0020.0002] # ORIYA DIGIT NINE
-0BEF ; [.190B.0020.0002] # TAMIL DIGIT NINE
-0C6F ; [.190B.0020.0002] # TELUGU DIGIT NINE
-0CEF ; [.190B.0020.0002] # KANNADA DIGIT NINE
-0D6F ; [.190B.0020.0002] # MALAYALAM DIGIT NINE
-0DEF ; [.190B.0020.0002] # SINHALA LITH DIGIT NINE
-0E59 ; [.190B.0020.0002] # THAI DIGIT NINE
-0ED9 ; [.190B.0020.0002] # LAO DIGIT NINE
-0F29 ; [.190B.0020.0002] # TIBETAN DIGIT NINE
-1049 ; [.190B.0020.0002] # MYANMAR DIGIT NINE
-1099 ; [.190B.0020.0002] # MYANMAR SHAN DIGIT NINE
-1371 ; [.190B.0020.0002] # ETHIOPIC DIGIT NINE
-17E9 ; [.190B.0020.0002] # KHMER DIGIT NINE
-17F9 ; [.190B.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BUON
-1819 ; [.190B.0020.0002] # MONGOLIAN DIGIT NINE
-194F ; [.190B.0020.0002] # LIMBU DIGIT NINE
-19D9 ; [.190B.0020.0002] # NEW TAI LUE DIGIT NINE
-1A89 ; [.190B.0020.0002] # TAI THAM HORA DIGIT NINE
-1A99 ; [.190B.0020.0002] # TAI THAM THAM DIGIT NINE
-1B59 ; [.190B.0020.0002] # BALINESE DIGIT NINE
-1BB9 ; [.190B.0020.0002] # SUNDANESE DIGIT NINE
-1C49 ; [.190B.0020.0002] # LEPCHA DIGIT NINE
-1C59 ; [.190B.0020.0002] # OL CHIKI DIGIT NINE
-3029 ; [.190B.0020.0002] # HANGZHOU NUMERAL NINE
-A629 ; [.190B.0020.0002] # VAI DIGIT NINE
-A8D9 ; [.190B.0020.0002] # SAURASHTRA DIGIT NINE
-A909 ; [.190B.0020.0002] # KAYAH LI DIGIT NINE
-A9D9 ; [.190B.0020.0002] # JAVANESE DIGIT NINE
-A9F9 ; [.190B.0020.0002] # MYANMAR TAI LAING DIGIT NINE
-AA59 ; [.190B.0020.0002] # CHAM DIGIT NINE
-ABF9 ; [.190B.0020.0002] # MEETEI MAYEK DIGIT NINE
-1010F ; [.190B.0020.0002] # AEGEAN NUMBER NINE
-102E9 ; [.190B.0020.0002] # COPTIC EPACT DIGIT NINE
-104A9 ; [.190B.0020.0002] # OSMANYA DIGIT NINE
-10E68 ; [.190B.0020.0002] # RUMI DIGIT NINE
-1105A ; [.190B.0020.0002] # BRAHMI NUMBER NINE
-1106F ; [.190B.0020.0002] # BRAHMI DIGIT NINE
-110F9 ; [.190B.0020.0002] # SORA SOMPENG DIGIT NINE
-1113F ; [.190B.0020.0002] # CHAKMA DIGIT NINE
-111D9 ; [.190B.0020.0002] # SHARADA DIGIT NINE
-111E9 ; [.190B.0020.0002] # SINHALA ARCHAIC DIGIT NINE
-112F9 ; [.190B.0020.0002] # KHUDAWADI DIGIT NINE
-114D9 ; [.190B.0020.0002] # TIRHUTA DIGIT NINE
-11659 ; [.190B.0020.0002] # MODI DIGIT NINE
-116C9 ; [.190B.0020.0002] # TAKRI DIGIT NINE
-118E9 ; [.190B.0020.0002] # WARANG CITI DIGIT NINE
-12407 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE ASH
-1240E ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE DISH
-12414 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U
-1241D ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE GESH2
-1242B ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE SHAR2
-12446 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU
-12447 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3
-12448 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4
-12449 ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
-1246E ; [.190B.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
-16A69 ; [.190B.0020.0002] # MRO DIGIT NINE
-16B59 ; [.190B.0020.0002] # PAHAWH HMONG DIGIT NINE
-1D368 ; [.190B.0020.0002] # COUNTING ROD UNIT DIGIT NINE
-1E8CF ; [.190B.0020.0002] # MENDE KIKAKUI DIGIT NINE
-FF19 ; [.190B.0020.0003] # FULLWIDTH DIGIT NINE
-0F32 ; [.190B.0020.0004] # TIBETAN DIGIT HALF NINE
-247C ; [*030A.0020.0004][.190B.0020.0004][*030B.0020.0004] # PARENTHESIZED DIGIT NINE
-2490 ; [.190B.0020.0004][*0274.0020.0004] # DIGIT NINE FULL STOP
-1F10A ; [.190B.0020.0004][*0221.0020.0004] # DIGIT NINE COMMA
-1D7D7 ; [.190B.0020.0005] # MATHEMATICAL BOLD DIGIT NINE
-1D7E1 ; [.190B.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
-1D7EB ; [.190B.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT NINE
-1D7F5 ; [.190B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
-1D7FF ; [.190B.0020.0005] # MATHEMATICAL MONOSPACE DIGIT NINE
-2468 ; [.190B.0020.0006] # CIRCLED DIGIT NINE
-24FD ; [.190B.0020.0006] # DOUBLE CIRCLED DIGIT NINE
-277E ; [.190B.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT NINE
-2788 ; [.190B.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
-2792 ; [.190B.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
-2079 ; [.190B.0020.0014] # SUPERSCRIPT NINE
-2089 ; [.190B.0020.0015] # SUBSCRIPT NINE
-33E8 ; [.190B.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
-32C8 ; [.190B.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
-3361 ; [.190B.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
-0061 ; [.190C.0020.0002] # LATIN SMALL LETTER A
-FF41 ; [.190C.0020.0003] # FULLWIDTH LATIN SMALL LETTER A
-0363 ; [.190C.0020.0004] # COMBINING LATIN SMALL LETTER A
-249C ; [*030A.0020.0004][.190C.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER A
-1D41A ; [.190C.0020.0005] # MATHEMATICAL BOLD SMALL A
-1D44E ; [.190C.0020.0005] # MATHEMATICAL ITALIC SMALL A
-1D482 ; [.190C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL A
-1D4B6 ; [.190C.0020.0005] # MATHEMATICAL SCRIPT SMALL A
-1D4EA ; [.190C.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL A
-1D51E ; [.190C.0020.0005] # MATHEMATICAL FRAKTUR SMALL A
-1D552 ; [.190C.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL A
-1D586 ; [.190C.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL A
-1D5BA ; [.190C.0020.0005] # MATHEMATICAL SANS-SERIF SMALL A
-1D5EE ; [.190C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL A
-1D622 ; [.190C.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL A
-1D656 ; [.190C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
-1D68A ; [.190C.0020.0005] # MATHEMATICAL MONOSPACE SMALL A
-24D0 ; [.190C.0020.0006] # CIRCLED LATIN SMALL LETTER A
-0041 ; [.190C.0020.0008] # LATIN CAPITAL LETTER A
-FF21 ; [.190C.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER A
-1F110 ; [*030A.0020.0004][.190C.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER A
-1D400 ; [.190C.0020.000B] # MATHEMATICAL BOLD CAPITAL A
-1D434 ; [.190C.0020.000B] # MATHEMATICAL ITALIC CAPITAL A
-1D468 ; [.190C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL A
-1D49C ; [.190C.0020.000B] # MATHEMATICAL SCRIPT CAPITAL A
-1D4D0 ; [.190C.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL A
-1D504 ; [.190C.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL A
-1D538 ; [.190C.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL A
-1D56C ; [.190C.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL A
-1D5A0 ; [.190C.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL A
-1D5D4 ; [.190C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL A
-1D608 ; [.190C.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
-1D63C ; [.190C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
-1D670 ; [.190C.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL A
-24B6 ; [.190C.0020.000C] # CIRCLED LATIN CAPITAL LETTER A
-1F150 ; [.190C.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER A
-00AA ; [.190C.0020.0014] # FEMININE ORDINAL INDICATOR
-1D43 ; [.190C.0020.0014] # MODIFIER LETTER SMALL A
-2090 ; [.190C.0020.0015] # LATIN SUBSCRIPT SMALL LETTER A
-1D2C ; [.190C.0020.001D] # MODIFIER LETTER CAPITAL A
-1F130 ; [.190C.0020.001D] # SQUARED LATIN CAPITAL LETTER A
-1F170 ; [.190C.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER A
-00E1 ; [.190C.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH ACUTE
-00C1 ; [.190C.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH ACUTE
-00E0 ; [.190C.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH GRAVE
-00C0 ; [.190C.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH GRAVE
-0103 ; [.190C.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE
-0102 ; [.190C.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE
-1EAF ; [.190C.0020.0002][.0000.0026.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
-1EAE ; [.190C.0020.0008][.0000.0026.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-1EB1 ; [.190C.0020.0002][.0000.0026.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
-1EB0 ; [.190C.0020.0008][.0000.0026.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-1EB5 ; [.190C.0020.0002][.0000.0026.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
-1EB4 ; [.190C.0020.0008][.0000.0026.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-1EB3 ; [.190C.0020.0002][.0000.0026.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-1EB2 ; [.190C.0020.0008][.0000.0026.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-00E2 ; [.190C.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
-00C2 ; [.190C.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-1EA5 ; [.190C.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA4 ; [.190C.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-1EA7 ; [.190C.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EA6 ; [.190C.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-1EAB ; [.190C.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-1EAA ; [.190C.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-1EA9 ; [.190C.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-1EA8 ; [.190C.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-01CE ; [.190C.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER A WITH CARON
-01CD ; [.190C.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER A WITH CARON
-00E5 ; [.190C.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH RING ABOVE
-00C5 ; [.190C.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE
-212B ; [.190C.0020.0008][.0000.0029.0002] # ANGSTROM SIGN
-01FB ; [.190C.0020.0002][.0000.0029.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-01FA ; [.190C.0020.0008][.0000.0029.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-00E4 ; [.190C.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER A WITH DIAERESIS
-1DF2 ; [.190C.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER A WITH DIAERESIS
-A79B ; [.190C.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK AE
-00C4 ; [.190C.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS
-A79A ; [.190C.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK AE
-01DF ; [.190C.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-01DE ; [.190C.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-00E3 ; [.190C.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH TILDE
-00C3 ; [.190C.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH TILDE
-0227 ; [.190C.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
-0226 ; [.190C.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE
-01E1 ; [.190C.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-01E0 ; [.190C.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-0105 ; [.190C.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER A WITH OGONEK
-0104 ; [.190C.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER A WITH OGONEK
-0101 ; [.190C.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH MACRON
-0100 ; [.190C.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH MACRON
-1EA3 ; [.190C.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH HOOK ABOVE
-1EA2 ; [.190C.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
-0201 ; [.190C.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER A WITH DOUBLE GRAVE
-0200 ; [.190C.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-0203 ; [.190C.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER A WITH INVERTED BREVE
-0202 ; [.190C.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER A WITH INVERTED BREVE
-1EA1 ; [.190C.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH DOT BELOW
-1EA0 ; [.190C.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH DOT BELOW
-1EB7 ; [.190C.0020.0002][.0000.0042.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-1EB6 ; [.190C.0020.0008][.0000.0042.0002][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-1EAD ; [.190C.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1EAC ; [.190C.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-1E01 ; [.190C.0020.0002][.0000.0044.0002] # LATIN SMALL LETTER A WITH RING BELOW
-1E00 ; [.190C.0020.0008][.0000.0044.0002] # LATIN CAPITAL LETTER A WITH RING BELOW
-1DD3 ; [.190C.0020.0004][.0000.0108.0004] # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE
-A733 ; [.190C.0020.0004][.190C.0020.0004] # LATIN SMALL LETTER AA
-A732 ; [.190C.0020.000A][.190C.0020.000A] # LATIN CAPITAL LETTER AA
-1F18E ; [.190C.0020.001D][.1925.0020.001D] # NEGATIVE SQUARED AB
-2100 ; [.190C.0020.0004][*0387.0020.0004][.193E.0020.0004] # ACCOUNT OF
-00E6 ; [.190C.0020.0004][.0000.0108.0004][.196E.0020.0004] # LATIN SMALL LETTER AE
-1DD4 ; [.190C.0020.0004][.0000.0108.0004][.196E.0020.0004] # COMBINING LATIN SMALL LETTER AE
-00C6 ; [.190C.0020.000A][.0000.0108.0004][.196E.0020.000A] # LATIN CAPITAL LETTER AE
-1D2D ; [.190C.0020.0014][.0000.0108.0014][.196E.0020.0014] # MODIFIER LETTER CAPITAL AE
-01FD ; [.190C.0020.0004][.0000.0108.0004][.196E.0020.0004][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
-01FC ; [.190C.0020.000A][.0000.0108.0004][.196E.0020.000A][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
-01E3 ; [.190C.0020.0004][.0000.0108.0004][.196E.0020.0004][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
-01E2 ; [.190C.0020.000A][.0000.0108.0004][.196E.0020.000A][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
-33C2 ; [.190C.0020.001C][*0274.0020.001C][.1A6E.0020.001C][*0274.0020.001C] # SQUARE AM
-33DF ; [.190C.0020.001D][*05E5.0020.001C][.1A6E.0020.001C] # SQUARE A OVER M
-1DD5 ; [.190C.0020.0004][.1AA1.0020.0004] # COMBINING LATIN SMALL LETTER AO
-A735 ; [.190C.0020.0004][.1AA1.0020.0004] # LATIN SMALL LETTER AO
-A734 ; [.190C.0020.000A][.1AA1.0020.000A] # LATIN CAPITAL LETTER AO
-2101 ; [.190C.0020.0004][*0387.0020.0004][.1B33.0020.0004] # ADDRESSED TO THE SUBJECT
-214D ; [.190C.0020.000A][*0387.0020.0004][.1B33.0020.000A] # AKTIESELSKAB
-A737 ; [.190C.0020.0004][.1B77.0020.0004] # LATIN SMALL LETTER AU
-A736 ; [.190C.0020.000A][.1B77.0020.000A] # LATIN CAPITAL LETTER AU
-3373 ; [.190C.0020.001D][.1B77.0020.001D] # SQUARE AU
-1DD6 ; [.190C.0020.0004][.1BA5.0020.0004] # COMBINING LATIN SMALL LETTER AV
-A739 ; [.190C.0020.0004][.1BA5.0020.0004] # LATIN SMALL LETTER AV
-A738 ; [.190C.0020.000A][.1BA5.0020.000A] # LATIN CAPITAL LETTER AV
-A73B ; [.190C.0020.0004][.0000.0108.0004][.1BA5.0020.0004] # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
-A73A ; [.190C.0020.000A][.0000.0108.0004][.1BA5.0020.000A] # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
-A73D ; [.190C.0020.0004][.1BCD.0020.0004] # LATIN SMALL LETTER AY
-A73C ; [.190C.0020.000A][.1BCD.0020.000A] # LATIN CAPITAL LETTER AY
-1E9A ; [.190C.0020.0004][.1C3F.0020.0004] # LATIN SMALL LETTER A WITH RIGHT HALF RING
-1D00 ; [.1910.0020.0002] # LATIN LETTER SMALL CAPITAL A
-2C65 ; [.1911.0020.0002] # LATIN SMALL LETTER A WITH STROKE
-023A ; [.1911.0020.0008] # LATIN CAPITAL LETTER A WITH STROKE
-1D8F ; [.1912.0020.0002] # LATIN SMALL LETTER A WITH RETROFLEX HOOK
-1D01 ; [.1913.0020.0002] # LATIN LETTER SMALL CAPITAL AE
-1D02 ; [.1914.0020.0002] # LATIN SMALL LETTER TURNED AE
-1D46 ; [.1914.0020.0014] # MODIFIER LETTER SMALL TURNED AE
-AB31 ; [.1915.0020.0002] # LATIN SMALL LETTER A REVERSED-SCHWA
-0250 ; [.1916.0020.0002] # LATIN SMALL LETTER TURNED A
-2C6F ; [.1916.0020.0008] # LATIN CAPITAL LETTER TURNED A
-1D44 ; [.1916.0020.0014] # MODIFIER LETTER SMALL TURNED A
-0251 ; [.191A.0020.0002] # LATIN SMALL LETTER ALPHA
-1DE7 ; [.191A.0020.0004] # COMBINING LATIN SMALL LETTER ALPHA
-2C6D ; [.191A.0020.0008] # LATIN CAPITAL LETTER ALPHA
-1D45 ; [.191A.0020.0014] # MODIFIER LETTER SMALL ALPHA
-AB30 ; [.191E.0020.0002] # LATIN SMALL LETTER BARRED ALPHA
-1D90 ; [.191F.0020.0002] # LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
-0252 ; [.1920.0020.0002] # LATIN SMALL LETTER TURNED ALPHA
-2C70 ; [.1920.0020.0008] # LATIN CAPITAL LETTER TURNED ALPHA
-1D9B ; [.1920.0020.0014] # MODIFIER LETTER SMALL TURNED ALPHA
-AB64 ; [.1924.0020.0002] # LATIN SMALL LETTER INVERTED ALPHA
-0062 ; [.1925.0020.0002] # LATIN SMALL LETTER B
-FF42 ; [.1925.0020.0003] # FULLWIDTH LATIN SMALL LETTER B
-1DE8 ; [.1925.0020.0004] # COMBINING LATIN SMALL LETTER B
-249D ; [*030A.0020.0004][.1925.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER B
-1D41B ; [.1925.0020.0005] # MATHEMATICAL BOLD SMALL B
-1D44F ; [.1925.0020.0005] # MATHEMATICAL ITALIC SMALL B
-1D483 ; [.1925.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL B
-1D4B7 ; [.1925.0020.0005] # MATHEMATICAL SCRIPT SMALL B
-1D4EB ; [.1925.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL B
-1D51F ; [.1925.0020.0005] # MATHEMATICAL FRAKTUR SMALL B
-1D553 ; [.1925.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL B
-1D587 ; [.1925.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL B
-1D5BB ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF SMALL B
-1D5EF ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL B
-1D623 ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL B
-1D657 ; [.1925.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
-1D68B ; [.1925.0020.0005] # MATHEMATICAL MONOSPACE SMALL B
-24D1 ; [.1925.0020.0006] # CIRCLED LATIN SMALL LETTER B
-0042 ; [.1925.0020.0008] # LATIN CAPITAL LETTER B
-FF22 ; [.1925.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER B
-1F111 ; [*030A.0020.0004][.1925.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER B
-212C ; [.1925.0020.000B] # SCRIPT CAPITAL B
-1D401 ; [.1925.0020.000B] # MATHEMATICAL BOLD CAPITAL B
-1D435 ; [.1925.0020.000B] # MATHEMATICAL ITALIC CAPITAL B
-1D469 ; [.1925.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL B
-1D4D1 ; [.1925.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL B
-1D505 ; [.1925.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL B
-1D539 ; [.1925.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D56D ; [.1925.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL B
-1D5A1 ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL B
-1D5D5 ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL B
-1D609 ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
-1D63D ; [.1925.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
-1D671 ; [.1925.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL B
-24B7 ; [.1925.0020.000C] # CIRCLED LATIN CAPITAL LETTER B
-1F151 ; [.1925.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER B
-1D47 ; [.1925.0020.0014] # MODIFIER LETTER SMALL B
-1D2E ; [.1925.0020.001D] # MODIFIER LETTER CAPITAL B
-1F131 ; [.1925.0020.001D] # SQUARED LATIN CAPITAL LETTER B
-1F171 ; [.1925.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER B
-1E03 ; [.1925.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER B WITH DOT ABOVE
-1E02 ; [.1925.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER B WITH DOT ABOVE
-1E05 ; [.1925.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER B WITH DOT BELOW
-1E04 ; [.1925.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER B WITH DOT BELOW
-1E07 ; [.1925.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER B WITH LINE BELOW
-1E06 ; [.1925.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER B WITH LINE BELOW
-3374 ; [.1925.0020.001C][.190C.0020.001C][.1AF5.0020.001C] # SQUARE BAR
-33C3 ; [.1925.0020.001D][.1AE3.0020.001C] # SQUARE BQ
-0299 ; [.1929.0020.0002] # LATIN LETTER SMALL CAPITAL B
-0180 ; [.192D.0020.0002] # LATIN SMALL LETTER B WITH STROKE
-0243 ; [.192D.0020.0008] # LATIN CAPITAL LETTER B WITH STROKE
-1D2F ; [.1931.0020.0002] # MODIFIER LETTER CAPITAL BARRED B
-1D03 ; [.1932.0020.0002] # LATIN LETTER SMALL CAPITAL BARRED B
-1D6C ; [.1933.0020.0002] # LATIN SMALL LETTER B WITH MIDDLE TILDE
-A797 ; [.1934.0020.0002] # LATIN SMALL LETTER B WITH FLOURISH
-A796 ; [.1934.0020.0008] # LATIN CAPITAL LETTER B WITH FLOURISH
-1D80 ; [.1935.0020.0002] # LATIN SMALL LETTER B WITH PALATAL HOOK
-0253 ; [.1936.0020.0002] # LATIN SMALL LETTER B WITH HOOK
-0181 ; [.1936.0020.0008] # LATIN CAPITAL LETTER B WITH HOOK
-0183 ; [.193A.0020.0002] # LATIN SMALL LETTER B WITH TOPBAR
-0182 ; [.193A.0020.0008] # LATIN CAPITAL LETTER B WITH TOPBAR
-0063 ; [.193E.0020.0002] # LATIN SMALL LETTER C
-FF43 ; [.193E.0020.0003] # FULLWIDTH LATIN SMALL LETTER C
-0368 ; [.193E.0020.0004] # COMBINING LATIN SMALL LETTER C
-217D ; [.193E.0020.0004] # SMALL ROMAN NUMERAL ONE HUNDRED
-249E ; [*030A.0020.0004][.193E.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER C
-1D41C ; [.193E.0020.0005] # MATHEMATICAL BOLD SMALL C
-1D450 ; [.193E.0020.0005] # MATHEMATICAL ITALIC SMALL C
-1D484 ; [.193E.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL C
-1D4B8 ; [.193E.0020.0005] # MATHEMATICAL SCRIPT SMALL C
-1D4EC ; [.193E.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL C
-1D520 ; [.193E.0020.0005] # MATHEMATICAL FRAKTUR SMALL C
-1D554 ; [.193E.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL C
-1D588 ; [.193E.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL C
-1D5BC ; [.193E.0020.0005] # MATHEMATICAL SANS-SERIF SMALL C
-1D5F0 ; [.193E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL C
-1D624 ; [.193E.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL C
-1D658 ; [.193E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
-1D68C ; [.193E.0020.0005] # MATHEMATICAL MONOSPACE SMALL C
-24D2 ; [.193E.0020.0006] # CIRCLED LATIN SMALL LETTER C
-0043 ; [.193E.0020.0008] # LATIN CAPITAL LETTER C
-FF23 ; [.193E.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER C
-2103 ; [*04BA.0020.0004][.193E.0020.000A] # DEGREE CELSIUS
-216D ; [.193E.0020.000A] # ROMAN NUMERAL ONE HUNDRED
-1F112 ; [*030A.0020.0004][.193E.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER C
-2102 ; [.193E.0020.000B] # DOUBLE-STRUCK CAPITAL C
-212D ; [.193E.0020.000B] # BLACK-LETTER CAPITAL C
-1D402 ; [.193E.0020.000B] # MATHEMATICAL BOLD CAPITAL C
-1D436 ; [.193E.0020.000B] # MATHEMATICAL ITALIC CAPITAL C
-1D46A ; [.193E.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL C
-1D49E ; [.193E.0020.000B] # MATHEMATICAL SCRIPT CAPITAL C
-1D4D2 ; [.193E.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL C
-1D56E ; [.193E.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL C
-1D5A2 ; [.193E.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL C
-1D5D6 ; [.193E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL C
-1D60A ; [.193E.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
-1D63E ; [.193E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
-1D672 ; [.193E.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL C
-24B8 ; [.193E.0020.000C] # CIRCLED LATIN CAPITAL LETTER C
-1F12B ; [.193E.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER C
-1F152 ; [.193E.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER C
-1D9C ; [.193E.0020.0014] # MODIFIER LETTER SMALL C
-1F132 ; [.193E.0020.001D] # SQUARED LATIN CAPITAL LETTER C
-1F172 ; [.193E.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER C
-0107 ; [.193E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH ACUTE
-0106 ; [.193E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH ACUTE
-0109 ; [.193E.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
-0108 ; [.193E.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-010D ; [.193E.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER C WITH CARON
-010C ; [.193E.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER C WITH CARON
-010B ; [.193E.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
-010A ; [.193E.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER C WITH DOT ABOVE
-00E7 ; [.193E.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER C WITH CEDILLA
-1DD7 ; [.193E.0020.0004][.0000.0030.0004] # COMBINING LATIN SMALL LETTER C CEDILLA
-00C7 ; [.193E.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER C WITH CEDILLA
-1E09 ; [.193E.0020.0002][.0000.0030.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-1E08 ; [.193E.0020.0008][.0000.0030.0002][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-3388 ; [.193E.0020.001C][.190C.0020.001C][.1A3B.0020.001C] # SQUARE CAL
-33C4 ; [.193E.0020.001C][.193E.0020.001C] # SQUARE CC
-1F12D ; [.193E.0020.000C][.1953.0020.000C] # CIRCLED CD
-33C5 ; [.193E.0020.001C][.1953.0020.001C] # SQUARE CD
-33C6 ; [.193E.0020.001D][*05E5.0020.001C][.1A29.0020.001C][.19B8.0020.001C] # SQUARE C OVER KG
-1F191 ; [.193E.0020.001D][.1A3B.0020.001D] # SQUARED CL
-339D ; [.193E.0020.001C][.1A6E.0020.001C] # SQUARE CM
-33A0 ; [.193E.0020.001C][.1A6E.0020.001C][.1904.0020.001C] # SQUARE CM SQUARED
-33A4 ; [.193E.0020.001C][.1A6E.0020.001C][.1905.0020.001C] # SQUARE CM CUBED
-2105 ; [.193E.0020.0004][*0387.0020.0004][.1AA1.0020.0004] # CARE OF
-33C7 ; [.193E.0020.001D][.1AA1.0020.001C][*0274.0020.001C] # SQUARE CO
-1F192 ; [.193E.0020.001D][.1AA1.0020.001D][.1AA1.0020.001D][.1A3B.0020.001D] # SQUARED COOL
-2106 ; [.193E.0020.0004][*0387.0020.0004][.1B77.0020.0004] # CADA UNA
-1D04 ; [.1942.0020.0002] # LATIN LETTER SMALL CAPITAL C
-023C ; [.1943.0020.0002] # LATIN SMALL LETTER C WITH STROKE
-023B ; [.1943.0020.0008] # LATIN CAPITAL LETTER C WITH STROKE
-A793 ; [.1947.0020.0002] # LATIN SMALL LETTER C WITH BAR
-A792 ; [.1947.0020.0008] # LATIN CAPITAL LETTER C WITH BAR
-A794 ; [.1948.0020.0002] # LATIN SMALL LETTER C WITH PALATAL HOOK
-0188 ; [.1949.0020.0002] # LATIN SMALL LETTER C WITH HOOK
-0187 ; [.1949.0020.0008] # LATIN CAPITAL LETTER C WITH HOOK
-0255 ; [.194D.0020.0002] # LATIN SMALL LETTER C WITH CURL
-1D9D ; [.194D.0020.0014] # MODIFIER LETTER SMALL C WITH CURL
-2184 ; [.1951.0020.0002] # LATIN SMALL LETTER REVERSED C
-2183 ; [.1951.0020.0008] # ROMAN NUMERAL REVERSED ONE HUNDRED
-A73F ; [.1952.0020.0002] # LATIN SMALL LETTER REVERSED C WITH DOT
-A73E ; [.1952.0020.0008] # LATIN CAPITAL LETTER REVERSED C WITH DOT
-0064 ; [.1953.0020.0002] # LATIN SMALL LETTER D
-FF44 ; [.1953.0020.0003] # FULLWIDTH LATIN SMALL LETTER D
-0369 ; [.1953.0020.0004] # COMBINING LATIN SMALL LETTER D
-217E ; [.1953.0020.0004] # SMALL ROMAN NUMERAL FIVE HUNDRED
-249F ; [*030A.0020.0004][.1953.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER D
-2146 ; [.1953.0020.0005] # DOUBLE-STRUCK ITALIC SMALL D
-1D41D ; [.1953.0020.0005] # MATHEMATICAL BOLD SMALL D
-1D451 ; [.1953.0020.0005] # MATHEMATICAL ITALIC SMALL D
-1D485 ; [.1953.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL D
-1D4B9 ; [.1953.0020.0005] # MATHEMATICAL SCRIPT SMALL D
-1D4ED ; [.1953.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL D
-1D521 ; [.1953.0020.0005] # MATHEMATICAL FRAKTUR SMALL D
-1D555 ; [.1953.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL D
-1D589 ; [.1953.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL D
-1D5BD ; [.1953.0020.0005] # MATHEMATICAL SANS-SERIF SMALL D
-1D5F1 ; [.1953.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL D
-1D625 ; [.1953.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL D
-1D659 ; [.1953.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
-1D68D ; [.1953.0020.0005] # MATHEMATICAL MONOSPACE SMALL D
-24D3 ; [.1953.0020.0006] # CIRCLED LATIN SMALL LETTER D
-0044 ; [.1953.0020.0008] # LATIN CAPITAL LETTER D
-FF24 ; [.1953.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER D
-216E ; [.1953.0020.000A] # ROMAN NUMERAL FIVE HUNDRED
-1F113 ; [*030A.0020.0004][.1953.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER D
-2145 ; [.1953.0020.000B] # DOUBLE-STRUCK ITALIC CAPITAL D
-1D403 ; [.1953.0020.000B] # MATHEMATICAL BOLD CAPITAL D
-1D437 ; [.1953.0020.000B] # MATHEMATICAL ITALIC CAPITAL D
-1D46B ; [.1953.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL D
-1D49F ; [.1953.0020.000B] # MATHEMATICAL SCRIPT CAPITAL D
-1D4D3 ; [.1953.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL D
-1D507 ; [.1953.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL D
-1D53B ; [.1953.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL D
-1D56F ; [.1953.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL D
-1D5A3 ; [.1953.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL D
-1D5D7 ; [.1953.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL D
-1D60B ; [.1953.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
-1D63F ; [.1953.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
-1D673 ; [.1953.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL D
-24B9 ; [.1953.0020.000C] # CIRCLED LATIN CAPITAL LETTER D
-1F153 ; [.1953.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER D
-1D48 ; [.1953.0020.0014] # MODIFIER LETTER SMALL D
-1D30 ; [.1953.0020.001D] # MODIFIER LETTER CAPITAL D
-1F133 ; [.1953.0020.001D] # SQUARED LATIN CAPITAL LETTER D
-1F173 ; [.1953.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER D
-010F ; [.1953.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER D WITH CARON
-010E ; [.1953.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER D WITH CARON
-1E0B ; [.1953.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER D WITH DOT ABOVE
-1E0A ; [.1953.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER D WITH DOT ABOVE
-1E11 ; [.1953.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER D WITH CEDILLA
-1E10 ; [.1953.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER D WITH CEDILLA
-0111 ; [.1953.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
-0110 ; [.1953.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
-1E0D ; [.1953.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER D WITH DOT BELOW
-1E0C ; [.1953.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER D WITH DOT BELOW
-1E13 ; [.1953.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-1E12 ; [.1953.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-1E0F ; [.1953.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER D WITH LINE BELOW
-1E0E ; [.1953.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER D WITH LINE BELOW
-00F0 ; [.1953.0020.0004][.0000.0108.0004] # LATIN SMALL LETTER ETH
-1DD9 ; [.1953.0020.0004][.0000.0108.0004] # COMBINING LATIN SMALL LETTER ETH
-00D0 ; [.1953.0020.000A][.0000.0108.0004] # LATIN CAPITAL LETTER ETH
-1D9E ; [.1953.0020.0014][.0000.0108.0014] # MODIFIER LETTER SMALL ETH
-1DD8 ; [.1953.0020.0004][.0000.0109.0004] # COMBINING LATIN SMALL LETTER INSULAR D
-A77A ; [.1953.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR D
-A779 ; [.1953.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR D
-3372 ; [.1953.0020.001C][.190C.0020.001C] # SQUARE DA
-0238 ; [.1953.0020.0004][.1925.0020.0004] # LATIN SMALL LETTER DB DIGRAPH
-33C8 ; [.1953.0020.001C][.1925.0020.001D] # SQUARE DB
-1F190 ; [.1953.0020.001D][.1A10.0020.001D] # SQUARE DJ
-3397 ; [.1953.0020.001C][.1A3B.0020.001C] # SQUARE DL
-3377 ; [.1953.0020.001C][.1A6E.0020.001C] # SQUARE DM
-3378 ; [.1953.0020.001C][.1A6E.0020.001C][.1904.0020.001C] # SQUARE DM SQUARED
-3379 ; [.1953.0020.001C][.1A6E.0020.001C][.1905.0020.001C] # SQUARE DM CUBED
-01F3 ; [.1953.0020.0004][.1BE3.0020.0004] # LATIN SMALL LETTER DZ
-02A3 ; [.1953.0020.0004][.1BE3.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH
-01F2 ; [.1953.0020.000A][.1BE3.0020.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-01F1 ; [.1953.0020.000A][.1BE3.0020.000A] # LATIN CAPITAL LETTER DZ
-01C6 ; [.1953.0020.0004][.1BE3.0020.0004][.0000.0028.0004] # LATIN SMALL LETTER DZ WITH CARON
-01C5 ; [.1953.0020.000A][.1BE3.0020.0004][.0000.0028.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-01C4 ; [.1953.0020.000A][.1BE3.0020.000A][.0000.0028.0004] # LATIN CAPITAL LETTER DZ WITH CARON
-02A5 ; [.1953.0020.0004][.1BF6.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-02A4 ; [.1953.0020.0004][.1C00.0020.0004] # LATIN SMALL LETTER DEZH DIGRAPH
-1D05 ; [.1957.0020.0002] # LATIN LETTER SMALL CAPITAL D
-1D06 ; [.1958.0020.0002] # LATIN LETTER SMALL CAPITAL ETH
-1D6D ; [.1959.0020.0002] # LATIN SMALL LETTER D WITH MIDDLE TILDE
-1D81 ; [.195A.0020.0002] # LATIN SMALL LETTER D WITH PALATAL HOOK
-0256 ; [.195B.0020.0002] # LATIN SMALL LETTER D WITH TAIL
-0189 ; [.195B.0020.0008] # LATIN CAPITAL LETTER AFRICAN D
-0257 ; [.195F.0020.0002] # LATIN SMALL LETTER D WITH HOOK
-018A ; [.195F.0020.0008] # LATIN CAPITAL LETTER D WITH HOOK
-1D91 ; [.1963.0020.0002] # LATIN SMALL LETTER D WITH HOOK AND TAIL
-018C ; [.1964.0020.0002] # LATIN SMALL LETTER D WITH TOPBAR
-018B ; [.1964.0020.0008] # LATIN CAPITAL LETTER D WITH TOPBAR
-0221 ; [.1968.0020.0002] # LATIN SMALL LETTER D WITH CURL
-A771 ; [.196C.0020.0002] # LATIN SMALL LETTER DUM
-1E9F ; [.196D.0020.0002] # LATIN SMALL LETTER DELTA
-0065 ; [.196E.0020.0002] # LATIN SMALL LETTER E
-FF45 ; [.196E.0020.0003] # FULLWIDTH LATIN SMALL LETTER E
-0364 ; [.196E.0020.0004] # COMBINING LATIN SMALL LETTER E
-24A0 ; [*030A.0020.0004][.196E.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER E
-212F ; [.196E.0020.0005] # SCRIPT SMALL E
-2147 ; [.196E.0020.0005] # DOUBLE-STRUCK ITALIC SMALL E
-1D41E ; [.196E.0020.0005] # MATHEMATICAL BOLD SMALL E
-1D452 ; [.196E.0020.0005] # MATHEMATICAL ITALIC SMALL E
-1D486 ; [.196E.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL E
-1D4EE ; [.196E.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL E
-1D522 ; [.196E.0020.0005] # MATHEMATICAL FRAKTUR SMALL E
-1D556 ; [.196E.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL E
-1D58A ; [.196E.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL E
-1D5BE ; [.196E.0020.0005] # MATHEMATICAL SANS-SERIF SMALL E
-1D5F2 ; [.196E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL E
-1D626 ; [.196E.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL E
-1D65A ; [.196E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
-1D68E ; [.196E.0020.0005] # MATHEMATICAL MONOSPACE SMALL E
-24D4 ; [.196E.0020.0006] # CIRCLED LATIN SMALL LETTER E
-0045 ; [.196E.0020.0008] # LATIN CAPITAL LETTER E
-FF25 ; [.196E.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER E
-1F114 ; [*030A.0020.0004][.196E.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER E
-2130 ; [.196E.0020.000B] # SCRIPT CAPITAL E
-1D404 ; [.196E.0020.000B] # MATHEMATICAL BOLD CAPITAL E
-1D438 ; [.196E.0020.000B] # MATHEMATICAL ITALIC CAPITAL E
-1D46C ; [.196E.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL E
-1D4D4 ; [.196E.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL E
-1D508 ; [.196E.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL E
-1D53C ; [.196E.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL E
-1D570 ; [.196E.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL E
-1D5A4 ; [.196E.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL E
-1D5D8 ; [.196E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL E
-1D60C ; [.196E.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
-1D640 ; [.196E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
-1D674 ; [.196E.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL E
-24BA ; [.196E.0020.000C] # CIRCLED LATIN CAPITAL LETTER E
-1F154 ; [.196E.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER E
-1D49 ; [.196E.0020.0014] # MODIFIER LETTER SMALL E
-2091 ; [.196E.0020.0015] # LATIN SUBSCRIPT SMALL LETTER E
-1D31 ; [.196E.0020.001D] # MODIFIER LETTER CAPITAL E
-1F134 ; [.196E.0020.001D] # SQUARED LATIN CAPITAL LETTER E
-1F174 ; [.196E.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER E
-00E9 ; [.196E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH ACUTE
-00C9 ; [.196E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH ACUTE
-00E8 ; [.196E.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH GRAVE
-00C8 ; [.196E.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH GRAVE
-0115 ; [.196E.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH BREVE
-0114 ; [.196E.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH BREVE
-00EA ; [.196E.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
-00CA ; [.196E.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-1EBF ; [.196E.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EBE ; [.196E.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-1EC1 ; [.196E.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC0 ; [.196E.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-1EC5 ; [.196E.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC4 ; [.196E.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-1EC3 ; [.196E.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-1EC2 ; [.196E.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-011B ; [.196E.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER E WITH CARON
-011A ; [.196E.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER E WITH CARON
-00EB ; [.196E.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER E WITH DIAERESIS
-00CB ; [.196E.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER E WITH DIAERESIS
-1EBD ; [.196E.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH TILDE
-1EBC ; [.196E.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH TILDE
-0117 ; [.196E.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
-0116 ; [.196E.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER E WITH DOT ABOVE
-0229 ; [.196E.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER E WITH CEDILLA
-0228 ; [.196E.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER E WITH CEDILLA
-1E1D ; [.196E.0020.0002][.0000.0030.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-1E1C ; [.196E.0020.0008][.0000.0030.0002][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-0119 ; [.196E.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER E WITH OGONEK
-0118 ; [.196E.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER E WITH OGONEK
-0113 ; [.196E.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
-0112 ; [.196E.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
-1E17 ; [.196E.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH MACRON AND ACUTE
-1E16 ; [.196E.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-1E15 ; [.196E.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH MACRON AND GRAVE
-1E14 ; [.196E.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-1EBB ; [.196E.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH HOOK ABOVE
-1EBA ; [.196E.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
-0205 ; [.196E.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER E WITH DOUBLE GRAVE
-0204 ; [.196E.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-0207 ; [.196E.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER E WITH INVERTED BREVE
-0206 ; [.196E.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER E WITH INVERTED BREVE
-1EB9 ; [.196E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH DOT BELOW
-1EB8 ; [.196E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH DOT BELOW
-1EC7 ; [.196E.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1EC6 ; [.196E.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-1E19 ; [.196E.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-1E18 ; [.196E.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-1E1B ; [.196E.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER E WITH TILDE BELOW
-1E1A ; [.196E.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER E WITH TILDE BELOW
-32CD ; [.196E.0020.001C][.1AF5.0020.001C][.19B8.0020.001C] # SQUARE ERG
-32CE ; [.196E.0020.001C][.1BA5.0020.001D] # SQUARE EV
-1D07 ; [.1972.0020.0002] # LATIN LETTER SMALL CAPITAL E
-AB32 ; [.1973.0020.0002] # LATIN SMALL LETTER BLACKLETTER E
-AB33 ; [.1974.0020.0002] # LATIN SMALL LETTER BARRED E
-0247 ; [.1975.0020.0002] # LATIN SMALL LETTER E WITH STROKE
-0246 ; [.1975.0020.0008] # LATIN CAPITAL LETTER E WITH STROKE
-1D92 ; [.1979.0020.0002] # LATIN SMALL LETTER E WITH RETROFLEX HOOK
-AB34 ; [.197A.0020.0002] # LATIN SMALL LETTER E WITH FLOURISH
-2C78 ; [.197B.0020.0002] # LATIN SMALL LETTER E WITH NOTCH
-01DD ; [.197C.0020.0002] # LATIN SMALL LETTER TURNED E
-018E ; [.197C.0020.0008] # LATIN CAPITAL LETTER REVERSED E
-1D32 ; [.197C.0020.001D] # MODIFIER LETTER CAPITAL REVERSED E
-2C7B ; [.1980.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED E
-0259 ; [.1981.0020.0002] # LATIN SMALL LETTER SCHWA
-1DEA ; [.1981.0020.0004] # COMBINING LATIN SMALL LETTER SCHWA
-018F ; [.1981.0020.0008] # LATIN CAPITAL LETTER SCHWA
-1D4A ; [.1981.0020.0014] # MODIFIER LETTER SMALL SCHWA
-2094 ; [.1981.0020.0015] # LATIN SUBSCRIPT SMALL LETTER SCHWA
-1D95 ; [.1985.0020.0002] # LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
-025B ; [.1986.0020.0002] # LATIN SMALL LETTER OPEN E
-0190 ; [.1986.0020.0008] # LATIN CAPITAL LETTER OPEN E
-2107 ; [.1986.0020.000A] # EULER CONSTANT
-1D4B ; [.1986.0020.0014] # MODIFIER LETTER SMALL OPEN E
-1D93 ; [.198A.0020.0002] # LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
-0258 ; [.198B.0020.0002] # LATIN SMALL LETTER REVERSED E
-025A ; [.198F.0020.0002] # LATIN SMALL LETTER SCHWA WITH HOOK
-025C ; [.1993.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E
-A7AB ; [.1993.0020.0008] # LATIN CAPITAL LETTER REVERSED OPEN E
-1D9F ; [.1993.0020.0014] # MODIFIER LETTER SMALL REVERSED OPEN E
-1D94 ; [.1997.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
-1D08 ; [.1998.0020.0002] # LATIN SMALL LETTER TURNED OPEN E
-1D4C ; [.1998.0020.0014] # MODIFIER LETTER SMALL TURNED OPEN E
-025D ; [.1999.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-025E ; [.199D.0020.0002] # LATIN SMALL LETTER CLOSED REVERSED OPEN E
-029A ; [.19A1.0020.0002] # LATIN SMALL LETTER CLOSED OPEN E
-0264 ; [.19A5.0020.0002] # LATIN SMALL LETTER RAMS HORN
-0066 ; [.19A9.0020.0002] # LATIN SMALL LETTER F
-FF46 ; [.19A9.0020.0003] # FULLWIDTH LATIN SMALL LETTER F
-1DEB ; [.19A9.0020.0004] # COMBINING LATIN SMALL LETTER F
-24A1 ; [*030A.0020.0004][.19A9.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER F
-1D41F ; [.19A9.0020.0005] # MATHEMATICAL BOLD SMALL F
-1D453 ; [.19A9.0020.0005] # MATHEMATICAL ITALIC SMALL F
-1D487 ; [.19A9.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL F
-1D4BB ; [.19A9.0020.0005] # MATHEMATICAL SCRIPT SMALL F
-1D4EF ; [.19A9.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL F
-1D523 ; [.19A9.0020.0005] # MATHEMATICAL FRAKTUR SMALL F
-1D557 ; [.19A9.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL F
-1D58B ; [.19A9.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL F
-1D5BF ; [.19A9.0020.0005] # MATHEMATICAL SANS-SERIF SMALL F
-1D5F3 ; [.19A9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL F
-1D627 ; [.19A9.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL F
-1D65B ; [.19A9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
-1D68F ; [.19A9.0020.0005] # MATHEMATICAL MONOSPACE SMALL F
-24D5 ; [.19A9.0020.0006] # CIRCLED LATIN SMALL LETTER F
-0046 ; [.19A9.0020.0008] # LATIN CAPITAL LETTER F
-FF26 ; [.19A9.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER F
-2109 ; [*04BA.0020.0004][.19A9.0020.000A] # DEGREE FAHRENHEIT
-1F115 ; [*030A.0020.0004][.19A9.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER F
-2131 ; [.19A9.0020.000B] # SCRIPT CAPITAL F
-1D405 ; [.19A9.0020.000B] # MATHEMATICAL BOLD CAPITAL F
-1D439 ; [.19A9.0020.000B] # MATHEMATICAL ITALIC CAPITAL F
-1D46D ; [.19A9.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL F
-1D4D5 ; [.19A9.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL F
-1D509 ; [.19A9.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL F
-1D53D ; [.19A9.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL F
-1D571 ; [.19A9.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL F
-1D5A5 ; [.19A9.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL F
-1D5D9 ; [.19A9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL F
-1D60D ; [.19A9.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
-1D641 ; [.19A9.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
-1D675 ; [.19A9.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL F
-24BB ; [.19A9.0020.000C] # CIRCLED LATIN CAPITAL LETTER F
-1F155 ; [.19A9.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER F
-1DA0 ; [.19A9.0020.0014] # MODIFIER LETTER SMALL F
-1F135 ; [.19A9.0020.001D] # SQUARED LATIN CAPITAL LETTER F
-1F175 ; [.19A9.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER F
-1E1F ; [.19A9.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER F WITH DOT ABOVE
-1E1E ; [.19A9.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER F WITH DOT ABOVE
-A77C ; [.19A9.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR F
-A77B ; [.19A9.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR F
-213B ; [.19A9.0020.000A][.190C.0020.000A][.1BC1.0020.000A] # FACSIMILE SIGN
-FB00 ; [.19A9.0020.0004][.19A9.0020.0004] # LATIN SMALL LIGATURE FF
-FB03 ; [.19A9.0020.0004][.19A9.0020.0004][.19F6.0020.0004] # LATIN SMALL LIGATURE FFI
-FB04 ; [.19A9.0020.0004][.19A9.0020.0004][.1A3B.0020.0004] # LATIN SMALL LIGATURE FFL
-FB01 ; [.19A9.0020.0004][.19F6.0020.0004] # LATIN SMALL LIGATURE FI
-FB02 ; [.19A9.0020.0004][.1A3B.0020.0004] # LATIN SMALL LIGATURE FL
-3399 ; [.19A9.0020.001C][.1A6E.0020.001C] # SQUARE FM
-02A9 ; [.19A9.0020.0004][.1A9C.0020.0004] # LATIN SMALL LETTER FENG DIGRAPH
-1F193 ; [.19A9.0020.001D][.1AF5.0020.001D][.196E.0020.001D][.196E.0020.001D] # SQUARED FREE
-A730 ; [.19AD.0020.0002] # LATIN LETTER SMALL CAPITAL F
-AB35 ; [.19AE.0020.0002] # LATIN SMALL LETTER LENIS F
-A799 ; [.19AF.0020.0002] # LATIN SMALL LETTER F WITH STROKE
-A798 ; [.19AF.0020.0008] # LATIN CAPITAL LETTER F WITH STROKE
-1D6E ; [.19B0.0020.0002] # LATIN SMALL LETTER F WITH MIDDLE TILDE
-1D82 ; [.19B1.0020.0002] # LATIN SMALL LETTER F WITH PALATAL HOOK
-0192 ; [.19B2.0020.0002] # LATIN SMALL LETTER F WITH HOOK
-0191 ; [.19B2.0020.0008] # LATIN CAPITAL LETTER F WITH HOOK
-214E ; [.19B6.0020.0002] # TURNED SMALL F
-2132 ; [.19B6.0020.0008] # TURNED CAPITAL F
-A7FB ; [.19B7.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED F
-0067 ; [.19B8.0020.0002] # LATIN SMALL LETTER G
-FF47 ; [.19B8.0020.0003] # FULLWIDTH LATIN SMALL LETTER G
-1DDA ; [.19B8.0020.0004] # COMBINING LATIN SMALL LETTER G
-24A2 ; [*030A.0020.0004][.19B8.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER G
-210A ; [.19B8.0020.0005] # SCRIPT SMALL G
-1D420 ; [.19B8.0020.0005] # MATHEMATICAL BOLD SMALL G
-1D454 ; [.19B8.0020.0005] # MATHEMATICAL ITALIC SMALL G
-1D488 ; [.19B8.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL G
-1D4F0 ; [.19B8.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL G
-1D524 ; [.19B8.0020.0005] # MATHEMATICAL FRAKTUR SMALL G
-1D558 ; [.19B8.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL G
-1D58C ; [.19B8.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL G
-1D5C0 ; [.19B8.0020.0005] # MATHEMATICAL SANS-SERIF SMALL G
-1D5F4 ; [.19B8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL G
-1D628 ; [.19B8.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL G
-1D65C ; [.19B8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
-1D690 ; [.19B8.0020.0005] # MATHEMATICAL MONOSPACE SMALL G
-24D6 ; [.19B8.0020.0006] # CIRCLED LATIN SMALL LETTER G
-0047 ; [.19B8.0020.0008] # LATIN CAPITAL LETTER G
-FF27 ; [.19B8.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER G
-1F116 ; [*030A.0020.0004][.19B8.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER G
-1D406 ; [.19B8.0020.000B] # MATHEMATICAL BOLD CAPITAL G
-1D43A ; [.19B8.0020.000B] # MATHEMATICAL ITALIC CAPITAL G
-1D46E ; [.19B8.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL G
-1D4A2 ; [.19B8.0020.000B] # MATHEMATICAL SCRIPT CAPITAL G
-1D4D6 ; [.19B8.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL G
-1D50A ; [.19B8.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL G
-1D53E ; [.19B8.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D572 ; [.19B8.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL G
-1D5A6 ; [.19B8.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL G
-1D5DA ; [.19B8.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL G
-1D60E ; [.19B8.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
-1D642 ; [.19B8.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
-1D676 ; [.19B8.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL G
-24BC ; [.19B8.0020.000C] # CIRCLED LATIN CAPITAL LETTER G
-1F156 ; [.19B8.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER G
-1D4D ; [.19B8.0020.0014] # MODIFIER LETTER SMALL G
-1D33 ; [.19B8.0020.001D] # MODIFIER LETTER CAPITAL G
-1F136 ; [.19B8.0020.001D] # SQUARED LATIN CAPITAL LETTER G
-1F176 ; [.19B8.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER G
-01F5 ; [.19B8.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER G WITH ACUTE
-01F4 ; [.19B8.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER G WITH ACUTE
-011F ; [.19B8.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER G WITH BREVE
-011E ; [.19B8.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER G WITH BREVE
-011D ; [.19B8.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
-011C ; [.19B8.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-01E7 ; [.19B8.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER G WITH CARON
-01E6 ; [.19B8.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER G WITH CARON
-0121 ; [.19B8.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
-0120 ; [.19B8.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER G WITH DOT ABOVE
-0123 ; [.19B8.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER G WITH CEDILLA
-0122 ; [.19B8.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER G WITH CEDILLA
-1E21 ; [.19B8.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER G WITH MACRON
-1E20 ; [.19B8.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER G WITH MACRON
-A7A1 ; [.19B8.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER G WITH OBLIQUE STROKE
-A7A0 ; [.19B8.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
-1D79 ; [.19B8.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR G
-A77D ; [.19B8.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR G
-33FF ; [.19B8.0020.001C][.190C.0020.001C][.1A3B.0020.001C] # SQUARE GAL
-3387 ; [.19B8.0020.001D][.1925.0020.001D] # SQUARE GB
-3393 ; [.19B8.0020.001D][.19DC.0020.001D][.1BE3.0020.001C] # SQUARE GHZ
-33AC ; [.19B8.0020.001D][.1ACE.0020.001D][.190C.0020.001C] # SQUARE GPA
-33C9 ; [.19B8.0020.001D][.1BCD.0020.001C] # SQUARE GY
-0261 ; [.19BC.0020.0002] # LATIN SMALL LETTER SCRIPT G
-A7AC ; [.19BC.0020.0008] # LATIN CAPITAL LETTER SCRIPT G
-1DA2 ; [.19BC.0020.0014] # MODIFIER LETTER SMALL SCRIPT G
-AB36 ; [.19C0.0020.0002] # LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL
-0262 ; [.19C1.0020.0002] # LATIN LETTER SMALL CAPITAL G
-1DDB ; [.19C1.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL G
-01E5 ; [.19C5.0020.0002] # LATIN SMALL LETTER G WITH STROKE
-01E4 ; [.19C5.0020.0008] # LATIN CAPITAL LETTER G WITH STROKE
-1D83 ; [.19C9.0020.0002] # LATIN SMALL LETTER G WITH PALATAL HOOK
-0260 ; [.19CA.0020.0002] # LATIN SMALL LETTER G WITH HOOK
-0193 ; [.19CA.0020.0008] # LATIN CAPITAL LETTER G WITH HOOK
-029B ; [.19CE.0020.0002] # LATIN LETTER SMALL CAPITAL G WITH HOOK
-1D77 ; [.19D2.0020.0002] # LATIN SMALL LETTER TURNED G
-A77F ; [.19D3.0020.0002] # LATIN SMALL LETTER TURNED INSULAR G
-A77E ; [.19D3.0020.0008] # LATIN CAPITAL LETTER TURNED INSULAR G
-0263 ; [.19D4.0020.0002] # LATIN SMALL LETTER GAMMA
-0194 ; [.19D4.0020.0008] # LATIN CAPITAL LETTER GAMMA
-02E0 ; [.19D4.0020.0014] # MODIFIER LETTER SMALL GAMMA
-01A3 ; [.19D8.0020.0002] # LATIN SMALL LETTER OI
-01A2 ; [.19D8.0020.0008] # LATIN CAPITAL LETTER OI
-0068 ; [.19DC.0020.0002] # LATIN SMALL LETTER H
-FF48 ; [.19DC.0020.0003] # FULLWIDTH LATIN SMALL LETTER H
-036A ; [.19DC.0020.0004] # COMBINING LATIN SMALL LETTER H
-24A3 ; [*030A.0020.0004][.19DC.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER H
-210E ; [.19DC.0020.0005] # PLANCK CONSTANT
-1D421 ; [.19DC.0020.0005] # MATHEMATICAL BOLD SMALL H
-1D489 ; [.19DC.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL H
-1D4BD ; [.19DC.0020.0005] # MATHEMATICAL SCRIPT SMALL H
-1D4F1 ; [.19DC.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL H
-1D525 ; [.19DC.0020.0005] # MATHEMATICAL FRAKTUR SMALL H
-1D559 ; [.19DC.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL H
-1D58D ; [.19DC.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL H
-1D5C1 ; [.19DC.0020.0005] # MATHEMATICAL SANS-SERIF SMALL H
-1D5F5 ; [.19DC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL H
-1D629 ; [.19DC.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL H
-1D65D ; [.19DC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
-1D691 ; [.19DC.0020.0005] # MATHEMATICAL MONOSPACE SMALL H
-24D7 ; [.19DC.0020.0006] # CIRCLED LATIN SMALL LETTER H
-0048 ; [.19DC.0020.0008] # LATIN CAPITAL LETTER H
-FF28 ; [.19DC.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER H
-1F117 ; [*030A.0020.0004][.19DC.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER H
-210B ; [.19DC.0020.000B] # SCRIPT CAPITAL H
-210C ; [.19DC.0020.000B] # BLACK-LETTER CAPITAL H
-210D ; [.19DC.0020.000B] # DOUBLE-STRUCK CAPITAL H
-1D407 ; [.19DC.0020.000B] # MATHEMATICAL BOLD CAPITAL H
-1D43B ; [.19DC.0020.000B] # MATHEMATICAL ITALIC CAPITAL H
-1D46F ; [.19DC.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL H
-1D4D7 ; [.19DC.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL H
-1D573 ; [.19DC.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL H
-1D5A7 ; [.19DC.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL H
-1D5DB ; [.19DC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL H
-1D60F ; [.19DC.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
-1D643 ; [.19DC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
-1D677 ; [.19DC.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL H
-24BD ; [.19DC.0020.000C] # CIRCLED LATIN CAPITAL LETTER H
-1F157 ; [.19DC.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER H
-02B0 ; [.19DC.0020.0014] # MODIFIER LETTER SMALL H
-2095 ; [.19DC.0020.0015] # LATIN SUBSCRIPT SMALL LETTER H
-1D34 ; [.19DC.0020.001D] # MODIFIER LETTER CAPITAL H
-1F137 ; [.19DC.0020.001D] # SQUARED LATIN CAPITAL LETTER H
-1F177 ; [.19DC.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER H
-0125 ; [.19DC.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
-0124 ; [.19DC.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-021F ; [.19DC.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER H WITH CARON
-021E ; [.19DC.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER H WITH CARON
-1E27 ; [.19DC.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER H WITH DIAERESIS
-1E26 ; [.19DC.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER H WITH DIAERESIS
-1E23 ; [.19DC.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER H WITH DOT ABOVE
-1E22 ; [.19DC.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER H WITH DOT ABOVE
-1E29 ; [.19DC.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER H WITH CEDILLA
-1E28 ; [.19DC.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER H WITH CEDILLA
-0127 ; [.19DC.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER H WITH STROKE
-210F ; [.19DC.0020.0002][.0000.0039.0002] # PLANCK CONSTANT OVER TWO PI
-0126 ; [.19DC.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER H WITH STROKE
-A7F8 ; [.19DC.0020.0014][.0000.0039.0014] # MODIFIER LETTER CAPITAL H WITH STROKE
-1E25 ; [.19DC.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER H WITH DOT BELOW
-1E24 ; [.19DC.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER H WITH DOT BELOW
-1E2B ; [.19DC.0020.0002][.0000.0047.0002] # LATIN SMALL LETTER H WITH BREVE BELOW
-1E2A ; [.19DC.0020.0008][.0000.0047.0002] # LATIN CAPITAL LETTER H WITH BREVE BELOW
-1E96 ; [.19DC.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER H WITH LINE BELOW
-33CA ; [.19DC.0020.001C][.190C.0020.001C] # SQUARE HA
-32CC ; [.19DC.0020.001D][.19B8.0020.001C] # SQUARE HG
-33CB ; [.19DC.0020.001D][.1ACE.0020.001D] # SQUARE HP
-3371 ; [.19DC.0020.001C][.1ACE.0020.001D][.190C.0020.001C] # SQUARE HPA
-1F14A ; [.19DC.0020.001D][.1BA5.0020.001D] # SQUARED HV
-3390 ; [.19DC.0020.001D][.1BE3.0020.001C] # SQUARE HZ
-029C ; [.19E0.0020.0002] # LATIN LETTER SMALL CAPITAL H
-0195 ; [.19E4.0020.0002] # LATIN SMALL LETTER HV
-01F6 ; [.19E4.0020.0008] # LATIN CAPITAL LETTER HWAIR
-A795 ; [.19E8.0020.0002] # LATIN SMALL LETTER H WITH PALATAL HOOK
-0266 ; [.19E9.0020.0002] # LATIN SMALL LETTER H WITH HOOK
-A7AA ; [.19E9.0020.0008] # LATIN CAPITAL LETTER H WITH HOOK
-02B1 ; [.19E9.0020.0014] # MODIFIER LETTER SMALL H WITH HOOK
-2C68 ; [.19ED.0020.0002] # LATIN SMALL LETTER H WITH DESCENDER
-2C67 ; [.19ED.0020.0008] # LATIN CAPITAL LETTER H WITH DESCENDER
-2C76 ; [.19EE.0020.0002] # LATIN SMALL LETTER HALF H
-2C75 ; [.19EE.0020.0008] # LATIN CAPITAL LETTER HALF H
-A727 ; [.19EF.0020.0002] # LATIN SMALL LETTER HENG
-A726 ; [.19EF.0020.0008] # LATIN CAPITAL LETTER HENG
-AB5C ; [.19EF.0020.0014] # MODIFIER LETTER SMALL HENG
-0267 ; [.19F0.0020.0002] # LATIN SMALL LETTER HENG WITH HOOK
-02BB ; [.19F4.0020.0002] # MODIFIER LETTER TURNED COMMA
-02BD ; [.19F5.0020.0002] # MODIFIER LETTER REVERSED COMMA
-0069 ; [.19F6.0020.0002] # LATIN SMALL LETTER I
-FF49 ; [.19F6.0020.0003] # FULLWIDTH LATIN SMALL LETTER I
-0365 ; [.19F6.0020.0004] # COMBINING LATIN SMALL LETTER I
-2170 ; [.19F6.0020.0004] # SMALL ROMAN NUMERAL ONE
-24A4 ; [*030A.0020.0004][.19F6.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER I
-2139 ; [.19F6.0020.0005] # INFORMATION SOURCE
-2148 ; [.19F6.0020.0005] # DOUBLE-STRUCK ITALIC SMALL I
-1D422 ; [.19F6.0020.0005] # MATHEMATICAL BOLD SMALL I
-1D456 ; [.19F6.0020.0005] # MATHEMATICAL ITALIC SMALL I
-1D48A ; [.19F6.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL I
-1D4BE ; [.19F6.0020.0005] # MATHEMATICAL SCRIPT SMALL I
-1D4F2 ; [.19F6.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL I
-1D526 ; [.19F6.0020.0005] # MATHEMATICAL FRAKTUR SMALL I
-1D55A ; [.19F6.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL I
-1D58E ; [.19F6.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL I
-1D5C2 ; [.19F6.0020.0005] # MATHEMATICAL SANS-SERIF SMALL I
-1D5F6 ; [.19F6.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL I
-1D62A ; [.19F6.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL I
-1D65E ; [.19F6.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
-1D692 ; [.19F6.0020.0005] # MATHEMATICAL MONOSPACE SMALL I
-24D8 ; [.19F6.0020.0006] # CIRCLED LATIN SMALL LETTER I
-0049 ; [.19F6.0020.0008] # LATIN CAPITAL LETTER I
-FF29 ; [.19F6.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER I
-2160 ; [.19F6.0020.000A] # ROMAN NUMERAL ONE
-1F118 ; [*030A.0020.0004][.19F6.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER I
-2110 ; [.19F6.0020.000B] # SCRIPT CAPITAL I
-2111 ; [.19F6.0020.000B] # BLACK-LETTER CAPITAL I
-1D408 ; [.19F6.0020.000B] # MATHEMATICAL BOLD CAPITAL I
-1D43C ; [.19F6.0020.000B] # MATHEMATICAL ITALIC CAPITAL I
-1D470 ; [.19F6.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL I
-1D4D8 ; [.19F6.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL I
-1D540 ; [.19F6.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL I
-1D574 ; [.19F6.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL I
-1D5A8 ; [.19F6.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL I
-1D5DC ; [.19F6.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL I
-1D610 ; [.19F6.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
-1D644 ; [.19F6.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
-1D678 ; [.19F6.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL I
-24BE ; [.19F6.0020.000C] # CIRCLED LATIN CAPITAL LETTER I
-1F158 ; [.19F6.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER I
-2071 ; [.19F6.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER I
-1D62 ; [.19F6.0020.0015] # LATIN SUBSCRIPT SMALL LETTER I
-1D35 ; [.19F6.0020.001D] # MODIFIER LETTER CAPITAL I
-1F138 ; [.19F6.0020.001D] # SQUARED LATIN CAPITAL LETTER I
-1F178 ; [.19F6.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER I
-00ED ; [.19F6.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH ACUTE
-00CD ; [.19F6.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
-00EC ; [.19F6.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER I WITH GRAVE
-00CC ; [.19F6.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
-012D ; [.19F6.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER I WITH BREVE
-012C ; [.19F6.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
-00EE ; [.19F6.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
-00CE ; [.19F6.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-01D0 ; [.19F6.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER I WITH CARON
-01CF ; [.19F6.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER I WITH CARON
-00EF ; [.19F6.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER I WITH DIAERESIS
-00CF ; [.19F6.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
-1E2F ; [.19F6.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-1E2E ; [.19F6.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-0129 ; [.19F6.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER I WITH TILDE
-0128 ; [.19F6.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER I WITH TILDE
-0130 ; [.19F6.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER I WITH DOT ABOVE
-012F ; [.19F6.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER I WITH OGONEK
-012E ; [.19F6.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
-012B ; [.19F6.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
-012A ; [.19F6.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
-1EC9 ; [.19F6.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER I WITH HOOK ABOVE
-1EC8 ; [.19F6.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
-0209 ; [.19F6.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER I WITH DOUBLE GRAVE
-0208 ; [.19F6.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-020B ; [.19F6.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER I WITH INVERTED BREVE
-020A ; [.19F6.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER I WITH INVERTED BREVE
-1ECB ; [.19F6.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER I WITH DOT BELOW
-1ECA ; [.19F6.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER I WITH DOT BELOW
-1E2D ; [.19F6.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER I WITH TILDE BELOW
-1E2C ; [.19F6.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER I WITH TILDE BELOW
-1F18B ; [.19F6.0020.001D][.193E.0020.001D] # NEGATIVE SQUARED IC
-1F194 ; [.19F6.0020.001D][.1953.0020.001D] # SQUARED ID
-2171 ; [.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL TWO
-2161 ; [.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL TWO
-2172 ; [.19F6.0020.0004][.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL THREE
-2162 ; [.19F6.0020.000A][.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL THREE
-0133 ; [.19F6.0020.0004][.1A10.0020.0004] # LATIN SMALL LIGATURE IJ
-0132 ; [.19F6.0020.000A][.1A10.0020.000A] # LATIN CAPITAL LIGATURE IJ
-33CC ; [.19F6.0020.001C][.1A7D.0020.001C] # SQUARE IN
-337A ; [.19F6.0020.001D][.1B77.0020.001D] # SQUARE IU
-2173 ; [.19F6.0020.0004][.1BA5.0020.0004] # SMALL ROMAN NUMERAL FOUR
-2163 ; [.19F6.0020.000A][.1BA5.0020.000A] # ROMAN NUMERAL FOUR
-2178 ; [.19F6.0020.0004][.1BC1.0020.0004] # SMALL ROMAN NUMERAL NINE
-2168 ; [.19F6.0020.000A][.1BC1.0020.000A] # ROMAN NUMERAL NINE
-0131 ; [.19FA.0020.0002] # LATIN SMALL LETTER DOTLESS I
-1D6A4 ; [.19FA.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS I
-026A ; [.19FE.0020.0002] # LATIN LETTER SMALL CAPITAL I
-1DA6 ; [.19FE.0020.0014] # MODIFIER LETTER SMALL CAPITAL I
-A7FE ; [.1A02.0020.0002] # LATIN EPIGRAPHIC LETTER I LONGA
-A7F7 ; [.1A03.0020.0002] # LATIN EPIGRAPHIC LETTER SIDEWAYS I
-1D09 ; [.1A04.0020.0002] # LATIN SMALL LETTER TURNED I
-1D4E ; [.1A04.0020.0014] # MODIFIER LETTER SMALL TURNED I
-0268 ; [.1A05.0020.0002] # LATIN SMALL LETTER I WITH STROKE
-0197 ; [.1A05.0020.0008] # LATIN CAPITAL LETTER I WITH STROKE
-1DA4 ; [.1A05.0020.0014] # MODIFIER LETTER SMALL I WITH STROKE
-1D7B ; [.1A09.0020.0002] # LATIN SMALL CAPITAL LETTER I WITH STROKE
-1DA7 ; [.1A09.0020.0014] # MODIFIER LETTER SMALL CAPITAL I WITH STROKE
-1D96 ; [.1A0A.0020.0002] # LATIN SMALL LETTER I WITH RETROFLEX HOOK
-0269 ; [.1A0B.0020.0002] # LATIN SMALL LETTER IOTA
-0196 ; [.1A0B.0020.0008] # LATIN CAPITAL LETTER IOTA
-1DA5 ; [.1A0B.0020.0014] # MODIFIER LETTER SMALL IOTA
-1D7C ; [.1A0F.0020.0002] # LATIN SMALL LETTER IOTA WITH STROKE
-006A ; [.1A10.0020.0002] # LATIN SMALL LETTER J
-FF4A ; [.1A10.0020.0003] # FULLWIDTH LATIN SMALL LETTER J
-24A5 ; [*030A.0020.0004][.1A10.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER J
-2149 ; [.1A10.0020.0005] # DOUBLE-STRUCK ITALIC SMALL J
-1D423 ; [.1A10.0020.0005] # MATHEMATICAL BOLD SMALL J
-1D457 ; [.1A10.0020.0005] # MATHEMATICAL ITALIC SMALL J
-1D48B ; [.1A10.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL J
-1D4BF ; [.1A10.0020.0005] # MATHEMATICAL SCRIPT SMALL J
-1D4F3 ; [.1A10.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL J
-1D527 ; [.1A10.0020.0005] # MATHEMATICAL FRAKTUR SMALL J
-1D55B ; [.1A10.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL J
-1D58F ; [.1A10.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL J
-1D5C3 ; [.1A10.0020.0005] # MATHEMATICAL SANS-SERIF SMALL J
-1D5F7 ; [.1A10.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL J
-1D62B ; [.1A10.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL J
-1D65F ; [.1A10.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
-1D693 ; [.1A10.0020.0005] # MATHEMATICAL MONOSPACE SMALL J
-24D9 ; [.1A10.0020.0006] # CIRCLED LATIN SMALL LETTER J
-004A ; [.1A10.0020.0008] # LATIN CAPITAL LETTER J
-FF2A ; [.1A10.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER J
-1F119 ; [*030A.0020.0004][.1A10.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER J
-1D409 ; [.1A10.0020.000B] # MATHEMATICAL BOLD CAPITAL J
-1D43D ; [.1A10.0020.000B] # MATHEMATICAL ITALIC CAPITAL J
-1D471 ; [.1A10.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL J
-1D4A5 ; [.1A10.0020.000B] # MATHEMATICAL SCRIPT CAPITAL J
-1D4D9 ; [.1A10.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL J
-1D50D ; [.1A10.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL J
-1D541 ; [.1A10.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL J
-1D575 ; [.1A10.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL J
-1D5A9 ; [.1A10.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL J
-1D5DD ; [.1A10.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL J
-1D611 ; [.1A10.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
-1D645 ; [.1A10.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
-1D679 ; [.1A10.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL J
-24BF ; [.1A10.0020.000C] # CIRCLED LATIN CAPITAL LETTER J
-1F159 ; [.1A10.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER J
-02B2 ; [.1A10.0020.0014] # MODIFIER LETTER SMALL J
-2C7C ; [.1A10.0020.0015] # LATIN SUBSCRIPT SMALL LETTER J
-1D36 ; [.1A10.0020.001D] # MODIFIER LETTER CAPITAL J
-1F139 ; [.1A10.0020.001D] # SQUARED LATIN CAPITAL LETTER J
-1F179 ; [.1A10.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER J
-0135 ; [.1A10.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
-0134 ; [.1A10.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-01F0 ; [.1A10.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER J WITH CARON
-0237 ; [.1A14.0020.0002] # LATIN SMALL LETTER DOTLESS J
-1D6A5 ; [.1A14.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS J
-1D0A ; [.1A18.0020.0002] # LATIN LETTER SMALL CAPITAL J
-0249 ; [.1A19.0020.0002] # LATIN SMALL LETTER J WITH STROKE
-0248 ; [.1A19.0020.0008] # LATIN CAPITAL LETTER J WITH STROKE
-029D ; [.1A1D.0020.0002] # LATIN SMALL LETTER J WITH CROSSED-TAIL
-1DA8 ; [.1A1D.0020.0014] # MODIFIER LETTER SMALL J WITH CROSSED-TAIL
-025F ; [.1A21.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE
-1DA1 ; [.1A21.0020.0014] # MODIFIER LETTER SMALL DOTLESS J WITH STROKE
-0284 ; [.1A25.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-006B ; [.1A29.0020.0002] # LATIN SMALL LETTER K
-FF4B ; [.1A29.0020.0003] # FULLWIDTH LATIN SMALL LETTER K
-1DDC ; [.1A29.0020.0004] # COMBINING LATIN SMALL LETTER K
-24A6 ; [*030A.0020.0004][.1A29.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER K
-1D424 ; [.1A29.0020.0005] # MATHEMATICAL BOLD SMALL K
-1D458 ; [.1A29.0020.0005] # MATHEMATICAL ITALIC SMALL K
-1D48C ; [.1A29.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL K
-1D4C0 ; [.1A29.0020.0005] # MATHEMATICAL SCRIPT SMALL K
-1D4F4 ; [.1A29.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL K
-1D528 ; [.1A29.0020.0005] # MATHEMATICAL FRAKTUR SMALL K
-1D55C ; [.1A29.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL K
-1D590 ; [.1A29.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL K
-1D5C4 ; [.1A29.0020.0005] # MATHEMATICAL SANS-SERIF SMALL K
-1D5F8 ; [.1A29.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL K
-1D62C ; [.1A29.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL K
-1D660 ; [.1A29.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
-1D694 ; [.1A29.0020.0005] # MATHEMATICAL MONOSPACE SMALL K
-24DA ; [.1A29.0020.0006] # CIRCLED LATIN SMALL LETTER K
-004B ; [.1A29.0020.0008] # LATIN CAPITAL LETTER K
-212A ; [.1A29.0020.0008] # KELVIN SIGN
-FF2B ; [.1A29.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER K
-1F11A ; [*030A.0020.0004][.1A29.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER K
-1D40A ; [.1A29.0020.000B] # MATHEMATICAL BOLD CAPITAL K
-1D43E ; [.1A29.0020.000B] # MATHEMATICAL ITALIC CAPITAL K
-1D472 ; [.1A29.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL K
-1D4A6 ; [.1A29.0020.000B] # MATHEMATICAL SCRIPT CAPITAL K
-1D4DA ; [.1A29.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL K
-1D50E ; [.1A29.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL K
-1D542 ; [.1A29.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL K
-1D576 ; [.1A29.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL K
-1D5AA ; [.1A29.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL K
-1D5DE ; [.1A29.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL K
-1D612 ; [.1A29.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
-1D646 ; [.1A29.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
-1D67A ; [.1A29.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL K
-24C0 ; [.1A29.0020.000C] # CIRCLED LATIN CAPITAL LETTER K
-1F15A ; [.1A29.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER K
-1D4F ; [.1A29.0020.0014] # MODIFIER LETTER SMALL K
-2096 ; [.1A29.0020.0015] # LATIN SUBSCRIPT SMALL LETTER K
-1D37 ; [.1A29.0020.001D] # MODIFIER LETTER CAPITAL K
-1F13A ; [.1A29.0020.001D] # SQUARED LATIN CAPITAL LETTER K
-1F17A ; [.1A29.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER K
-1E31 ; [.1A29.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER K WITH ACUTE
-1E30 ; [.1A29.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER K WITH ACUTE
-01E9 ; [.1A29.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER K WITH CARON
-01E8 ; [.1A29.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER K WITH CARON
-0137 ; [.1A29.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER K WITH CEDILLA
-0136 ; [.1A29.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER K WITH CEDILLA
-A7A3 ; [.1A29.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER K WITH OBLIQUE STROKE
-A7A2 ; [.1A29.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
-1E33 ; [.1A29.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER K WITH DOT BELOW
-1E32 ; [.1A29.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER K WITH DOT BELOW
-1E35 ; [.1A29.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER K WITH LINE BELOW
-1E34 ; [.1A29.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER K WITH LINE BELOW
-3384 ; [.1A29.0020.001C][.190C.0020.001D] # SQUARE KA
-3385 ; [.1A29.0020.001D][.1925.0020.001D] # SQUARE KB
-3389 ; [.1A29.0020.001C][.193E.0020.001C][.190C.0020.001C][.1A3B.0020.001C] # SQUARE KCAL
-338F ; [.1A29.0020.001C][.19B8.0020.001C] # SQUARE KG
-3391 ; [.1A29.0020.001C][.19DC.0020.001D][.1BE3.0020.001C] # SQUARE KHZ
-33CD ; [.1A29.0020.001D][.1A29.0020.001D] # SQUARE KK
-3398 ; [.1A29.0020.001C][.1A3B.0020.001C] # SQUARE KL
-339E ; [.1A29.0020.001C][.1A6E.0020.001C] # SQUARE KM
-33CE ; [.1A29.0020.001D][.1A6E.0020.001D] # SQUARE KM CAPITAL
-33A2 ; [.1A29.0020.001C][.1A6E.0020.001C][.1904.0020.001C] # SQUARE KM SQUARED
-33A6 ; [.1A29.0020.001C][.1A6E.0020.001C][.1905.0020.001C] # SQUARE KM CUBED
-33AA ; [.1A29.0020.001C][.1ACE.0020.001D][.190C.0020.001C] # SQUARE KPA
-33CF ; [.1A29.0020.001C][.1B57.0020.001C] # SQUARE KT
-33B8 ; [.1A29.0020.001C][.1BA5.0020.001D] # SQUARE KV
-33BE ; [.1A29.0020.001C][.1BB7.0020.001D] # SQUARE KW
-33C0 ; [.1A29.0020.001C][.1C9F.0020.001D] # SQUARE K OHM
-1D0B ; [.1A2D.0020.0002] # LATIN LETTER SMALL CAPITAL K
-1D84 ; [.1A2E.0020.0002] # LATIN SMALL LETTER K WITH PALATAL HOOK
-0199 ; [.1A2F.0020.0002] # LATIN SMALL LETTER K WITH HOOK
-0198 ; [.1A2F.0020.0008] # LATIN CAPITAL LETTER K WITH HOOK
-2C6A ; [.1A33.0020.0002] # LATIN SMALL LETTER K WITH DESCENDER
-2C69 ; [.1A33.0020.0008] # LATIN CAPITAL LETTER K WITH DESCENDER
-A741 ; [.1A34.0020.0002] # LATIN SMALL LETTER K WITH STROKE
-A740 ; [.1A34.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE
-A743 ; [.1A35.0020.0002] # LATIN SMALL LETTER K WITH DIAGONAL STROKE
-A742 ; [.1A35.0020.0008] # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
-A745 ; [.1A36.0020.0002] # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
-A744 ; [.1A36.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
-029E ; [.1A37.0020.0002] # LATIN SMALL LETTER TURNED K
-A7B0 ; [.1A37.0020.0008] # LATIN CAPITAL LETTER TURNED K
-006C ; [.1A3B.0020.0002] # LATIN SMALL LETTER L
-FF4C ; [.1A3B.0020.0003] # FULLWIDTH LATIN SMALL LETTER L
-1DDD ; [.1A3B.0020.0004] # COMBINING LATIN SMALL LETTER L
-217C ; [.1A3B.0020.0004] # SMALL ROMAN NUMERAL FIFTY
-24A7 ; [*030A.0020.0004][.1A3B.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER L
-2113 ; [.1A3B.0020.0005] # SCRIPT SMALL L
-1D425 ; [.1A3B.0020.0005] # MATHEMATICAL BOLD SMALL L
-1D459 ; [.1A3B.0020.0005] # MATHEMATICAL ITALIC SMALL L
-1D48D ; [.1A3B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL L
-1D4C1 ; [.1A3B.0020.0005] # MATHEMATICAL SCRIPT SMALL L
-1D4F5 ; [.1A3B.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL L
-1D529 ; [.1A3B.0020.0005] # MATHEMATICAL FRAKTUR SMALL L
-1D55D ; [.1A3B.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL L
-1D591 ; [.1A3B.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL L
-1D5C5 ; [.1A3B.0020.0005] # MATHEMATICAL SANS-SERIF SMALL L
-1D5F9 ; [.1A3B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL L
-1D62D ; [.1A3B.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL L
-1D661 ; [.1A3B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
-1D695 ; [.1A3B.0020.0005] # MATHEMATICAL MONOSPACE SMALL L
-24DB ; [.1A3B.0020.0006] # CIRCLED LATIN SMALL LETTER L
-004C ; [.1A3B.0020.0008] # LATIN CAPITAL LETTER L
-FF2C ; [.1A3B.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER L
-216C ; [.1A3B.0020.000A] # ROMAN NUMERAL FIFTY
-1F11B ; [*030A.0020.0004][.1A3B.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER L
-2112 ; [.1A3B.0020.000B] # SCRIPT CAPITAL L
-1D40B ; [.1A3B.0020.000B] # MATHEMATICAL BOLD CAPITAL L
-1D43F ; [.1A3B.0020.000B] # MATHEMATICAL ITALIC CAPITAL L
-1D473 ; [.1A3B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL L
-1D4DB ; [.1A3B.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL L
-1D50F ; [.1A3B.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL L
-1D543 ; [.1A3B.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL L
-1D577 ; [.1A3B.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL L
-1D5AB ; [.1A3B.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL L
-1D5DF ; [.1A3B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL L
-1D613 ; [.1A3B.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
-1D647 ; [.1A3B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
-1D67B ; [.1A3B.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL L
-24C1 ; [.1A3B.0020.000C] # CIRCLED LATIN CAPITAL LETTER L
-1F15B ; [.1A3B.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER L
-02E1 ; [.1A3B.0020.0014] # MODIFIER LETTER SMALL L
-2097 ; [.1A3B.0020.0015] # LATIN SUBSCRIPT SMALL LETTER L
-1D38 ; [.1A3B.0020.001D] # MODIFIER LETTER CAPITAL L
-1F13B ; [.1A3B.0020.001D] # SQUARED LATIN CAPITAL LETTER L
-1F17B ; [.1A3B.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER L
-013A ; [.1A3B.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER L WITH ACUTE
-0139 ; [.1A3B.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER L WITH ACUTE
-013E ; [.1A3B.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER L WITH CARON
-013D ; [.1A3B.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER L WITH CARON
-013C ; [.1A3B.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER L WITH CEDILLA
-013B ; [.1A3B.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER L WITH CEDILLA
-0142 ; [.1A3B.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER L WITH STROKE
-0141 ; [.1A3B.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER L WITH STROKE
-1E37 ; [.1A3B.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER L WITH DOT BELOW
-1E36 ; [.1A3B.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW
-1E39 ; [.1A3B.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-1E38 ; [.1A3B.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-1E3D ; [.1A3B.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-1E3C ; [.1A3B.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-1E3B ; [.1A3B.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER L WITH LINE BELOW
-1E3A ; [.1A3B.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER L WITH LINE BELOW
-0140 ; [.1A3B.0020.0002][.0000.0108.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-006C 00B7 ; [.1A3B.0020.0002][.0000.0108.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-006C 0387 ; [.1A3B.0020.0002][.0000.0108.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
-013F ; [.1A3B.0020.0008][.0000.0108.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-004C 00B7 ; [.1A3B.0020.0008][.0000.0108.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-004C 0387 ; [.1A3B.0020.0008][.0000.0108.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-01C9 ; [.1A3B.0020.0004][.1A10.0020.0004] # LATIN SMALL LETTER LJ
-01C8 ; [.1A3B.0020.000A][.1A10.0020.0004] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-01C7 ; [.1A3B.0020.000A][.1A10.0020.000A] # LATIN CAPITAL LETTER LJ
-1EFB ; [.1A3B.0020.0004][.1A3B.0020.0004] # LATIN SMALL LETTER MIDDLE-WELSH LL
-1EFA ; [.1A3B.0020.000A][.1A3B.0020.000A] # LATIN CAPITAL LETTER MIDDLE-WELSH LL
-33D0 ; [.1A3B.0020.001C][.1A6E.0020.001C] # SQUARE LM
-33D1 ; [.1A3B.0020.001C][.1A7D.0020.001C] # SQUARE LN
-33D2 ; [.1A3B.0020.001C][.1AA1.0020.001C][.19B8.0020.001C] # SQUARE LOG
-02AA ; [.1A3B.0020.0004][.1B33.0020.0004] # LATIN SMALL LETTER LS DIGRAPH
-32CF ; [.1A3B.0020.001D][.1B57.0020.001D][.1953.0020.001D] # LIMITED LIABILITY SIGN
-33D3 ; [.1A3B.0020.001C][.1BC1.0020.001C] # SQUARE LX
-02AB ; [.1A3B.0020.0004][.1BE3.0020.0004] # LATIN SMALL LETTER LZ DIGRAPH
-029F ; [.1A3F.0020.0002] # LATIN LETTER SMALL CAPITAL L
-1DDE ; [.1A3F.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL L
-1DAB ; [.1A3F.0020.0014] # MODIFIER LETTER SMALL CAPITAL L
-A747 ; [.1A43.0020.0002] # LATIN SMALL LETTER BROKEN L
-A746 ; [.1A43.0020.0008] # LATIN CAPITAL LETTER BROKEN L
-1D0C ; [.1A44.0020.0002] # LATIN LETTER SMALL CAPITAL L WITH STROKE
-A749 ; [.1A45.0020.0002] # LATIN SMALL LETTER L WITH HIGH STROKE
-A748 ; [.1A45.0020.0008] # LATIN CAPITAL LETTER L WITH HIGH STROKE
-019A ; [.1A46.0020.0002] # LATIN SMALL LETTER L WITH BAR
-023D ; [.1A46.0020.0008] # LATIN CAPITAL LETTER L WITH BAR
-2C61 ; [.1A4A.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE BAR
-2C60 ; [.1A4A.0020.0008] # LATIN CAPITAL LETTER L WITH DOUBLE BAR
-026B ; [.1A4B.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE TILDE
-2C62 ; [.1A4B.0020.0008] # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
-AB5E ; [.1A4B.0020.0014] # MODIFIER LETTER SMALL L WITH MIDDLE TILDE
-AB38 ; [.1A4F.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
-1DEC ; [.1A4F.0020.0004] # COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
-AB39 ; [.1A50.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE RING
-026C ; [.1A51.0020.0002] # LATIN SMALL LETTER L WITH BELT
-A7AD ; [.1A51.0020.0008] # LATIN CAPITAL LETTER L WITH BELT
-AB37 ; [.1A55.0020.0002] # LATIN SMALL LETTER L WITH INVERTED LAZY S
-AB5D ; [.1A55.0020.0014] # MODIFIER LETTER SMALL L WITH INVERTED LAZY S
-1D85 ; [.1A56.0020.0002] # LATIN SMALL LETTER L WITH PALATAL HOOK
-1DAA ; [.1A56.0020.0014] # MODIFIER LETTER SMALL L WITH PALATAL HOOK
-026D ; [.1A57.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK
-1DA9 ; [.1A57.0020.0014] # MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
-A78E ; [.1A5B.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-0234 ; [.1A5C.0020.0002] # LATIN SMALL LETTER L WITH CURL
-A772 ; [.1A60.0020.0002] # LATIN SMALL LETTER LUM
-026E ; [.1A61.0020.0002] # LATIN SMALL LETTER LEZH
-A781 ; [.1A65.0020.0002] # LATIN SMALL LETTER TURNED L
-A780 ; [.1A65.0020.0008] # LATIN CAPITAL LETTER TURNED L
-019B ; [.1A66.0020.0002] # LATIN SMALL LETTER LAMBDA WITH STROKE
-028E ; [.1A6A.0020.0002] # LATIN SMALL LETTER TURNED Y
-006D ; [.1A6E.0020.0002] # LATIN SMALL LETTER M
-FF4D ; [.1A6E.0020.0003] # FULLWIDTH LATIN SMALL LETTER M
-036B ; [.1A6E.0020.0004] # COMBINING LATIN SMALL LETTER M
-217F ; [.1A6E.0020.0004] # SMALL ROMAN NUMERAL ONE THOUSAND
-24A8 ; [*030A.0020.0004][.1A6E.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER M
-1D426 ; [.1A6E.0020.0005] # MATHEMATICAL BOLD SMALL M
-1D45A ; [.1A6E.0020.0005] # MATHEMATICAL ITALIC SMALL M
-1D48E ; [.1A6E.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL M
-1D4C2 ; [.1A6E.0020.0005] # MATHEMATICAL SCRIPT SMALL M
-1D4F6 ; [.1A6E.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL M
-1D52A ; [.1A6E.0020.0005] # MATHEMATICAL FRAKTUR SMALL M
-1D55E ; [.1A6E.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL M
-1D592 ; [.1A6E.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL M
-1D5C6 ; [.1A6E.0020.0005] # MATHEMATICAL SANS-SERIF SMALL M
-1D5FA ; [.1A6E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL M
-1D62E ; [.1A6E.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL M
-1D662 ; [.1A6E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
-1D696 ; [.1A6E.0020.0005] # MATHEMATICAL MONOSPACE SMALL M
-24DC ; [.1A6E.0020.0006] # CIRCLED LATIN SMALL LETTER M
-004D ; [.1A6E.0020.0008] # LATIN CAPITAL LETTER M
-FF2D ; [.1A6E.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER M
-216F ; [.1A6E.0020.000A] # ROMAN NUMERAL ONE THOUSAND
-1F11C ; [*030A.0020.0004][.1A6E.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER M
-2133 ; [.1A6E.0020.000B] # SCRIPT CAPITAL M
-1D40C ; [.1A6E.0020.000B] # MATHEMATICAL BOLD CAPITAL M
-1D440 ; [.1A6E.0020.000B] # MATHEMATICAL ITALIC CAPITAL M
-1D474 ; [.1A6E.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL M
-1D4DC ; [.1A6E.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL M
-1D510 ; [.1A6E.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL M
-1D544 ; [.1A6E.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D578 ; [.1A6E.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL M
-1D5AC ; [.1A6E.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL M
-1D5E0 ; [.1A6E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL M
-1D614 ; [.1A6E.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
-1D648 ; [.1A6E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
-1D67C ; [.1A6E.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL M
-24C2 ; [.1A6E.0020.000C] # CIRCLED LATIN CAPITAL LETTER M
-1F15C ; [.1A6E.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER M
-1D50 ; [.1A6E.0020.0014] # MODIFIER LETTER SMALL M
-2098 ; [.1A6E.0020.0015] # LATIN SUBSCRIPT SMALL LETTER M
-1D39 ; [.1A6E.0020.001D] # MODIFIER LETTER CAPITAL M
-1F13C ; [.1A6E.0020.001D] # SQUARED LATIN CAPITAL LETTER M
-1F17C ; [.1A6E.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER M
-1E3F ; [.1A6E.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER M WITH ACUTE
-1E3E ; [.1A6E.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER M WITH ACUTE
-1E41 ; [.1A6E.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER M WITH DOT ABOVE
-1E40 ; [.1A6E.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER M WITH DOT ABOVE
-1E43 ; [.1A6E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER M WITH DOT BELOW
-1E42 ; [.1A6E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER M WITH DOT BELOW
-33A1 ; [.1A6E.0020.001C][.1904.0020.001C] # SQUARE M SQUARED
-33A5 ; [.1A6E.0020.001C][.1905.0020.001C] # SQUARE M CUBED
-3383 ; [.1A6E.0020.001C][.190C.0020.001D] # SQUARE MA
-33D4 ; [.1A6E.0020.001C][.1925.0020.001C] # SQUARE MB SMALL
-3386 ; [.1A6E.0020.001D][.1925.0020.001D] # SQUARE MB
-1F16A ; [.1A6E.0020.0014][.193E.0020.0014] # RAISED MC SIGN
-1F16B ; [.1A6E.0020.0014][.1953.0020.0014] # RAISED MD SIGN
-338E ; [.1A6E.0020.001C][.19B8.0020.001C] # SQUARE MG
-3392 ; [.1A6E.0020.001D][.19DC.0020.001D][.1BE3.0020.001C] # SQUARE MHZ
-33D5 ; [.1A6E.0020.001C][.19F6.0020.001C][.1A3B.0020.001C] # SQUARE MIL
-3396 ; [.1A6E.0020.001C][.1A3B.0020.001C] # SQUARE ML
-339C ; [.1A6E.0020.001C][.1A6E.0020.001C] # SQUARE MM
-339F ; [.1A6E.0020.001C][.1A6E.0020.001C][.1904.0020.001C] # SQUARE MM SQUARED
-33A3 ; [.1A6E.0020.001C][.1A6E.0020.001C][.1905.0020.001C] # SQUARE MM CUBED
-33D6 ; [.1A6E.0020.001C][.1AA1.0020.001C][.1A3B.0020.001C] # SQUARE MOL
-33AB ; [.1A6E.0020.001D][.1ACE.0020.001D][.190C.0020.001C] # SQUARE MPA
-33A7 ; [.1A6E.0020.001C][*05E5.0020.001C][.1B33.0020.001C] # SQUARE M OVER S
-33B3 ; [.1A6E.0020.001C][.1B33.0020.001C] # SQUARE MS
-33A8 ; [.1A6E.0020.001C][*05E5.0020.001C][.1B33.0020.001C][.1904.0020.001C] # SQUARE M OVER S SQUARED
-33B7 ; [.1A6E.0020.001C][.1BA5.0020.001D] # SQUARE MV
-33B9 ; [.1A6E.0020.001D][.1BA5.0020.001D] # SQUARE MV MEGA
-1F14B ; [.1A6E.0020.001D][.1BA5.0020.001D] # SQUARED MV
-33BD ; [.1A6E.0020.001C][.1BB7.0020.001D] # SQUARE MW
-33BF ; [.1A6E.0020.001D][.1BB7.0020.001D] # SQUARE MW MEGA
-33C1 ; [.1A6E.0020.001D][.1C9F.0020.001D] # SQUARE M OHM
-1D0D ; [.1A72.0020.0002] # LATIN LETTER SMALL CAPITAL M
-1DDF ; [.1A72.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL M
-1D6F ; [.1A73.0020.0002] # LATIN SMALL LETTER M WITH MIDDLE TILDE
-1D86 ; [.1A74.0020.0002] # LATIN SMALL LETTER M WITH PALATAL HOOK
-0271 ; [.1A75.0020.0002] # LATIN SMALL LETTER M WITH HOOK
-2C6E ; [.1A75.0020.0008] # LATIN CAPITAL LETTER M WITH HOOK
-1DAC ; [.1A75.0020.0014] # MODIFIER LETTER SMALL M WITH HOOK
-AB3A ; [.1A79.0020.0002] # LATIN SMALL LETTER M WITH CROSSED-TAIL
-A7FD ; [.1A7A.0020.0002] # LATIN EPIGRAPHIC LETTER INVERTED M
-A7FF ; [.1A7B.0020.0002] # LATIN EPIGRAPHIC LETTER ARCHAIC M
-A773 ; [.1A7C.0020.0002] # LATIN SMALL LETTER MUM
-006E ; [.1A7D.0020.0002] # LATIN SMALL LETTER N
-FF4E ; [.1A7D.0020.0003] # FULLWIDTH LATIN SMALL LETTER N
-1DE0 ; [.1A7D.0020.0004] # COMBINING LATIN SMALL LETTER N
-24A9 ; [*030A.0020.0004][.1A7D.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER N
-1D427 ; [.1A7D.0020.0005] # MATHEMATICAL BOLD SMALL N
-1D45B ; [.1A7D.0020.0005] # MATHEMATICAL ITALIC SMALL N
-1D48F ; [.1A7D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL N
-1D4C3 ; [.1A7D.0020.0005] # MATHEMATICAL SCRIPT SMALL N
-1D4F7 ; [.1A7D.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL N
-1D52B ; [.1A7D.0020.0005] # MATHEMATICAL FRAKTUR SMALL N
-1D55F ; [.1A7D.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL N
-1D593 ; [.1A7D.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL N
-1D5C7 ; [.1A7D.0020.0005] # MATHEMATICAL SANS-SERIF SMALL N
-1D5FB ; [.1A7D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL N
-1D62F ; [.1A7D.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL N
-1D663 ; [.1A7D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
-1D697 ; [.1A7D.0020.0005] # MATHEMATICAL MONOSPACE SMALL N
-24DD ; [.1A7D.0020.0006] # CIRCLED LATIN SMALL LETTER N
-004E ; [.1A7D.0020.0008] # LATIN CAPITAL LETTER N
-FF2E ; [.1A7D.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER N
-1F11D ; [*030A.0020.0004][.1A7D.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER N
-2115 ; [.1A7D.0020.000B] # DOUBLE-STRUCK CAPITAL N
-1D40D ; [.1A7D.0020.000B] # MATHEMATICAL BOLD CAPITAL N
-1D441 ; [.1A7D.0020.000B] # MATHEMATICAL ITALIC CAPITAL N
-1D475 ; [.1A7D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL N
-1D4A9 ; [.1A7D.0020.000B] # MATHEMATICAL SCRIPT CAPITAL N
-1D4DD ; [.1A7D.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL N
-1D511 ; [.1A7D.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL N
-1D579 ; [.1A7D.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL N
-1D5AD ; [.1A7D.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL N
-1D5E1 ; [.1A7D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL N
-1D615 ; [.1A7D.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
-1D649 ; [.1A7D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
-1D67D ; [.1A7D.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL N
-24C3 ; [.1A7D.0020.000C] # CIRCLED LATIN CAPITAL LETTER N
-1F15D ; [.1A7D.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER N
-207F ; [.1A7D.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER N
-2099 ; [.1A7D.0020.0015] # LATIN SUBSCRIPT SMALL LETTER N
-1D3A ; [.1A7D.0020.001D] # MODIFIER LETTER CAPITAL N
-1F13D ; [.1A7D.0020.001D] # SQUARED LATIN CAPITAL LETTER N
-1F17D ; [.1A7D.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER N
-0144 ; [.1A7D.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER N WITH ACUTE
-0143 ; [.1A7D.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER N WITH ACUTE
-01F9 ; [.1A7D.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER N WITH GRAVE
-01F8 ; [.1A7D.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER N WITH GRAVE
-0148 ; [.1A7D.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER N WITH CARON
-0147 ; [.1A7D.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER N WITH CARON
-00F1 ; [.1A7D.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER N WITH TILDE
-00D1 ; [.1A7D.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER N WITH TILDE
-1E45 ; [.1A7D.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
-1E44 ; [.1A7D.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER N WITH DOT ABOVE
-0146 ; [.1A7D.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER N WITH CEDILLA
-0145 ; [.1A7D.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER N WITH CEDILLA
-A7A5 ; [.1A7D.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER N WITH OBLIQUE STROKE
-A7A4 ; [.1A7D.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
-1E47 ; [.1A7D.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER N WITH DOT BELOW
-1E46 ; [.1A7D.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER N WITH DOT BELOW
-1E4B ; [.1A7D.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-1E4A ; [.1A7D.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-1E49 ; [.1A7D.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER N WITH LINE BELOW
-1E48 ; [.1A7D.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER N WITH LINE BELOW
-3381 ; [.1A7D.0020.001C][.190C.0020.001D] # SQUARE NA
-1F195 ; [.1A7D.0020.001D][.196E.0020.001D][.1BB7.0020.001D] # SQUARED NEW
-338B ; [.1A7D.0020.001C][.19A9.0020.001D] # SQUARE NF
-1F196 ; [.1A7D.0020.001D][.19B8.0020.001D] # SQUARED NG
-01CC ; [.1A7D.0020.0004][.1A10.0020.0004] # LATIN SMALL LETTER NJ
-01CB ; [.1A7D.0020.000A][.1A10.0020.0004] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-01CA ; [.1A7D.0020.000A][.1A10.0020.000A] # LATIN CAPITAL LETTER NJ
-339A ; [.1A7D.0020.001C][.1A6E.0020.001C] # SQUARE NM
-2116 ; [.1A7D.0020.000A][.1AA1.0020.0004] # NUMERO SIGN
-33B1 ; [.1A7D.0020.001C][.1B33.0020.001C] # SQUARE NS
-33B5 ; [.1A7D.0020.001C][.1BA5.0020.001D] # SQUARE NV
-33BB ; [.1A7D.0020.001C][.1BB7.0020.001D] # SQUARE NW
-0274 ; [.1A81.0020.0002] # LATIN LETTER SMALL CAPITAL N
-1DE1 ; [.1A81.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL N
-1DB0 ; [.1A81.0020.0014] # MODIFIER LETTER SMALL CAPITAL N
-1D3B ; [.1A85.0020.0002] # MODIFIER LETTER CAPITAL REVERSED N
-1D0E ; [.1A86.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED N
-1D70 ; [.1A87.0020.0002] # LATIN SMALL LETTER N WITH MIDDLE TILDE
-0272 ; [.1A88.0020.0002] # LATIN SMALL LETTER N WITH LEFT HOOK
-019D ; [.1A88.0020.0008] # LATIN CAPITAL LETTER N WITH LEFT HOOK
-1DAE ; [.1A88.0020.0014] # MODIFIER LETTER SMALL N WITH LEFT HOOK
-019E ; [.1A8C.0020.0002] # LATIN SMALL LETTER N WITH LONG RIGHT LEG
-0220 ; [.1A8C.0020.0008] # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-A791 ; [.1A90.0020.0002] # LATIN SMALL LETTER N WITH DESCENDER
-A790 ; [.1A90.0020.0008] # LATIN CAPITAL LETTER N WITH DESCENDER
-1D87 ; [.1A91.0020.0002] # LATIN SMALL LETTER N WITH PALATAL HOOK
-0273 ; [.1A92.0020.0002] # LATIN SMALL LETTER N WITH RETROFLEX HOOK
-1DAF ; [.1A92.0020.0014] # MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
-0235 ; [.1A96.0020.0002] # LATIN SMALL LETTER N WITH CURL
-AB3B ; [.1A9A.0020.0002] # LATIN SMALL LETTER N WITH CROSSED-TAIL
-A774 ; [.1A9B.0020.0002] # LATIN SMALL LETTER NUM
-014B ; [.1A9C.0020.0002] # LATIN SMALL LETTER ENG
-014A ; [.1A9C.0020.0008] # LATIN CAPITAL LETTER ENG
-1D51 ; [.1A9C.0020.0014] # MODIFIER LETTER SMALL ENG
-AB3C ; [.1AA0.0020.0002] # LATIN SMALL LETTER ENG WITH CROSSED-TAIL
-006F ; [.1AA1.0020.0002] # LATIN SMALL LETTER O
-FF4F ; [.1AA1.0020.0003] # FULLWIDTH LATIN SMALL LETTER O
-0366 ; [.1AA1.0020.0004] # COMBINING LATIN SMALL LETTER O
-24AA ; [*030A.0020.0004][.1AA1.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER O
-2134 ; [.1AA1.0020.0005] # SCRIPT SMALL O
-1D428 ; [.1AA1.0020.0005] # MATHEMATICAL BOLD SMALL O
-1D45C ; [.1AA1.0020.0005] # MATHEMATICAL ITALIC SMALL O
-1D490 ; [.1AA1.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL O
-1D4F8 ; [.1AA1.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL O
-1D52C ; [.1AA1.0020.0005] # MATHEMATICAL FRAKTUR SMALL O
-1D560 ; [.1AA1.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL O
-1D594 ; [.1AA1.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL O
-1D5C8 ; [.1AA1.0020.0005] # MATHEMATICAL SANS-SERIF SMALL O
-1D5FC ; [.1AA1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL O
-1D630 ; [.1AA1.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL O
-1D664 ; [.1AA1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
-1D698 ; [.1AA1.0020.0005] # MATHEMATICAL MONOSPACE SMALL O
-24DE ; [.1AA1.0020.0006] # CIRCLED LATIN SMALL LETTER O
-004F ; [.1AA1.0020.0008] # LATIN CAPITAL LETTER O
-FF2F ; [.1AA1.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER O
-1F11E ; [*030A.0020.0004][.1AA1.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER O
-1D40E ; [.1AA1.0020.000B] # MATHEMATICAL BOLD CAPITAL O
-1D442 ; [.1AA1.0020.000B] # MATHEMATICAL ITALIC CAPITAL O
-1D476 ; [.1AA1.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL O
-1D4AA ; [.1AA1.0020.000B] # MATHEMATICAL SCRIPT CAPITAL O
-1D4DE ; [.1AA1.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL O
-1D512 ; [.1AA1.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL O
-1D546 ; [.1AA1.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D57A ; [.1AA1.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL O
-1D5AE ; [.1AA1.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL O
-1D5E2 ; [.1AA1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL O
-1D616 ; [.1AA1.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
-1D64A ; [.1AA1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
-1D67E ; [.1AA1.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL O
-24C4 ; [.1AA1.0020.000C] # CIRCLED LATIN CAPITAL LETTER O
-1F15E ; [.1AA1.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER O
-00BA ; [.1AA1.0020.0014] # MASCULINE ORDINAL INDICATOR
-1D52 ; [.1AA1.0020.0014] # MODIFIER LETTER SMALL O
-2092 ; [.1AA1.0020.0015] # LATIN SUBSCRIPT SMALL LETTER O
-1D3C ; [.1AA1.0020.001D] # MODIFIER LETTER CAPITAL O
-1F13E ; [.1AA1.0020.001D] # SQUARED LATIN CAPITAL LETTER O
-1F17E ; [.1AA1.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER O
-00F3 ; [.1AA1.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH ACUTE
-00D3 ; [.1AA1.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH ACUTE
-00F2 ; [.1AA1.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH GRAVE
-00D2 ; [.1AA1.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH GRAVE
-014F ; [.1AA1.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER O WITH BREVE
-014E ; [.1AA1.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER O WITH BREVE
-00F4 ; [.1AA1.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
-00D4 ; [.1AA1.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-1ED1 ; [.1AA1.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED0 ; [.1AA1.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-1ED3 ; [.1AA1.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED2 ; [.1AA1.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-1ED7 ; [.1AA1.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED6 ; [.1AA1.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-1ED5 ; [.1AA1.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-1ED4 ; [.1AA1.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-01D2 ; [.1AA1.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER O WITH CARON
-01D1 ; [.1AA1.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER O WITH CARON
-00F6 ; [.1AA1.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH DIAERESIS
-1DF3 ; [.1AA1.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER O WITH DIAERESIS
-A79D ; [.1AA1.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK OE
-00D6 ; [.1AA1.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS
-A79C ; [.1AA1.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK OE
-022B ; [.1AA1.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-022A ; [.1AA1.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-0151 ; [.1AA1.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
-0150 ; [.1AA1.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-00F5 ; [.1AA1.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH TILDE
-00D5 ; [.1AA1.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH TILDE
-1E4D ; [.1AA1.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
-1E4C ; [.1AA1.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-1E4F ; [.1AA1.0020.0002][.0000.002D.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-1E4E ; [.1AA1.0020.0008][.0000.002D.0002][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-022D ; [.1AA1.0020.0002][.0000.002D.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
-022C ; [.1AA1.0020.0008][.0000.002D.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-022F ; [.1AA1.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER O WITH DOT ABOVE
-022E ; [.1AA1.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE
-0231 ; [.1AA1.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-0230 ; [.1AA1.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-00F8 ; [.1AA1.0020.0002][.0000.002F.0002] # LATIN SMALL LETTER O WITH STROKE
-00D8 ; [.1AA1.0020.0008][.0000.002F.0002] # LATIN CAPITAL LETTER O WITH STROKE
-01FF ; [.1AA1.0020.0002][.0000.002F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
-01FE ; [.1AA1.0020.0008][.0000.002F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-01EB ; [.1AA1.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER O WITH OGONEK
-01EA ; [.1AA1.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER O WITH OGONEK
-01ED ; [.1AA1.0020.0002][.0000.0031.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH OGONEK AND MACRON
-01EC ; [.1AA1.0020.0008][.0000.0031.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-014D ; [.1AA1.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
-014C ; [.1AA1.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
-1E53 ; [.1AA1.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH MACRON AND ACUTE
-1E52 ; [.1AA1.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-1E51 ; [.1AA1.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH MACRON AND GRAVE
-1E50 ; [.1AA1.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-1DED ; [.1AA1.0020.0004][.0000.0034.0004] # COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE
-1ECF ; [.1AA1.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HOOK ABOVE
-1ECE ; [.1AA1.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
-020D ; [.1AA1.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER O WITH DOUBLE GRAVE
-020C ; [.1AA1.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-020F ; [.1AA1.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER O WITH INVERTED BREVE
-020E ; [.1AA1.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER O WITH INVERTED BREVE
-01A1 ; [.1AA1.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN
-01A0 ; [.1AA1.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN
-1EDB ; [.1AA1.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH HORN AND ACUTE
-1EDA ; [.1AA1.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-1EDD ; [.1AA1.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
-1EDC ; [.1AA1.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-1EE1 ; [.1AA1.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
-1EE0 ; [.1AA1.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
-1EDF ; [.1AA1.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-1EDE ; [.1AA1.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-1EE3 ; [.1AA1.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-1EE2 ; [.1AA1.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-1ECD ; [.1AA1.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH DOT BELOW
-1ECC ; [.1AA1.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH DOT BELOW
-1ED9 ; [.1AA1.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-1ED8 ; [.1AA1.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-0153 ; [.1AA1.0020.0004][.0000.0108.0004][.196E.0020.0004] # LATIN SMALL LIGATURE OE
-0152 ; [.1AA1.0020.000A][.0000.0108.0004][.196E.0020.000A] # LATIN CAPITAL LIGATURE OE
-A7F9 ; [.1AA1.0020.0014][.0000.0108.0014][.196E.0020.0014] # MODIFIER LETTER SMALL LIGATURE OE
-1F197 ; [.1AA1.0020.001D][.1A29.0020.001D] # SQUARED OK
-A74F ; [.1AA1.0020.0004][.1AA1.0020.0004] # LATIN SMALL LETTER OO
-A74E ; [.1AA1.0020.000A][.1AA1.0020.000A] # LATIN CAPITAL LETTER OO
-3375 ; [.1AA1.0020.001C][.1BA5.0020.001D] # SQUARE OV
-1D0F ; [.1AA5.0020.0002] # LATIN LETTER SMALL CAPITAL O
-1D11 ; [.1AA6.0020.0002] # LATIN SMALL LETTER SIDEWAYS O
-AB3D ; [.1AA7.0020.0002] # LATIN SMALL LETTER BLACKLETTER O
-0276 ; [.1AA8.0020.0002] # LATIN LETTER SMALL CAPITAL OE
-1D14 ; [.1AAC.0020.0002] # LATIN SMALL LETTER TURNED OE
-AB41 ; [.1AAD.0020.0002] # LATIN SMALL LETTER TURNED OE WITH STROKE
-AB42 ; [.1AAE.0020.0002] # LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE
-AB40 ; [.1AAF.0020.0002] # LATIN SMALL LETTER INVERTED OE
-AB43 ; [.1AB0.0020.0002] # LATIN SMALL LETTER TURNED O OPEN-O
-AB44 ; [.1AB1.0020.0002] # LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE
-1D13 ; [.1AB2.0020.0002] # LATIN SMALL LETTER SIDEWAYS O WITH STROKE
-AB3E ; [.1AB3.0020.0002] # LATIN SMALL LETTER BLACKLETTER O WITH STROKE
-0254 ; [.1AB4.0020.0002] # LATIN SMALL LETTER OPEN O
-0186 ; [.1AB4.0020.0008] # LATIN CAPITAL LETTER OPEN O
-1D53 ; [.1AB4.0020.0014] # MODIFIER LETTER SMALL OPEN O
-1D10 ; [.1AB8.0020.0002] # LATIN LETTER SMALL CAPITAL OPEN O
-1D12 ; [.1AB9.0020.0002] # LATIN SMALL LETTER SIDEWAYS OPEN O
-AB3F ; [.1ABA.0020.0002] # LATIN SMALL LETTER OPEN O WITH STROKE
-1D97 ; [.1ABB.0020.0002] # LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
-A74D ; [.1ABC.0020.0002] # LATIN SMALL LETTER O WITH LOOP
-A74C ; [.1ABC.0020.0008] # LATIN CAPITAL LETTER O WITH LOOP
-1D16 ; [.1ABD.0020.0002] # LATIN SMALL LETTER TOP HALF O
-1D54 ; [.1ABD.0020.0014] # MODIFIER LETTER SMALL TOP HALF O
-1D17 ; [.1ABE.0020.0002] # LATIN SMALL LETTER BOTTOM HALF O
-1D55 ; [.1ABE.0020.0014] # MODIFIER LETTER SMALL BOTTOM HALF O
-2C7A ; [.1ABF.0020.0002] # LATIN SMALL LETTER O WITH LOW RING INSIDE
-0275 ; [.1AC0.0020.0002] # LATIN SMALL LETTER BARRED O
-019F ; [.1AC0.0020.0008] # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-1DB1 ; [.1AC0.0020.0014] # MODIFIER LETTER SMALL BARRED O
-A74B ; [.1AC4.0020.0002] # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
-A74A ; [.1AC4.0020.0008] # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
-0277 ; [.1AC5.0020.0002] # LATIN SMALL LETTER CLOSED OMEGA
-0223 ; [.1AC9.0020.0002] # LATIN SMALL LETTER OU
-0222 ; [.1AC9.0020.0008] # LATIN CAPITAL LETTER OU
-1D3D ; [.1AC9.0020.001D] # MODIFIER LETTER CAPITAL OU
-1D15 ; [.1ACD.0020.0002] # LATIN LETTER SMALL CAPITAL OU
-0070 ; [.1ACE.0020.0002] # LATIN SMALL LETTER P
-FF50 ; [.1ACE.0020.0003] # FULLWIDTH LATIN SMALL LETTER P
-1DEE ; [.1ACE.0020.0004] # COMBINING LATIN SMALL LETTER P
-24AB ; [*030A.0020.0004][.1ACE.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER P
-1D429 ; [.1ACE.0020.0005] # MATHEMATICAL BOLD SMALL P
-1D45D ; [.1ACE.0020.0005] # MATHEMATICAL ITALIC SMALL P
-1D491 ; [.1ACE.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL P
-1D4C5 ; [.1ACE.0020.0005] # MATHEMATICAL SCRIPT SMALL P
-1D4F9 ; [.1ACE.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL P
-1D52D ; [.1ACE.0020.0005] # MATHEMATICAL FRAKTUR SMALL P
-1D561 ; [.1ACE.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL P
-1D595 ; [.1ACE.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL P
-1D5C9 ; [.1ACE.0020.0005] # MATHEMATICAL SANS-SERIF SMALL P
-1D5FD ; [.1ACE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL P
-1D631 ; [.1ACE.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL P
-1D665 ; [.1ACE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
-1D699 ; [.1ACE.0020.0005] # MATHEMATICAL MONOSPACE SMALL P
-24DF ; [.1ACE.0020.0006] # CIRCLED LATIN SMALL LETTER P
-0050 ; [.1ACE.0020.0008] # LATIN CAPITAL LETTER P
-FF30 ; [.1ACE.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER P
-1F11F ; [*030A.0020.0004][.1ACE.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER P
-2119 ; [.1ACE.0020.000B] # DOUBLE-STRUCK CAPITAL P
-1D40F ; [.1ACE.0020.000B] # MATHEMATICAL BOLD CAPITAL P
-1D443 ; [.1ACE.0020.000B] # MATHEMATICAL ITALIC CAPITAL P
-1D477 ; [.1ACE.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL P
-1D4AB ; [.1ACE.0020.000B] # MATHEMATICAL SCRIPT CAPITAL P
-1D4DF ; [.1ACE.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL P
-1D513 ; [.1ACE.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL P
-1D57B ; [.1ACE.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL P
-1D5AF ; [.1ACE.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL P
-1D5E3 ; [.1ACE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL P
-1D617 ; [.1ACE.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
-1D64B ; [.1ACE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
-1D67F ; [.1ACE.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL P
-24C5 ; [.1ACE.0020.000C] # CIRCLED LATIN CAPITAL LETTER P
-1F15F ; [.1ACE.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER P
-1D56 ; [.1ACE.0020.0014] # MODIFIER LETTER SMALL P
-209A ; [.1ACE.0020.0015] # LATIN SUBSCRIPT SMALL LETTER P
-1D3E ; [.1ACE.0020.001D] # MODIFIER LETTER CAPITAL P
-1F13F ; [.1ACE.0020.001D] # SQUARED LATIN CAPITAL LETTER P
-1F17F ; [.1ACE.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1F18A ; [.1ACE.0020.001D] # CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
-1E55 ; [.1ACE.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER P WITH ACUTE
-1E54 ; [.1ACE.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER P WITH ACUTE
-1E57 ; [.1ACE.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER P WITH DOT ABOVE
-1E56 ; [.1ACE.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER P WITH DOT ABOVE
-3380 ; [.1ACE.0020.001C][.190C.0020.001D] # SQUARE PA AMPS
-33A9 ; [.1ACE.0020.001D][.190C.0020.001C] # SQUARE PA
-1F18C ; [.1ACE.0020.001D][.190C.0020.001D] # NEGATIVE SQUARED PA
-3376 ; [.1ACE.0020.001C][.193E.0020.001C] # SQUARE PC
-338A ; [.1ACE.0020.001C][.19A9.0020.001D] # SQUARE PF
-33D7 ; [.1ACE.0020.001D][.19DC.0020.001D] # SQUARE PH
-33D8 ; [.1ACE.0020.001C][*0274.0020.001C][.1A6E.0020.001C][*0274.0020.001C] # SQUARE PM
-33D9 ; [.1ACE.0020.001D][.1ACE.0020.001D][.1A6E.0020.001D] # SQUARE PPM
-1F14E ; [.1ACE.0020.001D][.1ACE.0020.001D][.1BA5.0020.001D] # SQUARED PPV
-33DA ; [.1ACE.0020.001D][.1AF5.0020.001D] # SQUARE PR
-33B0 ; [.1ACE.0020.001C][.1B33.0020.001C] # SQUARE PS
-3250 ; [.1ACE.0020.001D][.1B57.0020.001D][.196E.0020.001D] # PARTNERSHIP SIGN
-33B4 ; [.1ACE.0020.001C][.1BA5.0020.001D] # SQUARE PV
-33BA ; [.1ACE.0020.001C][.1BB7.0020.001D] # SQUARE PW
-1D18 ; [.1AD2.0020.0002] # LATIN LETTER SMALL CAPITAL P
-1D7D ; [.1AD3.0020.0002] # LATIN SMALL LETTER P WITH STROKE
-2C63 ; [.1AD3.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE
-A751 ; [.1AD4.0020.0002] # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
-A750 ; [.1AD4.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
-1D71 ; [.1AD5.0020.0002] # LATIN SMALL LETTER P WITH MIDDLE TILDE
-1D88 ; [.1AD6.0020.0002] # LATIN SMALL LETTER P WITH PALATAL HOOK
-01A5 ; [.1AD7.0020.0002] # LATIN SMALL LETTER P WITH HOOK
-01A4 ; [.1AD7.0020.0008] # LATIN CAPITAL LETTER P WITH HOOK
-A753 ; [.1ADB.0020.0002] # LATIN SMALL LETTER P WITH FLOURISH
-A752 ; [.1ADB.0020.0008] # LATIN CAPITAL LETTER P WITH FLOURISH
-A755 ; [.1ADC.0020.0002] # LATIN SMALL LETTER P WITH SQUIRREL TAIL
-A754 ; [.1ADC.0020.0008] # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
-A7FC ; [.1ADD.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED P
-0278 ; [.1ADE.0020.0002] # LATIN SMALL LETTER PHI
-1DB2 ; [.1ADE.0020.0014] # MODIFIER LETTER SMALL PHI
-2C77 ; [.1AE2.0020.0002] # LATIN SMALL LETTER TAILLESS PHI
-0071 ; [.1AE3.0020.0002] # LATIN SMALL LETTER Q
-FF51 ; [.1AE3.0020.0003] # FULLWIDTH LATIN SMALL LETTER Q
-24AC ; [*030A.0020.0004][.1AE3.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Q
-1D42A ; [.1AE3.0020.0005] # MATHEMATICAL BOLD SMALL Q
-1D45E ; [.1AE3.0020.0005] # MATHEMATICAL ITALIC SMALL Q
-1D492 ; [.1AE3.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Q
-1D4C6 ; [.1AE3.0020.0005] # MATHEMATICAL SCRIPT SMALL Q
-1D4FA ; [.1AE3.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Q
-1D52E ; [.1AE3.0020.0005] # MATHEMATICAL FRAKTUR SMALL Q
-1D562 ; [.1AE3.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Q
-1D596 ; [.1AE3.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Q
-1D5CA ; [.1AE3.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Q
-1D5FE ; [.1AE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Q
-1D632 ; [.1AE3.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Q
-1D666 ; [.1AE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
-1D69A ; [.1AE3.0020.0005] # MATHEMATICAL MONOSPACE SMALL Q
-24E0 ; [.1AE3.0020.0006] # CIRCLED LATIN SMALL LETTER Q
-0051 ; [.1AE3.0020.0008] # LATIN CAPITAL LETTER Q
-FF31 ; [.1AE3.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Q
-1F120 ; [*030A.0020.0004][.1AE3.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Q
-211A ; [.1AE3.0020.000B] # DOUBLE-STRUCK CAPITAL Q
-1D410 ; [.1AE3.0020.000B] # MATHEMATICAL BOLD CAPITAL Q
-1D444 ; [.1AE3.0020.000B] # MATHEMATICAL ITALIC CAPITAL Q
-1D478 ; [.1AE3.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Q
-1D4AC ; [.1AE3.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Q
-1D4E0 ; [.1AE3.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Q
-1D514 ; [.1AE3.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Q
-1D57C ; [.1AE3.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Q
-1D5B0 ; [.1AE3.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Q
-1D5E4 ; [.1AE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
-1D618 ; [.1AE3.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
-1D64C ; [.1AE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
-1D680 ; [.1AE3.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Q
-24C6 ; [.1AE3.0020.000C] # CIRCLED LATIN CAPITAL LETTER Q
-1F160 ; [.1AE3.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
-1F140 ; [.1AE3.0020.001D] # SQUARED LATIN CAPITAL LETTER Q
-1F180 ; [.1AE3.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Q
-0239 ; [.1AE3.0020.0004][.1ACE.0020.0004] # LATIN SMALL LETTER QP DIGRAPH
-A757 ; [.1AE7.0020.0002] # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
-A756 ; [.1AE7.0020.0008] # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
-A759 ; [.1AE8.0020.0002] # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
-A758 ; [.1AE8.0020.0008] # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
-02A0 ; [.1AE9.0020.0002] # LATIN SMALL LETTER Q WITH HOOK
-024B ; [.1AED.0020.0002] # LATIN SMALL LETTER Q WITH HOOK TAIL
-024A ; [.1AED.0020.0008] # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-0138 ; [.1AF1.0020.0002] # LATIN SMALL LETTER KRA
-0072 ; [.1AF5.0020.0002] # LATIN SMALL LETTER R
-FF52 ; [.1AF5.0020.0003] # FULLWIDTH LATIN SMALL LETTER R
-036C ; [.1AF5.0020.0004] # COMBINING LATIN SMALL LETTER R
-1DCA ; [.1AF5.0020.0004] # COMBINING LATIN SMALL LETTER R BELOW
-24AD ; [*030A.0020.0004][.1AF5.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER R
-1D42B ; [.1AF5.0020.0005] # MATHEMATICAL BOLD SMALL R
-1D45F ; [.1AF5.0020.0005] # MATHEMATICAL ITALIC SMALL R
-1D493 ; [.1AF5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL R
-1D4C7 ; [.1AF5.0020.0005] # MATHEMATICAL SCRIPT SMALL R
-1D4FB ; [.1AF5.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL R
-1D52F ; [.1AF5.0020.0005] # MATHEMATICAL FRAKTUR SMALL R
-1D563 ; [.1AF5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL R
-1D597 ; [.1AF5.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL R
-1D5CB ; [.1AF5.0020.0005] # MATHEMATICAL SANS-SERIF SMALL R
-1D5FF ; [.1AF5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL R
-1D633 ; [.1AF5.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL R
-1D667 ; [.1AF5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
-1D69B ; [.1AF5.0020.0005] # MATHEMATICAL MONOSPACE SMALL R
-24E1 ; [.1AF5.0020.0006] # CIRCLED LATIN SMALL LETTER R
-0052 ; [.1AF5.0020.0008] # LATIN CAPITAL LETTER R
-FF32 ; [.1AF5.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER R
-1F121 ; [*030A.0020.0004][.1AF5.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER R
-211B ; [.1AF5.0020.000B] # SCRIPT CAPITAL R
-211C ; [.1AF5.0020.000B] # BLACK-LETTER CAPITAL R
-211D ; [.1AF5.0020.000B] # DOUBLE-STRUCK CAPITAL R
-1D411 ; [.1AF5.0020.000B] # MATHEMATICAL BOLD CAPITAL R
-1D445 ; [.1AF5.0020.000B] # MATHEMATICAL ITALIC CAPITAL R
-1D479 ; [.1AF5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL R
-1D4E1 ; [.1AF5.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL R
-1D57D ; [.1AF5.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL R
-1D5B1 ; [.1AF5.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL R
-1D5E5 ; [.1AF5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL R
-1D619 ; [.1AF5.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
-1D64D ; [.1AF5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
-1D681 ; [.1AF5.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL R
-24C7 ; [.1AF5.0020.000C] # CIRCLED LATIN CAPITAL LETTER R
-1F12C ; [.1AF5.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER R
-1F161 ; [.1AF5.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER R
-02B3 ; [.1AF5.0020.0014] # MODIFIER LETTER SMALL R
-1D63 ; [.1AF5.0020.0015] # LATIN SUBSCRIPT SMALL LETTER R
-1D3F ; [.1AF5.0020.001D] # MODIFIER LETTER CAPITAL R
-1F141 ; [.1AF5.0020.001D] # SQUARED LATIN CAPITAL LETTER R
-1F181 ; [.1AF5.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER R
-0155 ; [.1AF5.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER R WITH ACUTE
-0154 ; [.1AF5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER R WITH ACUTE
-0159 ; [.1AF5.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER R WITH CARON
-0158 ; [.1AF5.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER R WITH CARON
-1E59 ; [.1AF5.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER R WITH DOT ABOVE
-1E58 ; [.1AF5.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER R WITH DOT ABOVE
-0157 ; [.1AF5.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER R WITH CEDILLA
-0156 ; [.1AF5.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER R WITH CEDILLA
-A7A7 ; [.1AF5.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER R WITH OBLIQUE STROKE
-A7A6 ; [.1AF5.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
-0211 ; [.1AF5.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER R WITH DOUBLE GRAVE
-0210 ; [.1AF5.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-0213 ; [.1AF5.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER R WITH INVERTED BREVE
-0212 ; [.1AF5.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER R WITH INVERTED BREVE
-1E5B ; [.1AF5.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER R WITH DOT BELOW
-1E5A ; [.1AF5.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW
-1E5D ; [.1AF5.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-1E5C ; [.1AF5.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-1E5F ; [.1AF5.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER R WITH LINE BELOW
-1E5E ; [.1AF5.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER R WITH LINE BELOW
-A783 ; [.1AF5.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR R
-A782 ; [.1AF5.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR R
-33AD ; [.1AF5.0020.001C][.190C.0020.001C][.1953.0020.001C] # SQUARE RAD
-33AE ; [.1AF5.0020.001C][.190C.0020.001C][.1953.0020.001C][*05E5.0020.001C][.1B33.0020.001C] # SQUARE RAD OVER S
-33AF ; [.1AF5.0020.001C][.190C.0020.001C][.1953.0020.001C][*05E5.0020.001C][.1B33.0020.001C][.1904.0020.001C] # SQUARE RAD OVER S SQUARED
-20A8 ; [.1AF5.0020.000A][.1B33.0020.0004] # RUPEE SIGN
-AB45 ; [.1AF9.0020.0002] # LATIN SMALL LETTER STIRRUP R
-0280 ; [.1AFA.0020.0002] # LATIN LETTER SMALL CAPITAL R
-1DE2 ; [.1AFA.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL R
-01A6 ; [.1AFA.0020.0008] # LATIN LETTER YR
-AB46 ; [.1AFE.0020.0002] # LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG
-A75B ; [.1AFF.0020.0002] # LATIN SMALL LETTER R ROTUNDA
-1DE3 ; [.1AFF.0020.0004] # COMBINING LATIN SMALL LETTER R ROTUNDA
-A75A ; [.1AFF.0020.0008] # LATIN CAPITAL LETTER R ROTUNDA
-1D19 ; [.1B00.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED R
-024D ; [.1B01.0020.0002] # LATIN SMALL LETTER R WITH STROKE
-024C ; [.1B01.0020.0008] # LATIN CAPITAL LETTER R WITH STROKE
-1D72 ; [.1B05.0020.0002] # LATIN SMALL LETTER R WITH MIDDLE TILDE
-0279 ; [.1B06.0020.0002] # LATIN SMALL LETTER TURNED R
-02B4 ; [.1B06.0020.0014] # MODIFIER LETTER SMALL TURNED R
-1D1A ; [.1B0A.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED R
-027A ; [.1B0B.0020.0002] # LATIN SMALL LETTER TURNED R WITH LONG LEG
-1D89 ; [.1B0F.0020.0002] # LATIN SMALL LETTER R WITH PALATAL HOOK
-027B ; [.1B10.0020.0002] # LATIN SMALL LETTER TURNED R WITH HOOK
-02B5 ; [.1B10.0020.0014] # MODIFIER LETTER SMALL TURNED R WITH HOOK
-2C79 ; [.1B14.0020.0002] # LATIN SMALL LETTER TURNED R WITH TAIL
-027C ; [.1B15.0020.0002] # LATIN SMALL LETTER R WITH LONG LEG
-027D ; [.1B19.0020.0002] # LATIN SMALL LETTER R WITH TAIL
-2C64 ; [.1B19.0020.0008] # LATIN CAPITAL LETTER R WITH TAIL
-AB49 ; [.1B1D.0020.0002] # LATIN SMALL LETTER R WITH CROSSED-TAIL
-027E ; [.1B1E.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK
-1D73 ; [.1B22.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
-027F ; [.1B23.0020.0002] # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-AB47 ; [.1B27.0020.0002] # LATIN SMALL LETTER R WITHOUT HANDLE
-AB48 ; [.1B28.0020.0002] # LATIN SMALL LETTER DOUBLE R
-AB4A ; [.1B29.0020.0002] # LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL
-AB4B ; [.1B2A.0020.0002] # LATIN SMALL LETTER SCRIPT R
-AB4C ; [.1B2B.0020.0002] # LATIN SMALL LETTER SCRIPT R WITH RING
-0281 ; [.1B2C.0020.0002] # LATIN LETTER SMALL CAPITAL INVERTED R
-02B6 ; [.1B2C.0020.0014] # MODIFIER LETTER SMALL CAPITAL INVERTED R
-A775 ; [.1B30.0020.0002] # LATIN SMALL LETTER RUM
-A776 ; [.1B31.0020.0002] # LATIN LETTER SMALL CAPITAL RUM
-A75D ; [.1B32.0020.0002] # LATIN SMALL LETTER RUM ROTUNDA
-A75C ; [.1B32.0020.0008] # LATIN CAPITAL LETTER RUM ROTUNDA
-0073 ; [.1B33.0020.0002] # LATIN SMALL LETTER S
-FF53 ; [.1B33.0020.0003] # FULLWIDTH LATIN SMALL LETTER S
-1DE4 ; [.1B33.0020.0004] # COMBINING LATIN SMALL LETTER S
-24AE ; [*030A.0020.0004][.1B33.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER S
-1D42C ; [.1B33.0020.0005] # MATHEMATICAL BOLD SMALL S
-1D460 ; [.1B33.0020.0005] # MATHEMATICAL ITALIC SMALL S
-1D494 ; [.1B33.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL S
-1D4C8 ; [.1B33.0020.0005] # MATHEMATICAL SCRIPT SMALL S
-1D4FC ; [.1B33.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL S
-1D530 ; [.1B33.0020.0005] # MATHEMATICAL FRAKTUR SMALL S
-1D564 ; [.1B33.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL S
-1D598 ; [.1B33.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL S
-1D5CC ; [.1B33.0020.0005] # MATHEMATICAL SANS-SERIF SMALL S
-1D600 ; [.1B33.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL S
-1D634 ; [.1B33.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL S
-1D668 ; [.1B33.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
-1D69C ; [.1B33.0020.0005] # MATHEMATICAL MONOSPACE SMALL S
-24E2 ; [.1B33.0020.0006] # CIRCLED LATIN SMALL LETTER S
-0053 ; [.1B33.0020.0008] # LATIN CAPITAL LETTER S
-FF33 ; [.1B33.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER S
-1F122 ; [*030A.0020.0004][.1B33.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER S
-1F12A ; [*036C.0020.0004][.1B33.0020.000A][*036D.0020.0004] # TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
-1D412 ; [.1B33.0020.000B] # MATHEMATICAL BOLD CAPITAL S
-1D446 ; [.1B33.0020.000B] # MATHEMATICAL ITALIC CAPITAL S
-1D47A ; [.1B33.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL S
-1D4AE ; [.1B33.0020.000B] # MATHEMATICAL SCRIPT CAPITAL S
-1D4E2 ; [.1B33.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL S
-1D516 ; [.1B33.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL S
-1D54A ; [.1B33.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL S
-1D57E ; [.1B33.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL S
-1D5B2 ; [.1B33.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL S
-1D5E6 ; [.1B33.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL S
-1D61A ; [.1B33.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
-1D64E ; [.1B33.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
-1D682 ; [.1B33.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL S
-24C8 ; [.1B33.0020.000C] # CIRCLED LATIN CAPITAL LETTER S
-1F162 ; [.1B33.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER S
-02E2 ; [.1B33.0020.0014] # MODIFIER LETTER SMALL S
-209B ; [.1B33.0020.0015] # LATIN SUBSCRIPT SMALL LETTER S
-1F142 ; [.1B33.0020.001D] # SQUARED LATIN CAPITAL LETTER S
-1F182 ; [.1B33.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER S
-015B ; [.1B33.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER S WITH ACUTE
-015A ; [.1B33.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER S WITH ACUTE
-1E65 ; [.1B33.0020.0002][.0000.0024.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-1E64 ; [.1B33.0020.0008][.0000.0024.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-015D ; [.1B33.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
-015C ; [.1B33.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-0161 ; [.1B33.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER S WITH CARON
-0160 ; [.1B33.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER S WITH CARON
-1E67 ; [.1B33.0020.0002][.0000.0028.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-1E66 ; [.1B33.0020.0008][.0000.0028.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-1E61 ; [.1B33.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT ABOVE
-1E60 ; [.1B33.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT ABOVE
-015F ; [.1B33.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER S WITH CEDILLA
-015E ; [.1B33.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER S WITH CEDILLA
-A7A9 ; [.1B33.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER S WITH OBLIQUE STROKE
-A7A8 ; [.1B33.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-1E63 ; [.1B33.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER S WITH DOT BELOW
-1E62 ; [.1B33.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW
-1E69 ; [.1B33.0020.0002][.0000.0042.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-1E68 ; [.1B33.0020.0008][.0000.0042.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-0219 ; [.1B33.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
-0218 ; [.1B33.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER S WITH COMMA BELOW
-017F ; [.1B33.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER LONG S
-1DE5 ; [.1B33.0020.0004][.0000.0109.0004] # COMBINING LATIN SMALL LETTER LONG S
-A785 ; [.1B33.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR S
-A784 ; [.1B33.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR S
-1E9B ; [.1B33.0020.0004][.0000.0109.0004][.0000.002E.0002] # LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1F18D ; [.1B33.0020.001D][.190C.0020.001D] # NEGATIVE SQUARED SA
-1F14C ; [.1B33.0020.001D][.1953.0020.001D] # SQUARED SD
-2120 ; [.1B33.0020.0014][.1A6E.0020.0014] # SERVICE MARK
-1F198 ; [.1B33.0020.001D][.1AA1.0020.001D][.1B33.0020.001D] # SQUARED SOS
-33DB ; [.1B33.0020.001C][.1AF5.0020.001C] # SQUARE SR
-1F14D ; [.1B33.0020.001D][.1B33.0020.001D] # SQUARED SS
-00DF ; [.1B33.0020.0004][.0000.0108.0004][.1B33.0020.0004] # LATIN SMALL LETTER SHARP S
-1E9E ; [.1B33.0020.000A][.0000.0108.0004][.1B33.0020.000A] # LATIN CAPITAL LETTER SHARP S
-FB06 ; [.1B33.0020.0004][.1B57.0020.0004] # LATIN SMALL LIGATURE ST
-FB05 ; [.1B33.0020.0004][.0000.0109.0004][.1B57.0020.0004] # LATIN SMALL LIGATURE LONG S T
-33DC ; [.1B33.0020.001D][.1BA5.0020.001C] # SQUARE SV
-A731 ; [.1B37.0020.0002] # LATIN LETTER SMALL CAPITAL S
-1D74 ; [.1B38.0020.0002] # LATIN SMALL LETTER S WITH MIDDLE TILDE
-1D8A ; [.1B39.0020.0002] # LATIN SMALL LETTER S WITH PALATAL HOOK
-0282 ; [.1B3A.0020.0002] # LATIN SMALL LETTER S WITH HOOK
-1DB3 ; [.1B3A.0020.0014] # MODIFIER LETTER SMALL S WITH HOOK
-023F ; [.1B3E.0020.0002] # LATIN SMALL LETTER S WITH SWASH TAIL
-2C7E ; [.1B3E.0020.0008] # LATIN CAPITAL LETTER S WITH SWASH TAIL
-1E9C ; [.1B42.0020.0002] # LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
-1E9D ; [.1B43.0020.0002] # LATIN SMALL LETTER LONG S WITH HIGH STROKE
-0283 ; [.1B44.0020.0002] # LATIN SMALL LETTER ESH
-1DEF ; [.1B44.0020.0004] # COMBINING LATIN SMALL LETTER ESH
-01A9 ; [.1B44.0020.0008] # LATIN CAPITAL LETTER ESH
-1DB4 ; [.1B44.0020.0014] # MODIFIER LETTER SMALL ESH
-AB4D ; [.1B48.0020.0002] # LATIN SMALL LETTER BASELINE ESH
-1D8B ; [.1B49.0020.0002] # LATIN SMALL LETTER ESH WITH PALATAL HOOK
-01AA ; [.1B4A.0020.0002] # LATIN LETTER REVERSED ESH LOOP
-0285 ; [.1B4E.0020.0002] # LATIN SMALL LETTER SQUAT REVERSED ESH
-1D98 ; [.1B52.0020.0002] # LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
-0286 ; [.1B53.0020.0002] # LATIN SMALL LETTER ESH WITH CURL
-0074 ; [.1B57.0020.0002] # LATIN SMALL LETTER T
-FF54 ; [.1B57.0020.0003] # FULLWIDTH LATIN SMALL LETTER T
-036D ; [.1B57.0020.0004] # COMBINING LATIN SMALL LETTER T
-24AF ; [*030A.0020.0004][.1B57.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER T
-1D42D ; [.1B57.0020.0005] # MATHEMATICAL BOLD SMALL T
-1D461 ; [.1B57.0020.0005] # MATHEMATICAL ITALIC SMALL T
-1D495 ; [.1B57.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL T
-1D4C9 ; [.1B57.0020.0005] # MATHEMATICAL SCRIPT SMALL T
-1D4FD ; [.1B57.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL T
-1D531 ; [.1B57.0020.0005] # MATHEMATICAL FRAKTUR SMALL T
-1D565 ; [.1B57.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL T
-1D599 ; [.1B57.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL T
-1D5CD ; [.1B57.0020.0005] # MATHEMATICAL SANS-SERIF SMALL T
-1D601 ; [.1B57.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL T
-1D635 ; [.1B57.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL T
-1D669 ; [.1B57.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
-1D69D ; [.1B57.0020.0005] # MATHEMATICAL MONOSPACE SMALL T
-24E3 ; [.1B57.0020.0006] # CIRCLED LATIN SMALL LETTER T
-0054 ; [.1B57.0020.0008] # LATIN CAPITAL LETTER T
-FF34 ; [.1B57.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER T
-1F123 ; [*030A.0020.0004][.1B57.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER T
-1D413 ; [.1B57.0020.000B] # MATHEMATICAL BOLD CAPITAL T
-1D447 ; [.1B57.0020.000B] # MATHEMATICAL ITALIC CAPITAL T
-1D47B ; [.1B57.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL T
-1D4AF ; [.1B57.0020.000B] # MATHEMATICAL SCRIPT CAPITAL T
-1D4E3 ; [.1B57.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL T
-1D517 ; [.1B57.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL T
-1D54B ; [.1B57.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL T
-1D57F ; [.1B57.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL T
-1D5B3 ; [.1B57.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL T
-1D5E7 ; [.1B57.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL T
-1D61B ; [.1B57.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
-1D64F ; [.1B57.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
-1D683 ; [.1B57.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL T
-24C9 ; [.1B57.0020.000C] # CIRCLED LATIN CAPITAL LETTER T
-1F163 ; [.1B57.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER T
-1D57 ; [.1B57.0020.0014] # MODIFIER LETTER SMALL T
-209C ; [.1B57.0020.0015] # LATIN SUBSCRIPT SMALL LETTER T
-1D40 ; [.1B57.0020.001D] # MODIFIER LETTER CAPITAL T
-1F143 ; [.1B57.0020.001D] # SQUARED LATIN CAPITAL LETTER T
-1F183 ; [.1B57.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER T
-0165 ; [.1B57.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER T WITH CARON
-0164 ; [.1B57.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER T WITH CARON
-1E97 ; [.1B57.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER T WITH DIAERESIS
-1E6B ; [.1B57.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER T WITH DOT ABOVE
-1E6A ; [.1B57.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER T WITH DOT ABOVE
-0163 ; [.1B57.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER T WITH CEDILLA
-0162 ; [.1B57.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER T WITH CEDILLA
-1E6D ; [.1B57.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER T WITH DOT BELOW
-1E6C ; [.1B57.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER T WITH DOT BELOW
-021B ; [.1B57.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
-021A ; [.1B57.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER T WITH COMMA BELOW
-1E71 ; [.1B57.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-1E70 ; [.1B57.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-1E6F ; [.1B57.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER T WITH LINE BELOW
-1E6E ; [.1B57.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER T WITH LINE BELOW
-A787 ; [.1B57.0020.0004][.0000.0109.0004] # LATIN SMALL LETTER INSULAR T
-A786 ; [.1B57.0020.000A][.0000.0109.0004] # LATIN CAPITAL LETTER INSULAR T
-02A8 ; [.1B57.0020.0004][.194D.0020.0004] # LATIN SMALL LETTER TC DIGRAPH WITH CURL
-2121 ; [.1B57.0020.000A][.196E.0020.000A][.1A3B.0020.000A] # TELEPHONE SIGN
-1D7A ; [.1B57.0020.0004][.0000.0108.0004][.19DC.0020.0004] # LATIN SMALL LETTER TH WITH STRIKETHROUGH
-3394 ; [.1B57.0020.001D][.19DC.0020.001D][.1BE3.0020.001C] # SQUARE THZ
-2122 ; [.1B57.0020.0014][.1A6E.0020.0014] # TRADE MARK SIGN
-01BE ; [.1B57.0020.0004][.1B33.0020.0004] # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-02A6 ; [.1B57.0020.0004][.1B33.0020.0004] # LATIN SMALL LETTER TS DIGRAPH
-02A7 ; [.1B57.0020.0004][.1B44.0020.0004] # LATIN SMALL LETTER TESH DIGRAPH
-A729 ; [.1B57.0020.0004][.1BE3.0020.0004] # LATIN SMALL LETTER TZ
-A728 ; [.1B57.0020.000A][.1BE3.0020.0004] # LATIN CAPITAL LETTER TZ
-1D1B ; [.1B5B.0020.0002] # LATIN LETTER SMALL CAPITAL T
-0167 ; [.1B5C.0020.0002] # LATIN SMALL LETTER T WITH STROKE
-0166 ; [.1B5C.0020.0008] # LATIN CAPITAL LETTER T WITH STROKE
-2C66 ; [.1B60.0020.0002] # LATIN SMALL LETTER T WITH DIAGONAL STROKE
-023E ; [.1B60.0020.0008] # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-1D75 ; [.1B61.0020.0002] # LATIN SMALL LETTER T WITH MIDDLE TILDE
-01AB ; [.1B62.0020.0002] # LATIN SMALL LETTER T WITH PALATAL HOOK
-1DB5 ; [.1B62.0020.0014] # MODIFIER LETTER SMALL T WITH PALATAL HOOK
-01AD ; [.1B66.0020.0002] # LATIN SMALL LETTER T WITH HOOK
-01AC ; [.1B66.0020.0008] # LATIN CAPITAL LETTER T WITH HOOK
-0288 ; [.1B6A.0020.0002] # LATIN SMALL LETTER T WITH RETROFLEX HOOK
-01AE ; [.1B6A.0020.0008] # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-0236 ; [.1B6E.0020.0002] # LATIN SMALL LETTER T WITH CURL
-A777 ; [.1B72.0020.0002] # LATIN SMALL LETTER TUM
-0287 ; [.1B73.0020.0002] # LATIN SMALL LETTER TURNED T
-A7B1 ; [.1B73.0020.0008] # LATIN CAPITAL LETTER TURNED T
-0075 ; [.1B77.0020.0002] # LATIN SMALL LETTER U
-FF55 ; [.1B77.0020.0003] # FULLWIDTH LATIN SMALL LETTER U
-0367 ; [.1B77.0020.0004] # COMBINING LATIN SMALL LETTER U
-24B0 ; [*030A.0020.0004][.1B77.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER U
-1D42E ; [.1B77.0020.0005] # MATHEMATICAL BOLD SMALL U
-1D462 ; [.1B77.0020.0005] # MATHEMATICAL ITALIC SMALL U
-1D496 ; [.1B77.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL U
-1D4CA ; [.1B77.0020.0005] # MATHEMATICAL SCRIPT SMALL U
-1D4FE ; [.1B77.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL U
-1D532 ; [.1B77.0020.0005] # MATHEMATICAL FRAKTUR SMALL U
-1D566 ; [.1B77.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL U
-1D59A ; [.1B77.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL U
-1D5CE ; [.1B77.0020.0005] # MATHEMATICAL SANS-SERIF SMALL U
-1D602 ; [.1B77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL U
-1D636 ; [.1B77.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL U
-1D66A ; [.1B77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
-1D69E ; [.1B77.0020.0005] # MATHEMATICAL MONOSPACE SMALL U
-24E4 ; [.1B77.0020.0006] # CIRCLED LATIN SMALL LETTER U
-0055 ; [.1B77.0020.0008] # LATIN CAPITAL LETTER U
-FF35 ; [.1B77.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER U
-1F124 ; [*030A.0020.0004][.1B77.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER U
-1D414 ; [.1B77.0020.000B] # MATHEMATICAL BOLD CAPITAL U
-1D448 ; [.1B77.0020.000B] # MATHEMATICAL ITALIC CAPITAL U
-1D47C ; [.1B77.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL U
-1D4B0 ; [.1B77.0020.000B] # MATHEMATICAL SCRIPT CAPITAL U
-1D4E4 ; [.1B77.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL U
-1D518 ; [.1B77.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL U
-1D54C ; [.1B77.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL U
-1D580 ; [.1B77.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL U
-1D5B4 ; [.1B77.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL U
-1D5E8 ; [.1B77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL U
-1D61C ; [.1B77.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
-1D650 ; [.1B77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
-1D684 ; [.1B77.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL U
-24CA ; [.1B77.0020.000C] # CIRCLED LATIN CAPITAL LETTER U
-1F164 ; [.1B77.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER U
-1D58 ; [.1B77.0020.0014] # MODIFIER LETTER SMALL U
-1D64 ; [.1B77.0020.0015] # LATIN SUBSCRIPT SMALL LETTER U
-1D41 ; [.1B77.0020.001D] # MODIFIER LETTER CAPITAL U
-1F144 ; [.1B77.0020.001D] # SQUARED LATIN CAPITAL LETTER U
-1F184 ; [.1B77.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER U
-00FA ; [.1B77.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH ACUTE
-00DA ; [.1B77.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH ACUTE
-00F9 ; [.1B77.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH GRAVE
-00D9 ; [.1B77.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH GRAVE
-016D ; [.1B77.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER U WITH BREVE
-016C ; [.1B77.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER U WITH BREVE
-00FB ; [.1B77.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
-00DB ; [.1B77.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-01D4 ; [.1B77.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH CARON
-01D3 ; [.1B77.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH CARON
-016F ; [.1B77.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH RING ABOVE
-016E ; [.1B77.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH RING ABOVE
-00FC ; [.1B77.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH DIAERESIS
-1DF4 ; [.1B77.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER U WITH DIAERESIS
-A79F ; [.1B77.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK UE
-00DC ; [.1B77.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS
-A79E ; [.1B77.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK UE
-01D8 ; [.1B77.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-01D7 ; [.1B77.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-01DC ; [.1B77.0020.0002][.0000.002B.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-01DB ; [.1B77.0020.0008][.0000.002B.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-01DA ; [.1B77.0020.0002][.0000.002B.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-01D9 ; [.1B77.0020.0008][.0000.002B.0002][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-01D6 ; [.1B77.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-01D5 ; [.1B77.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-0171 ; [.1B77.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
-0170 ; [.1B77.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-0169 ; [.1B77.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH TILDE
-0168 ; [.1B77.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH TILDE
-1E79 ; [.1B77.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH TILDE AND ACUTE
-1E78 ; [.1B77.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-0173 ; [.1B77.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER U WITH OGONEK
-0172 ; [.1B77.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER U WITH OGONEK
-016B ; [.1B77.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
-016A ; [.1B77.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
-1E7B ; [.1B77.0020.0002][.0000.0032.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-1E7A ; [.1B77.0020.0008][.0000.0032.0002][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-1DF0 ; [.1B77.0020.0004][.0000.0034.0004] # COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE
-1EE7 ; [.1B77.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HOOK ABOVE
-1EE6 ; [.1B77.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
-0215 ; [.1B77.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER U WITH DOUBLE GRAVE
-0214 ; [.1B77.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-0217 ; [.1B77.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER U WITH INVERTED BREVE
-0216 ; [.1B77.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER U WITH INVERTED BREVE
-01B0 ; [.1B77.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN
-01AF ; [.1B77.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN
-1EE9 ; [.1B77.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH HORN AND ACUTE
-1EE8 ; [.1B77.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-1EEB ; [.1B77.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
-1EEA ; [.1B77.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-1EEF ; [.1B77.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH HORN AND TILDE
-1EEE ; [.1B77.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
-1EED ; [.1B77.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-1EEC ; [.1B77.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-1EF1 ; [.1B77.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-1EF0 ; [.1B77.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-1EE5 ; [.1B77.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH DOT BELOW
-1EE4 ; [.1B77.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH DOT BELOW
-1E73 ; [.1B77.0020.0002][.0000.0043.0002] # LATIN SMALL LETTER U WITH DIAERESIS BELOW
-1E72 ; [.1B77.0020.0008][.0000.0043.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-1E77 ; [.1B77.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-1E76 ; [.1B77.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-1E75 ; [.1B77.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER U WITH TILDE BELOW
-1E74 ; [.1B77.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER U WITH TILDE BELOW
-1F199 ; [.1B77.0020.001D][.1ACE.0020.001D][*025F.0020.001C] # SQUARED UP WITH EXCLAMATION MARK
-1D1C ; [.1B7B.0020.0002] # LATIN LETTER SMALL CAPITAL U
-1DB8 ; [.1B7B.0020.0014] # MODIFIER LETTER SMALL CAPITAL U
-AB4E ; [.1B7C.0020.0002] # LATIN SMALL LETTER U WITH SHORT RIGHT LEG
-1D1D ; [.1B7D.0020.0002] # LATIN SMALL LETTER SIDEWAYS U
-1D59 ; [.1B7D.0020.0014] # MODIFIER LETTER SMALL SIDEWAYS U
-1D1E ; [.1B7E.0020.0002] # LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
-1D6B ; [.1B7F.0020.0002] # LATIN SMALL LETTER UE
-AB50 ; [.1B80.0020.0002] # LATIN SMALL LETTER UI
-AB51 ; [.1B81.0020.0002] # LATIN SMALL LETTER TURNED UI
-0289 ; [.1B82.0020.0002] # LATIN SMALL LETTER U BAR
-0244 ; [.1B82.0020.0008] # LATIN CAPITAL LETTER U BAR
-1DB6 ; [.1B82.0020.0014] # MODIFIER LETTER SMALL U BAR
-AB4F ; [.1B86.0020.0002] # LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG
-1D7E ; [.1B87.0020.0002] # LATIN SMALL CAPITAL LETTER U WITH STROKE
-1D99 ; [.1B88.0020.0002] # LATIN SMALL LETTER U WITH RETROFLEX HOOK
-AB52 ; [.1B89.0020.0002] # LATIN SMALL LETTER U WITH LEFT HOOK
-AB5F ; [.1B89.0020.0014] # MODIFIER LETTER SMALL U WITH LEFT HOOK
-0265 ; [.1B8A.0020.0002] # LATIN SMALL LETTER TURNED H
-A78D ; [.1B8A.0020.0008] # LATIN CAPITAL LETTER TURNED H
-1DA3 ; [.1B8A.0020.0014] # MODIFIER LETTER SMALL TURNED H
-02AE ; [.1B8E.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK
-02AF ; [.1B92.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-026F ; [.1B96.0020.0002] # LATIN SMALL LETTER TURNED M
-019C ; [.1B96.0020.0008] # LATIN CAPITAL LETTER TURNED M
-1D5A ; [.1B96.0020.0014] # MODIFIER LETTER SMALL TURNED M
-A7FA ; [.1B9A.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED M
-1D1F ; [.1B9B.0020.0002] # LATIN SMALL LETTER SIDEWAYS TURNED M
-0270 ; [.1B9C.0020.0002] # LATIN SMALL LETTER TURNED M WITH LONG LEG
-1DAD ; [.1B9C.0020.0014] # MODIFIER LETTER SMALL TURNED M WITH LONG LEG
-028A ; [.1BA0.0020.0002] # LATIN SMALL LETTER UPSILON
-01B1 ; [.1BA0.0020.0008] # LATIN CAPITAL LETTER UPSILON
-1DB7 ; [.1BA0.0020.0014] # MODIFIER LETTER SMALL UPSILON
-1D7F ; [.1BA4.0020.0002] # LATIN SMALL LETTER UPSILON WITH STROKE
-0076 ; [.1BA5.0020.0002] # LATIN SMALL LETTER V
-FF56 ; [.1BA5.0020.0003] # FULLWIDTH LATIN SMALL LETTER V
-036E ; [.1BA5.0020.0004] # COMBINING LATIN SMALL LETTER V
-2174 ; [.1BA5.0020.0004] # SMALL ROMAN NUMERAL FIVE
-24B1 ; [*030A.0020.0004][.1BA5.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER V
-1D42F ; [.1BA5.0020.0005] # MATHEMATICAL BOLD SMALL V
-1D463 ; [.1BA5.0020.0005] # MATHEMATICAL ITALIC SMALL V
-1D497 ; [.1BA5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL V
-1D4CB ; [.1BA5.0020.0005] # MATHEMATICAL SCRIPT SMALL V
-1D4FF ; [.1BA5.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL V
-1D533 ; [.1BA5.0020.0005] # MATHEMATICAL FRAKTUR SMALL V
-1D567 ; [.1BA5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL V
-1D59B ; [.1BA5.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL V
-1D5CF ; [.1BA5.0020.0005] # MATHEMATICAL SANS-SERIF SMALL V
-1D603 ; [.1BA5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL V
-1D637 ; [.1BA5.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL V
-1D66B ; [.1BA5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
-1D69F ; [.1BA5.0020.0005] # MATHEMATICAL MONOSPACE SMALL V
-24E5 ; [.1BA5.0020.0006] # CIRCLED LATIN SMALL LETTER V
-0056 ; [.1BA5.0020.0008] # LATIN CAPITAL LETTER V
-FF36 ; [.1BA5.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER V
-2164 ; [.1BA5.0020.000A] # ROMAN NUMERAL FIVE
-1F125 ; [*030A.0020.0004][.1BA5.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER V
-1D415 ; [.1BA5.0020.000B] # MATHEMATICAL BOLD CAPITAL V
-1D449 ; [.1BA5.0020.000B] # MATHEMATICAL ITALIC CAPITAL V
-1D47D ; [.1BA5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL V
-1D4B1 ; [.1BA5.0020.000B] # MATHEMATICAL SCRIPT CAPITAL V
-1D4E5 ; [.1BA5.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL V
-1D519 ; [.1BA5.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL V
-1D54D ; [.1BA5.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL V
-1D581 ; [.1BA5.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL V
-1D5B5 ; [.1BA5.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL V
-1D5E9 ; [.1BA5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL V
-1D61D ; [.1BA5.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
-1D651 ; [.1BA5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
-1D685 ; [.1BA5.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL V
-24CB ; [.1BA5.0020.000C] # CIRCLED LATIN CAPITAL LETTER V
-1F165 ; [.1BA5.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER V
-1D5B ; [.1BA5.0020.0014] # MODIFIER LETTER SMALL V
-1D65 ; [.1BA5.0020.0015] # LATIN SUBSCRIPT SMALL LETTER V
-2C7D ; [.1BA5.0020.001D] # MODIFIER LETTER CAPITAL V
-1F145 ; [.1BA5.0020.001D] # SQUARED LATIN CAPITAL LETTER V
-1F185 ; [.1BA5.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER V
-1E7D ; [.1BA5.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER V WITH TILDE
-1E7C ; [.1BA5.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER V WITH TILDE
-1E7F ; [.1BA5.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER V WITH DOT BELOW
-1E7E ; [.1BA5.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER V WITH DOT BELOW
-2175 ; [.1BA5.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL SIX
-2165 ; [.1BA5.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL SIX
-2176 ; [.1BA5.0020.0004][.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL SEVEN
-2166 ; [.1BA5.0020.000A][.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL SEVEN
-2177 ; [.1BA5.0020.0004][.19F6.0020.0004][.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL EIGHT
-2167 ; [.1BA5.0020.000A][.19F6.0020.000A][.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL EIGHT
-33DE ; [.1BA5.0020.001D][*05E5.0020.001C][.1A6E.0020.001C] # SQUARE V OVER M
-1F19A ; [.1BA5.0020.001D][.1B33.0020.001D] # SQUARED VS
-A761 ; [.1BA5.0020.0004][.1BCD.0020.0004] # LATIN SMALL LETTER VY
-A760 ; [.1BA5.0020.000A][.1BCD.0020.000A] # LATIN CAPITAL LETTER VY
-1D20 ; [.1BA9.0020.0002] # LATIN LETTER SMALL CAPITAL V
-A75F ; [.1BAA.0020.0002] # LATIN SMALL LETTER V WITH DIAGONAL STROKE
-A75E ; [.1BAA.0020.0008] # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
-1D8C ; [.1BAB.0020.0002] # LATIN SMALL LETTER V WITH PALATAL HOOK
-028B ; [.1BAC.0020.0002] # LATIN SMALL LETTER V WITH HOOK
-01B2 ; [.1BAC.0020.0008] # LATIN CAPITAL LETTER V WITH HOOK
-1DB9 ; [.1BAC.0020.0014] # MODIFIER LETTER SMALL V WITH HOOK
-2C71 ; [.1BB0.0020.0002] # LATIN SMALL LETTER V WITH RIGHT HOOK
-2C74 ; [.1BB1.0020.0002] # LATIN SMALL LETTER V WITH CURL
-1EFD ; [.1BB2.0020.0002] # LATIN SMALL LETTER MIDDLE-WELSH V
-1EFC ; [.1BB2.0020.0008] # LATIN CAPITAL LETTER MIDDLE-WELSH V
-028C ; [.1BB3.0020.0002] # LATIN SMALL LETTER TURNED V
-0245 ; [.1BB3.0020.0008] # LATIN CAPITAL LETTER TURNED V
-1DBA ; [.1BB3.0020.0014] # MODIFIER LETTER SMALL TURNED V
-0077 ; [.1BB7.0020.0002] # LATIN SMALL LETTER W
-FF57 ; [.1BB7.0020.0003] # FULLWIDTH LATIN SMALL LETTER W
-1DF1 ; [.1BB7.0020.0004] # COMBINING LATIN SMALL LETTER W
-24B2 ; [*030A.0020.0004][.1BB7.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER W
-1D430 ; [.1BB7.0020.0005] # MATHEMATICAL BOLD SMALL W
-1D464 ; [.1BB7.0020.0005] # MATHEMATICAL ITALIC SMALL W
-1D498 ; [.1BB7.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL W
-1D4CC ; [.1BB7.0020.0005] # MATHEMATICAL SCRIPT SMALL W
-1D500 ; [.1BB7.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL W
-1D534 ; [.1BB7.0020.0005] # MATHEMATICAL FRAKTUR SMALL W
-1D568 ; [.1BB7.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL W
-1D59C ; [.1BB7.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL W
-1D5D0 ; [.1BB7.0020.0005] # MATHEMATICAL SANS-SERIF SMALL W
-1D604 ; [.1BB7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL W
-1D638 ; [.1BB7.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL W
-1D66C ; [.1BB7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
-1D6A0 ; [.1BB7.0020.0005] # MATHEMATICAL MONOSPACE SMALL W
-24E6 ; [.1BB7.0020.0006] # CIRCLED LATIN SMALL LETTER W
-0057 ; [.1BB7.0020.0008] # LATIN CAPITAL LETTER W
-FF37 ; [.1BB7.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER W
-1F126 ; [*030A.0020.0004][.1BB7.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER W
-1D416 ; [.1BB7.0020.000B] # MATHEMATICAL BOLD CAPITAL W
-1D44A ; [.1BB7.0020.000B] # MATHEMATICAL ITALIC CAPITAL W
-1D47E ; [.1BB7.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL W
-1D4B2 ; [.1BB7.0020.000B] # MATHEMATICAL SCRIPT CAPITAL W
-1D4E6 ; [.1BB7.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL W
-1D51A ; [.1BB7.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL W
-1D54E ; [.1BB7.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL W
-1D582 ; [.1BB7.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL W
-1D5B6 ; [.1BB7.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL W
-1D5EA ; [.1BB7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL W
-1D61E ; [.1BB7.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
-1D652 ; [.1BB7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
-1D686 ; [.1BB7.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL W
-24CC ; [.1BB7.0020.000C] # CIRCLED LATIN CAPITAL LETTER W
-1F166 ; [.1BB7.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER W
-02B7 ; [.1BB7.0020.0014] # MODIFIER LETTER SMALL W
-1D42 ; [.1BB7.0020.001D] # MODIFIER LETTER CAPITAL W
-1F146 ; [.1BB7.0020.001D] # SQUARED LATIN CAPITAL LETTER W
-1F186 ; [.1BB7.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER W
-1E83 ; [.1BB7.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER W WITH ACUTE
-1E82 ; [.1BB7.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER W WITH ACUTE
-1E81 ; [.1BB7.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER W WITH GRAVE
-1E80 ; [.1BB7.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER W WITH GRAVE
-0175 ; [.1BB7.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER W WITH CIRCUMFLEX
-0174 ; [.1BB7.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-1E98 ; [.1BB7.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER W WITH RING ABOVE
-1E85 ; [.1BB7.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER W WITH DIAERESIS
-1E84 ; [.1BB7.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER W WITH DIAERESIS
-1E87 ; [.1BB7.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER W WITH DOT ABOVE
-1E86 ; [.1BB7.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER W WITH DOT ABOVE
-1E89 ; [.1BB7.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER W WITH DOT BELOW
-1E88 ; [.1BB7.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER W WITH DOT BELOW
-33DD ; [.1BB7.0020.001D][.1925.0020.001C] # SQUARE WB
-1F14F ; [.1BB7.0020.001D][.193E.0020.001D] # SQUARED WC
-1F18F ; [.1BB7.0020.001D][.193E.0020.001D] # NEGATIVE SQUARED WC
-1F12E ; [.1BB7.0020.000C][.1BE3.0020.000C] # CIRCLED WZ
-1D21 ; [.1BBB.0020.0002] # LATIN LETTER SMALL CAPITAL W
-2C73 ; [.1BBC.0020.0002] # LATIN SMALL LETTER W WITH HOOK
-2C72 ; [.1BBC.0020.0008] # LATIN CAPITAL LETTER W WITH HOOK
-028D ; [.1BBD.0020.0002] # LATIN SMALL LETTER TURNED W
-0078 ; [.1BC1.0020.0002] # LATIN SMALL LETTER X
-FF58 ; [.1BC1.0020.0003] # FULLWIDTH LATIN SMALL LETTER X
-036F ; [.1BC1.0020.0004] # COMBINING LATIN SMALL LETTER X
-2179 ; [.1BC1.0020.0004] # SMALL ROMAN NUMERAL TEN
-24B3 ; [*030A.0020.0004][.1BC1.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER X
-1D431 ; [.1BC1.0020.0005] # MATHEMATICAL BOLD SMALL X
-1D465 ; [.1BC1.0020.0005] # MATHEMATICAL ITALIC SMALL X
-1D499 ; [.1BC1.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL X
-1D4CD ; [.1BC1.0020.0005] # MATHEMATICAL SCRIPT SMALL X
-1D501 ; [.1BC1.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL X
-1D535 ; [.1BC1.0020.0005] # MATHEMATICAL FRAKTUR SMALL X
-1D569 ; [.1BC1.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL X
-1D59D ; [.1BC1.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL X
-1D5D1 ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF SMALL X
-1D605 ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL X
-1D639 ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL X
-1D66D ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
-1D6A1 ; [.1BC1.0020.0005] # MATHEMATICAL MONOSPACE SMALL X
-24E7 ; [.1BC1.0020.0006] # CIRCLED LATIN SMALL LETTER X
-0058 ; [.1BC1.0020.0008] # LATIN CAPITAL LETTER X
-FF38 ; [.1BC1.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER X
-2169 ; [.1BC1.0020.000A] # ROMAN NUMERAL TEN
-1F127 ; [*030A.0020.0004][.1BC1.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER X
-1D417 ; [.1BC1.0020.000B] # MATHEMATICAL BOLD CAPITAL X
-1D44B ; [.1BC1.0020.000B] # MATHEMATICAL ITALIC CAPITAL X
-1D47F ; [.1BC1.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL X
-1D4B3 ; [.1BC1.0020.000B] # MATHEMATICAL SCRIPT CAPITAL X
-1D4E7 ; [.1BC1.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL X
-1D51B ; [.1BC1.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL X
-1D54F ; [.1BC1.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL X
-1D583 ; [.1BC1.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL X
-1D5B7 ; [.1BC1.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL X
-1D5EB ; [.1BC1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL X
-1D61F ; [.1BC1.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
-1D653 ; [.1BC1.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
-1D687 ; [.1BC1.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL X
-24CD ; [.1BC1.0020.000C] # CIRCLED LATIN CAPITAL LETTER X
-1F167 ; [.1BC1.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER X
-02E3 ; [.1BC1.0020.0014] # MODIFIER LETTER SMALL X
-2093 ; [.1BC1.0020.0015] # LATIN SUBSCRIPT SMALL LETTER X
-1F147 ; [.1BC1.0020.001D] # SQUARED LATIN CAPITAL LETTER X
-1F187 ; [.1BC1.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER X
-1E8D ; [.1BC1.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER X WITH DIAERESIS
-1E8C ; [.1BC1.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER X WITH DIAERESIS
-1E8B ; [.1BC1.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER X WITH DOT ABOVE
-1E8A ; [.1BC1.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER X WITH DOT ABOVE
-217A ; [.1BC1.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL ELEVEN
-216A ; [.1BC1.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL ELEVEN
-217B ; [.1BC1.0020.0004][.19F6.0020.0004][.19F6.0020.0004] # SMALL ROMAN NUMERAL TWELVE
-216B ; [.1BC1.0020.000A][.19F6.0020.000A][.19F6.0020.000A] # ROMAN NUMERAL TWELVE
-1D8D ; [.1BC5.0020.0002] # LATIN SMALL LETTER X WITH PALATAL HOOK
-AB56 ; [.1BC6.0020.0002] # LATIN SMALL LETTER X WITH LOW RIGHT RING
-AB57 ; [.1BC7.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG
-AB58 ; [.1BC8.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING
-AB59 ; [.1BC9.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF
-AB53 ; [.1BCA.0020.0002] # LATIN SMALL LETTER CHI
-AB54 ; [.1BCB.0020.0002] # LATIN SMALL LETTER CHI WITH LOW RIGHT RING
-AB55 ; [.1BCC.0020.0002] # LATIN SMALL LETTER CHI WITH LOW LEFT SERIF
-0079 ; [.1BCD.0020.0002] # LATIN SMALL LETTER Y
-FF59 ; [.1BCD.0020.0003] # FULLWIDTH LATIN SMALL LETTER Y
-24B4 ; [*030A.0020.0004][.1BCD.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Y
-1D432 ; [.1BCD.0020.0005] # MATHEMATICAL BOLD SMALL Y
-1D466 ; [.1BCD.0020.0005] # MATHEMATICAL ITALIC SMALL Y
-1D49A ; [.1BCD.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Y
-1D4CE ; [.1BCD.0020.0005] # MATHEMATICAL SCRIPT SMALL Y
-1D502 ; [.1BCD.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Y
-1D536 ; [.1BCD.0020.0005] # MATHEMATICAL FRAKTUR SMALL Y
-1D56A ; [.1BCD.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Y
-1D59E ; [.1BCD.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Y
-1D5D2 ; [.1BCD.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Y
-1D606 ; [.1BCD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Y
-1D63A ; [.1BCD.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Y
-1D66E ; [.1BCD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
-1D6A2 ; [.1BCD.0020.0005] # MATHEMATICAL MONOSPACE SMALL Y
-24E8 ; [.1BCD.0020.0006] # CIRCLED LATIN SMALL LETTER Y
-0059 ; [.1BCD.0020.0008] # LATIN CAPITAL LETTER Y
-FF39 ; [.1BCD.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Y
-1F128 ; [*030A.0020.0004][.1BCD.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Y
-1D418 ; [.1BCD.0020.000B] # MATHEMATICAL BOLD CAPITAL Y
-1D44C ; [.1BCD.0020.000B] # MATHEMATICAL ITALIC CAPITAL Y
-1D480 ; [.1BCD.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Y
-1D4B4 ; [.1BCD.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Y
-1D4E8 ; [.1BCD.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Y
-1D51C ; [.1BCD.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Y
-1D550 ; [.1BCD.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D584 ; [.1BCD.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Y
-1D5B8 ; [.1BCD.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Y
-1D5EC ; [.1BCD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
-1D620 ; [.1BCD.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
-1D654 ; [.1BCD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
-1D688 ; [.1BCD.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Y
-24CE ; [.1BCD.0020.000C] # CIRCLED LATIN CAPITAL LETTER Y
-1F168 ; [.1BCD.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
-02B8 ; [.1BCD.0020.0014] # MODIFIER LETTER SMALL Y
-1F148 ; [.1BCD.0020.001D] # SQUARED LATIN CAPITAL LETTER Y
-1F188 ; [.1BCD.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Y
-00FD ; [.1BCD.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Y WITH ACUTE
-00DD ; [.1BCD.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Y WITH ACUTE
-1EF3 ; [.1BCD.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER Y WITH GRAVE
-1EF2 ; [.1BCD.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER Y WITH GRAVE
-0177 ; [.1BCD.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
-0176 ; [.1BCD.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-1E99 ; [.1BCD.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH RING ABOVE
-00FF ; [.1BCD.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER Y WITH DIAERESIS
-0178 ; [.1BCD.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER Y WITH DIAERESIS
-1EF9 ; [.1BCD.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER Y WITH TILDE
-1EF8 ; [.1BCD.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER Y WITH TILDE
-1E8F ; [.1BCD.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Y WITH DOT ABOVE
-1E8E ; [.1BCD.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Y WITH DOT ABOVE
-0233 ; [.1BCD.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER Y WITH MACRON
-0232 ; [.1BCD.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER Y WITH MACRON
-1EF7 ; [.1BCD.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER Y WITH HOOK ABOVE
-1EF6 ; [.1BCD.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-1EF5 ; [.1BCD.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Y WITH DOT BELOW
-1EF4 ; [.1BCD.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Y WITH DOT BELOW
-028F ; [.1BD1.0020.0002] # LATIN LETTER SMALL CAPITAL Y
-024F ; [.1BD5.0020.0002] # LATIN SMALL LETTER Y WITH STROKE
-024E ; [.1BD5.0020.0008] # LATIN CAPITAL LETTER Y WITH STROKE
-01B4 ; [.1BD9.0020.0002] # LATIN SMALL LETTER Y WITH HOOK
-01B3 ; [.1BD9.0020.0008] # LATIN CAPITAL LETTER Y WITH HOOK
-1EFF ; [.1BDD.0020.0002] # LATIN SMALL LETTER Y WITH LOOP
-1EFE ; [.1BDD.0020.0008] # LATIN CAPITAL LETTER Y WITH LOOP
-AB5A ; [.1BDE.0020.0002] # LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
-021D ; [.1BDF.0020.0002] # LATIN SMALL LETTER YOGH
-021C ; [.1BDF.0020.0008] # LATIN CAPITAL LETTER YOGH
-007A ; [.1BE3.0020.0002] # LATIN SMALL LETTER Z
-FF5A ; [.1BE3.0020.0003] # FULLWIDTH LATIN SMALL LETTER Z
-1DE6 ; [.1BE3.0020.0004] # COMBINING LATIN SMALL LETTER Z
-24B5 ; [*030A.0020.0004][.1BE3.0020.0004][*030B.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Z
-1D433 ; [.1BE3.0020.0005] # MATHEMATICAL BOLD SMALL Z
-1D467 ; [.1BE3.0020.0005] # MATHEMATICAL ITALIC SMALL Z
-1D49B ; [.1BE3.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Z
-1D4CF ; [.1BE3.0020.0005] # MATHEMATICAL SCRIPT SMALL Z
-1D503 ; [.1BE3.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Z
-1D537 ; [.1BE3.0020.0005] # MATHEMATICAL FRAKTUR SMALL Z
-1D56B ; [.1BE3.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Z
-1D59F ; [.1BE3.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Z
-1D5D3 ; [.1BE3.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Z
-1D607 ; [.1BE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Z
-1D63B ; [.1BE3.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Z
-1D66F ; [.1BE3.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
-1D6A3 ; [.1BE3.0020.0005] # MATHEMATICAL MONOSPACE SMALL Z
-24E9 ; [.1BE3.0020.0006] # CIRCLED LATIN SMALL LETTER Z
-005A ; [.1BE3.0020.0008] # LATIN CAPITAL LETTER Z
-FF3A ; [.1BE3.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Z
-1F129 ; [*030A.0020.0004][.1BE3.0020.000A][*030B.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Z
-2124 ; [.1BE3.0020.000B] # DOUBLE-STRUCK CAPITAL Z
-2128 ; [.1BE3.0020.000B] # BLACK-LETTER CAPITAL Z
-1D419 ; [.1BE3.0020.000B] # MATHEMATICAL BOLD CAPITAL Z
-1D44D ; [.1BE3.0020.000B] # MATHEMATICAL ITALIC CAPITAL Z
-1D481 ; [.1BE3.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Z
-1D4B5 ; [.1BE3.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Z
-1D4E9 ; [.1BE3.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Z
-1D585 ; [.1BE3.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Z
-1D5B9 ; [.1BE3.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Z
-1D5ED ; [.1BE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
-1D621 ; [.1BE3.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
-1D655 ; [.1BE3.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
-1D689 ; [.1BE3.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Z
-24CF ; [.1BE3.0020.000C] # CIRCLED LATIN CAPITAL LETTER Z
-1F169 ; [.1BE3.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
-1DBB ; [.1BE3.0020.0014] # MODIFIER LETTER SMALL Z
-1F149 ; [.1BE3.0020.001D] # SQUARED LATIN CAPITAL LETTER Z
-1F189 ; [.1BE3.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-017A ; [.1BE3.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Z WITH ACUTE
-0179 ; [.1BE3.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Z WITH ACUTE
-1E91 ; [.1BE3.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Z WITH CIRCUMFLEX
-1E90 ; [.1BE3.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-017E ; [.1BE3.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER Z WITH CARON
-017D ; [.1BE3.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER Z WITH CARON
-017C ; [.1BE3.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
-017B ; [.1BE3.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
-1E93 ; [.1BE3.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Z WITH DOT BELOW
-1E92 ; [.1BE3.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Z WITH DOT BELOW
-1E95 ; [.1BE3.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER Z WITH LINE BELOW
-1E94 ; [.1BE3.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER Z WITH LINE BELOW
-018D ; [.1BE3.0020.0004][.1BB7.0020.0004] # LATIN SMALL LETTER TURNED DELTA
-1D22 ; [.1BE7.0020.0002] # LATIN LETTER SMALL CAPITAL Z
-01B6 ; [.1BE8.0020.0002] # LATIN SMALL LETTER Z WITH STROKE
-01B5 ; [.1BE8.0020.0008] # LATIN CAPITAL LETTER Z WITH STROKE
-1D76 ; [.1BEC.0020.0002] # LATIN SMALL LETTER Z WITH MIDDLE TILDE
-1D8E ; [.1BED.0020.0002] # LATIN SMALL LETTER Z WITH PALATAL HOOK
-0225 ; [.1BEE.0020.0002] # LATIN SMALL LETTER Z WITH HOOK
-0224 ; [.1BEE.0020.0008] # LATIN CAPITAL LETTER Z WITH HOOK
-0290 ; [.1BF2.0020.0002] # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-1DBC ; [.1BF2.0020.0014] # MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
-0291 ; [.1BF6.0020.0002] # LATIN SMALL LETTER Z WITH CURL
-1DBD ; [.1BF6.0020.0014] # MODIFIER LETTER SMALL Z WITH CURL
-0240 ; [.1BFA.0020.0002] # LATIN SMALL LETTER Z WITH SWASH TAIL
-2C7F ; [.1BFA.0020.0008] # LATIN CAPITAL LETTER Z WITH SWASH TAIL
-2C6C ; [.1BFE.0020.0002] # LATIN SMALL LETTER Z WITH DESCENDER
-2C6B ; [.1BFE.0020.0008] # LATIN CAPITAL LETTER Z WITH DESCENDER
-A763 ; [.1BFF.0020.0002] # LATIN SMALL LETTER VISIGOTHIC Z
-A762 ; [.1BFF.0020.0008] # LATIN CAPITAL LETTER VISIGOTHIC Z
-0292 ; [.1C00.0020.0002] # LATIN SMALL LETTER EZH
-01B7 ; [.1C00.0020.0008] # LATIN CAPITAL LETTER EZH
-1DBE ; [.1C00.0020.0014] # MODIFIER LETTER SMALL EZH
-01EF ; [.1C00.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
-01EE ; [.1C00.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
-1D23 ; [.1C04.0020.0002] # LATIN LETTER SMALL CAPITAL EZH
-01B9 ; [.1C05.0020.0002] # LATIN SMALL LETTER EZH REVERSED
-01B8 ; [.1C05.0020.0008] # LATIN CAPITAL LETTER EZH REVERSED
-1D9A ; [.1C09.0020.0002] # LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-01BA ; [.1C0A.0020.0002] # LATIN SMALL LETTER EZH WITH TAIL
-0293 ; [.1C0E.0020.0002] # LATIN SMALL LETTER EZH WITH CURL
-00FE ; [.1C12.0020.0002] # LATIN SMALL LETTER THORN
-00DE ; [.1C12.0020.0008] # LATIN CAPITAL LETTER THORN
-A765 ; [.1C16.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE
-A764 ; [.1C16.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE
-A767 ; [.1C17.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
-A766 ; [.1C17.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
-01BF ; [.1C18.0020.0002] # LATIN LETTER WYNN
-01F7 ; [.1C18.0020.0008] # LATIN CAPITAL LETTER WYNN
-A769 ; [.1C1C.0020.0002] # LATIN SMALL LETTER VEND
-A768 ; [.1C1C.0020.0008] # LATIN CAPITAL LETTER VEND
-A76B ; [.1C1D.0020.0002] # LATIN SMALL LETTER ET
-A76A ; [.1C1D.0020.0008] # LATIN CAPITAL LETTER ET
-A76D ; [.1C1E.0020.0002] # LATIN SMALL LETTER IS
-A76C ; [.1C1E.0020.0008] # LATIN CAPITAL LETTER IS
-A76F ; [.1C1F.0020.0002] # LATIN SMALL LETTER CON
-1DD2 ; [.1C1F.0020.0004] # COMBINING US ABOVE
-A76E ; [.1C1F.0020.0008] # LATIN CAPITAL LETTER CON
-A770 ; [.1C1F.0020.0014] # MODIFIER LETTER US
-A778 ; [.1C20.0020.0002] # LATIN SMALL LETTER UM
-01BB ; [.1C21.0020.0002] # LATIN LETTER TWO WITH STROKE
-A72B ; [.1C25.0020.0002] # LATIN SMALL LETTER TRESILLO
-A72A ; [.1C25.0020.0008] # LATIN CAPITAL LETTER TRESILLO
-A72D ; [.1C26.0020.0002] # LATIN SMALL LETTER CUATRILLO
-A72C ; [.1C26.0020.0008] # LATIN CAPITAL LETTER CUATRILLO
-A72F ; [.1C27.0020.0002] # LATIN SMALL LETTER CUATRILLO WITH COMMA
-A72E ; [.1C27.0020.0008] # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
-01A8 ; [.1C28.0020.0002] # LATIN SMALL LETTER TONE TWO
-01A7 ; [.1C28.0020.0008] # LATIN CAPITAL LETTER TONE TWO
-01BD ; [.1C2C.0020.0002] # LATIN SMALL LETTER TONE FIVE
-01BC ; [.1C2C.0020.0008] # LATIN CAPITAL LETTER TONE FIVE
-0185 ; [.1C30.0020.0002] # LATIN SMALL LETTER TONE SIX
-0184 ; [.1C30.0020.0008] # LATIN CAPITAL LETTER TONE SIX
-0294 ; [.1C34.0020.0002] # LATIN LETTER GLOTTAL STOP
-0242 ; [.1C38.0020.0002] # LATIN SMALL LETTER GLOTTAL STOP
-0241 ; [.1C38.0020.0008] # LATIN CAPITAL LETTER GLOTTAL STOP
-02C0 ; [.1C3C.0020.0002] # MODIFIER LETTER GLOTTAL STOP
-02BC ; [.1C3D.0020.0002] # MODIFIER LETTER APOSTROPHE
-0149 ; [.1C3D.0020.0004][.1A7D.0020.0004] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-02EE ; [.1C3E.0020.0002] # MODIFIER LETTER DOUBLE APOSTROPHE
-02BE ; [.1C3F.0020.0002] # MODIFIER LETTER RIGHT HALF RING
-A723 ; [.1C40.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
-A722 ; [.1C40.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
-A78C ; [.1C41.0020.0002] # LATIN SMALL LETTER SALTILLO
-A78B ; [.1C41.0020.0008] # LATIN CAPITAL LETTER SALTILLO
-0295 ; [.1C42.0020.0002] # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-02E4 ; [.1C42.0020.0014] # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02BF ; [.1C46.0020.0002] # MODIFIER LETTER LEFT HALF RING
-02C1 ; [.1C47.0020.0002] # MODIFIER LETTER REVERSED GLOTTAL STOP
-1D24 ; [.1C48.0020.0002] # LATIN LETTER VOICED LARYNGEAL SPIRANT
-1D25 ; [.1C49.0020.0002] # LATIN LETTER AIN
-1D5C ; [.1C49.0020.0014] # MODIFIER LETTER SMALL AIN
-A725 ; [.1C4A.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL AIN
-A724 ; [.1C4A.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
-02A1 ; [.1C4B.0020.0002] # LATIN LETTER GLOTTAL STOP WITH STROKE
-02A2 ; [.1C4F.0020.0002] # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-0296 ; [.1C53.0020.0002] # LATIN LETTER INVERTED GLOTTAL STOP
-01C0 ; [.1C57.0020.0002] # LATIN LETTER DENTAL CLICK
-01C1 ; [.1C5B.0020.0002] # LATIN LETTER LATERAL CLICK
-01C2 ; [.1C5F.0020.0002] # LATIN LETTER ALVEOLAR CLICK
-01C3 ; [.1C63.0020.0002] # LATIN LETTER RETROFLEX CLICK
-0297 ; [.1C67.0020.0002] # LATIN LETTER STRETCHED C
-0298 ; [.1C6B.0020.0002] # LATIN LETTER BILABIAL CLICK
-02AC ; [.1C6F.0020.0002] # LATIN LETTER BILABIAL PERCUSSIVE
-02AD ; [.1C73.0020.0002] # LATIN LETTER BIDENTAL PERCUSSIVE
-03B1 ; [.1C77.0020.0002] # GREEK SMALL LETTER ALPHA
-1D6C2 ; [.1C77.0020.0005] # MATHEMATICAL BOLD SMALL ALPHA
-1D6FC ; [.1C77.0020.0005] # MATHEMATICAL ITALIC SMALL ALPHA
-1D736 ; [.1C77.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ALPHA
-1D770 ; [.1C77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
-1D7AA ; [.1C77.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
-0391 ; [.1C77.0020.0008] # GREEK CAPITAL LETTER ALPHA
-1D6A8 ; [.1C77.0020.000B] # MATHEMATICAL BOLD CAPITAL ALPHA
-1D6E2 ; [.1C77.0020.000B] # MATHEMATICAL ITALIC CAPITAL ALPHA
-1D71C ; [.1C77.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
-1D756 ; [.1C77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
-1D790 ; [.1C77.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
-1F00 ; [.1C77.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ALPHA WITH PSILI
-1F08 ; [.1C77.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI
-1F04 ; [.1C77.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-1F0C ; [.1C77.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-1F84 ; [.1C77.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F8C ; [.1C77.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F02 ; [.1C77.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-1F0A ; [.1C77.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-1F82 ; [.1C77.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F8A ; [.1C77.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F06 ; [.1C77.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F0E ; [.1C77.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-1F86 ; [.1C77.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F8E ; [.1C77.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F80 ; [.1C77.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-1F88 ; [.1C77.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-1F01 ; [.1C77.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ALPHA WITH DASIA
-1F09 ; [.1C77.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA
-1F05 ; [.1C77.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-1F0D ; [.1C77.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-1F85 ; [.1C77.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F8D ; [.1C77.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F03 ; [.1C77.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-1F0B ; [.1C77.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-1F83 ; [.1C77.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F8B ; [.1C77.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F07 ; [.1C77.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F0F ; [.1C77.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-1F87 ; [.1C77.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F8F ; [.1C77.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F81 ; [.1C77.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-1F89 ; [.1C77.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-03AC ; [.1C77.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH TONOS
-1F71 ; [.1C77.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH OXIA
-0386 ; [.1C77.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH TONOS
-1FBB ; [.1C77.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH OXIA
-1FB4 ; [.1C77.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1F70 ; [.1C77.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH VARIA
-1FBA ; [.1C77.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH VARIA
-1FB2 ; [.1C77.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-1FB0 ; [.1C77.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER ALPHA WITH VRACHY
-1FB8 ; [.1C77.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER ALPHA WITH VRACHY
-1FB6 ; [.1C77.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-1FB7 ; [.1C77.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FB1 ; [.1C77.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER ALPHA WITH MACRON
-1FB9 ; [.1C77.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER ALPHA WITH MACRON
-1FB3 ; [.1C77.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-1FBC ; [.1C77.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-03B2 ; [.1C78.0020.0002] # GREEK SMALL LETTER BETA
-03D0 ; [.1C78.0020.0004] # GREEK BETA SYMBOL
-1DE9 ; [.1C78.0020.0004] # COMBINING LATIN SMALL LETTER BETA
-1D6C3 ; [.1C78.0020.0005] # MATHEMATICAL BOLD SMALL BETA
-1D6FD ; [.1C78.0020.0005] # MATHEMATICAL ITALIC SMALL BETA
-1D737 ; [.1C78.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL BETA
-1D771 ; [.1C78.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL BETA
-1D7AB ; [.1C78.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
-0392 ; [.1C78.0020.0008] # GREEK CAPITAL LETTER BETA
-1D6A9 ; [.1C78.0020.000B] # MATHEMATICAL BOLD CAPITAL BETA
-1D6E3 ; [.1C78.0020.000B] # MATHEMATICAL ITALIC CAPITAL BETA
-1D71D ; [.1C78.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL BETA
-1D757 ; [.1C78.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
-1D791 ; [.1C78.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
-1D5D ; [.1C78.0020.0014] # MODIFIER LETTER SMALL BETA
-1D66 ; [.1C78.0020.0015] # GREEK SUBSCRIPT SMALL LETTER BETA
-03B3 ; [.1C79.0020.0002] # GREEK SMALL LETTER GAMMA
-213D ; [.1C79.0020.0005] # DOUBLE-STRUCK SMALL GAMMA
-1D6C4 ; [.1C79.0020.0005] # MATHEMATICAL BOLD SMALL GAMMA
-1D6FE ; [.1C79.0020.0005] # MATHEMATICAL ITALIC SMALL GAMMA
-1D738 ; [.1C79.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL GAMMA
-1D772 ; [.1C79.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
-1D7AC ; [.1C79.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
-0393 ; [.1C79.0020.0008] # GREEK CAPITAL LETTER GAMMA
-213E ; [.1C79.0020.000B] # DOUBLE-STRUCK CAPITAL GAMMA
-1D6AA ; [.1C79.0020.000B] # MATHEMATICAL BOLD CAPITAL GAMMA
-1D6E4 ; [.1C79.0020.000B] # MATHEMATICAL ITALIC CAPITAL GAMMA
-1D71E ; [.1C79.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
-1D758 ; [.1C79.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
-1D792 ; [.1C79.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
-1D5E ; [.1C79.0020.0014] # MODIFIER LETTER SMALL GREEK GAMMA
-1D67 ; [.1C79.0020.0015] # GREEK SUBSCRIPT SMALL LETTER GAMMA
-1D26 ; [.1C7A.0020.0002] # GREEK LETTER SMALL CAPITAL GAMMA
-03B4 ; [.1C7B.0020.0002] # GREEK SMALL LETTER DELTA
-1D6C5 ; [.1C7B.0020.0005] # MATHEMATICAL BOLD SMALL DELTA
-1D6FF ; [.1C7B.0020.0005] # MATHEMATICAL ITALIC SMALL DELTA
-1D739 ; [.1C7B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL DELTA
-1D773 ; [.1C7B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
-1D7AD ; [.1C7B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
-0394 ; [.1C7B.0020.0008] # GREEK CAPITAL LETTER DELTA
-1D6AB ; [.1C7B.0020.000B] # MATHEMATICAL BOLD CAPITAL DELTA
-1D6E5 ; [.1C7B.0020.000B] # MATHEMATICAL ITALIC CAPITAL DELTA
-1D71F ; [.1C7B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL DELTA
-1D759 ; [.1C7B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
-1D793 ; [.1C7B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
-1D5F ; [.1C7B.0020.0014] # MODIFIER LETTER SMALL DELTA
-03B5 ; [.1C7C.0020.0002] # GREEK SMALL LETTER EPSILON
-03F5 ; [.1C7C.0020.0004] # GREEK LUNATE EPSILON SYMBOL
-1D6C6 ; [.1C7C.0020.0005] # MATHEMATICAL BOLD SMALL EPSILON
-1D6DC ; [.1C7C.0020.0005] # MATHEMATICAL BOLD EPSILON SYMBOL
-1D700 ; [.1C7C.0020.0005] # MATHEMATICAL ITALIC SMALL EPSILON
-1D716 ; [.1C7C.0020.0005] # MATHEMATICAL ITALIC EPSILON SYMBOL
-1D73A ; [.1C7C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL EPSILON
-1D750 ; [.1C7C.0020.0005] # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
-1D774 ; [.1C7C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
-1D78A ; [.1C7C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
-1D7AE ; [.1C7C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
-1D7C4 ; [.1C7C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
-0395 ; [.1C7C.0020.0008] # GREEK CAPITAL LETTER EPSILON
-1D6AC ; [.1C7C.0020.000B] # MATHEMATICAL BOLD CAPITAL EPSILON
-1D6E6 ; [.1C7C.0020.000B] # MATHEMATICAL ITALIC CAPITAL EPSILON
-1D720 ; [.1C7C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
-1D75A ; [.1C7C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
-1D794 ; [.1C7C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
-1F10 ; [.1C7C.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER EPSILON WITH PSILI
-1F18 ; [.1C7C.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI
-1F14 ; [.1C7C.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-1F1C ; [.1C7C.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-1F12 ; [.1C7C.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-1F1A ; [.1C7C.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-1F11 ; [.1C7C.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER EPSILON WITH DASIA
-1F19 ; [.1C7C.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA
-1F15 ; [.1C7C.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F1D ; [.1C7C.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F13 ; [.1C7C.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-1F1B ; [.1C7C.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-03AD ; [.1C7C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH TONOS
-1F73 ; [.1C7C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH OXIA
-0388 ; [.1C7C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH TONOS
-1FC9 ; [.1C7C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH OXIA
-1F72 ; [.1C7C.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH VARIA
-1FC8 ; [.1C7C.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH VARIA
-03DD ; [.1C7D.0020.0002] # GREEK SMALL LETTER DIGAMMA
-1D7CB ; [.1C7D.0020.0005] # MATHEMATICAL BOLD SMALL DIGAMMA
-03DC ; [.1C7D.0020.0008] # GREEK LETTER DIGAMMA
-1D7CA ; [.1C7D.0020.000B] # MATHEMATICAL BOLD CAPITAL DIGAMMA
-0377 ; [.1C7E.0020.0002] # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-0376 ; [.1C7E.0020.0008] # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-03DB ; [.1C7F.0020.0002] # GREEK SMALL LETTER STIGMA
-03DA ; [.1C7F.0020.0008] # GREEK LETTER STIGMA
-03B6 ; [.1C80.0020.0002] # GREEK SMALL LETTER ZETA
-1D6C7 ; [.1C80.0020.0005] # MATHEMATICAL BOLD SMALL ZETA
-1D701 ; [.1C80.0020.0005] # MATHEMATICAL ITALIC SMALL ZETA
-1D73B ; [.1C80.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ZETA
-1D775 ; [.1C80.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
-1D7AF ; [.1C80.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
-0396 ; [.1C80.0020.0008] # GREEK CAPITAL LETTER ZETA
-1D6AD ; [.1C80.0020.000B] # MATHEMATICAL BOLD CAPITAL ZETA
-1D6E7 ; [.1C80.0020.000B] # MATHEMATICAL ITALIC CAPITAL ZETA
-1D721 ; [.1C80.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ZETA
-1D75B ; [.1C80.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
-1D795 ; [.1C80.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
-0371 ; [.1C81.0020.0002] # GREEK SMALL LETTER HETA
-0370 ; [.1C81.0020.0008] # GREEK CAPITAL LETTER HETA
-03B7 ; [.1C82.0020.0002] # GREEK SMALL LETTER ETA
-1D6C8 ; [.1C82.0020.0005] # MATHEMATICAL BOLD SMALL ETA
-1D702 ; [.1C82.0020.0005] # MATHEMATICAL ITALIC SMALL ETA
-1D73C ; [.1C82.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ETA
-1D776 ; [.1C82.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ETA
-1D7B0 ; [.1C82.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
-0397 ; [.1C82.0020.0008] # GREEK CAPITAL LETTER ETA
-1D6AE ; [.1C82.0020.000B] # MATHEMATICAL BOLD CAPITAL ETA
-1D6E8 ; [.1C82.0020.000B] # MATHEMATICAL ITALIC CAPITAL ETA
-1D722 ; [.1C82.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ETA
-1D75C ; [.1C82.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
-1D796 ; [.1C82.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
-1F20 ; [.1C82.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ETA WITH PSILI
-1F28 ; [.1C82.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ETA WITH PSILI
-1F24 ; [.1C82.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-1F2C ; [.1C82.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-1F94 ; [.1C82.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1F9C ; [.1C82.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F22 ; [.1C82.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-1F2A ; [.1C82.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-1F92 ; [.1C82.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1F9A ; [.1C82.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F26 ; [.1C82.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-1F2E ; [.1C82.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-1F96 ; [.1C82.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1F9E ; [.1C82.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1F90 ; [.1C82.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-1F98 ; [.1C82.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-1F21 ; [.1C82.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ETA WITH DASIA
-1F29 ; [.1C82.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ETA WITH DASIA
-1F25 ; [.1C82.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-1F2D ; [.1C82.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-1F95 ; [.1C82.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1F9D ; [.1C82.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F23 ; [.1C82.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-1F2B ; [.1C82.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-1F93 ; [.1C82.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1F9B ; [.1C82.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F27 ; [.1C82.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-1F2F ; [.1C82.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-1F97 ; [.1C82.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1F9F ; [.1C82.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1F91 ; [.1C82.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-1F99 ; [.1C82.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-03AE ; [.1C82.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH TONOS
-1F75 ; [.1C82.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH OXIA
-0389 ; [.1C82.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH TONOS
-1FCB ; [.1C82.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH OXIA
-1FC4 ; [.1C82.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1F74 ; [.1C82.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH VARIA
-1FCA ; [.1C82.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH VARIA
-1FC2 ; [.1C82.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-1FC6 ; [.1C82.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI
-1FC7 ; [.1C82.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FC3 ; [.1C82.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-1FCC ; [.1C82.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-03B8 ; [.1C83.0020.0002] # GREEK SMALL LETTER THETA
-03D1 ; [.1C83.0020.0004] # GREEK THETA SYMBOL
-1D6C9 ; [.1C83.0020.0005] # MATHEMATICAL BOLD SMALL THETA
-1D6DD ; [.1C83.0020.0005] # MATHEMATICAL BOLD THETA SYMBOL
-1D703 ; [.1C83.0020.0005] # MATHEMATICAL ITALIC SMALL THETA
-1D717 ; [.1C83.0020.0005] # MATHEMATICAL ITALIC THETA SYMBOL
-1D73D ; [.1C83.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL THETA
-1D751 ; [.1C83.0020.0005] # MATHEMATICAL BOLD ITALIC THETA SYMBOL
-1D777 ; [.1C83.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL THETA
-1D78B ; [.1C83.0020.0005] # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
-1D7B1 ; [.1C83.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
-1D7C5 ; [.1C83.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
-0398 ; [.1C83.0020.0008] # GREEK CAPITAL LETTER THETA
-03F4 ; [.1C83.0020.000A] # GREEK CAPITAL THETA SYMBOL
-1D6AF ; [.1C83.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA
-1D6B9 ; [.1C83.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA SYMBOL
-1D6E9 ; [.1C83.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA
-1D6F3 ; [.1C83.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
-1D723 ; [.1C83.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA
-1D72D ; [.1C83.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
-1D75D ; [.1C83.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
-1D767 ; [.1C83.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
-1D797 ; [.1C83.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
-1D7A1 ; [.1C83.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
-1DBF ; [.1C83.0020.0014] # MODIFIER LETTER SMALL THETA
-03B9 ; [.1C84.0020.0002] # GREEK SMALL LETTER IOTA
-1FBE ; [.1C84.0020.0002] # GREEK PROSGEGRAMMENI
-037A ; [.1C84.0020.0004] # GREEK YPOGEGRAMMENI
-1D6CA ; [.1C84.0020.0005] # MATHEMATICAL BOLD SMALL IOTA
-1D704 ; [.1C84.0020.0005] # MATHEMATICAL ITALIC SMALL IOTA
-1D73E ; [.1C84.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL IOTA
-1D778 ; [.1C84.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
-1D7B2 ; [.1C84.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
-0399 ; [.1C84.0020.0008] # GREEK CAPITAL LETTER IOTA
-1D6B0 ; [.1C84.0020.000B] # MATHEMATICAL BOLD CAPITAL IOTA
-1D6EA ; [.1C84.0020.000B] # MATHEMATICAL ITALIC CAPITAL IOTA
-1D724 ; [.1C84.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL IOTA
-1D75E ; [.1C84.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
-1D798 ; [.1C84.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
-1F30 ; [.1C84.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER IOTA WITH PSILI
-1F38 ; [.1C84.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI
-1F34 ; [.1C84.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-1F3C ; [.1C84.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-1F32 ; [.1C84.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-1F3A ; [.1C84.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-1F36 ; [.1C84.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F3E ; [.1C84.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-1F31 ; [.1C84.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER IOTA WITH DASIA
-1F39 ; [.1C84.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA
-1F35 ; [.1C84.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-1F3D ; [.1C84.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-1F33 ; [.1C84.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-1F3B ; [.1C84.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-1F37 ; [.1C84.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-1F3F ; [.1C84.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-03AF ; [.1C84.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH TONOS
-1F77 ; [.1C84.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH OXIA
-038A ; [.1C84.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH TONOS
-1FDB ; [.1C84.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH OXIA
-1F76 ; [.1C84.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH VARIA
-1FDA ; [.1C84.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH VARIA
-1FD0 ; [.1C84.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER IOTA WITH VRACHY
-1FD8 ; [.1C84.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER IOTA WITH VRACHY
-1FD6 ; [.1C84.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PERISPOMENI
-03CA ; [.1C84.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA
-03AA ; [.1C84.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-0390 ; [.1C84.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-1FD3 ; [.1C84.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD2 ; [.1C84.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-1FD7 ; [.1C84.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-1FD1 ; [.1C84.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER IOTA WITH MACRON
-1FD9 ; [.1C84.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER IOTA WITH MACRON
-03F3 ; [.1C85.0020.0002] # GREEK LETTER YOT
-037F ; [.1C85.0020.0008] # GREEK CAPITAL LETTER YOT
-03BA ; [.1C86.0020.0002] # GREEK SMALL LETTER KAPPA
-03F0 ; [.1C86.0020.0004] # GREEK KAPPA SYMBOL
-1D6CB ; [.1C86.0020.0005] # MATHEMATICAL BOLD SMALL KAPPA
-1D6DE ; [.1C86.0020.0005] # MATHEMATICAL BOLD KAPPA SYMBOL
-1D705 ; [.1C86.0020.0005] # MATHEMATICAL ITALIC SMALL KAPPA
-1D718 ; [.1C86.0020.0005] # MATHEMATICAL ITALIC KAPPA SYMBOL
-1D73F ; [.1C86.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL KAPPA
-1D752 ; [.1C86.0020.0005] # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
-1D779 ; [.1C86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
-1D78C ; [.1C86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
-1D7B3 ; [.1C86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
-1D7C6 ; [.1C86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
-039A ; [.1C86.0020.0008] # GREEK CAPITAL LETTER KAPPA
-1D6B1 ; [.1C86.0020.000B] # MATHEMATICAL BOLD CAPITAL KAPPA
-1D6EB ; [.1C86.0020.000B] # MATHEMATICAL ITALIC CAPITAL KAPPA
-1D725 ; [.1C86.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
-1D75F ; [.1C86.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
-1D799 ; [.1C86.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
-03D7 ; [.1C86.0020.0004][.1C77.0020.0004][.1C84.0020.0004] # GREEK KAI SYMBOL
-03CF ; [.1C86.0020.000A][.1C77.0020.0004][.1C84.0020.0004] # GREEK CAPITAL KAI SYMBOL
-03BB ; [.1C87.0020.0002] # GREEK SMALL LETTER LAMDA
-1D6CC ; [.1C87.0020.0005] # MATHEMATICAL BOLD SMALL LAMDA
-1D706 ; [.1C87.0020.0005] # MATHEMATICAL ITALIC SMALL LAMDA
-1D740 ; [.1C87.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL LAMDA
-1D77A ; [.1C87.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
-1D7B4 ; [.1C87.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
-039B ; [.1C87.0020.0008] # GREEK CAPITAL LETTER LAMDA
-1D6B2 ; [.1C87.0020.000B] # MATHEMATICAL BOLD CAPITAL LAMDA
-1D6EC ; [.1C87.0020.000B] # MATHEMATICAL ITALIC CAPITAL LAMDA
-1D726 ; [.1C87.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
-1D760 ; [.1C87.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
-1D79A ; [.1C87.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
-1D27 ; [.1C88.0020.0002] # GREEK LETTER SMALL CAPITAL LAMDA
-03BC ; [.1C89.0020.0002] # GREEK SMALL LETTER MU
-00B5 ; [.1C89.0020.0004] # MICRO SIGN
-1D6CD ; [.1C89.0020.0005] # MATHEMATICAL BOLD SMALL MU
-1D707 ; [.1C89.0020.0005] # MATHEMATICAL ITALIC SMALL MU
-1D741 ; [.1C89.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL MU
-1D77B ; [.1C89.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL MU
-1D7B5 ; [.1C89.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
-039C ; [.1C89.0020.0008] # GREEK CAPITAL LETTER MU
-1D6B3 ; [.1C89.0020.000B] # MATHEMATICAL BOLD CAPITAL MU
-1D6ED ; [.1C89.0020.000B] # MATHEMATICAL ITALIC CAPITAL MU
-1D727 ; [.1C89.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL MU
-1D761 ; [.1C89.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
-1D79B ; [.1C89.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
-3382 ; [.1C89.0020.001C][.190C.0020.001D] # SQUARE MU A
-338C ; [.1C89.0020.001C][.19A9.0020.001D] # SQUARE MU F
-338D ; [.1C89.0020.001C][.19B8.0020.001C] # SQUARE MU G
-3395 ; [.1C89.0020.001C][.1A3B.0020.001C] # SQUARE MU L
-339B ; [.1C89.0020.001C][.1A6E.0020.001C] # SQUARE MU M
-33B2 ; [.1C89.0020.001C][.1B33.0020.001C] # SQUARE MU S
-33B6 ; [.1C89.0020.001C][.1BA5.0020.001D] # SQUARE MU V
-33BC ; [.1C89.0020.001C][.1BB7.0020.001D] # SQUARE MU W
-03BD ; [.1C8A.0020.0002] # GREEK SMALL LETTER NU
-1D6CE ; [.1C8A.0020.0005] # MATHEMATICAL BOLD SMALL NU
-1D708 ; [.1C8A.0020.0005] # MATHEMATICAL ITALIC SMALL NU
-1D742 ; [.1C8A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL NU
-1D77C ; [.1C8A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL NU
-1D7B6 ; [.1C8A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
-039D ; [.1C8A.0020.0008] # GREEK CAPITAL LETTER NU
-1D6B4 ; [.1C8A.0020.000B] # MATHEMATICAL BOLD CAPITAL NU
-1D6EE ; [.1C8A.0020.000B] # MATHEMATICAL ITALIC CAPITAL NU
-1D728 ; [.1C8A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL NU
-1D762 ; [.1C8A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
-1D79C ; [.1C8A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
-03BE ; [.1C8B.0020.0002] # GREEK SMALL LETTER XI
-1D6CF ; [.1C8B.0020.0005] # MATHEMATICAL BOLD SMALL XI
-1D709 ; [.1C8B.0020.0005] # MATHEMATICAL ITALIC SMALL XI
-1D743 ; [.1C8B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL XI
-1D77D ; [.1C8B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL XI
-1D7B7 ; [.1C8B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
-039E ; [.1C8B.0020.0008] # GREEK CAPITAL LETTER XI
-1D6B5 ; [.1C8B.0020.000B] # MATHEMATICAL BOLD CAPITAL XI
-1D6EF ; [.1C8B.0020.000B] # MATHEMATICAL ITALIC CAPITAL XI
-1D729 ; [.1C8B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL XI
-1D763 ; [.1C8B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
-1D79D ; [.1C8B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
-03BF ; [.1C8C.0020.0002] # GREEK SMALL LETTER OMICRON
-1D6D0 ; [.1C8C.0020.0005] # MATHEMATICAL BOLD SMALL OMICRON
-1D70A ; [.1C8C.0020.0005] # MATHEMATICAL ITALIC SMALL OMICRON
-1D744 ; [.1C8C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMICRON
-1D77E ; [.1C8C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
-1D7B8 ; [.1C8C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
-039F ; [.1C8C.0020.0008] # GREEK CAPITAL LETTER OMICRON
-1D6B6 ; [.1C8C.0020.000B] # MATHEMATICAL BOLD CAPITAL OMICRON
-1D6F0 ; [.1C8C.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMICRON
-1D72A ; [.1C8C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
-1D764 ; [.1C8C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
-1D79E ; [.1C8C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
-1F40 ; [.1C8C.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMICRON WITH PSILI
-1F48 ; [.1C8C.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI
-1F44 ; [.1C8C.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-1F4C ; [.1C8C.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-1F42 ; [.1C8C.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-1F4A ; [.1C8C.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-1F41 ; [.1C8C.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMICRON WITH DASIA
-1F49 ; [.1C8C.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA
-1F45 ; [.1C8C.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F4D ; [.1C8C.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F43 ; [.1C8C.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-1F4B ; [.1C8C.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-03CC ; [.1C8C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH TONOS
-1F79 ; [.1C8C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH OXIA
-038C ; [.1C8C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH TONOS
-1FF9 ; [.1C8C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH OXIA
-1F78 ; [.1C8C.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH VARIA
-1FF8 ; [.1C8C.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH VARIA
-03C0 ; [.1C8D.0020.0002] # GREEK SMALL LETTER PI
-03D6 ; [.1C8D.0020.0004] # GREEK PI SYMBOL
-213C ; [.1C8D.0020.0005] # DOUBLE-STRUCK SMALL PI
-1D6D1 ; [.1C8D.0020.0005] # MATHEMATICAL BOLD SMALL PI
-1D6E1 ; [.1C8D.0020.0005] # MATHEMATICAL BOLD PI SYMBOL
-1D70B ; [.1C8D.0020.0005] # MATHEMATICAL ITALIC SMALL PI
-1D71B ; [.1C8D.0020.0005] # MATHEMATICAL ITALIC PI SYMBOL
-1D745 ; [.1C8D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PI
-1D755 ; [.1C8D.0020.0005] # MATHEMATICAL BOLD ITALIC PI SYMBOL
-1D77F ; [.1C8D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PI
-1D78F ; [.1C8D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
-1D7B9 ; [.1C8D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
-1D7C9 ; [.1C8D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-03A0 ; [.1C8D.0020.0008] # GREEK CAPITAL LETTER PI
-213F ; [.1C8D.0020.000B] # DOUBLE-STRUCK CAPITAL PI
-1D6B7 ; [.1C8D.0020.000B] # MATHEMATICAL BOLD CAPITAL PI
-1D6F1 ; [.1C8D.0020.000B] # MATHEMATICAL ITALIC CAPITAL PI
-1D72B ; [.1C8D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PI
-1D765 ; [.1C8D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
-1D79F ; [.1C8D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
-1D28 ; [.1C8E.0020.0002] # GREEK LETTER SMALL CAPITAL PI
-03FB ; [.1C8F.0020.0002] # GREEK SMALL LETTER SAN
-03FA ; [.1C8F.0020.0008] # GREEK CAPITAL LETTER SAN
-03DF ; [.1C90.0020.0002] # GREEK SMALL LETTER KOPPA
-03DE ; [.1C90.0020.0008] # GREEK LETTER KOPPA
-03D9 ; [.1C91.0020.0002] # GREEK SMALL LETTER ARCHAIC KOPPA
-03D8 ; [.1C91.0020.0008] # GREEK LETTER ARCHAIC KOPPA
-03C1 ; [.1C92.0020.0002] # GREEK SMALL LETTER RHO
-03F1 ; [.1C92.0020.0004] # GREEK RHO SYMBOL
-1D6D2 ; [.1C92.0020.0005] # MATHEMATICAL BOLD SMALL RHO
-1D6E0 ; [.1C92.0020.0005] # MATHEMATICAL BOLD RHO SYMBOL
-1D70C ; [.1C92.0020.0005] # MATHEMATICAL ITALIC SMALL RHO
-1D71A ; [.1C92.0020.0005] # MATHEMATICAL ITALIC RHO SYMBOL
-1D746 ; [.1C92.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL RHO
-1D754 ; [.1C92.0020.0005] # MATHEMATICAL BOLD ITALIC RHO SYMBOL
-1D780 ; [.1C92.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL RHO
-1D78E ; [.1C92.0020.0005] # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
-1D7BA ; [.1C92.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
-1D7C8 ; [.1C92.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
-03A1 ; [.1C92.0020.0008] # GREEK CAPITAL LETTER RHO
-1D6B8 ; [.1C92.0020.000B] # MATHEMATICAL BOLD CAPITAL RHO
-1D6F2 ; [.1C92.0020.000B] # MATHEMATICAL ITALIC CAPITAL RHO
-1D72C ; [.1C92.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL RHO
-1D766 ; [.1C92.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
-1D7A0 ; [.1C92.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
-1D68 ; [.1C92.0020.0015] # GREEK SUBSCRIPT SMALL LETTER RHO
-1FE4 ; [.1C92.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER RHO WITH PSILI
-1FE5 ; [.1C92.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER RHO WITH DASIA
-1FEC ; [.1C92.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER RHO WITH DASIA
-1D29 ; [.1C93.0020.0002] # GREEK LETTER SMALL CAPITAL RHO
-03FC ; [.1C94.0020.0002] # GREEK RHO WITH STROKE SYMBOL
-03C3 ; [.1C95.0020.0002] # GREEK SMALL LETTER SIGMA
-03F2 ; [.1C95.0020.0004] # GREEK LUNATE SIGMA SYMBOL
-1D6D3 ; [.1C95.0020.0005] # MATHEMATICAL BOLD SMALL FINAL SIGMA
-1D6D4 ; [.1C95.0020.0005] # MATHEMATICAL BOLD SMALL SIGMA
-1D70D ; [.1C95.0020.0005] # MATHEMATICAL ITALIC SMALL FINAL SIGMA
-1D70E ; [.1C95.0020.0005] # MATHEMATICAL ITALIC SMALL SIGMA
-1D747 ; [.1C95.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
-1D748 ; [.1C95.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL SIGMA
-1D781 ; [.1C95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
-1D782 ; [.1C95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
-1D7BB ; [.1C95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
-1D7BC ; [.1C95.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
-03A3 ; [.1C95.0020.0008] # GREEK CAPITAL LETTER SIGMA
-03F9 ; [.1C95.0020.000A] # GREEK CAPITAL LUNATE SIGMA SYMBOL
-1D6BA ; [.1C95.0020.000B] # MATHEMATICAL BOLD CAPITAL SIGMA
-1D6F4 ; [.1C95.0020.000B] # MATHEMATICAL ITALIC CAPITAL SIGMA
-1D72E ; [.1C95.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
-1D768 ; [.1C95.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
-1D7A2 ; [.1C95.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
-03C2 ; [.1C95.0020.0019] # GREEK SMALL LETTER FINAL SIGMA
-037C ; [.1C96.0020.0002] # GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-03FE ; [.1C96.0020.0008] # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-037B ; [.1C97.0020.0002] # GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-03FD ; [.1C97.0020.0008] # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-037D ; [.1C98.0020.0002] # GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-03FF ; [.1C98.0020.0008] # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-03C4 ; [.1C99.0020.0002] # GREEK SMALL LETTER TAU
-1D6D5 ; [.1C99.0020.0005] # MATHEMATICAL BOLD SMALL TAU
-1D70F ; [.1C99.0020.0005] # MATHEMATICAL ITALIC SMALL TAU
-1D749 ; [.1C99.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL TAU
-1D783 ; [.1C99.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL TAU
-1D7BD ; [.1C99.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
-03A4 ; [.1C99.0020.0008] # GREEK CAPITAL LETTER TAU
-1D6BB ; [.1C99.0020.000B] # MATHEMATICAL BOLD CAPITAL TAU
-1D6F5 ; [.1C99.0020.000B] # MATHEMATICAL ITALIC CAPITAL TAU
-1D72F ; [.1C99.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL TAU
-1D769 ; [.1C99.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
-1D7A3 ; [.1C99.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
-03C5 ; [.1C9A.0020.0002] # GREEK SMALL LETTER UPSILON
-1D6D6 ; [.1C9A.0020.0005] # MATHEMATICAL BOLD SMALL UPSILON
-1D710 ; [.1C9A.0020.0005] # MATHEMATICAL ITALIC SMALL UPSILON
-1D74A ; [.1C9A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL UPSILON
-1D784 ; [.1C9A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
-1D7BE ; [.1C9A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
-03A5 ; [.1C9A.0020.0008] # GREEK CAPITAL LETTER UPSILON
-03D2 ; [.1C9A.0020.000A] # GREEK UPSILON WITH HOOK SYMBOL
-1D6BC ; [.1C9A.0020.000B] # MATHEMATICAL BOLD CAPITAL UPSILON
-1D6F6 ; [.1C9A.0020.000B] # MATHEMATICAL ITALIC CAPITAL UPSILON
-1D730 ; [.1C9A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
-1D76A ; [.1C9A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
-1D7A4 ; [.1C9A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
-1F50 ; [.1C9A.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER UPSILON WITH PSILI
-1F54 ; [.1C9A.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-1F52 ; [.1C9A.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-1F56 ; [.1C9A.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-1F51 ; [.1C9A.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER UPSILON WITH DASIA
-1F59 ; [.1C9A.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F55 ; [.1C9A.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-1F5D ; [.1C9A.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F53 ; [.1C9A.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-1F5B ; [.1C9A.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F57 ; [.1C9A.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F5F ; [.1C9A.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-03CD ; [.1C9A.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH TONOS
-1F7B ; [.1C9A.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH OXIA
-038E ; [.1C9A.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH TONOS
-1FEB ; [.1C9A.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH OXIA
-03D3 ; [.1C9A.0020.000A][.0000.0024.0002] # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-1F7A ; [.1C9A.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH VARIA
-1FEA ; [.1C9A.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH VARIA
-1FE0 ; [.1C9A.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER UPSILON WITH VRACHY
-1FE8 ; [.1C9A.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER UPSILON WITH VRACHY
-1FE6 ; [.1C9A.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-03CB ; [.1C9A.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-03AB ; [.1C9A.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-03D4 ; [.1C9A.0020.000A][.0000.002B.0002] # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-03B0 ; [.1C9A.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-1FE3 ; [.1C9A.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-1FE2 ; [.1C9A.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-1FE7 ; [.1C9A.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-1FE1 ; [.1C9A.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER UPSILON WITH MACRON
-1FE9 ; [.1C9A.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER UPSILON WITH MACRON
-03C6 ; [.1C9B.0020.0002] # GREEK SMALL LETTER PHI
-03D5 ; [.1C9B.0020.0004] # GREEK PHI SYMBOL
-1D6D7 ; [.1C9B.0020.0005] # MATHEMATICAL BOLD SMALL PHI
-1D6DF ; [.1C9B.0020.0005] # MATHEMATICAL BOLD PHI SYMBOL
-1D711 ; [.1C9B.0020.0005] # MATHEMATICAL ITALIC SMALL PHI
-1D719 ; [.1C9B.0020.0005] # MATHEMATICAL ITALIC PHI SYMBOL
-1D74B ; [.1C9B.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PHI
-1D753 ; [.1C9B.0020.0005] # MATHEMATICAL BOLD ITALIC PHI SYMBOL
-1D785 ; [.1C9B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PHI
-1D78D ; [.1C9B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
-1D7BF ; [.1C9B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
-1D7C7 ; [.1C9B.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
-03A6 ; [.1C9B.0020.0008] # GREEK CAPITAL LETTER PHI
-1D6BD ; [.1C9B.0020.000B] # MATHEMATICAL BOLD CAPITAL PHI
-1D6F7 ; [.1C9B.0020.000B] # MATHEMATICAL ITALIC CAPITAL PHI
-1D731 ; [.1C9B.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PHI
-1D76B ; [.1C9B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
-1D7A5 ; [.1C9B.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
-1D60 ; [.1C9B.0020.0014] # MODIFIER LETTER SMALL GREEK PHI
-1D69 ; [.1C9B.0020.0015] # GREEK SUBSCRIPT SMALL LETTER PHI
-03C7 ; [.1C9C.0020.0002] # GREEK SMALL LETTER CHI
-1D6D8 ; [.1C9C.0020.0005] # MATHEMATICAL BOLD SMALL CHI
-1D712 ; [.1C9C.0020.0005] # MATHEMATICAL ITALIC SMALL CHI
-1D74C ; [.1C9C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL CHI
-1D786 ; [.1C9C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL CHI
-1D7C0 ; [.1C9C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
-03A7 ; [.1C9C.0020.0008] # GREEK CAPITAL LETTER CHI
-1D6BE ; [.1C9C.0020.000B] # MATHEMATICAL BOLD CAPITAL CHI
-1D6F8 ; [.1C9C.0020.000B] # MATHEMATICAL ITALIC CAPITAL CHI
-1D732 ; [.1C9C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL CHI
-1D76C ; [.1C9C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
-1D7A6 ; [.1C9C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
-1D61 ; [.1C9C.0020.0014] # MODIFIER LETTER SMALL CHI
-1D6A ; [.1C9C.0020.0015] # GREEK SUBSCRIPT SMALL LETTER CHI
-03C8 ; [.1C9D.0020.0002] # GREEK SMALL LETTER PSI
-1D6D9 ; [.1C9D.0020.0005] # MATHEMATICAL BOLD SMALL PSI
-1D713 ; [.1C9D.0020.0005] # MATHEMATICAL ITALIC SMALL PSI
-1D74D ; [.1C9D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PSI
-1D787 ; [.1C9D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PSI
-1D7C1 ; [.1C9D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
-03A8 ; [.1C9D.0020.0008] # GREEK CAPITAL LETTER PSI
-1D6BF ; [.1C9D.0020.000B] # MATHEMATICAL BOLD CAPITAL PSI
-1D6F9 ; [.1C9D.0020.000B] # MATHEMATICAL ITALIC CAPITAL PSI
-1D733 ; [.1C9D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PSI
-1D76D ; [.1C9D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
-1D7A7 ; [.1C9D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
-1D2A ; [.1C9E.0020.0002] # GREEK LETTER SMALL CAPITAL PSI
-03C9 ; [.1C9F.0020.0002] # GREEK SMALL LETTER OMEGA
-1D6DA ; [.1C9F.0020.0005] # MATHEMATICAL BOLD SMALL OMEGA
-1D714 ; [.1C9F.0020.0005] # MATHEMATICAL ITALIC SMALL OMEGA
-1D74E ; [.1C9F.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D788 ; [.1C9F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D7C2 ; [.1C9F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-03A9 ; [.1C9F.0020.0008] # GREEK CAPITAL LETTER OMEGA
-2126 ; [.1C9F.0020.0008] # OHM SIGN
-1D6C0 ; [.1C9F.0020.000B] # MATHEMATICAL BOLD CAPITAL OMEGA
-1D6FA ; [.1C9F.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMEGA
-1D734 ; [.1C9F.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D76E ; [.1C9F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D7A8 ; [.1C9F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1F60 ; [.1C9F.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMEGA WITH PSILI
-1F68 ; [.1C9F.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI
-1F64 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-1F6C ; [.1C9F.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-1FA4 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-1FAC ; [.1C9F.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-1F62 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-1F6A ; [.1C9F.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-1FA2 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-1FAA ; [.1C9F.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-1F66 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1F6E ; [.1C9F.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-1FA6 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-1FAE ; [.1C9F.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-1FA0 ; [.1C9F.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-1FA8 ; [.1C9F.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-1F61 ; [.1C9F.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMEGA WITH DASIA
-1F69 ; [.1C9F.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA
-1F65 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-1F6D ; [.1C9F.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-1FA5 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-1FAD ; [.1C9F.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-1F63 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-1F6B ; [.1C9F.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-1FA3 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-1FAB ; [.1C9F.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-1F67 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1F6F ; [.1C9F.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-1FA7 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-1FAF ; [.1C9F.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-1FA1 ; [.1C9F.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-1FA9 ; [.1C9F.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-03CE ; [.1C9F.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH TONOS
-1F7D ; [.1C9F.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH OXIA
-038F ; [.1C9F.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH TONOS
-1FFB ; [.1C9F.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH OXIA
-1FF4 ; [.1C9F.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1F7C ; [.1C9F.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH VARIA
-1FFA ; [.1C9F.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH VARIA
-1FF2 ; [.1C9F.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-1FF6 ; [.1C9F.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-1FF7 ; [.1C9F.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-1FF3 ; [.1C9F.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-1FFC ; [.1C9F.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-AB65 ; [.1CA0.0020.0002] # GREEK LETTER SMALL CAPITAL OMEGA
-03E1 ; [.1CA1.0020.0002] # GREEK SMALL LETTER SAMPI
-03E0 ; [.1CA1.0020.0008] # GREEK LETTER SAMPI
-0373 ; [.1CA2.0020.0002] # GREEK SMALL LETTER ARCHAIC SAMPI
-0372 ; [.1CA2.0020.0008] # GREEK CAPITAL LETTER ARCHAIC SAMPI
-03F8 ; [.1CA3.0020.0002] # GREEK SMALL LETTER SHO
-03F7 ; [.1CA3.0020.0008] # GREEK CAPITAL LETTER SHO
-2C81 ; [.1CA4.0020.0002] # COPTIC SMALL LETTER ALFA
-2C80 ; [.1CA4.0020.0008] # COPTIC CAPITAL LETTER ALFA
-2C83 ; [.1CA5.0020.0002] # COPTIC SMALL LETTER VIDA
-2C82 ; [.1CA5.0020.0008] # COPTIC CAPITAL LETTER VIDA
-2C85 ; [.1CA6.0020.0002] # COPTIC SMALL LETTER GAMMA
-2C84 ; [.1CA6.0020.0008] # COPTIC CAPITAL LETTER GAMMA
-2C87 ; [.1CA7.0020.0002] # COPTIC SMALL LETTER DALDA
-2C86 ; [.1CA7.0020.0008] # COPTIC CAPITAL LETTER DALDA
-2C89 ; [.1CA8.0020.0002] # COPTIC SMALL LETTER EIE
-2C88 ; [.1CA8.0020.0008] # COPTIC CAPITAL LETTER EIE
-2CB7 ; [.1CA9.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-2CB6 ; [.1CA9.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-2C8B ; [.1CAA.0020.0002] # COPTIC SMALL LETTER SOU
-2C8A ; [.1CAA.0020.0008] # COPTIC CAPITAL LETTER SOU
-2C8D ; [.1CAB.0020.0002] # COPTIC SMALL LETTER ZATA
-2C8C ; [.1CAB.0020.0008] # COPTIC CAPITAL LETTER ZATA
-2C8F ; [.1CAC.0020.0002] # COPTIC SMALL LETTER HATE
-2C8E ; [.1CAC.0020.0008] # COPTIC CAPITAL LETTER HATE
-2C91 ; [.1CAD.0020.0002] # COPTIC SMALL LETTER THETHE
-2C90 ; [.1CAD.0020.0008] # COPTIC CAPITAL LETTER THETHE
-2C93 ; [.1CAE.0020.0002] # COPTIC SMALL LETTER IAUDA
-2C92 ; [.1CAE.0020.0008] # COPTIC CAPITAL LETTER IAUDA
-2C95 ; [.1CAF.0020.0002] # COPTIC SMALL LETTER KAPA
-2C94 ; [.1CAF.0020.0008] # COPTIC CAPITAL LETTER KAPA
-2CE4 ; [.1CAF.0020.0004][.1CA4.0020.0004][.1CAE.0020.0004] # COPTIC SYMBOL KAI
-2CB9 ; [.1CB0.0020.0002] # COPTIC SMALL LETTER DIALECT-P KAPA
-2CB8 ; [.1CB0.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P KAPA
-2C97 ; [.1CB1.0020.0002] # COPTIC SMALL LETTER LAULA
-2C96 ; [.1CB1.0020.0008] # COPTIC CAPITAL LETTER LAULA
-2C99 ; [.1CB2.0020.0002] # COPTIC SMALL LETTER MI
-2C98 ; [.1CB2.0020.0008] # COPTIC CAPITAL LETTER MI
-2C9B ; [.1CB3.0020.0002] # COPTIC SMALL LETTER NI
-2C9A ; [.1CB3.0020.0008] # COPTIC CAPITAL LETTER NI
-2CBB ; [.1CB4.0020.0002] # COPTIC SMALL LETTER DIALECT-P NI
-2CBA ; [.1CB4.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P NI
-2CBD ; [.1CB5.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-2CBC ; [.1CB5.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-2C9D ; [.1CB6.0020.0002] # COPTIC SMALL LETTER KSI
-2C9C ; [.1CB6.0020.0008] # COPTIC CAPITAL LETTER KSI
-2C9F ; [.1CB7.0020.0002] # COPTIC SMALL LETTER O
-2C9E ; [.1CB7.0020.0008] # COPTIC CAPITAL LETTER O
-2CA1 ; [.1CB8.0020.0002] # COPTIC SMALL LETTER PI
-2CA0 ; [.1CB8.0020.0008] # COPTIC CAPITAL LETTER PI
-2CA3 ; [.1CB9.0020.0002] # COPTIC SMALL LETTER RO
-2CA2 ; [.1CB9.0020.0008] # COPTIC CAPITAL LETTER RO
-2CA5 ; [.1CBA.0020.0002] # COPTIC SMALL LETTER SIMA
-2CA4 ; [.1CBA.0020.0008] # COPTIC CAPITAL LETTER SIMA
-2CA7 ; [.1CBB.0020.0002] # COPTIC SMALL LETTER TAU
-2CA6 ; [.1CBB.0020.0008] # COPTIC CAPITAL LETTER TAU
-2CA9 ; [.1CBC.0020.0002] # COPTIC SMALL LETTER UA
-2CA8 ; [.1CBC.0020.0008] # COPTIC CAPITAL LETTER UA
-2CAB ; [.1CBD.0020.0002] # COPTIC SMALL LETTER FI
-2CAA ; [.1CBD.0020.0008] # COPTIC CAPITAL LETTER FI
-2CAD ; [.1CBE.0020.0002] # COPTIC SMALL LETTER KHI
-2CAC ; [.1CBE.0020.0008] # COPTIC CAPITAL LETTER KHI
-2CAF ; [.1CBF.0020.0002] # COPTIC SMALL LETTER PSI
-2CAE ; [.1CBF.0020.0008] # COPTIC CAPITAL LETTER PSI
-2CB1 ; [.1CC0.0020.0002] # COPTIC SMALL LETTER OOU
-2CB0 ; [.1CC0.0020.0008] # COPTIC CAPITAL LETTER OOU
-2CBF ; [.1CC1.0020.0002] # COPTIC SMALL LETTER OLD COPTIC OOU
-2CBE ; [.1CC1.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC OOU
-2CC1 ; [.1CC2.0020.0002] # COPTIC SMALL LETTER SAMPI
-2CC0 ; [.1CC2.0020.0008] # COPTIC CAPITAL LETTER SAMPI
-03E3 ; [.1CC3.0020.0002] # COPTIC SMALL LETTER SHEI
-03E2 ; [.1CC3.0020.0008] # COPTIC CAPITAL LETTER SHEI
-2CEC ; [.1CC4.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
-2CEB ; [.1CC4.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
-2CC3 ; [.1CC5.0020.0002] # COPTIC SMALL LETTER CROSSED SHEI
-2CC2 ; [.1CC5.0020.0008] # COPTIC CAPITAL LETTER CROSSED SHEI
-2CC5 ; [.1CC6.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHEI
-2CC4 ; [.1CC6.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHEI
-2CC7 ; [.1CC7.0020.0002] # COPTIC SMALL LETTER OLD COPTIC ESH
-2CC6 ; [.1CC7.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC ESH
-03E5 ; [.1CC8.0020.0002] # COPTIC SMALL LETTER FEI
-03E4 ; [.1CC8.0020.0008] # COPTIC CAPITAL LETTER FEI
-03E7 ; [.1CC9.0020.0002] # COPTIC SMALL LETTER KHEI
-03E6 ; [.1CC9.0020.0008] # COPTIC CAPITAL LETTER KHEI
-2CF3 ; [.1CCA.0020.0002] # COPTIC SMALL LETTER BOHAIRIC KHEI
-2CF2 ; [.1CCA.0020.0008] # COPTIC CAPITAL LETTER BOHAIRIC KHEI
-2CC9 ; [.1CCB.0020.0002] # COPTIC SMALL LETTER AKHMIMIC KHEI
-2CC8 ; [.1CCB.0020.0008] # COPTIC CAPITAL LETTER AKHMIMIC KHEI
-03E9 ; [.1CCC.0020.0002] # COPTIC SMALL LETTER HORI
-03E8 ; [.1CCC.0020.0008] # COPTIC CAPITAL LETTER HORI
-2CCB ; [.1CCD.0020.0002] # COPTIC SMALL LETTER DIALECT-P HORI
-2CCA ; [.1CCD.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P HORI
-2CCD ; [.1CCE.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HORI
-2CCC ; [.1CCE.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HORI
-2CCF ; [.1CCF.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HA
-2CCE ; [.1CCF.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HA
-2CD1 ; [.1CD0.0020.0002] # COPTIC SMALL LETTER L-SHAPED HA
-2CD0 ; [.1CD0.0020.0008] # COPTIC CAPITAL LETTER L-SHAPED HA
-2CD3 ; [.1CD1.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HEI
-2CD2 ; [.1CD1.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HEI
-2CD5 ; [.1CD2.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HAT
-2CD4 ; [.1CD2.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HAT
-03EB ; [.1CD3.0020.0002] # COPTIC SMALL LETTER GANGIA
-03EA ; [.1CD3.0020.0008] # COPTIC CAPITAL LETTER GANGIA
-2CEE ; [.1CD4.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
-2CED ; [.1CD4.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
-2CD7 ; [.1CD5.0020.0002] # COPTIC SMALL LETTER OLD COPTIC GANGIA
-2CD6 ; [.1CD5.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-03ED ; [.1CD6.0020.0002] # COPTIC SMALL LETTER SHIMA
-03EC ; [.1CD6.0020.0008] # COPTIC CAPITAL LETTER SHIMA
-2CD9 ; [.1CD7.0020.0002] # COPTIC SMALL LETTER OLD COPTIC DJA
-2CD8 ; [.1CD7.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC DJA
-2CDB ; [.1CD8.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHIMA
-2CDA ; [.1CD8.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-2CDD ; [.1CD9.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN SHIMA
-2CDC ; [.1CD9.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-03EF ; [.1CDA.0020.0002] # COPTIC SMALL LETTER DEI
-03EE ; [.1CDA.0020.0008] # COPTIC CAPITAL LETTER DEI
-2CB3 ; [.1CDB.0020.0002] # COPTIC SMALL LETTER DIALECT-P ALEF
-2CB2 ; [.1CDB.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P ALEF
-2CB5 ; [.1CDC.0020.0002] # COPTIC SMALL LETTER OLD COPTIC AIN
-2CB4 ; [.1CDC.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC AIN
-2CDF ; [.1CDD.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NGI
-2CDE ; [.1CDD.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NGI
-2CE1 ; [.1CDE.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NYI
-2CE0 ; [.1CDE.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NYI
-2CE3 ; [.1CDF.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN WAU
-2CE2 ; [.1CDF.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN WAU
-0430 ; [.1CE0.0020.0002] # CYRILLIC SMALL LETTER A
-2DF6 ; [.1CE0.0020.0004] # COMBINING CYRILLIC LETTER A
-0410 ; [.1CE0.0020.0008] # CYRILLIC CAPITAL LETTER A
-04D1 ; [.1CE4.0020.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-0430 0306 ; [.1CE4.0020.0002] # CYRILLIC SMALL LETTER A WITH BREVE
-04D0 ; [.1CE4.0020.0008] # CYRILLIC CAPITAL LETTER A WITH BREVE
-0410 0306 ; [.1CE4.0020.0008] # CYRILLIC CAPITAL LETTER A WITH BREVE
-04D3 ; [.1CE8.0020.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-0430 0308 ; [.1CE8.0020.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
-04D2 ; [.1CE8.0020.0008] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-0410 0308 ; [.1CE8.0020.0008] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-04D9 ; [.1CEC.0020.0002] # CYRILLIC SMALL LETTER SCHWA
-04D8 ; [.1CEC.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA
-04DB ; [.1CF0.0020.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04D9 0308 ; [.1CF0.0020.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-04DA ; [.1CF0.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D8 0308 ; [.1CF0.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-04D5 ; [.1CF4.0020.0002] # CYRILLIC SMALL LIGATURE A IE
-04D4 ; [.1CF4.0020.0008] # CYRILLIC CAPITAL LIGATURE A IE
-0431 ; [.1CF8.0020.0002] # CYRILLIC SMALL LETTER BE
-2DE0 ; [.1CF8.0020.0004] # COMBINING CYRILLIC LETTER BE
-0411 ; [.1CF8.0020.0008] # CYRILLIC CAPITAL LETTER BE
-0432 ; [.1CFC.0020.0002] # CYRILLIC SMALL LETTER VE
-2DE1 ; [.1CFC.0020.0004] # COMBINING CYRILLIC LETTER VE
-0412 ; [.1CFC.0020.0008] # CYRILLIC CAPITAL LETTER VE
-0433 ; [.1D00.0020.0002] # CYRILLIC SMALL LETTER GHE
-2DE2 ; [.1D00.0020.0004] # COMBINING CYRILLIC LETTER GHE
-0413 ; [.1D00.0020.0008] # CYRILLIC CAPITAL LETTER GHE
-0491 ; [.1D00.0020.0004][.0000.0109.0004] # CYRILLIC SMALL LETTER GHE WITH UPTURN
-0490 ; [.1D00.0020.000A][.0000.0109.0004] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-0493 ; [.1D04.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE
-0492 ; [.1D04.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE
-04FB ; [.1D08.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-04FA ; [.1D08.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-0495 ; [.1D0C.0020.0002] # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-0494 ; [.1D0C.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-04F7 ; [.1D10.0020.0002] # CYRILLIC SMALL LETTER GHE WITH DESCENDER
-04F6 ; [.1D10.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-0434 ; [.1D14.0020.0002] # CYRILLIC SMALL LETTER DE
-2DE3 ; [.1D14.0020.0004] # COMBINING CYRILLIC LETTER DE
-0414 ; [.1D14.0020.0008] # CYRILLIC CAPITAL LETTER DE
-0501 ; [.1D18.0020.0002] # CYRILLIC SMALL LETTER KOMI DE
-0500 ; [.1D18.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DE
-A681 ; [.1D19.0020.0002] # CYRILLIC SMALL LETTER DWE
-A680 ; [.1D19.0020.0008] # CYRILLIC CAPITAL LETTER DWE
-0452 ; [.1D1A.0020.0002] # CYRILLIC SMALL LETTER DJE
-0402 ; [.1D1A.0020.0008] # CYRILLIC CAPITAL LETTER DJE
-A663 ; [.1D1E.0020.0002] # CYRILLIC SMALL LETTER SOFT DE
-A662 ; [.1D1E.0020.0008] # CYRILLIC CAPITAL LETTER SOFT DE
-0503 ; [.1D1F.0020.0002] # CYRILLIC SMALL LETTER KOMI DJE
-0502 ; [.1D1F.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DJE
-0453 ; [.1D20.0020.0002] # CYRILLIC SMALL LETTER GJE
-0433 0301 ; [.1D20.0020.0002] # CYRILLIC SMALL LETTER GJE
-0433 0341 ; [.1D20.0020.0002] # CYRILLIC SMALL LETTER GJE
-0403 ; [.1D20.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0413 0301 ; [.1D20.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0413 0341 ; [.1D20.0020.0008] # CYRILLIC CAPITAL LETTER GJE
-0499 ; [.1D24.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DESCENDER
-0498 ; [.1D24.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-0435 ; [.1D28.0020.0002] # CYRILLIC SMALL LETTER IE
-2DF7 ; [.1D28.0020.0004] # COMBINING CYRILLIC LETTER IE
-0415 ; [.1D28.0020.0008] # CYRILLIC CAPITAL LETTER IE
-0450 ; [.1D28.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER IE WITH GRAVE
-0400 ; [.1D28.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER IE WITH GRAVE
-0451 ; [.1D28.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER IO
-0401 ; [.1D28.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER IO
-04D7 ; [.1D2C.0020.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-0435 0306 ; [.1D2C.0020.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
-04D6 ; [.1D2C.0020.0008] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-0415 0306 ; [.1D2C.0020.0008] # CYRILLIC CAPITAL LETTER IE WITH BREVE
-0454 ; [.1D30.0020.0002] # CYRILLIC SMALL LETTER UKRAINIAN IE
-A674 ; [.1D30.0020.0004] # COMBINING CYRILLIC LETTER UKRAINIAN IE
-0404 ; [.1D30.0020.0008] # CYRILLIC CAPITAL LETTER UKRAINIAN IE
-0436 ; [.1D34.0020.0002] # CYRILLIC SMALL LETTER ZHE
-2DE4 ; [.1D34.0020.0004] # COMBINING CYRILLIC LETTER ZHE
-0416 ; [.1D34.0020.0008] # CYRILLIC CAPITAL LETTER ZHE
-04C2 ; [.1D34.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER ZHE WITH BREVE
-04C1 ; [.1D34.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-052B ; [.1D38.0020.0002] # CYRILLIC SMALL LETTER DZZHE
-052A ; [.1D38.0020.0008] # CYRILLIC CAPITAL LETTER DZZHE
-A685 ; [.1D39.0020.0002] # CYRILLIC SMALL LETTER ZHWE
-A684 ; [.1D39.0020.0008] # CYRILLIC CAPITAL LETTER ZHWE
-04DD ; [.1D3A.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-0436 0308 ; [.1D3A.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-04DC ; [.1D3A.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-0416 0308 ; [.1D3A.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-0497 ; [.1D3E.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-0496 ; [.1D3E.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-0437 ; [.1D42.0020.0002] # CYRILLIC SMALL LETTER ZE
-2DE5 ; [.1D42.0020.0004] # COMBINING CYRILLIC LETTER ZE
-0417 ; [.1D42.0020.0008] # CYRILLIC CAPITAL LETTER ZE
-A641 ; [.1D46.0020.0002] # CYRILLIC SMALL LETTER ZEMLYA
-A640 ; [.1D46.0020.0008] # CYRILLIC CAPITAL LETTER ZEMLYA
-0505 ; [.1D47.0020.0002] # CYRILLIC SMALL LETTER KOMI ZJE
-0504 ; [.1D47.0020.0008] # CYRILLIC CAPITAL LETTER KOMI ZJE
-0511 ; [.1D48.0020.0002] # CYRILLIC SMALL LETTER REVERSED ZE
-0510 ; [.1D48.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED ZE
-04DF ; [.1D49.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-0437 0308 ; [.1D49.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-04DE ; [.1D49.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-0417 0308 ; [.1D49.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-A643 ; [.1D4D.0020.0002] # CYRILLIC SMALL LETTER DZELO
-A642 ; [.1D4D.0020.0008] # CYRILLIC CAPITAL LETTER DZELO
-0455 ; [.1D4E.0020.0002] # CYRILLIC SMALL LETTER DZE
-0405 ; [.1D4E.0020.0008] # CYRILLIC CAPITAL LETTER DZE
-A645 ; [.1D52.0020.0002] # CYRILLIC SMALL LETTER REVERSED DZE
-A644 ; [.1D52.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED DZE
-04E1 ; [.1D53.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN DZE
-04E0 ; [.1D53.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-A689 ; [.1D57.0020.0002] # CYRILLIC SMALL LETTER DZZE
-A688 ; [.1D57.0020.0008] # CYRILLIC CAPITAL LETTER DZZE
-0507 ; [.1D58.0020.0002] # CYRILLIC SMALL LETTER KOMI DZJE
-0506 ; [.1D58.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DZJE
-A683 ; [.1D59.0020.0002] # CYRILLIC SMALL LETTER DZWE
-A682 ; [.1D59.0020.0008] # CYRILLIC CAPITAL LETTER DZWE
-0438 ; [.1D5A.0020.0002] # CYRILLIC SMALL LETTER I
-A675 ; [.1D5A.0020.0004] # COMBINING CYRILLIC LETTER I
-0418 ; [.1D5A.0020.0008] # CYRILLIC CAPITAL LETTER I
-045D ; [.1D5A.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER I WITH GRAVE
-040D ; [.1D5A.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER I WITH GRAVE
-04E3 ; [.1D5A.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER I WITH MACRON
-04E2 ; [.1D5A.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER I WITH MACRON
-048B ; [.1D5E.0020.0002] # CYRILLIC SMALL LETTER SHORT I WITH TAIL
-048A ; [.1D5E.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-04E5 ; [.1D62.0020.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-0438 0308 ; [.1D62.0020.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
-04E4 ; [.1D62.0020.0008] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0418 0308 ; [.1D62.0020.0008] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-0456 ; [.1D66.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0406 ; [.1D66.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-A647 ; [.1D6A.0020.0002] # CYRILLIC SMALL LETTER IOTA
-A646 ; [.1D6A.0020.0008] # CYRILLIC CAPITAL LETTER IOTA
-0457 ; [.1D6B.0020.0002] # CYRILLIC SMALL LETTER YI
-0456 0308 ; [.1D6B.0020.0002] # CYRILLIC SMALL LETTER YI
-A676 ; [.1D6B.0020.0004] # COMBINING CYRILLIC LETTER YI
-0407 ; [.1D6B.0020.0008] # CYRILLIC CAPITAL LETTER YI
-0406 0308 ; [.1D6B.0020.0008] # CYRILLIC CAPITAL LETTER YI
-0439 ; [.1D6F.0020.0002] # CYRILLIC SMALL LETTER SHORT I
-0438 0306 ; [.1D6F.0020.0002] # CYRILLIC SMALL LETTER SHORT I
-0419 ; [.1D6F.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
-0418 0306 ; [.1D6F.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
-0458 ; [.1D73.0020.0002] # CYRILLIC SMALL LETTER JE
-0408 ; [.1D73.0020.0008] # CYRILLIC CAPITAL LETTER JE
-A649 ; [.1D77.0020.0002] # CYRILLIC SMALL LETTER DJERV
-2DF8 ; [.1D77.0020.0004] # COMBINING CYRILLIC LETTER DJERV
-A648 ; [.1D77.0020.0008] # CYRILLIC CAPITAL LETTER DJERV
-043A ; [.1D78.0020.0002] # CYRILLIC SMALL LETTER KA
-2DE6 ; [.1D78.0020.0004] # COMBINING CYRILLIC LETTER KA
-041A ; [.1D78.0020.0008] # CYRILLIC CAPITAL LETTER KA
-049B ; [.1D7C.0020.0002] # CYRILLIC SMALL LETTER KA WITH DESCENDER
-049A ; [.1D7C.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-04C4 ; [.1D80.0020.0002] # CYRILLIC SMALL LETTER KA WITH HOOK
-04C3 ; [.1D80.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH HOOK
-04A1 ; [.1D84.0020.0002] # CYRILLIC SMALL LETTER BASHKIR KA
-04A0 ; [.1D84.0020.0008] # CYRILLIC CAPITAL LETTER BASHKIR KA
-049F ; [.1D88.0020.0002] # CYRILLIC SMALL LETTER KA WITH STROKE
-049E ; [.1D88.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH STROKE
-049D ; [.1D8C.0020.0002] # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-049C ; [.1D8C.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-051F ; [.1D90.0020.0002] # CYRILLIC SMALL LETTER ALEUT KA
-051E ; [.1D90.0020.0008] # CYRILLIC CAPITAL LETTER ALEUT KA
-051B ; [.1D91.0020.0002] # CYRILLIC SMALL LETTER QA
-051A ; [.1D91.0020.0008] # CYRILLIC CAPITAL LETTER QA
-043B ; [.1D92.0020.0002] # CYRILLIC SMALL LETTER EL
-2DE7 ; [.1D92.0020.0004] # COMBINING CYRILLIC LETTER EL
-041B ; [.1D92.0020.0008] # CYRILLIC CAPITAL LETTER EL
-1D2B ; [.1D96.0020.0002] # CYRILLIC LETTER SMALL CAPITAL EL
-04C6 ; [.1D97.0020.0002] # CYRILLIC SMALL LETTER EL WITH TAIL
-04C5 ; [.1D97.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH TAIL
-052F ; [.1D9B.0020.0002] # CYRILLIC SMALL LETTER EL WITH DESCENDER
-052E ; [.1D9B.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH DESCENDER
-0513 ; [.1D9C.0020.0002] # CYRILLIC SMALL LETTER EL WITH HOOK
-0512 ; [.1D9C.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH HOOK
-0521 ; [.1D9D.0020.0002] # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-0520 ; [.1D9D.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-0459 ; [.1D9E.0020.0002] # CYRILLIC SMALL LETTER LJE
-0409 ; [.1D9E.0020.0008] # CYRILLIC CAPITAL LETTER LJE
-A665 ; [.1DA2.0020.0002] # CYRILLIC SMALL LETTER SOFT EL
-A664 ; [.1DA2.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EL
-0509 ; [.1DA3.0020.0002] # CYRILLIC SMALL LETTER KOMI LJE
-0508 ; [.1DA3.0020.0008] # CYRILLIC CAPITAL LETTER KOMI LJE
-0515 ; [.1DA4.0020.0002] # CYRILLIC SMALL LETTER LHA
-0514 ; [.1DA4.0020.0008] # CYRILLIC CAPITAL LETTER LHA
-043C ; [.1DA5.0020.0002] # CYRILLIC SMALL LETTER EM
-2DE8 ; [.1DA5.0020.0004] # COMBINING CYRILLIC LETTER EM
-041C ; [.1DA5.0020.0008] # CYRILLIC CAPITAL LETTER EM
-04CE ; [.1DA9.0020.0002] # CYRILLIC SMALL LETTER EM WITH TAIL
-04CD ; [.1DA9.0020.0008] # CYRILLIC CAPITAL LETTER EM WITH TAIL
-A667 ; [.1DAD.0020.0002] # CYRILLIC SMALL LETTER SOFT EM
-A666 ; [.1DAD.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EM
-043D ; [.1DAE.0020.0002] # CYRILLIC SMALL LETTER EN
-2DE9 ; [.1DAE.0020.0004] # COMBINING CYRILLIC LETTER EN
-041D ; [.1DAE.0020.0008] # CYRILLIC CAPITAL LETTER EN
-1D78 ; [.1DAE.0020.0014] # MODIFIER LETTER CYRILLIC EN
-0529 ; [.1DB2.0020.0002] # CYRILLIC SMALL LETTER EN WITH LEFT HOOK
-0528 ; [.1DB2.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
-04CA ; [.1DB3.0020.0002] # CYRILLIC SMALL LETTER EN WITH TAIL
-04C9 ; [.1DB3.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH TAIL
-04A3 ; [.1DB7.0020.0002] # CYRILLIC SMALL LETTER EN WITH DESCENDER
-04A2 ; [.1DB7.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-04C8 ; [.1DBB.0020.0002] # CYRILLIC SMALL LETTER EN WITH HOOK
-04C7 ; [.1DBB.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH HOOK
-0523 ; [.1DBF.0020.0002] # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-0522 ; [.1DBF.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-04A5 ; [.1DC0.0020.0002] # CYRILLIC SMALL LIGATURE EN GHE
-04A4 ; [.1DC0.0020.0008] # CYRILLIC CAPITAL LIGATURE EN GHE
-045A ; [.1DC4.0020.0002] # CYRILLIC SMALL LETTER NJE
-040A ; [.1DC4.0020.0008] # CYRILLIC CAPITAL LETTER NJE
-050B ; [.1DC8.0020.0002] # CYRILLIC SMALL LETTER KOMI NJE
-050A ; [.1DC8.0020.0008] # CYRILLIC CAPITAL LETTER KOMI NJE
-043E ; [.1DC9.0020.0002] # CYRILLIC SMALL LETTER O
-2DEA ; [.1DC9.0020.0004] # COMBINING CYRILLIC LETTER O
-A669 ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER MONOCULAR O
-A66B ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER BINOCULAR O
-A66D ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A66E ; [.1DC9.0020.0004] # CYRILLIC LETTER MULTIOCULAR O
-A699 ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER DOUBLE O
-A69B ; [.1DC9.0020.0004] # CYRILLIC SMALL LETTER CROSSED O
-041E ; [.1DC9.0020.0008] # CYRILLIC CAPITAL LETTER O
-A668 ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER MONOCULAR O
-A66A ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER BINOCULAR O
-A66C ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
-A698 ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE O
-A69A ; [.1DC9.0020.000A] # CYRILLIC CAPITAL LETTER CROSSED O
-04E7 ; [.1DCD.0020.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-043E 0308 ; [.1DCD.0020.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
-04E6 ; [.1DCD.0020.0008] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-041E 0308 ; [.1DCD.0020.0008] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-04E9 ; [.1DD1.0020.0002] # CYRILLIC SMALL LETTER BARRED O
-04E8 ; [.1DD1.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O
-04EB ; [.1DD5.0020.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04E9 0308 ; [.1DD5.0020.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-04EA ; [.1DD5.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-04E8 0308 ; [.1DD5.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-043F ; [.1DD9.0020.0002] # CYRILLIC SMALL LETTER PE
-2DEB ; [.1DD9.0020.0004] # COMBINING CYRILLIC LETTER PE
-041F ; [.1DD9.0020.0008] # CYRILLIC CAPITAL LETTER PE
-0525 ; [.1DDD.0020.0002] # CYRILLIC SMALL LETTER PE WITH DESCENDER
-0524 ; [.1DDD.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-04A7 ; [.1DDE.0020.0002] # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-04A6 ; [.1DDE.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-0481 ; [.1DE2.0020.0002] # CYRILLIC SMALL LETTER KOPPA
-0480 ; [.1DE2.0020.0008] # CYRILLIC CAPITAL LETTER KOPPA
-0440 ; [.1DE6.0020.0002] # CYRILLIC SMALL LETTER ER
-2DEC ; [.1DE6.0020.0004] # COMBINING CYRILLIC LETTER ER
-0420 ; [.1DE6.0020.0008] # CYRILLIC CAPITAL LETTER ER
-048F ; [.1DEA.0020.0002] # CYRILLIC SMALL LETTER ER WITH TICK
-048E ; [.1DEA.0020.0008] # CYRILLIC CAPITAL LETTER ER WITH TICK
-0517 ; [.1DEE.0020.0002] # CYRILLIC SMALL LETTER RHA
-0516 ; [.1DEE.0020.0008] # CYRILLIC CAPITAL LETTER RHA
-0441 ; [.1DEF.0020.0002] # CYRILLIC SMALL LETTER ES
-2DED ; [.1DEF.0020.0004] # COMBINING CYRILLIC LETTER ES
-0421 ; [.1DEF.0020.0008] # CYRILLIC CAPITAL LETTER ES
-2DF5 ; [.1DEF.0020.0004][.1DF8.0020.0004] # COMBINING CYRILLIC LETTER ES-TE
-050D ; [.1DF3.0020.0002] # CYRILLIC SMALL LETTER KOMI SJE
-050C ; [.1DF3.0020.0008] # CYRILLIC CAPITAL LETTER KOMI SJE
-04AB ; [.1DF4.0020.0002] # CYRILLIC SMALL LETTER ES WITH DESCENDER
-04AA ; [.1DF4.0020.0008] # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-0442 ; [.1DF8.0020.0002] # CYRILLIC SMALL LETTER TE
-2DEE ; [.1DF8.0020.0004] # COMBINING CYRILLIC LETTER TE
-0422 ; [.1DF8.0020.0008] # CYRILLIC CAPITAL LETTER TE
-A68D ; [.1DFC.0020.0002] # CYRILLIC SMALL LETTER TWE
-A68C ; [.1DFC.0020.0008] # CYRILLIC CAPITAL LETTER TWE
-050F ; [.1DFD.0020.0002] # CYRILLIC SMALL LETTER KOMI TJE
-050E ; [.1DFD.0020.0008] # CYRILLIC CAPITAL LETTER KOMI TJE
-04AD ; [.1DFE.0020.0002] # CYRILLIC SMALL LETTER TE WITH DESCENDER
-04AC ; [.1DFE.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-A68B ; [.1E02.0020.0002] # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
-A68A ; [.1E02.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
-045B ; [.1E03.0020.0002] # CYRILLIC SMALL LETTER TSHE
-040B ; [.1E03.0020.0008] # CYRILLIC CAPITAL LETTER TSHE
-045C ; [.1E07.0020.0002] # CYRILLIC SMALL LETTER KJE
-043A 0301 ; [.1E07.0020.0002] # CYRILLIC SMALL LETTER KJE
-043A 0341 ; [.1E07.0020.0002] # CYRILLIC SMALL LETTER KJE
-040C ; [.1E07.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-041A 0301 ; [.1E07.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-041A 0341 ; [.1E07.0020.0008] # CYRILLIC CAPITAL LETTER KJE
-0443 ; [.1E0B.0020.0002] # CYRILLIC SMALL LETTER U
-A677 ; [.1E0B.0020.0004] # COMBINING CYRILLIC LETTER U
-0423 ; [.1E0B.0020.0008] # CYRILLIC CAPITAL LETTER U
-04EF ; [.1E0B.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER U WITH MACRON
-04EE ; [.1E0B.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER U WITH MACRON
-045E ; [.1E0F.0020.0002] # CYRILLIC SMALL LETTER SHORT U
-0443 0306 ; [.1E0F.0020.0002] # CYRILLIC SMALL LETTER SHORT U
-040E ; [.1E0F.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
-0423 0306 ; [.1E0F.0020.0008] # CYRILLIC CAPITAL LETTER SHORT U
-04F1 ; [.1E13.0020.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-0443 0308 ; [.1E13.0020.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
-04F0 ; [.1E13.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-0423 0308 ; [.1E13.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-04F3 ; [.1E17.0020.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-0443 030B ; [.1E17.0020.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-04F2 ; [.1E17.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-0423 030B ; [.1E17.0020.0008] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-04AF ; [.1E1B.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
-04AE ; [.1E1B.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
-04B1 ; [.1E1F.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-04B0 ; [.1E1F.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-A64B ; [.1E23.0020.0002] # CYRILLIC SMALL LETTER MONOGRAPH UK
-2DF9 ; [.1E23.0020.0004] # COMBINING CYRILLIC LETTER MONOGRAPH UK
-A64A ; [.1E23.0020.0008] # CYRILLIC CAPITAL LETTER MONOGRAPH UK
-0479 ; [.1E24.0020.0002] # CYRILLIC SMALL LETTER UK
-0478 ; [.1E24.0020.0008] # CYRILLIC CAPITAL LETTER UK
-0444 ; [.1E28.0020.0002] # CYRILLIC SMALL LETTER EF
-0424 ; [.1E28.0020.0008] # CYRILLIC CAPITAL LETTER EF
-0445 ; [.1E2C.0020.0002] # CYRILLIC SMALL LETTER HA
-2DEF ; [.1E2C.0020.0004] # COMBINING CYRILLIC LETTER HA
-0425 ; [.1E2C.0020.0008] # CYRILLIC CAPITAL LETTER HA
-04FD ; [.1E30.0020.0002] # CYRILLIC SMALL LETTER HA WITH HOOK
-04FC ; [.1E30.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH HOOK
-04FF ; [.1E34.0020.0002] # CYRILLIC SMALL LETTER HA WITH STROKE
-04FE ; [.1E34.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH STROKE
-04B3 ; [.1E38.0020.0002] # CYRILLIC SMALL LETTER HA WITH DESCENDER
-04B2 ; [.1E38.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-04BB ; [.1E3C.0020.0002] # CYRILLIC SMALL LETTER SHHA
-04BA ; [.1E3C.0020.0008] # CYRILLIC CAPITAL LETTER SHHA
-0527 ; [.1E40.0020.0002] # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
-0526 ; [.1E40.0020.0008] # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
-A695 ; [.1E41.0020.0002] # CYRILLIC SMALL LETTER HWE
-A694 ; [.1E41.0020.0008] # CYRILLIC CAPITAL LETTER HWE
-0461 ; [.1E42.0020.0002] # CYRILLIC SMALL LETTER OMEGA
-A67B ; [.1E42.0020.0004] # COMBINING CYRILLIC LETTER OMEGA
-0460 ; [.1E42.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA
-047F ; [.1E46.0020.0002] # CYRILLIC SMALL LETTER OT
-047E ; [.1E46.0020.0008] # CYRILLIC CAPITAL LETTER OT
-A64D ; [.1E4A.0020.0002] # CYRILLIC SMALL LETTER BROAD OMEGA
-A64C ; [.1E4A.0020.0008] # CYRILLIC CAPITAL LETTER BROAD OMEGA
-047D ; [.1E4B.0020.0002] # CYRILLIC SMALL LETTER OMEGA WITH TITLO
-047C ; [.1E4B.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-047B ; [.1E4F.0020.0002] # CYRILLIC SMALL LETTER ROUND OMEGA
-047A ; [.1E4F.0020.0008] # CYRILLIC CAPITAL LETTER ROUND OMEGA
-0446 ; [.1E53.0020.0002] # CYRILLIC SMALL LETTER TSE
-2DF0 ; [.1E53.0020.0004] # COMBINING CYRILLIC LETTER TSE
-0426 ; [.1E53.0020.0008] # CYRILLIC CAPITAL LETTER TSE
-A661 ; [.1E57.0020.0002] # CYRILLIC SMALL LETTER REVERSED TSE
-A660 ; [.1E57.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED TSE
-A68F ; [.1E58.0020.0002] # CYRILLIC SMALL LETTER TSWE
-A68E ; [.1E58.0020.0008] # CYRILLIC CAPITAL LETTER TSWE
-04B5 ; [.1E59.0020.0002] # CYRILLIC SMALL LIGATURE TE TSE
-04B4 ; [.1E59.0020.0008] # CYRILLIC CAPITAL LIGATURE TE TSE
-A691 ; [.1E5D.0020.0002] # CYRILLIC SMALL LETTER TSSE
-A690 ; [.1E5D.0020.0008] # CYRILLIC CAPITAL LETTER TSSE
-0447 ; [.1E5E.0020.0002] # CYRILLIC SMALL LETTER CHE
-2DF1 ; [.1E5E.0020.0004] # COMBINING CYRILLIC LETTER CHE
-0427 ; [.1E5E.0020.0008] # CYRILLIC CAPITAL LETTER CHE
-052D ; [.1E62.0020.0002] # CYRILLIC SMALL LETTER DCHE
-052C ; [.1E62.0020.0008] # CYRILLIC CAPITAL LETTER DCHE
-A693 ; [.1E63.0020.0002] # CYRILLIC SMALL LETTER TCHE
-A692 ; [.1E63.0020.0008] # CYRILLIC CAPITAL LETTER TCHE
-04F5 ; [.1E64.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-0447 0308 ; [.1E64.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-04F4 ; [.1E64.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-0427 0308 ; [.1E64.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-04B7 ; [.1E68.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DESCENDER
-04B6 ; [.1E68.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-04CC ; [.1E6C.0020.0002] # CYRILLIC SMALL LETTER KHAKASSIAN CHE
-04CB ; [.1E6C.0020.0008] # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-04B9 ; [.1E70.0020.0002] # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-04B8 ; [.1E70.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-A687 ; [.1E74.0020.0002] # CYRILLIC SMALL LETTER CCHE
-A686 ; [.1E74.0020.0008] # CYRILLIC CAPITAL LETTER CCHE
-04BD ; [.1E75.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE
-04BC ; [.1E75.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-04BF ; [.1E79.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-04BE ; [.1E79.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-045F ; [.1E7D.0020.0002] # CYRILLIC SMALL LETTER DZHE
-040F ; [.1E7D.0020.0008] # CYRILLIC CAPITAL LETTER DZHE
-0448 ; [.1E81.0020.0002] # CYRILLIC SMALL LETTER SHA
-2DF2 ; [.1E81.0020.0004] # COMBINING CYRILLIC LETTER SHA
-0428 ; [.1E81.0020.0008] # CYRILLIC CAPITAL LETTER SHA
-A697 ; [.1E85.0020.0002] # CYRILLIC SMALL LETTER SHWE
-A696 ; [.1E85.0020.0008] # CYRILLIC CAPITAL LETTER SHWE
-0449 ; [.1E86.0020.0002] # CYRILLIC SMALL LETTER SHCHA
-2DF3 ; [.1E86.0020.0004] # COMBINING CYRILLIC LETTER SHCHA
-0429 ; [.1E86.0020.0008] # CYRILLIC CAPITAL LETTER SHCHA
-A64F ; [.1E8A.0020.0002] # CYRILLIC SMALL LETTER NEUTRAL YER
-A64E ; [.1E8A.0020.0008] # CYRILLIC CAPITAL LETTER NEUTRAL YER
-2E2F ; [.1E8B.0020.0002] # VERTICAL TILDE
-A67F ; [.1E8C.0020.0002] # CYRILLIC PAYEROK
-044A ; [.1E8D.0020.0002] # CYRILLIC SMALL LETTER HARD SIGN
-A678 ; [.1E8D.0020.0004] # COMBINING CYRILLIC LETTER HARD SIGN
-042A ; [.1E8D.0020.0008] # CYRILLIC CAPITAL LETTER HARD SIGN
-A69C ; [.1E8D.0020.0014] # MODIFIER LETTER CYRILLIC HARD SIGN
-A651 ; [.1E91.0020.0002] # CYRILLIC SMALL LETTER YERU WITH BACK YER
-A650 ; [.1E91.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
-044B ; [.1E92.0020.0002] # CYRILLIC SMALL LETTER YERU
-A679 ; [.1E92.0020.0004] # COMBINING CYRILLIC LETTER YERU
-042B ; [.1E92.0020.0008] # CYRILLIC CAPITAL LETTER YERU
-04F9 ; [.1E96.0020.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-044B 0308 ; [.1E96.0020.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-04F8 ; [.1E96.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-042B 0308 ; [.1E96.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-044C ; [.1E9A.0020.0002] # CYRILLIC SMALL LETTER SOFT SIGN
-A67A ; [.1E9A.0020.0004] # COMBINING CYRILLIC LETTER SOFT SIGN
-042C ; [.1E9A.0020.0008] # CYRILLIC CAPITAL LETTER SOFT SIGN
-A69D ; [.1E9A.0020.0014] # MODIFIER LETTER CYRILLIC SOFT SIGN
-048D ; [.1E9E.0020.0002] # CYRILLIC SMALL LETTER SEMISOFT SIGN
-048C ; [.1E9E.0020.0008] # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-0463 ; [.1EA2.0020.0002] # CYRILLIC SMALL LETTER YAT
-2DFA ; [.1EA2.0020.0004] # COMBINING CYRILLIC LETTER YAT
-0462 ; [.1EA2.0020.0008] # CYRILLIC CAPITAL LETTER YAT
-A653 ; [.1EA6.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED YAT
-A652 ; [.1EA6.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED YAT
-044D ; [.1EA7.0020.0002] # CYRILLIC SMALL LETTER E
-042D ; [.1EA7.0020.0008] # CYRILLIC CAPITAL LETTER E
-04ED ; [.1EAB.0020.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-044D 0308 ; [.1EAB.0020.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
-04EC ; [.1EAB.0020.0008] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-042D 0308 ; [.1EAB.0020.0008] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-044E ; [.1EAF.0020.0002] # CYRILLIC SMALL LETTER YU
-2DFB ; [.1EAF.0020.0004] # COMBINING CYRILLIC LETTER YU
-042E ; [.1EAF.0020.0008] # CYRILLIC CAPITAL LETTER YU
-A655 ; [.1EB3.0020.0002] # CYRILLIC SMALL LETTER REVERSED YU
-A654 ; [.1EB3.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED YU
-A657 ; [.1EB4.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED A
-2DFC ; [.1EB4.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED A
-A656 ; [.1EB4.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED A
-044F ; [.1EB5.0020.0002] # CYRILLIC SMALL LETTER YA
-042F ; [.1EB5.0020.0008] # CYRILLIC CAPITAL LETTER YA
-0519 ; [.1EB9.0020.0002] # CYRILLIC SMALL LETTER YAE
-0518 ; [.1EB9.0020.0008] # CYRILLIC CAPITAL LETTER YAE
-0465 ; [.1EBA.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED E
-A69F ; [.1EBA.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED E
-0464 ; [.1EBA.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED E
-0467 ; [.1EBE.0020.0002] # CYRILLIC SMALL LETTER LITTLE YUS
-2DFD ; [.1EBE.0020.0004] # COMBINING CYRILLIC LETTER LITTLE YUS
-0466 ; [.1EBE.0020.0008] # CYRILLIC CAPITAL LETTER LITTLE YUS
-A659 ; [.1EC2.0020.0002] # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
-A658 ; [.1EC2.0020.0008] # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
-046B ; [.1EC3.0020.0002] # CYRILLIC SMALL LETTER BIG YUS
-2DFE ; [.1EC3.0020.0004] # COMBINING CYRILLIC LETTER BIG YUS
-046A ; [.1EC3.0020.0008] # CYRILLIC CAPITAL LETTER BIG YUS
-A65B ; [.1EC7.0020.0002] # CYRILLIC SMALL LETTER BLENDED YUS
-A65A ; [.1EC7.0020.0008] # CYRILLIC CAPITAL LETTER BLENDED YUS
-0469 ; [.1EC8.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-0468 ; [.1EC8.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-A65D ; [.1ECC.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
-A65C ; [.1ECC.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
-046D ; [.1ECD.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-2DFF ; [.1ECD.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-046C ; [.1ECD.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-046F ; [.1ED1.0020.0002] # CYRILLIC SMALL LETTER KSI
-046E ; [.1ED1.0020.0008] # CYRILLIC CAPITAL LETTER KSI
-0471 ; [.1ED5.0020.0002] # CYRILLIC SMALL LETTER PSI
-0470 ; [.1ED5.0020.0008] # CYRILLIC CAPITAL LETTER PSI
-0473 ; [.1ED9.0020.0002] # CYRILLIC SMALL LETTER FITA
-2DF4 ; [.1ED9.0020.0004] # COMBINING CYRILLIC LETTER FITA
-0472 ; [.1ED9.0020.0008] # CYRILLIC CAPITAL LETTER FITA
-0475 ; [.1EDD.0020.0002] # CYRILLIC SMALL LETTER IZHITSA
-0474 ; [.1EDD.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA
-0477 ; [.1EE1.0020.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0475 030F ; [.1EE1.0020.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0476 ; [.1EE1.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-0474 030F ; [.1EE1.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-A65F ; [.1EE5.0020.0002] # CYRILLIC SMALL LETTER YN
-A65E ; [.1EE5.0020.0008] # CYRILLIC CAPITAL LETTER YN
-04A9 ; [.1EE6.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN HA
-04A8 ; [.1EE6.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN HA
-051D ; [.1EEA.0020.0002] # CYRILLIC SMALL LETTER WE
-051C ; [.1EEA.0020.0008] # CYRILLIC CAPITAL LETTER WE
-04CF ; [.1EEB.0020.0002] # CYRILLIC SMALL LETTER PALOCHKA
-04C0 ; [.1EEB.0020.0008] # CYRILLIC LETTER PALOCHKA
-2C30 ; [.1EEF.0020.0002] # GLAGOLITIC SMALL LETTER AZU
-2C00 ; [.1EEF.0020.0008] # GLAGOLITIC CAPITAL LETTER AZU
-2C31 ; [.1EF0.0020.0002] # GLAGOLITIC SMALL LETTER BUKY
-2C01 ; [.1EF0.0020.0008] # GLAGOLITIC CAPITAL LETTER BUKY
-2C32 ; [.1EF1.0020.0002] # GLAGOLITIC SMALL LETTER VEDE
-2C02 ; [.1EF1.0020.0008] # GLAGOLITIC CAPITAL LETTER VEDE
-2C33 ; [.1EF2.0020.0002] # GLAGOLITIC SMALL LETTER GLAGOLI
-2C03 ; [.1EF2.0020.0008] # GLAGOLITIC CAPITAL LETTER GLAGOLI
-2C34 ; [.1EF3.0020.0002] # GLAGOLITIC SMALL LETTER DOBRO
-2C04 ; [.1EF3.0020.0008] # GLAGOLITIC CAPITAL LETTER DOBRO
-2C35 ; [.1EF4.0020.0002] # GLAGOLITIC SMALL LETTER YESTU
-2C05 ; [.1EF4.0020.0008] # GLAGOLITIC CAPITAL LETTER YESTU
-2C36 ; [.1EF5.0020.0002] # GLAGOLITIC SMALL LETTER ZHIVETE
-2C06 ; [.1EF5.0020.0008] # GLAGOLITIC CAPITAL LETTER ZHIVETE
-2C37 ; [.1EF6.0020.0002] # GLAGOLITIC SMALL LETTER DZELO
-2C07 ; [.1EF6.0020.0008] # GLAGOLITIC CAPITAL LETTER DZELO
-2C38 ; [.1EF7.0020.0002] # GLAGOLITIC SMALL LETTER ZEMLJA
-2C08 ; [.1EF7.0020.0008] # GLAGOLITIC CAPITAL LETTER ZEMLJA
-2C39 ; [.1EF8.0020.0002] # GLAGOLITIC SMALL LETTER IZHE
-2C09 ; [.1EF8.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHE
-2C3A ; [.1EF9.0020.0002] # GLAGOLITIC SMALL LETTER INITIAL IZHE
-2C0A ; [.1EF9.0020.0008] # GLAGOLITIC CAPITAL LETTER INITIAL IZHE
-2C3B ; [.1EFA.0020.0002] # GLAGOLITIC SMALL LETTER I
-2C0B ; [.1EFA.0020.0008] # GLAGOLITIC CAPITAL LETTER I
-2C3C ; [.1EFB.0020.0002] # GLAGOLITIC SMALL LETTER DJERVI
-2C0C ; [.1EFB.0020.0008] # GLAGOLITIC CAPITAL LETTER DJERVI
-2C3D ; [.1EFC.0020.0002] # GLAGOLITIC SMALL LETTER KAKO
-2C0D ; [.1EFC.0020.0008] # GLAGOLITIC CAPITAL LETTER KAKO
-2C3E ; [.1EFD.0020.0002] # GLAGOLITIC SMALL LETTER LJUDIJE
-2C0E ; [.1EFD.0020.0008] # GLAGOLITIC CAPITAL LETTER LJUDIJE
-2C3F ; [.1EFE.0020.0002] # GLAGOLITIC SMALL LETTER MYSLITE
-2C0F ; [.1EFE.0020.0008] # GLAGOLITIC CAPITAL LETTER MYSLITE
-2C40 ; [.1EFF.0020.0002] # GLAGOLITIC SMALL LETTER NASHI
-2C10 ; [.1EFF.0020.0008] # GLAGOLITIC CAPITAL LETTER NASHI
-2C41 ; [.1F00.0020.0002] # GLAGOLITIC SMALL LETTER ONU
-2C11 ; [.1F00.0020.0008] # GLAGOLITIC CAPITAL LETTER ONU
-2C42 ; [.1F01.0020.0002] # GLAGOLITIC SMALL LETTER POKOJI
-2C12 ; [.1F01.0020.0008] # GLAGOLITIC CAPITAL LETTER POKOJI
-2C43 ; [.1F02.0020.0002] # GLAGOLITIC SMALL LETTER RITSI
-2C13 ; [.1F02.0020.0008] # GLAGOLITIC CAPITAL LETTER RITSI
-2C44 ; [.1F03.0020.0002] # GLAGOLITIC SMALL LETTER SLOVO
-2C14 ; [.1F03.0020.0008] # GLAGOLITIC CAPITAL LETTER SLOVO
-2C45 ; [.1F04.0020.0002] # GLAGOLITIC SMALL LETTER TVRIDO
-2C15 ; [.1F04.0020.0008] # GLAGOLITIC CAPITAL LETTER TVRIDO
-2C46 ; [.1F05.0020.0002] # GLAGOLITIC SMALL LETTER UKU
-2C16 ; [.1F05.0020.0008] # GLAGOLITIC CAPITAL LETTER UKU
-2C47 ; [.1F06.0020.0002] # GLAGOLITIC SMALL LETTER FRITU
-2C17 ; [.1F06.0020.0008] # GLAGOLITIC CAPITAL LETTER FRITU
-2C48 ; [.1F07.0020.0002] # GLAGOLITIC SMALL LETTER HERU
-2C18 ; [.1F07.0020.0008] # GLAGOLITIC CAPITAL LETTER HERU
-2C49 ; [.1F08.0020.0002] # GLAGOLITIC SMALL LETTER OTU
-2C19 ; [.1F08.0020.0008] # GLAGOLITIC CAPITAL LETTER OTU
-2C4A ; [.1F09.0020.0002] # GLAGOLITIC SMALL LETTER PE
-2C1A ; [.1F09.0020.0008] # GLAGOLITIC CAPITAL LETTER PE
-2C4B ; [.1F0A.0020.0002] # GLAGOLITIC SMALL LETTER SHTA
-2C1B ; [.1F0A.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTA
-2C4C ; [.1F0B.0020.0002] # GLAGOLITIC SMALL LETTER TSI
-2C1C ; [.1F0B.0020.0008] # GLAGOLITIC CAPITAL LETTER TSI
-2C4D ; [.1F0C.0020.0002] # GLAGOLITIC SMALL LETTER CHRIVI
-2C1D ; [.1F0C.0020.0008] # GLAGOLITIC CAPITAL LETTER CHRIVI
-2C4E ; [.1F0D.0020.0002] # GLAGOLITIC SMALL LETTER SHA
-2C1E ; [.1F0D.0020.0008] # GLAGOLITIC CAPITAL LETTER SHA
-2C4F ; [.1F0E.0020.0002] # GLAGOLITIC SMALL LETTER YERU
-2C1F ; [.1F0E.0020.0008] # GLAGOLITIC CAPITAL LETTER YERU
-2C50 ; [.1F0F.0020.0002] # GLAGOLITIC SMALL LETTER YERI
-2C20 ; [.1F0F.0020.0008] # GLAGOLITIC CAPITAL LETTER YERI
-2C51 ; [.1F10.0020.0002] # GLAGOLITIC SMALL LETTER YATI
-2C21 ; [.1F10.0020.0008] # GLAGOLITIC CAPITAL LETTER YATI
-2C52 ; [.1F11.0020.0002] # GLAGOLITIC SMALL LETTER SPIDERY HA
-2C22 ; [.1F11.0020.0008] # GLAGOLITIC CAPITAL LETTER SPIDERY HA
-2C53 ; [.1F12.0020.0002] # GLAGOLITIC SMALL LETTER YU
-2C23 ; [.1F12.0020.0008] # GLAGOLITIC CAPITAL LETTER YU
-2C54 ; [.1F13.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS
-2C24 ; [.1F13.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS
-2C55 ; [.1F14.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
-2C25 ; [.1F14.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
-2C56 ; [.1F15.0020.0002] # GLAGOLITIC SMALL LETTER YO
-2C26 ; [.1F15.0020.0008] # GLAGOLITIC CAPITAL LETTER YO
-2C57 ; [.1F16.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
-2C27 ; [.1F16.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
-2C58 ; [.1F17.0020.0002] # GLAGOLITIC SMALL LETTER BIG YUS
-2C28 ; [.1F17.0020.0008] # GLAGOLITIC CAPITAL LETTER BIG YUS
-2C59 ; [.1F18.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED BIG YUS
-2C29 ; [.1F18.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
-2C5A ; [.1F19.0020.0002] # GLAGOLITIC SMALL LETTER FITA
-2C2A ; [.1F19.0020.0008] # GLAGOLITIC CAPITAL LETTER FITA
-2C5B ; [.1F1A.0020.0002] # GLAGOLITIC SMALL LETTER IZHITSA
-2C2B ; [.1F1A.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHITSA
-2C5C ; [.1F1B.0020.0002] # GLAGOLITIC SMALL LETTER SHTAPIC
-2C2C ; [.1F1B.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTAPIC
-2C5D ; [.1F1C.0020.0002] # GLAGOLITIC SMALL LETTER TROKUTASTI A
-2C2D ; [.1F1C.0020.0008] # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
-2C5E ; [.1F1D.0020.0002] # GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C2E ; [.1F1D.0020.0008] # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-10350 ; [.1F1E.0020.0002] # OLD PERMIC LETTER AN
-10376 ; [.1F1E.0020.0004] # COMBINING OLD PERMIC LETTER AN
-10351 ; [.1F1F.0020.0002] # OLD PERMIC LETTER BUR
-10352 ; [.1F20.0020.0002] # OLD PERMIC LETTER GAI
-10353 ; [.1F21.0020.0002] # OLD PERMIC LETTER DOI
-10377 ; [.1F21.0020.0004] # COMBINING OLD PERMIC LETTER DOI
-10354 ; [.1F22.0020.0002] # OLD PERMIC LETTER E
-10355 ; [.1F23.0020.0002] # OLD PERMIC LETTER ZHOI
-10356 ; [.1F24.0020.0002] # OLD PERMIC LETTER DZHOI
-10357 ; [.1F25.0020.0002] # OLD PERMIC LETTER ZATA
-10378 ; [.1F25.0020.0004] # COMBINING OLD PERMIC LETTER ZATA
-10358 ; [.1F26.0020.0002] # OLD PERMIC LETTER DZITA
-10359 ; [.1F27.0020.0002] # OLD PERMIC LETTER I
-1035A ; [.1F28.0020.0002] # OLD PERMIC LETTER KOKE
-1035B ; [.1F29.0020.0002] # OLD PERMIC LETTER LEI
-1035C ; [.1F2A.0020.0002] # OLD PERMIC LETTER MENOE
-1035D ; [.1F2B.0020.0002] # OLD PERMIC LETTER NENOE
-10379 ; [.1F2B.0020.0004] # COMBINING OLD PERMIC LETTER NENOE
-1035E ; [.1F2C.0020.0002] # OLD PERMIC LETTER VOOI
-1035F ; [.1F2D.0020.0002] # OLD PERMIC LETTER PEEI
-10360 ; [.1F2E.0020.0002] # OLD PERMIC LETTER REI
-10361 ; [.1F2F.0020.0002] # OLD PERMIC LETTER SII
-1037A ; [.1F2F.0020.0004] # COMBINING OLD PERMIC LETTER SII
-10362 ; [.1F30.0020.0002] # OLD PERMIC LETTER TAI
-10363 ; [.1F31.0020.0002] # OLD PERMIC LETTER U
-10364 ; [.1F32.0020.0002] # OLD PERMIC LETTER CHERY
-10365 ; [.1F33.0020.0002] # OLD PERMIC LETTER SHOOI
-10366 ; [.1F34.0020.0002] # OLD PERMIC LETTER SHCHOOI
-10367 ; [.1F35.0020.0002] # OLD PERMIC LETTER YRY
-10368 ; [.1F36.0020.0002] # OLD PERMIC LETTER YERU
-10369 ; [.1F37.0020.0002] # OLD PERMIC LETTER O
-1036A ; [.1F38.0020.0002] # OLD PERMIC LETTER OO
-1036B ; [.1F39.0020.0002] # OLD PERMIC LETTER EF
-1036C ; [.1F3A.0020.0002] # OLD PERMIC LETTER HA
-1036D ; [.1F3B.0020.0002] # OLD PERMIC LETTER TSIU
-1036E ; [.1F3C.0020.0002] # OLD PERMIC LETTER VER
-1036F ; [.1F3D.0020.0002] # OLD PERMIC LETTER YER
-10370 ; [.1F3E.0020.0002] # OLD PERMIC LETTER YERI
-10371 ; [.1F3F.0020.0002] # OLD PERMIC LETTER YAT
-10372 ; [.1F40.0020.0002] # OLD PERMIC LETTER IE
-10373 ; [.1F41.0020.0002] # OLD PERMIC LETTER YU
-10374 ; [.1F42.0020.0002] # OLD PERMIC LETTER YA
-10375 ; [.1F43.0020.0002] # OLD PERMIC LETTER IA
-10D0 ; [.1F44.0020.0002] # GEORGIAN LETTER AN
-2D00 ; [.1F45.0020.0002] # GEORGIAN SMALL LETTER AN
-10A0 ; [.1F45.0020.0008] # GEORGIAN CAPITAL LETTER AN
-10D1 ; [.1F46.0020.0002] # GEORGIAN LETTER BAN
-2D01 ; [.1F47.0020.0002] # GEORGIAN SMALL LETTER BAN
-10A1 ; [.1F47.0020.0008] # GEORGIAN CAPITAL LETTER BAN
-10D2 ; [.1F48.0020.0002] # GEORGIAN LETTER GAN
-2D02 ; [.1F49.0020.0002] # GEORGIAN SMALL LETTER GAN
-10A2 ; [.1F49.0020.0008] # GEORGIAN CAPITAL LETTER GAN
-10D3 ; [.1F4A.0020.0002] # GEORGIAN LETTER DON
-2D03 ; [.1F4B.0020.0002] # GEORGIAN SMALL LETTER DON
-10A3 ; [.1F4B.0020.0008] # GEORGIAN CAPITAL LETTER DON
-10D4 ; [.1F4C.0020.0002] # GEORGIAN LETTER EN
-2D04 ; [.1F4D.0020.0002] # GEORGIAN SMALL LETTER EN
-10A4 ; [.1F4D.0020.0008] # GEORGIAN CAPITAL LETTER EN
-10D5 ; [.1F4E.0020.0002] # GEORGIAN LETTER VIN
-2D05 ; [.1F4F.0020.0002] # GEORGIAN SMALL LETTER VIN
-10A5 ; [.1F4F.0020.0008] # GEORGIAN CAPITAL LETTER VIN
-10D6 ; [.1F50.0020.0002] # GEORGIAN LETTER ZEN
-2D06 ; [.1F51.0020.0002] # GEORGIAN SMALL LETTER ZEN
-10A6 ; [.1F51.0020.0008] # GEORGIAN CAPITAL LETTER ZEN
-10F1 ; [.1F52.0020.0002] # GEORGIAN LETTER HE
-2D21 ; [.1F53.0020.0002] # GEORGIAN SMALL LETTER HE
-10C1 ; [.1F53.0020.0008] # GEORGIAN CAPITAL LETTER HE
-10D7 ; [.1F54.0020.0002] # GEORGIAN LETTER TAN
-2D07 ; [.1F55.0020.0002] # GEORGIAN SMALL LETTER TAN
-10A7 ; [.1F55.0020.0008] # GEORGIAN CAPITAL LETTER TAN
-10D8 ; [.1F56.0020.0002] # GEORGIAN LETTER IN
-2D08 ; [.1F57.0020.0002] # GEORGIAN SMALL LETTER IN
-10A8 ; [.1F57.0020.0008] # GEORGIAN CAPITAL LETTER IN
-10D9 ; [.1F58.0020.0002] # GEORGIAN LETTER KAN
-2D09 ; [.1F59.0020.0002] # GEORGIAN SMALL LETTER KAN
-10A9 ; [.1F59.0020.0008] # GEORGIAN CAPITAL LETTER KAN
-10DA ; [.1F5A.0020.0002] # GEORGIAN LETTER LAS
-2D0A ; [.1F5B.0020.0002] # GEORGIAN SMALL LETTER LAS
-10AA ; [.1F5B.0020.0008] # GEORGIAN CAPITAL LETTER LAS
-10DB ; [.1F5C.0020.0002] # GEORGIAN LETTER MAN
-2D0B ; [.1F5D.0020.0002] # GEORGIAN SMALL LETTER MAN
-10AB ; [.1F5D.0020.0008] # GEORGIAN CAPITAL LETTER MAN
-10DC ; [.1F5E.0020.0002] # GEORGIAN LETTER NAR
-10FC ; [.1F5E.0020.0014] # MODIFIER LETTER GEORGIAN NAR
-2D0C ; [.1F5F.0020.0002] # GEORGIAN SMALL LETTER NAR
-10AC ; [.1F5F.0020.0008] # GEORGIAN CAPITAL LETTER NAR
-10F2 ; [.1F60.0020.0002] # GEORGIAN LETTER HIE
-2D22 ; [.1F61.0020.0002] # GEORGIAN SMALL LETTER HIE
-10C2 ; [.1F61.0020.0008] # GEORGIAN CAPITAL LETTER HIE
-10DD ; [.1F62.0020.0002] # GEORGIAN LETTER ON
-2D0D ; [.1F63.0020.0002] # GEORGIAN SMALL LETTER ON
-10AD ; [.1F63.0020.0008] # GEORGIAN CAPITAL LETTER ON
-10DE ; [.1F64.0020.0002] # GEORGIAN LETTER PAR
-2D0E ; [.1F65.0020.0002] # GEORGIAN SMALL LETTER PAR
-10AE ; [.1F65.0020.0008] # GEORGIAN CAPITAL LETTER PAR
-10DF ; [.1F66.0020.0002] # GEORGIAN LETTER ZHAR
-2D0F ; [.1F67.0020.0002] # GEORGIAN SMALL LETTER ZHAR
-10AF ; [.1F67.0020.0008] # GEORGIAN CAPITAL LETTER ZHAR
-10E0 ; [.1F68.0020.0002] # GEORGIAN LETTER RAE
-2D10 ; [.1F69.0020.0002] # GEORGIAN SMALL LETTER RAE
-10B0 ; [.1F69.0020.0008] # GEORGIAN CAPITAL LETTER RAE
-10E1 ; [.1F6A.0020.0002] # GEORGIAN LETTER SAN
-2D11 ; [.1F6B.0020.0002] # GEORGIAN SMALL LETTER SAN
-10B1 ; [.1F6B.0020.0008] # GEORGIAN CAPITAL LETTER SAN
-10E2 ; [.1F6C.0020.0002] # GEORGIAN LETTER TAR
-2D12 ; [.1F6D.0020.0002] # GEORGIAN SMALL LETTER TAR
-10B2 ; [.1F6D.0020.0008] # GEORGIAN CAPITAL LETTER TAR
-10F3 ; [.1F6E.0020.0002] # GEORGIAN LETTER WE
-2D23 ; [.1F6F.0020.0002] # GEORGIAN SMALL LETTER WE
-10C3 ; [.1F6F.0020.0008] # GEORGIAN CAPITAL LETTER WE
-10E3 ; [.1F70.0020.0002] # GEORGIAN LETTER UN
-2D13 ; [.1F71.0020.0002] # GEORGIAN SMALL LETTER UN
-10B3 ; [.1F71.0020.0008] # GEORGIAN CAPITAL LETTER UN
-10E4 ; [.1F72.0020.0002] # GEORGIAN LETTER PHAR
-2D14 ; [.1F73.0020.0002] # GEORGIAN SMALL LETTER PHAR
-10B4 ; [.1F73.0020.0008] # GEORGIAN CAPITAL LETTER PHAR
-10E5 ; [.1F74.0020.0002] # GEORGIAN LETTER KHAR
-2D15 ; [.1F75.0020.0002] # GEORGIAN SMALL LETTER KHAR
-10B5 ; [.1F75.0020.0008] # GEORGIAN CAPITAL LETTER KHAR
-10E6 ; [.1F76.0020.0002] # GEORGIAN LETTER GHAN
-2D16 ; [.1F77.0020.0002] # GEORGIAN SMALL LETTER GHAN
-10B6 ; [.1F77.0020.0008] # GEORGIAN CAPITAL LETTER GHAN
-10E7 ; [.1F78.0020.0002] # GEORGIAN LETTER QAR
-2D17 ; [.1F79.0020.0002] # GEORGIAN SMALL LETTER QAR
-10B7 ; [.1F79.0020.0008] # GEORGIAN CAPITAL LETTER QAR
-10E8 ; [.1F7A.0020.0002] # GEORGIAN LETTER SHIN
-2D18 ; [.1F7B.0020.0002] # GEORGIAN SMALL LETTER SHIN
-10B8 ; [.1F7B.0020.0008] # GEORGIAN CAPITAL LETTER SHIN
-10E9 ; [.1F7C.0020.0002] # GEORGIAN LETTER CHIN
-2D19 ; [.1F7D.0020.0002] # GEORGIAN SMALL LETTER CHIN
-10B9 ; [.1F7D.0020.0008] # GEORGIAN CAPITAL LETTER CHIN
-10EA ; [.1F7E.0020.0002] # GEORGIAN LETTER CAN
-2D1A ; [.1F7F.0020.0002] # GEORGIAN SMALL LETTER CAN
-10BA ; [.1F7F.0020.0008] # GEORGIAN CAPITAL LETTER CAN
-10EB ; [.1F80.0020.0002] # GEORGIAN LETTER JIL
-2D1B ; [.1F81.0020.0002] # GEORGIAN SMALL LETTER JIL
-10BB ; [.1F81.0020.0008] # GEORGIAN CAPITAL LETTER JIL
-10EC ; [.1F82.0020.0002] # GEORGIAN LETTER CIL
-2D1C ; [.1F83.0020.0002] # GEORGIAN SMALL LETTER CIL
-10BC ; [.1F83.0020.0008] # GEORGIAN CAPITAL LETTER CIL
-10ED ; [.1F84.0020.0002] # GEORGIAN LETTER CHAR
-2D1D ; [.1F85.0020.0002] # GEORGIAN SMALL LETTER CHAR
-10BD ; [.1F85.0020.0008] # GEORGIAN CAPITAL LETTER CHAR
-10EE ; [.1F86.0020.0002] # GEORGIAN LETTER XAN
-2D1E ; [.1F87.0020.0002] # GEORGIAN SMALL LETTER XAN
-10BE ; [.1F87.0020.0008] # GEORGIAN CAPITAL LETTER XAN
-10F4 ; [.1F88.0020.0002] # GEORGIAN LETTER HAR
-2D24 ; [.1F89.0020.0002] # GEORGIAN SMALL LETTER HAR
-10C4 ; [.1F89.0020.0008] # GEORGIAN CAPITAL LETTER HAR
-10EF ; [.1F8A.0020.0002] # GEORGIAN LETTER JHAN
-2D1F ; [.1F8B.0020.0002] # GEORGIAN SMALL LETTER JHAN
-10BF ; [.1F8B.0020.0008] # GEORGIAN CAPITAL LETTER JHAN
-10F0 ; [.1F8C.0020.0002] # GEORGIAN LETTER HAE
-2D20 ; [.1F8D.0020.0002] # GEORGIAN SMALL LETTER HAE
-10C0 ; [.1F8D.0020.0008] # GEORGIAN CAPITAL LETTER HAE
-10F5 ; [.1F8E.0020.0002] # GEORGIAN LETTER HOE
-2D25 ; [.1F8F.0020.0002] # GEORGIAN SMALL LETTER HOE
-10C5 ; [.1F8F.0020.0008] # GEORGIAN CAPITAL LETTER HOE
-10F6 ; [.1F90.0020.0002] # GEORGIAN LETTER FI
-10F7 ; [.1F91.0020.0002] # GEORGIAN LETTER YN
-2D27 ; [.1F92.0020.0002] # GEORGIAN SMALL LETTER YN
-10C7 ; [.1F92.0020.0008] # GEORGIAN CAPITAL LETTER YN
-10F8 ; [.1F93.0020.0002] # GEORGIAN LETTER ELIFI
-10F9 ; [.1F94.0020.0002] # GEORGIAN LETTER TURNED GAN
-10FA ; [.1F95.0020.0002] # GEORGIAN LETTER AIN
-10FD ; [.1F96.0020.0002] # GEORGIAN LETTER AEN
-2D2D ; [.1F97.0020.0002] # GEORGIAN SMALL LETTER AEN
-10CD ; [.1F97.0020.0008] # GEORGIAN CAPITAL LETTER AEN
-10FE ; [.1F98.0020.0002] # GEORGIAN LETTER HARD SIGN
-10FF ; [.1F99.0020.0002] # GEORGIAN LETTER LABIAL SIGN
-0561 ; [.1F9A.0020.0002] # ARMENIAN SMALL LETTER AYB
-0531 ; [.1F9A.0020.0008] # ARMENIAN CAPITAL LETTER AYB
-0562 ; [.1F9B.0020.0002] # ARMENIAN SMALL LETTER BEN
-0532 ; [.1F9B.0020.0008] # ARMENIAN CAPITAL LETTER BEN
-0563 ; [.1F9C.0020.0002] # ARMENIAN SMALL LETTER GIM
-0533 ; [.1F9C.0020.0008] # ARMENIAN CAPITAL LETTER GIM
-0564 ; [.1F9D.0020.0002] # ARMENIAN SMALL LETTER DA
-0534 ; [.1F9D.0020.0008] # ARMENIAN CAPITAL LETTER DA
-0565 ; [.1F9E.0020.0002] # ARMENIAN SMALL LETTER ECH
-0535 ; [.1F9E.0020.0008] # ARMENIAN CAPITAL LETTER ECH
-0587 ; [.1F9E.0020.0004][.1FBB.0020.0004] # ARMENIAN SMALL LIGATURE ECH YIWN
-0566 ; [.1F9F.0020.0002] # ARMENIAN SMALL LETTER ZA
-0536 ; [.1F9F.0020.0008] # ARMENIAN CAPITAL LETTER ZA
-0567 ; [.1FA0.0020.0002] # ARMENIAN SMALL LETTER EH
-0537 ; [.1FA0.0020.0008] # ARMENIAN CAPITAL LETTER EH
-0568 ; [.1FA1.0020.0002] # ARMENIAN SMALL LETTER ET
-0538 ; [.1FA1.0020.0008] # ARMENIAN CAPITAL LETTER ET
-0569 ; [.1FA2.0020.0002] # ARMENIAN SMALL LETTER TO
-0539 ; [.1FA2.0020.0008] # ARMENIAN CAPITAL LETTER TO
-056A ; [.1FA3.0020.0002] # ARMENIAN SMALL LETTER ZHE
-053A ; [.1FA3.0020.0008] # ARMENIAN CAPITAL LETTER ZHE
-056B ; [.1FA4.0020.0002] # ARMENIAN SMALL LETTER INI
-053B ; [.1FA4.0020.0008] # ARMENIAN CAPITAL LETTER INI
-056C ; [.1FA5.0020.0002] # ARMENIAN SMALL LETTER LIWN
-053C ; [.1FA5.0020.0008] # ARMENIAN CAPITAL LETTER LIWN
-056D ; [.1FA6.0020.0002] # ARMENIAN SMALL LETTER XEH
-053D ; [.1FA6.0020.0008] # ARMENIAN CAPITAL LETTER XEH
-056E ; [.1FA7.0020.0002] # ARMENIAN SMALL LETTER CA
-053E ; [.1FA7.0020.0008] # ARMENIAN CAPITAL LETTER CA
-056F ; [.1FA8.0020.0002] # ARMENIAN SMALL LETTER KEN
-053F ; [.1FA8.0020.0008] # ARMENIAN CAPITAL LETTER KEN
-0570 ; [.1FA9.0020.0002] # ARMENIAN SMALL LETTER HO
-0540 ; [.1FA9.0020.0008] # ARMENIAN CAPITAL LETTER HO
-0571 ; [.1FAA.0020.0002] # ARMENIAN SMALL LETTER JA
-0541 ; [.1FAA.0020.0008] # ARMENIAN CAPITAL LETTER JA
-0572 ; [.1FAB.0020.0002] # ARMENIAN SMALL LETTER GHAD
-0542 ; [.1FAB.0020.0008] # ARMENIAN CAPITAL LETTER GHAD
-0573 ; [.1FAC.0020.0002] # ARMENIAN SMALL LETTER CHEH
-0543 ; [.1FAC.0020.0008] # ARMENIAN CAPITAL LETTER CHEH
-0574 ; [.1FAD.0020.0002] # ARMENIAN SMALL LETTER MEN
-0544 ; [.1FAD.0020.0008] # ARMENIAN CAPITAL LETTER MEN
-FB14 ; [.1FAD.0020.0004][.1F9E.0020.0004] # ARMENIAN SMALL LIGATURE MEN ECH
-FB15 ; [.1FAD.0020.0004][.1FA4.0020.0004] # ARMENIAN SMALL LIGATURE MEN INI
-FB17 ; [.1FAD.0020.0004][.1FA6.0020.0004] # ARMENIAN SMALL LIGATURE MEN XEH
-FB13 ; [.1FAD.0020.0004][.1FAF.0020.0004] # ARMENIAN SMALL LIGATURE MEN NOW
-0575 ; [.1FAE.0020.0002] # ARMENIAN SMALL LETTER YI
-0545 ; [.1FAE.0020.0008] # ARMENIAN CAPITAL LETTER YI
-0576 ; [.1FAF.0020.0002] # ARMENIAN SMALL LETTER NOW
-0546 ; [.1FAF.0020.0008] # ARMENIAN CAPITAL LETTER NOW
-0577 ; [.1FB0.0020.0002] # ARMENIAN SMALL LETTER SHA
-0547 ; [.1FB0.0020.0008] # ARMENIAN CAPITAL LETTER SHA
-0578 ; [.1FB1.0020.0002] # ARMENIAN SMALL LETTER VO
-0548 ; [.1FB1.0020.0008] # ARMENIAN CAPITAL LETTER VO
-0579 ; [.1FB2.0020.0002] # ARMENIAN SMALL LETTER CHA
-0549 ; [.1FB2.0020.0008] # ARMENIAN CAPITAL LETTER CHA
-057A ; [.1FB3.0020.0002] # ARMENIAN SMALL LETTER PEH
-054A ; [.1FB3.0020.0008] # ARMENIAN CAPITAL LETTER PEH
-057B ; [.1FB4.0020.0002] # ARMENIAN SMALL LETTER JHEH
-054B ; [.1FB4.0020.0008] # ARMENIAN CAPITAL LETTER JHEH
-057C ; [.1FB5.0020.0002] # ARMENIAN SMALL LETTER RA
-054C ; [.1FB5.0020.0008] # ARMENIAN CAPITAL LETTER RA
-057D ; [.1FB6.0020.0002] # ARMENIAN SMALL LETTER SEH
-054D ; [.1FB6.0020.0008] # ARMENIAN CAPITAL LETTER SEH
-057E ; [.1FB7.0020.0002] # ARMENIAN SMALL LETTER VEW
-054E ; [.1FB7.0020.0008] # ARMENIAN CAPITAL LETTER VEW
-FB16 ; [.1FB7.0020.0004][.1FAF.0020.0004] # ARMENIAN SMALL LIGATURE VEW NOW
-057F ; [.1FB8.0020.0002] # ARMENIAN SMALL LETTER TIWN
-054F ; [.1FB8.0020.0008] # ARMENIAN CAPITAL LETTER TIWN
-0580 ; [.1FB9.0020.0002] # ARMENIAN SMALL LETTER REH
-0550 ; [.1FB9.0020.0008] # ARMENIAN CAPITAL LETTER REH
-0581 ; [.1FBA.0020.0002] # ARMENIAN SMALL LETTER CO
-0551 ; [.1FBA.0020.0008] # ARMENIAN CAPITAL LETTER CO
-0582 ; [.1FBB.0020.0002] # ARMENIAN SMALL LETTER YIWN
-0552 ; [.1FBB.0020.0008] # ARMENIAN CAPITAL LETTER YIWN
-0583 ; [.1FBC.0020.0002] # ARMENIAN SMALL LETTER PIWR
-0553 ; [.1FBC.0020.0008] # ARMENIAN CAPITAL LETTER PIWR
-0584 ; [.1FBD.0020.0002] # ARMENIAN SMALL LETTER KEH
-0554 ; [.1FBD.0020.0008] # ARMENIAN CAPITAL LETTER KEH
-0585 ; [.1FBE.0020.0002] # ARMENIAN SMALL LETTER OH
-0555 ; [.1FBE.0020.0008] # ARMENIAN CAPITAL LETTER OH
-0586 ; [.1FBF.0020.0002] # ARMENIAN SMALL LETTER FEH
-0556 ; [.1FBF.0020.0008] # ARMENIAN CAPITAL LETTER FEH
-0559 ; [.1FC0.0020.0002] # ARMENIAN MODIFIER LETTER LEFT HALF RING
-05D0 ; [.1FC1.0020.0002] # HEBREW LETTER ALEF
-2135 ; [.1FC1.0020.0004] # ALEF SYMBOL
-FB21 ; [.1FC1.0020.0005] # HEBREW LETTER WIDE ALEF
-FB2E ; [.1FC1.0020.0002][.0000.0059.0002] # HEBREW LETTER ALEF WITH PATAH
-FB2F ; [.1FC1.0020.0002][.0000.005A.0002] # HEBREW LETTER ALEF WITH QAMATS
-FB30 ; [.1FC1.0020.0002][.0000.005F.0002] # HEBREW LETTER ALEF WITH MAPIQ
-FB4F ; [.1FC1.0020.0004][.1FCC.0020.0004] # HEBREW LIGATURE ALEF LAMED
-05D1 ; [.1FC2.0020.0002] # HEBREW LETTER BET
-2136 ; [.1FC2.0020.0004] # BET SYMBOL
-FB31 ; [.1FC2.0020.0002][.0000.005F.0002] # HEBREW LETTER BET WITH DAGESH
-FB4C ; [.1FC2.0020.0002][.0000.0060.0002] # HEBREW LETTER BET WITH RAFE
-05D2 ; [.1FC3.0020.0002] # HEBREW LETTER GIMEL
-2137 ; [.1FC3.0020.0004] # GIMEL SYMBOL
-FB32 ; [.1FC3.0020.0002][.0000.005F.0002] # HEBREW LETTER GIMEL WITH DAGESH
-05D3 ; [.1FC4.0020.0002] # HEBREW LETTER DALET
-2138 ; [.1FC4.0020.0004] # DALET SYMBOL
-FB22 ; [.1FC4.0020.0005] # HEBREW LETTER WIDE DALET
-FB33 ; [.1FC4.0020.0002][.0000.005F.0002] # HEBREW LETTER DALET WITH DAGESH
-05D4 ; [.1FC5.0020.0002] # HEBREW LETTER HE
-FB23 ; [.1FC5.0020.0005] # HEBREW LETTER WIDE HE
-FB34 ; [.1FC5.0020.0002][.0000.005F.0002] # HEBREW LETTER HE WITH MAPIQ
-05D5 ; [.1FC6.0020.0002] # HEBREW LETTER VAV
-FB4B ; [.1FC6.0020.0002][.0000.005B.0002] # HEBREW LETTER VAV WITH HOLAM
-FB35 ; [.1FC6.0020.0002][.0000.005F.0002] # HEBREW LETTER VAV WITH DAGESH
-05F0 ; [.1FC6.0020.0004][.1FC6.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE VAV
-05F1 ; [.1FC6.0020.0004][.1FCA.0020.0004] # HEBREW LIGATURE YIDDISH VAV YOD
-05D6 ; [.1FC7.0020.0002] # HEBREW LETTER ZAYIN
-FB36 ; [.1FC7.0020.0002][.0000.005F.0002] # HEBREW LETTER ZAYIN WITH DAGESH
-05D7 ; [.1FC8.0020.0002] # HEBREW LETTER HET
-05D8 ; [.1FC9.0020.0002] # HEBREW LETTER TET
-FB38 ; [.1FC9.0020.0002][.0000.005F.0002] # HEBREW LETTER TET WITH DAGESH
-05D9 ; [.1FCA.0020.0002] # HEBREW LETTER YOD
-FB1D ; [.1FCA.0020.0002][.0000.0056.0002] # HEBREW LETTER YOD WITH HIRIQ
-FB39 ; [.1FCA.0020.0002][.0000.005F.0002] # HEBREW LETTER YOD WITH DAGESH
-05F2 ; [.1FCA.0020.0004][.1FCA.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE YOD
-FB1F ; [.1FCA.0020.0004][.1FCA.0020.0004][.0000.0059.0002] # HEBREW LIGATURE YIDDISH YOD YOD PATAH
-05DB ; [.1FCB.0020.0002] # HEBREW LETTER KAF
-FB24 ; [.1FCB.0020.0005] # HEBREW LETTER WIDE KAF
-05DA ; [.1FCB.0020.0019] # HEBREW LETTER FINAL KAF
-FB3B ; [.1FCB.0020.0002][.0000.005F.0002] # HEBREW LETTER KAF WITH DAGESH
-FB3A ; [.1FCB.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL KAF WITH DAGESH
-FB4D ; [.1FCB.0020.0002][.0000.0060.0002] # HEBREW LETTER KAF WITH RAFE
-05DC ; [.1FCC.0020.0002] # HEBREW LETTER LAMED
-FB25 ; [.1FCC.0020.0005] # HEBREW LETTER WIDE LAMED
-FB3C ; [.1FCC.0020.0002][.0000.005F.0002] # HEBREW LETTER LAMED WITH DAGESH
-05DE ; [.1FCD.0020.0002] # HEBREW LETTER MEM
-FB26 ; [.1FCD.0020.0005] # HEBREW LETTER WIDE FINAL MEM
-05DD ; [.1FCD.0020.0019] # HEBREW LETTER FINAL MEM
-FB3E ; [.1FCD.0020.0002][.0000.005F.0002] # HEBREW LETTER MEM WITH DAGESH
-05E0 ; [.1FCE.0020.0002] # HEBREW LETTER NUN
-05DF ; [.1FCE.0020.0019] # HEBREW LETTER FINAL NUN
-FB40 ; [.1FCE.0020.0002][.0000.005F.0002] # HEBREW LETTER NUN WITH DAGESH
-05E1 ; [.1FCF.0020.0002] # HEBREW LETTER SAMEKH
-FB41 ; [.1FCF.0020.0002][.0000.005F.0002] # HEBREW LETTER SAMEKH WITH DAGESH
-05E2 ; [.1FD0.0020.0002] # HEBREW LETTER AYIN
-FB20 ; [.1FD0.0020.0005] # HEBREW LETTER ALTERNATIVE AYIN
-05E4 ; [.1FD1.0020.0002] # HEBREW LETTER PE
-05E3 ; [.1FD1.0020.0019] # HEBREW LETTER FINAL PE
-FB44 ; [.1FD1.0020.0002][.0000.005F.0002] # HEBREW LETTER PE WITH DAGESH
-FB43 ; [.1FD1.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL PE WITH DAGESH
-FB4E ; [.1FD1.0020.0002][.0000.0060.0002] # HEBREW LETTER PE WITH RAFE
-05E6 ; [.1FD2.0020.0002] # HEBREW LETTER TSADI
-05E5 ; [.1FD2.0020.0019] # HEBREW LETTER FINAL TSADI
-FB46 ; [.1FD2.0020.0002][.0000.005F.0002] # HEBREW LETTER TSADI WITH DAGESH
-05E7 ; [.1FD3.0020.0002] # HEBREW LETTER QOF
-FB47 ; [.1FD3.0020.0002][.0000.005F.0002] # HEBREW LETTER QOF WITH DAGESH
-05E8 ; [.1FD4.0020.0002] # HEBREW LETTER RESH
-FB27 ; [.1FD4.0020.0005] # HEBREW LETTER WIDE RESH
-FB48 ; [.1FD4.0020.0002][.0000.005F.0002] # HEBREW LETTER RESH WITH DAGESH
-05E9 ; [.1FD5.0020.0002] # HEBREW LETTER SHIN
-FB2B ; [.1FD5.0020.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH SIN DOT
-FB2A ; [.1FD5.0020.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH SHIN DOT
-FB49 ; [.1FD5.0020.0002][.0000.005F.0002] # HEBREW LETTER SHIN WITH DAGESH
-FB2D ; [.1FD5.0020.0002][.0000.005F.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
-FB2C ; [.1FD5.0020.0002][.0000.005F.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
-05EA ; [.1FD6.0020.0002] # HEBREW LETTER TAV
-FB28 ; [.1FD6.0020.0005] # HEBREW LETTER WIDE TAV
-FB4A ; [.1FD6.0020.0002][.0000.005F.0002] # HEBREW LETTER TAV WITH DAGESH
-10900 ; [.1FD7.0020.0002] # PHOENICIAN LETTER ALF
-10901 ; [.1FD8.0020.0002] # PHOENICIAN LETTER BET
-10902 ; [.1FD9.0020.0002] # PHOENICIAN LETTER GAML
-10903 ; [.1FDA.0020.0002] # PHOENICIAN LETTER DELT
-10904 ; [.1FDB.0020.0002] # PHOENICIAN LETTER HE
-10905 ; [.1FDC.0020.0002] # PHOENICIAN LETTER WAU
-10906 ; [.1FDD.0020.0002] # PHOENICIAN LETTER ZAI
-10907 ; [.1FDE.0020.0002] # PHOENICIAN LETTER HET
-10908 ; [.1FDF.0020.0002] # PHOENICIAN LETTER TET
-10909 ; [.1FE0.0020.0002] # PHOENICIAN LETTER YOD
-1090A ; [.1FE1.0020.0002] # PHOENICIAN LETTER KAF
-1090B ; [.1FE2.0020.0002] # PHOENICIAN LETTER LAMD
-1090C ; [.1FE3.0020.0002] # PHOENICIAN LETTER MEM
-1090D ; [.1FE4.0020.0002] # PHOENICIAN LETTER NUN
-1090E ; [.1FE5.0020.0002] # PHOENICIAN LETTER SEMK
-1090F ; [.1FE6.0020.0002] # PHOENICIAN LETTER AIN
-10910 ; [.1FE7.0020.0002] # PHOENICIAN LETTER PE
-10911 ; [.1FE8.0020.0002] # PHOENICIAN LETTER SADE
-10912 ; [.1FE9.0020.0002] # PHOENICIAN LETTER QOF
-10913 ; [.1FEA.0020.0002] # PHOENICIAN LETTER ROSH
-10914 ; [.1FEB.0020.0002] # PHOENICIAN LETTER SHIN
-10915 ; [.1FEC.0020.0002] # PHOENICIAN LETTER TAU
-0800 ; [.1FED.0020.0002] # SAMARITAN LETTER ALAF
-0801 ; [.1FEE.0020.0002] # SAMARITAN LETTER BIT
-0802 ; [.1FEF.0020.0002] # SAMARITAN LETTER GAMAN
-0803 ; [.1FF0.0020.0002] # SAMARITAN LETTER DALAT
-0804 ; [.1FF1.0020.0002] # SAMARITAN LETTER IY
-0805 ; [.1FF2.0020.0002] # SAMARITAN LETTER BAA
-0806 ; [.1FF3.0020.0002] # SAMARITAN LETTER ZEN
-0807 ; [.1FF4.0020.0002] # SAMARITAN LETTER IT
-0808 ; [.1FF5.0020.0002] # SAMARITAN LETTER TIT
-0809 ; [.1FF6.0020.0002] # SAMARITAN LETTER YUT
-080A ; [.1FF7.0020.0002] # SAMARITAN LETTER KAAF
-080B ; [.1FF8.0020.0002] # SAMARITAN LETTER LABAT
-080C ; [.1FF9.0020.0002] # SAMARITAN LETTER MIM
-080D ; [.1FFA.0020.0002] # SAMARITAN LETTER NUN
-080E ; [.1FFB.0020.0002] # SAMARITAN LETTER SINGAAT
-080F ; [.1FFC.0020.0002] # SAMARITAN LETTER IN
-0810 ; [.1FFD.0020.0002] # SAMARITAN LETTER FI
-0811 ; [.1FFE.0020.0002] # SAMARITAN LETTER TSAADIY
-0812 ; [.1FFF.0020.0002] # SAMARITAN LETTER QUF
-0813 ; [.2000.0020.0002] # SAMARITAN LETTER RISH
-0814 ; [.2001.0020.0002] # SAMARITAN LETTER SHAN
-0815 ; [.2002.0020.0002] # SAMARITAN LETTER TAAF
-0816 ; [.2003.0020.0002] # SAMARITAN MARK IN
-0817 ; [.2004.0020.0002] # SAMARITAN MARK IN-ALAF
-081A ; [.2005.0020.0002] # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
-081B ; [.2006.0020.0002] # SAMARITAN MARK EPENTHETIC YUT
-0621 ; [.2007.0020.0002] # ARABIC LETTER HAMZA
-0674 ; [.2007.0020.0004] # ARABIC LETTER HIGH HAMZA
-FE80 ; [.2007.0020.001A] # ARABIC LETTER HAMZA ISOLATED FORM
-06FD ; [.2007.0020.0004][.0000.0109.0004] # ARABIC SIGN SINDHI AMPERSAND
-0622 ; [.2008.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
-0627 0653 ; [.2008.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
-FE82 ; [.2008.0020.0019] # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-FE81 ; [.2008.0020.001A] # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-0623 ; [.2009.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-0627 0654 ; [.2009.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
-FE84 ; [.2009.0020.0019] # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-FE83 ; [.2009.0020.001A] # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-0672 ; [.200A.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
-0671 ; [.200B.0020.0002] # ARABIC LETTER ALEF WASLA
-FB51 ; [.200B.0020.0019] # ARABIC LETTER ALEF WASLA FINAL FORM
-FB50 ; [.200B.0020.001A] # ARABIC LETTER ALEF WASLA ISOLATED FORM
-0624 ; [.200C.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
-0648 0654 ; [.200C.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
-FE86 ; [.200C.0020.0019] # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
-FE85 ; [.200C.0020.001A] # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-0625 ; [.200D.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
-0627 0655 ; [.200D.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
-FE88 ; [.200D.0020.0019] # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
-FE87 ; [.200D.0020.001A] # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
-0673 ; [.200E.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
-0773 ; [.200F.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0774 ; [.2010.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0626 ; [.2011.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
-064A 0654 ; [.2011.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
-FE8B ; [.2011.0020.0017] # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-FE8C ; [.2011.0020.0018] # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
-FE8A ; [.2011.0020.0019] # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-FE89 ; [.2011.0020.001A] # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-FBEB ; [.2011.0020.0019][.2015.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
-FBEA ; [.2011.0020.001A][.2015.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
-FC97 ; [.2011.0020.0017][.202C.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
-FC00 ; [.2011.0020.001A][.202C.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
-FC98 ; [.2011.0020.0017][.2033.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
-FC01 ; [.2011.0020.001A][.2033.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
-FC99 ; [.2011.0020.0017][.2034.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
-FC64 ; [.2011.0020.0019][.204D.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
-FC65 ; [.2011.0020.0019][.204E.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
-FC9A ; [.2011.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
-FCDF ; [.2011.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
-FC66 ; [.2011.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
-FC02 ; [.2011.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
-FC67 ; [.2011.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
-FC9B ; [.2011.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
-FCE0 ; [.2011.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
-FBED ; [.2011.0020.0019][.20B7.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
-FBEC ; [.2011.0020.001A][.20B7.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
-FBEF ; [.2011.0020.0019][.20B8.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
-FBEE ; [.2011.0020.001A][.20B8.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
-FBF3 ; [.2011.0020.0019][.20BB.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
-FBF2 ; [.2011.0020.001A][.20BB.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
-FBF1 ; [.2011.0020.0019][.20BC.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
-FBF0 ; [.2011.0020.001A][.20BC.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
-FBF5 ; [.2011.0020.0019][.20BD.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
-FBF4 ; [.2011.0020.001A][.20BD.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
-FBFB ; [.2011.0020.0017][.20C6.0020.0017] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
-FBFA ; [.2011.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FC68 ; [.2011.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
-FBF9 ; [.2011.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC03 ; [.2011.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
-FC69 ; [.2011.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
-FC04 ; [.2011.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
-FBF8 ; [.2011.0020.0017][.20CB.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
-FBF7 ; [.2011.0020.0019][.20CB.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
-FBF6 ; [.2011.0020.001A][.20CB.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
-08A8 ; [.2012.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE
-08A9 ; [.2013.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
-08AC ; [.2014.0020.0002] # ARABIC LETTER ROHINGYA YEH
-0627 ; [.2015.0020.0002] # ARABIC LETTER ALEF
-08AD ; [.2015.0020.0004] # ARABIC LETTER LOW ALEF
-1EE00 ; [.2015.0020.0005] # ARABIC MATHEMATICAL ALEF
-1EE80 ; [.2015.0020.0005] # ARABIC MATHEMATICAL LOOPED ALEF
-FE8E ; [.2015.0020.0019] # ARABIC LETTER ALEF FINAL FORM
-FE8D ; [.2015.0020.001A] # ARABIC LETTER ALEF ISOLATED FORM
-FD3C ; [.2015.0020.0019][.0000.006D.0019] # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
-FD3D ; [.2015.0020.001A][.0000.006D.001A] # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-0675 ; [.2015.0020.0004][.2007.0020.0004] # ARABIC LETTER HIGH HAMZA ALEF
-FDF3 ; [.2015.0020.001A][.208A.0020.001A][.2017.0020.001A][.204D.0020.001A] # ARABIC LIGATURE AKBAR ISOLATED FORM
-FDF2 ; [.2015.0020.001A][.209E.0020.001A][.209E.0020.001A][.20B2.0020.001A] # ARABIC LIGATURE ALLAH ISOLATED FORM
-066E ; [.2016.0020.0002] # ARABIC LETTER DOTLESS BEH
-1EE1C ; [.2016.0020.0005] # ARABIC MATHEMATICAL DOTLESS BEH
-1EE7C ; [.2016.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
-0628 ; [.2017.0020.0002] # ARABIC LETTER BEH
-1EE01 ; [.2017.0020.0005] # ARABIC MATHEMATICAL BEH
-1EE21 ; [.2017.0020.0005] # ARABIC MATHEMATICAL INITIAL BEH
-1EE61 ; [.2017.0020.0005] # ARABIC MATHEMATICAL STRETCHED BEH
-1EE81 ; [.2017.0020.0005] # ARABIC MATHEMATICAL LOOPED BEH
-1EEA1 ; [.2017.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
-FE91 ; [.2017.0020.0017] # ARABIC LETTER BEH INITIAL FORM
-FE92 ; [.2017.0020.0018] # ARABIC LETTER BEH MEDIAL FORM
-FE90 ; [.2017.0020.0019] # ARABIC LETTER BEH FINAL FORM
-FE8F ; [.2017.0020.001A] # ARABIC LETTER BEH ISOLATED FORM
-FC9C ; [.2017.0020.0017][.202C.0020.0017] # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
-FC05 ; [.2017.0020.001A][.202C.0020.001A] # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
-FC9D ; [.2017.0020.0017][.2033.0020.0017] # ARABIC LIGATURE BEH WITH HAH INITIAL FORM
-FC06 ; [.2017.0020.001A][.2033.0020.001A] # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
-FDC2 ; [.2017.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
-FC9E ; [.2017.0020.0017][.2034.0020.0017] # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
-FC07 ; [.2017.0020.001A][.2034.0020.001A] # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
-FD9E ; [.2017.0020.0019][.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
-FC6A ; [.2017.0020.0019][.204D.0020.0019] # ARABIC LIGATURE BEH WITH REH FINAL FORM
-FC6B ; [.2017.0020.0019][.204E.0020.0019] # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
-FC9F ; [.2017.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
-FCE1 ; [.2017.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
-FC6C ; [.2017.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE BEH WITH MEEM FINAL FORM
-FC08 ; [.2017.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
-FC6D ; [.2017.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE BEH WITH NOON FINAL FORM
-FCA0 ; [.2017.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE BEH WITH HEH INITIAL FORM
-FCE2 ; [.2017.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
-FC6E ; [.2017.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
-FC09 ; [.2017.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
-FC6F ; [.2017.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE BEH WITH YEH FINAL FORM
-FC0A ; [.2017.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
-067B ; [.2018.0020.0002] # ARABIC LETTER BEEH
-FB54 ; [.2018.0020.0017] # ARABIC LETTER BEEH INITIAL FORM
-FB55 ; [.2018.0020.0018] # ARABIC LETTER BEEH MEDIAL FORM
-FB53 ; [.2018.0020.0019] # ARABIC LETTER BEEH FINAL FORM
-FB52 ; [.2018.0020.001A] # ARABIC LETTER BEEH ISOLATED FORM
-067E ; [.2019.0020.0002] # ARABIC LETTER PEH
-FB58 ; [.2019.0020.0017] # ARABIC LETTER PEH INITIAL FORM
-FB59 ; [.2019.0020.0018] # ARABIC LETTER PEH MEDIAL FORM
-FB57 ; [.2019.0020.0019] # ARABIC LETTER PEH FINAL FORM
-FB56 ; [.2019.0020.001A] # ARABIC LETTER PEH ISOLATED FORM
-0680 ; [.201A.0020.0002] # ARABIC LETTER BEHEH
-FB5C ; [.201A.0020.0017] # ARABIC LETTER BEHEH INITIAL FORM
-FB5D ; [.201A.0020.0018] # ARABIC LETTER BEHEH MEDIAL FORM
-FB5B ; [.201A.0020.0019] # ARABIC LETTER BEHEH FINAL FORM
-FB5A ; [.201A.0020.001A] # ARABIC LETTER BEHEH ISOLATED FORM
-0750 ; [.201B.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
-0751 ; [.201C.0020.0002] # ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
-0752 ; [.201D.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
-0753 ; [.201E.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
-0754 ; [.201F.0020.0002] # ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
-0755 ; [.2020.0020.0002] # ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
-08A0 ; [.2021.0020.0002] # ARABIC LETTER BEH WITH SMALL V BELOW
-0756 ; [.2022.0020.0002] # ARABIC LETTER BEH WITH SMALL V
-08A1 ; [.2023.0020.0002] # ARABIC LETTER BEH WITH HAMZA ABOVE
-0629 ; [.2024.0020.0002] # ARABIC LETTER TEH MARBUTA
-FE94 ; [.2024.0020.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
-FE93 ; [.2024.0020.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
-062A ; [.2025.0020.0002] # ARABIC LETTER TEH
-1EE15 ; [.2025.0020.0005] # ARABIC MATHEMATICAL TEH
-1EE35 ; [.2025.0020.0005] # ARABIC MATHEMATICAL INITIAL TEH
-1EE75 ; [.2025.0020.0005] # ARABIC MATHEMATICAL STRETCHED TEH
-1EE95 ; [.2025.0020.0005] # ARABIC MATHEMATICAL LOOPED TEH
-1EEB5 ; [.2025.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
-FE97 ; [.2025.0020.0017] # ARABIC LETTER TEH INITIAL FORM
-FE98 ; [.2025.0020.0018] # ARABIC LETTER TEH MEDIAL FORM
-FE96 ; [.2025.0020.0019] # ARABIC LETTER TEH FINAL FORM
-FE95 ; [.2025.0020.001A] # ARABIC LETTER TEH ISOLATED FORM
-FCA1 ; [.2025.0020.0017][.202C.0020.0017] # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
-FC0B ; [.2025.0020.001A][.202C.0020.001A] # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
-FD50 ; [.2025.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
-FDA0 ; [.2025.0020.0019][.202C.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FD9F ; [.2025.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
-FCA2 ; [.2025.0020.0017][.2033.0020.0017] # ARABIC LIGATURE TEH WITH HAH INITIAL FORM
-FC0C ; [.2025.0020.001A][.2033.0020.001A] # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
-FD52 ; [.2025.0020.0017][.2033.0020.0017][.202C.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
-FD51 ; [.2025.0020.0019][.2033.0020.0019][.202C.0020.0019] # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
-FD53 ; [.2025.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
-FCA3 ; [.2025.0020.0017][.2034.0020.0017] # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
-FC0D ; [.2025.0020.001A][.2034.0020.001A] # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
-FD54 ; [.2025.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
-FDA2 ; [.2025.0020.0019][.2034.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDA1 ; [.2025.0020.0019][.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
-FC70 ; [.2025.0020.0019][.204D.0020.0019] # ARABIC LIGATURE TEH WITH REH FINAL FORM
-FC71 ; [.2025.0020.0019][.204E.0020.0019] # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
-FCA4 ; [.2025.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
-FCE3 ; [.2025.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
-FC72 ; [.2025.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE TEH WITH MEEM FINAL FORM
-FC0E ; [.2025.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
-FD55 ; [.2025.0020.0017][.20A5.0020.0017][.202C.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
-FD56 ; [.2025.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
-FD57 ; [.2025.0020.0017][.20A5.0020.0017][.2034.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
-FDA4 ; [.2025.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA3 ; [.2025.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
-FC73 ; [.2025.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE TEH WITH NOON FINAL FORM
-FCA5 ; [.2025.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE TEH WITH HEH INITIAL FORM
-FCE4 ; [.2025.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
-FC74 ; [.2025.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
-FC0F ; [.2025.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
-FC75 ; [.2025.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TEH WITH YEH FINAL FORM
-FC10 ; [.2025.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
-062B ; [.2026.0020.0002] # ARABIC LETTER THEH
-1EE16 ; [.2026.0020.0005] # ARABIC MATHEMATICAL THEH
-1EE36 ; [.2026.0020.0005] # ARABIC MATHEMATICAL INITIAL THEH
-1EE76 ; [.2026.0020.0005] # ARABIC MATHEMATICAL STRETCHED THEH
-1EE96 ; [.2026.0020.0005] # ARABIC MATHEMATICAL LOOPED THEH
-1EEB6 ; [.2026.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
-FE9B ; [.2026.0020.0017] # ARABIC LETTER THEH INITIAL FORM
-FE9C ; [.2026.0020.0018] # ARABIC LETTER THEH MEDIAL FORM
-FE9A ; [.2026.0020.0019] # ARABIC LETTER THEH FINAL FORM
-FE99 ; [.2026.0020.001A] # ARABIC LETTER THEH ISOLATED FORM
-FC11 ; [.2026.0020.001A][.202C.0020.001A] # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
-FC76 ; [.2026.0020.0019][.204D.0020.0019] # ARABIC LIGATURE THEH WITH REH FINAL FORM
-FC77 ; [.2026.0020.0019][.204E.0020.0019] # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
-FCA6 ; [.2026.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
-FCE5 ; [.2026.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
-FC78 ; [.2026.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE THEH WITH MEEM FINAL FORM
-FC12 ; [.2026.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
-FC79 ; [.2026.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE THEH WITH NOON FINAL FORM
-FCE6 ; [.2026.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
-FC7A ; [.2026.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
-FC13 ; [.2026.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
-FC7B ; [.2026.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE THEH WITH YEH FINAL FORM
-FC14 ; [.2026.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
-0679 ; [.2027.0020.0002] # ARABIC LETTER TTEH
-FB68 ; [.2027.0020.0017] # ARABIC LETTER TTEH INITIAL FORM
-FB69 ; [.2027.0020.0018] # ARABIC LETTER TTEH MEDIAL FORM
-FB67 ; [.2027.0020.0019] # ARABIC LETTER TTEH FINAL FORM
-FB66 ; [.2027.0020.001A] # ARABIC LETTER TTEH ISOLATED FORM
-067A ; [.2028.0020.0002] # ARABIC LETTER TTEHEH
-FB60 ; [.2028.0020.0017] # ARABIC LETTER TTEHEH INITIAL FORM
-FB61 ; [.2028.0020.0018] # ARABIC LETTER TTEHEH MEDIAL FORM
-FB5F ; [.2028.0020.0019] # ARABIC LETTER TTEHEH FINAL FORM
-FB5E ; [.2028.0020.001A] # ARABIC LETTER TTEHEH ISOLATED FORM
-067C ; [.2029.0020.0002] # ARABIC LETTER TEH WITH RING
-067D ; [.202A.0020.0002] # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
-067F ; [.202B.0020.0002] # ARABIC LETTER TEHEH
-FB64 ; [.202B.0020.0017] # ARABIC LETTER TEHEH INITIAL FORM
-FB65 ; [.202B.0020.0018] # ARABIC LETTER TEHEH MEDIAL FORM
-FB63 ; [.202B.0020.0019] # ARABIC LETTER TEHEH FINAL FORM
-FB62 ; [.202B.0020.001A] # ARABIC LETTER TEHEH ISOLATED FORM
-062C ; [.202C.0020.0002] # ARABIC LETTER JEEM
-1EE02 ; [.202C.0020.0005] # ARABIC MATHEMATICAL JEEM
-1EE22 ; [.202C.0020.0005] # ARABIC MATHEMATICAL INITIAL JEEM
-1EE42 ; [.202C.0020.0005] # ARABIC MATHEMATICAL TAILED JEEM
-1EE62 ; [.202C.0020.0005] # ARABIC MATHEMATICAL STRETCHED JEEM
-1EE82 ; [.202C.0020.0005] # ARABIC MATHEMATICAL LOOPED JEEM
-1EEA2 ; [.202C.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
-FE9F ; [.202C.0020.0017] # ARABIC LETTER JEEM INITIAL FORM
-FEA0 ; [.202C.0020.0018] # ARABIC LETTER JEEM MEDIAL FORM
-FE9E ; [.202C.0020.0019] # ARABIC LETTER JEEM FINAL FORM
-FE9D ; [.202C.0020.001A] # ARABIC LETTER JEEM ISOLATED FORM
-FCA7 ; [.202C.0020.0017][.2033.0020.0017] # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
-FC15 ; [.202C.0020.001A][.2033.0020.001A] # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
-FDA6 ; [.202C.0020.0019][.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDBE ; [.202C.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
-FDFB ; [.202C.0020.001A][.209E.0020.001A][*0209.0020.001A][.202C.0020.001A][.209E.0020.001A][.2015.0020.001A][.209E.0020.001A][.20B2.0020.001A] # ARABIC LIGATURE JALLAJALALOUHOU
-FCA8 ; [.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
-FC16 ; [.202C.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
-FD59 ; [.202C.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
-FD58 ; [.202C.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
-FDA7 ; [.202C.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDA5 ; [.202C.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
-FD1D ; [.202C.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
-FD01 ; [.202C.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
-FD1E ; [.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE JEEM WITH YEH FINAL FORM
-FD02 ; [.202C.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
-0683 ; [.202D.0020.0002] # ARABIC LETTER NYEH
-FB78 ; [.202D.0020.0017] # ARABIC LETTER NYEH INITIAL FORM
-FB79 ; [.202D.0020.0018] # ARABIC LETTER NYEH MEDIAL FORM
-FB77 ; [.202D.0020.0019] # ARABIC LETTER NYEH FINAL FORM
-FB76 ; [.202D.0020.001A] # ARABIC LETTER NYEH ISOLATED FORM
-0684 ; [.202E.0020.0002] # ARABIC LETTER DYEH
-FB74 ; [.202E.0020.0017] # ARABIC LETTER DYEH INITIAL FORM
-FB75 ; [.202E.0020.0018] # ARABIC LETTER DYEH MEDIAL FORM
-FB73 ; [.202E.0020.0019] # ARABIC LETTER DYEH FINAL FORM
-FB72 ; [.202E.0020.001A] # ARABIC LETTER DYEH ISOLATED FORM
-0686 ; [.202F.0020.0002] # ARABIC LETTER TCHEH
-FB7C ; [.202F.0020.0017] # ARABIC LETTER TCHEH INITIAL FORM
-FB7D ; [.202F.0020.0018] # ARABIC LETTER TCHEH MEDIAL FORM
-FB7B ; [.202F.0020.0019] # ARABIC LETTER TCHEH FINAL FORM
-FB7A ; [.202F.0020.001A] # ARABIC LETTER TCHEH ISOLATED FORM
-06BF ; [.2030.0020.0002] # ARABIC LETTER TCHEH WITH DOT ABOVE
-0687 ; [.2031.0020.0002] # ARABIC LETTER TCHEHEH
-FB80 ; [.2031.0020.0017] # ARABIC LETTER TCHEHEH INITIAL FORM
-FB81 ; [.2031.0020.0018] # ARABIC LETTER TCHEHEH MEDIAL FORM
-FB7F ; [.2031.0020.0019] # ARABIC LETTER TCHEHEH FINAL FORM
-FB7E ; [.2031.0020.001A] # ARABIC LETTER TCHEHEH ISOLATED FORM
-08A2 ; [.2032.0020.0002] # ARABIC LETTER JEEM WITH TWO DOTS ABOVE
-062D ; [.2033.0020.0002] # ARABIC LETTER HAH
-1EE07 ; [.2033.0020.0005] # ARABIC MATHEMATICAL HAH
-1EE27 ; [.2033.0020.0005] # ARABIC MATHEMATICAL INITIAL HAH
-1EE47 ; [.2033.0020.0005] # ARABIC MATHEMATICAL TAILED HAH
-1EE67 ; [.2033.0020.0005] # ARABIC MATHEMATICAL STRETCHED HAH
-1EE87 ; [.2033.0020.0005] # ARABIC MATHEMATICAL LOOPED HAH
-1EEA7 ; [.2033.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
-FEA3 ; [.2033.0020.0017] # ARABIC LETTER HAH INITIAL FORM
-FEA4 ; [.2033.0020.0018] # ARABIC LETTER HAH MEDIAL FORM
-FEA2 ; [.2033.0020.0019] # ARABIC LETTER HAH FINAL FORM
-FEA1 ; [.2033.0020.001A] # ARABIC LETTER HAH ISOLATED FORM
-FCA9 ; [.2033.0020.0017][.202C.0020.0017] # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
-FC17 ; [.2033.0020.001A][.202C.0020.001A] # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
-FDBF ; [.2033.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
-FCAA ; [.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
-FC18 ; [.2033.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
-FD5B ; [.2033.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD5A ; [.2033.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
-FD1B ; [.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
-FCFF ; [.2033.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
-FD1C ; [.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE HAH WITH YEH FINAL FORM
-FD00 ; [.2033.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
-062E ; [.2034.0020.0002] # ARABIC LETTER KHAH
-1EE17 ; [.2034.0020.0005] # ARABIC MATHEMATICAL KHAH
-1EE37 ; [.2034.0020.0005] # ARABIC MATHEMATICAL INITIAL KHAH
-1EE57 ; [.2034.0020.0005] # ARABIC MATHEMATICAL TAILED KHAH
-1EE77 ; [.2034.0020.0005] # ARABIC MATHEMATICAL STRETCHED KHAH
-1EE97 ; [.2034.0020.0005] # ARABIC MATHEMATICAL LOOPED KHAH
-1EEB7 ; [.2034.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
-FEA7 ; [.2034.0020.0017] # ARABIC LETTER KHAH INITIAL FORM
-FEA8 ; [.2034.0020.0018] # ARABIC LETTER KHAH MEDIAL FORM
-FEA6 ; [.2034.0020.0019] # ARABIC LETTER KHAH FINAL FORM
-FEA5 ; [.2034.0020.001A] # ARABIC LETTER KHAH ISOLATED FORM
-FCAB ; [.2034.0020.0017][.202C.0020.0017] # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
-FC19 ; [.2034.0020.001A][.202C.0020.001A] # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
-FC1A ; [.2034.0020.001A][.2033.0020.001A] # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
-FCAC ; [.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
-FC1B ; [.2034.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
-FD1F ; [.2034.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
-FD03 ; [.2034.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
-FD20 ; [.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE KHAH WITH YEH FINAL FORM
-FD04 ; [.2034.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
-0681 ; [.2035.0020.0002] # ARABIC LETTER HAH WITH HAMZA ABOVE
-0682 ; [.2036.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
-0685 ; [.2037.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS ABOVE
-0757 ; [.2038.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS ABOVE
-0758 ; [.2039.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
-076E ; [.203A.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW
-076F ; [.203B.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-0772 ; [.203C.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
-077C ; [.203D.0020.0002] # ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-062F ; [.203E.0020.0002] # ARABIC LETTER DAL
-1EE03 ; [.203E.0020.0005] # ARABIC MATHEMATICAL DAL
-1EE83 ; [.203E.0020.0005] # ARABIC MATHEMATICAL LOOPED DAL
-1EEA3 ; [.203E.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
-FEAA ; [.203E.0020.0019] # ARABIC LETTER DAL FINAL FORM
-FEA9 ; [.203E.0020.001A] # ARABIC LETTER DAL ISOLATED FORM
-0630 ; [.203F.0020.0002] # ARABIC LETTER THAL
-1EE18 ; [.203F.0020.0005] # ARABIC MATHEMATICAL THAL
-1EE98 ; [.203F.0020.0005] # ARABIC MATHEMATICAL LOOPED THAL
-1EEB8 ; [.203F.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
-FEAC ; [.203F.0020.0019] # ARABIC LETTER THAL FINAL FORM
-FEAB ; [.203F.0020.001A] # ARABIC LETTER THAL ISOLATED FORM
-FC5B ; [.203F.0020.001A][.0000.0097.001A] # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
-0688 ; [.2040.0020.0002] # ARABIC LETTER DDAL
-FB89 ; [.2040.0020.0019] # ARABIC LETTER DDAL FINAL FORM
-FB88 ; [.2040.0020.001A] # ARABIC LETTER DDAL ISOLATED FORM
-0689 ; [.2041.0020.0002] # ARABIC LETTER DAL WITH RING
-068A ; [.2042.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW
-068B ; [.2043.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
-068C ; [.2044.0020.0002] # ARABIC LETTER DAHAL
-FB85 ; [.2044.0020.0019] # ARABIC LETTER DAHAL FINAL FORM
-FB84 ; [.2044.0020.001A] # ARABIC LETTER DAHAL ISOLATED FORM
-068D ; [.2045.0020.0002] # ARABIC LETTER DDAHAL
-FB83 ; [.2045.0020.0019] # ARABIC LETTER DDAHAL FINAL FORM
-FB82 ; [.2045.0020.001A] # ARABIC LETTER DDAHAL ISOLATED FORM
-08AE ; [.2046.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS BELOW
-068E ; [.2047.0020.0002] # ARABIC LETTER DUL
-FB87 ; [.2047.0020.0019] # ARABIC LETTER DUL FINAL FORM
-FB86 ; [.2047.0020.001A] # ARABIC LETTER DUL ISOLATED FORM
-068F ; [.2048.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
-0690 ; [.2049.0020.0002] # ARABIC LETTER DAL WITH FOUR DOTS ABOVE
-06EE ; [.204A.0020.0002] # ARABIC LETTER DAL WITH INVERTED V
-0759 ; [.204B.0020.0002] # ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
-075A ; [.204C.0020.0002] # ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
-0631 ; [.204D.0020.0002] # ARABIC LETTER REH
-1EE13 ; [.204D.0020.0005] # ARABIC MATHEMATICAL REH
-1EE93 ; [.204D.0020.0005] # ARABIC MATHEMATICAL LOOPED REH
-1EEB3 ; [.204D.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK REH
-FEAE ; [.204D.0020.0019] # ARABIC LETTER REH FINAL FORM
-FEAD ; [.204D.0020.001A] # ARABIC LETTER REH ISOLATED FORM
-FC5C ; [.204D.0020.001A][.0000.0097.001A] # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
-FDF6 ; [.204D.0020.001A][.205F.0020.001A][.20B8.0020.001A][.209E.0020.001A] # ARABIC LIGATURE RASOUL ISOLATED FORM
-FDFC ; [.204D.0020.001A][.20C8.0020.001A][.2015.0020.001A][.209E.0020.001A] # RIAL SIGN
-0632 ; [.204E.0020.0002] # ARABIC LETTER ZAIN
-1EE06 ; [.204E.0020.0005] # ARABIC MATHEMATICAL ZAIN
-1EE86 ; [.204E.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAIN
-1EEA6 ; [.204E.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
-FEB0 ; [.204E.0020.0019] # ARABIC LETTER ZAIN FINAL FORM
-FEAF ; [.204E.0020.001A] # ARABIC LETTER ZAIN ISOLATED FORM
-0691 ; [.204F.0020.0002] # ARABIC LETTER RREH
-FB8D ; [.204F.0020.0019] # ARABIC LETTER RREH FINAL FORM
-FB8C ; [.204F.0020.001A] # ARABIC LETTER RREH ISOLATED FORM
-0692 ; [.2050.0020.0002] # ARABIC LETTER REH WITH SMALL V
-0693 ; [.2051.0020.0002] # ARABIC LETTER REH WITH RING
-0694 ; [.2052.0020.0002] # ARABIC LETTER REH WITH DOT BELOW
-0695 ; [.2053.0020.0002] # ARABIC LETTER REH WITH SMALL V BELOW
-0696 ; [.2054.0020.0002] # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
-0697 ; [.2055.0020.0002] # ARABIC LETTER REH WITH TWO DOTS ABOVE
-0698 ; [.2056.0020.0002] # ARABIC LETTER JEH
-FB8B ; [.2056.0020.0019] # ARABIC LETTER JEH FINAL FORM
-FB8A ; [.2056.0020.001A] # ARABIC LETTER JEH ISOLATED FORM
-0699 ; [.2057.0020.0002] # ARABIC LETTER REH WITH FOUR DOTS ABOVE
-06EF ; [.2058.0020.0002] # ARABIC LETTER REH WITH INVERTED V
-075B ; [.2059.0020.0002] # ARABIC LETTER REH WITH STROKE
-076B ; [.205A.0020.0002] # ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
-076C ; [.205B.0020.0002] # ARABIC LETTER REH WITH HAMZA ABOVE
-0771 ; [.205C.0020.0002] # ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-08AA ; [.205D.0020.0002] # ARABIC LETTER REH WITH LOOP
-08B2 ; [.205E.0020.0002] # ARABIC LETTER ZAIN WITH INVERTED V ABOVE
-0633 ; [.205F.0020.0002] # ARABIC LETTER SEEN
-1EE0E ; [.205F.0020.0005] # ARABIC MATHEMATICAL SEEN
-1EE2E ; [.205F.0020.0005] # ARABIC MATHEMATICAL INITIAL SEEN
-1EE4E ; [.205F.0020.0005] # ARABIC MATHEMATICAL TAILED SEEN
-1EE6E ; [.205F.0020.0005] # ARABIC MATHEMATICAL STRETCHED SEEN
-1EE8E ; [.205F.0020.0005] # ARABIC MATHEMATICAL LOOPED SEEN
-1EEAE ; [.205F.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
-FEB3 ; [.205F.0020.0017] # ARABIC LETTER SEEN INITIAL FORM
-FEB4 ; [.205F.0020.0018] # ARABIC LETTER SEEN MEDIAL FORM
-FEB2 ; [.205F.0020.0019] # ARABIC LETTER SEEN FINAL FORM
-FEB1 ; [.205F.0020.001A] # ARABIC LETTER SEEN ISOLATED FORM
-FCAD ; [.205F.0020.0017][.202C.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
-FD34 ; [.205F.0020.0018][.202C.0020.0018] # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
-FC1C ; [.205F.0020.001A][.202C.0020.001A] # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
-FD5D ; [.205F.0020.0017][.202C.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
-FD5E ; [.205F.0020.0019][.202C.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FCAE ; [.205F.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
-FD35 ; [.205F.0020.0018][.2033.0020.0018] # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
-FC1D ; [.205F.0020.001A][.2033.0020.001A] # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
-FD5C ; [.205F.0020.0017][.2033.0020.0017][.202C.0020.0017] # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
-FCAF ; [.205F.0020.0017][.2034.0020.0017] # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
-FD36 ; [.205F.0020.0018][.2034.0020.0018] # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
-FC1E ; [.205F.0020.001A][.2034.0020.001A] # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
-FDA8 ; [.205F.0020.0019][.2034.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
-FDC6 ; [.205F.0020.0019][.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
-FD2A ; [.205F.0020.0019][.204D.0020.0019] # ARABIC LIGATURE SEEN WITH REH FINAL FORM
-FD0E ; [.205F.0020.001A][.204D.0020.001A] # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
-FCB0 ; [.205F.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
-FCE7 ; [.205F.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
-FC1F ; [.205F.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
-FD61 ; [.205F.0020.0017][.20A5.0020.0017][.202C.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
-FD60 ; [.205F.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
-FD5F ; [.205F.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
-FD63 ; [.205F.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
-FD62 ; [.205F.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
-FD31 ; [.205F.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
-FCE8 ; [.205F.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
-FD17 ; [.205F.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
-FCFB ; [.205F.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
-FD18 ; [.205F.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SEEN WITH YEH FINAL FORM
-FCFC ; [.205F.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
-0634 ; [.2060.0020.0002] # ARABIC LETTER SHEEN
-1EE14 ; [.2060.0020.0005] # ARABIC MATHEMATICAL SHEEN
-1EE34 ; [.2060.0020.0005] # ARABIC MATHEMATICAL INITIAL SHEEN
-1EE54 ; [.2060.0020.0005] # ARABIC MATHEMATICAL TAILED SHEEN
-1EE74 ; [.2060.0020.0005] # ARABIC MATHEMATICAL STRETCHED SHEEN
-1EE94 ; [.2060.0020.0005] # ARABIC MATHEMATICAL LOOPED SHEEN
-1EEB4 ; [.2060.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
-FEB7 ; [.2060.0020.0017] # ARABIC LETTER SHEEN INITIAL FORM
-FEB8 ; [.2060.0020.0018] # ARABIC LETTER SHEEN MEDIAL FORM
-FEB6 ; [.2060.0020.0019] # ARABIC LETTER SHEEN FINAL FORM
-FEB5 ; [.2060.0020.001A] # ARABIC LETTER SHEEN ISOLATED FORM
-FD2D ; [.2060.0020.0017][.202C.0020.0017] # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
-FD37 ; [.2060.0020.0018][.202C.0020.0018] # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
-FD25 ; [.2060.0020.0019][.202C.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
-FD09 ; [.2060.0020.001A][.202C.0020.001A] # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
-FD69 ; [.2060.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
-FD2E ; [.2060.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
-FD38 ; [.2060.0020.0018][.2033.0020.0018] # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
-FD26 ; [.2060.0020.0019][.2033.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
-FD0A ; [.2060.0020.001A][.2033.0020.001A] # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
-FD68 ; [.2060.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
-FD67 ; [.2060.0020.0019][.2033.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
-FDAA ; [.2060.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
-FD2F ; [.2060.0020.0017][.2034.0020.0017] # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
-FD39 ; [.2060.0020.0018][.2034.0020.0018] # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
-FD27 ; [.2060.0020.0019][.2034.0020.0019] # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
-FD0B ; [.2060.0020.001A][.2034.0020.001A] # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
-FD29 ; [.2060.0020.0019][.204D.0020.0019] # ARABIC LIGATURE SHEEN WITH REH FINAL FORM
-FD0D ; [.2060.0020.001A][.204D.0020.001A] # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
-FD30 ; [.2060.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
-FCE9 ; [.2060.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
-FD28 ; [.2060.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
-FD0C ; [.2060.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
-FD6B ; [.2060.0020.0017][.20A5.0020.0017][.2034.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
-FD6A ; [.2060.0020.0019][.20A5.0020.0019][.2034.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
-FD6D ; [.2060.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
-FD6C ; [.2060.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
-FD32 ; [.2060.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
-FCEA ; [.2060.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
-FD19 ; [.2060.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
-FCFD ; [.2060.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
-FD1A ; [.2060.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
-FCFE ; [.2060.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
-069A ; [.2061.0020.0002] # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
-069B ; [.2062.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW
-069C ; [.2063.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
-06FA ; [.2064.0020.0002] # ARABIC LETTER SHEEN WITH DOT BELOW
-075C ; [.2065.0020.0002] # ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
-076D ; [.2066.0020.0002] # ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
-0770 ; [.2067.0020.0002] # ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
-077D ; [.2068.0020.0002] # ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE
-077E ; [.2069.0020.0002] # ARABIC LETTER SEEN WITH INVERTED V
-0635 ; [.206A.0020.0002] # ARABIC LETTER SAD
-1EE11 ; [.206A.0020.0005] # ARABIC MATHEMATICAL SAD
-1EE31 ; [.206A.0020.0005] # ARABIC MATHEMATICAL INITIAL SAD
-1EE51 ; [.206A.0020.0005] # ARABIC MATHEMATICAL TAILED SAD
-1EE71 ; [.206A.0020.0005] # ARABIC MATHEMATICAL STRETCHED SAD
-1EE91 ; [.206A.0020.0005] # ARABIC MATHEMATICAL LOOPED SAD
-1EEB1 ; [.206A.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
-FEBB ; [.206A.0020.0017] # ARABIC LETTER SAD INITIAL FORM
-FEBC ; [.206A.0020.0018] # ARABIC LETTER SAD MEDIAL FORM
-FEBA ; [.206A.0020.0019] # ARABIC LETTER SAD FINAL FORM
-FEB9 ; [.206A.0020.001A] # ARABIC LETTER SAD ISOLATED FORM
-FCB1 ; [.206A.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SAD WITH HAH INITIAL FORM
-FC20 ; [.206A.0020.001A][.2033.0020.001A] # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
-FD65 ; [.206A.0020.0017][.2033.0020.0017][.2033.0020.0017] # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
-FD64 ; [.206A.0020.0019][.2033.0020.0019][.2033.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
-FDA9 ; [.206A.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
-FCB2 ; [.206A.0020.0017][.2034.0020.0017] # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
-FD2B ; [.206A.0020.0019][.204D.0020.0019] # ARABIC LIGATURE SAD WITH REH FINAL FORM
-FD0F ; [.206A.0020.001A][.204D.0020.001A] # ARABIC LIGATURE SAD WITH REH ISOLATED FORM
-FDF5 ; [.206A.0020.001A][.209E.0020.001A][.2074.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SALAM ISOLATED FORM
-FDF9 ; [.206A.0020.001A][.209E.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE SALLA ISOLATED FORM
-FDFA ; [.206A.0020.001A][.209E.0020.001A][.20C6.0020.001A][*0209.0020.001A][.2015.0020.001A][.209E.0020.001A][.209E.0020.001A][.20B2.0020.001A][*0209.0020.001A][.2074.0020.001A][.209E.0020.001A][.20C7.0020.001A][.20B2.0020.001A][*0209.0020.001A][.20B8.0020.001A][.205F.0020.001A][.209E.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
-FDF0 ; [.206A.0020.001A][.209E.0020.001A][.20D4.0020.001A] # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
-FCB3 ; [.206A.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
-FC21 ; [.206A.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
-FDC5 ; [.206A.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
-FD66 ; [.206A.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
-FD21 ; [.206A.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
-FD05 ; [.206A.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
-FD22 ; [.206A.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE SAD WITH YEH FINAL FORM
-FD06 ; [.206A.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
-0636 ; [.206B.0020.0002] # ARABIC LETTER DAD
-1EE19 ; [.206B.0020.0005] # ARABIC MATHEMATICAL DAD
-1EE39 ; [.206B.0020.0005] # ARABIC MATHEMATICAL INITIAL DAD
-1EE59 ; [.206B.0020.0005] # ARABIC MATHEMATICAL TAILED DAD
-1EE79 ; [.206B.0020.0005] # ARABIC MATHEMATICAL STRETCHED DAD
-1EE99 ; [.206B.0020.0005] # ARABIC MATHEMATICAL LOOPED DAD
-1EEB9 ; [.206B.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
-FEBF ; [.206B.0020.0017] # ARABIC LETTER DAD INITIAL FORM
-FEC0 ; [.206B.0020.0018] # ARABIC LETTER DAD MEDIAL FORM
-FEBE ; [.206B.0020.0019] # ARABIC LETTER DAD FINAL FORM
-FEBD ; [.206B.0020.001A] # ARABIC LETTER DAD ISOLATED FORM
-FCB4 ; [.206B.0020.0017][.202C.0020.0017] # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
-FC22 ; [.206B.0020.001A][.202C.0020.001A] # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
-FCB5 ; [.206B.0020.0017][.2033.0020.0017] # ARABIC LIGATURE DAD WITH HAH INITIAL FORM
-FC23 ; [.206B.0020.001A][.2033.0020.001A] # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
-FD6E ; [.206B.0020.0019][.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDAB ; [.206B.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
-FCB6 ; [.206B.0020.0017][.2034.0020.0017] # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
-FC24 ; [.206B.0020.001A][.2034.0020.001A] # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
-FD70 ; [.206B.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
-FD6F ; [.206B.0020.0019][.2034.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
-FD2C ; [.206B.0020.0019][.204D.0020.0019] # ARABIC LIGATURE DAD WITH REH FINAL FORM
-FD10 ; [.206B.0020.001A][.204D.0020.001A] # ARABIC LIGATURE DAD WITH REH ISOLATED FORM
-FCB7 ; [.206B.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
-FC25 ; [.206B.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
-FD23 ; [.206B.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
-FD07 ; [.206B.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
-FD24 ; [.206B.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE DAD WITH YEH FINAL FORM
-FD08 ; [.206B.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
-069D ; [.206C.0020.0002] # ARABIC LETTER SAD WITH TWO DOTS BELOW
-08AF ; [.206D.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS BELOW
-069E ; [.206E.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS ABOVE
-06FB ; [.206F.0020.0002] # ARABIC LETTER DAD WITH DOT BELOW
-0637 ; [.2070.0020.0002] # ARABIC LETTER TAH
-1EE08 ; [.2070.0020.0005] # ARABIC MATHEMATICAL TAH
-1EE68 ; [.2070.0020.0005] # ARABIC MATHEMATICAL STRETCHED TAH
-1EE88 ; [.2070.0020.0005] # ARABIC MATHEMATICAL LOOPED TAH
-1EEA8 ; [.2070.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
-FEC3 ; [.2070.0020.0017] # ARABIC LETTER TAH INITIAL FORM
-FEC4 ; [.2070.0020.0018] # ARABIC LETTER TAH MEDIAL FORM
-FEC2 ; [.2070.0020.0019] # ARABIC LETTER TAH FINAL FORM
-FEC1 ; [.2070.0020.001A] # ARABIC LETTER TAH ISOLATED FORM
-FCB8 ; [.2070.0020.0017][.2033.0020.0017] # ARABIC LIGATURE TAH WITH HAH INITIAL FORM
-FC26 ; [.2070.0020.001A][.2033.0020.001A] # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
-FD33 ; [.2070.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
-FD3A ; [.2070.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
-FC27 ; [.2070.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
-FD72 ; [.2070.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
-FD71 ; [.2070.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
-FD73 ; [.2070.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
-FD74 ; [.2070.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
-FD11 ; [.2070.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
-FCF5 ; [.2070.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
-FD12 ; [.2070.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE TAH WITH YEH FINAL FORM
-FCF6 ; [.2070.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
-0638 ; [.2071.0020.0002] # ARABIC LETTER ZAH
-1EE1A ; [.2071.0020.0005] # ARABIC MATHEMATICAL ZAH
-1EE7A ; [.2071.0020.0005] # ARABIC MATHEMATICAL STRETCHED ZAH
-1EE9A ; [.2071.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAH
-1EEBA ; [.2071.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
-FEC7 ; [.2071.0020.0017] # ARABIC LETTER ZAH INITIAL FORM
-FEC8 ; [.2071.0020.0018] # ARABIC LETTER ZAH MEDIAL FORM
-FEC6 ; [.2071.0020.0019] # ARABIC LETTER ZAH FINAL FORM
-FEC5 ; [.2071.0020.001A] # ARABIC LETTER ZAH ISOLATED FORM
-FCB9 ; [.2071.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
-FD3B ; [.2071.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
-FC28 ; [.2071.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
-069F ; [.2072.0020.0002] # ARABIC LETTER TAH WITH THREE DOTS ABOVE
-08A3 ; [.2073.0020.0002] # ARABIC LETTER TAH WITH TWO DOTS ABOVE
-0639 ; [.2074.0020.0002] # ARABIC LETTER AIN
-1EE0F ; [.2074.0020.0005] # ARABIC MATHEMATICAL AIN
-1EE2F ; [.2074.0020.0005] # ARABIC MATHEMATICAL INITIAL AIN
-1EE4F ; [.2074.0020.0005] # ARABIC MATHEMATICAL TAILED AIN
-1EE6F ; [.2074.0020.0005] # ARABIC MATHEMATICAL STRETCHED AIN
-1EE8F ; [.2074.0020.0005] # ARABIC MATHEMATICAL LOOPED AIN
-1EEAF ; [.2074.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
-FECB ; [.2074.0020.0017] # ARABIC LETTER AIN INITIAL FORM
-FECC ; [.2074.0020.0018] # ARABIC LETTER AIN MEDIAL FORM
-FECA ; [.2074.0020.0019] # ARABIC LETTER AIN FINAL FORM
-FEC9 ; [.2074.0020.001A] # ARABIC LETTER AIN ISOLATED FORM
-FCBA ; [.2074.0020.0017][.202C.0020.0017] # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
-FC29 ; [.2074.0020.001A][.202C.0020.001A] # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
-FDC4 ; [.2074.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
-FD75 ; [.2074.0020.0019][.202C.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
-FDF7 ; [.2074.0020.001A][.209E.0020.001A][.20C7.0020.001A][.20B2.0020.001A] # ARABIC LIGATURE ALAYHE ISOLATED FORM
-FCBB ; [.2074.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
-FC2A ; [.2074.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
-FD77 ; [.2074.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
-FD76 ; [.2074.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
-FD78 ; [.2074.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FDB6 ; [.2074.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
-FD13 ; [.2074.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
-FCF7 ; [.2074.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
-FD14 ; [.2074.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE AIN WITH YEH FINAL FORM
-FCF8 ; [.2074.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
-063A ; [.2075.0020.0002] # ARABIC LETTER GHAIN
-1EE1B ; [.2075.0020.0005] # ARABIC MATHEMATICAL GHAIN
-1EE3B ; [.2075.0020.0005] # ARABIC MATHEMATICAL INITIAL GHAIN
-1EE5B ; [.2075.0020.0005] # ARABIC MATHEMATICAL TAILED GHAIN
-1EE7B ; [.2075.0020.0005] # ARABIC MATHEMATICAL STRETCHED GHAIN
-1EE9B ; [.2075.0020.0005] # ARABIC MATHEMATICAL LOOPED GHAIN
-1EEBB ; [.2075.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-FECF ; [.2075.0020.0017] # ARABIC LETTER GHAIN INITIAL FORM
-FED0 ; [.2075.0020.0018] # ARABIC LETTER GHAIN MEDIAL FORM
-FECE ; [.2075.0020.0019] # ARABIC LETTER GHAIN FINAL FORM
-FECD ; [.2075.0020.001A] # ARABIC LETTER GHAIN ISOLATED FORM
-FCBC ; [.2075.0020.0017][.202C.0020.0017] # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
-FC2B ; [.2075.0020.001A][.202C.0020.001A] # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
-FCBD ; [.2075.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
-FC2C ; [.2075.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
-FD79 ; [.2075.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
-FD7B ; [.2075.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD7A ; [.2075.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
-FD15 ; [.2075.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
-FCF9 ; [.2075.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
-FD16 ; [.2075.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
-FCFA ; [.2075.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
-06A0 ; [.2076.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS ABOVE
-06FC ; [.2077.0020.0002] # ARABIC LETTER GHAIN WITH DOT BELOW
-075D ; [.2078.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS ABOVE
-075E ; [.2079.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
-075F ; [.207A.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
-0641 ; [.207B.0020.0002] # ARABIC LETTER FEH
-1EE10 ; [.207B.0020.0005] # ARABIC MATHEMATICAL FEH
-1EE30 ; [.207B.0020.0005] # ARABIC MATHEMATICAL INITIAL FEH
-1EE70 ; [.207B.0020.0005] # ARABIC MATHEMATICAL STRETCHED FEH
-1EE90 ; [.207B.0020.0005] # ARABIC MATHEMATICAL LOOPED FEH
-1EEB0 ; [.207B.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
-FED3 ; [.207B.0020.0017] # ARABIC LETTER FEH INITIAL FORM
-FED4 ; [.207B.0020.0018] # ARABIC LETTER FEH MEDIAL FORM
-FED2 ; [.207B.0020.0019] # ARABIC LETTER FEH FINAL FORM
-FED1 ; [.207B.0020.001A] # ARABIC LETTER FEH ISOLATED FORM
-FCBE ; [.207B.0020.0017][.202C.0020.0017] # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
-FC2D ; [.207B.0020.001A][.202C.0020.001A] # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
-FCBF ; [.207B.0020.0017][.2033.0020.0017] # ARABIC LIGATURE FEH WITH HAH INITIAL FORM
-FC2E ; [.207B.0020.001A][.2033.0020.001A] # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
-FCC0 ; [.207B.0020.0017][.2034.0020.0017] # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
-FC2F ; [.207B.0020.001A][.2034.0020.001A] # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
-FD7D ; [.207B.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
-FD7C ; [.207B.0020.0019][.2034.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
-FCC1 ; [.207B.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
-FC30 ; [.207B.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
-FDC1 ; [.207B.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
-FC7C ; [.207B.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
-FC31 ; [.207B.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
-FC7D ; [.207B.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE FEH WITH YEH FINAL FORM
-FC32 ; [.207B.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
-06A1 ; [.207C.0020.0002] # ARABIC LETTER DOTLESS FEH
-1EE1E ; [.207C.0020.0005] # ARABIC MATHEMATICAL DOTLESS FEH
-1EE7E ; [.207C.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
-06A2 ; [.207D.0020.0002] # ARABIC LETTER FEH WITH DOT MOVED BELOW
-06A3 ; [.207E.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW
-06A4 ; [.207F.0020.0002] # ARABIC LETTER VEH
-FB6C ; [.207F.0020.0017] # ARABIC LETTER VEH INITIAL FORM
-FB6D ; [.207F.0020.0018] # ARABIC LETTER VEH MEDIAL FORM
-FB6B ; [.207F.0020.0019] # ARABIC LETTER VEH FINAL FORM
-FB6A ; [.207F.0020.001A] # ARABIC LETTER VEH ISOLATED FORM
-08A4 ; [.2080.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
-06A5 ; [.2081.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS BELOW
-06A6 ; [.2082.0020.0002] # ARABIC LETTER PEHEH
-FB70 ; [.2082.0020.0017] # ARABIC LETTER PEHEH INITIAL FORM
-FB71 ; [.2082.0020.0018] # ARABIC LETTER PEHEH MEDIAL FORM
-FB6F ; [.2082.0020.0019] # ARABIC LETTER PEHEH FINAL FORM
-FB6E ; [.2082.0020.001A] # ARABIC LETTER PEHEH ISOLATED FORM
-0760 ; [.2083.0020.0002] # ARABIC LETTER FEH WITH TWO DOTS BELOW
-0761 ; [.2084.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
-066F ; [.2085.0020.0002] # ARABIC LETTER DOTLESS QAF
-1EE1F ; [.2085.0020.0005] # ARABIC MATHEMATICAL DOTLESS QAF
-1EE5F ; [.2085.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS QAF
-0642 ; [.2086.0020.0002] # ARABIC LETTER QAF
-1EE12 ; [.2086.0020.0005] # ARABIC MATHEMATICAL QAF
-1EE32 ; [.2086.0020.0005] # ARABIC MATHEMATICAL INITIAL QAF
-1EE52 ; [.2086.0020.0005] # ARABIC MATHEMATICAL TAILED QAF
-1EE72 ; [.2086.0020.0005] # ARABIC MATHEMATICAL STRETCHED QAF
-1EE92 ; [.2086.0020.0005] # ARABIC MATHEMATICAL LOOPED QAF
-1EEB2 ; [.2086.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
-FED7 ; [.2086.0020.0017] # ARABIC LETTER QAF INITIAL FORM
-FED8 ; [.2086.0020.0018] # ARABIC LETTER QAF MEDIAL FORM
-FED6 ; [.2086.0020.0019] # ARABIC LETTER QAF FINAL FORM
-FED5 ; [.2086.0020.001A] # ARABIC LETTER QAF ISOLATED FORM
-FCC2 ; [.2086.0020.0017][.2033.0020.0017] # ARABIC LIGATURE QAF WITH HAH INITIAL FORM
-FC33 ; [.2086.0020.001A][.2033.0020.001A] # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
-FDF1 ; [.2086.0020.001A][.209E.0020.001A][.20D4.0020.001A] # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
-FCC3 ; [.2086.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
-FC34 ; [.2086.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
-FDB4 ; [.2086.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
-FD7E ; [.2086.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
-FD7F ; [.2086.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
-FDB2 ; [.2086.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
-FC7E ; [.2086.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
-FC35 ; [.2086.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
-FC7F ; [.2086.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE QAF WITH YEH FINAL FORM
-FC36 ; [.2086.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
-06A7 ; [.2087.0020.0002] # ARABIC LETTER QAF WITH DOT ABOVE
-06A8 ; [.2088.0020.0002] # ARABIC LETTER QAF WITH THREE DOTS ABOVE
-08A5 ; [.2089.0020.0002] # ARABIC LETTER QAF WITH DOT BELOW
-0643 ; [.208A.0020.0002] # ARABIC LETTER KAF
-1EE0A ; [.208A.0020.0005] # ARABIC MATHEMATICAL KAF
-1EE2A ; [.208A.0020.0005] # ARABIC MATHEMATICAL INITIAL KAF
-1EE6A ; [.208A.0020.0005] # ARABIC MATHEMATICAL STRETCHED KAF
-FEDB ; [.208A.0020.0017] # ARABIC LETTER KAF INITIAL FORM
-FEDC ; [.208A.0020.0018] # ARABIC LETTER KAF MEDIAL FORM
-FEDA ; [.208A.0020.0019] # ARABIC LETTER KAF FINAL FORM
-FED9 ; [.208A.0020.001A] # ARABIC LETTER KAF ISOLATED FORM
-FC80 ; [.208A.0020.0019][.2015.0020.0019] # ARABIC LIGATURE KAF WITH ALEF FINAL FORM
-FC37 ; [.208A.0020.001A][.2015.0020.001A] # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
-FCC4 ; [.208A.0020.0017][.202C.0020.0017] # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
-FC38 ; [.208A.0020.001A][.202C.0020.001A] # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
-FCC5 ; [.208A.0020.0017][.2033.0020.0017] # ARABIC LIGATURE KAF WITH HAH INITIAL FORM
-FC39 ; [.208A.0020.001A][.2033.0020.001A] # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
-FCC6 ; [.208A.0020.0017][.2034.0020.0017] # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
-FC3A ; [.208A.0020.001A][.2034.0020.001A] # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
-FCC7 ; [.208A.0020.0017][.209E.0020.0017] # ARABIC LIGATURE KAF WITH LAM INITIAL FORM
-FCEB ; [.208A.0020.0018][.209E.0020.0018] # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
-FC81 ; [.208A.0020.0019][.209E.0020.0019] # ARABIC LIGATURE KAF WITH LAM FINAL FORM
-FC3B ; [.208A.0020.001A][.209E.0020.001A] # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
-FCC8 ; [.208A.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
-FCEC ; [.208A.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
-FC82 ; [.208A.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE KAF WITH MEEM FINAL FORM
-FC3C ; [.208A.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
-FDC3 ; [.208A.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
-FDBB ; [.208A.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
-FDB7 ; [.208A.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
-FC83 ; [.208A.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
-FC3D ; [.208A.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
-FC84 ; [.208A.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE KAF WITH YEH FINAL FORM
-FC3E ; [.208A.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
-06A9 ; [.208B.0020.0002] # ARABIC LETTER KEHEH
-FB90 ; [.208B.0020.0017] # ARABIC LETTER KEHEH INITIAL FORM
-FB91 ; [.208B.0020.0018] # ARABIC LETTER KEHEH MEDIAL FORM
-FB8F ; [.208B.0020.0019] # ARABIC LETTER KEHEH FINAL FORM
-FB8E ; [.208B.0020.001A] # ARABIC LETTER KEHEH ISOLATED FORM
-06AA ; [.208C.0020.0002] # ARABIC LETTER SWASH KAF
-06AB ; [.208D.0020.0002] # ARABIC LETTER KAF WITH RING
-06AC ; [.208E.0020.0002] # ARABIC LETTER KAF WITH DOT ABOVE
-077F ; [.208F.0020.0002] # ARABIC LETTER KAF WITH TWO DOTS ABOVE
-06AD ; [.2090.0020.0002] # ARABIC LETTER NG
-FBD5 ; [.2090.0020.0017] # ARABIC LETTER NG INITIAL FORM
-FBD6 ; [.2090.0020.0018] # ARABIC LETTER NG MEDIAL FORM
-FBD4 ; [.2090.0020.0019] # ARABIC LETTER NG FINAL FORM
-FBD3 ; [.2090.0020.001A] # ARABIC LETTER NG ISOLATED FORM
-06AE ; [.2091.0020.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
-06AF ; [.2092.0020.0002] # ARABIC LETTER GAF
-FB94 ; [.2092.0020.0017] # ARABIC LETTER GAF INITIAL FORM
-FB95 ; [.2092.0020.0018] # ARABIC LETTER GAF MEDIAL FORM
-FB93 ; [.2092.0020.0019] # ARABIC LETTER GAF FINAL FORM
-FB92 ; [.2092.0020.001A] # ARABIC LETTER GAF ISOLATED FORM
-08B0 ; [.2093.0020.0002] # ARABIC LETTER GAF WITH INVERTED STROKE
-06B0 ; [.2094.0020.0002] # ARABIC LETTER GAF WITH RING
-06B1 ; [.2095.0020.0002] # ARABIC LETTER NGOEH
-FB9C ; [.2095.0020.0017] # ARABIC LETTER NGOEH INITIAL FORM
-FB9D ; [.2095.0020.0018] # ARABIC LETTER NGOEH MEDIAL FORM
-FB9B ; [.2095.0020.0019] # ARABIC LETTER NGOEH FINAL FORM
-FB9A ; [.2095.0020.001A] # ARABIC LETTER NGOEH ISOLATED FORM
-06B2 ; [.2096.0020.0002] # ARABIC LETTER GAF WITH TWO DOTS BELOW
-06B3 ; [.2097.0020.0002] # ARABIC LETTER GUEH
-FB98 ; [.2097.0020.0017] # ARABIC LETTER GUEH INITIAL FORM
-FB99 ; [.2097.0020.0018] # ARABIC LETTER GUEH MEDIAL FORM
-FB97 ; [.2097.0020.0019] # ARABIC LETTER GUEH FINAL FORM
-FB96 ; [.2097.0020.001A] # ARABIC LETTER GUEH ISOLATED FORM
-06B4 ; [.2098.0020.0002] # ARABIC LETTER GAF WITH THREE DOTS ABOVE
-0762 ; [.2099.0020.0002] # ARABIC LETTER KEHEH WITH DOT ABOVE
-063B ; [.209A.0020.0002] # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE
-063C ; [.209B.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS BELOW
-0763 ; [.209C.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
-0764 ; [.209D.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
-0644 ; [.209E.0020.0002] # ARABIC LETTER LAM
-1EE0B ; [.209E.0020.0005] # ARABIC MATHEMATICAL LAM
-1EE2B ; [.209E.0020.0005] # ARABIC MATHEMATICAL INITIAL LAM
-1EE4B ; [.209E.0020.0005] # ARABIC MATHEMATICAL TAILED LAM
-1EE8B ; [.209E.0020.0005] # ARABIC MATHEMATICAL LOOPED LAM
-1EEAB ; [.209E.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
-FEDF ; [.209E.0020.0017] # ARABIC LETTER LAM INITIAL FORM
-FEE0 ; [.209E.0020.0018] # ARABIC LETTER LAM MEDIAL FORM
-FEDE ; [.209E.0020.0019] # ARABIC LETTER LAM FINAL FORM
-FEDD ; [.209E.0020.001A] # ARABIC LETTER LAM ISOLATED FORM
-FEF6 ; [.209E.0020.0019][.2008.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-FEF5 ; [.209E.0020.001A][.2008.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-FEF8 ; [.209E.0020.0019][.2009.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-FEF7 ; [.209E.0020.001A][.2009.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-FEFA ; [.209E.0020.0019][.200D.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
-FEF9 ; [.209E.0020.001A][.200D.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-FEFC ; [.209E.0020.0019][.2015.0020.0019] # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFB ; [.209E.0020.001A][.2015.0020.001A] # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-FCC9 ; [.209E.0020.0017][.202C.0020.0017] # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
-FC3F ; [.209E.0020.001A][.202C.0020.001A] # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
-FD83 ; [.209E.0020.0017][.202C.0020.0017][.202C.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
-FD84 ; [.209E.0020.0019][.202C.0020.0019][.202C.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
-FDBA ; [.209E.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
-FDBC ; [.209E.0020.0019][.202C.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
-FDAC ; [.209E.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
-FCCA ; [.209E.0020.0017][.2033.0020.0017] # ARABIC LIGATURE LAM WITH HAH INITIAL FORM
-FC40 ; [.209E.0020.001A][.2033.0020.001A] # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
-FDB5 ; [.209E.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
-FD80 ; [.209E.0020.0019][.2033.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
-FD82 ; [.209E.0020.0019][.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
-FD81 ; [.209E.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
-FCCB ; [.209E.0020.0017][.2034.0020.0017] # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
-FC41 ; [.209E.0020.001A][.2034.0020.001A] # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
-FD86 ; [.209E.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
-FD85 ; [.209E.0020.0019][.2034.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
-FCCC ; [.209E.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
-FCED ; [.209E.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
-FC85 ; [.209E.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE LAM WITH MEEM FINAL FORM
-FC42 ; [.209E.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
-FD88 ; [.209E.0020.0017][.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
-FD87 ; [.209E.0020.0019][.20A5.0020.0019][.2033.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
-FDAD ; [.209E.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
-FCCD ; [.209E.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE LAM WITH HEH INITIAL FORM
-FC86 ; [.209E.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
-FC43 ; [.209E.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
-FC87 ; [.209E.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE LAM WITH YEH FINAL FORM
-FC44 ; [.209E.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
-06B5 ; [.209F.0020.0002] # ARABIC LETTER LAM WITH SMALL V
-06B6 ; [.20A0.0020.0002] # ARABIC LETTER LAM WITH DOT ABOVE
-06B7 ; [.20A1.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS ABOVE
-06B8 ; [.20A2.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS BELOW
-076A ; [.20A3.0020.0002] # ARABIC LETTER LAM WITH BAR
-08A6 ; [.20A4.0020.0002] # ARABIC LETTER LAM WITH DOUBLE BAR
-0645 ; [.20A5.0020.0002] # ARABIC LETTER MEEM
-1EE0C ; [.20A5.0020.0005] # ARABIC MATHEMATICAL MEEM
-1EE2C ; [.20A5.0020.0005] # ARABIC MATHEMATICAL INITIAL MEEM
-1EE6C ; [.20A5.0020.0005] # ARABIC MATHEMATICAL STRETCHED MEEM
-1EE8C ; [.20A5.0020.0005] # ARABIC MATHEMATICAL LOOPED MEEM
-1EEAC ; [.20A5.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
-FEE3 ; [.20A5.0020.0017] # ARABIC LETTER MEEM INITIAL FORM
-FEE4 ; [.20A5.0020.0018] # ARABIC LETTER MEEM MEDIAL FORM
-FEE2 ; [.20A5.0020.0019] # ARABIC LETTER MEEM FINAL FORM
-FEE1 ; [.20A5.0020.001A] # ARABIC LETTER MEEM ISOLATED FORM
-06FE ; [.20A5.0020.0004][.0000.0109.0004] # ARABIC SIGN SINDHI POSTPOSITION MEN
-FC88 ; [.20A5.0020.0019][.2015.0020.0019] # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
-FCCE ; [.20A5.0020.0017][.202C.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
-FC45 ; [.20A5.0020.001A][.202C.0020.001A] # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
-FD8C ; [.20A5.0020.0017][.202C.0020.0017][.2033.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
-FD92 ; [.20A5.0020.0017][.202C.0020.0017][.2034.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
-FD8D ; [.20A5.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
-FDC0 ; [.20A5.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
-FCCF ; [.20A5.0020.0017][.2033.0020.0017] # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
-FC46 ; [.20A5.0020.001A][.2033.0020.001A] # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
-FD89 ; [.20A5.0020.0017][.2033.0020.0017][.202C.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
-FD8A ; [.20A5.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
-FDF4 ; [.20A5.0020.001A][.2033.0020.001A][.20A5.0020.001A][.203E.0020.001A] # ARABIC LIGATURE MOHAMMAD ISOLATED FORM
-FD8B ; [.20A5.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
-FCD0 ; [.20A5.0020.0017][.2034.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
-FC47 ; [.20A5.0020.001A][.2034.0020.001A] # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
-FD8E ; [.20A5.0020.0017][.2034.0020.0017][.202C.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
-FD8F ; [.20A5.0020.0017][.2034.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FDB9 ; [.20A5.0020.0019][.2034.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
-FCD1 ; [.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
-FC89 ; [.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
-FC48 ; [.20A5.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
-FDB1 ; [.20A5.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
-FC49 ; [.20A5.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
-FC4A ; [.20A5.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
-0765 ; [.20A6.0020.0002] # ARABIC LETTER MEEM WITH DOT ABOVE
-0766 ; [.20A7.0020.0002] # ARABIC LETTER MEEM WITH DOT BELOW
-08A7 ; [.20A8.0020.0002] # ARABIC LETTER MEEM WITH THREE DOTS ABOVE
-0646 ; [.20A9.0020.0002] # ARABIC LETTER NOON
-1EE0D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL NOON
-1EE2D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL INITIAL NOON
-1EE4D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL TAILED NOON
-1EE6D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL STRETCHED NOON
-1EE8D ; [.20A9.0020.0005] # ARABIC MATHEMATICAL LOOPED NOON
-1EEAD ; [.20A9.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
-FEE7 ; [.20A9.0020.0017] # ARABIC LETTER NOON INITIAL FORM
-FEE8 ; [.20A9.0020.0018] # ARABIC LETTER NOON MEDIAL FORM
-FEE6 ; [.20A9.0020.0019] # ARABIC LETTER NOON FINAL FORM
-FEE5 ; [.20A9.0020.001A] # ARABIC LETTER NOON ISOLATED FORM
-FCD2 ; [.20A9.0020.0017][.202C.0020.0017] # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
-FC4B ; [.20A9.0020.001A][.202C.0020.001A] # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
-FDB8 ; [.20A9.0020.0017][.202C.0020.0017][.2033.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
-FDBD ; [.20A9.0020.0019][.202C.0020.0019][.2033.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
-FD98 ; [.20A9.0020.0017][.202C.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
-FD97 ; [.20A9.0020.0019][.202C.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
-FD99 ; [.20A9.0020.0019][.202C.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
-FDC7 ; [.20A9.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FCD3 ; [.20A9.0020.0017][.2033.0020.0017] # ARABIC LIGATURE NOON WITH HAH INITIAL FORM
-FC4C ; [.20A9.0020.001A][.2033.0020.001A] # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
-FD95 ; [.20A9.0020.0017][.2033.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
-FD96 ; [.20A9.0020.0019][.2033.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
-FDB3 ; [.20A9.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
-FCD4 ; [.20A9.0020.0017][.2034.0020.0017] # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
-FC4D ; [.20A9.0020.001A][.2034.0020.001A] # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
-FC8A ; [.20A9.0020.0019][.204D.0020.0019] # ARABIC LIGATURE NOON WITH REH FINAL FORM
-FC8B ; [.20A9.0020.0019][.204E.0020.0019] # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
-FCD5 ; [.20A9.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
-FCEE ; [.20A9.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
-FC8C ; [.20A9.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE NOON WITH MEEM FINAL FORM
-FC4E ; [.20A9.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
-FD9B ; [.20A9.0020.0019][.20A5.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
-FD9A ; [.20A9.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
-FC8D ; [.20A9.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE NOON WITH NOON FINAL FORM
-FCD6 ; [.20A9.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE NOON WITH HEH INITIAL FORM
-FCEF ; [.20A9.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
-FC8E ; [.20A9.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
-FC4F ; [.20A9.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
-FC8F ; [.20A9.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE NOON WITH YEH FINAL FORM
-FC50 ; [.20A9.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
-06BA ; [.20AA.0020.0002] # ARABIC LETTER NOON GHUNNA
-1EE1D ; [.20AA.0020.0005] # ARABIC MATHEMATICAL DOTLESS NOON
-1EE5D ; [.20AA.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS NOON
-FB9F ; [.20AA.0020.0019] # ARABIC LETTER NOON GHUNNA FINAL FORM
-FB9E ; [.20AA.0020.001A] # ARABIC LETTER NOON GHUNNA ISOLATED FORM
-06BB ; [.20AB.0020.0002] # ARABIC LETTER RNOON
-FBA2 ; [.20AB.0020.0017] # ARABIC LETTER RNOON INITIAL FORM
-FBA3 ; [.20AB.0020.0018] # ARABIC LETTER RNOON MEDIAL FORM
-FBA1 ; [.20AB.0020.0019] # ARABIC LETTER RNOON FINAL FORM
-FBA0 ; [.20AB.0020.001A] # ARABIC LETTER RNOON ISOLATED FORM
-06BC ; [.20AC.0020.0002] # ARABIC LETTER NOON WITH RING
-06BD ; [.20AD.0020.0002] # ARABIC LETTER NOON WITH THREE DOTS ABOVE
-06B9 ; [.20AE.0020.0002] # ARABIC LETTER NOON WITH DOT BELOW
-0767 ; [.20AF.0020.0002] # ARABIC LETTER NOON WITH TWO DOTS BELOW
-0768 ; [.20B0.0020.0002] # ARABIC LETTER NOON WITH SMALL TAH
-0769 ; [.20B1.0020.0002] # ARABIC LETTER NOON WITH SMALL V
-0647 ; [.20B2.0020.0002] # ARABIC LETTER HEH
-1EE24 ; [.20B2.0020.0005] # ARABIC MATHEMATICAL INITIAL HEH
-1EE64 ; [.20B2.0020.0005] # ARABIC MATHEMATICAL STRETCHED HEH
-1EE84 ; [.20B2.0020.0005] # ARABIC MATHEMATICAL LOOPED HEH
-FEEB ; [.20B2.0020.0017] # ARABIC LETTER HEH INITIAL FORM
-FEEC ; [.20B2.0020.0018] # ARABIC LETTER HEH MEDIAL FORM
-FEEA ; [.20B2.0020.0019] # ARABIC LETTER HEH FINAL FORM
-FEE9 ; [.20B2.0020.001A] # ARABIC LETTER HEH ISOLATED FORM
-FCD9 ; [.20B2.0020.0017][.0000.0097.0017] # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
-FCD7 ; [.20B2.0020.0017][.202C.0020.0017] # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
-FC51 ; [.20B2.0020.001A][.202C.0020.001A] # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
-FCD8 ; [.20B2.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
-FC52 ; [.20B2.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
-FD93 ; [.20B2.0020.0017][.20A5.0020.0017][.202C.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
-FD94 ; [.20B2.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
-FC53 ; [.20B2.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
-FC54 ; [.20B2.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
-06BE ; [.20B3.0020.0002] # ARABIC LETTER HEH DOACHASHMEE
-FBAC ; [.20B3.0020.0017] # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
-FBAD ; [.20B3.0020.0018] # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
-FBAB ; [.20B3.0020.0019] # ARABIC LETTER HEH DOACHASHMEE FINAL FORM
-FBAA ; [.20B3.0020.001A] # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-06C1 ; [.20B4.0020.0002] # ARABIC LETTER HEH GOAL
-FBA8 ; [.20B4.0020.0017] # ARABIC LETTER HEH GOAL INITIAL FORM
-FBA9 ; [.20B4.0020.0018] # ARABIC LETTER HEH GOAL MEDIAL FORM
-FBA7 ; [.20B4.0020.0019] # ARABIC LETTER HEH GOAL FINAL FORM
-FBA6 ; [.20B4.0020.001A] # ARABIC LETTER HEH GOAL ISOLATED FORM
-06C2 ; [.20B4.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
-06C3 ; [.20B5.0020.0002] # ARABIC LETTER TEH MARBUTA GOAL
-06FF ; [.20B6.0020.0002] # ARABIC LETTER HEH WITH INVERTED V
-06D5 ; [.20B7.0020.0002] # ARABIC LETTER AE
-06C0 ; [.20B7.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH WITH YEH ABOVE
-FBA5 ; [.20B7.0020.0019][.0000.0083.0019] # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
-FBA4 ; [.20B7.0020.001A][.0000.0083.001A] # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
-0648 ; [.20B8.0020.0002] # ARABIC LETTER WAW
-06E5 ; [.20B8.0020.0004] # ARABIC SMALL WAW
-1EE05 ; [.20B8.0020.0005] # ARABIC MATHEMATICAL WAW
-1EE85 ; [.20B8.0020.0005] # ARABIC MATHEMATICAL LOOPED WAW
-1EEA5 ; [.20B8.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
-FEEE ; [.20B8.0020.0019] # ARABIC LETTER WAW FINAL FORM
-FEED ; [.20B8.0020.001A] # ARABIC LETTER WAW ISOLATED FORM
-0676 ; [.20B8.0020.0004][.2007.0020.0004] # ARABIC LETTER HIGH HAMZA WAW
-FDF8 ; [.20B8.0020.001A][.205F.0020.001A][.209E.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE WASALLAM ISOLATED FORM
-06C4 ; [.20B9.0020.0002] # ARABIC LETTER WAW WITH RING
-06C5 ; [.20BA.0020.0002] # ARABIC LETTER KIRGHIZ OE
-FBE1 ; [.20BA.0020.0019] # ARABIC LETTER KIRGHIZ OE FINAL FORM
-FBE0 ; [.20BA.0020.001A] # ARABIC LETTER KIRGHIZ OE ISOLATED FORM
-06C6 ; [.20BB.0020.0002] # ARABIC LETTER OE
-FBDA ; [.20BB.0020.0019] # ARABIC LETTER OE FINAL FORM
-FBD9 ; [.20BB.0020.001A] # ARABIC LETTER OE ISOLATED FORM
-06C7 ; [.20BC.0020.0002] # ARABIC LETTER U
-FBD8 ; [.20BC.0020.0019] # ARABIC LETTER U FINAL FORM
-FBD7 ; [.20BC.0020.001A] # ARABIC LETTER U ISOLATED FORM
-0677 ; [.20BC.0020.0004][.2007.0020.0004] # ARABIC LETTER U WITH HAMZA ABOVE
-FBDD ; [.20BC.0020.001A][.2007.0020.001A] # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
-06C8 ; [.20BD.0020.0002] # ARABIC LETTER YU
-FBDC ; [.20BD.0020.0019] # ARABIC LETTER YU FINAL FORM
-FBDB ; [.20BD.0020.001A] # ARABIC LETTER YU ISOLATED FORM
-06C9 ; [.20BE.0020.0002] # ARABIC LETTER KIRGHIZ YU
-FBE3 ; [.20BE.0020.0019] # ARABIC LETTER KIRGHIZ YU FINAL FORM
-FBE2 ; [.20BE.0020.001A] # ARABIC LETTER KIRGHIZ YU ISOLATED FORM
-06CA ; [.20BF.0020.0002] # ARABIC LETTER WAW WITH TWO DOTS ABOVE
-06CB ; [.20C0.0020.0002] # ARABIC LETTER VE
-FBDF ; [.20C0.0020.0019] # ARABIC LETTER VE FINAL FORM
-FBDE ; [.20C0.0020.001A] # ARABIC LETTER VE ISOLATED FORM
-08B1 ; [.20C1.0020.0002] # ARABIC LETTER STRAIGHT WAW
-06CF ; [.20C2.0020.0002] # ARABIC LETTER WAW WITH DOT ABOVE
-0778 ; [.20C3.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0779 ; [.20C4.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-08AB ; [.20C5.0020.0002] # ARABIC LETTER WAW WITH DOT WITHIN
-0649 ; [.20C6.0020.0002] # ARABIC LETTER ALEF MAKSURA
-FBE8 ; [.20C6.0020.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
-FBE9 ; [.20C6.0020.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
-FEF0 ; [.20C6.0020.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
-FEEF ; [.20C6.0020.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-FC90 ; [.20C6.0020.0019][.0000.0097.0019] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
-FC5D ; [.20C6.0020.001A][.0000.0097.001A] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
-064A ; [.20C7.0020.0002] # ARABIC LETTER YEH
-06E6 ; [.20C7.0020.0004] # ARABIC SMALL YEH
-1EE09 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL YEH
-1EE29 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL INITIAL YEH
-1EE49 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL TAILED YEH
-1EE69 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL STRETCHED YEH
-1EE89 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL LOOPED YEH
-1EEA9 ; [.20C7.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
-FEF3 ; [.20C7.0020.0017] # ARABIC LETTER YEH INITIAL FORM
-FEF4 ; [.20C7.0020.0018] # ARABIC LETTER YEH MEDIAL FORM
-FEF2 ; [.20C7.0020.0019] # ARABIC LETTER YEH FINAL FORM
-FEF1 ; [.20C7.0020.001A] # ARABIC LETTER YEH ISOLATED FORM
-0678 ; [.20C7.0020.0004][.2007.0020.0004] # ARABIC LETTER HIGH HAMZA YEH
-FCDA ; [.20C7.0020.0017][.202C.0020.0017] # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
-FC55 ; [.20C7.0020.001A][.202C.0020.001A] # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
-FDAF ; [.20C7.0020.0019][.202C.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
-FCDB ; [.20C7.0020.0017][.2033.0020.0017] # ARABIC LIGATURE YEH WITH HAH INITIAL FORM
-FC56 ; [.20C7.0020.001A][.2033.0020.001A] # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
-FDAE ; [.20C7.0020.0019][.2033.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
-FCDC ; [.20C7.0020.0017][.2034.0020.0017] # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
-FC57 ; [.20C7.0020.001A][.2034.0020.001A] # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
-FC91 ; [.20C7.0020.0019][.204D.0020.0019] # ARABIC LIGATURE YEH WITH REH FINAL FORM
-FC92 ; [.20C7.0020.0019][.204E.0020.0019] # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
-FCDD ; [.20C7.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
-FCF0 ; [.20C7.0020.0018][.20A5.0020.0018] # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
-FC93 ; [.20C7.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE YEH WITH MEEM FINAL FORM
-FC58 ; [.20C7.0020.001A][.20A5.0020.001A] # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
-FD9D ; [.20C7.0020.0017][.20A5.0020.0017][.20A5.0020.0017] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
-FD9C ; [.20C7.0020.0019][.20A5.0020.0019][.20A5.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
-FDB0 ; [.20C7.0020.0019][.20A5.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
-FC94 ; [.20C7.0020.0019][.20A9.0020.0019] # ARABIC LIGATURE YEH WITH NOON FINAL FORM
-FCDE ; [.20C7.0020.0017][.20B2.0020.0017] # ARABIC LIGATURE YEH WITH HEH INITIAL FORM
-FCF1 ; [.20C7.0020.0018][.20B2.0020.0018] # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
-FC95 ; [.20C7.0020.0019][.20C6.0020.0019] # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
-FC59 ; [.20C7.0020.001A][.20C6.0020.001A] # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
-FC96 ; [.20C7.0020.0019][.20C7.0020.0019] # ARABIC LIGATURE YEH WITH YEH FINAL FORM
-FC5A ; [.20C7.0020.001A][.20C7.0020.001A] # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
-06CC ; [.20C8.0020.0002] # ARABIC LETTER FARSI YEH
-FBFE ; [.20C8.0020.0017] # ARABIC LETTER FARSI YEH INITIAL FORM
-FBFF ; [.20C8.0020.0018] # ARABIC LETTER FARSI YEH MEDIAL FORM
-FBFD ; [.20C8.0020.0019] # ARABIC LETTER FARSI YEH FINAL FORM
-FBFC ; [.20C8.0020.001A] # ARABIC LETTER FARSI YEH ISOLATED FORM
-06CD ; [.20C9.0020.0002] # ARABIC LETTER YEH WITH TAIL
-06CE ; [.20CA.0020.0002] # ARABIC LETTER YEH WITH SMALL V
-06D0 ; [.20CB.0020.0002] # ARABIC LETTER E
-FBE6 ; [.20CB.0020.0017] # ARABIC LETTER E INITIAL FORM
-FBE7 ; [.20CB.0020.0018] # ARABIC LETTER E MEDIAL FORM
-FBE5 ; [.20CB.0020.0019] # ARABIC LETTER E FINAL FORM
-FBE4 ; [.20CB.0020.001A] # ARABIC LETTER E ISOLATED FORM
-06D1 ; [.20CC.0020.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
-063D ; [.20CD.0020.0002] # ARABIC LETTER FARSI YEH WITH INVERTED V
-063E ; [.20CE.0020.0002] # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
-063F ; [.20CF.0020.0002] # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0620 ; [.20D0.0020.0002] # ARABIC LETTER KASHMIRI YEH
-0775 ; [.20D1.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-0776 ; [.20D2.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0777 ; [.20D3.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
-06D2 ; [.20D4.0020.0002] # ARABIC LETTER YEH BARREE
-FBAF ; [.20D4.0020.0019] # ARABIC LETTER YEH BARREE FINAL FORM
-FBAE ; [.20D4.0020.001A] # ARABIC LETTER YEH BARREE ISOLATED FORM
-06D3 ; [.20D4.0020.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-FBB1 ; [.20D4.0020.0019][.0000.0083.0019] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB0 ; [.20D4.0020.001A][.0000.0083.001A] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-077A ; [.20D5.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
-077B ; [.20D6.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
-0710 ; [.20D7.0020.0002] # SYRIAC LETTER ALAPH
-0712 ; [.20D8.0020.0002] # SYRIAC LETTER BETH
-072D ; [.20D8.0020.0004][.0000.010A.0004] # SYRIAC LETTER PERSIAN BHETH
-0713 ; [.20D9.0020.0002] # SYRIAC LETTER GAMAL
-0714 ; [.20D9.0020.0004][.0000.0109.0004] # SYRIAC LETTER GAMAL GARSHUNI
-072E ; [.20D9.0020.0004][.0000.010A.0004] # SYRIAC LETTER PERSIAN GHAMAL
-0716 ; [.20DA.0020.0002] # SYRIAC LETTER DOTLESS DALATH RISH
-0715 ; [.20DB.0020.0002] # SYRIAC LETTER DALATH
-072F ; [.20DB.0020.0004][.0000.010A.0004] # SYRIAC LETTER PERSIAN DHALATH
-0717 ; [.20DC.0020.0002] # SYRIAC LETTER HE
-0718 ; [.20DD.0020.0002] # SYRIAC LETTER WAW
-0719 ; [.20DE.0020.0002] # SYRIAC LETTER ZAIN
-074D ; [.20DF.0020.0002] # SYRIAC LETTER SOGDIAN ZHAIN
-071A ; [.20E0.0020.0002] # SYRIAC LETTER HETH
-071B ; [.20E1.0020.0002] # SYRIAC LETTER TETH
-071C ; [.20E1.0020.0004][.0000.0109.0004] # SYRIAC LETTER TETH GARSHUNI
-071D ; [.20E2.0020.0002] # SYRIAC LETTER YUDH
-071E ; [.20E3.0020.0002] # SYRIAC LETTER YUDH HE
-071F ; [.20E4.0020.0002] # SYRIAC LETTER KAPH
-074E ; [.20E5.0020.0002] # SYRIAC LETTER SOGDIAN KHAPH
-0720 ; [.20E6.0020.0002] # SYRIAC LETTER LAMADH
-0721 ; [.20E7.0020.0002] # SYRIAC LETTER MIM
-0722 ; [.20E8.0020.0002] # SYRIAC LETTER NUN
-0723 ; [.20E9.0020.0002] # SYRIAC LETTER SEMKATH
-0724 ; [.20E9.0020.0019] # SYRIAC LETTER FINAL SEMKATH
-0725 ; [.20EA.0020.0002] # SYRIAC LETTER E
-0726 ; [.20EB.0020.0002] # SYRIAC LETTER PE
-0727 ; [.20EB.0020.0004][.0000.0109.0004] # SYRIAC LETTER REVERSED PE
-074F ; [.20EC.0020.0002] # SYRIAC LETTER SOGDIAN FE
-0728 ; [.20ED.0020.0002] # SYRIAC LETTER SADHE
-0729 ; [.20EE.0020.0002] # SYRIAC LETTER QAPH
-072A ; [.20EF.0020.0002] # SYRIAC LETTER RISH
-072B ; [.20F0.0020.0002] # SYRIAC LETTER SHIN
-072C ; [.20F1.0020.0002] # SYRIAC LETTER TAW
-0840 ; [.20F2.0020.0002] # MANDAIC LETTER HALQA
-0841 ; [.20F3.0020.0002] # MANDAIC LETTER AB
-0842 ; [.20F4.0020.0002] # MANDAIC LETTER AG
-0843 ; [.20F5.0020.0002] # MANDAIC LETTER AD
-0844 ; [.20F6.0020.0002] # MANDAIC LETTER AH
-0845 ; [.20F7.0020.0002] # MANDAIC LETTER USHENNA
-0846 ; [.20F8.0020.0002] # MANDAIC LETTER AZ
-0847 ; [.20F9.0020.0002] # MANDAIC LETTER IT
-0848 ; [.20FA.0020.0002] # MANDAIC LETTER ATT
-0849 ; [.20FB.0020.0002] # MANDAIC LETTER AKSA
-084A ; [.20FC.0020.0002] # MANDAIC LETTER AK
-084B ; [.20FD.0020.0002] # MANDAIC LETTER AL
-084C ; [.20FE.0020.0002] # MANDAIC LETTER AM
-084D ; [.20FF.0020.0002] # MANDAIC LETTER AN
-084E ; [.2100.0020.0002] # MANDAIC LETTER AS
-084F ; [.2101.0020.0002] # MANDAIC LETTER IN
-0850 ; [.2102.0020.0002] # MANDAIC LETTER AP
-0851 ; [.2103.0020.0002] # MANDAIC LETTER ASZ
-0852 ; [.2104.0020.0002] # MANDAIC LETTER AQ
-0853 ; [.2105.0020.0002] # MANDAIC LETTER AR
-0854 ; [.2106.0020.0002] # MANDAIC LETTER ASH
-0855 ; [.2107.0020.0002] # MANDAIC LETTER AT
-0856 ; [.2108.0020.0002] # MANDAIC LETTER DUSHENNA
-0857 ; [.2109.0020.0002] # MANDAIC LETTER KAD
-0858 ; [.210A.0020.0002] # MANDAIC LETTER AIN
-0780 ; [.210B.0020.0002] # THAANA LETTER HAA
-0799 ; [.210C.0020.0002] # THAANA LETTER HHAA
-079A ; [.210D.0020.0002] # THAANA LETTER KHAA
-0781 ; [.210E.0020.0002] # THAANA LETTER SHAVIYANI
-0782 ; [.210F.0020.0002] # THAANA LETTER NOONU
-0783 ; [.2110.0020.0002] # THAANA LETTER RAA
-079C ; [.2111.0020.0002] # THAANA LETTER ZAA
-0784 ; [.2112.0020.0002] # THAANA LETTER BAA
-0785 ; [.2113.0020.0002] # THAANA LETTER LHAVIYANI
-0786 ; [.2114.0020.0002] # THAANA LETTER KAAFU
-0787 ; [.2115.0020.0002] # THAANA LETTER ALIFU
-07A2 ; [.2116.0020.0002] # THAANA LETTER AINU
-07A3 ; [.2117.0020.0002] # THAANA LETTER GHAINU
-0788 ; [.2118.0020.0002] # THAANA LETTER VAAVU
-07A5 ; [.2119.0020.0002] # THAANA LETTER WAAVU
-0789 ; [.211A.0020.0002] # THAANA LETTER MEEMU
-078A ; [.211B.0020.0002] # THAANA LETTER FAAFU
-078B ; [.211C.0020.0002] # THAANA LETTER DHAALU
-079B ; [.211D.0020.0002] # THAANA LETTER THAALU
-078C ; [.211E.0020.0002] # THAANA LETTER THAA
-0798 ; [.211F.0020.0002] # THAANA LETTER TTAA
-07A0 ; [.2120.0020.0002] # THAANA LETTER TO
-07A1 ; [.2121.0020.0002] # THAANA LETTER ZO
-078D ; [.2122.0020.0002] # THAANA LETTER LAAMU
-078E ; [.2123.0020.0002] # THAANA LETTER GAAFU
-07A4 ; [.2124.0020.0002] # THAANA LETTER QAAFU
-078F ; [.2125.0020.0002] # THAANA LETTER GNAVIYANI
-0790 ; [.2126.0020.0002] # THAANA LETTER SEENU
-079D ; [.2127.0020.0002] # THAANA LETTER SHEENU
-079E ; [.2128.0020.0002] # THAANA LETTER SAADHU
-079F ; [.2129.0020.0002] # THAANA LETTER DAADHU
-0791 ; [.212A.0020.0002] # THAANA LETTER DAVIYANI
-0792 ; [.212B.0020.0002] # THAANA LETTER ZAVIYANI
-0793 ; [.212C.0020.0002] # THAANA LETTER TAVIYANI
-0794 ; [.212D.0020.0002] # THAANA LETTER YAA
-0795 ; [.212E.0020.0002] # THAANA LETTER PAVIYANI
-0796 ; [.212F.0020.0002] # THAANA LETTER JAVIYANI
-0797 ; [.2130.0020.0002] # THAANA LETTER CHAVIYANI
-07B1 ; [.2131.0020.0002] # THAANA LETTER NAA
-07A6 ; [.2132.0020.0002] # THAANA ABAFILI
-07A7 ; [.2133.0020.0002] # THAANA AABAAFILI
-07A8 ; [.2134.0020.0002] # THAANA IBIFILI
-07A9 ; [.2135.0020.0002] # THAANA EEBEEFILI
-07AA ; [.2136.0020.0002] # THAANA UBUFILI
-07AB ; [.2137.0020.0002] # THAANA OOBOOFILI
-07AC ; [.2138.0020.0002] # THAANA EBEFILI
-07AD ; [.2139.0020.0002] # THAANA EYBEYFILI
-07AE ; [.213A.0020.0002] # THAANA OBOFILI
-07AF ; [.213B.0020.0002] # THAANA OABOAFILI
-07B0 ; [.213C.0020.0002] # THAANA SUKUN
-07CA ; [.213D.0020.0002] # NKO LETTER A
-07CB ; [.213E.0020.0002] # NKO LETTER EE
-07CC ; [.213F.0020.0002] # NKO LETTER I
-07CD ; [.2140.0020.0002] # NKO LETTER E
-07CE ; [.2141.0020.0002] # NKO LETTER U
-07CF ; [.2142.0020.0002] # NKO LETTER OO
-07D0 ; [.2143.0020.0002] # NKO LETTER O
-07D1 ; [.2144.0020.0002] # NKO LETTER DAGBASINNA
-07D2 ; [.2145.0020.0002] # NKO LETTER N
-07D3 ; [.2146.0020.0002] # NKO LETTER BA
-07D4 ; [.2147.0020.0002] # NKO LETTER PA
-07D5 ; [.2148.0020.0002] # NKO LETTER TA
-07D6 ; [.2149.0020.0002] # NKO LETTER JA
-07E8 ; [.2149.0020.0004][.0000.0108.0004] # NKO LETTER JONA JA
-07D7 ; [.214A.0020.0002] # NKO LETTER CHA
-07E9 ; [.214A.0020.0004][.0000.0108.0004] # NKO LETTER JONA CHA
-07D8 ; [.214B.0020.0002] # NKO LETTER DA
-07D9 ; [.214C.0020.0002] # NKO LETTER RA
-07EA ; [.214C.0020.0004][.0000.0108.0004] # NKO LETTER JONA RA
-07DA ; [.214D.0020.0002] # NKO LETTER RRA
-07DB ; [.214E.0020.0002] # NKO LETTER SA
-07DC ; [.214F.0020.0002] # NKO LETTER GBA
-07DD ; [.2150.0020.0002] # NKO LETTER FA
-07DE ; [.2151.0020.0002] # NKO LETTER KA
-07DF ; [.2152.0020.0002] # NKO LETTER LA
-07E0 ; [.2153.0020.0002] # NKO LETTER NA WOLOSO
-07E1 ; [.2154.0020.0002] # NKO LETTER MA
-07E2 ; [.2155.0020.0002] # NKO LETTER NYA
-07E3 ; [.2156.0020.0002] # NKO LETTER NA
-07E4 ; [.2157.0020.0002] # NKO LETTER HA
-07E5 ; [.2158.0020.0002] # NKO LETTER WA
-07E6 ; [.2159.0020.0002] # NKO LETTER YA
-07E7 ; [.215A.0020.0002] # NKO LETTER NYA WOLOSO
-07F4 ; [.215B.0020.0002] # NKO HIGH TONE APOSTROPHE
-07F5 ; [.215C.0020.0002] # NKO LOW TONE APOSTROPHE
-2D30 ; [.215D.0020.0002] # TIFINAGH LETTER YA
-2D31 ; [.215E.0020.0002] # TIFINAGH LETTER YAB
-2D32 ; [.215F.0020.0002] # TIFINAGH LETTER YABH
-2D33 ; [.2160.0020.0002] # TIFINAGH LETTER YAG
-2D34 ; [.2161.0020.0002] # TIFINAGH LETTER YAGHH
-2D35 ; [.2162.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAJ
-2D36 ; [.2163.0020.0002] # TIFINAGH LETTER YAJ
-2D37 ; [.2164.0020.0002] # TIFINAGH LETTER YAD
-2D38 ; [.2165.0020.0002] # TIFINAGH LETTER YADH
-2D39 ; [.2166.0020.0002] # TIFINAGH LETTER YADD
-2D3A ; [.2167.0020.0002] # TIFINAGH LETTER YADDH
-2D3B ; [.2168.0020.0002] # TIFINAGH LETTER YEY
-2D66 ; [.2169.0020.0002] # TIFINAGH LETTER YE
-2D3C ; [.216A.0020.0002] # TIFINAGH LETTER YAF
-2D3D ; [.216B.0020.0002] # TIFINAGH LETTER YAK
-2D3E ; [.216C.0020.0002] # TIFINAGH LETTER TUAREG YAK
-2D3F ; [.216D.0020.0002] # TIFINAGH LETTER YAKHH
-2D40 ; [.216E.0020.0002] # TIFINAGH LETTER YAH
-2D41 ; [.216F.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAH
-2D42 ; [.2170.0020.0002] # TIFINAGH LETTER TUAREG YAH
-2D43 ; [.2171.0020.0002] # TIFINAGH LETTER YAHH
-2D44 ; [.2172.0020.0002] # TIFINAGH LETTER YAA
-2D45 ; [.2173.0020.0002] # TIFINAGH LETTER YAKH
-2D46 ; [.2174.0020.0002] # TIFINAGH LETTER TUAREG YAKH
-2D47 ; [.2175.0020.0002] # TIFINAGH LETTER YAQ
-2D48 ; [.2176.0020.0002] # TIFINAGH LETTER TUAREG YAQ
-2D49 ; [.2177.0020.0002] # TIFINAGH LETTER YI
-2D4A ; [.2178.0020.0002] # TIFINAGH LETTER YAZH
-2D4B ; [.2179.0020.0002] # TIFINAGH LETTER AHAGGAR YAZH
-2D4C ; [.217A.0020.0002] # TIFINAGH LETTER TUAREG YAZH
-2D4D ; [.217B.0020.0002] # TIFINAGH LETTER YAL
-2D4E ; [.217C.0020.0002] # TIFINAGH LETTER YAM
-2D4F ; [.217D.0020.0002] # TIFINAGH LETTER YAN
-2D50 ; [.217E.0020.0002] # TIFINAGH LETTER TUAREG YAGN
-2D51 ; [.217F.0020.0002] # TIFINAGH LETTER TUAREG YANG
-2D52 ; [.2180.0020.0002] # TIFINAGH LETTER YAP
-2D53 ; [.2181.0020.0002] # TIFINAGH LETTER YU
-2D67 ; [.2182.0020.0002] # TIFINAGH LETTER YO
-2D54 ; [.2183.0020.0002] # TIFINAGH LETTER YAR
-2D55 ; [.2184.0020.0002] # TIFINAGH LETTER YARR
-2D56 ; [.2185.0020.0002] # TIFINAGH LETTER YAGH
-2D57 ; [.2186.0020.0002] # TIFINAGH LETTER TUAREG YAGH
-2D58 ; [.2187.0020.0002] # TIFINAGH LETTER AYER YAGH
-2D59 ; [.2188.0020.0002] # TIFINAGH LETTER YAS
-2D5A ; [.2189.0020.0002] # TIFINAGH LETTER YASS
-2D5B ; [.218A.0020.0002] # TIFINAGH LETTER YASH
-2D5C ; [.218B.0020.0002] # TIFINAGH LETTER YAT
-2D5D ; [.218C.0020.0002] # TIFINAGH LETTER YATH
-2D5E ; [.218D.0020.0002] # TIFINAGH LETTER YACH
-2D5F ; [.218E.0020.0002] # TIFINAGH LETTER YATT
-2D60 ; [.218F.0020.0002] # TIFINAGH LETTER YAV
-2D61 ; [.2190.0020.0002] # TIFINAGH LETTER YAW
-2D62 ; [.2191.0020.0002] # TIFINAGH LETTER YAY
-2D63 ; [.2192.0020.0002] # TIFINAGH LETTER YAZ
-2D64 ; [.2193.0020.0002] # TIFINAGH LETTER TAWELLEMET YAZ
-2D65 ; [.2194.0020.0002] # TIFINAGH LETTER YAZZ
-2D6F ; [.2195.0020.0002] # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
-1200 ; [.2196.0020.0002] # ETHIOPIC SYLLABLE HA
-1201 ; [.2197.0020.0002] # ETHIOPIC SYLLABLE HU
-1202 ; [.2198.0020.0002] # ETHIOPIC SYLLABLE HI
-1203 ; [.2199.0020.0002] # ETHIOPIC SYLLABLE HAA
-1204 ; [.219A.0020.0002] # ETHIOPIC SYLLABLE HEE
-1205 ; [.219B.0020.0002] # ETHIOPIC SYLLABLE HE
-1206 ; [.219C.0020.0002] # ETHIOPIC SYLLABLE HO
-1207 ; [.219D.0020.0002] # ETHIOPIC SYLLABLE HOA
-1208 ; [.219E.0020.0002] # ETHIOPIC SYLLABLE LA
-1209 ; [.219F.0020.0002] # ETHIOPIC SYLLABLE LU
-120A ; [.21A0.0020.0002] # ETHIOPIC SYLLABLE LI
-120B ; [.21A1.0020.0002] # ETHIOPIC SYLLABLE LAA
-120C ; [.21A2.0020.0002] # ETHIOPIC SYLLABLE LEE
-120D ; [.21A3.0020.0002] # ETHIOPIC SYLLABLE LE
-120E ; [.21A4.0020.0002] # ETHIOPIC SYLLABLE LO
-120F ; [.21A5.0020.0002] # ETHIOPIC SYLLABLE LWA
-2D80 ; [.21A6.0020.0002] # ETHIOPIC SYLLABLE LOA
-1210 ; [.21A7.0020.0002] # ETHIOPIC SYLLABLE HHA
-1211 ; [.21A8.0020.0002] # ETHIOPIC SYLLABLE HHU
-1212 ; [.21A9.0020.0002] # ETHIOPIC SYLLABLE HHI
-1213 ; [.21AA.0020.0002] # ETHIOPIC SYLLABLE HHAA
-1214 ; [.21AB.0020.0002] # ETHIOPIC SYLLABLE HHEE
-1215 ; [.21AC.0020.0002] # ETHIOPIC SYLLABLE HHE
-1216 ; [.21AD.0020.0002] # ETHIOPIC SYLLABLE HHO
-1217 ; [.21AE.0020.0002] # ETHIOPIC SYLLABLE HHWA
-1218 ; [.21AF.0020.0002] # ETHIOPIC SYLLABLE MA
-1219 ; [.21B0.0020.0002] # ETHIOPIC SYLLABLE MU
-121A ; [.21B1.0020.0002] # ETHIOPIC SYLLABLE MI
-121B ; [.21B2.0020.0002] # ETHIOPIC SYLLABLE MAA
-121C ; [.21B3.0020.0002] # ETHIOPIC SYLLABLE MEE
-121D ; [.21B4.0020.0002] # ETHIOPIC SYLLABLE ME
-121E ; [.21B5.0020.0002] # ETHIOPIC SYLLABLE MO
-121F ; [.21B6.0020.0002] # ETHIOPIC SYLLABLE MWA
-1380 ; [.21B7.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT MWA
-1381 ; [.21B8.0020.0002] # ETHIOPIC SYLLABLE MWI
-1382 ; [.21B9.0020.0002] # ETHIOPIC SYLLABLE MWEE
-1383 ; [.21BA.0020.0002] # ETHIOPIC SYLLABLE MWE
-2D81 ; [.21BB.0020.0002] # ETHIOPIC SYLLABLE MOA
-1220 ; [.21BC.0020.0002] # ETHIOPIC SYLLABLE SZA
-1221 ; [.21BD.0020.0002] # ETHIOPIC SYLLABLE SZU
-1222 ; [.21BE.0020.0002] # ETHIOPIC SYLLABLE SZI
-1223 ; [.21BF.0020.0002] # ETHIOPIC SYLLABLE SZAA
-1224 ; [.21C0.0020.0002] # ETHIOPIC SYLLABLE SZEE
-1225 ; [.21C1.0020.0002] # ETHIOPIC SYLLABLE SZE
-1226 ; [.21C2.0020.0002] # ETHIOPIC SYLLABLE SZO
-1227 ; [.21C3.0020.0002] # ETHIOPIC SYLLABLE SZWA
-1228 ; [.21C4.0020.0002] # ETHIOPIC SYLLABLE RA
-1229 ; [.21C5.0020.0002] # ETHIOPIC SYLLABLE RU
-122A ; [.21C6.0020.0002] # ETHIOPIC SYLLABLE RI
-122B ; [.21C7.0020.0002] # ETHIOPIC SYLLABLE RAA
-122C ; [.21C8.0020.0002] # ETHIOPIC SYLLABLE REE
-122D ; [.21C9.0020.0002] # ETHIOPIC SYLLABLE RE
-122E ; [.21CA.0020.0002] # ETHIOPIC SYLLABLE RO
-122F ; [.21CB.0020.0002] # ETHIOPIC SYLLABLE RWA
-2D82 ; [.21CC.0020.0002] # ETHIOPIC SYLLABLE ROA
-1230 ; [.21CD.0020.0002] # ETHIOPIC SYLLABLE SA
-1231 ; [.21CE.0020.0002] # ETHIOPIC SYLLABLE SU
-1232 ; [.21CF.0020.0002] # ETHIOPIC SYLLABLE SI
-1233 ; [.21D0.0020.0002] # ETHIOPIC SYLLABLE SAA
-1234 ; [.21D1.0020.0002] # ETHIOPIC SYLLABLE SEE
-1235 ; [.21D2.0020.0002] # ETHIOPIC SYLLABLE SE
-1236 ; [.21D3.0020.0002] # ETHIOPIC SYLLABLE SO
-1237 ; [.21D4.0020.0002] # ETHIOPIC SYLLABLE SWA
-2D83 ; [.21D5.0020.0002] # ETHIOPIC SYLLABLE SOA
-AB01 ; [.21D6.0020.0002] # ETHIOPIC SYLLABLE TTHU
-AB02 ; [.21D7.0020.0002] # ETHIOPIC SYLLABLE TTHI
-AB03 ; [.21D8.0020.0002] # ETHIOPIC SYLLABLE TTHAA
-AB04 ; [.21D9.0020.0002] # ETHIOPIC SYLLABLE TTHEE
-AB05 ; [.21DA.0020.0002] # ETHIOPIC SYLLABLE TTHE
-AB06 ; [.21DB.0020.0002] # ETHIOPIC SYLLABLE TTHO
-1238 ; [.21DC.0020.0002] # ETHIOPIC SYLLABLE SHA
-1239 ; [.21DD.0020.0002] # ETHIOPIC SYLLABLE SHU
-123A ; [.21DE.0020.0002] # ETHIOPIC SYLLABLE SHI
-123B ; [.21DF.0020.0002] # ETHIOPIC SYLLABLE SHAA
-123C ; [.21E0.0020.0002] # ETHIOPIC SYLLABLE SHEE
-123D ; [.21E1.0020.0002] # ETHIOPIC SYLLABLE SHE
-123E ; [.21E2.0020.0002] # ETHIOPIC SYLLABLE SHO
-123F ; [.21E3.0020.0002] # ETHIOPIC SYLLABLE SHWA
-2D84 ; [.21E4.0020.0002] # ETHIOPIC SYLLABLE SHOA
-1240 ; [.21E5.0020.0002] # ETHIOPIC SYLLABLE QA
-1241 ; [.21E6.0020.0002] # ETHIOPIC SYLLABLE QU
-1242 ; [.21E7.0020.0002] # ETHIOPIC SYLLABLE QI
-1243 ; [.21E8.0020.0002] # ETHIOPIC SYLLABLE QAA
-1244 ; [.21E9.0020.0002] # ETHIOPIC SYLLABLE QEE
-1245 ; [.21EA.0020.0002] # ETHIOPIC SYLLABLE QE
-1246 ; [.21EB.0020.0002] # ETHIOPIC SYLLABLE QO
-1247 ; [.21EC.0020.0002] # ETHIOPIC SYLLABLE QOA
-1248 ; [.21ED.0020.0002] # ETHIOPIC SYLLABLE QWA
-124A ; [.21EE.0020.0002] # ETHIOPIC SYLLABLE QWI
-124B ; [.21EF.0020.0002] # ETHIOPIC SYLLABLE QWAA
-124C ; [.21F0.0020.0002] # ETHIOPIC SYLLABLE QWEE
-124D ; [.21F1.0020.0002] # ETHIOPIC SYLLABLE QWE
-1250 ; [.21F2.0020.0002] # ETHIOPIC SYLLABLE QHA
-1251 ; [.21F3.0020.0002] # ETHIOPIC SYLLABLE QHU
-1252 ; [.21F4.0020.0002] # ETHIOPIC SYLLABLE QHI
-1253 ; [.21F5.0020.0002] # ETHIOPIC SYLLABLE QHAA
-1254 ; [.21F6.0020.0002] # ETHIOPIC SYLLABLE QHEE
-1255 ; [.21F7.0020.0002] # ETHIOPIC SYLLABLE QHE
-1256 ; [.21F8.0020.0002] # ETHIOPIC SYLLABLE QHO
-1258 ; [.21F9.0020.0002] # ETHIOPIC SYLLABLE QHWA
-125A ; [.21FA.0020.0002] # ETHIOPIC SYLLABLE QHWI
-125B ; [.21FB.0020.0002] # ETHIOPIC SYLLABLE QHWAA
-125C ; [.21FC.0020.0002] # ETHIOPIC SYLLABLE QHWEE
-125D ; [.21FD.0020.0002] # ETHIOPIC SYLLABLE QHWE
-1260 ; [.21FE.0020.0002] # ETHIOPIC SYLLABLE BA
-1261 ; [.21FF.0020.0002] # ETHIOPIC SYLLABLE BU
-1262 ; [.2200.0020.0002] # ETHIOPIC SYLLABLE BI
-1263 ; [.2201.0020.0002] # ETHIOPIC SYLLABLE BAA
-1264 ; [.2202.0020.0002] # ETHIOPIC SYLLABLE BEE
-1265 ; [.2203.0020.0002] # ETHIOPIC SYLLABLE BE
-1266 ; [.2204.0020.0002] # ETHIOPIC SYLLABLE BO
-1267 ; [.2205.0020.0002] # ETHIOPIC SYLLABLE BWA
-1384 ; [.2206.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT BWA
-1385 ; [.2207.0020.0002] # ETHIOPIC SYLLABLE BWI
-1386 ; [.2208.0020.0002] # ETHIOPIC SYLLABLE BWEE
-1387 ; [.2209.0020.0002] # ETHIOPIC SYLLABLE BWE
-2D85 ; [.220A.0020.0002] # ETHIOPIC SYLLABLE BOA
-1268 ; [.220B.0020.0002] # ETHIOPIC SYLLABLE VA
-1269 ; [.220C.0020.0002] # ETHIOPIC SYLLABLE VU
-126A ; [.220D.0020.0002] # ETHIOPIC SYLLABLE VI
-126B ; [.220E.0020.0002] # ETHIOPIC SYLLABLE VAA
-126C ; [.220F.0020.0002] # ETHIOPIC SYLLABLE VEE
-126D ; [.2210.0020.0002] # ETHIOPIC SYLLABLE VE
-126E ; [.2211.0020.0002] # ETHIOPIC SYLLABLE VO
-126F ; [.2212.0020.0002] # ETHIOPIC SYLLABLE VWA
-1270 ; [.2213.0020.0002] # ETHIOPIC SYLLABLE TA
-1271 ; [.2214.0020.0002] # ETHIOPIC SYLLABLE TU
-1272 ; [.2215.0020.0002] # ETHIOPIC SYLLABLE TI
-1273 ; [.2216.0020.0002] # ETHIOPIC SYLLABLE TAA
-1274 ; [.2217.0020.0002] # ETHIOPIC SYLLABLE TEE
-1275 ; [.2218.0020.0002] # ETHIOPIC SYLLABLE TE
-1276 ; [.2219.0020.0002] # ETHIOPIC SYLLABLE TO
-1277 ; [.221A.0020.0002] # ETHIOPIC SYLLABLE TWA
-2D86 ; [.221B.0020.0002] # ETHIOPIC SYLLABLE TOA
-1278 ; [.221C.0020.0002] # ETHIOPIC SYLLABLE CA
-1279 ; [.221D.0020.0002] # ETHIOPIC SYLLABLE CU
-127A ; [.221E.0020.0002] # ETHIOPIC SYLLABLE CI
-127B ; [.221F.0020.0002] # ETHIOPIC SYLLABLE CAA
-127C ; [.2220.0020.0002] # ETHIOPIC SYLLABLE CEE
-127D ; [.2221.0020.0002] # ETHIOPIC SYLLABLE CE
-127E ; [.2222.0020.0002] # ETHIOPIC SYLLABLE CO
-127F ; [.2223.0020.0002] # ETHIOPIC SYLLABLE CWA
-2D87 ; [.2224.0020.0002] # ETHIOPIC SYLLABLE COA
-1280 ; [.2225.0020.0002] # ETHIOPIC SYLLABLE XA
-1281 ; [.2226.0020.0002] # ETHIOPIC SYLLABLE XU
-1282 ; [.2227.0020.0002] # ETHIOPIC SYLLABLE XI
-1283 ; [.2228.0020.0002] # ETHIOPIC SYLLABLE XAA
-1284 ; [.2229.0020.0002] # ETHIOPIC SYLLABLE XEE
-1285 ; [.222A.0020.0002] # ETHIOPIC SYLLABLE XE
-1286 ; [.222B.0020.0002] # ETHIOPIC SYLLABLE XO
-1287 ; [.222C.0020.0002] # ETHIOPIC SYLLABLE XOA
-1288 ; [.222D.0020.0002] # ETHIOPIC SYLLABLE XWA
-128A ; [.222E.0020.0002] # ETHIOPIC SYLLABLE XWI
-128B ; [.222F.0020.0002] # ETHIOPIC SYLLABLE XWAA
-128C ; [.2230.0020.0002] # ETHIOPIC SYLLABLE XWEE
-128D ; [.2231.0020.0002] # ETHIOPIC SYLLABLE XWE
-1290 ; [.2232.0020.0002] # ETHIOPIC SYLLABLE NA
-1291 ; [.2233.0020.0002] # ETHIOPIC SYLLABLE NU
-1292 ; [.2234.0020.0002] # ETHIOPIC SYLLABLE NI
-1293 ; [.2235.0020.0002] # ETHIOPIC SYLLABLE NAA
-1294 ; [.2236.0020.0002] # ETHIOPIC SYLLABLE NEE
-1295 ; [.2237.0020.0002] # ETHIOPIC SYLLABLE NE
-1296 ; [.2238.0020.0002] # ETHIOPIC SYLLABLE NO
-1297 ; [.2239.0020.0002] # ETHIOPIC SYLLABLE NWA
-2D88 ; [.223A.0020.0002] # ETHIOPIC SYLLABLE NOA
-1298 ; [.223B.0020.0002] # ETHIOPIC SYLLABLE NYA
-1299 ; [.223C.0020.0002] # ETHIOPIC SYLLABLE NYU
-129A ; [.223D.0020.0002] # ETHIOPIC SYLLABLE NYI
-129B ; [.223E.0020.0002] # ETHIOPIC SYLLABLE NYAA
-129C ; [.223F.0020.0002] # ETHIOPIC SYLLABLE NYEE
-129D ; [.2240.0020.0002] # ETHIOPIC SYLLABLE NYE
-129E ; [.2241.0020.0002] # ETHIOPIC SYLLABLE NYO
-129F ; [.2242.0020.0002] # ETHIOPIC SYLLABLE NYWA
-2D89 ; [.2243.0020.0002] # ETHIOPIC SYLLABLE NYOA
-12A0 ; [.2244.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL A
-12A1 ; [.2245.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL U
-12A2 ; [.2246.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL I
-12A3 ; [.2247.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL AA
-12A4 ; [.2248.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL EE
-12A5 ; [.2249.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL E
-12A6 ; [.224A.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL O
-12A7 ; [.224B.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL WA
-2D8A ; [.224C.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL OA
-12A8 ; [.224D.0020.0002] # ETHIOPIC SYLLABLE KA
-12A9 ; [.224E.0020.0002] # ETHIOPIC SYLLABLE KU
-12AA ; [.224F.0020.0002] # ETHIOPIC SYLLABLE KI
-12AB ; [.2250.0020.0002] # ETHIOPIC SYLLABLE KAA
-12AC ; [.2251.0020.0002] # ETHIOPIC SYLLABLE KEE
-12AD ; [.2252.0020.0002] # ETHIOPIC SYLLABLE KE
-12AE ; [.2253.0020.0002] # ETHIOPIC SYLLABLE KO
-12AF ; [.2254.0020.0002] # ETHIOPIC SYLLABLE KOA
-12B0 ; [.2255.0020.0002] # ETHIOPIC SYLLABLE KWA
-12B2 ; [.2256.0020.0002] # ETHIOPIC SYLLABLE KWI
-12B3 ; [.2257.0020.0002] # ETHIOPIC SYLLABLE KWAA
-12B4 ; [.2258.0020.0002] # ETHIOPIC SYLLABLE KWEE
-12B5 ; [.2259.0020.0002] # ETHIOPIC SYLLABLE KWE
-12B8 ; [.225A.0020.0002] # ETHIOPIC SYLLABLE KXA
-12B9 ; [.225B.0020.0002] # ETHIOPIC SYLLABLE KXU
-12BA ; [.225C.0020.0002] # ETHIOPIC SYLLABLE KXI
-12BB ; [.225D.0020.0002] # ETHIOPIC SYLLABLE KXAA
-12BC ; [.225E.0020.0002] # ETHIOPIC SYLLABLE KXEE
-12BD ; [.225F.0020.0002] # ETHIOPIC SYLLABLE KXE
-12BE ; [.2260.0020.0002] # ETHIOPIC SYLLABLE KXO
-12C0 ; [.2261.0020.0002] # ETHIOPIC SYLLABLE KXWA
-12C2 ; [.2262.0020.0002] # ETHIOPIC SYLLABLE KXWI
-12C3 ; [.2263.0020.0002] # ETHIOPIC SYLLABLE KXWAA
-12C4 ; [.2264.0020.0002] # ETHIOPIC SYLLABLE KXWEE
-12C5 ; [.2265.0020.0002] # ETHIOPIC SYLLABLE KXWE
-12C8 ; [.2266.0020.0002] # ETHIOPIC SYLLABLE WA
-12C9 ; [.2267.0020.0002] # ETHIOPIC SYLLABLE WU
-12CA ; [.2268.0020.0002] # ETHIOPIC SYLLABLE WI
-12CB ; [.2269.0020.0002] # ETHIOPIC SYLLABLE WAA
-12CC ; [.226A.0020.0002] # ETHIOPIC SYLLABLE WEE
-12CD ; [.226B.0020.0002] # ETHIOPIC SYLLABLE WE
-12CE ; [.226C.0020.0002] # ETHIOPIC SYLLABLE WO
-12CF ; [.226D.0020.0002] # ETHIOPIC SYLLABLE WOA
-12D0 ; [.226E.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL A
-12D1 ; [.226F.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL U
-12D2 ; [.2270.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL I
-12D3 ; [.2271.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL AA
-12D4 ; [.2272.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL EE
-12D5 ; [.2273.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL E
-12D6 ; [.2274.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8 ; [.2275.0020.0002] # ETHIOPIC SYLLABLE ZA
-12D9 ; [.2276.0020.0002] # ETHIOPIC SYLLABLE ZU
-12DA ; [.2277.0020.0002] # ETHIOPIC SYLLABLE ZI
-12DB ; [.2278.0020.0002] # ETHIOPIC SYLLABLE ZAA
-12DC ; [.2279.0020.0002] # ETHIOPIC SYLLABLE ZEE
-12DD ; [.227A.0020.0002] # ETHIOPIC SYLLABLE ZE
-12DE ; [.227B.0020.0002] # ETHIOPIC SYLLABLE ZO
-12DF ; [.227C.0020.0002] # ETHIOPIC SYLLABLE ZWA
-2D8B ; [.227D.0020.0002] # ETHIOPIC SYLLABLE ZOA
-AB11 ; [.227E.0020.0002] # ETHIOPIC SYLLABLE DZU
-AB12 ; [.227F.0020.0002] # ETHIOPIC SYLLABLE DZI
-AB13 ; [.2280.0020.0002] # ETHIOPIC SYLLABLE DZAA
-AB14 ; [.2281.0020.0002] # ETHIOPIC SYLLABLE DZEE
-AB15 ; [.2282.0020.0002] # ETHIOPIC SYLLABLE DZE
-AB16 ; [.2283.0020.0002] # ETHIOPIC SYLLABLE DZO
-12E0 ; [.2284.0020.0002] # ETHIOPIC SYLLABLE ZHA
-12E1 ; [.2285.0020.0002] # ETHIOPIC SYLLABLE ZHU
-12E2 ; [.2286.0020.0002] # ETHIOPIC SYLLABLE ZHI
-12E3 ; [.2287.0020.0002] # ETHIOPIC SYLLABLE ZHAA
-12E4 ; [.2288.0020.0002] # ETHIOPIC SYLLABLE ZHEE
-12E5 ; [.2289.0020.0002] # ETHIOPIC SYLLABLE ZHE
-12E6 ; [.228A.0020.0002] # ETHIOPIC SYLLABLE ZHO
-12E7 ; [.228B.0020.0002] # ETHIOPIC SYLLABLE ZHWA
-12E8 ; [.228C.0020.0002] # ETHIOPIC SYLLABLE YA
-12E9 ; [.228D.0020.0002] # ETHIOPIC SYLLABLE YU
-12EA ; [.228E.0020.0002] # ETHIOPIC SYLLABLE YI
-12EB ; [.228F.0020.0002] # ETHIOPIC SYLLABLE YAA
-12EC ; [.2290.0020.0002] # ETHIOPIC SYLLABLE YEE
-12ED ; [.2291.0020.0002] # ETHIOPIC SYLLABLE YE
-12EE ; [.2292.0020.0002] # ETHIOPIC SYLLABLE YO
-12EF ; [.2293.0020.0002] # ETHIOPIC SYLLABLE YOA
-12F0 ; [.2294.0020.0002] # ETHIOPIC SYLLABLE DA
-12F1 ; [.2295.0020.0002] # ETHIOPIC SYLLABLE DU
-12F2 ; [.2296.0020.0002] # ETHIOPIC SYLLABLE DI
-12F3 ; [.2297.0020.0002] # ETHIOPIC SYLLABLE DAA
-12F4 ; [.2298.0020.0002] # ETHIOPIC SYLLABLE DEE
-12F5 ; [.2299.0020.0002] # ETHIOPIC SYLLABLE DE
-12F6 ; [.229A.0020.0002] # ETHIOPIC SYLLABLE DO
-12F7 ; [.229B.0020.0002] # ETHIOPIC SYLLABLE DWA
-2D8C ; [.229C.0020.0002] # ETHIOPIC SYLLABLE DOA
-AB09 ; [.229D.0020.0002] # ETHIOPIC SYLLABLE DDHU
-AB0A ; [.229E.0020.0002] # ETHIOPIC SYLLABLE DDHI
-AB0B ; [.229F.0020.0002] # ETHIOPIC SYLLABLE DDHAA
-AB0C ; [.22A0.0020.0002] # ETHIOPIC SYLLABLE DDHEE
-AB0D ; [.22A1.0020.0002] # ETHIOPIC SYLLABLE DDHE
-AB0E ; [.22A2.0020.0002] # ETHIOPIC SYLLABLE DDHO
-12F8 ; [.22A3.0020.0002] # ETHIOPIC SYLLABLE DDA
-12F9 ; [.22A4.0020.0002] # ETHIOPIC SYLLABLE DDU
-12FA ; [.22A5.0020.0002] # ETHIOPIC SYLLABLE DDI
-12FB ; [.22A6.0020.0002] # ETHIOPIC SYLLABLE DDAA
-12FC ; [.22A7.0020.0002] # ETHIOPIC SYLLABLE DDEE
-12FD ; [.22A8.0020.0002] # ETHIOPIC SYLLABLE DDE
-12FE ; [.22A9.0020.0002] # ETHIOPIC SYLLABLE DDO
-12FF ; [.22AA.0020.0002] # ETHIOPIC SYLLABLE DDWA
-2D8D ; [.22AB.0020.0002] # ETHIOPIC SYLLABLE DDOA
-1300 ; [.22AC.0020.0002] # ETHIOPIC SYLLABLE JA
-1301 ; [.22AD.0020.0002] # ETHIOPIC SYLLABLE JU
-1302 ; [.22AE.0020.0002] # ETHIOPIC SYLLABLE JI
-1303 ; [.22AF.0020.0002] # ETHIOPIC SYLLABLE JAA
-1304 ; [.22B0.0020.0002] # ETHIOPIC SYLLABLE JEE
-1305 ; [.22B1.0020.0002] # ETHIOPIC SYLLABLE JE
-1306 ; [.22B2.0020.0002] # ETHIOPIC SYLLABLE JO
-1307 ; [.22B3.0020.0002] # ETHIOPIC SYLLABLE JWA
-2D8E ; [.22B4.0020.0002] # ETHIOPIC SYLLABLE JOA
-1308 ; [.22B5.0020.0002] # ETHIOPIC SYLLABLE GA
-1309 ; [.22B6.0020.0002] # ETHIOPIC SYLLABLE GU
-130A ; [.22B7.0020.0002] # ETHIOPIC SYLLABLE GI
-130B ; [.22B8.0020.0002] # ETHIOPIC SYLLABLE GAA
-130C ; [.22B9.0020.0002] # ETHIOPIC SYLLABLE GEE
-130D ; [.22BA.0020.0002] # ETHIOPIC SYLLABLE GE
-130E ; [.22BB.0020.0002] # ETHIOPIC SYLLABLE GO
-130F ; [.22BC.0020.0002] # ETHIOPIC SYLLABLE GOA
-1310 ; [.22BD.0020.0002] # ETHIOPIC SYLLABLE GWA
-1312 ; [.22BE.0020.0002] # ETHIOPIC SYLLABLE GWI
-1313 ; [.22BF.0020.0002] # ETHIOPIC SYLLABLE GWAA
-1314 ; [.22C0.0020.0002] # ETHIOPIC SYLLABLE GWEE
-1315 ; [.22C1.0020.0002] # ETHIOPIC SYLLABLE GWE
-1318 ; [.22C2.0020.0002] # ETHIOPIC SYLLABLE GGA
-1319 ; [.22C3.0020.0002] # ETHIOPIC SYLLABLE GGU
-131A ; [.22C4.0020.0002] # ETHIOPIC SYLLABLE GGI
-131B ; [.22C5.0020.0002] # ETHIOPIC SYLLABLE GGAA
-131C ; [.22C6.0020.0002] # ETHIOPIC SYLLABLE GGEE
-131D ; [.22C7.0020.0002] # ETHIOPIC SYLLABLE GGE
-131E ; [.22C8.0020.0002] # ETHIOPIC SYLLABLE GGO
-131F ; [.22C9.0020.0002] # ETHIOPIC SYLLABLE GGWAA
-2D93 ; [.22CA.0020.0002] # ETHIOPIC SYLLABLE GGWA
-2D94 ; [.22CB.0020.0002] # ETHIOPIC SYLLABLE GGWI
-2D95 ; [.22CC.0020.0002] # ETHIOPIC SYLLABLE GGWEE
-2D96 ; [.22CD.0020.0002] # ETHIOPIC SYLLABLE GGWE
-1320 ; [.22CE.0020.0002] # ETHIOPIC SYLLABLE THA
-1321 ; [.22CF.0020.0002] # ETHIOPIC SYLLABLE THU
-1322 ; [.22D0.0020.0002] # ETHIOPIC SYLLABLE THI
-1323 ; [.22D1.0020.0002] # ETHIOPIC SYLLABLE THAA
-1324 ; [.22D2.0020.0002] # ETHIOPIC SYLLABLE THEE
-1325 ; [.22D3.0020.0002] # ETHIOPIC SYLLABLE THE
-1326 ; [.22D4.0020.0002] # ETHIOPIC SYLLABLE THO
-1327 ; [.22D5.0020.0002] # ETHIOPIC SYLLABLE THWA
-2D8F ; [.22D6.0020.0002] # ETHIOPIC SYLLABLE THOA
-1328 ; [.22D7.0020.0002] # ETHIOPIC SYLLABLE CHA
-1329 ; [.22D8.0020.0002] # ETHIOPIC SYLLABLE CHU
-132A ; [.22D9.0020.0002] # ETHIOPIC SYLLABLE CHI
-132B ; [.22DA.0020.0002] # ETHIOPIC SYLLABLE CHAA
-132C ; [.22DB.0020.0002] # ETHIOPIC SYLLABLE CHEE
-132D ; [.22DC.0020.0002] # ETHIOPIC SYLLABLE CHE
-132E ; [.22DD.0020.0002] # ETHIOPIC SYLLABLE CHO
-132F ; [.22DE.0020.0002] # ETHIOPIC SYLLABLE CHWA
-2D90 ; [.22DF.0020.0002] # ETHIOPIC SYLLABLE CHOA
-AB20 ; [.22E0.0020.0002] # ETHIOPIC SYLLABLE CCHHA
-AB21 ; [.22E1.0020.0002] # ETHIOPIC SYLLABLE CCHHU
-AB22 ; [.22E2.0020.0002] # ETHIOPIC SYLLABLE CCHHI
-AB23 ; [.22E3.0020.0002] # ETHIOPIC SYLLABLE CCHHAA
-AB24 ; [.22E4.0020.0002] # ETHIOPIC SYLLABLE CCHHEE
-AB25 ; [.22E5.0020.0002] # ETHIOPIC SYLLABLE CCHHE
-AB26 ; [.22E6.0020.0002] # ETHIOPIC SYLLABLE CCHHO
-1330 ; [.22E7.0020.0002] # ETHIOPIC SYLLABLE PHA
-1331 ; [.22E8.0020.0002] # ETHIOPIC SYLLABLE PHU
-1332 ; [.22E9.0020.0002] # ETHIOPIC SYLLABLE PHI
-1333 ; [.22EA.0020.0002] # ETHIOPIC SYLLABLE PHAA
-1334 ; [.22EB.0020.0002] # ETHIOPIC SYLLABLE PHEE
-1335 ; [.22EC.0020.0002] # ETHIOPIC SYLLABLE PHE
-1336 ; [.22ED.0020.0002] # ETHIOPIC SYLLABLE PHO
-1337 ; [.22EE.0020.0002] # ETHIOPIC SYLLABLE PHWA
-2D91 ; [.22EF.0020.0002] # ETHIOPIC SYLLABLE PHOA
-1338 ; [.22F0.0020.0002] # ETHIOPIC SYLLABLE TSA
-1339 ; [.22F1.0020.0002] # ETHIOPIC SYLLABLE TSU
-133A ; [.22F2.0020.0002] # ETHIOPIC SYLLABLE TSI
-133B ; [.22F3.0020.0002] # ETHIOPIC SYLLABLE TSAA
-133C ; [.22F4.0020.0002] # ETHIOPIC SYLLABLE TSEE
-133D ; [.22F5.0020.0002] # ETHIOPIC SYLLABLE TSE
-133E ; [.22F6.0020.0002] # ETHIOPIC SYLLABLE TSO
-133F ; [.22F7.0020.0002] # ETHIOPIC SYLLABLE TSWA
-AB28 ; [.22F8.0020.0002] # ETHIOPIC SYLLABLE BBA
-AB29 ; [.22F9.0020.0002] # ETHIOPIC SYLLABLE BBU
-AB2A ; [.22FA.0020.0002] # ETHIOPIC SYLLABLE BBI
-AB2B ; [.22FB.0020.0002] # ETHIOPIC SYLLABLE BBAA
-AB2C ; [.22FC.0020.0002] # ETHIOPIC SYLLABLE BBEE
-AB2D ; [.22FD.0020.0002] # ETHIOPIC SYLLABLE BBE
-AB2E ; [.22FE.0020.0002] # ETHIOPIC SYLLABLE BBO
-1340 ; [.22FF.0020.0002] # ETHIOPIC SYLLABLE TZA
-1341 ; [.2300.0020.0002] # ETHIOPIC SYLLABLE TZU
-1342 ; [.2301.0020.0002] # ETHIOPIC SYLLABLE TZI
-1343 ; [.2302.0020.0002] # ETHIOPIC SYLLABLE TZAA
-1344 ; [.2303.0020.0002] # ETHIOPIC SYLLABLE TZEE
-1345 ; [.2304.0020.0002] # ETHIOPIC SYLLABLE TZE
-1346 ; [.2305.0020.0002] # ETHIOPIC SYLLABLE TZO
-1347 ; [.2306.0020.0002] # ETHIOPIC SYLLABLE TZOA
-1348 ; [.2307.0020.0002] # ETHIOPIC SYLLABLE FA
-1349 ; [.2308.0020.0002] # ETHIOPIC SYLLABLE FU
-134A ; [.2309.0020.0002] # ETHIOPIC SYLLABLE FI
-134B ; [.230A.0020.0002] # ETHIOPIC SYLLABLE FAA
-134C ; [.230B.0020.0002] # ETHIOPIC SYLLABLE FEE
-134D ; [.230C.0020.0002] # ETHIOPIC SYLLABLE FE
-134E ; [.230D.0020.0002] # ETHIOPIC SYLLABLE FO
-134F ; [.230E.0020.0002] # ETHIOPIC SYLLABLE FWA
-1388 ; [.230F.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT FWA
-1389 ; [.2310.0020.0002] # ETHIOPIC SYLLABLE FWI
-138A ; [.2311.0020.0002] # ETHIOPIC SYLLABLE FWEE
-138B ; [.2312.0020.0002] # ETHIOPIC SYLLABLE FWE
-1350 ; [.2313.0020.0002] # ETHIOPIC SYLLABLE PA
-1351 ; [.2314.0020.0002] # ETHIOPIC SYLLABLE PU
-1352 ; [.2315.0020.0002] # ETHIOPIC SYLLABLE PI
-1353 ; [.2316.0020.0002] # ETHIOPIC SYLLABLE PAA
-1354 ; [.2317.0020.0002] # ETHIOPIC SYLLABLE PEE
-1355 ; [.2318.0020.0002] # ETHIOPIC SYLLABLE PE
-1356 ; [.2319.0020.0002] # ETHIOPIC SYLLABLE PO
-1357 ; [.231A.0020.0002] # ETHIOPIC SYLLABLE PWA
-138C ; [.231B.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT PWA
-138D ; [.231C.0020.0002] # ETHIOPIC SYLLABLE PWI
-138E ; [.231D.0020.0002] # ETHIOPIC SYLLABLE PWEE
-138F ; [.231E.0020.0002] # ETHIOPIC SYLLABLE PWE
-2D92 ; [.231F.0020.0002] # ETHIOPIC SYLLABLE POA
-1358 ; [.2320.0020.0002] # ETHIOPIC SYLLABLE RYA
-1359 ; [.2321.0020.0002] # ETHIOPIC SYLLABLE MYA
-135A ; [.2322.0020.0002] # ETHIOPIC SYLLABLE FYA
-2DA0 ; [.2323.0020.0002] # ETHIOPIC SYLLABLE SSA
-2DA1 ; [.2324.0020.0002] # ETHIOPIC SYLLABLE SSU
-2DA2 ; [.2325.0020.0002] # ETHIOPIC SYLLABLE SSI
-2DA3 ; [.2326.0020.0002] # ETHIOPIC SYLLABLE SSAA
-2DA4 ; [.2327.0020.0002] # ETHIOPIC SYLLABLE SSEE
-2DA5 ; [.2328.0020.0002] # ETHIOPIC SYLLABLE SSE
-2DA6 ; [.2329.0020.0002] # ETHIOPIC SYLLABLE SSO
-2DA8 ; [.232A.0020.0002] # ETHIOPIC SYLLABLE CCA
-2DA9 ; [.232B.0020.0002] # ETHIOPIC SYLLABLE CCU
-2DAA ; [.232C.0020.0002] # ETHIOPIC SYLLABLE CCI
-2DAB ; [.232D.0020.0002] # ETHIOPIC SYLLABLE CCAA
-2DAC ; [.232E.0020.0002] # ETHIOPIC SYLLABLE CCEE
-2DAD ; [.232F.0020.0002] # ETHIOPIC SYLLABLE CCE
-2DAE ; [.2330.0020.0002] # ETHIOPIC SYLLABLE CCO
-2DB0 ; [.2331.0020.0002] # ETHIOPIC SYLLABLE ZZA
-2DB1 ; [.2332.0020.0002] # ETHIOPIC SYLLABLE ZZU
-2DB2 ; [.2333.0020.0002] # ETHIOPIC SYLLABLE ZZI
-2DB3 ; [.2334.0020.0002] # ETHIOPIC SYLLABLE ZZAA
-2DB4 ; [.2335.0020.0002] # ETHIOPIC SYLLABLE ZZEE
-2DB5 ; [.2336.0020.0002] # ETHIOPIC SYLLABLE ZZE
-2DB6 ; [.2337.0020.0002] # ETHIOPIC SYLLABLE ZZO
-2DB8 ; [.2338.0020.0002] # ETHIOPIC SYLLABLE CCHA
-2DB9 ; [.2339.0020.0002] # ETHIOPIC SYLLABLE CCHU
-2DBA ; [.233A.0020.0002] # ETHIOPIC SYLLABLE CCHI
-2DBB ; [.233B.0020.0002] # ETHIOPIC SYLLABLE CCHAA
-2DBC ; [.233C.0020.0002] # ETHIOPIC SYLLABLE CCHEE
-2DBD ; [.233D.0020.0002] # ETHIOPIC SYLLABLE CCHE
-2DBE ; [.233E.0020.0002] # ETHIOPIC SYLLABLE CCHO
-2DC0 ; [.233F.0020.0002] # ETHIOPIC SYLLABLE QYA
-2DC1 ; [.2340.0020.0002] # ETHIOPIC SYLLABLE QYU
-2DC2 ; [.2341.0020.0002] # ETHIOPIC SYLLABLE QYI
-2DC3 ; [.2342.0020.0002] # ETHIOPIC SYLLABLE QYAA
-2DC4 ; [.2343.0020.0002] # ETHIOPIC SYLLABLE QYEE
-2DC5 ; [.2344.0020.0002] # ETHIOPIC SYLLABLE QYE
-2DC6 ; [.2345.0020.0002] # ETHIOPIC SYLLABLE QYO
-2DC8 ; [.2346.0020.0002] # ETHIOPIC SYLLABLE KYA
-2DC9 ; [.2347.0020.0002] # ETHIOPIC SYLLABLE KYU
-2DCA ; [.2348.0020.0002] # ETHIOPIC SYLLABLE KYI
-2DCB ; [.2349.0020.0002] # ETHIOPIC SYLLABLE KYAA
-2DCC ; [.234A.0020.0002] # ETHIOPIC SYLLABLE KYEE
-2DCD ; [.234B.0020.0002] # ETHIOPIC SYLLABLE KYE
-2DCE ; [.234C.0020.0002] # ETHIOPIC SYLLABLE KYO
-2DD0 ; [.234D.0020.0002] # ETHIOPIC SYLLABLE XYA
-2DD1 ; [.234E.0020.0002] # ETHIOPIC SYLLABLE XYU
-2DD2 ; [.234F.0020.0002] # ETHIOPIC SYLLABLE XYI
-2DD3 ; [.2350.0020.0002] # ETHIOPIC SYLLABLE XYAA
-2DD4 ; [.2351.0020.0002] # ETHIOPIC SYLLABLE XYEE
-2DD5 ; [.2352.0020.0002] # ETHIOPIC SYLLABLE XYE
-2DD6 ; [.2353.0020.0002] # ETHIOPIC SYLLABLE XYO
-2DD8 ; [.2354.0020.0002] # ETHIOPIC SYLLABLE GYA
-2DD9 ; [.2355.0020.0002] # ETHIOPIC SYLLABLE GYU
-2DDA ; [.2356.0020.0002] # ETHIOPIC SYLLABLE GYI
-2DDB ; [.2357.0020.0002] # ETHIOPIC SYLLABLE GYAA
-2DDC ; [.2358.0020.0002] # ETHIOPIC SYLLABLE GYEE
-2DDD ; [.2359.0020.0002] # ETHIOPIC SYLLABLE GYE
-2DDE ; [.235A.0020.0002] # ETHIOPIC SYLLABLE GYO
-0950 ; [.235B.0020.0002] # DEVANAGARI OM
-0972 ; [.235C.0020.0002] # DEVANAGARI LETTER CANDRA A
-0904 ; [.235D.0020.0002] # DEVANAGARI LETTER SHORT A
-0905 ; [.235E.0020.0002] # DEVANAGARI LETTER A
-0906 ; [.235F.0020.0002] # DEVANAGARI LETTER AA
-0973 ; [.2360.0020.0002] # DEVANAGARI LETTER OE
-0974 ; [.2361.0020.0002] # DEVANAGARI LETTER OOE
-0975 ; [.2362.0020.0002] # DEVANAGARI LETTER AW
-0976 ; [.2363.0020.0002] # DEVANAGARI LETTER UE
-0977 ; [.2364.0020.0002] # DEVANAGARI LETTER UUE
-0907 ; [.2365.0020.0002] # DEVANAGARI LETTER I
-0908 ; [.2366.0020.0002] # DEVANAGARI LETTER II
-0909 ; [.2367.0020.0002] # DEVANAGARI LETTER U
-090A ; [.2368.0020.0002] # DEVANAGARI LETTER UU
-090B ; [.2369.0020.0002] # DEVANAGARI LETTER VOCALIC R
-0960 ; [.236A.0020.0002] # DEVANAGARI LETTER VOCALIC RR
-090C ; [.236B.0020.0002] # DEVANAGARI LETTER VOCALIC L
-0961 ; [.236C.0020.0002] # DEVANAGARI LETTER VOCALIC LL
-090D ; [.236D.0020.0002] # DEVANAGARI LETTER CANDRA E
-090E ; [.236E.0020.0002] # DEVANAGARI LETTER SHORT E
-090F ; [.236F.0020.0002] # DEVANAGARI LETTER E
-0910 ; [.2370.0020.0002] # DEVANAGARI LETTER AI
-0911 ; [.2371.0020.0002] # DEVANAGARI LETTER CANDRA O
-0912 ; [.2372.0020.0002] # DEVANAGARI LETTER SHORT O
-0913 ; [.2373.0020.0002] # DEVANAGARI LETTER O
-0914 ; [.2374.0020.0002] # DEVANAGARI LETTER AU
-0915 ; [.2375.0020.0002] # DEVANAGARI LETTER KA
-0958 ; [.2375.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER QA
-0916 ; [.2376.0020.0002] # DEVANAGARI LETTER KHA
-0959 ; [.2376.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER KHHA
-0917 ; [.2377.0020.0002] # DEVANAGARI LETTER GA
-095A ; [.2377.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER GHHA
-097B ; [.2378.0020.0002] # DEVANAGARI LETTER GGA
-0918 ; [.2379.0020.0002] # DEVANAGARI LETTER GHA
-0919 ; [.237A.0020.0002] # DEVANAGARI LETTER NGA
-091A ; [.237B.0020.0002] # DEVANAGARI LETTER CA
-091B ; [.237C.0020.0002] # DEVANAGARI LETTER CHA
-091C ; [.237D.0020.0002] # DEVANAGARI LETTER JA
-095B ; [.237D.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER ZA
-0979 ; [.237E.0020.0002] # DEVANAGARI LETTER ZHA
-097C ; [.237F.0020.0002] # DEVANAGARI LETTER JJA
-091D ; [.2380.0020.0002] # DEVANAGARI LETTER JHA
-091E ; [.2381.0020.0002] # DEVANAGARI LETTER NYA
-091F ; [.2382.0020.0002] # DEVANAGARI LETTER TTA
-0920 ; [.2383.0020.0002] # DEVANAGARI LETTER TTHA
-0978 ; [.2384.0020.0002] # DEVANAGARI LETTER MARWARI DDA
-0921 ; [.2385.0020.0002] # DEVANAGARI LETTER DDA
-095C ; [.2385.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER DDDHA
-097E ; [.2386.0020.0002] # DEVANAGARI LETTER DDDA
-0922 ; [.2387.0020.0002] # DEVANAGARI LETTER DDHA
-095D ; [.2387.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER RHA
-0923 ; [.2388.0020.0002] # DEVANAGARI LETTER NNA
-0924 ; [.2389.0020.0002] # DEVANAGARI LETTER TA
-0925 ; [.238A.0020.0002] # DEVANAGARI LETTER THA
-0926 ; [.238B.0020.0002] # DEVANAGARI LETTER DA
-0927 ; [.238C.0020.0002] # DEVANAGARI LETTER DHA
-0928 ; [.238D.0020.0002] # DEVANAGARI LETTER NA
-0929 ; [.238D.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER NNNA
-092A ; [.238E.0020.0002] # DEVANAGARI LETTER PA
-092B ; [.238F.0020.0002] # DEVANAGARI LETTER PHA
-095E ; [.238F.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER FA
-092C ; [.2390.0020.0002] # DEVANAGARI LETTER BA
-097F ; [.2391.0020.0002] # DEVANAGARI LETTER BBA
-092D ; [.2392.0020.0002] # DEVANAGARI LETTER BHA
-092E ; [.2393.0020.0002] # DEVANAGARI LETTER MA
-092F ; [.2394.0020.0002] # DEVANAGARI LETTER YA
-095F ; [.2394.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER YYA
-097A ; [.2395.0020.0002] # DEVANAGARI LETTER HEAVY YA
-0930 ; [.2396.0020.0002] # DEVANAGARI LETTER RA
-0931 ; [.2396.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER RRA
-0932 ; [.2397.0020.0002] # DEVANAGARI LETTER LA
-0933 ; [.2398.0020.0002] # DEVANAGARI LETTER LLA
-0934 ; [.2398.0020.0002][.0000.00BC.0002] # DEVANAGARI LETTER LLLA
-0935 ; [.2399.0020.0002] # DEVANAGARI LETTER VA
-0936 ; [.239A.0020.0002] # DEVANAGARI LETTER SHA
-0937 ; [.239B.0020.0002] # DEVANAGARI LETTER SSA
-0938 ; [.239C.0020.0002] # DEVANAGARI LETTER SA
-0939 ; [.239D.0020.0002] # DEVANAGARI LETTER HA
-093D ; [.239E.0020.0002] # DEVANAGARI SIGN AVAGRAHA
-097D ; [.239F.0020.0002] # DEVANAGARI LETTER GLOTTAL STOP
-1CE9 ; [.23A0.0020.0002] # VEDIC SIGN ANUSVARA ANTARGOMUKHA
-1CEA ; [.23A0.0020.0004] # VEDIC SIGN ANUSVARA BAHIRGOMUKHA
-1CEB ; [.23A0.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA
-1CEC ; [.23A0.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CEE ; [.23A0.0020.0004] # VEDIC SIGN HEXIFORM LONG ANUSVARA
-1CEF ; [.23A0.0020.0004] # VEDIC SIGN LONG ANUSVARA
-1CF0 ; [.23A0.0020.0004] # VEDIC SIGN RTHANG LONG ANUSVARA
-1CF1 ; [.23A0.0020.0004] # VEDIC SIGN ANUSVARA UBHAYATO MUKHA
-1CF5 ; [.23A1.0020.0002] # VEDIC SIGN JIHVAMULIYA
-1CF6 ; [.23A2.0020.0002] # VEDIC SIGN UPADHMANIYA
-A8F2 ; [.23A3.0020.0002] # DEVANAGARI SIGN SPACING CANDRABINDU
-A8F3 ; [.23A3.0020.0004] # DEVANAGARI SIGN CANDRABINDU VIRAMA
-A8F4 ; [.23A3.0020.0004] # DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
-A8F5 ; [.23A3.0020.0004] # DEVANAGARI SIGN CANDRABINDU TWO
-A8F6 ; [.23A3.0020.0004] # DEVANAGARI SIGN CANDRABINDU THREE
-A8F7 ; [.23A3.0020.0004] # DEVANAGARI SIGN CANDRABINDU AVAGRAHA
-A8FB ; [.23A4.0020.0002] # DEVANAGARI HEADSTROKE
-093E ; [.23A5.0020.0002] # DEVANAGARI VOWEL SIGN AA
-093A ; [.23A6.0020.0002] # DEVANAGARI VOWEL SIGN OE
-093B ; [.23A7.0020.0002] # DEVANAGARI VOWEL SIGN OOE
-094F ; [.23A8.0020.0002] # DEVANAGARI VOWEL SIGN AW
-0956 ; [.23A9.0020.0002] # DEVANAGARI VOWEL SIGN UE
-0957 ; [.23AA.0020.0002] # DEVANAGARI VOWEL SIGN UUE
-093F ; [.23AB.0020.0002] # DEVANAGARI VOWEL SIGN I
-0940 ; [.23AC.0020.0002] # DEVANAGARI VOWEL SIGN II
-0941 ; [.23AD.0020.0002] # DEVANAGARI VOWEL SIGN U
-0942 ; [.23AE.0020.0002] # DEVANAGARI VOWEL SIGN UU
-0943 ; [.23AF.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC R
-0944 ; [.23B0.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC RR
-0962 ; [.23B1.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC L
-0963 ; [.23B2.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC LL
-0945 ; [.23B3.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA E
-0955 ; [.23B4.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA LONG E
-0946 ; [.23B5.0020.0002] # DEVANAGARI VOWEL SIGN SHORT E
-0947 ; [.23B6.0020.0002] # DEVANAGARI VOWEL SIGN E
-094E ; [.23B7.0020.0002] # DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
-0948 ; [.23B8.0020.0002] # DEVANAGARI VOWEL SIGN AI
-0949 ; [.23B9.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA O
-094A ; [.23BA.0020.0002] # DEVANAGARI VOWEL SIGN SHORT O
-094B ; [.23BB.0020.0002] # DEVANAGARI VOWEL SIGN O
-094C ; [.23BC.0020.0002] # DEVANAGARI VOWEL SIGN AU
-094D ; [.23BD.0020.0002] # DEVANAGARI SIGN VIRAMA
-0980 ; [.23BE.0020.0002] # BENGALI ANJI
-0985 ; [.23BF.0020.0002] # BENGALI LETTER A
-0986 ; [.23C0.0020.0002] # BENGALI LETTER AA
-0987 ; [.23C1.0020.0002] # BENGALI LETTER I
-0988 ; [.23C2.0020.0002] # BENGALI LETTER II
-0989 ; [.23C3.0020.0002] # BENGALI LETTER U
-098A ; [.23C4.0020.0002] # BENGALI LETTER UU
-098B ; [.23C5.0020.0002] # BENGALI LETTER VOCALIC R
-09E0 ; [.23C6.0020.0002] # BENGALI LETTER VOCALIC RR
-098C ; [.23C7.0020.0002] # BENGALI LETTER VOCALIC L
-09E1 ; [.23C8.0020.0002] # BENGALI LETTER VOCALIC LL
-098F ; [.23C9.0020.0002] # BENGALI LETTER E
-0990 ; [.23CA.0020.0002] # BENGALI LETTER AI
-0993 ; [.23CB.0020.0002] # BENGALI LETTER O
-0994 ; [.23CC.0020.0002] # BENGALI LETTER AU
-0995 ; [.23CD.0020.0002] # BENGALI LETTER KA
-0996 ; [.23CE.0020.0002] # BENGALI LETTER KHA
-0997 ; [.23CF.0020.0002] # BENGALI LETTER GA
-0998 ; [.23D0.0020.0002] # BENGALI LETTER GHA
-0999 ; [.23D1.0020.0002] # BENGALI LETTER NGA
-099A ; [.23D2.0020.0002] # BENGALI LETTER CA
-099B ; [.23D3.0020.0002] # BENGALI LETTER CHA
-099C ; [.23D4.0020.0002] # BENGALI LETTER JA
-099D ; [.23D5.0020.0002] # BENGALI LETTER JHA
-099E ; [.23D6.0020.0002] # BENGALI LETTER NYA
-099F ; [.23D7.0020.0002] # BENGALI LETTER TTA
-09A0 ; [.23D8.0020.0002] # BENGALI LETTER TTHA
-09A1 ; [.23D9.0020.0002] # BENGALI LETTER DDA
-09DC ; [.23D9.0020.0002][.0000.00BC.0002] # BENGALI LETTER RRA
-09A2 ; [.23DA.0020.0002] # BENGALI LETTER DDHA
-09DD ; [.23DA.0020.0002][.0000.00BC.0002] # BENGALI LETTER RHA
-09A3 ; [.23DB.0020.0002] # BENGALI LETTER NNA
-09A4 ; [.23DC.0020.0002] # BENGALI LETTER TA
-09CE ; [.23DC.0020.0004][.23FD.0020.0004] # BENGALI LETTER KHANDA TA
-09A5 ; [.23DD.0020.0002] # BENGALI LETTER THA
-09A6 ; [.23DE.0020.0002] # BENGALI LETTER DA
-09A7 ; [.23DF.0020.0002] # BENGALI LETTER DHA
-09A8 ; [.23E0.0020.0002] # BENGALI LETTER NA
-09AA ; [.23E1.0020.0002] # BENGALI LETTER PA
-09AB ; [.23E2.0020.0002] # BENGALI LETTER PHA
-09AC ; [.23E3.0020.0002] # BENGALI LETTER BA
-09AD ; [.23E4.0020.0002] # BENGALI LETTER BHA
-09AE ; [.23E5.0020.0002] # BENGALI LETTER MA
-09AF ; [.23E6.0020.0002] # BENGALI LETTER YA
-09DF ; [.23E6.0020.0002][.0000.00BC.0002] # BENGALI LETTER YYA
-09B0 ; [.23E7.0020.0002] # BENGALI LETTER RA
-09F0 ; [.23E8.0020.0002] # BENGALI LETTER RA WITH MIDDLE DIAGONAL
-09B2 ; [.23E9.0020.0002] # BENGALI LETTER LA
-09F1 ; [.23EA.0020.0002] # BENGALI LETTER RA WITH LOWER DIAGONAL
-09B6 ; [.23EB.0020.0002] # BENGALI LETTER SHA
-09B7 ; [.23EC.0020.0002] # BENGALI LETTER SSA
-09B8 ; [.23ED.0020.0002] # BENGALI LETTER SA
-09B9 ; [.23EE.0020.0002] # BENGALI LETTER HA
-09BD ; [.23EF.0020.0002] # BENGALI SIGN AVAGRAHA
-09BE ; [.23F0.0020.0002] # BENGALI VOWEL SIGN AA
-09BF ; [.23F1.0020.0002] # BENGALI VOWEL SIGN I
-09C0 ; [.23F2.0020.0002] # BENGALI VOWEL SIGN II
-09C1 ; [.23F3.0020.0002] # BENGALI VOWEL SIGN U
-09C2 ; [.23F4.0020.0002] # BENGALI VOWEL SIGN UU
-09C3 ; [.23F5.0020.0002] # BENGALI VOWEL SIGN VOCALIC R
-09C4 ; [.23F6.0020.0002] # BENGALI VOWEL SIGN VOCALIC RR
-09E2 ; [.23F7.0020.0002] # BENGALI VOWEL SIGN VOCALIC L
-09E3 ; [.23F8.0020.0002] # BENGALI VOWEL SIGN VOCALIC LL
-09C7 ; [.23F9.0020.0002] # BENGALI VOWEL SIGN E
-09C8 ; [.23FA.0020.0002] # BENGALI VOWEL SIGN AI
-09CB ; [.23FB.0020.0002] # BENGALI VOWEL SIGN O
-09C7 09BE ; [.23FB.0020.0002] # BENGALI VOWEL SIGN O
-09CC ; [.23FC.0020.0002] # BENGALI VOWEL SIGN AU
-09C7 09D7 ; [.23FC.0020.0002] # BENGALI VOWEL SIGN AU
-09CD ; [.23FD.0020.0002] # BENGALI SIGN VIRAMA
-09D7 ; [.23FE.0020.0002] # BENGALI AU LENGTH MARK
-0A74 ; [.23FF.0020.0002] # GURMUKHI EK ONKAR
-0A73 ; [.2400.0020.0002] # GURMUKHI URA
-0A09 ; [.2401.0020.0002] # GURMUKHI LETTER U
-0A0A ; [.2402.0020.0002] # GURMUKHI LETTER UU
-0A13 ; [.2403.0020.0002] # GURMUKHI LETTER OO
-0A05 ; [.2404.0020.0002] # GURMUKHI LETTER A
-0A06 ; [.2405.0020.0002] # GURMUKHI LETTER AA
-0A10 ; [.2406.0020.0002] # GURMUKHI LETTER AI
-0A14 ; [.2407.0020.0002] # GURMUKHI LETTER AU
-0A72 ; [.2408.0020.0002] # GURMUKHI IRI
-0A07 ; [.2409.0020.0002] # GURMUKHI LETTER I
-0A08 ; [.240A.0020.0002] # GURMUKHI LETTER II
-0A0F ; [.240B.0020.0002] # GURMUKHI LETTER EE
-0A38 ; [.240C.0020.0002] # GURMUKHI LETTER SA
-0A36 ; [.240C.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER SHA
-0A39 ; [.240D.0020.0002] # GURMUKHI LETTER HA
-0A51 ; [.240E.0020.0002] # GURMUKHI SIGN UDAAT
-0A15 ; [.240F.0020.0002] # GURMUKHI LETTER KA
-0A16 ; [.2410.0020.0002] # GURMUKHI LETTER KHA
-0A59 ; [.2410.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER KHHA
-0A17 ; [.2411.0020.0002] # GURMUKHI LETTER GA
-0A5A ; [.2411.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER GHHA
-0A18 ; [.2412.0020.0002] # GURMUKHI LETTER GHA
-0A19 ; [.2413.0020.0002] # GURMUKHI LETTER NGA
-0A1A ; [.2414.0020.0002] # GURMUKHI LETTER CA
-0A1B ; [.2415.0020.0002] # GURMUKHI LETTER CHA
-0A1C ; [.2416.0020.0002] # GURMUKHI LETTER JA
-0A5B ; [.2416.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER ZA
-0A1D ; [.2417.0020.0002] # GURMUKHI LETTER JHA
-0A1E ; [.2418.0020.0002] # GURMUKHI LETTER NYA
-0A1F ; [.2419.0020.0002] # GURMUKHI LETTER TTA
-0A20 ; [.241A.0020.0002] # GURMUKHI LETTER TTHA
-0A21 ; [.241B.0020.0002] # GURMUKHI LETTER DDA
-0A22 ; [.241C.0020.0002] # GURMUKHI LETTER DDHA
-0A23 ; [.241D.0020.0002] # GURMUKHI LETTER NNA
-0A24 ; [.241E.0020.0002] # GURMUKHI LETTER TA
-0A25 ; [.241F.0020.0002] # GURMUKHI LETTER THA
-0A26 ; [.2420.0020.0002] # GURMUKHI LETTER DA
-0A27 ; [.2421.0020.0002] # GURMUKHI LETTER DHA
-0A28 ; [.2422.0020.0002] # GURMUKHI LETTER NA
-0A2A ; [.2423.0020.0002] # GURMUKHI LETTER PA
-0A2B ; [.2424.0020.0002] # GURMUKHI LETTER PHA
-0A5E ; [.2424.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER FA
-0A2C ; [.2425.0020.0002] # GURMUKHI LETTER BA
-0A2D ; [.2426.0020.0002] # GURMUKHI LETTER BHA
-0A2E ; [.2427.0020.0002] # GURMUKHI LETTER MA
-0A2F ; [.2428.0020.0002] # GURMUKHI LETTER YA
-0A75 ; [.2429.0020.0002] # GURMUKHI SIGN YAKASH
-0A30 ; [.242A.0020.0002] # GURMUKHI LETTER RA
-0A32 ; [.242B.0020.0002] # GURMUKHI LETTER LA
-0A33 ; [.242B.0020.0002][.0000.00BC.0002] # GURMUKHI LETTER LLA
-0A35 ; [.242C.0020.0002] # GURMUKHI LETTER VA
-0A5C ; [.242D.0020.0002] # GURMUKHI LETTER RRA
-0A3E ; [.242E.0020.0002] # GURMUKHI VOWEL SIGN AA
-0A3F ; [.242F.0020.0002] # GURMUKHI VOWEL SIGN I
-0A40 ; [.2430.0020.0002] # GURMUKHI VOWEL SIGN II
-0A41 ; [.2431.0020.0002] # GURMUKHI VOWEL SIGN U
-0A42 ; [.2432.0020.0002] # GURMUKHI VOWEL SIGN UU
-0A47 ; [.2433.0020.0002] # GURMUKHI VOWEL SIGN EE
-0A48 ; [.2434.0020.0002] # GURMUKHI VOWEL SIGN AI
-0A4B ; [.2435.0020.0002] # GURMUKHI VOWEL SIGN OO
-0A4C ; [.2436.0020.0002] # GURMUKHI VOWEL SIGN AU
-0A4D ; [.2437.0020.0002] # GURMUKHI SIGN VIRAMA
-0AD0 ; [.2438.0020.0002] # GUJARATI OM
-0A85 ; [.2439.0020.0002] # GUJARATI LETTER A
-0A86 ; [.243A.0020.0002] # GUJARATI LETTER AA
-0A87 ; [.243B.0020.0002] # GUJARATI LETTER I
-0A88 ; [.243C.0020.0002] # GUJARATI LETTER II
-0A89 ; [.243D.0020.0002] # GUJARATI LETTER U
-0A8A ; [.243E.0020.0002] # GUJARATI LETTER UU
-0A8B ; [.243F.0020.0002] # GUJARATI LETTER VOCALIC R
-0AE0 ; [.2440.0020.0002] # GUJARATI LETTER VOCALIC RR
-0A8C ; [.2441.0020.0002] # GUJARATI LETTER VOCALIC L
-0AE1 ; [.2442.0020.0002] # GUJARATI LETTER VOCALIC LL
-0A8D ; [.2443.0020.0002] # GUJARATI VOWEL CANDRA E
-0A8F ; [.2444.0020.0002] # GUJARATI LETTER E
-0A90 ; [.2445.0020.0002] # GUJARATI LETTER AI
-0A91 ; [.2446.0020.0002] # GUJARATI VOWEL CANDRA O
-0A93 ; [.2447.0020.0002] # GUJARATI LETTER O
-0A94 ; [.2448.0020.0002] # GUJARATI LETTER AU
-0A95 ; [.2449.0020.0002] # GUJARATI LETTER KA
-0A96 ; [.244A.0020.0002] # GUJARATI LETTER KHA
-0A97 ; [.244B.0020.0002] # GUJARATI LETTER GA
-0A98 ; [.244C.0020.0002] # GUJARATI LETTER GHA
-0A99 ; [.244D.0020.0002] # GUJARATI LETTER NGA
-0A9A ; [.244E.0020.0002] # GUJARATI LETTER CA
-0A9B ; [.244F.0020.0002] # GUJARATI LETTER CHA
-0A9C ; [.2450.0020.0002] # GUJARATI LETTER JA
-0A9D ; [.2451.0020.0002] # GUJARATI LETTER JHA
-0A9E ; [.2452.0020.0002] # GUJARATI LETTER NYA
-0A9F ; [.2453.0020.0002] # GUJARATI LETTER TTA
-0AA0 ; [.2454.0020.0002] # GUJARATI LETTER TTHA
-0AA1 ; [.2455.0020.0002] # GUJARATI LETTER DDA
-0AA2 ; [.2456.0020.0002] # GUJARATI LETTER DDHA
-0AA3 ; [.2457.0020.0002] # GUJARATI LETTER NNA
-0AA4 ; [.2458.0020.0002] # GUJARATI LETTER TA
-0AA5 ; [.2459.0020.0002] # GUJARATI LETTER THA
-0AA6 ; [.245A.0020.0002] # GUJARATI LETTER DA
-0AA7 ; [.245B.0020.0002] # GUJARATI LETTER DHA
-0AA8 ; [.245C.0020.0002] # GUJARATI LETTER NA
-0AAA ; [.245D.0020.0002] # GUJARATI LETTER PA
-0AAB ; [.245E.0020.0002] # GUJARATI LETTER PHA
-0AAC ; [.245F.0020.0002] # GUJARATI LETTER BA
-0AAD ; [.2460.0020.0002] # GUJARATI LETTER BHA
-0AAE ; [.2461.0020.0002] # GUJARATI LETTER MA
-0AAF ; [.2462.0020.0002] # GUJARATI LETTER YA
-0AB0 ; [.2463.0020.0002] # GUJARATI LETTER RA
-0AB2 ; [.2464.0020.0002] # GUJARATI LETTER LA
-0AB5 ; [.2465.0020.0002] # GUJARATI LETTER VA
-0AB6 ; [.2466.0020.0002] # GUJARATI LETTER SHA
-0AB7 ; [.2467.0020.0002] # GUJARATI LETTER SSA
-0AB8 ; [.2468.0020.0002] # GUJARATI LETTER SA
-0AB9 ; [.2469.0020.0002] # GUJARATI LETTER HA
-0AB3 ; [.246A.0020.0002] # GUJARATI LETTER LLA
-0ABD ; [.246B.0020.0002] # GUJARATI SIGN AVAGRAHA
-0ABE ; [.246C.0020.0002] # GUJARATI VOWEL SIGN AA
-0ABF ; [.246D.0020.0002] # GUJARATI VOWEL SIGN I
-0AC0 ; [.246E.0020.0002] # GUJARATI VOWEL SIGN II
-0AC1 ; [.246F.0020.0002] # GUJARATI VOWEL SIGN U
-0AC2 ; [.2470.0020.0002] # GUJARATI VOWEL SIGN UU
-0AC3 ; [.2471.0020.0002] # GUJARATI VOWEL SIGN VOCALIC R
-0AC4 ; [.2472.0020.0002] # GUJARATI VOWEL SIGN VOCALIC RR
-0AE2 ; [.2473.0020.0002] # GUJARATI VOWEL SIGN VOCALIC L
-0AE3 ; [.2474.0020.0002] # GUJARATI VOWEL SIGN VOCALIC LL
-0AC5 ; [.2475.0020.0002] # GUJARATI VOWEL SIGN CANDRA E
-0AC7 ; [.2476.0020.0002] # GUJARATI VOWEL SIGN E
-0AC8 ; [.2477.0020.0002] # GUJARATI VOWEL SIGN AI
-0AC9 ; [.2478.0020.0002] # GUJARATI VOWEL SIGN CANDRA O
-0ACB ; [.2479.0020.0002] # GUJARATI VOWEL SIGN O
-0ACC ; [.247A.0020.0002] # GUJARATI VOWEL SIGN AU
-0ACD ; [.247B.0020.0002] # GUJARATI SIGN VIRAMA
-0B05 ; [.247C.0020.0002] # ORIYA LETTER A
-0B06 ; [.247D.0020.0002] # ORIYA LETTER AA
-0B07 ; [.247E.0020.0002] # ORIYA LETTER I
-0B08 ; [.247F.0020.0002] # ORIYA LETTER II
-0B09 ; [.2480.0020.0002] # ORIYA LETTER U
-0B0A ; [.2481.0020.0002] # ORIYA LETTER UU
-0B0B ; [.2482.0020.0002] # ORIYA LETTER VOCALIC R
-0B60 ; [.2483.0020.0002] # ORIYA LETTER VOCALIC RR
-0B0C ; [.2484.0020.0002] # ORIYA LETTER VOCALIC L
-0B61 ; [.2485.0020.0002] # ORIYA LETTER VOCALIC LL
-0B0F ; [.2486.0020.0002] # ORIYA LETTER E
-0B10 ; [.2487.0020.0002] # ORIYA LETTER AI
-0B13 ; [.2488.0020.0002] # ORIYA LETTER O
-0B14 ; [.2489.0020.0002] # ORIYA LETTER AU
-0B15 ; [.248A.0020.0002] # ORIYA LETTER KA
-0B16 ; [.248B.0020.0002] # ORIYA LETTER KHA
-0B17 ; [.248C.0020.0002] # ORIYA LETTER GA
-0B18 ; [.248D.0020.0002] # ORIYA LETTER GHA
-0B19 ; [.248E.0020.0002] # ORIYA LETTER NGA
-0B1A ; [.248F.0020.0002] # ORIYA LETTER CA
-0B1B ; [.2490.0020.0002] # ORIYA LETTER CHA
-0B1C ; [.2491.0020.0002] # ORIYA LETTER JA
-0B1D ; [.2492.0020.0002] # ORIYA LETTER JHA
-0B1E ; [.2493.0020.0002] # ORIYA LETTER NYA
-0B1F ; [.2494.0020.0002] # ORIYA LETTER TTA
-0B20 ; [.2495.0020.0002] # ORIYA LETTER TTHA
-0B21 ; [.2496.0020.0002] # ORIYA LETTER DDA
-0B5C ; [.2496.0020.0002][.0000.00BC.0002] # ORIYA LETTER RRA
-0B22 ; [.2497.0020.0002] # ORIYA LETTER DDHA
-0B5D ; [.2497.0020.0002][.0000.00BC.0002] # ORIYA LETTER RHA
-0B23 ; [.2498.0020.0002] # ORIYA LETTER NNA
-0B24 ; [.2499.0020.0002] # ORIYA LETTER TA
-0B25 ; [.249A.0020.0002] # ORIYA LETTER THA
-0B26 ; [.249B.0020.0002] # ORIYA LETTER DA
-0B27 ; [.249C.0020.0002] # ORIYA LETTER DHA
-0B28 ; [.249D.0020.0002] # ORIYA LETTER NA
-0B2A ; [.249E.0020.0002] # ORIYA LETTER PA
-0B2B ; [.249F.0020.0002] # ORIYA LETTER PHA
-0B2C ; [.24A0.0020.0002] # ORIYA LETTER BA
-0B2D ; [.24A1.0020.0002] # ORIYA LETTER BHA
-0B2E ; [.24A2.0020.0002] # ORIYA LETTER MA
-0B2F ; [.24A3.0020.0002] # ORIYA LETTER YA
-0B5F ; [.24A4.0020.0002] # ORIYA LETTER YYA
-0B30 ; [.24A5.0020.0002] # ORIYA LETTER RA
-0B32 ; [.24A6.0020.0002] # ORIYA LETTER LA
-0B33 ; [.24A7.0020.0002] # ORIYA LETTER LLA
-0B35 ; [.24A8.0020.0002] # ORIYA LETTER VA
-0B71 ; [.24A9.0020.0002] # ORIYA LETTER WA
-0B36 ; [.24AA.0020.0002] # ORIYA LETTER SHA
-0B37 ; [.24AB.0020.0002] # ORIYA LETTER SSA
-0B38 ; [.24AC.0020.0002] # ORIYA LETTER SA
-0B39 ; [.24AD.0020.0002] # ORIYA LETTER HA
-0B3D ; [.24AE.0020.0002] # ORIYA SIGN AVAGRAHA
-0B3E ; [.24AF.0020.0002] # ORIYA VOWEL SIGN AA
-0B3F ; [.24B0.0020.0002] # ORIYA VOWEL SIGN I
-0B40 ; [.24B1.0020.0002] # ORIYA VOWEL SIGN II
-0B41 ; [.24B2.0020.0002] # ORIYA VOWEL SIGN U
-0B42 ; [.24B3.0020.0002] # ORIYA VOWEL SIGN UU
-0B43 ; [.24B4.0020.0002] # ORIYA VOWEL SIGN VOCALIC R
-0B44 ; [.24B5.0020.0002] # ORIYA VOWEL SIGN VOCALIC RR
-0B62 ; [.24B6.0020.0002] # ORIYA VOWEL SIGN VOCALIC L
-0B63 ; [.24B7.0020.0002] # ORIYA VOWEL SIGN VOCALIC LL
-0B47 ; [.24B8.0020.0002] # ORIYA VOWEL SIGN E
-0B48 ; [.24B9.0020.0002] # ORIYA VOWEL SIGN AI
-0B47 0B56 ; [.24B9.0020.0002] # ORIYA VOWEL SIGN AI
-0B4B ; [.24BA.0020.0002] # ORIYA VOWEL SIGN O
-0B47 0B3E ; [.24BA.0020.0002] # ORIYA VOWEL SIGN O
-0B4C ; [.24BB.0020.0002] # ORIYA VOWEL SIGN AU
-0B47 0B57 ; [.24BB.0020.0002] # ORIYA VOWEL SIGN AU
-0B4D ; [.24BC.0020.0002] # ORIYA SIGN VIRAMA
-0B56 ; [.24BD.0020.0002] # ORIYA AI LENGTH MARK
-0B57 ; [.24BE.0020.0002] # ORIYA AU LENGTH MARK
-0BD0 ; [.24BF.0020.0002] # TAMIL OM
-0B85 ; [.24C0.0020.0002] # TAMIL LETTER A
-0B86 ; [.24C1.0020.0002] # TAMIL LETTER AA
-0B87 ; [.24C2.0020.0002] # TAMIL LETTER I
-0B88 ; [.24C3.0020.0002] # TAMIL LETTER II
-0B89 ; [.24C4.0020.0002] # TAMIL LETTER U
-0B8A ; [.24C5.0020.0002] # TAMIL LETTER UU
-0B8E ; [.24C6.0020.0002] # TAMIL LETTER E
-0B8F ; [.24C7.0020.0002] # TAMIL LETTER EE
-0B90 ; [.24C8.0020.0002] # TAMIL LETTER AI
-0B92 ; [.24C9.0020.0002] # TAMIL LETTER O
-0B93 ; [.24CA.0020.0002] # TAMIL LETTER OO
-0B94 ; [.24CB.0020.0002] # TAMIL LETTER AU
-0B92 0BD7 ; [.24CB.0020.0002] # TAMIL LETTER AU
-0B83 ; [.24CC.0020.0002] # TAMIL SIGN VISARGA
-0B95 ; [.24CD.0020.0002] # TAMIL LETTER KA
-0B99 ; [.24CE.0020.0002] # TAMIL LETTER NGA
-0B9A ; [.24CF.0020.0002] # TAMIL LETTER CA
-0B9E ; [.24D0.0020.0002] # TAMIL LETTER NYA
-0B9F ; [.24D1.0020.0002] # TAMIL LETTER TTA
-0BA3 ; [.24D2.0020.0002] # TAMIL LETTER NNA
-0BA4 ; [.24D3.0020.0002] # TAMIL LETTER TA
-0BA8 ; [.24D4.0020.0002] # TAMIL LETTER NA
-0BAA ; [.24D5.0020.0002] # TAMIL LETTER PA
-0BAE ; [.24D6.0020.0002] # TAMIL LETTER MA
-0BAF ; [.24D7.0020.0002] # TAMIL LETTER YA
-0BB0 ; [.24D8.0020.0002] # TAMIL LETTER RA
-0BB2 ; [.24D9.0020.0002] # TAMIL LETTER LA
-0BB5 ; [.24DA.0020.0002] # TAMIL LETTER VA
-0BB4 ; [.24DB.0020.0002] # TAMIL LETTER LLLA
-0BB3 ; [.24DC.0020.0002] # TAMIL LETTER LLA
-0BB1 ; [.24DD.0020.0002] # TAMIL LETTER RRA
-0BA9 ; [.24DE.0020.0002] # TAMIL LETTER NNNA
-0B9C ; [.24DF.0020.0002] # TAMIL LETTER JA
-0BB6 ; [.24E0.0020.0002] # TAMIL LETTER SHA
-0BB7 ; [.24E1.0020.0002] # TAMIL LETTER SSA
-0BB8 ; [.24E2.0020.0002] # TAMIL LETTER SA
-0BB9 ; [.24E3.0020.0002] # TAMIL LETTER HA
-0BBE ; [.24E4.0020.0002] # TAMIL VOWEL SIGN AA
-0BBF ; [.24E5.0020.0002] # TAMIL VOWEL SIGN I
-0BC0 ; [.24E6.0020.0002] # TAMIL VOWEL SIGN II
-0BC1 ; [.24E7.0020.0002] # TAMIL VOWEL SIGN U
-0BC2 ; [.24E8.0020.0002] # TAMIL VOWEL SIGN UU
-0BC6 ; [.24E9.0020.0002] # TAMIL VOWEL SIGN E
-0BC7 ; [.24EA.0020.0002] # TAMIL VOWEL SIGN EE
-0BC8 ; [.24EB.0020.0002] # TAMIL VOWEL SIGN AI
-0BCA ; [.24EC.0020.0002] # TAMIL VOWEL SIGN O
-0BC6 0BBE ; [.24EC.0020.0002] # TAMIL VOWEL SIGN O
-0BCB ; [.24ED.0020.0002] # TAMIL VOWEL SIGN OO
-0BC7 0BBE ; [.24ED.0020.0002] # TAMIL VOWEL SIGN OO
-0BCC ; [.24EE.0020.0002] # TAMIL VOWEL SIGN AU
-0BC6 0BD7 ; [.24EE.0020.0002] # TAMIL VOWEL SIGN AU
-0BCD ; [.24EF.0020.0002] # TAMIL SIGN VIRAMA
-0BD7 ; [.24F0.0020.0002] # TAMIL AU LENGTH MARK
-0C05 ; [.24F1.0020.0002] # TELUGU LETTER A
-0C06 ; [.24F2.0020.0002] # TELUGU LETTER AA
-0C07 ; [.24F3.0020.0002] # TELUGU LETTER I
-0C08 ; [.24F4.0020.0002] # TELUGU LETTER II
-0C09 ; [.24F5.0020.0002] # TELUGU LETTER U
-0C0A ; [.24F6.0020.0002] # TELUGU LETTER UU
-0C0B ; [.24F7.0020.0002] # TELUGU LETTER VOCALIC R
-0C60 ; [.24F8.0020.0002] # TELUGU LETTER VOCALIC RR
-0C0C ; [.24F9.0020.0002] # TELUGU LETTER VOCALIC L
-0C61 ; [.24FA.0020.0002] # TELUGU LETTER VOCALIC LL
-0C0E ; [.24FB.0020.0002] # TELUGU LETTER E
-0C0F ; [.24FC.0020.0002] # TELUGU LETTER EE
-0C10 ; [.24FD.0020.0002] # TELUGU LETTER AI
-0C12 ; [.24FE.0020.0002] # TELUGU LETTER O
-0C13 ; [.24FF.0020.0002] # TELUGU LETTER OO
-0C14 ; [.2500.0020.0002] # TELUGU LETTER AU
-0C15 ; [.2501.0020.0002] # TELUGU LETTER KA
-0C16 ; [.2502.0020.0002] # TELUGU LETTER KHA
-0C17 ; [.2503.0020.0002] # TELUGU LETTER GA
-0C18 ; [.2504.0020.0002] # TELUGU LETTER GHA
-0C19 ; [.2505.0020.0002] # TELUGU LETTER NGA
-0C1A ; [.2506.0020.0002] # TELUGU LETTER CA
-0C58 ; [.2507.0020.0002] # TELUGU LETTER TSA
-0C1B ; [.2508.0020.0002] # TELUGU LETTER CHA
-0C1C ; [.2509.0020.0002] # TELUGU LETTER JA
-0C59 ; [.250A.0020.0002] # TELUGU LETTER DZA
-0C1D ; [.250B.0020.0002] # TELUGU LETTER JHA
-0C1E ; [.250C.0020.0002] # TELUGU LETTER NYA
-0C1F ; [.250D.0020.0002] # TELUGU LETTER TTA
-0C20 ; [.250E.0020.0002] # TELUGU LETTER TTHA
-0C21 ; [.250F.0020.0002] # TELUGU LETTER DDA
-0C22 ; [.2510.0020.0002] # TELUGU LETTER DDHA
-0C23 ; [.2511.0020.0002] # TELUGU LETTER NNA
-0C24 ; [.2512.0020.0002] # TELUGU LETTER TA
-0C25 ; [.2513.0020.0002] # TELUGU LETTER THA
-0C26 ; [.2514.0020.0002] # TELUGU LETTER DA
-0C27 ; [.2515.0020.0002] # TELUGU LETTER DHA
-0C28 ; [.2516.0020.0002] # TELUGU LETTER NA
-0C2A ; [.2517.0020.0002] # TELUGU LETTER PA
-0C2B ; [.2518.0020.0002] # TELUGU LETTER PHA
-0C2C ; [.2519.0020.0002] # TELUGU LETTER BA
-0C2D ; [.251A.0020.0002] # TELUGU LETTER BHA
-0C2E ; [.251B.0020.0002] # TELUGU LETTER MA
-0C2F ; [.251C.0020.0002] # TELUGU LETTER YA
-0C30 ; [.251D.0020.0002] # TELUGU LETTER RA
-0C31 ; [.251E.0020.0002] # TELUGU LETTER RRA
-0C32 ; [.251F.0020.0002] # TELUGU LETTER LA
-0C35 ; [.2520.0020.0002] # TELUGU LETTER VA
-0C36 ; [.2521.0020.0002] # TELUGU LETTER SHA
-0C37 ; [.2522.0020.0002] # TELUGU LETTER SSA
-0C38 ; [.2523.0020.0002] # TELUGU LETTER SA
-0C39 ; [.2524.0020.0002] # TELUGU LETTER HA
-0C33 ; [.2525.0020.0002] # TELUGU LETTER LLA
-0C34 ; [.2526.0020.0002] # TELUGU LETTER LLLA
-0C3D ; [.2527.0020.0002] # TELUGU SIGN AVAGRAHA
-0C3E ; [.2528.0020.0002] # TELUGU VOWEL SIGN AA
-0C3F ; [.2529.0020.0002] # TELUGU VOWEL SIGN I
-0C40 ; [.252A.0020.0002] # TELUGU VOWEL SIGN II
-0C41 ; [.252B.0020.0002] # TELUGU VOWEL SIGN U
-0C42 ; [.252C.0020.0002] # TELUGU VOWEL SIGN UU
-0C43 ; [.252D.0020.0002] # TELUGU VOWEL SIGN VOCALIC R
-0C44 ; [.252E.0020.0002] # TELUGU VOWEL SIGN VOCALIC RR
-0C62 ; [.252F.0020.0002] # TELUGU VOWEL SIGN VOCALIC L
-0C63 ; [.2530.0020.0002] # TELUGU VOWEL SIGN VOCALIC LL
-0C46 ; [.2531.0020.0002] # TELUGU VOWEL SIGN E
-0C47 ; [.2532.0020.0002] # TELUGU VOWEL SIGN EE
-0C48 ; [.2533.0020.0002] # TELUGU VOWEL SIGN AI
-0C46 0C56 ; [.2533.0020.0002] # TELUGU VOWEL SIGN AI
-0C4A ; [.2534.0020.0002] # TELUGU VOWEL SIGN O
-0C4B ; [.2535.0020.0002] # TELUGU VOWEL SIGN OO
-0C4C ; [.2536.0020.0002] # TELUGU VOWEL SIGN AU
-0C4D ; [.2537.0020.0002] # TELUGU SIGN VIRAMA
-0C55 ; [.2538.0020.0002] # TELUGU LENGTH MARK
-0C56 ; [.2539.0020.0002] # TELUGU AI LENGTH MARK
-0C85 ; [.253A.0020.0002] # KANNADA LETTER A
-0C86 ; [.253B.0020.0002] # KANNADA LETTER AA
-0C87 ; [.253C.0020.0002] # KANNADA LETTER I
-0C88 ; [.253D.0020.0002] # KANNADA LETTER II
-0C89 ; [.253E.0020.0002] # KANNADA LETTER U
-0C8A ; [.253F.0020.0002] # KANNADA LETTER UU
-0C8B ; [.2540.0020.0002] # KANNADA LETTER VOCALIC R
-0CE0 ; [.2541.0020.0002] # KANNADA LETTER VOCALIC RR
-0C8C ; [.2542.0020.0002] # KANNADA LETTER VOCALIC L
-0CE1 ; [.2543.0020.0002] # KANNADA LETTER VOCALIC LL
-0C8E ; [.2544.0020.0002] # KANNADA LETTER E
-0C8F ; [.2545.0020.0002] # KANNADA LETTER EE
-0C90 ; [.2546.0020.0002] # KANNADA LETTER AI
-0C92 ; [.2547.0020.0002] # KANNADA LETTER O
-0C93 ; [.2548.0020.0002] # KANNADA LETTER OO
-0C94 ; [.2549.0020.0002] # KANNADA LETTER AU
-0C95 ; [.254A.0020.0002] # KANNADA LETTER KA
-0C96 ; [.254B.0020.0002] # KANNADA LETTER KHA
-0C97 ; [.254C.0020.0002] # KANNADA LETTER GA
-0C98 ; [.254D.0020.0002] # KANNADA LETTER GHA
-0C99 ; [.254E.0020.0002] # KANNADA LETTER NGA
-0C9A ; [.254F.0020.0002] # KANNADA LETTER CA
-0C9B ; [.2550.0020.0002] # KANNADA LETTER CHA
-0C9C ; [.2551.0020.0002] # KANNADA LETTER JA
-0C9D ; [.2552.0020.0002] # KANNADA LETTER JHA
-0C9E ; [.2553.0020.0002] # KANNADA LETTER NYA
-0C9F ; [.2554.0020.0002] # KANNADA LETTER TTA
-0CA0 ; [.2555.0020.0002] # KANNADA LETTER TTHA
-0CA1 ; [.2556.0020.0002] # KANNADA LETTER DDA
-0CA2 ; [.2557.0020.0002] # KANNADA LETTER DDHA
-0CA3 ; [.2558.0020.0002] # KANNADA LETTER NNA
-0CA4 ; [.2559.0020.0002] # KANNADA LETTER TA
-0CA5 ; [.255A.0020.0002] # KANNADA LETTER THA
-0CA6 ; [.255B.0020.0002] # KANNADA LETTER DA
-0CA7 ; [.255C.0020.0002] # KANNADA LETTER DHA
-0CA8 ; [.255D.0020.0002] # KANNADA LETTER NA
-0CAA ; [.255E.0020.0002] # KANNADA LETTER PA
-0CAB ; [.255F.0020.0002] # KANNADA LETTER PHA
-0CAC ; [.2560.0020.0002] # KANNADA LETTER BA
-0CAD ; [.2561.0020.0002] # KANNADA LETTER BHA
-0CAE ; [.2562.0020.0002] # KANNADA LETTER MA
-0CAF ; [.2563.0020.0002] # KANNADA LETTER YA
-0CB0 ; [.2564.0020.0002] # KANNADA LETTER RA
-0CB1 ; [.2565.0020.0002] # KANNADA LETTER RRA
-0CB2 ; [.2566.0020.0002] # KANNADA LETTER LA
-0CB5 ; [.2567.0020.0002] # KANNADA LETTER VA
-0CB6 ; [.2568.0020.0002] # KANNADA LETTER SHA
-0CB7 ; [.2569.0020.0002] # KANNADA LETTER SSA
-0CB8 ; [.256A.0020.0002] # KANNADA LETTER SA
-0CB9 ; [.256B.0020.0002] # KANNADA LETTER HA
-0CB3 ; [.256C.0020.0002] # KANNADA LETTER LLA
-0CDE ; [.256D.0020.0002] # KANNADA LETTER FA
-0CBD ; [.256E.0020.0002] # KANNADA SIGN AVAGRAHA
-0CF1 ; [.256F.0020.0002] # KANNADA SIGN JIHVAMULIYA
-0CF2 ; [.2570.0020.0002] # KANNADA SIGN UPADHMANIYA
-0CBE ; [.2571.0020.0002] # KANNADA VOWEL SIGN AA
-0CBF ; [.2572.0020.0002] # KANNADA VOWEL SIGN I
-0CC0 ; [.2573.0020.0002] # KANNADA VOWEL SIGN II
-0CBF 0CD5 ; [.2573.0020.0002] # KANNADA VOWEL SIGN II
-0CC1 ; [.2574.0020.0002] # KANNADA VOWEL SIGN U
-0CC2 ; [.2575.0020.0002] # KANNADA VOWEL SIGN UU
-0CC3 ; [.2576.0020.0002] # KANNADA VOWEL SIGN VOCALIC R
-0CC4 ; [.2577.0020.0002] # KANNADA VOWEL SIGN VOCALIC RR
-0CE2 ; [.2578.0020.0002] # KANNADA VOWEL SIGN VOCALIC L
-0CE3 ; [.2579.0020.0002] # KANNADA VOWEL SIGN VOCALIC LL
-0CC6 ; [.257A.0020.0002] # KANNADA VOWEL SIGN E
-0CC7 ; [.257B.0020.0002] # KANNADA VOWEL SIGN EE
-0CC6 0CD5 ; [.257B.0020.0002] # KANNADA VOWEL SIGN EE
-0CC8 ; [.257C.0020.0002] # KANNADA VOWEL SIGN AI
-0CC6 0CD6 ; [.257C.0020.0002] # KANNADA VOWEL SIGN AI
-0CCA ; [.257D.0020.0002] # KANNADA VOWEL SIGN O
-0CC6 0CC2 ; [.257D.0020.0002] # KANNADA VOWEL SIGN O
-0CCB ; [.257E.0020.0002] # KANNADA VOWEL SIGN OO
-0CC6 0CC2 0CD5 ; [.257E.0020.0002] # KANNADA VOWEL SIGN OO
-0CCA 0CD5 ; [.257E.0020.0002] # KANNADA VOWEL SIGN OO
-0CCC ; [.257F.0020.0002] # KANNADA VOWEL SIGN AU
-0CCD ; [.2580.0020.0002] # KANNADA SIGN VIRAMA
-0CD5 ; [.2581.0020.0002] # KANNADA LENGTH MARK
-0CD6 ; [.2582.0020.0002] # KANNADA AI LENGTH MARK
-0D05 ; [.2583.0020.0002] # MALAYALAM LETTER A
-0D06 ; [.2584.0020.0002] # MALAYALAM LETTER AA
-0D07 ; [.2585.0020.0002] # MALAYALAM LETTER I
-0D08 ; [.2586.0020.0002] # MALAYALAM LETTER II
-0D09 ; [.2587.0020.0002] # MALAYALAM LETTER U
-0D0A ; [.2588.0020.0002] # MALAYALAM LETTER UU
-0D0B ; [.2589.0020.0002] # MALAYALAM LETTER VOCALIC R
-0D60 ; [.258A.0020.0002] # MALAYALAM LETTER VOCALIC RR
-0D0C ; [.258B.0020.0002] # MALAYALAM LETTER VOCALIC L
-0D61 ; [.258C.0020.0002] # MALAYALAM LETTER VOCALIC LL
-0D0E ; [.258D.0020.0002] # MALAYALAM LETTER E
-0D0F ; [.258E.0020.0002] # MALAYALAM LETTER EE
-0D10 ; [.258F.0020.0002] # MALAYALAM LETTER AI
-0D12 ; [.2590.0020.0002] # MALAYALAM LETTER O
-0D13 ; [.2591.0020.0002] # MALAYALAM LETTER OO
-0D14 ; [.2592.0020.0002] # MALAYALAM LETTER AU
-0D15 ; [.2593.0020.0002] # MALAYALAM LETTER KA
-0D7F ; [.2593.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU K
-0D16 ; [.2594.0020.0002] # MALAYALAM LETTER KHA
-0D17 ; [.2595.0020.0002] # MALAYALAM LETTER GA
-0D18 ; [.2596.0020.0002] # MALAYALAM LETTER GHA
-0D19 ; [.2597.0020.0002] # MALAYALAM LETTER NGA
-0D1A ; [.2598.0020.0002] # MALAYALAM LETTER CA
-0D1B ; [.2599.0020.0002] # MALAYALAM LETTER CHA
-0D1C ; [.259A.0020.0002] # MALAYALAM LETTER JA
-0D1D ; [.259B.0020.0002] # MALAYALAM LETTER JHA
-0D1E ; [.259C.0020.0002] # MALAYALAM LETTER NYA
-0D1F ; [.259D.0020.0002] # MALAYALAM LETTER TTA
-0D20 ; [.259E.0020.0002] # MALAYALAM LETTER TTHA
-0D21 ; [.259F.0020.0002] # MALAYALAM LETTER DDA
-0D22 ; [.25A0.0020.0002] # MALAYALAM LETTER DDHA
-0D23 ; [.25A1.0020.0002] # MALAYALAM LETTER NNA
-0D7A ; [.25A1.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU NN
-0D24 ; [.25A2.0020.0002] # MALAYALAM LETTER TA
-0D25 ; [.25A3.0020.0002] # MALAYALAM LETTER THA
-0D26 ; [.25A4.0020.0002] # MALAYALAM LETTER DA
-0D27 ; [.25A5.0020.0002] # MALAYALAM LETTER DHA
-0D28 ; [.25A6.0020.0002] # MALAYALAM LETTER NA
-0D7B ; [.25A6.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU N
-0D29 ; [.25A7.0020.0002] # MALAYALAM LETTER NNNA
-0D2A ; [.25A8.0020.0002] # MALAYALAM LETTER PA
-0D2B ; [.25A9.0020.0002] # MALAYALAM LETTER PHA
-0D2C ; [.25AA.0020.0002] # MALAYALAM LETTER BA
-0D2D ; [.25AB.0020.0002] # MALAYALAM LETTER BHA
-0D2E ; [.25AC.0020.0002] # MALAYALAM LETTER MA
-0D2F ; [.25AD.0020.0002] # MALAYALAM LETTER YA
-0D30 ; [.25AE.0020.0002] # MALAYALAM LETTER RA
-0D4E ; [.25AE.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER DOT REPH
-0D7C ; [.25AE.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU RR
-0D32 ; [.25AF.0020.0002] # MALAYALAM LETTER LA
-0D7D ; [.25AF.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU L
-0D35 ; [.25B0.0020.0002] # MALAYALAM LETTER VA
-0D36 ; [.25B1.0020.0002] # MALAYALAM LETTER SHA
-0D37 ; [.25B2.0020.0002] # MALAYALAM LETTER SSA
-0D38 ; [.25B3.0020.0002] # MALAYALAM LETTER SA
-0D39 ; [.25B4.0020.0002] # MALAYALAM LETTER HA
-0D33 ; [.25B5.0020.0002] # MALAYALAM LETTER LLA
-0D7E ; [.25B5.0020.0004][.25CA.0020.0004] # MALAYALAM LETTER CHILLU LL
-0D34 ; [.25B6.0020.0002] # MALAYALAM LETTER LLLA
-0D31 ; [.25B7.0020.0002] # MALAYALAM LETTER RRA
-0D3A ; [.25B8.0020.0002] # MALAYALAM LETTER TTTA
-0D3D ; [.25B9.0020.0002] # MALAYALAM SIGN AVAGRAHA
-0D3E ; [.25BA.0020.0002] # MALAYALAM VOWEL SIGN AA
-0D3F ; [.25BB.0020.0002] # MALAYALAM VOWEL SIGN I
-0D40 ; [.25BC.0020.0002] # MALAYALAM VOWEL SIGN II
-0D41 ; [.25BD.0020.0002] # MALAYALAM VOWEL SIGN U
-0D42 ; [.25BE.0020.0002] # MALAYALAM VOWEL SIGN UU
-0D43 ; [.25BF.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC R
-0D44 ; [.25C0.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC RR
-0D62 ; [.25C1.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC L
-0D63 ; [.25C2.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC LL
-0D46 ; [.25C3.0020.0002] # MALAYALAM VOWEL SIGN E
-0D47 ; [.25C4.0020.0002] # MALAYALAM VOWEL SIGN EE
-0D48 ; [.25C5.0020.0002] # MALAYALAM VOWEL SIGN AI
-0D4A ; [.25C6.0020.0002] # MALAYALAM VOWEL SIGN O
-0D46 0D3E ; [.25C6.0020.0002] # MALAYALAM VOWEL SIGN O
-0D4B ; [.25C7.0020.0002] # MALAYALAM VOWEL SIGN OO
-0D47 0D3E ; [.25C7.0020.0002] # MALAYALAM VOWEL SIGN OO
-0D4C ; [.25C8.0020.0002] # MALAYALAM VOWEL SIGN AU
-0D46 0D57 ; [.25C8.0020.0002] # MALAYALAM VOWEL SIGN AU
-0D57 ; [.25C9.0020.0002] # MALAYALAM AU LENGTH MARK
-0D4D ; [.25CA.0020.0002] # MALAYALAM SIGN VIRAMA
-0D85 ; [.25CB.0020.0002] # SINHALA LETTER AYANNA
-0D86 ; [.25CC.0020.0002] # SINHALA LETTER AAYANNA
-0D87 ; [.25CD.0020.0002] # SINHALA LETTER AEYANNA
-0D88 ; [.25CE.0020.0002] # SINHALA LETTER AEEYANNA
-0D89 ; [.25CF.0020.0002] # SINHALA LETTER IYANNA
-0D8A ; [.25D0.0020.0002] # SINHALA LETTER IIYANNA
-0D8B ; [.25D1.0020.0002] # SINHALA LETTER UYANNA
-0D8C ; [.25D2.0020.0002] # SINHALA LETTER UUYANNA
-0D8D ; [.25D3.0020.0002] # SINHALA LETTER IRUYANNA
-0D8E ; [.25D4.0020.0002] # SINHALA LETTER IRUUYANNA
-0D8F ; [.25D5.0020.0002] # SINHALA LETTER ILUYANNA
-0D90 ; [.25D6.0020.0002] # SINHALA LETTER ILUUYANNA
-0D91 ; [.25D7.0020.0002] # SINHALA LETTER EYANNA
-0D92 ; [.25D8.0020.0002] # SINHALA LETTER EEYANNA
-0D93 ; [.25D9.0020.0002] # SINHALA LETTER AIYANNA
-0D94 ; [.25DA.0020.0002] # SINHALA LETTER OYANNA
-0D95 ; [.25DB.0020.0002] # SINHALA LETTER OOYANNA
-0D96 ; [.25DC.0020.0002] # SINHALA LETTER AUYANNA
-0D9A ; [.25DD.0020.0002] # SINHALA LETTER ALPAPRAANA KAYANNA
-0D9B ; [.25DE.0020.0002] # SINHALA LETTER MAHAAPRAANA KAYANNA
-0D9C ; [.25DF.0020.0002] # SINHALA LETTER ALPAPRAANA GAYANNA
-0D9D ; [.25E0.0020.0002] # SINHALA LETTER MAHAAPRAANA GAYANNA
-0D9E ; [.25E1.0020.0002] # SINHALA LETTER KANTAJA NAASIKYAYA
-0D9F ; [.25E2.0020.0002] # SINHALA LETTER SANYAKA GAYANNA
-0DA0 ; [.25E3.0020.0002] # SINHALA LETTER ALPAPRAANA CAYANNA
-0DA1 ; [.25E4.0020.0002] # SINHALA LETTER MAHAAPRAANA CAYANNA
-0DA2 ; [.25E5.0020.0002] # SINHALA LETTER ALPAPRAANA JAYANNA
-0DA3 ; [.25E6.0020.0002] # SINHALA LETTER MAHAAPRAANA JAYANNA
-0DA4 ; [.25E7.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
-0DA5 ; [.25E8.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
-0DA6 ; [.25E9.0020.0002] # SINHALA LETTER SANYAKA JAYANNA
-0DA7 ; [.25EA.0020.0002] # SINHALA LETTER ALPAPRAANA TTAYANNA
-0DA8 ; [.25EB.0020.0002] # SINHALA LETTER MAHAAPRAANA TTAYANNA
-0DA9 ; [.25EC.0020.0002] # SINHALA LETTER ALPAPRAANA DDAYANNA
-0DAA ; [.25ED.0020.0002] # SINHALA LETTER MAHAAPRAANA DDAYANNA
-0DAB ; [.25EE.0020.0002] # SINHALA LETTER MUURDHAJA NAYANNA
-0DAC ; [.25EF.0020.0002] # SINHALA LETTER SANYAKA DDAYANNA
-0DAD ; [.25F0.0020.0002] # SINHALA LETTER ALPAPRAANA TAYANNA
-0DAE ; [.25F1.0020.0002] # SINHALA LETTER MAHAAPRAANA TAYANNA
-0DAF ; [.25F2.0020.0002] # SINHALA LETTER ALPAPRAANA DAYANNA
-0DB0 ; [.25F3.0020.0002] # SINHALA LETTER MAHAAPRAANA DAYANNA
-0DB1 ; [.25F4.0020.0002] # SINHALA LETTER DANTAJA NAYANNA
-0DB3 ; [.25F5.0020.0002] # SINHALA LETTER SANYAKA DAYANNA
-0DB4 ; [.25F6.0020.0002] # SINHALA LETTER ALPAPRAANA PAYANNA
-0DB5 ; [.25F7.0020.0002] # SINHALA LETTER MAHAAPRAANA PAYANNA
-0DB6 ; [.25F8.0020.0002] # SINHALA LETTER ALPAPRAANA BAYANNA
-0DB7 ; [.25F9.0020.0002] # SINHALA LETTER MAHAAPRAANA BAYANNA
-0DB8 ; [.25FA.0020.0002] # SINHALA LETTER MAYANNA
-0DB9 ; [.25FB.0020.0002] # SINHALA LETTER AMBA BAYANNA
-0DBA ; [.25FC.0020.0002] # SINHALA LETTER YAYANNA
-0DBB ; [.25FD.0020.0002] # SINHALA LETTER RAYANNA
-0DBD ; [.25FE.0020.0002] # SINHALA LETTER DANTAJA LAYANNA
-0DC0 ; [.25FF.0020.0002] # SINHALA LETTER VAYANNA
-0DC1 ; [.2600.0020.0002] # SINHALA LETTER TAALUJA SAYANNA
-0DC2 ; [.2601.0020.0002] # SINHALA LETTER MUURDHAJA SAYANNA
-0DC3 ; [.2602.0020.0002] # SINHALA LETTER DANTAJA SAYANNA
-0DC4 ; [.2603.0020.0002] # SINHALA LETTER HAYANNA
-0DC5 ; [.2604.0020.0002] # SINHALA LETTER MUURDHAJA LAYANNA
-0DC6 ; [.2605.0020.0002] # SINHALA LETTER FAYANNA
-0DCF ; [.2606.0020.0002] # SINHALA VOWEL SIGN AELA-PILLA
-0DD0 ; [.2607.0020.0002] # SINHALA VOWEL SIGN KETTI AEDA-PILLA
-0DD1 ; [.2608.0020.0002] # SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2 ; [.2609.0020.0002] # SINHALA VOWEL SIGN KETTI IS-PILLA
-0DD3 ; [.260A.0020.0002] # SINHALA VOWEL SIGN DIGA IS-PILLA
-0DD4 ; [.260B.0020.0002] # SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6 ; [.260C.0020.0002] # SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8 ; [.260D.0020.0002] # SINHALA VOWEL SIGN GAETTA-PILLA
-0DF2 ; [.260E.0020.0002] # SINHALA VOWEL SIGN DIGA GAETTA-PILLA
-0DDF ; [.260F.0020.0002] # SINHALA VOWEL SIGN GAYANUKITTA
-0DF3 ; [.2610.0020.0002] # SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DD9 ; [.2611.0020.0002] # SINHALA VOWEL SIGN KOMBUVA
-0DDA ; [.2612.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DD9 0DCA ; [.2612.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
-0DDB ; [.2613.0020.0002] # SINHALA VOWEL SIGN KOMBU DEKA
-0DDC ; [.2614.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DD9 0DCF ; [.2614.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
-0DDD ; [.2615.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DD9 0DCF 0DCA ; [.2615.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDC 0DCA ; [.2615.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
-0DDE ; [.2616.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DD9 0DDF ; [.2616.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
-0DCA ; [.2617.0020.0002] # SINHALA SIGN AL-LAKUNA
-AAF2 ; [.2618.0020.0002] # MEETEI MAYEK ANJI
-ABC0 ; [.2619.0020.0002] # MEETEI MAYEK LETTER KOK
-ABC1 ; [.261A.0020.0002] # MEETEI MAYEK LETTER SAM
-ABC2 ; [.261B.0020.0002] # MEETEI MAYEK LETTER LAI
-ABC3 ; [.261C.0020.0002] # MEETEI MAYEK LETTER MIT
-ABC4 ; [.261D.0020.0002] # MEETEI MAYEK LETTER PA
-ABC5 ; [.261E.0020.0002] # MEETEI MAYEK LETTER NA
-ABC6 ; [.261F.0020.0002] # MEETEI MAYEK LETTER CHIL
-ABC7 ; [.2620.0020.0002] # MEETEI MAYEK LETTER TIL
-ABC8 ; [.2621.0020.0002] # MEETEI MAYEK LETTER KHOU
-ABC9 ; [.2622.0020.0002] # MEETEI MAYEK LETTER NGOU
-ABCA ; [.2623.0020.0002] # MEETEI MAYEK LETTER THOU
-ABCB ; [.2624.0020.0002] # MEETEI MAYEK LETTER WAI
-ABCC ; [.2625.0020.0002] # MEETEI MAYEK LETTER YANG
-ABCD ; [.2626.0020.0002] # MEETEI MAYEK LETTER HUK
-ABCE ; [.2627.0020.0002] # MEETEI MAYEK LETTER UN
-ABCF ; [.2628.0020.0002] # MEETEI MAYEK LETTER I
-ABD0 ; [.2629.0020.0002] # MEETEI MAYEK LETTER PHAM
-ABD1 ; [.262A.0020.0002] # MEETEI MAYEK LETTER ATIYA
-ABD2 ; [.262B.0020.0002] # MEETEI MAYEK LETTER GOK
-ABD3 ; [.262C.0020.0002] # MEETEI MAYEK LETTER JHAM
-ABD4 ; [.262D.0020.0002] # MEETEI MAYEK LETTER RAI
-ABD5 ; [.262E.0020.0002] # MEETEI MAYEK LETTER BA
-ABD6 ; [.262F.0020.0002] # MEETEI MAYEK LETTER JIL
-ABD7 ; [.2630.0020.0002] # MEETEI MAYEK LETTER DIL
-ABD8 ; [.2631.0020.0002] # MEETEI MAYEK LETTER GHOU
-ABD9 ; [.2632.0020.0002] # MEETEI MAYEK LETTER DHOU
-ABDA ; [.2633.0020.0002] # MEETEI MAYEK LETTER BHAM
-AAE0 ; [.2634.0020.0002] # MEETEI MAYEK LETTER E
-AAE1 ; [.2635.0020.0002] # MEETEI MAYEK LETTER O
-AAE2 ; [.2636.0020.0002] # MEETEI MAYEK LETTER CHA
-AAE3 ; [.2637.0020.0002] # MEETEI MAYEK LETTER NYA
-AAE4 ; [.2638.0020.0002] # MEETEI MAYEK LETTER TTA
-AAE5 ; [.2639.0020.0002] # MEETEI MAYEK LETTER TTHA
-AAE6 ; [.263A.0020.0002] # MEETEI MAYEK LETTER DDA
-AAE7 ; [.263B.0020.0002] # MEETEI MAYEK LETTER DDHA
-AAE8 ; [.263C.0020.0002] # MEETEI MAYEK LETTER NNA
-AAE9 ; [.263D.0020.0002] # MEETEI MAYEK LETTER SHA
-AAEA ; [.263E.0020.0002] # MEETEI MAYEK LETTER SSA
-ABE3 ; [.263F.0020.0002] # MEETEI MAYEK VOWEL SIGN ONAP
-ABE4 ; [.2640.0020.0002] # MEETEI MAYEK VOWEL SIGN INAP
-ABE5 ; [.2641.0020.0002] # MEETEI MAYEK VOWEL SIGN ANAP
-ABE6 ; [.2642.0020.0002] # MEETEI MAYEK VOWEL SIGN YENAP
-ABE7 ; [.2643.0020.0002] # MEETEI MAYEK VOWEL SIGN SOUNAP
-ABE8 ; [.2644.0020.0002] # MEETEI MAYEK VOWEL SIGN UNAP
-ABE9 ; [.2645.0020.0002] # MEETEI MAYEK VOWEL SIGN CHEINAP
-ABEA ; [.2646.0020.0002] # MEETEI MAYEK VOWEL SIGN NUNG
-AAEB ; [.2647.0020.0002] # MEETEI MAYEK VOWEL SIGN II
-AAEC ; [.2648.0020.0002] # MEETEI MAYEK VOWEL SIGN UU
-AAED ; [.2649.0020.0002] # MEETEI MAYEK VOWEL SIGN AAI
-AAEE ; [.264A.0020.0002] # MEETEI MAYEK VOWEL SIGN AU
-AAEF ; [.264B.0020.0002] # MEETEI MAYEK VOWEL SIGN AAU
-AAF5 ; [.264C.0020.0002] # MEETEI MAYEK VOWEL SIGN VISARGA
-ABDB ; [.264D.0020.0002] # MEETEI MAYEK LETTER KOK LONSUM
-ABDC ; [.264E.0020.0002] # MEETEI MAYEK LETTER LAI LONSUM
-ABDD ; [.264F.0020.0002] # MEETEI MAYEK LETTER MIT LONSUM
-ABDE ; [.2650.0020.0002] # MEETEI MAYEK LETTER PA LONSUM
-ABDF ; [.2651.0020.0002] # MEETEI MAYEK LETTER NA LONSUM
-ABE0 ; [.2652.0020.0002] # MEETEI MAYEK LETTER TIL LONSUM
-ABE1 ; [.2653.0020.0002] # MEETEI MAYEK LETTER NGOU LONSUM
-ABE2 ; [.2654.0020.0002] # MEETEI MAYEK LETTER I LONSUM
-ABED ; [.2655.0020.0002] # MEETEI MAYEK APUN IYEK
-AAF6 ; [.2656.0020.0002] # MEETEI MAYEK VIRAMA
-A800 ; [.2657.0020.0002] # SYLOTI NAGRI LETTER A
-A801 ; [.2658.0020.0002] # SYLOTI NAGRI LETTER I
-A802 ; [.2659.0020.0002] # SYLOTI NAGRI SIGN DVISVARA
-A803 ; [.265A.0020.0002] # SYLOTI NAGRI LETTER U
-A804 ; [.265B.0020.0002] # SYLOTI NAGRI LETTER E
-A805 ; [.265C.0020.0002] # SYLOTI NAGRI LETTER O
-A806 ; [.265D.0020.0002] # SYLOTI NAGRI SIGN HASANTA
-A807 ; [.265E.0020.0002] # SYLOTI NAGRI LETTER KO
-A808 ; [.265F.0020.0002] # SYLOTI NAGRI LETTER KHO
-A809 ; [.2660.0020.0002] # SYLOTI NAGRI LETTER GO
-A80A ; [.2661.0020.0002] # SYLOTI NAGRI LETTER GHO
-A80C ; [.2662.0020.0002] # SYLOTI NAGRI LETTER CO
-A80D ; [.2663.0020.0002] # SYLOTI NAGRI LETTER CHO
-A80E ; [.2664.0020.0002] # SYLOTI NAGRI LETTER JO
-A80F ; [.2665.0020.0002] # SYLOTI NAGRI LETTER JHO
-A810 ; [.2666.0020.0002] # SYLOTI NAGRI LETTER TTO
-A811 ; [.2667.0020.0002] # SYLOTI NAGRI LETTER TTHO
-A812 ; [.2668.0020.0002] # SYLOTI NAGRI LETTER DDO
-A813 ; [.2669.0020.0002] # SYLOTI NAGRI LETTER DDHO
-A814 ; [.266A.0020.0002] # SYLOTI NAGRI LETTER TO
-A815 ; [.266B.0020.0002] # SYLOTI NAGRI LETTER THO
-A816 ; [.266C.0020.0002] # SYLOTI NAGRI LETTER DO
-A817 ; [.266D.0020.0002] # SYLOTI NAGRI LETTER DHO
-A818 ; [.266E.0020.0002] # SYLOTI NAGRI LETTER NO
-A819 ; [.266F.0020.0002] # SYLOTI NAGRI LETTER PO
-A81A ; [.2670.0020.0002] # SYLOTI NAGRI LETTER PHO
-A81B ; [.2671.0020.0002] # SYLOTI NAGRI LETTER BO
-A81C ; [.2672.0020.0002] # SYLOTI NAGRI LETTER BHO
-A81D ; [.2673.0020.0002] # SYLOTI NAGRI LETTER MO
-A81E ; [.2674.0020.0002] # SYLOTI NAGRI LETTER RO
-A81F ; [.2675.0020.0002] # SYLOTI NAGRI LETTER LO
-A820 ; [.2676.0020.0002] # SYLOTI NAGRI LETTER RRO
-A821 ; [.2677.0020.0002] # SYLOTI NAGRI LETTER SO
-A822 ; [.2678.0020.0002] # SYLOTI NAGRI LETTER HO
-A823 ; [.2679.0020.0002] # SYLOTI NAGRI VOWEL SIGN A
-A824 ; [.267A.0020.0002] # SYLOTI NAGRI VOWEL SIGN I
-A825 ; [.267B.0020.0002] # SYLOTI NAGRI VOWEL SIGN U
-A826 ; [.267C.0020.0002] # SYLOTI NAGRI VOWEL SIGN E
-A827 ; [.267D.0020.0002] # SYLOTI NAGRI VOWEL SIGN OO
-A882 ; [.267E.0020.0002] # SAURASHTRA LETTER A
-A883 ; [.267F.0020.0002] # SAURASHTRA LETTER AA
-A884 ; [.2680.0020.0002] # SAURASHTRA LETTER I
-A885 ; [.2681.0020.0002] # SAURASHTRA LETTER II
-A886 ; [.2682.0020.0002] # SAURASHTRA LETTER U
-A887 ; [.2683.0020.0002] # SAURASHTRA LETTER UU
-A888 ; [.2684.0020.0002] # SAURASHTRA LETTER VOCALIC R
-A889 ; [.2685.0020.0002] # SAURASHTRA LETTER VOCALIC RR
-A88A ; [.2686.0020.0002] # SAURASHTRA LETTER VOCALIC L
-A88B ; [.2687.0020.0002] # SAURASHTRA LETTER VOCALIC LL
-A88C ; [.2688.0020.0002] # SAURASHTRA LETTER E
-A88D ; [.2689.0020.0002] # SAURASHTRA LETTER EE
-A88E ; [.268A.0020.0002] # SAURASHTRA LETTER AI
-A88F ; [.268B.0020.0002] # SAURASHTRA LETTER O
-A890 ; [.268C.0020.0002] # SAURASHTRA LETTER OO
-A891 ; [.268D.0020.0002] # SAURASHTRA LETTER AU
-A892 ; [.268E.0020.0002] # SAURASHTRA LETTER KA
-A893 ; [.268F.0020.0002] # SAURASHTRA LETTER KHA
-A894 ; [.2690.0020.0002] # SAURASHTRA LETTER GA
-A895 ; [.2691.0020.0002] # SAURASHTRA LETTER GHA
-A896 ; [.2692.0020.0002] # SAURASHTRA LETTER NGA
-A897 ; [.2693.0020.0002] # SAURASHTRA LETTER CA
-A898 ; [.2694.0020.0002] # SAURASHTRA LETTER CHA
-A899 ; [.2695.0020.0002] # SAURASHTRA LETTER JA
-A89A ; [.2696.0020.0002] # SAURASHTRA LETTER JHA
-A89B ; [.2697.0020.0002] # SAURASHTRA LETTER NYA
-A89C ; [.2698.0020.0002] # SAURASHTRA LETTER TTA
-A89D ; [.2699.0020.0002] # SAURASHTRA LETTER TTHA
-A89E ; [.269A.0020.0002] # SAURASHTRA LETTER DDA
-A89F ; [.269B.0020.0002] # SAURASHTRA LETTER DDHA
-A8A0 ; [.269C.0020.0002] # SAURASHTRA LETTER NNA
-A8A1 ; [.269D.0020.0002] # SAURASHTRA LETTER TA
-A8A2 ; [.269E.0020.0002] # SAURASHTRA LETTER THA
-A8A3 ; [.269F.0020.0002] # SAURASHTRA LETTER DA
-A8A4 ; [.26A0.0020.0002] # SAURASHTRA LETTER DHA
-A8A5 ; [.26A1.0020.0002] # SAURASHTRA LETTER NA
-A8A6 ; [.26A2.0020.0002] # SAURASHTRA LETTER PA
-A8A7 ; [.26A3.0020.0002] # SAURASHTRA LETTER PHA
-A8A8 ; [.26A4.0020.0002] # SAURASHTRA LETTER BA
-A8A9 ; [.26A5.0020.0002] # SAURASHTRA LETTER BHA
-A8AA ; [.26A6.0020.0002] # SAURASHTRA LETTER MA
-A8AB ; [.26A7.0020.0002] # SAURASHTRA LETTER YA
-A8AC ; [.26A8.0020.0002] # SAURASHTRA LETTER RA
-A8AD ; [.26A9.0020.0002] # SAURASHTRA LETTER LA
-A8AE ; [.26AA.0020.0002] # SAURASHTRA LETTER VA
-A8AF ; [.26AB.0020.0002] # SAURASHTRA LETTER SHA
-A8B0 ; [.26AC.0020.0002] # SAURASHTRA LETTER SSA
-A8B1 ; [.26AD.0020.0002] # SAURASHTRA LETTER SA
-A8B2 ; [.26AE.0020.0002] # SAURASHTRA LETTER HA
-A8B3 ; [.26AF.0020.0002] # SAURASHTRA LETTER LLA
-A8B4 ; [.26B0.0020.0002] # SAURASHTRA CONSONANT SIGN HAARU
-A8B5 ; [.26B1.0020.0002] # SAURASHTRA VOWEL SIGN AA
-A8B6 ; [.26B2.0020.0002] # SAURASHTRA VOWEL SIGN I
-A8B7 ; [.26B3.0020.0002] # SAURASHTRA VOWEL SIGN II
-A8B8 ; [.26B4.0020.0002] # SAURASHTRA VOWEL SIGN U
-A8B9 ; [.26B5.0020.0002] # SAURASHTRA VOWEL SIGN UU
-A8BA ; [.26B6.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC R
-A8BB ; [.26B7.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC RR
-A8BC ; [.26B8.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC L
-A8BD ; [.26B9.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC LL
-A8BE ; [.26BA.0020.0002] # SAURASHTRA VOWEL SIGN E
-A8BF ; [.26BB.0020.0002] # SAURASHTRA VOWEL SIGN EE
-A8C0 ; [.26BC.0020.0002] # SAURASHTRA VOWEL SIGN AI
-A8C1 ; [.26BD.0020.0002] # SAURASHTRA VOWEL SIGN O
-A8C2 ; [.26BE.0020.0002] # SAURASHTRA VOWEL SIGN OO
-A8C3 ; [.26BF.0020.0002] # SAURASHTRA VOWEL SIGN AU
-A8C4 ; [.26C0.0020.0002] # SAURASHTRA SIGN VIRAMA
-11083 ; [.26C1.0020.0002] # KAITHI LETTER A
-11084 ; [.26C2.0020.0002] # KAITHI LETTER AA
-11085 ; [.26C3.0020.0002] # KAITHI LETTER I
-11086 ; [.26C4.0020.0002] # KAITHI LETTER II
-11087 ; [.26C5.0020.0002] # KAITHI LETTER U
-11088 ; [.26C6.0020.0002] # KAITHI LETTER UU
-11089 ; [.26C7.0020.0002] # KAITHI LETTER E
-1108A ; [.26C8.0020.0002] # KAITHI LETTER AI
-1108B ; [.26C9.0020.0002] # KAITHI LETTER O
-1108C ; [.26CA.0020.0002] # KAITHI LETTER AU
-1108D ; [.26CB.0020.0002] # KAITHI LETTER KA
-1108E ; [.26CC.0020.0002] # KAITHI LETTER KHA
-1108F ; [.26CD.0020.0002] # KAITHI LETTER GA
-11090 ; [.26CE.0020.0002] # KAITHI LETTER GHA
-11091 ; [.26CF.0020.0002] # KAITHI LETTER NGA
-11092 ; [.26D0.0020.0002] # KAITHI LETTER CA
-11093 ; [.26D1.0020.0002] # KAITHI LETTER CHA
-11094 ; [.26D2.0020.0002] # KAITHI LETTER JA
-11095 ; [.26D3.0020.0002] # KAITHI LETTER JHA
-11096 ; [.26D4.0020.0002] # KAITHI LETTER NYA
-11097 ; [.26D5.0020.0002] # KAITHI LETTER TTA
-11098 ; [.26D6.0020.0002] # KAITHI LETTER TTHA
-11099 ; [.26D7.0020.0002] # KAITHI LETTER DDA
-1109A ; [.26D7.0020.0002][.0000.00BC.0002] # KAITHI LETTER DDDHA
-1109B ; [.26D8.0020.0002] # KAITHI LETTER DDHA
-1109C ; [.26D8.0020.0002][.0000.00BC.0002] # KAITHI LETTER RHA
-1109D ; [.26D9.0020.0002] # KAITHI LETTER NNA
-1109E ; [.26DA.0020.0002] # KAITHI LETTER TA
-1109F ; [.26DB.0020.0002] # KAITHI LETTER THA
-110A0 ; [.26DC.0020.0002] # KAITHI LETTER DA
-110A1 ; [.26DD.0020.0002] # KAITHI LETTER DHA
-110A2 ; [.26DE.0020.0002] # KAITHI LETTER NA
-110A3 ; [.26DF.0020.0002] # KAITHI LETTER PA
-110A4 ; [.26E0.0020.0002] # KAITHI LETTER PHA
-110A5 ; [.26E1.0020.0002] # KAITHI LETTER BA
-110AB ; [.26E1.0020.0002][.0000.00BC.0002] # KAITHI LETTER VA
-110A6 ; [.26E2.0020.0002] # KAITHI LETTER BHA
-110A7 ; [.26E3.0020.0002] # KAITHI LETTER MA
-110A8 ; [.26E4.0020.0002] # KAITHI LETTER YA
-110A9 ; [.26E5.0020.0002] # KAITHI LETTER RA
-110AA ; [.26E6.0020.0002] # KAITHI LETTER LA
-110AC ; [.26E7.0020.0002] # KAITHI LETTER SHA
-110AD ; [.26E8.0020.0002] # KAITHI LETTER SSA
-110AE ; [.26E9.0020.0002] # KAITHI LETTER SA
-110AF ; [.26EA.0020.0002] # KAITHI LETTER HA
-110B0 ; [.26EB.0020.0002] # KAITHI VOWEL SIGN AA
-110B1 ; [.26EC.0020.0002] # KAITHI VOWEL SIGN I
-110B2 ; [.26ED.0020.0002] # KAITHI VOWEL SIGN II
-110B3 ; [.26EE.0020.0002] # KAITHI VOWEL SIGN U
-110B4 ; [.26EF.0020.0002] # KAITHI VOWEL SIGN UU
-110B5 ; [.26F0.0020.0002] # KAITHI VOWEL SIGN E
-110B6 ; [.26F1.0020.0002] # KAITHI VOWEL SIGN AI
-110B7 ; [.26F2.0020.0002] # KAITHI VOWEL SIGN O
-110B8 ; [.26F3.0020.0002] # KAITHI VOWEL SIGN AU
-110B9 ; [.26F4.0020.0002] # KAITHI SIGN VIRAMA
-11150 ; [.26F5.0020.0002] # MAHAJANI LETTER A
-11151 ; [.26F6.0020.0002] # MAHAJANI LETTER I
-11152 ; [.26F7.0020.0002] # MAHAJANI LETTER U
-11153 ; [.26F8.0020.0002] # MAHAJANI LETTER E
-11154 ; [.26F9.0020.0002] # MAHAJANI LETTER O
-11155 ; [.26FA.0020.0002] # MAHAJANI LETTER KA
-11156 ; [.26FB.0020.0002] # MAHAJANI LETTER KHA
-11157 ; [.26FC.0020.0002] # MAHAJANI LETTER GA
-11158 ; [.26FD.0020.0002] # MAHAJANI LETTER GHA
-11159 ; [.26FE.0020.0002] # MAHAJANI LETTER CA
-1115A ; [.26FF.0020.0002] # MAHAJANI LETTER CHA
-1115B ; [.2700.0020.0002] # MAHAJANI LETTER JA
-1115C ; [.2701.0020.0002] # MAHAJANI LETTER JHA
-1115D ; [.2702.0020.0002] # MAHAJANI LETTER NYA
-1115E ; [.2703.0020.0002] # MAHAJANI LETTER TTA
-1115F ; [.2704.0020.0002] # MAHAJANI LETTER TTHA
-11160 ; [.2705.0020.0002] # MAHAJANI LETTER DDA
-11161 ; [.2706.0020.0002] # MAHAJANI LETTER DDHA
-11162 ; [.2707.0020.0002] # MAHAJANI LETTER NNA
-11163 ; [.2708.0020.0002] # MAHAJANI LETTER TA
-11164 ; [.2709.0020.0002] # MAHAJANI LETTER THA
-11165 ; [.270A.0020.0002] # MAHAJANI LETTER DA
-11166 ; [.270B.0020.0002] # MAHAJANI LETTER DHA
-11167 ; [.270C.0020.0002] # MAHAJANI LETTER NA
-11168 ; [.270D.0020.0002] # MAHAJANI LETTER PA
-11169 ; [.270E.0020.0002] # MAHAJANI LETTER PHA
-1116A ; [.270F.0020.0002] # MAHAJANI LETTER BA
-1116B ; [.2710.0020.0002] # MAHAJANI LETTER BHA
-1116C ; [.2711.0020.0002] # MAHAJANI LETTER MA
-1116D ; [.2712.0020.0002] # MAHAJANI LETTER RA
-1116E ; [.2713.0020.0002] # MAHAJANI LETTER LA
-1116F ; [.2714.0020.0002] # MAHAJANI LETTER VA
-11176 ; [.2715.0020.0002] # MAHAJANI LIGATURE SHRI
-11170 ; [.2716.0020.0002] # MAHAJANI LETTER SA
-11171 ; [.2717.0020.0002] # MAHAJANI LETTER HA
-11172 ; [.2718.0020.0002] # MAHAJANI LETTER RRA
-111C4 ; [.2719.0020.0002] # SHARADA OM
-111DA ; [.271A.0020.0002] # SHARADA EKAM
-11183 ; [.271B.0020.0002] # SHARADA LETTER A
-11184 ; [.271C.0020.0002] # SHARADA LETTER AA
-11185 ; [.271D.0020.0002] # SHARADA LETTER I
-11186 ; [.271E.0020.0002] # SHARADA LETTER II
-11187 ; [.271F.0020.0002] # SHARADA LETTER U
-11188 ; [.2720.0020.0002] # SHARADA LETTER UU
-11189 ; [.2721.0020.0002] # SHARADA LETTER VOCALIC R
-1118A ; [.2722.0020.0002] # SHARADA LETTER VOCALIC RR
-1118B ; [.2723.0020.0002] # SHARADA LETTER VOCALIC L
-1118C ; [.2724.0020.0002] # SHARADA LETTER VOCALIC LL
-1118D ; [.2725.0020.0002] # SHARADA LETTER E
-1118E ; [.2726.0020.0002] # SHARADA LETTER AI
-1118F ; [.2727.0020.0002] # SHARADA LETTER O
-11190 ; [.2728.0020.0002] # SHARADA LETTER AU
-11191 ; [.2729.0020.0002] # SHARADA LETTER KA
-11192 ; [.272A.0020.0002] # SHARADA LETTER KHA
-11193 ; [.272B.0020.0002] # SHARADA LETTER GA
-11194 ; [.272C.0020.0002] # SHARADA LETTER GHA
-11195 ; [.272D.0020.0002] # SHARADA LETTER NGA
-11196 ; [.272E.0020.0002] # SHARADA LETTER CA
-11197 ; [.272F.0020.0002] # SHARADA LETTER CHA
-11198 ; [.2730.0020.0002] # SHARADA LETTER JA
-11199 ; [.2731.0020.0002] # SHARADA LETTER JHA
-1119A ; [.2732.0020.0002] # SHARADA LETTER NYA
-1119B ; [.2733.0020.0002] # SHARADA LETTER TTA
-1119C ; [.2734.0020.0002] # SHARADA LETTER TTHA
-1119D ; [.2735.0020.0002] # SHARADA LETTER DDA
-1119E ; [.2736.0020.0002] # SHARADA LETTER DDHA
-1119F ; [.2737.0020.0002] # SHARADA LETTER NNA
-111A0 ; [.2738.0020.0002] # SHARADA LETTER TA
-111A1 ; [.2739.0020.0002] # SHARADA LETTER THA
-111A2 ; [.273A.0020.0002] # SHARADA LETTER DA
-111A3 ; [.273B.0020.0002] # SHARADA LETTER DHA
-111A4 ; [.273C.0020.0002] # SHARADA LETTER NA
-111A5 ; [.273D.0020.0002] # SHARADA LETTER PA
-111A6 ; [.273E.0020.0002] # SHARADA LETTER PHA
-111A7 ; [.273F.0020.0002] # SHARADA LETTER BA
-111A8 ; [.2740.0020.0002] # SHARADA LETTER BHA
-111A9 ; [.2741.0020.0002] # SHARADA LETTER MA
-111AA ; [.2742.0020.0002] # SHARADA LETTER YA
-111AB ; [.2743.0020.0002] # SHARADA LETTER RA
-111AC ; [.2744.0020.0002] # SHARADA LETTER LA
-111AD ; [.2745.0020.0002] # SHARADA LETTER LLA
-111AE ; [.2746.0020.0002] # SHARADA LETTER VA
-111AF ; [.2747.0020.0002] # SHARADA LETTER SHA
-111B0 ; [.2748.0020.0002] # SHARADA LETTER SSA
-111B1 ; [.2749.0020.0002] # SHARADA LETTER SA
-111B2 ; [.274A.0020.0002] # SHARADA LETTER HA
-111C1 ; [.274B.0020.0002] # SHARADA SIGN AVAGRAHA
-111C2 ; [.274C.0020.0002] # SHARADA SIGN JIHVAMULIYA
-111C3 ; [.274D.0020.0002] # SHARADA SIGN UPADHMANIYA
-111B3 ; [.274E.0020.0002] # SHARADA VOWEL SIGN AA
-111B4 ; [.274F.0020.0002] # SHARADA VOWEL SIGN I
-111B5 ; [.2750.0020.0002] # SHARADA VOWEL SIGN II
-111B6 ; [.2751.0020.0002] # SHARADA VOWEL SIGN U
-111B7 ; [.2752.0020.0002] # SHARADA VOWEL SIGN UU
-111B8 ; [.2753.0020.0002] # SHARADA VOWEL SIGN VOCALIC R
-111B9 ; [.2754.0020.0002] # SHARADA VOWEL SIGN VOCALIC RR
-111BA ; [.2755.0020.0002] # SHARADA VOWEL SIGN VOCALIC L
-111BB ; [.2756.0020.0002] # SHARADA VOWEL SIGN VOCALIC LL
-111BC ; [.2757.0020.0002] # SHARADA VOWEL SIGN E
-111BD ; [.2758.0020.0002] # SHARADA VOWEL SIGN AI
-111BE ; [.2759.0020.0002] # SHARADA VOWEL SIGN O
-111BF ; [.275A.0020.0002] # SHARADA VOWEL SIGN AU
-111C0 ; [.275B.0020.0002] # SHARADA SIGN VIRAMA
-11200 ; [.275C.0020.0002] # KHOJKI LETTER A
-11201 ; [.275D.0020.0002] # KHOJKI LETTER AA
-11202 ; [.275E.0020.0002] # KHOJKI LETTER I
-11203 ; [.275F.0020.0002] # KHOJKI LETTER U
-11204 ; [.2760.0020.0002] # KHOJKI LETTER E
-11205 ; [.2761.0020.0002] # KHOJKI LETTER AI
-11206 ; [.2762.0020.0002] # KHOJKI LETTER O
-11207 ; [.2763.0020.0002] # KHOJKI LETTER AU
-11208 ; [.2764.0020.0002] # KHOJKI LETTER KA
-11209 ; [.2765.0020.0002] # KHOJKI LETTER KHA
-1120A ; [.2766.0020.0002] # KHOJKI LETTER GA
-1120B ; [.2767.0020.0002] # KHOJKI LETTER GGA
-1120C ; [.2768.0020.0002] # KHOJKI LETTER GHA
-1120D ; [.2769.0020.0002] # KHOJKI LETTER NGA
-1120E ; [.276A.0020.0002] # KHOJKI LETTER CA
-1120F ; [.276B.0020.0002] # KHOJKI LETTER CHA
-11210 ; [.276C.0020.0002] # KHOJKI LETTER JA
-11211 ; [.276D.0020.0002] # KHOJKI LETTER JJA
-11213 ; [.276E.0020.0002] # KHOJKI LETTER NYA
-11214 ; [.276F.0020.0002] # KHOJKI LETTER TTA
-11215 ; [.2770.0020.0002] # KHOJKI LETTER TTHA
-11216 ; [.2771.0020.0002] # KHOJKI LETTER DDA
-11217 ; [.2772.0020.0002] # KHOJKI LETTER DDHA
-11218 ; [.2773.0020.0002] # KHOJKI LETTER NNA
-11219 ; [.2774.0020.0002] # KHOJKI LETTER TA
-1121A ; [.2775.0020.0002] # KHOJKI LETTER THA
-1121B ; [.2776.0020.0002] # KHOJKI LETTER DA
-1121C ; [.2777.0020.0002] # KHOJKI LETTER DDDA
-1121D ; [.2778.0020.0002] # KHOJKI LETTER DHA
-1121E ; [.2779.0020.0002] # KHOJKI LETTER NA
-1121F ; [.277A.0020.0002] # KHOJKI LETTER PA
-11220 ; [.277B.0020.0002] # KHOJKI LETTER PHA
-11221 ; [.277C.0020.0002] # KHOJKI LETTER BA
-11222 ; [.277D.0020.0002] # KHOJKI LETTER BBA
-11223 ; [.277E.0020.0002] # KHOJKI LETTER BHA
-11224 ; [.277F.0020.0002] # KHOJKI LETTER MA
-11225 ; [.2780.0020.0002] # KHOJKI LETTER YA
-11226 ; [.2781.0020.0002] # KHOJKI LETTER RA
-11227 ; [.2782.0020.0002] # KHOJKI LETTER LA
-11228 ; [.2783.0020.0002] # KHOJKI LETTER VA
-11229 ; [.2784.0020.0002] # KHOJKI LETTER SA
-1122A ; [.2785.0020.0002] # KHOJKI LETTER HA
-1122B ; [.2786.0020.0002] # KHOJKI LETTER LLA
-1122C ; [.2787.0020.0002] # KHOJKI VOWEL SIGN AA
-1122D ; [.2788.0020.0002] # KHOJKI VOWEL SIGN I
-1122E ; [.2789.0020.0002] # KHOJKI VOWEL SIGN II
-1122F ; [.278A.0020.0002] # KHOJKI VOWEL SIGN U
-11230 ; [.278B.0020.0002] # KHOJKI VOWEL SIGN E
-11231 ; [.278C.0020.0002] # KHOJKI VOWEL SIGN AI
-11232 ; [.278D.0020.0002] # KHOJKI VOWEL SIGN O
-11233 ; [.278E.0020.0002] # KHOJKI VOWEL SIGN AU
-11235 ; [.278F.0020.0002] # KHOJKI SIGN VIRAMA
-112B0 ; [.2790.0020.0002] # KHUDAWADI LETTER A
-112B1 ; [.2791.0020.0002] # KHUDAWADI LETTER AA
-112B2 ; [.2792.0020.0002] # KHUDAWADI LETTER I
-112B3 ; [.2793.0020.0002] # KHUDAWADI LETTER II
-112B4 ; [.2794.0020.0002] # KHUDAWADI LETTER U
-112B5 ; [.2795.0020.0002] # KHUDAWADI LETTER UU
-112B6 ; [.2796.0020.0002] # KHUDAWADI LETTER E
-112B7 ; [.2797.0020.0002] # KHUDAWADI LETTER AI
-112B8 ; [.2798.0020.0002] # KHUDAWADI LETTER O
-112B9 ; [.2799.0020.0002] # KHUDAWADI LETTER AU
-112BA ; [.279A.0020.0002] # KHUDAWADI LETTER KA
-112BB ; [.279B.0020.0002] # KHUDAWADI LETTER KHA
-112BC ; [.279C.0020.0002] # KHUDAWADI LETTER GA
-112BD ; [.279D.0020.0002] # KHUDAWADI LETTER GGA
-112BE ; [.279E.0020.0002] # KHUDAWADI LETTER GHA
-112BF ; [.279F.0020.0002] # KHUDAWADI LETTER NGA
-112C0 ; [.27A0.0020.0002] # KHUDAWADI LETTER CA
-112C1 ; [.27A1.0020.0002] # KHUDAWADI LETTER CHA
-112C2 ; [.27A2.0020.0002] # KHUDAWADI LETTER JA
-112C3 ; [.27A3.0020.0002] # KHUDAWADI LETTER JJA
-112C4 ; [.27A4.0020.0002] # KHUDAWADI LETTER JHA
-112C5 ; [.27A5.0020.0002] # KHUDAWADI LETTER NYA
-112C6 ; [.27A6.0020.0002] # KHUDAWADI LETTER TTA
-112C7 ; [.27A7.0020.0002] # KHUDAWADI LETTER TTHA
-112C8 ; [.27A8.0020.0002] # KHUDAWADI LETTER DDA
-112C9 ; [.27A9.0020.0002] # KHUDAWADI LETTER DDDA
-112CA ; [.27AA.0020.0002] # KHUDAWADI LETTER RRA
-112CB ; [.27AB.0020.0002] # KHUDAWADI LETTER DDHA
-112CC ; [.27AC.0020.0002] # KHUDAWADI LETTER NNA
-112CD ; [.27AD.0020.0002] # KHUDAWADI LETTER TA
-112CE ; [.27AE.0020.0002] # KHUDAWADI LETTER THA
-112CF ; [.27AF.0020.0002] # KHUDAWADI LETTER DA
-112D0 ; [.27B0.0020.0002] # KHUDAWADI LETTER DHA
-112D1 ; [.27B1.0020.0002] # KHUDAWADI LETTER NA
-112D2 ; [.27B2.0020.0002] # KHUDAWADI LETTER PA
-112D3 ; [.27B3.0020.0002] # KHUDAWADI LETTER PHA
-112D4 ; [.27B4.0020.0002] # KHUDAWADI LETTER BA
-112D5 ; [.27B5.0020.0002] # KHUDAWADI LETTER BBA
-112D6 ; [.27B6.0020.0002] # KHUDAWADI LETTER BHA
-112D7 ; [.27B7.0020.0002] # KHUDAWADI LETTER MA
-112D8 ; [.27B8.0020.0002] # KHUDAWADI LETTER YA
-112D9 ; [.27B9.0020.0002] # KHUDAWADI LETTER RA
-112DA ; [.27BA.0020.0002] # KHUDAWADI LETTER LA
-112DB ; [.27BB.0020.0002] # KHUDAWADI LETTER VA
-112DC ; [.27BC.0020.0002] # KHUDAWADI LETTER SHA
-112DD ; [.27BD.0020.0002] # KHUDAWADI LETTER SA
-112DE ; [.27BE.0020.0002] # KHUDAWADI LETTER HA
-112E0 ; [.27BF.0020.0002] # KHUDAWADI VOWEL SIGN AA
-112E1 ; [.27C0.0020.0002] # KHUDAWADI VOWEL SIGN I
-112E2 ; [.27C1.0020.0002] # KHUDAWADI VOWEL SIGN II
-112E3 ; [.27C2.0020.0002] # KHUDAWADI VOWEL SIGN U
-112E4 ; [.27C3.0020.0002] # KHUDAWADI VOWEL SIGN UU
-112E5 ; [.27C4.0020.0002] # KHUDAWADI VOWEL SIGN E
-112E6 ; [.27C5.0020.0002] # KHUDAWADI VOWEL SIGN AI
-112E7 ; [.27C6.0020.0002] # KHUDAWADI VOWEL SIGN O
-112E8 ; [.27C7.0020.0002] # KHUDAWADI VOWEL SIGN AU
-112EA ; [.27C8.0020.0002] # KHUDAWADI SIGN VIRAMA
-11305 ; [.27C9.0020.0002] # GRANTHA LETTER A
-11306 ; [.27CA.0020.0002] # GRANTHA LETTER AA
-11307 ; [.27CB.0020.0002] # GRANTHA LETTER I
-11308 ; [.27CC.0020.0002] # GRANTHA LETTER II
-11309 ; [.27CD.0020.0002] # GRANTHA LETTER U
-1130A ; [.27CE.0020.0002] # GRANTHA LETTER UU
-1130B ; [.27CF.0020.0002] # GRANTHA LETTER VOCALIC R
-11360 ; [.27D0.0020.0002] # GRANTHA LETTER VOCALIC RR
-1130C ; [.27D1.0020.0002] # GRANTHA LETTER VOCALIC L
-11361 ; [.27D2.0020.0002] # GRANTHA LETTER VOCALIC LL
-1130F ; [.27D3.0020.0002] # GRANTHA LETTER EE
-11310 ; [.27D4.0020.0002] # GRANTHA LETTER AI
-11313 ; [.27D5.0020.0002] # GRANTHA LETTER OO
-11314 ; [.27D6.0020.0002] # GRANTHA LETTER AU
-11315 ; [.27D7.0020.0002] # GRANTHA LETTER KA
-11316 ; [.27D8.0020.0002] # GRANTHA LETTER KHA
-11317 ; [.27D9.0020.0002] # GRANTHA LETTER GA
-11318 ; [.27DA.0020.0002] # GRANTHA LETTER GHA
-11319 ; [.27DB.0020.0002] # GRANTHA LETTER NGA
-1131A ; [.27DC.0020.0002] # GRANTHA LETTER CA
-1131B ; [.27DD.0020.0002] # GRANTHA LETTER CHA
-1131C ; [.27DE.0020.0002] # GRANTHA LETTER JA
-1131D ; [.27DF.0020.0002] # GRANTHA LETTER JHA
-1131E ; [.27E0.0020.0002] # GRANTHA LETTER NYA
-1131F ; [.27E1.0020.0002] # GRANTHA LETTER TTA
-11320 ; [.27E2.0020.0002] # GRANTHA LETTER TTHA
-11321 ; [.27E3.0020.0002] # GRANTHA LETTER DDA
-11322 ; [.27E4.0020.0002] # GRANTHA LETTER DDHA
-11323 ; [.27E5.0020.0002] # GRANTHA LETTER NNA
-11324 ; [.27E6.0020.0002] # GRANTHA LETTER TA
-11325 ; [.27E7.0020.0002] # GRANTHA LETTER THA
-11326 ; [.27E8.0020.0002] # GRANTHA LETTER DA
-11327 ; [.27E9.0020.0002] # GRANTHA LETTER DHA
-11328 ; [.27EA.0020.0002] # GRANTHA LETTER NA
-1132A ; [.27EB.0020.0002] # GRANTHA LETTER PA
-1132B ; [.27EC.0020.0002] # GRANTHA LETTER PHA
-1132C ; [.27ED.0020.0002] # GRANTHA LETTER BA
-1132D ; [.27EE.0020.0002] # GRANTHA LETTER BHA
-1132E ; [.27EF.0020.0002] # GRANTHA LETTER MA
-1132F ; [.27F0.0020.0002] # GRANTHA LETTER YA
-11330 ; [.27F1.0020.0002] # GRANTHA LETTER RA
-11332 ; [.27F2.0020.0002] # GRANTHA LETTER LA
-11333 ; [.27F3.0020.0002] # GRANTHA LETTER LLA
-11335 ; [.27F4.0020.0002] # GRANTHA LETTER VA
-11336 ; [.27F5.0020.0002] # GRANTHA LETTER SHA
-11337 ; [.27F6.0020.0002] # GRANTHA LETTER SSA
-11338 ; [.27F7.0020.0002] # GRANTHA LETTER SA
-11339 ; [.27F8.0020.0002] # GRANTHA LETTER HA
-1133D ; [.27F9.0020.0002] # GRANTHA SIGN AVAGRAHA
-1135E ; [.27FA.0020.0002] # GRANTHA LETTER VEDIC ANUSVARA
-1135F ; [.27FB.0020.0002] # GRANTHA LETTER VEDIC DOUBLE ANUSVARA
-1133E ; [.27FC.0020.0002] # GRANTHA VOWEL SIGN AA
-1133F ; [.27FD.0020.0002] # GRANTHA VOWEL SIGN I
-11340 ; [.27FE.0020.0002] # GRANTHA VOWEL SIGN II
-11341 ; [.27FF.0020.0002] # GRANTHA VOWEL SIGN U
-11342 ; [.2800.0020.0002] # GRANTHA VOWEL SIGN UU
-11343 ; [.2801.0020.0002] # GRANTHA VOWEL SIGN VOCALIC R
-11344 ; [.2802.0020.0002] # GRANTHA VOWEL SIGN VOCALIC RR
-11362 ; [.2803.0020.0002] # GRANTHA VOWEL SIGN VOCALIC L
-11363 ; [.2804.0020.0002] # GRANTHA VOWEL SIGN VOCALIC LL
-11347 ; [.2805.0020.0002] # GRANTHA VOWEL SIGN EE
-11348 ; [.2806.0020.0002] # GRANTHA VOWEL SIGN AI
-1134B ; [.2807.0020.0002] # GRANTHA VOWEL SIGN OO
-11347 1133E ; [.2807.0020.0002] # GRANTHA VOWEL SIGN OO
-1134C ; [.2808.0020.0002] # GRANTHA VOWEL SIGN AU
-11347 11357 ; [.2808.0020.0002] # GRANTHA VOWEL SIGN AU
-1134D ; [.2809.0020.0002] # GRANTHA SIGN VIRAMA
-11357 ; [.280A.0020.0002] # GRANTHA AU LENGTH MARK
-1135D ; [.280B.0020.0002] # GRANTHA SIGN PLUTA
-114C7 ; [.280C.0020.0002] # TIRHUTA OM
-11480 ; [.280D.0020.0002] # TIRHUTA ANJI
-11481 ; [.280E.0020.0002] # TIRHUTA LETTER A
-11482 ; [.280F.0020.0002] # TIRHUTA LETTER AA
-11483 ; [.2810.0020.0002] # TIRHUTA LETTER I
-11484 ; [.2811.0020.0002] # TIRHUTA LETTER II
-11485 ; [.2812.0020.0002] # TIRHUTA LETTER U
-11486 ; [.2813.0020.0002] # TIRHUTA LETTER UU
-11487 ; [.2814.0020.0002] # TIRHUTA LETTER VOCALIC R
-11488 ; [.2815.0020.0002] # TIRHUTA LETTER VOCALIC RR
-11489 ; [.2816.0020.0002] # TIRHUTA LETTER VOCALIC L
-1148A ; [.2817.0020.0002] # TIRHUTA LETTER VOCALIC LL
-1148B ; [.2818.0020.0002] # TIRHUTA LETTER E
-1148C ; [.2819.0020.0002] # TIRHUTA LETTER AI
-1148D ; [.281A.0020.0002] # TIRHUTA LETTER O
-1148E ; [.281B.0020.0002] # TIRHUTA LETTER AU
-1148F ; [.281C.0020.0002] # TIRHUTA LETTER KA
-11490 ; [.281D.0020.0002] # TIRHUTA LETTER KHA
-11491 ; [.281E.0020.0002] # TIRHUTA LETTER GA
-11492 ; [.281F.0020.0002] # TIRHUTA LETTER GHA
-11493 ; [.2820.0020.0002] # TIRHUTA LETTER NGA
-11494 ; [.2821.0020.0002] # TIRHUTA LETTER CA
-11495 ; [.2822.0020.0002] # TIRHUTA LETTER CHA
-11496 ; [.2823.0020.0002] # TIRHUTA LETTER JA
-11497 ; [.2824.0020.0002] # TIRHUTA LETTER JHA
-11498 ; [.2825.0020.0002] # TIRHUTA LETTER NYA
-11499 ; [.2826.0020.0002] # TIRHUTA LETTER TTA
-1149A ; [.2827.0020.0002] # TIRHUTA LETTER TTHA
-1149B ; [.2828.0020.0002] # TIRHUTA LETTER DDA
-1149C ; [.2829.0020.0002] # TIRHUTA LETTER DDHA
-1149D ; [.282A.0020.0002] # TIRHUTA LETTER NNA
-1149E ; [.282B.0020.0002] # TIRHUTA LETTER TA
-1149F ; [.282C.0020.0002] # TIRHUTA LETTER THA
-114A0 ; [.282D.0020.0002] # TIRHUTA LETTER DA
-114A1 ; [.282E.0020.0002] # TIRHUTA LETTER DHA
-114A2 ; [.282F.0020.0002] # TIRHUTA LETTER NA
-114A3 ; [.2830.0020.0002] # TIRHUTA LETTER PA
-114A4 ; [.2831.0020.0002] # TIRHUTA LETTER PHA
-114A5 ; [.2832.0020.0002] # TIRHUTA LETTER BA
-114A6 ; [.2833.0020.0002] # TIRHUTA LETTER BHA
-114A7 ; [.2834.0020.0002] # TIRHUTA LETTER MA
-114A8 ; [.2835.0020.0002] # TIRHUTA LETTER YA
-114A9 ; [.2836.0020.0002] # TIRHUTA LETTER RA
-114AA ; [.2837.0020.0002] # TIRHUTA LETTER LA
-114AB ; [.2838.0020.0002] # TIRHUTA LETTER VA
-114AC ; [.2839.0020.0002] # TIRHUTA LETTER SHA
-114AD ; [.283A.0020.0002] # TIRHUTA LETTER SSA
-114AE ; [.283B.0020.0002] # TIRHUTA LETTER SA
-114AF ; [.283C.0020.0002] # TIRHUTA LETTER HA
-114C4 ; [.283D.0020.0002] # TIRHUTA SIGN AVAGRAHA
-114C5 ; [.283E.0020.0002] # TIRHUTA GVANG
-114B0 ; [.283F.0020.0002] # TIRHUTA VOWEL SIGN AA
-114B1 ; [.2840.0020.0002] # TIRHUTA VOWEL SIGN I
-114B2 ; [.2841.0020.0002] # TIRHUTA VOWEL SIGN II
-114B3 ; [.2842.0020.0002] # TIRHUTA VOWEL SIGN U
-114B4 ; [.2843.0020.0002] # TIRHUTA VOWEL SIGN UU
-114B5 ; [.2844.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC R
-114B6 ; [.2845.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC RR
-114B7 ; [.2846.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC L
-114B8 ; [.2847.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC LL
-114B9 ; [.2848.0020.0002] # TIRHUTA VOWEL SIGN E
-114BA ; [.2849.0020.0002] # TIRHUTA VOWEL SIGN SHORT E
-114BB ; [.284A.0020.0002] # TIRHUTA VOWEL SIGN AI
-114B9 114BA ; [.284A.0020.0002] # TIRHUTA VOWEL SIGN AI
-114BC ; [.284B.0020.0002] # TIRHUTA VOWEL SIGN O
-114B9 114B0 ; [.284B.0020.0002] # TIRHUTA VOWEL SIGN O
-114BD ; [.284C.0020.0002] # TIRHUTA VOWEL SIGN SHORT O
-114BE ; [.284D.0020.0002] # TIRHUTA VOWEL SIGN AU
-114B9 114BD ; [.284D.0020.0002] # TIRHUTA VOWEL SIGN AU
-114C2 ; [.284E.0020.0002] # TIRHUTA SIGN VIRAMA
-11580 ; [.284F.0020.0002] # SIDDHAM LETTER A
-11581 ; [.2850.0020.0002] # SIDDHAM LETTER AA
-11582 ; [.2851.0020.0002] # SIDDHAM LETTER I
-11583 ; [.2852.0020.0002] # SIDDHAM LETTER II
-11584 ; [.2853.0020.0002] # SIDDHAM LETTER U
-11585 ; [.2854.0020.0002] # SIDDHAM LETTER UU
-11586 ; [.2855.0020.0002] # SIDDHAM LETTER VOCALIC R
-11587 ; [.2856.0020.0002] # SIDDHAM LETTER VOCALIC RR
-11588 ; [.2857.0020.0002] # SIDDHAM LETTER VOCALIC L
-11589 ; [.2858.0020.0002] # SIDDHAM LETTER VOCALIC LL
-1158A ; [.2859.0020.0002] # SIDDHAM LETTER E
-1158B ; [.285A.0020.0002] # SIDDHAM LETTER AI
-1158C ; [.285B.0020.0002] # SIDDHAM LETTER O
-1158D ; [.285C.0020.0002] # SIDDHAM LETTER AU
-1158E ; [.285D.0020.0002] # SIDDHAM LETTER KA
-1158F ; [.285E.0020.0002] # SIDDHAM LETTER KHA
-11590 ; [.285F.0020.0002] # SIDDHAM LETTER GA
-11591 ; [.2860.0020.0002] # SIDDHAM LETTER GHA
-11592 ; [.2861.0020.0002] # SIDDHAM LETTER NGA
-11593 ; [.2862.0020.0002] # SIDDHAM LETTER CA
-11594 ; [.2863.0020.0002] # SIDDHAM LETTER CHA
-11595 ; [.2864.0020.0002] # SIDDHAM LETTER JA
-11596 ; [.2865.0020.0002] # SIDDHAM LETTER JHA
-11597 ; [.2866.0020.0002] # SIDDHAM LETTER NYA
-11598 ; [.2867.0020.0002] # SIDDHAM LETTER TTA
-11599 ; [.2868.0020.0002] # SIDDHAM LETTER TTHA
-1159A ; [.2869.0020.0002] # SIDDHAM LETTER DDA
-1159B ; [.286A.0020.0002] # SIDDHAM LETTER DDHA
-1159C ; [.286B.0020.0002] # SIDDHAM LETTER NNA
-1159D ; [.286C.0020.0002] # SIDDHAM LETTER TA
-1159E ; [.286D.0020.0002] # SIDDHAM LETTER THA
-1159F ; [.286E.0020.0002] # SIDDHAM LETTER DA
-115A0 ; [.286F.0020.0002] # SIDDHAM LETTER DHA
-115A1 ; [.2870.0020.0002] # SIDDHAM LETTER NA
-115A2 ; [.2871.0020.0002] # SIDDHAM LETTER PA
-115A3 ; [.2872.0020.0002] # SIDDHAM LETTER PHA
-115A4 ; [.2873.0020.0002] # SIDDHAM LETTER BA
-115A5 ; [.2874.0020.0002] # SIDDHAM LETTER BHA
-115A6 ; [.2875.0020.0002] # SIDDHAM LETTER MA
-115A7 ; [.2876.0020.0002] # SIDDHAM LETTER YA
-115A8 ; [.2877.0020.0002] # SIDDHAM LETTER RA
-115A9 ; [.2878.0020.0002] # SIDDHAM LETTER LA
-115AA ; [.2879.0020.0002] # SIDDHAM LETTER VA
-115AB ; [.287A.0020.0002] # SIDDHAM LETTER SHA
-115AC ; [.287B.0020.0002] # SIDDHAM LETTER SSA
-115AD ; [.287C.0020.0002] # SIDDHAM LETTER SA
-115AE ; [.287D.0020.0002] # SIDDHAM LETTER HA
-115AF ; [.287E.0020.0002] # SIDDHAM VOWEL SIGN AA
-115B0 ; [.287F.0020.0002] # SIDDHAM VOWEL SIGN I
-115B1 ; [.2880.0020.0002] # SIDDHAM VOWEL SIGN II
-115B2 ; [.2881.0020.0002] # SIDDHAM VOWEL SIGN U
-115B3 ; [.2882.0020.0002] # SIDDHAM VOWEL SIGN UU
-115B4 ; [.2883.0020.0002] # SIDDHAM VOWEL SIGN VOCALIC R
-115B5 ; [.2884.0020.0002] # SIDDHAM VOWEL SIGN VOCALIC RR
-115B8 ; [.2885.0020.0002] # SIDDHAM VOWEL SIGN E
-115B9 ; [.2886.0020.0002] # SIDDHAM VOWEL SIGN AI
-115BA ; [.2887.0020.0002] # SIDDHAM VOWEL SIGN O
-115B8 115AF ; [.2887.0020.0002] # SIDDHAM VOWEL SIGN O
-115BB ; [.2888.0020.0002] # SIDDHAM VOWEL SIGN AU
-115B9 115AF ; [.2888.0020.0002] # SIDDHAM VOWEL SIGN AU
-115BF ; [.2889.0020.0002] # SIDDHAM SIGN VIRAMA
-11600 ; [.288A.0020.0002] # MODI LETTER A
-11601 ; [.288B.0020.0002] # MODI LETTER AA
-11602 ; [.288C.0020.0002] # MODI LETTER I
-11603 ; [.288D.0020.0002] # MODI LETTER II
-11604 ; [.288E.0020.0002] # MODI LETTER U
-11605 ; [.288F.0020.0002] # MODI LETTER UU
-11606 ; [.2890.0020.0002] # MODI LETTER VOCALIC R
-11607 ; [.2891.0020.0002] # MODI LETTER VOCALIC RR
-11608 ; [.2892.0020.0002] # MODI LETTER VOCALIC L
-11609 ; [.2893.0020.0002] # MODI LETTER VOCALIC LL
-1160A ; [.2894.0020.0002] # MODI LETTER E
-1160B ; [.2895.0020.0002] # MODI LETTER AI
-1160C ; [.2896.0020.0002] # MODI LETTER O
-1160D ; [.2897.0020.0002] # MODI LETTER AU
-1160E ; [.2898.0020.0002] # MODI LETTER KA
-1160F ; [.2899.0020.0002] # MODI LETTER KHA
-11610 ; [.289A.0020.0002] # MODI LETTER GA
-11611 ; [.289B.0020.0002] # MODI LETTER GHA
-11612 ; [.289C.0020.0002] # MODI LETTER NGA
-11613 ; [.289D.0020.0002] # MODI LETTER CA
-11614 ; [.289E.0020.0002] # MODI LETTER CHA
-11615 ; [.289F.0020.0002] # MODI LETTER JA
-11616 ; [.28A0.0020.0002] # MODI LETTER JHA
-11617 ; [.28A1.0020.0002] # MODI LETTER NYA
-11618 ; [.28A2.0020.0002] # MODI LETTER TTA
-11619 ; [.28A3.0020.0002] # MODI LETTER TTHA
-1161A ; [.28A4.0020.0002] # MODI LETTER DDA
-1161B ; [.28A5.0020.0002] # MODI LETTER DDHA
-1161C ; [.28A6.0020.0002] # MODI LETTER NNA
-1161D ; [.28A7.0020.0002] # MODI LETTER TA
-1161E ; [.28A8.0020.0002] # MODI LETTER THA
-1161F ; [.28A9.0020.0002] # MODI LETTER DA
-11620 ; [.28AA.0020.0002] # MODI LETTER DHA
-11621 ; [.28AB.0020.0002] # MODI LETTER NA
-11622 ; [.28AC.0020.0002] # MODI LETTER PA
-11623 ; [.28AD.0020.0002] # MODI LETTER PHA
-11624 ; [.28AE.0020.0002] # MODI LETTER BA
-11625 ; [.28AF.0020.0002] # MODI LETTER BHA
-11626 ; [.28B0.0020.0002] # MODI LETTER MA
-11627 ; [.28B1.0020.0002] # MODI LETTER YA
-11628 ; [.28B2.0020.0002] # MODI LETTER RA
-11629 ; [.28B3.0020.0002] # MODI LETTER LA
-1162A ; [.28B4.0020.0002] # MODI LETTER VA
-1162B ; [.28B5.0020.0002] # MODI LETTER SHA
-1162C ; [.28B6.0020.0002] # MODI LETTER SSA
-1162D ; [.28B7.0020.0002] # MODI LETTER SA
-1162E ; [.28B8.0020.0002] # MODI LETTER HA
-1162F ; [.28B9.0020.0002] # MODI LETTER LLA
-11630 ; [.28BA.0020.0002] # MODI VOWEL SIGN AA
-11631 ; [.28BB.0020.0002] # MODI VOWEL SIGN I
-11632 ; [.28BC.0020.0002] # MODI VOWEL SIGN II
-11633 ; [.28BD.0020.0002] # MODI VOWEL SIGN U
-11634 ; [.28BE.0020.0002] # MODI VOWEL SIGN UU
-11635 ; [.28BF.0020.0002] # MODI VOWEL SIGN VOCALIC R
-11636 ; [.28C0.0020.0002] # MODI VOWEL SIGN VOCALIC RR
-11637 ; [.28C1.0020.0002] # MODI VOWEL SIGN VOCALIC L
-11638 ; [.28C2.0020.0002] # MODI VOWEL SIGN VOCALIC LL
-11639 ; [.28C3.0020.0002] # MODI VOWEL SIGN E
-1163A ; [.28C4.0020.0002] # MODI VOWEL SIGN AI
-1163B ; [.28C5.0020.0002] # MODI VOWEL SIGN O
-1163C ; [.28C6.0020.0002] # MODI VOWEL SIGN AU
-1163F ; [.28C7.0020.0002] # MODI SIGN VIRAMA
-11644 ; [.28C8.0020.0002] # MODI SIGN HUVA
-11680 ; [.28C9.0020.0002] # TAKRI LETTER A
-11681 ; [.28CA.0020.0002] # TAKRI LETTER AA
-11682 ; [.28CB.0020.0002] # TAKRI LETTER I
-11683 ; [.28CC.0020.0002] # TAKRI LETTER II
-11684 ; [.28CD.0020.0002] # TAKRI LETTER U
-11685 ; [.28CE.0020.0002] # TAKRI LETTER UU
-11686 ; [.28CF.0020.0002] # TAKRI LETTER E
-11687 ; [.28D0.0020.0002] # TAKRI LETTER AI
-11688 ; [.28D1.0020.0002] # TAKRI LETTER O
-11689 ; [.28D2.0020.0002] # TAKRI LETTER AU
-116A8 ; [.28D3.0020.0002] # TAKRI LETTER SA
-116A7 ; [.28D4.0020.0002] # TAKRI LETTER SHA
-116A9 ; [.28D5.0020.0002] # TAKRI LETTER HA
-1168A ; [.28D6.0020.0002] # TAKRI LETTER KA
-1168B ; [.28D7.0020.0002] # TAKRI LETTER KHA
-1168C ; [.28D8.0020.0002] # TAKRI LETTER GA
-1168D ; [.28D9.0020.0002] # TAKRI LETTER GHA
-1168E ; [.28DA.0020.0002] # TAKRI LETTER NGA
-1168F ; [.28DB.0020.0002] # TAKRI LETTER CA
-11690 ; [.28DC.0020.0002] # TAKRI LETTER CHA
-11691 ; [.28DD.0020.0002] # TAKRI LETTER JA
-11692 ; [.28DE.0020.0002] # TAKRI LETTER JHA
-11693 ; [.28DF.0020.0002] # TAKRI LETTER NYA
-11694 ; [.28E0.0020.0002] # TAKRI LETTER TTA
-11695 ; [.28E1.0020.0002] # TAKRI LETTER TTHA
-11696 ; [.28E2.0020.0002] # TAKRI LETTER DDA
-11697 ; [.28E3.0020.0002] # TAKRI LETTER DDHA
-11698 ; [.28E4.0020.0002] # TAKRI LETTER NNA
-11699 ; [.28E5.0020.0002] # TAKRI LETTER TA
-1169A ; [.28E6.0020.0002] # TAKRI LETTER THA
-1169B ; [.28E7.0020.0002] # TAKRI LETTER DA
-1169C ; [.28E8.0020.0002] # TAKRI LETTER DHA
-1169D ; [.28E9.0020.0002] # TAKRI LETTER NA
-1169E ; [.28EA.0020.0002] # TAKRI LETTER PA
-1169F ; [.28EB.0020.0002] # TAKRI LETTER PHA
-116A0 ; [.28EC.0020.0002] # TAKRI LETTER BA
-116A1 ; [.28ED.0020.0002] # TAKRI LETTER BHA
-116A2 ; [.28EE.0020.0002] # TAKRI LETTER MA
-116A3 ; [.28EF.0020.0002] # TAKRI LETTER YA
-116A4 ; [.28F0.0020.0002] # TAKRI LETTER RA
-116A5 ; [.28F1.0020.0002] # TAKRI LETTER LA
-116A6 ; [.28F2.0020.0002] # TAKRI LETTER VA
-116AA ; [.28F3.0020.0002] # TAKRI LETTER RRA
-116AD ; [.28F4.0020.0002] # TAKRI VOWEL SIGN AA
-116AE ; [.28F5.0020.0002] # TAKRI VOWEL SIGN I
-116AF ; [.28F6.0020.0002] # TAKRI VOWEL SIGN II
-116B0 ; [.28F7.0020.0002] # TAKRI VOWEL SIGN U
-116B1 ; [.28F8.0020.0002] # TAKRI VOWEL SIGN UU
-116B2 ; [.28F9.0020.0002] # TAKRI VOWEL SIGN E
-116B3 ; [.28FA.0020.0002] # TAKRI VOWEL SIGN AI
-116B4 ; [.28FB.0020.0002] # TAKRI VOWEL SIGN O
-116B5 ; [.28FC.0020.0002] # TAKRI VOWEL SIGN AU
-116B6 ; [.28FD.0020.0002] # TAKRI SIGN VIRAMA
-1B83 ; [.28FE.0020.0002] # SUNDANESE LETTER A
-1BBA ; [.28FE.0020.0004] # SUNDANESE AVAGRAHA
-1B84 ; [.28FF.0020.0002] # SUNDANESE LETTER I
-1B85 ; [.2900.0020.0002] # SUNDANESE LETTER U
-1B86 ; [.2901.0020.0002] # SUNDANESE LETTER AE
-1B87 ; [.2902.0020.0002] # SUNDANESE LETTER O
-1B88 ; [.2903.0020.0002] # SUNDANESE LETTER E
-1B89 ; [.2904.0020.0002] # SUNDANESE LETTER EU
-1B8A ; [.2905.0020.0002] # SUNDANESE LETTER KA
-1BBE ; [.2905.0020.0019] # SUNDANESE LETTER FINAL K
-1BAE ; [.2906.0020.0002] # SUNDANESE LETTER KHA
-1B8B ; [.2907.0020.0002] # SUNDANESE LETTER QA
-1B8C ; [.2908.0020.0002] # SUNDANESE LETTER GA
-1B8D ; [.2909.0020.0002] # SUNDANESE LETTER NGA
-1B8E ; [.290A.0020.0002] # SUNDANESE LETTER CA
-1B8F ; [.290B.0020.0002] # SUNDANESE LETTER JA
-1B90 ; [.290C.0020.0002] # SUNDANESE LETTER ZA
-1B91 ; [.290D.0020.0002] # SUNDANESE LETTER NYA
-1B92 ; [.290E.0020.0002] # SUNDANESE LETTER TA
-1B93 ; [.290F.0020.0002] # SUNDANESE LETTER DA
-1B94 ; [.2910.0020.0002] # SUNDANESE LETTER NA
-1B95 ; [.2911.0020.0002] # SUNDANESE LETTER PA
-1B96 ; [.2912.0020.0002] # SUNDANESE LETTER FA
-1B97 ; [.2913.0020.0002] # SUNDANESE LETTER VA
-1B98 ; [.2914.0020.0002] # SUNDANESE LETTER BA
-1BBD ; [.2915.0020.0002] # SUNDANESE LETTER BHA
-1B99 ; [.2916.0020.0002] # SUNDANESE LETTER MA
-1BBF ; [.2916.0020.0019] # SUNDANESE LETTER FINAL M
-1BAC ; [.2917.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN MA
-1B9A ; [.2918.0020.0002] # SUNDANESE LETTER YA
-1BA1 ; [.2919.0020.0002] # SUNDANESE CONSONANT SIGN PAMINGKAL
-1B9B ; [.291A.0020.0002] # SUNDANESE LETTER RA
-1BA2 ; [.291B.0020.0002] # SUNDANESE CONSONANT SIGN PANYAKRA
-1BBB ; [.291C.0020.0002] # SUNDANESE LETTER REU
-1B9C ; [.291D.0020.0002] # SUNDANESE LETTER LA
-1BA3 ; [.291E.0020.0002] # SUNDANESE CONSONANT SIGN PANYIKU
-1BBC ; [.291F.0020.0002] # SUNDANESE LETTER LEU
-1B9D ; [.2920.0020.0002] # SUNDANESE LETTER WA
-1BAD ; [.2921.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN WA
-1B9E ; [.2922.0020.0002] # SUNDANESE LETTER SA
-1B9F ; [.2923.0020.0002] # SUNDANESE LETTER XA
-1BAF ; [.2924.0020.0002] # SUNDANESE LETTER SYA
-1BA0 ; [.2925.0020.0002] # SUNDANESE LETTER HA
-1BA4 ; [.2926.0020.0002] # SUNDANESE VOWEL SIGN PANGHULU
-1BA5 ; [.2927.0020.0002] # SUNDANESE VOWEL SIGN PANYUKU
-1BA6 ; [.2928.0020.0002] # SUNDANESE VOWEL SIGN PANAELAENG
-1BA7 ; [.2929.0020.0002] # SUNDANESE VOWEL SIGN PANOLONG
-1BA8 ; [.292A.0020.0002] # SUNDANESE VOWEL SIGN PAMEPET
-1BA9 ; [.292B.0020.0002] # SUNDANESE VOWEL SIGN PANEULEUNG
-1BAA ; [.292C.0020.0002] # SUNDANESE SIGN PAMAAEH
-1BAB ; [.292D.0020.0002] # SUNDANESE SIGN VIRAMA
-11005 ; [.292E.0020.0002] # BRAHMI LETTER A
-11006 ; [.292F.0020.0002] # BRAHMI LETTER AA
-11007 ; [.2930.0020.0002] # BRAHMI LETTER I
-11008 ; [.2931.0020.0002] # BRAHMI LETTER II
-11009 ; [.2932.0020.0002] # BRAHMI LETTER U
-1100A ; [.2933.0020.0002] # BRAHMI LETTER UU
-1100B ; [.2934.0020.0002] # BRAHMI LETTER VOCALIC R
-1100C ; [.2935.0020.0002] # BRAHMI LETTER VOCALIC RR
-1100D ; [.2936.0020.0002] # BRAHMI LETTER VOCALIC L
-1100E ; [.2937.0020.0002] # BRAHMI LETTER VOCALIC LL
-1100F ; [.2938.0020.0002] # BRAHMI LETTER E
-11010 ; [.2939.0020.0002] # BRAHMI LETTER AI
-11011 ; [.293A.0020.0002] # BRAHMI LETTER O
-11012 ; [.293B.0020.0002] # BRAHMI LETTER AU
-11013 ; [.293C.0020.0002] # BRAHMI LETTER KA
-11014 ; [.293D.0020.0002] # BRAHMI LETTER KHA
-11015 ; [.293E.0020.0002] # BRAHMI LETTER GA
-11016 ; [.293F.0020.0002] # BRAHMI LETTER GHA
-11017 ; [.2940.0020.0002] # BRAHMI LETTER NGA
-11018 ; [.2941.0020.0002] # BRAHMI LETTER CA
-11019 ; [.2942.0020.0002] # BRAHMI LETTER CHA
-1101A ; [.2943.0020.0002] # BRAHMI LETTER JA
-1101B ; [.2944.0020.0002] # BRAHMI LETTER JHA
-1101C ; [.2945.0020.0002] # BRAHMI LETTER NYA
-1101D ; [.2946.0020.0002] # BRAHMI LETTER TTA
-1101E ; [.2947.0020.0002] # BRAHMI LETTER TTHA
-1101F ; [.2948.0020.0002] # BRAHMI LETTER DDA
-11020 ; [.2949.0020.0002] # BRAHMI LETTER DDHA
-11021 ; [.294A.0020.0002] # BRAHMI LETTER NNA
-11022 ; [.294B.0020.0002] # BRAHMI LETTER TA
-11023 ; [.294C.0020.0002] # BRAHMI LETTER THA
-11024 ; [.294D.0020.0002] # BRAHMI LETTER DA
-11025 ; [.294E.0020.0002] # BRAHMI LETTER DHA
-11026 ; [.294F.0020.0002] # BRAHMI LETTER NA
-11027 ; [.2950.0020.0002] # BRAHMI LETTER PA
-11028 ; [.2951.0020.0002] # BRAHMI LETTER PHA
-11029 ; [.2952.0020.0002] # BRAHMI LETTER BA
-1102A ; [.2953.0020.0002] # BRAHMI LETTER BHA
-1102B ; [.2954.0020.0002] # BRAHMI LETTER MA
-1102C ; [.2955.0020.0002] # BRAHMI LETTER YA
-1102D ; [.2956.0020.0002] # BRAHMI LETTER RA
-1102E ; [.2957.0020.0002] # BRAHMI LETTER LA
-1102F ; [.2958.0020.0002] # BRAHMI LETTER VA
-11030 ; [.2959.0020.0002] # BRAHMI LETTER SHA
-11031 ; [.295A.0020.0002] # BRAHMI LETTER SSA
-11032 ; [.295B.0020.0002] # BRAHMI LETTER SA
-11033 ; [.295C.0020.0002] # BRAHMI LETTER HA
-11003 ; [.295D.0020.0002] # BRAHMI SIGN JIHVAMULIYA
-11004 ; [.295E.0020.0002] # BRAHMI SIGN UPADHMANIYA
-11034 ; [.295F.0020.0002] # BRAHMI LETTER LLA
-11035 ; [.2960.0020.0002] # BRAHMI LETTER OLD TAMIL LLLA
-11036 ; [.2961.0020.0002] # BRAHMI LETTER OLD TAMIL RRA
-11037 ; [.2962.0020.0002] # BRAHMI LETTER OLD TAMIL NNNA
-11038 ; [.2963.0020.0002] # BRAHMI VOWEL SIGN AA
-11039 ; [.2964.0020.0002] # BRAHMI VOWEL SIGN BHATTIPROLU AA
-1103A ; [.2965.0020.0002] # BRAHMI VOWEL SIGN I
-1103B ; [.2966.0020.0002] # BRAHMI VOWEL SIGN II
-1103C ; [.2967.0020.0002] # BRAHMI VOWEL SIGN U
-1103D ; [.2968.0020.0002] # BRAHMI VOWEL SIGN UU
-1103E ; [.2969.0020.0002] # BRAHMI VOWEL SIGN VOCALIC R
-1103F ; [.296A.0020.0002] # BRAHMI VOWEL SIGN VOCALIC RR
-11040 ; [.296B.0020.0002] # BRAHMI VOWEL SIGN VOCALIC L
-11041 ; [.296C.0020.0002] # BRAHMI VOWEL SIGN VOCALIC LL
-11042 ; [.296D.0020.0002] # BRAHMI VOWEL SIGN E
-11043 ; [.296E.0020.0002] # BRAHMI VOWEL SIGN AI
-11044 ; [.296F.0020.0002] # BRAHMI VOWEL SIGN O
-11045 ; [.2970.0020.0002] # BRAHMI VOWEL SIGN AU
-11046 ; [.2971.0020.0002] # BRAHMI VIRAMA
-1107F ; [.2972.0020.0002] # BRAHMI NUMBER JOINER
-10A00 ; [.2973.0020.0002] # KHAROSHTHI LETTER A
-10A01 ; [.2974.0020.0002] # KHAROSHTHI VOWEL SIGN I
-10A02 ; [.2975.0020.0002] # KHAROSHTHI VOWEL SIGN U
-10A03 ; [.2976.0020.0002] # KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05 ; [.2977.0020.0002] # KHAROSHTHI VOWEL SIGN E
-10A06 ; [.2978.0020.0002] # KHAROSHTHI VOWEL SIGN O
-10A0C ; [.2979.0020.0002] # KHAROSHTHI VOWEL LENGTH MARK
-10A10 ; [.297A.0020.0002] # KHAROSHTHI LETTER KA
-10A11 ; [.297B.0020.0002] # KHAROSHTHI LETTER KHA
-10A12 ; [.297C.0020.0002] # KHAROSHTHI LETTER GA
-10A13 ; [.297D.0020.0002] # KHAROSHTHI LETTER GHA
-10A15 ; [.297E.0020.0002] # KHAROSHTHI LETTER CA
-10A16 ; [.297F.0020.0002] # KHAROSHTHI LETTER CHA
-10A17 ; [.2980.0020.0002] # KHAROSHTHI LETTER JA
-10A19 ; [.2981.0020.0002] # KHAROSHTHI LETTER NYA
-10A1A ; [.2982.0020.0002] # KHAROSHTHI LETTER TTA
-10A1B ; [.2983.0020.0002] # KHAROSHTHI LETTER TTHA
-10A1C ; [.2984.0020.0002] # KHAROSHTHI LETTER DDA
-10A1D ; [.2985.0020.0002] # KHAROSHTHI LETTER DDHA
-10A1E ; [.2986.0020.0002] # KHAROSHTHI LETTER NNA
-10A1F ; [.2987.0020.0002] # KHAROSHTHI LETTER TA
-10A20 ; [.2988.0020.0002] # KHAROSHTHI LETTER THA
-10A21 ; [.2989.0020.0002] # KHAROSHTHI LETTER DA
-10A22 ; [.298A.0020.0002] # KHAROSHTHI LETTER DHA
-10A23 ; [.298B.0020.0002] # KHAROSHTHI LETTER NA
-10A24 ; [.298C.0020.0002] # KHAROSHTHI LETTER PA
-10A25 ; [.298D.0020.0002] # KHAROSHTHI LETTER PHA
-10A26 ; [.298E.0020.0002] # KHAROSHTHI LETTER BA
-10A27 ; [.298F.0020.0002] # KHAROSHTHI LETTER BHA
-10A28 ; [.2990.0020.0002] # KHAROSHTHI LETTER MA
-10A29 ; [.2991.0020.0002] # KHAROSHTHI LETTER YA
-10A2A ; [.2992.0020.0002] # KHAROSHTHI LETTER RA
-10A2B ; [.2993.0020.0002] # KHAROSHTHI LETTER LA
-10A2C ; [.2994.0020.0002] # KHAROSHTHI LETTER VA
-10A2D ; [.2995.0020.0002] # KHAROSHTHI LETTER SHA
-10A2E ; [.2996.0020.0002] # KHAROSHTHI LETTER SSA
-10A2F ; [.2997.0020.0002] # KHAROSHTHI LETTER SA
-10A30 ; [.2998.0020.0002] # KHAROSHTHI LETTER ZA
-10A31 ; [.2999.0020.0002] # KHAROSHTHI LETTER HA
-10A32 ; [.299A.0020.0002] # KHAROSHTHI LETTER KKA
-10A33 ; [.299B.0020.0002] # KHAROSHTHI LETTER TTTHA
-10A3F ; [.299C.0020.0002] # KHAROSHTHI VIRAMA
-0E01 ; [.299D.0020.0002] # THAI CHARACTER KO KAI
-0E40 0E01 ; [.299D.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KO KAI>
-0E41 0E01 ; [.299D.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KO KAI>
-0E42 0E01 ; [.299D.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KO KAI>
-0E43 0E01 ; [.299D.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KO KAI>
-0E44 0E01 ; [.299D.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KO KAI>
-0E02 ; [.299E.0020.0002] # THAI CHARACTER KHO KHAI
-0E40 0E02 ; [.299E.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHAI>
-0E41 0E02 ; [.299E.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHAI>
-0E42 0E02 ; [.299E.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHAI>
-0E43 0E02 ; [.299E.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHAI>
-0E44 0E02 ; [.299E.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHAI>
-0E03 ; [.299F.0020.0002] # THAI CHARACTER KHO KHUAT
-0E40 0E03 ; [.299F.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHUAT>
-0E41 0E03 ; [.299F.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHUAT>
-0E42 0E03 ; [.299F.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHUAT>
-0E43 0E03 ; [.299F.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHUAT>
-0E44 0E03 ; [.299F.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHUAT>
-0E04 ; [.29A0.0020.0002] # THAI CHARACTER KHO KHWAI
-0E40 0E04 ; [.29A0.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHWAI>
-0E41 0E04 ; [.29A0.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHWAI>
-0E42 0E04 ; [.29A0.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHWAI>
-0E43 0E04 ; [.29A0.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHWAI>
-0E44 0E04 ; [.29A0.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHWAI>
-0E05 ; [.29A1.0020.0002] # THAI CHARACTER KHO KHON
-0E40 0E05 ; [.29A1.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHON>
-0E41 0E05 ; [.29A1.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHON>
-0E42 0E05 ; [.29A1.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHON>
-0E43 0E05 ; [.29A1.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHON>
-0E44 0E05 ; [.29A1.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHON>
-0E06 ; [.29A2.0020.0002] # THAI CHARACTER KHO RAKHANG
-0E40 0E06 ; [.29A2.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO RAKHANG>
-0E41 0E06 ; [.29A2.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO RAKHANG>
-0E42 0E06 ; [.29A2.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO RAKHANG>
-0E43 0E06 ; [.29A2.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO RAKHANG>
-0E44 0E06 ; [.29A2.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO RAKHANG>
-0E07 ; [.29A3.0020.0002] # THAI CHARACTER NGO NGU
-0E40 0E07 ; [.29A3.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NGO NGU>
-0E41 0E07 ; [.29A3.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NGO NGU>
-0E42 0E07 ; [.29A3.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NGO NGU>
-0E43 0E07 ; [.29A3.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NGO NGU>
-0E44 0E07 ; [.29A3.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NGO NGU>
-0E08 ; [.29A4.0020.0002] # THAI CHARACTER CHO CHAN
-0E40 0E08 ; [.29A4.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHAN>
-0E41 0E08 ; [.29A4.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHAN>
-0E42 0E08 ; [.29A4.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHAN>
-0E43 0E08 ; [.29A4.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHAN>
-0E44 0E08 ; [.29A4.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHAN>
-0E09 ; [.29A5.0020.0002] # THAI CHARACTER CHO CHING
-0E40 0E09 ; [.29A5.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHING>
-0E41 0E09 ; [.29A5.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHING>
-0E42 0E09 ; [.29A5.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHING>
-0E43 0E09 ; [.29A5.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHING>
-0E44 0E09 ; [.29A5.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHING>
-0E0A ; [.29A6.0020.0002] # THAI CHARACTER CHO CHANG
-0E40 0E0A ; [.29A6.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHANG>
-0E41 0E0A ; [.29A6.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHANG>
-0E42 0E0A ; [.29A6.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHANG>
-0E43 0E0A ; [.29A6.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHANG>
-0E44 0E0A ; [.29A6.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHANG>
-0E0B ; [.29A7.0020.0002] # THAI CHARACTER SO SO
-0E40 0E0B ; [.29A7.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SO>
-0E41 0E0B ; [.29A7.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SO>
-0E42 0E0B ; [.29A7.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SO>
-0E43 0E0B ; [.29A7.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SO>
-0E44 0E0B ; [.29A7.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SO>
-0E0C ; [.29A8.0020.0002] # THAI CHARACTER CHO CHOE
-0E40 0E0C ; [.29A8.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHOE>
-0E41 0E0C ; [.29A8.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHOE>
-0E42 0E0C ; [.29A8.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHOE>
-0E43 0E0C ; [.29A8.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHOE>
-0E44 0E0C ; [.29A8.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHOE>
-0E0D ; [.29A9.0020.0002] # THAI CHARACTER YO YING
-0E40 0E0D ; [.29A9.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YING>
-0E41 0E0D ; [.29A9.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YING>
-0E42 0E0D ; [.29A9.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YING>
-0E43 0E0D ; [.29A9.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YING>
-0E44 0E0D ; [.29A9.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YING>
-0E0E ; [.29AA.0020.0002] # THAI CHARACTER DO CHADA
-0E40 0E0E ; [.29AA.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO CHADA>
-0E41 0E0E ; [.29AA.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO CHADA>
-0E42 0E0E ; [.29AA.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO CHADA>
-0E43 0E0E ; [.29AA.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO CHADA>
-0E44 0E0E ; [.29AA.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO CHADA>
-0E0F ; [.29AB.0020.0002] # THAI CHARACTER TO PATAK
-0E40 0E0F ; [.29AB.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO PATAK>
-0E41 0E0F ; [.29AB.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO PATAK>
-0E42 0E0F ; [.29AB.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO PATAK>
-0E43 0E0F ; [.29AB.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO PATAK>
-0E44 0E0F ; [.29AB.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO PATAK>
-0E10 ; [.29AC.0020.0002] # THAI CHARACTER THO THAN
-0E40 0E10 ; [.29AC.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAN>
-0E41 0E10 ; [.29AC.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAN>
-0E42 0E10 ; [.29AC.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAN>
-0E43 0E10 ; [.29AC.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAN>
-0E44 0E10 ; [.29AC.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAN>
-0E11 ; [.29AD.0020.0002] # THAI CHARACTER THO NANGMONTHO
-0E40 0E11 ; [.29AD.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO NANGMONTHO>
-0E41 0E11 ; [.29AD.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO NANGMONTHO>
-0E42 0E11 ; [.29AD.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO NANGMONTHO>
-0E43 0E11 ; [.29AD.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO NANGMONTHO>
-0E44 0E11 ; [.29AD.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO NANGMONTHO>
-0E12 ; [.29AE.0020.0002] # THAI CHARACTER THO PHUTHAO
-0E40 0E12 ; [.29AE.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO PHUTHAO>
-0E41 0E12 ; [.29AE.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO PHUTHAO>
-0E42 0E12 ; [.29AE.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO PHUTHAO>
-0E43 0E12 ; [.29AE.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO PHUTHAO>
-0E44 0E12 ; [.29AE.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO PHUTHAO>
-0E13 ; [.29AF.0020.0002] # THAI CHARACTER NO NEN
-0E40 0E13 ; [.29AF.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NEN>
-0E41 0E13 ; [.29AF.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NEN>
-0E42 0E13 ; [.29AF.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NEN>
-0E43 0E13 ; [.29AF.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NEN>
-0E44 0E13 ; [.29AF.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NEN>
-0E14 ; [.29B0.0020.0002] # THAI CHARACTER DO DEK
-0E40 0E14 ; [.29B0.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO DEK>
-0E41 0E14 ; [.29B0.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO DEK>
-0E42 0E14 ; [.29B0.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO DEK>
-0E43 0E14 ; [.29B0.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO DEK>
-0E44 0E14 ; [.29B0.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO DEK>
-0E15 ; [.29B1.0020.0002] # THAI CHARACTER TO TAO
-0E40 0E15 ; [.29B1.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO TAO>
-0E41 0E15 ; [.29B1.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO TAO>
-0E42 0E15 ; [.29B1.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO TAO>
-0E43 0E15 ; [.29B1.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO TAO>
-0E44 0E15 ; [.29B1.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO TAO>
-0E16 ; [.29B2.0020.0002] # THAI CHARACTER THO THUNG
-0E40 0E16 ; [.29B2.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THUNG>
-0E41 0E16 ; [.29B2.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THUNG>
-0E42 0E16 ; [.29B2.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THUNG>
-0E43 0E16 ; [.29B2.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THUNG>
-0E44 0E16 ; [.29B2.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THUNG>
-0E17 ; [.29B3.0020.0002] # THAI CHARACTER THO THAHAN
-0E40 0E17 ; [.29B3.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAHAN>
-0E41 0E17 ; [.29B3.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAHAN>
-0E42 0E17 ; [.29B3.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAHAN>
-0E43 0E17 ; [.29B3.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAHAN>
-0E44 0E17 ; [.29B3.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAHAN>
-0E18 ; [.29B4.0020.0002] # THAI CHARACTER THO THONG
-0E40 0E18 ; [.29B4.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THONG>
-0E41 0E18 ; [.29B4.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THONG>
-0E42 0E18 ; [.29B4.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THONG>
-0E43 0E18 ; [.29B4.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THONG>
-0E44 0E18 ; [.29B4.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THONG>
-0E19 ; [.29B5.0020.0002] # THAI CHARACTER NO NU
-0E40 0E19 ; [.29B5.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NU>
-0E41 0E19 ; [.29B5.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NU>
-0E42 0E19 ; [.29B5.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NU>
-0E43 0E19 ; [.29B5.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NU>
-0E44 0E19 ; [.29B5.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NU>
-0E1A ; [.29B6.0020.0002] # THAI CHARACTER BO BAIMAI
-0E40 0E1A ; [.29B6.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER BO BAIMAI>
-0E41 0E1A ; [.29B6.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER BO BAIMAI>
-0E42 0E1A ; [.29B6.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER BO BAIMAI>
-0E43 0E1A ; [.29B6.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER BO BAIMAI>
-0E44 0E1A ; [.29B6.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER BO BAIMAI>
-0E1B ; [.29B7.0020.0002] # THAI CHARACTER PO PLA
-0E40 0E1B ; [.29B7.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PO PLA>
-0E41 0E1B ; [.29B7.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PO PLA>
-0E42 0E1B ; [.29B7.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PO PLA>
-0E43 0E1B ; [.29B7.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PO PLA>
-0E44 0E1B ; [.29B7.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PO PLA>
-0E1C ; [.29B8.0020.0002] # THAI CHARACTER PHO PHUNG
-0E40 0E1C ; [.29B8.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHUNG>
-0E41 0E1C ; [.29B8.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHUNG>
-0E42 0E1C ; [.29B8.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHUNG>
-0E43 0E1C ; [.29B8.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHUNG>
-0E44 0E1C ; [.29B8.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHUNG>
-0E1D ; [.29B9.0020.0002] # THAI CHARACTER FO FA
-0E40 0E1D ; [.29B9.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FA>
-0E41 0E1D ; [.29B9.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FA>
-0E42 0E1D ; [.29B9.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FA>
-0E43 0E1D ; [.29B9.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FA>
-0E44 0E1D ; [.29B9.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FA>
-0E1E ; [.29BA.0020.0002] # THAI CHARACTER PHO PHAN
-0E40 0E1E ; [.29BA.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHAN>
-0E41 0E1E ; [.29BA.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHAN>
-0E42 0E1E ; [.29BA.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHAN>
-0E43 0E1E ; [.29BA.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHAN>
-0E44 0E1E ; [.29BA.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHAN>
-0E1F ; [.29BB.0020.0002] # THAI CHARACTER FO FAN
-0E40 0E1F ; [.29BB.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FAN>
-0E41 0E1F ; [.29BB.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FAN>
-0E42 0E1F ; [.29BB.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FAN>
-0E43 0E1F ; [.29BB.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FAN>
-0E44 0E1F ; [.29BB.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FAN>
-0E20 ; [.29BC.0020.0002] # THAI CHARACTER PHO SAMPHAO
-0E40 0E20 ; [.29BC.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO SAMPHAO>
-0E41 0E20 ; [.29BC.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO SAMPHAO>
-0E42 0E20 ; [.29BC.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO SAMPHAO>
-0E43 0E20 ; [.29BC.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO SAMPHAO>
-0E44 0E20 ; [.29BC.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO SAMPHAO>
-0E21 ; [.29BD.0020.0002] # THAI CHARACTER MO MA
-0E40 0E21 ; [.29BD.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER MO MA>
-0E41 0E21 ; [.29BD.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER MO MA>
-0E42 0E21 ; [.29BD.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER MO MA>
-0E43 0E21 ; [.29BD.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER MO MA>
-0E44 0E21 ; [.29BD.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER MO MA>
-0E22 ; [.29BE.0020.0002] # THAI CHARACTER YO YAK
-0E40 0E22 ; [.29BE.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YAK>
-0E41 0E22 ; [.29BE.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YAK>
-0E42 0E22 ; [.29BE.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YAK>
-0E43 0E22 ; [.29BE.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YAK>
-0E44 0E22 ; [.29BE.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YAK>
-0E23 ; [.29BF.0020.0002] # THAI CHARACTER RO RUA
-0E40 0E23 ; [.29BF.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RO RUA>
-0E41 0E23 ; [.29BF.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RO RUA>
-0E42 0E23 ; [.29BF.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RO RUA>
-0E43 0E23 ; [.29BF.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RO RUA>
-0E44 0E23 ; [.29BF.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RO RUA>
-0E24 ; [.29C0.0020.0002] # THAI CHARACTER RU
-0E40 0E24 ; [.29C0.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RU>
-0E41 0E24 ; [.29C0.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RU>
-0E42 0E24 ; [.29C0.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RU>
-0E43 0E24 ; [.29C0.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RU>
-0E44 0E24 ; [.29C0.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RU>
-0E25 ; [.29C1.0020.0002] # THAI CHARACTER LO LING
-0E40 0E25 ; [.29C1.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO LING>
-0E41 0E25 ; [.29C1.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO LING>
-0E42 0E25 ; [.29C1.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO LING>
-0E43 0E25 ; [.29C1.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO LING>
-0E44 0E25 ; [.29C1.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO LING>
-0E26 ; [.29C2.0020.0002] # THAI CHARACTER LU
-0E40 0E26 ; [.29C2.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LU>
-0E41 0E26 ; [.29C2.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LU>
-0E42 0E26 ; [.29C2.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LU>
-0E43 0E26 ; [.29C2.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LU>
-0E44 0E26 ; [.29C2.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LU>
-0E27 ; [.29C3.0020.0002] # THAI CHARACTER WO WAEN
-0E40 0E27 ; [.29C3.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER WO WAEN>
-0E41 0E27 ; [.29C3.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER WO WAEN>
-0E42 0E27 ; [.29C3.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER WO WAEN>
-0E43 0E27 ; [.29C3.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER WO WAEN>
-0E44 0E27 ; [.29C3.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER WO WAEN>
-0E28 ; [.29C4.0020.0002] # THAI CHARACTER SO SALA
-0E40 0E28 ; [.29C4.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SALA>
-0E41 0E28 ; [.29C4.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SALA>
-0E42 0E28 ; [.29C4.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SALA>
-0E43 0E28 ; [.29C4.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SALA>
-0E44 0E28 ; [.29C4.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SALA>
-0E29 ; [.29C5.0020.0002] # THAI CHARACTER SO RUSI
-0E40 0E29 ; [.29C5.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO RUSI>
-0E41 0E29 ; [.29C5.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO RUSI>
-0E42 0E29 ; [.29C5.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO RUSI>
-0E43 0E29 ; [.29C5.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO RUSI>
-0E44 0E29 ; [.29C5.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO RUSI>
-0E2A ; [.29C6.0020.0002] # THAI CHARACTER SO SUA
-0E40 0E2A ; [.29C6.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SUA>
-0E41 0E2A ; [.29C6.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SUA>
-0E42 0E2A ; [.29C6.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SUA>
-0E43 0E2A ; [.29C6.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SUA>
-0E44 0E2A ; [.29C6.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SUA>
-0E2B ; [.29C7.0020.0002] # THAI CHARACTER HO HIP
-0E40 0E2B ; [.29C7.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO HIP>
-0E41 0E2B ; [.29C7.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO HIP>
-0E42 0E2B ; [.29C7.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO HIP>
-0E43 0E2B ; [.29C7.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO HIP>
-0E44 0E2B ; [.29C7.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO HIP>
-0E2C ; [.29C8.0020.0002] # THAI CHARACTER LO CHULA
-0E40 0E2C ; [.29C8.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO CHULA>
-0E41 0E2C ; [.29C8.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO CHULA>
-0E42 0E2C ; [.29C8.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO CHULA>
-0E43 0E2C ; [.29C8.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO CHULA>
-0E44 0E2C ; [.29C8.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO CHULA>
-0E2D ; [.29C9.0020.0002] # THAI CHARACTER O ANG
-0E40 0E2D ; [.29C9.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER O ANG>
-0E41 0E2D ; [.29C9.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER O ANG>
-0E42 0E2D ; [.29C9.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER O ANG>
-0E43 0E2D ; [.29C9.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER O ANG>
-0E44 0E2D ; [.29C9.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER O ANG>
-0E2E ; [.29CA.0020.0002] # THAI CHARACTER HO NOKHUK
-0E40 0E2E ; [.29CA.0020.0002][.29D7.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO NOKHUK>
-0E41 0E2E ; [.29CA.0020.0002][.29D8.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO NOKHUK>
-0E42 0E2E ; [.29CA.0020.0002][.29D9.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO NOKHUK>
-0E43 0E2E ; [.29CA.0020.0002][.29DA.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO NOKHUK>
-0E44 0E2E ; [.29CA.0020.0002][.29DB.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO NOKHUK>
-0E2F ; [.29CB.0020.0002] # THAI CHARACTER PAIYANNOI
-0E30 ; [.29CC.0020.0002] # THAI CHARACTER SARA A
-0E31 ; [.29CD.0020.0002] # THAI CHARACTER MAI HAN-AKAT
-0E32 ; [.29CE.0020.0002] # THAI CHARACTER SARA AA
-0E33 ; [.29CF.0020.0002] # THAI CHARACTER SARA AM
-0E4D 0E32 ; [.29CF.0020.0002] # THAI CHARACTER SARA AM
-0E34 ; [.29D0.0020.0002] # THAI CHARACTER SARA I
-0E35 ; [.29D1.0020.0002] # THAI CHARACTER SARA II
-0E36 ; [.29D2.0020.0002] # THAI CHARACTER SARA UE
-0E37 ; [.29D3.0020.0002] # THAI CHARACTER SARA UEE
-0E38 ; [.29D4.0020.0002] # THAI CHARACTER SARA U
-0E39 ; [.29D5.0020.0002] # THAI CHARACTER SARA UU
-0E3A ; [.29D6.0020.0002] # THAI CHARACTER PHINTHU
-0E40 ; [.29D7.0020.0002] # THAI CHARACTER SARA E
-0E41 ; [.29D8.0020.0002] # THAI CHARACTER SARA AE
-0E42 ; [.29D9.0020.0002] # THAI CHARACTER SARA O
-0E43 ; [.29DA.0020.0002] # THAI CHARACTER SARA AI MAIMUAN
-0E44 ; [.29DB.0020.0002] # THAI CHARACTER SARA AI MAIMALAI
-0E45 ; [.29DC.0020.0002] # THAI CHARACTER LAKKHANGYAO
-0EDE ; [.29DD.0020.0002] # LAO LETTER KHMU GO
-0EC0 0EDE ; [.29DD.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU GO>
-0EC1 0EDE ; [.29DD.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU GO>
-0EC2 0EDE ; [.29DD.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU GO>
-0EC3 0EDE ; [.29DD.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU GO>
-0EC4 0EDE ; [.29DD.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU GO>
-0E81 ; [.29DE.0020.0002] # LAO LETTER KO
-0EC0 0E81 ; [.29DE.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KO>
-0EC1 0E81 ; [.29DE.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KO>
-0EC2 0E81 ; [.29DE.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KO>
-0EC3 0E81 ; [.29DE.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KO>
-0EC4 0E81 ; [.29DE.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KO>
-0E82 ; [.29DF.0020.0002] # LAO LETTER KHO SUNG
-0EC0 0E82 ; [.29DF.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO SUNG>
-0EC1 0E82 ; [.29DF.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO SUNG>
-0EC2 0E82 ; [.29DF.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO SUNG>
-0EC3 0E82 ; [.29DF.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO SUNG>
-0EC4 0E82 ; [.29DF.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO SUNG>
-0E84 ; [.29E0.0020.0002] # LAO LETTER KHO TAM
-0EC0 0E84 ; [.29E0.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO TAM>
-0EC1 0E84 ; [.29E0.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO TAM>
-0EC2 0E84 ; [.29E0.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO TAM>
-0EC3 0E84 ; [.29E0.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO TAM>
-0EC4 0E84 ; [.29E0.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO TAM>
-0E87 ; [.29E1.0020.0002] # LAO LETTER NGO
-0EC0 0E87 ; [.29E1.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NGO>
-0EC1 0E87 ; [.29E1.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NGO>
-0EC2 0E87 ; [.29E1.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NGO>
-0EC3 0E87 ; [.29E1.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NGO>
-0EC4 0E87 ; [.29E1.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NGO>
-0E88 ; [.29E2.0020.0002] # LAO LETTER CO
-0EC0 0E88 ; [.29E2.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER CO>
-0EC1 0E88 ; [.29E2.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER CO>
-0EC2 0E88 ; [.29E2.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER CO>
-0EC3 0E88 ; [.29E2.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER CO>
-0EC4 0E88 ; [.29E2.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER CO>
-0EAA ; [.29E3.0020.0002] # LAO LETTER SO SUNG
-0EC0 0EAA ; [.29E3.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO SUNG>
-0EC1 0EAA ; [.29E3.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO SUNG>
-0EC2 0EAA ; [.29E3.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO SUNG>
-0EC3 0EAA ; [.29E3.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO SUNG>
-0EC4 0EAA ; [.29E3.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO SUNG>
-0E8A ; [.29E4.0020.0002] # LAO LETTER SO TAM
-0EC0 0E8A ; [.29E4.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO TAM>
-0EC1 0E8A ; [.29E4.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO TAM>
-0EC2 0E8A ; [.29E4.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO TAM>
-0EC3 0E8A ; [.29E4.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO TAM>
-0EC4 0E8A ; [.29E4.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO TAM>
-0EDF ; [.29E5.0020.0002] # LAO LETTER KHMU NYO
-0EC0 0EDF ; [.29E5.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU NYO>
-0EC1 0EDF ; [.29E5.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU NYO>
-0EC2 0EDF ; [.29E5.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU NYO>
-0EC3 0EDF ; [.29E5.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU NYO>
-0EC4 0EDF ; [.29E5.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU NYO>
-0E8D ; [.29E6.0020.0002] # LAO LETTER NYO
-0EC0 0E8D ; [.29E6.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NYO>
-0EC1 0E8D ; [.29E6.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NYO>
-0EC2 0E8D ; [.29E6.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NYO>
-0EC3 0E8D ; [.29E6.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NYO>
-0EC4 0E8D ; [.29E6.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NYO>
-0E94 ; [.29E7.0020.0002] # LAO LETTER DO
-0EC0 0E94 ; [.29E7.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER DO>
-0EC1 0E94 ; [.29E7.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER DO>
-0EC2 0E94 ; [.29E7.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER DO>
-0EC3 0E94 ; [.29E7.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER DO>
-0EC4 0E94 ; [.29E7.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER DO>
-0E95 ; [.29E8.0020.0002] # LAO LETTER TO
-0EC0 0E95 ; [.29E8.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER TO>
-0EC1 0E95 ; [.29E8.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER TO>
-0EC2 0E95 ; [.29E8.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER TO>
-0EC3 0E95 ; [.29E8.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER TO>
-0EC4 0E95 ; [.29E8.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER TO>
-0E96 ; [.29E9.0020.0002] # LAO LETTER THO SUNG
-0EC0 0E96 ; [.29E9.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO SUNG>
-0EC1 0E96 ; [.29E9.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO SUNG>
-0EC2 0E96 ; [.29E9.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO SUNG>
-0EC3 0E96 ; [.29E9.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO SUNG>
-0EC4 0E96 ; [.29E9.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO SUNG>
-0E97 ; [.29EA.0020.0002] # LAO LETTER THO TAM
-0EC0 0E97 ; [.29EA.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO TAM>
-0EC1 0E97 ; [.29EA.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO TAM>
-0EC2 0E97 ; [.29EA.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO TAM>
-0EC3 0E97 ; [.29EA.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO TAM>
-0EC4 0E97 ; [.29EA.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO TAM>
-0E99 ; [.29EB.0020.0002] # LAO LETTER NO
-0EC0 0E99 ; [.29EB.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NO>
-0EC1 0E99 ; [.29EB.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NO>
-0EC2 0E99 ; [.29EB.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NO>
-0EC3 0E99 ; [.29EB.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NO>
-0EC4 0E99 ; [.29EB.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NO>
-0E9A ; [.29EC.0020.0002] # LAO LETTER BO
-0EC0 0E9A ; [.29EC.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER BO>
-0EC1 0E9A ; [.29EC.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER BO>
-0EC2 0E9A ; [.29EC.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER BO>
-0EC3 0E9A ; [.29EC.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER BO>
-0EC4 0E9A ; [.29EC.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER BO>
-0E9B ; [.29ED.0020.0002] # LAO LETTER PO
-0EC0 0E9B ; [.29ED.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PO>
-0EC1 0E9B ; [.29ED.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PO>
-0EC2 0E9B ; [.29ED.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PO>
-0EC3 0E9B ; [.29ED.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PO>
-0EC4 0E9B ; [.29ED.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PO>
-0E9C ; [.29EE.0020.0002] # LAO LETTER PHO SUNG
-0EC0 0E9C ; [.29EE.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO SUNG>
-0EC1 0E9C ; [.29EE.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO SUNG>
-0EC2 0E9C ; [.29EE.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO SUNG>
-0EC3 0E9C ; [.29EE.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO SUNG>
-0EC4 0E9C ; [.29EE.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO SUNG>
-0E9D ; [.29EF.0020.0002] # LAO LETTER FO TAM
-0EC0 0E9D ; [.29EF.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO TAM>
-0EC1 0E9D ; [.29EF.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO TAM>
-0EC2 0E9D ; [.29EF.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO TAM>
-0EC3 0E9D ; [.29EF.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO TAM>
-0EC4 0E9D ; [.29EF.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO TAM>
-0E9E ; [.29F0.0020.0002] # LAO LETTER PHO TAM
-0EC0 0E9E ; [.29F0.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO TAM>
-0EC1 0E9E ; [.29F0.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO TAM>
-0EC2 0E9E ; [.29F0.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO TAM>
-0EC3 0E9E ; [.29F0.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO TAM>
-0EC4 0E9E ; [.29F0.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO TAM>
-0E9F ; [.29F1.0020.0002] # LAO LETTER FO SUNG
-0EC0 0E9F ; [.29F1.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO SUNG>
-0EC1 0E9F ; [.29F1.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO SUNG>
-0EC2 0E9F ; [.29F1.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO SUNG>
-0EC3 0E9F ; [.29F1.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO SUNG>
-0EC4 0E9F ; [.29F1.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO SUNG>
-0EA1 ; [.29F2.0020.0002] # LAO LETTER MO
-0EC0 0EA1 ; [.29F2.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER MO>
-0EC1 0EA1 ; [.29F2.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER MO>
-0EC2 0EA1 ; [.29F2.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER MO>
-0EC3 0EA1 ; [.29F2.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER MO>
-0EC4 0EA1 ; [.29F2.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER MO>
-0EA2 ; [.29F3.0020.0002] # LAO LETTER YO
-0EC0 0EA2 ; [.29F3.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER YO>
-0EC1 0EA2 ; [.29F3.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER YO>
-0EC2 0EA2 ; [.29F3.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER YO>
-0EC3 0EA2 ; [.29F3.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER YO>
-0EC4 0EA2 ; [.29F3.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER YO>
-0EA3 ; [.29F4.0020.0002] # LAO LETTER LO LING
-0EC0 0EA3 ; [.29F4.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LING>
-0EC1 0EA3 ; [.29F4.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LING>
-0EC2 0EA3 ; [.29F4.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LING>
-0EC3 0EA3 ; [.29F4.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LING>
-0EC4 0EA3 ; [.29F4.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LING>
-0EA5 ; [.29F5.0020.0002] # LAO LETTER LO LOOT
-0EC0 0EA5 ; [.29F5.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LOOT>
-0EC1 0EA5 ; [.29F5.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LOOT>
-0EC2 0EA5 ; [.29F5.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LOOT>
-0EC3 0EA5 ; [.29F5.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LOOT>
-0EC4 0EA5 ; [.29F5.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LOOT>
-0EA7 ; [.29F6.0020.0002] # LAO LETTER WO
-0EC0 0EA7 ; [.29F6.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER WO>
-0EC1 0EA7 ; [.29F6.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER WO>
-0EC2 0EA7 ; [.29F6.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER WO>
-0EC3 0EA7 ; [.29F6.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER WO>
-0EC4 0EA7 ; [.29F6.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER WO>
-0EAB ; [.29F7.0020.0002] # LAO LETTER HO SUNG
-0EDC ; [.29F7.0020.0004][.29EB.0020.0004] # LAO HO NO
-0EC0 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO HO NO>
-0EC1 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO HO NO>
-0EC2 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO HO NO>
-0EC3 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO HO NO>
-0EC4 0EDC ; [.29F7.0020.0004][.29EB.0020.0004][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO HO NO>
-0EDD ; [.29F7.0020.0004][.29F2.0020.0004] # LAO HO MO
-0EC0 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO HO MO>
-0EC1 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO HO MO>
-0EC2 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO HO MO>
-0EC3 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO HO MO>
-0EC4 0EDD ; [.29F7.0020.0004][.29F2.0020.0004][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO HO MO>
-0EC0 0EAB ; [.29F7.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO SUNG>
-0EC1 0EAB ; [.29F7.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO SUNG>
-0EC2 0EAB ; [.29F7.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO SUNG>
-0EC3 0EAB ; [.29F7.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO SUNG>
-0EC4 0EAB ; [.29F7.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO SUNG>
-0EAD ; [.29F8.0020.0002] # LAO LETTER O
-0EC0 0EAD ; [.29F8.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER O>
-0EC1 0EAD ; [.29F8.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER O>
-0EC2 0EAD ; [.29F8.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER O>
-0EC3 0EAD ; [.29F8.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER O>
-0EC4 0EAD ; [.29F8.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER O>
-0EAE ; [.29F9.0020.0002] # LAO LETTER HO TAM
-0EC0 0EAE ; [.29F9.0020.0002][.2A08.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO TAM>
-0EC1 0EAE ; [.29F9.0020.0002][.2A09.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO TAM>
-0EC2 0EAE ; [.29F9.0020.0002][.2A0A.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO TAM>
-0EC3 0EAE ; [.29F9.0020.0002][.2A0B.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO TAM>
-0EC4 0EAE ; [.29F9.0020.0002][.2A0C.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO TAM>
-0EAF ; [.29FA.0020.0002] # LAO ELLIPSIS
-0EB0 ; [.29FB.0020.0002] # LAO VOWEL SIGN A
-0EB1 ; [.29FC.0020.0002] # LAO VOWEL SIGN MAI KAN
-0EB2 ; [.29FD.0020.0002] # LAO VOWEL SIGN AA
-0EB3 ; [.29FE.0020.0002] # LAO VOWEL SIGN AM
-0ECD 0EB2 ; [.29FE.0020.0002] # LAO VOWEL SIGN AM
-0EB4 ; [.29FF.0020.0002] # LAO VOWEL SIGN I
-0EB5 ; [.2A00.0020.0002] # LAO VOWEL SIGN II
-0EB6 ; [.2A01.0020.0002] # LAO VOWEL SIGN Y
-0EB7 ; [.2A02.0020.0002] # LAO VOWEL SIGN YY
-0EB8 ; [.2A03.0020.0002] # LAO VOWEL SIGN U
-0EB9 ; [.2A04.0020.0002] # LAO VOWEL SIGN UU
-0EBB ; [.2A05.0020.0002] # LAO VOWEL SIGN MAI KON
-0EBC ; [.2A06.0020.0002] # LAO SEMIVOWEL SIGN LO
-0EBD ; [.2A07.0020.0002] # LAO SEMIVOWEL SIGN NYO
-0EC0 ; [.2A08.0020.0002] # LAO VOWEL SIGN E
-0EC1 ; [.2A09.0020.0002] # LAO VOWEL SIGN EI
-0EC2 ; [.2A0A.0020.0002] # LAO VOWEL SIGN O
-0EC3 ; [.2A0B.0020.0002] # LAO VOWEL SIGN AY
-0EC4 ; [.2A0C.0020.0002] # LAO VOWEL SIGN AI
-AA80 ; [.2A0D.0020.0002] # TAI VIET LETTER LOW KO
-AAB5 AA80 ; [.2A0D.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KO>
-AAB6 AA80 ; [.2A0D.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KO>
-AAB9 AA80 ; [.2A0D.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KO>
-AABB AA80 ; [.2A0D.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KO>
-AABC AA80 ; [.2A0D.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KO>
-AA81 ; [.2A0E.0020.0002] # TAI VIET LETTER HIGH KO
-AAB5 AA81 ; [.2A0E.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KO>
-AAB6 AA81 ; [.2A0E.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KO>
-AAB9 AA81 ; [.2A0E.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KO>
-AABB AA81 ; [.2A0E.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KO>
-AABC AA81 ; [.2A0E.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KO>
-AA82 ; [.2A0F.0020.0002] # TAI VIET LETTER LOW KHO
-AAB5 AA82 ; [.2A0F.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHO>
-AAB6 AA82 ; [.2A0F.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHO>
-AAB9 AA82 ; [.2A0F.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHO>
-AABB AA82 ; [.2A0F.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHO>
-AABC AA82 ; [.2A0F.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHO>
-AA83 ; [.2A10.0020.0002] # TAI VIET LETTER HIGH KHO
-AAB5 AA83 ; [.2A10.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHO>
-AAB6 AA83 ; [.2A10.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHO>
-AAB9 AA83 ; [.2A10.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHO>
-AABB AA83 ; [.2A10.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHO>
-AABC AA83 ; [.2A10.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHO>
-AA84 ; [.2A11.0020.0002] # TAI VIET LETTER LOW KHHO
-AAB5 AA84 ; [.2A11.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHHO>
-AAB6 AA84 ; [.2A11.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHHO>
-AAB9 AA84 ; [.2A11.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHHO>
-AABB AA84 ; [.2A11.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHHO>
-AABC AA84 ; [.2A11.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHHO>
-AA85 ; [.2A12.0020.0002] # TAI VIET LETTER HIGH KHHO
-AAB5 AA85 ; [.2A12.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHHO>
-AAB6 AA85 ; [.2A12.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHHO>
-AAB9 AA85 ; [.2A12.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHHO>
-AABB AA85 ; [.2A12.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHHO>
-AABC AA85 ; [.2A12.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHHO>
-AA86 ; [.2A13.0020.0002] # TAI VIET LETTER LOW GO
-AAB5 AA86 ; [.2A13.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW GO>
-AAB6 AA86 ; [.2A13.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW GO>
-AAB9 AA86 ; [.2A13.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW GO>
-AABB AA86 ; [.2A13.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW GO>
-AABC AA86 ; [.2A13.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW GO>
-AA87 ; [.2A14.0020.0002] # TAI VIET LETTER HIGH GO
-AAB5 AA87 ; [.2A14.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH GO>
-AAB6 AA87 ; [.2A14.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH GO>
-AAB9 AA87 ; [.2A14.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH GO>
-AABB AA87 ; [.2A14.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH GO>
-AABC AA87 ; [.2A14.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH GO>
-AA88 ; [.2A15.0020.0002] # TAI VIET LETTER LOW NGO
-AAB5 AA88 ; [.2A15.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NGO>
-AAB6 AA88 ; [.2A15.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NGO>
-AAB9 AA88 ; [.2A15.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NGO>
-AABB AA88 ; [.2A15.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NGO>
-AABC AA88 ; [.2A15.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NGO>
-AA89 ; [.2A16.0020.0002] # TAI VIET LETTER HIGH NGO
-AAB5 AA89 ; [.2A16.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NGO>
-AAB6 AA89 ; [.2A16.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NGO>
-AAB9 AA89 ; [.2A16.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NGO>
-AABB AA89 ; [.2A16.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NGO>
-AABC AA89 ; [.2A16.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NGO>
-AA8A ; [.2A17.0020.0002] # TAI VIET LETTER LOW CO
-AAB5 AA8A ; [.2A17.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CO>
-AAB6 AA8A ; [.2A17.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CO>
-AAB9 AA8A ; [.2A17.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CO>
-AABB AA8A ; [.2A17.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CO>
-AABC AA8A ; [.2A17.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CO>
-AA8B ; [.2A18.0020.0002] # TAI VIET LETTER HIGH CO
-AAB5 AA8B ; [.2A18.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CO>
-AAB6 AA8B ; [.2A18.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CO>
-AAB9 AA8B ; [.2A18.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CO>
-AABB AA8B ; [.2A18.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CO>
-AABC AA8B ; [.2A18.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CO>
-AA8C ; [.2A19.0020.0002] # TAI VIET LETTER LOW CHO
-AAB5 AA8C ; [.2A19.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CHO>
-AAB6 AA8C ; [.2A19.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CHO>
-AAB9 AA8C ; [.2A19.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CHO>
-AABB AA8C ; [.2A19.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CHO>
-AABC AA8C ; [.2A19.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CHO>
-AA8D ; [.2A1A.0020.0002] # TAI VIET LETTER HIGH CHO
-AAB5 AA8D ; [.2A1A.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CHO>
-AAB6 AA8D ; [.2A1A.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CHO>
-AAB9 AA8D ; [.2A1A.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CHO>
-AABB AA8D ; [.2A1A.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CHO>
-AABC AA8D ; [.2A1A.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CHO>
-AA8E ; [.2A1B.0020.0002] # TAI VIET LETTER LOW SO
-AAB5 AA8E ; [.2A1B.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW SO>
-AAB6 AA8E ; [.2A1B.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW SO>
-AAB9 AA8E ; [.2A1B.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW SO>
-AABB AA8E ; [.2A1B.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW SO>
-AABC AA8E ; [.2A1B.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW SO>
-AA8F ; [.2A1C.0020.0002] # TAI VIET LETTER HIGH SO
-AAB5 AA8F ; [.2A1C.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH SO>
-AAB6 AA8F ; [.2A1C.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH SO>
-AAB9 AA8F ; [.2A1C.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH SO>
-AABB AA8F ; [.2A1C.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH SO>
-AABC AA8F ; [.2A1C.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH SO>
-AA90 ; [.2A1D.0020.0002] # TAI VIET LETTER LOW NYO
-AAB5 AA90 ; [.2A1D.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NYO>
-AAB6 AA90 ; [.2A1D.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NYO>
-AAB9 AA90 ; [.2A1D.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NYO>
-AABB AA90 ; [.2A1D.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NYO>
-AABC AA90 ; [.2A1D.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NYO>
-AA91 ; [.2A1E.0020.0002] # TAI VIET LETTER HIGH NYO
-AAB5 AA91 ; [.2A1E.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NYO>
-AAB6 AA91 ; [.2A1E.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NYO>
-AAB9 AA91 ; [.2A1E.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NYO>
-AABB AA91 ; [.2A1E.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NYO>
-AABC AA91 ; [.2A1E.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NYO>
-AA92 ; [.2A1F.0020.0002] # TAI VIET LETTER LOW DO
-AAB5 AA92 ; [.2A1F.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW DO>
-AAB6 AA92 ; [.2A1F.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW DO>
-AAB9 AA92 ; [.2A1F.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW DO>
-AABB AA92 ; [.2A1F.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW DO>
-AABC AA92 ; [.2A1F.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW DO>
-AA93 ; [.2A20.0020.0002] # TAI VIET LETTER HIGH DO
-AAB5 AA93 ; [.2A20.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH DO>
-AAB6 AA93 ; [.2A20.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH DO>
-AAB9 AA93 ; [.2A20.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH DO>
-AABB AA93 ; [.2A20.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH DO>
-AABC AA93 ; [.2A20.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH DO>
-AA94 ; [.2A21.0020.0002] # TAI VIET LETTER LOW TO
-AAB5 AA94 ; [.2A21.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW TO>
-AAB6 AA94 ; [.2A21.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW TO>
-AAB9 AA94 ; [.2A21.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW TO>
-AABB AA94 ; [.2A21.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW TO>
-AABC AA94 ; [.2A21.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW TO>
-AA95 ; [.2A22.0020.0002] # TAI VIET LETTER HIGH TO
-AAB5 AA95 ; [.2A22.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH TO>
-AAB6 AA95 ; [.2A22.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH TO>
-AAB9 AA95 ; [.2A22.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH TO>
-AABB AA95 ; [.2A22.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH TO>
-AABC AA95 ; [.2A22.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH TO>
-AA96 ; [.2A23.0020.0002] # TAI VIET LETTER LOW THO
-AAB5 AA96 ; [.2A23.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW THO>
-AAB6 AA96 ; [.2A23.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW THO>
-AAB9 AA96 ; [.2A23.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW THO>
-AABB AA96 ; [.2A23.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW THO>
-AABC AA96 ; [.2A23.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW THO>
-AA97 ; [.2A24.0020.0002] # TAI VIET LETTER HIGH THO
-AAB5 AA97 ; [.2A24.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH THO>
-AAB6 AA97 ; [.2A24.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH THO>
-AAB9 AA97 ; [.2A24.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH THO>
-AABB AA97 ; [.2A24.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH THO>
-AABC AA97 ; [.2A24.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH THO>
-AA98 ; [.2A25.0020.0002] # TAI VIET LETTER LOW NO
-AAB5 AA98 ; [.2A25.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NO>
-AAB6 AA98 ; [.2A25.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NO>
-AAB9 AA98 ; [.2A25.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NO>
-AABB AA98 ; [.2A25.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NO>
-AABC AA98 ; [.2A25.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NO>
-AA99 ; [.2A26.0020.0002] # TAI VIET LETTER HIGH NO
-AAB5 AA99 ; [.2A26.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NO>
-AAB6 AA99 ; [.2A26.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NO>
-AAB9 AA99 ; [.2A26.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NO>
-AABB AA99 ; [.2A26.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NO>
-AABC AA99 ; [.2A26.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NO>
-AA9A ; [.2A27.0020.0002] # TAI VIET LETTER LOW BO
-AAB5 AA9A ; [.2A27.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW BO>
-AAB6 AA9A ; [.2A27.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW BO>
-AAB9 AA9A ; [.2A27.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW BO>
-AABB AA9A ; [.2A27.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW BO>
-AABC AA9A ; [.2A27.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW BO>
-AA9B ; [.2A28.0020.0002] # TAI VIET LETTER HIGH BO
-AAB5 AA9B ; [.2A28.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH BO>
-AAB6 AA9B ; [.2A28.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH BO>
-AAB9 AA9B ; [.2A28.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH BO>
-AABB AA9B ; [.2A28.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH BO>
-AABC AA9B ; [.2A28.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH BO>
-AA9C ; [.2A29.0020.0002] # TAI VIET LETTER LOW PO
-AAB5 AA9C ; [.2A29.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PO>
-AAB6 AA9C ; [.2A29.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PO>
-AAB9 AA9C ; [.2A29.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PO>
-AABB AA9C ; [.2A29.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PO>
-AABC AA9C ; [.2A29.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PO>
-AA9D ; [.2A2A.0020.0002] # TAI VIET LETTER HIGH PO
-AAB5 AA9D ; [.2A2A.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PO>
-AAB6 AA9D ; [.2A2A.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PO>
-AAB9 AA9D ; [.2A2A.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PO>
-AABB AA9D ; [.2A2A.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PO>
-AABC AA9D ; [.2A2A.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PO>
-AA9E ; [.2A2B.0020.0002] # TAI VIET LETTER LOW PHO
-AAB5 AA9E ; [.2A2B.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PHO>
-AAB6 AA9E ; [.2A2B.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PHO>
-AAB9 AA9E ; [.2A2B.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PHO>
-AABB AA9E ; [.2A2B.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PHO>
-AABC AA9E ; [.2A2B.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PHO>
-AA9F ; [.2A2C.0020.0002] # TAI VIET LETTER HIGH PHO
-AAB5 AA9F ; [.2A2C.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PHO>
-AAB6 AA9F ; [.2A2C.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PHO>
-AAB9 AA9F ; [.2A2C.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PHO>
-AABB AA9F ; [.2A2C.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PHO>
-AABC AA9F ; [.2A2C.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PHO>
-AAA0 ; [.2A2D.0020.0002] # TAI VIET LETTER LOW FO
-AAB5 AAA0 ; [.2A2D.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW FO>
-AAB6 AAA0 ; [.2A2D.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW FO>
-AAB9 AAA0 ; [.2A2D.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW FO>
-AABB AAA0 ; [.2A2D.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW FO>
-AABC AAA0 ; [.2A2D.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW FO>
-AAA1 ; [.2A2E.0020.0002] # TAI VIET LETTER HIGH FO
-AAB5 AAA1 ; [.2A2E.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH FO>
-AAB6 AAA1 ; [.2A2E.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH FO>
-AAB9 AAA1 ; [.2A2E.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH FO>
-AABB AAA1 ; [.2A2E.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH FO>
-AABC AAA1 ; [.2A2E.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH FO>
-AAA2 ; [.2A2F.0020.0002] # TAI VIET LETTER LOW MO
-AAB5 AAA2 ; [.2A2F.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW MO>
-AAB6 AAA2 ; [.2A2F.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW MO>
-AAB9 AAA2 ; [.2A2F.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW MO>
-AABB AAA2 ; [.2A2F.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW MO>
-AABC AAA2 ; [.2A2F.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW MO>
-AAA3 ; [.2A30.0020.0002] # TAI VIET LETTER HIGH MO
-AAB5 AAA3 ; [.2A30.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH MO>
-AAB6 AAA3 ; [.2A30.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH MO>
-AAB9 AAA3 ; [.2A30.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH MO>
-AABB AAA3 ; [.2A30.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH MO>
-AABC AAA3 ; [.2A30.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH MO>
-AAA4 ; [.2A31.0020.0002] # TAI VIET LETTER LOW YO
-AAB5 AAA4 ; [.2A31.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW YO>
-AAB6 AAA4 ; [.2A31.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW YO>
-AAB9 AAA4 ; [.2A31.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW YO>
-AABB AAA4 ; [.2A31.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW YO>
-AABC AAA4 ; [.2A31.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW YO>
-AAA5 ; [.2A32.0020.0002] # TAI VIET LETTER HIGH YO
-AAB5 AAA5 ; [.2A32.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH YO>
-AAB6 AAA5 ; [.2A32.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH YO>
-AAB9 AAA5 ; [.2A32.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH YO>
-AABB AAA5 ; [.2A32.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH YO>
-AABC AAA5 ; [.2A32.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH YO>
-AAA6 ; [.2A33.0020.0002] # TAI VIET LETTER LOW RO
-AAB5 AAA6 ; [.2A33.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW RO>
-AAB6 AAA6 ; [.2A33.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW RO>
-AAB9 AAA6 ; [.2A33.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW RO>
-AABB AAA6 ; [.2A33.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW RO>
-AABC AAA6 ; [.2A33.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW RO>
-AAA7 ; [.2A34.0020.0002] # TAI VIET LETTER HIGH RO
-AAB5 AAA7 ; [.2A34.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH RO>
-AAB6 AAA7 ; [.2A34.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH RO>
-AAB9 AAA7 ; [.2A34.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH RO>
-AABB AAA7 ; [.2A34.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH RO>
-AABC AAA7 ; [.2A34.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH RO>
-AAA8 ; [.2A35.0020.0002] # TAI VIET LETTER LOW LO
-AAB5 AAA8 ; [.2A35.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW LO>
-AAB6 AAA8 ; [.2A35.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW LO>
-AAB9 AAA8 ; [.2A35.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW LO>
-AABB AAA8 ; [.2A35.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW LO>
-AABC AAA8 ; [.2A35.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW LO>
-AAA9 ; [.2A36.0020.0002] # TAI VIET LETTER HIGH LO
-AAB5 AAA9 ; [.2A36.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH LO>
-AAB6 AAA9 ; [.2A36.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH LO>
-AAB9 AAA9 ; [.2A36.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH LO>
-AABB AAA9 ; [.2A36.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH LO>
-AABC AAA9 ; [.2A36.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH LO>
-AAAA ; [.2A37.0020.0002] # TAI VIET LETTER LOW VO
-AAB5 AAAA ; [.2A37.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW VO>
-AAB6 AAAA ; [.2A37.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW VO>
-AAB9 AAAA ; [.2A37.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW VO>
-AABB AAAA ; [.2A37.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW VO>
-AABC AAAA ; [.2A37.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW VO>
-AAAB ; [.2A38.0020.0002] # TAI VIET LETTER HIGH VO
-AAB5 AAAB ; [.2A38.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH VO>
-AAB6 AAAB ; [.2A38.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH VO>
-AAB9 AAAB ; [.2A38.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH VO>
-AABB AAAB ; [.2A38.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH VO>
-AABC AAAB ; [.2A38.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH VO>
-AAAC ; [.2A39.0020.0002] # TAI VIET LETTER LOW HO
-AAB5 AAAC ; [.2A39.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW HO>
-AAB6 AAAC ; [.2A39.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW HO>
-AAB9 AAAC ; [.2A39.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW HO>
-AABB AAAC ; [.2A39.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW HO>
-AABC AAAC ; [.2A39.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW HO>
-AAAD ; [.2A3A.0020.0002] # TAI VIET LETTER HIGH HO
-AAB5 AAAD ; [.2A3A.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH HO>
-AAB6 AAAD ; [.2A3A.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH HO>
-AAB9 AAAD ; [.2A3A.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH HO>
-AABB AAAD ; [.2A3A.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH HO>
-AABC AAAD ; [.2A3A.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH HO>
-AAAE ; [.2A3B.0020.0002] # TAI VIET LETTER LOW O
-AAB5 AAAE ; [.2A3B.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW O>
-AAB6 AAAE ; [.2A3B.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW O>
-AAB9 AAAE ; [.2A3B.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW O>
-AABB AAAE ; [.2A3B.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW O>
-AABC AAAE ; [.2A3B.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW O>
-AAAF ; [.2A3C.0020.0002] # TAI VIET LETTER HIGH O
-AAB5 AAAF ; [.2A3C.0020.0002][.2A42.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH O>
-AAB6 AAAF ; [.2A3C.0020.0002][.2A43.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH O>
-AAB9 AAAF ; [.2A3C.0020.0002][.2A46.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH O>
-AABB AAAF ; [.2A3C.0020.0002][.2A48.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH O>
-AABC AAAF ; [.2A3C.0020.0002][.2A49.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH O>
-AAB0 ; [.2A3D.0020.0002] # TAI VIET MAI KANG
-AAB1 ; [.2A3E.0020.0002] # TAI VIET VOWEL AA
-AAB2 ; [.2A3F.0020.0002] # TAI VIET VOWEL I
-AAB3 ; [.2A40.0020.0002] # TAI VIET VOWEL UE
-AAB4 ; [.2A41.0020.0002] # TAI VIET VOWEL U
-AAB5 ; [.2A42.0020.0002] # TAI VIET VOWEL E
-AAB6 ; [.2A43.0020.0002] # TAI VIET VOWEL O
-AAB7 ; [.2A44.0020.0002] # TAI VIET MAI KHIT
-AAB8 ; [.2A45.0020.0002] # TAI VIET VOWEL IA
-AAB9 ; [.2A46.0020.0002] # TAI VIET VOWEL UEA
-AABA ; [.2A47.0020.0002] # TAI VIET VOWEL UA
-AABB ; [.2A48.0020.0002] # TAI VIET VOWEL AUE
-AABC ; [.2A49.0020.0002] # TAI VIET VOWEL AY
-AABD ; [.2A4A.0020.0002] # TAI VIET VOWEL AN
-AABE ; [.2A4B.0020.0002] # TAI VIET VOWEL AM
-AAC0 ; [.2A4C.0020.0002] # TAI VIET TONE MAI NUENG
-AAC2 ; [.2A4D.0020.0002] # TAI VIET TONE MAI SONG
-AADB ; [.2A4E.0020.0002] # TAI VIET SYMBOL KON
-AADC ; [.2A4F.0020.0002] # TAI VIET SYMBOL NUENG
-0F40 ; [.2A50.0020.0002] # TIBETAN LETTER KA
-0F69 ; [.2A50.0020.0002][.2A91.0020.0002] # TIBETAN LETTER KSSA
-0F90 ; [.2A51.0020.0002] # TIBETAN SUBJOINED LETTER KA
-0FB9 ; [.2A51.0020.0002][.2A91.0020.0002] # TIBETAN SUBJOINED LETTER KSSA
-0F6B ; [.2A52.0020.0002] # TIBETAN LETTER KKA
-0F41 ; [.2A53.0020.0002] # TIBETAN LETTER KHA
-0F91 ; [.2A54.0020.0002] # TIBETAN SUBJOINED LETTER KHA
-0F42 ; [.2A55.0020.0002] # TIBETAN LETTER GA
-0F43 ; [.2A55.0020.0002][.2A95.0020.0002] # TIBETAN LETTER GHA
-0F92 ; [.2A56.0020.0002] # TIBETAN SUBJOINED LETTER GA
-0F93 ; [.2A56.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER GHA
-0F44 ; [.2A57.0020.0002] # TIBETAN LETTER NGA
-0F94 ; [.2A58.0020.0002] # TIBETAN SUBJOINED LETTER NGA
-0F45 ; [.2A59.0020.0002] # TIBETAN LETTER CA
-0F95 ; [.2A5A.0020.0002] # TIBETAN SUBJOINED LETTER CA
-0F46 ; [.2A5B.0020.0002] # TIBETAN LETTER CHA
-0F96 ; [.2A5C.0020.0002] # TIBETAN SUBJOINED LETTER CHA
-0F47 ; [.2A5D.0020.0002] # TIBETAN LETTER JA
-0F97 ; [.2A5E.0020.0002] # TIBETAN SUBJOINED LETTER JA
-0F49 ; [.2A5F.0020.0002] # TIBETAN LETTER NYA
-0F99 ; [.2A60.0020.0002] # TIBETAN SUBJOINED LETTER NYA
-0F4A ; [.2A61.0020.0002] # TIBETAN LETTER TTA
-0F9A ; [.2A62.0020.0002] # TIBETAN SUBJOINED LETTER TTA
-0F4B ; [.2A63.0020.0002] # TIBETAN LETTER TTHA
-0F9B ; [.2A64.0020.0002] # TIBETAN SUBJOINED LETTER TTHA
-0F4C ; [.2A65.0020.0002] # TIBETAN LETTER DDA
-0F4D ; [.2A65.0020.0002][.2A95.0020.0002] # TIBETAN LETTER DDHA
-0F9C ; [.2A66.0020.0002] # TIBETAN SUBJOINED LETTER DDA
-0F9D ; [.2A66.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER DDHA
-0F4E ; [.2A67.0020.0002] # TIBETAN LETTER NNA
-0F9E ; [.2A68.0020.0002] # TIBETAN SUBJOINED LETTER NNA
-0F4F ; [.2A69.0020.0002] # TIBETAN LETTER TA
-0F9F ; [.2A6A.0020.0002] # TIBETAN SUBJOINED LETTER TA
-0F50 ; [.2A6B.0020.0002] # TIBETAN LETTER THA
-0FA0 ; [.2A6C.0020.0002] # TIBETAN SUBJOINED LETTER THA
-0F51 ; [.2A6D.0020.0002] # TIBETAN LETTER DA
-0F52 ; [.2A6D.0020.0002][.2A95.0020.0002] # TIBETAN LETTER DHA
-0FA1 ; [.2A6E.0020.0002] # TIBETAN SUBJOINED LETTER DA
-0FA2 ; [.2A6E.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER DHA
-0F53 ; [.2A6F.0020.0002] # TIBETAN LETTER NA
-0FA3 ; [.2A70.0020.0002] # TIBETAN SUBJOINED LETTER NA
-0F54 ; [.2A71.0020.0002] # TIBETAN LETTER PA
-0FA4 ; [.2A72.0020.0002] # TIBETAN SUBJOINED LETTER PA
-0F55 ; [.2A73.0020.0002] # TIBETAN LETTER PHA
-0FA5 ; [.2A74.0020.0002] # TIBETAN SUBJOINED LETTER PHA
-0F56 ; [.2A75.0020.0002] # TIBETAN LETTER BA
-0F57 ; [.2A75.0020.0002][.2A95.0020.0002] # TIBETAN LETTER BHA
-0FA6 ; [.2A76.0020.0002] # TIBETAN SUBJOINED LETTER BA
-0FA7 ; [.2A76.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER BHA
-0F58 ; [.2A77.0020.0002] # TIBETAN LETTER MA
-0FA8 ; [.2A78.0020.0002] # TIBETAN SUBJOINED LETTER MA
-0F59 ; [.2A79.0020.0002] # TIBETAN LETTER TSA
-0FA9 ; [.2A7A.0020.0002] # TIBETAN SUBJOINED LETTER TSA
-0F5A ; [.2A7B.0020.0002] # TIBETAN LETTER TSHA
-0FAA ; [.2A7C.0020.0002] # TIBETAN SUBJOINED LETTER TSHA
-0F5B ; [.2A7D.0020.0002] # TIBETAN LETTER DZA
-0F5C ; [.2A7D.0020.0002][.2A95.0020.0002] # TIBETAN LETTER DZHA
-0FAB ; [.2A7E.0020.0002] # TIBETAN SUBJOINED LETTER DZA
-0FAC ; [.2A7E.0020.0002][.2A95.0020.0002] # TIBETAN SUBJOINED LETTER DZHA
-0F5D ; [.2A7F.0020.0002] # TIBETAN LETTER WA
-0FAD ; [.2A80.0020.0002] # TIBETAN SUBJOINED LETTER WA
-0FBA ; [.2A80.0020.0004][.0000.0109.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM WA
-0F5E ; [.2A81.0020.0002] # TIBETAN LETTER ZHA
-0FAE ; [.2A82.0020.0002] # TIBETAN SUBJOINED LETTER ZHA
-0F5F ; [.2A83.0020.0002] # TIBETAN LETTER ZA
-0FAF ; [.2A84.0020.0002] # TIBETAN SUBJOINED LETTER ZA
-0F60 ; [.2A85.0020.0002] # TIBETAN LETTER -A
-0FB0 ; [.2A86.0020.0002] # TIBETAN SUBJOINED LETTER -A
-0F61 ; [.2A87.0020.0002] # TIBETAN LETTER YA
-0FB1 ; [.2A88.0020.0002] # TIBETAN SUBJOINED LETTER YA
-0FBB ; [.2A88.0020.0004][.0000.0109.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM YA
-0F62 ; [.2A89.0020.0002] # TIBETAN LETTER RA
-0F6A ; [.2A89.0020.0004][.0000.0109.0004] # TIBETAN LETTER FIXED-FORM RA
-0FB2 ; [.2A8A.0020.0002] # TIBETAN SUBJOINED LETTER RA
-0FBC ; [.2A8A.0020.0004][.0000.0109.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0F6C ; [.2A8B.0020.0002] # TIBETAN LETTER RRA
-0F63 ; [.2A8C.0020.0002] # TIBETAN LETTER LA
-0FB3 ; [.2A8D.0020.0002] # TIBETAN SUBJOINED LETTER LA
-0F64 ; [.2A8E.0020.0002] # TIBETAN LETTER SHA
-0FB4 ; [.2A8F.0020.0002] # TIBETAN SUBJOINED LETTER SHA
-0F65 ; [.2A90.0020.0002] # TIBETAN LETTER SSA
-0FB5 ; [.2A91.0020.0002] # TIBETAN SUBJOINED LETTER SSA
-0F66 ; [.2A92.0020.0002] # TIBETAN LETTER SA
-0FB6 ; [.2A93.0020.0002] # TIBETAN SUBJOINED LETTER SA
-0F67 ; [.2A94.0020.0002] # TIBETAN LETTER HA
-0FB7 ; [.2A95.0020.0002] # TIBETAN SUBJOINED LETTER HA
-0F68 ; [.2A96.0020.0002] # TIBETAN LETTER A
-0F00 ; [.2A96.0020.0004][.2AAD.0020.0004][.0000.00BE.0004] # TIBETAN SYLLABLE OM
-0FB8 ; [.2A97.0020.0002] # TIBETAN SUBJOINED LETTER A
-0F88 ; [.2A98.0020.0002] # TIBETAN SIGN LCE TSA CAN
-0F8D ; [.2A99.0020.0002] # TIBETAN SUBJOINED SIGN LCE TSA CAN
-0F89 ; [.2A9A.0020.0002] # TIBETAN SIGN MCHU CAN
-0F8E ; [.2A9B.0020.0002] # TIBETAN SUBJOINED SIGN MCHU CAN
-0F8C ; [.2A9C.0020.0002] # TIBETAN SIGN INVERTED MCHU CAN
-0F8F ; [.2A9D.0020.0002] # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
-0F8A ; [.2A9E.0020.0002] # TIBETAN SIGN GRU CAN RGYINGS
-0F8B ; [.2A9F.0020.0002] # TIBETAN SIGN GRU MED RGYINGS
-0F71 ; [.2AA0.0020.0002] # TIBETAN VOWEL SIGN AA
-0F72 ; [.2AA1.0020.0002] # TIBETAN VOWEL SIGN I
-0F73 ; [.2AA2.0020.0002] # TIBETAN VOWEL SIGN II
-0F71 0F72 ; [.2AA2.0020.0002] # TIBETAN VOWEL SIGN II
-0F80 ; [.2AA3.0020.0002] # TIBETAN VOWEL SIGN REVERSED I
-0F81 ; [.2AA4.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
-0F71 0F80 ; [.2AA4.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
-0F74 ; [.2AA5.0020.0002] # TIBETAN VOWEL SIGN U
-0F75 ; [.2AA6.0020.0002] # TIBETAN VOWEL SIGN UU
-0F71 0F74 ; [.2AA6.0020.0002] # TIBETAN VOWEL SIGN UU
-0F76 ; [.2AA7.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
-0FB2 0F80 ; [.2AA7.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
-0F77 ; [.2AA8.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0FB2 0F71 0F80 ; [.2AA8.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0FB2 0F81 ; [.2AA8.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
-0F78 ; [.2AA9.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
-0FB3 0F80 ; [.2AA9.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
-0F79 ; [.2AAA.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0FB3 0F71 0F80 ; [.2AAA.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0FB3 0F81 ; [.2AAA.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
-0F7A ; [.2AAB.0020.0002] # TIBETAN VOWEL SIGN E
-0F7B ; [.2AAC.0020.0002] # TIBETAN VOWEL SIGN EE
-0F7C ; [.2AAD.0020.0002] # TIBETAN VOWEL SIGN O
-0F7D ; [.2AAE.0020.0002] # TIBETAN VOWEL SIGN OO
-0F84 ; [.2AAF.0020.0002] # TIBETAN MARK HALANTA
-1C00 ; [.2AB0.0020.0002] # LEPCHA LETTER KA
-1C01 ; [.2AB1.0020.0002] # LEPCHA LETTER KLA
-1C02 ; [.2AB2.0020.0002] # LEPCHA LETTER KHA
-1C03 ; [.2AB3.0020.0002] # LEPCHA LETTER GA
-1C04 ; [.2AB4.0020.0002] # LEPCHA LETTER GLA
-1C05 ; [.2AB5.0020.0002] # LEPCHA LETTER NGA
-1C06 ; [.2AB6.0020.0002] # LEPCHA LETTER CA
-1C07 ; [.2AB7.0020.0002] # LEPCHA LETTER CHA
-1C08 ; [.2AB8.0020.0002] # LEPCHA LETTER JA
-1C09 ; [.2AB9.0020.0002] # LEPCHA LETTER NYA
-1C4D ; [.2ABA.0020.0002] # LEPCHA LETTER TTA
-1C4E ; [.2ABB.0020.0002] # LEPCHA LETTER TTHA
-1C4F ; [.2ABC.0020.0002] # LEPCHA LETTER DDA
-1C0A ; [.2ABD.0020.0002] # LEPCHA LETTER TA
-1C0B ; [.2ABE.0020.0002] # LEPCHA LETTER THA
-1C0C ; [.2ABF.0020.0002] # LEPCHA LETTER DA
-1C0D ; [.2AC0.0020.0002] # LEPCHA LETTER NA
-1C0E ; [.2AC1.0020.0002] # LEPCHA LETTER PA
-1C0F ; [.2AC2.0020.0002] # LEPCHA LETTER PLA
-1C10 ; [.2AC3.0020.0002] # LEPCHA LETTER PHA
-1C11 ; [.2AC4.0020.0002] # LEPCHA LETTER FA
-1C12 ; [.2AC5.0020.0002] # LEPCHA LETTER FLA
-1C13 ; [.2AC6.0020.0002] # LEPCHA LETTER BA
-1C14 ; [.2AC7.0020.0002] # LEPCHA LETTER BLA
-1C15 ; [.2AC8.0020.0002] # LEPCHA LETTER MA
-1C16 ; [.2AC9.0020.0002] # LEPCHA LETTER MLA
-1C17 ; [.2ACA.0020.0002] # LEPCHA LETTER TSA
-1C18 ; [.2ACB.0020.0002] # LEPCHA LETTER TSHA
-1C19 ; [.2ACC.0020.0002] # LEPCHA LETTER DZA
-1C1A ; [.2ACD.0020.0002] # LEPCHA LETTER YA
-1C24 ; [.2ACE.0020.0002] # LEPCHA SUBJOINED LETTER YA
-1C1B ; [.2ACF.0020.0002] # LEPCHA LETTER RA
-1C25 ; [.2AD0.0020.0002] # LEPCHA SUBJOINED LETTER RA
-1C1C ; [.2AD1.0020.0002] # LEPCHA LETTER LA
-1C1D ; [.2AD2.0020.0002] # LEPCHA LETTER HA
-1C1E ; [.2AD3.0020.0002] # LEPCHA LETTER HLA
-1C1F ; [.2AD4.0020.0002] # LEPCHA LETTER VA
-1C20 ; [.2AD5.0020.0002] # LEPCHA LETTER SA
-1C21 ; [.2AD6.0020.0002] # LEPCHA LETTER SHA
-1C22 ; [.2AD7.0020.0002] # LEPCHA LETTER WA
-1C23 ; [.2AD8.0020.0002] # LEPCHA LETTER A
-1C36 ; [.2AD9.0020.0002] # LEPCHA SIGN RAN
-1C26 ; [.2ADA.0020.0002] # LEPCHA VOWEL SIGN AA
-1C27 ; [.2ADB.0020.0002] # LEPCHA VOWEL SIGN I
-1C28 ; [.2ADC.0020.0002] # LEPCHA VOWEL SIGN O
-1C29 ; [.2ADD.0020.0002] # LEPCHA VOWEL SIGN OO
-1C2A ; [.2ADE.0020.0002] # LEPCHA VOWEL SIGN U
-1C2B ; [.2ADF.0020.0002] # LEPCHA VOWEL SIGN UU
-1C2C ; [.2AE0.0020.0002] # LEPCHA VOWEL SIGN E
-1C2D ; [.2AE1.0020.0002] # LEPCHA CONSONANT SIGN K
-1C2E ; [.2AE2.0020.0002] # LEPCHA CONSONANT SIGN M
-1C2F ; [.2AE3.0020.0002] # LEPCHA CONSONANT SIGN L
-1C30 ; [.2AE4.0020.0002] # LEPCHA CONSONANT SIGN N
-1C31 ; [.2AE5.0020.0002] # LEPCHA CONSONANT SIGN P
-1C32 ; [.2AE6.0020.0002] # LEPCHA CONSONANT SIGN R
-1C33 ; [.2AE7.0020.0002] # LEPCHA CONSONANT SIGN T
-1C34 ; [.2AE8.0020.0002] # LEPCHA CONSONANT SIGN NYIN-DO
-1C35 ; [.2AE9.0020.0002] # LEPCHA CONSONANT SIGN KANG
-A840 ; [.2AEA.0020.0002] # PHAGS-PA LETTER KA
-A841 ; [.2AEB.0020.0002] # PHAGS-PA LETTER KHA
-A842 ; [.2AEC.0020.0002] # PHAGS-PA LETTER GA
-A843 ; [.2AED.0020.0002] # PHAGS-PA LETTER NGA
-A844 ; [.2AEE.0020.0002] # PHAGS-PA LETTER CA
-A845 ; [.2AEF.0020.0002] # PHAGS-PA LETTER CHA
-A846 ; [.2AF0.0020.0002] # PHAGS-PA LETTER JA
-A847 ; [.2AF1.0020.0002] # PHAGS-PA LETTER NYA
-A869 ; [.2AF2.0020.0002] # PHAGS-PA LETTER TTA
-A86A ; [.2AF3.0020.0002] # PHAGS-PA LETTER TTHA
-A86B ; [.2AF4.0020.0002] # PHAGS-PA LETTER DDA
-A86C ; [.2AF5.0020.0002] # PHAGS-PA LETTER NNA
-A848 ; [.2AF6.0020.0002] # PHAGS-PA LETTER TA
-A849 ; [.2AF7.0020.0002] # PHAGS-PA LETTER THA
-A84A ; [.2AF8.0020.0002] # PHAGS-PA LETTER DA
-A84B ; [.2AF9.0020.0002] # PHAGS-PA LETTER NA
-A84C ; [.2AFA.0020.0002] # PHAGS-PA LETTER PA
-A84D ; [.2AFB.0020.0002] # PHAGS-PA LETTER PHA
-A84E ; [.2AFC.0020.0002] # PHAGS-PA LETTER BA
-A84F ; [.2AFD.0020.0002] # PHAGS-PA LETTER MA
-A850 ; [.2AFE.0020.0002] # PHAGS-PA LETTER TSA
-A851 ; [.2AFF.0020.0002] # PHAGS-PA LETTER TSHA
-A852 ; [.2B00.0020.0002] # PHAGS-PA LETTER DZA
-A853 ; [.2B01.0020.0002] # PHAGS-PA LETTER WA
-A867 ; [.2B02.0020.0002] # PHAGS-PA SUBJOINED LETTER WA
-A854 ; [.2B03.0020.0002] # PHAGS-PA LETTER ZHA
-A855 ; [.2B04.0020.0002] # PHAGS-PA LETTER ZA
-A856 ; [.2B05.0020.0002] # PHAGS-PA LETTER SMALL A
-A857 ; [.2B06.0020.0002] # PHAGS-PA LETTER YA
-A868 ; [.2B07.0020.0002] # PHAGS-PA SUBJOINED LETTER YA
-A86D ; [.2B08.0020.0002] # PHAGS-PA LETTER ALTERNATE YA
-A858 ; [.2B09.0020.0002] # PHAGS-PA LETTER RA
-A871 ; [.2B0A.0020.0002] # PHAGS-PA SUBJOINED LETTER RA
-A872 ; [.2B0B.0020.0002] # PHAGS-PA SUPERFIXED LETTER RA
-A859 ; [.2B0C.0020.0002] # PHAGS-PA LETTER LA
-A85A ; [.2B0D.0020.0002] # PHAGS-PA LETTER SHA
-A86E ; [.2B0E.0020.0002] # PHAGS-PA LETTER VOICELESS SHA
-A85B ; [.2B0F.0020.0002] # PHAGS-PA LETTER SA
-A85C ; [.2B10.0020.0002] # PHAGS-PA LETTER HA
-A86F ; [.2B11.0020.0002] # PHAGS-PA LETTER VOICED HA
-A870 ; [.2B12.0020.0002] # PHAGS-PA LETTER ASPIRATED FA
-A85D ; [.2B13.0020.0002] # PHAGS-PA LETTER A
-A862 ; [.2B14.0020.0002] # PHAGS-PA LETTER QA
-A863 ; [.2B15.0020.0002] # PHAGS-PA LETTER XA
-A864 ; [.2B16.0020.0002] # PHAGS-PA LETTER FA
-A865 ; [.2B17.0020.0002] # PHAGS-PA LETTER GGA
-A85E ; [.2B18.0020.0002] # PHAGS-PA LETTER I
-A85F ; [.2B19.0020.0002] # PHAGS-PA LETTER U
-A860 ; [.2B1A.0020.0002] # PHAGS-PA LETTER E
-A861 ; [.2B1B.0020.0002] # PHAGS-PA LETTER O
-A866 ; [.2B1C.0020.0002] # PHAGS-PA LETTER EE
-A873 ; [.2B1D.0020.0002] # PHAGS-PA LETTER CANDRABINDU
-1900 ; [.2B1E.0020.0002] # LIMBU VOWEL-CARRIER LETTER
-1901 ; [.2B1F.0020.0002] # LIMBU LETTER KA
-1902 ; [.2B20.0020.0002] # LIMBU LETTER KHA
-1903 ; [.2B21.0020.0002] # LIMBU LETTER GA
-1904 ; [.2B22.0020.0002] # LIMBU LETTER GHA
-1905 ; [.2B23.0020.0002] # LIMBU LETTER NGA
-1906 ; [.2B24.0020.0002] # LIMBU LETTER CA
-1907 ; [.2B25.0020.0002] # LIMBU LETTER CHA
-1908 ; [.2B26.0020.0002] # LIMBU LETTER JA
-191D ; [.2B26.0020.0004][.2B44.0020.0004] # LIMBU LETTER GYAN
-1909 ; [.2B27.0020.0002] # LIMBU LETTER JHA
-190A ; [.2B28.0020.0002] # LIMBU LETTER YAN
-190B ; [.2B29.0020.0002] # LIMBU LETTER TA
-191E ; [.2B29.0020.0004][.2B45.0020.0004] # LIMBU LETTER TRA
-190C ; [.2B2A.0020.0002] # LIMBU LETTER THA
-190D ; [.2B2B.0020.0002] # LIMBU LETTER DA
-190E ; [.2B2C.0020.0002] # LIMBU LETTER DHA
-190F ; [.2B2D.0020.0002] # LIMBU LETTER NA
-1910 ; [.2B2E.0020.0002] # LIMBU LETTER PA
-1911 ; [.2B2F.0020.0002] # LIMBU LETTER PHA
-1912 ; [.2B30.0020.0002] # LIMBU LETTER BA
-1913 ; [.2B31.0020.0002] # LIMBU LETTER BHA
-1914 ; [.2B32.0020.0002] # LIMBU LETTER MA
-1915 ; [.2B33.0020.0002] # LIMBU LETTER YA
-1916 ; [.2B34.0020.0002] # LIMBU LETTER RA
-1917 ; [.2B35.0020.0002] # LIMBU LETTER LA
-1918 ; [.2B36.0020.0002] # LIMBU LETTER WA
-1919 ; [.2B37.0020.0002] # LIMBU LETTER SHA
-191A ; [.2B38.0020.0002] # LIMBU LETTER SSA
-191B ; [.2B39.0020.0002] # LIMBU LETTER SA
-191C ; [.2B3A.0020.0002] # LIMBU LETTER HA
-1920 ; [.2B3B.0020.0002] # LIMBU VOWEL SIGN A
-1921 ; [.2B3C.0020.0002] # LIMBU VOWEL SIGN I
-1922 ; [.2B3D.0020.0002] # LIMBU VOWEL SIGN U
-1923 ; [.2B3E.0020.0002] # LIMBU VOWEL SIGN EE
-1924 ; [.2B3F.0020.0002] # LIMBU VOWEL SIGN AI
-1925 ; [.2B40.0020.0002] # LIMBU VOWEL SIGN OO
-1926 ; [.2B41.0020.0002] # LIMBU VOWEL SIGN AU
-1927 ; [.2B42.0020.0002] # LIMBU VOWEL SIGN E
-1928 ; [.2B43.0020.0002] # LIMBU VOWEL SIGN O
-1929 ; [.2B44.0020.0002] # LIMBU SUBJOINED LETTER YA
-192A ; [.2B45.0020.0002] # LIMBU SUBJOINED LETTER RA
-192B ; [.2B46.0020.0002] # LIMBU SUBJOINED LETTER WA
-1930 ; [.2B47.0020.0002] # LIMBU SMALL LETTER KA
-1931 ; [.2B48.0020.0002] # LIMBU SMALL LETTER NGA
-1932 ; [.2B49.0020.0002] # LIMBU SMALL LETTER ANUSVARA
-1933 ; [.2B4A.0020.0002] # LIMBU SMALL LETTER TA
-1934 ; [.2B4B.0020.0002] # LIMBU SMALL LETTER NA
-1935 ; [.2B4C.0020.0002] # LIMBU SMALL LETTER PA
-1936 ; [.2B4D.0020.0002] # LIMBU SMALL LETTER MA
-1937 ; [.2B4E.0020.0002] # LIMBU SMALL LETTER RA
-1938 ; [.2B4F.0020.0002] # LIMBU SMALL LETTER LA
-1700 ; [.2B50.0020.0002] # TAGALOG LETTER A
-1701 ; [.2B51.0020.0002] # TAGALOG LETTER I
-1702 ; [.2B52.0020.0002] # TAGALOG LETTER U
-1703 ; [.2B53.0020.0002] # TAGALOG LETTER KA
-1704 ; [.2B54.0020.0002] # TAGALOG LETTER GA
-1705 ; [.2B55.0020.0002] # TAGALOG LETTER NGA
-1706 ; [.2B56.0020.0002] # TAGALOG LETTER TA
-1707 ; [.2B57.0020.0002] # TAGALOG LETTER DA
-1708 ; [.2B58.0020.0002] # TAGALOG LETTER NA
-1709 ; [.2B59.0020.0002] # TAGALOG LETTER PA
-170A ; [.2B5A.0020.0002] # TAGALOG LETTER BA
-170B ; [.2B5B.0020.0002] # TAGALOG LETTER MA
-170C ; [.2B5C.0020.0002] # TAGALOG LETTER YA
-170E ; [.2B5D.0020.0002] # TAGALOG LETTER LA
-170F ; [.2B5E.0020.0002] # TAGALOG LETTER WA
-1710 ; [.2B5F.0020.0002] # TAGALOG LETTER SA
-1711 ; [.2B60.0020.0002] # TAGALOG LETTER HA
-1712 ; [.2B61.0020.0002] # TAGALOG VOWEL SIGN I
-1713 ; [.2B62.0020.0002] # TAGALOG VOWEL SIGN U
-1714 ; [.2B63.0020.0002] # TAGALOG SIGN VIRAMA
-1720 ; [.2B64.0020.0002] # HANUNOO LETTER A
-1721 ; [.2B65.0020.0002] # HANUNOO LETTER I
-1722 ; [.2B66.0020.0002] # HANUNOO LETTER U
-1723 ; [.2B67.0020.0002] # HANUNOO LETTER KA
-1724 ; [.2B68.0020.0002] # HANUNOO LETTER GA
-1725 ; [.2B69.0020.0002] # HANUNOO LETTER NGA
-1726 ; [.2B6A.0020.0002] # HANUNOO LETTER TA
-1727 ; [.2B6B.0020.0002] # HANUNOO LETTER DA
-1728 ; [.2B6C.0020.0002] # HANUNOO LETTER NA
-1729 ; [.2B6D.0020.0002] # HANUNOO LETTER PA
-172A ; [.2B6E.0020.0002] # HANUNOO LETTER BA
-172B ; [.2B6F.0020.0002] # HANUNOO LETTER MA
-172C ; [.2B70.0020.0002] # HANUNOO LETTER YA
-172D ; [.2B71.0020.0002] # HANUNOO LETTER RA
-172E ; [.2B72.0020.0002] # HANUNOO LETTER LA
-172F ; [.2B73.0020.0002] # HANUNOO LETTER WA
-1730 ; [.2B74.0020.0002] # HANUNOO LETTER SA
-1731 ; [.2B75.0020.0002] # HANUNOO LETTER HA
-1732 ; [.2B76.0020.0002] # HANUNOO VOWEL SIGN I
-1733 ; [.2B77.0020.0002] # HANUNOO VOWEL SIGN U
-1734 ; [.2B78.0020.0002] # HANUNOO SIGN PAMUDPOD
-1740 ; [.2B79.0020.0002] # BUHID LETTER A
-1741 ; [.2B7A.0020.0002] # BUHID LETTER I
-1742 ; [.2B7B.0020.0002] # BUHID LETTER U
-1743 ; [.2B7C.0020.0002] # BUHID LETTER KA
-1744 ; [.2B7D.0020.0002] # BUHID LETTER GA
-1745 ; [.2B7E.0020.0002] # BUHID LETTER NGA
-1746 ; [.2B7F.0020.0002] # BUHID LETTER TA
-1747 ; [.2B80.0020.0002] # BUHID LETTER DA
-1748 ; [.2B81.0020.0002] # BUHID LETTER NA
-1749 ; [.2B82.0020.0002] # BUHID LETTER PA
-174A ; [.2B83.0020.0002] # BUHID LETTER BA
-174B ; [.2B84.0020.0002] # BUHID LETTER MA
-174C ; [.2B85.0020.0002] # BUHID LETTER YA
-174D ; [.2B86.0020.0002] # BUHID LETTER RA
-174E ; [.2B87.0020.0002] # BUHID LETTER LA
-174F ; [.2B88.0020.0002] # BUHID LETTER WA
-1750 ; [.2B89.0020.0002] # BUHID LETTER SA
-1751 ; [.2B8A.0020.0002] # BUHID LETTER HA
-1752 ; [.2B8B.0020.0002] # BUHID VOWEL SIGN I
-1753 ; [.2B8C.0020.0002] # BUHID VOWEL SIGN U
-1760 ; [.2B8D.0020.0002] # TAGBANWA LETTER A
-1761 ; [.2B8E.0020.0002] # TAGBANWA LETTER I
-1762 ; [.2B8F.0020.0002] # TAGBANWA LETTER U
-1763 ; [.2B90.0020.0002] # TAGBANWA LETTER KA
-1764 ; [.2B91.0020.0002] # TAGBANWA LETTER GA
-1765 ; [.2B92.0020.0002] # TAGBANWA LETTER NGA
-1766 ; [.2B93.0020.0002] # TAGBANWA LETTER TA
-1767 ; [.2B94.0020.0002] # TAGBANWA LETTER DA
-1768 ; [.2B95.0020.0002] # TAGBANWA LETTER NA
-1769 ; [.2B96.0020.0002] # TAGBANWA LETTER PA
-176A ; [.2B97.0020.0002] # TAGBANWA LETTER BA
-176B ; [.2B98.0020.0002] # TAGBANWA LETTER MA
-176C ; [.2B99.0020.0002] # TAGBANWA LETTER YA
-176E ; [.2B9A.0020.0002] # TAGBANWA LETTER LA
-176F ; [.2B9B.0020.0002] # TAGBANWA LETTER WA
-1770 ; [.2B9C.0020.0002] # TAGBANWA LETTER SA
-1772 ; [.2B9D.0020.0002] # TAGBANWA VOWEL SIGN I
-1773 ; [.2B9E.0020.0002] # TAGBANWA VOWEL SIGN U
-1A00 ; [.2B9F.0020.0002] # BUGINESE LETTER KA
-1A01 ; [.2BA0.0020.0002] # BUGINESE LETTER GA
-1A02 ; [.2BA1.0020.0002] # BUGINESE LETTER NGA
-1A03 ; [.2BA2.0020.0002] # BUGINESE LETTER NGKA
-1A04 ; [.2BA3.0020.0002] # BUGINESE LETTER PA
-1A05 ; [.2BA4.0020.0002] # BUGINESE LETTER BA
-1A06 ; [.2BA5.0020.0002] # BUGINESE LETTER MA
-1A07 ; [.2BA6.0020.0002] # BUGINESE LETTER MPA
-1A08 ; [.2BA7.0020.0002] # BUGINESE LETTER TA
-1A09 ; [.2BA8.0020.0002] # BUGINESE LETTER DA
-1A0A ; [.2BA9.0020.0002] # BUGINESE LETTER NA
-1A0B ; [.2BAA.0020.0002] # BUGINESE LETTER NRA
-1A0C ; [.2BAB.0020.0002] # BUGINESE LETTER CA
-1A0D ; [.2BAC.0020.0002] # BUGINESE LETTER JA
-1A0E ; [.2BAD.0020.0002] # BUGINESE LETTER NYA
-1A0F ; [.2BAE.0020.0002] # BUGINESE LETTER NYCA
-1A10 ; [.2BAF.0020.0002] # BUGINESE LETTER YA
-1A11 ; [.2BB0.0020.0002] # BUGINESE LETTER RA
-1A12 ; [.2BB1.0020.0002] # BUGINESE LETTER LA
-1A13 ; [.2BB2.0020.0002] # BUGINESE LETTER VA
-1A14 ; [.2BB3.0020.0002] # BUGINESE LETTER SA
-1A15 ; [.2BB4.0020.0002] # BUGINESE LETTER A
-1A16 ; [.2BB5.0020.0002] # BUGINESE LETTER HA
-1A17 ; [.2BB6.0020.0002] # BUGINESE VOWEL SIGN I
-1A18 ; [.2BB7.0020.0002] # BUGINESE VOWEL SIGN U
-1A19 ; [.2BB8.0020.0002] # BUGINESE VOWEL SIGN E
-1A1A ; [.2BB9.0020.0002] # BUGINESE VOWEL SIGN O
-1A1B ; [.2BBA.0020.0002] # BUGINESE VOWEL SIGN AE
-1BC0 ; [.2BBB.0020.0002] # BATAK LETTER A
-1BC1 ; [.2BBB.0020.0004] # BATAK LETTER SIMALUNGUN A
-1BC2 ; [.2BBC.0020.0002] # BATAK LETTER HA
-1BC3 ; [.2BBC.0020.0004] # BATAK LETTER SIMALUNGUN HA
-1BC4 ; [.2BBC.0020.0004] # BATAK LETTER MANDAILING HA
-1BC5 ; [.2BBD.0020.0002] # BATAK LETTER BA
-1BC6 ; [.2BBD.0020.0004] # BATAK LETTER KARO BA
-1BC7 ; [.2BBE.0020.0002] # BATAK LETTER PA
-1BC8 ; [.2BBE.0020.0004] # BATAK LETTER SIMALUNGUN PA
-1BC9 ; [.2BBF.0020.0002] # BATAK LETTER NA
-1BCA ; [.2BBF.0020.0004] # BATAK LETTER MANDAILING NA
-1BCB ; [.2BC0.0020.0002] # BATAK LETTER WA
-1BCC ; [.2BC0.0020.0004] # BATAK LETTER SIMALUNGUN WA
-1BCD ; [.2BC0.0020.0004] # BATAK LETTER PAKPAK WA
-1BCE ; [.2BC1.0020.0002] # BATAK LETTER GA
-1BCF ; [.2BC1.0020.0004] # BATAK LETTER SIMALUNGUN GA
-1BD0 ; [.2BC2.0020.0002] # BATAK LETTER JA
-1BD1 ; [.2BC3.0020.0002] # BATAK LETTER DA
-1BD2 ; [.2BC4.0020.0002] # BATAK LETTER RA
-1BD3 ; [.2BC4.0020.0004] # BATAK LETTER SIMALUNGUN RA
-1BD4 ; [.2BC5.0020.0002] # BATAK LETTER MA
-1BD5 ; [.2BC5.0020.0004] # BATAK LETTER SIMALUNGUN MA
-1BD6 ; [.2BC6.0020.0002] # BATAK LETTER SOUTHERN TA
-1BD7 ; [.2BC6.0020.0004] # BATAK LETTER NORTHERN TA
-1BD8 ; [.2BC7.0020.0002] # BATAK LETTER SA
-1BD9 ; [.2BC7.0020.0004] # BATAK LETTER SIMALUNGUN SA
-1BDA ; [.2BC7.0020.0004] # BATAK LETTER MANDAILING SA
-1BDB ; [.2BC8.0020.0002] # BATAK LETTER YA
-1BDC ; [.2BC8.0020.0004] # BATAK LETTER SIMALUNGUN YA
-1BDD ; [.2BC9.0020.0002] # BATAK LETTER NGA
-1BDE ; [.2BCA.0020.0002] # BATAK LETTER LA
-1BDF ; [.2BCA.0020.0004] # BATAK LETTER SIMALUNGUN LA
-1BE0 ; [.2BCB.0020.0002] # BATAK LETTER NYA
-1BE1 ; [.2BCC.0020.0002] # BATAK LETTER CA
-1BE2 ; [.2BCD.0020.0002] # BATAK LETTER NDA
-1BE3 ; [.2BCE.0020.0002] # BATAK LETTER MBA
-1BE4 ; [.2BCF.0020.0002] # BATAK LETTER I
-1BE5 ; [.2BD0.0020.0002] # BATAK LETTER U
-1BE7 ; [.2BD1.0020.0002] # BATAK VOWEL SIGN E
-1BE8 ; [.2BD1.0020.0004] # BATAK VOWEL SIGN PAKPAK E
-1BE9 ; [.2BD2.0020.0002] # BATAK VOWEL SIGN EE
-1BEA ; [.2BD3.0020.0002] # BATAK VOWEL SIGN I
-1BEB ; [.2BD3.0020.0004] # BATAK VOWEL SIGN KARO I
-1BEC ; [.2BD4.0020.0002] # BATAK VOWEL SIGN O
-1BED ; [.2BD4.0020.0004] # BATAK VOWEL SIGN KARO O
-1BEE ; [.2BD5.0020.0002] # BATAK VOWEL SIGN U
-1BEF ; [.2BD5.0020.0004] # BATAK VOWEL SIGN U FOR SIMALUNGUN SA
-1BF0 ; [.2BD6.0020.0002] # BATAK CONSONANT SIGN NG
-1BF1 ; [.2BD7.0020.0002] # BATAK CONSONANT SIGN H
-1BF2 ; [.2BD8.0020.0002] # BATAK PANGOLAT
-1BF3 ; [.2BD9.0020.0002] # BATAK PANONGONAN
-A930 ; [.2BDA.0020.0002] # REJANG LETTER KA
-A931 ; [.2BDB.0020.0002] # REJANG LETTER GA
-A932 ; [.2BDC.0020.0002] # REJANG LETTER NGA
-A933 ; [.2BDD.0020.0002] # REJANG LETTER TA
-A934 ; [.2BDE.0020.0002] # REJANG LETTER DA
-A935 ; [.2BDF.0020.0002] # REJANG LETTER NA
-A936 ; [.2BE0.0020.0002] # REJANG LETTER PA
-A937 ; [.2BE1.0020.0002] # REJANG LETTER BA
-A938 ; [.2BE2.0020.0002] # REJANG LETTER MA
-A939 ; [.2BE3.0020.0002] # REJANG LETTER CA
-A93A ; [.2BE4.0020.0002] # REJANG LETTER JA
-A93B ; [.2BE5.0020.0002] # REJANG LETTER NYA
-A93C ; [.2BE6.0020.0002] # REJANG LETTER SA
-A93D ; [.2BE7.0020.0002] # REJANG LETTER RA
-A93E ; [.2BE8.0020.0002] # REJANG LETTER LA
-A93F ; [.2BE9.0020.0002] # REJANG LETTER YA
-A940 ; [.2BEA.0020.0002] # REJANG LETTER WA
-A941 ; [.2BEB.0020.0002] # REJANG LETTER HA
-A942 ; [.2BEC.0020.0002] # REJANG LETTER MBA
-A943 ; [.2BED.0020.0002] # REJANG LETTER NGGA
-A944 ; [.2BEE.0020.0002] # REJANG LETTER NDA
-A945 ; [.2BEF.0020.0002] # REJANG LETTER NYJA
-A946 ; [.2BF0.0020.0002] # REJANG LETTER A
-A947 ; [.2BF1.0020.0002] # REJANG VOWEL SIGN I
-A948 ; [.2BF2.0020.0002] # REJANG VOWEL SIGN U
-A949 ; [.2BF3.0020.0002] # REJANG VOWEL SIGN E
-A94A ; [.2BF4.0020.0002] # REJANG VOWEL SIGN AI
-A94B ; [.2BF5.0020.0002] # REJANG VOWEL SIGN O
-A94C ; [.2BF6.0020.0002] # REJANG VOWEL SIGN AU
-A94D ; [.2BF7.0020.0002] # REJANG VOWEL SIGN EU
-A94E ; [.2BF8.0020.0002] # REJANG VOWEL SIGN EA
-A94F ; [.2BF9.0020.0002] # REJANG CONSONANT SIGN NG
-A950 ; [.2BFA.0020.0002] # REJANG CONSONANT SIGN N
-A951 ; [.2BFB.0020.0002] # REJANG CONSONANT SIGN R
-A952 ; [.2BFC.0020.0002] # REJANG CONSONANT SIGN H
-A953 ; [.2BFD.0020.0002] # REJANG VIRAMA
-A90A ; [.2BFE.0020.0002] # KAYAH LI LETTER KA
-A90B ; [.2BFF.0020.0002] # KAYAH LI LETTER KHA
-A90C ; [.2C00.0020.0002] # KAYAH LI LETTER GA
-A90D ; [.2C01.0020.0002] # KAYAH LI LETTER NGA
-A90E ; [.2C02.0020.0002] # KAYAH LI LETTER SA
-A90F ; [.2C03.0020.0002] # KAYAH LI LETTER SHA
-A910 ; [.2C04.0020.0002] # KAYAH LI LETTER ZA
-A911 ; [.2C05.0020.0002] # KAYAH LI LETTER NYA
-A912 ; [.2C06.0020.0002] # KAYAH LI LETTER TA
-A913 ; [.2C07.0020.0002] # KAYAH LI LETTER HTA
-A914 ; [.2C08.0020.0002] # KAYAH LI LETTER NA
-A915 ; [.2C09.0020.0002] # KAYAH LI LETTER PA
-A916 ; [.2C0A.0020.0002] # KAYAH LI LETTER PHA
-A917 ; [.2C0B.0020.0002] # KAYAH LI LETTER MA
-A918 ; [.2C0C.0020.0002] # KAYAH LI LETTER DA
-A919 ; [.2C0D.0020.0002] # KAYAH LI LETTER BA
-A91A ; [.2C0E.0020.0002] # KAYAH LI LETTER RA
-A91B ; [.2C0F.0020.0002] # KAYAH LI LETTER YA
-A91C ; [.2C10.0020.0002] # KAYAH LI LETTER LA
-A91D ; [.2C11.0020.0002] # KAYAH LI LETTER WA
-A91E ; [.2C12.0020.0002] # KAYAH LI LETTER THA
-A91F ; [.2C13.0020.0002] # KAYAH LI LETTER HA
-A920 ; [.2C14.0020.0002] # KAYAH LI LETTER VA
-A921 ; [.2C15.0020.0002] # KAYAH LI LETTER CA
-A922 ; [.2C16.0020.0002] # KAYAH LI LETTER A
-A923 ; [.2C17.0020.0002] # KAYAH LI LETTER OE
-A924 ; [.2C18.0020.0002] # KAYAH LI LETTER I
-A925 ; [.2C19.0020.0002] # KAYAH LI LETTER OO
-A926 ; [.2C1A.0020.0002] # KAYAH LI VOWEL UE
-A927 ; [.2C1B.0020.0002] # KAYAH LI VOWEL E
-A928 ; [.2C1C.0020.0002] # KAYAH LI VOWEL U
-A929 ; [.2C1D.0020.0002] # KAYAH LI VOWEL EE
-A92A ; [.2C1E.0020.0002] # KAYAH LI VOWEL O
-1000 ; [.2C1F.0020.0002] # MYANMAR LETTER KA
-1075 ; [.2C20.0020.0002] # MYANMAR LETTER SHAN KA
-1001 ; [.2C21.0020.0002] # MYANMAR LETTER KHA
-1076 ; [.2C22.0020.0002] # MYANMAR LETTER SHAN KHA
-1002 ; [.2C23.0020.0002] # MYANMAR LETTER GA
-1077 ; [.2C24.0020.0002] # MYANMAR LETTER SHAN GA
-AA60 ; [.2C25.0020.0002] # MYANMAR LETTER KHAMTI GA
-A9E9 ; [.2C26.0020.0002] # MYANMAR LETTER TAI LAING GA
-1003 ; [.2C27.0020.0002] # MYANMAR LETTER GHA
-A9E0 ; [.2C28.0020.0002] # MYANMAR LETTER SHAN GHA
-A9EA ; [.2C29.0020.0002] # MYANMAR LETTER TAI LAING GHA
-1004 ; [.2C2A.0020.0002] # MYANMAR LETTER NGA
-105A ; [.2C2B.0020.0002] # MYANMAR LETTER MON NGA
-1005 ; [.2C2C.0020.0002] # MYANMAR LETTER CA
-1078 ; [.2C2D.0020.0002] # MYANMAR LETTER SHAN CA
-AA61 ; [.2C2E.0020.0002] # MYANMAR LETTER KHAMTI CA
-1006 ; [.2C2F.0020.0002] # MYANMAR LETTER CHA
-A9E1 ; [.2C30.0020.0002] # MYANMAR LETTER SHAN CHA
-AA62 ; [.2C31.0020.0002] # MYANMAR LETTER KHAMTI CHA
-AA7E ; [.2C32.0020.0002] # MYANMAR LETTER SHWE PALAUNG CHA
-1007 ; [.2C33.0020.0002] # MYANMAR LETTER JA
-AA63 ; [.2C34.0020.0002] # MYANMAR LETTER KHAMTI JA
-A9EB ; [.2C35.0020.0002] # MYANMAR LETTER TAI LAING JA
-1079 ; [.2C36.0020.0002] # MYANMAR LETTER SHAN ZA
-AA72 ; [.2C37.0020.0002] # MYANMAR LETTER KHAMTI ZA
-1008 ; [.2C38.0020.0002] # MYANMAR LETTER JHA
-105B ; [.2C39.0020.0002] # MYANMAR LETTER MON JHA
-A9E2 ; [.2C3A.0020.0002] # MYANMAR LETTER SHAN JHA
-AA64 ; [.2C3B.0020.0002] # MYANMAR LETTER KHAMTI JHA
-A9EC ; [.2C3C.0020.0002] # MYANMAR LETTER TAI LAING JHA
-1061 ; [.2C3D.0020.0002] # MYANMAR LETTER SGAW KAREN SHA
-AA7F ; [.2C3E.0020.0002] # MYANMAR LETTER SHWE PALAUNG SHA
-1009 ; [.2C3F.0020.0002] # MYANMAR LETTER NYA
-107A ; [.2C40.0020.0002] # MYANMAR LETTER SHAN NYA
-AA65 ; [.2C41.0020.0002] # MYANMAR LETTER KHAMTI NYA
-A9E7 ; [.2C42.0020.0002] # MYANMAR LETTER TAI LAING NYA
-100A ; [.2C43.0020.0002] # MYANMAR LETTER NNYA
-100B ; [.2C44.0020.0002] # MYANMAR LETTER TTA
-AA66 ; [.2C45.0020.0002] # MYANMAR LETTER KHAMTI TTA
-100C ; [.2C46.0020.0002] # MYANMAR LETTER TTHA
-AA67 ; [.2C47.0020.0002] # MYANMAR LETTER KHAMTI TTHA
-100D ; [.2C48.0020.0002] # MYANMAR LETTER DDA
-AA68 ; [.2C49.0020.0002] # MYANMAR LETTER KHAMTI DDA
-A9ED ; [.2C4A.0020.0002] # MYANMAR LETTER TAI LAING DDA
-100E ; [.2C4B.0020.0002] # MYANMAR LETTER DDHA
-AA69 ; [.2C4C.0020.0002] # MYANMAR LETTER KHAMTI DDHA
-A9EE ; [.2C4D.0020.0002] # MYANMAR LETTER TAI LAING DDHA
-100F ; [.2C4E.0020.0002] # MYANMAR LETTER NNA
-106E ; [.2C4F.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN NNA
-A9E3 ; [.2C50.0020.0002] # MYANMAR LETTER SHAN NNA
-A9EF ; [.2C51.0020.0002] # MYANMAR LETTER TAI LAING NNA
-1010 ; [.2C52.0020.0002] # MYANMAR LETTER TA
-1011 ; [.2C53.0020.0002] # MYANMAR LETTER THA
-1012 ; [.2C54.0020.0002] # MYANMAR LETTER DA
-107B ; [.2C55.0020.0002] # MYANMAR LETTER SHAN DA
-A9FB ; [.2C56.0020.0002] # MYANMAR LETTER TAI LAING DA
-1013 ; [.2C57.0020.0002] # MYANMAR LETTER DHA
-AA6A ; [.2C58.0020.0002] # MYANMAR LETTER KHAMTI DHA
-A9FC ; [.2C59.0020.0002] # MYANMAR LETTER TAI LAING DHA
-1014 ; [.2C5A.0020.0002] # MYANMAR LETTER NA
-107C ; [.2C5B.0020.0002] # MYANMAR LETTER SHAN NA
-AA6B ; [.2C5C.0020.0002] # MYANMAR LETTER KHAMTI NA
-105E ; [.2C5D.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL NA
-1015 ; [.2C5E.0020.0002] # MYANMAR LETTER PA
-1016 ; [.2C5F.0020.0002] # MYANMAR LETTER PHA
-107D ; [.2C60.0020.0002] # MYANMAR LETTER SHAN PHA
-107E ; [.2C61.0020.0002] # MYANMAR LETTER SHAN FA
-AA6F ; [.2C62.0020.0002] # MYANMAR LETTER KHAMTI FA
-108E ; [.2C63.0020.0002] # MYANMAR LETTER RUMAI PALAUNG FA
-A9E8 ; [.2C64.0020.0002] # MYANMAR LETTER TAI LAING FA
-1017 ; [.2C65.0020.0002] # MYANMAR LETTER BA
-107F ; [.2C66.0020.0002] # MYANMAR LETTER SHAN BA
-A9FD ; [.2C67.0020.0002] # MYANMAR LETTER TAI LAING BA
-1018 ; [.2C68.0020.0002] # MYANMAR LETTER BHA
-A9E4 ; [.2C69.0020.0002] # MYANMAR LETTER SHAN BHA
-A9FE ; [.2C6A.0020.0002] # MYANMAR LETTER TAI LAING BHA
-1019 ; [.2C6B.0020.0002] # MYANMAR LETTER MA
-105F ; [.2C6C.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL MA
-101A ; [.2C6D.0020.0002] # MYANMAR LETTER YA
-103B ; [.2C6E.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL YA
-101B ; [.2C6F.0020.0002] # MYANMAR LETTER RA
-AA73 ; [.2C70.0020.0002] # MYANMAR LETTER KHAMTI RA
-AA7A ; [.2C71.0020.0002] # MYANMAR LETTER AITON RA
-103C ; [.2C72.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL RA
-101C ; [.2C73.0020.0002] # MYANMAR LETTER LA
-1060 ; [.2C74.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL LA
-101D ; [.2C75.0020.0002] # MYANMAR LETTER WA
-103D ; [.2C76.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL WA
-1082 ; [.2C77.0020.0002] # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-1080 ; [.2C78.0020.0002] # MYANMAR LETTER SHAN THA
-1050 ; [.2C79.0020.0002] # MYANMAR LETTER SHA
-1051 ; [.2C7A.0020.0002] # MYANMAR LETTER SSA
-1065 ; [.2C7B.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN THA
-101E ; [.2C7C.0020.0002] # MYANMAR LETTER SA
-103F ; [.2C7C.0020.0004][.2CB5.0020.0004][.2C7C.0020.0004] # MYANMAR LETTER GREAT SA
-AA6C ; [.2C7D.0020.0002] # MYANMAR LETTER KHAMTI SA
-101F ; [.2C7E.0020.0002] # MYANMAR LETTER HA
-1081 ; [.2C7F.0020.0002] # MYANMAR LETTER SHAN HA
-AA6D ; [.2C80.0020.0002] # MYANMAR LETTER KHAMTI HA
-103E ; [.2C81.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL HA
-AA6E ; [.2C82.0020.0002] # MYANMAR LETTER KHAMTI HHA
-AA71 ; [.2C83.0020.0002] # MYANMAR LETTER KHAMTI XA
-1020 ; [.2C84.0020.0002] # MYANMAR LETTER LLA
-A9FA ; [.2C85.0020.0002] # MYANMAR LETTER TAI LAING LLA
-105C ; [.2C86.0020.0002] # MYANMAR LETTER MON BBA
-105D ; [.2C87.0020.0002] # MYANMAR LETTER MON BBE
-106F ; [.2C88.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN YWA
-1070 ; [.2C89.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN GHWA
-1066 ; [.2C8A.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN PWA
-1021 ; [.2C8B.0020.0002] # MYANMAR LETTER A
-1022 ; [.2C8C.0020.0002] # MYANMAR LETTER SHAN A
-1023 ; [.2C8D.0020.0002] # MYANMAR LETTER I
-1024 ; [.2C8E.0020.0002] # MYANMAR LETTER II
-1025 ; [.2C8F.0020.0002] # MYANMAR LETTER U
-1026 ; [.2C90.0020.0002] # MYANMAR LETTER UU
-1025 102E ; [.2C90.0020.0002] # MYANMAR LETTER UU
-1052 ; [.2C91.0020.0002] # MYANMAR LETTER VOCALIC R
-1053 ; [.2C92.0020.0002] # MYANMAR LETTER VOCALIC RR
-1054 ; [.2C93.0020.0002] # MYANMAR LETTER VOCALIC L
-1055 ; [.2C94.0020.0002] # MYANMAR LETTER VOCALIC LL
-1027 ; [.2C95.0020.0002] # MYANMAR LETTER E
-1028 ; [.2C96.0020.0002] # MYANMAR LETTER MON E
-1029 ; [.2C97.0020.0002] # MYANMAR LETTER O
-102A ; [.2C98.0020.0002] # MYANMAR LETTER AU
-102C ; [.2C99.0020.0002] # MYANMAR VOWEL SIGN AA
-102B ; [.2C99.0020.0004] # MYANMAR VOWEL SIGN TALL AA
-1083 ; [.2C9A.0020.0002] # MYANMAR VOWEL SIGN SHAN AA
-1072 ; [.2C9B.0020.0002] # MYANMAR VOWEL SIGN KAYAH OE
-109C ; [.2C9C.0020.0002] # MYANMAR VOWEL SIGN AITON A
-102D ; [.2C9D.0020.0002] # MYANMAR VOWEL SIGN I
-1071 ; [.2C9E.0020.0002] # MYANMAR VOWEL SIGN GEBA KAREN I
-102E ; [.2C9F.0020.0002] # MYANMAR VOWEL SIGN II
-1033 ; [.2CA0.0020.0002] # MYANMAR VOWEL SIGN MON II
-102F ; [.2CA1.0020.0002] # MYANMAR VOWEL SIGN U
-1073 ; [.2CA2.0020.0002] # MYANMAR VOWEL SIGN KAYAH U
-1074 ; [.2CA3.0020.0002] # MYANMAR VOWEL SIGN KAYAH EE
-1030 ; [.2CA4.0020.0002] # MYANMAR VOWEL SIGN UU
-1056 ; [.2CA5.0020.0002] # MYANMAR VOWEL SIGN VOCALIC R
-1057 ; [.2CA6.0020.0002] # MYANMAR VOWEL SIGN VOCALIC RR
-1058 ; [.2CA7.0020.0002] # MYANMAR VOWEL SIGN VOCALIC L
-1059 ; [.2CA8.0020.0002] # MYANMAR VOWEL SIGN VOCALIC LL
-1031 ; [.2CA9.0020.0002] # MYANMAR VOWEL SIGN E
-1084 ; [.2CAA.0020.0002] # MYANMAR VOWEL SIGN SHAN E
-1035 ; [.2CAB.0020.0002] # MYANMAR VOWEL SIGN E ABOVE
-1085 ; [.2CAC.0020.0002] # MYANMAR VOWEL SIGN SHAN E ABOVE
-1032 ; [.2CAD.0020.0002] # MYANMAR VOWEL SIGN AI
-109D ; [.2CAE.0020.0002] # MYANMAR VOWEL SIGN AITON AI
-1034 ; [.2CAF.0020.0002] # MYANMAR VOWEL SIGN MON O
-1062 ; [.2CB0.0020.0002] # MYANMAR VOWEL SIGN SGAW KAREN EU
-1067 ; [.2CB1.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN EU
-1068 ; [.2CB2.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
-A9E5 ; [.2CB3.0020.0002] # MYANMAR SIGN SHAN SAW
-1086 ; [.2CB4.0020.0002] # MYANMAR VOWEL SIGN SHAN FINAL Y
-1039 ; [.2CB5.0020.0002] # MYANMAR SIGN VIRAMA
-103A ; [.2CB6.0020.0002] # MYANMAR SIGN ASAT
-1063 ; [.2CB7.0020.0002] # MYANMAR TONE MARK SGAW KAREN HATHI
-1064 ; [.2CB8.0020.0002] # MYANMAR TONE MARK SGAW KAREN KE PHO
-1069 ; [.2CB9.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-1
-106A ; [.2CBA.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-2
-106B ; [.2CBB.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-3
-106C ; [.2CBC.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-4
-106D ; [.2CBD.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-5
-1087 ; [.2CBE.0020.0002] # MYANMAR SIGN SHAN TONE-2
-108B ; [.2CBF.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-2
-1088 ; [.2CC0.0020.0002] # MYANMAR SIGN SHAN TONE-3
-108C ; [.2CC1.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-3
-108D ; [.2CC2.0020.0002] # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
-1089 ; [.2CC3.0020.0002] # MYANMAR SIGN SHAN TONE-5
-108A ; [.2CC4.0020.0002] # MYANMAR SIGN SHAN TONE-6
-108F ; [.2CC5.0020.0002] # MYANMAR SIGN RUMAI PALAUNG TONE-5
-109A ; [.2CC6.0020.0002] # MYANMAR SIGN KHAMTI TONE-1
-109B ; [.2CC7.0020.0002] # MYANMAR SIGN KHAMTI TONE-3
-AA7B ; [.2CC8.0020.0002] # MYANMAR SIGN PAO KAREN TONE
-AA7C ; [.2CC9.0020.0002] # MYANMAR SIGN TAI LAING TONE-2
-AA7D ; [.2CCA.0020.0002] # MYANMAR SIGN TAI LAING TONE-5
-AA74 ; [.2CCB.0020.0002] # MYANMAR LOGOGRAM KHAMTI OAY
-AA75 ; [.2CCC.0020.0002] # MYANMAR LOGOGRAM KHAMTI QN
-AA76 ; [.2CCD.0020.0002] # MYANMAR LOGOGRAM KHAMTI HM
-11103 ; [.2CCE.0020.0002] # CHAKMA LETTER AA
-11104 ; [.2CCF.0020.0002] # CHAKMA LETTER I
-11105 ; [.2CD0.0020.0002] # CHAKMA LETTER U
-11106 ; [.2CD1.0020.0002] # CHAKMA LETTER E
-11107 ; [.2CD2.0020.0002] # CHAKMA LETTER KAA
-11108 ; [.2CD3.0020.0002] # CHAKMA LETTER KHAA
-11109 ; [.2CD4.0020.0002] # CHAKMA LETTER GAA
-1110A ; [.2CD5.0020.0002] # CHAKMA LETTER GHAA
-1110B ; [.2CD6.0020.0002] # CHAKMA LETTER NGAA
-1110C ; [.2CD7.0020.0002] # CHAKMA LETTER CAA
-1110D ; [.2CD8.0020.0002] # CHAKMA LETTER CHAA
-1110E ; [.2CD9.0020.0002] # CHAKMA LETTER JAA
-1110F ; [.2CDA.0020.0002] # CHAKMA LETTER JHAA
-11110 ; [.2CDB.0020.0002] # CHAKMA LETTER NYAA
-11111 ; [.2CDC.0020.0002] # CHAKMA LETTER TTAA
-11112 ; [.2CDD.0020.0002] # CHAKMA LETTER TTHAA
-11113 ; [.2CDE.0020.0002] # CHAKMA LETTER DDAA
-11114 ; [.2CDF.0020.0002] # CHAKMA LETTER DDHAA
-11115 ; [.2CE0.0020.0002] # CHAKMA LETTER NNAA
-11116 ; [.2CE1.0020.0002] # CHAKMA LETTER TAA
-11117 ; [.2CE2.0020.0002] # CHAKMA LETTER THAA
-11118 ; [.2CE3.0020.0002] # CHAKMA LETTER DAA
-11119 ; [.2CE4.0020.0002] # CHAKMA LETTER DHAA
-1111A ; [.2CE5.0020.0002] # CHAKMA LETTER NAA
-1111B ; [.2CE6.0020.0002] # CHAKMA LETTER PAA
-1111C ; [.2CE7.0020.0002] # CHAKMA LETTER PHAA
-1111D ; [.2CE8.0020.0002] # CHAKMA LETTER BAA
-1111E ; [.2CE9.0020.0002] # CHAKMA LETTER BHAA
-1111F ; [.2CEA.0020.0002] # CHAKMA LETTER MAA
-11120 ; [.2CEB.0020.0002] # CHAKMA LETTER YYAA
-11121 ; [.2CEC.0020.0002] # CHAKMA LETTER YAA
-11122 ; [.2CED.0020.0002] # CHAKMA LETTER RAA
-11123 ; [.2CEE.0020.0002] # CHAKMA LETTER LAA
-11124 ; [.2CEF.0020.0002] # CHAKMA LETTER WAA
-11125 ; [.2CF0.0020.0002] # CHAKMA LETTER SAA
-11126 ; [.2CF1.0020.0002] # CHAKMA LETTER HAA
-11127 ; [.2CF2.0020.0002] # CHAKMA VOWEL SIGN A
-11128 ; [.2CF3.0020.0002] # CHAKMA VOWEL SIGN I
-11129 ; [.2CF4.0020.0002] # CHAKMA VOWEL SIGN II
-1112A ; [.2CF5.0020.0002] # CHAKMA VOWEL SIGN U
-1112B ; [.2CF6.0020.0002] # CHAKMA VOWEL SIGN UU
-1112C ; [.2CF7.0020.0002] # CHAKMA VOWEL SIGN E
-1112D ; [.2CF8.0020.0002] # CHAKMA VOWEL SIGN AI
-1112E ; [.2CF9.0020.0002] # CHAKMA VOWEL SIGN O
-11131 11127 ; [.2CF9.0020.0002] # CHAKMA VOWEL SIGN O
-1112F ; [.2CFA.0020.0002] # CHAKMA VOWEL SIGN AU
-11132 11127 ; [.2CFA.0020.0002] # CHAKMA VOWEL SIGN AU
-11130 ; [.2CFB.0020.0002] # CHAKMA VOWEL SIGN OI
-11131 ; [.2CFC.0020.0002] # CHAKMA O MARK
-11132 ; [.2CFD.0020.0002] # CHAKMA AU MARK
-11133 ; [.2CFE.0020.0002] # CHAKMA VIRAMA
-11134 ; [.2CFF.0020.0002] # CHAKMA MAAYYAA
-1780 ; [.2D00.0020.0002] # KHMER LETTER KA
-1781 ; [.2D01.0020.0002] # KHMER LETTER KHA
-1782 ; [.2D02.0020.0002] # KHMER LETTER KO
-1783 ; [.2D03.0020.0002] # KHMER LETTER KHO
-1784 ; [.2D04.0020.0002] # KHMER LETTER NGO
-1785 ; [.2D05.0020.0002] # KHMER LETTER CA
-1786 ; [.2D06.0020.0002] # KHMER LETTER CHA
-1787 ; [.2D07.0020.0002] # KHMER LETTER CO
-1788 ; [.2D08.0020.0002] # KHMER LETTER CHO
-1789 ; [.2D09.0020.0002] # KHMER LETTER NYO
-178A ; [.2D0A.0020.0002] # KHMER LETTER DA
-178B ; [.2D0B.0020.0002] # KHMER LETTER TTHA
-178C ; [.2D0C.0020.0002] # KHMER LETTER DO
-178D ; [.2D0D.0020.0002] # KHMER LETTER TTHO
-178E ; [.2D0E.0020.0002] # KHMER LETTER NNO
-178F ; [.2D0F.0020.0002] # KHMER LETTER TA
-1790 ; [.2D10.0020.0002] # KHMER LETTER THA
-1791 ; [.2D11.0020.0002] # KHMER LETTER TO
-1792 ; [.2D12.0020.0002] # KHMER LETTER THO
-1793 ; [.2D13.0020.0002] # KHMER LETTER NO
-1794 ; [.2D14.0020.0002] # KHMER LETTER BA
-1795 ; [.2D15.0020.0002] # KHMER LETTER PHA
-1796 ; [.2D16.0020.0002] # KHMER LETTER PO
-1797 ; [.2D17.0020.0002] # KHMER LETTER PHO
-1798 ; [.2D18.0020.0002] # KHMER LETTER MO
-1799 ; [.2D19.0020.0002] # KHMER LETTER YO
-179A ; [.2D1A.0020.0002] # KHMER LETTER RO
-179B ; [.2D1B.0020.0002] # KHMER LETTER LO
-179C ; [.2D1C.0020.0002] # KHMER LETTER VO
-179D ; [.2D1D.0020.0002] # KHMER LETTER SHA
-179E ; [.2D1E.0020.0002] # KHMER LETTER SSO
-179F ; [.2D1F.0020.0002] # KHMER LETTER SA
-17A0 ; [.2D20.0020.0002] # KHMER LETTER HA
-17A1 ; [.2D21.0020.0002] # KHMER LETTER LA
-17A2 ; [.2D22.0020.0002] # KHMER LETTER QA
-17DC ; [.2D23.0020.0002] # KHMER SIGN AVAKRAHASANYA
-17A3 ; [.2D24.0020.0002] # KHMER INDEPENDENT VOWEL QAQ
-17A4 ; [.2D25.0020.0002] # KHMER INDEPENDENT VOWEL QAA
-17A5 ; [.2D26.0020.0002] # KHMER INDEPENDENT VOWEL QI
-17A6 ; [.2D27.0020.0002] # KHMER INDEPENDENT VOWEL QII
-17A7 ; [.2D28.0020.0002] # KHMER INDEPENDENT VOWEL QU
-17A8 ; [.2D29.0020.0002] # KHMER INDEPENDENT VOWEL QUK
-17A9 ; [.2D2A.0020.0002] # KHMER INDEPENDENT VOWEL QUU
-17AA ; [.2D2B.0020.0002] # KHMER INDEPENDENT VOWEL QUUV
-17AB ; [.2D2C.0020.0002] # KHMER INDEPENDENT VOWEL RY
-17AC ; [.2D2D.0020.0002] # KHMER INDEPENDENT VOWEL RYY
-17AD ; [.2D2E.0020.0002] # KHMER INDEPENDENT VOWEL LY
-17AE ; [.2D2F.0020.0002] # KHMER INDEPENDENT VOWEL LYY
-17AF ; [.2D30.0020.0002] # KHMER INDEPENDENT VOWEL QE
-17B0 ; [.2D31.0020.0002] # KHMER INDEPENDENT VOWEL QAI
-17B1 ; [.2D32.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE ONE
-17B2 ; [.2D33.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE TWO
-17B3 ; [.2D34.0020.0002] # KHMER INDEPENDENT VOWEL QAU
-17B6 ; [.2D35.0020.0002] # KHMER VOWEL SIGN AA
-17B7 ; [.2D36.0020.0002] # KHMER VOWEL SIGN I
-17B8 ; [.2D37.0020.0002] # KHMER VOWEL SIGN II
-17B9 ; [.2D38.0020.0002] # KHMER VOWEL SIGN Y
-17BA ; [.2D39.0020.0002] # KHMER VOWEL SIGN YY
-17BB ; [.2D3A.0020.0002] # KHMER VOWEL SIGN U
-17BC ; [.2D3B.0020.0002] # KHMER VOWEL SIGN UU
-17BD ; [.2D3C.0020.0002] # KHMER VOWEL SIGN UA
-17BE ; [.2D3D.0020.0002] # KHMER VOWEL SIGN OE
-17BF ; [.2D3E.0020.0002] # KHMER VOWEL SIGN YA
-17C0 ; [.2D3F.0020.0002] # KHMER VOWEL SIGN IE
-17C1 ; [.2D40.0020.0002] # KHMER VOWEL SIGN E
-17C2 ; [.2D41.0020.0002] # KHMER VOWEL SIGN AE
-17C3 ; [.2D42.0020.0002] # KHMER VOWEL SIGN AI
-17C4 ; [.2D43.0020.0002] # KHMER VOWEL SIGN OO
-17C5 ; [.2D44.0020.0002] # KHMER VOWEL SIGN AU
-17D2 ; [.2D45.0020.0002] # KHMER SIGN COENG
-1950 ; [.2D46.0020.0002] # TAI LE LETTER KA
-1951 ; [.2D47.0020.0002] # TAI LE LETTER XA
-1952 ; [.2D48.0020.0002] # TAI LE LETTER NGA
-1953 ; [.2D49.0020.0002] # TAI LE LETTER TSA
-1954 ; [.2D4A.0020.0002] # TAI LE LETTER SA
-1955 ; [.2D4B.0020.0002] # TAI LE LETTER YA
-1956 ; [.2D4C.0020.0002] # TAI LE LETTER TA
-1957 ; [.2D4D.0020.0002] # TAI LE LETTER THA
-1958 ; [.2D4E.0020.0002] # TAI LE LETTER LA
-1959 ; [.2D4F.0020.0002] # TAI LE LETTER PA
-195A ; [.2D50.0020.0002] # TAI LE LETTER PHA
-195B ; [.2D51.0020.0002] # TAI LE LETTER MA
-195C ; [.2D52.0020.0002] # TAI LE LETTER FA
-195D ; [.2D53.0020.0002] # TAI LE LETTER VA
-195E ; [.2D54.0020.0002] # TAI LE LETTER HA
-195F ; [.2D55.0020.0002] # TAI LE LETTER QA
-1960 ; [.2D56.0020.0002] # TAI LE LETTER KHA
-1961 ; [.2D57.0020.0002] # TAI LE LETTER TSHA
-1962 ; [.2D58.0020.0002] # TAI LE LETTER NA
-1963 ; [.2D59.0020.0002] # TAI LE LETTER A
-1964 ; [.2D5A.0020.0002] # TAI LE LETTER I
-1965 ; [.2D5B.0020.0002] # TAI LE LETTER EE
-1966 ; [.2D5C.0020.0002] # TAI LE LETTER EH
-1967 ; [.2D5D.0020.0002] # TAI LE LETTER U
-1968 ; [.2D5E.0020.0002] # TAI LE LETTER OO
-1969 ; [.2D5F.0020.0002] # TAI LE LETTER O
-196A ; [.2D60.0020.0002] # TAI LE LETTER UE
-196B ; [.2D61.0020.0002] # TAI LE LETTER E
-196C ; [.2D62.0020.0002] # TAI LE LETTER AUE
-196D ; [.2D63.0020.0002] # TAI LE LETTER AI
-1970 ; [.2D64.0020.0002] # TAI LE LETTER TONE-2
-1971 ; [.2D65.0020.0002] # TAI LE LETTER TONE-3
-1972 ; [.2D66.0020.0002] # TAI LE LETTER TONE-4
-1973 ; [.2D67.0020.0002] # TAI LE LETTER TONE-5
-1974 ; [.2D68.0020.0002] # TAI LE LETTER TONE-6
-1980 ; [.2D69.0020.0002] # NEW TAI LUE LETTER HIGH QA
-1981 ; [.2D6A.0020.0002] # NEW TAI LUE LETTER LOW QA
-1982 ; [.2D6B.0020.0002] # NEW TAI LUE LETTER HIGH KA
-1983 ; [.2D6C.0020.0002] # NEW TAI LUE LETTER HIGH XA
-1984 ; [.2D6D.0020.0002] # NEW TAI LUE LETTER HIGH NGA
-1985 ; [.2D6E.0020.0002] # NEW TAI LUE LETTER LOW KA
-1986 ; [.2D6F.0020.0002] # NEW TAI LUE LETTER LOW XA
-1987 ; [.2D70.0020.0002] # NEW TAI LUE LETTER LOW NGA
-1988 ; [.2D71.0020.0002] # NEW TAI LUE LETTER HIGH TSA
-1989 ; [.2D72.0020.0002] # NEW TAI LUE LETTER HIGH SA
-198A ; [.2D73.0020.0002] # NEW TAI LUE LETTER HIGH YA
-198B ; [.2D74.0020.0002] # NEW TAI LUE LETTER LOW TSA
-198C ; [.2D75.0020.0002] # NEW TAI LUE LETTER LOW SA
-198D ; [.2D76.0020.0002] # NEW TAI LUE LETTER LOW YA
-198E ; [.2D77.0020.0002] # NEW TAI LUE LETTER HIGH TA
-198F ; [.2D78.0020.0002] # NEW TAI LUE LETTER HIGH THA
-1990 ; [.2D79.0020.0002] # NEW TAI LUE LETTER HIGH NA
-1991 ; [.2D7A.0020.0002] # NEW TAI LUE LETTER LOW TA
-1992 ; [.2D7B.0020.0002] # NEW TAI LUE LETTER LOW THA
-1993 ; [.2D7C.0020.0002] # NEW TAI LUE LETTER LOW NA
-1994 ; [.2D7D.0020.0002] # NEW TAI LUE LETTER HIGH PA
-1995 ; [.2D7E.0020.0002] # NEW TAI LUE LETTER HIGH PHA
-1996 ; [.2D7F.0020.0002] # NEW TAI LUE LETTER HIGH MA
-1997 ; [.2D80.0020.0002] # NEW TAI LUE LETTER LOW PA
-1998 ; [.2D81.0020.0002] # NEW TAI LUE LETTER LOW PHA
-1999 ; [.2D82.0020.0002] # NEW TAI LUE LETTER LOW MA
-199A ; [.2D83.0020.0002] # NEW TAI LUE LETTER HIGH FA
-199B ; [.2D84.0020.0002] # NEW TAI LUE LETTER HIGH VA
-199C ; [.2D85.0020.0002] # NEW TAI LUE LETTER HIGH LA
-19DE ; [.2D85.0020.0004][.2D9B.0020.0004] # NEW TAI LUE SIGN LAE
-19DF ; [.2D85.0020.0004][.2D9B.0020.0004][.2DA6.0020.0004] # NEW TAI LUE SIGN LAEV
-199D ; [.2D86.0020.0002] # NEW TAI LUE LETTER LOW FA
-199E ; [.2D87.0020.0002] # NEW TAI LUE LETTER LOW VA
-199F ; [.2D88.0020.0002] # NEW TAI LUE LETTER LOW LA
-19A0 ; [.2D89.0020.0002] # NEW TAI LUE LETTER HIGH HA
-19A1 ; [.2D8A.0020.0002] # NEW TAI LUE LETTER HIGH DA
-19A2 ; [.2D8B.0020.0002] # NEW TAI LUE LETTER HIGH BA
-19A3 ; [.2D8C.0020.0002] # NEW TAI LUE LETTER LOW HA
-19A4 ; [.2D8D.0020.0002] # NEW TAI LUE LETTER LOW DA
-19A5 ; [.2D8E.0020.0002] # NEW TAI LUE LETTER LOW BA
-19A6 ; [.2D8F.0020.0002] # NEW TAI LUE LETTER HIGH KVA
-19A7 ; [.2D90.0020.0002] # NEW TAI LUE LETTER HIGH XVA
-19A8 ; [.2D91.0020.0002] # NEW TAI LUE LETTER LOW KVA
-19A9 ; [.2D92.0020.0002] # NEW TAI LUE LETTER LOW XVA
-19AA ; [.2D93.0020.0002] # NEW TAI LUE LETTER HIGH SUA
-19AB ; [.2D94.0020.0002] # NEW TAI LUE LETTER LOW SUA
-19B0 ; [.2D95.0020.0002] # NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
-19B1 ; [.2D96.0020.0002] # NEW TAI LUE VOWEL SIGN AA
-19B2 ; [.2D97.0020.0002] # NEW TAI LUE VOWEL SIGN II
-19B3 ; [.2D98.0020.0002] # NEW TAI LUE VOWEL SIGN U
-19B4 ; [.2D99.0020.0002] # NEW TAI LUE VOWEL SIGN UU
-19B5 ; [.2D9A.0020.0002] # NEW TAI LUE VOWEL SIGN E
-19B6 ; [.2D9B.0020.0002] # NEW TAI LUE VOWEL SIGN AE
-19B7 ; [.2D9C.0020.0002] # NEW TAI LUE VOWEL SIGN O
-19B8 ; [.2D9D.0020.0002] # NEW TAI LUE VOWEL SIGN OA
-19B9 ; [.2D9E.0020.0002] # NEW TAI LUE VOWEL SIGN UE
-19BA ; [.2D9F.0020.0002] # NEW TAI LUE VOWEL SIGN AY
-19BB ; [.2DA0.0020.0002] # NEW TAI LUE VOWEL SIGN AAY
-19BC ; [.2DA1.0020.0002] # NEW TAI LUE VOWEL SIGN UY
-19BD ; [.2DA2.0020.0002] # NEW TAI LUE VOWEL SIGN OY
-19BE ; [.2DA3.0020.0002] # NEW TAI LUE VOWEL SIGN OAY
-19BF ; [.2DA4.0020.0002] # NEW TAI LUE VOWEL SIGN UEY
-19C0 ; [.2DA5.0020.0002] # NEW TAI LUE VOWEL SIGN IY
-19C1 ; [.2DA6.0020.0002] # NEW TAI LUE LETTER FINAL V
-19C2 ; [.2DA7.0020.0002] # NEW TAI LUE LETTER FINAL NG
-19C3 ; [.2DA8.0020.0002] # NEW TAI LUE LETTER FINAL N
-19C4 ; [.2DA9.0020.0002] # NEW TAI LUE LETTER FINAL M
-19C5 ; [.2DAA.0020.0002] # NEW TAI LUE LETTER FINAL K
-19C6 ; [.2DAB.0020.0002] # NEW TAI LUE LETTER FINAL D
-19C7 ; [.2DAC.0020.0002] # NEW TAI LUE LETTER FINAL B
-19C8 ; [.2DAD.0020.0002] # NEW TAI LUE TONE MARK-1
-19C9 ; [.2DAE.0020.0002] # NEW TAI LUE TONE MARK-2
-1A20 ; [.2DAF.0020.0002] # TAI THAM LETTER HIGH KA
-1A21 ; [.2DB0.0020.0002] # TAI THAM LETTER HIGH KHA
-1A22 ; [.2DB1.0020.0002] # TAI THAM LETTER HIGH KXA
-1A23 ; [.2DB2.0020.0002] # TAI THAM LETTER LOW KA
-1A24 ; [.2DB3.0020.0002] # TAI THAM LETTER LOW KXA
-1A25 ; [.2DB4.0020.0002] # TAI THAM LETTER LOW KHA
-1A26 ; [.2DB5.0020.0002] # TAI THAM LETTER NGA
-1A58 ; [.2DB5.0020.0004] # TAI THAM SIGN MAI KANG LAI
-1A59 ; [.2DB5.0020.0004] # TAI THAM CONSONANT SIGN FINAL NGA
-1A27 ; [.2DB6.0020.0002] # TAI THAM LETTER HIGH CA
-1A28 ; [.2DB7.0020.0002] # TAI THAM LETTER HIGH CHA
-1A29 ; [.2DB8.0020.0002] # TAI THAM LETTER LOW CA
-1A2A ; [.2DB9.0020.0002] # TAI THAM LETTER LOW SA
-1A2B ; [.2DBA.0020.0002] # TAI THAM LETTER LOW CHA
-1A2C ; [.2DBB.0020.0002] # TAI THAM LETTER NYA
-1A2D ; [.2DBC.0020.0002] # TAI THAM LETTER RATA
-1A2E ; [.2DBD.0020.0002] # TAI THAM LETTER HIGH RATHA
-1A2F ; [.2DBE.0020.0002] # TAI THAM LETTER DA
-1A30 ; [.2DBF.0020.0002] # TAI THAM LETTER LOW RATHA
-1A31 ; [.2DC0.0020.0002] # TAI THAM LETTER RANA
-1A32 ; [.2DC1.0020.0002] # TAI THAM LETTER HIGH TA
-1A33 ; [.2DC2.0020.0002] # TAI THAM LETTER HIGH THA
-1A34 ; [.2DC3.0020.0002] # TAI THAM LETTER LOW TA
-1A35 ; [.2DC4.0020.0002] # TAI THAM LETTER LOW THA
-1A36 ; [.2DC5.0020.0002] # TAI THAM LETTER NA
-1A37 ; [.2DC6.0020.0002] # TAI THAM LETTER BA
-1A38 ; [.2DC7.0020.0002] # TAI THAM LETTER HIGH PA
-1A39 ; [.2DC8.0020.0002] # TAI THAM LETTER HIGH PHA
-1A3A ; [.2DC9.0020.0002] # TAI THAM LETTER HIGH FA
-1A3B ; [.2DCA.0020.0002] # TAI THAM LETTER LOW PA
-1A5A ; [.2DCA.0020.0004] # TAI THAM CONSONANT SIGN LOW PA
-1A5B ; [.2DCA.0020.0004] # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
-1A3C ; [.2DCB.0020.0002] # TAI THAM LETTER LOW FA
-1A3D ; [.2DCC.0020.0002] # TAI THAM LETTER LOW PHA
-1A3E ; [.2DCD.0020.0002] # TAI THAM LETTER MA
-1A3F ; [.2DCE.0020.0002] # TAI THAM LETTER LOW YA
-1A40 ; [.2DCF.0020.0002] # TAI THAM LETTER HIGH YA
-1A41 ; [.2DD0.0020.0002] # TAI THAM LETTER RA
-1A42 ; [.2DD1.0020.0002] # TAI THAM LETTER RUE
-1A43 ; [.2DD2.0020.0002] # TAI THAM LETTER LA
-1A44 ; [.2DD3.0020.0002] # TAI THAM LETTER LUE
-1A45 ; [.2DD4.0020.0002] # TAI THAM LETTER WA
-1A46 ; [.2DD5.0020.0002] # TAI THAM LETTER HIGH SHA
-1A54 ; [.2DD5.0020.0004][.2DFB.0020.0004][.2DD5.0020.0004] # TAI THAM LETTER GREAT SA
-1A47 ; [.2DD6.0020.0002] # TAI THAM LETTER HIGH SSA
-1A48 ; [.2DD7.0020.0002] # TAI THAM LETTER HIGH SA
-1A49 ; [.2DD8.0020.0002] # TAI THAM LETTER HIGH HA
-1A4A ; [.2DD9.0020.0002] # TAI THAM LETTER LLA
-1A4B ; [.2DDA.0020.0002] # TAI THAM LETTER A
-1A4C ; [.2DDB.0020.0002] # TAI THAM LETTER LOW HA
-1A53 ; [.2DDC.0020.0002] # TAI THAM LETTER LAE
-1A6B ; [.2DDD.0020.0002] # TAI THAM VOWEL SIGN O
-1A55 ; [.2DDE.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL RA
-1A56 ; [.2DDF.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL LA
-1A57 ; [.2DE0.0020.0002] # TAI THAM CONSONANT SIGN LA TANG LAI
-1A5C ; [.2DE1.0020.0002] # TAI THAM CONSONANT SIGN MA
-1A5D ; [.2DE2.0020.0002] # TAI THAM CONSONANT SIGN BA
-1A5E ; [.2DE3.0020.0002] # TAI THAM CONSONANT SIGN SA
-1A4D ; [.2DE4.0020.0002] # TAI THAM LETTER I
-1A4E ; [.2DE5.0020.0002] # TAI THAM LETTER II
-1A4F ; [.2DE6.0020.0002] # TAI THAM LETTER U
-1A50 ; [.2DE7.0020.0002] # TAI THAM LETTER UU
-1A51 ; [.2DE8.0020.0002] # TAI THAM LETTER EE
-1A52 ; [.2DE9.0020.0002] # TAI THAM LETTER OO
-1A61 ; [.2DEA.0020.0002] # TAI THAM VOWEL SIGN A
-1A6C ; [.2DEB.0020.0002] # TAI THAM VOWEL SIGN OA BELOW
-1A62 ; [.2DEC.0020.0002] # TAI THAM VOWEL SIGN MAI SAT
-1A63 ; [.2DED.0020.0002] # TAI THAM VOWEL SIGN AA
-1A64 ; [.2DED.0020.0004] # TAI THAM VOWEL SIGN TALL AA
-1A65 ; [.2DEE.0020.0002] # TAI THAM VOWEL SIGN I
-1A66 ; [.2DEF.0020.0002] # TAI THAM VOWEL SIGN II
-1A67 ; [.2DF0.0020.0002] # TAI THAM VOWEL SIGN UE
-1A68 ; [.2DF1.0020.0002] # TAI THAM VOWEL SIGN UUE
-1A69 ; [.2DF2.0020.0002] # TAI THAM VOWEL SIGN U
-1A6A ; [.2DF3.0020.0002] # TAI THAM VOWEL SIGN UU
-1A6E ; [.2DF4.0020.0002] # TAI THAM VOWEL SIGN E
-1A6F ; [.2DF5.0020.0002] # TAI THAM VOWEL SIGN AE
-1A73 ; [.2DF6.0020.0002] # TAI THAM VOWEL SIGN OA ABOVE
-1A70 ; [.2DF7.0020.0002] # TAI THAM VOWEL SIGN OO
-1A71 ; [.2DF8.0020.0002] # TAI THAM VOWEL SIGN AI
-1A72 ; [.2DF9.0020.0002] # TAI THAM VOWEL SIGN THAM AI
-1A6D ; [.2DFA.0020.0002] # TAI THAM VOWEL SIGN OY
-1A60 ; [.2DFB.0020.0002] # TAI THAM SIGN SAKOT
-AA00 ; [.2DFC.0020.0002] # CHAM LETTER A
-AA01 ; [.2DFD.0020.0002] # CHAM LETTER I
-AA02 ; [.2DFE.0020.0002] # CHAM LETTER U
-AA03 ; [.2DFF.0020.0002] # CHAM LETTER E
-AA04 ; [.2E00.0020.0002] # CHAM LETTER AI
-AA05 ; [.2E01.0020.0002] # CHAM LETTER O
-AA06 ; [.2E02.0020.0002] # CHAM LETTER KA
-AA07 ; [.2E03.0020.0002] # CHAM LETTER KHA
-AA08 ; [.2E04.0020.0002] # CHAM LETTER GA
-AA09 ; [.2E05.0020.0002] # CHAM LETTER GHA
-AA0A ; [.2E06.0020.0002] # CHAM LETTER NGUE
-AA0B ; [.2E07.0020.0002] # CHAM LETTER NGA
-AA0C ; [.2E08.0020.0002] # CHAM LETTER CHA
-AA0D ; [.2E09.0020.0002] # CHAM LETTER CHHA
-AA0E ; [.2E0A.0020.0002] # CHAM LETTER JA
-AA0F ; [.2E0B.0020.0002] # CHAM LETTER JHA
-AA10 ; [.2E0C.0020.0002] # CHAM LETTER NHUE
-AA11 ; [.2E0D.0020.0002] # CHAM LETTER NHA
-AA12 ; [.2E0E.0020.0002] # CHAM LETTER NHJA
-AA13 ; [.2E0F.0020.0002] # CHAM LETTER TA
-AA14 ; [.2E10.0020.0002] # CHAM LETTER THA
-AA15 ; [.2E11.0020.0002] # CHAM LETTER DA
-AA16 ; [.2E12.0020.0002] # CHAM LETTER DHA
-AA17 ; [.2E13.0020.0002] # CHAM LETTER NUE
-AA18 ; [.2E14.0020.0002] # CHAM LETTER NA
-AA19 ; [.2E15.0020.0002] # CHAM LETTER DDA
-AA1A ; [.2E16.0020.0002] # CHAM LETTER PA
-AA1B ; [.2E17.0020.0002] # CHAM LETTER PPA
-AA1C ; [.2E18.0020.0002] # CHAM LETTER PHA
-AA1D ; [.2E19.0020.0002] # CHAM LETTER BA
-AA1E ; [.2E1A.0020.0002] # CHAM LETTER BHA
-AA1F ; [.2E1B.0020.0002] # CHAM LETTER MUE
-AA20 ; [.2E1C.0020.0002] # CHAM LETTER MA
-AA21 ; [.2E1D.0020.0002] # CHAM LETTER BBA
-AA22 ; [.2E1E.0020.0002] # CHAM LETTER YA
-AA23 ; [.2E1F.0020.0002] # CHAM LETTER RA
-AA24 ; [.2E20.0020.0002] # CHAM LETTER LA
-AA25 ; [.2E21.0020.0002] # CHAM LETTER VA
-AA26 ; [.2E22.0020.0002] # CHAM LETTER SSA
-AA27 ; [.2E23.0020.0002] # CHAM LETTER SA
-AA28 ; [.2E24.0020.0002] # CHAM LETTER HA
-AA33 ; [.2E25.0020.0002] # CHAM CONSONANT SIGN YA
-AA34 ; [.2E26.0020.0002] # CHAM CONSONANT SIGN RA
-AA35 ; [.2E27.0020.0002] # CHAM CONSONANT SIGN LA
-AA36 ; [.2E28.0020.0002] # CHAM CONSONANT SIGN WA
-AA29 ; [.2E29.0020.0002] # CHAM VOWEL SIGN AA
-AA2A ; [.2E2A.0020.0002] # CHAM VOWEL SIGN I
-AA2B ; [.2E2B.0020.0002] # CHAM VOWEL SIGN II
-AA2C ; [.2E2C.0020.0002] # CHAM VOWEL SIGN EI
-AA2D ; [.2E2D.0020.0002] # CHAM VOWEL SIGN U
-AA2E ; [.2E2E.0020.0002] # CHAM VOWEL SIGN OE
-AA2F ; [.2E2F.0020.0002] # CHAM VOWEL SIGN O
-AA30 ; [.2E30.0020.0002] # CHAM VOWEL SIGN AI
-AA31 ; [.2E31.0020.0002] # CHAM VOWEL SIGN AU
-AA32 ; [.2E32.0020.0002] # CHAM VOWEL SIGN UE
-AA40 ; [.2E33.0020.0002] # CHAM LETTER FINAL K
-AA41 ; [.2E34.0020.0002] # CHAM LETTER FINAL G
-AA42 ; [.2E35.0020.0002] # CHAM LETTER FINAL NG
-AA43 ; [.2E36.0020.0002] # CHAM CONSONANT SIGN FINAL NG
-AA44 ; [.2E37.0020.0002] # CHAM LETTER FINAL CH
-AA45 ; [.2E38.0020.0002] # CHAM LETTER FINAL T
-AA46 ; [.2E39.0020.0002] # CHAM LETTER FINAL N
-AA47 ; [.2E3A.0020.0002] # CHAM LETTER FINAL P
-AA48 ; [.2E3B.0020.0002] # CHAM LETTER FINAL Y
-AA49 ; [.2E3C.0020.0002] # CHAM LETTER FINAL R
-AA4A ; [.2E3D.0020.0002] # CHAM LETTER FINAL L
-AA4B ; [.2E3E.0020.0002] # CHAM LETTER FINAL SS
-AA4C ; [.2E3F.0020.0002] # CHAM CONSONANT SIGN FINAL M
-AA4D ; [.2E40.0020.0002] # CHAM CONSONANT SIGN FINAL H
-1B05 ; [.2E41.0020.0002] # BALINESE LETTER AKARA
-1B06 ; [.2E42.0020.0002] # BALINESE LETTER AKARA TEDUNG
-1B05 1B35 ; [.2E42.0020.0002] # BALINESE LETTER AKARA TEDUNG
-1B07 ; [.2E43.0020.0002] # BALINESE LETTER IKARA
-1B08 ; [.2E44.0020.0002] # BALINESE LETTER IKARA TEDUNG
-1B07 1B35 ; [.2E44.0020.0002] # BALINESE LETTER IKARA TEDUNG
-1B09 ; [.2E45.0020.0002] # BALINESE LETTER UKARA
-1B0A ; [.2E46.0020.0002] # BALINESE LETTER UKARA TEDUNG
-1B09 1B35 ; [.2E46.0020.0002] # BALINESE LETTER UKARA TEDUNG
-1B0B ; [.2E47.0020.0002] # BALINESE LETTER RA REPA
-1B0C ; [.2E48.0020.0002] # BALINESE LETTER RA REPA TEDUNG
-1B0B 1B35 ; [.2E48.0020.0002] # BALINESE LETTER RA REPA TEDUNG
-1B0D ; [.2E49.0020.0002] # BALINESE LETTER LA LENGA
-1B0E ; [.2E4A.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
-1B0D 1B35 ; [.2E4A.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
-1B0F ; [.2E4B.0020.0002] # BALINESE LETTER EKARA
-1B10 ; [.2E4C.0020.0002] # BALINESE LETTER AIKARA
-1B11 ; [.2E4D.0020.0002] # BALINESE LETTER OKARA
-1B12 ; [.2E4E.0020.0002] # BALINESE LETTER OKARA TEDUNG
-1B11 1B35 ; [.2E4E.0020.0002] # BALINESE LETTER OKARA TEDUNG
-1B13 ; [.2E4F.0020.0002] # BALINESE LETTER KA
-1B45 ; [.2E50.0020.0002] # BALINESE LETTER KAF SASAK
-1B46 ; [.2E51.0020.0002] # BALINESE LETTER KHOT SASAK
-1B14 ; [.2E52.0020.0002] # BALINESE LETTER KA MAHAPRANA
-1B15 ; [.2E53.0020.0002] # BALINESE LETTER GA
-1B16 ; [.2E54.0020.0002] # BALINESE LETTER GA GORA
-1B17 ; [.2E55.0020.0002] # BALINESE LETTER NGA
-1B18 ; [.2E56.0020.0002] # BALINESE LETTER CA
-1B19 ; [.2E57.0020.0002] # BALINESE LETTER CA LACA
-1B1A ; [.2E58.0020.0002] # BALINESE LETTER JA
-1B1B ; [.2E59.0020.0002] # BALINESE LETTER JA JERA
-1B1C ; [.2E5A.0020.0002] # BALINESE LETTER NYA
-1B1D ; [.2E5B.0020.0002] # BALINESE LETTER TA LATIK
-1B1E ; [.2E5C.0020.0002] # BALINESE LETTER TA MURDA MAHAPRANA
-1B1F ; [.2E5D.0020.0002] # BALINESE LETTER DA MURDA ALPAPRANA
-1B20 ; [.2E5E.0020.0002] # BALINESE LETTER DA MURDA MAHAPRANA
-1B21 ; [.2E5F.0020.0002] # BALINESE LETTER NA RAMBAT
-1B22 ; [.2E60.0020.0002] # BALINESE LETTER TA
-1B47 ; [.2E61.0020.0002] # BALINESE LETTER TZIR SASAK
-1B23 ; [.2E62.0020.0002] # BALINESE LETTER TA TAWA
-1B24 ; [.2E63.0020.0002] # BALINESE LETTER DA
-1B25 ; [.2E64.0020.0002] # BALINESE LETTER DA MADU
-1B26 ; [.2E65.0020.0002] # BALINESE LETTER NA
-1B27 ; [.2E66.0020.0002] # BALINESE LETTER PA
-1B48 ; [.2E67.0020.0002] # BALINESE LETTER EF SASAK
-1B28 ; [.2E68.0020.0002] # BALINESE LETTER PA KAPAL
-1B29 ; [.2E69.0020.0002] # BALINESE LETTER BA
-1B2A ; [.2E6A.0020.0002] # BALINESE LETTER BA KEMBANG
-1B2B ; [.2E6B.0020.0002] # BALINESE LETTER MA
-1B2C ; [.2E6C.0020.0002] # BALINESE LETTER YA
-1B2D ; [.2E6D.0020.0002] # BALINESE LETTER RA
-1B2E ; [.2E6E.0020.0002] # BALINESE LETTER LA
-1B2F ; [.2E6F.0020.0002] # BALINESE LETTER WA
-1B49 ; [.2E70.0020.0002] # BALINESE LETTER VE SASAK
-1B30 ; [.2E71.0020.0002] # BALINESE LETTER SA SAGA
-1B31 ; [.2E72.0020.0002] # BALINESE LETTER SA SAPA
-1B32 ; [.2E73.0020.0002] # BALINESE LETTER SA
-1B4A ; [.2E74.0020.0002] # BALINESE LETTER ZAL SASAK
-1B4B ; [.2E75.0020.0002] # BALINESE LETTER ASYURA SASAK
-1B33 ; [.2E76.0020.0002] # BALINESE LETTER HA
-1B35 ; [.2E77.0020.0002] # BALINESE VOWEL SIGN TEDUNG
-1B36 ; [.2E78.0020.0002] # BALINESE VOWEL SIGN ULU
-1B37 ; [.2E79.0020.0002] # BALINESE VOWEL SIGN ULU SARI
-1B38 ; [.2E7A.0020.0002] # BALINESE VOWEL SIGN SUKU
-1B39 ; [.2E7B.0020.0002] # BALINESE VOWEL SIGN SUKU ILUT
-1B3A ; [.2E7C.0020.0002] # BALINESE VOWEL SIGN RA REPA
-1B3B ; [.2E7D.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3A 1B35 ; [.2E7D.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3C ; [.2E7E.0020.0002] # BALINESE VOWEL SIGN LA LENGA
-1B3D ; [.2E7F.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3C 1B35 ; [.2E7F.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
-1B3E ; [.2E80.0020.0002] # BALINESE VOWEL SIGN TALING
-1B3F ; [.2E81.0020.0002] # BALINESE VOWEL SIGN TALING REPA
-1B40 ; [.2E82.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
-1B3E 1B35 ; [.2E82.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
-1B41 ; [.2E83.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B3F 1B35 ; [.2E83.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B42 ; [.2E84.0020.0002] # BALINESE VOWEL SIGN PEPET
-1B43 ; [.2E85.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
-1B42 1B35 ; [.2E85.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
-1B44 ; [.2E86.0020.0002] # BALINESE ADEG ADEG
-A984 ; [.2E87.0020.0002] # JAVANESE LETTER A
-A985 ; [.2E88.0020.0002] # JAVANESE LETTER I KAWI
-A986 ; [.2E89.0020.0002] # JAVANESE LETTER I
-A987 ; [.2E8A.0020.0002] # JAVANESE LETTER II
-A988 ; [.2E8B.0020.0002] # JAVANESE LETTER U
-A989 ; [.2E8C.0020.0002] # JAVANESE LETTER PA CEREK
-A98A ; [.2E8D.0020.0002] # JAVANESE LETTER NGA LELET
-A98B ; [.2E8E.0020.0002] # JAVANESE LETTER NGA LELET RASWADI
-A98C ; [.2E8F.0020.0002] # JAVANESE LETTER E
-A98D ; [.2E90.0020.0002] # JAVANESE LETTER AI
-A98E ; [.2E91.0020.0002] # JAVANESE LETTER O
-A98F ; [.2E92.0020.0002] # JAVANESE LETTER KA
-A990 ; [.2E93.0020.0002] # JAVANESE LETTER KA SASAK
-A991 ; [.2E94.0020.0002] # JAVANESE LETTER KA MURDA
-A992 ; [.2E95.0020.0002] # JAVANESE LETTER GA
-A993 ; [.2E96.0020.0002] # JAVANESE LETTER GA MURDA
-A994 ; [.2E97.0020.0002] # JAVANESE LETTER NGA
-A995 ; [.2E98.0020.0002] # JAVANESE LETTER CA
-A996 ; [.2E99.0020.0002] # JAVANESE LETTER CA MURDA
-A997 ; [.2E9A.0020.0002] # JAVANESE LETTER JA
-A998 ; [.2E9B.0020.0002] # JAVANESE LETTER NYA MURDA
-A999 ; [.2E9C.0020.0002] # JAVANESE LETTER JA MAHAPRANA
-A99A ; [.2E9D.0020.0002] # JAVANESE LETTER NYA
-A99B ; [.2E9E.0020.0002] # JAVANESE LETTER TTA
-A99C ; [.2E9F.0020.0002] # JAVANESE LETTER TTA MAHAPRANA
-A99D ; [.2EA0.0020.0002] # JAVANESE LETTER DDA
-A99E ; [.2EA1.0020.0002] # JAVANESE LETTER DDA MAHAPRANA
-A99F ; [.2EA2.0020.0002] # JAVANESE LETTER NA MURDA
-A9A0 ; [.2EA3.0020.0002] # JAVANESE LETTER TA
-A9A1 ; [.2EA4.0020.0002] # JAVANESE LETTER TA MURDA
-A9A2 ; [.2EA5.0020.0002] # JAVANESE LETTER DA
-A9A3 ; [.2EA6.0020.0002] # JAVANESE LETTER DA MAHAPRANA
-A9A4 ; [.2EA7.0020.0002] # JAVANESE LETTER NA
-A9A5 ; [.2EA8.0020.0002] # JAVANESE LETTER PA
-A9A6 ; [.2EA9.0020.0002] # JAVANESE LETTER PA MURDA
-A9A7 ; [.2EAA.0020.0002] # JAVANESE LETTER BA
-A9A8 ; [.2EAB.0020.0002] # JAVANESE LETTER BA MURDA
-A9A9 ; [.2EAC.0020.0002] # JAVANESE LETTER MA
-A9AA ; [.2EAD.0020.0002] # JAVANESE LETTER YA
-A9BE ; [.2EAE.0020.0002] # JAVANESE CONSONANT SIGN PENGKAL
-A9AB ; [.2EAF.0020.0002] # JAVANESE LETTER RA
-A9AC ; [.2EAF.0020.0004] # JAVANESE LETTER RA AGUNG
-A9BF ; [.2EB0.0020.0002] # JAVANESE CONSONANT SIGN CAKRA
-A9AD ; [.2EB1.0020.0002] # JAVANESE LETTER LA
-A9AE ; [.2EB2.0020.0002] # JAVANESE LETTER WA
-A9AF ; [.2EB3.0020.0002] # JAVANESE LETTER SA MURDA
-A9B0 ; [.2EB4.0020.0002] # JAVANESE LETTER SA MAHAPRANA
-A9B1 ; [.2EB5.0020.0002] # JAVANESE LETTER SA
-A9B2 ; [.2EB6.0020.0002] # JAVANESE LETTER HA
-A9B4 ; [.2EB7.0020.0002] # JAVANESE VOWEL SIGN TARUNG
-A9BC ; [.2EB8.0020.0002] # JAVANESE VOWEL SIGN PEPET
-A9B6 ; [.2EB9.0020.0002] # JAVANESE VOWEL SIGN WULU
-A9B7 ; [.2EBA.0020.0002] # JAVANESE VOWEL SIGN WULU MELIK
-A9B8 ; [.2EBB.0020.0002] # JAVANESE VOWEL SIGN SUKU
-A9B9 ; [.2EBC.0020.0002] # JAVANESE VOWEL SIGN SUKU MENDUT
-A9BD ; [.2EBD.0020.0002] # JAVANESE CONSONANT SIGN KERET
-A9BA ; [.2EBE.0020.0002] # JAVANESE VOWEL SIGN TALING
-A9BB ; [.2EBF.0020.0002] # JAVANESE VOWEL SIGN DIRGA MURE
-A9B5 ; [.2EC0.0020.0002] # JAVANESE VOWEL SIGN TOLONG
-A9C0 ; [.2EC1.0020.0002] # JAVANESE PANGKON
-1880 ; [.2EC2.0020.0002] # MONGOLIAN LETTER ALI GALI ANUSVARA ONE
-1881 ; [.2EC3.0020.0002] # MONGOLIAN LETTER ALI GALI VISARGA ONE
-1882 ; [.2EC4.0020.0002] # MONGOLIAN LETTER ALI GALI DAMARU
-1883 ; [.2EC5.0020.0002] # MONGOLIAN LETTER ALI GALI UBADAMA
-1884 ; [.2EC6.0020.0002] # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
-1885 ; [.2EC7.0020.0002] # MONGOLIAN LETTER ALI GALI BALUDA
-1886 ; [.2EC8.0020.0002] # MONGOLIAN LETTER ALI GALI THREE BALUDA
-1843 ; [.2EC9.0020.0002] # MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1820 ; [.2ECA.0020.0002] # MONGOLIAN LETTER A
-1887 ; [.2ECB.0020.0002] # MONGOLIAN LETTER ALI GALI A
-1821 ; [.2ECC.0020.0002] # MONGOLIAN LETTER E
-1844 ; [.2ECD.0020.0002] # MONGOLIAN LETTER TODO E
-185D ; [.2ECE.0020.0002] # MONGOLIAN LETTER SIBE E
-1822 ; [.2ECF.0020.0002] # MONGOLIAN LETTER I
-1845 ; [.2ED0.0020.0002] # MONGOLIAN LETTER TODO I
-185E ; [.2ED1.0020.0002] # MONGOLIAN LETTER SIBE I
-1873 ; [.2ED2.0020.0002] # MONGOLIAN LETTER MANCHU I
-1888 ; [.2ED3.0020.0002] # MONGOLIAN LETTER ALI GALI I
-185F ; [.2ED4.0020.0002] # MONGOLIAN LETTER SIBE IY
-1823 ; [.2ED5.0020.0002] # MONGOLIAN LETTER O
-1846 ; [.2ED6.0020.0002] # MONGOLIAN LETTER TODO O
-1824 ; [.2ED7.0020.0002] # MONGOLIAN LETTER U
-1847 ; [.2ED8.0020.0002] # MONGOLIAN LETTER TODO U
-1861 ; [.2ED9.0020.0002] # MONGOLIAN LETTER SIBE U
-1825 ; [.2EDA.0020.0002] # MONGOLIAN LETTER OE
-1848 ; [.2EDB.0020.0002] # MONGOLIAN LETTER TODO OE
-1826 ; [.2EDC.0020.0002] # MONGOLIAN LETTER UE
-1849 ; [.2EDD.0020.0002] # MONGOLIAN LETTER TODO UE
-1860 ; [.2EDE.0020.0002] # MONGOLIAN LETTER SIBE UE
-1827 ; [.2EDF.0020.0002] # MONGOLIAN LETTER EE
-1828 ; [.2EE0.0020.0002] # MONGOLIAN LETTER NA
-1829 ; [.2EE1.0020.0002] # MONGOLIAN LETTER ANG
-184A ; [.2EE2.0020.0002] # MONGOLIAN LETTER TODO ANG
-1862 ; [.2EE3.0020.0002] # MONGOLIAN LETTER SIBE ANG
-188A ; [.2EE4.0020.0002] # MONGOLIAN LETTER ALI GALI NGA
-189B ; [.2EE5.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI NGA
-182A ; [.2EE6.0020.0002] # MONGOLIAN LETTER BA
-184B ; [.2EE7.0020.0002] # MONGOLIAN LETTER TODO BA
-182B ; [.2EE8.0020.0002] # MONGOLIAN LETTER PA
-184C ; [.2EE9.0020.0002] # MONGOLIAN LETTER TODO PA
-1866 ; [.2EEA.0020.0002] # MONGOLIAN LETTER SIBE PA
-182C ; [.2EEB.0020.0002] # MONGOLIAN LETTER QA
-184D ; [.2EEC.0020.0002] # MONGOLIAN LETTER TODO QA
-182D ; [.2EED.0020.0002] # MONGOLIAN LETTER GA
-184E ; [.2EEE.0020.0002] # MONGOLIAN LETTER TODO GA
-1864 ; [.2EEF.0020.0002] # MONGOLIAN LETTER SIBE GA
-189A ; [.2EF0.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI GHA
-1865 ; [.2EF1.0020.0002] # MONGOLIAN LETTER SIBE HA
-182E ; [.2EF2.0020.0002] # MONGOLIAN LETTER MA
-184F ; [.2EF3.0020.0002] # MONGOLIAN LETTER TODO MA
-182F ; [.2EF4.0020.0002] # MONGOLIAN LETTER LA
-1830 ; [.2EF5.0020.0002] # MONGOLIAN LETTER SA
-1831 ; [.2EF6.0020.0002] # MONGOLIAN LETTER SHA
-1867 ; [.2EF7.0020.0002] # MONGOLIAN LETTER SIBE SHA
-189C ; [.2EF8.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CA
-189D ; [.2EF9.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI JHA
-18A2 ; [.2EFA.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI SSA
-18A4 ; [.2EFB.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZHA
-18A5 ; [.2EFC.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZA
-1832 ; [.2EFD.0020.0002] # MONGOLIAN LETTER TA
-1850 ; [.2EFE.0020.0002] # MONGOLIAN LETTER TODO TA
-1868 ; [.2EFF.0020.0002] # MONGOLIAN LETTER SIBE TA
-1833 ; [.2F00.0020.0002] # MONGOLIAN LETTER DA
-1851 ; [.2F01.0020.0002] # MONGOLIAN LETTER TODO DA
-1869 ; [.2F02.0020.0002] # MONGOLIAN LETTER SIBE DA
-1834 ; [.2F03.0020.0002] # MONGOLIAN LETTER CHA
-1852 ; [.2F04.0020.0002] # MONGOLIAN LETTER TODO CHA
-1871 ; [.2F05.0020.0002] # MONGOLIAN LETTER SIBE CHA
-185C ; [.2F06.0020.0002] # MONGOLIAN LETTER TODO DZA
-188B ; [.2F07.0020.0002] # MONGOLIAN LETTER ALI GALI CA
-1835 ; [.2F08.0020.0002] # MONGOLIAN LETTER JA
-1853 ; [.2F09.0020.0002] # MONGOLIAN LETTER TODO JA
-186A ; [.2F0A.0020.0002] # MONGOLIAN LETTER SIBE JA
-1877 ; [.2F0B.0020.0002] # MONGOLIAN LETTER MANCHU ZHA
-1836 ; [.2F0C.0020.0002] # MONGOLIAN LETTER YA
-1855 ; [.2F0D.0020.0002] # MONGOLIAN LETTER TODO YA
-1872 ; [.2F0E.0020.0002] # MONGOLIAN LETTER SIBE ZHA
-1837 ; [.2F0F.0020.0002] # MONGOLIAN LETTER RA
-1875 ; [.2F10.0020.0002] # MONGOLIAN LETTER MANCHU RA
-1838 ; [.2F11.0020.0002] # MONGOLIAN LETTER WA
-1856 ; [.2F12.0020.0002] # MONGOLIAN LETTER TODO WA
-1839 ; [.2F13.0020.0002] # MONGOLIAN LETTER FA
-186B ; [.2F14.0020.0002] # MONGOLIAN LETTER SIBE FA
-1876 ; [.2F15.0020.0002] # MONGOLIAN LETTER MANCHU FA
-183A ; [.2F16.0020.0002] # MONGOLIAN LETTER KA
-1857 ; [.2F17.0020.0002] # MONGOLIAN LETTER TODO KA
-1863 ; [.2F18.0020.0002] # MONGOLIAN LETTER SIBE KA
-1874 ; [.2F19.0020.0002] # MONGOLIAN LETTER MANCHU KA
-1889 ; [.2F1A.0020.0002] # MONGOLIAN LETTER ALI GALI KA
-183B ; [.2F1B.0020.0002] # MONGOLIAN LETTER KHA
-183C ; [.2F1C.0020.0002] # MONGOLIAN LETTER TSA
-1854 ; [.2F1D.0020.0002] # MONGOLIAN LETTER TODO TSA
-186E ; [.2F1E.0020.0002] # MONGOLIAN LETTER SIBE TSA
-183D ; [.2F1F.0020.0002] # MONGOLIAN LETTER ZA
-186F ; [.2F20.0020.0002] # MONGOLIAN LETTER SIBE ZA
-1858 ; [.2F21.0020.0002] # MONGOLIAN LETTER TODO GAA
-186C ; [.2F22.0020.0002] # MONGOLIAN LETTER SIBE GAA
-183E ; [.2F23.0020.0002] # MONGOLIAN LETTER HAA
-1859 ; [.2F24.0020.0002] # MONGOLIAN LETTER TODO HAA
-186D ; [.2F25.0020.0002] # MONGOLIAN LETTER SIBE HAA
-183F ; [.2F26.0020.0002] # MONGOLIAN LETTER ZRA
-1840 ; [.2F27.0020.0002] # MONGOLIAN LETTER LHA
-1841 ; [.2F28.0020.0002] # MONGOLIAN LETTER ZHI
-1842 ; [.2F29.0020.0002] # MONGOLIAN LETTER CHI
-185A ; [.2F2A.0020.0002] # MONGOLIAN LETTER TODO JIA
-185B ; [.2F2B.0020.0002] # MONGOLIAN LETTER TODO NIA
-1870 ; [.2F2C.0020.0002] # MONGOLIAN LETTER SIBE RAA
-188C ; [.2F2D.0020.0002] # MONGOLIAN LETTER ALI GALI TTA
-189E ; [.2F2E.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TTA
-188D ; [.2F2F.0020.0002] # MONGOLIAN LETTER ALI GALI TTHA
-188E ; [.2F30.0020.0002] # MONGOLIAN LETTER ALI GALI DDA
-189F ; [.2F31.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DDHA
-188F ; [.2F32.0020.0002] # MONGOLIAN LETTER ALI GALI NNA
-1890 ; [.2F33.0020.0002] # MONGOLIAN LETTER ALI GALI TA
-1898 ; [.2F34.0020.0002] # MONGOLIAN LETTER TODO ALI GALI TA
-18A0 ; [.2F35.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TA
-1891 ; [.2F36.0020.0002] # MONGOLIAN LETTER ALI GALI DA
-18A1 ; [.2F37.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DHA
-1892 ; [.2F38.0020.0002] # MONGOLIAN LETTER ALI GALI PA
-1893 ; [.2F39.0020.0002] # MONGOLIAN LETTER ALI GALI PHA
-18A8 ; [.2F3A.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI BHA
-1894 ; [.2F3B.0020.0002] # MONGOLIAN LETTER ALI GALI SSA
-18A3 ; [.2F3C.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CYA
-1895 ; [.2F3D.0020.0002] # MONGOLIAN LETTER ALI GALI ZHA
-1899 ; [.2F3E.0020.0002] # MONGOLIAN LETTER TODO ALI GALI ZHA
-1896 ; [.2F3F.0020.0002] # MONGOLIAN LETTER ALI GALI ZA
-1897 ; [.2F40.0020.0002] # MONGOLIAN LETTER ALI GALI AH
-18A6 ; [.2F41.0020.0002] # MONGOLIAN LETTER ALI GALI HALF U
-18A7 ; [.2F42.0020.0002] # MONGOLIAN LETTER ALI GALI HALF YA
-18AA ; [.2F43.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI LHA
-18A9 ; [.2F44.0020.0002] # MONGOLIAN LETTER ALI GALI DAGALGA
-1C5A ; [.2F45.0020.0002] # OL CHIKI LETTER LA
-1C5B ; [.2F46.0020.0002] # OL CHIKI LETTER AT
-1C5C ; [.2F47.0020.0002] # OL CHIKI LETTER AG
-1C5D ; [.2F48.0020.0002] # OL CHIKI LETTER ANG
-1C5E ; [.2F49.0020.0002] # OL CHIKI LETTER AL
-1C5F ; [.2F4A.0020.0002] # OL CHIKI LETTER LAA
-1C60 ; [.2F4B.0020.0002] # OL CHIKI LETTER AAK
-1C61 ; [.2F4C.0020.0002] # OL CHIKI LETTER AAJ
-1C62 ; [.2F4D.0020.0002] # OL CHIKI LETTER AAM
-1C63 ; [.2F4E.0020.0002] # OL CHIKI LETTER AAW
-1C64 ; [.2F4F.0020.0002] # OL CHIKI LETTER LI
-1C65 ; [.2F50.0020.0002] # OL CHIKI LETTER IS
-1C66 ; [.2F51.0020.0002] # OL CHIKI LETTER IH
-1C67 ; [.2F52.0020.0002] # OL CHIKI LETTER INY
-1C68 ; [.2F53.0020.0002] # OL CHIKI LETTER IR
-1C69 ; [.2F54.0020.0002] # OL CHIKI LETTER LU
-1C6A ; [.2F55.0020.0002] # OL CHIKI LETTER UC
-1C6B ; [.2F56.0020.0002] # OL CHIKI LETTER UD
-1C6C ; [.2F57.0020.0002] # OL CHIKI LETTER UNN
-1C6D ; [.2F58.0020.0002] # OL CHIKI LETTER UY
-1C6E ; [.2F59.0020.0002] # OL CHIKI LETTER LE
-1C6F ; [.2F5A.0020.0002] # OL CHIKI LETTER EP
-1C70 ; [.2F5B.0020.0002] # OL CHIKI LETTER EDD
-1C71 ; [.2F5C.0020.0002] # OL CHIKI LETTER EN
-1C72 ; [.2F5D.0020.0002] # OL CHIKI LETTER ERR
-1C73 ; [.2F5E.0020.0002] # OL CHIKI LETTER LO
-1C74 ; [.2F5F.0020.0002] # OL CHIKI LETTER OTT
-1C75 ; [.2F60.0020.0002] # OL CHIKI LETTER OB
-1C76 ; [.2F61.0020.0002] # OL CHIKI LETTER OV
-1C77 ; [.2F62.0020.0002] # OL CHIKI LETTER OH
-1C78 ; [.2F63.0020.0002] # OL CHIKI MU TTUDDAG
-1C79 ; [.2F64.0020.0002] # OL CHIKI GAAHLAA TTUDDAAG
-1C7A ; [.2F65.0020.0002] # OL CHIKI MU-GAAHLAA TTUDDAAG
-1C7B ; [.2F66.0020.0002] # OL CHIKI RELAA
-1C7C ; [.2F67.0020.0002] # OL CHIKI PHAARKAA
-1C7D ; [.2F68.0020.0002] # OL CHIKI AHAD
-13A0 ; [.2F69.0020.0002] # CHEROKEE LETTER A
-13A1 ; [.2F6A.0020.0002] # CHEROKEE LETTER E
-13A2 ; [.2F6B.0020.0002] # CHEROKEE LETTER I
-13A3 ; [.2F6C.0020.0002] # CHEROKEE LETTER O
-13A4 ; [.2F6D.0020.0002] # CHEROKEE LETTER U
-13A5 ; [.2F6E.0020.0002] # CHEROKEE LETTER V
-13A6 ; [.2F6F.0020.0002] # CHEROKEE LETTER GA
-13A7 ; [.2F70.0020.0002] # CHEROKEE LETTER KA
-13A8 ; [.2F71.0020.0002] # CHEROKEE LETTER GE
-13A9 ; [.2F72.0020.0002] # CHEROKEE LETTER GI
-13AA ; [.2F73.0020.0002] # CHEROKEE LETTER GO
-13AB ; [.2F74.0020.0002] # CHEROKEE LETTER GU
-13AC ; [.2F75.0020.0002] # CHEROKEE LETTER GV
-13AD ; [.2F76.0020.0002] # CHEROKEE LETTER HA
-13AE ; [.2F77.0020.0002] # CHEROKEE LETTER HE
-13AF ; [.2F78.0020.0002] # CHEROKEE LETTER HI
-13B0 ; [.2F79.0020.0002] # CHEROKEE LETTER HO
-13B1 ; [.2F7A.0020.0002] # CHEROKEE LETTER HU
-13B2 ; [.2F7B.0020.0002] # CHEROKEE LETTER HV
-13B3 ; [.2F7C.0020.0002] # CHEROKEE LETTER LA
-13B4 ; [.2F7D.0020.0002] # CHEROKEE LETTER LE
-13B5 ; [.2F7E.0020.0002] # CHEROKEE LETTER LI
-13B6 ; [.2F7F.0020.0002] # CHEROKEE LETTER LO
-13B7 ; [.2F80.0020.0002] # CHEROKEE LETTER LU
-13B8 ; [.2F81.0020.0002] # CHEROKEE LETTER LV
-13B9 ; [.2F82.0020.0002] # CHEROKEE LETTER MA
-13BA ; [.2F83.0020.0002] # CHEROKEE LETTER ME
-13BB ; [.2F84.0020.0002] # CHEROKEE LETTER MI
-13BC ; [.2F85.0020.0002] # CHEROKEE LETTER MO
-13BD ; [.2F86.0020.0002] # CHEROKEE LETTER MU
-13BE ; [.2F87.0020.0002] # CHEROKEE LETTER NA
-13BF ; [.2F88.0020.0002] # CHEROKEE LETTER HNA
-13C0 ; [.2F89.0020.0002] # CHEROKEE LETTER NAH
-13C1 ; [.2F8A.0020.0002] # CHEROKEE LETTER NE
-13C2 ; [.2F8B.0020.0002] # CHEROKEE LETTER NI
-13C3 ; [.2F8C.0020.0002] # CHEROKEE LETTER NO
-13C4 ; [.2F8D.0020.0002] # CHEROKEE LETTER NU
-13C5 ; [.2F8E.0020.0002] # CHEROKEE LETTER NV
-13C6 ; [.2F8F.0020.0002] # CHEROKEE LETTER QUA
-13C7 ; [.2F90.0020.0002] # CHEROKEE LETTER QUE
-13C8 ; [.2F91.0020.0002] # CHEROKEE LETTER QUI
-13C9 ; [.2F92.0020.0002] # CHEROKEE LETTER QUO
-13CA ; [.2F93.0020.0002] # CHEROKEE LETTER QUU
-13CB ; [.2F94.0020.0002] # CHEROKEE LETTER QUV
-13CC ; [.2F95.0020.0002] # CHEROKEE LETTER SA
-13CD ; [.2F96.0020.0002] # CHEROKEE LETTER S
-13CE ; [.2F97.0020.0002] # CHEROKEE LETTER SE
-13CF ; [.2F98.0020.0002] # CHEROKEE LETTER SI
-13D0 ; [.2F99.0020.0002] # CHEROKEE LETTER SO
-13D1 ; [.2F9A.0020.0002] # CHEROKEE LETTER SU
-13D2 ; [.2F9B.0020.0002] # CHEROKEE LETTER SV
-13D3 ; [.2F9C.0020.0002] # CHEROKEE LETTER DA
-13D4 ; [.2F9D.0020.0002] # CHEROKEE LETTER TA
-13D5 ; [.2F9E.0020.0002] # CHEROKEE LETTER DE
-13D6 ; [.2F9F.0020.0002] # CHEROKEE LETTER TE
-13D7 ; [.2FA0.0020.0002] # CHEROKEE LETTER DI
-13D8 ; [.2FA1.0020.0002] # CHEROKEE LETTER TI
-13D9 ; [.2FA2.0020.0002] # CHEROKEE LETTER DO
-13DA ; [.2FA3.0020.0002] # CHEROKEE LETTER DU
-13DB ; [.2FA4.0020.0002] # CHEROKEE LETTER DV
-13DC ; [.2FA5.0020.0002] # CHEROKEE LETTER DLA
-13DD ; [.2FA6.0020.0002] # CHEROKEE LETTER TLA
-13DE ; [.2FA7.0020.0002] # CHEROKEE LETTER TLE
-13DF ; [.2FA8.0020.0002] # CHEROKEE LETTER TLI
-13E0 ; [.2FA9.0020.0002] # CHEROKEE LETTER TLO
-13E1 ; [.2FAA.0020.0002] # CHEROKEE LETTER TLU
-13E2 ; [.2FAB.0020.0002] # CHEROKEE LETTER TLV
-13E3 ; [.2FAC.0020.0002] # CHEROKEE LETTER TSA
-13E4 ; [.2FAD.0020.0002] # CHEROKEE LETTER TSE
-13E5 ; [.2FAE.0020.0002] # CHEROKEE LETTER TSI
-13E6 ; [.2FAF.0020.0002] # CHEROKEE LETTER TSO
-13E7 ; [.2FB0.0020.0002] # CHEROKEE LETTER TSU
-13E8 ; [.2FB1.0020.0002] # CHEROKEE LETTER TSV
-13E9 ; [.2FB2.0020.0002] # CHEROKEE LETTER WA
-13EA ; [.2FB3.0020.0002] # CHEROKEE LETTER WE
-13EB ; [.2FB4.0020.0002] # CHEROKEE LETTER WI
-13EC ; [.2FB5.0020.0002] # CHEROKEE LETTER WO
-13ED ; [.2FB6.0020.0002] # CHEROKEE LETTER WU
-13EE ; [.2FB7.0020.0002] # CHEROKEE LETTER WV
-13EF ; [.2FB8.0020.0002] # CHEROKEE LETTER YA
-13F0 ; [.2FB9.0020.0002] # CHEROKEE LETTER YE
-13F1 ; [.2FBA.0020.0002] # CHEROKEE LETTER YI
-13F2 ; [.2FBB.0020.0002] # CHEROKEE LETTER YO
-13F3 ; [.2FBC.0020.0002] # CHEROKEE LETTER YU
-13F4 ; [.2FBD.0020.0002] # CHEROKEE LETTER YV
-1401 ; [.2FBE.0020.0002] # CANADIAN SYLLABICS E
-1402 ; [.2FBF.0020.0002] # CANADIAN SYLLABICS AAI
-1403 ; [.2FC0.0020.0002] # CANADIAN SYLLABICS I
-1404 ; [.2FC1.0020.0002] # CANADIAN SYLLABICS II
-1405 ; [.2FC2.0020.0002] # CANADIAN SYLLABICS O
-1406 ; [.2FC3.0020.0002] # CANADIAN SYLLABICS OO
-1407 ; [.2FC4.0020.0002] # CANADIAN SYLLABICS Y-CREE OO
-1408 ; [.2FC5.0020.0002] # CANADIAN SYLLABICS CARRIER EE
-1409 ; [.2FC6.0020.0002] # CANADIAN SYLLABICS CARRIER I
-140A ; [.2FC7.0020.0002] # CANADIAN SYLLABICS A
-140B ; [.2FC8.0020.0002] # CANADIAN SYLLABICS AA
-140C ; [.2FC9.0020.0002] # CANADIAN SYLLABICS WE
-140D ; [.2FCA.0020.0002] # CANADIAN SYLLABICS WEST-CREE WE
-140E ; [.2FCB.0020.0002] # CANADIAN SYLLABICS WI
-140F ; [.2FCC.0020.0002] # CANADIAN SYLLABICS WEST-CREE WI
-1410 ; [.2FCD.0020.0002] # CANADIAN SYLLABICS WII
-1411 ; [.2FCE.0020.0002] # CANADIAN SYLLABICS WEST-CREE WII
-1412 ; [.2FCF.0020.0002] # CANADIAN SYLLABICS WO
-1413 ; [.2FD0.0020.0002] # CANADIAN SYLLABICS WEST-CREE WO
-1414 ; [.2FD1.0020.0002] # CANADIAN SYLLABICS WOO
-1415 ; [.2FD2.0020.0002] # CANADIAN SYLLABICS WEST-CREE WOO
-1416 ; [.2FD3.0020.0002] # CANADIAN SYLLABICS NASKAPI WOO
-1417 ; [.2FD4.0020.0002] # CANADIAN SYLLABICS WA
-1418 ; [.2FD5.0020.0002] # CANADIAN SYLLABICS WEST-CREE WA
-1419 ; [.2FD6.0020.0002] # CANADIAN SYLLABICS WAA
-141A ; [.2FD7.0020.0002] # CANADIAN SYLLABICS WEST-CREE WAA
-141B ; [.2FD8.0020.0002] # CANADIAN SYLLABICS NASKAPI WAA
-141C ; [.2FD9.0020.0002] # CANADIAN SYLLABICS AI
-141D ; [.2FDA.0020.0002] # CANADIAN SYLLABICS Y-CREE W
-141E ; [.2FDB.0020.0002] # CANADIAN SYLLABICS GLOTTAL STOP
-141F ; [.2FDC.0020.0002] # CANADIAN SYLLABICS FINAL ACUTE
-1420 ; [.2FDD.0020.0002] # CANADIAN SYLLABICS FINAL GRAVE
-1421 ; [.2FDE.0020.0002] # CANADIAN SYLLABICS FINAL BOTTOM HALF RING
-1422 ; [.2FDF.0020.0002] # CANADIAN SYLLABICS FINAL TOP HALF RING
-1423 ; [.2FE0.0020.0002] # CANADIAN SYLLABICS FINAL RIGHT HALF RING
-1424 ; [.2FE1.0020.0002] # CANADIAN SYLLABICS FINAL RING
-1425 ; [.2FE2.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE ACUTE
-1426 ; [.2FE3.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
-1427 ; [.2FE4.0020.0002] # CANADIAN SYLLABICS FINAL MIDDLE DOT
-1428 ; [.2FE5.0020.0002] # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
-1429 ; [.2FE6.0020.0002] # CANADIAN SYLLABICS FINAL PLUS
-142A ; [.2FE7.0020.0002] # CANADIAN SYLLABICS FINAL DOWN TACK
-142B ; [.2FE8.0020.0002] # CANADIAN SYLLABICS EN
-142C ; [.2FE9.0020.0002] # CANADIAN SYLLABICS IN
-142D ; [.2FEA.0020.0002] # CANADIAN SYLLABICS ON
-142E ; [.2FEB.0020.0002] # CANADIAN SYLLABICS AN
-142F ; [.2FEC.0020.0002] # CANADIAN SYLLABICS PE
-1430 ; [.2FED.0020.0002] # CANADIAN SYLLABICS PAAI
-1431 ; [.2FEE.0020.0002] # CANADIAN SYLLABICS PI
-1432 ; [.2FEF.0020.0002] # CANADIAN SYLLABICS PII
-1433 ; [.2FF0.0020.0002] # CANADIAN SYLLABICS PO
-1434 ; [.2FF1.0020.0002] # CANADIAN SYLLABICS POO
-1435 ; [.2FF2.0020.0002] # CANADIAN SYLLABICS Y-CREE POO
-1436 ; [.2FF3.0020.0002] # CANADIAN SYLLABICS CARRIER HEE
-1437 ; [.2FF4.0020.0002] # CANADIAN SYLLABICS CARRIER HI
-1438 ; [.2FF5.0020.0002] # CANADIAN SYLLABICS PA
-1439 ; [.2FF6.0020.0002] # CANADIAN SYLLABICS PAA
-143A ; [.2FF7.0020.0002] # CANADIAN SYLLABICS PWE
-143B ; [.2FF8.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWE
-143C ; [.2FF9.0020.0002] # CANADIAN SYLLABICS PWI
-143D ; [.2FFA.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWI
-143E ; [.2FFB.0020.0002] # CANADIAN SYLLABICS PWII
-143F ; [.2FFC.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWII
-1440 ; [.2FFD.0020.0002] # CANADIAN SYLLABICS PWO
-1441 ; [.2FFE.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWO
-1442 ; [.2FFF.0020.0002] # CANADIAN SYLLABICS PWOO
-1443 ; [.3000.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWOO
-1444 ; [.3001.0020.0002] # CANADIAN SYLLABICS PWA
-1445 ; [.3002.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWA
-1446 ; [.3003.0020.0002] # CANADIAN SYLLABICS PWAA
-1447 ; [.3004.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWAA
-1448 ; [.3005.0020.0002] # CANADIAN SYLLABICS Y-CREE PWAA
-1449 ; [.3006.0020.0002] # CANADIAN SYLLABICS P
-144A ; [.3007.0020.0002] # CANADIAN SYLLABICS WEST-CREE P
-144B ; [.3008.0020.0002] # CANADIAN SYLLABICS CARRIER H
-144C ; [.3009.0020.0002] # CANADIAN SYLLABICS TE
-144D ; [.300A.0020.0002] # CANADIAN SYLLABICS TAAI
-144E ; [.300B.0020.0002] # CANADIAN SYLLABICS TI
-144F ; [.300C.0020.0002] # CANADIAN SYLLABICS TII
-1450 ; [.300D.0020.0002] # CANADIAN SYLLABICS TO
-1451 ; [.300E.0020.0002] # CANADIAN SYLLABICS TOO
-1452 ; [.300F.0020.0002] # CANADIAN SYLLABICS Y-CREE TOO
-1453 ; [.3010.0020.0002] # CANADIAN SYLLABICS CARRIER DEE
-1454 ; [.3011.0020.0002] # CANADIAN SYLLABICS CARRIER DI
-1455 ; [.3012.0020.0002] # CANADIAN SYLLABICS TA
-1456 ; [.3013.0020.0002] # CANADIAN SYLLABICS TAA
-1457 ; [.3014.0020.0002] # CANADIAN SYLLABICS TWE
-1458 ; [.3015.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWE
-1459 ; [.3016.0020.0002] # CANADIAN SYLLABICS TWI
-145A ; [.3017.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWI
-145B ; [.3018.0020.0002] # CANADIAN SYLLABICS TWII
-145C ; [.3019.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWII
-145D ; [.301A.0020.0002] # CANADIAN SYLLABICS TWO
-145E ; [.301B.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWO
-145F ; [.301C.0020.0002] # CANADIAN SYLLABICS TWOO
-1460 ; [.301D.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWOO
-1461 ; [.301E.0020.0002] # CANADIAN SYLLABICS TWA
-1462 ; [.301F.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWA
-1463 ; [.3020.0020.0002] # CANADIAN SYLLABICS TWAA
-1464 ; [.3021.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWAA
-1465 ; [.3022.0020.0002] # CANADIAN SYLLABICS NASKAPI TWAA
-1466 ; [.3023.0020.0002] # CANADIAN SYLLABICS T
-1467 ; [.3024.0020.0002] # CANADIAN SYLLABICS TTE
-1468 ; [.3025.0020.0002] # CANADIAN SYLLABICS TTI
-1469 ; [.3026.0020.0002] # CANADIAN SYLLABICS TTO
-146A ; [.3027.0020.0002] # CANADIAN SYLLABICS TTA
-146B ; [.3028.0020.0002] # CANADIAN SYLLABICS KE
-146C ; [.3029.0020.0002] # CANADIAN SYLLABICS KAAI
-146D ; [.302A.0020.0002] # CANADIAN SYLLABICS KI
-146E ; [.302B.0020.0002] # CANADIAN SYLLABICS KII
-146F ; [.302C.0020.0002] # CANADIAN SYLLABICS KO
-1470 ; [.302D.0020.0002] # CANADIAN SYLLABICS KOO
-1471 ; [.302E.0020.0002] # CANADIAN SYLLABICS Y-CREE KOO
-1472 ; [.302F.0020.0002] # CANADIAN SYLLABICS KA
-1473 ; [.3030.0020.0002] # CANADIAN SYLLABICS KAA
-1474 ; [.3031.0020.0002] # CANADIAN SYLLABICS KWE
-1475 ; [.3032.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWE
-1476 ; [.3033.0020.0002] # CANADIAN SYLLABICS KWI
-1477 ; [.3034.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWI
-1478 ; [.3035.0020.0002] # CANADIAN SYLLABICS KWII
-1479 ; [.3036.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWII
-147A ; [.3037.0020.0002] # CANADIAN SYLLABICS KWO
-147B ; [.3038.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWO
-147C ; [.3039.0020.0002] # CANADIAN SYLLABICS KWOO
-147D ; [.303A.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWOO
-147E ; [.303B.0020.0002] # CANADIAN SYLLABICS KWA
-147F ; [.303C.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWA
-1480 ; [.303D.0020.0002] # CANADIAN SYLLABICS KWAA
-1481 ; [.303E.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWAA
-1482 ; [.303F.0020.0002] # CANADIAN SYLLABICS NASKAPI KWAA
-1483 ; [.3040.0020.0002] # CANADIAN SYLLABICS K
-1484 ; [.3041.0020.0002] # CANADIAN SYLLABICS KW
-1485 ; [.3042.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KEH
-1486 ; [.3043.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KIH
-1487 ; [.3044.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KOH
-1488 ; [.3045.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KAH
-1489 ; [.3046.0020.0002] # CANADIAN SYLLABICS CE
-148A ; [.3047.0020.0002] # CANADIAN SYLLABICS CAAI
-148B ; [.3048.0020.0002] # CANADIAN SYLLABICS CI
-148C ; [.3049.0020.0002] # CANADIAN SYLLABICS CII
-148D ; [.304A.0020.0002] # CANADIAN SYLLABICS CO
-148E ; [.304B.0020.0002] # CANADIAN SYLLABICS COO
-148F ; [.304C.0020.0002] # CANADIAN SYLLABICS Y-CREE COO
-1490 ; [.304D.0020.0002] # CANADIAN SYLLABICS CA
-1491 ; [.304E.0020.0002] # CANADIAN SYLLABICS CAA
-1492 ; [.304F.0020.0002] # CANADIAN SYLLABICS CWE
-1493 ; [.3050.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWE
-1494 ; [.3051.0020.0002] # CANADIAN SYLLABICS CWI
-1495 ; [.3052.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWI
-1496 ; [.3053.0020.0002] # CANADIAN SYLLABICS CWII
-1497 ; [.3054.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWII
-1498 ; [.3055.0020.0002] # CANADIAN SYLLABICS CWO
-1499 ; [.3056.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWO
-149A ; [.3057.0020.0002] # CANADIAN SYLLABICS CWOO
-149B ; [.3058.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWOO
-149C ; [.3059.0020.0002] # CANADIAN SYLLABICS CWA
-149D ; [.305A.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWA
-149E ; [.305B.0020.0002] # CANADIAN SYLLABICS CWAA
-149F ; [.305C.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWAA
-14A0 ; [.305D.0020.0002] # CANADIAN SYLLABICS NASKAPI CWAA
-14A1 ; [.305E.0020.0002] # CANADIAN SYLLABICS C
-14A2 ; [.305F.0020.0002] # CANADIAN SYLLABICS SAYISI TH
-14A3 ; [.3060.0020.0002] # CANADIAN SYLLABICS ME
-14A4 ; [.3061.0020.0002] # CANADIAN SYLLABICS MAAI
-14A5 ; [.3062.0020.0002] # CANADIAN SYLLABICS MI
-14A6 ; [.3063.0020.0002] # CANADIAN SYLLABICS MII
-14A7 ; [.3064.0020.0002] # CANADIAN SYLLABICS MO
-14A8 ; [.3065.0020.0002] # CANADIAN SYLLABICS MOO
-14A9 ; [.3066.0020.0002] # CANADIAN SYLLABICS Y-CREE MOO
-14AA ; [.3067.0020.0002] # CANADIAN SYLLABICS MA
-14AB ; [.3068.0020.0002] # CANADIAN SYLLABICS MAA
-14AC ; [.3069.0020.0002] # CANADIAN SYLLABICS MWE
-14AD ; [.306A.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWE
-14AE ; [.306B.0020.0002] # CANADIAN SYLLABICS MWI
-14AF ; [.306C.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWI
-14B0 ; [.306D.0020.0002] # CANADIAN SYLLABICS MWII
-14B1 ; [.306E.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWII
-14B2 ; [.306F.0020.0002] # CANADIAN SYLLABICS MWO
-14B3 ; [.3070.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWO
-14B4 ; [.3071.0020.0002] # CANADIAN SYLLABICS MWOO
-14B5 ; [.3072.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWOO
-14B6 ; [.3073.0020.0002] # CANADIAN SYLLABICS MWA
-14B7 ; [.3074.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWA
-14B8 ; [.3075.0020.0002] # CANADIAN SYLLABICS MWAA
-14B9 ; [.3076.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWAA
-14BA ; [.3077.0020.0002] # CANADIAN SYLLABICS NASKAPI MWAA
-14BB ; [.3078.0020.0002] # CANADIAN SYLLABICS M
-14BC ; [.3079.0020.0002] # CANADIAN SYLLABICS WEST-CREE M
-14BD ; [.307A.0020.0002] # CANADIAN SYLLABICS MH
-14BE ; [.307B.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN M
-14BF ; [.307C.0020.0002] # CANADIAN SYLLABICS SAYISI M
-14C0 ; [.307D.0020.0002] # CANADIAN SYLLABICS NE
-14C1 ; [.307E.0020.0002] # CANADIAN SYLLABICS NAAI
-14C2 ; [.307F.0020.0002] # CANADIAN SYLLABICS NI
-14C3 ; [.3080.0020.0002] # CANADIAN SYLLABICS NII
-14C4 ; [.3081.0020.0002] # CANADIAN SYLLABICS NO
-14C5 ; [.3082.0020.0002] # CANADIAN SYLLABICS NOO
-14C6 ; [.3083.0020.0002] # CANADIAN SYLLABICS Y-CREE NOO
-14C7 ; [.3084.0020.0002] # CANADIAN SYLLABICS NA
-14C8 ; [.3085.0020.0002] # CANADIAN SYLLABICS NAA
-14C9 ; [.3086.0020.0002] # CANADIAN SYLLABICS NWE
-14CA ; [.3087.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWE
-14CB ; [.3088.0020.0002] # CANADIAN SYLLABICS NWA
-14CC ; [.3089.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWA
-14CD ; [.308A.0020.0002] # CANADIAN SYLLABICS NWAA
-14CE ; [.308B.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWAA
-14CF ; [.308C.0020.0002] # CANADIAN SYLLABICS NASKAPI NWAA
-14D0 ; [.308D.0020.0002] # CANADIAN SYLLABICS N
-14D1 ; [.308E.0020.0002] # CANADIAN SYLLABICS CARRIER NG
-14D2 ; [.308F.0020.0002] # CANADIAN SYLLABICS NH
-14D3 ; [.3090.0020.0002] # CANADIAN SYLLABICS LE
-14D4 ; [.3091.0020.0002] # CANADIAN SYLLABICS LAAI
-14D5 ; [.3092.0020.0002] # CANADIAN SYLLABICS LI
-14D6 ; [.3093.0020.0002] # CANADIAN SYLLABICS LII
-14D7 ; [.3094.0020.0002] # CANADIAN SYLLABICS LO
-14D8 ; [.3095.0020.0002] # CANADIAN SYLLABICS LOO
-14D9 ; [.3096.0020.0002] # CANADIAN SYLLABICS Y-CREE LOO
-14DA ; [.3097.0020.0002] # CANADIAN SYLLABICS LA
-14DB ; [.3098.0020.0002] # CANADIAN SYLLABICS LAA
-14DC ; [.3099.0020.0002] # CANADIAN SYLLABICS LWE
-14DD ; [.309A.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWE
-14DE ; [.309B.0020.0002] # CANADIAN SYLLABICS LWI
-14DF ; [.309C.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWI
-14E0 ; [.309D.0020.0002] # CANADIAN SYLLABICS LWII
-14E1 ; [.309E.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWII
-14E2 ; [.309F.0020.0002] # CANADIAN SYLLABICS LWO
-14E3 ; [.30A0.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWO
-14E4 ; [.30A1.0020.0002] # CANADIAN SYLLABICS LWOO
-14E5 ; [.30A2.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWOO
-14E6 ; [.30A3.0020.0002] # CANADIAN SYLLABICS LWA
-14E7 ; [.30A4.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWA
-14E8 ; [.30A5.0020.0002] # CANADIAN SYLLABICS LWAA
-14E9 ; [.30A6.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWAA
-14EA ; [.30A7.0020.0002] # CANADIAN SYLLABICS L
-14EB ; [.30A8.0020.0002] # CANADIAN SYLLABICS WEST-CREE L
-14EC ; [.30A9.0020.0002] # CANADIAN SYLLABICS MEDIAL L
-14ED ; [.30AA.0020.0002] # CANADIAN SYLLABICS SE
-14EE ; [.30AB.0020.0002] # CANADIAN SYLLABICS SAAI
-14EF ; [.30AC.0020.0002] # CANADIAN SYLLABICS SI
-14F0 ; [.30AD.0020.0002] # CANADIAN SYLLABICS SII
-14F1 ; [.30AE.0020.0002] # CANADIAN SYLLABICS SO
-14F2 ; [.30AF.0020.0002] # CANADIAN SYLLABICS SOO
-14F3 ; [.30B0.0020.0002] # CANADIAN SYLLABICS Y-CREE SOO
-14F4 ; [.30B1.0020.0002] # CANADIAN SYLLABICS SA
-14F5 ; [.30B2.0020.0002] # CANADIAN SYLLABICS SAA
-14F6 ; [.30B3.0020.0002] # CANADIAN SYLLABICS SWE
-14F7 ; [.30B4.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWE
-14F8 ; [.30B5.0020.0002] # CANADIAN SYLLABICS SWI
-14F9 ; [.30B6.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWI
-14FA ; [.30B7.0020.0002] # CANADIAN SYLLABICS SWII
-14FB ; [.30B8.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWII
-14FC ; [.30B9.0020.0002] # CANADIAN SYLLABICS SWO
-14FD ; [.30BA.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWO
-14FE ; [.30BB.0020.0002] # CANADIAN SYLLABICS SWOO
-14FF ; [.30BC.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWOO
-1500 ; [.30BD.0020.0002] # CANADIAN SYLLABICS SWA
-1501 ; [.30BE.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWA
-1502 ; [.30BF.0020.0002] # CANADIAN SYLLABICS SWAA
-1503 ; [.30C0.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWAA
-1504 ; [.30C1.0020.0002] # CANADIAN SYLLABICS NASKAPI SWAA
-1505 ; [.30C2.0020.0002] # CANADIAN SYLLABICS S
-1506 ; [.30C3.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN S
-1507 ; [.30C4.0020.0002] # CANADIAN SYLLABICS SW
-1508 ; [.30C5.0020.0002] # CANADIAN SYLLABICS BLACKFOOT S
-1509 ; [.30C6.0020.0002] # CANADIAN SYLLABICS MOOSE-CREE SK
-150A ; [.30C7.0020.0002] # CANADIAN SYLLABICS NASKAPI SKW
-150B ; [.30C8.0020.0002] # CANADIAN SYLLABICS NASKAPI S-W
-150C ; [.30C9.0020.0002] # CANADIAN SYLLABICS NASKAPI SPWA
-150D ; [.30CA.0020.0002] # CANADIAN SYLLABICS NASKAPI STWA
-150E ; [.30CB.0020.0002] # CANADIAN SYLLABICS NASKAPI SKWA
-150F ; [.30CC.0020.0002] # CANADIAN SYLLABICS NASKAPI SCWA
-1510 ; [.30CD.0020.0002] # CANADIAN SYLLABICS SHE
-1511 ; [.30CE.0020.0002] # CANADIAN SYLLABICS SHI
-1512 ; [.30CF.0020.0002] # CANADIAN SYLLABICS SHII
-1513 ; [.30D0.0020.0002] # CANADIAN SYLLABICS SHO
-1514 ; [.30D1.0020.0002] # CANADIAN SYLLABICS SHOO
-1515 ; [.30D2.0020.0002] # CANADIAN SYLLABICS SHA
-1516 ; [.30D3.0020.0002] # CANADIAN SYLLABICS SHAA
-1517 ; [.30D4.0020.0002] # CANADIAN SYLLABICS SHWE
-1518 ; [.30D5.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWE
-1519 ; [.30D6.0020.0002] # CANADIAN SYLLABICS SHWI
-151A ; [.30D7.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWI
-151B ; [.30D8.0020.0002] # CANADIAN SYLLABICS SHWII
-151C ; [.30D9.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWII
-151D ; [.30DA.0020.0002] # CANADIAN SYLLABICS SHWO
-151E ; [.30DB.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWO
-151F ; [.30DC.0020.0002] # CANADIAN SYLLABICS SHWOO
-1520 ; [.30DD.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWOO
-1521 ; [.30DE.0020.0002] # CANADIAN SYLLABICS SHWA
-1522 ; [.30DF.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWA
-1523 ; [.30E0.0020.0002] # CANADIAN SYLLABICS SHWAA
-1524 ; [.30E1.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWAA
-1525 ; [.30E2.0020.0002] # CANADIAN SYLLABICS SH
-1526 ; [.30E3.0020.0002] # CANADIAN SYLLABICS YE
-1527 ; [.30E4.0020.0002] # CANADIAN SYLLABICS YAAI
-1528 ; [.30E5.0020.0002] # CANADIAN SYLLABICS YI
-1529 ; [.30E6.0020.0002] # CANADIAN SYLLABICS YII
-152A ; [.30E7.0020.0002] # CANADIAN SYLLABICS YO
-152B ; [.30E8.0020.0002] # CANADIAN SYLLABICS YOO
-152C ; [.30E9.0020.0002] # CANADIAN SYLLABICS Y-CREE YOO
-152D ; [.30EA.0020.0002] # CANADIAN SYLLABICS YA
-152E ; [.30EB.0020.0002] # CANADIAN SYLLABICS YAA
-152F ; [.30EC.0020.0002] # CANADIAN SYLLABICS YWE
-1530 ; [.30ED.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWE
-1531 ; [.30EE.0020.0002] # CANADIAN SYLLABICS YWI
-1532 ; [.30EF.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWI
-1533 ; [.30F0.0020.0002] # CANADIAN SYLLABICS YWII
-1534 ; [.30F1.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWII
-1535 ; [.30F2.0020.0002] # CANADIAN SYLLABICS YWO
-1536 ; [.30F3.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWO
-1537 ; [.30F4.0020.0002] # CANADIAN SYLLABICS YWOO
-1538 ; [.30F5.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWOO
-1539 ; [.30F6.0020.0002] # CANADIAN SYLLABICS YWA
-153A ; [.30F7.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWA
-153B ; [.30F8.0020.0002] # CANADIAN SYLLABICS YWAA
-153C ; [.30F9.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWAA
-153D ; [.30FA.0020.0002] # CANADIAN SYLLABICS NASKAPI YWAA
-153E ; [.30FB.0020.0002] # CANADIAN SYLLABICS Y
-153F ; [.30FC.0020.0002] # CANADIAN SYLLABICS BIBLE-CREE Y
-1540 ; [.30FD.0020.0002] # CANADIAN SYLLABICS WEST-CREE Y
-1541 ; [.30FE.0020.0002] # CANADIAN SYLLABICS SAYISI YI
-1542 ; [.30FF.0020.0002] # CANADIAN SYLLABICS RE
-1543 ; [.3100.0020.0002] # CANADIAN SYLLABICS R-CREE RE
-1544 ; [.3101.0020.0002] # CANADIAN SYLLABICS WEST-CREE LE
-1545 ; [.3102.0020.0002] # CANADIAN SYLLABICS RAAI
-1546 ; [.3103.0020.0002] # CANADIAN SYLLABICS RI
-1547 ; [.3104.0020.0002] # CANADIAN SYLLABICS RII
-1548 ; [.3105.0020.0002] # CANADIAN SYLLABICS RO
-1549 ; [.3106.0020.0002] # CANADIAN SYLLABICS ROO
-154A ; [.3107.0020.0002] # CANADIAN SYLLABICS WEST-CREE LO
-154B ; [.3108.0020.0002] # CANADIAN SYLLABICS RA
-154C ; [.3109.0020.0002] # CANADIAN SYLLABICS RAA
-154D ; [.310A.0020.0002] # CANADIAN SYLLABICS WEST-CREE LA
-154E ; [.310B.0020.0002] # CANADIAN SYLLABICS RWAA
-154F ; [.310C.0020.0002] # CANADIAN SYLLABICS WEST-CREE RWAA
-1550 ; [.310D.0020.0002] # CANADIAN SYLLABICS R
-1551 ; [.310E.0020.0002] # CANADIAN SYLLABICS WEST-CREE R
-1552 ; [.310F.0020.0002] # CANADIAN SYLLABICS MEDIAL R
-1553 ; [.3110.0020.0002] # CANADIAN SYLLABICS FE
-1554 ; [.3111.0020.0002] # CANADIAN SYLLABICS FAAI
-1555 ; [.3112.0020.0002] # CANADIAN SYLLABICS FI
-1556 ; [.3113.0020.0002] # CANADIAN SYLLABICS FII
-1557 ; [.3114.0020.0002] # CANADIAN SYLLABICS FO
-1558 ; [.3115.0020.0002] # CANADIAN SYLLABICS FOO
-1559 ; [.3116.0020.0002] # CANADIAN SYLLABICS FA
-155A ; [.3117.0020.0002] # CANADIAN SYLLABICS FAA
-155B ; [.3118.0020.0002] # CANADIAN SYLLABICS FWAA
-155C ; [.3119.0020.0002] # CANADIAN SYLLABICS WEST-CREE FWAA
-155D ; [.311A.0020.0002] # CANADIAN SYLLABICS F
-155E ; [.311B.0020.0002] # CANADIAN SYLLABICS THE
-155F ; [.311C.0020.0002] # CANADIAN SYLLABICS N-CREE THE
-1560 ; [.311D.0020.0002] # CANADIAN SYLLABICS THI
-1561 ; [.311E.0020.0002] # CANADIAN SYLLABICS N-CREE THI
-1562 ; [.311F.0020.0002] # CANADIAN SYLLABICS THII
-1563 ; [.3120.0020.0002] # CANADIAN SYLLABICS N-CREE THII
-1564 ; [.3121.0020.0002] # CANADIAN SYLLABICS THO
-1565 ; [.3122.0020.0002] # CANADIAN SYLLABICS THOO
-1566 ; [.3123.0020.0002] # CANADIAN SYLLABICS THA
-1567 ; [.3124.0020.0002] # CANADIAN SYLLABICS THAA
-1568 ; [.3125.0020.0002] # CANADIAN SYLLABICS THWAA
-1569 ; [.3126.0020.0002] # CANADIAN SYLLABICS WEST-CREE THWAA
-156A ; [.3127.0020.0002] # CANADIAN SYLLABICS TH
-156B ; [.3128.0020.0002] # CANADIAN SYLLABICS TTHE
-156C ; [.3129.0020.0002] # CANADIAN SYLLABICS TTHI
-156D ; [.312A.0020.0002] # CANADIAN SYLLABICS TTHO
-156E ; [.312B.0020.0002] # CANADIAN SYLLABICS TTHA
-156F ; [.312C.0020.0002] # CANADIAN SYLLABICS TTH
-1570 ; [.312D.0020.0002] # CANADIAN SYLLABICS TYE
-1571 ; [.312E.0020.0002] # CANADIAN SYLLABICS TYI
-1572 ; [.312F.0020.0002] # CANADIAN SYLLABICS TYO
-1573 ; [.3130.0020.0002] # CANADIAN SYLLABICS TYA
-1574 ; [.3131.0020.0002] # CANADIAN SYLLABICS NUNAVIK HE
-1575 ; [.3132.0020.0002] # CANADIAN SYLLABICS NUNAVIK HI
-1576 ; [.3133.0020.0002] # CANADIAN SYLLABICS NUNAVIK HII
-1577 ; [.3134.0020.0002] # CANADIAN SYLLABICS NUNAVIK HO
-1578 ; [.3135.0020.0002] # CANADIAN SYLLABICS NUNAVIK HOO
-1579 ; [.3136.0020.0002] # CANADIAN SYLLABICS NUNAVIK HA
-157A ; [.3137.0020.0002] # CANADIAN SYLLABICS NUNAVIK HAA
-157B ; [.3138.0020.0002] # CANADIAN SYLLABICS NUNAVIK H
-157D ; [.3139.0020.0002] # CANADIAN SYLLABICS HK
-166F ; [.313A.0020.0002] # CANADIAN SYLLABICS QAI
-157E ; [.313B.0020.0002] # CANADIAN SYLLABICS QAAI
-157F ; [.313C.0020.0002] # CANADIAN SYLLABICS QI
-1580 ; [.313D.0020.0002] # CANADIAN SYLLABICS QII
-1581 ; [.313E.0020.0002] # CANADIAN SYLLABICS QO
-1582 ; [.313F.0020.0002] # CANADIAN SYLLABICS QOO
-1583 ; [.3140.0020.0002] # CANADIAN SYLLABICS QA
-1584 ; [.3141.0020.0002] # CANADIAN SYLLABICS QAA
-1585 ; [.3142.0020.0002] # CANADIAN SYLLABICS Q
-1586 ; [.3143.0020.0002] # CANADIAN SYLLABICS TLHE
-1587 ; [.3144.0020.0002] # CANADIAN SYLLABICS TLHI
-1588 ; [.3145.0020.0002] # CANADIAN SYLLABICS TLHO
-1589 ; [.3146.0020.0002] # CANADIAN SYLLABICS TLHA
-158A ; [.3147.0020.0002] # CANADIAN SYLLABICS WEST-CREE RE
-158B ; [.3148.0020.0002] # CANADIAN SYLLABICS WEST-CREE RI
-158C ; [.3149.0020.0002] # CANADIAN SYLLABICS WEST-CREE RO
-158D ; [.314A.0020.0002] # CANADIAN SYLLABICS WEST-CREE RA
-1670 ; [.314B.0020.0002] # CANADIAN SYLLABICS NGAI
-158E ; [.314C.0020.0002] # CANADIAN SYLLABICS NGAAI
-158F ; [.314D.0020.0002] # CANADIAN SYLLABICS NGI
-1590 ; [.314E.0020.0002] # CANADIAN SYLLABICS NGII
-1591 ; [.314F.0020.0002] # CANADIAN SYLLABICS NGO
-1592 ; [.3150.0020.0002] # CANADIAN SYLLABICS NGOO
-1593 ; [.3151.0020.0002] # CANADIAN SYLLABICS NGA
-1594 ; [.3152.0020.0002] # CANADIAN SYLLABICS NGAA
-1595 ; [.3153.0020.0002] # CANADIAN SYLLABICS NG
-1671 ; [.3154.0020.0002] # CANADIAN SYLLABICS NNGI
-1672 ; [.3155.0020.0002] # CANADIAN SYLLABICS NNGII
-1673 ; [.3156.0020.0002] # CANADIAN SYLLABICS NNGO
-1674 ; [.3157.0020.0002] # CANADIAN SYLLABICS NNGOO
-1675 ; [.3158.0020.0002] # CANADIAN SYLLABICS NNGA
-1676 ; [.3159.0020.0002] # CANADIAN SYLLABICS NNGAA
-1596 ; [.315A.0020.0002] # CANADIAN SYLLABICS NNG
-1597 ; [.315B.0020.0002] # CANADIAN SYLLABICS SAYISI SHE
-1598 ; [.315C.0020.0002] # CANADIAN SYLLABICS SAYISI SHI
-1599 ; [.315D.0020.0002] # CANADIAN SYLLABICS SAYISI SHO
-159A ; [.315E.0020.0002] # CANADIAN SYLLABICS SAYISI SHA
-159B ; [.315F.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THE
-159C ; [.3160.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THI
-159D ; [.3161.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THO
-159E ; [.3162.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THA
-159F ; [.3163.0020.0002] # CANADIAN SYLLABICS WOODS-CREE TH
-15A0 ; [.3164.0020.0002] # CANADIAN SYLLABICS LHI
-15A1 ; [.3165.0020.0002] # CANADIAN SYLLABICS LHII
-15A2 ; [.3166.0020.0002] # CANADIAN SYLLABICS LHO
-15A3 ; [.3167.0020.0002] # CANADIAN SYLLABICS LHOO
-15A4 ; [.3168.0020.0002] # CANADIAN SYLLABICS LHA
-15A5 ; [.3169.0020.0002] # CANADIAN SYLLABICS LHAA
-15A6 ; [.316A.0020.0002] # CANADIAN SYLLABICS LH
-157C ; [.316B.0020.0002] # CANADIAN SYLLABICS NUNAVUT H
-15A7 ; [.316C.0020.0002] # CANADIAN SYLLABICS TH-CREE THE
-15A8 ; [.316D.0020.0002] # CANADIAN SYLLABICS TH-CREE THI
-15A9 ; [.316E.0020.0002] # CANADIAN SYLLABICS TH-CREE THII
-15AA ; [.316F.0020.0002] # CANADIAN SYLLABICS TH-CREE THO
-15AB ; [.3170.0020.0002] # CANADIAN SYLLABICS TH-CREE THOO
-15AC ; [.3171.0020.0002] # CANADIAN SYLLABICS TH-CREE THA
-15AD ; [.3172.0020.0002] # CANADIAN SYLLABICS TH-CREE THAA
-15AE ; [.3173.0020.0002] # CANADIAN SYLLABICS TH-CREE TH
-15AF ; [.3174.0020.0002] # CANADIAN SYLLABICS AIVILIK B
-15B0 ; [.3175.0020.0002] # CANADIAN SYLLABICS BLACKFOOT E
-15B1 ; [.3176.0020.0002] # CANADIAN SYLLABICS BLACKFOOT I
-15B2 ; [.3177.0020.0002] # CANADIAN SYLLABICS BLACKFOOT O
-15B3 ; [.3178.0020.0002] # CANADIAN SYLLABICS BLACKFOOT A
-15B4 ; [.3179.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WE
-15B5 ; [.317A.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WI
-15B6 ; [.317B.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WO
-15B7 ; [.317C.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WA
-15B8 ; [.317D.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NE
-15B9 ; [.317E.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NI
-15BA ; [.317F.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NO
-15BB ; [.3180.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NA
-15BC ; [.3181.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KE
-15BD ; [.3182.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KI
-15BE ; [.3183.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KO
-15BF ; [.3184.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KA
-15C0 ; [.3185.0020.0002] # CANADIAN SYLLABICS SAYISI HE
-15C1 ; [.3186.0020.0002] # CANADIAN SYLLABICS SAYISI HI
-15C2 ; [.3187.0020.0002] # CANADIAN SYLLABICS SAYISI HO
-15C3 ; [.3188.0020.0002] # CANADIAN SYLLABICS SAYISI HA
-15C4 ; [.3189.0020.0002] # CANADIAN SYLLABICS CARRIER GHU
-15C5 ; [.318A.0020.0002] # CANADIAN SYLLABICS CARRIER GHO
-15C6 ; [.318B.0020.0002] # CANADIAN SYLLABICS CARRIER GHE
-15C7 ; [.318C.0020.0002] # CANADIAN SYLLABICS CARRIER GHEE
-15C8 ; [.318D.0020.0002] # CANADIAN SYLLABICS CARRIER GHI
-15C9 ; [.318E.0020.0002] # CANADIAN SYLLABICS CARRIER GHA
-15CA ; [.318F.0020.0002] # CANADIAN SYLLABICS CARRIER RU
-15CB ; [.3190.0020.0002] # CANADIAN SYLLABICS CARRIER RO
-15CC ; [.3191.0020.0002] # CANADIAN SYLLABICS CARRIER RE
-15CD ; [.3192.0020.0002] # CANADIAN SYLLABICS CARRIER REE
-15CE ; [.3193.0020.0002] # CANADIAN SYLLABICS CARRIER RI
-15CF ; [.3194.0020.0002] # CANADIAN SYLLABICS CARRIER RA
-15D0 ; [.3195.0020.0002] # CANADIAN SYLLABICS CARRIER WU
-15D1 ; [.3196.0020.0002] # CANADIAN SYLLABICS CARRIER WO
-15D2 ; [.3197.0020.0002] # CANADIAN SYLLABICS CARRIER WE
-15D3 ; [.3198.0020.0002] # CANADIAN SYLLABICS CARRIER WEE
-15D4 ; [.3199.0020.0002] # CANADIAN SYLLABICS CARRIER WI
-15D5 ; [.319A.0020.0002] # CANADIAN SYLLABICS CARRIER WA
-15D6 ; [.319B.0020.0002] # CANADIAN SYLLABICS CARRIER HWU
-15D7 ; [.319C.0020.0002] # CANADIAN SYLLABICS CARRIER HWO
-15D8 ; [.319D.0020.0002] # CANADIAN SYLLABICS CARRIER HWE
-15D9 ; [.319E.0020.0002] # CANADIAN SYLLABICS CARRIER HWEE
-15DA ; [.319F.0020.0002] # CANADIAN SYLLABICS CARRIER HWI
-15DB ; [.31A0.0020.0002] # CANADIAN SYLLABICS CARRIER HWA
-15DC ; [.31A1.0020.0002] # CANADIAN SYLLABICS CARRIER THU
-15DD ; [.31A2.0020.0002] # CANADIAN SYLLABICS CARRIER THO
-15DE ; [.31A3.0020.0002] # CANADIAN SYLLABICS CARRIER THE
-15DF ; [.31A4.0020.0002] # CANADIAN SYLLABICS CARRIER THEE
-15E0 ; [.31A5.0020.0002] # CANADIAN SYLLABICS CARRIER THI
-15E1 ; [.31A6.0020.0002] # CANADIAN SYLLABICS CARRIER THA
-15E2 ; [.31A7.0020.0002] # CANADIAN SYLLABICS CARRIER TTU
-15E3 ; [.31A8.0020.0002] # CANADIAN SYLLABICS CARRIER TTO
-15E4 ; [.31A9.0020.0002] # CANADIAN SYLLABICS CARRIER TTE
-15E5 ; [.31AA.0020.0002] # CANADIAN SYLLABICS CARRIER TTEE
-15E6 ; [.31AB.0020.0002] # CANADIAN SYLLABICS CARRIER TTI
-15E7 ; [.31AC.0020.0002] # CANADIAN SYLLABICS CARRIER TTA
-15E8 ; [.31AD.0020.0002] # CANADIAN SYLLABICS CARRIER PU
-15E9 ; [.31AE.0020.0002] # CANADIAN SYLLABICS CARRIER PO
-15EA ; [.31AF.0020.0002] # CANADIAN SYLLABICS CARRIER PE
-15EB ; [.31B0.0020.0002] # CANADIAN SYLLABICS CARRIER PEE
-15EC ; [.31B1.0020.0002] # CANADIAN SYLLABICS CARRIER PI
-15ED ; [.31B2.0020.0002] # CANADIAN SYLLABICS CARRIER PA
-15EE ; [.31B3.0020.0002] # CANADIAN SYLLABICS CARRIER P
-15EF ; [.31B4.0020.0002] # CANADIAN SYLLABICS CARRIER GU
-15F0 ; [.31B5.0020.0002] # CANADIAN SYLLABICS CARRIER GO
-15F1 ; [.31B6.0020.0002] # CANADIAN SYLLABICS CARRIER GE
-15F2 ; [.31B7.0020.0002] # CANADIAN SYLLABICS CARRIER GEE
-15F3 ; [.31B8.0020.0002] # CANADIAN SYLLABICS CARRIER GI
-15F4 ; [.31B9.0020.0002] # CANADIAN SYLLABICS CARRIER GA
-15F5 ; [.31BA.0020.0002] # CANADIAN SYLLABICS CARRIER KHU
-15F6 ; [.31BB.0020.0002] # CANADIAN SYLLABICS CARRIER KHO
-15F7 ; [.31BC.0020.0002] # CANADIAN SYLLABICS CARRIER KHE
-15F8 ; [.31BD.0020.0002] # CANADIAN SYLLABICS CARRIER KHEE
-15F9 ; [.31BE.0020.0002] # CANADIAN SYLLABICS CARRIER KHI
-15FA ; [.31BF.0020.0002] # CANADIAN SYLLABICS CARRIER KHA
-15FB ; [.31C0.0020.0002] # CANADIAN SYLLABICS CARRIER KKU
-15FC ; [.31C1.0020.0002] # CANADIAN SYLLABICS CARRIER KKO
-15FD ; [.31C2.0020.0002] # CANADIAN SYLLABICS CARRIER KKE
-15FE ; [.31C3.0020.0002] # CANADIAN SYLLABICS CARRIER KKEE
-15FF ; [.31C4.0020.0002] # CANADIAN SYLLABICS CARRIER KKI
-1600 ; [.31C5.0020.0002] # CANADIAN SYLLABICS CARRIER KKA
-1601 ; [.31C6.0020.0002] # CANADIAN SYLLABICS CARRIER KK
-1602 ; [.31C7.0020.0002] # CANADIAN SYLLABICS CARRIER NU
-1603 ; [.31C8.0020.0002] # CANADIAN SYLLABICS CARRIER NO
-1604 ; [.31C9.0020.0002] # CANADIAN SYLLABICS CARRIER NE
-1605 ; [.31CA.0020.0002] # CANADIAN SYLLABICS CARRIER NEE
-1606 ; [.31CB.0020.0002] # CANADIAN SYLLABICS CARRIER NI
-1607 ; [.31CC.0020.0002] # CANADIAN SYLLABICS CARRIER NA
-1608 ; [.31CD.0020.0002] # CANADIAN SYLLABICS CARRIER MU
-1609 ; [.31CE.0020.0002] # CANADIAN SYLLABICS CARRIER MO
-160A ; [.31CF.0020.0002] # CANADIAN SYLLABICS CARRIER ME
-160B ; [.31D0.0020.0002] # CANADIAN SYLLABICS CARRIER MEE
-160C ; [.31D1.0020.0002] # CANADIAN SYLLABICS CARRIER MI
-160D ; [.31D2.0020.0002] # CANADIAN SYLLABICS CARRIER MA
-160E ; [.31D3.0020.0002] # CANADIAN SYLLABICS CARRIER YU
-160F ; [.31D4.0020.0002] # CANADIAN SYLLABICS CARRIER YO
-1610 ; [.31D5.0020.0002] # CANADIAN SYLLABICS CARRIER YE
-1611 ; [.31D6.0020.0002] # CANADIAN SYLLABICS CARRIER YEE
-1612 ; [.31D7.0020.0002] # CANADIAN SYLLABICS CARRIER YI
-1613 ; [.31D8.0020.0002] # CANADIAN SYLLABICS CARRIER YA
-1614 ; [.31D9.0020.0002] # CANADIAN SYLLABICS CARRIER JU
-1615 ; [.31DA.0020.0002] # CANADIAN SYLLABICS SAYISI JU
-1616 ; [.31DB.0020.0002] # CANADIAN SYLLABICS CARRIER JO
-1617 ; [.31DC.0020.0002] # CANADIAN SYLLABICS CARRIER JE
-1618 ; [.31DD.0020.0002] # CANADIAN SYLLABICS CARRIER JEE
-1619 ; [.31DE.0020.0002] # CANADIAN SYLLABICS CARRIER JI
-161A ; [.31DF.0020.0002] # CANADIAN SYLLABICS SAYISI JI
-161B ; [.31E0.0020.0002] # CANADIAN SYLLABICS CARRIER JA
-161C ; [.31E1.0020.0002] # CANADIAN SYLLABICS CARRIER JJU
-161D ; [.31E2.0020.0002] # CANADIAN SYLLABICS CARRIER JJO
-161E ; [.31E3.0020.0002] # CANADIAN SYLLABICS CARRIER JJE
-161F ; [.31E4.0020.0002] # CANADIAN SYLLABICS CARRIER JJEE
-1620 ; [.31E5.0020.0002] # CANADIAN SYLLABICS CARRIER JJI
-1621 ; [.31E6.0020.0002] # CANADIAN SYLLABICS CARRIER JJA
-1622 ; [.31E7.0020.0002] # CANADIAN SYLLABICS CARRIER LU
-1623 ; [.31E8.0020.0002] # CANADIAN SYLLABICS CARRIER LO
-1624 ; [.31E9.0020.0002] # CANADIAN SYLLABICS CARRIER LE
-1625 ; [.31EA.0020.0002] # CANADIAN SYLLABICS CARRIER LEE
-1626 ; [.31EB.0020.0002] # CANADIAN SYLLABICS CARRIER LI
-1627 ; [.31EC.0020.0002] # CANADIAN SYLLABICS CARRIER LA
-1628 ; [.31ED.0020.0002] # CANADIAN SYLLABICS CARRIER DLU
-1629 ; [.31EE.0020.0002] # CANADIAN SYLLABICS CARRIER DLO
-162A ; [.31EF.0020.0002] # CANADIAN SYLLABICS CARRIER DLE
-162B ; [.31F0.0020.0002] # CANADIAN SYLLABICS CARRIER DLEE
-162C ; [.31F1.0020.0002] # CANADIAN SYLLABICS CARRIER DLI
-162D ; [.31F2.0020.0002] # CANADIAN SYLLABICS CARRIER DLA
-162E ; [.31F3.0020.0002] # CANADIAN SYLLABICS CARRIER LHU
-162F ; [.31F4.0020.0002] # CANADIAN SYLLABICS CARRIER LHO
-1630 ; [.31F5.0020.0002] # CANADIAN SYLLABICS CARRIER LHE
-1631 ; [.31F6.0020.0002] # CANADIAN SYLLABICS CARRIER LHEE
-1632 ; [.31F7.0020.0002] # CANADIAN SYLLABICS CARRIER LHI
-1633 ; [.31F8.0020.0002] # CANADIAN SYLLABICS CARRIER LHA
-1634 ; [.31F9.0020.0002] # CANADIAN SYLLABICS CARRIER TLHU
-1635 ; [.31FA.0020.0002] # CANADIAN SYLLABICS CARRIER TLHO
-1636 ; [.31FB.0020.0002] # CANADIAN SYLLABICS CARRIER TLHE
-1637 ; [.31FC.0020.0002] # CANADIAN SYLLABICS CARRIER TLHEE
-1638 ; [.31FD.0020.0002] # CANADIAN SYLLABICS CARRIER TLHI
-1639 ; [.31FE.0020.0002] # CANADIAN SYLLABICS CARRIER TLHA
-163A ; [.31FF.0020.0002] # CANADIAN SYLLABICS CARRIER TLU
-163B ; [.3200.0020.0002] # CANADIAN SYLLABICS CARRIER TLO
-163C ; [.3201.0020.0002] # CANADIAN SYLLABICS CARRIER TLE
-163D ; [.3202.0020.0002] # CANADIAN SYLLABICS CARRIER TLEE
-163E ; [.3203.0020.0002] # CANADIAN SYLLABICS CARRIER TLI
-163F ; [.3204.0020.0002] # CANADIAN SYLLABICS CARRIER TLA
-1640 ; [.3205.0020.0002] # CANADIAN SYLLABICS CARRIER ZU
-1641 ; [.3206.0020.0002] # CANADIAN SYLLABICS CARRIER ZO
-1642 ; [.3207.0020.0002] # CANADIAN SYLLABICS CARRIER ZE
-1643 ; [.3208.0020.0002] # CANADIAN SYLLABICS CARRIER ZEE
-1644 ; [.3209.0020.0002] # CANADIAN SYLLABICS CARRIER ZI
-1645 ; [.320A.0020.0002] # CANADIAN SYLLABICS CARRIER ZA
-1646 ; [.320B.0020.0002] # CANADIAN SYLLABICS CARRIER Z
-1647 ; [.320C.0020.0002] # CANADIAN SYLLABICS CARRIER INITIAL Z
-1648 ; [.320D.0020.0002] # CANADIAN SYLLABICS CARRIER DZU
-1649 ; [.320E.0020.0002] # CANADIAN SYLLABICS CARRIER DZO
-164A ; [.320F.0020.0002] # CANADIAN SYLLABICS CARRIER DZE
-164B ; [.3210.0020.0002] # CANADIAN SYLLABICS CARRIER DZEE
-164C ; [.3211.0020.0002] # CANADIAN SYLLABICS CARRIER DZI
-164D ; [.3212.0020.0002] # CANADIAN SYLLABICS CARRIER DZA
-164E ; [.3213.0020.0002] # CANADIAN SYLLABICS CARRIER SU
-164F ; [.3214.0020.0002] # CANADIAN SYLLABICS CARRIER SO
-1650 ; [.3215.0020.0002] # CANADIAN SYLLABICS CARRIER SE
-1651 ; [.3216.0020.0002] # CANADIAN SYLLABICS CARRIER SEE
-1652 ; [.3217.0020.0002] # CANADIAN SYLLABICS CARRIER SI
-1653 ; [.3218.0020.0002] # CANADIAN SYLLABICS CARRIER SA
-1654 ; [.3219.0020.0002] # CANADIAN SYLLABICS CARRIER SHU
-1655 ; [.321A.0020.0002] # CANADIAN SYLLABICS CARRIER SHO
-1656 ; [.321B.0020.0002] # CANADIAN SYLLABICS CARRIER SHE
-1657 ; [.321C.0020.0002] # CANADIAN SYLLABICS CARRIER SHEE
-1658 ; [.321D.0020.0002] # CANADIAN SYLLABICS CARRIER SHI
-1659 ; [.321E.0020.0002] # CANADIAN SYLLABICS CARRIER SHA
-165A ; [.321F.0020.0002] # CANADIAN SYLLABICS CARRIER SH
-165B ; [.3220.0020.0002] # CANADIAN SYLLABICS CARRIER TSU
-165C ; [.3221.0020.0002] # CANADIAN SYLLABICS CARRIER TSO
-165D ; [.3222.0020.0002] # CANADIAN SYLLABICS CARRIER TSE
-165E ; [.3223.0020.0002] # CANADIAN SYLLABICS CARRIER TSEE
-165F ; [.3224.0020.0002] # CANADIAN SYLLABICS CARRIER TSI
-1660 ; [.3225.0020.0002] # CANADIAN SYLLABICS CARRIER TSA
-1661 ; [.3226.0020.0002] # CANADIAN SYLLABICS CARRIER CHU
-1662 ; [.3227.0020.0002] # CANADIAN SYLLABICS CARRIER CHO
-1663 ; [.3228.0020.0002] # CANADIAN SYLLABICS CARRIER CHE
-1664 ; [.3229.0020.0002] # CANADIAN SYLLABICS CARRIER CHEE
-1665 ; [.322A.0020.0002] # CANADIAN SYLLABICS CARRIER CHI
-1666 ; [.322B.0020.0002] # CANADIAN SYLLABICS CARRIER CHA
-1667 ; [.322C.0020.0002] # CANADIAN SYLLABICS CARRIER TTSU
-1668 ; [.322D.0020.0002] # CANADIAN SYLLABICS CARRIER TTSO
-1669 ; [.322E.0020.0002] # CANADIAN SYLLABICS CARRIER TTSE
-166A ; [.322F.0020.0002] # CANADIAN SYLLABICS CARRIER TTSEE
-166B ; [.3230.0020.0002] # CANADIAN SYLLABICS CARRIER TTSI
-166C ; [.3231.0020.0002] # CANADIAN SYLLABICS CARRIER TTSA
-1677 ; [.3232.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWEE
-1678 ; [.3233.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWI
-1679 ; [.3234.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWII
-167A ; [.3235.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWO
-167B ; [.3236.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWOO
-167C ; [.3237.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWA
-167D ; [.3238.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWAA
-167E ; [.3239.0020.0002] # CANADIAN SYLLABICS WOODS-CREE FINAL TH
-167F ; [.323A.0020.0002] # CANADIAN SYLLABICS BLACKFOOT W
-18B0 ; [.323B.0020.0002] # CANADIAN SYLLABICS OY
-18B1 ; [.323C.0020.0002] # CANADIAN SYLLABICS AY
-18B2 ; [.323D.0020.0002] # CANADIAN SYLLABICS AAY
-18B3 ; [.323E.0020.0002] # CANADIAN SYLLABICS WAY
-18B4 ; [.323F.0020.0002] # CANADIAN SYLLABICS POY
-18B5 ; [.3240.0020.0002] # CANADIAN SYLLABICS PAY
-18B6 ; [.3241.0020.0002] # CANADIAN SYLLABICS PWOY
-18B7 ; [.3242.0020.0002] # CANADIAN SYLLABICS TAY
-18B8 ; [.3243.0020.0002] # CANADIAN SYLLABICS KAY
-18B9 ; [.3244.0020.0002] # CANADIAN SYLLABICS KWAY
-18BA ; [.3245.0020.0002] # CANADIAN SYLLABICS MAY
-18BB ; [.3246.0020.0002] # CANADIAN SYLLABICS NOY
-18BC ; [.3247.0020.0002] # CANADIAN SYLLABICS NAY
-18BD ; [.3248.0020.0002] # CANADIAN SYLLABICS LAY
-18BE ; [.3249.0020.0002] # CANADIAN SYLLABICS SOY
-18BF ; [.324A.0020.0002] # CANADIAN SYLLABICS SAY
-18C0 ; [.324B.0020.0002] # CANADIAN SYLLABICS SHOY
-18C1 ; [.324C.0020.0002] # CANADIAN SYLLABICS SHAY
-18C2 ; [.324D.0020.0002] # CANADIAN SYLLABICS SHWOY
-18C3 ; [.324E.0020.0002] # CANADIAN SYLLABICS YOY
-18C4 ; [.324F.0020.0002] # CANADIAN SYLLABICS YAY
-18C5 ; [.3250.0020.0002] # CANADIAN SYLLABICS RAY
-18C6 ; [.3251.0020.0002] # CANADIAN SYLLABICS NWI
-18C7 ; [.3252.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWI
-18C8 ; [.3253.0020.0002] # CANADIAN SYLLABICS NWII
-18C9 ; [.3254.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWII
-18CA ; [.3255.0020.0002] # CANADIAN SYLLABICS NWO
-18CB ; [.3256.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWO
-18CC ; [.3257.0020.0002] # CANADIAN SYLLABICS NWOO
-18CD ; [.3258.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWOO
-18CE ; [.3259.0020.0002] # CANADIAN SYLLABICS RWEE
-18CF ; [.325A.0020.0002] # CANADIAN SYLLABICS RWI
-18D0 ; [.325B.0020.0002] # CANADIAN SYLLABICS RWII
-18D1 ; [.325C.0020.0002] # CANADIAN SYLLABICS RWO
-18D2 ; [.325D.0020.0002] # CANADIAN SYLLABICS RWOO
-18D3 ; [.325E.0020.0002] # CANADIAN SYLLABICS RWA
-18D4 ; [.325F.0020.0002] # CANADIAN SYLLABICS OJIBWAY P
-18D5 ; [.3260.0020.0002] # CANADIAN SYLLABICS OJIBWAY T
-18D6 ; [.3261.0020.0002] # CANADIAN SYLLABICS OJIBWAY K
-18D7 ; [.3262.0020.0002] # CANADIAN SYLLABICS OJIBWAY C
-18D8 ; [.3263.0020.0002] # CANADIAN SYLLABICS OJIBWAY M
-18D9 ; [.3264.0020.0002] # CANADIAN SYLLABICS OJIBWAY N
-18DA ; [.3265.0020.0002] # CANADIAN SYLLABICS OJIBWAY S
-18DB ; [.3266.0020.0002] # CANADIAN SYLLABICS OJIBWAY SH
-18DC ; [.3267.0020.0002] # CANADIAN SYLLABICS EASTERN W
-18DD ; [.3268.0020.0002] # CANADIAN SYLLABICS WESTERN W
-18DE ; [.3269.0020.0002] # CANADIAN SYLLABICS FINAL SMALL RING
-18DF ; [.326A.0020.0002] # CANADIAN SYLLABICS FINAL RAISED DOT
-18E0 ; [.326B.0020.0002] # CANADIAN SYLLABICS R-CREE RWE
-18E1 ; [.326C.0020.0002] # CANADIAN SYLLABICS WEST-CREE LOO
-18E2 ; [.326D.0020.0002] # CANADIAN SYLLABICS WEST-CREE LAA
-18E3 ; [.326E.0020.0002] # CANADIAN SYLLABICS THWE
-18E4 ; [.326F.0020.0002] # CANADIAN SYLLABICS THWA
-18E5 ; [.3270.0020.0002] # CANADIAN SYLLABICS TTHWE
-18E6 ; [.3271.0020.0002] # CANADIAN SYLLABICS TTHOO
-18E7 ; [.3272.0020.0002] # CANADIAN SYLLABICS TTHAA
-18E8 ; [.3273.0020.0002] # CANADIAN SYLLABICS TLHWE
-18E9 ; [.3274.0020.0002] # CANADIAN SYLLABICS TLHOO
-18EA ; [.3275.0020.0002] # CANADIAN SYLLABICS SAYISI SHWE
-18EB ; [.3276.0020.0002] # CANADIAN SYLLABICS SAYISI SHOO
-18EC ; [.3277.0020.0002] # CANADIAN SYLLABICS SAYISI HOO
-18ED ; [.3278.0020.0002] # CANADIAN SYLLABICS CARRIER GWU
-18EE ; [.3279.0020.0002] # CANADIAN SYLLABICS CARRIER DENE GEE
-18EF ; [.327A.0020.0002] # CANADIAN SYLLABICS CARRIER GAA
-18F0 ; [.327B.0020.0002] # CANADIAN SYLLABICS CARRIER GWA
-18F1 ; [.327C.0020.0002] # CANADIAN SYLLABICS SAYISI JUU
-18F2 ; [.327D.0020.0002] # CANADIAN SYLLABICS CARRIER JWA
-18F3 ; [.327E.0020.0002] # CANADIAN SYLLABICS BEAVER DENE L
-18F4 ; [.327F.0020.0002] # CANADIAN SYLLABICS BEAVER DENE R
-18F5 ; [.3280.0020.0002] # CANADIAN SYLLABICS CARRIER DENTAL S
-1681 ; [.3281.0020.0002] # OGHAM LETTER BEITH
-1682 ; [.3282.0020.0002] # OGHAM LETTER LUIS
-1683 ; [.3283.0020.0002] # OGHAM LETTER FEARN
-1684 ; [.3284.0020.0002] # OGHAM LETTER SAIL
-1685 ; [.3285.0020.0002] # OGHAM LETTER NION
-1686 ; [.3286.0020.0002] # OGHAM LETTER UATH
-1687 ; [.3287.0020.0002] # OGHAM LETTER DAIR
-1688 ; [.3288.0020.0002] # OGHAM LETTER TINNE
-1689 ; [.3289.0020.0002] # OGHAM LETTER COLL
-168A ; [.328A.0020.0002] # OGHAM LETTER CEIRT
-168B ; [.328B.0020.0002] # OGHAM LETTER MUIN
-168C ; [.328C.0020.0002] # OGHAM LETTER GORT
-168D ; [.328D.0020.0002] # OGHAM LETTER NGEADAL
-168E ; [.328E.0020.0002] # OGHAM LETTER STRAIF
-168F ; [.328F.0020.0002] # OGHAM LETTER RUIS
-1690 ; [.3290.0020.0002] # OGHAM LETTER AILM
-1691 ; [.3291.0020.0002] # OGHAM LETTER ONN
-1692 ; [.3292.0020.0002] # OGHAM LETTER UR
-1693 ; [.3293.0020.0002] # OGHAM LETTER EADHADH
-1694 ; [.3294.0020.0002] # OGHAM LETTER IODHADH
-1695 ; [.3295.0020.0002] # OGHAM LETTER EABHADH
-1696 ; [.3296.0020.0002] # OGHAM LETTER OR
-1697 ; [.3297.0020.0002] # OGHAM LETTER UILLEANN
-1698 ; [.3298.0020.0002] # OGHAM LETTER IFIN
-1699 ; [.3299.0020.0002] # OGHAM LETTER EAMHANCHOLL
-169A ; [.329A.0020.0002] # OGHAM LETTER PEITH
-16A0 ; [.329B.0020.0002] # RUNIC LETTER FEHU FEOH FE F
-16A1 ; [.329B.0020.0004][.0000.0108.0004] # RUNIC LETTER V
-16A2 ; [.329C.0020.0002] # RUNIC LETTER URUZ UR U
-16A4 ; [.329C.0020.0004][.0000.0108.0004] # RUNIC LETTER Y
-16A5 ; [.329C.0020.0004][.0000.0109.0004] # RUNIC LETTER W
-16A6 ; [.329D.0020.0002] # RUNIC LETTER THURISAZ THURS THORN
-16A7 ; [.329D.0020.0004][.0000.0108.0004] # RUNIC LETTER ETH
-16F0 ; [.329D.0020.0004][.329D.0020.0004] # RUNIC BELGTHOR SYMBOL
-16A8 ; [.329E.0020.0002] # RUNIC LETTER ANSUZ A
-16A9 ; [.329E.0020.0004][.0000.0108.0004] # RUNIC LETTER OS O
-16AC ; [.329E.0020.0004][.0000.0109.0004] # RUNIC LETTER LONG-BRANCH-OSS O
-16AD ; [.329E.0020.0004][.0000.010A.0004] # RUNIC LETTER SHORT-TWIG-OSS O
-16AE ; [.329E.0020.0004][.0000.010B.0004] # RUNIC LETTER O
-16F4 ; [.329F.0020.0002] # RUNIC LETTER FRANKS CASKET OS
-16AF ; [.32A0.0020.0002] # RUNIC LETTER OE
-16B0 ; [.32A1.0020.0002] # RUNIC LETTER ON
-16B1 ; [.32A2.0020.0002] # RUNIC LETTER RAIDO RAD REID R
-16B2 ; [.32A3.0020.0002] # RUNIC LETTER KAUNA
-16B3 ; [.32A3.0020.0004][.0000.0108.0004] # RUNIC LETTER CEN
-16B4 ; [.32A3.0020.0004][.0000.0109.0004] # RUNIC LETTER KAUN K
-16B5 ; [.32A3.0020.0004][.0000.010A.0004] # RUNIC LETTER G
-16B6 ; [.32A3.0020.0004][.0000.010B.0004] # RUNIC LETTER ENG
-16F1 ; [.32A4.0020.0002] # RUNIC LETTER K
-16B7 ; [.32A5.0020.0002] # RUNIC LETTER GEBO GYFU G
-16B9 ; [.32A6.0020.0002] # RUNIC LETTER WUNJO WYNN W
-16E9 ; [.32A6.0020.0004][.0000.0108.0004] # RUNIC LETTER Q
-16BA ; [.32A7.0020.0002] # RUNIC LETTER HAGLAZ H
-16BB ; [.32A7.0020.0004][.0000.0108.0004] # RUNIC LETTER HAEGL H
-16BC ; [.32A7.0020.0004][.0000.0109.0004] # RUNIC LETTER LONG-BRANCH-HAGALL H
-16BD ; [.32A7.0020.0004][.0000.010A.0004] # RUNIC LETTER SHORT-TWIG-HAGALL H
-16BE ; [.32A8.0020.0002] # RUNIC LETTER NAUDIZ NYD NAUD N
-16BF ; [.32A8.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-NAUD N
-16C0 ; [.32A8.0020.0004][.0000.0109.0004] # RUNIC LETTER DOTTED-N
-16C1 ; [.32A9.0020.0002] # RUNIC LETTER ISAZ IS ISS I
-16C2 ; [.32A9.0020.0004][.0000.0108.0004] # RUNIC LETTER E
-16F5 ; [.32AA.0020.0002] # RUNIC LETTER FRANKS CASKET IS
-16C3 ; [.32AB.0020.0002] # RUNIC LETTER JERAN J
-16C4 ; [.32AB.0020.0004][.0000.0108.0004] # RUNIC LETTER GER
-16C5 ; [.32AC.0020.0002] # RUNIC LETTER LONG-BRANCH-AR AE
-16C6 ; [.32AC.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-AR A
-16EE ; [.32AC.0020.0004][.32B7.0020.0004] # RUNIC ARLAUG SYMBOL
-16C7 ; [.32AD.0020.0002] # RUNIC LETTER IWAZ EOH
-16C8 ; [.32AE.0020.0002] # RUNIC LETTER PERTHO PEORTH P
-16D5 ; [.32AE.0020.0004][.0000.0108.0004] # RUNIC LETTER OPEN-P
-16C9 ; [.32AF.0020.0002] # RUNIC LETTER ALGIZ EOLHX
-16CA ; [.32B0.0020.0002] # RUNIC LETTER SOWILO S
-16CB ; [.32B0.0020.0004][.0000.0108.0004] # RUNIC LETTER SIGEL LONG-BRANCH-SOL S
-16EA ; [.32B0.0020.0004][.0000.0109.0004] # RUNIC LETTER X
-16CC ; [.32B0.0020.0004][.0000.010A.0004] # RUNIC LETTER SHORT-TWIG-SOL S
-16CD ; [.32B0.0020.0004][.0000.010B.0004] # RUNIC LETTER C
-16CE ; [.32B0.0020.0004][.0000.010C.0004] # RUNIC LETTER Z
-16F2 ; [.32B1.0020.0002] # RUNIC LETTER SH
-16CF ; [.32B2.0020.0002] # RUNIC LETTER TIWAZ TIR TYR T
-16D0 ; [.32B2.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-TYR T
-16D1 ; [.32B2.0020.0004][.0000.0109.0004] # RUNIC LETTER D
-16D2 ; [.32B3.0020.0002] # RUNIC LETTER BERKANAN BEORC BJARKAN B
-16D3 ; [.32B3.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-BJARKAN B
-16D4 ; [.32B3.0020.0004][.0000.0109.0004] # RUNIC LETTER DOTTED-P
-16D6 ; [.32B4.0020.0002] # RUNIC LETTER EHWAZ EH E
-16F6 ; [.32B5.0020.0002] # RUNIC LETTER FRANKS CASKET EH
-16D7 ; [.32B6.0020.0002] # RUNIC LETTER MANNAZ MAN M
-16D8 ; [.32B6.0020.0004][.0000.0108.0004] # RUNIC LETTER LONG-BRANCH-MADR M
-16D9 ; [.32B6.0020.0004][.0000.0109.0004] # RUNIC LETTER SHORT-TWIG-MADR M
-16EF ; [.32B6.0020.0004][.0000.0108.0004][.32B6.0020.0004][.0000.0108.0004] # RUNIC TVIMADUR SYMBOL
-16DA ; [.32B7.0020.0002] # RUNIC LETTER LAUKAZ LAGU LOGR L
-16DB ; [.32B7.0020.0004][.0000.0108.0004] # RUNIC LETTER DOTTED-L
-16DC ; [.32B8.0020.0002] # RUNIC LETTER INGWAZ
-16DD ; [.32B8.0020.0004][.0000.0108.0004] # RUNIC LETTER ING
-16DE ; [.32B9.0020.0002] # RUNIC LETTER DAGAZ DAEG D
-16DF ; [.32BA.0020.0002] # RUNIC LETTER OTHALAN ETHEL O
-16F3 ; [.32BB.0020.0002] # RUNIC LETTER OO
-16AA ; [.32BC.0020.0002] # RUNIC LETTER AC A
-16F7 ; [.32BD.0020.0002] # RUNIC LETTER FRANKS CASKET AC
-16AB ; [.32BE.0020.0002] # RUNIC LETTER AESC
-16F8 ; [.32BF.0020.0002] # RUNIC LETTER FRANKS CASKET AESC
-16A3 ; [.32C0.0020.0002] # RUNIC LETTER YR
-16E0 ; [.32C1.0020.0002] # RUNIC LETTER EAR
-16E3 ; [.32C2.0020.0002] # RUNIC LETTER CALC
-16B8 ; [.32C3.0020.0002] # RUNIC LETTER GAR
-16E4 ; [.32C4.0020.0002] # RUNIC LETTER CEALC
-16E1 ; [.32C5.0020.0002] # RUNIC LETTER IOR
-16E2 ; [.32C6.0020.0002] # RUNIC LETTER CWEORTH
-16E5 ; [.32C7.0020.0002] # RUNIC LETTER STAN
-16E6 ; [.32C8.0020.0002] # RUNIC LETTER LONG-BRANCH-YR
-16E7 ; [.32C8.0020.0004][.0000.0108.0004] # RUNIC LETTER SHORT-TWIG-YR
-16E8 ; [.32C8.0020.0004][.0000.0109.0004] # RUNIC LETTER ICELANDIC-YR
-10C00 ; [.32C9.0020.0002] # OLD TURKIC LETTER ORKHON A
-10C01 ; [.32C9.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI A
-10C02 ; [.32CA.0020.0002] # OLD TURKIC LETTER YENISEI AE
-10C03 ; [.32CB.0020.0002] # OLD TURKIC LETTER ORKHON I
-10C04 ; [.32CB.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI I
-10C05 ; [.32CC.0020.0002] # OLD TURKIC LETTER YENISEI E
-10C06 ; [.32CD.0020.0002] # OLD TURKIC LETTER ORKHON O
-10C07 ; [.32CE.0020.0002] # OLD TURKIC LETTER ORKHON OE
-10C08 ; [.32CE.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI OE
-10C09 ; [.32CF.0020.0002] # OLD TURKIC LETTER ORKHON AB
-10C0A ; [.32CF.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AB
-10C0B ; [.32D0.0020.0002] # OLD TURKIC LETTER ORKHON AEB
-10C0C ; [.32D0.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEB
-10C0D ; [.32D1.0020.0002] # OLD TURKIC LETTER ORKHON AG
-10C0E ; [.32D1.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AG
-10C0F ; [.32D2.0020.0002] # OLD TURKIC LETTER ORKHON AEG
-10C10 ; [.32D2.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEG
-10C11 ; [.32D3.0020.0002] # OLD TURKIC LETTER ORKHON AD
-10C12 ; [.32D3.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AD
-10C13 ; [.32D4.0020.0002] # OLD TURKIC LETTER ORKHON AED
-10C14 ; [.32D5.0020.0002] # OLD TURKIC LETTER ORKHON EZ
-10C15 ; [.32D5.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI EZ
-10C16 ; [.32D6.0020.0002] # OLD TURKIC LETTER ORKHON AY
-10C17 ; [.32D6.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AY
-10C18 ; [.32D7.0020.0002] # OLD TURKIC LETTER ORKHON AEY
-10C19 ; [.32D7.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEY
-10C1A ; [.32D8.0020.0002] # OLD TURKIC LETTER ORKHON AEK
-10C1B ; [.32D8.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEK
-10C1C ; [.32D9.0020.0002] # OLD TURKIC LETTER ORKHON OEK
-10C1D ; [.32D9.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI OEK
-10C1E ; [.32DA.0020.0002] # OLD TURKIC LETTER ORKHON AL
-10C1F ; [.32DA.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AL
-10C20 ; [.32DB.0020.0002] # OLD TURKIC LETTER ORKHON AEL
-10C21 ; [.32DC.0020.0002] # OLD TURKIC LETTER ORKHON ELT
-10C22 ; [.32DD.0020.0002] # OLD TURKIC LETTER ORKHON EM
-10C23 ; [.32DE.0020.0002] # OLD TURKIC LETTER ORKHON AN
-10C24 ; [.32DF.0020.0002] # OLD TURKIC LETTER ORKHON AEN
-10C25 ; [.32DF.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AEN
-10C26 ; [.32E0.0020.0002] # OLD TURKIC LETTER ORKHON ENT
-10C27 ; [.32E0.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ENT
-10C28 ; [.32E1.0020.0002] # OLD TURKIC LETTER ORKHON ENC
-10C29 ; [.32E1.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ENC
-10C2A ; [.32E2.0020.0002] # OLD TURKIC LETTER ORKHON ENY
-10C2B ; [.32E2.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ENY
-10C2C ; [.32E3.0020.0002] # OLD TURKIC LETTER YENISEI ANG
-10C2D ; [.32E4.0020.0002] # OLD TURKIC LETTER ORKHON ENG
-10C2E ; [.32E4.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AENG
-10C2F ; [.32E5.0020.0002] # OLD TURKIC LETTER ORKHON EP
-10C30 ; [.32E6.0020.0002] # OLD TURKIC LETTER ORKHON OP
-10C31 ; [.32E7.0020.0002] # OLD TURKIC LETTER ORKHON IC
-10C32 ; [.32E8.0020.0002] # OLD TURKIC LETTER ORKHON EC
-10C33 ; [.32E8.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI EC
-10C34 ; [.32E9.0020.0002] # OLD TURKIC LETTER ORKHON AQ
-10C35 ; [.32E9.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AQ
-10C36 ; [.32EA.0020.0002] # OLD TURKIC LETTER ORKHON IQ
-10C37 ; [.32EA.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI IQ
-10C38 ; [.32EB.0020.0002] # OLD TURKIC LETTER ORKHON OQ
-10C39 ; [.32EB.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI OQ
-10C3A ; [.32EC.0020.0002] # OLD TURKIC LETTER ORKHON AR
-10C3B ; [.32EC.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AR
-10C3C ; [.32ED.0020.0002] # OLD TURKIC LETTER ORKHON AER
-10C3D ; [.32EE.0020.0002] # OLD TURKIC LETTER ORKHON AS
-10C3E ; [.32EF.0020.0002] # OLD TURKIC LETTER ORKHON AES
-10C3F ; [.32F0.0020.0002] # OLD TURKIC LETTER ORKHON ASH
-10C40 ; [.32F0.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ASH
-10C41 ; [.32F1.0020.0002] # OLD TURKIC LETTER ORKHON ESH
-10C42 ; [.32F1.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI ESH
-10C43 ; [.32F2.0020.0002] # OLD TURKIC LETTER ORKHON AT
-10C44 ; [.32F2.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AT
-10C45 ; [.32F3.0020.0002] # OLD TURKIC LETTER ORKHON AET
-10C46 ; [.32F3.0020.0004][.0000.0108.0004] # OLD TURKIC LETTER YENISEI AET
-10C47 ; [.32F4.0020.0002] # OLD TURKIC LETTER ORKHON OT
-10C48 ; [.32F5.0020.0002] # OLD TURKIC LETTER ORKHON BASH
-A500 ; [.32F6.0020.0002] # VAI SYLLABLE EE
-A501 ; [.32F7.0020.0002] # VAI SYLLABLE EEN
-A502 ; [.32F8.0020.0002] # VAI SYLLABLE HEE
-A503 ; [.32F9.0020.0002] # VAI SYLLABLE WEE
-A504 ; [.32FA.0020.0002] # VAI SYLLABLE WEEN
-A505 ; [.32FB.0020.0002] # VAI SYLLABLE PEE
-A506 ; [.32FC.0020.0002] # VAI SYLLABLE BHEE
-A507 ; [.32FD.0020.0002] # VAI SYLLABLE BEE
-A508 ; [.32FE.0020.0002] # VAI SYLLABLE MBEE
-A509 ; [.32FF.0020.0002] # VAI SYLLABLE KPEE
-A50A ; [.3300.0020.0002] # VAI SYLLABLE MGBEE
-A50B ; [.3301.0020.0002] # VAI SYLLABLE GBEE
-A50C ; [.3302.0020.0002] # VAI SYLLABLE FEE
-A613 ; [.3302.0020.0004][.3401.0020.0004] # VAI SYMBOL FEENG
-A50D ; [.3303.0020.0002] # VAI SYLLABLE VEE
-A50E ; [.3304.0020.0002] # VAI SYLLABLE TEE
-A50F ; [.3305.0020.0002] # VAI SYLLABLE THEE
-A510 ; [.3306.0020.0002] # VAI SYLLABLE DHEE
-A511 ; [.3307.0020.0002] # VAI SYLLABLE DHHEE
-A512 ; [.3308.0020.0002] # VAI SYLLABLE LEE
-A513 ; [.3309.0020.0002] # VAI SYLLABLE REE
-A514 ; [.330A.0020.0002] # VAI SYLLABLE DEE
-A515 ; [.330B.0020.0002] # VAI SYLLABLE NDEE
-A516 ; [.330C.0020.0002] # VAI SYLLABLE SEE
-A517 ; [.330D.0020.0002] # VAI SYLLABLE SHEE
-A518 ; [.330E.0020.0002] # VAI SYLLABLE ZEE
-A519 ; [.330F.0020.0002] # VAI SYLLABLE ZHEE
-A51A ; [.3310.0020.0002] # VAI SYLLABLE CEE
-A51B ; [.3311.0020.0002] # VAI SYLLABLE JEE
-A51C ; [.3312.0020.0002] # VAI SYLLABLE NJEE
-A51D ; [.3313.0020.0002] # VAI SYLLABLE YEE
-A51E ; [.3314.0020.0002] # VAI SYLLABLE KEE
-A614 ; [.3314.0020.0004][.3401.0020.0004] # VAI SYMBOL KEENG
-A51F ; [.3315.0020.0002] # VAI SYLLABLE NGGEE
-A520 ; [.3316.0020.0002] # VAI SYLLABLE GEE
-A521 ; [.3317.0020.0002] # VAI SYLLABLE MEE
-A522 ; [.3318.0020.0002] # VAI SYLLABLE NEE
-A523 ; [.3319.0020.0002] # VAI SYLLABLE NYEE
-A524 ; [.331A.0020.0002] # VAI SYLLABLE I
-A525 ; [.331B.0020.0002] # VAI SYLLABLE IN
-A526 ; [.331C.0020.0002] # VAI SYLLABLE HI
-A527 ; [.331D.0020.0002] # VAI SYLLABLE HIN
-A528 ; [.331E.0020.0002] # VAI SYLLABLE WI
-A529 ; [.331F.0020.0002] # VAI SYLLABLE WIN
-A52A ; [.3320.0020.0002] # VAI SYLLABLE PI
-A52B ; [.3321.0020.0002] # VAI SYLLABLE BHI
-A52C ; [.3322.0020.0002] # VAI SYLLABLE BI
-A52D ; [.3323.0020.0002] # VAI SYLLABLE MBI
-A52E ; [.3324.0020.0002] # VAI SYLLABLE KPI
-A52F ; [.3325.0020.0002] # VAI SYLLABLE MGBI
-A530 ; [.3326.0020.0002] # VAI SYLLABLE GBI
-A531 ; [.3327.0020.0002] # VAI SYLLABLE FI
-A532 ; [.3328.0020.0002] # VAI SYLLABLE VI
-A533 ; [.3329.0020.0002] # VAI SYLLABLE TI
-A615 ; [.3329.0020.0004][.3401.0020.0004] # VAI SYMBOL TING
-A534 ; [.332A.0020.0002] # VAI SYLLABLE THI
-A535 ; [.332B.0020.0002] # VAI SYLLABLE DHI
-A536 ; [.332C.0020.0002] # VAI SYLLABLE DHHI
-A537 ; [.332D.0020.0002] # VAI SYLLABLE LI
-A538 ; [.332E.0020.0002] # VAI SYLLABLE RI
-A539 ; [.332F.0020.0002] # VAI SYLLABLE DI
-A53A ; [.3330.0020.0002] # VAI SYLLABLE NDI
-A53B ; [.3331.0020.0002] # VAI SYLLABLE SI
-A53C ; [.3332.0020.0002] # VAI SYLLABLE SHI
-A53D ; [.3333.0020.0002] # VAI SYLLABLE ZI
-A53E ; [.3334.0020.0002] # VAI SYLLABLE ZHI
-A53F ; [.3335.0020.0002] # VAI SYLLABLE CI
-A540 ; [.3336.0020.0002] # VAI SYLLABLE JI
-A541 ; [.3337.0020.0002] # VAI SYLLABLE NJI
-A542 ; [.3338.0020.0002] # VAI SYLLABLE YI
-A543 ; [.3339.0020.0002] # VAI SYLLABLE KI
-A544 ; [.333A.0020.0002] # VAI SYLLABLE NGGI
-A545 ; [.333B.0020.0002] # VAI SYLLABLE GI
-A546 ; [.333C.0020.0002] # VAI SYLLABLE MI
-A547 ; [.333D.0020.0002] # VAI SYLLABLE NI
-A616 ; [.333D.0020.0004][.3402.0020.0004] # VAI SYMBOL NII
-A548 ; [.333E.0020.0002] # VAI SYLLABLE NYI
-A549 ; [.333F.0020.0002] # VAI SYLLABLE A
-A54A ; [.3340.0020.0002] # VAI SYLLABLE AN
-A54B ; [.3341.0020.0002] # VAI SYLLABLE NGAN
-A54C ; [.3342.0020.0002] # VAI SYLLABLE HA
-A54D ; [.3343.0020.0002] # VAI SYLLABLE HAN
-A54E ; [.3344.0020.0002] # VAI SYLLABLE WA
-A54F ; [.3345.0020.0002] # VAI SYLLABLE WAN
-A550 ; [.3346.0020.0002] # VAI SYLLABLE PA
-A551 ; [.3347.0020.0002] # VAI SYLLABLE BHA
-A552 ; [.3348.0020.0002] # VAI SYLLABLE BA
-A617 ; [.3348.0020.0004][.3401.0020.0004] # VAI SYMBOL BANG
-A553 ; [.3349.0020.0002] # VAI SYLLABLE MBA
-A554 ; [.334A.0020.0002] # VAI SYLLABLE KPA
-A555 ; [.334B.0020.0002] # VAI SYLLABLE KPAN
-A556 ; [.334C.0020.0002] # VAI SYLLABLE MGBA
-A557 ; [.334D.0020.0002] # VAI SYLLABLE GBA
-A558 ; [.334E.0020.0002] # VAI SYLLABLE FA
-A610 ; [.334E.0020.0004] # VAI SYLLABLE NDOLE FA
-A618 ; [.334E.0020.0004][.3402.0020.0004] # VAI SYMBOL FAA
-A559 ; [.334F.0020.0002] # VAI SYLLABLE VA
-A55A ; [.3350.0020.0002] # VAI SYLLABLE TA
-A619 ; [.3350.0020.0004][.3402.0020.0004] # VAI SYMBOL TAA
-A55B ; [.3351.0020.0002] # VAI SYLLABLE THA
-A55C ; [.3352.0020.0002] # VAI SYLLABLE DHA
-A55D ; [.3353.0020.0002] # VAI SYLLABLE DHHA
-A55E ; [.3354.0020.0002] # VAI SYLLABLE LA
-A55F ; [.3355.0020.0002] # VAI SYLLABLE RA
-A560 ; [.3356.0020.0002] # VAI SYLLABLE DA
-A61A ; [.3356.0020.0004][.3401.0020.0004] # VAI SYMBOL DANG
-A561 ; [.3357.0020.0002] # VAI SYLLABLE NDA
-A562 ; [.3358.0020.0002] # VAI SYLLABLE SA
-A563 ; [.3359.0020.0002] # VAI SYLLABLE SHA
-A564 ; [.335A.0020.0002] # VAI SYLLABLE ZA
-A565 ; [.335B.0020.0002] # VAI SYLLABLE ZHA
-A566 ; [.335C.0020.0002] # VAI SYLLABLE CA
-A567 ; [.335D.0020.0002] # VAI SYLLABLE JA
-A568 ; [.335E.0020.0002] # VAI SYLLABLE NJA
-A569 ; [.335F.0020.0002] # VAI SYLLABLE YA
-A56A ; [.3360.0020.0002] # VAI SYLLABLE KA
-A611 ; [.3360.0020.0004] # VAI SYLLABLE NDOLE KA
-A56B ; [.3361.0020.0002] # VAI SYLLABLE KAN
-A56C ; [.3362.0020.0002] # VAI SYLLABLE NGGA
-A56D ; [.3363.0020.0002] # VAI SYLLABLE GA
-A56E ; [.3364.0020.0002] # VAI SYLLABLE MA
-A62A ; [.3364.0020.0004] # VAI SYLLABLE NDOLE MA
-A56F ; [.3365.0020.0002] # VAI SYLLABLE NA
-A570 ; [.3366.0020.0002] # VAI SYLLABLE NYA
-A571 ; [.3367.0020.0002] # VAI SYLLABLE OO
-A572 ; [.3368.0020.0002] # VAI SYLLABLE OON
-A573 ; [.3369.0020.0002] # VAI SYLLABLE HOO
-A574 ; [.336A.0020.0002] # VAI SYLLABLE WOO
-A575 ; [.336B.0020.0002] # VAI SYLLABLE WOON
-A576 ; [.336C.0020.0002] # VAI SYLLABLE POO
-A577 ; [.336D.0020.0002] # VAI SYLLABLE BHOO
-A578 ; [.336E.0020.0002] # VAI SYLLABLE BOO
-A579 ; [.336F.0020.0002] # VAI SYLLABLE MBOO
-A57A ; [.3370.0020.0002] # VAI SYLLABLE KPOO
-A57B ; [.3371.0020.0002] # VAI SYLLABLE MGBOO
-A57C ; [.3372.0020.0002] # VAI SYLLABLE GBOO
-A57D ; [.3373.0020.0002] # VAI SYLLABLE FOO
-A57E ; [.3374.0020.0002] # VAI SYLLABLE VOO
-A57F ; [.3375.0020.0002] # VAI SYLLABLE TOO
-A580 ; [.3376.0020.0002] # VAI SYLLABLE THOO
-A581 ; [.3377.0020.0002] # VAI SYLLABLE DHOO
-A582 ; [.3378.0020.0002] # VAI SYLLABLE DHHOO
-A583 ; [.3379.0020.0002] # VAI SYLLABLE LOO
-A584 ; [.337A.0020.0002] # VAI SYLLABLE ROO
-A585 ; [.337B.0020.0002] # VAI SYLLABLE DOO
-A61B ; [.337B.0020.0004][.3401.0020.0004] # VAI SYMBOL DOONG
-A586 ; [.337C.0020.0002] # VAI SYLLABLE NDOO
-A587 ; [.337D.0020.0002] # VAI SYLLABLE SOO
-A612 ; [.337D.0020.0004] # VAI SYLLABLE NDOLE SOO
-A588 ; [.337E.0020.0002] # VAI SYLLABLE SHOO
-A589 ; [.337F.0020.0002] # VAI SYLLABLE ZOO
-A58A ; [.3380.0020.0002] # VAI SYLLABLE ZHOO
-A58B ; [.3381.0020.0002] # VAI SYLLABLE COO
-A58C ; [.3382.0020.0002] # VAI SYLLABLE JOO
-A58D ; [.3383.0020.0002] # VAI SYLLABLE NJOO
-A58E ; [.3384.0020.0002] # VAI SYLLABLE YOO
-A58F ; [.3385.0020.0002] # VAI SYLLABLE KOO
-A590 ; [.3386.0020.0002] # VAI SYLLABLE NGGOO
-A591 ; [.3387.0020.0002] # VAI SYLLABLE GOO
-A592 ; [.3388.0020.0002] # VAI SYLLABLE MOO
-A593 ; [.3389.0020.0002] # VAI SYLLABLE NOO
-A594 ; [.338A.0020.0002] # VAI SYLLABLE NYOO
-A595 ; [.338B.0020.0002] # VAI SYLLABLE U
-A596 ; [.338C.0020.0002] # VAI SYLLABLE UN
-A597 ; [.338D.0020.0002] # VAI SYLLABLE HU
-A598 ; [.338E.0020.0002] # VAI SYLLABLE HUN
-A599 ; [.338F.0020.0002] # VAI SYLLABLE WU
-A59A ; [.3390.0020.0002] # VAI SYLLABLE WUN
-A59B ; [.3391.0020.0002] # VAI SYLLABLE PU
-A59C ; [.3392.0020.0002] # VAI SYLLABLE BHU
-A59D ; [.3393.0020.0002] # VAI SYLLABLE BU
-A59E ; [.3394.0020.0002] # VAI SYLLABLE MBU
-A59F ; [.3395.0020.0002] # VAI SYLLABLE KPU
-A5A0 ; [.3396.0020.0002] # VAI SYLLABLE MGBU
-A5A1 ; [.3397.0020.0002] # VAI SYLLABLE GBU
-A5A2 ; [.3398.0020.0002] # VAI SYLLABLE FU
-A5A3 ; [.3399.0020.0002] # VAI SYLLABLE VU
-A5A4 ; [.339A.0020.0002] # VAI SYLLABLE TU
-A5A5 ; [.339B.0020.0002] # VAI SYLLABLE THU
-A5A6 ; [.339C.0020.0002] # VAI SYLLABLE DHU
-A5A7 ; [.339D.0020.0002] # VAI SYLLABLE DHHU
-A5A8 ; [.339E.0020.0002] # VAI SYLLABLE LU
-A5A9 ; [.339F.0020.0002] # VAI SYLLABLE RU
-A5AA ; [.33A0.0020.0002] # VAI SYLLABLE DU
-A5AB ; [.33A1.0020.0002] # VAI SYLLABLE NDU
-A5AC ; [.33A2.0020.0002] # VAI SYLLABLE SU
-A5AD ; [.33A3.0020.0002] # VAI SYLLABLE SHU
-A5AE ; [.33A4.0020.0002] # VAI SYLLABLE ZU
-A5AF ; [.33A5.0020.0002] # VAI SYLLABLE ZHU
-A5B0 ; [.33A6.0020.0002] # VAI SYLLABLE CU
-A5B1 ; [.33A7.0020.0002] # VAI SYLLABLE JU
-A5B2 ; [.33A8.0020.0002] # VAI SYLLABLE NJU
-A5B3 ; [.33A9.0020.0002] # VAI SYLLABLE YU
-A5B4 ; [.33AA.0020.0002] # VAI SYLLABLE KU
-A61C ; [.33AA.0020.0004][.3401.0020.0004] # VAI SYMBOL KUNG
-A5B5 ; [.33AB.0020.0002] # VAI SYLLABLE NGGU
-A5B6 ; [.33AC.0020.0002] # VAI SYLLABLE GU
-A5B7 ; [.33AD.0020.0002] # VAI SYLLABLE MU
-A5B8 ; [.33AE.0020.0002] # VAI SYLLABLE NU
-A5B9 ; [.33AF.0020.0002] # VAI SYLLABLE NYU
-A5BA ; [.33B0.0020.0002] # VAI SYLLABLE O
-A5BB ; [.33B1.0020.0002] # VAI SYLLABLE ON
-A5BC ; [.33B2.0020.0002] # VAI SYLLABLE NGON
-A5BD ; [.33B3.0020.0002] # VAI SYLLABLE HO
-A5BE ; [.33B4.0020.0002] # VAI SYLLABLE HON
-A5BF ; [.33B5.0020.0002] # VAI SYLLABLE WO
-A5C0 ; [.33B6.0020.0002] # VAI SYLLABLE WON
-A5C1 ; [.33B7.0020.0002] # VAI SYLLABLE PO
-A5C2 ; [.33B8.0020.0002] # VAI SYLLABLE BHO
-A5C3 ; [.33B9.0020.0002] # VAI SYLLABLE BO
-A5C4 ; [.33BA.0020.0002] # VAI SYLLABLE MBO
-A5C5 ; [.33BB.0020.0002] # VAI SYLLABLE KPO
-A5C6 ; [.33BC.0020.0002] # VAI SYLLABLE MGBO
-A5C7 ; [.33BD.0020.0002] # VAI SYLLABLE GBO
-A5C8 ; [.33BE.0020.0002] # VAI SYLLABLE GBON
-A5C9 ; [.33BF.0020.0002] # VAI SYLLABLE FO
-A5CA ; [.33C0.0020.0002] # VAI SYLLABLE VO
-A5CB ; [.33C1.0020.0002] # VAI SYLLABLE TO
-A61D ; [.33C1.0020.0004][.3401.0020.0004] # VAI SYMBOL TONG
-A5CC ; [.33C2.0020.0002] # VAI SYLLABLE THO
-A5CD ; [.33C3.0020.0002] # VAI SYLLABLE DHO
-A5CE ; [.33C4.0020.0002] # VAI SYLLABLE DHHO
-A5CF ; [.33C5.0020.0002] # VAI SYLLABLE LO
-A5D0 ; [.33C6.0020.0002] # VAI SYLLABLE RO
-A5D1 ; [.33C7.0020.0002] # VAI SYLLABLE DO
-A62B ; [.33C7.0020.0004] # VAI SYLLABLE NDOLE DO
-A61E ; [.33C7.0020.0004][.3402.0020.0004] # VAI SYMBOL DO-O
-A5D2 ; [.33C8.0020.0002] # VAI SYLLABLE NDO
-A5D3 ; [.33C9.0020.0002] # VAI SYLLABLE SO
-A5D4 ; [.33CA.0020.0002] # VAI SYLLABLE SHO
-A5D5 ; [.33CB.0020.0002] # VAI SYLLABLE ZO
-A5D6 ; [.33CC.0020.0002] # VAI SYLLABLE ZHO
-A5D7 ; [.33CD.0020.0002] # VAI SYLLABLE CO
-A5D8 ; [.33CE.0020.0002] # VAI SYLLABLE JO
-A61F ; [.33CE.0020.0004][.3401.0020.0004] # VAI SYMBOL JONG
-A5D9 ; [.33CF.0020.0002] # VAI SYLLABLE NJO
-A5DA ; [.33D0.0020.0002] # VAI SYLLABLE YO
-A5DB ; [.33D1.0020.0002] # VAI SYLLABLE KO
-A5DC ; [.33D2.0020.0002] # VAI SYLLABLE NGGO
-A5DD ; [.33D3.0020.0002] # VAI SYLLABLE GO
-A5DE ; [.33D4.0020.0002] # VAI SYLLABLE MO
-A5DF ; [.33D5.0020.0002] # VAI SYLLABLE NO
-A5E0 ; [.33D6.0020.0002] # VAI SYLLABLE NYO
-A5E1 ; [.33D7.0020.0002] # VAI SYLLABLE E
-A5E2 ; [.33D8.0020.0002] # VAI SYLLABLE EN
-A5E3 ; [.33D9.0020.0002] # VAI SYLLABLE NGEN
-A5E4 ; [.33DA.0020.0002] # VAI SYLLABLE HE
-A5E5 ; [.33DB.0020.0002] # VAI SYLLABLE HEN
-A5E6 ; [.33DC.0020.0002] # VAI SYLLABLE WE
-A5E7 ; [.33DD.0020.0002] # VAI SYLLABLE WEN
-A5E8 ; [.33DE.0020.0002] # VAI SYLLABLE PE
-A5E9 ; [.33DF.0020.0002] # VAI SYLLABLE BHE
-A5EA ; [.33E0.0020.0002] # VAI SYLLABLE BE
-A5EB ; [.33E1.0020.0002] # VAI SYLLABLE MBE
-A5EC ; [.33E2.0020.0002] # VAI SYLLABLE KPE
-A5ED ; [.33E3.0020.0002] # VAI SYLLABLE KPEN
-A5EE ; [.33E4.0020.0002] # VAI SYLLABLE MGBE
-A5EF ; [.33E5.0020.0002] # VAI SYLLABLE GBE
-A5F0 ; [.33E6.0020.0002] # VAI SYLLABLE GBEN
-A5F1 ; [.33E7.0020.0002] # VAI SYLLABLE FE
-A5F2 ; [.33E8.0020.0002] # VAI SYLLABLE VE
-A5F3 ; [.33E9.0020.0002] # VAI SYLLABLE TE
-A5F4 ; [.33EA.0020.0002] # VAI SYLLABLE THE
-A5F5 ; [.33EB.0020.0002] # VAI SYLLABLE DHE
-A5F6 ; [.33EC.0020.0002] # VAI SYLLABLE DHHE
-A5F7 ; [.33ED.0020.0002] # VAI SYLLABLE LE
-A5F8 ; [.33EE.0020.0002] # VAI SYLLABLE RE
-A5F9 ; [.33EF.0020.0002] # VAI SYLLABLE DE
-A5FA ; [.33F0.0020.0002] # VAI SYLLABLE NDE
-A5FB ; [.33F1.0020.0002] # VAI SYLLABLE SE
-A5FC ; [.33F2.0020.0002] # VAI SYLLABLE SHE
-A5FD ; [.33F3.0020.0002] # VAI SYLLABLE ZE
-A5FE ; [.33F4.0020.0002] # VAI SYLLABLE ZHE
-A5FF ; [.33F5.0020.0002] # VAI SYLLABLE CE
-A600 ; [.33F6.0020.0002] # VAI SYLLABLE JE
-A601 ; [.33F7.0020.0002] # VAI SYLLABLE NJE
-A602 ; [.33F8.0020.0002] # VAI SYLLABLE YE
-A603 ; [.33F9.0020.0002] # VAI SYLLABLE KE
-A604 ; [.33FA.0020.0002] # VAI SYLLABLE NGGE
-A605 ; [.33FB.0020.0002] # VAI SYLLABLE NGGEN
-A606 ; [.33FC.0020.0002] # VAI SYLLABLE GE
-A607 ; [.33FD.0020.0002] # VAI SYLLABLE GEN
-A608 ; [.33FE.0020.0002] # VAI SYLLABLE ME
-A609 ; [.33FF.0020.0002] # VAI SYLLABLE NE
-A60A ; [.3400.0020.0002] # VAI SYLLABLE NYE
-A60B ; [.3401.0020.0002] # VAI SYLLABLE NG
-A60C ; [.3402.0020.0002] # VAI SYLLABLE LENGTHENER
-A6A0 ; [.3403.0020.0002] # BAMUM LETTER A
-A6A1 ; [.3404.0020.0002] # BAMUM LETTER KA
-A6A2 ; [.3405.0020.0002] # BAMUM LETTER U
-A6A3 ; [.3406.0020.0002] # BAMUM LETTER KU
-A6A4 ; [.3407.0020.0002] # BAMUM LETTER EE
-A6A5 ; [.3408.0020.0002] # BAMUM LETTER REE
-A6A6 ; [.3409.0020.0002] # BAMUM LETTER TAE
-A6A7 ; [.340A.0020.0002] # BAMUM LETTER O
-A6A8 ; [.340B.0020.0002] # BAMUM LETTER NYI
-A6A9 ; [.340C.0020.0002] # BAMUM LETTER I
-A6AA ; [.340D.0020.0002] # BAMUM LETTER LA
-A6AB ; [.340E.0020.0002] # BAMUM LETTER PA
-A6AC ; [.340F.0020.0002] # BAMUM LETTER RII
-A6AD ; [.3410.0020.0002] # BAMUM LETTER RIEE
-A6AE ; [.3411.0020.0002] # BAMUM LETTER LEEEE
-A6AF ; [.3412.0020.0002] # BAMUM LETTER MEEEE
-A6B0 ; [.3413.0020.0002] # BAMUM LETTER TAA
-A6B1 ; [.3414.0020.0002] # BAMUM LETTER NDAA
-A6B2 ; [.3415.0020.0002] # BAMUM LETTER NJAEM
-A6B3 ; [.3416.0020.0002] # BAMUM LETTER M
-A6B4 ; [.3417.0020.0002] # BAMUM LETTER SUU
-A6B5 ; [.3418.0020.0002] # BAMUM LETTER MU
-A6B6 ; [.3419.0020.0002] # BAMUM LETTER SHII
-A6B7 ; [.341A.0020.0002] # BAMUM LETTER SI
-A6B8 ; [.341B.0020.0002] # BAMUM LETTER SHEUX
-A6B9 ; [.341C.0020.0002] # BAMUM LETTER SEUX
-A6BA ; [.341D.0020.0002] # BAMUM LETTER KYEE
-A6BB ; [.341E.0020.0002] # BAMUM LETTER KET
-A6BC ; [.341F.0020.0002] # BAMUM LETTER NUAE
-A6BD ; [.3420.0020.0002] # BAMUM LETTER NU
-A6BE ; [.3421.0020.0002] # BAMUM LETTER NJUAE
-A6BF ; [.3422.0020.0002] # BAMUM LETTER YOQ
-A6C0 ; [.3423.0020.0002] # BAMUM LETTER SHU
-A6C1 ; [.3424.0020.0002] # BAMUM LETTER YUQ
-A6C2 ; [.3425.0020.0002] # BAMUM LETTER YA
-A6C3 ; [.3426.0020.0002] # BAMUM LETTER NSHA
-A6C4 ; [.3427.0020.0002] # BAMUM LETTER KEUX
-A6C5 ; [.3428.0020.0002] # BAMUM LETTER PEUX
-A6C6 ; [.3429.0020.0002] # BAMUM LETTER NJEE
-A6C7 ; [.342A.0020.0002] # BAMUM LETTER NTEE
-A6C8 ; [.342B.0020.0002] # BAMUM LETTER PUE
-A6C9 ; [.342C.0020.0002] # BAMUM LETTER WUE
-A6CA ; [.342D.0020.0002] # BAMUM LETTER PEE
-A6CB ; [.342E.0020.0002] # BAMUM LETTER FEE
-A6CC ; [.342F.0020.0002] # BAMUM LETTER RU
-A6CD ; [.3430.0020.0002] # BAMUM LETTER LU
-A6CE ; [.3431.0020.0002] # BAMUM LETTER MI
-A6CF ; [.3432.0020.0002] # BAMUM LETTER NI
-A6D0 ; [.3433.0020.0002] # BAMUM LETTER REUX
-A6D1 ; [.3434.0020.0002] # BAMUM LETTER RAE
-A6D2 ; [.3435.0020.0002] # BAMUM LETTER KEN
-A6D3 ; [.3436.0020.0002] # BAMUM LETTER NGKWAEN
-A6D4 ; [.3437.0020.0002] # BAMUM LETTER NGGA
-A6D5 ; [.3438.0020.0002] # BAMUM LETTER NGA
-A6D6 ; [.3439.0020.0002] # BAMUM LETTER SHO
-A6D7 ; [.343A.0020.0002] # BAMUM LETTER PUAE
-A6D8 ; [.343B.0020.0002] # BAMUM LETTER FU
-A6D9 ; [.343C.0020.0002] # BAMUM LETTER FOM
-A6DA ; [.343D.0020.0002] # BAMUM LETTER WA
-A6DB ; [.343E.0020.0002] # BAMUM LETTER NA
-A6DC ; [.343F.0020.0002] # BAMUM LETTER LI
-A6DD ; [.3440.0020.0002] # BAMUM LETTER PI
-A6DE ; [.3441.0020.0002] # BAMUM LETTER LOQ
-A6DF ; [.3442.0020.0002] # BAMUM LETTER KO
-A6E0 ; [.3443.0020.0002] # BAMUM LETTER MBEN
-A6E1 ; [.3444.0020.0002] # BAMUM LETTER REN
-A6E2 ; [.3445.0020.0002] # BAMUM LETTER MEN
-A6E3 ; [.3446.0020.0002] # BAMUM LETTER MA
-A6E4 ; [.3447.0020.0002] # BAMUM LETTER TI
-A6E5 ; [.3448.0020.0002] # BAMUM LETTER KI
-A6E6 ; [.3449.0020.0002] # BAMUM LETTER MO
-A6E7 ; [.344A.0020.0002] # BAMUM LETTER MBAA
-A6E8 ; [.344B.0020.0002] # BAMUM LETTER TET
-A6E9 ; [.344C.0020.0002] # BAMUM LETTER KPA
-A6EA ; [.344D.0020.0002] # BAMUM LETTER TEN
-A6EB ; [.344E.0020.0002] # BAMUM LETTER NTUU
-A6EC ; [.344F.0020.0002] # BAMUM LETTER SAMBA
-A6ED ; [.3450.0020.0002] # BAMUM LETTER FAAMAE
-A6EE ; [.3451.0020.0002] # BAMUM LETTER KOVUU
-A6EF ; [.3452.0020.0002] # BAMUM LETTER KOGHOM
-16800 ; [.3453.0020.0002] # BAMUM LETTER PHASE-A NGKUE MFON
-16801 ; [.3454.0020.0002] # BAMUM LETTER PHASE-A GBIEE FON
-16802 ; [.3455.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
-16803 ; [.3456.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMBA
-16804 ; [.3457.0020.0002] # BAMUM LETTER PHASE-A NAA MFON
-16805 ; [.3458.0020.0002] # BAMUM LETTER PHASE-A SHUENSHUET
-16806 ; [.3459.0020.0002] # BAMUM LETTER PHASE-A TITA MFON
-16807 ; [.345A.0020.0002] # BAMUM LETTER PHASE-A NZA MFON
-16808 ; [.345B.0020.0002] # BAMUM LETTER PHASE-A SHINDA PA NJI
-16809 ; [.345C.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
-1680A ; [.345D.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
-1680B ; [.345E.0020.0002] # BAMUM LETTER PHASE-A MAEMBGBIEE
-1680C ; [.345F.0020.0002] # BAMUM LETTER PHASE-A TU MAEMBA
-1680D ; [.3460.0020.0002] # BAMUM LETTER PHASE-A NGANGU
-1680E ; [.3461.0020.0002] # BAMUM LETTER PHASE-A MAEMVEUX
-1680F ; [.3462.0020.0002] # BAMUM LETTER PHASE-A MANSUAE
-16810 ; [.3463.0020.0002] # BAMUM LETTER PHASE-A MVEUAENGAM
-16811 ; [.3464.0020.0002] # BAMUM LETTER PHASE-A SEUNYAM
-16812 ; [.3465.0020.0002] # BAMUM LETTER PHASE-A NTOQPEN
-16813 ; [.3466.0020.0002] # BAMUM LETTER PHASE-A KEUKEUTNDA
-16814 ; [.3467.0020.0002] # BAMUM LETTER PHASE-A NKINDI
-16815 ; [.3468.0020.0002] # BAMUM LETTER PHASE-A SUU
-16816 ; [.3469.0020.0002] # BAMUM LETTER PHASE-A NGKUENZEUM
-16817 ; [.346A.0020.0002] # BAMUM LETTER PHASE-A LAPAQ
-16818 ; [.346B.0020.0002] # BAMUM LETTER PHASE-A LET KUT
-16819 ; [.346C.0020.0002] # BAMUM LETTER PHASE-A NTAP MFAA
-1681A ; [.346D.0020.0002] # BAMUM LETTER PHASE-A MAEKEUP
-1681B ; [.346E.0020.0002] # BAMUM LETTER PHASE-A PASHAE
-1681C ; [.346F.0020.0002] # BAMUM LETTER PHASE-A GHEUAERAE
-1681D ; [.3470.0020.0002] # BAMUM LETTER PHASE-A PAMSHAE
-1681E ; [.3471.0020.0002] # BAMUM LETTER PHASE-A MON NGGEUAET
-1681F ; [.3472.0020.0002] # BAMUM LETTER PHASE-A NZUN MEUT
-16820 ; [.3473.0020.0002] # BAMUM LETTER PHASE-A U YUQ NAE
-16821 ; [.3474.0020.0002] # BAMUM LETTER PHASE-A GHEUAEGHEUAE
-16822 ; [.3475.0020.0002] # BAMUM LETTER PHASE-A NTAP NTAA
-16823 ; [.3476.0020.0002] # BAMUM LETTER PHASE-A SISA
-16824 ; [.3477.0020.0002] # BAMUM LETTER PHASE-A MGBASA
-16825 ; [.3478.0020.0002] # BAMUM LETTER PHASE-A MEUNJOMNDEUQ
-16826 ; [.3479.0020.0002] # BAMUM LETTER PHASE-A MOOMPUQ
-16827 ; [.347A.0020.0002] # BAMUM LETTER PHASE-A KAFA
-16828 ; [.347B.0020.0002] # BAMUM LETTER PHASE-A PA LEERAEWA
-16829 ; [.347C.0020.0002] # BAMUM LETTER PHASE-A NDA LEERAEWA
-1682A ; [.347D.0020.0002] # BAMUM LETTER PHASE-A PET
-1682B ; [.347E.0020.0002] # BAMUM LETTER PHASE-A MAEMKPEN
-1682C ; [.347F.0020.0002] # BAMUM LETTER PHASE-A NIKA
-1682D ; [.3480.0020.0002] # BAMUM LETTER PHASE-A PUP
-1682E ; [.3481.0020.0002] # BAMUM LETTER PHASE-A TUAEP
-1682F ; [.3482.0020.0002] # BAMUM LETTER PHASE-A LUAEP
-16830 ; [.3483.0020.0002] # BAMUM LETTER PHASE-A SONJAM
-16831 ; [.3484.0020.0002] # BAMUM LETTER PHASE-A TEUTEUWEN
-16832 ; [.3485.0020.0002] # BAMUM LETTER PHASE-A MAENYI
-16833 ; [.3486.0020.0002] # BAMUM LETTER PHASE-A KET
-16834 ; [.3487.0020.0002] # BAMUM LETTER PHASE-A NDAANGGEUAET
-16835 ; [.3488.0020.0002] # BAMUM LETTER PHASE-A KUOQ
-16836 ; [.3489.0020.0002] # BAMUM LETTER PHASE-A MOOMEUT
-16837 ; [.348A.0020.0002] # BAMUM LETTER PHASE-A SHUM
-16838 ; [.348B.0020.0002] # BAMUM LETTER PHASE-A LOMMAE
-16839 ; [.348C.0020.0002] # BAMUM LETTER PHASE-A FIRI
-1683A ; [.348D.0020.0002] # BAMUM LETTER PHASE-A ROM
-1683B ; [.348E.0020.0002] # BAMUM LETTER PHASE-A KPOQ
-1683C ; [.348F.0020.0002] # BAMUM LETTER PHASE-A SOQ
-1683D ; [.3490.0020.0002] # BAMUM LETTER PHASE-A MAP PIEET
-1683E ; [.3491.0020.0002] # BAMUM LETTER PHASE-A SHIRAE
-1683F ; [.3492.0020.0002] # BAMUM LETTER PHASE-A NTAP
-16840 ; [.3493.0020.0002] # BAMUM LETTER PHASE-A SHOQ NSHUT YUM
-16841 ; [.3494.0020.0002] # BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
-16842 ; [.3495.0020.0002] # BAMUM LETTER PHASE-A PAARAE
-16843 ; [.3496.0020.0002] # BAMUM LETTER PHASE-A NKAARAE
-16844 ; [.3497.0020.0002] # BAMUM LETTER PHASE-A UNKNOWN
-16845 ; [.3498.0020.0002] # BAMUM LETTER PHASE-A NGGEN
-16846 ; [.3499.0020.0002] # BAMUM LETTER PHASE-A MAESI
-16847 ; [.349A.0020.0002] # BAMUM LETTER PHASE-A NJAM
-16848 ; [.349B.0020.0002] # BAMUM LETTER PHASE-A MBANYI
-16849 ; [.349C.0020.0002] # BAMUM LETTER PHASE-A NYET
-1684A ; [.349D.0020.0002] # BAMUM LETTER PHASE-A TEUAEN
-1684B ; [.349E.0020.0002] # BAMUM LETTER PHASE-A SOT
-1684C ; [.349F.0020.0002] # BAMUM LETTER PHASE-A PAAM
-1684D ; [.34A0.0020.0002] # BAMUM LETTER PHASE-A NSHIEE
-1684E ; [.34A1.0020.0002] # BAMUM LETTER PHASE-A MAEM
-1684F ; [.34A2.0020.0002] # BAMUM LETTER PHASE-A NYI
-16850 ; [.34A3.0020.0002] # BAMUM LETTER PHASE-A KAQ
-16851 ; [.34A4.0020.0002] # BAMUM LETTER PHASE-A NSHA
-16852 ; [.34A5.0020.0002] # BAMUM LETTER PHASE-A VEE
-16853 ; [.34A6.0020.0002] # BAMUM LETTER PHASE-A LU
-16854 ; [.34A7.0020.0002] # BAMUM LETTER PHASE-A NEN
-16855 ; [.34A8.0020.0002] # BAMUM LETTER PHASE-A NAQ
-16856 ; [.34A9.0020.0002] # BAMUM LETTER PHASE-A MBAQ
-16857 ; [.34AA.0020.0002] # BAMUM LETTER PHASE-B NSHUET
-16858 ; [.34AB.0020.0002] # BAMUM LETTER PHASE-B TU MAEMGBIEE
-16859 ; [.34AC.0020.0002] # BAMUM LETTER PHASE-B SIEE
-1685A ; [.34AD.0020.0002] # BAMUM LETTER PHASE-B SET TU
-1685B ; [.34AE.0020.0002] # BAMUM LETTER PHASE-B LOM NTEUM
-1685C ; [.34AF.0020.0002] # BAMUM LETTER PHASE-B MBA MAELEE
-1685D ; [.34B0.0020.0002] # BAMUM LETTER PHASE-B KIEEM
-1685E ; [.34B1.0020.0002] # BAMUM LETTER PHASE-B YEURAE
-1685F ; [.34B2.0020.0002] # BAMUM LETTER PHASE-B MBAARAE
-16860 ; [.34B3.0020.0002] # BAMUM LETTER PHASE-B KAM
-16861 ; [.34B4.0020.0002] # BAMUM LETTER PHASE-B PEESHI
-16862 ; [.34B5.0020.0002] # BAMUM LETTER PHASE-B YAFU LEERAEWA
-16863 ; [.34B6.0020.0002] # BAMUM LETTER PHASE-B LAM NSHUT NYAM
-16864 ; [.34B7.0020.0002] # BAMUM LETTER PHASE-B NTIEE SHEUOQ
-16865 ; [.34B8.0020.0002] # BAMUM LETTER PHASE-B NDU NJAA
-16866 ; [.34B9.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEUAEM
-16867 ; [.34BA.0020.0002] # BAMUM LETTER PHASE-B PIT
-16868 ; [.34BB.0020.0002] # BAMUM LETTER PHASE-B TU NSIEE
-16869 ; [.34BC.0020.0002] # BAMUM LETTER PHASE-B SHET NJAQ
-1686A ; [.34BD.0020.0002] # BAMUM LETTER PHASE-B SHEUAEQTU
-1686B ; [.34BE.0020.0002] # BAMUM LETTER PHASE-B MFON TEUAEQ
-1686C ; [.34BF.0020.0002] # BAMUM LETTER PHASE-B MBIT MBAAKET
-1686D ; [.34C0.0020.0002] # BAMUM LETTER PHASE-B NYI NTEUM
-1686E ; [.34C1.0020.0002] # BAMUM LETTER PHASE-B KEUPUQ
-1686F ; [.34C2.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEN
-16870 ; [.34C3.0020.0002] # BAMUM LETTER PHASE-B KEUYEUX
-16871 ; [.34C4.0020.0002] # BAMUM LETTER PHASE-B LAANAE
-16872 ; [.34C5.0020.0002] # BAMUM LETTER PHASE-B PARUM
-16873 ; [.34C6.0020.0002] # BAMUM LETTER PHASE-B VEUM
-16874 ; [.34C7.0020.0002] # BAMUM LETTER PHASE-B NGKINDI MVOP
-16875 ; [.34C8.0020.0002] # BAMUM LETTER PHASE-B NGGEU MBU
-16876 ; [.34C9.0020.0002] # BAMUM LETTER PHASE-B WUAET
-16877 ; [.34CA.0020.0002] # BAMUM LETTER PHASE-B SAKEUAE
-16878 ; [.34CB.0020.0002] # BAMUM LETTER PHASE-B TAAM
-16879 ; [.34CC.0020.0002] # BAMUM LETTER PHASE-B MEUQ
-1687A ; [.34CD.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ
-1687B ; [.34CE.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ LARGE
-1687C ; [.34CF.0020.0002] # BAMUM LETTER PHASE-B MFIYAQ
-1687D ; [.34D0.0020.0002] # BAMUM LETTER PHASE-B SUE
-1687E ; [.34D1.0020.0002] # BAMUM LETTER PHASE-B MBEURI
-1687F ; [.34D2.0020.0002] # BAMUM LETTER PHASE-B MONTIEEN
-16880 ; [.34D3.0020.0002] # BAMUM LETTER PHASE-B NYAEMAE
-16881 ; [.34D4.0020.0002] # BAMUM LETTER PHASE-B PUNGAAM
-16882 ; [.34D5.0020.0002] # BAMUM LETTER PHASE-B MEUT NGGEET
-16883 ; [.34D6.0020.0002] # BAMUM LETTER PHASE-B FEUX
-16884 ; [.34D7.0020.0002] # BAMUM LETTER PHASE-B MBUOQ
-16885 ; [.34D8.0020.0002] # BAMUM LETTER PHASE-B FEE
-16886 ; [.34D9.0020.0002] # BAMUM LETTER PHASE-B KEUAEM
-16887 ; [.34DA.0020.0002] # BAMUM LETTER PHASE-B MA NJEUAENA
-16888 ; [.34DB.0020.0002] # BAMUM LETTER PHASE-B MA NJUQA
-16889 ; [.34DC.0020.0002] # BAMUM LETTER PHASE-B LET
-1688A ; [.34DD.0020.0002] # BAMUM LETTER PHASE-B NGGAAM
-1688B ; [.34DE.0020.0002] # BAMUM LETTER PHASE-B NSEN
-1688C ; [.34DF.0020.0002] # BAMUM LETTER PHASE-B MA
-1688D ; [.34E0.0020.0002] # BAMUM LETTER PHASE-B KIQ
-1688E ; [.34E1.0020.0002] # BAMUM LETTER PHASE-B NGOM
-1688F ; [.34E2.0020.0002] # BAMUM LETTER PHASE-C NGKUE MAEMBA
-16890 ; [.34E3.0020.0002] # BAMUM LETTER PHASE-C NZA
-16891 ; [.34E4.0020.0002] # BAMUM LETTER PHASE-C YUM
-16892 ; [.34E5.0020.0002] # BAMUM LETTER PHASE-C WANGKUOQ
-16893 ; [.34E6.0020.0002] # BAMUM LETTER PHASE-C NGGEN
-16894 ; [.34E7.0020.0002] # BAMUM LETTER PHASE-C NDEUAEREE
-16895 ; [.34E8.0020.0002] # BAMUM LETTER PHASE-C NGKAQ
-16896 ; [.34E9.0020.0002] # BAMUM LETTER PHASE-C GHARAE
-16897 ; [.34EA.0020.0002] # BAMUM LETTER PHASE-C MBEEKEET
-16898 ; [.34EB.0020.0002] # BAMUM LETTER PHASE-C GBAYI
-16899 ; [.34EC.0020.0002] # BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
-1689A ; [.34ED.0020.0002] # BAMUM LETTER PHASE-C NTU MBIT
-1689B ; [.34EE.0020.0002] # BAMUM LETTER PHASE-C MBEUM
-1689C ; [.34EF.0020.0002] # BAMUM LETTER PHASE-C PIRIEEN
-1689D ; [.34F0.0020.0002] # BAMUM LETTER PHASE-C NDOMBU
-1689E ; [.34F1.0020.0002] # BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
-1689F ; [.34F2.0020.0002] # BAMUM LETTER PHASE-C KEUSHEUAEP
-168A0 ; [.34F3.0020.0002] # BAMUM LETTER PHASE-C GHAP
-168A1 ; [.34F4.0020.0002] # BAMUM LETTER PHASE-C KEUKAQ
-168A2 ; [.34F5.0020.0002] # BAMUM LETTER PHASE-C YU MUOMAE
-168A3 ; [.34F6.0020.0002] # BAMUM LETTER PHASE-C NZEUM
-168A4 ; [.34F7.0020.0002] # BAMUM LETTER PHASE-C MBUE
-168A5 ; [.34F8.0020.0002] # BAMUM LETTER PHASE-C NSEUAEN
-168A6 ; [.34F9.0020.0002] # BAMUM LETTER PHASE-C MBIT
-168A7 ; [.34FA.0020.0002] # BAMUM LETTER PHASE-C YEUQ
-168A8 ; [.34FB.0020.0002] # BAMUM LETTER PHASE-C KPARAQ
-168A9 ; [.34FC.0020.0002] # BAMUM LETTER PHASE-C KAA
-168AA ; [.34FD.0020.0002] # BAMUM LETTER PHASE-C SEUX
-168AB ; [.34FE.0020.0002] # BAMUM LETTER PHASE-C NDIDA
-168AC ; [.34FF.0020.0002] # BAMUM LETTER PHASE-C TAASHAE
-168AD ; [.3500.0020.0002] # BAMUM LETTER PHASE-C NJUEQ
-168AE ; [.3501.0020.0002] # BAMUM LETTER PHASE-C TITA YUE
-168AF ; [.3502.0020.0002] # BAMUM LETTER PHASE-C SUAET
-168B0 ; [.3503.0020.0002] # BAMUM LETTER PHASE-C NGGUAEN NYAM
-168B1 ; [.3504.0020.0002] # BAMUM LETTER PHASE-C VEUX
-168B2 ; [.3505.0020.0002] # BAMUM LETTER PHASE-C NANSANAQ
-168B3 ; [.3506.0020.0002] # BAMUM LETTER PHASE-C MA KEUAERI
-168B4 ; [.3507.0020.0002] # BAMUM LETTER PHASE-C NTAA
-168B5 ; [.3508.0020.0002] # BAMUM LETTER PHASE-C NGGUON
-168B6 ; [.3509.0020.0002] # BAMUM LETTER PHASE-C LAP
-168B7 ; [.350A.0020.0002] # BAMUM LETTER PHASE-C MBIRIEEN
-168B8 ; [.350B.0020.0002] # BAMUM LETTER PHASE-C MGBASAQ
-168B9 ; [.350C.0020.0002] # BAMUM LETTER PHASE-C NTEUNGBA
-168BA ; [.350D.0020.0002] # BAMUM LETTER PHASE-C TEUTEUX
-168BB ; [.350E.0020.0002] # BAMUM LETTER PHASE-C NGGUM
-168BC ; [.350F.0020.0002] # BAMUM LETTER PHASE-C FUE
-168BD ; [.3510.0020.0002] # BAMUM LETTER PHASE-C NDEUT
-168BE ; [.3511.0020.0002] # BAMUM LETTER PHASE-C NSA
-168BF ; [.3512.0020.0002] # BAMUM LETTER PHASE-C NSHAQ
-168C0 ; [.3513.0020.0002] # BAMUM LETTER PHASE-C BUNG
-168C1 ; [.3514.0020.0002] # BAMUM LETTER PHASE-C VEUAEPEN
-168C2 ; [.3515.0020.0002] # BAMUM LETTER PHASE-C MBERAE
-168C3 ; [.3516.0020.0002] # BAMUM LETTER PHASE-C RU
-168C4 ; [.3517.0020.0002] # BAMUM LETTER PHASE-C NJAEM
-168C5 ; [.3518.0020.0002] # BAMUM LETTER PHASE-C LAM
-168C6 ; [.3519.0020.0002] # BAMUM LETTER PHASE-C TITUAEP
-168C7 ; [.351A.0020.0002] # BAMUM LETTER PHASE-C NSUOT NGOM
-168C8 ; [.351B.0020.0002] # BAMUM LETTER PHASE-C NJEEEE
-168C9 ; [.351C.0020.0002] # BAMUM LETTER PHASE-C KET
-168CA ; [.351D.0020.0002] # BAMUM LETTER PHASE-C NGGU
-168CB ; [.351E.0020.0002] # BAMUM LETTER PHASE-C MAESI
-168CC ; [.351F.0020.0002] # BAMUM LETTER PHASE-C MBUAEM
-168CD ; [.3520.0020.0002] # BAMUM LETTER PHASE-C LU
-168CE ; [.3521.0020.0002] # BAMUM LETTER PHASE-C KUT
-168CF ; [.3522.0020.0002] # BAMUM LETTER PHASE-C NJAM
-168D0 ; [.3523.0020.0002] # BAMUM LETTER PHASE-C NGOM
-168D1 ; [.3524.0020.0002] # BAMUM LETTER PHASE-C WUP
-168D2 ; [.3525.0020.0002] # BAMUM LETTER PHASE-C NGGUEET
-168D3 ; [.3526.0020.0002] # BAMUM LETTER PHASE-C NSOM
-168D4 ; [.3527.0020.0002] # BAMUM LETTER PHASE-C NTEN
-168D5 ; [.3528.0020.0002] # BAMUM LETTER PHASE-C KUOP NKAARAE
-168D6 ; [.3529.0020.0002] # BAMUM LETTER PHASE-C NSUN
-168D7 ; [.352A.0020.0002] # BAMUM LETTER PHASE-C NDAM
-168D8 ; [.352B.0020.0002] # BAMUM LETTER PHASE-C MA NSIEE
-168D9 ; [.352C.0020.0002] # BAMUM LETTER PHASE-C YAA
-168DA ; [.352D.0020.0002] # BAMUM LETTER PHASE-C NDAP
-168DB ; [.352E.0020.0002] # BAMUM LETTER PHASE-C SHUEQ
-168DC ; [.352F.0020.0002] # BAMUM LETTER PHASE-C SETFON
-168DD ; [.3530.0020.0002] # BAMUM LETTER PHASE-C MBI
-168DE ; [.3531.0020.0002] # BAMUM LETTER PHASE-C MAEMBA
-168DF ; [.3532.0020.0002] # BAMUM LETTER PHASE-C MBANYI
-168E0 ; [.3533.0020.0002] # BAMUM LETTER PHASE-C KEUSEUX
-168E1 ; [.3534.0020.0002] # BAMUM LETTER PHASE-C MBEUX
-168E2 ; [.3535.0020.0002] # BAMUM LETTER PHASE-C KEUM
-168E3 ; [.3536.0020.0002] # BAMUM LETTER PHASE-C MBAA PICKET
-168E4 ; [.3537.0020.0002] # BAMUM LETTER PHASE-C YUWOQ
-168E5 ; [.3538.0020.0002] # BAMUM LETTER PHASE-C NJEUX
-168E6 ; [.3539.0020.0002] # BAMUM LETTER PHASE-C MIEE
-168E7 ; [.353A.0020.0002] # BAMUM LETTER PHASE-C MUAE
-168E8 ; [.353B.0020.0002] # BAMUM LETTER PHASE-C SHIQ
-168E9 ; [.353C.0020.0002] # BAMUM LETTER PHASE-C KEN LAW
-168EA ; [.353D.0020.0002] # BAMUM LETTER PHASE-C KEN FATIGUE
-168EB ; [.353E.0020.0002] # BAMUM LETTER PHASE-C NGAQ
-168EC ; [.353F.0020.0002] # BAMUM LETTER PHASE-C NAQ
-168ED ; [.3540.0020.0002] # BAMUM LETTER PHASE-C LIQ
-168EE ; [.3541.0020.0002] # BAMUM LETTER PHASE-C PIN
-168EF ; [.3542.0020.0002] # BAMUM LETTER PHASE-C PEN
-168F0 ; [.3543.0020.0002] # BAMUM LETTER PHASE-C TET
-168F1 ; [.3544.0020.0002] # BAMUM LETTER PHASE-D MBUO
-168F2 ; [.3545.0020.0002] # BAMUM LETTER PHASE-D WAP
-168F3 ; [.3546.0020.0002] # BAMUM LETTER PHASE-D NJI
-168F4 ; [.3547.0020.0002] # BAMUM LETTER PHASE-D MFON
-168F5 ; [.3548.0020.0002] # BAMUM LETTER PHASE-D NJIEE
-168F6 ; [.3549.0020.0002] # BAMUM LETTER PHASE-D LIEE
-168F7 ; [.354A.0020.0002] # BAMUM LETTER PHASE-D NJEUT
-168F8 ; [.354B.0020.0002] # BAMUM LETTER PHASE-D NSHEE
-168F9 ; [.354C.0020.0002] # BAMUM LETTER PHASE-D NGGAAMAE
-168FA ; [.354D.0020.0002] # BAMUM LETTER PHASE-D NYAM
-168FB ; [.354E.0020.0002] # BAMUM LETTER PHASE-D WUAEN
-168FC ; [.354F.0020.0002] # BAMUM LETTER PHASE-D NGKUN
-168FD ; [.3550.0020.0002] # BAMUM LETTER PHASE-D SHEE
-168FE ; [.3551.0020.0002] # BAMUM LETTER PHASE-D NGKAP
-168FF ; [.3552.0020.0002] # BAMUM LETTER PHASE-D KEUAETMEUN
-16900 ; [.3553.0020.0002] # BAMUM LETTER PHASE-D TEUT
-16901 ; [.3554.0020.0002] # BAMUM LETTER PHASE-D SHEUAE
-16902 ; [.3555.0020.0002] # BAMUM LETTER PHASE-D NJAP
-16903 ; [.3556.0020.0002] # BAMUM LETTER PHASE-D SUE
-16904 ; [.3557.0020.0002] # BAMUM LETTER PHASE-D KET
-16905 ; [.3558.0020.0002] # BAMUM LETTER PHASE-D YAEMMAE
-16906 ; [.3559.0020.0002] # BAMUM LETTER PHASE-D KUOM
-16907 ; [.355A.0020.0002] # BAMUM LETTER PHASE-D SAP
-16908 ; [.355B.0020.0002] # BAMUM LETTER PHASE-D MFEUT
-16909 ; [.355C.0020.0002] # BAMUM LETTER PHASE-D NDEUX
-1690A ; [.355D.0020.0002] # BAMUM LETTER PHASE-D MALEERI
-1690B ; [.355E.0020.0002] # BAMUM LETTER PHASE-D MEUT
-1690C ; [.355F.0020.0002] # BAMUM LETTER PHASE-D SEUAEQ
-1690D ; [.3560.0020.0002] # BAMUM LETTER PHASE-D YEN
-1690E ; [.3561.0020.0002] # BAMUM LETTER PHASE-D NJEUAEM
-1690F ; [.3562.0020.0002] # BAMUM LETTER PHASE-D KEUOT MBUAE
-16910 ; [.3563.0020.0002] # BAMUM LETTER PHASE-D NGKEURI
-16911 ; [.3564.0020.0002] # BAMUM LETTER PHASE-D TU
-16912 ; [.3565.0020.0002] # BAMUM LETTER PHASE-D GHAA
-16913 ; [.3566.0020.0002] # BAMUM LETTER PHASE-D NGKYEE
-16914 ; [.3567.0020.0002] # BAMUM LETTER PHASE-D FEUFEUAET
-16915 ; [.3568.0020.0002] # BAMUM LETTER PHASE-D NDEE
-16916 ; [.3569.0020.0002] # BAMUM LETTER PHASE-D MGBOFUM
-16917 ; [.356A.0020.0002] # BAMUM LETTER PHASE-D LEUAEP
-16918 ; [.356B.0020.0002] # BAMUM LETTER PHASE-D NDON
-16919 ; [.356C.0020.0002] # BAMUM LETTER PHASE-D MONI
-1691A ; [.356D.0020.0002] # BAMUM LETTER PHASE-D MGBEUN
-1691B ; [.356E.0020.0002] # BAMUM LETTER PHASE-D PUUT
-1691C ; [.356F.0020.0002] # BAMUM LETTER PHASE-D MGBIEE
-1691D ; [.3570.0020.0002] # BAMUM LETTER PHASE-D MFO
-1691E ; [.3571.0020.0002] # BAMUM LETTER PHASE-D LUM
-1691F ; [.3572.0020.0002] # BAMUM LETTER PHASE-D NSIEEP
-16920 ; [.3573.0020.0002] # BAMUM LETTER PHASE-D MBAA
-16921 ; [.3574.0020.0002] # BAMUM LETTER PHASE-D KWAET
-16922 ; [.3575.0020.0002] # BAMUM LETTER PHASE-D NYET
-16923 ; [.3576.0020.0002] # BAMUM LETTER PHASE-D TEUAEN
-16924 ; [.3577.0020.0002] # BAMUM LETTER PHASE-D SOT
-16925 ; [.3578.0020.0002] # BAMUM LETTER PHASE-D YUWOQ
-16926 ; [.3579.0020.0002] # BAMUM LETTER PHASE-D KEUM
-16927 ; [.357A.0020.0002] # BAMUM LETTER PHASE-D RAEM
-16928 ; [.357B.0020.0002] # BAMUM LETTER PHASE-D TEEEE
-16929 ; [.357C.0020.0002] # BAMUM LETTER PHASE-D NGKEUAEQ
-1692A ; [.357D.0020.0002] # BAMUM LETTER PHASE-D MFEUAE
-1692B ; [.357E.0020.0002] # BAMUM LETTER PHASE-D NSIEET
-1692C ; [.357F.0020.0002] # BAMUM LETTER PHASE-D KEUP
-1692D ; [.3580.0020.0002] # BAMUM LETTER PHASE-D PIP
-1692E ; [.3581.0020.0002] # BAMUM LETTER PHASE-D PEUTAE
-1692F ; [.3582.0020.0002] # BAMUM LETTER PHASE-D NYUE
-16930 ; [.3583.0020.0002] # BAMUM LETTER PHASE-D LET
-16931 ; [.3584.0020.0002] # BAMUM LETTER PHASE-D NGGAAM
-16932 ; [.3585.0020.0002] # BAMUM LETTER PHASE-D MFIEE
-16933 ; [.3586.0020.0002] # BAMUM LETTER PHASE-D NGGWAEN
-16934 ; [.3587.0020.0002] # BAMUM LETTER PHASE-D YUOM
-16935 ; [.3588.0020.0002] # BAMUM LETTER PHASE-D PAP
-16936 ; [.3589.0020.0002] # BAMUM LETTER PHASE-D YUOP
-16937 ; [.358A.0020.0002] # BAMUM LETTER PHASE-D NDAM
-16938 ; [.358B.0020.0002] # BAMUM LETTER PHASE-D NTEUM
-16939 ; [.358C.0020.0002] # BAMUM LETTER PHASE-D SUAE
-1693A ; [.358D.0020.0002] # BAMUM LETTER PHASE-D KUN
-1693B ; [.358E.0020.0002] # BAMUM LETTER PHASE-D NGGEUX
-1693C ; [.358F.0020.0002] # BAMUM LETTER PHASE-D NGKIEE
-1693D ; [.3590.0020.0002] # BAMUM LETTER PHASE-D TUOT
-1693E ; [.3591.0020.0002] # BAMUM LETTER PHASE-D MEUN
-1693F ; [.3592.0020.0002] # BAMUM LETTER PHASE-D KUQ
-16940 ; [.3593.0020.0002] # BAMUM LETTER PHASE-D NSUM
-16941 ; [.3594.0020.0002] # BAMUM LETTER PHASE-D TEUN
-16942 ; [.3595.0020.0002] # BAMUM LETTER PHASE-D MAENJET
-16943 ; [.3596.0020.0002] # BAMUM LETTER PHASE-D NGGAP
-16944 ; [.3597.0020.0002] # BAMUM LETTER PHASE-D LEUM
-16945 ; [.3598.0020.0002] # BAMUM LETTER PHASE-D NGGUOM
-16946 ; [.3599.0020.0002] # BAMUM LETTER PHASE-D NSHUT
-16947 ; [.359A.0020.0002] # BAMUM LETTER PHASE-D NJUEQ
-16948 ; [.359B.0020.0002] # BAMUM LETTER PHASE-D GHEUAE
-16949 ; [.359C.0020.0002] # BAMUM LETTER PHASE-D KU
-1694A ; [.359D.0020.0002] # BAMUM LETTER PHASE-D REN OLD
-1694B ; [.359E.0020.0002] # BAMUM LETTER PHASE-D TAE
-1694C ; [.359F.0020.0002] # BAMUM LETTER PHASE-D TOQ
-1694D ; [.35A0.0020.0002] # BAMUM LETTER PHASE-D NYI
-1694E ; [.35A1.0020.0002] # BAMUM LETTER PHASE-D RII
-1694F ; [.35A2.0020.0002] # BAMUM LETTER PHASE-D LEEEE
-16950 ; [.35A3.0020.0002] # BAMUM LETTER PHASE-D MEEEE
-16951 ; [.35A4.0020.0002] # BAMUM LETTER PHASE-D M
-16952 ; [.35A5.0020.0002] # BAMUM LETTER PHASE-D SUU
-16953 ; [.35A6.0020.0002] # BAMUM LETTER PHASE-D MU
-16954 ; [.35A7.0020.0002] # BAMUM LETTER PHASE-D SHII
-16955 ; [.35A8.0020.0002] # BAMUM LETTER PHASE-D SHEUX
-16956 ; [.35A9.0020.0002] # BAMUM LETTER PHASE-D KYEE
-16957 ; [.35AA.0020.0002] # BAMUM LETTER PHASE-D NU
-16958 ; [.35AB.0020.0002] # BAMUM LETTER PHASE-D SHU
-16959 ; [.35AC.0020.0002] # BAMUM LETTER PHASE-D NTEE
-1695A ; [.35AD.0020.0002] # BAMUM LETTER PHASE-D PEE
-1695B ; [.35AE.0020.0002] # BAMUM LETTER PHASE-D NI
-1695C ; [.35AF.0020.0002] # BAMUM LETTER PHASE-D SHOQ
-1695D ; [.35B0.0020.0002] # BAMUM LETTER PHASE-D PUQ
-1695E ; [.35B1.0020.0002] # BAMUM LETTER PHASE-D MVOP
-1695F ; [.35B2.0020.0002] # BAMUM LETTER PHASE-D LOQ
-16960 ; [.35B3.0020.0002] # BAMUM LETTER PHASE-D REN MUCH
-16961 ; [.35B4.0020.0002] # BAMUM LETTER PHASE-D TI
-16962 ; [.35B5.0020.0002] # BAMUM LETTER PHASE-D NTUU
-16963 ; [.35B6.0020.0002] # BAMUM LETTER PHASE-D MBAA SEVEN
-16964 ; [.35B7.0020.0002] # BAMUM LETTER PHASE-D SAQ
-16965 ; [.35B8.0020.0002] # BAMUM LETTER PHASE-D FAA
-16966 ; [.35B9.0020.0002] # BAMUM LETTER PHASE-E NDAP
-16967 ; [.35BA.0020.0002] # BAMUM LETTER PHASE-E TOON
-16968 ; [.35BB.0020.0002] # BAMUM LETTER PHASE-E MBEUM
-16969 ; [.35BC.0020.0002] # BAMUM LETTER PHASE-E LAP
-1696A ; [.35BD.0020.0002] # BAMUM LETTER PHASE-E VOM
-1696B ; [.35BE.0020.0002] # BAMUM LETTER PHASE-E LOON
-1696C ; [.35BF.0020.0002] # BAMUM LETTER PHASE-E PAA
-1696D ; [.35C0.0020.0002] # BAMUM LETTER PHASE-E SOM
-1696E ; [.35C1.0020.0002] # BAMUM LETTER PHASE-E RAQ
-1696F ; [.35C2.0020.0002] # BAMUM LETTER PHASE-E NSHUOP
-16970 ; [.35C3.0020.0002] # BAMUM LETTER PHASE-E NDUN
-16971 ; [.35C4.0020.0002] # BAMUM LETTER PHASE-E PUAE
-16972 ; [.35C5.0020.0002] # BAMUM LETTER PHASE-E TAM
-16973 ; [.35C6.0020.0002] # BAMUM LETTER PHASE-E NGKA
-16974 ; [.35C7.0020.0002] # BAMUM LETTER PHASE-E KPEUX
-16975 ; [.35C8.0020.0002] # BAMUM LETTER PHASE-E WUO
-16976 ; [.35C9.0020.0002] # BAMUM LETTER PHASE-E SEE
-16977 ; [.35CA.0020.0002] # BAMUM LETTER PHASE-E NGGEUAET
-16978 ; [.35CB.0020.0002] # BAMUM LETTER PHASE-E PAAM
-16979 ; [.35CC.0020.0002] # BAMUM LETTER PHASE-E TOO
-1697A ; [.35CD.0020.0002] # BAMUM LETTER PHASE-E KUOP
-1697B ; [.35CE.0020.0002] # BAMUM LETTER PHASE-E LOM
-1697C ; [.35CF.0020.0002] # BAMUM LETTER PHASE-E NSHIEE
-1697D ; [.35D0.0020.0002] # BAMUM LETTER PHASE-E NGOP
-1697E ; [.35D1.0020.0002] # BAMUM LETTER PHASE-E MAEM
-1697F ; [.35D2.0020.0002] # BAMUM LETTER PHASE-E NGKEUX
-16980 ; [.35D3.0020.0002] # BAMUM LETTER PHASE-E NGOQ
-16981 ; [.35D4.0020.0002] # BAMUM LETTER PHASE-E NSHUE
-16982 ; [.35D5.0020.0002] # BAMUM LETTER PHASE-E RIMGBA
-16983 ; [.35D6.0020.0002] # BAMUM LETTER PHASE-E NJEUX
-16984 ; [.35D7.0020.0002] # BAMUM LETTER PHASE-E PEEM
-16985 ; [.35D8.0020.0002] # BAMUM LETTER PHASE-E SAA
-16986 ; [.35D9.0020.0002] # BAMUM LETTER PHASE-E NGGURAE
-16987 ; [.35DA.0020.0002] # BAMUM LETTER PHASE-E MGBA
-16988 ; [.35DB.0020.0002] # BAMUM LETTER PHASE-E GHEUX
-16989 ; [.35DC.0020.0002] # BAMUM LETTER PHASE-E NGKEUAEM
-1698A ; [.35DD.0020.0002] # BAMUM LETTER PHASE-E NJAEMLI
-1698B ; [.35DE.0020.0002] # BAMUM LETTER PHASE-E MAP
-1698C ; [.35DF.0020.0002] # BAMUM LETTER PHASE-E LOOT
-1698D ; [.35E0.0020.0002] # BAMUM LETTER PHASE-E NGGEEEE
-1698E ; [.35E1.0020.0002] # BAMUM LETTER PHASE-E NDIQ
-1698F ; [.35E2.0020.0002] # BAMUM LETTER PHASE-E TAEN NTEUM
-16990 ; [.35E3.0020.0002] # BAMUM LETTER PHASE-E SET
-16991 ; [.35E4.0020.0002] # BAMUM LETTER PHASE-E PUM
-16992 ; [.35E5.0020.0002] # BAMUM LETTER PHASE-E NDAA SOFTNESS
-16993 ; [.35E6.0020.0002] # BAMUM LETTER PHASE-E NGGUAESHAE NYAM
-16994 ; [.35E7.0020.0002] # BAMUM LETTER PHASE-E YIEE
-16995 ; [.35E8.0020.0002] # BAMUM LETTER PHASE-E GHEUN
-16996 ; [.35E9.0020.0002] # BAMUM LETTER PHASE-E TUAE
-16997 ; [.35EA.0020.0002] # BAMUM LETTER PHASE-E YEUAE
-16998 ; [.35EB.0020.0002] # BAMUM LETTER PHASE-E PO
-16999 ; [.35EC.0020.0002] # BAMUM LETTER PHASE-E TUMAE
-1699A ; [.35ED.0020.0002] # BAMUM LETTER PHASE-E KEUAE
-1699B ; [.35EE.0020.0002] # BAMUM LETTER PHASE-E SUAEN
-1699C ; [.35EF.0020.0002] # BAMUM LETTER PHASE-E TEUAEQ
-1699D ; [.35F0.0020.0002] # BAMUM LETTER PHASE-E VEUAE
-1699E ; [.35F1.0020.0002] # BAMUM LETTER PHASE-E WEUX
-1699F ; [.35F2.0020.0002] # BAMUM LETTER PHASE-E LAAM
-169A0 ; [.35F3.0020.0002] # BAMUM LETTER PHASE-E PU
-169A1 ; [.35F4.0020.0002] # BAMUM LETTER PHASE-E TAAQ
-169A2 ; [.35F5.0020.0002] # BAMUM LETTER PHASE-E GHAAMAE
-169A3 ; [.35F6.0020.0002] # BAMUM LETTER PHASE-E NGEUREUT
-169A4 ; [.35F7.0020.0002] # BAMUM LETTER PHASE-E SHEUAEQ
-169A5 ; [.35F8.0020.0002] # BAMUM LETTER PHASE-E MGBEN
-169A6 ; [.35F9.0020.0002] # BAMUM LETTER PHASE-E MBEE
-169A7 ; [.35FA.0020.0002] # BAMUM LETTER PHASE-E NZAQ
-169A8 ; [.35FB.0020.0002] # BAMUM LETTER PHASE-E NKOM
-169A9 ; [.35FC.0020.0002] # BAMUM LETTER PHASE-E GBET
-169AA ; [.35FD.0020.0002] # BAMUM LETTER PHASE-E TUM
-169AB ; [.35FE.0020.0002] # BAMUM LETTER PHASE-E KUET
-169AC ; [.35FF.0020.0002] # BAMUM LETTER PHASE-E YAP
-169AD ; [.3600.0020.0002] # BAMUM LETTER PHASE-E NYI CLEAVER
-169AE ; [.3601.0020.0002] # BAMUM LETTER PHASE-E YIT
-169AF ; [.3602.0020.0002] # BAMUM LETTER PHASE-E MFEUQ
-169B0 ; [.3603.0020.0002] # BAMUM LETTER PHASE-E NDIAQ
-169B1 ; [.3604.0020.0002] # BAMUM LETTER PHASE-E PIEEQ
-169B2 ; [.3605.0020.0002] # BAMUM LETTER PHASE-E YUEQ
-169B3 ; [.3606.0020.0002] # BAMUM LETTER PHASE-E LEUAEM
-169B4 ; [.3607.0020.0002] # BAMUM LETTER PHASE-E FUE
-169B5 ; [.3608.0020.0002] # BAMUM LETTER PHASE-E GBEUX
-169B6 ; [.3609.0020.0002] # BAMUM LETTER PHASE-E NGKUP
-169B7 ; [.360A.0020.0002] # BAMUM LETTER PHASE-E KET
-169B8 ; [.360B.0020.0002] # BAMUM LETTER PHASE-E MAE
-169B9 ; [.360C.0020.0002] # BAMUM LETTER PHASE-E NGKAAMI
-169BA ; [.360D.0020.0002] # BAMUM LETTER PHASE-E GHET
-169BB ; [.360E.0020.0002] # BAMUM LETTER PHASE-E FA
-169BC ; [.360F.0020.0002] # BAMUM LETTER PHASE-E NTUM
-169BD ; [.3610.0020.0002] # BAMUM LETTER PHASE-E PEUT
-169BE ; [.3611.0020.0002] # BAMUM LETTER PHASE-E YEUM
-169BF ; [.3612.0020.0002] # BAMUM LETTER PHASE-E NGGEUAE
-169C0 ; [.3613.0020.0002] # BAMUM LETTER PHASE-E NYI BETWEEN
-169C1 ; [.3614.0020.0002] # BAMUM LETTER PHASE-E NZUQ
-169C2 ; [.3615.0020.0002] # BAMUM LETTER PHASE-E POON
-169C3 ; [.3616.0020.0002] # BAMUM LETTER PHASE-E MIEE
-169C4 ; [.3617.0020.0002] # BAMUM LETTER PHASE-E FUET
-169C5 ; [.3618.0020.0002] # BAMUM LETTER PHASE-E NAE
-169C6 ; [.3619.0020.0002] # BAMUM LETTER PHASE-E MUAE
-169C7 ; [.361A.0020.0002] # BAMUM LETTER PHASE-E GHEUAE
-169C8 ; [.361B.0020.0002] # BAMUM LETTER PHASE-E FU I
-169C9 ; [.361C.0020.0002] # BAMUM LETTER PHASE-E MVI
-169CA ; [.361D.0020.0002] # BAMUM LETTER PHASE-E PUAQ
-169CB ; [.361E.0020.0002] # BAMUM LETTER PHASE-E NGKUM
-169CC ; [.361F.0020.0002] # BAMUM LETTER PHASE-E KUT
-169CD ; [.3620.0020.0002] # BAMUM LETTER PHASE-E PIET
-169CE ; [.3621.0020.0002] # BAMUM LETTER PHASE-E NTAP
-169CF ; [.3622.0020.0002] # BAMUM LETTER PHASE-E YEUAET
-169D0 ; [.3623.0020.0002] # BAMUM LETTER PHASE-E NGGUP
-169D1 ; [.3624.0020.0002] # BAMUM LETTER PHASE-E PA PEOPLE
-169D2 ; [.3625.0020.0002] # BAMUM LETTER PHASE-E FU CALL
-169D3 ; [.3626.0020.0002] # BAMUM LETTER PHASE-E FOM
-169D4 ; [.3627.0020.0002] # BAMUM LETTER PHASE-E NJEE
-169D5 ; [.3628.0020.0002] # BAMUM LETTER PHASE-E A
-169D6 ; [.3629.0020.0002] # BAMUM LETTER PHASE-E TOQ
-169D7 ; [.362A.0020.0002] # BAMUM LETTER PHASE-E O
-169D8 ; [.362B.0020.0002] # BAMUM LETTER PHASE-E I
-169D9 ; [.362C.0020.0002] # BAMUM LETTER PHASE-E LAQ
-169DA ; [.362D.0020.0002] # BAMUM LETTER PHASE-E PA PLURAL
-169DB ; [.362E.0020.0002] # BAMUM LETTER PHASE-E TAA
-169DC ; [.362F.0020.0002] # BAMUM LETTER PHASE-E TAQ
-169DD ; [.3630.0020.0002] # BAMUM LETTER PHASE-E NDAA MY HOUSE
-169DE ; [.3631.0020.0002] # BAMUM LETTER PHASE-E SHIQ
-169DF ; [.3632.0020.0002] # BAMUM LETTER PHASE-E YEUX
-169E0 ; [.3633.0020.0002] # BAMUM LETTER PHASE-E NGUAE
-169E1 ; [.3634.0020.0002] # BAMUM LETTER PHASE-E YUAEN
-169E2 ; [.3635.0020.0002] # BAMUM LETTER PHASE-E YOQ SWIMMING
-169E3 ; [.3636.0020.0002] # BAMUM LETTER PHASE-E YOQ COVER
-169E4 ; [.3637.0020.0002] # BAMUM LETTER PHASE-E YUQ
-169E5 ; [.3638.0020.0002] # BAMUM LETTER PHASE-E YUN
-169E6 ; [.3639.0020.0002] # BAMUM LETTER PHASE-E KEUX
-169E7 ; [.363A.0020.0002] # BAMUM LETTER PHASE-E PEUX
-169E8 ; [.363B.0020.0002] # BAMUM LETTER PHASE-E NJEE EPOCH
-169E9 ; [.363C.0020.0002] # BAMUM LETTER PHASE-E PUE
-169EA ; [.363D.0020.0002] # BAMUM LETTER PHASE-E WUE
-169EB ; [.363E.0020.0002] # BAMUM LETTER PHASE-E FEE
-169EC ; [.363F.0020.0002] # BAMUM LETTER PHASE-E VEE
-169ED ; [.3640.0020.0002] # BAMUM LETTER PHASE-E LU
-169EE ; [.3641.0020.0002] # BAMUM LETTER PHASE-E MI
-169EF ; [.3642.0020.0002] # BAMUM LETTER PHASE-E REUX
-169F0 ; [.3643.0020.0002] # BAMUM LETTER PHASE-E RAE
-169F1 ; [.3644.0020.0002] # BAMUM LETTER PHASE-E NGUAET
-169F2 ; [.3645.0020.0002] # BAMUM LETTER PHASE-E NGA
-169F3 ; [.3646.0020.0002] # BAMUM LETTER PHASE-E SHO
-169F4 ; [.3647.0020.0002] # BAMUM LETTER PHASE-E SHOQ
-169F5 ; [.3648.0020.0002] # BAMUM LETTER PHASE-E FU REMEDY
-169F6 ; [.3649.0020.0002] # BAMUM LETTER PHASE-E NA
-169F7 ; [.364A.0020.0002] # BAMUM LETTER PHASE-E PI
-169F8 ; [.364B.0020.0002] # BAMUM LETTER PHASE-E LOQ
-169F9 ; [.364C.0020.0002] # BAMUM LETTER PHASE-E KO
-169FA ; [.364D.0020.0002] # BAMUM LETTER PHASE-E MEN
-169FB ; [.364E.0020.0002] # BAMUM LETTER PHASE-E MA
-169FC ; [.364F.0020.0002] # BAMUM LETTER PHASE-E MAQ
-169FD ; [.3650.0020.0002] # BAMUM LETTER PHASE-E TEU
-169FE ; [.3651.0020.0002] # BAMUM LETTER PHASE-E KI
-169FF ; [.3652.0020.0002] # BAMUM LETTER PHASE-E MON
-16A00 ; [.3653.0020.0002] # BAMUM LETTER PHASE-E TEN
-16A01 ; [.3654.0020.0002] # BAMUM LETTER PHASE-E FAQ
-16A02 ; [.3655.0020.0002] # BAMUM LETTER PHASE-E GHOM
-16A03 ; [.3656.0020.0002] # BAMUM LETTER PHASE-F KA
-16A04 ; [.3657.0020.0002] # BAMUM LETTER PHASE-F U
-16A05 ; [.3658.0020.0002] # BAMUM LETTER PHASE-F KU
-16A06 ; [.3659.0020.0002] # BAMUM LETTER PHASE-F EE
-16A07 ; [.365A.0020.0002] # BAMUM LETTER PHASE-F REE
-16A08 ; [.365B.0020.0002] # BAMUM LETTER PHASE-F TAE
-16A09 ; [.365C.0020.0002] # BAMUM LETTER PHASE-F NYI
-16A0A ; [.365D.0020.0002] # BAMUM LETTER PHASE-F LA
-16A0B ; [.365E.0020.0002] # BAMUM LETTER PHASE-F RII
-16A0C ; [.365F.0020.0002] # BAMUM LETTER PHASE-F RIEE
-16A0D ; [.3660.0020.0002] # BAMUM LETTER PHASE-F MEEEE
-16A0E ; [.3661.0020.0002] # BAMUM LETTER PHASE-F TAA
-16A0F ; [.3662.0020.0002] # BAMUM LETTER PHASE-F NDAA
-16A10 ; [.3663.0020.0002] # BAMUM LETTER PHASE-F NJAEM
-16A11 ; [.3664.0020.0002] # BAMUM LETTER PHASE-F M
-16A12 ; [.3665.0020.0002] # BAMUM LETTER PHASE-F SUU
-16A13 ; [.3666.0020.0002] # BAMUM LETTER PHASE-F SHII
-16A14 ; [.3667.0020.0002] # BAMUM LETTER PHASE-F SI
-16A15 ; [.3668.0020.0002] # BAMUM LETTER PHASE-F SEUX
-16A16 ; [.3669.0020.0002] # BAMUM LETTER PHASE-F KYEE
-16A17 ; [.366A.0020.0002] # BAMUM LETTER PHASE-F KET
-16A18 ; [.366B.0020.0002] # BAMUM LETTER PHASE-F NUAE
-16A19 ; [.366C.0020.0002] # BAMUM LETTER PHASE-F NU
-16A1A ; [.366D.0020.0002] # BAMUM LETTER PHASE-F NJUAE
-16A1B ; [.366E.0020.0002] # BAMUM LETTER PHASE-F YOQ
-16A1C ; [.366F.0020.0002] # BAMUM LETTER PHASE-F SHU
-16A1D ; [.3670.0020.0002] # BAMUM LETTER PHASE-F YA
-16A1E ; [.3671.0020.0002] # BAMUM LETTER PHASE-F NSHA
-16A1F ; [.3672.0020.0002] # BAMUM LETTER PHASE-F PEUX
-16A20 ; [.3673.0020.0002] # BAMUM LETTER PHASE-F NTEE
-16A21 ; [.3674.0020.0002] # BAMUM LETTER PHASE-F WUE
-16A22 ; [.3675.0020.0002] # BAMUM LETTER PHASE-F PEE
-16A23 ; [.3676.0020.0002] # BAMUM LETTER PHASE-F RU
-16A24 ; [.3677.0020.0002] # BAMUM LETTER PHASE-F NI
-16A25 ; [.3678.0020.0002] # BAMUM LETTER PHASE-F REUX
-16A26 ; [.3679.0020.0002] # BAMUM LETTER PHASE-F KEN
-16A27 ; [.367A.0020.0002] # BAMUM LETTER PHASE-F NGKWAEN
-16A28 ; [.367B.0020.0002] # BAMUM LETTER PHASE-F NGGA
-16A29 ; [.367C.0020.0002] # BAMUM LETTER PHASE-F SHO
-16A2A ; [.367D.0020.0002] # BAMUM LETTER PHASE-F PUAE
-16A2B ; [.367E.0020.0002] # BAMUM LETTER PHASE-F FOM
-16A2C ; [.367F.0020.0002] # BAMUM LETTER PHASE-F WA
-16A2D ; [.3680.0020.0002] # BAMUM LETTER PHASE-F LI
-16A2E ; [.3681.0020.0002] # BAMUM LETTER PHASE-F LOQ
-16A2F ; [.3682.0020.0002] # BAMUM LETTER PHASE-F KO
-16A30 ; [.3683.0020.0002] # BAMUM LETTER PHASE-F MBEN
-16A31 ; [.3684.0020.0002] # BAMUM LETTER PHASE-F REN
-16A32 ; [.3685.0020.0002] # BAMUM LETTER PHASE-F MA
-16A33 ; [.3686.0020.0002] # BAMUM LETTER PHASE-F MO
-16A34 ; [.3687.0020.0002] # BAMUM LETTER PHASE-F MBAA
-16A35 ; [.3688.0020.0002] # BAMUM LETTER PHASE-F TET
-16A36 ; [.3689.0020.0002] # BAMUM LETTER PHASE-F KPA
-16A37 ; [.368A.0020.0002] # BAMUM LETTER PHASE-F SAMBA
-16A38 ; [.368B.0020.0002] # BAMUM LETTER PHASE-F VUEQ
-16AD0 ; [.368C.0020.0002] # BASSA VAH LETTER ENNI
-16AD1 ; [.368D.0020.0002] # BASSA VAH LETTER KA
-16AD2 ; [.368E.0020.0002] # BASSA VAH LETTER SE
-16AD3 ; [.368F.0020.0002] # BASSA VAH LETTER FA
-16AD4 ; [.3690.0020.0002] # BASSA VAH LETTER MBE
-16AD5 ; [.3691.0020.0002] # BASSA VAH LETTER YIE
-16AD6 ; [.3692.0020.0002] # BASSA VAH LETTER GAH
-16AD7 ; [.3693.0020.0002] # BASSA VAH LETTER DHII
-16AD8 ; [.3694.0020.0002] # BASSA VAH LETTER KPAH
-16AD9 ; [.3695.0020.0002] # BASSA VAH LETTER JO
-16ADA ; [.3696.0020.0002] # BASSA VAH LETTER HWAH
-16ADB ; [.3697.0020.0002] # BASSA VAH LETTER WA
-16ADC ; [.3698.0020.0002] # BASSA VAH LETTER ZO
-16ADD ; [.3699.0020.0002] # BASSA VAH LETTER GBU
-16ADE ; [.369A.0020.0002] # BASSA VAH LETTER DO
-16ADF ; [.369B.0020.0002] # BASSA VAH LETTER CE
-16AE0 ; [.369C.0020.0002] # BASSA VAH LETTER UWU
-16AE1 ; [.369D.0020.0002] # BASSA VAH LETTER TO
-16AE2 ; [.369E.0020.0002] # BASSA VAH LETTER BA
-16AE3 ; [.369F.0020.0002] # BASSA VAH LETTER VU
-16AE4 ; [.36A0.0020.0002] # BASSA VAH LETTER YEIN
-16AE5 ; [.36A1.0020.0002] # BASSA VAH LETTER PA
-16AE6 ; [.36A2.0020.0002] # BASSA VAH LETTER WADDA
-16AE7 ; [.36A3.0020.0002] # BASSA VAH LETTER A
-16AE8 ; [.36A4.0020.0002] # BASSA VAH LETTER O
-16AE9 ; [.36A5.0020.0002] # BASSA VAH LETTER OO
-16AEA ; [.36A6.0020.0002] # BASSA VAH LETTER U
-16AEB ; [.36A7.0020.0002] # BASSA VAH LETTER EE
-16AEC ; [.36A8.0020.0002] # BASSA VAH LETTER E
-16AED ; [.36A9.0020.0002] # BASSA VAH LETTER I
-1E800 ; [.36AA.0020.0002] # MENDE KIKAKUI SYLLABLE M001 KI
-1E801 ; [.36AB.0020.0002] # MENDE KIKAKUI SYLLABLE M002 KA
-1E802 ; [.36AC.0020.0002] # MENDE KIKAKUI SYLLABLE M003 KU
-1E803 ; [.36AD.0020.0002] # MENDE KIKAKUI SYLLABLE M065 KEE
-1E804 ; [.36AE.0020.0002] # MENDE KIKAKUI SYLLABLE M095 KE
-1E805 ; [.36AF.0020.0002] # MENDE KIKAKUI SYLLABLE M076 KOO
-1E806 ; [.36B0.0020.0002] # MENDE KIKAKUI SYLLABLE M048 KO
-1E807 ; [.36B1.0020.0002] # MENDE KIKAKUI SYLLABLE M179 KUA
-1E808 ; [.36B2.0020.0002] # MENDE KIKAKUI SYLLABLE M004 WI
-1E809 ; [.36B3.0020.0002] # MENDE KIKAKUI SYLLABLE M005 WA
-1E80A ; [.36B4.0020.0002] # MENDE KIKAKUI SYLLABLE M006 WU
-1E80B ; [.36B5.0020.0002] # MENDE KIKAKUI SYLLABLE M126 WEE
-1E80C ; [.36B6.0020.0002] # MENDE KIKAKUI SYLLABLE M118 WE
-1E80D ; [.36B7.0020.0002] # MENDE KIKAKUI SYLLABLE M114 WOO
-1E80E ; [.36B8.0020.0002] # MENDE KIKAKUI SYLLABLE M045 WO
-1E80F ; [.36B9.0020.0002] # MENDE KIKAKUI SYLLABLE M194 WUI
-1E810 ; [.36BA.0020.0002] # MENDE KIKAKUI SYLLABLE M143 WEI
-1E811 ; [.36BB.0020.0002] # MENDE KIKAKUI SYLLABLE M061 WVI
-1E812 ; [.36BC.0020.0002] # MENDE KIKAKUI SYLLABLE M049 WVA
-1E813 ; [.36BD.0020.0002] # MENDE KIKAKUI SYLLABLE M139 WVE
-1E814 ; [.36BE.0020.0002] # MENDE KIKAKUI SYLLABLE M007 MIN
-1E815 ; [.36BF.0020.0002] # MENDE KIKAKUI SYLLABLE M008 MAN
-1E816 ; [.36C0.0020.0002] # MENDE KIKAKUI SYLLABLE M009 MUN
-1E817 ; [.36C1.0020.0002] # MENDE KIKAKUI SYLLABLE M059 MEN
-1E818 ; [.36C2.0020.0002] # MENDE KIKAKUI SYLLABLE M094 MON
-1E819 ; [.36C3.0020.0002] # MENDE KIKAKUI SYLLABLE M154 MUAN
-1E81A ; [.36C4.0020.0002] # MENDE KIKAKUI SYLLABLE M189 MUEN
-1E81B ; [.36C5.0020.0002] # MENDE KIKAKUI SYLLABLE M010 BI
-1E81C ; [.36C6.0020.0002] # MENDE KIKAKUI SYLLABLE M011 BA
-1E81D ; [.36C7.0020.0002] # MENDE KIKAKUI SYLLABLE M012 BU
-1E81E ; [.36C8.0020.0002] # MENDE KIKAKUI SYLLABLE M150 BEE
-1E81F ; [.36C9.0020.0002] # MENDE KIKAKUI SYLLABLE M097 BE
-1E820 ; [.36CA.0020.0002] # MENDE KIKAKUI SYLLABLE M103 BOO
-1E821 ; [.36CB.0020.0002] # MENDE KIKAKUI SYLLABLE M138 BO
-1E822 ; [.36CC.0020.0002] # MENDE KIKAKUI SYLLABLE M013 I
-1E823 ; [.36CD.0020.0002] # MENDE KIKAKUI SYLLABLE M014 A
-1E824 ; [.36CE.0020.0002] # MENDE KIKAKUI SYLLABLE M015 U
-1E825 ; [.36CF.0020.0002] # MENDE KIKAKUI SYLLABLE M163 EE
-1E826 ; [.36D0.0020.0002] # MENDE KIKAKUI SYLLABLE M100 E
-1E827 ; [.36D1.0020.0002] # MENDE KIKAKUI SYLLABLE M165 OO
-1E828 ; [.36D2.0020.0002] # MENDE KIKAKUI SYLLABLE M147 O
-1E829 ; [.36D3.0020.0002] # MENDE KIKAKUI SYLLABLE M137 EI
-1E82A ; [.36D4.0020.0002] # MENDE KIKAKUI SYLLABLE M131 IN
-1E82B ; [.36D5.0020.0002] # MENDE KIKAKUI SYLLABLE M135 IN
-1E82C ; [.36D6.0020.0002] # MENDE KIKAKUI SYLLABLE M195 AN
-1E82D ; [.36D7.0020.0002] # MENDE KIKAKUI SYLLABLE M178 EN
-1E82E ; [.36D8.0020.0002] # MENDE KIKAKUI SYLLABLE M019 SI
-1E82F ; [.36D9.0020.0002] # MENDE KIKAKUI SYLLABLE M020 SA
-1E830 ; [.36DA.0020.0002] # MENDE KIKAKUI SYLLABLE M021 SU
-1E831 ; [.36DB.0020.0002] # MENDE KIKAKUI SYLLABLE M162 SEE
-1E832 ; [.36DC.0020.0002] # MENDE KIKAKUI SYLLABLE M116 SE
-1E833 ; [.36DD.0020.0002] # MENDE KIKAKUI SYLLABLE M136 SOO
-1E834 ; [.36DE.0020.0002] # MENDE KIKAKUI SYLLABLE M079 SO
-1E835 ; [.36DF.0020.0002] # MENDE KIKAKUI SYLLABLE M196 SIA
-1E836 ; [.36E0.0020.0002] # MENDE KIKAKUI SYLLABLE M025 LI
-1E837 ; [.36E1.0020.0002] # MENDE KIKAKUI SYLLABLE M026 LA
-1E838 ; [.36E2.0020.0002] # MENDE KIKAKUI SYLLABLE M027 LU
-1E839 ; [.36E3.0020.0002] # MENDE KIKAKUI SYLLABLE M084 LEE
-1E83A ; [.36E4.0020.0002] # MENDE KIKAKUI SYLLABLE M073 LE
-1E83B ; [.36E5.0020.0002] # MENDE KIKAKUI SYLLABLE M054 LOO
-1E83C ; [.36E6.0020.0002] # MENDE KIKAKUI SYLLABLE M153 LO
-1E83D ; [.36E7.0020.0002] # MENDE KIKAKUI SYLLABLE M110 LONG LE
-1E83E ; [.36E8.0020.0002] # MENDE KIKAKUI SYLLABLE M016 DI
-1E83F ; [.36E9.0020.0002] # MENDE KIKAKUI SYLLABLE M017 DA
-1E840 ; [.36EA.0020.0002] # MENDE KIKAKUI SYLLABLE M018 DU
-1E841 ; [.36EB.0020.0002] # MENDE KIKAKUI SYLLABLE M089 DEE
-1E842 ; [.36EC.0020.0002] # MENDE KIKAKUI SYLLABLE M180 DOO
-1E843 ; [.36ED.0020.0002] # MENDE KIKAKUI SYLLABLE M181 DO
-1E844 ; [.36EE.0020.0002] # MENDE KIKAKUI SYLLABLE M022 TI
-1E845 ; [.36EF.0020.0002] # MENDE KIKAKUI SYLLABLE M023 TA
-1E846 ; [.36F0.0020.0002] # MENDE KIKAKUI SYLLABLE M024 TU
-1E847 ; [.36F1.0020.0002] # MENDE KIKAKUI SYLLABLE M091 TEE
-1E848 ; [.36F2.0020.0002] # MENDE KIKAKUI SYLLABLE M055 TE
-1E849 ; [.36F3.0020.0002] # MENDE KIKAKUI SYLLABLE M104 TOO
-1E84A ; [.36F4.0020.0002] # MENDE KIKAKUI SYLLABLE M069 TO
-1E84B ; [.36F5.0020.0002] # MENDE KIKAKUI SYLLABLE M028 JI
-1E84C ; [.36F6.0020.0002] # MENDE KIKAKUI SYLLABLE M029 JA
-1E84D ; [.36F7.0020.0002] # MENDE KIKAKUI SYLLABLE M030 JU
-1E84E ; [.36F8.0020.0002] # MENDE KIKAKUI SYLLABLE M157 JEE
-1E84F ; [.36F9.0020.0002] # MENDE KIKAKUI SYLLABLE M113 JE
-1E850 ; [.36FA.0020.0002] # MENDE KIKAKUI SYLLABLE M160 JOO
-1E851 ; [.36FB.0020.0002] # MENDE KIKAKUI SYLLABLE M063 JO
-1E852 ; [.36FC.0020.0002] # MENDE KIKAKUI SYLLABLE M175 LONG JO
-1E853 ; [.36FD.0020.0002] # MENDE KIKAKUI SYLLABLE M031 YI
-1E854 ; [.36FE.0020.0002] # MENDE KIKAKUI SYLLABLE M032 YA
-1E855 ; [.36FF.0020.0002] # MENDE KIKAKUI SYLLABLE M033 YU
-1E856 ; [.3700.0020.0002] # MENDE KIKAKUI SYLLABLE M109 YEE
-1E857 ; [.3701.0020.0002] # MENDE KIKAKUI SYLLABLE M080 YE
-1E858 ; [.3702.0020.0002] # MENDE KIKAKUI SYLLABLE M141 YOO
-1E859 ; [.3703.0020.0002] # MENDE KIKAKUI SYLLABLE M121 YO
-1E85A ; [.3704.0020.0002] # MENDE KIKAKUI SYLLABLE M034 FI
-1E85B ; [.3705.0020.0002] # MENDE KIKAKUI SYLLABLE M035 FA
-1E85C ; [.3706.0020.0002] # MENDE KIKAKUI SYLLABLE M036 FU
-1E85D ; [.3707.0020.0002] # MENDE KIKAKUI SYLLABLE M078 FEE
-1E85E ; [.3708.0020.0002] # MENDE KIKAKUI SYLLABLE M075 FE
-1E85F ; [.3709.0020.0002] # MENDE KIKAKUI SYLLABLE M133 FOO
-1E860 ; [.370A.0020.0002] # MENDE KIKAKUI SYLLABLE M088 FO
-1E861 ; [.370B.0020.0002] # MENDE KIKAKUI SYLLABLE M197 FUA
-1E862 ; [.370C.0020.0002] # MENDE KIKAKUI SYLLABLE M101 FAN
-1E863 ; [.370D.0020.0002] # MENDE KIKAKUI SYLLABLE M037 NIN
-1E864 ; [.370E.0020.0002] # MENDE KIKAKUI SYLLABLE M038 NAN
-1E865 ; [.370F.0020.0002] # MENDE KIKAKUI SYLLABLE M039 NUN
-1E866 ; [.3710.0020.0002] # MENDE KIKAKUI SYLLABLE M117 NEN
-1E867 ; [.3711.0020.0002] # MENDE KIKAKUI SYLLABLE M169 NON
-1E868 ; [.3712.0020.0002] # MENDE KIKAKUI SYLLABLE M176 HI
-1E869 ; [.3713.0020.0002] # MENDE KIKAKUI SYLLABLE M041 HA
-1E86A ; [.3714.0020.0002] # MENDE KIKAKUI SYLLABLE M186 HU
-1E86B ; [.3715.0020.0002] # MENDE KIKAKUI SYLLABLE M040 HEE
-1E86C ; [.3716.0020.0002] # MENDE KIKAKUI SYLLABLE M096 HE
-1E86D ; [.3717.0020.0002] # MENDE KIKAKUI SYLLABLE M042 HOO
-1E86E ; [.3718.0020.0002] # MENDE KIKAKUI SYLLABLE M140 HO
-1E86F ; [.3719.0020.0002] # MENDE KIKAKUI SYLLABLE M083 HEEI
-1E870 ; [.371A.0020.0002] # MENDE KIKAKUI SYLLABLE M128 HOOU
-1E871 ; [.371B.0020.0002] # MENDE KIKAKUI SYLLABLE M053 HIN
-1E872 ; [.371C.0020.0002] # MENDE KIKAKUI SYLLABLE M130 HAN
-1E873 ; [.371D.0020.0002] # MENDE KIKAKUI SYLLABLE M087 HUN
-1E874 ; [.371E.0020.0002] # MENDE KIKAKUI SYLLABLE M052 HEN
-1E875 ; [.371F.0020.0002] # MENDE KIKAKUI SYLLABLE M193 HON
-1E876 ; [.3720.0020.0002] # MENDE KIKAKUI SYLLABLE M046 HUAN
-1E877 ; [.3721.0020.0002] # MENDE KIKAKUI SYLLABLE M090 NGGI
-1E878 ; [.3722.0020.0002] # MENDE KIKAKUI SYLLABLE M043 NGGA
-1E879 ; [.3723.0020.0002] # MENDE KIKAKUI SYLLABLE M082 NGGU
-1E87A ; [.3724.0020.0002] # MENDE KIKAKUI SYLLABLE M115 NGGEE
-1E87B ; [.3725.0020.0002] # MENDE KIKAKUI SYLLABLE M146 NGGE
-1E87C ; [.3726.0020.0002] # MENDE KIKAKUI SYLLABLE M156 NGGOO
-1E87D ; [.3727.0020.0002] # MENDE KIKAKUI SYLLABLE M120 NGGO
-1E87E ; [.3728.0020.0002] # MENDE KIKAKUI SYLLABLE M159 NGGAA
-1E87F ; [.3729.0020.0002] # MENDE KIKAKUI SYLLABLE M127 NGGUA
-1E880 ; [.372A.0020.0002] # MENDE KIKAKUI SYLLABLE M086 LONG NGGE
-1E881 ; [.372B.0020.0002] # MENDE KIKAKUI SYLLABLE M106 LONG NGGOO
-1E882 ; [.372C.0020.0002] # MENDE KIKAKUI SYLLABLE M183 LONG NGGO
-1E883 ; [.372D.0020.0002] # MENDE KIKAKUI SYLLABLE M155 GI
-1E884 ; [.372E.0020.0002] # MENDE KIKAKUI SYLLABLE M111 GA
-1E885 ; [.372F.0020.0002] # MENDE KIKAKUI SYLLABLE M168 GU
-1E886 ; [.3730.0020.0002] # MENDE KIKAKUI SYLLABLE M190 GEE
-1E887 ; [.3731.0020.0002] # MENDE KIKAKUI SYLLABLE M166 GUEI
-1E888 ; [.3732.0020.0002] # MENDE KIKAKUI SYLLABLE M167 GUAN
-1E889 ; [.3733.0020.0002] # MENDE KIKAKUI SYLLABLE M184 NGEN
-1E88A ; [.3734.0020.0002] # MENDE KIKAKUI SYLLABLE M057 NGON
-1E88B ; [.3735.0020.0002] # MENDE KIKAKUI SYLLABLE M177 NGUAN
-1E88C ; [.3736.0020.0002] # MENDE KIKAKUI SYLLABLE M068 PI
-1E88D ; [.3737.0020.0002] # MENDE KIKAKUI SYLLABLE M099 PA
-1E88E ; [.3738.0020.0002] # MENDE KIKAKUI SYLLABLE M050 PU
-1E88F ; [.3739.0020.0002] # MENDE KIKAKUI SYLLABLE M081 PEE
-1E890 ; [.373A.0020.0002] # MENDE KIKAKUI SYLLABLE M051 PE
-1E891 ; [.373B.0020.0002] # MENDE KIKAKUI SYLLABLE M102 POO
-1E892 ; [.373C.0020.0002] # MENDE KIKAKUI SYLLABLE M066 PO
-1E893 ; [.373D.0020.0002] # MENDE KIKAKUI SYLLABLE M145 MBI
-1E894 ; [.373E.0020.0002] # MENDE KIKAKUI SYLLABLE M062 MBA
-1E895 ; [.373F.0020.0002] # MENDE KIKAKUI SYLLABLE M122 MBU
-1E896 ; [.3740.0020.0002] # MENDE KIKAKUI SYLLABLE M047 MBEE
-1E897 ; [.3741.0020.0002] # MENDE KIKAKUI SYLLABLE M188 MBEE
-1E898 ; [.3742.0020.0002] # MENDE KIKAKUI SYLLABLE M072 MBE
-1E899 ; [.3743.0020.0002] # MENDE KIKAKUI SYLLABLE M172 MBOO
-1E89A ; [.3744.0020.0002] # MENDE KIKAKUI SYLLABLE M174 MBO
-1E89B ; [.3745.0020.0002] # MENDE KIKAKUI SYLLABLE M187 MBUU
-1E89C ; [.3746.0020.0002] # MENDE KIKAKUI SYLLABLE M161 LONG MBE
-1E89D ; [.3747.0020.0002] # MENDE KIKAKUI SYLLABLE M105 LONG MBOO
-1E89E ; [.3748.0020.0002] # MENDE KIKAKUI SYLLABLE M142 LONG MBO
-1E89F ; [.3749.0020.0002] # MENDE KIKAKUI SYLLABLE M132 KPI
-1E8A0 ; [.374A.0020.0002] # MENDE KIKAKUI SYLLABLE M092 KPA
-1E8A1 ; [.374B.0020.0002] # MENDE KIKAKUI SYLLABLE M074 KPU
-1E8A2 ; [.374C.0020.0002] # MENDE KIKAKUI SYLLABLE M044 KPEE
-1E8A3 ; [.374D.0020.0002] # MENDE KIKAKUI SYLLABLE M108 KPE
-1E8A4 ; [.374E.0020.0002] # MENDE KIKAKUI SYLLABLE M112 KPOO
-1E8A5 ; [.374F.0020.0002] # MENDE KIKAKUI SYLLABLE M158 KPO
-1E8A6 ; [.3750.0020.0002] # MENDE KIKAKUI SYLLABLE M124 GBI
-1E8A7 ; [.3751.0020.0002] # MENDE KIKAKUI SYLLABLE M056 GBA
-1E8A8 ; [.3752.0020.0002] # MENDE KIKAKUI SYLLABLE M148 GBU
-1E8A9 ; [.3753.0020.0002] # MENDE KIKAKUI SYLLABLE M093 GBEE
-1E8AA ; [.3754.0020.0002] # MENDE KIKAKUI SYLLABLE M107 GBE
-1E8AB ; [.3755.0020.0002] # MENDE KIKAKUI SYLLABLE M071 GBOO
-1E8AC ; [.3756.0020.0002] # MENDE KIKAKUI SYLLABLE M070 GBO
-1E8AD ; [.3757.0020.0002] # MENDE KIKAKUI SYLLABLE M171 RA
-1E8AE ; [.3758.0020.0002] # MENDE KIKAKUI SYLLABLE M123 NDI
-1E8AF ; [.3759.0020.0002] # MENDE KIKAKUI SYLLABLE M129 NDA
-1E8B0 ; [.375A.0020.0002] # MENDE KIKAKUI SYLLABLE M125 NDU
-1E8B1 ; [.375B.0020.0002] # MENDE KIKAKUI SYLLABLE M191 NDEE
-1E8B2 ; [.375C.0020.0002] # MENDE KIKAKUI SYLLABLE M119 NDE
-1E8B3 ; [.375D.0020.0002] # MENDE KIKAKUI SYLLABLE M067 NDOO
-1E8B4 ; [.375E.0020.0002] # MENDE KIKAKUI SYLLABLE M064 NDO
-1E8B5 ; [.375F.0020.0002] # MENDE KIKAKUI SYLLABLE M152 NJA
-1E8B6 ; [.3760.0020.0002] # MENDE KIKAKUI SYLLABLE M192 NJU
-1E8B7 ; [.3761.0020.0002] # MENDE KIKAKUI SYLLABLE M149 NJEE
-1E8B8 ; [.3762.0020.0002] # MENDE KIKAKUI SYLLABLE M134 NJOO
-1E8B9 ; [.3763.0020.0002] # MENDE KIKAKUI SYLLABLE M182 VI
-1E8BA ; [.3764.0020.0002] # MENDE KIKAKUI SYLLABLE M185 VA
-1E8BB ; [.3765.0020.0002] # MENDE KIKAKUI SYLLABLE M151 VU
-1E8BC ; [.3766.0020.0002] # MENDE KIKAKUI SYLLABLE M173 VEE
-1E8BD ; [.3767.0020.0002] # MENDE KIKAKUI SYLLABLE M085 VE
-1E8BE ; [.3768.0020.0002] # MENDE KIKAKUI SYLLABLE M144 VOO
-1E8BF ; [.3769.0020.0002] # MENDE KIKAKUI SYLLABLE M077 VO
-1E8C0 ; [.376A.0020.0002] # MENDE KIKAKUI SYLLABLE M164 NYIN
-1E8C1 ; [.376B.0020.0002] # MENDE KIKAKUI SYLLABLE M058 NYAN
-1E8C2 ; [.376C.0020.0002] # MENDE KIKAKUI SYLLABLE M170 NYUN
-1E8C3 ; [.376D.0020.0002] # MENDE KIKAKUI SYLLABLE M098 NYEN
-1E8C4 ; [.376E.0020.0002] # MENDE KIKAKUI SYLLABLE M060 NYON
-1100 ; [.376F.0020.0002] # HANGUL CHOSEONG KIYEOK
-3131 ; [.376F.0020.0004] # HANGUL LETTER KIYEOK
-3200 ; [*030A.0020.0004][.376F.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL KIYEOK
-3260 ; [.376F.0020.0006] # CIRCLED HANGUL KIYEOK
-FFA1 ; [.376F.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK
-320E ; [*030A.0020.0004][.376F.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL KIYEOK A
-326E ; [.376F.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL KIYEOK A
-1101 ; [.3770.0020.0002] # HANGUL CHOSEONG SSANGKIYEOK
-3132 ; [.3770.0020.0004] # HANGUL LETTER SSANGKIYEOK
-FFA2 ; [.3770.0020.0012] # HALFWIDTH HANGUL LETTER SSANGKIYEOK
-1102 ; [.3771.0020.0002] # HANGUL CHOSEONG NIEUN
-3134 ; [.3771.0020.0004] # HANGUL LETTER NIEUN
-3201 ; [*030A.0020.0004][.3771.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL NIEUN
-3261 ; [.3771.0020.0006] # CIRCLED HANGUL NIEUN
-FFA4 ; [.3771.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN
-320F ; [*030A.0020.0004][.3771.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL NIEUN A
-326F ; [.3771.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL NIEUN A
-1103 ; [.3772.0020.0002] # HANGUL CHOSEONG TIKEUT
-3137 ; [.3772.0020.0004] # HANGUL LETTER TIKEUT
-3202 ; [*030A.0020.0004][.3772.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL TIKEUT
-3262 ; [.3772.0020.0006] # CIRCLED HANGUL TIKEUT
-FFA7 ; [.3772.0020.0012] # HALFWIDTH HANGUL LETTER TIKEUT
-3210 ; [*030A.0020.0004][.3772.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL TIKEUT A
-3270 ; [.3772.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL TIKEUT A
-1104 ; [.3773.0020.0002] # HANGUL CHOSEONG SSANGTIKEUT
-3138 ; [.3773.0020.0004] # HANGUL LETTER SSANGTIKEUT
-FFA8 ; [.3773.0020.0012] # HALFWIDTH HANGUL LETTER SSANGTIKEUT
-1105 ; [.3774.0020.0002] # HANGUL CHOSEONG RIEUL
-3139 ; [.3774.0020.0004] # HANGUL LETTER RIEUL
-3203 ; [*030A.0020.0004][.3774.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL RIEUL
-3263 ; [.3774.0020.0006] # CIRCLED HANGUL RIEUL
-FFA9 ; [.3774.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL
-3211 ; [*030A.0020.0004][.3774.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL RIEUL A
-3271 ; [.3774.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL RIEUL A
-1106 ; [.3775.0020.0002] # HANGUL CHOSEONG MIEUM
-3141 ; [.3775.0020.0004] # HANGUL LETTER MIEUM
-3204 ; [*030A.0020.0004][.3775.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL MIEUM
-3264 ; [.3775.0020.0006] # CIRCLED HANGUL MIEUM
-FFB1 ; [.3775.0020.0012] # HALFWIDTH HANGUL LETTER MIEUM
-3212 ; [*030A.0020.0004][.3775.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL MIEUM A
-3272 ; [.3775.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL MIEUM A
-1107 ; [.3776.0020.0002] # HANGUL CHOSEONG PIEUP
-3142 ; [.3776.0020.0004] # HANGUL LETTER PIEUP
-3205 ; [*030A.0020.0004][.3776.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL PIEUP
-3265 ; [.3776.0020.0006] # CIRCLED HANGUL PIEUP
-FFB2 ; [.3776.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP
-3213 ; [*030A.0020.0004][.3776.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL PIEUP A
-3273 ; [.3776.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL PIEUP A
-1108 ; [.3777.0020.0002] # HANGUL CHOSEONG SSANGPIEUP
-3143 ; [.3777.0020.0004] # HANGUL LETTER SSANGPIEUP
-FFB3 ; [.3777.0020.0012] # HALFWIDTH HANGUL LETTER SSANGPIEUP
-1109 ; [.3778.0020.0002] # HANGUL CHOSEONG SIOS
-3145 ; [.3778.0020.0004] # HANGUL LETTER SIOS
-3206 ; [*030A.0020.0004][.3778.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL SIOS
-3266 ; [.3778.0020.0006] # CIRCLED HANGUL SIOS
-FFB5 ; [.3778.0020.0012] # HALFWIDTH HANGUL LETTER SIOS
-3214 ; [*030A.0020.0004][.3778.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL SIOS A
-3274 ; [.3778.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL SIOS A
-110A ; [.3779.0020.0002] # HANGUL CHOSEONG SSANGSIOS
-3146 ; [.3779.0020.0004] # HANGUL LETTER SSANGSIOS
-FFB6 ; [.3779.0020.0012] # HALFWIDTH HANGUL LETTER SSANGSIOS
-110B ; [.377A.0020.0002] # HANGUL CHOSEONG IEUNG
-3147 ; [.377A.0020.0004] # HANGUL LETTER IEUNG
-3207 ; [*030A.0020.0004][.377A.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL IEUNG
-3267 ; [.377A.0020.0006] # CIRCLED HANGUL IEUNG
-FFB7 ; [.377A.0020.0012] # HALFWIDTH HANGUL LETTER IEUNG
-3215 ; [*030A.0020.0004][.377A.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL IEUNG A
-3275 ; [.377A.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL IEUNG A
-321D ; [*030A.0020.0004][.377A.0020.0004][.37F5.0020.0004][.377B.0020.0004][.37F1.0020.0004][.384E.0020.0004][*030B.0020.0004] # PARENTHESIZED KOREAN CHARACTER OJEON
-321E ; [*030A.0020.0004][.377A.0020.0004][.37F5.0020.0004][.3781.0020.0004][.37FA.0020.0004][*030B.0020.0004] # PARENTHESIZED KOREAN CHARACTER O HU
-327E ; [.377A.0020.0006][.37FA.0020.0006] # CIRCLED HANGUL IEUNG U
-110C ; [.377B.0020.0002] # HANGUL CHOSEONG CIEUC
-3148 ; [.377B.0020.0004] # HANGUL LETTER CIEUC
-3208 ; [*030A.0020.0004][.377B.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CIEUC
-3268 ; [.377B.0020.0006] # CIRCLED HANGUL CIEUC
-FFB8 ; [.377B.0020.0012] # HALFWIDTH HANGUL LETTER CIEUC
-3216 ; [*030A.0020.0004][.377B.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CIEUC A
-3276 ; [.377B.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL CIEUC A
-321C ; [*030A.0020.0004][.377B.0020.0004][.37FA.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CIEUC U
-327D ; [.377B.0020.0006][.37FA.0020.0006][.377A.0020.0006][.3800.0020.0006] # CIRCLED KOREAN CHARACTER JUEUI
-110D ; [.377C.0020.0002] # HANGUL CHOSEONG SSANGCIEUC
-3149 ; [.377C.0020.0004] # HANGUL LETTER SSANGCIEUC
-FFB9 ; [.377C.0020.0012] # HALFWIDTH HANGUL LETTER SSANGCIEUC
-110E ; [.377D.0020.0002] # HANGUL CHOSEONG CHIEUCH
-314A ; [.377D.0020.0004] # HANGUL LETTER CHIEUCH
-3209 ; [*030A.0020.0004][.377D.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CHIEUCH
-3269 ; [.377D.0020.0006] # CIRCLED HANGUL CHIEUCH
-FFBA ; [.377D.0020.0012] # HALFWIDTH HANGUL LETTER CHIEUCH
-3217 ; [*030A.0020.0004][.377D.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL CHIEUCH A
-3277 ; [.377D.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL CHIEUCH A
-327C ; [.377D.0020.0006][.37ED.0020.0006][.385A.0020.0006][.376F.0020.0006][.37F5.0020.0006] # CIRCLED KOREAN CHARACTER CHAMKO
-110F ; [.377E.0020.0002] # HANGUL CHOSEONG KHIEUKH
-314B ; [.377E.0020.0004] # HANGUL LETTER KHIEUKH
-320A ; [*030A.0020.0004][.377E.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL KHIEUKH
-326A ; [.377E.0020.0006] # CIRCLED HANGUL KHIEUKH
-FFBB ; [.377E.0020.0012] # HALFWIDTH HANGUL LETTER KHIEUKH
-3218 ; [*030A.0020.0004][.377E.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL KHIEUKH A
-3278 ; [.377E.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL KHIEUKH A
-1110 ; [.377F.0020.0002] # HANGUL CHOSEONG THIEUTH
-314C ; [.377F.0020.0004] # HANGUL LETTER THIEUTH
-320B ; [*030A.0020.0004][.377F.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL THIEUTH
-326B ; [.377F.0020.0006] # CIRCLED HANGUL THIEUTH
-FFBC ; [.377F.0020.0012] # HALFWIDTH HANGUL LETTER THIEUTH
-3219 ; [*030A.0020.0004][.377F.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL THIEUTH A
-3279 ; [.377F.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL THIEUTH A
-1111 ; [.3780.0020.0002] # HANGUL CHOSEONG PHIEUPH
-314D ; [.3780.0020.0004] # HANGUL LETTER PHIEUPH
-320C ; [*030A.0020.0004][.3780.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL PHIEUPH
-326C ; [.3780.0020.0006] # CIRCLED HANGUL PHIEUPH
-FFBD ; [.3780.0020.0012] # HALFWIDTH HANGUL LETTER PHIEUPH
-321A ; [*030A.0020.0004][.3780.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL PHIEUPH A
-327A ; [.3780.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL PHIEUPH A
-1112 ; [.3781.0020.0002] # HANGUL CHOSEONG HIEUH
-314E ; [.3781.0020.0004] # HANGUL LETTER HIEUH
-320D ; [*030A.0020.0004][.3781.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL HIEUH
-326D ; [.3781.0020.0006] # CIRCLED HANGUL HIEUH
-FFBE ; [.3781.0020.0012] # HALFWIDTH HANGUL LETTER HIEUH
-321B ; [*030A.0020.0004][.3781.0020.0004][.37ED.0020.0004][*030B.0020.0004] # PARENTHESIZED HANGUL HIEUH A
-327B ; [.3781.0020.0006][.37ED.0020.0006] # CIRCLED HANGUL HIEUH A
-1113 ; [.3782.0020.0002] # HANGUL CHOSEONG NIEUN-KIYEOK
-1114 ; [.3783.0020.0002] # HANGUL CHOSEONG SSANGNIEUN
-3165 ; [.3783.0020.0004] # HANGUL LETTER SSANGNIEUN
-1115 ; [.3784.0020.0002] # HANGUL CHOSEONG NIEUN-TIKEUT
-3166 ; [.3784.0020.0004] # HANGUL LETTER NIEUN-TIKEUT
-1116 ; [.3785.0020.0002] # HANGUL CHOSEONG NIEUN-PIEUP
-1117 ; [.3786.0020.0002] # HANGUL CHOSEONG TIKEUT-KIYEOK
-1118 ; [.3787.0020.0002] # HANGUL CHOSEONG RIEUL-NIEUN
-1119 ; [.3788.0020.0002] # HANGUL CHOSEONG SSANGRIEUL
-111A ; [.3789.0020.0002] # HANGUL CHOSEONG RIEUL-HIEUH
-3140 ; [.3789.0020.0004] # HANGUL LETTER RIEUL-HIEUH
-FFB0 ; [.3789.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-HIEUH
-111B ; [.378A.0020.0002] # HANGUL CHOSEONG KAPYEOUNRIEUL
-111C ; [.378B.0020.0002] # HANGUL CHOSEONG MIEUM-PIEUP
-316E ; [.378B.0020.0004] # HANGUL LETTER MIEUM-PIEUP
-111D ; [.378C.0020.0002] # HANGUL CHOSEONG KAPYEOUNMIEUM
-3171 ; [.378C.0020.0004] # HANGUL LETTER KAPYEOUNMIEUM
-111E ; [.378D.0020.0002] # HANGUL CHOSEONG PIEUP-KIYEOK
-3172 ; [.378D.0020.0004] # HANGUL LETTER PIEUP-KIYEOK
-111F ; [.378E.0020.0002] # HANGUL CHOSEONG PIEUP-NIEUN
-1120 ; [.378F.0020.0002] # HANGUL CHOSEONG PIEUP-TIKEUT
-3173 ; [.378F.0020.0004] # HANGUL LETTER PIEUP-TIKEUT
-1121 ; [.3790.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS
-3144 ; [.3790.0020.0004] # HANGUL LETTER PIEUP-SIOS
-FFB4 ; [.3790.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP-SIOS
-1122 ; [.3791.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
-3174 ; [.3791.0020.0004] # HANGUL LETTER PIEUP-SIOS-KIYEOK
-1123 ; [.3792.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
-3175 ; [.3792.0020.0004] # HANGUL LETTER PIEUP-SIOS-TIKEUT
-1124 ; [.3793.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
-1125 ; [.3794.0020.0002] # HANGUL CHOSEONG PIEUP-SSANGSIOS
-1126 ; [.3795.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
-1127 ; [.3796.0020.0002] # HANGUL CHOSEONG PIEUP-CIEUC
-3176 ; [.3796.0020.0004] # HANGUL LETTER PIEUP-CIEUC
-1128 ; [.3797.0020.0002] # HANGUL CHOSEONG PIEUP-CHIEUCH
-1129 ; [.3798.0020.0002] # HANGUL CHOSEONG PIEUP-THIEUTH
-3177 ; [.3798.0020.0004] # HANGUL LETTER PIEUP-THIEUTH
-112A ; [.3799.0020.0002] # HANGUL CHOSEONG PIEUP-PHIEUPH
-112B ; [.379A.0020.0002] # HANGUL CHOSEONG KAPYEOUNPIEUP
-3178 ; [.379A.0020.0004] # HANGUL LETTER KAPYEOUNPIEUP
-112C ; [.379B.0020.0002] # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
-3179 ; [.379B.0020.0004] # HANGUL LETTER KAPYEOUNSSANGPIEUP
-112D ; [.379C.0020.0002] # HANGUL CHOSEONG SIOS-KIYEOK
-317A ; [.379C.0020.0004] # HANGUL LETTER SIOS-KIYEOK
-112E ; [.379D.0020.0002] # HANGUL CHOSEONG SIOS-NIEUN
-317B ; [.379D.0020.0004] # HANGUL LETTER SIOS-NIEUN
-112F ; [.379E.0020.0002] # HANGUL CHOSEONG SIOS-TIKEUT
-317C ; [.379E.0020.0004] # HANGUL LETTER SIOS-TIKEUT
-1130 ; [.379F.0020.0002] # HANGUL CHOSEONG SIOS-RIEUL
-1131 ; [.37A0.0020.0002] # HANGUL CHOSEONG SIOS-MIEUM
-1132 ; [.37A1.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP
-317D ; [.37A1.0020.0004] # HANGUL LETTER SIOS-PIEUP
-1133 ; [.37A2.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
-1134 ; [.37A3.0020.0002] # HANGUL CHOSEONG SIOS-SSANGSIOS
-1135 ; [.37A4.0020.0002] # HANGUL CHOSEONG SIOS-IEUNG
-1136 ; [.37A5.0020.0002] # HANGUL CHOSEONG SIOS-CIEUC
-317E ; [.37A5.0020.0004] # HANGUL LETTER SIOS-CIEUC
-1137 ; [.37A6.0020.0002] # HANGUL CHOSEONG SIOS-CHIEUCH
-1138 ; [.37A7.0020.0002] # HANGUL CHOSEONG SIOS-KHIEUKH
-1139 ; [.37A8.0020.0002] # HANGUL CHOSEONG SIOS-THIEUTH
-113A ; [.37A9.0020.0002] # HANGUL CHOSEONG SIOS-PHIEUPH
-113B ; [.37AA.0020.0002] # HANGUL CHOSEONG SIOS-HIEUH
-113C ; [.37AB.0020.0002] # HANGUL CHOSEONG CHITUEUMSIOS
-113D ; [.37AC.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGSIOS
-113E ; [.37AD.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSIOS
-113F ; [.37AE.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
-1140 ; [.37AF.0020.0002] # HANGUL CHOSEONG PANSIOS
-317F ; [.37AF.0020.0004] # HANGUL LETTER PANSIOS
-1141 ; [.37B0.0020.0002] # HANGUL CHOSEONG IEUNG-KIYEOK
-1142 ; [.37B1.0020.0002] # HANGUL CHOSEONG IEUNG-TIKEUT
-1143 ; [.37B2.0020.0002] # HANGUL CHOSEONG IEUNG-MIEUM
-1144 ; [.37B3.0020.0002] # HANGUL CHOSEONG IEUNG-PIEUP
-1145 ; [.37B4.0020.0002] # HANGUL CHOSEONG IEUNG-SIOS
-1146 ; [.37B5.0020.0002] # HANGUL CHOSEONG IEUNG-PANSIOS
-1147 ; [.37B6.0020.0002] # HANGUL CHOSEONG SSANGIEUNG
-3180 ; [.37B6.0020.0004] # HANGUL LETTER SSANGIEUNG
-1148 ; [.37B7.0020.0002] # HANGUL CHOSEONG IEUNG-CIEUC
-1149 ; [.37B8.0020.0002] # HANGUL CHOSEONG IEUNG-CHIEUCH
-114A ; [.37B9.0020.0002] # HANGUL CHOSEONG IEUNG-THIEUTH
-114B ; [.37BA.0020.0002] # HANGUL CHOSEONG IEUNG-PHIEUPH
-114C ; [.37BB.0020.0002] # HANGUL CHOSEONG YESIEUNG
-3181 ; [.37BB.0020.0004] # HANGUL LETTER YESIEUNG
-114D ; [.37BC.0020.0002] # HANGUL CHOSEONG CIEUC-IEUNG
-114E ; [.37BD.0020.0002] # HANGUL CHOSEONG CHITUEUMCIEUC
-114F ; [.37BE.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
-1150 ; [.37BF.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCIEUC
-1151 ; [.37C0.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
-1152 ; [.37C1.0020.0002] # HANGUL CHOSEONG CHIEUCH-KHIEUKH
-1153 ; [.37C2.0020.0002] # HANGUL CHOSEONG CHIEUCH-HIEUH
-1154 ; [.37C3.0020.0002] # HANGUL CHOSEONG CHITUEUMCHIEUCH
-1155 ; [.37C4.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
-1156 ; [.37C5.0020.0002] # HANGUL CHOSEONG PHIEUPH-PIEUP
-1157 ; [.37C6.0020.0002] # HANGUL CHOSEONG KAPYEOUNPHIEUPH
-3184 ; [.37C6.0020.0004] # HANGUL LETTER KAPYEOUNPHIEUPH
-1158 ; [.37C7.0020.0002] # HANGUL CHOSEONG SSANGHIEUH
-3185 ; [.37C7.0020.0004] # HANGUL LETTER SSANGHIEUH
-1159 ; [.37C8.0020.0002] # HANGUL CHOSEONG YEORINHIEUH
-3186 ; [.37C8.0020.0004] # HANGUL LETTER YEORINHIEUH
-115A ; [.37C9.0020.0002] # HANGUL CHOSEONG KIYEOK-TIKEUT
-115B ; [.37CA.0020.0002] # HANGUL CHOSEONG NIEUN-SIOS
-115C ; [.37CB.0020.0002] # HANGUL CHOSEONG NIEUN-CIEUC
-115D ; [.37CC.0020.0002] # HANGUL CHOSEONG NIEUN-HIEUH
-115E ; [.37CD.0020.0002] # HANGUL CHOSEONG TIKEUT-RIEUL
-A960 ; [.37CE.0020.0002] # HANGUL CHOSEONG TIKEUT-MIEUM
-A961 ; [.37CF.0020.0002] # HANGUL CHOSEONG TIKEUT-PIEUP
-A962 ; [.37D0.0020.0002] # HANGUL CHOSEONG TIKEUT-SIOS
-A963 ; [.37D1.0020.0002] # HANGUL CHOSEONG TIKEUT-CIEUC
-A964 ; [.37D2.0020.0002] # HANGUL CHOSEONG RIEUL-KIYEOK
-A965 ; [.37D3.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGKIYEOK
-A966 ; [.37D4.0020.0002] # HANGUL CHOSEONG RIEUL-TIKEUT
-A967 ; [.37D5.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGTIKEUT
-A968 ; [.37D6.0020.0002] # HANGUL CHOSEONG RIEUL-MIEUM
-A969 ; [.37D7.0020.0002] # HANGUL CHOSEONG RIEUL-PIEUP
-A96A ; [.37D8.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGPIEUP
-A96B ; [.37D9.0020.0002] # HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
-A96C ; [.37DA.0020.0002] # HANGUL CHOSEONG RIEUL-SIOS
-A96D ; [.37DB.0020.0002] # HANGUL CHOSEONG RIEUL-CIEUC
-A96E ; [.37DC.0020.0002] # HANGUL CHOSEONG RIEUL-KHIEUKH
-A96F ; [.37DD.0020.0002] # HANGUL CHOSEONG MIEUM-KIYEOK
-A970 ; [.37DE.0020.0002] # HANGUL CHOSEONG MIEUM-TIKEUT
-A971 ; [.37DF.0020.0002] # HANGUL CHOSEONG MIEUM-SIOS
-A972 ; [.37E0.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
-A973 ; [.37E1.0020.0002] # HANGUL CHOSEONG PIEUP-KHIEUKH
-A974 ; [.37E2.0020.0002] # HANGUL CHOSEONG PIEUP-HIEUH
-A975 ; [.37E3.0020.0002] # HANGUL CHOSEONG SSANGSIOS-PIEUP
-A976 ; [.37E4.0020.0002] # HANGUL CHOSEONG IEUNG-RIEUL
-A977 ; [.37E5.0020.0002] # HANGUL CHOSEONG IEUNG-HIEUH
-A978 ; [.37E6.0020.0002] # HANGUL CHOSEONG SSANGCIEUC-HIEUH
-A979 ; [.37E7.0020.0002] # HANGUL CHOSEONG SSANGTHIEUTH
-A97A ; [.37E8.0020.0002] # HANGUL CHOSEONG PHIEUPH-HIEUH
-A97B ; [.37E9.0020.0002] # HANGUL CHOSEONG HIEUH-SIOS
-A97C ; [.37EA.0020.0002] # HANGUL CHOSEONG SSANGYEORINHIEUH
-115F ; [.37EB.0020.0002] # HANGUL CHOSEONG FILLER
-1160 ; [.37EC.0020.0002] # HANGUL JUNGSEONG FILLER
-3164 ; [.37EC.0020.0004] # HANGUL FILLER
-FFA0 ; [.37EC.0020.0012] # HALFWIDTH HANGUL FILLER
-1161 ; [.37ED.0020.0002] # HANGUL JUNGSEONG A
-314F ; [.37ED.0020.0004] # HANGUL LETTER A
-FFC2 ; [.37ED.0020.0012] # HALFWIDTH HANGUL LETTER A
-1162 ; [.37EE.0020.0002] # HANGUL JUNGSEONG AE
-3150 ; [.37EE.0020.0004] # HANGUL LETTER AE
-FFC3 ; [.37EE.0020.0012] # HALFWIDTH HANGUL LETTER AE
-1163 ; [.37EF.0020.0002] # HANGUL JUNGSEONG YA
-3151 ; [.37EF.0020.0004] # HANGUL LETTER YA
-FFC4 ; [.37EF.0020.0012] # HALFWIDTH HANGUL LETTER YA
-1164 ; [.37F0.0020.0002] # HANGUL JUNGSEONG YAE
-3152 ; [.37F0.0020.0004] # HANGUL LETTER YAE
-FFC5 ; [.37F0.0020.0012] # HALFWIDTH HANGUL LETTER YAE
-1165 ; [.37F1.0020.0002] # HANGUL JUNGSEONG EO
-3153 ; [.37F1.0020.0004] # HANGUL LETTER EO
-FFC6 ; [.37F1.0020.0012] # HALFWIDTH HANGUL LETTER EO
-1166 ; [.37F2.0020.0002] # HANGUL JUNGSEONG E
-3154 ; [.37F2.0020.0004] # HANGUL LETTER E
-FFC7 ; [.37F2.0020.0012] # HALFWIDTH HANGUL LETTER E
-1167 ; [.37F3.0020.0002] # HANGUL JUNGSEONG YEO
-3155 ; [.37F3.0020.0004] # HANGUL LETTER YEO
-FFCA ; [.37F3.0020.0012] # HALFWIDTH HANGUL LETTER YEO
-1168 ; [.37F4.0020.0002] # HANGUL JUNGSEONG YE
-3156 ; [.37F4.0020.0004] # HANGUL LETTER YE
-FFCB ; [.37F4.0020.0012] # HALFWIDTH HANGUL LETTER YE
-1169 ; [.37F5.0020.0002] # HANGUL JUNGSEONG O
-3157 ; [.37F5.0020.0004] # HANGUL LETTER O
-FFCC ; [.37F5.0020.0012] # HALFWIDTH HANGUL LETTER O
-116A ; [.37F6.0020.0002] # HANGUL JUNGSEONG WA
-3158 ; [.37F6.0020.0004] # HANGUL LETTER WA
-FFCD ; [.37F6.0020.0012] # HALFWIDTH HANGUL LETTER WA
-116B ; [.37F7.0020.0002] # HANGUL JUNGSEONG WAE
-3159 ; [.37F7.0020.0004] # HANGUL LETTER WAE
-FFCE ; [.37F7.0020.0012] # HALFWIDTH HANGUL LETTER WAE
-116C ; [.37F8.0020.0002] # HANGUL JUNGSEONG OE
-315A ; [.37F8.0020.0004] # HANGUL LETTER OE
-FFCF ; [.37F8.0020.0012] # HALFWIDTH HANGUL LETTER OE
-116D ; [.37F9.0020.0002] # HANGUL JUNGSEONG YO
-315B ; [.37F9.0020.0004] # HANGUL LETTER YO
-FFD2 ; [.37F9.0020.0012] # HALFWIDTH HANGUL LETTER YO
-116E ; [.37FA.0020.0002] # HANGUL JUNGSEONG U
-315C ; [.37FA.0020.0004] # HANGUL LETTER U
-FFD3 ; [.37FA.0020.0012] # HALFWIDTH HANGUL LETTER U
-116F ; [.37FB.0020.0002] # HANGUL JUNGSEONG WEO
-315D ; [.37FB.0020.0004] # HANGUL LETTER WEO
-FFD4 ; [.37FB.0020.0012] # HALFWIDTH HANGUL LETTER WEO
-1170 ; [.37FC.0020.0002] # HANGUL JUNGSEONG WE
-315E ; [.37FC.0020.0004] # HANGUL LETTER WE
-FFD5 ; [.37FC.0020.0012] # HALFWIDTH HANGUL LETTER WE
-1171 ; [.37FD.0020.0002] # HANGUL JUNGSEONG WI
-315F ; [.37FD.0020.0004] # HANGUL LETTER WI
-FFD6 ; [.37FD.0020.0012] # HALFWIDTH HANGUL LETTER WI
-1172 ; [.37FE.0020.0002] # HANGUL JUNGSEONG YU
-3160 ; [.37FE.0020.0004] # HANGUL LETTER YU
-FFD7 ; [.37FE.0020.0012] # HALFWIDTH HANGUL LETTER YU
-1173 ; [.37FF.0020.0002] # HANGUL JUNGSEONG EU
-3161 ; [.37FF.0020.0004] # HANGUL LETTER EU
-FFDA ; [.37FF.0020.0012] # HALFWIDTH HANGUL LETTER EU
-1174 ; [.3800.0020.0002] # HANGUL JUNGSEONG YI
-3162 ; [.3800.0020.0004] # HANGUL LETTER YI
-FFDB ; [.3800.0020.0012] # HALFWIDTH HANGUL LETTER YI
-1175 ; [.3801.0020.0002] # HANGUL JUNGSEONG I
-3163 ; [.3801.0020.0004] # HANGUL LETTER I
-FFDC ; [.3801.0020.0012] # HALFWIDTH HANGUL LETTER I
-1176 ; [.3802.0020.0002] # HANGUL JUNGSEONG A-O
-1177 ; [.3803.0020.0002] # HANGUL JUNGSEONG A-U
-1178 ; [.3804.0020.0002] # HANGUL JUNGSEONG YA-O
-1179 ; [.3805.0020.0002] # HANGUL JUNGSEONG YA-YO
-117A ; [.3806.0020.0002] # HANGUL JUNGSEONG EO-O
-117B ; [.3807.0020.0002] # HANGUL JUNGSEONG EO-U
-117C ; [.3808.0020.0002] # HANGUL JUNGSEONG EO-EU
-117D ; [.3809.0020.0002] # HANGUL JUNGSEONG YEO-O
-117E ; [.380A.0020.0002] # HANGUL JUNGSEONG YEO-U
-117F ; [.380B.0020.0002] # HANGUL JUNGSEONG O-EO
-1180 ; [.380C.0020.0002] # HANGUL JUNGSEONG O-E
-1181 ; [.380D.0020.0002] # HANGUL JUNGSEONG O-YE
-1182 ; [.380E.0020.0002] # HANGUL JUNGSEONG O-O
-1183 ; [.380F.0020.0002] # HANGUL JUNGSEONG O-U
-1184 ; [.3810.0020.0002] # HANGUL JUNGSEONG YO-YA
-3187 ; [.3810.0020.0004] # HANGUL LETTER YO-YA
-1185 ; [.3811.0020.0002] # HANGUL JUNGSEONG YO-YAE
-3188 ; [.3811.0020.0004] # HANGUL LETTER YO-YAE
-1186 ; [.3812.0020.0002] # HANGUL JUNGSEONG YO-YEO
-1187 ; [.3813.0020.0002] # HANGUL JUNGSEONG YO-O
-1188 ; [.3814.0020.0002] # HANGUL JUNGSEONG YO-I
-3189 ; [.3814.0020.0004] # HANGUL LETTER YO-I
-1189 ; [.3815.0020.0002] # HANGUL JUNGSEONG U-A
-118A ; [.3816.0020.0002] # HANGUL JUNGSEONG U-AE
-118B ; [.3817.0020.0002] # HANGUL JUNGSEONG U-EO-EU
-118C ; [.3818.0020.0002] # HANGUL JUNGSEONG U-YE
-118D ; [.3819.0020.0002] # HANGUL JUNGSEONG U-U
-118E ; [.381A.0020.0002] # HANGUL JUNGSEONG YU-A
-118F ; [.381B.0020.0002] # HANGUL JUNGSEONG YU-EO
-1190 ; [.381C.0020.0002] # HANGUL JUNGSEONG YU-E
-1191 ; [.381D.0020.0002] # HANGUL JUNGSEONG YU-YEO
-318A ; [.381D.0020.0004] # HANGUL LETTER YU-YEO
-1192 ; [.381E.0020.0002] # HANGUL JUNGSEONG YU-YE
-318B ; [.381E.0020.0004] # HANGUL LETTER YU-YE
-1193 ; [.381F.0020.0002] # HANGUL JUNGSEONG YU-U
-1194 ; [.3820.0020.0002] # HANGUL JUNGSEONG YU-I
-318C ; [.3820.0020.0004] # HANGUL LETTER YU-I
-1195 ; [.3821.0020.0002] # HANGUL JUNGSEONG EU-U
-1196 ; [.3822.0020.0002] # HANGUL JUNGSEONG EU-EU
-1197 ; [.3823.0020.0002] # HANGUL JUNGSEONG YI-U
-1198 ; [.3824.0020.0002] # HANGUL JUNGSEONG I-A
-1199 ; [.3825.0020.0002] # HANGUL JUNGSEONG I-YA
-119A ; [.3826.0020.0002] # HANGUL JUNGSEONG I-O
-119B ; [.3827.0020.0002] # HANGUL JUNGSEONG I-U
-119C ; [.3828.0020.0002] # HANGUL JUNGSEONG I-EU
-119D ; [.3829.0020.0002] # HANGUL JUNGSEONG I-ARAEA
-119E ; [.382A.0020.0002] # HANGUL JUNGSEONG ARAEA
-318D ; [.382A.0020.0004] # HANGUL LETTER ARAEA
-119F ; [.382B.0020.0002] # HANGUL JUNGSEONG ARAEA-EO
-11A0 ; [.382C.0020.0002] # HANGUL JUNGSEONG ARAEA-U
-11A1 ; [.382D.0020.0002] # HANGUL JUNGSEONG ARAEA-I
-318E ; [.382D.0020.0004] # HANGUL LETTER ARAEAE
-11A2 ; [.382E.0020.0002] # HANGUL JUNGSEONG SSANGARAEA
-11A3 ; [.382F.0020.0002] # HANGUL JUNGSEONG A-EU
-11A4 ; [.3830.0020.0002] # HANGUL JUNGSEONG YA-U
-11A5 ; [.3831.0020.0002] # HANGUL JUNGSEONG YEO-YA
-11A6 ; [.3832.0020.0002] # HANGUL JUNGSEONG O-YA
-11A7 ; [.3833.0020.0002] # HANGUL JUNGSEONG O-YAE
-D7B0 ; [.3834.0020.0002] # HANGUL JUNGSEONG O-YEO
-D7B1 ; [.3835.0020.0002] # HANGUL JUNGSEONG O-O-I
-D7B2 ; [.3836.0020.0002] # HANGUL JUNGSEONG YO-A
-D7B3 ; [.3837.0020.0002] # HANGUL JUNGSEONG YO-AE
-D7B4 ; [.3838.0020.0002] # HANGUL JUNGSEONG YO-EO
-D7B5 ; [.3839.0020.0002] # HANGUL JUNGSEONG U-YEO
-D7B6 ; [.383A.0020.0002] # HANGUL JUNGSEONG U-I-I
-D7B7 ; [.383B.0020.0002] # HANGUL JUNGSEONG YU-AE
-D7B8 ; [.383C.0020.0002] # HANGUL JUNGSEONG YU-O
-D7B9 ; [.383D.0020.0002] # HANGUL JUNGSEONG EU-A
-D7BA ; [.383E.0020.0002] # HANGUL JUNGSEONG EU-EO
-D7BB ; [.383F.0020.0002] # HANGUL JUNGSEONG EU-E
-D7BC ; [.3840.0020.0002] # HANGUL JUNGSEONG EU-O
-D7BD ; [.3841.0020.0002] # HANGUL JUNGSEONG I-YA-O
-D7BE ; [.3842.0020.0002] # HANGUL JUNGSEONG I-YAE
-D7BF ; [.3843.0020.0002] # HANGUL JUNGSEONG I-YEO
-D7C0 ; [.3844.0020.0002] # HANGUL JUNGSEONG I-YE
-D7C1 ; [.3845.0020.0002] # HANGUL JUNGSEONG I-O-I
-D7C2 ; [.3846.0020.0002] # HANGUL JUNGSEONG I-YO
-D7C3 ; [.3847.0020.0002] # HANGUL JUNGSEONG I-YU
-D7C4 ; [.3848.0020.0002] # HANGUL JUNGSEONG I-I
-D7C5 ; [.3849.0020.0002] # HANGUL JUNGSEONG ARAEA-A
-D7C6 ; [.384A.0020.0002] # HANGUL JUNGSEONG ARAEA-E
-11A8 ; [.384B.0020.0002] # HANGUL JONGSEONG KIYEOK
-11A9 ; [.384C.0020.0002] # HANGUL JONGSEONG SSANGKIYEOK
-11AA ; [.384D.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS
-3133 ; [.384D.0020.0004] # HANGUL LETTER KIYEOK-SIOS
-FFA3 ; [.384D.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK-SIOS
-11AB ; [.384E.0020.0002] # HANGUL JONGSEONG NIEUN
-11AC ; [.384F.0020.0002] # HANGUL JONGSEONG NIEUN-CIEUC
-3135 ; [.384F.0020.0004] # HANGUL LETTER NIEUN-CIEUC
-FFA5 ; [.384F.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-CIEUC
-11AD ; [.3850.0020.0002] # HANGUL JONGSEONG NIEUN-HIEUH
-3136 ; [.3850.0020.0004] # HANGUL LETTER NIEUN-HIEUH
-FFA6 ; [.3850.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-HIEUH
-11AE ; [.3851.0020.0002] # HANGUL JONGSEONG TIKEUT
-11AF ; [.3852.0020.0002] # HANGUL JONGSEONG RIEUL
-11B0 ; [.3853.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK
-313A ; [.3853.0020.0004] # HANGUL LETTER RIEUL-KIYEOK
-FFAA ; [.3853.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
-11B1 ; [.3854.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM
-313B ; [.3854.0020.0004] # HANGUL LETTER RIEUL-MIEUM
-FFAB ; [.3854.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-MIEUM
-11B2 ; [.3855.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP
-313C ; [.3855.0020.0004] # HANGUL LETTER RIEUL-PIEUP
-FFAC ; [.3855.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PIEUP
-11B3 ; [.3856.0020.0002] # HANGUL JONGSEONG RIEUL-SIOS
-313D ; [.3856.0020.0004] # HANGUL LETTER RIEUL-SIOS
-FFAD ; [.3856.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-SIOS
-11B4 ; [.3857.0020.0002] # HANGUL JONGSEONG RIEUL-THIEUTH
-313E ; [.3857.0020.0004] # HANGUL LETTER RIEUL-THIEUTH
-FFAE ; [.3857.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
-11B5 ; [.3858.0020.0002] # HANGUL JONGSEONG RIEUL-PHIEUPH
-313F ; [.3858.0020.0004] # HANGUL LETTER RIEUL-PHIEUPH
-FFAF ; [.3858.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
-11B6 ; [.3859.0020.0002] # HANGUL JONGSEONG RIEUL-HIEUH
-11B7 ; [.385A.0020.0002] # HANGUL JONGSEONG MIEUM
-11B8 ; [.385B.0020.0002] # HANGUL JONGSEONG PIEUP
-11B9 ; [.385C.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS
-11BA ; [.385D.0020.0002] # HANGUL JONGSEONG SIOS
-11BB ; [.385E.0020.0002] # HANGUL JONGSEONG SSANGSIOS
-11BC ; [.385F.0020.0002] # HANGUL JONGSEONG IEUNG
-11BD ; [.3860.0020.0002] # HANGUL JONGSEONG CIEUC
-11BE ; [.3861.0020.0002] # HANGUL JONGSEONG CHIEUCH
-11BF ; [.3862.0020.0002] # HANGUL JONGSEONG KHIEUKH
-11C0 ; [.3863.0020.0002] # HANGUL JONGSEONG THIEUTH
-11C1 ; [.3864.0020.0002] # HANGUL JONGSEONG PHIEUPH
-11C2 ; [.3865.0020.0002] # HANGUL JONGSEONG HIEUH
-11C3 ; [.3866.0020.0002] # HANGUL JONGSEONG KIYEOK-RIEUL
-11C4 ; [.3867.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
-11C5 ; [.3868.0020.0002] # HANGUL JONGSEONG NIEUN-KIYEOK
-11C6 ; [.3869.0020.0002] # HANGUL JONGSEONG NIEUN-TIKEUT
-11C7 ; [.386A.0020.0002] # HANGUL JONGSEONG NIEUN-SIOS
-3167 ; [.386A.0020.0004] # HANGUL LETTER NIEUN-SIOS
-11C8 ; [.386B.0020.0002] # HANGUL JONGSEONG NIEUN-PANSIOS
-3168 ; [.386B.0020.0004] # HANGUL LETTER NIEUN-PANSIOS
-11C9 ; [.386C.0020.0002] # HANGUL JONGSEONG NIEUN-THIEUTH
-11CA ; [.386D.0020.0002] # HANGUL JONGSEONG TIKEUT-KIYEOK
-11CB ; [.386E.0020.0002] # HANGUL JONGSEONG TIKEUT-RIEUL
-11CC ; [.386F.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
-3169 ; [.386F.0020.0004] # HANGUL LETTER RIEUL-KIYEOK-SIOS
-11CD ; [.3870.0020.0002] # HANGUL JONGSEONG RIEUL-NIEUN
-11CE ; [.3871.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT
-316A ; [.3871.0020.0004] # HANGUL LETTER RIEUL-TIKEUT
-11CF ; [.3872.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
-11D0 ; [.3873.0020.0002] # HANGUL JONGSEONG SSANGRIEUL
-11D1 ; [.3874.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
-11D2 ; [.3875.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
-11D3 ; [.3876.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
-316B ; [.3876.0020.0004] # HANGUL LETTER RIEUL-PIEUP-SIOS
-11D4 ; [.3877.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
-11D5 ; [.3878.0020.0002] # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
-11D6 ; [.3879.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGSIOS
-11D7 ; [.387A.0020.0002] # HANGUL JONGSEONG RIEUL-PANSIOS
-316C ; [.387A.0020.0004] # HANGUL LETTER RIEUL-PANSIOS
-11D8 ; [.387B.0020.0002] # HANGUL JONGSEONG RIEUL-KHIEUKH
-11D9 ; [.387C.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH
-316D ; [.387C.0020.0004] # HANGUL LETTER RIEUL-YEORINHIEUH
-11DA ; [.387D.0020.0002] # HANGUL JONGSEONG MIEUM-KIYEOK
-11DB ; [.387E.0020.0002] # HANGUL JONGSEONG MIEUM-RIEUL
-11DC ; [.387F.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP
-11DD ; [.3880.0020.0002] # HANGUL JONGSEONG MIEUM-SIOS
-316F ; [.3880.0020.0004] # HANGUL LETTER MIEUM-SIOS
-11DE ; [.3881.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGSIOS
-11DF ; [.3882.0020.0002] # HANGUL JONGSEONG MIEUM-PANSIOS
-3170 ; [.3882.0020.0004] # HANGUL LETTER MIEUM-PANSIOS
-11E0 ; [.3883.0020.0002] # HANGUL JONGSEONG MIEUM-CHIEUCH
-11E1 ; [.3884.0020.0002] # HANGUL JONGSEONG MIEUM-HIEUH
-11E2 ; [.3885.0020.0002] # HANGUL JONGSEONG KAPYEOUNMIEUM
-11E3 ; [.3886.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL
-11E4 ; [.3887.0020.0002] # HANGUL JONGSEONG PIEUP-PHIEUPH
-11E5 ; [.3888.0020.0002] # HANGUL JONGSEONG PIEUP-HIEUH
-11E6 ; [.3889.0020.0002] # HANGUL JONGSEONG KAPYEOUNPIEUP
-11E7 ; [.388A.0020.0002] # HANGUL JONGSEONG SIOS-KIYEOK
-11E8 ; [.388B.0020.0002] # HANGUL JONGSEONG SIOS-TIKEUT
-11E9 ; [.388C.0020.0002] # HANGUL JONGSEONG SIOS-RIEUL
-11EA ; [.388D.0020.0002] # HANGUL JONGSEONG SIOS-PIEUP
-11EB ; [.388E.0020.0002] # HANGUL JONGSEONG PANSIOS
-11EC ; [.388F.0020.0002] # HANGUL JONGSEONG IEUNG-KIYEOK
-11ED ; [.3890.0020.0002] # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
-11EE ; [.3891.0020.0002] # HANGUL JONGSEONG SSANGIEUNG
-11EF ; [.3892.0020.0002] # HANGUL JONGSEONG IEUNG-KHIEUKH
-11F0 ; [.3893.0020.0002] # HANGUL JONGSEONG YESIEUNG
-11F1 ; [.3894.0020.0002] # HANGUL JONGSEONG YESIEUNG-SIOS
-3182 ; [.3894.0020.0004] # HANGUL LETTER YESIEUNG-SIOS
-11F2 ; [.3895.0020.0002] # HANGUL JONGSEONG YESIEUNG-PANSIOS
-3183 ; [.3895.0020.0004] # HANGUL LETTER YESIEUNG-PANSIOS
-11F3 ; [.3896.0020.0002] # HANGUL JONGSEONG PHIEUPH-PIEUP
-11F4 ; [.3897.0020.0002] # HANGUL JONGSEONG KAPYEOUNPHIEUPH
-11F5 ; [.3898.0020.0002] # HANGUL JONGSEONG HIEUH-NIEUN
-11F6 ; [.3899.0020.0002] # HANGUL JONGSEONG HIEUH-RIEUL
-11F7 ; [.389A.0020.0002] # HANGUL JONGSEONG HIEUH-MIEUM
-11F8 ; [.389B.0020.0002] # HANGUL JONGSEONG HIEUH-PIEUP
-11F9 ; [.389C.0020.0002] # HANGUL JONGSEONG YEORINHIEUH
-11FA ; [.389D.0020.0002] # HANGUL JONGSEONG KIYEOK-NIEUN
-11FB ; [.389E.0020.0002] # HANGUL JONGSEONG KIYEOK-PIEUP
-11FC ; [.389F.0020.0002] # HANGUL JONGSEONG KIYEOK-CHIEUCH
-11FD ; [.38A0.0020.0002] # HANGUL JONGSEONG KIYEOK-KHIEUKH
-11FE ; [.38A1.0020.0002] # HANGUL JONGSEONG KIYEOK-HIEUH
-11FF ; [.38A2.0020.0002] # HANGUL JONGSEONG SSANGNIEUN
-D7CB ; [.38A3.0020.0002] # HANGUL JONGSEONG NIEUN-RIEUL
-D7CC ; [.38A4.0020.0002] # HANGUL JONGSEONG NIEUN-CHIEUCH
-D7CD ; [.38A5.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT
-D7CE ; [.38A6.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT-PIEUP
-D7CF ; [.38A7.0020.0002] # HANGUL JONGSEONG TIKEUT-PIEUP
-D7D0 ; [.38A8.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS
-D7D1 ; [.38A9.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
-D7D2 ; [.38AA.0020.0002] # HANGUL JONGSEONG TIKEUT-CIEUC
-D7D3 ; [.38AB.0020.0002] # HANGUL JONGSEONG TIKEUT-CHIEUCH
-D7D4 ; [.38AC.0020.0002] # HANGUL JONGSEONG TIKEUT-THIEUTH
-D7D5 ; [.38AD.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGKIYEOK
-D7D6 ; [.38AE.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
-D7D7 ; [.38AF.0020.0002] # HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
-D7D8 ; [.38B0.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
-D7D9 ; [.38B1.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
-D7DA ; [.38B2.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
-D7DB ; [.38B3.0020.0002] # HANGUL JONGSEONG RIEUL-YESIEUNG
-D7DC ; [.38B4.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
-D7DD ; [.38B5.0020.0002] # HANGUL JONGSEONG KAPYEOUNRIEUL
-D7DE ; [.38B6.0020.0002] # HANGUL JONGSEONG MIEUM-NIEUN
-D7DF ; [.38B7.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGNIEUN
-D7E0 ; [.38B8.0020.0002] # HANGUL JONGSEONG SSANGMIEUM
-D7E1 ; [.38B9.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP-SIOS
-D7E2 ; [.38BA.0020.0002] # HANGUL JONGSEONG MIEUM-CIEUC
-D7E3 ; [.38BB.0020.0002] # HANGUL JONGSEONG PIEUP-TIKEUT
-D7E4 ; [.38BC.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
-D7E5 ; [.38BD.0020.0002] # HANGUL JONGSEONG PIEUP-MIEUM
-D7E6 ; [.38BE.0020.0002] # HANGUL JONGSEONG SSANGPIEUP
-D7E7 ; [.38BF.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
-D7E8 ; [.38C0.0020.0002] # HANGUL JONGSEONG PIEUP-CIEUC
-D7E9 ; [.38C1.0020.0002] # HANGUL JONGSEONG PIEUP-CHIEUCH
-D7EA ; [.38C2.0020.0002] # HANGUL JONGSEONG SIOS-MIEUM
-D7EB ; [.38C3.0020.0002] # HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
-D7EC ; [.38C4.0020.0002] # HANGUL JONGSEONG SSANGSIOS-KIYEOK
-D7ED ; [.38C5.0020.0002] # HANGUL JONGSEONG SSANGSIOS-TIKEUT
-D7EE ; [.38C6.0020.0002] # HANGUL JONGSEONG SIOS-PANSIOS
-D7EF ; [.38C7.0020.0002] # HANGUL JONGSEONG SIOS-CIEUC
-D7F0 ; [.38C8.0020.0002] # HANGUL JONGSEONG SIOS-CHIEUCH
-D7F1 ; [.38C9.0020.0002] # HANGUL JONGSEONG SIOS-THIEUTH
-D7F2 ; [.38CA.0020.0002] # HANGUL JONGSEONG SIOS-HIEUH
-D7F3 ; [.38CB.0020.0002] # HANGUL JONGSEONG PANSIOS-PIEUP
-D7F4 ; [.38CC.0020.0002] # HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
-D7F5 ; [.38CD.0020.0002] # HANGUL JONGSEONG YESIEUNG-MIEUM
-D7F6 ; [.38CE.0020.0002] # HANGUL JONGSEONG YESIEUNG-HIEUH
-D7F7 ; [.38CF.0020.0002] # HANGUL JONGSEONG CIEUC-PIEUP
-D7F8 ; [.38D0.0020.0002] # HANGUL JONGSEONG CIEUC-SSANGPIEUP
-D7F9 ; [.38D1.0020.0002] # HANGUL JONGSEONG SSANGCIEUC
-D7FA ; [.38D2.0020.0002] # HANGUL JONGSEONG PHIEUPH-SIOS
-D7FB ; [.38D3.0020.0002] # HANGUL JONGSEONG PHIEUPH-THIEUTH
-3041 ; [.38D4.0020.000D] # HIRAGANA LETTER SMALL A
-3042 ; [.38D4.0020.000E] # HIRAGANA LETTER A
-30A1 ; [.38D4.0020.000F] # KATAKANA LETTER SMALL A
-FF67 ; [.38D4.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL A
-30A2 ; [.38D4.0020.0011] # KATAKANA LETTER A
-FF71 ; [.38D4.0020.0012] # HALFWIDTH KATAKANA LETTER A
-32D0 ; [.38D4.0020.0013] # CIRCLED KATAKANA A
-3303 ; [.38D4.0020.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE AARU
-3300 ; [.38D4.0020.001C][.38EE.0020.001C][.0000.0038.001C][.18D4.0020.001C][.38E8.0020.001C] # SQUARE APAATO
-3301 ; [.38D4.0020.001C][.38FE.0020.001C][.38F0.0020.001C][.38D4.0020.001C] # SQUARE ARUHUA
-3302 ; [.38D4.0020.001C][.3905.0020.001C][.38F1.0020.001C][.0000.0038.001C][.38D4.0020.001C] # SQUARE ANPEA
-3043 ; [.38D5.0020.000D] # HIRAGANA LETTER SMALL I
-3044 ; [.38D5.0020.000E] # HIRAGANA LETTER I
-30A3 ; [.38D5.0020.000F] # KATAKANA LETTER SMALL I
-FF68 ; [.38D5.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL I
-30A4 ; [.38D5.0020.0011] # KATAKANA LETTER I
-FF72 ; [.38D5.0020.0012] # HALFWIDTH KATAKANA LETTER I
-32D1 ; [.38D5.0020.0013] # CIRCLED KATAKANA I
-3304 ; [.38D5.0020.001C][.38EA.0020.001C][.3905.0020.001C][.38DC.0020.001C][.0000.0037.001C] # SQUARE ININGU
-3305 ; [.38D5.0020.001C][.3905.0020.001C][.38E5.0020.001C] # SQUARE INTI
-3045 ; [.38D6.0020.000D] # HIRAGANA LETTER SMALL U
-3046 ; [.38D6.0020.000E] # HIRAGANA LETTER U
-30A5 ; [.38D6.0020.000F] # KATAKANA LETTER SMALL U
-FF69 ; [.38D6.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL U
-30A6 ; [.38D6.0020.0011] # KATAKANA LETTER U
-FF73 ; [.38D6.0020.0012] # HALFWIDTH KATAKANA LETTER U
-32D2 ; [.38D6.0020.0013] # CIRCLED KATAKANA U
-3094 ; [.38D6.0020.000E][.0000.0037.0002] # HIRAGANA LETTER VU
-30F4 ; [.38D6.0020.0011][.0000.0037.0002] # KATAKANA LETTER VU
-3306 ; [.38D6.0020.001C][.38D9.0020.001C][.3905.0020.001C] # SQUARE UON
-1B000 ; [.38D7.0020.0011] # KATAKANA LETTER ARCHAIC E
-3047 ; [.38D8.0020.000D] # HIRAGANA LETTER SMALL E
-3048 ; [.38D8.0020.000E] # HIRAGANA LETTER E
-30A7 ; [.38D8.0020.000F] # KATAKANA LETTER SMALL E
-FF6A ; [.38D8.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL E
-30A8 ; [.38D8.0020.0011] # KATAKANA LETTER E
-FF74 ; [.38D8.0020.0012] # HALFWIDTH KATAKANA LETTER E
-32D3 ; [.38D8.0020.0013] # CIRCLED KATAKANA E
-3308 ; [.38D8.0020.001C][.18D4.0020.001C][.38DA.0020.001C][.18D4.0020.001C] # SQUARE EEKAA
-3307 ; [.38D8.0020.001C][.38E1.0020.001C][.38DC.0020.001C][.18D4.0020.001C][.38E8.0020.001C][.0000.0037.001C] # SQUARE ESUKUUDO
-3049 ; [.38D9.0020.000D] # HIRAGANA LETTER SMALL O
-304A ; [.38D9.0020.000E] # HIRAGANA LETTER O
-30A9 ; [.38D9.0020.000F] # KATAKANA LETTER SMALL O
-FF6B ; [.38D9.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL O
-30AA ; [.38D9.0020.0011] # KATAKANA LETTER O
-FF75 ; [.38D9.0020.0012] # HALFWIDTH KATAKANA LETTER O
-32D4 ; [.38D9.0020.0013] # CIRCLED KATAKANA O
-330A ; [.38D9.0020.001C][.18D4.0020.001C][.38F5.0020.001C] # SQUARE OOMU
-3309 ; [.38D9.0020.001C][.3905.0020.001C][.38E1.0020.001C] # SQUARE ONSU
-3095 ; [.38DA.0020.000D] # HIRAGANA LETTER SMALL KA
-304B ; [.38DA.0020.000E] # HIRAGANA LETTER KA
-30F5 ; [.38DA.0020.000F] # KATAKANA LETTER SMALL KA
-30AB ; [.38DA.0020.0011] # KATAKANA LETTER KA
-FF76 ; [.38DA.0020.0012] # HALFWIDTH KATAKANA LETTER KA
-32D5 ; [.38DA.0020.0013] # CIRCLED KATAKANA KA
-304C ; [.38DA.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GA
-30AC ; [.38DA.0020.0011][.0000.0037.0002] # KATAKANA LETTER GA
-330B ; [.38DA.0020.001C][.38D5.0020.001C][.38FD.0020.001C] # SQUARE KAIRI
-330C ; [.38DA.0020.001C][.38FC.0020.001C][.38E6.0020.001C][.38E8.0020.001C] # SQUARE KARATTO
-330D ; [.38DA.0020.001C][.3900.0020.001C][.38FD.0020.001C][.18D4.0020.001C] # SQUARE KARORII
-330E ; [.38DA.0020.001C][.0000.0037.001C][.3900.0020.001C][.3905.0020.001C] # SQUARE GARON
-330F ; [.38DA.0020.001C][.0000.0037.001C][.3905.0020.001C][.38F3.0020.001C] # SQUARE GANMA
-304D ; [.38DB.0020.000E] # HIRAGANA LETTER KI
-30AD ; [.38DB.0020.0011] # KATAKANA LETTER KI
-FF77 ; [.38DB.0020.0012] # HALFWIDTH KATAKANA LETTER KI
-32D6 ; [.38DB.0020.0013] # CIRCLED KATAKANA KI
-304E ; [.38DB.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GI
-30AE ; [.38DB.0020.0011][.0000.0037.0002] # KATAKANA LETTER GI
-3310 ; [.38DB.0020.001C][.0000.0037.001C][.38DA.0020.001C][.0000.0037.001C] # SQUARE GIGA
-3311 ; [.38DB.0020.001C][.0000.0037.001C][.38EA.0020.001C][.18D4.0020.001C] # SQUARE GINII
-3312 ; [.38DB.0020.001C][.38F9.0020.001C][.38FD.0020.001C][.18D4.0020.001C] # SQUARE KYURII
-3313 ; [.38DB.0020.001C][.0000.0037.001C][.38FE.0020.001C][.38E4.0020.001C][.0000.0037.001C][.18D4.0020.001C] # SQUARE GIRUDAA
-3314 ; [.38DB.0020.001C][.3900.0020.001C] # SQUARE KIRO
-3315 ; [.38DB.0020.001C][.3900.0020.001C][.38DC.0020.001C][.0000.0037.001C][.38FC.0020.001C][.38F5.0020.001C] # SQUARE KIROGURAMU
-3316 ; [.38DB.0020.001C][.3900.0020.001C][.38F6.0020.001C][.18D4.0020.001C][.38E8.0020.001C][.38FE.0020.001C] # SQUARE KIROMEETORU
-3317 ; [.38DB.0020.001C][.3900.0020.001C][.3901.0020.001C][.38E6.0020.001C][.38E8.0020.001C] # SQUARE KIROWATTO
-304F ; [.38DC.0020.000E] # HIRAGANA LETTER KU
-31F0 ; [.38DC.0020.000F] # KATAKANA LETTER SMALL KU
-30AF ; [.38DC.0020.0011] # KATAKANA LETTER KU
-FF78 ; [.38DC.0020.0012] # HALFWIDTH KATAKANA LETTER KU
-32D7 ; [.38DC.0020.0013] # CIRCLED KATAKANA KU
-3050 ; [.38DC.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GU
-30B0 ; [.38DC.0020.0011][.0000.0037.0002] # KATAKANA LETTER GU
-3318 ; [.38DC.0020.001C][.0000.0037.001C][.38FC.0020.001C][.38F5.0020.001C] # SQUARE GURAMU
-3319 ; [.38DC.0020.001C][.0000.0037.001C][.38FC.0020.001C][.38F5.0020.001C][.38E8.0020.001C][.3905.0020.001C] # SQUARE GURAMUTON
-331A ; [.38DC.0020.001C][.38FE.0020.001C][.38E2.0020.001C][.0000.0037.001C][.38D5.0020.001C][.3900.0020.001C] # SQUARE KURUZEIRO
-331B ; [.38DC.0020.001C][.3900.0020.001C][.18D4.0020.001C][.38EC.0020.001C] # SQUARE KUROONE
-3096 ; [.38DD.0020.000D] # HIRAGANA LETTER SMALL KE
-3051 ; [.38DD.0020.000E] # HIRAGANA LETTER KE
-30F6 ; [.38DD.0020.000F] # KATAKANA LETTER SMALL KE
-30B1 ; [.38DD.0020.0011] # KATAKANA LETTER KE
-FF79 ; [.38DD.0020.0012] # HALFWIDTH KATAKANA LETTER KE
-32D8 ; [.38DD.0020.0013] # CIRCLED KATAKANA KE
-3052 ; [.38DD.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GE
-30B2 ; [.38DD.0020.0011][.0000.0037.0002] # KATAKANA LETTER GE
-331C ; [.38DD.0020.001C][.18D4.0020.001C][.38E1.0020.001C] # SQUARE KEESU
-3053 ; [.38DE.0020.000E] # HIRAGANA LETTER KO
-30B3 ; [.38DE.0020.0011] # KATAKANA LETTER KO
-FF7A ; [.38DE.0020.0012] # HALFWIDTH KATAKANA LETTER KO
-32D9 ; [.38DE.0020.0013] # CIRCLED KATAKANA KO
-3054 ; [.38DE.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GO
-30B4 ; [.38DE.0020.0011][.0000.0037.0002] # KATAKANA LETTER GO
-331E ; [.38DE.0020.001C][.18D4.0020.001C][.38F2.0020.001C][.0000.0038.001C] # SQUARE KOOPO
-1F201 ; [.38DE.0020.001C][.38DE.0020.001C] # SQUARED KATAKANA KOKO
-30FF ; [.38DE.0020.0016][.38E8.0020.0016] # KATAKANA DIGRAPH KOTO
-331D ; [.38DE.0020.001C][.38FE.0020.001C][.38E9.0020.001C] # SQUARE KORUNA
-3055 ; [.38DF.0020.000E] # HIRAGANA LETTER SA
-30B5 ; [.38DF.0020.0011] # KATAKANA LETTER SA
-FF7B ; [.38DF.0020.0012] # HALFWIDTH KATAKANA LETTER SA
-32DA ; [.38DF.0020.0013] # CIRCLED KATAKANA SA
-1F202 ; [.38DF.0020.001C] # SQUARED KATAKANA SA
-3056 ; [.38DF.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZA
-30B6 ; [.38DF.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZA
-331F ; [.38DF.0020.001C][.38D5.0020.001C][.38DC.0020.001C][.38FE.0020.001C] # SQUARE SAIKURU
-3320 ; [.38DF.0020.001C][.3905.0020.001C][.38E5.0020.001C][.18D4.0020.001C][.38F5.0020.001C] # SQUARE SANTIIMU
-3057 ; [.38E0.0020.000E] # HIRAGANA LETTER SI
-31F1 ; [.38E0.0020.000F] # KATAKANA LETTER SMALL SI
-30B7 ; [.38E0.0020.0011] # KATAKANA LETTER SI
-FF7C ; [.38E0.0020.0012] # HALFWIDTH KATAKANA LETTER SI
-32DB ; [.38E0.0020.0013] # CIRCLED KATAKANA SI
-3058 ; [.38E0.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZI
-30B8 ; [.38E0.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZI
-3006 ; [.38E0.0020.0004][.38F6.0020.0004] # IDEOGRAPHIC CLOSING MARK
-3321 ; [.38E0.0020.001C][.38FD.0020.001C][.3905.0020.001C][.38DC.0020.001C][.0000.0037.001C] # SQUARE SIRINGU
-3059 ; [.38E1.0020.000E] # HIRAGANA LETTER SU
-31F2 ; [.38E1.0020.000F] # KATAKANA LETTER SMALL SU
-30B9 ; [.38E1.0020.0011] # KATAKANA LETTER SU
-FF7D ; [.38E1.0020.0012] # HALFWIDTH KATAKANA LETTER SU
-32DC ; [.38E1.0020.0013] # CIRCLED KATAKANA SU
-305A ; [.38E1.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZU
-30BA ; [.38E1.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZU
-305B ; [.38E2.0020.000E] # HIRAGANA LETTER SE
-30BB ; [.38E2.0020.0011] # KATAKANA LETTER SE
-FF7E ; [.38E2.0020.0012] # HALFWIDTH KATAKANA LETTER SE
-32DD ; [.38E2.0020.0013] # CIRCLED KATAKANA SE
-305C ; [.38E2.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZE
-30BC ; [.38E2.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZE
-3322 ; [.38E2.0020.001C][.3905.0020.001C][.38E5.0020.001C] # SQUARE SENTI
-3323 ; [.38E2.0020.001C][.3905.0020.001C][.38E8.0020.001C] # SQUARE SENTO
-305D ; [.38E3.0020.000E] # HIRAGANA LETTER SO
-30BD ; [.38E3.0020.0011] # KATAKANA LETTER SO
-FF7F ; [.38E3.0020.0012] # HALFWIDTH KATAKANA LETTER SO
-32DE ; [.38E3.0020.0013] # CIRCLED KATAKANA SO
-305E ; [.38E3.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZO
-30BE ; [.38E3.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZO
-305F ; [.38E4.0020.000E] # HIRAGANA LETTER TA
-30BF ; [.38E4.0020.0011] # KATAKANA LETTER TA
-FF80 ; [.38E4.0020.0012] # HALFWIDTH KATAKANA LETTER TA
-32DF ; [.38E4.0020.0013] # CIRCLED KATAKANA TA
-3060 ; [.38E4.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DA
-30C0 ; [.38E4.0020.0011][.0000.0037.0002] # KATAKANA LETTER DA
-3324 ; [.38E4.0020.001C][.0000.0037.001C][.18D4.0020.001C][.38E1.0020.001C] # SQUARE DAASU
-3061 ; [.38E5.0020.000E] # HIRAGANA LETTER TI
-30C1 ; [.38E5.0020.0011] # KATAKANA LETTER TI
-FF81 ; [.38E5.0020.0012] # HALFWIDTH KATAKANA LETTER TI
-32E0 ; [.38E5.0020.0013] # CIRCLED KATAKANA TI
-3062 ; [.38E5.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DI
-30C2 ; [.38E5.0020.0011][.0000.0037.0002] # KATAKANA LETTER DI
-3063 ; [.38E6.0020.000D] # HIRAGANA LETTER SMALL TU
-3064 ; [.38E6.0020.000E] # HIRAGANA LETTER TU
-30C3 ; [.38E6.0020.000F] # KATAKANA LETTER SMALL TU
-FF6F ; [.38E6.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL TU
-30C4 ; [.38E6.0020.0011] # KATAKANA LETTER TU
-FF82 ; [.38E6.0020.0012] # HALFWIDTH KATAKANA LETTER TU
-32E1 ; [.38E6.0020.0013] # CIRCLED KATAKANA TU
-3065 ; [.38E6.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DU
-30C5 ; [.38E6.0020.0011][.0000.0037.0002] # KATAKANA LETTER DU
-3066 ; [.38E7.0020.000E] # HIRAGANA LETTER TE
-30C6 ; [.38E7.0020.0011] # KATAKANA LETTER TE
-FF83 ; [.38E7.0020.0012] # HALFWIDTH KATAKANA LETTER TE
-32E2 ; [.38E7.0020.0013] # CIRCLED KATAKANA TE
-3067 ; [.38E7.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DE
-30C7 ; [.38E7.0020.0011][.0000.0037.0002] # KATAKANA LETTER DE
-1F213 ; [.38E7.0020.001C][.0000.0037.001C] # SQUARED KATAKANA DE
-3325 ; [.38E7.0020.001C][.0000.0037.001C][.38E0.0020.001C] # SQUARE DESI
-3068 ; [.38E8.0020.000E] # HIRAGANA LETTER TO
-31F3 ; [.38E8.0020.000F] # KATAKANA LETTER SMALL TO
-30C8 ; [.38E8.0020.0011] # KATAKANA LETTER TO
-FF84 ; [.38E8.0020.0012] # HALFWIDTH KATAKANA LETTER TO
-32E3 ; [.38E8.0020.0013] # CIRCLED KATAKANA TO
-3069 ; [.38E8.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DO
-30C9 ; [.38E8.0020.0011][.0000.0037.0002] # KATAKANA LETTER DO
-3326 ; [.38E8.0020.001C][.0000.0037.001C][.38FE.0020.001C] # SQUARE DORU
-3327 ; [.38E8.0020.001C][.3905.0020.001C] # SQUARE TON
-306A ; [.38E9.0020.000E] # HIRAGANA LETTER NA
-30CA ; [.38E9.0020.0011] # KATAKANA LETTER NA
-FF85 ; [.38E9.0020.0012] # HALFWIDTH KATAKANA LETTER NA
-32E4 ; [.38E9.0020.0013] # CIRCLED KATAKANA NA
-3328 ; [.38E9.0020.001C][.38ED.0020.001C] # SQUARE NANO
-306B ; [.38EA.0020.000E] # HIRAGANA LETTER NI
-30CB ; [.38EA.0020.0011] # KATAKANA LETTER NI
-FF86 ; [.38EA.0020.0012] # HALFWIDTH KATAKANA LETTER NI
-32E5 ; [.38EA.0020.0013] # CIRCLED KATAKANA NI
-306C ; [.38EB.0020.000E] # HIRAGANA LETTER NU
-31F4 ; [.38EB.0020.000F] # KATAKANA LETTER SMALL NU
-30CC ; [.38EB.0020.0011] # KATAKANA LETTER NU
-FF87 ; [.38EB.0020.0012] # HALFWIDTH KATAKANA LETTER NU
-32E6 ; [.38EB.0020.0013] # CIRCLED KATAKANA NU
-306D ; [.38EC.0020.000E] # HIRAGANA LETTER NE
-30CD ; [.38EC.0020.0011] # KATAKANA LETTER NE
-FF88 ; [.38EC.0020.0012] # HALFWIDTH KATAKANA LETTER NE
-32E7 ; [.38EC.0020.0013] # CIRCLED KATAKANA NE
-306E ; [.38ED.0020.000E] # HIRAGANA LETTER NO
-30CE ; [.38ED.0020.0011] # KATAKANA LETTER NO
-FF89 ; [.38ED.0020.0012] # HALFWIDTH KATAKANA LETTER NO
-32E8 ; [.38ED.0020.0013] # CIRCLED KATAKANA NO
-3329 ; [.38ED.0020.001C][.38E6.0020.001C][.38E8.0020.001C] # SQUARE NOTTO
-306F ; [.38EE.0020.000E] # HIRAGANA LETTER HA
-31F5 ; [.38EE.0020.000F] # KATAKANA LETTER SMALL HA
-30CF ; [.38EE.0020.0011] # KATAKANA LETTER HA
-FF8A ; [.38EE.0020.0012] # HALFWIDTH KATAKANA LETTER HA
-32E9 ; [.38EE.0020.0013] # CIRCLED KATAKANA HA
-3070 ; [.38EE.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BA
-30D0 ; [.38EE.0020.0011][.0000.0037.0002] # KATAKANA LETTER BA
-3071 ; [.38EE.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PA
-30D1 ; [.38EE.0020.0011][.0000.0038.0002] # KATAKANA LETTER PA
-332B ; [.38EE.0020.001C][.0000.0038.001C][.18D4.0020.001C][.38E2.0020.001C][.3905.0020.001C][.38E8.0020.001C] # SQUARE PAASENTO
-332C ; [.38EE.0020.001C][.0000.0038.001C][.18D4.0020.001C][.38E6.0020.001C] # SQUARE PAATU
-332D ; [.38EE.0020.001C][.0000.0037.001C][.18D4.0020.001C][.38FF.0020.001C][.38FE.0020.001C] # SQUARE BAARERU
-332A ; [.38EE.0020.001C][.38D5.0020.001C][.38E6.0020.001C] # SQUARE HAITU
-3072 ; [.38EF.0020.000E] # HIRAGANA LETTER HI
-31F6 ; [.38EF.0020.000F] # KATAKANA LETTER SMALL HI
-30D2 ; [.38EF.0020.0011] # KATAKANA LETTER HI
-FF8B ; [.38EF.0020.0012] # HALFWIDTH KATAKANA LETTER HI
-32EA ; [.38EF.0020.0013] # CIRCLED KATAKANA HI
-3073 ; [.38EF.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BI
-30D3 ; [.38EF.0020.0011][.0000.0037.0002] # KATAKANA LETTER BI
-3074 ; [.38EF.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PI
-30D4 ; [.38EF.0020.0011][.0000.0038.0002] # KATAKANA LETTER PI
-332E ; [.38EF.0020.001C][.0000.0038.001C][.38D4.0020.001C][.38E1.0020.001C][.38E8.0020.001C][.38FE.0020.001C] # SQUARE PIASUTORU
-332F ; [.38EF.0020.001C][.0000.0038.001C][.38DC.0020.001C][.38FE.0020.001C] # SQUARE PIKURU
-3330 ; [.38EF.0020.001C][.0000.0038.001C][.38DE.0020.001C] # SQUARE PIKO
-3331 ; [.38EF.0020.001C][.0000.0037.001C][.38FE.0020.001C] # SQUARE BIRU
-3075 ; [.38F0.0020.000E] # HIRAGANA LETTER HU
-31F7 ; [.38F0.0020.000F] # KATAKANA LETTER SMALL HU
-30D5 ; [.38F0.0020.0011] # KATAKANA LETTER HU
-FF8C ; [.38F0.0020.0012] # HALFWIDTH KATAKANA LETTER HU
-32EB ; [.38F0.0020.0013] # CIRCLED KATAKANA HU
-3076 ; [.38F0.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BU
-30D6 ; [.38F0.0020.0011][.0000.0037.0002] # KATAKANA LETTER BU
-3077 ; [.38F0.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PU
-30D7 ; [.38F0.0020.0011][.0000.0038.0002] # KATAKANA LETTER PU
-3332 ; [.38F0.0020.001C][.38D4.0020.001C][.38FC.0020.001C][.38E6.0020.001C][.38E8.0020.001C][.0000.0037.001C] # SQUARE HUARADDO
-3333 ; [.38F0.0020.001C][.38D5.0020.001C][.18D4.0020.001C][.38E8.0020.001C] # SQUARE HUIITO
-3334 ; [.38F0.0020.001C][.0000.0037.001C][.38E6.0020.001C][.38E0.0020.001C][.38D8.0020.001C][.38FE.0020.001C] # SQUARE BUSSYERU
-3335 ; [.38F0.0020.001C][.38FC.0020.001C][.3905.0020.001C] # SQUARE HURAN
-3078 ; [.38F1.0020.000E] # HIRAGANA LETTER HE
-31F8 ; [.38F1.0020.000F] # KATAKANA LETTER SMALL HE
-30D8 ; [.38F1.0020.0011] # KATAKANA LETTER HE
-FF8D ; [.38F1.0020.0012] # HALFWIDTH KATAKANA LETTER HE
-32EC ; [.38F1.0020.0013] # CIRCLED KATAKANA HE
-3079 ; [.38F1.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BE
-30D9 ; [.38F1.0020.0011][.0000.0037.0002] # KATAKANA LETTER BE
-307A ; [.38F1.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PE
-30DA ; [.38F1.0020.0011][.0000.0038.0002] # KATAKANA LETTER PE
-333B ; [.38F1.0020.001C][.0000.0038.001C][.18D4.0020.001C][.38E0.0020.001C][.0000.0037.001C] # SQUARE PEEZI
-333C ; [.38F1.0020.001C][.0000.0037.001C][.18D4.0020.001C][.38E4.0020.001C] # SQUARE BEETA
-3336 ; [.38F1.0020.001C][.38DC.0020.001C][.38E4.0020.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE HEKUTAARU
-3337 ; [.38F1.0020.001C][.0000.0038.001C][.38E3.0020.001C] # SQUARE PESO
-3338 ; [.38F1.0020.001C][.0000.0038.001C][.38EA.0020.001C][.38EF.0020.001C] # SQUARE PENIHI
-3339 ; [.38F1.0020.001C][.38FE.0020.001C][.38E6.0020.001C] # SQUARE HERUTU
-333A ; [.38F1.0020.001C][.0000.0038.001C][.3905.0020.001C][.38E1.0020.001C] # SQUARE PENSU
-307B ; [.38F2.0020.000E] # HIRAGANA LETTER HO
-31F9 ; [.38F2.0020.000F] # KATAKANA LETTER SMALL HO
-30DB ; [.38F2.0020.0011] # KATAKANA LETTER HO
-FF8E ; [.38F2.0020.0012] # HALFWIDTH KATAKANA LETTER HO
-32ED ; [.38F2.0020.0013] # CIRCLED KATAKANA HO
-307C ; [.38F2.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BO
-30DC ; [.38F2.0020.0011][.0000.0037.0002] # KATAKANA LETTER BO
-307D ; [.38F2.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PO
-30DD ; [.38F2.0020.0011][.0000.0038.0002] # KATAKANA LETTER PO
-3341 ; [.38F2.0020.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE HOORU
-3342 ; [.38F2.0020.001C][.18D4.0020.001C][.3905.0020.001C] # SQUARE HOON
-333D ; [.38F2.0020.001C][.0000.0038.001C][.38D5.0020.001C][.3905.0020.001C][.38E8.0020.001C] # SQUARE POINTO
-1F200 ; [.38F2.0020.001C][.38DA.0020.001C] # SQUARE HIRAGANA HOKA
-333E ; [.38F2.0020.001C][.0000.0037.001C][.38FE.0020.001C][.38E8.0020.001C] # SQUARE BORUTO
-333F ; [.38F2.0020.001C][.3905.0020.001C] # SQUARE HON
-3340 ; [.38F2.0020.001C][.0000.0038.001C][.3905.0020.001C][.38E8.0020.001C][.0000.0037.001C] # SQUARE PONDO
-307E ; [.38F3.0020.000E] # HIRAGANA LETTER MA
-30DE ; [.38F3.0020.0011] # KATAKANA LETTER MA
-FF8F ; [.38F3.0020.0012] # HALFWIDTH KATAKANA LETTER MA
-32EE ; [.38F3.0020.0013] # CIRCLED KATAKANA MA
-3343 ; [.38F3.0020.001C][.38D5.0020.001C][.38DC.0020.001C][.3900.0020.001C] # SQUARE MAIKURO
-3344 ; [.38F3.0020.001C][.38D5.0020.001C][.38FE.0020.001C] # SQUARE MAIRU
-303C ; [.38F3.0020.0004][.38E1.0020.0004] # MASU MARK
-3345 ; [.38F3.0020.001C][.38E6.0020.001C][.38EE.0020.001C] # SQUARE MAHHA
-3346 ; [.38F3.0020.001C][.38FE.0020.001C][.38DC.0020.001C] # SQUARE MARUKU
-3347 ; [.38F3.0020.001C][.3905.0020.001C][.38E0.0020.001C][.38FB.0020.001C][.3905.0020.001C] # SQUARE MANSYON
-307F ; [.38F4.0020.000E] # HIRAGANA LETTER MI
-30DF ; [.38F4.0020.0011] # KATAKANA LETTER MI
-FF90 ; [.38F4.0020.0012] # HALFWIDTH KATAKANA LETTER MI
-32EF ; [.38F4.0020.0013] # CIRCLED KATAKANA MI
-3348 ; [.38F4.0020.001C][.38DC.0020.001C][.3900.0020.001C][.3905.0020.001C] # SQUARE MIKURON
-3349 ; [.38F4.0020.001C][.38FD.0020.001C] # SQUARE MIRI
-334A ; [.38F4.0020.001C][.38FD.0020.001C][.38EE.0020.001C][.0000.0037.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE MIRIBAARU
-3080 ; [.38F5.0020.000E] # HIRAGANA LETTER MU
-31FA ; [.38F5.0020.000F] # KATAKANA LETTER SMALL MU
-30E0 ; [.38F5.0020.0011] # KATAKANA LETTER MU
-FF91 ; [.38F5.0020.0012] # HALFWIDTH KATAKANA LETTER MU
-32F0 ; [.38F5.0020.0013] # CIRCLED KATAKANA MU
-3081 ; [.38F6.0020.000E] # HIRAGANA LETTER ME
-30E1 ; [.38F6.0020.0011] # KATAKANA LETTER ME
-FF92 ; [.38F6.0020.0012] # HALFWIDTH KATAKANA LETTER ME
-32F1 ; [.38F6.0020.0013] # CIRCLED KATAKANA ME
-334D ; [.38F6.0020.001C][.18D4.0020.001C][.38E8.0020.001C][.38FE.0020.001C] # SQUARE MEETORU
-334B ; [.38F6.0020.001C][.38DA.0020.001C][.0000.0037.001C] # SQUARE MEGA
-334C ; [.38F6.0020.001C][.38DA.0020.001C][.0000.0037.001C][.38E8.0020.001C][.3905.0020.001C] # SQUARE MEGATON
-3082 ; [.38F7.0020.000E] # HIRAGANA LETTER MO
-30E2 ; [.38F7.0020.0011] # KATAKANA LETTER MO
-FF93 ; [.38F7.0020.0012] # HALFWIDTH KATAKANA LETTER MO
-32F2 ; [.38F7.0020.0013] # CIRCLED KATAKANA MO
-3083 ; [.38F8.0020.000D] # HIRAGANA LETTER SMALL YA
-3084 ; [.38F8.0020.000E] # HIRAGANA LETTER YA
-30E3 ; [.38F8.0020.000F] # KATAKANA LETTER SMALL YA
-FF6C ; [.38F8.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YA
-30E4 ; [.38F8.0020.0011] # KATAKANA LETTER YA
-FF94 ; [.38F8.0020.0012] # HALFWIDTH KATAKANA LETTER YA
-32F3 ; [.38F8.0020.0013] # CIRCLED KATAKANA YA
-334E ; [.38F8.0020.001C][.18D4.0020.001C][.38E8.0020.001C][.0000.0037.001C] # SQUARE YAADO
-334F ; [.38F8.0020.001C][.18D4.0020.001C][.38FE.0020.001C] # SQUARE YAARU
-3085 ; [.38F9.0020.000D] # HIRAGANA LETTER SMALL YU
-3086 ; [.38F9.0020.000E] # HIRAGANA LETTER YU
-30E5 ; [.38F9.0020.000F] # KATAKANA LETTER SMALL YU
-FF6D ; [.38F9.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YU
-30E6 ; [.38F9.0020.0011] # KATAKANA LETTER YU
-FF95 ; [.38F9.0020.0012] # HALFWIDTH KATAKANA LETTER YU
-32F4 ; [.38F9.0020.0013] # CIRCLED KATAKANA YU
-3350 ; [.38F9.0020.001C][.38D4.0020.001C][.3905.0020.001C] # SQUARE YUAN
-1B001 ; [.38FA.0020.000E] # HIRAGANA LETTER ARCHAIC YE
-3087 ; [.38FB.0020.000D] # HIRAGANA LETTER SMALL YO
-3088 ; [.38FB.0020.000E] # HIRAGANA LETTER YO
-30E7 ; [.38FB.0020.000F] # KATAKANA LETTER SMALL YO
-FF6E ; [.38FB.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YO
-30E8 ; [.38FB.0020.0011] # KATAKANA LETTER YO
-FF96 ; [.38FB.0020.0012] # HALFWIDTH KATAKANA LETTER YO
-32F5 ; [.38FB.0020.0013] # CIRCLED KATAKANA YO
-309F ; [.38FB.0020.0016][.38FD.0020.0016] # HIRAGANA DIGRAPH YORI
-3089 ; [.38FC.0020.000E] # HIRAGANA LETTER RA
-31FB ; [.38FC.0020.000F] # KATAKANA LETTER SMALL RA
-30E9 ; [.38FC.0020.0011] # KATAKANA LETTER RA
-FF97 ; [.38FC.0020.0012] # HALFWIDTH KATAKANA LETTER RA
-32F6 ; [.38FC.0020.0013] # CIRCLED KATAKANA RA
-308A ; [.38FD.0020.000E] # HIRAGANA LETTER RI
-31FC ; [.38FD.0020.000F] # KATAKANA LETTER SMALL RI
-30EA ; [.38FD.0020.0011] # KATAKANA LETTER RI
-FF98 ; [.38FD.0020.0012] # HALFWIDTH KATAKANA LETTER RI
-32F7 ; [.38FD.0020.0013] # CIRCLED KATAKANA RI
-3351 ; [.38FD.0020.001C][.38E6.0020.001C][.38E8.0020.001C][.38FE.0020.001C] # SQUARE RITTORU
-3352 ; [.38FD.0020.001C][.38FC.0020.001C] # SQUARE RIRA
-308B ; [.38FE.0020.000E] # HIRAGANA LETTER RU
-31FD ; [.38FE.0020.000F] # KATAKANA LETTER SMALL RU
-30EB ; [.38FE.0020.0011] # KATAKANA LETTER RU
-FF99 ; [.38FE.0020.0012] # HALFWIDTH KATAKANA LETTER RU
-32F8 ; [.38FE.0020.0013] # CIRCLED KATAKANA RU
-3354 ; [.38FE.0020.001C][.18D4.0020.001C][.38F0.0020.001C][.0000.0037.001C][.38FE.0020.001C] # SQUARE RUUBURU
-3353 ; [.38FE.0020.001C][.38EF.0020.001C][.0000.0038.001C][.18D4.0020.001C] # SQUARE RUPII
-308C ; [.38FF.0020.000E] # HIRAGANA LETTER RE
-31FE ; [.38FF.0020.000F] # KATAKANA LETTER SMALL RE
-30EC ; [.38FF.0020.0011] # KATAKANA LETTER RE
-FF9A ; [.38FF.0020.0012] # HALFWIDTH KATAKANA LETTER RE
-32F9 ; [.38FF.0020.0013] # CIRCLED KATAKANA RE
-3355 ; [.38FF.0020.001C][.38F5.0020.001C] # SQUARE REMU
-3356 ; [.38FF.0020.001C][.3905.0020.001C][.38E8.0020.001C][.38DD.0020.001C][.0000.0037.001C][.3905.0020.001C] # SQUARE RENTOGEN
-308D ; [.3900.0020.000E] # HIRAGANA LETTER RO
-31FF ; [.3900.0020.000F] # KATAKANA LETTER SMALL RO
-30ED ; [.3900.0020.0011] # KATAKANA LETTER RO
-FF9B ; [.3900.0020.0012] # HALFWIDTH KATAKANA LETTER RO
-32FA ; [.3900.0020.0013] # CIRCLED KATAKANA RO
-308E ; [.3901.0020.000D] # HIRAGANA LETTER SMALL WA
-308F ; [.3901.0020.000E] # HIRAGANA LETTER WA
-30EE ; [.3901.0020.000F] # KATAKANA LETTER SMALL WA
-30EF ; [.3901.0020.0011] # KATAKANA LETTER WA
-FF9C ; [.3901.0020.0012] # HALFWIDTH KATAKANA LETTER WA
-32FB ; [.3901.0020.0013] # CIRCLED KATAKANA WA
-30F7 ; [.3901.0020.0011][.0000.0037.0002] # KATAKANA LETTER VA
-3357 ; [.3901.0020.001C][.38E6.0020.001C][.38E8.0020.001C] # SQUARE WATTO
-3090 ; [.3902.0020.000E] # HIRAGANA LETTER WI
-30F0 ; [.3902.0020.0011] # KATAKANA LETTER WI
-32FC ; [.3902.0020.0013] # CIRCLED KATAKANA WI
-30F8 ; [.3902.0020.0011][.0000.0037.0002] # KATAKANA LETTER VI
-3091 ; [.3903.0020.000E] # HIRAGANA LETTER WE
-30F1 ; [.3903.0020.0011] # KATAKANA LETTER WE
-32FD ; [.3903.0020.0013] # CIRCLED KATAKANA WE
-30F9 ; [.3903.0020.0011][.0000.0037.0002] # KATAKANA LETTER VE
-3092 ; [.3904.0020.000E] # HIRAGANA LETTER WO
-30F2 ; [.3904.0020.0011] # KATAKANA LETTER WO
-FF66 ; [.3904.0020.0012] # HALFWIDTH KATAKANA LETTER WO
-32FE ; [.3904.0020.0013] # CIRCLED KATAKANA WO
-30FA ; [.3904.0020.0011][.0000.0037.0002] # KATAKANA LETTER VO
-3093 ; [.3905.0020.000E] # HIRAGANA LETTER N
-30F3 ; [.3905.0020.0011] # KATAKANA LETTER N
-FF9D ; [.3905.0020.0012] # HALFWIDTH KATAKANA LETTER N
-3105 ; [.3906.0020.0002] # BOPOMOFO LETTER B
-31A0 ; [.3906.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER BU
-3106 ; [.3907.0020.0002] # BOPOMOFO LETTER P
-31B4 ; [.3907.0020.0019] # BOPOMOFO FINAL LETTER P
-3107 ; [.3908.0020.0002] # BOPOMOFO LETTER M
-3108 ; [.3909.0020.0002] # BOPOMOFO LETTER F
-312A ; [.390A.0020.0002] # BOPOMOFO LETTER V
-3109 ; [.390B.0020.0002] # BOPOMOFO LETTER D
-310A ; [.390C.0020.0002] # BOPOMOFO LETTER T
-31B5 ; [.390C.0020.0019] # BOPOMOFO FINAL LETTER T
-310B ; [.390D.0020.0002] # BOPOMOFO LETTER N
-310C ; [.390E.0020.0002] # BOPOMOFO LETTER L
-310D ; [.390F.0020.0002] # BOPOMOFO LETTER G
-31A3 ; [.390F.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER GU
-310E ; [.3910.0020.0002] # BOPOMOFO LETTER K
-31B6 ; [.3910.0020.0019] # BOPOMOFO FINAL LETTER K
-312B ; [.3911.0020.0002] # BOPOMOFO LETTER NG
-31AD ; [.3912.0020.0002] # BOPOMOFO LETTER NGG
-310F ; [.3913.0020.0002] # BOPOMOFO LETTER H
-31B7 ; [.3913.0020.0019] # BOPOMOFO FINAL LETTER H
-3110 ; [.3914.0020.0002] # BOPOMOFO LETTER J
-31A2 ; [.3914.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER JI
-3111 ; [.3915.0020.0002] # BOPOMOFO LETTER Q
-3112 ; [.3916.0020.0002] # BOPOMOFO LETTER X
-312C ; [.3917.0020.0002] # BOPOMOFO LETTER GN
-3113 ; [.3918.0020.0002] # BOPOMOFO LETTER ZH
-3114 ; [.3919.0020.0002] # BOPOMOFO LETTER CH
-3115 ; [.391A.0020.0002] # BOPOMOFO LETTER SH
-3116 ; [.391B.0020.0002] # BOPOMOFO LETTER R
-3117 ; [.391C.0020.0002] # BOPOMOFO LETTER Z
-31A1 ; [.391C.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER ZI
-3118 ; [.391D.0020.0002] # BOPOMOFO LETTER C
-3119 ; [.391E.0020.0002] # BOPOMOFO LETTER S
-31B8 ; [.391F.0020.0002] # BOPOMOFO LETTER GH
-31B9 ; [.3920.0020.0002] # BOPOMOFO LETTER LH
-31BA ; [.3921.0020.0002] # BOPOMOFO LETTER ZY
-311A ; [.3922.0020.0002] # BOPOMOFO LETTER A
-31A9 ; [.3922.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER ANN
-311B ; [.3923.0020.0002] # BOPOMOFO LETTER O
-31A7 ; [.3923.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER ONN
-31A6 ; [.3924.0020.0002] # BOPOMOFO LETTER OO
-311C ; [.3925.0020.0002] # BOPOMOFO LETTER E
-311D ; [.3926.0020.0002] # BOPOMOFO LETTER EH
-31A4 ; [.3927.0020.0002] # BOPOMOFO LETTER EE
-31A5 ; [.3927.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER ENN
-311E ; [.3928.0020.0002] # BOPOMOFO LETTER AI
-31AE ; [.3928.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER AINN
-311F ; [.3929.0020.0002] # BOPOMOFO LETTER EI
-3120 ; [.392A.0020.0002] # BOPOMOFO LETTER AU
-31AF ; [.392A.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER AUNN
-3121 ; [.392B.0020.0002] # BOPOMOFO LETTER OU
-3122 ; [.392C.0020.0002] # BOPOMOFO LETTER AN
-3123 ; [.392D.0020.0002] # BOPOMOFO LETTER EN
-3124 ; [.392E.0020.0002] # BOPOMOFO LETTER ANG
-31B2 ; [.392F.0020.0002] # BOPOMOFO LETTER ONG
-3125 ; [.3930.0020.0002] # BOPOMOFO LETTER ENG
-31B0 ; [.3931.0020.0002] # BOPOMOFO LETTER AM
-31B1 ; [.3932.0020.0002] # BOPOMOFO LETTER OM
-31AC ; [.3933.0020.0002] # BOPOMOFO LETTER IM
-3126 ; [.3934.0020.0002] # BOPOMOFO LETTER ER
-3127 ; [.3935.0020.0002] # BOPOMOFO LETTER I
-31AA ; [.3935.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER INN
-31B3 ; [.3935.0020.0016][.0000.0109.0016] # BOPOMOFO LETTER INNN
-3128 ; [.3936.0020.0002] # BOPOMOFO LETTER U
-31AB ; [.3936.0020.0004][.0000.0109.0004] # BOPOMOFO LETTER UNN
-31A8 ; [.3936.0020.0004][.0000.010A.0004] # BOPOMOFO LETTER IR
-3129 ; [.3937.0020.0002] # BOPOMOFO LETTER IU
-312D ; [.3938.0020.0002] # BOPOMOFO LETTER IH
-A000 ; [.3939.0020.0002] # YI SYLLABLE IT
-A001 ; [.393A.0020.0002] # YI SYLLABLE IX
-A002 ; [.393B.0020.0002] # YI SYLLABLE I
-A003 ; [.393C.0020.0002] # YI SYLLABLE IP
-A004 ; [.393D.0020.0002] # YI SYLLABLE IET
-A005 ; [.393E.0020.0002] # YI SYLLABLE IEX
-A006 ; [.393F.0020.0002] # YI SYLLABLE IE
-A007 ; [.3940.0020.0002] # YI SYLLABLE IEP
-A008 ; [.3941.0020.0002] # YI SYLLABLE AT
-A009 ; [.3942.0020.0002] # YI SYLLABLE AX
-A00A ; [.3943.0020.0002] # YI SYLLABLE A
-A00B ; [.3944.0020.0002] # YI SYLLABLE AP
-A00C ; [.3945.0020.0002] # YI SYLLABLE UOX
-A00D ; [.3946.0020.0002] # YI SYLLABLE UO
-A00E ; [.3947.0020.0002] # YI SYLLABLE UOP
-A00F ; [.3948.0020.0002] # YI SYLLABLE OT
-A010 ; [.3949.0020.0002] # YI SYLLABLE OX
-A011 ; [.394A.0020.0002] # YI SYLLABLE O
-A012 ; [.394B.0020.0002] # YI SYLLABLE OP
-A013 ; [.394C.0020.0002] # YI SYLLABLE EX
-A014 ; [.394D.0020.0002] # YI SYLLABLE E
-A015 ; [.394E.0020.0002] # YI SYLLABLE WU
-A016 ; [.394F.0020.0002] # YI SYLLABLE BIT
-A017 ; [.3950.0020.0002] # YI SYLLABLE BIX
-A018 ; [.3951.0020.0002] # YI SYLLABLE BI
-A019 ; [.3952.0020.0002] # YI SYLLABLE BIP
-A01A ; [.3953.0020.0002] # YI SYLLABLE BIET
-A01B ; [.3954.0020.0002] # YI SYLLABLE BIEX
-A01C ; [.3955.0020.0002] # YI SYLLABLE BIE
-A01D ; [.3956.0020.0002] # YI SYLLABLE BIEP
-A01E ; [.3957.0020.0002] # YI SYLLABLE BAT
-A01F ; [.3958.0020.0002] # YI SYLLABLE BAX
-A020 ; [.3959.0020.0002] # YI SYLLABLE BA
-A021 ; [.395A.0020.0002] # YI SYLLABLE BAP
-A022 ; [.395B.0020.0002] # YI SYLLABLE BUOX
-A023 ; [.395C.0020.0002] # YI SYLLABLE BUO
-A024 ; [.395D.0020.0002] # YI SYLLABLE BUOP
-A025 ; [.395E.0020.0002] # YI SYLLABLE BOT
-A026 ; [.395F.0020.0002] # YI SYLLABLE BOX
-A027 ; [.3960.0020.0002] # YI SYLLABLE BO
-A028 ; [.3961.0020.0002] # YI SYLLABLE BOP
-A029 ; [.3962.0020.0002] # YI SYLLABLE BEX
-A02A ; [.3963.0020.0002] # YI SYLLABLE BE
-A02B ; [.3964.0020.0002] # YI SYLLABLE BEP
-A02C ; [.3965.0020.0002] # YI SYLLABLE BUT
-A02D ; [.3966.0020.0002] # YI SYLLABLE BUX
-A02E ; [.3967.0020.0002] # YI SYLLABLE BU
-A02F ; [.3968.0020.0002] # YI SYLLABLE BUP
-A030 ; [.3969.0020.0002] # YI SYLLABLE BURX
-A031 ; [.396A.0020.0002] # YI SYLLABLE BUR
-A032 ; [.396B.0020.0002] # YI SYLLABLE BYT
-A033 ; [.396C.0020.0002] # YI SYLLABLE BYX
-A034 ; [.396D.0020.0002] # YI SYLLABLE BY
-A035 ; [.396E.0020.0002] # YI SYLLABLE BYP
-A036 ; [.396F.0020.0002] # YI SYLLABLE BYRX
-A037 ; [.3970.0020.0002] # YI SYLLABLE BYR
-A038 ; [.3971.0020.0002] # YI SYLLABLE PIT
-A039 ; [.3972.0020.0002] # YI SYLLABLE PIX
-A03A ; [.3973.0020.0002] # YI SYLLABLE PI
-A03B ; [.3974.0020.0002] # YI SYLLABLE PIP
-A03C ; [.3975.0020.0002] # YI SYLLABLE PIEX
-A03D ; [.3976.0020.0002] # YI SYLLABLE PIE
-A03E ; [.3977.0020.0002] # YI SYLLABLE PIEP
-A03F ; [.3978.0020.0002] # YI SYLLABLE PAT
-A040 ; [.3979.0020.0002] # YI SYLLABLE PAX
-A041 ; [.397A.0020.0002] # YI SYLLABLE PA
-A042 ; [.397B.0020.0002] # YI SYLLABLE PAP
-A043 ; [.397C.0020.0002] # YI SYLLABLE PUOX
-A044 ; [.397D.0020.0002] # YI SYLLABLE PUO
-A045 ; [.397E.0020.0002] # YI SYLLABLE PUOP
-A046 ; [.397F.0020.0002] # YI SYLLABLE POT
-A047 ; [.3980.0020.0002] # YI SYLLABLE POX
-A048 ; [.3981.0020.0002] # YI SYLLABLE PO
-A049 ; [.3982.0020.0002] # YI SYLLABLE POP
-A04A ; [.3983.0020.0002] # YI SYLLABLE PUT
-A04B ; [.3984.0020.0002] # YI SYLLABLE PUX
-A04C ; [.3985.0020.0002] # YI SYLLABLE PU
-A04D ; [.3986.0020.0002] # YI SYLLABLE PUP
-A04E ; [.3987.0020.0002] # YI SYLLABLE PURX
-A04F ; [.3988.0020.0002] # YI SYLLABLE PUR
-A050 ; [.3989.0020.0002] # YI SYLLABLE PYT
-A051 ; [.398A.0020.0002] # YI SYLLABLE PYX
-A052 ; [.398B.0020.0002] # YI SYLLABLE PY
-A053 ; [.398C.0020.0002] # YI SYLLABLE PYP
-A054 ; [.398D.0020.0002] # YI SYLLABLE PYRX
-A055 ; [.398E.0020.0002] # YI SYLLABLE PYR
-A056 ; [.398F.0020.0002] # YI SYLLABLE BBIT
-A057 ; [.3990.0020.0002] # YI SYLLABLE BBIX
-A058 ; [.3991.0020.0002] # YI SYLLABLE BBI
-A059 ; [.3992.0020.0002] # YI SYLLABLE BBIP
-A05A ; [.3993.0020.0002] # YI SYLLABLE BBIET
-A05B ; [.3994.0020.0002] # YI SYLLABLE BBIEX
-A05C ; [.3995.0020.0002] # YI SYLLABLE BBIE
-A05D ; [.3996.0020.0002] # YI SYLLABLE BBIEP
-A05E ; [.3997.0020.0002] # YI SYLLABLE BBAT
-A05F ; [.3998.0020.0002] # YI SYLLABLE BBAX
-A060 ; [.3999.0020.0002] # YI SYLLABLE BBA
-A061 ; [.399A.0020.0002] # YI SYLLABLE BBAP
-A062 ; [.399B.0020.0002] # YI SYLLABLE BBUOX
-A063 ; [.399C.0020.0002] # YI SYLLABLE BBUO
-A064 ; [.399D.0020.0002] # YI SYLLABLE BBUOP
-A065 ; [.399E.0020.0002] # YI SYLLABLE BBOT
-A066 ; [.399F.0020.0002] # YI SYLLABLE BBOX
-A067 ; [.39A0.0020.0002] # YI SYLLABLE BBO
-A068 ; [.39A1.0020.0002] # YI SYLLABLE BBOP
-A069 ; [.39A2.0020.0002] # YI SYLLABLE BBEX
-A06A ; [.39A3.0020.0002] # YI SYLLABLE BBE
-A06B ; [.39A4.0020.0002] # YI SYLLABLE BBEP
-A06C ; [.39A5.0020.0002] # YI SYLLABLE BBUT
-A06D ; [.39A6.0020.0002] # YI SYLLABLE BBUX
-A06E ; [.39A7.0020.0002] # YI SYLLABLE BBU
-A06F ; [.39A8.0020.0002] # YI SYLLABLE BBUP
-A070 ; [.39A9.0020.0002] # YI SYLLABLE BBURX
-A071 ; [.39AA.0020.0002] # YI SYLLABLE BBUR
-A072 ; [.39AB.0020.0002] # YI SYLLABLE BBYT
-A073 ; [.39AC.0020.0002] # YI SYLLABLE BBYX
-A074 ; [.39AD.0020.0002] # YI SYLLABLE BBY
-A075 ; [.39AE.0020.0002] # YI SYLLABLE BBYP
-A076 ; [.39AF.0020.0002] # YI SYLLABLE NBIT
-A077 ; [.39B0.0020.0002] # YI SYLLABLE NBIX
-A078 ; [.39B1.0020.0002] # YI SYLLABLE NBI
-A079 ; [.39B2.0020.0002] # YI SYLLABLE NBIP
-A07A ; [.39B3.0020.0002] # YI SYLLABLE NBIEX
-A07B ; [.39B4.0020.0002] # YI SYLLABLE NBIE
-A07C ; [.39B5.0020.0002] # YI SYLLABLE NBIEP
-A07D ; [.39B6.0020.0002] # YI SYLLABLE NBAT
-A07E ; [.39B7.0020.0002] # YI SYLLABLE NBAX
-A07F ; [.39B8.0020.0002] # YI SYLLABLE NBA
-A080 ; [.39B9.0020.0002] # YI SYLLABLE NBAP
-A081 ; [.39BA.0020.0002] # YI SYLLABLE NBOT
-A082 ; [.39BB.0020.0002] # YI SYLLABLE NBOX
-A083 ; [.39BC.0020.0002] # YI SYLLABLE NBO
-A084 ; [.39BD.0020.0002] # YI SYLLABLE NBOP
-A085 ; [.39BE.0020.0002] # YI SYLLABLE NBUT
-A086 ; [.39BF.0020.0002] # YI SYLLABLE NBUX
-A087 ; [.39C0.0020.0002] # YI SYLLABLE NBU
-A088 ; [.39C1.0020.0002] # YI SYLLABLE NBUP
-A089 ; [.39C2.0020.0002] # YI SYLLABLE NBURX
-A08A ; [.39C3.0020.0002] # YI SYLLABLE NBUR
-A08B ; [.39C4.0020.0002] # YI SYLLABLE NBYT
-A08C ; [.39C5.0020.0002] # YI SYLLABLE NBYX
-A08D ; [.39C6.0020.0002] # YI SYLLABLE NBY
-A08E ; [.39C7.0020.0002] # YI SYLLABLE NBYP
-A08F ; [.39C8.0020.0002] # YI SYLLABLE NBYRX
-A090 ; [.39C9.0020.0002] # YI SYLLABLE NBYR
-A091 ; [.39CA.0020.0002] # YI SYLLABLE HMIT
-A092 ; [.39CB.0020.0002] # YI SYLLABLE HMIX
-A093 ; [.39CC.0020.0002] # YI SYLLABLE HMI
-A094 ; [.39CD.0020.0002] # YI SYLLABLE HMIP
-A095 ; [.39CE.0020.0002] # YI SYLLABLE HMIEX
-A096 ; [.39CF.0020.0002] # YI SYLLABLE HMIE
-A097 ; [.39D0.0020.0002] # YI SYLLABLE HMIEP
-A098 ; [.39D1.0020.0002] # YI SYLLABLE HMAT
-A099 ; [.39D2.0020.0002] # YI SYLLABLE HMAX
-A09A ; [.39D3.0020.0002] # YI SYLLABLE HMA
-A09B ; [.39D4.0020.0002] # YI SYLLABLE HMAP
-A09C ; [.39D5.0020.0002] # YI SYLLABLE HMUOX
-A09D ; [.39D6.0020.0002] # YI SYLLABLE HMUO
-A09E ; [.39D7.0020.0002] # YI SYLLABLE HMUOP
-A09F ; [.39D8.0020.0002] # YI SYLLABLE HMOT
-A0A0 ; [.39D9.0020.0002] # YI SYLLABLE HMOX
-A0A1 ; [.39DA.0020.0002] # YI SYLLABLE HMO
-A0A2 ; [.39DB.0020.0002] # YI SYLLABLE HMOP
-A0A3 ; [.39DC.0020.0002] # YI SYLLABLE HMUT
-A0A4 ; [.39DD.0020.0002] # YI SYLLABLE HMUX
-A0A5 ; [.39DE.0020.0002] # YI SYLLABLE HMU
-A0A6 ; [.39DF.0020.0002] # YI SYLLABLE HMUP
-A0A7 ; [.39E0.0020.0002] # YI SYLLABLE HMURX
-A0A8 ; [.39E1.0020.0002] # YI SYLLABLE HMUR
-A0A9 ; [.39E2.0020.0002] # YI SYLLABLE HMYX
-A0AA ; [.39E3.0020.0002] # YI SYLLABLE HMY
-A0AB ; [.39E4.0020.0002] # YI SYLLABLE HMYP
-A0AC ; [.39E5.0020.0002] # YI SYLLABLE HMYRX
-A0AD ; [.39E6.0020.0002] # YI SYLLABLE HMYR
-A0AE ; [.39E7.0020.0002] # YI SYLLABLE MIT
-A0AF ; [.39E8.0020.0002] # YI SYLLABLE MIX
-A0B0 ; [.39E9.0020.0002] # YI SYLLABLE MI
-A0B1 ; [.39EA.0020.0002] # YI SYLLABLE MIP
-A0B2 ; [.39EB.0020.0002] # YI SYLLABLE MIEX
-A0B3 ; [.39EC.0020.0002] # YI SYLLABLE MIE
-A0B4 ; [.39ED.0020.0002] # YI SYLLABLE MIEP
-A0B5 ; [.39EE.0020.0002] # YI SYLLABLE MAT
-A0B6 ; [.39EF.0020.0002] # YI SYLLABLE MAX
-A0B7 ; [.39F0.0020.0002] # YI SYLLABLE MA
-A0B8 ; [.39F1.0020.0002] # YI SYLLABLE MAP
-A0B9 ; [.39F2.0020.0002] # YI SYLLABLE MUOT
-A0BA ; [.39F3.0020.0002] # YI SYLLABLE MUOX
-A0BB ; [.39F4.0020.0002] # YI SYLLABLE MUO
-A0BC ; [.39F5.0020.0002] # YI SYLLABLE MUOP
-A0BD ; [.39F6.0020.0002] # YI SYLLABLE MOT
-A0BE ; [.39F7.0020.0002] # YI SYLLABLE MOX
-A0BF ; [.39F8.0020.0002] # YI SYLLABLE MO
-A0C0 ; [.39F9.0020.0002] # YI SYLLABLE MOP
-A0C1 ; [.39FA.0020.0002] # YI SYLLABLE MEX
-A0C2 ; [.39FB.0020.0002] # YI SYLLABLE ME
-A0C3 ; [.39FC.0020.0002] # YI SYLLABLE MUT
-A0C4 ; [.39FD.0020.0002] # YI SYLLABLE MUX
-A0C5 ; [.39FE.0020.0002] # YI SYLLABLE MU
-A0C6 ; [.39FF.0020.0002] # YI SYLLABLE MUP
-A0C7 ; [.3A00.0020.0002] # YI SYLLABLE MURX
-A0C8 ; [.3A01.0020.0002] # YI SYLLABLE MUR
-A0C9 ; [.3A02.0020.0002] # YI SYLLABLE MYT
-A0CA ; [.3A03.0020.0002] # YI SYLLABLE MYX
-A0CB ; [.3A04.0020.0002] # YI SYLLABLE MY
-A0CC ; [.3A05.0020.0002] # YI SYLLABLE MYP
-A0CD ; [.3A06.0020.0002] # YI SYLLABLE FIT
-A0CE ; [.3A07.0020.0002] # YI SYLLABLE FIX
-A0CF ; [.3A08.0020.0002] # YI SYLLABLE FI
-A0D0 ; [.3A09.0020.0002] # YI SYLLABLE FIP
-A0D1 ; [.3A0A.0020.0002] # YI SYLLABLE FAT
-A0D2 ; [.3A0B.0020.0002] # YI SYLLABLE FAX
-A0D3 ; [.3A0C.0020.0002] # YI SYLLABLE FA
-A0D4 ; [.3A0D.0020.0002] # YI SYLLABLE FAP
-A0D5 ; [.3A0E.0020.0002] # YI SYLLABLE FOX
-A0D6 ; [.3A0F.0020.0002] # YI SYLLABLE FO
-A0D7 ; [.3A10.0020.0002] # YI SYLLABLE FOP
-A0D8 ; [.3A11.0020.0002] # YI SYLLABLE FUT
-A0D9 ; [.3A12.0020.0002] # YI SYLLABLE FUX
-A0DA ; [.3A13.0020.0002] # YI SYLLABLE FU
-A0DB ; [.3A14.0020.0002] # YI SYLLABLE FUP
-A0DC ; [.3A15.0020.0002] # YI SYLLABLE FURX
-A0DD ; [.3A16.0020.0002] # YI SYLLABLE FUR
-A0DE ; [.3A17.0020.0002] # YI SYLLABLE FYT
-A0DF ; [.3A18.0020.0002] # YI SYLLABLE FYX
-A0E0 ; [.3A19.0020.0002] # YI SYLLABLE FY
-A0E1 ; [.3A1A.0020.0002] # YI SYLLABLE FYP
-A0E2 ; [.3A1B.0020.0002] # YI SYLLABLE VIT
-A0E3 ; [.3A1C.0020.0002] # YI SYLLABLE VIX
-A0E4 ; [.3A1D.0020.0002] # YI SYLLABLE VI
-A0E5 ; [.3A1E.0020.0002] # YI SYLLABLE VIP
-A0E6 ; [.3A1F.0020.0002] # YI SYLLABLE VIET
-A0E7 ; [.3A20.0020.0002] # YI SYLLABLE VIEX
-A0E8 ; [.3A21.0020.0002] # YI SYLLABLE VIE
-A0E9 ; [.3A22.0020.0002] # YI SYLLABLE VIEP
-A0EA ; [.3A23.0020.0002] # YI SYLLABLE VAT
-A0EB ; [.3A24.0020.0002] # YI SYLLABLE VAX
-A0EC ; [.3A25.0020.0002] # YI SYLLABLE VA
-A0ED ; [.3A26.0020.0002] # YI SYLLABLE VAP
-A0EE ; [.3A27.0020.0002] # YI SYLLABLE VOT
-A0EF ; [.3A28.0020.0002] # YI SYLLABLE VOX
-A0F0 ; [.3A29.0020.0002] # YI SYLLABLE VO
-A0F1 ; [.3A2A.0020.0002] # YI SYLLABLE VOP
-A0F2 ; [.3A2B.0020.0002] # YI SYLLABLE VEX
-A0F3 ; [.3A2C.0020.0002] # YI SYLLABLE VEP
-A0F4 ; [.3A2D.0020.0002] # YI SYLLABLE VUT
-A0F5 ; [.3A2E.0020.0002] # YI SYLLABLE VUX
-A0F6 ; [.3A2F.0020.0002] # YI SYLLABLE VU
-A0F7 ; [.3A30.0020.0002] # YI SYLLABLE VUP
-A0F8 ; [.3A31.0020.0002] # YI SYLLABLE VURX
-A0F9 ; [.3A32.0020.0002] # YI SYLLABLE VUR
-A0FA ; [.3A33.0020.0002] # YI SYLLABLE VYT
-A0FB ; [.3A34.0020.0002] # YI SYLLABLE VYX
-A0FC ; [.3A35.0020.0002] # YI SYLLABLE VY
-A0FD ; [.3A36.0020.0002] # YI SYLLABLE VYP
-A0FE ; [.3A37.0020.0002] # YI SYLLABLE VYRX
-A0FF ; [.3A38.0020.0002] # YI SYLLABLE VYR
-A100 ; [.3A39.0020.0002] # YI SYLLABLE DIT
-A101 ; [.3A3A.0020.0002] # YI SYLLABLE DIX
-A102 ; [.3A3B.0020.0002] # YI SYLLABLE DI
-A103 ; [.3A3C.0020.0002] # YI SYLLABLE DIP
-A104 ; [.3A3D.0020.0002] # YI SYLLABLE DIEX
-A105 ; [.3A3E.0020.0002] # YI SYLLABLE DIE
-A106 ; [.3A3F.0020.0002] # YI SYLLABLE DIEP
-A107 ; [.3A40.0020.0002] # YI SYLLABLE DAT
-A108 ; [.3A41.0020.0002] # YI SYLLABLE DAX
-A109 ; [.3A42.0020.0002] # YI SYLLABLE DA
-A10A ; [.3A43.0020.0002] # YI SYLLABLE DAP
-A10B ; [.3A44.0020.0002] # YI SYLLABLE DUOX
-A10C ; [.3A45.0020.0002] # YI SYLLABLE DUO
-A10D ; [.3A46.0020.0002] # YI SYLLABLE DOT
-A10E ; [.3A47.0020.0002] # YI SYLLABLE DOX
-A10F ; [.3A48.0020.0002] # YI SYLLABLE DO
-A110 ; [.3A49.0020.0002] # YI SYLLABLE DOP
-A111 ; [.3A4A.0020.0002] # YI SYLLABLE DEX
-A112 ; [.3A4B.0020.0002] # YI SYLLABLE DE
-A113 ; [.3A4C.0020.0002] # YI SYLLABLE DEP
-A114 ; [.3A4D.0020.0002] # YI SYLLABLE DUT
-A115 ; [.3A4E.0020.0002] # YI SYLLABLE DUX
-A116 ; [.3A4F.0020.0002] # YI SYLLABLE DU
-A117 ; [.3A50.0020.0002] # YI SYLLABLE DUP
-A118 ; [.3A51.0020.0002] # YI SYLLABLE DURX
-A119 ; [.3A52.0020.0002] # YI SYLLABLE DUR
-A11A ; [.3A53.0020.0002] # YI SYLLABLE TIT
-A11B ; [.3A54.0020.0002] # YI SYLLABLE TIX
-A11C ; [.3A55.0020.0002] # YI SYLLABLE TI
-A11D ; [.3A56.0020.0002] # YI SYLLABLE TIP
-A11E ; [.3A57.0020.0002] # YI SYLLABLE TIEX
-A11F ; [.3A58.0020.0002] # YI SYLLABLE TIE
-A120 ; [.3A59.0020.0002] # YI SYLLABLE TIEP
-A121 ; [.3A5A.0020.0002] # YI SYLLABLE TAT
-A122 ; [.3A5B.0020.0002] # YI SYLLABLE TAX
-A123 ; [.3A5C.0020.0002] # YI SYLLABLE TA
-A124 ; [.3A5D.0020.0002] # YI SYLLABLE TAP
-A125 ; [.3A5E.0020.0002] # YI SYLLABLE TUOT
-A126 ; [.3A5F.0020.0002] # YI SYLLABLE TUOX
-A127 ; [.3A60.0020.0002] # YI SYLLABLE TUO
-A128 ; [.3A61.0020.0002] # YI SYLLABLE TUOP
-A129 ; [.3A62.0020.0002] # YI SYLLABLE TOT
-A12A ; [.3A63.0020.0002] # YI SYLLABLE TOX
-A12B ; [.3A64.0020.0002] # YI SYLLABLE TO
-A12C ; [.3A65.0020.0002] # YI SYLLABLE TOP
-A12D ; [.3A66.0020.0002] # YI SYLLABLE TEX
-A12E ; [.3A67.0020.0002] # YI SYLLABLE TE
-A12F ; [.3A68.0020.0002] # YI SYLLABLE TEP
-A130 ; [.3A69.0020.0002] # YI SYLLABLE TUT
-A131 ; [.3A6A.0020.0002] # YI SYLLABLE TUX
-A132 ; [.3A6B.0020.0002] # YI SYLLABLE TU
-A133 ; [.3A6C.0020.0002] # YI SYLLABLE TUP
-A134 ; [.3A6D.0020.0002] # YI SYLLABLE TURX
-A135 ; [.3A6E.0020.0002] # YI SYLLABLE TUR
-A136 ; [.3A6F.0020.0002] # YI SYLLABLE DDIT
-A137 ; [.3A70.0020.0002] # YI SYLLABLE DDIX
-A138 ; [.3A71.0020.0002] # YI SYLLABLE DDI
-A139 ; [.3A72.0020.0002] # YI SYLLABLE DDIP
-A13A ; [.3A73.0020.0002] # YI SYLLABLE DDIEX
-A13B ; [.3A74.0020.0002] # YI SYLLABLE DDIE
-A13C ; [.3A75.0020.0002] # YI SYLLABLE DDIEP
-A13D ; [.3A76.0020.0002] # YI SYLLABLE DDAT
-A13E ; [.3A77.0020.0002] # YI SYLLABLE DDAX
-A13F ; [.3A78.0020.0002] # YI SYLLABLE DDA
-A140 ; [.3A79.0020.0002] # YI SYLLABLE DDAP
-A141 ; [.3A7A.0020.0002] # YI SYLLABLE DDUOX
-A142 ; [.3A7B.0020.0002] # YI SYLLABLE DDUO
-A143 ; [.3A7C.0020.0002] # YI SYLLABLE DDUOP
-A144 ; [.3A7D.0020.0002] # YI SYLLABLE DDOT
-A145 ; [.3A7E.0020.0002] # YI SYLLABLE DDOX
-A146 ; [.3A7F.0020.0002] # YI SYLLABLE DDO
-A147 ; [.3A80.0020.0002] # YI SYLLABLE DDOP
-A148 ; [.3A81.0020.0002] # YI SYLLABLE DDEX
-A149 ; [.3A82.0020.0002] # YI SYLLABLE DDE
-A14A ; [.3A83.0020.0002] # YI SYLLABLE DDEP
-A14B ; [.3A84.0020.0002] # YI SYLLABLE DDUT
-A14C ; [.3A85.0020.0002] # YI SYLLABLE DDUX
-A14D ; [.3A86.0020.0002] # YI SYLLABLE DDU
-A14E ; [.3A87.0020.0002] # YI SYLLABLE DDUP
-A14F ; [.3A88.0020.0002] # YI SYLLABLE DDURX
-A150 ; [.3A89.0020.0002] # YI SYLLABLE DDUR
-A151 ; [.3A8A.0020.0002] # YI SYLLABLE NDIT
-A152 ; [.3A8B.0020.0002] # YI SYLLABLE NDIX
-A153 ; [.3A8C.0020.0002] # YI SYLLABLE NDI
-A154 ; [.3A8D.0020.0002] # YI SYLLABLE NDIP
-A155 ; [.3A8E.0020.0002] # YI SYLLABLE NDIEX
-A156 ; [.3A8F.0020.0002] # YI SYLLABLE NDIE
-A157 ; [.3A90.0020.0002] # YI SYLLABLE NDAT
-A158 ; [.3A91.0020.0002] # YI SYLLABLE NDAX
-A159 ; [.3A92.0020.0002] # YI SYLLABLE NDA
-A15A ; [.3A93.0020.0002] # YI SYLLABLE NDAP
-A15B ; [.3A94.0020.0002] # YI SYLLABLE NDOT
-A15C ; [.3A95.0020.0002] # YI SYLLABLE NDOX
-A15D ; [.3A96.0020.0002] # YI SYLLABLE NDO
-A15E ; [.3A97.0020.0002] # YI SYLLABLE NDOP
-A15F ; [.3A98.0020.0002] # YI SYLLABLE NDEX
-A160 ; [.3A99.0020.0002] # YI SYLLABLE NDE
-A161 ; [.3A9A.0020.0002] # YI SYLLABLE NDEP
-A162 ; [.3A9B.0020.0002] # YI SYLLABLE NDUT
-A163 ; [.3A9C.0020.0002] # YI SYLLABLE NDUX
-A164 ; [.3A9D.0020.0002] # YI SYLLABLE NDU
-A165 ; [.3A9E.0020.0002] # YI SYLLABLE NDUP
-A166 ; [.3A9F.0020.0002] # YI SYLLABLE NDURX
-A167 ; [.3AA0.0020.0002] # YI SYLLABLE NDUR
-A168 ; [.3AA1.0020.0002] # YI SYLLABLE HNIT
-A169 ; [.3AA2.0020.0002] # YI SYLLABLE HNIX
-A16A ; [.3AA3.0020.0002] # YI SYLLABLE HNI
-A16B ; [.3AA4.0020.0002] # YI SYLLABLE HNIP
-A16C ; [.3AA5.0020.0002] # YI SYLLABLE HNIET
-A16D ; [.3AA6.0020.0002] # YI SYLLABLE HNIEX
-A16E ; [.3AA7.0020.0002] # YI SYLLABLE HNIE
-A16F ; [.3AA8.0020.0002] # YI SYLLABLE HNIEP
-A170 ; [.3AA9.0020.0002] # YI SYLLABLE HNAT
-A171 ; [.3AAA.0020.0002] # YI SYLLABLE HNAX
-A172 ; [.3AAB.0020.0002] # YI SYLLABLE HNA
-A173 ; [.3AAC.0020.0002] # YI SYLLABLE HNAP
-A174 ; [.3AAD.0020.0002] # YI SYLLABLE HNUOX
-A175 ; [.3AAE.0020.0002] # YI SYLLABLE HNUO
-A176 ; [.3AAF.0020.0002] # YI SYLLABLE HNOT
-A177 ; [.3AB0.0020.0002] # YI SYLLABLE HNOX
-A178 ; [.3AB1.0020.0002] # YI SYLLABLE HNOP
-A179 ; [.3AB2.0020.0002] # YI SYLLABLE HNEX
-A17A ; [.3AB3.0020.0002] # YI SYLLABLE HNE
-A17B ; [.3AB4.0020.0002] # YI SYLLABLE HNEP
-A17C ; [.3AB5.0020.0002] # YI SYLLABLE HNUT
-A17D ; [.3AB6.0020.0002] # YI SYLLABLE NIT
-A17E ; [.3AB7.0020.0002] # YI SYLLABLE NIX
-A17F ; [.3AB8.0020.0002] # YI SYLLABLE NI
-A180 ; [.3AB9.0020.0002] # YI SYLLABLE NIP
-A181 ; [.3ABA.0020.0002] # YI SYLLABLE NIEX
-A182 ; [.3ABB.0020.0002] # YI SYLLABLE NIE
-A183 ; [.3ABC.0020.0002] # YI SYLLABLE NIEP
-A184 ; [.3ABD.0020.0002] # YI SYLLABLE NAX
-A185 ; [.3ABE.0020.0002] # YI SYLLABLE NA
-A186 ; [.3ABF.0020.0002] # YI SYLLABLE NAP
-A187 ; [.3AC0.0020.0002] # YI SYLLABLE NUOX
-A188 ; [.3AC1.0020.0002] # YI SYLLABLE NUO
-A189 ; [.3AC2.0020.0002] # YI SYLLABLE NUOP
-A18A ; [.3AC3.0020.0002] # YI SYLLABLE NOT
-A18B ; [.3AC4.0020.0002] # YI SYLLABLE NOX
-A18C ; [.3AC5.0020.0002] # YI SYLLABLE NO
-A18D ; [.3AC6.0020.0002] # YI SYLLABLE NOP
-A18E ; [.3AC7.0020.0002] # YI SYLLABLE NEX
-A18F ; [.3AC8.0020.0002] # YI SYLLABLE NE
-A190 ; [.3AC9.0020.0002] # YI SYLLABLE NEP
-A191 ; [.3ACA.0020.0002] # YI SYLLABLE NUT
-A192 ; [.3ACB.0020.0002] # YI SYLLABLE NUX
-A193 ; [.3ACC.0020.0002] # YI SYLLABLE NU
-A194 ; [.3ACD.0020.0002] # YI SYLLABLE NUP
-A195 ; [.3ACE.0020.0002] # YI SYLLABLE NURX
-A196 ; [.3ACF.0020.0002] # YI SYLLABLE NUR
-A197 ; [.3AD0.0020.0002] # YI SYLLABLE HLIT
-A198 ; [.3AD1.0020.0002] # YI SYLLABLE HLIX
-A199 ; [.3AD2.0020.0002] # YI SYLLABLE HLI
-A19A ; [.3AD3.0020.0002] # YI SYLLABLE HLIP
-A19B ; [.3AD4.0020.0002] # YI SYLLABLE HLIEX
-A19C ; [.3AD5.0020.0002] # YI SYLLABLE HLIE
-A19D ; [.3AD6.0020.0002] # YI SYLLABLE HLIEP
-A19E ; [.3AD7.0020.0002] # YI SYLLABLE HLAT
-A19F ; [.3AD8.0020.0002] # YI SYLLABLE HLAX
-A1A0 ; [.3AD9.0020.0002] # YI SYLLABLE HLA
-A1A1 ; [.3ADA.0020.0002] # YI SYLLABLE HLAP
-A1A2 ; [.3ADB.0020.0002] # YI SYLLABLE HLUOX
-A1A3 ; [.3ADC.0020.0002] # YI SYLLABLE HLUO
-A1A4 ; [.3ADD.0020.0002] # YI SYLLABLE HLUOP
-A1A5 ; [.3ADE.0020.0002] # YI SYLLABLE HLOX
-A1A6 ; [.3ADF.0020.0002] # YI SYLLABLE HLO
-A1A7 ; [.3AE0.0020.0002] # YI SYLLABLE HLOP
-A1A8 ; [.3AE1.0020.0002] # YI SYLLABLE HLEX
-A1A9 ; [.3AE2.0020.0002] # YI SYLLABLE HLE
-A1AA ; [.3AE3.0020.0002] # YI SYLLABLE HLEP
-A1AB ; [.3AE4.0020.0002] # YI SYLLABLE HLUT
-A1AC ; [.3AE5.0020.0002] # YI SYLLABLE HLUX
-A1AD ; [.3AE6.0020.0002] # YI SYLLABLE HLU
-A1AE ; [.3AE7.0020.0002] # YI SYLLABLE HLUP
-A1AF ; [.3AE8.0020.0002] # YI SYLLABLE HLURX
-A1B0 ; [.3AE9.0020.0002] # YI SYLLABLE HLUR
-A1B1 ; [.3AEA.0020.0002] # YI SYLLABLE HLYT
-A1B2 ; [.3AEB.0020.0002] # YI SYLLABLE HLYX
-A1B3 ; [.3AEC.0020.0002] # YI SYLLABLE HLY
-A1B4 ; [.3AED.0020.0002] # YI SYLLABLE HLYP
-A1B5 ; [.3AEE.0020.0002] # YI SYLLABLE HLYRX
-A1B6 ; [.3AEF.0020.0002] # YI SYLLABLE HLYR
-A1B7 ; [.3AF0.0020.0002] # YI SYLLABLE LIT
-A1B8 ; [.3AF1.0020.0002] # YI SYLLABLE LIX
-A1B9 ; [.3AF2.0020.0002] # YI SYLLABLE LI
-A1BA ; [.3AF3.0020.0002] # YI SYLLABLE LIP
-A1BB ; [.3AF4.0020.0002] # YI SYLLABLE LIET
-A1BC ; [.3AF5.0020.0002] # YI SYLLABLE LIEX
-A1BD ; [.3AF6.0020.0002] # YI SYLLABLE LIE
-A1BE ; [.3AF7.0020.0002] # YI SYLLABLE LIEP
-A1BF ; [.3AF8.0020.0002] # YI SYLLABLE LAT
-A1C0 ; [.3AF9.0020.0002] # YI SYLLABLE LAX
-A1C1 ; [.3AFA.0020.0002] # YI SYLLABLE LA
-A1C2 ; [.3AFB.0020.0002] # YI SYLLABLE LAP
-A1C3 ; [.3AFC.0020.0002] # YI SYLLABLE LUOT
-A1C4 ; [.3AFD.0020.0002] # YI SYLLABLE LUOX
-A1C5 ; [.3AFE.0020.0002] # YI SYLLABLE LUO
-A1C6 ; [.3AFF.0020.0002] # YI SYLLABLE LUOP
-A1C7 ; [.3B00.0020.0002] # YI SYLLABLE LOT
-A1C8 ; [.3B01.0020.0002] # YI SYLLABLE LOX
-A1C9 ; [.3B02.0020.0002] # YI SYLLABLE LO
-A1CA ; [.3B03.0020.0002] # YI SYLLABLE LOP
-A1CB ; [.3B04.0020.0002] # YI SYLLABLE LEX
-A1CC ; [.3B05.0020.0002] # YI SYLLABLE LE
-A1CD ; [.3B06.0020.0002] # YI SYLLABLE LEP
-A1CE ; [.3B07.0020.0002] # YI SYLLABLE LUT
-A1CF ; [.3B08.0020.0002] # YI SYLLABLE LUX
-A1D0 ; [.3B09.0020.0002] # YI SYLLABLE LU
-A1D1 ; [.3B0A.0020.0002] # YI SYLLABLE LUP
-A1D2 ; [.3B0B.0020.0002] # YI SYLLABLE LURX
-A1D3 ; [.3B0C.0020.0002] # YI SYLLABLE LUR
-A1D4 ; [.3B0D.0020.0002] # YI SYLLABLE LYT
-A1D5 ; [.3B0E.0020.0002] # YI SYLLABLE LYX
-A1D6 ; [.3B0F.0020.0002] # YI SYLLABLE LY
-A1D7 ; [.3B10.0020.0002] # YI SYLLABLE LYP
-A1D8 ; [.3B11.0020.0002] # YI SYLLABLE LYRX
-A1D9 ; [.3B12.0020.0002] # YI SYLLABLE LYR
-A1DA ; [.3B13.0020.0002] # YI SYLLABLE GIT
-A1DB ; [.3B14.0020.0002] # YI SYLLABLE GIX
-A1DC ; [.3B15.0020.0002] # YI SYLLABLE GI
-A1DD ; [.3B16.0020.0002] # YI SYLLABLE GIP
-A1DE ; [.3B17.0020.0002] # YI SYLLABLE GIET
-A1DF ; [.3B18.0020.0002] # YI SYLLABLE GIEX
-A1E0 ; [.3B19.0020.0002] # YI SYLLABLE GIE
-A1E1 ; [.3B1A.0020.0002] # YI SYLLABLE GIEP
-A1E2 ; [.3B1B.0020.0002] # YI SYLLABLE GAT
-A1E3 ; [.3B1C.0020.0002] # YI SYLLABLE GAX
-A1E4 ; [.3B1D.0020.0002] # YI SYLLABLE GA
-A1E5 ; [.3B1E.0020.0002] # YI SYLLABLE GAP
-A1E6 ; [.3B1F.0020.0002] # YI SYLLABLE GUOT
-A1E7 ; [.3B20.0020.0002] # YI SYLLABLE GUOX
-A1E8 ; [.3B21.0020.0002] # YI SYLLABLE GUO
-A1E9 ; [.3B22.0020.0002] # YI SYLLABLE GUOP
-A1EA ; [.3B23.0020.0002] # YI SYLLABLE GOT
-A1EB ; [.3B24.0020.0002] # YI SYLLABLE GOX
-A1EC ; [.3B25.0020.0002] # YI SYLLABLE GO
-A1ED ; [.3B26.0020.0002] # YI SYLLABLE GOP
-A1EE ; [.3B27.0020.0002] # YI SYLLABLE GET
-A1EF ; [.3B28.0020.0002] # YI SYLLABLE GEX
-A1F0 ; [.3B29.0020.0002] # YI SYLLABLE GE
-A1F1 ; [.3B2A.0020.0002] # YI SYLLABLE GEP
-A1F2 ; [.3B2B.0020.0002] # YI SYLLABLE GUT
-A1F3 ; [.3B2C.0020.0002] # YI SYLLABLE GUX
-A1F4 ; [.3B2D.0020.0002] # YI SYLLABLE GU
-A1F5 ; [.3B2E.0020.0002] # YI SYLLABLE GUP
-A1F6 ; [.3B2F.0020.0002] # YI SYLLABLE GURX
-A1F7 ; [.3B30.0020.0002] # YI SYLLABLE GUR
-A1F8 ; [.3B31.0020.0002] # YI SYLLABLE KIT
-A1F9 ; [.3B32.0020.0002] # YI SYLLABLE KIX
-A1FA ; [.3B33.0020.0002] # YI SYLLABLE KI
-A1FB ; [.3B34.0020.0002] # YI SYLLABLE KIP
-A1FC ; [.3B35.0020.0002] # YI SYLLABLE KIEX
-A1FD ; [.3B36.0020.0002] # YI SYLLABLE KIE
-A1FE ; [.3B37.0020.0002] # YI SYLLABLE KIEP
-A1FF ; [.3B38.0020.0002] # YI SYLLABLE KAT
-A200 ; [.3B39.0020.0002] # YI SYLLABLE KAX
-A201 ; [.3B3A.0020.0002] # YI SYLLABLE KA
-A202 ; [.3B3B.0020.0002] # YI SYLLABLE KAP
-A203 ; [.3B3C.0020.0002] # YI SYLLABLE KUOX
-A204 ; [.3B3D.0020.0002] # YI SYLLABLE KUO
-A205 ; [.3B3E.0020.0002] # YI SYLLABLE KUOP
-A206 ; [.3B3F.0020.0002] # YI SYLLABLE KOT
-A207 ; [.3B40.0020.0002] # YI SYLLABLE KOX
-A208 ; [.3B41.0020.0002] # YI SYLLABLE KO
-A209 ; [.3B42.0020.0002] # YI SYLLABLE KOP
-A20A ; [.3B43.0020.0002] # YI SYLLABLE KET
-A20B ; [.3B44.0020.0002] # YI SYLLABLE KEX
-A20C ; [.3B45.0020.0002] # YI SYLLABLE KE
-A20D ; [.3B46.0020.0002] # YI SYLLABLE KEP
-A20E ; [.3B47.0020.0002] # YI SYLLABLE KUT
-A20F ; [.3B48.0020.0002] # YI SYLLABLE KUX
-A210 ; [.3B49.0020.0002] # YI SYLLABLE KU
-A211 ; [.3B4A.0020.0002] # YI SYLLABLE KUP
-A212 ; [.3B4B.0020.0002] # YI SYLLABLE KURX
-A213 ; [.3B4C.0020.0002] # YI SYLLABLE KUR
-A214 ; [.3B4D.0020.0002] # YI SYLLABLE GGIT
-A215 ; [.3B4E.0020.0002] # YI SYLLABLE GGIX
-A216 ; [.3B4F.0020.0002] # YI SYLLABLE GGI
-A217 ; [.3B50.0020.0002] # YI SYLLABLE GGIEX
-A218 ; [.3B51.0020.0002] # YI SYLLABLE GGIE
-A219 ; [.3B52.0020.0002] # YI SYLLABLE GGIEP
-A21A ; [.3B53.0020.0002] # YI SYLLABLE GGAT
-A21B ; [.3B54.0020.0002] # YI SYLLABLE GGAX
-A21C ; [.3B55.0020.0002] # YI SYLLABLE GGA
-A21D ; [.3B56.0020.0002] # YI SYLLABLE GGAP
-A21E ; [.3B57.0020.0002] # YI SYLLABLE GGUOT
-A21F ; [.3B58.0020.0002] # YI SYLLABLE GGUOX
-A220 ; [.3B59.0020.0002] # YI SYLLABLE GGUO
-A221 ; [.3B5A.0020.0002] # YI SYLLABLE GGUOP
-A222 ; [.3B5B.0020.0002] # YI SYLLABLE GGOT
-A223 ; [.3B5C.0020.0002] # YI SYLLABLE GGOX
-A224 ; [.3B5D.0020.0002] # YI SYLLABLE GGO
-A225 ; [.3B5E.0020.0002] # YI SYLLABLE GGOP
-A226 ; [.3B5F.0020.0002] # YI SYLLABLE GGET
-A227 ; [.3B60.0020.0002] # YI SYLLABLE GGEX
-A228 ; [.3B61.0020.0002] # YI SYLLABLE GGE
-A229 ; [.3B62.0020.0002] # YI SYLLABLE GGEP
-A22A ; [.3B63.0020.0002] # YI SYLLABLE GGUT
-A22B ; [.3B64.0020.0002] # YI SYLLABLE GGUX
-A22C ; [.3B65.0020.0002] # YI SYLLABLE GGU
-A22D ; [.3B66.0020.0002] # YI SYLLABLE GGUP
-A22E ; [.3B67.0020.0002] # YI SYLLABLE GGURX
-A22F ; [.3B68.0020.0002] # YI SYLLABLE GGUR
-A230 ; [.3B69.0020.0002] # YI SYLLABLE MGIEX
-A231 ; [.3B6A.0020.0002] # YI SYLLABLE MGIE
-A232 ; [.3B6B.0020.0002] # YI SYLLABLE MGAT
-A233 ; [.3B6C.0020.0002] # YI SYLLABLE MGAX
-A234 ; [.3B6D.0020.0002] # YI SYLLABLE MGA
-A235 ; [.3B6E.0020.0002] # YI SYLLABLE MGAP
-A236 ; [.3B6F.0020.0002] # YI SYLLABLE MGUOX
-A237 ; [.3B70.0020.0002] # YI SYLLABLE MGUO
-A238 ; [.3B71.0020.0002] # YI SYLLABLE MGUOP
-A239 ; [.3B72.0020.0002] # YI SYLLABLE MGOT
-A23A ; [.3B73.0020.0002] # YI SYLLABLE MGOX
-A23B ; [.3B74.0020.0002] # YI SYLLABLE MGO
-A23C ; [.3B75.0020.0002] # YI SYLLABLE MGOP
-A23D ; [.3B76.0020.0002] # YI SYLLABLE MGEX
-A23E ; [.3B77.0020.0002] # YI SYLLABLE MGE
-A23F ; [.3B78.0020.0002] # YI SYLLABLE MGEP
-A240 ; [.3B79.0020.0002] # YI SYLLABLE MGUT
-A241 ; [.3B7A.0020.0002] # YI SYLLABLE MGUX
-A242 ; [.3B7B.0020.0002] # YI SYLLABLE MGU
-A243 ; [.3B7C.0020.0002] # YI SYLLABLE MGUP
-A244 ; [.3B7D.0020.0002] # YI SYLLABLE MGURX
-A245 ; [.3B7E.0020.0002] # YI SYLLABLE MGUR
-A246 ; [.3B7F.0020.0002] # YI SYLLABLE HXIT
-A247 ; [.3B80.0020.0002] # YI SYLLABLE HXIX
-A248 ; [.3B81.0020.0002] # YI SYLLABLE HXI
-A249 ; [.3B82.0020.0002] # YI SYLLABLE HXIP
-A24A ; [.3B83.0020.0002] # YI SYLLABLE HXIET
-A24B ; [.3B84.0020.0002] # YI SYLLABLE HXIEX
-A24C ; [.3B85.0020.0002] # YI SYLLABLE HXIE
-A24D ; [.3B86.0020.0002] # YI SYLLABLE HXIEP
-A24E ; [.3B87.0020.0002] # YI SYLLABLE HXAT
-A24F ; [.3B88.0020.0002] # YI SYLLABLE HXAX
-A250 ; [.3B89.0020.0002] # YI SYLLABLE HXA
-A251 ; [.3B8A.0020.0002] # YI SYLLABLE HXAP
-A252 ; [.3B8B.0020.0002] # YI SYLLABLE HXUOT
-A253 ; [.3B8C.0020.0002] # YI SYLLABLE HXUOX
-A254 ; [.3B8D.0020.0002] # YI SYLLABLE HXUO
-A255 ; [.3B8E.0020.0002] # YI SYLLABLE HXUOP
-A256 ; [.3B8F.0020.0002] # YI SYLLABLE HXOT
-A257 ; [.3B90.0020.0002] # YI SYLLABLE HXOX
-A258 ; [.3B91.0020.0002] # YI SYLLABLE HXO
-A259 ; [.3B92.0020.0002] # YI SYLLABLE HXOP
-A25A ; [.3B93.0020.0002] # YI SYLLABLE HXEX
-A25B ; [.3B94.0020.0002] # YI SYLLABLE HXE
-A25C ; [.3B95.0020.0002] # YI SYLLABLE HXEP
-A25D ; [.3B96.0020.0002] # YI SYLLABLE NGIEX
-A25E ; [.3B97.0020.0002] # YI SYLLABLE NGIE
-A25F ; [.3B98.0020.0002] # YI SYLLABLE NGIEP
-A260 ; [.3B99.0020.0002] # YI SYLLABLE NGAT
-A261 ; [.3B9A.0020.0002] # YI SYLLABLE NGAX
-A262 ; [.3B9B.0020.0002] # YI SYLLABLE NGA
-A263 ; [.3B9C.0020.0002] # YI SYLLABLE NGAP
-A264 ; [.3B9D.0020.0002] # YI SYLLABLE NGUOT
-A265 ; [.3B9E.0020.0002] # YI SYLLABLE NGUOX
-A266 ; [.3B9F.0020.0002] # YI SYLLABLE NGUO
-A267 ; [.3BA0.0020.0002] # YI SYLLABLE NGOT
-A268 ; [.3BA1.0020.0002] # YI SYLLABLE NGOX
-A269 ; [.3BA2.0020.0002] # YI SYLLABLE NGO
-A26A ; [.3BA3.0020.0002] # YI SYLLABLE NGOP
-A26B ; [.3BA4.0020.0002] # YI SYLLABLE NGEX
-A26C ; [.3BA5.0020.0002] # YI SYLLABLE NGE
-A26D ; [.3BA6.0020.0002] # YI SYLLABLE NGEP
-A26E ; [.3BA7.0020.0002] # YI SYLLABLE HIT
-A26F ; [.3BA8.0020.0002] # YI SYLLABLE HIEX
-A270 ; [.3BA9.0020.0002] # YI SYLLABLE HIE
-A271 ; [.3BAA.0020.0002] # YI SYLLABLE HAT
-A272 ; [.3BAB.0020.0002] # YI SYLLABLE HAX
-A273 ; [.3BAC.0020.0002] # YI SYLLABLE HA
-A274 ; [.3BAD.0020.0002] # YI SYLLABLE HAP
-A275 ; [.3BAE.0020.0002] # YI SYLLABLE HUOT
-A276 ; [.3BAF.0020.0002] # YI SYLLABLE HUOX
-A277 ; [.3BB0.0020.0002] # YI SYLLABLE HUO
-A278 ; [.3BB1.0020.0002] # YI SYLLABLE HUOP
-A279 ; [.3BB2.0020.0002] # YI SYLLABLE HOT
-A27A ; [.3BB3.0020.0002] # YI SYLLABLE HOX
-A27B ; [.3BB4.0020.0002] # YI SYLLABLE HO
-A27C ; [.3BB5.0020.0002] # YI SYLLABLE HOP
-A27D ; [.3BB6.0020.0002] # YI SYLLABLE HEX
-A27E ; [.3BB7.0020.0002] # YI SYLLABLE HE
-A27F ; [.3BB8.0020.0002] # YI SYLLABLE HEP
-A280 ; [.3BB9.0020.0002] # YI SYLLABLE WAT
-A281 ; [.3BBA.0020.0002] # YI SYLLABLE WAX
-A282 ; [.3BBB.0020.0002] # YI SYLLABLE WA
-A283 ; [.3BBC.0020.0002] # YI SYLLABLE WAP
-A284 ; [.3BBD.0020.0002] # YI SYLLABLE WUOX
-A285 ; [.3BBE.0020.0002] # YI SYLLABLE WUO
-A286 ; [.3BBF.0020.0002] # YI SYLLABLE WUOP
-A287 ; [.3BC0.0020.0002] # YI SYLLABLE WOX
-A288 ; [.3BC1.0020.0002] # YI SYLLABLE WO
-A289 ; [.3BC2.0020.0002] # YI SYLLABLE WOP
-A28A ; [.3BC3.0020.0002] # YI SYLLABLE WEX
-A28B ; [.3BC4.0020.0002] # YI SYLLABLE WE
-A28C ; [.3BC5.0020.0002] # YI SYLLABLE WEP
-A28D ; [.3BC6.0020.0002] # YI SYLLABLE ZIT
-A28E ; [.3BC7.0020.0002] # YI SYLLABLE ZIX
-A28F ; [.3BC8.0020.0002] # YI SYLLABLE ZI
-A290 ; [.3BC9.0020.0002] # YI SYLLABLE ZIP
-A291 ; [.3BCA.0020.0002] # YI SYLLABLE ZIEX
-A292 ; [.3BCB.0020.0002] # YI SYLLABLE ZIE
-A293 ; [.3BCC.0020.0002] # YI SYLLABLE ZIEP
-A294 ; [.3BCD.0020.0002] # YI SYLLABLE ZAT
-A295 ; [.3BCE.0020.0002] # YI SYLLABLE ZAX
-A296 ; [.3BCF.0020.0002] # YI SYLLABLE ZA
-A297 ; [.3BD0.0020.0002] # YI SYLLABLE ZAP
-A298 ; [.3BD1.0020.0002] # YI SYLLABLE ZUOX
-A299 ; [.3BD2.0020.0002] # YI SYLLABLE ZUO
-A29A ; [.3BD3.0020.0002] # YI SYLLABLE ZUOP
-A29B ; [.3BD4.0020.0002] # YI SYLLABLE ZOT
-A29C ; [.3BD5.0020.0002] # YI SYLLABLE ZOX
-A29D ; [.3BD6.0020.0002] # YI SYLLABLE ZO
-A29E ; [.3BD7.0020.0002] # YI SYLLABLE ZOP
-A29F ; [.3BD8.0020.0002] # YI SYLLABLE ZEX
-A2A0 ; [.3BD9.0020.0002] # YI SYLLABLE ZE
-A2A1 ; [.3BDA.0020.0002] # YI SYLLABLE ZEP
-A2A2 ; [.3BDB.0020.0002] # YI SYLLABLE ZUT
-A2A3 ; [.3BDC.0020.0002] # YI SYLLABLE ZUX
-A2A4 ; [.3BDD.0020.0002] # YI SYLLABLE ZU
-A2A5 ; [.3BDE.0020.0002] # YI SYLLABLE ZUP
-A2A6 ; [.3BDF.0020.0002] # YI SYLLABLE ZURX
-A2A7 ; [.3BE0.0020.0002] # YI SYLLABLE ZUR
-A2A8 ; [.3BE1.0020.0002] # YI SYLLABLE ZYT
-A2A9 ; [.3BE2.0020.0002] # YI SYLLABLE ZYX
-A2AA ; [.3BE3.0020.0002] # YI SYLLABLE ZY
-A2AB ; [.3BE4.0020.0002] # YI SYLLABLE ZYP
-A2AC ; [.3BE5.0020.0002] # YI SYLLABLE ZYRX
-A2AD ; [.3BE6.0020.0002] # YI SYLLABLE ZYR
-A2AE ; [.3BE7.0020.0002] # YI SYLLABLE CIT
-A2AF ; [.3BE8.0020.0002] # YI SYLLABLE CIX
-A2B0 ; [.3BE9.0020.0002] # YI SYLLABLE CI
-A2B1 ; [.3BEA.0020.0002] # YI SYLLABLE CIP
-A2B2 ; [.3BEB.0020.0002] # YI SYLLABLE CIET
-A2B3 ; [.3BEC.0020.0002] # YI SYLLABLE CIEX
-A2B4 ; [.3BED.0020.0002] # YI SYLLABLE CIE
-A2B5 ; [.3BEE.0020.0002] # YI SYLLABLE CIEP
-A2B6 ; [.3BEF.0020.0002] # YI SYLLABLE CAT
-A2B7 ; [.3BF0.0020.0002] # YI SYLLABLE CAX
-A2B8 ; [.3BF1.0020.0002] # YI SYLLABLE CA
-A2B9 ; [.3BF2.0020.0002] # YI SYLLABLE CAP
-A2BA ; [.3BF3.0020.0002] # YI SYLLABLE CUOX
-A2BB ; [.3BF4.0020.0002] # YI SYLLABLE CUO
-A2BC ; [.3BF5.0020.0002] # YI SYLLABLE CUOP
-A2BD ; [.3BF6.0020.0002] # YI SYLLABLE COT
-A2BE ; [.3BF7.0020.0002] # YI SYLLABLE COX
-A2BF ; [.3BF8.0020.0002] # YI SYLLABLE CO
-A2C0 ; [.3BF9.0020.0002] # YI SYLLABLE COP
-A2C1 ; [.3BFA.0020.0002] # YI SYLLABLE CEX
-A2C2 ; [.3BFB.0020.0002] # YI SYLLABLE CE
-A2C3 ; [.3BFC.0020.0002] # YI SYLLABLE CEP
-A2C4 ; [.3BFD.0020.0002] # YI SYLLABLE CUT
-A2C5 ; [.3BFE.0020.0002] # YI SYLLABLE CUX
-A2C6 ; [.3BFF.0020.0002] # YI SYLLABLE CU
-A2C7 ; [.3C00.0020.0002] # YI SYLLABLE CUP
-A2C8 ; [.3C01.0020.0002] # YI SYLLABLE CURX
-A2C9 ; [.3C02.0020.0002] # YI SYLLABLE CUR
-A2CA ; [.3C03.0020.0002] # YI SYLLABLE CYT
-A2CB ; [.3C04.0020.0002] # YI SYLLABLE CYX
-A2CC ; [.3C05.0020.0002] # YI SYLLABLE CY
-A2CD ; [.3C06.0020.0002] # YI SYLLABLE CYP
-A2CE ; [.3C07.0020.0002] # YI SYLLABLE CYRX
-A2CF ; [.3C08.0020.0002] # YI SYLLABLE CYR
-A2D0 ; [.3C09.0020.0002] # YI SYLLABLE ZZIT
-A2D1 ; [.3C0A.0020.0002] # YI SYLLABLE ZZIX
-A2D2 ; [.3C0B.0020.0002] # YI SYLLABLE ZZI
-A2D3 ; [.3C0C.0020.0002] # YI SYLLABLE ZZIP
-A2D4 ; [.3C0D.0020.0002] # YI SYLLABLE ZZIET
-A2D5 ; [.3C0E.0020.0002] # YI SYLLABLE ZZIEX
-A2D6 ; [.3C0F.0020.0002] # YI SYLLABLE ZZIE
-A2D7 ; [.3C10.0020.0002] # YI SYLLABLE ZZIEP
-A2D8 ; [.3C11.0020.0002] # YI SYLLABLE ZZAT
-A2D9 ; [.3C12.0020.0002] # YI SYLLABLE ZZAX
-A2DA ; [.3C13.0020.0002] # YI SYLLABLE ZZA
-A2DB ; [.3C14.0020.0002] # YI SYLLABLE ZZAP
-A2DC ; [.3C15.0020.0002] # YI SYLLABLE ZZOX
-A2DD ; [.3C16.0020.0002] # YI SYLLABLE ZZO
-A2DE ; [.3C17.0020.0002] # YI SYLLABLE ZZOP
-A2DF ; [.3C18.0020.0002] # YI SYLLABLE ZZEX
-A2E0 ; [.3C19.0020.0002] # YI SYLLABLE ZZE
-A2E1 ; [.3C1A.0020.0002] # YI SYLLABLE ZZEP
-A2E2 ; [.3C1B.0020.0002] # YI SYLLABLE ZZUX
-A2E3 ; [.3C1C.0020.0002] # YI SYLLABLE ZZU
-A2E4 ; [.3C1D.0020.0002] # YI SYLLABLE ZZUP
-A2E5 ; [.3C1E.0020.0002] # YI SYLLABLE ZZURX
-A2E6 ; [.3C1F.0020.0002] # YI SYLLABLE ZZUR
-A2E7 ; [.3C20.0020.0002] # YI SYLLABLE ZZYT
-A2E8 ; [.3C21.0020.0002] # YI SYLLABLE ZZYX
-A2E9 ; [.3C22.0020.0002] # YI SYLLABLE ZZY
-A2EA ; [.3C23.0020.0002] # YI SYLLABLE ZZYP
-A2EB ; [.3C24.0020.0002] # YI SYLLABLE ZZYRX
-A2EC ; [.3C25.0020.0002] # YI SYLLABLE ZZYR
-A2ED ; [.3C26.0020.0002] # YI SYLLABLE NZIT
-A2EE ; [.3C27.0020.0002] # YI SYLLABLE NZIX
-A2EF ; [.3C28.0020.0002] # YI SYLLABLE NZI
-A2F0 ; [.3C29.0020.0002] # YI SYLLABLE NZIP
-A2F1 ; [.3C2A.0020.0002] # YI SYLLABLE NZIEX
-A2F2 ; [.3C2B.0020.0002] # YI SYLLABLE NZIE
-A2F3 ; [.3C2C.0020.0002] # YI SYLLABLE NZIEP
-A2F4 ; [.3C2D.0020.0002] # YI SYLLABLE NZAT
-A2F5 ; [.3C2E.0020.0002] # YI SYLLABLE NZAX
-A2F6 ; [.3C2F.0020.0002] # YI SYLLABLE NZA
-A2F7 ; [.3C30.0020.0002] # YI SYLLABLE NZAP
-A2F8 ; [.3C31.0020.0002] # YI SYLLABLE NZUOX
-A2F9 ; [.3C32.0020.0002] # YI SYLLABLE NZUO
-A2FA ; [.3C33.0020.0002] # YI SYLLABLE NZOX
-A2FB ; [.3C34.0020.0002] # YI SYLLABLE NZOP
-A2FC ; [.3C35.0020.0002] # YI SYLLABLE NZEX
-A2FD ; [.3C36.0020.0002] # YI SYLLABLE NZE
-A2FE ; [.3C37.0020.0002] # YI SYLLABLE NZUX
-A2FF ; [.3C38.0020.0002] # YI SYLLABLE NZU
-A300 ; [.3C39.0020.0002] # YI SYLLABLE NZUP
-A301 ; [.3C3A.0020.0002] # YI SYLLABLE NZURX
-A302 ; [.3C3B.0020.0002] # YI SYLLABLE NZUR
-A303 ; [.3C3C.0020.0002] # YI SYLLABLE NZYT
-A304 ; [.3C3D.0020.0002] # YI SYLLABLE NZYX
-A305 ; [.3C3E.0020.0002] # YI SYLLABLE NZY
-A306 ; [.3C3F.0020.0002] # YI SYLLABLE NZYP
-A307 ; [.3C40.0020.0002] # YI SYLLABLE NZYRX
-A308 ; [.3C41.0020.0002] # YI SYLLABLE NZYR
-A309 ; [.3C42.0020.0002] # YI SYLLABLE SIT
-A30A ; [.3C43.0020.0002] # YI SYLLABLE SIX
-A30B ; [.3C44.0020.0002] # YI SYLLABLE SI
-A30C ; [.3C45.0020.0002] # YI SYLLABLE SIP
-A30D ; [.3C46.0020.0002] # YI SYLLABLE SIEX
-A30E ; [.3C47.0020.0002] # YI SYLLABLE SIE
-A30F ; [.3C48.0020.0002] # YI SYLLABLE SIEP
-A310 ; [.3C49.0020.0002] # YI SYLLABLE SAT
-A311 ; [.3C4A.0020.0002] # YI SYLLABLE SAX
-A312 ; [.3C4B.0020.0002] # YI SYLLABLE SA
-A313 ; [.3C4C.0020.0002] # YI SYLLABLE SAP
-A314 ; [.3C4D.0020.0002] # YI SYLLABLE SUOX
-A315 ; [.3C4E.0020.0002] # YI SYLLABLE SUO
-A316 ; [.3C4F.0020.0002] # YI SYLLABLE SUOP
-A317 ; [.3C50.0020.0002] # YI SYLLABLE SOT
-A318 ; [.3C51.0020.0002] # YI SYLLABLE SOX
-A319 ; [.3C52.0020.0002] # YI SYLLABLE SO
-A31A ; [.3C53.0020.0002] # YI SYLLABLE SOP
-A31B ; [.3C54.0020.0002] # YI SYLLABLE SEX
-A31C ; [.3C55.0020.0002] # YI SYLLABLE SE
-A31D ; [.3C56.0020.0002] # YI SYLLABLE SEP
-A31E ; [.3C57.0020.0002] # YI SYLLABLE SUT
-A31F ; [.3C58.0020.0002] # YI SYLLABLE SUX
-A320 ; [.3C59.0020.0002] # YI SYLLABLE SU
-A321 ; [.3C5A.0020.0002] # YI SYLLABLE SUP
-A322 ; [.3C5B.0020.0002] # YI SYLLABLE SURX
-A323 ; [.3C5C.0020.0002] # YI SYLLABLE SUR
-A324 ; [.3C5D.0020.0002] # YI SYLLABLE SYT
-A325 ; [.3C5E.0020.0002] # YI SYLLABLE SYX
-A326 ; [.3C5F.0020.0002] # YI SYLLABLE SY
-A327 ; [.3C60.0020.0002] # YI SYLLABLE SYP
-A328 ; [.3C61.0020.0002] # YI SYLLABLE SYRX
-A329 ; [.3C62.0020.0002] # YI SYLLABLE SYR
-A32A ; [.3C63.0020.0002] # YI SYLLABLE SSIT
-A32B ; [.3C64.0020.0002] # YI SYLLABLE SSIX
-A32C ; [.3C65.0020.0002] # YI SYLLABLE SSI
-A32D ; [.3C66.0020.0002] # YI SYLLABLE SSIP
-A32E ; [.3C67.0020.0002] # YI SYLLABLE SSIEX
-A32F ; [.3C68.0020.0002] # YI SYLLABLE SSIE
-A330 ; [.3C69.0020.0002] # YI SYLLABLE SSIEP
-A331 ; [.3C6A.0020.0002] # YI SYLLABLE SSAT
-A332 ; [.3C6B.0020.0002] # YI SYLLABLE SSAX
-A333 ; [.3C6C.0020.0002] # YI SYLLABLE SSA
-A334 ; [.3C6D.0020.0002] # YI SYLLABLE SSAP
-A335 ; [.3C6E.0020.0002] # YI SYLLABLE SSOT
-A336 ; [.3C6F.0020.0002] # YI SYLLABLE SSOX
-A337 ; [.3C70.0020.0002] # YI SYLLABLE SSO
-A338 ; [.3C71.0020.0002] # YI SYLLABLE SSOP
-A339 ; [.3C72.0020.0002] # YI SYLLABLE SSEX
-A33A ; [.3C73.0020.0002] # YI SYLLABLE SSE
-A33B ; [.3C74.0020.0002] # YI SYLLABLE SSEP
-A33C ; [.3C75.0020.0002] # YI SYLLABLE SSUT
-A33D ; [.3C76.0020.0002] # YI SYLLABLE SSUX
-A33E ; [.3C77.0020.0002] # YI SYLLABLE SSU
-A33F ; [.3C78.0020.0002] # YI SYLLABLE SSUP
-A340 ; [.3C79.0020.0002] # YI SYLLABLE SSYT
-A341 ; [.3C7A.0020.0002] # YI SYLLABLE SSYX
-A342 ; [.3C7B.0020.0002] # YI SYLLABLE SSY
-A343 ; [.3C7C.0020.0002] # YI SYLLABLE SSYP
-A344 ; [.3C7D.0020.0002] # YI SYLLABLE SSYRX
-A345 ; [.3C7E.0020.0002] # YI SYLLABLE SSYR
-A346 ; [.3C7F.0020.0002] # YI SYLLABLE ZHAT
-A347 ; [.3C80.0020.0002] # YI SYLLABLE ZHAX
-A348 ; [.3C81.0020.0002] # YI SYLLABLE ZHA
-A349 ; [.3C82.0020.0002] # YI SYLLABLE ZHAP
-A34A ; [.3C83.0020.0002] # YI SYLLABLE ZHUOX
-A34B ; [.3C84.0020.0002] # YI SYLLABLE ZHUO
-A34C ; [.3C85.0020.0002] # YI SYLLABLE ZHUOP
-A34D ; [.3C86.0020.0002] # YI SYLLABLE ZHOT
-A34E ; [.3C87.0020.0002] # YI SYLLABLE ZHOX
-A34F ; [.3C88.0020.0002] # YI SYLLABLE ZHO
-A350 ; [.3C89.0020.0002] # YI SYLLABLE ZHOP
-A351 ; [.3C8A.0020.0002] # YI SYLLABLE ZHET
-A352 ; [.3C8B.0020.0002] # YI SYLLABLE ZHEX
-A353 ; [.3C8C.0020.0002] # YI SYLLABLE ZHE
-A354 ; [.3C8D.0020.0002] # YI SYLLABLE ZHEP
-A355 ; [.3C8E.0020.0002] # YI SYLLABLE ZHUT
-A356 ; [.3C8F.0020.0002] # YI SYLLABLE ZHUX
-A357 ; [.3C90.0020.0002] # YI SYLLABLE ZHU
-A358 ; [.3C91.0020.0002] # YI SYLLABLE ZHUP
-A359 ; [.3C92.0020.0002] # YI SYLLABLE ZHURX
-A35A ; [.3C93.0020.0002] # YI SYLLABLE ZHUR
-A35B ; [.3C94.0020.0002] # YI SYLLABLE ZHYT
-A35C ; [.3C95.0020.0002] # YI SYLLABLE ZHYX
-A35D ; [.3C96.0020.0002] # YI SYLLABLE ZHY
-A35E ; [.3C97.0020.0002] # YI SYLLABLE ZHYP
-A35F ; [.3C98.0020.0002] # YI SYLLABLE ZHYRX
-A360 ; [.3C99.0020.0002] # YI SYLLABLE ZHYR
-A361 ; [.3C9A.0020.0002] # YI SYLLABLE CHAT
-A362 ; [.3C9B.0020.0002] # YI SYLLABLE CHAX
-A363 ; [.3C9C.0020.0002] # YI SYLLABLE CHA
-A364 ; [.3C9D.0020.0002] # YI SYLLABLE CHAP
-A365 ; [.3C9E.0020.0002] # YI SYLLABLE CHUOT
-A366 ; [.3C9F.0020.0002] # YI SYLLABLE CHUOX
-A367 ; [.3CA0.0020.0002] # YI SYLLABLE CHUO
-A368 ; [.3CA1.0020.0002] # YI SYLLABLE CHUOP
-A369 ; [.3CA2.0020.0002] # YI SYLLABLE CHOT
-A36A ; [.3CA3.0020.0002] # YI SYLLABLE CHOX
-A36B ; [.3CA4.0020.0002] # YI SYLLABLE CHO
-A36C ; [.3CA5.0020.0002] # YI SYLLABLE CHOP
-A36D ; [.3CA6.0020.0002] # YI SYLLABLE CHET
-A36E ; [.3CA7.0020.0002] # YI SYLLABLE CHEX
-A36F ; [.3CA8.0020.0002] # YI SYLLABLE CHE
-A370 ; [.3CA9.0020.0002] # YI SYLLABLE CHEP
-A371 ; [.3CAA.0020.0002] # YI SYLLABLE CHUX
-A372 ; [.3CAB.0020.0002] # YI SYLLABLE CHU
-A373 ; [.3CAC.0020.0002] # YI SYLLABLE CHUP
-A374 ; [.3CAD.0020.0002] # YI SYLLABLE CHURX
-A375 ; [.3CAE.0020.0002] # YI SYLLABLE CHUR
-A376 ; [.3CAF.0020.0002] # YI SYLLABLE CHYT
-A377 ; [.3CB0.0020.0002] # YI SYLLABLE CHYX
-A378 ; [.3CB1.0020.0002] # YI SYLLABLE CHY
-A379 ; [.3CB2.0020.0002] # YI SYLLABLE CHYP
-A37A ; [.3CB3.0020.0002] # YI SYLLABLE CHYRX
-A37B ; [.3CB4.0020.0002] # YI SYLLABLE CHYR
-A37C ; [.3CB5.0020.0002] # YI SYLLABLE RRAX
-A37D ; [.3CB6.0020.0002] # YI SYLLABLE RRA
-A37E ; [.3CB7.0020.0002] # YI SYLLABLE RRUOX
-A37F ; [.3CB8.0020.0002] # YI SYLLABLE RRUO
-A380 ; [.3CB9.0020.0002] # YI SYLLABLE RROT
-A381 ; [.3CBA.0020.0002] # YI SYLLABLE RROX
-A382 ; [.3CBB.0020.0002] # YI SYLLABLE RRO
-A383 ; [.3CBC.0020.0002] # YI SYLLABLE RROP
-A384 ; [.3CBD.0020.0002] # YI SYLLABLE RRET
-A385 ; [.3CBE.0020.0002] # YI SYLLABLE RREX
-A386 ; [.3CBF.0020.0002] # YI SYLLABLE RRE
-A387 ; [.3CC0.0020.0002] # YI SYLLABLE RREP
-A388 ; [.3CC1.0020.0002] # YI SYLLABLE RRUT
-A389 ; [.3CC2.0020.0002] # YI SYLLABLE RRUX
-A38A ; [.3CC3.0020.0002] # YI SYLLABLE RRU
-A38B ; [.3CC4.0020.0002] # YI SYLLABLE RRUP
-A38C ; [.3CC5.0020.0002] # YI SYLLABLE RRURX
-A38D ; [.3CC6.0020.0002] # YI SYLLABLE RRUR
-A38E ; [.3CC7.0020.0002] # YI SYLLABLE RRYT
-A38F ; [.3CC8.0020.0002] # YI SYLLABLE RRYX
-A390 ; [.3CC9.0020.0002] # YI SYLLABLE RRY
-A391 ; [.3CCA.0020.0002] # YI SYLLABLE RRYP
-A392 ; [.3CCB.0020.0002] # YI SYLLABLE RRYRX
-A393 ; [.3CCC.0020.0002] # YI SYLLABLE RRYR
-A394 ; [.3CCD.0020.0002] # YI SYLLABLE NRAT
-A395 ; [.3CCE.0020.0002] # YI SYLLABLE NRAX
-A396 ; [.3CCF.0020.0002] # YI SYLLABLE NRA
-A397 ; [.3CD0.0020.0002] # YI SYLLABLE NRAP
-A398 ; [.3CD1.0020.0002] # YI SYLLABLE NROX
-A399 ; [.3CD2.0020.0002] # YI SYLLABLE NRO
-A39A ; [.3CD3.0020.0002] # YI SYLLABLE NROP
-A39B ; [.3CD4.0020.0002] # YI SYLLABLE NRET
-A39C ; [.3CD5.0020.0002] # YI SYLLABLE NREX
-A39D ; [.3CD6.0020.0002] # YI SYLLABLE NRE
-A39E ; [.3CD7.0020.0002] # YI SYLLABLE NREP
-A39F ; [.3CD8.0020.0002] # YI SYLLABLE NRUT
-A3A0 ; [.3CD9.0020.0002] # YI SYLLABLE NRUX
-A3A1 ; [.3CDA.0020.0002] # YI SYLLABLE NRU
-A3A2 ; [.3CDB.0020.0002] # YI SYLLABLE NRUP
-A3A3 ; [.3CDC.0020.0002] # YI SYLLABLE NRURX
-A3A4 ; [.3CDD.0020.0002] # YI SYLLABLE NRUR
-A3A5 ; [.3CDE.0020.0002] # YI SYLLABLE NRYT
-A3A6 ; [.3CDF.0020.0002] # YI SYLLABLE NRYX
-A3A7 ; [.3CE0.0020.0002] # YI SYLLABLE NRY
-A3A8 ; [.3CE1.0020.0002] # YI SYLLABLE NRYP
-A3A9 ; [.3CE2.0020.0002] # YI SYLLABLE NRYRX
-A3AA ; [.3CE3.0020.0002] # YI SYLLABLE NRYR
-A3AB ; [.3CE4.0020.0002] # YI SYLLABLE SHAT
-A3AC ; [.3CE5.0020.0002] # YI SYLLABLE SHAX
-A3AD ; [.3CE6.0020.0002] # YI SYLLABLE SHA
-A3AE ; [.3CE7.0020.0002] # YI SYLLABLE SHAP
-A3AF ; [.3CE8.0020.0002] # YI SYLLABLE SHUOX
-A3B0 ; [.3CE9.0020.0002] # YI SYLLABLE SHUO
-A3B1 ; [.3CEA.0020.0002] # YI SYLLABLE SHUOP
-A3B2 ; [.3CEB.0020.0002] # YI SYLLABLE SHOT
-A3B3 ; [.3CEC.0020.0002] # YI SYLLABLE SHOX
-A3B4 ; [.3CED.0020.0002] # YI SYLLABLE SHO
-A3B5 ; [.3CEE.0020.0002] # YI SYLLABLE SHOP
-A3B6 ; [.3CEF.0020.0002] # YI SYLLABLE SHET
-A3B7 ; [.3CF0.0020.0002] # YI SYLLABLE SHEX
-A3B8 ; [.3CF1.0020.0002] # YI SYLLABLE SHE
-A3B9 ; [.3CF2.0020.0002] # YI SYLLABLE SHEP
-A3BA ; [.3CF3.0020.0002] # YI SYLLABLE SHUT
-A3BB ; [.3CF4.0020.0002] # YI SYLLABLE SHUX
-A3BC ; [.3CF5.0020.0002] # YI SYLLABLE SHU
-A3BD ; [.3CF6.0020.0002] # YI SYLLABLE SHUP
-A3BE ; [.3CF7.0020.0002] # YI SYLLABLE SHURX
-A3BF ; [.3CF8.0020.0002] # YI SYLLABLE SHUR
-A3C0 ; [.3CF9.0020.0002] # YI SYLLABLE SHYT
-A3C1 ; [.3CFA.0020.0002] # YI SYLLABLE SHYX
-A3C2 ; [.3CFB.0020.0002] # YI SYLLABLE SHY
-A3C3 ; [.3CFC.0020.0002] # YI SYLLABLE SHYP
-A3C4 ; [.3CFD.0020.0002] # YI SYLLABLE SHYRX
-A3C5 ; [.3CFE.0020.0002] # YI SYLLABLE SHYR
-A3C6 ; [.3CFF.0020.0002] # YI SYLLABLE RAT
-A3C7 ; [.3D00.0020.0002] # YI SYLLABLE RAX
-A3C8 ; [.3D01.0020.0002] # YI SYLLABLE RA
-A3C9 ; [.3D02.0020.0002] # YI SYLLABLE RAP
-A3CA ; [.3D03.0020.0002] # YI SYLLABLE RUOX
-A3CB ; [.3D04.0020.0002] # YI SYLLABLE RUO
-A3CC ; [.3D05.0020.0002] # YI SYLLABLE RUOP
-A3CD ; [.3D06.0020.0002] # YI SYLLABLE ROT
-A3CE ; [.3D07.0020.0002] # YI SYLLABLE ROX
-A3CF ; [.3D08.0020.0002] # YI SYLLABLE RO
-A3D0 ; [.3D09.0020.0002] # YI SYLLABLE ROP
-A3D1 ; [.3D0A.0020.0002] # YI SYLLABLE REX
-A3D2 ; [.3D0B.0020.0002] # YI SYLLABLE RE
-A3D3 ; [.3D0C.0020.0002] # YI SYLLABLE REP
-A3D4 ; [.3D0D.0020.0002] # YI SYLLABLE RUT
-A3D5 ; [.3D0E.0020.0002] # YI SYLLABLE RUX
-A3D6 ; [.3D0F.0020.0002] # YI SYLLABLE RU
-A3D7 ; [.3D10.0020.0002] # YI SYLLABLE RUP
-A3D8 ; [.3D11.0020.0002] # YI SYLLABLE RURX
-A3D9 ; [.3D12.0020.0002] # YI SYLLABLE RUR
-A3DA ; [.3D13.0020.0002] # YI SYLLABLE RYT
-A3DB ; [.3D14.0020.0002] # YI SYLLABLE RYX
-A3DC ; [.3D15.0020.0002] # YI SYLLABLE RY
-A3DD ; [.3D16.0020.0002] # YI SYLLABLE RYP
-A3DE ; [.3D17.0020.0002] # YI SYLLABLE RYRX
-A3DF ; [.3D18.0020.0002] # YI SYLLABLE RYR
-A3E0 ; [.3D19.0020.0002] # YI SYLLABLE JIT
-A3E1 ; [.3D1A.0020.0002] # YI SYLLABLE JIX
-A3E2 ; [.3D1B.0020.0002] # YI SYLLABLE JI
-A3E3 ; [.3D1C.0020.0002] # YI SYLLABLE JIP
-A3E4 ; [.3D1D.0020.0002] # YI SYLLABLE JIET
-A3E5 ; [.3D1E.0020.0002] # YI SYLLABLE JIEX
-A3E6 ; [.3D1F.0020.0002] # YI SYLLABLE JIE
-A3E7 ; [.3D20.0020.0002] # YI SYLLABLE JIEP
-A3E8 ; [.3D21.0020.0002] # YI SYLLABLE JUOT
-A3E9 ; [.3D22.0020.0002] # YI SYLLABLE JUOX
-A3EA ; [.3D23.0020.0002] # YI SYLLABLE JUO
-A3EB ; [.3D24.0020.0002] # YI SYLLABLE JUOP
-A3EC ; [.3D25.0020.0002] # YI SYLLABLE JOT
-A3ED ; [.3D26.0020.0002] # YI SYLLABLE JOX
-A3EE ; [.3D27.0020.0002] # YI SYLLABLE JO
-A3EF ; [.3D28.0020.0002] # YI SYLLABLE JOP
-A3F0 ; [.3D29.0020.0002] # YI SYLLABLE JUT
-A3F1 ; [.3D2A.0020.0002] # YI SYLLABLE JUX
-A3F2 ; [.3D2B.0020.0002] # YI SYLLABLE JU
-A3F3 ; [.3D2C.0020.0002] # YI SYLLABLE JUP
-A3F4 ; [.3D2D.0020.0002] # YI SYLLABLE JURX
-A3F5 ; [.3D2E.0020.0002] # YI SYLLABLE JUR
-A3F6 ; [.3D2F.0020.0002] # YI SYLLABLE JYT
-A3F7 ; [.3D30.0020.0002] # YI SYLLABLE JYX
-A3F8 ; [.3D31.0020.0002] # YI SYLLABLE JY
-A3F9 ; [.3D32.0020.0002] # YI SYLLABLE JYP
-A3FA ; [.3D33.0020.0002] # YI SYLLABLE JYRX
-A3FB ; [.3D34.0020.0002] # YI SYLLABLE JYR
-A3FC ; [.3D35.0020.0002] # YI SYLLABLE QIT
-A3FD ; [.3D36.0020.0002] # YI SYLLABLE QIX
-A3FE ; [.3D37.0020.0002] # YI SYLLABLE QI
-A3FF ; [.3D38.0020.0002] # YI SYLLABLE QIP
-A400 ; [.3D39.0020.0002] # YI SYLLABLE QIET
-A401 ; [.3D3A.0020.0002] # YI SYLLABLE QIEX
-A402 ; [.3D3B.0020.0002] # YI SYLLABLE QIE
-A403 ; [.3D3C.0020.0002] # YI SYLLABLE QIEP
-A404 ; [.3D3D.0020.0002] # YI SYLLABLE QUOT
-A405 ; [.3D3E.0020.0002] # YI SYLLABLE QUOX
-A406 ; [.3D3F.0020.0002] # YI SYLLABLE QUO
-A407 ; [.3D40.0020.0002] # YI SYLLABLE QUOP
-A408 ; [.3D41.0020.0002] # YI SYLLABLE QOT
-A409 ; [.3D42.0020.0002] # YI SYLLABLE QOX
-A40A ; [.3D43.0020.0002] # YI SYLLABLE QO
-A40B ; [.3D44.0020.0002] # YI SYLLABLE QOP
-A40C ; [.3D45.0020.0002] # YI SYLLABLE QUT
-A40D ; [.3D46.0020.0002] # YI SYLLABLE QUX
-A40E ; [.3D47.0020.0002] # YI SYLLABLE QU
-A40F ; [.3D48.0020.0002] # YI SYLLABLE QUP
-A410 ; [.3D49.0020.0002] # YI SYLLABLE QURX
-A411 ; [.3D4A.0020.0002] # YI SYLLABLE QUR
-A412 ; [.3D4B.0020.0002] # YI SYLLABLE QYT
-A413 ; [.3D4C.0020.0002] # YI SYLLABLE QYX
-A414 ; [.3D4D.0020.0002] # YI SYLLABLE QY
-A415 ; [.3D4E.0020.0002] # YI SYLLABLE QYP
-A416 ; [.3D4F.0020.0002] # YI SYLLABLE QYRX
-A417 ; [.3D50.0020.0002] # YI SYLLABLE QYR
-A418 ; [.3D51.0020.0002] # YI SYLLABLE JJIT
-A419 ; [.3D52.0020.0002] # YI SYLLABLE JJIX
-A41A ; [.3D53.0020.0002] # YI SYLLABLE JJI
-A41B ; [.3D54.0020.0002] # YI SYLLABLE JJIP
-A41C ; [.3D55.0020.0002] # YI SYLLABLE JJIET
-A41D ; [.3D56.0020.0002] # YI SYLLABLE JJIEX
-A41E ; [.3D57.0020.0002] # YI SYLLABLE JJIE
-A41F ; [.3D58.0020.0002] # YI SYLLABLE JJIEP
-A420 ; [.3D59.0020.0002] # YI SYLLABLE JJUOX
-A421 ; [.3D5A.0020.0002] # YI SYLLABLE JJUO
-A422 ; [.3D5B.0020.0002] # YI SYLLABLE JJUOP
-A423 ; [.3D5C.0020.0002] # YI SYLLABLE JJOT
-A424 ; [.3D5D.0020.0002] # YI SYLLABLE JJOX
-A425 ; [.3D5E.0020.0002] # YI SYLLABLE JJO
-A426 ; [.3D5F.0020.0002] # YI SYLLABLE JJOP
-A427 ; [.3D60.0020.0002] # YI SYLLABLE JJUT
-A428 ; [.3D61.0020.0002] # YI SYLLABLE JJUX
-A429 ; [.3D62.0020.0002] # YI SYLLABLE JJU
-A42A ; [.3D63.0020.0002] # YI SYLLABLE JJUP
-A42B ; [.3D64.0020.0002] # YI SYLLABLE JJURX
-A42C ; [.3D65.0020.0002] # YI SYLLABLE JJUR
-A42D ; [.3D66.0020.0002] # YI SYLLABLE JJYT
-A42E ; [.3D67.0020.0002] # YI SYLLABLE JJYX
-A42F ; [.3D68.0020.0002] # YI SYLLABLE JJY
-A430 ; [.3D69.0020.0002] # YI SYLLABLE JJYP
-A431 ; [.3D6A.0020.0002] # YI SYLLABLE NJIT
-A432 ; [.3D6B.0020.0002] # YI SYLLABLE NJIX
-A433 ; [.3D6C.0020.0002] # YI SYLLABLE NJI
-A434 ; [.3D6D.0020.0002] # YI SYLLABLE NJIP
-A435 ; [.3D6E.0020.0002] # YI SYLLABLE NJIET
-A436 ; [.3D6F.0020.0002] # YI SYLLABLE NJIEX
-A437 ; [.3D70.0020.0002] # YI SYLLABLE NJIE
-A438 ; [.3D71.0020.0002] # YI SYLLABLE NJIEP
-A439 ; [.3D72.0020.0002] # YI SYLLABLE NJUOX
-A43A ; [.3D73.0020.0002] # YI SYLLABLE NJUO
-A43B ; [.3D74.0020.0002] # YI SYLLABLE NJOT
-A43C ; [.3D75.0020.0002] # YI SYLLABLE NJOX
-A43D ; [.3D76.0020.0002] # YI SYLLABLE NJO
-A43E ; [.3D77.0020.0002] # YI SYLLABLE NJOP
-A43F ; [.3D78.0020.0002] # YI SYLLABLE NJUX
-A440 ; [.3D79.0020.0002] # YI SYLLABLE NJU
-A441 ; [.3D7A.0020.0002] # YI SYLLABLE NJUP
-A442 ; [.3D7B.0020.0002] # YI SYLLABLE NJURX
-A443 ; [.3D7C.0020.0002] # YI SYLLABLE NJUR
-A444 ; [.3D7D.0020.0002] # YI SYLLABLE NJYT
-A445 ; [.3D7E.0020.0002] # YI SYLLABLE NJYX
-A446 ; [.3D7F.0020.0002] # YI SYLLABLE NJY
-A447 ; [.3D80.0020.0002] # YI SYLLABLE NJYP
-A448 ; [.3D81.0020.0002] # YI SYLLABLE NJYRX
-A449 ; [.3D82.0020.0002] # YI SYLLABLE NJYR
-A44A ; [.3D83.0020.0002] # YI SYLLABLE NYIT
-A44B ; [.3D84.0020.0002] # YI SYLLABLE NYIX
-A44C ; [.3D85.0020.0002] # YI SYLLABLE NYI
-A44D ; [.3D86.0020.0002] # YI SYLLABLE NYIP
-A44E ; [.3D87.0020.0002] # YI SYLLABLE NYIET
-A44F ; [.3D88.0020.0002] # YI SYLLABLE NYIEX
-A450 ; [.3D89.0020.0002] # YI SYLLABLE NYIE
-A451 ; [.3D8A.0020.0002] # YI SYLLABLE NYIEP
-A452 ; [.3D8B.0020.0002] # YI SYLLABLE NYUOX
-A453 ; [.3D8C.0020.0002] # YI SYLLABLE NYUO
-A454 ; [.3D8D.0020.0002] # YI SYLLABLE NYUOP
-A455 ; [.3D8E.0020.0002] # YI SYLLABLE NYOT
-A456 ; [.3D8F.0020.0002] # YI SYLLABLE NYOX
-A457 ; [.3D90.0020.0002] # YI SYLLABLE NYO
-A458 ; [.3D91.0020.0002] # YI SYLLABLE NYOP
-A459 ; [.3D92.0020.0002] # YI SYLLABLE NYUT
-A45A ; [.3D93.0020.0002] # YI SYLLABLE NYUX
-A45B ; [.3D94.0020.0002] # YI SYLLABLE NYU
-A45C ; [.3D95.0020.0002] # YI SYLLABLE NYUP
-A45D ; [.3D96.0020.0002] # YI SYLLABLE XIT
-A45E ; [.3D97.0020.0002] # YI SYLLABLE XIX
-A45F ; [.3D98.0020.0002] # YI SYLLABLE XI
-A460 ; [.3D99.0020.0002] # YI SYLLABLE XIP
-A461 ; [.3D9A.0020.0002] # YI SYLLABLE XIET
-A462 ; [.3D9B.0020.0002] # YI SYLLABLE XIEX
-A463 ; [.3D9C.0020.0002] # YI SYLLABLE XIE
-A464 ; [.3D9D.0020.0002] # YI SYLLABLE XIEP
-A465 ; [.3D9E.0020.0002] # YI SYLLABLE XUOX
-A466 ; [.3D9F.0020.0002] # YI SYLLABLE XUO
-A467 ; [.3DA0.0020.0002] # YI SYLLABLE XOT
-A468 ; [.3DA1.0020.0002] # YI SYLLABLE XOX
-A469 ; [.3DA2.0020.0002] # YI SYLLABLE XO
-A46A ; [.3DA3.0020.0002] # YI SYLLABLE XOP
-A46B ; [.3DA4.0020.0002] # YI SYLLABLE XYT
-A46C ; [.3DA5.0020.0002] # YI SYLLABLE XYX
-A46D ; [.3DA6.0020.0002] # YI SYLLABLE XY
-A46E ; [.3DA7.0020.0002] # YI SYLLABLE XYP
-A46F ; [.3DA8.0020.0002] # YI SYLLABLE XYRX
-A470 ; [.3DA9.0020.0002] # YI SYLLABLE XYR
-A471 ; [.3DAA.0020.0002] # YI SYLLABLE YIT
-A472 ; [.3DAB.0020.0002] # YI SYLLABLE YIX
-A473 ; [.3DAC.0020.0002] # YI SYLLABLE YI
-A474 ; [.3DAD.0020.0002] # YI SYLLABLE YIP
-A475 ; [.3DAE.0020.0002] # YI SYLLABLE YIET
-A476 ; [.3DAF.0020.0002] # YI SYLLABLE YIEX
-A477 ; [.3DB0.0020.0002] # YI SYLLABLE YIE
-A478 ; [.3DB1.0020.0002] # YI SYLLABLE YIEP
-A479 ; [.3DB2.0020.0002] # YI SYLLABLE YUOT
-A47A ; [.3DB3.0020.0002] # YI SYLLABLE YUOX
-A47B ; [.3DB4.0020.0002] # YI SYLLABLE YUO
-A47C ; [.3DB5.0020.0002] # YI SYLLABLE YUOP
-A47D ; [.3DB6.0020.0002] # YI SYLLABLE YOT
-A47E ; [.3DB7.0020.0002] # YI SYLLABLE YOX
-A47F ; [.3DB8.0020.0002] # YI SYLLABLE YO
-A480 ; [.3DB9.0020.0002] # YI SYLLABLE YOP
-A481 ; [.3DBA.0020.0002] # YI SYLLABLE YUT
-A482 ; [.3DBB.0020.0002] # YI SYLLABLE YUX
-A483 ; [.3DBC.0020.0002] # YI SYLLABLE YU
-A484 ; [.3DBD.0020.0002] # YI SYLLABLE YUP
-A485 ; [.3DBE.0020.0002] # YI SYLLABLE YURX
-A486 ; [.3DBF.0020.0002] # YI SYLLABLE YUR
-A487 ; [.3DC0.0020.0002] # YI SYLLABLE YYT
-A488 ; [.3DC1.0020.0002] # YI SYLLABLE YYX
-A489 ; [.3DC2.0020.0002] # YI SYLLABLE YY
-A48A ; [.3DC3.0020.0002] # YI SYLLABLE YYP
-A48B ; [.3DC4.0020.0002] # YI SYLLABLE YYRX
-A48C ; [.3DC5.0020.0002] # YI SYLLABLE YYR
-A4F8 ; [.3DC6.0020.0002] # LISU LETTER TONE MYA TI
-A4F9 ; [.3DC7.0020.0002] # LISU LETTER TONE NA PO
-A4FA ; [.3DC8.0020.0002] # LISU LETTER TONE MYA CYA
-A4FB ; [.3DC9.0020.0002] # LISU LETTER TONE MYA BO
-A4FD ; [.3DCA.0020.0002] # LISU LETTER TONE MYA JEU
-A4FC ; [.3DCB.0020.0002] # LISU LETTER TONE MYA NA
-A4D0 ; [.3DCC.0020.0002] # LISU LETTER BA
-A4D1 ; [.3DCD.0020.0002] # LISU LETTER PA
-A4D2 ; [.3DCE.0020.0002] # LISU LETTER PHA
-A4D3 ; [.3DCF.0020.0002] # LISU LETTER DA
-A4D4 ; [.3DD0.0020.0002] # LISU LETTER TA
-A4D5 ; [.3DD1.0020.0002] # LISU LETTER THA
-A4D6 ; [.3DD2.0020.0002] # LISU LETTER GA
-A4D7 ; [.3DD3.0020.0002] # LISU LETTER KA
-A4D8 ; [.3DD4.0020.0002] # LISU LETTER KHA
-A4D9 ; [.3DD5.0020.0002] # LISU LETTER JA
-A4DA ; [.3DD6.0020.0002] # LISU LETTER CA
-A4DB ; [.3DD7.0020.0002] # LISU LETTER CHA
-A4DC ; [.3DD8.0020.0002] # LISU LETTER DZA
-A4DD ; [.3DD9.0020.0002] # LISU LETTER TSA
-A4DE ; [.3DDA.0020.0002] # LISU LETTER TSHA
-A4DF ; [.3DDB.0020.0002] # LISU LETTER MA
-A4E0 ; [.3DDC.0020.0002] # LISU LETTER NA
-A4E1 ; [.3DDD.0020.0002] # LISU LETTER LA
-A4E2 ; [.3DDE.0020.0002] # LISU LETTER SA
-A4E3 ; [.3DDF.0020.0002] # LISU LETTER ZHA
-A4E4 ; [.3DE0.0020.0002] # LISU LETTER ZA
-A4E5 ; [.3DE1.0020.0002] # LISU LETTER NGA
-A4E6 ; [.3DE2.0020.0002] # LISU LETTER HA
-A4E7 ; [.3DE3.0020.0002] # LISU LETTER XA
-A4E8 ; [.3DE4.0020.0002] # LISU LETTER HHA
-A4E9 ; [.3DE5.0020.0002] # LISU LETTER FA
-A4EB ; [.3DE6.0020.0002] # LISU LETTER SHA
-A4ED ; [.3DE7.0020.0002] # LISU LETTER GHA
-A4EA ; [.3DE8.0020.0002] # LISU LETTER WA
-A4EC ; [.3DE9.0020.0002] # LISU LETTER YA
-A4EE ; [.3DEA.0020.0002] # LISU LETTER A
-A4EF ; [.3DEB.0020.0002] # LISU LETTER AE
-A4F0 ; [.3DEC.0020.0002] # LISU LETTER E
-A4F1 ; [.3DED.0020.0002] # LISU LETTER EU
-A4F2 ; [.3DEE.0020.0002] # LISU LETTER I
-A4F3 ; [.3DEF.0020.0002] # LISU LETTER O
-A4F4 ; [.3DF0.0020.0002] # LISU LETTER U
-A4F5 ; [.3DF1.0020.0002] # LISU LETTER UE
-A4F6 ; [.3DF2.0020.0002] # LISU LETTER UH
-A4F7 ; [.3DF3.0020.0002] # LISU LETTER OE
-16F00 ; [.3DF4.0020.0002] # MIAO LETTER PA
-16F01 ; [.3DF5.0020.0002] # MIAO LETTER BA
-16F02 ; [.3DF6.0020.0002] # MIAO LETTER YI PA
-16F03 ; [.3DF7.0020.0002] # MIAO LETTER PLA
-16F04 ; [.3DF8.0020.0002] # MIAO LETTER MA
-16F06 ; [.3DF8.0020.0004] # MIAO LETTER ARCHAIC MA
-16F05 ; [.3DF9.0020.0002] # MIAO LETTER MHA
-16F07 ; [.3DFA.0020.0002] # MIAO LETTER FA
-16F08 ; [.3DFB.0020.0002] # MIAO LETTER VA
-16F09 ; [.3DFC.0020.0002] # MIAO LETTER VFA
-16F0A ; [.3DFD.0020.0002] # MIAO LETTER TA
-16F0B ; [.3DFE.0020.0002] # MIAO LETTER DA
-16F0C ; [.3DFF.0020.0002] # MIAO LETTER YI TTA
-16F0D ; [.3E00.0020.0002] # MIAO LETTER YI TA
-16F0E ; [.3E01.0020.0002] # MIAO LETTER TTA
-16F0F ; [.3E02.0020.0002] # MIAO LETTER DDA
-16F10 ; [.3E03.0020.0002] # MIAO LETTER NA
-16F13 ; [.3E03.0020.0004] # MIAO LETTER ARCHAIC NA
-16F11 ; [.3E04.0020.0002] # MIAO LETTER NHA
-16F12 ; [.3E05.0020.0002] # MIAO LETTER YI NNA
-16F14 ; [.3E06.0020.0002] # MIAO LETTER NNA
-16F15 ; [.3E07.0020.0002] # MIAO LETTER NNHA
-16F16 ; [.3E08.0020.0002] # MIAO LETTER LA
-16F17 ; [.3E09.0020.0002] # MIAO LETTER LYA
-16F18 ; [.3E0A.0020.0002] # MIAO LETTER LHA
-16F19 ; [.3E0B.0020.0002] # MIAO LETTER LHYA
-16F1A ; [.3E0C.0020.0002] # MIAO LETTER TLHA
-16F1B ; [.3E0D.0020.0002] # MIAO LETTER DLHA
-16F1C ; [.3E0E.0020.0002] # MIAO LETTER TLHYA
-16F1D ; [.3E0F.0020.0002] # MIAO LETTER DLHYA
-16F1E ; [.3E10.0020.0002] # MIAO LETTER KA
-16F1F ; [.3E11.0020.0002] # MIAO LETTER GA
-16F20 ; [.3E12.0020.0002] # MIAO LETTER YI KA
-16F21 ; [.3E13.0020.0002] # MIAO LETTER QA
-16F22 ; [.3E14.0020.0002] # MIAO LETTER QGA
-16F23 ; [.3E15.0020.0002] # MIAO LETTER NGA
-16F25 ; [.3E15.0020.0004] # MIAO LETTER ARCHAIC NGA
-16F24 ; [.3E16.0020.0002] # MIAO LETTER NGHA
-16F26 ; [.3E17.0020.0002] # MIAO LETTER HA
-16F27 ; [.3E18.0020.0002] # MIAO LETTER XA
-16F28 ; [.3E19.0020.0002] # MIAO LETTER GHA
-16F29 ; [.3E1A.0020.0002] # MIAO LETTER GHHA
-16F2A ; [.3E1B.0020.0002] # MIAO LETTER TSSA
-16F2B ; [.3E1C.0020.0002] # MIAO LETTER DZZA
-16F2C ; [.3E1D.0020.0002] # MIAO LETTER NYA
-16F2D ; [.3E1E.0020.0002] # MIAO LETTER NYHA
-16F2E ; [.3E1F.0020.0002] # MIAO LETTER TSHA
-16F2F ; [.3E20.0020.0002] # MIAO LETTER DZHA
-16F30 ; [.3E21.0020.0002] # MIAO LETTER YI TSHA
-16F31 ; [.3E22.0020.0002] # MIAO LETTER YI DZHA
-16F32 ; [.3E23.0020.0002] # MIAO LETTER REFORMED TSHA
-16F33 ; [.3E24.0020.0002] # MIAO LETTER SHA
-16F34 ; [.3E25.0020.0002] # MIAO LETTER SSA
-16F35 ; [.3E26.0020.0002] # MIAO LETTER ZHA
-16F36 ; [.3E27.0020.0002] # MIAO LETTER ZSHA
-16F37 ; [.3E28.0020.0002] # MIAO LETTER TSA
-16F38 ; [.3E29.0020.0002] # MIAO LETTER DZA
-16F39 ; [.3E2A.0020.0002] # MIAO LETTER YI TSA
-16F3A ; [.3E2B.0020.0002] # MIAO LETTER SA
-16F3B ; [.3E2C.0020.0002] # MIAO LETTER ZA
-16F3C ; [.3E2D.0020.0002] # MIAO LETTER ZSA
-16F3D ; [.3E2E.0020.0002] # MIAO LETTER ZZA
-16F3F ; [.3E2E.0020.0004] # MIAO LETTER ARCHAIC ZZA
-16F3E ; [.3E2F.0020.0002] # MIAO LETTER ZZSA
-16F40 ; [.3E30.0020.0002] # MIAO LETTER ZZYA
-16F41 ; [.3E31.0020.0002] # MIAO LETTER ZZSYA
-16F42 ; [.3E32.0020.0002] # MIAO LETTER WA
-16F43 ; [.3E33.0020.0002] # MIAO LETTER AH
-16F44 ; [.3E34.0020.0002] # MIAO LETTER HHA
-16F50 ; [.3E35.0020.0002] # MIAO LETTER NASALIZATION
-16F51 ; [.3E36.0020.0002] # MIAO SIGN ASPIRATION
-16F52 ; [.3E37.0020.0002] # MIAO SIGN REFORMED VOICING
-16F53 ; [.3E38.0020.0002] # MIAO SIGN REFORMED ASPIRATION
-16F54 ; [.3E39.0020.0002] # MIAO VOWEL SIGN A
-16F55 ; [.3E3A.0020.0002] # MIAO VOWEL SIGN AA
-16F56 ; [.3E3B.0020.0002] # MIAO VOWEL SIGN AHH
-16F57 ; [.3E3C.0020.0002] # MIAO VOWEL SIGN AN
-16F58 ; [.3E3D.0020.0002] # MIAO VOWEL SIGN ANG
-16F59 ; [.3E3E.0020.0002] # MIAO VOWEL SIGN O
-16F5A ; [.3E3F.0020.0002] # MIAO VOWEL SIGN OO
-16F5B ; [.3E40.0020.0002] # MIAO VOWEL SIGN WO
-16F5C ; [.3E41.0020.0002] # MIAO VOWEL SIGN W
-16F5D ; [.3E42.0020.0002] # MIAO VOWEL SIGN E
-16F5E ; [.3E43.0020.0002] # MIAO VOWEL SIGN EN
-16F5F ; [.3E44.0020.0002] # MIAO VOWEL SIGN ENG
-16F60 ; [.3E45.0020.0002] # MIAO VOWEL SIGN OEY
-16F61 ; [.3E46.0020.0002] # MIAO VOWEL SIGN I
-16F62 ; [.3E47.0020.0002] # MIAO VOWEL SIGN IA
-16F63 ; [.3E48.0020.0002] # MIAO VOWEL SIGN IAN
-16F64 ; [.3E49.0020.0002] # MIAO VOWEL SIGN IANG
-16F65 ; [.3E4A.0020.0002] # MIAO VOWEL SIGN IO
-16F66 ; [.3E4B.0020.0002] # MIAO VOWEL SIGN IE
-16F67 ; [.3E4C.0020.0002] # MIAO VOWEL SIGN II
-16F68 ; [.3E4D.0020.0002] # MIAO VOWEL SIGN IU
-16F69 ; [.3E4E.0020.0002] # MIAO VOWEL SIGN ING
-16F6A ; [.3E4F.0020.0002] # MIAO VOWEL SIGN U
-16F6B ; [.3E50.0020.0002] # MIAO VOWEL SIGN UA
-16F6C ; [.3E51.0020.0002] # MIAO VOWEL SIGN UAN
-16F6D ; [.3E52.0020.0002] # MIAO VOWEL SIGN UANG
-16F6E ; [.3E53.0020.0002] # MIAO VOWEL SIGN UU
-16F6F ; [.3E54.0020.0002] # MIAO VOWEL SIGN UEI
-16F70 ; [.3E55.0020.0002] # MIAO VOWEL SIGN UNG
-16F71 ; [.3E56.0020.0002] # MIAO VOWEL SIGN Y
-16F72 ; [.3E57.0020.0002] # MIAO VOWEL SIGN YI
-16F73 ; [.3E58.0020.0002] # MIAO VOWEL SIGN AE
-16F74 ; [.3E59.0020.0002] # MIAO VOWEL SIGN AEE
-16F75 ; [.3E5A.0020.0002] # MIAO VOWEL SIGN ERR
-16F76 ; [.3E5B.0020.0002] # MIAO VOWEL SIGN ROUNDED ERR
-16F77 ; [.3E5C.0020.0002] # MIAO VOWEL SIGN ER
-16F78 ; [.3E5D.0020.0002] # MIAO VOWEL SIGN ROUNDED ER
-16F79 ; [.3E5E.0020.0002] # MIAO VOWEL SIGN AI
-16F7A ; [.3E5F.0020.0002] # MIAO VOWEL SIGN EI
-16F7B ; [.3E60.0020.0002] # MIAO VOWEL SIGN AU
-16F7C ; [.3E61.0020.0002] # MIAO VOWEL SIGN OU
-16F7D ; [.3E62.0020.0002] # MIAO VOWEL SIGN N
-16F7E ; [.3E63.0020.0002] # MIAO VOWEL SIGN NG
-16F8F ; [.3E64.0020.0002] # MIAO TONE RIGHT
-16F90 ; [.3E65.0020.0002] # MIAO TONE TOP RIGHT
-16F91 ; [.3E66.0020.0002] # MIAO TONE ABOVE
-16F92 ; [.3E67.0020.0002] # MIAO TONE BELOW
-16F93 ; [.3E68.0020.0002] # MIAO LETTER TONE-2
-16F94 ; [.3E69.0020.0002] # MIAO LETTER TONE-3
-16F95 ; [.3E6A.0020.0002] # MIAO LETTER TONE-4
-16F96 ; [.3E6B.0020.0002] # MIAO LETTER TONE-5
-16F97 ; [.3E6C.0020.0002] # MIAO LETTER TONE-6
-16F98 ; [.3E6D.0020.0002] # MIAO LETTER TONE-7
-16F99 ; [.3E6E.0020.0002] # MIAO LETTER TONE-8
-16F9A ; [.3E6F.0020.0002] # MIAO LETTER REFORMED TONE-1
-16F9B ; [.3E70.0020.0002] # MIAO LETTER REFORMED TONE-2
-16F9C ; [.3E71.0020.0002] # MIAO LETTER REFORMED TONE-4
-16F9D ; [.3E72.0020.0002] # MIAO LETTER REFORMED TONE-5
-16F9E ; [.3E73.0020.0002] # MIAO LETTER REFORMED TONE-6
-16F9F ; [.3E74.0020.0002] # MIAO LETTER REFORMED TONE-8
-118FF ; [.3E75.0020.0002] # WARANG CITI OM
-118C0 ; [.3E76.0020.0002] # WARANG CITI SMALL LETTER NGAA
-118A0 ; [.3E76.0020.0008] # WARANG CITI CAPITAL LETTER NGAA
-118C1 ; [.3E77.0020.0002] # WARANG CITI SMALL LETTER A
-118A1 ; [.3E77.0020.0008] # WARANG CITI CAPITAL LETTER A
-118C2 ; [.3E78.0020.0002] # WARANG CITI SMALL LETTER WI
-118A2 ; [.3E78.0020.0008] # WARANG CITI CAPITAL LETTER WI
-118C3 ; [.3E79.0020.0002] # WARANG CITI SMALL LETTER YU
-118A3 ; [.3E79.0020.0008] # WARANG CITI CAPITAL LETTER YU
-118C4 ; [.3E7A.0020.0002] # WARANG CITI SMALL LETTER YA
-118A4 ; [.3E7A.0020.0008] # WARANG CITI CAPITAL LETTER YA
-118C5 ; [.3E7B.0020.0002] # WARANG CITI SMALL LETTER YO
-118A5 ; [.3E7B.0020.0008] # WARANG CITI CAPITAL LETTER YO
-118C6 ; [.3E7C.0020.0002] # WARANG CITI SMALL LETTER II
-118A6 ; [.3E7C.0020.0008] # WARANG CITI CAPITAL LETTER II
-118C7 ; [.3E7D.0020.0002] # WARANG CITI SMALL LETTER UU
-118A7 ; [.3E7D.0020.0008] # WARANG CITI CAPITAL LETTER UU
-118C8 ; [.3E7E.0020.0002] # WARANG CITI SMALL LETTER E
-118A8 ; [.3E7E.0020.0008] # WARANG CITI CAPITAL LETTER E
-118C9 ; [.3E7F.0020.0002] # WARANG CITI SMALL LETTER O
-118A9 ; [.3E7F.0020.0008] # WARANG CITI CAPITAL LETTER O
-118CA ; [.3E80.0020.0002] # WARANG CITI SMALL LETTER ANG
-118AA ; [.3E80.0020.0008] # WARANG CITI CAPITAL LETTER ANG
-118CB ; [.3E81.0020.0002] # WARANG CITI SMALL LETTER GA
-118AB ; [.3E81.0020.0008] # WARANG CITI CAPITAL LETTER GA
-118CC ; [.3E82.0020.0002] # WARANG CITI SMALL LETTER KO
-118AC ; [.3E82.0020.0008] # WARANG CITI CAPITAL LETTER KO
-118CD ; [.3E83.0020.0002] # WARANG CITI SMALL LETTER ENY
-118AD ; [.3E83.0020.0008] # WARANG CITI CAPITAL LETTER ENY
-118CE ; [.3E84.0020.0002] # WARANG CITI SMALL LETTER YUJ
-118AE ; [.3E84.0020.0008] # WARANG CITI CAPITAL LETTER YUJ
-118CF ; [.3E85.0020.0002] # WARANG CITI SMALL LETTER UC
-118AF ; [.3E85.0020.0008] # WARANG CITI CAPITAL LETTER UC
-118D0 ; [.3E86.0020.0002] # WARANG CITI SMALL LETTER ENN
-118B0 ; [.3E86.0020.0008] # WARANG CITI CAPITAL LETTER ENN
-118D1 ; [.3E87.0020.0002] # WARANG CITI SMALL LETTER ODD
-118B1 ; [.3E87.0020.0008] # WARANG CITI CAPITAL LETTER ODD
-118D2 ; [.3E88.0020.0002] # WARANG CITI SMALL LETTER TTE
-118B2 ; [.3E88.0020.0008] # WARANG CITI CAPITAL LETTER TTE
-118D3 ; [.3E89.0020.0002] # WARANG CITI SMALL LETTER NUNG
-118B3 ; [.3E89.0020.0008] # WARANG CITI CAPITAL LETTER NUNG
-118D4 ; [.3E8A.0020.0002] # WARANG CITI SMALL LETTER DA
-118B4 ; [.3E8A.0020.0008] # WARANG CITI CAPITAL LETTER DA
-118D5 ; [.3E8B.0020.0002] # WARANG CITI SMALL LETTER AT
-118B5 ; [.3E8B.0020.0008] # WARANG CITI CAPITAL LETTER AT
-118D6 ; [.3E8C.0020.0002] # WARANG CITI SMALL LETTER AM
-118B6 ; [.3E8C.0020.0008] # WARANG CITI CAPITAL LETTER AM
-118D7 ; [.3E8D.0020.0002] # WARANG CITI SMALL LETTER BU
-118B7 ; [.3E8D.0020.0008] # WARANG CITI CAPITAL LETTER BU
-118D8 ; [.3E8E.0020.0002] # WARANG CITI SMALL LETTER PU
-118B8 ; [.3E8E.0020.0008] # WARANG CITI CAPITAL LETTER PU
-118D9 ; [.3E8F.0020.0002] # WARANG CITI SMALL LETTER HIYO
-118B9 ; [.3E8F.0020.0008] # WARANG CITI CAPITAL LETTER HIYO
-118DA ; [.3E90.0020.0002] # WARANG CITI SMALL LETTER HOLO
-118BA ; [.3E90.0020.0008] # WARANG CITI CAPITAL LETTER HOLO
-118DB ; [.3E91.0020.0002] # WARANG CITI SMALL LETTER HORR
-118BB ; [.3E91.0020.0008] # WARANG CITI CAPITAL LETTER HORR
-118DC ; [.3E92.0020.0002] # WARANG CITI SMALL LETTER HAR
-118BC ; [.3E92.0020.0008] # WARANG CITI CAPITAL LETTER HAR
-118DD ; [.3E93.0020.0002] # WARANG CITI SMALL LETTER SSUU
-118BD ; [.3E93.0020.0008] # WARANG CITI CAPITAL LETTER SSUU
-118DE ; [.3E94.0020.0002] # WARANG CITI SMALL LETTER SII
-118BE ; [.3E94.0020.0008] # WARANG CITI CAPITAL LETTER SII
-118DF ; [.3E95.0020.0002] # WARANG CITI SMALL LETTER VIYO
-118BF ; [.3E95.0020.0008] # WARANG CITI CAPITAL LETTER VIYO
-11AD5 ; [.3E96.0020.0002] # PAU CIN HAU LETTER A
-11AD6 ; [.3E97.0020.0002] # PAU CIN HAU LETTER E
-11AD7 ; [.3E98.0020.0002] # PAU CIN HAU LETTER I
-11AD8 ; [.3E99.0020.0002] # PAU CIN HAU LETTER O
-11AD9 ; [.3E9A.0020.0002] # PAU CIN HAU LETTER U
-11ADA ; [.3E9B.0020.0002] # PAU CIN HAU LETTER UA
-11ADB ; [.3E9C.0020.0002] # PAU CIN HAU LETTER IA
-11AC0 ; [.3E9D.0020.0002] # PAU CIN HAU LETTER PA
-11AC1 ; [.3E9E.0020.0002] # PAU CIN HAU LETTER KA
-11AC2 ; [.3E9F.0020.0002] # PAU CIN HAU LETTER LA
-11AC3 ; [.3EA0.0020.0002] # PAU CIN HAU LETTER MA
-11AC4 ; [.3EA1.0020.0002] # PAU CIN HAU LETTER DA
-11AC5 ; [.3EA2.0020.0002] # PAU CIN HAU LETTER ZA
-11AC6 ; [.3EA3.0020.0002] # PAU CIN HAU LETTER VA
-11AC7 ; [.3EA4.0020.0002] # PAU CIN HAU LETTER NGA
-11AC8 ; [.3EA5.0020.0002] # PAU CIN HAU LETTER HA
-11AC9 ; [.3EA6.0020.0002] # PAU CIN HAU LETTER GA
-11ACA ; [.3EA7.0020.0002] # PAU CIN HAU LETTER KHA
-11ACB ; [.3EA8.0020.0002] # PAU CIN HAU LETTER SA
-11ACC ; [.3EA9.0020.0002] # PAU CIN HAU LETTER BA
-11ACD ; [.3EAA.0020.0002] # PAU CIN HAU LETTER CA
-11ACE ; [.3EAB.0020.0002] # PAU CIN HAU LETTER TA
-11ACF ; [.3EAC.0020.0002] # PAU CIN HAU LETTER THA
-11AD0 ; [.3EAD.0020.0002] # PAU CIN HAU LETTER NA
-11AD1 ; [.3EAE.0020.0002] # PAU CIN HAU LETTER PHA
-11AD2 ; [.3EAF.0020.0002] # PAU CIN HAU LETTER RA
-11AD3 ; [.3EB0.0020.0002] # PAU CIN HAU LETTER FA
-11AD4 ; [.3EB1.0020.0002] # PAU CIN HAU LETTER CHA
-11ADC ; [.3EB2.0020.0002] # PAU CIN HAU LETTER FINAL P
-11ADD ; [.3EB3.0020.0002] # PAU CIN HAU LETTER FINAL K
-11ADF ; [.3EB4.0020.0002] # PAU CIN HAU LETTER FINAL M
-11AE0 ; [.3EB5.0020.0002] # PAU CIN HAU LETTER FINAL N
-11AE1 ; [.3EB6.0020.0002] # PAU CIN HAU LETTER FINAL L
-11AE2 ; [.3EB7.0020.0002] # PAU CIN HAU LETTER FINAL W
-11AE3 ; [.3EB8.0020.0002] # PAU CIN HAU LETTER FINAL NG
-11ADE ; [.3EB9.0020.0002] # PAU CIN HAU LETTER FINAL T
-11AE4 ; [.3EBA.0020.0002] # PAU CIN HAU LETTER FINAL Y
-11AEF ; [.3EBB.0020.0002] # PAU CIN HAU MID-LEVEL TONE
-11AF2 ; [.3EBC.0020.0002] # PAU CIN HAU MID-LEVEL TONE FINAL
-11AF1 ; [.3EBD.0020.0002] # PAU CIN HAU MID-LEVEL TONE LONG FINAL
-11AE6 ; [.3EBE.0020.0002] # PAU CIN HAU RISING TONE
-11AE9 ; [.3EBF.0020.0002] # PAU CIN HAU RISING TONE FINAL
-11AE5 ; [.3EC0.0020.0002] # PAU CIN HAU RISING TONE LONG
-11AE8 ; [.3EC1.0020.0002] # PAU CIN HAU RISING TONE LONG FINAL
-11AF4 ; [.3EC2.0020.0002] # PAU CIN HAU LOW-FALLING TONE
-11AF7 ; [.3EC3.0020.0002] # PAU CIN HAU LOW-FALLING TONE FINAL
-11AF3 ; [.3EC4.0020.0002] # PAU CIN HAU LOW-FALLING TONE LONG
-11AF6 ; [.3EC5.0020.0002] # PAU CIN HAU LOW-FALLING TONE LONG FINAL
-11AEC ; [.3EC6.0020.0002] # PAU CIN HAU SANDHI TONE
-11AEE ; [.3EC7.0020.0002] # PAU CIN HAU SANDHI TONE FINAL
-11AEB ; [.3EC8.0020.0002] # PAU CIN HAU SANDHI TONE LONG
-11AED ; [.3EC9.0020.0002] # PAU CIN HAU SANDHI TONE LONG FINAL
-11AF5 ; [.3ECA.0020.0002] # PAU CIN HAU GLOTTAL STOP
-11AF8 ; [.3ECB.0020.0002] # PAU CIN HAU GLOTTAL STOP FINAL
-11AE7 ; [.3ECC.0020.0002] # PAU CIN HAU SANDHI GLOTTAL STOP
-11AEA ; [.3ECD.0020.0002] # PAU CIN HAU SANDHI GLOTTAL STOP FINAL
-11AF0 ; [.3ECE.0020.0002] # PAU CIN HAU GLOTTAL STOP VARIANT
-16B00 ; [.3ECF.0020.0002] # PAHAWH HMONG VOWEL KEEB
-16B01 ; [.3ED0.0020.0002] # PAHAWH HMONG VOWEL KEEV
-16B02 ; [.3ED1.0020.0002] # PAHAWH HMONG VOWEL KIB
-16B03 ; [.3ED2.0020.0002] # PAHAWH HMONG VOWEL KIV
-16B04 ; [.3ED3.0020.0002] # PAHAWH HMONG VOWEL KAUB
-16B05 ; [.3ED4.0020.0002] # PAHAWH HMONG VOWEL KAUV
-16B06 ; [.3ED5.0020.0002] # PAHAWH HMONG VOWEL KUB
-16B07 ; [.3ED6.0020.0002] # PAHAWH HMONG VOWEL KUV
-16B08 ; [.3ED7.0020.0002] # PAHAWH HMONG VOWEL KEB
-16B09 ; [.3ED8.0020.0002] # PAHAWH HMONG VOWEL KEV
-16B0A ; [.3ED9.0020.0002] # PAHAWH HMONG VOWEL KAIB
-16B0B ; [.3EDA.0020.0002] # PAHAWH HMONG VOWEL KAIV
-16B0C ; [.3EDB.0020.0002] # PAHAWH HMONG VOWEL KOOB
-16B0D ; [.3EDC.0020.0002] # PAHAWH HMONG VOWEL KOOV
-16B0E ; [.3EDD.0020.0002] # PAHAWH HMONG VOWEL KAWB
-16B0F ; [.3EDE.0020.0002] # PAHAWH HMONG VOWEL KAWV
-16B10 ; [.3EDF.0020.0002] # PAHAWH HMONG VOWEL KUAB
-16B11 ; [.3EE0.0020.0002] # PAHAWH HMONG VOWEL KUAV
-16B12 ; [.3EE1.0020.0002] # PAHAWH HMONG VOWEL KOB
-16B13 ; [.3EE2.0020.0002] # PAHAWH HMONG VOWEL KOV
-16B14 ; [.3EE3.0020.0002] # PAHAWH HMONG VOWEL KIAB
-16B15 ; [.3EE4.0020.0002] # PAHAWH HMONG VOWEL KIAV
-16B16 ; [.3EE5.0020.0002] # PAHAWH HMONG VOWEL KAB
-16B17 ; [.3EE6.0020.0002] # PAHAWH HMONG VOWEL KAV
-16B18 ; [.3EE7.0020.0002] # PAHAWH HMONG VOWEL KWB
-16B19 ; [.3EE8.0020.0002] # PAHAWH HMONG VOWEL KWV
-16B1A ; [.3EE9.0020.0002] # PAHAWH HMONG VOWEL KAAB
-16B1B ; [.3EEA.0020.0002] # PAHAWH HMONG VOWEL KAAV
-16B1C ; [.3EEB.0020.0002] # PAHAWH HMONG CONSONANT VAU
-16B1D ; [.3EEC.0020.0002] # PAHAWH HMONG CONSONANT NTSAU
-16B1E ; [.3EED.0020.0002] # PAHAWH HMONG CONSONANT LAU
-16B1F ; [.3EEE.0020.0002] # PAHAWH HMONG CONSONANT HAU
-16B20 ; [.3EEF.0020.0002] # PAHAWH HMONG CONSONANT NLAU
-16B21 ; [.3EF0.0020.0002] # PAHAWH HMONG CONSONANT RAU
-16B22 ; [.3EF1.0020.0002] # PAHAWH HMONG CONSONANT NKAU
-16B23 ; [.3EF2.0020.0002] # PAHAWH HMONG CONSONANT QHAU
-16B24 ; [.3EF3.0020.0002] # PAHAWH HMONG CONSONANT YAU
-16B25 ; [.3EF4.0020.0002] # PAHAWH HMONG CONSONANT HLAU
-16B26 ; [.3EF5.0020.0002] # PAHAWH HMONG CONSONANT MAU
-16B27 ; [.3EF6.0020.0002] # PAHAWH HMONG CONSONANT CHAU
-16B28 ; [.3EF7.0020.0002] # PAHAWH HMONG CONSONANT NCHAU
-16B29 ; [.3EF8.0020.0002] # PAHAWH HMONG CONSONANT HNAU
-16B2A ; [.3EF9.0020.0002] # PAHAWH HMONG CONSONANT PLHAU
-16B2B ; [.3EFA.0020.0002] # PAHAWH HMONG CONSONANT NTHAU
-16B2C ; [.3EFB.0020.0002] # PAHAWH HMONG CONSONANT NAU
-16B2D ; [.3EFC.0020.0002] # PAHAWH HMONG CONSONANT AU
-16B2E ; [.3EFD.0020.0002] # PAHAWH HMONG CONSONANT XAU
-16B2F ; [.3EFE.0020.0002] # PAHAWH HMONG CONSONANT CAU
-16B40 ; [.3EFF.0020.0002] # PAHAWH HMONG SIGN VOS SEEV
-16B41 ; [.3F00.0020.0002] # PAHAWH HMONG SIGN MEEJ SUAB
-16B63 ; [.3F01.0020.0002] # PAHAWH HMONG SIGN VOS LUB
-16B64 ; [.3F02.0020.0002] # PAHAWH HMONG SIGN XYOO
-16B65 ; [.3F03.0020.0002] # PAHAWH HMONG SIGN HLI
-16B66 ; [.3F04.0020.0002] # PAHAWH HMONG SIGN THIRD-STAGE HLI
-16B67 ; [.3F05.0020.0002] # PAHAWH HMONG SIGN ZWJ THAJ
-16B68 ; [.3F06.0020.0002] # PAHAWH HMONG SIGN HNUB
-16B69 ; [.3F07.0020.0002] # PAHAWH HMONG SIGN NQIG
-16B6A ; [.3F08.0020.0002] # PAHAWH HMONG SIGN XIAB
-16B6B ; [.3F09.0020.0002] # PAHAWH HMONG SIGN NTUJ
-16B6C ; [.3F0A.0020.0002] # PAHAWH HMONG SIGN AV
-16B6D ; [.3F0B.0020.0002] # PAHAWH HMONG SIGN TXHEEJ CEEV
-16B6E ; [.3F0C.0020.0002] # PAHAWH HMONG SIGN MEEJ TSEEB
-16B6F ; [.3F0D.0020.0002] # PAHAWH HMONG SIGN TAU
-16B70 ; [.3F0E.0020.0002] # PAHAWH HMONG SIGN LOS
-16B71 ; [.3F0F.0020.0002] # PAHAWH HMONG SIGN MUS
-16B72 ; [.3F10.0020.0002] # PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG
-16B73 ; [.3F11.0020.0002] # PAHAWH HMONG SIGN CIM CUAM TSHOOJ
-16B74 ; [.3F12.0020.0002] # PAHAWH HMONG SIGN CIM TXWV
-16B75 ; [.3F13.0020.0002] # PAHAWH HMONG SIGN CIM TXWV CHWV
-16B76 ; [.3F14.0020.0002] # PAHAWH HMONG SIGN CIM PUB DAWB
-16B77 ; [.3F15.0020.0002] # PAHAWH HMONG SIGN CIM NRES TOS
-16B7D ; [.3F16.0020.0002] # PAHAWH HMONG CLAN SIGN TSHEEJ
-16B7E ; [.3F17.0020.0002] # PAHAWH HMONG CLAN SIGN YEEG
-16B7F ; [.3F18.0020.0002] # PAHAWH HMONG CLAN SIGN LIS
-16B80 ; [.3F19.0020.0002] # PAHAWH HMONG CLAN SIGN LAUJ
-16B81 ; [.3F1A.0020.0002] # PAHAWH HMONG CLAN SIGN XYOOJ
-16B82 ; [.3F1B.0020.0002] # PAHAWH HMONG CLAN SIGN KOO
-16B83 ; [.3F1C.0020.0002] # PAHAWH HMONG CLAN SIGN HAWJ
-16B84 ; [.3F1D.0020.0002] # PAHAWH HMONG CLAN SIGN MUAS
-16B85 ; [.3F1E.0020.0002] # PAHAWH HMONG CLAN SIGN THOJ
-16B86 ; [.3F1F.0020.0002] # PAHAWH HMONG CLAN SIGN TSAB
-16B87 ; [.3F20.0020.0002] # PAHAWH HMONG CLAN SIGN PHAB
-16B88 ; [.3F21.0020.0002] # PAHAWH HMONG CLAN SIGN KHAB
-16B89 ; [.3F22.0020.0002] # PAHAWH HMONG CLAN SIGN HAM
-16B8A ; [.3F23.0020.0002] # PAHAWH HMONG CLAN SIGN VAJ
-16B8B ; [.3F24.0020.0002] # PAHAWH HMONG CLAN SIGN FAJ
-16B8C ; [.3F25.0020.0002] # PAHAWH HMONG CLAN SIGN YAJ
-16B8D ; [.3F26.0020.0002] # PAHAWH HMONG CLAN SIGN TSWB
-16B8E ; [.3F27.0020.0002] # PAHAWH HMONG CLAN SIGN KWM
-16B8F ; [.3F28.0020.0002] # PAHAWH HMONG CLAN SIGN VWJ
-10280 ; [.3F29.0020.0002] # LYCIAN LETTER A
-10281 ; [.3F2A.0020.0002] # LYCIAN LETTER E
-10282 ; [.3F2B.0020.0002] # LYCIAN LETTER B
-10283 ; [.3F2C.0020.0002] # LYCIAN LETTER BH
-10284 ; [.3F2D.0020.0002] # LYCIAN LETTER G
-10285 ; [.3F2E.0020.0002] # LYCIAN LETTER D
-10286 ; [.3F2F.0020.0002] # LYCIAN LETTER I
-10287 ; [.3F30.0020.0002] # LYCIAN LETTER W
-10288 ; [.3F31.0020.0002] # LYCIAN LETTER Z
-10289 ; [.3F32.0020.0002] # LYCIAN LETTER TH
-1028A ; [.3F33.0020.0002] # LYCIAN LETTER J
-1028B ; [.3F34.0020.0002] # LYCIAN LETTER K
-1028C ; [.3F35.0020.0002] # LYCIAN LETTER Q
-1028D ; [.3F36.0020.0002] # LYCIAN LETTER L
-1028E ; [.3F37.0020.0002] # LYCIAN LETTER M
-1028F ; [.3F38.0020.0002] # LYCIAN LETTER N
-10290 ; [.3F39.0020.0002] # LYCIAN LETTER MM
-10291 ; [.3F3A.0020.0002] # LYCIAN LETTER NN
-10292 ; [.3F3B.0020.0002] # LYCIAN LETTER U
-10293 ; [.3F3C.0020.0002] # LYCIAN LETTER P
-10294 ; [.3F3D.0020.0002] # LYCIAN LETTER KK
-10295 ; [.3F3E.0020.0002] # LYCIAN LETTER R
-10296 ; [.3F3F.0020.0002] # LYCIAN LETTER S
-10297 ; [.3F40.0020.0002] # LYCIAN LETTER T
-10298 ; [.3F41.0020.0002] # LYCIAN LETTER TT
-10299 ; [.3F42.0020.0002] # LYCIAN LETTER AN
-1029A ; [.3F43.0020.0002] # LYCIAN LETTER EN
-1029B ; [.3F44.0020.0002] # LYCIAN LETTER H
-1029C ; [.3F45.0020.0002] # LYCIAN LETTER X
-102A0 ; [.3F46.0020.0002] # CARIAN LETTER A
-102A1 ; [.3F47.0020.0002] # CARIAN LETTER P2
-102A2 ; [.3F48.0020.0002] # CARIAN LETTER D
-102A3 ; [.3F49.0020.0002] # CARIAN LETTER L
-102A4 ; [.3F4A.0020.0002] # CARIAN LETTER UUU
-102A5 ; [.3F4B.0020.0002] # CARIAN LETTER R
-102A6 ; [.3F4C.0020.0002] # CARIAN LETTER LD
-102A7 ; [.3F4D.0020.0002] # CARIAN LETTER A2
-102A8 ; [.3F4E.0020.0002] # CARIAN LETTER Q
-102A9 ; [.3F4F.0020.0002] # CARIAN LETTER B
-102AA ; [.3F50.0020.0002] # CARIAN LETTER M
-102AB ; [.3F51.0020.0002] # CARIAN LETTER O
-102AC ; [.3F52.0020.0002] # CARIAN LETTER D2
-102AD ; [.3F53.0020.0002] # CARIAN LETTER T
-102AE ; [.3F54.0020.0002] # CARIAN LETTER SH
-102AF ; [.3F55.0020.0002] # CARIAN LETTER SH2
-102B0 ; [.3F56.0020.0002] # CARIAN LETTER S
-102B1 ; [.3F57.0020.0002] # CARIAN LETTER C-18
-102B2 ; [.3F58.0020.0002] # CARIAN LETTER U
-102B3 ; [.3F59.0020.0002] # CARIAN LETTER NN
-102B4 ; [.3F5A.0020.0002] # CARIAN LETTER X
-102B5 ; [.3F5B.0020.0002] # CARIAN LETTER N
-102B6 ; [.3F5C.0020.0002] # CARIAN LETTER TT2
-102B7 ; [.3F5D.0020.0002] # CARIAN LETTER P
-102B8 ; [.3F5E.0020.0002] # CARIAN LETTER SS
-102B9 ; [.3F5F.0020.0002] # CARIAN LETTER I
-102BA ; [.3F60.0020.0002] # CARIAN LETTER E
-102BB ; [.3F61.0020.0002] # CARIAN LETTER UUUU
-102BC ; [.3F62.0020.0002] # CARIAN LETTER K
-102BD ; [.3F63.0020.0002] # CARIAN LETTER K2
-102BE ; [.3F64.0020.0002] # CARIAN LETTER ND
-102BF ; [.3F65.0020.0002] # CARIAN LETTER UU
-102C0 ; [.3F66.0020.0002] # CARIAN LETTER G
-102C1 ; [.3F67.0020.0002] # CARIAN LETTER G2
-102C2 ; [.3F68.0020.0002] # CARIAN LETTER ST
-102C3 ; [.3F69.0020.0002] # CARIAN LETTER ST2
-102C4 ; [.3F6A.0020.0002] # CARIAN LETTER NG
-102C5 ; [.3F6B.0020.0002] # CARIAN LETTER II
-102C6 ; [.3F6C.0020.0002] # CARIAN LETTER C-39
-102C7 ; [.3F6D.0020.0002] # CARIAN LETTER TT
-102C8 ; [.3F6E.0020.0002] # CARIAN LETTER UUU2
-102C9 ; [.3F6F.0020.0002] # CARIAN LETTER RR
-102CA ; [.3F70.0020.0002] # CARIAN LETTER MB
-102CB ; [.3F71.0020.0002] # CARIAN LETTER MB2
-102CC ; [.3F72.0020.0002] # CARIAN LETTER MB3
-102CD ; [.3F73.0020.0002] # CARIAN LETTER MB4
-102CE ; [.3F74.0020.0002] # CARIAN LETTER LD2
-102CF ; [.3F75.0020.0002] # CARIAN LETTER E2
-102D0 ; [.3F76.0020.0002] # CARIAN LETTER UUU3
-10920 ; [.3F77.0020.0002] # LYDIAN LETTER A
-10921 ; [.3F78.0020.0002] # LYDIAN LETTER B
-10922 ; [.3F79.0020.0002] # LYDIAN LETTER G
-10923 ; [.3F7A.0020.0002] # LYDIAN LETTER D
-10924 ; [.3F7B.0020.0002] # LYDIAN LETTER E
-10925 ; [.3F7C.0020.0002] # LYDIAN LETTER V
-10926 ; [.3F7D.0020.0002] # LYDIAN LETTER I
-10927 ; [.3F7E.0020.0002] # LYDIAN LETTER Y
-10928 ; [.3F7F.0020.0002] # LYDIAN LETTER K
-10929 ; [.3F80.0020.0002] # LYDIAN LETTER L
-1092A ; [.3F81.0020.0002] # LYDIAN LETTER M
-1092B ; [.3F82.0020.0002] # LYDIAN LETTER N
-1092C ; [.3F83.0020.0002] # LYDIAN LETTER O
-1092D ; [.3F84.0020.0002] # LYDIAN LETTER R
-1092E ; [.3F85.0020.0002] # LYDIAN LETTER SS
-1092F ; [.3F86.0020.0002] # LYDIAN LETTER T
-10930 ; [.3F87.0020.0002] # LYDIAN LETTER U
-10931 ; [.3F88.0020.0002] # LYDIAN LETTER F
-10932 ; [.3F89.0020.0002] # LYDIAN LETTER Q
-10933 ; [.3F8A.0020.0002] # LYDIAN LETTER S
-10934 ; [.3F8B.0020.0002] # LYDIAN LETTER TT
-10935 ; [.3F8C.0020.0002] # LYDIAN LETTER AN
-10936 ; [.3F8D.0020.0002] # LYDIAN LETTER EN
-10937 ; [.3F8E.0020.0002] # LYDIAN LETTER LY
-10938 ; [.3F8F.0020.0002] # LYDIAN LETTER NN
-10939 ; [.3F90.0020.0002] # LYDIAN LETTER C
-10300 ; [.3F91.0020.0002] # OLD ITALIC LETTER A
-10301 ; [.3F92.0020.0002] # OLD ITALIC LETTER BE
-10302 ; [.3F93.0020.0002] # OLD ITALIC LETTER KE
-10303 ; [.3F94.0020.0002] # OLD ITALIC LETTER DE
-10304 ; [.3F95.0020.0002] # OLD ITALIC LETTER E
-10305 ; [.3F96.0020.0002] # OLD ITALIC LETTER VE
-10306 ; [.3F97.0020.0002] # OLD ITALIC LETTER ZE
-10307 ; [.3F98.0020.0002] # OLD ITALIC LETTER HE
-10308 ; [.3F99.0020.0002] # OLD ITALIC LETTER THE
-10309 ; [.3F9A.0020.0002] # OLD ITALIC LETTER I
-1030A ; [.3F9B.0020.0002] # OLD ITALIC LETTER KA
-1030B ; [.3F9C.0020.0002] # OLD ITALIC LETTER EL
-1030C ; [.3F9D.0020.0002] # OLD ITALIC LETTER EM
-1030D ; [.3F9E.0020.0002] # OLD ITALIC LETTER EN
-1030E ; [.3F9F.0020.0002] # OLD ITALIC LETTER ESH
-1031F ; [.3FA0.0020.0002] # OLD ITALIC LETTER ESS
-1030F ; [.3FA1.0020.0002] # OLD ITALIC LETTER O
-10310 ; [.3FA2.0020.0002] # OLD ITALIC LETTER PE
-10311 ; [.3FA3.0020.0002] # OLD ITALIC LETTER SHE
-10312 ; [.3FA4.0020.0002] # OLD ITALIC LETTER KU
-10313 ; [.3FA5.0020.0002] # OLD ITALIC LETTER ER
-10314 ; [.3FA6.0020.0002] # OLD ITALIC LETTER ES
-10315 ; [.3FA7.0020.0002] # OLD ITALIC LETTER TE
-10316 ; [.3FA8.0020.0002] # OLD ITALIC LETTER U
-10317 ; [.3FA9.0020.0002] # OLD ITALIC LETTER EKS
-10318 ; [.3FAA.0020.0002] # OLD ITALIC LETTER PHE
-10319 ; [.3FAB.0020.0002] # OLD ITALIC LETTER KHE
-1031A ; [.3FAC.0020.0002] # OLD ITALIC LETTER EF
-1031B ; [.3FAD.0020.0002] # OLD ITALIC LETTER ERS
-1031C ; [.3FAE.0020.0002] # OLD ITALIC LETTER CHE
-1031D ; [.3FAF.0020.0002] # OLD ITALIC LETTER II
-1031E ; [.3FB0.0020.0002] # OLD ITALIC LETTER UU
-10330 ; [.3FB1.0020.0002] # GOTHIC LETTER AHSA
-10331 ; [.3FB2.0020.0002] # GOTHIC LETTER BAIRKAN
-10332 ; [.3FB3.0020.0002] # GOTHIC LETTER GIBA
-10333 ; [.3FB4.0020.0002] # GOTHIC LETTER DAGS
-10334 ; [.3FB5.0020.0002] # GOTHIC LETTER AIHVUS
-10335 ; [.3FB6.0020.0002] # GOTHIC LETTER QAIRTHRA
-10336 ; [.3FB7.0020.0002] # GOTHIC LETTER IUJA
-10337 ; [.3FB8.0020.0002] # GOTHIC LETTER HAGL
-10338 ; [.3FB9.0020.0002] # GOTHIC LETTER THIUTH
-10339 ; [.3FBA.0020.0002] # GOTHIC LETTER EIS
-1033A ; [.3FBB.0020.0002] # GOTHIC LETTER KUSMA
-1033B ; [.3FBC.0020.0002] # GOTHIC LETTER LAGUS
-1033C ; [.3FBD.0020.0002] # GOTHIC LETTER MANNA
-1033D ; [.3FBE.0020.0002] # GOTHIC LETTER NAUTHS
-1033E ; [.3FBF.0020.0002] # GOTHIC LETTER JER
-1033F ; [.3FC0.0020.0002] # GOTHIC LETTER URUS
-10340 ; [.3FC1.0020.0002] # GOTHIC LETTER PAIRTHRA
-10341 ; [.3FC2.0020.0002] # GOTHIC LETTER NINETY
-10342 ; [.3FC3.0020.0002] # GOTHIC LETTER RAIDA
-10343 ; [.3FC4.0020.0002] # GOTHIC LETTER SAUIL
-10344 ; [.3FC5.0020.0002] # GOTHIC LETTER TEIWS
-10345 ; [.3FC6.0020.0002] # GOTHIC LETTER WINJA
-10346 ; [.3FC7.0020.0002] # GOTHIC LETTER FAIHU
-10347 ; [.3FC8.0020.0002] # GOTHIC LETTER IGGWS
-10348 ; [.3FC9.0020.0002] # GOTHIC LETTER HWAIR
-10349 ; [.3FCA.0020.0002] # GOTHIC LETTER OTHAL
-1034A ; [.3FCB.0020.0002] # GOTHIC LETTER NINE HUNDRED
-10428 ; [.3FCC.0020.0002] # DESERET SMALL LETTER LONG I
-10400 ; [.3FCC.0020.0008] # DESERET CAPITAL LETTER LONG I
-10429 ; [.3FCD.0020.0002] # DESERET SMALL LETTER LONG E
-10401 ; [.3FCD.0020.0008] # DESERET CAPITAL LETTER LONG E
-1042A ; [.3FCE.0020.0002] # DESERET SMALL LETTER LONG A
-10402 ; [.3FCE.0020.0008] # DESERET CAPITAL LETTER LONG A
-1042B ; [.3FCF.0020.0002] # DESERET SMALL LETTER LONG AH
-10403 ; [.3FCF.0020.0008] # DESERET CAPITAL LETTER LONG AH
-1042C ; [.3FD0.0020.0002] # DESERET SMALL LETTER LONG O
-10404 ; [.3FD0.0020.0008] # DESERET CAPITAL LETTER LONG O
-1042D ; [.3FD1.0020.0002] # DESERET SMALL LETTER LONG OO
-10405 ; [.3FD1.0020.0008] # DESERET CAPITAL LETTER LONG OO
-1042E ; [.3FD2.0020.0002] # DESERET SMALL LETTER SHORT I
-10406 ; [.3FD2.0020.0008] # DESERET CAPITAL LETTER SHORT I
-1042F ; [.3FD3.0020.0002] # DESERET SMALL LETTER SHORT E
-10407 ; [.3FD3.0020.0008] # DESERET CAPITAL LETTER SHORT E
-10430 ; [.3FD4.0020.0002] # DESERET SMALL LETTER SHORT A
-10408 ; [.3FD4.0020.0008] # DESERET CAPITAL LETTER SHORT A
-10431 ; [.3FD5.0020.0002] # DESERET SMALL LETTER SHORT AH
-10409 ; [.3FD5.0020.0008] # DESERET CAPITAL LETTER SHORT AH
-10432 ; [.3FD6.0020.0002] # DESERET SMALL LETTER SHORT O
-1040A ; [.3FD6.0020.0008] # DESERET CAPITAL LETTER SHORT O
-10433 ; [.3FD7.0020.0002] # DESERET SMALL LETTER SHORT OO
-1040B ; [.3FD7.0020.0008] # DESERET CAPITAL LETTER SHORT OO
-10434 ; [.3FD8.0020.0002] # DESERET SMALL LETTER AY
-1040C ; [.3FD8.0020.0008] # DESERET CAPITAL LETTER AY
-10435 ; [.3FD9.0020.0002] # DESERET SMALL LETTER OW
-1040D ; [.3FD9.0020.0008] # DESERET CAPITAL LETTER OW
-10436 ; [.3FDA.0020.0002] # DESERET SMALL LETTER WU
-1040E ; [.3FDA.0020.0008] # DESERET CAPITAL LETTER WU
-10437 ; [.3FDB.0020.0002] # DESERET SMALL LETTER YEE
-1040F ; [.3FDB.0020.0008] # DESERET CAPITAL LETTER YEE
-10438 ; [.3FDC.0020.0002] # DESERET SMALL LETTER H
-10410 ; [.3FDC.0020.0008] # DESERET CAPITAL LETTER H
-10439 ; [.3FDD.0020.0002] # DESERET SMALL LETTER PEE
-10411 ; [.3FDD.0020.0008] # DESERET CAPITAL LETTER PEE
-1043A ; [.3FDE.0020.0002] # DESERET SMALL LETTER BEE
-10412 ; [.3FDE.0020.0008] # DESERET CAPITAL LETTER BEE
-1043B ; [.3FDF.0020.0002] # DESERET SMALL LETTER TEE
-10413 ; [.3FDF.0020.0008] # DESERET CAPITAL LETTER TEE
-1043C ; [.3FE0.0020.0002] # DESERET SMALL LETTER DEE
-10414 ; [.3FE0.0020.0008] # DESERET CAPITAL LETTER DEE
-1043D ; [.3FE1.0020.0002] # DESERET SMALL LETTER CHEE
-10415 ; [.3FE1.0020.0008] # DESERET CAPITAL LETTER CHEE
-1043E ; [.3FE2.0020.0002] # DESERET SMALL LETTER JEE
-10416 ; [.3FE2.0020.0008] # DESERET CAPITAL LETTER JEE
-1043F ; [.3FE3.0020.0002] # DESERET SMALL LETTER KAY
-10417 ; [.3FE3.0020.0008] # DESERET CAPITAL LETTER KAY
-10440 ; [.3FE4.0020.0002] # DESERET SMALL LETTER GAY
-10418 ; [.3FE4.0020.0008] # DESERET CAPITAL LETTER GAY
-10441 ; [.3FE5.0020.0002] # DESERET SMALL LETTER EF
-10419 ; [.3FE5.0020.0008] # DESERET CAPITAL LETTER EF
-10442 ; [.3FE6.0020.0002] # DESERET SMALL LETTER VEE
-1041A ; [.3FE6.0020.0008] # DESERET CAPITAL LETTER VEE
-10443 ; [.3FE7.0020.0002] # DESERET SMALL LETTER ETH
-1041B ; [.3FE7.0020.0008] # DESERET CAPITAL LETTER ETH
-10444 ; [.3FE8.0020.0002] # DESERET SMALL LETTER THEE
-1041C ; [.3FE8.0020.0008] # DESERET CAPITAL LETTER THEE
-10445 ; [.3FE9.0020.0002] # DESERET SMALL LETTER ES
-1041D ; [.3FE9.0020.0008] # DESERET CAPITAL LETTER ES
-10446 ; [.3FEA.0020.0002] # DESERET SMALL LETTER ZEE
-1041E ; [.3FEA.0020.0008] # DESERET CAPITAL LETTER ZEE
-10447 ; [.3FEB.0020.0002] # DESERET SMALL LETTER ESH
-1041F ; [.3FEB.0020.0008] # DESERET CAPITAL LETTER ESH
-10448 ; [.3FEC.0020.0002] # DESERET SMALL LETTER ZHEE
-10420 ; [.3FEC.0020.0008] # DESERET CAPITAL LETTER ZHEE
-10449 ; [.3FED.0020.0002] # DESERET SMALL LETTER ER
-10421 ; [.3FED.0020.0008] # DESERET CAPITAL LETTER ER
-1044A ; [.3FEE.0020.0002] # DESERET SMALL LETTER EL
-10422 ; [.3FEE.0020.0008] # DESERET CAPITAL LETTER EL
-1044B ; [.3FEF.0020.0002] # DESERET SMALL LETTER EM
-10423 ; [.3FEF.0020.0008] # DESERET CAPITAL LETTER EM
-1044C ; [.3FF0.0020.0002] # DESERET SMALL LETTER EN
-10424 ; [.3FF0.0020.0008] # DESERET CAPITAL LETTER EN
-1044D ; [.3FF1.0020.0002] # DESERET SMALL LETTER ENG
-10425 ; [.3FF1.0020.0008] # DESERET CAPITAL LETTER ENG
-1044E ; [.3FF2.0020.0002] # DESERET SMALL LETTER OI
-10426 ; [.3FF2.0020.0008] # DESERET CAPITAL LETTER OI
-1044F ; [.3FF3.0020.0002] # DESERET SMALL LETTER EW
-10427 ; [.3FF3.0020.0008] # DESERET CAPITAL LETTER EW
-10450 ; [.3FF4.0020.0002] # SHAVIAN LETTER PEEP
-10451 ; [.3FF5.0020.0002] # SHAVIAN LETTER TOT
-10452 ; [.3FF6.0020.0002] # SHAVIAN LETTER KICK
-10453 ; [.3FF7.0020.0002] # SHAVIAN LETTER FEE
-10454 ; [.3FF8.0020.0002] # SHAVIAN LETTER THIGH
-10455 ; [.3FF9.0020.0002] # SHAVIAN LETTER SO
-10456 ; [.3FFA.0020.0002] # SHAVIAN LETTER SURE
-10457 ; [.3FFB.0020.0002] # SHAVIAN LETTER CHURCH
-10458 ; [.3FFC.0020.0002] # SHAVIAN LETTER YEA
-10459 ; [.3FFD.0020.0002] # SHAVIAN LETTER HUNG
-1045A ; [.3FFE.0020.0002] # SHAVIAN LETTER BIB
-1045B ; [.3FFF.0020.0002] # SHAVIAN LETTER DEAD
-1045C ; [.4000.0020.0002] # SHAVIAN LETTER GAG
-1045D ; [.4001.0020.0002] # SHAVIAN LETTER VOW
-1045E ; [.4002.0020.0002] # SHAVIAN LETTER THEY
-1045F ; [.4003.0020.0002] # SHAVIAN LETTER ZOO
-10460 ; [.4004.0020.0002] # SHAVIAN LETTER MEASURE
-10461 ; [.4005.0020.0002] # SHAVIAN LETTER JUDGE
-10462 ; [.4006.0020.0002] # SHAVIAN LETTER WOE
-10463 ; [.4007.0020.0002] # SHAVIAN LETTER HA-HA
-10464 ; [.4008.0020.0002] # SHAVIAN LETTER LOLL
-10465 ; [.4009.0020.0002] # SHAVIAN LETTER MIME
-10466 ; [.400A.0020.0002] # SHAVIAN LETTER IF
-10467 ; [.400B.0020.0002] # SHAVIAN LETTER EGG
-10468 ; [.400C.0020.0002] # SHAVIAN LETTER ASH
-10469 ; [.400D.0020.0002] # SHAVIAN LETTER ADO
-1046A ; [.400E.0020.0002] # SHAVIAN LETTER ON
-1046B ; [.400F.0020.0002] # SHAVIAN LETTER WOOL
-1046C ; [.4010.0020.0002] # SHAVIAN LETTER OUT
-1046D ; [.4011.0020.0002] # SHAVIAN LETTER AH
-1046E ; [.4012.0020.0002] # SHAVIAN LETTER ROAR
-1046F ; [.4013.0020.0002] # SHAVIAN LETTER NUN
-10470 ; [.4014.0020.0002] # SHAVIAN LETTER EAT
-10471 ; [.4015.0020.0002] # SHAVIAN LETTER AGE
-10472 ; [.4016.0020.0002] # SHAVIAN LETTER ICE
-10473 ; [.4017.0020.0002] # SHAVIAN LETTER UP
-10474 ; [.4018.0020.0002] # SHAVIAN LETTER OAK
-10475 ; [.4019.0020.0002] # SHAVIAN LETTER OOZE
-10476 ; [.401A.0020.0002] # SHAVIAN LETTER OIL
-10477 ; [.401B.0020.0002] # SHAVIAN LETTER AWE
-10478 ; [.401C.0020.0002] # SHAVIAN LETTER ARE
-10479 ; [.401D.0020.0002] # SHAVIAN LETTER OR
-1047A ; [.401E.0020.0002] # SHAVIAN LETTER AIR
-1047B ; [.401F.0020.0002] # SHAVIAN LETTER ERR
-1047C ; [.4020.0020.0002] # SHAVIAN LETTER ARRAY
-1047D ; [.4021.0020.0002] # SHAVIAN LETTER EAR
-1047E ; [.4022.0020.0002] # SHAVIAN LETTER IAN
-1047F ; [.4023.0020.0002] # SHAVIAN LETTER YEW
-1BC00 ; [.4024.0020.0002] # DUPLOYAN LETTER H
-1BC01 ; [.4025.0020.0002] # DUPLOYAN LETTER X
-1BC02 ; [.4026.0020.0002] # DUPLOYAN LETTER P
-1BC03 ; [.4027.0020.0002] # DUPLOYAN LETTER T
-1BC04 ; [.4028.0020.0002] # DUPLOYAN LETTER F
-1BC05 ; [.4029.0020.0002] # DUPLOYAN LETTER K
-1BC06 ; [.402A.0020.0002] # DUPLOYAN LETTER L
-1BC07 ; [.402B.0020.0002] # DUPLOYAN LETTER B
-1BC08 ; [.402C.0020.0002] # DUPLOYAN LETTER D
-1BC09 ; [.402D.0020.0002] # DUPLOYAN LETTER V
-1BC0A ; [.402E.0020.0002] # DUPLOYAN LETTER G
-1BC0B ; [.402F.0020.0002] # DUPLOYAN LETTER R
-1BC0C ; [.4030.0020.0002] # DUPLOYAN LETTER P N
-1BC0D ; [.4031.0020.0002] # DUPLOYAN LETTER D S
-1BC0E ; [.4032.0020.0002] # DUPLOYAN LETTER F N
-1BC0F ; [.4033.0020.0002] # DUPLOYAN LETTER K M
-1BC10 ; [.4034.0020.0002] # DUPLOYAN LETTER R S
-1BC11 ; [.4035.0020.0002] # DUPLOYAN LETTER TH
-1BC12 ; [.4036.0020.0002] # DUPLOYAN LETTER SLOAN DH
-1BC13 ; [.4037.0020.0002] # DUPLOYAN LETTER DH
-1BC14 ; [.4038.0020.0002] # DUPLOYAN LETTER KK
-1BC15 ; [.4039.0020.0002] # DUPLOYAN LETTER SLOAN J
-1BC16 ; [.403A.0020.0002] # DUPLOYAN LETTER HL
-1BC17 ; [.403B.0020.0002] # DUPLOYAN LETTER LH
-1BC18 ; [.403C.0020.0002] # DUPLOYAN LETTER RH
-1BC19 ; [.403D.0020.0002] # DUPLOYAN LETTER M
-1BC1A ; [.403E.0020.0002] # DUPLOYAN LETTER N
-1BC1B ; [.403F.0020.0002] # DUPLOYAN LETTER J
-1BC1C ; [.4040.0020.0002] # DUPLOYAN LETTER S
-1BC1D ; [.4041.0020.0002] # DUPLOYAN LETTER M N
-1BC1E ; [.4042.0020.0002] # DUPLOYAN LETTER N M
-1BC1F ; [.4043.0020.0002] # DUPLOYAN LETTER J M
-1BC20 ; [.4044.0020.0002] # DUPLOYAN LETTER S J
-1BC21 ; [.4045.0020.0002] # DUPLOYAN LETTER M WITH DOT
-1BC22 ; [.4046.0020.0002] # DUPLOYAN LETTER N WITH DOT
-1BC23 ; [.4047.0020.0002] # DUPLOYAN LETTER J WITH DOT
-1BC24 ; [.4048.0020.0002] # DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE
-1BC25 ; [.4049.0020.0002] # DUPLOYAN LETTER S WITH DOT
-1BC26 ; [.404A.0020.0002] # DUPLOYAN LETTER S WITH DOT BELOW
-1BC27 ; [.404B.0020.0002] # DUPLOYAN LETTER M S
-1BC28 ; [.404C.0020.0002] # DUPLOYAN LETTER N S
-1BC29 ; [.404D.0020.0002] # DUPLOYAN LETTER J S
-1BC2A ; [.404E.0020.0002] # DUPLOYAN LETTER S S
-1BC2B ; [.404F.0020.0002] # DUPLOYAN LETTER M N S
-1BC2C ; [.4050.0020.0002] # DUPLOYAN LETTER N M S
-1BC2D ; [.4051.0020.0002] # DUPLOYAN LETTER J M S
-1BC2E ; [.4052.0020.0002] # DUPLOYAN LETTER S J S
-1BC2F ; [.4053.0020.0002] # DUPLOYAN LETTER J S WITH DOT
-1BC30 ; [.4054.0020.0002] # DUPLOYAN LETTER J N
-1BC31 ; [.4055.0020.0002] # DUPLOYAN LETTER J N S
-1BC32 ; [.4056.0020.0002] # DUPLOYAN LETTER S T
-1BC33 ; [.4057.0020.0002] # DUPLOYAN LETTER S T R
-1BC34 ; [.4058.0020.0002] # DUPLOYAN LETTER S P
-1BC35 ; [.4059.0020.0002] # DUPLOYAN LETTER S P R
-1BC36 ; [.405A.0020.0002] # DUPLOYAN LETTER T S
-1BC37 ; [.405B.0020.0002] # DUPLOYAN LETTER T R S
-1BC38 ; [.405C.0020.0002] # DUPLOYAN LETTER W
-1BC39 ; [.405D.0020.0002] # DUPLOYAN LETTER WH
-1BC3A ; [.405E.0020.0002] # DUPLOYAN LETTER W R
-1BC3B ; [.405F.0020.0002] # DUPLOYAN LETTER S N
-1BC3C ; [.4060.0020.0002] # DUPLOYAN LETTER S M
-1BC3D ; [.4061.0020.0002] # DUPLOYAN LETTER K R S
-1BC3E ; [.4062.0020.0002] # DUPLOYAN LETTER G R S
-1BC3F ; [.4063.0020.0002] # DUPLOYAN LETTER S K
-1BC40 ; [.4064.0020.0002] # DUPLOYAN LETTER S K R
-1BC41 ; [.4065.0020.0002] # DUPLOYAN LETTER A
-1BC42 ; [.4066.0020.0002] # DUPLOYAN LETTER SLOAN OW
-1BC43 ; [.4067.0020.0002] # DUPLOYAN LETTER OA
-1BC44 ; [.4068.0020.0002] # DUPLOYAN LETTER O
-1BC45 ; [.4069.0020.0002] # DUPLOYAN LETTER AOU
-1BC46 ; [.406A.0020.0002] # DUPLOYAN LETTER I
-1BC47 ; [.406B.0020.0002] # DUPLOYAN LETTER E
-1BC48 ; [.406C.0020.0002] # DUPLOYAN LETTER IE
-1BC49 ; [.406D.0020.0002] # DUPLOYAN LETTER SHORT I
-1BC4A ; [.406E.0020.0002] # DUPLOYAN LETTER UI
-1BC4B ; [.406F.0020.0002] # DUPLOYAN LETTER EE
-1BC4C ; [.4070.0020.0002] # DUPLOYAN LETTER SLOAN EH
-1BC4D ; [.4071.0020.0002] # DUPLOYAN LETTER ROMANIAN I
-1BC4E ; [.4072.0020.0002] # DUPLOYAN LETTER SLOAN EE
-1BC4F ; [.4073.0020.0002] # DUPLOYAN LETTER LONG I
-1BC50 ; [.4074.0020.0002] # DUPLOYAN LETTER YE
-1BC51 ; [.4075.0020.0002] # DUPLOYAN LETTER U
-1BC52 ; [.4076.0020.0002] # DUPLOYAN LETTER EU
-1BC53 ; [.4077.0020.0002] # DUPLOYAN LETTER XW
-1BC54 ; [.4078.0020.0002] # DUPLOYAN LETTER U N
-1BC55 ; [.4079.0020.0002] # DUPLOYAN LETTER LONG U
-1BC56 ; [.407A.0020.0002] # DUPLOYAN LETTER ROMANIAN U
-1BC57 ; [.407B.0020.0002] # DUPLOYAN LETTER UH
-1BC58 ; [.407C.0020.0002] # DUPLOYAN LETTER SLOAN U
-1BC59 ; [.407D.0020.0002] # DUPLOYAN LETTER OOH
-1BC5A ; [.407E.0020.0002] # DUPLOYAN LETTER OW
-1BC5B ; [.407F.0020.0002] # DUPLOYAN LETTER OU
-1BC5C ; [.4080.0020.0002] # DUPLOYAN LETTER WA
-1BC5D ; [.4081.0020.0002] # DUPLOYAN LETTER WO
-1BC5E ; [.4082.0020.0002] # DUPLOYAN LETTER WI
-1BC5F ; [.4083.0020.0002] # DUPLOYAN LETTER WEI
-1BC60 ; [.4084.0020.0002] # DUPLOYAN LETTER WOW
-1BC61 ; [.4085.0020.0002] # DUPLOYAN LETTER NASAL U
-1BC62 ; [.4086.0020.0002] # DUPLOYAN LETTER NASAL O
-1BC63 ; [.4087.0020.0002] # DUPLOYAN LETTER NASAL I
-1BC64 ; [.4088.0020.0002] # DUPLOYAN LETTER NASAL A
-1BC65 ; [.4089.0020.0002] # DUPLOYAN LETTER PERNIN AN
-1BC66 ; [.408A.0020.0002] # DUPLOYAN LETTER PERNIN AM
-1BC67 ; [.408B.0020.0002] # DUPLOYAN LETTER SLOAN EN
-1BC68 ; [.408C.0020.0002] # DUPLOYAN LETTER SLOAN AN
-1BC69 ; [.408D.0020.0002] # DUPLOYAN LETTER SLOAN ON
-1BC6A ; [.408E.0020.0002] # DUPLOYAN LETTER VOCALIC M
-1BC70 ; [.408F.0020.0002] # DUPLOYAN AFFIX LEFT HORIZONTAL SECANT
-1BC71 ; [.4090.0020.0002] # DUPLOYAN AFFIX MID HORIZONTAL SECANT
-1BC72 ; [.4091.0020.0002] # DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT
-1BC73 ; [.4092.0020.0002] # DUPLOYAN AFFIX LOW VERTICAL SECANT
-1BC74 ; [.4093.0020.0002] # DUPLOYAN AFFIX MID VERTICAL SECANT
-1BC75 ; [.4094.0020.0002] # DUPLOYAN AFFIX HIGH VERTICAL SECANT
-1BC76 ; [.4095.0020.0002] # DUPLOYAN AFFIX ATTACHED SECANT
-1BC77 ; [.4096.0020.0002] # DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT
-1BC78 ; [.4097.0020.0002] # DUPLOYAN AFFIX ATTACHED TANGENT
-1BC79 ; [.4098.0020.0002] # DUPLOYAN AFFIX ATTACHED TAIL
-1BC7A ; [.4099.0020.0002] # DUPLOYAN AFFIX ATTACHED E HOOK
-1BC7B ; [.409A.0020.0002] # DUPLOYAN AFFIX ATTACHED I HOOK
-1BC7C ; [.409B.0020.0002] # DUPLOYAN AFFIX ATTACHED TANGENT HOOK
-1BC80 ; [.409C.0020.0002] # DUPLOYAN AFFIX HIGH ACUTE
-1BC81 ; [.409D.0020.0002] # DUPLOYAN AFFIX HIGH TIGHT ACUTE
-1BC82 ; [.409E.0020.0002] # DUPLOYAN AFFIX HIGH GRAVE
-1BC83 ; [.409F.0020.0002] # DUPLOYAN AFFIX HIGH LONG GRAVE
-1BC84 ; [.40A0.0020.0002] # DUPLOYAN AFFIX HIGH DOT
-1BC85 ; [.40A1.0020.0002] # DUPLOYAN AFFIX HIGH CIRCLE
-1BC86 ; [.40A2.0020.0002] # DUPLOYAN AFFIX HIGH LINE
-1BC87 ; [.40A3.0020.0002] # DUPLOYAN AFFIX HIGH WAVE
-1BC88 ; [.40A4.0020.0002] # DUPLOYAN AFFIX HIGH VERTICAL
-1BC90 ; [.40A5.0020.0002] # DUPLOYAN AFFIX LOW ACUTE
-1BC91 ; [.40A6.0020.0002] # DUPLOYAN AFFIX LOW TIGHT ACUTE
-1BC92 ; [.40A7.0020.0002] # DUPLOYAN AFFIX LOW GRAVE
-1BC93 ; [.40A8.0020.0002] # DUPLOYAN AFFIX LOW LONG GRAVE
-1BC94 ; [.40A9.0020.0002] # DUPLOYAN AFFIX LOW DOT
-1BC95 ; [.40AA.0020.0002] # DUPLOYAN AFFIX LOW CIRCLE
-1BC96 ; [.40AB.0020.0002] # DUPLOYAN AFFIX LOW LINE
-1BC97 ; [.40AC.0020.0002] # DUPLOYAN AFFIX LOW WAVE
-1BC98 ; [.40AD.0020.0002] # DUPLOYAN AFFIX LOW VERTICAL
-1BC99 ; [.40AE.0020.0002] # DUPLOYAN AFFIX LOW ARROW
-10480 ; [.40AF.0020.0002] # OSMANYA LETTER ALEF
-10481 ; [.40B0.0020.0002] # OSMANYA LETTER BA
-10482 ; [.40B1.0020.0002] # OSMANYA LETTER TA
-10483 ; [.40B2.0020.0002] # OSMANYA LETTER JA
-10484 ; [.40B3.0020.0002] # OSMANYA LETTER XA
-10485 ; [.40B4.0020.0002] # OSMANYA LETTER KHA
-10486 ; [.40B5.0020.0002] # OSMANYA LETTER DEEL
-10487 ; [.40B6.0020.0002] # OSMANYA LETTER RA
-10488 ; [.40B7.0020.0002] # OSMANYA LETTER SA
-10489 ; [.40B8.0020.0002] # OSMANYA LETTER SHIIN
-1048A ; [.40B9.0020.0002] # OSMANYA LETTER DHA
-1048B ; [.40BA.0020.0002] # OSMANYA LETTER CAYN
-1048C ; [.40BB.0020.0002] # OSMANYA LETTER GA
-1048D ; [.40BC.0020.0002] # OSMANYA LETTER FA
-1048E ; [.40BD.0020.0002] # OSMANYA LETTER QAAF
-1048F ; [.40BE.0020.0002] # OSMANYA LETTER KAAF
-10490 ; [.40BF.0020.0002] # OSMANYA LETTER LAAN
-10491 ; [.40C0.0020.0002] # OSMANYA LETTER MIIN
-10492 ; [.40C1.0020.0002] # OSMANYA LETTER NUUN
-10493 ; [.40C2.0020.0002] # OSMANYA LETTER WAW
-10494 ; [.40C3.0020.0002] # OSMANYA LETTER HA
-10495 ; [.40C4.0020.0002] # OSMANYA LETTER YA
-10496 ; [.40C5.0020.0002] # OSMANYA LETTER A
-10497 ; [.40C6.0020.0002] # OSMANYA LETTER E
-10498 ; [.40C7.0020.0002] # OSMANYA LETTER I
-10499 ; [.40C8.0020.0002] # OSMANYA LETTER O
-1049A ; [.40C9.0020.0002] # OSMANYA LETTER U
-1049B ; [.40CA.0020.0002] # OSMANYA LETTER AA
-1049C ; [.40CB.0020.0002] # OSMANYA LETTER EE
-1049D ; [.40CC.0020.0002] # OSMANYA LETTER OO
-10500 ; [.40CD.0020.0002] # ELBASAN LETTER A
-10501 ; [.40CE.0020.0002] # ELBASAN LETTER BE
-10502 ; [.40CF.0020.0002] # ELBASAN LETTER CE
-10503 ; [.40D0.0020.0002] # ELBASAN LETTER CHE
-10504 ; [.40D1.0020.0002] # ELBASAN LETTER DE
-10505 ; [.40D2.0020.0002] # ELBASAN LETTER NDE
-10506 ; [.40D3.0020.0002] # ELBASAN LETTER DHE
-10507 ; [.40D4.0020.0002] # ELBASAN LETTER EI
-10508 ; [.40D5.0020.0002] # ELBASAN LETTER E
-10509 ; [.40D6.0020.0002] # ELBASAN LETTER FE
-1050A ; [.40D7.0020.0002] # ELBASAN LETTER GE
-1050B ; [.40D8.0020.0002] # ELBASAN LETTER GJE
-1050C ; [.40D9.0020.0002] # ELBASAN LETTER HE
-1050D ; [.40DA.0020.0002] # ELBASAN LETTER I
-1050E ; [.40DB.0020.0002] # ELBASAN LETTER JE
-1050F ; [.40DC.0020.0002] # ELBASAN LETTER KE
-10510 ; [.40DD.0020.0002] # ELBASAN LETTER LE
-10511 ; [.40DE.0020.0002] # ELBASAN LETTER LLE
-10512 ; [.40DF.0020.0002] # ELBASAN LETTER ME
-10513 ; [.40E0.0020.0002] # ELBASAN LETTER NE
-10514 ; [.40E1.0020.0002] # ELBASAN LETTER NA
-10515 ; [.40E2.0020.0002] # ELBASAN LETTER NJE
-10516 ; [.40E3.0020.0002] # ELBASAN LETTER O
-10517 ; [.40E4.0020.0002] # ELBASAN LETTER PE
-10518 ; [.40E5.0020.0002] # ELBASAN LETTER QE
-10519 ; [.40E6.0020.0002] # ELBASAN LETTER RE
-1051A ; [.40E7.0020.0002] # ELBASAN LETTER RRE
-1051B ; [.40E8.0020.0002] # ELBASAN LETTER SE
-1051C ; [.40E9.0020.0002] # ELBASAN LETTER SHE
-1051D ; [.40EA.0020.0002] # ELBASAN LETTER TE
-1051E ; [.40EB.0020.0002] # ELBASAN LETTER THE
-1051F ; [.40EC.0020.0002] # ELBASAN LETTER U
-10520 ; [.40ED.0020.0002] # ELBASAN LETTER VE
-10521 ; [.40EE.0020.0002] # ELBASAN LETTER XE
-10522 ; [.40EF.0020.0002] # ELBASAN LETTER Y
-10523 ; [.40F0.0020.0002] # ELBASAN LETTER ZE
-10524 ; [.40F1.0020.0002] # ELBASAN LETTER ZHE
-10525 ; [.40F2.0020.0002] # ELBASAN LETTER GHE
-10526 ; [.40F3.0020.0002] # ELBASAN LETTER GHAMMA
-10527 ; [.40F4.0020.0002] # ELBASAN LETTER KHE
-10530 ; [.40F5.0020.0002] # CAUCASIAN ALBANIAN LETTER ALT
-10531 ; [.40F6.0020.0002] # CAUCASIAN ALBANIAN LETTER BET
-10532 ; [.40F7.0020.0002] # CAUCASIAN ALBANIAN LETTER GIM
-10533 ; [.40F8.0020.0002] # CAUCASIAN ALBANIAN LETTER DAT
-10534 ; [.40F9.0020.0002] # CAUCASIAN ALBANIAN LETTER EB
-10535 ; [.40FA.0020.0002] # CAUCASIAN ALBANIAN LETTER ZARL
-10536 ; [.40FB.0020.0002] # CAUCASIAN ALBANIAN LETTER EYN
-10537 ; [.40FC.0020.0002] # CAUCASIAN ALBANIAN LETTER ZHIL
-10538 ; [.40FD.0020.0002] # CAUCASIAN ALBANIAN LETTER TAS
-10539 ; [.40FE.0020.0002] # CAUCASIAN ALBANIAN LETTER CHA
-1053A ; [.40FF.0020.0002] # CAUCASIAN ALBANIAN LETTER YOWD
-1053B ; [.4100.0020.0002] # CAUCASIAN ALBANIAN LETTER ZHA
-1053C ; [.4101.0020.0002] # CAUCASIAN ALBANIAN LETTER IRB
-1053D ; [.4102.0020.0002] # CAUCASIAN ALBANIAN LETTER SHA
-1053E ; [.4103.0020.0002] # CAUCASIAN ALBANIAN LETTER LAN
-1053F ; [.4104.0020.0002] # CAUCASIAN ALBANIAN LETTER INYA
-10540 ; [.4105.0020.0002] # CAUCASIAN ALBANIAN LETTER XEYN
-10541 ; [.4106.0020.0002] # CAUCASIAN ALBANIAN LETTER DYAN
-10542 ; [.4107.0020.0002] # CAUCASIAN ALBANIAN LETTER CAR
-10543 ; [.4108.0020.0002] # CAUCASIAN ALBANIAN LETTER JHOX
-10544 ; [.4109.0020.0002] # CAUCASIAN ALBANIAN LETTER KAR
-10545 ; [.410A.0020.0002] # CAUCASIAN ALBANIAN LETTER LYIT
-10546 ; [.410B.0020.0002] # CAUCASIAN ALBANIAN LETTER HEYT
-10547 ; [.410C.0020.0002] # CAUCASIAN ALBANIAN LETTER QAY
-10548 ; [.410D.0020.0002] # CAUCASIAN ALBANIAN LETTER AOR
-10549 ; [.410E.0020.0002] # CAUCASIAN ALBANIAN LETTER CHOY
-1054A ; [.410F.0020.0002] # CAUCASIAN ALBANIAN LETTER CHI
-1054B ; [.4110.0020.0002] # CAUCASIAN ALBANIAN LETTER CYAY
-1054C ; [.4111.0020.0002] # CAUCASIAN ALBANIAN LETTER MAQ
-1054D ; [.4112.0020.0002] # CAUCASIAN ALBANIAN LETTER QAR
-1054E ; [.4113.0020.0002] # CAUCASIAN ALBANIAN LETTER NOWC
-1054F ; [.4114.0020.0002] # CAUCASIAN ALBANIAN LETTER DZYAY
-10550 ; [.4115.0020.0002] # CAUCASIAN ALBANIAN LETTER SHAK
-10551 ; [.4116.0020.0002] # CAUCASIAN ALBANIAN LETTER JAYN
-10552 ; [.4117.0020.0002] # CAUCASIAN ALBANIAN LETTER ON
-10553 ; [.4118.0020.0002] # CAUCASIAN ALBANIAN LETTER TYAY
-10554 ; [.4119.0020.0002] # CAUCASIAN ALBANIAN LETTER FAM
-10555 ; [.411A.0020.0002] # CAUCASIAN ALBANIAN LETTER DZAY
-10556 ; [.411B.0020.0002] # CAUCASIAN ALBANIAN LETTER CHAT
-10557 ; [.411C.0020.0002] # CAUCASIAN ALBANIAN LETTER PEN
-10558 ; [.411D.0020.0002] # CAUCASIAN ALBANIAN LETTER GHEYS
-10559 ; [.411E.0020.0002] # CAUCASIAN ALBANIAN LETTER RAT
-1055A ; [.411F.0020.0002] # CAUCASIAN ALBANIAN LETTER SEYK
-1055B ; [.4120.0020.0002] # CAUCASIAN ALBANIAN LETTER VEYZ
-1055C ; [.4121.0020.0002] # CAUCASIAN ALBANIAN LETTER TIWR
-1055D ; [.4122.0020.0002] # CAUCASIAN ALBANIAN LETTER SHOY
-1055E ; [.4123.0020.0002] # CAUCASIAN ALBANIAN LETTER IWN
-1055F ; [.4124.0020.0002] # CAUCASIAN ALBANIAN LETTER CYAW
-10560 ; [.4125.0020.0002] # CAUCASIAN ALBANIAN LETTER CAYN
-10561 ; [.4126.0020.0002] # CAUCASIAN ALBANIAN LETTER YAYD
-10562 ; [.4127.0020.0002] # CAUCASIAN ALBANIAN LETTER PIWR
-10563 ; [.4128.0020.0002] # CAUCASIAN ALBANIAN LETTER KIW
-110D0 ; [.4129.0020.0002] # SORA SOMPENG LETTER SAH
-110D1 ; [.412A.0020.0002] # SORA SOMPENG LETTER TAH
-110D2 ; [.412B.0020.0002] # SORA SOMPENG LETTER BAH
-110D3 ; [.412C.0020.0002] # SORA SOMPENG LETTER CAH
-110D4 ; [.412D.0020.0002] # SORA SOMPENG LETTER DAH
-110D5 ; [.412E.0020.0002] # SORA SOMPENG LETTER GAH
-110D6 ; [.412F.0020.0002] # SORA SOMPENG LETTER MAH
-110D7 ; [.4130.0020.0002] # SORA SOMPENG LETTER NGAH
-110D8 ; [.4131.0020.0002] # SORA SOMPENG LETTER LAH
-110D9 ; [.4132.0020.0002] # SORA SOMPENG LETTER NAH
-110DA ; [.4133.0020.0002] # SORA SOMPENG LETTER VAH
-110DB ; [.4134.0020.0002] # SORA SOMPENG LETTER PAH
-110DC ; [.4135.0020.0002] # SORA SOMPENG LETTER YAH
-110DD ; [.4136.0020.0002] # SORA SOMPENG LETTER RAH
-110DE ; [.4137.0020.0002] # SORA SOMPENG LETTER HAH
-110DF ; [.4138.0020.0002] # SORA SOMPENG LETTER KAH
-110E0 ; [.4139.0020.0002] # SORA SOMPENG LETTER JAH
-110E1 ; [.413A.0020.0002] # SORA SOMPENG LETTER NYAH
-110E2 ; [.413B.0020.0002] # SORA SOMPENG LETTER AH
-110E3 ; [.413C.0020.0002] # SORA SOMPENG LETTER EEH
-110E4 ; [.413D.0020.0002] # SORA SOMPENG LETTER IH
-110E5 ; [.413E.0020.0002] # SORA SOMPENG LETTER UH
-110E6 ; [.413F.0020.0002] # SORA SOMPENG LETTER OH
-110E7 ; [.4140.0020.0002] # SORA SOMPENG LETTER EH
-110E8 ; [.4141.0020.0002] # SORA SOMPENG LETTER MAE
-16A40 ; [.4142.0020.0002] # MRO LETTER TA
-16A41 ; [.4143.0020.0002] # MRO LETTER NGI
-16A42 ; [.4144.0020.0002] # MRO LETTER YO
-16A43 ; [.4145.0020.0002] # MRO LETTER MIM
-16A44 ; [.4146.0020.0002] # MRO LETTER BA
-16A45 ; [.4147.0020.0002] # MRO LETTER DA
-16A46 ; [.4148.0020.0002] # MRO LETTER A
-16A47 ; [.4149.0020.0002] # MRO LETTER PHI
-16A48 ; [.414A.0020.0002] # MRO LETTER KHAI
-16A49 ; [.414B.0020.0002] # MRO LETTER HAO
-16A4A ; [.414C.0020.0002] # MRO LETTER DAI
-16A4B ; [.414D.0020.0002] # MRO LETTER CHU
-16A4C ; [.414E.0020.0002] # MRO LETTER KEAAE
-16A4D ; [.414F.0020.0002] # MRO LETTER OL
-16A4E ; [.4150.0020.0002] # MRO LETTER MAEM
-16A4F ; [.4151.0020.0002] # MRO LETTER NIN
-16A50 ; [.4152.0020.0002] # MRO LETTER PA
-16A51 ; [.4153.0020.0002] # MRO LETTER OO
-16A52 ; [.4154.0020.0002] # MRO LETTER O
-16A53 ; [.4155.0020.0002] # MRO LETTER RO
-16A54 ; [.4156.0020.0002] # MRO LETTER SHI
-16A55 ; [.4157.0020.0002] # MRO LETTER THEA
-16A56 ; [.4158.0020.0002] # MRO LETTER EA
-16A57 ; [.4159.0020.0002] # MRO LETTER WA
-16A58 ; [.415A.0020.0002] # MRO LETTER E
-16A59 ; [.415B.0020.0002] # MRO LETTER KO
-16A5A ; [.415C.0020.0002] # MRO LETTER LAN
-16A5B ; [.415D.0020.0002] # MRO LETTER LA
-16A5C ; [.415E.0020.0002] # MRO LETTER HAI
-16A5D ; [.415F.0020.0002] # MRO LETTER RI
-16A5E ; [.4160.0020.0002] # MRO LETTER TEK
-10000 ; [.4161.0020.0002] # LINEAR B SYLLABLE B008 A
-10001 ; [.4162.0020.0002] # LINEAR B SYLLABLE B038 E
-10002 ; [.4163.0020.0002] # LINEAR B SYLLABLE B028 I
-10003 ; [.4164.0020.0002] # LINEAR B SYLLABLE B061 O
-10004 ; [.4165.0020.0002] # LINEAR B SYLLABLE B010 U
-10005 ; [.4166.0020.0002] # LINEAR B SYLLABLE B001 DA
-10006 ; [.4167.0020.0002] # LINEAR B SYLLABLE B045 DE
-10007 ; [.4168.0020.0002] # LINEAR B SYLLABLE B007 DI
-10008 ; [.4169.0020.0002] # LINEAR B SYLLABLE B014 DO
-10009 ; [.416A.0020.0002] # LINEAR B SYLLABLE B051 DU
-1000A ; [.416B.0020.0002] # LINEAR B SYLLABLE B057 JA
-1000B ; [.416C.0020.0002] # LINEAR B SYLLABLE B046 JE
-1000D ; [.416D.0020.0002] # LINEAR B SYLLABLE B036 JO
-1000E ; [.416E.0020.0002] # LINEAR B SYLLABLE B065 JU
-1000F ; [.416F.0020.0002] # LINEAR B SYLLABLE B077 KA
-10010 ; [.4170.0020.0002] # LINEAR B SYLLABLE B044 KE
-10011 ; [.4171.0020.0002] # LINEAR B SYLLABLE B067 KI
-10012 ; [.4172.0020.0002] # LINEAR B SYLLABLE B070 KO
-10013 ; [.4173.0020.0002] # LINEAR B SYLLABLE B081 KU
-10014 ; [.4174.0020.0002] # LINEAR B SYLLABLE B080 MA
-10015 ; [.4175.0020.0002] # LINEAR B SYLLABLE B013 ME
-10016 ; [.4176.0020.0002] # LINEAR B SYLLABLE B073 MI
-10017 ; [.4177.0020.0002] # LINEAR B SYLLABLE B015 MO
-10018 ; [.4178.0020.0002] # LINEAR B SYLLABLE B023 MU
-10019 ; [.4179.0020.0002] # LINEAR B SYLLABLE B006 NA
-1001A ; [.417A.0020.0002] # LINEAR B SYLLABLE B024 NE
-1001B ; [.417B.0020.0002] # LINEAR B SYLLABLE B030 NI
-1001C ; [.417C.0020.0002] # LINEAR B SYLLABLE B052 NO
-1001D ; [.417D.0020.0002] # LINEAR B SYLLABLE B055 NU
-1001E ; [.417E.0020.0002] # LINEAR B SYLLABLE B003 PA
-1001F ; [.417F.0020.0002] # LINEAR B SYLLABLE B072 PE
-10020 ; [.4180.0020.0002] # LINEAR B SYLLABLE B039 PI
-10021 ; [.4181.0020.0002] # LINEAR B SYLLABLE B011 PO
-10022 ; [.4182.0020.0002] # LINEAR B SYLLABLE B050 PU
-10023 ; [.4183.0020.0002] # LINEAR B SYLLABLE B016 QA
-10024 ; [.4184.0020.0002] # LINEAR B SYLLABLE B078 QE
-10025 ; [.4185.0020.0002] # LINEAR B SYLLABLE B021 QI
-10026 ; [.4186.0020.0002] # LINEAR B SYLLABLE B032 QO
-10028 ; [.4187.0020.0002] # LINEAR B SYLLABLE B060 RA
-10029 ; [.4188.0020.0002] # LINEAR B SYLLABLE B027 RE
-1002A ; [.4189.0020.0002] # LINEAR B SYLLABLE B053 RI
-1002B ; [.418A.0020.0002] # LINEAR B SYLLABLE B002 RO
-1002C ; [.418B.0020.0002] # LINEAR B SYLLABLE B026 RU
-1002D ; [.418C.0020.0002] # LINEAR B SYLLABLE B031 SA
-1002E ; [.418D.0020.0002] # LINEAR B SYLLABLE B009 SE
-1002F ; [.418E.0020.0002] # LINEAR B SYLLABLE B041 SI
-10030 ; [.418F.0020.0002] # LINEAR B SYLLABLE B012 SO
-10031 ; [.4190.0020.0002] # LINEAR B SYLLABLE B058 SU
-10032 ; [.4191.0020.0002] # LINEAR B SYLLABLE B059 TA
-10033 ; [.4192.0020.0002] # LINEAR B SYLLABLE B004 TE
-10034 ; [.4193.0020.0002] # LINEAR B SYLLABLE B037 TI
-10035 ; [.4194.0020.0002] # LINEAR B SYLLABLE B005 TO
-10036 ; [.4195.0020.0002] # LINEAR B SYLLABLE B069 TU
-10037 ; [.4196.0020.0002] # LINEAR B SYLLABLE B054 WA
-10038 ; [.4197.0020.0002] # LINEAR B SYLLABLE B075 WE
-10039 ; [.4198.0020.0002] # LINEAR B SYLLABLE B040 WI
-1003A ; [.4199.0020.0002] # LINEAR B SYLLABLE B042 WO
-1003C ; [.419A.0020.0002] # LINEAR B SYLLABLE B017 ZA
-1003D ; [.419B.0020.0002] # LINEAR B SYLLABLE B074 ZE
-1003F ; [.419C.0020.0002] # LINEAR B SYLLABLE B020 ZO
-10040 ; [.419D.0020.0002] # LINEAR B SYLLABLE B025 A2
-10041 ; [.419E.0020.0002] # LINEAR B SYLLABLE B043 A3
-10042 ; [.419F.0020.0002] # LINEAR B SYLLABLE B085 AU
-10043 ; [.41A0.0020.0002] # LINEAR B SYLLABLE B071 DWE
-10044 ; [.41A1.0020.0002] # LINEAR B SYLLABLE B090 DWO
-10045 ; [.41A2.0020.0002] # LINEAR B SYLLABLE B048 NWA
-10046 ; [.41A3.0020.0002] # LINEAR B SYLLABLE B029 PU2
-10047 ; [.41A4.0020.0002] # LINEAR B SYLLABLE B062 PTE
-10048 ; [.41A5.0020.0002] # LINEAR B SYLLABLE B076 RA2
-10049 ; [.41A6.0020.0002] # LINEAR B SYLLABLE B033 RA3
-1004A ; [.41A7.0020.0002] # LINEAR B SYLLABLE B068 RO2
-1004B ; [.41A8.0020.0002] # LINEAR B SYLLABLE B066 TA2
-1004C ; [.41A9.0020.0002] # LINEAR B SYLLABLE B087 TWE
-1004D ; [.41AA.0020.0002] # LINEAR B SYLLABLE B091 TWO
-10050 ; [.41AB.0020.0002] # LINEAR B SYMBOL B018
-10051 ; [.41AC.0020.0002] # LINEAR B SYMBOL B019
-10052 ; [.41AD.0020.0002] # LINEAR B SYMBOL B022
-10053 ; [.41AE.0020.0002] # LINEAR B SYMBOL B034
-10054 ; [.41AF.0020.0002] # LINEAR B SYMBOL B047
-10055 ; [.41B0.0020.0002] # LINEAR B SYMBOL B049
-10056 ; [.41B1.0020.0002] # LINEAR B SYMBOL B056
-10057 ; [.41B2.0020.0002] # LINEAR B SYMBOL B063
-10058 ; [.41B3.0020.0002] # LINEAR B SYMBOL B064
-10059 ; [.41B4.0020.0002] # LINEAR B SYMBOL B079
-1005A ; [.41B5.0020.0002] # LINEAR B SYMBOL B082
-1005B ; [.41B6.0020.0002] # LINEAR B SYMBOL B083
-1005C ; [.41B7.0020.0002] # LINEAR B SYMBOL B086
-1005D ; [.41B8.0020.0002] # LINEAR B SYMBOL B089
-10080 ; [.41B9.0020.0002] # LINEAR B IDEOGRAM B100 MAN
-10081 ; [.41BA.0020.0002] # LINEAR B IDEOGRAM B102 WOMAN
-10082 ; [.41BB.0020.0002] # LINEAR B IDEOGRAM B104 DEER
-10083 ; [.41BC.0020.0002] # LINEAR B IDEOGRAM B105 EQUID
-10084 ; [.41BD.0020.0002] # LINEAR B IDEOGRAM B105F MARE
-10085 ; [.41BE.0020.0002] # LINEAR B IDEOGRAM B105M STALLION
-10086 ; [.41BF.0020.0002] # LINEAR B IDEOGRAM B106F EWE
-10087 ; [.41C0.0020.0002] # LINEAR B IDEOGRAM B106M RAM
-10088 ; [.41C1.0020.0002] # LINEAR B IDEOGRAM B107F SHE-GOAT
-10089 ; [.41C2.0020.0002] # LINEAR B IDEOGRAM B107M HE-GOAT
-1008A ; [.41C3.0020.0002] # LINEAR B IDEOGRAM B108F SOW
-1008B ; [.41C4.0020.0002] # LINEAR B IDEOGRAM B108M BOAR
-1008C ; [.41C5.0020.0002] # LINEAR B IDEOGRAM B109F COW
-1008D ; [.41C6.0020.0002] # LINEAR B IDEOGRAM B109M BULL
-1008E ; [.41C7.0020.0002] # LINEAR B IDEOGRAM B120 WHEAT
-1008F ; [.41C8.0020.0002] # LINEAR B IDEOGRAM B121 BARLEY
-10090 ; [.41C9.0020.0002] # LINEAR B IDEOGRAM B122 OLIVE
-10091 ; [.41CA.0020.0002] # LINEAR B IDEOGRAM B123 SPICE
-10092 ; [.41CB.0020.0002] # LINEAR B IDEOGRAM B125 CYPERUS
-10093 ; [.41CC.0020.0002] # LINEAR B MONOGRAM B127 KAPO
-10094 ; [.41CD.0020.0002] # LINEAR B MONOGRAM B128 KANAKO
-10095 ; [.41CE.0020.0002] # LINEAR B IDEOGRAM B130 OIL
-10096 ; [.41CF.0020.0002] # LINEAR B IDEOGRAM B131 WINE
-10097 ; [.41D0.0020.0002] # LINEAR B IDEOGRAM B132
-10098 ; [.41D1.0020.0002] # LINEAR B MONOGRAM B133 AREPA
-10099 ; [.41D2.0020.0002] # LINEAR B MONOGRAM B135 MERI
-1009A ; [.41D3.0020.0002] # LINEAR B IDEOGRAM B140 BRONZE
-1009B ; [.41D4.0020.0002] # LINEAR B IDEOGRAM B141 GOLD
-1009C ; [.41D5.0020.0002] # LINEAR B IDEOGRAM B142
-1009D ; [.41D6.0020.0002] # LINEAR B IDEOGRAM B145 WOOL
-1009E ; [.41D7.0020.0002] # LINEAR B IDEOGRAM B146
-1009F ; [.41D8.0020.0002] # LINEAR B IDEOGRAM B150
-100A0 ; [.41D9.0020.0002] # LINEAR B IDEOGRAM B151 HORN
-100A1 ; [.41DA.0020.0002] # LINEAR B IDEOGRAM B152
-100A2 ; [.41DB.0020.0002] # LINEAR B IDEOGRAM B153
-100A3 ; [.41DC.0020.0002] # LINEAR B IDEOGRAM B154
-100A4 ; [.41DD.0020.0002] # LINEAR B MONOGRAM B156 TURO2
-100A5 ; [.41DE.0020.0002] # LINEAR B IDEOGRAM B157
-100A6 ; [.41DF.0020.0002] # LINEAR B IDEOGRAM B158
-100A7 ; [.41E0.0020.0002] # LINEAR B IDEOGRAM B159 CLOTH
-100A8 ; [.41E1.0020.0002] # LINEAR B IDEOGRAM B160
-100A9 ; [.41E2.0020.0002] # LINEAR B IDEOGRAM B161
-100AA ; [.41E3.0020.0002] # LINEAR B IDEOGRAM B162 GARMENT
-100AB ; [.41E4.0020.0002] # LINEAR B IDEOGRAM B163 ARMOUR
-100AC ; [.41E5.0020.0002] # LINEAR B IDEOGRAM B164
-100AD ; [.41E6.0020.0002] # LINEAR B IDEOGRAM B165
-100AE ; [.41E7.0020.0002] # LINEAR B IDEOGRAM B166
-100AF ; [.41E8.0020.0002] # LINEAR B IDEOGRAM B167
-100B0 ; [.41E9.0020.0002] # LINEAR B IDEOGRAM B168
-100B1 ; [.41EA.0020.0002] # LINEAR B IDEOGRAM B169
-100B2 ; [.41EB.0020.0002] # LINEAR B IDEOGRAM B170
-100B3 ; [.41EC.0020.0002] # LINEAR B IDEOGRAM B171
-100B4 ; [.41ED.0020.0002] # LINEAR B IDEOGRAM B172
-100B5 ; [.41EE.0020.0002] # LINEAR B IDEOGRAM B173 MONTH
-100B6 ; [.41EF.0020.0002] # LINEAR B IDEOGRAM B174
-100B7 ; [.41F0.0020.0002] # LINEAR B IDEOGRAM B176 TREE
-100B8 ; [.41F1.0020.0002] # LINEAR B IDEOGRAM B177
-100B9 ; [.41F2.0020.0002] # LINEAR B IDEOGRAM B178
-100BA ; [.41F3.0020.0002] # LINEAR B IDEOGRAM B179
-100BB ; [.41F4.0020.0002] # LINEAR B IDEOGRAM B180
-100BC ; [.41F5.0020.0002] # LINEAR B IDEOGRAM B181
-100BD ; [.41F6.0020.0002] # LINEAR B IDEOGRAM B182
-100BE ; [.41F7.0020.0002] # LINEAR B IDEOGRAM B183
-100BF ; [.41F8.0020.0002] # LINEAR B IDEOGRAM B184
-100C0 ; [.41F9.0020.0002] # LINEAR B IDEOGRAM B185
-100C1 ; [.41FA.0020.0002] # LINEAR B IDEOGRAM B189
-100C2 ; [.41FB.0020.0002] # LINEAR B IDEOGRAM B190
-100C3 ; [.41FC.0020.0002] # LINEAR B IDEOGRAM B191 HELMET
-100C4 ; [.41FD.0020.0002] # LINEAR B IDEOGRAM B220 FOOTSTOOL
-100C5 ; [.41FE.0020.0002] # LINEAR B IDEOGRAM B225 BATHTUB
-100C6 ; [.41FF.0020.0002] # LINEAR B IDEOGRAM B230 SPEAR
-100C7 ; [.4200.0020.0002] # LINEAR B IDEOGRAM B231 ARROW
-100C8 ; [.4201.0020.0002] # LINEAR B IDEOGRAM B232
-100C9 ; [.4202.0020.0002] # LINEAR B IDEOGRAM B233 SWORD
-100CA ; [.4203.0020.0002] # LINEAR B IDEOGRAM B234
-100CB ; [.4204.0020.0002] # LINEAR B IDEOGRAM B236
-100CC ; [.4205.0020.0002] # LINEAR B IDEOGRAM B240 WHEELED CHARIOT
-100CD ; [.4206.0020.0002] # LINEAR B IDEOGRAM B241 CHARIOT
-100CE ; [.4207.0020.0002] # LINEAR B IDEOGRAM B242 CHARIOT FRAME
-100CF ; [.4208.0020.0002] # LINEAR B IDEOGRAM B243 WHEEL
-100D0 ; [.4209.0020.0002] # LINEAR B IDEOGRAM B245
-100D1 ; [.420A.0020.0002] # LINEAR B IDEOGRAM B246
-100D2 ; [.420B.0020.0002] # LINEAR B MONOGRAM B247 DIPTE
-100D3 ; [.420C.0020.0002] # LINEAR B IDEOGRAM B248
-100D4 ; [.420D.0020.0002] # LINEAR B IDEOGRAM B249
-100D5 ; [.420E.0020.0002] # LINEAR B IDEOGRAM B251
-100D6 ; [.420F.0020.0002] # LINEAR B IDEOGRAM B252
-100D7 ; [.4210.0020.0002] # LINEAR B IDEOGRAM B253
-100D8 ; [.4211.0020.0002] # LINEAR B IDEOGRAM B254 DART
-100D9 ; [.4212.0020.0002] # LINEAR B IDEOGRAM B255
-100DA ; [.4213.0020.0002] # LINEAR B IDEOGRAM B256
-100DB ; [.4214.0020.0002] # LINEAR B IDEOGRAM B257
-100DC ; [.4215.0020.0002] # LINEAR B IDEOGRAM B258
-100DD ; [.4216.0020.0002] # LINEAR B IDEOGRAM B259
-100DE ; [.4217.0020.0002] # LINEAR B IDEOGRAM VESSEL B155
-100DF ; [.4218.0020.0002] # LINEAR B IDEOGRAM VESSEL B200
-100E0 ; [.4219.0020.0002] # LINEAR B IDEOGRAM VESSEL B201
-100E1 ; [.421A.0020.0002] # LINEAR B IDEOGRAM VESSEL B202
-100E2 ; [.421B.0020.0002] # LINEAR B IDEOGRAM VESSEL B203
-100E3 ; [.421C.0020.0002] # LINEAR B IDEOGRAM VESSEL B204
-100E4 ; [.421D.0020.0002] # LINEAR B IDEOGRAM VESSEL B205
-100E5 ; [.421E.0020.0002] # LINEAR B IDEOGRAM VESSEL B206
-100E6 ; [.421F.0020.0002] # LINEAR B IDEOGRAM VESSEL B207
-100E7 ; [.4220.0020.0002] # LINEAR B IDEOGRAM VESSEL B208
-100E8 ; [.4221.0020.0002] # LINEAR B IDEOGRAM VESSEL B209
-100E9 ; [.4222.0020.0002] # LINEAR B IDEOGRAM VESSEL B210
-100EA ; [.4223.0020.0002] # LINEAR B IDEOGRAM VESSEL B211
-100EB ; [.4224.0020.0002] # LINEAR B IDEOGRAM VESSEL B212
-100EC ; [.4225.0020.0002] # LINEAR B IDEOGRAM VESSEL B213
-100ED ; [.4226.0020.0002] # LINEAR B IDEOGRAM VESSEL B214
-100EE ; [.4227.0020.0002] # LINEAR B IDEOGRAM VESSEL B215
-100EF ; [.4228.0020.0002] # LINEAR B IDEOGRAM VESSEL B216
-100F0 ; [.4229.0020.0002] # LINEAR B IDEOGRAM VESSEL B217
-100F1 ; [.422A.0020.0002] # LINEAR B IDEOGRAM VESSEL B218
-100F2 ; [.422B.0020.0002] # LINEAR B IDEOGRAM VESSEL B219
-100F3 ; [.422C.0020.0002] # LINEAR B IDEOGRAM VESSEL B221
-100F4 ; [.422D.0020.0002] # LINEAR B IDEOGRAM VESSEL B222
-100F5 ; [.422E.0020.0002] # LINEAR B IDEOGRAM VESSEL B226
-100F6 ; [.422F.0020.0002] # LINEAR B IDEOGRAM VESSEL B227
-100F7 ; [.4230.0020.0002] # LINEAR B IDEOGRAM VESSEL B228
-100F8 ; [.4231.0020.0002] # LINEAR B IDEOGRAM VESSEL B229
-100F9 ; [.4232.0020.0002] # LINEAR B IDEOGRAM VESSEL B250
-100FA ; [.4233.0020.0002] # LINEAR B IDEOGRAM VESSEL B305
-10600 ; [.4234.0020.0002] # LINEAR A SIGN AB001
-10601 ; [.4235.0020.0002] # LINEAR A SIGN AB002
-10602 ; [.4236.0020.0002] # LINEAR A SIGN AB003
-10603 ; [.4237.0020.0002] # LINEAR A SIGN AB004
-10604 ; [.4238.0020.0002] # LINEAR A SIGN AB005
-10605 ; [.4239.0020.0002] # LINEAR A SIGN AB006
-10606 ; [.423A.0020.0002] # LINEAR A SIGN AB007
-10607 ; [.423B.0020.0002] # LINEAR A SIGN AB008
-10608 ; [.423C.0020.0002] # LINEAR A SIGN AB009
-10609 ; [.423D.0020.0002] # LINEAR A SIGN AB010
-1060A ; [.423E.0020.0002] # LINEAR A SIGN AB011
-1060B ; [.423F.0020.0002] # LINEAR A SIGN AB013
-1060C ; [.4240.0020.0002] # LINEAR A SIGN AB016
-1060D ; [.4241.0020.0002] # LINEAR A SIGN AB017
-1060E ; [.4242.0020.0002] # LINEAR A SIGN AB020
-1060F ; [.4243.0020.0002] # LINEAR A SIGN AB021
-10610 ; [.4244.0020.0002] # LINEAR A SIGN AB021F
-10611 ; [.4245.0020.0002] # LINEAR A SIGN AB021M
-10612 ; [.4246.0020.0002] # LINEAR A SIGN AB022
-10613 ; [.4247.0020.0002] # LINEAR A SIGN AB022F
-10614 ; [.4248.0020.0002] # LINEAR A SIGN AB022M
-10615 ; [.4249.0020.0002] # LINEAR A SIGN AB023
-10616 ; [.424A.0020.0002] # LINEAR A SIGN AB023M
-10617 ; [.424B.0020.0002] # LINEAR A SIGN AB024
-10618 ; [.424C.0020.0002] # LINEAR A SIGN AB026
-10619 ; [.424D.0020.0002] # LINEAR A SIGN AB027
-1061A ; [.424E.0020.0002] # LINEAR A SIGN AB028
-1061B ; [.424F.0020.0002] # LINEAR A SIGN A028B
-1061C ; [.4250.0020.0002] # LINEAR A SIGN AB029
-1061D ; [.4251.0020.0002] # LINEAR A SIGN AB030
-1061E ; [.4252.0020.0002] # LINEAR A SIGN AB031
-1061F ; [.4253.0020.0002] # LINEAR A SIGN AB034
-10620 ; [.4254.0020.0002] # LINEAR A SIGN AB037
-10621 ; [.4255.0020.0002] # LINEAR A SIGN AB038
-10622 ; [.4256.0020.0002] # LINEAR A SIGN AB039
-10623 ; [.4257.0020.0002] # LINEAR A SIGN AB040
-10624 ; [.4258.0020.0002] # LINEAR A SIGN AB041
-10625 ; [.4259.0020.0002] # LINEAR A SIGN AB044
-10626 ; [.425A.0020.0002] # LINEAR A SIGN AB045
-10627 ; [.425B.0020.0002] # LINEAR A SIGN AB046
-10628 ; [.425C.0020.0002] # LINEAR A SIGN AB047
-10629 ; [.425D.0020.0002] # LINEAR A SIGN AB048
-1062A ; [.425E.0020.0002] # LINEAR A SIGN AB049
-1062B ; [.425F.0020.0002] # LINEAR A SIGN AB050
-1062C ; [.4260.0020.0002] # LINEAR A SIGN AB051
-1062D ; [.4261.0020.0002] # LINEAR A SIGN AB053
-1062E ; [.4262.0020.0002] # LINEAR A SIGN AB054
-1062F ; [.4263.0020.0002] # LINEAR A SIGN AB055
-10630 ; [.4264.0020.0002] # LINEAR A SIGN AB056
-10631 ; [.4265.0020.0002] # LINEAR A SIGN AB057
-10632 ; [.4266.0020.0002] # LINEAR A SIGN AB058
-10633 ; [.4267.0020.0002] # LINEAR A SIGN AB059
-10634 ; [.4268.0020.0002] # LINEAR A SIGN AB060
-10635 ; [.4269.0020.0002] # LINEAR A SIGN AB061
-10636 ; [.426A.0020.0002] # LINEAR A SIGN AB065
-10637 ; [.426B.0020.0002] # LINEAR A SIGN AB066
-10638 ; [.426C.0020.0002] # LINEAR A SIGN AB067
-10639 ; [.426D.0020.0002] # LINEAR A SIGN AB069
-1063A ; [.426E.0020.0002] # LINEAR A SIGN AB070
-1063B ; [.426F.0020.0002] # LINEAR A SIGN AB073
-1063C ; [.4270.0020.0002] # LINEAR A SIGN AB074
-1063D ; [.4271.0020.0002] # LINEAR A SIGN AB076
-1063E ; [.4272.0020.0002] # LINEAR A SIGN AB077
-1063F ; [.4273.0020.0002] # LINEAR A SIGN AB078
-10640 ; [.4274.0020.0002] # LINEAR A SIGN AB079
-10641 ; [.4275.0020.0002] # LINEAR A SIGN AB080
-10642 ; [.4276.0020.0002] # LINEAR A SIGN AB081
-10643 ; [.4277.0020.0002] # LINEAR A SIGN AB082
-10644 ; [.4278.0020.0002] # LINEAR A SIGN AB085
-10645 ; [.4279.0020.0002] # LINEAR A SIGN AB086
-10646 ; [.427A.0020.0002] # LINEAR A SIGN AB087
-10647 ; [.427B.0020.0002] # LINEAR A SIGN A100-102
-10648 ; [.427C.0020.0002] # LINEAR A SIGN AB118
-10649 ; [.427D.0020.0002] # LINEAR A SIGN AB120
-1064A ; [.427E.0020.0002] # LINEAR A SIGN A120B
-1064B ; [.427F.0020.0002] # LINEAR A SIGN AB122
-1064C ; [.4280.0020.0002] # LINEAR A SIGN AB123
-1064D ; [.4281.0020.0002] # LINEAR A SIGN AB131A
-1064E ; [.4282.0020.0002] # LINEAR A SIGN AB131B
-1064F ; [.4283.0020.0002] # LINEAR A SIGN A131C
-10650 ; [.4284.0020.0002] # LINEAR A SIGN AB164
-10651 ; [.4285.0020.0002] # LINEAR A SIGN AB171
-10652 ; [.4286.0020.0002] # LINEAR A SIGN AB180
-10653 ; [.4287.0020.0002] # LINEAR A SIGN AB188
-10654 ; [.4288.0020.0002] # LINEAR A SIGN AB191
-10655 ; [.4289.0020.0002] # LINEAR A SIGN A301
-10656 ; [.428A.0020.0002] # LINEAR A SIGN A302
-10657 ; [.428B.0020.0002] # LINEAR A SIGN A303
-10658 ; [.428C.0020.0002] # LINEAR A SIGN A304
-10659 ; [.428D.0020.0002] # LINEAR A SIGN A305
-1065A ; [.428E.0020.0002] # LINEAR A SIGN A306
-1065B ; [.428F.0020.0002] # LINEAR A SIGN A307
-1065C ; [.4290.0020.0002] # LINEAR A SIGN A308
-1065D ; [.4291.0020.0002] # LINEAR A SIGN A309A
-1065E ; [.4292.0020.0002] # LINEAR A SIGN A309B
-1065F ; [.4293.0020.0002] # LINEAR A SIGN A309C
-10660 ; [.4294.0020.0002] # LINEAR A SIGN A310
-10661 ; [.4295.0020.0002] # LINEAR A SIGN A311
-10662 ; [.4296.0020.0002] # LINEAR A SIGN A312
-10663 ; [.4297.0020.0002] # LINEAR A SIGN A313A
-10664 ; [.4298.0020.0002] # LINEAR A SIGN A313B
-10665 ; [.4299.0020.0002] # LINEAR A SIGN A313C
-10666 ; [.429A.0020.0002] # LINEAR A SIGN A314
-10667 ; [.429B.0020.0002] # LINEAR A SIGN A315
-10668 ; [.429C.0020.0002] # LINEAR A SIGN A316
-10669 ; [.429D.0020.0002] # LINEAR A SIGN A317
-1066A ; [.429E.0020.0002] # LINEAR A SIGN A318
-1066B ; [.429F.0020.0002] # LINEAR A SIGN A319
-1066C ; [.42A0.0020.0002] # LINEAR A SIGN A320
-1066D ; [.42A1.0020.0002] # LINEAR A SIGN A321
-1066E ; [.42A2.0020.0002] # LINEAR A SIGN A322
-1066F ; [.42A3.0020.0002] # LINEAR A SIGN A323
-10670 ; [.42A4.0020.0002] # LINEAR A SIGN A324
-10671 ; [.42A5.0020.0002] # LINEAR A SIGN A325
-10672 ; [.42A6.0020.0002] # LINEAR A SIGN A326
-10673 ; [.42A7.0020.0002] # LINEAR A SIGN A327
-10674 ; [.42A8.0020.0002] # LINEAR A SIGN A328
-10675 ; [.42A9.0020.0002] # LINEAR A SIGN A329
-10676 ; [.42AA.0020.0002] # LINEAR A SIGN A330
-10677 ; [.42AB.0020.0002] # LINEAR A SIGN A331
-10678 ; [.42AC.0020.0002] # LINEAR A SIGN A332
-10679 ; [.42AD.0020.0002] # LINEAR A SIGN A333
-1067A ; [.42AE.0020.0002] # LINEAR A SIGN A334
-1067B ; [.42AF.0020.0002] # LINEAR A SIGN A335
-1067C ; [.42B0.0020.0002] # LINEAR A SIGN A336
-1067D ; [.42B1.0020.0002] # LINEAR A SIGN A337
-1067E ; [.42B2.0020.0002] # LINEAR A SIGN A338
-1067F ; [.42B3.0020.0002] # LINEAR A SIGN A339
-10680 ; [.42B4.0020.0002] # LINEAR A SIGN A340
-10681 ; [.42B5.0020.0002] # LINEAR A SIGN A341
-10682 ; [.42B6.0020.0002] # LINEAR A SIGN A342
-10683 ; [.42B7.0020.0002] # LINEAR A SIGN A343
-10684 ; [.42B8.0020.0002] # LINEAR A SIGN A344
-10685 ; [.42B9.0020.0002] # LINEAR A SIGN A345
-10686 ; [.42BA.0020.0002] # LINEAR A SIGN A346
-10687 ; [.42BB.0020.0002] # LINEAR A SIGN A347
-10688 ; [.42BC.0020.0002] # LINEAR A SIGN A348
-10689 ; [.42BD.0020.0002] # LINEAR A SIGN A349
-1068A ; [.42BE.0020.0002] # LINEAR A SIGN A350
-1068B ; [.42BF.0020.0002] # LINEAR A SIGN A351
-1068C ; [.42C0.0020.0002] # LINEAR A SIGN A352
-1068D ; [.42C1.0020.0002] # LINEAR A SIGN A353
-1068E ; [.42C2.0020.0002] # LINEAR A SIGN A354
-1068F ; [.42C3.0020.0002] # LINEAR A SIGN A355
-10690 ; [.42C4.0020.0002] # LINEAR A SIGN A356
-10691 ; [.42C5.0020.0002] # LINEAR A SIGN A357
-10692 ; [.42C6.0020.0002] # LINEAR A SIGN A358
-10693 ; [.42C7.0020.0002] # LINEAR A SIGN A359
-10694 ; [.42C8.0020.0002] # LINEAR A SIGN A360
-10695 ; [.42C9.0020.0002] # LINEAR A SIGN A361
-10696 ; [.42CA.0020.0002] # LINEAR A SIGN A362
-10697 ; [.42CB.0020.0002] # LINEAR A SIGN A363
-10698 ; [.42CC.0020.0002] # LINEAR A SIGN A364
-10699 ; [.42CD.0020.0002] # LINEAR A SIGN A365
-1069A ; [.42CE.0020.0002] # LINEAR A SIGN A366
-1069B ; [.42CF.0020.0002] # LINEAR A SIGN A367
-1069C ; [.42D0.0020.0002] # LINEAR A SIGN A368
-1069D ; [.42D1.0020.0002] # LINEAR A SIGN A369
-1069E ; [.42D2.0020.0002] # LINEAR A SIGN A370
-1069F ; [.42D3.0020.0002] # LINEAR A SIGN A371
-106A0 ; [.42D4.0020.0002] # LINEAR A SIGN A400-VAS
-106A1 ; [.42D5.0020.0002] # LINEAR A SIGN A401-VAS
-106A2 ; [.42D6.0020.0002] # LINEAR A SIGN A402-VAS
-106A3 ; [.42D7.0020.0002] # LINEAR A SIGN A403-VAS
-106A4 ; [.42D8.0020.0002] # LINEAR A SIGN A404-VAS
-106A5 ; [.42D9.0020.0002] # LINEAR A SIGN A405-VAS
-106A6 ; [.42DA.0020.0002] # LINEAR A SIGN A406-VAS
-106A7 ; [.42DB.0020.0002] # LINEAR A SIGN A407-VAS
-106A8 ; [.42DC.0020.0002] # LINEAR A SIGN A408-VAS
-106A9 ; [.42DD.0020.0002] # LINEAR A SIGN A409-VAS
-106AA ; [.42DE.0020.0002] # LINEAR A SIGN A410-VAS
-106AB ; [.42DF.0020.0002] # LINEAR A SIGN A411-VAS
-106AC ; [.42E0.0020.0002] # LINEAR A SIGN A412-VAS
-106AD ; [.42E1.0020.0002] # LINEAR A SIGN A413-VAS
-106AE ; [.42E2.0020.0002] # LINEAR A SIGN A414-VAS
-106AF ; [.42E3.0020.0002] # LINEAR A SIGN A415-VAS
-106B0 ; [.42E4.0020.0002] # LINEAR A SIGN A416-VAS
-106B1 ; [.42E5.0020.0002] # LINEAR A SIGN A417-VAS
-106B2 ; [.42E6.0020.0002] # LINEAR A SIGN A418-VAS
-106B3 ; [.42E7.0020.0002] # LINEAR A SIGN A501
-106B4 ; [.42E8.0020.0002] # LINEAR A SIGN A502
-106B5 ; [.42E9.0020.0002] # LINEAR A SIGN A503
-106B6 ; [.42EA.0020.0002] # LINEAR A SIGN A504
-106B7 ; [.42EB.0020.0002] # LINEAR A SIGN A505
-106B8 ; [.42EC.0020.0002] # LINEAR A SIGN A506
-106B9 ; [.42ED.0020.0002] # LINEAR A SIGN A508
-106BA ; [.42EE.0020.0002] # LINEAR A SIGN A509
-106BB ; [.42EF.0020.0002] # LINEAR A SIGN A510
-106BC ; [.42F0.0020.0002] # LINEAR A SIGN A511
-106BD ; [.42F1.0020.0002] # LINEAR A SIGN A512
-106BE ; [.42F2.0020.0002] # LINEAR A SIGN A513
-106BF ; [.42F3.0020.0002] # LINEAR A SIGN A515
-106C0 ; [.42F4.0020.0002] # LINEAR A SIGN A516
-106C1 ; [.42F5.0020.0002] # LINEAR A SIGN A520
-106C2 ; [.42F6.0020.0002] # LINEAR A SIGN A521
-106C3 ; [.42F7.0020.0002] # LINEAR A SIGN A523
-106C4 ; [.42F8.0020.0002] # LINEAR A SIGN A524
-106C5 ; [.42F9.0020.0002] # LINEAR A SIGN A525
-106C6 ; [.42FA.0020.0002] # LINEAR A SIGN A526
-106C7 ; [.42FB.0020.0002] # LINEAR A SIGN A527
-106C8 ; [.42FC.0020.0002] # LINEAR A SIGN A528
-106C9 ; [.42FD.0020.0002] # LINEAR A SIGN A529
-106CA ; [.42FE.0020.0002] # LINEAR A SIGN A530
-106CB ; [.42FF.0020.0002] # LINEAR A SIGN A531
-106CC ; [.4300.0020.0002] # LINEAR A SIGN A532
-106CD ; [.4301.0020.0002] # LINEAR A SIGN A534
-106CE ; [.4302.0020.0002] # LINEAR A SIGN A535
-106CF ; [.4303.0020.0002] # LINEAR A SIGN A536
-106D0 ; [.4304.0020.0002] # LINEAR A SIGN A537
-106D1 ; [.4305.0020.0002] # LINEAR A SIGN A538
-106D2 ; [.4306.0020.0002] # LINEAR A SIGN A539
-106D3 ; [.4307.0020.0002] # LINEAR A SIGN A540
-106D4 ; [.4308.0020.0002] # LINEAR A SIGN A541
-106D5 ; [.4309.0020.0002] # LINEAR A SIGN A542
-106D6 ; [.430A.0020.0002] # LINEAR A SIGN A545
-106D7 ; [.430B.0020.0002] # LINEAR A SIGN A547
-106D8 ; [.430C.0020.0002] # LINEAR A SIGN A548
-106D9 ; [.430D.0020.0002] # LINEAR A SIGN A549
-106DA ; [.430E.0020.0002] # LINEAR A SIGN A550
-106DB ; [.430F.0020.0002] # LINEAR A SIGN A551
-106DC ; [.4310.0020.0002] # LINEAR A SIGN A552
-106DD ; [.4311.0020.0002] # LINEAR A SIGN A553
-106DE ; [.4312.0020.0002] # LINEAR A SIGN A554
-106DF ; [.4313.0020.0002] # LINEAR A SIGN A555
-106E0 ; [.4314.0020.0002] # LINEAR A SIGN A556
-106E1 ; [.4315.0020.0002] # LINEAR A SIGN A557
-106E2 ; [.4316.0020.0002] # LINEAR A SIGN A559
-106E3 ; [.4317.0020.0002] # LINEAR A SIGN A563
-106E4 ; [.4318.0020.0002] # LINEAR A SIGN A564
-106E5 ; [.4319.0020.0002] # LINEAR A SIGN A565
-106E6 ; [.431A.0020.0002] # LINEAR A SIGN A566
-106E7 ; [.431B.0020.0002] # LINEAR A SIGN A568
-106E8 ; [.431C.0020.0002] # LINEAR A SIGN A569
-106E9 ; [.431D.0020.0002] # LINEAR A SIGN A570
-106EA ; [.431E.0020.0002] # LINEAR A SIGN A571
-106EB ; [.431F.0020.0002] # LINEAR A SIGN A572
-106EC ; [.4320.0020.0002] # LINEAR A SIGN A573
-106ED ; [.4321.0020.0002] # LINEAR A SIGN A574
-106EE ; [.4322.0020.0002] # LINEAR A SIGN A575
-106EF ; [.4323.0020.0002] # LINEAR A SIGN A576
-106F0 ; [.4324.0020.0002] # LINEAR A SIGN A577
-106F1 ; [.4325.0020.0002] # LINEAR A SIGN A578
-106F2 ; [.4326.0020.0002] # LINEAR A SIGN A579
-106F3 ; [.4327.0020.0002] # LINEAR A SIGN A580
-106F4 ; [.4328.0020.0002] # LINEAR A SIGN A581
-106F5 ; [.4329.0020.0002] # LINEAR A SIGN A582
-106F6 ; [.432A.0020.0002] # LINEAR A SIGN A583
-106F7 ; [.432B.0020.0002] # LINEAR A SIGN A584
-106F8 ; [.432C.0020.0002] # LINEAR A SIGN A585
-106F9 ; [.432D.0020.0002] # LINEAR A SIGN A586
-106FA ; [.432E.0020.0002] # LINEAR A SIGN A587
-106FB ; [.432F.0020.0002] # LINEAR A SIGN A588
-106FC ; [.4330.0020.0002] # LINEAR A SIGN A589
-106FD ; [.4331.0020.0002] # LINEAR A SIGN A591
-106FE ; [.4332.0020.0002] # LINEAR A SIGN A592
-106FF ; [.4333.0020.0002] # LINEAR A SIGN A594
-10700 ; [.4334.0020.0002] # LINEAR A SIGN A595
-10701 ; [.4335.0020.0002] # LINEAR A SIGN A596
-10702 ; [.4336.0020.0002] # LINEAR A SIGN A598
-10703 ; [.4337.0020.0002] # LINEAR A SIGN A600
-10704 ; [.4338.0020.0002] # LINEAR A SIGN A601
-10705 ; [.4339.0020.0002] # LINEAR A SIGN A602
-10706 ; [.433A.0020.0002] # LINEAR A SIGN A603
-10707 ; [.433B.0020.0002] # LINEAR A SIGN A604
-10708 ; [.433C.0020.0002] # LINEAR A SIGN A606
-10709 ; [.433D.0020.0002] # LINEAR A SIGN A608
-1070A ; [.433E.0020.0002] # LINEAR A SIGN A609
-1070B ; [.433F.0020.0002] # LINEAR A SIGN A610
-1070C ; [.4340.0020.0002] # LINEAR A SIGN A611
-1070D ; [.4341.0020.0002] # LINEAR A SIGN A612
-1070E ; [.4342.0020.0002] # LINEAR A SIGN A613
-1070F ; [.4343.0020.0002] # LINEAR A SIGN A614
-10710 ; [.4344.0020.0002] # LINEAR A SIGN A615
-10711 ; [.4345.0020.0002] # LINEAR A SIGN A616
-10712 ; [.4346.0020.0002] # LINEAR A SIGN A617
-10713 ; [.4347.0020.0002] # LINEAR A SIGN A618
-10714 ; [.4348.0020.0002] # LINEAR A SIGN A619
-10715 ; [.4349.0020.0002] # LINEAR A SIGN A620
-10716 ; [.434A.0020.0002] # LINEAR A SIGN A621
-10717 ; [.434B.0020.0002] # LINEAR A SIGN A622
-10718 ; [.434C.0020.0002] # LINEAR A SIGN A623
-10719 ; [.434D.0020.0002] # LINEAR A SIGN A624
-1071A ; [.434E.0020.0002] # LINEAR A SIGN A626
-1071B ; [.434F.0020.0002] # LINEAR A SIGN A627
-1071C ; [.4350.0020.0002] # LINEAR A SIGN A628
-1071D ; [.4351.0020.0002] # LINEAR A SIGN A629
-1071E ; [.4352.0020.0002] # LINEAR A SIGN A634
-1071F ; [.4353.0020.0002] # LINEAR A SIGN A637
-10720 ; [.4354.0020.0002] # LINEAR A SIGN A638
-10721 ; [.4355.0020.0002] # LINEAR A SIGN A640
-10722 ; [.4356.0020.0002] # LINEAR A SIGN A642
-10723 ; [.4357.0020.0002] # LINEAR A SIGN A643
-10724 ; [.4358.0020.0002] # LINEAR A SIGN A644
-10725 ; [.4359.0020.0002] # LINEAR A SIGN A645
-10726 ; [.435A.0020.0002] # LINEAR A SIGN A646
-10727 ; [.435B.0020.0002] # LINEAR A SIGN A648
-10728 ; [.435C.0020.0002] # LINEAR A SIGN A649
-10729 ; [.435D.0020.0002] # LINEAR A SIGN A651
-1072A ; [.435E.0020.0002] # LINEAR A SIGN A652
-1072B ; [.435F.0020.0002] # LINEAR A SIGN A653
-1072C ; [.4360.0020.0002] # LINEAR A SIGN A654
-1072D ; [.4361.0020.0002] # LINEAR A SIGN A655
-1072E ; [.4362.0020.0002] # LINEAR A SIGN A656
-1072F ; [.4363.0020.0002] # LINEAR A SIGN A657
-10730 ; [.4364.0020.0002] # LINEAR A SIGN A658
-10731 ; [.4365.0020.0002] # LINEAR A SIGN A659
-10732 ; [.4366.0020.0002] # LINEAR A SIGN A660
-10733 ; [.4367.0020.0002] # LINEAR A SIGN A661
-10734 ; [.4368.0020.0002] # LINEAR A SIGN A662
-10735 ; [.4369.0020.0002] # LINEAR A SIGN A663
-10736 ; [.436A.0020.0002] # LINEAR A SIGN A664
-10740 ; [.436B.0020.0002] # LINEAR A SIGN A701 A
-10741 ; [.436C.0020.0002] # LINEAR A SIGN A702 B
-10742 ; [.436D.0020.0002] # LINEAR A SIGN A703 D
-10743 ; [.436E.0020.0002] # LINEAR A SIGN A704 E
-10744 ; [.436F.0020.0002] # LINEAR A SIGN A705 F
-10745 ; [.4370.0020.0002] # LINEAR A SIGN A706 H
-10746 ; [.4371.0020.0002] # LINEAR A SIGN A707 J
-10747 ; [.4372.0020.0002] # LINEAR A SIGN A708 K
-10748 ; [.4373.0020.0002] # LINEAR A SIGN A709 L
-10749 ; [.4374.0020.0002] # LINEAR A SIGN A709-2 L2
-1074A ; [.4375.0020.0002] # LINEAR A SIGN A709-3 L3
-1074B ; [.4376.0020.0002] # LINEAR A SIGN A709-4 L4
-1074C ; [.4377.0020.0002] # LINEAR A SIGN A709-6 L6
-1074D ; [.4378.0020.0002] # LINEAR A SIGN A710 W
-1074E ; [.4379.0020.0002] # LINEAR A SIGN A711 X
-1074F ; [.437A.0020.0002] # LINEAR A SIGN A712 Y
-10750 ; [.437B.0020.0002] # LINEAR A SIGN A713 OMEGA
-10751 ; [.437C.0020.0002] # LINEAR A SIGN A714 ABB
-10752 ; [.437D.0020.0002] # LINEAR A SIGN A715 BB
-10753 ; [.437E.0020.0002] # LINEAR A SIGN A717 DD
-10754 ; [.437F.0020.0002] # LINEAR A SIGN A726 EYYY
-10755 ; [.4380.0020.0002] # LINEAR A SIGN A732 JE
-10760 ; [.4381.0020.0002] # LINEAR A SIGN A800
-10761 ; [.4382.0020.0002] # LINEAR A SIGN A801
-10762 ; [.4383.0020.0002] # LINEAR A SIGN A802
-10763 ; [.4384.0020.0002] # LINEAR A SIGN A803
-10764 ; [.4385.0020.0002] # LINEAR A SIGN A804
-10765 ; [.4386.0020.0002] # LINEAR A SIGN A805
-10766 ; [.4387.0020.0002] # LINEAR A SIGN A806
-10767 ; [.4388.0020.0002] # LINEAR A SIGN A807
-10800 ; [.4389.0020.0002] # CYPRIOT SYLLABLE A
-10801 ; [.438A.0020.0002] # CYPRIOT SYLLABLE E
-10802 ; [.438B.0020.0002] # CYPRIOT SYLLABLE I
-10803 ; [.438C.0020.0002] # CYPRIOT SYLLABLE O
-10804 ; [.438D.0020.0002] # CYPRIOT SYLLABLE U
-10805 ; [.438E.0020.0002] # CYPRIOT SYLLABLE JA
-10808 ; [.438F.0020.0002] # CYPRIOT SYLLABLE JO
-1080A ; [.4390.0020.0002] # CYPRIOT SYLLABLE KA
-1080B ; [.4391.0020.0002] # CYPRIOT SYLLABLE KE
-1080C ; [.4392.0020.0002] # CYPRIOT SYLLABLE KI
-1080D ; [.4393.0020.0002] # CYPRIOT SYLLABLE KO
-1080E ; [.4394.0020.0002] # CYPRIOT SYLLABLE KU
-1080F ; [.4395.0020.0002] # CYPRIOT SYLLABLE LA
-10810 ; [.4396.0020.0002] # CYPRIOT SYLLABLE LE
-10811 ; [.4397.0020.0002] # CYPRIOT SYLLABLE LI
-10812 ; [.4398.0020.0002] # CYPRIOT SYLLABLE LO
-10813 ; [.4399.0020.0002] # CYPRIOT SYLLABLE LU
-10814 ; [.439A.0020.0002] # CYPRIOT SYLLABLE MA
-10815 ; [.439B.0020.0002] # CYPRIOT SYLLABLE ME
-10816 ; [.439C.0020.0002] # CYPRIOT SYLLABLE MI
-10817 ; [.439D.0020.0002] # CYPRIOT SYLLABLE MO
-10818 ; [.439E.0020.0002] # CYPRIOT SYLLABLE MU
-10819 ; [.439F.0020.0002] # CYPRIOT SYLLABLE NA
-1081A ; [.43A0.0020.0002] # CYPRIOT SYLLABLE NE
-1081B ; [.43A1.0020.0002] # CYPRIOT SYLLABLE NI
-1081C ; [.43A2.0020.0002] # CYPRIOT SYLLABLE NO
-1081D ; [.43A3.0020.0002] # CYPRIOT SYLLABLE NU
-1081E ; [.43A4.0020.0002] # CYPRIOT SYLLABLE PA
-1081F ; [.43A5.0020.0002] # CYPRIOT SYLLABLE PE
-10820 ; [.43A6.0020.0002] # CYPRIOT SYLLABLE PI
-10821 ; [.43A7.0020.0002] # CYPRIOT SYLLABLE PO
-10822 ; [.43A8.0020.0002] # CYPRIOT SYLLABLE PU
-10823 ; [.43A9.0020.0002] # CYPRIOT SYLLABLE RA
-10824 ; [.43AA.0020.0002] # CYPRIOT SYLLABLE RE
-10825 ; [.43AB.0020.0002] # CYPRIOT SYLLABLE RI
-10826 ; [.43AC.0020.0002] # CYPRIOT SYLLABLE RO
-10827 ; [.43AD.0020.0002] # CYPRIOT SYLLABLE RU
-10828 ; [.43AE.0020.0002] # CYPRIOT SYLLABLE SA
-10829 ; [.43AF.0020.0002] # CYPRIOT SYLLABLE SE
-1082A ; [.43B0.0020.0002] # CYPRIOT SYLLABLE SI
-1082B ; [.43B1.0020.0002] # CYPRIOT SYLLABLE SO
-1082C ; [.43B2.0020.0002] # CYPRIOT SYLLABLE SU
-1082D ; [.43B3.0020.0002] # CYPRIOT SYLLABLE TA
-1082E ; [.43B4.0020.0002] # CYPRIOT SYLLABLE TE
-1082F ; [.43B5.0020.0002] # CYPRIOT SYLLABLE TI
-10830 ; [.43B6.0020.0002] # CYPRIOT SYLLABLE TO
-10831 ; [.43B7.0020.0002] # CYPRIOT SYLLABLE TU
-10832 ; [.43B8.0020.0002] # CYPRIOT SYLLABLE WA
-10833 ; [.43B9.0020.0002] # CYPRIOT SYLLABLE WE
-10834 ; [.43BA.0020.0002] # CYPRIOT SYLLABLE WI
-10835 ; [.43BB.0020.0002] # CYPRIOT SYLLABLE WO
-10837 ; [.43BC.0020.0002] # CYPRIOT SYLLABLE XA
-10838 ; [.43BD.0020.0002] # CYPRIOT SYLLABLE XE
-1083C ; [.43BE.0020.0002] # CYPRIOT SYLLABLE ZA
-1083F ; [.43BF.0020.0002] # CYPRIOT SYLLABLE ZO
-10A60 ; [.43C0.0020.0002] # OLD SOUTH ARABIAN LETTER HE
-10A61 ; [.43C1.0020.0002] # OLD SOUTH ARABIAN LETTER LAMEDH
-10A62 ; [.43C2.0020.0002] # OLD SOUTH ARABIAN LETTER HETH
-10A63 ; [.43C3.0020.0002] # OLD SOUTH ARABIAN LETTER MEM
-10A64 ; [.43C4.0020.0002] # OLD SOUTH ARABIAN LETTER QOPH
-10A65 ; [.43C5.0020.0002] # OLD SOUTH ARABIAN LETTER WAW
-10A66 ; [.43C6.0020.0002] # OLD SOUTH ARABIAN LETTER SHIN
-10A67 ; [.43C7.0020.0002] # OLD SOUTH ARABIAN LETTER RESH
-10A68 ; [.43C8.0020.0002] # OLD SOUTH ARABIAN LETTER BETH
-10A69 ; [.43C9.0020.0002] # OLD SOUTH ARABIAN LETTER TAW
-10A6A ; [.43CA.0020.0002] # OLD SOUTH ARABIAN LETTER SAT
-10A6B ; [.43CB.0020.0002] # OLD SOUTH ARABIAN LETTER KAPH
-10A6C ; [.43CC.0020.0002] # OLD SOUTH ARABIAN LETTER NUN
-10A6D ; [.43CD.0020.0002] # OLD SOUTH ARABIAN LETTER KHETH
-10A6E ; [.43CE.0020.0002] # OLD SOUTH ARABIAN LETTER SADHE
-10A6F ; [.43CF.0020.0002] # OLD SOUTH ARABIAN LETTER SAMEKH
-10A70 ; [.43D0.0020.0002] # OLD SOUTH ARABIAN LETTER FE
-10A71 ; [.43D1.0020.0002] # OLD SOUTH ARABIAN LETTER ALEF
-10A72 ; [.43D2.0020.0002] # OLD SOUTH ARABIAN LETTER AYN
-10A73 ; [.43D3.0020.0002] # OLD SOUTH ARABIAN LETTER DHADHE
-10A74 ; [.43D4.0020.0002] # OLD SOUTH ARABIAN LETTER GIMEL
-10A75 ; [.43D5.0020.0002] # OLD SOUTH ARABIAN LETTER DALETH
-10A76 ; [.43D6.0020.0002] # OLD SOUTH ARABIAN LETTER GHAYN
-10A77 ; [.43D7.0020.0002] # OLD SOUTH ARABIAN LETTER TETH
-10A78 ; [.43D8.0020.0002] # OLD SOUTH ARABIAN LETTER ZAYN
-10A79 ; [.43D9.0020.0002] # OLD SOUTH ARABIAN LETTER DHALETH
-10A7A ; [.43DA.0020.0002] # OLD SOUTH ARABIAN LETTER YODH
-10A7B ; [.43DB.0020.0002] # OLD SOUTH ARABIAN LETTER THAW
-10A7C ; [.43DC.0020.0002] # OLD SOUTH ARABIAN LETTER THETH
-10A80 ; [.43DD.0020.0002] # OLD NORTH ARABIAN LETTER HEH
-10A81 ; [.43DE.0020.0002] # OLD NORTH ARABIAN LETTER LAM
-10A82 ; [.43DF.0020.0002] # OLD NORTH ARABIAN LETTER HAH
-10A83 ; [.43E0.0020.0002] # OLD NORTH ARABIAN LETTER MEEM
-10A84 ; [.43E1.0020.0002] # OLD NORTH ARABIAN LETTER QAF
-10A85 ; [.43E2.0020.0002] # OLD NORTH ARABIAN LETTER WAW
-10A86 ; [.43E3.0020.0002] # OLD NORTH ARABIAN LETTER ES-2
-10A87 ; [.43E4.0020.0002] # OLD NORTH ARABIAN LETTER REH
-10A88 ; [.43E5.0020.0002] # OLD NORTH ARABIAN LETTER BEH
-10A89 ; [.43E6.0020.0002] # OLD NORTH ARABIAN LETTER TEH
-10A8A ; [.43E7.0020.0002] # OLD NORTH ARABIAN LETTER ES-1
-10A8B ; [.43E8.0020.0002] # OLD NORTH ARABIAN LETTER KAF
-10A8C ; [.43E9.0020.0002] # OLD NORTH ARABIAN LETTER NOON
-10A8D ; [.43EA.0020.0002] # OLD NORTH ARABIAN LETTER KHAH
-10A8E ; [.43EB.0020.0002] # OLD NORTH ARABIAN LETTER SAD
-10A8F ; [.43EC.0020.0002] # OLD NORTH ARABIAN LETTER ES-3
-10A90 ; [.43ED.0020.0002] # OLD NORTH ARABIAN LETTER FEH
-10A91 ; [.43EE.0020.0002] # OLD NORTH ARABIAN LETTER ALEF
-10A92 ; [.43EF.0020.0002] # OLD NORTH ARABIAN LETTER AIN
-10A93 ; [.43F0.0020.0002] # OLD NORTH ARABIAN LETTER DAD
-10A94 ; [.43F1.0020.0002] # OLD NORTH ARABIAN LETTER GEEM
-10A95 ; [.43F2.0020.0002] # OLD NORTH ARABIAN LETTER DAL
-10A96 ; [.43F3.0020.0002] # OLD NORTH ARABIAN LETTER GHAIN
-10A97 ; [.43F4.0020.0002] # OLD NORTH ARABIAN LETTER TAH
-10A98 ; [.43F5.0020.0002] # OLD NORTH ARABIAN LETTER ZAIN
-10A99 ; [.43F6.0020.0002] # OLD NORTH ARABIAN LETTER THAL
-10A9A ; [.43F7.0020.0002] # OLD NORTH ARABIAN LETTER YEH
-10A9B ; [.43F8.0020.0002] # OLD NORTH ARABIAN LETTER THEH
-10A9C ; [.43F9.0020.0002] # OLD NORTH ARABIAN LETTER ZAH
-10B00 ; [.43FA.0020.0002] # AVESTAN LETTER A
-10B01 ; [.43FB.0020.0002] # AVESTAN LETTER AA
-10B02 ; [.43FC.0020.0002] # AVESTAN LETTER AO
-10B03 ; [.43FD.0020.0002] # AVESTAN LETTER AAO
-10B04 ; [.43FE.0020.0002] # AVESTAN LETTER AN
-10B05 ; [.43FF.0020.0002] # AVESTAN LETTER AAN
-10B06 ; [.4400.0020.0002] # AVESTAN LETTER AE
-10B07 ; [.4401.0020.0002] # AVESTAN LETTER AEE
-10B08 ; [.4402.0020.0002] # AVESTAN LETTER E
-10B09 ; [.4403.0020.0002] # AVESTAN LETTER EE
-10B0A ; [.4404.0020.0002] # AVESTAN LETTER O
-10B0B ; [.4405.0020.0002] # AVESTAN LETTER OO
-10B0C ; [.4406.0020.0002] # AVESTAN LETTER I
-10B0D ; [.4407.0020.0002] # AVESTAN LETTER II
-10B0E ; [.4408.0020.0002] # AVESTAN LETTER U
-10B0F ; [.4409.0020.0002] # AVESTAN LETTER UU
-10B10 ; [.440A.0020.0002] # AVESTAN LETTER KE
-10B11 ; [.440B.0020.0002] # AVESTAN LETTER XE
-10B12 ; [.440C.0020.0002] # AVESTAN LETTER XYE
-10B13 ; [.440D.0020.0002] # AVESTAN LETTER XVE
-10B14 ; [.440E.0020.0002] # AVESTAN LETTER GE
-10B15 ; [.440F.0020.0002] # AVESTAN LETTER GGE
-10B16 ; [.4410.0020.0002] # AVESTAN LETTER GHE
-10B17 ; [.4411.0020.0002] # AVESTAN LETTER CE
-10B18 ; [.4412.0020.0002] # AVESTAN LETTER JE
-10B19 ; [.4413.0020.0002] # AVESTAN LETTER TE
-10B1A ; [.4414.0020.0002] # AVESTAN LETTER THE
-10B1B ; [.4415.0020.0002] # AVESTAN LETTER DE
-10B1C ; [.4416.0020.0002] # AVESTAN LETTER DHE
-10B1D ; [.4417.0020.0002] # AVESTAN LETTER TTE
-10B1E ; [.4418.0020.0002] # AVESTAN LETTER PE
-10B1F ; [.4419.0020.0002] # AVESTAN LETTER FE
-10B20 ; [.441A.0020.0002] # AVESTAN LETTER BE
-10B21 ; [.441B.0020.0002] # AVESTAN LETTER BHE
-10B22 ; [.441C.0020.0002] # AVESTAN LETTER NGE
-10B23 ; [.441D.0020.0002] # AVESTAN LETTER NGYE
-10B24 ; [.441E.0020.0002] # AVESTAN LETTER NGVE
-10B25 ; [.441F.0020.0002] # AVESTAN LETTER NE
-10B26 ; [.4420.0020.0002] # AVESTAN LETTER NYE
-10B27 ; [.4421.0020.0002] # AVESTAN LETTER NNE
-10B28 ; [.4422.0020.0002] # AVESTAN LETTER ME
-10B29 ; [.4423.0020.0002] # AVESTAN LETTER HME
-10B2A ; [.4424.0020.0002] # AVESTAN LETTER YYE
-10B2B ; [.4425.0020.0002] # AVESTAN LETTER YE
-10B2C ; [.4426.0020.0002] # AVESTAN LETTER VE
-10B2D ; [.4427.0020.0002] # AVESTAN LETTER RE
-10B2E ; [.4427.0020.0004][.0000.0108.0004] # AVESTAN LETTER LE
-10B2F ; [.4428.0020.0002] # AVESTAN LETTER SE
-10B30 ; [.4429.0020.0002] # AVESTAN LETTER ZE
-10B31 ; [.442A.0020.0002] # AVESTAN LETTER SHE
-10B32 ; [.442B.0020.0002] # AVESTAN LETTER ZHE
-10B33 ; [.442C.0020.0002] # AVESTAN LETTER SHYE
-10B34 ; [.442D.0020.0002] # AVESTAN LETTER SSHE
-10B35 ; [.442E.0020.0002] # AVESTAN LETTER HE
-10860 ; [.442F.0020.0002] # PALMYRENE LETTER ALEPH
-10861 ; [.4430.0020.0002] # PALMYRENE LETTER BETH
-10862 ; [.4431.0020.0002] # PALMYRENE LETTER GIMEL
-10863 ; [.4432.0020.0002] # PALMYRENE LETTER DALETH
-10864 ; [.4433.0020.0002] # PALMYRENE LETTER HE
-10865 ; [.4434.0020.0002] # PALMYRENE LETTER WAW
-10866 ; [.4435.0020.0002] # PALMYRENE LETTER ZAYIN
-10867 ; [.4436.0020.0002] # PALMYRENE LETTER HETH
-10868 ; [.4437.0020.0002] # PALMYRENE LETTER TETH
-10869 ; [.4438.0020.0002] # PALMYRENE LETTER YODH
-1086A ; [.4439.0020.0002] # PALMYRENE LETTER KAPH
-1086B ; [.443A.0020.0002] # PALMYRENE LETTER LAMEDH
-1086C ; [.443B.0020.0002] # PALMYRENE LETTER MEM
-1086E ; [.443C.0020.0002] # PALMYRENE LETTER NUN
-1086D ; [.443C.0020.0019] # PALMYRENE LETTER FINAL NUN
-1086F ; [.443D.0020.0002] # PALMYRENE LETTER SAMEKH
-10870 ; [.443E.0020.0002] # PALMYRENE LETTER AYIN
-10871 ; [.443F.0020.0002] # PALMYRENE LETTER PE
-10872 ; [.4440.0020.0002] # PALMYRENE LETTER SADHE
-10873 ; [.4441.0020.0002] # PALMYRENE LETTER QOPH
-10874 ; [.4442.0020.0002] # PALMYRENE LETTER RESH
-10875 ; [.4443.0020.0002] # PALMYRENE LETTER SHIN
-10876 ; [.4444.0020.0002] # PALMYRENE LETTER TAW
-10881 ; [.4445.0020.0002] # NABATAEAN LETTER ALEPH
-10880 ; [.4445.0020.0019] # NABATAEAN LETTER FINAL ALEPH
-10883 ; [.4446.0020.0002] # NABATAEAN LETTER BETH
-10882 ; [.4446.0020.0019] # NABATAEAN LETTER FINAL BETH
-10884 ; [.4447.0020.0002] # NABATAEAN LETTER GIMEL
-10885 ; [.4448.0020.0002] # NABATAEAN LETTER DALETH
-10887 ; [.4449.0020.0002] # NABATAEAN LETTER HE
-10886 ; [.4449.0020.0019] # NABATAEAN LETTER FINAL HE
-10888 ; [.444A.0020.0002] # NABATAEAN LETTER WAW
-10889 ; [.444B.0020.0002] # NABATAEAN LETTER ZAYIN
-1088A ; [.444C.0020.0002] # NABATAEAN LETTER HETH
-1088B ; [.444D.0020.0002] # NABATAEAN LETTER TETH
-1088D ; [.444E.0020.0002] # NABATAEAN LETTER YODH
-1088C ; [.444E.0020.0019] # NABATAEAN LETTER FINAL YODH
-1088F ; [.444F.0020.0002] # NABATAEAN LETTER KAPH
-1088E ; [.444F.0020.0019] # NABATAEAN LETTER FINAL KAPH
-10891 ; [.4450.0020.0002] # NABATAEAN LETTER LAMEDH
-10890 ; [.4450.0020.0019] # NABATAEAN LETTER FINAL LAMEDH
-10893 ; [.4451.0020.0002] # NABATAEAN LETTER MEM
-10892 ; [.4451.0020.0019] # NABATAEAN LETTER FINAL MEM
-10895 ; [.4452.0020.0002] # NABATAEAN LETTER NUN
-10894 ; [.4452.0020.0019] # NABATAEAN LETTER FINAL NUN
-10896 ; [.4453.0020.0002] # NABATAEAN LETTER SAMEKH
-10897 ; [.4454.0020.0002] # NABATAEAN LETTER AYIN
-10898 ; [.4455.0020.0002] # NABATAEAN LETTER PE
-10899 ; [.4456.0020.0002] # NABATAEAN LETTER SADHE
-1089A ; [.4457.0020.0002] # NABATAEAN LETTER QOPH
-1089B ; [.4458.0020.0002] # NABATAEAN LETTER RESH
-1089D ; [.4459.0020.0002] # NABATAEAN LETTER SHIN
-1089C ; [.4459.0020.0019] # NABATAEAN LETTER FINAL SHIN
-1089E ; [.445A.0020.0002] # NABATAEAN LETTER TAW
-10840 ; [.445B.0020.0002] # IMPERIAL ARAMAIC LETTER ALEPH
-10841 ; [.445C.0020.0002] # IMPERIAL ARAMAIC LETTER BETH
-10842 ; [.445D.0020.0002] # IMPERIAL ARAMAIC LETTER GIMEL
-10843 ; [.445E.0020.0002] # IMPERIAL ARAMAIC LETTER DALETH
-10844 ; [.445F.0020.0002] # IMPERIAL ARAMAIC LETTER HE
-10845 ; [.4460.0020.0002] # IMPERIAL ARAMAIC LETTER WAW
-10846 ; [.4461.0020.0002] # IMPERIAL ARAMAIC LETTER ZAYIN
-10847 ; [.4462.0020.0002] # IMPERIAL ARAMAIC LETTER HETH
-10848 ; [.4463.0020.0002] # IMPERIAL ARAMAIC LETTER TETH
-10849 ; [.4464.0020.0002] # IMPERIAL ARAMAIC LETTER YODH
-1084A ; [.4465.0020.0002] # IMPERIAL ARAMAIC LETTER KAPH
-1084B ; [.4466.0020.0002] # IMPERIAL ARAMAIC LETTER LAMEDH
-1084C ; [.4467.0020.0002] # IMPERIAL ARAMAIC LETTER MEM
-1084D ; [.4468.0020.0002] # IMPERIAL ARAMAIC LETTER NUN
-1084E ; [.4469.0020.0002] # IMPERIAL ARAMAIC LETTER SAMEKH
-1084F ; [.446A.0020.0002] # IMPERIAL ARAMAIC LETTER AYIN
-10850 ; [.446B.0020.0002] # IMPERIAL ARAMAIC LETTER PE
-10851 ; [.446C.0020.0002] # IMPERIAL ARAMAIC LETTER SADHE
-10852 ; [.446D.0020.0002] # IMPERIAL ARAMAIC LETTER QOPH
-10853 ; [.446E.0020.0002] # IMPERIAL ARAMAIC LETTER RESH
-10854 ; [.446F.0020.0002] # IMPERIAL ARAMAIC LETTER SHIN
-10855 ; [.4470.0020.0002] # IMPERIAL ARAMAIC LETTER TAW
-10B40 ; [.4471.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ALEPH
-10B41 ; [.4472.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER BETH
-10B42 ; [.4473.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER GIMEL
-10B43 ; [.4474.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER DALETH
-10B44 ; [.4475.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HE
-10B45 ; [.4476.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER WAW
-10B46 ; [.4477.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ZAYIN
-10B47 ; [.4478.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HETH
-10B48 ; [.4479.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TETH
-10B49 ; [.447A.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER YODH
-10B4A ; [.447B.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER KAPH
-10B4B ; [.447C.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER LAMEDH
-10B4C ; [.447D.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER MEM
-10B4D ; [.447E.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER NUN
-10B4E ; [.447F.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SAMEKH
-10B4F ; [.4480.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER AYIN
-10B50 ; [.4481.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER PE
-10B51 ; [.4482.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SADHE
-10B52 ; [.4483.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER QOPH
-10B53 ; [.4484.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER RESH
-10B54 ; [.4485.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SHIN
-10B55 ; [.4486.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TAW
-10B60 ; [.4487.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ALEPH
-10B61 ; [.4488.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER BETH
-10B62 ; [.4489.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER GIMEL
-10B63 ; [.448A.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER DALETH
-10B64 ; [.448B.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HE
-10B65 ; [.448C.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
-10B66 ; [.448D.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ZAYIN
-10B67 ; [.448E.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HETH
-10B68 ; [.448F.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TETH
-10B69 ; [.4490.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER YODH
-10B6A ; [.4491.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER KAPH
-10B6B ; [.4492.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER LAMEDH
-10B6C ; [.4493.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
-10B6D ; [.4494.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER NUN
-10B6E ; [.4495.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SAMEKH
-10B6F ; [.4496.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER PE
-10B70 ; [.4497.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SADHE
-10B71 ; [.4498.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SHIN
-10B72 ; [.4499.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TAW
-10B80 ; [.449A.0020.0002] # PSALTER PAHLAVI LETTER ALEPH
-10B81 ; [.449B.0020.0002] # PSALTER PAHLAVI LETTER BETH
-10B82 ; [.449C.0020.0002] # PSALTER PAHLAVI LETTER GIMEL
-10B83 ; [.449D.0020.0002] # PSALTER PAHLAVI LETTER DALETH
-10B84 ; [.449E.0020.0002] # PSALTER PAHLAVI LETTER HE
-10B85 ; [.449F.0020.0002] # PSALTER PAHLAVI LETTER WAW-AYIN-RESH
-10B86 ; [.44A0.0020.0002] # PSALTER PAHLAVI LETTER ZAYIN
-10B87 ; [.44A1.0020.0002] # PSALTER PAHLAVI LETTER HETH
-10B88 ; [.44A2.0020.0002] # PSALTER PAHLAVI LETTER YODH
-10B89 ; [.44A3.0020.0002] # PSALTER PAHLAVI LETTER KAPH
-10B8A ; [.44A4.0020.0002] # PSALTER PAHLAVI LETTER LAMEDH
-10B8B ; [.44A5.0020.0002] # PSALTER PAHLAVI LETTER MEM-QOPH
-10B8C ; [.44A6.0020.0002] # PSALTER PAHLAVI LETTER NUN
-10B8D ; [.44A7.0020.0002] # PSALTER PAHLAVI LETTER SAMEKH
-10B8E ; [.44A8.0020.0002] # PSALTER PAHLAVI LETTER PE
-10B8F ; [.44A9.0020.0002] # PSALTER PAHLAVI LETTER SADHE
-10B90 ; [.44AA.0020.0002] # PSALTER PAHLAVI LETTER SHIN
-10B91 ; [.44AB.0020.0002] # PSALTER PAHLAVI LETTER TAW
-10AC0 ; [.44AC.0020.0002] # MANICHAEAN LETTER ALEPH
-10AC1 ; [.44AD.0020.0002] # MANICHAEAN LETTER BETH
-10AC2 ; [.44AE.0020.0002] # MANICHAEAN LETTER BHETH
-10AC3 ; [.44AF.0020.0002] # MANICHAEAN LETTER GIMEL
-10AC4 ; [.44B0.0020.0002] # MANICHAEAN LETTER GHIMEL
-10AC5 ; [.44B1.0020.0002] # MANICHAEAN LETTER DALETH
-10AC6 ; [.44B2.0020.0002] # MANICHAEAN LETTER HE
-10AC7 ; [.44B3.0020.0002] # MANICHAEAN LETTER WAW
-10AC8 ; [.44B3.0020.0004][.0000.0109.0004] # MANICHAEAN SIGN UD
-10AC9 ; [.44B4.0020.0002] # MANICHAEAN LETTER ZAYIN
-10ACA ; [.44B5.0020.0002] # MANICHAEAN LETTER ZHAYIN
-10ACB ; [.44B6.0020.0002] # MANICHAEAN LETTER JAYIN
-10ACC ; [.44B7.0020.0002] # MANICHAEAN LETTER JHAYIN
-10ACD ; [.44B8.0020.0002] # MANICHAEAN LETTER HETH
-10ACE ; [.44B9.0020.0002] # MANICHAEAN LETTER TETH
-10ACF ; [.44BA.0020.0002] # MANICHAEAN LETTER YODH
-10AD0 ; [.44BB.0020.0002] # MANICHAEAN LETTER KAPH
-10AD1 ; [.44BC.0020.0002] # MANICHAEAN LETTER XAPH
-10AD2 ; [.44BD.0020.0002] # MANICHAEAN LETTER KHAPH
-10AD3 ; [.44BE.0020.0002] # MANICHAEAN LETTER LAMEDH
-10AD4 ; [.44BF.0020.0002] # MANICHAEAN LETTER DHAMEDH
-10AD5 ; [.44C0.0020.0002] # MANICHAEAN LETTER THAMEDH
-10AD6 ; [.44C1.0020.0002] # MANICHAEAN LETTER MEM
-10AD7 ; [.44C2.0020.0002] # MANICHAEAN LETTER NUN
-10AD8 ; [.44C3.0020.0002] # MANICHAEAN LETTER SAMEKH
-10AD9 ; [.44C4.0020.0002] # MANICHAEAN LETTER AYIN
-10ADA ; [.44C5.0020.0002] # MANICHAEAN LETTER AAYIN
-10ADB ; [.44C6.0020.0002] # MANICHAEAN LETTER PE
-10ADC ; [.44C7.0020.0002] # MANICHAEAN LETTER FE
-10ADD ; [.44C8.0020.0002] # MANICHAEAN LETTER SADHE
-10ADE ; [.44C9.0020.0002] # MANICHAEAN LETTER QOPH
-10ADF ; [.44CA.0020.0002] # MANICHAEAN LETTER XOPH
-10AE0 ; [.44CB.0020.0002] # MANICHAEAN LETTER QHOPH
-10AE1 ; [.44CC.0020.0002] # MANICHAEAN LETTER RESH
-10AE2 ; [.44CD.0020.0002] # MANICHAEAN LETTER SHIN
-10AE3 ; [.44CE.0020.0002] # MANICHAEAN LETTER SSHIN
-10AE4 ; [.44CF.0020.0002] # MANICHAEAN LETTER TAW
-10380 ; [.44D0.0020.0002] # UGARITIC LETTER ALPA
-10381 ; [.44D1.0020.0002] # UGARITIC LETTER BETA
-10382 ; [.44D2.0020.0002] # UGARITIC LETTER GAMLA
-10383 ; [.44D3.0020.0002] # UGARITIC LETTER KHA
-10384 ; [.44D4.0020.0002] # UGARITIC LETTER DELTA
-10385 ; [.44D5.0020.0002] # UGARITIC LETTER HO
-10386 ; [.44D6.0020.0002] # UGARITIC LETTER WO
-10387 ; [.44D7.0020.0002] # UGARITIC LETTER ZETA
-10388 ; [.44D8.0020.0002] # UGARITIC LETTER HOTA
-10389 ; [.44D9.0020.0002] # UGARITIC LETTER TET
-1038A ; [.44DA.0020.0002] # UGARITIC LETTER YOD
-1038B ; [.44DB.0020.0002] # UGARITIC LETTER KAF
-1038C ; [.44DC.0020.0002] # UGARITIC LETTER SHIN
-1038D ; [.44DD.0020.0002] # UGARITIC LETTER LAMDA
-1038E ; [.44DE.0020.0002] # UGARITIC LETTER MEM
-1038F ; [.44DF.0020.0002] # UGARITIC LETTER DHAL
-10390 ; [.44E0.0020.0002] # UGARITIC LETTER NUN
-10391 ; [.44E1.0020.0002] # UGARITIC LETTER ZU
-10392 ; [.44E2.0020.0002] # UGARITIC LETTER SAMKA
-10393 ; [.44E3.0020.0002] # UGARITIC LETTER AIN
-10394 ; [.44E4.0020.0002] # UGARITIC LETTER PU
-10395 ; [.44E5.0020.0002] # UGARITIC LETTER SADE
-10396 ; [.44E6.0020.0002] # UGARITIC LETTER QOPA
-10397 ; [.44E7.0020.0002] # UGARITIC LETTER RASHA
-10398 ; [.44E8.0020.0002] # UGARITIC LETTER THANNA
-10399 ; [.44E9.0020.0002] # UGARITIC LETTER GHAIN
-1039A ; [.44EA.0020.0002] # UGARITIC LETTER TO
-1039B ; [.44EB.0020.0002] # UGARITIC LETTER I
-1039C ; [.44EC.0020.0002] # UGARITIC LETTER U
-1039D ; [.44ED.0020.0002] # UGARITIC LETTER SSU
-103A0 ; [.44EE.0020.0002] # OLD PERSIAN SIGN A
-103A1 ; [.44EF.0020.0002] # OLD PERSIAN SIGN I
-103A2 ; [.44F0.0020.0002] # OLD PERSIAN SIGN U
-103A3 ; [.44F1.0020.0002] # OLD PERSIAN SIGN KA
-103A4 ; [.44F2.0020.0002] # OLD PERSIAN SIGN KU
-103A5 ; [.44F3.0020.0002] # OLD PERSIAN SIGN GA
-103A6 ; [.44F4.0020.0002] # OLD PERSIAN SIGN GU
-103A7 ; [.44F5.0020.0002] # OLD PERSIAN SIGN XA
-103A8 ; [.44F6.0020.0002] # OLD PERSIAN SIGN CA
-103A9 ; [.44F7.0020.0002] # OLD PERSIAN SIGN JA
-103AA ; [.44F8.0020.0002] # OLD PERSIAN SIGN JI
-103AB ; [.44F9.0020.0002] # OLD PERSIAN SIGN TA
-103AC ; [.44FA.0020.0002] # OLD PERSIAN SIGN TU
-103AD ; [.44FB.0020.0002] # OLD PERSIAN SIGN DA
-103AE ; [.44FC.0020.0002] # OLD PERSIAN SIGN DI
-103AF ; [.44FD.0020.0002] # OLD PERSIAN SIGN DU
-103B0 ; [.44FE.0020.0002] # OLD PERSIAN SIGN THA
-103B1 ; [.44FF.0020.0002] # OLD PERSIAN SIGN PA
-103B2 ; [.4500.0020.0002] # OLD PERSIAN SIGN BA
-103B3 ; [.4501.0020.0002] # OLD PERSIAN SIGN FA
-103B4 ; [.4502.0020.0002] # OLD PERSIAN SIGN NA
-103B5 ; [.4503.0020.0002] # OLD PERSIAN SIGN NU
-103B6 ; [.4504.0020.0002] # OLD PERSIAN SIGN MA
-103B7 ; [.4505.0020.0002] # OLD PERSIAN SIGN MI
-103B8 ; [.4506.0020.0002] # OLD PERSIAN SIGN MU
-103B9 ; [.4507.0020.0002] # OLD PERSIAN SIGN YA
-103BA ; [.4508.0020.0002] # OLD PERSIAN SIGN VA
-103BB ; [.4509.0020.0002] # OLD PERSIAN SIGN VI
-103BC ; [.450A.0020.0002] # OLD PERSIAN SIGN RA
-103BD ; [.450B.0020.0002] # OLD PERSIAN SIGN RU
-103BE ; [.450C.0020.0002] # OLD PERSIAN SIGN LA
-103BF ; [.450D.0020.0002] # OLD PERSIAN SIGN SA
-103C0 ; [.450E.0020.0002] # OLD PERSIAN SIGN ZA
-103C1 ; [.450F.0020.0002] # OLD PERSIAN SIGN SHA
-103C2 ; [.4510.0020.0002] # OLD PERSIAN SIGN SSA
-103C3 ; [.4511.0020.0002] # OLD PERSIAN SIGN HA
-103C8 ; [.4512.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA
-103C9 ; [.4513.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA-2
-103CA ; [.4514.0020.0002] # OLD PERSIAN SIGN AURAMAZDAAHA
-103CB ; [.4515.0020.0002] # OLD PERSIAN SIGN XSHAAYATHIYA
-103CC ; [.4516.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH
-103CD ; [.4517.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH-2
-103CE ; [.4518.0020.0002] # OLD PERSIAN SIGN BAGA
-103CF ; [.4519.0020.0002] # OLD PERSIAN SIGN BUUMISH
-12000 ; [.451A.0020.0002] # CUNEIFORM SIGN A
-12001 ; [.451B.0020.0002] # CUNEIFORM SIGN A TIMES A
-12002 ; [.451C.0020.0002] # CUNEIFORM SIGN A TIMES BAD
-12003 ; [.451D.0020.0002] # CUNEIFORM SIGN A TIMES GAN2 TENU
-12004 ; [.451E.0020.0002] # CUNEIFORM SIGN A TIMES HA
-12005 ; [.451F.0020.0002] # CUNEIFORM SIGN A TIMES IGI
-12006 ; [.4520.0020.0002] # CUNEIFORM SIGN A TIMES LAGAR GUNU
-12007 ; [.4521.0020.0002] # CUNEIFORM SIGN A TIMES MUSH
-12008 ; [.4522.0020.0002] # CUNEIFORM SIGN A TIMES SAG
-12009 ; [.4523.0020.0002] # CUNEIFORM SIGN A2
-1200A ; [.4524.0020.0002] # CUNEIFORM SIGN AB
-1200B ; [.4525.0020.0002] # CUNEIFORM SIGN AB TIMES ASH2
-1200C ; [.4526.0020.0002] # CUNEIFORM SIGN AB TIMES DUN3 GUNU
-1200D ; [.4527.0020.0002] # CUNEIFORM SIGN AB TIMES GAL
-1200E ; [.4528.0020.0002] # CUNEIFORM SIGN AB TIMES GAN2 TENU
-1200F ; [.4529.0020.0002] # CUNEIFORM SIGN AB TIMES HA
-12010 ; [.452A.0020.0002] # CUNEIFORM SIGN AB TIMES IGI GUNU
-12011 ; [.452B.0020.0002] # CUNEIFORM SIGN AB TIMES IMIN
-12012 ; [.452C.0020.0002] # CUNEIFORM SIGN AB TIMES LAGAB
-12013 ; [.452D.0020.0002] # CUNEIFORM SIGN AB TIMES SHESH
-12014 ; [.452E.0020.0002] # CUNEIFORM SIGN AB TIMES U PLUS U PLUS U
-12015 ; [.452F.0020.0002] # CUNEIFORM SIGN AB GUNU
-12016 ; [.4530.0020.0002] # CUNEIFORM SIGN AB2
-12017 ; [.4531.0020.0002] # CUNEIFORM SIGN AB2 TIMES BALAG
-12018 ; [.4532.0020.0002] # CUNEIFORM SIGN AB2 TIMES GAN2 TENU
-12019 ; [.4533.0020.0002] # CUNEIFORM SIGN AB2 TIMES ME PLUS EN
-1201A ; [.4534.0020.0002] # CUNEIFORM SIGN AB2 TIMES SHA3
-1201B ; [.4535.0020.0002] # CUNEIFORM SIGN AB2 TIMES TAK4
-1201C ; [.4536.0020.0002] # CUNEIFORM SIGN AD
-1201D ; [.4537.0020.0002] # CUNEIFORM SIGN AK
-1201E ; [.4538.0020.0002] # CUNEIFORM SIGN AK TIMES ERIN2
-1201F ; [.4539.0020.0002] # CUNEIFORM SIGN AK TIMES SHITA PLUS GISH
-12020 ; [.453A.0020.0002] # CUNEIFORM SIGN AL
-12021 ; [.453B.0020.0002] # CUNEIFORM SIGN AL TIMES AL
-12022 ; [.453C.0020.0002] # CUNEIFORM SIGN AL TIMES DIM2
-12023 ; [.453D.0020.0002] # CUNEIFORM SIGN AL TIMES GISH
-12024 ; [.453E.0020.0002] # CUNEIFORM SIGN AL TIMES HA
-12025 ; [.453F.0020.0002] # CUNEIFORM SIGN AL TIMES KAD3
-12026 ; [.4540.0020.0002] # CUNEIFORM SIGN AL TIMES KI
-12027 ; [.4541.0020.0002] # CUNEIFORM SIGN AL TIMES SHE
-12028 ; [.4542.0020.0002] # CUNEIFORM SIGN AL TIMES USH
-12029 ; [.4543.0020.0002] # CUNEIFORM SIGN ALAN
-1202A ; [.4544.0020.0002] # CUNEIFORM SIGN ALEPH
-1202B ; [.4545.0020.0002] # CUNEIFORM SIGN AMAR
-1202C ; [.4546.0020.0002] # CUNEIFORM SIGN AMAR TIMES SHE
-1202D ; [.4547.0020.0002] # CUNEIFORM SIGN AN
-1202E ; [.4548.0020.0002] # CUNEIFORM SIGN AN OVER AN
-1202F ; [.4549.0020.0002] # CUNEIFORM SIGN AN THREE TIMES
-12030 ; [.454A.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA
-12031 ; [.454B.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA SQUARED
-12032 ; [.454C.0020.0002] # CUNEIFORM SIGN ANSHE
-12033 ; [.454D.0020.0002] # CUNEIFORM SIGN APIN
-12034 ; [.454E.0020.0002] # CUNEIFORM SIGN ARAD
-12035 ; [.454F.0020.0002] # CUNEIFORM SIGN ARAD TIMES KUR
-12036 ; [.4550.0020.0002] # CUNEIFORM SIGN ARKAB
-12037 ; [.4551.0020.0002] # CUNEIFORM SIGN ASAL2
-12038 ; [.4552.0020.0002] # CUNEIFORM SIGN ASH
-12039 ; [.4553.0020.0002] # CUNEIFORM SIGN ASH ZIDA TENU
-1203A ; [.4554.0020.0002] # CUNEIFORM SIGN ASH KABA TENU
-1203B ; [.4555.0020.0002] # CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP
-1203C ; [.4556.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH
-1203D ; [.4557.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH
-1203E ; [.4558.0020.0002] # CUNEIFORM SIGN ASH2
-1203F ; [.4559.0020.0002] # CUNEIFORM SIGN ASHGAB
-12040 ; [.455A.0020.0002] # CUNEIFORM SIGN BA
-12041 ; [.455B.0020.0002] # CUNEIFORM SIGN BAD
-12042 ; [.455C.0020.0002] # CUNEIFORM SIGN BAG3
-12043 ; [.455D.0020.0002] # CUNEIFORM SIGN BAHAR2
-12044 ; [.455E.0020.0002] # CUNEIFORM SIGN BAL
-12045 ; [.455F.0020.0002] # CUNEIFORM SIGN BAL OVER BAL
-12046 ; [.4560.0020.0002] # CUNEIFORM SIGN BALAG
-12047 ; [.4561.0020.0002] # CUNEIFORM SIGN BAR
-12048 ; [.4562.0020.0002] # CUNEIFORM SIGN BARA2
-12049 ; [.4563.0020.0002] # CUNEIFORM SIGN BI
-1204A ; [.4564.0020.0002] # CUNEIFORM SIGN BI TIMES A
-1204B ; [.4565.0020.0002] # CUNEIFORM SIGN BI TIMES GAR
-1204C ; [.4566.0020.0002] # CUNEIFORM SIGN BI TIMES IGI GUNU
-1204D ; [.4567.0020.0002] # CUNEIFORM SIGN BU
-1204E ; [.4568.0020.0002] # CUNEIFORM SIGN BU OVER BU AB
-1204F ; [.4569.0020.0002] # CUNEIFORM SIGN BU OVER BU UN
-12050 ; [.456A.0020.0002] # CUNEIFORM SIGN BU CROSSING BU
-12051 ; [.456B.0020.0002] # CUNEIFORM SIGN BULUG
-12052 ; [.456C.0020.0002] # CUNEIFORM SIGN BULUG OVER BULUG
-12053 ; [.456D.0020.0002] # CUNEIFORM SIGN BUR
-12054 ; [.456E.0020.0002] # CUNEIFORM SIGN BUR2
-12055 ; [.456F.0020.0002] # CUNEIFORM SIGN DA
-12056 ; [.4570.0020.0002] # CUNEIFORM SIGN DAG
-12057 ; [.4571.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH
-12058 ; [.4572.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES AMAR
-12059 ; [.4573.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BALAG
-1205A ; [.4574.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BI
-1205B ; [.4575.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA
-1205C ; [.4576.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH
-1205D ; [.4577.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GI
-1205E ; [.4578.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GIR2
-1205F ; [.4579.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GUD
-12060 ; [.457A.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES HA
-12061 ; [.457B.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR
-12062 ; [.457C.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU
-12063 ; [.457D.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES KAK
-12064 ; [.457E.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LA
-12065 ; [.457F.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU
-12066 ; [.4580.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2
-12067 ; [.4581.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LUM
-12068 ; [.4582.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES NE
-12069 ; [.4583.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP
-1206A ; [.4584.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES SI
-1206B ; [.4585.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES TAK4
-1206C ; [.4586.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2
-1206D ; [.4587.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES USH
-1206E ; [.4588.0020.0002] # CUNEIFORM SIGN DAM
-1206F ; [.4589.0020.0002] # CUNEIFORM SIGN DAR
-12070 ; [.458A.0020.0002] # CUNEIFORM SIGN DARA3
-12071 ; [.458B.0020.0002] # CUNEIFORM SIGN DARA4
-12072 ; [.458C.0020.0002] # CUNEIFORM SIGN DI
-12073 ; [.458D.0020.0002] # CUNEIFORM SIGN DIB
-12074 ; [.458E.0020.0002] # CUNEIFORM SIGN DIM
-12075 ; [.458F.0020.0002] # CUNEIFORM SIGN DIM TIMES SHE
-12076 ; [.4590.0020.0002] # CUNEIFORM SIGN DIM2
-12077 ; [.4591.0020.0002] # CUNEIFORM SIGN DIN
-12078 ; [.4592.0020.0002] # CUNEIFORM SIGN DIN KASKAL U GUNU DISH
-12079 ; [.4593.0020.0002] # CUNEIFORM SIGN DISH
-1207A ; [.4594.0020.0002] # CUNEIFORM SIGN DU
-1207B ; [.4595.0020.0002] # CUNEIFORM SIGN DU OVER DU
-1207C ; [.4596.0020.0002] # CUNEIFORM SIGN DU GUNU
-1207D ; [.4597.0020.0002] # CUNEIFORM SIGN DU SHESHIG
-1207E ; [.4598.0020.0002] # CUNEIFORM SIGN DUB
-1207F ; [.4599.0020.0002] # CUNEIFORM SIGN DUB TIMES ESH2
-12080 ; [.459A.0020.0002] # CUNEIFORM SIGN DUB2
-12081 ; [.459B.0020.0002] # CUNEIFORM SIGN DUG
-12082 ; [.459C.0020.0002] # CUNEIFORM SIGN DUGUD
-12083 ; [.459D.0020.0002] # CUNEIFORM SIGN DUH
-12084 ; [.459E.0020.0002] # CUNEIFORM SIGN DUN
-12085 ; [.459F.0020.0002] # CUNEIFORM SIGN DUN3
-12086 ; [.45A0.0020.0002] # CUNEIFORM SIGN DUN3 GUNU
-12087 ; [.45A1.0020.0002] # CUNEIFORM SIGN DUN3 GUNU GUNU
-12088 ; [.45A2.0020.0002] # CUNEIFORM SIGN DUN4
-12089 ; [.45A3.0020.0002] # CUNEIFORM SIGN DUR2
-1208A ; [.45A4.0020.0002] # CUNEIFORM SIGN E
-1208B ; [.45A5.0020.0002] # CUNEIFORM SIGN E TIMES PAP
-1208C ; [.45A6.0020.0002] # CUNEIFORM SIGN E OVER E NUN OVER NUN
-1208D ; [.45A7.0020.0002] # CUNEIFORM SIGN E2
-1208E ; [.45A8.0020.0002] # CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA
-1208F ; [.45A9.0020.0002] # CUNEIFORM SIGN E2 TIMES GAR
-12090 ; [.45AA.0020.0002] # CUNEIFORM SIGN E2 TIMES MI
-12091 ; [.45AB.0020.0002] # CUNEIFORM SIGN E2 TIMES SAL
-12092 ; [.45AC.0020.0002] # CUNEIFORM SIGN E2 TIMES SHE
-12093 ; [.45AD.0020.0002] # CUNEIFORM SIGN E2 TIMES U
-12094 ; [.45AE.0020.0002] # CUNEIFORM SIGN EDIN
-12095 ; [.45AF.0020.0002] # CUNEIFORM SIGN EGIR
-12096 ; [.45B0.0020.0002] # CUNEIFORM SIGN EL
-12097 ; [.45B1.0020.0002] # CUNEIFORM SIGN EN
-12098 ; [.45B2.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2
-12099 ; [.45B3.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2 TENU
-1209A ; [.45B4.0020.0002] # CUNEIFORM SIGN EN TIMES ME
-1209B ; [.45B5.0020.0002] # CUNEIFORM SIGN EN CROSSING EN
-1209C ; [.45B6.0020.0002] # CUNEIFORM SIGN EN OPPOSING EN
-1209D ; [.45B7.0020.0002] # CUNEIFORM SIGN EN SQUARED
-1209E ; [.45B8.0020.0002] # CUNEIFORM SIGN EREN
-1209F ; [.45B9.0020.0002] # CUNEIFORM SIGN ERIN2
-120A0 ; [.45BA.0020.0002] # CUNEIFORM SIGN ESH2
-120A1 ; [.45BB.0020.0002] # CUNEIFORM SIGN EZEN
-120A2 ; [.45BC.0020.0002] # CUNEIFORM SIGN EZEN TIMES A
-120A3 ; [.45BD.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL
-120A4 ; [.45BE.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL
-120A5 ; [.45BF.0020.0002] # CUNEIFORM SIGN EZEN TIMES AN
-120A6 ; [.45C0.0020.0002] # CUNEIFORM SIGN EZEN TIMES BAD
-120A7 ; [.45C1.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU
-120A8 ; [.45C2.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU
-120A9 ; [.45C3.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA
-120AA ; [.45C4.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA GUNU
-120AB ; [.45C5.0020.0002] # CUNEIFORM SIGN EZEN TIMES IGI GUNU
-120AC ; [.45C6.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL
-120AD ; [.45C7.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED
-120AE ; [.45C8.0020.0002] # CUNEIFORM SIGN EZEN TIMES KU3
-120AF ; [.45C9.0020.0002] # CUNEIFORM SIGN EZEN TIMES LA
-120B0 ; [.45CA.0020.0002] # CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL
-120B1 ; [.45CB.0020.0002] # CUNEIFORM SIGN EZEN TIMES LI
-120B2 ; [.45CC.0020.0002] # CUNEIFORM SIGN EZEN TIMES LU
-120B3 ; [.45CD.0020.0002] # CUNEIFORM SIGN EZEN TIMES U2
-120B4 ; [.45CE.0020.0002] # CUNEIFORM SIGN EZEN TIMES UD
-120B5 ; [.45CF.0020.0002] # CUNEIFORM SIGN GA
-120B6 ; [.45D0.0020.0002] # CUNEIFORM SIGN GA GUNU
-120B7 ; [.45D1.0020.0002] # CUNEIFORM SIGN GA2
-120B8 ; [.45D2.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA
-120B9 ; [.45D3.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS HA
-120BA ; [.45D4.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS IGI
-120BB ; [.45D5.0020.0002] # CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB
-120BC ; [.45D6.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN
-120BD ; [.45D7.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH
-120BE ; [.45D8.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL
-120BF ; [.45D9.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAD
-120C0 ; [.45DA.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAR PLUS RA
-120C1 ; [.45DB.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR
-120C2 ; [.45DC.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR PLUS RA
-120C3 ; [.45DD.0020.0002] # CUNEIFORM SIGN GA2 TIMES DA
-120C4 ; [.45DE.0020.0002] # CUNEIFORM SIGN GA2 TIMES DI
-120C5 ; [.45DF.0020.0002] # CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE
-120C6 ; [.45E0.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUB
-120C7 ; [.45E1.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL
-120C8 ; [.45E2.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL PLUS LA
-120C9 ; [.45E3.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN
-120CA ; [.45E4.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU
-120CB ; [.45E5.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAN2 TENU
-120CC ; [.45E6.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR
-120CD ; [.45E7.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI
-120CE ; [.45E8.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4
-120CF ; [.45E9.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4 PLUS A
-120D0 ; [.45EA.0020.0002] # CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU
-120D1 ; [.45EB.0020.0002] # CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2
-120D2 ; [.45EC.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL
-120D3 ; [.45ED.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL PLUS LA
-120D4 ; [.45EE.0020.0002] # CUNEIFORM SIGN GA2 TIMES HI PLUS LI
-120D5 ; [.45EF.0020.0002] # CUNEIFORM SIGN GA2 TIMES HUB2
-120D6 ; [.45F0.0020.0002] # CUNEIFORM SIGN GA2 TIMES IGI GUNU
-120D7 ; [.45F1.0020.0002] # CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH
-120D8 ; [.45F2.0020.0002] # CUNEIFORM SIGN GA2 TIMES KAK
-120D9 ; [.45F3.0020.0002] # CUNEIFORM SIGN GA2 TIMES KASKAL
-120DA ; [.45F4.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID
-120DB ; [.45F5.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID PLUS LAL
-120DC ; [.45F6.0020.0002] # CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN
-120DD ; [.45F7.0020.0002] # CUNEIFORM SIGN GA2 TIMES LA
-120DE ; [.45F8.0020.0002] # CUNEIFORM SIGN GA2 TIMES ME PLUS EN
-120DF ; [.45F9.0020.0002] # CUNEIFORM SIGN GA2 TIMES MI
-120E0 ; [.45FA.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN
-120E1 ; [.45FB.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN OVER NUN
-120E2 ; [.45FC.0020.0002] # CUNEIFORM SIGN GA2 TIMES PA
-120E3 ; [.45FD.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAL
-120E4 ; [.45FE.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAR
-120E5 ; [.45FF.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE
-120E6 ; [.4600.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR
-120E7 ; [.4601.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHID
-120E8 ; [.4602.0020.0002] # CUNEIFORM SIGN GA2 TIMES SUM
-120E9 ; [.4603.0020.0002] # CUNEIFORM SIGN GA2 TIMES TAK4
-120EA ; [.4604.0020.0002] # CUNEIFORM SIGN GA2 TIMES U
-120EB ; [.4605.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD
-120EC ; [.4606.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD PLUS DU
-120ED ; [.4607.0020.0002] # CUNEIFORM SIGN GA2 OVER GA2
-120EE ; [.4608.0020.0002] # CUNEIFORM SIGN GABA
-120EF ; [.4609.0020.0002] # CUNEIFORM SIGN GABA CROSSING GABA
-120F0 ; [.460A.0020.0002] # CUNEIFORM SIGN GAD
-120F1 ; [.460B.0020.0002] # CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR
-120F2 ; [.460C.0020.0002] # CUNEIFORM SIGN GAL
-120F3 ; [.460D.0020.0002] # CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR
-120F4 ; [.460E.0020.0002] # CUNEIFORM SIGN GALAM
-120F5 ; [.460F.0020.0002] # CUNEIFORM SIGN GAM
-120F6 ; [.4610.0020.0002] # CUNEIFORM SIGN GAN
-120F7 ; [.4611.0020.0002] # CUNEIFORM SIGN GAN2
-120F8 ; [.4612.0020.0002] # CUNEIFORM SIGN GAN2 TENU
-120F9 ; [.4613.0020.0002] # CUNEIFORM SIGN GAN2 OVER GAN2
-120FA ; [.4614.0020.0002] # CUNEIFORM SIGN GAN2 CROSSING GAN2
-120FB ; [.4615.0020.0002] # CUNEIFORM SIGN GAR
-120FC ; [.4616.0020.0002] # CUNEIFORM SIGN GAR3
-120FD ; [.4617.0020.0002] # CUNEIFORM SIGN GASHAN
-120FE ; [.4618.0020.0002] # CUNEIFORM SIGN GESHTIN
-120FF ; [.4619.0020.0002] # CUNEIFORM SIGN GESHTIN TIMES KUR
-12100 ; [.461A.0020.0002] # CUNEIFORM SIGN GI
-12101 ; [.461B.0020.0002] # CUNEIFORM SIGN GI TIMES E
-12102 ; [.461C.0020.0002] # CUNEIFORM SIGN GI TIMES U
-12103 ; [.461D.0020.0002] # CUNEIFORM SIGN GI CROSSING GI
-12104 ; [.461E.0020.0002] # CUNEIFORM SIGN GI4
-12105 ; [.461F.0020.0002] # CUNEIFORM SIGN GI4 OVER GI4
-12106 ; [.4620.0020.0002] # CUNEIFORM SIGN GI4 CROSSING GI4
-12107 ; [.4621.0020.0002] # CUNEIFORM SIGN GIDIM
-12108 ; [.4622.0020.0002] # CUNEIFORM SIGN GIR2
-12109 ; [.4623.0020.0002] # CUNEIFORM SIGN GIR2 GUNU
-1210A ; [.4624.0020.0002] # CUNEIFORM SIGN GIR3
-1210B ; [.4625.0020.0002] # CUNEIFORM SIGN GIR3 TIMES A PLUS IGI
-1210C ; [.4626.0020.0002] # CUNEIFORM SIGN GIR3 TIMES GAN2 TENU
-1210D ; [.4627.0020.0002] # CUNEIFORM SIGN GIR3 TIMES IGI
-1210E ; [.4628.0020.0002] # CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI
-1210F ; [.4629.0020.0002] # CUNEIFORM SIGN GIR3 TIMES PA
-12110 ; [.462A.0020.0002] # CUNEIFORM SIGN GISAL
-12111 ; [.462B.0020.0002] # CUNEIFORM SIGN GISH
-12112 ; [.462C.0020.0002] # CUNEIFORM SIGN GISH CROSSING GISH
-12113 ; [.462D.0020.0002] # CUNEIFORM SIGN GISH TIMES BAD
-12114 ; [.462E.0020.0002] # CUNEIFORM SIGN GISH TIMES TAK4
-12115 ; [.462F.0020.0002] # CUNEIFORM SIGN GISH TENU
-12116 ; [.4630.0020.0002] # CUNEIFORM SIGN GU
-12117 ; [.4631.0020.0002] # CUNEIFORM SIGN GU CROSSING GU
-12118 ; [.4632.0020.0002] # CUNEIFORM SIGN GU2
-12119 ; [.4633.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK
-1211A ; [.4634.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU
-1211B ; [.4635.0020.0002] # CUNEIFORM SIGN GU2 TIMES NUN
-1211C ; [.4636.0020.0002] # CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2
-1211D ; [.4637.0020.0002] # CUNEIFORM SIGN GU2 GUNU
-1211E ; [.4638.0020.0002] # CUNEIFORM SIGN GUD
-1211F ; [.4639.0020.0002] # CUNEIFORM SIGN GUD TIMES A PLUS KUR
-12120 ; [.463A.0020.0002] # CUNEIFORM SIGN GUD TIMES KUR
-12121 ; [.463B.0020.0002] # CUNEIFORM SIGN GUD OVER GUD LUGAL
-12122 ; [.463C.0020.0002] # CUNEIFORM SIGN GUL
-12123 ; [.463D.0020.0002] # CUNEIFORM SIGN GUM
-12124 ; [.463E.0020.0002] # CUNEIFORM SIGN GUM TIMES SHE
-12125 ; [.463F.0020.0002] # CUNEIFORM SIGN GUR
-12126 ; [.4640.0020.0002] # CUNEIFORM SIGN GUR7
-12127 ; [.4641.0020.0002] # CUNEIFORM SIGN GURUN
-12128 ; [.4642.0020.0002] # CUNEIFORM SIGN GURUSH
-12129 ; [.4643.0020.0002] # CUNEIFORM SIGN HA
-1212A ; [.4644.0020.0002] # CUNEIFORM SIGN HA TENU
-1212B ; [.4645.0020.0002] # CUNEIFORM SIGN HA GUNU
-1212C ; [.4646.0020.0002] # CUNEIFORM SIGN HAL
-1212D ; [.4647.0020.0002] # CUNEIFORM SIGN HI
-1212E ; [.4648.0020.0002] # CUNEIFORM SIGN HI TIMES ASH
-1212F ; [.4649.0020.0002] # CUNEIFORM SIGN HI TIMES ASH2
-12130 ; [.464A.0020.0002] # CUNEIFORM SIGN HI TIMES BAD
-12131 ; [.464B.0020.0002] # CUNEIFORM SIGN HI TIMES DISH
-12132 ; [.464C.0020.0002] # CUNEIFORM SIGN HI TIMES GAD
-12133 ; [.464D.0020.0002] # CUNEIFORM SIGN HI TIMES KIN
-12134 ; [.464E.0020.0002] # CUNEIFORM SIGN HI TIMES NUN
-12135 ; [.464F.0020.0002] # CUNEIFORM SIGN HI TIMES SHE
-12136 ; [.4650.0020.0002] # CUNEIFORM SIGN HI TIMES U
-12137 ; [.4651.0020.0002] # CUNEIFORM SIGN HU
-12138 ; [.4652.0020.0002] # CUNEIFORM SIGN HUB2
-12139 ; [.4653.0020.0002] # CUNEIFORM SIGN HUB2 TIMES AN
-1213A ; [.4654.0020.0002] # CUNEIFORM SIGN HUB2 TIMES HAL
-1213B ; [.4655.0020.0002] # CUNEIFORM SIGN HUB2 TIMES KASKAL
-1213C ; [.4656.0020.0002] # CUNEIFORM SIGN HUB2 TIMES LISH
-1213D ; [.4657.0020.0002] # CUNEIFORM SIGN HUB2 TIMES UD
-1213E ; [.4658.0020.0002] # CUNEIFORM SIGN HUL2
-1213F ; [.4659.0020.0002] # CUNEIFORM SIGN I
-12140 ; [.465A.0020.0002] # CUNEIFORM SIGN I A
-12141 ; [.465B.0020.0002] # CUNEIFORM SIGN IB
-12142 ; [.465C.0020.0002] # CUNEIFORM SIGN IDIM
-12143 ; [.465D.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM BUR
-12144 ; [.465E.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM SQUARED
-12145 ; [.465F.0020.0002] # CUNEIFORM SIGN IG
-12146 ; [.4660.0020.0002] # CUNEIFORM SIGN IGI
-12147 ; [.4661.0020.0002] # CUNEIFORM SIGN IGI DIB
-12148 ; [.4662.0020.0002] # CUNEIFORM SIGN IGI RI
-12149 ; [.4663.0020.0002] # CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD
-1214A ; [.4664.0020.0002] # CUNEIFORM SIGN IGI GUNU
-1214B ; [.4665.0020.0002] # CUNEIFORM SIGN IL
-1214C ; [.4666.0020.0002] # CUNEIFORM SIGN IL TIMES GAN2 TENU
-1214D ; [.4667.0020.0002] # CUNEIFORM SIGN IL2
-1214E ; [.4668.0020.0002] # CUNEIFORM SIGN IM
-1214F ; [.4669.0020.0002] # CUNEIFORM SIGN IM TIMES TAK4
-12150 ; [.466A.0020.0002] # CUNEIFORM SIGN IM CROSSING IM
-12151 ; [.466B.0020.0002] # CUNEIFORM SIGN IM OPPOSING IM
-12152 ; [.466C.0020.0002] # CUNEIFORM SIGN IM SQUARED
-12153 ; [.466D.0020.0002] # CUNEIFORM SIGN IMIN
-12154 ; [.466E.0020.0002] # CUNEIFORM SIGN IN
-12155 ; [.466F.0020.0002] # CUNEIFORM SIGN IR
-12156 ; [.4670.0020.0002] # CUNEIFORM SIGN ISH
-12157 ; [.4671.0020.0002] # CUNEIFORM SIGN KA
-12158 ; [.4672.0020.0002] # CUNEIFORM SIGN KA TIMES A
-12159 ; [.4673.0020.0002] # CUNEIFORM SIGN KA TIMES AD
-1215A ; [.4674.0020.0002] # CUNEIFORM SIGN KA TIMES AD PLUS KU3
-1215B ; [.4675.0020.0002] # CUNEIFORM SIGN KA TIMES ASH2
-1215C ; [.4676.0020.0002] # CUNEIFORM SIGN KA TIMES BAD
-1215D ; [.4677.0020.0002] # CUNEIFORM SIGN KA TIMES BALAG
-1215E ; [.4678.0020.0002] # CUNEIFORM SIGN KA TIMES BAR
-1215F ; [.4679.0020.0002] # CUNEIFORM SIGN KA TIMES BI
-12160 ; [.467A.0020.0002] # CUNEIFORM SIGN KA TIMES ERIN2
-12161 ; [.467B.0020.0002] # CUNEIFORM SIGN KA TIMES ESH2
-12162 ; [.467C.0020.0002] # CUNEIFORM SIGN KA TIMES GA
-12163 ; [.467D.0020.0002] # CUNEIFORM SIGN KA TIMES GAL
-12164 ; [.467E.0020.0002] # CUNEIFORM SIGN KA TIMES GAN2 TENU
-12165 ; [.467F.0020.0002] # CUNEIFORM SIGN KA TIMES GAR
-12166 ; [.4680.0020.0002] # CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A
-12167 ; [.4681.0020.0002] # CUNEIFORM SIGN KA TIMES GI
-12168 ; [.4682.0020.0002] # CUNEIFORM SIGN KA TIMES GIR2
-12169 ; [.4683.0020.0002] # CUNEIFORM SIGN KA TIMES GISH PLUS SAR
-1216A ; [.4684.0020.0002] # CUNEIFORM SIGN KA TIMES GISH CROSSING GISH
-1216B ; [.4685.0020.0002] # CUNEIFORM SIGN KA TIMES GU
-1216C ; [.4686.0020.0002] # CUNEIFORM SIGN KA TIMES GUR7
-1216D ; [.4687.0020.0002] # CUNEIFORM SIGN KA TIMES IGI
-1216E ; [.4688.0020.0002] # CUNEIFORM SIGN KA TIMES IM
-1216F ; [.4689.0020.0002] # CUNEIFORM SIGN KA TIMES KAK
-12170 ; [.468A.0020.0002] # CUNEIFORM SIGN KA TIMES KI
-12171 ; [.468B.0020.0002] # CUNEIFORM SIGN KA TIMES KID
-12172 ; [.468C.0020.0002] # CUNEIFORM SIGN KA TIMES LI
-12173 ; [.468D.0020.0002] # CUNEIFORM SIGN KA TIMES LU
-12174 ; [.468E.0020.0002] # CUNEIFORM SIGN KA TIMES ME
-12175 ; [.468F.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS DU
-12176 ; [.4690.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS GI
-12177 ; [.4691.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS TE
-12178 ; [.4692.0020.0002] # CUNEIFORM SIGN KA TIMES MI
-12179 ; [.4693.0020.0002] # CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ
-1217A ; [.4694.0020.0002] # CUNEIFORM SIGN KA TIMES NE
-1217B ; [.4695.0020.0002] # CUNEIFORM SIGN KA TIMES NUN
-1217C ; [.4696.0020.0002] # CUNEIFORM SIGN KA TIMES PI
-1217D ; [.4697.0020.0002] # CUNEIFORM SIGN KA TIMES RU
-1217E ; [.4698.0020.0002] # CUNEIFORM SIGN KA TIMES SA
-1217F ; [.4699.0020.0002] # CUNEIFORM SIGN KA TIMES SAR
-12180 ; [.469A.0020.0002] # CUNEIFORM SIGN KA TIMES SHA
-12181 ; [.469B.0020.0002] # CUNEIFORM SIGN KA TIMES SHE
-12182 ; [.469C.0020.0002] # CUNEIFORM SIGN KA TIMES SHID
-12183 ; [.469D.0020.0002] # CUNEIFORM SIGN KA TIMES SHU
-12184 ; [.469E.0020.0002] # CUNEIFORM SIGN KA TIMES SIG
-12185 ; [.469F.0020.0002] # CUNEIFORM SIGN KA TIMES SUHUR
-12186 ; [.46A0.0020.0002] # CUNEIFORM SIGN KA TIMES TAR
-12187 ; [.46A1.0020.0002] # CUNEIFORM SIGN KA TIMES U
-12188 ; [.46A2.0020.0002] # CUNEIFORM SIGN KA TIMES U2
-12189 ; [.46A3.0020.0002] # CUNEIFORM SIGN KA TIMES UD
-1218A ; [.46A4.0020.0002] # CUNEIFORM SIGN KA TIMES UMUM TIMES PA
-1218B ; [.46A5.0020.0002] # CUNEIFORM SIGN KA TIMES USH
-1218C ; [.46A6.0020.0002] # CUNEIFORM SIGN KA TIMES ZI
-1218D ; [.46A7.0020.0002] # CUNEIFORM SIGN KA2
-1218E ; [.46A8.0020.0002] # CUNEIFORM SIGN KA2 CROSSING KA2
-1218F ; [.46A9.0020.0002] # CUNEIFORM SIGN KAB
-12190 ; [.46AA.0020.0002] # CUNEIFORM SIGN KAD2
-12191 ; [.46AB.0020.0002] # CUNEIFORM SIGN KAD3
-12192 ; [.46AC.0020.0002] # CUNEIFORM SIGN KAD4
-12193 ; [.46AD.0020.0002] # CUNEIFORM SIGN KAD5
-12194 ; [.46AE.0020.0002] # CUNEIFORM SIGN KAD5 OVER KAD5
-12195 ; [.46AF.0020.0002] # CUNEIFORM SIGN KAK
-12196 ; [.46B0.0020.0002] # CUNEIFORM SIGN KAK TIMES IGI GUNU
-12197 ; [.46B1.0020.0002] # CUNEIFORM SIGN KAL
-12198 ; [.46B2.0020.0002] # CUNEIFORM SIGN KAL TIMES BAD
-12199 ; [.46B3.0020.0002] # CUNEIFORM SIGN KAL CROSSING KAL
-1219A ; [.46B4.0020.0002] # CUNEIFORM SIGN KAM2
-1219B ; [.46B5.0020.0002] # CUNEIFORM SIGN KAM4
-1219C ; [.46B6.0020.0002] # CUNEIFORM SIGN KASKAL
-1219D ; [.46B7.0020.0002] # CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219E ; [.46B8.0020.0002] # CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U
-1219F ; [.46B9.0020.0002] # CUNEIFORM SIGN KESH2
-121A0 ; [.46BA.0020.0002] # CUNEIFORM SIGN KI
-121A1 ; [.46BB.0020.0002] # CUNEIFORM SIGN KI TIMES BAD
-121A2 ; [.46BC.0020.0002] # CUNEIFORM SIGN KI TIMES U
-121A3 ; [.46BD.0020.0002] # CUNEIFORM SIGN KI TIMES UD
-121A4 ; [.46BE.0020.0002] # CUNEIFORM SIGN KID
-121A5 ; [.46BF.0020.0002] # CUNEIFORM SIGN KIN
-121A6 ; [.46C0.0020.0002] # CUNEIFORM SIGN KISAL
-121A7 ; [.46C1.0020.0002] # CUNEIFORM SIGN KISH
-121A8 ; [.46C2.0020.0002] # CUNEIFORM SIGN KISIM5
-121A9 ; [.46C3.0020.0002] # CUNEIFORM SIGN KISIM5 OVER KISIM5
-121AA ; [.46C4.0020.0002] # CUNEIFORM SIGN KU
-121AB ; [.46C5.0020.0002] # CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2
-121AC ; [.46C6.0020.0002] # CUNEIFORM SIGN KU3
-121AD ; [.46C7.0020.0002] # CUNEIFORM SIGN KU4
-121AE ; [.46C8.0020.0002] # CUNEIFORM SIGN KU4 VARIANT FORM
-121AF ; [.46C9.0020.0002] # CUNEIFORM SIGN KU7
-121B0 ; [.46CA.0020.0002] # CUNEIFORM SIGN KUL
-121B1 ; [.46CB.0020.0002] # CUNEIFORM SIGN KUL GUNU
-121B2 ; [.46CC.0020.0002] # CUNEIFORM SIGN KUN
-121B3 ; [.46CD.0020.0002] # CUNEIFORM SIGN KUR
-121B4 ; [.46CE.0020.0002] # CUNEIFORM SIGN KUR OPPOSING KUR
-121B5 ; [.46CF.0020.0002] # CUNEIFORM SIGN KUSHU2
-121B6 ; [.46D0.0020.0002] # CUNEIFORM SIGN KWU318
-121B7 ; [.46D1.0020.0002] # CUNEIFORM SIGN LA
-121B8 ; [.46D2.0020.0002] # CUNEIFORM SIGN LAGAB
-121B9 ; [.46D3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A
-121BA ; [.46D4.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA
-121BB ; [.46D5.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS GAR
-121BC ; [.46D6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS LAL
-121BD ; [.46D7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AL
-121BE ; [.46D8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AN
-121BF ; [.46D9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU
-121C0 ; [.46DA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BAD
-121C1 ; [.46DB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BI
-121C2 ; [.46DC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES DAR
-121C3 ; [.46DD.0020.0002] # CUNEIFORM SIGN LAGAB TIMES EN
-121C4 ; [.46DE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GA
-121C5 ; [.46DF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GAR
-121C6 ; [.46E0.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD
-121C7 ; [.46E1.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD
-121C8 ; [.46E2.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HA
-121C9 ; [.46E3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HAL
-121CA ; [.46E4.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN
-121CB ; [.46E5.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IGI GUNU
-121CC ; [.46E6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM
-121CD ; [.46E7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS HA
-121CE ; [.46E8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS LU
-121CF ; [.46E9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KI
-121D0 ; [.46EA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KIN
-121D1 ; [.46EB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KU3
-121D2 ; [.46EC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL
-121D3 ; [.46ED.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A
-121D4 ; [.46EE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LAGAB
-121D5 ; [.46EF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LISH
-121D6 ; [.46F0.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LU
-121D7 ; [.46F1.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LUL
-121D8 ; [.46F2.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME
-121D9 ; [.46F3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME PLUS EN
-121DA ; [.46F4.0020.0002] # CUNEIFORM SIGN LAGAB TIMES MUSH
-121DB ; [.46F5.0020.0002] # CUNEIFORM SIGN LAGAB TIMES NE
-121DC ; [.46F6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM
-121DD ; [.46F7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2
-121DE ; [.46F8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU
-121DF ; [.46F9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2
-121E0 ; [.46FA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2
-121E1 ; [.46FB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SUM
-121E2 ; [.46FC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAG
-121E3 ; [.46FD.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAK4
-121E4 ; [.46FE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA
-121E5 ; [.46FF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U
-121E6 ; [.4700.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS A
-121E7 ; [.4701.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U
-121E8 ; [.4702.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH
-121E9 ; [.4703.0020.0002] # CUNEIFORM SIGN LAGAB TIMES UD
-121EA ; [.4704.0020.0002] # CUNEIFORM SIGN LAGAB TIMES USH
-121EB ; [.4705.0020.0002] # CUNEIFORM SIGN LAGAB SQUARED
-121EC ; [.4706.0020.0002] # CUNEIFORM SIGN LAGAR
-121ED ; [.4707.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE
-121EE ; [.4708.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM
-121EF ; [.4709.0020.0002] # CUNEIFORM SIGN LAGAR GUNU
-121F0 ; [.470A.0020.0002] # CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE
-121F1 ; [.470B.0020.0002] # CUNEIFORM SIGN LAHSHU
-121F2 ; [.470C.0020.0002] # CUNEIFORM SIGN LAL
-121F3 ; [.470D.0020.0002] # CUNEIFORM SIGN LAL TIMES LAL
-121F4 ; [.470E.0020.0002] # CUNEIFORM SIGN LAM
-121F5 ; [.470F.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR
-121F6 ; [.4710.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR PLUS RU
-121F7 ; [.4711.0020.0002] # CUNEIFORM SIGN LI
-121F8 ; [.4712.0020.0002] # CUNEIFORM SIGN LIL
-121F9 ; [.4713.0020.0002] # CUNEIFORM SIGN LIMMU2
-121FA ; [.4714.0020.0002] # CUNEIFORM SIGN LISH
-121FB ; [.4715.0020.0002] # CUNEIFORM SIGN LU
-121FC ; [.4716.0020.0002] # CUNEIFORM SIGN LU TIMES BAD
-121FD ; [.4717.0020.0002] # CUNEIFORM SIGN LU2
-121FE ; [.4718.0020.0002] # CUNEIFORM SIGN LU2 TIMES AL
-121FF ; [.4719.0020.0002] # CUNEIFORM SIGN LU2 TIMES BAD
-12200 ; [.471A.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2
-12201 ; [.471B.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 TENU
-12202 ; [.471C.0020.0002] # CUNEIFORM SIGN LU2 TIMES GAN2 TENU
-12203 ; [.471D.0020.0002] # CUNEIFORM SIGN LU2 TIMES HI TIMES BAD
-12204 ; [.471E.0020.0002] # CUNEIFORM SIGN LU2 TIMES IM
-12205 ; [.471F.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD2
-12206 ; [.4720.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3
-12207 ; [.4721.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH
-12208 ; [.4722.0020.0002] # CUNEIFORM SIGN LU2 TIMES KI
-12209 ; [.4723.0020.0002] # CUNEIFORM SIGN LU2 TIMES LA PLUS ASH
-1220A ; [.4724.0020.0002] # CUNEIFORM SIGN LU2 TIMES LAGAB
-1220B ; [.4725.0020.0002] # CUNEIFORM SIGN LU2 TIMES ME PLUS EN
-1220C ; [.4726.0020.0002] # CUNEIFORM SIGN LU2 TIMES NE
-1220D ; [.4727.0020.0002] # CUNEIFORM SIGN LU2 TIMES NU
-1220E ; [.4728.0020.0002] # CUNEIFORM SIGN LU2 TIMES SI PLUS ASH
-1220F ; [.4729.0020.0002] # CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU
-12210 ; [.472A.0020.0002] # CUNEIFORM SIGN LU2 TIMES TUG2
-12211 ; [.472B.0020.0002] # CUNEIFORM SIGN LU2 TENU
-12212 ; [.472C.0020.0002] # CUNEIFORM SIGN LU2 CROSSING LU2
-12213 ; [.472D.0020.0002] # CUNEIFORM SIGN LU2 OPPOSING LU2
-12214 ; [.472E.0020.0002] # CUNEIFORM SIGN LU2 SQUARED
-12215 ; [.472F.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG
-12216 ; [.4730.0020.0002] # CUNEIFORM SIGN LU3
-12217 ; [.4731.0020.0002] # CUNEIFORM SIGN LUGAL
-12218 ; [.4732.0020.0002] # CUNEIFORM SIGN LUGAL OVER LUGAL
-12219 ; [.4733.0020.0002] # CUNEIFORM SIGN LUGAL OPPOSING LUGAL
-1221A ; [.4734.0020.0002] # CUNEIFORM SIGN LUGAL SHESHIG
-1221B ; [.4735.0020.0002] # CUNEIFORM SIGN LUH
-1221C ; [.4736.0020.0002] # CUNEIFORM SIGN LUL
-1221D ; [.4737.0020.0002] # CUNEIFORM SIGN LUM
-1221E ; [.4738.0020.0002] # CUNEIFORM SIGN LUM OVER LUM
-1221F ; [.4739.0020.0002] # CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR
-12220 ; [.473A.0020.0002] # CUNEIFORM SIGN MA
-12221 ; [.473B.0020.0002] # CUNEIFORM SIGN MA TIMES TAK4
-12222 ; [.473C.0020.0002] # CUNEIFORM SIGN MA GUNU
-12223 ; [.473D.0020.0002] # CUNEIFORM SIGN MA2
-12224 ; [.473E.0020.0002] # CUNEIFORM SIGN MAH
-12225 ; [.473F.0020.0002] # CUNEIFORM SIGN MAR
-12226 ; [.4740.0020.0002] # CUNEIFORM SIGN MASH
-12227 ; [.4741.0020.0002] # CUNEIFORM SIGN MASH2
-12228 ; [.4742.0020.0002] # CUNEIFORM SIGN ME
-12229 ; [.4743.0020.0002] # CUNEIFORM SIGN MES
-1222A ; [.4744.0020.0002] # CUNEIFORM SIGN MI
-1222B ; [.4745.0020.0002] # CUNEIFORM SIGN MIN
-1222C ; [.4746.0020.0002] # CUNEIFORM SIGN MU
-1222D ; [.4747.0020.0002] # CUNEIFORM SIGN MU OVER MU
-1222E ; [.4748.0020.0002] # CUNEIFORM SIGN MUG
-1222F ; [.4749.0020.0002] # CUNEIFORM SIGN MUG GUNU
-12230 ; [.474A.0020.0002] # CUNEIFORM SIGN MUNSUB
-12231 ; [.474B.0020.0002] # CUNEIFORM SIGN MURGU2
-12232 ; [.474C.0020.0002] # CUNEIFORM SIGN MUSH
-12233 ; [.474D.0020.0002] # CUNEIFORM SIGN MUSH TIMES A
-12234 ; [.474E.0020.0002] # CUNEIFORM SIGN MUSH TIMES KUR
-12235 ; [.474F.0020.0002] # CUNEIFORM SIGN MUSH TIMES ZA
-12236 ; [.4750.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH
-12237 ; [.4751.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA
-12238 ; [.4752.0020.0002] # CUNEIFORM SIGN MUSH CROSSING MUSH
-12239 ; [.4753.0020.0002] # CUNEIFORM SIGN MUSH3
-1223A ; [.4754.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A
-1223B ; [.4755.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A PLUS DI
-1223C ; [.4756.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES DI
-1223D ; [.4757.0020.0002] # CUNEIFORM SIGN MUSH3 GUNU
-1223E ; [.4758.0020.0002] # CUNEIFORM SIGN NA
-1223F ; [.4759.0020.0002] # CUNEIFORM SIGN NA2
-12240 ; [.475A.0020.0002] # CUNEIFORM SIGN NAGA
-12241 ; [.475B.0020.0002] # CUNEIFORM SIGN NAGA INVERTED
-12242 ; [.475C.0020.0002] # CUNEIFORM SIGN NAGA TIMES SHU TENU
-12243 ; [.475D.0020.0002] # CUNEIFORM SIGN NAGA OPPOSING NAGA
-12244 ; [.475E.0020.0002] # CUNEIFORM SIGN NAGAR
-12245 ; [.475F.0020.0002] # CUNEIFORM SIGN NAM NUTILLU
-12246 ; [.4760.0020.0002] # CUNEIFORM SIGN NAM
-12247 ; [.4761.0020.0002] # CUNEIFORM SIGN NAM2
-12248 ; [.4762.0020.0002] # CUNEIFORM SIGN NE
-12249 ; [.4763.0020.0002] # CUNEIFORM SIGN NE TIMES A
-1224A ; [.4764.0020.0002] # CUNEIFORM SIGN NE TIMES UD
-1224B ; [.4765.0020.0002] # CUNEIFORM SIGN NE SHESHIG
-1224C ; [.4766.0020.0002] # CUNEIFORM SIGN NI
-1224D ; [.4767.0020.0002] # CUNEIFORM SIGN NI TIMES E
-1224E ; [.4768.0020.0002] # CUNEIFORM SIGN NI2
-1224F ; [.4769.0020.0002] # CUNEIFORM SIGN NIM
-12250 ; [.476A.0020.0002] # CUNEIFORM SIGN NIM TIMES GAN2 TENU
-12251 ; [.476B.0020.0002] # CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU
-12252 ; [.476C.0020.0002] # CUNEIFORM SIGN NINDA2
-12253 ; [.476D.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES AN
-12254 ; [.476E.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH
-12255 ; [.476F.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH
-12256 ; [.4770.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GUD
-12257 ; [.4771.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU
-12258 ; [.4772.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NE
-12259 ; [.4773.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NUN
-1225A ; [.4774.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE
-1225B ; [.4775.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN
-1225C ; [.4776.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH
-1225D ; [.4777.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH
-1225E ; [.4778.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH
-1225F ; [.4779.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES USH
-12260 ; [.477A.0020.0002] # CUNEIFORM SIGN NISAG
-12261 ; [.477B.0020.0002] # CUNEIFORM SIGN NU
-12262 ; [.477C.0020.0002] # CUNEIFORM SIGN NU11
-122D4 ; [.477D.0020.0002] # CUNEIFORM SIGN SHIR TENU
-122D5 ; [.477E.0020.0002] # CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR
-12263 ; [.477F.0020.0002] # CUNEIFORM SIGN NUN
-12264 ; [.4780.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES GAR
-12265 ; [.4781.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES MASH
-12266 ; [.4782.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL
-12267 ; [.4783.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL
-12268 ; [.4784.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES USH
-12269 ; [.4785.0020.0002] # CUNEIFORM SIGN NUN TENU
-1226A ; [.4786.0020.0002] # CUNEIFORM SIGN NUN OVER NUN
-1226B ; [.4787.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN
-1226C ; [.4788.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR
-1226D ; [.4789.0020.0002] # CUNEIFORM SIGN NUNUZ
-1226E ; [.478A.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB
-1226F ; [.478B.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES BI
-12270 ; [.478C.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES DUG
-12271 ; [.478D.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES GUD
-12272 ; [.478E.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU
-12273 ; [.478F.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3
-12274 ; [.4790.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES LA
-12275 ; [.4791.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES NE
-12276 ; [.4792.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3
-12277 ; [.4793.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES U2
-12278 ; [.4794.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI
-12279 ; [.4795.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U
-1227A ; [.4796.0020.0002] # CUNEIFORM SIGN PA
-1227B ; [.4797.0020.0002] # CUNEIFORM SIGN PAD
-1227C ; [.4798.0020.0002] # CUNEIFORM SIGN PAN
-1227D ; [.4799.0020.0002] # CUNEIFORM SIGN PAP
-1227E ; [.479A.0020.0002] # CUNEIFORM SIGN PESH2
-1227F ; [.479B.0020.0002] # CUNEIFORM SIGN PI
-12280 ; [.479C.0020.0002] # CUNEIFORM SIGN PI TIMES A
-12281 ; [.479D.0020.0002] # CUNEIFORM SIGN PI TIMES AB
-12282 ; [.479E.0020.0002] # CUNEIFORM SIGN PI TIMES BI
-12283 ; [.479F.0020.0002] # CUNEIFORM SIGN PI TIMES BU
-12284 ; [.47A0.0020.0002] # CUNEIFORM SIGN PI TIMES E
-12285 ; [.47A1.0020.0002] # CUNEIFORM SIGN PI TIMES I
-12286 ; [.47A2.0020.0002] # CUNEIFORM SIGN PI TIMES IB
-12287 ; [.47A3.0020.0002] # CUNEIFORM SIGN PI TIMES U
-12288 ; [.47A4.0020.0002] # CUNEIFORM SIGN PI TIMES U2
-12289 ; [.47A5.0020.0002] # CUNEIFORM SIGN PI CROSSING PI
-1228A ; [.47A6.0020.0002] # CUNEIFORM SIGN PIRIG
-1228B ; [.47A7.0020.0002] # CUNEIFORM SIGN PIRIG TIMES KAL
-1228C ; [.47A8.0020.0002] # CUNEIFORM SIGN PIRIG TIMES UD
-1228D ; [.47A9.0020.0002] # CUNEIFORM SIGN PIRIG TIMES ZA
-1228E ; [.47AA.0020.0002] # CUNEIFORM SIGN PIRIG OPPOSING PIRIG
-1228F ; [.47AB.0020.0002] # CUNEIFORM SIGN RA
-12290 ; [.47AC.0020.0002] # CUNEIFORM SIGN RAB
-12291 ; [.47AD.0020.0002] # CUNEIFORM SIGN RI
-12292 ; [.47AE.0020.0002] # CUNEIFORM SIGN RU
-12293 ; [.47AF.0020.0002] # CUNEIFORM SIGN SA
-12294 ; [.47B0.0020.0002] # CUNEIFORM SIGN SAG NUTILLU
-12295 ; [.47B1.0020.0002] # CUNEIFORM SIGN SAG
-12296 ; [.47B2.0020.0002] # CUNEIFORM SIGN SAG TIMES A
-12297 ; [.47B3.0020.0002] # CUNEIFORM SIGN SAG TIMES DU
-12298 ; [.47B4.0020.0002] # CUNEIFORM SIGN SAG TIMES DUB
-12299 ; [.47B5.0020.0002] # CUNEIFORM SIGN SAG TIMES HA
-1229A ; [.47B6.0020.0002] # CUNEIFORM SIGN SAG TIMES KAK
-1229B ; [.47B7.0020.0002] # CUNEIFORM SIGN SAG TIMES KUR
-1229C ; [.47B8.0020.0002] # CUNEIFORM SIGN SAG TIMES LUM
-1229D ; [.47B9.0020.0002] # CUNEIFORM SIGN SAG TIMES MI
-1229E ; [.47BA.0020.0002] # CUNEIFORM SIGN SAG TIMES NUN
-1229F ; [.47BB.0020.0002] # CUNEIFORM SIGN SAG TIMES SAL
-122A0 ; [.47BC.0020.0002] # CUNEIFORM SIGN SAG TIMES SHID
-122A1 ; [.47BD.0020.0002] # CUNEIFORM SIGN SAG TIMES TAB
-122A2 ; [.47BE.0020.0002] # CUNEIFORM SIGN SAG TIMES U2
-122A3 ; [.47BF.0020.0002] # CUNEIFORM SIGN SAG TIMES UB
-122A4 ; [.47C0.0020.0002] # CUNEIFORM SIGN SAG TIMES UM
-122A5 ; [.47C1.0020.0002] # CUNEIFORM SIGN SAG TIMES UR
-122A6 ; [.47C2.0020.0002] # CUNEIFORM SIGN SAG TIMES USH
-122A7 ; [.47C3.0020.0002] # CUNEIFORM SIGN SAG OVER SAG
-122A8 ; [.47C4.0020.0002] # CUNEIFORM SIGN SAG GUNU
-122A9 ; [.47C5.0020.0002] # CUNEIFORM SIGN SAL
-122AA ; [.47C6.0020.0002] # CUNEIFORM SIGN SAL LAGAB TIMES ASH2
-122AB ; [.47C7.0020.0002] # CUNEIFORM SIGN SANGA2
-122AC ; [.47C8.0020.0002] # CUNEIFORM SIGN SAR
-122AD ; [.47C9.0020.0002] # CUNEIFORM SIGN SHA
-122AE ; [.47CA.0020.0002] # CUNEIFORM SIGN SHA3
-122AF ; [.47CB.0020.0002] # CUNEIFORM SIGN SHA3 TIMES A
-122B0 ; [.47CC.0020.0002] # CUNEIFORM SIGN SHA3 TIMES BAD
-122B1 ; [.47CD.0020.0002] # CUNEIFORM SIGN SHA3 TIMES GISH
-122B2 ; [.47CE.0020.0002] # CUNEIFORM SIGN SHA3 TIMES NE
-122B3 ; [.47CF.0020.0002] # CUNEIFORM SIGN SHA3 TIMES SHU2
-122B4 ; [.47D0.0020.0002] # CUNEIFORM SIGN SHA3 TIMES TUR
-122B5 ; [.47D1.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U
-122B6 ; [.47D2.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U PLUS A
-122B7 ; [.47D3.0020.0002] # CUNEIFORM SIGN SHA6
-122B8 ; [.47D4.0020.0002] # CUNEIFORM SIGN SHAB6
-122B9 ; [.47D5.0020.0002] # CUNEIFORM SIGN SHAR2
-122BA ; [.47D6.0020.0002] # CUNEIFORM SIGN SHE
-122BB ; [.47D7.0020.0002] # CUNEIFORM SIGN SHE HU
-122BC ; [.47D8.0020.0002] # CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR
-122BD ; [.47D9.0020.0002] # CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR
-122BE ; [.47DA.0020.0002] # CUNEIFORM SIGN SHEG9
-122BF ; [.47DB.0020.0002] # CUNEIFORM SIGN SHEN
-122C0 ; [.47DC.0020.0002] # CUNEIFORM SIGN SHESH
-122C1 ; [.47DD.0020.0002] # CUNEIFORM SIGN SHESH2
-122C2 ; [.47DE.0020.0002] # CUNEIFORM SIGN SHESHLAM
-122C3 ; [.47DF.0020.0002] # CUNEIFORM SIGN SHID
-122C4 ; [.47E0.0020.0002] # CUNEIFORM SIGN SHID TIMES A
-122C5 ; [.47E1.0020.0002] # CUNEIFORM SIGN SHID TIMES IM
-122C6 ; [.47E2.0020.0002] # CUNEIFORM SIGN SHIM
-122C7 ; [.47E3.0020.0002] # CUNEIFORM SIGN SHIM TIMES A
-122C8 ; [.47E4.0020.0002] # CUNEIFORM SIGN SHIM TIMES BAL
-122C9 ; [.47E5.0020.0002] # CUNEIFORM SIGN SHIM TIMES BULUG
-122CA ; [.47E6.0020.0002] # CUNEIFORM SIGN SHIM TIMES DIN
-122CB ; [.47E7.0020.0002] # CUNEIFORM SIGN SHIM TIMES GAR
-122CC ; [.47E8.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI
-122CD ; [.47E9.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI GUNU
-122CE ; [.47EA.0020.0002] # CUNEIFORM SIGN SHIM TIMES KUSHU2
-122CF ; [.47EB.0020.0002] # CUNEIFORM SIGN SHIM TIMES LUL
-122D0 ; [.47EC.0020.0002] # CUNEIFORM SIGN SHIM TIMES MUG
-122D1 ; [.47ED.0020.0002] # CUNEIFORM SIGN SHIM TIMES SAL
-122D2 ; [.47EE.0020.0002] # CUNEIFORM SIGN SHINIG
-122D3 ; [.47EF.0020.0002] # CUNEIFORM SIGN SHIR
-122D6 ; [.47F0.0020.0002] # CUNEIFORM SIGN SHITA
-122D7 ; [.47F1.0020.0002] # CUNEIFORM SIGN SHU
-122D8 ; [.47F2.0020.0002] # CUNEIFORM SIGN SHU OVER INVERTED SHU
-122D9 ; [.47F3.0020.0002] # CUNEIFORM SIGN SHU2
-122DA ; [.47F4.0020.0002] # CUNEIFORM SIGN SHUBUR
-122DB ; [.47F5.0020.0002] # CUNEIFORM SIGN SI
-122DC ; [.47F6.0020.0002] # CUNEIFORM SIGN SI GUNU
-122DD ; [.47F7.0020.0002] # CUNEIFORM SIGN SIG
-122DE ; [.47F8.0020.0002] # CUNEIFORM SIGN SIG4
-122DF ; [.47F9.0020.0002] # CUNEIFORM SIGN SIG4 OVER SIG4 SHU2
-122E0 ; [.47FA.0020.0002] # CUNEIFORM SIGN SIK2
-122E1 ; [.47FB.0020.0002] # CUNEIFORM SIGN SILA3
-122E2 ; [.47FC.0020.0002] # CUNEIFORM SIGN SU
-122E3 ; [.47FD.0020.0002] # CUNEIFORM SIGN SU OVER SU
-122E4 ; [.47FE.0020.0002] # CUNEIFORM SIGN SUD
-122E5 ; [.47FF.0020.0002] # CUNEIFORM SIGN SUD2
-122E6 ; [.4800.0020.0002] # CUNEIFORM SIGN SUHUR
-122E7 ; [.4801.0020.0002] # CUNEIFORM SIGN SUM
-122E8 ; [.4802.0020.0002] # CUNEIFORM SIGN SUMASH
-122E9 ; [.4803.0020.0002] # CUNEIFORM SIGN SUR
-122EA ; [.4804.0020.0002] # CUNEIFORM SIGN SUR9
-122EB ; [.4805.0020.0002] # CUNEIFORM SIGN TA
-122EC ; [.4806.0020.0002] # CUNEIFORM SIGN TA ASTERISK
-122ED ; [.4807.0020.0002] # CUNEIFORM SIGN TA TIMES HI
-122EE ; [.4808.0020.0002] # CUNEIFORM SIGN TA TIMES MI
-122EF ; [.4809.0020.0002] # CUNEIFORM SIGN TA GUNU
-122F0 ; [.480A.0020.0002] # CUNEIFORM SIGN TAB
-122F1 ; [.480B.0020.0002] # CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH
-122F2 ; [.480C.0020.0002] # CUNEIFORM SIGN TAB SQUARED
-122F3 ; [.480D.0020.0002] # CUNEIFORM SIGN TAG
-122F4 ; [.480E.0020.0002] # CUNEIFORM SIGN TAG TIMES BI
-122F5 ; [.480F.0020.0002] # CUNEIFORM SIGN TAG TIMES GUD
-122F6 ; [.4810.0020.0002] # CUNEIFORM SIGN TAG TIMES SHE
-122F7 ; [.4811.0020.0002] # CUNEIFORM SIGN TAG TIMES SHU
-122F8 ; [.4812.0020.0002] # CUNEIFORM SIGN TAG TIMES TUG2
-122F9 ; [.4813.0020.0002] # CUNEIFORM SIGN TAG TIMES UD
-122FA ; [.4814.0020.0002] # CUNEIFORM SIGN TAK4
-122FB ; [.4815.0020.0002] # CUNEIFORM SIGN TAR
-122FC ; [.4816.0020.0002] # CUNEIFORM SIGN TE
-122FD ; [.4817.0020.0002] # CUNEIFORM SIGN TE GUNU
-122FE ; [.4818.0020.0002] # CUNEIFORM SIGN TI
-122FF ; [.4819.0020.0002] # CUNEIFORM SIGN TI TENU
-12300 ; [.481A.0020.0002] # CUNEIFORM SIGN TIL
-12301 ; [.481B.0020.0002] # CUNEIFORM SIGN TIR
-12302 ; [.481C.0020.0002] # CUNEIFORM SIGN TIR TIMES TAK4
-12303 ; [.481D.0020.0002] # CUNEIFORM SIGN TIR OVER TIR
-12304 ; [.481E.0020.0002] # CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR
-12305 ; [.481F.0020.0002] # CUNEIFORM SIGN TU
-12306 ; [.4820.0020.0002] # CUNEIFORM SIGN TUG2
-12307 ; [.4821.0020.0002] # CUNEIFORM SIGN TUK
-12308 ; [.4822.0020.0002] # CUNEIFORM SIGN TUM
-12309 ; [.4823.0020.0002] # CUNEIFORM SIGN TUR
-1230A ; [.4824.0020.0002] # CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA
-1230B ; [.4825.0020.0002] # CUNEIFORM SIGN U
-1230C ; [.4826.0020.0002] # CUNEIFORM SIGN U GUD
-1230D ; [.4827.0020.0002] # CUNEIFORM SIGN U U U
-1230E ; [.4828.0020.0002] # CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR
-1230F ; [.4829.0020.0002] # CUNEIFORM SIGN U OVER U SUR OVER SUR
-12310 ; [.482A.0020.0002] # CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED
-12311 ; [.482B.0020.0002] # CUNEIFORM SIGN U2
-12312 ; [.482C.0020.0002] # CUNEIFORM SIGN UB
-12313 ; [.482D.0020.0002] # CUNEIFORM SIGN UD
-12314 ; [.482E.0020.0002] # CUNEIFORM SIGN UD KUSHU2
-12315 ; [.482F.0020.0002] # CUNEIFORM SIGN UD TIMES BAD
-12316 ; [.4830.0020.0002] # CUNEIFORM SIGN UD TIMES MI
-12317 ; [.4831.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U
-12318 ; [.4832.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU
-12319 ; [.4833.0020.0002] # CUNEIFORM SIGN UD GUNU
-1231A ; [.4834.0020.0002] # CUNEIFORM SIGN UD SHESHIG
-1231B ; [.4835.0020.0002] # CUNEIFORM SIGN UD SHESHIG TIMES BAD
-1231C ; [.4836.0020.0002] # CUNEIFORM SIGN UDUG
-1231D ; [.4837.0020.0002] # CUNEIFORM SIGN UM
-1231E ; [.4838.0020.0002] # CUNEIFORM SIGN UM TIMES LAGAB
-1231F ; [.4839.0020.0002] # CUNEIFORM SIGN UM TIMES ME PLUS DA
-12320 ; [.483A.0020.0002] # CUNEIFORM SIGN UM TIMES SHA3
-12321 ; [.483B.0020.0002] # CUNEIFORM SIGN UM TIMES U
-12322 ; [.483C.0020.0002] # CUNEIFORM SIGN UMBIN
-12323 ; [.483D.0020.0002] # CUNEIFORM SIGN UMUM
-12324 ; [.483E.0020.0002] # CUNEIFORM SIGN UMUM TIMES KASKAL
-12325 ; [.483F.0020.0002] # CUNEIFORM SIGN UMUM TIMES PA
-12326 ; [.4840.0020.0002] # CUNEIFORM SIGN UN
-12327 ; [.4841.0020.0002] # CUNEIFORM SIGN UN GUNU
-12328 ; [.4842.0020.0002] # CUNEIFORM SIGN UR
-12329 ; [.4843.0020.0002] # CUNEIFORM SIGN UR CROSSING UR
-1232A ; [.4844.0020.0002] # CUNEIFORM SIGN UR SHESHIG
-1232B ; [.4845.0020.0002] # CUNEIFORM SIGN UR2
-1232C ; [.4846.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS HA
-1232D ; [.4847.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS NA
-1232E ; [.4848.0020.0002] # CUNEIFORM SIGN UR2 TIMES AL
-1232F ; [.4849.0020.0002] # CUNEIFORM SIGN UR2 TIMES HA
-12330 ; [.484A.0020.0002] # CUNEIFORM SIGN UR2 TIMES NUN
-12331 ; [.484B.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2
-12332 ; [.484C.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH
-12333 ; [.484D.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS BI
-12334 ; [.484E.0020.0002] # CUNEIFORM SIGN UR4
-12335 ; [.484F.0020.0002] # CUNEIFORM SIGN URI
-12336 ; [.4850.0020.0002] # CUNEIFORM SIGN URI3
-12337 ; [.4851.0020.0002] # CUNEIFORM SIGN URU
-12338 ; [.4852.0020.0002] # CUNEIFORM SIGN URU TIMES A
-12339 ; [.4853.0020.0002] # CUNEIFORM SIGN URU TIMES ASHGAB
-1233A ; [.4854.0020.0002] # CUNEIFORM SIGN URU TIMES BAR
-1233B ; [.4855.0020.0002] # CUNEIFORM SIGN URU TIMES DUN
-1233C ; [.4856.0020.0002] # CUNEIFORM SIGN URU TIMES GA
-1233D ; [.4857.0020.0002] # CUNEIFORM SIGN URU TIMES GAL
-1233E ; [.4858.0020.0002] # CUNEIFORM SIGN URU TIMES GAN2 TENU
-1233F ; [.4859.0020.0002] # CUNEIFORM SIGN URU TIMES GAR
-12340 ; [.485A.0020.0002] # CUNEIFORM SIGN URU TIMES GU
-12341 ; [.485B.0020.0002] # CUNEIFORM SIGN URU TIMES HA
-12342 ; [.485C.0020.0002] # CUNEIFORM SIGN URU TIMES IGI
-12343 ; [.485D.0020.0002] # CUNEIFORM SIGN URU TIMES IM
-12344 ; [.485E.0020.0002] # CUNEIFORM SIGN URU TIMES ISH
-12345 ; [.485F.0020.0002] # CUNEIFORM SIGN URU TIMES KI
-12346 ; [.4860.0020.0002] # CUNEIFORM SIGN URU TIMES LUM
-12347 ; [.4861.0020.0002] # CUNEIFORM SIGN URU TIMES MIN
-12348 ; [.4862.0020.0002] # CUNEIFORM SIGN URU TIMES PA
-12349 ; [.4863.0020.0002] # CUNEIFORM SIGN URU TIMES SHE
-1234A ; [.4864.0020.0002] # CUNEIFORM SIGN URU TIMES SIG4
-1234B ; [.4865.0020.0002] # CUNEIFORM SIGN URU TIMES TU
-1234C ; [.4866.0020.0002] # CUNEIFORM SIGN URU TIMES U PLUS GUD
-1234D ; [.4867.0020.0002] # CUNEIFORM SIGN URU TIMES UD
-1234E ; [.4868.0020.0002] # CUNEIFORM SIGN URU TIMES URUDA
-1234F ; [.4869.0020.0002] # CUNEIFORM SIGN URUDA
-12350 ; [.486A.0020.0002] # CUNEIFORM SIGN URUDA TIMES U
-12351 ; [.486B.0020.0002] # CUNEIFORM SIGN USH
-12352 ; [.486C.0020.0002] # CUNEIFORM SIGN USH TIMES A
-12353 ; [.486D.0020.0002] # CUNEIFORM SIGN USH TIMES KU
-12354 ; [.486E.0020.0002] # CUNEIFORM SIGN USH TIMES KUR
-12355 ; [.486F.0020.0002] # CUNEIFORM SIGN USH TIMES TAK4
-12356 ; [.4870.0020.0002] # CUNEIFORM SIGN USHX
-12357 ; [.4871.0020.0002] # CUNEIFORM SIGN USH2
-12358 ; [.4872.0020.0002] # CUNEIFORM SIGN USHUMX
-12359 ; [.4873.0020.0002] # CUNEIFORM SIGN UTUKI
-1235A ; [.4874.0020.0002] # CUNEIFORM SIGN UZ3
-1235B ; [.4875.0020.0002] # CUNEIFORM SIGN UZ3 TIMES KASKAL
-1235C ; [.4876.0020.0002] # CUNEIFORM SIGN UZU
-1235D ; [.4877.0020.0002] # CUNEIFORM SIGN ZA
-1235E ; [.4878.0020.0002] # CUNEIFORM SIGN ZA TENU
-1235F ; [.4879.0020.0002] # CUNEIFORM SIGN ZA SQUARED TIMES KUR
-12360 ; [.487A.0020.0002] # CUNEIFORM SIGN ZAG
-12361 ; [.487B.0020.0002] # CUNEIFORM SIGN ZAMX
-12362 ; [.487C.0020.0002] # CUNEIFORM SIGN ZE2
-12363 ; [.487D.0020.0002] # CUNEIFORM SIGN ZI
-12364 ; [.487E.0020.0002] # CUNEIFORM SIGN ZI OVER ZI
-12365 ; [.487F.0020.0002] # CUNEIFORM SIGN ZI3
-12366 ; [.4880.0020.0002] # CUNEIFORM SIGN ZIB
-12367 ; [.4881.0020.0002] # CUNEIFORM SIGN ZIB KABA TENU
-12368 ; [.4882.0020.0002] # CUNEIFORM SIGN ZIG
-12369 ; [.4883.0020.0002] # CUNEIFORM SIGN ZIZ2
-1236A ; [.4884.0020.0002] # CUNEIFORM SIGN ZU
-1236B ; [.4885.0020.0002] # CUNEIFORM SIGN ZU5
-1236C ; [.4886.0020.0002] # CUNEIFORM SIGN ZU5 TIMES A
-1236D ; [.4887.0020.0002] # CUNEIFORM SIGN ZUBUR
-1236E ; [.4888.0020.0002] # CUNEIFORM SIGN ZUM
-1236F ; [.4889.0020.0002] # CUNEIFORM SIGN KAP ELAMITE
-12370 ; [.488A.0020.0002] # CUNEIFORM SIGN AB TIMES NUN
-12371 ; [.488B.0020.0002] # CUNEIFORM SIGN AB2 TIMES A
-12372 ; [.488C.0020.0002] # CUNEIFORM SIGN AMAR TIMES KUG
-12373 ; [.488D.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH
-12374 ; [.488E.0020.0002] # CUNEIFORM SIGN DAG3
-12375 ; [.488F.0020.0002] # CUNEIFORM SIGN DISH PLUS SHU
-12376 ; [.4890.0020.0002] # CUNEIFORM SIGN DUB TIMES SHE
-12377 ; [.4891.0020.0002] # CUNEIFORM SIGN EZEN TIMES GUD
-12378 ; [.4892.0020.0002] # CUNEIFORM SIGN EZEN TIMES SHE
-12379 ; [.4893.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A
-1237A ; [.4894.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2
-1237B ; [.4895.0020.0002] # CUNEIFORM SIGN GE22
-1237C ; [.4896.0020.0002] # CUNEIFORM SIGN GIG
-1237D ; [.4897.0020.0002] # CUNEIFORM SIGN HUSH
-1237E ; [.4898.0020.0002] # CUNEIFORM SIGN KA TIMES ANSHE
-1237F ; [.4899.0020.0002] # CUNEIFORM SIGN KA TIMES ASH3
-12380 ; [.489A.0020.0002] # CUNEIFORM SIGN KA TIMES GISH
-12381 ; [.489B.0020.0002] # CUNEIFORM SIGN KA TIMES GUD
-12382 ; [.489C.0020.0002] # CUNEIFORM SIGN KA TIMES HI TIMES ASH2
-12383 ; [.489D.0020.0002] # CUNEIFORM SIGN KA TIMES LUM
-12384 ; [.489E.0020.0002] # CUNEIFORM SIGN KA TIMES PA
-12385 ; [.489F.0020.0002] # CUNEIFORM SIGN KA TIMES SHUL
-12386 ; [.48A0.0020.0002] # CUNEIFORM SIGN KA TIMES TU
-12387 ; [.48A1.0020.0002] # CUNEIFORM SIGN KA TIMES UR2
-12388 ; [.48A2.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GI
-12389 ; [.48A3.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG TIMES BAD
-1238A ; [.48A4.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL
-1238B ; [.48A5.0020.0002] # CUNEIFORM SIGN LU2 TIMES SHU
-1238C ; [.48A6.0020.0002] # CUNEIFORM SIGN MESH
-1238D ; [.48A7.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES ZA
-1238E ; [.48A8.0020.0002] # CUNEIFORM SIGN NA4
-1238F ; [.48A9.0020.0002] # CUNEIFORM SIGN NIN
-12390 ; [.48AA.0020.0002] # CUNEIFORM SIGN NIN9
-12391 ; [.48AB.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES BAL
-12392 ; [.48AC.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GI
-12393 ; [.48AD.0020.0002] # CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES
-12394 ; [.48AE.0020.0002] # CUNEIFORM SIGN PESH2 ASTERISK
-12395 ; [.48AF.0020.0002] # CUNEIFORM SIGN PIR2
-12396 ; [.48B0.0020.0002] # CUNEIFORM SIGN SAG TIMES IGI GUNU
-12397 ; [.48B1.0020.0002] # CUNEIFORM SIGN TI2
-12398 ; [.48B2.0020.0002] # CUNEIFORM SIGN UM TIMES ME
-13000 ; [.48B3.0020.0002] # EGYPTIAN HIEROGLYPH A001
-13001 ; [.48B4.0020.0002] # EGYPTIAN HIEROGLYPH A002
-13002 ; [.48B5.0020.0002] # EGYPTIAN HIEROGLYPH A003
-13003 ; [.48B6.0020.0002] # EGYPTIAN HIEROGLYPH A004
-13004 ; [.48B7.0020.0002] # EGYPTIAN HIEROGLYPH A005
-13005 ; [.48B8.0020.0002] # EGYPTIAN HIEROGLYPH A005A
-13006 ; [.48B9.0020.0002] # EGYPTIAN HIEROGLYPH A006
-13007 ; [.48BA.0020.0002] # EGYPTIAN HIEROGLYPH A006A
-13008 ; [.48BB.0020.0002] # EGYPTIAN HIEROGLYPH A006B
-13009 ; [.48BC.0020.0002] # EGYPTIAN HIEROGLYPH A007
-1300A ; [.48BD.0020.0002] # EGYPTIAN HIEROGLYPH A008
-1300B ; [.48BE.0020.0002] # EGYPTIAN HIEROGLYPH A009
-1300C ; [.48BF.0020.0002] # EGYPTIAN HIEROGLYPH A010
-1300D ; [.48C0.0020.0002] # EGYPTIAN HIEROGLYPH A011
-1300E ; [.48C1.0020.0002] # EGYPTIAN HIEROGLYPH A012
-1300F ; [.48C2.0020.0002] # EGYPTIAN HIEROGLYPH A013
-13010 ; [.48C3.0020.0002] # EGYPTIAN HIEROGLYPH A014
-13011 ; [.48C4.0020.0002] # EGYPTIAN HIEROGLYPH A014A
-13012 ; [.48C5.0020.0002] # EGYPTIAN HIEROGLYPH A015
-13013 ; [.48C6.0020.0002] # EGYPTIAN HIEROGLYPH A016
-13014 ; [.48C7.0020.0002] # EGYPTIAN HIEROGLYPH A017
-13015 ; [.48C8.0020.0002] # EGYPTIAN HIEROGLYPH A017A
-13016 ; [.48C9.0020.0002] # EGYPTIAN HIEROGLYPH A018
-13017 ; [.48CA.0020.0002] # EGYPTIAN HIEROGLYPH A019
-13018 ; [.48CB.0020.0002] # EGYPTIAN HIEROGLYPH A020
-13019 ; [.48CC.0020.0002] # EGYPTIAN HIEROGLYPH A021
-1301A ; [.48CD.0020.0002] # EGYPTIAN HIEROGLYPH A022
-1301B ; [.48CE.0020.0002] # EGYPTIAN HIEROGLYPH A023
-1301C ; [.48CF.0020.0002] # EGYPTIAN HIEROGLYPH A024
-1301D ; [.48D0.0020.0002] # EGYPTIAN HIEROGLYPH A025
-1301E ; [.48D1.0020.0002] # EGYPTIAN HIEROGLYPH A026
-1301F ; [.48D2.0020.0002] # EGYPTIAN HIEROGLYPH A027
-13020 ; [.48D3.0020.0002] # EGYPTIAN HIEROGLYPH A028
-13021 ; [.48D4.0020.0002] # EGYPTIAN HIEROGLYPH A029
-13022 ; [.48D5.0020.0002] # EGYPTIAN HIEROGLYPH A030
-13023 ; [.48D6.0020.0002] # EGYPTIAN HIEROGLYPH A031
-13024 ; [.48D7.0020.0002] # EGYPTIAN HIEROGLYPH A032
-13025 ; [.48D8.0020.0002] # EGYPTIAN HIEROGLYPH A032A
-13026 ; [.48D9.0020.0002] # EGYPTIAN HIEROGLYPH A033
-13027 ; [.48DA.0020.0002] # EGYPTIAN HIEROGLYPH A034
-13028 ; [.48DB.0020.0002] # EGYPTIAN HIEROGLYPH A035
-13029 ; [.48DC.0020.0002] # EGYPTIAN HIEROGLYPH A036
-1302A ; [.48DD.0020.0002] # EGYPTIAN HIEROGLYPH A037
-1302B ; [.48DE.0020.0002] # EGYPTIAN HIEROGLYPH A038
-1302C ; [.48DF.0020.0002] # EGYPTIAN HIEROGLYPH A039
-1302D ; [.48E0.0020.0002] # EGYPTIAN HIEROGLYPH A040
-1302E ; [.48E1.0020.0002] # EGYPTIAN HIEROGLYPH A040A
-1302F ; [.48E2.0020.0002] # EGYPTIAN HIEROGLYPH A041
-13030 ; [.48E3.0020.0002] # EGYPTIAN HIEROGLYPH A042
-13031 ; [.48E4.0020.0002] # EGYPTIAN HIEROGLYPH A042A
-13032 ; [.48E5.0020.0002] # EGYPTIAN HIEROGLYPH A043
-13033 ; [.48E6.0020.0002] # EGYPTIAN HIEROGLYPH A043A
-13034 ; [.48E7.0020.0002] # EGYPTIAN HIEROGLYPH A044
-13035 ; [.48E8.0020.0002] # EGYPTIAN HIEROGLYPH A045
-13036 ; [.48E9.0020.0002] # EGYPTIAN HIEROGLYPH A045A
-13037 ; [.48EA.0020.0002] # EGYPTIAN HIEROGLYPH A046
-13038 ; [.48EB.0020.0002] # EGYPTIAN HIEROGLYPH A047
-13039 ; [.48EC.0020.0002] # EGYPTIAN HIEROGLYPH A048
-1303A ; [.48ED.0020.0002] # EGYPTIAN HIEROGLYPH A049
-1303B ; [.48EE.0020.0002] # EGYPTIAN HIEROGLYPH A050
-1303C ; [.48EF.0020.0002] # EGYPTIAN HIEROGLYPH A051
-1303D ; [.48F0.0020.0002] # EGYPTIAN HIEROGLYPH A052
-1303E ; [.48F1.0020.0002] # EGYPTIAN HIEROGLYPH A053
-1303F ; [.48F2.0020.0002] # EGYPTIAN HIEROGLYPH A054
-13040 ; [.48F3.0020.0002] # EGYPTIAN HIEROGLYPH A055
-13041 ; [.48F4.0020.0002] # EGYPTIAN HIEROGLYPH A056
-13042 ; [.48F5.0020.0002] # EGYPTIAN HIEROGLYPH A057
-13043 ; [.48F6.0020.0002] # EGYPTIAN HIEROGLYPH A058
-13044 ; [.48F7.0020.0002] # EGYPTIAN HIEROGLYPH A059
-13045 ; [.48F8.0020.0002] # EGYPTIAN HIEROGLYPH A060
-13046 ; [.48F9.0020.0002] # EGYPTIAN HIEROGLYPH A061
-13047 ; [.48FA.0020.0002] # EGYPTIAN HIEROGLYPH A062
-13048 ; [.48FB.0020.0002] # EGYPTIAN HIEROGLYPH A063
-13049 ; [.48FC.0020.0002] # EGYPTIAN HIEROGLYPH A064
-1304A ; [.48FD.0020.0002] # EGYPTIAN HIEROGLYPH A065
-1304B ; [.48FE.0020.0002] # EGYPTIAN HIEROGLYPH A066
-1304C ; [.48FF.0020.0002] # EGYPTIAN HIEROGLYPH A067
-1304D ; [.4900.0020.0002] # EGYPTIAN HIEROGLYPH A068
-1304E ; [.4901.0020.0002] # EGYPTIAN HIEROGLYPH A069
-1304F ; [.4902.0020.0002] # EGYPTIAN HIEROGLYPH A070
-13050 ; [.4903.0020.0002] # EGYPTIAN HIEROGLYPH B001
-13051 ; [.4904.0020.0002] # EGYPTIAN HIEROGLYPH B002
-13052 ; [.4905.0020.0002] # EGYPTIAN HIEROGLYPH B003
-13053 ; [.4906.0020.0002] # EGYPTIAN HIEROGLYPH B004
-13054 ; [.4907.0020.0002] # EGYPTIAN HIEROGLYPH B005
-13055 ; [.4908.0020.0002] # EGYPTIAN HIEROGLYPH B005A
-13056 ; [.4909.0020.0002] # EGYPTIAN HIEROGLYPH B006
-13057 ; [.490A.0020.0002] # EGYPTIAN HIEROGLYPH B007
-13058 ; [.490B.0020.0002] # EGYPTIAN HIEROGLYPH B008
-13059 ; [.490C.0020.0002] # EGYPTIAN HIEROGLYPH B009
-1305A ; [.490D.0020.0002] # EGYPTIAN HIEROGLYPH C001
-1305B ; [.490E.0020.0002] # EGYPTIAN HIEROGLYPH C002
-1305C ; [.490F.0020.0002] # EGYPTIAN HIEROGLYPH C002A
-1305D ; [.4910.0020.0002] # EGYPTIAN HIEROGLYPH C002B
-1305E ; [.4911.0020.0002] # EGYPTIAN HIEROGLYPH C002C
-1305F ; [.4912.0020.0002] # EGYPTIAN HIEROGLYPH C003
-13060 ; [.4913.0020.0002] # EGYPTIAN HIEROGLYPH C004
-13061 ; [.4914.0020.0002] # EGYPTIAN HIEROGLYPH C005
-13062 ; [.4915.0020.0002] # EGYPTIAN HIEROGLYPH C006
-13063 ; [.4916.0020.0002] # EGYPTIAN HIEROGLYPH C007
-13064 ; [.4917.0020.0002] # EGYPTIAN HIEROGLYPH C008
-13065 ; [.4918.0020.0002] # EGYPTIAN HIEROGLYPH C009
-13066 ; [.4919.0020.0002] # EGYPTIAN HIEROGLYPH C010
-13067 ; [.491A.0020.0002] # EGYPTIAN HIEROGLYPH C010A
-13068 ; [.491B.0020.0002] # EGYPTIAN HIEROGLYPH C011
-13069 ; [.491C.0020.0002] # EGYPTIAN HIEROGLYPH C012
-1306A ; [.491D.0020.0002] # EGYPTIAN HIEROGLYPH C013
-1306B ; [.491E.0020.0002] # EGYPTIAN HIEROGLYPH C014
-1306C ; [.491F.0020.0002] # EGYPTIAN HIEROGLYPH C015
-1306D ; [.4920.0020.0002] # EGYPTIAN HIEROGLYPH C016
-1306E ; [.4921.0020.0002] # EGYPTIAN HIEROGLYPH C017
-1306F ; [.4922.0020.0002] # EGYPTIAN HIEROGLYPH C018
-13070 ; [.4923.0020.0002] # EGYPTIAN HIEROGLYPH C019
-13071 ; [.4924.0020.0002] # EGYPTIAN HIEROGLYPH C020
-13072 ; [.4925.0020.0002] # EGYPTIAN HIEROGLYPH C021
-13073 ; [.4926.0020.0002] # EGYPTIAN HIEROGLYPH C022
-13074 ; [.4927.0020.0002] # EGYPTIAN HIEROGLYPH C023
-13075 ; [.4928.0020.0002] # EGYPTIAN HIEROGLYPH C024
-13076 ; [.4929.0020.0002] # EGYPTIAN HIEROGLYPH D001
-13077 ; [.492A.0020.0002] # EGYPTIAN HIEROGLYPH D002
-13078 ; [.492B.0020.0002] # EGYPTIAN HIEROGLYPH D003
-13079 ; [.492C.0020.0002] # EGYPTIAN HIEROGLYPH D004
-1307A ; [.492D.0020.0002] # EGYPTIAN HIEROGLYPH D005
-1307B ; [.492E.0020.0002] # EGYPTIAN HIEROGLYPH D006
-1307C ; [.492F.0020.0002] # EGYPTIAN HIEROGLYPH D007
-1307D ; [.4930.0020.0002] # EGYPTIAN HIEROGLYPH D008
-1307E ; [.4931.0020.0002] # EGYPTIAN HIEROGLYPH D008A
-1307F ; [.4932.0020.0002] # EGYPTIAN HIEROGLYPH D009
-13080 ; [.4933.0020.0002] # EGYPTIAN HIEROGLYPH D010
-13081 ; [.4934.0020.0002] # EGYPTIAN HIEROGLYPH D011
-13082 ; [.4935.0020.0002] # EGYPTIAN HIEROGLYPH D012
-13083 ; [.4936.0020.0002] # EGYPTIAN HIEROGLYPH D013
-13084 ; [.4937.0020.0002] # EGYPTIAN HIEROGLYPH D014
-13085 ; [.4938.0020.0002] # EGYPTIAN HIEROGLYPH D015
-13086 ; [.4939.0020.0002] # EGYPTIAN HIEROGLYPH D016
-13087 ; [.493A.0020.0002] # EGYPTIAN HIEROGLYPH D017
-13088 ; [.493B.0020.0002] # EGYPTIAN HIEROGLYPH D018
-13089 ; [.493C.0020.0002] # EGYPTIAN HIEROGLYPH D019
-1308A ; [.493D.0020.0002] # EGYPTIAN HIEROGLYPH D020
-1308B ; [.493E.0020.0002] # EGYPTIAN HIEROGLYPH D021
-1308C ; [.493F.0020.0002] # EGYPTIAN HIEROGLYPH D022
-1308D ; [.4940.0020.0002] # EGYPTIAN HIEROGLYPH D023
-1308E ; [.4941.0020.0002] # EGYPTIAN HIEROGLYPH D024
-1308F ; [.4942.0020.0002] # EGYPTIAN HIEROGLYPH D025
-13090 ; [.4943.0020.0002] # EGYPTIAN HIEROGLYPH D026
-13091 ; [.4944.0020.0002] # EGYPTIAN HIEROGLYPH D027
-13092 ; [.4945.0020.0002] # EGYPTIAN HIEROGLYPH D027A
-13093 ; [.4946.0020.0002] # EGYPTIAN HIEROGLYPH D028
-13094 ; [.4947.0020.0002] # EGYPTIAN HIEROGLYPH D029
-13095 ; [.4948.0020.0002] # EGYPTIAN HIEROGLYPH D030
-13096 ; [.4949.0020.0002] # EGYPTIAN HIEROGLYPH D031
-13097 ; [.494A.0020.0002] # EGYPTIAN HIEROGLYPH D031A
-13098 ; [.494B.0020.0002] # EGYPTIAN HIEROGLYPH D032
-13099 ; [.494C.0020.0002] # EGYPTIAN HIEROGLYPH D033
-1309A ; [.494D.0020.0002] # EGYPTIAN HIEROGLYPH D034
-1309B ; [.494E.0020.0002] # EGYPTIAN HIEROGLYPH D034A
-1309C ; [.494F.0020.0002] # EGYPTIAN HIEROGLYPH D035
-1309D ; [.4950.0020.0002] # EGYPTIAN HIEROGLYPH D036
-1309E ; [.4951.0020.0002] # EGYPTIAN HIEROGLYPH D037
-1309F ; [.4952.0020.0002] # EGYPTIAN HIEROGLYPH D038
-130A0 ; [.4953.0020.0002] # EGYPTIAN HIEROGLYPH D039
-130A1 ; [.4954.0020.0002] # EGYPTIAN HIEROGLYPH D040
-130A2 ; [.4955.0020.0002] # EGYPTIAN HIEROGLYPH D041
-130A3 ; [.4956.0020.0002] # EGYPTIAN HIEROGLYPH D042
-130A4 ; [.4957.0020.0002] # EGYPTIAN HIEROGLYPH D043
-130A5 ; [.4958.0020.0002] # EGYPTIAN HIEROGLYPH D044
-130A6 ; [.4959.0020.0002] # EGYPTIAN HIEROGLYPH D045
-130A7 ; [.495A.0020.0002] # EGYPTIAN HIEROGLYPH D046
-130A8 ; [.495B.0020.0002] # EGYPTIAN HIEROGLYPH D046A
-130A9 ; [.495C.0020.0002] # EGYPTIAN HIEROGLYPH D047
-130AA ; [.495D.0020.0002] # EGYPTIAN HIEROGLYPH D048
-130AB ; [.495E.0020.0002] # EGYPTIAN HIEROGLYPH D048A
-130AC ; [.495F.0020.0002] # EGYPTIAN HIEROGLYPH D049
-130AD ; [.4960.0020.0002] # EGYPTIAN HIEROGLYPH D050
-130AE ; [.4961.0020.0002] # EGYPTIAN HIEROGLYPH D050A
-130AF ; [.4962.0020.0002] # EGYPTIAN HIEROGLYPH D050B
-130B0 ; [.4963.0020.0002] # EGYPTIAN HIEROGLYPH D050C
-130B1 ; [.4964.0020.0002] # EGYPTIAN HIEROGLYPH D050D
-130B2 ; [.4965.0020.0002] # EGYPTIAN HIEROGLYPH D050E
-130B3 ; [.4966.0020.0002] # EGYPTIAN HIEROGLYPH D050F
-130B4 ; [.4967.0020.0002] # EGYPTIAN HIEROGLYPH D050G
-130B5 ; [.4968.0020.0002] # EGYPTIAN HIEROGLYPH D050H
-130B6 ; [.4969.0020.0002] # EGYPTIAN HIEROGLYPH D050I
-130B7 ; [.496A.0020.0002] # EGYPTIAN HIEROGLYPH D051
-130B8 ; [.496B.0020.0002] # EGYPTIAN HIEROGLYPH D052
-130B9 ; [.496C.0020.0002] # EGYPTIAN HIEROGLYPH D052A
-130BA ; [.496D.0020.0002] # EGYPTIAN HIEROGLYPH D053
-130BB ; [.496E.0020.0002] # EGYPTIAN HIEROGLYPH D054
-130BC ; [.496F.0020.0002] # EGYPTIAN HIEROGLYPH D054A
-130BD ; [.4970.0020.0002] # EGYPTIAN HIEROGLYPH D055
-130BE ; [.4971.0020.0002] # EGYPTIAN HIEROGLYPH D056
-130BF ; [.4972.0020.0002] # EGYPTIAN HIEROGLYPH D057
-130C0 ; [.4973.0020.0002] # EGYPTIAN HIEROGLYPH D058
-130C1 ; [.4974.0020.0002] # EGYPTIAN HIEROGLYPH D059
-130C2 ; [.4975.0020.0002] # EGYPTIAN HIEROGLYPH D060
-130C3 ; [.4976.0020.0002] # EGYPTIAN HIEROGLYPH D061
-130C4 ; [.4977.0020.0002] # EGYPTIAN HIEROGLYPH D062
-130C5 ; [.4978.0020.0002] # EGYPTIAN HIEROGLYPH D063
-130C6 ; [.4979.0020.0002] # EGYPTIAN HIEROGLYPH D064
-130C7 ; [.497A.0020.0002] # EGYPTIAN HIEROGLYPH D065
-130C8 ; [.497B.0020.0002] # EGYPTIAN HIEROGLYPH D066
-130C9 ; [.497C.0020.0002] # EGYPTIAN HIEROGLYPH D067
-130CA ; [.497D.0020.0002] # EGYPTIAN HIEROGLYPH D067A
-130CB ; [.497E.0020.0002] # EGYPTIAN HIEROGLYPH D067B
-130CC ; [.497F.0020.0002] # EGYPTIAN HIEROGLYPH D067C
-130CD ; [.4980.0020.0002] # EGYPTIAN HIEROGLYPH D067D
-130CE ; [.4981.0020.0002] # EGYPTIAN HIEROGLYPH D067E
-130CF ; [.4982.0020.0002] # EGYPTIAN HIEROGLYPH D067F
-130D0 ; [.4983.0020.0002] # EGYPTIAN HIEROGLYPH D067G
-130D1 ; [.4984.0020.0002] # EGYPTIAN HIEROGLYPH D067H
-130D2 ; [.4985.0020.0002] # EGYPTIAN HIEROGLYPH E001
-130D3 ; [.4986.0020.0002] # EGYPTIAN HIEROGLYPH E002
-130D4 ; [.4987.0020.0002] # EGYPTIAN HIEROGLYPH E003
-130D5 ; [.4988.0020.0002] # EGYPTIAN HIEROGLYPH E004
-130D6 ; [.4989.0020.0002] # EGYPTIAN HIEROGLYPH E005
-130D7 ; [.498A.0020.0002] # EGYPTIAN HIEROGLYPH E006
-130D8 ; [.498B.0020.0002] # EGYPTIAN HIEROGLYPH E007
-130D9 ; [.498C.0020.0002] # EGYPTIAN HIEROGLYPH E008
-130DA ; [.498D.0020.0002] # EGYPTIAN HIEROGLYPH E008A
-130DB ; [.498E.0020.0002] # EGYPTIAN HIEROGLYPH E009
-130DC ; [.498F.0020.0002] # EGYPTIAN HIEROGLYPH E009A
-130DD ; [.4990.0020.0002] # EGYPTIAN HIEROGLYPH E010
-130DE ; [.4991.0020.0002] # EGYPTIAN HIEROGLYPH E011
-130DF ; [.4992.0020.0002] # EGYPTIAN HIEROGLYPH E012
-130E0 ; [.4993.0020.0002] # EGYPTIAN HIEROGLYPH E013
-130E1 ; [.4994.0020.0002] # EGYPTIAN HIEROGLYPH E014
-130E2 ; [.4995.0020.0002] # EGYPTIAN HIEROGLYPH E015
-130E3 ; [.4996.0020.0002] # EGYPTIAN HIEROGLYPH E016
-130E4 ; [.4997.0020.0002] # EGYPTIAN HIEROGLYPH E016A
-130E5 ; [.4998.0020.0002] # EGYPTIAN HIEROGLYPH E017
-130E6 ; [.4999.0020.0002] # EGYPTIAN HIEROGLYPH E017A
-130E7 ; [.499A.0020.0002] # EGYPTIAN HIEROGLYPH E018
-130E8 ; [.499B.0020.0002] # EGYPTIAN HIEROGLYPH E019
-130E9 ; [.499C.0020.0002] # EGYPTIAN HIEROGLYPH E020
-130EA ; [.499D.0020.0002] # EGYPTIAN HIEROGLYPH E020A
-130EB ; [.499E.0020.0002] # EGYPTIAN HIEROGLYPH E021
-130EC ; [.499F.0020.0002] # EGYPTIAN HIEROGLYPH E022
-130ED ; [.49A0.0020.0002] # EGYPTIAN HIEROGLYPH E023
-130EE ; [.49A1.0020.0002] # EGYPTIAN HIEROGLYPH E024
-130EF ; [.49A2.0020.0002] # EGYPTIAN HIEROGLYPH E025
-130F0 ; [.49A3.0020.0002] # EGYPTIAN HIEROGLYPH E026
-130F1 ; [.49A4.0020.0002] # EGYPTIAN HIEROGLYPH E027
-130F2 ; [.49A5.0020.0002] # EGYPTIAN HIEROGLYPH E028
-130F3 ; [.49A6.0020.0002] # EGYPTIAN HIEROGLYPH E028A
-130F4 ; [.49A7.0020.0002] # EGYPTIAN HIEROGLYPH E029
-130F5 ; [.49A8.0020.0002] # EGYPTIAN HIEROGLYPH E030
-130F6 ; [.49A9.0020.0002] # EGYPTIAN HIEROGLYPH E031
-130F7 ; [.49AA.0020.0002] # EGYPTIAN HIEROGLYPH E032
-130F8 ; [.49AB.0020.0002] # EGYPTIAN HIEROGLYPH E033
-130F9 ; [.49AC.0020.0002] # EGYPTIAN HIEROGLYPH E034
-130FA ; [.49AD.0020.0002] # EGYPTIAN HIEROGLYPH E034A
-130FB ; [.49AE.0020.0002] # EGYPTIAN HIEROGLYPH E036
-130FC ; [.49AF.0020.0002] # EGYPTIAN HIEROGLYPH E037
-130FD ; [.49B0.0020.0002] # EGYPTIAN HIEROGLYPH E038
-130FE ; [.49B1.0020.0002] # EGYPTIAN HIEROGLYPH F001
-130FF ; [.49B2.0020.0002] # EGYPTIAN HIEROGLYPH F001A
-13100 ; [.49B3.0020.0002] # EGYPTIAN HIEROGLYPH F002
-13101 ; [.49B4.0020.0002] # EGYPTIAN HIEROGLYPH F003
-13102 ; [.49B5.0020.0002] # EGYPTIAN HIEROGLYPH F004
-13103 ; [.49B6.0020.0002] # EGYPTIAN HIEROGLYPH F005
-13104 ; [.49B7.0020.0002] # EGYPTIAN HIEROGLYPH F006
-13105 ; [.49B8.0020.0002] # EGYPTIAN HIEROGLYPH F007
-13106 ; [.49B9.0020.0002] # EGYPTIAN HIEROGLYPH F008
-13107 ; [.49BA.0020.0002] # EGYPTIAN HIEROGLYPH F009
-13108 ; [.49BB.0020.0002] # EGYPTIAN HIEROGLYPH F010
-13109 ; [.49BC.0020.0002] # EGYPTIAN HIEROGLYPH F011
-1310A ; [.49BD.0020.0002] # EGYPTIAN HIEROGLYPH F012
-1310B ; [.49BE.0020.0002] # EGYPTIAN HIEROGLYPH F013
-1310C ; [.49BF.0020.0002] # EGYPTIAN HIEROGLYPH F013A
-1310D ; [.49C0.0020.0002] # EGYPTIAN HIEROGLYPH F014
-1310E ; [.49C1.0020.0002] # EGYPTIAN HIEROGLYPH F015
-1310F ; [.49C2.0020.0002] # EGYPTIAN HIEROGLYPH F016
-13110 ; [.49C3.0020.0002] # EGYPTIAN HIEROGLYPH F017
-13111 ; [.49C4.0020.0002] # EGYPTIAN HIEROGLYPH F018
-13112 ; [.49C5.0020.0002] # EGYPTIAN HIEROGLYPH F019
-13113 ; [.49C6.0020.0002] # EGYPTIAN HIEROGLYPH F020
-13114 ; [.49C7.0020.0002] # EGYPTIAN HIEROGLYPH F021
-13115 ; [.49C8.0020.0002] # EGYPTIAN HIEROGLYPH F021A
-13116 ; [.49C9.0020.0002] # EGYPTIAN HIEROGLYPH F022
-13117 ; [.49CA.0020.0002] # EGYPTIAN HIEROGLYPH F023
-13118 ; [.49CB.0020.0002] # EGYPTIAN HIEROGLYPH F024
-13119 ; [.49CC.0020.0002] # EGYPTIAN HIEROGLYPH F025
-1311A ; [.49CD.0020.0002] # EGYPTIAN HIEROGLYPH F026
-1311B ; [.49CE.0020.0002] # EGYPTIAN HIEROGLYPH F027
-1311C ; [.49CF.0020.0002] # EGYPTIAN HIEROGLYPH F028
-1311D ; [.49D0.0020.0002] # EGYPTIAN HIEROGLYPH F029
-1311E ; [.49D1.0020.0002] # EGYPTIAN HIEROGLYPH F030
-1311F ; [.49D2.0020.0002] # EGYPTIAN HIEROGLYPH F031
-13120 ; [.49D3.0020.0002] # EGYPTIAN HIEROGLYPH F031A
-13121 ; [.49D4.0020.0002] # EGYPTIAN HIEROGLYPH F032
-13122 ; [.49D5.0020.0002] # EGYPTIAN HIEROGLYPH F033
-13123 ; [.49D6.0020.0002] # EGYPTIAN HIEROGLYPH F034
-13124 ; [.49D7.0020.0002] # EGYPTIAN HIEROGLYPH F035
-13125 ; [.49D8.0020.0002] # EGYPTIAN HIEROGLYPH F036
-13126 ; [.49D9.0020.0002] # EGYPTIAN HIEROGLYPH F037
-13127 ; [.49DA.0020.0002] # EGYPTIAN HIEROGLYPH F037A
-13128 ; [.49DB.0020.0002] # EGYPTIAN HIEROGLYPH F038
-13129 ; [.49DC.0020.0002] # EGYPTIAN HIEROGLYPH F038A
-1312A ; [.49DD.0020.0002] # EGYPTIAN HIEROGLYPH F039
-1312B ; [.49DE.0020.0002] # EGYPTIAN HIEROGLYPH F040
-1312C ; [.49DF.0020.0002] # EGYPTIAN HIEROGLYPH F041
-1312D ; [.49E0.0020.0002] # EGYPTIAN HIEROGLYPH F042
-1312E ; [.49E1.0020.0002] # EGYPTIAN HIEROGLYPH F043
-1312F ; [.49E2.0020.0002] # EGYPTIAN HIEROGLYPH F044
-13130 ; [.49E3.0020.0002] # EGYPTIAN HIEROGLYPH F045
-13131 ; [.49E4.0020.0002] # EGYPTIAN HIEROGLYPH F045A
-13132 ; [.49E5.0020.0002] # EGYPTIAN HIEROGLYPH F046
-13133 ; [.49E6.0020.0002] # EGYPTIAN HIEROGLYPH F046A
-13134 ; [.49E7.0020.0002] # EGYPTIAN HIEROGLYPH F047
-13135 ; [.49E8.0020.0002] # EGYPTIAN HIEROGLYPH F047A
-13136 ; [.49E9.0020.0002] # EGYPTIAN HIEROGLYPH F048
-13137 ; [.49EA.0020.0002] # EGYPTIAN HIEROGLYPH F049
-13138 ; [.49EB.0020.0002] # EGYPTIAN HIEROGLYPH F050
-13139 ; [.49EC.0020.0002] # EGYPTIAN HIEROGLYPH F051
-1313A ; [.49ED.0020.0002] # EGYPTIAN HIEROGLYPH F051A
-1313B ; [.49EE.0020.0002] # EGYPTIAN HIEROGLYPH F051B
-1313C ; [.49EF.0020.0002] # EGYPTIAN HIEROGLYPH F051C
-1313D ; [.49F0.0020.0002] # EGYPTIAN HIEROGLYPH F052
-1313E ; [.49F1.0020.0002] # EGYPTIAN HIEROGLYPH F053
-1313F ; [.49F2.0020.0002] # EGYPTIAN HIEROGLYPH G001
-13140 ; [.49F3.0020.0002] # EGYPTIAN HIEROGLYPH G002
-13141 ; [.49F4.0020.0002] # EGYPTIAN HIEROGLYPH G003
-13142 ; [.49F5.0020.0002] # EGYPTIAN HIEROGLYPH G004
-13143 ; [.49F6.0020.0002] # EGYPTIAN HIEROGLYPH G005
-13144 ; [.49F7.0020.0002] # EGYPTIAN HIEROGLYPH G006
-13145 ; [.49F8.0020.0002] # EGYPTIAN HIEROGLYPH G006A
-13146 ; [.49F9.0020.0002] # EGYPTIAN HIEROGLYPH G007
-13147 ; [.49FA.0020.0002] # EGYPTIAN HIEROGLYPH G007A
-13148 ; [.49FB.0020.0002] # EGYPTIAN HIEROGLYPH G007B
-13149 ; [.49FC.0020.0002] # EGYPTIAN HIEROGLYPH G008
-1314A ; [.49FD.0020.0002] # EGYPTIAN HIEROGLYPH G009
-1314B ; [.49FE.0020.0002] # EGYPTIAN HIEROGLYPH G010
-1314C ; [.49FF.0020.0002] # EGYPTIAN HIEROGLYPH G011
-1314D ; [.4A00.0020.0002] # EGYPTIAN HIEROGLYPH G011A
-1314E ; [.4A01.0020.0002] # EGYPTIAN HIEROGLYPH G012
-1314F ; [.4A02.0020.0002] # EGYPTIAN HIEROGLYPH G013
-13150 ; [.4A03.0020.0002] # EGYPTIAN HIEROGLYPH G014
-13151 ; [.4A04.0020.0002] # EGYPTIAN HIEROGLYPH G015
-13152 ; [.4A05.0020.0002] # EGYPTIAN HIEROGLYPH G016
-13153 ; [.4A06.0020.0002] # EGYPTIAN HIEROGLYPH G017
-13154 ; [.4A07.0020.0002] # EGYPTIAN HIEROGLYPH G018
-13155 ; [.4A08.0020.0002] # EGYPTIAN HIEROGLYPH G019
-13156 ; [.4A09.0020.0002] # EGYPTIAN HIEROGLYPH G020
-13157 ; [.4A0A.0020.0002] # EGYPTIAN HIEROGLYPH G020A
-13158 ; [.4A0B.0020.0002] # EGYPTIAN HIEROGLYPH G021
-13159 ; [.4A0C.0020.0002] # EGYPTIAN HIEROGLYPH G022
-1315A ; [.4A0D.0020.0002] # EGYPTIAN HIEROGLYPH G023
-1315B ; [.4A0E.0020.0002] # EGYPTIAN HIEROGLYPH G024
-1315C ; [.4A0F.0020.0002] # EGYPTIAN HIEROGLYPH G025
-1315D ; [.4A10.0020.0002] # EGYPTIAN HIEROGLYPH G026
-1315E ; [.4A11.0020.0002] # EGYPTIAN HIEROGLYPH G026A
-1315F ; [.4A12.0020.0002] # EGYPTIAN HIEROGLYPH G027
-13160 ; [.4A13.0020.0002] # EGYPTIAN HIEROGLYPH G028
-13161 ; [.4A14.0020.0002] # EGYPTIAN HIEROGLYPH G029
-13162 ; [.4A15.0020.0002] # EGYPTIAN HIEROGLYPH G030
-13163 ; [.4A16.0020.0002] # EGYPTIAN HIEROGLYPH G031
-13164 ; [.4A17.0020.0002] # EGYPTIAN HIEROGLYPH G032
-13165 ; [.4A18.0020.0002] # EGYPTIAN HIEROGLYPH G033
-13166 ; [.4A19.0020.0002] # EGYPTIAN HIEROGLYPH G034
-13167 ; [.4A1A.0020.0002] # EGYPTIAN HIEROGLYPH G035
-13168 ; [.4A1B.0020.0002] # EGYPTIAN HIEROGLYPH G036
-13169 ; [.4A1C.0020.0002] # EGYPTIAN HIEROGLYPH G036A
-1316A ; [.4A1D.0020.0002] # EGYPTIAN HIEROGLYPH G037
-1316B ; [.4A1E.0020.0002] # EGYPTIAN HIEROGLYPH G037A
-1316C ; [.4A1F.0020.0002] # EGYPTIAN HIEROGLYPH G038
-1316D ; [.4A20.0020.0002] # EGYPTIAN HIEROGLYPH G039
-1316E ; [.4A21.0020.0002] # EGYPTIAN HIEROGLYPH G040
-1316F ; [.4A22.0020.0002] # EGYPTIAN HIEROGLYPH G041
-13170 ; [.4A23.0020.0002] # EGYPTIAN HIEROGLYPH G042
-13171 ; [.4A24.0020.0002] # EGYPTIAN HIEROGLYPH G043
-13172 ; [.4A25.0020.0002] # EGYPTIAN HIEROGLYPH G043A
-13173 ; [.4A26.0020.0002] # EGYPTIAN HIEROGLYPH G044
-13174 ; [.4A27.0020.0002] # EGYPTIAN HIEROGLYPH G045
-13175 ; [.4A28.0020.0002] # EGYPTIAN HIEROGLYPH G045A
-13176 ; [.4A29.0020.0002] # EGYPTIAN HIEROGLYPH G046
-13177 ; [.4A2A.0020.0002] # EGYPTIAN HIEROGLYPH G047
-13178 ; [.4A2B.0020.0002] # EGYPTIAN HIEROGLYPH G048
-13179 ; [.4A2C.0020.0002] # EGYPTIAN HIEROGLYPH G049
-1317A ; [.4A2D.0020.0002] # EGYPTIAN HIEROGLYPH G050
-1317B ; [.4A2E.0020.0002] # EGYPTIAN HIEROGLYPH G051
-1317C ; [.4A2F.0020.0002] # EGYPTIAN HIEROGLYPH G052
-1317D ; [.4A30.0020.0002] # EGYPTIAN HIEROGLYPH G053
-1317E ; [.4A31.0020.0002] # EGYPTIAN HIEROGLYPH G054
-1317F ; [.4A32.0020.0002] # EGYPTIAN HIEROGLYPH H001
-13180 ; [.4A33.0020.0002] # EGYPTIAN HIEROGLYPH H002
-13181 ; [.4A34.0020.0002] # EGYPTIAN HIEROGLYPH H003
-13182 ; [.4A35.0020.0002] # EGYPTIAN HIEROGLYPH H004
-13183 ; [.4A36.0020.0002] # EGYPTIAN HIEROGLYPH H005
-13184 ; [.4A37.0020.0002] # EGYPTIAN HIEROGLYPH H006
-13185 ; [.4A38.0020.0002] # EGYPTIAN HIEROGLYPH H006A
-13186 ; [.4A39.0020.0002] # EGYPTIAN HIEROGLYPH H007
-13187 ; [.4A3A.0020.0002] # EGYPTIAN HIEROGLYPH H008
-13188 ; [.4A3B.0020.0002] # EGYPTIAN HIEROGLYPH I001
-13189 ; [.4A3C.0020.0002] # EGYPTIAN HIEROGLYPH I002
-1318A ; [.4A3D.0020.0002] # EGYPTIAN HIEROGLYPH I003
-1318B ; [.4A3E.0020.0002] # EGYPTIAN HIEROGLYPH I004
-1318C ; [.4A3F.0020.0002] # EGYPTIAN HIEROGLYPH I005
-1318D ; [.4A40.0020.0002] # EGYPTIAN HIEROGLYPH I005A
-1318E ; [.4A41.0020.0002] # EGYPTIAN HIEROGLYPH I006
-1318F ; [.4A42.0020.0002] # EGYPTIAN HIEROGLYPH I007
-13190 ; [.4A43.0020.0002] # EGYPTIAN HIEROGLYPH I008
-13191 ; [.4A44.0020.0002] # EGYPTIAN HIEROGLYPH I009
-13192 ; [.4A45.0020.0002] # EGYPTIAN HIEROGLYPH I009A
-13193 ; [.4A46.0020.0002] # EGYPTIAN HIEROGLYPH I010
-13194 ; [.4A47.0020.0002] # EGYPTIAN HIEROGLYPH I010A
-13195 ; [.4A48.0020.0002] # EGYPTIAN HIEROGLYPH I011
-13196 ; [.4A49.0020.0002] # EGYPTIAN HIEROGLYPH I011A
-13197 ; [.4A4A.0020.0002] # EGYPTIAN HIEROGLYPH I012
-13198 ; [.4A4B.0020.0002] # EGYPTIAN HIEROGLYPH I013
-13199 ; [.4A4C.0020.0002] # EGYPTIAN HIEROGLYPH I014
-1319A ; [.4A4D.0020.0002] # EGYPTIAN HIEROGLYPH I015
-1319B ; [.4A4E.0020.0002] # EGYPTIAN HIEROGLYPH K001
-1319C ; [.4A4F.0020.0002] # EGYPTIAN HIEROGLYPH K002
-1319D ; [.4A50.0020.0002] # EGYPTIAN HIEROGLYPH K003
-1319E ; [.4A51.0020.0002] # EGYPTIAN HIEROGLYPH K004
-1319F ; [.4A52.0020.0002] # EGYPTIAN HIEROGLYPH K005
-131A0 ; [.4A53.0020.0002] # EGYPTIAN HIEROGLYPH K006
-131A1 ; [.4A54.0020.0002] # EGYPTIAN HIEROGLYPH K007
-131A2 ; [.4A55.0020.0002] # EGYPTIAN HIEROGLYPH K008
-131A3 ; [.4A56.0020.0002] # EGYPTIAN HIEROGLYPH L001
-131A4 ; [.4A57.0020.0002] # EGYPTIAN HIEROGLYPH L002
-131A5 ; [.4A58.0020.0002] # EGYPTIAN HIEROGLYPH L002A
-131A6 ; [.4A59.0020.0002] # EGYPTIAN HIEROGLYPH L003
-131A7 ; [.4A5A.0020.0002] # EGYPTIAN HIEROGLYPH L004
-131A8 ; [.4A5B.0020.0002] # EGYPTIAN HIEROGLYPH L005
-131A9 ; [.4A5C.0020.0002] # EGYPTIAN HIEROGLYPH L006
-131AA ; [.4A5D.0020.0002] # EGYPTIAN HIEROGLYPH L006A
-131AB ; [.4A5E.0020.0002] # EGYPTIAN HIEROGLYPH L007
-131AC ; [.4A5F.0020.0002] # EGYPTIAN HIEROGLYPH L008
-131AD ; [.4A60.0020.0002] # EGYPTIAN HIEROGLYPH M001
-131AE ; [.4A61.0020.0002] # EGYPTIAN HIEROGLYPH M001A
-131AF ; [.4A62.0020.0002] # EGYPTIAN HIEROGLYPH M001B
-131B0 ; [.4A63.0020.0002] # EGYPTIAN HIEROGLYPH M002
-131B1 ; [.4A64.0020.0002] # EGYPTIAN HIEROGLYPH M003
-131B2 ; [.4A65.0020.0002] # EGYPTIAN HIEROGLYPH M003A
-131B3 ; [.4A66.0020.0002] # EGYPTIAN HIEROGLYPH M004
-131B4 ; [.4A67.0020.0002] # EGYPTIAN HIEROGLYPH M005
-131B5 ; [.4A68.0020.0002] # EGYPTIAN HIEROGLYPH M006
-131B6 ; [.4A69.0020.0002] # EGYPTIAN HIEROGLYPH M007
-131B7 ; [.4A6A.0020.0002] # EGYPTIAN HIEROGLYPH M008
-131B8 ; [.4A6B.0020.0002] # EGYPTIAN HIEROGLYPH M009
-131B9 ; [.4A6C.0020.0002] # EGYPTIAN HIEROGLYPH M010
-131BA ; [.4A6D.0020.0002] # EGYPTIAN HIEROGLYPH M010A
-131BB ; [.4A6E.0020.0002] # EGYPTIAN HIEROGLYPH M011
-131BC ; [.4A6F.0020.0002] # EGYPTIAN HIEROGLYPH M012
-131BD ; [.4A70.0020.0002] # EGYPTIAN HIEROGLYPH M012A
-131BE ; [.4A71.0020.0002] # EGYPTIAN HIEROGLYPH M012B
-131BF ; [.4A72.0020.0002] # EGYPTIAN HIEROGLYPH M012C
-131C0 ; [.4A73.0020.0002] # EGYPTIAN HIEROGLYPH M012D
-131C1 ; [.4A74.0020.0002] # EGYPTIAN HIEROGLYPH M012E
-131C2 ; [.4A75.0020.0002] # EGYPTIAN HIEROGLYPH M012F
-131C3 ; [.4A76.0020.0002] # EGYPTIAN HIEROGLYPH M012G
-131C4 ; [.4A77.0020.0002] # EGYPTIAN HIEROGLYPH M012H
-131C5 ; [.4A78.0020.0002] # EGYPTIAN HIEROGLYPH M013
-131C6 ; [.4A79.0020.0002] # EGYPTIAN HIEROGLYPH M014
-131C7 ; [.4A7A.0020.0002] # EGYPTIAN HIEROGLYPH M015
-131C8 ; [.4A7B.0020.0002] # EGYPTIAN HIEROGLYPH M015A
-131C9 ; [.4A7C.0020.0002] # EGYPTIAN HIEROGLYPH M016
-131CA ; [.4A7D.0020.0002] # EGYPTIAN HIEROGLYPH M016A
-131CB ; [.4A7E.0020.0002] # EGYPTIAN HIEROGLYPH M017
-131CC ; [.4A7F.0020.0002] # EGYPTIAN HIEROGLYPH M017A
-131CD ; [.4A80.0020.0002] # EGYPTIAN HIEROGLYPH M018
-131CE ; [.4A81.0020.0002] # EGYPTIAN HIEROGLYPH M019
-131CF ; [.4A82.0020.0002] # EGYPTIAN HIEROGLYPH M020
-131D0 ; [.4A83.0020.0002] # EGYPTIAN HIEROGLYPH M021
-131D1 ; [.4A84.0020.0002] # EGYPTIAN HIEROGLYPH M022
-131D2 ; [.4A85.0020.0002] # EGYPTIAN HIEROGLYPH M022A
-131D3 ; [.4A86.0020.0002] # EGYPTIAN HIEROGLYPH M023
-131D4 ; [.4A87.0020.0002] # EGYPTIAN HIEROGLYPH M024
-131D5 ; [.4A88.0020.0002] # EGYPTIAN HIEROGLYPH M024A
-131D6 ; [.4A89.0020.0002] # EGYPTIAN HIEROGLYPH M025
-131D7 ; [.4A8A.0020.0002] # EGYPTIAN HIEROGLYPH M026
-131D8 ; [.4A8B.0020.0002] # EGYPTIAN HIEROGLYPH M027
-131D9 ; [.4A8C.0020.0002] # EGYPTIAN HIEROGLYPH M028
-131DA ; [.4A8D.0020.0002] # EGYPTIAN HIEROGLYPH M028A
-131DB ; [.4A8E.0020.0002] # EGYPTIAN HIEROGLYPH M029
-131DC ; [.4A8F.0020.0002] # EGYPTIAN HIEROGLYPH M030
-131DD ; [.4A90.0020.0002] # EGYPTIAN HIEROGLYPH M031
-131DE ; [.4A91.0020.0002] # EGYPTIAN HIEROGLYPH M031A
-131DF ; [.4A92.0020.0002] # EGYPTIAN HIEROGLYPH M032
-131E0 ; [.4A93.0020.0002] # EGYPTIAN HIEROGLYPH M033
-131E1 ; [.4A94.0020.0002] # EGYPTIAN HIEROGLYPH M033A
-131E2 ; [.4A95.0020.0002] # EGYPTIAN HIEROGLYPH M033B
-131E3 ; [.4A96.0020.0002] # EGYPTIAN HIEROGLYPH M034
-131E4 ; [.4A97.0020.0002] # EGYPTIAN HIEROGLYPH M035
-131E5 ; [.4A98.0020.0002] # EGYPTIAN HIEROGLYPH M036
-131E6 ; [.4A99.0020.0002] # EGYPTIAN HIEROGLYPH M037
-131E7 ; [.4A9A.0020.0002] # EGYPTIAN HIEROGLYPH M038
-131E8 ; [.4A9B.0020.0002] # EGYPTIAN HIEROGLYPH M039
-131E9 ; [.4A9C.0020.0002] # EGYPTIAN HIEROGLYPH M040
-131EA ; [.4A9D.0020.0002] # EGYPTIAN HIEROGLYPH M040A
-131EB ; [.4A9E.0020.0002] # EGYPTIAN HIEROGLYPH M041
-131EC ; [.4A9F.0020.0002] # EGYPTIAN HIEROGLYPH M042
-131ED ; [.4AA0.0020.0002] # EGYPTIAN HIEROGLYPH M043
-131EE ; [.4AA1.0020.0002] # EGYPTIAN HIEROGLYPH M044
-131EF ; [.4AA2.0020.0002] # EGYPTIAN HIEROGLYPH N001
-131F0 ; [.4AA3.0020.0002] # EGYPTIAN HIEROGLYPH N002
-131F1 ; [.4AA4.0020.0002] # EGYPTIAN HIEROGLYPH N003
-131F2 ; [.4AA5.0020.0002] # EGYPTIAN HIEROGLYPH N004
-131F3 ; [.4AA6.0020.0002] # EGYPTIAN HIEROGLYPH N005
-131F4 ; [.4AA7.0020.0002] # EGYPTIAN HIEROGLYPH N006
-131F5 ; [.4AA8.0020.0002] # EGYPTIAN HIEROGLYPH N007
-131F6 ; [.4AA9.0020.0002] # EGYPTIAN HIEROGLYPH N008
-131F7 ; [.4AAA.0020.0002] # EGYPTIAN HIEROGLYPH N009
-131F8 ; [.4AAB.0020.0002] # EGYPTIAN HIEROGLYPH N010
-131F9 ; [.4AAC.0020.0002] # EGYPTIAN HIEROGLYPH N011
-131FA ; [.4AAD.0020.0002] # EGYPTIAN HIEROGLYPH N012
-131FB ; [.4AAE.0020.0002] # EGYPTIAN HIEROGLYPH N013
-131FC ; [.4AAF.0020.0002] # EGYPTIAN HIEROGLYPH N014
-131FD ; [.4AB0.0020.0002] # EGYPTIAN HIEROGLYPH N015
-131FE ; [.4AB1.0020.0002] # EGYPTIAN HIEROGLYPH N016
-131FF ; [.4AB2.0020.0002] # EGYPTIAN HIEROGLYPH N017
-13200 ; [.4AB3.0020.0002] # EGYPTIAN HIEROGLYPH N018
-13201 ; [.4AB4.0020.0002] # EGYPTIAN HIEROGLYPH N018A
-13202 ; [.4AB5.0020.0002] # EGYPTIAN HIEROGLYPH N018B
-13203 ; [.4AB6.0020.0002] # EGYPTIAN HIEROGLYPH N019
-13204 ; [.4AB7.0020.0002] # EGYPTIAN HIEROGLYPH N020
-13205 ; [.4AB8.0020.0002] # EGYPTIAN HIEROGLYPH N021
-13206 ; [.4AB9.0020.0002] # EGYPTIAN HIEROGLYPH N022
-13207 ; [.4ABA.0020.0002] # EGYPTIAN HIEROGLYPH N023
-13208 ; [.4ABB.0020.0002] # EGYPTIAN HIEROGLYPH N024
-13209 ; [.4ABC.0020.0002] # EGYPTIAN HIEROGLYPH N025
-1320A ; [.4ABD.0020.0002] # EGYPTIAN HIEROGLYPH N025A
-1320B ; [.4ABE.0020.0002] # EGYPTIAN HIEROGLYPH N026
-1320C ; [.4ABF.0020.0002] # EGYPTIAN HIEROGLYPH N027
-1320D ; [.4AC0.0020.0002] # EGYPTIAN HIEROGLYPH N028
-1320E ; [.4AC1.0020.0002] # EGYPTIAN HIEROGLYPH N029
-1320F ; [.4AC2.0020.0002] # EGYPTIAN HIEROGLYPH N030
-13210 ; [.4AC3.0020.0002] # EGYPTIAN HIEROGLYPH N031
-13211 ; [.4AC4.0020.0002] # EGYPTIAN HIEROGLYPH N032
-13212 ; [.4AC5.0020.0002] # EGYPTIAN HIEROGLYPH N033
-13213 ; [.4AC6.0020.0002] # EGYPTIAN HIEROGLYPH N033A
-13214 ; [.4AC7.0020.0002] # EGYPTIAN HIEROGLYPH N034
-13215 ; [.4AC8.0020.0002] # EGYPTIAN HIEROGLYPH N034A
-13216 ; [.4AC9.0020.0002] # EGYPTIAN HIEROGLYPH N035
-13217 ; [.4ACA.0020.0002] # EGYPTIAN HIEROGLYPH N035A
-13218 ; [.4ACB.0020.0002] # EGYPTIAN HIEROGLYPH N036
-13219 ; [.4ACC.0020.0002] # EGYPTIAN HIEROGLYPH N037
-1321A ; [.4ACD.0020.0002] # EGYPTIAN HIEROGLYPH N037A
-1321B ; [.4ACE.0020.0002] # EGYPTIAN HIEROGLYPH N038
-1321C ; [.4ACF.0020.0002] # EGYPTIAN HIEROGLYPH N039
-1321D ; [.4AD0.0020.0002] # EGYPTIAN HIEROGLYPH N040
-1321E ; [.4AD1.0020.0002] # EGYPTIAN HIEROGLYPH N041
-1321F ; [.4AD2.0020.0002] # EGYPTIAN HIEROGLYPH N042
-13220 ; [.4AD3.0020.0002] # EGYPTIAN HIEROGLYPH NL001
-13221 ; [.4AD4.0020.0002] # EGYPTIAN HIEROGLYPH NL002
-13222 ; [.4AD5.0020.0002] # EGYPTIAN HIEROGLYPH NL003
-13223 ; [.4AD6.0020.0002] # EGYPTIAN HIEROGLYPH NL004
-13224 ; [.4AD7.0020.0002] # EGYPTIAN HIEROGLYPH NL005
-13225 ; [.4AD8.0020.0002] # EGYPTIAN HIEROGLYPH NL005A
-13226 ; [.4AD9.0020.0002] # EGYPTIAN HIEROGLYPH NL006
-13227 ; [.4ADA.0020.0002] # EGYPTIAN HIEROGLYPH NL007
-13228 ; [.4ADB.0020.0002] # EGYPTIAN HIEROGLYPH NL008
-13229 ; [.4ADC.0020.0002] # EGYPTIAN HIEROGLYPH NL009
-1322A ; [.4ADD.0020.0002] # EGYPTIAN HIEROGLYPH NL010
-1322B ; [.4ADE.0020.0002] # EGYPTIAN HIEROGLYPH NL011
-1322C ; [.4ADF.0020.0002] # EGYPTIAN HIEROGLYPH NL012
-1322D ; [.4AE0.0020.0002] # EGYPTIAN HIEROGLYPH NL013
-1322E ; [.4AE1.0020.0002] # EGYPTIAN HIEROGLYPH NL014
-1322F ; [.4AE2.0020.0002] # EGYPTIAN HIEROGLYPH NL015
-13230 ; [.4AE3.0020.0002] # EGYPTIAN HIEROGLYPH NL016
-13231 ; [.4AE4.0020.0002] # EGYPTIAN HIEROGLYPH NL017
-13232 ; [.4AE5.0020.0002] # EGYPTIAN HIEROGLYPH NL017A
-13233 ; [.4AE6.0020.0002] # EGYPTIAN HIEROGLYPH NL018
-13234 ; [.4AE7.0020.0002] # EGYPTIAN HIEROGLYPH NL019
-13235 ; [.4AE8.0020.0002] # EGYPTIAN HIEROGLYPH NL020
-13236 ; [.4AE9.0020.0002] # EGYPTIAN HIEROGLYPH NU001
-13237 ; [.4AEA.0020.0002] # EGYPTIAN HIEROGLYPH NU002
-13238 ; [.4AEB.0020.0002] # EGYPTIAN HIEROGLYPH NU003
-13239 ; [.4AEC.0020.0002] # EGYPTIAN HIEROGLYPH NU004
-1323A ; [.4AED.0020.0002] # EGYPTIAN HIEROGLYPH NU005
-1323B ; [.4AEE.0020.0002] # EGYPTIAN HIEROGLYPH NU006
-1323C ; [.4AEF.0020.0002] # EGYPTIAN HIEROGLYPH NU007
-1323D ; [.4AF0.0020.0002] # EGYPTIAN HIEROGLYPH NU008
-1323E ; [.4AF1.0020.0002] # EGYPTIAN HIEROGLYPH NU009
-1323F ; [.4AF2.0020.0002] # EGYPTIAN HIEROGLYPH NU010
-13240 ; [.4AF3.0020.0002] # EGYPTIAN HIEROGLYPH NU010A
-13241 ; [.4AF4.0020.0002] # EGYPTIAN HIEROGLYPH NU011
-13242 ; [.4AF5.0020.0002] # EGYPTIAN HIEROGLYPH NU011A
-13243 ; [.4AF6.0020.0002] # EGYPTIAN HIEROGLYPH NU012
-13244 ; [.4AF7.0020.0002] # EGYPTIAN HIEROGLYPH NU013
-13245 ; [.4AF8.0020.0002] # EGYPTIAN HIEROGLYPH NU014
-13246 ; [.4AF9.0020.0002] # EGYPTIAN HIEROGLYPH NU015
-13247 ; [.4AFA.0020.0002] # EGYPTIAN HIEROGLYPH NU016
-13248 ; [.4AFB.0020.0002] # EGYPTIAN HIEROGLYPH NU017
-13249 ; [.4AFC.0020.0002] # EGYPTIAN HIEROGLYPH NU018
-1324A ; [.4AFD.0020.0002] # EGYPTIAN HIEROGLYPH NU018A
-1324B ; [.4AFE.0020.0002] # EGYPTIAN HIEROGLYPH NU019
-1324C ; [.4AFF.0020.0002] # EGYPTIAN HIEROGLYPH NU020
-1324D ; [.4B00.0020.0002] # EGYPTIAN HIEROGLYPH NU021
-1324E ; [.4B01.0020.0002] # EGYPTIAN HIEROGLYPH NU022
-1324F ; [.4B02.0020.0002] # EGYPTIAN HIEROGLYPH NU022A
-13250 ; [.4B03.0020.0002] # EGYPTIAN HIEROGLYPH O001
-13251 ; [.4B04.0020.0002] # EGYPTIAN HIEROGLYPH O001A
-13252 ; [.4B05.0020.0002] # EGYPTIAN HIEROGLYPH O002
-13253 ; [.4B06.0020.0002] # EGYPTIAN HIEROGLYPH O003
-13254 ; [.4B07.0020.0002] # EGYPTIAN HIEROGLYPH O004
-13255 ; [.4B08.0020.0002] # EGYPTIAN HIEROGLYPH O005
-13256 ; [.4B09.0020.0002] # EGYPTIAN HIEROGLYPH O005A
-13257 ; [.4B0A.0020.0002] # EGYPTIAN HIEROGLYPH O006
-13258 ; [.4B0B.0020.0002] # EGYPTIAN HIEROGLYPH O006A
-13259 ; [.4B0C.0020.0002] # EGYPTIAN HIEROGLYPH O006B
-1325A ; [.4B0D.0020.0002] # EGYPTIAN HIEROGLYPH O006C
-1325B ; [.4B0E.0020.0002] # EGYPTIAN HIEROGLYPH O006D
-1325C ; [.4B0F.0020.0002] # EGYPTIAN HIEROGLYPH O006E
-1325D ; [.4B10.0020.0002] # EGYPTIAN HIEROGLYPH O006F
-1325E ; [.4B11.0020.0002] # EGYPTIAN HIEROGLYPH O007
-1325F ; [.4B12.0020.0002] # EGYPTIAN HIEROGLYPH O008
-13260 ; [.4B13.0020.0002] # EGYPTIAN HIEROGLYPH O009
-13261 ; [.4B14.0020.0002] # EGYPTIAN HIEROGLYPH O010
-13262 ; [.4B15.0020.0002] # EGYPTIAN HIEROGLYPH O010A
-13263 ; [.4B16.0020.0002] # EGYPTIAN HIEROGLYPH O010B
-13264 ; [.4B17.0020.0002] # EGYPTIAN HIEROGLYPH O010C
-13265 ; [.4B18.0020.0002] # EGYPTIAN HIEROGLYPH O011
-13266 ; [.4B19.0020.0002] # EGYPTIAN HIEROGLYPH O012
-13267 ; [.4B1A.0020.0002] # EGYPTIAN HIEROGLYPH O013
-13268 ; [.4B1B.0020.0002] # EGYPTIAN HIEROGLYPH O014
-13269 ; [.4B1C.0020.0002] # EGYPTIAN HIEROGLYPH O015
-1326A ; [.4B1D.0020.0002] # EGYPTIAN HIEROGLYPH O016
-1326B ; [.4B1E.0020.0002] # EGYPTIAN HIEROGLYPH O017
-1326C ; [.4B1F.0020.0002] # EGYPTIAN HIEROGLYPH O018
-1326D ; [.4B20.0020.0002] # EGYPTIAN HIEROGLYPH O019
-1326E ; [.4B21.0020.0002] # EGYPTIAN HIEROGLYPH O019A
-1326F ; [.4B22.0020.0002] # EGYPTIAN HIEROGLYPH O020
-13270 ; [.4B23.0020.0002] # EGYPTIAN HIEROGLYPH O020A
-13271 ; [.4B24.0020.0002] # EGYPTIAN HIEROGLYPH O021
-13272 ; [.4B25.0020.0002] # EGYPTIAN HIEROGLYPH O022
-13273 ; [.4B26.0020.0002] # EGYPTIAN HIEROGLYPH O023
-13274 ; [.4B27.0020.0002] # EGYPTIAN HIEROGLYPH O024
-13275 ; [.4B28.0020.0002] # EGYPTIAN HIEROGLYPH O024A
-13276 ; [.4B29.0020.0002] # EGYPTIAN HIEROGLYPH O025
-13277 ; [.4B2A.0020.0002] # EGYPTIAN HIEROGLYPH O025A
-13278 ; [.4B2B.0020.0002] # EGYPTIAN HIEROGLYPH O026
-13279 ; [.4B2C.0020.0002] # EGYPTIAN HIEROGLYPH O027
-1327A ; [.4B2D.0020.0002] # EGYPTIAN HIEROGLYPH O028
-1327B ; [.4B2E.0020.0002] # EGYPTIAN HIEROGLYPH O029
-1327C ; [.4B2F.0020.0002] # EGYPTIAN HIEROGLYPH O029A
-1327D ; [.4B30.0020.0002] # EGYPTIAN HIEROGLYPH O030
-1327E ; [.4B31.0020.0002] # EGYPTIAN HIEROGLYPH O030A
-1327F ; [.4B32.0020.0002] # EGYPTIAN HIEROGLYPH O031
-13280 ; [.4B33.0020.0002] # EGYPTIAN HIEROGLYPH O032
-13281 ; [.4B34.0020.0002] # EGYPTIAN HIEROGLYPH O033
-13282 ; [.4B35.0020.0002] # EGYPTIAN HIEROGLYPH O033A
-13283 ; [.4B36.0020.0002] # EGYPTIAN HIEROGLYPH O034
-13284 ; [.4B37.0020.0002] # EGYPTIAN HIEROGLYPH O035
-13285 ; [.4B38.0020.0002] # EGYPTIAN HIEROGLYPH O036
-13286 ; [.4B39.0020.0002] # EGYPTIAN HIEROGLYPH O036A
-13287 ; [.4B3A.0020.0002] # EGYPTIAN HIEROGLYPH O036B
-13288 ; [.4B3B.0020.0002] # EGYPTIAN HIEROGLYPH O036C
-13289 ; [.4B3C.0020.0002] # EGYPTIAN HIEROGLYPH O036D
-1328A ; [.4B3D.0020.0002] # EGYPTIAN HIEROGLYPH O037
-1328B ; [.4B3E.0020.0002] # EGYPTIAN HIEROGLYPH O038
-1328C ; [.4B3F.0020.0002] # EGYPTIAN HIEROGLYPH O039
-1328D ; [.4B40.0020.0002] # EGYPTIAN HIEROGLYPH O040
-1328E ; [.4B41.0020.0002] # EGYPTIAN HIEROGLYPH O041
-1328F ; [.4B42.0020.0002] # EGYPTIAN HIEROGLYPH O042
-13290 ; [.4B43.0020.0002] # EGYPTIAN HIEROGLYPH O043
-13291 ; [.4B44.0020.0002] # EGYPTIAN HIEROGLYPH O044
-13292 ; [.4B45.0020.0002] # EGYPTIAN HIEROGLYPH O045
-13293 ; [.4B46.0020.0002] # EGYPTIAN HIEROGLYPH O046
-13294 ; [.4B47.0020.0002] # EGYPTIAN HIEROGLYPH O047
-13295 ; [.4B48.0020.0002] # EGYPTIAN HIEROGLYPH O048
-13296 ; [.4B49.0020.0002] # EGYPTIAN HIEROGLYPH O049
-13297 ; [.4B4A.0020.0002] # EGYPTIAN HIEROGLYPH O050
-13298 ; [.4B4B.0020.0002] # EGYPTIAN HIEROGLYPH O050A
-13299 ; [.4B4C.0020.0002] # EGYPTIAN HIEROGLYPH O050B
-1329A ; [.4B4D.0020.0002] # EGYPTIAN HIEROGLYPH O051
-1329B ; [.4B4E.0020.0002] # EGYPTIAN HIEROGLYPH P001
-1329C ; [.4B4F.0020.0002] # EGYPTIAN HIEROGLYPH P001A
-1329D ; [.4B50.0020.0002] # EGYPTIAN HIEROGLYPH P002
-1329E ; [.4B51.0020.0002] # EGYPTIAN HIEROGLYPH P003
-1329F ; [.4B52.0020.0002] # EGYPTIAN HIEROGLYPH P003A
-132A0 ; [.4B53.0020.0002] # EGYPTIAN HIEROGLYPH P004
-132A1 ; [.4B54.0020.0002] # EGYPTIAN HIEROGLYPH P005
-132A2 ; [.4B55.0020.0002] # EGYPTIAN HIEROGLYPH P006
-132A3 ; [.4B56.0020.0002] # EGYPTIAN HIEROGLYPH P007
-132A4 ; [.4B57.0020.0002] # EGYPTIAN HIEROGLYPH P008
-132A5 ; [.4B58.0020.0002] # EGYPTIAN HIEROGLYPH P009
-132A6 ; [.4B59.0020.0002] # EGYPTIAN HIEROGLYPH P010
-132A7 ; [.4B5A.0020.0002] # EGYPTIAN HIEROGLYPH P011
-132A8 ; [.4B5B.0020.0002] # EGYPTIAN HIEROGLYPH Q001
-132A9 ; [.4B5C.0020.0002] # EGYPTIAN HIEROGLYPH Q002
-132AA ; [.4B5D.0020.0002] # EGYPTIAN HIEROGLYPH Q003
-132AB ; [.4B5E.0020.0002] # EGYPTIAN HIEROGLYPH Q004
-132AC ; [.4B5F.0020.0002] # EGYPTIAN HIEROGLYPH Q005
-132AD ; [.4B60.0020.0002] # EGYPTIAN HIEROGLYPH Q006
-132AE ; [.4B61.0020.0002] # EGYPTIAN HIEROGLYPH Q007
-132AF ; [.4B62.0020.0002] # EGYPTIAN HIEROGLYPH R001
-132B0 ; [.4B63.0020.0002] # EGYPTIAN HIEROGLYPH R002
-132B1 ; [.4B64.0020.0002] # EGYPTIAN HIEROGLYPH R002A
-132B2 ; [.4B65.0020.0002] # EGYPTIAN HIEROGLYPH R003
-132B3 ; [.4B66.0020.0002] # EGYPTIAN HIEROGLYPH R003A
-132B4 ; [.4B67.0020.0002] # EGYPTIAN HIEROGLYPH R003B
-132B5 ; [.4B68.0020.0002] # EGYPTIAN HIEROGLYPH R004
-132B6 ; [.4B69.0020.0002] # EGYPTIAN HIEROGLYPH R005
-132B7 ; [.4B6A.0020.0002] # EGYPTIAN HIEROGLYPH R006
-132B8 ; [.4B6B.0020.0002] # EGYPTIAN HIEROGLYPH R007
-132B9 ; [.4B6C.0020.0002] # EGYPTIAN HIEROGLYPH R008
-132BA ; [.4B6D.0020.0002] # EGYPTIAN HIEROGLYPH R009
-132BB ; [.4B6E.0020.0002] # EGYPTIAN HIEROGLYPH R010
-132BC ; [.4B6F.0020.0002] # EGYPTIAN HIEROGLYPH R010A
-132BD ; [.4B70.0020.0002] # EGYPTIAN HIEROGLYPH R011
-132BE ; [.4B71.0020.0002] # EGYPTIAN HIEROGLYPH R012
-132BF ; [.4B72.0020.0002] # EGYPTIAN HIEROGLYPH R013
-132C0 ; [.4B73.0020.0002] # EGYPTIAN HIEROGLYPH R014
-132C1 ; [.4B74.0020.0002] # EGYPTIAN HIEROGLYPH R015
-132C2 ; [.4B75.0020.0002] # EGYPTIAN HIEROGLYPH R016
-132C3 ; [.4B76.0020.0002] # EGYPTIAN HIEROGLYPH R016A
-132C4 ; [.4B77.0020.0002] # EGYPTIAN HIEROGLYPH R017
-132C5 ; [.4B78.0020.0002] # EGYPTIAN HIEROGLYPH R018
-132C6 ; [.4B79.0020.0002] # EGYPTIAN HIEROGLYPH R019
-132C7 ; [.4B7A.0020.0002] # EGYPTIAN HIEROGLYPH R020
-132C8 ; [.4B7B.0020.0002] # EGYPTIAN HIEROGLYPH R021
-132C9 ; [.4B7C.0020.0002] # EGYPTIAN HIEROGLYPH R022
-132CA ; [.4B7D.0020.0002] # EGYPTIAN HIEROGLYPH R023
-132CB ; [.4B7E.0020.0002] # EGYPTIAN HIEROGLYPH R024
-132CC ; [.4B7F.0020.0002] # EGYPTIAN HIEROGLYPH R025
-132CD ; [.4B80.0020.0002] # EGYPTIAN HIEROGLYPH R026
-132CE ; [.4B81.0020.0002] # EGYPTIAN HIEROGLYPH R027
-132CF ; [.4B82.0020.0002] # EGYPTIAN HIEROGLYPH R028
-132D0 ; [.4B83.0020.0002] # EGYPTIAN HIEROGLYPH R029
-132D1 ; [.4B84.0020.0002] # EGYPTIAN HIEROGLYPH S001
-132D2 ; [.4B85.0020.0002] # EGYPTIAN HIEROGLYPH S002
-132D3 ; [.4B86.0020.0002] # EGYPTIAN HIEROGLYPH S002A
-132D4 ; [.4B87.0020.0002] # EGYPTIAN HIEROGLYPH S003
-132D5 ; [.4B88.0020.0002] # EGYPTIAN HIEROGLYPH S004
-132D6 ; [.4B89.0020.0002] # EGYPTIAN HIEROGLYPH S005
-132D7 ; [.4B8A.0020.0002] # EGYPTIAN HIEROGLYPH S006
-132D8 ; [.4B8B.0020.0002] # EGYPTIAN HIEROGLYPH S006A
-132D9 ; [.4B8C.0020.0002] # EGYPTIAN HIEROGLYPH S007
-132DA ; [.4B8D.0020.0002] # EGYPTIAN HIEROGLYPH S008
-132DB ; [.4B8E.0020.0002] # EGYPTIAN HIEROGLYPH S009
-132DC ; [.4B8F.0020.0002] # EGYPTIAN HIEROGLYPH S010
-132DD ; [.4B90.0020.0002] # EGYPTIAN HIEROGLYPH S011
-132DE ; [.4B91.0020.0002] # EGYPTIAN HIEROGLYPH S012
-132DF ; [.4B92.0020.0002] # EGYPTIAN HIEROGLYPH S013
-132E0 ; [.4B93.0020.0002] # EGYPTIAN HIEROGLYPH S014
-132E1 ; [.4B94.0020.0002] # EGYPTIAN HIEROGLYPH S014A
-132E2 ; [.4B95.0020.0002] # EGYPTIAN HIEROGLYPH S014B
-132E3 ; [.4B96.0020.0002] # EGYPTIAN HIEROGLYPH S015
-132E4 ; [.4B97.0020.0002] # EGYPTIAN HIEROGLYPH S016
-132E5 ; [.4B98.0020.0002] # EGYPTIAN HIEROGLYPH S017
-132E6 ; [.4B99.0020.0002] # EGYPTIAN HIEROGLYPH S017A
-132E7 ; [.4B9A.0020.0002] # EGYPTIAN HIEROGLYPH S018
-132E8 ; [.4B9B.0020.0002] # EGYPTIAN HIEROGLYPH S019
-132E9 ; [.4B9C.0020.0002] # EGYPTIAN HIEROGLYPH S020
-132EA ; [.4B9D.0020.0002] # EGYPTIAN HIEROGLYPH S021
-132EB ; [.4B9E.0020.0002] # EGYPTIAN HIEROGLYPH S022
-132EC ; [.4B9F.0020.0002] # EGYPTIAN HIEROGLYPH S023
-132ED ; [.4BA0.0020.0002] # EGYPTIAN HIEROGLYPH S024
-132EE ; [.4BA1.0020.0002] # EGYPTIAN HIEROGLYPH S025
-132EF ; [.4BA2.0020.0002] # EGYPTIAN HIEROGLYPH S026
-132F0 ; [.4BA3.0020.0002] # EGYPTIAN HIEROGLYPH S026A
-132F1 ; [.4BA4.0020.0002] # EGYPTIAN HIEROGLYPH S026B
-132F2 ; [.4BA5.0020.0002] # EGYPTIAN HIEROGLYPH S027
-132F3 ; [.4BA6.0020.0002] # EGYPTIAN HIEROGLYPH S028
-132F4 ; [.4BA7.0020.0002] # EGYPTIAN HIEROGLYPH S029
-132F5 ; [.4BA8.0020.0002] # EGYPTIAN HIEROGLYPH S030
-132F6 ; [.4BA9.0020.0002] # EGYPTIAN HIEROGLYPH S031
-132F7 ; [.4BAA.0020.0002] # EGYPTIAN HIEROGLYPH S032
-132F8 ; [.4BAB.0020.0002] # EGYPTIAN HIEROGLYPH S033
-132F9 ; [.4BAC.0020.0002] # EGYPTIAN HIEROGLYPH S034
-132FA ; [.4BAD.0020.0002] # EGYPTIAN HIEROGLYPH S035
-132FB ; [.4BAE.0020.0002] # EGYPTIAN HIEROGLYPH S035A
-132FC ; [.4BAF.0020.0002] # EGYPTIAN HIEROGLYPH S036
-132FD ; [.4BB0.0020.0002] # EGYPTIAN HIEROGLYPH S037
-132FE ; [.4BB1.0020.0002] # EGYPTIAN HIEROGLYPH S038
-132FF ; [.4BB2.0020.0002] # EGYPTIAN HIEROGLYPH S039
-13300 ; [.4BB3.0020.0002] # EGYPTIAN HIEROGLYPH S040
-13301 ; [.4BB4.0020.0002] # EGYPTIAN HIEROGLYPH S041
-13302 ; [.4BB5.0020.0002] # EGYPTIAN HIEROGLYPH S042
-13303 ; [.4BB6.0020.0002] # EGYPTIAN HIEROGLYPH S043
-13304 ; [.4BB7.0020.0002] # EGYPTIAN HIEROGLYPH S044
-13305 ; [.4BB8.0020.0002] # EGYPTIAN HIEROGLYPH S045
-13306 ; [.4BB9.0020.0002] # EGYPTIAN HIEROGLYPH S046
-13307 ; [.4BBA.0020.0002] # EGYPTIAN HIEROGLYPH T001
-13308 ; [.4BBB.0020.0002] # EGYPTIAN HIEROGLYPH T002
-13309 ; [.4BBC.0020.0002] # EGYPTIAN HIEROGLYPH T003
-1330A ; [.4BBD.0020.0002] # EGYPTIAN HIEROGLYPH T003A
-1330B ; [.4BBE.0020.0002] # EGYPTIAN HIEROGLYPH T004
-1330C ; [.4BBF.0020.0002] # EGYPTIAN HIEROGLYPH T005
-1330D ; [.4BC0.0020.0002] # EGYPTIAN HIEROGLYPH T006
-1330E ; [.4BC1.0020.0002] # EGYPTIAN HIEROGLYPH T007
-1330F ; [.4BC2.0020.0002] # EGYPTIAN HIEROGLYPH T007A
-13310 ; [.4BC3.0020.0002] # EGYPTIAN HIEROGLYPH T008
-13311 ; [.4BC4.0020.0002] # EGYPTIAN HIEROGLYPH T008A
-13312 ; [.4BC5.0020.0002] # EGYPTIAN HIEROGLYPH T009
-13313 ; [.4BC6.0020.0002] # EGYPTIAN HIEROGLYPH T009A
-13314 ; [.4BC7.0020.0002] # EGYPTIAN HIEROGLYPH T010
-13315 ; [.4BC8.0020.0002] # EGYPTIAN HIEROGLYPH T011
-13316 ; [.4BC9.0020.0002] # EGYPTIAN HIEROGLYPH T011A
-13317 ; [.4BCA.0020.0002] # EGYPTIAN HIEROGLYPH T012
-13318 ; [.4BCB.0020.0002] # EGYPTIAN HIEROGLYPH T013
-13319 ; [.4BCC.0020.0002] # EGYPTIAN HIEROGLYPH T014
-1331A ; [.4BCD.0020.0002] # EGYPTIAN HIEROGLYPH T015
-1331B ; [.4BCE.0020.0002] # EGYPTIAN HIEROGLYPH T016
-1331C ; [.4BCF.0020.0002] # EGYPTIAN HIEROGLYPH T016A
-1331D ; [.4BD0.0020.0002] # EGYPTIAN HIEROGLYPH T017
-1331E ; [.4BD1.0020.0002] # EGYPTIAN HIEROGLYPH T018
-1331F ; [.4BD2.0020.0002] # EGYPTIAN HIEROGLYPH T019
-13320 ; [.4BD3.0020.0002] # EGYPTIAN HIEROGLYPH T020
-13321 ; [.4BD4.0020.0002] # EGYPTIAN HIEROGLYPH T021
-13322 ; [.4BD5.0020.0002] # EGYPTIAN HIEROGLYPH T022
-13323 ; [.4BD6.0020.0002] # EGYPTIAN HIEROGLYPH T023
-13324 ; [.4BD7.0020.0002] # EGYPTIAN HIEROGLYPH T024
-13325 ; [.4BD8.0020.0002] # EGYPTIAN HIEROGLYPH T025
-13326 ; [.4BD9.0020.0002] # EGYPTIAN HIEROGLYPH T026
-13327 ; [.4BDA.0020.0002] # EGYPTIAN HIEROGLYPH T027
-13328 ; [.4BDB.0020.0002] # EGYPTIAN HIEROGLYPH T028
-13329 ; [.4BDC.0020.0002] # EGYPTIAN HIEROGLYPH T029
-1332A ; [.4BDD.0020.0002] # EGYPTIAN HIEROGLYPH T030
-1332B ; [.4BDE.0020.0002] # EGYPTIAN HIEROGLYPH T031
-1332C ; [.4BDF.0020.0002] # EGYPTIAN HIEROGLYPH T032
-1332D ; [.4BE0.0020.0002] # EGYPTIAN HIEROGLYPH T032A
-1332E ; [.4BE1.0020.0002] # EGYPTIAN HIEROGLYPH T033
-1332F ; [.4BE2.0020.0002] # EGYPTIAN HIEROGLYPH T033A
-13330 ; [.4BE3.0020.0002] # EGYPTIAN HIEROGLYPH T034
-13331 ; [.4BE4.0020.0002] # EGYPTIAN HIEROGLYPH T035
-13332 ; [.4BE5.0020.0002] # EGYPTIAN HIEROGLYPH T036
-13333 ; [.4BE6.0020.0002] # EGYPTIAN HIEROGLYPH U001
-13334 ; [.4BE7.0020.0002] # EGYPTIAN HIEROGLYPH U002
-13335 ; [.4BE8.0020.0002] # EGYPTIAN HIEROGLYPH U003
-13336 ; [.4BE9.0020.0002] # EGYPTIAN HIEROGLYPH U004
-13337 ; [.4BEA.0020.0002] # EGYPTIAN HIEROGLYPH U005
-13338 ; [.4BEB.0020.0002] # EGYPTIAN HIEROGLYPH U006
-13339 ; [.4BEC.0020.0002] # EGYPTIAN HIEROGLYPH U006A
-1333A ; [.4BED.0020.0002] # EGYPTIAN HIEROGLYPH U006B
-1333B ; [.4BEE.0020.0002] # EGYPTIAN HIEROGLYPH U007
-1333C ; [.4BEF.0020.0002] # EGYPTIAN HIEROGLYPH U008
-1333D ; [.4BF0.0020.0002] # EGYPTIAN HIEROGLYPH U009
-1333E ; [.4BF1.0020.0002] # EGYPTIAN HIEROGLYPH U010
-1333F ; [.4BF2.0020.0002] # EGYPTIAN HIEROGLYPH U011
-13340 ; [.4BF3.0020.0002] # EGYPTIAN HIEROGLYPH U012
-13341 ; [.4BF4.0020.0002] # EGYPTIAN HIEROGLYPH U013
-13342 ; [.4BF5.0020.0002] # EGYPTIAN HIEROGLYPH U014
-13343 ; [.4BF6.0020.0002] # EGYPTIAN HIEROGLYPH U015
-13344 ; [.4BF7.0020.0002] # EGYPTIAN HIEROGLYPH U016
-13345 ; [.4BF8.0020.0002] # EGYPTIAN HIEROGLYPH U017
-13346 ; [.4BF9.0020.0002] # EGYPTIAN HIEROGLYPH U018
-13347 ; [.4BFA.0020.0002] # EGYPTIAN HIEROGLYPH U019
-13348 ; [.4BFB.0020.0002] # EGYPTIAN HIEROGLYPH U020
-13349 ; [.4BFC.0020.0002] # EGYPTIAN HIEROGLYPH U021
-1334A ; [.4BFD.0020.0002] # EGYPTIAN HIEROGLYPH U022
-1334B ; [.4BFE.0020.0002] # EGYPTIAN HIEROGLYPH U023
-1334C ; [.4BFF.0020.0002] # EGYPTIAN HIEROGLYPH U023A
-1334D ; [.4C00.0020.0002] # EGYPTIAN HIEROGLYPH U024
-1334E ; [.4C01.0020.0002] # EGYPTIAN HIEROGLYPH U025
-1334F ; [.4C02.0020.0002] # EGYPTIAN HIEROGLYPH U026
-13350 ; [.4C03.0020.0002] # EGYPTIAN HIEROGLYPH U027
-13351 ; [.4C04.0020.0002] # EGYPTIAN HIEROGLYPH U028
-13352 ; [.4C05.0020.0002] # EGYPTIAN HIEROGLYPH U029
-13353 ; [.4C06.0020.0002] # EGYPTIAN HIEROGLYPH U029A
-13354 ; [.4C07.0020.0002] # EGYPTIAN HIEROGLYPH U030
-13355 ; [.4C08.0020.0002] # EGYPTIAN HIEROGLYPH U031
-13356 ; [.4C09.0020.0002] # EGYPTIAN HIEROGLYPH U032
-13357 ; [.4C0A.0020.0002] # EGYPTIAN HIEROGLYPH U032A
-13358 ; [.4C0B.0020.0002] # EGYPTIAN HIEROGLYPH U033
-13359 ; [.4C0C.0020.0002] # EGYPTIAN HIEROGLYPH U034
-1335A ; [.4C0D.0020.0002] # EGYPTIAN HIEROGLYPH U035
-1335B ; [.4C0E.0020.0002] # EGYPTIAN HIEROGLYPH U036
-1335C ; [.4C0F.0020.0002] # EGYPTIAN HIEROGLYPH U037
-1335D ; [.4C10.0020.0002] # EGYPTIAN HIEROGLYPH U038
-1335E ; [.4C11.0020.0002] # EGYPTIAN HIEROGLYPH U039
-1335F ; [.4C12.0020.0002] # EGYPTIAN HIEROGLYPH U040
-13360 ; [.4C13.0020.0002] # EGYPTIAN HIEROGLYPH U041
-13361 ; [.4C14.0020.0002] # EGYPTIAN HIEROGLYPH U042
-13362 ; [.4C15.0020.0002] # EGYPTIAN HIEROGLYPH V001
-13363 ; [.4C16.0020.0002] # EGYPTIAN HIEROGLYPH V001A
-13364 ; [.4C17.0020.0002] # EGYPTIAN HIEROGLYPH V001B
-13365 ; [.4C18.0020.0002] # EGYPTIAN HIEROGLYPH V001C
-13366 ; [.4C19.0020.0002] # EGYPTIAN HIEROGLYPH V001D
-13367 ; [.4C1A.0020.0002] # EGYPTIAN HIEROGLYPH V001E
-13368 ; [.4C1B.0020.0002] # EGYPTIAN HIEROGLYPH V001F
-13369 ; [.4C1C.0020.0002] # EGYPTIAN HIEROGLYPH V001G
-1336A ; [.4C1D.0020.0002] # EGYPTIAN HIEROGLYPH V001H
-1336B ; [.4C1E.0020.0002] # EGYPTIAN HIEROGLYPH V001I
-1336C ; [.4C1F.0020.0002] # EGYPTIAN HIEROGLYPH V002
-1336D ; [.4C20.0020.0002] # EGYPTIAN HIEROGLYPH V002A
-1336E ; [.4C21.0020.0002] # EGYPTIAN HIEROGLYPH V003
-1336F ; [.4C22.0020.0002] # EGYPTIAN HIEROGLYPH V004
-13370 ; [.4C23.0020.0002] # EGYPTIAN HIEROGLYPH V005
-13371 ; [.4C24.0020.0002] # EGYPTIAN HIEROGLYPH V006
-13372 ; [.4C25.0020.0002] # EGYPTIAN HIEROGLYPH V007
-13373 ; [.4C26.0020.0002] # EGYPTIAN HIEROGLYPH V007A
-13374 ; [.4C27.0020.0002] # EGYPTIAN HIEROGLYPH V007B
-13375 ; [.4C28.0020.0002] # EGYPTIAN HIEROGLYPH V008
-13376 ; [.4C29.0020.0002] # EGYPTIAN HIEROGLYPH V009
-13377 ; [.4C2A.0020.0002] # EGYPTIAN HIEROGLYPH V010
-13378 ; [.4C2B.0020.0002] # EGYPTIAN HIEROGLYPH V011
-13379 ; [.4C2C.0020.0002] # EGYPTIAN HIEROGLYPH V011A
-1337A ; [.4C2D.0020.0002] # EGYPTIAN HIEROGLYPH V011B
-1337B ; [.4C2E.0020.0002] # EGYPTIAN HIEROGLYPH V011C
-1337C ; [.4C2F.0020.0002] # EGYPTIAN HIEROGLYPH V012
-1337D ; [.4C30.0020.0002] # EGYPTIAN HIEROGLYPH V012A
-1337E ; [.4C31.0020.0002] # EGYPTIAN HIEROGLYPH V012B
-1337F ; [.4C32.0020.0002] # EGYPTIAN HIEROGLYPH V013
-13380 ; [.4C33.0020.0002] # EGYPTIAN HIEROGLYPH V014
-13381 ; [.4C34.0020.0002] # EGYPTIAN HIEROGLYPH V015
-13382 ; [.4C35.0020.0002] # EGYPTIAN HIEROGLYPH V016
-13383 ; [.4C36.0020.0002] # EGYPTIAN HIEROGLYPH V017
-13384 ; [.4C37.0020.0002] # EGYPTIAN HIEROGLYPH V018
-13385 ; [.4C38.0020.0002] # EGYPTIAN HIEROGLYPH V019
-13386 ; [.4C39.0020.0002] # EGYPTIAN HIEROGLYPH V020
-13387 ; [.4C3A.0020.0002] # EGYPTIAN HIEROGLYPH V020A
-13388 ; [.4C3B.0020.0002] # EGYPTIAN HIEROGLYPH V020B
-13389 ; [.4C3C.0020.0002] # EGYPTIAN HIEROGLYPH V020C
-1338A ; [.4C3D.0020.0002] # EGYPTIAN HIEROGLYPH V020D
-1338B ; [.4C3E.0020.0002] # EGYPTIAN HIEROGLYPH V020E
-1338C ; [.4C3F.0020.0002] # EGYPTIAN HIEROGLYPH V020F
-1338D ; [.4C40.0020.0002] # EGYPTIAN HIEROGLYPH V020G
-1338E ; [.4C41.0020.0002] # EGYPTIAN HIEROGLYPH V020H
-1338F ; [.4C42.0020.0002] # EGYPTIAN HIEROGLYPH V020I
-13390 ; [.4C43.0020.0002] # EGYPTIAN HIEROGLYPH V020J
-13391 ; [.4C44.0020.0002] # EGYPTIAN HIEROGLYPH V020K
-13392 ; [.4C45.0020.0002] # EGYPTIAN HIEROGLYPH V020L
-13393 ; [.4C46.0020.0002] # EGYPTIAN HIEROGLYPH V021
-13394 ; [.4C47.0020.0002] # EGYPTIAN HIEROGLYPH V022
-13395 ; [.4C48.0020.0002] # EGYPTIAN HIEROGLYPH V023
-13396 ; [.4C49.0020.0002] # EGYPTIAN HIEROGLYPH V023A
-13397 ; [.4C4A.0020.0002] # EGYPTIAN HIEROGLYPH V024
-13398 ; [.4C4B.0020.0002] # EGYPTIAN HIEROGLYPH V025
-13399 ; [.4C4C.0020.0002] # EGYPTIAN HIEROGLYPH V026
-1339A ; [.4C4D.0020.0002] # EGYPTIAN HIEROGLYPH V027
-1339B ; [.4C4E.0020.0002] # EGYPTIAN HIEROGLYPH V028
-1339C ; [.4C4F.0020.0002] # EGYPTIAN HIEROGLYPH V028A
-1339D ; [.4C50.0020.0002] # EGYPTIAN HIEROGLYPH V029
-1339E ; [.4C51.0020.0002] # EGYPTIAN HIEROGLYPH V029A
-1339F ; [.4C52.0020.0002] # EGYPTIAN HIEROGLYPH V030
-133A0 ; [.4C53.0020.0002] # EGYPTIAN HIEROGLYPH V030A
-133A1 ; [.4C54.0020.0002] # EGYPTIAN HIEROGLYPH V031
-133A2 ; [.4C55.0020.0002] # EGYPTIAN HIEROGLYPH V031A
-133A3 ; [.4C56.0020.0002] # EGYPTIAN HIEROGLYPH V032
-133A4 ; [.4C57.0020.0002] # EGYPTIAN HIEROGLYPH V033
-133A5 ; [.4C58.0020.0002] # EGYPTIAN HIEROGLYPH V033A
-133A6 ; [.4C59.0020.0002] # EGYPTIAN HIEROGLYPH V034
-133A7 ; [.4C5A.0020.0002] # EGYPTIAN HIEROGLYPH V035
-133A8 ; [.4C5B.0020.0002] # EGYPTIAN HIEROGLYPH V036
-133A9 ; [.4C5C.0020.0002] # EGYPTIAN HIEROGLYPH V037
-133AA ; [.4C5D.0020.0002] # EGYPTIAN HIEROGLYPH V037A
-133AB ; [.4C5E.0020.0002] # EGYPTIAN HIEROGLYPH V038
-133AC ; [.4C5F.0020.0002] # EGYPTIAN HIEROGLYPH V039
-133AD ; [.4C60.0020.0002] # EGYPTIAN HIEROGLYPH V040
-133AE ; [.4C61.0020.0002] # EGYPTIAN HIEROGLYPH V040A
-133AF ; [.4C62.0020.0002] # EGYPTIAN HIEROGLYPH W001
-133B0 ; [.4C63.0020.0002] # EGYPTIAN HIEROGLYPH W002
-133B1 ; [.4C64.0020.0002] # EGYPTIAN HIEROGLYPH W003
-133B2 ; [.4C65.0020.0002] # EGYPTIAN HIEROGLYPH W003A
-133B3 ; [.4C66.0020.0002] # EGYPTIAN HIEROGLYPH W004
-133B4 ; [.4C67.0020.0002] # EGYPTIAN HIEROGLYPH W005
-133B5 ; [.4C68.0020.0002] # EGYPTIAN HIEROGLYPH W006
-133B6 ; [.4C69.0020.0002] # EGYPTIAN HIEROGLYPH W007
-133B7 ; [.4C6A.0020.0002] # EGYPTIAN HIEROGLYPH W008
-133B8 ; [.4C6B.0020.0002] # EGYPTIAN HIEROGLYPH W009
-133B9 ; [.4C6C.0020.0002] # EGYPTIAN HIEROGLYPH W009A
-133BA ; [.4C6D.0020.0002] # EGYPTIAN HIEROGLYPH W010
-133BB ; [.4C6E.0020.0002] # EGYPTIAN HIEROGLYPH W010A
-133BC ; [.4C6F.0020.0002] # EGYPTIAN HIEROGLYPH W011
-133BD ; [.4C70.0020.0002] # EGYPTIAN HIEROGLYPH W012
-133BE ; [.4C71.0020.0002] # EGYPTIAN HIEROGLYPH W013
-133BF ; [.4C72.0020.0002] # EGYPTIAN HIEROGLYPH W014
-133C0 ; [.4C73.0020.0002] # EGYPTIAN HIEROGLYPH W014A
-133C1 ; [.4C74.0020.0002] # EGYPTIAN HIEROGLYPH W015
-133C2 ; [.4C75.0020.0002] # EGYPTIAN HIEROGLYPH W016
-133C3 ; [.4C76.0020.0002] # EGYPTIAN HIEROGLYPH W017
-133C4 ; [.4C77.0020.0002] # EGYPTIAN HIEROGLYPH W017A
-133C5 ; [.4C78.0020.0002] # EGYPTIAN HIEROGLYPH W018
-133C6 ; [.4C79.0020.0002] # EGYPTIAN HIEROGLYPH W018A
-133C7 ; [.4C7A.0020.0002] # EGYPTIAN HIEROGLYPH W019
-133C8 ; [.4C7B.0020.0002] # EGYPTIAN HIEROGLYPH W020
-133C9 ; [.4C7C.0020.0002] # EGYPTIAN HIEROGLYPH W021
-133CA ; [.4C7D.0020.0002] # EGYPTIAN HIEROGLYPH W022
-133CB ; [.4C7E.0020.0002] # EGYPTIAN HIEROGLYPH W023
-133CC ; [.4C7F.0020.0002] # EGYPTIAN HIEROGLYPH W024
-133CD ; [.4C80.0020.0002] # EGYPTIAN HIEROGLYPH W024A
-133CE ; [.4C81.0020.0002] # EGYPTIAN HIEROGLYPH W025
-133CF ; [.4C82.0020.0002] # EGYPTIAN HIEROGLYPH X001
-133D0 ; [.4C83.0020.0002] # EGYPTIAN HIEROGLYPH X002
-133D1 ; [.4C84.0020.0002] # EGYPTIAN HIEROGLYPH X003
-133D2 ; [.4C85.0020.0002] # EGYPTIAN HIEROGLYPH X004
-133D3 ; [.4C86.0020.0002] # EGYPTIAN HIEROGLYPH X004A
-133D4 ; [.4C87.0020.0002] # EGYPTIAN HIEROGLYPH X004B
-133D5 ; [.4C88.0020.0002] # EGYPTIAN HIEROGLYPH X005
-133D6 ; [.4C89.0020.0002] # EGYPTIAN HIEROGLYPH X006
-133D7 ; [.4C8A.0020.0002] # EGYPTIAN HIEROGLYPH X006A
-133D8 ; [.4C8B.0020.0002] # EGYPTIAN HIEROGLYPH X007
-133D9 ; [.4C8C.0020.0002] # EGYPTIAN HIEROGLYPH X008
-133DA ; [.4C8D.0020.0002] # EGYPTIAN HIEROGLYPH X008A
-133DB ; [.4C8E.0020.0002] # EGYPTIAN HIEROGLYPH Y001
-133DC ; [.4C8F.0020.0002] # EGYPTIAN HIEROGLYPH Y001A
-133DD ; [.4C90.0020.0002] # EGYPTIAN HIEROGLYPH Y002
-133DE ; [.4C91.0020.0002] # EGYPTIAN HIEROGLYPH Y003
-133DF ; [.4C92.0020.0002] # EGYPTIAN HIEROGLYPH Y004
-133E0 ; [.4C93.0020.0002] # EGYPTIAN HIEROGLYPH Y005
-133E1 ; [.4C94.0020.0002] # EGYPTIAN HIEROGLYPH Y006
-133E2 ; [.4C95.0020.0002] # EGYPTIAN HIEROGLYPH Y007
-133E3 ; [.4C96.0020.0002] # EGYPTIAN HIEROGLYPH Y008
-133E4 ; [.4C97.0020.0002] # EGYPTIAN HIEROGLYPH Z001
-133E5 ; [.4C98.0020.0002] # EGYPTIAN HIEROGLYPH Z002
-133E6 ; [.4C99.0020.0002] # EGYPTIAN HIEROGLYPH Z002A
-133E7 ; [.4C9A.0020.0002] # EGYPTIAN HIEROGLYPH Z002B
-133E8 ; [.4C9B.0020.0002] # EGYPTIAN HIEROGLYPH Z002C
-133E9 ; [.4C9C.0020.0002] # EGYPTIAN HIEROGLYPH Z002D
-133EA ; [.4C9D.0020.0002] # EGYPTIAN HIEROGLYPH Z003
-133EB ; [.4C9E.0020.0002] # EGYPTIAN HIEROGLYPH Z003A
-133EC ; [.4C9F.0020.0002] # EGYPTIAN HIEROGLYPH Z003B
-133ED ; [.4CA0.0020.0002] # EGYPTIAN HIEROGLYPH Z004
-133EE ; [.4CA1.0020.0002] # EGYPTIAN HIEROGLYPH Z004A
-133EF ; [.4CA2.0020.0002] # EGYPTIAN HIEROGLYPH Z005
-133F0 ; [.4CA3.0020.0002] # EGYPTIAN HIEROGLYPH Z005A
-133F1 ; [.4CA4.0020.0002] # EGYPTIAN HIEROGLYPH Z006
-133F2 ; [.4CA5.0020.0002] # EGYPTIAN HIEROGLYPH Z007
-133F3 ; [.4CA6.0020.0002] # EGYPTIAN HIEROGLYPH Z008
-133F4 ; [.4CA7.0020.0002] # EGYPTIAN HIEROGLYPH Z009
-133F5 ; [.4CA8.0020.0002] # EGYPTIAN HIEROGLYPH Z010
-133F6 ; [.4CA9.0020.0002] # EGYPTIAN HIEROGLYPH Z011
-133F7 ; [.4CAA.0020.0002] # EGYPTIAN HIEROGLYPH Z012
-133F8 ; [.4CAB.0020.0002] # EGYPTIAN HIEROGLYPH Z013
-133F9 ; [.4CAC.0020.0002] # EGYPTIAN HIEROGLYPH Z014
-133FA ; [.4CAD.0020.0002] # EGYPTIAN HIEROGLYPH Z015
-133FB ; [.4CAE.0020.0002] # EGYPTIAN HIEROGLYPH Z015A
-133FC ; [.4CAF.0020.0002] # EGYPTIAN HIEROGLYPH Z015B
-133FD ; [.4CB0.0020.0002] # EGYPTIAN HIEROGLYPH Z015C
-133FE ; [.4CB1.0020.0002] # EGYPTIAN HIEROGLYPH Z015D
-133FF ; [.4CB2.0020.0002] # EGYPTIAN HIEROGLYPH Z015E
-13400 ; [.4CB3.0020.0002] # EGYPTIAN HIEROGLYPH Z015F
-13401 ; [.4CB4.0020.0002] # EGYPTIAN HIEROGLYPH Z015G
-13402 ; [.4CB5.0020.0002] # EGYPTIAN HIEROGLYPH Z015H
-13403 ; [.4CB6.0020.0002] # EGYPTIAN HIEROGLYPH Z015I
-13404 ; [.4CB7.0020.0002] # EGYPTIAN HIEROGLYPH Z016
-13405 ; [.4CB8.0020.0002] # EGYPTIAN HIEROGLYPH Z016A
-13406 ; [.4CB9.0020.0002] # EGYPTIAN HIEROGLYPH Z016B
-13407 ; [.4CBA.0020.0002] # EGYPTIAN HIEROGLYPH Z016C
-13408 ; [.4CBB.0020.0002] # EGYPTIAN HIEROGLYPH Z016D
-13409 ; [.4CBC.0020.0002] # EGYPTIAN HIEROGLYPH Z016E
-1340A ; [.4CBD.0020.0002] # EGYPTIAN HIEROGLYPH Z016F
-1340B ; [.4CBE.0020.0002] # EGYPTIAN HIEROGLYPH Z016G
-1340C ; [.4CBF.0020.0002] # EGYPTIAN HIEROGLYPH Z016H
-1340D ; [.4CC0.0020.0002] # EGYPTIAN HIEROGLYPH AA001
-1340E ; [.4CC1.0020.0002] # EGYPTIAN HIEROGLYPH AA002
-1340F ; [.4CC2.0020.0002] # EGYPTIAN HIEROGLYPH AA003
-13410 ; [.4CC3.0020.0002] # EGYPTIAN HIEROGLYPH AA004
-13411 ; [.4CC4.0020.0002] # EGYPTIAN HIEROGLYPH AA005
-13412 ; [.4CC5.0020.0002] # EGYPTIAN HIEROGLYPH AA006
-13413 ; [.4CC6.0020.0002] # EGYPTIAN HIEROGLYPH AA007
-13414 ; [.4CC7.0020.0002] # EGYPTIAN HIEROGLYPH AA007A
-13415 ; [.4CC8.0020.0002] # EGYPTIAN HIEROGLYPH AA007B
-13416 ; [.4CC9.0020.0002] # EGYPTIAN HIEROGLYPH AA008
-13417 ; [.4CCA.0020.0002] # EGYPTIAN HIEROGLYPH AA009
-13418 ; [.4CCB.0020.0002] # EGYPTIAN HIEROGLYPH AA010
-13419 ; [.4CCC.0020.0002] # EGYPTIAN HIEROGLYPH AA011
-1341A ; [.4CCD.0020.0002] # EGYPTIAN HIEROGLYPH AA012
-1341B ; [.4CCE.0020.0002] # EGYPTIAN HIEROGLYPH AA013
-1341C ; [.4CCF.0020.0002] # EGYPTIAN HIEROGLYPH AA014
-1341D ; [.4CD0.0020.0002] # EGYPTIAN HIEROGLYPH AA015
-1341E ; [.4CD1.0020.0002] # EGYPTIAN HIEROGLYPH AA016
-1341F ; [.4CD2.0020.0002] # EGYPTIAN HIEROGLYPH AA017
-13420 ; [.4CD3.0020.0002] # EGYPTIAN HIEROGLYPH AA018
-13421 ; [.4CD4.0020.0002] # EGYPTIAN HIEROGLYPH AA019
-13422 ; [.4CD5.0020.0002] # EGYPTIAN HIEROGLYPH AA020
-13423 ; [.4CD6.0020.0002] # EGYPTIAN HIEROGLYPH AA021
-13424 ; [.4CD7.0020.0002] # EGYPTIAN HIEROGLYPH AA022
-13425 ; [.4CD8.0020.0002] # EGYPTIAN HIEROGLYPH AA023
-13426 ; [.4CD9.0020.0002] # EGYPTIAN HIEROGLYPH AA024
-13427 ; [.4CDA.0020.0002] # EGYPTIAN HIEROGLYPH AA025
-13428 ; [.4CDB.0020.0002] # EGYPTIAN HIEROGLYPH AA026
-13429 ; [.4CDC.0020.0002] # EGYPTIAN HIEROGLYPH AA027
-1342A ; [.4CDD.0020.0002] # EGYPTIAN HIEROGLYPH AA028
-1342B ; [.4CDE.0020.0002] # EGYPTIAN HIEROGLYPH AA029
-1342C ; [.4CDF.0020.0002] # EGYPTIAN HIEROGLYPH AA030
-1342D ; [.4CE0.0020.0002] # EGYPTIAN HIEROGLYPH AA031
-1342E ; [.4CE1.0020.0002] # EGYPTIAN HIEROGLYPH AA032
-109A0 ; [.4CE2.0020.0002] # MEROITIC CURSIVE LETTER A
-10980 ; [.4CE2.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER A
-109A1 ; [.4CE3.0020.0002] # MEROITIC CURSIVE LETTER E
-10981 ; [.4CE3.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER E
-109A2 ; [.4CE4.0020.0002] # MEROITIC CURSIVE LETTER I
-10982 ; [.4CE4.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER I
-109A3 ; [.4CE5.0020.0002] # MEROITIC CURSIVE LETTER O
-10983 ; [.4CE5.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER O
-109A4 ; [.4CE6.0020.0002] # MEROITIC CURSIVE LETTER YA
-10984 ; [.4CE6.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER YA
-109A5 ; [.4CE7.0020.0002] # MEROITIC CURSIVE LETTER WA
-10985 ; [.4CE7.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER WA
-109A6 ; [.4CE8.0020.0002] # MEROITIC CURSIVE LETTER BA
-10986 ; [.4CE8.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER BA
-10987 ; [.4CE8.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER BA-2
-109A7 ; [.4CE9.0020.0002] # MEROITIC CURSIVE LETTER PA
-10988 ; [.4CE9.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER PA
-109A8 ; [.4CEA.0020.0002] # MEROITIC CURSIVE LETTER MA
-10989 ; [.4CEA.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER MA
-109A9 ; [.4CEB.0020.0002] # MEROITIC CURSIVE LETTER NA
-1098A ; [.4CEB.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER NA
-1098B ; [.4CEB.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER NA-2
-109AA ; [.4CEC.0020.0002] # MEROITIC CURSIVE LETTER NE
-1098C ; [.4CEC.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER NE
-1098D ; [.4CEC.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER NE-2
-109AB ; [.4CED.0020.0002] # MEROITIC CURSIVE LETTER RA
-1098E ; [.4CED.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER RA
-1098F ; [.4CED.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER RA-2
-109AC ; [.4CEE.0020.0002] # MEROITIC CURSIVE LETTER LA
-10990 ; [.4CEE.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER LA
-109AD ; [.4CEF.0020.0002] # MEROITIC CURSIVE LETTER KHA
-10991 ; [.4CEF.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER KHA
-109AE ; [.4CF0.0020.0002] # MEROITIC CURSIVE LETTER HHA
-10992 ; [.4CF0.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER HHA
-109AF ; [.4CF1.0020.0002] # MEROITIC CURSIVE LETTER SA
-109B0 ; [.4CF1.0020.0004][.0000.0108.0004] # MEROITIC CURSIVE LETTER ARCHAIC SA
-10993 ; [.4CF1.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER SA
-10994 ; [.4CF1.0020.0004][.0000.010A.0004] # MEROITIC HIEROGLYPHIC LETTER SA-2
-109B1 ; [.4CF2.0020.0002] # MEROITIC CURSIVE LETTER SE
-10995 ; [.4CF2.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER SE
-109B2 ; [.4CF3.0020.0002] # MEROITIC CURSIVE LETTER KA
-10996 ; [.4CF3.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER KA
-109B3 ; [.4CF4.0020.0002] # MEROITIC CURSIVE LETTER QA
-10997 ; [.4CF4.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER QA
-109B4 ; [.4CF5.0020.0002] # MEROITIC CURSIVE LETTER TA
-10998 ; [.4CF5.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER TA
-10999 ; [.4CF5.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER TA-2
-109B5 ; [.4CF6.0020.0002] # MEROITIC CURSIVE LETTER TE
-1099A ; [.4CF6.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER TE
-1099B ; [.4CF6.0020.0004][.0000.0109.0004] # MEROITIC HIEROGLYPHIC LETTER TE-2
-109B6 ; [.4CF7.0020.0002] # MEROITIC CURSIVE LETTER TO
-1099C ; [.4CF7.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER TO
-109B7 ; [.4CF8.0020.0002] # MEROITIC CURSIVE LETTER DA
-1099D ; [.4CF8.0020.0004][.0000.0108.0004] # MEROITIC HIEROGLYPHIC LETTER DA
-109BE ; [.4CF9.0020.0002] # MEROITIC CURSIVE LOGOGRAM RMT
-109BF ; [.4CFA.0020.0002] # MEROITIC CURSIVE LOGOGRAM IMN
-1099E ; [.4CFB.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ
-1099F ; [.4CFC.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+08E3 ; [.0000.0090.0002] # ARABIC TURNED DAMMA BELOW
+08F7 ; [.0000.0091.0002] # ARABIC LEFT ARROWHEAD ABOVE
+08F8 ; [.0000.0092.0002] # ARABIC RIGHT ARROWHEAD ABOVE
+08FD ; [.0000.0093.0002] # ARABIC RIGHT ARROWHEAD ABOVE WITH DOT
+08FB ; [.0000.0094.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE
+08FC ; [.0000.0095.0002] # ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT
+08F9 ; [.0000.0096.0002] # ARABIC LEFT ARROWHEAD BELOW
+08FA ; [.0000.0097.0002] # ARABIC RIGHT ARROWHEAD BELOW
+0670 ; [.0000.0098.0002] # ARABIC LETTER SUPERSCRIPT ALEF
+0711 ; [.0000.0099.0002] # SYRIAC LETTER SUPERSCRIPT ALAPH
+0730 ; [.0000.009A.0002] # SYRIAC PTHAHA ABOVE
+0731 ; [.0000.009B.0002] # SYRIAC PTHAHA BELOW
+0732 ; [.0000.009C.0002] # SYRIAC PTHAHA DOTTED
+0733 ; [.0000.009D.0002] # SYRIAC ZQAPHA ABOVE
+0734 ; [.0000.009E.0002] # SYRIAC ZQAPHA BELOW
+0735 ; [.0000.009F.0002] # SYRIAC ZQAPHA DOTTED
+0736 ; [.0000.00A0.0002] # SYRIAC RBASA ABOVE
+0737 ; [.0000.00A1.0002] # SYRIAC RBASA BELOW
+0738 ; [.0000.00A2.0002] # SYRIAC DOTTED ZLAMA HORIZONTAL
+0739 ; [.0000.00A3.0002] # SYRIAC DOTTED ZLAMA ANGULAR
+073A ; [.0000.00A4.0002] # SYRIAC HBASA ABOVE
+073B ; [.0000.00A5.0002] # SYRIAC HBASA BELOW
+073C ; [.0000.00A6.0002] # SYRIAC HBASA-ESASA DOTTED
+073D ; [.0000.00A7.0002] # SYRIAC ESASA ABOVE
+073E ; [.0000.00A8.0002] # SYRIAC ESASA BELOW
+073F ; [.0000.00A9.0002] # SYRIAC RWAHA
+07EB ; [.0000.00AA.0002] # NKO COMBINING SHORT HIGH TONE
+07EC ; [.0000.00AB.0002] # NKO COMBINING SHORT LOW TONE
+07ED ; [.0000.00AC.0002] # NKO COMBINING SHORT RISING TONE
+07EE ; [.0000.00AD.0002] # NKO COMBINING LONG DESCENDING TONE
+07EF ; [.0000.00AE.0002] # NKO COMBINING LONG HIGH TONE
+07F0 ; [.0000.00AF.0002] # NKO COMBINING LONG LOW TONE
+07F1 ; [.0000.00B0.0002] # NKO COMBINING LONG RISING TONE
+07F2 ; [.0000.00B1.0002] # NKO COMBINING NASALIZATION MARK
+07F3 ; [.0000.00B2.0002] # NKO COMBINING DOUBLE DOT ABOVE
+135F ; [.0000.00B3.0002] # ETHIOPIC COMBINING GEMINATION MARK
+135E ; [.0000.00B4.0002] # ETHIOPIC COMBINING VOWEL LENGTH MARK
+135D ; [.0000.00B5.0002] # ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
+A6F0 ; [.0000.00B6.0002] # BAMUM COMBINING MARK KOQNDON
+A6F1 ; [.0000.00B7.0002] # BAMUM COMBINING MARK TUKWENTIS
+16AF0 ; [.0000.00B8.0002] # BASSA VAH COMBINING HIGH TONE
+16AF1 ; [.0000.00B9.0002] # BASSA VAH COMBINING LOW TONE
+16AF2 ; [.0000.00BA.0002] # BASSA VAH COMBINING MID TONE
+16AF3 ; [.0000.00BB.0002] # BASSA VAH COMBINING LOW-MID TONE
+16AF4 ; [.0000.00BC.0002] # BASSA VAH COMBINING HIGH-LOW TONE
+093C ; [.0000.00BD.0002] # DEVANAGARI SIGN NUKTA
+09BC ; [.0000.00BD.0002] # BENGALI SIGN NUKTA
+0A3C ; [.0000.00BD.0002] # GURMUKHI SIGN NUKTA
+0ABC ; [.0000.00BD.0002] # GUJARATI SIGN NUKTA
+0B3C ; [.0000.00BD.0002] # ORIYA SIGN NUKTA
+0CBC ; [.0000.00BD.0002] # KANNADA SIGN NUKTA
+1B34 ; [.0000.00BD.0002] # BALINESE SIGN REREKAN
+1BE6 ; [.0000.00BD.0002] # BATAK SIGN TOMPI
+1C37 ; [.0000.00BD.0002] # LEPCHA SIGN NUKTA
+A9B3 ; [.0000.00BD.0002] # JAVANESE SIGN CECAK TELU
+110BA ; [.0000.00BD.0002] # KAITHI SIGN NUKTA
+11173 ; [.0000.00BD.0002] # MAHAJANI SIGN NUKTA
+111CA ; [.0000.00BD.0002] # SHARADA SIGN NUKTA
+11236 ; [.0000.00BD.0002] # KHOJKI SIGN NUKTA
+112E9 ; [.0000.00BD.0002] # KHUDAWADI SIGN NUKTA
+1133C ; [.0000.00BD.0002] # GRANTHA SIGN NUKTA
+114C3 ; [.0000.00BD.0002] # TIRHUTA SIGN NUKTA
+115C0 ; [.0000.00BD.0002] # SIDDHAM SIGN NUKTA
+116B7 ; [.0000.00BD.0002] # TAKRI SIGN NUKTA
+0900 ; [.0000.00BE.0002] # DEVANAGARI SIGN INVERTED CANDRABINDU
+0901 ; [.0000.00BE.0002] # DEVANAGARI SIGN CANDRABINDU
+0981 ; [.0000.00BE.0002] # BENGALI SIGN CANDRABINDU
+0A01 ; [.0000.00BE.0002] # GURMUKHI SIGN ADAK BINDI
+0A81 ; [.0000.00BE.0002] # GUJARATI SIGN CANDRABINDU
+0B01 ; [.0000.00BE.0002] # ORIYA SIGN CANDRABINDU
+0C00 ; [.0000.00BE.0002] # TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01 ; [.0000.00BE.0002] # TELUGU SIGN CANDRABINDU
+0C81 ; [.0000.00BE.0002] # KANNADA SIGN CANDRABINDU
+0D01 ; [.0000.00BE.0002] # MALAYALAM SIGN CANDRABINDU
+1B00 ; [.0000.00BE.0002] # BALINESE SIGN ULU RICEM
+1B01 ; [.0000.00BE.0002] # BALINESE SIGN ULU CANDRA
+A980 ; [.0000.00BE.0002] # JAVANESE SIGN PANYANGGA
+11000 ; [.0000.00BE.0002] # BRAHMI SIGN CANDRABINDU
+11080 ; [.0000.00BE.0002] # KAITHI SIGN CANDRABINDU
+11100 ; [.0000.00BE.0002] # CHAKMA SIGN CANDRABINDU
+11180 ; [.0000.00BE.0002] # SHARADA SIGN CANDRABINDU
+11301 ; [.0000.00BE.0002] # GRANTHA SIGN CANDRABINDU
+114BF ; [.0000.00BE.0002] # TIRHUTA SIGN CANDRABINDU
+115BC ; [.0000.00BE.0002] # SIDDHAM SIGN CANDRABINDU
+11640 ; [.0000.00BE.0002] # MODI SIGN ARDHACANDRA
+0902 ; [.0000.00BF.0002] # DEVANAGARI SIGN ANUSVARA
+0982 ; [.0000.00BF.0002] # BENGALI SIGN ANUSVARA
+0A02 ; [.0000.00BF.0002] # GURMUKHI SIGN BINDI
+0A82 ; [.0000.00BF.0002] # GUJARATI SIGN ANUSVARA
+0B02 ; [.0000.00BF.0002] # ORIYA SIGN ANUSVARA
+0B82 ; [.0000.00BF.0002] # TAMIL SIGN ANUSVARA
+0C02 ; [.0000.00BF.0002] # TELUGU SIGN ANUSVARA
+0C82 ; [.0000.00BF.0002] # KANNADA SIGN ANUSVARA
+0D02 ; [.0000.00BF.0002] # MALAYALAM SIGN ANUSVARA
+0D82 ; [.0000.00BF.0002] # SINHALA SIGN ANUSVARAYA
+0F7E ; [.0000.00BF.0002] # TIBETAN SIGN RJES SU NGA RO
+1036 ; [.0000.00BF.0002] # MYANMAR SIGN ANUSVARA
+17C6 ; [.0000.00BF.0002] # KHMER SIGN NIKAHIT
+1A74 ; [.0000.00BF.0002] # TAI THAM SIGN MAI KANG
+1B02 ; [.0000.00BF.0002] # BALINESE SIGN CECEK
+1B80 ; [.0000.00BF.0002] # SUNDANESE SIGN PANYECEK
+1CED ; [.0000.00BF.0002] # VEDIC SIGN TIRYAK
+A80B ; [.0000.00BF.0002] # SYLOTI NAGRI SIGN ANUSVARA
+A880 ; [.0000.00BF.0002] # SAURASHTRA SIGN ANUSVARA
+A981 ; [.0000.00BF.0002] # JAVANESE SIGN CECAK
+10A0E ; [.0000.00BF.0002] # KHAROSHTHI SIGN ANUSVARA
+11001 ; [.0000.00BF.0002] # BRAHMI SIGN ANUSVARA
+11081 ; [.0000.00BF.0002] # KAITHI SIGN ANUSVARA
+11101 ; [.0000.00BF.0002] # CHAKMA SIGN ANUSVARA
+11181 ; [.0000.00BF.0002] # SHARADA SIGN ANUSVARA
+11234 ; [.0000.00BF.0002] # KHOJKI SIGN ANUSVARA
+112DF ; [.0000.00BF.0002] # KHUDAWADI SIGN ANUSVARA
+11300 ; [.0000.00BF.0002] # GRANTHA SIGN COMBINING ANUSVARA ABOVE
+11302 ; [.0000.00BF.0002] # GRANTHA SIGN ANUSVARA
+114C0 ; [.0000.00BF.0002] # TIRHUTA SIGN ANUSVARA
+115BD ; [.0000.00BF.0002] # SIDDHAM SIGN ANUSVARA
+1163D ; [.0000.00BF.0002] # MODI SIGN ANUSVARA
+116AB ; [.0000.00BF.0002] # TAKRI SIGN ANUSVARA
+0903 ; [.0000.00C0.0002] # DEVANAGARI SIGN VISARGA
+0983 ; [.0000.00C0.0002] # BENGALI SIGN VISARGA
+0A03 ; [.0000.00C0.0002] # GURMUKHI SIGN VISARGA
+0A83 ; [.0000.00C0.0002] # GUJARATI SIGN VISARGA
+0B03 ; [.0000.00C0.0002] # ORIYA SIGN VISARGA
+0C03 ; [.0000.00C0.0002] # TELUGU SIGN VISARGA
+0C83 ; [.0000.00C0.0002] # KANNADA SIGN VISARGA
+0D03 ; [.0000.00C0.0002] # MALAYALAM SIGN VISARGA
+0D83 ; [.0000.00C0.0002] # SINHALA SIGN VISARGAYA
+0F7F ; [.0000.00C0.0002] # TIBETAN SIGN RNAM BCAD
+1038 ; [.0000.00C0.0002] # MYANMAR SIGN VISARGA
+17C7 ; [.0000.00C0.0002] # KHMER SIGN REAHMUK
+1B04 ; [.0000.00C0.0002] # BALINESE SIGN BISAH
+1B82 ; [.0000.00C0.0002] # SUNDANESE SIGN PANGWISAD
+1CF2 ; [.0000.00C0.0002] # VEDIC SIGN ARDHAVISARGA
+1CF3 ; [.0000.00C0.0002] # VEDIC SIGN ROTATED ARDHAVISARGA
+A881 ; [.0000.00C0.0002] # SAURASHTRA SIGN VISARGA
+A983 ; [.0000.00C0.0002] # JAVANESE SIGN WIGNYAN
+10A0F ; [.0000.00C0.0002] # KHAROSHTHI SIGN VISARGA
+11002 ; [.0000.00C0.0002] # BRAHMI SIGN VISARGA
+11082 ; [.0000.00C0.0002] # KAITHI SIGN VISARGA
+11102 ; [.0000.00C0.0002] # CHAKMA SIGN VISARGA
+11182 ; [.0000.00C0.0002] # SHARADA SIGN VISARGA
+11303 ; [.0000.00C0.0002] # GRANTHA SIGN VISARGA
+114C1 ; [.0000.00C0.0002] # TIRHUTA SIGN VISARGA
+115BE ; [.0000.00C0.0002] # SIDDHAM SIGN VISARGA
+1163E ; [.0000.00C0.0002] # MODI SIGN VISARGA
+116AC ; [.0000.00C0.0002] # TAKRI SIGN VISARGA
+0A70 ; [.0000.00C1.0002] # GURMUKHI TIPPI
+0A71 ; [.0000.00C2.0002] # GURMUKHI ADDAK
+1B03 ; [.0000.00C3.0002] # BALINESE SIGN SURANG
+A982 ; [.0000.00C4.0002] # JAVANESE SIGN LAYAR
+1B81 ; [.0000.00C5.0002] # SUNDANESE SIGN PANGLAYAR
+ABEC ; [.0000.00C6.0002] # MEETEI MAYEK LUM IYEK
+10A38 ; [.0000.00C7.0002] # KHAROSHTHI SIGN BAR ABOVE
+10A39 ; [.0000.00C8.0002] # KHAROSHTHI SIGN CAUDA
+10A3A ; [.0000.00C9.0002] # KHAROSHTHI SIGN DOT BELOW
+111CB ; [.0000.00CA.0002] # SHARADA VOWEL MODIFIER MARK
+111CC ; [.0000.00CB.0002] # SHARADA EXTRA SHORT VOWEL MARK
+0E4E ; [.0000.00CC.0002] # THAI CHARACTER YAMAKKAN
+0E47 ; [.0000.00CD.0002] # THAI CHARACTER MAITAIKHU
+0E48 ; [.0000.00CE.0002] # THAI CHARACTER MAI EK
+0E49 ; [.0000.00CF.0002] # THAI CHARACTER MAI THO
+0E4A ; [.0000.00D0.0002] # THAI CHARACTER MAI TRI
+0E4B ; [.0000.00D1.0002] # THAI CHARACTER MAI CHATTAWA
+0E4C ; [.0000.00D2.0002] # THAI CHARACTER THANTHAKHAT
+0E4D ; [.0000.00D3.0002] # THAI CHARACTER NIKHAHIT
+0EC8 ; [.0000.00D4.0002] # LAO TONE MAI EK
+0EC9 ; [.0000.00D5.0002] # LAO TONE MAI THO
+0ECA ; [.0000.00D6.0002] # LAO TONE MAI TI
+0ECB ; [.0000.00D7.0002] # LAO TONE MAI CATAWA
+0ECC ; [.0000.00D8.0002] # LAO CANCELLATION MARK
+0ECD ; [.0000.00D9.0002] # LAO NIGGAHITA
+AABF ; [.0000.00DA.0002] # TAI VIET TONE MAI EK
+AAC1 ; [.0000.00DB.0002] # TAI VIET TONE MAI THO
+0F39 ; [.0000.00DC.0002] # TIBETAN MARK TSA -PHRU
+A92B ; [.0000.00DD.0002] # KAYAH LI TONE PLOPHU
+A92C ; [.0000.00DE.0002] # KAYAH LI TONE CALYA
+A92D ; [.0000.00DF.0002] # KAYAH LI TONE CALYA PLOPHU
+1037 ; [.0000.00E0.0002] # MYANMAR SIGN DOT BELOW
+17C8 ; [.0000.00E1.0002] # KHMER SIGN YUUKALEAPINTU
+17C9 ; [.0000.00E2.0002] # KHMER SIGN MUUSIKATOAN
+17CA ; [.0000.00E3.0002] # KHMER SIGN TRIISAP
+1A75 ; [.0000.00E4.0002] # TAI THAM SIGN TONE-1
+1A76 ; [.0000.00E5.0002] # TAI THAM SIGN TONE-2
+1A77 ; [.0000.00E6.0002] # TAI THAM SIGN KHUEN TONE-3
+1A78 ; [.0000.00E7.0002] # TAI THAM SIGN KHUEN TONE-4
+1A79 ; [.0000.00E8.0002] # TAI THAM SIGN KHUEN TONE-5
+1A7A ; [.0000.00E9.0002] # TAI THAM SIGN RA HAAM
+1A7B ; [.0000.00EA.0002] # TAI THAM SIGN MAI SAM
+1A7C ; [.0000.00EB.0002] # TAI THAM SIGN KHUEN-LUE KARAN
+1939 ; [.0000.00EC.0002] # LIMBU SIGN MUKPHRENG
+193A ; [.0000.00ED.0002] # LIMBU SIGN KEMPHRENG
+193B ; [.0000.00EE.0002] # LIMBU SIGN SA-I
+16B30 ; [.0000.00EF.0002] # PAHAWH HMONG MARK CIM TUB
+16B31 ; [.0000.00F0.0002] # PAHAWH HMONG MARK CIM SO
+16B32 ; [.0000.00F1.0002] # PAHAWH HMONG MARK CIM KES
+16B33 ; [.0000.00F2.0002] # PAHAWH HMONG MARK CIM KHAV
+16B34 ; [.0000.00F3.0002] # PAHAWH HMONG MARK CIM SUAM
+16B35 ; [.0000.00F4.0002] # PAHAWH HMONG MARK CIM HOM
+16B36 ; [.0000.00F5.0002] # PAHAWH HMONG MARK CIM TAUM
+302A ; [.0000.00F6.0002] # IDEOGRAPHIC LEVEL TONE MARK
+302B ; [.0000.00F7.0002] # IDEOGRAPHIC RISING TONE MARK
+302C ; [.0000.00F8.0002] # IDEOGRAPHIC DEPARTING TONE MARK
+302D ; [.0000.00F9.0002] # IDEOGRAPHIC ENTERING TONE MARK
+302E ; [.0000.00FA.0002] # HANGUL SINGLE DOT TONE MARK
+302F ; [.0000.00FB.0002] # HANGUL DOUBLE DOT TONE MARK
+20D0 ; [.0000.00FC.0002] # COMBINING LEFT HARPOON ABOVE
+20D1 ; [.0000.00FD.0002] # COMBINING RIGHT HARPOON ABOVE
+20D2 ; [.0000.00FE.0002] # COMBINING LONG VERTICAL LINE OVERLAY
+20D3 ; [.0000.00FE.0002] # COMBINING SHORT VERTICAL LINE OVERLAY
+20D4 ; [.0000.00FF.0002] # COMBINING ANTICLOCKWISE ARROW ABOVE
+20D5 ; [.0000.0100.0002] # COMBINING CLOCKWISE ARROW ABOVE
+20D6 ; [.0000.0101.0002] # COMBINING LEFT ARROW ABOVE
+20D7 ; [.0000.0102.0002] # COMBINING RIGHT ARROW ABOVE
+20DB ; [.0000.0103.0002] # COMBINING THREE DOTS ABOVE
+20DC ; [.0000.0104.0002] # COMBINING FOUR DOTS ABOVE
+20E1 ; [.0000.0105.0002] # COMBINING LEFT RIGHT ARROW ABOVE
+20E6 ; [.0000.0106.0002] # COMBINING DOUBLE VERTICAL STROKE OVERLAY
+20E7 ; [.0000.0107.0002] # COMBINING ANNUITY SYMBOL
+20E8 ; [.0000.0108.0002] # COMBINING TRIPLE UNDERDOT
+20E9 ; [.0000.0109.0002] # COMBINING WIDE BRIDGE ABOVE
+101FD ; [.0000.010A.0002] # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+02D0 ; [.1B74.0020.0002] # MODIFIER LETTER TRIANGULAR COLON
+02D1 ; [.1B75.0020.0002] # MODIFIER LETTER HALF TRIANGULAR COLON
+0971 ; [.1B76.0020.0002] # DEVANAGARI SIGN HIGH SPACING DOT
+0E46 ; [.1B77.0020.0002] # THAI CHARACTER MAIYAMOK
+0EC6 ; [.1B78.0020.0002] # LAO KO LA
+17D7 ; [.1B79.0020.0002] # KHMER SIGN LEK TOO
+1AA7 ; [.1B7A.0020.0002] # TAI THAM SIGN MAI YAMOK
+A9CF ; [.1B7B.0020.0002] # JAVANESE PANGRANGKEP
+A9E6 ; [.1B7C.0020.0002] # MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+AA70 ; [.1B7D.0020.0002] # MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AADD ; [.1B7E.0020.0002] # TAI VIET SYMBOL SAM
+AAF3 ; [.1B7F.0020.0002] # MEETEI MAYEK SYLLABLE REPETITION MARK
+AAF4 ; [.1B80.0020.0002] # MEETEI MAYEK WORD REPETITION MARK
+16B42 ; [.1B81.0020.0002] # PAHAWH HMONG SIGN VOS NRUA
+16B43 ; [.1B82.0020.0002] # PAHAWH HMONG SIGN IB YAM
+3005 ; [.1B83.0020.0002] # IDEOGRAPHIC ITERATION MARK
+303B ; [.1B84.0020.0002] # VERTICAL IDEOGRAPHIC ITERATION MARK
+3031 ; [.1B85.0020.0002] # VERTICAL KANA REPEAT MARK
+3032 ; [.1B85.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK
+3033 ; [.1B86.0020.0002] # VERTICAL KANA REPEAT MARK UPPER HALF
+3034 ; [.1B86.0020.0002][.0000.0037.0002] # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
+3035 ; [.1B87.0020.0002] # VERTICAL KANA REPEAT MARK LOWER HALF
+309D ; [.1B88.0020.0002] # HIRAGANA ITERATION MARK
+309E ; [.1B88.0020.0002][.0000.0037.0002] # HIRAGANA VOICED ITERATION MARK
+30FC ; [.1B89.0020.0002] # KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF70 ; [.1B89.0020.0012] # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+30FD ; [.1B8A.0020.0002] # KATAKANA ITERATION MARK
+30FE ; [.1B8A.0020.0002][.0000.0037.0002] # KATAKANA VOICED ITERATION MARK
+00A4 ; [.1B8B.0020.0002] # CURRENCY SIGN
+00A2 ; [.1B8C.0020.0002] # CENT SIGN
+FFE0 ; [.1B8C.0020.0003] # FULLWIDTH CENT SIGN
+0024 ; [.1B8D.0020.0002] # DOLLAR SIGN
+FF04 ; [.1B8D.0020.0003] # FULLWIDTH DOLLAR SIGN
+FE69 ; [.1B8D.0020.000F] # SMALL DOLLAR SIGN
+00A3 ; [.1B8E.0020.0002] # POUND SIGN
+FFE1 ; [.1B8E.0020.0003] # FULLWIDTH POUND SIGN
+00A5 ; [.1B8F.0020.0002] # YEN SIGN
+FFE5 ; [.1B8F.0020.0003] # FULLWIDTH YEN SIGN
+058F ; [.1B90.0020.0002] # ARMENIAN DRAM SIGN
+060B ; [.1B91.0020.0002] # AFGHANI SIGN
+09F2 ; [.1B92.0020.0002] # BENGALI RUPEE MARK
+09F3 ; [.1B93.0020.0002] # BENGALI RUPEE SIGN
+09FB ; [.1B94.0020.0002] # BENGALI GANDA MARK
+0AF1 ; [.1B95.0020.0002] # GUJARATI RUPEE SIGN
+A838 ; [.1B96.0020.0002] # NORTH INDIC RUPEE MARK
+0BF9 ; [.1B97.0020.0002] # TAMIL RUPEE SIGN
+0E3F ; [.1B98.0020.0002] # THAI CURRENCY SYMBOL BAHT
+17DB ; [.1B99.0020.0002] # KHMER CURRENCY SYMBOL RIEL
+20A0 ; [.1B9A.0020.0002] # EURO-CURRENCY SIGN
+20A1 ; [.1B9B.0020.0002] # COLON SIGN
+20A2 ; [.1B9C.0020.0002] # CRUZEIRO SIGN
+20A3 ; [.1B9D.0020.0002] # FRENCH FRANC SIGN
+20A4 ; [.1B9E.0020.0002] # LIRA SIGN
+20A5 ; [.1B9F.0020.0002] # MILL SIGN
+20A6 ; [.1BA0.0020.0002] # NAIRA SIGN
+20A7 ; [.1BA1.0020.0002] # PESETA SIGN
+20A9 ; [.1BA2.0020.0002] # WON SIGN
+FFE6 ; [.1BA2.0020.0003] # FULLWIDTH WON SIGN
+20AA ; [.1BA3.0020.0002] # NEW SHEQEL SIGN
+20AB ; [.1BA4.0020.0002] # DONG SIGN
+20AC ; [.1BA5.0020.0002] # EURO SIGN
+20AD ; [.1BA6.0020.0002] # KIP SIGN
+20AE ; [.1BA7.0020.0002] # TUGRIK SIGN
+20AF ; [.1BA8.0020.0002] # DRACHMA SIGN
+20B0 ; [.1BA9.0020.0002] # GERMAN PENNY SIGN
+20B1 ; [.1BAA.0020.0002] # PESO SIGN
+20B2 ; [.1BAB.0020.0002] # GUARANI SIGN
+20B3 ; [.1BAC.0020.0002] # AUSTRAL SIGN
+20B4 ; [.1BAD.0020.0002] # HRYVNIA SIGN
+20B5 ; [.1BAE.0020.0002] # CEDI SIGN
+20B6 ; [.1BAF.0020.0002] # LIVRE TOURNOIS SIGN
+20B7 ; [.1BB0.0020.0002] # SPESMILO SIGN
+20B8 ; [.1BB1.0020.0002] # TENGE SIGN
+20B9 ; [.1BB2.0020.0002] # INDIAN RUPEE SIGN
+20BA ; [.1BB3.0020.0002] # TURKISH LIRA SIGN
+20BB ; [.1BB4.0020.0002] # NORDIC MARK SIGN
+20BC ; [.1BB5.0020.0002] # MANAT SIGN
+20BD ; [.1BB6.0020.0002] # RUBLE SIGN
+20BE ; [.1BB7.0020.0002] # LARI SIGN
+0030 ; [.1BB8.0020.0002] # DIGIT ZERO
+0660 ; [.1BB8.0020.0002] # ARABIC-INDIC DIGIT ZERO
+06F0 ; [.1BB8.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ZERO
+07C0 ; [.1BB8.0020.0002] # NKO DIGIT ZERO
+0966 ; [.1BB8.0020.0002] # DEVANAGARI DIGIT ZERO
+09E6 ; [.1BB8.0020.0002] # BENGALI DIGIT ZERO
+0A66 ; [.1BB8.0020.0002] # GURMUKHI DIGIT ZERO
+0AE6 ; [.1BB8.0020.0002] # GUJARATI DIGIT ZERO
+0B66 ; [.1BB8.0020.0002] # ORIYA DIGIT ZERO
+0BE6 ; [.1BB8.0020.0002] # TAMIL DIGIT ZERO
+0C66 ; [.1BB8.0020.0002] # TELUGU DIGIT ZERO
+0C78 ; [.1BB8.0020.0002] # TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
+0CE6 ; [.1BB8.0020.0002] # KANNADA DIGIT ZERO
+0D66 ; [.1BB8.0020.0002] # MALAYALAM DIGIT ZERO
+0DE6 ; [.1BB8.0020.0002] # SINHALA LITH DIGIT ZERO
+0E50 ; [.1BB8.0020.0002] # THAI DIGIT ZERO
+0ED0 ; [.1BB8.0020.0002] # LAO DIGIT ZERO
+0F20 ; [.1BB8.0020.0002] # TIBETAN DIGIT ZERO
+1040 ; [.1BB8.0020.0002] # MYANMAR DIGIT ZERO
+1090 ; [.1BB8.0020.0002] # MYANMAR SHAN DIGIT ZERO
+17E0 ; [.1BB8.0020.0002] # KHMER DIGIT ZERO
+17F0 ; [.1BB8.0020.0002] # KHMER SYMBOL LEK ATTAK SON
+1810 ; [.1BB8.0020.0002] # MONGOLIAN DIGIT ZERO
+1946 ; [.1BB8.0020.0002] # LIMBU DIGIT ZERO
+19D0 ; [.1BB8.0020.0002] # NEW TAI LUE DIGIT ZERO
+1A80 ; [.1BB8.0020.0002] # TAI THAM HORA DIGIT ZERO
+1A90 ; [.1BB8.0020.0002] # TAI THAM THAM DIGIT ZERO
+1B50 ; [.1BB8.0020.0002] # BALINESE DIGIT ZERO
+1BB0 ; [.1BB8.0020.0002] # SUNDANESE DIGIT ZERO
+1C40 ; [.1BB8.0020.0002] # LEPCHA DIGIT ZERO
+1C50 ; [.1BB8.0020.0002] # OL CHIKI DIGIT ZERO
+3007 ; [.1BB8.0020.0002] # IDEOGRAPHIC NUMBER ZERO
+A620 ; [.1BB8.0020.0002] # VAI DIGIT ZERO
+A8D0 ; [.1BB8.0020.0002] # SAURASHTRA DIGIT ZERO
+A900 ; [.1BB8.0020.0002] # KAYAH LI DIGIT ZERO
+A9D0 ; [.1BB8.0020.0002] # JAVANESE DIGIT ZERO
+A9F0 ; [.1BB8.0020.0002] # MYANMAR TAI LAING DIGIT ZERO
+AA50 ; [.1BB8.0020.0002] # CHAM DIGIT ZERO
+ABF0 ; [.1BB8.0020.0002] # MEETEI MAYEK DIGIT ZERO
+1018A ; [.1BB8.0020.0002] # GREEK ZERO SIGN
+104A0 ; [.1BB8.0020.0002] # OSMANYA DIGIT ZERO
+11066 ; [.1BB8.0020.0002] # BRAHMI DIGIT ZERO
+110F0 ; [.1BB8.0020.0002] # SORA SOMPENG DIGIT ZERO
+11136 ; [.1BB8.0020.0002] # CHAKMA DIGIT ZERO
+111D0 ; [.1BB8.0020.0002] # SHARADA DIGIT ZERO
+112F0 ; [.1BB8.0020.0002] # KHUDAWADI DIGIT ZERO
+114D0 ; [.1BB8.0020.0002] # TIRHUTA DIGIT ZERO
+11650 ; [.1BB8.0020.0002] # MODI DIGIT ZERO
+116C0 ; [.1BB8.0020.0002] # TAKRI DIGIT ZERO
+11730 ; [.1BB8.0020.0002] # AHOM DIGIT ZERO
+118E0 ; [.1BB8.0020.0002] # WARANG CITI DIGIT ZERO
+16A60 ; [.1BB8.0020.0002] # MRO DIGIT ZERO
+16B50 ; [.1BB8.0020.0002] # PAHAWH HMONG DIGIT ZERO
+FF10 ; [.1BB8.0020.0003] # FULLWIDTH DIGIT ZERO
+0F33 ; [.1BB8.0020.0004] # TIBETAN DIGIT HALF ZERO
+1F100 ; [.1BB8.0020.0004][*0274.0020.0004] # DIGIT ZERO FULL STOP
+1F101 ; [.1BB8.0020.0004][*0221.0020.0004] # DIGIT ZERO COMMA
+1D7CE ; [.1BB8.0020.0005] # MATHEMATICAL BOLD DIGIT ZERO
+1D7D8 ; [.1BB8.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
+1D7E2 ; [.1BB8.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ZERO
+1D7EC ; [.1BB8.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
+1D7F6 ; [.1BB8.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ZERO
+24EA ; [.1BB8.0020.0006] # CIRCLED DIGIT ZERO
+24FF ; [.1BB8.0020.0006] # NEGATIVE CIRCLED DIGIT ZERO
+1F10B ; [.1BB8.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ZERO
+1F10C ; [.1BB8.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+2070 ; [.1BB8.0020.0014] # SUPERSCRIPT ZERO
+2080 ; [.1BB8.0020.0015] # SUBSCRIPT ZERO
+2189 ; [.1BB8.0020.001E][*0606.0020.001E][.1BBB.0020.001E] # VULGAR FRACTION ZERO THIRDS
+3358 ; [.1BB8.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+0031 ; [.1BB9.0020.0002] # DIGIT ONE
+0661 ; [.1BB9.0020.0002] # ARABIC-INDIC DIGIT ONE
+06F1 ; [.1BB9.0020.0002] # EXTENDED ARABIC-INDIC DIGIT ONE
+07C1 ; [.1BB9.0020.0002] # NKO DIGIT ONE
+0967 ; [.1BB9.0020.0002] # DEVANAGARI DIGIT ONE
+09E7 ; [.1BB9.0020.0002] # BENGALI DIGIT ONE
+0A67 ; [.1BB9.0020.0002] # GURMUKHI DIGIT ONE
+0AE7 ; [.1BB9.0020.0002] # GUJARATI DIGIT ONE
+0B67 ; [.1BB9.0020.0002] # ORIYA DIGIT ONE
+0BE7 ; [.1BB9.0020.0002] # TAMIL DIGIT ONE
+0C67 ; [.1BB9.0020.0002] # TELUGU DIGIT ONE
+0C79 ; [.1BB9.0020.0002] # TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR
+0C7C ; [.1BB9.0020.0002] # TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR
+0CE7 ; [.1BB9.0020.0002] # KANNADA DIGIT ONE
+0D67 ; [.1BB9.0020.0002] # MALAYALAM DIGIT ONE
+0DE7 ; [.1BB9.0020.0002] # SINHALA LITH DIGIT ONE
+0E51 ; [.1BB9.0020.0002] # THAI DIGIT ONE
+0ED1 ; [.1BB9.0020.0002] # LAO DIGIT ONE
+0F21 ; [.1BB9.0020.0002] # TIBETAN DIGIT ONE
+1041 ; [.1BB9.0020.0002] # MYANMAR DIGIT ONE
+1091 ; [.1BB9.0020.0002] # MYANMAR SHAN DIGIT ONE
+1369 ; [.1BB9.0020.0002] # ETHIOPIC DIGIT ONE
+17E1 ; [.1BB9.0020.0002] # KHMER DIGIT ONE
+17F1 ; [.1BB9.0020.0002] # KHMER SYMBOL LEK ATTAK MUOY
+1811 ; [.1BB9.0020.0002] # MONGOLIAN DIGIT ONE
+1947 ; [.1BB9.0020.0002] # LIMBU DIGIT ONE
+19D1 ; [.1BB9.0020.0002] # NEW TAI LUE DIGIT ONE
+19DA ; [.1BB9.0020.0002] # NEW TAI LUE THAM DIGIT ONE
+1A81 ; [.1BB9.0020.0002] # TAI THAM HORA DIGIT ONE
+1A91 ; [.1BB9.0020.0002] # TAI THAM THAM DIGIT ONE
+1B51 ; [.1BB9.0020.0002] # BALINESE DIGIT ONE
+1BB1 ; [.1BB9.0020.0002] # SUNDANESE DIGIT ONE
+1C41 ; [.1BB9.0020.0002] # LEPCHA DIGIT ONE
+1C51 ; [.1BB9.0020.0002] # OL CHIKI DIGIT ONE
+3021 ; [.1BB9.0020.0002] # HANGZHOU NUMERAL ONE
+A621 ; [.1BB9.0020.0002] # VAI DIGIT ONE
+A8D1 ; [.1BB9.0020.0002] # SAURASHTRA DIGIT ONE
+A901 ; [.1BB9.0020.0002] # KAYAH LI DIGIT ONE
+A9D1 ; [.1BB9.0020.0002] # JAVANESE DIGIT ONE
+A9F1 ; [.1BB9.0020.0002] # MYANMAR TAI LAING DIGIT ONE
+AA51 ; [.1BB9.0020.0002] # CHAM DIGIT ONE
+ABF1 ; [.1BB9.0020.0002] # MEETEI MAYEK DIGIT ONE
+10107 ; [.1BB9.0020.0002] # AEGEAN NUMBER ONE
+10142 ; [.1BB9.0020.0002] # GREEK ACROPHONIC ATTIC ONE DRACHMA
+10158 ; [.1BB9.0020.0002] # GREEK ACROPHONIC HERAEUM ONE PLETHRON
+10159 ; [.1BB9.0020.0002] # GREEK ACROPHONIC THESPIAN ONE
+1015A ; [.1BB9.0020.0002] # GREEK ACROPHONIC HERMIONIAN ONE
+102E1 ; [.1BB9.0020.0002] # COPTIC EPACT DIGIT ONE
+10320 ; [.1BB9.0020.0002] # OLD ITALIC NUMERAL ONE
+103D1 ; [.1BB9.0020.0002] # OLD PERSIAN NUMBER ONE
+104A1 ; [.1BB9.0020.0002] # OSMANYA DIGIT ONE
+10858 ; [.1BB9.0020.0002] # IMPERIAL ARAMAIC NUMBER ONE
+10879 ; [.1BB9.0020.0002] # PALMYRENE NUMBER ONE
+108A7 ; [.1BB9.0020.0002] # NABATAEAN NUMBER ONE
+108FB ; [.1BB9.0020.0002] # HATRAN NUMBER ONE
+10916 ; [.1BB9.0020.0002] # PHOENICIAN NUMBER ONE
+109C0 ; [.1BB9.0020.0002] # MEROITIC CURSIVE NUMBER ONE
+10A40 ; [.1BB9.0020.0002] # KHAROSHTHI DIGIT ONE
+10A7D ; [.1BB9.0020.0002] # OLD SOUTH ARABIAN NUMBER ONE
+10A9D ; [.1BB9.0020.0002] # OLD NORTH ARABIAN NUMBER ONE
+10AEB ; [.1BB9.0020.0002] # MANICHAEAN NUMBER ONE
+10B58 ; [.1BB9.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER ONE
+10B78 ; [.1BB9.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER ONE
+10BA9 ; [.1BB9.0020.0002] # PSALTER PAHLAVI NUMBER ONE
+10CFA ; [.1BB9.0020.0002] # OLD HUNGARIAN NUMBER ONE
+10E60 ; [.1BB9.0020.0002] # RUMI DIGIT ONE
+11052 ; [.1BB9.0020.0002] # BRAHMI NUMBER ONE
+11067 ; [.1BB9.0020.0002] # BRAHMI DIGIT ONE
+110F1 ; [.1BB9.0020.0002] # SORA SOMPENG DIGIT ONE
+11137 ; [.1BB9.0020.0002] # CHAKMA DIGIT ONE
+111D1 ; [.1BB9.0020.0002] # SHARADA DIGIT ONE
+111E1 ; [.1BB9.0020.0002] # SINHALA ARCHAIC DIGIT ONE
+112F1 ; [.1BB9.0020.0002] # KHUDAWADI DIGIT ONE
+114D1 ; [.1BB9.0020.0002] # TIRHUTA DIGIT ONE
+11651 ; [.1BB9.0020.0002] # MODI DIGIT ONE
+116C1 ; [.1BB9.0020.0002] # TAKRI DIGIT ONE
+11731 ; [.1BB9.0020.0002] # AHOM DIGIT ONE
+118E1 ; [.1BB9.0020.0002] # WARANG CITI DIGIT ONE
+12415 ; [.1BB9.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESH2
+1241E ; [.1BB9.0020.0002] # CUNEIFORM NUMERIC SIGN ONE GESHU
+1242C ; [.1BB9.0020.0002] # CUNEIFORM NUMERIC SIGN ONE SHARU
+12434 ; [.1BB9.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BURU
+1244F ; [.1BB9.0020.0002] # CUNEIFORM NUMERIC SIGN ONE BAN2
+12458 ; [.1BB9.0020.0002] # CUNEIFORM NUMERIC SIGN ONE ESHE3
+16A61 ; [.1BB9.0020.0002] # MRO DIGIT ONE
+16B51 ; [.1BB9.0020.0002] # PAHAWH HMONG DIGIT ONE
+1D360 ; [.1BB9.0020.0002] # COUNTING ROD UNIT DIGIT ONE
+1E8C7 ; [.1BB9.0020.0002] # MENDE KIKAKUI DIGIT ONE
+FF11 ; [.1BB9.0020.0003] # FULLWIDTH DIGIT ONE
+0F2A ; [.1BB9.0020.0004] # TIBETAN DIGIT HALF ONE
+2474 ; [*0310.0020.0004][.1BB9.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT ONE
+2488 ; [.1BB9.0020.0004][*0274.0020.0004] # DIGIT ONE FULL STOP
+1F102 ; [.1BB9.0020.0004][*0221.0020.0004] # DIGIT ONE COMMA
+1D7CF ; [.1BB9.0020.0005] # MATHEMATICAL BOLD DIGIT ONE
+1D7D9 ; [.1BB9.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
+1D7E3 ; [.1BB9.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT ONE
+1D7ED ; [.1BB9.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
+1D7F7 ; [.1BB9.0020.0005] # MATHEMATICAL MONOSPACE DIGIT ONE
+2460 ; [.1BB9.0020.0006] # CIRCLED DIGIT ONE
+24F5 ; [.1BB9.0020.0006] # DOUBLE CIRCLED DIGIT ONE
+2776 ; [.1BB9.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT ONE
+2780 ; [.1BB9.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT ONE
+278A ; [.1BB9.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
+00B9 ; [.1BB9.0020.0014] # SUPERSCRIPT ONE
+2081 ; [.1BB9.0020.0015] # SUBSCRIPT ONE
+215F ; [.1BB9.0020.001E][*0606.0020.001E] # FRACTION NUMERATOR ONE
+247D ; [*0310.0020.0004][.1BB9.0020.0004][.1BB8.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER TEN
+2491 ; [.1BB9.0020.0004][.1BB8.0020.0004][*0274.0020.0004] # NUMBER TEN FULL STOP
+2469 ; [.1BB9.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER TEN
+24FE ; [.1BB9.0020.0006][.1BB8.0020.0006] # DOUBLE CIRCLED NUMBER TEN
+277F ; [.1BB9.0020.0006][.1BB8.0020.0006] # DINGBAT NEGATIVE CIRCLED NUMBER TEN
+2789 ; [.1BB9.0020.0006][.1BB8.0020.0006] # DINGBAT CIRCLED SANS-SERIF NUMBER TEN
+2793 ; [.1BB9.0020.0006][.1BB8.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+3248 ; [.1BB9.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER TEN ON BLACK SQUARE
+33E9 ; [.1BB9.0020.0004][.1BB8.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+32C9 ; [.1BB9.0020.0004][.1BB8.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+3362 ; [.1BB9.0020.0004][.1BB8.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+247E ; [*0310.0020.0004][.1BB9.0020.0004][.1BB9.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER ELEVEN
+2492 ; [.1BB9.0020.0004][.1BB9.0020.0004][*0274.0020.0004] # NUMBER ELEVEN FULL STOP
+246A ; [.1BB9.0020.0006][.1BB9.0020.0006] # CIRCLED NUMBER ELEVEN
+24EB ; [.1BB9.0020.0006][.1BB9.0020.0006] # NEGATIVE CIRCLED NUMBER ELEVEN
+2152 ; [.1BB9.0020.001E][*0606.0020.001E][.1BB9.0020.001E][.1BB8.0020.001E] # VULGAR FRACTION ONE TENTH
+33EA ; [.1BB9.0020.0004][.1BB9.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+32CA ; [.1BB9.0020.0004][.1BB9.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+3363 ; [.1BB9.0020.0004][.1BB9.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+247F ; [*0310.0020.0004][.1BB9.0020.0004][.1BBA.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER TWELVE
+2493 ; [.1BB9.0020.0004][.1BBA.0020.0004][*0274.0020.0004] # NUMBER TWELVE FULL STOP
+246B ; [.1BB9.0020.0006][.1BBA.0020.0006] # CIRCLED NUMBER TWELVE
+24EC ; [.1BB9.0020.0006][.1BBA.0020.0006] # NEGATIVE CIRCLED NUMBER TWELVE
+00BD ; [.1BB9.0020.001E][*0606.0020.001E][.1BBA.0020.001E] # VULGAR FRACTION ONE HALF
+33EB ; [.1BB9.0020.0004][.1BBA.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+32CB ; [.1BB9.0020.0004][.1BBA.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+3364 ; [.1BB9.0020.0004][.1BBA.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+2480 ; [*0310.0020.0004][.1BB9.0020.0004][.1BBB.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER THIRTEEN
+2494 ; [.1BB9.0020.0004][.1BBB.0020.0004][*0274.0020.0004] # NUMBER THIRTEEN FULL STOP
+246C ; [.1BB9.0020.0006][.1BBB.0020.0006] # CIRCLED NUMBER THIRTEEN
+24ED ; [.1BB9.0020.0006][.1BBB.0020.0006] # NEGATIVE CIRCLED NUMBER THIRTEEN
+2153 ; [.1BB9.0020.001E][*0606.0020.001E][.1BBB.0020.001E] # VULGAR FRACTION ONE THIRD
+33EC ; [.1BB9.0020.0004][.1BBB.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+3365 ; [.1BB9.0020.0004][.1BBB.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+2481 ; [*0310.0020.0004][.1BB9.0020.0004][.1BBC.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER FOURTEEN
+2495 ; [.1BB9.0020.0004][.1BBC.0020.0004][*0274.0020.0004] # NUMBER FOURTEEN FULL STOP
+246D ; [.1BB9.0020.0006][.1BBC.0020.0006] # CIRCLED NUMBER FOURTEEN
+24EE ; [.1BB9.0020.0006][.1BBC.0020.0006] # NEGATIVE CIRCLED NUMBER FOURTEEN
+00BC ; [.1BB9.0020.001E][*0606.0020.001E][.1BBC.0020.001E] # VULGAR FRACTION ONE QUARTER
+33ED ; [.1BB9.0020.0004][.1BBC.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+3366 ; [.1BB9.0020.0004][.1BBC.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+2482 ; [*0310.0020.0004][.1BB9.0020.0004][.1BBD.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER FIFTEEN
+2496 ; [.1BB9.0020.0004][.1BBD.0020.0004][*0274.0020.0004] # NUMBER FIFTEEN FULL STOP
+246E ; [.1BB9.0020.0006][.1BBD.0020.0006] # CIRCLED NUMBER FIFTEEN
+24EF ; [.1BB9.0020.0006][.1BBD.0020.0006] # NEGATIVE CIRCLED NUMBER FIFTEEN
+2155 ; [.1BB9.0020.001E][*0606.0020.001E][.1BBD.0020.001E] # VULGAR FRACTION ONE FIFTH
+33EE ; [.1BB9.0020.0004][.1BBD.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+3367 ; [.1BB9.0020.0004][.1BBD.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+2483 ; [*0310.0020.0004][.1BB9.0020.0004][.1BBE.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER SIXTEEN
+2497 ; [.1BB9.0020.0004][.1BBE.0020.0004][*0274.0020.0004] # NUMBER SIXTEEN FULL STOP
+246F ; [.1BB9.0020.0006][.1BBE.0020.0006] # CIRCLED NUMBER SIXTEEN
+24F0 ; [.1BB9.0020.0006][.1BBE.0020.0006] # NEGATIVE CIRCLED NUMBER SIXTEEN
+2159 ; [.1BB9.0020.001E][*0606.0020.001E][.1BBE.0020.001E] # VULGAR FRACTION ONE SIXTH
+33EF ; [.1BB9.0020.0004][.1BBE.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+3368 ; [.1BB9.0020.0004][.1BBE.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+2484 ; [*0310.0020.0004][.1BB9.0020.0004][.1BBF.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER SEVENTEEN
+2498 ; [.1BB9.0020.0004][.1BBF.0020.0004][*0274.0020.0004] # NUMBER SEVENTEEN FULL STOP
+2470 ; [.1BB9.0020.0006][.1BBF.0020.0006] # CIRCLED NUMBER SEVENTEEN
+24F1 ; [.1BB9.0020.0006][.1BBF.0020.0006] # NEGATIVE CIRCLED NUMBER SEVENTEEN
+2150 ; [.1BB9.0020.001E][*0606.0020.001E][.1BBF.0020.001E] # VULGAR FRACTION ONE SEVENTH
+33F0 ; [.1BB9.0020.0004][.1BBF.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+3369 ; [.1BB9.0020.0004][.1BBF.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+2485 ; [*0310.0020.0004][.1BB9.0020.0004][.1BC0.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER EIGHTEEN
+2499 ; [.1BB9.0020.0004][.1BC0.0020.0004][*0274.0020.0004] # NUMBER EIGHTEEN FULL STOP
+2471 ; [.1BB9.0020.0006][.1BC0.0020.0006] # CIRCLED NUMBER EIGHTEEN
+24F2 ; [.1BB9.0020.0006][.1BC0.0020.0006] # NEGATIVE CIRCLED NUMBER EIGHTEEN
+215B ; [.1BB9.0020.001E][*0606.0020.001E][.1BC0.0020.001E] # VULGAR FRACTION ONE EIGHTH
+33F1 ; [.1BB9.0020.0004][.1BC0.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+336A ; [.1BB9.0020.0004][.1BC0.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+2486 ; [*0310.0020.0004][.1BB9.0020.0004][.1BC1.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER NINETEEN
+249A ; [.1BB9.0020.0004][.1BC1.0020.0004][*0274.0020.0004] # NUMBER NINETEEN FULL STOP
+2472 ; [.1BB9.0020.0006][.1BC1.0020.0006] # CIRCLED NUMBER NINETEEN
+24F3 ; [.1BB9.0020.0006][.1BC1.0020.0006] # NEGATIVE CIRCLED NUMBER NINETEEN
+2151 ; [.1BB9.0020.001E][*0606.0020.001E][.1BC1.0020.001E] # VULGAR FRACTION ONE NINTH
+33F2 ; [.1BB9.0020.0004][.1BC1.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+336B ; [.1BB9.0020.0004][.1BC1.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+33E0 ; [.1BB9.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+32C0 ; [.1BB9.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+3359 ; [.1BB9.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+0032 ; [.1BBA.0020.0002] # DIGIT TWO
+0662 ; [.1BBA.0020.0002] # ARABIC-INDIC DIGIT TWO
+06F2 ; [.1BBA.0020.0002] # EXTENDED ARABIC-INDIC DIGIT TWO
+07C2 ; [.1BBA.0020.0002] # NKO DIGIT TWO
+0968 ; [.1BBA.0020.0002] # DEVANAGARI DIGIT TWO
+09E8 ; [.1BBA.0020.0002] # BENGALI DIGIT TWO
+0A68 ; [.1BBA.0020.0002] # GURMUKHI DIGIT TWO
+0AE8 ; [.1BBA.0020.0002] # GUJARATI DIGIT TWO
+0B68 ; [.1BBA.0020.0002] # ORIYA DIGIT TWO
+0BE8 ; [.1BBA.0020.0002] # TAMIL DIGIT TWO
+0C68 ; [.1BBA.0020.0002] # TELUGU DIGIT TWO
+0C7A ; [.1BBA.0020.0002] # TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR
+0C7D ; [.1BBA.0020.0002] # TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
+0CE8 ; [.1BBA.0020.0002] # KANNADA DIGIT TWO
+0D68 ; [.1BBA.0020.0002] # MALAYALAM DIGIT TWO
+0DE8 ; [.1BBA.0020.0002] # SINHALA LITH DIGIT TWO
+0E52 ; [.1BBA.0020.0002] # THAI DIGIT TWO
+0ED2 ; [.1BBA.0020.0002] # LAO DIGIT TWO
+0F22 ; [.1BBA.0020.0002] # TIBETAN DIGIT TWO
+1042 ; [.1BBA.0020.0002] # MYANMAR DIGIT TWO
+1092 ; [.1BBA.0020.0002] # MYANMAR SHAN DIGIT TWO
+136A ; [.1BBA.0020.0002] # ETHIOPIC DIGIT TWO
+17E2 ; [.1BBA.0020.0002] # KHMER DIGIT TWO
+17F2 ; [.1BBA.0020.0002] # KHMER SYMBOL LEK ATTAK PII
+1812 ; [.1BBA.0020.0002] # MONGOLIAN DIGIT TWO
+1948 ; [.1BBA.0020.0002] # LIMBU DIGIT TWO
+19D2 ; [.1BBA.0020.0002] # NEW TAI LUE DIGIT TWO
+1A82 ; [.1BBA.0020.0002] # TAI THAM HORA DIGIT TWO
+1A92 ; [.1BBA.0020.0002] # TAI THAM THAM DIGIT TWO
+1B52 ; [.1BBA.0020.0002] # BALINESE DIGIT TWO
+1BB2 ; [.1BBA.0020.0002] # SUNDANESE DIGIT TWO
+1C42 ; [.1BBA.0020.0002] # LEPCHA DIGIT TWO
+1C52 ; [.1BBA.0020.0002] # OL CHIKI DIGIT TWO
+3022 ; [.1BBA.0020.0002] # HANGZHOU NUMERAL TWO
+A622 ; [.1BBA.0020.0002] # VAI DIGIT TWO
+A8D2 ; [.1BBA.0020.0002] # SAURASHTRA DIGIT TWO
+A902 ; [.1BBA.0020.0002] # KAYAH LI DIGIT TWO
+A9D2 ; [.1BBA.0020.0002] # JAVANESE DIGIT TWO
+A9F2 ; [.1BBA.0020.0002] # MYANMAR TAI LAING DIGIT TWO
+AA52 ; [.1BBA.0020.0002] # CHAM DIGIT TWO
+ABF2 ; [.1BBA.0020.0002] # MEETEI MAYEK DIGIT TWO
+10108 ; [.1BBA.0020.0002] # AEGEAN NUMBER TWO
+1015B ; [.1BBA.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO
+1015C ; [.1BBA.0020.0002] # GREEK ACROPHONIC THESPIAN TWO
+1015D ; [.1BBA.0020.0002] # GREEK ACROPHONIC CYRENAIC TWO DRACHMAS
+1015E ; [.1BBA.0020.0002] # GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS
+102E2 ; [.1BBA.0020.0002] # COPTIC EPACT DIGIT TWO
+103D2 ; [.1BBA.0020.0002] # OLD PERSIAN NUMBER TWO
+104A2 ; [.1BBA.0020.0002] # OSMANYA DIGIT TWO
+10859 ; [.1BBA.0020.0002] # IMPERIAL ARAMAIC NUMBER TWO
+1087A ; [.1BBA.0020.0002] # PALMYRENE NUMBER TWO
+108A8 ; [.1BBA.0020.0002] # NABATAEAN NUMBER TWO
+1091A ; [.1BBA.0020.0002] # PHOENICIAN NUMBER TWO
+109C1 ; [.1BBA.0020.0002] # MEROITIC CURSIVE NUMBER TWO
+10A41 ; [.1BBA.0020.0002] # KHAROSHTHI DIGIT TWO
+10B59 ; [.1BBA.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER TWO
+10B79 ; [.1BBA.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER TWO
+10BAA ; [.1BBA.0020.0002] # PSALTER PAHLAVI NUMBER TWO
+10E61 ; [.1BBA.0020.0002] # RUMI DIGIT TWO
+11053 ; [.1BBA.0020.0002] # BRAHMI NUMBER TWO
+11068 ; [.1BBA.0020.0002] # BRAHMI DIGIT TWO
+110F2 ; [.1BBA.0020.0002] # SORA SOMPENG DIGIT TWO
+11138 ; [.1BBA.0020.0002] # CHAKMA DIGIT TWO
+111D2 ; [.1BBA.0020.0002] # SHARADA DIGIT TWO
+111E2 ; [.1BBA.0020.0002] # SINHALA ARCHAIC DIGIT TWO
+112F2 ; [.1BBA.0020.0002] # KHUDAWADI DIGIT TWO
+114D2 ; [.1BBA.0020.0002] # TIRHUTA DIGIT TWO
+11652 ; [.1BBA.0020.0002] # MODI DIGIT TWO
+116C2 ; [.1BBA.0020.0002] # TAKRI DIGIT TWO
+11732 ; [.1BBA.0020.0002] # AHOM DIGIT TWO
+118E2 ; [.1BBA.0020.0002] # WARANG CITI DIGIT TWO
+12400 ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH
+12416 ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESH2
+1241F ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO GESHU
+12423 ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHAR2
+1242D ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO SHARU
+12435 ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BURU
+1244A ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ASH TENU
+12450 ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO BAN2
+12456 ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAMIN
+12459 ; [.1BBA.0020.0002] # CUNEIFORM NUMERIC SIGN TWO ESHE3
+16A62 ; [.1BBA.0020.0002] # MRO DIGIT TWO
+16B52 ; [.1BBA.0020.0002] # PAHAWH HMONG DIGIT TWO
+1D361 ; [.1BBA.0020.0002] # COUNTING ROD UNIT DIGIT TWO
+1E8C8 ; [.1BBA.0020.0002] # MENDE KIKAKUI DIGIT TWO
+FF12 ; [.1BBA.0020.0003] # FULLWIDTH DIGIT TWO
+0F2B ; [.1BBA.0020.0004] # TIBETAN DIGIT HALF TWO
+2475 ; [*0310.0020.0004][.1BBA.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT TWO
+2489 ; [.1BBA.0020.0004][*0274.0020.0004] # DIGIT TWO FULL STOP
+1F103 ; [.1BBA.0020.0004][*0221.0020.0004] # DIGIT TWO COMMA
+1D7D0 ; [.1BBA.0020.0005] # MATHEMATICAL BOLD DIGIT TWO
+1D7DA ; [.1BBA.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
+1D7E4 ; [.1BBA.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT TWO
+1D7EE ; [.1BBA.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
+1D7F8 ; [.1BBA.0020.0005] # MATHEMATICAL MONOSPACE DIGIT TWO
+2461 ; [.1BBA.0020.0006] # CIRCLED DIGIT TWO
+24F6 ; [.1BBA.0020.0006] # DOUBLE CIRCLED DIGIT TWO
+2777 ; [.1BBA.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT TWO
+2781 ; [.1BBA.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT TWO
+278B ; [.1BBA.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
+00B2 ; [.1BBA.0020.0014] # SUPERSCRIPT TWO
+2082 ; [.1BBA.0020.0015] # SUBSCRIPT TWO
+2487 ; [*0310.0020.0004][.1BBA.0020.0004][.1BB8.0020.0004][*0311.0020.0004] # PARENTHESIZED NUMBER TWENTY
+249B ; [.1BBA.0020.0004][.1BB8.0020.0004][*0274.0020.0004] # NUMBER TWENTY FULL STOP
+2473 ; [.1BBA.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER TWENTY
+24F4 ; [.1BBA.0020.0006][.1BB8.0020.0006] # NEGATIVE CIRCLED NUMBER TWENTY
+3249 ; [.1BBA.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER TWENTY ON BLACK SQUARE
+33F3 ; [.1BBA.0020.0004][.1BB8.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+336C ; [.1BBA.0020.0004][.1BB8.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+3251 ; [.1BBA.0020.0006][.1BB9.0020.0006] # CIRCLED NUMBER TWENTY ONE
+33F4 ; [.1BBA.0020.0004][.1BB9.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+336D ; [.1BBA.0020.0004][.1BB9.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+3252 ; [.1BBA.0020.0006][.1BBA.0020.0006] # CIRCLED NUMBER TWENTY TWO
+33F5 ; [.1BBA.0020.0004][.1BBA.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+336E ; [.1BBA.0020.0004][.1BBA.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+3253 ; [.1BBA.0020.0006][.1BBB.0020.0006] # CIRCLED NUMBER TWENTY THREE
+2154 ; [.1BBA.0020.001E][*0606.0020.001E][.1BBB.0020.001E] # VULGAR FRACTION TWO THIRDS
+33F6 ; [.1BBA.0020.0004][.1BBB.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+336F ; [.1BBA.0020.0004][.1BBB.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+3254 ; [.1BBA.0020.0006][.1BBC.0020.0006] # CIRCLED NUMBER TWENTY FOUR
+33F7 ; [.1BBA.0020.0004][.1BBC.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+3370 ; [.1BBA.0020.0004][.1BBC.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3255 ; [.1BBA.0020.0006][.1BBD.0020.0006] # CIRCLED NUMBER TWENTY FIVE
+2156 ; [.1BBA.0020.001E][*0606.0020.001E][.1BBD.0020.001E] # VULGAR FRACTION TWO FIFTHS
+33F8 ; [.1BBA.0020.0004][.1BBD.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+3256 ; [.1BBA.0020.0006][.1BBE.0020.0006] # CIRCLED NUMBER TWENTY SIX
+33F9 ; [.1BBA.0020.0004][.1BBE.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+3257 ; [.1BBA.0020.0006][.1BBF.0020.0006] # CIRCLED NUMBER TWENTY SEVEN
+33FA ; [.1BBA.0020.0004][.1BBF.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+3258 ; [.1BBA.0020.0006][.1BC0.0020.0006] # CIRCLED NUMBER TWENTY EIGHT
+33FB ; [.1BBA.0020.0004][.1BC0.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+3259 ; [.1BBA.0020.0006][.1BC1.0020.0006] # CIRCLED NUMBER TWENTY NINE
+33FC ; [.1BBA.0020.0004][.1BC1.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33E1 ; [.1BBA.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+32C1 ; [.1BBA.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+335A ; [.1BBA.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+0033 ; [.1BBB.0020.0002] # DIGIT THREE
+0663 ; [.1BBB.0020.0002] # ARABIC-INDIC DIGIT THREE
+06F3 ; [.1BBB.0020.0002] # EXTENDED ARABIC-INDIC DIGIT THREE
+07C3 ; [.1BBB.0020.0002] # NKO DIGIT THREE
+0969 ; [.1BBB.0020.0002] # DEVANAGARI DIGIT THREE
+09E9 ; [.1BBB.0020.0002] # BENGALI DIGIT THREE
+0A69 ; [.1BBB.0020.0002] # GURMUKHI DIGIT THREE
+0AE9 ; [.1BBB.0020.0002] # GUJARATI DIGIT THREE
+0B69 ; [.1BBB.0020.0002] # ORIYA DIGIT THREE
+0BE9 ; [.1BBB.0020.0002] # TAMIL DIGIT THREE
+0C69 ; [.1BBB.0020.0002] # TELUGU DIGIT THREE
+0C7B ; [.1BBB.0020.0002] # TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR
+0C7E ; [.1BBB.0020.0002] # TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0CE9 ; [.1BBB.0020.0002] # KANNADA DIGIT THREE
+0D69 ; [.1BBB.0020.0002] # MALAYALAM DIGIT THREE
+0DE9 ; [.1BBB.0020.0002] # SINHALA LITH DIGIT THREE
+0E53 ; [.1BBB.0020.0002] # THAI DIGIT THREE
+0ED3 ; [.1BBB.0020.0002] # LAO DIGIT THREE
+0F23 ; [.1BBB.0020.0002] # TIBETAN DIGIT THREE
+1043 ; [.1BBB.0020.0002] # MYANMAR DIGIT THREE
+1093 ; [.1BBB.0020.0002] # MYANMAR SHAN DIGIT THREE
+136B ; [.1BBB.0020.0002] # ETHIOPIC DIGIT THREE
+17E3 ; [.1BBB.0020.0002] # KHMER DIGIT THREE
+17F3 ; [.1BBB.0020.0002] # KHMER SYMBOL LEK ATTAK BEI
+1813 ; [.1BBB.0020.0002] # MONGOLIAN DIGIT THREE
+1949 ; [.1BBB.0020.0002] # LIMBU DIGIT THREE
+19D3 ; [.1BBB.0020.0002] # NEW TAI LUE DIGIT THREE
+1A83 ; [.1BBB.0020.0002] # TAI THAM HORA DIGIT THREE
+1A93 ; [.1BBB.0020.0002] # TAI THAM THAM DIGIT THREE
+1B53 ; [.1BBB.0020.0002] # BALINESE DIGIT THREE
+1BB3 ; [.1BBB.0020.0002] # SUNDANESE DIGIT THREE
+1C43 ; [.1BBB.0020.0002] # LEPCHA DIGIT THREE
+1C53 ; [.1BBB.0020.0002] # OL CHIKI DIGIT THREE
+3023 ; [.1BBB.0020.0002] # HANGZHOU NUMERAL THREE
+A623 ; [.1BBB.0020.0002] # VAI DIGIT THREE
+A8D3 ; [.1BBB.0020.0002] # SAURASHTRA DIGIT THREE
+A903 ; [.1BBB.0020.0002] # KAYAH LI DIGIT THREE
+A9D3 ; [.1BBB.0020.0002] # JAVANESE DIGIT THREE
+A9F3 ; [.1BBB.0020.0002] # MYANMAR TAI LAING DIGIT THREE
+AA53 ; [.1BBB.0020.0002] # CHAM DIGIT THREE
+ABF3 ; [.1BBB.0020.0002] # MEETEI MAYEK DIGIT THREE
+10109 ; [.1BBB.0020.0002] # AEGEAN NUMBER THREE
+102E3 ; [.1BBB.0020.0002] # COPTIC EPACT DIGIT THREE
+104A3 ; [.1BBB.0020.0002] # OSMANYA DIGIT THREE
+1085A ; [.1BBB.0020.0002] # IMPERIAL ARAMAIC NUMBER THREE
+1087B ; [.1BBB.0020.0002] # PALMYRENE NUMBER THREE
+108A9 ; [.1BBB.0020.0002] # NABATAEAN NUMBER THREE
+1091B ; [.1BBB.0020.0002] # PHOENICIAN NUMBER THREE
+109C2 ; [.1BBB.0020.0002] # MEROITIC CURSIVE NUMBER THREE
+10A42 ; [.1BBB.0020.0002] # KHAROSHTHI DIGIT THREE
+10B5A ; [.1BBB.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER THREE
+10B7A ; [.1BBB.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER THREE
+10BAB ; [.1BBB.0020.0002] # PSALTER PAHLAVI NUMBER THREE
+10E62 ; [.1BBB.0020.0002] # RUMI DIGIT THREE
+11054 ; [.1BBB.0020.0002] # BRAHMI NUMBER THREE
+11069 ; [.1BBB.0020.0002] # BRAHMI DIGIT THREE
+110F3 ; [.1BBB.0020.0002] # SORA SOMPENG DIGIT THREE
+11139 ; [.1BBB.0020.0002] # CHAKMA DIGIT THREE
+111D3 ; [.1BBB.0020.0002] # SHARADA DIGIT THREE
+111E3 ; [.1BBB.0020.0002] # SINHALA ARCHAIC DIGIT THREE
+112F3 ; [.1BBB.0020.0002] # KHUDAWADI DIGIT THREE
+114D3 ; [.1BBB.0020.0002] # TIRHUTA DIGIT THREE
+11653 ; [.1BBB.0020.0002] # MODI DIGIT THREE
+116C3 ; [.1BBB.0020.0002] # TAKRI DIGIT THREE
+11733 ; [.1BBB.0020.0002] # AHOM DIGIT THREE
+118E3 ; [.1BBB.0020.0002] # WARANG CITI DIGIT THREE
+12401 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH
+12408 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE DISH
+12417 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESH2
+12420 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE GESHU
+12424 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2
+12425 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
+1242E ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU
+1242F ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
+12436 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU
+12437 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
+1243A ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16
+1243B ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
+1244B ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE ASH TENU
+12451 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN THREE BAN2
+12457 ; [.1BBB.0020.0002] # CUNEIFORM NUMERIC SIGN NIGIDAESH
+16A63 ; [.1BBB.0020.0002] # MRO DIGIT THREE
+16B53 ; [.1BBB.0020.0002] # PAHAWH HMONG DIGIT THREE
+1D362 ; [.1BBB.0020.0002] # COUNTING ROD UNIT DIGIT THREE
+1E8C9 ; [.1BBB.0020.0002] # MENDE KIKAKUI DIGIT THREE
+FF13 ; [.1BBB.0020.0003] # FULLWIDTH DIGIT THREE
+0F2C ; [.1BBB.0020.0004] # TIBETAN DIGIT HALF THREE
+2476 ; [*0310.0020.0004][.1BBB.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT THREE
+248A ; [.1BBB.0020.0004][*0274.0020.0004] # DIGIT THREE FULL STOP
+1F104 ; [.1BBB.0020.0004][*0221.0020.0004] # DIGIT THREE COMMA
+1D7D1 ; [.1BBB.0020.0005] # MATHEMATICAL BOLD DIGIT THREE
+1D7DB ; [.1BBB.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
+1D7E5 ; [.1BBB.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT THREE
+1D7EF ; [.1BBB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
+1D7F9 ; [.1BBB.0020.0005] # MATHEMATICAL MONOSPACE DIGIT THREE
+2462 ; [.1BBB.0020.0006] # CIRCLED DIGIT THREE
+24F7 ; [.1BBB.0020.0006] # DOUBLE CIRCLED DIGIT THREE
+2778 ; [.1BBB.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT THREE
+2782 ; [.1BBB.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT THREE
+278C ; [.1BBB.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
+00B3 ; [.1BBB.0020.0014] # SUPERSCRIPT THREE
+2083 ; [.1BBB.0020.0015] # SUBSCRIPT THREE
+324A ; [.1BBB.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER THIRTY ON BLACK SQUARE
+325A ; [.1BBB.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER THIRTY
+33FD ; [.1BBB.0020.0004][.1BB8.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+325B ; [.1BBB.0020.0006][.1BB9.0020.0006] # CIRCLED NUMBER THIRTY ONE
+33FE ; [.1BBB.0020.0004][.1BB9.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+325C ; [.1BBB.0020.0006][.1BBA.0020.0006] # CIRCLED NUMBER THIRTY TWO
+325D ; [.1BBB.0020.0006][.1BBB.0020.0006] # CIRCLED NUMBER THIRTY THREE
+325E ; [.1BBB.0020.0006][.1BBC.0020.0006] # CIRCLED NUMBER THIRTY FOUR
+00BE ; [.1BBB.0020.001E][*0606.0020.001E][.1BBC.0020.001E] # VULGAR FRACTION THREE QUARTERS
+325F ; [.1BBB.0020.0006][.1BBD.0020.0006] # CIRCLED NUMBER THIRTY FIVE
+2157 ; [.1BBB.0020.001E][*0606.0020.001E][.1BBD.0020.001E] # VULGAR FRACTION THREE FIFTHS
+32B1 ; [.1BBB.0020.0006][.1BBE.0020.0006] # CIRCLED NUMBER THIRTY SIX
+32B2 ; [.1BBB.0020.0006][.1BBF.0020.0006] # CIRCLED NUMBER THIRTY SEVEN
+32B3 ; [.1BBB.0020.0006][.1BC0.0020.0006] # CIRCLED NUMBER THIRTY EIGHT
+215C ; [.1BBB.0020.001E][*0606.0020.001E][.1BC0.0020.001E] # VULGAR FRACTION THREE EIGHTHS
+32B4 ; [.1BBB.0020.0006][.1BC1.0020.0006] # CIRCLED NUMBER THIRTY NINE
+33E2 ; [.1BBB.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+32C2 ; [.1BBB.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+335B ; [.1BBB.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+0034 ; [.1BBC.0020.0002] # DIGIT FOUR
+0664 ; [.1BBC.0020.0002] # ARABIC-INDIC DIGIT FOUR
+06F4 ; [.1BBC.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FOUR
+07C4 ; [.1BBC.0020.0002] # NKO DIGIT FOUR
+096A ; [.1BBC.0020.0002] # DEVANAGARI DIGIT FOUR
+09EA ; [.1BBC.0020.0002] # BENGALI DIGIT FOUR
+0A6A ; [.1BBC.0020.0002] # GURMUKHI DIGIT FOUR
+0AEA ; [.1BBC.0020.0002] # GUJARATI DIGIT FOUR
+0B6A ; [.1BBC.0020.0002] # ORIYA DIGIT FOUR
+0BEA ; [.1BBC.0020.0002] # TAMIL DIGIT FOUR
+0C6A ; [.1BBC.0020.0002] # TELUGU DIGIT FOUR
+0CEA ; [.1BBC.0020.0002] # KANNADA DIGIT FOUR
+0D6A ; [.1BBC.0020.0002] # MALAYALAM DIGIT FOUR
+0DEA ; [.1BBC.0020.0002] # SINHALA LITH DIGIT FOUR
+0E54 ; [.1BBC.0020.0002] # THAI DIGIT FOUR
+0ED4 ; [.1BBC.0020.0002] # LAO DIGIT FOUR
+0F24 ; [.1BBC.0020.0002] # TIBETAN DIGIT FOUR
+1044 ; [.1BBC.0020.0002] # MYANMAR DIGIT FOUR
+1094 ; [.1BBC.0020.0002] # MYANMAR SHAN DIGIT FOUR
+136C ; [.1BBC.0020.0002] # ETHIOPIC DIGIT FOUR
+17E4 ; [.1BBC.0020.0002] # KHMER DIGIT FOUR
+17F4 ; [.1BBC.0020.0002] # KHMER SYMBOL LEK ATTAK BUON
+1814 ; [.1BBC.0020.0002] # MONGOLIAN DIGIT FOUR
+194A ; [.1BBC.0020.0002] # LIMBU DIGIT FOUR
+19D4 ; [.1BBC.0020.0002] # NEW TAI LUE DIGIT FOUR
+1A84 ; [.1BBC.0020.0002] # TAI THAM HORA DIGIT FOUR
+1A94 ; [.1BBC.0020.0002] # TAI THAM THAM DIGIT FOUR
+1B54 ; [.1BBC.0020.0002] # BALINESE DIGIT FOUR
+1BB4 ; [.1BBC.0020.0002] # SUNDANESE DIGIT FOUR
+1C44 ; [.1BBC.0020.0002] # LEPCHA DIGIT FOUR
+1C54 ; [.1BBC.0020.0002] # OL CHIKI DIGIT FOUR
+3024 ; [.1BBC.0020.0002] # HANGZHOU NUMERAL FOUR
+A624 ; [.1BBC.0020.0002] # VAI DIGIT FOUR
+A8D4 ; [.1BBC.0020.0002] # SAURASHTRA DIGIT FOUR
+A904 ; [.1BBC.0020.0002] # KAYAH LI DIGIT FOUR
+A9D4 ; [.1BBC.0020.0002] # JAVANESE DIGIT FOUR
+A9F4 ; [.1BBC.0020.0002] # MYANMAR TAI LAING DIGIT FOUR
+AA54 ; [.1BBC.0020.0002] # CHAM DIGIT FOUR
+ABF4 ; [.1BBC.0020.0002] # MEETEI MAYEK DIGIT FOUR
+1010A ; [.1BBC.0020.0002] # AEGEAN NUMBER FOUR
+102E4 ; [.1BBC.0020.0002] # COPTIC EPACT DIGIT FOUR
+104A4 ; [.1BBC.0020.0002] # OSMANYA DIGIT FOUR
+1087C ; [.1BBC.0020.0002] # PALMYRENE NUMBER FOUR
+108AA ; [.1BBC.0020.0002] # NABATAEAN NUMBER FOUR
+108AB ; [.1BBC.0020.0002] # NABATAEAN CRUCIFORM NUMBER FOUR
+109C3 ; [.1BBC.0020.0002] # MEROITIC CURSIVE NUMBER FOUR
+10A43 ; [.1BBC.0020.0002] # KHAROSHTHI DIGIT FOUR
+10B5B ; [.1BBC.0020.0002] # INSCRIPTIONAL PARTHIAN NUMBER FOUR
+10B7B ; [.1BBC.0020.0002] # INSCRIPTIONAL PAHLAVI NUMBER FOUR
+10BAC ; [.1BBC.0020.0002] # PSALTER PAHLAVI NUMBER FOUR
+10E63 ; [.1BBC.0020.0002] # RUMI DIGIT FOUR
+11055 ; [.1BBC.0020.0002] # BRAHMI NUMBER FOUR
+1106A ; [.1BBC.0020.0002] # BRAHMI DIGIT FOUR
+110F4 ; [.1BBC.0020.0002] # SORA SOMPENG DIGIT FOUR
+1113A ; [.1BBC.0020.0002] # CHAKMA DIGIT FOUR
+111D4 ; [.1BBC.0020.0002] # SHARADA DIGIT FOUR
+111E4 ; [.1BBC.0020.0002] # SINHALA ARCHAIC DIGIT FOUR
+112F4 ; [.1BBC.0020.0002] # KHUDAWADI DIGIT FOUR
+114D4 ; [.1BBC.0020.0002] # TIRHUTA DIGIT FOUR
+11654 ; [.1BBC.0020.0002] # MODI DIGIT FOUR
+116C4 ; [.1BBC.0020.0002] # TAKRI DIGIT FOUR
+11734 ; [.1BBC.0020.0002] # AHOM DIGIT FOUR
+118E4 ; [.1BBC.0020.0002] # WARANG CITI DIGIT FOUR
+12402 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH
+12409 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR DISH
+1240F ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U
+12418 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESH2
+12421 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR GESHU
+12426 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHAR2
+12430 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR SHARU
+12438 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BURU
+1243C ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU
+1243D ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4
+1243E ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A
+1243F ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
+1244C ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR ASH TENU
+12452 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2
+12453 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
+12469 ; [.1BBC.0020.0002] # CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM
+16A64 ; [.1BBC.0020.0002] # MRO DIGIT FOUR
+16B54 ; [.1BBC.0020.0002] # PAHAWH HMONG DIGIT FOUR
+1D363 ; [.1BBC.0020.0002] # COUNTING ROD UNIT DIGIT FOUR
+1E8CA ; [.1BBC.0020.0002] # MENDE KIKAKUI DIGIT FOUR
+FF14 ; [.1BBC.0020.0003] # FULLWIDTH DIGIT FOUR
+0F2D ; [.1BBC.0020.0004] # TIBETAN DIGIT HALF FOUR
+2477 ; [*0310.0020.0004][.1BBC.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT FOUR
+248B ; [.1BBC.0020.0004][*0274.0020.0004] # DIGIT FOUR FULL STOP
+1F105 ; [.1BBC.0020.0004][*0221.0020.0004] # DIGIT FOUR COMMA
+1D7D2 ; [.1BBC.0020.0005] # MATHEMATICAL BOLD DIGIT FOUR
+1D7DC ; [.1BBC.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
+1D7E6 ; [.1BBC.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FOUR
+1D7F0 ; [.1BBC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
+1D7FA ; [.1BBC.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FOUR
+2463 ; [.1BBC.0020.0006] # CIRCLED DIGIT FOUR
+24F8 ; [.1BBC.0020.0006] # DOUBLE CIRCLED DIGIT FOUR
+2779 ; [.1BBC.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FOUR
+2783 ; [.1BBC.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
+278D ; [.1BBC.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
+2074 ; [.1BBC.0020.0014] # SUPERSCRIPT FOUR
+2084 ; [.1BBC.0020.0015] # SUBSCRIPT FOUR
+324B ; [.1BBC.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER FORTY ON BLACK SQUARE
+32B5 ; [.1BBC.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER FORTY
+32B6 ; [.1BBC.0020.0006][.1BB9.0020.0006] # CIRCLED NUMBER FORTY ONE
+32B7 ; [.1BBC.0020.0006][.1BBA.0020.0006] # CIRCLED NUMBER FORTY TWO
+32B8 ; [.1BBC.0020.0006][.1BBB.0020.0006] # CIRCLED NUMBER FORTY THREE
+32B9 ; [.1BBC.0020.0006][.1BBC.0020.0006] # CIRCLED NUMBER FORTY FOUR
+32BA ; [.1BBC.0020.0006][.1BBD.0020.0006] # CIRCLED NUMBER FORTY FIVE
+2158 ; [.1BBC.0020.001E][*0606.0020.001E][.1BBD.0020.001E] # VULGAR FRACTION FOUR FIFTHS
+32BB ; [.1BBC.0020.0006][.1BBE.0020.0006] # CIRCLED NUMBER FORTY SIX
+32BC ; [.1BBC.0020.0006][.1BBF.0020.0006] # CIRCLED NUMBER FORTY SEVEN
+32BD ; [.1BBC.0020.0006][.1BC0.0020.0006] # CIRCLED NUMBER FORTY EIGHT
+32BE ; [.1BBC.0020.0006][.1BC1.0020.0006] # CIRCLED NUMBER FORTY NINE
+33E3 ; [.1BBC.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+32C3 ; [.1BBC.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+335C ; [.1BBC.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+0035 ; [.1BBD.0020.0002] # DIGIT FIVE
+0665 ; [.1BBD.0020.0002] # ARABIC-INDIC DIGIT FIVE
+06F5 ; [.1BBD.0020.0002] # EXTENDED ARABIC-INDIC DIGIT FIVE
+07C5 ; [.1BBD.0020.0002] # NKO DIGIT FIVE
+096B ; [.1BBD.0020.0002] # DEVANAGARI DIGIT FIVE
+09EB ; [.1BBD.0020.0002] # BENGALI DIGIT FIVE
+0A6B ; [.1BBD.0020.0002] # GURMUKHI DIGIT FIVE
+0AEB ; [.1BBD.0020.0002] # GUJARATI DIGIT FIVE
+0B6B ; [.1BBD.0020.0002] # ORIYA DIGIT FIVE
+0BEB ; [.1BBD.0020.0002] # TAMIL DIGIT FIVE
+0C6B ; [.1BBD.0020.0002] # TELUGU DIGIT FIVE
+0CEB ; [.1BBD.0020.0002] # KANNADA DIGIT FIVE
+0D6B ; [.1BBD.0020.0002] # MALAYALAM DIGIT FIVE
+0DEB ; [.1BBD.0020.0002] # SINHALA LITH DIGIT FIVE
+0E55 ; [.1BBD.0020.0002] # THAI DIGIT FIVE
+0ED5 ; [.1BBD.0020.0002] # LAO DIGIT FIVE
+0F25 ; [.1BBD.0020.0002] # TIBETAN DIGIT FIVE
+1045 ; [.1BBD.0020.0002] # MYANMAR DIGIT FIVE
+1095 ; [.1BBD.0020.0002] # MYANMAR SHAN DIGIT FIVE
+136D ; [.1BBD.0020.0002] # ETHIOPIC DIGIT FIVE
+17E5 ; [.1BBD.0020.0002] # KHMER DIGIT FIVE
+17F5 ; [.1BBD.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM
+1815 ; [.1BBD.0020.0002] # MONGOLIAN DIGIT FIVE
+194B ; [.1BBD.0020.0002] # LIMBU DIGIT FIVE
+19D5 ; [.1BBD.0020.0002] # NEW TAI LUE DIGIT FIVE
+1A85 ; [.1BBD.0020.0002] # TAI THAM HORA DIGIT FIVE
+1A95 ; [.1BBD.0020.0002] # TAI THAM THAM DIGIT FIVE
+1B55 ; [.1BBD.0020.0002] # BALINESE DIGIT FIVE
+1BB5 ; [.1BBD.0020.0002] # SUNDANESE DIGIT FIVE
+1C45 ; [.1BBD.0020.0002] # LEPCHA DIGIT FIVE
+1C55 ; [.1BBD.0020.0002] # OL CHIKI DIGIT FIVE
+3025 ; [.1BBD.0020.0002] # HANGZHOU NUMERAL FIVE
+A625 ; [.1BBD.0020.0002] # VAI DIGIT FIVE
+A8D5 ; [.1BBD.0020.0002] # SAURASHTRA DIGIT FIVE
+A905 ; [.1BBD.0020.0002] # KAYAH LI DIGIT FIVE
+A9D5 ; [.1BBD.0020.0002] # JAVANESE DIGIT FIVE
+A9F5 ; [.1BBD.0020.0002] # MYANMAR TAI LAING DIGIT FIVE
+AA55 ; [.1BBD.0020.0002] # CHAM DIGIT FIVE
+ABF5 ; [.1BBD.0020.0002] # MEETEI MAYEK DIGIT FIVE
+1010B ; [.1BBD.0020.0002] # AEGEAN NUMBER FIVE
+10143 ; [.1BBD.0020.0002] # GREEK ACROPHONIC ATTIC FIVE
+10148 ; [.1BBD.0020.0002] # GREEK ACROPHONIC ATTIC FIVE TALENTS
+1014F ; [.1BBD.0020.0002] # GREEK ACROPHONIC ATTIC FIVE STATERS
+1015F ; [.1BBD.0020.0002] # GREEK ACROPHONIC TROEZENIAN FIVE
+10173 ; [.1BBD.0020.0002] # GREEK ACROPHONIC DELPHIC FIVE MNAS
+102E5 ; [.1BBD.0020.0002] # COPTIC EPACT DIGIT FIVE
+10321 ; [.1BBD.0020.0002] # OLD ITALIC NUMERAL FIVE
+104A5 ; [.1BBD.0020.0002] # OSMANYA DIGIT FIVE
+1087D ; [.1BBD.0020.0002] # PALMYRENE NUMBER FIVE
+108AC ; [.1BBD.0020.0002] # NABATAEAN NUMBER FIVE
+108FC ; [.1BBD.0020.0002] # HATRAN NUMBER FIVE
+109C4 ; [.1BBD.0020.0002] # MEROITIC CURSIVE NUMBER FIVE
+10AEC ; [.1BBD.0020.0002] # MANICHAEAN NUMBER FIVE
+10CFB ; [.1BBD.0020.0002] # OLD HUNGARIAN NUMBER FIVE
+10E64 ; [.1BBD.0020.0002] # RUMI DIGIT FIVE
+11056 ; [.1BBD.0020.0002] # BRAHMI NUMBER FIVE
+1106B ; [.1BBD.0020.0002] # BRAHMI DIGIT FIVE
+110F5 ; [.1BBD.0020.0002] # SORA SOMPENG DIGIT FIVE
+1113B ; [.1BBD.0020.0002] # CHAKMA DIGIT FIVE
+111D5 ; [.1BBD.0020.0002] # SHARADA DIGIT FIVE
+111E5 ; [.1BBD.0020.0002] # SINHALA ARCHAIC DIGIT FIVE
+112F5 ; [.1BBD.0020.0002] # KHUDAWADI DIGIT FIVE
+114D5 ; [.1BBD.0020.0002] # TIRHUTA DIGIT FIVE
+11655 ; [.1BBD.0020.0002] # MODI DIGIT FIVE
+116C5 ; [.1BBD.0020.0002] # TAKRI DIGIT FIVE
+11735 ; [.1BBD.0020.0002] # AHOM DIGIT FIVE
+118E5 ; [.1BBD.0020.0002] # WARANG CITI DIGIT FIVE
+12403 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH
+1240A ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE DISH
+12410 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U
+12419 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESH2
+12422 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE GESHU
+12427 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHAR2
+12431 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE SHARU
+12439 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BURU
+1244D ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE ASH TENU
+12454 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2
+12455 ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
+1246A ; [.1BBD.0020.0002] # CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM
+16A65 ; [.1BBD.0020.0002] # MRO DIGIT FIVE
+16B55 ; [.1BBD.0020.0002] # PAHAWH HMONG DIGIT FIVE
+1D364 ; [.1BBD.0020.0002] # COUNTING ROD UNIT DIGIT FIVE
+1E8CB ; [.1BBD.0020.0002] # MENDE KIKAKUI DIGIT FIVE
+FF15 ; [.1BBD.0020.0003] # FULLWIDTH DIGIT FIVE
+0F2E ; [.1BBD.0020.0004] # TIBETAN DIGIT HALF FIVE
+2478 ; [*0310.0020.0004][.1BBD.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT FIVE
+248C ; [.1BBD.0020.0004][*0274.0020.0004] # DIGIT FIVE FULL STOP
+1F106 ; [.1BBD.0020.0004][*0221.0020.0004] # DIGIT FIVE COMMA
+1D7D3 ; [.1BBD.0020.0005] # MATHEMATICAL BOLD DIGIT FIVE
+1D7DD ; [.1BBD.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
+1D7E7 ; [.1BBD.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT FIVE
+1D7F1 ; [.1BBD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
+1D7FB ; [.1BBD.0020.0005] # MATHEMATICAL MONOSPACE DIGIT FIVE
+2464 ; [.1BBD.0020.0006] # CIRCLED DIGIT FIVE
+24F9 ; [.1BBD.0020.0006] # DOUBLE CIRCLED DIGIT FIVE
+277A ; [.1BBD.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT FIVE
+2784 ; [.1BBD.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
+278E ; [.1BBD.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
+2075 ; [.1BBD.0020.0014] # SUPERSCRIPT FIVE
+2085 ; [.1BBD.0020.0015] # SUBSCRIPT FIVE
+324C ; [.1BBD.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER FIFTY ON BLACK SQUARE
+32BF ; [.1BBD.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER FIFTY
+215A ; [.1BBD.0020.001E][*0606.0020.001E][.1BBE.0020.001E] # VULGAR FRACTION FIVE SIXTHS
+215D ; [.1BBD.0020.001E][*0606.0020.001E][.1BC0.0020.001E] # VULGAR FRACTION FIVE EIGHTHS
+33E4 ; [.1BBD.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+32C4 ; [.1BBD.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+335D ; [.1BBD.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+0036 ; [.1BBE.0020.0002] # DIGIT SIX
+0666 ; [.1BBE.0020.0002] # ARABIC-INDIC DIGIT SIX
+06F6 ; [.1BBE.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SIX
+07C6 ; [.1BBE.0020.0002] # NKO DIGIT SIX
+096C ; [.1BBE.0020.0002] # DEVANAGARI DIGIT SIX
+09EC ; [.1BBE.0020.0002] # BENGALI DIGIT SIX
+0A6C ; [.1BBE.0020.0002] # GURMUKHI DIGIT SIX
+0AEC ; [.1BBE.0020.0002] # GUJARATI DIGIT SIX
+0B6C ; [.1BBE.0020.0002] # ORIYA DIGIT SIX
+0BEC ; [.1BBE.0020.0002] # TAMIL DIGIT SIX
+0C6C ; [.1BBE.0020.0002] # TELUGU DIGIT SIX
+0CEC ; [.1BBE.0020.0002] # KANNADA DIGIT SIX
+0D6C ; [.1BBE.0020.0002] # MALAYALAM DIGIT SIX
+0DEC ; [.1BBE.0020.0002] # SINHALA LITH DIGIT SIX
+0E56 ; [.1BBE.0020.0002] # THAI DIGIT SIX
+0ED6 ; [.1BBE.0020.0002] # LAO DIGIT SIX
+0F26 ; [.1BBE.0020.0002] # TIBETAN DIGIT SIX
+1046 ; [.1BBE.0020.0002] # MYANMAR DIGIT SIX
+1096 ; [.1BBE.0020.0002] # MYANMAR SHAN DIGIT SIX
+136E ; [.1BBE.0020.0002] # ETHIOPIC DIGIT SIX
+17E6 ; [.1BBE.0020.0002] # KHMER DIGIT SIX
+17F6 ; [.1BBE.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-MUOY
+1816 ; [.1BBE.0020.0002] # MONGOLIAN DIGIT SIX
+194C ; [.1BBE.0020.0002] # LIMBU DIGIT SIX
+19D6 ; [.1BBE.0020.0002] # NEW TAI LUE DIGIT SIX
+1A86 ; [.1BBE.0020.0002] # TAI THAM HORA DIGIT SIX
+1A96 ; [.1BBE.0020.0002] # TAI THAM THAM DIGIT SIX
+1B56 ; [.1BBE.0020.0002] # BALINESE DIGIT SIX
+1BB6 ; [.1BBE.0020.0002] # SUNDANESE DIGIT SIX
+1C46 ; [.1BBE.0020.0002] # LEPCHA DIGIT SIX
+1C56 ; [.1BBE.0020.0002] # OL CHIKI DIGIT SIX
+2185 ; [.1BBE.0020.0002] # ROMAN NUMERAL SIX LATE FORM
+3026 ; [.1BBE.0020.0002] # HANGZHOU NUMERAL SIX
+A626 ; [.1BBE.0020.0002] # VAI DIGIT SIX
+A8D6 ; [.1BBE.0020.0002] # SAURASHTRA DIGIT SIX
+A906 ; [.1BBE.0020.0002] # KAYAH LI DIGIT SIX
+A9D6 ; [.1BBE.0020.0002] # JAVANESE DIGIT SIX
+A9F6 ; [.1BBE.0020.0002] # MYANMAR TAI LAING DIGIT SIX
+AA56 ; [.1BBE.0020.0002] # CHAM DIGIT SIX
+ABF6 ; [.1BBE.0020.0002] # MEETEI MAYEK DIGIT SIX
+1010C ; [.1BBE.0020.0002] # AEGEAN NUMBER SIX
+102E6 ; [.1BBE.0020.0002] # COPTIC EPACT DIGIT SIX
+104A6 ; [.1BBE.0020.0002] # OSMANYA DIGIT SIX
+109C5 ; [.1BBE.0020.0002] # MEROITIC CURSIVE NUMBER SIX
+10E65 ; [.1BBE.0020.0002] # RUMI DIGIT SIX
+11057 ; [.1BBE.0020.0002] # BRAHMI NUMBER SIX
+1106C ; [.1BBE.0020.0002] # BRAHMI DIGIT SIX
+110F6 ; [.1BBE.0020.0002] # SORA SOMPENG DIGIT SIX
+1113C ; [.1BBE.0020.0002] # CHAKMA DIGIT SIX
+111D6 ; [.1BBE.0020.0002] # SHARADA DIGIT SIX
+111E6 ; [.1BBE.0020.0002] # SINHALA ARCHAIC DIGIT SIX
+112F6 ; [.1BBE.0020.0002] # KHUDAWADI DIGIT SIX
+114D6 ; [.1BBE.0020.0002] # TIRHUTA DIGIT SIX
+11656 ; [.1BBE.0020.0002] # MODI DIGIT SIX
+116C6 ; [.1BBE.0020.0002] # TAKRI DIGIT SIX
+11736 ; [.1BBE.0020.0002] # AHOM DIGIT SIX
+118E6 ; [.1BBE.0020.0002] # WARANG CITI DIGIT SIX
+12404 ; [.1BBE.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH
+1240B ; [.1BBE.0020.0002] # CUNEIFORM NUMERIC SIGN SIX DISH
+12411 ; [.1BBE.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U
+1241A ; [.1BBE.0020.0002] # CUNEIFORM NUMERIC SIGN SIX GESH2
+12428 ; [.1BBE.0020.0002] # CUNEIFORM NUMERIC SIGN SIX SHAR2
+12440 ; [.1BBE.0020.0002] # CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
+1244E ; [.1BBE.0020.0002] # CUNEIFORM NUMERIC SIGN SIX ASH TENU
+1246B ; [.1BBE.0020.0002] # CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM
+16A66 ; [.1BBE.0020.0002] # MRO DIGIT SIX
+16B56 ; [.1BBE.0020.0002] # PAHAWH HMONG DIGIT SIX
+1D365 ; [.1BBE.0020.0002] # COUNTING ROD UNIT DIGIT SIX
+1E8CC ; [.1BBE.0020.0002] # MENDE KIKAKUI DIGIT SIX
+FF16 ; [.1BBE.0020.0003] # FULLWIDTH DIGIT SIX
+0F2F ; [.1BBE.0020.0004] # TIBETAN DIGIT HALF SIX
+2479 ; [*0310.0020.0004][.1BBE.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT SIX
+248D ; [.1BBE.0020.0004][*0274.0020.0004] # DIGIT SIX FULL STOP
+1F107 ; [.1BBE.0020.0004][*0221.0020.0004] # DIGIT SIX COMMA
+1D7D4 ; [.1BBE.0020.0005] # MATHEMATICAL BOLD DIGIT SIX
+1D7DE ; [.1BBE.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
+1D7E8 ; [.1BBE.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SIX
+1D7F2 ; [.1BBE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
+1D7FC ; [.1BBE.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SIX
+2465 ; [.1BBE.0020.0006] # CIRCLED DIGIT SIX
+24FA ; [.1BBE.0020.0006] # DOUBLE CIRCLED DIGIT SIX
+277B ; [.1BBE.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SIX
+2785 ; [.1BBE.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SIX
+278F ; [.1BBE.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
+2076 ; [.1BBE.0020.0014] # SUPERSCRIPT SIX
+2086 ; [.1BBE.0020.0015] # SUBSCRIPT SIX
+324D ; [.1BBE.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER SIXTY ON BLACK SQUARE
+33E5 ; [.1BBE.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+32C5 ; [.1BBE.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+335E ; [.1BBE.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+0037 ; [.1BBF.0020.0002] # DIGIT SEVEN
+0667 ; [.1BBF.0020.0002] # ARABIC-INDIC DIGIT SEVEN
+06F7 ; [.1BBF.0020.0002] # EXTENDED ARABIC-INDIC DIGIT SEVEN
+07C7 ; [.1BBF.0020.0002] # NKO DIGIT SEVEN
+096D ; [.1BBF.0020.0002] # DEVANAGARI DIGIT SEVEN
+09ED ; [.1BBF.0020.0002] # BENGALI DIGIT SEVEN
+0A6D ; [.1BBF.0020.0002] # GURMUKHI DIGIT SEVEN
+0AED ; [.1BBF.0020.0002] # GUJARATI DIGIT SEVEN
+0B6D ; [.1BBF.0020.0002] # ORIYA DIGIT SEVEN
+0BED ; [.1BBF.0020.0002] # TAMIL DIGIT SEVEN
+0C6D ; [.1BBF.0020.0002] # TELUGU DIGIT SEVEN
+0CED ; [.1BBF.0020.0002] # KANNADA DIGIT SEVEN
+0D6D ; [.1BBF.0020.0002] # MALAYALAM DIGIT SEVEN
+0DED ; [.1BBF.0020.0002] # SINHALA LITH DIGIT SEVEN
+0E57 ; [.1BBF.0020.0002] # THAI DIGIT SEVEN
+0ED7 ; [.1BBF.0020.0002] # LAO DIGIT SEVEN
+0F27 ; [.1BBF.0020.0002] # TIBETAN DIGIT SEVEN
+1047 ; [.1BBF.0020.0002] # MYANMAR DIGIT SEVEN
+1097 ; [.1BBF.0020.0002] # MYANMAR SHAN DIGIT SEVEN
+136F ; [.1BBF.0020.0002] # ETHIOPIC DIGIT SEVEN
+17E7 ; [.1BBF.0020.0002] # KHMER DIGIT SEVEN
+17F7 ; [.1BBF.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-PII
+1817 ; [.1BBF.0020.0002] # MONGOLIAN DIGIT SEVEN
+194D ; [.1BBF.0020.0002] # LIMBU DIGIT SEVEN
+19D7 ; [.1BBF.0020.0002] # NEW TAI LUE DIGIT SEVEN
+1A87 ; [.1BBF.0020.0002] # TAI THAM HORA DIGIT SEVEN
+1A97 ; [.1BBF.0020.0002] # TAI THAM THAM DIGIT SEVEN
+1B57 ; [.1BBF.0020.0002] # BALINESE DIGIT SEVEN
+1BB7 ; [.1BBF.0020.0002] # SUNDANESE DIGIT SEVEN
+1C47 ; [.1BBF.0020.0002] # LEPCHA DIGIT SEVEN
+1C57 ; [.1BBF.0020.0002] # OL CHIKI DIGIT SEVEN
+3027 ; [.1BBF.0020.0002] # HANGZHOU NUMERAL SEVEN
+A627 ; [.1BBF.0020.0002] # VAI DIGIT SEVEN
+A8D7 ; [.1BBF.0020.0002] # SAURASHTRA DIGIT SEVEN
+A907 ; [.1BBF.0020.0002] # KAYAH LI DIGIT SEVEN
+A9D7 ; [.1BBF.0020.0002] # JAVANESE DIGIT SEVEN
+A9F7 ; [.1BBF.0020.0002] # MYANMAR TAI LAING DIGIT SEVEN
+AA57 ; [.1BBF.0020.0002] # CHAM DIGIT SEVEN
+ABF7 ; [.1BBF.0020.0002] # MEETEI MAYEK DIGIT SEVEN
+1010D ; [.1BBF.0020.0002] # AEGEAN NUMBER SEVEN
+102E7 ; [.1BBF.0020.0002] # COPTIC EPACT DIGIT SEVEN
+104A7 ; [.1BBF.0020.0002] # OSMANYA DIGIT SEVEN
+109C6 ; [.1BBF.0020.0002] # MEROITIC CURSIVE NUMBER SEVEN
+10E66 ; [.1BBF.0020.0002] # RUMI DIGIT SEVEN
+11058 ; [.1BBF.0020.0002] # BRAHMI NUMBER SEVEN
+1106D ; [.1BBF.0020.0002] # BRAHMI DIGIT SEVEN
+110F7 ; [.1BBF.0020.0002] # SORA SOMPENG DIGIT SEVEN
+1113D ; [.1BBF.0020.0002] # CHAKMA DIGIT SEVEN
+111D7 ; [.1BBF.0020.0002] # SHARADA DIGIT SEVEN
+111E7 ; [.1BBF.0020.0002] # SINHALA ARCHAIC DIGIT SEVEN
+112F7 ; [.1BBF.0020.0002] # KHUDAWADI DIGIT SEVEN
+114D7 ; [.1BBF.0020.0002] # TIRHUTA DIGIT SEVEN
+11657 ; [.1BBF.0020.0002] # MODI DIGIT SEVEN
+116C7 ; [.1BBF.0020.0002] # TAKRI DIGIT SEVEN
+11737 ; [.1BBF.0020.0002] # AHOM DIGIT SEVEN
+118E7 ; [.1BBF.0020.0002] # WARANG CITI DIGIT SEVEN
+12405 ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN ASH
+1240C ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN DISH
+12412 ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U
+1241B ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN GESH2
+12429 ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN SHAR2
+12441 ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3
+12442 ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A
+12443 ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
+1246C ; [.1BBF.0020.0002] # CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM
+16A67 ; [.1BBF.0020.0002] # MRO DIGIT SEVEN
+16B57 ; [.1BBF.0020.0002] # PAHAWH HMONG DIGIT SEVEN
+1D366 ; [.1BBF.0020.0002] # COUNTING ROD UNIT DIGIT SEVEN
+1E8CD ; [.1BBF.0020.0002] # MENDE KIKAKUI DIGIT SEVEN
+FF17 ; [.1BBF.0020.0003] # FULLWIDTH DIGIT SEVEN
+0F30 ; [.1BBF.0020.0004] # TIBETAN DIGIT HALF SEVEN
+247A ; [*0310.0020.0004][.1BBF.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT SEVEN
+248E ; [.1BBF.0020.0004][*0274.0020.0004] # DIGIT SEVEN FULL STOP
+1F108 ; [.1BBF.0020.0004][*0221.0020.0004] # DIGIT SEVEN COMMA
+1D7D5 ; [.1BBF.0020.0005] # MATHEMATICAL BOLD DIGIT SEVEN
+1D7DF ; [.1BBF.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
+1D7E9 ; [.1BBF.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT SEVEN
+1D7F3 ; [.1BBF.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
+1D7FD ; [.1BBF.0020.0005] # MATHEMATICAL MONOSPACE DIGIT SEVEN
+2466 ; [.1BBF.0020.0006] # CIRCLED DIGIT SEVEN
+24FB ; [.1BBF.0020.0006] # DOUBLE CIRCLED DIGIT SEVEN
+277C ; [.1BBF.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
+2786 ; [.1BBF.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
+2790 ; [.1BBF.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
+2077 ; [.1BBF.0020.0014] # SUPERSCRIPT SEVEN
+2087 ; [.1BBF.0020.0015] # SUBSCRIPT SEVEN
+324E ; [.1BBF.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER SEVENTY ON BLACK SQUARE
+215E ; [.1BBF.0020.001E][*0606.0020.001E][.1BC0.0020.001E] # VULGAR FRACTION SEVEN EIGHTHS
+33E6 ; [.1BBF.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+32C6 ; [.1BBF.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+335F ; [.1BBF.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+0038 ; [.1BC0.0020.0002] # DIGIT EIGHT
+0668 ; [.1BC0.0020.0002] # ARABIC-INDIC DIGIT EIGHT
+06F8 ; [.1BC0.0020.0002] # EXTENDED ARABIC-INDIC DIGIT EIGHT
+07C8 ; [.1BC0.0020.0002] # NKO DIGIT EIGHT
+096E ; [.1BC0.0020.0002] # DEVANAGARI DIGIT EIGHT
+09EE ; [.1BC0.0020.0002] # BENGALI DIGIT EIGHT
+0A6E ; [.1BC0.0020.0002] # GURMUKHI DIGIT EIGHT
+0AEE ; [.1BC0.0020.0002] # GUJARATI DIGIT EIGHT
+0B6E ; [.1BC0.0020.0002] # ORIYA DIGIT EIGHT
+0BEE ; [.1BC0.0020.0002] # TAMIL DIGIT EIGHT
+0C6E ; [.1BC0.0020.0002] # TELUGU DIGIT EIGHT
+0CEE ; [.1BC0.0020.0002] # KANNADA DIGIT EIGHT
+0D6E ; [.1BC0.0020.0002] # MALAYALAM DIGIT EIGHT
+0DEE ; [.1BC0.0020.0002] # SINHALA LITH DIGIT EIGHT
+0E58 ; [.1BC0.0020.0002] # THAI DIGIT EIGHT
+0ED8 ; [.1BC0.0020.0002] # LAO DIGIT EIGHT
+0F28 ; [.1BC0.0020.0002] # TIBETAN DIGIT EIGHT
+1048 ; [.1BC0.0020.0002] # MYANMAR DIGIT EIGHT
+1098 ; [.1BC0.0020.0002] # MYANMAR SHAN DIGIT EIGHT
+1370 ; [.1BC0.0020.0002] # ETHIOPIC DIGIT EIGHT
+17E8 ; [.1BC0.0020.0002] # KHMER DIGIT EIGHT
+17F8 ; [.1BC0.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BEI
+1818 ; [.1BC0.0020.0002] # MONGOLIAN DIGIT EIGHT
+194E ; [.1BC0.0020.0002] # LIMBU DIGIT EIGHT
+19D8 ; [.1BC0.0020.0002] # NEW TAI LUE DIGIT EIGHT
+1A88 ; [.1BC0.0020.0002] # TAI THAM HORA DIGIT EIGHT
+1A98 ; [.1BC0.0020.0002] # TAI THAM THAM DIGIT EIGHT
+1B58 ; [.1BC0.0020.0002] # BALINESE DIGIT EIGHT
+1BB8 ; [.1BC0.0020.0002] # SUNDANESE DIGIT EIGHT
+1C48 ; [.1BC0.0020.0002] # LEPCHA DIGIT EIGHT
+1C58 ; [.1BC0.0020.0002] # OL CHIKI DIGIT EIGHT
+3028 ; [.1BC0.0020.0002] # HANGZHOU NUMERAL EIGHT
+A628 ; [.1BC0.0020.0002] # VAI DIGIT EIGHT
+A8D8 ; [.1BC0.0020.0002] # SAURASHTRA DIGIT EIGHT
+A908 ; [.1BC0.0020.0002] # KAYAH LI DIGIT EIGHT
+A9D8 ; [.1BC0.0020.0002] # JAVANESE DIGIT EIGHT
+A9F8 ; [.1BC0.0020.0002] # MYANMAR TAI LAING DIGIT EIGHT
+AA58 ; [.1BC0.0020.0002] # CHAM DIGIT EIGHT
+ABF8 ; [.1BC0.0020.0002] # MEETEI MAYEK DIGIT EIGHT
+1010E ; [.1BC0.0020.0002] # AEGEAN NUMBER EIGHT
+102E8 ; [.1BC0.0020.0002] # COPTIC EPACT DIGIT EIGHT
+104A8 ; [.1BC0.0020.0002] # OSMANYA DIGIT EIGHT
+109C7 ; [.1BC0.0020.0002] # MEROITIC CURSIVE NUMBER EIGHT
+10E67 ; [.1BC0.0020.0002] # RUMI DIGIT EIGHT
+11059 ; [.1BC0.0020.0002] # BRAHMI NUMBER EIGHT
+1106E ; [.1BC0.0020.0002] # BRAHMI DIGIT EIGHT
+110F8 ; [.1BC0.0020.0002] # SORA SOMPENG DIGIT EIGHT
+1113E ; [.1BC0.0020.0002] # CHAKMA DIGIT EIGHT
+111D8 ; [.1BC0.0020.0002] # SHARADA DIGIT EIGHT
+111E8 ; [.1BC0.0020.0002] # SINHALA ARCHAIC DIGIT EIGHT
+112F8 ; [.1BC0.0020.0002] # KHUDAWADI DIGIT EIGHT
+114D8 ; [.1BC0.0020.0002] # TIRHUTA DIGIT EIGHT
+11658 ; [.1BC0.0020.0002] # MODI DIGIT EIGHT
+116C8 ; [.1BC0.0020.0002] # TAKRI DIGIT EIGHT
+11738 ; [.1BC0.0020.0002] # AHOM DIGIT EIGHT
+118E8 ; [.1BC0.0020.0002] # WARANG CITI DIGIT EIGHT
+12406 ; [.1BC0.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT ASH
+1240D ; [.1BC0.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT DISH
+12413 ; [.1BC0.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U
+1241C ; [.1BC0.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT GESH2
+1242A ; [.1BC0.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT SHAR2
+12444 ; [.1BC0.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU
+12445 ; [.1BC0.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
+1246D ; [.1BC0.0020.0002] # CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM
+16A68 ; [.1BC0.0020.0002] # MRO DIGIT EIGHT
+16B58 ; [.1BC0.0020.0002] # PAHAWH HMONG DIGIT EIGHT
+1D367 ; [.1BC0.0020.0002] # COUNTING ROD UNIT DIGIT EIGHT
+1E8CE ; [.1BC0.0020.0002] # MENDE KIKAKUI DIGIT EIGHT
+FF18 ; [.1BC0.0020.0003] # FULLWIDTH DIGIT EIGHT
+0F31 ; [.1BC0.0020.0004] # TIBETAN DIGIT HALF EIGHT
+247B ; [*0310.0020.0004][.1BC0.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT EIGHT
+248F ; [.1BC0.0020.0004][*0274.0020.0004] # DIGIT EIGHT FULL STOP
+1F109 ; [.1BC0.0020.0004][*0221.0020.0004] # DIGIT EIGHT COMMA
+1D7D6 ; [.1BC0.0020.0005] # MATHEMATICAL BOLD DIGIT EIGHT
+1D7E0 ; [.1BC0.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
+1D7EA ; [.1BC0.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT EIGHT
+1D7F4 ; [.1BC0.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
+1D7FE ; [.1BC0.0020.0005] # MATHEMATICAL MONOSPACE DIGIT EIGHT
+2467 ; [.1BC0.0020.0006] # CIRCLED DIGIT EIGHT
+24FC ; [.1BC0.0020.0006] # DOUBLE CIRCLED DIGIT EIGHT
+277D ; [.1BC0.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
+2787 ; [.1BC0.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
+2791 ; [.1BC0.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
+2078 ; [.1BC0.0020.0014] # SUPERSCRIPT EIGHT
+2088 ; [.1BC0.0020.0015] # SUBSCRIPT EIGHT
+324F ; [.1BC0.0020.0006][.1BB8.0020.0006] # CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+33E7 ; [.1BC0.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+32C7 ; [.1BC0.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+3360 ; [.1BC0.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+0039 ; [.1BC1.0020.0002] # DIGIT NINE
+0669 ; [.1BC1.0020.0002] # ARABIC-INDIC DIGIT NINE
+06F9 ; [.1BC1.0020.0002] # EXTENDED ARABIC-INDIC DIGIT NINE
+07C9 ; [.1BC1.0020.0002] # NKO DIGIT NINE
+096F ; [.1BC1.0020.0002] # DEVANAGARI DIGIT NINE
+09EF ; [.1BC1.0020.0002] # BENGALI DIGIT NINE
+0A6F ; [.1BC1.0020.0002] # GURMUKHI DIGIT NINE
+0AEF ; [.1BC1.0020.0002] # GUJARATI DIGIT NINE
+0B6F ; [.1BC1.0020.0002] # ORIYA DIGIT NINE
+0BEF ; [.1BC1.0020.0002] # TAMIL DIGIT NINE
+0C6F ; [.1BC1.0020.0002] # TELUGU DIGIT NINE
+0CEF ; [.1BC1.0020.0002] # KANNADA DIGIT NINE
+0D6F ; [.1BC1.0020.0002] # MALAYALAM DIGIT NINE
+0DEF ; [.1BC1.0020.0002] # SINHALA LITH DIGIT NINE
+0E59 ; [.1BC1.0020.0002] # THAI DIGIT NINE
+0ED9 ; [.1BC1.0020.0002] # LAO DIGIT NINE
+0F29 ; [.1BC1.0020.0002] # TIBETAN DIGIT NINE
+1049 ; [.1BC1.0020.0002] # MYANMAR DIGIT NINE
+1099 ; [.1BC1.0020.0002] # MYANMAR SHAN DIGIT NINE
+1371 ; [.1BC1.0020.0002] # ETHIOPIC DIGIT NINE
+17E9 ; [.1BC1.0020.0002] # KHMER DIGIT NINE
+17F9 ; [.1BC1.0020.0002] # KHMER SYMBOL LEK ATTAK PRAM-BUON
+1819 ; [.1BC1.0020.0002] # MONGOLIAN DIGIT NINE
+194F ; [.1BC1.0020.0002] # LIMBU DIGIT NINE
+19D9 ; [.1BC1.0020.0002] # NEW TAI LUE DIGIT NINE
+1A89 ; [.1BC1.0020.0002] # TAI THAM HORA DIGIT NINE
+1A99 ; [.1BC1.0020.0002] # TAI THAM THAM DIGIT NINE
+1B59 ; [.1BC1.0020.0002] # BALINESE DIGIT NINE
+1BB9 ; [.1BC1.0020.0002] # SUNDANESE DIGIT NINE
+1C49 ; [.1BC1.0020.0002] # LEPCHA DIGIT NINE
+1C59 ; [.1BC1.0020.0002] # OL CHIKI DIGIT NINE
+3029 ; [.1BC1.0020.0002] # HANGZHOU NUMERAL NINE
+A629 ; [.1BC1.0020.0002] # VAI DIGIT NINE
+A8D9 ; [.1BC1.0020.0002] # SAURASHTRA DIGIT NINE
+A909 ; [.1BC1.0020.0002] # KAYAH LI DIGIT NINE
+A9D9 ; [.1BC1.0020.0002] # JAVANESE DIGIT NINE
+A9F9 ; [.1BC1.0020.0002] # MYANMAR TAI LAING DIGIT NINE
+AA59 ; [.1BC1.0020.0002] # CHAM DIGIT NINE
+ABF9 ; [.1BC1.0020.0002] # MEETEI MAYEK DIGIT NINE
+1010F ; [.1BC1.0020.0002] # AEGEAN NUMBER NINE
+102E9 ; [.1BC1.0020.0002] # COPTIC EPACT DIGIT NINE
+104A9 ; [.1BC1.0020.0002] # OSMANYA DIGIT NINE
+109C8 ; [.1BC1.0020.0002] # MEROITIC CURSIVE NUMBER NINE
+10E68 ; [.1BC1.0020.0002] # RUMI DIGIT NINE
+1105A ; [.1BC1.0020.0002] # BRAHMI NUMBER NINE
+1106F ; [.1BC1.0020.0002] # BRAHMI DIGIT NINE
+110F9 ; [.1BC1.0020.0002] # SORA SOMPENG DIGIT NINE
+1113F ; [.1BC1.0020.0002] # CHAKMA DIGIT NINE
+111D9 ; [.1BC1.0020.0002] # SHARADA DIGIT NINE
+111E9 ; [.1BC1.0020.0002] # SINHALA ARCHAIC DIGIT NINE
+112F9 ; [.1BC1.0020.0002] # KHUDAWADI DIGIT NINE
+114D9 ; [.1BC1.0020.0002] # TIRHUTA DIGIT NINE
+11659 ; [.1BC1.0020.0002] # MODI DIGIT NINE
+116C9 ; [.1BC1.0020.0002] # TAKRI DIGIT NINE
+11739 ; [.1BC1.0020.0002] # AHOM DIGIT NINE
+118E9 ; [.1BC1.0020.0002] # WARANG CITI DIGIT NINE
+12407 ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE ASH
+1240E ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE DISH
+12414 ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U
+1241D ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE GESH2
+1242B ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE SHAR2
+12446 ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU
+12447 ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3
+12448 ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4
+12449 ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
+1246E ; [.1BC1.0020.0002] # CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+16A69 ; [.1BC1.0020.0002] # MRO DIGIT NINE
+16B59 ; [.1BC1.0020.0002] # PAHAWH HMONG DIGIT NINE
+1D368 ; [.1BC1.0020.0002] # COUNTING ROD UNIT DIGIT NINE
+1E8CF ; [.1BC1.0020.0002] # MENDE KIKAKUI DIGIT NINE
+FF19 ; [.1BC1.0020.0003] # FULLWIDTH DIGIT NINE
+0F32 ; [.1BC1.0020.0004] # TIBETAN DIGIT HALF NINE
+247C ; [*0310.0020.0004][.1BC1.0020.0004][*0311.0020.0004] # PARENTHESIZED DIGIT NINE
+2490 ; [.1BC1.0020.0004][*0274.0020.0004] # DIGIT NINE FULL STOP
+1F10A ; [.1BC1.0020.0004][*0221.0020.0004] # DIGIT NINE COMMA
+1D7D7 ; [.1BC1.0020.0005] # MATHEMATICAL BOLD DIGIT NINE
+1D7E1 ; [.1BC1.0020.0005] # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
+1D7EB ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF DIGIT NINE
+1D7F5 ; [.1BC1.0020.0005] # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
+1D7FF ; [.1BC1.0020.0005] # MATHEMATICAL MONOSPACE DIGIT NINE
+2468 ; [.1BC1.0020.0006] # CIRCLED DIGIT NINE
+24FD ; [.1BC1.0020.0006] # DOUBLE CIRCLED DIGIT NINE
+277E ; [.1BC1.0020.0006] # DINGBAT NEGATIVE CIRCLED DIGIT NINE
+2788 ; [.1BC1.0020.0006] # DINGBAT CIRCLED SANS-SERIF DIGIT NINE
+2792 ; [.1BC1.0020.0006] # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
+2079 ; [.1BC1.0020.0014] # SUPERSCRIPT NINE
+2089 ; [.1BC1.0020.0015] # SUBSCRIPT NINE
+33E8 ; [.1BC1.0020.0004][.FB40.0020.0004][.E5E5.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+32C8 ; [.1BC1.0020.0004][.FB40.0020.0004][.E708.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+3361 ; [.1BC1.0020.0004][.FB40.0020.0004][.F0B9.0000.0000] # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+0061 ; [.1BC2.0020.0002] # LATIN SMALL LETTER A
+FF41 ; [.1BC2.0020.0003] # FULLWIDTH LATIN SMALL LETTER A
+0363 ; [.1BC2.0020.0004] # COMBINING LATIN SMALL LETTER A
+249C ; [*0310.0020.0004][.1BC2.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER A
+1D41A ; [.1BC2.0020.0005] # MATHEMATICAL BOLD SMALL A
+1D44E ; [.1BC2.0020.0005] # MATHEMATICAL ITALIC SMALL A
+1D482 ; [.1BC2.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL A
+1D4B6 ; [.1BC2.0020.0005] # MATHEMATICAL SCRIPT SMALL A
+1D4EA ; [.1BC2.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL A
+1D51E ; [.1BC2.0020.0005] # MATHEMATICAL FRAKTUR SMALL A
+1D552 ; [.1BC2.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL A
+1D586 ; [.1BC2.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL A
+1D5BA ; [.1BC2.0020.0005] # MATHEMATICAL SANS-SERIF SMALL A
+1D5EE ; [.1BC2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL A
+1D622 ; [.1BC2.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL A
+1D656 ; [.1BC2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
+1D68A ; [.1BC2.0020.0005] # MATHEMATICAL MONOSPACE SMALL A
+24D0 ; [.1BC2.0020.0006] # CIRCLED LATIN SMALL LETTER A
+0041 ; [.1BC2.0020.0008] # LATIN CAPITAL LETTER A
+FF21 ; [.1BC2.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER A
+1F110 ; [*0310.0020.0004][.1BC2.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER A
+1D400 ; [.1BC2.0020.000B] # MATHEMATICAL BOLD CAPITAL A
+1D434 ; [.1BC2.0020.000B] # MATHEMATICAL ITALIC CAPITAL A
+1D468 ; [.1BC2.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL A
+1D49C ; [.1BC2.0020.000B] # MATHEMATICAL SCRIPT CAPITAL A
+1D4D0 ; [.1BC2.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL A
+1D504 ; [.1BC2.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL A
+1D538 ; [.1BC2.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+1D56C ; [.1BC2.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL A
+1D5A0 ; [.1BC2.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL A
+1D5D4 ; [.1BC2.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+1D608 ; [.1BC2.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+1D63C ; [.1BC2.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+1D670 ; [.1BC2.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL A
+24B6 ; [.1BC2.0020.000C] # CIRCLED LATIN CAPITAL LETTER A
+1F150 ; [.1BC2.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER A
+00AA ; [.1BC2.0020.0014] # FEMININE ORDINAL INDICATOR
+1D43 ; [.1BC2.0020.0014] # MODIFIER LETTER SMALL A
+2090 ; [.1BC2.0020.0015] # LATIN SUBSCRIPT SMALL LETTER A
+1D2C ; [.1BC2.0020.001D] # MODIFIER LETTER CAPITAL A
+1F130 ; [.1BC2.0020.001D] # SQUARED LATIN CAPITAL LETTER A
+1F170 ; [.1BC2.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER A
+00E1 ; [.1BC2.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH ACUTE
+00C1 ; [.1BC2.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH ACUTE
+00E0 ; [.1BC2.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH GRAVE
+00C0 ; [.1BC2.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH GRAVE
+0103 ; [.1BC2.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE
+0102 ; [.1BC2.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE
+1EAF ; [.1BC2.0020.0002][.0000.0026.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EAE ; [.1BC2.0020.0008][.0000.0026.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EB1 ; [.1BC2.0020.0002][.0000.0026.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB0 ; [.1BC2.0020.0008][.0000.0026.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB5 ; [.1BC2.0020.0002][.0000.0026.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB4 ; [.1BC2.0020.0008][.0000.0026.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB3 ; [.1BC2.0020.0002][.0000.0026.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB2 ; [.1BC2.0020.0008][.0000.0026.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+00E2 ; [.1BC2.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX
+00C2 ; [.1BC2.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+1EA5 ; [.1BC2.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA4 ; [.1BC2.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA7 ; [.1BC2.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA6 ; [.1BC2.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EAB ; [.1BC2.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAA ; [.1BC2.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EA9 ; [.1BC2.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA8 ; [.1BC2.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+01CE ; [.1BC2.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER A WITH CARON
+01CD ; [.1BC2.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER A WITH CARON
+00E5 ; [.1BC2.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER A WITH RING ABOVE
+00C5 ; [.1BC2.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE
+212B ; [.1BC2.0020.0008][.0000.0029.0002] # ANGSTROM SIGN
+01FB ; [.1BC2.0020.0002][.0000.0029.0002][.0000.0024.0002] # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FA ; [.1BC2.0020.0008][.0000.0029.0002][.0000.0024.0002] # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+00E4 ; [.1BC2.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER A WITH DIAERESIS
+1DF2 ; [.1BC2.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER A WITH DIAERESIS
+A79B ; [.1BC2.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK AE
+00C4 ; [.1BC2.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS
+A79A ; [.1BC2.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK AE
+01DF ; [.1BC2.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01DE ; [.1BC2.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+00E3 ; [.1BC2.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER A WITH TILDE
+00C3 ; [.1BC2.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER A WITH TILDE
+0227 ; [.1BC2.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER A WITH DOT ABOVE
+0226 ; [.1BC2.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE
+01E1 ; [.1BC2.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E0 ; [.1BC2.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+0105 ; [.1BC2.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER A WITH OGONEK
+0104 ; [.1BC2.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER A WITH OGONEK
+0101 ; [.1BC2.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER A WITH MACRON
+0100 ; [.1BC2.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER A WITH MACRON
+1EA3 ; [.1BC2.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA2 ; [.1BC2.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+0201 ; [.1BC2.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0200 ; [.1BC2.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0203 ; [.1BC2.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER A WITH INVERTED BREVE
+0202 ; [.1BC2.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER A WITH INVERTED BREVE
+1EA1 ; [.1BC2.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER A WITH DOT BELOW
+1EA0 ; [.1BC2.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER A WITH DOT BELOW
+1EB7 ; [.1BC2.0020.0002][.0000.0042.0002][.0000.0026.0002] # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB6 ; [.1BC2.0020.0008][.0000.0042.0002][.0000.0026.0002] # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EAD ; [.1BC2.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAC ; [.1BC2.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1E01 ; [.1BC2.0020.0002][.0000.0044.0002] # LATIN SMALL LETTER A WITH RING BELOW
+1E00 ; [.1BC2.0020.0008][.0000.0044.0002] # LATIN CAPITAL LETTER A WITH RING BELOW
+1DD3 ; [.1BC2.0020.0004][.0000.010B.0004] # COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE
+A733 ; [.1BC2.0020.0004][.1BC2.0020.0004] # LATIN SMALL LETTER AA
+A732 ; [.1BC2.0020.000A][.1BC2.0020.000A] # LATIN CAPITAL LETTER AA
+1F18E ; [.1BC2.0020.001D][.1BDB.0020.001D] # NEGATIVE SQUARED AB
+2100 ; [.1BC2.0020.0004][*038D.0020.0004][.1BF5.0020.0004] # ACCOUNT OF
+00E6 ; [.1BC2.0020.0004][.0000.010B.0004][.1C25.0020.0004] # LATIN SMALL LETTER AE
+1DD4 ; [.1BC2.0020.0004][.0000.010B.0004][.1C25.0020.0004] # COMBINING LATIN SMALL LETTER AE
+00C6 ; [.1BC2.0020.000A][.0000.010B.0004][.1C25.0020.000A] # LATIN CAPITAL LETTER AE
+1D2D ; [.1BC2.0020.0014][.0000.010B.0014][.1C25.0020.0014] # MODIFIER LETTER CAPITAL AE
+01FD ; [.1BC2.0020.0004][.0000.010B.0004][.1C25.0020.0004][.0000.0024.0002] # LATIN SMALL LETTER AE WITH ACUTE
+01FC ; [.1BC2.0020.000A][.0000.010B.0004][.1C25.0020.000A][.0000.0024.0002] # LATIN CAPITAL LETTER AE WITH ACUTE
+01E3 ; [.1BC2.0020.0004][.0000.010B.0004][.1C25.0020.0004][.0000.0032.0002] # LATIN SMALL LETTER AE WITH MACRON
+01E2 ; [.1BC2.0020.000A][.0000.010B.0004][.1C25.0020.000A][.0000.0032.0002] # LATIN CAPITAL LETTER AE WITH MACRON
+33C2 ; [.1BC2.0020.001C][*0274.0020.001C][.1D25.0020.001C][*0274.0020.001C] # SQUARE AM
+33DF ; [.1BC2.0020.001D][*0605.0020.001C][.1D25.0020.001C] # SQUARE A OVER M
+1DD5 ; [.1BC2.0020.0004][.1D58.0020.0004] # COMBINING LATIN SMALL LETTER AO
+A735 ; [.1BC2.0020.0004][.1D58.0020.0004] # LATIN SMALL LETTER AO
+A734 ; [.1BC2.0020.000A][.1D58.0020.000A] # LATIN CAPITAL LETTER AO
+2101 ; [.1BC2.0020.0004][*038D.0020.0004][.1DEC.0020.0004] # ADDRESSED TO THE SUBJECT
+214D ; [.1BC2.0020.000A][*038D.0020.0004][.1DEC.0020.000A] # AKTIESELSKAB
+A737 ; [.1BC2.0020.0004][.1E30.0020.0004] # LATIN SMALL LETTER AU
+A736 ; [.1BC2.0020.000A][.1E30.0020.000A] # LATIN CAPITAL LETTER AU
+3373 ; [.1BC2.0020.001D][.1E30.0020.001D] # SQUARE AU
+1DD6 ; [.1BC2.0020.0004][.1E5E.0020.0004] # COMBINING LATIN SMALL LETTER AV
+A739 ; [.1BC2.0020.0004][.1E5E.0020.0004] # LATIN SMALL LETTER AV
+A738 ; [.1BC2.0020.000A][.1E5E.0020.000A] # LATIN CAPITAL LETTER AV
+A73B ; [.1BC2.0020.0004][.0000.010B.0004][.1E5E.0020.0004] # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
+A73A ; [.1BC2.0020.000A][.0000.010B.0004][.1E5E.0020.000A] # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+A73D ; [.1BC2.0020.0004][.1E86.0020.0004] # LATIN SMALL LETTER AY
+A73C ; [.1BC2.0020.000A][.1E86.0020.000A] # LATIN CAPITAL LETTER AY
+1E9A ; [.1BC2.0020.0004][.1EFB.0020.0004] # LATIN SMALL LETTER A WITH RIGHT HALF RING
+1D00 ; [.1BC6.0020.0002] # LATIN LETTER SMALL CAPITAL A
+2C65 ; [.1BC7.0020.0002] # LATIN SMALL LETTER A WITH STROKE
+023A ; [.1BC7.0020.0008] # LATIN CAPITAL LETTER A WITH STROKE
+1D8F ; [.1BC8.0020.0002] # LATIN SMALL LETTER A WITH RETROFLEX HOOK
+1D01 ; [.1BC9.0020.0002] # LATIN LETTER SMALL CAPITAL AE
+1D02 ; [.1BCA.0020.0002] # LATIN SMALL LETTER TURNED AE
+1D46 ; [.1BCA.0020.0014] # MODIFIER LETTER SMALL TURNED AE
+AB31 ; [.1BCB.0020.0002] # LATIN SMALL LETTER A REVERSED-SCHWA
+0250 ; [.1BCC.0020.0002] # LATIN SMALL LETTER TURNED A
+2C6F ; [.1BCC.0020.0008] # LATIN CAPITAL LETTER TURNED A
+1D44 ; [.1BCC.0020.0014] # MODIFIER LETTER SMALL TURNED A
+0251 ; [.1BD0.0020.0002] # LATIN SMALL LETTER ALPHA
+1DE7 ; [.1BD0.0020.0004] # COMBINING LATIN SMALL LETTER ALPHA
+2C6D ; [.1BD0.0020.0008] # LATIN CAPITAL LETTER ALPHA
+1D45 ; [.1BD0.0020.0014] # MODIFIER LETTER SMALL ALPHA
+AB30 ; [.1BD4.0020.0002] # LATIN SMALL LETTER BARRED ALPHA
+1D90 ; [.1BD5.0020.0002] # LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
+0252 ; [.1BD6.0020.0002] # LATIN SMALL LETTER TURNED ALPHA
+2C70 ; [.1BD6.0020.0008] # LATIN CAPITAL LETTER TURNED ALPHA
+1D9B ; [.1BD6.0020.0014] # MODIFIER LETTER SMALL TURNED ALPHA
+AB64 ; [.1BDA.0020.0002] # LATIN SMALL LETTER INVERTED ALPHA
+0062 ; [.1BDB.0020.0002] # LATIN SMALL LETTER B
+FF42 ; [.1BDB.0020.0003] # FULLWIDTH LATIN SMALL LETTER B
+1DE8 ; [.1BDB.0020.0004] # COMBINING LATIN SMALL LETTER B
+249D ; [*0310.0020.0004][.1BDB.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER B
+1D41B ; [.1BDB.0020.0005] # MATHEMATICAL BOLD SMALL B
+1D44F ; [.1BDB.0020.0005] # MATHEMATICAL ITALIC SMALL B
+1D483 ; [.1BDB.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL B
+1D4B7 ; [.1BDB.0020.0005] # MATHEMATICAL SCRIPT SMALL B
+1D4EB ; [.1BDB.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL B
+1D51F ; [.1BDB.0020.0005] # MATHEMATICAL FRAKTUR SMALL B
+1D553 ; [.1BDB.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL B
+1D587 ; [.1BDB.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL B
+1D5BB ; [.1BDB.0020.0005] # MATHEMATICAL SANS-SERIF SMALL B
+1D5EF ; [.1BDB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL B
+1D623 ; [.1BDB.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL B
+1D657 ; [.1BDB.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
+1D68B ; [.1BDB.0020.0005] # MATHEMATICAL MONOSPACE SMALL B
+24D1 ; [.1BDB.0020.0006] # CIRCLED LATIN SMALL LETTER B
+0042 ; [.1BDB.0020.0008] # LATIN CAPITAL LETTER B
+FF22 ; [.1BDB.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER B
+1F111 ; [*0310.0020.0004][.1BDB.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER B
+212C ; [.1BDB.0020.000B] # SCRIPT CAPITAL B
+1D401 ; [.1BDB.0020.000B] # MATHEMATICAL BOLD CAPITAL B
+1D435 ; [.1BDB.0020.000B] # MATHEMATICAL ITALIC CAPITAL B
+1D469 ; [.1BDB.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL B
+1D4D1 ; [.1BDB.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL B
+1D505 ; [.1BDB.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL B
+1D539 ; [.1BDB.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D56D ; [.1BDB.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL B
+1D5A1 ; [.1BDB.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL B
+1D5D5 ; [.1BDB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+1D609 ; [.1BDB.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+1D63D ; [.1BDB.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+1D671 ; [.1BDB.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL B
+24B7 ; [.1BDB.0020.000C] # CIRCLED LATIN CAPITAL LETTER B
+1F151 ; [.1BDB.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER B
+1D47 ; [.1BDB.0020.0014] # MODIFIER LETTER SMALL B
+1D2E ; [.1BDB.0020.001D] # MODIFIER LETTER CAPITAL B
+1F131 ; [.1BDB.0020.001D] # SQUARED LATIN CAPITAL LETTER B
+1F171 ; [.1BDB.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER B
+1E03 ; [.1BDB.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER B WITH DOT ABOVE
+1E02 ; [.1BDB.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E05 ; [.1BDB.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER B WITH DOT BELOW
+1E04 ; [.1BDB.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER B WITH DOT BELOW
+1E07 ; [.1BDB.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER B WITH LINE BELOW
+1E06 ; [.1BDB.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER B WITH LINE BELOW
+3374 ; [.1BDB.0020.001C][.1BC2.0020.001C][.1DAE.0020.001C] # SQUARE BAR
+33C3 ; [.1BDB.0020.001D][.1D9C.0020.001C] # SQUARE BQ
+0299 ; [.1BDF.0020.0002] # LATIN LETTER SMALL CAPITAL B
+0180 ; [.1BE3.0020.0002] # LATIN SMALL LETTER B WITH STROKE
+0243 ; [.1BE3.0020.0008] # LATIN CAPITAL LETTER B WITH STROKE
+1D2F ; [.1BE7.0020.0002] # MODIFIER LETTER CAPITAL BARRED B
+1D03 ; [.1BE8.0020.0002] # LATIN LETTER SMALL CAPITAL BARRED B
+1D6C ; [.1BE9.0020.0002] # LATIN SMALL LETTER B WITH MIDDLE TILDE
+A797 ; [.1BEA.0020.0002] # LATIN SMALL LETTER B WITH FLOURISH
+A796 ; [.1BEA.0020.0008] # LATIN CAPITAL LETTER B WITH FLOURISH
+1D80 ; [.1BEB.0020.0002] # LATIN SMALL LETTER B WITH PALATAL HOOK
+0253 ; [.1BEC.0020.0002] # LATIN SMALL LETTER B WITH HOOK
+0181 ; [.1BEC.0020.0008] # LATIN CAPITAL LETTER B WITH HOOK
+0183 ; [.1BF0.0020.0002] # LATIN SMALL LETTER B WITH TOPBAR
+0182 ; [.1BF0.0020.0008] # LATIN CAPITAL LETTER B WITH TOPBAR
+A7B5 ; [.1BF4.0020.0002] # LATIN SMALL LETTER BETA
+1DE9 ; [.1BF4.0020.0004] # COMBINING LATIN SMALL LETTER BETA
+A7B4 ; [.1BF4.0020.0008] # LATIN CAPITAL LETTER BETA
+0063 ; [.1BF5.0020.0002] # LATIN SMALL LETTER C
+FF43 ; [.1BF5.0020.0003] # FULLWIDTH LATIN SMALL LETTER C
+0368 ; [.1BF5.0020.0004] # COMBINING LATIN SMALL LETTER C
+217D ; [.1BF5.0020.0004] # SMALL ROMAN NUMERAL ONE HUNDRED
+249E ; [*0310.0020.0004][.1BF5.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER C
+1D41C ; [.1BF5.0020.0005] # MATHEMATICAL BOLD SMALL C
+1D450 ; [.1BF5.0020.0005] # MATHEMATICAL ITALIC SMALL C
+1D484 ; [.1BF5.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL C
+1D4B8 ; [.1BF5.0020.0005] # MATHEMATICAL SCRIPT SMALL C
+1D4EC ; [.1BF5.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL C
+1D520 ; [.1BF5.0020.0005] # MATHEMATICAL FRAKTUR SMALL C
+1D554 ; [.1BF5.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL C
+1D588 ; [.1BF5.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL C
+1D5BC ; [.1BF5.0020.0005] # MATHEMATICAL SANS-SERIF SMALL C
+1D5F0 ; [.1BF5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL C
+1D624 ; [.1BF5.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL C
+1D658 ; [.1BF5.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
+1D68C ; [.1BF5.0020.0005] # MATHEMATICAL MONOSPACE SMALL C
+24D2 ; [.1BF5.0020.0006] # CIRCLED LATIN SMALL LETTER C
+0043 ; [.1BF5.0020.0008] # LATIN CAPITAL LETTER C
+FF23 ; [.1BF5.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER C
+2103 ; [*04D7.0020.0004][.1BF5.0020.000A] # DEGREE CELSIUS
+216D ; [.1BF5.0020.000A] # ROMAN NUMERAL ONE HUNDRED
+1F112 ; [*0310.0020.0004][.1BF5.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER C
+2102 ; [.1BF5.0020.000B] # DOUBLE-STRUCK CAPITAL C
+212D ; [.1BF5.0020.000B] # BLACK-LETTER CAPITAL C
+1D402 ; [.1BF5.0020.000B] # MATHEMATICAL BOLD CAPITAL C
+1D436 ; [.1BF5.0020.000B] # MATHEMATICAL ITALIC CAPITAL C
+1D46A ; [.1BF5.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL C
+1D49E ; [.1BF5.0020.000B] # MATHEMATICAL SCRIPT CAPITAL C
+1D4D2 ; [.1BF5.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL C
+1D56E ; [.1BF5.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL C
+1D5A2 ; [.1BF5.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL C
+1D5D6 ; [.1BF5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+1D60A ; [.1BF5.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+1D63E ; [.1BF5.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+1D672 ; [.1BF5.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL C
+24B8 ; [.1BF5.0020.000C] # CIRCLED LATIN CAPITAL LETTER C
+1F12B ; [.1BF5.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER C
+1F152 ; [.1BF5.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER C
+1D9C ; [.1BF5.0020.0014] # MODIFIER LETTER SMALL C
+1F132 ; [.1BF5.0020.001D] # SQUARED LATIN CAPITAL LETTER C
+1F172 ; [.1BF5.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER C
+0107 ; [.1BF5.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH ACUTE
+0106 ; [.1BF5.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH ACUTE
+0109 ; [.1BF5.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER C WITH CIRCUMFLEX
+0108 ; [.1BF5.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+010D ; [.1BF5.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER C WITH CARON
+010C ; [.1BF5.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER C WITH CARON
+010B ; [.1BF5.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER C WITH DOT ABOVE
+010A ; [.1BF5.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER C WITH DOT ABOVE
+00E7 ; [.1BF5.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER C WITH CEDILLA
+1DD7 ; [.1BF5.0020.0004][.0000.0030.0004] # COMBINING LATIN SMALL LETTER C CEDILLA
+00C7 ; [.1BF5.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER C WITH CEDILLA
+1E09 ; [.1BF5.0020.0002][.0000.0030.0002][.0000.0024.0002] # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E08 ; [.1BF5.0020.0008][.0000.0030.0002][.0000.0024.0002] # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+3388 ; [.1BF5.0020.001C][.1BC2.0020.001C][.1CF2.0020.001C] # SQUARE CAL
+33C4 ; [.1BF5.0020.001C][.1BF5.0020.001C] # SQUARE CC
+1F12D ; [.1BF5.0020.000C][.1C0A.0020.000C] # CIRCLED CD
+33C5 ; [.1BF5.0020.001C][.1C0A.0020.001C] # SQUARE CD
+33C6 ; [.1BF5.0020.001D][*0605.0020.001C][.1CE0.0020.001C][.1C6F.0020.001C] # SQUARE C OVER KG
+1F191 ; [.1BF5.0020.001D][.1CF2.0020.001D] # SQUARED CL
+339D ; [.1BF5.0020.001C][.1D25.0020.001C] # SQUARE CM
+33A0 ; [.1BF5.0020.001C][.1D25.0020.001C][.1BBA.0020.001C] # SQUARE CM SQUARED
+33A4 ; [.1BF5.0020.001C][.1D25.0020.001C][.1BBB.0020.001C] # SQUARE CM CUBED
+2105 ; [.1BF5.0020.0004][*038D.0020.0004][.1D58.0020.0004] # CARE OF
+33C7 ; [.1BF5.0020.001D][.1D58.0020.001C][*0274.0020.001C] # SQUARE CO
+1F192 ; [.1BF5.0020.001D][.1D58.0020.001D][.1D58.0020.001D][.1CF2.0020.001D] # SQUARED COOL
+2106 ; [.1BF5.0020.0004][*038D.0020.0004][.1E30.0020.0004] # CADA UNA
+1D04 ; [.1BF9.0020.0002] # LATIN LETTER SMALL CAPITAL C
+023C ; [.1BFA.0020.0002] # LATIN SMALL LETTER C WITH STROKE
+023B ; [.1BFA.0020.0008] # LATIN CAPITAL LETTER C WITH STROKE
+A793 ; [.1BFE.0020.0002] # LATIN SMALL LETTER C WITH BAR
+A792 ; [.1BFE.0020.0008] # LATIN CAPITAL LETTER C WITH BAR
+A794 ; [.1BFF.0020.0002] # LATIN SMALL LETTER C WITH PALATAL HOOK
+0188 ; [.1C00.0020.0002] # LATIN SMALL LETTER C WITH HOOK
+0187 ; [.1C00.0020.0008] # LATIN CAPITAL LETTER C WITH HOOK
+0255 ; [.1C04.0020.0002] # LATIN SMALL LETTER C WITH CURL
+1D9D ; [.1C04.0020.0014] # MODIFIER LETTER SMALL C WITH CURL
+2184 ; [.1C08.0020.0002] # LATIN SMALL LETTER REVERSED C
+2183 ; [.1C08.0020.0008] # ROMAN NUMERAL REVERSED ONE HUNDRED
+A73F ; [.1C09.0020.0002] # LATIN SMALL LETTER REVERSED C WITH DOT
+A73E ; [.1C09.0020.0008] # LATIN CAPITAL LETTER REVERSED C WITH DOT
+0064 ; [.1C0A.0020.0002] # LATIN SMALL LETTER D
+FF44 ; [.1C0A.0020.0003] # FULLWIDTH LATIN SMALL LETTER D
+0369 ; [.1C0A.0020.0004] # COMBINING LATIN SMALL LETTER D
+217E ; [.1C0A.0020.0004] # SMALL ROMAN NUMERAL FIVE HUNDRED
+249F ; [*0310.0020.0004][.1C0A.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER D
+2146 ; [.1C0A.0020.0005] # DOUBLE-STRUCK ITALIC SMALL D
+1D41D ; [.1C0A.0020.0005] # MATHEMATICAL BOLD SMALL D
+1D451 ; [.1C0A.0020.0005] # MATHEMATICAL ITALIC SMALL D
+1D485 ; [.1C0A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL D
+1D4B9 ; [.1C0A.0020.0005] # MATHEMATICAL SCRIPT SMALL D
+1D4ED ; [.1C0A.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL D
+1D521 ; [.1C0A.0020.0005] # MATHEMATICAL FRAKTUR SMALL D
+1D555 ; [.1C0A.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL D
+1D589 ; [.1C0A.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL D
+1D5BD ; [.1C0A.0020.0005] # MATHEMATICAL SANS-SERIF SMALL D
+1D5F1 ; [.1C0A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL D
+1D625 ; [.1C0A.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL D
+1D659 ; [.1C0A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
+1D68D ; [.1C0A.0020.0005] # MATHEMATICAL MONOSPACE SMALL D
+24D3 ; [.1C0A.0020.0006] # CIRCLED LATIN SMALL LETTER D
+0044 ; [.1C0A.0020.0008] # LATIN CAPITAL LETTER D
+FF24 ; [.1C0A.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER D
+216E ; [.1C0A.0020.000A] # ROMAN NUMERAL FIVE HUNDRED
+1F113 ; [*0310.0020.0004][.1C0A.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER D
+2145 ; [.1C0A.0020.000B] # DOUBLE-STRUCK ITALIC CAPITAL D
+1D403 ; [.1C0A.0020.000B] # MATHEMATICAL BOLD CAPITAL D
+1D437 ; [.1C0A.0020.000B] # MATHEMATICAL ITALIC CAPITAL D
+1D46B ; [.1C0A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL D
+1D49F ; [.1C0A.0020.000B] # MATHEMATICAL SCRIPT CAPITAL D
+1D4D3 ; [.1C0A.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL D
+1D507 ; [.1C0A.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL D
+1D53B ; [.1C0A.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+1D56F ; [.1C0A.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL D
+1D5A3 ; [.1C0A.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL D
+1D5D7 ; [.1C0A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+1D60B ; [.1C0A.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+1D63F ; [.1C0A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+1D673 ; [.1C0A.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL D
+24B9 ; [.1C0A.0020.000C] # CIRCLED LATIN CAPITAL LETTER D
+1F153 ; [.1C0A.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER D
+1D48 ; [.1C0A.0020.0014] # MODIFIER LETTER SMALL D
+1D30 ; [.1C0A.0020.001D] # MODIFIER LETTER CAPITAL D
+1F133 ; [.1C0A.0020.001D] # SQUARED LATIN CAPITAL LETTER D
+1F173 ; [.1C0A.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER D
+010F ; [.1C0A.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER D WITH CARON
+010E ; [.1C0A.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER D WITH CARON
+1E0B ; [.1C0A.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER D WITH DOT ABOVE
+1E0A ; [.1C0A.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E11 ; [.1C0A.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER D WITH CEDILLA
+1E10 ; [.1C0A.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER D WITH CEDILLA
+0111 ; [.1C0A.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER D WITH STROKE
+0110 ; [.1C0A.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER D WITH STROKE
+1E0D ; [.1C0A.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER D WITH DOT BELOW
+1E0C ; [.1C0A.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER D WITH DOT BELOW
+1E13 ; [.1C0A.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E12 ; [.1C0A.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E0F ; [.1C0A.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER D WITH LINE BELOW
+1E0E ; [.1C0A.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER D WITH LINE BELOW
+00F0 ; [.1C0A.0020.0004][.0000.010B.0004] # LATIN SMALL LETTER ETH
+1DD9 ; [.1C0A.0020.0004][.0000.010B.0004] # COMBINING LATIN SMALL LETTER ETH
+00D0 ; [.1C0A.0020.000A][.0000.010B.0004] # LATIN CAPITAL LETTER ETH
+1D9E ; [.1C0A.0020.0014][.0000.010B.0014] # MODIFIER LETTER SMALL ETH
+1DD8 ; [.1C0A.0020.0004][.0000.010C.0004] # COMBINING LATIN SMALL LETTER INSULAR D
+A77A ; [.1C0A.0020.0004][.0000.010C.0004] # LATIN SMALL LETTER INSULAR D
+A779 ; [.1C0A.0020.000A][.0000.010C.0004] # LATIN CAPITAL LETTER INSULAR D
+3372 ; [.1C0A.0020.001C][.1BC2.0020.001C] # SQUARE DA
+0238 ; [.1C0A.0020.0004][.1BDB.0020.0004] # LATIN SMALL LETTER DB DIGRAPH
+33C8 ; [.1C0A.0020.001C][.1BDB.0020.001D] # SQUARE DB
+1F190 ; [.1C0A.0020.001D][.1CC7.0020.001D] # SQUARE DJ
+3397 ; [.1C0A.0020.001C][.1CF2.0020.001C] # SQUARE DL
+3377 ; [.1C0A.0020.001C][.1D25.0020.001C] # SQUARE DM
+3378 ; [.1C0A.0020.001C][.1D25.0020.001C][.1BBA.0020.001C] # SQUARE DM SQUARED
+3379 ; [.1C0A.0020.001C][.1D25.0020.001C][.1BBB.0020.001C] # SQUARE DM CUBED
+01F3 ; [.1C0A.0020.0004][.1E9C.0020.0004] # LATIN SMALL LETTER DZ
+02A3 ; [.1C0A.0020.0004][.1E9C.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH
+01F2 ; [.1C0A.0020.000A][.1E9C.0020.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+01F1 ; [.1C0A.0020.000A][.1E9C.0020.000A] # LATIN CAPITAL LETTER DZ
+01C6 ; [.1C0A.0020.0004][.1E9C.0020.0004][.0000.0028.0004] # LATIN SMALL LETTER DZ WITH CARON
+01C5 ; [.1C0A.0020.000A][.1E9C.0020.0004][.0000.0028.0004] # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+01C4 ; [.1C0A.0020.000A][.1E9C.0020.000A][.0000.0028.0004] # LATIN CAPITAL LETTER DZ WITH CARON
+02A5 ; [.1C0A.0020.0004][.1EAF.0020.0004] # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
+02A4 ; [.1C0A.0020.0004][.1EB9.0020.0004] # LATIN SMALL LETTER DEZH DIGRAPH
+1D05 ; [.1C0E.0020.0002] # LATIN LETTER SMALL CAPITAL D
+1D06 ; [.1C0F.0020.0002] # LATIN LETTER SMALL CAPITAL ETH
+1D6D ; [.1C10.0020.0002] # LATIN SMALL LETTER D WITH MIDDLE TILDE
+1D81 ; [.1C11.0020.0002] # LATIN SMALL LETTER D WITH PALATAL HOOK
+0256 ; [.1C12.0020.0002] # LATIN SMALL LETTER D WITH TAIL
+0189 ; [.1C12.0020.0008] # LATIN CAPITAL LETTER AFRICAN D
+0257 ; [.1C16.0020.0002] # LATIN SMALL LETTER D WITH HOOK
+018A ; [.1C16.0020.0008] # LATIN CAPITAL LETTER D WITH HOOK
+1D91 ; [.1C1A.0020.0002] # LATIN SMALL LETTER D WITH HOOK AND TAIL
+018C ; [.1C1B.0020.0002] # LATIN SMALL LETTER D WITH TOPBAR
+018B ; [.1C1B.0020.0008] # LATIN CAPITAL LETTER D WITH TOPBAR
+0221 ; [.1C1F.0020.0002] # LATIN SMALL LETTER D WITH CURL
+A771 ; [.1C23.0020.0002] # LATIN SMALL LETTER DUM
+1E9F ; [.1C24.0020.0002] # LATIN SMALL LETTER DELTA
+0065 ; [.1C25.0020.0002] # LATIN SMALL LETTER E
+FF45 ; [.1C25.0020.0003] # FULLWIDTH LATIN SMALL LETTER E
+0364 ; [.1C25.0020.0004] # COMBINING LATIN SMALL LETTER E
+24A0 ; [*0310.0020.0004][.1C25.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER E
+212F ; [.1C25.0020.0005] # SCRIPT SMALL E
+2147 ; [.1C25.0020.0005] # DOUBLE-STRUCK ITALIC SMALL E
+1D41E ; [.1C25.0020.0005] # MATHEMATICAL BOLD SMALL E
+1D452 ; [.1C25.0020.0005] # MATHEMATICAL ITALIC SMALL E
+1D486 ; [.1C25.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL E
+1D4EE ; [.1C25.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL E
+1D522 ; [.1C25.0020.0005] # MATHEMATICAL FRAKTUR SMALL E
+1D556 ; [.1C25.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL E
+1D58A ; [.1C25.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL E
+1D5BE ; [.1C25.0020.0005] # MATHEMATICAL SANS-SERIF SMALL E
+1D5F2 ; [.1C25.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL E
+1D626 ; [.1C25.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL E
+1D65A ; [.1C25.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
+1D68E ; [.1C25.0020.0005] # MATHEMATICAL MONOSPACE SMALL E
+24D4 ; [.1C25.0020.0006] # CIRCLED LATIN SMALL LETTER E
+0045 ; [.1C25.0020.0008] # LATIN CAPITAL LETTER E
+FF25 ; [.1C25.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER E
+1F114 ; [*0310.0020.0004][.1C25.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER E
+2130 ; [.1C25.0020.000B] # SCRIPT CAPITAL E
+1D404 ; [.1C25.0020.000B] # MATHEMATICAL BOLD CAPITAL E
+1D438 ; [.1C25.0020.000B] # MATHEMATICAL ITALIC CAPITAL E
+1D46C ; [.1C25.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL E
+1D4D4 ; [.1C25.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL E
+1D508 ; [.1C25.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL E
+1D53C ; [.1C25.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+1D570 ; [.1C25.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL E
+1D5A4 ; [.1C25.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL E
+1D5D8 ; [.1C25.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+1D60C ; [.1C25.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+1D640 ; [.1C25.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+1D674 ; [.1C25.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL E
+24BA ; [.1C25.0020.000C] # CIRCLED LATIN CAPITAL LETTER E
+1F154 ; [.1C25.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER E
+1D49 ; [.1C25.0020.0014] # MODIFIER LETTER SMALL E
+2091 ; [.1C25.0020.0015] # LATIN SUBSCRIPT SMALL LETTER E
+1D31 ; [.1C25.0020.001D] # MODIFIER LETTER CAPITAL E
+1F134 ; [.1C25.0020.001D] # SQUARED LATIN CAPITAL LETTER E
+1F174 ; [.1C25.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER E
+00E9 ; [.1C25.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH ACUTE
+00C9 ; [.1C25.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH ACUTE
+00E8 ; [.1C25.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH GRAVE
+00C8 ; [.1C25.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH GRAVE
+0115 ; [.1C25.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH BREVE
+0114 ; [.1C25.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH BREVE
+00EA ; [.1C25.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX
+00CA ; [.1C25.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+1EBF ; [.1C25.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBE ; [.1C25.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC1 ; [.1C25.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC0 ; [.1C25.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC5 ; [.1C25.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC4 ; [.1C25.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC3 ; [.1C25.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC2 ; [.1C25.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+011B ; [.1C25.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER E WITH CARON
+011A ; [.1C25.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER E WITH CARON
+00EB ; [.1C25.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER E WITH DIAERESIS
+00CB ; [.1C25.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER E WITH DIAERESIS
+1EBD ; [.1C25.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER E WITH TILDE
+1EBC ; [.1C25.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER E WITH TILDE
+0117 ; [.1C25.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER E WITH DOT ABOVE
+0116 ; [.1C25.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER E WITH DOT ABOVE
+0229 ; [.1C25.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER E WITH CEDILLA
+0228 ; [.1C25.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER E WITH CEDILLA
+1E1D ; [.1C25.0020.0002][.0000.0030.0002][.0000.0026.0002] # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1C ; [.1C25.0020.0008][.0000.0030.0002][.0000.0026.0002] # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+0119 ; [.1C25.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER E WITH OGONEK
+0118 ; [.1C25.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER E WITH OGONEK
+0113 ; [.1C25.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER E WITH MACRON
+0112 ; [.1C25.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER E WITH MACRON
+1E17 ; [.1C25.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E16 ; [.1C25.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E15 ; [.1C25.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E14 ; [.1C25.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1EBB ; [.1C25.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBA ; [.1C25.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+0205 ; [.1C25.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0204 ; [.1C25.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0207 ; [.1C25.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER E WITH INVERTED BREVE
+0206 ; [.1C25.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER E WITH INVERTED BREVE
+1EB9 ; [.1C25.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER E WITH DOT BELOW
+1EB8 ; [.1C25.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER E WITH DOT BELOW
+1EC7 ; [.1C25.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC6 ; [.1C25.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1E19 ; [.1C25.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E18 ; [.1C25.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E1B ; [.1C25.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER E WITH TILDE BELOW
+1E1A ; [.1C25.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER E WITH TILDE BELOW
+32CD ; [.1C25.0020.001C][.1DAE.0020.001C][.1C6F.0020.001C] # SQUARE ERG
+32CE ; [.1C25.0020.001C][.1E5E.0020.001D] # SQUARE EV
+1D07 ; [.1C29.0020.0002] # LATIN LETTER SMALL CAPITAL E
+AB32 ; [.1C2A.0020.0002] # LATIN SMALL LETTER BLACKLETTER E
+AB33 ; [.1C2B.0020.0002] # LATIN SMALL LETTER BARRED E
+0247 ; [.1C2C.0020.0002] # LATIN SMALL LETTER E WITH STROKE
+0246 ; [.1C2C.0020.0008] # LATIN CAPITAL LETTER E WITH STROKE
+1D92 ; [.1C30.0020.0002] # LATIN SMALL LETTER E WITH RETROFLEX HOOK
+AB34 ; [.1C31.0020.0002] # LATIN SMALL LETTER E WITH FLOURISH
+2C78 ; [.1C32.0020.0002] # LATIN SMALL LETTER E WITH NOTCH
+01DD ; [.1C33.0020.0002] # LATIN SMALL LETTER TURNED E
+018E ; [.1C33.0020.0008] # LATIN CAPITAL LETTER REVERSED E
+1D32 ; [.1C33.0020.001D] # MODIFIER LETTER CAPITAL REVERSED E
+2C7B ; [.1C37.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED E
+0259 ; [.1C38.0020.0002] # LATIN SMALL LETTER SCHWA
+1DEA ; [.1C38.0020.0004] # COMBINING LATIN SMALL LETTER SCHWA
+018F ; [.1C38.0020.0008] # LATIN CAPITAL LETTER SCHWA
+1D4A ; [.1C38.0020.0014] # MODIFIER LETTER SMALL SCHWA
+2094 ; [.1C38.0020.0015] # LATIN SUBSCRIPT SMALL LETTER SCHWA
+1D95 ; [.1C3C.0020.0002] # LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
+025B ; [.1C3D.0020.0002] # LATIN SMALL LETTER OPEN E
+0190 ; [.1C3D.0020.0008] # LATIN CAPITAL LETTER OPEN E
+2107 ; [.1C3D.0020.000A] # EULER CONSTANT
+1D4B ; [.1C3D.0020.0014] # MODIFIER LETTER SMALL OPEN E
+1D93 ; [.1C41.0020.0002] # LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
+0258 ; [.1C42.0020.0002] # LATIN SMALL LETTER REVERSED E
+025A ; [.1C46.0020.0002] # LATIN SMALL LETTER SCHWA WITH HOOK
+025C ; [.1C4A.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E
+A7AB ; [.1C4A.0020.0008] # LATIN CAPITAL LETTER REVERSED OPEN E
+1D9F ; [.1C4A.0020.0014] # MODIFIER LETTER SMALL REVERSED OPEN E
+1D94 ; [.1C4E.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
+1D08 ; [.1C4F.0020.0002] # LATIN SMALL LETTER TURNED OPEN E
+1D4C ; [.1C4F.0020.0014] # MODIFIER LETTER SMALL TURNED OPEN E
+025D ; [.1C50.0020.0002] # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
+025E ; [.1C54.0020.0002] # LATIN SMALL LETTER CLOSED REVERSED OPEN E
+029A ; [.1C58.0020.0002] # LATIN SMALL LETTER CLOSED OPEN E
+0264 ; [.1C5C.0020.0002] # LATIN SMALL LETTER RAMS HORN
+0066 ; [.1C60.0020.0002] # LATIN SMALL LETTER F
+FF46 ; [.1C60.0020.0003] # FULLWIDTH LATIN SMALL LETTER F
+1DEB ; [.1C60.0020.0004] # COMBINING LATIN SMALL LETTER F
+24A1 ; [*0310.0020.0004][.1C60.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER F
+1D41F ; [.1C60.0020.0005] # MATHEMATICAL BOLD SMALL F
+1D453 ; [.1C60.0020.0005] # MATHEMATICAL ITALIC SMALL F
+1D487 ; [.1C60.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL F
+1D4BB ; [.1C60.0020.0005] # MATHEMATICAL SCRIPT SMALL F
+1D4EF ; [.1C60.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL F
+1D523 ; [.1C60.0020.0005] # MATHEMATICAL FRAKTUR SMALL F
+1D557 ; [.1C60.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL F
+1D58B ; [.1C60.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL F
+1D5BF ; [.1C60.0020.0005] # MATHEMATICAL SANS-SERIF SMALL F
+1D5F3 ; [.1C60.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL F
+1D627 ; [.1C60.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL F
+1D65B ; [.1C60.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
+1D68F ; [.1C60.0020.0005] # MATHEMATICAL MONOSPACE SMALL F
+24D5 ; [.1C60.0020.0006] # CIRCLED LATIN SMALL LETTER F
+0046 ; [.1C60.0020.0008] # LATIN CAPITAL LETTER F
+FF26 ; [.1C60.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER F
+2109 ; [*04D7.0020.0004][.1C60.0020.000A] # DEGREE FAHRENHEIT
+1F115 ; [*0310.0020.0004][.1C60.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER F
+2131 ; [.1C60.0020.000B] # SCRIPT CAPITAL F
+1D405 ; [.1C60.0020.000B] # MATHEMATICAL BOLD CAPITAL F
+1D439 ; [.1C60.0020.000B] # MATHEMATICAL ITALIC CAPITAL F
+1D46D ; [.1C60.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL F
+1D4D5 ; [.1C60.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL F
+1D509 ; [.1C60.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL F
+1D53D ; [.1C60.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+1D571 ; [.1C60.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL F
+1D5A5 ; [.1C60.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL F
+1D5D9 ; [.1C60.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+1D60D ; [.1C60.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+1D641 ; [.1C60.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+1D675 ; [.1C60.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL F
+24BB ; [.1C60.0020.000C] # CIRCLED LATIN CAPITAL LETTER F
+1F155 ; [.1C60.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER F
+1DA0 ; [.1C60.0020.0014] # MODIFIER LETTER SMALL F
+1F135 ; [.1C60.0020.001D] # SQUARED LATIN CAPITAL LETTER F
+1F175 ; [.1C60.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER F
+1E1F ; [.1C60.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER F WITH DOT ABOVE
+1E1E ; [.1C60.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER F WITH DOT ABOVE
+A77C ; [.1C60.0020.0004][.0000.010C.0004] # LATIN SMALL LETTER INSULAR F
+A77B ; [.1C60.0020.000A][.0000.010C.0004] # LATIN CAPITAL LETTER INSULAR F
+213B ; [.1C60.0020.000A][.1BC2.0020.000A][.1E7A.0020.000A] # FACSIMILE SIGN
+FB00 ; [.1C60.0020.0004][.1C60.0020.0004] # LATIN SMALL LIGATURE FF
+FB03 ; [.1C60.0020.0004][.1C60.0020.0004][.1CAD.0020.0004] # LATIN SMALL LIGATURE FFI
+FB04 ; [.1C60.0020.0004][.1C60.0020.0004][.1CF2.0020.0004] # LATIN SMALL LIGATURE FFL
+FB01 ; [.1C60.0020.0004][.1CAD.0020.0004] # LATIN SMALL LIGATURE FI
+FB02 ; [.1C60.0020.0004][.1CF2.0020.0004] # LATIN SMALL LIGATURE FL
+3399 ; [.1C60.0020.001C][.1D25.0020.001C] # SQUARE FM
+02A9 ; [.1C60.0020.0004][.1D53.0020.0004] # LATIN SMALL LETTER FENG DIGRAPH
+1F193 ; [.1C60.0020.001D][.1DAE.0020.001D][.1C25.0020.001D][.1C25.0020.001D] # SQUARED FREE
+A730 ; [.1C64.0020.0002] # LATIN LETTER SMALL CAPITAL F
+AB35 ; [.1C65.0020.0002] # LATIN SMALL LETTER LENIS F
+A799 ; [.1C66.0020.0002] # LATIN SMALL LETTER F WITH STROKE
+A798 ; [.1C66.0020.0008] # LATIN CAPITAL LETTER F WITH STROKE
+1D6E ; [.1C67.0020.0002] # LATIN SMALL LETTER F WITH MIDDLE TILDE
+1D82 ; [.1C68.0020.0002] # LATIN SMALL LETTER F WITH PALATAL HOOK
+0192 ; [.1C69.0020.0002] # LATIN SMALL LETTER F WITH HOOK
+0191 ; [.1C69.0020.0008] # LATIN CAPITAL LETTER F WITH HOOK
+214E ; [.1C6D.0020.0002] # TURNED SMALL F
+2132 ; [.1C6D.0020.0008] # TURNED CAPITAL F
+A7FB ; [.1C6E.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED F
+0067 ; [.1C6F.0020.0002] # LATIN SMALL LETTER G
+FF47 ; [.1C6F.0020.0003] # FULLWIDTH LATIN SMALL LETTER G
+1DDA ; [.1C6F.0020.0004] # COMBINING LATIN SMALL LETTER G
+24A2 ; [*0310.0020.0004][.1C6F.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER G
+210A ; [.1C6F.0020.0005] # SCRIPT SMALL G
+1D420 ; [.1C6F.0020.0005] # MATHEMATICAL BOLD SMALL G
+1D454 ; [.1C6F.0020.0005] # MATHEMATICAL ITALIC SMALL G
+1D488 ; [.1C6F.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL G
+1D4F0 ; [.1C6F.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL G
+1D524 ; [.1C6F.0020.0005] # MATHEMATICAL FRAKTUR SMALL G
+1D558 ; [.1C6F.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL G
+1D58C ; [.1C6F.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL G
+1D5C0 ; [.1C6F.0020.0005] # MATHEMATICAL SANS-SERIF SMALL G
+1D5F4 ; [.1C6F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL G
+1D628 ; [.1C6F.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL G
+1D65C ; [.1C6F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
+1D690 ; [.1C6F.0020.0005] # MATHEMATICAL MONOSPACE SMALL G
+24D6 ; [.1C6F.0020.0006] # CIRCLED LATIN SMALL LETTER G
+0047 ; [.1C6F.0020.0008] # LATIN CAPITAL LETTER G
+FF27 ; [.1C6F.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER G
+1F116 ; [*0310.0020.0004][.1C6F.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER G
+1D406 ; [.1C6F.0020.000B] # MATHEMATICAL BOLD CAPITAL G
+1D43A ; [.1C6F.0020.000B] # MATHEMATICAL ITALIC CAPITAL G
+1D46E ; [.1C6F.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL G
+1D4A2 ; [.1C6F.0020.000B] # MATHEMATICAL SCRIPT CAPITAL G
+1D4D6 ; [.1C6F.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL G
+1D50A ; [.1C6F.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL G
+1D53E ; [.1C6F.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D572 ; [.1C6F.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL G
+1D5A6 ; [.1C6F.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL G
+1D5DA ; [.1C6F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+1D60E ; [.1C6F.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+1D642 ; [.1C6F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+1D676 ; [.1C6F.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL G
+24BC ; [.1C6F.0020.000C] # CIRCLED LATIN CAPITAL LETTER G
+1F156 ; [.1C6F.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER G
+1D4D ; [.1C6F.0020.0014] # MODIFIER LETTER SMALL G
+1D33 ; [.1C6F.0020.001D] # MODIFIER LETTER CAPITAL G
+1F136 ; [.1C6F.0020.001D] # SQUARED LATIN CAPITAL LETTER G
+1F176 ; [.1C6F.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER G
+01F5 ; [.1C6F.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER G WITH ACUTE
+01F4 ; [.1C6F.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER G WITH ACUTE
+011F ; [.1C6F.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER G WITH BREVE
+011E ; [.1C6F.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER G WITH BREVE
+011D ; [.1C6F.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER G WITH CIRCUMFLEX
+011C ; [.1C6F.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+01E7 ; [.1C6F.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER G WITH CARON
+01E6 ; [.1C6F.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER G WITH CARON
+0121 ; [.1C6F.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER G WITH DOT ABOVE
+0120 ; [.1C6F.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0123 ; [.1C6F.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER G WITH CEDILLA
+0122 ; [.1C6F.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER G WITH CEDILLA
+1E21 ; [.1C6F.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER G WITH MACRON
+1E20 ; [.1C6F.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER G WITH MACRON
+A7A1 ; [.1C6F.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER G WITH OBLIQUE STROKE
+A7A0 ; [.1C6F.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
+1D79 ; [.1C6F.0020.0004][.0000.010C.0004] # LATIN SMALL LETTER INSULAR G
+A77D ; [.1C6F.0020.000A][.0000.010C.0004] # LATIN CAPITAL LETTER INSULAR G
+33FF ; [.1C6F.0020.001C][.1BC2.0020.001C][.1CF2.0020.001C] # SQUARE GAL
+3387 ; [.1C6F.0020.001D][.1BDB.0020.001D] # SQUARE GB
+3393 ; [.1C6F.0020.001D][.1C93.0020.001D][.1E9C.0020.001C] # SQUARE GHZ
+33AC ; [.1C6F.0020.001D][.1D87.0020.001D][.1BC2.0020.001C] # SQUARE GPA
+33C9 ; [.1C6F.0020.001D][.1E86.0020.001C] # SQUARE GY
+0261 ; [.1C73.0020.0002] # LATIN SMALL LETTER SCRIPT G
+A7AC ; [.1C73.0020.0008] # LATIN CAPITAL LETTER SCRIPT G
+1DA2 ; [.1C73.0020.0014] # MODIFIER LETTER SMALL SCRIPT G
+AB36 ; [.1C77.0020.0002] # LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL
+0262 ; [.1C78.0020.0002] # LATIN LETTER SMALL CAPITAL G
+1DDB ; [.1C78.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL G
+01E5 ; [.1C7C.0020.0002] # LATIN SMALL LETTER G WITH STROKE
+01E4 ; [.1C7C.0020.0008] # LATIN CAPITAL LETTER G WITH STROKE
+1D83 ; [.1C80.0020.0002] # LATIN SMALL LETTER G WITH PALATAL HOOK
+0260 ; [.1C81.0020.0002] # LATIN SMALL LETTER G WITH HOOK
+0193 ; [.1C81.0020.0008] # LATIN CAPITAL LETTER G WITH HOOK
+029B ; [.1C85.0020.0002] # LATIN LETTER SMALL CAPITAL G WITH HOOK
+1D77 ; [.1C89.0020.0002] # LATIN SMALL LETTER TURNED G
+A77F ; [.1C8A.0020.0002] # LATIN SMALL LETTER TURNED INSULAR G
+A77E ; [.1C8A.0020.0008] # LATIN CAPITAL LETTER TURNED INSULAR G
+0263 ; [.1C8B.0020.0002] # LATIN SMALL LETTER GAMMA
+0194 ; [.1C8B.0020.0008] # LATIN CAPITAL LETTER GAMMA
+02E0 ; [.1C8B.0020.0014] # MODIFIER LETTER SMALL GAMMA
+01A3 ; [.1C8F.0020.0002] # LATIN SMALL LETTER OI
+01A2 ; [.1C8F.0020.0008] # LATIN CAPITAL LETTER OI
+0068 ; [.1C93.0020.0002] # LATIN SMALL LETTER H
+FF48 ; [.1C93.0020.0003] # FULLWIDTH LATIN SMALL LETTER H
+036A ; [.1C93.0020.0004] # COMBINING LATIN SMALL LETTER H
+24A3 ; [*0310.0020.0004][.1C93.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER H
+210E ; [.1C93.0020.0005] # PLANCK CONSTANT
+1D421 ; [.1C93.0020.0005] # MATHEMATICAL BOLD SMALL H
+1D489 ; [.1C93.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL H
+1D4BD ; [.1C93.0020.0005] # MATHEMATICAL SCRIPT SMALL H
+1D4F1 ; [.1C93.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL H
+1D525 ; [.1C93.0020.0005] # MATHEMATICAL FRAKTUR SMALL H
+1D559 ; [.1C93.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL H
+1D58D ; [.1C93.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL H
+1D5C1 ; [.1C93.0020.0005] # MATHEMATICAL SANS-SERIF SMALL H
+1D5F5 ; [.1C93.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL H
+1D629 ; [.1C93.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL H
+1D65D ; [.1C93.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
+1D691 ; [.1C93.0020.0005] # MATHEMATICAL MONOSPACE SMALL H
+24D7 ; [.1C93.0020.0006] # CIRCLED LATIN SMALL LETTER H
+0048 ; [.1C93.0020.0008] # LATIN CAPITAL LETTER H
+FF28 ; [.1C93.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER H
+1F117 ; [*0310.0020.0004][.1C93.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER H
+210B ; [.1C93.0020.000B] # SCRIPT CAPITAL H
+210C ; [.1C93.0020.000B] # BLACK-LETTER CAPITAL H
+210D ; [.1C93.0020.000B] # DOUBLE-STRUCK CAPITAL H
+1D407 ; [.1C93.0020.000B] # MATHEMATICAL BOLD CAPITAL H
+1D43B ; [.1C93.0020.000B] # MATHEMATICAL ITALIC CAPITAL H
+1D46F ; [.1C93.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL H
+1D4D7 ; [.1C93.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL H
+1D573 ; [.1C93.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL H
+1D5A7 ; [.1C93.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL H
+1D5DB ; [.1C93.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+1D60F ; [.1C93.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+1D643 ; [.1C93.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+1D677 ; [.1C93.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL H
+24BD ; [.1C93.0020.000C] # CIRCLED LATIN CAPITAL LETTER H
+1F157 ; [.1C93.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER H
+02B0 ; [.1C93.0020.0014] # MODIFIER LETTER SMALL H
+2095 ; [.1C93.0020.0015] # LATIN SUBSCRIPT SMALL LETTER H
+1D34 ; [.1C93.0020.001D] # MODIFIER LETTER CAPITAL H
+1F137 ; [.1C93.0020.001D] # SQUARED LATIN CAPITAL LETTER H
+1F177 ; [.1C93.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER H
+0125 ; [.1C93.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER H WITH CIRCUMFLEX
+0124 ; [.1C93.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+021F ; [.1C93.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER H WITH CARON
+021E ; [.1C93.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER H WITH CARON
+1E27 ; [.1C93.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER H WITH DIAERESIS
+1E26 ; [.1C93.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER H WITH DIAERESIS
+1E23 ; [.1C93.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER H WITH DOT ABOVE
+1E22 ; [.1C93.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E29 ; [.1C93.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER H WITH CEDILLA
+1E28 ; [.1C93.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER H WITH CEDILLA
+0127 ; [.1C93.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER H WITH STROKE
+210F ; [.1C93.0020.0002][.0000.0039.0002] # PLANCK CONSTANT OVER TWO PI
+0126 ; [.1C93.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER H WITH STROKE
+A7F8 ; [.1C93.0020.0014][.0000.0039.0014] # MODIFIER LETTER CAPITAL H WITH STROKE
+1E25 ; [.1C93.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER H WITH DOT BELOW
+1E24 ; [.1C93.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER H WITH DOT BELOW
+1E2B ; [.1C93.0020.0002][.0000.0047.0002] # LATIN SMALL LETTER H WITH BREVE BELOW
+1E2A ; [.1C93.0020.0008][.0000.0047.0002] # LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E96 ; [.1C93.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER H WITH LINE BELOW
+33CA ; [.1C93.0020.001C][.1BC2.0020.001C] # SQUARE HA
+32CC ; [.1C93.0020.001D][.1C6F.0020.001C] # SQUARE HG
+33CB ; [.1C93.0020.001D][.1D87.0020.001D] # SQUARE HP
+3371 ; [.1C93.0020.001C][.1D87.0020.001D][.1BC2.0020.001C] # SQUARE HPA
+1F14A ; [.1C93.0020.001D][.1E5E.0020.001D] # SQUARED HV
+3390 ; [.1C93.0020.001D][.1E9C.0020.001C] # SQUARE HZ
+029C ; [.1C97.0020.0002] # LATIN LETTER SMALL CAPITAL H
+0195 ; [.1C9B.0020.0002] # LATIN SMALL LETTER HV
+01F6 ; [.1C9B.0020.0008] # LATIN CAPITAL LETTER HWAIR
+A795 ; [.1C9F.0020.0002] # LATIN SMALL LETTER H WITH PALATAL HOOK
+0266 ; [.1CA0.0020.0002] # LATIN SMALL LETTER H WITH HOOK
+A7AA ; [.1CA0.0020.0008] # LATIN CAPITAL LETTER H WITH HOOK
+02B1 ; [.1CA0.0020.0014] # MODIFIER LETTER SMALL H WITH HOOK
+2C68 ; [.1CA4.0020.0002] # LATIN SMALL LETTER H WITH DESCENDER
+2C67 ; [.1CA4.0020.0008] # LATIN CAPITAL LETTER H WITH DESCENDER
+2C76 ; [.1CA5.0020.0002] # LATIN SMALL LETTER HALF H
+2C75 ; [.1CA5.0020.0008] # LATIN CAPITAL LETTER HALF H
+A727 ; [.1CA6.0020.0002] # LATIN SMALL LETTER HENG
+A726 ; [.1CA6.0020.0008] # LATIN CAPITAL LETTER HENG
+AB5C ; [.1CA6.0020.0014] # MODIFIER LETTER SMALL HENG
+0267 ; [.1CA7.0020.0002] # LATIN SMALL LETTER HENG WITH HOOK
+02BB ; [.1CAB.0020.0002] # MODIFIER LETTER TURNED COMMA
+02BD ; [.1CAC.0020.0002] # MODIFIER LETTER REVERSED COMMA
+0069 ; [.1CAD.0020.0002] # LATIN SMALL LETTER I
+FF49 ; [.1CAD.0020.0003] # FULLWIDTH LATIN SMALL LETTER I
+0365 ; [.1CAD.0020.0004] # COMBINING LATIN SMALL LETTER I
+2170 ; [.1CAD.0020.0004] # SMALL ROMAN NUMERAL ONE
+24A4 ; [*0310.0020.0004][.1CAD.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER I
+2139 ; [.1CAD.0020.0005] # INFORMATION SOURCE
+2148 ; [.1CAD.0020.0005] # DOUBLE-STRUCK ITALIC SMALL I
+1D422 ; [.1CAD.0020.0005] # MATHEMATICAL BOLD SMALL I
+1D456 ; [.1CAD.0020.0005] # MATHEMATICAL ITALIC SMALL I
+1D48A ; [.1CAD.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL I
+1D4BE ; [.1CAD.0020.0005] # MATHEMATICAL SCRIPT SMALL I
+1D4F2 ; [.1CAD.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL I
+1D526 ; [.1CAD.0020.0005] # MATHEMATICAL FRAKTUR SMALL I
+1D55A ; [.1CAD.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL I
+1D58E ; [.1CAD.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL I
+1D5C2 ; [.1CAD.0020.0005] # MATHEMATICAL SANS-SERIF SMALL I
+1D5F6 ; [.1CAD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL I
+1D62A ; [.1CAD.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL I
+1D65E ; [.1CAD.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
+1D692 ; [.1CAD.0020.0005] # MATHEMATICAL MONOSPACE SMALL I
+24D8 ; [.1CAD.0020.0006] # CIRCLED LATIN SMALL LETTER I
+0049 ; [.1CAD.0020.0008] # LATIN CAPITAL LETTER I
+FF29 ; [.1CAD.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER I
+2160 ; [.1CAD.0020.000A] # ROMAN NUMERAL ONE
+1F118 ; [*0310.0020.0004][.1CAD.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER I
+2110 ; [.1CAD.0020.000B] # SCRIPT CAPITAL I
+2111 ; [.1CAD.0020.000B] # BLACK-LETTER CAPITAL I
+1D408 ; [.1CAD.0020.000B] # MATHEMATICAL BOLD CAPITAL I
+1D43C ; [.1CAD.0020.000B] # MATHEMATICAL ITALIC CAPITAL I
+1D470 ; [.1CAD.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL I
+1D4D8 ; [.1CAD.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL I
+1D540 ; [.1CAD.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+1D574 ; [.1CAD.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL I
+1D5A8 ; [.1CAD.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL I
+1D5DC ; [.1CAD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+1D610 ; [.1CAD.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+1D644 ; [.1CAD.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+1D678 ; [.1CAD.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL I
+24BE ; [.1CAD.0020.000C] # CIRCLED LATIN CAPITAL LETTER I
+1F158 ; [.1CAD.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER I
+2071 ; [.1CAD.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER I
+1D62 ; [.1CAD.0020.0015] # LATIN SUBSCRIPT SMALL LETTER I
+1D35 ; [.1CAD.0020.001D] # MODIFIER LETTER CAPITAL I
+1F138 ; [.1CAD.0020.001D] # SQUARED LATIN CAPITAL LETTER I
+1F178 ; [.1CAD.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER I
+00ED ; [.1CAD.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH ACUTE
+00CD ; [.1CAD.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH ACUTE
+00EC ; [.1CAD.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER I WITH GRAVE
+00CC ; [.1CAD.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER I WITH GRAVE
+012D ; [.1CAD.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER I WITH BREVE
+012C ; [.1CAD.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER I WITH BREVE
+00EE ; [.1CAD.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER I WITH CIRCUMFLEX
+00CE ; [.1CAD.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+01D0 ; [.1CAD.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER I WITH CARON
+01CF ; [.1CAD.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER I WITH CARON
+00EF ; [.1CAD.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER I WITH DIAERESIS
+00CF ; [.1CAD.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS
+1E2F ; [.1CAD.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E2E ; [.1CAD.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+0129 ; [.1CAD.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER I WITH TILDE
+0128 ; [.1CAD.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER I WITH TILDE
+0130 ; [.1CAD.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER I WITH DOT ABOVE
+012F ; [.1CAD.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER I WITH OGONEK
+012E ; [.1CAD.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER I WITH OGONEK
+012B ; [.1CAD.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER I WITH MACRON
+012A ; [.1CAD.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER I WITH MACRON
+1EC9 ; [.1CAD.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER I WITH HOOK ABOVE
+1EC8 ; [.1CAD.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+0209 ; [.1CAD.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER I WITH DOUBLE GRAVE
+0208 ; [.1CAD.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+020B ; [.1CAD.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER I WITH INVERTED BREVE
+020A ; [.1CAD.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER I WITH INVERTED BREVE
+1ECB ; [.1CAD.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER I WITH DOT BELOW
+1ECA ; [.1CAD.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER I WITH DOT BELOW
+1E2D ; [.1CAD.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER I WITH TILDE BELOW
+1E2C ; [.1CAD.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER I WITH TILDE BELOW
+1F18B ; [.1CAD.0020.001D][.1BF5.0020.001D] # NEGATIVE SQUARED IC
+1F194 ; [.1CAD.0020.001D][.1C0A.0020.001D] # SQUARED ID
+2171 ; [.1CAD.0020.0004][.1CAD.0020.0004] # SMALL ROMAN NUMERAL TWO
+2161 ; [.1CAD.0020.000A][.1CAD.0020.000A] # ROMAN NUMERAL TWO
+2172 ; [.1CAD.0020.0004][.1CAD.0020.0004][.1CAD.0020.0004] # SMALL ROMAN NUMERAL THREE
+2162 ; [.1CAD.0020.000A][.1CAD.0020.000A][.1CAD.0020.000A] # ROMAN NUMERAL THREE
+0133 ; [.1CAD.0020.0004][.1CC7.0020.0004] # LATIN SMALL LIGATURE IJ
+0132 ; [.1CAD.0020.000A][.1CC7.0020.000A] # LATIN CAPITAL LIGATURE IJ
+33CC ; [.1CAD.0020.001C][.1D34.0020.001C] # SQUARE IN
+337A ; [.1CAD.0020.001D][.1E30.0020.001D] # SQUARE IU
+2173 ; [.1CAD.0020.0004][.1E5E.0020.0004] # SMALL ROMAN NUMERAL FOUR
+2163 ; [.1CAD.0020.000A][.1E5E.0020.000A] # ROMAN NUMERAL FOUR
+2178 ; [.1CAD.0020.0004][.1E7A.0020.0004] # SMALL ROMAN NUMERAL NINE
+2168 ; [.1CAD.0020.000A][.1E7A.0020.000A] # ROMAN NUMERAL NINE
+0131 ; [.1CB1.0020.0002] # LATIN SMALL LETTER DOTLESS I
+1D6A4 ; [.1CB1.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS I
+026A ; [.1CB5.0020.0002] # LATIN LETTER SMALL CAPITAL I
+1DA6 ; [.1CB5.0020.0014] # MODIFIER LETTER SMALL CAPITAL I
+A7FE ; [.1CB9.0020.0002] # LATIN EPIGRAPHIC LETTER I LONGA
+A7F7 ; [.1CBA.0020.0002] # LATIN EPIGRAPHIC LETTER SIDEWAYS I
+1D09 ; [.1CBB.0020.0002] # LATIN SMALL LETTER TURNED I
+1D4E ; [.1CBB.0020.0014] # MODIFIER LETTER SMALL TURNED I
+0268 ; [.1CBC.0020.0002] # LATIN SMALL LETTER I WITH STROKE
+0197 ; [.1CBC.0020.0008] # LATIN CAPITAL LETTER I WITH STROKE
+1DA4 ; [.1CBC.0020.0014] # MODIFIER LETTER SMALL I WITH STROKE
+1D7B ; [.1CC0.0020.0002] # LATIN SMALL CAPITAL LETTER I WITH STROKE
+1DA7 ; [.1CC0.0020.0014] # MODIFIER LETTER SMALL CAPITAL I WITH STROKE
+1D96 ; [.1CC1.0020.0002] # LATIN SMALL LETTER I WITH RETROFLEX HOOK
+0269 ; [.1CC2.0020.0002] # LATIN SMALL LETTER IOTA
+0196 ; [.1CC2.0020.0008] # LATIN CAPITAL LETTER IOTA
+1DA5 ; [.1CC2.0020.0014] # MODIFIER LETTER SMALL IOTA
+1D7C ; [.1CC6.0020.0002] # LATIN SMALL LETTER IOTA WITH STROKE
+006A ; [.1CC7.0020.0002] # LATIN SMALL LETTER J
+FF4A ; [.1CC7.0020.0003] # FULLWIDTH LATIN SMALL LETTER J
+24A5 ; [*0310.0020.0004][.1CC7.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER J
+2149 ; [.1CC7.0020.0005] # DOUBLE-STRUCK ITALIC SMALL J
+1D423 ; [.1CC7.0020.0005] # MATHEMATICAL BOLD SMALL J
+1D457 ; [.1CC7.0020.0005] # MATHEMATICAL ITALIC SMALL J
+1D48B ; [.1CC7.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL J
+1D4BF ; [.1CC7.0020.0005] # MATHEMATICAL SCRIPT SMALL J
+1D4F3 ; [.1CC7.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL J
+1D527 ; [.1CC7.0020.0005] # MATHEMATICAL FRAKTUR SMALL J
+1D55B ; [.1CC7.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL J
+1D58F ; [.1CC7.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL J
+1D5C3 ; [.1CC7.0020.0005] # MATHEMATICAL SANS-SERIF SMALL J
+1D5F7 ; [.1CC7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL J
+1D62B ; [.1CC7.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL J
+1D65F ; [.1CC7.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
+1D693 ; [.1CC7.0020.0005] # MATHEMATICAL MONOSPACE SMALL J
+24D9 ; [.1CC7.0020.0006] # CIRCLED LATIN SMALL LETTER J
+004A ; [.1CC7.0020.0008] # LATIN CAPITAL LETTER J
+FF2A ; [.1CC7.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER J
+1F119 ; [*0310.0020.0004][.1CC7.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER J
+1D409 ; [.1CC7.0020.000B] # MATHEMATICAL BOLD CAPITAL J
+1D43D ; [.1CC7.0020.000B] # MATHEMATICAL ITALIC CAPITAL J
+1D471 ; [.1CC7.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL J
+1D4A5 ; [.1CC7.0020.000B] # MATHEMATICAL SCRIPT CAPITAL J
+1D4D9 ; [.1CC7.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL J
+1D50D ; [.1CC7.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL J
+1D541 ; [.1CC7.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+1D575 ; [.1CC7.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL J
+1D5A9 ; [.1CC7.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL J
+1D5DD ; [.1CC7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+1D611 ; [.1CC7.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+1D645 ; [.1CC7.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+1D679 ; [.1CC7.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL J
+24BF ; [.1CC7.0020.000C] # CIRCLED LATIN CAPITAL LETTER J
+1F159 ; [.1CC7.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER J
+02B2 ; [.1CC7.0020.0014] # MODIFIER LETTER SMALL J
+2C7C ; [.1CC7.0020.0015] # LATIN SUBSCRIPT SMALL LETTER J
+1D36 ; [.1CC7.0020.001D] # MODIFIER LETTER CAPITAL J
+1F139 ; [.1CC7.0020.001D] # SQUARED LATIN CAPITAL LETTER J
+1F179 ; [.1CC7.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER J
+0135 ; [.1CC7.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER J WITH CIRCUMFLEX
+0134 ; [.1CC7.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+01F0 ; [.1CC7.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER J WITH CARON
+0237 ; [.1CCB.0020.0002] # LATIN SMALL LETTER DOTLESS J
+1D6A5 ; [.1CCB.0020.0005] # MATHEMATICAL ITALIC SMALL DOTLESS J
+1D0A ; [.1CCF.0020.0002] # LATIN LETTER SMALL CAPITAL J
+0249 ; [.1CD0.0020.0002] # LATIN SMALL LETTER J WITH STROKE
+0248 ; [.1CD0.0020.0008] # LATIN CAPITAL LETTER J WITH STROKE
+029D ; [.1CD4.0020.0002] # LATIN SMALL LETTER J WITH CROSSED-TAIL
+A7B2 ; [.1CD4.0020.0008] # LATIN CAPITAL LETTER J WITH CROSSED-TAIL
+1DA8 ; [.1CD4.0020.0014] # MODIFIER LETTER SMALL J WITH CROSSED-TAIL
+025F ; [.1CD8.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE
+1DA1 ; [.1CD8.0020.0014] # MODIFIER LETTER SMALL DOTLESS J WITH STROKE
+0284 ; [.1CDC.0020.0002] # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
+006B ; [.1CE0.0020.0002] # LATIN SMALL LETTER K
+FF4B ; [.1CE0.0020.0003] # FULLWIDTH LATIN SMALL LETTER K
+1DDC ; [.1CE0.0020.0004] # COMBINING LATIN SMALL LETTER K
+24A6 ; [*0310.0020.0004][.1CE0.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER K
+1D424 ; [.1CE0.0020.0005] # MATHEMATICAL BOLD SMALL K
+1D458 ; [.1CE0.0020.0005] # MATHEMATICAL ITALIC SMALL K
+1D48C ; [.1CE0.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL K
+1D4C0 ; [.1CE0.0020.0005] # MATHEMATICAL SCRIPT SMALL K
+1D4F4 ; [.1CE0.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL K
+1D528 ; [.1CE0.0020.0005] # MATHEMATICAL FRAKTUR SMALL K
+1D55C ; [.1CE0.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL K
+1D590 ; [.1CE0.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL K
+1D5C4 ; [.1CE0.0020.0005] # MATHEMATICAL SANS-SERIF SMALL K
+1D5F8 ; [.1CE0.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL K
+1D62C ; [.1CE0.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL K
+1D660 ; [.1CE0.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
+1D694 ; [.1CE0.0020.0005] # MATHEMATICAL MONOSPACE SMALL K
+24DA ; [.1CE0.0020.0006] # CIRCLED LATIN SMALL LETTER K
+004B ; [.1CE0.0020.0008] # LATIN CAPITAL LETTER K
+212A ; [.1CE0.0020.0008] # KELVIN SIGN
+FF2B ; [.1CE0.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER K
+1F11A ; [*0310.0020.0004][.1CE0.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER K
+1D40A ; [.1CE0.0020.000B] # MATHEMATICAL BOLD CAPITAL K
+1D43E ; [.1CE0.0020.000B] # MATHEMATICAL ITALIC CAPITAL K
+1D472 ; [.1CE0.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL K
+1D4A6 ; [.1CE0.0020.000B] # MATHEMATICAL SCRIPT CAPITAL K
+1D4DA ; [.1CE0.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL K
+1D50E ; [.1CE0.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL K
+1D542 ; [.1CE0.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+1D576 ; [.1CE0.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL K
+1D5AA ; [.1CE0.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL K
+1D5DE ; [.1CE0.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+1D612 ; [.1CE0.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+1D646 ; [.1CE0.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+1D67A ; [.1CE0.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL K
+24C0 ; [.1CE0.0020.000C] # CIRCLED LATIN CAPITAL LETTER K
+1F15A ; [.1CE0.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER K
+1D4F ; [.1CE0.0020.0014] # MODIFIER LETTER SMALL K
+2096 ; [.1CE0.0020.0015] # LATIN SUBSCRIPT SMALL LETTER K
+1D37 ; [.1CE0.0020.001D] # MODIFIER LETTER CAPITAL K
+1F13A ; [.1CE0.0020.001D] # SQUARED LATIN CAPITAL LETTER K
+1F17A ; [.1CE0.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER K
+1E31 ; [.1CE0.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER K WITH ACUTE
+1E30 ; [.1CE0.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER K WITH ACUTE
+01E9 ; [.1CE0.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER K WITH CARON
+01E8 ; [.1CE0.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER K WITH CARON
+0137 ; [.1CE0.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER K WITH CEDILLA
+0136 ; [.1CE0.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER K WITH CEDILLA
+A7A3 ; [.1CE0.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER K WITH OBLIQUE STROKE
+A7A2 ; [.1CE0.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
+1E33 ; [.1CE0.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER K WITH DOT BELOW
+1E32 ; [.1CE0.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER K WITH DOT BELOW
+1E35 ; [.1CE0.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER K WITH LINE BELOW
+1E34 ; [.1CE0.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER K WITH LINE BELOW
+3384 ; [.1CE0.0020.001C][.1BC2.0020.001D] # SQUARE KA
+3385 ; [.1CE0.0020.001D][.1BDB.0020.001D] # SQUARE KB
+3389 ; [.1CE0.0020.001C][.1BF5.0020.001C][.1BC2.0020.001C][.1CF2.0020.001C] # SQUARE KCAL
+338F ; [.1CE0.0020.001C][.1C6F.0020.001C] # SQUARE KG
+3391 ; [.1CE0.0020.001C][.1C93.0020.001D][.1E9C.0020.001C] # SQUARE KHZ
+33CD ; [.1CE0.0020.001D][.1CE0.0020.001D] # SQUARE KK
+3398 ; [.1CE0.0020.001C][.1CF2.0020.001C] # SQUARE KL
+339E ; [.1CE0.0020.001C][.1D25.0020.001C] # SQUARE KM
+33CE ; [.1CE0.0020.001D][.1D25.0020.001D] # SQUARE KM CAPITAL
+33A2 ; [.1CE0.0020.001C][.1D25.0020.001C][.1BBA.0020.001C] # SQUARE KM SQUARED
+33A6 ; [.1CE0.0020.001C][.1D25.0020.001C][.1BBB.0020.001C] # SQUARE KM CUBED
+33AA ; [.1CE0.0020.001C][.1D87.0020.001D][.1BC2.0020.001C] # SQUARE KPA
+33CF ; [.1CE0.0020.001C][.1E10.0020.001C] # SQUARE KT
+33B8 ; [.1CE0.0020.001C][.1E5E.0020.001D] # SQUARE KV
+33BE ; [.1CE0.0020.001C][.1E70.0020.001D] # SQUARE KW
+33C0 ; [.1CE0.0020.001C][.1F5C.0020.001D] # SQUARE K OHM
+1D0B ; [.1CE4.0020.0002] # LATIN LETTER SMALL CAPITAL K
+1D84 ; [.1CE5.0020.0002] # LATIN SMALL LETTER K WITH PALATAL HOOK
+0199 ; [.1CE6.0020.0002] # LATIN SMALL LETTER K WITH HOOK
+0198 ; [.1CE6.0020.0008] # LATIN CAPITAL LETTER K WITH HOOK
+2C6A ; [.1CEA.0020.0002] # LATIN SMALL LETTER K WITH DESCENDER
+2C69 ; [.1CEA.0020.0008] # LATIN CAPITAL LETTER K WITH DESCENDER
+A741 ; [.1CEB.0020.0002] # LATIN SMALL LETTER K WITH STROKE
+A740 ; [.1CEB.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE
+A743 ; [.1CEC.0020.0002] # LATIN SMALL LETTER K WITH DIAGONAL STROKE
+A742 ; [.1CEC.0020.0008] # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+A745 ; [.1CED.0020.0002] # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
+A744 ; [.1CED.0020.0008] # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+029E ; [.1CEE.0020.0002] # LATIN SMALL LETTER TURNED K
+A7B0 ; [.1CEE.0020.0008] # LATIN CAPITAL LETTER TURNED K
+006C ; [.1CF2.0020.0002] # LATIN SMALL LETTER L
+FF4C ; [.1CF2.0020.0003] # FULLWIDTH LATIN SMALL LETTER L
+1DDD ; [.1CF2.0020.0004] # COMBINING LATIN SMALL LETTER L
+217C ; [.1CF2.0020.0004] # SMALL ROMAN NUMERAL FIFTY
+24A7 ; [*0310.0020.0004][.1CF2.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER L
+2113 ; [.1CF2.0020.0005] # SCRIPT SMALL L
+1D425 ; [.1CF2.0020.0005] # MATHEMATICAL BOLD SMALL L
+1D459 ; [.1CF2.0020.0005] # MATHEMATICAL ITALIC SMALL L
+1D48D ; [.1CF2.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL L
+1D4C1 ; [.1CF2.0020.0005] # MATHEMATICAL SCRIPT SMALL L
+1D4F5 ; [.1CF2.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL L
+1D529 ; [.1CF2.0020.0005] # MATHEMATICAL FRAKTUR SMALL L
+1D55D ; [.1CF2.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL L
+1D591 ; [.1CF2.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL L
+1D5C5 ; [.1CF2.0020.0005] # MATHEMATICAL SANS-SERIF SMALL L
+1D5F9 ; [.1CF2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL L
+1D62D ; [.1CF2.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL L
+1D661 ; [.1CF2.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
+1D695 ; [.1CF2.0020.0005] # MATHEMATICAL MONOSPACE SMALL L
+24DB ; [.1CF2.0020.0006] # CIRCLED LATIN SMALL LETTER L
+004C ; [.1CF2.0020.0008] # LATIN CAPITAL LETTER L
+FF2C ; [.1CF2.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER L
+216C ; [.1CF2.0020.000A] # ROMAN NUMERAL FIFTY
+1F11B ; [*0310.0020.0004][.1CF2.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER L
+2112 ; [.1CF2.0020.000B] # SCRIPT CAPITAL L
+1D40B ; [.1CF2.0020.000B] # MATHEMATICAL BOLD CAPITAL L
+1D43F ; [.1CF2.0020.000B] # MATHEMATICAL ITALIC CAPITAL L
+1D473 ; [.1CF2.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL L
+1D4DB ; [.1CF2.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL L
+1D50F ; [.1CF2.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL L
+1D543 ; [.1CF2.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+1D577 ; [.1CF2.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL L
+1D5AB ; [.1CF2.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL L
+1D5DF ; [.1CF2.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+1D613 ; [.1CF2.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+1D647 ; [.1CF2.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+1D67B ; [.1CF2.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL L
+24C1 ; [.1CF2.0020.000C] # CIRCLED LATIN CAPITAL LETTER L
+1F15B ; [.1CF2.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER L
+02E1 ; [.1CF2.0020.0014] # MODIFIER LETTER SMALL L
+2097 ; [.1CF2.0020.0015] # LATIN SUBSCRIPT SMALL LETTER L
+1D38 ; [.1CF2.0020.001D] # MODIFIER LETTER CAPITAL L
+1F13B ; [.1CF2.0020.001D] # SQUARED LATIN CAPITAL LETTER L
+1F17B ; [.1CF2.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER L
+013A ; [.1CF2.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER L WITH ACUTE
+0139 ; [.1CF2.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER L WITH ACUTE
+013E ; [.1CF2.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER L WITH CARON
+013D ; [.1CF2.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER L WITH CARON
+013C ; [.1CF2.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER L WITH CEDILLA
+013B ; [.1CF2.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER L WITH CEDILLA
+0142 ; [.1CF2.0020.0002][.0000.0039.0002] # LATIN SMALL LETTER L WITH STROKE
+0141 ; [.1CF2.0020.0008][.0000.0039.0002] # LATIN CAPITAL LETTER L WITH STROKE
+1E37 ; [.1CF2.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER L WITH DOT BELOW
+1E36 ; [.1CF2.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW
+1E39 ; [.1CF2.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E38 ; [.1CF2.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E3D ; [.1CF2.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3C ; [.1CF2.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3B ; [.1CF2.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER L WITH LINE BELOW
+1E3A ; [.1CF2.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER L WITH LINE BELOW
+0140 ; [.1CF2.0020.0002][.0000.010B.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
+006C 00B7 ; [.1CF2.0020.0002][.0000.010B.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
+006C 0387 ; [.1CF2.0020.0002][.0000.010B.0002] # LATIN SMALL LETTER L WITH MIDDLE DOT
+013F ; [.1CF2.0020.0008][.0000.010B.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+004C 00B7 ; [.1CF2.0020.0008][.0000.010B.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+004C 0387 ; [.1CF2.0020.0008][.0000.010B.0002] # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+01C9 ; [.1CF2.0020.0004][.1CC7.0020.0004] # LATIN SMALL LETTER LJ
+01C8 ; [.1CF2.0020.000A][.1CC7.0020.0004] # LATIN CAPITAL LETTER L WITH SMALL LETTER J
+01C7 ; [.1CF2.0020.000A][.1CC7.0020.000A] # LATIN CAPITAL LETTER LJ
+1EFB ; [.1CF2.0020.0004][.1CF2.0020.0004] # LATIN SMALL LETTER MIDDLE-WELSH LL
+1EFA ; [.1CF2.0020.000A][.1CF2.0020.000A] # LATIN CAPITAL LETTER MIDDLE-WELSH LL
+33D0 ; [.1CF2.0020.001C][.1D25.0020.001C] # SQUARE LM
+33D1 ; [.1CF2.0020.001C][.1D34.0020.001C] # SQUARE LN
+33D2 ; [.1CF2.0020.001C][.1D58.0020.001C][.1C6F.0020.001C] # SQUARE LOG
+02AA ; [.1CF2.0020.0004][.1DEC.0020.0004] # LATIN SMALL LETTER LS DIGRAPH
+32CF ; [.1CF2.0020.001D][.1E10.0020.001D][.1C0A.0020.001D] # LIMITED LIABILITY SIGN
+33D3 ; [.1CF2.0020.001C][.1E7A.0020.001C] # SQUARE LX
+02AB ; [.1CF2.0020.0004][.1E9C.0020.0004] # LATIN SMALL LETTER LZ DIGRAPH
+029F ; [.1CF6.0020.0002] # LATIN LETTER SMALL CAPITAL L
+1DDE ; [.1CF6.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL L
+1DAB ; [.1CF6.0020.0014] # MODIFIER LETTER SMALL CAPITAL L
+A747 ; [.1CFA.0020.0002] # LATIN SMALL LETTER BROKEN L
+A746 ; [.1CFA.0020.0008] # LATIN CAPITAL LETTER BROKEN L
+1D0C ; [.1CFB.0020.0002] # LATIN LETTER SMALL CAPITAL L WITH STROKE
+A749 ; [.1CFC.0020.0002] # LATIN SMALL LETTER L WITH HIGH STROKE
+A748 ; [.1CFC.0020.0008] # LATIN CAPITAL LETTER L WITH HIGH STROKE
+019A ; [.1CFD.0020.0002] # LATIN SMALL LETTER L WITH BAR
+023D ; [.1CFD.0020.0008] # LATIN CAPITAL LETTER L WITH BAR
+2C61 ; [.1D01.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE BAR
+2C60 ; [.1D01.0020.0008] # LATIN CAPITAL LETTER L WITH DOUBLE BAR
+026B ; [.1D02.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE TILDE
+2C62 ; [.1D02.0020.0008] # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
+AB5E ; [.1D02.0020.0014] # MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+AB38 ; [.1D06.0020.0002] # LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
+1DEC ; [.1D06.0020.0004] # COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
+AB39 ; [.1D07.0020.0002] # LATIN SMALL LETTER L WITH MIDDLE RING
+026C ; [.1D08.0020.0002] # LATIN SMALL LETTER L WITH BELT
+A7AD ; [.1D08.0020.0008] # LATIN CAPITAL LETTER L WITH BELT
+AB37 ; [.1D0C.0020.0002] # LATIN SMALL LETTER L WITH INVERTED LAZY S
+AB5D ; [.1D0C.0020.0014] # MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+1D85 ; [.1D0D.0020.0002] # LATIN SMALL LETTER L WITH PALATAL HOOK
+1DAA ; [.1D0D.0020.0014] # MODIFIER LETTER SMALL L WITH PALATAL HOOK
+026D ; [.1D0E.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK
+1DA9 ; [.1D0E.0020.0014] # MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
+A78E ; [.1D12.0020.0002] # LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+0234 ; [.1D13.0020.0002] # LATIN SMALL LETTER L WITH CURL
+A772 ; [.1D17.0020.0002] # LATIN SMALL LETTER LUM
+026E ; [.1D18.0020.0002] # LATIN SMALL LETTER LEZH
+A781 ; [.1D1C.0020.0002] # LATIN SMALL LETTER TURNED L
+A780 ; [.1D1C.0020.0008] # LATIN CAPITAL LETTER TURNED L
+019B ; [.1D1D.0020.0002] # LATIN SMALL LETTER LAMBDA WITH STROKE
+028E ; [.1D21.0020.0002] # LATIN SMALL LETTER TURNED Y
+006D ; [.1D25.0020.0002] # LATIN SMALL LETTER M
+FF4D ; [.1D25.0020.0003] # FULLWIDTH LATIN SMALL LETTER M
+036B ; [.1D25.0020.0004] # COMBINING LATIN SMALL LETTER M
+217F ; [.1D25.0020.0004] # SMALL ROMAN NUMERAL ONE THOUSAND
+24A8 ; [*0310.0020.0004][.1D25.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER M
+1D426 ; [.1D25.0020.0005] # MATHEMATICAL BOLD SMALL M
+1D45A ; [.1D25.0020.0005] # MATHEMATICAL ITALIC SMALL M
+1D48E ; [.1D25.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL M
+1D4C2 ; [.1D25.0020.0005] # MATHEMATICAL SCRIPT SMALL M
+1D4F6 ; [.1D25.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL M
+1D52A ; [.1D25.0020.0005] # MATHEMATICAL FRAKTUR SMALL M
+1D55E ; [.1D25.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL M
+1D592 ; [.1D25.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL M
+1D5C6 ; [.1D25.0020.0005] # MATHEMATICAL SANS-SERIF SMALL M
+1D5FA ; [.1D25.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL M
+1D62E ; [.1D25.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL M
+1D662 ; [.1D25.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
+1D696 ; [.1D25.0020.0005] # MATHEMATICAL MONOSPACE SMALL M
+24DC ; [.1D25.0020.0006] # CIRCLED LATIN SMALL LETTER M
+004D ; [.1D25.0020.0008] # LATIN CAPITAL LETTER M
+FF2D ; [.1D25.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER M
+216F ; [.1D25.0020.000A] # ROMAN NUMERAL ONE THOUSAND
+1F11C ; [*0310.0020.0004][.1D25.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER M
+2133 ; [.1D25.0020.000B] # SCRIPT CAPITAL M
+1D40C ; [.1D25.0020.000B] # MATHEMATICAL BOLD CAPITAL M
+1D440 ; [.1D25.0020.000B] # MATHEMATICAL ITALIC CAPITAL M
+1D474 ; [.1D25.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL M
+1D4DC ; [.1D25.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL M
+1D510 ; [.1D25.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL M
+1D544 ; [.1D25.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D578 ; [.1D25.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL M
+1D5AC ; [.1D25.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL M
+1D5E0 ; [.1D25.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+1D614 ; [.1D25.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+1D648 ; [.1D25.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+1D67C ; [.1D25.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL M
+24C2 ; [.1D25.0020.000C] # CIRCLED LATIN CAPITAL LETTER M
+1F15C ; [.1D25.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER M
+1D50 ; [.1D25.0020.0014] # MODIFIER LETTER SMALL M
+2098 ; [.1D25.0020.0015] # LATIN SUBSCRIPT SMALL LETTER M
+1D39 ; [.1D25.0020.001D] # MODIFIER LETTER CAPITAL M
+1F13C ; [.1D25.0020.001D] # SQUARED LATIN CAPITAL LETTER M
+1F17C ; [.1D25.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER M
+1E3F ; [.1D25.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER M WITH ACUTE
+1E3E ; [.1D25.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER M WITH ACUTE
+1E41 ; [.1D25.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER M WITH DOT ABOVE
+1E40 ; [.1D25.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E43 ; [.1D25.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER M WITH DOT BELOW
+1E42 ; [.1D25.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER M WITH DOT BELOW
+33A1 ; [.1D25.0020.001C][.1BBA.0020.001C] # SQUARE M SQUARED
+33A5 ; [.1D25.0020.001C][.1BBB.0020.001C] # SQUARE M CUBED
+3383 ; [.1D25.0020.001C][.1BC2.0020.001D] # SQUARE MA
+33D4 ; [.1D25.0020.001C][.1BDB.0020.001C] # SQUARE MB SMALL
+3386 ; [.1D25.0020.001D][.1BDB.0020.001D] # SQUARE MB
+1F16A ; [.1D25.0020.0014][.1BF5.0020.0014] # RAISED MC SIGN
+1F16B ; [.1D25.0020.0014][.1C0A.0020.0014] # RAISED MD SIGN
+338E ; [.1D25.0020.001C][.1C6F.0020.001C] # SQUARE MG
+3392 ; [.1D25.0020.001D][.1C93.0020.001D][.1E9C.0020.001C] # SQUARE MHZ
+33D5 ; [.1D25.0020.001C][.1CAD.0020.001C][.1CF2.0020.001C] # SQUARE MIL
+3396 ; [.1D25.0020.001C][.1CF2.0020.001C] # SQUARE ML
+339C ; [.1D25.0020.001C][.1D25.0020.001C] # SQUARE MM
+339F ; [.1D25.0020.001C][.1D25.0020.001C][.1BBA.0020.001C] # SQUARE MM SQUARED
+33A3 ; [.1D25.0020.001C][.1D25.0020.001C][.1BBB.0020.001C] # SQUARE MM CUBED
+33D6 ; [.1D25.0020.001C][.1D58.0020.001C][.1CF2.0020.001C] # SQUARE MOL
+33AB ; [.1D25.0020.001D][.1D87.0020.001D][.1BC2.0020.001C] # SQUARE MPA
+33A7 ; [.1D25.0020.001C][*0605.0020.001C][.1DEC.0020.001C] # SQUARE M OVER S
+33B3 ; [.1D25.0020.001C][.1DEC.0020.001C] # SQUARE MS
+33A8 ; [.1D25.0020.001C][*0605.0020.001C][.1DEC.0020.001C][.1BBA.0020.001C] # SQUARE M OVER S SQUARED
+33B7 ; [.1D25.0020.001C][.1E5E.0020.001D] # SQUARE MV
+33B9 ; [.1D25.0020.001D][.1E5E.0020.001D] # SQUARE MV MEGA
+1F14B ; [.1D25.0020.001D][.1E5E.0020.001D] # SQUARED MV
+33BD ; [.1D25.0020.001C][.1E70.0020.001D] # SQUARE MW
+33BF ; [.1D25.0020.001D][.1E70.0020.001D] # SQUARE MW MEGA
+33C1 ; [.1D25.0020.001D][.1F5C.0020.001D] # SQUARE M OHM
+1D0D ; [.1D29.0020.0002] # LATIN LETTER SMALL CAPITAL M
+1DDF ; [.1D29.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL M
+1D6F ; [.1D2A.0020.0002] # LATIN SMALL LETTER M WITH MIDDLE TILDE
+1D86 ; [.1D2B.0020.0002] # LATIN SMALL LETTER M WITH PALATAL HOOK
+0271 ; [.1D2C.0020.0002] # LATIN SMALL LETTER M WITH HOOK
+2C6E ; [.1D2C.0020.0008] # LATIN CAPITAL LETTER M WITH HOOK
+1DAC ; [.1D2C.0020.0014] # MODIFIER LETTER SMALL M WITH HOOK
+AB3A ; [.1D30.0020.0002] # LATIN SMALL LETTER M WITH CROSSED-TAIL
+A7FD ; [.1D31.0020.0002] # LATIN EPIGRAPHIC LETTER INVERTED M
+A7FF ; [.1D32.0020.0002] # LATIN EPIGRAPHIC LETTER ARCHAIC M
+A773 ; [.1D33.0020.0002] # LATIN SMALL LETTER MUM
+006E ; [.1D34.0020.0002] # LATIN SMALL LETTER N
+FF4E ; [.1D34.0020.0003] # FULLWIDTH LATIN SMALL LETTER N
+1DE0 ; [.1D34.0020.0004] # COMBINING LATIN SMALL LETTER N
+24A9 ; [*0310.0020.0004][.1D34.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER N
+1D427 ; [.1D34.0020.0005] # MATHEMATICAL BOLD SMALL N
+1D45B ; [.1D34.0020.0005] # MATHEMATICAL ITALIC SMALL N
+1D48F ; [.1D34.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL N
+1D4C3 ; [.1D34.0020.0005] # MATHEMATICAL SCRIPT SMALL N
+1D4F7 ; [.1D34.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL N
+1D52B ; [.1D34.0020.0005] # MATHEMATICAL FRAKTUR SMALL N
+1D55F ; [.1D34.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL N
+1D593 ; [.1D34.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL N
+1D5C7 ; [.1D34.0020.0005] # MATHEMATICAL SANS-SERIF SMALL N
+1D5FB ; [.1D34.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL N
+1D62F ; [.1D34.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL N
+1D663 ; [.1D34.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
+1D697 ; [.1D34.0020.0005] # MATHEMATICAL MONOSPACE SMALL N
+24DD ; [.1D34.0020.0006] # CIRCLED LATIN SMALL LETTER N
+004E ; [.1D34.0020.0008] # LATIN CAPITAL LETTER N
+FF2E ; [.1D34.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER N
+1F11D ; [*0310.0020.0004][.1D34.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER N
+2115 ; [.1D34.0020.000B] # DOUBLE-STRUCK CAPITAL N
+1D40D ; [.1D34.0020.000B] # MATHEMATICAL BOLD CAPITAL N
+1D441 ; [.1D34.0020.000B] # MATHEMATICAL ITALIC CAPITAL N
+1D475 ; [.1D34.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL N
+1D4A9 ; [.1D34.0020.000B] # MATHEMATICAL SCRIPT CAPITAL N
+1D4DD ; [.1D34.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL N
+1D511 ; [.1D34.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL N
+1D579 ; [.1D34.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL N
+1D5AD ; [.1D34.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL N
+1D5E1 ; [.1D34.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+1D615 ; [.1D34.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+1D649 ; [.1D34.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+1D67D ; [.1D34.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL N
+24C3 ; [.1D34.0020.000C] # CIRCLED LATIN CAPITAL LETTER N
+1F15D ; [.1D34.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER N
+207F ; [.1D34.0020.0014] # SUPERSCRIPT LATIN SMALL LETTER N
+2099 ; [.1D34.0020.0015] # LATIN SUBSCRIPT SMALL LETTER N
+1D3A ; [.1D34.0020.001D] # MODIFIER LETTER CAPITAL N
+1F13D ; [.1D34.0020.001D] # SQUARED LATIN CAPITAL LETTER N
+1F17D ; [.1D34.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER N
+0144 ; [.1D34.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER N WITH ACUTE
+0143 ; [.1D34.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER N WITH ACUTE
+01F9 ; [.1D34.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER N WITH GRAVE
+01F8 ; [.1D34.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER N WITH GRAVE
+0148 ; [.1D34.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER N WITH CARON
+0147 ; [.1D34.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER N WITH CARON
+00F1 ; [.1D34.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER N WITH TILDE
+00D1 ; [.1D34.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER N WITH TILDE
+1E45 ; [.1D34.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER N WITH DOT ABOVE
+1E44 ; [.1D34.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER N WITH DOT ABOVE
+0146 ; [.1D34.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER N WITH CEDILLA
+0145 ; [.1D34.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER N WITH CEDILLA
+A7A5 ; [.1D34.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER N WITH OBLIQUE STROKE
+A7A4 ; [.1D34.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
+1E47 ; [.1D34.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER N WITH DOT BELOW
+1E46 ; [.1D34.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER N WITH DOT BELOW
+1E4B ; [.1D34.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4A ; [.1D34.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E49 ; [.1D34.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER N WITH LINE BELOW
+1E48 ; [.1D34.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER N WITH LINE BELOW
+3381 ; [.1D34.0020.001C][.1BC2.0020.001D] # SQUARE NA
+1F195 ; [.1D34.0020.001D][.1C25.0020.001D][.1E70.0020.001D] # SQUARED NEW
+338B ; [.1D34.0020.001C][.1C60.0020.001D] # SQUARE NF
+1F196 ; [.1D34.0020.001D][.1C6F.0020.001D] # SQUARED NG
+01CC ; [.1D34.0020.0004][.1CC7.0020.0004] # LATIN SMALL LETTER NJ
+01CB ; [.1D34.0020.000A][.1CC7.0020.0004] # LATIN CAPITAL LETTER N WITH SMALL LETTER J
+01CA ; [.1D34.0020.000A][.1CC7.0020.000A] # LATIN CAPITAL LETTER NJ
+339A ; [.1D34.0020.001C][.1D25.0020.001C] # SQUARE NM
+2116 ; [.1D34.0020.000A][.1D58.0020.0004] # NUMERO SIGN
+33B1 ; [.1D34.0020.001C][.1DEC.0020.001C] # SQUARE NS
+33B5 ; [.1D34.0020.001C][.1E5E.0020.001D] # SQUARE NV
+33BB ; [.1D34.0020.001C][.1E70.0020.001D] # SQUARE NW
+0274 ; [.1D38.0020.0002] # LATIN LETTER SMALL CAPITAL N
+1DE1 ; [.1D38.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL N
+1DB0 ; [.1D38.0020.0014] # MODIFIER LETTER SMALL CAPITAL N
+1D3B ; [.1D3C.0020.0002] # MODIFIER LETTER CAPITAL REVERSED N
+1D0E ; [.1D3D.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED N
+1D70 ; [.1D3E.0020.0002] # LATIN SMALL LETTER N WITH MIDDLE TILDE
+0272 ; [.1D3F.0020.0002] # LATIN SMALL LETTER N WITH LEFT HOOK
+019D ; [.1D3F.0020.0008] # LATIN CAPITAL LETTER N WITH LEFT HOOK
+1DAE ; [.1D3F.0020.0014] # MODIFIER LETTER SMALL N WITH LEFT HOOK
+019E ; [.1D43.0020.0002] # LATIN SMALL LETTER N WITH LONG RIGHT LEG
+0220 ; [.1D43.0020.0008] # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+A791 ; [.1D47.0020.0002] # LATIN SMALL LETTER N WITH DESCENDER
+A790 ; [.1D47.0020.0008] # LATIN CAPITAL LETTER N WITH DESCENDER
+1D87 ; [.1D48.0020.0002] # LATIN SMALL LETTER N WITH PALATAL HOOK
+0273 ; [.1D49.0020.0002] # LATIN SMALL LETTER N WITH RETROFLEX HOOK
+1DAF ; [.1D49.0020.0014] # MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
+0235 ; [.1D4D.0020.0002] # LATIN SMALL LETTER N WITH CURL
+AB3B ; [.1D51.0020.0002] # LATIN SMALL LETTER N WITH CROSSED-TAIL
+A774 ; [.1D52.0020.0002] # LATIN SMALL LETTER NUM
+014B ; [.1D53.0020.0002] # LATIN SMALL LETTER ENG
+014A ; [.1D53.0020.0008] # LATIN CAPITAL LETTER ENG
+1D51 ; [.1D53.0020.0014] # MODIFIER LETTER SMALL ENG
+AB3C ; [.1D57.0020.0002] # LATIN SMALL LETTER ENG WITH CROSSED-TAIL
+006F ; [.1D58.0020.0002] # LATIN SMALL LETTER O
+FF4F ; [.1D58.0020.0003] # FULLWIDTH LATIN SMALL LETTER O
+0366 ; [.1D58.0020.0004] # COMBINING LATIN SMALL LETTER O
+24AA ; [*0310.0020.0004][.1D58.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER O
+2134 ; [.1D58.0020.0005] # SCRIPT SMALL O
+1D428 ; [.1D58.0020.0005] # MATHEMATICAL BOLD SMALL O
+1D45C ; [.1D58.0020.0005] # MATHEMATICAL ITALIC SMALL O
+1D490 ; [.1D58.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL O
+1D4F8 ; [.1D58.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL O
+1D52C ; [.1D58.0020.0005] # MATHEMATICAL FRAKTUR SMALL O
+1D560 ; [.1D58.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL O
+1D594 ; [.1D58.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL O
+1D5C8 ; [.1D58.0020.0005] # MATHEMATICAL SANS-SERIF SMALL O
+1D5FC ; [.1D58.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL O
+1D630 ; [.1D58.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL O
+1D664 ; [.1D58.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
+1D698 ; [.1D58.0020.0005] # MATHEMATICAL MONOSPACE SMALL O
+24DE ; [.1D58.0020.0006] # CIRCLED LATIN SMALL LETTER O
+004F ; [.1D58.0020.0008] # LATIN CAPITAL LETTER O
+FF2F ; [.1D58.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER O
+1F11E ; [*0310.0020.0004][.1D58.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER O
+1D40E ; [.1D58.0020.000B] # MATHEMATICAL BOLD CAPITAL O
+1D442 ; [.1D58.0020.000B] # MATHEMATICAL ITALIC CAPITAL O
+1D476 ; [.1D58.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL O
+1D4AA ; [.1D58.0020.000B] # MATHEMATICAL SCRIPT CAPITAL O
+1D4DE ; [.1D58.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL O
+1D512 ; [.1D58.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL O
+1D546 ; [.1D58.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D57A ; [.1D58.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL O
+1D5AE ; [.1D58.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL O
+1D5E2 ; [.1D58.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+1D616 ; [.1D58.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+1D64A ; [.1D58.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+1D67E ; [.1D58.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL O
+24C4 ; [.1D58.0020.000C] # CIRCLED LATIN CAPITAL LETTER O
+1F15E ; [.1D58.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER O
+00BA ; [.1D58.0020.0014] # MASCULINE ORDINAL INDICATOR
+1D52 ; [.1D58.0020.0014] # MODIFIER LETTER SMALL O
+2092 ; [.1D58.0020.0015] # LATIN SUBSCRIPT SMALL LETTER O
+1D3C ; [.1D58.0020.001D] # MODIFIER LETTER CAPITAL O
+1F13E ; [.1D58.0020.001D] # SQUARED LATIN CAPITAL LETTER O
+1F17E ; [.1D58.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER O
+00F3 ; [.1D58.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH ACUTE
+00D3 ; [.1D58.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH ACUTE
+00F2 ; [.1D58.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH GRAVE
+00D2 ; [.1D58.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH GRAVE
+014F ; [.1D58.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER O WITH BREVE
+014E ; [.1D58.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER O WITH BREVE
+00F4 ; [.1D58.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX
+00D4 ; [.1D58.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+1ED1 ; [.1D58.0020.0002][.0000.0027.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED0 ; [.1D58.0020.0008][.0000.0027.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED3 ; [.1D58.0020.0002][.0000.0027.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED2 ; [.1D58.0020.0008][.0000.0027.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED7 ; [.1D58.0020.0002][.0000.0027.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED6 ; [.1D58.0020.0008][.0000.0027.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED5 ; [.1D58.0020.0002][.0000.0027.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED4 ; [.1D58.0020.0008][.0000.0027.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+01D2 ; [.1D58.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER O WITH CARON
+01D1 ; [.1D58.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER O WITH CARON
+00F6 ; [.1D58.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH DIAERESIS
+1DF3 ; [.1D58.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER O WITH DIAERESIS
+A79D ; [.1D58.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK OE
+00D6 ; [.1D58.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS
+A79C ; [.1D58.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK OE
+022B ; [.1D58.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022A ; [.1D58.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+0151 ; [.1D58.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0150 ; [.1D58.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+00F5 ; [.1D58.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH TILDE
+00D5 ; [.1D58.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH TILDE
+1E4D ; [.1D58.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4C ; [.1D58.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4F ; [.1D58.0020.0002][.0000.002D.0002][.0000.002B.0002] # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E4E ; [.1D58.0020.0008][.0000.002D.0002][.0000.002B.0002] # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+022D ; [.1D58.0020.0002][.0000.002D.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH TILDE AND MACRON
+022C ; [.1D58.0020.0008][.0000.002D.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022F ; [.1D58.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER O WITH DOT ABOVE
+022E ; [.1D58.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE
+0231 ; [.1D58.0020.0002][.0000.002E.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0230 ; [.1D58.0020.0008][.0000.002E.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+00F8 ; [.1D58.0020.0002][.0000.002F.0002] # LATIN SMALL LETTER O WITH STROKE
+00D8 ; [.1D58.0020.0008][.0000.002F.0002] # LATIN CAPITAL LETTER O WITH STROKE
+01FF ; [.1D58.0020.0002][.0000.002F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+01FE ; [.1D58.0020.0008][.0000.002F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01EB ; [.1D58.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER O WITH OGONEK
+01EA ; [.1D58.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER O WITH OGONEK
+01ED ; [.1D58.0020.0002][.0000.0031.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EC ; [.1D58.0020.0008][.0000.0031.0002][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+014D ; [.1D58.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER O WITH MACRON
+014C ; [.1D58.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER O WITH MACRON
+1E53 ; [.1D58.0020.0002][.0000.0032.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E52 ; [.1D58.0020.0008][.0000.0032.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E51 ; [.1D58.0020.0002][.0000.0032.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E50 ; [.1D58.0020.0008][.0000.0032.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1DED ; [.1D58.0020.0004][.0000.0034.0004] # COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE
+1ECF ; [.1D58.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HOOK ABOVE
+1ECE ; [.1D58.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+020D ; [.1D58.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020C ; [.1D58.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020F ; [.1D58.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER O WITH INVERTED BREVE
+020E ; [.1D58.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER O WITH INVERTED BREVE
+01A1 ; [.1D58.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER O WITH HORN
+01A0 ; [.1D58.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER O WITH HORN
+1EDB ; [.1D58.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDA ; [.1D58.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDD ; [.1D58.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDC ; [.1D58.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EE1 ; [.1D58.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE0 ; [.1D58.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EDF ; [.1D58.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EDE ; [.1D58.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EE3 ; [.1D58.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE2 ; [.1D58.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1ECD ; [.1D58.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER O WITH DOT BELOW
+1ECC ; [.1D58.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER O WITH DOT BELOW
+1ED9 ; [.1D58.0020.0002][.0000.0042.0002][.0000.0027.0002] # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED8 ; [.1D58.0020.0008][.0000.0042.0002][.0000.0027.0002] # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+0153 ; [.1D58.0020.0004][.0000.010B.0004][.1C25.0020.0004] # LATIN SMALL LIGATURE OE
+0152 ; [.1D58.0020.000A][.0000.010B.0004][.1C25.0020.000A] # LATIN CAPITAL LIGATURE OE
+A7F9 ; [.1D58.0020.0014][.0000.010B.0014][.1C25.0020.0014] # MODIFIER LETTER SMALL LIGATURE OE
+1F197 ; [.1D58.0020.001D][.1CE0.0020.001D] # SQUARED OK
+A74F ; [.1D58.0020.0004][.1D58.0020.0004] # LATIN SMALL LETTER OO
+A74E ; [.1D58.0020.000A][.1D58.0020.000A] # LATIN CAPITAL LETTER OO
+3375 ; [.1D58.0020.001C][.1E5E.0020.001D] # SQUARE OV
+1D0F ; [.1D5C.0020.0002] # LATIN LETTER SMALL CAPITAL O
+1D11 ; [.1D5D.0020.0002] # LATIN SMALL LETTER SIDEWAYS O
+AB3D ; [.1D5E.0020.0002] # LATIN SMALL LETTER BLACKLETTER O
+0276 ; [.1D5F.0020.0002] # LATIN LETTER SMALL CAPITAL OE
+1D14 ; [.1D63.0020.0002] # LATIN SMALL LETTER TURNED OE
+AB41 ; [.1D64.0020.0002] # LATIN SMALL LETTER TURNED OE WITH STROKE
+AB42 ; [.1D65.0020.0002] # LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE
+AB40 ; [.1D66.0020.0002] # LATIN SMALL LETTER INVERTED OE
+AB43 ; [.1D67.0020.0002] # LATIN SMALL LETTER TURNED O OPEN-O
+AB44 ; [.1D68.0020.0002] # LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE
+1D13 ; [.1D69.0020.0002] # LATIN SMALL LETTER SIDEWAYS O WITH STROKE
+AB3E ; [.1D6A.0020.0002] # LATIN SMALL LETTER BLACKLETTER O WITH STROKE
+0254 ; [.1D6B.0020.0002] # LATIN SMALL LETTER OPEN O
+0186 ; [.1D6B.0020.0008] # LATIN CAPITAL LETTER OPEN O
+1D53 ; [.1D6B.0020.0014] # MODIFIER LETTER SMALL OPEN O
+1D10 ; [.1D6F.0020.0002] # LATIN LETTER SMALL CAPITAL OPEN O
+1D12 ; [.1D70.0020.0002] # LATIN SMALL LETTER SIDEWAYS OPEN O
+AB3F ; [.1D71.0020.0002] # LATIN SMALL LETTER OPEN O WITH STROKE
+1D97 ; [.1D72.0020.0002] # LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
+AB62 ; [.1D73.0020.0002] # LATIN SMALL LETTER OPEN OE
+A74D ; [.1D74.0020.0002] # LATIN SMALL LETTER O WITH LOOP
+A74C ; [.1D74.0020.0008] # LATIN CAPITAL LETTER O WITH LOOP
+1D16 ; [.1D75.0020.0002] # LATIN SMALL LETTER TOP HALF O
+1D54 ; [.1D75.0020.0014] # MODIFIER LETTER SMALL TOP HALF O
+1D17 ; [.1D76.0020.0002] # LATIN SMALL LETTER BOTTOM HALF O
+1D55 ; [.1D76.0020.0014] # MODIFIER LETTER SMALL BOTTOM HALF O
+2C7A ; [.1D77.0020.0002] # LATIN SMALL LETTER O WITH LOW RING INSIDE
+0275 ; [.1D78.0020.0002] # LATIN SMALL LETTER BARRED O
+019F ; [.1D78.0020.0008] # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+1DB1 ; [.1D78.0020.0014] # MODIFIER LETTER SMALL BARRED O
+A74B ; [.1D7C.0020.0002] # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
+A74A ; [.1D7C.0020.0008] # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+0277 ; [.1D7D.0020.0002] # LATIN SMALL LETTER CLOSED OMEGA
+A7B7 ; [.1D81.0020.0002] # LATIN SMALL LETTER OMEGA
+A7B6 ; [.1D81.0020.0008] # LATIN CAPITAL LETTER OMEGA
+0223 ; [.1D82.0020.0002] # LATIN SMALL LETTER OU
+0222 ; [.1D82.0020.0008] # LATIN CAPITAL LETTER OU
+1D3D ; [.1D82.0020.001D] # MODIFIER LETTER CAPITAL OU
+1D15 ; [.1D86.0020.0002] # LATIN LETTER SMALL CAPITAL OU
+0070 ; [.1D87.0020.0002] # LATIN SMALL LETTER P
+FF50 ; [.1D87.0020.0003] # FULLWIDTH LATIN SMALL LETTER P
+1DEE ; [.1D87.0020.0004] # COMBINING LATIN SMALL LETTER P
+24AB ; [*0310.0020.0004][.1D87.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER P
+1D429 ; [.1D87.0020.0005] # MATHEMATICAL BOLD SMALL P
+1D45D ; [.1D87.0020.0005] # MATHEMATICAL ITALIC SMALL P
+1D491 ; [.1D87.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL P
+1D4C5 ; [.1D87.0020.0005] # MATHEMATICAL SCRIPT SMALL P
+1D4F9 ; [.1D87.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL P
+1D52D ; [.1D87.0020.0005] # MATHEMATICAL FRAKTUR SMALL P
+1D561 ; [.1D87.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL P
+1D595 ; [.1D87.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL P
+1D5C9 ; [.1D87.0020.0005] # MATHEMATICAL SANS-SERIF SMALL P
+1D5FD ; [.1D87.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL P
+1D631 ; [.1D87.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL P
+1D665 ; [.1D87.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
+1D699 ; [.1D87.0020.0005] # MATHEMATICAL MONOSPACE SMALL P
+24DF ; [.1D87.0020.0006] # CIRCLED LATIN SMALL LETTER P
+0050 ; [.1D87.0020.0008] # LATIN CAPITAL LETTER P
+FF30 ; [.1D87.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER P
+1F11F ; [*0310.0020.0004][.1D87.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER P
+2119 ; [.1D87.0020.000B] # DOUBLE-STRUCK CAPITAL P
+1D40F ; [.1D87.0020.000B] # MATHEMATICAL BOLD CAPITAL P
+1D443 ; [.1D87.0020.000B] # MATHEMATICAL ITALIC CAPITAL P
+1D477 ; [.1D87.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL P
+1D4AB ; [.1D87.0020.000B] # MATHEMATICAL SCRIPT CAPITAL P
+1D4DF ; [.1D87.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL P
+1D513 ; [.1D87.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL P
+1D57B ; [.1D87.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL P
+1D5AF ; [.1D87.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL P
+1D5E3 ; [.1D87.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+1D617 ; [.1D87.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+1D64B ; [.1D87.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+1D67F ; [.1D87.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL P
+24C5 ; [.1D87.0020.000C] # CIRCLED LATIN CAPITAL LETTER P
+1F15F ; [.1D87.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER P
+1D56 ; [.1D87.0020.0014] # MODIFIER LETTER SMALL P
+209A ; [.1D87.0020.0015] # LATIN SUBSCRIPT SMALL LETTER P
+1D3E ; [.1D87.0020.001D] # MODIFIER LETTER CAPITAL P
+1F13F ; [.1D87.0020.001D] # SQUARED LATIN CAPITAL LETTER P
+1F17F ; [.1D87.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER P
+1F18A ; [.1D87.0020.001D] # CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
+1E55 ; [.1D87.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER P WITH ACUTE
+1E54 ; [.1D87.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER P WITH ACUTE
+1E57 ; [.1D87.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER P WITH DOT ABOVE
+1E56 ; [.1D87.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER P WITH DOT ABOVE
+3380 ; [.1D87.0020.001C][.1BC2.0020.001D] # SQUARE PA AMPS
+33A9 ; [.1D87.0020.001D][.1BC2.0020.001C] # SQUARE PA
+1F18C ; [.1D87.0020.001D][.1BC2.0020.001D] # NEGATIVE SQUARED PA
+3376 ; [.1D87.0020.001C][.1BF5.0020.001C] # SQUARE PC
+338A ; [.1D87.0020.001C][.1C60.0020.001D] # SQUARE PF
+33D7 ; [.1D87.0020.001D][.1C93.0020.001D] # SQUARE PH
+33D8 ; [.1D87.0020.001C][*0274.0020.001C][.1D25.0020.001C][*0274.0020.001C] # SQUARE PM
+33D9 ; [.1D87.0020.001D][.1D87.0020.001D][.1D25.0020.001D] # SQUARE PPM
+1F14E ; [.1D87.0020.001D][.1D87.0020.001D][.1E5E.0020.001D] # SQUARED PPV
+33DA ; [.1D87.0020.001D][.1DAE.0020.001D] # SQUARE PR
+33B0 ; [.1D87.0020.001C][.1DEC.0020.001C] # SQUARE PS
+3250 ; [.1D87.0020.001D][.1E10.0020.001D][.1C25.0020.001D] # PARTNERSHIP SIGN
+33B4 ; [.1D87.0020.001C][.1E5E.0020.001D] # SQUARE PV
+33BA ; [.1D87.0020.001C][.1E70.0020.001D] # SQUARE PW
+1D18 ; [.1D8B.0020.0002] # LATIN LETTER SMALL CAPITAL P
+1D7D ; [.1D8C.0020.0002] # LATIN SMALL LETTER P WITH STROKE
+2C63 ; [.1D8C.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE
+A751 ; [.1D8D.0020.0002] # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
+A750 ; [.1D8D.0020.0008] # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+1D71 ; [.1D8E.0020.0002] # LATIN SMALL LETTER P WITH MIDDLE TILDE
+1D88 ; [.1D8F.0020.0002] # LATIN SMALL LETTER P WITH PALATAL HOOK
+01A5 ; [.1D90.0020.0002] # LATIN SMALL LETTER P WITH HOOK
+01A4 ; [.1D90.0020.0008] # LATIN CAPITAL LETTER P WITH HOOK
+A753 ; [.1D94.0020.0002] # LATIN SMALL LETTER P WITH FLOURISH
+A752 ; [.1D94.0020.0008] # LATIN CAPITAL LETTER P WITH FLOURISH
+A755 ; [.1D95.0020.0002] # LATIN SMALL LETTER P WITH SQUIRREL TAIL
+A754 ; [.1D95.0020.0008] # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+A7FC ; [.1D96.0020.0002] # LATIN EPIGRAPHIC LETTER REVERSED P
+0278 ; [.1D97.0020.0002] # LATIN SMALL LETTER PHI
+1DB2 ; [.1D97.0020.0014] # MODIFIER LETTER SMALL PHI
+2C77 ; [.1D9B.0020.0002] # LATIN SMALL LETTER TAILLESS PHI
+0071 ; [.1D9C.0020.0002] # LATIN SMALL LETTER Q
+FF51 ; [.1D9C.0020.0003] # FULLWIDTH LATIN SMALL LETTER Q
+24AC ; [*0310.0020.0004][.1D9C.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Q
+1D42A ; [.1D9C.0020.0005] # MATHEMATICAL BOLD SMALL Q
+1D45E ; [.1D9C.0020.0005] # MATHEMATICAL ITALIC SMALL Q
+1D492 ; [.1D9C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Q
+1D4C6 ; [.1D9C.0020.0005] # MATHEMATICAL SCRIPT SMALL Q
+1D4FA ; [.1D9C.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Q
+1D52E ; [.1D9C.0020.0005] # MATHEMATICAL FRAKTUR SMALL Q
+1D562 ; [.1D9C.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Q
+1D596 ; [.1D9C.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Q
+1D5CA ; [.1D9C.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Q
+1D5FE ; [.1D9C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Q
+1D632 ; [.1D9C.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Q
+1D666 ; [.1D9C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
+1D69A ; [.1D9C.0020.0005] # MATHEMATICAL MONOSPACE SMALL Q
+24E0 ; [.1D9C.0020.0006] # CIRCLED LATIN SMALL LETTER Q
+0051 ; [.1D9C.0020.0008] # LATIN CAPITAL LETTER Q
+FF31 ; [.1D9C.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Q
+1F120 ; [*0310.0020.0004][.1D9C.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Q
+211A ; [.1D9C.0020.000B] # DOUBLE-STRUCK CAPITAL Q
+1D410 ; [.1D9C.0020.000B] # MATHEMATICAL BOLD CAPITAL Q
+1D444 ; [.1D9C.0020.000B] # MATHEMATICAL ITALIC CAPITAL Q
+1D478 ; [.1D9C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Q
+1D4AC ; [.1D9C.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Q
+1D4E0 ; [.1D9C.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Q
+1D514 ; [.1D9C.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Q
+1D57C ; [.1D9C.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+1D5B0 ; [.1D9C.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Q
+1D5E4 ; [.1D9C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+1D618 ; [.1D9C.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+1D64C ; [.1D9C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+1D680 ; [.1D9C.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Q
+24C6 ; [.1D9C.0020.000C] # CIRCLED LATIN CAPITAL LETTER Q
+1F160 ; [.1D9C.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
+1F140 ; [.1D9C.0020.001D] # SQUARED LATIN CAPITAL LETTER Q
+1F180 ; [.1D9C.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Q
+0239 ; [.1D9C.0020.0004][.1D87.0020.0004] # LATIN SMALL LETTER QP DIGRAPH
+A757 ; [.1DA0.0020.0002] # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
+A756 ; [.1DA0.0020.0008] # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+A759 ; [.1DA1.0020.0002] # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
+A758 ; [.1DA1.0020.0008] # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+02A0 ; [.1DA2.0020.0002] # LATIN SMALL LETTER Q WITH HOOK
+024B ; [.1DA6.0020.0002] # LATIN SMALL LETTER Q WITH HOOK TAIL
+024A ; [.1DA6.0020.0008] # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+0138 ; [.1DAA.0020.0002] # LATIN SMALL LETTER KRA
+0072 ; [.1DAE.0020.0002] # LATIN SMALL LETTER R
+FF52 ; [.1DAE.0020.0003] # FULLWIDTH LATIN SMALL LETTER R
+036C ; [.1DAE.0020.0004] # COMBINING LATIN SMALL LETTER R
+1DCA ; [.1DAE.0020.0004] # COMBINING LATIN SMALL LETTER R BELOW
+24AD ; [*0310.0020.0004][.1DAE.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER R
+1D42B ; [.1DAE.0020.0005] # MATHEMATICAL BOLD SMALL R
+1D45F ; [.1DAE.0020.0005] # MATHEMATICAL ITALIC SMALL R
+1D493 ; [.1DAE.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL R
+1D4C7 ; [.1DAE.0020.0005] # MATHEMATICAL SCRIPT SMALL R
+1D4FB ; [.1DAE.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL R
+1D52F ; [.1DAE.0020.0005] # MATHEMATICAL FRAKTUR SMALL R
+1D563 ; [.1DAE.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL R
+1D597 ; [.1DAE.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL R
+1D5CB ; [.1DAE.0020.0005] # MATHEMATICAL SANS-SERIF SMALL R
+1D5FF ; [.1DAE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL R
+1D633 ; [.1DAE.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL R
+1D667 ; [.1DAE.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
+1D69B ; [.1DAE.0020.0005] # MATHEMATICAL MONOSPACE SMALL R
+24E1 ; [.1DAE.0020.0006] # CIRCLED LATIN SMALL LETTER R
+0052 ; [.1DAE.0020.0008] # LATIN CAPITAL LETTER R
+FF32 ; [.1DAE.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER R
+1F121 ; [*0310.0020.0004][.1DAE.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER R
+211B ; [.1DAE.0020.000B] # SCRIPT CAPITAL R
+211C ; [.1DAE.0020.000B] # BLACK-LETTER CAPITAL R
+211D ; [.1DAE.0020.000B] # DOUBLE-STRUCK CAPITAL R
+1D411 ; [.1DAE.0020.000B] # MATHEMATICAL BOLD CAPITAL R
+1D445 ; [.1DAE.0020.000B] # MATHEMATICAL ITALIC CAPITAL R
+1D479 ; [.1DAE.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL R
+1D4E1 ; [.1DAE.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL R
+1D57D ; [.1DAE.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL R
+1D5B1 ; [.1DAE.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL R
+1D5E5 ; [.1DAE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+1D619 ; [.1DAE.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+1D64D ; [.1DAE.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+1D681 ; [.1DAE.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL R
+24C7 ; [.1DAE.0020.000C] # CIRCLED LATIN CAPITAL LETTER R
+1F12C ; [.1DAE.0020.000C] # CIRCLED ITALIC LATIN CAPITAL LETTER R
+1F161 ; [.1DAE.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER R
+02B3 ; [.1DAE.0020.0014] # MODIFIER LETTER SMALL R
+1D63 ; [.1DAE.0020.0015] # LATIN SUBSCRIPT SMALL LETTER R
+1D3F ; [.1DAE.0020.001D] # MODIFIER LETTER CAPITAL R
+1F141 ; [.1DAE.0020.001D] # SQUARED LATIN CAPITAL LETTER R
+1F181 ; [.1DAE.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER R
+0155 ; [.1DAE.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER R WITH ACUTE
+0154 ; [.1DAE.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER R WITH ACUTE
+0159 ; [.1DAE.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER R WITH CARON
+0158 ; [.1DAE.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER R WITH CARON
+1E59 ; [.1DAE.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER R WITH DOT ABOVE
+1E58 ; [.1DAE.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER R WITH DOT ABOVE
+0157 ; [.1DAE.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER R WITH CEDILLA
+0156 ; [.1DAE.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER R WITH CEDILLA
+A7A7 ; [.1DAE.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER R WITH OBLIQUE STROKE
+A7A6 ; [.1DAE.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
+0211 ; [.1DAE.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0210 ; [.1DAE.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0213 ; [.1DAE.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER R WITH INVERTED BREVE
+0212 ; [.1DAE.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER R WITH INVERTED BREVE
+1E5B ; [.1DAE.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER R WITH DOT BELOW
+1E5A ; [.1DAE.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5D ; [.1DAE.0020.0002][.0000.0042.0002][.0000.0032.0002] # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5C ; [.1DAE.0020.0008][.0000.0042.0002][.0000.0032.0002] # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5F ; [.1DAE.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER R WITH LINE BELOW
+1E5E ; [.1DAE.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER R WITH LINE BELOW
+A783 ; [.1DAE.0020.0004][.0000.010C.0004] # LATIN SMALL LETTER INSULAR R
+A782 ; [.1DAE.0020.000A][.0000.010C.0004] # LATIN CAPITAL LETTER INSULAR R
+33AD ; [.1DAE.0020.001C][.1BC2.0020.001C][.1C0A.0020.001C] # SQUARE RAD
+33AE ; [.1DAE.0020.001C][.1BC2.0020.001C][.1C0A.0020.001C][*0605.0020.001C][.1DEC.0020.001C] # SQUARE RAD OVER S
+33AF ; [.1DAE.0020.001C][.1BC2.0020.001C][.1C0A.0020.001C][*0605.0020.001C][.1DEC.0020.001C][.1BBA.0020.001C] # SQUARE RAD OVER S SQUARED
+20A8 ; [.1DAE.0020.000A][.1DEC.0020.0004] # RUPEE SIGN
+AB45 ; [.1DB2.0020.0002] # LATIN SMALL LETTER STIRRUP R
+0280 ; [.1DB3.0020.0002] # LATIN LETTER SMALL CAPITAL R
+1DE2 ; [.1DB3.0020.0004] # COMBINING LATIN LETTER SMALL CAPITAL R
+01A6 ; [.1DB3.0020.0008] # LATIN LETTER YR
+AB46 ; [.1DB7.0020.0002] # LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG
+A75B ; [.1DB8.0020.0002] # LATIN SMALL LETTER R ROTUNDA
+1DE3 ; [.1DB8.0020.0004] # COMBINING LATIN SMALL LETTER R ROTUNDA
+A75A ; [.1DB8.0020.0008] # LATIN CAPITAL LETTER R ROTUNDA
+1D19 ; [.1DB9.0020.0002] # LATIN LETTER SMALL CAPITAL REVERSED R
+024D ; [.1DBA.0020.0002] # LATIN SMALL LETTER R WITH STROKE
+024C ; [.1DBA.0020.0008] # LATIN CAPITAL LETTER R WITH STROKE
+1D72 ; [.1DBE.0020.0002] # LATIN SMALL LETTER R WITH MIDDLE TILDE
+0279 ; [.1DBF.0020.0002] # LATIN SMALL LETTER TURNED R
+02B4 ; [.1DBF.0020.0014] # MODIFIER LETTER SMALL TURNED R
+1D1A ; [.1DC3.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED R
+027A ; [.1DC4.0020.0002] # LATIN SMALL LETTER TURNED R WITH LONG LEG
+1D89 ; [.1DC8.0020.0002] # LATIN SMALL LETTER R WITH PALATAL HOOK
+027B ; [.1DC9.0020.0002] # LATIN SMALL LETTER TURNED R WITH HOOK
+02B5 ; [.1DC9.0020.0014] # MODIFIER LETTER SMALL TURNED R WITH HOOK
+2C79 ; [.1DCD.0020.0002] # LATIN SMALL LETTER TURNED R WITH TAIL
+027C ; [.1DCE.0020.0002] # LATIN SMALL LETTER R WITH LONG LEG
+027D ; [.1DD2.0020.0002] # LATIN SMALL LETTER R WITH TAIL
+2C64 ; [.1DD2.0020.0008] # LATIN CAPITAL LETTER R WITH TAIL
+AB49 ; [.1DD6.0020.0002] # LATIN SMALL LETTER R WITH CROSSED-TAIL
+027E ; [.1DD7.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK
+1D73 ; [.1DDB.0020.0002] # LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
+027F ; [.1DDC.0020.0002] # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
+AB47 ; [.1DE0.0020.0002] # LATIN SMALL LETTER R WITHOUT HANDLE
+AB48 ; [.1DE1.0020.0002] # LATIN SMALL LETTER DOUBLE R
+AB4A ; [.1DE2.0020.0002] # LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL
+AB4B ; [.1DE3.0020.0002] # LATIN SMALL LETTER SCRIPT R
+AB4C ; [.1DE4.0020.0002] # LATIN SMALL LETTER SCRIPT R WITH RING
+0281 ; [.1DE5.0020.0002] # LATIN LETTER SMALL CAPITAL INVERTED R
+02B6 ; [.1DE5.0020.0014] # MODIFIER LETTER SMALL CAPITAL INVERTED R
+A775 ; [.1DE9.0020.0002] # LATIN SMALL LETTER RUM
+A776 ; [.1DEA.0020.0002] # LATIN LETTER SMALL CAPITAL RUM
+A75D ; [.1DEB.0020.0002] # LATIN SMALL LETTER RUM ROTUNDA
+A75C ; [.1DEB.0020.0008] # LATIN CAPITAL LETTER RUM ROTUNDA
+0073 ; [.1DEC.0020.0002] # LATIN SMALL LETTER S
+FF53 ; [.1DEC.0020.0003] # FULLWIDTH LATIN SMALL LETTER S
+1DE4 ; [.1DEC.0020.0004] # COMBINING LATIN SMALL LETTER S
+24AE ; [*0310.0020.0004][.1DEC.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER S
+1D42C ; [.1DEC.0020.0005] # MATHEMATICAL BOLD SMALL S
+1D460 ; [.1DEC.0020.0005] # MATHEMATICAL ITALIC SMALL S
+1D494 ; [.1DEC.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL S
+1D4C8 ; [.1DEC.0020.0005] # MATHEMATICAL SCRIPT SMALL S
+1D4FC ; [.1DEC.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL S
+1D530 ; [.1DEC.0020.0005] # MATHEMATICAL FRAKTUR SMALL S
+1D564 ; [.1DEC.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL S
+1D598 ; [.1DEC.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL S
+1D5CC ; [.1DEC.0020.0005] # MATHEMATICAL SANS-SERIF SMALL S
+1D600 ; [.1DEC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL S
+1D634 ; [.1DEC.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL S
+1D668 ; [.1DEC.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
+1D69C ; [.1DEC.0020.0005] # MATHEMATICAL MONOSPACE SMALL S
+24E2 ; [.1DEC.0020.0006] # CIRCLED LATIN SMALL LETTER S
+0053 ; [.1DEC.0020.0008] # LATIN CAPITAL LETTER S
+FF33 ; [.1DEC.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER S
+1F122 ; [*0310.0020.0004][.1DEC.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER S
+1F12A ; [*0372.0020.0004][.1DEC.0020.000A][*0373.0020.0004] # TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
+1D412 ; [.1DEC.0020.000B] # MATHEMATICAL BOLD CAPITAL S
+1D446 ; [.1DEC.0020.000B] # MATHEMATICAL ITALIC CAPITAL S
+1D47A ; [.1DEC.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL S
+1D4AE ; [.1DEC.0020.000B] # MATHEMATICAL SCRIPT CAPITAL S
+1D4E2 ; [.1DEC.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL S
+1D516 ; [.1DEC.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL S
+1D54A ; [.1DEC.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+1D57E ; [.1DEC.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL S
+1D5B2 ; [.1DEC.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL S
+1D5E6 ; [.1DEC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+1D61A ; [.1DEC.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+1D64E ; [.1DEC.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+1D682 ; [.1DEC.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL S
+24C8 ; [.1DEC.0020.000C] # CIRCLED LATIN CAPITAL LETTER S
+1F162 ; [.1DEC.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER S
+02E2 ; [.1DEC.0020.0014] # MODIFIER LETTER SMALL S
+209B ; [.1DEC.0020.0015] # LATIN SUBSCRIPT SMALL LETTER S
+1F142 ; [.1DEC.0020.001D] # SQUARED LATIN CAPITAL LETTER S
+1F182 ; [.1DEC.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER S
+015B ; [.1DEC.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER S WITH ACUTE
+015A ; [.1DEC.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER S WITH ACUTE
+1E65 ; [.1DEC.0020.0002][.0000.0024.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E64 ; [.1DEC.0020.0008][.0000.0024.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+015D ; [.1DEC.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER S WITH CIRCUMFLEX
+015C ; [.1DEC.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+0161 ; [.1DEC.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER S WITH CARON
+0160 ; [.1DEC.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER S WITH CARON
+1E67 ; [.1DEC.0020.0002][.0000.0028.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E66 ; [.1DEC.0020.0008][.0000.0028.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E61 ; [.1DEC.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT ABOVE
+1E60 ; [.1DEC.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT ABOVE
+015F ; [.1DEC.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER S WITH CEDILLA
+015E ; [.1DEC.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER S WITH CEDILLA
+A7A9 ; [.1DEC.0020.0004][.0000.0035.0004] # LATIN SMALL LETTER S WITH OBLIQUE STROKE
+A7A8 ; [.1DEC.0020.000A][.0000.0035.0004] # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
+1E63 ; [.1DEC.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER S WITH DOT BELOW
+1E62 ; [.1DEC.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW
+1E69 ; [.1DEC.0020.0002][.0000.0042.0002][.0000.002E.0002] # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E68 ; [.1DEC.0020.0008][.0000.0042.0002][.0000.002E.0002] # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+0219 ; [.1DEC.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER S WITH COMMA BELOW
+0218 ; [.1DEC.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER S WITH COMMA BELOW
+017F ; [.1DEC.0020.0004][.0000.010C.0004] # LATIN SMALL LETTER LONG S
+1DE5 ; [.1DEC.0020.0004][.0000.010C.0004] # COMBINING LATIN SMALL LETTER LONG S
+A785 ; [.1DEC.0020.0004][.0000.010C.0004] # LATIN SMALL LETTER INSULAR S
+A784 ; [.1DEC.0020.000A][.0000.010C.0004] # LATIN CAPITAL LETTER INSULAR S
+1E9B ; [.1DEC.0020.0004][.0000.010C.0004][.0000.002E.0002] # LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1F18D ; [.1DEC.0020.001D][.1BC2.0020.001D] # NEGATIVE SQUARED SA
+1F14C ; [.1DEC.0020.001D][.1C0A.0020.001D] # SQUARED SD
+2120 ; [.1DEC.0020.0014][.1D25.0020.0014] # SERVICE MARK
+1F198 ; [.1DEC.0020.001D][.1D58.0020.001D][.1DEC.0020.001D] # SQUARED SOS
+33DB ; [.1DEC.0020.001C][.1DAE.0020.001C] # SQUARE SR
+1F14D ; [.1DEC.0020.001D][.1DEC.0020.001D] # SQUARED SS
+00DF ; [.1DEC.0020.0004][.0000.010B.0004][.1DEC.0020.0004] # LATIN SMALL LETTER SHARP S
+1E9E ; [.1DEC.0020.000A][.0000.010B.0004][.1DEC.0020.000A] # LATIN CAPITAL LETTER SHARP S
+FB06 ; [.1DEC.0020.0004][.1E10.0020.0004] # LATIN SMALL LIGATURE ST
+FB05 ; [.1DEC.0020.0004][.0000.010C.0004][.1E10.0020.0004] # LATIN SMALL LIGATURE LONG S T
+33DC ; [.1DEC.0020.001D][.1E5E.0020.001C] # SQUARE SV
+A731 ; [.1DF0.0020.0002] # LATIN LETTER SMALL CAPITAL S
+1D74 ; [.1DF1.0020.0002] # LATIN SMALL LETTER S WITH MIDDLE TILDE
+1D8A ; [.1DF2.0020.0002] # LATIN SMALL LETTER S WITH PALATAL HOOK
+0282 ; [.1DF3.0020.0002] # LATIN SMALL LETTER S WITH HOOK
+1DB3 ; [.1DF3.0020.0014] # MODIFIER LETTER SMALL S WITH HOOK
+023F ; [.1DF7.0020.0002] # LATIN SMALL LETTER S WITH SWASH TAIL
+2C7E ; [.1DF7.0020.0008] # LATIN CAPITAL LETTER S WITH SWASH TAIL
+1E9C ; [.1DFB.0020.0002] # LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
+1E9D ; [.1DFC.0020.0002] # LATIN SMALL LETTER LONG S WITH HIGH STROKE
+0283 ; [.1DFD.0020.0002] # LATIN SMALL LETTER ESH
+1DEF ; [.1DFD.0020.0004] # COMBINING LATIN SMALL LETTER ESH
+01A9 ; [.1DFD.0020.0008] # LATIN CAPITAL LETTER ESH
+1DB4 ; [.1DFD.0020.0014] # MODIFIER LETTER SMALL ESH
+AB4D ; [.1E01.0020.0002] # LATIN SMALL LETTER BASELINE ESH
+1D8B ; [.1E02.0020.0002] # LATIN SMALL LETTER ESH WITH PALATAL HOOK
+01AA ; [.1E03.0020.0002] # LATIN LETTER REVERSED ESH LOOP
+0285 ; [.1E07.0020.0002] # LATIN SMALL LETTER SQUAT REVERSED ESH
+1D98 ; [.1E0B.0020.0002] # LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
+0286 ; [.1E0C.0020.0002] # LATIN SMALL LETTER ESH WITH CURL
+0074 ; [.1E10.0020.0002] # LATIN SMALL LETTER T
+FF54 ; [.1E10.0020.0003] # FULLWIDTH LATIN SMALL LETTER T
+036D ; [.1E10.0020.0004] # COMBINING LATIN SMALL LETTER T
+24AF ; [*0310.0020.0004][.1E10.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER T
+1D42D ; [.1E10.0020.0005] # MATHEMATICAL BOLD SMALL T
+1D461 ; [.1E10.0020.0005] # MATHEMATICAL ITALIC SMALL T
+1D495 ; [.1E10.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL T
+1D4C9 ; [.1E10.0020.0005] # MATHEMATICAL SCRIPT SMALL T
+1D4FD ; [.1E10.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL T
+1D531 ; [.1E10.0020.0005] # MATHEMATICAL FRAKTUR SMALL T
+1D565 ; [.1E10.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL T
+1D599 ; [.1E10.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL T
+1D5CD ; [.1E10.0020.0005] # MATHEMATICAL SANS-SERIF SMALL T
+1D601 ; [.1E10.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL T
+1D635 ; [.1E10.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL T
+1D669 ; [.1E10.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
+1D69D ; [.1E10.0020.0005] # MATHEMATICAL MONOSPACE SMALL T
+24E3 ; [.1E10.0020.0006] # CIRCLED LATIN SMALL LETTER T
+0054 ; [.1E10.0020.0008] # LATIN CAPITAL LETTER T
+FF34 ; [.1E10.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER T
+1F123 ; [*0310.0020.0004][.1E10.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER T
+1D413 ; [.1E10.0020.000B] # MATHEMATICAL BOLD CAPITAL T
+1D447 ; [.1E10.0020.000B] # MATHEMATICAL ITALIC CAPITAL T
+1D47B ; [.1E10.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL T
+1D4AF ; [.1E10.0020.000B] # MATHEMATICAL SCRIPT CAPITAL T
+1D4E3 ; [.1E10.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL T
+1D517 ; [.1E10.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL T
+1D54B ; [.1E10.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+1D57F ; [.1E10.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL T
+1D5B3 ; [.1E10.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL T
+1D5E7 ; [.1E10.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+1D61B ; [.1E10.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+1D64F ; [.1E10.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+1D683 ; [.1E10.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL T
+24C9 ; [.1E10.0020.000C] # CIRCLED LATIN CAPITAL LETTER T
+1F163 ; [.1E10.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER T
+1D57 ; [.1E10.0020.0014] # MODIFIER LETTER SMALL T
+209C ; [.1E10.0020.0015] # LATIN SUBSCRIPT SMALL LETTER T
+1D40 ; [.1E10.0020.001D] # MODIFIER LETTER CAPITAL T
+1F143 ; [.1E10.0020.001D] # SQUARED LATIN CAPITAL LETTER T
+1F183 ; [.1E10.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER T
+0165 ; [.1E10.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER T WITH CARON
+0164 ; [.1E10.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER T WITH CARON
+1E97 ; [.1E10.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER T WITH DIAERESIS
+1E6B ; [.1E10.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER T WITH DOT ABOVE
+1E6A ; [.1E10.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER T WITH DOT ABOVE
+0163 ; [.1E10.0020.0002][.0000.0030.0002] # LATIN SMALL LETTER T WITH CEDILLA
+0162 ; [.1E10.0020.0008][.0000.0030.0002] # LATIN CAPITAL LETTER T WITH CEDILLA
+1E6D ; [.1E10.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER T WITH DOT BELOW
+1E6C ; [.1E10.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER T WITH DOT BELOW
+021B ; [.1E10.0020.0002][.0000.0045.0002] # LATIN SMALL LETTER T WITH COMMA BELOW
+021A ; [.1E10.0020.0008][.0000.0045.0002] # LATIN CAPITAL LETTER T WITH COMMA BELOW
+1E71 ; [.1E10.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E70 ; [.1E10.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E6F ; [.1E10.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER T WITH LINE BELOW
+1E6E ; [.1E10.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER T WITH LINE BELOW
+A787 ; [.1E10.0020.0004][.0000.010C.0004] # LATIN SMALL LETTER INSULAR T
+A786 ; [.1E10.0020.000A][.0000.010C.0004] # LATIN CAPITAL LETTER INSULAR T
+02A8 ; [.1E10.0020.0004][.1C04.0020.0004] # LATIN SMALL LETTER TC DIGRAPH WITH CURL
+2121 ; [.1E10.0020.000A][.1C25.0020.000A][.1CF2.0020.000A] # TELEPHONE SIGN
+1D7A ; [.1E10.0020.0004][.0000.010B.0004][.1C93.0020.0004] # LATIN SMALL LETTER TH WITH STRIKETHROUGH
+3394 ; [.1E10.0020.001D][.1C93.0020.001D][.1E9C.0020.001C] # SQUARE THZ
+2122 ; [.1E10.0020.0014][.1D25.0020.0014] # TRADE MARK SIGN
+01BE ; [.1E10.0020.0004][.1DEC.0020.0004] # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
+02A6 ; [.1E10.0020.0004][.1DEC.0020.0004] # LATIN SMALL LETTER TS DIGRAPH
+02A7 ; [.1E10.0020.0004][.1DFD.0020.0004] # LATIN SMALL LETTER TESH DIGRAPH
+A729 ; [.1E10.0020.0004][.1E9C.0020.0004] # LATIN SMALL LETTER TZ
+A728 ; [.1E10.0020.000A][.1E9C.0020.0004] # LATIN CAPITAL LETTER TZ
+1D1B ; [.1E14.0020.0002] # LATIN LETTER SMALL CAPITAL T
+0167 ; [.1E15.0020.0002] # LATIN SMALL LETTER T WITH STROKE
+0166 ; [.1E15.0020.0008] # LATIN CAPITAL LETTER T WITH STROKE
+2C66 ; [.1E19.0020.0002] # LATIN SMALL LETTER T WITH DIAGONAL STROKE
+023E ; [.1E19.0020.0008] # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+1D75 ; [.1E1A.0020.0002] # LATIN SMALL LETTER T WITH MIDDLE TILDE
+01AB ; [.1E1B.0020.0002] # LATIN SMALL LETTER T WITH PALATAL HOOK
+1DB5 ; [.1E1B.0020.0014] # MODIFIER LETTER SMALL T WITH PALATAL HOOK
+01AD ; [.1E1F.0020.0002] # LATIN SMALL LETTER T WITH HOOK
+01AC ; [.1E1F.0020.0008] # LATIN CAPITAL LETTER T WITH HOOK
+0288 ; [.1E23.0020.0002] # LATIN SMALL LETTER T WITH RETROFLEX HOOK
+01AE ; [.1E23.0020.0008] # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+0236 ; [.1E27.0020.0002] # LATIN SMALL LETTER T WITH CURL
+A777 ; [.1E2B.0020.0002] # LATIN SMALL LETTER TUM
+0287 ; [.1E2C.0020.0002] # LATIN SMALL LETTER TURNED T
+A7B1 ; [.1E2C.0020.0008] # LATIN CAPITAL LETTER TURNED T
+0075 ; [.1E30.0020.0002] # LATIN SMALL LETTER U
+FF55 ; [.1E30.0020.0003] # FULLWIDTH LATIN SMALL LETTER U
+0367 ; [.1E30.0020.0004] # COMBINING LATIN SMALL LETTER U
+24B0 ; [*0310.0020.0004][.1E30.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER U
+1D42E ; [.1E30.0020.0005] # MATHEMATICAL BOLD SMALL U
+1D462 ; [.1E30.0020.0005] # MATHEMATICAL ITALIC SMALL U
+1D496 ; [.1E30.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL U
+1D4CA ; [.1E30.0020.0005] # MATHEMATICAL SCRIPT SMALL U
+1D4FE ; [.1E30.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL U
+1D532 ; [.1E30.0020.0005] # MATHEMATICAL FRAKTUR SMALL U
+1D566 ; [.1E30.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL U
+1D59A ; [.1E30.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL U
+1D5CE ; [.1E30.0020.0005] # MATHEMATICAL SANS-SERIF SMALL U
+1D602 ; [.1E30.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL U
+1D636 ; [.1E30.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL U
+1D66A ; [.1E30.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
+1D69E ; [.1E30.0020.0005] # MATHEMATICAL MONOSPACE SMALL U
+24E4 ; [.1E30.0020.0006] # CIRCLED LATIN SMALL LETTER U
+0055 ; [.1E30.0020.0008] # LATIN CAPITAL LETTER U
+FF35 ; [.1E30.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER U
+1F124 ; [*0310.0020.0004][.1E30.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER U
+1D414 ; [.1E30.0020.000B] # MATHEMATICAL BOLD CAPITAL U
+1D448 ; [.1E30.0020.000B] # MATHEMATICAL ITALIC CAPITAL U
+1D47C ; [.1E30.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL U
+1D4B0 ; [.1E30.0020.000B] # MATHEMATICAL SCRIPT CAPITAL U
+1D4E4 ; [.1E30.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL U
+1D518 ; [.1E30.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL U
+1D54C ; [.1E30.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+1D580 ; [.1E30.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL U
+1D5B4 ; [.1E30.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL U
+1D5E8 ; [.1E30.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+1D61C ; [.1E30.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+1D650 ; [.1E30.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+1D684 ; [.1E30.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL U
+24CA ; [.1E30.0020.000C] # CIRCLED LATIN CAPITAL LETTER U
+1F164 ; [.1E30.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER U
+1D58 ; [.1E30.0020.0014] # MODIFIER LETTER SMALL U
+1D64 ; [.1E30.0020.0015] # LATIN SUBSCRIPT SMALL LETTER U
+1D41 ; [.1E30.0020.001D] # MODIFIER LETTER CAPITAL U
+1F144 ; [.1E30.0020.001D] # SQUARED LATIN CAPITAL LETTER U
+1F184 ; [.1E30.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER U
+00FA ; [.1E30.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH ACUTE
+00DA ; [.1E30.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH ACUTE
+00F9 ; [.1E30.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH GRAVE
+00D9 ; [.1E30.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH GRAVE
+016D ; [.1E30.0020.0002][.0000.0026.0002] # LATIN SMALL LETTER U WITH BREVE
+016C ; [.1E30.0020.0008][.0000.0026.0002] # LATIN CAPITAL LETTER U WITH BREVE
+00FB ; [.1E30.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX
+00DB ; [.1E30.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+01D4 ; [.1E30.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH CARON
+01D3 ; [.1E30.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH CARON
+016F ; [.1E30.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER U WITH RING ABOVE
+016E ; [.1E30.0020.0008][.0000.0029.0002] # LATIN CAPITAL LETTER U WITH RING ABOVE
+00FC ; [.1E30.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH DIAERESIS
+1DF4 ; [.1E30.0020.0004][.0000.002B.0004] # COMBINING LATIN SMALL LETTER U WITH DIAERESIS
+A79F ; [.1E30.0020.0004][.0000.002B.0004] # LATIN SMALL LETTER VOLAPUK UE
+00DC ; [.1E30.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS
+A79E ; [.1E30.0020.000A][.0000.002B.0004] # LATIN CAPITAL LETTER VOLAPUK UE
+01D8 ; [.1E30.0020.0002][.0000.002B.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D7 ; [.1E30.0020.0008][.0000.002B.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01DC ; [.1E30.0020.0002][.0000.002B.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DB ; [.1E30.0020.0008][.0000.002B.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DA ; [.1E30.0020.0002][.0000.002B.0002][.0000.0028.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01D9 ; [.1E30.0020.0008][.0000.002B.0002][.0000.0028.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01D6 ; [.1E30.0020.0002][.0000.002B.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D5 ; [.1E30.0020.0008][.0000.002B.0002][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+0171 ; [.1E30.0020.0002][.0000.002C.0002] # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0170 ; [.1E30.0020.0008][.0000.002C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0169 ; [.1E30.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH TILDE
+0168 ; [.1E30.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH TILDE
+1E79 ; [.1E30.0020.0002][.0000.002D.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E78 ; [.1E30.0020.0008][.0000.002D.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+0173 ; [.1E30.0020.0002][.0000.0031.0002] # LATIN SMALL LETTER U WITH OGONEK
+0172 ; [.1E30.0020.0008][.0000.0031.0002] # LATIN CAPITAL LETTER U WITH OGONEK
+016B ; [.1E30.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER U WITH MACRON
+016A ; [.1E30.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER U WITH MACRON
+1E7B ; [.1E30.0020.0002][.0000.0032.0002][.0000.002B.0002] # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7A ; [.1E30.0020.0008][.0000.0032.0002][.0000.002B.0002] # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1DF0 ; [.1E30.0020.0004][.0000.0034.0004] # COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE
+1EE7 ; [.1E30.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE6 ; [.1E30.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+0215 ; [.1E30.0020.0002][.0000.003C.0002] # LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0214 ; [.1E30.0020.0008][.0000.003C.0002] # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0217 ; [.1E30.0020.0002][.0000.003E.0002] # LATIN SMALL LETTER U WITH INVERTED BREVE
+0216 ; [.1E30.0020.0008][.0000.003E.0002] # LATIN CAPITAL LETTER U WITH INVERTED BREVE
+01B0 ; [.1E30.0020.0002][.0000.003F.0002] # LATIN SMALL LETTER U WITH HORN
+01AF ; [.1E30.0020.0008][.0000.003F.0002] # LATIN CAPITAL LETTER U WITH HORN
+1EE9 ; [.1E30.0020.0002][.0000.003F.0002][.0000.0024.0002] # LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EE8 ; [.1E30.0020.0008][.0000.003F.0002][.0000.0024.0002] # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EEB ; [.1E30.0020.0002][.0000.003F.0002][.0000.0025.0002] # LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEA ; [.1E30.0020.0008][.0000.003F.0002][.0000.0025.0002] # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEF ; [.1E30.0020.0002][.0000.003F.0002][.0000.002D.0002] # LATIN SMALL LETTER U WITH HORN AND TILDE
+1EEE ; [.1E30.0020.0008][.0000.003F.0002][.0000.002D.0002] # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EED ; [.1E30.0020.0002][.0000.003F.0002][.0000.003B.0002] # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEC ; [.1E30.0020.0008][.0000.003F.0002][.0000.003B.0002] # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EF1 ; [.1E30.0020.0002][.0000.003F.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF0 ; [.1E30.0020.0008][.0000.003F.0002][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EE5 ; [.1E30.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER U WITH DOT BELOW
+1EE4 ; [.1E30.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER U WITH DOT BELOW
+1E73 ; [.1E30.0020.0002][.0000.0043.0002] # LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E72 ; [.1E30.0020.0008][.0000.0043.0002] # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E77 ; [.1E30.0020.0002][.0000.0046.0002] # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E76 ; [.1E30.0020.0008][.0000.0046.0002] # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E75 ; [.1E30.0020.0002][.0000.0048.0002] # LATIN SMALL LETTER U WITH TILDE BELOW
+1E74 ; [.1E30.0020.0008][.0000.0048.0002] # LATIN CAPITAL LETTER U WITH TILDE BELOW
+1F199 ; [.1E30.0020.001D][.1D87.0020.001D][*025F.0020.001C] # SQUARED UP WITH EXCLAMATION MARK
+1D1C ; [.1E34.0020.0002] # LATIN LETTER SMALL CAPITAL U
+1DB8 ; [.1E34.0020.0014] # MODIFIER LETTER SMALL CAPITAL U
+AB4E ; [.1E35.0020.0002] # LATIN SMALL LETTER U WITH SHORT RIGHT LEG
+1D1D ; [.1E36.0020.0002] # LATIN SMALL LETTER SIDEWAYS U
+1D59 ; [.1E36.0020.0014] # MODIFIER LETTER SMALL SIDEWAYS U
+1D1E ; [.1E37.0020.0002] # LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
+1D6B ; [.1E38.0020.0002] # LATIN SMALL LETTER UE
+AB50 ; [.1E39.0020.0002] # LATIN SMALL LETTER UI
+AB51 ; [.1E3A.0020.0002] # LATIN SMALL LETTER TURNED UI
+0289 ; [.1E3B.0020.0002] # LATIN SMALL LETTER U BAR
+0244 ; [.1E3B.0020.0008] # LATIN CAPITAL LETTER U BAR
+1DB6 ; [.1E3B.0020.0014] # MODIFIER LETTER SMALL U BAR
+AB4F ; [.1E3F.0020.0002] # LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG
+1D7E ; [.1E40.0020.0002] # LATIN SMALL CAPITAL LETTER U WITH STROKE
+1D99 ; [.1E41.0020.0002] # LATIN SMALL LETTER U WITH RETROFLEX HOOK
+AB52 ; [.1E42.0020.0002] # LATIN SMALL LETTER U WITH LEFT HOOK
+AB5F ; [.1E42.0020.0014] # MODIFIER LETTER SMALL U WITH LEFT HOOK
+0265 ; [.1E43.0020.0002] # LATIN SMALL LETTER TURNED H
+A78D ; [.1E43.0020.0008] # LATIN CAPITAL LETTER TURNED H
+1DA3 ; [.1E43.0020.0014] # MODIFIER LETTER SMALL TURNED H
+02AE ; [.1E47.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK
+02AF ; [.1E4B.0020.0002] # LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+026F ; [.1E4F.0020.0002] # LATIN SMALL LETTER TURNED M
+019C ; [.1E4F.0020.0008] # LATIN CAPITAL LETTER TURNED M
+1D5A ; [.1E4F.0020.0014] # MODIFIER LETTER SMALL TURNED M
+A7FA ; [.1E53.0020.0002] # LATIN LETTER SMALL CAPITAL TURNED M
+1D1F ; [.1E54.0020.0002] # LATIN SMALL LETTER SIDEWAYS TURNED M
+0270 ; [.1E55.0020.0002] # LATIN SMALL LETTER TURNED M WITH LONG LEG
+1DAD ; [.1E55.0020.0014] # MODIFIER LETTER SMALL TURNED M WITH LONG LEG
+028A ; [.1E59.0020.0002] # LATIN SMALL LETTER UPSILON
+01B1 ; [.1E59.0020.0008] # LATIN CAPITAL LETTER UPSILON
+1DB7 ; [.1E59.0020.0014] # MODIFIER LETTER SMALL UPSILON
+1D7F ; [.1E5D.0020.0002] # LATIN SMALL LETTER UPSILON WITH STROKE
+0076 ; [.1E5E.0020.0002] # LATIN SMALL LETTER V
+FF56 ; [.1E5E.0020.0003] # FULLWIDTH LATIN SMALL LETTER V
+036E ; [.1E5E.0020.0004] # COMBINING LATIN SMALL LETTER V
+2174 ; [.1E5E.0020.0004] # SMALL ROMAN NUMERAL FIVE
+24B1 ; [*0310.0020.0004][.1E5E.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER V
+1D42F ; [.1E5E.0020.0005] # MATHEMATICAL BOLD SMALL V
+1D463 ; [.1E5E.0020.0005] # MATHEMATICAL ITALIC SMALL V
+1D497 ; [.1E5E.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL V
+1D4CB ; [.1E5E.0020.0005] # MATHEMATICAL SCRIPT SMALL V
+1D4FF ; [.1E5E.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL V
+1D533 ; [.1E5E.0020.0005] # MATHEMATICAL FRAKTUR SMALL V
+1D567 ; [.1E5E.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL V
+1D59B ; [.1E5E.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL V
+1D5CF ; [.1E5E.0020.0005] # MATHEMATICAL SANS-SERIF SMALL V
+1D603 ; [.1E5E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL V
+1D637 ; [.1E5E.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL V
+1D66B ; [.1E5E.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
+1D69F ; [.1E5E.0020.0005] # MATHEMATICAL MONOSPACE SMALL V
+24E5 ; [.1E5E.0020.0006] # CIRCLED LATIN SMALL LETTER V
+0056 ; [.1E5E.0020.0008] # LATIN CAPITAL LETTER V
+FF36 ; [.1E5E.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER V
+2164 ; [.1E5E.0020.000A] # ROMAN NUMERAL FIVE
+1F125 ; [*0310.0020.0004][.1E5E.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER V
+1D415 ; [.1E5E.0020.000B] # MATHEMATICAL BOLD CAPITAL V
+1D449 ; [.1E5E.0020.000B] # MATHEMATICAL ITALIC CAPITAL V
+1D47D ; [.1E5E.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL V
+1D4B1 ; [.1E5E.0020.000B] # MATHEMATICAL SCRIPT CAPITAL V
+1D4E5 ; [.1E5E.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL V
+1D519 ; [.1E5E.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL V
+1D54D ; [.1E5E.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+1D581 ; [.1E5E.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL V
+1D5B5 ; [.1E5E.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL V
+1D5E9 ; [.1E5E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+1D61D ; [.1E5E.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+1D651 ; [.1E5E.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+1D685 ; [.1E5E.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL V
+24CB ; [.1E5E.0020.000C] # CIRCLED LATIN CAPITAL LETTER V
+1F165 ; [.1E5E.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER V
+1D5B ; [.1E5E.0020.0014] # MODIFIER LETTER SMALL V
+1D65 ; [.1E5E.0020.0015] # LATIN SUBSCRIPT SMALL LETTER V
+2C7D ; [.1E5E.0020.001D] # MODIFIER LETTER CAPITAL V
+1F145 ; [.1E5E.0020.001D] # SQUARED LATIN CAPITAL LETTER V
+1F185 ; [.1E5E.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER V
+1E7D ; [.1E5E.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER V WITH TILDE
+1E7C ; [.1E5E.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER V WITH TILDE
+1E7F ; [.1E5E.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER V WITH DOT BELOW
+1E7E ; [.1E5E.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER V WITH DOT BELOW
+2175 ; [.1E5E.0020.0004][.1CAD.0020.0004] # SMALL ROMAN NUMERAL SIX
+2165 ; [.1E5E.0020.000A][.1CAD.0020.000A] # ROMAN NUMERAL SIX
+2176 ; [.1E5E.0020.0004][.1CAD.0020.0004][.1CAD.0020.0004] # SMALL ROMAN NUMERAL SEVEN
+2166 ; [.1E5E.0020.000A][.1CAD.0020.000A][.1CAD.0020.000A] # ROMAN NUMERAL SEVEN
+2177 ; [.1E5E.0020.0004][.1CAD.0020.0004][.1CAD.0020.0004][.1CAD.0020.0004] # SMALL ROMAN NUMERAL EIGHT
+2167 ; [.1E5E.0020.000A][.1CAD.0020.000A][.1CAD.0020.000A][.1CAD.0020.000A] # ROMAN NUMERAL EIGHT
+33DE ; [.1E5E.0020.001D][*0605.0020.001C][.1D25.0020.001C] # SQUARE V OVER M
+1F19A ; [.1E5E.0020.001D][.1DEC.0020.001D] # SQUARED VS
+A761 ; [.1E5E.0020.0004][.1E86.0020.0004] # LATIN SMALL LETTER VY
+A760 ; [.1E5E.0020.000A][.1E86.0020.000A] # LATIN CAPITAL LETTER VY
+1D20 ; [.1E62.0020.0002] # LATIN LETTER SMALL CAPITAL V
+A75F ; [.1E63.0020.0002] # LATIN SMALL LETTER V WITH DIAGONAL STROKE
+A75E ; [.1E63.0020.0008] # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+1D8C ; [.1E64.0020.0002] # LATIN SMALL LETTER V WITH PALATAL HOOK
+028B ; [.1E65.0020.0002] # LATIN SMALL LETTER V WITH HOOK
+01B2 ; [.1E65.0020.0008] # LATIN CAPITAL LETTER V WITH HOOK
+1DB9 ; [.1E65.0020.0014] # MODIFIER LETTER SMALL V WITH HOOK
+2C71 ; [.1E69.0020.0002] # LATIN SMALL LETTER V WITH RIGHT HOOK
+2C74 ; [.1E6A.0020.0002] # LATIN SMALL LETTER V WITH CURL
+1EFD ; [.1E6B.0020.0002] # LATIN SMALL LETTER MIDDLE-WELSH V
+1EFC ; [.1E6B.0020.0008] # LATIN CAPITAL LETTER MIDDLE-WELSH V
+028C ; [.1E6C.0020.0002] # LATIN SMALL LETTER TURNED V
+0245 ; [.1E6C.0020.0008] # LATIN CAPITAL LETTER TURNED V
+1DBA ; [.1E6C.0020.0014] # MODIFIER LETTER SMALL TURNED V
+0077 ; [.1E70.0020.0002] # LATIN SMALL LETTER W
+FF57 ; [.1E70.0020.0003] # FULLWIDTH LATIN SMALL LETTER W
+1DF1 ; [.1E70.0020.0004] # COMBINING LATIN SMALL LETTER W
+24B2 ; [*0310.0020.0004][.1E70.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER W
+1D430 ; [.1E70.0020.0005] # MATHEMATICAL BOLD SMALL W
+1D464 ; [.1E70.0020.0005] # MATHEMATICAL ITALIC SMALL W
+1D498 ; [.1E70.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL W
+1D4CC ; [.1E70.0020.0005] # MATHEMATICAL SCRIPT SMALL W
+1D500 ; [.1E70.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL W
+1D534 ; [.1E70.0020.0005] # MATHEMATICAL FRAKTUR SMALL W
+1D568 ; [.1E70.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL W
+1D59C ; [.1E70.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL W
+1D5D0 ; [.1E70.0020.0005] # MATHEMATICAL SANS-SERIF SMALL W
+1D604 ; [.1E70.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL W
+1D638 ; [.1E70.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL W
+1D66C ; [.1E70.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
+1D6A0 ; [.1E70.0020.0005] # MATHEMATICAL MONOSPACE SMALL W
+24E6 ; [.1E70.0020.0006] # CIRCLED LATIN SMALL LETTER W
+0057 ; [.1E70.0020.0008] # LATIN CAPITAL LETTER W
+FF37 ; [.1E70.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER W
+1F126 ; [*0310.0020.0004][.1E70.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER W
+1D416 ; [.1E70.0020.000B] # MATHEMATICAL BOLD CAPITAL W
+1D44A ; [.1E70.0020.000B] # MATHEMATICAL ITALIC CAPITAL W
+1D47E ; [.1E70.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL W
+1D4B2 ; [.1E70.0020.000B] # MATHEMATICAL SCRIPT CAPITAL W
+1D4E6 ; [.1E70.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL W
+1D51A ; [.1E70.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL W
+1D54E ; [.1E70.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+1D582 ; [.1E70.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL W
+1D5B6 ; [.1E70.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL W
+1D5EA ; [.1E70.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+1D61E ; [.1E70.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+1D652 ; [.1E70.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+1D686 ; [.1E70.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL W
+24CC ; [.1E70.0020.000C] # CIRCLED LATIN CAPITAL LETTER W
+1F166 ; [.1E70.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER W
+02B7 ; [.1E70.0020.0014] # MODIFIER LETTER SMALL W
+1D42 ; [.1E70.0020.001D] # MODIFIER LETTER CAPITAL W
+1F146 ; [.1E70.0020.001D] # SQUARED LATIN CAPITAL LETTER W
+1F186 ; [.1E70.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER W
+1E83 ; [.1E70.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER W WITH ACUTE
+1E82 ; [.1E70.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER W WITH ACUTE
+1E81 ; [.1E70.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER W WITH GRAVE
+1E80 ; [.1E70.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER W WITH GRAVE
+0175 ; [.1E70.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER W WITH CIRCUMFLEX
+0174 ; [.1E70.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+1E98 ; [.1E70.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER W WITH RING ABOVE
+1E85 ; [.1E70.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER W WITH DIAERESIS
+1E84 ; [.1E70.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER W WITH DIAERESIS
+1E87 ; [.1E70.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER W WITH DOT ABOVE
+1E86 ; [.1E70.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E89 ; [.1E70.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER W WITH DOT BELOW
+1E88 ; [.1E70.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER W WITH DOT BELOW
+33DD ; [.1E70.0020.001D][.1BDB.0020.001C] # SQUARE WB
+1F14F ; [.1E70.0020.001D][.1BF5.0020.001D] # SQUARED WC
+1F18F ; [.1E70.0020.001D][.1BF5.0020.001D] # NEGATIVE SQUARED WC
+1F12E ; [.1E70.0020.000C][.1E9C.0020.000C] # CIRCLED WZ
+1D21 ; [.1E74.0020.0002] # LATIN LETTER SMALL CAPITAL W
+2C73 ; [.1E75.0020.0002] # LATIN SMALL LETTER W WITH HOOK
+2C72 ; [.1E75.0020.0008] # LATIN CAPITAL LETTER W WITH HOOK
+028D ; [.1E76.0020.0002] # LATIN SMALL LETTER TURNED W
+0078 ; [.1E7A.0020.0002] # LATIN SMALL LETTER X
+FF58 ; [.1E7A.0020.0003] # FULLWIDTH LATIN SMALL LETTER X
+036F ; [.1E7A.0020.0004] # COMBINING LATIN SMALL LETTER X
+2179 ; [.1E7A.0020.0004] # SMALL ROMAN NUMERAL TEN
+24B3 ; [*0310.0020.0004][.1E7A.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER X
+1D431 ; [.1E7A.0020.0005] # MATHEMATICAL BOLD SMALL X
+1D465 ; [.1E7A.0020.0005] # MATHEMATICAL ITALIC SMALL X
+1D499 ; [.1E7A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL X
+1D4CD ; [.1E7A.0020.0005] # MATHEMATICAL SCRIPT SMALL X
+1D501 ; [.1E7A.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL X
+1D535 ; [.1E7A.0020.0005] # MATHEMATICAL FRAKTUR SMALL X
+1D569 ; [.1E7A.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL X
+1D59D ; [.1E7A.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL X
+1D5D1 ; [.1E7A.0020.0005] # MATHEMATICAL SANS-SERIF SMALL X
+1D605 ; [.1E7A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL X
+1D639 ; [.1E7A.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL X
+1D66D ; [.1E7A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
+1D6A1 ; [.1E7A.0020.0005] # MATHEMATICAL MONOSPACE SMALL X
+24E7 ; [.1E7A.0020.0006] # CIRCLED LATIN SMALL LETTER X
+0058 ; [.1E7A.0020.0008] # LATIN CAPITAL LETTER X
+FF38 ; [.1E7A.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER X
+2169 ; [.1E7A.0020.000A] # ROMAN NUMERAL TEN
+1F127 ; [*0310.0020.0004][.1E7A.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER X
+1D417 ; [.1E7A.0020.000B] # MATHEMATICAL BOLD CAPITAL X
+1D44B ; [.1E7A.0020.000B] # MATHEMATICAL ITALIC CAPITAL X
+1D47F ; [.1E7A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL X
+1D4B3 ; [.1E7A.0020.000B] # MATHEMATICAL SCRIPT CAPITAL X
+1D4E7 ; [.1E7A.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL X
+1D51B ; [.1E7A.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL X
+1D54F ; [.1E7A.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+1D583 ; [.1E7A.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL X
+1D5B7 ; [.1E7A.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL X
+1D5EB ; [.1E7A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+1D61F ; [.1E7A.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+1D653 ; [.1E7A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+1D687 ; [.1E7A.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL X
+24CD ; [.1E7A.0020.000C] # CIRCLED LATIN CAPITAL LETTER X
+1F167 ; [.1E7A.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER X
+02E3 ; [.1E7A.0020.0014] # MODIFIER LETTER SMALL X
+2093 ; [.1E7A.0020.0015] # LATIN SUBSCRIPT SMALL LETTER X
+1F147 ; [.1E7A.0020.001D] # SQUARED LATIN CAPITAL LETTER X
+1F187 ; [.1E7A.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER X
+1E8D ; [.1E7A.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER X WITH DIAERESIS
+1E8C ; [.1E7A.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8B ; [.1E7A.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER X WITH DOT ABOVE
+1E8A ; [.1E7A.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER X WITH DOT ABOVE
+217A ; [.1E7A.0020.0004][.1CAD.0020.0004] # SMALL ROMAN NUMERAL ELEVEN
+216A ; [.1E7A.0020.000A][.1CAD.0020.000A] # ROMAN NUMERAL ELEVEN
+217B ; [.1E7A.0020.0004][.1CAD.0020.0004][.1CAD.0020.0004] # SMALL ROMAN NUMERAL TWELVE
+216B ; [.1E7A.0020.000A][.1CAD.0020.000A][.1CAD.0020.000A] # ROMAN NUMERAL TWELVE
+1D8D ; [.1E7E.0020.0002] # LATIN SMALL LETTER X WITH PALATAL HOOK
+AB56 ; [.1E7F.0020.0002] # LATIN SMALL LETTER X WITH LOW RIGHT RING
+AB57 ; [.1E80.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG
+AB58 ; [.1E81.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING
+AB59 ; [.1E82.0020.0002] # LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF
+AB53 ; [.1E83.0020.0002] # LATIN SMALL LETTER CHI
+A7B3 ; [.1E83.0020.0008] # LATIN CAPITAL LETTER CHI
+AB54 ; [.1E84.0020.0002] # LATIN SMALL LETTER CHI WITH LOW RIGHT RING
+AB55 ; [.1E85.0020.0002] # LATIN SMALL LETTER CHI WITH LOW LEFT SERIF
+0079 ; [.1E86.0020.0002] # LATIN SMALL LETTER Y
+FF59 ; [.1E86.0020.0003] # FULLWIDTH LATIN SMALL LETTER Y
+24B4 ; [*0310.0020.0004][.1E86.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Y
+1D432 ; [.1E86.0020.0005] # MATHEMATICAL BOLD SMALL Y
+1D466 ; [.1E86.0020.0005] # MATHEMATICAL ITALIC SMALL Y
+1D49A ; [.1E86.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Y
+1D4CE ; [.1E86.0020.0005] # MATHEMATICAL SCRIPT SMALL Y
+1D502 ; [.1E86.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Y
+1D536 ; [.1E86.0020.0005] # MATHEMATICAL FRAKTUR SMALL Y
+1D56A ; [.1E86.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Y
+1D59E ; [.1E86.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Y
+1D5D2 ; [.1E86.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Y
+1D606 ; [.1E86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Y
+1D63A ; [.1E86.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Y
+1D66E ; [.1E86.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
+1D6A2 ; [.1E86.0020.0005] # MATHEMATICAL MONOSPACE SMALL Y
+24E8 ; [.1E86.0020.0006] # CIRCLED LATIN SMALL LETTER Y
+0059 ; [.1E86.0020.0008] # LATIN CAPITAL LETTER Y
+FF39 ; [.1E86.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Y
+1F128 ; [*0310.0020.0004][.1E86.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Y
+1D418 ; [.1E86.0020.000B] # MATHEMATICAL BOLD CAPITAL Y
+1D44C ; [.1E86.0020.000B] # MATHEMATICAL ITALIC CAPITAL Y
+1D480 ; [.1E86.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Y
+1D4B4 ; [.1E86.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Y
+1D4E8 ; [.1E86.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Y
+1D51C ; [.1E86.0020.000B] # MATHEMATICAL FRAKTUR CAPITAL Y
+1D550 ; [.1E86.0020.000B] # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D584 ; [.1E86.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+1D5B8 ; [.1E86.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Y
+1D5EC ; [.1E86.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+1D620 ; [.1E86.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+1D654 ; [.1E86.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+1D688 ; [.1E86.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Y
+24CE ; [.1E86.0020.000C] # CIRCLED LATIN CAPITAL LETTER Y
+1F168 ; [.1E86.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
+02B8 ; [.1E86.0020.0014] # MODIFIER LETTER SMALL Y
+1F148 ; [.1E86.0020.001D] # SQUARED LATIN CAPITAL LETTER Y
+1F188 ; [.1E86.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Y
+00FD ; [.1E86.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Y WITH ACUTE
+00DD ; [.1E86.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Y WITH ACUTE
+1EF3 ; [.1E86.0020.0002][.0000.0025.0002] # LATIN SMALL LETTER Y WITH GRAVE
+1EF2 ; [.1E86.0020.0008][.0000.0025.0002] # LATIN CAPITAL LETTER Y WITH GRAVE
+0177 ; [.1E86.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0176 ; [.1E86.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+1E99 ; [.1E86.0020.0002][.0000.0029.0002] # LATIN SMALL LETTER Y WITH RING ABOVE
+00FF ; [.1E86.0020.0002][.0000.002B.0002] # LATIN SMALL LETTER Y WITH DIAERESIS
+0178 ; [.1E86.0020.0008][.0000.002B.0002] # LATIN CAPITAL LETTER Y WITH DIAERESIS
+1EF9 ; [.1E86.0020.0002][.0000.002D.0002] # LATIN SMALL LETTER Y WITH TILDE
+1EF8 ; [.1E86.0020.0008][.0000.002D.0002] # LATIN CAPITAL LETTER Y WITH TILDE
+1E8F ; [.1E86.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Y WITH DOT ABOVE
+1E8E ; [.1E86.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Y WITH DOT ABOVE
+0233 ; [.1E86.0020.0002][.0000.0032.0002] # LATIN SMALL LETTER Y WITH MACRON
+0232 ; [.1E86.0020.0008][.0000.0032.0002] # LATIN CAPITAL LETTER Y WITH MACRON
+1EF7 ; [.1E86.0020.0002][.0000.003B.0002] # LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF6 ; [.1E86.0020.0008][.0000.003B.0002] # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF5 ; [.1E86.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Y WITH DOT BELOW
+1EF4 ; [.1E86.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Y WITH DOT BELOW
+028F ; [.1E8A.0020.0002] # LATIN LETTER SMALL CAPITAL Y
+024F ; [.1E8E.0020.0002] # LATIN SMALL LETTER Y WITH STROKE
+024E ; [.1E8E.0020.0008] # LATIN CAPITAL LETTER Y WITH STROKE
+01B4 ; [.1E92.0020.0002] # LATIN SMALL LETTER Y WITH HOOK
+01B3 ; [.1E92.0020.0008] # LATIN CAPITAL LETTER Y WITH HOOK
+1EFF ; [.1E96.0020.0002] # LATIN SMALL LETTER Y WITH LOOP
+1EFE ; [.1E96.0020.0008] # LATIN CAPITAL LETTER Y WITH LOOP
+AB5A ; [.1E97.0020.0002] # LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+021D ; [.1E98.0020.0002] # LATIN SMALL LETTER YOGH
+021C ; [.1E98.0020.0008] # LATIN CAPITAL LETTER YOGH
+007A ; [.1E9C.0020.0002] # LATIN SMALL LETTER Z
+FF5A ; [.1E9C.0020.0003] # FULLWIDTH LATIN SMALL LETTER Z
+1DE6 ; [.1E9C.0020.0004] # COMBINING LATIN SMALL LETTER Z
+24B5 ; [*0310.0020.0004][.1E9C.0020.0004][*0311.0020.0004] # PARENTHESIZED LATIN SMALL LETTER Z
+1D433 ; [.1E9C.0020.0005] # MATHEMATICAL BOLD SMALL Z
+1D467 ; [.1E9C.0020.0005] # MATHEMATICAL ITALIC SMALL Z
+1D49B ; [.1E9C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL Z
+1D4CF ; [.1E9C.0020.0005] # MATHEMATICAL SCRIPT SMALL Z
+1D503 ; [.1E9C.0020.0005] # MATHEMATICAL BOLD SCRIPT SMALL Z
+1D537 ; [.1E9C.0020.0005] # MATHEMATICAL FRAKTUR SMALL Z
+1D56B ; [.1E9C.0020.0005] # MATHEMATICAL DOUBLE-STRUCK SMALL Z
+1D59F ; [.1E9C.0020.0005] # MATHEMATICAL BOLD FRAKTUR SMALL Z
+1D5D3 ; [.1E9C.0020.0005] # MATHEMATICAL SANS-SERIF SMALL Z
+1D607 ; [.1E9C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL Z
+1D63B ; [.1E9C.0020.0005] # MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+1D66F ; [.1E9C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+1D6A3 ; [.1E9C.0020.0005] # MATHEMATICAL MONOSPACE SMALL Z
+24E9 ; [.1E9C.0020.0006] # CIRCLED LATIN SMALL LETTER Z
+005A ; [.1E9C.0020.0008] # LATIN CAPITAL LETTER Z
+FF3A ; [.1E9C.0020.0009] # FULLWIDTH LATIN CAPITAL LETTER Z
+1F129 ; [*0310.0020.0004][.1E9C.0020.000A][*0311.0020.0004] # PARENTHESIZED LATIN CAPITAL LETTER Z
+2124 ; [.1E9C.0020.000B] # DOUBLE-STRUCK CAPITAL Z
+2128 ; [.1E9C.0020.000B] # BLACK-LETTER CAPITAL Z
+1D419 ; [.1E9C.0020.000B] # MATHEMATICAL BOLD CAPITAL Z
+1D44D ; [.1E9C.0020.000B] # MATHEMATICAL ITALIC CAPITAL Z
+1D481 ; [.1E9C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL Z
+1D4B5 ; [.1E9C.0020.000B] # MATHEMATICAL SCRIPT CAPITAL Z
+1D4E9 ; [.1E9C.0020.000B] # MATHEMATICAL BOLD SCRIPT CAPITAL Z
+1D585 ; [.1E9C.0020.000B] # MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+1D5B9 ; [.1E9C.0020.000B] # MATHEMATICAL SANS-SERIF CAPITAL Z
+1D5ED ; [.1E9C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+1D621 ; [.1E9C.0020.000B] # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+1D655 ; [.1E9C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+1D689 ; [.1E9C.0020.000B] # MATHEMATICAL MONOSPACE CAPITAL Z
+24CF ; [.1E9C.0020.000C] # CIRCLED LATIN CAPITAL LETTER Z
+1F169 ; [.1E9C.0020.000C] # NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1DBB ; [.1E9C.0020.0014] # MODIFIER LETTER SMALL Z
+1F149 ; [.1E9C.0020.001D] # SQUARED LATIN CAPITAL LETTER Z
+1F189 ; [.1E9C.0020.001D] # NEGATIVE SQUARED LATIN CAPITAL LETTER Z
+017A ; [.1E9C.0020.0002][.0000.0024.0002] # LATIN SMALL LETTER Z WITH ACUTE
+0179 ; [.1E9C.0020.0008][.0000.0024.0002] # LATIN CAPITAL LETTER Z WITH ACUTE
+1E91 ; [.1E9C.0020.0002][.0000.0027.0002] # LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E90 ; [.1E9C.0020.0008][.0000.0027.0002] # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+017E ; [.1E9C.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER Z WITH CARON
+017D ; [.1E9C.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER Z WITH CARON
+017C ; [.1E9C.0020.0002][.0000.002E.0002] # LATIN SMALL LETTER Z WITH DOT ABOVE
+017B ; [.1E9C.0020.0008][.0000.002E.0002] # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+1E93 ; [.1E9C.0020.0002][.0000.0042.0002] # LATIN SMALL LETTER Z WITH DOT BELOW
+1E92 ; [.1E9C.0020.0008][.0000.0042.0002] # LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E95 ; [.1E9C.0020.0002][.0000.0049.0002] # LATIN SMALL LETTER Z WITH LINE BELOW
+1E94 ; [.1E9C.0020.0008][.0000.0049.0002] # LATIN CAPITAL LETTER Z WITH LINE BELOW
+018D ; [.1E9C.0020.0004][.1E70.0020.0004] # LATIN SMALL LETTER TURNED DELTA
+1D22 ; [.1EA0.0020.0002] # LATIN LETTER SMALL CAPITAL Z
+01B6 ; [.1EA1.0020.0002] # LATIN SMALL LETTER Z WITH STROKE
+01B5 ; [.1EA1.0020.0008] # LATIN CAPITAL LETTER Z WITH STROKE
+1D76 ; [.1EA5.0020.0002] # LATIN SMALL LETTER Z WITH MIDDLE TILDE
+1D8E ; [.1EA6.0020.0002] # LATIN SMALL LETTER Z WITH PALATAL HOOK
+0225 ; [.1EA7.0020.0002] # LATIN SMALL LETTER Z WITH HOOK
+0224 ; [.1EA7.0020.0008] # LATIN CAPITAL LETTER Z WITH HOOK
+0290 ; [.1EAB.0020.0002] # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
+1DBC ; [.1EAB.0020.0014] # MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
+0291 ; [.1EAF.0020.0002] # LATIN SMALL LETTER Z WITH CURL
+1DBD ; [.1EAF.0020.0014] # MODIFIER LETTER SMALL Z WITH CURL
+0240 ; [.1EB3.0020.0002] # LATIN SMALL LETTER Z WITH SWASH TAIL
+2C7F ; [.1EB3.0020.0008] # LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C6C ; [.1EB7.0020.0002] # LATIN SMALL LETTER Z WITH DESCENDER
+2C6B ; [.1EB7.0020.0008] # LATIN CAPITAL LETTER Z WITH DESCENDER
+A763 ; [.1EB8.0020.0002] # LATIN SMALL LETTER VISIGOTHIC Z
+A762 ; [.1EB8.0020.0008] # LATIN CAPITAL LETTER VISIGOTHIC Z
+0292 ; [.1EB9.0020.0002] # LATIN SMALL LETTER EZH
+01B7 ; [.1EB9.0020.0008] # LATIN CAPITAL LETTER EZH
+1DBE ; [.1EB9.0020.0014] # MODIFIER LETTER SMALL EZH
+01EF ; [.1EB9.0020.0002][.0000.0028.0002] # LATIN SMALL LETTER EZH WITH CARON
+01EE ; [.1EB9.0020.0008][.0000.0028.0002] # LATIN CAPITAL LETTER EZH WITH CARON
+1D23 ; [.1EBD.0020.0002] # LATIN LETTER SMALL CAPITAL EZH
+01B9 ; [.1EBE.0020.0002] # LATIN SMALL LETTER EZH REVERSED
+01B8 ; [.1EBE.0020.0008] # LATIN CAPITAL LETTER EZH REVERSED
+1D9A ; [.1EC2.0020.0002] # LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+01BA ; [.1EC3.0020.0002] # LATIN SMALL LETTER EZH WITH TAIL
+0293 ; [.1EC7.0020.0002] # LATIN SMALL LETTER EZH WITH CURL
+00FE ; [.1ECB.0020.0002] # LATIN SMALL LETTER THORN
+00DE ; [.1ECB.0020.0008] # LATIN CAPITAL LETTER THORN
+A765 ; [.1ECF.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE
+A764 ; [.1ECF.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE
+A767 ; [.1ED0.0020.0002] # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
+A766 ; [.1ED0.0020.0008] # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+01BF ; [.1ED1.0020.0002] # LATIN LETTER WYNN
+01F7 ; [.1ED1.0020.0008] # LATIN CAPITAL LETTER WYNN
+A769 ; [.1ED5.0020.0002] # LATIN SMALL LETTER VEND
+A768 ; [.1ED5.0020.0008] # LATIN CAPITAL LETTER VEND
+AB60 ; [.1ED6.0020.0002] # LATIN SMALL LETTER SAKHA YAT
+AB61 ; [.1ED7.0020.0002] # LATIN SMALL LETTER IOTIFIED E
+AB63 ; [.1ED8.0020.0002] # LATIN SMALL LETTER UO
+A76B ; [.1ED9.0020.0002] # LATIN SMALL LETTER ET
+A76A ; [.1ED9.0020.0008] # LATIN CAPITAL LETTER ET
+A76D ; [.1EDA.0020.0002] # LATIN SMALL LETTER IS
+A76C ; [.1EDA.0020.0008] # LATIN CAPITAL LETTER IS
+A76F ; [.1EDB.0020.0002] # LATIN SMALL LETTER CON
+1DD2 ; [.1EDB.0020.0004] # COMBINING US ABOVE
+A76E ; [.1EDB.0020.0008] # LATIN CAPITAL LETTER CON
+A770 ; [.1EDB.0020.0014] # MODIFIER LETTER US
+A778 ; [.1EDC.0020.0002] # LATIN SMALL LETTER UM
+01BB ; [.1EDD.0020.0002] # LATIN LETTER TWO WITH STROKE
+A72B ; [.1EE1.0020.0002] # LATIN SMALL LETTER TRESILLO
+A72A ; [.1EE1.0020.0008] # LATIN CAPITAL LETTER TRESILLO
+A72D ; [.1EE2.0020.0002] # LATIN SMALL LETTER CUATRILLO
+A72C ; [.1EE2.0020.0008] # LATIN CAPITAL LETTER CUATRILLO
+A72F ; [.1EE3.0020.0002] # LATIN SMALL LETTER CUATRILLO WITH COMMA
+A72E ; [.1EE3.0020.0008] # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+01A8 ; [.1EE4.0020.0002] # LATIN SMALL LETTER TONE TWO
+01A7 ; [.1EE4.0020.0008] # LATIN CAPITAL LETTER TONE TWO
+01BD ; [.1EE8.0020.0002] # LATIN SMALL LETTER TONE FIVE
+01BC ; [.1EE8.0020.0008] # LATIN CAPITAL LETTER TONE FIVE
+0185 ; [.1EEC.0020.0002] # LATIN SMALL LETTER TONE SIX
+0184 ; [.1EEC.0020.0008] # LATIN CAPITAL LETTER TONE SIX
+0294 ; [.1EF0.0020.0002] # LATIN LETTER GLOTTAL STOP
+0242 ; [.1EF4.0020.0002] # LATIN SMALL LETTER GLOTTAL STOP
+0241 ; [.1EF4.0020.0008] # LATIN CAPITAL LETTER GLOTTAL STOP
+02C0 ; [.1EF8.0020.0002] # MODIFIER LETTER GLOTTAL STOP
+02BC ; [.1EF9.0020.0002] # MODIFIER LETTER APOSTROPHE
+0149 ; [.1EF9.0020.0004][.1D34.0020.0004] # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+02EE ; [.1EFA.0020.0002] # MODIFIER LETTER DOUBLE APOSTROPHE
+02BE ; [.1EFB.0020.0002] # MODIFIER LETTER RIGHT HALF RING
+A723 ; [.1EFC.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
+A722 ; [.1EFC.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+A78C ; [.1EFD.0020.0002] # LATIN SMALL LETTER SALTILLO
+A78B ; [.1EFD.0020.0008] # LATIN CAPITAL LETTER SALTILLO
+A78F ; [.1EFE.0020.0002] # LATIN LETTER SINOLOGICAL DOT
+0295 ; [.1EFF.0020.0002] # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
+02E4 ; [.1EFF.0020.0014] # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02BF ; [.1F03.0020.0002] # MODIFIER LETTER LEFT HALF RING
+02C1 ; [.1F04.0020.0002] # MODIFIER LETTER REVERSED GLOTTAL STOP
+1D24 ; [.1F05.0020.0002] # LATIN LETTER VOICED LARYNGEAL SPIRANT
+1D25 ; [.1F06.0020.0002] # LATIN LETTER AIN
+1D5C ; [.1F06.0020.0014] # MODIFIER LETTER SMALL AIN
+A725 ; [.1F07.0020.0002] # LATIN SMALL LETTER EGYPTOLOGICAL AIN
+A724 ; [.1F07.0020.0008] # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+02A1 ; [.1F08.0020.0002] # LATIN LETTER GLOTTAL STOP WITH STROKE
+02A2 ; [.1F0C.0020.0002] # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
+0296 ; [.1F10.0020.0002] # LATIN LETTER INVERTED GLOTTAL STOP
+01C0 ; [.1F14.0020.0002] # LATIN LETTER DENTAL CLICK
+01C1 ; [.1F18.0020.0002] # LATIN LETTER LATERAL CLICK
+01C2 ; [.1F1C.0020.0002] # LATIN LETTER ALVEOLAR CLICK
+01C3 ; [.1F20.0020.0002] # LATIN LETTER RETROFLEX CLICK
+0297 ; [.1F24.0020.0002] # LATIN LETTER STRETCHED C
+0298 ; [.1F28.0020.0002] # LATIN LETTER BILABIAL CLICK
+02AC ; [.1F2C.0020.0002] # LATIN LETTER BILABIAL PERCUSSIVE
+02AD ; [.1F30.0020.0002] # LATIN LETTER BIDENTAL PERCUSSIVE
+03B1 ; [.1F34.0020.0002] # GREEK SMALL LETTER ALPHA
+1D6C2 ; [.1F34.0020.0005] # MATHEMATICAL BOLD SMALL ALPHA
+1D6FC ; [.1F34.0020.0005] # MATHEMATICAL ITALIC SMALL ALPHA
+1D736 ; [.1F34.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ALPHA
+1D770 ; [.1F34.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
+1D7AA ; [.1F34.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
+0391 ; [.1F34.0020.0008] # GREEK CAPITAL LETTER ALPHA
+1D6A8 ; [.1F34.0020.000B] # MATHEMATICAL BOLD CAPITAL ALPHA
+1D6E2 ; [.1F34.0020.000B] # MATHEMATICAL ITALIC CAPITAL ALPHA
+1D71C ; [.1F34.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
+1D756 ; [.1F34.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
+1D790 ; [.1F34.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+1F00 ; [.1F34.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ALPHA WITH PSILI
+1F08 ; [.1F34.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI
+1F04 ; [.1F34.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+1F0C ; [.1F34.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+1F84 ; [.1F34.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F8C ; [.1F34.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F02 ; [.1F34.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+1F0A ; [.1F34.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+1F82 ; [.1F34.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F8A ; [.1F34.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F06 ; [.1F34.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0E ; [.1F34.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F86 ; [.1F34.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F8E ; [.1F34.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F80 ; [.1F34.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F88 ; [.1F34.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F01 ; [.1F34.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ALPHA WITH DASIA
+1F09 ; [.1F34.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA
+1F05 ; [.1F34.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+1F0D ; [.1F34.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+1F85 ; [.1F34.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F8D ; [.1F34.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F03 ; [.1F34.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+1F0B ; [.1F34.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+1F83 ; [.1F34.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F8B ; [.1F34.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F07 ; [.1F34.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F0F ; [.1F34.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F87 ; [.1F34.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F8F ; [.1F34.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F81 ; [.1F34.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F89 ; [.1F34.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+03AC ; [.1F34.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH TONOS
+1F71 ; [.1F34.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ALPHA WITH OXIA
+0386 ; [.1F34.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH TONOS
+1FBB ; [.1F34.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FB4 ; [.1F34.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1F70 ; [.1F34.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ALPHA WITH VARIA
+1FBA ; [.1F34.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ALPHA WITH VARIA
+1FB2 ; [.1F34.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB0 ; [.1F34.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER ALPHA WITH VRACHY
+1FB8 ; [.1F34.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER ALPHA WITH VRACHY
+1FB6 ; [.1F34.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7 ; [.1F34.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FB1 ; [.1F34.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER ALPHA WITH MACRON
+1FB9 ; [.1F34.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER ALPHA WITH MACRON
+1FB3 ; [.1F34.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+1FBC ; [.1F34.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+03B2 ; [.1F35.0020.0002] # GREEK SMALL LETTER BETA
+03D0 ; [.1F35.0020.0004] # GREEK BETA SYMBOL
+1D6C3 ; [.1F35.0020.0005] # MATHEMATICAL BOLD SMALL BETA
+1D6FD ; [.1F35.0020.0005] # MATHEMATICAL ITALIC SMALL BETA
+1D737 ; [.1F35.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL BETA
+1D771 ; [.1F35.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL BETA
+1D7AB ; [.1F35.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
+0392 ; [.1F35.0020.0008] # GREEK CAPITAL LETTER BETA
+1D6A9 ; [.1F35.0020.000B] # MATHEMATICAL BOLD CAPITAL BETA
+1D6E3 ; [.1F35.0020.000B] # MATHEMATICAL ITALIC CAPITAL BETA
+1D71D ; [.1F35.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL BETA
+1D757 ; [.1F35.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
+1D791 ; [.1F35.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
+1D5D ; [.1F35.0020.0014] # MODIFIER LETTER SMALL BETA
+1D66 ; [.1F35.0020.0015] # GREEK SUBSCRIPT SMALL LETTER BETA
+03B3 ; [.1F36.0020.0002] # GREEK SMALL LETTER GAMMA
+213D ; [.1F36.0020.0005] # DOUBLE-STRUCK SMALL GAMMA
+1D6C4 ; [.1F36.0020.0005] # MATHEMATICAL BOLD SMALL GAMMA
+1D6FE ; [.1F36.0020.0005] # MATHEMATICAL ITALIC SMALL GAMMA
+1D738 ; [.1F36.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL GAMMA
+1D772 ; [.1F36.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
+1D7AC ; [.1F36.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
+0393 ; [.1F36.0020.0008] # GREEK CAPITAL LETTER GAMMA
+213E ; [.1F36.0020.000B] # DOUBLE-STRUCK CAPITAL GAMMA
+1D6AA ; [.1F36.0020.000B] # MATHEMATICAL BOLD CAPITAL GAMMA
+1D6E4 ; [.1F36.0020.000B] # MATHEMATICAL ITALIC CAPITAL GAMMA
+1D71E ; [.1F36.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
+1D758 ; [.1F36.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
+1D792 ; [.1F36.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+1D5E ; [.1F36.0020.0014] # MODIFIER LETTER SMALL GREEK GAMMA
+1D67 ; [.1F36.0020.0015] # GREEK SUBSCRIPT SMALL LETTER GAMMA
+1D26 ; [.1F37.0020.0002] # GREEK LETTER SMALL CAPITAL GAMMA
+03B4 ; [.1F38.0020.0002] # GREEK SMALL LETTER DELTA
+1D6C5 ; [.1F38.0020.0005] # MATHEMATICAL BOLD SMALL DELTA
+1D6FF ; [.1F38.0020.0005] # MATHEMATICAL ITALIC SMALL DELTA
+1D739 ; [.1F38.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL DELTA
+1D773 ; [.1F38.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
+1D7AD ; [.1F38.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
+0394 ; [.1F38.0020.0008] # GREEK CAPITAL LETTER DELTA
+1D6AB ; [.1F38.0020.000B] # MATHEMATICAL BOLD CAPITAL DELTA
+1D6E5 ; [.1F38.0020.000B] # MATHEMATICAL ITALIC CAPITAL DELTA
+1D71F ; [.1F38.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL DELTA
+1D759 ; [.1F38.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
+1D793 ; [.1F38.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
+1D5F ; [.1F38.0020.0014] # MODIFIER LETTER SMALL DELTA
+03B5 ; [.1F39.0020.0002] # GREEK SMALL LETTER EPSILON
+03F5 ; [.1F39.0020.0004] # GREEK LUNATE EPSILON SYMBOL
+1D6C6 ; [.1F39.0020.0005] # MATHEMATICAL BOLD SMALL EPSILON
+1D6DC ; [.1F39.0020.0005] # MATHEMATICAL BOLD EPSILON SYMBOL
+1D700 ; [.1F39.0020.0005] # MATHEMATICAL ITALIC SMALL EPSILON
+1D716 ; [.1F39.0020.0005] # MATHEMATICAL ITALIC EPSILON SYMBOL
+1D73A ; [.1F39.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL EPSILON
+1D750 ; [.1F39.0020.0005] # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
+1D774 ; [.1F39.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
+1D78A ; [.1F39.0020.0005] # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
+1D7AE ; [.1F39.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
+1D7C4 ; [.1F39.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
+0395 ; [.1F39.0020.0008] # GREEK CAPITAL LETTER EPSILON
+1D6AC ; [.1F39.0020.000B] # MATHEMATICAL BOLD CAPITAL EPSILON
+1D6E6 ; [.1F39.0020.000B] # MATHEMATICAL ITALIC CAPITAL EPSILON
+1D720 ; [.1F39.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
+1D75A ; [.1F39.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
+1D794 ; [.1F39.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+1F10 ; [.1F39.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER EPSILON WITH PSILI
+1F18 ; [.1F39.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI
+1F14 ; [.1F39.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+1F1C ; [.1F39.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+1F12 ; [.1F39.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+1F1A ; [.1F39.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+1F11 ; [.1F39.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER EPSILON WITH DASIA
+1F19 ; [.1F39.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA
+1F15 ; [.1F39.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F1D ; [.1F39.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F13 ; [.1F39.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+1F1B ; [.1F39.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+03AD ; [.1F39.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH TONOS
+1F73 ; [.1F39.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER EPSILON WITH OXIA
+0388 ; [.1F39.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH TONOS
+1FC9 ; [.1F39.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER EPSILON WITH OXIA
+1F72 ; [.1F39.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER EPSILON WITH VARIA
+1FC8 ; [.1F39.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER EPSILON WITH VARIA
+03DD ; [.1F3A.0020.0002] # GREEK SMALL LETTER DIGAMMA
+1D7CB ; [.1F3A.0020.0005] # MATHEMATICAL BOLD SMALL DIGAMMA
+03DC ; [.1F3A.0020.0008] # GREEK LETTER DIGAMMA
+1D7CA ; [.1F3A.0020.000B] # MATHEMATICAL BOLD CAPITAL DIGAMMA
+0377 ; [.1F3B.0020.0002] # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+0376 ; [.1F3B.0020.0008] # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+03DB ; [.1F3C.0020.0002] # GREEK SMALL LETTER STIGMA
+03DA ; [.1F3C.0020.0008] # GREEK LETTER STIGMA
+03B6 ; [.1F3D.0020.0002] # GREEK SMALL LETTER ZETA
+1D6C7 ; [.1F3D.0020.0005] # MATHEMATICAL BOLD SMALL ZETA
+1D701 ; [.1F3D.0020.0005] # MATHEMATICAL ITALIC SMALL ZETA
+1D73B ; [.1F3D.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ZETA
+1D775 ; [.1F3D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
+1D7AF ; [.1F3D.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
+0396 ; [.1F3D.0020.0008] # GREEK CAPITAL LETTER ZETA
+1D6AD ; [.1F3D.0020.000B] # MATHEMATICAL BOLD CAPITAL ZETA
+1D6E7 ; [.1F3D.0020.000B] # MATHEMATICAL ITALIC CAPITAL ZETA
+1D721 ; [.1F3D.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ZETA
+1D75B ; [.1F3D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
+1D795 ; [.1F3D.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
+0371 ; [.1F3E.0020.0002] # GREEK SMALL LETTER HETA
+0370 ; [.1F3E.0020.0008] # GREEK CAPITAL LETTER HETA
+03B7 ; [.1F3F.0020.0002] # GREEK SMALL LETTER ETA
+1D6C8 ; [.1F3F.0020.0005] # MATHEMATICAL BOLD SMALL ETA
+1D702 ; [.1F3F.0020.0005] # MATHEMATICAL ITALIC SMALL ETA
+1D73C ; [.1F3F.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL ETA
+1D776 ; [.1F3F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL ETA
+1D7B0 ; [.1F3F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
+0397 ; [.1F3F.0020.0008] # GREEK CAPITAL LETTER ETA
+1D6AE ; [.1F3F.0020.000B] # MATHEMATICAL BOLD CAPITAL ETA
+1D6E8 ; [.1F3F.0020.000B] # MATHEMATICAL ITALIC CAPITAL ETA
+1D722 ; [.1F3F.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL ETA
+1D75C ; [.1F3F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
+1D796 ; [.1F3F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
+1F20 ; [.1F3F.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER ETA WITH PSILI
+1F28 ; [.1F3F.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER ETA WITH PSILI
+1F24 ; [.1F3F.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+1F2C ; [.1F3F.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+1F94 ; [.1F3F.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F9C ; [.1F3F.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F22 ; [.1F3F.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+1F2A ; [.1F3F.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+1F92 ; [.1F3F.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F9A ; [.1F3F.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F26 ; [.1F3F.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+1F2E ; [.1F3F.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+1F96 ; [.1F3F.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F9E ; [.1F3F.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F90 ; [.1F3F.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F98 ; [.1F3F.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F21 ; [.1F3F.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER ETA WITH DASIA
+1F29 ; [.1F3F.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER ETA WITH DASIA
+1F25 ; [.1F3F.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+1F2D ; [.1F3F.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+1F95 ; [.1F3F.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F9D ; [.1F3F.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F23 ; [.1F3F.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+1F2B ; [.1F3F.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+1F93 ; [.1F3F.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F9B ; [.1F3F.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F27 ; [.1F3F.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F2F ; [.1F3F.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F97 ; [.1F3F.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F9F ; [.1F3F.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F91 ; [.1F3F.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F99 ; [.1F3F.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+03AE ; [.1F3F.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH TONOS
+1F75 ; [.1F3F.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER ETA WITH OXIA
+0389 ; [.1F3F.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH TONOS
+1FCB ; [.1F3F.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER ETA WITH OXIA
+1FC4 ; [.1F3F.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1F74 ; [.1F3F.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER ETA WITH VARIA
+1FCA ; [.1F3F.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER ETA WITH VARIA
+1FC2 ; [.1F3F.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC6 ; [.1F3F.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7 ; [.1F3F.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC3 ; [.1F3F.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+1FCC ; [.1F3F.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+03B8 ; [.1F40.0020.0002] # GREEK SMALL LETTER THETA
+03D1 ; [.1F40.0020.0004] # GREEK THETA SYMBOL
+1D6C9 ; [.1F40.0020.0005] # MATHEMATICAL BOLD SMALL THETA
+1D6DD ; [.1F40.0020.0005] # MATHEMATICAL BOLD THETA SYMBOL
+1D703 ; [.1F40.0020.0005] # MATHEMATICAL ITALIC SMALL THETA
+1D717 ; [.1F40.0020.0005] # MATHEMATICAL ITALIC THETA SYMBOL
+1D73D ; [.1F40.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL THETA
+1D751 ; [.1F40.0020.0005] # MATHEMATICAL BOLD ITALIC THETA SYMBOL
+1D777 ; [.1F40.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL THETA
+1D78B ; [.1F40.0020.0005] # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
+1D7B1 ; [.1F40.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
+1D7C5 ; [.1F40.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
+0398 ; [.1F40.0020.0008] # GREEK CAPITAL LETTER THETA
+03F4 ; [.1F40.0020.000A] # GREEK CAPITAL THETA SYMBOL
+1D6AF ; [.1F40.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA
+1D6B9 ; [.1F40.0020.000B] # MATHEMATICAL BOLD CAPITAL THETA SYMBOL
+1D6E9 ; [.1F40.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA
+1D6F3 ; [.1F40.0020.000B] # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
+1D723 ; [.1F40.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA
+1D72D ; [.1F40.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
+1D75D ; [.1F40.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
+1D767 ; [.1F40.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
+1D797 ; [.1F40.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
+1D7A1 ; [.1F40.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+1DBF ; [.1F40.0020.0014] # MODIFIER LETTER SMALL THETA
+03B9 ; [.1F41.0020.0002] # GREEK SMALL LETTER IOTA
+1FBE ; [.1F41.0020.0002] # GREEK PROSGEGRAMMENI
+037A ; [.1F41.0020.0004] # GREEK YPOGEGRAMMENI
+1D6CA ; [.1F41.0020.0005] # MATHEMATICAL BOLD SMALL IOTA
+1D704 ; [.1F41.0020.0005] # MATHEMATICAL ITALIC SMALL IOTA
+1D73E ; [.1F41.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL IOTA
+1D778 ; [.1F41.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
+1D7B2 ; [.1F41.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
+0399 ; [.1F41.0020.0008] # GREEK CAPITAL LETTER IOTA
+1D6B0 ; [.1F41.0020.000B] # MATHEMATICAL BOLD CAPITAL IOTA
+1D6EA ; [.1F41.0020.000B] # MATHEMATICAL ITALIC CAPITAL IOTA
+1D724 ; [.1F41.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL IOTA
+1D75E ; [.1F41.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
+1D798 ; [.1F41.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
+1F30 ; [.1F41.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER IOTA WITH PSILI
+1F38 ; [.1F41.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI
+1F34 ; [.1F41.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+1F3C ; [.1F41.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+1F32 ; [.1F41.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+1F3A ; [.1F41.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+1F36 ; [.1F41.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3E ; [.1F41.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F31 ; [.1F41.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER IOTA WITH DASIA
+1F39 ; [.1F41.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA
+1F35 ; [.1F41.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+1F3D ; [.1F41.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+1F33 ; [.1F41.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+1F3B ; [.1F41.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+1F37 ; [.1F41.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F3F ; [.1F41.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+03AF ; [.1F41.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH TONOS
+1F77 ; [.1F41.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH OXIA
+038A ; [.1F41.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH TONOS
+1FDB ; [.1F41.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER IOTA WITH OXIA
+1F76 ; [.1F41.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH VARIA
+1FDA ; [.1F41.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER IOTA WITH VARIA
+1FD0 ; [.1F41.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER IOTA WITH VRACHY
+1FD8 ; [.1F41.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER IOTA WITH VRACHY
+1FD6 ; [.1F41.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH PERISPOMENI
+03CA ; [.1F41.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+03AA ; [.1F41.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+0390 ; [.1F41.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+1FD3 ; [.1F41.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD2 ; [.1F41.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD7 ; [.1F41.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD1 ; [.1F41.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER IOTA WITH MACRON
+1FD9 ; [.1F41.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER IOTA WITH MACRON
+03F3 ; [.1F42.0020.0002] # GREEK LETTER YOT
+037F ; [.1F42.0020.0008] # GREEK CAPITAL LETTER YOT
+03BA ; [.1F43.0020.0002] # GREEK SMALL LETTER KAPPA
+03F0 ; [.1F43.0020.0004] # GREEK KAPPA SYMBOL
+1D6CB ; [.1F43.0020.0005] # MATHEMATICAL BOLD SMALL KAPPA
+1D6DE ; [.1F43.0020.0005] # MATHEMATICAL BOLD KAPPA SYMBOL
+1D705 ; [.1F43.0020.0005] # MATHEMATICAL ITALIC SMALL KAPPA
+1D718 ; [.1F43.0020.0005] # MATHEMATICAL ITALIC KAPPA SYMBOL
+1D73F ; [.1F43.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL KAPPA
+1D752 ; [.1F43.0020.0005] # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
+1D779 ; [.1F43.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
+1D78C ; [.1F43.0020.0005] # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
+1D7B3 ; [.1F43.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
+1D7C6 ; [.1F43.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
+039A ; [.1F43.0020.0008] # GREEK CAPITAL LETTER KAPPA
+1D6B1 ; [.1F43.0020.000B] # MATHEMATICAL BOLD CAPITAL KAPPA
+1D6EB ; [.1F43.0020.000B] # MATHEMATICAL ITALIC CAPITAL KAPPA
+1D725 ; [.1F43.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
+1D75F ; [.1F43.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
+1D799 ; [.1F43.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+03D7 ; [.1F43.0020.0004][.1F34.0020.0004][.1F41.0020.0004] # GREEK KAI SYMBOL
+03CF ; [.1F43.0020.000A][.1F34.0020.0004][.1F41.0020.0004] # GREEK CAPITAL KAI SYMBOL
+03BB ; [.1F44.0020.0002] # GREEK SMALL LETTER LAMDA
+1D6CC ; [.1F44.0020.0005] # MATHEMATICAL BOLD SMALL LAMDA
+1D706 ; [.1F44.0020.0005] # MATHEMATICAL ITALIC SMALL LAMDA
+1D740 ; [.1F44.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL LAMDA
+1D77A ; [.1F44.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
+1D7B4 ; [.1F44.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
+039B ; [.1F44.0020.0008] # GREEK CAPITAL LETTER LAMDA
+1D6B2 ; [.1F44.0020.000B] # MATHEMATICAL BOLD CAPITAL LAMDA
+1D6EC ; [.1F44.0020.000B] # MATHEMATICAL ITALIC CAPITAL LAMDA
+1D726 ; [.1F44.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
+1D760 ; [.1F44.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
+1D79A ; [.1F44.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+1D27 ; [.1F45.0020.0002] # GREEK LETTER SMALL CAPITAL LAMDA
+03BC ; [.1F46.0020.0002] # GREEK SMALL LETTER MU
+00B5 ; [.1F46.0020.0004] # MICRO SIGN
+1D6CD ; [.1F46.0020.0005] # MATHEMATICAL BOLD SMALL MU
+1D707 ; [.1F46.0020.0005] # MATHEMATICAL ITALIC SMALL MU
+1D741 ; [.1F46.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL MU
+1D77B ; [.1F46.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL MU
+1D7B5 ; [.1F46.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
+039C ; [.1F46.0020.0008] # GREEK CAPITAL LETTER MU
+1D6B3 ; [.1F46.0020.000B] # MATHEMATICAL BOLD CAPITAL MU
+1D6ED ; [.1F46.0020.000B] # MATHEMATICAL ITALIC CAPITAL MU
+1D727 ; [.1F46.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL MU
+1D761 ; [.1F46.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
+1D79B ; [.1F46.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
+3382 ; [.1F46.0020.001C][.1BC2.0020.001D] # SQUARE MU A
+338C ; [.1F46.0020.001C][.1C60.0020.001D] # SQUARE MU F
+338D ; [.1F46.0020.001C][.1C6F.0020.001C] # SQUARE MU G
+3395 ; [.1F46.0020.001C][.1CF2.0020.001C] # SQUARE MU L
+339B ; [.1F46.0020.001C][.1D25.0020.001C] # SQUARE MU M
+33B2 ; [.1F46.0020.001C][.1DEC.0020.001C] # SQUARE MU S
+33B6 ; [.1F46.0020.001C][.1E5E.0020.001D] # SQUARE MU V
+33BC ; [.1F46.0020.001C][.1E70.0020.001D] # SQUARE MU W
+03BD ; [.1F47.0020.0002] # GREEK SMALL LETTER NU
+1D6CE ; [.1F47.0020.0005] # MATHEMATICAL BOLD SMALL NU
+1D708 ; [.1F47.0020.0005] # MATHEMATICAL ITALIC SMALL NU
+1D742 ; [.1F47.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL NU
+1D77C ; [.1F47.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL NU
+1D7B6 ; [.1F47.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
+039D ; [.1F47.0020.0008] # GREEK CAPITAL LETTER NU
+1D6B4 ; [.1F47.0020.000B] # MATHEMATICAL BOLD CAPITAL NU
+1D6EE ; [.1F47.0020.000B] # MATHEMATICAL ITALIC CAPITAL NU
+1D728 ; [.1F47.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL NU
+1D762 ; [.1F47.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
+1D79C ; [.1F47.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
+03BE ; [.1F48.0020.0002] # GREEK SMALL LETTER XI
+1D6CF ; [.1F48.0020.0005] # MATHEMATICAL BOLD SMALL XI
+1D709 ; [.1F48.0020.0005] # MATHEMATICAL ITALIC SMALL XI
+1D743 ; [.1F48.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL XI
+1D77D ; [.1F48.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL XI
+1D7B7 ; [.1F48.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
+039E ; [.1F48.0020.0008] # GREEK CAPITAL LETTER XI
+1D6B5 ; [.1F48.0020.000B] # MATHEMATICAL BOLD CAPITAL XI
+1D6EF ; [.1F48.0020.000B] # MATHEMATICAL ITALIC CAPITAL XI
+1D729 ; [.1F48.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL XI
+1D763 ; [.1F48.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
+1D79D ; [.1F48.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
+03BF ; [.1F49.0020.0002] # GREEK SMALL LETTER OMICRON
+1D6D0 ; [.1F49.0020.0005] # MATHEMATICAL BOLD SMALL OMICRON
+1D70A ; [.1F49.0020.0005] # MATHEMATICAL ITALIC SMALL OMICRON
+1D744 ; [.1F49.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMICRON
+1D77E ; [.1F49.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
+1D7B8 ; [.1F49.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
+039F ; [.1F49.0020.0008] # GREEK CAPITAL LETTER OMICRON
+1D6B6 ; [.1F49.0020.000B] # MATHEMATICAL BOLD CAPITAL OMICRON
+1D6F0 ; [.1F49.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMICRON
+1D72A ; [.1F49.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
+1D764 ; [.1F49.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
+1D79E ; [.1F49.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+1F40 ; [.1F49.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMICRON WITH PSILI
+1F48 ; [.1F49.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI
+1F44 ; [.1F49.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+1F4C ; [.1F49.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+1F42 ; [.1F49.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+1F4A ; [.1F49.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+1F41 ; [.1F49.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMICRON WITH DASIA
+1F49 ; [.1F49.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA
+1F45 ; [.1F49.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F4D ; [.1F49.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F43 ; [.1F49.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+1F4B ; [.1F49.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+03CC ; [.1F49.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH TONOS
+1F79 ; [.1F49.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMICRON WITH OXIA
+038C ; [.1F49.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH TONOS
+1FF9 ; [.1F49.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMICRON WITH OXIA
+1F78 ; [.1F49.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMICRON WITH VARIA
+1FF8 ; [.1F49.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMICRON WITH VARIA
+03C0 ; [.1F4A.0020.0002] # GREEK SMALL LETTER PI
+03D6 ; [.1F4A.0020.0004] # GREEK PI SYMBOL
+213C ; [.1F4A.0020.0005] # DOUBLE-STRUCK SMALL PI
+1D6D1 ; [.1F4A.0020.0005] # MATHEMATICAL BOLD SMALL PI
+1D6E1 ; [.1F4A.0020.0005] # MATHEMATICAL BOLD PI SYMBOL
+1D70B ; [.1F4A.0020.0005] # MATHEMATICAL ITALIC SMALL PI
+1D71B ; [.1F4A.0020.0005] # MATHEMATICAL ITALIC PI SYMBOL
+1D745 ; [.1F4A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PI
+1D755 ; [.1F4A.0020.0005] # MATHEMATICAL BOLD ITALIC PI SYMBOL
+1D77F ; [.1F4A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PI
+1D78F ; [.1F4A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+1D7B9 ; [.1F4A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
+1D7C9 ; [.1F4A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+03A0 ; [.1F4A.0020.0008] # GREEK CAPITAL LETTER PI
+213F ; [.1F4A.0020.000B] # DOUBLE-STRUCK CAPITAL PI
+1D6B7 ; [.1F4A.0020.000B] # MATHEMATICAL BOLD CAPITAL PI
+1D6F1 ; [.1F4A.0020.000B] # MATHEMATICAL ITALIC CAPITAL PI
+1D72B ; [.1F4A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PI
+1D765 ; [.1F4A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
+1D79F ; [.1F4A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
+1D28 ; [.1F4B.0020.0002] # GREEK LETTER SMALL CAPITAL PI
+03FB ; [.1F4C.0020.0002] # GREEK SMALL LETTER SAN
+03FA ; [.1F4C.0020.0008] # GREEK CAPITAL LETTER SAN
+03DF ; [.1F4D.0020.0002] # GREEK SMALL LETTER KOPPA
+03DE ; [.1F4D.0020.0008] # GREEK LETTER KOPPA
+03D9 ; [.1F4E.0020.0002] # GREEK SMALL LETTER ARCHAIC KOPPA
+03D8 ; [.1F4E.0020.0008] # GREEK LETTER ARCHAIC KOPPA
+03C1 ; [.1F4F.0020.0002] # GREEK SMALL LETTER RHO
+03F1 ; [.1F4F.0020.0004] # GREEK RHO SYMBOL
+1D6D2 ; [.1F4F.0020.0005] # MATHEMATICAL BOLD SMALL RHO
+1D6E0 ; [.1F4F.0020.0005] # MATHEMATICAL BOLD RHO SYMBOL
+1D70C ; [.1F4F.0020.0005] # MATHEMATICAL ITALIC SMALL RHO
+1D71A ; [.1F4F.0020.0005] # MATHEMATICAL ITALIC RHO SYMBOL
+1D746 ; [.1F4F.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL RHO
+1D754 ; [.1F4F.0020.0005] # MATHEMATICAL BOLD ITALIC RHO SYMBOL
+1D780 ; [.1F4F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL RHO
+1D78E ; [.1F4F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
+1D7BA ; [.1F4F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
+1D7C8 ; [.1F4F.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
+03A1 ; [.1F4F.0020.0008] # GREEK CAPITAL LETTER RHO
+1D6B8 ; [.1F4F.0020.000B] # MATHEMATICAL BOLD CAPITAL RHO
+1D6F2 ; [.1F4F.0020.000B] # MATHEMATICAL ITALIC CAPITAL RHO
+1D72C ; [.1F4F.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL RHO
+1D766 ; [.1F4F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
+1D7A0 ; [.1F4F.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
+1D68 ; [.1F4F.0020.0015] # GREEK SUBSCRIPT SMALL LETTER RHO
+1FE4 ; [.1F4F.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER RHO WITH PSILI
+1FE5 ; [.1F4F.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER RHO WITH DASIA
+1FEC ; [.1F4F.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER RHO WITH DASIA
+1D29 ; [.1F50.0020.0002] # GREEK LETTER SMALL CAPITAL RHO
+03FC ; [.1F51.0020.0002] # GREEK RHO WITH STROKE SYMBOL
+03C3 ; [.1F52.0020.0002] # GREEK SMALL LETTER SIGMA
+03F2 ; [.1F52.0020.0004] # GREEK LUNATE SIGMA SYMBOL
+1D6D3 ; [.1F52.0020.0005] # MATHEMATICAL BOLD SMALL FINAL SIGMA
+1D6D4 ; [.1F52.0020.0005] # MATHEMATICAL BOLD SMALL SIGMA
+1D70D ; [.1F52.0020.0005] # MATHEMATICAL ITALIC SMALL FINAL SIGMA
+1D70E ; [.1F52.0020.0005] # MATHEMATICAL ITALIC SMALL SIGMA
+1D747 ; [.1F52.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA
+1D748 ; [.1F52.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL SIGMA
+1D781 ; [.1F52.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA
+1D782 ; [.1F52.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
+1D7BB ; [.1F52.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA
+1D7BC ; [.1F52.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
+03A3 ; [.1F52.0020.0008] # GREEK CAPITAL LETTER SIGMA
+03F9 ; [.1F52.0020.000A] # GREEK CAPITAL LUNATE SIGMA SYMBOL
+1D6BA ; [.1F52.0020.000B] # MATHEMATICAL BOLD CAPITAL SIGMA
+1D6F4 ; [.1F52.0020.000B] # MATHEMATICAL ITALIC CAPITAL SIGMA
+1D72E ; [.1F52.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
+1D768 ; [.1F52.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
+1D7A2 ; [.1F52.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+03C2 ; [.1F52.0020.0019] # GREEK SMALL LETTER FINAL SIGMA
+037C ; [.1F53.0020.0002] # GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
+03FE ; [.1F53.0020.0008] # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+037B ; [.1F54.0020.0002] # GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
+03FD ; [.1F54.0020.0008] # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+037D ; [.1F55.0020.0002] # GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+03FF ; [.1F55.0020.0008] # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+03C4 ; [.1F56.0020.0002] # GREEK SMALL LETTER TAU
+1D6D5 ; [.1F56.0020.0005] # MATHEMATICAL BOLD SMALL TAU
+1D70F ; [.1F56.0020.0005] # MATHEMATICAL ITALIC SMALL TAU
+1D749 ; [.1F56.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL TAU
+1D783 ; [.1F56.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL TAU
+1D7BD ; [.1F56.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
+03A4 ; [.1F56.0020.0008] # GREEK CAPITAL LETTER TAU
+1D6BB ; [.1F56.0020.000B] # MATHEMATICAL BOLD CAPITAL TAU
+1D6F5 ; [.1F56.0020.000B] # MATHEMATICAL ITALIC CAPITAL TAU
+1D72F ; [.1F56.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL TAU
+1D769 ; [.1F56.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
+1D7A3 ; [.1F56.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
+03C5 ; [.1F57.0020.0002] # GREEK SMALL LETTER UPSILON
+1D6D6 ; [.1F57.0020.0005] # MATHEMATICAL BOLD SMALL UPSILON
+1D710 ; [.1F57.0020.0005] # MATHEMATICAL ITALIC SMALL UPSILON
+1D74A ; [.1F57.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL UPSILON
+1D784 ; [.1F57.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
+1D7BE ; [.1F57.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
+03A5 ; [.1F57.0020.0008] # GREEK CAPITAL LETTER UPSILON
+03D2 ; [.1F57.0020.000A] # GREEK UPSILON WITH HOOK SYMBOL
+1D6BC ; [.1F57.0020.000B] # MATHEMATICAL BOLD CAPITAL UPSILON
+1D6F6 ; [.1F57.0020.000B] # MATHEMATICAL ITALIC CAPITAL UPSILON
+1D730 ; [.1F57.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
+1D76A ; [.1F57.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
+1D7A4 ; [.1F57.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+1F50 ; [.1F57.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER UPSILON WITH PSILI
+1F54 ; [.1F57.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+1F52 ; [.1F57.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+1F56 ; [.1F57.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+1F51 ; [.1F57.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER UPSILON WITH DASIA
+1F59 ; [.1F57.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F55 ; [.1F57.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+1F5D ; [.1F57.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F53 ; [.1F57.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+1F5B ; [.1F57.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F57 ; [.1F57.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F5F ; [.1F57.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+03CD ; [.1F57.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH TONOS
+1F7B ; [.1F57.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH OXIA
+038E ; [.1F57.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH TONOS
+1FEB ; [.1F57.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER UPSILON WITH OXIA
+03D3 ; [.1F57.0020.000A][.0000.0024.0002] # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+1F7A ; [.1F57.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH VARIA
+1FEA ; [.1F57.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER UPSILON WITH VARIA
+1FE0 ; [.1F57.0020.0002][.0000.0026.0002] # GREEK SMALL LETTER UPSILON WITH VRACHY
+1FE8 ; [.1F57.0020.0008][.0000.0026.0002] # GREEK CAPITAL LETTER UPSILON WITH VRACHY
+1FE6 ; [.1F57.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+03CB ; [.1F57.0020.0002][.0000.002B.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+03AB ; [.1F57.0020.0008][.0000.002B.0002] # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03D4 ; [.1F57.0020.000A][.0000.002B.0002] # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03B0 ; [.1F57.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+1FE3 ; [.1F57.0020.0002][.0000.002B.0002][.0000.0024.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE2 ; [.1F57.0020.0002][.0000.002B.0002][.0000.0025.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE7 ; [.1F57.0020.0002][.0000.002B.0002][.0000.002A.0002] # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE1 ; [.1F57.0020.0002][.0000.0032.0002] # GREEK SMALL LETTER UPSILON WITH MACRON
+1FE9 ; [.1F57.0020.0008][.0000.0032.0002] # GREEK CAPITAL LETTER UPSILON WITH MACRON
+03C6 ; [.1F58.0020.0002] # GREEK SMALL LETTER PHI
+03D5 ; [.1F58.0020.0004] # GREEK PHI SYMBOL
+1D6D7 ; [.1F58.0020.0005] # MATHEMATICAL BOLD SMALL PHI
+1D6DF ; [.1F58.0020.0005] # MATHEMATICAL BOLD PHI SYMBOL
+1D711 ; [.1F58.0020.0005] # MATHEMATICAL ITALIC SMALL PHI
+1D719 ; [.1F58.0020.0005] # MATHEMATICAL ITALIC PHI SYMBOL
+1D74B ; [.1F58.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PHI
+1D753 ; [.1F58.0020.0005] # MATHEMATICAL BOLD ITALIC PHI SYMBOL
+1D785 ; [.1F58.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PHI
+1D78D ; [.1F58.0020.0005] # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
+1D7BF ; [.1F58.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
+1D7C7 ; [.1F58.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
+03A6 ; [.1F58.0020.0008] # GREEK CAPITAL LETTER PHI
+1D6BD ; [.1F58.0020.000B] # MATHEMATICAL BOLD CAPITAL PHI
+1D6F7 ; [.1F58.0020.000B] # MATHEMATICAL ITALIC CAPITAL PHI
+1D731 ; [.1F58.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PHI
+1D76B ; [.1F58.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
+1D7A5 ; [.1F58.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
+1D60 ; [.1F58.0020.0014] # MODIFIER LETTER SMALL GREEK PHI
+1D69 ; [.1F58.0020.0015] # GREEK SUBSCRIPT SMALL LETTER PHI
+03C7 ; [.1F59.0020.0002] # GREEK SMALL LETTER CHI
+1D6D8 ; [.1F59.0020.0005] # MATHEMATICAL BOLD SMALL CHI
+1D712 ; [.1F59.0020.0005] # MATHEMATICAL ITALIC SMALL CHI
+1D74C ; [.1F59.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL CHI
+1D786 ; [.1F59.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL CHI
+1D7C0 ; [.1F59.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
+03A7 ; [.1F59.0020.0008] # GREEK CAPITAL LETTER CHI
+1D6BE ; [.1F59.0020.000B] # MATHEMATICAL BOLD CAPITAL CHI
+1D6F8 ; [.1F59.0020.000B] # MATHEMATICAL ITALIC CAPITAL CHI
+1D732 ; [.1F59.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL CHI
+1D76C ; [.1F59.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
+1D7A6 ; [.1F59.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
+1D61 ; [.1F59.0020.0014] # MODIFIER LETTER SMALL CHI
+1D6A ; [.1F59.0020.0015] # GREEK SUBSCRIPT SMALL LETTER CHI
+03C8 ; [.1F5A.0020.0002] # GREEK SMALL LETTER PSI
+1D6D9 ; [.1F5A.0020.0005] # MATHEMATICAL BOLD SMALL PSI
+1D713 ; [.1F5A.0020.0005] # MATHEMATICAL ITALIC SMALL PSI
+1D74D ; [.1F5A.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL PSI
+1D787 ; [.1F5A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL PSI
+1D7C1 ; [.1F5A.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
+03A8 ; [.1F5A.0020.0008] # GREEK CAPITAL LETTER PSI
+1D6BF ; [.1F5A.0020.000B] # MATHEMATICAL BOLD CAPITAL PSI
+1D6F9 ; [.1F5A.0020.000B] # MATHEMATICAL ITALIC CAPITAL PSI
+1D733 ; [.1F5A.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL PSI
+1D76D ; [.1F5A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
+1D7A7 ; [.1F5A.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
+1D2A ; [.1F5B.0020.0002] # GREEK LETTER SMALL CAPITAL PSI
+03C9 ; [.1F5C.0020.0002] # GREEK SMALL LETTER OMEGA
+1D6DA ; [.1F5C.0020.0005] # MATHEMATICAL BOLD SMALL OMEGA
+1D714 ; [.1F5C.0020.0005] # MATHEMATICAL ITALIC SMALL OMEGA
+1D74E ; [.1F5C.0020.0005] # MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D788 ; [.1F5C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D7C2 ; [.1F5C.0020.0005] # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+03A9 ; [.1F5C.0020.0008] # GREEK CAPITAL LETTER OMEGA
+2126 ; [.1F5C.0020.0008] # OHM SIGN
+1D6C0 ; [.1F5C.0020.000B] # MATHEMATICAL BOLD CAPITAL OMEGA
+1D6FA ; [.1F5C.0020.000B] # MATHEMATICAL ITALIC CAPITAL OMEGA
+1D734 ; [.1F5C.0020.000B] # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D76E ; [.1F5C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D7A8 ; [.1F5C.0020.000B] # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1F60 ; [.1F5C.0020.0002][.0000.0022.0002] # GREEK SMALL LETTER OMEGA WITH PSILI
+1F68 ; [.1F5C.0020.0008][.0000.0022.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI
+1F64 ; [.1F5C.0020.0002][.0000.0022.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+1F6C ; [.1F5C.0020.0008][.0000.0022.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+1FA4 ; [.1F5C.0020.0002][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FAC ; [.1F5C.0020.0008][.0000.0022.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F62 ; [.1F5C.0020.0002][.0000.0022.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+1F6A ; [.1F5C.0020.0008][.0000.0022.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+1FA2 ; [.1F5C.0020.0002][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FAA ; [.1F5C.0020.0008][.0000.0022.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F66 ; [.1F5C.0020.0002][.0000.0022.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6E ; [.1F5C.0020.0008][.0000.0022.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1FA6 ; [.1F5C.0020.0002][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FAE ; [.1F5C.0020.0008][.0000.0022.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FA0 ; [.1F5C.0020.0002][.0000.0022.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA8 ; [.1F5C.0020.0008][.0000.0022.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1F61 ; [.1F5C.0020.0002][.0000.0023.0002] # GREEK SMALL LETTER OMEGA WITH DASIA
+1F69 ; [.1F5C.0020.0008][.0000.0023.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA
+1F65 ; [.1F5C.0020.0002][.0000.0023.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+1F6D ; [.1F5C.0020.0008][.0000.0023.0002][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+1FA5 ; [.1F5C.0020.0002][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FAD ; [.1F5C.0020.0008][.0000.0023.0002][.0000.0024.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F63 ; [.1F5C.0020.0002][.0000.0023.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+1F6B ; [.1F5C.0020.0008][.0000.0023.0002][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+1FA3 ; [.1F5C.0020.0002][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FAB ; [.1F5C.0020.0008][.0000.0023.0002][.0000.0025.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F67 ; [.1F5C.0020.0002][.0000.0023.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F6F ; [.1F5C.0020.0008][.0000.0023.0002][.0000.002A.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1FA7 ; [.1F5C.0020.0002][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FAF ; [.1F5C.0020.0008][.0000.0023.0002][.0000.002A.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA1 ; [.1F5C.0020.0002][.0000.0023.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA9 ; [.1F5C.0020.0008][.0000.0023.0002][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+03CE ; [.1F5C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH TONOS
+1F7D ; [.1F5C.0020.0002][.0000.0024.0002] # GREEK SMALL LETTER OMEGA WITH OXIA
+038F ; [.1F5C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH TONOS
+1FFB ; [.1F5C.0020.0008][.0000.0024.0002] # GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FF4 ; [.1F5C.0020.0002][.0000.0024.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1F7C ; [.1F5C.0020.0002][.0000.0025.0002] # GREEK SMALL LETTER OMEGA WITH VARIA
+1FFA ; [.1F5C.0020.0008][.0000.0025.0002] # GREEK CAPITAL LETTER OMEGA WITH VARIA
+1FF2 ; [.1F5C.0020.0002][.0000.0025.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF6 ; [.1F5C.0020.0002][.0000.002A.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7 ; [.1F5C.0020.0002][.0000.002A.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF3 ; [.1F5C.0020.0002][.0000.004C.0002] # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+1FFC ; [.1F5C.0020.0008][.0000.004C.0002] # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+AB65 ; [.1F5D.0020.0002] # GREEK LETTER SMALL CAPITAL OMEGA
+03E1 ; [.1F5E.0020.0002] # GREEK SMALL LETTER SAMPI
+03E0 ; [.1F5E.0020.0008] # GREEK LETTER SAMPI
+0373 ; [.1F5F.0020.0002] # GREEK SMALL LETTER ARCHAIC SAMPI
+0372 ; [.1F5F.0020.0008] # GREEK CAPITAL LETTER ARCHAIC SAMPI
+03F8 ; [.1F60.0020.0002] # GREEK SMALL LETTER SHO
+03F7 ; [.1F60.0020.0008] # GREEK CAPITAL LETTER SHO
+2C81 ; [.1F61.0020.0002] # COPTIC SMALL LETTER ALFA
+2C80 ; [.1F61.0020.0008] # COPTIC CAPITAL LETTER ALFA
+2C83 ; [.1F62.0020.0002] # COPTIC SMALL LETTER VIDA
+2C82 ; [.1F62.0020.0008] # COPTIC CAPITAL LETTER VIDA
+2C85 ; [.1F63.0020.0002] # COPTIC SMALL LETTER GAMMA
+2C84 ; [.1F63.0020.0008] # COPTIC CAPITAL LETTER GAMMA
+2C87 ; [.1F64.0020.0002] # COPTIC SMALL LETTER DALDA
+2C86 ; [.1F64.0020.0008] # COPTIC CAPITAL LETTER DALDA
+2C89 ; [.1F65.0020.0002] # COPTIC SMALL LETTER EIE
+2C88 ; [.1F65.0020.0008] # COPTIC CAPITAL LETTER EIE
+2CB7 ; [.1F66.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+2CB6 ; [.1F66.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+2C8B ; [.1F67.0020.0002] # COPTIC SMALL LETTER SOU
+2C8A ; [.1F67.0020.0008] # COPTIC CAPITAL LETTER SOU
+2C8D ; [.1F68.0020.0002] # COPTIC SMALL LETTER ZATA
+2C8C ; [.1F68.0020.0008] # COPTIC CAPITAL LETTER ZATA
+2C8F ; [.1F69.0020.0002] # COPTIC SMALL LETTER HATE
+2C8E ; [.1F69.0020.0008] # COPTIC CAPITAL LETTER HATE
+2C91 ; [.1F6A.0020.0002] # COPTIC SMALL LETTER THETHE
+2C90 ; [.1F6A.0020.0008] # COPTIC CAPITAL LETTER THETHE
+2C93 ; [.1F6B.0020.0002] # COPTIC SMALL LETTER IAUDA
+2C92 ; [.1F6B.0020.0008] # COPTIC CAPITAL LETTER IAUDA
+2C95 ; [.1F6C.0020.0002] # COPTIC SMALL LETTER KAPA
+2C94 ; [.1F6C.0020.0008] # COPTIC CAPITAL LETTER KAPA
+2CE4 ; [.1F6C.0020.0004][.1F61.0020.0004][.1F6B.0020.0004] # COPTIC SYMBOL KAI
+2CB9 ; [.1F6D.0020.0002] # COPTIC SMALL LETTER DIALECT-P KAPA
+2CB8 ; [.1F6D.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P KAPA
+2C97 ; [.1F6E.0020.0002] # COPTIC SMALL LETTER LAULA
+2C96 ; [.1F6E.0020.0008] # COPTIC CAPITAL LETTER LAULA
+2C99 ; [.1F6F.0020.0002] # COPTIC SMALL LETTER MI
+2C98 ; [.1F6F.0020.0008] # COPTIC CAPITAL LETTER MI
+2C9B ; [.1F70.0020.0002] # COPTIC SMALL LETTER NI
+2C9A ; [.1F70.0020.0008] # COPTIC CAPITAL LETTER NI
+2CBB ; [.1F71.0020.0002] # COPTIC SMALL LETTER DIALECT-P NI
+2CBA ; [.1F71.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P NI
+2CBD ; [.1F72.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+2CBC ; [.1F72.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+2C9D ; [.1F73.0020.0002] # COPTIC SMALL LETTER KSI
+2C9C ; [.1F73.0020.0008] # COPTIC CAPITAL LETTER KSI
+2C9F ; [.1F74.0020.0002] # COPTIC SMALL LETTER O
+2C9E ; [.1F74.0020.0008] # COPTIC CAPITAL LETTER O
+2CA1 ; [.1F75.0020.0002] # COPTIC SMALL LETTER PI
+2CA0 ; [.1F75.0020.0008] # COPTIC CAPITAL LETTER PI
+2CA3 ; [.1F76.0020.0002] # COPTIC SMALL LETTER RO
+2CA2 ; [.1F76.0020.0008] # COPTIC CAPITAL LETTER RO
+2CA5 ; [.1F77.0020.0002] # COPTIC SMALL LETTER SIMA
+2CA4 ; [.1F77.0020.0008] # COPTIC CAPITAL LETTER SIMA
+2CA7 ; [.1F78.0020.0002] # COPTIC SMALL LETTER TAU
+2CA6 ; [.1F78.0020.0008] # COPTIC CAPITAL LETTER TAU
+2CA9 ; [.1F79.0020.0002] # COPTIC SMALL LETTER UA
+2CA8 ; [.1F79.0020.0008] # COPTIC CAPITAL LETTER UA
+2CAB ; [.1F7A.0020.0002] # COPTIC SMALL LETTER FI
+2CAA ; [.1F7A.0020.0008] # COPTIC CAPITAL LETTER FI
+2CAD ; [.1F7B.0020.0002] # COPTIC SMALL LETTER KHI
+2CAC ; [.1F7B.0020.0008] # COPTIC CAPITAL LETTER KHI
+2CAF ; [.1F7C.0020.0002] # COPTIC SMALL LETTER PSI
+2CAE ; [.1F7C.0020.0008] # COPTIC CAPITAL LETTER PSI
+2CB1 ; [.1F7D.0020.0002] # COPTIC SMALL LETTER OOU
+2CB0 ; [.1F7D.0020.0008] # COPTIC CAPITAL LETTER OOU
+2CBF ; [.1F7E.0020.0002] # COPTIC SMALL LETTER OLD COPTIC OOU
+2CBE ; [.1F7E.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC OOU
+2CC1 ; [.1F7F.0020.0002] # COPTIC SMALL LETTER SAMPI
+2CC0 ; [.1F7F.0020.0008] # COPTIC CAPITAL LETTER SAMPI
+03E3 ; [.1F80.0020.0002] # COPTIC SMALL LETTER SHEI
+03E2 ; [.1F80.0020.0008] # COPTIC CAPITAL LETTER SHEI
+2CEC ; [.1F81.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
+2CEB ; [.1F81.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
+2CC3 ; [.1F82.0020.0002] # COPTIC SMALL LETTER CROSSED SHEI
+2CC2 ; [.1F82.0020.0008] # COPTIC CAPITAL LETTER CROSSED SHEI
+2CC5 ; [.1F83.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHEI
+2CC4 ; [.1F83.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHEI
+2CC7 ; [.1F84.0020.0002] # COPTIC SMALL LETTER OLD COPTIC ESH
+2CC6 ; [.1F84.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC ESH
+03E5 ; [.1F85.0020.0002] # COPTIC SMALL LETTER FEI
+03E4 ; [.1F85.0020.0008] # COPTIC CAPITAL LETTER FEI
+03E7 ; [.1F86.0020.0002] # COPTIC SMALL LETTER KHEI
+03E6 ; [.1F86.0020.0008] # COPTIC CAPITAL LETTER KHEI
+2CF3 ; [.1F87.0020.0002] # COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF2 ; [.1F87.0020.0008] # COPTIC CAPITAL LETTER BOHAIRIC KHEI
+2CC9 ; [.1F88.0020.0002] # COPTIC SMALL LETTER AKHMIMIC KHEI
+2CC8 ; [.1F88.0020.0008] # COPTIC CAPITAL LETTER AKHMIMIC KHEI
+03E9 ; [.1F89.0020.0002] # COPTIC SMALL LETTER HORI
+03E8 ; [.1F89.0020.0008] # COPTIC CAPITAL LETTER HORI
+2CCB ; [.1F8A.0020.0002] # COPTIC SMALL LETTER DIALECT-P HORI
+2CCA ; [.1F8A.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P HORI
+2CCD ; [.1F8B.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HORI
+2CCC ; [.1F8B.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HORI
+2CCF ; [.1F8C.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HA
+2CCE ; [.1F8C.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HA
+2CD1 ; [.1F8D.0020.0002] # COPTIC SMALL LETTER L-SHAPED HA
+2CD0 ; [.1F8D.0020.0008] # COPTIC CAPITAL LETTER L-SHAPED HA
+2CD3 ; [.1F8E.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HEI
+2CD2 ; [.1F8E.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HEI
+2CD5 ; [.1F8F.0020.0002] # COPTIC SMALL LETTER OLD COPTIC HAT
+2CD4 ; [.1F8F.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC HAT
+03EB ; [.1F90.0020.0002] # COPTIC SMALL LETTER GANGIA
+03EA ; [.1F90.0020.0008] # COPTIC CAPITAL LETTER GANGIA
+2CEE ; [.1F91.0020.0002] # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CED ; [.1F91.0020.0008] # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
+2CD7 ; [.1F92.0020.0002] # COPTIC SMALL LETTER OLD COPTIC GANGIA
+2CD6 ; [.1F92.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+03ED ; [.1F93.0020.0002] # COPTIC SMALL LETTER SHIMA
+03EC ; [.1F93.0020.0008] # COPTIC CAPITAL LETTER SHIMA
+2CD9 ; [.1F94.0020.0002] # COPTIC SMALL LETTER OLD COPTIC DJA
+2CD8 ; [.1F94.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC DJA
+2CDB ; [.1F95.0020.0002] # COPTIC SMALL LETTER OLD COPTIC SHIMA
+2CDA ; [.1F95.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+2CDD ; [.1F96.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN SHIMA
+2CDC ; [.1F96.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+03EF ; [.1F97.0020.0002] # COPTIC SMALL LETTER DEI
+03EE ; [.1F97.0020.0008] # COPTIC CAPITAL LETTER DEI
+2CB3 ; [.1F98.0020.0002] # COPTIC SMALL LETTER DIALECT-P ALEF
+2CB2 ; [.1F98.0020.0008] # COPTIC CAPITAL LETTER DIALECT-P ALEF
+2CB5 ; [.1F99.0020.0002] # COPTIC SMALL LETTER OLD COPTIC AIN
+2CB4 ; [.1F99.0020.0008] # COPTIC CAPITAL LETTER OLD COPTIC AIN
+2CDF ; [.1F9A.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NGI
+2CDE ; [.1F9A.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NGI
+2CE1 ; [.1F9B.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN NYI
+2CE0 ; [.1F9B.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN NYI
+2CE3 ; [.1F9C.0020.0002] # COPTIC SMALL LETTER OLD NUBIAN WAU
+2CE2 ; [.1F9C.0020.0008] # COPTIC CAPITAL LETTER OLD NUBIAN WAU
+0430 ; [.1F9D.0020.0002] # CYRILLIC SMALL LETTER A
+2DF6 ; [.1F9D.0020.0004] # COMBINING CYRILLIC LETTER A
+0410 ; [.1F9D.0020.0008] # CYRILLIC CAPITAL LETTER A
+04D1 ; [.1F9D.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER A WITH BREVE
+04D0 ; [.1F9D.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER A WITH BREVE
+04D3 ; [.1F9D.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D2 ; [.1F9D.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D9 ; [.1FA1.0020.0002] # CYRILLIC SMALL LETTER SCHWA
+04D8 ; [.1FA1.0020.0008] # CYRILLIC CAPITAL LETTER SCHWA
+04DB ; [.1FA1.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DA ; [.1FA1.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04D5 ; [.1FA5.0020.0002] # CYRILLIC SMALL LIGATURE A IE
+04D4 ; [.1FA5.0020.0008] # CYRILLIC CAPITAL LIGATURE A IE
+0431 ; [.1FA9.0020.0002] # CYRILLIC SMALL LETTER BE
+2DE0 ; [.1FA9.0020.0004] # COMBINING CYRILLIC LETTER BE
+0411 ; [.1FA9.0020.0008] # CYRILLIC CAPITAL LETTER BE
+0432 ; [.1FAD.0020.0002] # CYRILLIC SMALL LETTER VE
+2DE1 ; [.1FAD.0020.0004] # COMBINING CYRILLIC LETTER VE
+0412 ; [.1FAD.0020.0008] # CYRILLIC CAPITAL LETTER VE
+0433 ; [.1FB1.0020.0002] # CYRILLIC SMALL LETTER GHE
+2DE2 ; [.1FB1.0020.0004] # COMBINING CYRILLIC LETTER GHE
+0413 ; [.1FB1.0020.0008] # CYRILLIC CAPITAL LETTER GHE
+0453 ; [.1FB1.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER GJE
+0403 ; [.1FB1.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER GJE
+0491 ; [.1FB1.0020.0004][.0000.010C.0004] # CYRILLIC SMALL LETTER GHE WITH UPTURN
+0490 ; [.1FB1.0020.000A][.0000.010C.0004] # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0493 ; [.1FB5.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE
+0492 ; [.1FB5.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE
+04FB ; [.1FB9.0020.0002] # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+04FA ; [.1FB9.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+0495 ; [.1FBD.0020.0002] # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0494 ; [.1FBD.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+04F7 ; [.1FC1.0020.0002] # CYRILLIC SMALL LETTER GHE WITH DESCENDER
+04F6 ; [.1FC1.0020.0008] # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+0434 ; [.1FC5.0020.0002] # CYRILLIC SMALL LETTER DE
+2DE3 ; [.1FC5.0020.0004] # COMBINING CYRILLIC LETTER DE
+0414 ; [.1FC5.0020.0008] # CYRILLIC CAPITAL LETTER DE
+0501 ; [.1FC9.0020.0002] # CYRILLIC SMALL LETTER KOMI DE
+0500 ; [.1FC9.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DE
+A681 ; [.1FCA.0020.0002] # CYRILLIC SMALL LETTER DWE
+A680 ; [.1FCA.0020.0008] # CYRILLIC CAPITAL LETTER DWE
+0452 ; [.1FCB.0020.0002] # CYRILLIC SMALL LETTER DJE
+0402 ; [.1FCB.0020.0008] # CYRILLIC CAPITAL LETTER DJE
+A663 ; [.1FCF.0020.0002] # CYRILLIC SMALL LETTER SOFT DE
+A662 ; [.1FCF.0020.0008] # CYRILLIC CAPITAL LETTER SOFT DE
+0503 ; [.1FD0.0020.0002] # CYRILLIC SMALL LETTER KOMI DJE
+0502 ; [.1FD0.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DJE
+0499 ; [.1FD1.0020.0002] # CYRILLIC SMALL LETTER ZE WITH DESCENDER
+0498 ; [.1FD1.0020.0008] # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+0435 ; [.1FD5.0020.0002] # CYRILLIC SMALL LETTER IE
+2DF7 ; [.1FD5.0020.0004] # COMBINING CYRILLIC LETTER IE
+0415 ; [.1FD5.0020.0008] # CYRILLIC CAPITAL LETTER IE
+0450 ; [.1FD5.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER IE WITH GRAVE
+0400 ; [.1FD5.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER IE WITH GRAVE
+04D7 ; [.1FD5.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER IE WITH BREVE
+04D6 ; [.1FD5.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER IE WITH BREVE
+0451 ; [.1FD5.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER IO
+0401 ; [.1FD5.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER IO
+0454 ; [.1FD9.0020.0002] # CYRILLIC SMALL LETTER UKRAINIAN IE
+A674 ; [.1FD9.0020.0004] # COMBINING CYRILLIC LETTER UKRAINIAN IE
+0404 ; [.1FD9.0020.0008] # CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0436 ; [.1FDD.0020.0002] # CYRILLIC SMALL LETTER ZHE
+2DE4 ; [.1FDD.0020.0004] # COMBINING CYRILLIC LETTER ZHE
+0416 ; [.1FDD.0020.0008] # CYRILLIC CAPITAL LETTER ZHE
+04C2 ; [.1FDD.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C1 ; [.1FDD.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04DD ; [.1FDD.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DC ; [.1FDD.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+052B ; [.1FE1.0020.0002] # CYRILLIC SMALL LETTER DZZHE
+052A ; [.1FE1.0020.0008] # CYRILLIC CAPITAL LETTER DZZHE
+A685 ; [.1FE2.0020.0002] # CYRILLIC SMALL LETTER ZHWE
+A684 ; [.1FE2.0020.0008] # CYRILLIC CAPITAL LETTER ZHWE
+0497 ; [.1FE3.0020.0002] # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0496 ; [.1FE3.0020.0008] # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0437 ; [.1FE7.0020.0002] # CYRILLIC SMALL LETTER ZE
+2DE5 ; [.1FE7.0020.0004] # COMBINING CYRILLIC LETTER ZE
+0417 ; [.1FE7.0020.0008] # CYRILLIC CAPITAL LETTER ZE
+04DF ; [.1FE7.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04DE ; [.1FE7.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+A641 ; [.1FEB.0020.0002] # CYRILLIC SMALL LETTER ZEMLYA
+A640 ; [.1FEB.0020.0008] # CYRILLIC CAPITAL LETTER ZEMLYA
+0505 ; [.1FEC.0020.0002] # CYRILLIC SMALL LETTER KOMI ZJE
+0504 ; [.1FEC.0020.0008] # CYRILLIC CAPITAL LETTER KOMI ZJE
+0511 ; [.1FED.0020.0002] # CYRILLIC SMALL LETTER REVERSED ZE
+0510 ; [.1FED.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED ZE
+A643 ; [.1FEE.0020.0002] # CYRILLIC SMALL LETTER DZELO
+A642 ; [.1FEE.0020.0008] # CYRILLIC CAPITAL LETTER DZELO
+0455 ; [.1FEF.0020.0002] # CYRILLIC SMALL LETTER DZE
+0405 ; [.1FEF.0020.0008] # CYRILLIC CAPITAL LETTER DZE
+A645 ; [.1FF3.0020.0002] # CYRILLIC SMALL LETTER REVERSED DZE
+A644 ; [.1FF3.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED DZE
+04E1 ; [.1FF4.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E0 ; [.1FF4.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+A689 ; [.1FF8.0020.0002] # CYRILLIC SMALL LETTER DZZE
+A688 ; [.1FF8.0020.0008] # CYRILLIC CAPITAL LETTER DZZE
+0507 ; [.1FF9.0020.0002] # CYRILLIC SMALL LETTER KOMI DZJE
+0506 ; [.1FF9.0020.0008] # CYRILLIC CAPITAL LETTER KOMI DZJE
+A683 ; [.1FFA.0020.0002] # CYRILLIC SMALL LETTER DZWE
+A682 ; [.1FFA.0020.0008] # CYRILLIC CAPITAL LETTER DZWE
+0438 ; [.1FFB.0020.0002] # CYRILLIC SMALL LETTER I
+A675 ; [.1FFB.0020.0004] # COMBINING CYRILLIC LETTER I
+0418 ; [.1FFB.0020.0008] # CYRILLIC CAPITAL LETTER I
+045D ; [.1FFB.0020.0002][.0000.0025.0002] # CYRILLIC SMALL LETTER I WITH GRAVE
+040D ; [.1FFB.0020.0008][.0000.0025.0002] # CYRILLIC CAPITAL LETTER I WITH GRAVE
+04E5 ; [.1FFB.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E4 ; [.1FFB.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E3 ; [.1FFB.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER I WITH MACRON
+04E2 ; [.1FFB.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER I WITH MACRON
+048B ; [.1FFF.0020.0002] # CYRILLIC SMALL LETTER SHORT I WITH TAIL
+048A ; [.1FFF.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+0456 ; [.2003.0020.0002] # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0406 ; [.2003.0020.0008] # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0457 ; [.2003.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YI
+A676 ; [.2003.0020.0004][.0000.002B.0004] # COMBINING CYRILLIC LETTER YI
+0407 ; [.2003.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YI
+A647 ; [.2007.0020.0002] # CYRILLIC SMALL LETTER IOTA
+A646 ; [.2007.0020.0008] # CYRILLIC CAPITAL LETTER IOTA
+0439 ; [.2008.0020.0002] # CYRILLIC SMALL LETTER SHORT I
+0438 0306 ; [.2008.0020.0002] # CYRILLIC SMALL LETTER SHORT I
+0419 ; [.2008.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
+0418 0306 ; [.2008.0020.0008] # CYRILLIC CAPITAL LETTER SHORT I
+0458 ; [.200C.0020.0002] # CYRILLIC SMALL LETTER JE
+0408 ; [.200C.0020.0008] # CYRILLIC CAPITAL LETTER JE
+A649 ; [.2010.0020.0002] # CYRILLIC SMALL LETTER DJERV
+2DF8 ; [.2010.0020.0004] # COMBINING CYRILLIC LETTER DJERV
+A648 ; [.2010.0020.0008] # CYRILLIC CAPITAL LETTER DJERV
+043A ; [.2011.0020.0002] # CYRILLIC SMALL LETTER KA
+2DE6 ; [.2011.0020.0004] # COMBINING CYRILLIC LETTER KA
+041A ; [.2011.0020.0008] # CYRILLIC CAPITAL LETTER KA
+045C ; [.2011.0020.0002][.0000.0024.0002] # CYRILLIC SMALL LETTER KJE
+040C ; [.2011.0020.0008][.0000.0024.0002] # CYRILLIC CAPITAL LETTER KJE
+049B ; [.2015.0020.0002] # CYRILLIC SMALL LETTER KA WITH DESCENDER
+049A ; [.2015.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+04C4 ; [.2019.0020.0002] # CYRILLIC SMALL LETTER KA WITH HOOK
+04C3 ; [.2019.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH HOOK
+04A1 ; [.201D.0020.0002] # CYRILLIC SMALL LETTER BASHKIR KA
+04A0 ; [.201D.0020.0008] # CYRILLIC CAPITAL LETTER BASHKIR KA
+049F ; [.2021.0020.0002] # CYRILLIC SMALL LETTER KA WITH STROKE
+049E ; [.2021.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH STROKE
+049D ; [.2025.0020.0002] # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049C ; [.2025.0020.0008] # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+051F ; [.2029.0020.0002] # CYRILLIC SMALL LETTER ALEUT KA
+051E ; [.2029.0020.0008] # CYRILLIC CAPITAL LETTER ALEUT KA
+051B ; [.202A.0020.0002] # CYRILLIC SMALL LETTER QA
+051A ; [.202A.0020.0008] # CYRILLIC CAPITAL LETTER QA
+043B ; [.202B.0020.0002] # CYRILLIC SMALL LETTER EL
+2DE7 ; [.202B.0020.0004] # COMBINING CYRILLIC LETTER EL
+041B ; [.202B.0020.0008] # CYRILLIC CAPITAL LETTER EL
+1D2B ; [.202F.0020.0002] # CYRILLIC LETTER SMALL CAPITAL EL
+04C6 ; [.2030.0020.0002] # CYRILLIC SMALL LETTER EL WITH TAIL
+04C5 ; [.2030.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH TAIL
+052F ; [.2034.0020.0002] # CYRILLIC SMALL LETTER EL WITH DESCENDER
+052E ; [.2034.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+0513 ; [.2035.0020.0002] # CYRILLIC SMALL LETTER EL WITH HOOK
+0512 ; [.2035.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH HOOK
+0521 ; [.2036.0020.0002] # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+0520 ; [.2036.0020.0008] # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+0459 ; [.2037.0020.0002] # CYRILLIC SMALL LETTER LJE
+0409 ; [.2037.0020.0008] # CYRILLIC CAPITAL LETTER LJE
+A665 ; [.203B.0020.0002] # CYRILLIC SMALL LETTER SOFT EL
+A664 ; [.203B.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EL
+0509 ; [.203C.0020.0002] # CYRILLIC SMALL LETTER KOMI LJE
+0508 ; [.203C.0020.0008] # CYRILLIC CAPITAL LETTER KOMI LJE
+0515 ; [.203D.0020.0002] # CYRILLIC SMALL LETTER LHA
+0514 ; [.203D.0020.0008] # CYRILLIC CAPITAL LETTER LHA
+043C ; [.203E.0020.0002] # CYRILLIC SMALL LETTER EM
+2DE8 ; [.203E.0020.0004] # COMBINING CYRILLIC LETTER EM
+041C ; [.203E.0020.0008] # CYRILLIC CAPITAL LETTER EM
+04CE ; [.2042.0020.0002] # CYRILLIC SMALL LETTER EM WITH TAIL
+04CD ; [.2042.0020.0008] # CYRILLIC CAPITAL LETTER EM WITH TAIL
+A667 ; [.2046.0020.0002] # CYRILLIC SMALL LETTER SOFT EM
+A666 ; [.2046.0020.0008] # CYRILLIC CAPITAL LETTER SOFT EM
+043D ; [.2047.0020.0002] # CYRILLIC SMALL LETTER EN
+2DE9 ; [.2047.0020.0004] # COMBINING CYRILLIC LETTER EN
+041D ; [.2047.0020.0008] # CYRILLIC CAPITAL LETTER EN
+1D78 ; [.2047.0020.0014] # MODIFIER LETTER CYRILLIC EN
+0529 ; [.204B.0020.0002] # CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+0528 ; [.204B.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+04CA ; [.204C.0020.0002] # CYRILLIC SMALL LETTER EN WITH TAIL
+04C9 ; [.204C.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH TAIL
+04A3 ; [.2050.0020.0002] # CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A2 ; [.2050.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04C8 ; [.2054.0020.0002] # CYRILLIC SMALL LETTER EN WITH HOOK
+04C7 ; [.2054.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH HOOK
+0523 ; [.2058.0020.0002] # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+0522 ; [.2058.0020.0008] # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+04A5 ; [.2059.0020.0002] # CYRILLIC SMALL LIGATURE EN GHE
+04A4 ; [.2059.0020.0008] # CYRILLIC CAPITAL LIGATURE EN GHE
+045A ; [.205D.0020.0002] # CYRILLIC SMALL LETTER NJE
+040A ; [.205D.0020.0008] # CYRILLIC CAPITAL LETTER NJE
+050B ; [.2061.0020.0002] # CYRILLIC SMALL LETTER KOMI NJE
+050A ; [.2061.0020.0008] # CYRILLIC CAPITAL LETTER KOMI NJE
+043E ; [.2062.0020.0002] # CYRILLIC SMALL LETTER O
+2DEA ; [.2062.0020.0004] # COMBINING CYRILLIC LETTER O
+A669 ; [.2062.0020.0004] # CYRILLIC SMALL LETTER MONOCULAR O
+A66B ; [.2062.0020.0004] # CYRILLIC SMALL LETTER BINOCULAR O
+A66D ; [.2062.0020.0004] # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E ; [.2062.0020.0004] # CYRILLIC LETTER MULTIOCULAR O
+A699 ; [.2062.0020.0004] # CYRILLIC SMALL LETTER DOUBLE O
+A69B ; [.2062.0020.0004] # CYRILLIC SMALL LETTER CROSSED O
+041E ; [.2062.0020.0008] # CYRILLIC CAPITAL LETTER O
+A668 ; [.2062.0020.000A] # CYRILLIC CAPITAL LETTER MONOCULAR O
+A66A ; [.2062.0020.000A] # CYRILLIC CAPITAL LETTER BINOCULAR O
+A66C ; [.2062.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+A698 ; [.2062.0020.000A] # CYRILLIC CAPITAL LETTER DOUBLE O
+A69A ; [.2062.0020.000A] # CYRILLIC CAPITAL LETTER CROSSED O
+04E7 ; [.2062.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E6 ; [.2062.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E9 ; [.2066.0020.0002] # CYRILLIC SMALL LETTER BARRED O
+04E8 ; [.2066.0020.0008] # CYRILLIC CAPITAL LETTER BARRED O
+04EB ; [.2066.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EA ; [.2066.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+043F ; [.206A.0020.0002] # CYRILLIC SMALL LETTER PE
+2DEB ; [.206A.0020.0004] # COMBINING CYRILLIC LETTER PE
+041F ; [.206A.0020.0008] # CYRILLIC CAPITAL LETTER PE
+0525 ; [.206E.0020.0002] # CYRILLIC SMALL LETTER PE WITH DESCENDER
+0524 ; [.206E.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH DESCENDER
+04A7 ; [.206F.0020.0002] # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A6 ; [.206F.0020.0008] # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+0481 ; [.2073.0020.0002] # CYRILLIC SMALL LETTER KOPPA
+0480 ; [.2073.0020.0008] # CYRILLIC CAPITAL LETTER KOPPA
+0440 ; [.2077.0020.0002] # CYRILLIC SMALL LETTER ER
+2DEC ; [.2077.0020.0004] # COMBINING CYRILLIC LETTER ER
+0420 ; [.2077.0020.0008] # CYRILLIC CAPITAL LETTER ER
+048F ; [.207B.0020.0002] # CYRILLIC SMALL LETTER ER WITH TICK
+048E ; [.207B.0020.0008] # CYRILLIC CAPITAL LETTER ER WITH TICK
+0517 ; [.207F.0020.0002] # CYRILLIC SMALL LETTER RHA
+0516 ; [.207F.0020.0008] # CYRILLIC CAPITAL LETTER RHA
+0441 ; [.2080.0020.0002] # CYRILLIC SMALL LETTER ES
+2DED ; [.2080.0020.0004] # COMBINING CYRILLIC LETTER ES
+0421 ; [.2080.0020.0008] # CYRILLIC CAPITAL LETTER ES
+2DF5 ; [.2080.0020.0004][.2089.0020.0004] # COMBINING CYRILLIC LETTER ES-TE
+050D ; [.2084.0020.0002] # CYRILLIC SMALL LETTER KOMI SJE
+050C ; [.2084.0020.0008] # CYRILLIC CAPITAL LETTER KOMI SJE
+04AB ; [.2085.0020.0002] # CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AA ; [.2085.0020.0008] # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+0442 ; [.2089.0020.0002] # CYRILLIC SMALL LETTER TE
+2DEE ; [.2089.0020.0004] # COMBINING CYRILLIC LETTER TE
+0422 ; [.2089.0020.0008] # CYRILLIC CAPITAL LETTER TE
+A68D ; [.208D.0020.0002] # CYRILLIC SMALL LETTER TWE
+A68C ; [.208D.0020.0008] # CYRILLIC CAPITAL LETTER TWE
+050F ; [.208E.0020.0002] # CYRILLIC SMALL LETTER KOMI TJE
+050E ; [.208E.0020.0008] # CYRILLIC CAPITAL LETTER KOMI TJE
+04AD ; [.208F.0020.0002] # CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AC ; [.208F.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+A68B ; [.2093.0020.0002] # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
+A68A ; [.2093.0020.0008] # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+045B ; [.2094.0020.0002] # CYRILLIC SMALL LETTER TSHE
+040B ; [.2094.0020.0008] # CYRILLIC CAPITAL LETTER TSHE
+0443 ; [.2098.0020.0002] # CYRILLIC SMALL LETTER U
+A677 ; [.2098.0020.0004] # COMBINING CYRILLIC LETTER U
+0423 ; [.2098.0020.0008] # CYRILLIC CAPITAL LETTER U
+045E ; [.2098.0020.0002][.0000.0026.0002] # CYRILLIC SMALL LETTER SHORT U
+040E ; [.2098.0020.0008][.0000.0026.0002] # CYRILLIC CAPITAL LETTER SHORT U
+04F1 ; [.2098.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F0 ; [.2098.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F3 ; [.2098.0020.0002][.0000.002C.0002] # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F2 ; [.2098.0020.0008][.0000.002C.0002] # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04EF ; [.2098.0020.0002][.0000.0032.0002] # CYRILLIC SMALL LETTER U WITH MACRON
+04EE ; [.2098.0020.0008][.0000.0032.0002] # CYRILLIC CAPITAL LETTER U WITH MACRON
+04AF ; [.209C.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U
+04AE ; [.209C.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U
+04B1 ; [.20A0.0020.0002] # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B0 ; [.20A0.0020.0008] # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+A64B ; [.20A4.0020.0002] # CYRILLIC SMALL LETTER MONOGRAPH UK
+2DF9 ; [.20A4.0020.0004] # COMBINING CYRILLIC LETTER MONOGRAPH UK
+A64A ; [.20A4.0020.0008] # CYRILLIC CAPITAL LETTER MONOGRAPH UK
+0479 ; [.20A5.0020.0002] # CYRILLIC SMALL LETTER UK
+0478 ; [.20A5.0020.0008] # CYRILLIC CAPITAL LETTER UK
+0444 ; [.20A9.0020.0002] # CYRILLIC SMALL LETTER EF
+A69E ; [.20A9.0020.0004] # COMBINING CYRILLIC LETTER EF
+0424 ; [.20A9.0020.0008] # CYRILLIC CAPITAL LETTER EF
+0445 ; [.20AD.0020.0002] # CYRILLIC SMALL LETTER HA
+2DEF ; [.20AD.0020.0004] # COMBINING CYRILLIC LETTER HA
+0425 ; [.20AD.0020.0008] # CYRILLIC CAPITAL LETTER HA
+04FD ; [.20B1.0020.0002] # CYRILLIC SMALL LETTER HA WITH HOOK
+04FC ; [.20B1.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH HOOK
+04FF ; [.20B5.0020.0002] # CYRILLIC SMALL LETTER HA WITH STROKE
+04FE ; [.20B5.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH STROKE
+04B3 ; [.20B9.0020.0002] # CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B2 ; [.20B9.0020.0008] # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04BB ; [.20BD.0020.0002] # CYRILLIC SMALL LETTER SHHA
+04BA ; [.20BD.0020.0008] # CYRILLIC CAPITAL LETTER SHHA
+0527 ; [.20C1.0020.0002] # CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0526 ; [.20C1.0020.0008] # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+A695 ; [.20C2.0020.0002] # CYRILLIC SMALL LETTER HWE
+A694 ; [.20C2.0020.0008] # CYRILLIC CAPITAL LETTER HWE
+0461 ; [.20C3.0020.0002] # CYRILLIC SMALL LETTER OMEGA
+A67B ; [.20C3.0020.0004] # COMBINING CYRILLIC LETTER OMEGA
+0460 ; [.20C3.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA
+047F ; [.20C7.0020.0002] # CYRILLIC SMALL LETTER OT
+047E ; [.20C7.0020.0008] # CYRILLIC CAPITAL LETTER OT
+A64D ; [.20CB.0020.0002] # CYRILLIC SMALL LETTER BROAD OMEGA
+A64C ; [.20CB.0020.0008] # CYRILLIC CAPITAL LETTER BROAD OMEGA
+047D ; [.20CC.0020.0002] # CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047C ; [.20CC.0020.0008] # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047B ; [.20D0.0020.0002] # CYRILLIC SMALL LETTER ROUND OMEGA
+047A ; [.20D0.0020.0008] # CYRILLIC CAPITAL LETTER ROUND OMEGA
+0446 ; [.20D4.0020.0002] # CYRILLIC SMALL LETTER TSE
+2DF0 ; [.20D4.0020.0004] # COMBINING CYRILLIC LETTER TSE
+0426 ; [.20D4.0020.0008] # CYRILLIC CAPITAL LETTER TSE
+A661 ; [.20D8.0020.0002] # CYRILLIC SMALL LETTER REVERSED TSE
+A660 ; [.20D8.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED TSE
+A68F ; [.20D9.0020.0002] # CYRILLIC SMALL LETTER TSWE
+A68E ; [.20D9.0020.0008] # CYRILLIC CAPITAL LETTER TSWE
+04B5 ; [.20DA.0020.0002] # CYRILLIC SMALL LIGATURE TE TSE
+04B4 ; [.20DA.0020.0008] # CYRILLIC CAPITAL LIGATURE TE TSE
+A691 ; [.20DE.0020.0002] # CYRILLIC SMALL LETTER TSSE
+A690 ; [.20DE.0020.0008] # CYRILLIC CAPITAL LETTER TSSE
+0447 ; [.20DF.0020.0002] # CYRILLIC SMALL LETTER CHE
+2DF1 ; [.20DF.0020.0004] # COMBINING CYRILLIC LETTER CHE
+0427 ; [.20DF.0020.0008] # CYRILLIC CAPITAL LETTER CHE
+04F5 ; [.20DF.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F4 ; [.20DF.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+052D ; [.20E3.0020.0002] # CYRILLIC SMALL LETTER DCHE
+052C ; [.20E3.0020.0008] # CYRILLIC CAPITAL LETTER DCHE
+A693 ; [.20E4.0020.0002] # CYRILLIC SMALL LETTER TCHE
+A692 ; [.20E4.0020.0008] # CYRILLIC CAPITAL LETTER TCHE
+04B7 ; [.20E5.0020.0002] # CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B6 ; [.20E5.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04CC ; [.20E9.0020.0002] # CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04CB ; [.20E9.0020.0008] # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04B9 ; [.20ED.0020.0002] # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04B8 ; [.20ED.0020.0008] # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+A687 ; [.20F1.0020.0002] # CYRILLIC SMALL LETTER CCHE
+A686 ; [.20F1.0020.0008] # CYRILLIC CAPITAL LETTER CCHE
+04BD ; [.20F2.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BC ; [.20F2.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BF ; [.20F6.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+04BE ; [.20F6.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+045F ; [.20FA.0020.0002] # CYRILLIC SMALL LETTER DZHE
+040F ; [.20FA.0020.0008] # CYRILLIC CAPITAL LETTER DZHE
+0448 ; [.20FE.0020.0002] # CYRILLIC SMALL LETTER SHA
+2DF2 ; [.20FE.0020.0004] # COMBINING CYRILLIC LETTER SHA
+0428 ; [.20FE.0020.0008] # CYRILLIC CAPITAL LETTER SHA
+A697 ; [.2102.0020.0002] # CYRILLIC SMALL LETTER SHWE
+A696 ; [.2102.0020.0008] # CYRILLIC CAPITAL LETTER SHWE
+0449 ; [.2103.0020.0002] # CYRILLIC SMALL LETTER SHCHA
+2DF3 ; [.2103.0020.0004] # COMBINING CYRILLIC LETTER SHCHA
+0429 ; [.2103.0020.0008] # CYRILLIC CAPITAL LETTER SHCHA
+A64F ; [.2107.0020.0002] # CYRILLIC SMALL LETTER NEUTRAL YER
+A64E ; [.2107.0020.0008] # CYRILLIC CAPITAL LETTER NEUTRAL YER
+2E2F ; [.2108.0020.0002] # VERTICAL TILDE
+A67F ; [.2109.0020.0002] # CYRILLIC PAYEROK
+044A ; [.210A.0020.0002] # CYRILLIC SMALL LETTER HARD SIGN
+A678 ; [.210A.0020.0004] # COMBINING CYRILLIC LETTER HARD SIGN
+042A ; [.210A.0020.0008] # CYRILLIC CAPITAL LETTER HARD SIGN
+A69C ; [.210A.0020.0014] # MODIFIER LETTER CYRILLIC HARD SIGN
+A651 ; [.210E.0020.0002] # CYRILLIC SMALL LETTER YERU WITH BACK YER
+A650 ; [.210E.0020.0008] # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+044B ; [.210F.0020.0002] # CYRILLIC SMALL LETTER YERU
+A679 ; [.210F.0020.0004] # COMBINING CYRILLIC LETTER YERU
+042B ; [.210F.0020.0008] # CYRILLIC CAPITAL LETTER YERU
+04F9 ; [.210F.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+04F8 ; [.210F.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+044C ; [.2113.0020.0002] # CYRILLIC SMALL LETTER SOFT SIGN
+A67A ; [.2113.0020.0004] # COMBINING CYRILLIC LETTER SOFT SIGN
+042C ; [.2113.0020.0008] # CYRILLIC CAPITAL LETTER SOFT SIGN
+A69D ; [.2113.0020.0014] # MODIFIER LETTER CYRILLIC SOFT SIGN
+048D ; [.2117.0020.0002] # CYRILLIC SMALL LETTER SEMISOFT SIGN
+048C ; [.2117.0020.0008] # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+0463 ; [.211B.0020.0002] # CYRILLIC SMALL LETTER YAT
+2DFA ; [.211B.0020.0004] # COMBINING CYRILLIC LETTER YAT
+0462 ; [.211B.0020.0008] # CYRILLIC CAPITAL LETTER YAT
+A653 ; [.211F.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED YAT
+A652 ; [.211F.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED YAT
+044D ; [.2120.0020.0002] # CYRILLIC SMALL LETTER E
+042D ; [.2120.0020.0008] # CYRILLIC CAPITAL LETTER E
+04ED ; [.2120.0020.0002][.0000.002B.0002] # CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EC ; [.2120.0020.0008][.0000.002B.0002] # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+044E ; [.2124.0020.0002] # CYRILLIC SMALL LETTER YU
+2DFB ; [.2124.0020.0004] # COMBINING CYRILLIC LETTER YU
+042E ; [.2124.0020.0008] # CYRILLIC CAPITAL LETTER YU
+A655 ; [.2128.0020.0002] # CYRILLIC SMALL LETTER REVERSED YU
+A654 ; [.2128.0020.0008] # CYRILLIC CAPITAL LETTER REVERSED YU
+A657 ; [.2129.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED A
+2DFC ; [.2129.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED A
+A656 ; [.2129.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED A
+044F ; [.212A.0020.0002] # CYRILLIC SMALL LETTER YA
+042F ; [.212A.0020.0008] # CYRILLIC CAPITAL LETTER YA
+0519 ; [.212E.0020.0002] # CYRILLIC SMALL LETTER YAE
+0518 ; [.212E.0020.0008] # CYRILLIC CAPITAL LETTER YAE
+0465 ; [.212F.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED E
+A69F ; [.212F.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED E
+0464 ; [.212F.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED E
+0467 ; [.2133.0020.0002] # CYRILLIC SMALL LETTER LITTLE YUS
+2DFD ; [.2133.0020.0004] # COMBINING CYRILLIC LETTER LITTLE YUS
+0466 ; [.2133.0020.0008] # CYRILLIC CAPITAL LETTER LITTLE YUS
+A659 ; [.2137.0020.0002] # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
+A658 ; [.2137.0020.0008] # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+046B ; [.2138.0020.0002] # CYRILLIC SMALL LETTER BIG YUS
+2DFE ; [.2138.0020.0004] # COMBINING CYRILLIC LETTER BIG YUS
+046A ; [.2138.0020.0008] # CYRILLIC CAPITAL LETTER BIG YUS
+A65B ; [.213C.0020.0002] # CYRILLIC SMALL LETTER BLENDED YUS
+A65A ; [.213C.0020.0008] # CYRILLIC CAPITAL LETTER BLENDED YUS
+0469 ; [.213D.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+0468 ; [.213D.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+A65D ; [.2141.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+A65C ; [.2141.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+046D ; [.2142.0020.0002] # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+2DFF ; [.2142.0020.0004] # COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+046C ; [.2142.0020.0008] # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046F ; [.2146.0020.0002] # CYRILLIC SMALL LETTER KSI
+046E ; [.2146.0020.0008] # CYRILLIC CAPITAL LETTER KSI
+0471 ; [.214A.0020.0002] # CYRILLIC SMALL LETTER PSI
+0470 ; [.214A.0020.0008] # CYRILLIC CAPITAL LETTER PSI
+0473 ; [.214E.0020.0002] # CYRILLIC SMALL LETTER FITA
+2DF4 ; [.214E.0020.0004] # COMBINING CYRILLIC LETTER FITA
+0472 ; [.214E.0020.0008] # CYRILLIC CAPITAL LETTER FITA
+0475 ; [.2152.0020.0002] # CYRILLIC SMALL LETTER IZHITSA
+0474 ; [.2152.0020.0008] # CYRILLIC CAPITAL LETTER IZHITSA
+0477 ; [.2152.0020.0002][.0000.003C.0002] # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0476 ; [.2152.0020.0008][.0000.003C.0002] # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+A65F ; [.2156.0020.0002] # CYRILLIC SMALL LETTER YN
+A65E ; [.2156.0020.0008] # CYRILLIC CAPITAL LETTER YN
+04A9 ; [.2157.0020.0002] # CYRILLIC SMALL LETTER ABKHASIAN HA
+04A8 ; [.2157.0020.0008] # CYRILLIC CAPITAL LETTER ABKHASIAN HA
+051D ; [.215B.0020.0002] # CYRILLIC SMALL LETTER WE
+051C ; [.215B.0020.0008] # CYRILLIC CAPITAL LETTER WE
+04CF ; [.215C.0020.0002] # CYRILLIC SMALL LETTER PALOCHKA
+04C0 ; [.215C.0020.0008] # CYRILLIC LETTER PALOCHKA
+2C30 ; [.2160.0020.0002] # GLAGOLITIC SMALL LETTER AZU
+2C00 ; [.2160.0020.0008] # GLAGOLITIC CAPITAL LETTER AZU
+2C31 ; [.2161.0020.0002] # GLAGOLITIC SMALL LETTER BUKY
+2C01 ; [.2161.0020.0008] # GLAGOLITIC CAPITAL LETTER BUKY
+2C32 ; [.2162.0020.0002] # GLAGOLITIC SMALL LETTER VEDE
+2C02 ; [.2162.0020.0008] # GLAGOLITIC CAPITAL LETTER VEDE
+2C33 ; [.2163.0020.0002] # GLAGOLITIC SMALL LETTER GLAGOLI
+2C03 ; [.2163.0020.0008] # GLAGOLITIC CAPITAL LETTER GLAGOLI
+2C34 ; [.2164.0020.0002] # GLAGOLITIC SMALL LETTER DOBRO
+2C04 ; [.2164.0020.0008] # GLAGOLITIC CAPITAL LETTER DOBRO
+2C35 ; [.2165.0020.0002] # GLAGOLITIC SMALL LETTER YESTU
+2C05 ; [.2165.0020.0008] # GLAGOLITIC CAPITAL LETTER YESTU
+2C36 ; [.2166.0020.0002] # GLAGOLITIC SMALL LETTER ZHIVETE
+2C06 ; [.2166.0020.0008] # GLAGOLITIC CAPITAL LETTER ZHIVETE
+2C37 ; [.2167.0020.0002] # GLAGOLITIC SMALL LETTER DZELO
+2C07 ; [.2167.0020.0008] # GLAGOLITIC CAPITAL LETTER DZELO
+2C38 ; [.2168.0020.0002] # GLAGOLITIC SMALL LETTER ZEMLJA
+2C08 ; [.2168.0020.0008] # GLAGOLITIC CAPITAL LETTER ZEMLJA
+2C39 ; [.2169.0020.0002] # GLAGOLITIC SMALL LETTER IZHE
+2C09 ; [.2169.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHE
+2C3A ; [.216A.0020.0002] # GLAGOLITIC SMALL LETTER INITIAL IZHE
+2C0A ; [.216A.0020.0008] # GLAGOLITIC CAPITAL LETTER INITIAL IZHE
+2C3B ; [.216B.0020.0002] # GLAGOLITIC SMALL LETTER I
+2C0B ; [.216B.0020.0008] # GLAGOLITIC CAPITAL LETTER I
+2C3C ; [.216C.0020.0002] # GLAGOLITIC SMALL LETTER DJERVI
+2C0C ; [.216C.0020.0008] # GLAGOLITIC CAPITAL LETTER DJERVI
+2C3D ; [.216D.0020.0002] # GLAGOLITIC SMALL LETTER KAKO
+2C0D ; [.216D.0020.0008] # GLAGOLITIC CAPITAL LETTER KAKO
+2C3E ; [.216E.0020.0002] # GLAGOLITIC SMALL LETTER LJUDIJE
+2C0E ; [.216E.0020.0008] # GLAGOLITIC CAPITAL LETTER LJUDIJE
+2C3F ; [.216F.0020.0002] # GLAGOLITIC SMALL LETTER MYSLITE
+2C0F ; [.216F.0020.0008] # GLAGOLITIC CAPITAL LETTER MYSLITE
+2C40 ; [.2170.0020.0002] # GLAGOLITIC SMALL LETTER NASHI
+2C10 ; [.2170.0020.0008] # GLAGOLITIC CAPITAL LETTER NASHI
+2C41 ; [.2171.0020.0002] # GLAGOLITIC SMALL LETTER ONU
+2C11 ; [.2171.0020.0008] # GLAGOLITIC CAPITAL LETTER ONU
+2C42 ; [.2172.0020.0002] # GLAGOLITIC SMALL LETTER POKOJI
+2C12 ; [.2172.0020.0008] # GLAGOLITIC CAPITAL LETTER POKOJI
+2C43 ; [.2173.0020.0002] # GLAGOLITIC SMALL LETTER RITSI
+2C13 ; [.2173.0020.0008] # GLAGOLITIC CAPITAL LETTER RITSI
+2C44 ; [.2174.0020.0002] # GLAGOLITIC SMALL LETTER SLOVO
+2C14 ; [.2174.0020.0008] # GLAGOLITIC CAPITAL LETTER SLOVO
+2C45 ; [.2175.0020.0002] # GLAGOLITIC SMALL LETTER TVRIDO
+2C15 ; [.2175.0020.0008] # GLAGOLITIC CAPITAL LETTER TVRIDO
+2C46 ; [.2176.0020.0002] # GLAGOLITIC SMALL LETTER UKU
+2C16 ; [.2176.0020.0008] # GLAGOLITIC CAPITAL LETTER UKU
+2C47 ; [.2177.0020.0002] # GLAGOLITIC SMALL LETTER FRITU
+2C17 ; [.2177.0020.0008] # GLAGOLITIC CAPITAL LETTER FRITU
+2C48 ; [.2178.0020.0002] # GLAGOLITIC SMALL LETTER HERU
+2C18 ; [.2178.0020.0008] # GLAGOLITIC CAPITAL LETTER HERU
+2C49 ; [.2179.0020.0002] # GLAGOLITIC SMALL LETTER OTU
+2C19 ; [.2179.0020.0008] # GLAGOLITIC CAPITAL LETTER OTU
+2C4A ; [.217A.0020.0002] # GLAGOLITIC SMALL LETTER PE
+2C1A ; [.217A.0020.0008] # GLAGOLITIC CAPITAL LETTER PE
+2C4B ; [.217B.0020.0002] # GLAGOLITIC SMALL LETTER SHTA
+2C1B ; [.217B.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTA
+2C4C ; [.217C.0020.0002] # GLAGOLITIC SMALL LETTER TSI
+2C1C ; [.217C.0020.0008] # GLAGOLITIC CAPITAL LETTER TSI
+2C4D ; [.217D.0020.0002] # GLAGOLITIC SMALL LETTER CHRIVI
+2C1D ; [.217D.0020.0008] # GLAGOLITIC CAPITAL LETTER CHRIVI
+2C4E ; [.217E.0020.0002] # GLAGOLITIC SMALL LETTER SHA
+2C1E ; [.217E.0020.0008] # GLAGOLITIC CAPITAL LETTER SHA
+2C4F ; [.217F.0020.0002] # GLAGOLITIC SMALL LETTER YERU
+2C1F ; [.217F.0020.0008] # GLAGOLITIC CAPITAL LETTER YERU
+2C50 ; [.2180.0020.0002] # GLAGOLITIC SMALL LETTER YERI
+2C20 ; [.2180.0020.0008] # GLAGOLITIC CAPITAL LETTER YERI
+2C51 ; [.2181.0020.0002] # GLAGOLITIC SMALL LETTER YATI
+2C21 ; [.2181.0020.0008] # GLAGOLITIC CAPITAL LETTER YATI
+2C52 ; [.2182.0020.0002] # GLAGOLITIC SMALL LETTER SPIDERY HA
+2C22 ; [.2182.0020.0008] # GLAGOLITIC CAPITAL LETTER SPIDERY HA
+2C53 ; [.2183.0020.0002] # GLAGOLITIC SMALL LETTER YU
+2C23 ; [.2183.0020.0008] # GLAGOLITIC CAPITAL LETTER YU
+2C54 ; [.2184.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS
+2C24 ; [.2184.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS
+2C55 ; [.2185.0020.0002] # GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
+2C25 ; [.2185.0020.0008] # GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
+2C56 ; [.2186.0020.0002] # GLAGOLITIC SMALL LETTER YO
+2C26 ; [.2186.0020.0008] # GLAGOLITIC CAPITAL LETTER YO
+2C57 ; [.2187.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
+2C27 ; [.2187.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
+2C58 ; [.2188.0020.0002] # GLAGOLITIC SMALL LETTER BIG YUS
+2C28 ; [.2188.0020.0008] # GLAGOLITIC CAPITAL LETTER BIG YUS
+2C59 ; [.2189.0020.0002] # GLAGOLITIC SMALL LETTER IOTATED BIG YUS
+2C29 ; [.2189.0020.0008] # GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
+2C5A ; [.218A.0020.0002] # GLAGOLITIC SMALL LETTER FITA
+2C2A ; [.218A.0020.0008] # GLAGOLITIC CAPITAL LETTER FITA
+2C5B ; [.218B.0020.0002] # GLAGOLITIC SMALL LETTER IZHITSA
+2C2B ; [.218B.0020.0008] # GLAGOLITIC CAPITAL LETTER IZHITSA
+2C5C ; [.218C.0020.0002] # GLAGOLITIC SMALL LETTER SHTAPIC
+2C2C ; [.218C.0020.0008] # GLAGOLITIC CAPITAL LETTER SHTAPIC
+2C5D ; [.218D.0020.0002] # GLAGOLITIC SMALL LETTER TROKUTASTI A
+2C2D ; [.218D.0020.0008] # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
+2C5E ; [.218E.0020.0002] # GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C2E ; [.218E.0020.0008] # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+10350 ; [.218F.0020.0002] # OLD PERMIC LETTER AN
+10376 ; [.218F.0020.0004] # COMBINING OLD PERMIC LETTER AN
+10351 ; [.2190.0020.0002] # OLD PERMIC LETTER BUR
+10352 ; [.2191.0020.0002] # OLD PERMIC LETTER GAI
+10353 ; [.2192.0020.0002] # OLD PERMIC LETTER DOI
+10377 ; [.2192.0020.0004] # COMBINING OLD PERMIC LETTER DOI
+10354 ; [.2193.0020.0002] # OLD PERMIC LETTER E
+10355 ; [.2194.0020.0002] # OLD PERMIC LETTER ZHOI
+10356 ; [.2195.0020.0002] # OLD PERMIC LETTER DZHOI
+10357 ; [.2196.0020.0002] # OLD PERMIC LETTER ZATA
+10378 ; [.2196.0020.0004] # COMBINING OLD PERMIC LETTER ZATA
+10358 ; [.2197.0020.0002] # OLD PERMIC LETTER DZITA
+10359 ; [.2198.0020.0002] # OLD PERMIC LETTER I
+1035A ; [.2199.0020.0002] # OLD PERMIC LETTER KOKE
+1035B ; [.219A.0020.0002] # OLD PERMIC LETTER LEI
+1035C ; [.219B.0020.0002] # OLD PERMIC LETTER MENOE
+1035D ; [.219C.0020.0002] # OLD PERMIC LETTER NENOE
+10379 ; [.219C.0020.0004] # COMBINING OLD PERMIC LETTER NENOE
+1035E ; [.219D.0020.0002] # OLD PERMIC LETTER VOOI
+1035F ; [.219E.0020.0002] # OLD PERMIC LETTER PEEI
+10360 ; [.219F.0020.0002] # OLD PERMIC LETTER REI
+10361 ; [.21A0.0020.0002] # OLD PERMIC LETTER SII
+1037A ; [.21A0.0020.0004] # COMBINING OLD PERMIC LETTER SII
+10362 ; [.21A1.0020.0002] # OLD PERMIC LETTER TAI
+10363 ; [.21A2.0020.0002] # OLD PERMIC LETTER U
+10364 ; [.21A3.0020.0002] # OLD PERMIC LETTER CHERY
+10365 ; [.21A4.0020.0002] # OLD PERMIC LETTER SHOOI
+10366 ; [.21A5.0020.0002] # OLD PERMIC LETTER SHCHOOI
+10367 ; [.21A6.0020.0002] # OLD PERMIC LETTER YRY
+10368 ; [.21A7.0020.0002] # OLD PERMIC LETTER YERU
+10369 ; [.21A8.0020.0002] # OLD PERMIC LETTER O
+1036A ; [.21A9.0020.0002] # OLD PERMIC LETTER OO
+1036B ; [.21AA.0020.0002] # OLD PERMIC LETTER EF
+1036C ; [.21AB.0020.0002] # OLD PERMIC LETTER HA
+1036D ; [.21AC.0020.0002] # OLD PERMIC LETTER TSIU
+1036E ; [.21AD.0020.0002] # OLD PERMIC LETTER VER
+1036F ; [.21AE.0020.0002] # OLD PERMIC LETTER YER
+10370 ; [.21AF.0020.0002] # OLD PERMIC LETTER YERI
+10371 ; [.21B0.0020.0002] # OLD PERMIC LETTER YAT
+10372 ; [.21B1.0020.0002] # OLD PERMIC LETTER IE
+10373 ; [.21B2.0020.0002] # OLD PERMIC LETTER YU
+10374 ; [.21B3.0020.0002] # OLD PERMIC LETTER YA
+10375 ; [.21B4.0020.0002] # OLD PERMIC LETTER IA
+10D0 ; [.21B5.0020.0002] # GEORGIAN LETTER AN
+2D00 ; [.21B6.0020.0002] # GEORGIAN SMALL LETTER AN
+10A0 ; [.21B6.0020.0008] # GEORGIAN CAPITAL LETTER AN
+10D1 ; [.21B7.0020.0002] # GEORGIAN LETTER BAN
+2D01 ; [.21B8.0020.0002] # GEORGIAN SMALL LETTER BAN
+10A1 ; [.21B8.0020.0008] # GEORGIAN CAPITAL LETTER BAN
+10D2 ; [.21B9.0020.0002] # GEORGIAN LETTER GAN
+2D02 ; [.21BA.0020.0002] # GEORGIAN SMALL LETTER GAN
+10A2 ; [.21BA.0020.0008] # GEORGIAN CAPITAL LETTER GAN
+10D3 ; [.21BB.0020.0002] # GEORGIAN LETTER DON
+2D03 ; [.21BC.0020.0002] # GEORGIAN SMALL LETTER DON
+10A3 ; [.21BC.0020.0008] # GEORGIAN CAPITAL LETTER DON
+10D4 ; [.21BD.0020.0002] # GEORGIAN LETTER EN
+2D04 ; [.21BE.0020.0002] # GEORGIAN SMALL LETTER EN
+10A4 ; [.21BE.0020.0008] # GEORGIAN CAPITAL LETTER EN
+10D5 ; [.21BF.0020.0002] # GEORGIAN LETTER VIN
+2D05 ; [.21C0.0020.0002] # GEORGIAN SMALL LETTER VIN
+10A5 ; [.21C0.0020.0008] # GEORGIAN CAPITAL LETTER VIN
+10D6 ; [.21C1.0020.0002] # GEORGIAN LETTER ZEN
+2D06 ; [.21C2.0020.0002] # GEORGIAN SMALL LETTER ZEN
+10A6 ; [.21C2.0020.0008] # GEORGIAN CAPITAL LETTER ZEN
+10F1 ; [.21C3.0020.0002] # GEORGIAN LETTER HE
+2D21 ; [.21C4.0020.0002] # GEORGIAN SMALL LETTER HE
+10C1 ; [.21C4.0020.0008] # GEORGIAN CAPITAL LETTER HE
+10D7 ; [.21C5.0020.0002] # GEORGIAN LETTER TAN
+2D07 ; [.21C6.0020.0002] # GEORGIAN SMALL LETTER TAN
+10A7 ; [.21C6.0020.0008] # GEORGIAN CAPITAL LETTER TAN
+10D8 ; [.21C7.0020.0002] # GEORGIAN LETTER IN
+2D08 ; [.21C8.0020.0002] # GEORGIAN SMALL LETTER IN
+10A8 ; [.21C8.0020.0008] # GEORGIAN CAPITAL LETTER IN
+10D9 ; [.21C9.0020.0002] # GEORGIAN LETTER KAN
+2D09 ; [.21CA.0020.0002] # GEORGIAN SMALL LETTER KAN
+10A9 ; [.21CA.0020.0008] # GEORGIAN CAPITAL LETTER KAN
+10DA ; [.21CB.0020.0002] # GEORGIAN LETTER LAS
+2D0A ; [.21CC.0020.0002] # GEORGIAN SMALL LETTER LAS
+10AA ; [.21CC.0020.0008] # GEORGIAN CAPITAL LETTER LAS
+10DB ; [.21CD.0020.0002] # GEORGIAN LETTER MAN
+2D0B ; [.21CE.0020.0002] # GEORGIAN SMALL LETTER MAN
+10AB ; [.21CE.0020.0008] # GEORGIAN CAPITAL LETTER MAN
+10DC ; [.21CF.0020.0002] # GEORGIAN LETTER NAR
+10FC ; [.21CF.0020.0014] # MODIFIER LETTER GEORGIAN NAR
+2D0C ; [.21D0.0020.0002] # GEORGIAN SMALL LETTER NAR
+10AC ; [.21D0.0020.0008] # GEORGIAN CAPITAL LETTER NAR
+10F2 ; [.21D1.0020.0002] # GEORGIAN LETTER HIE
+2D22 ; [.21D2.0020.0002] # GEORGIAN SMALL LETTER HIE
+10C2 ; [.21D2.0020.0008] # GEORGIAN CAPITAL LETTER HIE
+10DD ; [.21D3.0020.0002] # GEORGIAN LETTER ON
+2D0D ; [.21D4.0020.0002] # GEORGIAN SMALL LETTER ON
+10AD ; [.21D4.0020.0008] # GEORGIAN CAPITAL LETTER ON
+10DE ; [.21D5.0020.0002] # GEORGIAN LETTER PAR
+2D0E ; [.21D6.0020.0002] # GEORGIAN SMALL LETTER PAR
+10AE ; [.21D6.0020.0008] # GEORGIAN CAPITAL LETTER PAR
+10DF ; [.21D7.0020.0002] # GEORGIAN LETTER ZHAR
+2D0F ; [.21D8.0020.0002] # GEORGIAN SMALL LETTER ZHAR
+10AF ; [.21D8.0020.0008] # GEORGIAN CAPITAL LETTER ZHAR
+10E0 ; [.21D9.0020.0002] # GEORGIAN LETTER RAE
+2D10 ; [.21DA.0020.0002] # GEORGIAN SMALL LETTER RAE
+10B0 ; [.21DA.0020.0008] # GEORGIAN CAPITAL LETTER RAE
+10E1 ; [.21DB.0020.0002] # GEORGIAN LETTER SAN
+2D11 ; [.21DC.0020.0002] # GEORGIAN SMALL LETTER SAN
+10B1 ; [.21DC.0020.0008] # GEORGIAN CAPITAL LETTER SAN
+10E2 ; [.21DD.0020.0002] # GEORGIAN LETTER TAR
+2D12 ; [.21DE.0020.0002] # GEORGIAN SMALL LETTER TAR
+10B2 ; [.21DE.0020.0008] # GEORGIAN CAPITAL LETTER TAR
+10F3 ; [.21DF.0020.0002] # GEORGIAN LETTER WE
+2D23 ; [.21E0.0020.0002] # GEORGIAN SMALL LETTER WE
+10C3 ; [.21E0.0020.0008] # GEORGIAN CAPITAL LETTER WE
+10E3 ; [.21E1.0020.0002] # GEORGIAN LETTER UN
+2D13 ; [.21E2.0020.0002] # GEORGIAN SMALL LETTER UN
+10B3 ; [.21E2.0020.0008] # GEORGIAN CAPITAL LETTER UN
+10E4 ; [.21E3.0020.0002] # GEORGIAN LETTER PHAR
+2D14 ; [.21E4.0020.0002] # GEORGIAN SMALL LETTER PHAR
+10B4 ; [.21E4.0020.0008] # GEORGIAN CAPITAL LETTER PHAR
+10E5 ; [.21E5.0020.0002] # GEORGIAN LETTER KHAR
+2D15 ; [.21E6.0020.0002] # GEORGIAN SMALL LETTER KHAR
+10B5 ; [.21E6.0020.0008] # GEORGIAN CAPITAL LETTER KHAR
+10E6 ; [.21E7.0020.0002] # GEORGIAN LETTER GHAN
+2D16 ; [.21E8.0020.0002] # GEORGIAN SMALL LETTER GHAN
+10B6 ; [.21E8.0020.0008] # GEORGIAN CAPITAL LETTER GHAN
+10E7 ; [.21E9.0020.0002] # GEORGIAN LETTER QAR
+2D17 ; [.21EA.0020.0002] # GEORGIAN SMALL LETTER QAR
+10B7 ; [.21EA.0020.0008] # GEORGIAN CAPITAL LETTER QAR
+10E8 ; [.21EB.0020.0002] # GEORGIAN LETTER SHIN
+2D18 ; [.21EC.0020.0002] # GEORGIAN SMALL LETTER SHIN
+10B8 ; [.21EC.0020.0008] # GEORGIAN CAPITAL LETTER SHIN
+10E9 ; [.21ED.0020.0002] # GEORGIAN LETTER CHIN
+2D19 ; [.21EE.0020.0002] # GEORGIAN SMALL LETTER CHIN
+10B9 ; [.21EE.0020.0008] # GEORGIAN CAPITAL LETTER CHIN
+10EA ; [.21EF.0020.0002] # GEORGIAN LETTER CAN
+2D1A ; [.21F0.0020.0002] # GEORGIAN SMALL LETTER CAN
+10BA ; [.21F0.0020.0008] # GEORGIAN CAPITAL LETTER CAN
+10EB ; [.21F1.0020.0002] # GEORGIAN LETTER JIL
+2D1B ; [.21F2.0020.0002] # GEORGIAN SMALL LETTER JIL
+10BB ; [.21F2.0020.0008] # GEORGIAN CAPITAL LETTER JIL
+10EC ; [.21F3.0020.0002] # GEORGIAN LETTER CIL
+2D1C ; [.21F4.0020.0002] # GEORGIAN SMALL LETTER CIL
+10BC ; [.21F4.0020.0008] # GEORGIAN CAPITAL LETTER CIL
+10ED ; [.21F5.0020.0002] # GEORGIAN LETTER CHAR
+2D1D ; [.21F6.0020.0002] # GEORGIAN SMALL LETTER CHAR
+10BD ; [.21F6.0020.0008] # GEORGIAN CAPITAL LETTER CHAR
+10EE ; [.21F7.0020.0002] # GEORGIAN LETTER XAN
+2D1E ; [.21F8.0020.0002] # GEORGIAN SMALL LETTER XAN
+10BE ; [.21F8.0020.0008] # GEORGIAN CAPITAL LETTER XAN
+10F4 ; [.21F9.0020.0002] # GEORGIAN LETTER HAR
+2D24 ; [.21FA.0020.0002] # GEORGIAN SMALL LETTER HAR
+10C4 ; [.21FA.0020.0008] # GEORGIAN CAPITAL LETTER HAR
+10EF ; [.21FB.0020.0002] # GEORGIAN LETTER JHAN
+2D1F ; [.21FC.0020.0002] # GEORGIAN SMALL LETTER JHAN
+10BF ; [.21FC.0020.0008] # GEORGIAN CAPITAL LETTER JHAN
+10F0 ; [.21FD.0020.0002] # GEORGIAN LETTER HAE
+2D20 ; [.21FE.0020.0002] # GEORGIAN SMALL LETTER HAE
+10C0 ; [.21FE.0020.0008] # GEORGIAN CAPITAL LETTER HAE
+10F5 ; [.21FF.0020.0002] # GEORGIAN LETTER HOE
+2D25 ; [.2200.0020.0002] # GEORGIAN SMALL LETTER HOE
+10C5 ; [.2200.0020.0008] # GEORGIAN CAPITAL LETTER HOE
+10F6 ; [.2201.0020.0002] # GEORGIAN LETTER FI
+10F7 ; [.2202.0020.0002] # GEORGIAN LETTER YN
+2D27 ; [.2203.0020.0002] # GEORGIAN SMALL LETTER YN
+10C7 ; [.2203.0020.0008] # GEORGIAN CAPITAL LETTER YN
+10F8 ; [.2204.0020.0002] # GEORGIAN LETTER ELIFI
+10F9 ; [.2205.0020.0002] # GEORGIAN LETTER TURNED GAN
+10FA ; [.2206.0020.0002] # GEORGIAN LETTER AIN
+10FD ; [.2207.0020.0002] # GEORGIAN LETTER AEN
+2D2D ; [.2208.0020.0002] # GEORGIAN SMALL LETTER AEN
+10CD ; [.2208.0020.0008] # GEORGIAN CAPITAL LETTER AEN
+10FE ; [.2209.0020.0002] # GEORGIAN LETTER HARD SIGN
+10FF ; [.220A.0020.0002] # GEORGIAN LETTER LABIAL SIGN
+0561 ; [.220B.0020.0002] # ARMENIAN SMALL LETTER AYB
+0531 ; [.220B.0020.0008] # ARMENIAN CAPITAL LETTER AYB
+0562 ; [.220C.0020.0002] # ARMENIAN SMALL LETTER BEN
+0532 ; [.220C.0020.0008] # ARMENIAN CAPITAL LETTER BEN
+0563 ; [.220D.0020.0002] # ARMENIAN SMALL LETTER GIM
+0533 ; [.220D.0020.0008] # ARMENIAN CAPITAL LETTER GIM
+0564 ; [.220E.0020.0002] # ARMENIAN SMALL LETTER DA
+0534 ; [.220E.0020.0008] # ARMENIAN CAPITAL LETTER DA
+0565 ; [.220F.0020.0002] # ARMENIAN SMALL LETTER ECH
+0535 ; [.220F.0020.0008] # ARMENIAN CAPITAL LETTER ECH
+0587 ; [.220F.0020.0004][.222C.0020.0004] # ARMENIAN SMALL LIGATURE ECH YIWN
+0566 ; [.2210.0020.0002] # ARMENIAN SMALL LETTER ZA
+0536 ; [.2210.0020.0008] # ARMENIAN CAPITAL LETTER ZA
+0567 ; [.2211.0020.0002] # ARMENIAN SMALL LETTER EH
+0537 ; [.2211.0020.0008] # ARMENIAN CAPITAL LETTER EH
+0568 ; [.2212.0020.0002] # ARMENIAN SMALL LETTER ET
+0538 ; [.2212.0020.0008] # ARMENIAN CAPITAL LETTER ET
+0569 ; [.2213.0020.0002] # ARMENIAN SMALL LETTER TO
+0539 ; [.2213.0020.0008] # ARMENIAN CAPITAL LETTER TO
+056A ; [.2214.0020.0002] # ARMENIAN SMALL LETTER ZHE
+053A ; [.2214.0020.0008] # ARMENIAN CAPITAL LETTER ZHE
+056B ; [.2215.0020.0002] # ARMENIAN SMALL LETTER INI
+053B ; [.2215.0020.0008] # ARMENIAN CAPITAL LETTER INI
+056C ; [.2216.0020.0002] # ARMENIAN SMALL LETTER LIWN
+053C ; [.2216.0020.0008] # ARMENIAN CAPITAL LETTER LIWN
+056D ; [.2217.0020.0002] # ARMENIAN SMALL LETTER XEH
+053D ; [.2217.0020.0008] # ARMENIAN CAPITAL LETTER XEH
+056E ; [.2218.0020.0002] # ARMENIAN SMALL LETTER CA
+053E ; [.2218.0020.0008] # ARMENIAN CAPITAL LETTER CA
+056F ; [.2219.0020.0002] # ARMENIAN SMALL LETTER KEN
+053F ; [.2219.0020.0008] # ARMENIAN CAPITAL LETTER KEN
+0570 ; [.221A.0020.0002] # ARMENIAN SMALL LETTER HO
+0540 ; [.221A.0020.0008] # ARMENIAN CAPITAL LETTER HO
+0571 ; [.221B.0020.0002] # ARMENIAN SMALL LETTER JA
+0541 ; [.221B.0020.0008] # ARMENIAN CAPITAL LETTER JA
+0572 ; [.221C.0020.0002] # ARMENIAN SMALL LETTER GHAD
+0542 ; [.221C.0020.0008] # ARMENIAN CAPITAL LETTER GHAD
+0573 ; [.221D.0020.0002] # ARMENIAN SMALL LETTER CHEH
+0543 ; [.221D.0020.0008] # ARMENIAN CAPITAL LETTER CHEH
+0574 ; [.221E.0020.0002] # ARMENIAN SMALL LETTER MEN
+0544 ; [.221E.0020.0008] # ARMENIAN CAPITAL LETTER MEN
+FB14 ; [.221E.0020.0004][.220F.0020.0004] # ARMENIAN SMALL LIGATURE MEN ECH
+FB15 ; [.221E.0020.0004][.2215.0020.0004] # ARMENIAN SMALL LIGATURE MEN INI
+FB17 ; [.221E.0020.0004][.2217.0020.0004] # ARMENIAN SMALL LIGATURE MEN XEH
+FB13 ; [.221E.0020.0004][.2220.0020.0004] # ARMENIAN SMALL LIGATURE MEN NOW
+0575 ; [.221F.0020.0002] # ARMENIAN SMALL LETTER YI
+0545 ; [.221F.0020.0008] # ARMENIAN CAPITAL LETTER YI
+0576 ; [.2220.0020.0002] # ARMENIAN SMALL LETTER NOW
+0546 ; [.2220.0020.0008] # ARMENIAN CAPITAL LETTER NOW
+0577 ; [.2221.0020.0002] # ARMENIAN SMALL LETTER SHA
+0547 ; [.2221.0020.0008] # ARMENIAN CAPITAL LETTER SHA
+0578 ; [.2222.0020.0002] # ARMENIAN SMALL LETTER VO
+0548 ; [.2222.0020.0008] # ARMENIAN CAPITAL LETTER VO
+0579 ; [.2223.0020.0002] # ARMENIAN SMALL LETTER CHA
+0549 ; [.2223.0020.0008] # ARMENIAN CAPITAL LETTER CHA
+057A ; [.2224.0020.0002] # ARMENIAN SMALL LETTER PEH
+054A ; [.2224.0020.0008] # ARMENIAN CAPITAL LETTER PEH
+057B ; [.2225.0020.0002] # ARMENIAN SMALL LETTER JHEH
+054B ; [.2225.0020.0008] # ARMENIAN CAPITAL LETTER JHEH
+057C ; [.2226.0020.0002] # ARMENIAN SMALL LETTER RA
+054C ; [.2226.0020.0008] # ARMENIAN CAPITAL LETTER RA
+057D ; [.2227.0020.0002] # ARMENIAN SMALL LETTER SEH
+054D ; [.2227.0020.0008] # ARMENIAN CAPITAL LETTER SEH
+057E ; [.2228.0020.0002] # ARMENIAN SMALL LETTER VEW
+054E ; [.2228.0020.0008] # ARMENIAN CAPITAL LETTER VEW
+FB16 ; [.2228.0020.0004][.2220.0020.0004] # ARMENIAN SMALL LIGATURE VEW NOW
+057F ; [.2229.0020.0002] # ARMENIAN SMALL LETTER TIWN
+054F ; [.2229.0020.0008] # ARMENIAN CAPITAL LETTER TIWN
+0580 ; [.222A.0020.0002] # ARMENIAN SMALL LETTER REH
+0550 ; [.222A.0020.0008] # ARMENIAN CAPITAL LETTER REH
+0581 ; [.222B.0020.0002] # ARMENIAN SMALL LETTER CO
+0551 ; [.222B.0020.0008] # ARMENIAN CAPITAL LETTER CO
+0582 ; [.222C.0020.0002] # ARMENIAN SMALL LETTER YIWN
+0552 ; [.222C.0020.0008] # ARMENIAN CAPITAL LETTER YIWN
+0583 ; [.222D.0020.0002] # ARMENIAN SMALL LETTER PIWR
+0553 ; [.222D.0020.0008] # ARMENIAN CAPITAL LETTER PIWR
+0584 ; [.222E.0020.0002] # ARMENIAN SMALL LETTER KEH
+0554 ; [.222E.0020.0008] # ARMENIAN CAPITAL LETTER KEH
+0585 ; [.222F.0020.0002] # ARMENIAN SMALL LETTER OH
+0555 ; [.222F.0020.0008] # ARMENIAN CAPITAL LETTER OH
+0586 ; [.2230.0020.0002] # ARMENIAN SMALL LETTER FEH
+0556 ; [.2230.0020.0008] # ARMENIAN CAPITAL LETTER FEH
+0559 ; [.2231.0020.0002] # ARMENIAN MODIFIER LETTER LEFT HALF RING
+05D0 ; [.2232.0020.0002] # HEBREW LETTER ALEF
+2135 ; [.2232.0020.0004] # ALEF SYMBOL
+FB21 ; [.2232.0020.0005] # HEBREW LETTER WIDE ALEF
+FB2E ; [.2232.0020.0002][.0000.0059.0002] # HEBREW LETTER ALEF WITH PATAH
+FB2F ; [.2232.0020.0002][.0000.005A.0002] # HEBREW LETTER ALEF WITH QAMATS
+FB30 ; [.2232.0020.0002][.0000.005F.0002] # HEBREW LETTER ALEF WITH MAPIQ
+FB4F ; [.2232.0020.0004][.223D.0020.0004] # HEBREW LIGATURE ALEF LAMED
+05D1 ; [.2233.0020.0002] # HEBREW LETTER BET
+2136 ; [.2233.0020.0004] # BET SYMBOL
+FB31 ; [.2233.0020.0002][.0000.005F.0002] # HEBREW LETTER BET WITH DAGESH
+FB4C ; [.2233.0020.0002][.0000.0060.0002] # HEBREW LETTER BET WITH RAFE
+05D2 ; [.2234.0020.0002] # HEBREW LETTER GIMEL
+2137 ; [.2234.0020.0004] # GIMEL SYMBOL
+FB32 ; [.2234.0020.0002][.0000.005F.0002] # HEBREW LETTER GIMEL WITH DAGESH
+05D3 ; [.2235.0020.0002] # HEBREW LETTER DALET
+2138 ; [.2235.0020.0004] # DALET SYMBOL
+FB22 ; [.2235.0020.0005] # HEBREW LETTER WIDE DALET
+FB33 ; [.2235.0020.0002][.0000.005F.0002] # HEBREW LETTER DALET WITH DAGESH
+05D4 ; [.2236.0020.0002] # HEBREW LETTER HE
+FB23 ; [.2236.0020.0005] # HEBREW LETTER WIDE HE
+FB34 ; [.2236.0020.0002][.0000.005F.0002] # HEBREW LETTER HE WITH MAPIQ
+05D5 ; [.2237.0020.0002] # HEBREW LETTER VAV
+FB4B ; [.2237.0020.0002][.0000.005B.0002] # HEBREW LETTER VAV WITH HOLAM
+FB35 ; [.2237.0020.0002][.0000.005F.0002] # HEBREW LETTER VAV WITH DAGESH
+05F0 ; [.2237.0020.0004][.2237.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE VAV
+05F1 ; [.2237.0020.0004][.223B.0020.0004] # HEBREW LIGATURE YIDDISH VAV YOD
+05D6 ; [.2238.0020.0002] # HEBREW LETTER ZAYIN
+FB36 ; [.2238.0020.0002][.0000.005F.0002] # HEBREW LETTER ZAYIN WITH DAGESH
+05D7 ; [.2239.0020.0002] # HEBREW LETTER HET
+05D8 ; [.223A.0020.0002] # HEBREW LETTER TET
+FB38 ; [.223A.0020.0002][.0000.005F.0002] # HEBREW LETTER TET WITH DAGESH
+05D9 ; [.223B.0020.0002] # HEBREW LETTER YOD
+FB1D ; [.223B.0020.0002][.0000.0056.0002] # HEBREW LETTER YOD WITH HIRIQ
+FB39 ; [.223B.0020.0002][.0000.005F.0002] # HEBREW LETTER YOD WITH DAGESH
+05F2 ; [.223B.0020.0004][.223B.0020.0004] # HEBREW LIGATURE YIDDISH DOUBLE YOD
+FB1F ; [.223B.0020.0004][.223B.0020.0004][.0000.0059.0002] # HEBREW LIGATURE YIDDISH YOD YOD PATAH
+05DB ; [.223C.0020.0002] # HEBREW LETTER KAF
+FB24 ; [.223C.0020.0005] # HEBREW LETTER WIDE KAF
+05DA ; [.223C.0020.0019] # HEBREW LETTER FINAL KAF
+FB3B ; [.223C.0020.0002][.0000.005F.0002] # HEBREW LETTER KAF WITH DAGESH
+FB3A ; [.223C.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL KAF WITH DAGESH
+FB4D ; [.223C.0020.0002][.0000.0060.0002] # HEBREW LETTER KAF WITH RAFE
+05DC ; [.223D.0020.0002] # HEBREW LETTER LAMED
+FB25 ; [.223D.0020.0005] # HEBREW LETTER WIDE LAMED
+FB3C ; [.223D.0020.0002][.0000.005F.0002] # HEBREW LETTER LAMED WITH DAGESH
+05DE ; [.223E.0020.0002] # HEBREW LETTER MEM
+FB26 ; [.223E.0020.0005] # HEBREW LETTER WIDE FINAL MEM
+05DD ; [.223E.0020.0019] # HEBREW LETTER FINAL MEM
+FB3E ; [.223E.0020.0002][.0000.005F.0002] # HEBREW LETTER MEM WITH DAGESH
+05E0 ; [.223F.0020.0002] # HEBREW LETTER NUN
+05DF ; [.223F.0020.0019] # HEBREW LETTER FINAL NUN
+FB40 ; [.223F.0020.0002][.0000.005F.0002] # HEBREW LETTER NUN WITH DAGESH
+05E1 ; [.2240.0020.0002] # HEBREW LETTER SAMEKH
+FB41 ; [.2240.0020.0002][.0000.005F.0002] # HEBREW LETTER SAMEKH WITH DAGESH
+05E2 ; [.2241.0020.0002] # HEBREW LETTER AYIN
+FB20 ; [.2241.0020.0005] # HEBREW LETTER ALTERNATIVE AYIN
+05E4 ; [.2242.0020.0002] # HEBREW LETTER PE
+05E3 ; [.2242.0020.0019] # HEBREW LETTER FINAL PE
+FB44 ; [.2242.0020.0002][.0000.005F.0002] # HEBREW LETTER PE WITH DAGESH
+FB43 ; [.2242.0020.0019][.0000.005F.0002] # HEBREW LETTER FINAL PE WITH DAGESH
+FB4E ; [.2242.0020.0002][.0000.0060.0002] # HEBREW LETTER PE WITH RAFE
+05E6 ; [.2243.0020.0002] # HEBREW LETTER TSADI
+05E5 ; [.2243.0020.0019] # HEBREW LETTER FINAL TSADI
+FB46 ; [.2243.0020.0002][.0000.005F.0002] # HEBREW LETTER TSADI WITH DAGESH
+05E7 ; [.2244.0020.0002] # HEBREW LETTER QOF
+FB47 ; [.2244.0020.0002][.0000.005F.0002] # HEBREW LETTER QOF WITH DAGESH
+05E8 ; [.2245.0020.0002] # HEBREW LETTER RESH
+FB27 ; [.2245.0020.0005] # HEBREW LETTER WIDE RESH
+FB48 ; [.2245.0020.0002][.0000.005F.0002] # HEBREW LETTER RESH WITH DAGESH
+05E9 ; [.2246.0020.0002] # HEBREW LETTER SHIN
+FB2B ; [.2246.0020.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH SIN DOT
+FB2A ; [.2246.0020.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH SHIN DOT
+FB49 ; [.2246.0020.0002][.0000.005F.0002] # HEBREW LETTER SHIN WITH DAGESH
+FB2D ; [.2246.0020.0002][.0000.005F.0002][.0000.005D.0002] # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2C ; [.2246.0020.0002][.0000.005F.0002][.0000.005E.0002] # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+05EA ; [.2247.0020.0002] # HEBREW LETTER TAV
+FB28 ; [.2247.0020.0005] # HEBREW LETTER WIDE TAV
+FB4A ; [.2247.0020.0002][.0000.005F.0002] # HEBREW LETTER TAV WITH DAGESH
+10900 ; [.2248.0020.0002] # PHOENICIAN LETTER ALF
+10901 ; [.2249.0020.0002] # PHOENICIAN LETTER BET
+10902 ; [.224A.0020.0002] # PHOENICIAN LETTER GAML
+10903 ; [.224B.0020.0002] # PHOENICIAN LETTER DELT
+10904 ; [.224C.0020.0002] # PHOENICIAN LETTER HE
+10905 ; [.224D.0020.0002] # PHOENICIAN LETTER WAU
+10906 ; [.224E.0020.0002] # PHOENICIAN LETTER ZAI
+10907 ; [.224F.0020.0002] # PHOENICIAN LETTER HET
+10908 ; [.2250.0020.0002] # PHOENICIAN LETTER TET
+10909 ; [.2251.0020.0002] # PHOENICIAN LETTER YOD
+1090A ; [.2252.0020.0002] # PHOENICIAN LETTER KAF
+1090B ; [.2253.0020.0002] # PHOENICIAN LETTER LAMD
+1090C ; [.2254.0020.0002] # PHOENICIAN LETTER MEM
+1090D ; [.2255.0020.0002] # PHOENICIAN LETTER NUN
+1090E ; [.2256.0020.0002] # PHOENICIAN LETTER SEMK
+1090F ; [.2257.0020.0002] # PHOENICIAN LETTER AIN
+10910 ; [.2258.0020.0002] # PHOENICIAN LETTER PE
+10911 ; [.2259.0020.0002] # PHOENICIAN LETTER SADE
+10912 ; [.225A.0020.0002] # PHOENICIAN LETTER QOF
+10913 ; [.225B.0020.0002] # PHOENICIAN LETTER ROSH
+10914 ; [.225C.0020.0002] # PHOENICIAN LETTER SHIN
+10915 ; [.225D.0020.0002] # PHOENICIAN LETTER TAU
+0800 ; [.225E.0020.0002] # SAMARITAN LETTER ALAF
+0801 ; [.225F.0020.0002] # SAMARITAN LETTER BIT
+0802 ; [.2260.0020.0002] # SAMARITAN LETTER GAMAN
+0803 ; [.2261.0020.0002] # SAMARITAN LETTER DALAT
+0804 ; [.2262.0020.0002] # SAMARITAN LETTER IY
+0805 ; [.2263.0020.0002] # SAMARITAN LETTER BAA
+0806 ; [.2264.0020.0002] # SAMARITAN LETTER ZEN
+0807 ; [.2265.0020.0002] # SAMARITAN LETTER IT
+0808 ; [.2266.0020.0002] # SAMARITAN LETTER TIT
+0809 ; [.2267.0020.0002] # SAMARITAN LETTER YUT
+080A ; [.2268.0020.0002] # SAMARITAN LETTER KAAF
+080B ; [.2269.0020.0002] # SAMARITAN LETTER LABAT
+080C ; [.226A.0020.0002] # SAMARITAN LETTER MIM
+080D ; [.226B.0020.0002] # SAMARITAN LETTER NUN
+080E ; [.226C.0020.0002] # SAMARITAN LETTER SINGAAT
+080F ; [.226D.0020.0002] # SAMARITAN LETTER IN
+0810 ; [.226E.0020.0002] # SAMARITAN LETTER FI
+0811 ; [.226F.0020.0002] # SAMARITAN LETTER TSAADIY
+0812 ; [.2270.0020.0002] # SAMARITAN LETTER QUF
+0813 ; [.2271.0020.0002] # SAMARITAN LETTER RISH
+0814 ; [.2272.0020.0002] # SAMARITAN LETTER SHAN
+0815 ; [.2273.0020.0002] # SAMARITAN LETTER TAAF
+0816 ; [.2274.0020.0002] # SAMARITAN MARK IN
+0817 ; [.2275.0020.0002] # SAMARITAN MARK IN-ALAF
+081A ; [.2276.0020.0002] # SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+081B ; [.2277.0020.0002] # SAMARITAN MARK EPENTHETIC YUT
+0621 ; [.2278.0020.0002] # ARABIC LETTER HAMZA
+0674 ; [.2278.0020.0004] # ARABIC LETTER HIGH HAMZA
+FE80 ; [.2278.0020.001A] # ARABIC LETTER HAMZA ISOLATED FORM
+06FD ; [.2278.0020.0004][.0000.010C.0004] # ARABIC SIGN SINDHI AMPERSAND
+0622 ; [.2279.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
+0627 0653 ; [.2279.0020.0002] # ARABIC LETTER ALEF WITH MADDA ABOVE
+FE82 ; [.2279.0020.0019] # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+FE81 ; [.2279.0020.001A] # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+0623 ; [.227A.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+0627 0654 ; [.227A.0020.0002] # ARABIC LETTER ALEF WITH HAMZA ABOVE
+FE84 ; [.227A.0020.0019] # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+FE83 ; [.227A.0020.001A] # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+0672 ; [.227B.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE
+0671 ; [.227C.0020.0002] # ARABIC LETTER ALEF WASLA
+FB51 ; [.227C.0020.0019] # ARABIC LETTER ALEF WASLA FINAL FORM
+FB50 ; [.227C.0020.001A] # ARABIC LETTER ALEF WASLA ISOLATED FORM
+0624 ; [.227D.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
+0648 0654 ; [.227D.0020.0002] # ARABIC LETTER WAW WITH HAMZA ABOVE
+FE86 ; [.227D.0020.0019] # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+FE85 ; [.227D.0020.001A] # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+0625 ; [.227E.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
+0627 0655 ; [.227E.0020.0002] # ARABIC LETTER ALEF WITH HAMZA BELOW
+FE88 ; [.227E.0020.0019] # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+FE87 ; [.227E.0020.001A] # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM
+0673 ; [.227F.0020.0002] # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW
+0773 ; [.2280.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
+0774 ; [.2281.0020.0002] # ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+0626 ; [.2282.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
+064A 0654 ; [.2282.0020.0002] # ARABIC LETTER YEH WITH HAMZA ABOVE
+FE8B ; [.2282.0020.0017] # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+FE8C ; [.2282.0020.0018] # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FE8A ; [.2282.0020.0019] # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+FE89 ; [.2282.0020.001A] # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+FBEB ; [.2282.0020.0019][.2286.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+FBEA ; [.2282.0020.001A][.2286.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM
+FC97 ; [.2282.0020.0017][.229D.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC00 ; [.2282.0020.001A][.229D.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC98 ; [.2282.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC01 ; [.2282.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC99 ; [.2282.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC64 ; [.2282.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65 ; [.2282.0020.0019][.22BF.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC9A ; [.2282.0020.0017][.2318.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FCDF ; [.2282.0020.0018][.2318.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+FC66 ; [.2282.0020.0019][.2318.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC02 ; [.2282.0020.001A][.2318.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC67 ; [.2282.0020.0019][.231C.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC9B ; [.2282.0020.0017][.2325.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FCE0 ; [.2282.0020.0018][.2325.0020.0018] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FBED ; [.2282.0020.0019][.232A.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+FBEC ; [.2282.0020.001A][.232A.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM
+FBEF ; [.2282.0020.0019][.232B.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+FBEE ; [.2282.0020.001A][.232B.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM
+FBF3 ; [.2282.0020.0019][.232E.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+FBF2 ; [.2282.0020.001A][.232E.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM
+FBF1 ; [.2282.0020.0019][.232F.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+FBF0 ; [.2282.0020.001A][.232F.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM
+FBF5 ; [.2282.0020.0019][.2330.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+FBF4 ; [.2282.0020.001A][.2330.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM
+FBFB ; [.2282.0020.0017][.2339.0020.0017] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFA ; [.2282.0020.0019][.2339.0020.0019] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC68 ; [.2282.0020.0019][.2339.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FBF9 ; [.2282.0020.001A][.2339.0020.001A] # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC03 ; [.2282.0020.001A][.2339.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC69 ; [.2282.0020.0019][.233A.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC04 ; [.2282.0020.001A][.233A.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FBF8 ; [.2282.0020.0017][.233E.0020.0017] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+FBF7 ; [.2282.0020.0019][.233E.0020.0019] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM
+FBF6 ; [.2282.0020.001A][.233E.0020.001A] # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM
+08A8 ; [.2283.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE
+08A9 ; [.2284.0020.0002] # ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE
+08AC ; [.2285.0020.0002] # ARABIC LETTER ROHINGYA YEH
+0627 ; [.2286.0020.0002] # ARABIC LETTER ALEF
+08AD ; [.2286.0020.0004] # ARABIC LETTER LOW ALEF
+1EE00 ; [.2286.0020.0005] # ARABIC MATHEMATICAL ALEF
+1EE80 ; [.2286.0020.0005] # ARABIC MATHEMATICAL LOOPED ALEF
+FE8E ; [.2286.0020.0019] # ARABIC LETTER ALEF FINAL FORM
+FE8D ; [.2286.0020.001A] # ARABIC LETTER ALEF ISOLATED FORM
+FD3C ; [.2286.0020.0019][.0000.006D.0019] # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM
+FD3D ; [.2286.0020.001A][.0000.006D.001A] # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+0675 ; [.2286.0020.0004][.2278.0020.0004] # ARABIC LETTER HIGH HAMZA ALEF
+FDF3 ; [.2286.0020.001A][.22FC.0020.001A][.2288.0020.001A][.22BE.0020.001A] # ARABIC LIGATURE AKBAR ISOLATED FORM
+FDF2 ; [.2286.0020.001A][.2311.0020.001A][.2311.0020.001A][.2325.0020.001A] # ARABIC LIGATURE ALLAH ISOLATED FORM
+066E ; [.2287.0020.0002] # ARABIC LETTER DOTLESS BEH
+1EE1C ; [.2287.0020.0005] # ARABIC MATHEMATICAL DOTLESS BEH
+1EE7C ; [.2287.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+0628 ; [.2288.0020.0002] # ARABIC LETTER BEH
+1EE01 ; [.2288.0020.0005] # ARABIC MATHEMATICAL BEH
+1EE21 ; [.2288.0020.0005] # ARABIC MATHEMATICAL INITIAL BEH
+1EE61 ; [.2288.0020.0005] # ARABIC MATHEMATICAL STRETCHED BEH
+1EE81 ; [.2288.0020.0005] # ARABIC MATHEMATICAL LOOPED BEH
+1EEA1 ; [.2288.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
+FE91 ; [.2288.0020.0017] # ARABIC LETTER BEH INITIAL FORM
+FE92 ; [.2288.0020.0018] # ARABIC LETTER BEH MEDIAL FORM
+FE90 ; [.2288.0020.0019] # ARABIC LETTER BEH FINAL FORM
+FE8F ; [.2288.0020.001A] # ARABIC LETTER BEH ISOLATED FORM
+FC9C ; [.2288.0020.0017][.229D.0020.0017] # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+FC05 ; [.2288.0020.001A][.229D.0020.001A] # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+FC9D ; [.2288.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+FC06 ; [.2288.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+FDC2 ; [.2288.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+FC9E ; [.2288.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+FC07 ; [.2288.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+FD9E ; [.2288.0020.0019][.22A5.0020.0019][.233A.0020.0019] # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+FC6A ; [.2288.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE BEH WITH REH FINAL FORM
+FC6B ; [.2288.0020.0019][.22BF.0020.0019] # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+FC9F ; [.2288.0020.0017][.2318.0020.0017] # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+FCE1 ; [.2288.0020.0018][.2318.0020.0018] # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+FC6C ; [.2288.0020.0019][.2318.0020.0019] # ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+FC08 ; [.2288.0020.001A][.2318.0020.001A] # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+FC6D ; [.2288.0020.0019][.231C.0020.0019] # ARABIC LIGATURE BEH WITH NOON FINAL FORM
+FCA0 ; [.2288.0020.0017][.2325.0020.0017] # ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+FCE2 ; [.2288.0020.0018][.2325.0020.0018] # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+FC6E ; [.2288.0020.0019][.2339.0020.0019] # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+FC09 ; [.2288.0020.001A][.2339.0020.001A] # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+FC6F ; [.2288.0020.0019][.233A.0020.0019] # ARABIC LIGATURE BEH WITH YEH FINAL FORM
+FC0A ; [.2288.0020.001A][.233A.0020.001A] # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+067B ; [.2289.0020.0002] # ARABIC LETTER BEEH
+FB54 ; [.2289.0020.0017] # ARABIC LETTER BEEH INITIAL FORM
+FB55 ; [.2289.0020.0018] # ARABIC LETTER BEEH MEDIAL FORM
+FB53 ; [.2289.0020.0019] # ARABIC LETTER BEEH FINAL FORM
+FB52 ; [.2289.0020.001A] # ARABIC LETTER BEEH ISOLATED FORM
+067E ; [.228A.0020.0002] # ARABIC LETTER PEH
+FB58 ; [.228A.0020.0017] # ARABIC LETTER PEH INITIAL FORM
+FB59 ; [.228A.0020.0018] # ARABIC LETTER PEH MEDIAL FORM
+FB57 ; [.228A.0020.0019] # ARABIC LETTER PEH FINAL FORM
+FB56 ; [.228A.0020.001A] # ARABIC LETTER PEH ISOLATED FORM
+0680 ; [.228B.0020.0002] # ARABIC LETTER BEHEH
+FB5C ; [.228B.0020.0017] # ARABIC LETTER BEHEH INITIAL FORM
+FB5D ; [.228B.0020.0018] # ARABIC LETTER BEHEH MEDIAL FORM
+FB5B ; [.228B.0020.0019] # ARABIC LETTER BEHEH FINAL FORM
+FB5A ; [.228B.0020.001A] # ARABIC LETTER BEHEH ISOLATED FORM
+0750 ; [.228C.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW
+0751 ; [.228D.0020.0002] # ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE
+0752 ; [.228E.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW
+0753 ; [.228F.0020.0002] # ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE
+0754 ; [.2290.0020.0002] # ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE
+0755 ; [.2291.0020.0002] # ARABIC LETTER BEH WITH INVERTED SMALL V BELOW
+08A0 ; [.2292.0020.0002] # ARABIC LETTER BEH WITH SMALL V BELOW
+0756 ; [.2293.0020.0002] # ARABIC LETTER BEH WITH SMALL V
+08A1 ; [.2294.0020.0002] # ARABIC LETTER BEH WITH HAMZA ABOVE
+0629 ; [.2295.0020.0002] # ARABIC LETTER TEH MARBUTA
+FE94 ; [.2295.0020.0019] # ARABIC LETTER TEH MARBUTA FINAL FORM
+FE93 ; [.2295.0020.001A] # ARABIC LETTER TEH MARBUTA ISOLATED FORM
+062A ; [.2296.0020.0002] # ARABIC LETTER TEH
+1EE15 ; [.2296.0020.0005] # ARABIC MATHEMATICAL TEH
+1EE35 ; [.2296.0020.0005] # ARABIC MATHEMATICAL INITIAL TEH
+1EE75 ; [.2296.0020.0005] # ARABIC MATHEMATICAL STRETCHED TEH
+1EE95 ; [.2296.0020.0005] # ARABIC MATHEMATICAL LOOPED TEH
+1EEB5 ; [.2296.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
+FE97 ; [.2296.0020.0017] # ARABIC LETTER TEH INITIAL FORM
+FE98 ; [.2296.0020.0018] # ARABIC LETTER TEH MEDIAL FORM
+FE96 ; [.2296.0020.0019] # ARABIC LETTER TEH FINAL FORM
+FE95 ; [.2296.0020.001A] # ARABIC LETTER TEH ISOLATED FORM
+FCA1 ; [.2296.0020.0017][.229D.0020.0017] # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+FC0B ; [.2296.0020.001A][.229D.0020.001A] # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+FD50 ; [.2296.0020.0017][.229D.0020.0017][.2318.0020.0017] # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+FDA0 ; [.2296.0020.0019][.229D.0020.0019][.2339.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9F ; [.2296.0020.0019][.229D.0020.0019][.233A.0020.0019] # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+FCA2 ; [.2296.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+FC0C ; [.2296.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+FD52 ; [.2296.0020.0017][.22A4.0020.0017][.229D.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+FD51 ; [.2296.0020.0019][.22A4.0020.0019][.229D.0020.0019] # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM
+FD53 ; [.2296.0020.0017][.22A4.0020.0017][.2318.0020.0017] # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+FCA3 ; [.2296.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+FC0D ; [.2296.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+FD54 ; [.2296.0020.0017][.22A5.0020.0017][.2318.0020.0017] # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+FDA2 ; [.2296.0020.0019][.22A5.0020.0019][.2339.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA1 ; [.2296.0020.0019][.22A5.0020.0019][.233A.0020.0019] # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+FC70 ; [.2296.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE TEH WITH REH FINAL FORM
+FC71 ; [.2296.0020.0019][.22BF.0020.0019] # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+FCA4 ; [.2296.0020.0017][.2318.0020.0017] # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+FCE3 ; [.2296.0020.0018][.2318.0020.0018] # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+FC72 ; [.2296.0020.0019][.2318.0020.0019] # ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+FC0E ; [.2296.0020.001A][.2318.0020.001A] # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+FD55 ; [.2296.0020.0017][.2318.0020.0017][.229D.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56 ; [.2296.0020.0017][.2318.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+FD57 ; [.2296.0020.0017][.2318.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+FDA4 ; [.2296.0020.0019][.2318.0020.0019][.2339.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA3 ; [.2296.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+FC73 ; [.2296.0020.0019][.231C.0020.0019] # ARABIC LIGATURE TEH WITH NOON FINAL FORM
+FCA5 ; [.2296.0020.0017][.2325.0020.0017] # ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+FCE4 ; [.2296.0020.0018][.2325.0020.0018] # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+FC74 ; [.2296.0020.0019][.2339.0020.0019] # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+FC0F ; [.2296.0020.001A][.2339.0020.001A] # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+FC75 ; [.2296.0020.0019][.233A.0020.0019] # ARABIC LIGATURE TEH WITH YEH FINAL FORM
+FC10 ; [.2296.0020.001A][.233A.0020.001A] # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+062B ; [.2297.0020.0002] # ARABIC LETTER THEH
+1EE16 ; [.2297.0020.0005] # ARABIC MATHEMATICAL THEH
+1EE36 ; [.2297.0020.0005] # ARABIC MATHEMATICAL INITIAL THEH
+1EE76 ; [.2297.0020.0005] # ARABIC MATHEMATICAL STRETCHED THEH
+1EE96 ; [.2297.0020.0005] # ARABIC MATHEMATICAL LOOPED THEH
+1EEB6 ; [.2297.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
+FE9B ; [.2297.0020.0017] # ARABIC LETTER THEH INITIAL FORM
+FE9C ; [.2297.0020.0018] # ARABIC LETTER THEH MEDIAL FORM
+FE9A ; [.2297.0020.0019] # ARABIC LETTER THEH FINAL FORM
+FE99 ; [.2297.0020.001A] # ARABIC LETTER THEH ISOLATED FORM
+FC11 ; [.2297.0020.001A][.229D.0020.001A] # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+FC76 ; [.2297.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE THEH WITH REH FINAL FORM
+FC77 ; [.2297.0020.0019][.22BF.0020.0019] # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+FCA6 ; [.2297.0020.0017][.2318.0020.0017] # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+FCE5 ; [.2297.0020.0018][.2318.0020.0018] # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+FC78 ; [.2297.0020.0019][.2318.0020.0019] # ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+FC12 ; [.2297.0020.001A][.2318.0020.001A] # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+FC79 ; [.2297.0020.0019][.231C.0020.0019] # ARABIC LIGATURE THEH WITH NOON FINAL FORM
+FCE6 ; [.2297.0020.0018][.2325.0020.0018] # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+FC7A ; [.2297.0020.0019][.2339.0020.0019] # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+FC13 ; [.2297.0020.001A][.2339.0020.001A] # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+FC7B ; [.2297.0020.0019][.233A.0020.0019] # ARABIC LIGATURE THEH WITH YEH FINAL FORM
+FC14 ; [.2297.0020.001A][.233A.0020.001A] # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+0679 ; [.2298.0020.0002] # ARABIC LETTER TTEH
+FB68 ; [.2298.0020.0017] # ARABIC LETTER TTEH INITIAL FORM
+FB69 ; [.2298.0020.0018] # ARABIC LETTER TTEH MEDIAL FORM
+FB67 ; [.2298.0020.0019] # ARABIC LETTER TTEH FINAL FORM
+FB66 ; [.2298.0020.001A] # ARABIC LETTER TTEH ISOLATED FORM
+067A ; [.2299.0020.0002] # ARABIC LETTER TTEHEH
+FB60 ; [.2299.0020.0017] # ARABIC LETTER TTEHEH INITIAL FORM
+FB61 ; [.2299.0020.0018] # ARABIC LETTER TTEHEH MEDIAL FORM
+FB5F ; [.2299.0020.0019] # ARABIC LETTER TTEHEH FINAL FORM
+FB5E ; [.2299.0020.001A] # ARABIC LETTER TTEHEH ISOLATED FORM
+067C ; [.229A.0020.0002] # ARABIC LETTER TEH WITH RING
+067D ; [.229B.0020.0002] # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS
+067F ; [.229C.0020.0002] # ARABIC LETTER TEHEH
+FB64 ; [.229C.0020.0017] # ARABIC LETTER TEHEH INITIAL FORM
+FB65 ; [.229C.0020.0018] # ARABIC LETTER TEHEH MEDIAL FORM
+FB63 ; [.229C.0020.0019] # ARABIC LETTER TEHEH FINAL FORM
+FB62 ; [.229C.0020.001A] # ARABIC LETTER TEHEH ISOLATED FORM
+062C ; [.229D.0020.0002] # ARABIC LETTER JEEM
+1EE02 ; [.229D.0020.0005] # ARABIC MATHEMATICAL JEEM
+1EE22 ; [.229D.0020.0005] # ARABIC MATHEMATICAL INITIAL JEEM
+1EE42 ; [.229D.0020.0005] # ARABIC MATHEMATICAL TAILED JEEM
+1EE62 ; [.229D.0020.0005] # ARABIC MATHEMATICAL STRETCHED JEEM
+1EE82 ; [.229D.0020.0005] # ARABIC MATHEMATICAL LOOPED JEEM
+1EEA2 ; [.229D.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
+FE9F ; [.229D.0020.0017] # ARABIC LETTER JEEM INITIAL FORM
+FEA0 ; [.229D.0020.0018] # ARABIC LETTER JEEM MEDIAL FORM
+FE9E ; [.229D.0020.0019] # ARABIC LETTER JEEM FINAL FORM
+FE9D ; [.229D.0020.001A] # ARABIC LETTER JEEM ISOLATED FORM
+FCA7 ; [.229D.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+FC15 ; [.229D.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+FDA6 ; [.229D.0020.0019][.22A4.0020.0019][.2339.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDBE ; [.229D.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+FDFB ; [.229D.0020.001A][.2311.0020.001A][*0209.0020.001A][.229D.0020.001A][.2311.0020.001A][.2286.0020.001A][.2311.0020.001A][.2325.0020.001A] # ARABIC LIGATURE JALLAJALALOUHOU
+FCA8 ; [.229D.0020.0017][.2318.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+FC16 ; [.229D.0020.001A][.2318.0020.001A] # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+FD59 ; [.229D.0020.0017][.2318.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+FD58 ; [.229D.0020.0019][.2318.0020.0019][.22A4.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM
+FDA7 ; [.229D.0020.0019][.2318.0020.0019][.2339.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5 ; [.229D.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+FD1D ; [.229D.0020.0019][.2339.0020.0019] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+FD01 ; [.229D.0020.001A][.2339.0020.001A] # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD1E ; [.229D.0020.0019][.233A.0020.0019] # ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+FD02 ; [.229D.0020.001A][.233A.0020.001A] # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+0683 ; [.229E.0020.0002] # ARABIC LETTER NYEH
+FB78 ; [.229E.0020.0017] # ARABIC LETTER NYEH INITIAL FORM
+FB79 ; [.229E.0020.0018] # ARABIC LETTER NYEH MEDIAL FORM
+FB77 ; [.229E.0020.0019] # ARABIC LETTER NYEH FINAL FORM
+FB76 ; [.229E.0020.001A] # ARABIC LETTER NYEH ISOLATED FORM
+0684 ; [.229F.0020.0002] # ARABIC LETTER DYEH
+FB74 ; [.229F.0020.0017] # ARABIC LETTER DYEH INITIAL FORM
+FB75 ; [.229F.0020.0018] # ARABIC LETTER DYEH MEDIAL FORM
+FB73 ; [.229F.0020.0019] # ARABIC LETTER DYEH FINAL FORM
+FB72 ; [.229F.0020.001A] # ARABIC LETTER DYEH ISOLATED FORM
+0686 ; [.22A0.0020.0002] # ARABIC LETTER TCHEH
+FB7C ; [.22A0.0020.0017] # ARABIC LETTER TCHEH INITIAL FORM
+FB7D ; [.22A0.0020.0018] # ARABIC LETTER TCHEH MEDIAL FORM
+FB7B ; [.22A0.0020.0019] # ARABIC LETTER TCHEH FINAL FORM
+FB7A ; [.22A0.0020.001A] # ARABIC LETTER TCHEH ISOLATED FORM
+06BF ; [.22A1.0020.0002] # ARABIC LETTER TCHEH WITH DOT ABOVE
+0687 ; [.22A2.0020.0002] # ARABIC LETTER TCHEHEH
+FB80 ; [.22A2.0020.0017] # ARABIC LETTER TCHEHEH INITIAL FORM
+FB81 ; [.22A2.0020.0018] # ARABIC LETTER TCHEHEH MEDIAL FORM
+FB7F ; [.22A2.0020.0019] # ARABIC LETTER TCHEHEH FINAL FORM
+FB7E ; [.22A2.0020.001A] # ARABIC LETTER TCHEHEH ISOLATED FORM
+08A2 ; [.22A3.0020.0002] # ARABIC LETTER JEEM WITH TWO DOTS ABOVE
+062D ; [.22A4.0020.0002] # ARABIC LETTER HAH
+1EE07 ; [.22A4.0020.0005] # ARABIC MATHEMATICAL HAH
+1EE27 ; [.22A4.0020.0005] # ARABIC MATHEMATICAL INITIAL HAH
+1EE47 ; [.22A4.0020.0005] # ARABIC MATHEMATICAL TAILED HAH
+1EE67 ; [.22A4.0020.0005] # ARABIC MATHEMATICAL STRETCHED HAH
+1EE87 ; [.22A4.0020.0005] # ARABIC MATHEMATICAL LOOPED HAH
+1EEA7 ; [.22A4.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
+FEA3 ; [.22A4.0020.0017] # ARABIC LETTER HAH INITIAL FORM
+FEA4 ; [.22A4.0020.0018] # ARABIC LETTER HAH MEDIAL FORM
+FEA2 ; [.22A4.0020.0019] # ARABIC LETTER HAH FINAL FORM
+FEA1 ; [.22A4.0020.001A] # ARABIC LETTER HAH ISOLATED FORM
+FCA9 ; [.22A4.0020.0017][.229D.0020.0017] # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+FC17 ; [.22A4.0020.001A][.229D.0020.001A] # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+FDBF ; [.22A4.0020.0019][.229D.0020.0019][.233A.0020.0019] # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+FCAA ; [.22A4.0020.0017][.2318.0020.0017] # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+FC18 ; [.22A4.0020.001A][.2318.0020.001A] # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+FD5B ; [.22A4.0020.0019][.2318.0020.0019][.2339.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5A ; [.22A4.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+FD1B ; [.22A4.0020.0019][.2339.0020.0019] # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+FCFF ; [.22A4.0020.001A][.2339.0020.001A] # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+FD1C ; [.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE HAH WITH YEH FINAL FORM
+FD00 ; [.22A4.0020.001A][.233A.0020.001A] # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+062E ; [.22A5.0020.0002] # ARABIC LETTER KHAH
+1EE17 ; [.22A5.0020.0005] # ARABIC MATHEMATICAL KHAH
+1EE37 ; [.22A5.0020.0005] # ARABIC MATHEMATICAL INITIAL KHAH
+1EE57 ; [.22A5.0020.0005] # ARABIC MATHEMATICAL TAILED KHAH
+1EE77 ; [.22A5.0020.0005] # ARABIC MATHEMATICAL STRETCHED KHAH
+1EE97 ; [.22A5.0020.0005] # ARABIC MATHEMATICAL LOOPED KHAH
+1EEB7 ; [.22A5.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
+FEA7 ; [.22A5.0020.0017] # ARABIC LETTER KHAH INITIAL FORM
+FEA8 ; [.22A5.0020.0018] # ARABIC LETTER KHAH MEDIAL FORM
+FEA6 ; [.22A5.0020.0019] # ARABIC LETTER KHAH FINAL FORM
+FEA5 ; [.22A5.0020.001A] # ARABIC LETTER KHAH ISOLATED FORM
+FCAB ; [.22A5.0020.0017][.229D.0020.0017] # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+FC19 ; [.22A5.0020.001A][.229D.0020.001A] # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+FC1A ; [.22A5.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+FCAC ; [.22A5.0020.0017][.2318.0020.0017] # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+FC1B ; [.22A5.0020.001A][.2318.0020.001A] # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+FD1F ; [.22A5.0020.0019][.2339.0020.0019] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+FD03 ; [.22A5.0020.001A][.2339.0020.001A] # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD20 ; [.22A5.0020.0019][.233A.0020.0019] # ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+FD04 ; [.22A5.0020.001A][.233A.0020.001A] # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+0681 ; [.22A6.0020.0002] # ARABIC LETTER HAH WITH HAMZA ABOVE
+0682 ; [.22A7.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE
+0685 ; [.22A8.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS ABOVE
+0757 ; [.22A9.0020.0002] # ARABIC LETTER HAH WITH TWO DOTS ABOVE
+0758 ; [.22AA.0020.0002] # ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
+076E ; [.22AB.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW
+076F ; [.22AC.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
+0772 ; [.22AD.0020.0002] # ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE
+077C ; [.22AE.0020.0002] # ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
+062F ; [.22AF.0020.0002] # ARABIC LETTER DAL
+1EE03 ; [.22AF.0020.0005] # ARABIC MATHEMATICAL DAL
+1EE83 ; [.22AF.0020.0005] # ARABIC MATHEMATICAL LOOPED DAL
+1EEA3 ; [.22AF.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+FEAA ; [.22AF.0020.0019] # ARABIC LETTER DAL FINAL FORM
+FEA9 ; [.22AF.0020.001A] # ARABIC LETTER DAL ISOLATED FORM
+0630 ; [.22B0.0020.0002] # ARABIC LETTER THAL
+1EE18 ; [.22B0.0020.0005] # ARABIC MATHEMATICAL THAL
+1EE98 ; [.22B0.0020.0005] # ARABIC MATHEMATICAL LOOPED THAL
+1EEB8 ; [.22B0.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
+FEAC ; [.22B0.0020.0019] # ARABIC LETTER THAL FINAL FORM
+FEAB ; [.22B0.0020.001A] # ARABIC LETTER THAL ISOLATED FORM
+FC5B ; [.22B0.0020.001A][.0000.0098.001A] # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+0688 ; [.22B1.0020.0002] # ARABIC LETTER DDAL
+FB89 ; [.22B1.0020.0019] # ARABIC LETTER DDAL FINAL FORM
+FB88 ; [.22B1.0020.001A] # ARABIC LETTER DDAL ISOLATED FORM
+0689 ; [.22B2.0020.0002] # ARABIC LETTER DAL WITH RING
+068A ; [.22B3.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW
+068B ; [.22B4.0020.0002] # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH
+068C ; [.22B5.0020.0002] # ARABIC LETTER DAHAL
+FB85 ; [.22B5.0020.0019] # ARABIC LETTER DAHAL FINAL FORM
+FB84 ; [.22B5.0020.001A] # ARABIC LETTER DAHAL ISOLATED FORM
+068D ; [.22B6.0020.0002] # ARABIC LETTER DDAHAL
+FB83 ; [.22B6.0020.0019] # ARABIC LETTER DDAHAL FINAL FORM
+FB82 ; [.22B6.0020.001A] # ARABIC LETTER DDAHAL ISOLATED FORM
+08AE ; [.22B7.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS BELOW
+068E ; [.22B8.0020.0002] # ARABIC LETTER DUL
+FB87 ; [.22B8.0020.0019] # ARABIC LETTER DUL FINAL FORM
+FB86 ; [.22B8.0020.001A] # ARABIC LETTER DUL ISOLATED FORM
+068F ; [.22B9.0020.0002] # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
+0690 ; [.22BA.0020.0002] # ARABIC LETTER DAL WITH FOUR DOTS ABOVE
+06EE ; [.22BB.0020.0002] # ARABIC LETTER DAL WITH INVERTED V
+0759 ; [.22BC.0020.0002] # ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH
+075A ; [.22BD.0020.0002] # ARABIC LETTER DAL WITH INVERTED SMALL V BELOW
+0631 ; [.22BE.0020.0002] # ARABIC LETTER REH
+1EE13 ; [.22BE.0020.0005] # ARABIC MATHEMATICAL REH
+1EE93 ; [.22BE.0020.0005] # ARABIC MATHEMATICAL LOOPED REH
+1EEB3 ; [.22BE.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK REH
+FEAE ; [.22BE.0020.0019] # ARABIC LETTER REH FINAL FORM
+FEAD ; [.22BE.0020.001A] # ARABIC LETTER REH ISOLATED FORM
+FC5C ; [.22BE.0020.001A][.0000.0098.001A] # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FDF6 ; [.22BE.0020.001A][.22D0.0020.001A][.232B.0020.001A][.2311.0020.001A] # ARABIC LIGATURE RASOUL ISOLATED FORM
+FDFC ; [.22BE.0020.001A][.233B.0020.001A][.2286.0020.001A][.2311.0020.001A] # RIAL SIGN
+0632 ; [.22BF.0020.0002] # ARABIC LETTER ZAIN
+1EE06 ; [.22BF.0020.0005] # ARABIC MATHEMATICAL ZAIN
+1EE86 ; [.22BF.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAIN
+1EEA6 ; [.22BF.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
+FEB0 ; [.22BF.0020.0019] # ARABIC LETTER ZAIN FINAL FORM
+FEAF ; [.22BF.0020.001A] # ARABIC LETTER ZAIN ISOLATED FORM
+0691 ; [.22C0.0020.0002] # ARABIC LETTER RREH
+FB8D ; [.22C0.0020.0019] # ARABIC LETTER RREH FINAL FORM
+FB8C ; [.22C0.0020.001A] # ARABIC LETTER RREH ISOLATED FORM
+0692 ; [.22C1.0020.0002] # ARABIC LETTER REH WITH SMALL V
+0693 ; [.22C2.0020.0002] # ARABIC LETTER REH WITH RING
+0694 ; [.22C3.0020.0002] # ARABIC LETTER REH WITH DOT BELOW
+0695 ; [.22C4.0020.0002] # ARABIC LETTER REH WITH SMALL V BELOW
+0696 ; [.22C5.0020.0002] # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE
+0697 ; [.22C6.0020.0002] # ARABIC LETTER REH WITH TWO DOTS ABOVE
+0698 ; [.22C7.0020.0002] # ARABIC LETTER JEH
+FB8B ; [.22C7.0020.0019] # ARABIC LETTER JEH FINAL FORM
+FB8A ; [.22C7.0020.001A] # ARABIC LETTER JEH ISOLATED FORM
+0699 ; [.22C8.0020.0002] # ARABIC LETTER REH WITH FOUR DOTS ABOVE
+06EF ; [.22C9.0020.0002] # ARABIC LETTER REH WITH INVERTED V
+075B ; [.22CA.0020.0002] # ARABIC LETTER REH WITH STROKE
+076B ; [.22CB.0020.0002] # ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE
+076C ; [.22CC.0020.0002] # ARABIC LETTER REH WITH HAMZA ABOVE
+0771 ; [.22CD.0020.0002] # ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS
+08AA ; [.22CE.0020.0002] # ARABIC LETTER REH WITH LOOP
+08B2 ; [.22CF.0020.0002] # ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+0633 ; [.22D0.0020.0002] # ARABIC LETTER SEEN
+1EE0E ; [.22D0.0020.0005] # ARABIC MATHEMATICAL SEEN
+1EE2E ; [.22D0.0020.0005] # ARABIC MATHEMATICAL INITIAL SEEN
+1EE4E ; [.22D0.0020.0005] # ARABIC MATHEMATICAL TAILED SEEN
+1EE6E ; [.22D0.0020.0005] # ARABIC MATHEMATICAL STRETCHED SEEN
+1EE8E ; [.22D0.0020.0005] # ARABIC MATHEMATICAL LOOPED SEEN
+1EEAE ; [.22D0.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
+FEB3 ; [.22D0.0020.0017] # ARABIC LETTER SEEN INITIAL FORM
+FEB4 ; [.22D0.0020.0018] # ARABIC LETTER SEEN MEDIAL FORM
+FEB2 ; [.22D0.0020.0019] # ARABIC LETTER SEEN FINAL FORM
+FEB1 ; [.22D0.0020.001A] # ARABIC LETTER SEEN ISOLATED FORM
+FCAD ; [.22D0.0020.0017][.229D.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+FD34 ; [.22D0.0020.0018][.229D.0020.0018] # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+FC1C ; [.22D0.0020.001A][.229D.0020.001A] # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+FD5D ; [.22D0.0020.0017][.229D.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E ; [.22D0.0020.0019][.229D.0020.0019][.2339.0020.0019] # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FCAE ; [.22D0.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+FD35 ; [.22D0.0020.0018][.22A4.0020.0018] # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+FC1D ; [.22D0.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+FD5C ; [.22D0.0020.0017][.22A4.0020.0017][.229D.0020.0017] # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+FCAF ; [.22D0.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+FD36 ; [.22D0.0020.0018][.22A5.0020.0018] # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+FC1E ; [.22D0.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+FDA8 ; [.22D0.0020.0019][.22A5.0020.0019][.2339.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDC6 ; [.22D0.0020.0019][.22A5.0020.0019][.233A.0020.0019] # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+FD2A ; [.22D0.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE SEEN WITH REH FINAL FORM
+FD0E ; [.22D0.0020.001A][.22BE.0020.001A] # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+FCB0 ; [.22D0.0020.0017][.2318.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+FCE7 ; [.22D0.0020.0018][.2318.0020.0018] # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+FC1F ; [.22D0.0020.001A][.2318.0020.001A] # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+FD61 ; [.22D0.0020.0017][.2318.0020.0017][.229D.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD60 ; [.22D0.0020.0017][.2318.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+FD5F ; [.22D0.0020.0019][.2318.0020.0019][.22A4.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM
+FD63 ; [.22D0.0020.0017][.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+FD62 ; [.22D0.0020.0019][.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM
+FD31 ; [.22D0.0020.0017][.2325.0020.0017] # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+FCE8 ; [.22D0.0020.0018][.2325.0020.0018] # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+FD17 ; [.22D0.0020.0019][.2339.0020.0019] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+FCFB ; [.22D0.0020.001A][.2339.0020.001A] # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+FD18 ; [.22D0.0020.0019][.233A.0020.0019] # ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+FCFC ; [.22D0.0020.001A][.233A.0020.001A] # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+0634 ; [.22D1.0020.0002] # ARABIC LETTER SHEEN
+1EE14 ; [.22D1.0020.0005] # ARABIC MATHEMATICAL SHEEN
+1EE34 ; [.22D1.0020.0005] # ARABIC MATHEMATICAL INITIAL SHEEN
+1EE54 ; [.22D1.0020.0005] # ARABIC MATHEMATICAL TAILED SHEEN
+1EE74 ; [.22D1.0020.0005] # ARABIC MATHEMATICAL STRETCHED SHEEN
+1EE94 ; [.22D1.0020.0005] # ARABIC MATHEMATICAL LOOPED SHEEN
+1EEB4 ; [.22D1.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
+FEB7 ; [.22D1.0020.0017] # ARABIC LETTER SHEEN INITIAL FORM
+FEB8 ; [.22D1.0020.0018] # ARABIC LETTER SHEEN MEDIAL FORM
+FEB6 ; [.22D1.0020.0019] # ARABIC LETTER SHEEN FINAL FORM
+FEB5 ; [.22D1.0020.001A] # ARABIC LETTER SHEEN ISOLATED FORM
+FD2D ; [.22D1.0020.0017][.229D.0020.0017] # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+FD37 ; [.22D1.0020.0018][.229D.0020.0018] # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+FD25 ; [.22D1.0020.0019][.229D.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+FD09 ; [.22D1.0020.001A][.229D.0020.001A] # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+FD69 ; [.22D1.0020.0019][.229D.0020.0019][.233A.0020.0019] # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+FD2E ; [.22D1.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+FD38 ; [.22D1.0020.0018][.22A4.0020.0018] # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+FD26 ; [.22D1.0020.0019][.22A4.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+FD0A ; [.22D1.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+FD68 ; [.22D1.0020.0017][.22A4.0020.0017][.2318.0020.0017] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+FD67 ; [.22D1.0020.0019][.22A4.0020.0019][.2318.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM
+FDAA ; [.22D1.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+FD2F ; [.22D1.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+FD39 ; [.22D1.0020.0018][.22A5.0020.0018] # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+FD27 ; [.22D1.0020.0019][.22A5.0020.0019] # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+FD0B ; [.22D1.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+FD29 ; [.22D1.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+FD0D ; [.22D1.0020.001A][.22BE.0020.001A] # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+FD30 ; [.22D1.0020.0017][.2318.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+FCE9 ; [.22D1.0020.0018][.2318.0020.0018] # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+FD28 ; [.22D1.0020.0019][.2318.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+FD0C ; [.22D1.0020.001A][.2318.0020.001A] # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+FD6B ; [.22D1.0020.0017][.2318.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+FD6A ; [.22D1.0020.0019][.2318.0020.0019][.22A5.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM
+FD6D ; [.22D1.0020.0017][.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+FD6C ; [.22D1.0020.0019][.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM
+FD32 ; [.22D1.0020.0017][.2325.0020.0017] # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+FCEA ; [.22D1.0020.0018][.2325.0020.0018] # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+FD19 ; [.22D1.0020.0019][.2339.0020.0019] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+FCFD ; [.22D1.0020.001A][.2339.0020.001A] # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FD1A ; [.22D1.0020.0019][.233A.0020.0019] # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+FCFE ; [.22D1.0020.001A][.233A.0020.001A] # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+069A ; [.22D2.0020.0002] # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
+069B ; [.22D3.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW
+069C ; [.22D4.0020.0002] # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE
+06FA ; [.22D5.0020.0002] # ARABIC LETTER SHEEN WITH DOT BELOW
+075C ; [.22D6.0020.0002] # ARABIC LETTER SEEN WITH FOUR DOTS ABOVE
+076D ; [.22D7.0020.0002] # ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
+0770 ; [.22D8.0020.0002] # ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS
+077D ; [.22D9.0020.0002] # ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE
+077E ; [.22DA.0020.0002] # ARABIC LETTER SEEN WITH INVERTED V
+0635 ; [.22DB.0020.0002] # ARABIC LETTER SAD
+1EE11 ; [.22DB.0020.0005] # ARABIC MATHEMATICAL SAD
+1EE31 ; [.22DB.0020.0005] # ARABIC MATHEMATICAL INITIAL SAD
+1EE51 ; [.22DB.0020.0005] # ARABIC MATHEMATICAL TAILED SAD
+1EE71 ; [.22DB.0020.0005] # ARABIC MATHEMATICAL STRETCHED SAD
+1EE91 ; [.22DB.0020.0005] # ARABIC MATHEMATICAL LOOPED SAD
+1EEB1 ; [.22DB.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
+FEBB ; [.22DB.0020.0017] # ARABIC LETTER SAD INITIAL FORM
+FEBC ; [.22DB.0020.0018] # ARABIC LETTER SAD MEDIAL FORM
+FEBA ; [.22DB.0020.0019] # ARABIC LETTER SAD FINAL FORM
+FEB9 ; [.22DB.0020.001A] # ARABIC LETTER SAD ISOLATED FORM
+FCB1 ; [.22DB.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+FC20 ; [.22DB.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+FD65 ; [.22DB.0020.0017][.22A4.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+FD64 ; [.22DB.0020.0019][.22A4.0020.0019][.22A4.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM
+FDA9 ; [.22DB.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+FCB2 ; [.22DB.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+FD2B ; [.22DB.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE SAD WITH REH FINAL FORM
+FD0F ; [.22DB.0020.001A][.22BE.0020.001A] # ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+FDF5 ; [.22DB.0020.001A][.2311.0020.001A][.22E5.0020.001A][.2318.0020.001A] # ARABIC LIGATURE SALAM ISOLATED FORM
+FDF9 ; [.22DB.0020.001A][.2311.0020.001A][.2339.0020.001A] # ARABIC LIGATURE SALLA ISOLATED FORM
+FDFA ; [.22DB.0020.001A][.2311.0020.001A][.2339.0020.001A][*0209.0020.001A][.2286.0020.001A][.2311.0020.001A][.2311.0020.001A][.2325.0020.001A][*0209.0020.001A][.22E5.0020.001A][.2311.0020.001A][.233A.0020.001A][.2325.0020.001A][*0209.0020.001A][.232B.0020.001A][.22D0.0020.001A][.2311.0020.001A][.2318.0020.001A] # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+FDF0 ; [.22DB.0020.001A][.2311.0020.001A][.2347.0020.001A] # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FCB3 ; [.22DB.0020.0017][.2318.0020.0017] # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+FC21 ; [.22DB.0020.001A][.2318.0020.001A] # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+FDC5 ; [.22DB.0020.0017][.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+FD66 ; [.22DB.0020.0019][.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+FD21 ; [.22DB.0020.0019][.2339.0020.0019] # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+FD05 ; [.22DB.0020.001A][.2339.0020.001A] # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+FD22 ; [.22DB.0020.0019][.233A.0020.0019] # ARABIC LIGATURE SAD WITH YEH FINAL FORM
+FD06 ; [.22DB.0020.001A][.233A.0020.001A] # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+0636 ; [.22DC.0020.0002] # ARABIC LETTER DAD
+1EE19 ; [.22DC.0020.0005] # ARABIC MATHEMATICAL DAD
+1EE39 ; [.22DC.0020.0005] # ARABIC MATHEMATICAL INITIAL DAD
+1EE59 ; [.22DC.0020.0005] # ARABIC MATHEMATICAL TAILED DAD
+1EE79 ; [.22DC.0020.0005] # ARABIC MATHEMATICAL STRETCHED DAD
+1EE99 ; [.22DC.0020.0005] # ARABIC MATHEMATICAL LOOPED DAD
+1EEB9 ; [.22DC.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
+FEBF ; [.22DC.0020.0017] # ARABIC LETTER DAD INITIAL FORM
+FEC0 ; [.22DC.0020.0018] # ARABIC LETTER DAD MEDIAL FORM
+FEBE ; [.22DC.0020.0019] # ARABIC LETTER DAD FINAL FORM
+FEBD ; [.22DC.0020.001A] # ARABIC LETTER DAD ISOLATED FORM
+FCB4 ; [.22DC.0020.0017][.229D.0020.0017] # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+FC22 ; [.22DC.0020.001A][.229D.0020.001A] # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+FCB5 ; [.22DC.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+FC23 ; [.22DC.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+FD6E ; [.22DC.0020.0019][.22A4.0020.0019][.2339.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDAB ; [.22DC.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+FCB6 ; [.22DC.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+FC24 ; [.22DC.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+FD70 ; [.22DC.0020.0017][.22A5.0020.0017][.2318.0020.0017] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+FD6F ; [.22DC.0020.0019][.22A5.0020.0019][.2318.0020.0019] # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM
+FD2C ; [.22DC.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE DAD WITH REH FINAL FORM
+FD10 ; [.22DC.0020.001A][.22BE.0020.001A] # ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+FCB7 ; [.22DC.0020.0017][.2318.0020.0017] # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+FC25 ; [.22DC.0020.001A][.2318.0020.001A] # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+FD23 ; [.22DC.0020.0019][.2339.0020.0019] # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+FD07 ; [.22DC.0020.001A][.2339.0020.001A] # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+FD24 ; [.22DC.0020.0019][.233A.0020.0019] # ARABIC LIGATURE DAD WITH YEH FINAL FORM
+FD08 ; [.22DC.0020.001A][.233A.0020.001A] # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+069D ; [.22DD.0020.0002] # ARABIC LETTER SAD WITH TWO DOTS BELOW
+08AF ; [.22DE.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS BELOW
+069E ; [.22DF.0020.0002] # ARABIC LETTER SAD WITH THREE DOTS ABOVE
+06FB ; [.22E0.0020.0002] # ARABIC LETTER DAD WITH DOT BELOW
+0637 ; [.22E1.0020.0002] # ARABIC LETTER TAH
+1EE08 ; [.22E1.0020.0005] # ARABIC MATHEMATICAL TAH
+1EE68 ; [.22E1.0020.0005] # ARABIC MATHEMATICAL STRETCHED TAH
+1EE88 ; [.22E1.0020.0005] # ARABIC MATHEMATICAL LOOPED TAH
+1EEA8 ; [.22E1.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
+FEC3 ; [.22E1.0020.0017] # ARABIC LETTER TAH INITIAL FORM
+FEC4 ; [.22E1.0020.0018] # ARABIC LETTER TAH MEDIAL FORM
+FEC2 ; [.22E1.0020.0019] # ARABIC LETTER TAH FINAL FORM
+FEC1 ; [.22E1.0020.001A] # ARABIC LETTER TAH ISOLATED FORM
+FCB8 ; [.22E1.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+FC26 ; [.22E1.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+FD33 ; [.22E1.0020.0017][.2318.0020.0017] # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+FD3A ; [.22E1.0020.0018][.2318.0020.0018] # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+FC27 ; [.22E1.0020.001A][.2318.0020.001A] # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+FD72 ; [.22E1.0020.0017][.2318.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+FD71 ; [.22E1.0020.0019][.2318.0020.0019][.22A4.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM
+FD73 ; [.22E1.0020.0017][.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74 ; [.22E1.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+FD11 ; [.22E1.0020.0019][.2339.0020.0019] # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+FCF5 ; [.22E1.0020.001A][.2339.0020.001A] # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+FD12 ; [.22E1.0020.0019][.233A.0020.0019] # ARABIC LIGATURE TAH WITH YEH FINAL FORM
+FCF6 ; [.22E1.0020.001A][.233A.0020.001A] # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+0638 ; [.22E2.0020.0002] # ARABIC LETTER ZAH
+1EE1A ; [.22E2.0020.0005] # ARABIC MATHEMATICAL ZAH
+1EE7A ; [.22E2.0020.0005] # ARABIC MATHEMATICAL STRETCHED ZAH
+1EE9A ; [.22E2.0020.0005] # ARABIC MATHEMATICAL LOOPED ZAH
+1EEBA ; [.22E2.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
+FEC7 ; [.22E2.0020.0017] # ARABIC LETTER ZAH INITIAL FORM
+FEC8 ; [.22E2.0020.0018] # ARABIC LETTER ZAH MEDIAL FORM
+FEC6 ; [.22E2.0020.0019] # ARABIC LETTER ZAH FINAL FORM
+FEC5 ; [.22E2.0020.001A] # ARABIC LETTER ZAH ISOLATED FORM
+FCB9 ; [.22E2.0020.0017][.2318.0020.0017] # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+FD3B ; [.22E2.0020.0018][.2318.0020.0018] # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+FC28 ; [.22E2.0020.001A][.2318.0020.001A] # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+069F ; [.22E3.0020.0002] # ARABIC LETTER TAH WITH THREE DOTS ABOVE
+08A3 ; [.22E4.0020.0002] # ARABIC LETTER TAH WITH TWO DOTS ABOVE
+0639 ; [.22E5.0020.0002] # ARABIC LETTER AIN
+1EE0F ; [.22E5.0020.0005] # ARABIC MATHEMATICAL AIN
+1EE2F ; [.22E5.0020.0005] # ARABIC MATHEMATICAL INITIAL AIN
+1EE4F ; [.22E5.0020.0005] # ARABIC MATHEMATICAL TAILED AIN
+1EE6F ; [.22E5.0020.0005] # ARABIC MATHEMATICAL STRETCHED AIN
+1EE8F ; [.22E5.0020.0005] # ARABIC MATHEMATICAL LOOPED AIN
+1EEAF ; [.22E5.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
+FECB ; [.22E5.0020.0017] # ARABIC LETTER AIN INITIAL FORM
+FECC ; [.22E5.0020.0018] # ARABIC LETTER AIN MEDIAL FORM
+FECA ; [.22E5.0020.0019] # ARABIC LETTER AIN FINAL FORM
+FEC9 ; [.22E5.0020.001A] # ARABIC LETTER AIN ISOLATED FORM
+FCBA ; [.22E5.0020.0017][.229D.0020.0017] # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+FC29 ; [.22E5.0020.001A][.229D.0020.001A] # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+FDC4 ; [.22E5.0020.0017][.229D.0020.0017][.2318.0020.0017] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+FD75 ; [.22E5.0020.0019][.229D.0020.0019][.2318.0020.0019] # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+FDF7 ; [.22E5.0020.001A][.2311.0020.001A][.233A.0020.001A][.2325.0020.001A] # ARABIC LIGATURE ALAYHE ISOLATED FORM
+FCBB ; [.22E5.0020.0017][.2318.0020.0017] # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+FC2A ; [.22E5.0020.001A][.2318.0020.001A] # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+FD77 ; [.22E5.0020.0017][.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+FD76 ; [.22E5.0020.0019][.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM
+FD78 ; [.22E5.0020.0019][.2318.0020.0019][.2339.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDB6 ; [.22E5.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+FD13 ; [.22E5.0020.0019][.2339.0020.0019] # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+FCF7 ; [.22E5.0020.001A][.2339.0020.001A] # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+FD14 ; [.22E5.0020.0019][.233A.0020.0019] # ARABIC LIGATURE AIN WITH YEH FINAL FORM
+FCF8 ; [.22E5.0020.001A][.233A.0020.001A] # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+063A ; [.22E6.0020.0002] # ARABIC LETTER GHAIN
+1EE1B ; [.22E6.0020.0005] # ARABIC MATHEMATICAL GHAIN
+1EE3B ; [.22E6.0020.0005] # ARABIC MATHEMATICAL INITIAL GHAIN
+1EE5B ; [.22E6.0020.0005] # ARABIC MATHEMATICAL TAILED GHAIN
+1EE7B ; [.22E6.0020.0005] # ARABIC MATHEMATICAL STRETCHED GHAIN
+1EE9B ; [.22E6.0020.0005] # ARABIC MATHEMATICAL LOOPED GHAIN
+1EEBB ; [.22E6.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+FECF ; [.22E6.0020.0017] # ARABIC LETTER GHAIN INITIAL FORM
+FED0 ; [.22E6.0020.0018] # ARABIC LETTER GHAIN MEDIAL FORM
+FECE ; [.22E6.0020.0019] # ARABIC LETTER GHAIN FINAL FORM
+FECD ; [.22E6.0020.001A] # ARABIC LETTER GHAIN ISOLATED FORM
+FCBC ; [.22E6.0020.0017][.229D.0020.0017] # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+FC2B ; [.22E6.0020.001A][.229D.0020.001A] # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+FCBD ; [.22E6.0020.0017][.2318.0020.0017] # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+FC2C ; [.22E6.0020.001A][.2318.0020.001A] # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+FD79 ; [.22E6.0020.0019][.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7B ; [.22E6.0020.0019][.2318.0020.0019][.2339.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7A ; [.22E6.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+FD15 ; [.22E6.0020.0019][.2339.0020.0019] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+FCF9 ; [.22E6.0020.001A][.2339.0020.001A] # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FD16 ; [.22E6.0020.0019][.233A.0020.0019] # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+FCFA ; [.22E6.0020.001A][.233A.0020.001A] # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+06A0 ; [.22E7.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS ABOVE
+06FC ; [.22E8.0020.0002] # ARABIC LETTER GHAIN WITH DOT BELOW
+075D ; [.22E9.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS ABOVE
+075E ; [.22EA.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE
+075F ; [.22EB.0020.0002] # ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE
+08B3 ; [.22EC.0020.0002] # ARABIC LETTER AIN WITH THREE DOTS BELOW
+0641 ; [.22ED.0020.0002] # ARABIC LETTER FEH
+1EE10 ; [.22ED.0020.0005] # ARABIC MATHEMATICAL FEH
+1EE30 ; [.22ED.0020.0005] # ARABIC MATHEMATICAL INITIAL FEH
+1EE70 ; [.22ED.0020.0005] # ARABIC MATHEMATICAL STRETCHED FEH
+1EE90 ; [.22ED.0020.0005] # ARABIC MATHEMATICAL LOOPED FEH
+1EEB0 ; [.22ED.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
+FED3 ; [.22ED.0020.0017] # ARABIC LETTER FEH INITIAL FORM
+FED4 ; [.22ED.0020.0018] # ARABIC LETTER FEH MEDIAL FORM
+FED2 ; [.22ED.0020.0019] # ARABIC LETTER FEH FINAL FORM
+FED1 ; [.22ED.0020.001A] # ARABIC LETTER FEH ISOLATED FORM
+FCBE ; [.22ED.0020.0017][.229D.0020.0017] # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+FC2D ; [.22ED.0020.001A][.229D.0020.001A] # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+FCBF ; [.22ED.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+FC2E ; [.22ED.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+FCC0 ; [.22ED.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+FC2F ; [.22ED.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+FD7D ; [.22ED.0020.0017][.22A5.0020.0017][.2318.0020.0017] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+FD7C ; [.22ED.0020.0019][.22A5.0020.0019][.2318.0020.0019] # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM
+FCC1 ; [.22ED.0020.0017][.2318.0020.0017] # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+FC30 ; [.22ED.0020.001A][.2318.0020.001A] # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+FDC1 ; [.22ED.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+FC7C ; [.22ED.0020.0019][.2339.0020.0019] # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+FC31 ; [.22ED.0020.001A][.2339.0020.001A] # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+FC7D ; [.22ED.0020.0019][.233A.0020.0019] # ARABIC LIGATURE FEH WITH YEH FINAL FORM
+FC32 ; [.22ED.0020.001A][.233A.0020.001A] # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+06A1 ; [.22EE.0020.0002] # ARABIC LETTER DOTLESS FEH
+1EE1E ; [.22EE.0020.0005] # ARABIC MATHEMATICAL DOTLESS FEH
+1EE7E ; [.22EE.0020.0005] # ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+06A2 ; [.22EF.0020.0002] # ARABIC LETTER FEH WITH DOT MOVED BELOW
+06A3 ; [.22F0.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW
+06A4 ; [.22F1.0020.0002] # ARABIC LETTER VEH
+FB6C ; [.22F1.0020.0017] # ARABIC LETTER VEH INITIAL FORM
+FB6D ; [.22F1.0020.0018] # ARABIC LETTER VEH MEDIAL FORM
+FB6B ; [.22F1.0020.0019] # ARABIC LETTER VEH FINAL FORM
+FB6A ; [.22F1.0020.001A] # ARABIC LETTER VEH ISOLATED FORM
+08A4 ; [.22F2.0020.0002] # ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE
+06A5 ; [.22F3.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS BELOW
+06A6 ; [.22F4.0020.0002] # ARABIC LETTER PEHEH
+FB70 ; [.22F4.0020.0017] # ARABIC LETTER PEHEH INITIAL FORM
+FB71 ; [.22F4.0020.0018] # ARABIC LETTER PEHEH MEDIAL FORM
+FB6F ; [.22F4.0020.0019] # ARABIC LETTER PEHEH FINAL FORM
+FB6E ; [.22F4.0020.001A] # ARABIC LETTER PEHEH ISOLATED FORM
+0760 ; [.22F5.0020.0002] # ARABIC LETTER FEH WITH TWO DOTS BELOW
+0761 ; [.22F6.0020.0002] # ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW
+066F ; [.22F7.0020.0002] # ARABIC LETTER DOTLESS QAF
+1EE1F ; [.22F7.0020.0005] # ARABIC MATHEMATICAL DOTLESS QAF
+1EE5F ; [.22F7.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS QAF
+0642 ; [.22F8.0020.0002] # ARABIC LETTER QAF
+1EE12 ; [.22F8.0020.0005] # ARABIC MATHEMATICAL QAF
+1EE32 ; [.22F8.0020.0005] # ARABIC MATHEMATICAL INITIAL QAF
+1EE52 ; [.22F8.0020.0005] # ARABIC MATHEMATICAL TAILED QAF
+1EE72 ; [.22F8.0020.0005] # ARABIC MATHEMATICAL STRETCHED QAF
+1EE92 ; [.22F8.0020.0005] # ARABIC MATHEMATICAL LOOPED QAF
+1EEB2 ; [.22F8.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
+FED7 ; [.22F8.0020.0017] # ARABIC LETTER QAF INITIAL FORM
+FED8 ; [.22F8.0020.0018] # ARABIC LETTER QAF MEDIAL FORM
+FED6 ; [.22F8.0020.0019] # ARABIC LETTER QAF FINAL FORM
+FED5 ; [.22F8.0020.001A] # ARABIC LETTER QAF ISOLATED FORM
+FCC2 ; [.22F8.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+FC33 ; [.22F8.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+FDF1 ; [.22F8.0020.001A][.2311.0020.001A][.2347.0020.001A] # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FCC3 ; [.22F8.0020.0017][.2318.0020.0017] # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+FC34 ; [.22F8.0020.001A][.2318.0020.001A] # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+FDB4 ; [.22F8.0020.0017][.2318.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+FD7E ; [.22F8.0020.0019][.2318.0020.0019][.22A4.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+FD7F ; [.22F8.0020.0019][.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+FDB2 ; [.22F8.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+FC7E ; [.22F8.0020.0019][.2339.0020.0019] # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+FC35 ; [.22F8.0020.001A][.2339.0020.001A] # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+FC7F ; [.22F8.0020.0019][.233A.0020.0019] # ARABIC LIGATURE QAF WITH YEH FINAL FORM
+FC36 ; [.22F8.0020.001A][.233A.0020.001A] # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+06A7 ; [.22F9.0020.0002] # ARABIC LETTER QAF WITH DOT ABOVE
+06A8 ; [.22FA.0020.0002] # ARABIC LETTER QAF WITH THREE DOTS ABOVE
+08A5 ; [.22FB.0020.0002] # ARABIC LETTER QAF WITH DOT BELOW
+0643 ; [.22FC.0020.0002] # ARABIC LETTER KAF
+1EE0A ; [.22FC.0020.0005] # ARABIC MATHEMATICAL KAF
+1EE2A ; [.22FC.0020.0005] # ARABIC MATHEMATICAL INITIAL KAF
+1EE6A ; [.22FC.0020.0005] # ARABIC MATHEMATICAL STRETCHED KAF
+FEDB ; [.22FC.0020.0017] # ARABIC LETTER KAF INITIAL FORM
+FEDC ; [.22FC.0020.0018] # ARABIC LETTER KAF MEDIAL FORM
+FEDA ; [.22FC.0020.0019] # ARABIC LETTER KAF FINAL FORM
+FED9 ; [.22FC.0020.001A] # ARABIC LETTER KAF ISOLATED FORM
+FC80 ; [.22FC.0020.0019][.2286.0020.0019] # ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+FC37 ; [.22FC.0020.001A][.2286.0020.001A] # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+FCC4 ; [.22FC.0020.0017][.229D.0020.0017] # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+FC38 ; [.22FC.0020.001A][.229D.0020.001A] # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+FCC5 ; [.22FC.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+FC39 ; [.22FC.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+FCC6 ; [.22FC.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+FC3A ; [.22FC.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+FCC7 ; [.22FC.0020.0017][.2311.0020.0017] # ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+FCEB ; [.22FC.0020.0018][.2311.0020.0018] # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+FC81 ; [.22FC.0020.0019][.2311.0020.0019] # ARABIC LIGATURE KAF WITH LAM FINAL FORM
+FC3B ; [.22FC.0020.001A][.2311.0020.001A] # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+FCC8 ; [.22FC.0020.0017][.2318.0020.0017] # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+FCEC ; [.22FC.0020.0018][.2318.0020.0018] # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+FC82 ; [.22FC.0020.0019][.2318.0020.0019] # ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+FC3C ; [.22FC.0020.001A][.2318.0020.001A] # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+FDC3 ; [.22FC.0020.0017][.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+FDBB ; [.22FC.0020.0019][.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+FDB7 ; [.22FC.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+FC83 ; [.22FC.0020.0019][.2339.0020.0019] # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+FC3D ; [.22FC.0020.001A][.2339.0020.001A] # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+FC84 ; [.22FC.0020.0019][.233A.0020.0019] # ARABIC LIGATURE KAF WITH YEH FINAL FORM
+FC3E ; [.22FC.0020.001A][.233A.0020.001A] # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+06A9 ; [.22FD.0020.0002] # ARABIC LETTER KEHEH
+FB90 ; [.22FD.0020.0017] # ARABIC LETTER KEHEH INITIAL FORM
+FB91 ; [.22FD.0020.0018] # ARABIC LETTER KEHEH MEDIAL FORM
+FB8F ; [.22FD.0020.0019] # ARABIC LETTER KEHEH FINAL FORM
+FB8E ; [.22FD.0020.001A] # ARABIC LETTER KEHEH ISOLATED FORM
+06AA ; [.22FE.0020.0002] # ARABIC LETTER SWASH KAF
+06AB ; [.22FF.0020.0002] # ARABIC LETTER KAF WITH RING
+06AC ; [.2300.0020.0002] # ARABIC LETTER KAF WITH DOT ABOVE
+077F ; [.2301.0020.0002] # ARABIC LETTER KAF WITH TWO DOTS ABOVE
+06AD ; [.2302.0020.0002] # ARABIC LETTER NG
+FBD5 ; [.2302.0020.0017] # ARABIC LETTER NG INITIAL FORM
+FBD6 ; [.2302.0020.0018] # ARABIC LETTER NG MEDIAL FORM
+FBD4 ; [.2302.0020.0019] # ARABIC LETTER NG FINAL FORM
+FBD3 ; [.2302.0020.001A] # ARABIC LETTER NG ISOLATED FORM
+06AE ; [.2303.0020.0002] # ARABIC LETTER KAF WITH THREE DOTS BELOW
+08B4 ; [.2304.0020.0002] # ARABIC LETTER KAF WITH DOT BELOW
+06AF ; [.2305.0020.0002] # ARABIC LETTER GAF
+FB94 ; [.2305.0020.0017] # ARABIC LETTER GAF INITIAL FORM
+FB95 ; [.2305.0020.0018] # ARABIC LETTER GAF MEDIAL FORM
+FB93 ; [.2305.0020.0019] # ARABIC LETTER GAF FINAL FORM
+FB92 ; [.2305.0020.001A] # ARABIC LETTER GAF ISOLATED FORM
+08B0 ; [.2306.0020.0002] # ARABIC LETTER GAF WITH INVERTED STROKE
+06B0 ; [.2307.0020.0002] # ARABIC LETTER GAF WITH RING
+06B1 ; [.2308.0020.0002] # ARABIC LETTER NGOEH
+FB9C ; [.2308.0020.0017] # ARABIC LETTER NGOEH INITIAL FORM
+FB9D ; [.2308.0020.0018] # ARABIC LETTER NGOEH MEDIAL FORM
+FB9B ; [.2308.0020.0019] # ARABIC LETTER NGOEH FINAL FORM
+FB9A ; [.2308.0020.001A] # ARABIC LETTER NGOEH ISOLATED FORM
+06B2 ; [.2309.0020.0002] # ARABIC LETTER GAF WITH TWO DOTS BELOW
+06B3 ; [.230A.0020.0002] # ARABIC LETTER GUEH
+FB98 ; [.230A.0020.0017] # ARABIC LETTER GUEH INITIAL FORM
+FB99 ; [.230A.0020.0018] # ARABIC LETTER GUEH MEDIAL FORM
+FB97 ; [.230A.0020.0019] # ARABIC LETTER GUEH FINAL FORM
+FB96 ; [.230A.0020.001A] # ARABIC LETTER GUEH ISOLATED FORM
+06B4 ; [.230B.0020.0002] # ARABIC LETTER GAF WITH THREE DOTS ABOVE
+0762 ; [.230C.0020.0002] # ARABIC LETTER KEHEH WITH DOT ABOVE
+063B ; [.230D.0020.0002] # ARABIC LETTER KEHEH WITH TWO DOTS ABOVE
+063C ; [.230E.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS BELOW
+0763 ; [.230F.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS ABOVE
+0764 ; [.2310.0020.0002] # ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW
+0644 ; [.2311.0020.0002] # ARABIC LETTER LAM
+1EE0B ; [.2311.0020.0005] # ARABIC MATHEMATICAL LAM
+1EE2B ; [.2311.0020.0005] # ARABIC MATHEMATICAL INITIAL LAM
+1EE4B ; [.2311.0020.0005] # ARABIC MATHEMATICAL TAILED LAM
+1EE8B ; [.2311.0020.0005] # ARABIC MATHEMATICAL LOOPED LAM
+1EEAB ; [.2311.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
+FEDF ; [.2311.0020.0017] # ARABIC LETTER LAM INITIAL FORM
+FEE0 ; [.2311.0020.0018] # ARABIC LETTER LAM MEDIAL FORM
+FEDE ; [.2311.0020.0019] # ARABIC LETTER LAM FINAL FORM
+FEDD ; [.2311.0020.001A] # ARABIC LETTER LAM ISOLATED FORM
+FEF6 ; [.2311.0020.0019][.2279.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+FEF5 ; [.2311.0020.001A][.2279.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+FEF8 ; [.2311.0020.0019][.227A.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+FEF7 ; [.2311.0020.001A][.227A.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+FEFA ; [.2311.0020.0019][.227E.0020.0019] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+FEF9 ; [.2311.0020.001A][.227E.0020.001A] # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+FEFC ; [.2311.0020.0019][.2286.0020.0019] # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFB ; [.2311.0020.001A][.2286.0020.001A] # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+FCC9 ; [.2311.0020.0017][.229D.0020.0017] # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+FC3F ; [.2311.0020.001A][.229D.0020.001A] # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+FD83 ; [.2311.0020.0017][.229D.0020.0017][.229D.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM
+FD84 ; [.2311.0020.0019][.229D.0020.0019][.229D.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+FDBA ; [.2311.0020.0017][.229D.0020.0017][.2318.0020.0017] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBC ; [.2311.0020.0019][.229D.0020.0019][.2318.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+FDAC ; [.2311.0020.0019][.229D.0020.0019][.233A.0020.0019] # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+FCCA ; [.2311.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+FC40 ; [.2311.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+FDB5 ; [.2311.0020.0017][.22A4.0020.0017][.2318.0020.0017] # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+FD80 ; [.2311.0020.0019][.22A4.0020.0019][.2318.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+FD82 ; [.2311.0020.0019][.22A4.0020.0019][.2339.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD81 ; [.2311.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+FCCB ; [.2311.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+FC41 ; [.2311.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+FD86 ; [.2311.0020.0017][.22A5.0020.0017][.2318.0020.0017] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+FD85 ; [.2311.0020.0019][.22A5.0020.0019][.2318.0020.0019] # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM
+FCCC ; [.2311.0020.0017][.2318.0020.0017] # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+FCED ; [.2311.0020.0018][.2318.0020.0018] # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+FC85 ; [.2311.0020.0019][.2318.0020.0019] # ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+FC42 ; [.2311.0020.001A][.2318.0020.001A] # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+FD88 ; [.2311.0020.0017][.2318.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+FD87 ; [.2311.0020.0019][.2318.0020.0019][.22A4.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM
+FDAD ; [.2311.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+FCCD ; [.2311.0020.0017][.2325.0020.0017] # ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+FC86 ; [.2311.0020.0019][.2339.0020.0019] # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+FC43 ; [.2311.0020.001A][.2339.0020.001A] # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+FC87 ; [.2311.0020.0019][.233A.0020.0019] # ARABIC LIGATURE LAM WITH YEH FINAL FORM
+FC44 ; [.2311.0020.001A][.233A.0020.001A] # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+06B5 ; [.2312.0020.0002] # ARABIC LETTER LAM WITH SMALL V
+06B6 ; [.2313.0020.0002] # ARABIC LETTER LAM WITH DOT ABOVE
+06B7 ; [.2314.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS ABOVE
+06B8 ; [.2315.0020.0002] # ARABIC LETTER LAM WITH THREE DOTS BELOW
+076A ; [.2316.0020.0002] # ARABIC LETTER LAM WITH BAR
+08A6 ; [.2317.0020.0002] # ARABIC LETTER LAM WITH DOUBLE BAR
+0645 ; [.2318.0020.0002] # ARABIC LETTER MEEM
+1EE0C ; [.2318.0020.0005] # ARABIC MATHEMATICAL MEEM
+1EE2C ; [.2318.0020.0005] # ARABIC MATHEMATICAL INITIAL MEEM
+1EE6C ; [.2318.0020.0005] # ARABIC MATHEMATICAL STRETCHED MEEM
+1EE8C ; [.2318.0020.0005] # ARABIC MATHEMATICAL LOOPED MEEM
+1EEAC ; [.2318.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
+FEE3 ; [.2318.0020.0017] # ARABIC LETTER MEEM INITIAL FORM
+FEE4 ; [.2318.0020.0018] # ARABIC LETTER MEEM MEDIAL FORM
+FEE2 ; [.2318.0020.0019] # ARABIC LETTER MEEM FINAL FORM
+FEE1 ; [.2318.0020.001A] # ARABIC LETTER MEEM ISOLATED FORM
+06FE ; [.2318.0020.0004][.0000.010C.0004] # ARABIC SIGN SINDHI POSTPOSITION MEN
+FC88 ; [.2318.0020.0019][.2286.0020.0019] # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+FCCE ; [.2318.0020.0017][.229D.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+FC45 ; [.2318.0020.001A][.229D.0020.001A] # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+FD8C ; [.2318.0020.0017][.229D.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+FD92 ; [.2318.0020.0017][.229D.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD8D ; [.2318.0020.0017][.229D.0020.0017][.2318.0020.0017] # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+FDC0 ; [.2318.0020.0019][.229D.0020.0019][.233A.0020.0019] # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+FCCF ; [.2318.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+FC46 ; [.2318.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+FD89 ; [.2318.0020.0017][.22A4.0020.0017][.229D.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A ; [.2318.0020.0017][.22A4.0020.0017][.2318.0020.0017] # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+FDF4 ; [.2318.0020.001A][.22A4.0020.001A][.2318.0020.001A][.22AF.0020.001A] # ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+FD8B ; [.2318.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+FCD0 ; [.2318.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+FC47 ; [.2318.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+FD8E ; [.2318.0020.0017][.22A5.0020.0017][.229D.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F ; [.2318.0020.0017][.22A5.0020.0017][.2318.0020.0017] # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FDB9 ; [.2318.0020.0019][.22A5.0020.0019][.233A.0020.0019] # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+FCD1 ; [.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+FC89 ; [.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+FC48 ; [.2318.0020.001A][.2318.0020.001A] # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+FDB1 ; [.2318.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+FC49 ; [.2318.0020.001A][.2339.0020.001A] # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A ; [.2318.0020.001A][.233A.0020.001A] # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+0765 ; [.2319.0020.0002] # ARABIC LETTER MEEM WITH DOT ABOVE
+0766 ; [.231A.0020.0002] # ARABIC LETTER MEEM WITH DOT BELOW
+08A7 ; [.231B.0020.0002] # ARABIC LETTER MEEM WITH THREE DOTS ABOVE
+0646 ; [.231C.0020.0002] # ARABIC LETTER NOON
+1EE0D ; [.231C.0020.0005] # ARABIC MATHEMATICAL NOON
+1EE2D ; [.231C.0020.0005] # ARABIC MATHEMATICAL INITIAL NOON
+1EE4D ; [.231C.0020.0005] # ARABIC MATHEMATICAL TAILED NOON
+1EE6D ; [.231C.0020.0005] # ARABIC MATHEMATICAL STRETCHED NOON
+1EE8D ; [.231C.0020.0005] # ARABIC MATHEMATICAL LOOPED NOON
+1EEAD ; [.231C.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
+FEE7 ; [.231C.0020.0017] # ARABIC LETTER NOON INITIAL FORM
+FEE8 ; [.231C.0020.0018] # ARABIC LETTER NOON MEDIAL FORM
+FEE6 ; [.231C.0020.0019] # ARABIC LETTER NOON FINAL FORM
+FEE5 ; [.231C.0020.001A] # ARABIC LETTER NOON ISOLATED FORM
+FCD2 ; [.231C.0020.0017][.229D.0020.0017] # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+FC4B ; [.231C.0020.001A][.229D.0020.001A] # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+FDB8 ; [.231C.0020.0017][.229D.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+FDBD ; [.231C.0020.0019][.229D.0020.0019][.22A4.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+FD98 ; [.231C.0020.0017][.229D.0020.0017][.2318.0020.0017] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+FD97 ; [.231C.0020.0019][.229D.0020.0019][.2318.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM
+FD99 ; [.231C.0020.0019][.229D.0020.0019][.2339.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDC7 ; [.231C.0020.0019][.229D.0020.0019][.233A.0020.0019] # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FCD3 ; [.231C.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+FC4C ; [.231C.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+FD95 ; [.231C.0020.0017][.22A4.0020.0017][.2318.0020.0017] # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+FD96 ; [.231C.0020.0019][.22A4.0020.0019][.2339.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDB3 ; [.231C.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+FCD4 ; [.231C.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+FC4D ; [.231C.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+FC8A ; [.231C.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE NOON WITH REH FINAL FORM
+FC8B ; [.231C.0020.0019][.22BF.0020.0019] # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+FCD5 ; [.231C.0020.0017][.2318.0020.0017] # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+FCEE ; [.231C.0020.0018][.2318.0020.0018] # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+FC8C ; [.231C.0020.0019][.2318.0020.0019] # ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+FC4E ; [.231C.0020.001A][.2318.0020.001A] # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+FD9B ; [.231C.0020.0019][.2318.0020.0019][.2339.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9A ; [.231C.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+FC8D ; [.231C.0020.0019][.231C.0020.0019] # ARABIC LIGATURE NOON WITH NOON FINAL FORM
+FCD6 ; [.231C.0020.0017][.2325.0020.0017] # ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+FCEF ; [.231C.0020.0018][.2325.0020.0018] # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+FC8E ; [.231C.0020.0019][.2339.0020.0019] # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+FC4F ; [.231C.0020.001A][.2339.0020.001A] # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+FC8F ; [.231C.0020.0019][.233A.0020.0019] # ARABIC LIGATURE NOON WITH YEH FINAL FORM
+FC50 ; [.231C.0020.001A][.233A.0020.001A] # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+06BA ; [.231D.0020.0002] # ARABIC LETTER NOON GHUNNA
+1EE1D ; [.231D.0020.0005] # ARABIC MATHEMATICAL DOTLESS NOON
+1EE5D ; [.231D.0020.0005] # ARABIC MATHEMATICAL TAILED DOTLESS NOON
+FB9F ; [.231D.0020.0019] # ARABIC LETTER NOON GHUNNA FINAL FORM
+FB9E ; [.231D.0020.001A] # ARABIC LETTER NOON GHUNNA ISOLATED FORM
+06BB ; [.231E.0020.0002] # ARABIC LETTER RNOON
+FBA2 ; [.231E.0020.0017] # ARABIC LETTER RNOON INITIAL FORM
+FBA3 ; [.231E.0020.0018] # ARABIC LETTER RNOON MEDIAL FORM
+FBA1 ; [.231E.0020.0019] # ARABIC LETTER RNOON FINAL FORM
+FBA0 ; [.231E.0020.001A] # ARABIC LETTER RNOON ISOLATED FORM
+06BC ; [.231F.0020.0002] # ARABIC LETTER NOON WITH RING
+06BD ; [.2320.0020.0002] # ARABIC LETTER NOON WITH THREE DOTS ABOVE
+06B9 ; [.2321.0020.0002] # ARABIC LETTER NOON WITH DOT BELOW
+0767 ; [.2322.0020.0002] # ARABIC LETTER NOON WITH TWO DOTS BELOW
+0768 ; [.2323.0020.0002] # ARABIC LETTER NOON WITH SMALL TAH
+0769 ; [.2324.0020.0002] # ARABIC LETTER NOON WITH SMALL V
+0647 ; [.2325.0020.0002] # ARABIC LETTER HEH
+1EE24 ; [.2325.0020.0005] # ARABIC MATHEMATICAL INITIAL HEH
+1EE64 ; [.2325.0020.0005] # ARABIC MATHEMATICAL STRETCHED HEH
+1EE84 ; [.2325.0020.0005] # ARABIC MATHEMATICAL LOOPED HEH
+FEEB ; [.2325.0020.0017] # ARABIC LETTER HEH INITIAL FORM
+FEEC ; [.2325.0020.0018] # ARABIC LETTER HEH MEDIAL FORM
+FEEA ; [.2325.0020.0019] # ARABIC LETTER HEH FINAL FORM
+FEE9 ; [.2325.0020.001A] # ARABIC LETTER HEH ISOLATED FORM
+FCD9 ; [.2325.0020.0017][.0000.0098.0017] # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCD7 ; [.2325.0020.0017][.229D.0020.0017] # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+FC51 ; [.2325.0020.001A][.229D.0020.001A] # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+FCD8 ; [.2325.0020.0017][.2318.0020.0017] # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+FC52 ; [.2325.0020.001A][.2318.0020.001A] # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+FD93 ; [.2325.0020.0017][.2318.0020.0017][.229D.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94 ; [.2325.0020.0017][.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+FC53 ; [.2325.0020.001A][.2339.0020.001A] # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54 ; [.2325.0020.001A][.233A.0020.001A] # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+06BE ; [.2326.0020.0002] # ARABIC LETTER HEH DOACHASHMEE
+FBAC ; [.2326.0020.0017] # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM
+FBAD ; [.2326.0020.0018] # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAB ; [.2326.0020.0019] # ARABIC LETTER HEH DOACHASHMEE FINAL FORM
+FBAA ; [.2326.0020.001A] # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+06C1 ; [.2327.0020.0002] # ARABIC LETTER HEH GOAL
+FBA8 ; [.2327.0020.0017] # ARABIC LETTER HEH GOAL INITIAL FORM
+FBA9 ; [.2327.0020.0018] # ARABIC LETTER HEH GOAL MEDIAL FORM
+FBA7 ; [.2327.0020.0019] # ARABIC LETTER HEH GOAL FINAL FORM
+FBA6 ; [.2327.0020.001A] # ARABIC LETTER HEH GOAL ISOLATED FORM
+06C2 ; [.2327.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+06C3 ; [.2328.0020.0002] # ARABIC LETTER TEH MARBUTA GOAL
+06FF ; [.2329.0020.0002] # ARABIC LETTER HEH WITH INVERTED V
+06D5 ; [.232A.0020.0002] # ARABIC LETTER AE
+06C0 ; [.232A.0020.0002][.0000.0083.0002] # ARABIC LETTER HEH WITH YEH ABOVE
+FBA5 ; [.232A.0020.0019][.0000.0083.0019] # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA4 ; [.232A.0020.001A][.0000.0083.001A] # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM
+0648 ; [.232B.0020.0002] # ARABIC LETTER WAW
+06E5 ; [.232B.0020.0004] # ARABIC SMALL WAW
+1EE05 ; [.232B.0020.0005] # ARABIC MATHEMATICAL WAW
+1EE85 ; [.232B.0020.0005] # ARABIC MATHEMATICAL LOOPED WAW
+1EEA5 ; [.232B.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
+FEEE ; [.232B.0020.0019] # ARABIC LETTER WAW FINAL FORM
+FEED ; [.232B.0020.001A] # ARABIC LETTER WAW ISOLATED FORM
+0676 ; [.232B.0020.0004][.2278.0020.0004] # ARABIC LETTER HIGH HAMZA WAW
+FDF8 ; [.232B.0020.001A][.22D0.0020.001A][.2311.0020.001A][.2318.0020.001A] # ARABIC LIGATURE WASALLAM ISOLATED FORM
+06C4 ; [.232C.0020.0002] # ARABIC LETTER WAW WITH RING
+06C5 ; [.232D.0020.0002] # ARABIC LETTER KIRGHIZ OE
+FBE1 ; [.232D.0020.0019] # ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE0 ; [.232D.0020.001A] # ARABIC LETTER KIRGHIZ OE ISOLATED FORM
+06C6 ; [.232E.0020.0002] # ARABIC LETTER OE
+FBDA ; [.232E.0020.0019] # ARABIC LETTER OE FINAL FORM
+FBD9 ; [.232E.0020.001A] # ARABIC LETTER OE ISOLATED FORM
+06C7 ; [.232F.0020.0002] # ARABIC LETTER U
+FBD8 ; [.232F.0020.0019] # ARABIC LETTER U FINAL FORM
+FBD7 ; [.232F.0020.001A] # ARABIC LETTER U ISOLATED FORM
+0677 ; [.232F.0020.0004][.2278.0020.0004] # ARABIC LETTER U WITH HAMZA ABOVE
+FBDD ; [.232F.0020.001A][.2278.0020.001A] # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+06C8 ; [.2330.0020.0002] # ARABIC LETTER YU
+FBDC ; [.2330.0020.0019] # ARABIC LETTER YU FINAL FORM
+FBDB ; [.2330.0020.001A] # ARABIC LETTER YU ISOLATED FORM
+06C9 ; [.2331.0020.0002] # ARABIC LETTER KIRGHIZ YU
+FBE3 ; [.2331.0020.0019] # ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE2 ; [.2331.0020.001A] # ARABIC LETTER KIRGHIZ YU ISOLATED FORM
+06CA ; [.2332.0020.0002] # ARABIC LETTER WAW WITH TWO DOTS ABOVE
+06CB ; [.2333.0020.0002] # ARABIC LETTER VE
+FBDF ; [.2333.0020.0019] # ARABIC LETTER VE FINAL FORM
+FBDE ; [.2333.0020.001A] # ARABIC LETTER VE ISOLATED FORM
+08B1 ; [.2334.0020.0002] # ARABIC LETTER STRAIGHT WAW
+06CF ; [.2335.0020.0002] # ARABIC LETTER WAW WITH DOT ABOVE
+0778 ; [.2336.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
+0779 ; [.2337.0020.0002] # ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+08AB ; [.2338.0020.0002] # ARABIC LETTER WAW WITH DOT WITHIN
+0649 ; [.2339.0020.0002] # ARABIC LETTER ALEF MAKSURA
+FBE8 ; [.2339.0020.0017] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM
+FBE9 ; [.2339.0020.0018] # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FEF0 ; [.2339.0020.0019] # ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEEF ; [.2339.0020.001A] # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+FC90 ; [.2339.0020.0019][.0000.0098.0019] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC5D ; [.2339.0020.001A][.0000.0098.001A] # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+064A ; [.233A.0020.0002] # ARABIC LETTER YEH
+06E6 ; [.233A.0020.0004] # ARABIC SMALL YEH
+1EE09 ; [.233A.0020.0005] # ARABIC MATHEMATICAL YEH
+1EE29 ; [.233A.0020.0005] # ARABIC MATHEMATICAL INITIAL YEH
+1EE49 ; [.233A.0020.0005] # ARABIC MATHEMATICAL TAILED YEH
+1EE69 ; [.233A.0020.0005] # ARABIC MATHEMATICAL STRETCHED YEH
+1EE89 ; [.233A.0020.0005] # ARABIC MATHEMATICAL LOOPED YEH
+1EEA9 ; [.233A.0020.0005] # ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+FEF3 ; [.233A.0020.0017] # ARABIC LETTER YEH INITIAL FORM
+FEF4 ; [.233A.0020.0018] # ARABIC LETTER YEH MEDIAL FORM
+FEF2 ; [.233A.0020.0019] # ARABIC LETTER YEH FINAL FORM
+FEF1 ; [.233A.0020.001A] # ARABIC LETTER YEH ISOLATED FORM
+0678 ; [.233A.0020.0004][.2278.0020.0004] # ARABIC LETTER HIGH HAMZA YEH
+FCDA ; [.233A.0020.0017][.229D.0020.0017] # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+FC55 ; [.233A.0020.001A][.229D.0020.001A] # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+FDAF ; [.233A.0020.0019][.229D.0020.0019][.233A.0020.0019] # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+FCDB ; [.233A.0020.0017][.22A4.0020.0017] # ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+FC56 ; [.233A.0020.001A][.22A4.0020.001A] # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+FDAE ; [.233A.0020.0019][.22A4.0020.0019][.233A.0020.0019] # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+FCDC ; [.233A.0020.0017][.22A5.0020.0017] # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+FC57 ; [.233A.0020.001A][.22A5.0020.001A] # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+FC91 ; [.233A.0020.0019][.22BE.0020.0019] # ARABIC LIGATURE YEH WITH REH FINAL FORM
+FC92 ; [.233A.0020.0019][.22BF.0020.0019] # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+FCDD ; [.233A.0020.0017][.2318.0020.0017] # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+FCF0 ; [.233A.0020.0018][.2318.0020.0018] # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+FC93 ; [.233A.0020.0019][.2318.0020.0019] # ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+FC58 ; [.233A.0020.001A][.2318.0020.001A] # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+FD9D ; [.233A.0020.0017][.2318.0020.0017][.2318.0020.0017] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+FD9C ; [.233A.0020.0019][.2318.0020.0019][.2318.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM
+FDB0 ; [.233A.0020.0019][.2318.0020.0019][.233A.0020.0019] # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+FC94 ; [.233A.0020.0019][.231C.0020.0019] # ARABIC LIGATURE YEH WITH NOON FINAL FORM
+FCDE ; [.233A.0020.0017][.2325.0020.0017] # ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+FCF1 ; [.233A.0020.0018][.2325.0020.0018] # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+FC95 ; [.233A.0020.0019][.2339.0020.0019] # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+FC59 ; [.233A.0020.001A][.2339.0020.001A] # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+FC96 ; [.233A.0020.0019][.233A.0020.0019] # ARABIC LIGATURE YEH WITH YEH FINAL FORM
+FC5A ; [.233A.0020.001A][.233A.0020.001A] # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+06CC ; [.233B.0020.0002] # ARABIC LETTER FARSI YEH
+FBFE ; [.233B.0020.0017] # ARABIC LETTER FARSI YEH INITIAL FORM
+FBFF ; [.233B.0020.0018] # ARABIC LETTER FARSI YEH MEDIAL FORM
+FBFD ; [.233B.0020.0019] # ARABIC LETTER FARSI YEH FINAL FORM
+FBFC ; [.233B.0020.001A] # ARABIC LETTER FARSI YEH ISOLATED FORM
+06CD ; [.233C.0020.0002] # ARABIC LETTER YEH WITH TAIL
+06CE ; [.233D.0020.0002] # ARABIC LETTER YEH WITH SMALL V
+06D0 ; [.233E.0020.0002] # ARABIC LETTER E
+FBE6 ; [.233E.0020.0017] # ARABIC LETTER E INITIAL FORM
+FBE7 ; [.233E.0020.0018] # ARABIC LETTER E MEDIAL FORM
+FBE5 ; [.233E.0020.0019] # ARABIC LETTER E FINAL FORM
+FBE4 ; [.233E.0020.001A] # ARABIC LETTER E ISOLATED FORM
+06D1 ; [.233F.0020.0002] # ARABIC LETTER YEH WITH THREE DOTS BELOW
+063D ; [.2340.0020.0002] # ARABIC LETTER FARSI YEH WITH INVERTED V
+063E ; [.2341.0020.0002] # ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE
+063F ; [.2342.0020.0002] # ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0620 ; [.2343.0020.0002] # ARABIC LETTER KASHMIRI YEH
+0775 ; [.2344.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
+0776 ; [.2345.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+0777 ; [.2346.0020.0002] # ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW
+06D2 ; [.2347.0020.0002] # ARABIC LETTER YEH BARREE
+FBAF ; [.2347.0020.0019] # ARABIC LETTER YEH BARREE FINAL FORM
+FBAE ; [.2347.0020.001A] # ARABIC LETTER YEH BARREE ISOLATED FORM
+06D3 ; [.2347.0020.0002][.0000.0083.0002] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+FBB1 ; [.2347.0020.0019][.0000.0083.0019] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB0 ; [.2347.0020.001A][.0000.0083.001A] # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+077A ; [.2348.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE
+077B ; [.2349.0020.0002] # ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE
+0710 ; [.234A.0020.0002] # SYRIAC LETTER ALAPH
+0712 ; [.234B.0020.0002] # SYRIAC LETTER BETH
+072D ; [.234B.0020.0004][.0000.010D.0004] # SYRIAC LETTER PERSIAN BHETH
+0713 ; [.234C.0020.0002] # SYRIAC LETTER GAMAL
+0714 ; [.234C.0020.0004][.0000.010C.0004] # SYRIAC LETTER GAMAL GARSHUNI
+072E ; [.234C.0020.0004][.0000.010D.0004] # SYRIAC LETTER PERSIAN GHAMAL
+0716 ; [.234D.0020.0002] # SYRIAC LETTER DOTLESS DALATH RISH
+0715 ; [.234E.0020.0002] # SYRIAC LETTER DALATH
+072F ; [.234E.0020.0004][.0000.010D.0004] # SYRIAC LETTER PERSIAN DHALATH
+0717 ; [.234F.0020.0002] # SYRIAC LETTER HE
+0718 ; [.2350.0020.0002] # SYRIAC LETTER WAW
+0719 ; [.2351.0020.0002] # SYRIAC LETTER ZAIN
+074D ; [.2352.0020.0002] # SYRIAC LETTER SOGDIAN ZHAIN
+071A ; [.2353.0020.0002] # SYRIAC LETTER HETH
+071B ; [.2354.0020.0002] # SYRIAC LETTER TETH
+071C ; [.2354.0020.0004][.0000.010C.0004] # SYRIAC LETTER TETH GARSHUNI
+071D ; [.2355.0020.0002] # SYRIAC LETTER YUDH
+071E ; [.2356.0020.0002] # SYRIAC LETTER YUDH HE
+071F ; [.2357.0020.0002] # SYRIAC LETTER KAPH
+074E ; [.2358.0020.0002] # SYRIAC LETTER SOGDIAN KHAPH
+0720 ; [.2359.0020.0002] # SYRIAC LETTER LAMADH
+0721 ; [.235A.0020.0002] # SYRIAC LETTER MIM
+0722 ; [.235B.0020.0002] # SYRIAC LETTER NUN
+0723 ; [.235C.0020.0002] # SYRIAC LETTER SEMKATH
+0724 ; [.235C.0020.0019] # SYRIAC LETTER FINAL SEMKATH
+0725 ; [.235D.0020.0002] # SYRIAC LETTER E
+0726 ; [.235E.0020.0002] # SYRIAC LETTER PE
+0727 ; [.235E.0020.0004][.0000.010C.0004] # SYRIAC LETTER REVERSED PE
+074F ; [.235F.0020.0002] # SYRIAC LETTER SOGDIAN FE
+0728 ; [.2360.0020.0002] # SYRIAC LETTER SADHE
+0729 ; [.2361.0020.0002] # SYRIAC LETTER QAPH
+072A ; [.2362.0020.0002] # SYRIAC LETTER RISH
+072B ; [.2363.0020.0002] # SYRIAC LETTER SHIN
+072C ; [.2364.0020.0002] # SYRIAC LETTER TAW
+0840 ; [.2365.0020.0002] # MANDAIC LETTER HALQA
+0841 ; [.2366.0020.0002] # MANDAIC LETTER AB
+0842 ; [.2367.0020.0002] # MANDAIC LETTER AG
+0843 ; [.2368.0020.0002] # MANDAIC LETTER AD
+0844 ; [.2369.0020.0002] # MANDAIC LETTER AH
+0845 ; [.236A.0020.0002] # MANDAIC LETTER USHENNA
+0846 ; [.236B.0020.0002] # MANDAIC LETTER AZ
+0847 ; [.236C.0020.0002] # MANDAIC LETTER IT
+0848 ; [.236D.0020.0002] # MANDAIC LETTER ATT
+0849 ; [.236E.0020.0002] # MANDAIC LETTER AKSA
+084A ; [.236F.0020.0002] # MANDAIC LETTER AK
+084B ; [.2370.0020.0002] # MANDAIC LETTER AL
+084C ; [.2371.0020.0002] # MANDAIC LETTER AM
+084D ; [.2372.0020.0002] # MANDAIC LETTER AN
+084E ; [.2373.0020.0002] # MANDAIC LETTER AS
+084F ; [.2374.0020.0002] # MANDAIC LETTER IN
+0850 ; [.2375.0020.0002] # MANDAIC LETTER AP
+0851 ; [.2376.0020.0002] # MANDAIC LETTER ASZ
+0852 ; [.2377.0020.0002] # MANDAIC LETTER AQ
+0853 ; [.2378.0020.0002] # MANDAIC LETTER AR
+0854 ; [.2379.0020.0002] # MANDAIC LETTER ASH
+0855 ; [.237A.0020.0002] # MANDAIC LETTER AT
+0856 ; [.237B.0020.0002] # MANDAIC LETTER DUSHENNA
+0857 ; [.237C.0020.0002] # MANDAIC LETTER KAD
+0858 ; [.237D.0020.0002] # MANDAIC LETTER AIN
+0780 ; [.237E.0020.0002] # THAANA LETTER HAA
+0799 ; [.237F.0020.0002] # THAANA LETTER HHAA
+079A ; [.2380.0020.0002] # THAANA LETTER KHAA
+0781 ; [.2381.0020.0002] # THAANA LETTER SHAVIYANI
+0782 ; [.2382.0020.0002] # THAANA LETTER NOONU
+0783 ; [.2383.0020.0002] # THAANA LETTER RAA
+079C ; [.2384.0020.0002] # THAANA LETTER ZAA
+0784 ; [.2385.0020.0002] # THAANA LETTER BAA
+0785 ; [.2386.0020.0002] # THAANA LETTER LHAVIYANI
+0786 ; [.2387.0020.0002] # THAANA LETTER KAAFU
+0787 ; [.2388.0020.0002] # THAANA LETTER ALIFU
+07A2 ; [.2389.0020.0002] # THAANA LETTER AINU
+07A3 ; [.238A.0020.0002] # THAANA LETTER GHAINU
+0788 ; [.238B.0020.0002] # THAANA LETTER VAAVU
+07A5 ; [.238C.0020.0002] # THAANA LETTER WAAVU
+0789 ; [.238D.0020.0002] # THAANA LETTER MEEMU
+078A ; [.238E.0020.0002] # THAANA LETTER FAAFU
+078B ; [.238F.0020.0002] # THAANA LETTER DHAALU
+079B ; [.2390.0020.0002] # THAANA LETTER THAALU
+078C ; [.2391.0020.0002] # THAANA LETTER THAA
+0798 ; [.2392.0020.0002] # THAANA LETTER TTAA
+07A0 ; [.2393.0020.0002] # THAANA LETTER TO
+07A1 ; [.2394.0020.0002] # THAANA LETTER ZO
+078D ; [.2395.0020.0002] # THAANA LETTER LAAMU
+078E ; [.2396.0020.0002] # THAANA LETTER GAAFU
+07A4 ; [.2397.0020.0002] # THAANA LETTER QAAFU
+078F ; [.2398.0020.0002] # THAANA LETTER GNAVIYANI
+0790 ; [.2399.0020.0002] # THAANA LETTER SEENU
+079D ; [.239A.0020.0002] # THAANA LETTER SHEENU
+079E ; [.239B.0020.0002] # THAANA LETTER SAADHU
+079F ; [.239C.0020.0002] # THAANA LETTER DAADHU
+0791 ; [.239D.0020.0002] # THAANA LETTER DAVIYANI
+0792 ; [.239E.0020.0002] # THAANA LETTER ZAVIYANI
+0793 ; [.239F.0020.0002] # THAANA LETTER TAVIYANI
+0794 ; [.23A0.0020.0002] # THAANA LETTER YAA
+0795 ; [.23A1.0020.0002] # THAANA LETTER PAVIYANI
+0796 ; [.23A2.0020.0002] # THAANA LETTER JAVIYANI
+0797 ; [.23A3.0020.0002] # THAANA LETTER CHAVIYANI
+07B1 ; [.23A4.0020.0002] # THAANA LETTER NAA
+07A6 ; [.23A5.0020.0002] # THAANA ABAFILI
+07A7 ; [.23A6.0020.0002] # THAANA AABAAFILI
+07A8 ; [.23A7.0020.0002] # THAANA IBIFILI
+07A9 ; [.23A8.0020.0002] # THAANA EEBEEFILI
+07AA ; [.23A9.0020.0002] # THAANA UBUFILI
+07AB ; [.23AA.0020.0002] # THAANA OOBOOFILI
+07AC ; [.23AB.0020.0002] # THAANA EBEFILI
+07AD ; [.23AC.0020.0002] # THAANA EYBEYFILI
+07AE ; [.23AD.0020.0002] # THAANA OBOFILI
+07AF ; [.23AE.0020.0002] # THAANA OABOAFILI
+07B0 ; [.23AF.0020.0002] # THAANA SUKUN
+07CA ; [.23B0.0020.0002] # NKO LETTER A
+07CB ; [.23B1.0020.0002] # NKO LETTER EE
+07CC ; [.23B2.0020.0002] # NKO LETTER I
+07CD ; [.23B3.0020.0002] # NKO LETTER E
+07CE ; [.23B4.0020.0002] # NKO LETTER U
+07CF ; [.23B5.0020.0002] # NKO LETTER OO
+07D0 ; [.23B6.0020.0002] # NKO LETTER O
+07D1 ; [.23B7.0020.0002] # NKO LETTER DAGBASINNA
+07D2 ; [.23B8.0020.0002] # NKO LETTER N
+07D3 ; [.23B9.0020.0002] # NKO LETTER BA
+07D4 ; [.23BA.0020.0002] # NKO LETTER PA
+07D5 ; [.23BB.0020.0002] # NKO LETTER TA
+07D6 ; [.23BC.0020.0002] # NKO LETTER JA
+07E8 ; [.23BC.0020.0004][.0000.010B.0004] # NKO LETTER JONA JA
+07D7 ; [.23BD.0020.0002] # NKO LETTER CHA
+07E9 ; [.23BD.0020.0004][.0000.010B.0004] # NKO LETTER JONA CHA
+07D8 ; [.23BE.0020.0002] # NKO LETTER DA
+07D9 ; [.23BF.0020.0002] # NKO LETTER RA
+07EA ; [.23BF.0020.0004][.0000.010B.0004] # NKO LETTER JONA RA
+07DA ; [.23C0.0020.0002] # NKO LETTER RRA
+07DB ; [.23C1.0020.0002] # NKO LETTER SA
+07DC ; [.23C2.0020.0002] # NKO LETTER GBA
+07DD ; [.23C3.0020.0002] # NKO LETTER FA
+07DE ; [.23C4.0020.0002] # NKO LETTER KA
+07DF ; [.23C5.0020.0002] # NKO LETTER LA
+07E0 ; [.23C6.0020.0002] # NKO LETTER NA WOLOSO
+07E1 ; [.23C7.0020.0002] # NKO LETTER MA
+07E2 ; [.23C8.0020.0002] # NKO LETTER NYA
+07E3 ; [.23C9.0020.0002] # NKO LETTER NA
+07E4 ; [.23CA.0020.0002] # NKO LETTER HA
+07E5 ; [.23CB.0020.0002] # NKO LETTER WA
+07E6 ; [.23CC.0020.0002] # NKO LETTER YA
+07E7 ; [.23CD.0020.0002] # NKO LETTER NYA WOLOSO
+07F4 ; [.23CE.0020.0002] # NKO HIGH TONE APOSTROPHE
+07F5 ; [.23CF.0020.0002] # NKO LOW TONE APOSTROPHE
+2D30 ; [.23D0.0020.0002] # TIFINAGH LETTER YA
+2D31 ; [.23D1.0020.0002] # TIFINAGH LETTER YAB
+2D32 ; [.23D2.0020.0002] # TIFINAGH LETTER YABH
+2D33 ; [.23D3.0020.0002] # TIFINAGH LETTER YAG
+2D34 ; [.23D4.0020.0002] # TIFINAGH LETTER YAGHH
+2D35 ; [.23D5.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAJ
+2D36 ; [.23D6.0020.0002] # TIFINAGH LETTER YAJ
+2D37 ; [.23D7.0020.0002] # TIFINAGH LETTER YAD
+2D38 ; [.23D8.0020.0002] # TIFINAGH LETTER YADH
+2D39 ; [.23D9.0020.0002] # TIFINAGH LETTER YADD
+2D3A ; [.23DA.0020.0002] # TIFINAGH LETTER YADDH
+2D3B ; [.23DB.0020.0002] # TIFINAGH LETTER YEY
+2D66 ; [.23DC.0020.0002] # TIFINAGH LETTER YE
+2D3C ; [.23DD.0020.0002] # TIFINAGH LETTER YAF
+2D3D ; [.23DE.0020.0002] # TIFINAGH LETTER YAK
+2D3E ; [.23DF.0020.0002] # TIFINAGH LETTER TUAREG YAK
+2D3F ; [.23E0.0020.0002] # TIFINAGH LETTER YAKHH
+2D40 ; [.23E1.0020.0002] # TIFINAGH LETTER YAH
+2D41 ; [.23E2.0020.0002] # TIFINAGH LETTER BERBER ACADEMY YAH
+2D42 ; [.23E3.0020.0002] # TIFINAGH LETTER TUAREG YAH
+2D43 ; [.23E4.0020.0002] # TIFINAGH LETTER YAHH
+2D44 ; [.23E5.0020.0002] # TIFINAGH LETTER YAA
+2D45 ; [.23E6.0020.0002] # TIFINAGH LETTER YAKH
+2D46 ; [.23E7.0020.0002] # TIFINAGH LETTER TUAREG YAKH
+2D47 ; [.23E8.0020.0002] # TIFINAGH LETTER YAQ
+2D48 ; [.23E9.0020.0002] # TIFINAGH LETTER TUAREG YAQ
+2D49 ; [.23EA.0020.0002] # TIFINAGH LETTER YI
+2D4A ; [.23EB.0020.0002] # TIFINAGH LETTER YAZH
+2D4B ; [.23EC.0020.0002] # TIFINAGH LETTER AHAGGAR YAZH
+2D4C ; [.23ED.0020.0002] # TIFINAGH LETTER TUAREG YAZH
+2D4D ; [.23EE.0020.0002] # TIFINAGH LETTER YAL
+2D4E ; [.23EF.0020.0002] # TIFINAGH LETTER YAM
+2D4F ; [.23F0.0020.0002] # TIFINAGH LETTER YAN
+2D50 ; [.23F1.0020.0002] # TIFINAGH LETTER TUAREG YAGN
+2D51 ; [.23F2.0020.0002] # TIFINAGH LETTER TUAREG YANG
+2D52 ; [.23F3.0020.0002] # TIFINAGH LETTER YAP
+2D53 ; [.23F4.0020.0002] # TIFINAGH LETTER YU
+2D67 ; [.23F5.0020.0002] # TIFINAGH LETTER YO
+2D54 ; [.23F6.0020.0002] # TIFINAGH LETTER YAR
+2D55 ; [.23F7.0020.0002] # TIFINAGH LETTER YARR
+2D56 ; [.23F8.0020.0002] # TIFINAGH LETTER YAGH
+2D57 ; [.23F9.0020.0002] # TIFINAGH LETTER TUAREG YAGH
+2D58 ; [.23FA.0020.0002] # TIFINAGH LETTER AYER YAGH
+2D59 ; [.23FB.0020.0002] # TIFINAGH LETTER YAS
+2D5A ; [.23FC.0020.0002] # TIFINAGH LETTER YASS
+2D5B ; [.23FD.0020.0002] # TIFINAGH LETTER YASH
+2D5C ; [.23FE.0020.0002] # TIFINAGH LETTER YAT
+2D5D ; [.23FF.0020.0002] # TIFINAGH LETTER YATH
+2D5E ; [.2400.0020.0002] # TIFINAGH LETTER YACH
+2D5F ; [.2401.0020.0002] # TIFINAGH LETTER YATT
+2D60 ; [.2402.0020.0002] # TIFINAGH LETTER YAV
+2D61 ; [.2403.0020.0002] # TIFINAGH LETTER YAW
+2D62 ; [.2404.0020.0002] # TIFINAGH LETTER YAY
+2D63 ; [.2405.0020.0002] # TIFINAGH LETTER YAZ
+2D64 ; [.2406.0020.0002] # TIFINAGH LETTER TAWELLEMET YAZ
+2D65 ; [.2407.0020.0002] # TIFINAGH LETTER YAZZ
+2D6F ; [.2408.0020.0002] # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+1200 ; [.2409.0020.0002] # ETHIOPIC SYLLABLE HA
+1201 ; [.240A.0020.0002] # ETHIOPIC SYLLABLE HU
+1202 ; [.240B.0020.0002] # ETHIOPIC SYLLABLE HI
+1203 ; [.240C.0020.0002] # ETHIOPIC SYLLABLE HAA
+1204 ; [.240D.0020.0002] # ETHIOPIC SYLLABLE HEE
+1205 ; [.240E.0020.0002] # ETHIOPIC SYLLABLE HE
+1206 ; [.240F.0020.0002] # ETHIOPIC SYLLABLE HO
+1207 ; [.2410.0020.0002] # ETHIOPIC SYLLABLE HOA
+1208 ; [.2411.0020.0002] # ETHIOPIC SYLLABLE LA
+1209 ; [.2412.0020.0002] # ETHIOPIC SYLLABLE LU
+120A ; [.2413.0020.0002] # ETHIOPIC SYLLABLE LI
+120B ; [.2414.0020.0002] # ETHIOPIC SYLLABLE LAA
+120C ; [.2415.0020.0002] # ETHIOPIC SYLLABLE LEE
+120D ; [.2416.0020.0002] # ETHIOPIC SYLLABLE LE
+120E ; [.2417.0020.0002] # ETHIOPIC SYLLABLE LO
+120F ; [.2418.0020.0002] # ETHIOPIC SYLLABLE LWA
+2D80 ; [.2419.0020.0002] # ETHIOPIC SYLLABLE LOA
+1210 ; [.241A.0020.0002] # ETHIOPIC SYLLABLE HHA
+1211 ; [.241B.0020.0002] # ETHIOPIC SYLLABLE HHU
+1212 ; [.241C.0020.0002] # ETHIOPIC SYLLABLE HHI
+1213 ; [.241D.0020.0002] # ETHIOPIC SYLLABLE HHAA
+1214 ; [.241E.0020.0002] # ETHIOPIC SYLLABLE HHEE
+1215 ; [.241F.0020.0002] # ETHIOPIC SYLLABLE HHE
+1216 ; [.2420.0020.0002] # ETHIOPIC SYLLABLE HHO
+1217 ; [.2421.0020.0002] # ETHIOPIC SYLLABLE HHWA
+1218 ; [.2422.0020.0002] # ETHIOPIC SYLLABLE MA
+1219 ; [.2423.0020.0002] # ETHIOPIC SYLLABLE MU
+121A ; [.2424.0020.0002] # ETHIOPIC SYLLABLE MI
+121B ; [.2425.0020.0002] # ETHIOPIC SYLLABLE MAA
+121C ; [.2426.0020.0002] # ETHIOPIC SYLLABLE MEE
+121D ; [.2427.0020.0002] # ETHIOPIC SYLLABLE ME
+121E ; [.2428.0020.0002] # ETHIOPIC SYLLABLE MO
+121F ; [.2429.0020.0002] # ETHIOPIC SYLLABLE MWA
+1380 ; [.242A.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT MWA
+1381 ; [.242B.0020.0002] # ETHIOPIC SYLLABLE MWI
+1382 ; [.242C.0020.0002] # ETHIOPIC SYLLABLE MWEE
+1383 ; [.242D.0020.0002] # ETHIOPIC SYLLABLE MWE
+2D81 ; [.242E.0020.0002] # ETHIOPIC SYLLABLE MOA
+1220 ; [.242F.0020.0002] # ETHIOPIC SYLLABLE SZA
+1221 ; [.2430.0020.0002] # ETHIOPIC SYLLABLE SZU
+1222 ; [.2431.0020.0002] # ETHIOPIC SYLLABLE SZI
+1223 ; [.2432.0020.0002] # ETHIOPIC SYLLABLE SZAA
+1224 ; [.2433.0020.0002] # ETHIOPIC SYLLABLE SZEE
+1225 ; [.2434.0020.0002] # ETHIOPIC SYLLABLE SZE
+1226 ; [.2435.0020.0002] # ETHIOPIC SYLLABLE SZO
+1227 ; [.2436.0020.0002] # ETHIOPIC SYLLABLE SZWA
+1228 ; [.2437.0020.0002] # ETHIOPIC SYLLABLE RA
+1229 ; [.2438.0020.0002] # ETHIOPIC SYLLABLE RU
+122A ; [.2439.0020.0002] # ETHIOPIC SYLLABLE RI
+122B ; [.243A.0020.0002] # ETHIOPIC SYLLABLE RAA
+122C ; [.243B.0020.0002] # ETHIOPIC SYLLABLE REE
+122D ; [.243C.0020.0002] # ETHIOPIC SYLLABLE RE
+122E ; [.243D.0020.0002] # ETHIOPIC SYLLABLE RO
+122F ; [.243E.0020.0002] # ETHIOPIC SYLLABLE RWA
+2D82 ; [.243F.0020.0002] # ETHIOPIC SYLLABLE ROA
+1230 ; [.2440.0020.0002] # ETHIOPIC SYLLABLE SA
+1231 ; [.2441.0020.0002] # ETHIOPIC SYLLABLE SU
+1232 ; [.2442.0020.0002] # ETHIOPIC SYLLABLE SI
+1233 ; [.2443.0020.0002] # ETHIOPIC SYLLABLE SAA
+1234 ; [.2444.0020.0002] # ETHIOPIC SYLLABLE SEE
+1235 ; [.2445.0020.0002] # ETHIOPIC SYLLABLE SE
+1236 ; [.2446.0020.0002] # ETHIOPIC SYLLABLE SO
+1237 ; [.2447.0020.0002] # ETHIOPIC SYLLABLE SWA
+2D83 ; [.2448.0020.0002] # ETHIOPIC SYLLABLE SOA
+AB01 ; [.2449.0020.0002] # ETHIOPIC SYLLABLE TTHU
+AB02 ; [.244A.0020.0002] # ETHIOPIC SYLLABLE TTHI
+AB03 ; [.244B.0020.0002] # ETHIOPIC SYLLABLE TTHAA
+AB04 ; [.244C.0020.0002] # ETHIOPIC SYLLABLE TTHEE
+AB05 ; [.244D.0020.0002] # ETHIOPIC SYLLABLE TTHE
+AB06 ; [.244E.0020.0002] # ETHIOPIC SYLLABLE TTHO
+1238 ; [.244F.0020.0002] # ETHIOPIC SYLLABLE SHA
+1239 ; [.2450.0020.0002] # ETHIOPIC SYLLABLE SHU
+123A ; [.2451.0020.0002] # ETHIOPIC SYLLABLE SHI
+123B ; [.2452.0020.0002] # ETHIOPIC SYLLABLE SHAA
+123C ; [.2453.0020.0002] # ETHIOPIC SYLLABLE SHEE
+123D ; [.2454.0020.0002] # ETHIOPIC SYLLABLE SHE
+123E ; [.2455.0020.0002] # ETHIOPIC SYLLABLE SHO
+123F ; [.2456.0020.0002] # ETHIOPIC SYLLABLE SHWA
+2D84 ; [.2457.0020.0002] # ETHIOPIC SYLLABLE SHOA
+1240 ; [.2458.0020.0002] # ETHIOPIC SYLLABLE QA
+1241 ; [.2459.0020.0002] # ETHIOPIC SYLLABLE QU
+1242 ; [.245A.0020.0002] # ETHIOPIC SYLLABLE QI
+1243 ; [.245B.0020.0002] # ETHIOPIC SYLLABLE QAA
+1244 ; [.245C.0020.0002] # ETHIOPIC SYLLABLE QEE
+1245 ; [.245D.0020.0002] # ETHIOPIC SYLLABLE QE
+1246 ; [.245E.0020.0002] # ETHIOPIC SYLLABLE QO
+1247 ; [.245F.0020.0002] # ETHIOPIC SYLLABLE QOA
+1248 ; [.2460.0020.0002] # ETHIOPIC SYLLABLE QWA
+124A ; [.2461.0020.0002] # ETHIOPIC SYLLABLE QWI
+124B ; [.2462.0020.0002] # ETHIOPIC SYLLABLE QWAA
+124C ; [.2463.0020.0002] # ETHIOPIC SYLLABLE QWEE
+124D ; [.2464.0020.0002] # ETHIOPIC SYLLABLE QWE
+1250 ; [.2465.0020.0002] # ETHIOPIC SYLLABLE QHA
+1251 ; [.2466.0020.0002] # ETHIOPIC SYLLABLE QHU
+1252 ; [.2467.0020.0002] # ETHIOPIC SYLLABLE QHI
+1253 ; [.2468.0020.0002] # ETHIOPIC SYLLABLE QHAA
+1254 ; [.2469.0020.0002] # ETHIOPIC SYLLABLE QHEE
+1255 ; [.246A.0020.0002] # ETHIOPIC SYLLABLE QHE
+1256 ; [.246B.0020.0002] # ETHIOPIC SYLLABLE QHO
+1258 ; [.246C.0020.0002] # ETHIOPIC SYLLABLE QHWA
+125A ; [.246D.0020.0002] # ETHIOPIC SYLLABLE QHWI
+125B ; [.246E.0020.0002] # ETHIOPIC SYLLABLE QHWAA
+125C ; [.246F.0020.0002] # ETHIOPIC SYLLABLE QHWEE
+125D ; [.2470.0020.0002] # ETHIOPIC SYLLABLE QHWE
+1260 ; [.2471.0020.0002] # ETHIOPIC SYLLABLE BA
+1261 ; [.2472.0020.0002] # ETHIOPIC SYLLABLE BU
+1262 ; [.2473.0020.0002] # ETHIOPIC SYLLABLE BI
+1263 ; [.2474.0020.0002] # ETHIOPIC SYLLABLE BAA
+1264 ; [.2475.0020.0002] # ETHIOPIC SYLLABLE BEE
+1265 ; [.2476.0020.0002] # ETHIOPIC SYLLABLE BE
+1266 ; [.2477.0020.0002] # ETHIOPIC SYLLABLE BO
+1267 ; [.2478.0020.0002] # ETHIOPIC SYLLABLE BWA
+1384 ; [.2479.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT BWA
+1385 ; [.247A.0020.0002] # ETHIOPIC SYLLABLE BWI
+1386 ; [.247B.0020.0002] # ETHIOPIC SYLLABLE BWEE
+1387 ; [.247C.0020.0002] # ETHIOPIC SYLLABLE BWE
+2D85 ; [.247D.0020.0002] # ETHIOPIC SYLLABLE BOA
+1268 ; [.247E.0020.0002] # ETHIOPIC SYLLABLE VA
+1269 ; [.247F.0020.0002] # ETHIOPIC SYLLABLE VU
+126A ; [.2480.0020.0002] # ETHIOPIC SYLLABLE VI
+126B ; [.2481.0020.0002] # ETHIOPIC SYLLABLE VAA
+126C ; [.2482.0020.0002] # ETHIOPIC SYLLABLE VEE
+126D ; [.2483.0020.0002] # ETHIOPIC SYLLABLE VE
+126E ; [.2484.0020.0002] # ETHIOPIC SYLLABLE VO
+126F ; [.2485.0020.0002] # ETHIOPIC SYLLABLE VWA
+1270 ; [.2486.0020.0002] # ETHIOPIC SYLLABLE TA
+1271 ; [.2487.0020.0002] # ETHIOPIC SYLLABLE TU
+1272 ; [.2488.0020.0002] # ETHIOPIC SYLLABLE TI
+1273 ; [.2489.0020.0002] # ETHIOPIC SYLLABLE TAA
+1274 ; [.248A.0020.0002] # ETHIOPIC SYLLABLE TEE
+1275 ; [.248B.0020.0002] # ETHIOPIC SYLLABLE TE
+1276 ; [.248C.0020.0002] # ETHIOPIC SYLLABLE TO
+1277 ; [.248D.0020.0002] # ETHIOPIC SYLLABLE TWA
+2D86 ; [.248E.0020.0002] # ETHIOPIC SYLLABLE TOA
+1278 ; [.248F.0020.0002] # ETHIOPIC SYLLABLE CA
+1279 ; [.2490.0020.0002] # ETHIOPIC SYLLABLE CU
+127A ; [.2491.0020.0002] # ETHIOPIC SYLLABLE CI
+127B ; [.2492.0020.0002] # ETHIOPIC SYLLABLE CAA
+127C ; [.2493.0020.0002] # ETHIOPIC SYLLABLE CEE
+127D ; [.2494.0020.0002] # ETHIOPIC SYLLABLE CE
+127E ; [.2495.0020.0002] # ETHIOPIC SYLLABLE CO
+127F ; [.2496.0020.0002] # ETHIOPIC SYLLABLE CWA
+2D87 ; [.2497.0020.0002] # ETHIOPIC SYLLABLE COA
+1280 ; [.2498.0020.0002] # ETHIOPIC SYLLABLE XA
+1281 ; [.2499.0020.0002] # ETHIOPIC SYLLABLE XU
+1282 ; [.249A.0020.0002] # ETHIOPIC SYLLABLE XI
+1283 ; [.249B.0020.0002] # ETHIOPIC SYLLABLE XAA
+1284 ; [.249C.0020.0002] # ETHIOPIC SYLLABLE XEE
+1285 ; [.249D.0020.0002] # ETHIOPIC SYLLABLE XE
+1286 ; [.249E.0020.0002] # ETHIOPIC SYLLABLE XO
+1287 ; [.249F.0020.0002] # ETHIOPIC SYLLABLE XOA
+1288 ; [.24A0.0020.0002] # ETHIOPIC SYLLABLE XWA
+128A ; [.24A1.0020.0002] # ETHIOPIC SYLLABLE XWI
+128B ; [.24A2.0020.0002] # ETHIOPIC SYLLABLE XWAA
+128C ; [.24A3.0020.0002] # ETHIOPIC SYLLABLE XWEE
+128D ; [.24A4.0020.0002] # ETHIOPIC SYLLABLE XWE
+1290 ; [.24A5.0020.0002] # ETHIOPIC SYLLABLE NA
+1291 ; [.24A6.0020.0002] # ETHIOPIC SYLLABLE NU
+1292 ; [.24A7.0020.0002] # ETHIOPIC SYLLABLE NI
+1293 ; [.24A8.0020.0002] # ETHIOPIC SYLLABLE NAA
+1294 ; [.24A9.0020.0002] # ETHIOPIC SYLLABLE NEE
+1295 ; [.24AA.0020.0002] # ETHIOPIC SYLLABLE NE
+1296 ; [.24AB.0020.0002] # ETHIOPIC SYLLABLE NO
+1297 ; [.24AC.0020.0002] # ETHIOPIC SYLLABLE NWA
+2D88 ; [.24AD.0020.0002] # ETHIOPIC SYLLABLE NOA
+1298 ; [.24AE.0020.0002] # ETHIOPIC SYLLABLE NYA
+1299 ; [.24AF.0020.0002] # ETHIOPIC SYLLABLE NYU
+129A ; [.24B0.0020.0002] # ETHIOPIC SYLLABLE NYI
+129B ; [.24B1.0020.0002] # ETHIOPIC SYLLABLE NYAA
+129C ; [.24B2.0020.0002] # ETHIOPIC SYLLABLE NYEE
+129D ; [.24B3.0020.0002] # ETHIOPIC SYLLABLE NYE
+129E ; [.24B4.0020.0002] # ETHIOPIC SYLLABLE NYO
+129F ; [.24B5.0020.0002] # ETHIOPIC SYLLABLE NYWA
+2D89 ; [.24B6.0020.0002] # ETHIOPIC SYLLABLE NYOA
+12A0 ; [.24B7.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL A
+12A1 ; [.24B8.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL U
+12A2 ; [.24B9.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL I
+12A3 ; [.24BA.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL AA
+12A4 ; [.24BB.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL EE
+12A5 ; [.24BC.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL E
+12A6 ; [.24BD.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL O
+12A7 ; [.24BE.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL WA
+2D8A ; [.24BF.0020.0002] # ETHIOPIC SYLLABLE GLOTTAL OA
+12A8 ; [.24C0.0020.0002] # ETHIOPIC SYLLABLE KA
+12A9 ; [.24C1.0020.0002] # ETHIOPIC SYLLABLE KU
+12AA ; [.24C2.0020.0002] # ETHIOPIC SYLLABLE KI
+12AB ; [.24C3.0020.0002] # ETHIOPIC SYLLABLE KAA
+12AC ; [.24C4.0020.0002] # ETHIOPIC SYLLABLE KEE
+12AD ; [.24C5.0020.0002] # ETHIOPIC SYLLABLE KE
+12AE ; [.24C6.0020.0002] # ETHIOPIC SYLLABLE KO
+12AF ; [.24C7.0020.0002] # ETHIOPIC SYLLABLE KOA
+12B0 ; [.24C8.0020.0002] # ETHIOPIC SYLLABLE KWA
+12B2 ; [.24C9.0020.0002] # ETHIOPIC SYLLABLE KWI
+12B3 ; [.24CA.0020.0002] # ETHIOPIC SYLLABLE KWAA
+12B4 ; [.24CB.0020.0002] # ETHIOPIC SYLLABLE KWEE
+12B5 ; [.24CC.0020.0002] # ETHIOPIC SYLLABLE KWE
+12B8 ; [.24CD.0020.0002] # ETHIOPIC SYLLABLE KXA
+12B9 ; [.24CE.0020.0002] # ETHIOPIC SYLLABLE KXU
+12BA ; [.24CF.0020.0002] # ETHIOPIC SYLLABLE KXI
+12BB ; [.24D0.0020.0002] # ETHIOPIC SYLLABLE KXAA
+12BC ; [.24D1.0020.0002] # ETHIOPIC SYLLABLE KXEE
+12BD ; [.24D2.0020.0002] # ETHIOPIC SYLLABLE KXE
+12BE ; [.24D3.0020.0002] # ETHIOPIC SYLLABLE KXO
+12C0 ; [.24D4.0020.0002] # ETHIOPIC SYLLABLE KXWA
+12C2 ; [.24D5.0020.0002] # ETHIOPIC SYLLABLE KXWI
+12C3 ; [.24D6.0020.0002] # ETHIOPIC SYLLABLE KXWAA
+12C4 ; [.24D7.0020.0002] # ETHIOPIC SYLLABLE KXWEE
+12C5 ; [.24D8.0020.0002] # ETHIOPIC SYLLABLE KXWE
+12C8 ; [.24D9.0020.0002] # ETHIOPIC SYLLABLE WA
+12C9 ; [.24DA.0020.0002] # ETHIOPIC SYLLABLE WU
+12CA ; [.24DB.0020.0002] # ETHIOPIC SYLLABLE WI
+12CB ; [.24DC.0020.0002] # ETHIOPIC SYLLABLE WAA
+12CC ; [.24DD.0020.0002] # ETHIOPIC SYLLABLE WEE
+12CD ; [.24DE.0020.0002] # ETHIOPIC SYLLABLE WE
+12CE ; [.24DF.0020.0002] # ETHIOPIC SYLLABLE WO
+12CF ; [.24E0.0020.0002] # ETHIOPIC SYLLABLE WOA
+12D0 ; [.24E1.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL A
+12D1 ; [.24E2.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL U
+12D2 ; [.24E3.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL I
+12D3 ; [.24E4.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL AA
+12D4 ; [.24E5.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL EE
+12D5 ; [.24E6.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL E
+12D6 ; [.24E7.0020.0002] # ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8 ; [.24E8.0020.0002] # ETHIOPIC SYLLABLE ZA
+12D9 ; [.24E9.0020.0002] # ETHIOPIC SYLLABLE ZU
+12DA ; [.24EA.0020.0002] # ETHIOPIC SYLLABLE ZI
+12DB ; [.24EB.0020.0002] # ETHIOPIC SYLLABLE ZAA
+12DC ; [.24EC.0020.0002] # ETHIOPIC SYLLABLE ZEE
+12DD ; [.24ED.0020.0002] # ETHIOPIC SYLLABLE ZE
+12DE ; [.24EE.0020.0002] # ETHIOPIC SYLLABLE ZO
+12DF ; [.24EF.0020.0002] # ETHIOPIC SYLLABLE ZWA
+2D8B ; [.24F0.0020.0002] # ETHIOPIC SYLLABLE ZOA
+AB11 ; [.24F1.0020.0002] # ETHIOPIC SYLLABLE DZU
+AB12 ; [.24F2.0020.0002] # ETHIOPIC SYLLABLE DZI
+AB13 ; [.24F3.0020.0002] # ETHIOPIC SYLLABLE DZAA
+AB14 ; [.24F4.0020.0002] # ETHIOPIC SYLLABLE DZEE
+AB15 ; [.24F5.0020.0002] # ETHIOPIC SYLLABLE DZE
+AB16 ; [.24F6.0020.0002] # ETHIOPIC SYLLABLE DZO
+12E0 ; [.24F7.0020.0002] # ETHIOPIC SYLLABLE ZHA
+12E1 ; [.24F8.0020.0002] # ETHIOPIC SYLLABLE ZHU
+12E2 ; [.24F9.0020.0002] # ETHIOPIC SYLLABLE ZHI
+12E3 ; [.24FA.0020.0002] # ETHIOPIC SYLLABLE ZHAA
+12E4 ; [.24FB.0020.0002] # ETHIOPIC SYLLABLE ZHEE
+12E5 ; [.24FC.0020.0002] # ETHIOPIC SYLLABLE ZHE
+12E6 ; [.24FD.0020.0002] # ETHIOPIC SYLLABLE ZHO
+12E7 ; [.24FE.0020.0002] # ETHIOPIC SYLLABLE ZHWA
+12E8 ; [.24FF.0020.0002] # ETHIOPIC SYLLABLE YA
+12E9 ; [.2500.0020.0002] # ETHIOPIC SYLLABLE YU
+12EA ; [.2501.0020.0002] # ETHIOPIC SYLLABLE YI
+12EB ; [.2502.0020.0002] # ETHIOPIC SYLLABLE YAA
+12EC ; [.2503.0020.0002] # ETHIOPIC SYLLABLE YEE
+12ED ; [.2504.0020.0002] # ETHIOPIC SYLLABLE YE
+12EE ; [.2505.0020.0002] # ETHIOPIC SYLLABLE YO
+12EF ; [.2506.0020.0002] # ETHIOPIC SYLLABLE YOA
+12F0 ; [.2507.0020.0002] # ETHIOPIC SYLLABLE DA
+12F1 ; [.2508.0020.0002] # ETHIOPIC SYLLABLE DU
+12F2 ; [.2509.0020.0002] # ETHIOPIC SYLLABLE DI
+12F3 ; [.250A.0020.0002] # ETHIOPIC SYLLABLE DAA
+12F4 ; [.250B.0020.0002] # ETHIOPIC SYLLABLE DEE
+12F5 ; [.250C.0020.0002] # ETHIOPIC SYLLABLE DE
+12F6 ; [.250D.0020.0002] # ETHIOPIC SYLLABLE DO
+12F7 ; [.250E.0020.0002] # ETHIOPIC SYLLABLE DWA
+2D8C ; [.250F.0020.0002] # ETHIOPIC SYLLABLE DOA
+AB09 ; [.2510.0020.0002] # ETHIOPIC SYLLABLE DDHU
+AB0A ; [.2511.0020.0002] # ETHIOPIC SYLLABLE DDHI
+AB0B ; [.2512.0020.0002] # ETHIOPIC SYLLABLE DDHAA
+AB0C ; [.2513.0020.0002] # ETHIOPIC SYLLABLE DDHEE
+AB0D ; [.2514.0020.0002] # ETHIOPIC SYLLABLE DDHE
+AB0E ; [.2515.0020.0002] # ETHIOPIC SYLLABLE DDHO
+12F8 ; [.2516.0020.0002] # ETHIOPIC SYLLABLE DDA
+12F9 ; [.2517.0020.0002] # ETHIOPIC SYLLABLE DDU
+12FA ; [.2518.0020.0002] # ETHIOPIC SYLLABLE DDI
+12FB ; [.2519.0020.0002] # ETHIOPIC SYLLABLE DDAA
+12FC ; [.251A.0020.0002] # ETHIOPIC SYLLABLE DDEE
+12FD ; [.251B.0020.0002] # ETHIOPIC SYLLABLE DDE
+12FE ; [.251C.0020.0002] # ETHIOPIC SYLLABLE DDO
+12FF ; [.251D.0020.0002] # ETHIOPIC SYLLABLE DDWA
+2D8D ; [.251E.0020.0002] # ETHIOPIC SYLLABLE DDOA
+1300 ; [.251F.0020.0002] # ETHIOPIC SYLLABLE JA
+1301 ; [.2520.0020.0002] # ETHIOPIC SYLLABLE JU
+1302 ; [.2521.0020.0002] # ETHIOPIC SYLLABLE JI
+1303 ; [.2522.0020.0002] # ETHIOPIC SYLLABLE JAA
+1304 ; [.2523.0020.0002] # ETHIOPIC SYLLABLE JEE
+1305 ; [.2524.0020.0002] # ETHIOPIC SYLLABLE JE
+1306 ; [.2525.0020.0002] # ETHIOPIC SYLLABLE JO
+1307 ; [.2526.0020.0002] # ETHIOPIC SYLLABLE JWA
+2D8E ; [.2527.0020.0002] # ETHIOPIC SYLLABLE JOA
+1308 ; [.2528.0020.0002] # ETHIOPIC SYLLABLE GA
+1309 ; [.2529.0020.0002] # ETHIOPIC SYLLABLE GU
+130A ; [.252A.0020.0002] # ETHIOPIC SYLLABLE GI
+130B ; [.252B.0020.0002] # ETHIOPIC SYLLABLE GAA
+130C ; [.252C.0020.0002] # ETHIOPIC SYLLABLE GEE
+130D ; [.252D.0020.0002] # ETHIOPIC SYLLABLE GE
+130E ; [.252E.0020.0002] # ETHIOPIC SYLLABLE GO
+130F ; [.252F.0020.0002] # ETHIOPIC SYLLABLE GOA
+1310 ; [.2530.0020.0002] # ETHIOPIC SYLLABLE GWA
+1312 ; [.2531.0020.0002] # ETHIOPIC SYLLABLE GWI
+1313 ; [.2532.0020.0002] # ETHIOPIC SYLLABLE GWAA
+1314 ; [.2533.0020.0002] # ETHIOPIC SYLLABLE GWEE
+1315 ; [.2534.0020.0002] # ETHIOPIC SYLLABLE GWE
+1318 ; [.2535.0020.0002] # ETHIOPIC SYLLABLE GGA
+1319 ; [.2536.0020.0002] # ETHIOPIC SYLLABLE GGU
+131A ; [.2537.0020.0002] # ETHIOPIC SYLLABLE GGI
+131B ; [.2538.0020.0002] # ETHIOPIC SYLLABLE GGAA
+131C ; [.2539.0020.0002] # ETHIOPIC SYLLABLE GGEE
+131D ; [.253A.0020.0002] # ETHIOPIC SYLLABLE GGE
+131E ; [.253B.0020.0002] # ETHIOPIC SYLLABLE GGO
+131F ; [.253C.0020.0002] # ETHIOPIC SYLLABLE GGWAA
+2D93 ; [.253D.0020.0002] # ETHIOPIC SYLLABLE GGWA
+2D94 ; [.253E.0020.0002] # ETHIOPIC SYLLABLE GGWI
+2D95 ; [.253F.0020.0002] # ETHIOPIC SYLLABLE GGWEE
+2D96 ; [.2540.0020.0002] # ETHIOPIC SYLLABLE GGWE
+1320 ; [.2541.0020.0002] # ETHIOPIC SYLLABLE THA
+1321 ; [.2542.0020.0002] # ETHIOPIC SYLLABLE THU
+1322 ; [.2543.0020.0002] # ETHIOPIC SYLLABLE THI
+1323 ; [.2544.0020.0002] # ETHIOPIC SYLLABLE THAA
+1324 ; [.2545.0020.0002] # ETHIOPIC SYLLABLE THEE
+1325 ; [.2546.0020.0002] # ETHIOPIC SYLLABLE THE
+1326 ; [.2547.0020.0002] # ETHIOPIC SYLLABLE THO
+1327 ; [.2548.0020.0002] # ETHIOPIC SYLLABLE THWA
+2D8F ; [.2549.0020.0002] # ETHIOPIC SYLLABLE THOA
+1328 ; [.254A.0020.0002] # ETHIOPIC SYLLABLE CHA
+1329 ; [.254B.0020.0002] # ETHIOPIC SYLLABLE CHU
+132A ; [.254C.0020.0002] # ETHIOPIC SYLLABLE CHI
+132B ; [.254D.0020.0002] # ETHIOPIC SYLLABLE CHAA
+132C ; [.254E.0020.0002] # ETHIOPIC SYLLABLE CHEE
+132D ; [.254F.0020.0002] # ETHIOPIC SYLLABLE CHE
+132E ; [.2550.0020.0002] # ETHIOPIC SYLLABLE CHO
+132F ; [.2551.0020.0002] # ETHIOPIC SYLLABLE CHWA
+2D90 ; [.2552.0020.0002] # ETHIOPIC SYLLABLE CHOA
+AB20 ; [.2553.0020.0002] # ETHIOPIC SYLLABLE CCHHA
+AB21 ; [.2554.0020.0002] # ETHIOPIC SYLLABLE CCHHU
+AB22 ; [.2555.0020.0002] # ETHIOPIC SYLLABLE CCHHI
+AB23 ; [.2556.0020.0002] # ETHIOPIC SYLLABLE CCHHAA
+AB24 ; [.2557.0020.0002] # ETHIOPIC SYLLABLE CCHHEE
+AB25 ; [.2558.0020.0002] # ETHIOPIC SYLLABLE CCHHE
+AB26 ; [.2559.0020.0002] # ETHIOPIC SYLLABLE CCHHO
+1330 ; [.255A.0020.0002] # ETHIOPIC SYLLABLE PHA
+1331 ; [.255B.0020.0002] # ETHIOPIC SYLLABLE PHU
+1332 ; [.255C.0020.0002] # ETHIOPIC SYLLABLE PHI
+1333 ; [.255D.0020.0002] # ETHIOPIC SYLLABLE PHAA
+1334 ; [.255E.0020.0002] # ETHIOPIC SYLLABLE PHEE
+1335 ; [.255F.0020.0002] # ETHIOPIC SYLLABLE PHE
+1336 ; [.2560.0020.0002] # ETHIOPIC SYLLABLE PHO
+1337 ; [.2561.0020.0002] # ETHIOPIC SYLLABLE PHWA
+2D91 ; [.2562.0020.0002] # ETHIOPIC SYLLABLE PHOA
+1338 ; [.2563.0020.0002] # ETHIOPIC SYLLABLE TSA
+1339 ; [.2564.0020.0002] # ETHIOPIC SYLLABLE TSU
+133A ; [.2565.0020.0002] # ETHIOPIC SYLLABLE TSI
+133B ; [.2566.0020.0002] # ETHIOPIC SYLLABLE TSAA
+133C ; [.2567.0020.0002] # ETHIOPIC SYLLABLE TSEE
+133D ; [.2568.0020.0002] # ETHIOPIC SYLLABLE TSE
+133E ; [.2569.0020.0002] # ETHIOPIC SYLLABLE TSO
+133F ; [.256A.0020.0002] # ETHIOPIC SYLLABLE TSWA
+AB28 ; [.256B.0020.0002] # ETHIOPIC SYLLABLE BBA
+AB29 ; [.256C.0020.0002] # ETHIOPIC SYLLABLE BBU
+AB2A ; [.256D.0020.0002] # ETHIOPIC SYLLABLE BBI
+AB2B ; [.256E.0020.0002] # ETHIOPIC SYLLABLE BBAA
+AB2C ; [.256F.0020.0002] # ETHIOPIC SYLLABLE BBEE
+AB2D ; [.2570.0020.0002] # ETHIOPIC SYLLABLE BBE
+AB2E ; [.2571.0020.0002] # ETHIOPIC SYLLABLE BBO
+1340 ; [.2572.0020.0002] # ETHIOPIC SYLLABLE TZA
+1341 ; [.2573.0020.0002] # ETHIOPIC SYLLABLE TZU
+1342 ; [.2574.0020.0002] # ETHIOPIC SYLLABLE TZI
+1343 ; [.2575.0020.0002] # ETHIOPIC SYLLABLE TZAA
+1344 ; [.2576.0020.0002] # ETHIOPIC SYLLABLE TZEE
+1345 ; [.2577.0020.0002] # ETHIOPIC SYLLABLE TZE
+1346 ; [.2578.0020.0002] # ETHIOPIC SYLLABLE TZO
+1347 ; [.2579.0020.0002] # ETHIOPIC SYLLABLE TZOA
+1348 ; [.257A.0020.0002] # ETHIOPIC SYLLABLE FA
+1349 ; [.257B.0020.0002] # ETHIOPIC SYLLABLE FU
+134A ; [.257C.0020.0002] # ETHIOPIC SYLLABLE FI
+134B ; [.257D.0020.0002] # ETHIOPIC SYLLABLE FAA
+134C ; [.257E.0020.0002] # ETHIOPIC SYLLABLE FEE
+134D ; [.257F.0020.0002] # ETHIOPIC SYLLABLE FE
+134E ; [.2580.0020.0002] # ETHIOPIC SYLLABLE FO
+134F ; [.2581.0020.0002] # ETHIOPIC SYLLABLE FWA
+1388 ; [.2582.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT FWA
+1389 ; [.2583.0020.0002] # ETHIOPIC SYLLABLE FWI
+138A ; [.2584.0020.0002] # ETHIOPIC SYLLABLE FWEE
+138B ; [.2585.0020.0002] # ETHIOPIC SYLLABLE FWE
+1350 ; [.2586.0020.0002] # ETHIOPIC SYLLABLE PA
+1351 ; [.2587.0020.0002] # ETHIOPIC SYLLABLE PU
+1352 ; [.2588.0020.0002] # ETHIOPIC SYLLABLE PI
+1353 ; [.2589.0020.0002] # ETHIOPIC SYLLABLE PAA
+1354 ; [.258A.0020.0002] # ETHIOPIC SYLLABLE PEE
+1355 ; [.258B.0020.0002] # ETHIOPIC SYLLABLE PE
+1356 ; [.258C.0020.0002] # ETHIOPIC SYLLABLE PO
+1357 ; [.258D.0020.0002] # ETHIOPIC SYLLABLE PWA
+138C ; [.258E.0020.0002] # ETHIOPIC SYLLABLE SEBATBEIT PWA
+138D ; [.258F.0020.0002] # ETHIOPIC SYLLABLE PWI
+138E ; [.2590.0020.0002] # ETHIOPIC SYLLABLE PWEE
+138F ; [.2591.0020.0002] # ETHIOPIC SYLLABLE PWE
+2D92 ; [.2592.0020.0002] # ETHIOPIC SYLLABLE POA
+1358 ; [.2593.0020.0002] # ETHIOPIC SYLLABLE RYA
+1359 ; [.2594.0020.0002] # ETHIOPIC SYLLABLE MYA
+135A ; [.2595.0020.0002] # ETHIOPIC SYLLABLE FYA
+2DA0 ; [.2596.0020.0002] # ETHIOPIC SYLLABLE SSA
+2DA1 ; [.2597.0020.0002] # ETHIOPIC SYLLABLE SSU
+2DA2 ; [.2598.0020.0002] # ETHIOPIC SYLLABLE SSI
+2DA3 ; [.2599.0020.0002] # ETHIOPIC SYLLABLE SSAA
+2DA4 ; [.259A.0020.0002] # ETHIOPIC SYLLABLE SSEE
+2DA5 ; [.259B.0020.0002] # ETHIOPIC SYLLABLE SSE
+2DA6 ; [.259C.0020.0002] # ETHIOPIC SYLLABLE SSO
+2DA8 ; [.259D.0020.0002] # ETHIOPIC SYLLABLE CCA
+2DA9 ; [.259E.0020.0002] # ETHIOPIC SYLLABLE CCU
+2DAA ; [.259F.0020.0002] # ETHIOPIC SYLLABLE CCI
+2DAB ; [.25A0.0020.0002] # ETHIOPIC SYLLABLE CCAA
+2DAC ; [.25A1.0020.0002] # ETHIOPIC SYLLABLE CCEE
+2DAD ; [.25A2.0020.0002] # ETHIOPIC SYLLABLE CCE
+2DAE ; [.25A3.0020.0002] # ETHIOPIC SYLLABLE CCO
+2DB0 ; [.25A4.0020.0002] # ETHIOPIC SYLLABLE ZZA
+2DB1 ; [.25A5.0020.0002] # ETHIOPIC SYLLABLE ZZU
+2DB2 ; [.25A6.0020.0002] # ETHIOPIC SYLLABLE ZZI
+2DB3 ; [.25A7.0020.0002] # ETHIOPIC SYLLABLE ZZAA
+2DB4 ; [.25A8.0020.0002] # ETHIOPIC SYLLABLE ZZEE
+2DB5 ; [.25A9.0020.0002] # ETHIOPIC SYLLABLE ZZE
+2DB6 ; [.25AA.0020.0002] # ETHIOPIC SYLLABLE ZZO
+2DB8 ; [.25AB.0020.0002] # ETHIOPIC SYLLABLE CCHA
+2DB9 ; [.25AC.0020.0002] # ETHIOPIC SYLLABLE CCHU
+2DBA ; [.25AD.0020.0002] # ETHIOPIC SYLLABLE CCHI
+2DBB ; [.25AE.0020.0002] # ETHIOPIC SYLLABLE CCHAA
+2DBC ; [.25AF.0020.0002] # ETHIOPIC SYLLABLE CCHEE
+2DBD ; [.25B0.0020.0002] # ETHIOPIC SYLLABLE CCHE
+2DBE ; [.25B1.0020.0002] # ETHIOPIC SYLLABLE CCHO
+2DC0 ; [.25B2.0020.0002] # ETHIOPIC SYLLABLE QYA
+2DC1 ; [.25B3.0020.0002] # ETHIOPIC SYLLABLE QYU
+2DC2 ; [.25B4.0020.0002] # ETHIOPIC SYLLABLE QYI
+2DC3 ; [.25B5.0020.0002] # ETHIOPIC SYLLABLE QYAA
+2DC4 ; [.25B6.0020.0002] # ETHIOPIC SYLLABLE QYEE
+2DC5 ; [.25B7.0020.0002] # ETHIOPIC SYLLABLE QYE
+2DC6 ; [.25B8.0020.0002] # ETHIOPIC SYLLABLE QYO
+2DC8 ; [.25B9.0020.0002] # ETHIOPIC SYLLABLE KYA
+2DC9 ; [.25BA.0020.0002] # ETHIOPIC SYLLABLE KYU
+2DCA ; [.25BB.0020.0002] # ETHIOPIC SYLLABLE KYI
+2DCB ; [.25BC.0020.0002] # ETHIOPIC SYLLABLE KYAA
+2DCC ; [.25BD.0020.0002] # ETHIOPIC SYLLABLE KYEE
+2DCD ; [.25BE.0020.0002] # ETHIOPIC SYLLABLE KYE
+2DCE ; [.25BF.0020.0002] # ETHIOPIC SYLLABLE KYO
+2DD0 ; [.25C0.0020.0002] # ETHIOPIC SYLLABLE XYA
+2DD1 ; [.25C1.0020.0002] # ETHIOPIC SYLLABLE XYU
+2DD2 ; [.25C2.0020.0002] # ETHIOPIC SYLLABLE XYI
+2DD3 ; [.25C3.0020.0002] # ETHIOPIC SYLLABLE XYAA
+2DD4 ; [.25C4.0020.0002] # ETHIOPIC SYLLABLE XYEE
+2DD5 ; [.25C5.0020.0002] # ETHIOPIC SYLLABLE XYE
+2DD6 ; [.25C6.0020.0002] # ETHIOPIC SYLLABLE XYO
+2DD8 ; [.25C7.0020.0002] # ETHIOPIC SYLLABLE GYA
+2DD9 ; [.25C8.0020.0002] # ETHIOPIC SYLLABLE GYU
+2DDA ; [.25C9.0020.0002] # ETHIOPIC SYLLABLE GYI
+2DDB ; [.25CA.0020.0002] # ETHIOPIC SYLLABLE GYAA
+2DDC ; [.25CB.0020.0002] # ETHIOPIC SYLLABLE GYEE
+2DDD ; [.25CC.0020.0002] # ETHIOPIC SYLLABLE GYE
+2DDE ; [.25CD.0020.0002] # ETHIOPIC SYLLABLE GYO
+0950 ; [.25CE.0020.0002] # DEVANAGARI OM
+A8FD ; [.25CF.0020.0002] # DEVANAGARI JAIN OM
+0972 ; [.25D0.0020.0002] # DEVANAGARI LETTER CANDRA A
+0904 ; [.25D1.0020.0002] # DEVANAGARI LETTER SHORT A
+0905 ; [.25D2.0020.0002] # DEVANAGARI LETTER A
+0906 ; [.25D3.0020.0002] # DEVANAGARI LETTER AA
+0973 ; [.25D4.0020.0002] # DEVANAGARI LETTER OE
+0974 ; [.25D5.0020.0002] # DEVANAGARI LETTER OOE
+0975 ; [.25D6.0020.0002] # DEVANAGARI LETTER AW
+0976 ; [.25D7.0020.0002] # DEVANAGARI LETTER UE
+0977 ; [.25D8.0020.0002] # DEVANAGARI LETTER UUE
+0907 ; [.25D9.0020.0002] # DEVANAGARI LETTER I
+0908 ; [.25DA.0020.0002] # DEVANAGARI LETTER II
+0909 ; [.25DB.0020.0002] # DEVANAGARI LETTER U
+090A ; [.25DC.0020.0002] # DEVANAGARI LETTER UU
+090B ; [.25DD.0020.0002] # DEVANAGARI LETTER VOCALIC R
+0960 ; [.25DE.0020.0002] # DEVANAGARI LETTER VOCALIC RR
+090C ; [.25DF.0020.0002] # DEVANAGARI LETTER VOCALIC L
+0961 ; [.25E0.0020.0002] # DEVANAGARI LETTER VOCALIC LL
+090D ; [.25E1.0020.0002] # DEVANAGARI LETTER CANDRA E
+090E ; [.25E2.0020.0002] # DEVANAGARI LETTER SHORT E
+090F ; [.25E3.0020.0002] # DEVANAGARI LETTER E
+0910 ; [.25E4.0020.0002] # DEVANAGARI LETTER AI
+0911 ; [.25E5.0020.0002] # DEVANAGARI LETTER CANDRA O
+0912 ; [.25E6.0020.0002] # DEVANAGARI LETTER SHORT O
+0913 ; [.25E7.0020.0002] # DEVANAGARI LETTER O
+0914 ; [.25E8.0020.0002] # DEVANAGARI LETTER AU
+0915 ; [.25E9.0020.0002] # DEVANAGARI LETTER KA
+0958 ; [.25E9.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER QA
+0916 ; [.25EA.0020.0002] # DEVANAGARI LETTER KHA
+0959 ; [.25EA.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER KHHA
+0917 ; [.25EB.0020.0002] # DEVANAGARI LETTER GA
+095A ; [.25EB.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER GHHA
+097B ; [.25EC.0020.0002] # DEVANAGARI LETTER GGA
+0918 ; [.25ED.0020.0002] # DEVANAGARI LETTER GHA
+0919 ; [.25EE.0020.0002] # DEVANAGARI LETTER NGA
+091A ; [.25EF.0020.0002] # DEVANAGARI LETTER CA
+091B ; [.25F0.0020.0002] # DEVANAGARI LETTER CHA
+091C ; [.25F1.0020.0002] # DEVANAGARI LETTER JA
+095B ; [.25F1.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER ZA
+0979 ; [.25F2.0020.0002] # DEVANAGARI LETTER ZHA
+097C ; [.25F3.0020.0002] # DEVANAGARI LETTER JJA
+091D ; [.25F4.0020.0002] # DEVANAGARI LETTER JHA
+091E ; [.25F5.0020.0002] # DEVANAGARI LETTER NYA
+091F ; [.25F6.0020.0002] # DEVANAGARI LETTER TTA
+0920 ; [.25F7.0020.0002] # DEVANAGARI LETTER TTHA
+0978 ; [.25F8.0020.0002] # DEVANAGARI LETTER MARWARI DDA
+0921 ; [.25F9.0020.0002] # DEVANAGARI LETTER DDA
+095C ; [.25F9.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER DDDHA
+097E ; [.25FA.0020.0002] # DEVANAGARI LETTER DDDA
+0922 ; [.25FB.0020.0002] # DEVANAGARI LETTER DDHA
+095D ; [.25FB.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER RHA
+0923 ; [.25FC.0020.0002] # DEVANAGARI LETTER NNA
+0924 ; [.25FD.0020.0002] # DEVANAGARI LETTER TA
+0925 ; [.25FE.0020.0002] # DEVANAGARI LETTER THA
+0926 ; [.25FF.0020.0002] # DEVANAGARI LETTER DA
+0927 ; [.2600.0020.0002] # DEVANAGARI LETTER DHA
+0928 ; [.2601.0020.0002] # DEVANAGARI LETTER NA
+0929 ; [.2601.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER NNNA
+092A ; [.2602.0020.0002] # DEVANAGARI LETTER PA
+092B ; [.2603.0020.0002] # DEVANAGARI LETTER PHA
+095E ; [.2603.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER FA
+092C ; [.2604.0020.0002] # DEVANAGARI LETTER BA
+097F ; [.2605.0020.0002] # DEVANAGARI LETTER BBA
+092D ; [.2606.0020.0002] # DEVANAGARI LETTER BHA
+092E ; [.2607.0020.0002] # DEVANAGARI LETTER MA
+092F ; [.2608.0020.0002] # DEVANAGARI LETTER YA
+095F ; [.2608.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER YYA
+097A ; [.2609.0020.0002] # DEVANAGARI LETTER HEAVY YA
+0930 ; [.260A.0020.0002] # DEVANAGARI LETTER RA
+0931 ; [.260A.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER RRA
+0932 ; [.260B.0020.0002] # DEVANAGARI LETTER LA
+0933 ; [.260C.0020.0002] # DEVANAGARI LETTER LLA
+0934 ; [.260C.0020.0002][.0000.00BD.0002] # DEVANAGARI LETTER LLLA
+0935 ; [.260D.0020.0002] # DEVANAGARI LETTER VA
+0936 ; [.260E.0020.0002] # DEVANAGARI LETTER SHA
+0937 ; [.260F.0020.0002] # DEVANAGARI LETTER SSA
+0938 ; [.2610.0020.0002] # DEVANAGARI LETTER SA
+0939 ; [.2611.0020.0002] # DEVANAGARI LETTER HA
+093D ; [.2612.0020.0002] # DEVANAGARI SIGN AVAGRAHA
+097D ; [.2613.0020.0002] # DEVANAGARI LETTER GLOTTAL STOP
+1CE9 ; [.2614.0020.0002] # VEDIC SIGN ANUSVARA ANTARGOMUKHA
+1CEA ; [.2614.0020.0004] # VEDIC SIGN ANUSVARA BAHIRGOMUKHA
+1CEB ; [.2614.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA
+1CEC ; [.2614.0020.0004] # VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+1CEE ; [.2614.0020.0004] # VEDIC SIGN HEXIFORM LONG ANUSVARA
+1CEF ; [.2614.0020.0004] # VEDIC SIGN LONG ANUSVARA
+1CF0 ; [.2614.0020.0004] # VEDIC SIGN RTHANG LONG ANUSVARA
+1CF1 ; [.2614.0020.0004] # VEDIC SIGN ANUSVARA UBHAYATO MUKHA
+1CF5 ; [.2615.0020.0002] # VEDIC SIGN JIHVAMULIYA
+1CF6 ; [.2616.0020.0002] # VEDIC SIGN UPADHMANIYA
+A8F2 ; [.2617.0020.0002] # DEVANAGARI SIGN SPACING CANDRABINDU
+A8F3 ; [.2617.0020.0004] # DEVANAGARI SIGN CANDRABINDU VIRAMA
+A8F4 ; [.2617.0020.0004] # DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
+A8F5 ; [.2617.0020.0004] # DEVANAGARI SIGN CANDRABINDU TWO
+A8F6 ; [.2617.0020.0004] # DEVANAGARI SIGN CANDRABINDU THREE
+A8F7 ; [.2617.0020.0004] # DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8FB ; [.2618.0020.0002] # DEVANAGARI HEADSTROKE
+093E ; [.2619.0020.0002] # DEVANAGARI VOWEL SIGN AA
+093A ; [.261A.0020.0002] # DEVANAGARI VOWEL SIGN OE
+093B ; [.261B.0020.0002] # DEVANAGARI VOWEL SIGN OOE
+094F ; [.261C.0020.0002] # DEVANAGARI VOWEL SIGN AW
+0956 ; [.261D.0020.0002] # DEVANAGARI VOWEL SIGN UE
+0957 ; [.261E.0020.0002] # DEVANAGARI VOWEL SIGN UUE
+093F ; [.261F.0020.0002] # DEVANAGARI VOWEL SIGN I
+0940 ; [.2620.0020.0002] # DEVANAGARI VOWEL SIGN II
+0941 ; [.2621.0020.0002] # DEVANAGARI VOWEL SIGN U
+0942 ; [.2622.0020.0002] # DEVANAGARI VOWEL SIGN UU
+0943 ; [.2623.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC R
+0944 ; [.2624.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC RR
+0962 ; [.2625.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC L
+0963 ; [.2626.0020.0002] # DEVANAGARI VOWEL SIGN VOCALIC LL
+0945 ; [.2627.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA E
+0955 ; [.2628.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA LONG E
+0946 ; [.2629.0020.0002] # DEVANAGARI VOWEL SIGN SHORT E
+0947 ; [.262A.0020.0002] # DEVANAGARI VOWEL SIGN E
+094E ; [.262B.0020.0002] # DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
+0948 ; [.262C.0020.0002] # DEVANAGARI VOWEL SIGN AI
+0949 ; [.262D.0020.0002] # DEVANAGARI VOWEL SIGN CANDRA O
+094A ; [.262E.0020.0002] # DEVANAGARI VOWEL SIGN SHORT O
+094B ; [.262F.0020.0002] # DEVANAGARI VOWEL SIGN O
+094C ; [.2630.0020.0002] # DEVANAGARI VOWEL SIGN AU
+094D ; [.2631.0020.0002] # DEVANAGARI SIGN VIRAMA
+0980 ; [.2632.0020.0002] # BENGALI ANJI
+0985 ; [.2633.0020.0002] # BENGALI LETTER A
+0986 ; [.2634.0020.0002] # BENGALI LETTER AA
+0987 ; [.2635.0020.0002] # BENGALI LETTER I
+0988 ; [.2636.0020.0002] # BENGALI LETTER II
+0989 ; [.2637.0020.0002] # BENGALI LETTER U
+098A ; [.2638.0020.0002] # BENGALI LETTER UU
+098B ; [.2639.0020.0002] # BENGALI LETTER VOCALIC R
+09E0 ; [.263A.0020.0002] # BENGALI LETTER VOCALIC RR
+098C ; [.263B.0020.0002] # BENGALI LETTER VOCALIC L
+09E1 ; [.263C.0020.0002] # BENGALI LETTER VOCALIC LL
+098F ; [.263D.0020.0002] # BENGALI LETTER E
+0990 ; [.263E.0020.0002] # BENGALI LETTER AI
+0993 ; [.263F.0020.0002] # BENGALI LETTER O
+0994 ; [.2640.0020.0002] # BENGALI LETTER AU
+0995 ; [.2641.0020.0002] # BENGALI LETTER KA
+0996 ; [.2642.0020.0002] # BENGALI LETTER KHA
+0997 ; [.2643.0020.0002] # BENGALI LETTER GA
+0998 ; [.2644.0020.0002] # BENGALI LETTER GHA
+0999 ; [.2645.0020.0002] # BENGALI LETTER NGA
+099A ; [.2646.0020.0002] # BENGALI LETTER CA
+099B ; [.2647.0020.0002] # BENGALI LETTER CHA
+099C ; [.2648.0020.0002] # BENGALI LETTER JA
+099D ; [.2649.0020.0002] # BENGALI LETTER JHA
+099E ; [.264A.0020.0002] # BENGALI LETTER NYA
+099F ; [.264B.0020.0002] # BENGALI LETTER TTA
+09A0 ; [.264C.0020.0002] # BENGALI LETTER TTHA
+09A1 ; [.264D.0020.0002] # BENGALI LETTER DDA
+09DC ; [.264D.0020.0002][.0000.00BD.0002] # BENGALI LETTER RRA
+09A2 ; [.264E.0020.0002] # BENGALI LETTER DDHA
+09DD ; [.264E.0020.0002][.0000.00BD.0002] # BENGALI LETTER RHA
+09A3 ; [.264F.0020.0002] # BENGALI LETTER NNA
+09A4 ; [.2650.0020.0002] # BENGALI LETTER TA
+09CE ; [.2650.0020.0004][.2671.0020.0004] # BENGALI LETTER KHANDA TA
+09A5 ; [.2651.0020.0002] # BENGALI LETTER THA
+09A6 ; [.2652.0020.0002] # BENGALI LETTER DA
+09A7 ; [.2653.0020.0002] # BENGALI LETTER DHA
+09A8 ; [.2654.0020.0002] # BENGALI LETTER NA
+09AA ; [.2655.0020.0002] # BENGALI LETTER PA
+09AB ; [.2656.0020.0002] # BENGALI LETTER PHA
+09AC ; [.2657.0020.0002] # BENGALI LETTER BA
+09AD ; [.2658.0020.0002] # BENGALI LETTER BHA
+09AE ; [.2659.0020.0002] # BENGALI LETTER MA
+09AF ; [.265A.0020.0002] # BENGALI LETTER YA
+09DF ; [.265A.0020.0002][.0000.00BD.0002] # BENGALI LETTER YYA
+09B0 ; [.265B.0020.0002] # BENGALI LETTER RA
+09F0 ; [.265C.0020.0002] # BENGALI LETTER RA WITH MIDDLE DIAGONAL
+09B2 ; [.265D.0020.0002] # BENGALI LETTER LA
+09F1 ; [.265E.0020.0002] # BENGALI LETTER RA WITH LOWER DIAGONAL
+09B6 ; [.265F.0020.0002] # BENGALI LETTER SHA
+09B7 ; [.2660.0020.0002] # BENGALI LETTER SSA
+09B8 ; [.2661.0020.0002] # BENGALI LETTER SA
+09B9 ; [.2662.0020.0002] # BENGALI LETTER HA
+09BD ; [.2663.0020.0002] # BENGALI SIGN AVAGRAHA
+09BE ; [.2664.0020.0002] # BENGALI VOWEL SIGN AA
+09BF ; [.2665.0020.0002] # BENGALI VOWEL SIGN I
+09C0 ; [.2666.0020.0002] # BENGALI VOWEL SIGN II
+09C1 ; [.2667.0020.0002] # BENGALI VOWEL SIGN U
+09C2 ; [.2668.0020.0002] # BENGALI VOWEL SIGN UU
+09C3 ; [.2669.0020.0002] # BENGALI VOWEL SIGN VOCALIC R
+09C4 ; [.266A.0020.0002] # BENGALI VOWEL SIGN VOCALIC RR
+09E2 ; [.266B.0020.0002] # BENGALI VOWEL SIGN VOCALIC L
+09E3 ; [.266C.0020.0002] # BENGALI VOWEL SIGN VOCALIC LL
+09C7 ; [.266D.0020.0002] # BENGALI VOWEL SIGN E
+09C8 ; [.266E.0020.0002] # BENGALI VOWEL SIGN AI
+09CB ; [.266F.0020.0002] # BENGALI VOWEL SIGN O
+09C7 09BE ; [.266F.0020.0002] # BENGALI VOWEL SIGN O
+09CC ; [.2670.0020.0002] # BENGALI VOWEL SIGN AU
+09C7 09D7 ; [.2670.0020.0002] # BENGALI VOWEL SIGN AU
+09CD ; [.2671.0020.0002] # BENGALI SIGN VIRAMA
+09D7 ; [.2672.0020.0002] # BENGALI AU LENGTH MARK
+0A74 ; [.2673.0020.0002] # GURMUKHI EK ONKAR
+0A73 ; [.2674.0020.0002] # GURMUKHI URA
+0A09 ; [.2675.0020.0002] # GURMUKHI LETTER U
+0A0A ; [.2676.0020.0002] # GURMUKHI LETTER UU
+0A13 ; [.2677.0020.0002] # GURMUKHI LETTER OO
+0A05 ; [.2678.0020.0002] # GURMUKHI LETTER A
+0A06 ; [.2679.0020.0002] # GURMUKHI LETTER AA
+0A10 ; [.267A.0020.0002] # GURMUKHI LETTER AI
+0A14 ; [.267B.0020.0002] # GURMUKHI LETTER AU
+0A72 ; [.267C.0020.0002] # GURMUKHI IRI
+0A07 ; [.267D.0020.0002] # GURMUKHI LETTER I
+0A08 ; [.267E.0020.0002] # GURMUKHI LETTER II
+0A0F ; [.267F.0020.0002] # GURMUKHI LETTER EE
+0A38 ; [.2680.0020.0002] # GURMUKHI LETTER SA
+0A36 ; [.2680.0020.0002][.0000.00BD.0002] # GURMUKHI LETTER SHA
+0A39 ; [.2681.0020.0002] # GURMUKHI LETTER HA
+0A51 ; [.2682.0020.0002] # GURMUKHI SIGN UDAAT
+0A15 ; [.2683.0020.0002] # GURMUKHI LETTER KA
+0A16 ; [.2684.0020.0002] # GURMUKHI LETTER KHA
+0A59 ; [.2684.0020.0002][.0000.00BD.0002] # GURMUKHI LETTER KHHA
+0A17 ; [.2685.0020.0002] # GURMUKHI LETTER GA
+0A5A ; [.2685.0020.0002][.0000.00BD.0002] # GURMUKHI LETTER GHHA
+0A18 ; [.2686.0020.0002] # GURMUKHI LETTER GHA
+0A19 ; [.2687.0020.0002] # GURMUKHI LETTER NGA
+0A1A ; [.2688.0020.0002] # GURMUKHI LETTER CA
+0A1B ; [.2689.0020.0002] # GURMUKHI LETTER CHA
+0A1C ; [.268A.0020.0002] # GURMUKHI LETTER JA
+0A5B ; [.268A.0020.0002][.0000.00BD.0002] # GURMUKHI LETTER ZA
+0A1D ; [.268B.0020.0002] # GURMUKHI LETTER JHA
+0A1E ; [.268C.0020.0002] # GURMUKHI LETTER NYA
+0A1F ; [.268D.0020.0002] # GURMUKHI LETTER TTA
+0A20 ; [.268E.0020.0002] # GURMUKHI LETTER TTHA
+0A21 ; [.268F.0020.0002] # GURMUKHI LETTER DDA
+0A22 ; [.2690.0020.0002] # GURMUKHI LETTER DDHA
+0A23 ; [.2691.0020.0002] # GURMUKHI LETTER NNA
+0A24 ; [.2692.0020.0002] # GURMUKHI LETTER TA
+0A25 ; [.2693.0020.0002] # GURMUKHI LETTER THA
+0A26 ; [.2694.0020.0002] # GURMUKHI LETTER DA
+0A27 ; [.2695.0020.0002] # GURMUKHI LETTER DHA
+0A28 ; [.2696.0020.0002] # GURMUKHI LETTER NA
+0A2A ; [.2697.0020.0002] # GURMUKHI LETTER PA
+0A2B ; [.2698.0020.0002] # GURMUKHI LETTER PHA
+0A5E ; [.2698.0020.0002][.0000.00BD.0002] # GURMUKHI LETTER FA
+0A2C ; [.2699.0020.0002] # GURMUKHI LETTER BA
+0A2D ; [.269A.0020.0002] # GURMUKHI LETTER BHA
+0A2E ; [.269B.0020.0002] # GURMUKHI LETTER MA
+0A2F ; [.269C.0020.0002] # GURMUKHI LETTER YA
+0A75 ; [.269D.0020.0002] # GURMUKHI SIGN YAKASH
+0A30 ; [.269E.0020.0002] # GURMUKHI LETTER RA
+0A32 ; [.269F.0020.0002] # GURMUKHI LETTER LA
+0A33 ; [.269F.0020.0002][.0000.00BD.0002] # GURMUKHI LETTER LLA
+0A35 ; [.26A0.0020.0002] # GURMUKHI LETTER VA
+0A5C ; [.26A1.0020.0002] # GURMUKHI LETTER RRA
+0A3E ; [.26A2.0020.0002] # GURMUKHI VOWEL SIGN AA
+0A3F ; [.26A3.0020.0002] # GURMUKHI VOWEL SIGN I
+0A40 ; [.26A4.0020.0002] # GURMUKHI VOWEL SIGN II
+0A41 ; [.26A5.0020.0002] # GURMUKHI VOWEL SIGN U
+0A42 ; [.26A6.0020.0002] # GURMUKHI VOWEL SIGN UU
+0A47 ; [.26A7.0020.0002] # GURMUKHI VOWEL SIGN EE
+0A48 ; [.26A8.0020.0002] # GURMUKHI VOWEL SIGN AI
+0A4B ; [.26A9.0020.0002] # GURMUKHI VOWEL SIGN OO
+0A4C ; [.26AA.0020.0002] # GURMUKHI VOWEL SIGN AU
+0A4D ; [.26AB.0020.0002] # GURMUKHI SIGN VIRAMA
+0AD0 ; [.26AC.0020.0002] # GUJARATI OM
+0A85 ; [.26AD.0020.0002] # GUJARATI LETTER A
+0A86 ; [.26AE.0020.0002] # GUJARATI LETTER AA
+0A87 ; [.26AF.0020.0002] # GUJARATI LETTER I
+0A88 ; [.26B0.0020.0002] # GUJARATI LETTER II
+0A89 ; [.26B1.0020.0002] # GUJARATI LETTER U
+0A8A ; [.26B2.0020.0002] # GUJARATI LETTER UU
+0A8B ; [.26B3.0020.0002] # GUJARATI LETTER VOCALIC R
+0AE0 ; [.26B4.0020.0002] # GUJARATI LETTER VOCALIC RR
+0A8C ; [.26B5.0020.0002] # GUJARATI LETTER VOCALIC L
+0AE1 ; [.26B6.0020.0002] # GUJARATI LETTER VOCALIC LL
+0A8D ; [.26B7.0020.0002] # GUJARATI VOWEL CANDRA E
+0A8F ; [.26B8.0020.0002] # GUJARATI LETTER E
+0A90 ; [.26B9.0020.0002] # GUJARATI LETTER AI
+0A91 ; [.26BA.0020.0002] # GUJARATI VOWEL CANDRA O
+0A93 ; [.26BB.0020.0002] # GUJARATI LETTER O
+0A94 ; [.26BC.0020.0002] # GUJARATI LETTER AU
+0A95 ; [.26BD.0020.0002] # GUJARATI LETTER KA
+0A96 ; [.26BE.0020.0002] # GUJARATI LETTER KHA
+0A97 ; [.26BF.0020.0002] # GUJARATI LETTER GA
+0A98 ; [.26C0.0020.0002] # GUJARATI LETTER GHA
+0A99 ; [.26C1.0020.0002] # GUJARATI LETTER NGA
+0A9A ; [.26C2.0020.0002] # GUJARATI LETTER CA
+0A9B ; [.26C3.0020.0002] # GUJARATI LETTER CHA
+0A9C ; [.26C4.0020.0002] # GUJARATI LETTER JA
+0AF9 ; [.26C5.0020.0002] # GUJARATI LETTER ZHA
+0A9D ; [.26C6.0020.0002] # GUJARATI LETTER JHA
+0A9E ; [.26C7.0020.0002] # GUJARATI LETTER NYA
+0A9F ; [.26C8.0020.0002] # GUJARATI LETTER TTA
+0AA0 ; [.26C9.0020.0002] # GUJARATI LETTER TTHA
+0AA1 ; [.26CA.0020.0002] # GUJARATI LETTER DDA
+0AA2 ; [.26CB.0020.0002] # GUJARATI LETTER DDHA
+0AA3 ; [.26CC.0020.0002] # GUJARATI LETTER NNA
+0AA4 ; [.26CD.0020.0002] # GUJARATI LETTER TA
+0AA5 ; [.26CE.0020.0002] # GUJARATI LETTER THA
+0AA6 ; [.26CF.0020.0002] # GUJARATI LETTER DA
+0AA7 ; [.26D0.0020.0002] # GUJARATI LETTER DHA
+0AA8 ; [.26D1.0020.0002] # GUJARATI LETTER NA
+0AAA ; [.26D2.0020.0002] # GUJARATI LETTER PA
+0AAB ; [.26D3.0020.0002] # GUJARATI LETTER PHA
+0AAC ; [.26D4.0020.0002] # GUJARATI LETTER BA
+0AAD ; [.26D5.0020.0002] # GUJARATI LETTER BHA
+0AAE ; [.26D6.0020.0002] # GUJARATI LETTER MA
+0AAF ; [.26D7.0020.0002] # GUJARATI LETTER YA
+0AB0 ; [.26D8.0020.0002] # GUJARATI LETTER RA
+0AB2 ; [.26D9.0020.0002] # GUJARATI LETTER LA
+0AB5 ; [.26DA.0020.0002] # GUJARATI LETTER VA
+0AB6 ; [.26DB.0020.0002] # GUJARATI LETTER SHA
+0AB7 ; [.26DC.0020.0002] # GUJARATI LETTER SSA
+0AB8 ; [.26DD.0020.0002] # GUJARATI LETTER SA
+0AB9 ; [.26DE.0020.0002] # GUJARATI LETTER HA
+0AB3 ; [.26DF.0020.0002] # GUJARATI LETTER LLA
+0ABD ; [.26E0.0020.0002] # GUJARATI SIGN AVAGRAHA
+0ABE ; [.26E1.0020.0002] # GUJARATI VOWEL SIGN AA
+0ABF ; [.26E2.0020.0002] # GUJARATI VOWEL SIGN I
+0AC0 ; [.26E3.0020.0002] # GUJARATI VOWEL SIGN II
+0AC1 ; [.26E4.0020.0002] # GUJARATI VOWEL SIGN U
+0AC2 ; [.26E5.0020.0002] # GUJARATI VOWEL SIGN UU
+0AC3 ; [.26E6.0020.0002] # GUJARATI VOWEL SIGN VOCALIC R
+0AC4 ; [.26E7.0020.0002] # GUJARATI VOWEL SIGN VOCALIC RR
+0AE2 ; [.26E8.0020.0002] # GUJARATI VOWEL SIGN VOCALIC L
+0AE3 ; [.26E9.0020.0002] # GUJARATI VOWEL SIGN VOCALIC LL
+0AC5 ; [.26EA.0020.0002] # GUJARATI VOWEL SIGN CANDRA E
+0AC7 ; [.26EB.0020.0002] # GUJARATI VOWEL SIGN E
+0AC8 ; [.26EC.0020.0002] # GUJARATI VOWEL SIGN AI
+0AC9 ; [.26ED.0020.0002] # GUJARATI VOWEL SIGN CANDRA O
+0ACB ; [.26EE.0020.0002] # GUJARATI VOWEL SIGN O
+0ACC ; [.26EF.0020.0002] # GUJARATI VOWEL SIGN AU
+0ACD ; [.26F0.0020.0002] # GUJARATI SIGN VIRAMA
+0B05 ; [.26F1.0020.0002] # ORIYA LETTER A
+0B06 ; [.26F2.0020.0002] # ORIYA LETTER AA
+0B07 ; [.26F3.0020.0002] # ORIYA LETTER I
+0B08 ; [.26F4.0020.0002] # ORIYA LETTER II
+0B09 ; [.26F5.0020.0002] # ORIYA LETTER U
+0B0A ; [.26F6.0020.0002] # ORIYA LETTER UU
+0B0B ; [.26F7.0020.0002] # ORIYA LETTER VOCALIC R
+0B60 ; [.26F8.0020.0002] # ORIYA LETTER VOCALIC RR
+0B0C ; [.26F9.0020.0002] # ORIYA LETTER VOCALIC L
+0B61 ; [.26FA.0020.0002] # ORIYA LETTER VOCALIC LL
+0B0F ; [.26FB.0020.0002] # ORIYA LETTER E
+0B10 ; [.26FC.0020.0002] # ORIYA LETTER AI
+0B13 ; [.26FD.0020.0002] # ORIYA LETTER O
+0B14 ; [.26FE.0020.0002] # ORIYA LETTER AU
+0B15 ; [.26FF.0020.0002] # ORIYA LETTER KA
+0B16 ; [.2700.0020.0002] # ORIYA LETTER KHA
+0B17 ; [.2701.0020.0002] # ORIYA LETTER GA
+0B18 ; [.2702.0020.0002] # ORIYA LETTER GHA
+0B19 ; [.2703.0020.0002] # ORIYA LETTER NGA
+0B1A ; [.2704.0020.0002] # ORIYA LETTER CA
+0B1B ; [.2705.0020.0002] # ORIYA LETTER CHA
+0B1C ; [.2706.0020.0002] # ORIYA LETTER JA
+0B1D ; [.2707.0020.0002] # ORIYA LETTER JHA
+0B1E ; [.2708.0020.0002] # ORIYA LETTER NYA
+0B1F ; [.2709.0020.0002] # ORIYA LETTER TTA
+0B20 ; [.270A.0020.0002] # ORIYA LETTER TTHA
+0B21 ; [.270B.0020.0002] # ORIYA LETTER DDA
+0B5C ; [.270B.0020.0002][.0000.00BD.0002] # ORIYA LETTER RRA
+0B22 ; [.270C.0020.0002] # ORIYA LETTER DDHA
+0B5D ; [.270C.0020.0002][.0000.00BD.0002] # ORIYA LETTER RHA
+0B23 ; [.270D.0020.0002] # ORIYA LETTER NNA
+0B24 ; [.270E.0020.0002] # ORIYA LETTER TA
+0B25 ; [.270F.0020.0002] # ORIYA LETTER THA
+0B26 ; [.2710.0020.0002] # ORIYA LETTER DA
+0B27 ; [.2711.0020.0002] # ORIYA LETTER DHA
+0B28 ; [.2712.0020.0002] # ORIYA LETTER NA
+0B2A ; [.2713.0020.0002] # ORIYA LETTER PA
+0B2B ; [.2714.0020.0002] # ORIYA LETTER PHA
+0B2C ; [.2715.0020.0002] # ORIYA LETTER BA
+0B2D ; [.2716.0020.0002] # ORIYA LETTER BHA
+0B2E ; [.2717.0020.0002] # ORIYA LETTER MA
+0B2F ; [.2718.0020.0002] # ORIYA LETTER YA
+0B5F ; [.2719.0020.0002] # ORIYA LETTER YYA
+0B30 ; [.271A.0020.0002] # ORIYA LETTER RA
+0B32 ; [.271B.0020.0002] # ORIYA LETTER LA
+0B33 ; [.271C.0020.0002] # ORIYA LETTER LLA
+0B35 ; [.271D.0020.0002] # ORIYA LETTER VA
+0B71 ; [.271E.0020.0002] # ORIYA LETTER WA
+0B36 ; [.271F.0020.0002] # ORIYA LETTER SHA
+0B37 ; [.2720.0020.0002] # ORIYA LETTER SSA
+0B38 ; [.2721.0020.0002] # ORIYA LETTER SA
+0B39 ; [.2722.0020.0002] # ORIYA LETTER HA
+0B3D ; [.2723.0020.0002] # ORIYA SIGN AVAGRAHA
+0B3E ; [.2724.0020.0002] # ORIYA VOWEL SIGN AA
+0B3F ; [.2725.0020.0002] # ORIYA VOWEL SIGN I
+0B40 ; [.2726.0020.0002] # ORIYA VOWEL SIGN II
+0B41 ; [.2727.0020.0002] # ORIYA VOWEL SIGN U
+0B42 ; [.2728.0020.0002] # ORIYA VOWEL SIGN UU
+0B43 ; [.2729.0020.0002] # ORIYA VOWEL SIGN VOCALIC R
+0B44 ; [.272A.0020.0002] # ORIYA VOWEL SIGN VOCALIC RR
+0B62 ; [.272B.0020.0002] # ORIYA VOWEL SIGN VOCALIC L
+0B63 ; [.272C.0020.0002] # ORIYA VOWEL SIGN VOCALIC LL
+0B47 ; [.272D.0020.0002] # ORIYA VOWEL SIGN E
+0B48 ; [.272E.0020.0002] # ORIYA VOWEL SIGN AI
+0B47 0B56 ; [.272E.0020.0002] # ORIYA VOWEL SIGN AI
+0B4B ; [.272F.0020.0002] # ORIYA VOWEL SIGN O
+0B47 0B3E ; [.272F.0020.0002] # ORIYA VOWEL SIGN O
+0B4C ; [.2730.0020.0002] # ORIYA VOWEL SIGN AU
+0B47 0B57 ; [.2730.0020.0002] # ORIYA VOWEL SIGN AU
+0B4D ; [.2731.0020.0002] # ORIYA SIGN VIRAMA
+0B56 ; [.2732.0020.0002] # ORIYA AI LENGTH MARK
+0B57 ; [.2733.0020.0002] # ORIYA AU LENGTH MARK
+0BD0 ; [.2734.0020.0002] # TAMIL OM
+0B85 ; [.2735.0020.0002] # TAMIL LETTER A
+0B86 ; [.2736.0020.0002] # TAMIL LETTER AA
+0B87 ; [.2737.0020.0002] # TAMIL LETTER I
+0B88 ; [.2738.0020.0002] # TAMIL LETTER II
+0B89 ; [.2739.0020.0002] # TAMIL LETTER U
+0B8A ; [.273A.0020.0002] # TAMIL LETTER UU
+0B8E ; [.273B.0020.0002] # TAMIL LETTER E
+0B8F ; [.273C.0020.0002] # TAMIL LETTER EE
+0B90 ; [.273D.0020.0002] # TAMIL LETTER AI
+0B92 ; [.273E.0020.0002] # TAMIL LETTER O
+0B93 ; [.273F.0020.0002] # TAMIL LETTER OO
+0B94 ; [.2740.0020.0002] # TAMIL LETTER AU
+0B92 0BD7 ; [.2740.0020.0002] # TAMIL LETTER AU
+0B83 ; [.2741.0020.0002] # TAMIL SIGN VISARGA
+0B95 ; [.2742.0020.0002] # TAMIL LETTER KA
+0B99 ; [.2743.0020.0002] # TAMIL LETTER NGA
+0B9A ; [.2744.0020.0002] # TAMIL LETTER CA
+0B9E ; [.2745.0020.0002] # TAMIL LETTER NYA
+0B9F ; [.2746.0020.0002] # TAMIL LETTER TTA
+0BA3 ; [.2747.0020.0002] # TAMIL LETTER NNA
+0BA4 ; [.2748.0020.0002] # TAMIL LETTER TA
+0BA8 ; [.2749.0020.0002] # TAMIL LETTER NA
+0BAA ; [.274A.0020.0002] # TAMIL LETTER PA
+0BAE ; [.274B.0020.0002] # TAMIL LETTER MA
+0BAF ; [.274C.0020.0002] # TAMIL LETTER YA
+0BB0 ; [.274D.0020.0002] # TAMIL LETTER RA
+0BB2 ; [.274E.0020.0002] # TAMIL LETTER LA
+0BB5 ; [.274F.0020.0002] # TAMIL LETTER VA
+0BB4 ; [.2750.0020.0002] # TAMIL LETTER LLLA
+0BB3 ; [.2751.0020.0002] # TAMIL LETTER LLA
+0BB1 ; [.2752.0020.0002] # TAMIL LETTER RRA
+0BA9 ; [.2753.0020.0002] # TAMIL LETTER NNNA
+0B9C ; [.2754.0020.0002] # TAMIL LETTER JA
+0BB6 ; [.2755.0020.0002] # TAMIL LETTER SHA
+0BB7 ; [.2756.0020.0002] # TAMIL LETTER SSA
+0BB8 ; [.2757.0020.0002] # TAMIL LETTER SA
+0BB9 ; [.2758.0020.0002] # TAMIL LETTER HA
+0BBE ; [.2759.0020.0002] # TAMIL VOWEL SIGN AA
+0BBF ; [.275A.0020.0002] # TAMIL VOWEL SIGN I
+0BC0 ; [.275B.0020.0002] # TAMIL VOWEL SIGN II
+0BC1 ; [.275C.0020.0002] # TAMIL VOWEL SIGN U
+0BC2 ; [.275D.0020.0002] # TAMIL VOWEL SIGN UU
+0BC6 ; [.275E.0020.0002] # TAMIL VOWEL SIGN E
+0BC7 ; [.275F.0020.0002] # TAMIL VOWEL SIGN EE
+0BC8 ; [.2760.0020.0002] # TAMIL VOWEL SIGN AI
+0BCA ; [.2761.0020.0002] # TAMIL VOWEL SIGN O
+0BC6 0BBE ; [.2761.0020.0002] # TAMIL VOWEL SIGN O
+0BCB ; [.2762.0020.0002] # TAMIL VOWEL SIGN OO
+0BC7 0BBE ; [.2762.0020.0002] # TAMIL VOWEL SIGN OO
+0BCC ; [.2763.0020.0002] # TAMIL VOWEL SIGN AU
+0BC6 0BD7 ; [.2763.0020.0002] # TAMIL VOWEL SIGN AU
+0BCD ; [.2764.0020.0002] # TAMIL SIGN VIRAMA
+0BD7 ; [.2765.0020.0002] # TAMIL AU LENGTH MARK
+0C05 ; [.2766.0020.0002] # TELUGU LETTER A
+0C06 ; [.2767.0020.0002] # TELUGU LETTER AA
+0C07 ; [.2768.0020.0002] # TELUGU LETTER I
+0C08 ; [.2769.0020.0002] # TELUGU LETTER II
+0C09 ; [.276A.0020.0002] # TELUGU LETTER U
+0C0A ; [.276B.0020.0002] # TELUGU LETTER UU
+0C0B ; [.276C.0020.0002] # TELUGU LETTER VOCALIC R
+0C60 ; [.276D.0020.0002] # TELUGU LETTER VOCALIC RR
+0C0C ; [.276E.0020.0002] # TELUGU LETTER VOCALIC L
+0C61 ; [.276F.0020.0002] # TELUGU LETTER VOCALIC LL
+0C0E ; [.2770.0020.0002] # TELUGU LETTER E
+0C0F ; [.2771.0020.0002] # TELUGU LETTER EE
+0C10 ; [.2772.0020.0002] # TELUGU LETTER AI
+0C12 ; [.2773.0020.0002] # TELUGU LETTER O
+0C13 ; [.2774.0020.0002] # TELUGU LETTER OO
+0C14 ; [.2775.0020.0002] # TELUGU LETTER AU
+0C15 ; [.2776.0020.0002] # TELUGU LETTER KA
+0C16 ; [.2777.0020.0002] # TELUGU LETTER KHA
+0C17 ; [.2778.0020.0002] # TELUGU LETTER GA
+0C18 ; [.2779.0020.0002] # TELUGU LETTER GHA
+0C19 ; [.277A.0020.0002] # TELUGU LETTER NGA
+0C1A ; [.277B.0020.0002] # TELUGU LETTER CA
+0C58 ; [.277C.0020.0002] # TELUGU LETTER TSA
+0C1B ; [.277D.0020.0002] # TELUGU LETTER CHA
+0C1C ; [.277E.0020.0002] # TELUGU LETTER JA
+0C59 ; [.277F.0020.0002] # TELUGU LETTER DZA
+0C1D ; [.2780.0020.0002] # TELUGU LETTER JHA
+0C1E ; [.2781.0020.0002] # TELUGU LETTER NYA
+0C1F ; [.2782.0020.0002] # TELUGU LETTER TTA
+0C20 ; [.2783.0020.0002] # TELUGU LETTER TTHA
+0C21 ; [.2784.0020.0002] # TELUGU LETTER DDA
+0C22 ; [.2785.0020.0002] # TELUGU LETTER DDHA
+0C23 ; [.2786.0020.0002] # TELUGU LETTER NNA
+0C24 ; [.2787.0020.0002] # TELUGU LETTER TA
+0C25 ; [.2788.0020.0002] # TELUGU LETTER THA
+0C26 ; [.2789.0020.0002] # TELUGU LETTER DA
+0C27 ; [.278A.0020.0002] # TELUGU LETTER DHA
+0C28 ; [.278B.0020.0002] # TELUGU LETTER NA
+0C2A ; [.278C.0020.0002] # TELUGU LETTER PA
+0C2B ; [.278D.0020.0002] # TELUGU LETTER PHA
+0C2C ; [.278E.0020.0002] # TELUGU LETTER BA
+0C2D ; [.278F.0020.0002] # TELUGU LETTER BHA
+0C2E ; [.2790.0020.0002] # TELUGU LETTER MA
+0C2F ; [.2791.0020.0002] # TELUGU LETTER YA
+0C30 ; [.2792.0020.0002] # TELUGU LETTER RA
+0C31 ; [.2793.0020.0002] # TELUGU LETTER RRA
+0C32 ; [.2794.0020.0002] # TELUGU LETTER LA
+0C35 ; [.2795.0020.0002] # TELUGU LETTER VA
+0C36 ; [.2796.0020.0002] # TELUGU LETTER SHA
+0C37 ; [.2797.0020.0002] # TELUGU LETTER SSA
+0C38 ; [.2798.0020.0002] # TELUGU LETTER SA
+0C39 ; [.2799.0020.0002] # TELUGU LETTER HA
+0C33 ; [.279A.0020.0002] # TELUGU LETTER LLA
+0C34 ; [.279B.0020.0002] # TELUGU LETTER LLLA
+0C5A ; [.279C.0020.0002] # TELUGU LETTER RRRA
+0C3D ; [.279D.0020.0002] # TELUGU SIGN AVAGRAHA
+0C3E ; [.279E.0020.0002] # TELUGU VOWEL SIGN AA
+0C3F ; [.279F.0020.0002] # TELUGU VOWEL SIGN I
+0C40 ; [.27A0.0020.0002] # TELUGU VOWEL SIGN II
+0C41 ; [.27A1.0020.0002] # TELUGU VOWEL SIGN U
+0C42 ; [.27A2.0020.0002] # TELUGU VOWEL SIGN UU
+0C43 ; [.27A3.0020.0002] # TELUGU VOWEL SIGN VOCALIC R
+0C44 ; [.27A4.0020.0002] # TELUGU VOWEL SIGN VOCALIC RR
+0C62 ; [.27A5.0020.0002] # TELUGU VOWEL SIGN VOCALIC L
+0C63 ; [.27A6.0020.0002] # TELUGU VOWEL SIGN VOCALIC LL
+0C46 ; [.27A7.0020.0002] # TELUGU VOWEL SIGN E
+0C47 ; [.27A8.0020.0002] # TELUGU VOWEL SIGN EE
+0C48 ; [.27A9.0020.0002] # TELUGU VOWEL SIGN AI
+0C46 0C56 ; [.27A9.0020.0002] # TELUGU VOWEL SIGN AI
+0C4A ; [.27AA.0020.0002] # TELUGU VOWEL SIGN O
+0C4B ; [.27AB.0020.0002] # TELUGU VOWEL SIGN OO
+0C4C ; [.27AC.0020.0002] # TELUGU VOWEL SIGN AU
+0C4D ; [.27AD.0020.0002] # TELUGU SIGN VIRAMA
+0C55 ; [.27AE.0020.0002] # TELUGU LENGTH MARK
+0C56 ; [.27AF.0020.0002] # TELUGU AI LENGTH MARK
+0C85 ; [.27B0.0020.0002] # KANNADA LETTER A
+0C86 ; [.27B1.0020.0002] # KANNADA LETTER AA
+0C87 ; [.27B2.0020.0002] # KANNADA LETTER I
+0C88 ; [.27B3.0020.0002] # KANNADA LETTER II
+0C89 ; [.27B4.0020.0002] # KANNADA LETTER U
+0C8A ; [.27B5.0020.0002] # KANNADA LETTER UU
+0C8B ; [.27B6.0020.0002] # KANNADA LETTER VOCALIC R
+0CE0 ; [.27B7.0020.0002] # KANNADA LETTER VOCALIC RR
+0C8C ; [.27B8.0020.0002] # KANNADA LETTER VOCALIC L
+0CE1 ; [.27B9.0020.0002] # KANNADA LETTER VOCALIC LL
+0C8E ; [.27BA.0020.0002] # KANNADA LETTER E
+0C8F ; [.27BB.0020.0002] # KANNADA LETTER EE
+0C90 ; [.27BC.0020.0002] # KANNADA LETTER AI
+0C92 ; [.27BD.0020.0002] # KANNADA LETTER O
+0C93 ; [.27BE.0020.0002] # KANNADA LETTER OO
+0C94 ; [.27BF.0020.0002] # KANNADA LETTER AU
+0C95 ; [.27C0.0020.0002] # KANNADA LETTER KA
+0C96 ; [.27C1.0020.0002] # KANNADA LETTER KHA
+0C97 ; [.27C2.0020.0002] # KANNADA LETTER GA
+0C98 ; [.27C3.0020.0002] # KANNADA LETTER GHA
+0C99 ; [.27C4.0020.0002] # KANNADA LETTER NGA
+0C9A ; [.27C5.0020.0002] # KANNADA LETTER CA
+0C9B ; [.27C6.0020.0002] # KANNADA LETTER CHA
+0C9C ; [.27C7.0020.0002] # KANNADA LETTER JA
+0C9D ; [.27C8.0020.0002] # KANNADA LETTER JHA
+0C9E ; [.27C9.0020.0002] # KANNADA LETTER NYA
+0C9F ; [.27CA.0020.0002] # KANNADA LETTER TTA
+0CA0 ; [.27CB.0020.0002] # KANNADA LETTER TTHA
+0CA1 ; [.27CC.0020.0002] # KANNADA LETTER DDA
+0CA2 ; [.27CD.0020.0002] # KANNADA LETTER DDHA
+0CA3 ; [.27CE.0020.0002] # KANNADA LETTER NNA
+0CA4 ; [.27CF.0020.0002] # KANNADA LETTER TA
+0CA5 ; [.27D0.0020.0002] # KANNADA LETTER THA
+0CA6 ; [.27D1.0020.0002] # KANNADA LETTER DA
+0CA7 ; [.27D2.0020.0002] # KANNADA LETTER DHA
+0CA8 ; [.27D3.0020.0002] # KANNADA LETTER NA
+0CAA ; [.27D4.0020.0002] # KANNADA LETTER PA
+0CAB ; [.27D5.0020.0002] # KANNADA LETTER PHA
+0CAC ; [.27D6.0020.0002] # KANNADA LETTER BA
+0CAD ; [.27D7.0020.0002] # KANNADA LETTER BHA
+0CAE ; [.27D8.0020.0002] # KANNADA LETTER MA
+0CAF ; [.27D9.0020.0002] # KANNADA LETTER YA
+0CB0 ; [.27DA.0020.0002] # KANNADA LETTER RA
+0CB1 ; [.27DB.0020.0002] # KANNADA LETTER RRA
+0CB2 ; [.27DC.0020.0002] # KANNADA LETTER LA
+0CB5 ; [.27DD.0020.0002] # KANNADA LETTER VA
+0CB6 ; [.27DE.0020.0002] # KANNADA LETTER SHA
+0CB7 ; [.27DF.0020.0002] # KANNADA LETTER SSA
+0CB8 ; [.27E0.0020.0002] # KANNADA LETTER SA
+0CB9 ; [.27E1.0020.0002] # KANNADA LETTER HA
+0CB3 ; [.27E2.0020.0002] # KANNADA LETTER LLA
+0CDE ; [.27E3.0020.0002] # KANNADA LETTER FA
+0CBD ; [.27E4.0020.0002] # KANNADA SIGN AVAGRAHA
+0CF1 ; [.27E5.0020.0002] # KANNADA SIGN JIHVAMULIYA
+0CF2 ; [.27E6.0020.0002] # KANNADA SIGN UPADHMANIYA
+0CBE ; [.27E7.0020.0002] # KANNADA VOWEL SIGN AA
+0CBF ; [.27E8.0020.0002] # KANNADA VOWEL SIGN I
+0CC0 ; [.27E9.0020.0002] # KANNADA VOWEL SIGN II
+0CBF 0CD5 ; [.27E9.0020.0002] # KANNADA VOWEL SIGN II
+0CC1 ; [.27EA.0020.0002] # KANNADA VOWEL SIGN U
+0CC2 ; [.27EB.0020.0002] # KANNADA VOWEL SIGN UU
+0CC3 ; [.27EC.0020.0002] # KANNADA VOWEL SIGN VOCALIC R
+0CC4 ; [.27ED.0020.0002] # KANNADA VOWEL SIGN VOCALIC RR
+0CE2 ; [.27EE.0020.0002] # KANNADA VOWEL SIGN VOCALIC L
+0CE3 ; [.27EF.0020.0002] # KANNADA VOWEL SIGN VOCALIC LL
+0CC6 ; [.27F0.0020.0002] # KANNADA VOWEL SIGN E
+0CC7 ; [.27F1.0020.0002] # KANNADA VOWEL SIGN EE
+0CC6 0CD5 ; [.27F1.0020.0002] # KANNADA VOWEL SIGN EE
+0CC8 ; [.27F2.0020.0002] # KANNADA VOWEL SIGN AI
+0CC6 0CD6 ; [.27F2.0020.0002] # KANNADA VOWEL SIGN AI
+0CCA ; [.27F3.0020.0002] # KANNADA VOWEL SIGN O
+0CC6 0CC2 ; [.27F3.0020.0002] # KANNADA VOWEL SIGN O
+0CCB ; [.27F4.0020.0002] # KANNADA VOWEL SIGN OO
+0CC6 0CC2 0CD5 ; [.27F4.0020.0002] # KANNADA VOWEL SIGN OO
+0CCA 0CD5 ; [.27F4.0020.0002] # KANNADA VOWEL SIGN OO
+0CCC ; [.27F5.0020.0002] # KANNADA VOWEL SIGN AU
+0CCD ; [.27F6.0020.0002] # KANNADA SIGN VIRAMA
+0CD5 ; [.27F7.0020.0002] # KANNADA LENGTH MARK
+0CD6 ; [.27F8.0020.0002] # KANNADA AI LENGTH MARK
+0D05 ; [.27F9.0020.0002] # MALAYALAM LETTER A
+0D06 ; [.27FA.0020.0002] # MALAYALAM LETTER AA
+0D07 ; [.27FB.0020.0002] # MALAYALAM LETTER I
+0D08 ; [.27FC.0020.0002] # MALAYALAM LETTER II
+0D5F ; [.27FD.0020.0002] # MALAYALAM LETTER ARCHAIC II
+0D09 ; [.27FE.0020.0002] # MALAYALAM LETTER U
+0D0A ; [.27FF.0020.0002] # MALAYALAM LETTER UU
+0D0B ; [.2800.0020.0002] # MALAYALAM LETTER VOCALIC R
+0D60 ; [.2801.0020.0002] # MALAYALAM LETTER VOCALIC RR
+0D0C ; [.2802.0020.0002] # MALAYALAM LETTER VOCALIC L
+0D61 ; [.2803.0020.0002] # MALAYALAM LETTER VOCALIC LL
+0D0E ; [.2804.0020.0002] # MALAYALAM LETTER E
+0D0F ; [.2805.0020.0002] # MALAYALAM LETTER EE
+0D10 ; [.2806.0020.0002] # MALAYALAM LETTER AI
+0D12 ; [.2807.0020.0002] # MALAYALAM LETTER O
+0D13 ; [.2808.0020.0002] # MALAYALAM LETTER OO
+0D14 ; [.2809.0020.0002] # MALAYALAM LETTER AU
+0D15 ; [.280A.0020.0002] # MALAYALAM LETTER KA
+0D7F ; [.280A.0020.0004][.2841.0020.0004] # MALAYALAM LETTER CHILLU K
+0D16 ; [.280B.0020.0002] # MALAYALAM LETTER KHA
+0D17 ; [.280C.0020.0002] # MALAYALAM LETTER GA
+0D18 ; [.280D.0020.0002] # MALAYALAM LETTER GHA
+0D19 ; [.280E.0020.0002] # MALAYALAM LETTER NGA
+0D1A ; [.280F.0020.0002] # MALAYALAM LETTER CA
+0D1B ; [.2810.0020.0002] # MALAYALAM LETTER CHA
+0D1C ; [.2811.0020.0002] # MALAYALAM LETTER JA
+0D1D ; [.2812.0020.0002] # MALAYALAM LETTER JHA
+0D1E ; [.2813.0020.0002] # MALAYALAM LETTER NYA
+0D1F ; [.2814.0020.0002] # MALAYALAM LETTER TTA
+0D20 ; [.2815.0020.0002] # MALAYALAM LETTER TTHA
+0D21 ; [.2816.0020.0002] # MALAYALAM LETTER DDA
+0D22 ; [.2817.0020.0002] # MALAYALAM LETTER DDHA
+0D23 ; [.2818.0020.0002] # MALAYALAM LETTER NNA
+0D7A ; [.2818.0020.0004][.2841.0020.0004] # MALAYALAM LETTER CHILLU NN
+0D24 ; [.2819.0020.0002] # MALAYALAM LETTER TA
+0D25 ; [.281A.0020.0002] # MALAYALAM LETTER THA
+0D26 ; [.281B.0020.0002] # MALAYALAM LETTER DA
+0D27 ; [.281C.0020.0002] # MALAYALAM LETTER DHA
+0D28 ; [.281D.0020.0002] # MALAYALAM LETTER NA
+0D7B ; [.281D.0020.0004][.2841.0020.0004] # MALAYALAM LETTER CHILLU N
+0D29 ; [.281E.0020.0002] # MALAYALAM LETTER NNNA
+0D2A ; [.281F.0020.0002] # MALAYALAM LETTER PA
+0D2B ; [.2820.0020.0002] # MALAYALAM LETTER PHA
+0D2C ; [.2821.0020.0002] # MALAYALAM LETTER BA
+0D2D ; [.2822.0020.0002] # MALAYALAM LETTER BHA
+0D2E ; [.2823.0020.0002] # MALAYALAM LETTER MA
+0D2F ; [.2824.0020.0002] # MALAYALAM LETTER YA
+0D30 ; [.2825.0020.0002] # MALAYALAM LETTER RA
+0D4E ; [.2825.0020.0004][.2841.0020.0004] # MALAYALAM LETTER DOT REPH
+0D7C ; [.2825.0020.0004][.2841.0020.0004] # MALAYALAM LETTER CHILLU RR
+0D32 ; [.2826.0020.0002] # MALAYALAM LETTER LA
+0D7D ; [.2826.0020.0004][.2841.0020.0004] # MALAYALAM LETTER CHILLU L
+0D35 ; [.2827.0020.0002] # MALAYALAM LETTER VA
+0D36 ; [.2828.0020.0002] # MALAYALAM LETTER SHA
+0D37 ; [.2829.0020.0002] # MALAYALAM LETTER SSA
+0D38 ; [.282A.0020.0002] # MALAYALAM LETTER SA
+0D39 ; [.282B.0020.0002] # MALAYALAM LETTER HA
+0D33 ; [.282C.0020.0002] # MALAYALAM LETTER LLA
+0D7E ; [.282C.0020.0004][.2841.0020.0004] # MALAYALAM LETTER CHILLU LL
+0D34 ; [.282D.0020.0002] # MALAYALAM LETTER LLLA
+0D31 ; [.282E.0020.0002] # MALAYALAM LETTER RRA
+0D3A ; [.282F.0020.0002] # MALAYALAM LETTER TTTA
+0D3D ; [.2830.0020.0002] # MALAYALAM SIGN AVAGRAHA
+0D3E ; [.2831.0020.0002] # MALAYALAM VOWEL SIGN AA
+0D3F ; [.2832.0020.0002] # MALAYALAM VOWEL SIGN I
+0D40 ; [.2833.0020.0002] # MALAYALAM VOWEL SIGN II
+0D41 ; [.2834.0020.0002] # MALAYALAM VOWEL SIGN U
+0D42 ; [.2835.0020.0002] # MALAYALAM VOWEL SIGN UU
+0D43 ; [.2836.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC R
+0D44 ; [.2837.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC RR
+0D62 ; [.2838.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC L
+0D63 ; [.2839.0020.0002] # MALAYALAM VOWEL SIGN VOCALIC LL
+0D46 ; [.283A.0020.0002] # MALAYALAM VOWEL SIGN E
+0D47 ; [.283B.0020.0002] # MALAYALAM VOWEL SIGN EE
+0D48 ; [.283C.0020.0002] # MALAYALAM VOWEL SIGN AI
+0D4A ; [.283D.0020.0002] # MALAYALAM VOWEL SIGN O
+0D46 0D3E ; [.283D.0020.0002] # MALAYALAM VOWEL SIGN O
+0D4B ; [.283E.0020.0002] # MALAYALAM VOWEL SIGN OO
+0D47 0D3E ; [.283E.0020.0002] # MALAYALAM VOWEL SIGN OO
+0D4C ; [.283F.0020.0002] # MALAYALAM VOWEL SIGN AU
+0D46 0D57 ; [.283F.0020.0002] # MALAYALAM VOWEL SIGN AU
+0D57 ; [.2840.0020.0002] # MALAYALAM AU LENGTH MARK
+0D4D ; [.2841.0020.0002] # MALAYALAM SIGN VIRAMA
+0D85 ; [.2842.0020.0002] # SINHALA LETTER AYANNA
+0D86 ; [.2843.0020.0002] # SINHALA LETTER AAYANNA
+0D87 ; [.2844.0020.0002] # SINHALA LETTER AEYANNA
+0D88 ; [.2845.0020.0002] # SINHALA LETTER AEEYANNA
+0D89 ; [.2846.0020.0002] # SINHALA LETTER IYANNA
+0D8A ; [.2847.0020.0002] # SINHALA LETTER IIYANNA
+0D8B ; [.2848.0020.0002] # SINHALA LETTER UYANNA
+0D8C ; [.2849.0020.0002] # SINHALA LETTER UUYANNA
+0D8D ; [.284A.0020.0002] # SINHALA LETTER IRUYANNA
+0D8E ; [.284B.0020.0002] # SINHALA LETTER IRUUYANNA
+0D8F ; [.284C.0020.0002] # SINHALA LETTER ILUYANNA
+0D90 ; [.284D.0020.0002] # SINHALA LETTER ILUUYANNA
+0D91 ; [.284E.0020.0002] # SINHALA LETTER EYANNA
+0D92 ; [.284F.0020.0002] # SINHALA LETTER EEYANNA
+0D93 ; [.2850.0020.0002] # SINHALA LETTER AIYANNA
+0D94 ; [.2851.0020.0002] # SINHALA LETTER OYANNA
+0D95 ; [.2852.0020.0002] # SINHALA LETTER OOYANNA
+0D96 ; [.2853.0020.0002] # SINHALA LETTER AUYANNA
+0D9A ; [.2854.0020.0002] # SINHALA LETTER ALPAPRAANA KAYANNA
+0D9B ; [.2855.0020.0002] # SINHALA LETTER MAHAAPRAANA KAYANNA
+0D9C ; [.2856.0020.0002] # SINHALA LETTER ALPAPRAANA GAYANNA
+0D9D ; [.2857.0020.0002] # SINHALA LETTER MAHAAPRAANA GAYANNA
+0D9E ; [.2858.0020.0002] # SINHALA LETTER KANTAJA NAASIKYAYA
+0D9F ; [.2859.0020.0002] # SINHALA LETTER SANYAKA GAYANNA
+0DA0 ; [.285A.0020.0002] # SINHALA LETTER ALPAPRAANA CAYANNA
+0DA1 ; [.285B.0020.0002] # SINHALA LETTER MAHAAPRAANA CAYANNA
+0DA2 ; [.285C.0020.0002] # SINHALA LETTER ALPAPRAANA JAYANNA
+0DA3 ; [.285D.0020.0002] # SINHALA LETTER MAHAAPRAANA JAYANNA
+0DA4 ; [.285E.0020.0002] # SINHALA LETTER TAALUJA NAASIKYAYA
+0DA5 ; [.285F.0020.0002] # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA
+0DA6 ; [.2860.0020.0002] # SINHALA LETTER SANYAKA JAYANNA
+0DA7 ; [.2861.0020.0002] # SINHALA LETTER ALPAPRAANA TTAYANNA
+0DA8 ; [.2862.0020.0002] # SINHALA LETTER MAHAAPRAANA TTAYANNA
+0DA9 ; [.2863.0020.0002] # SINHALA LETTER ALPAPRAANA DDAYANNA
+0DAA ; [.2864.0020.0002] # SINHALA LETTER MAHAAPRAANA DDAYANNA
+0DAB ; [.2865.0020.0002] # SINHALA LETTER MUURDHAJA NAYANNA
+0DAC ; [.2866.0020.0002] # SINHALA LETTER SANYAKA DDAYANNA
+0DAD ; [.2867.0020.0002] # SINHALA LETTER ALPAPRAANA TAYANNA
+0DAE ; [.2868.0020.0002] # SINHALA LETTER MAHAAPRAANA TAYANNA
+0DAF ; [.2869.0020.0002] # SINHALA LETTER ALPAPRAANA DAYANNA
+0DB0 ; [.286A.0020.0002] # SINHALA LETTER MAHAAPRAANA DAYANNA
+0DB1 ; [.286B.0020.0002] # SINHALA LETTER DANTAJA NAYANNA
+0DB3 ; [.286C.0020.0002] # SINHALA LETTER SANYAKA DAYANNA
+0DB4 ; [.286D.0020.0002] # SINHALA LETTER ALPAPRAANA PAYANNA
+0DB5 ; [.286E.0020.0002] # SINHALA LETTER MAHAAPRAANA PAYANNA
+0DB6 ; [.286F.0020.0002] # SINHALA LETTER ALPAPRAANA BAYANNA
+0DB7 ; [.2870.0020.0002] # SINHALA LETTER MAHAAPRAANA BAYANNA
+0DB8 ; [.2871.0020.0002] # SINHALA LETTER MAYANNA
+0DB9 ; [.2872.0020.0002] # SINHALA LETTER AMBA BAYANNA
+0DBA ; [.2873.0020.0002] # SINHALA LETTER YAYANNA
+0DBB ; [.2874.0020.0002] # SINHALA LETTER RAYANNA
+0DBD ; [.2875.0020.0002] # SINHALA LETTER DANTAJA LAYANNA
+0DC0 ; [.2876.0020.0002] # SINHALA LETTER VAYANNA
+0DC1 ; [.2877.0020.0002] # SINHALA LETTER TAALUJA SAYANNA
+0DC2 ; [.2878.0020.0002] # SINHALA LETTER MUURDHAJA SAYANNA
+0DC3 ; [.2879.0020.0002] # SINHALA LETTER DANTAJA SAYANNA
+0DC4 ; [.287A.0020.0002] # SINHALA LETTER HAYANNA
+0DC5 ; [.287B.0020.0002] # SINHALA LETTER MUURDHAJA LAYANNA
+0DC6 ; [.287C.0020.0002] # SINHALA LETTER FAYANNA
+0DCF ; [.287D.0020.0002] # SINHALA VOWEL SIGN AELA-PILLA
+0DD0 ; [.287E.0020.0002] # SINHALA VOWEL SIGN KETTI AEDA-PILLA
+0DD1 ; [.287F.0020.0002] # SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2 ; [.2880.0020.0002] # SINHALA VOWEL SIGN KETTI IS-PILLA
+0DD3 ; [.2881.0020.0002] # SINHALA VOWEL SIGN DIGA IS-PILLA
+0DD4 ; [.2882.0020.0002] # SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; [.2883.0020.0002] # SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8 ; [.2884.0020.0002] # SINHALA VOWEL SIGN GAETTA-PILLA
+0DF2 ; [.2885.0020.0002] # SINHALA VOWEL SIGN DIGA GAETTA-PILLA
+0DDF ; [.2886.0020.0002] # SINHALA VOWEL SIGN GAYANUKITTA
+0DF3 ; [.2887.0020.0002] # SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DD9 ; [.2888.0020.0002] # SINHALA VOWEL SIGN KOMBUVA
+0DDA ; [.2889.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
+0DD9 0DCA ; [.2889.0020.0002] # SINHALA VOWEL SIGN DIGA KOMBUVA
+0DDB ; [.288A.0020.0002] # SINHALA VOWEL SIGN KOMBU DEKA
+0DDC ; [.288B.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DD9 0DCF ; [.288B.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+0DDD ; [.288C.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DD9 0DCF 0DCA ; [.288C.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DDC 0DCA ; [.288C.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+0DDE ; [.288D.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DD9 0DDF ; [.288D.0020.0002] # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DCA ; [.288E.0020.0002] # SINHALA SIGN AL-LAKUNA
+AAF2 ; [.288F.0020.0002] # MEETEI MAYEK ANJI
+ABC0 ; [.2890.0020.0002] # MEETEI MAYEK LETTER KOK
+ABC1 ; [.2891.0020.0002] # MEETEI MAYEK LETTER SAM
+ABC2 ; [.2892.0020.0002] # MEETEI MAYEK LETTER LAI
+ABC3 ; [.2893.0020.0002] # MEETEI MAYEK LETTER MIT
+ABC4 ; [.2894.0020.0002] # MEETEI MAYEK LETTER PA
+ABC5 ; [.2895.0020.0002] # MEETEI MAYEK LETTER NA
+ABC6 ; [.2896.0020.0002] # MEETEI MAYEK LETTER CHIL
+ABC7 ; [.2897.0020.0002] # MEETEI MAYEK LETTER TIL
+ABC8 ; [.2898.0020.0002] # MEETEI MAYEK LETTER KHOU
+ABC9 ; [.2899.0020.0002] # MEETEI MAYEK LETTER NGOU
+ABCA ; [.289A.0020.0002] # MEETEI MAYEK LETTER THOU
+ABCB ; [.289B.0020.0002] # MEETEI MAYEK LETTER WAI
+ABCC ; [.289C.0020.0002] # MEETEI MAYEK LETTER YANG
+ABCD ; [.289D.0020.0002] # MEETEI MAYEK LETTER HUK
+ABCE ; [.289E.0020.0002] # MEETEI MAYEK LETTER UN
+ABCF ; [.289F.0020.0002] # MEETEI MAYEK LETTER I
+ABD0 ; [.28A0.0020.0002] # MEETEI MAYEK LETTER PHAM
+ABD1 ; [.28A1.0020.0002] # MEETEI MAYEK LETTER ATIYA
+ABD2 ; [.28A2.0020.0002] # MEETEI MAYEK LETTER GOK
+ABD3 ; [.28A3.0020.0002] # MEETEI MAYEK LETTER JHAM
+ABD4 ; [.28A4.0020.0002] # MEETEI MAYEK LETTER RAI
+ABD5 ; [.28A5.0020.0002] # MEETEI MAYEK LETTER BA
+ABD6 ; [.28A6.0020.0002] # MEETEI MAYEK LETTER JIL
+ABD7 ; [.28A7.0020.0002] # MEETEI MAYEK LETTER DIL
+ABD8 ; [.28A8.0020.0002] # MEETEI MAYEK LETTER GHOU
+ABD9 ; [.28A9.0020.0002] # MEETEI MAYEK LETTER DHOU
+ABDA ; [.28AA.0020.0002] # MEETEI MAYEK LETTER BHAM
+AAE0 ; [.28AB.0020.0002] # MEETEI MAYEK LETTER E
+AAE1 ; [.28AC.0020.0002] # MEETEI MAYEK LETTER O
+AAE2 ; [.28AD.0020.0002] # MEETEI MAYEK LETTER CHA
+AAE3 ; [.28AE.0020.0002] # MEETEI MAYEK LETTER NYA
+AAE4 ; [.28AF.0020.0002] # MEETEI MAYEK LETTER TTA
+AAE5 ; [.28B0.0020.0002] # MEETEI MAYEK LETTER TTHA
+AAE6 ; [.28B1.0020.0002] # MEETEI MAYEK LETTER DDA
+AAE7 ; [.28B2.0020.0002] # MEETEI MAYEK LETTER DDHA
+AAE8 ; [.28B3.0020.0002] # MEETEI MAYEK LETTER NNA
+AAE9 ; [.28B4.0020.0002] # MEETEI MAYEK LETTER SHA
+AAEA ; [.28B5.0020.0002] # MEETEI MAYEK LETTER SSA
+ABE3 ; [.28B6.0020.0002] # MEETEI MAYEK VOWEL SIGN ONAP
+ABE4 ; [.28B7.0020.0002] # MEETEI MAYEK VOWEL SIGN INAP
+ABE5 ; [.28B8.0020.0002] # MEETEI MAYEK VOWEL SIGN ANAP
+ABE6 ; [.28B9.0020.0002] # MEETEI MAYEK VOWEL SIGN YENAP
+ABE7 ; [.28BA.0020.0002] # MEETEI MAYEK VOWEL SIGN SOUNAP
+ABE8 ; [.28BB.0020.0002] # MEETEI MAYEK VOWEL SIGN UNAP
+ABE9 ; [.28BC.0020.0002] # MEETEI MAYEK VOWEL SIGN CHEINAP
+ABEA ; [.28BD.0020.0002] # MEETEI MAYEK VOWEL SIGN NUNG
+AAEB ; [.28BE.0020.0002] # MEETEI MAYEK VOWEL SIGN II
+AAEC ; [.28BF.0020.0002] # MEETEI MAYEK VOWEL SIGN UU
+AAED ; [.28C0.0020.0002] # MEETEI MAYEK VOWEL SIGN AAI
+AAEE ; [.28C1.0020.0002] # MEETEI MAYEK VOWEL SIGN AU
+AAEF ; [.28C2.0020.0002] # MEETEI MAYEK VOWEL SIGN AAU
+AAF5 ; [.28C3.0020.0002] # MEETEI MAYEK VOWEL SIGN VISARGA
+ABDB ; [.28C4.0020.0002] # MEETEI MAYEK LETTER KOK LONSUM
+ABDC ; [.28C5.0020.0002] # MEETEI MAYEK LETTER LAI LONSUM
+ABDD ; [.28C6.0020.0002] # MEETEI MAYEK LETTER MIT LONSUM
+ABDE ; [.28C7.0020.0002] # MEETEI MAYEK LETTER PA LONSUM
+ABDF ; [.28C8.0020.0002] # MEETEI MAYEK LETTER NA LONSUM
+ABE0 ; [.28C9.0020.0002] # MEETEI MAYEK LETTER TIL LONSUM
+ABE1 ; [.28CA.0020.0002] # MEETEI MAYEK LETTER NGOU LONSUM
+ABE2 ; [.28CB.0020.0002] # MEETEI MAYEK LETTER I LONSUM
+ABED ; [.28CC.0020.0002] # MEETEI MAYEK APUN IYEK
+AAF6 ; [.28CD.0020.0002] # MEETEI MAYEK VIRAMA
+A800 ; [.28CE.0020.0002] # SYLOTI NAGRI LETTER A
+A801 ; [.28CF.0020.0002] # SYLOTI NAGRI LETTER I
+A802 ; [.28D0.0020.0002] # SYLOTI NAGRI SIGN DVISVARA
+A803 ; [.28D1.0020.0002] # SYLOTI NAGRI LETTER U
+A804 ; [.28D2.0020.0002] # SYLOTI NAGRI LETTER E
+A805 ; [.28D3.0020.0002] # SYLOTI NAGRI LETTER O
+A806 ; [.28D4.0020.0002] # SYLOTI NAGRI SIGN HASANTA
+A807 ; [.28D5.0020.0002] # SYLOTI NAGRI LETTER KO
+A808 ; [.28D6.0020.0002] # SYLOTI NAGRI LETTER KHO
+A809 ; [.28D7.0020.0002] # SYLOTI NAGRI LETTER GO
+A80A ; [.28D8.0020.0002] # SYLOTI NAGRI LETTER GHO
+A80C ; [.28D9.0020.0002] # SYLOTI NAGRI LETTER CO
+A80D ; [.28DA.0020.0002] # SYLOTI NAGRI LETTER CHO
+A80E ; [.28DB.0020.0002] # SYLOTI NAGRI LETTER JO
+A80F ; [.28DC.0020.0002] # SYLOTI NAGRI LETTER JHO
+A810 ; [.28DD.0020.0002] # SYLOTI NAGRI LETTER TTO
+A811 ; [.28DE.0020.0002] # SYLOTI NAGRI LETTER TTHO
+A812 ; [.28DF.0020.0002] # SYLOTI NAGRI LETTER DDO
+A813 ; [.28E0.0020.0002] # SYLOTI NAGRI LETTER DDHO
+A814 ; [.28E1.0020.0002] # SYLOTI NAGRI LETTER TO
+A815 ; [.28E2.0020.0002] # SYLOTI NAGRI LETTER THO
+A816 ; [.28E3.0020.0002] # SYLOTI NAGRI LETTER DO
+A817 ; [.28E4.0020.0002] # SYLOTI NAGRI LETTER DHO
+A818 ; [.28E5.0020.0002] # SYLOTI NAGRI LETTER NO
+A819 ; [.28E6.0020.0002] # SYLOTI NAGRI LETTER PO
+A81A ; [.28E7.0020.0002] # SYLOTI NAGRI LETTER PHO
+A81B ; [.28E8.0020.0002] # SYLOTI NAGRI LETTER BO
+A81C ; [.28E9.0020.0002] # SYLOTI NAGRI LETTER BHO
+A81D ; [.28EA.0020.0002] # SYLOTI NAGRI LETTER MO
+A81E ; [.28EB.0020.0002] # SYLOTI NAGRI LETTER RO
+A81F ; [.28EC.0020.0002] # SYLOTI NAGRI LETTER LO
+A820 ; [.28ED.0020.0002] # SYLOTI NAGRI LETTER RRO
+A821 ; [.28EE.0020.0002] # SYLOTI NAGRI LETTER SO
+A822 ; [.28EF.0020.0002] # SYLOTI NAGRI LETTER HO
+A823 ; [.28F0.0020.0002] # SYLOTI NAGRI VOWEL SIGN A
+A824 ; [.28F1.0020.0002] # SYLOTI NAGRI VOWEL SIGN I
+A825 ; [.28F2.0020.0002] # SYLOTI NAGRI VOWEL SIGN U
+A826 ; [.28F3.0020.0002] # SYLOTI NAGRI VOWEL SIGN E
+A827 ; [.28F4.0020.0002] # SYLOTI NAGRI VOWEL SIGN OO
+A882 ; [.28F5.0020.0002] # SAURASHTRA LETTER A
+A883 ; [.28F6.0020.0002] # SAURASHTRA LETTER AA
+A884 ; [.28F7.0020.0002] # SAURASHTRA LETTER I
+A885 ; [.28F8.0020.0002] # SAURASHTRA LETTER II
+A886 ; [.28F9.0020.0002] # SAURASHTRA LETTER U
+A887 ; [.28FA.0020.0002] # SAURASHTRA LETTER UU
+A888 ; [.28FB.0020.0002] # SAURASHTRA LETTER VOCALIC R
+A889 ; [.28FC.0020.0002] # SAURASHTRA LETTER VOCALIC RR
+A88A ; [.28FD.0020.0002] # SAURASHTRA LETTER VOCALIC L
+A88B ; [.28FE.0020.0002] # SAURASHTRA LETTER VOCALIC LL
+A88C ; [.28FF.0020.0002] # SAURASHTRA LETTER E
+A88D ; [.2900.0020.0002] # SAURASHTRA LETTER EE
+A88E ; [.2901.0020.0002] # SAURASHTRA LETTER AI
+A88F ; [.2902.0020.0002] # SAURASHTRA LETTER O
+A890 ; [.2903.0020.0002] # SAURASHTRA LETTER OO
+A891 ; [.2904.0020.0002] # SAURASHTRA LETTER AU
+A892 ; [.2905.0020.0002] # SAURASHTRA LETTER KA
+A893 ; [.2906.0020.0002] # SAURASHTRA LETTER KHA
+A894 ; [.2907.0020.0002] # SAURASHTRA LETTER GA
+A895 ; [.2908.0020.0002] # SAURASHTRA LETTER GHA
+A896 ; [.2909.0020.0002] # SAURASHTRA LETTER NGA
+A897 ; [.290A.0020.0002] # SAURASHTRA LETTER CA
+A898 ; [.290B.0020.0002] # SAURASHTRA LETTER CHA
+A899 ; [.290C.0020.0002] # SAURASHTRA LETTER JA
+A89A ; [.290D.0020.0002] # SAURASHTRA LETTER JHA
+A89B ; [.290E.0020.0002] # SAURASHTRA LETTER NYA
+A89C ; [.290F.0020.0002] # SAURASHTRA LETTER TTA
+A89D ; [.2910.0020.0002] # SAURASHTRA LETTER TTHA
+A89E ; [.2911.0020.0002] # SAURASHTRA LETTER DDA
+A89F ; [.2912.0020.0002] # SAURASHTRA LETTER DDHA
+A8A0 ; [.2913.0020.0002] # SAURASHTRA LETTER NNA
+A8A1 ; [.2914.0020.0002] # SAURASHTRA LETTER TA
+A8A2 ; [.2915.0020.0002] # SAURASHTRA LETTER THA
+A8A3 ; [.2916.0020.0002] # SAURASHTRA LETTER DA
+A8A4 ; [.2917.0020.0002] # SAURASHTRA LETTER DHA
+A8A5 ; [.2918.0020.0002] # SAURASHTRA LETTER NA
+A8A6 ; [.2919.0020.0002] # SAURASHTRA LETTER PA
+A8A7 ; [.291A.0020.0002] # SAURASHTRA LETTER PHA
+A8A8 ; [.291B.0020.0002] # SAURASHTRA LETTER BA
+A8A9 ; [.291C.0020.0002] # SAURASHTRA LETTER BHA
+A8AA ; [.291D.0020.0002] # SAURASHTRA LETTER MA
+A8AB ; [.291E.0020.0002] # SAURASHTRA LETTER YA
+A8AC ; [.291F.0020.0002] # SAURASHTRA LETTER RA
+A8AD ; [.2920.0020.0002] # SAURASHTRA LETTER LA
+A8AE ; [.2921.0020.0002] # SAURASHTRA LETTER VA
+A8AF ; [.2922.0020.0002] # SAURASHTRA LETTER SHA
+A8B0 ; [.2923.0020.0002] # SAURASHTRA LETTER SSA
+A8B1 ; [.2924.0020.0002] # SAURASHTRA LETTER SA
+A8B2 ; [.2925.0020.0002] # SAURASHTRA LETTER HA
+A8B3 ; [.2926.0020.0002] # SAURASHTRA LETTER LLA
+A8B4 ; [.2927.0020.0002] # SAURASHTRA CONSONANT SIGN HAARU
+A8B5 ; [.2928.0020.0002] # SAURASHTRA VOWEL SIGN AA
+A8B6 ; [.2929.0020.0002] # SAURASHTRA VOWEL SIGN I
+A8B7 ; [.292A.0020.0002] # SAURASHTRA VOWEL SIGN II
+A8B8 ; [.292B.0020.0002] # SAURASHTRA VOWEL SIGN U
+A8B9 ; [.292C.0020.0002] # SAURASHTRA VOWEL SIGN UU
+A8BA ; [.292D.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC R
+A8BB ; [.292E.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC RR
+A8BC ; [.292F.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC L
+A8BD ; [.2930.0020.0002] # SAURASHTRA VOWEL SIGN VOCALIC LL
+A8BE ; [.2931.0020.0002] # SAURASHTRA VOWEL SIGN E
+A8BF ; [.2932.0020.0002] # SAURASHTRA VOWEL SIGN EE
+A8C0 ; [.2933.0020.0002] # SAURASHTRA VOWEL SIGN AI
+A8C1 ; [.2934.0020.0002] # SAURASHTRA VOWEL SIGN O
+A8C2 ; [.2935.0020.0002] # SAURASHTRA VOWEL SIGN OO
+A8C3 ; [.2936.0020.0002] # SAURASHTRA VOWEL SIGN AU
+A8C4 ; [.2937.0020.0002] # SAURASHTRA SIGN VIRAMA
+11083 ; [.2938.0020.0002] # KAITHI LETTER A
+11084 ; [.2939.0020.0002] # KAITHI LETTER AA
+11085 ; [.293A.0020.0002] # KAITHI LETTER I
+11086 ; [.293B.0020.0002] # KAITHI LETTER II
+11087 ; [.293C.0020.0002] # KAITHI LETTER U
+11088 ; [.293D.0020.0002] # KAITHI LETTER UU
+11089 ; [.293E.0020.0002] # KAITHI LETTER E
+1108A ; [.293F.0020.0002] # KAITHI LETTER AI
+1108B ; [.2940.0020.0002] # KAITHI LETTER O
+1108C ; [.2941.0020.0002] # KAITHI LETTER AU
+1108D ; [.2942.0020.0002] # KAITHI LETTER KA
+1108E ; [.2943.0020.0002] # KAITHI LETTER KHA
+1108F ; [.2944.0020.0002] # KAITHI LETTER GA
+11090 ; [.2945.0020.0002] # KAITHI LETTER GHA
+11091 ; [.2946.0020.0002] # KAITHI LETTER NGA
+11092 ; [.2947.0020.0002] # KAITHI LETTER CA
+11093 ; [.2948.0020.0002] # KAITHI LETTER CHA
+11094 ; [.2949.0020.0002] # KAITHI LETTER JA
+11095 ; [.294A.0020.0002] # KAITHI LETTER JHA
+11096 ; [.294B.0020.0002] # KAITHI LETTER NYA
+11097 ; [.294C.0020.0002] # KAITHI LETTER TTA
+11098 ; [.294D.0020.0002] # KAITHI LETTER TTHA
+11099 ; [.294E.0020.0002] # KAITHI LETTER DDA
+1109A ; [.294E.0020.0002][.0000.00BD.0002] # KAITHI LETTER DDDHA
+1109B ; [.294F.0020.0002] # KAITHI LETTER DDHA
+1109C ; [.294F.0020.0002][.0000.00BD.0002] # KAITHI LETTER RHA
+1109D ; [.2950.0020.0002] # KAITHI LETTER NNA
+1109E ; [.2951.0020.0002] # KAITHI LETTER TA
+1109F ; [.2952.0020.0002] # KAITHI LETTER THA
+110A0 ; [.2953.0020.0002] # KAITHI LETTER DA
+110A1 ; [.2954.0020.0002] # KAITHI LETTER DHA
+110A2 ; [.2955.0020.0002] # KAITHI LETTER NA
+110A3 ; [.2956.0020.0002] # KAITHI LETTER PA
+110A4 ; [.2957.0020.0002] # KAITHI LETTER PHA
+110A5 ; [.2958.0020.0002] # KAITHI LETTER BA
+110AB ; [.2958.0020.0002][.0000.00BD.0002] # KAITHI LETTER VA
+110A6 ; [.2959.0020.0002] # KAITHI LETTER BHA
+110A7 ; [.295A.0020.0002] # KAITHI LETTER MA
+110A8 ; [.295B.0020.0002] # KAITHI LETTER YA
+110A9 ; [.295C.0020.0002] # KAITHI LETTER RA
+110AA ; [.295D.0020.0002] # KAITHI LETTER LA
+110AC ; [.295E.0020.0002] # KAITHI LETTER SHA
+110AD ; [.295F.0020.0002] # KAITHI LETTER SSA
+110AE ; [.2960.0020.0002] # KAITHI LETTER SA
+110AF ; [.2961.0020.0002] # KAITHI LETTER HA
+110B0 ; [.2962.0020.0002] # KAITHI VOWEL SIGN AA
+110B1 ; [.2963.0020.0002] # KAITHI VOWEL SIGN I
+110B2 ; [.2964.0020.0002] # KAITHI VOWEL SIGN II
+110B3 ; [.2965.0020.0002] # KAITHI VOWEL SIGN U
+110B4 ; [.2966.0020.0002] # KAITHI VOWEL SIGN UU
+110B5 ; [.2967.0020.0002] # KAITHI VOWEL SIGN E
+110B6 ; [.2968.0020.0002] # KAITHI VOWEL SIGN AI
+110B7 ; [.2969.0020.0002] # KAITHI VOWEL SIGN O
+110B8 ; [.296A.0020.0002] # KAITHI VOWEL SIGN AU
+110B9 ; [.296B.0020.0002] # KAITHI SIGN VIRAMA
+11150 ; [.296C.0020.0002] # MAHAJANI LETTER A
+11151 ; [.296D.0020.0002] # MAHAJANI LETTER I
+11152 ; [.296E.0020.0002] # MAHAJANI LETTER U
+11153 ; [.296F.0020.0002] # MAHAJANI LETTER E
+11154 ; [.2970.0020.0002] # MAHAJANI LETTER O
+11155 ; [.2971.0020.0002] # MAHAJANI LETTER KA
+11156 ; [.2972.0020.0002] # MAHAJANI LETTER KHA
+11157 ; [.2973.0020.0002] # MAHAJANI LETTER GA
+11158 ; [.2974.0020.0002] # MAHAJANI LETTER GHA
+11159 ; [.2975.0020.0002] # MAHAJANI LETTER CA
+1115A ; [.2976.0020.0002] # MAHAJANI LETTER CHA
+1115B ; [.2977.0020.0002] # MAHAJANI LETTER JA
+1115C ; [.2978.0020.0002] # MAHAJANI LETTER JHA
+1115D ; [.2979.0020.0002] # MAHAJANI LETTER NYA
+1115E ; [.297A.0020.0002] # MAHAJANI LETTER TTA
+1115F ; [.297B.0020.0002] # MAHAJANI LETTER TTHA
+11160 ; [.297C.0020.0002] # MAHAJANI LETTER DDA
+11161 ; [.297D.0020.0002] # MAHAJANI LETTER DDHA
+11162 ; [.297E.0020.0002] # MAHAJANI LETTER NNA
+11163 ; [.297F.0020.0002] # MAHAJANI LETTER TA
+11164 ; [.2980.0020.0002] # MAHAJANI LETTER THA
+11165 ; [.2981.0020.0002] # MAHAJANI LETTER DA
+11166 ; [.2982.0020.0002] # MAHAJANI LETTER DHA
+11167 ; [.2983.0020.0002] # MAHAJANI LETTER NA
+11168 ; [.2984.0020.0002] # MAHAJANI LETTER PA
+11169 ; [.2985.0020.0002] # MAHAJANI LETTER PHA
+1116A ; [.2986.0020.0002] # MAHAJANI LETTER BA
+1116B ; [.2987.0020.0002] # MAHAJANI LETTER BHA
+1116C ; [.2988.0020.0002] # MAHAJANI LETTER MA
+1116D ; [.2989.0020.0002] # MAHAJANI LETTER RA
+1116E ; [.298A.0020.0002] # MAHAJANI LETTER LA
+1116F ; [.298B.0020.0002] # MAHAJANI LETTER VA
+11176 ; [.298C.0020.0002] # MAHAJANI LIGATURE SHRI
+11170 ; [.298D.0020.0002] # MAHAJANI LETTER SA
+11171 ; [.298E.0020.0002] # MAHAJANI LETTER HA
+11172 ; [.298F.0020.0002] # MAHAJANI LETTER RRA
+111C4 ; [.2990.0020.0002] # SHARADA OM
+111DA ; [.2991.0020.0002] # SHARADA EKAM
+11183 ; [.2992.0020.0002] # SHARADA LETTER A
+11184 ; [.2993.0020.0002] # SHARADA LETTER AA
+11185 ; [.2994.0020.0002] # SHARADA LETTER I
+11186 ; [.2995.0020.0002] # SHARADA LETTER II
+11187 ; [.2996.0020.0002] # SHARADA LETTER U
+11188 ; [.2997.0020.0002] # SHARADA LETTER UU
+11189 ; [.2998.0020.0002] # SHARADA LETTER VOCALIC R
+1118A ; [.2999.0020.0002] # SHARADA LETTER VOCALIC RR
+1118B ; [.299A.0020.0002] # SHARADA LETTER VOCALIC L
+1118C ; [.299B.0020.0002] # SHARADA LETTER VOCALIC LL
+1118D ; [.299C.0020.0002] # SHARADA LETTER E
+1118E ; [.299D.0020.0002] # SHARADA LETTER AI
+1118F ; [.299E.0020.0002] # SHARADA LETTER O
+11190 ; [.299F.0020.0002] # SHARADA LETTER AU
+11191 ; [.29A0.0020.0002] # SHARADA LETTER KA
+11192 ; [.29A1.0020.0002] # SHARADA LETTER KHA
+11193 ; [.29A2.0020.0002] # SHARADA LETTER GA
+11194 ; [.29A3.0020.0002] # SHARADA LETTER GHA
+11195 ; [.29A4.0020.0002] # SHARADA LETTER NGA
+11196 ; [.29A5.0020.0002] # SHARADA LETTER CA
+11197 ; [.29A6.0020.0002] # SHARADA LETTER CHA
+11198 ; [.29A7.0020.0002] # SHARADA LETTER JA
+11199 ; [.29A8.0020.0002] # SHARADA LETTER JHA
+1119A ; [.29A9.0020.0002] # SHARADA LETTER NYA
+1119B ; [.29AA.0020.0002] # SHARADA LETTER TTA
+1119C ; [.29AB.0020.0002] # SHARADA LETTER TTHA
+1119D ; [.29AC.0020.0002] # SHARADA LETTER DDA
+1119E ; [.29AD.0020.0002] # SHARADA LETTER DDHA
+1119F ; [.29AE.0020.0002] # SHARADA LETTER NNA
+111A0 ; [.29AF.0020.0002] # SHARADA LETTER TA
+111A1 ; [.29B0.0020.0002] # SHARADA LETTER THA
+111A2 ; [.29B1.0020.0002] # SHARADA LETTER DA
+111A3 ; [.29B2.0020.0002] # SHARADA LETTER DHA
+111A4 ; [.29B3.0020.0002] # SHARADA LETTER NA
+111A5 ; [.29B4.0020.0002] # SHARADA LETTER PA
+111A6 ; [.29B5.0020.0002] # SHARADA LETTER PHA
+111A7 ; [.29B6.0020.0002] # SHARADA LETTER BA
+111A8 ; [.29B7.0020.0002] # SHARADA LETTER BHA
+111A9 ; [.29B8.0020.0002] # SHARADA LETTER MA
+111AA ; [.29B9.0020.0002] # SHARADA LETTER YA
+111AB ; [.29BA.0020.0002] # SHARADA LETTER RA
+111AC ; [.29BB.0020.0002] # SHARADA LETTER LA
+111AD ; [.29BC.0020.0002] # SHARADA LETTER LLA
+111AE ; [.29BD.0020.0002] # SHARADA LETTER VA
+111AF ; [.29BE.0020.0002] # SHARADA LETTER SHA
+111B0 ; [.29BF.0020.0002] # SHARADA LETTER SSA
+111B1 ; [.29C0.0020.0002] # SHARADA LETTER SA
+111B2 ; [.29C1.0020.0002] # SHARADA LETTER HA
+111C1 ; [.29C2.0020.0002] # SHARADA SIGN AVAGRAHA
+111C2 ; [.29C3.0020.0002] # SHARADA SIGN JIHVAMULIYA
+111C3 ; [.29C4.0020.0002] # SHARADA SIGN UPADHMANIYA
+111DC ; [.29C5.0020.0002] # SHARADA HEADSTROKE
+111B3 ; [.29C6.0020.0002] # SHARADA VOWEL SIGN AA
+111B4 ; [.29C7.0020.0002] # SHARADA VOWEL SIGN I
+111B5 ; [.29C8.0020.0002] # SHARADA VOWEL SIGN II
+111B6 ; [.29C9.0020.0002] # SHARADA VOWEL SIGN U
+111B7 ; [.29CA.0020.0002] # SHARADA VOWEL SIGN UU
+111B8 ; [.29CB.0020.0002] # SHARADA VOWEL SIGN VOCALIC R
+111B9 ; [.29CC.0020.0002] # SHARADA VOWEL SIGN VOCALIC RR
+111BA ; [.29CD.0020.0002] # SHARADA VOWEL SIGN VOCALIC L
+111BB ; [.29CE.0020.0002] # SHARADA VOWEL SIGN VOCALIC LL
+111BC ; [.29CF.0020.0002] # SHARADA VOWEL SIGN E
+111BD ; [.29D0.0020.0002] # SHARADA VOWEL SIGN AI
+111BE ; [.29D1.0020.0002] # SHARADA VOWEL SIGN O
+111BF ; [.29D2.0020.0002] # SHARADA VOWEL SIGN AU
+111C0 ; [.29D3.0020.0002] # SHARADA SIGN VIRAMA
+11200 ; [.29D4.0020.0002] # KHOJKI LETTER A
+11201 ; [.29D5.0020.0002] # KHOJKI LETTER AA
+11202 ; [.29D6.0020.0002] # KHOJKI LETTER I
+11203 ; [.29D7.0020.0002] # KHOJKI LETTER U
+11204 ; [.29D8.0020.0002] # KHOJKI LETTER E
+11205 ; [.29D9.0020.0002] # KHOJKI LETTER AI
+11206 ; [.29DA.0020.0002] # KHOJKI LETTER O
+11207 ; [.29DB.0020.0002] # KHOJKI LETTER AU
+11208 ; [.29DC.0020.0002] # KHOJKI LETTER KA
+11209 ; [.29DD.0020.0002] # KHOJKI LETTER KHA
+1120A ; [.29DE.0020.0002] # KHOJKI LETTER GA
+1120B ; [.29DF.0020.0002] # KHOJKI LETTER GGA
+1120C ; [.29E0.0020.0002] # KHOJKI LETTER GHA
+1120D ; [.29E1.0020.0002] # KHOJKI LETTER NGA
+1120E ; [.29E2.0020.0002] # KHOJKI LETTER CA
+1120F ; [.29E3.0020.0002] # KHOJKI LETTER CHA
+11210 ; [.29E4.0020.0002] # KHOJKI LETTER JA
+11211 ; [.29E5.0020.0002] # KHOJKI LETTER JJA
+11213 ; [.29E6.0020.0002] # KHOJKI LETTER NYA
+11214 ; [.29E7.0020.0002] # KHOJKI LETTER TTA
+11215 ; [.29E8.0020.0002] # KHOJKI LETTER TTHA
+11216 ; [.29E9.0020.0002] # KHOJKI LETTER DDA
+11217 ; [.29EA.0020.0002] # KHOJKI LETTER DDHA
+11218 ; [.29EB.0020.0002] # KHOJKI LETTER NNA
+11219 ; [.29EC.0020.0002] # KHOJKI LETTER TA
+1121A ; [.29ED.0020.0002] # KHOJKI LETTER THA
+1121B ; [.29EE.0020.0002] # KHOJKI LETTER DA
+1121C ; [.29EF.0020.0002] # KHOJKI LETTER DDDA
+1121D ; [.29F0.0020.0002] # KHOJKI LETTER DHA
+1121E ; [.29F1.0020.0002] # KHOJKI LETTER NA
+1121F ; [.29F2.0020.0002] # KHOJKI LETTER PA
+11220 ; [.29F3.0020.0002] # KHOJKI LETTER PHA
+11221 ; [.29F4.0020.0002] # KHOJKI LETTER BA
+11222 ; [.29F5.0020.0002] # KHOJKI LETTER BBA
+11223 ; [.29F6.0020.0002] # KHOJKI LETTER BHA
+11224 ; [.29F7.0020.0002] # KHOJKI LETTER MA
+11225 ; [.29F8.0020.0002] # KHOJKI LETTER YA
+11226 ; [.29F9.0020.0002] # KHOJKI LETTER RA
+11227 ; [.29FA.0020.0002] # KHOJKI LETTER LA
+11228 ; [.29FB.0020.0002] # KHOJKI LETTER VA
+11229 ; [.29FC.0020.0002] # KHOJKI LETTER SA
+1122A ; [.29FD.0020.0002] # KHOJKI LETTER HA
+1122B ; [.29FE.0020.0002] # KHOJKI LETTER LLA
+1122C ; [.29FF.0020.0002] # KHOJKI VOWEL SIGN AA
+1122D ; [.2A00.0020.0002] # KHOJKI VOWEL SIGN I
+1122E ; [.2A01.0020.0002] # KHOJKI VOWEL SIGN II
+1122F ; [.2A02.0020.0002] # KHOJKI VOWEL SIGN U
+11230 ; [.2A03.0020.0002] # KHOJKI VOWEL SIGN E
+11231 ; [.2A04.0020.0002] # KHOJKI VOWEL SIGN AI
+11232 ; [.2A05.0020.0002] # KHOJKI VOWEL SIGN O
+11233 ; [.2A06.0020.0002] # KHOJKI VOWEL SIGN AU
+11235 ; [.2A07.0020.0002] # KHOJKI SIGN VIRAMA
+112B0 ; [.2A08.0020.0002] # KHUDAWADI LETTER A
+112B1 ; [.2A09.0020.0002] # KHUDAWADI LETTER AA
+112B2 ; [.2A0A.0020.0002] # KHUDAWADI LETTER I
+112B3 ; [.2A0B.0020.0002] # KHUDAWADI LETTER II
+112B4 ; [.2A0C.0020.0002] # KHUDAWADI LETTER U
+112B5 ; [.2A0D.0020.0002] # KHUDAWADI LETTER UU
+112B6 ; [.2A0E.0020.0002] # KHUDAWADI LETTER E
+112B7 ; [.2A0F.0020.0002] # KHUDAWADI LETTER AI
+112B8 ; [.2A10.0020.0002] # KHUDAWADI LETTER O
+112B9 ; [.2A11.0020.0002] # KHUDAWADI LETTER AU
+112BA ; [.2A12.0020.0002] # KHUDAWADI LETTER KA
+112BB ; [.2A13.0020.0002] # KHUDAWADI LETTER KHA
+112BC ; [.2A14.0020.0002] # KHUDAWADI LETTER GA
+112BD ; [.2A15.0020.0002] # KHUDAWADI LETTER GGA
+112BE ; [.2A16.0020.0002] # KHUDAWADI LETTER GHA
+112BF ; [.2A17.0020.0002] # KHUDAWADI LETTER NGA
+112C0 ; [.2A18.0020.0002] # KHUDAWADI LETTER CA
+112C1 ; [.2A19.0020.0002] # KHUDAWADI LETTER CHA
+112C2 ; [.2A1A.0020.0002] # KHUDAWADI LETTER JA
+112C3 ; [.2A1B.0020.0002] # KHUDAWADI LETTER JJA
+112C4 ; [.2A1C.0020.0002] # KHUDAWADI LETTER JHA
+112C5 ; [.2A1D.0020.0002] # KHUDAWADI LETTER NYA
+112C6 ; [.2A1E.0020.0002] # KHUDAWADI LETTER TTA
+112C7 ; [.2A1F.0020.0002] # KHUDAWADI LETTER TTHA
+112C8 ; [.2A20.0020.0002] # KHUDAWADI LETTER DDA
+112C9 ; [.2A21.0020.0002] # KHUDAWADI LETTER DDDA
+112CA ; [.2A22.0020.0002] # KHUDAWADI LETTER RRA
+112CB ; [.2A23.0020.0002] # KHUDAWADI LETTER DDHA
+112CC ; [.2A24.0020.0002] # KHUDAWADI LETTER NNA
+112CD ; [.2A25.0020.0002] # KHUDAWADI LETTER TA
+112CE ; [.2A26.0020.0002] # KHUDAWADI LETTER THA
+112CF ; [.2A27.0020.0002] # KHUDAWADI LETTER DA
+112D0 ; [.2A28.0020.0002] # KHUDAWADI LETTER DHA
+112D1 ; [.2A29.0020.0002] # KHUDAWADI LETTER NA
+112D2 ; [.2A2A.0020.0002] # KHUDAWADI LETTER PA
+112D3 ; [.2A2B.0020.0002] # KHUDAWADI LETTER PHA
+112D4 ; [.2A2C.0020.0002] # KHUDAWADI LETTER BA
+112D5 ; [.2A2D.0020.0002] # KHUDAWADI LETTER BBA
+112D6 ; [.2A2E.0020.0002] # KHUDAWADI LETTER BHA
+112D7 ; [.2A2F.0020.0002] # KHUDAWADI LETTER MA
+112D8 ; [.2A30.0020.0002] # KHUDAWADI LETTER YA
+112D9 ; [.2A31.0020.0002] # KHUDAWADI LETTER RA
+112DA ; [.2A32.0020.0002] # KHUDAWADI LETTER LA
+112DB ; [.2A33.0020.0002] # KHUDAWADI LETTER VA
+112DC ; [.2A34.0020.0002] # KHUDAWADI LETTER SHA
+112DD ; [.2A35.0020.0002] # KHUDAWADI LETTER SA
+112DE ; [.2A36.0020.0002] # KHUDAWADI LETTER HA
+112E0 ; [.2A37.0020.0002] # KHUDAWADI VOWEL SIGN AA
+112E1 ; [.2A38.0020.0002] # KHUDAWADI VOWEL SIGN I
+112E2 ; [.2A39.0020.0002] # KHUDAWADI VOWEL SIGN II
+112E3 ; [.2A3A.0020.0002] # KHUDAWADI VOWEL SIGN U
+112E4 ; [.2A3B.0020.0002] # KHUDAWADI VOWEL SIGN UU
+112E5 ; [.2A3C.0020.0002] # KHUDAWADI VOWEL SIGN E
+112E6 ; [.2A3D.0020.0002] # KHUDAWADI VOWEL SIGN AI
+112E7 ; [.2A3E.0020.0002] # KHUDAWADI VOWEL SIGN O
+112E8 ; [.2A3F.0020.0002] # KHUDAWADI VOWEL SIGN AU
+112EA ; [.2A40.0020.0002] # KHUDAWADI SIGN VIRAMA
+11280 ; [.2A41.0020.0002] # MULTANI LETTER A
+11281 ; [.2A42.0020.0002] # MULTANI LETTER I
+11282 ; [.2A43.0020.0002] # MULTANI LETTER U
+11283 ; [.2A44.0020.0002] # MULTANI LETTER E
+112A5 ; [.2A45.0020.0002] # MULTANI LETTER SA
+112A6 ; [.2A46.0020.0002] # MULTANI LETTER HA
+11284 ; [.2A47.0020.0002] # MULTANI LETTER KA
+11285 ; [.2A48.0020.0002] # MULTANI LETTER KHA
+11286 ; [.2A49.0020.0002] # MULTANI LETTER GA
+11288 ; [.2A4A.0020.0002] # MULTANI LETTER GHA
+1128A ; [.2A4B.0020.0002] # MULTANI LETTER CA
+1128B ; [.2A4C.0020.0002] # MULTANI LETTER CHA
+1128C ; [.2A4D.0020.0002] # MULTANI LETTER JA
+1128D ; [.2A4E.0020.0002] # MULTANI LETTER JJA
+1128F ; [.2A4F.0020.0002] # MULTANI LETTER NYA
+11290 ; [.2A50.0020.0002] # MULTANI LETTER TTA
+11291 ; [.2A51.0020.0002] # MULTANI LETTER TTHA
+11292 ; [.2A52.0020.0002] # MULTANI LETTER DDA
+11293 ; [.2A53.0020.0002] # MULTANI LETTER DDDA
+11294 ; [.2A54.0020.0002] # MULTANI LETTER DDHA
+11295 ; [.2A55.0020.0002] # MULTANI LETTER NNA
+11296 ; [.2A56.0020.0002] # MULTANI LETTER TA
+11297 ; [.2A57.0020.0002] # MULTANI LETTER THA
+11298 ; [.2A58.0020.0002] # MULTANI LETTER DA
+11299 ; [.2A59.0020.0002] # MULTANI LETTER DHA
+1129A ; [.2A5A.0020.0002] # MULTANI LETTER NA
+1129B ; [.2A5B.0020.0002] # MULTANI LETTER PA
+1129C ; [.2A5C.0020.0002] # MULTANI LETTER PHA
+1129D ; [.2A5D.0020.0002] # MULTANI LETTER BA
+1129F ; [.2A5E.0020.0002] # MULTANI LETTER BHA
+112A0 ; [.2A5F.0020.0002] # MULTANI LETTER MA
+112A1 ; [.2A60.0020.0002] # MULTANI LETTER YA
+112A2 ; [.2A61.0020.0002] # MULTANI LETTER RA
+112A3 ; [.2A62.0020.0002] # MULTANI LETTER LA
+112A4 ; [.2A63.0020.0002] # MULTANI LETTER VA
+112A7 ; [.2A64.0020.0002] # MULTANI LETTER RRA
+112A8 ; [.2A65.0020.0002] # MULTANI LETTER RHA
+11350 ; [.2A66.0020.0002] # GRANTHA OM
+11305 ; [.2A67.0020.0002] # GRANTHA LETTER A
+11306 ; [.2A68.0020.0002] # GRANTHA LETTER AA
+11307 ; [.2A69.0020.0002] # GRANTHA LETTER I
+11308 ; [.2A6A.0020.0002] # GRANTHA LETTER II
+11309 ; [.2A6B.0020.0002] # GRANTHA LETTER U
+1130A ; [.2A6C.0020.0002] # GRANTHA LETTER UU
+1130B ; [.2A6D.0020.0002] # GRANTHA LETTER VOCALIC R
+11360 ; [.2A6E.0020.0002] # GRANTHA LETTER VOCALIC RR
+1130C ; [.2A6F.0020.0002] # GRANTHA LETTER VOCALIC L
+11361 ; [.2A70.0020.0002] # GRANTHA LETTER VOCALIC LL
+1130F ; [.2A71.0020.0002] # GRANTHA LETTER EE
+11310 ; [.2A72.0020.0002] # GRANTHA LETTER AI
+11313 ; [.2A73.0020.0002] # GRANTHA LETTER OO
+11314 ; [.2A74.0020.0002] # GRANTHA LETTER AU
+11315 ; [.2A75.0020.0002] # GRANTHA LETTER KA
+11316 ; [.2A76.0020.0002] # GRANTHA LETTER KHA
+11317 ; [.2A77.0020.0002] # GRANTHA LETTER GA
+11318 ; [.2A78.0020.0002] # GRANTHA LETTER GHA
+11319 ; [.2A79.0020.0002] # GRANTHA LETTER NGA
+1131A ; [.2A7A.0020.0002] # GRANTHA LETTER CA
+1131B ; [.2A7B.0020.0002] # GRANTHA LETTER CHA
+1131C ; [.2A7C.0020.0002] # GRANTHA LETTER JA
+1131D ; [.2A7D.0020.0002] # GRANTHA LETTER JHA
+1131E ; [.2A7E.0020.0002] # GRANTHA LETTER NYA
+1131F ; [.2A7F.0020.0002] # GRANTHA LETTER TTA
+11320 ; [.2A80.0020.0002] # GRANTHA LETTER TTHA
+11321 ; [.2A81.0020.0002] # GRANTHA LETTER DDA
+11322 ; [.2A82.0020.0002] # GRANTHA LETTER DDHA
+11323 ; [.2A83.0020.0002] # GRANTHA LETTER NNA
+11324 ; [.2A84.0020.0002] # GRANTHA LETTER TA
+11325 ; [.2A85.0020.0002] # GRANTHA LETTER THA
+11326 ; [.2A86.0020.0002] # GRANTHA LETTER DA
+11327 ; [.2A87.0020.0002] # GRANTHA LETTER DHA
+11328 ; [.2A88.0020.0002] # GRANTHA LETTER NA
+1132A ; [.2A89.0020.0002] # GRANTHA LETTER PA
+1132B ; [.2A8A.0020.0002] # GRANTHA LETTER PHA
+1132C ; [.2A8B.0020.0002] # GRANTHA LETTER BA
+1132D ; [.2A8C.0020.0002] # GRANTHA LETTER BHA
+1132E ; [.2A8D.0020.0002] # GRANTHA LETTER MA
+1132F ; [.2A8E.0020.0002] # GRANTHA LETTER YA
+11330 ; [.2A8F.0020.0002] # GRANTHA LETTER RA
+11332 ; [.2A90.0020.0002] # GRANTHA LETTER LA
+11333 ; [.2A91.0020.0002] # GRANTHA LETTER LLA
+11335 ; [.2A92.0020.0002] # GRANTHA LETTER VA
+11336 ; [.2A93.0020.0002] # GRANTHA LETTER SHA
+11337 ; [.2A94.0020.0002] # GRANTHA LETTER SSA
+11338 ; [.2A95.0020.0002] # GRANTHA LETTER SA
+11339 ; [.2A96.0020.0002] # GRANTHA LETTER HA
+1133D ; [.2A97.0020.0002] # GRANTHA SIGN AVAGRAHA
+1135E ; [.2A98.0020.0002] # GRANTHA LETTER VEDIC ANUSVARA
+1135F ; [.2A99.0020.0002] # GRANTHA LETTER VEDIC DOUBLE ANUSVARA
+1133E ; [.2A9A.0020.0002] # GRANTHA VOWEL SIGN AA
+1133F ; [.2A9B.0020.0002] # GRANTHA VOWEL SIGN I
+11340 ; [.2A9C.0020.0002] # GRANTHA VOWEL SIGN II
+11341 ; [.2A9D.0020.0002] # GRANTHA VOWEL SIGN U
+11342 ; [.2A9E.0020.0002] # GRANTHA VOWEL SIGN UU
+11343 ; [.2A9F.0020.0002] # GRANTHA VOWEL SIGN VOCALIC R
+11344 ; [.2AA0.0020.0002] # GRANTHA VOWEL SIGN VOCALIC RR
+11362 ; [.2AA1.0020.0002] # GRANTHA VOWEL SIGN VOCALIC L
+11363 ; [.2AA2.0020.0002] # GRANTHA VOWEL SIGN VOCALIC LL
+11347 ; [.2AA3.0020.0002] # GRANTHA VOWEL SIGN EE
+11348 ; [.2AA4.0020.0002] # GRANTHA VOWEL SIGN AI
+1134B ; [.2AA5.0020.0002] # GRANTHA VOWEL SIGN OO
+11347 1133E ; [.2AA5.0020.0002] # GRANTHA VOWEL SIGN OO
+1134C ; [.2AA6.0020.0002] # GRANTHA VOWEL SIGN AU
+11347 11357 ; [.2AA6.0020.0002] # GRANTHA VOWEL SIGN AU
+1134D ; [.2AA7.0020.0002] # GRANTHA SIGN VIRAMA
+11357 ; [.2AA8.0020.0002] # GRANTHA AU LENGTH MARK
+1135D ; [.2AA9.0020.0002] # GRANTHA SIGN PLUTA
+114C7 ; [.2AAA.0020.0002] # TIRHUTA OM
+11480 ; [.2AAB.0020.0002] # TIRHUTA ANJI
+11481 ; [.2AAC.0020.0002] # TIRHUTA LETTER A
+11482 ; [.2AAD.0020.0002] # TIRHUTA LETTER AA
+11483 ; [.2AAE.0020.0002] # TIRHUTA LETTER I
+11484 ; [.2AAF.0020.0002] # TIRHUTA LETTER II
+11485 ; [.2AB0.0020.0002] # TIRHUTA LETTER U
+11486 ; [.2AB1.0020.0002] # TIRHUTA LETTER UU
+11487 ; [.2AB2.0020.0002] # TIRHUTA LETTER VOCALIC R
+11488 ; [.2AB3.0020.0002] # TIRHUTA LETTER VOCALIC RR
+11489 ; [.2AB4.0020.0002] # TIRHUTA LETTER VOCALIC L
+1148A ; [.2AB5.0020.0002] # TIRHUTA LETTER VOCALIC LL
+1148B ; [.2AB6.0020.0002] # TIRHUTA LETTER E
+1148C ; [.2AB7.0020.0002] # TIRHUTA LETTER AI
+1148D ; [.2AB8.0020.0002] # TIRHUTA LETTER O
+1148E ; [.2AB9.0020.0002] # TIRHUTA LETTER AU
+1148F ; [.2ABA.0020.0002] # TIRHUTA LETTER KA
+11490 ; [.2ABB.0020.0002] # TIRHUTA LETTER KHA
+11491 ; [.2ABC.0020.0002] # TIRHUTA LETTER GA
+11492 ; [.2ABD.0020.0002] # TIRHUTA LETTER GHA
+11493 ; [.2ABE.0020.0002] # TIRHUTA LETTER NGA
+11494 ; [.2ABF.0020.0002] # TIRHUTA LETTER CA
+11495 ; [.2AC0.0020.0002] # TIRHUTA LETTER CHA
+11496 ; [.2AC1.0020.0002] # TIRHUTA LETTER JA
+11497 ; [.2AC2.0020.0002] # TIRHUTA LETTER JHA
+11498 ; [.2AC3.0020.0002] # TIRHUTA LETTER NYA
+11499 ; [.2AC4.0020.0002] # TIRHUTA LETTER TTA
+1149A ; [.2AC5.0020.0002] # TIRHUTA LETTER TTHA
+1149B ; [.2AC6.0020.0002] # TIRHUTA LETTER DDA
+1149C ; [.2AC7.0020.0002] # TIRHUTA LETTER DDHA
+1149D ; [.2AC8.0020.0002] # TIRHUTA LETTER NNA
+1149E ; [.2AC9.0020.0002] # TIRHUTA LETTER TA
+1149F ; [.2ACA.0020.0002] # TIRHUTA LETTER THA
+114A0 ; [.2ACB.0020.0002] # TIRHUTA LETTER DA
+114A1 ; [.2ACC.0020.0002] # TIRHUTA LETTER DHA
+114A2 ; [.2ACD.0020.0002] # TIRHUTA LETTER NA
+114A3 ; [.2ACE.0020.0002] # TIRHUTA LETTER PA
+114A4 ; [.2ACF.0020.0002] # TIRHUTA LETTER PHA
+114A5 ; [.2AD0.0020.0002] # TIRHUTA LETTER BA
+114A6 ; [.2AD1.0020.0002] # TIRHUTA LETTER BHA
+114A7 ; [.2AD2.0020.0002] # TIRHUTA LETTER MA
+114A8 ; [.2AD3.0020.0002] # TIRHUTA LETTER YA
+114A9 ; [.2AD4.0020.0002] # TIRHUTA LETTER RA
+114AA ; [.2AD5.0020.0002] # TIRHUTA LETTER LA
+114AB ; [.2AD6.0020.0002] # TIRHUTA LETTER VA
+114AC ; [.2AD7.0020.0002] # TIRHUTA LETTER SHA
+114AD ; [.2AD8.0020.0002] # TIRHUTA LETTER SSA
+114AE ; [.2AD9.0020.0002] # TIRHUTA LETTER SA
+114AF ; [.2ADA.0020.0002] # TIRHUTA LETTER HA
+114C4 ; [.2ADB.0020.0002] # TIRHUTA SIGN AVAGRAHA
+114C5 ; [.2ADC.0020.0002] # TIRHUTA GVANG
+114B0 ; [.2ADD.0020.0002] # TIRHUTA VOWEL SIGN AA
+114B1 ; [.2ADE.0020.0002] # TIRHUTA VOWEL SIGN I
+114B2 ; [.2ADF.0020.0002] # TIRHUTA VOWEL SIGN II
+114B3 ; [.2AE0.0020.0002] # TIRHUTA VOWEL SIGN U
+114B4 ; [.2AE1.0020.0002] # TIRHUTA VOWEL SIGN UU
+114B5 ; [.2AE2.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC R
+114B6 ; [.2AE3.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC RR
+114B7 ; [.2AE4.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC L
+114B8 ; [.2AE5.0020.0002] # TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 ; [.2AE6.0020.0002] # TIRHUTA VOWEL SIGN E
+114BA ; [.2AE7.0020.0002] # TIRHUTA VOWEL SIGN SHORT E
+114BB ; [.2AE8.0020.0002] # TIRHUTA VOWEL SIGN AI
+114B9 114BA ; [.2AE8.0020.0002] # TIRHUTA VOWEL SIGN AI
+114BC ; [.2AE9.0020.0002] # TIRHUTA VOWEL SIGN O
+114B9 114B0 ; [.2AE9.0020.0002] # TIRHUTA VOWEL SIGN O
+114BD ; [.2AEA.0020.0002] # TIRHUTA VOWEL SIGN SHORT O
+114BE ; [.2AEB.0020.0002] # TIRHUTA VOWEL SIGN AU
+114B9 114BD ; [.2AEB.0020.0002] # TIRHUTA VOWEL SIGN AU
+114C2 ; [.2AEC.0020.0002] # TIRHUTA SIGN VIRAMA
+11580 ; [.2AED.0020.0002] # SIDDHAM LETTER A
+11581 ; [.2AEE.0020.0002] # SIDDHAM LETTER AA
+11582 ; [.2AEF.0020.0002] # SIDDHAM LETTER I
+115D8 ; [.2AEF.0020.0004][.0000.010B.0004] # SIDDHAM LETTER THREE-CIRCLE ALTERNATE I
+115D9 ; [.2AEF.0020.0004][.0000.010C.0004] # SIDDHAM LETTER TWO-CIRCLE ALTERNATE I
+11583 ; [.2AF0.0020.0002] # SIDDHAM LETTER II
+115DA ; [.2AF0.0020.0004][.0000.010B.0004] # SIDDHAM LETTER TWO-CIRCLE ALTERNATE II
+11584 ; [.2AF1.0020.0002] # SIDDHAM LETTER U
+115DB ; [.2AF1.0020.0004][.0000.010B.0004] # SIDDHAM LETTER ALTERNATE U
+11585 ; [.2AF2.0020.0002] # SIDDHAM LETTER UU
+11586 ; [.2AF3.0020.0002] # SIDDHAM LETTER VOCALIC R
+11587 ; [.2AF4.0020.0002] # SIDDHAM LETTER VOCALIC RR
+11588 ; [.2AF5.0020.0002] # SIDDHAM LETTER VOCALIC L
+11589 ; [.2AF6.0020.0002] # SIDDHAM LETTER VOCALIC LL
+1158A ; [.2AF7.0020.0002] # SIDDHAM LETTER E
+1158B ; [.2AF8.0020.0002] # SIDDHAM LETTER AI
+1158C ; [.2AF9.0020.0002] # SIDDHAM LETTER O
+1158D ; [.2AFA.0020.0002] # SIDDHAM LETTER AU
+1158E ; [.2AFB.0020.0002] # SIDDHAM LETTER KA
+1158F ; [.2AFC.0020.0002] # SIDDHAM LETTER KHA
+11590 ; [.2AFD.0020.0002] # SIDDHAM LETTER GA
+11591 ; [.2AFE.0020.0002] # SIDDHAM LETTER GHA
+11592 ; [.2AFF.0020.0002] # SIDDHAM LETTER NGA
+11593 ; [.2B00.0020.0002] # SIDDHAM LETTER CA
+11594 ; [.2B01.0020.0002] # SIDDHAM LETTER CHA
+11595 ; [.2B02.0020.0002] # SIDDHAM LETTER JA
+11596 ; [.2B03.0020.0002] # SIDDHAM LETTER JHA
+11597 ; [.2B04.0020.0002] # SIDDHAM LETTER NYA
+11598 ; [.2B05.0020.0002] # SIDDHAM LETTER TTA
+11599 ; [.2B06.0020.0002] # SIDDHAM LETTER TTHA
+1159A ; [.2B07.0020.0002] # SIDDHAM LETTER DDA
+1159B ; [.2B08.0020.0002] # SIDDHAM LETTER DDHA
+1159C ; [.2B09.0020.0002] # SIDDHAM LETTER NNA
+1159D ; [.2B0A.0020.0002] # SIDDHAM LETTER TA
+1159E ; [.2B0B.0020.0002] # SIDDHAM LETTER THA
+1159F ; [.2B0C.0020.0002] # SIDDHAM LETTER DA
+115A0 ; [.2B0D.0020.0002] # SIDDHAM LETTER DHA
+115A1 ; [.2B0E.0020.0002] # SIDDHAM LETTER NA
+115A2 ; [.2B0F.0020.0002] # SIDDHAM LETTER PA
+115A3 ; [.2B10.0020.0002] # SIDDHAM LETTER PHA
+115A4 ; [.2B11.0020.0002] # SIDDHAM LETTER BA
+115A5 ; [.2B12.0020.0002] # SIDDHAM LETTER BHA
+115A6 ; [.2B13.0020.0002] # SIDDHAM LETTER MA
+115A7 ; [.2B14.0020.0002] # SIDDHAM LETTER YA
+115A8 ; [.2B15.0020.0002] # SIDDHAM LETTER RA
+115A9 ; [.2B16.0020.0002] # SIDDHAM LETTER LA
+115AA ; [.2B17.0020.0002] # SIDDHAM LETTER VA
+115AB ; [.2B18.0020.0002] # SIDDHAM LETTER SHA
+115AC ; [.2B19.0020.0002] # SIDDHAM LETTER SSA
+115AD ; [.2B1A.0020.0002] # SIDDHAM LETTER SA
+115AE ; [.2B1B.0020.0002] # SIDDHAM LETTER HA
+115AF ; [.2B1C.0020.0002] # SIDDHAM VOWEL SIGN AA
+115B0 ; [.2B1D.0020.0002] # SIDDHAM VOWEL SIGN I
+115B1 ; [.2B1E.0020.0002] # SIDDHAM VOWEL SIGN II
+115B2 ; [.2B1F.0020.0002] # SIDDHAM VOWEL SIGN U
+115DC ; [.2B1F.0020.0004][.0000.010B.0004] # SIDDHAM VOWEL SIGN ALTERNATE U
+115B3 ; [.2B20.0020.0002] # SIDDHAM VOWEL SIGN UU
+115DD ; [.2B20.0020.0004][.0000.010B.0004] # SIDDHAM VOWEL SIGN ALTERNATE UU
+115B4 ; [.2B21.0020.0002] # SIDDHAM VOWEL SIGN VOCALIC R
+115B5 ; [.2B22.0020.0002] # SIDDHAM VOWEL SIGN VOCALIC RR
+115B8 ; [.2B23.0020.0002] # SIDDHAM VOWEL SIGN E
+115B9 ; [.2B24.0020.0002] # SIDDHAM VOWEL SIGN AI
+115BA ; [.2B25.0020.0002] # SIDDHAM VOWEL SIGN O
+115B8 115AF ; [.2B25.0020.0002] # SIDDHAM VOWEL SIGN O
+115BB ; [.2B26.0020.0002] # SIDDHAM VOWEL SIGN AU
+115B9 115AF ; [.2B26.0020.0002] # SIDDHAM VOWEL SIGN AU
+115BF ; [.2B27.0020.0002] # SIDDHAM SIGN VIRAMA
+11600 ; [.2B28.0020.0002] # MODI LETTER A
+11601 ; [.2B29.0020.0002] # MODI LETTER AA
+11602 ; [.2B2A.0020.0002] # MODI LETTER I
+11603 ; [.2B2B.0020.0002] # MODI LETTER II
+11604 ; [.2B2C.0020.0002] # MODI LETTER U
+11605 ; [.2B2D.0020.0002] # MODI LETTER UU
+11606 ; [.2B2E.0020.0002] # MODI LETTER VOCALIC R
+11607 ; [.2B2F.0020.0002] # MODI LETTER VOCALIC RR
+11608 ; [.2B30.0020.0002] # MODI LETTER VOCALIC L
+11609 ; [.2B31.0020.0002] # MODI LETTER VOCALIC LL
+1160A ; [.2B32.0020.0002] # MODI LETTER E
+1160B ; [.2B33.0020.0002] # MODI LETTER AI
+1160C ; [.2B34.0020.0002] # MODI LETTER O
+1160D ; [.2B35.0020.0002] # MODI LETTER AU
+1160E ; [.2B36.0020.0002] # MODI LETTER KA
+1160F ; [.2B37.0020.0002] # MODI LETTER KHA
+11610 ; [.2B38.0020.0002] # MODI LETTER GA
+11611 ; [.2B39.0020.0002] # MODI LETTER GHA
+11612 ; [.2B3A.0020.0002] # MODI LETTER NGA
+11613 ; [.2B3B.0020.0002] # MODI LETTER CA
+11614 ; [.2B3C.0020.0002] # MODI LETTER CHA
+11615 ; [.2B3D.0020.0002] # MODI LETTER JA
+11616 ; [.2B3E.0020.0002] # MODI LETTER JHA
+11617 ; [.2B3F.0020.0002] # MODI LETTER NYA
+11618 ; [.2B40.0020.0002] # MODI LETTER TTA
+11619 ; [.2B41.0020.0002] # MODI LETTER TTHA
+1161A ; [.2B42.0020.0002] # MODI LETTER DDA
+1161B ; [.2B43.0020.0002] # MODI LETTER DDHA
+1161C ; [.2B44.0020.0002] # MODI LETTER NNA
+1161D ; [.2B45.0020.0002] # MODI LETTER TA
+1161E ; [.2B46.0020.0002] # MODI LETTER THA
+1161F ; [.2B47.0020.0002] # MODI LETTER DA
+11620 ; [.2B48.0020.0002] # MODI LETTER DHA
+11621 ; [.2B49.0020.0002] # MODI LETTER NA
+11622 ; [.2B4A.0020.0002] # MODI LETTER PA
+11623 ; [.2B4B.0020.0002] # MODI LETTER PHA
+11624 ; [.2B4C.0020.0002] # MODI LETTER BA
+11625 ; [.2B4D.0020.0002] # MODI LETTER BHA
+11626 ; [.2B4E.0020.0002] # MODI LETTER MA
+11627 ; [.2B4F.0020.0002] # MODI LETTER YA
+11628 ; [.2B50.0020.0002] # MODI LETTER RA
+11629 ; [.2B51.0020.0002] # MODI LETTER LA
+1162A ; [.2B52.0020.0002] # MODI LETTER VA
+1162B ; [.2B53.0020.0002] # MODI LETTER SHA
+1162C ; [.2B54.0020.0002] # MODI LETTER SSA
+1162D ; [.2B55.0020.0002] # MODI LETTER SA
+1162E ; [.2B56.0020.0002] # MODI LETTER HA
+1162F ; [.2B57.0020.0002] # MODI LETTER LLA
+11630 ; [.2B58.0020.0002] # MODI VOWEL SIGN AA
+11631 ; [.2B59.0020.0002] # MODI VOWEL SIGN I
+11632 ; [.2B5A.0020.0002] # MODI VOWEL SIGN II
+11633 ; [.2B5B.0020.0002] # MODI VOWEL SIGN U
+11634 ; [.2B5C.0020.0002] # MODI VOWEL SIGN UU
+11635 ; [.2B5D.0020.0002] # MODI VOWEL SIGN VOCALIC R
+11636 ; [.2B5E.0020.0002] # MODI VOWEL SIGN VOCALIC RR
+11637 ; [.2B5F.0020.0002] # MODI VOWEL SIGN VOCALIC L
+11638 ; [.2B60.0020.0002] # MODI VOWEL SIGN VOCALIC LL
+11639 ; [.2B61.0020.0002] # MODI VOWEL SIGN E
+1163A ; [.2B62.0020.0002] # MODI VOWEL SIGN AI
+1163B ; [.2B63.0020.0002] # MODI VOWEL SIGN O
+1163C ; [.2B64.0020.0002] # MODI VOWEL SIGN AU
+1163F ; [.2B65.0020.0002] # MODI SIGN VIRAMA
+11644 ; [.2B66.0020.0002] # MODI SIGN HUVA
+11680 ; [.2B67.0020.0002] # TAKRI LETTER A
+11681 ; [.2B68.0020.0002] # TAKRI LETTER AA
+11682 ; [.2B69.0020.0002] # TAKRI LETTER I
+11683 ; [.2B6A.0020.0002] # TAKRI LETTER II
+11684 ; [.2B6B.0020.0002] # TAKRI LETTER U
+11685 ; [.2B6C.0020.0002] # TAKRI LETTER UU
+11686 ; [.2B6D.0020.0002] # TAKRI LETTER E
+11687 ; [.2B6E.0020.0002] # TAKRI LETTER AI
+11688 ; [.2B6F.0020.0002] # TAKRI LETTER O
+11689 ; [.2B70.0020.0002] # TAKRI LETTER AU
+116A8 ; [.2B71.0020.0002] # TAKRI LETTER SA
+116A7 ; [.2B72.0020.0002] # TAKRI LETTER SHA
+116A9 ; [.2B73.0020.0002] # TAKRI LETTER HA
+1168A ; [.2B74.0020.0002] # TAKRI LETTER KA
+1168B ; [.2B75.0020.0002] # TAKRI LETTER KHA
+1168C ; [.2B76.0020.0002] # TAKRI LETTER GA
+1168D ; [.2B77.0020.0002] # TAKRI LETTER GHA
+1168E ; [.2B78.0020.0002] # TAKRI LETTER NGA
+1168F ; [.2B79.0020.0002] # TAKRI LETTER CA
+11690 ; [.2B7A.0020.0002] # TAKRI LETTER CHA
+11691 ; [.2B7B.0020.0002] # TAKRI LETTER JA
+11692 ; [.2B7C.0020.0002] # TAKRI LETTER JHA
+11693 ; [.2B7D.0020.0002] # TAKRI LETTER NYA
+11694 ; [.2B7E.0020.0002] # TAKRI LETTER TTA
+11695 ; [.2B7F.0020.0002] # TAKRI LETTER TTHA
+11696 ; [.2B80.0020.0002] # TAKRI LETTER DDA
+11697 ; [.2B81.0020.0002] # TAKRI LETTER DDHA
+11698 ; [.2B82.0020.0002] # TAKRI LETTER NNA
+11699 ; [.2B83.0020.0002] # TAKRI LETTER TA
+1169A ; [.2B84.0020.0002] # TAKRI LETTER THA
+1169B ; [.2B85.0020.0002] # TAKRI LETTER DA
+1169C ; [.2B86.0020.0002] # TAKRI LETTER DHA
+1169D ; [.2B87.0020.0002] # TAKRI LETTER NA
+1169E ; [.2B88.0020.0002] # TAKRI LETTER PA
+1169F ; [.2B89.0020.0002] # TAKRI LETTER PHA
+116A0 ; [.2B8A.0020.0002] # TAKRI LETTER BA
+116A1 ; [.2B8B.0020.0002] # TAKRI LETTER BHA
+116A2 ; [.2B8C.0020.0002] # TAKRI LETTER MA
+116A3 ; [.2B8D.0020.0002] # TAKRI LETTER YA
+116A4 ; [.2B8E.0020.0002] # TAKRI LETTER RA
+116A5 ; [.2B8F.0020.0002] # TAKRI LETTER LA
+116A6 ; [.2B90.0020.0002] # TAKRI LETTER VA
+116AA ; [.2B91.0020.0002] # TAKRI LETTER RRA
+116AD ; [.2B92.0020.0002] # TAKRI VOWEL SIGN AA
+116AE ; [.2B93.0020.0002] # TAKRI VOWEL SIGN I
+116AF ; [.2B94.0020.0002] # TAKRI VOWEL SIGN II
+116B0 ; [.2B95.0020.0002] # TAKRI VOWEL SIGN U
+116B1 ; [.2B96.0020.0002] # TAKRI VOWEL SIGN UU
+116B2 ; [.2B97.0020.0002] # TAKRI VOWEL SIGN E
+116B3 ; [.2B98.0020.0002] # TAKRI VOWEL SIGN AI
+116B4 ; [.2B99.0020.0002] # TAKRI VOWEL SIGN O
+116B5 ; [.2B9A.0020.0002] # TAKRI VOWEL SIGN AU
+116B6 ; [.2B9B.0020.0002] # TAKRI SIGN VIRAMA
+11700 ; [.2B9C.0020.0002] # AHOM LETTER KA
+11701 ; [.2B9D.0020.0002] # AHOM LETTER KHA
+11702 ; [.2B9E.0020.0002] # AHOM LETTER NGA
+11703 ; [.2B9F.0020.0002] # AHOM LETTER NA
+11704 ; [.2BA0.0020.0002] # AHOM LETTER TA
+11705 ; [.2BA0.0020.0004][.0000.010B.0004] # AHOM LETTER ALTERNATE TA
+11706 ; [.2BA1.0020.0002] # AHOM LETTER PA
+11707 ; [.2BA2.0020.0002] # AHOM LETTER PHA
+11708 ; [.2BA3.0020.0002] # AHOM LETTER BA
+11709 ; [.2BA4.0020.0002] # AHOM LETTER MA
+1170A ; [.2BA5.0020.0002] # AHOM LETTER JA
+1170B ; [.2BA6.0020.0002] # AHOM LETTER CHA
+1170C ; [.2BA7.0020.0002] # AHOM LETTER THA
+1170D ; [.2BA8.0020.0002] # AHOM LETTER RA
+1170E ; [.2BA9.0020.0002] # AHOM LETTER LA
+1170F ; [.2BAA.0020.0002] # AHOM LETTER SA
+11710 ; [.2BAB.0020.0002] # AHOM LETTER NYA
+11711 ; [.2BAC.0020.0002] # AHOM LETTER HA
+11712 ; [.2BAD.0020.0002] # AHOM LETTER A
+11713 ; [.2BAE.0020.0002] # AHOM LETTER DA
+11714 ; [.2BAF.0020.0002] # AHOM LETTER DHA
+11715 ; [.2BB0.0020.0002] # AHOM LETTER GA
+11716 ; [.2BB0.0020.0004][.0000.010B.0004] # AHOM LETTER ALTERNATE GA
+11717 ; [.2BB1.0020.0002] # AHOM LETTER GHA
+11718 ; [.2BB2.0020.0002] # AHOM LETTER BHA
+11719 ; [.2BB3.0020.0002] # AHOM LETTER JHA
+11720 ; [.2BB4.0020.0002] # AHOM VOWEL SIGN A
+11721 ; [.2BB5.0020.0002] # AHOM VOWEL SIGN AA
+11722 ; [.2BB6.0020.0002] # AHOM VOWEL SIGN I
+11723 ; [.2BB7.0020.0002] # AHOM VOWEL SIGN II
+11724 ; [.2BB8.0020.0002] # AHOM VOWEL SIGN U
+11725 ; [.2BB9.0020.0002] # AHOM VOWEL SIGN UU
+11726 ; [.2BBA.0020.0002] # AHOM VOWEL SIGN E
+11727 ; [.2BBB.0020.0002] # AHOM VOWEL SIGN AW
+11728 ; [.2BBC.0020.0002] # AHOM VOWEL SIGN O
+11729 ; [.2BBD.0020.0002] # AHOM VOWEL SIGN AI
+1172A ; [.2BBE.0020.0002] # AHOM VOWEL SIGN AM
+1172B ; [.2BBF.0020.0002] # AHOM SIGN KILLER
+1171D ; [.2BC0.0020.0002] # AHOM CONSONANT SIGN MEDIAL LA
+1171E ; [.2BC1.0020.0002] # AHOM CONSONANT SIGN MEDIAL RA
+1171F ; [.2BC2.0020.0002] # AHOM CONSONANT SIGN MEDIAL LIGATING RA
+1B83 ; [.2BC3.0020.0002] # SUNDANESE LETTER A
+1BBA ; [.2BC3.0020.0004] # SUNDANESE AVAGRAHA
+1B84 ; [.2BC4.0020.0002] # SUNDANESE LETTER I
+1B85 ; [.2BC5.0020.0002] # SUNDANESE LETTER U
+1B86 ; [.2BC6.0020.0002] # SUNDANESE LETTER AE
+1B87 ; [.2BC7.0020.0002] # SUNDANESE LETTER O
+1B88 ; [.2BC8.0020.0002] # SUNDANESE LETTER E
+1B89 ; [.2BC9.0020.0002] # SUNDANESE LETTER EU
+1B8A ; [.2BCA.0020.0002] # SUNDANESE LETTER KA
+1BBE ; [.2BCA.0020.0019] # SUNDANESE LETTER FINAL K
+1BAE ; [.2BCB.0020.0002] # SUNDANESE LETTER KHA
+1B8B ; [.2BCC.0020.0002] # SUNDANESE LETTER QA
+1B8C ; [.2BCD.0020.0002] # SUNDANESE LETTER GA
+1B8D ; [.2BCE.0020.0002] # SUNDANESE LETTER NGA
+1B8E ; [.2BCF.0020.0002] # SUNDANESE LETTER CA
+1B8F ; [.2BD0.0020.0002] # SUNDANESE LETTER JA
+1B90 ; [.2BD1.0020.0002] # SUNDANESE LETTER ZA
+1B91 ; [.2BD2.0020.0002] # SUNDANESE LETTER NYA
+1B92 ; [.2BD3.0020.0002] # SUNDANESE LETTER TA
+1B93 ; [.2BD4.0020.0002] # SUNDANESE LETTER DA
+1B94 ; [.2BD5.0020.0002] # SUNDANESE LETTER NA
+1B95 ; [.2BD6.0020.0002] # SUNDANESE LETTER PA
+1B96 ; [.2BD7.0020.0002] # SUNDANESE LETTER FA
+1B97 ; [.2BD8.0020.0002] # SUNDANESE LETTER VA
+1B98 ; [.2BD9.0020.0002] # SUNDANESE LETTER BA
+1BBD ; [.2BDA.0020.0002] # SUNDANESE LETTER BHA
+1B99 ; [.2BDB.0020.0002] # SUNDANESE LETTER MA
+1BBF ; [.2BDB.0020.0019] # SUNDANESE LETTER FINAL M
+1BAC ; [.2BDC.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN MA
+1B9A ; [.2BDD.0020.0002] # SUNDANESE LETTER YA
+1BA1 ; [.2BDE.0020.0002] # SUNDANESE CONSONANT SIGN PAMINGKAL
+1B9B ; [.2BDF.0020.0002] # SUNDANESE LETTER RA
+1BA2 ; [.2BE0.0020.0002] # SUNDANESE CONSONANT SIGN PANYAKRA
+1BBB ; [.2BE1.0020.0002] # SUNDANESE LETTER REU
+1B9C ; [.2BE2.0020.0002] # SUNDANESE LETTER LA
+1BA3 ; [.2BE3.0020.0002] # SUNDANESE CONSONANT SIGN PANYIKU
+1BBC ; [.2BE4.0020.0002] # SUNDANESE LETTER LEU
+1B9D ; [.2BE5.0020.0002] # SUNDANESE LETTER WA
+1BAD ; [.2BE6.0020.0002] # SUNDANESE CONSONANT SIGN PASANGAN WA
+1B9E ; [.2BE7.0020.0002] # SUNDANESE LETTER SA
+1B9F ; [.2BE8.0020.0002] # SUNDANESE LETTER XA
+1BAF ; [.2BE9.0020.0002] # SUNDANESE LETTER SYA
+1BA0 ; [.2BEA.0020.0002] # SUNDANESE LETTER HA
+1BA4 ; [.2BEB.0020.0002] # SUNDANESE VOWEL SIGN PANGHULU
+1BA5 ; [.2BEC.0020.0002] # SUNDANESE VOWEL SIGN PANYUKU
+1BA6 ; [.2BED.0020.0002] # SUNDANESE VOWEL SIGN PANAELAENG
+1BA7 ; [.2BEE.0020.0002] # SUNDANESE VOWEL SIGN PANOLONG
+1BA8 ; [.2BEF.0020.0002] # SUNDANESE VOWEL SIGN PAMEPET
+1BA9 ; [.2BF0.0020.0002] # SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA ; [.2BF1.0020.0002] # SUNDANESE SIGN PAMAAEH
+1BAB ; [.2BF2.0020.0002] # SUNDANESE SIGN VIRAMA
+11005 ; [.2BF3.0020.0002] # BRAHMI LETTER A
+11006 ; [.2BF4.0020.0002] # BRAHMI LETTER AA
+11007 ; [.2BF5.0020.0002] # BRAHMI LETTER I
+11008 ; [.2BF6.0020.0002] # BRAHMI LETTER II
+11009 ; [.2BF7.0020.0002] # BRAHMI LETTER U
+1100A ; [.2BF8.0020.0002] # BRAHMI LETTER UU
+1100B ; [.2BF9.0020.0002] # BRAHMI LETTER VOCALIC R
+1100C ; [.2BFA.0020.0002] # BRAHMI LETTER VOCALIC RR
+1100D ; [.2BFB.0020.0002] # BRAHMI LETTER VOCALIC L
+1100E ; [.2BFC.0020.0002] # BRAHMI LETTER VOCALIC LL
+1100F ; [.2BFD.0020.0002] # BRAHMI LETTER E
+11010 ; [.2BFE.0020.0002] # BRAHMI LETTER AI
+11011 ; [.2BFF.0020.0002] # BRAHMI LETTER O
+11012 ; [.2C00.0020.0002] # BRAHMI LETTER AU
+11013 ; [.2C01.0020.0002] # BRAHMI LETTER KA
+11014 ; [.2C02.0020.0002] # BRAHMI LETTER KHA
+11015 ; [.2C03.0020.0002] # BRAHMI LETTER GA
+11016 ; [.2C04.0020.0002] # BRAHMI LETTER GHA
+11017 ; [.2C05.0020.0002] # BRAHMI LETTER NGA
+11018 ; [.2C06.0020.0002] # BRAHMI LETTER CA
+11019 ; [.2C07.0020.0002] # BRAHMI LETTER CHA
+1101A ; [.2C08.0020.0002] # BRAHMI LETTER JA
+1101B ; [.2C09.0020.0002] # BRAHMI LETTER JHA
+1101C ; [.2C0A.0020.0002] # BRAHMI LETTER NYA
+1101D ; [.2C0B.0020.0002] # BRAHMI LETTER TTA
+1101E ; [.2C0C.0020.0002] # BRAHMI LETTER TTHA
+1101F ; [.2C0D.0020.0002] # BRAHMI LETTER DDA
+11020 ; [.2C0E.0020.0002] # BRAHMI LETTER DDHA
+11021 ; [.2C0F.0020.0002] # BRAHMI LETTER NNA
+11022 ; [.2C10.0020.0002] # BRAHMI LETTER TA
+11023 ; [.2C11.0020.0002] # BRAHMI LETTER THA
+11024 ; [.2C12.0020.0002] # BRAHMI LETTER DA
+11025 ; [.2C13.0020.0002] # BRAHMI LETTER DHA
+11026 ; [.2C14.0020.0002] # BRAHMI LETTER NA
+11027 ; [.2C15.0020.0002] # BRAHMI LETTER PA
+11028 ; [.2C16.0020.0002] # BRAHMI LETTER PHA
+11029 ; [.2C17.0020.0002] # BRAHMI LETTER BA
+1102A ; [.2C18.0020.0002] # BRAHMI LETTER BHA
+1102B ; [.2C19.0020.0002] # BRAHMI LETTER MA
+1102C ; [.2C1A.0020.0002] # BRAHMI LETTER YA
+1102D ; [.2C1B.0020.0002] # BRAHMI LETTER RA
+1102E ; [.2C1C.0020.0002] # BRAHMI LETTER LA
+1102F ; [.2C1D.0020.0002] # BRAHMI LETTER VA
+11030 ; [.2C1E.0020.0002] # BRAHMI LETTER SHA
+11031 ; [.2C1F.0020.0002] # BRAHMI LETTER SSA
+11032 ; [.2C20.0020.0002] # BRAHMI LETTER SA
+11033 ; [.2C21.0020.0002] # BRAHMI LETTER HA
+11003 ; [.2C22.0020.0002] # BRAHMI SIGN JIHVAMULIYA
+11004 ; [.2C23.0020.0002] # BRAHMI SIGN UPADHMANIYA
+11034 ; [.2C24.0020.0002] # BRAHMI LETTER LLA
+11035 ; [.2C25.0020.0002] # BRAHMI LETTER OLD TAMIL LLLA
+11036 ; [.2C26.0020.0002] # BRAHMI LETTER OLD TAMIL RRA
+11037 ; [.2C27.0020.0002] # BRAHMI LETTER OLD TAMIL NNNA
+11038 ; [.2C28.0020.0002] # BRAHMI VOWEL SIGN AA
+11039 ; [.2C29.0020.0002] # BRAHMI VOWEL SIGN BHATTIPROLU AA
+1103A ; [.2C2A.0020.0002] # BRAHMI VOWEL SIGN I
+1103B ; [.2C2B.0020.0002] # BRAHMI VOWEL SIGN II
+1103C ; [.2C2C.0020.0002] # BRAHMI VOWEL SIGN U
+1103D ; [.2C2D.0020.0002] # BRAHMI VOWEL SIGN UU
+1103E ; [.2C2E.0020.0002] # BRAHMI VOWEL SIGN VOCALIC R
+1103F ; [.2C2F.0020.0002] # BRAHMI VOWEL SIGN VOCALIC RR
+11040 ; [.2C30.0020.0002] # BRAHMI VOWEL SIGN VOCALIC L
+11041 ; [.2C31.0020.0002] # BRAHMI VOWEL SIGN VOCALIC LL
+11042 ; [.2C32.0020.0002] # BRAHMI VOWEL SIGN E
+11043 ; [.2C33.0020.0002] # BRAHMI VOWEL SIGN AI
+11044 ; [.2C34.0020.0002] # BRAHMI VOWEL SIGN O
+11045 ; [.2C35.0020.0002] # BRAHMI VOWEL SIGN AU
+11046 ; [.2C36.0020.0002] # BRAHMI VIRAMA
+1107F ; [.2C37.0020.0002] # BRAHMI NUMBER JOINER
+10A00 ; [.2C38.0020.0002] # KHAROSHTHI LETTER A
+10A01 ; [.2C39.0020.0002] # KHAROSHTHI VOWEL SIGN I
+10A02 ; [.2C3A.0020.0002] # KHAROSHTHI VOWEL SIGN U
+10A03 ; [.2C3B.0020.0002] # KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05 ; [.2C3C.0020.0002] # KHAROSHTHI VOWEL SIGN E
+10A06 ; [.2C3D.0020.0002] # KHAROSHTHI VOWEL SIGN O
+10A0C ; [.2C3E.0020.0002] # KHAROSHTHI VOWEL LENGTH MARK
+10A10 ; [.2C3F.0020.0002] # KHAROSHTHI LETTER KA
+10A11 ; [.2C40.0020.0002] # KHAROSHTHI LETTER KHA
+10A12 ; [.2C41.0020.0002] # KHAROSHTHI LETTER GA
+10A13 ; [.2C42.0020.0002] # KHAROSHTHI LETTER GHA
+10A15 ; [.2C43.0020.0002] # KHAROSHTHI LETTER CA
+10A16 ; [.2C44.0020.0002] # KHAROSHTHI LETTER CHA
+10A17 ; [.2C45.0020.0002] # KHAROSHTHI LETTER JA
+10A19 ; [.2C46.0020.0002] # KHAROSHTHI LETTER NYA
+10A1A ; [.2C47.0020.0002] # KHAROSHTHI LETTER TTA
+10A1B ; [.2C48.0020.0002] # KHAROSHTHI LETTER TTHA
+10A1C ; [.2C49.0020.0002] # KHAROSHTHI LETTER DDA
+10A1D ; [.2C4A.0020.0002] # KHAROSHTHI LETTER DDHA
+10A1E ; [.2C4B.0020.0002] # KHAROSHTHI LETTER NNA
+10A1F ; [.2C4C.0020.0002] # KHAROSHTHI LETTER TA
+10A20 ; [.2C4D.0020.0002] # KHAROSHTHI LETTER THA
+10A21 ; [.2C4E.0020.0002] # KHAROSHTHI LETTER DA
+10A22 ; [.2C4F.0020.0002] # KHAROSHTHI LETTER DHA
+10A23 ; [.2C50.0020.0002] # KHAROSHTHI LETTER NA
+10A24 ; [.2C51.0020.0002] # KHAROSHTHI LETTER PA
+10A25 ; [.2C52.0020.0002] # KHAROSHTHI LETTER PHA
+10A26 ; [.2C53.0020.0002] # KHAROSHTHI LETTER BA
+10A27 ; [.2C54.0020.0002] # KHAROSHTHI LETTER BHA
+10A28 ; [.2C55.0020.0002] # KHAROSHTHI LETTER MA
+10A29 ; [.2C56.0020.0002] # KHAROSHTHI LETTER YA
+10A2A ; [.2C57.0020.0002] # KHAROSHTHI LETTER RA
+10A2B ; [.2C58.0020.0002] # KHAROSHTHI LETTER LA
+10A2C ; [.2C59.0020.0002] # KHAROSHTHI LETTER VA
+10A2D ; [.2C5A.0020.0002] # KHAROSHTHI LETTER SHA
+10A2E ; [.2C5B.0020.0002] # KHAROSHTHI LETTER SSA
+10A2F ; [.2C5C.0020.0002] # KHAROSHTHI LETTER SA
+10A30 ; [.2C5D.0020.0002] # KHAROSHTHI LETTER ZA
+10A31 ; [.2C5E.0020.0002] # KHAROSHTHI LETTER HA
+10A32 ; [.2C5F.0020.0002] # KHAROSHTHI LETTER KKA
+10A33 ; [.2C60.0020.0002] # KHAROSHTHI LETTER TTTHA
+10A3F ; [.2C61.0020.0002] # KHAROSHTHI VIRAMA
+0E01 ; [.2C62.0020.0002] # THAI CHARACTER KO KAI
+0E40 0E01 ; [.2C62.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KO KAI>
+0E41 0E01 ; [.2C62.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KO KAI>
+0E42 0E01 ; [.2C62.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KO KAI>
+0E43 0E01 ; [.2C62.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KO KAI>
+0E44 0E01 ; [.2C62.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KO KAI>
+0E02 ; [.2C63.0020.0002] # THAI CHARACTER KHO KHAI
+0E40 0E02 ; [.2C63.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHAI>
+0E41 0E02 ; [.2C63.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHAI>
+0E42 0E02 ; [.2C63.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHAI>
+0E43 0E02 ; [.2C63.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHAI>
+0E44 0E02 ; [.2C63.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHAI>
+0E03 ; [.2C64.0020.0002] # THAI CHARACTER KHO KHUAT
+0E40 0E03 ; [.2C64.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHUAT>
+0E41 0E03 ; [.2C64.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHUAT>
+0E42 0E03 ; [.2C64.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHUAT>
+0E43 0E03 ; [.2C64.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHUAT>
+0E44 0E03 ; [.2C64.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHUAT>
+0E04 ; [.2C65.0020.0002] # THAI CHARACTER KHO KHWAI
+0E40 0E04 ; [.2C65.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHWAI>
+0E41 0E04 ; [.2C65.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHWAI>
+0E42 0E04 ; [.2C65.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHWAI>
+0E43 0E04 ; [.2C65.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHWAI>
+0E44 0E04 ; [.2C65.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHWAI>
+0E05 ; [.2C66.0020.0002] # THAI CHARACTER KHO KHON
+0E40 0E05 ; [.2C66.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO KHON>
+0E41 0E05 ; [.2C66.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHON>
+0E42 0E05 ; [.2C66.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO KHON>
+0E43 0E05 ; [.2C66.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHON>
+0E44 0E05 ; [.2C66.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHON>
+0E06 ; [.2C67.0020.0002] # THAI CHARACTER KHO RAKHANG
+0E40 0E06 ; [.2C67.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER KHO RAKHANG>
+0E41 0E06 ; [.2C67.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER KHO RAKHANG>
+0E42 0E06 ; [.2C67.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER KHO RAKHANG>
+0E43 0E06 ; [.2C67.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO RAKHANG>
+0E44 0E06 ; [.2C67.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO RAKHANG>
+0E07 ; [.2C68.0020.0002] # THAI CHARACTER NGO NGU
+0E40 0E07 ; [.2C68.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NGO NGU>
+0E41 0E07 ; [.2C68.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NGO NGU>
+0E42 0E07 ; [.2C68.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NGO NGU>
+0E43 0E07 ; [.2C68.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NGO NGU>
+0E44 0E07 ; [.2C68.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NGO NGU>
+0E08 ; [.2C69.0020.0002] # THAI CHARACTER CHO CHAN
+0E40 0E08 ; [.2C69.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHAN>
+0E41 0E08 ; [.2C69.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHAN>
+0E42 0E08 ; [.2C69.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHAN>
+0E43 0E08 ; [.2C69.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHAN>
+0E44 0E08 ; [.2C69.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHAN>
+0E09 ; [.2C6A.0020.0002] # THAI CHARACTER CHO CHING
+0E40 0E09 ; [.2C6A.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHING>
+0E41 0E09 ; [.2C6A.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHING>
+0E42 0E09 ; [.2C6A.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHING>
+0E43 0E09 ; [.2C6A.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHING>
+0E44 0E09 ; [.2C6A.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHING>
+0E0A ; [.2C6B.0020.0002] # THAI CHARACTER CHO CHANG
+0E40 0E0A ; [.2C6B.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHANG>
+0E41 0E0A ; [.2C6B.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHANG>
+0E42 0E0A ; [.2C6B.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHANG>
+0E43 0E0A ; [.2C6B.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHANG>
+0E44 0E0A ; [.2C6B.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHANG>
+0E0B ; [.2C6C.0020.0002] # THAI CHARACTER SO SO
+0E40 0E0B ; [.2C6C.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SO>
+0E41 0E0B ; [.2C6C.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SO>
+0E42 0E0B ; [.2C6C.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SO>
+0E43 0E0B ; [.2C6C.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SO>
+0E44 0E0B ; [.2C6C.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SO>
+0E0C ; [.2C6D.0020.0002] # THAI CHARACTER CHO CHOE
+0E40 0E0C ; [.2C6D.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER CHO CHOE>
+0E41 0E0C ; [.2C6D.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHOE>
+0E42 0E0C ; [.2C6D.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER CHO CHOE>
+0E43 0E0C ; [.2C6D.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHOE>
+0E44 0E0C ; [.2C6D.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHOE>
+0E0D ; [.2C6E.0020.0002] # THAI CHARACTER YO YING
+0E40 0E0D ; [.2C6E.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YING>
+0E41 0E0D ; [.2C6E.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YING>
+0E42 0E0D ; [.2C6E.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YING>
+0E43 0E0D ; [.2C6E.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YING>
+0E44 0E0D ; [.2C6E.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YING>
+0E0E ; [.2C6F.0020.0002] # THAI CHARACTER DO CHADA
+0E40 0E0E ; [.2C6F.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO CHADA>
+0E41 0E0E ; [.2C6F.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO CHADA>
+0E42 0E0E ; [.2C6F.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO CHADA>
+0E43 0E0E ; [.2C6F.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO CHADA>
+0E44 0E0E ; [.2C6F.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO CHADA>
+0E0F ; [.2C70.0020.0002] # THAI CHARACTER TO PATAK
+0E40 0E0F ; [.2C70.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO PATAK>
+0E41 0E0F ; [.2C70.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO PATAK>
+0E42 0E0F ; [.2C70.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO PATAK>
+0E43 0E0F ; [.2C70.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO PATAK>
+0E44 0E0F ; [.2C70.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO PATAK>
+0E10 ; [.2C71.0020.0002] # THAI CHARACTER THO THAN
+0E40 0E10 ; [.2C71.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAN>
+0E41 0E10 ; [.2C71.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAN>
+0E42 0E10 ; [.2C71.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAN>
+0E43 0E10 ; [.2C71.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAN>
+0E44 0E10 ; [.2C71.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAN>
+0E11 ; [.2C72.0020.0002] # THAI CHARACTER THO NANGMONTHO
+0E40 0E11 ; [.2C72.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO NANGMONTHO>
+0E41 0E11 ; [.2C72.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO NANGMONTHO>
+0E42 0E11 ; [.2C72.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO NANGMONTHO>
+0E43 0E11 ; [.2C72.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO NANGMONTHO>
+0E44 0E11 ; [.2C72.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO NANGMONTHO>
+0E12 ; [.2C73.0020.0002] # THAI CHARACTER THO PHUTHAO
+0E40 0E12 ; [.2C73.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO PHUTHAO>
+0E41 0E12 ; [.2C73.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO PHUTHAO>
+0E42 0E12 ; [.2C73.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO PHUTHAO>
+0E43 0E12 ; [.2C73.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO PHUTHAO>
+0E44 0E12 ; [.2C73.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO PHUTHAO>
+0E13 ; [.2C74.0020.0002] # THAI CHARACTER NO NEN
+0E40 0E13 ; [.2C74.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NEN>
+0E41 0E13 ; [.2C74.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NEN>
+0E42 0E13 ; [.2C74.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NEN>
+0E43 0E13 ; [.2C74.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NEN>
+0E44 0E13 ; [.2C74.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NEN>
+0E14 ; [.2C75.0020.0002] # THAI CHARACTER DO DEK
+0E40 0E14 ; [.2C75.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER DO DEK>
+0E41 0E14 ; [.2C75.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER DO DEK>
+0E42 0E14 ; [.2C75.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER DO DEK>
+0E43 0E14 ; [.2C75.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO DEK>
+0E44 0E14 ; [.2C75.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO DEK>
+0E15 ; [.2C76.0020.0002] # THAI CHARACTER TO TAO
+0E40 0E15 ; [.2C76.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER TO TAO>
+0E41 0E15 ; [.2C76.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER TO TAO>
+0E42 0E15 ; [.2C76.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER TO TAO>
+0E43 0E15 ; [.2C76.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO TAO>
+0E44 0E15 ; [.2C76.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO TAO>
+0E16 ; [.2C77.0020.0002] # THAI CHARACTER THO THUNG
+0E40 0E16 ; [.2C77.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THUNG>
+0E41 0E16 ; [.2C77.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THUNG>
+0E42 0E16 ; [.2C77.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THUNG>
+0E43 0E16 ; [.2C77.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THUNG>
+0E44 0E16 ; [.2C77.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THUNG>
+0E17 ; [.2C78.0020.0002] # THAI CHARACTER THO THAHAN
+0E40 0E17 ; [.2C78.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THAHAN>
+0E41 0E17 ; [.2C78.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THAHAN>
+0E42 0E17 ; [.2C78.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THAHAN>
+0E43 0E17 ; [.2C78.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAHAN>
+0E44 0E17 ; [.2C78.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAHAN>
+0E18 ; [.2C79.0020.0002] # THAI CHARACTER THO THONG
+0E40 0E18 ; [.2C79.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER THO THONG>
+0E41 0E18 ; [.2C79.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER THO THONG>
+0E42 0E18 ; [.2C79.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER THO THONG>
+0E43 0E18 ; [.2C79.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THONG>
+0E44 0E18 ; [.2C79.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THONG>
+0E19 ; [.2C7A.0020.0002] # THAI CHARACTER NO NU
+0E40 0E19 ; [.2C7A.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER NO NU>
+0E41 0E19 ; [.2C7A.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER NO NU>
+0E42 0E19 ; [.2C7A.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER NO NU>
+0E43 0E19 ; [.2C7A.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NU>
+0E44 0E19 ; [.2C7A.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NU>
+0E1A ; [.2C7B.0020.0002] # THAI CHARACTER BO BAIMAI
+0E40 0E1A ; [.2C7B.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER BO BAIMAI>
+0E41 0E1A ; [.2C7B.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER BO BAIMAI>
+0E42 0E1A ; [.2C7B.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER BO BAIMAI>
+0E43 0E1A ; [.2C7B.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER BO BAIMAI>
+0E44 0E1A ; [.2C7B.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER BO BAIMAI>
+0E1B ; [.2C7C.0020.0002] # THAI CHARACTER PO PLA
+0E40 0E1B ; [.2C7C.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PO PLA>
+0E41 0E1B ; [.2C7C.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PO PLA>
+0E42 0E1B ; [.2C7C.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PO PLA>
+0E43 0E1B ; [.2C7C.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PO PLA>
+0E44 0E1B ; [.2C7C.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PO PLA>
+0E1C ; [.2C7D.0020.0002] # THAI CHARACTER PHO PHUNG
+0E40 0E1C ; [.2C7D.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHUNG>
+0E41 0E1C ; [.2C7D.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHUNG>
+0E42 0E1C ; [.2C7D.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHUNG>
+0E43 0E1C ; [.2C7D.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHUNG>
+0E44 0E1C ; [.2C7D.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHUNG>
+0E1D ; [.2C7E.0020.0002] # THAI CHARACTER FO FA
+0E40 0E1D ; [.2C7E.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FA>
+0E41 0E1D ; [.2C7E.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FA>
+0E42 0E1D ; [.2C7E.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FA>
+0E43 0E1D ; [.2C7E.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FA>
+0E44 0E1D ; [.2C7E.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FA>
+0E1E ; [.2C7F.0020.0002] # THAI CHARACTER PHO PHAN
+0E40 0E1E ; [.2C7F.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO PHAN>
+0E41 0E1E ; [.2C7F.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHAN>
+0E42 0E1E ; [.2C7F.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO PHAN>
+0E43 0E1E ; [.2C7F.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHAN>
+0E44 0E1E ; [.2C7F.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHAN>
+0E1F ; [.2C80.0020.0002] # THAI CHARACTER FO FAN
+0E40 0E1F ; [.2C80.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER FO FAN>
+0E41 0E1F ; [.2C80.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER FO FAN>
+0E42 0E1F ; [.2C80.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER FO FAN>
+0E43 0E1F ; [.2C80.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FAN>
+0E44 0E1F ; [.2C80.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FAN>
+0E20 ; [.2C81.0020.0002] # THAI CHARACTER PHO SAMPHAO
+0E40 0E20 ; [.2C81.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER PHO SAMPHAO>
+0E41 0E20 ; [.2C81.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER PHO SAMPHAO>
+0E42 0E20 ; [.2C81.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER PHO SAMPHAO>
+0E43 0E20 ; [.2C81.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO SAMPHAO>
+0E44 0E20 ; [.2C81.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO SAMPHAO>
+0E21 ; [.2C82.0020.0002] # THAI CHARACTER MO MA
+0E40 0E21 ; [.2C82.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER MO MA>
+0E41 0E21 ; [.2C82.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER MO MA>
+0E42 0E21 ; [.2C82.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER MO MA>
+0E43 0E21 ; [.2C82.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER MO MA>
+0E44 0E21 ; [.2C82.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER MO MA>
+0E22 ; [.2C83.0020.0002] # THAI CHARACTER YO YAK
+0E40 0E22 ; [.2C83.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER YO YAK>
+0E41 0E22 ; [.2C83.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER YO YAK>
+0E42 0E22 ; [.2C83.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER YO YAK>
+0E43 0E22 ; [.2C83.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YAK>
+0E44 0E22 ; [.2C83.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YAK>
+0E23 ; [.2C84.0020.0002] # THAI CHARACTER RO RUA
+0E40 0E23 ; [.2C84.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RO RUA>
+0E41 0E23 ; [.2C84.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RO RUA>
+0E42 0E23 ; [.2C84.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RO RUA>
+0E43 0E23 ; [.2C84.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RO RUA>
+0E44 0E23 ; [.2C84.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RO RUA>
+0E24 ; [.2C85.0020.0002] # THAI CHARACTER RU
+0E40 0E24 ; [.2C85.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER RU>
+0E41 0E24 ; [.2C85.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER RU>
+0E42 0E24 ; [.2C85.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER RU>
+0E43 0E24 ; [.2C85.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RU>
+0E44 0E24 ; [.2C85.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RU>
+0E25 ; [.2C86.0020.0002] # THAI CHARACTER LO LING
+0E40 0E25 ; [.2C86.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO LING>
+0E41 0E25 ; [.2C86.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO LING>
+0E42 0E25 ; [.2C86.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO LING>
+0E43 0E25 ; [.2C86.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO LING>
+0E44 0E25 ; [.2C86.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO LING>
+0E26 ; [.2C87.0020.0002] # THAI CHARACTER LU
+0E40 0E26 ; [.2C87.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LU>
+0E41 0E26 ; [.2C87.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LU>
+0E42 0E26 ; [.2C87.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LU>
+0E43 0E26 ; [.2C87.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LU>
+0E44 0E26 ; [.2C87.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LU>
+0E27 ; [.2C88.0020.0002] # THAI CHARACTER WO WAEN
+0E40 0E27 ; [.2C88.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER WO WAEN>
+0E41 0E27 ; [.2C88.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER WO WAEN>
+0E42 0E27 ; [.2C88.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER WO WAEN>
+0E43 0E27 ; [.2C88.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER WO WAEN>
+0E44 0E27 ; [.2C88.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER WO WAEN>
+0E28 ; [.2C89.0020.0002] # THAI CHARACTER SO SALA
+0E40 0E28 ; [.2C89.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SALA>
+0E41 0E28 ; [.2C89.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SALA>
+0E42 0E28 ; [.2C89.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SALA>
+0E43 0E28 ; [.2C89.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SALA>
+0E44 0E28 ; [.2C89.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SALA>
+0E29 ; [.2C8A.0020.0002] # THAI CHARACTER SO RUSI
+0E40 0E29 ; [.2C8A.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO RUSI>
+0E41 0E29 ; [.2C8A.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO RUSI>
+0E42 0E29 ; [.2C8A.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO RUSI>
+0E43 0E29 ; [.2C8A.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO RUSI>
+0E44 0E29 ; [.2C8A.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO RUSI>
+0E2A ; [.2C8B.0020.0002] # THAI CHARACTER SO SUA
+0E40 0E2A ; [.2C8B.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER SO SUA>
+0E41 0E2A ; [.2C8B.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER SO SUA>
+0E42 0E2A ; [.2C8B.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER SO SUA>
+0E43 0E2A ; [.2C8B.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SUA>
+0E44 0E2A ; [.2C8B.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SUA>
+0E2B ; [.2C8C.0020.0002] # THAI CHARACTER HO HIP
+0E40 0E2B ; [.2C8C.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO HIP>
+0E41 0E2B ; [.2C8C.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO HIP>
+0E42 0E2B ; [.2C8C.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO HIP>
+0E43 0E2B ; [.2C8C.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO HIP>
+0E44 0E2B ; [.2C8C.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO HIP>
+0E2C ; [.2C8D.0020.0002] # THAI CHARACTER LO CHULA
+0E40 0E2C ; [.2C8D.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER LO CHULA>
+0E41 0E2C ; [.2C8D.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER LO CHULA>
+0E42 0E2C ; [.2C8D.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER LO CHULA>
+0E43 0E2C ; [.2C8D.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO CHULA>
+0E44 0E2C ; [.2C8D.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO CHULA>
+0E2D ; [.2C8E.0020.0002] # THAI CHARACTER O ANG
+0E40 0E2D ; [.2C8E.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER O ANG>
+0E41 0E2D ; [.2C8E.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER O ANG>
+0E42 0E2D ; [.2C8E.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER O ANG>
+0E43 0E2D ; [.2C8E.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER O ANG>
+0E44 0E2D ; [.2C8E.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER O ANG>
+0E2E ; [.2C8F.0020.0002] # THAI CHARACTER HO NOKHUK
+0E40 0E2E ; [.2C8F.0020.0002][.2C9C.0020.0002] # <THAI CHARACTER SARA E, THAI CHARACTER HO NOKHUK>
+0E41 0E2E ; [.2C8F.0020.0002][.2C9D.0020.0002] # <THAI CHARACTER SARA AE, THAI CHARACTER HO NOKHUK>
+0E42 0E2E ; [.2C8F.0020.0002][.2C9E.0020.0002] # <THAI CHARACTER SARA O, THAI CHARACTER HO NOKHUK>
+0E43 0E2E ; [.2C8F.0020.0002][.2C9F.0020.0002] # <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO NOKHUK>
+0E44 0E2E ; [.2C8F.0020.0002][.2CA0.0020.0002] # <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO NOKHUK>
+0E2F ; [.2C90.0020.0002] # THAI CHARACTER PAIYANNOI
+0E30 ; [.2C91.0020.0002] # THAI CHARACTER SARA A
+0E31 ; [.2C92.0020.0002] # THAI CHARACTER MAI HAN-AKAT
+0E32 ; [.2C93.0020.0002] # THAI CHARACTER SARA AA
+0E33 ; [.2C94.0020.0002] # THAI CHARACTER SARA AM
+0E4D 0E32 ; [.2C94.0020.0002] # THAI CHARACTER SARA AM
+0E34 ; [.2C95.0020.0002] # THAI CHARACTER SARA I
+0E35 ; [.2C96.0020.0002] # THAI CHARACTER SARA II
+0E36 ; [.2C97.0020.0002] # THAI CHARACTER SARA UE
+0E37 ; [.2C98.0020.0002] # THAI CHARACTER SARA UEE
+0E38 ; [.2C99.0020.0002] # THAI CHARACTER SARA U
+0E39 ; [.2C9A.0020.0002] # THAI CHARACTER SARA UU
+0E3A ; [.2C9B.0020.0002] # THAI CHARACTER PHINTHU
+0E40 ; [.2C9C.0020.0002] # THAI CHARACTER SARA E
+0E41 ; [.2C9D.0020.0002] # THAI CHARACTER SARA AE
+0E42 ; [.2C9E.0020.0002] # THAI CHARACTER SARA O
+0E43 ; [.2C9F.0020.0002] # THAI CHARACTER SARA AI MAIMUAN
+0E44 ; [.2CA0.0020.0002] # THAI CHARACTER SARA AI MAIMALAI
+0E45 ; [.2CA1.0020.0002] # THAI CHARACTER LAKKHANGYAO
+0EDE ; [.2CA2.0020.0002] # LAO LETTER KHMU GO
+0EC0 0EDE ; [.2CA2.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU GO>
+0EC1 0EDE ; [.2CA2.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU GO>
+0EC2 0EDE ; [.2CA2.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU GO>
+0EC3 0EDE ; [.2CA2.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU GO>
+0EC4 0EDE ; [.2CA2.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU GO>
+0E81 ; [.2CA3.0020.0002] # LAO LETTER KO
+0EC0 0E81 ; [.2CA3.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KO>
+0EC1 0E81 ; [.2CA3.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KO>
+0EC2 0E81 ; [.2CA3.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KO>
+0EC3 0E81 ; [.2CA3.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KO>
+0EC4 0E81 ; [.2CA3.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KO>
+0E82 ; [.2CA4.0020.0002] # LAO LETTER KHO SUNG
+0EC0 0E82 ; [.2CA4.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO SUNG>
+0EC1 0E82 ; [.2CA4.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO SUNG>
+0EC2 0E82 ; [.2CA4.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO SUNG>
+0EC3 0E82 ; [.2CA4.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO SUNG>
+0EC4 0E82 ; [.2CA4.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO SUNG>
+0E84 ; [.2CA5.0020.0002] # LAO LETTER KHO TAM
+0EC0 0E84 ; [.2CA5.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHO TAM>
+0EC1 0E84 ; [.2CA5.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHO TAM>
+0EC2 0E84 ; [.2CA5.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHO TAM>
+0EC3 0E84 ; [.2CA5.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHO TAM>
+0EC4 0E84 ; [.2CA5.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHO TAM>
+0E87 ; [.2CA6.0020.0002] # LAO LETTER NGO
+0EC0 0E87 ; [.2CA6.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NGO>
+0EC1 0E87 ; [.2CA6.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NGO>
+0EC2 0E87 ; [.2CA6.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NGO>
+0EC3 0E87 ; [.2CA6.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NGO>
+0EC4 0E87 ; [.2CA6.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NGO>
+0E88 ; [.2CA7.0020.0002] # LAO LETTER CO
+0EC0 0E88 ; [.2CA7.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER CO>
+0EC1 0E88 ; [.2CA7.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER CO>
+0EC2 0E88 ; [.2CA7.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER CO>
+0EC3 0E88 ; [.2CA7.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER CO>
+0EC4 0E88 ; [.2CA7.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER CO>
+0EAA ; [.2CA8.0020.0002] # LAO LETTER SO SUNG
+0EC0 0EAA ; [.2CA8.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO SUNG>
+0EC1 0EAA ; [.2CA8.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO SUNG>
+0EC2 0EAA ; [.2CA8.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO SUNG>
+0EC3 0EAA ; [.2CA8.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO SUNG>
+0EC4 0EAA ; [.2CA8.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO SUNG>
+0E8A ; [.2CA9.0020.0002] # LAO LETTER SO TAM
+0EC0 0E8A ; [.2CA9.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER SO TAM>
+0EC1 0E8A ; [.2CA9.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER SO TAM>
+0EC2 0E8A ; [.2CA9.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER SO TAM>
+0EC3 0E8A ; [.2CA9.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER SO TAM>
+0EC4 0E8A ; [.2CA9.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER SO TAM>
+0EDF ; [.2CAA.0020.0002] # LAO LETTER KHMU NYO
+0EC0 0EDF ; [.2CAA.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER KHMU NYO>
+0EC1 0EDF ; [.2CAA.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER KHMU NYO>
+0EC2 0EDF ; [.2CAA.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER KHMU NYO>
+0EC3 0EDF ; [.2CAA.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER KHMU NYO>
+0EC4 0EDF ; [.2CAA.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER KHMU NYO>
+0E8D ; [.2CAB.0020.0002] # LAO LETTER NYO
+0EC0 0E8D ; [.2CAB.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NYO>
+0EC1 0E8D ; [.2CAB.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NYO>
+0EC2 0E8D ; [.2CAB.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NYO>
+0EC3 0E8D ; [.2CAB.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NYO>
+0EC4 0E8D ; [.2CAB.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NYO>
+0E94 ; [.2CAC.0020.0002] # LAO LETTER DO
+0EC0 0E94 ; [.2CAC.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER DO>
+0EC1 0E94 ; [.2CAC.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER DO>
+0EC2 0E94 ; [.2CAC.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER DO>
+0EC3 0E94 ; [.2CAC.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER DO>
+0EC4 0E94 ; [.2CAC.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER DO>
+0E95 ; [.2CAD.0020.0002] # LAO LETTER TO
+0EC0 0E95 ; [.2CAD.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER TO>
+0EC1 0E95 ; [.2CAD.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER TO>
+0EC2 0E95 ; [.2CAD.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER TO>
+0EC3 0E95 ; [.2CAD.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER TO>
+0EC4 0E95 ; [.2CAD.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER TO>
+0E96 ; [.2CAE.0020.0002] # LAO LETTER THO SUNG
+0EC0 0E96 ; [.2CAE.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO SUNG>
+0EC1 0E96 ; [.2CAE.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO SUNG>
+0EC2 0E96 ; [.2CAE.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO SUNG>
+0EC3 0E96 ; [.2CAE.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO SUNG>
+0EC4 0E96 ; [.2CAE.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO SUNG>
+0E97 ; [.2CAF.0020.0002] # LAO LETTER THO TAM
+0EC0 0E97 ; [.2CAF.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER THO TAM>
+0EC1 0E97 ; [.2CAF.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER THO TAM>
+0EC2 0E97 ; [.2CAF.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER THO TAM>
+0EC3 0E97 ; [.2CAF.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER THO TAM>
+0EC4 0E97 ; [.2CAF.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER THO TAM>
+0E99 ; [.2CB0.0020.0002] # LAO LETTER NO
+0EC0 0E99 ; [.2CB0.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER NO>
+0EC1 0E99 ; [.2CB0.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER NO>
+0EC2 0E99 ; [.2CB0.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER NO>
+0EC3 0E99 ; [.2CB0.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER NO>
+0EC4 0E99 ; [.2CB0.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER NO>
+0E9A ; [.2CB1.0020.0002] # LAO LETTER BO
+0EC0 0E9A ; [.2CB1.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER BO>
+0EC1 0E9A ; [.2CB1.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER BO>
+0EC2 0E9A ; [.2CB1.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER BO>
+0EC3 0E9A ; [.2CB1.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER BO>
+0EC4 0E9A ; [.2CB1.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER BO>
+0E9B ; [.2CB2.0020.0002] # LAO LETTER PO
+0EC0 0E9B ; [.2CB2.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PO>
+0EC1 0E9B ; [.2CB2.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PO>
+0EC2 0E9B ; [.2CB2.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PO>
+0EC3 0E9B ; [.2CB2.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PO>
+0EC4 0E9B ; [.2CB2.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PO>
+0E9C ; [.2CB3.0020.0002] # LAO LETTER PHO SUNG
+0EC0 0E9C ; [.2CB3.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO SUNG>
+0EC1 0E9C ; [.2CB3.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO SUNG>
+0EC2 0E9C ; [.2CB3.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO SUNG>
+0EC3 0E9C ; [.2CB3.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO SUNG>
+0EC4 0E9C ; [.2CB3.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO SUNG>
+0E9D ; [.2CB4.0020.0002] # LAO LETTER FO TAM
+0EC0 0E9D ; [.2CB4.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO TAM>
+0EC1 0E9D ; [.2CB4.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO TAM>
+0EC2 0E9D ; [.2CB4.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO TAM>
+0EC3 0E9D ; [.2CB4.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO TAM>
+0EC4 0E9D ; [.2CB4.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO TAM>
+0E9E ; [.2CB5.0020.0002] # LAO LETTER PHO TAM
+0EC0 0E9E ; [.2CB5.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER PHO TAM>
+0EC1 0E9E ; [.2CB5.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER PHO TAM>
+0EC2 0E9E ; [.2CB5.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER PHO TAM>
+0EC3 0E9E ; [.2CB5.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER PHO TAM>
+0EC4 0E9E ; [.2CB5.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER PHO TAM>
+0E9F ; [.2CB6.0020.0002] # LAO LETTER FO SUNG
+0EC0 0E9F ; [.2CB6.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER FO SUNG>
+0EC1 0E9F ; [.2CB6.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER FO SUNG>
+0EC2 0E9F ; [.2CB6.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER FO SUNG>
+0EC3 0E9F ; [.2CB6.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER FO SUNG>
+0EC4 0E9F ; [.2CB6.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER FO SUNG>
+0EA1 ; [.2CB7.0020.0002] # LAO LETTER MO
+0EC0 0EA1 ; [.2CB7.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER MO>
+0EC1 0EA1 ; [.2CB7.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER MO>
+0EC2 0EA1 ; [.2CB7.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER MO>
+0EC3 0EA1 ; [.2CB7.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER MO>
+0EC4 0EA1 ; [.2CB7.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER MO>
+0EA2 ; [.2CB8.0020.0002] # LAO LETTER YO
+0EC0 0EA2 ; [.2CB8.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER YO>
+0EC1 0EA2 ; [.2CB8.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER YO>
+0EC2 0EA2 ; [.2CB8.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER YO>
+0EC3 0EA2 ; [.2CB8.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER YO>
+0EC4 0EA2 ; [.2CB8.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER YO>
+0EA3 ; [.2CB9.0020.0002] # LAO LETTER LO LING
+0EC0 0EA3 ; [.2CB9.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LING>
+0EC1 0EA3 ; [.2CB9.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LING>
+0EC2 0EA3 ; [.2CB9.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LING>
+0EC3 0EA3 ; [.2CB9.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LING>
+0EC4 0EA3 ; [.2CB9.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LING>
+0EA5 ; [.2CBA.0020.0002] # LAO LETTER LO LOOT
+0EC0 0EA5 ; [.2CBA.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER LO LOOT>
+0EC1 0EA5 ; [.2CBA.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER LO LOOT>
+0EC2 0EA5 ; [.2CBA.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER LO LOOT>
+0EC3 0EA5 ; [.2CBA.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER LO LOOT>
+0EC4 0EA5 ; [.2CBA.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER LO LOOT>
+0EA7 ; [.2CBB.0020.0002] # LAO LETTER WO
+0EC0 0EA7 ; [.2CBB.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER WO>
+0EC1 0EA7 ; [.2CBB.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER WO>
+0EC2 0EA7 ; [.2CBB.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER WO>
+0EC3 0EA7 ; [.2CBB.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER WO>
+0EC4 0EA7 ; [.2CBB.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER WO>
+0EAB ; [.2CBC.0020.0002] # LAO LETTER HO SUNG
+0EDC ; [.2CBC.0020.0004][.2CB0.0020.0004] # LAO HO NO
+0EC0 0EDC ; [.2CBC.0020.0004][.2CB0.0020.0004][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO HO NO>
+0EC1 0EDC ; [.2CBC.0020.0004][.2CB0.0020.0004][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO HO NO>
+0EC2 0EDC ; [.2CBC.0020.0004][.2CB0.0020.0004][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO HO NO>
+0EC3 0EDC ; [.2CBC.0020.0004][.2CB0.0020.0004][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO HO NO>
+0EC4 0EDC ; [.2CBC.0020.0004][.2CB0.0020.0004][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO HO NO>
+0EDD ; [.2CBC.0020.0004][.2CB7.0020.0004] # LAO HO MO
+0EC0 0EDD ; [.2CBC.0020.0004][.2CB7.0020.0004][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO HO MO>
+0EC1 0EDD ; [.2CBC.0020.0004][.2CB7.0020.0004][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO HO MO>
+0EC2 0EDD ; [.2CBC.0020.0004][.2CB7.0020.0004][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO HO MO>
+0EC3 0EDD ; [.2CBC.0020.0004][.2CB7.0020.0004][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO HO MO>
+0EC4 0EDD ; [.2CBC.0020.0004][.2CB7.0020.0004][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO HO MO>
+0EC0 0EAB ; [.2CBC.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO SUNG>
+0EC1 0EAB ; [.2CBC.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO SUNG>
+0EC2 0EAB ; [.2CBC.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO SUNG>
+0EC3 0EAB ; [.2CBC.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO SUNG>
+0EC4 0EAB ; [.2CBC.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO SUNG>
+0EAD ; [.2CBD.0020.0002] # LAO LETTER O
+0EC0 0EAD ; [.2CBD.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER O>
+0EC1 0EAD ; [.2CBD.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER O>
+0EC2 0EAD ; [.2CBD.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER O>
+0EC3 0EAD ; [.2CBD.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER O>
+0EC4 0EAD ; [.2CBD.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER O>
+0EAE ; [.2CBE.0020.0002] # LAO LETTER HO TAM
+0EC0 0EAE ; [.2CBE.0020.0002][.2CCD.0020.0002] # <LAO VOWEL SIGN E, LAO LETTER HO TAM>
+0EC1 0EAE ; [.2CBE.0020.0002][.2CCE.0020.0002] # <LAO VOWEL SIGN EI, LAO LETTER HO TAM>
+0EC2 0EAE ; [.2CBE.0020.0002][.2CCF.0020.0002] # <LAO VOWEL SIGN O, LAO LETTER HO TAM>
+0EC3 0EAE ; [.2CBE.0020.0002][.2CD0.0020.0002] # <LAO VOWEL SIGN AY, LAO LETTER HO TAM>
+0EC4 0EAE ; [.2CBE.0020.0002][.2CD1.0020.0002] # <LAO VOWEL SIGN AI, LAO LETTER HO TAM>
+0EAF ; [.2CBF.0020.0002] # LAO ELLIPSIS
+0EB0 ; [.2CC0.0020.0002] # LAO VOWEL SIGN A
+0EB1 ; [.2CC1.0020.0002] # LAO VOWEL SIGN MAI KAN
+0EB2 ; [.2CC2.0020.0002] # LAO VOWEL SIGN AA
+0EB3 ; [.2CC3.0020.0002] # LAO VOWEL SIGN AM
+0ECD 0EB2 ; [.2CC3.0020.0002] # LAO VOWEL SIGN AM
+0EB4 ; [.2CC4.0020.0002] # LAO VOWEL SIGN I
+0EB5 ; [.2CC5.0020.0002] # LAO VOWEL SIGN II
+0EB6 ; [.2CC6.0020.0002] # LAO VOWEL SIGN Y
+0EB7 ; [.2CC7.0020.0002] # LAO VOWEL SIGN YY
+0EB8 ; [.2CC8.0020.0002] # LAO VOWEL SIGN U
+0EB9 ; [.2CC9.0020.0002] # LAO VOWEL SIGN UU
+0EBB ; [.2CCA.0020.0002] # LAO VOWEL SIGN MAI KON
+0EBC ; [.2CCB.0020.0002] # LAO SEMIVOWEL SIGN LO
+0EBD ; [.2CCC.0020.0002] # LAO SEMIVOWEL SIGN NYO
+0EC0 ; [.2CCD.0020.0002] # LAO VOWEL SIGN E
+0EC1 ; [.2CCE.0020.0002] # LAO VOWEL SIGN EI
+0EC2 ; [.2CCF.0020.0002] # LAO VOWEL SIGN O
+0EC3 ; [.2CD0.0020.0002] # LAO VOWEL SIGN AY
+0EC4 ; [.2CD1.0020.0002] # LAO VOWEL SIGN AI
+AA80 ; [.2CD2.0020.0002] # TAI VIET LETTER LOW KO
+AAB5 AA80 ; [.2CD2.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KO>
+AAB6 AA80 ; [.2CD2.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KO>
+AAB9 AA80 ; [.2CD2.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KO>
+AABB AA80 ; [.2CD2.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KO>
+AABC AA80 ; [.2CD2.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KO>
+AA81 ; [.2CD3.0020.0002] # TAI VIET LETTER HIGH KO
+AAB5 AA81 ; [.2CD3.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KO>
+AAB6 AA81 ; [.2CD3.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KO>
+AAB9 AA81 ; [.2CD3.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KO>
+AABB AA81 ; [.2CD3.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KO>
+AABC AA81 ; [.2CD3.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KO>
+AA82 ; [.2CD4.0020.0002] # TAI VIET LETTER LOW KHO
+AAB5 AA82 ; [.2CD4.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHO>
+AAB6 AA82 ; [.2CD4.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHO>
+AAB9 AA82 ; [.2CD4.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHO>
+AABB AA82 ; [.2CD4.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHO>
+AABC AA82 ; [.2CD4.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHO>
+AA83 ; [.2CD5.0020.0002] # TAI VIET LETTER HIGH KHO
+AAB5 AA83 ; [.2CD5.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHO>
+AAB6 AA83 ; [.2CD5.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHO>
+AAB9 AA83 ; [.2CD5.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHO>
+AABB AA83 ; [.2CD5.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHO>
+AABC AA83 ; [.2CD5.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHO>
+AA84 ; [.2CD6.0020.0002] # TAI VIET LETTER LOW KHHO
+AAB5 AA84 ; [.2CD6.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW KHHO>
+AAB6 AA84 ; [.2CD6.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW KHHO>
+AAB9 AA84 ; [.2CD6.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW KHHO>
+AABB AA84 ; [.2CD6.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW KHHO>
+AABC AA84 ; [.2CD6.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW KHHO>
+AA85 ; [.2CD7.0020.0002] # TAI VIET LETTER HIGH KHHO
+AAB5 AA85 ; [.2CD7.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH KHHO>
+AAB6 AA85 ; [.2CD7.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH KHHO>
+AAB9 AA85 ; [.2CD7.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH KHHO>
+AABB AA85 ; [.2CD7.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH KHHO>
+AABC AA85 ; [.2CD7.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH KHHO>
+AA86 ; [.2CD8.0020.0002] # TAI VIET LETTER LOW GO
+AAB5 AA86 ; [.2CD8.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW GO>
+AAB6 AA86 ; [.2CD8.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW GO>
+AAB9 AA86 ; [.2CD8.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW GO>
+AABB AA86 ; [.2CD8.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW GO>
+AABC AA86 ; [.2CD8.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW GO>
+AA87 ; [.2CD9.0020.0002] # TAI VIET LETTER HIGH GO
+AAB5 AA87 ; [.2CD9.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH GO>
+AAB6 AA87 ; [.2CD9.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH GO>
+AAB9 AA87 ; [.2CD9.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH GO>
+AABB AA87 ; [.2CD9.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH GO>
+AABC AA87 ; [.2CD9.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH GO>
+AA88 ; [.2CDA.0020.0002] # TAI VIET LETTER LOW NGO
+AAB5 AA88 ; [.2CDA.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NGO>
+AAB6 AA88 ; [.2CDA.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NGO>
+AAB9 AA88 ; [.2CDA.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NGO>
+AABB AA88 ; [.2CDA.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NGO>
+AABC AA88 ; [.2CDA.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NGO>
+AA89 ; [.2CDB.0020.0002] # TAI VIET LETTER HIGH NGO
+AAB5 AA89 ; [.2CDB.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NGO>
+AAB6 AA89 ; [.2CDB.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NGO>
+AAB9 AA89 ; [.2CDB.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NGO>
+AABB AA89 ; [.2CDB.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NGO>
+AABC AA89 ; [.2CDB.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NGO>
+AA8A ; [.2CDC.0020.0002] # TAI VIET LETTER LOW CO
+AAB5 AA8A ; [.2CDC.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CO>
+AAB6 AA8A ; [.2CDC.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CO>
+AAB9 AA8A ; [.2CDC.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CO>
+AABB AA8A ; [.2CDC.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CO>
+AABC AA8A ; [.2CDC.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CO>
+AA8B ; [.2CDD.0020.0002] # TAI VIET LETTER HIGH CO
+AAB5 AA8B ; [.2CDD.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CO>
+AAB6 AA8B ; [.2CDD.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CO>
+AAB9 AA8B ; [.2CDD.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CO>
+AABB AA8B ; [.2CDD.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CO>
+AABC AA8B ; [.2CDD.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CO>
+AA8C ; [.2CDE.0020.0002] # TAI VIET LETTER LOW CHO
+AAB5 AA8C ; [.2CDE.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW CHO>
+AAB6 AA8C ; [.2CDE.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW CHO>
+AAB9 AA8C ; [.2CDE.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW CHO>
+AABB AA8C ; [.2CDE.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW CHO>
+AABC AA8C ; [.2CDE.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW CHO>
+AA8D ; [.2CDF.0020.0002] # TAI VIET LETTER HIGH CHO
+AAB5 AA8D ; [.2CDF.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH CHO>
+AAB6 AA8D ; [.2CDF.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH CHO>
+AAB9 AA8D ; [.2CDF.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH CHO>
+AABB AA8D ; [.2CDF.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH CHO>
+AABC AA8D ; [.2CDF.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH CHO>
+AA8E ; [.2CE0.0020.0002] # TAI VIET LETTER LOW SO
+AAB5 AA8E ; [.2CE0.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW SO>
+AAB6 AA8E ; [.2CE0.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW SO>
+AAB9 AA8E ; [.2CE0.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW SO>
+AABB AA8E ; [.2CE0.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW SO>
+AABC AA8E ; [.2CE0.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW SO>
+AA8F ; [.2CE1.0020.0002] # TAI VIET LETTER HIGH SO
+AAB5 AA8F ; [.2CE1.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH SO>
+AAB6 AA8F ; [.2CE1.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH SO>
+AAB9 AA8F ; [.2CE1.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH SO>
+AABB AA8F ; [.2CE1.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH SO>
+AABC AA8F ; [.2CE1.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH SO>
+AA90 ; [.2CE2.0020.0002] # TAI VIET LETTER LOW NYO
+AAB5 AA90 ; [.2CE2.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NYO>
+AAB6 AA90 ; [.2CE2.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NYO>
+AAB9 AA90 ; [.2CE2.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NYO>
+AABB AA90 ; [.2CE2.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NYO>
+AABC AA90 ; [.2CE2.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NYO>
+AA91 ; [.2CE3.0020.0002] # TAI VIET LETTER HIGH NYO
+AAB5 AA91 ; [.2CE3.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NYO>
+AAB6 AA91 ; [.2CE3.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NYO>
+AAB9 AA91 ; [.2CE3.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NYO>
+AABB AA91 ; [.2CE3.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NYO>
+AABC AA91 ; [.2CE3.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NYO>
+AA92 ; [.2CE4.0020.0002] # TAI VIET LETTER LOW DO
+AAB5 AA92 ; [.2CE4.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW DO>
+AAB6 AA92 ; [.2CE4.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW DO>
+AAB9 AA92 ; [.2CE4.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW DO>
+AABB AA92 ; [.2CE4.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW DO>
+AABC AA92 ; [.2CE4.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW DO>
+AA93 ; [.2CE5.0020.0002] # TAI VIET LETTER HIGH DO
+AAB5 AA93 ; [.2CE5.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH DO>
+AAB6 AA93 ; [.2CE5.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH DO>
+AAB9 AA93 ; [.2CE5.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH DO>
+AABB AA93 ; [.2CE5.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH DO>
+AABC AA93 ; [.2CE5.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH DO>
+AA94 ; [.2CE6.0020.0002] # TAI VIET LETTER LOW TO
+AAB5 AA94 ; [.2CE6.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW TO>
+AAB6 AA94 ; [.2CE6.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW TO>
+AAB9 AA94 ; [.2CE6.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW TO>
+AABB AA94 ; [.2CE6.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW TO>
+AABC AA94 ; [.2CE6.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW TO>
+AA95 ; [.2CE7.0020.0002] # TAI VIET LETTER HIGH TO
+AAB5 AA95 ; [.2CE7.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH TO>
+AAB6 AA95 ; [.2CE7.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH TO>
+AAB9 AA95 ; [.2CE7.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH TO>
+AABB AA95 ; [.2CE7.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH TO>
+AABC AA95 ; [.2CE7.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH TO>
+AA96 ; [.2CE8.0020.0002] # TAI VIET LETTER LOW THO
+AAB5 AA96 ; [.2CE8.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW THO>
+AAB6 AA96 ; [.2CE8.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW THO>
+AAB9 AA96 ; [.2CE8.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW THO>
+AABB AA96 ; [.2CE8.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW THO>
+AABC AA96 ; [.2CE8.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW THO>
+AA97 ; [.2CE9.0020.0002] # TAI VIET LETTER HIGH THO
+AAB5 AA97 ; [.2CE9.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH THO>
+AAB6 AA97 ; [.2CE9.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH THO>
+AAB9 AA97 ; [.2CE9.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH THO>
+AABB AA97 ; [.2CE9.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH THO>
+AABC AA97 ; [.2CE9.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH THO>
+AA98 ; [.2CEA.0020.0002] # TAI VIET LETTER LOW NO
+AAB5 AA98 ; [.2CEA.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW NO>
+AAB6 AA98 ; [.2CEA.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW NO>
+AAB9 AA98 ; [.2CEA.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW NO>
+AABB AA98 ; [.2CEA.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW NO>
+AABC AA98 ; [.2CEA.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW NO>
+AA99 ; [.2CEB.0020.0002] # TAI VIET LETTER HIGH NO
+AAB5 AA99 ; [.2CEB.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH NO>
+AAB6 AA99 ; [.2CEB.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH NO>
+AAB9 AA99 ; [.2CEB.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH NO>
+AABB AA99 ; [.2CEB.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH NO>
+AABC AA99 ; [.2CEB.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH NO>
+AA9A ; [.2CEC.0020.0002] # TAI VIET LETTER LOW BO
+AAB5 AA9A ; [.2CEC.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW BO>
+AAB6 AA9A ; [.2CEC.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW BO>
+AAB9 AA9A ; [.2CEC.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW BO>
+AABB AA9A ; [.2CEC.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW BO>
+AABC AA9A ; [.2CEC.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW BO>
+AA9B ; [.2CED.0020.0002] # TAI VIET LETTER HIGH BO
+AAB5 AA9B ; [.2CED.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH BO>
+AAB6 AA9B ; [.2CED.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH BO>
+AAB9 AA9B ; [.2CED.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH BO>
+AABB AA9B ; [.2CED.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH BO>
+AABC AA9B ; [.2CED.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH BO>
+AA9C ; [.2CEE.0020.0002] # TAI VIET LETTER LOW PO
+AAB5 AA9C ; [.2CEE.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PO>
+AAB6 AA9C ; [.2CEE.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PO>
+AAB9 AA9C ; [.2CEE.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PO>
+AABB AA9C ; [.2CEE.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PO>
+AABC AA9C ; [.2CEE.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PO>
+AA9D ; [.2CEF.0020.0002] # TAI VIET LETTER HIGH PO
+AAB5 AA9D ; [.2CEF.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PO>
+AAB6 AA9D ; [.2CEF.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PO>
+AAB9 AA9D ; [.2CEF.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PO>
+AABB AA9D ; [.2CEF.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PO>
+AABC AA9D ; [.2CEF.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PO>
+AA9E ; [.2CF0.0020.0002] # TAI VIET LETTER LOW PHO
+AAB5 AA9E ; [.2CF0.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW PHO>
+AAB6 AA9E ; [.2CF0.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW PHO>
+AAB9 AA9E ; [.2CF0.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW PHO>
+AABB AA9E ; [.2CF0.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW PHO>
+AABC AA9E ; [.2CF0.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW PHO>
+AA9F ; [.2CF1.0020.0002] # TAI VIET LETTER HIGH PHO
+AAB5 AA9F ; [.2CF1.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH PHO>
+AAB6 AA9F ; [.2CF1.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH PHO>
+AAB9 AA9F ; [.2CF1.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH PHO>
+AABB AA9F ; [.2CF1.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH PHO>
+AABC AA9F ; [.2CF1.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH PHO>
+AAA0 ; [.2CF2.0020.0002] # TAI VIET LETTER LOW FO
+AAB5 AAA0 ; [.2CF2.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW FO>
+AAB6 AAA0 ; [.2CF2.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW FO>
+AAB9 AAA0 ; [.2CF2.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW FO>
+AABB AAA0 ; [.2CF2.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW FO>
+AABC AAA0 ; [.2CF2.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW FO>
+AAA1 ; [.2CF3.0020.0002] # TAI VIET LETTER HIGH FO
+AAB5 AAA1 ; [.2CF3.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH FO>
+AAB6 AAA1 ; [.2CF3.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH FO>
+AAB9 AAA1 ; [.2CF3.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH FO>
+AABB AAA1 ; [.2CF3.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH FO>
+AABC AAA1 ; [.2CF3.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH FO>
+AAA2 ; [.2CF4.0020.0002] # TAI VIET LETTER LOW MO
+AAB5 AAA2 ; [.2CF4.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW MO>
+AAB6 AAA2 ; [.2CF4.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW MO>
+AAB9 AAA2 ; [.2CF4.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW MO>
+AABB AAA2 ; [.2CF4.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW MO>
+AABC AAA2 ; [.2CF4.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW MO>
+AAA3 ; [.2CF5.0020.0002] # TAI VIET LETTER HIGH MO
+AAB5 AAA3 ; [.2CF5.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH MO>
+AAB6 AAA3 ; [.2CF5.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH MO>
+AAB9 AAA3 ; [.2CF5.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH MO>
+AABB AAA3 ; [.2CF5.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH MO>
+AABC AAA3 ; [.2CF5.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH MO>
+AAA4 ; [.2CF6.0020.0002] # TAI VIET LETTER LOW YO
+AAB5 AAA4 ; [.2CF6.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW YO>
+AAB6 AAA4 ; [.2CF6.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW YO>
+AAB9 AAA4 ; [.2CF6.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW YO>
+AABB AAA4 ; [.2CF6.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW YO>
+AABC AAA4 ; [.2CF6.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW YO>
+AAA5 ; [.2CF7.0020.0002] # TAI VIET LETTER HIGH YO
+AAB5 AAA5 ; [.2CF7.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH YO>
+AAB6 AAA5 ; [.2CF7.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH YO>
+AAB9 AAA5 ; [.2CF7.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH YO>
+AABB AAA5 ; [.2CF7.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH YO>
+AABC AAA5 ; [.2CF7.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH YO>
+AAA6 ; [.2CF8.0020.0002] # TAI VIET LETTER LOW RO
+AAB5 AAA6 ; [.2CF8.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW RO>
+AAB6 AAA6 ; [.2CF8.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW RO>
+AAB9 AAA6 ; [.2CF8.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW RO>
+AABB AAA6 ; [.2CF8.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW RO>
+AABC AAA6 ; [.2CF8.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW RO>
+AAA7 ; [.2CF9.0020.0002] # TAI VIET LETTER HIGH RO
+AAB5 AAA7 ; [.2CF9.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH RO>
+AAB6 AAA7 ; [.2CF9.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH RO>
+AAB9 AAA7 ; [.2CF9.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH RO>
+AABB AAA7 ; [.2CF9.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH RO>
+AABC AAA7 ; [.2CF9.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH RO>
+AAA8 ; [.2CFA.0020.0002] # TAI VIET LETTER LOW LO
+AAB5 AAA8 ; [.2CFA.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW LO>
+AAB6 AAA8 ; [.2CFA.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW LO>
+AAB9 AAA8 ; [.2CFA.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW LO>
+AABB AAA8 ; [.2CFA.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW LO>
+AABC AAA8 ; [.2CFA.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW LO>
+AAA9 ; [.2CFB.0020.0002] # TAI VIET LETTER HIGH LO
+AAB5 AAA9 ; [.2CFB.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH LO>
+AAB6 AAA9 ; [.2CFB.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH LO>
+AAB9 AAA9 ; [.2CFB.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH LO>
+AABB AAA9 ; [.2CFB.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH LO>
+AABC AAA9 ; [.2CFB.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH LO>
+AAAA ; [.2CFC.0020.0002] # TAI VIET LETTER LOW VO
+AAB5 AAAA ; [.2CFC.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW VO>
+AAB6 AAAA ; [.2CFC.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW VO>
+AAB9 AAAA ; [.2CFC.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW VO>
+AABB AAAA ; [.2CFC.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW VO>
+AABC AAAA ; [.2CFC.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW VO>
+AAAB ; [.2CFD.0020.0002] # TAI VIET LETTER HIGH VO
+AAB5 AAAB ; [.2CFD.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH VO>
+AAB6 AAAB ; [.2CFD.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH VO>
+AAB9 AAAB ; [.2CFD.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH VO>
+AABB AAAB ; [.2CFD.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH VO>
+AABC AAAB ; [.2CFD.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH VO>
+AAAC ; [.2CFE.0020.0002] # TAI VIET LETTER LOW HO
+AAB5 AAAC ; [.2CFE.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW HO>
+AAB6 AAAC ; [.2CFE.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW HO>
+AAB9 AAAC ; [.2CFE.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW HO>
+AABB AAAC ; [.2CFE.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW HO>
+AABC AAAC ; [.2CFE.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW HO>
+AAAD ; [.2CFF.0020.0002] # TAI VIET LETTER HIGH HO
+AAB5 AAAD ; [.2CFF.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH HO>
+AAB6 AAAD ; [.2CFF.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH HO>
+AAB9 AAAD ; [.2CFF.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH HO>
+AABB AAAD ; [.2CFF.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH HO>
+AABC AAAD ; [.2CFF.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH HO>
+AAAE ; [.2D00.0020.0002] # TAI VIET LETTER LOW O
+AAB5 AAAE ; [.2D00.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER LOW O>
+AAB6 AAAE ; [.2D00.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER LOW O>
+AAB9 AAAE ; [.2D00.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER LOW O>
+AABB AAAE ; [.2D00.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER LOW O>
+AABC AAAE ; [.2D00.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER LOW O>
+AAAF ; [.2D01.0020.0002] # TAI VIET LETTER HIGH O
+AAB5 AAAF ; [.2D01.0020.0002][.2D07.0020.0002] # <TAI VIET VOWEL E, TAI VIET LETTER HIGH O>
+AAB6 AAAF ; [.2D01.0020.0002][.2D08.0020.0002] # <TAI VIET VOWEL O, TAI VIET LETTER HIGH O>
+AAB9 AAAF ; [.2D01.0020.0002][.2D0B.0020.0002] # <TAI VIET VOWEL UEA, TAI VIET LETTER HIGH O>
+AABB AAAF ; [.2D01.0020.0002][.2D0D.0020.0002] # <TAI VIET VOWEL AUE, TAI VIET LETTER HIGH O>
+AABC AAAF ; [.2D01.0020.0002][.2D0E.0020.0002] # <TAI VIET VOWEL AY, TAI VIET LETTER HIGH O>
+AAB0 ; [.2D02.0020.0002] # TAI VIET MAI KANG
+AAB1 ; [.2D03.0020.0002] # TAI VIET VOWEL AA
+AAB2 ; [.2D04.0020.0002] # TAI VIET VOWEL I
+AAB3 ; [.2D05.0020.0002] # TAI VIET VOWEL UE
+AAB4 ; [.2D06.0020.0002] # TAI VIET VOWEL U
+AAB5 ; [.2D07.0020.0002] # TAI VIET VOWEL E
+AAB6 ; [.2D08.0020.0002] # TAI VIET VOWEL O
+AAB7 ; [.2D09.0020.0002] # TAI VIET MAI KHIT
+AAB8 ; [.2D0A.0020.0002] # TAI VIET VOWEL IA
+AAB9 ; [.2D0B.0020.0002] # TAI VIET VOWEL UEA
+AABA ; [.2D0C.0020.0002] # TAI VIET VOWEL UA
+AABB ; [.2D0D.0020.0002] # TAI VIET VOWEL AUE
+AABC ; [.2D0E.0020.0002] # TAI VIET VOWEL AY
+AABD ; [.2D0F.0020.0002] # TAI VIET VOWEL AN
+AABE ; [.2D10.0020.0002] # TAI VIET VOWEL AM
+AAC0 ; [.2D11.0020.0002] # TAI VIET TONE MAI NUENG
+AAC2 ; [.2D12.0020.0002] # TAI VIET TONE MAI SONG
+AADB ; [.2D13.0020.0002] # TAI VIET SYMBOL KON
+AADC ; [.2D14.0020.0002] # TAI VIET SYMBOL NUENG
+0F40 ; [.2D15.0020.0002] # TIBETAN LETTER KA
+0F69 ; [.2D15.0020.0002][.2D56.0020.0002] # TIBETAN LETTER KSSA
+0F90 ; [.2D16.0020.0002] # TIBETAN SUBJOINED LETTER KA
+0FB9 ; [.2D16.0020.0002][.2D56.0020.0002] # TIBETAN SUBJOINED LETTER KSSA
+0F6B ; [.2D17.0020.0002] # TIBETAN LETTER KKA
+0F41 ; [.2D18.0020.0002] # TIBETAN LETTER KHA
+0F91 ; [.2D19.0020.0002] # TIBETAN SUBJOINED LETTER KHA
+0F42 ; [.2D1A.0020.0002] # TIBETAN LETTER GA
+0F43 ; [.2D1A.0020.0002][.2D5A.0020.0002] # TIBETAN LETTER GHA
+0F92 ; [.2D1B.0020.0002] # TIBETAN SUBJOINED LETTER GA
+0F93 ; [.2D1B.0020.0002][.2D5A.0020.0002] # TIBETAN SUBJOINED LETTER GHA
+0F44 ; [.2D1C.0020.0002] # TIBETAN LETTER NGA
+0F94 ; [.2D1D.0020.0002] # TIBETAN SUBJOINED LETTER NGA
+0F45 ; [.2D1E.0020.0002] # TIBETAN LETTER CA
+0F95 ; [.2D1F.0020.0002] # TIBETAN SUBJOINED LETTER CA
+0F46 ; [.2D20.0020.0002] # TIBETAN LETTER CHA
+0F96 ; [.2D21.0020.0002] # TIBETAN SUBJOINED LETTER CHA
+0F47 ; [.2D22.0020.0002] # TIBETAN LETTER JA
+0F97 ; [.2D23.0020.0002] # TIBETAN SUBJOINED LETTER JA
+0F49 ; [.2D24.0020.0002] # TIBETAN LETTER NYA
+0F99 ; [.2D25.0020.0002] # TIBETAN SUBJOINED LETTER NYA
+0F4A ; [.2D26.0020.0002] # TIBETAN LETTER TTA
+0F9A ; [.2D27.0020.0002] # TIBETAN SUBJOINED LETTER TTA
+0F4B ; [.2D28.0020.0002] # TIBETAN LETTER TTHA
+0F9B ; [.2D29.0020.0002] # TIBETAN SUBJOINED LETTER TTHA
+0F4C ; [.2D2A.0020.0002] # TIBETAN LETTER DDA
+0F4D ; [.2D2A.0020.0002][.2D5A.0020.0002] # TIBETAN LETTER DDHA
+0F9C ; [.2D2B.0020.0002] # TIBETAN SUBJOINED LETTER DDA
+0F9D ; [.2D2B.0020.0002][.2D5A.0020.0002] # TIBETAN SUBJOINED LETTER DDHA
+0F4E ; [.2D2C.0020.0002] # TIBETAN LETTER NNA
+0F9E ; [.2D2D.0020.0002] # TIBETAN SUBJOINED LETTER NNA
+0F4F ; [.2D2E.0020.0002] # TIBETAN LETTER TA
+0F9F ; [.2D2F.0020.0002] # TIBETAN SUBJOINED LETTER TA
+0F50 ; [.2D30.0020.0002] # TIBETAN LETTER THA
+0FA0 ; [.2D31.0020.0002] # TIBETAN SUBJOINED LETTER THA
+0F51 ; [.2D32.0020.0002] # TIBETAN LETTER DA
+0F52 ; [.2D32.0020.0002][.2D5A.0020.0002] # TIBETAN LETTER DHA
+0FA1 ; [.2D33.0020.0002] # TIBETAN SUBJOINED LETTER DA
+0FA2 ; [.2D33.0020.0002][.2D5A.0020.0002] # TIBETAN SUBJOINED LETTER DHA
+0F53 ; [.2D34.0020.0002] # TIBETAN LETTER NA
+0FA3 ; [.2D35.0020.0002] # TIBETAN SUBJOINED LETTER NA
+0F54 ; [.2D36.0020.0002] # TIBETAN LETTER PA
+0FA4 ; [.2D37.0020.0002] # TIBETAN SUBJOINED LETTER PA
+0F55 ; [.2D38.0020.0002] # TIBETAN LETTER PHA
+0FA5 ; [.2D39.0020.0002] # TIBETAN SUBJOINED LETTER PHA
+0F56 ; [.2D3A.0020.0002] # TIBETAN LETTER BA
+0F57 ; [.2D3A.0020.0002][.2D5A.0020.0002] # TIBETAN LETTER BHA
+0FA6 ; [.2D3B.0020.0002] # TIBETAN SUBJOINED LETTER BA
+0FA7 ; [.2D3B.0020.0002][.2D5A.0020.0002] # TIBETAN SUBJOINED LETTER BHA
+0F58 ; [.2D3C.0020.0002] # TIBETAN LETTER MA
+0FA8 ; [.2D3D.0020.0002] # TIBETAN SUBJOINED LETTER MA
+0F59 ; [.2D3E.0020.0002] # TIBETAN LETTER TSA
+0FA9 ; [.2D3F.0020.0002] # TIBETAN SUBJOINED LETTER TSA
+0F5A ; [.2D40.0020.0002] # TIBETAN LETTER TSHA
+0FAA ; [.2D41.0020.0002] # TIBETAN SUBJOINED LETTER TSHA
+0F5B ; [.2D42.0020.0002] # TIBETAN LETTER DZA
+0F5C ; [.2D42.0020.0002][.2D5A.0020.0002] # TIBETAN LETTER DZHA
+0FAB ; [.2D43.0020.0002] # TIBETAN SUBJOINED LETTER DZA
+0FAC ; [.2D43.0020.0002][.2D5A.0020.0002] # TIBETAN SUBJOINED LETTER DZHA
+0F5D ; [.2D44.0020.0002] # TIBETAN LETTER WA
+0FAD ; [.2D45.0020.0002] # TIBETAN SUBJOINED LETTER WA
+0FBA ; [.2D45.0020.0004][.0000.010C.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM WA
+0F5E ; [.2D46.0020.0002] # TIBETAN LETTER ZHA
+0FAE ; [.2D47.0020.0002] # TIBETAN SUBJOINED LETTER ZHA
+0F5F ; [.2D48.0020.0002] # TIBETAN LETTER ZA
+0FAF ; [.2D49.0020.0002] # TIBETAN SUBJOINED LETTER ZA
+0F60 ; [.2D4A.0020.0002] # TIBETAN LETTER -A
+0FB0 ; [.2D4B.0020.0002] # TIBETAN SUBJOINED LETTER -A
+0F61 ; [.2D4C.0020.0002] # TIBETAN LETTER YA
+0FB1 ; [.2D4D.0020.0002] # TIBETAN SUBJOINED LETTER YA
+0FBB ; [.2D4D.0020.0004][.0000.010C.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM YA
+0F62 ; [.2D4E.0020.0002] # TIBETAN LETTER RA
+0F6A ; [.2D4E.0020.0004][.0000.010C.0004] # TIBETAN LETTER FIXED-FORM RA
+0FB2 ; [.2D4F.0020.0002] # TIBETAN SUBJOINED LETTER RA
+0FBC ; [.2D4F.0020.0004][.0000.010C.0004] # TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0F6C ; [.2D50.0020.0002] # TIBETAN LETTER RRA
+0F63 ; [.2D51.0020.0002] # TIBETAN LETTER LA
+0FB3 ; [.2D52.0020.0002] # TIBETAN SUBJOINED LETTER LA
+0F64 ; [.2D53.0020.0002] # TIBETAN LETTER SHA
+0FB4 ; [.2D54.0020.0002] # TIBETAN SUBJOINED LETTER SHA
+0F65 ; [.2D55.0020.0002] # TIBETAN LETTER SSA
+0FB5 ; [.2D56.0020.0002] # TIBETAN SUBJOINED LETTER SSA
+0F66 ; [.2D57.0020.0002] # TIBETAN LETTER SA
+0FB6 ; [.2D58.0020.0002] # TIBETAN SUBJOINED LETTER SA
+0F67 ; [.2D59.0020.0002] # TIBETAN LETTER HA
+0FB7 ; [.2D5A.0020.0002] # TIBETAN SUBJOINED LETTER HA
+0F68 ; [.2D5B.0020.0002] # TIBETAN LETTER A
+0F00 ; [.2D5B.0020.0004][.2D72.0020.0004][.0000.00BF.0004] # TIBETAN SYLLABLE OM
+0FB8 ; [.2D5C.0020.0002] # TIBETAN SUBJOINED LETTER A
+0F88 ; [.2D5D.0020.0002] # TIBETAN SIGN LCE TSA CAN
+0F8D ; [.2D5E.0020.0002] # TIBETAN SUBJOINED SIGN LCE TSA CAN
+0F89 ; [.2D5F.0020.0002] # TIBETAN SIGN MCHU CAN
+0F8E ; [.2D60.0020.0002] # TIBETAN SUBJOINED SIGN MCHU CAN
+0F8C ; [.2D61.0020.0002] # TIBETAN SIGN INVERTED MCHU CAN
+0F8F ; [.2D62.0020.0002] # TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
+0F8A ; [.2D63.0020.0002] # TIBETAN SIGN GRU CAN RGYINGS
+0F8B ; [.2D64.0020.0002] # TIBETAN SIGN GRU MED RGYINGS
+0F71 ; [.2D65.0020.0002] # TIBETAN VOWEL SIGN AA
+0F72 ; [.2D66.0020.0002] # TIBETAN VOWEL SIGN I
+0F73 ; [.2D67.0020.0002] # TIBETAN VOWEL SIGN II
+0F71 0F72 ; [.2D67.0020.0002] # TIBETAN VOWEL SIGN II
+0F80 ; [.2D68.0020.0002] # TIBETAN VOWEL SIGN REVERSED I
+0F81 ; [.2D69.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
+0F71 0F80 ; [.2D69.0020.0002] # TIBETAN VOWEL SIGN REVERSED II
+0F74 ; [.2D6A.0020.0002] # TIBETAN VOWEL SIGN U
+0F75 ; [.2D6B.0020.0002] # TIBETAN VOWEL SIGN UU
+0F71 0F74 ; [.2D6B.0020.0002] # TIBETAN VOWEL SIGN UU
+0F76 ; [.2D6C.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
+0FB2 0F80 ; [.2D6C.0020.0002] # TIBETAN VOWEL SIGN VOCALIC R
+0F77 ; [.2D6D.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
+0FB2 0F71 0F80 ; [.2D6D.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
+0FB2 0F81 ; [.2D6D.0020.0002] # TIBETAN VOWEL SIGN VOCALIC RR
+0F78 ; [.2D6E.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
+0FB3 0F80 ; [.2D6E.0020.0002] # TIBETAN VOWEL SIGN VOCALIC L
+0F79 ; [.2D6F.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
+0FB3 0F71 0F80 ; [.2D6F.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
+0FB3 0F81 ; [.2D6F.0020.0002] # TIBETAN VOWEL SIGN VOCALIC LL
+0F7A ; [.2D70.0020.0002] # TIBETAN VOWEL SIGN E
+0F7B ; [.2D71.0020.0002] # TIBETAN VOWEL SIGN EE
+0F7C ; [.2D72.0020.0002] # TIBETAN VOWEL SIGN O
+0F7D ; [.2D73.0020.0002] # TIBETAN VOWEL SIGN OO
+0F84 ; [.2D74.0020.0002] # TIBETAN MARK HALANTA
+1C00 ; [.2D75.0020.0002] # LEPCHA LETTER KA
+1C01 ; [.2D76.0020.0002] # LEPCHA LETTER KLA
+1C02 ; [.2D77.0020.0002] # LEPCHA LETTER KHA
+1C03 ; [.2D78.0020.0002] # LEPCHA LETTER GA
+1C04 ; [.2D79.0020.0002] # LEPCHA LETTER GLA
+1C05 ; [.2D7A.0020.0002] # LEPCHA LETTER NGA
+1C06 ; [.2D7B.0020.0002] # LEPCHA LETTER CA
+1C07 ; [.2D7C.0020.0002] # LEPCHA LETTER CHA
+1C08 ; [.2D7D.0020.0002] # LEPCHA LETTER JA
+1C09 ; [.2D7E.0020.0002] # LEPCHA LETTER NYA
+1C4D ; [.2D7F.0020.0002] # LEPCHA LETTER TTA
+1C4E ; [.2D80.0020.0002] # LEPCHA LETTER TTHA
+1C4F ; [.2D81.0020.0002] # LEPCHA LETTER DDA
+1C0A ; [.2D82.0020.0002] # LEPCHA LETTER TA
+1C0B ; [.2D83.0020.0002] # LEPCHA LETTER THA
+1C0C ; [.2D84.0020.0002] # LEPCHA LETTER DA
+1C0D ; [.2D85.0020.0002] # LEPCHA LETTER NA
+1C0E ; [.2D86.0020.0002] # LEPCHA LETTER PA
+1C0F ; [.2D87.0020.0002] # LEPCHA LETTER PLA
+1C10 ; [.2D88.0020.0002] # LEPCHA LETTER PHA
+1C11 ; [.2D89.0020.0002] # LEPCHA LETTER FA
+1C12 ; [.2D8A.0020.0002] # LEPCHA LETTER FLA
+1C13 ; [.2D8B.0020.0002] # LEPCHA LETTER BA
+1C14 ; [.2D8C.0020.0002] # LEPCHA LETTER BLA
+1C15 ; [.2D8D.0020.0002] # LEPCHA LETTER MA
+1C16 ; [.2D8E.0020.0002] # LEPCHA LETTER MLA
+1C17 ; [.2D8F.0020.0002] # LEPCHA LETTER TSA
+1C18 ; [.2D90.0020.0002] # LEPCHA LETTER TSHA
+1C19 ; [.2D91.0020.0002] # LEPCHA LETTER DZA
+1C1A ; [.2D92.0020.0002] # LEPCHA LETTER YA
+1C24 ; [.2D93.0020.0002] # LEPCHA SUBJOINED LETTER YA
+1C1B ; [.2D94.0020.0002] # LEPCHA LETTER RA
+1C25 ; [.2D95.0020.0002] # LEPCHA SUBJOINED LETTER RA
+1C1C ; [.2D96.0020.0002] # LEPCHA LETTER LA
+1C1D ; [.2D97.0020.0002] # LEPCHA LETTER HA
+1C1E ; [.2D98.0020.0002] # LEPCHA LETTER HLA
+1C1F ; [.2D99.0020.0002] # LEPCHA LETTER VA
+1C20 ; [.2D9A.0020.0002] # LEPCHA LETTER SA
+1C21 ; [.2D9B.0020.0002] # LEPCHA LETTER SHA
+1C22 ; [.2D9C.0020.0002] # LEPCHA LETTER WA
+1C23 ; [.2D9D.0020.0002] # LEPCHA LETTER A
+1C36 ; [.2D9E.0020.0002] # LEPCHA SIGN RAN
+1C26 ; [.2D9F.0020.0002] # LEPCHA VOWEL SIGN AA
+1C27 ; [.2DA0.0020.0002] # LEPCHA VOWEL SIGN I
+1C28 ; [.2DA1.0020.0002] # LEPCHA VOWEL SIGN O
+1C29 ; [.2DA2.0020.0002] # LEPCHA VOWEL SIGN OO
+1C2A ; [.2DA3.0020.0002] # LEPCHA VOWEL SIGN U
+1C2B ; [.2DA4.0020.0002] # LEPCHA VOWEL SIGN UU
+1C2C ; [.2DA5.0020.0002] # LEPCHA VOWEL SIGN E
+1C2D ; [.2DA6.0020.0002] # LEPCHA CONSONANT SIGN K
+1C2E ; [.2DA7.0020.0002] # LEPCHA CONSONANT SIGN M
+1C2F ; [.2DA8.0020.0002] # LEPCHA CONSONANT SIGN L
+1C30 ; [.2DA9.0020.0002] # LEPCHA CONSONANT SIGN N
+1C31 ; [.2DAA.0020.0002] # LEPCHA CONSONANT SIGN P
+1C32 ; [.2DAB.0020.0002] # LEPCHA CONSONANT SIGN R
+1C33 ; [.2DAC.0020.0002] # LEPCHA CONSONANT SIGN T
+1C34 ; [.2DAD.0020.0002] # LEPCHA CONSONANT SIGN NYIN-DO
+1C35 ; [.2DAE.0020.0002] # LEPCHA CONSONANT SIGN KANG
+A840 ; [.2DAF.0020.0002] # PHAGS-PA LETTER KA
+A841 ; [.2DB0.0020.0002] # PHAGS-PA LETTER KHA
+A842 ; [.2DB1.0020.0002] # PHAGS-PA LETTER GA
+A843 ; [.2DB2.0020.0002] # PHAGS-PA LETTER NGA
+A844 ; [.2DB3.0020.0002] # PHAGS-PA LETTER CA
+A845 ; [.2DB4.0020.0002] # PHAGS-PA LETTER CHA
+A846 ; [.2DB5.0020.0002] # PHAGS-PA LETTER JA
+A847 ; [.2DB6.0020.0002] # PHAGS-PA LETTER NYA
+A869 ; [.2DB7.0020.0002] # PHAGS-PA LETTER TTA
+A86A ; [.2DB8.0020.0002] # PHAGS-PA LETTER TTHA
+A86B ; [.2DB9.0020.0002] # PHAGS-PA LETTER DDA
+A86C ; [.2DBA.0020.0002] # PHAGS-PA LETTER NNA
+A848 ; [.2DBB.0020.0002] # PHAGS-PA LETTER TA
+A849 ; [.2DBC.0020.0002] # PHAGS-PA LETTER THA
+A84A ; [.2DBD.0020.0002] # PHAGS-PA LETTER DA
+A84B ; [.2DBE.0020.0002] # PHAGS-PA LETTER NA
+A84C ; [.2DBF.0020.0002] # PHAGS-PA LETTER PA
+A84D ; [.2DC0.0020.0002] # PHAGS-PA LETTER PHA
+A84E ; [.2DC1.0020.0002] # PHAGS-PA LETTER BA
+A84F ; [.2DC2.0020.0002] # PHAGS-PA LETTER MA
+A850 ; [.2DC3.0020.0002] # PHAGS-PA LETTER TSA
+A851 ; [.2DC4.0020.0002] # PHAGS-PA LETTER TSHA
+A852 ; [.2DC5.0020.0002] # PHAGS-PA LETTER DZA
+A853 ; [.2DC6.0020.0002] # PHAGS-PA LETTER WA
+A867 ; [.2DC7.0020.0002] # PHAGS-PA SUBJOINED LETTER WA
+A854 ; [.2DC8.0020.0002] # PHAGS-PA LETTER ZHA
+A855 ; [.2DC9.0020.0002] # PHAGS-PA LETTER ZA
+A856 ; [.2DCA.0020.0002] # PHAGS-PA LETTER SMALL A
+A857 ; [.2DCB.0020.0002] # PHAGS-PA LETTER YA
+A868 ; [.2DCC.0020.0002] # PHAGS-PA SUBJOINED LETTER YA
+A86D ; [.2DCD.0020.0002] # PHAGS-PA LETTER ALTERNATE YA
+A858 ; [.2DCE.0020.0002] # PHAGS-PA LETTER RA
+A871 ; [.2DCF.0020.0002] # PHAGS-PA SUBJOINED LETTER RA
+A872 ; [.2DD0.0020.0002] # PHAGS-PA SUPERFIXED LETTER RA
+A859 ; [.2DD1.0020.0002] # PHAGS-PA LETTER LA
+A85A ; [.2DD2.0020.0002] # PHAGS-PA LETTER SHA
+A86E ; [.2DD3.0020.0002] # PHAGS-PA LETTER VOICELESS SHA
+A85B ; [.2DD4.0020.0002] # PHAGS-PA LETTER SA
+A85C ; [.2DD5.0020.0002] # PHAGS-PA LETTER HA
+A86F ; [.2DD6.0020.0002] # PHAGS-PA LETTER VOICED HA
+A870 ; [.2DD7.0020.0002] # PHAGS-PA LETTER ASPIRATED FA
+A85D ; [.2DD8.0020.0002] # PHAGS-PA LETTER A
+A862 ; [.2DD9.0020.0002] # PHAGS-PA LETTER QA
+A863 ; [.2DDA.0020.0002] # PHAGS-PA LETTER XA
+A864 ; [.2DDB.0020.0002] # PHAGS-PA LETTER FA
+A865 ; [.2DDC.0020.0002] # PHAGS-PA LETTER GGA
+A85E ; [.2DDD.0020.0002] # PHAGS-PA LETTER I
+A85F ; [.2DDE.0020.0002] # PHAGS-PA LETTER U
+A860 ; [.2DDF.0020.0002] # PHAGS-PA LETTER E
+A861 ; [.2DE0.0020.0002] # PHAGS-PA LETTER O
+A866 ; [.2DE1.0020.0002] # PHAGS-PA LETTER EE
+A873 ; [.2DE2.0020.0002] # PHAGS-PA LETTER CANDRABINDU
+1900 ; [.2DE3.0020.0002] # LIMBU VOWEL-CARRIER LETTER
+1901 ; [.2DE4.0020.0002] # LIMBU LETTER KA
+1902 ; [.2DE5.0020.0002] # LIMBU LETTER KHA
+1903 ; [.2DE6.0020.0002] # LIMBU LETTER GA
+1904 ; [.2DE7.0020.0002] # LIMBU LETTER GHA
+1905 ; [.2DE8.0020.0002] # LIMBU LETTER NGA
+1906 ; [.2DE9.0020.0002] # LIMBU LETTER CA
+1907 ; [.2DEA.0020.0002] # LIMBU LETTER CHA
+1908 ; [.2DEB.0020.0002] # LIMBU LETTER JA
+191D ; [.2DEB.0020.0004][.2E09.0020.0004] # LIMBU LETTER GYAN
+1909 ; [.2DEC.0020.0002] # LIMBU LETTER JHA
+190A ; [.2DED.0020.0002] # LIMBU LETTER YAN
+190B ; [.2DEE.0020.0002] # LIMBU LETTER TA
+191E ; [.2DEE.0020.0004][.2E0A.0020.0004] # LIMBU LETTER TRA
+190C ; [.2DEF.0020.0002] # LIMBU LETTER THA
+190D ; [.2DF0.0020.0002] # LIMBU LETTER DA
+190E ; [.2DF1.0020.0002] # LIMBU LETTER DHA
+190F ; [.2DF2.0020.0002] # LIMBU LETTER NA
+1910 ; [.2DF3.0020.0002] # LIMBU LETTER PA
+1911 ; [.2DF4.0020.0002] # LIMBU LETTER PHA
+1912 ; [.2DF5.0020.0002] # LIMBU LETTER BA
+1913 ; [.2DF6.0020.0002] # LIMBU LETTER BHA
+1914 ; [.2DF7.0020.0002] # LIMBU LETTER MA
+1915 ; [.2DF8.0020.0002] # LIMBU LETTER YA
+1916 ; [.2DF9.0020.0002] # LIMBU LETTER RA
+1917 ; [.2DFA.0020.0002] # LIMBU LETTER LA
+1918 ; [.2DFB.0020.0002] # LIMBU LETTER WA
+1919 ; [.2DFC.0020.0002] # LIMBU LETTER SHA
+191A ; [.2DFD.0020.0002] # LIMBU LETTER SSA
+191B ; [.2DFE.0020.0002] # LIMBU LETTER SA
+191C ; [.2DFF.0020.0002] # LIMBU LETTER HA
+1920 ; [.2E00.0020.0002] # LIMBU VOWEL SIGN A
+1921 ; [.2E01.0020.0002] # LIMBU VOWEL SIGN I
+1922 ; [.2E02.0020.0002] # LIMBU VOWEL SIGN U
+1923 ; [.2E03.0020.0002] # LIMBU VOWEL SIGN EE
+1924 ; [.2E04.0020.0002] # LIMBU VOWEL SIGN AI
+1925 ; [.2E05.0020.0002] # LIMBU VOWEL SIGN OO
+1926 ; [.2E06.0020.0002] # LIMBU VOWEL SIGN AU
+1927 ; [.2E07.0020.0002] # LIMBU VOWEL SIGN E
+1928 ; [.2E08.0020.0002] # LIMBU VOWEL SIGN O
+1929 ; [.2E09.0020.0002] # LIMBU SUBJOINED LETTER YA
+192A ; [.2E0A.0020.0002] # LIMBU SUBJOINED LETTER RA
+192B ; [.2E0B.0020.0002] # LIMBU SUBJOINED LETTER WA
+1930 ; [.2E0C.0020.0002] # LIMBU SMALL LETTER KA
+1931 ; [.2E0D.0020.0002] # LIMBU SMALL LETTER NGA
+1932 ; [.2E0E.0020.0002] # LIMBU SMALL LETTER ANUSVARA
+1933 ; [.2E0F.0020.0002] # LIMBU SMALL LETTER TA
+1934 ; [.2E10.0020.0002] # LIMBU SMALL LETTER NA
+1935 ; [.2E11.0020.0002] # LIMBU SMALL LETTER PA
+1936 ; [.2E12.0020.0002] # LIMBU SMALL LETTER MA
+1937 ; [.2E13.0020.0002] # LIMBU SMALL LETTER RA
+1938 ; [.2E14.0020.0002] # LIMBU SMALL LETTER LA
+1700 ; [.2E15.0020.0002] # TAGALOG LETTER A
+1701 ; [.2E16.0020.0002] # TAGALOG LETTER I
+1702 ; [.2E17.0020.0002] # TAGALOG LETTER U
+1703 ; [.2E18.0020.0002] # TAGALOG LETTER KA
+1704 ; [.2E19.0020.0002] # TAGALOG LETTER GA
+1705 ; [.2E1A.0020.0002] # TAGALOG LETTER NGA
+1706 ; [.2E1B.0020.0002] # TAGALOG LETTER TA
+1707 ; [.2E1C.0020.0002] # TAGALOG LETTER DA
+1708 ; [.2E1D.0020.0002] # TAGALOG LETTER NA
+1709 ; [.2E1E.0020.0002] # TAGALOG LETTER PA
+170A ; [.2E1F.0020.0002] # TAGALOG LETTER BA
+170B ; [.2E20.0020.0002] # TAGALOG LETTER MA
+170C ; [.2E21.0020.0002] # TAGALOG LETTER YA
+170E ; [.2E22.0020.0002] # TAGALOG LETTER LA
+170F ; [.2E23.0020.0002] # TAGALOG LETTER WA
+1710 ; [.2E24.0020.0002] # TAGALOG LETTER SA
+1711 ; [.2E25.0020.0002] # TAGALOG LETTER HA
+1712 ; [.2E26.0020.0002] # TAGALOG VOWEL SIGN I
+1713 ; [.2E27.0020.0002] # TAGALOG VOWEL SIGN U
+1714 ; [.2E28.0020.0002] # TAGALOG SIGN VIRAMA
+1720 ; [.2E29.0020.0002] # HANUNOO LETTER A
+1721 ; [.2E2A.0020.0002] # HANUNOO LETTER I
+1722 ; [.2E2B.0020.0002] # HANUNOO LETTER U
+1723 ; [.2E2C.0020.0002] # HANUNOO LETTER KA
+1724 ; [.2E2D.0020.0002] # HANUNOO LETTER GA
+1725 ; [.2E2E.0020.0002] # HANUNOO LETTER NGA
+1726 ; [.2E2F.0020.0002] # HANUNOO LETTER TA
+1727 ; [.2E30.0020.0002] # HANUNOO LETTER DA
+1728 ; [.2E31.0020.0002] # HANUNOO LETTER NA
+1729 ; [.2E32.0020.0002] # HANUNOO LETTER PA
+172A ; [.2E33.0020.0002] # HANUNOO LETTER BA
+172B ; [.2E34.0020.0002] # HANUNOO LETTER MA
+172C ; [.2E35.0020.0002] # HANUNOO LETTER YA
+172D ; [.2E36.0020.0002] # HANUNOO LETTER RA
+172E ; [.2E37.0020.0002] # HANUNOO LETTER LA
+172F ; [.2E38.0020.0002] # HANUNOO LETTER WA
+1730 ; [.2E39.0020.0002] # HANUNOO LETTER SA
+1731 ; [.2E3A.0020.0002] # HANUNOO LETTER HA
+1732 ; [.2E3B.0020.0002] # HANUNOO VOWEL SIGN I
+1733 ; [.2E3C.0020.0002] # HANUNOO VOWEL SIGN U
+1734 ; [.2E3D.0020.0002] # HANUNOO SIGN PAMUDPOD
+1740 ; [.2E3E.0020.0002] # BUHID LETTER A
+1741 ; [.2E3F.0020.0002] # BUHID LETTER I
+1742 ; [.2E40.0020.0002] # BUHID LETTER U
+1743 ; [.2E41.0020.0002] # BUHID LETTER KA
+1744 ; [.2E42.0020.0002] # BUHID LETTER GA
+1745 ; [.2E43.0020.0002] # BUHID LETTER NGA
+1746 ; [.2E44.0020.0002] # BUHID LETTER TA
+1747 ; [.2E45.0020.0002] # BUHID LETTER DA
+1748 ; [.2E46.0020.0002] # BUHID LETTER NA
+1749 ; [.2E47.0020.0002] # BUHID LETTER PA
+174A ; [.2E48.0020.0002] # BUHID LETTER BA
+174B ; [.2E49.0020.0002] # BUHID LETTER MA
+174C ; [.2E4A.0020.0002] # BUHID LETTER YA
+174D ; [.2E4B.0020.0002] # BUHID LETTER RA
+174E ; [.2E4C.0020.0002] # BUHID LETTER LA
+174F ; [.2E4D.0020.0002] # BUHID LETTER WA
+1750 ; [.2E4E.0020.0002] # BUHID LETTER SA
+1751 ; [.2E4F.0020.0002] # BUHID LETTER HA
+1752 ; [.2E50.0020.0002] # BUHID VOWEL SIGN I
+1753 ; [.2E51.0020.0002] # BUHID VOWEL SIGN U
+1760 ; [.2E52.0020.0002] # TAGBANWA LETTER A
+1761 ; [.2E53.0020.0002] # TAGBANWA LETTER I
+1762 ; [.2E54.0020.0002] # TAGBANWA LETTER U
+1763 ; [.2E55.0020.0002] # TAGBANWA LETTER KA
+1764 ; [.2E56.0020.0002] # TAGBANWA LETTER GA
+1765 ; [.2E57.0020.0002] # TAGBANWA LETTER NGA
+1766 ; [.2E58.0020.0002] # TAGBANWA LETTER TA
+1767 ; [.2E59.0020.0002] # TAGBANWA LETTER DA
+1768 ; [.2E5A.0020.0002] # TAGBANWA LETTER NA
+1769 ; [.2E5B.0020.0002] # TAGBANWA LETTER PA
+176A ; [.2E5C.0020.0002] # TAGBANWA LETTER BA
+176B ; [.2E5D.0020.0002] # TAGBANWA LETTER MA
+176C ; [.2E5E.0020.0002] # TAGBANWA LETTER YA
+176E ; [.2E5F.0020.0002] # TAGBANWA LETTER LA
+176F ; [.2E60.0020.0002] # TAGBANWA LETTER WA
+1770 ; [.2E61.0020.0002] # TAGBANWA LETTER SA
+1772 ; [.2E62.0020.0002] # TAGBANWA VOWEL SIGN I
+1773 ; [.2E63.0020.0002] # TAGBANWA VOWEL SIGN U
+1A00 ; [.2E64.0020.0002] # BUGINESE LETTER KA
+1A01 ; [.2E65.0020.0002] # BUGINESE LETTER GA
+1A02 ; [.2E66.0020.0002] # BUGINESE LETTER NGA
+1A03 ; [.2E67.0020.0002] # BUGINESE LETTER NGKA
+1A04 ; [.2E68.0020.0002] # BUGINESE LETTER PA
+1A05 ; [.2E69.0020.0002] # BUGINESE LETTER BA
+1A06 ; [.2E6A.0020.0002] # BUGINESE LETTER MA
+1A07 ; [.2E6B.0020.0002] # BUGINESE LETTER MPA
+1A08 ; [.2E6C.0020.0002] # BUGINESE LETTER TA
+1A09 ; [.2E6D.0020.0002] # BUGINESE LETTER DA
+1A0A ; [.2E6E.0020.0002] # BUGINESE LETTER NA
+1A0B ; [.2E6F.0020.0002] # BUGINESE LETTER NRA
+1A0C ; [.2E70.0020.0002] # BUGINESE LETTER CA
+1A0D ; [.2E71.0020.0002] # BUGINESE LETTER JA
+1A0E ; [.2E72.0020.0002] # BUGINESE LETTER NYA
+1A0F ; [.2E73.0020.0002] # BUGINESE LETTER NYCA
+1A10 ; [.2E74.0020.0002] # BUGINESE LETTER YA
+1A11 ; [.2E75.0020.0002] # BUGINESE LETTER RA
+1A12 ; [.2E76.0020.0002] # BUGINESE LETTER LA
+1A13 ; [.2E77.0020.0002] # BUGINESE LETTER VA
+1A14 ; [.2E78.0020.0002] # BUGINESE LETTER SA
+1A15 ; [.2E79.0020.0002] # BUGINESE LETTER A
+1A16 ; [.2E7A.0020.0002] # BUGINESE LETTER HA
+1A17 ; [.2E7B.0020.0002] # BUGINESE VOWEL SIGN I
+1A18 ; [.2E7C.0020.0002] # BUGINESE VOWEL SIGN U
+1A19 ; [.2E7D.0020.0002] # BUGINESE VOWEL SIGN E
+1A1A ; [.2E7E.0020.0002] # BUGINESE VOWEL SIGN O
+1A1B ; [.2E7F.0020.0002] # BUGINESE VOWEL SIGN AE
+1BC0 ; [.2E80.0020.0002] # BATAK LETTER A
+1BC1 ; [.2E80.0020.0004] # BATAK LETTER SIMALUNGUN A
+1BC2 ; [.2E81.0020.0002] # BATAK LETTER HA
+1BC3 ; [.2E81.0020.0004] # BATAK LETTER SIMALUNGUN HA
+1BC4 ; [.2E81.0020.0004] # BATAK LETTER MANDAILING HA
+1BC5 ; [.2E82.0020.0002] # BATAK LETTER BA
+1BC6 ; [.2E82.0020.0004] # BATAK LETTER KARO BA
+1BC7 ; [.2E83.0020.0002] # BATAK LETTER PA
+1BC8 ; [.2E83.0020.0004] # BATAK LETTER SIMALUNGUN PA
+1BC9 ; [.2E84.0020.0002] # BATAK LETTER NA
+1BCA ; [.2E84.0020.0004] # BATAK LETTER MANDAILING NA
+1BCB ; [.2E85.0020.0002] # BATAK LETTER WA
+1BCC ; [.2E85.0020.0004] # BATAK LETTER SIMALUNGUN WA
+1BCD ; [.2E85.0020.0004] # BATAK LETTER PAKPAK WA
+1BCE ; [.2E86.0020.0002] # BATAK LETTER GA
+1BCF ; [.2E86.0020.0004] # BATAK LETTER SIMALUNGUN GA
+1BD0 ; [.2E87.0020.0002] # BATAK LETTER JA
+1BD1 ; [.2E88.0020.0002] # BATAK LETTER DA
+1BD2 ; [.2E89.0020.0002] # BATAK LETTER RA
+1BD3 ; [.2E89.0020.0004] # BATAK LETTER SIMALUNGUN RA
+1BD4 ; [.2E8A.0020.0002] # BATAK LETTER MA
+1BD5 ; [.2E8A.0020.0004] # BATAK LETTER SIMALUNGUN MA
+1BD6 ; [.2E8B.0020.0002] # BATAK LETTER SOUTHERN TA
+1BD7 ; [.2E8B.0020.0004] # BATAK LETTER NORTHERN TA
+1BD8 ; [.2E8C.0020.0002] # BATAK LETTER SA
+1BD9 ; [.2E8C.0020.0004] # BATAK LETTER SIMALUNGUN SA
+1BDA ; [.2E8C.0020.0004] # BATAK LETTER MANDAILING SA
+1BDB ; [.2E8D.0020.0002] # BATAK LETTER YA
+1BDC ; [.2E8D.0020.0004] # BATAK LETTER SIMALUNGUN YA
+1BDD ; [.2E8E.0020.0002] # BATAK LETTER NGA
+1BDE ; [.2E8F.0020.0002] # BATAK LETTER LA
+1BDF ; [.2E8F.0020.0004] # BATAK LETTER SIMALUNGUN LA
+1BE0 ; [.2E90.0020.0002] # BATAK LETTER NYA
+1BE1 ; [.2E91.0020.0002] # BATAK LETTER CA
+1BE2 ; [.2E92.0020.0002] # BATAK LETTER NDA
+1BE3 ; [.2E93.0020.0002] # BATAK LETTER MBA
+1BE4 ; [.2E94.0020.0002] # BATAK LETTER I
+1BE5 ; [.2E95.0020.0002] # BATAK LETTER U
+1BE7 ; [.2E96.0020.0002] # BATAK VOWEL SIGN E
+1BE8 ; [.2E96.0020.0004] # BATAK VOWEL SIGN PAKPAK E
+1BE9 ; [.2E97.0020.0002] # BATAK VOWEL SIGN EE
+1BEA ; [.2E98.0020.0002] # BATAK VOWEL SIGN I
+1BEB ; [.2E98.0020.0004] # BATAK VOWEL SIGN KARO I
+1BEC ; [.2E99.0020.0002] # BATAK VOWEL SIGN O
+1BED ; [.2E99.0020.0004] # BATAK VOWEL SIGN KARO O
+1BEE ; [.2E9A.0020.0002] # BATAK VOWEL SIGN U
+1BEF ; [.2E9A.0020.0004] # BATAK VOWEL SIGN U FOR SIMALUNGUN SA
+1BF0 ; [.2E9B.0020.0002] # BATAK CONSONANT SIGN NG
+1BF1 ; [.2E9C.0020.0002] # BATAK CONSONANT SIGN H
+1BF2 ; [.2E9D.0020.0002] # BATAK PANGOLAT
+1BF3 ; [.2E9E.0020.0002] # BATAK PANONGONAN
+A930 ; [.2E9F.0020.0002] # REJANG LETTER KA
+A931 ; [.2EA0.0020.0002] # REJANG LETTER GA
+A932 ; [.2EA1.0020.0002] # REJANG LETTER NGA
+A933 ; [.2EA2.0020.0002] # REJANG LETTER TA
+A934 ; [.2EA3.0020.0002] # REJANG LETTER DA
+A935 ; [.2EA4.0020.0002] # REJANG LETTER NA
+A936 ; [.2EA5.0020.0002] # REJANG LETTER PA
+A937 ; [.2EA6.0020.0002] # REJANG LETTER BA
+A938 ; [.2EA7.0020.0002] # REJANG LETTER MA
+A939 ; [.2EA8.0020.0002] # REJANG LETTER CA
+A93A ; [.2EA9.0020.0002] # REJANG LETTER JA
+A93B ; [.2EAA.0020.0002] # REJANG LETTER NYA
+A93C ; [.2EAB.0020.0002] # REJANG LETTER SA
+A93D ; [.2EAC.0020.0002] # REJANG LETTER RA
+A93E ; [.2EAD.0020.0002] # REJANG LETTER LA
+A93F ; [.2EAE.0020.0002] # REJANG LETTER YA
+A940 ; [.2EAF.0020.0002] # REJANG LETTER WA
+A941 ; [.2EB0.0020.0002] # REJANG LETTER HA
+A942 ; [.2EB1.0020.0002] # REJANG LETTER MBA
+A943 ; [.2EB2.0020.0002] # REJANG LETTER NGGA
+A944 ; [.2EB3.0020.0002] # REJANG LETTER NDA
+A945 ; [.2EB4.0020.0002] # REJANG LETTER NYJA
+A946 ; [.2EB5.0020.0002] # REJANG LETTER A
+A947 ; [.2EB6.0020.0002] # REJANG VOWEL SIGN I
+A948 ; [.2EB7.0020.0002] # REJANG VOWEL SIGN U
+A949 ; [.2EB8.0020.0002] # REJANG VOWEL SIGN E
+A94A ; [.2EB9.0020.0002] # REJANG VOWEL SIGN AI
+A94B ; [.2EBA.0020.0002] # REJANG VOWEL SIGN O
+A94C ; [.2EBB.0020.0002] # REJANG VOWEL SIGN AU
+A94D ; [.2EBC.0020.0002] # REJANG VOWEL SIGN EU
+A94E ; [.2EBD.0020.0002] # REJANG VOWEL SIGN EA
+A94F ; [.2EBE.0020.0002] # REJANG CONSONANT SIGN NG
+A950 ; [.2EBF.0020.0002] # REJANG CONSONANT SIGN N
+A951 ; [.2EC0.0020.0002] # REJANG CONSONANT SIGN R
+A952 ; [.2EC1.0020.0002] # REJANG CONSONANT SIGN H
+A953 ; [.2EC2.0020.0002] # REJANG VIRAMA
+A90A ; [.2EC3.0020.0002] # KAYAH LI LETTER KA
+A90B ; [.2EC4.0020.0002] # KAYAH LI LETTER KHA
+A90C ; [.2EC5.0020.0002] # KAYAH LI LETTER GA
+A90D ; [.2EC6.0020.0002] # KAYAH LI LETTER NGA
+A90E ; [.2EC7.0020.0002] # KAYAH LI LETTER SA
+A90F ; [.2EC8.0020.0002] # KAYAH LI LETTER SHA
+A910 ; [.2EC9.0020.0002] # KAYAH LI LETTER ZA
+A911 ; [.2ECA.0020.0002] # KAYAH LI LETTER NYA
+A912 ; [.2ECB.0020.0002] # KAYAH LI LETTER TA
+A913 ; [.2ECC.0020.0002] # KAYAH LI LETTER HTA
+A914 ; [.2ECD.0020.0002] # KAYAH LI LETTER NA
+A915 ; [.2ECE.0020.0002] # KAYAH LI LETTER PA
+A916 ; [.2ECF.0020.0002] # KAYAH LI LETTER PHA
+A917 ; [.2ED0.0020.0002] # KAYAH LI LETTER MA
+A918 ; [.2ED1.0020.0002] # KAYAH LI LETTER DA
+A919 ; [.2ED2.0020.0002] # KAYAH LI LETTER BA
+A91A ; [.2ED3.0020.0002] # KAYAH LI LETTER RA
+A91B ; [.2ED4.0020.0002] # KAYAH LI LETTER YA
+A91C ; [.2ED5.0020.0002] # KAYAH LI LETTER LA
+A91D ; [.2ED6.0020.0002] # KAYAH LI LETTER WA
+A91E ; [.2ED7.0020.0002] # KAYAH LI LETTER THA
+A91F ; [.2ED8.0020.0002] # KAYAH LI LETTER HA
+A920 ; [.2ED9.0020.0002] # KAYAH LI LETTER VA
+A921 ; [.2EDA.0020.0002] # KAYAH LI LETTER CA
+A922 ; [.2EDB.0020.0002] # KAYAH LI LETTER A
+A923 ; [.2EDC.0020.0002] # KAYAH LI LETTER OE
+A924 ; [.2EDD.0020.0002] # KAYAH LI LETTER I
+A925 ; [.2EDE.0020.0002] # KAYAH LI LETTER OO
+A926 ; [.2EDF.0020.0002] # KAYAH LI VOWEL UE
+A927 ; [.2EE0.0020.0002] # KAYAH LI VOWEL E
+A928 ; [.2EE1.0020.0002] # KAYAH LI VOWEL U
+A929 ; [.2EE2.0020.0002] # KAYAH LI VOWEL EE
+A92A ; [.2EE3.0020.0002] # KAYAH LI VOWEL O
+1000 ; [.2EE4.0020.0002] # MYANMAR LETTER KA
+1075 ; [.2EE5.0020.0002] # MYANMAR LETTER SHAN KA
+1001 ; [.2EE6.0020.0002] # MYANMAR LETTER KHA
+1076 ; [.2EE7.0020.0002] # MYANMAR LETTER SHAN KHA
+1002 ; [.2EE8.0020.0002] # MYANMAR LETTER GA
+1077 ; [.2EE9.0020.0002] # MYANMAR LETTER SHAN GA
+AA60 ; [.2EEA.0020.0002] # MYANMAR LETTER KHAMTI GA
+A9E9 ; [.2EEB.0020.0002] # MYANMAR LETTER TAI LAING GA
+1003 ; [.2EEC.0020.0002] # MYANMAR LETTER GHA
+A9E0 ; [.2EED.0020.0002] # MYANMAR LETTER SHAN GHA
+A9EA ; [.2EEE.0020.0002] # MYANMAR LETTER TAI LAING GHA
+1004 ; [.2EEF.0020.0002] # MYANMAR LETTER NGA
+105A ; [.2EF0.0020.0002] # MYANMAR LETTER MON NGA
+1005 ; [.2EF1.0020.0002] # MYANMAR LETTER CA
+1078 ; [.2EF2.0020.0002] # MYANMAR LETTER SHAN CA
+AA61 ; [.2EF3.0020.0002] # MYANMAR LETTER KHAMTI CA
+1006 ; [.2EF4.0020.0002] # MYANMAR LETTER CHA
+A9E1 ; [.2EF5.0020.0002] # MYANMAR LETTER SHAN CHA
+AA62 ; [.2EF6.0020.0002] # MYANMAR LETTER KHAMTI CHA
+AA7E ; [.2EF7.0020.0002] # MYANMAR LETTER SHWE PALAUNG CHA
+1007 ; [.2EF8.0020.0002] # MYANMAR LETTER JA
+AA63 ; [.2EF9.0020.0002] # MYANMAR LETTER KHAMTI JA
+A9EB ; [.2EFA.0020.0002] # MYANMAR LETTER TAI LAING JA
+1079 ; [.2EFB.0020.0002] # MYANMAR LETTER SHAN ZA
+AA72 ; [.2EFC.0020.0002] # MYANMAR LETTER KHAMTI ZA
+1008 ; [.2EFD.0020.0002] # MYANMAR LETTER JHA
+105B ; [.2EFE.0020.0002] # MYANMAR LETTER MON JHA
+A9E2 ; [.2EFF.0020.0002] # MYANMAR LETTER SHAN JHA
+AA64 ; [.2F00.0020.0002] # MYANMAR LETTER KHAMTI JHA
+A9EC ; [.2F01.0020.0002] # MYANMAR LETTER TAI LAING JHA
+1061 ; [.2F02.0020.0002] # MYANMAR LETTER SGAW KAREN SHA
+AA7F ; [.2F03.0020.0002] # MYANMAR LETTER SHWE PALAUNG SHA
+1009 ; [.2F04.0020.0002] # MYANMAR LETTER NYA
+107A ; [.2F05.0020.0002] # MYANMAR LETTER SHAN NYA
+AA65 ; [.2F06.0020.0002] # MYANMAR LETTER KHAMTI NYA
+A9E7 ; [.2F07.0020.0002] # MYANMAR LETTER TAI LAING NYA
+100A ; [.2F08.0020.0002] # MYANMAR LETTER NNYA
+100B ; [.2F09.0020.0002] # MYANMAR LETTER TTA
+AA66 ; [.2F0A.0020.0002] # MYANMAR LETTER KHAMTI TTA
+100C ; [.2F0B.0020.0002] # MYANMAR LETTER TTHA
+AA67 ; [.2F0C.0020.0002] # MYANMAR LETTER KHAMTI TTHA
+100D ; [.2F0D.0020.0002] # MYANMAR LETTER DDA
+AA68 ; [.2F0E.0020.0002] # MYANMAR LETTER KHAMTI DDA
+A9ED ; [.2F0F.0020.0002] # MYANMAR LETTER TAI LAING DDA
+100E ; [.2F10.0020.0002] # MYANMAR LETTER DDHA
+AA69 ; [.2F11.0020.0002] # MYANMAR LETTER KHAMTI DDHA
+A9EE ; [.2F12.0020.0002] # MYANMAR LETTER TAI LAING DDHA
+100F ; [.2F13.0020.0002] # MYANMAR LETTER NNA
+106E ; [.2F14.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN NNA
+A9E3 ; [.2F15.0020.0002] # MYANMAR LETTER SHAN NNA
+A9EF ; [.2F16.0020.0002] # MYANMAR LETTER TAI LAING NNA
+1010 ; [.2F17.0020.0002] # MYANMAR LETTER TA
+1011 ; [.2F18.0020.0002] # MYANMAR LETTER THA
+1012 ; [.2F19.0020.0002] # MYANMAR LETTER DA
+107B ; [.2F1A.0020.0002] # MYANMAR LETTER SHAN DA
+A9FB ; [.2F1B.0020.0002] # MYANMAR LETTER TAI LAING DA
+1013 ; [.2F1C.0020.0002] # MYANMAR LETTER DHA
+AA6A ; [.2F1D.0020.0002] # MYANMAR LETTER KHAMTI DHA
+A9FC ; [.2F1E.0020.0002] # MYANMAR LETTER TAI LAING DHA
+1014 ; [.2F1F.0020.0002] # MYANMAR LETTER NA
+107C ; [.2F20.0020.0002] # MYANMAR LETTER SHAN NA
+AA6B ; [.2F21.0020.0002] # MYANMAR LETTER KHAMTI NA
+105E ; [.2F22.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL NA
+1015 ; [.2F23.0020.0002] # MYANMAR LETTER PA
+1016 ; [.2F24.0020.0002] # MYANMAR LETTER PHA
+107D ; [.2F25.0020.0002] # MYANMAR LETTER SHAN PHA
+107E ; [.2F26.0020.0002] # MYANMAR LETTER SHAN FA
+AA6F ; [.2F27.0020.0002] # MYANMAR LETTER KHAMTI FA
+108E ; [.2F28.0020.0002] # MYANMAR LETTER RUMAI PALAUNG FA
+A9E8 ; [.2F29.0020.0002] # MYANMAR LETTER TAI LAING FA
+1017 ; [.2F2A.0020.0002] # MYANMAR LETTER BA
+107F ; [.2F2B.0020.0002] # MYANMAR LETTER SHAN BA
+A9FD ; [.2F2C.0020.0002] # MYANMAR LETTER TAI LAING BA
+1018 ; [.2F2D.0020.0002] # MYANMAR LETTER BHA
+A9E4 ; [.2F2E.0020.0002] # MYANMAR LETTER SHAN BHA
+A9FE ; [.2F2F.0020.0002] # MYANMAR LETTER TAI LAING BHA
+1019 ; [.2F30.0020.0002] # MYANMAR LETTER MA
+105F ; [.2F31.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL MA
+101A ; [.2F32.0020.0002] # MYANMAR LETTER YA
+103B ; [.2F33.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL YA
+101B ; [.2F34.0020.0002] # MYANMAR LETTER RA
+AA73 ; [.2F35.0020.0002] # MYANMAR LETTER KHAMTI RA
+AA7A ; [.2F36.0020.0002] # MYANMAR LETTER AITON RA
+103C ; [.2F37.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL RA
+101C ; [.2F38.0020.0002] # MYANMAR LETTER LA
+1060 ; [.2F39.0020.0002] # MYANMAR CONSONANT SIGN MON MEDIAL LA
+101D ; [.2F3A.0020.0002] # MYANMAR LETTER WA
+103D ; [.2F3B.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL WA
+1082 ; [.2F3C.0020.0002] # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1080 ; [.2F3D.0020.0002] # MYANMAR LETTER SHAN THA
+1050 ; [.2F3E.0020.0002] # MYANMAR LETTER SHA
+1051 ; [.2F3F.0020.0002] # MYANMAR LETTER SSA
+1065 ; [.2F40.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN THA
+101E ; [.2F41.0020.0002] # MYANMAR LETTER SA
+103F ; [.2F41.0020.0004][.2F7A.0020.0004][.2F41.0020.0004] # MYANMAR LETTER GREAT SA
+AA6C ; [.2F42.0020.0002] # MYANMAR LETTER KHAMTI SA
+101F ; [.2F43.0020.0002] # MYANMAR LETTER HA
+1081 ; [.2F44.0020.0002] # MYANMAR LETTER SHAN HA
+AA6D ; [.2F45.0020.0002] # MYANMAR LETTER KHAMTI HA
+103E ; [.2F46.0020.0002] # MYANMAR CONSONANT SIGN MEDIAL HA
+AA6E ; [.2F47.0020.0002] # MYANMAR LETTER KHAMTI HHA
+AA71 ; [.2F48.0020.0002] # MYANMAR LETTER KHAMTI XA
+1020 ; [.2F49.0020.0002] # MYANMAR LETTER LLA
+A9FA ; [.2F4A.0020.0002] # MYANMAR LETTER TAI LAING LLA
+105C ; [.2F4B.0020.0002] # MYANMAR LETTER MON BBA
+105D ; [.2F4C.0020.0002] # MYANMAR LETTER MON BBE
+106F ; [.2F4D.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN YWA
+1070 ; [.2F4E.0020.0002] # MYANMAR LETTER EASTERN PWO KAREN GHWA
+1066 ; [.2F4F.0020.0002] # MYANMAR LETTER WESTERN PWO KAREN PWA
+1021 ; [.2F50.0020.0002] # MYANMAR LETTER A
+1022 ; [.2F51.0020.0002] # MYANMAR LETTER SHAN A
+1023 ; [.2F52.0020.0002] # MYANMAR LETTER I
+1024 ; [.2F53.0020.0002] # MYANMAR LETTER II
+1025 ; [.2F54.0020.0002] # MYANMAR LETTER U
+1026 ; [.2F55.0020.0002] # MYANMAR LETTER UU
+1025 102E ; [.2F55.0020.0002] # MYANMAR LETTER UU
+1052 ; [.2F56.0020.0002] # MYANMAR LETTER VOCALIC R
+1053 ; [.2F57.0020.0002] # MYANMAR LETTER VOCALIC RR
+1054 ; [.2F58.0020.0002] # MYANMAR LETTER VOCALIC L
+1055 ; [.2F59.0020.0002] # MYANMAR LETTER VOCALIC LL
+1027 ; [.2F5A.0020.0002] # MYANMAR LETTER E
+1028 ; [.2F5B.0020.0002] # MYANMAR LETTER MON E
+1029 ; [.2F5C.0020.0002] # MYANMAR LETTER O
+102A ; [.2F5D.0020.0002] # MYANMAR LETTER AU
+102C ; [.2F5E.0020.0002] # MYANMAR VOWEL SIGN AA
+102B ; [.2F5E.0020.0004] # MYANMAR VOWEL SIGN TALL AA
+1083 ; [.2F5F.0020.0002] # MYANMAR VOWEL SIGN SHAN AA
+1072 ; [.2F60.0020.0002] # MYANMAR VOWEL SIGN KAYAH OE
+109C ; [.2F61.0020.0002] # MYANMAR VOWEL SIGN AITON A
+102D ; [.2F62.0020.0002] # MYANMAR VOWEL SIGN I
+1071 ; [.2F63.0020.0002] # MYANMAR VOWEL SIGN GEBA KAREN I
+102E ; [.2F64.0020.0002] # MYANMAR VOWEL SIGN II
+1033 ; [.2F65.0020.0002] # MYANMAR VOWEL SIGN MON II
+102F ; [.2F66.0020.0002] # MYANMAR VOWEL SIGN U
+1073 ; [.2F67.0020.0002] # MYANMAR VOWEL SIGN KAYAH U
+1074 ; [.2F68.0020.0002] # MYANMAR VOWEL SIGN KAYAH EE
+1030 ; [.2F69.0020.0002] # MYANMAR VOWEL SIGN UU
+1056 ; [.2F6A.0020.0002] # MYANMAR VOWEL SIGN VOCALIC R
+1057 ; [.2F6B.0020.0002] # MYANMAR VOWEL SIGN VOCALIC RR
+1058 ; [.2F6C.0020.0002] # MYANMAR VOWEL SIGN VOCALIC L
+1059 ; [.2F6D.0020.0002] # MYANMAR VOWEL SIGN VOCALIC LL
+1031 ; [.2F6E.0020.0002] # MYANMAR VOWEL SIGN E
+1084 ; [.2F6F.0020.0002] # MYANMAR VOWEL SIGN SHAN E
+1035 ; [.2F70.0020.0002] # MYANMAR VOWEL SIGN E ABOVE
+1085 ; [.2F71.0020.0002] # MYANMAR VOWEL SIGN SHAN E ABOVE
+1032 ; [.2F72.0020.0002] # MYANMAR VOWEL SIGN AI
+109D ; [.2F73.0020.0002] # MYANMAR VOWEL SIGN AITON AI
+1034 ; [.2F74.0020.0002] # MYANMAR VOWEL SIGN MON O
+1062 ; [.2F75.0020.0002] # MYANMAR VOWEL SIGN SGAW KAREN EU
+1067 ; [.2F76.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN EU
+1068 ; [.2F77.0020.0002] # MYANMAR VOWEL SIGN WESTERN PWO KAREN UE
+A9E5 ; [.2F78.0020.0002] # MYANMAR SIGN SHAN SAW
+1086 ; [.2F79.0020.0002] # MYANMAR VOWEL SIGN SHAN FINAL Y
+1039 ; [.2F7A.0020.0002] # MYANMAR SIGN VIRAMA
+103A ; [.2F7B.0020.0002] # MYANMAR SIGN ASAT
+1063 ; [.2F7C.0020.0002] # MYANMAR TONE MARK SGAW KAREN HATHI
+1064 ; [.2F7D.0020.0002] # MYANMAR TONE MARK SGAW KAREN KE PHO
+1069 ; [.2F7E.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-1
+106A ; [.2F7F.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-2
+106B ; [.2F80.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-3
+106C ; [.2F81.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-4
+106D ; [.2F82.0020.0002] # MYANMAR SIGN WESTERN PWO KAREN TONE-5
+1087 ; [.2F83.0020.0002] # MYANMAR SIGN SHAN TONE-2
+108B ; [.2F84.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-2
+1088 ; [.2F85.0020.0002] # MYANMAR SIGN SHAN TONE-3
+108C ; [.2F86.0020.0002] # MYANMAR SIGN SHAN COUNCIL TONE-3
+108D ; [.2F87.0020.0002] # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+1089 ; [.2F88.0020.0002] # MYANMAR SIGN SHAN TONE-5
+108A ; [.2F89.0020.0002] # MYANMAR SIGN SHAN TONE-6
+108F ; [.2F8A.0020.0002] # MYANMAR SIGN RUMAI PALAUNG TONE-5
+109A ; [.2F8B.0020.0002] # MYANMAR SIGN KHAMTI TONE-1
+109B ; [.2F8C.0020.0002] # MYANMAR SIGN KHAMTI TONE-3
+AA7B ; [.2F8D.0020.0002] # MYANMAR SIGN PAO KAREN TONE
+AA7C ; [.2F8E.0020.0002] # MYANMAR SIGN TAI LAING TONE-2
+AA7D ; [.2F8F.0020.0002] # MYANMAR SIGN TAI LAING TONE-5
+AA74 ; [.2F90.0020.0002] # MYANMAR LOGOGRAM KHAMTI OAY
+AA75 ; [.2F91.0020.0002] # MYANMAR LOGOGRAM KHAMTI QN
+AA76 ; [.2F92.0020.0002] # MYANMAR LOGOGRAM KHAMTI HM
+11103 ; [.2F93.0020.0002] # CHAKMA LETTER AA
+11104 ; [.2F94.0020.0002] # CHAKMA LETTER I
+11105 ; [.2F95.0020.0002] # CHAKMA LETTER U
+11106 ; [.2F96.0020.0002] # CHAKMA LETTER E
+11107 ; [.2F97.0020.0002] # CHAKMA LETTER KAA
+11108 ; [.2F98.0020.0002] # CHAKMA LETTER KHAA
+11109 ; [.2F99.0020.0002] # CHAKMA LETTER GAA
+1110A ; [.2F9A.0020.0002] # CHAKMA LETTER GHAA
+1110B ; [.2F9B.0020.0002] # CHAKMA LETTER NGAA
+1110C ; [.2F9C.0020.0002] # CHAKMA LETTER CAA
+1110D ; [.2F9D.0020.0002] # CHAKMA LETTER CHAA
+1110E ; [.2F9E.0020.0002] # CHAKMA LETTER JAA
+1110F ; [.2F9F.0020.0002] # CHAKMA LETTER JHAA
+11110 ; [.2FA0.0020.0002] # CHAKMA LETTER NYAA
+11111 ; [.2FA1.0020.0002] # CHAKMA LETTER TTAA
+11112 ; [.2FA2.0020.0002] # CHAKMA LETTER TTHAA
+11113 ; [.2FA3.0020.0002] # CHAKMA LETTER DDAA
+11114 ; [.2FA4.0020.0002] # CHAKMA LETTER DDHAA
+11115 ; [.2FA5.0020.0002] # CHAKMA LETTER NNAA
+11116 ; [.2FA6.0020.0002] # CHAKMA LETTER TAA
+11117 ; [.2FA7.0020.0002] # CHAKMA LETTER THAA
+11118 ; [.2FA8.0020.0002] # CHAKMA LETTER DAA
+11119 ; [.2FA9.0020.0002] # CHAKMA LETTER DHAA
+1111A ; [.2FAA.0020.0002] # CHAKMA LETTER NAA
+1111B ; [.2FAB.0020.0002] # CHAKMA LETTER PAA
+1111C ; [.2FAC.0020.0002] # CHAKMA LETTER PHAA
+1111D ; [.2FAD.0020.0002] # CHAKMA LETTER BAA
+1111E ; [.2FAE.0020.0002] # CHAKMA LETTER BHAA
+1111F ; [.2FAF.0020.0002] # CHAKMA LETTER MAA
+11120 ; [.2FB0.0020.0002] # CHAKMA LETTER YYAA
+11121 ; [.2FB1.0020.0002] # CHAKMA LETTER YAA
+11122 ; [.2FB2.0020.0002] # CHAKMA LETTER RAA
+11123 ; [.2FB3.0020.0002] # CHAKMA LETTER LAA
+11124 ; [.2FB4.0020.0002] # CHAKMA LETTER WAA
+11125 ; [.2FB5.0020.0002] # CHAKMA LETTER SAA
+11126 ; [.2FB6.0020.0002] # CHAKMA LETTER HAA
+11127 ; [.2FB7.0020.0002] # CHAKMA VOWEL SIGN A
+11128 ; [.2FB8.0020.0002] # CHAKMA VOWEL SIGN I
+11129 ; [.2FB9.0020.0002] # CHAKMA VOWEL SIGN II
+1112A ; [.2FBA.0020.0002] # CHAKMA VOWEL SIGN U
+1112B ; [.2FBB.0020.0002] # CHAKMA VOWEL SIGN UU
+1112C ; [.2FBC.0020.0002] # CHAKMA VOWEL SIGN E
+1112D ; [.2FBD.0020.0002] # CHAKMA VOWEL SIGN AI
+1112E ; [.2FBE.0020.0002] # CHAKMA VOWEL SIGN O
+11131 11127 ; [.2FBE.0020.0002] # CHAKMA VOWEL SIGN O
+1112F ; [.2FBF.0020.0002] # CHAKMA VOWEL SIGN AU
+11132 11127 ; [.2FBF.0020.0002] # CHAKMA VOWEL SIGN AU
+11130 ; [.2FC0.0020.0002] # CHAKMA VOWEL SIGN OI
+11131 ; [.2FC1.0020.0002] # CHAKMA O MARK
+11132 ; [.2FC2.0020.0002] # CHAKMA AU MARK
+11133 ; [.2FC3.0020.0002] # CHAKMA VIRAMA
+11134 ; [.2FC4.0020.0002] # CHAKMA MAAYYAA
+1780 ; [.2FC5.0020.0002] # KHMER LETTER KA
+1781 ; [.2FC6.0020.0002] # KHMER LETTER KHA
+1782 ; [.2FC7.0020.0002] # KHMER LETTER KO
+1783 ; [.2FC8.0020.0002] # KHMER LETTER KHO
+1784 ; [.2FC9.0020.0002] # KHMER LETTER NGO
+1785 ; [.2FCA.0020.0002] # KHMER LETTER CA
+1786 ; [.2FCB.0020.0002] # KHMER LETTER CHA
+1787 ; [.2FCC.0020.0002] # KHMER LETTER CO
+1788 ; [.2FCD.0020.0002] # KHMER LETTER CHO
+1789 ; [.2FCE.0020.0002] # KHMER LETTER NYO
+178A ; [.2FCF.0020.0002] # KHMER LETTER DA
+178B ; [.2FD0.0020.0002] # KHMER LETTER TTHA
+178C ; [.2FD1.0020.0002] # KHMER LETTER DO
+178D ; [.2FD2.0020.0002] # KHMER LETTER TTHO
+178E ; [.2FD3.0020.0002] # KHMER LETTER NNO
+178F ; [.2FD4.0020.0002] # KHMER LETTER TA
+1790 ; [.2FD5.0020.0002] # KHMER LETTER THA
+1791 ; [.2FD6.0020.0002] # KHMER LETTER TO
+1792 ; [.2FD7.0020.0002] # KHMER LETTER THO
+1793 ; [.2FD8.0020.0002] # KHMER LETTER NO
+1794 ; [.2FD9.0020.0002] # KHMER LETTER BA
+1795 ; [.2FDA.0020.0002] # KHMER LETTER PHA
+1796 ; [.2FDB.0020.0002] # KHMER LETTER PO
+1797 ; [.2FDC.0020.0002] # KHMER LETTER PHO
+1798 ; [.2FDD.0020.0002] # KHMER LETTER MO
+1799 ; [.2FDE.0020.0002] # KHMER LETTER YO
+179A ; [.2FDF.0020.0002] # KHMER LETTER RO
+179B ; [.2FE0.0020.0002] # KHMER LETTER LO
+179C ; [.2FE1.0020.0002] # KHMER LETTER VO
+179D ; [.2FE2.0020.0002] # KHMER LETTER SHA
+179E ; [.2FE3.0020.0002] # KHMER LETTER SSO
+179F ; [.2FE4.0020.0002] # KHMER LETTER SA
+17A0 ; [.2FE5.0020.0002] # KHMER LETTER HA
+17A1 ; [.2FE6.0020.0002] # KHMER LETTER LA
+17A2 ; [.2FE7.0020.0002] # KHMER LETTER QA
+17DC ; [.2FE8.0020.0002] # KHMER SIGN AVAKRAHASANYA
+17A3 ; [.2FE9.0020.0002] # KHMER INDEPENDENT VOWEL QAQ
+17A4 ; [.2FEA.0020.0002] # KHMER INDEPENDENT VOWEL QAA
+17A5 ; [.2FEB.0020.0002] # KHMER INDEPENDENT VOWEL QI
+17A6 ; [.2FEC.0020.0002] # KHMER INDEPENDENT VOWEL QII
+17A7 ; [.2FED.0020.0002] # KHMER INDEPENDENT VOWEL QU
+17A8 ; [.2FEE.0020.0002] # KHMER INDEPENDENT VOWEL QUK
+17A9 ; [.2FEF.0020.0002] # KHMER INDEPENDENT VOWEL QUU
+17AA ; [.2FF0.0020.0002] # KHMER INDEPENDENT VOWEL QUUV
+17AB ; [.2FF1.0020.0002] # KHMER INDEPENDENT VOWEL RY
+17AC ; [.2FF2.0020.0002] # KHMER INDEPENDENT VOWEL RYY
+17AD ; [.2FF3.0020.0002] # KHMER INDEPENDENT VOWEL LY
+17AE ; [.2FF4.0020.0002] # KHMER INDEPENDENT VOWEL LYY
+17AF ; [.2FF5.0020.0002] # KHMER INDEPENDENT VOWEL QE
+17B0 ; [.2FF6.0020.0002] # KHMER INDEPENDENT VOWEL QAI
+17B1 ; [.2FF7.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE ONE
+17B2 ; [.2FF8.0020.0002] # KHMER INDEPENDENT VOWEL QOO TYPE TWO
+17B3 ; [.2FF9.0020.0002] # KHMER INDEPENDENT VOWEL QAU
+17B6 ; [.2FFA.0020.0002] # KHMER VOWEL SIGN AA
+17B7 ; [.2FFB.0020.0002] # KHMER VOWEL SIGN I
+17B8 ; [.2FFC.0020.0002] # KHMER VOWEL SIGN II
+17B9 ; [.2FFD.0020.0002] # KHMER VOWEL SIGN Y
+17BA ; [.2FFE.0020.0002] # KHMER VOWEL SIGN YY
+17BB ; [.2FFF.0020.0002] # KHMER VOWEL SIGN U
+17BC ; [.3000.0020.0002] # KHMER VOWEL SIGN UU
+17BD ; [.3001.0020.0002] # KHMER VOWEL SIGN UA
+17BE ; [.3002.0020.0002] # KHMER VOWEL SIGN OE
+17BF ; [.3003.0020.0002] # KHMER VOWEL SIGN YA
+17C0 ; [.3004.0020.0002] # KHMER VOWEL SIGN IE
+17C1 ; [.3005.0020.0002] # KHMER VOWEL SIGN E
+17C2 ; [.3006.0020.0002] # KHMER VOWEL SIGN AE
+17C3 ; [.3007.0020.0002] # KHMER VOWEL SIGN AI
+17C4 ; [.3008.0020.0002] # KHMER VOWEL SIGN OO
+17C5 ; [.3009.0020.0002] # KHMER VOWEL SIGN AU
+17D2 ; [.300A.0020.0002] # KHMER SIGN COENG
+1950 ; [.300B.0020.0002] # TAI LE LETTER KA
+1951 ; [.300C.0020.0002] # TAI LE LETTER XA
+1952 ; [.300D.0020.0002] # TAI LE LETTER NGA
+1953 ; [.300E.0020.0002] # TAI LE LETTER TSA
+1954 ; [.300F.0020.0002] # TAI LE LETTER SA
+1955 ; [.3010.0020.0002] # TAI LE LETTER YA
+1956 ; [.3011.0020.0002] # TAI LE LETTER TA
+1957 ; [.3012.0020.0002] # TAI LE LETTER THA
+1958 ; [.3013.0020.0002] # TAI LE LETTER LA
+1959 ; [.3014.0020.0002] # TAI LE LETTER PA
+195A ; [.3015.0020.0002] # TAI LE LETTER PHA
+195B ; [.3016.0020.0002] # TAI LE LETTER MA
+195C ; [.3017.0020.0002] # TAI LE LETTER FA
+195D ; [.3018.0020.0002] # TAI LE LETTER VA
+195E ; [.3019.0020.0002] # TAI LE LETTER HA
+195F ; [.301A.0020.0002] # TAI LE LETTER QA
+1960 ; [.301B.0020.0002] # TAI LE LETTER KHA
+1961 ; [.301C.0020.0002] # TAI LE LETTER TSHA
+1962 ; [.301D.0020.0002] # TAI LE LETTER NA
+1963 ; [.301E.0020.0002] # TAI LE LETTER A
+1964 ; [.301F.0020.0002] # TAI LE LETTER I
+1965 ; [.3020.0020.0002] # TAI LE LETTER EE
+1966 ; [.3021.0020.0002] # TAI LE LETTER EH
+1967 ; [.3022.0020.0002] # TAI LE LETTER U
+1968 ; [.3023.0020.0002] # TAI LE LETTER OO
+1969 ; [.3024.0020.0002] # TAI LE LETTER O
+196A ; [.3025.0020.0002] # TAI LE LETTER UE
+196B ; [.3026.0020.0002] # TAI LE LETTER E
+196C ; [.3027.0020.0002] # TAI LE LETTER AUE
+196D ; [.3028.0020.0002] # TAI LE LETTER AI
+1970 ; [.3029.0020.0002] # TAI LE LETTER TONE-2
+1971 ; [.302A.0020.0002] # TAI LE LETTER TONE-3
+1972 ; [.302B.0020.0002] # TAI LE LETTER TONE-4
+1973 ; [.302C.0020.0002] # TAI LE LETTER TONE-5
+1974 ; [.302D.0020.0002] # TAI LE LETTER TONE-6
+1980 ; [.302E.0020.0002] # NEW TAI LUE LETTER HIGH QA
+19B5 1980 ; [.302E.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH QA>
+19B6 1980 ; [.302E.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH QA>
+19B7 1980 ; [.302E.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH QA>
+19BA 1980 ; [.302E.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH QA>
+1981 ; [.302F.0020.0002] # NEW TAI LUE LETTER LOW QA
+19B5 1981 ; [.302F.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW QA>
+19B6 1981 ; [.302F.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW QA>
+19B7 1981 ; [.302F.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW QA>
+19BA 1981 ; [.302F.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW QA>
+1982 ; [.3030.0020.0002] # NEW TAI LUE LETTER HIGH KA
+19B5 1982 ; [.3030.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH KA>
+19B6 1982 ; [.3030.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH KA>
+19B7 1982 ; [.3030.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH KA>
+19BA 1982 ; [.3030.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH KA>
+1983 ; [.3031.0020.0002] # NEW TAI LUE LETTER HIGH XA
+19B5 1983 ; [.3031.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH XA>
+19B6 1983 ; [.3031.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH XA>
+19B7 1983 ; [.3031.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH XA>
+19BA 1983 ; [.3031.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH XA>
+1984 ; [.3032.0020.0002] # NEW TAI LUE LETTER HIGH NGA
+19B5 1984 ; [.3032.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH NGA>
+19B6 1984 ; [.3032.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH NGA>
+19B7 1984 ; [.3032.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH NGA>
+19BA 1984 ; [.3032.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH NGA>
+1985 ; [.3033.0020.0002] # NEW TAI LUE LETTER LOW KA
+19B5 1985 ; [.3033.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW KA>
+19B6 1985 ; [.3033.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW KA>
+19B7 1985 ; [.3033.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW KA>
+19BA 1985 ; [.3033.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW KA>
+1986 ; [.3034.0020.0002] # NEW TAI LUE LETTER LOW XA
+19B5 1986 ; [.3034.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW XA>
+19B6 1986 ; [.3034.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW XA>
+19B7 1986 ; [.3034.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW XA>
+19BA 1986 ; [.3034.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW XA>
+1987 ; [.3035.0020.0002] # NEW TAI LUE LETTER LOW NGA
+19B5 1987 ; [.3035.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW NGA>
+19B6 1987 ; [.3035.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW NGA>
+19B7 1987 ; [.3035.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW NGA>
+19BA 1987 ; [.3035.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW NGA>
+1988 ; [.3036.0020.0002] # NEW TAI LUE LETTER HIGH TSA
+19B5 1988 ; [.3036.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH TSA>
+19B6 1988 ; [.3036.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH TSA>
+19B7 1988 ; [.3036.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH TSA>
+19BA 1988 ; [.3036.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH TSA>
+1989 ; [.3037.0020.0002] # NEW TAI LUE LETTER HIGH SA
+19B5 1989 ; [.3037.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH SA>
+19B6 1989 ; [.3037.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH SA>
+19B7 1989 ; [.3037.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH SA>
+19BA 1989 ; [.3037.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH SA>
+198A ; [.3038.0020.0002] # NEW TAI LUE LETTER HIGH YA
+19B5 198A ; [.3038.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH YA>
+19B6 198A ; [.3038.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH YA>
+19B7 198A ; [.3038.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH YA>
+19BA 198A ; [.3038.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH YA>
+198B ; [.3039.0020.0002] # NEW TAI LUE LETTER LOW TSA
+19B5 198B ; [.3039.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW TSA>
+19B6 198B ; [.3039.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW TSA>
+19B7 198B ; [.3039.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW TSA>
+19BA 198B ; [.3039.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW TSA>
+198C ; [.303A.0020.0002] # NEW TAI LUE LETTER LOW SA
+19B5 198C ; [.303A.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW SA>
+19B6 198C ; [.303A.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW SA>
+19B7 198C ; [.303A.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW SA>
+19BA 198C ; [.303A.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW SA>
+198D ; [.303B.0020.0002] # NEW TAI LUE LETTER LOW YA
+19B5 198D ; [.303B.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW YA>
+19B6 198D ; [.303B.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW YA>
+19B7 198D ; [.303B.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW YA>
+19BA 198D ; [.303B.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW YA>
+198E ; [.303C.0020.0002] # NEW TAI LUE LETTER HIGH TA
+19B5 198E ; [.303C.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH TA>
+19B6 198E ; [.303C.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH TA>
+19B7 198E ; [.303C.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH TA>
+19BA 198E ; [.303C.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH TA>
+198F ; [.303D.0020.0002] # NEW TAI LUE LETTER HIGH THA
+19B5 198F ; [.303D.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH THA>
+19B6 198F ; [.303D.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH THA>
+19B7 198F ; [.303D.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH THA>
+19BA 198F ; [.303D.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH THA>
+1990 ; [.303E.0020.0002] # NEW TAI LUE LETTER HIGH NA
+19B5 1990 ; [.303E.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH NA>
+19B6 1990 ; [.303E.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH NA>
+19B7 1990 ; [.303E.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH NA>
+19BA 1990 ; [.303E.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH NA>
+1991 ; [.303F.0020.0002] # NEW TAI LUE LETTER LOW TA
+19B5 1991 ; [.303F.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW TA>
+19B6 1991 ; [.303F.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW TA>
+19B7 1991 ; [.303F.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW TA>
+19BA 1991 ; [.303F.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW TA>
+1992 ; [.3040.0020.0002] # NEW TAI LUE LETTER LOW THA
+19B5 1992 ; [.3040.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW THA>
+19B6 1992 ; [.3040.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW THA>
+19B7 1992 ; [.3040.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW THA>
+19BA 1992 ; [.3040.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW THA>
+1993 ; [.3041.0020.0002] # NEW TAI LUE LETTER LOW NA
+19B5 1993 ; [.3041.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW NA>
+19B6 1993 ; [.3041.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW NA>
+19B7 1993 ; [.3041.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW NA>
+19BA 1993 ; [.3041.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW NA>
+1994 ; [.3042.0020.0002] # NEW TAI LUE LETTER HIGH PA
+19B5 1994 ; [.3042.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH PA>
+19B6 1994 ; [.3042.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH PA>
+19B7 1994 ; [.3042.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH PA>
+19BA 1994 ; [.3042.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH PA>
+1995 ; [.3043.0020.0002] # NEW TAI LUE LETTER HIGH PHA
+19B5 1995 ; [.3043.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH PHA>
+19B6 1995 ; [.3043.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH PHA>
+19B7 1995 ; [.3043.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH PHA>
+19BA 1995 ; [.3043.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH PHA>
+1996 ; [.3044.0020.0002] # NEW TAI LUE LETTER HIGH MA
+19B5 1996 ; [.3044.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH MA>
+19B6 1996 ; [.3044.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH MA>
+19B7 1996 ; [.3044.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH MA>
+19BA 1996 ; [.3044.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH MA>
+1997 ; [.3045.0020.0002] # NEW TAI LUE LETTER LOW PA
+19B5 1997 ; [.3045.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW PA>
+19B6 1997 ; [.3045.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW PA>
+19B7 1997 ; [.3045.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW PA>
+19BA 1997 ; [.3045.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW PA>
+1998 ; [.3046.0020.0002] # NEW TAI LUE LETTER LOW PHA
+19B5 1998 ; [.3046.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW PHA>
+19B6 1998 ; [.3046.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW PHA>
+19B7 1998 ; [.3046.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW PHA>
+19BA 1998 ; [.3046.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW PHA>
+1999 ; [.3047.0020.0002] # NEW TAI LUE LETTER LOW MA
+19B5 1999 ; [.3047.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW MA>
+19B6 1999 ; [.3047.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW MA>
+19B7 1999 ; [.3047.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW MA>
+19BA 1999 ; [.3047.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW MA>
+199A ; [.3048.0020.0002] # NEW TAI LUE LETTER HIGH FA
+19B5 199A ; [.3048.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH FA>
+19B6 199A ; [.3048.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH FA>
+19B7 199A ; [.3048.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH FA>
+19BA 199A ; [.3048.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH FA>
+199B ; [.3049.0020.0002] # NEW TAI LUE LETTER HIGH VA
+19B5 199B ; [.3049.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH VA>
+19B6 199B ; [.3049.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH VA>
+19B7 199B ; [.3049.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH VA>
+19BA 199B ; [.3049.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH VA>
+199C ; [.304A.0020.0002] # NEW TAI LUE LETTER HIGH LA
+19B5 199C ; [.304A.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH LA>
+19B6 199C ; [.304A.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH LA>
+19DE ; [.304A.0020.0004][.3060.0020.0004] # NEW TAI LUE SIGN LAE
+19DF ; [.304A.0020.0004][.3060.0020.0004][.306B.0020.0004] # NEW TAI LUE SIGN LAEV
+19B7 199C ; [.304A.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH LA>
+19BA 199C ; [.304A.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH LA>
+199D ; [.304B.0020.0002] # NEW TAI LUE LETTER LOW FA
+19B5 199D ; [.304B.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW FA>
+19B6 199D ; [.304B.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW FA>
+19B7 199D ; [.304B.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW FA>
+19BA 199D ; [.304B.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW FA>
+199E ; [.304C.0020.0002] # NEW TAI LUE LETTER LOW VA
+19B5 199E ; [.304C.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW VA>
+19B6 199E ; [.304C.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW VA>
+19B7 199E ; [.304C.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW VA>
+19BA 199E ; [.304C.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW VA>
+199F ; [.304D.0020.0002] # NEW TAI LUE LETTER LOW LA
+19B5 199F ; [.304D.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW LA>
+19B6 199F ; [.304D.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW LA>
+19B7 199F ; [.304D.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW LA>
+19BA 199F ; [.304D.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW LA>
+19A0 ; [.304E.0020.0002] # NEW TAI LUE LETTER HIGH HA
+19B5 19A0 ; [.304E.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH HA>
+19B6 19A0 ; [.304E.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH HA>
+19B7 19A0 ; [.304E.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH HA>
+19BA 19A0 ; [.304E.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH HA>
+19A1 ; [.304F.0020.0002] # NEW TAI LUE LETTER HIGH DA
+19B5 19A1 ; [.304F.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH DA>
+19B6 19A1 ; [.304F.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH DA>
+19B7 19A1 ; [.304F.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH DA>
+19BA 19A1 ; [.304F.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH DA>
+19A2 ; [.3050.0020.0002] # NEW TAI LUE LETTER HIGH BA
+19B5 19A2 ; [.3050.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH BA>
+19B6 19A2 ; [.3050.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH BA>
+19B7 19A2 ; [.3050.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH BA>
+19BA 19A2 ; [.3050.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH BA>
+19A3 ; [.3051.0020.0002] # NEW TAI LUE LETTER LOW HA
+19B5 19A3 ; [.3051.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW HA>
+19B6 19A3 ; [.3051.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW HA>
+19B7 19A3 ; [.3051.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW HA>
+19BA 19A3 ; [.3051.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW HA>
+19A4 ; [.3052.0020.0002] # NEW TAI LUE LETTER LOW DA
+19B5 19A4 ; [.3052.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW DA>
+19B6 19A4 ; [.3052.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW DA>
+19B7 19A4 ; [.3052.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW DA>
+19BA 19A4 ; [.3052.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW DA>
+19A5 ; [.3053.0020.0002] # NEW TAI LUE LETTER LOW BA
+19B5 19A5 ; [.3053.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW BA>
+19B6 19A5 ; [.3053.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW BA>
+19B7 19A5 ; [.3053.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW BA>
+19BA 19A5 ; [.3053.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW BA>
+19A6 ; [.3054.0020.0002] # NEW TAI LUE LETTER HIGH KVA
+19B5 19A6 ; [.3054.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH KVA>
+19B6 19A6 ; [.3054.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH KVA>
+19B7 19A6 ; [.3054.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH KVA>
+19BA 19A6 ; [.3054.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH KVA>
+19A7 ; [.3055.0020.0002] # NEW TAI LUE LETTER HIGH XVA
+19B5 19A7 ; [.3055.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH XVA>
+19B6 19A7 ; [.3055.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH XVA>
+19B7 19A7 ; [.3055.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH XVA>
+19BA 19A7 ; [.3055.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH XVA>
+19A8 ; [.3056.0020.0002] # NEW TAI LUE LETTER LOW KVA
+19B5 19A8 ; [.3056.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW KVA>
+19B6 19A8 ; [.3056.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW KVA>
+19B7 19A8 ; [.3056.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW KVA>
+19BA 19A8 ; [.3056.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW KVA>
+19A9 ; [.3057.0020.0002] # NEW TAI LUE LETTER LOW XVA
+19B5 19A9 ; [.3057.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW XVA>
+19B6 19A9 ; [.3057.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW XVA>
+19B7 19A9 ; [.3057.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW XVA>
+19BA 19A9 ; [.3057.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW XVA>
+19AA ; [.3058.0020.0002] # NEW TAI LUE LETTER HIGH SUA
+19B5 19AA ; [.3058.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER HIGH SUA>
+19B6 19AA ; [.3058.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER HIGH SUA>
+19B7 19AA ; [.3058.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER HIGH SUA>
+19BA 19AA ; [.3058.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER HIGH SUA>
+19AB ; [.3059.0020.0002] # NEW TAI LUE LETTER LOW SUA
+19B5 19AB ; [.3059.0020.0002][.305F.0020.0002] # <NEW TAI LUE VOWEL SIGN E, NEW TAI LUE LETTER LOW SUA>
+19B6 19AB ; [.3059.0020.0002][.3060.0020.0002] # <NEW TAI LUE VOWEL SIGN AE, NEW TAI LUE LETTER LOW SUA>
+19B7 19AB ; [.3059.0020.0002][.3061.0020.0002] # <NEW TAI LUE VOWEL SIGN O, NEW TAI LUE LETTER LOW SUA>
+19BA 19AB ; [.3059.0020.0002][.3064.0020.0002] # <NEW TAI LUE VOWEL SIGN AY, NEW TAI LUE LETTER LOW SUA>
+19B0 ; [.305A.0020.0002] # NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
+19B1 ; [.305B.0020.0002] # NEW TAI LUE VOWEL SIGN AA
+19B2 ; [.305C.0020.0002] # NEW TAI LUE VOWEL SIGN II
+19B3 ; [.305D.0020.0002] # NEW TAI LUE VOWEL SIGN U
+19B4 ; [.305E.0020.0002] # NEW TAI LUE VOWEL SIGN UU
+19B5 ; [.305F.0020.0002] # NEW TAI LUE VOWEL SIGN E
+19B6 ; [.3060.0020.0002] # NEW TAI LUE VOWEL SIGN AE
+19B7 ; [.3061.0020.0002] # NEW TAI LUE VOWEL SIGN O
+19B8 ; [.3062.0020.0002] # NEW TAI LUE VOWEL SIGN OA
+19B9 ; [.3063.0020.0002] # NEW TAI LUE VOWEL SIGN UE
+19BA ; [.3064.0020.0002] # NEW TAI LUE VOWEL SIGN AY
+19BB ; [.3065.0020.0002] # NEW TAI LUE VOWEL SIGN AAY
+19BC ; [.3066.0020.0002] # NEW TAI LUE VOWEL SIGN UY
+19BD ; [.3067.0020.0002] # NEW TAI LUE VOWEL SIGN OY
+19BE ; [.3068.0020.0002] # NEW TAI LUE VOWEL SIGN OAY
+19BF ; [.3069.0020.0002] # NEW TAI LUE VOWEL SIGN UEY
+19C0 ; [.306A.0020.0002] # NEW TAI LUE VOWEL SIGN IY
+19C1 ; [.306B.0020.0002] # NEW TAI LUE LETTER FINAL V
+19C2 ; [.306C.0020.0002] # NEW TAI LUE LETTER FINAL NG
+19C3 ; [.306D.0020.0002] # NEW TAI LUE LETTER FINAL N
+19C4 ; [.306E.0020.0002] # NEW TAI LUE LETTER FINAL M
+19C5 ; [.306F.0020.0002] # NEW TAI LUE LETTER FINAL K
+19C6 ; [.3070.0020.0002] # NEW TAI LUE LETTER FINAL D
+19C7 ; [.3071.0020.0002] # NEW TAI LUE LETTER FINAL B
+19C8 ; [.3072.0020.0002] # NEW TAI LUE TONE MARK-1
+19C9 ; [.3073.0020.0002] # NEW TAI LUE TONE MARK-2
+1A20 ; [.3074.0020.0002] # TAI THAM LETTER HIGH KA
+1A21 ; [.3075.0020.0002] # TAI THAM LETTER HIGH KHA
+1A22 ; [.3076.0020.0002] # TAI THAM LETTER HIGH KXA
+1A23 ; [.3077.0020.0002] # TAI THAM LETTER LOW KA
+1A24 ; [.3078.0020.0002] # TAI THAM LETTER LOW KXA
+1A25 ; [.3079.0020.0002] # TAI THAM LETTER LOW KHA
+1A26 ; [.307A.0020.0002] # TAI THAM LETTER NGA
+1A58 ; [.307A.0020.0004] # TAI THAM SIGN MAI KANG LAI
+1A59 ; [.307A.0020.0004] # TAI THAM CONSONANT SIGN FINAL NGA
+1A27 ; [.307B.0020.0002] # TAI THAM LETTER HIGH CA
+1A28 ; [.307C.0020.0002] # TAI THAM LETTER HIGH CHA
+1A29 ; [.307D.0020.0002] # TAI THAM LETTER LOW CA
+1A2A ; [.307E.0020.0002] # TAI THAM LETTER LOW SA
+1A2B ; [.307F.0020.0002] # TAI THAM LETTER LOW CHA
+1A2C ; [.3080.0020.0002] # TAI THAM LETTER NYA
+1A2D ; [.3081.0020.0002] # TAI THAM LETTER RATA
+1A2E ; [.3082.0020.0002] # TAI THAM LETTER HIGH RATHA
+1A2F ; [.3083.0020.0002] # TAI THAM LETTER DA
+1A30 ; [.3084.0020.0002] # TAI THAM LETTER LOW RATHA
+1A31 ; [.3085.0020.0002] # TAI THAM LETTER RANA
+1A32 ; [.3086.0020.0002] # TAI THAM LETTER HIGH TA
+1A33 ; [.3087.0020.0002] # TAI THAM LETTER HIGH THA
+1A34 ; [.3088.0020.0002] # TAI THAM LETTER LOW TA
+1A35 ; [.3089.0020.0002] # TAI THAM LETTER LOW THA
+1A36 ; [.308A.0020.0002] # TAI THAM LETTER NA
+1A37 ; [.308B.0020.0002] # TAI THAM LETTER BA
+1A38 ; [.308C.0020.0002] # TAI THAM LETTER HIGH PA
+1A39 ; [.308D.0020.0002] # TAI THAM LETTER HIGH PHA
+1A3A ; [.308E.0020.0002] # TAI THAM LETTER HIGH FA
+1A3B ; [.308F.0020.0002] # TAI THAM LETTER LOW PA
+1A5A ; [.308F.0020.0004] # TAI THAM CONSONANT SIGN LOW PA
+1A5B ; [.308F.0020.0004] # TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
+1A3C ; [.3090.0020.0002] # TAI THAM LETTER LOW FA
+1A3D ; [.3091.0020.0002] # TAI THAM LETTER LOW PHA
+1A3E ; [.3092.0020.0002] # TAI THAM LETTER MA
+1A3F ; [.3093.0020.0002] # TAI THAM LETTER LOW YA
+1A40 ; [.3094.0020.0002] # TAI THAM LETTER HIGH YA
+1A41 ; [.3095.0020.0002] # TAI THAM LETTER RA
+1A42 ; [.3096.0020.0002] # TAI THAM LETTER RUE
+1A43 ; [.3097.0020.0002] # TAI THAM LETTER LA
+1A44 ; [.3098.0020.0002] # TAI THAM LETTER LUE
+1A45 ; [.3099.0020.0002] # TAI THAM LETTER WA
+1A46 ; [.309A.0020.0002] # TAI THAM LETTER HIGH SHA
+1A54 ; [.309A.0020.0004][.30C0.0020.0004][.309A.0020.0004] # TAI THAM LETTER GREAT SA
+1A47 ; [.309B.0020.0002] # TAI THAM LETTER HIGH SSA
+1A48 ; [.309C.0020.0002] # TAI THAM LETTER HIGH SA
+1A49 ; [.309D.0020.0002] # TAI THAM LETTER HIGH HA
+1A4A ; [.309E.0020.0002] # TAI THAM LETTER LLA
+1A4B ; [.309F.0020.0002] # TAI THAM LETTER A
+1A4C ; [.30A0.0020.0002] # TAI THAM LETTER LOW HA
+1A53 ; [.30A1.0020.0002] # TAI THAM LETTER LAE
+1A6B ; [.30A2.0020.0002] # TAI THAM VOWEL SIGN O
+1A55 ; [.30A3.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL RA
+1A56 ; [.30A4.0020.0002] # TAI THAM CONSONANT SIGN MEDIAL LA
+1A57 ; [.30A5.0020.0002] # TAI THAM CONSONANT SIGN LA TANG LAI
+1A5C ; [.30A6.0020.0002] # TAI THAM CONSONANT SIGN MA
+1A5D ; [.30A7.0020.0002] # TAI THAM CONSONANT SIGN BA
+1A5E ; [.30A8.0020.0002] # TAI THAM CONSONANT SIGN SA
+1A4D ; [.30A9.0020.0002] # TAI THAM LETTER I
+1A4E ; [.30AA.0020.0002] # TAI THAM LETTER II
+1A4F ; [.30AB.0020.0002] # TAI THAM LETTER U
+1A50 ; [.30AC.0020.0002] # TAI THAM LETTER UU
+1A51 ; [.30AD.0020.0002] # TAI THAM LETTER EE
+1A52 ; [.30AE.0020.0002] # TAI THAM LETTER OO
+1A61 ; [.30AF.0020.0002] # TAI THAM VOWEL SIGN A
+1A6C ; [.30B0.0020.0002] # TAI THAM VOWEL SIGN OA BELOW
+1A62 ; [.30B1.0020.0002] # TAI THAM VOWEL SIGN MAI SAT
+1A63 ; [.30B2.0020.0002] # TAI THAM VOWEL SIGN AA
+1A64 ; [.30B2.0020.0004] # TAI THAM VOWEL SIGN TALL AA
+1A65 ; [.30B3.0020.0002] # TAI THAM VOWEL SIGN I
+1A66 ; [.30B4.0020.0002] # TAI THAM VOWEL SIGN II
+1A67 ; [.30B5.0020.0002] # TAI THAM VOWEL SIGN UE
+1A68 ; [.30B6.0020.0002] # TAI THAM VOWEL SIGN UUE
+1A69 ; [.30B7.0020.0002] # TAI THAM VOWEL SIGN U
+1A6A ; [.30B8.0020.0002] # TAI THAM VOWEL SIGN UU
+1A6E ; [.30B9.0020.0002] # TAI THAM VOWEL SIGN E
+1A6F ; [.30BA.0020.0002] # TAI THAM VOWEL SIGN AE
+1A73 ; [.30BB.0020.0002] # TAI THAM VOWEL SIGN OA ABOVE
+1A70 ; [.30BC.0020.0002] # TAI THAM VOWEL SIGN OO
+1A71 ; [.30BD.0020.0002] # TAI THAM VOWEL SIGN AI
+1A72 ; [.30BE.0020.0002] # TAI THAM VOWEL SIGN THAM AI
+1A6D ; [.30BF.0020.0002] # TAI THAM VOWEL SIGN OY
+1A60 ; [.30C0.0020.0002] # TAI THAM SIGN SAKOT
+AA00 ; [.30C1.0020.0002] # CHAM LETTER A
+AA01 ; [.30C2.0020.0002] # CHAM LETTER I
+AA02 ; [.30C3.0020.0002] # CHAM LETTER U
+AA03 ; [.30C4.0020.0002] # CHAM LETTER E
+AA04 ; [.30C5.0020.0002] # CHAM LETTER AI
+AA05 ; [.30C6.0020.0002] # CHAM LETTER O
+AA06 ; [.30C7.0020.0002] # CHAM LETTER KA
+AA07 ; [.30C8.0020.0002] # CHAM LETTER KHA
+AA08 ; [.30C9.0020.0002] # CHAM LETTER GA
+AA09 ; [.30CA.0020.0002] # CHAM LETTER GHA
+AA0A ; [.30CB.0020.0002] # CHAM LETTER NGUE
+AA0B ; [.30CC.0020.0002] # CHAM LETTER NGA
+AA0C ; [.30CD.0020.0002] # CHAM LETTER CHA
+AA0D ; [.30CE.0020.0002] # CHAM LETTER CHHA
+AA0E ; [.30CF.0020.0002] # CHAM LETTER JA
+AA0F ; [.30D0.0020.0002] # CHAM LETTER JHA
+AA10 ; [.30D1.0020.0002] # CHAM LETTER NHUE
+AA11 ; [.30D2.0020.0002] # CHAM LETTER NHA
+AA12 ; [.30D3.0020.0002] # CHAM LETTER NHJA
+AA13 ; [.30D4.0020.0002] # CHAM LETTER TA
+AA14 ; [.30D5.0020.0002] # CHAM LETTER THA
+AA15 ; [.30D6.0020.0002] # CHAM LETTER DA
+AA16 ; [.30D7.0020.0002] # CHAM LETTER DHA
+AA17 ; [.30D8.0020.0002] # CHAM LETTER NUE
+AA18 ; [.30D9.0020.0002] # CHAM LETTER NA
+AA19 ; [.30DA.0020.0002] # CHAM LETTER DDA
+AA1A ; [.30DB.0020.0002] # CHAM LETTER PA
+AA1B ; [.30DC.0020.0002] # CHAM LETTER PPA
+AA1C ; [.30DD.0020.0002] # CHAM LETTER PHA
+AA1D ; [.30DE.0020.0002] # CHAM LETTER BA
+AA1E ; [.30DF.0020.0002] # CHAM LETTER BHA
+AA1F ; [.30E0.0020.0002] # CHAM LETTER MUE
+AA20 ; [.30E1.0020.0002] # CHAM LETTER MA
+AA21 ; [.30E2.0020.0002] # CHAM LETTER BBA
+AA22 ; [.30E3.0020.0002] # CHAM LETTER YA
+AA23 ; [.30E4.0020.0002] # CHAM LETTER RA
+AA24 ; [.30E5.0020.0002] # CHAM LETTER LA
+AA25 ; [.30E6.0020.0002] # CHAM LETTER VA
+AA26 ; [.30E7.0020.0002] # CHAM LETTER SSA
+AA27 ; [.30E8.0020.0002] # CHAM LETTER SA
+AA28 ; [.30E9.0020.0002] # CHAM LETTER HA
+AA33 ; [.30EA.0020.0002] # CHAM CONSONANT SIGN YA
+AA34 ; [.30EB.0020.0002] # CHAM CONSONANT SIGN RA
+AA35 ; [.30EC.0020.0002] # CHAM CONSONANT SIGN LA
+AA36 ; [.30ED.0020.0002] # CHAM CONSONANT SIGN WA
+AA29 ; [.30EE.0020.0002] # CHAM VOWEL SIGN AA
+AA2A ; [.30EF.0020.0002] # CHAM VOWEL SIGN I
+AA2B ; [.30F0.0020.0002] # CHAM VOWEL SIGN II
+AA2C ; [.30F1.0020.0002] # CHAM VOWEL SIGN EI
+AA2D ; [.30F2.0020.0002] # CHAM VOWEL SIGN U
+AA2E ; [.30F3.0020.0002] # CHAM VOWEL SIGN OE
+AA2F ; [.30F4.0020.0002] # CHAM VOWEL SIGN O
+AA30 ; [.30F5.0020.0002] # CHAM VOWEL SIGN AI
+AA31 ; [.30F6.0020.0002] # CHAM VOWEL SIGN AU
+AA32 ; [.30F7.0020.0002] # CHAM VOWEL SIGN UE
+AA40 ; [.30F8.0020.0002] # CHAM LETTER FINAL K
+AA41 ; [.30F9.0020.0002] # CHAM LETTER FINAL G
+AA42 ; [.30FA.0020.0002] # CHAM LETTER FINAL NG
+AA43 ; [.30FB.0020.0002] # CHAM CONSONANT SIGN FINAL NG
+AA44 ; [.30FC.0020.0002] # CHAM LETTER FINAL CH
+AA45 ; [.30FD.0020.0002] # CHAM LETTER FINAL T
+AA46 ; [.30FE.0020.0002] # CHAM LETTER FINAL N
+AA47 ; [.30FF.0020.0002] # CHAM LETTER FINAL P
+AA48 ; [.3100.0020.0002] # CHAM LETTER FINAL Y
+AA49 ; [.3101.0020.0002] # CHAM LETTER FINAL R
+AA4A ; [.3102.0020.0002] # CHAM LETTER FINAL L
+AA4B ; [.3103.0020.0002] # CHAM LETTER FINAL SS
+AA4C ; [.3104.0020.0002] # CHAM CONSONANT SIGN FINAL M
+AA4D ; [.3105.0020.0002] # CHAM CONSONANT SIGN FINAL H
+1B05 ; [.3106.0020.0002] # BALINESE LETTER AKARA
+1B06 ; [.3107.0020.0002] # BALINESE LETTER AKARA TEDUNG
+1B05 1B35 ; [.3107.0020.0002] # BALINESE LETTER AKARA TEDUNG
+1B07 ; [.3108.0020.0002] # BALINESE LETTER IKARA
+1B08 ; [.3109.0020.0002] # BALINESE LETTER IKARA TEDUNG
+1B07 1B35 ; [.3109.0020.0002] # BALINESE LETTER IKARA TEDUNG
+1B09 ; [.310A.0020.0002] # BALINESE LETTER UKARA
+1B0A ; [.310B.0020.0002] # BALINESE LETTER UKARA TEDUNG
+1B09 1B35 ; [.310B.0020.0002] # BALINESE LETTER UKARA TEDUNG
+1B0B ; [.310C.0020.0002] # BALINESE LETTER RA REPA
+1B0C ; [.310D.0020.0002] # BALINESE LETTER RA REPA TEDUNG
+1B0B 1B35 ; [.310D.0020.0002] # BALINESE LETTER RA REPA TEDUNG
+1B0D ; [.310E.0020.0002] # BALINESE LETTER LA LENGA
+1B0E ; [.310F.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
+1B0D 1B35 ; [.310F.0020.0002] # BALINESE LETTER LA LENGA TEDUNG
+1B0F ; [.3110.0020.0002] # BALINESE LETTER EKARA
+1B10 ; [.3111.0020.0002] # BALINESE LETTER AIKARA
+1B11 ; [.3112.0020.0002] # BALINESE LETTER OKARA
+1B12 ; [.3113.0020.0002] # BALINESE LETTER OKARA TEDUNG
+1B11 1B35 ; [.3113.0020.0002] # BALINESE LETTER OKARA TEDUNG
+1B13 ; [.3114.0020.0002] # BALINESE LETTER KA
+1B45 ; [.3115.0020.0002] # BALINESE LETTER KAF SASAK
+1B46 ; [.3116.0020.0002] # BALINESE LETTER KHOT SASAK
+1B14 ; [.3117.0020.0002] # BALINESE LETTER KA MAHAPRANA
+1B15 ; [.3118.0020.0002] # BALINESE LETTER GA
+1B16 ; [.3119.0020.0002] # BALINESE LETTER GA GORA
+1B17 ; [.311A.0020.0002] # BALINESE LETTER NGA
+1B18 ; [.311B.0020.0002] # BALINESE LETTER CA
+1B19 ; [.311C.0020.0002] # BALINESE LETTER CA LACA
+1B1A ; [.311D.0020.0002] # BALINESE LETTER JA
+1B1B ; [.311E.0020.0002] # BALINESE LETTER JA JERA
+1B1C ; [.311F.0020.0002] # BALINESE LETTER NYA
+1B1D ; [.3120.0020.0002] # BALINESE LETTER TA LATIK
+1B1E ; [.3121.0020.0002] # BALINESE LETTER TA MURDA MAHAPRANA
+1B1F ; [.3122.0020.0002] # BALINESE LETTER DA MURDA ALPAPRANA
+1B20 ; [.3123.0020.0002] # BALINESE LETTER DA MURDA MAHAPRANA
+1B21 ; [.3124.0020.0002] # BALINESE LETTER NA RAMBAT
+1B22 ; [.3125.0020.0002] # BALINESE LETTER TA
+1B47 ; [.3126.0020.0002] # BALINESE LETTER TZIR SASAK
+1B23 ; [.3127.0020.0002] # BALINESE LETTER TA TAWA
+1B24 ; [.3128.0020.0002] # BALINESE LETTER DA
+1B25 ; [.3129.0020.0002] # BALINESE LETTER DA MADU
+1B26 ; [.312A.0020.0002] # BALINESE LETTER NA
+1B27 ; [.312B.0020.0002] # BALINESE LETTER PA
+1B48 ; [.312C.0020.0002] # BALINESE LETTER EF SASAK
+1B28 ; [.312D.0020.0002] # BALINESE LETTER PA KAPAL
+1B29 ; [.312E.0020.0002] # BALINESE LETTER BA
+1B2A ; [.312F.0020.0002] # BALINESE LETTER BA KEMBANG
+1B2B ; [.3130.0020.0002] # BALINESE LETTER MA
+1B2C ; [.3131.0020.0002] # BALINESE LETTER YA
+1B2D ; [.3132.0020.0002] # BALINESE LETTER RA
+1B2E ; [.3133.0020.0002] # BALINESE LETTER LA
+1B2F ; [.3134.0020.0002] # BALINESE LETTER WA
+1B49 ; [.3135.0020.0002] # BALINESE LETTER VE SASAK
+1B30 ; [.3136.0020.0002] # BALINESE LETTER SA SAGA
+1B31 ; [.3137.0020.0002] # BALINESE LETTER SA SAPA
+1B32 ; [.3138.0020.0002] # BALINESE LETTER SA
+1B4A ; [.3139.0020.0002] # BALINESE LETTER ZAL SASAK
+1B4B ; [.313A.0020.0002] # BALINESE LETTER ASYURA SASAK
+1B33 ; [.313B.0020.0002] # BALINESE LETTER HA
+1B35 ; [.313C.0020.0002] # BALINESE VOWEL SIGN TEDUNG
+1B36 ; [.313D.0020.0002] # BALINESE VOWEL SIGN ULU
+1B37 ; [.313E.0020.0002] # BALINESE VOWEL SIGN ULU SARI
+1B38 ; [.313F.0020.0002] # BALINESE VOWEL SIGN SUKU
+1B39 ; [.3140.0020.0002] # BALINESE VOWEL SIGN SUKU ILUT
+1B3A ; [.3141.0020.0002] # BALINESE VOWEL SIGN RA REPA
+1B3B ; [.3142.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3A 1B35 ; [.3142.0020.0002] # BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C ; [.3143.0020.0002] # BALINESE VOWEL SIGN LA LENGA
+1B3D ; [.3144.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B3C 1B35 ; [.3144.0020.0002] # BALINESE VOWEL SIGN LA LENGA TEDUNG
+1B3E ; [.3145.0020.0002] # BALINESE VOWEL SIGN TALING
+1B3F ; [.3146.0020.0002] # BALINESE VOWEL SIGN TALING REPA
+1B40 ; [.3147.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
+1B3E 1B35 ; [.3147.0020.0002] # BALINESE VOWEL SIGN TALING TEDUNG
+1B41 ; [.3148.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B3F 1B35 ; [.3148.0020.0002] # BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42 ; [.3149.0020.0002] # BALINESE VOWEL SIGN PEPET
+1B43 ; [.314A.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
+1B42 1B35 ; [.314A.0020.0002] # BALINESE VOWEL SIGN PEPET TEDUNG
+1B44 ; [.314B.0020.0002] # BALINESE ADEG ADEG
+A984 ; [.314C.0020.0002] # JAVANESE LETTER A
+A985 ; [.314D.0020.0002] # JAVANESE LETTER I KAWI
+A986 ; [.314E.0020.0002] # JAVANESE LETTER I
+A987 ; [.314F.0020.0002] # JAVANESE LETTER II
+A988 ; [.3150.0020.0002] # JAVANESE LETTER U
+A989 ; [.3151.0020.0002] # JAVANESE LETTER PA CEREK
+A98A ; [.3152.0020.0002] # JAVANESE LETTER NGA LELET
+A98B ; [.3153.0020.0002] # JAVANESE LETTER NGA LELET RASWADI
+A98C ; [.3154.0020.0002] # JAVANESE LETTER E
+A98D ; [.3155.0020.0002] # JAVANESE LETTER AI
+A98E ; [.3156.0020.0002] # JAVANESE LETTER O
+A98F ; [.3157.0020.0002] # JAVANESE LETTER KA
+A990 ; [.3158.0020.0002] # JAVANESE LETTER KA SASAK
+A991 ; [.3159.0020.0002] # JAVANESE LETTER KA MURDA
+A992 ; [.315A.0020.0002] # JAVANESE LETTER GA
+A993 ; [.315B.0020.0002] # JAVANESE LETTER GA MURDA
+A994 ; [.315C.0020.0002] # JAVANESE LETTER NGA
+A995 ; [.315D.0020.0002] # JAVANESE LETTER CA
+A996 ; [.315E.0020.0002] # JAVANESE LETTER CA MURDA
+A997 ; [.315F.0020.0002] # JAVANESE LETTER JA
+A998 ; [.3160.0020.0002] # JAVANESE LETTER NYA MURDA
+A999 ; [.3161.0020.0002] # JAVANESE LETTER JA MAHAPRANA
+A99A ; [.3162.0020.0002] # JAVANESE LETTER NYA
+A99B ; [.3163.0020.0002] # JAVANESE LETTER TTA
+A99C ; [.3164.0020.0002] # JAVANESE LETTER TTA MAHAPRANA
+A99D ; [.3165.0020.0002] # JAVANESE LETTER DDA
+A99E ; [.3166.0020.0002] # JAVANESE LETTER DDA MAHAPRANA
+A99F ; [.3167.0020.0002] # JAVANESE LETTER NA MURDA
+A9A0 ; [.3168.0020.0002] # JAVANESE LETTER TA
+A9A1 ; [.3169.0020.0002] # JAVANESE LETTER TA MURDA
+A9A2 ; [.316A.0020.0002] # JAVANESE LETTER DA
+A9A3 ; [.316B.0020.0002] # JAVANESE LETTER DA MAHAPRANA
+A9A4 ; [.316C.0020.0002] # JAVANESE LETTER NA
+A9A5 ; [.316D.0020.0002] # JAVANESE LETTER PA
+A9A6 ; [.316E.0020.0002] # JAVANESE LETTER PA MURDA
+A9A7 ; [.316F.0020.0002] # JAVANESE LETTER BA
+A9A8 ; [.3170.0020.0002] # JAVANESE LETTER BA MURDA
+A9A9 ; [.3171.0020.0002] # JAVANESE LETTER MA
+A9AA ; [.3172.0020.0002] # JAVANESE LETTER YA
+A9BE ; [.3173.0020.0002] # JAVANESE CONSONANT SIGN PENGKAL
+A9AB ; [.3174.0020.0002] # JAVANESE LETTER RA
+A9AC ; [.3174.0020.0004] # JAVANESE LETTER RA AGUNG
+A9BF ; [.3175.0020.0002] # JAVANESE CONSONANT SIGN CAKRA
+A9AD ; [.3176.0020.0002] # JAVANESE LETTER LA
+A9AE ; [.3177.0020.0002] # JAVANESE LETTER WA
+A9AF ; [.3178.0020.0002] # JAVANESE LETTER SA MURDA
+A9B0 ; [.3179.0020.0002] # JAVANESE LETTER SA MAHAPRANA
+A9B1 ; [.317A.0020.0002] # JAVANESE LETTER SA
+A9B2 ; [.317B.0020.0002] # JAVANESE LETTER HA
+A9B4 ; [.317C.0020.0002] # JAVANESE VOWEL SIGN TARUNG
+A9BC ; [.317D.0020.0002] # JAVANESE VOWEL SIGN PEPET
+A9B6 ; [.317E.0020.0002] # JAVANESE VOWEL SIGN WULU
+A9B7 ; [.317F.0020.0002] # JAVANESE VOWEL SIGN WULU MELIK
+A9B8 ; [.3180.0020.0002] # JAVANESE VOWEL SIGN SUKU
+A9B9 ; [.3181.0020.0002] # JAVANESE VOWEL SIGN SUKU MENDUT
+A9BD ; [.3182.0020.0002] # JAVANESE CONSONANT SIGN KERET
+A9BA ; [.3183.0020.0002] # JAVANESE VOWEL SIGN TALING
+A9BB ; [.3184.0020.0002] # JAVANESE VOWEL SIGN DIRGA MURE
+A9B5 ; [.3185.0020.0002] # JAVANESE VOWEL SIGN TOLONG
+A9C0 ; [.3186.0020.0002] # JAVANESE PANGKON
+1880 ; [.3187.0020.0002] # MONGOLIAN LETTER ALI GALI ANUSVARA ONE
+1881 ; [.3188.0020.0002] # MONGOLIAN LETTER ALI GALI VISARGA ONE
+1882 ; [.3189.0020.0002] # MONGOLIAN LETTER ALI GALI DAMARU
+1883 ; [.318A.0020.0002] # MONGOLIAN LETTER ALI GALI UBADAMA
+1884 ; [.318B.0020.0002] # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885 ; [.318C.0020.0002] # MONGOLIAN LETTER ALI GALI BALUDA
+1886 ; [.318D.0020.0002] # MONGOLIAN LETTER ALI GALI THREE BALUDA
+1843 ; [.318E.0020.0002] # MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1820 ; [.318F.0020.0002] # MONGOLIAN LETTER A
+1887 ; [.3190.0020.0002] # MONGOLIAN LETTER ALI GALI A
+1821 ; [.3191.0020.0002] # MONGOLIAN LETTER E
+1844 ; [.3192.0020.0002] # MONGOLIAN LETTER TODO E
+185D ; [.3193.0020.0002] # MONGOLIAN LETTER SIBE E
+1822 ; [.3194.0020.0002] # MONGOLIAN LETTER I
+1845 ; [.3195.0020.0002] # MONGOLIAN LETTER TODO I
+185E ; [.3196.0020.0002] # MONGOLIAN LETTER SIBE I
+1873 ; [.3197.0020.0002] # MONGOLIAN LETTER MANCHU I
+1888 ; [.3198.0020.0002] # MONGOLIAN LETTER ALI GALI I
+185F ; [.3199.0020.0002] # MONGOLIAN LETTER SIBE IY
+1823 ; [.319A.0020.0002] # MONGOLIAN LETTER O
+1846 ; [.319B.0020.0002] # MONGOLIAN LETTER TODO O
+1824 ; [.319C.0020.0002] # MONGOLIAN LETTER U
+1847 ; [.319D.0020.0002] # MONGOLIAN LETTER TODO U
+1861 ; [.319E.0020.0002] # MONGOLIAN LETTER SIBE U
+1825 ; [.319F.0020.0002] # MONGOLIAN LETTER OE
+1848 ; [.31A0.0020.0002] # MONGOLIAN LETTER TODO OE
+1826 ; [.31A1.0020.0002] # MONGOLIAN LETTER UE
+1849 ; [.31A2.0020.0002] # MONGOLIAN LETTER TODO UE
+1860 ; [.31A3.0020.0002] # MONGOLIAN LETTER SIBE UE
+1827 ; [.31A4.0020.0002] # MONGOLIAN LETTER EE
+1828 ; [.31A5.0020.0002] # MONGOLIAN LETTER NA
+1829 ; [.31A6.0020.0002] # MONGOLIAN LETTER ANG
+184A ; [.31A7.0020.0002] # MONGOLIAN LETTER TODO ANG
+1862 ; [.31A8.0020.0002] # MONGOLIAN LETTER SIBE ANG
+188A ; [.31A9.0020.0002] # MONGOLIAN LETTER ALI GALI NGA
+189B ; [.31AA.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI NGA
+182A ; [.31AB.0020.0002] # MONGOLIAN LETTER BA
+184B ; [.31AC.0020.0002] # MONGOLIAN LETTER TODO BA
+182B ; [.31AD.0020.0002] # MONGOLIAN LETTER PA
+184C ; [.31AE.0020.0002] # MONGOLIAN LETTER TODO PA
+1866 ; [.31AF.0020.0002] # MONGOLIAN LETTER SIBE PA
+182C ; [.31B0.0020.0002] # MONGOLIAN LETTER QA
+184D ; [.31B1.0020.0002] # MONGOLIAN LETTER TODO QA
+182D ; [.31B2.0020.0002] # MONGOLIAN LETTER GA
+184E ; [.31B3.0020.0002] # MONGOLIAN LETTER TODO GA
+1864 ; [.31B4.0020.0002] # MONGOLIAN LETTER SIBE GA
+189A ; [.31B5.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI GHA
+1865 ; [.31B6.0020.0002] # MONGOLIAN LETTER SIBE HA
+182E ; [.31B7.0020.0002] # MONGOLIAN LETTER MA
+184F ; [.31B8.0020.0002] # MONGOLIAN LETTER TODO MA
+182F ; [.31B9.0020.0002] # MONGOLIAN LETTER LA
+1830 ; [.31BA.0020.0002] # MONGOLIAN LETTER SA
+1831 ; [.31BB.0020.0002] # MONGOLIAN LETTER SHA
+1867 ; [.31BC.0020.0002] # MONGOLIAN LETTER SIBE SHA
+189C ; [.31BD.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CA
+189D ; [.31BE.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI JHA
+18A2 ; [.31BF.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI SSA
+18A4 ; [.31C0.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZHA
+18A5 ; [.31C1.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI ZA
+1832 ; [.31C2.0020.0002] # MONGOLIAN LETTER TA
+1850 ; [.31C3.0020.0002] # MONGOLIAN LETTER TODO TA
+1868 ; [.31C4.0020.0002] # MONGOLIAN LETTER SIBE TA
+1833 ; [.31C5.0020.0002] # MONGOLIAN LETTER DA
+1851 ; [.31C6.0020.0002] # MONGOLIAN LETTER TODO DA
+1869 ; [.31C7.0020.0002] # MONGOLIAN LETTER SIBE DA
+1834 ; [.31C8.0020.0002] # MONGOLIAN LETTER CHA
+1852 ; [.31C9.0020.0002] # MONGOLIAN LETTER TODO CHA
+1871 ; [.31CA.0020.0002] # MONGOLIAN LETTER SIBE CHA
+185C ; [.31CB.0020.0002] # MONGOLIAN LETTER TODO DZA
+188B ; [.31CC.0020.0002] # MONGOLIAN LETTER ALI GALI CA
+1835 ; [.31CD.0020.0002] # MONGOLIAN LETTER JA
+1853 ; [.31CE.0020.0002] # MONGOLIAN LETTER TODO JA
+186A ; [.31CF.0020.0002] # MONGOLIAN LETTER SIBE JA
+1877 ; [.31D0.0020.0002] # MONGOLIAN LETTER MANCHU ZHA
+1836 ; [.31D1.0020.0002] # MONGOLIAN LETTER YA
+1855 ; [.31D2.0020.0002] # MONGOLIAN LETTER TODO YA
+1872 ; [.31D3.0020.0002] # MONGOLIAN LETTER SIBE ZHA
+1837 ; [.31D4.0020.0002] # MONGOLIAN LETTER RA
+1875 ; [.31D5.0020.0002] # MONGOLIAN LETTER MANCHU RA
+1838 ; [.31D6.0020.0002] # MONGOLIAN LETTER WA
+1856 ; [.31D7.0020.0002] # MONGOLIAN LETTER TODO WA
+1839 ; [.31D8.0020.0002] # MONGOLIAN LETTER FA
+186B ; [.31D9.0020.0002] # MONGOLIAN LETTER SIBE FA
+1876 ; [.31DA.0020.0002] # MONGOLIAN LETTER MANCHU FA
+183A ; [.31DB.0020.0002] # MONGOLIAN LETTER KA
+1857 ; [.31DC.0020.0002] # MONGOLIAN LETTER TODO KA
+1863 ; [.31DD.0020.0002] # MONGOLIAN LETTER SIBE KA
+1874 ; [.31DE.0020.0002] # MONGOLIAN LETTER MANCHU KA
+1889 ; [.31DF.0020.0002] # MONGOLIAN LETTER ALI GALI KA
+183B ; [.31E0.0020.0002] # MONGOLIAN LETTER KHA
+183C ; [.31E1.0020.0002] # MONGOLIAN LETTER TSA
+1854 ; [.31E2.0020.0002] # MONGOLIAN LETTER TODO TSA
+186E ; [.31E3.0020.0002] # MONGOLIAN LETTER SIBE TSA
+183D ; [.31E4.0020.0002] # MONGOLIAN LETTER ZA
+186F ; [.31E5.0020.0002] # MONGOLIAN LETTER SIBE ZA
+1858 ; [.31E6.0020.0002] # MONGOLIAN LETTER TODO GAA
+186C ; [.31E7.0020.0002] # MONGOLIAN LETTER SIBE GAA
+183E ; [.31E8.0020.0002] # MONGOLIAN LETTER HAA
+1859 ; [.31E9.0020.0002] # MONGOLIAN LETTER TODO HAA
+186D ; [.31EA.0020.0002] # MONGOLIAN LETTER SIBE HAA
+183F ; [.31EB.0020.0002] # MONGOLIAN LETTER ZRA
+1840 ; [.31EC.0020.0002] # MONGOLIAN LETTER LHA
+1841 ; [.31ED.0020.0002] # MONGOLIAN LETTER ZHI
+1842 ; [.31EE.0020.0002] # MONGOLIAN LETTER CHI
+185A ; [.31EF.0020.0002] # MONGOLIAN LETTER TODO JIA
+185B ; [.31F0.0020.0002] # MONGOLIAN LETTER TODO NIA
+1870 ; [.31F1.0020.0002] # MONGOLIAN LETTER SIBE RAA
+188C ; [.31F2.0020.0002] # MONGOLIAN LETTER ALI GALI TTA
+189E ; [.31F3.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TTA
+188D ; [.31F4.0020.0002] # MONGOLIAN LETTER ALI GALI TTHA
+188E ; [.31F5.0020.0002] # MONGOLIAN LETTER ALI GALI DDA
+189F ; [.31F6.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DDHA
+188F ; [.31F7.0020.0002] # MONGOLIAN LETTER ALI GALI NNA
+1890 ; [.31F8.0020.0002] # MONGOLIAN LETTER ALI GALI TA
+1898 ; [.31F9.0020.0002] # MONGOLIAN LETTER TODO ALI GALI TA
+18A0 ; [.31FA.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI TA
+1891 ; [.31FB.0020.0002] # MONGOLIAN LETTER ALI GALI DA
+18A1 ; [.31FC.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI DHA
+1892 ; [.31FD.0020.0002] # MONGOLIAN LETTER ALI GALI PA
+1893 ; [.31FE.0020.0002] # MONGOLIAN LETTER ALI GALI PHA
+18A8 ; [.31FF.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI BHA
+1894 ; [.3200.0020.0002] # MONGOLIAN LETTER ALI GALI SSA
+18A3 ; [.3201.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI CYA
+1895 ; [.3202.0020.0002] # MONGOLIAN LETTER ALI GALI ZHA
+1899 ; [.3203.0020.0002] # MONGOLIAN LETTER TODO ALI GALI ZHA
+1896 ; [.3204.0020.0002] # MONGOLIAN LETTER ALI GALI ZA
+1897 ; [.3205.0020.0002] # MONGOLIAN LETTER ALI GALI AH
+18A6 ; [.3206.0020.0002] # MONGOLIAN LETTER ALI GALI HALF U
+18A7 ; [.3207.0020.0002] # MONGOLIAN LETTER ALI GALI HALF YA
+18AA ; [.3208.0020.0002] # MONGOLIAN LETTER MANCHU ALI GALI LHA
+18A9 ; [.3209.0020.0002] # MONGOLIAN LETTER ALI GALI DAGALGA
+1C5A ; [.320A.0020.0002] # OL CHIKI LETTER LA
+1C5B ; [.320B.0020.0002] # OL CHIKI LETTER AT
+1C5C ; [.320C.0020.0002] # OL CHIKI LETTER AG
+1C5D ; [.320D.0020.0002] # OL CHIKI LETTER ANG
+1C5E ; [.320E.0020.0002] # OL CHIKI LETTER AL
+1C5F ; [.320F.0020.0002] # OL CHIKI LETTER LAA
+1C60 ; [.3210.0020.0002] # OL CHIKI LETTER AAK
+1C61 ; [.3211.0020.0002] # OL CHIKI LETTER AAJ
+1C62 ; [.3212.0020.0002] # OL CHIKI LETTER AAM
+1C63 ; [.3213.0020.0002] # OL CHIKI LETTER AAW
+1C64 ; [.3214.0020.0002] # OL CHIKI LETTER LI
+1C65 ; [.3215.0020.0002] # OL CHIKI LETTER IS
+1C66 ; [.3216.0020.0002] # OL CHIKI LETTER IH
+1C67 ; [.3217.0020.0002] # OL CHIKI LETTER INY
+1C68 ; [.3218.0020.0002] # OL CHIKI LETTER IR
+1C69 ; [.3219.0020.0002] # OL CHIKI LETTER LU
+1C6A ; [.321A.0020.0002] # OL CHIKI LETTER UC
+1C6B ; [.321B.0020.0002] # OL CHIKI LETTER UD
+1C6C ; [.321C.0020.0002] # OL CHIKI LETTER UNN
+1C6D ; [.321D.0020.0002] # OL CHIKI LETTER UY
+1C6E ; [.321E.0020.0002] # OL CHIKI LETTER LE
+1C6F ; [.321F.0020.0002] # OL CHIKI LETTER EP
+1C70 ; [.3220.0020.0002] # OL CHIKI LETTER EDD
+1C71 ; [.3221.0020.0002] # OL CHIKI LETTER EN
+1C72 ; [.3222.0020.0002] # OL CHIKI LETTER ERR
+1C73 ; [.3223.0020.0002] # OL CHIKI LETTER LO
+1C74 ; [.3224.0020.0002] # OL CHIKI LETTER OTT
+1C75 ; [.3225.0020.0002] # OL CHIKI LETTER OB
+1C76 ; [.3226.0020.0002] # OL CHIKI LETTER OV
+1C77 ; [.3227.0020.0002] # OL CHIKI LETTER OH
+1C78 ; [.3228.0020.0002] # OL CHIKI MU TTUDDAG
+1C79 ; [.3229.0020.0002] # OL CHIKI GAAHLAA TTUDDAAG
+1C7A ; [.322A.0020.0002] # OL CHIKI MU-GAAHLAA TTUDDAAG
+1C7B ; [.322B.0020.0002] # OL CHIKI RELAA
+1C7C ; [.322C.0020.0002] # OL CHIKI PHAARKAA
+1C7D ; [.322D.0020.0002] # OL CHIKI AHAD
+AB70 ; [.322E.0020.0002] # CHEROKEE SMALL LETTER A
+13A0 ; [.322E.0020.0008] # CHEROKEE LETTER A
+AB71 ; [.322F.0020.0002] # CHEROKEE SMALL LETTER E
+13A1 ; [.322F.0020.0008] # CHEROKEE LETTER E
+AB72 ; [.3230.0020.0002] # CHEROKEE SMALL LETTER I
+13A2 ; [.3230.0020.0008] # CHEROKEE LETTER I
+AB73 ; [.3231.0020.0002] # CHEROKEE SMALL LETTER O
+13A3 ; [.3231.0020.0008] # CHEROKEE LETTER O
+AB74 ; [.3232.0020.0002] # CHEROKEE SMALL LETTER U
+13A4 ; [.3232.0020.0008] # CHEROKEE LETTER U
+AB75 ; [.3233.0020.0002] # CHEROKEE SMALL LETTER V
+13A5 ; [.3233.0020.0008] # CHEROKEE LETTER V
+AB76 ; [.3234.0020.0002] # CHEROKEE SMALL LETTER GA
+13A6 ; [.3234.0020.0008] # CHEROKEE LETTER GA
+AB77 ; [.3235.0020.0002] # CHEROKEE SMALL LETTER KA
+13A7 ; [.3235.0020.0008] # CHEROKEE LETTER KA
+AB78 ; [.3236.0020.0002] # CHEROKEE SMALL LETTER GE
+13A8 ; [.3236.0020.0008] # CHEROKEE LETTER GE
+AB79 ; [.3237.0020.0002] # CHEROKEE SMALL LETTER GI
+13A9 ; [.3237.0020.0008] # CHEROKEE LETTER GI
+AB7A ; [.3238.0020.0002] # CHEROKEE SMALL LETTER GO
+13AA ; [.3238.0020.0008] # CHEROKEE LETTER GO
+AB7B ; [.3239.0020.0002] # CHEROKEE SMALL LETTER GU
+13AB ; [.3239.0020.0008] # CHEROKEE LETTER GU
+AB7C ; [.323A.0020.0002] # CHEROKEE SMALL LETTER GV
+13AC ; [.323A.0020.0008] # CHEROKEE LETTER GV
+AB7D ; [.323B.0020.0002] # CHEROKEE SMALL LETTER HA
+13AD ; [.323B.0020.0008] # CHEROKEE LETTER HA
+AB7E ; [.323C.0020.0002] # CHEROKEE SMALL LETTER HE
+13AE ; [.323C.0020.0008] # CHEROKEE LETTER HE
+AB7F ; [.323D.0020.0002] # CHEROKEE SMALL LETTER HI
+13AF ; [.323D.0020.0008] # CHEROKEE LETTER HI
+AB80 ; [.323E.0020.0002] # CHEROKEE SMALL LETTER HO
+13B0 ; [.323E.0020.0008] # CHEROKEE LETTER HO
+AB81 ; [.323F.0020.0002] # CHEROKEE SMALL LETTER HU
+13B1 ; [.323F.0020.0008] # CHEROKEE LETTER HU
+AB82 ; [.3240.0020.0002] # CHEROKEE SMALL LETTER HV
+13B2 ; [.3240.0020.0008] # CHEROKEE LETTER HV
+AB83 ; [.3241.0020.0002] # CHEROKEE SMALL LETTER LA
+13B3 ; [.3241.0020.0008] # CHEROKEE LETTER LA
+AB84 ; [.3242.0020.0002] # CHEROKEE SMALL LETTER LE
+13B4 ; [.3242.0020.0008] # CHEROKEE LETTER LE
+AB85 ; [.3243.0020.0002] # CHEROKEE SMALL LETTER LI
+13B5 ; [.3243.0020.0008] # CHEROKEE LETTER LI
+AB86 ; [.3244.0020.0002] # CHEROKEE SMALL LETTER LO
+13B6 ; [.3244.0020.0008] # CHEROKEE LETTER LO
+AB87 ; [.3245.0020.0002] # CHEROKEE SMALL LETTER LU
+13B7 ; [.3245.0020.0008] # CHEROKEE LETTER LU
+AB88 ; [.3246.0020.0002] # CHEROKEE SMALL LETTER LV
+13B8 ; [.3246.0020.0008] # CHEROKEE LETTER LV
+AB89 ; [.3247.0020.0002] # CHEROKEE SMALL LETTER MA
+13B9 ; [.3247.0020.0008] # CHEROKEE LETTER MA
+AB8A ; [.3248.0020.0002] # CHEROKEE SMALL LETTER ME
+13BA ; [.3248.0020.0008] # CHEROKEE LETTER ME
+AB8B ; [.3249.0020.0002] # CHEROKEE SMALL LETTER MI
+13BB ; [.3249.0020.0008] # CHEROKEE LETTER MI
+AB8C ; [.324A.0020.0002] # CHEROKEE SMALL LETTER MO
+13BC ; [.324A.0020.0008] # CHEROKEE LETTER MO
+AB8D ; [.324B.0020.0002] # CHEROKEE SMALL LETTER MU
+13BD ; [.324B.0020.0008] # CHEROKEE LETTER MU
+AB8E ; [.324C.0020.0002] # CHEROKEE SMALL LETTER NA
+13BE ; [.324C.0020.0008] # CHEROKEE LETTER NA
+AB8F ; [.324D.0020.0002] # CHEROKEE SMALL LETTER HNA
+13BF ; [.324D.0020.0008] # CHEROKEE LETTER HNA
+AB90 ; [.324E.0020.0002] # CHEROKEE SMALL LETTER NAH
+13C0 ; [.324E.0020.0008] # CHEROKEE LETTER NAH
+AB91 ; [.324F.0020.0002] # CHEROKEE SMALL LETTER NE
+13C1 ; [.324F.0020.0008] # CHEROKEE LETTER NE
+AB92 ; [.3250.0020.0002] # CHEROKEE SMALL LETTER NI
+13C2 ; [.3250.0020.0008] # CHEROKEE LETTER NI
+AB93 ; [.3251.0020.0002] # CHEROKEE SMALL LETTER NO
+13C3 ; [.3251.0020.0008] # CHEROKEE LETTER NO
+AB94 ; [.3252.0020.0002] # CHEROKEE SMALL LETTER NU
+13C4 ; [.3252.0020.0008] # CHEROKEE LETTER NU
+AB95 ; [.3253.0020.0002] # CHEROKEE SMALL LETTER NV
+13C5 ; [.3253.0020.0008] # CHEROKEE LETTER NV
+AB96 ; [.3254.0020.0002] # CHEROKEE SMALL LETTER QUA
+13C6 ; [.3254.0020.0008] # CHEROKEE LETTER QUA
+AB97 ; [.3255.0020.0002] # CHEROKEE SMALL LETTER QUE
+13C7 ; [.3255.0020.0008] # CHEROKEE LETTER QUE
+AB98 ; [.3256.0020.0002] # CHEROKEE SMALL LETTER QUI
+13C8 ; [.3256.0020.0008] # CHEROKEE LETTER QUI
+AB99 ; [.3257.0020.0002] # CHEROKEE SMALL LETTER QUO
+13C9 ; [.3257.0020.0008] # CHEROKEE LETTER QUO
+AB9A ; [.3258.0020.0002] # CHEROKEE SMALL LETTER QUU
+13CA ; [.3258.0020.0008] # CHEROKEE LETTER QUU
+AB9B ; [.3259.0020.0002] # CHEROKEE SMALL LETTER QUV
+13CB ; [.3259.0020.0008] # CHEROKEE LETTER QUV
+AB9C ; [.325A.0020.0002] # CHEROKEE SMALL LETTER SA
+13CC ; [.325A.0020.0008] # CHEROKEE LETTER SA
+AB9D ; [.325B.0020.0002] # CHEROKEE SMALL LETTER S
+13CD ; [.325B.0020.0008] # CHEROKEE LETTER S
+AB9E ; [.325C.0020.0002] # CHEROKEE SMALL LETTER SE
+13CE ; [.325C.0020.0008] # CHEROKEE LETTER SE
+AB9F ; [.325D.0020.0002] # CHEROKEE SMALL LETTER SI
+13CF ; [.325D.0020.0008] # CHEROKEE LETTER SI
+ABA0 ; [.325E.0020.0002] # CHEROKEE SMALL LETTER SO
+13D0 ; [.325E.0020.0008] # CHEROKEE LETTER SO
+ABA1 ; [.325F.0020.0002] # CHEROKEE SMALL LETTER SU
+13D1 ; [.325F.0020.0008] # CHEROKEE LETTER SU
+ABA2 ; [.3260.0020.0002] # CHEROKEE SMALL LETTER SV
+13D2 ; [.3260.0020.0008] # CHEROKEE LETTER SV
+ABA3 ; [.3261.0020.0002] # CHEROKEE SMALL LETTER DA
+13D3 ; [.3261.0020.0008] # CHEROKEE LETTER DA
+ABA4 ; [.3262.0020.0002] # CHEROKEE SMALL LETTER TA
+13D4 ; [.3262.0020.0008] # CHEROKEE LETTER TA
+ABA5 ; [.3263.0020.0002] # CHEROKEE SMALL LETTER DE
+13D5 ; [.3263.0020.0008] # CHEROKEE LETTER DE
+ABA6 ; [.3264.0020.0002] # CHEROKEE SMALL LETTER TE
+13D6 ; [.3264.0020.0008] # CHEROKEE LETTER TE
+ABA7 ; [.3265.0020.0002] # CHEROKEE SMALL LETTER DI
+13D7 ; [.3265.0020.0008] # CHEROKEE LETTER DI
+ABA8 ; [.3266.0020.0002] # CHEROKEE SMALL LETTER TI
+13D8 ; [.3266.0020.0008] # CHEROKEE LETTER TI
+ABA9 ; [.3267.0020.0002] # CHEROKEE SMALL LETTER DO
+13D9 ; [.3267.0020.0008] # CHEROKEE LETTER DO
+ABAA ; [.3268.0020.0002] # CHEROKEE SMALL LETTER DU
+13DA ; [.3268.0020.0008] # CHEROKEE LETTER DU
+ABAB ; [.3269.0020.0002] # CHEROKEE SMALL LETTER DV
+13DB ; [.3269.0020.0008] # CHEROKEE LETTER DV
+ABAC ; [.326A.0020.0002] # CHEROKEE SMALL LETTER DLA
+13DC ; [.326A.0020.0008] # CHEROKEE LETTER DLA
+ABAD ; [.326B.0020.0002] # CHEROKEE SMALL LETTER TLA
+13DD ; [.326B.0020.0008] # CHEROKEE LETTER TLA
+ABAE ; [.326C.0020.0002] # CHEROKEE SMALL LETTER TLE
+13DE ; [.326C.0020.0008] # CHEROKEE LETTER TLE
+ABAF ; [.326D.0020.0002] # CHEROKEE SMALL LETTER TLI
+13DF ; [.326D.0020.0008] # CHEROKEE LETTER TLI
+ABB0 ; [.326E.0020.0002] # CHEROKEE SMALL LETTER TLO
+13E0 ; [.326E.0020.0008] # CHEROKEE LETTER TLO
+ABB1 ; [.326F.0020.0002] # CHEROKEE SMALL LETTER TLU
+13E1 ; [.326F.0020.0008] # CHEROKEE LETTER TLU
+ABB2 ; [.3270.0020.0002] # CHEROKEE SMALL LETTER TLV
+13E2 ; [.3270.0020.0008] # CHEROKEE LETTER TLV
+ABB3 ; [.3271.0020.0002] # CHEROKEE SMALL LETTER TSA
+13E3 ; [.3271.0020.0008] # CHEROKEE LETTER TSA
+ABB4 ; [.3272.0020.0002] # CHEROKEE SMALL LETTER TSE
+13E4 ; [.3272.0020.0008] # CHEROKEE LETTER TSE
+ABB5 ; [.3273.0020.0002] # CHEROKEE SMALL LETTER TSI
+13E5 ; [.3273.0020.0008] # CHEROKEE LETTER TSI
+ABB6 ; [.3274.0020.0002] # CHEROKEE SMALL LETTER TSO
+13E6 ; [.3274.0020.0008] # CHEROKEE LETTER TSO
+ABB7 ; [.3275.0020.0002] # CHEROKEE SMALL LETTER TSU
+13E7 ; [.3275.0020.0008] # CHEROKEE LETTER TSU
+ABB8 ; [.3276.0020.0002] # CHEROKEE SMALL LETTER TSV
+13E8 ; [.3276.0020.0008] # CHEROKEE LETTER TSV
+ABB9 ; [.3277.0020.0002] # CHEROKEE SMALL LETTER WA
+13E9 ; [.3277.0020.0008] # CHEROKEE LETTER WA
+ABBA ; [.3278.0020.0002] # CHEROKEE SMALL LETTER WE
+13EA ; [.3278.0020.0008] # CHEROKEE LETTER WE
+ABBB ; [.3279.0020.0002] # CHEROKEE SMALL LETTER WI
+13EB ; [.3279.0020.0008] # CHEROKEE LETTER WI
+ABBC ; [.327A.0020.0002] # CHEROKEE SMALL LETTER WO
+13EC ; [.327A.0020.0008] # CHEROKEE LETTER WO
+ABBD ; [.327B.0020.0002] # CHEROKEE SMALL LETTER WU
+13ED ; [.327B.0020.0008] # CHEROKEE LETTER WU
+ABBE ; [.327C.0020.0002] # CHEROKEE SMALL LETTER WV
+13EE ; [.327C.0020.0008] # CHEROKEE LETTER WV
+ABBF ; [.327D.0020.0002] # CHEROKEE SMALL LETTER YA
+13EF ; [.327D.0020.0008] # CHEROKEE LETTER YA
+13F8 ; [.327E.0020.0002] # CHEROKEE SMALL LETTER YE
+13F0 ; [.327E.0020.0008] # CHEROKEE LETTER YE
+13F9 ; [.327F.0020.0002] # CHEROKEE SMALL LETTER YI
+13F1 ; [.327F.0020.0008] # CHEROKEE LETTER YI
+13FA ; [.3280.0020.0002] # CHEROKEE SMALL LETTER YO
+13F2 ; [.3280.0020.0008] # CHEROKEE LETTER YO
+13FB ; [.3281.0020.0002] # CHEROKEE SMALL LETTER YU
+13F3 ; [.3281.0020.0008] # CHEROKEE LETTER YU
+13FC ; [.3282.0020.0002] # CHEROKEE SMALL LETTER YV
+13F4 ; [.3282.0020.0008] # CHEROKEE LETTER YV
+13FD ; [.3283.0020.0002] # CHEROKEE SMALL LETTER MV
+13F5 ; [.3283.0020.0008] # CHEROKEE LETTER MV
+1401 ; [.3284.0020.0002] # CANADIAN SYLLABICS E
+1402 ; [.3285.0020.0002] # CANADIAN SYLLABICS AAI
+1403 ; [.3286.0020.0002] # CANADIAN SYLLABICS I
+1404 ; [.3287.0020.0002] # CANADIAN SYLLABICS II
+1405 ; [.3288.0020.0002] # CANADIAN SYLLABICS O
+1406 ; [.3289.0020.0002] # CANADIAN SYLLABICS OO
+1407 ; [.328A.0020.0002] # CANADIAN SYLLABICS Y-CREE OO
+1408 ; [.328B.0020.0002] # CANADIAN SYLLABICS CARRIER EE
+1409 ; [.328C.0020.0002] # CANADIAN SYLLABICS CARRIER I
+140A ; [.328D.0020.0002] # CANADIAN SYLLABICS A
+140B ; [.328E.0020.0002] # CANADIAN SYLLABICS AA
+140C ; [.328F.0020.0002] # CANADIAN SYLLABICS WE
+140D ; [.3290.0020.0002] # CANADIAN SYLLABICS WEST-CREE WE
+140E ; [.3291.0020.0002] # CANADIAN SYLLABICS WI
+140F ; [.3292.0020.0002] # CANADIAN SYLLABICS WEST-CREE WI
+1410 ; [.3293.0020.0002] # CANADIAN SYLLABICS WII
+1411 ; [.3294.0020.0002] # CANADIAN SYLLABICS WEST-CREE WII
+1412 ; [.3295.0020.0002] # CANADIAN SYLLABICS WO
+1413 ; [.3296.0020.0002] # CANADIAN SYLLABICS WEST-CREE WO
+1414 ; [.3297.0020.0002] # CANADIAN SYLLABICS WOO
+1415 ; [.3298.0020.0002] # CANADIAN SYLLABICS WEST-CREE WOO
+1416 ; [.3299.0020.0002] # CANADIAN SYLLABICS NASKAPI WOO
+1417 ; [.329A.0020.0002] # CANADIAN SYLLABICS WA
+1418 ; [.329B.0020.0002] # CANADIAN SYLLABICS WEST-CREE WA
+1419 ; [.329C.0020.0002] # CANADIAN SYLLABICS WAA
+141A ; [.329D.0020.0002] # CANADIAN SYLLABICS WEST-CREE WAA
+141B ; [.329E.0020.0002] # CANADIAN SYLLABICS NASKAPI WAA
+141C ; [.329F.0020.0002] # CANADIAN SYLLABICS AI
+141D ; [.32A0.0020.0002] # CANADIAN SYLLABICS Y-CREE W
+141E ; [.32A1.0020.0002] # CANADIAN SYLLABICS GLOTTAL STOP
+141F ; [.32A2.0020.0002] # CANADIAN SYLLABICS FINAL ACUTE
+1420 ; [.32A3.0020.0002] # CANADIAN SYLLABICS FINAL GRAVE
+1421 ; [.32A4.0020.0002] # CANADIAN SYLLABICS FINAL BOTTOM HALF RING
+1422 ; [.32A5.0020.0002] # CANADIAN SYLLABICS FINAL TOP HALF RING
+1423 ; [.32A6.0020.0002] # CANADIAN SYLLABICS FINAL RIGHT HALF RING
+1424 ; [.32A7.0020.0002] # CANADIAN SYLLABICS FINAL RING
+1425 ; [.32A8.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE ACUTE
+1426 ; [.32A9.0020.0002] # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES
+1427 ; [.32AA.0020.0002] # CANADIAN SYLLABICS FINAL MIDDLE DOT
+1428 ; [.32AB.0020.0002] # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE
+1429 ; [.32AC.0020.0002] # CANADIAN SYLLABICS FINAL PLUS
+142A ; [.32AD.0020.0002] # CANADIAN SYLLABICS FINAL DOWN TACK
+142B ; [.32AE.0020.0002] # CANADIAN SYLLABICS EN
+142C ; [.32AF.0020.0002] # CANADIAN SYLLABICS IN
+142D ; [.32B0.0020.0002] # CANADIAN SYLLABICS ON
+142E ; [.32B1.0020.0002] # CANADIAN SYLLABICS AN
+142F ; [.32B2.0020.0002] # CANADIAN SYLLABICS PE
+1430 ; [.32B3.0020.0002] # CANADIAN SYLLABICS PAAI
+1431 ; [.32B4.0020.0002] # CANADIAN SYLLABICS PI
+1432 ; [.32B5.0020.0002] # CANADIAN SYLLABICS PII
+1433 ; [.32B6.0020.0002] # CANADIAN SYLLABICS PO
+1434 ; [.32B7.0020.0002] # CANADIAN SYLLABICS POO
+1435 ; [.32B8.0020.0002] # CANADIAN SYLLABICS Y-CREE POO
+1436 ; [.32B9.0020.0002] # CANADIAN SYLLABICS CARRIER HEE
+1437 ; [.32BA.0020.0002] # CANADIAN SYLLABICS CARRIER HI
+1438 ; [.32BB.0020.0002] # CANADIAN SYLLABICS PA
+1439 ; [.32BC.0020.0002] # CANADIAN SYLLABICS PAA
+143A ; [.32BD.0020.0002] # CANADIAN SYLLABICS PWE
+143B ; [.32BE.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWE
+143C ; [.32BF.0020.0002] # CANADIAN SYLLABICS PWI
+143D ; [.32C0.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWI
+143E ; [.32C1.0020.0002] # CANADIAN SYLLABICS PWII
+143F ; [.32C2.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWII
+1440 ; [.32C3.0020.0002] # CANADIAN SYLLABICS PWO
+1441 ; [.32C4.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWO
+1442 ; [.32C5.0020.0002] # CANADIAN SYLLABICS PWOO
+1443 ; [.32C6.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWOO
+1444 ; [.32C7.0020.0002] # CANADIAN SYLLABICS PWA
+1445 ; [.32C8.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWA
+1446 ; [.32C9.0020.0002] # CANADIAN SYLLABICS PWAA
+1447 ; [.32CA.0020.0002] # CANADIAN SYLLABICS WEST-CREE PWAA
+1448 ; [.32CB.0020.0002] # CANADIAN SYLLABICS Y-CREE PWAA
+1449 ; [.32CC.0020.0002] # CANADIAN SYLLABICS P
+144A ; [.32CD.0020.0002] # CANADIAN SYLLABICS WEST-CREE P
+144B ; [.32CE.0020.0002] # CANADIAN SYLLABICS CARRIER H
+144C ; [.32CF.0020.0002] # CANADIAN SYLLABICS TE
+144D ; [.32D0.0020.0002] # CANADIAN SYLLABICS TAAI
+144E ; [.32D1.0020.0002] # CANADIAN SYLLABICS TI
+144F ; [.32D2.0020.0002] # CANADIAN SYLLABICS TII
+1450 ; [.32D3.0020.0002] # CANADIAN SYLLABICS TO
+1451 ; [.32D4.0020.0002] # CANADIAN SYLLABICS TOO
+1452 ; [.32D5.0020.0002] # CANADIAN SYLLABICS Y-CREE TOO
+1453 ; [.32D6.0020.0002] # CANADIAN SYLLABICS CARRIER DEE
+1454 ; [.32D7.0020.0002] # CANADIAN SYLLABICS CARRIER DI
+1455 ; [.32D8.0020.0002] # CANADIAN SYLLABICS TA
+1456 ; [.32D9.0020.0002] # CANADIAN SYLLABICS TAA
+1457 ; [.32DA.0020.0002] # CANADIAN SYLLABICS TWE
+1458 ; [.32DB.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWE
+1459 ; [.32DC.0020.0002] # CANADIAN SYLLABICS TWI
+145A ; [.32DD.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWI
+145B ; [.32DE.0020.0002] # CANADIAN SYLLABICS TWII
+145C ; [.32DF.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWII
+145D ; [.32E0.0020.0002] # CANADIAN SYLLABICS TWO
+145E ; [.32E1.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWO
+145F ; [.32E2.0020.0002] # CANADIAN SYLLABICS TWOO
+1460 ; [.32E3.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWOO
+1461 ; [.32E4.0020.0002] # CANADIAN SYLLABICS TWA
+1462 ; [.32E5.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWA
+1463 ; [.32E6.0020.0002] # CANADIAN SYLLABICS TWAA
+1464 ; [.32E7.0020.0002] # CANADIAN SYLLABICS WEST-CREE TWAA
+1465 ; [.32E8.0020.0002] # CANADIAN SYLLABICS NASKAPI TWAA
+1466 ; [.32E9.0020.0002] # CANADIAN SYLLABICS T
+1467 ; [.32EA.0020.0002] # CANADIAN SYLLABICS TTE
+1468 ; [.32EB.0020.0002] # CANADIAN SYLLABICS TTI
+1469 ; [.32EC.0020.0002] # CANADIAN SYLLABICS TTO
+146A ; [.32ED.0020.0002] # CANADIAN SYLLABICS TTA
+146B ; [.32EE.0020.0002] # CANADIAN SYLLABICS KE
+146C ; [.32EF.0020.0002] # CANADIAN SYLLABICS KAAI
+146D ; [.32F0.0020.0002] # CANADIAN SYLLABICS KI
+146E ; [.32F1.0020.0002] # CANADIAN SYLLABICS KII
+146F ; [.32F2.0020.0002] # CANADIAN SYLLABICS KO
+1470 ; [.32F3.0020.0002] # CANADIAN SYLLABICS KOO
+1471 ; [.32F4.0020.0002] # CANADIAN SYLLABICS Y-CREE KOO
+1472 ; [.32F5.0020.0002] # CANADIAN SYLLABICS KA
+1473 ; [.32F6.0020.0002] # CANADIAN SYLLABICS KAA
+1474 ; [.32F7.0020.0002] # CANADIAN SYLLABICS KWE
+1475 ; [.32F8.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWE
+1476 ; [.32F9.0020.0002] # CANADIAN SYLLABICS KWI
+1477 ; [.32FA.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWI
+1478 ; [.32FB.0020.0002] # CANADIAN SYLLABICS KWII
+1479 ; [.32FC.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWII
+147A ; [.32FD.0020.0002] # CANADIAN SYLLABICS KWO
+147B ; [.32FE.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWO
+147C ; [.32FF.0020.0002] # CANADIAN SYLLABICS KWOO
+147D ; [.3300.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWOO
+147E ; [.3301.0020.0002] # CANADIAN SYLLABICS KWA
+147F ; [.3302.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWA
+1480 ; [.3303.0020.0002] # CANADIAN SYLLABICS KWAA
+1481 ; [.3304.0020.0002] # CANADIAN SYLLABICS WEST-CREE KWAA
+1482 ; [.3305.0020.0002] # CANADIAN SYLLABICS NASKAPI KWAA
+1483 ; [.3306.0020.0002] # CANADIAN SYLLABICS K
+1484 ; [.3307.0020.0002] # CANADIAN SYLLABICS KW
+1485 ; [.3308.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KEH
+1486 ; [.3309.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KIH
+1487 ; [.330A.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KOH
+1488 ; [.330B.0020.0002] # CANADIAN SYLLABICS SOUTH-SLAVEY KAH
+1489 ; [.330C.0020.0002] # CANADIAN SYLLABICS CE
+148A ; [.330D.0020.0002] # CANADIAN SYLLABICS CAAI
+148B ; [.330E.0020.0002] # CANADIAN SYLLABICS CI
+148C ; [.330F.0020.0002] # CANADIAN SYLLABICS CII
+148D ; [.3310.0020.0002] # CANADIAN SYLLABICS CO
+148E ; [.3311.0020.0002] # CANADIAN SYLLABICS COO
+148F ; [.3312.0020.0002] # CANADIAN SYLLABICS Y-CREE COO
+1490 ; [.3313.0020.0002] # CANADIAN SYLLABICS CA
+1491 ; [.3314.0020.0002] # CANADIAN SYLLABICS CAA
+1492 ; [.3315.0020.0002] # CANADIAN SYLLABICS CWE
+1493 ; [.3316.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWE
+1494 ; [.3317.0020.0002] # CANADIAN SYLLABICS CWI
+1495 ; [.3318.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWI
+1496 ; [.3319.0020.0002] # CANADIAN SYLLABICS CWII
+1497 ; [.331A.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWII
+1498 ; [.331B.0020.0002] # CANADIAN SYLLABICS CWO
+1499 ; [.331C.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWO
+149A ; [.331D.0020.0002] # CANADIAN SYLLABICS CWOO
+149B ; [.331E.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWOO
+149C ; [.331F.0020.0002] # CANADIAN SYLLABICS CWA
+149D ; [.3320.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWA
+149E ; [.3321.0020.0002] # CANADIAN SYLLABICS CWAA
+149F ; [.3322.0020.0002] # CANADIAN SYLLABICS WEST-CREE CWAA
+14A0 ; [.3323.0020.0002] # CANADIAN SYLLABICS NASKAPI CWAA
+14A1 ; [.3324.0020.0002] # CANADIAN SYLLABICS C
+14A2 ; [.3325.0020.0002] # CANADIAN SYLLABICS SAYISI TH
+14A3 ; [.3326.0020.0002] # CANADIAN SYLLABICS ME
+14A4 ; [.3327.0020.0002] # CANADIAN SYLLABICS MAAI
+14A5 ; [.3328.0020.0002] # CANADIAN SYLLABICS MI
+14A6 ; [.3329.0020.0002] # CANADIAN SYLLABICS MII
+14A7 ; [.332A.0020.0002] # CANADIAN SYLLABICS MO
+14A8 ; [.332B.0020.0002] # CANADIAN SYLLABICS MOO
+14A9 ; [.332C.0020.0002] # CANADIAN SYLLABICS Y-CREE MOO
+14AA ; [.332D.0020.0002] # CANADIAN SYLLABICS MA
+14AB ; [.332E.0020.0002] # CANADIAN SYLLABICS MAA
+14AC ; [.332F.0020.0002] # CANADIAN SYLLABICS MWE
+14AD ; [.3330.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWE
+14AE ; [.3331.0020.0002] # CANADIAN SYLLABICS MWI
+14AF ; [.3332.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWI
+14B0 ; [.3333.0020.0002] # CANADIAN SYLLABICS MWII
+14B1 ; [.3334.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWII
+14B2 ; [.3335.0020.0002] # CANADIAN SYLLABICS MWO
+14B3 ; [.3336.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWO
+14B4 ; [.3337.0020.0002] # CANADIAN SYLLABICS MWOO
+14B5 ; [.3338.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWOO
+14B6 ; [.3339.0020.0002] # CANADIAN SYLLABICS MWA
+14B7 ; [.333A.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWA
+14B8 ; [.333B.0020.0002] # CANADIAN SYLLABICS MWAA
+14B9 ; [.333C.0020.0002] # CANADIAN SYLLABICS WEST-CREE MWAA
+14BA ; [.333D.0020.0002] # CANADIAN SYLLABICS NASKAPI MWAA
+14BB ; [.333E.0020.0002] # CANADIAN SYLLABICS M
+14BC ; [.333F.0020.0002] # CANADIAN SYLLABICS WEST-CREE M
+14BD ; [.3340.0020.0002] # CANADIAN SYLLABICS MH
+14BE ; [.3341.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN M
+14BF ; [.3342.0020.0002] # CANADIAN SYLLABICS SAYISI M
+14C0 ; [.3343.0020.0002] # CANADIAN SYLLABICS NE
+14C1 ; [.3344.0020.0002] # CANADIAN SYLLABICS NAAI
+14C2 ; [.3345.0020.0002] # CANADIAN SYLLABICS NI
+14C3 ; [.3346.0020.0002] # CANADIAN SYLLABICS NII
+14C4 ; [.3347.0020.0002] # CANADIAN SYLLABICS NO
+14C5 ; [.3348.0020.0002] # CANADIAN SYLLABICS NOO
+14C6 ; [.3349.0020.0002] # CANADIAN SYLLABICS Y-CREE NOO
+14C7 ; [.334A.0020.0002] # CANADIAN SYLLABICS NA
+14C8 ; [.334B.0020.0002] # CANADIAN SYLLABICS NAA
+14C9 ; [.334C.0020.0002] # CANADIAN SYLLABICS NWE
+14CA ; [.334D.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWE
+14CB ; [.334E.0020.0002] # CANADIAN SYLLABICS NWA
+14CC ; [.334F.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWA
+14CD ; [.3350.0020.0002] # CANADIAN SYLLABICS NWAA
+14CE ; [.3351.0020.0002] # CANADIAN SYLLABICS WEST-CREE NWAA
+14CF ; [.3352.0020.0002] # CANADIAN SYLLABICS NASKAPI NWAA
+14D0 ; [.3353.0020.0002] # CANADIAN SYLLABICS N
+14D1 ; [.3354.0020.0002] # CANADIAN SYLLABICS CARRIER NG
+14D2 ; [.3355.0020.0002] # CANADIAN SYLLABICS NH
+14D3 ; [.3356.0020.0002] # CANADIAN SYLLABICS LE
+14D4 ; [.3357.0020.0002] # CANADIAN SYLLABICS LAAI
+14D5 ; [.3358.0020.0002] # CANADIAN SYLLABICS LI
+14D6 ; [.3359.0020.0002] # CANADIAN SYLLABICS LII
+14D7 ; [.335A.0020.0002] # CANADIAN SYLLABICS LO
+14D8 ; [.335B.0020.0002] # CANADIAN SYLLABICS LOO
+14D9 ; [.335C.0020.0002] # CANADIAN SYLLABICS Y-CREE LOO
+14DA ; [.335D.0020.0002] # CANADIAN SYLLABICS LA
+14DB ; [.335E.0020.0002] # CANADIAN SYLLABICS LAA
+14DC ; [.335F.0020.0002] # CANADIAN SYLLABICS LWE
+14DD ; [.3360.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWE
+14DE ; [.3361.0020.0002] # CANADIAN SYLLABICS LWI
+14DF ; [.3362.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWI
+14E0 ; [.3363.0020.0002] # CANADIAN SYLLABICS LWII
+14E1 ; [.3364.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWII
+14E2 ; [.3365.0020.0002] # CANADIAN SYLLABICS LWO
+14E3 ; [.3366.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWO
+14E4 ; [.3367.0020.0002] # CANADIAN SYLLABICS LWOO
+14E5 ; [.3368.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWOO
+14E6 ; [.3369.0020.0002] # CANADIAN SYLLABICS LWA
+14E7 ; [.336A.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWA
+14E8 ; [.336B.0020.0002] # CANADIAN SYLLABICS LWAA
+14E9 ; [.336C.0020.0002] # CANADIAN SYLLABICS WEST-CREE LWAA
+14EA ; [.336D.0020.0002] # CANADIAN SYLLABICS L
+14EB ; [.336E.0020.0002] # CANADIAN SYLLABICS WEST-CREE L
+14EC ; [.336F.0020.0002] # CANADIAN SYLLABICS MEDIAL L
+14ED ; [.3370.0020.0002] # CANADIAN SYLLABICS SE
+14EE ; [.3371.0020.0002] # CANADIAN SYLLABICS SAAI
+14EF ; [.3372.0020.0002] # CANADIAN SYLLABICS SI
+14F0 ; [.3373.0020.0002] # CANADIAN SYLLABICS SII
+14F1 ; [.3374.0020.0002] # CANADIAN SYLLABICS SO
+14F2 ; [.3375.0020.0002] # CANADIAN SYLLABICS SOO
+14F3 ; [.3376.0020.0002] # CANADIAN SYLLABICS Y-CREE SOO
+14F4 ; [.3377.0020.0002] # CANADIAN SYLLABICS SA
+14F5 ; [.3378.0020.0002] # CANADIAN SYLLABICS SAA
+14F6 ; [.3379.0020.0002] # CANADIAN SYLLABICS SWE
+14F7 ; [.337A.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWE
+14F8 ; [.337B.0020.0002] # CANADIAN SYLLABICS SWI
+14F9 ; [.337C.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWI
+14FA ; [.337D.0020.0002] # CANADIAN SYLLABICS SWII
+14FB ; [.337E.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWII
+14FC ; [.337F.0020.0002] # CANADIAN SYLLABICS SWO
+14FD ; [.3380.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWO
+14FE ; [.3381.0020.0002] # CANADIAN SYLLABICS SWOO
+14FF ; [.3382.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWOO
+1500 ; [.3383.0020.0002] # CANADIAN SYLLABICS SWA
+1501 ; [.3384.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWA
+1502 ; [.3385.0020.0002] # CANADIAN SYLLABICS SWAA
+1503 ; [.3386.0020.0002] # CANADIAN SYLLABICS WEST-CREE SWAA
+1504 ; [.3387.0020.0002] # CANADIAN SYLLABICS NASKAPI SWAA
+1505 ; [.3388.0020.0002] # CANADIAN SYLLABICS S
+1506 ; [.3389.0020.0002] # CANADIAN SYLLABICS ATHAPASCAN S
+1507 ; [.338A.0020.0002] # CANADIAN SYLLABICS SW
+1508 ; [.338B.0020.0002] # CANADIAN SYLLABICS BLACKFOOT S
+1509 ; [.338C.0020.0002] # CANADIAN SYLLABICS MOOSE-CREE SK
+150A ; [.338D.0020.0002] # CANADIAN SYLLABICS NASKAPI SKW
+150B ; [.338E.0020.0002] # CANADIAN SYLLABICS NASKAPI S-W
+150C ; [.338F.0020.0002] # CANADIAN SYLLABICS NASKAPI SPWA
+150D ; [.3390.0020.0002] # CANADIAN SYLLABICS NASKAPI STWA
+150E ; [.3391.0020.0002] # CANADIAN SYLLABICS NASKAPI SKWA
+150F ; [.3392.0020.0002] # CANADIAN SYLLABICS NASKAPI SCWA
+1510 ; [.3393.0020.0002] # CANADIAN SYLLABICS SHE
+1511 ; [.3394.0020.0002] # CANADIAN SYLLABICS SHI
+1512 ; [.3395.0020.0002] # CANADIAN SYLLABICS SHII
+1513 ; [.3396.0020.0002] # CANADIAN SYLLABICS SHO
+1514 ; [.3397.0020.0002] # CANADIAN SYLLABICS SHOO
+1515 ; [.3398.0020.0002] # CANADIAN SYLLABICS SHA
+1516 ; [.3399.0020.0002] # CANADIAN SYLLABICS SHAA
+1517 ; [.339A.0020.0002] # CANADIAN SYLLABICS SHWE
+1518 ; [.339B.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWE
+1519 ; [.339C.0020.0002] # CANADIAN SYLLABICS SHWI
+151A ; [.339D.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWI
+151B ; [.339E.0020.0002] # CANADIAN SYLLABICS SHWII
+151C ; [.339F.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWII
+151D ; [.33A0.0020.0002] # CANADIAN SYLLABICS SHWO
+151E ; [.33A1.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWO
+151F ; [.33A2.0020.0002] # CANADIAN SYLLABICS SHWOO
+1520 ; [.33A3.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWOO
+1521 ; [.33A4.0020.0002] # CANADIAN SYLLABICS SHWA
+1522 ; [.33A5.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWA
+1523 ; [.33A6.0020.0002] # CANADIAN SYLLABICS SHWAA
+1524 ; [.33A7.0020.0002] # CANADIAN SYLLABICS WEST-CREE SHWAA
+1525 ; [.33A8.0020.0002] # CANADIAN SYLLABICS SH
+1526 ; [.33A9.0020.0002] # CANADIAN SYLLABICS YE
+1527 ; [.33AA.0020.0002] # CANADIAN SYLLABICS YAAI
+1528 ; [.33AB.0020.0002] # CANADIAN SYLLABICS YI
+1529 ; [.33AC.0020.0002] # CANADIAN SYLLABICS YII
+152A ; [.33AD.0020.0002] # CANADIAN SYLLABICS YO
+152B ; [.33AE.0020.0002] # CANADIAN SYLLABICS YOO
+152C ; [.33AF.0020.0002] # CANADIAN SYLLABICS Y-CREE YOO
+152D ; [.33B0.0020.0002] # CANADIAN SYLLABICS YA
+152E ; [.33B1.0020.0002] # CANADIAN SYLLABICS YAA
+152F ; [.33B2.0020.0002] # CANADIAN SYLLABICS YWE
+1530 ; [.33B3.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWE
+1531 ; [.33B4.0020.0002] # CANADIAN SYLLABICS YWI
+1532 ; [.33B5.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWI
+1533 ; [.33B6.0020.0002] # CANADIAN SYLLABICS YWII
+1534 ; [.33B7.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWII
+1535 ; [.33B8.0020.0002] # CANADIAN SYLLABICS YWO
+1536 ; [.33B9.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWO
+1537 ; [.33BA.0020.0002] # CANADIAN SYLLABICS YWOO
+1538 ; [.33BB.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWOO
+1539 ; [.33BC.0020.0002] # CANADIAN SYLLABICS YWA
+153A ; [.33BD.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWA
+153B ; [.33BE.0020.0002] # CANADIAN SYLLABICS YWAA
+153C ; [.33BF.0020.0002] # CANADIAN SYLLABICS WEST-CREE YWAA
+153D ; [.33C0.0020.0002] # CANADIAN SYLLABICS NASKAPI YWAA
+153E ; [.33C1.0020.0002] # CANADIAN SYLLABICS Y
+153F ; [.33C2.0020.0002] # CANADIAN SYLLABICS BIBLE-CREE Y
+1540 ; [.33C3.0020.0002] # CANADIAN SYLLABICS WEST-CREE Y
+1541 ; [.33C4.0020.0002] # CANADIAN SYLLABICS SAYISI YI
+1542 ; [.33C5.0020.0002] # CANADIAN SYLLABICS RE
+1543 ; [.33C6.0020.0002] # CANADIAN SYLLABICS R-CREE RE
+1544 ; [.33C7.0020.0002] # CANADIAN SYLLABICS WEST-CREE LE
+1545 ; [.33C8.0020.0002] # CANADIAN SYLLABICS RAAI
+1546 ; [.33C9.0020.0002] # CANADIAN SYLLABICS RI
+1547 ; [.33CA.0020.0002] # CANADIAN SYLLABICS RII
+1548 ; [.33CB.0020.0002] # CANADIAN SYLLABICS RO
+1549 ; [.33CC.0020.0002] # CANADIAN SYLLABICS ROO
+154A ; [.33CD.0020.0002] # CANADIAN SYLLABICS WEST-CREE LO
+154B ; [.33CE.0020.0002] # CANADIAN SYLLABICS RA
+154C ; [.33CF.0020.0002] # CANADIAN SYLLABICS RAA
+154D ; [.33D0.0020.0002] # CANADIAN SYLLABICS WEST-CREE LA
+154E ; [.33D1.0020.0002] # CANADIAN SYLLABICS RWAA
+154F ; [.33D2.0020.0002] # CANADIAN SYLLABICS WEST-CREE RWAA
+1550 ; [.33D3.0020.0002] # CANADIAN SYLLABICS R
+1551 ; [.33D4.0020.0002] # CANADIAN SYLLABICS WEST-CREE R
+1552 ; [.33D5.0020.0002] # CANADIAN SYLLABICS MEDIAL R
+1553 ; [.33D6.0020.0002] # CANADIAN SYLLABICS FE
+1554 ; [.33D7.0020.0002] # CANADIAN SYLLABICS FAAI
+1555 ; [.33D8.0020.0002] # CANADIAN SYLLABICS FI
+1556 ; [.33D9.0020.0002] # CANADIAN SYLLABICS FII
+1557 ; [.33DA.0020.0002] # CANADIAN SYLLABICS FO
+1558 ; [.33DB.0020.0002] # CANADIAN SYLLABICS FOO
+1559 ; [.33DC.0020.0002] # CANADIAN SYLLABICS FA
+155A ; [.33DD.0020.0002] # CANADIAN SYLLABICS FAA
+155B ; [.33DE.0020.0002] # CANADIAN SYLLABICS FWAA
+155C ; [.33DF.0020.0002] # CANADIAN SYLLABICS WEST-CREE FWAA
+155D ; [.33E0.0020.0002] # CANADIAN SYLLABICS F
+155E ; [.33E1.0020.0002] # CANADIAN SYLLABICS THE
+155F ; [.33E2.0020.0002] # CANADIAN SYLLABICS N-CREE THE
+1560 ; [.33E3.0020.0002] # CANADIAN SYLLABICS THI
+1561 ; [.33E4.0020.0002] # CANADIAN SYLLABICS N-CREE THI
+1562 ; [.33E5.0020.0002] # CANADIAN SYLLABICS THII
+1563 ; [.33E6.0020.0002] # CANADIAN SYLLABICS N-CREE THII
+1564 ; [.33E7.0020.0002] # CANADIAN SYLLABICS THO
+1565 ; [.33E8.0020.0002] # CANADIAN SYLLABICS THOO
+1566 ; [.33E9.0020.0002] # CANADIAN SYLLABICS THA
+1567 ; [.33EA.0020.0002] # CANADIAN SYLLABICS THAA
+1568 ; [.33EB.0020.0002] # CANADIAN SYLLABICS THWAA
+1569 ; [.33EC.0020.0002] # CANADIAN SYLLABICS WEST-CREE THWAA
+156A ; [.33ED.0020.0002] # CANADIAN SYLLABICS TH
+156B ; [.33EE.0020.0002] # CANADIAN SYLLABICS TTHE
+156C ; [.33EF.0020.0002] # CANADIAN SYLLABICS TTHI
+156D ; [.33F0.0020.0002] # CANADIAN SYLLABICS TTHO
+156E ; [.33F1.0020.0002] # CANADIAN SYLLABICS TTHA
+156F ; [.33F2.0020.0002] # CANADIAN SYLLABICS TTH
+1570 ; [.33F3.0020.0002] # CANADIAN SYLLABICS TYE
+1571 ; [.33F4.0020.0002] # CANADIAN SYLLABICS TYI
+1572 ; [.33F5.0020.0002] # CANADIAN SYLLABICS TYO
+1573 ; [.33F6.0020.0002] # CANADIAN SYLLABICS TYA
+1574 ; [.33F7.0020.0002] # CANADIAN SYLLABICS NUNAVIK HE
+1575 ; [.33F8.0020.0002] # CANADIAN SYLLABICS NUNAVIK HI
+1576 ; [.33F9.0020.0002] # CANADIAN SYLLABICS NUNAVIK HII
+1577 ; [.33FA.0020.0002] # CANADIAN SYLLABICS NUNAVIK HO
+1578 ; [.33FB.0020.0002] # CANADIAN SYLLABICS NUNAVIK HOO
+1579 ; [.33FC.0020.0002] # CANADIAN SYLLABICS NUNAVIK HA
+157A ; [.33FD.0020.0002] # CANADIAN SYLLABICS NUNAVIK HAA
+157B ; [.33FE.0020.0002] # CANADIAN SYLLABICS NUNAVIK H
+157D ; [.33FF.0020.0002] # CANADIAN SYLLABICS HK
+166F ; [.3400.0020.0002] # CANADIAN SYLLABICS QAI
+157E ; [.3401.0020.0002] # CANADIAN SYLLABICS QAAI
+157F ; [.3402.0020.0002] # CANADIAN SYLLABICS QI
+1580 ; [.3403.0020.0002] # CANADIAN SYLLABICS QII
+1581 ; [.3404.0020.0002] # CANADIAN SYLLABICS QO
+1582 ; [.3405.0020.0002] # CANADIAN SYLLABICS QOO
+1583 ; [.3406.0020.0002] # CANADIAN SYLLABICS QA
+1584 ; [.3407.0020.0002] # CANADIAN SYLLABICS QAA
+1585 ; [.3408.0020.0002] # CANADIAN SYLLABICS Q
+1586 ; [.3409.0020.0002] # CANADIAN SYLLABICS TLHE
+1587 ; [.340A.0020.0002] # CANADIAN SYLLABICS TLHI
+1588 ; [.340B.0020.0002] # CANADIAN SYLLABICS TLHO
+1589 ; [.340C.0020.0002] # CANADIAN SYLLABICS TLHA
+158A ; [.340D.0020.0002] # CANADIAN SYLLABICS WEST-CREE RE
+158B ; [.340E.0020.0002] # CANADIAN SYLLABICS WEST-CREE RI
+158C ; [.340F.0020.0002] # CANADIAN SYLLABICS WEST-CREE RO
+158D ; [.3410.0020.0002] # CANADIAN SYLLABICS WEST-CREE RA
+1670 ; [.3411.0020.0002] # CANADIAN SYLLABICS NGAI
+158E ; [.3412.0020.0002] # CANADIAN SYLLABICS NGAAI
+158F ; [.3413.0020.0002] # CANADIAN SYLLABICS NGI
+1590 ; [.3414.0020.0002] # CANADIAN SYLLABICS NGII
+1591 ; [.3415.0020.0002] # CANADIAN SYLLABICS NGO
+1592 ; [.3416.0020.0002] # CANADIAN SYLLABICS NGOO
+1593 ; [.3417.0020.0002] # CANADIAN SYLLABICS NGA
+1594 ; [.3418.0020.0002] # CANADIAN SYLLABICS NGAA
+1595 ; [.3419.0020.0002] # CANADIAN SYLLABICS NG
+1671 ; [.341A.0020.0002] # CANADIAN SYLLABICS NNGI
+1672 ; [.341B.0020.0002] # CANADIAN SYLLABICS NNGII
+1673 ; [.341C.0020.0002] # CANADIAN SYLLABICS NNGO
+1674 ; [.341D.0020.0002] # CANADIAN SYLLABICS NNGOO
+1675 ; [.341E.0020.0002] # CANADIAN SYLLABICS NNGA
+1676 ; [.341F.0020.0002] # CANADIAN SYLLABICS NNGAA
+1596 ; [.3420.0020.0002] # CANADIAN SYLLABICS NNG
+1597 ; [.3421.0020.0002] # CANADIAN SYLLABICS SAYISI SHE
+1598 ; [.3422.0020.0002] # CANADIAN SYLLABICS SAYISI SHI
+1599 ; [.3423.0020.0002] # CANADIAN SYLLABICS SAYISI SHO
+159A ; [.3424.0020.0002] # CANADIAN SYLLABICS SAYISI SHA
+159B ; [.3425.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THE
+159C ; [.3426.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THI
+159D ; [.3427.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THO
+159E ; [.3428.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THA
+159F ; [.3429.0020.0002] # CANADIAN SYLLABICS WOODS-CREE TH
+15A0 ; [.342A.0020.0002] # CANADIAN SYLLABICS LHI
+15A1 ; [.342B.0020.0002] # CANADIAN SYLLABICS LHII
+15A2 ; [.342C.0020.0002] # CANADIAN SYLLABICS LHO
+15A3 ; [.342D.0020.0002] # CANADIAN SYLLABICS LHOO
+15A4 ; [.342E.0020.0002] # CANADIAN SYLLABICS LHA
+15A5 ; [.342F.0020.0002] # CANADIAN SYLLABICS LHAA
+15A6 ; [.3430.0020.0002] # CANADIAN SYLLABICS LH
+157C ; [.3431.0020.0002] # CANADIAN SYLLABICS NUNAVUT H
+15A7 ; [.3432.0020.0002] # CANADIAN SYLLABICS TH-CREE THE
+15A8 ; [.3433.0020.0002] # CANADIAN SYLLABICS TH-CREE THI
+15A9 ; [.3434.0020.0002] # CANADIAN SYLLABICS TH-CREE THII
+15AA ; [.3435.0020.0002] # CANADIAN SYLLABICS TH-CREE THO
+15AB ; [.3436.0020.0002] # CANADIAN SYLLABICS TH-CREE THOO
+15AC ; [.3437.0020.0002] # CANADIAN SYLLABICS TH-CREE THA
+15AD ; [.3438.0020.0002] # CANADIAN SYLLABICS TH-CREE THAA
+15AE ; [.3439.0020.0002] # CANADIAN SYLLABICS TH-CREE TH
+15AF ; [.343A.0020.0002] # CANADIAN SYLLABICS AIVILIK B
+15B0 ; [.343B.0020.0002] # CANADIAN SYLLABICS BLACKFOOT E
+15B1 ; [.343C.0020.0002] # CANADIAN SYLLABICS BLACKFOOT I
+15B2 ; [.343D.0020.0002] # CANADIAN SYLLABICS BLACKFOOT O
+15B3 ; [.343E.0020.0002] # CANADIAN SYLLABICS BLACKFOOT A
+15B4 ; [.343F.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WE
+15B5 ; [.3440.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WI
+15B6 ; [.3441.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WO
+15B7 ; [.3442.0020.0002] # CANADIAN SYLLABICS BLACKFOOT WA
+15B8 ; [.3443.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NE
+15B9 ; [.3444.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NI
+15BA ; [.3445.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NO
+15BB ; [.3446.0020.0002] # CANADIAN SYLLABICS BLACKFOOT NA
+15BC ; [.3447.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KE
+15BD ; [.3448.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KI
+15BE ; [.3449.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KO
+15BF ; [.344A.0020.0002] # CANADIAN SYLLABICS BLACKFOOT KA
+15C0 ; [.344B.0020.0002] # CANADIAN SYLLABICS SAYISI HE
+15C1 ; [.344C.0020.0002] # CANADIAN SYLLABICS SAYISI HI
+15C2 ; [.344D.0020.0002] # CANADIAN SYLLABICS SAYISI HO
+15C3 ; [.344E.0020.0002] # CANADIAN SYLLABICS SAYISI HA
+15C4 ; [.344F.0020.0002] # CANADIAN SYLLABICS CARRIER GHU
+15C5 ; [.3450.0020.0002] # CANADIAN SYLLABICS CARRIER GHO
+15C6 ; [.3451.0020.0002] # CANADIAN SYLLABICS CARRIER GHE
+15C7 ; [.3452.0020.0002] # CANADIAN SYLLABICS CARRIER GHEE
+15C8 ; [.3453.0020.0002] # CANADIAN SYLLABICS CARRIER GHI
+15C9 ; [.3454.0020.0002] # CANADIAN SYLLABICS CARRIER GHA
+15CA ; [.3455.0020.0002] # CANADIAN SYLLABICS CARRIER RU
+15CB ; [.3456.0020.0002] # CANADIAN SYLLABICS CARRIER RO
+15CC ; [.3457.0020.0002] # CANADIAN SYLLABICS CARRIER RE
+15CD ; [.3458.0020.0002] # CANADIAN SYLLABICS CARRIER REE
+15CE ; [.3459.0020.0002] # CANADIAN SYLLABICS CARRIER RI
+15CF ; [.345A.0020.0002] # CANADIAN SYLLABICS CARRIER RA
+15D0 ; [.345B.0020.0002] # CANADIAN SYLLABICS CARRIER WU
+15D1 ; [.345C.0020.0002] # CANADIAN SYLLABICS CARRIER WO
+15D2 ; [.345D.0020.0002] # CANADIAN SYLLABICS CARRIER WE
+15D3 ; [.345E.0020.0002] # CANADIAN SYLLABICS CARRIER WEE
+15D4 ; [.345F.0020.0002] # CANADIAN SYLLABICS CARRIER WI
+15D5 ; [.3460.0020.0002] # CANADIAN SYLLABICS CARRIER WA
+15D6 ; [.3461.0020.0002] # CANADIAN SYLLABICS CARRIER HWU
+15D7 ; [.3462.0020.0002] # CANADIAN SYLLABICS CARRIER HWO
+15D8 ; [.3463.0020.0002] # CANADIAN SYLLABICS CARRIER HWE
+15D9 ; [.3464.0020.0002] # CANADIAN SYLLABICS CARRIER HWEE
+15DA ; [.3465.0020.0002] # CANADIAN SYLLABICS CARRIER HWI
+15DB ; [.3466.0020.0002] # CANADIAN SYLLABICS CARRIER HWA
+15DC ; [.3467.0020.0002] # CANADIAN SYLLABICS CARRIER THU
+15DD ; [.3468.0020.0002] # CANADIAN SYLLABICS CARRIER THO
+15DE ; [.3469.0020.0002] # CANADIAN SYLLABICS CARRIER THE
+15DF ; [.346A.0020.0002] # CANADIAN SYLLABICS CARRIER THEE
+15E0 ; [.346B.0020.0002] # CANADIAN SYLLABICS CARRIER THI
+15E1 ; [.346C.0020.0002] # CANADIAN SYLLABICS CARRIER THA
+15E2 ; [.346D.0020.0002] # CANADIAN SYLLABICS CARRIER TTU
+15E3 ; [.346E.0020.0002] # CANADIAN SYLLABICS CARRIER TTO
+15E4 ; [.346F.0020.0002] # CANADIAN SYLLABICS CARRIER TTE
+15E5 ; [.3470.0020.0002] # CANADIAN SYLLABICS CARRIER TTEE
+15E6 ; [.3471.0020.0002] # CANADIAN SYLLABICS CARRIER TTI
+15E7 ; [.3472.0020.0002] # CANADIAN SYLLABICS CARRIER TTA
+15E8 ; [.3473.0020.0002] # CANADIAN SYLLABICS CARRIER PU
+15E9 ; [.3474.0020.0002] # CANADIAN SYLLABICS CARRIER PO
+15EA ; [.3475.0020.0002] # CANADIAN SYLLABICS CARRIER PE
+15EB ; [.3476.0020.0002] # CANADIAN SYLLABICS CARRIER PEE
+15EC ; [.3477.0020.0002] # CANADIAN SYLLABICS CARRIER PI
+15ED ; [.3478.0020.0002] # CANADIAN SYLLABICS CARRIER PA
+15EE ; [.3479.0020.0002] # CANADIAN SYLLABICS CARRIER P
+15EF ; [.347A.0020.0002] # CANADIAN SYLLABICS CARRIER GU
+15F0 ; [.347B.0020.0002] # CANADIAN SYLLABICS CARRIER GO
+15F1 ; [.347C.0020.0002] # CANADIAN SYLLABICS CARRIER GE
+15F2 ; [.347D.0020.0002] # CANADIAN SYLLABICS CARRIER GEE
+15F3 ; [.347E.0020.0002] # CANADIAN SYLLABICS CARRIER GI
+15F4 ; [.347F.0020.0002] # CANADIAN SYLLABICS CARRIER GA
+15F5 ; [.3480.0020.0002] # CANADIAN SYLLABICS CARRIER KHU
+15F6 ; [.3481.0020.0002] # CANADIAN SYLLABICS CARRIER KHO
+15F7 ; [.3482.0020.0002] # CANADIAN SYLLABICS CARRIER KHE
+15F8 ; [.3483.0020.0002] # CANADIAN SYLLABICS CARRIER KHEE
+15F9 ; [.3484.0020.0002] # CANADIAN SYLLABICS CARRIER KHI
+15FA ; [.3485.0020.0002] # CANADIAN SYLLABICS CARRIER KHA
+15FB ; [.3486.0020.0002] # CANADIAN SYLLABICS CARRIER KKU
+15FC ; [.3487.0020.0002] # CANADIAN SYLLABICS CARRIER KKO
+15FD ; [.3488.0020.0002] # CANADIAN SYLLABICS CARRIER KKE
+15FE ; [.3489.0020.0002] # CANADIAN SYLLABICS CARRIER KKEE
+15FF ; [.348A.0020.0002] # CANADIAN SYLLABICS CARRIER KKI
+1600 ; [.348B.0020.0002] # CANADIAN SYLLABICS CARRIER KKA
+1601 ; [.348C.0020.0002] # CANADIAN SYLLABICS CARRIER KK
+1602 ; [.348D.0020.0002] # CANADIAN SYLLABICS CARRIER NU
+1603 ; [.348E.0020.0002] # CANADIAN SYLLABICS CARRIER NO
+1604 ; [.348F.0020.0002] # CANADIAN SYLLABICS CARRIER NE
+1605 ; [.3490.0020.0002] # CANADIAN SYLLABICS CARRIER NEE
+1606 ; [.3491.0020.0002] # CANADIAN SYLLABICS CARRIER NI
+1607 ; [.3492.0020.0002] # CANADIAN SYLLABICS CARRIER NA
+1608 ; [.3493.0020.0002] # CANADIAN SYLLABICS CARRIER MU
+1609 ; [.3494.0020.0002] # CANADIAN SYLLABICS CARRIER MO
+160A ; [.3495.0020.0002] # CANADIAN SYLLABICS CARRIER ME
+160B ; [.3496.0020.0002] # CANADIAN SYLLABICS CARRIER MEE
+160C ; [.3497.0020.0002] # CANADIAN SYLLABICS CARRIER MI
+160D ; [.3498.0020.0002] # CANADIAN SYLLABICS CARRIER MA
+160E ; [.3499.0020.0002] # CANADIAN SYLLABICS CARRIER YU
+160F ; [.349A.0020.0002] # CANADIAN SYLLABICS CARRIER YO
+1610 ; [.349B.0020.0002] # CANADIAN SYLLABICS CARRIER YE
+1611 ; [.349C.0020.0002] # CANADIAN SYLLABICS CARRIER YEE
+1612 ; [.349D.0020.0002] # CANADIAN SYLLABICS CARRIER YI
+1613 ; [.349E.0020.0002] # CANADIAN SYLLABICS CARRIER YA
+1614 ; [.349F.0020.0002] # CANADIAN SYLLABICS CARRIER JU
+1615 ; [.34A0.0020.0002] # CANADIAN SYLLABICS SAYISI JU
+1616 ; [.34A1.0020.0002] # CANADIAN SYLLABICS CARRIER JO
+1617 ; [.34A2.0020.0002] # CANADIAN SYLLABICS CARRIER JE
+1618 ; [.34A3.0020.0002] # CANADIAN SYLLABICS CARRIER JEE
+1619 ; [.34A4.0020.0002] # CANADIAN SYLLABICS CARRIER JI
+161A ; [.34A5.0020.0002] # CANADIAN SYLLABICS SAYISI JI
+161B ; [.34A6.0020.0002] # CANADIAN SYLLABICS CARRIER JA
+161C ; [.34A7.0020.0002] # CANADIAN SYLLABICS CARRIER JJU
+161D ; [.34A8.0020.0002] # CANADIAN SYLLABICS CARRIER JJO
+161E ; [.34A9.0020.0002] # CANADIAN SYLLABICS CARRIER JJE
+161F ; [.34AA.0020.0002] # CANADIAN SYLLABICS CARRIER JJEE
+1620 ; [.34AB.0020.0002] # CANADIAN SYLLABICS CARRIER JJI
+1621 ; [.34AC.0020.0002] # CANADIAN SYLLABICS CARRIER JJA
+1622 ; [.34AD.0020.0002] # CANADIAN SYLLABICS CARRIER LU
+1623 ; [.34AE.0020.0002] # CANADIAN SYLLABICS CARRIER LO
+1624 ; [.34AF.0020.0002] # CANADIAN SYLLABICS CARRIER LE
+1625 ; [.34B0.0020.0002] # CANADIAN SYLLABICS CARRIER LEE
+1626 ; [.34B1.0020.0002] # CANADIAN SYLLABICS CARRIER LI
+1627 ; [.34B2.0020.0002] # CANADIAN SYLLABICS CARRIER LA
+1628 ; [.34B3.0020.0002] # CANADIAN SYLLABICS CARRIER DLU
+1629 ; [.34B4.0020.0002] # CANADIAN SYLLABICS CARRIER DLO
+162A ; [.34B5.0020.0002] # CANADIAN SYLLABICS CARRIER DLE
+162B ; [.34B6.0020.0002] # CANADIAN SYLLABICS CARRIER DLEE
+162C ; [.34B7.0020.0002] # CANADIAN SYLLABICS CARRIER DLI
+162D ; [.34B8.0020.0002] # CANADIAN SYLLABICS CARRIER DLA
+162E ; [.34B9.0020.0002] # CANADIAN SYLLABICS CARRIER LHU
+162F ; [.34BA.0020.0002] # CANADIAN SYLLABICS CARRIER LHO
+1630 ; [.34BB.0020.0002] # CANADIAN SYLLABICS CARRIER LHE
+1631 ; [.34BC.0020.0002] # CANADIAN SYLLABICS CARRIER LHEE
+1632 ; [.34BD.0020.0002] # CANADIAN SYLLABICS CARRIER LHI
+1633 ; [.34BE.0020.0002] # CANADIAN SYLLABICS CARRIER LHA
+1634 ; [.34BF.0020.0002] # CANADIAN SYLLABICS CARRIER TLHU
+1635 ; [.34C0.0020.0002] # CANADIAN SYLLABICS CARRIER TLHO
+1636 ; [.34C1.0020.0002] # CANADIAN SYLLABICS CARRIER TLHE
+1637 ; [.34C2.0020.0002] # CANADIAN SYLLABICS CARRIER TLHEE
+1638 ; [.34C3.0020.0002] # CANADIAN SYLLABICS CARRIER TLHI
+1639 ; [.34C4.0020.0002] # CANADIAN SYLLABICS CARRIER TLHA
+163A ; [.34C5.0020.0002] # CANADIAN SYLLABICS CARRIER TLU
+163B ; [.34C6.0020.0002] # CANADIAN SYLLABICS CARRIER TLO
+163C ; [.34C7.0020.0002] # CANADIAN SYLLABICS CARRIER TLE
+163D ; [.34C8.0020.0002] # CANADIAN SYLLABICS CARRIER TLEE
+163E ; [.34C9.0020.0002] # CANADIAN SYLLABICS CARRIER TLI
+163F ; [.34CA.0020.0002] # CANADIAN SYLLABICS CARRIER TLA
+1640 ; [.34CB.0020.0002] # CANADIAN SYLLABICS CARRIER ZU
+1641 ; [.34CC.0020.0002] # CANADIAN SYLLABICS CARRIER ZO
+1642 ; [.34CD.0020.0002] # CANADIAN SYLLABICS CARRIER ZE
+1643 ; [.34CE.0020.0002] # CANADIAN SYLLABICS CARRIER ZEE
+1644 ; [.34CF.0020.0002] # CANADIAN SYLLABICS CARRIER ZI
+1645 ; [.34D0.0020.0002] # CANADIAN SYLLABICS CARRIER ZA
+1646 ; [.34D1.0020.0002] # CANADIAN SYLLABICS CARRIER Z
+1647 ; [.34D2.0020.0002] # CANADIAN SYLLABICS CARRIER INITIAL Z
+1648 ; [.34D3.0020.0002] # CANADIAN SYLLABICS CARRIER DZU
+1649 ; [.34D4.0020.0002] # CANADIAN SYLLABICS CARRIER DZO
+164A ; [.34D5.0020.0002] # CANADIAN SYLLABICS CARRIER DZE
+164B ; [.34D6.0020.0002] # CANADIAN SYLLABICS CARRIER DZEE
+164C ; [.34D7.0020.0002] # CANADIAN SYLLABICS CARRIER DZI
+164D ; [.34D8.0020.0002] # CANADIAN SYLLABICS CARRIER DZA
+164E ; [.34D9.0020.0002] # CANADIAN SYLLABICS CARRIER SU
+164F ; [.34DA.0020.0002] # CANADIAN SYLLABICS CARRIER SO
+1650 ; [.34DB.0020.0002] # CANADIAN SYLLABICS CARRIER SE
+1651 ; [.34DC.0020.0002] # CANADIAN SYLLABICS CARRIER SEE
+1652 ; [.34DD.0020.0002] # CANADIAN SYLLABICS CARRIER SI
+1653 ; [.34DE.0020.0002] # CANADIAN SYLLABICS CARRIER SA
+1654 ; [.34DF.0020.0002] # CANADIAN SYLLABICS CARRIER SHU
+1655 ; [.34E0.0020.0002] # CANADIAN SYLLABICS CARRIER SHO
+1656 ; [.34E1.0020.0002] # CANADIAN SYLLABICS CARRIER SHE
+1657 ; [.34E2.0020.0002] # CANADIAN SYLLABICS CARRIER SHEE
+1658 ; [.34E3.0020.0002] # CANADIAN SYLLABICS CARRIER SHI
+1659 ; [.34E4.0020.0002] # CANADIAN SYLLABICS CARRIER SHA
+165A ; [.34E5.0020.0002] # CANADIAN SYLLABICS CARRIER SH
+165B ; [.34E6.0020.0002] # CANADIAN SYLLABICS CARRIER TSU
+165C ; [.34E7.0020.0002] # CANADIAN SYLLABICS CARRIER TSO
+165D ; [.34E8.0020.0002] # CANADIAN SYLLABICS CARRIER TSE
+165E ; [.34E9.0020.0002] # CANADIAN SYLLABICS CARRIER TSEE
+165F ; [.34EA.0020.0002] # CANADIAN SYLLABICS CARRIER TSI
+1660 ; [.34EB.0020.0002] # CANADIAN SYLLABICS CARRIER TSA
+1661 ; [.34EC.0020.0002] # CANADIAN SYLLABICS CARRIER CHU
+1662 ; [.34ED.0020.0002] # CANADIAN SYLLABICS CARRIER CHO
+1663 ; [.34EE.0020.0002] # CANADIAN SYLLABICS CARRIER CHE
+1664 ; [.34EF.0020.0002] # CANADIAN SYLLABICS CARRIER CHEE
+1665 ; [.34F0.0020.0002] # CANADIAN SYLLABICS CARRIER CHI
+1666 ; [.34F1.0020.0002] # CANADIAN SYLLABICS CARRIER CHA
+1667 ; [.34F2.0020.0002] # CANADIAN SYLLABICS CARRIER TTSU
+1668 ; [.34F3.0020.0002] # CANADIAN SYLLABICS CARRIER TTSO
+1669 ; [.34F4.0020.0002] # CANADIAN SYLLABICS CARRIER TTSE
+166A ; [.34F5.0020.0002] # CANADIAN SYLLABICS CARRIER TTSEE
+166B ; [.34F6.0020.0002] # CANADIAN SYLLABICS CARRIER TTSI
+166C ; [.34F7.0020.0002] # CANADIAN SYLLABICS CARRIER TTSA
+1677 ; [.34F8.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWEE
+1678 ; [.34F9.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWI
+1679 ; [.34FA.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWII
+167A ; [.34FB.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWO
+167B ; [.34FC.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWOO
+167C ; [.34FD.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWA
+167D ; [.34FE.0020.0002] # CANADIAN SYLLABICS WOODS-CREE THWAA
+167E ; [.34FF.0020.0002] # CANADIAN SYLLABICS WOODS-CREE FINAL TH
+167F ; [.3500.0020.0002] # CANADIAN SYLLABICS BLACKFOOT W
+18B0 ; [.3501.0020.0002] # CANADIAN SYLLABICS OY
+18B1 ; [.3502.0020.0002] # CANADIAN SYLLABICS AY
+18B2 ; [.3503.0020.0002] # CANADIAN SYLLABICS AAY
+18B3 ; [.3504.0020.0002] # CANADIAN SYLLABICS WAY
+18B4 ; [.3505.0020.0002] # CANADIAN SYLLABICS POY
+18B5 ; [.3506.0020.0002] # CANADIAN SYLLABICS PAY
+18B6 ; [.3507.0020.0002] # CANADIAN SYLLABICS PWOY
+18B7 ; [.3508.0020.0002] # CANADIAN SYLLABICS TAY
+18B8 ; [.3509.0020.0002] # CANADIAN SYLLABICS KAY
+18B9 ; [.350A.0020.0002] # CANADIAN SYLLABICS KWAY
+18BA ; [.350B.0020.0002] # CANADIAN SYLLABICS MAY
+18BB ; [.350C.0020.0002] # CANADIAN SYLLABICS NOY
+18BC ; [.350D.0020.0002] # CANADIAN SYLLABICS NAY
+18BD ; [.350E.0020.0002] # CANADIAN SYLLABICS LAY
+18BE ; [.350F.0020.0002] # CANADIAN SYLLABICS SOY
+18BF ; [.3510.0020.0002] # CANADIAN SYLLABICS SAY
+18C0 ; [.3511.0020.0002] # CANADIAN SYLLABICS SHOY
+18C1 ; [.3512.0020.0002] # CANADIAN SYLLABICS SHAY
+18C2 ; [.3513.0020.0002] # CANADIAN SYLLABICS SHWOY
+18C3 ; [.3514.0020.0002] # CANADIAN SYLLABICS YOY
+18C4 ; [.3515.0020.0002] # CANADIAN SYLLABICS YAY
+18C5 ; [.3516.0020.0002] # CANADIAN SYLLABICS RAY
+18C6 ; [.3517.0020.0002] # CANADIAN SYLLABICS NWI
+18C7 ; [.3518.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWI
+18C8 ; [.3519.0020.0002] # CANADIAN SYLLABICS NWII
+18C9 ; [.351A.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWII
+18CA ; [.351B.0020.0002] # CANADIAN SYLLABICS NWO
+18CB ; [.351C.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWO
+18CC ; [.351D.0020.0002] # CANADIAN SYLLABICS NWOO
+18CD ; [.351E.0020.0002] # CANADIAN SYLLABICS OJIBWAY NWOO
+18CE ; [.351F.0020.0002] # CANADIAN SYLLABICS RWEE
+18CF ; [.3520.0020.0002] # CANADIAN SYLLABICS RWI
+18D0 ; [.3521.0020.0002] # CANADIAN SYLLABICS RWII
+18D1 ; [.3522.0020.0002] # CANADIAN SYLLABICS RWO
+18D2 ; [.3523.0020.0002] # CANADIAN SYLLABICS RWOO
+18D3 ; [.3524.0020.0002] # CANADIAN SYLLABICS RWA
+18D4 ; [.3525.0020.0002] # CANADIAN SYLLABICS OJIBWAY P
+18D5 ; [.3526.0020.0002] # CANADIAN SYLLABICS OJIBWAY T
+18D6 ; [.3527.0020.0002] # CANADIAN SYLLABICS OJIBWAY K
+18D7 ; [.3528.0020.0002] # CANADIAN SYLLABICS OJIBWAY C
+18D8 ; [.3529.0020.0002] # CANADIAN SYLLABICS OJIBWAY M
+18D9 ; [.352A.0020.0002] # CANADIAN SYLLABICS OJIBWAY N
+18DA ; [.352B.0020.0002] # CANADIAN SYLLABICS OJIBWAY S
+18DB ; [.352C.0020.0002] # CANADIAN SYLLABICS OJIBWAY SH
+18DC ; [.352D.0020.0002] # CANADIAN SYLLABICS EASTERN W
+18DD ; [.352E.0020.0002] # CANADIAN SYLLABICS WESTERN W
+18DE ; [.352F.0020.0002] # CANADIAN SYLLABICS FINAL SMALL RING
+18DF ; [.3530.0020.0002] # CANADIAN SYLLABICS FINAL RAISED DOT
+18E0 ; [.3531.0020.0002] # CANADIAN SYLLABICS R-CREE RWE
+18E1 ; [.3532.0020.0002] # CANADIAN SYLLABICS WEST-CREE LOO
+18E2 ; [.3533.0020.0002] # CANADIAN SYLLABICS WEST-CREE LAA
+18E3 ; [.3534.0020.0002] # CANADIAN SYLLABICS THWE
+18E4 ; [.3535.0020.0002] # CANADIAN SYLLABICS THWA
+18E5 ; [.3536.0020.0002] # CANADIAN SYLLABICS TTHWE
+18E6 ; [.3537.0020.0002] # CANADIAN SYLLABICS TTHOO
+18E7 ; [.3538.0020.0002] # CANADIAN SYLLABICS TTHAA
+18E8 ; [.3539.0020.0002] # CANADIAN SYLLABICS TLHWE
+18E9 ; [.353A.0020.0002] # CANADIAN SYLLABICS TLHOO
+18EA ; [.353B.0020.0002] # CANADIAN SYLLABICS SAYISI SHWE
+18EB ; [.353C.0020.0002] # CANADIAN SYLLABICS SAYISI SHOO
+18EC ; [.353D.0020.0002] # CANADIAN SYLLABICS SAYISI HOO
+18ED ; [.353E.0020.0002] # CANADIAN SYLLABICS CARRIER GWU
+18EE ; [.353F.0020.0002] # CANADIAN SYLLABICS CARRIER DENE GEE
+18EF ; [.3540.0020.0002] # CANADIAN SYLLABICS CARRIER GAA
+18F0 ; [.3541.0020.0002] # CANADIAN SYLLABICS CARRIER GWA
+18F1 ; [.3542.0020.0002] # CANADIAN SYLLABICS SAYISI JUU
+18F2 ; [.3543.0020.0002] # CANADIAN SYLLABICS CARRIER JWA
+18F3 ; [.3544.0020.0002] # CANADIAN SYLLABICS BEAVER DENE L
+18F4 ; [.3545.0020.0002] # CANADIAN SYLLABICS BEAVER DENE R
+18F5 ; [.3546.0020.0002] # CANADIAN SYLLABICS CARRIER DENTAL S
+1681 ; [.3547.0020.0002] # OGHAM LETTER BEITH
+1682 ; [.3548.0020.0002] # OGHAM LETTER LUIS
+1683 ; [.3549.0020.0002] # OGHAM LETTER FEARN
+1684 ; [.354A.0020.0002] # OGHAM LETTER SAIL
+1685 ; [.354B.0020.0002] # OGHAM LETTER NION
+1686 ; [.354C.0020.0002] # OGHAM LETTER UATH
+1687 ; [.354D.0020.0002] # OGHAM LETTER DAIR
+1688 ; [.354E.0020.0002] # OGHAM LETTER TINNE
+1689 ; [.354F.0020.0002] # OGHAM LETTER COLL
+168A ; [.3550.0020.0002] # OGHAM LETTER CEIRT
+168B ; [.3551.0020.0002] # OGHAM LETTER MUIN
+168C ; [.3552.0020.0002] # OGHAM LETTER GORT
+168D ; [.3553.0020.0002] # OGHAM LETTER NGEADAL
+168E ; [.3554.0020.0002] # OGHAM LETTER STRAIF
+168F ; [.3555.0020.0002] # OGHAM LETTER RUIS
+1690 ; [.3556.0020.0002] # OGHAM LETTER AILM
+1691 ; [.3557.0020.0002] # OGHAM LETTER ONN
+1692 ; [.3558.0020.0002] # OGHAM LETTER UR
+1693 ; [.3559.0020.0002] # OGHAM LETTER EADHADH
+1694 ; [.355A.0020.0002] # OGHAM LETTER IODHADH
+1695 ; [.355B.0020.0002] # OGHAM LETTER EABHADH
+1696 ; [.355C.0020.0002] # OGHAM LETTER OR
+1697 ; [.355D.0020.0002] # OGHAM LETTER UILLEANN
+1698 ; [.355E.0020.0002] # OGHAM LETTER IFIN
+1699 ; [.355F.0020.0002] # OGHAM LETTER EAMHANCHOLL
+169A ; [.3560.0020.0002] # OGHAM LETTER PEITH
+16A0 ; [.3561.0020.0002] # RUNIC LETTER FEHU FEOH FE F
+16A1 ; [.3561.0020.0004][.0000.010B.0004] # RUNIC LETTER V
+16A2 ; [.3562.0020.0002] # RUNIC LETTER URUZ UR U
+16A4 ; [.3562.0020.0004][.0000.010B.0004] # RUNIC LETTER Y
+16A5 ; [.3562.0020.0004][.0000.010C.0004] # RUNIC LETTER W
+16A6 ; [.3563.0020.0002] # RUNIC LETTER THURISAZ THURS THORN
+16A7 ; [.3563.0020.0004][.0000.010B.0004] # RUNIC LETTER ETH
+16F0 ; [.3563.0020.0004][.3563.0020.0004] # RUNIC BELGTHOR SYMBOL
+16A8 ; [.3564.0020.0002] # RUNIC LETTER ANSUZ A
+16A9 ; [.3564.0020.0004][.0000.010B.0004] # RUNIC LETTER OS O
+16AC ; [.3564.0020.0004][.0000.010C.0004] # RUNIC LETTER LONG-BRANCH-OSS O
+16AD ; [.3564.0020.0004][.0000.010D.0004] # RUNIC LETTER SHORT-TWIG-OSS O
+16AE ; [.3564.0020.0004][.0000.010E.0004] # RUNIC LETTER O
+16F4 ; [.3565.0020.0002] # RUNIC LETTER FRANKS CASKET OS
+16AF ; [.3566.0020.0002] # RUNIC LETTER OE
+16B0 ; [.3567.0020.0002] # RUNIC LETTER ON
+16B1 ; [.3568.0020.0002] # RUNIC LETTER RAIDO RAD REID R
+16B2 ; [.3569.0020.0002] # RUNIC LETTER KAUNA
+16B3 ; [.3569.0020.0004][.0000.010B.0004] # RUNIC LETTER CEN
+16B4 ; [.3569.0020.0004][.0000.010C.0004] # RUNIC LETTER KAUN K
+16B5 ; [.3569.0020.0004][.0000.010D.0004] # RUNIC LETTER G
+16B6 ; [.3569.0020.0004][.0000.010E.0004] # RUNIC LETTER ENG
+16F1 ; [.356A.0020.0002] # RUNIC LETTER K
+16B7 ; [.356B.0020.0002] # RUNIC LETTER GEBO GYFU G
+16B9 ; [.356C.0020.0002] # RUNIC LETTER WUNJO WYNN W
+16E9 ; [.356C.0020.0004][.0000.010B.0004] # RUNIC LETTER Q
+16BA ; [.356D.0020.0002] # RUNIC LETTER HAGLAZ H
+16BB ; [.356D.0020.0004][.0000.010B.0004] # RUNIC LETTER HAEGL H
+16BC ; [.356D.0020.0004][.0000.010C.0004] # RUNIC LETTER LONG-BRANCH-HAGALL H
+16BD ; [.356D.0020.0004][.0000.010D.0004] # RUNIC LETTER SHORT-TWIG-HAGALL H
+16BE ; [.356E.0020.0002] # RUNIC LETTER NAUDIZ NYD NAUD N
+16BF ; [.356E.0020.0004][.0000.010B.0004] # RUNIC LETTER SHORT-TWIG-NAUD N
+16C0 ; [.356E.0020.0004][.0000.010C.0004] # RUNIC LETTER DOTTED-N
+16C1 ; [.356F.0020.0002] # RUNIC LETTER ISAZ IS ISS I
+16C2 ; [.356F.0020.0004][.0000.010B.0004] # RUNIC LETTER E
+16F5 ; [.3570.0020.0002] # RUNIC LETTER FRANKS CASKET IS
+16C3 ; [.3571.0020.0002] # RUNIC LETTER JERAN J
+16C4 ; [.3571.0020.0004][.0000.010B.0004] # RUNIC LETTER GER
+16C5 ; [.3572.0020.0002] # RUNIC LETTER LONG-BRANCH-AR AE
+16C6 ; [.3572.0020.0004][.0000.010B.0004] # RUNIC LETTER SHORT-TWIG-AR A
+16EE ; [.3572.0020.0004][.357D.0020.0004] # RUNIC ARLAUG SYMBOL
+16C7 ; [.3573.0020.0002] # RUNIC LETTER IWAZ EOH
+16C8 ; [.3574.0020.0002] # RUNIC LETTER PERTHO PEORTH P
+16D5 ; [.3574.0020.0004][.0000.010B.0004] # RUNIC LETTER OPEN-P
+16C9 ; [.3575.0020.0002] # RUNIC LETTER ALGIZ EOLHX
+16CA ; [.3576.0020.0002] # RUNIC LETTER SOWILO S
+16CB ; [.3576.0020.0004][.0000.010B.0004] # RUNIC LETTER SIGEL LONG-BRANCH-SOL S
+16EA ; [.3576.0020.0004][.0000.010C.0004] # RUNIC LETTER X
+16CC ; [.3576.0020.0004][.0000.010D.0004] # RUNIC LETTER SHORT-TWIG-SOL S
+16CD ; [.3576.0020.0004][.0000.010E.0004] # RUNIC LETTER C
+16CE ; [.3576.0020.0004][.0000.010F.0004] # RUNIC LETTER Z
+16F2 ; [.3577.0020.0002] # RUNIC LETTER SH
+16CF ; [.3578.0020.0002] # RUNIC LETTER TIWAZ TIR TYR T
+16D0 ; [.3578.0020.0004][.0000.010B.0004] # RUNIC LETTER SHORT-TWIG-TYR T
+16D1 ; [.3578.0020.0004][.0000.010C.0004] # RUNIC LETTER D
+16D2 ; [.3579.0020.0002] # RUNIC LETTER BERKANAN BEORC BJARKAN B
+16D3 ; [.3579.0020.0004][.0000.010B.0004] # RUNIC LETTER SHORT-TWIG-BJARKAN B
+16D4 ; [.3579.0020.0004][.0000.010C.0004] # RUNIC LETTER DOTTED-P
+16D6 ; [.357A.0020.0002] # RUNIC LETTER EHWAZ EH E
+16F6 ; [.357B.0020.0002] # RUNIC LETTER FRANKS CASKET EH
+16D7 ; [.357C.0020.0002] # RUNIC LETTER MANNAZ MAN M
+16D8 ; [.357C.0020.0004][.0000.010B.0004] # RUNIC LETTER LONG-BRANCH-MADR M
+16D9 ; [.357C.0020.0004][.0000.010C.0004] # RUNIC LETTER SHORT-TWIG-MADR M
+16EF ; [.357C.0020.0004][.0000.010B.0004][.357C.0020.0004][.0000.010B.0004] # RUNIC TVIMADUR SYMBOL
+16DA ; [.357D.0020.0002] # RUNIC LETTER LAUKAZ LAGU LOGR L
+16DB ; [.357D.0020.0004][.0000.010B.0004] # RUNIC LETTER DOTTED-L
+16DC ; [.357E.0020.0002] # RUNIC LETTER INGWAZ
+16DD ; [.357E.0020.0004][.0000.010B.0004] # RUNIC LETTER ING
+16DE ; [.357F.0020.0002] # RUNIC LETTER DAGAZ DAEG D
+16DF ; [.3580.0020.0002] # RUNIC LETTER OTHALAN ETHEL O
+16F3 ; [.3581.0020.0002] # RUNIC LETTER OO
+16AA ; [.3582.0020.0002] # RUNIC LETTER AC A
+16F7 ; [.3583.0020.0002] # RUNIC LETTER FRANKS CASKET AC
+16AB ; [.3584.0020.0002] # RUNIC LETTER AESC
+16F8 ; [.3585.0020.0002] # RUNIC LETTER FRANKS CASKET AESC
+16A3 ; [.3586.0020.0002] # RUNIC LETTER YR
+16E0 ; [.3587.0020.0002] # RUNIC LETTER EAR
+16E3 ; [.3588.0020.0002] # RUNIC LETTER CALC
+16B8 ; [.3589.0020.0002] # RUNIC LETTER GAR
+16E4 ; [.358A.0020.0002] # RUNIC LETTER CEALC
+16E1 ; [.358B.0020.0002] # RUNIC LETTER IOR
+16E2 ; [.358C.0020.0002] # RUNIC LETTER CWEORTH
+16E5 ; [.358D.0020.0002] # RUNIC LETTER STAN
+16E6 ; [.358E.0020.0002] # RUNIC LETTER LONG-BRANCH-YR
+16E7 ; [.358E.0020.0004][.0000.010B.0004] # RUNIC LETTER SHORT-TWIG-YR
+16E8 ; [.358E.0020.0004][.0000.010C.0004] # RUNIC LETTER ICELANDIC-YR
+10CC0 ; [.358F.0020.0002] # OLD HUNGARIAN SMALL LETTER A
+10C80 ; [.358F.0020.0008] # OLD HUNGARIAN CAPITAL LETTER A
+10CC1 ; [.358F.0020.0004][.0000.010B.0004] # OLD HUNGARIAN SMALL LETTER AA
+10C81 ; [.358F.0020.000A][.0000.010B.0004] # OLD HUNGARIAN CAPITAL LETTER AA
+10CC2 ; [.3590.0020.0002] # OLD HUNGARIAN SMALL LETTER EB
+10C82 ; [.3590.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EB
+10CC3 ; [.3591.0020.0002] # OLD HUNGARIAN SMALL LETTER AMB
+10C83 ; [.3591.0020.0008] # OLD HUNGARIAN CAPITAL LETTER AMB
+10CC4 ; [.3592.0020.0002] # OLD HUNGARIAN SMALL LETTER EC
+10C84 ; [.3592.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EC
+10CC5 ; [.3593.0020.0002] # OLD HUNGARIAN SMALL LETTER ENC
+10C85 ; [.3593.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ENC
+10CC6 ; [.3594.0020.0002] # OLD HUNGARIAN SMALL LETTER ECS
+10C86 ; [.3594.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ECS
+10CC7 ; [.3595.0020.0002] # OLD HUNGARIAN SMALL LETTER ED
+10C87 ; [.3595.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ED
+10CC8 ; [.3596.0020.0002] # OLD HUNGARIAN SMALL LETTER AND
+10C88 ; [.3596.0020.0008] # OLD HUNGARIAN CAPITAL LETTER AND
+10CC9 ; [.3597.0020.0002] # OLD HUNGARIAN SMALL LETTER E
+10C89 ; [.3597.0020.0008] # OLD HUNGARIAN CAPITAL LETTER E
+10CCA ; [.3597.0020.0004][.0000.010B.0004] # OLD HUNGARIAN SMALL LETTER CLOSE E
+10C8A ; [.3597.0020.000A][.0000.010B.0004] # OLD HUNGARIAN CAPITAL LETTER CLOSE E
+10CCB ; [.3597.0020.0004][.0000.010C.0004] # OLD HUNGARIAN SMALL LETTER EE
+10C8B ; [.3597.0020.000A][.0000.010C.0004] # OLD HUNGARIAN CAPITAL LETTER EE
+10CCC ; [.3598.0020.0002] # OLD HUNGARIAN SMALL LETTER EF
+10C8C ; [.3598.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EF
+10CCD ; [.3599.0020.0002] # OLD HUNGARIAN SMALL LETTER EG
+10C8D ; [.3599.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EG
+10CCE ; [.359A.0020.0002] # OLD HUNGARIAN SMALL LETTER EGY
+10C8E ; [.359A.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EGY
+10CCF ; [.359B.0020.0002] # OLD HUNGARIAN SMALL LETTER EH
+10C8F ; [.359B.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EH
+10CD0 ; [.359C.0020.0002] # OLD HUNGARIAN SMALL LETTER I
+10C90 ; [.359C.0020.0008] # OLD HUNGARIAN CAPITAL LETTER I
+10CD1 ; [.359C.0020.0004][.0000.010B.0004] # OLD HUNGARIAN SMALL LETTER II
+10C91 ; [.359C.0020.000A][.0000.010B.0004] # OLD HUNGARIAN CAPITAL LETTER II
+10CD2 ; [.359D.0020.0002] # OLD HUNGARIAN SMALL LETTER EJ
+10C92 ; [.359D.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EJ
+10CD3 ; [.359E.0020.0002] # OLD HUNGARIAN SMALL LETTER EK
+10C93 ; [.359E.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EK
+10CD4 ; [.359F.0020.0002] # OLD HUNGARIAN SMALL LETTER AK
+10C94 ; [.359F.0020.0008] # OLD HUNGARIAN CAPITAL LETTER AK
+10CD5 ; [.35A0.0020.0002] # OLD HUNGARIAN SMALL LETTER UNK
+10C95 ; [.35A0.0020.0008] # OLD HUNGARIAN CAPITAL LETTER UNK
+10CD6 ; [.35A1.0020.0002] # OLD HUNGARIAN SMALL LETTER EL
+10C96 ; [.35A1.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EL
+10CD7 ; [.35A2.0020.0002] # OLD HUNGARIAN SMALL LETTER ELY
+10C97 ; [.35A2.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ELY
+10CD8 ; [.35A3.0020.0002] # OLD HUNGARIAN SMALL LETTER EM
+10C98 ; [.35A3.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EM
+10CD9 ; [.35A4.0020.0002] # OLD HUNGARIAN SMALL LETTER EN
+10C99 ; [.35A4.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EN
+10CDA ; [.35A5.0020.0002] # OLD HUNGARIAN SMALL LETTER ENY
+10C9A ; [.35A5.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ENY
+10CDB ; [.35A6.0020.0002] # OLD HUNGARIAN SMALL LETTER O
+10C9B ; [.35A6.0020.0008] # OLD HUNGARIAN CAPITAL LETTER O
+10CDC ; [.35A6.0020.0004][.0000.010B.0004] # OLD HUNGARIAN SMALL LETTER OO
+10C9C ; [.35A6.0020.000A][.0000.010B.0004] # OLD HUNGARIAN CAPITAL LETTER OO
+10CDD ; [.35A7.0020.0002] # OLD HUNGARIAN SMALL LETTER NIKOLSBURG OE
+10C9D ; [.35A7.0020.0008] # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE
+10CDE ; [.35A7.0020.0004][.0000.010B.0004] # OLD HUNGARIAN SMALL LETTER RUDIMENTA OE
+10C9E ; [.35A7.0020.000A][.0000.010B.0004] # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE
+10CDF ; [.35A7.0020.0004][.0000.010C.0004] # OLD HUNGARIAN SMALL LETTER OEE
+10C9F ; [.35A7.0020.000A][.0000.010C.0004] # OLD HUNGARIAN CAPITAL LETTER OEE
+10CE0 ; [.35A8.0020.0002] # OLD HUNGARIAN SMALL LETTER EP
+10CA0 ; [.35A8.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EP
+10CE1 ; [.35A9.0020.0002] # OLD HUNGARIAN SMALL LETTER EMP
+10CA1 ; [.35A9.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EMP
+10CE2 ; [.35AA.0020.0002] # OLD HUNGARIAN SMALL LETTER ER
+10CA2 ; [.35AA.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ER
+10CE3 ; [.35AA.0020.0004][.0000.010B.0004] # OLD HUNGARIAN SMALL LETTER SHORT ER
+10CA3 ; [.35AA.0020.000A][.0000.010B.0004] # OLD HUNGARIAN CAPITAL LETTER SHORT ER
+10CE4 ; [.35AB.0020.0002] # OLD HUNGARIAN SMALL LETTER ES
+10CA4 ; [.35AB.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ES
+10CE5 ; [.35AC.0020.0002] # OLD HUNGARIAN SMALL LETTER ESZ
+10CA5 ; [.35AC.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ESZ
+10CE6 ; [.35AD.0020.0002] # OLD HUNGARIAN SMALL LETTER ET
+10CA6 ; [.35AD.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ET
+10CE7 ; [.35AE.0020.0002] # OLD HUNGARIAN SMALL LETTER ENT
+10CA7 ; [.35AE.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ENT
+10CE8 ; [.35AF.0020.0002] # OLD HUNGARIAN SMALL LETTER ETY
+10CA8 ; [.35AF.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ETY
+10CE9 ; [.35B0.0020.0002] # OLD HUNGARIAN SMALL LETTER ECH
+10CA9 ; [.35B0.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ECH
+10CEA ; [.35B1.0020.0002] # OLD HUNGARIAN SMALL LETTER U
+10CAA ; [.35B1.0020.0008] # OLD HUNGARIAN CAPITAL LETTER U
+10CEB ; [.35B1.0020.0004][.0000.010B.0004] # OLD HUNGARIAN SMALL LETTER UU
+10CAB ; [.35B1.0020.000A][.0000.010B.0004] # OLD HUNGARIAN CAPITAL LETTER UU
+10CEC ; [.35B2.0020.0002] # OLD HUNGARIAN SMALL LETTER NIKOLSBURG UE
+10CAC ; [.35B2.0020.0008] # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE
+10CED ; [.35B2.0020.0004][.0000.010B.0004] # OLD HUNGARIAN SMALL LETTER RUDIMENTA UE
+10CAD ; [.35B2.0020.000A][.0000.010B.0004] # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE
+10CEE ; [.35B3.0020.0002] # OLD HUNGARIAN SMALL LETTER EV
+10CAE ; [.35B3.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EV
+10CEF ; [.35B4.0020.0002] # OLD HUNGARIAN SMALL LETTER EZ
+10CAF ; [.35B4.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EZ
+10CF0 ; [.35B5.0020.0002] # OLD HUNGARIAN SMALL LETTER EZS
+10CB0 ; [.35B5.0020.0008] # OLD HUNGARIAN CAPITAL LETTER EZS
+10CF1 ; [.35B6.0020.0002] # OLD HUNGARIAN SMALL LETTER ENT-SHAPED SIGN
+10CB1 ; [.35B6.0020.0008] # OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN
+10CF2 ; [.35B7.0020.0002] # OLD HUNGARIAN SMALL LETTER US
+10CB2 ; [.35B7.0020.0008] # OLD HUNGARIAN CAPITAL LETTER US
+10C00 ; [.35B8.0020.0002] # OLD TURKIC LETTER ORKHON A
+10C01 ; [.35B8.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI A
+10C02 ; [.35B9.0020.0002] # OLD TURKIC LETTER YENISEI AE
+10C03 ; [.35BA.0020.0002] # OLD TURKIC LETTER ORKHON I
+10C04 ; [.35BA.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI I
+10C05 ; [.35BB.0020.0002] # OLD TURKIC LETTER YENISEI E
+10C06 ; [.35BC.0020.0002] # OLD TURKIC LETTER ORKHON O
+10C07 ; [.35BD.0020.0002] # OLD TURKIC LETTER ORKHON OE
+10C08 ; [.35BD.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI OE
+10C09 ; [.35BE.0020.0002] # OLD TURKIC LETTER ORKHON AB
+10C0A ; [.35BE.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AB
+10C0B ; [.35BF.0020.0002] # OLD TURKIC LETTER ORKHON AEB
+10C0C ; [.35BF.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AEB
+10C0D ; [.35C0.0020.0002] # OLD TURKIC LETTER ORKHON AG
+10C0E ; [.35C0.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AG
+10C0F ; [.35C1.0020.0002] # OLD TURKIC LETTER ORKHON AEG
+10C10 ; [.35C1.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AEG
+10C11 ; [.35C2.0020.0002] # OLD TURKIC LETTER ORKHON AD
+10C12 ; [.35C2.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AD
+10C13 ; [.35C3.0020.0002] # OLD TURKIC LETTER ORKHON AED
+10C14 ; [.35C4.0020.0002] # OLD TURKIC LETTER ORKHON EZ
+10C15 ; [.35C4.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI EZ
+10C16 ; [.35C5.0020.0002] # OLD TURKIC LETTER ORKHON AY
+10C17 ; [.35C5.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AY
+10C18 ; [.35C6.0020.0002] # OLD TURKIC LETTER ORKHON AEY
+10C19 ; [.35C6.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AEY
+10C1A ; [.35C7.0020.0002] # OLD TURKIC LETTER ORKHON AEK
+10C1B ; [.35C7.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AEK
+10C1C ; [.35C8.0020.0002] # OLD TURKIC LETTER ORKHON OEK
+10C1D ; [.35C8.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI OEK
+10C1E ; [.35C9.0020.0002] # OLD TURKIC LETTER ORKHON AL
+10C1F ; [.35C9.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AL
+10C20 ; [.35CA.0020.0002] # OLD TURKIC LETTER ORKHON AEL
+10C21 ; [.35CB.0020.0002] # OLD TURKIC LETTER ORKHON ELT
+10C22 ; [.35CC.0020.0002] # OLD TURKIC LETTER ORKHON EM
+10C23 ; [.35CD.0020.0002] # OLD TURKIC LETTER ORKHON AN
+10C24 ; [.35CE.0020.0002] # OLD TURKIC LETTER ORKHON AEN
+10C25 ; [.35CE.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AEN
+10C26 ; [.35CF.0020.0002] # OLD TURKIC LETTER ORKHON ENT
+10C27 ; [.35CF.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI ENT
+10C28 ; [.35D0.0020.0002] # OLD TURKIC LETTER ORKHON ENC
+10C29 ; [.35D0.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI ENC
+10C2A ; [.35D1.0020.0002] # OLD TURKIC LETTER ORKHON ENY
+10C2B ; [.35D1.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI ENY
+10C2C ; [.35D2.0020.0002] # OLD TURKIC LETTER YENISEI ANG
+10C2D ; [.35D3.0020.0002] # OLD TURKIC LETTER ORKHON ENG
+10C2E ; [.35D3.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AENG
+10C2F ; [.35D4.0020.0002] # OLD TURKIC LETTER ORKHON EP
+10C30 ; [.35D5.0020.0002] # OLD TURKIC LETTER ORKHON OP
+10C31 ; [.35D6.0020.0002] # OLD TURKIC LETTER ORKHON IC
+10C32 ; [.35D7.0020.0002] # OLD TURKIC LETTER ORKHON EC
+10C33 ; [.35D7.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI EC
+10C34 ; [.35D8.0020.0002] # OLD TURKIC LETTER ORKHON AQ
+10C35 ; [.35D8.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AQ
+10C36 ; [.35D9.0020.0002] # OLD TURKIC LETTER ORKHON IQ
+10C37 ; [.35D9.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI IQ
+10C38 ; [.35DA.0020.0002] # OLD TURKIC LETTER ORKHON OQ
+10C39 ; [.35DA.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI OQ
+10C3A ; [.35DB.0020.0002] # OLD TURKIC LETTER ORKHON AR
+10C3B ; [.35DB.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AR
+10C3C ; [.35DC.0020.0002] # OLD TURKIC LETTER ORKHON AER
+10C3D ; [.35DD.0020.0002] # OLD TURKIC LETTER ORKHON AS
+10C3E ; [.35DE.0020.0002] # OLD TURKIC LETTER ORKHON AES
+10C3F ; [.35DF.0020.0002] # OLD TURKIC LETTER ORKHON ASH
+10C40 ; [.35DF.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI ASH
+10C41 ; [.35E0.0020.0002] # OLD TURKIC LETTER ORKHON ESH
+10C42 ; [.35E0.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI ESH
+10C43 ; [.35E1.0020.0002] # OLD TURKIC LETTER ORKHON AT
+10C44 ; [.35E1.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AT
+10C45 ; [.35E2.0020.0002] # OLD TURKIC LETTER ORKHON AET
+10C46 ; [.35E2.0020.0004][.0000.010B.0004] # OLD TURKIC LETTER YENISEI AET
+10C47 ; [.35E3.0020.0002] # OLD TURKIC LETTER ORKHON OT
+10C48 ; [.35E4.0020.0002] # OLD TURKIC LETTER ORKHON BASH
+A500 ; [.35E5.0020.0002] # VAI SYLLABLE EE
+A501 ; [.35E6.0020.0002] # VAI SYLLABLE EEN
+A502 ; [.35E7.0020.0002] # VAI SYLLABLE HEE
+A503 ; [.35E8.0020.0002] # VAI SYLLABLE WEE
+A504 ; [.35E9.0020.0002] # VAI SYLLABLE WEEN
+A505 ; [.35EA.0020.0002] # VAI SYLLABLE PEE
+A506 ; [.35EB.0020.0002] # VAI SYLLABLE BHEE
+A507 ; [.35EC.0020.0002] # VAI SYLLABLE BEE
+A508 ; [.35ED.0020.0002] # VAI SYLLABLE MBEE
+A509 ; [.35EE.0020.0002] # VAI SYLLABLE KPEE
+A50A ; [.35EF.0020.0002] # VAI SYLLABLE MGBEE
+A50B ; [.35F0.0020.0002] # VAI SYLLABLE GBEE
+A50C ; [.35F1.0020.0002] # VAI SYLLABLE FEE
+A613 ; [.35F1.0020.0004][.36F0.0020.0004] # VAI SYMBOL FEENG
+A50D ; [.35F2.0020.0002] # VAI SYLLABLE VEE
+A50E ; [.35F3.0020.0002] # VAI SYLLABLE TEE
+A50F ; [.35F4.0020.0002] # VAI SYLLABLE THEE
+A510 ; [.35F5.0020.0002] # VAI SYLLABLE DHEE
+A511 ; [.35F6.0020.0002] # VAI SYLLABLE DHHEE
+A512 ; [.35F7.0020.0002] # VAI SYLLABLE LEE
+A513 ; [.35F8.0020.0002] # VAI SYLLABLE REE
+A514 ; [.35F9.0020.0002] # VAI SYLLABLE DEE
+A515 ; [.35FA.0020.0002] # VAI SYLLABLE NDEE
+A516 ; [.35FB.0020.0002] # VAI SYLLABLE SEE
+A517 ; [.35FC.0020.0002] # VAI SYLLABLE SHEE
+A518 ; [.35FD.0020.0002] # VAI SYLLABLE ZEE
+A519 ; [.35FE.0020.0002] # VAI SYLLABLE ZHEE
+A51A ; [.35FF.0020.0002] # VAI SYLLABLE CEE
+A51B ; [.3600.0020.0002] # VAI SYLLABLE JEE
+A51C ; [.3601.0020.0002] # VAI SYLLABLE NJEE
+A51D ; [.3602.0020.0002] # VAI SYLLABLE YEE
+A51E ; [.3603.0020.0002] # VAI SYLLABLE KEE
+A614 ; [.3603.0020.0004][.36F0.0020.0004] # VAI SYMBOL KEENG
+A51F ; [.3604.0020.0002] # VAI SYLLABLE NGGEE
+A520 ; [.3605.0020.0002] # VAI SYLLABLE GEE
+A521 ; [.3606.0020.0002] # VAI SYLLABLE MEE
+A522 ; [.3607.0020.0002] # VAI SYLLABLE NEE
+A523 ; [.3608.0020.0002] # VAI SYLLABLE NYEE
+A524 ; [.3609.0020.0002] # VAI SYLLABLE I
+A525 ; [.360A.0020.0002] # VAI SYLLABLE IN
+A526 ; [.360B.0020.0002] # VAI SYLLABLE HI
+A527 ; [.360C.0020.0002] # VAI SYLLABLE HIN
+A528 ; [.360D.0020.0002] # VAI SYLLABLE WI
+A529 ; [.360E.0020.0002] # VAI SYLLABLE WIN
+A52A ; [.360F.0020.0002] # VAI SYLLABLE PI
+A52B ; [.3610.0020.0002] # VAI SYLLABLE BHI
+A52C ; [.3611.0020.0002] # VAI SYLLABLE BI
+A52D ; [.3612.0020.0002] # VAI SYLLABLE MBI
+A52E ; [.3613.0020.0002] # VAI SYLLABLE KPI
+A52F ; [.3614.0020.0002] # VAI SYLLABLE MGBI
+A530 ; [.3615.0020.0002] # VAI SYLLABLE GBI
+A531 ; [.3616.0020.0002] # VAI SYLLABLE FI
+A532 ; [.3617.0020.0002] # VAI SYLLABLE VI
+A533 ; [.3618.0020.0002] # VAI SYLLABLE TI
+A615 ; [.3618.0020.0004][.36F0.0020.0004] # VAI SYMBOL TING
+A534 ; [.3619.0020.0002] # VAI SYLLABLE THI
+A535 ; [.361A.0020.0002] # VAI SYLLABLE DHI
+A536 ; [.361B.0020.0002] # VAI SYLLABLE DHHI
+A537 ; [.361C.0020.0002] # VAI SYLLABLE LI
+A538 ; [.361D.0020.0002] # VAI SYLLABLE RI
+A539 ; [.361E.0020.0002] # VAI SYLLABLE DI
+A53A ; [.361F.0020.0002] # VAI SYLLABLE NDI
+A53B ; [.3620.0020.0002] # VAI SYLLABLE SI
+A53C ; [.3621.0020.0002] # VAI SYLLABLE SHI
+A53D ; [.3622.0020.0002] # VAI SYLLABLE ZI
+A53E ; [.3623.0020.0002] # VAI SYLLABLE ZHI
+A53F ; [.3624.0020.0002] # VAI SYLLABLE CI
+A540 ; [.3625.0020.0002] # VAI SYLLABLE JI
+A541 ; [.3626.0020.0002] # VAI SYLLABLE NJI
+A542 ; [.3627.0020.0002] # VAI SYLLABLE YI
+A543 ; [.3628.0020.0002] # VAI SYLLABLE KI
+A544 ; [.3629.0020.0002] # VAI SYLLABLE NGGI
+A545 ; [.362A.0020.0002] # VAI SYLLABLE GI
+A546 ; [.362B.0020.0002] # VAI SYLLABLE MI
+A547 ; [.362C.0020.0002] # VAI SYLLABLE NI
+A616 ; [.362C.0020.0004][.36F1.0020.0004] # VAI SYMBOL NII
+A548 ; [.362D.0020.0002] # VAI SYLLABLE NYI
+A549 ; [.362E.0020.0002] # VAI SYLLABLE A
+A54A ; [.362F.0020.0002] # VAI SYLLABLE AN
+A54B ; [.3630.0020.0002] # VAI SYLLABLE NGAN
+A54C ; [.3631.0020.0002] # VAI SYLLABLE HA
+A54D ; [.3632.0020.0002] # VAI SYLLABLE HAN
+A54E ; [.3633.0020.0002] # VAI SYLLABLE WA
+A54F ; [.3634.0020.0002] # VAI SYLLABLE WAN
+A550 ; [.3635.0020.0002] # VAI SYLLABLE PA
+A551 ; [.3636.0020.0002] # VAI SYLLABLE BHA
+A552 ; [.3637.0020.0002] # VAI SYLLABLE BA
+A617 ; [.3637.0020.0004][.36F0.0020.0004] # VAI SYMBOL BANG
+A553 ; [.3638.0020.0002] # VAI SYLLABLE MBA
+A554 ; [.3639.0020.0002] # VAI SYLLABLE KPA
+A555 ; [.363A.0020.0002] # VAI SYLLABLE KPAN
+A556 ; [.363B.0020.0002] # VAI SYLLABLE MGBA
+A557 ; [.363C.0020.0002] # VAI SYLLABLE GBA
+A558 ; [.363D.0020.0002] # VAI SYLLABLE FA
+A610 ; [.363D.0020.0004] # VAI SYLLABLE NDOLE FA
+A618 ; [.363D.0020.0004][.36F1.0020.0004] # VAI SYMBOL FAA
+A559 ; [.363E.0020.0002] # VAI SYLLABLE VA
+A55A ; [.363F.0020.0002] # VAI SYLLABLE TA
+A619 ; [.363F.0020.0004][.36F1.0020.0004] # VAI SYMBOL TAA
+A55B ; [.3640.0020.0002] # VAI SYLLABLE THA
+A55C ; [.3641.0020.0002] # VAI SYLLABLE DHA
+A55D ; [.3642.0020.0002] # VAI SYLLABLE DHHA
+A55E ; [.3643.0020.0002] # VAI SYLLABLE LA
+A55F ; [.3644.0020.0002] # VAI SYLLABLE RA
+A560 ; [.3645.0020.0002] # VAI SYLLABLE DA
+A61A ; [.3645.0020.0004][.36F0.0020.0004] # VAI SYMBOL DANG
+A561 ; [.3646.0020.0002] # VAI SYLLABLE NDA
+A562 ; [.3647.0020.0002] # VAI SYLLABLE SA
+A563 ; [.3648.0020.0002] # VAI SYLLABLE SHA
+A564 ; [.3649.0020.0002] # VAI SYLLABLE ZA
+A565 ; [.364A.0020.0002] # VAI SYLLABLE ZHA
+A566 ; [.364B.0020.0002] # VAI SYLLABLE CA
+A567 ; [.364C.0020.0002] # VAI SYLLABLE JA
+A568 ; [.364D.0020.0002] # VAI SYLLABLE NJA
+A569 ; [.364E.0020.0002] # VAI SYLLABLE YA
+A56A ; [.364F.0020.0002] # VAI SYLLABLE KA
+A611 ; [.364F.0020.0004] # VAI SYLLABLE NDOLE KA
+A56B ; [.3650.0020.0002] # VAI SYLLABLE KAN
+A56C ; [.3651.0020.0002] # VAI SYLLABLE NGGA
+A56D ; [.3652.0020.0002] # VAI SYLLABLE GA
+A56E ; [.3653.0020.0002] # VAI SYLLABLE MA
+A62A ; [.3653.0020.0004] # VAI SYLLABLE NDOLE MA
+A56F ; [.3654.0020.0002] # VAI SYLLABLE NA
+A570 ; [.3655.0020.0002] # VAI SYLLABLE NYA
+A571 ; [.3656.0020.0002] # VAI SYLLABLE OO
+A572 ; [.3657.0020.0002] # VAI SYLLABLE OON
+A573 ; [.3658.0020.0002] # VAI SYLLABLE HOO
+A574 ; [.3659.0020.0002] # VAI SYLLABLE WOO
+A575 ; [.365A.0020.0002] # VAI SYLLABLE WOON
+A576 ; [.365B.0020.0002] # VAI SYLLABLE POO
+A577 ; [.365C.0020.0002] # VAI SYLLABLE BHOO
+A578 ; [.365D.0020.0002] # VAI SYLLABLE BOO
+A579 ; [.365E.0020.0002] # VAI SYLLABLE MBOO
+A57A ; [.365F.0020.0002] # VAI SYLLABLE KPOO
+A57B ; [.3660.0020.0002] # VAI SYLLABLE MGBOO
+A57C ; [.3661.0020.0002] # VAI SYLLABLE GBOO
+A57D ; [.3662.0020.0002] # VAI SYLLABLE FOO
+A57E ; [.3663.0020.0002] # VAI SYLLABLE VOO
+A57F ; [.3664.0020.0002] # VAI SYLLABLE TOO
+A580 ; [.3665.0020.0002] # VAI SYLLABLE THOO
+A581 ; [.3666.0020.0002] # VAI SYLLABLE DHOO
+A582 ; [.3667.0020.0002] # VAI SYLLABLE DHHOO
+A583 ; [.3668.0020.0002] # VAI SYLLABLE LOO
+A584 ; [.3669.0020.0002] # VAI SYLLABLE ROO
+A585 ; [.366A.0020.0002] # VAI SYLLABLE DOO
+A61B ; [.366A.0020.0004][.36F0.0020.0004] # VAI SYMBOL DOONG
+A586 ; [.366B.0020.0002] # VAI SYLLABLE NDOO
+A587 ; [.366C.0020.0002] # VAI SYLLABLE SOO
+A612 ; [.366C.0020.0004] # VAI SYLLABLE NDOLE SOO
+A588 ; [.366D.0020.0002] # VAI SYLLABLE SHOO
+A589 ; [.366E.0020.0002] # VAI SYLLABLE ZOO
+A58A ; [.366F.0020.0002] # VAI SYLLABLE ZHOO
+A58B ; [.3670.0020.0002] # VAI SYLLABLE COO
+A58C ; [.3671.0020.0002] # VAI SYLLABLE JOO
+A58D ; [.3672.0020.0002] # VAI SYLLABLE NJOO
+A58E ; [.3673.0020.0002] # VAI SYLLABLE YOO
+A58F ; [.3674.0020.0002] # VAI SYLLABLE KOO
+A590 ; [.3675.0020.0002] # VAI SYLLABLE NGGOO
+A591 ; [.3676.0020.0002] # VAI SYLLABLE GOO
+A592 ; [.3677.0020.0002] # VAI SYLLABLE MOO
+A593 ; [.3678.0020.0002] # VAI SYLLABLE NOO
+A594 ; [.3679.0020.0002] # VAI SYLLABLE NYOO
+A595 ; [.367A.0020.0002] # VAI SYLLABLE U
+A596 ; [.367B.0020.0002] # VAI SYLLABLE UN
+A597 ; [.367C.0020.0002] # VAI SYLLABLE HU
+A598 ; [.367D.0020.0002] # VAI SYLLABLE HUN
+A599 ; [.367E.0020.0002] # VAI SYLLABLE WU
+A59A ; [.367F.0020.0002] # VAI SYLLABLE WUN
+A59B ; [.3680.0020.0002] # VAI SYLLABLE PU
+A59C ; [.3681.0020.0002] # VAI SYLLABLE BHU
+A59D ; [.3682.0020.0002] # VAI SYLLABLE BU
+A59E ; [.3683.0020.0002] # VAI SYLLABLE MBU
+A59F ; [.3684.0020.0002] # VAI SYLLABLE KPU
+A5A0 ; [.3685.0020.0002] # VAI SYLLABLE MGBU
+A5A1 ; [.3686.0020.0002] # VAI SYLLABLE GBU
+A5A2 ; [.3687.0020.0002] # VAI SYLLABLE FU
+A5A3 ; [.3688.0020.0002] # VAI SYLLABLE VU
+A5A4 ; [.3689.0020.0002] # VAI SYLLABLE TU
+A5A5 ; [.368A.0020.0002] # VAI SYLLABLE THU
+A5A6 ; [.368B.0020.0002] # VAI SYLLABLE DHU
+A5A7 ; [.368C.0020.0002] # VAI SYLLABLE DHHU
+A5A8 ; [.368D.0020.0002] # VAI SYLLABLE LU
+A5A9 ; [.368E.0020.0002] # VAI SYLLABLE RU
+A5AA ; [.368F.0020.0002] # VAI SYLLABLE DU
+A5AB ; [.3690.0020.0002] # VAI SYLLABLE NDU
+A5AC ; [.3691.0020.0002] # VAI SYLLABLE SU
+A5AD ; [.3692.0020.0002] # VAI SYLLABLE SHU
+A5AE ; [.3693.0020.0002] # VAI SYLLABLE ZU
+A5AF ; [.3694.0020.0002] # VAI SYLLABLE ZHU
+A5B0 ; [.3695.0020.0002] # VAI SYLLABLE CU
+A5B1 ; [.3696.0020.0002] # VAI SYLLABLE JU
+A5B2 ; [.3697.0020.0002] # VAI SYLLABLE NJU
+A5B3 ; [.3698.0020.0002] # VAI SYLLABLE YU
+A5B4 ; [.3699.0020.0002] # VAI SYLLABLE KU
+A61C ; [.3699.0020.0004][.36F0.0020.0004] # VAI SYMBOL KUNG
+A5B5 ; [.369A.0020.0002] # VAI SYLLABLE NGGU
+A5B6 ; [.369B.0020.0002] # VAI SYLLABLE GU
+A5B7 ; [.369C.0020.0002] # VAI SYLLABLE MU
+A5B8 ; [.369D.0020.0002] # VAI SYLLABLE NU
+A5B9 ; [.369E.0020.0002] # VAI SYLLABLE NYU
+A5BA ; [.369F.0020.0002] # VAI SYLLABLE O
+A5BB ; [.36A0.0020.0002] # VAI SYLLABLE ON
+A5BC ; [.36A1.0020.0002] # VAI SYLLABLE NGON
+A5BD ; [.36A2.0020.0002] # VAI SYLLABLE HO
+A5BE ; [.36A3.0020.0002] # VAI SYLLABLE HON
+A5BF ; [.36A4.0020.0002] # VAI SYLLABLE WO
+A5C0 ; [.36A5.0020.0002] # VAI SYLLABLE WON
+A5C1 ; [.36A6.0020.0002] # VAI SYLLABLE PO
+A5C2 ; [.36A7.0020.0002] # VAI SYLLABLE BHO
+A5C3 ; [.36A8.0020.0002] # VAI SYLLABLE BO
+A5C4 ; [.36A9.0020.0002] # VAI SYLLABLE MBO
+A5C5 ; [.36AA.0020.0002] # VAI SYLLABLE KPO
+A5C6 ; [.36AB.0020.0002] # VAI SYLLABLE MGBO
+A5C7 ; [.36AC.0020.0002] # VAI SYLLABLE GBO
+A5C8 ; [.36AD.0020.0002] # VAI SYLLABLE GBON
+A5C9 ; [.36AE.0020.0002] # VAI SYLLABLE FO
+A5CA ; [.36AF.0020.0002] # VAI SYLLABLE VO
+A5CB ; [.36B0.0020.0002] # VAI SYLLABLE TO
+A61D ; [.36B0.0020.0004][.36F0.0020.0004] # VAI SYMBOL TONG
+A5CC ; [.36B1.0020.0002] # VAI SYLLABLE THO
+A5CD ; [.36B2.0020.0002] # VAI SYLLABLE DHO
+A5CE ; [.36B3.0020.0002] # VAI SYLLABLE DHHO
+A5CF ; [.36B4.0020.0002] # VAI SYLLABLE LO
+A5D0 ; [.36B5.0020.0002] # VAI SYLLABLE RO
+A5D1 ; [.36B6.0020.0002] # VAI SYLLABLE DO
+A62B ; [.36B6.0020.0004] # VAI SYLLABLE NDOLE DO
+A61E ; [.36B6.0020.0004][.36F1.0020.0004] # VAI SYMBOL DO-O
+A5D2 ; [.36B7.0020.0002] # VAI SYLLABLE NDO
+A5D3 ; [.36B8.0020.0002] # VAI SYLLABLE SO
+A5D4 ; [.36B9.0020.0002] # VAI SYLLABLE SHO
+A5D5 ; [.36BA.0020.0002] # VAI SYLLABLE ZO
+A5D6 ; [.36BB.0020.0002] # VAI SYLLABLE ZHO
+A5D7 ; [.36BC.0020.0002] # VAI SYLLABLE CO
+A5D8 ; [.36BD.0020.0002] # VAI SYLLABLE JO
+A61F ; [.36BD.0020.0004][.36F0.0020.0004] # VAI SYMBOL JONG
+A5D9 ; [.36BE.0020.0002] # VAI SYLLABLE NJO
+A5DA ; [.36BF.0020.0002] # VAI SYLLABLE YO
+A5DB ; [.36C0.0020.0002] # VAI SYLLABLE KO
+A5DC ; [.36C1.0020.0002] # VAI SYLLABLE NGGO
+A5DD ; [.36C2.0020.0002] # VAI SYLLABLE GO
+A5DE ; [.36C3.0020.0002] # VAI SYLLABLE MO
+A5DF ; [.36C4.0020.0002] # VAI SYLLABLE NO
+A5E0 ; [.36C5.0020.0002] # VAI SYLLABLE NYO
+A5E1 ; [.36C6.0020.0002] # VAI SYLLABLE E
+A5E2 ; [.36C7.0020.0002] # VAI SYLLABLE EN
+A5E3 ; [.36C8.0020.0002] # VAI SYLLABLE NGEN
+A5E4 ; [.36C9.0020.0002] # VAI SYLLABLE HE
+A5E5 ; [.36CA.0020.0002] # VAI SYLLABLE HEN
+A5E6 ; [.36CB.0020.0002] # VAI SYLLABLE WE
+A5E7 ; [.36CC.0020.0002] # VAI SYLLABLE WEN
+A5E8 ; [.36CD.0020.0002] # VAI SYLLABLE PE
+A5E9 ; [.36CE.0020.0002] # VAI SYLLABLE BHE
+A5EA ; [.36CF.0020.0002] # VAI SYLLABLE BE
+A5EB ; [.36D0.0020.0002] # VAI SYLLABLE MBE
+A5EC ; [.36D1.0020.0002] # VAI SYLLABLE KPE
+A5ED ; [.36D2.0020.0002] # VAI SYLLABLE KPEN
+A5EE ; [.36D3.0020.0002] # VAI SYLLABLE MGBE
+A5EF ; [.36D4.0020.0002] # VAI SYLLABLE GBE
+A5F0 ; [.36D5.0020.0002] # VAI SYLLABLE GBEN
+A5F1 ; [.36D6.0020.0002] # VAI SYLLABLE FE
+A5F2 ; [.36D7.0020.0002] # VAI SYLLABLE VE
+A5F3 ; [.36D8.0020.0002] # VAI SYLLABLE TE
+A5F4 ; [.36D9.0020.0002] # VAI SYLLABLE THE
+A5F5 ; [.36DA.0020.0002] # VAI SYLLABLE DHE
+A5F6 ; [.36DB.0020.0002] # VAI SYLLABLE DHHE
+A5F7 ; [.36DC.0020.0002] # VAI SYLLABLE LE
+A5F8 ; [.36DD.0020.0002] # VAI SYLLABLE RE
+A5F9 ; [.36DE.0020.0002] # VAI SYLLABLE DE
+A5FA ; [.36DF.0020.0002] # VAI SYLLABLE NDE
+A5FB ; [.36E0.0020.0002] # VAI SYLLABLE SE
+A5FC ; [.36E1.0020.0002] # VAI SYLLABLE SHE
+A5FD ; [.36E2.0020.0002] # VAI SYLLABLE ZE
+A5FE ; [.36E3.0020.0002] # VAI SYLLABLE ZHE
+A5FF ; [.36E4.0020.0002] # VAI SYLLABLE CE
+A600 ; [.36E5.0020.0002] # VAI SYLLABLE JE
+A601 ; [.36E6.0020.0002] # VAI SYLLABLE NJE
+A602 ; [.36E7.0020.0002] # VAI SYLLABLE YE
+A603 ; [.36E8.0020.0002] # VAI SYLLABLE KE
+A604 ; [.36E9.0020.0002] # VAI SYLLABLE NGGE
+A605 ; [.36EA.0020.0002] # VAI SYLLABLE NGGEN
+A606 ; [.36EB.0020.0002] # VAI SYLLABLE GE
+A607 ; [.36EC.0020.0002] # VAI SYLLABLE GEN
+A608 ; [.36ED.0020.0002] # VAI SYLLABLE ME
+A609 ; [.36EE.0020.0002] # VAI SYLLABLE NE
+A60A ; [.36EF.0020.0002] # VAI SYLLABLE NYE
+A60B ; [.36F0.0020.0002] # VAI SYLLABLE NG
+A60C ; [.36F1.0020.0002] # VAI SYLLABLE LENGTHENER
+A6A0 ; [.36F2.0020.0002] # BAMUM LETTER A
+A6A1 ; [.36F3.0020.0002] # BAMUM LETTER KA
+A6A2 ; [.36F4.0020.0002] # BAMUM LETTER U
+A6A3 ; [.36F5.0020.0002] # BAMUM LETTER KU
+A6A4 ; [.36F6.0020.0002] # BAMUM LETTER EE
+A6A5 ; [.36F7.0020.0002] # BAMUM LETTER REE
+A6A6 ; [.36F8.0020.0002] # BAMUM LETTER TAE
+A6A7 ; [.36F9.0020.0002] # BAMUM LETTER O
+A6A8 ; [.36FA.0020.0002] # BAMUM LETTER NYI
+A6A9 ; [.36FB.0020.0002] # BAMUM LETTER I
+A6AA ; [.36FC.0020.0002] # BAMUM LETTER LA
+A6AB ; [.36FD.0020.0002] # BAMUM LETTER PA
+A6AC ; [.36FE.0020.0002] # BAMUM LETTER RII
+A6AD ; [.36FF.0020.0002] # BAMUM LETTER RIEE
+A6AE ; [.3700.0020.0002] # BAMUM LETTER LEEEE
+A6AF ; [.3701.0020.0002] # BAMUM LETTER MEEEE
+A6B0 ; [.3702.0020.0002] # BAMUM LETTER TAA
+A6B1 ; [.3703.0020.0002] # BAMUM LETTER NDAA
+A6B2 ; [.3704.0020.0002] # BAMUM LETTER NJAEM
+A6B3 ; [.3705.0020.0002] # BAMUM LETTER M
+A6B4 ; [.3706.0020.0002] # BAMUM LETTER SUU
+A6B5 ; [.3707.0020.0002] # BAMUM LETTER MU
+A6B6 ; [.3708.0020.0002] # BAMUM LETTER SHII
+A6B7 ; [.3709.0020.0002] # BAMUM LETTER SI
+A6B8 ; [.370A.0020.0002] # BAMUM LETTER SHEUX
+A6B9 ; [.370B.0020.0002] # BAMUM LETTER SEUX
+A6BA ; [.370C.0020.0002] # BAMUM LETTER KYEE
+A6BB ; [.370D.0020.0002] # BAMUM LETTER KET
+A6BC ; [.370E.0020.0002] # BAMUM LETTER NUAE
+A6BD ; [.370F.0020.0002] # BAMUM LETTER NU
+A6BE ; [.3710.0020.0002] # BAMUM LETTER NJUAE
+A6BF ; [.3711.0020.0002] # BAMUM LETTER YOQ
+A6C0 ; [.3712.0020.0002] # BAMUM LETTER SHU
+A6C1 ; [.3713.0020.0002] # BAMUM LETTER YUQ
+A6C2 ; [.3714.0020.0002] # BAMUM LETTER YA
+A6C3 ; [.3715.0020.0002] # BAMUM LETTER NSHA
+A6C4 ; [.3716.0020.0002] # BAMUM LETTER KEUX
+A6C5 ; [.3717.0020.0002] # BAMUM LETTER PEUX
+A6C6 ; [.3718.0020.0002] # BAMUM LETTER NJEE
+A6C7 ; [.3719.0020.0002] # BAMUM LETTER NTEE
+A6C8 ; [.371A.0020.0002] # BAMUM LETTER PUE
+A6C9 ; [.371B.0020.0002] # BAMUM LETTER WUE
+A6CA ; [.371C.0020.0002] # BAMUM LETTER PEE
+A6CB ; [.371D.0020.0002] # BAMUM LETTER FEE
+A6CC ; [.371E.0020.0002] # BAMUM LETTER RU
+A6CD ; [.371F.0020.0002] # BAMUM LETTER LU
+A6CE ; [.3720.0020.0002] # BAMUM LETTER MI
+A6CF ; [.3721.0020.0002] # BAMUM LETTER NI
+A6D0 ; [.3722.0020.0002] # BAMUM LETTER REUX
+A6D1 ; [.3723.0020.0002] # BAMUM LETTER RAE
+A6D2 ; [.3724.0020.0002] # BAMUM LETTER KEN
+A6D3 ; [.3725.0020.0002] # BAMUM LETTER NGKWAEN
+A6D4 ; [.3726.0020.0002] # BAMUM LETTER NGGA
+A6D5 ; [.3727.0020.0002] # BAMUM LETTER NGA
+A6D6 ; [.3728.0020.0002] # BAMUM LETTER SHO
+A6D7 ; [.3729.0020.0002] # BAMUM LETTER PUAE
+A6D8 ; [.372A.0020.0002] # BAMUM LETTER FU
+A6D9 ; [.372B.0020.0002] # BAMUM LETTER FOM
+A6DA ; [.372C.0020.0002] # BAMUM LETTER WA
+A6DB ; [.372D.0020.0002] # BAMUM LETTER NA
+A6DC ; [.372E.0020.0002] # BAMUM LETTER LI
+A6DD ; [.372F.0020.0002] # BAMUM LETTER PI
+A6DE ; [.3730.0020.0002] # BAMUM LETTER LOQ
+A6DF ; [.3731.0020.0002] # BAMUM LETTER KO
+A6E0 ; [.3732.0020.0002] # BAMUM LETTER MBEN
+A6E1 ; [.3733.0020.0002] # BAMUM LETTER REN
+A6E2 ; [.3734.0020.0002] # BAMUM LETTER MEN
+A6E3 ; [.3735.0020.0002] # BAMUM LETTER MA
+A6E4 ; [.3736.0020.0002] # BAMUM LETTER TI
+A6E5 ; [.3737.0020.0002] # BAMUM LETTER KI
+A6E6 ; [.3738.0020.0002] # BAMUM LETTER MO
+A6E7 ; [.3739.0020.0002] # BAMUM LETTER MBAA
+A6E8 ; [.373A.0020.0002] # BAMUM LETTER TET
+A6E9 ; [.373B.0020.0002] # BAMUM LETTER KPA
+A6EA ; [.373C.0020.0002] # BAMUM LETTER TEN
+A6EB ; [.373D.0020.0002] # BAMUM LETTER NTUU
+A6EC ; [.373E.0020.0002] # BAMUM LETTER SAMBA
+A6ED ; [.373F.0020.0002] # BAMUM LETTER FAAMAE
+A6EE ; [.3740.0020.0002] # BAMUM LETTER KOVUU
+A6EF ; [.3741.0020.0002] # BAMUM LETTER KOGHOM
+16800 ; [.3742.0020.0002] # BAMUM LETTER PHASE-A NGKUE MFON
+16801 ; [.3743.0020.0002] # BAMUM LETTER PHASE-A GBIEE FON
+16802 ; [.3744.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
+16803 ; [.3745.0020.0002] # BAMUM LETTER PHASE-A PON MFON PIPAEMBA
+16804 ; [.3746.0020.0002] # BAMUM LETTER PHASE-A NAA MFON
+16805 ; [.3747.0020.0002] # BAMUM LETTER PHASE-A SHUENSHUET
+16806 ; [.3748.0020.0002] # BAMUM LETTER PHASE-A TITA MFON
+16807 ; [.3749.0020.0002] # BAMUM LETTER PHASE-A NZA MFON
+16808 ; [.374A.0020.0002] # BAMUM LETTER PHASE-A SHINDA PA NJI
+16809 ; [.374B.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
+1680A ; [.374C.0020.0002] # BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
+1680B ; [.374D.0020.0002] # BAMUM LETTER PHASE-A MAEMBGBIEE
+1680C ; [.374E.0020.0002] # BAMUM LETTER PHASE-A TU MAEMBA
+1680D ; [.374F.0020.0002] # BAMUM LETTER PHASE-A NGANGU
+1680E ; [.3750.0020.0002] # BAMUM LETTER PHASE-A MAEMVEUX
+1680F ; [.3751.0020.0002] # BAMUM LETTER PHASE-A MANSUAE
+16810 ; [.3752.0020.0002] # BAMUM LETTER PHASE-A MVEUAENGAM
+16811 ; [.3753.0020.0002] # BAMUM LETTER PHASE-A SEUNYAM
+16812 ; [.3754.0020.0002] # BAMUM LETTER PHASE-A NTOQPEN
+16813 ; [.3755.0020.0002] # BAMUM LETTER PHASE-A KEUKEUTNDA
+16814 ; [.3756.0020.0002] # BAMUM LETTER PHASE-A NKINDI
+16815 ; [.3757.0020.0002] # BAMUM LETTER PHASE-A SUU
+16816 ; [.3758.0020.0002] # BAMUM LETTER PHASE-A NGKUENZEUM
+16817 ; [.3759.0020.0002] # BAMUM LETTER PHASE-A LAPAQ
+16818 ; [.375A.0020.0002] # BAMUM LETTER PHASE-A LET KUT
+16819 ; [.375B.0020.0002] # BAMUM LETTER PHASE-A NTAP MFAA
+1681A ; [.375C.0020.0002] # BAMUM LETTER PHASE-A MAEKEUP
+1681B ; [.375D.0020.0002] # BAMUM LETTER PHASE-A PASHAE
+1681C ; [.375E.0020.0002] # BAMUM LETTER PHASE-A GHEUAERAE
+1681D ; [.375F.0020.0002] # BAMUM LETTER PHASE-A PAMSHAE
+1681E ; [.3760.0020.0002] # BAMUM LETTER PHASE-A MON NGGEUAET
+1681F ; [.3761.0020.0002] # BAMUM LETTER PHASE-A NZUN MEUT
+16820 ; [.3762.0020.0002] # BAMUM LETTER PHASE-A U YUQ NAE
+16821 ; [.3763.0020.0002] # BAMUM LETTER PHASE-A GHEUAEGHEUAE
+16822 ; [.3764.0020.0002] # BAMUM LETTER PHASE-A NTAP NTAA
+16823 ; [.3765.0020.0002] # BAMUM LETTER PHASE-A SISA
+16824 ; [.3766.0020.0002] # BAMUM LETTER PHASE-A MGBASA
+16825 ; [.3767.0020.0002] # BAMUM LETTER PHASE-A MEUNJOMNDEUQ
+16826 ; [.3768.0020.0002] # BAMUM LETTER PHASE-A MOOMPUQ
+16827 ; [.3769.0020.0002] # BAMUM LETTER PHASE-A KAFA
+16828 ; [.376A.0020.0002] # BAMUM LETTER PHASE-A PA LEERAEWA
+16829 ; [.376B.0020.0002] # BAMUM LETTER PHASE-A NDA LEERAEWA
+1682A ; [.376C.0020.0002] # BAMUM LETTER PHASE-A PET
+1682B ; [.376D.0020.0002] # BAMUM LETTER PHASE-A MAEMKPEN
+1682C ; [.376E.0020.0002] # BAMUM LETTER PHASE-A NIKA
+1682D ; [.376F.0020.0002] # BAMUM LETTER PHASE-A PUP
+1682E ; [.3770.0020.0002] # BAMUM LETTER PHASE-A TUAEP
+1682F ; [.3771.0020.0002] # BAMUM LETTER PHASE-A LUAEP
+16830 ; [.3772.0020.0002] # BAMUM LETTER PHASE-A SONJAM
+16831 ; [.3773.0020.0002] # BAMUM LETTER PHASE-A TEUTEUWEN
+16832 ; [.3774.0020.0002] # BAMUM LETTER PHASE-A MAENYI
+16833 ; [.3775.0020.0002] # BAMUM LETTER PHASE-A KET
+16834 ; [.3776.0020.0002] # BAMUM LETTER PHASE-A NDAANGGEUAET
+16835 ; [.3777.0020.0002] # BAMUM LETTER PHASE-A KUOQ
+16836 ; [.3778.0020.0002] # BAMUM LETTER PHASE-A MOOMEUT
+16837 ; [.3779.0020.0002] # BAMUM LETTER PHASE-A SHUM
+16838 ; [.377A.0020.0002] # BAMUM LETTER PHASE-A LOMMAE
+16839 ; [.377B.0020.0002] # BAMUM LETTER PHASE-A FIRI
+1683A ; [.377C.0020.0002] # BAMUM LETTER PHASE-A ROM
+1683B ; [.377D.0020.0002] # BAMUM LETTER PHASE-A KPOQ
+1683C ; [.377E.0020.0002] # BAMUM LETTER PHASE-A SOQ
+1683D ; [.377F.0020.0002] # BAMUM LETTER PHASE-A MAP PIEET
+1683E ; [.3780.0020.0002] # BAMUM LETTER PHASE-A SHIRAE
+1683F ; [.3781.0020.0002] # BAMUM LETTER PHASE-A NTAP
+16840 ; [.3782.0020.0002] # BAMUM LETTER PHASE-A SHOQ NSHUT YUM
+16841 ; [.3783.0020.0002] # BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
+16842 ; [.3784.0020.0002] # BAMUM LETTER PHASE-A PAARAE
+16843 ; [.3785.0020.0002] # BAMUM LETTER PHASE-A NKAARAE
+16844 ; [.3786.0020.0002] # BAMUM LETTER PHASE-A UNKNOWN
+16845 ; [.3787.0020.0002] # BAMUM LETTER PHASE-A NGGEN
+16846 ; [.3788.0020.0002] # BAMUM LETTER PHASE-A MAESI
+16847 ; [.3789.0020.0002] # BAMUM LETTER PHASE-A NJAM
+16848 ; [.378A.0020.0002] # BAMUM LETTER PHASE-A MBANYI
+16849 ; [.378B.0020.0002] # BAMUM LETTER PHASE-A NYET
+1684A ; [.378C.0020.0002] # BAMUM LETTER PHASE-A TEUAEN
+1684B ; [.378D.0020.0002] # BAMUM LETTER PHASE-A SOT
+1684C ; [.378E.0020.0002] # BAMUM LETTER PHASE-A PAAM
+1684D ; [.378F.0020.0002] # BAMUM LETTER PHASE-A NSHIEE
+1684E ; [.3790.0020.0002] # BAMUM LETTER PHASE-A MAEM
+1684F ; [.3791.0020.0002] # BAMUM LETTER PHASE-A NYI
+16850 ; [.3792.0020.0002] # BAMUM LETTER PHASE-A KAQ
+16851 ; [.3793.0020.0002] # BAMUM LETTER PHASE-A NSHA
+16852 ; [.3794.0020.0002] # BAMUM LETTER PHASE-A VEE
+16853 ; [.3795.0020.0002] # BAMUM LETTER PHASE-A LU
+16854 ; [.3796.0020.0002] # BAMUM LETTER PHASE-A NEN
+16855 ; [.3797.0020.0002] # BAMUM LETTER PHASE-A NAQ
+16856 ; [.3798.0020.0002] # BAMUM LETTER PHASE-A MBAQ
+16857 ; [.3799.0020.0002] # BAMUM LETTER PHASE-B NSHUET
+16858 ; [.379A.0020.0002] # BAMUM LETTER PHASE-B TU MAEMGBIEE
+16859 ; [.379B.0020.0002] # BAMUM LETTER PHASE-B SIEE
+1685A ; [.379C.0020.0002] # BAMUM LETTER PHASE-B SET TU
+1685B ; [.379D.0020.0002] # BAMUM LETTER PHASE-B LOM NTEUM
+1685C ; [.379E.0020.0002] # BAMUM LETTER PHASE-B MBA MAELEE
+1685D ; [.379F.0020.0002] # BAMUM LETTER PHASE-B KIEEM
+1685E ; [.37A0.0020.0002] # BAMUM LETTER PHASE-B YEURAE
+1685F ; [.37A1.0020.0002] # BAMUM LETTER PHASE-B MBAARAE
+16860 ; [.37A2.0020.0002] # BAMUM LETTER PHASE-B KAM
+16861 ; [.37A3.0020.0002] # BAMUM LETTER PHASE-B PEESHI
+16862 ; [.37A4.0020.0002] # BAMUM LETTER PHASE-B YAFU LEERAEWA
+16863 ; [.37A5.0020.0002] # BAMUM LETTER PHASE-B LAM NSHUT NYAM
+16864 ; [.37A6.0020.0002] # BAMUM LETTER PHASE-B NTIEE SHEUOQ
+16865 ; [.37A7.0020.0002] # BAMUM LETTER PHASE-B NDU NJAA
+16866 ; [.37A8.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEUAEM
+16867 ; [.37A9.0020.0002] # BAMUM LETTER PHASE-B PIT
+16868 ; [.37AA.0020.0002] # BAMUM LETTER PHASE-B TU NSIEE
+16869 ; [.37AB.0020.0002] # BAMUM LETTER PHASE-B SHET NJAQ
+1686A ; [.37AC.0020.0002] # BAMUM LETTER PHASE-B SHEUAEQTU
+1686B ; [.37AD.0020.0002] # BAMUM LETTER PHASE-B MFON TEUAEQ
+1686C ; [.37AE.0020.0002] # BAMUM LETTER PHASE-B MBIT MBAAKET
+1686D ; [.37AF.0020.0002] # BAMUM LETTER PHASE-B NYI NTEUM
+1686E ; [.37B0.0020.0002] # BAMUM LETTER PHASE-B KEUPUQ
+1686F ; [.37B1.0020.0002] # BAMUM LETTER PHASE-B GHEUGHEN
+16870 ; [.37B2.0020.0002] # BAMUM LETTER PHASE-B KEUYEUX
+16871 ; [.37B3.0020.0002] # BAMUM LETTER PHASE-B LAANAE
+16872 ; [.37B4.0020.0002] # BAMUM LETTER PHASE-B PARUM
+16873 ; [.37B5.0020.0002] # BAMUM LETTER PHASE-B VEUM
+16874 ; [.37B6.0020.0002] # BAMUM LETTER PHASE-B NGKINDI MVOP
+16875 ; [.37B7.0020.0002] # BAMUM LETTER PHASE-B NGGEU MBU
+16876 ; [.37B8.0020.0002] # BAMUM LETTER PHASE-B WUAET
+16877 ; [.37B9.0020.0002] # BAMUM LETTER PHASE-B SAKEUAE
+16878 ; [.37BA.0020.0002] # BAMUM LETTER PHASE-B TAAM
+16879 ; [.37BB.0020.0002] # BAMUM LETTER PHASE-B MEUQ
+1687A ; [.37BC.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ
+1687B ; [.37BD.0020.0002] # BAMUM LETTER PHASE-B NGGUOQ LARGE
+1687C ; [.37BE.0020.0002] # BAMUM LETTER PHASE-B MFIYAQ
+1687D ; [.37BF.0020.0002] # BAMUM LETTER PHASE-B SUE
+1687E ; [.37C0.0020.0002] # BAMUM LETTER PHASE-B MBEURI
+1687F ; [.37C1.0020.0002] # BAMUM LETTER PHASE-B MONTIEEN
+16880 ; [.37C2.0020.0002] # BAMUM LETTER PHASE-B NYAEMAE
+16881 ; [.37C3.0020.0002] # BAMUM LETTER PHASE-B PUNGAAM
+16882 ; [.37C4.0020.0002] # BAMUM LETTER PHASE-B MEUT NGGEET
+16883 ; [.37C5.0020.0002] # BAMUM LETTER PHASE-B FEUX
+16884 ; [.37C6.0020.0002] # BAMUM LETTER PHASE-B MBUOQ
+16885 ; [.37C7.0020.0002] # BAMUM LETTER PHASE-B FEE
+16886 ; [.37C8.0020.0002] # BAMUM LETTER PHASE-B KEUAEM
+16887 ; [.37C9.0020.0002] # BAMUM LETTER PHASE-B MA NJEUAENA
+16888 ; [.37CA.0020.0002] # BAMUM LETTER PHASE-B MA NJUQA
+16889 ; [.37CB.0020.0002] # BAMUM LETTER PHASE-B LET
+1688A ; [.37CC.0020.0002] # BAMUM LETTER PHASE-B NGGAAM
+1688B ; [.37CD.0020.0002] # BAMUM LETTER PHASE-B NSEN
+1688C ; [.37CE.0020.0002] # BAMUM LETTER PHASE-B MA
+1688D ; [.37CF.0020.0002] # BAMUM LETTER PHASE-B KIQ
+1688E ; [.37D0.0020.0002] # BAMUM LETTER PHASE-B NGOM
+1688F ; [.37D1.0020.0002] # BAMUM LETTER PHASE-C NGKUE MAEMBA
+16890 ; [.37D2.0020.0002] # BAMUM LETTER PHASE-C NZA
+16891 ; [.37D3.0020.0002] # BAMUM LETTER PHASE-C YUM
+16892 ; [.37D4.0020.0002] # BAMUM LETTER PHASE-C WANGKUOQ
+16893 ; [.37D5.0020.0002] # BAMUM LETTER PHASE-C NGGEN
+16894 ; [.37D6.0020.0002] # BAMUM LETTER PHASE-C NDEUAEREE
+16895 ; [.37D7.0020.0002] # BAMUM LETTER PHASE-C NGKAQ
+16896 ; [.37D8.0020.0002] # BAMUM LETTER PHASE-C GHARAE
+16897 ; [.37D9.0020.0002] # BAMUM LETTER PHASE-C MBEEKEET
+16898 ; [.37DA.0020.0002] # BAMUM LETTER PHASE-C GBAYI
+16899 ; [.37DB.0020.0002] # BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
+1689A ; [.37DC.0020.0002] # BAMUM LETTER PHASE-C NTU MBIT
+1689B ; [.37DD.0020.0002] # BAMUM LETTER PHASE-C MBEUM
+1689C ; [.37DE.0020.0002] # BAMUM LETTER PHASE-C PIRIEEN
+1689D ; [.37DF.0020.0002] # BAMUM LETTER PHASE-C NDOMBU
+1689E ; [.37E0.0020.0002] # BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
+1689F ; [.37E1.0020.0002] # BAMUM LETTER PHASE-C KEUSHEUAEP
+168A0 ; [.37E2.0020.0002] # BAMUM LETTER PHASE-C GHAP
+168A1 ; [.37E3.0020.0002] # BAMUM LETTER PHASE-C KEUKAQ
+168A2 ; [.37E4.0020.0002] # BAMUM LETTER PHASE-C YU MUOMAE
+168A3 ; [.37E5.0020.0002] # BAMUM LETTER PHASE-C NZEUM
+168A4 ; [.37E6.0020.0002] # BAMUM LETTER PHASE-C MBUE
+168A5 ; [.37E7.0020.0002] # BAMUM LETTER PHASE-C NSEUAEN
+168A6 ; [.37E8.0020.0002] # BAMUM LETTER PHASE-C MBIT
+168A7 ; [.37E9.0020.0002] # BAMUM LETTER PHASE-C YEUQ
+168A8 ; [.37EA.0020.0002] # BAMUM LETTER PHASE-C KPARAQ
+168A9 ; [.37EB.0020.0002] # BAMUM LETTER PHASE-C KAA
+168AA ; [.37EC.0020.0002] # BAMUM LETTER PHASE-C SEUX
+168AB ; [.37ED.0020.0002] # BAMUM LETTER PHASE-C NDIDA
+168AC ; [.37EE.0020.0002] # BAMUM LETTER PHASE-C TAASHAE
+168AD ; [.37EF.0020.0002] # BAMUM LETTER PHASE-C NJUEQ
+168AE ; [.37F0.0020.0002] # BAMUM LETTER PHASE-C TITA YUE
+168AF ; [.37F1.0020.0002] # BAMUM LETTER PHASE-C SUAET
+168B0 ; [.37F2.0020.0002] # BAMUM LETTER PHASE-C NGGUAEN NYAM
+168B1 ; [.37F3.0020.0002] # BAMUM LETTER PHASE-C VEUX
+168B2 ; [.37F4.0020.0002] # BAMUM LETTER PHASE-C NANSANAQ
+168B3 ; [.37F5.0020.0002] # BAMUM LETTER PHASE-C MA KEUAERI
+168B4 ; [.37F6.0020.0002] # BAMUM LETTER PHASE-C NTAA
+168B5 ; [.37F7.0020.0002] # BAMUM LETTER PHASE-C NGGUON
+168B6 ; [.37F8.0020.0002] # BAMUM LETTER PHASE-C LAP
+168B7 ; [.37F9.0020.0002] # BAMUM LETTER PHASE-C MBIRIEEN
+168B8 ; [.37FA.0020.0002] # BAMUM LETTER PHASE-C MGBASAQ
+168B9 ; [.37FB.0020.0002] # BAMUM LETTER PHASE-C NTEUNGBA
+168BA ; [.37FC.0020.0002] # BAMUM LETTER PHASE-C TEUTEUX
+168BB ; [.37FD.0020.0002] # BAMUM LETTER PHASE-C NGGUM
+168BC ; [.37FE.0020.0002] # BAMUM LETTER PHASE-C FUE
+168BD ; [.37FF.0020.0002] # BAMUM LETTER PHASE-C NDEUT
+168BE ; [.3800.0020.0002] # BAMUM LETTER PHASE-C NSA
+168BF ; [.3801.0020.0002] # BAMUM LETTER PHASE-C NSHAQ
+168C0 ; [.3802.0020.0002] # BAMUM LETTER PHASE-C BUNG
+168C1 ; [.3803.0020.0002] # BAMUM LETTER PHASE-C VEUAEPEN
+168C2 ; [.3804.0020.0002] # BAMUM LETTER PHASE-C MBERAE
+168C3 ; [.3805.0020.0002] # BAMUM LETTER PHASE-C RU
+168C4 ; [.3806.0020.0002] # BAMUM LETTER PHASE-C NJAEM
+168C5 ; [.3807.0020.0002] # BAMUM LETTER PHASE-C LAM
+168C6 ; [.3808.0020.0002] # BAMUM LETTER PHASE-C TITUAEP
+168C7 ; [.3809.0020.0002] # BAMUM LETTER PHASE-C NSUOT NGOM
+168C8 ; [.380A.0020.0002] # BAMUM LETTER PHASE-C NJEEEE
+168C9 ; [.380B.0020.0002] # BAMUM LETTER PHASE-C KET
+168CA ; [.380C.0020.0002] # BAMUM LETTER PHASE-C NGGU
+168CB ; [.380D.0020.0002] # BAMUM LETTER PHASE-C MAESI
+168CC ; [.380E.0020.0002] # BAMUM LETTER PHASE-C MBUAEM
+168CD ; [.380F.0020.0002] # BAMUM LETTER PHASE-C LU
+168CE ; [.3810.0020.0002] # BAMUM LETTER PHASE-C KUT
+168CF ; [.3811.0020.0002] # BAMUM LETTER PHASE-C NJAM
+168D0 ; [.3812.0020.0002] # BAMUM LETTER PHASE-C NGOM
+168D1 ; [.3813.0020.0002] # BAMUM LETTER PHASE-C WUP
+168D2 ; [.3814.0020.0002] # BAMUM LETTER PHASE-C NGGUEET
+168D3 ; [.3815.0020.0002] # BAMUM LETTER PHASE-C NSOM
+168D4 ; [.3816.0020.0002] # BAMUM LETTER PHASE-C NTEN
+168D5 ; [.3817.0020.0002] # BAMUM LETTER PHASE-C KUOP NKAARAE
+168D6 ; [.3818.0020.0002] # BAMUM LETTER PHASE-C NSUN
+168D7 ; [.3819.0020.0002] # BAMUM LETTER PHASE-C NDAM
+168D8 ; [.381A.0020.0002] # BAMUM LETTER PHASE-C MA NSIEE
+168D9 ; [.381B.0020.0002] # BAMUM LETTER PHASE-C YAA
+168DA ; [.381C.0020.0002] # BAMUM LETTER PHASE-C NDAP
+168DB ; [.381D.0020.0002] # BAMUM LETTER PHASE-C SHUEQ
+168DC ; [.381E.0020.0002] # BAMUM LETTER PHASE-C SETFON
+168DD ; [.381F.0020.0002] # BAMUM LETTER PHASE-C MBI
+168DE ; [.3820.0020.0002] # BAMUM LETTER PHASE-C MAEMBA
+168DF ; [.3821.0020.0002] # BAMUM LETTER PHASE-C MBANYI
+168E0 ; [.3822.0020.0002] # BAMUM LETTER PHASE-C KEUSEUX
+168E1 ; [.3823.0020.0002] # BAMUM LETTER PHASE-C MBEUX
+168E2 ; [.3824.0020.0002] # BAMUM LETTER PHASE-C KEUM
+168E3 ; [.3825.0020.0002] # BAMUM LETTER PHASE-C MBAA PICKET
+168E4 ; [.3826.0020.0002] # BAMUM LETTER PHASE-C YUWOQ
+168E5 ; [.3827.0020.0002] # BAMUM LETTER PHASE-C NJEUX
+168E6 ; [.3828.0020.0002] # BAMUM LETTER PHASE-C MIEE
+168E7 ; [.3829.0020.0002] # BAMUM LETTER PHASE-C MUAE
+168E8 ; [.382A.0020.0002] # BAMUM LETTER PHASE-C SHIQ
+168E9 ; [.382B.0020.0002] # BAMUM LETTER PHASE-C KEN LAW
+168EA ; [.382C.0020.0002] # BAMUM LETTER PHASE-C KEN FATIGUE
+168EB ; [.382D.0020.0002] # BAMUM LETTER PHASE-C NGAQ
+168EC ; [.382E.0020.0002] # BAMUM LETTER PHASE-C NAQ
+168ED ; [.382F.0020.0002] # BAMUM LETTER PHASE-C LIQ
+168EE ; [.3830.0020.0002] # BAMUM LETTER PHASE-C PIN
+168EF ; [.3831.0020.0002] # BAMUM LETTER PHASE-C PEN
+168F0 ; [.3832.0020.0002] # BAMUM LETTER PHASE-C TET
+168F1 ; [.3833.0020.0002] # BAMUM LETTER PHASE-D MBUO
+168F2 ; [.3834.0020.0002] # BAMUM LETTER PHASE-D WAP
+168F3 ; [.3835.0020.0002] # BAMUM LETTER PHASE-D NJI
+168F4 ; [.3836.0020.0002] # BAMUM LETTER PHASE-D MFON
+168F5 ; [.3837.0020.0002] # BAMUM LETTER PHASE-D NJIEE
+168F6 ; [.3838.0020.0002] # BAMUM LETTER PHASE-D LIEE
+168F7 ; [.3839.0020.0002] # BAMUM LETTER PHASE-D NJEUT
+168F8 ; [.383A.0020.0002] # BAMUM LETTER PHASE-D NSHEE
+168F9 ; [.383B.0020.0002] # BAMUM LETTER PHASE-D NGGAAMAE
+168FA ; [.383C.0020.0002] # BAMUM LETTER PHASE-D NYAM
+168FB ; [.383D.0020.0002] # BAMUM LETTER PHASE-D WUAEN
+168FC ; [.383E.0020.0002] # BAMUM LETTER PHASE-D NGKUN
+168FD ; [.383F.0020.0002] # BAMUM LETTER PHASE-D SHEE
+168FE ; [.3840.0020.0002] # BAMUM LETTER PHASE-D NGKAP
+168FF ; [.3841.0020.0002] # BAMUM LETTER PHASE-D KEUAETMEUN
+16900 ; [.3842.0020.0002] # BAMUM LETTER PHASE-D TEUT
+16901 ; [.3843.0020.0002] # BAMUM LETTER PHASE-D SHEUAE
+16902 ; [.3844.0020.0002] # BAMUM LETTER PHASE-D NJAP
+16903 ; [.3845.0020.0002] # BAMUM LETTER PHASE-D SUE
+16904 ; [.3846.0020.0002] # BAMUM LETTER PHASE-D KET
+16905 ; [.3847.0020.0002] # BAMUM LETTER PHASE-D YAEMMAE
+16906 ; [.3848.0020.0002] # BAMUM LETTER PHASE-D KUOM
+16907 ; [.3849.0020.0002] # BAMUM LETTER PHASE-D SAP
+16908 ; [.384A.0020.0002] # BAMUM LETTER PHASE-D MFEUT
+16909 ; [.384B.0020.0002] # BAMUM LETTER PHASE-D NDEUX
+1690A ; [.384C.0020.0002] # BAMUM LETTER PHASE-D MALEERI
+1690B ; [.384D.0020.0002] # BAMUM LETTER PHASE-D MEUT
+1690C ; [.384E.0020.0002] # BAMUM LETTER PHASE-D SEUAEQ
+1690D ; [.384F.0020.0002] # BAMUM LETTER PHASE-D YEN
+1690E ; [.3850.0020.0002] # BAMUM LETTER PHASE-D NJEUAEM
+1690F ; [.3851.0020.0002] # BAMUM LETTER PHASE-D KEUOT MBUAE
+16910 ; [.3852.0020.0002] # BAMUM LETTER PHASE-D NGKEURI
+16911 ; [.3853.0020.0002] # BAMUM LETTER PHASE-D TU
+16912 ; [.3854.0020.0002] # BAMUM LETTER PHASE-D GHAA
+16913 ; [.3855.0020.0002] # BAMUM LETTER PHASE-D NGKYEE
+16914 ; [.3856.0020.0002] # BAMUM LETTER PHASE-D FEUFEUAET
+16915 ; [.3857.0020.0002] # BAMUM LETTER PHASE-D NDEE
+16916 ; [.3858.0020.0002] # BAMUM LETTER PHASE-D MGBOFUM
+16917 ; [.3859.0020.0002] # BAMUM LETTER PHASE-D LEUAEP
+16918 ; [.385A.0020.0002] # BAMUM LETTER PHASE-D NDON
+16919 ; [.385B.0020.0002] # BAMUM LETTER PHASE-D MONI
+1691A ; [.385C.0020.0002] # BAMUM LETTER PHASE-D MGBEUN
+1691B ; [.385D.0020.0002] # BAMUM LETTER PHASE-D PUUT
+1691C ; [.385E.0020.0002] # BAMUM LETTER PHASE-D MGBIEE
+1691D ; [.385F.0020.0002] # BAMUM LETTER PHASE-D MFO
+1691E ; [.3860.0020.0002] # BAMUM LETTER PHASE-D LUM
+1691F ; [.3861.0020.0002] # BAMUM LETTER PHASE-D NSIEEP
+16920 ; [.3862.0020.0002] # BAMUM LETTER PHASE-D MBAA
+16921 ; [.3863.0020.0002] # BAMUM LETTER PHASE-D KWAET
+16922 ; [.3864.0020.0002] # BAMUM LETTER PHASE-D NYET
+16923 ; [.3865.0020.0002] # BAMUM LETTER PHASE-D TEUAEN
+16924 ; [.3866.0020.0002] # BAMUM LETTER PHASE-D SOT
+16925 ; [.3867.0020.0002] # BAMUM LETTER PHASE-D YUWOQ
+16926 ; [.3868.0020.0002] # BAMUM LETTER PHASE-D KEUM
+16927 ; [.3869.0020.0002] # BAMUM LETTER PHASE-D RAEM
+16928 ; [.386A.0020.0002] # BAMUM LETTER PHASE-D TEEEE
+16929 ; [.386B.0020.0002] # BAMUM LETTER PHASE-D NGKEUAEQ
+1692A ; [.386C.0020.0002] # BAMUM LETTER PHASE-D MFEUAE
+1692B ; [.386D.0020.0002] # BAMUM LETTER PHASE-D NSIEET
+1692C ; [.386E.0020.0002] # BAMUM LETTER PHASE-D KEUP
+1692D ; [.386F.0020.0002] # BAMUM LETTER PHASE-D PIP
+1692E ; [.3870.0020.0002] # BAMUM LETTER PHASE-D PEUTAE
+1692F ; [.3871.0020.0002] # BAMUM LETTER PHASE-D NYUE
+16930 ; [.3872.0020.0002] # BAMUM LETTER PHASE-D LET
+16931 ; [.3873.0020.0002] # BAMUM LETTER PHASE-D NGGAAM
+16932 ; [.3874.0020.0002] # BAMUM LETTER PHASE-D MFIEE
+16933 ; [.3875.0020.0002] # BAMUM LETTER PHASE-D NGGWAEN
+16934 ; [.3876.0020.0002] # BAMUM LETTER PHASE-D YUOM
+16935 ; [.3877.0020.0002] # BAMUM LETTER PHASE-D PAP
+16936 ; [.3878.0020.0002] # BAMUM LETTER PHASE-D YUOP
+16937 ; [.3879.0020.0002] # BAMUM LETTER PHASE-D NDAM
+16938 ; [.387A.0020.0002] # BAMUM LETTER PHASE-D NTEUM
+16939 ; [.387B.0020.0002] # BAMUM LETTER PHASE-D SUAE
+1693A ; [.387C.0020.0002] # BAMUM LETTER PHASE-D KUN
+1693B ; [.387D.0020.0002] # BAMUM LETTER PHASE-D NGGEUX
+1693C ; [.387E.0020.0002] # BAMUM LETTER PHASE-D NGKIEE
+1693D ; [.387F.0020.0002] # BAMUM LETTER PHASE-D TUOT
+1693E ; [.3880.0020.0002] # BAMUM LETTER PHASE-D MEUN
+1693F ; [.3881.0020.0002] # BAMUM LETTER PHASE-D KUQ
+16940 ; [.3882.0020.0002] # BAMUM LETTER PHASE-D NSUM
+16941 ; [.3883.0020.0002] # BAMUM LETTER PHASE-D TEUN
+16942 ; [.3884.0020.0002] # BAMUM LETTER PHASE-D MAENJET
+16943 ; [.3885.0020.0002] # BAMUM LETTER PHASE-D NGGAP
+16944 ; [.3886.0020.0002] # BAMUM LETTER PHASE-D LEUM
+16945 ; [.3887.0020.0002] # BAMUM LETTER PHASE-D NGGUOM
+16946 ; [.3888.0020.0002] # BAMUM LETTER PHASE-D NSHUT
+16947 ; [.3889.0020.0002] # BAMUM LETTER PHASE-D NJUEQ
+16948 ; [.388A.0020.0002] # BAMUM LETTER PHASE-D GHEUAE
+16949 ; [.388B.0020.0002] # BAMUM LETTER PHASE-D KU
+1694A ; [.388C.0020.0002] # BAMUM LETTER PHASE-D REN OLD
+1694B ; [.388D.0020.0002] # BAMUM LETTER PHASE-D TAE
+1694C ; [.388E.0020.0002] # BAMUM LETTER PHASE-D TOQ
+1694D ; [.388F.0020.0002] # BAMUM LETTER PHASE-D NYI
+1694E ; [.3890.0020.0002] # BAMUM LETTER PHASE-D RII
+1694F ; [.3891.0020.0002] # BAMUM LETTER PHASE-D LEEEE
+16950 ; [.3892.0020.0002] # BAMUM LETTER PHASE-D MEEEE
+16951 ; [.3893.0020.0002] # BAMUM LETTER PHASE-D M
+16952 ; [.3894.0020.0002] # BAMUM LETTER PHASE-D SUU
+16953 ; [.3895.0020.0002] # BAMUM LETTER PHASE-D MU
+16954 ; [.3896.0020.0002] # BAMUM LETTER PHASE-D SHII
+16955 ; [.3897.0020.0002] # BAMUM LETTER PHASE-D SHEUX
+16956 ; [.3898.0020.0002] # BAMUM LETTER PHASE-D KYEE
+16957 ; [.3899.0020.0002] # BAMUM LETTER PHASE-D NU
+16958 ; [.389A.0020.0002] # BAMUM LETTER PHASE-D SHU
+16959 ; [.389B.0020.0002] # BAMUM LETTER PHASE-D NTEE
+1695A ; [.389C.0020.0002] # BAMUM LETTER PHASE-D PEE
+1695B ; [.389D.0020.0002] # BAMUM LETTER PHASE-D NI
+1695C ; [.389E.0020.0002] # BAMUM LETTER PHASE-D SHOQ
+1695D ; [.389F.0020.0002] # BAMUM LETTER PHASE-D PUQ
+1695E ; [.38A0.0020.0002] # BAMUM LETTER PHASE-D MVOP
+1695F ; [.38A1.0020.0002] # BAMUM LETTER PHASE-D LOQ
+16960 ; [.38A2.0020.0002] # BAMUM LETTER PHASE-D REN MUCH
+16961 ; [.38A3.0020.0002] # BAMUM LETTER PHASE-D TI
+16962 ; [.38A4.0020.0002] # BAMUM LETTER PHASE-D NTUU
+16963 ; [.38A5.0020.0002] # BAMUM LETTER PHASE-D MBAA SEVEN
+16964 ; [.38A6.0020.0002] # BAMUM LETTER PHASE-D SAQ
+16965 ; [.38A7.0020.0002] # BAMUM LETTER PHASE-D FAA
+16966 ; [.38A8.0020.0002] # BAMUM LETTER PHASE-E NDAP
+16967 ; [.38A9.0020.0002] # BAMUM LETTER PHASE-E TOON
+16968 ; [.38AA.0020.0002] # BAMUM LETTER PHASE-E MBEUM
+16969 ; [.38AB.0020.0002] # BAMUM LETTER PHASE-E LAP
+1696A ; [.38AC.0020.0002] # BAMUM LETTER PHASE-E VOM
+1696B ; [.38AD.0020.0002] # BAMUM LETTER PHASE-E LOON
+1696C ; [.38AE.0020.0002] # BAMUM LETTER PHASE-E PAA
+1696D ; [.38AF.0020.0002] # BAMUM LETTER PHASE-E SOM
+1696E ; [.38B0.0020.0002] # BAMUM LETTER PHASE-E RAQ
+1696F ; [.38B1.0020.0002] # BAMUM LETTER PHASE-E NSHUOP
+16970 ; [.38B2.0020.0002] # BAMUM LETTER PHASE-E NDUN
+16971 ; [.38B3.0020.0002] # BAMUM LETTER PHASE-E PUAE
+16972 ; [.38B4.0020.0002] # BAMUM LETTER PHASE-E TAM
+16973 ; [.38B5.0020.0002] # BAMUM LETTER PHASE-E NGKA
+16974 ; [.38B6.0020.0002] # BAMUM LETTER PHASE-E KPEUX
+16975 ; [.38B7.0020.0002] # BAMUM LETTER PHASE-E WUO
+16976 ; [.38B8.0020.0002] # BAMUM LETTER PHASE-E SEE
+16977 ; [.38B9.0020.0002] # BAMUM LETTER PHASE-E NGGEUAET
+16978 ; [.38BA.0020.0002] # BAMUM LETTER PHASE-E PAAM
+16979 ; [.38BB.0020.0002] # BAMUM LETTER PHASE-E TOO
+1697A ; [.38BC.0020.0002] # BAMUM LETTER PHASE-E KUOP
+1697B ; [.38BD.0020.0002] # BAMUM LETTER PHASE-E LOM
+1697C ; [.38BE.0020.0002] # BAMUM LETTER PHASE-E NSHIEE
+1697D ; [.38BF.0020.0002] # BAMUM LETTER PHASE-E NGOP
+1697E ; [.38C0.0020.0002] # BAMUM LETTER PHASE-E MAEM
+1697F ; [.38C1.0020.0002] # BAMUM LETTER PHASE-E NGKEUX
+16980 ; [.38C2.0020.0002] # BAMUM LETTER PHASE-E NGOQ
+16981 ; [.38C3.0020.0002] # BAMUM LETTER PHASE-E NSHUE
+16982 ; [.38C4.0020.0002] # BAMUM LETTER PHASE-E RIMGBA
+16983 ; [.38C5.0020.0002] # BAMUM LETTER PHASE-E NJEUX
+16984 ; [.38C6.0020.0002] # BAMUM LETTER PHASE-E PEEM
+16985 ; [.38C7.0020.0002] # BAMUM LETTER PHASE-E SAA
+16986 ; [.38C8.0020.0002] # BAMUM LETTER PHASE-E NGGURAE
+16987 ; [.38C9.0020.0002] # BAMUM LETTER PHASE-E MGBA
+16988 ; [.38CA.0020.0002] # BAMUM LETTER PHASE-E GHEUX
+16989 ; [.38CB.0020.0002] # BAMUM LETTER PHASE-E NGKEUAEM
+1698A ; [.38CC.0020.0002] # BAMUM LETTER PHASE-E NJAEMLI
+1698B ; [.38CD.0020.0002] # BAMUM LETTER PHASE-E MAP
+1698C ; [.38CE.0020.0002] # BAMUM LETTER PHASE-E LOOT
+1698D ; [.38CF.0020.0002] # BAMUM LETTER PHASE-E NGGEEEE
+1698E ; [.38D0.0020.0002] # BAMUM LETTER PHASE-E NDIQ
+1698F ; [.38D1.0020.0002] # BAMUM LETTER PHASE-E TAEN NTEUM
+16990 ; [.38D2.0020.0002] # BAMUM LETTER PHASE-E SET
+16991 ; [.38D3.0020.0002] # BAMUM LETTER PHASE-E PUM
+16992 ; [.38D4.0020.0002] # BAMUM LETTER PHASE-E NDAA SOFTNESS
+16993 ; [.38D5.0020.0002] # BAMUM LETTER PHASE-E NGGUAESHAE NYAM
+16994 ; [.38D6.0020.0002] # BAMUM LETTER PHASE-E YIEE
+16995 ; [.38D7.0020.0002] # BAMUM LETTER PHASE-E GHEUN
+16996 ; [.38D8.0020.0002] # BAMUM LETTER PHASE-E TUAE
+16997 ; [.38D9.0020.0002] # BAMUM LETTER PHASE-E YEUAE
+16998 ; [.38DA.0020.0002] # BAMUM LETTER PHASE-E PO
+16999 ; [.38DB.0020.0002] # BAMUM LETTER PHASE-E TUMAE
+1699A ; [.38DC.0020.0002] # BAMUM LETTER PHASE-E KEUAE
+1699B ; [.38DD.0020.0002] # BAMUM LETTER PHASE-E SUAEN
+1699C ; [.38DE.0020.0002] # BAMUM LETTER PHASE-E TEUAEQ
+1699D ; [.38DF.0020.0002] # BAMUM LETTER PHASE-E VEUAE
+1699E ; [.38E0.0020.0002] # BAMUM LETTER PHASE-E WEUX
+1699F ; [.38E1.0020.0002] # BAMUM LETTER PHASE-E LAAM
+169A0 ; [.38E2.0020.0002] # BAMUM LETTER PHASE-E PU
+169A1 ; [.38E3.0020.0002] # BAMUM LETTER PHASE-E TAAQ
+169A2 ; [.38E4.0020.0002] # BAMUM LETTER PHASE-E GHAAMAE
+169A3 ; [.38E5.0020.0002] # BAMUM LETTER PHASE-E NGEUREUT
+169A4 ; [.38E6.0020.0002] # BAMUM LETTER PHASE-E SHEUAEQ
+169A5 ; [.38E7.0020.0002] # BAMUM LETTER PHASE-E MGBEN
+169A6 ; [.38E8.0020.0002] # BAMUM LETTER PHASE-E MBEE
+169A7 ; [.38E9.0020.0002] # BAMUM LETTER PHASE-E NZAQ
+169A8 ; [.38EA.0020.0002] # BAMUM LETTER PHASE-E NKOM
+169A9 ; [.38EB.0020.0002] # BAMUM LETTER PHASE-E GBET
+169AA ; [.38EC.0020.0002] # BAMUM LETTER PHASE-E TUM
+169AB ; [.38ED.0020.0002] # BAMUM LETTER PHASE-E KUET
+169AC ; [.38EE.0020.0002] # BAMUM LETTER PHASE-E YAP
+169AD ; [.38EF.0020.0002] # BAMUM LETTER PHASE-E NYI CLEAVER
+169AE ; [.38F0.0020.0002] # BAMUM LETTER PHASE-E YIT
+169AF ; [.38F1.0020.0002] # BAMUM LETTER PHASE-E MFEUQ
+169B0 ; [.38F2.0020.0002] # BAMUM LETTER PHASE-E NDIAQ
+169B1 ; [.38F3.0020.0002] # BAMUM LETTER PHASE-E PIEEQ
+169B2 ; [.38F4.0020.0002] # BAMUM LETTER PHASE-E YUEQ
+169B3 ; [.38F5.0020.0002] # BAMUM LETTER PHASE-E LEUAEM
+169B4 ; [.38F6.0020.0002] # BAMUM LETTER PHASE-E FUE
+169B5 ; [.38F7.0020.0002] # BAMUM LETTER PHASE-E GBEUX
+169B6 ; [.38F8.0020.0002] # BAMUM LETTER PHASE-E NGKUP
+169B7 ; [.38F9.0020.0002] # BAMUM LETTER PHASE-E KET
+169B8 ; [.38FA.0020.0002] # BAMUM LETTER PHASE-E MAE
+169B9 ; [.38FB.0020.0002] # BAMUM LETTER PHASE-E NGKAAMI
+169BA ; [.38FC.0020.0002] # BAMUM LETTER PHASE-E GHET
+169BB ; [.38FD.0020.0002] # BAMUM LETTER PHASE-E FA
+169BC ; [.38FE.0020.0002] # BAMUM LETTER PHASE-E NTUM
+169BD ; [.38FF.0020.0002] # BAMUM LETTER PHASE-E PEUT
+169BE ; [.3900.0020.0002] # BAMUM LETTER PHASE-E YEUM
+169BF ; [.3901.0020.0002] # BAMUM LETTER PHASE-E NGGEUAE
+169C0 ; [.3902.0020.0002] # BAMUM LETTER PHASE-E NYI BETWEEN
+169C1 ; [.3903.0020.0002] # BAMUM LETTER PHASE-E NZUQ
+169C2 ; [.3904.0020.0002] # BAMUM LETTER PHASE-E POON
+169C3 ; [.3905.0020.0002] # BAMUM LETTER PHASE-E MIEE
+169C4 ; [.3906.0020.0002] # BAMUM LETTER PHASE-E FUET
+169C5 ; [.3907.0020.0002] # BAMUM LETTER PHASE-E NAE
+169C6 ; [.3908.0020.0002] # BAMUM LETTER PHASE-E MUAE
+169C7 ; [.3909.0020.0002] # BAMUM LETTER PHASE-E GHEUAE
+169C8 ; [.390A.0020.0002] # BAMUM LETTER PHASE-E FU I
+169C9 ; [.390B.0020.0002] # BAMUM LETTER PHASE-E MVI
+169CA ; [.390C.0020.0002] # BAMUM LETTER PHASE-E PUAQ
+169CB ; [.390D.0020.0002] # BAMUM LETTER PHASE-E NGKUM
+169CC ; [.390E.0020.0002] # BAMUM LETTER PHASE-E KUT
+169CD ; [.390F.0020.0002] # BAMUM LETTER PHASE-E PIET
+169CE ; [.3910.0020.0002] # BAMUM LETTER PHASE-E NTAP
+169CF ; [.3911.0020.0002] # BAMUM LETTER PHASE-E YEUAET
+169D0 ; [.3912.0020.0002] # BAMUM LETTER PHASE-E NGGUP
+169D1 ; [.3913.0020.0002] # BAMUM LETTER PHASE-E PA PEOPLE
+169D2 ; [.3914.0020.0002] # BAMUM LETTER PHASE-E FU CALL
+169D3 ; [.3915.0020.0002] # BAMUM LETTER PHASE-E FOM
+169D4 ; [.3916.0020.0002] # BAMUM LETTER PHASE-E NJEE
+169D5 ; [.3917.0020.0002] # BAMUM LETTER PHASE-E A
+169D6 ; [.3918.0020.0002] # BAMUM LETTER PHASE-E TOQ
+169D7 ; [.3919.0020.0002] # BAMUM LETTER PHASE-E O
+169D8 ; [.391A.0020.0002] # BAMUM LETTER PHASE-E I
+169D9 ; [.391B.0020.0002] # BAMUM LETTER PHASE-E LAQ
+169DA ; [.391C.0020.0002] # BAMUM LETTER PHASE-E PA PLURAL
+169DB ; [.391D.0020.0002] # BAMUM LETTER PHASE-E TAA
+169DC ; [.391E.0020.0002] # BAMUM LETTER PHASE-E TAQ
+169DD ; [.391F.0020.0002] # BAMUM LETTER PHASE-E NDAA MY HOUSE
+169DE ; [.3920.0020.0002] # BAMUM LETTER PHASE-E SHIQ
+169DF ; [.3921.0020.0002] # BAMUM LETTER PHASE-E YEUX
+169E0 ; [.3922.0020.0002] # BAMUM LETTER PHASE-E NGUAE
+169E1 ; [.3923.0020.0002] # BAMUM LETTER PHASE-E YUAEN
+169E2 ; [.3924.0020.0002] # BAMUM LETTER PHASE-E YOQ SWIMMING
+169E3 ; [.3925.0020.0002] # BAMUM LETTER PHASE-E YOQ COVER
+169E4 ; [.3926.0020.0002] # BAMUM LETTER PHASE-E YUQ
+169E5 ; [.3927.0020.0002] # BAMUM LETTER PHASE-E YUN
+169E6 ; [.3928.0020.0002] # BAMUM LETTER PHASE-E KEUX
+169E7 ; [.3929.0020.0002] # BAMUM LETTER PHASE-E PEUX
+169E8 ; [.392A.0020.0002] # BAMUM LETTER PHASE-E NJEE EPOCH
+169E9 ; [.392B.0020.0002] # BAMUM LETTER PHASE-E PUE
+169EA ; [.392C.0020.0002] # BAMUM LETTER PHASE-E WUE
+169EB ; [.392D.0020.0002] # BAMUM LETTER PHASE-E FEE
+169EC ; [.392E.0020.0002] # BAMUM LETTER PHASE-E VEE
+169ED ; [.392F.0020.0002] # BAMUM LETTER PHASE-E LU
+169EE ; [.3930.0020.0002] # BAMUM LETTER PHASE-E MI
+169EF ; [.3931.0020.0002] # BAMUM LETTER PHASE-E REUX
+169F0 ; [.3932.0020.0002] # BAMUM LETTER PHASE-E RAE
+169F1 ; [.3933.0020.0002] # BAMUM LETTER PHASE-E NGUAET
+169F2 ; [.3934.0020.0002] # BAMUM LETTER PHASE-E NGA
+169F3 ; [.3935.0020.0002] # BAMUM LETTER PHASE-E SHO
+169F4 ; [.3936.0020.0002] # BAMUM LETTER PHASE-E SHOQ
+169F5 ; [.3937.0020.0002] # BAMUM LETTER PHASE-E FU REMEDY
+169F6 ; [.3938.0020.0002] # BAMUM LETTER PHASE-E NA
+169F7 ; [.3939.0020.0002] # BAMUM LETTER PHASE-E PI
+169F8 ; [.393A.0020.0002] # BAMUM LETTER PHASE-E LOQ
+169F9 ; [.393B.0020.0002] # BAMUM LETTER PHASE-E KO
+169FA ; [.393C.0020.0002] # BAMUM LETTER PHASE-E MEN
+169FB ; [.393D.0020.0002] # BAMUM LETTER PHASE-E MA
+169FC ; [.393E.0020.0002] # BAMUM LETTER PHASE-E MAQ
+169FD ; [.393F.0020.0002] # BAMUM LETTER PHASE-E TEU
+169FE ; [.3940.0020.0002] # BAMUM LETTER PHASE-E KI
+169FF ; [.3941.0020.0002] # BAMUM LETTER PHASE-E MON
+16A00 ; [.3942.0020.0002] # BAMUM LETTER PHASE-E TEN
+16A01 ; [.3943.0020.0002] # BAMUM LETTER PHASE-E FAQ
+16A02 ; [.3944.0020.0002] # BAMUM LETTER PHASE-E GHOM
+16A03 ; [.3945.0020.0002] # BAMUM LETTER PHASE-F KA
+16A04 ; [.3946.0020.0002] # BAMUM LETTER PHASE-F U
+16A05 ; [.3947.0020.0002] # BAMUM LETTER PHASE-F KU
+16A06 ; [.3948.0020.0002] # BAMUM LETTER PHASE-F EE
+16A07 ; [.3949.0020.0002] # BAMUM LETTER PHASE-F REE
+16A08 ; [.394A.0020.0002] # BAMUM LETTER PHASE-F TAE
+16A09 ; [.394B.0020.0002] # BAMUM LETTER PHASE-F NYI
+16A0A ; [.394C.0020.0002] # BAMUM LETTER PHASE-F LA
+16A0B ; [.394D.0020.0002] # BAMUM LETTER PHASE-F RII
+16A0C ; [.394E.0020.0002] # BAMUM LETTER PHASE-F RIEE
+16A0D ; [.394F.0020.0002] # BAMUM LETTER PHASE-F MEEEE
+16A0E ; [.3950.0020.0002] # BAMUM LETTER PHASE-F TAA
+16A0F ; [.3951.0020.0002] # BAMUM LETTER PHASE-F NDAA
+16A10 ; [.3952.0020.0002] # BAMUM LETTER PHASE-F NJAEM
+16A11 ; [.3953.0020.0002] # BAMUM LETTER PHASE-F M
+16A12 ; [.3954.0020.0002] # BAMUM LETTER PHASE-F SUU
+16A13 ; [.3955.0020.0002] # BAMUM LETTER PHASE-F SHII
+16A14 ; [.3956.0020.0002] # BAMUM LETTER PHASE-F SI
+16A15 ; [.3957.0020.0002] # BAMUM LETTER PHASE-F SEUX
+16A16 ; [.3958.0020.0002] # BAMUM LETTER PHASE-F KYEE
+16A17 ; [.3959.0020.0002] # BAMUM LETTER PHASE-F KET
+16A18 ; [.395A.0020.0002] # BAMUM LETTER PHASE-F NUAE
+16A19 ; [.395B.0020.0002] # BAMUM LETTER PHASE-F NU
+16A1A ; [.395C.0020.0002] # BAMUM LETTER PHASE-F NJUAE
+16A1B ; [.395D.0020.0002] # BAMUM LETTER PHASE-F YOQ
+16A1C ; [.395E.0020.0002] # BAMUM LETTER PHASE-F SHU
+16A1D ; [.395F.0020.0002] # BAMUM LETTER PHASE-F YA
+16A1E ; [.3960.0020.0002] # BAMUM LETTER PHASE-F NSHA
+16A1F ; [.3961.0020.0002] # BAMUM LETTER PHASE-F PEUX
+16A20 ; [.3962.0020.0002] # BAMUM LETTER PHASE-F NTEE
+16A21 ; [.3963.0020.0002] # BAMUM LETTER PHASE-F WUE
+16A22 ; [.3964.0020.0002] # BAMUM LETTER PHASE-F PEE
+16A23 ; [.3965.0020.0002] # BAMUM LETTER PHASE-F RU
+16A24 ; [.3966.0020.0002] # BAMUM LETTER PHASE-F NI
+16A25 ; [.3967.0020.0002] # BAMUM LETTER PHASE-F REUX
+16A26 ; [.3968.0020.0002] # BAMUM LETTER PHASE-F KEN
+16A27 ; [.3969.0020.0002] # BAMUM LETTER PHASE-F NGKWAEN
+16A28 ; [.396A.0020.0002] # BAMUM LETTER PHASE-F NGGA
+16A29 ; [.396B.0020.0002] # BAMUM LETTER PHASE-F SHO
+16A2A ; [.396C.0020.0002] # BAMUM LETTER PHASE-F PUAE
+16A2B ; [.396D.0020.0002] # BAMUM LETTER PHASE-F FOM
+16A2C ; [.396E.0020.0002] # BAMUM LETTER PHASE-F WA
+16A2D ; [.396F.0020.0002] # BAMUM LETTER PHASE-F LI
+16A2E ; [.3970.0020.0002] # BAMUM LETTER PHASE-F LOQ
+16A2F ; [.3971.0020.0002] # BAMUM LETTER PHASE-F KO
+16A30 ; [.3972.0020.0002] # BAMUM LETTER PHASE-F MBEN
+16A31 ; [.3973.0020.0002] # BAMUM LETTER PHASE-F REN
+16A32 ; [.3974.0020.0002] # BAMUM LETTER PHASE-F MA
+16A33 ; [.3975.0020.0002] # BAMUM LETTER PHASE-F MO
+16A34 ; [.3976.0020.0002] # BAMUM LETTER PHASE-F MBAA
+16A35 ; [.3977.0020.0002] # BAMUM LETTER PHASE-F TET
+16A36 ; [.3978.0020.0002] # BAMUM LETTER PHASE-F KPA
+16A37 ; [.3979.0020.0002] # BAMUM LETTER PHASE-F SAMBA
+16A38 ; [.397A.0020.0002] # BAMUM LETTER PHASE-F VUEQ
+16AD0 ; [.397B.0020.0002] # BASSA VAH LETTER ENNI
+16AD1 ; [.397C.0020.0002] # BASSA VAH LETTER KA
+16AD2 ; [.397D.0020.0002] # BASSA VAH LETTER SE
+16AD3 ; [.397E.0020.0002] # BASSA VAH LETTER FA
+16AD4 ; [.397F.0020.0002] # BASSA VAH LETTER MBE
+16AD5 ; [.3980.0020.0002] # BASSA VAH LETTER YIE
+16AD6 ; [.3981.0020.0002] # BASSA VAH LETTER GAH
+16AD7 ; [.3982.0020.0002] # BASSA VAH LETTER DHII
+16AD8 ; [.3983.0020.0002] # BASSA VAH LETTER KPAH
+16AD9 ; [.3984.0020.0002] # BASSA VAH LETTER JO
+16ADA ; [.3985.0020.0002] # BASSA VAH LETTER HWAH
+16ADB ; [.3986.0020.0002] # BASSA VAH LETTER WA
+16ADC ; [.3987.0020.0002] # BASSA VAH LETTER ZO
+16ADD ; [.3988.0020.0002] # BASSA VAH LETTER GBU
+16ADE ; [.3989.0020.0002] # BASSA VAH LETTER DO
+16ADF ; [.398A.0020.0002] # BASSA VAH LETTER CE
+16AE0 ; [.398B.0020.0002] # BASSA VAH LETTER UWU
+16AE1 ; [.398C.0020.0002] # BASSA VAH LETTER TO
+16AE2 ; [.398D.0020.0002] # BASSA VAH LETTER BA
+16AE3 ; [.398E.0020.0002] # BASSA VAH LETTER VU
+16AE4 ; [.398F.0020.0002] # BASSA VAH LETTER YEIN
+16AE5 ; [.3990.0020.0002] # BASSA VAH LETTER PA
+16AE6 ; [.3991.0020.0002] # BASSA VAH LETTER WADDA
+16AE7 ; [.3992.0020.0002] # BASSA VAH LETTER A
+16AE8 ; [.3993.0020.0002] # BASSA VAH LETTER O
+16AE9 ; [.3994.0020.0002] # BASSA VAH LETTER OO
+16AEA ; [.3995.0020.0002] # BASSA VAH LETTER U
+16AEB ; [.3996.0020.0002] # BASSA VAH LETTER EE
+16AEC ; [.3997.0020.0002] # BASSA VAH LETTER E
+16AED ; [.3998.0020.0002] # BASSA VAH LETTER I
+1E800 ; [.3999.0020.0002] # MENDE KIKAKUI SYLLABLE M001 KI
+1E801 ; [.399A.0020.0002] # MENDE KIKAKUI SYLLABLE M002 KA
+1E802 ; [.399B.0020.0002] # MENDE KIKAKUI SYLLABLE M003 KU
+1E803 ; [.399C.0020.0002] # MENDE KIKAKUI SYLLABLE M065 KEE
+1E804 ; [.399D.0020.0002] # MENDE KIKAKUI SYLLABLE M095 KE
+1E805 ; [.399E.0020.0002] # MENDE KIKAKUI SYLLABLE M076 KOO
+1E806 ; [.399F.0020.0002] # MENDE KIKAKUI SYLLABLE M048 KO
+1E807 ; [.39A0.0020.0002] # MENDE KIKAKUI SYLLABLE M179 KUA
+1E808 ; [.39A1.0020.0002] # MENDE KIKAKUI SYLLABLE M004 WI
+1E809 ; [.39A2.0020.0002] # MENDE KIKAKUI SYLLABLE M005 WA
+1E80A ; [.39A3.0020.0002] # MENDE KIKAKUI SYLLABLE M006 WU
+1E80B ; [.39A4.0020.0002] # MENDE KIKAKUI SYLLABLE M126 WEE
+1E80C ; [.39A5.0020.0002] # MENDE KIKAKUI SYLLABLE M118 WE
+1E80D ; [.39A6.0020.0002] # MENDE KIKAKUI SYLLABLE M114 WOO
+1E80E ; [.39A7.0020.0002] # MENDE KIKAKUI SYLLABLE M045 WO
+1E80F ; [.39A8.0020.0002] # MENDE KIKAKUI SYLLABLE M194 WUI
+1E810 ; [.39A9.0020.0002] # MENDE KIKAKUI SYLLABLE M143 WEI
+1E811 ; [.39AA.0020.0002] # MENDE KIKAKUI SYLLABLE M061 WVI
+1E812 ; [.39AB.0020.0002] # MENDE KIKAKUI SYLLABLE M049 WVA
+1E813 ; [.39AC.0020.0002] # MENDE KIKAKUI SYLLABLE M139 WVE
+1E814 ; [.39AD.0020.0002] # MENDE KIKAKUI SYLLABLE M007 MIN
+1E815 ; [.39AE.0020.0002] # MENDE KIKAKUI SYLLABLE M008 MAN
+1E816 ; [.39AF.0020.0002] # MENDE KIKAKUI SYLLABLE M009 MUN
+1E817 ; [.39B0.0020.0002] # MENDE KIKAKUI SYLLABLE M059 MEN
+1E818 ; [.39B1.0020.0002] # MENDE KIKAKUI SYLLABLE M094 MON
+1E819 ; [.39B2.0020.0002] # MENDE KIKAKUI SYLLABLE M154 MUAN
+1E81A ; [.39B3.0020.0002] # MENDE KIKAKUI SYLLABLE M189 MUEN
+1E81B ; [.39B4.0020.0002] # MENDE KIKAKUI SYLLABLE M010 BI
+1E81C ; [.39B5.0020.0002] # MENDE KIKAKUI SYLLABLE M011 BA
+1E81D ; [.39B6.0020.0002] # MENDE KIKAKUI SYLLABLE M012 BU
+1E81E ; [.39B7.0020.0002] # MENDE KIKAKUI SYLLABLE M150 BEE
+1E81F ; [.39B8.0020.0002] # MENDE KIKAKUI SYLLABLE M097 BE
+1E820 ; [.39B9.0020.0002] # MENDE KIKAKUI SYLLABLE M103 BOO
+1E821 ; [.39BA.0020.0002] # MENDE KIKAKUI SYLLABLE M138 BO
+1E822 ; [.39BB.0020.0002] # MENDE KIKAKUI SYLLABLE M013 I
+1E823 ; [.39BC.0020.0002] # MENDE KIKAKUI SYLLABLE M014 A
+1E824 ; [.39BD.0020.0002] # MENDE KIKAKUI SYLLABLE M015 U
+1E825 ; [.39BE.0020.0002] # MENDE KIKAKUI SYLLABLE M163 EE
+1E826 ; [.39BF.0020.0002] # MENDE KIKAKUI SYLLABLE M100 E
+1E827 ; [.39C0.0020.0002] # MENDE KIKAKUI SYLLABLE M165 OO
+1E828 ; [.39C1.0020.0002] # MENDE KIKAKUI SYLLABLE M147 O
+1E829 ; [.39C2.0020.0002] # MENDE KIKAKUI SYLLABLE M137 EI
+1E82A ; [.39C3.0020.0002] # MENDE KIKAKUI SYLLABLE M131 IN
+1E82B ; [.39C4.0020.0002] # MENDE KIKAKUI SYLLABLE M135 IN
+1E82C ; [.39C5.0020.0002] # MENDE KIKAKUI SYLLABLE M195 AN
+1E82D ; [.39C6.0020.0002] # MENDE KIKAKUI SYLLABLE M178 EN
+1E82E ; [.39C7.0020.0002] # MENDE KIKAKUI SYLLABLE M019 SI
+1E82F ; [.39C8.0020.0002] # MENDE KIKAKUI SYLLABLE M020 SA
+1E830 ; [.39C9.0020.0002] # MENDE KIKAKUI SYLLABLE M021 SU
+1E831 ; [.39CA.0020.0002] # MENDE KIKAKUI SYLLABLE M162 SEE
+1E832 ; [.39CB.0020.0002] # MENDE KIKAKUI SYLLABLE M116 SE
+1E833 ; [.39CC.0020.0002] # MENDE KIKAKUI SYLLABLE M136 SOO
+1E834 ; [.39CD.0020.0002] # MENDE KIKAKUI SYLLABLE M079 SO
+1E835 ; [.39CE.0020.0002] # MENDE KIKAKUI SYLLABLE M196 SIA
+1E836 ; [.39CF.0020.0002] # MENDE KIKAKUI SYLLABLE M025 LI
+1E837 ; [.39D0.0020.0002] # MENDE KIKAKUI SYLLABLE M026 LA
+1E838 ; [.39D1.0020.0002] # MENDE KIKAKUI SYLLABLE M027 LU
+1E839 ; [.39D2.0020.0002] # MENDE KIKAKUI SYLLABLE M084 LEE
+1E83A ; [.39D3.0020.0002] # MENDE KIKAKUI SYLLABLE M073 LE
+1E83B ; [.39D4.0020.0002] # MENDE KIKAKUI SYLLABLE M054 LOO
+1E83C ; [.39D5.0020.0002] # MENDE KIKAKUI SYLLABLE M153 LO
+1E83D ; [.39D6.0020.0002] # MENDE KIKAKUI SYLLABLE M110 LONG LE
+1E83E ; [.39D7.0020.0002] # MENDE KIKAKUI SYLLABLE M016 DI
+1E83F ; [.39D8.0020.0002] # MENDE KIKAKUI SYLLABLE M017 DA
+1E840 ; [.39D9.0020.0002] # MENDE KIKAKUI SYLLABLE M018 DU
+1E841 ; [.39DA.0020.0002] # MENDE KIKAKUI SYLLABLE M089 DEE
+1E842 ; [.39DB.0020.0002] # MENDE KIKAKUI SYLLABLE M180 DOO
+1E843 ; [.39DC.0020.0002] # MENDE KIKAKUI SYLLABLE M181 DO
+1E844 ; [.39DD.0020.0002] # MENDE KIKAKUI SYLLABLE M022 TI
+1E845 ; [.39DE.0020.0002] # MENDE KIKAKUI SYLLABLE M023 TA
+1E846 ; [.39DF.0020.0002] # MENDE KIKAKUI SYLLABLE M024 TU
+1E847 ; [.39E0.0020.0002] # MENDE KIKAKUI SYLLABLE M091 TEE
+1E848 ; [.39E1.0020.0002] # MENDE KIKAKUI SYLLABLE M055 TE
+1E849 ; [.39E2.0020.0002] # MENDE KIKAKUI SYLLABLE M104 TOO
+1E84A ; [.39E3.0020.0002] # MENDE KIKAKUI SYLLABLE M069 TO
+1E84B ; [.39E4.0020.0002] # MENDE KIKAKUI SYLLABLE M028 JI
+1E84C ; [.39E5.0020.0002] # MENDE KIKAKUI SYLLABLE M029 JA
+1E84D ; [.39E6.0020.0002] # MENDE KIKAKUI SYLLABLE M030 JU
+1E84E ; [.39E7.0020.0002] # MENDE KIKAKUI SYLLABLE M157 JEE
+1E84F ; [.39E8.0020.0002] # MENDE KIKAKUI SYLLABLE M113 JE
+1E850 ; [.39E9.0020.0002] # MENDE KIKAKUI SYLLABLE M160 JOO
+1E851 ; [.39EA.0020.0002] # MENDE KIKAKUI SYLLABLE M063 JO
+1E852 ; [.39EB.0020.0002] # MENDE KIKAKUI SYLLABLE M175 LONG JO
+1E853 ; [.39EC.0020.0002] # MENDE KIKAKUI SYLLABLE M031 YI
+1E854 ; [.39ED.0020.0002] # MENDE KIKAKUI SYLLABLE M032 YA
+1E855 ; [.39EE.0020.0002] # MENDE KIKAKUI SYLLABLE M033 YU
+1E856 ; [.39EF.0020.0002] # MENDE KIKAKUI SYLLABLE M109 YEE
+1E857 ; [.39F0.0020.0002] # MENDE KIKAKUI SYLLABLE M080 YE
+1E858 ; [.39F1.0020.0002] # MENDE KIKAKUI SYLLABLE M141 YOO
+1E859 ; [.39F2.0020.0002] # MENDE KIKAKUI SYLLABLE M121 YO
+1E85A ; [.39F3.0020.0002] # MENDE KIKAKUI SYLLABLE M034 FI
+1E85B ; [.39F4.0020.0002] # MENDE KIKAKUI SYLLABLE M035 FA
+1E85C ; [.39F5.0020.0002] # MENDE KIKAKUI SYLLABLE M036 FU
+1E85D ; [.39F6.0020.0002] # MENDE KIKAKUI SYLLABLE M078 FEE
+1E85E ; [.39F7.0020.0002] # MENDE KIKAKUI SYLLABLE M075 FE
+1E85F ; [.39F8.0020.0002] # MENDE KIKAKUI SYLLABLE M133 FOO
+1E860 ; [.39F9.0020.0002] # MENDE KIKAKUI SYLLABLE M088 FO
+1E861 ; [.39FA.0020.0002] # MENDE KIKAKUI SYLLABLE M197 FUA
+1E862 ; [.39FB.0020.0002] # MENDE KIKAKUI SYLLABLE M101 FAN
+1E863 ; [.39FC.0020.0002] # MENDE KIKAKUI SYLLABLE M037 NIN
+1E864 ; [.39FD.0020.0002] # MENDE KIKAKUI SYLLABLE M038 NAN
+1E865 ; [.39FE.0020.0002] # MENDE KIKAKUI SYLLABLE M039 NUN
+1E866 ; [.39FF.0020.0002] # MENDE KIKAKUI SYLLABLE M117 NEN
+1E867 ; [.3A00.0020.0002] # MENDE KIKAKUI SYLLABLE M169 NON
+1E868 ; [.3A01.0020.0002] # MENDE KIKAKUI SYLLABLE M176 HI
+1E869 ; [.3A02.0020.0002] # MENDE KIKAKUI SYLLABLE M041 HA
+1E86A ; [.3A03.0020.0002] # MENDE KIKAKUI SYLLABLE M186 HU
+1E86B ; [.3A04.0020.0002] # MENDE KIKAKUI SYLLABLE M040 HEE
+1E86C ; [.3A05.0020.0002] # MENDE KIKAKUI SYLLABLE M096 HE
+1E86D ; [.3A06.0020.0002] # MENDE KIKAKUI SYLLABLE M042 HOO
+1E86E ; [.3A07.0020.0002] # MENDE KIKAKUI SYLLABLE M140 HO
+1E86F ; [.3A08.0020.0002] # MENDE KIKAKUI SYLLABLE M083 HEEI
+1E870 ; [.3A09.0020.0002] # MENDE KIKAKUI SYLLABLE M128 HOOU
+1E871 ; [.3A0A.0020.0002] # MENDE KIKAKUI SYLLABLE M053 HIN
+1E872 ; [.3A0B.0020.0002] # MENDE KIKAKUI SYLLABLE M130 HAN
+1E873 ; [.3A0C.0020.0002] # MENDE KIKAKUI SYLLABLE M087 HUN
+1E874 ; [.3A0D.0020.0002] # MENDE KIKAKUI SYLLABLE M052 HEN
+1E875 ; [.3A0E.0020.0002] # MENDE KIKAKUI SYLLABLE M193 HON
+1E876 ; [.3A0F.0020.0002] # MENDE KIKAKUI SYLLABLE M046 HUAN
+1E877 ; [.3A10.0020.0002] # MENDE KIKAKUI SYLLABLE M090 NGGI
+1E878 ; [.3A11.0020.0002] # MENDE KIKAKUI SYLLABLE M043 NGGA
+1E879 ; [.3A12.0020.0002] # MENDE KIKAKUI SYLLABLE M082 NGGU
+1E87A ; [.3A13.0020.0002] # MENDE KIKAKUI SYLLABLE M115 NGGEE
+1E87B ; [.3A14.0020.0002] # MENDE KIKAKUI SYLLABLE M146 NGGE
+1E87C ; [.3A15.0020.0002] # MENDE KIKAKUI SYLLABLE M156 NGGOO
+1E87D ; [.3A16.0020.0002] # MENDE KIKAKUI SYLLABLE M120 NGGO
+1E87E ; [.3A17.0020.0002] # MENDE KIKAKUI SYLLABLE M159 NGGAA
+1E87F ; [.3A18.0020.0002] # MENDE KIKAKUI SYLLABLE M127 NGGUA
+1E880 ; [.3A19.0020.0002] # MENDE KIKAKUI SYLLABLE M086 LONG NGGE
+1E881 ; [.3A1A.0020.0002] # MENDE KIKAKUI SYLLABLE M106 LONG NGGOO
+1E882 ; [.3A1B.0020.0002] # MENDE KIKAKUI SYLLABLE M183 LONG NGGO
+1E883 ; [.3A1C.0020.0002] # MENDE KIKAKUI SYLLABLE M155 GI
+1E884 ; [.3A1D.0020.0002] # MENDE KIKAKUI SYLLABLE M111 GA
+1E885 ; [.3A1E.0020.0002] # MENDE KIKAKUI SYLLABLE M168 GU
+1E886 ; [.3A1F.0020.0002] # MENDE KIKAKUI SYLLABLE M190 GEE
+1E887 ; [.3A20.0020.0002] # MENDE KIKAKUI SYLLABLE M166 GUEI
+1E888 ; [.3A21.0020.0002] # MENDE KIKAKUI SYLLABLE M167 GUAN
+1E889 ; [.3A22.0020.0002] # MENDE KIKAKUI SYLLABLE M184 NGEN
+1E88A ; [.3A23.0020.0002] # MENDE KIKAKUI SYLLABLE M057 NGON
+1E88B ; [.3A24.0020.0002] # MENDE KIKAKUI SYLLABLE M177 NGUAN
+1E88C ; [.3A25.0020.0002] # MENDE KIKAKUI SYLLABLE M068 PI
+1E88D ; [.3A26.0020.0002] # MENDE KIKAKUI SYLLABLE M099 PA
+1E88E ; [.3A27.0020.0002] # MENDE KIKAKUI SYLLABLE M050 PU
+1E88F ; [.3A28.0020.0002] # MENDE KIKAKUI SYLLABLE M081 PEE
+1E890 ; [.3A29.0020.0002] # MENDE KIKAKUI SYLLABLE M051 PE
+1E891 ; [.3A2A.0020.0002] # MENDE KIKAKUI SYLLABLE M102 POO
+1E892 ; [.3A2B.0020.0002] # MENDE KIKAKUI SYLLABLE M066 PO
+1E893 ; [.3A2C.0020.0002] # MENDE KIKAKUI SYLLABLE M145 MBI
+1E894 ; [.3A2D.0020.0002] # MENDE KIKAKUI SYLLABLE M062 MBA
+1E895 ; [.3A2E.0020.0002] # MENDE KIKAKUI SYLLABLE M122 MBU
+1E896 ; [.3A2F.0020.0002] # MENDE KIKAKUI SYLLABLE M047 MBEE
+1E897 ; [.3A30.0020.0002] # MENDE KIKAKUI SYLLABLE M188 MBEE
+1E898 ; [.3A31.0020.0002] # MENDE KIKAKUI SYLLABLE M072 MBE
+1E899 ; [.3A32.0020.0002] # MENDE KIKAKUI SYLLABLE M172 MBOO
+1E89A ; [.3A33.0020.0002] # MENDE KIKAKUI SYLLABLE M174 MBO
+1E89B ; [.3A34.0020.0002] # MENDE KIKAKUI SYLLABLE M187 MBUU
+1E89C ; [.3A35.0020.0002] # MENDE KIKAKUI SYLLABLE M161 LONG MBE
+1E89D ; [.3A36.0020.0002] # MENDE KIKAKUI SYLLABLE M105 LONG MBOO
+1E89E ; [.3A37.0020.0002] # MENDE KIKAKUI SYLLABLE M142 LONG MBO
+1E89F ; [.3A38.0020.0002] # MENDE KIKAKUI SYLLABLE M132 KPI
+1E8A0 ; [.3A39.0020.0002] # MENDE KIKAKUI SYLLABLE M092 KPA
+1E8A1 ; [.3A3A.0020.0002] # MENDE KIKAKUI SYLLABLE M074 KPU
+1E8A2 ; [.3A3B.0020.0002] # MENDE KIKAKUI SYLLABLE M044 KPEE
+1E8A3 ; [.3A3C.0020.0002] # MENDE KIKAKUI SYLLABLE M108 KPE
+1E8A4 ; [.3A3D.0020.0002] # MENDE KIKAKUI SYLLABLE M112 KPOO
+1E8A5 ; [.3A3E.0020.0002] # MENDE KIKAKUI SYLLABLE M158 KPO
+1E8A6 ; [.3A3F.0020.0002] # MENDE KIKAKUI SYLLABLE M124 GBI
+1E8A7 ; [.3A40.0020.0002] # MENDE KIKAKUI SYLLABLE M056 GBA
+1E8A8 ; [.3A41.0020.0002] # MENDE KIKAKUI SYLLABLE M148 GBU
+1E8A9 ; [.3A42.0020.0002] # MENDE KIKAKUI SYLLABLE M093 GBEE
+1E8AA ; [.3A43.0020.0002] # MENDE KIKAKUI SYLLABLE M107 GBE
+1E8AB ; [.3A44.0020.0002] # MENDE KIKAKUI SYLLABLE M071 GBOO
+1E8AC ; [.3A45.0020.0002] # MENDE KIKAKUI SYLLABLE M070 GBO
+1E8AD ; [.3A46.0020.0002] # MENDE KIKAKUI SYLLABLE M171 RA
+1E8AE ; [.3A47.0020.0002] # MENDE KIKAKUI SYLLABLE M123 NDI
+1E8AF ; [.3A48.0020.0002] # MENDE KIKAKUI SYLLABLE M129 NDA
+1E8B0 ; [.3A49.0020.0002] # MENDE KIKAKUI SYLLABLE M125 NDU
+1E8B1 ; [.3A4A.0020.0002] # MENDE KIKAKUI SYLLABLE M191 NDEE
+1E8B2 ; [.3A4B.0020.0002] # MENDE KIKAKUI SYLLABLE M119 NDE
+1E8B3 ; [.3A4C.0020.0002] # MENDE KIKAKUI SYLLABLE M067 NDOO
+1E8B4 ; [.3A4D.0020.0002] # MENDE KIKAKUI SYLLABLE M064 NDO
+1E8B5 ; [.3A4E.0020.0002] # MENDE KIKAKUI SYLLABLE M152 NJA
+1E8B6 ; [.3A4F.0020.0002] # MENDE KIKAKUI SYLLABLE M192 NJU
+1E8B7 ; [.3A50.0020.0002] # MENDE KIKAKUI SYLLABLE M149 NJEE
+1E8B8 ; [.3A51.0020.0002] # MENDE KIKAKUI SYLLABLE M134 NJOO
+1E8B9 ; [.3A52.0020.0002] # MENDE KIKAKUI SYLLABLE M182 VI
+1E8BA ; [.3A53.0020.0002] # MENDE KIKAKUI SYLLABLE M185 VA
+1E8BB ; [.3A54.0020.0002] # MENDE KIKAKUI SYLLABLE M151 VU
+1E8BC ; [.3A55.0020.0002] # MENDE KIKAKUI SYLLABLE M173 VEE
+1E8BD ; [.3A56.0020.0002] # MENDE KIKAKUI SYLLABLE M085 VE
+1E8BE ; [.3A57.0020.0002] # MENDE KIKAKUI SYLLABLE M144 VOO
+1E8BF ; [.3A58.0020.0002] # MENDE KIKAKUI SYLLABLE M077 VO
+1E8C0 ; [.3A59.0020.0002] # MENDE KIKAKUI SYLLABLE M164 NYIN
+1E8C1 ; [.3A5A.0020.0002] # MENDE KIKAKUI SYLLABLE M058 NYAN
+1E8C2 ; [.3A5B.0020.0002] # MENDE KIKAKUI SYLLABLE M170 NYUN
+1E8C3 ; [.3A5C.0020.0002] # MENDE KIKAKUI SYLLABLE M098 NYEN
+1E8C4 ; [.3A5D.0020.0002] # MENDE KIKAKUI SYLLABLE M060 NYON
+1100 ; [.3A5E.0020.0002] # HANGUL CHOSEONG KIYEOK
+3131 ; [.3A5E.0020.0004] # HANGUL LETTER KIYEOK
+3200 ; [*0310.0020.0004][.3A5E.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL KIYEOK
+3260 ; [.3A5E.0020.0006] # CIRCLED HANGUL KIYEOK
+FFA1 ; [.3A5E.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK
+320E ; [*0310.0020.0004][.3A5E.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL KIYEOK A
+326E ; [.3A5E.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL KIYEOK A
+1101 ; [.3A5F.0020.0002] # HANGUL CHOSEONG SSANGKIYEOK
+3132 ; [.3A5F.0020.0004] # HANGUL LETTER SSANGKIYEOK
+FFA2 ; [.3A5F.0020.0012] # HALFWIDTH HANGUL LETTER SSANGKIYEOK
+1102 ; [.3A60.0020.0002] # HANGUL CHOSEONG NIEUN
+3134 ; [.3A60.0020.0004] # HANGUL LETTER NIEUN
+3201 ; [*0310.0020.0004][.3A60.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL NIEUN
+3261 ; [.3A60.0020.0006] # CIRCLED HANGUL NIEUN
+FFA4 ; [.3A60.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN
+320F ; [*0310.0020.0004][.3A60.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL NIEUN A
+326F ; [.3A60.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL NIEUN A
+1103 ; [.3A61.0020.0002] # HANGUL CHOSEONG TIKEUT
+3137 ; [.3A61.0020.0004] # HANGUL LETTER TIKEUT
+3202 ; [*0310.0020.0004][.3A61.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL TIKEUT
+3262 ; [.3A61.0020.0006] # CIRCLED HANGUL TIKEUT
+FFA7 ; [.3A61.0020.0012] # HALFWIDTH HANGUL LETTER TIKEUT
+3210 ; [*0310.0020.0004][.3A61.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL TIKEUT A
+3270 ; [.3A61.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL TIKEUT A
+1104 ; [.3A62.0020.0002] # HANGUL CHOSEONG SSANGTIKEUT
+3138 ; [.3A62.0020.0004] # HANGUL LETTER SSANGTIKEUT
+FFA8 ; [.3A62.0020.0012] # HALFWIDTH HANGUL LETTER SSANGTIKEUT
+1105 ; [.3A63.0020.0002] # HANGUL CHOSEONG RIEUL
+3139 ; [.3A63.0020.0004] # HANGUL LETTER RIEUL
+3203 ; [*0310.0020.0004][.3A63.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL RIEUL
+3263 ; [.3A63.0020.0006] # CIRCLED HANGUL RIEUL
+FFA9 ; [.3A63.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL
+3211 ; [*0310.0020.0004][.3A63.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL RIEUL A
+3271 ; [.3A63.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL RIEUL A
+1106 ; [.3A64.0020.0002] # HANGUL CHOSEONG MIEUM
+3141 ; [.3A64.0020.0004] # HANGUL LETTER MIEUM
+3204 ; [*0310.0020.0004][.3A64.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL MIEUM
+3264 ; [.3A64.0020.0006] # CIRCLED HANGUL MIEUM
+FFB1 ; [.3A64.0020.0012] # HALFWIDTH HANGUL LETTER MIEUM
+3212 ; [*0310.0020.0004][.3A64.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL MIEUM A
+3272 ; [.3A64.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL MIEUM A
+1107 ; [.3A65.0020.0002] # HANGUL CHOSEONG PIEUP
+3142 ; [.3A65.0020.0004] # HANGUL LETTER PIEUP
+3205 ; [*0310.0020.0004][.3A65.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL PIEUP
+3265 ; [.3A65.0020.0006] # CIRCLED HANGUL PIEUP
+FFB2 ; [.3A65.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP
+3213 ; [*0310.0020.0004][.3A65.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL PIEUP A
+3273 ; [.3A65.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL PIEUP A
+1108 ; [.3A66.0020.0002] # HANGUL CHOSEONG SSANGPIEUP
+3143 ; [.3A66.0020.0004] # HANGUL LETTER SSANGPIEUP
+FFB3 ; [.3A66.0020.0012] # HALFWIDTH HANGUL LETTER SSANGPIEUP
+1109 ; [.3A67.0020.0002] # HANGUL CHOSEONG SIOS
+3145 ; [.3A67.0020.0004] # HANGUL LETTER SIOS
+3206 ; [*0310.0020.0004][.3A67.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL SIOS
+3266 ; [.3A67.0020.0006] # CIRCLED HANGUL SIOS
+FFB5 ; [.3A67.0020.0012] # HALFWIDTH HANGUL LETTER SIOS
+3214 ; [*0310.0020.0004][.3A67.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL SIOS A
+3274 ; [.3A67.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL SIOS A
+110A ; [.3A68.0020.0002] # HANGUL CHOSEONG SSANGSIOS
+3146 ; [.3A68.0020.0004] # HANGUL LETTER SSANGSIOS
+FFB6 ; [.3A68.0020.0012] # HALFWIDTH HANGUL LETTER SSANGSIOS
+110B ; [.3A69.0020.0002] # HANGUL CHOSEONG IEUNG
+3147 ; [.3A69.0020.0004] # HANGUL LETTER IEUNG
+3207 ; [*0310.0020.0004][.3A69.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL IEUNG
+3267 ; [.3A69.0020.0006] # CIRCLED HANGUL IEUNG
+FFB7 ; [.3A69.0020.0012] # HALFWIDTH HANGUL LETTER IEUNG
+3215 ; [*0310.0020.0004][.3A69.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL IEUNG A
+3275 ; [.3A69.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL IEUNG A
+321D ; [*0310.0020.0004][.3A69.0020.0004][.3AE4.0020.0004][.3A6A.0020.0004][.3AE0.0020.0004][.3B3D.0020.0004][*0311.0020.0004] # PARENTHESIZED KOREAN CHARACTER OJEON
+321E ; [*0310.0020.0004][.3A69.0020.0004][.3AE4.0020.0004][.3A70.0020.0004][.3AE9.0020.0004][*0311.0020.0004] # PARENTHESIZED KOREAN CHARACTER O HU
+327E ; [.3A69.0020.0006][.3AE9.0020.0006] # CIRCLED HANGUL IEUNG U
+110C ; [.3A6A.0020.0002] # HANGUL CHOSEONG CIEUC
+3148 ; [.3A6A.0020.0004] # HANGUL LETTER CIEUC
+3208 ; [*0310.0020.0004][.3A6A.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL CIEUC
+3268 ; [.3A6A.0020.0006] # CIRCLED HANGUL CIEUC
+FFB8 ; [.3A6A.0020.0012] # HALFWIDTH HANGUL LETTER CIEUC
+3216 ; [*0310.0020.0004][.3A6A.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL CIEUC A
+3276 ; [.3A6A.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL CIEUC A
+321C ; [*0310.0020.0004][.3A6A.0020.0004][.3AE9.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL CIEUC U
+327D ; [.3A6A.0020.0006][.3AE9.0020.0006][.3A69.0020.0006][.3AEF.0020.0006] # CIRCLED KOREAN CHARACTER JUEUI
+110D ; [.3A6B.0020.0002] # HANGUL CHOSEONG SSANGCIEUC
+3149 ; [.3A6B.0020.0004] # HANGUL LETTER SSANGCIEUC
+FFB9 ; [.3A6B.0020.0012] # HALFWIDTH HANGUL LETTER SSANGCIEUC
+110E ; [.3A6C.0020.0002] # HANGUL CHOSEONG CHIEUCH
+314A ; [.3A6C.0020.0004] # HANGUL LETTER CHIEUCH
+3209 ; [*0310.0020.0004][.3A6C.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL CHIEUCH
+3269 ; [.3A6C.0020.0006] # CIRCLED HANGUL CHIEUCH
+FFBA ; [.3A6C.0020.0012] # HALFWIDTH HANGUL LETTER CHIEUCH
+3217 ; [*0310.0020.0004][.3A6C.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL CHIEUCH A
+3277 ; [.3A6C.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL CHIEUCH A
+327C ; [.3A6C.0020.0006][.3ADC.0020.0006][.3B49.0020.0006][.3A5E.0020.0006][.3AE4.0020.0006] # CIRCLED KOREAN CHARACTER CHAMKO
+110F ; [.3A6D.0020.0002] # HANGUL CHOSEONG KHIEUKH
+314B ; [.3A6D.0020.0004] # HANGUL LETTER KHIEUKH
+320A ; [*0310.0020.0004][.3A6D.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL KHIEUKH
+326A ; [.3A6D.0020.0006] # CIRCLED HANGUL KHIEUKH
+FFBB ; [.3A6D.0020.0012] # HALFWIDTH HANGUL LETTER KHIEUKH
+3218 ; [*0310.0020.0004][.3A6D.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL KHIEUKH A
+3278 ; [.3A6D.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL KHIEUKH A
+1110 ; [.3A6E.0020.0002] # HANGUL CHOSEONG THIEUTH
+314C ; [.3A6E.0020.0004] # HANGUL LETTER THIEUTH
+320B ; [*0310.0020.0004][.3A6E.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL THIEUTH
+326B ; [.3A6E.0020.0006] # CIRCLED HANGUL THIEUTH
+FFBC ; [.3A6E.0020.0012] # HALFWIDTH HANGUL LETTER THIEUTH
+3219 ; [*0310.0020.0004][.3A6E.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL THIEUTH A
+3279 ; [.3A6E.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL THIEUTH A
+1111 ; [.3A6F.0020.0002] # HANGUL CHOSEONG PHIEUPH
+314D ; [.3A6F.0020.0004] # HANGUL LETTER PHIEUPH
+320C ; [*0310.0020.0004][.3A6F.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL PHIEUPH
+326C ; [.3A6F.0020.0006] # CIRCLED HANGUL PHIEUPH
+FFBD ; [.3A6F.0020.0012] # HALFWIDTH HANGUL LETTER PHIEUPH
+321A ; [*0310.0020.0004][.3A6F.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL PHIEUPH A
+327A ; [.3A6F.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL PHIEUPH A
+1112 ; [.3A70.0020.0002] # HANGUL CHOSEONG HIEUH
+314E ; [.3A70.0020.0004] # HANGUL LETTER HIEUH
+320D ; [*0310.0020.0004][.3A70.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL HIEUH
+326D ; [.3A70.0020.0006] # CIRCLED HANGUL HIEUH
+FFBE ; [.3A70.0020.0012] # HALFWIDTH HANGUL LETTER HIEUH
+321B ; [*0310.0020.0004][.3A70.0020.0004][.3ADC.0020.0004][*0311.0020.0004] # PARENTHESIZED HANGUL HIEUH A
+327B ; [.3A70.0020.0006][.3ADC.0020.0006] # CIRCLED HANGUL HIEUH A
+1113 ; [.3A71.0020.0002] # HANGUL CHOSEONG NIEUN-KIYEOK
+1114 ; [.3A72.0020.0002] # HANGUL CHOSEONG SSANGNIEUN
+3165 ; [.3A72.0020.0004] # HANGUL LETTER SSANGNIEUN
+1115 ; [.3A73.0020.0002] # HANGUL CHOSEONG NIEUN-TIKEUT
+3166 ; [.3A73.0020.0004] # HANGUL LETTER NIEUN-TIKEUT
+1116 ; [.3A74.0020.0002] # HANGUL CHOSEONG NIEUN-PIEUP
+1117 ; [.3A75.0020.0002] # HANGUL CHOSEONG TIKEUT-KIYEOK
+1118 ; [.3A76.0020.0002] # HANGUL CHOSEONG RIEUL-NIEUN
+1119 ; [.3A77.0020.0002] # HANGUL CHOSEONG SSANGRIEUL
+111A ; [.3A78.0020.0002] # HANGUL CHOSEONG RIEUL-HIEUH
+3140 ; [.3A78.0020.0004] # HANGUL LETTER RIEUL-HIEUH
+FFB0 ; [.3A78.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+111B ; [.3A79.0020.0002] # HANGUL CHOSEONG KAPYEOUNRIEUL
+111C ; [.3A7A.0020.0002] # HANGUL CHOSEONG MIEUM-PIEUP
+316E ; [.3A7A.0020.0004] # HANGUL LETTER MIEUM-PIEUP
+111D ; [.3A7B.0020.0002] # HANGUL CHOSEONG KAPYEOUNMIEUM
+3171 ; [.3A7B.0020.0004] # HANGUL LETTER KAPYEOUNMIEUM
+111E ; [.3A7C.0020.0002] # HANGUL CHOSEONG PIEUP-KIYEOK
+3172 ; [.3A7C.0020.0004] # HANGUL LETTER PIEUP-KIYEOK
+111F ; [.3A7D.0020.0002] # HANGUL CHOSEONG PIEUP-NIEUN
+1120 ; [.3A7E.0020.0002] # HANGUL CHOSEONG PIEUP-TIKEUT
+3173 ; [.3A7E.0020.0004] # HANGUL LETTER PIEUP-TIKEUT
+1121 ; [.3A7F.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS
+3144 ; [.3A7F.0020.0004] # HANGUL LETTER PIEUP-SIOS
+FFB4 ; [.3A7F.0020.0012] # HALFWIDTH HANGUL LETTER PIEUP-SIOS
+1122 ; [.3A80.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
+3174 ; [.3A80.0020.0004] # HANGUL LETTER PIEUP-SIOS-KIYEOK
+1123 ; [.3A81.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
+3175 ; [.3A81.0020.0004] # HANGUL LETTER PIEUP-SIOS-TIKEUT
+1124 ; [.3A82.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
+1125 ; [.3A83.0020.0002] # HANGUL CHOSEONG PIEUP-SSANGSIOS
+1126 ; [.3A84.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
+1127 ; [.3A85.0020.0002] # HANGUL CHOSEONG PIEUP-CIEUC
+3176 ; [.3A85.0020.0004] # HANGUL LETTER PIEUP-CIEUC
+1128 ; [.3A86.0020.0002] # HANGUL CHOSEONG PIEUP-CHIEUCH
+1129 ; [.3A87.0020.0002] # HANGUL CHOSEONG PIEUP-THIEUTH
+3177 ; [.3A87.0020.0004] # HANGUL LETTER PIEUP-THIEUTH
+112A ; [.3A88.0020.0002] # HANGUL CHOSEONG PIEUP-PHIEUPH
+112B ; [.3A89.0020.0002] # HANGUL CHOSEONG KAPYEOUNPIEUP
+3178 ; [.3A89.0020.0004] # HANGUL LETTER KAPYEOUNPIEUP
+112C ; [.3A8A.0020.0002] # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
+3179 ; [.3A8A.0020.0004] # HANGUL LETTER KAPYEOUNSSANGPIEUP
+112D ; [.3A8B.0020.0002] # HANGUL CHOSEONG SIOS-KIYEOK
+317A ; [.3A8B.0020.0004] # HANGUL LETTER SIOS-KIYEOK
+112E ; [.3A8C.0020.0002] # HANGUL CHOSEONG SIOS-NIEUN
+317B ; [.3A8C.0020.0004] # HANGUL LETTER SIOS-NIEUN
+112F ; [.3A8D.0020.0002] # HANGUL CHOSEONG SIOS-TIKEUT
+317C ; [.3A8D.0020.0004] # HANGUL LETTER SIOS-TIKEUT
+1130 ; [.3A8E.0020.0002] # HANGUL CHOSEONG SIOS-RIEUL
+1131 ; [.3A8F.0020.0002] # HANGUL CHOSEONG SIOS-MIEUM
+1132 ; [.3A90.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP
+317D ; [.3A90.0020.0004] # HANGUL LETTER SIOS-PIEUP
+1133 ; [.3A91.0020.0002] # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
+1134 ; [.3A92.0020.0002] # HANGUL CHOSEONG SIOS-SSANGSIOS
+1135 ; [.3A93.0020.0002] # HANGUL CHOSEONG SIOS-IEUNG
+1136 ; [.3A94.0020.0002] # HANGUL CHOSEONG SIOS-CIEUC
+317E ; [.3A94.0020.0004] # HANGUL LETTER SIOS-CIEUC
+1137 ; [.3A95.0020.0002] # HANGUL CHOSEONG SIOS-CHIEUCH
+1138 ; [.3A96.0020.0002] # HANGUL CHOSEONG SIOS-KHIEUKH
+1139 ; [.3A97.0020.0002] # HANGUL CHOSEONG SIOS-THIEUTH
+113A ; [.3A98.0020.0002] # HANGUL CHOSEONG SIOS-PHIEUPH
+113B ; [.3A99.0020.0002] # HANGUL CHOSEONG SIOS-HIEUH
+113C ; [.3A9A.0020.0002] # HANGUL CHOSEONG CHITUEUMSIOS
+113D ; [.3A9B.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGSIOS
+113E ; [.3A9C.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSIOS
+113F ; [.3A9D.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
+1140 ; [.3A9E.0020.0002] # HANGUL CHOSEONG PANSIOS
+317F ; [.3A9E.0020.0004] # HANGUL LETTER PANSIOS
+1141 ; [.3A9F.0020.0002] # HANGUL CHOSEONG IEUNG-KIYEOK
+1142 ; [.3AA0.0020.0002] # HANGUL CHOSEONG IEUNG-TIKEUT
+1143 ; [.3AA1.0020.0002] # HANGUL CHOSEONG IEUNG-MIEUM
+1144 ; [.3AA2.0020.0002] # HANGUL CHOSEONG IEUNG-PIEUP
+1145 ; [.3AA3.0020.0002] # HANGUL CHOSEONG IEUNG-SIOS
+1146 ; [.3AA4.0020.0002] # HANGUL CHOSEONG IEUNG-PANSIOS
+1147 ; [.3AA5.0020.0002] # HANGUL CHOSEONG SSANGIEUNG
+3180 ; [.3AA5.0020.0004] # HANGUL LETTER SSANGIEUNG
+1148 ; [.3AA6.0020.0002] # HANGUL CHOSEONG IEUNG-CIEUC
+1149 ; [.3AA7.0020.0002] # HANGUL CHOSEONG IEUNG-CHIEUCH
+114A ; [.3AA8.0020.0002] # HANGUL CHOSEONG IEUNG-THIEUTH
+114B ; [.3AA9.0020.0002] # HANGUL CHOSEONG IEUNG-PHIEUPH
+114C ; [.3AAA.0020.0002] # HANGUL CHOSEONG YESIEUNG
+3181 ; [.3AAA.0020.0004] # HANGUL LETTER YESIEUNG
+114D ; [.3AAB.0020.0002] # HANGUL CHOSEONG CIEUC-IEUNG
+114E ; [.3AAC.0020.0002] # HANGUL CHOSEONG CHITUEUMCIEUC
+114F ; [.3AAD.0020.0002] # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
+1150 ; [.3AAE.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCIEUC
+1151 ; [.3AAF.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
+1152 ; [.3AB0.0020.0002] # HANGUL CHOSEONG CHIEUCH-KHIEUKH
+1153 ; [.3AB1.0020.0002] # HANGUL CHOSEONG CHIEUCH-HIEUH
+1154 ; [.3AB2.0020.0002] # HANGUL CHOSEONG CHITUEUMCHIEUCH
+1155 ; [.3AB3.0020.0002] # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH
+1156 ; [.3AB4.0020.0002] # HANGUL CHOSEONG PHIEUPH-PIEUP
+1157 ; [.3AB5.0020.0002] # HANGUL CHOSEONG KAPYEOUNPHIEUPH
+3184 ; [.3AB5.0020.0004] # HANGUL LETTER KAPYEOUNPHIEUPH
+1158 ; [.3AB6.0020.0002] # HANGUL CHOSEONG SSANGHIEUH
+3185 ; [.3AB6.0020.0004] # HANGUL LETTER SSANGHIEUH
+1159 ; [.3AB7.0020.0002] # HANGUL CHOSEONG YEORINHIEUH
+3186 ; [.3AB7.0020.0004] # HANGUL LETTER YEORINHIEUH
+115A ; [.3AB8.0020.0002] # HANGUL CHOSEONG KIYEOK-TIKEUT
+115B ; [.3AB9.0020.0002] # HANGUL CHOSEONG NIEUN-SIOS
+115C ; [.3ABA.0020.0002] # HANGUL CHOSEONG NIEUN-CIEUC
+115D ; [.3ABB.0020.0002] # HANGUL CHOSEONG NIEUN-HIEUH
+115E ; [.3ABC.0020.0002] # HANGUL CHOSEONG TIKEUT-RIEUL
+A960 ; [.3ABD.0020.0002] # HANGUL CHOSEONG TIKEUT-MIEUM
+A961 ; [.3ABE.0020.0002] # HANGUL CHOSEONG TIKEUT-PIEUP
+A962 ; [.3ABF.0020.0002] # HANGUL CHOSEONG TIKEUT-SIOS
+A963 ; [.3AC0.0020.0002] # HANGUL CHOSEONG TIKEUT-CIEUC
+A964 ; [.3AC1.0020.0002] # HANGUL CHOSEONG RIEUL-KIYEOK
+A965 ; [.3AC2.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGKIYEOK
+A966 ; [.3AC3.0020.0002] # HANGUL CHOSEONG RIEUL-TIKEUT
+A967 ; [.3AC4.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGTIKEUT
+A968 ; [.3AC5.0020.0002] # HANGUL CHOSEONG RIEUL-MIEUM
+A969 ; [.3AC6.0020.0002] # HANGUL CHOSEONG RIEUL-PIEUP
+A96A ; [.3AC7.0020.0002] # HANGUL CHOSEONG RIEUL-SSANGPIEUP
+A96B ; [.3AC8.0020.0002] # HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
+A96C ; [.3AC9.0020.0002] # HANGUL CHOSEONG RIEUL-SIOS
+A96D ; [.3ACA.0020.0002] # HANGUL CHOSEONG RIEUL-CIEUC
+A96E ; [.3ACB.0020.0002] # HANGUL CHOSEONG RIEUL-KHIEUKH
+A96F ; [.3ACC.0020.0002] # HANGUL CHOSEONG MIEUM-KIYEOK
+A970 ; [.3ACD.0020.0002] # HANGUL CHOSEONG MIEUM-TIKEUT
+A971 ; [.3ACE.0020.0002] # HANGUL CHOSEONG MIEUM-SIOS
+A972 ; [.3ACF.0020.0002] # HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
+A973 ; [.3AD0.0020.0002] # HANGUL CHOSEONG PIEUP-KHIEUKH
+A974 ; [.3AD1.0020.0002] # HANGUL CHOSEONG PIEUP-HIEUH
+A975 ; [.3AD2.0020.0002] # HANGUL CHOSEONG SSANGSIOS-PIEUP
+A976 ; [.3AD3.0020.0002] # HANGUL CHOSEONG IEUNG-RIEUL
+A977 ; [.3AD4.0020.0002] # HANGUL CHOSEONG IEUNG-HIEUH
+A978 ; [.3AD5.0020.0002] # HANGUL CHOSEONG SSANGCIEUC-HIEUH
+A979 ; [.3AD6.0020.0002] # HANGUL CHOSEONG SSANGTHIEUTH
+A97A ; [.3AD7.0020.0002] # HANGUL CHOSEONG PHIEUPH-HIEUH
+A97B ; [.3AD8.0020.0002] # HANGUL CHOSEONG HIEUH-SIOS
+A97C ; [.3AD9.0020.0002] # HANGUL CHOSEONG SSANGYEORINHIEUH
+115F ; [.3ADA.0020.0002] # HANGUL CHOSEONG FILLER
+1160 ; [.3ADB.0020.0002] # HANGUL JUNGSEONG FILLER
+3164 ; [.3ADB.0020.0004] # HANGUL FILLER
+FFA0 ; [.3ADB.0020.0012] # HALFWIDTH HANGUL FILLER
+1161 ; [.3ADC.0020.0002] # HANGUL JUNGSEONG A
+314F ; [.3ADC.0020.0004] # HANGUL LETTER A
+FFC2 ; [.3ADC.0020.0012] # HALFWIDTH HANGUL LETTER A
+1162 ; [.3ADD.0020.0002] # HANGUL JUNGSEONG AE
+3150 ; [.3ADD.0020.0004] # HANGUL LETTER AE
+FFC3 ; [.3ADD.0020.0012] # HALFWIDTH HANGUL LETTER AE
+1163 ; [.3ADE.0020.0002] # HANGUL JUNGSEONG YA
+3151 ; [.3ADE.0020.0004] # HANGUL LETTER YA
+FFC4 ; [.3ADE.0020.0012] # HALFWIDTH HANGUL LETTER YA
+1164 ; [.3ADF.0020.0002] # HANGUL JUNGSEONG YAE
+3152 ; [.3ADF.0020.0004] # HANGUL LETTER YAE
+FFC5 ; [.3ADF.0020.0012] # HALFWIDTH HANGUL LETTER YAE
+1165 ; [.3AE0.0020.0002] # HANGUL JUNGSEONG EO
+3153 ; [.3AE0.0020.0004] # HANGUL LETTER EO
+FFC6 ; [.3AE0.0020.0012] # HALFWIDTH HANGUL LETTER EO
+1166 ; [.3AE1.0020.0002] # HANGUL JUNGSEONG E
+3154 ; [.3AE1.0020.0004] # HANGUL LETTER E
+FFC7 ; [.3AE1.0020.0012] # HALFWIDTH HANGUL LETTER E
+1167 ; [.3AE2.0020.0002] # HANGUL JUNGSEONG YEO
+3155 ; [.3AE2.0020.0004] # HANGUL LETTER YEO
+FFCA ; [.3AE2.0020.0012] # HALFWIDTH HANGUL LETTER YEO
+1168 ; [.3AE3.0020.0002] # HANGUL JUNGSEONG YE
+3156 ; [.3AE3.0020.0004] # HANGUL LETTER YE
+FFCB ; [.3AE3.0020.0012] # HALFWIDTH HANGUL LETTER YE
+1169 ; [.3AE4.0020.0002] # HANGUL JUNGSEONG O
+3157 ; [.3AE4.0020.0004] # HANGUL LETTER O
+FFCC ; [.3AE4.0020.0012] # HALFWIDTH HANGUL LETTER O
+116A ; [.3AE5.0020.0002] # HANGUL JUNGSEONG WA
+3158 ; [.3AE5.0020.0004] # HANGUL LETTER WA
+FFCD ; [.3AE5.0020.0012] # HALFWIDTH HANGUL LETTER WA
+116B ; [.3AE6.0020.0002] # HANGUL JUNGSEONG WAE
+3159 ; [.3AE6.0020.0004] # HANGUL LETTER WAE
+FFCE ; [.3AE6.0020.0012] # HALFWIDTH HANGUL LETTER WAE
+116C ; [.3AE7.0020.0002] # HANGUL JUNGSEONG OE
+315A ; [.3AE7.0020.0004] # HANGUL LETTER OE
+FFCF ; [.3AE7.0020.0012] # HALFWIDTH HANGUL LETTER OE
+116D ; [.3AE8.0020.0002] # HANGUL JUNGSEONG YO
+315B ; [.3AE8.0020.0004] # HANGUL LETTER YO
+FFD2 ; [.3AE8.0020.0012] # HALFWIDTH HANGUL LETTER YO
+116E ; [.3AE9.0020.0002] # HANGUL JUNGSEONG U
+315C ; [.3AE9.0020.0004] # HANGUL LETTER U
+FFD3 ; [.3AE9.0020.0012] # HALFWIDTH HANGUL LETTER U
+116F ; [.3AEA.0020.0002] # HANGUL JUNGSEONG WEO
+315D ; [.3AEA.0020.0004] # HANGUL LETTER WEO
+FFD4 ; [.3AEA.0020.0012] # HALFWIDTH HANGUL LETTER WEO
+1170 ; [.3AEB.0020.0002] # HANGUL JUNGSEONG WE
+315E ; [.3AEB.0020.0004] # HANGUL LETTER WE
+FFD5 ; [.3AEB.0020.0012] # HALFWIDTH HANGUL LETTER WE
+1171 ; [.3AEC.0020.0002] # HANGUL JUNGSEONG WI
+315F ; [.3AEC.0020.0004] # HANGUL LETTER WI
+FFD6 ; [.3AEC.0020.0012] # HALFWIDTH HANGUL LETTER WI
+1172 ; [.3AED.0020.0002] # HANGUL JUNGSEONG YU
+3160 ; [.3AED.0020.0004] # HANGUL LETTER YU
+FFD7 ; [.3AED.0020.0012] # HALFWIDTH HANGUL LETTER YU
+1173 ; [.3AEE.0020.0002] # HANGUL JUNGSEONG EU
+3161 ; [.3AEE.0020.0004] # HANGUL LETTER EU
+FFDA ; [.3AEE.0020.0012] # HALFWIDTH HANGUL LETTER EU
+1174 ; [.3AEF.0020.0002] # HANGUL JUNGSEONG YI
+3162 ; [.3AEF.0020.0004] # HANGUL LETTER YI
+FFDB ; [.3AEF.0020.0012] # HALFWIDTH HANGUL LETTER YI
+1175 ; [.3AF0.0020.0002] # HANGUL JUNGSEONG I
+3163 ; [.3AF0.0020.0004] # HANGUL LETTER I
+FFDC ; [.3AF0.0020.0012] # HALFWIDTH HANGUL LETTER I
+1176 ; [.3AF1.0020.0002] # HANGUL JUNGSEONG A-O
+1177 ; [.3AF2.0020.0002] # HANGUL JUNGSEONG A-U
+1178 ; [.3AF3.0020.0002] # HANGUL JUNGSEONG YA-O
+1179 ; [.3AF4.0020.0002] # HANGUL JUNGSEONG YA-YO
+117A ; [.3AF5.0020.0002] # HANGUL JUNGSEONG EO-O
+117B ; [.3AF6.0020.0002] # HANGUL JUNGSEONG EO-U
+117C ; [.3AF7.0020.0002] # HANGUL JUNGSEONG EO-EU
+117D ; [.3AF8.0020.0002] # HANGUL JUNGSEONG YEO-O
+117E ; [.3AF9.0020.0002] # HANGUL JUNGSEONG YEO-U
+117F ; [.3AFA.0020.0002] # HANGUL JUNGSEONG O-EO
+1180 ; [.3AFB.0020.0002] # HANGUL JUNGSEONG O-E
+1181 ; [.3AFC.0020.0002] # HANGUL JUNGSEONG O-YE
+1182 ; [.3AFD.0020.0002] # HANGUL JUNGSEONG O-O
+1183 ; [.3AFE.0020.0002] # HANGUL JUNGSEONG O-U
+1184 ; [.3AFF.0020.0002] # HANGUL JUNGSEONG YO-YA
+3187 ; [.3AFF.0020.0004] # HANGUL LETTER YO-YA
+1185 ; [.3B00.0020.0002] # HANGUL JUNGSEONG YO-YAE
+3188 ; [.3B00.0020.0004] # HANGUL LETTER YO-YAE
+1186 ; [.3B01.0020.0002] # HANGUL JUNGSEONG YO-YEO
+1187 ; [.3B02.0020.0002] # HANGUL JUNGSEONG YO-O
+1188 ; [.3B03.0020.0002] # HANGUL JUNGSEONG YO-I
+3189 ; [.3B03.0020.0004] # HANGUL LETTER YO-I
+1189 ; [.3B04.0020.0002] # HANGUL JUNGSEONG U-A
+118A ; [.3B05.0020.0002] # HANGUL JUNGSEONG U-AE
+118B ; [.3B06.0020.0002] # HANGUL JUNGSEONG U-EO-EU
+118C ; [.3B07.0020.0002] # HANGUL JUNGSEONG U-YE
+118D ; [.3B08.0020.0002] # HANGUL JUNGSEONG U-U
+118E ; [.3B09.0020.0002] # HANGUL JUNGSEONG YU-A
+118F ; [.3B0A.0020.0002] # HANGUL JUNGSEONG YU-EO
+1190 ; [.3B0B.0020.0002] # HANGUL JUNGSEONG YU-E
+1191 ; [.3B0C.0020.0002] # HANGUL JUNGSEONG YU-YEO
+318A ; [.3B0C.0020.0004] # HANGUL LETTER YU-YEO
+1192 ; [.3B0D.0020.0002] # HANGUL JUNGSEONG YU-YE
+318B ; [.3B0D.0020.0004] # HANGUL LETTER YU-YE
+1193 ; [.3B0E.0020.0002] # HANGUL JUNGSEONG YU-U
+1194 ; [.3B0F.0020.0002] # HANGUL JUNGSEONG YU-I
+318C ; [.3B0F.0020.0004] # HANGUL LETTER YU-I
+1195 ; [.3B10.0020.0002] # HANGUL JUNGSEONG EU-U
+1196 ; [.3B11.0020.0002] # HANGUL JUNGSEONG EU-EU
+1197 ; [.3B12.0020.0002] # HANGUL JUNGSEONG YI-U
+1198 ; [.3B13.0020.0002] # HANGUL JUNGSEONG I-A
+1199 ; [.3B14.0020.0002] # HANGUL JUNGSEONG I-YA
+119A ; [.3B15.0020.0002] # HANGUL JUNGSEONG I-O
+119B ; [.3B16.0020.0002] # HANGUL JUNGSEONG I-U
+119C ; [.3B17.0020.0002] # HANGUL JUNGSEONG I-EU
+119D ; [.3B18.0020.0002] # HANGUL JUNGSEONG I-ARAEA
+119E ; [.3B19.0020.0002] # HANGUL JUNGSEONG ARAEA
+318D ; [.3B19.0020.0004] # HANGUL LETTER ARAEA
+119F ; [.3B1A.0020.0002] # HANGUL JUNGSEONG ARAEA-EO
+11A0 ; [.3B1B.0020.0002] # HANGUL JUNGSEONG ARAEA-U
+11A1 ; [.3B1C.0020.0002] # HANGUL JUNGSEONG ARAEA-I
+318E ; [.3B1C.0020.0004] # HANGUL LETTER ARAEAE
+11A2 ; [.3B1D.0020.0002] # HANGUL JUNGSEONG SSANGARAEA
+11A3 ; [.3B1E.0020.0002] # HANGUL JUNGSEONG A-EU
+11A4 ; [.3B1F.0020.0002] # HANGUL JUNGSEONG YA-U
+11A5 ; [.3B20.0020.0002] # HANGUL JUNGSEONG YEO-YA
+11A6 ; [.3B21.0020.0002] # HANGUL JUNGSEONG O-YA
+11A7 ; [.3B22.0020.0002] # HANGUL JUNGSEONG O-YAE
+D7B0 ; [.3B23.0020.0002] # HANGUL JUNGSEONG O-YEO
+D7B1 ; [.3B24.0020.0002] # HANGUL JUNGSEONG O-O-I
+D7B2 ; [.3B25.0020.0002] # HANGUL JUNGSEONG YO-A
+D7B3 ; [.3B26.0020.0002] # HANGUL JUNGSEONG YO-AE
+D7B4 ; [.3B27.0020.0002] # HANGUL JUNGSEONG YO-EO
+D7B5 ; [.3B28.0020.0002] # HANGUL JUNGSEONG U-YEO
+D7B6 ; [.3B29.0020.0002] # HANGUL JUNGSEONG U-I-I
+D7B7 ; [.3B2A.0020.0002] # HANGUL JUNGSEONG YU-AE
+D7B8 ; [.3B2B.0020.0002] # HANGUL JUNGSEONG YU-O
+D7B9 ; [.3B2C.0020.0002] # HANGUL JUNGSEONG EU-A
+D7BA ; [.3B2D.0020.0002] # HANGUL JUNGSEONG EU-EO
+D7BB ; [.3B2E.0020.0002] # HANGUL JUNGSEONG EU-E
+D7BC ; [.3B2F.0020.0002] # HANGUL JUNGSEONG EU-O
+D7BD ; [.3B30.0020.0002] # HANGUL JUNGSEONG I-YA-O
+D7BE ; [.3B31.0020.0002] # HANGUL JUNGSEONG I-YAE
+D7BF ; [.3B32.0020.0002] # HANGUL JUNGSEONG I-YEO
+D7C0 ; [.3B33.0020.0002] # HANGUL JUNGSEONG I-YE
+D7C1 ; [.3B34.0020.0002] # HANGUL JUNGSEONG I-O-I
+D7C2 ; [.3B35.0020.0002] # HANGUL JUNGSEONG I-YO
+D7C3 ; [.3B36.0020.0002] # HANGUL JUNGSEONG I-YU
+D7C4 ; [.3B37.0020.0002] # HANGUL JUNGSEONG I-I
+D7C5 ; [.3B38.0020.0002] # HANGUL JUNGSEONG ARAEA-A
+D7C6 ; [.3B39.0020.0002] # HANGUL JUNGSEONG ARAEA-E
+11A8 ; [.3B3A.0020.0002] # HANGUL JONGSEONG KIYEOK
+11A9 ; [.3B3B.0020.0002] # HANGUL JONGSEONG SSANGKIYEOK
+11AA ; [.3B3C.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS
+3133 ; [.3B3C.0020.0004] # HANGUL LETTER KIYEOK-SIOS
+FFA3 ; [.3B3C.0020.0012] # HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+11AB ; [.3B3D.0020.0002] # HANGUL JONGSEONG NIEUN
+11AC ; [.3B3E.0020.0002] # HANGUL JONGSEONG NIEUN-CIEUC
+3135 ; [.3B3E.0020.0004] # HANGUL LETTER NIEUN-CIEUC
+FFA5 ; [.3B3E.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+11AD ; [.3B3F.0020.0002] # HANGUL JONGSEONG NIEUN-HIEUH
+3136 ; [.3B3F.0020.0004] # HANGUL LETTER NIEUN-HIEUH
+FFA6 ; [.3B3F.0020.0012] # HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+11AE ; [.3B40.0020.0002] # HANGUL JONGSEONG TIKEUT
+11AF ; [.3B41.0020.0002] # HANGUL JONGSEONG RIEUL
+11B0 ; [.3B42.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK
+313A ; [.3B42.0020.0004] # HANGUL LETTER RIEUL-KIYEOK
+FFAA ; [.3B42.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+11B1 ; [.3B43.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM
+313B ; [.3B43.0020.0004] # HANGUL LETTER RIEUL-MIEUM
+FFAB ; [.3B43.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+11B2 ; [.3B44.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP
+313C ; [.3B44.0020.0004] # HANGUL LETTER RIEUL-PIEUP
+FFAC ; [.3B44.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+11B3 ; [.3B45.0020.0002] # HANGUL JONGSEONG RIEUL-SIOS
+313D ; [.3B45.0020.0004] # HANGUL LETTER RIEUL-SIOS
+FFAD ; [.3B45.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-SIOS
+11B4 ; [.3B46.0020.0002] # HANGUL JONGSEONG RIEUL-THIEUTH
+313E ; [.3B46.0020.0004] # HANGUL LETTER RIEUL-THIEUTH
+FFAE ; [.3B46.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+11B5 ; [.3B47.0020.0002] # HANGUL JONGSEONG RIEUL-PHIEUPH
+313F ; [.3B47.0020.0004] # HANGUL LETTER RIEUL-PHIEUPH
+FFAF ; [.3B47.0020.0012] # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+11B6 ; [.3B48.0020.0002] # HANGUL JONGSEONG RIEUL-HIEUH
+11B7 ; [.3B49.0020.0002] # HANGUL JONGSEONG MIEUM
+11B8 ; [.3B4A.0020.0002] # HANGUL JONGSEONG PIEUP
+11B9 ; [.3B4B.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS
+11BA ; [.3B4C.0020.0002] # HANGUL JONGSEONG SIOS
+11BB ; [.3B4D.0020.0002] # HANGUL JONGSEONG SSANGSIOS
+11BC ; [.3B4E.0020.0002] # HANGUL JONGSEONG IEUNG
+11BD ; [.3B4F.0020.0002] # HANGUL JONGSEONG CIEUC
+11BE ; [.3B50.0020.0002] # HANGUL JONGSEONG CHIEUCH
+11BF ; [.3B51.0020.0002] # HANGUL JONGSEONG KHIEUKH
+11C0 ; [.3B52.0020.0002] # HANGUL JONGSEONG THIEUTH
+11C1 ; [.3B53.0020.0002] # HANGUL JONGSEONG PHIEUPH
+11C2 ; [.3B54.0020.0002] # HANGUL JONGSEONG HIEUH
+11C3 ; [.3B55.0020.0002] # HANGUL JONGSEONG KIYEOK-RIEUL
+11C4 ; [.3B56.0020.0002] # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
+11C5 ; [.3B57.0020.0002] # HANGUL JONGSEONG NIEUN-KIYEOK
+11C6 ; [.3B58.0020.0002] # HANGUL JONGSEONG NIEUN-TIKEUT
+11C7 ; [.3B59.0020.0002] # HANGUL JONGSEONG NIEUN-SIOS
+3167 ; [.3B59.0020.0004] # HANGUL LETTER NIEUN-SIOS
+11C8 ; [.3B5A.0020.0002] # HANGUL JONGSEONG NIEUN-PANSIOS
+3168 ; [.3B5A.0020.0004] # HANGUL LETTER NIEUN-PANSIOS
+11C9 ; [.3B5B.0020.0002] # HANGUL JONGSEONG NIEUN-THIEUTH
+11CA ; [.3B5C.0020.0002] # HANGUL JONGSEONG TIKEUT-KIYEOK
+11CB ; [.3B5D.0020.0002] # HANGUL JONGSEONG TIKEUT-RIEUL
+11CC ; [.3B5E.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
+3169 ; [.3B5E.0020.0004] # HANGUL LETTER RIEUL-KIYEOK-SIOS
+11CD ; [.3B5F.0020.0002] # HANGUL JONGSEONG RIEUL-NIEUN
+11CE ; [.3B60.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT
+316A ; [.3B60.0020.0004] # HANGUL LETTER RIEUL-TIKEUT
+11CF ; [.3B61.0020.0002] # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
+11D0 ; [.3B62.0020.0002] # HANGUL JONGSEONG SSANGRIEUL
+11D1 ; [.3B63.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
+11D2 ; [.3B64.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
+11D3 ; [.3B65.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
+316B ; [.3B65.0020.0004] # HANGUL LETTER RIEUL-PIEUP-SIOS
+11D4 ; [.3B66.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
+11D5 ; [.3B67.0020.0002] # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
+11D6 ; [.3B68.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGSIOS
+11D7 ; [.3B69.0020.0002] # HANGUL JONGSEONG RIEUL-PANSIOS
+316C ; [.3B69.0020.0004] # HANGUL LETTER RIEUL-PANSIOS
+11D8 ; [.3B6A.0020.0002] # HANGUL JONGSEONG RIEUL-KHIEUKH
+11D9 ; [.3B6B.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH
+316D ; [.3B6B.0020.0004] # HANGUL LETTER RIEUL-YEORINHIEUH
+11DA ; [.3B6C.0020.0002] # HANGUL JONGSEONG MIEUM-KIYEOK
+11DB ; [.3B6D.0020.0002] # HANGUL JONGSEONG MIEUM-RIEUL
+11DC ; [.3B6E.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP
+11DD ; [.3B6F.0020.0002] # HANGUL JONGSEONG MIEUM-SIOS
+316F ; [.3B6F.0020.0004] # HANGUL LETTER MIEUM-SIOS
+11DE ; [.3B70.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGSIOS
+11DF ; [.3B71.0020.0002] # HANGUL JONGSEONG MIEUM-PANSIOS
+3170 ; [.3B71.0020.0004] # HANGUL LETTER MIEUM-PANSIOS
+11E0 ; [.3B72.0020.0002] # HANGUL JONGSEONG MIEUM-CHIEUCH
+11E1 ; [.3B73.0020.0002] # HANGUL JONGSEONG MIEUM-HIEUH
+11E2 ; [.3B74.0020.0002] # HANGUL JONGSEONG KAPYEOUNMIEUM
+11E3 ; [.3B75.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL
+11E4 ; [.3B76.0020.0002] # HANGUL JONGSEONG PIEUP-PHIEUPH
+11E5 ; [.3B77.0020.0002] # HANGUL JONGSEONG PIEUP-HIEUH
+11E6 ; [.3B78.0020.0002] # HANGUL JONGSEONG KAPYEOUNPIEUP
+11E7 ; [.3B79.0020.0002] # HANGUL JONGSEONG SIOS-KIYEOK
+11E8 ; [.3B7A.0020.0002] # HANGUL JONGSEONG SIOS-TIKEUT
+11E9 ; [.3B7B.0020.0002] # HANGUL JONGSEONG SIOS-RIEUL
+11EA ; [.3B7C.0020.0002] # HANGUL JONGSEONG SIOS-PIEUP
+11EB ; [.3B7D.0020.0002] # HANGUL JONGSEONG PANSIOS
+11EC ; [.3B7E.0020.0002] # HANGUL JONGSEONG IEUNG-KIYEOK
+11ED ; [.3B7F.0020.0002] # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
+11EE ; [.3B80.0020.0002] # HANGUL JONGSEONG SSANGIEUNG
+11EF ; [.3B81.0020.0002] # HANGUL JONGSEONG IEUNG-KHIEUKH
+11F0 ; [.3B82.0020.0002] # HANGUL JONGSEONG YESIEUNG
+11F1 ; [.3B83.0020.0002] # HANGUL JONGSEONG YESIEUNG-SIOS
+3182 ; [.3B83.0020.0004] # HANGUL LETTER YESIEUNG-SIOS
+11F2 ; [.3B84.0020.0002] # HANGUL JONGSEONG YESIEUNG-PANSIOS
+3183 ; [.3B84.0020.0004] # HANGUL LETTER YESIEUNG-PANSIOS
+11F3 ; [.3B85.0020.0002] # HANGUL JONGSEONG PHIEUPH-PIEUP
+11F4 ; [.3B86.0020.0002] # HANGUL JONGSEONG KAPYEOUNPHIEUPH
+11F5 ; [.3B87.0020.0002] # HANGUL JONGSEONG HIEUH-NIEUN
+11F6 ; [.3B88.0020.0002] # HANGUL JONGSEONG HIEUH-RIEUL
+11F7 ; [.3B89.0020.0002] # HANGUL JONGSEONG HIEUH-MIEUM
+11F8 ; [.3B8A.0020.0002] # HANGUL JONGSEONG HIEUH-PIEUP
+11F9 ; [.3B8B.0020.0002] # HANGUL JONGSEONG YEORINHIEUH
+11FA ; [.3B8C.0020.0002] # HANGUL JONGSEONG KIYEOK-NIEUN
+11FB ; [.3B8D.0020.0002] # HANGUL JONGSEONG KIYEOK-PIEUP
+11FC ; [.3B8E.0020.0002] # HANGUL JONGSEONG KIYEOK-CHIEUCH
+11FD ; [.3B8F.0020.0002] # HANGUL JONGSEONG KIYEOK-KHIEUKH
+11FE ; [.3B90.0020.0002] # HANGUL JONGSEONG KIYEOK-HIEUH
+11FF ; [.3B91.0020.0002] # HANGUL JONGSEONG SSANGNIEUN
+D7CB ; [.3B92.0020.0002] # HANGUL JONGSEONG NIEUN-RIEUL
+D7CC ; [.3B93.0020.0002] # HANGUL JONGSEONG NIEUN-CHIEUCH
+D7CD ; [.3B94.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT
+D7CE ; [.3B95.0020.0002] # HANGUL JONGSEONG SSANGTIKEUT-PIEUP
+D7CF ; [.3B96.0020.0002] # HANGUL JONGSEONG TIKEUT-PIEUP
+D7D0 ; [.3B97.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS
+D7D1 ; [.3B98.0020.0002] # HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
+D7D2 ; [.3B99.0020.0002] # HANGUL JONGSEONG TIKEUT-CIEUC
+D7D3 ; [.3B9A.0020.0002] # HANGUL JONGSEONG TIKEUT-CHIEUCH
+D7D4 ; [.3B9B.0020.0002] # HANGUL JONGSEONG TIKEUT-THIEUTH
+D7D5 ; [.3B9C.0020.0002] # HANGUL JONGSEONG RIEUL-SSANGKIYEOK
+D7D6 ; [.3B9D.0020.0002] # HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
+D7D7 ; [.3B9E.0020.0002] # HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
+D7D8 ; [.3B9F.0020.0002] # HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
+D7D9 ; [.3BA0.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
+D7DA ; [.3BA1.0020.0002] # HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
+D7DB ; [.3BA2.0020.0002] # HANGUL JONGSEONG RIEUL-YESIEUNG
+D7DC ; [.3BA3.0020.0002] # HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
+D7DD ; [.3BA4.0020.0002] # HANGUL JONGSEONG KAPYEOUNRIEUL
+D7DE ; [.3BA5.0020.0002] # HANGUL JONGSEONG MIEUM-NIEUN
+D7DF ; [.3BA6.0020.0002] # HANGUL JONGSEONG MIEUM-SSANGNIEUN
+D7E0 ; [.3BA7.0020.0002] # HANGUL JONGSEONG SSANGMIEUM
+D7E1 ; [.3BA8.0020.0002] # HANGUL JONGSEONG MIEUM-PIEUP-SIOS
+D7E2 ; [.3BA9.0020.0002] # HANGUL JONGSEONG MIEUM-CIEUC
+D7E3 ; [.3BAA.0020.0002] # HANGUL JONGSEONG PIEUP-TIKEUT
+D7E4 ; [.3BAB.0020.0002] # HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
+D7E5 ; [.3BAC.0020.0002] # HANGUL JONGSEONG PIEUP-MIEUM
+D7E6 ; [.3BAD.0020.0002] # HANGUL JONGSEONG SSANGPIEUP
+D7E7 ; [.3BAE.0020.0002] # HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
+D7E8 ; [.3BAF.0020.0002] # HANGUL JONGSEONG PIEUP-CIEUC
+D7E9 ; [.3BB0.0020.0002] # HANGUL JONGSEONG PIEUP-CHIEUCH
+D7EA ; [.3BB1.0020.0002] # HANGUL JONGSEONG SIOS-MIEUM
+D7EB ; [.3BB2.0020.0002] # HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
+D7EC ; [.3BB3.0020.0002] # HANGUL JONGSEONG SSANGSIOS-KIYEOK
+D7ED ; [.3BB4.0020.0002] # HANGUL JONGSEONG SSANGSIOS-TIKEUT
+D7EE ; [.3BB5.0020.0002] # HANGUL JONGSEONG SIOS-PANSIOS
+D7EF ; [.3BB6.0020.0002] # HANGUL JONGSEONG SIOS-CIEUC
+D7F0 ; [.3BB7.0020.0002] # HANGUL JONGSEONG SIOS-CHIEUCH
+D7F1 ; [.3BB8.0020.0002] # HANGUL JONGSEONG SIOS-THIEUTH
+D7F2 ; [.3BB9.0020.0002] # HANGUL JONGSEONG SIOS-HIEUH
+D7F3 ; [.3BBA.0020.0002] # HANGUL JONGSEONG PANSIOS-PIEUP
+D7F4 ; [.3BBB.0020.0002] # HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
+D7F5 ; [.3BBC.0020.0002] # HANGUL JONGSEONG YESIEUNG-MIEUM
+D7F6 ; [.3BBD.0020.0002] # HANGUL JONGSEONG YESIEUNG-HIEUH
+D7F7 ; [.3BBE.0020.0002] # HANGUL JONGSEONG CIEUC-PIEUP
+D7F8 ; [.3BBF.0020.0002] # HANGUL JONGSEONG CIEUC-SSANGPIEUP
+D7F9 ; [.3BC0.0020.0002] # HANGUL JONGSEONG SSANGCIEUC
+D7FA ; [.3BC1.0020.0002] # HANGUL JONGSEONG PHIEUPH-SIOS
+D7FB ; [.3BC2.0020.0002] # HANGUL JONGSEONG PHIEUPH-THIEUTH
+3041 ; [.3BC3.0020.000D] # HIRAGANA LETTER SMALL A
+3042 ; [.3BC3.0020.000E] # HIRAGANA LETTER A
+30A1 ; [.3BC3.0020.000F] # KATAKANA LETTER SMALL A
+FF67 ; [.3BC3.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL A
+30A2 ; [.3BC3.0020.0011] # KATAKANA LETTER A
+FF71 ; [.3BC3.0020.0012] # HALFWIDTH KATAKANA LETTER A
+32D0 ; [.3BC3.0020.0013] # CIRCLED KATAKANA A
+3303 ; [.3BC3.0020.001C][.1B89.0020.001C][.3BED.0020.001C] # SQUARE AARU
+3300 ; [.3BC3.0020.001C][.3BDD.0020.001C][.0000.0038.001C][.1B89.0020.001C][.3BD7.0020.001C] # SQUARE APAATO
+3301 ; [.3BC3.0020.001C][.3BED.0020.001C][.3BDF.0020.001C][.3BC3.0020.001C] # SQUARE ARUHUA
+3302 ; [.3BC3.0020.001C][.3BF4.0020.001C][.3BE0.0020.001C][.0000.0038.001C][.3BC3.0020.001C] # SQUARE ANPEA
+3043 ; [.3BC4.0020.000D] # HIRAGANA LETTER SMALL I
+3044 ; [.3BC4.0020.000E] # HIRAGANA LETTER I
+30A3 ; [.3BC4.0020.000F] # KATAKANA LETTER SMALL I
+FF68 ; [.3BC4.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL I
+30A4 ; [.3BC4.0020.0011] # KATAKANA LETTER I
+FF72 ; [.3BC4.0020.0012] # HALFWIDTH KATAKANA LETTER I
+32D1 ; [.3BC4.0020.0013] # CIRCLED KATAKANA I
+3304 ; [.3BC4.0020.001C][.3BD9.0020.001C][.3BF4.0020.001C][.3BCB.0020.001C][.0000.0037.001C] # SQUARE ININGU
+3305 ; [.3BC4.0020.001C][.3BF4.0020.001C][.3BD4.0020.001C] # SQUARE INTI
+3045 ; [.3BC5.0020.000D] # HIRAGANA LETTER SMALL U
+3046 ; [.3BC5.0020.000E] # HIRAGANA LETTER U
+30A5 ; [.3BC5.0020.000F] # KATAKANA LETTER SMALL U
+FF69 ; [.3BC5.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL U
+30A6 ; [.3BC5.0020.0011] # KATAKANA LETTER U
+FF73 ; [.3BC5.0020.0012] # HALFWIDTH KATAKANA LETTER U
+32D2 ; [.3BC5.0020.0013] # CIRCLED KATAKANA U
+3094 ; [.3BC5.0020.000E][.0000.0037.0002] # HIRAGANA LETTER VU
+30F4 ; [.3BC5.0020.0011][.0000.0037.0002] # KATAKANA LETTER VU
+3306 ; [.3BC5.0020.001C][.3BC8.0020.001C][.3BF4.0020.001C] # SQUARE UON
+1B000 ; [.3BC6.0020.0011] # KATAKANA LETTER ARCHAIC E
+3047 ; [.3BC7.0020.000D] # HIRAGANA LETTER SMALL E
+3048 ; [.3BC7.0020.000E] # HIRAGANA LETTER E
+30A7 ; [.3BC7.0020.000F] # KATAKANA LETTER SMALL E
+FF6A ; [.3BC7.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL E
+30A8 ; [.3BC7.0020.0011] # KATAKANA LETTER E
+FF74 ; [.3BC7.0020.0012] # HALFWIDTH KATAKANA LETTER E
+32D3 ; [.3BC7.0020.0013] # CIRCLED KATAKANA E
+3308 ; [.3BC7.0020.001C][.1B89.0020.001C][.3BC9.0020.001C][.1B89.0020.001C] # SQUARE EEKAA
+3307 ; [.3BC7.0020.001C][.3BD0.0020.001C][.3BCB.0020.001C][.1B89.0020.001C][.3BD7.0020.001C][.0000.0037.001C] # SQUARE ESUKUUDO
+3049 ; [.3BC8.0020.000D] # HIRAGANA LETTER SMALL O
+304A ; [.3BC8.0020.000E] # HIRAGANA LETTER O
+30A9 ; [.3BC8.0020.000F] # KATAKANA LETTER SMALL O
+FF6B ; [.3BC8.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL O
+30AA ; [.3BC8.0020.0011] # KATAKANA LETTER O
+FF75 ; [.3BC8.0020.0012] # HALFWIDTH KATAKANA LETTER O
+32D4 ; [.3BC8.0020.0013] # CIRCLED KATAKANA O
+330A ; [.3BC8.0020.001C][.1B89.0020.001C][.3BE4.0020.001C] # SQUARE OOMU
+3309 ; [.3BC8.0020.001C][.3BF4.0020.001C][.3BD0.0020.001C] # SQUARE ONSU
+3095 ; [.3BC9.0020.000D] # HIRAGANA LETTER SMALL KA
+304B ; [.3BC9.0020.000E] # HIRAGANA LETTER KA
+30F5 ; [.3BC9.0020.000F] # KATAKANA LETTER SMALL KA
+30AB ; [.3BC9.0020.0011] # KATAKANA LETTER KA
+FF76 ; [.3BC9.0020.0012] # HALFWIDTH KATAKANA LETTER KA
+32D5 ; [.3BC9.0020.0013] # CIRCLED KATAKANA KA
+304C ; [.3BC9.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GA
+30AC ; [.3BC9.0020.0011][.0000.0037.0002] # KATAKANA LETTER GA
+330B ; [.3BC9.0020.001C][.3BC4.0020.001C][.3BEC.0020.001C] # SQUARE KAIRI
+330C ; [.3BC9.0020.001C][.3BEB.0020.001C][.3BD5.0020.001C][.3BD7.0020.001C] # SQUARE KARATTO
+330D ; [.3BC9.0020.001C][.3BEF.0020.001C][.3BEC.0020.001C][.1B89.0020.001C] # SQUARE KARORII
+330E ; [.3BC9.0020.001C][.0000.0037.001C][.3BEF.0020.001C][.3BF4.0020.001C] # SQUARE GARON
+330F ; [.3BC9.0020.001C][.0000.0037.001C][.3BF4.0020.001C][.3BE2.0020.001C] # SQUARE GANMA
+304D ; [.3BCA.0020.000E] # HIRAGANA LETTER KI
+30AD ; [.3BCA.0020.0011] # KATAKANA LETTER KI
+FF77 ; [.3BCA.0020.0012] # HALFWIDTH KATAKANA LETTER KI
+32D6 ; [.3BCA.0020.0013] # CIRCLED KATAKANA KI
+304E ; [.3BCA.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GI
+30AE ; [.3BCA.0020.0011][.0000.0037.0002] # KATAKANA LETTER GI
+3310 ; [.3BCA.0020.001C][.0000.0037.001C][.3BC9.0020.001C][.0000.0037.001C] # SQUARE GIGA
+3311 ; [.3BCA.0020.001C][.0000.0037.001C][.3BD9.0020.001C][.1B89.0020.001C] # SQUARE GINII
+3312 ; [.3BCA.0020.001C][.3BE8.0020.001C][.3BEC.0020.001C][.1B89.0020.001C] # SQUARE KYURII
+3313 ; [.3BCA.0020.001C][.0000.0037.001C][.3BED.0020.001C][.3BD3.0020.001C][.0000.0037.001C][.1B89.0020.001C] # SQUARE GIRUDAA
+3314 ; [.3BCA.0020.001C][.3BEF.0020.001C] # SQUARE KIRO
+3315 ; [.3BCA.0020.001C][.3BEF.0020.001C][.3BCB.0020.001C][.0000.0037.001C][.3BEB.0020.001C][.3BE4.0020.001C] # SQUARE KIROGURAMU
+3316 ; [.3BCA.0020.001C][.3BEF.0020.001C][.3BE5.0020.001C][.1B89.0020.001C][.3BD7.0020.001C][.3BED.0020.001C] # SQUARE KIROMEETORU
+3317 ; [.3BCA.0020.001C][.3BEF.0020.001C][.3BF0.0020.001C][.3BD5.0020.001C][.3BD7.0020.001C] # SQUARE KIROWATTO
+304F ; [.3BCB.0020.000E] # HIRAGANA LETTER KU
+31F0 ; [.3BCB.0020.000F] # KATAKANA LETTER SMALL KU
+30AF ; [.3BCB.0020.0011] # KATAKANA LETTER KU
+FF78 ; [.3BCB.0020.0012] # HALFWIDTH KATAKANA LETTER KU
+32D7 ; [.3BCB.0020.0013] # CIRCLED KATAKANA KU
+3050 ; [.3BCB.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GU
+30B0 ; [.3BCB.0020.0011][.0000.0037.0002] # KATAKANA LETTER GU
+3318 ; [.3BCB.0020.001C][.0000.0037.001C][.3BEB.0020.001C][.3BE4.0020.001C] # SQUARE GURAMU
+3319 ; [.3BCB.0020.001C][.0000.0037.001C][.3BEB.0020.001C][.3BE4.0020.001C][.3BD7.0020.001C][.3BF4.0020.001C] # SQUARE GURAMUTON
+331A ; [.3BCB.0020.001C][.3BED.0020.001C][.3BD1.0020.001C][.0000.0037.001C][.3BC4.0020.001C][.3BEF.0020.001C] # SQUARE KURUZEIRO
+331B ; [.3BCB.0020.001C][.3BEF.0020.001C][.1B89.0020.001C][.3BDB.0020.001C] # SQUARE KUROONE
+3096 ; [.3BCC.0020.000D] # HIRAGANA LETTER SMALL KE
+3051 ; [.3BCC.0020.000E] # HIRAGANA LETTER KE
+30F6 ; [.3BCC.0020.000F] # KATAKANA LETTER SMALL KE
+30B1 ; [.3BCC.0020.0011] # KATAKANA LETTER KE
+FF79 ; [.3BCC.0020.0012] # HALFWIDTH KATAKANA LETTER KE
+32D8 ; [.3BCC.0020.0013] # CIRCLED KATAKANA KE
+3052 ; [.3BCC.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GE
+30B2 ; [.3BCC.0020.0011][.0000.0037.0002] # KATAKANA LETTER GE
+331C ; [.3BCC.0020.001C][.1B89.0020.001C][.3BD0.0020.001C] # SQUARE KEESU
+3053 ; [.3BCD.0020.000E] # HIRAGANA LETTER KO
+30B3 ; [.3BCD.0020.0011] # KATAKANA LETTER KO
+FF7A ; [.3BCD.0020.0012] # HALFWIDTH KATAKANA LETTER KO
+32D9 ; [.3BCD.0020.0013] # CIRCLED KATAKANA KO
+3054 ; [.3BCD.0020.000E][.0000.0037.0002] # HIRAGANA LETTER GO
+30B4 ; [.3BCD.0020.0011][.0000.0037.0002] # KATAKANA LETTER GO
+331E ; [.3BCD.0020.001C][.1B89.0020.001C][.3BE1.0020.001C][.0000.0038.001C] # SQUARE KOOPO
+1F201 ; [.3BCD.0020.001C][.3BCD.0020.001C] # SQUARED KATAKANA KOKO
+30FF ; [.3BCD.0020.0016][.3BD7.0020.0016] # KATAKANA DIGRAPH KOTO
+331D ; [.3BCD.0020.001C][.3BED.0020.001C][.3BD8.0020.001C] # SQUARE KORUNA
+3055 ; [.3BCE.0020.000E] # HIRAGANA LETTER SA
+30B5 ; [.3BCE.0020.0011] # KATAKANA LETTER SA
+FF7B ; [.3BCE.0020.0012] # HALFWIDTH KATAKANA LETTER SA
+32DA ; [.3BCE.0020.0013] # CIRCLED KATAKANA SA
+1F202 ; [.3BCE.0020.001C] # SQUARED KATAKANA SA
+3056 ; [.3BCE.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZA
+30B6 ; [.3BCE.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZA
+331F ; [.3BCE.0020.001C][.3BC4.0020.001C][.3BCB.0020.001C][.3BED.0020.001C] # SQUARE SAIKURU
+3320 ; [.3BCE.0020.001C][.3BF4.0020.001C][.3BD4.0020.001C][.1B89.0020.001C][.3BE4.0020.001C] # SQUARE SANTIIMU
+3057 ; [.3BCF.0020.000E] # HIRAGANA LETTER SI
+31F1 ; [.3BCF.0020.000F] # KATAKANA LETTER SMALL SI
+30B7 ; [.3BCF.0020.0011] # KATAKANA LETTER SI
+FF7C ; [.3BCF.0020.0012] # HALFWIDTH KATAKANA LETTER SI
+32DB ; [.3BCF.0020.0013] # CIRCLED KATAKANA SI
+3058 ; [.3BCF.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZI
+30B8 ; [.3BCF.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZI
+3006 ; [.3BCF.0020.0004][.3BE5.0020.0004] # IDEOGRAPHIC CLOSING MARK
+3321 ; [.3BCF.0020.001C][.3BEC.0020.001C][.3BF4.0020.001C][.3BCB.0020.001C][.0000.0037.001C] # SQUARE SIRINGU
+3059 ; [.3BD0.0020.000E] # HIRAGANA LETTER SU
+31F2 ; [.3BD0.0020.000F] # KATAKANA LETTER SMALL SU
+30B9 ; [.3BD0.0020.0011] # KATAKANA LETTER SU
+FF7D ; [.3BD0.0020.0012] # HALFWIDTH KATAKANA LETTER SU
+32DC ; [.3BD0.0020.0013] # CIRCLED KATAKANA SU
+305A ; [.3BD0.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZU
+30BA ; [.3BD0.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZU
+305B ; [.3BD1.0020.000E] # HIRAGANA LETTER SE
+30BB ; [.3BD1.0020.0011] # KATAKANA LETTER SE
+FF7E ; [.3BD1.0020.0012] # HALFWIDTH KATAKANA LETTER SE
+32DD ; [.3BD1.0020.0013] # CIRCLED KATAKANA SE
+305C ; [.3BD1.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZE
+30BC ; [.3BD1.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZE
+3322 ; [.3BD1.0020.001C][.3BF4.0020.001C][.3BD4.0020.001C] # SQUARE SENTI
+3323 ; [.3BD1.0020.001C][.3BF4.0020.001C][.3BD7.0020.001C] # SQUARE SENTO
+305D ; [.3BD2.0020.000E] # HIRAGANA LETTER SO
+30BD ; [.3BD2.0020.0011] # KATAKANA LETTER SO
+FF7F ; [.3BD2.0020.0012] # HALFWIDTH KATAKANA LETTER SO
+32DE ; [.3BD2.0020.0013] # CIRCLED KATAKANA SO
+305E ; [.3BD2.0020.000E][.0000.0037.0002] # HIRAGANA LETTER ZO
+30BE ; [.3BD2.0020.0011][.0000.0037.0002] # KATAKANA LETTER ZO
+305F ; [.3BD3.0020.000E] # HIRAGANA LETTER TA
+30BF ; [.3BD3.0020.0011] # KATAKANA LETTER TA
+FF80 ; [.3BD3.0020.0012] # HALFWIDTH KATAKANA LETTER TA
+32DF ; [.3BD3.0020.0013] # CIRCLED KATAKANA TA
+3060 ; [.3BD3.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DA
+30C0 ; [.3BD3.0020.0011][.0000.0037.0002] # KATAKANA LETTER DA
+3324 ; [.3BD3.0020.001C][.0000.0037.001C][.1B89.0020.001C][.3BD0.0020.001C] # SQUARE DAASU
+3061 ; [.3BD4.0020.000E] # HIRAGANA LETTER TI
+30C1 ; [.3BD4.0020.0011] # KATAKANA LETTER TI
+FF81 ; [.3BD4.0020.0012] # HALFWIDTH KATAKANA LETTER TI
+32E0 ; [.3BD4.0020.0013] # CIRCLED KATAKANA TI
+3062 ; [.3BD4.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DI
+30C2 ; [.3BD4.0020.0011][.0000.0037.0002] # KATAKANA LETTER DI
+3063 ; [.3BD5.0020.000D] # HIRAGANA LETTER SMALL TU
+3064 ; [.3BD5.0020.000E] # HIRAGANA LETTER TU
+30C3 ; [.3BD5.0020.000F] # KATAKANA LETTER SMALL TU
+FF6F ; [.3BD5.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL TU
+30C4 ; [.3BD5.0020.0011] # KATAKANA LETTER TU
+FF82 ; [.3BD5.0020.0012] # HALFWIDTH KATAKANA LETTER TU
+32E1 ; [.3BD5.0020.0013] # CIRCLED KATAKANA TU
+3065 ; [.3BD5.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DU
+30C5 ; [.3BD5.0020.0011][.0000.0037.0002] # KATAKANA LETTER DU
+3066 ; [.3BD6.0020.000E] # HIRAGANA LETTER TE
+30C6 ; [.3BD6.0020.0011] # KATAKANA LETTER TE
+FF83 ; [.3BD6.0020.0012] # HALFWIDTH KATAKANA LETTER TE
+32E2 ; [.3BD6.0020.0013] # CIRCLED KATAKANA TE
+3067 ; [.3BD6.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DE
+30C7 ; [.3BD6.0020.0011][.0000.0037.0002] # KATAKANA LETTER DE
+1F213 ; [.3BD6.0020.001C][.0000.0037.001C] # SQUARED KATAKANA DE
+3325 ; [.3BD6.0020.001C][.0000.0037.001C][.3BCF.0020.001C] # SQUARE DESI
+3068 ; [.3BD7.0020.000E] # HIRAGANA LETTER TO
+31F3 ; [.3BD7.0020.000F] # KATAKANA LETTER SMALL TO
+30C8 ; [.3BD7.0020.0011] # KATAKANA LETTER TO
+FF84 ; [.3BD7.0020.0012] # HALFWIDTH KATAKANA LETTER TO
+32E3 ; [.3BD7.0020.0013] # CIRCLED KATAKANA TO
+3069 ; [.3BD7.0020.000E][.0000.0037.0002] # HIRAGANA LETTER DO
+30C9 ; [.3BD7.0020.0011][.0000.0037.0002] # KATAKANA LETTER DO
+3326 ; [.3BD7.0020.001C][.0000.0037.001C][.3BED.0020.001C] # SQUARE DORU
+3327 ; [.3BD7.0020.001C][.3BF4.0020.001C] # SQUARE TON
+306A ; [.3BD8.0020.000E] # HIRAGANA LETTER NA
+30CA ; [.3BD8.0020.0011] # KATAKANA LETTER NA
+FF85 ; [.3BD8.0020.0012] # HALFWIDTH KATAKANA LETTER NA
+32E4 ; [.3BD8.0020.0013] # CIRCLED KATAKANA NA
+3328 ; [.3BD8.0020.001C][.3BDC.0020.001C] # SQUARE NANO
+306B ; [.3BD9.0020.000E] # HIRAGANA LETTER NI
+30CB ; [.3BD9.0020.0011] # KATAKANA LETTER NI
+FF86 ; [.3BD9.0020.0012] # HALFWIDTH KATAKANA LETTER NI
+32E5 ; [.3BD9.0020.0013] # CIRCLED KATAKANA NI
+306C ; [.3BDA.0020.000E] # HIRAGANA LETTER NU
+31F4 ; [.3BDA.0020.000F] # KATAKANA LETTER SMALL NU
+30CC ; [.3BDA.0020.0011] # KATAKANA LETTER NU
+FF87 ; [.3BDA.0020.0012] # HALFWIDTH KATAKANA LETTER NU
+32E6 ; [.3BDA.0020.0013] # CIRCLED KATAKANA NU
+306D ; [.3BDB.0020.000E] # HIRAGANA LETTER NE
+30CD ; [.3BDB.0020.0011] # KATAKANA LETTER NE
+FF88 ; [.3BDB.0020.0012] # HALFWIDTH KATAKANA LETTER NE
+32E7 ; [.3BDB.0020.0013] # CIRCLED KATAKANA NE
+306E ; [.3BDC.0020.000E] # HIRAGANA LETTER NO
+30CE ; [.3BDC.0020.0011] # KATAKANA LETTER NO
+FF89 ; [.3BDC.0020.0012] # HALFWIDTH KATAKANA LETTER NO
+32E8 ; [.3BDC.0020.0013] # CIRCLED KATAKANA NO
+3329 ; [.3BDC.0020.001C][.3BD5.0020.001C][.3BD7.0020.001C] # SQUARE NOTTO
+306F ; [.3BDD.0020.000E] # HIRAGANA LETTER HA
+31F5 ; [.3BDD.0020.000F] # KATAKANA LETTER SMALL HA
+30CF ; [.3BDD.0020.0011] # KATAKANA LETTER HA
+FF8A ; [.3BDD.0020.0012] # HALFWIDTH KATAKANA LETTER HA
+32E9 ; [.3BDD.0020.0013] # CIRCLED KATAKANA HA
+3070 ; [.3BDD.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BA
+30D0 ; [.3BDD.0020.0011][.0000.0037.0002] # KATAKANA LETTER BA
+3071 ; [.3BDD.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PA
+30D1 ; [.3BDD.0020.0011][.0000.0038.0002] # KATAKANA LETTER PA
+332B ; [.3BDD.0020.001C][.0000.0038.001C][.1B89.0020.001C][.3BD1.0020.001C][.3BF4.0020.001C][.3BD7.0020.001C] # SQUARE PAASENTO
+332C ; [.3BDD.0020.001C][.0000.0038.001C][.1B89.0020.001C][.3BD5.0020.001C] # SQUARE PAATU
+332D ; [.3BDD.0020.001C][.0000.0037.001C][.1B89.0020.001C][.3BEE.0020.001C][.3BED.0020.001C] # SQUARE BAARERU
+332A ; [.3BDD.0020.001C][.3BC4.0020.001C][.3BD5.0020.001C] # SQUARE HAITU
+3072 ; [.3BDE.0020.000E] # HIRAGANA LETTER HI
+31F6 ; [.3BDE.0020.000F] # KATAKANA LETTER SMALL HI
+30D2 ; [.3BDE.0020.0011] # KATAKANA LETTER HI
+FF8B ; [.3BDE.0020.0012] # HALFWIDTH KATAKANA LETTER HI
+32EA ; [.3BDE.0020.0013] # CIRCLED KATAKANA HI
+3073 ; [.3BDE.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BI
+30D3 ; [.3BDE.0020.0011][.0000.0037.0002] # KATAKANA LETTER BI
+3074 ; [.3BDE.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PI
+30D4 ; [.3BDE.0020.0011][.0000.0038.0002] # KATAKANA LETTER PI
+332E ; [.3BDE.0020.001C][.0000.0038.001C][.3BC3.0020.001C][.3BD0.0020.001C][.3BD7.0020.001C][.3BED.0020.001C] # SQUARE PIASUTORU
+332F ; [.3BDE.0020.001C][.0000.0038.001C][.3BCB.0020.001C][.3BED.0020.001C] # SQUARE PIKURU
+3330 ; [.3BDE.0020.001C][.0000.0038.001C][.3BCD.0020.001C] # SQUARE PIKO
+3331 ; [.3BDE.0020.001C][.0000.0037.001C][.3BED.0020.001C] # SQUARE BIRU
+3075 ; [.3BDF.0020.000E] # HIRAGANA LETTER HU
+31F7 ; [.3BDF.0020.000F] # KATAKANA LETTER SMALL HU
+30D5 ; [.3BDF.0020.0011] # KATAKANA LETTER HU
+FF8C ; [.3BDF.0020.0012] # HALFWIDTH KATAKANA LETTER HU
+32EB ; [.3BDF.0020.0013] # CIRCLED KATAKANA HU
+3076 ; [.3BDF.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BU
+30D6 ; [.3BDF.0020.0011][.0000.0037.0002] # KATAKANA LETTER BU
+3077 ; [.3BDF.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PU
+30D7 ; [.3BDF.0020.0011][.0000.0038.0002] # KATAKANA LETTER PU
+3332 ; [.3BDF.0020.001C][.3BC3.0020.001C][.3BEB.0020.001C][.3BD5.0020.001C][.3BD7.0020.001C][.0000.0037.001C] # SQUARE HUARADDO
+3333 ; [.3BDF.0020.001C][.3BC4.0020.001C][.1B89.0020.001C][.3BD7.0020.001C] # SQUARE HUIITO
+3334 ; [.3BDF.0020.001C][.0000.0037.001C][.3BD5.0020.001C][.3BCF.0020.001C][.3BC7.0020.001C][.3BED.0020.001C] # SQUARE BUSSYERU
+3335 ; [.3BDF.0020.001C][.3BEB.0020.001C][.3BF4.0020.001C] # SQUARE HURAN
+3078 ; [.3BE0.0020.000E] # HIRAGANA LETTER HE
+31F8 ; [.3BE0.0020.000F] # KATAKANA LETTER SMALL HE
+30D8 ; [.3BE0.0020.0011] # KATAKANA LETTER HE
+FF8D ; [.3BE0.0020.0012] # HALFWIDTH KATAKANA LETTER HE
+32EC ; [.3BE0.0020.0013] # CIRCLED KATAKANA HE
+3079 ; [.3BE0.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BE
+30D9 ; [.3BE0.0020.0011][.0000.0037.0002] # KATAKANA LETTER BE
+307A ; [.3BE0.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PE
+30DA ; [.3BE0.0020.0011][.0000.0038.0002] # KATAKANA LETTER PE
+333B ; [.3BE0.0020.001C][.0000.0038.001C][.1B89.0020.001C][.3BCF.0020.001C][.0000.0037.001C] # SQUARE PEEZI
+333C ; [.3BE0.0020.001C][.0000.0037.001C][.1B89.0020.001C][.3BD3.0020.001C] # SQUARE BEETA
+3336 ; [.3BE0.0020.001C][.3BCB.0020.001C][.3BD3.0020.001C][.1B89.0020.001C][.3BED.0020.001C] # SQUARE HEKUTAARU
+3337 ; [.3BE0.0020.001C][.0000.0038.001C][.3BD2.0020.001C] # SQUARE PESO
+3338 ; [.3BE0.0020.001C][.0000.0038.001C][.3BD9.0020.001C][.3BDE.0020.001C] # SQUARE PENIHI
+3339 ; [.3BE0.0020.001C][.3BED.0020.001C][.3BD5.0020.001C] # SQUARE HERUTU
+333A ; [.3BE0.0020.001C][.0000.0038.001C][.3BF4.0020.001C][.3BD0.0020.001C] # SQUARE PENSU
+307B ; [.3BE1.0020.000E] # HIRAGANA LETTER HO
+31F9 ; [.3BE1.0020.000F] # KATAKANA LETTER SMALL HO
+30DB ; [.3BE1.0020.0011] # KATAKANA LETTER HO
+FF8E ; [.3BE1.0020.0012] # HALFWIDTH KATAKANA LETTER HO
+32ED ; [.3BE1.0020.0013] # CIRCLED KATAKANA HO
+307C ; [.3BE1.0020.000E][.0000.0037.0002] # HIRAGANA LETTER BO
+30DC ; [.3BE1.0020.0011][.0000.0037.0002] # KATAKANA LETTER BO
+307D ; [.3BE1.0020.000E][.0000.0038.0002] # HIRAGANA LETTER PO
+30DD ; [.3BE1.0020.0011][.0000.0038.0002] # KATAKANA LETTER PO
+3341 ; [.3BE1.0020.001C][.1B89.0020.001C][.3BED.0020.001C] # SQUARE HOORU
+3342 ; [.3BE1.0020.001C][.1B89.0020.001C][.3BF4.0020.001C] # SQUARE HOON
+333D ; [.3BE1.0020.001C][.0000.0038.001C][.3BC4.0020.001C][.3BF4.0020.001C][.3BD7.0020.001C] # SQUARE POINTO
+1F200 ; [.3BE1.0020.001C][.3BC9.0020.001C] # SQUARE HIRAGANA HOKA
+333E ; [.3BE1.0020.001C][.0000.0037.001C][.3BED.0020.001C][.3BD7.0020.001C] # SQUARE BORUTO
+333F ; [.3BE1.0020.001C][.3BF4.0020.001C] # SQUARE HON
+3340 ; [.3BE1.0020.001C][.0000.0038.001C][.3BF4.0020.001C][.3BD7.0020.001C][.0000.0037.001C] # SQUARE PONDO
+307E ; [.3BE2.0020.000E] # HIRAGANA LETTER MA
+30DE ; [.3BE2.0020.0011] # KATAKANA LETTER MA
+FF8F ; [.3BE2.0020.0012] # HALFWIDTH KATAKANA LETTER MA
+32EE ; [.3BE2.0020.0013] # CIRCLED KATAKANA MA
+3343 ; [.3BE2.0020.001C][.3BC4.0020.001C][.3BCB.0020.001C][.3BEF.0020.001C] # SQUARE MAIKURO
+3344 ; [.3BE2.0020.001C][.3BC4.0020.001C][.3BED.0020.001C] # SQUARE MAIRU
+303C ; [.3BE2.0020.0004][.3BD0.0020.0004] # MASU MARK
+3345 ; [.3BE2.0020.001C][.3BD5.0020.001C][.3BDD.0020.001C] # SQUARE MAHHA
+3346 ; [.3BE2.0020.001C][.3BED.0020.001C][.3BCB.0020.001C] # SQUARE MARUKU
+3347 ; [.3BE2.0020.001C][.3BF4.0020.001C][.3BCF.0020.001C][.3BEA.0020.001C][.3BF4.0020.001C] # SQUARE MANSYON
+307F ; [.3BE3.0020.000E] # HIRAGANA LETTER MI
+30DF ; [.3BE3.0020.0011] # KATAKANA LETTER MI
+FF90 ; [.3BE3.0020.0012] # HALFWIDTH KATAKANA LETTER MI
+32EF ; [.3BE3.0020.0013] # CIRCLED KATAKANA MI
+3348 ; [.3BE3.0020.001C][.3BCB.0020.001C][.3BEF.0020.001C][.3BF4.0020.001C] # SQUARE MIKURON
+3349 ; [.3BE3.0020.001C][.3BEC.0020.001C] # SQUARE MIRI
+334A ; [.3BE3.0020.001C][.3BEC.0020.001C][.3BDD.0020.001C][.0000.0037.001C][.1B89.0020.001C][.3BED.0020.001C] # SQUARE MIRIBAARU
+3080 ; [.3BE4.0020.000E] # HIRAGANA LETTER MU
+31FA ; [.3BE4.0020.000F] # KATAKANA LETTER SMALL MU
+30E0 ; [.3BE4.0020.0011] # KATAKANA LETTER MU
+FF91 ; [.3BE4.0020.0012] # HALFWIDTH KATAKANA LETTER MU
+32F0 ; [.3BE4.0020.0013] # CIRCLED KATAKANA MU
+3081 ; [.3BE5.0020.000E] # HIRAGANA LETTER ME
+30E1 ; [.3BE5.0020.0011] # KATAKANA LETTER ME
+FF92 ; [.3BE5.0020.0012] # HALFWIDTH KATAKANA LETTER ME
+32F1 ; [.3BE5.0020.0013] # CIRCLED KATAKANA ME
+334D ; [.3BE5.0020.001C][.1B89.0020.001C][.3BD7.0020.001C][.3BED.0020.001C] # SQUARE MEETORU
+334B ; [.3BE5.0020.001C][.3BC9.0020.001C][.0000.0037.001C] # SQUARE MEGA
+334C ; [.3BE5.0020.001C][.3BC9.0020.001C][.0000.0037.001C][.3BD7.0020.001C][.3BF4.0020.001C] # SQUARE MEGATON
+3082 ; [.3BE6.0020.000E] # HIRAGANA LETTER MO
+30E2 ; [.3BE6.0020.0011] # KATAKANA LETTER MO
+FF93 ; [.3BE6.0020.0012] # HALFWIDTH KATAKANA LETTER MO
+32F2 ; [.3BE6.0020.0013] # CIRCLED KATAKANA MO
+3083 ; [.3BE7.0020.000D] # HIRAGANA LETTER SMALL YA
+3084 ; [.3BE7.0020.000E] # HIRAGANA LETTER YA
+30E3 ; [.3BE7.0020.000F] # KATAKANA LETTER SMALL YA
+FF6C ; [.3BE7.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YA
+30E4 ; [.3BE7.0020.0011] # KATAKANA LETTER YA
+FF94 ; [.3BE7.0020.0012] # HALFWIDTH KATAKANA LETTER YA
+32F3 ; [.3BE7.0020.0013] # CIRCLED KATAKANA YA
+334E ; [.3BE7.0020.001C][.1B89.0020.001C][.3BD7.0020.001C][.0000.0037.001C] # SQUARE YAADO
+334F ; [.3BE7.0020.001C][.1B89.0020.001C][.3BED.0020.001C] # SQUARE YAARU
+3085 ; [.3BE8.0020.000D] # HIRAGANA LETTER SMALL YU
+3086 ; [.3BE8.0020.000E] # HIRAGANA LETTER YU
+30E5 ; [.3BE8.0020.000F] # KATAKANA LETTER SMALL YU
+FF6D ; [.3BE8.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YU
+30E6 ; [.3BE8.0020.0011] # KATAKANA LETTER YU
+FF95 ; [.3BE8.0020.0012] # HALFWIDTH KATAKANA LETTER YU
+32F4 ; [.3BE8.0020.0013] # CIRCLED KATAKANA YU
+3350 ; [.3BE8.0020.001C][.3BC3.0020.001C][.3BF4.0020.001C] # SQUARE YUAN
+1B001 ; [.3BE9.0020.000E] # HIRAGANA LETTER ARCHAIC YE
+3087 ; [.3BEA.0020.000D] # HIRAGANA LETTER SMALL YO
+3088 ; [.3BEA.0020.000E] # HIRAGANA LETTER YO
+30E7 ; [.3BEA.0020.000F] # KATAKANA LETTER SMALL YO
+FF6E ; [.3BEA.0020.0010] # HALFWIDTH KATAKANA LETTER SMALL YO
+30E8 ; [.3BEA.0020.0011] # KATAKANA LETTER YO
+FF96 ; [.3BEA.0020.0012] # HALFWIDTH KATAKANA LETTER YO
+32F5 ; [.3BEA.0020.0013] # CIRCLED KATAKANA YO
+309F ; [.3BEA.0020.0016][.3BEC.0020.0016] # HIRAGANA DIGRAPH YORI
+3089 ; [.3BEB.0020.000E] # HIRAGANA LETTER RA
+31FB ; [.3BEB.0020.000F] # KATAKANA LETTER SMALL RA
+30E9 ; [.3BEB.0020.0011] # KATAKANA LETTER RA
+FF97 ; [.3BEB.0020.0012] # HALFWIDTH KATAKANA LETTER RA
+32F6 ; [.3BEB.0020.0013] # CIRCLED KATAKANA RA
+308A ; [.3BEC.0020.000E] # HIRAGANA LETTER RI
+31FC ; [.3BEC.0020.000F] # KATAKANA LETTER SMALL RI
+30EA ; [.3BEC.0020.0011] # KATAKANA LETTER RI
+FF98 ; [.3BEC.0020.0012] # HALFWIDTH KATAKANA LETTER RI
+32F7 ; [.3BEC.0020.0013] # CIRCLED KATAKANA RI
+3351 ; [.3BEC.0020.001C][.3BD5.0020.001C][.3BD7.0020.001C][.3BED.0020.001C] # SQUARE RITTORU
+3352 ; [.3BEC.0020.001C][.3BEB.0020.001C] # SQUARE RIRA
+308B ; [.3BED.0020.000E] # HIRAGANA LETTER RU
+31FD ; [.3BED.0020.000F] # KATAKANA LETTER SMALL RU
+30EB ; [.3BED.0020.0011] # KATAKANA LETTER RU
+FF99 ; [.3BED.0020.0012] # HALFWIDTH KATAKANA LETTER RU
+32F8 ; [.3BED.0020.0013] # CIRCLED KATAKANA RU
+3354 ; [.3BED.0020.001C][.1B89.0020.001C][.3BDF.0020.001C][.0000.0037.001C][.3BED.0020.001C] # SQUARE RUUBURU
+3353 ; [.3BED.0020.001C][.3BDE.0020.001C][.0000.0038.001C][.1B89.0020.001C] # SQUARE RUPII
+308C ; [.3BEE.0020.000E] # HIRAGANA LETTER RE
+31FE ; [.3BEE.0020.000F] # KATAKANA LETTER SMALL RE
+30EC ; [.3BEE.0020.0011] # KATAKANA LETTER RE
+FF9A ; [.3BEE.0020.0012] # HALFWIDTH KATAKANA LETTER RE
+32F9 ; [.3BEE.0020.0013] # CIRCLED KATAKANA RE
+3355 ; [.3BEE.0020.001C][.3BE4.0020.001C] # SQUARE REMU
+3356 ; [.3BEE.0020.001C][.3BF4.0020.001C][.3BD7.0020.001C][.3BCC.0020.001C][.0000.0037.001C][.3BF4.0020.001C] # SQUARE RENTOGEN
+308D ; [.3BEF.0020.000E] # HIRAGANA LETTER RO
+31FF ; [.3BEF.0020.000F] # KATAKANA LETTER SMALL RO
+30ED ; [.3BEF.0020.0011] # KATAKANA LETTER RO
+FF9B ; [.3BEF.0020.0012] # HALFWIDTH KATAKANA LETTER RO
+32FA ; [.3BEF.0020.0013] # CIRCLED KATAKANA RO
+308E ; [.3BF0.0020.000D] # HIRAGANA LETTER SMALL WA
+308F ; [.3BF0.0020.000E] # HIRAGANA LETTER WA
+30EE ; [.3BF0.0020.000F] # KATAKANA LETTER SMALL WA
+30EF ; [.3BF0.0020.0011] # KATAKANA LETTER WA
+FF9C ; [.3BF0.0020.0012] # HALFWIDTH KATAKANA LETTER WA
+32FB ; [.3BF0.0020.0013] # CIRCLED KATAKANA WA
+30F7 ; [.3BF0.0020.0011][.0000.0037.0002] # KATAKANA LETTER VA
+3357 ; [.3BF0.0020.001C][.3BD5.0020.001C][.3BD7.0020.001C] # SQUARE WATTO
+3090 ; [.3BF1.0020.000E] # HIRAGANA LETTER WI
+30F0 ; [.3BF1.0020.0011] # KATAKANA LETTER WI
+32FC ; [.3BF1.0020.0013] # CIRCLED KATAKANA WI
+30F8 ; [.3BF1.0020.0011][.0000.0037.0002] # KATAKANA LETTER VI
+3091 ; [.3BF2.0020.000E] # HIRAGANA LETTER WE
+30F1 ; [.3BF2.0020.0011] # KATAKANA LETTER WE
+32FD ; [.3BF2.0020.0013] # CIRCLED KATAKANA WE
+30F9 ; [.3BF2.0020.0011][.0000.0037.0002] # KATAKANA LETTER VE
+3092 ; [.3BF3.0020.000E] # HIRAGANA LETTER WO
+30F2 ; [.3BF3.0020.0011] # KATAKANA LETTER WO
+FF66 ; [.3BF3.0020.0012] # HALFWIDTH KATAKANA LETTER WO
+32FE ; [.3BF3.0020.0013] # CIRCLED KATAKANA WO
+30FA ; [.3BF3.0020.0011][.0000.0037.0002] # KATAKANA LETTER VO
+3093 ; [.3BF4.0020.000E] # HIRAGANA LETTER N
+30F3 ; [.3BF4.0020.0011] # KATAKANA LETTER N
+FF9D ; [.3BF4.0020.0012] # HALFWIDTH KATAKANA LETTER N
+3105 ; [.3BF5.0020.0002] # BOPOMOFO LETTER B
+31A0 ; [.3BF5.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER BU
+3106 ; [.3BF6.0020.0002] # BOPOMOFO LETTER P
+31B4 ; [.3BF6.0020.0019] # BOPOMOFO FINAL LETTER P
+3107 ; [.3BF7.0020.0002] # BOPOMOFO LETTER M
+3108 ; [.3BF8.0020.0002] # BOPOMOFO LETTER F
+312A ; [.3BF9.0020.0002] # BOPOMOFO LETTER V
+3109 ; [.3BFA.0020.0002] # BOPOMOFO LETTER D
+310A ; [.3BFB.0020.0002] # BOPOMOFO LETTER T
+31B5 ; [.3BFB.0020.0019] # BOPOMOFO FINAL LETTER T
+310B ; [.3BFC.0020.0002] # BOPOMOFO LETTER N
+310C ; [.3BFD.0020.0002] # BOPOMOFO LETTER L
+310D ; [.3BFE.0020.0002] # BOPOMOFO LETTER G
+31A3 ; [.3BFE.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER GU
+310E ; [.3BFF.0020.0002] # BOPOMOFO LETTER K
+31B6 ; [.3BFF.0020.0019] # BOPOMOFO FINAL LETTER K
+312B ; [.3C00.0020.0002] # BOPOMOFO LETTER NG
+31AD ; [.3C01.0020.0002] # BOPOMOFO LETTER NGG
+310F ; [.3C02.0020.0002] # BOPOMOFO LETTER H
+31B7 ; [.3C02.0020.0019] # BOPOMOFO FINAL LETTER H
+3110 ; [.3C03.0020.0002] # BOPOMOFO LETTER J
+31A2 ; [.3C03.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER JI
+3111 ; [.3C04.0020.0002] # BOPOMOFO LETTER Q
+3112 ; [.3C05.0020.0002] # BOPOMOFO LETTER X
+312C ; [.3C06.0020.0002] # BOPOMOFO LETTER GN
+3113 ; [.3C07.0020.0002] # BOPOMOFO LETTER ZH
+3114 ; [.3C08.0020.0002] # BOPOMOFO LETTER CH
+3115 ; [.3C09.0020.0002] # BOPOMOFO LETTER SH
+3116 ; [.3C0A.0020.0002] # BOPOMOFO LETTER R
+3117 ; [.3C0B.0020.0002] # BOPOMOFO LETTER Z
+31A1 ; [.3C0B.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER ZI
+3118 ; [.3C0C.0020.0002] # BOPOMOFO LETTER C
+3119 ; [.3C0D.0020.0002] # BOPOMOFO LETTER S
+31B8 ; [.3C0E.0020.0002] # BOPOMOFO LETTER GH
+31B9 ; [.3C0F.0020.0002] # BOPOMOFO LETTER LH
+31BA ; [.3C10.0020.0002] # BOPOMOFO LETTER ZY
+311A ; [.3C11.0020.0002] # BOPOMOFO LETTER A
+31A9 ; [.3C11.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER ANN
+311B ; [.3C12.0020.0002] # BOPOMOFO LETTER O
+31A7 ; [.3C12.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER ONN
+31A6 ; [.3C13.0020.0002] # BOPOMOFO LETTER OO
+311C ; [.3C14.0020.0002] # BOPOMOFO LETTER E
+311D ; [.3C15.0020.0002] # BOPOMOFO LETTER EH
+31A4 ; [.3C16.0020.0002] # BOPOMOFO LETTER EE
+31A5 ; [.3C16.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER ENN
+311E ; [.3C17.0020.0002] # BOPOMOFO LETTER AI
+31AE ; [.3C17.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER AINN
+311F ; [.3C18.0020.0002] # BOPOMOFO LETTER EI
+3120 ; [.3C19.0020.0002] # BOPOMOFO LETTER AU
+31AF ; [.3C19.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER AUNN
+3121 ; [.3C1A.0020.0002] # BOPOMOFO LETTER OU
+3122 ; [.3C1B.0020.0002] # BOPOMOFO LETTER AN
+3123 ; [.3C1C.0020.0002] # BOPOMOFO LETTER EN
+3124 ; [.3C1D.0020.0002] # BOPOMOFO LETTER ANG
+31B2 ; [.3C1E.0020.0002] # BOPOMOFO LETTER ONG
+3125 ; [.3C1F.0020.0002] # BOPOMOFO LETTER ENG
+31B0 ; [.3C20.0020.0002] # BOPOMOFO LETTER AM
+31B1 ; [.3C21.0020.0002] # BOPOMOFO LETTER OM
+31AC ; [.3C22.0020.0002] # BOPOMOFO LETTER IM
+3126 ; [.3C23.0020.0002] # BOPOMOFO LETTER ER
+3127 ; [.3C24.0020.0002] # BOPOMOFO LETTER I
+31AA ; [.3C24.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER INN
+31B3 ; [.3C24.0020.0016][.0000.010C.0016] # BOPOMOFO LETTER INNN
+3128 ; [.3C25.0020.0002] # BOPOMOFO LETTER U
+31AB ; [.3C25.0020.0004][.0000.010C.0004] # BOPOMOFO LETTER UNN
+31A8 ; [.3C25.0020.0004][.0000.010D.0004] # BOPOMOFO LETTER IR
+3129 ; [.3C26.0020.0002] # BOPOMOFO LETTER IU
+312D ; [.3C27.0020.0002] # BOPOMOFO LETTER IH
+A000 ; [.3C28.0020.0002] # YI SYLLABLE IT
+A001 ; [.3C29.0020.0002] # YI SYLLABLE IX
+A002 ; [.3C2A.0020.0002] # YI SYLLABLE I
+A003 ; [.3C2B.0020.0002] # YI SYLLABLE IP
+A004 ; [.3C2C.0020.0002] # YI SYLLABLE IET
+A005 ; [.3C2D.0020.0002] # YI SYLLABLE IEX
+A006 ; [.3C2E.0020.0002] # YI SYLLABLE IE
+A007 ; [.3C2F.0020.0002] # YI SYLLABLE IEP
+A008 ; [.3C30.0020.0002] # YI SYLLABLE AT
+A009 ; [.3C31.0020.0002] # YI SYLLABLE AX
+A00A ; [.3C32.0020.0002] # YI SYLLABLE A
+A00B ; [.3C33.0020.0002] # YI SYLLABLE AP
+A00C ; [.3C34.0020.0002] # YI SYLLABLE UOX
+A00D ; [.3C35.0020.0002] # YI SYLLABLE UO
+A00E ; [.3C36.0020.0002] # YI SYLLABLE UOP
+A00F ; [.3C37.0020.0002] # YI SYLLABLE OT
+A010 ; [.3C38.0020.0002] # YI SYLLABLE OX
+A011 ; [.3C39.0020.0002] # YI SYLLABLE O
+A012 ; [.3C3A.0020.0002] # YI SYLLABLE OP
+A013 ; [.3C3B.0020.0002] # YI SYLLABLE EX
+A014 ; [.3C3C.0020.0002] # YI SYLLABLE E
+A015 ; [.3C3D.0020.0002] # YI SYLLABLE WU
+A016 ; [.3C3E.0020.0002] # YI SYLLABLE BIT
+A017 ; [.3C3F.0020.0002] # YI SYLLABLE BIX
+A018 ; [.3C40.0020.0002] # YI SYLLABLE BI
+A019 ; [.3C41.0020.0002] # YI SYLLABLE BIP
+A01A ; [.3C42.0020.0002] # YI SYLLABLE BIET
+A01B ; [.3C43.0020.0002] # YI SYLLABLE BIEX
+A01C ; [.3C44.0020.0002] # YI SYLLABLE BIE
+A01D ; [.3C45.0020.0002] # YI SYLLABLE BIEP
+A01E ; [.3C46.0020.0002] # YI SYLLABLE BAT
+A01F ; [.3C47.0020.0002] # YI SYLLABLE BAX
+A020 ; [.3C48.0020.0002] # YI SYLLABLE BA
+A021 ; [.3C49.0020.0002] # YI SYLLABLE BAP
+A022 ; [.3C4A.0020.0002] # YI SYLLABLE BUOX
+A023 ; [.3C4B.0020.0002] # YI SYLLABLE BUO
+A024 ; [.3C4C.0020.0002] # YI SYLLABLE BUOP
+A025 ; [.3C4D.0020.0002] # YI SYLLABLE BOT
+A026 ; [.3C4E.0020.0002] # YI SYLLABLE BOX
+A027 ; [.3C4F.0020.0002] # YI SYLLABLE BO
+A028 ; [.3C50.0020.0002] # YI SYLLABLE BOP
+A029 ; [.3C51.0020.0002] # YI SYLLABLE BEX
+A02A ; [.3C52.0020.0002] # YI SYLLABLE BE
+A02B ; [.3C53.0020.0002] # YI SYLLABLE BEP
+A02C ; [.3C54.0020.0002] # YI SYLLABLE BUT
+A02D ; [.3C55.0020.0002] # YI SYLLABLE BUX
+A02E ; [.3C56.0020.0002] # YI SYLLABLE BU
+A02F ; [.3C57.0020.0002] # YI SYLLABLE BUP
+A030 ; [.3C58.0020.0002] # YI SYLLABLE BURX
+A031 ; [.3C59.0020.0002] # YI SYLLABLE BUR
+A032 ; [.3C5A.0020.0002] # YI SYLLABLE BYT
+A033 ; [.3C5B.0020.0002] # YI SYLLABLE BYX
+A034 ; [.3C5C.0020.0002] # YI SYLLABLE BY
+A035 ; [.3C5D.0020.0002] # YI SYLLABLE BYP
+A036 ; [.3C5E.0020.0002] # YI SYLLABLE BYRX
+A037 ; [.3C5F.0020.0002] # YI SYLLABLE BYR
+A038 ; [.3C60.0020.0002] # YI SYLLABLE PIT
+A039 ; [.3C61.0020.0002] # YI SYLLABLE PIX
+A03A ; [.3C62.0020.0002] # YI SYLLABLE PI
+A03B ; [.3C63.0020.0002] # YI SYLLABLE PIP
+A03C ; [.3C64.0020.0002] # YI SYLLABLE PIEX
+A03D ; [.3C65.0020.0002] # YI SYLLABLE PIE
+A03E ; [.3C66.0020.0002] # YI SYLLABLE PIEP
+A03F ; [.3C67.0020.0002] # YI SYLLABLE PAT
+A040 ; [.3C68.0020.0002] # YI SYLLABLE PAX
+A041 ; [.3C69.0020.0002] # YI SYLLABLE PA
+A042 ; [.3C6A.0020.0002] # YI SYLLABLE PAP
+A043 ; [.3C6B.0020.0002] # YI SYLLABLE PUOX
+A044 ; [.3C6C.0020.0002] # YI SYLLABLE PUO
+A045 ; [.3C6D.0020.0002] # YI SYLLABLE PUOP
+A046 ; [.3C6E.0020.0002] # YI SYLLABLE POT
+A047 ; [.3C6F.0020.0002] # YI SYLLABLE POX
+A048 ; [.3C70.0020.0002] # YI SYLLABLE PO
+A049 ; [.3C71.0020.0002] # YI SYLLABLE POP
+A04A ; [.3C72.0020.0002] # YI SYLLABLE PUT
+A04B ; [.3C73.0020.0002] # YI SYLLABLE PUX
+A04C ; [.3C74.0020.0002] # YI SYLLABLE PU
+A04D ; [.3C75.0020.0002] # YI SYLLABLE PUP
+A04E ; [.3C76.0020.0002] # YI SYLLABLE PURX
+A04F ; [.3C77.0020.0002] # YI SYLLABLE PUR
+A050 ; [.3C78.0020.0002] # YI SYLLABLE PYT
+A051 ; [.3C79.0020.0002] # YI SYLLABLE PYX
+A052 ; [.3C7A.0020.0002] # YI SYLLABLE PY
+A053 ; [.3C7B.0020.0002] # YI SYLLABLE PYP
+A054 ; [.3C7C.0020.0002] # YI SYLLABLE PYRX
+A055 ; [.3C7D.0020.0002] # YI SYLLABLE PYR
+A056 ; [.3C7E.0020.0002] # YI SYLLABLE BBIT
+A057 ; [.3C7F.0020.0002] # YI SYLLABLE BBIX
+A058 ; [.3C80.0020.0002] # YI SYLLABLE BBI
+A059 ; [.3C81.0020.0002] # YI SYLLABLE BBIP
+A05A ; [.3C82.0020.0002] # YI SYLLABLE BBIET
+A05B ; [.3C83.0020.0002] # YI SYLLABLE BBIEX
+A05C ; [.3C84.0020.0002] # YI SYLLABLE BBIE
+A05D ; [.3C85.0020.0002] # YI SYLLABLE BBIEP
+A05E ; [.3C86.0020.0002] # YI SYLLABLE BBAT
+A05F ; [.3C87.0020.0002] # YI SYLLABLE BBAX
+A060 ; [.3C88.0020.0002] # YI SYLLABLE BBA
+A061 ; [.3C89.0020.0002] # YI SYLLABLE BBAP
+A062 ; [.3C8A.0020.0002] # YI SYLLABLE BBUOX
+A063 ; [.3C8B.0020.0002] # YI SYLLABLE BBUO
+A064 ; [.3C8C.0020.0002] # YI SYLLABLE BBUOP
+A065 ; [.3C8D.0020.0002] # YI SYLLABLE BBOT
+A066 ; [.3C8E.0020.0002] # YI SYLLABLE BBOX
+A067 ; [.3C8F.0020.0002] # YI SYLLABLE BBO
+A068 ; [.3C90.0020.0002] # YI SYLLABLE BBOP
+A069 ; [.3C91.0020.0002] # YI SYLLABLE BBEX
+A06A ; [.3C92.0020.0002] # YI SYLLABLE BBE
+A06B ; [.3C93.0020.0002] # YI SYLLABLE BBEP
+A06C ; [.3C94.0020.0002] # YI SYLLABLE BBUT
+A06D ; [.3C95.0020.0002] # YI SYLLABLE BBUX
+A06E ; [.3C96.0020.0002] # YI SYLLABLE BBU
+A06F ; [.3C97.0020.0002] # YI SYLLABLE BBUP
+A070 ; [.3C98.0020.0002] # YI SYLLABLE BBURX
+A071 ; [.3C99.0020.0002] # YI SYLLABLE BBUR
+A072 ; [.3C9A.0020.0002] # YI SYLLABLE BBYT
+A073 ; [.3C9B.0020.0002] # YI SYLLABLE BBYX
+A074 ; [.3C9C.0020.0002] # YI SYLLABLE BBY
+A075 ; [.3C9D.0020.0002] # YI SYLLABLE BBYP
+A076 ; [.3C9E.0020.0002] # YI SYLLABLE NBIT
+A077 ; [.3C9F.0020.0002] # YI SYLLABLE NBIX
+A078 ; [.3CA0.0020.0002] # YI SYLLABLE NBI
+A079 ; [.3CA1.0020.0002] # YI SYLLABLE NBIP
+A07A ; [.3CA2.0020.0002] # YI SYLLABLE NBIEX
+A07B ; [.3CA3.0020.0002] # YI SYLLABLE NBIE
+A07C ; [.3CA4.0020.0002] # YI SYLLABLE NBIEP
+A07D ; [.3CA5.0020.0002] # YI SYLLABLE NBAT
+A07E ; [.3CA6.0020.0002] # YI SYLLABLE NBAX
+A07F ; [.3CA7.0020.0002] # YI SYLLABLE NBA
+A080 ; [.3CA8.0020.0002] # YI SYLLABLE NBAP
+A081 ; [.3CA9.0020.0002] # YI SYLLABLE NBOT
+A082 ; [.3CAA.0020.0002] # YI SYLLABLE NBOX
+A083 ; [.3CAB.0020.0002] # YI SYLLABLE NBO
+A084 ; [.3CAC.0020.0002] # YI SYLLABLE NBOP
+A085 ; [.3CAD.0020.0002] # YI SYLLABLE NBUT
+A086 ; [.3CAE.0020.0002] # YI SYLLABLE NBUX
+A087 ; [.3CAF.0020.0002] # YI SYLLABLE NBU
+A088 ; [.3CB0.0020.0002] # YI SYLLABLE NBUP
+A089 ; [.3CB1.0020.0002] # YI SYLLABLE NBURX
+A08A ; [.3CB2.0020.0002] # YI SYLLABLE NBUR
+A08B ; [.3CB3.0020.0002] # YI SYLLABLE NBYT
+A08C ; [.3CB4.0020.0002] # YI SYLLABLE NBYX
+A08D ; [.3CB5.0020.0002] # YI SYLLABLE NBY
+A08E ; [.3CB6.0020.0002] # YI SYLLABLE NBYP
+A08F ; [.3CB7.0020.0002] # YI SYLLABLE NBYRX
+A090 ; [.3CB8.0020.0002] # YI SYLLABLE NBYR
+A091 ; [.3CB9.0020.0002] # YI SYLLABLE HMIT
+A092 ; [.3CBA.0020.0002] # YI SYLLABLE HMIX
+A093 ; [.3CBB.0020.0002] # YI SYLLABLE HMI
+A094 ; [.3CBC.0020.0002] # YI SYLLABLE HMIP
+A095 ; [.3CBD.0020.0002] # YI SYLLABLE HMIEX
+A096 ; [.3CBE.0020.0002] # YI SYLLABLE HMIE
+A097 ; [.3CBF.0020.0002] # YI SYLLABLE HMIEP
+A098 ; [.3CC0.0020.0002] # YI SYLLABLE HMAT
+A099 ; [.3CC1.0020.0002] # YI SYLLABLE HMAX
+A09A ; [.3CC2.0020.0002] # YI SYLLABLE HMA
+A09B ; [.3CC3.0020.0002] # YI SYLLABLE HMAP
+A09C ; [.3CC4.0020.0002] # YI SYLLABLE HMUOX
+A09D ; [.3CC5.0020.0002] # YI SYLLABLE HMUO
+A09E ; [.3CC6.0020.0002] # YI SYLLABLE HMUOP
+A09F ; [.3CC7.0020.0002] # YI SYLLABLE HMOT
+A0A0 ; [.3CC8.0020.0002] # YI SYLLABLE HMOX
+A0A1 ; [.3CC9.0020.0002] # YI SYLLABLE HMO
+A0A2 ; [.3CCA.0020.0002] # YI SYLLABLE HMOP
+A0A3 ; [.3CCB.0020.0002] # YI SYLLABLE HMUT
+A0A4 ; [.3CCC.0020.0002] # YI SYLLABLE HMUX
+A0A5 ; [.3CCD.0020.0002] # YI SYLLABLE HMU
+A0A6 ; [.3CCE.0020.0002] # YI SYLLABLE HMUP
+A0A7 ; [.3CCF.0020.0002] # YI SYLLABLE HMURX
+A0A8 ; [.3CD0.0020.0002] # YI SYLLABLE HMUR
+A0A9 ; [.3CD1.0020.0002] # YI SYLLABLE HMYX
+A0AA ; [.3CD2.0020.0002] # YI SYLLABLE HMY
+A0AB ; [.3CD3.0020.0002] # YI SYLLABLE HMYP
+A0AC ; [.3CD4.0020.0002] # YI SYLLABLE HMYRX
+A0AD ; [.3CD5.0020.0002] # YI SYLLABLE HMYR
+A0AE ; [.3CD6.0020.0002] # YI SYLLABLE MIT
+A0AF ; [.3CD7.0020.0002] # YI SYLLABLE MIX
+A0B0 ; [.3CD8.0020.0002] # YI SYLLABLE MI
+A0B1 ; [.3CD9.0020.0002] # YI SYLLABLE MIP
+A0B2 ; [.3CDA.0020.0002] # YI SYLLABLE MIEX
+A0B3 ; [.3CDB.0020.0002] # YI SYLLABLE MIE
+A0B4 ; [.3CDC.0020.0002] # YI SYLLABLE MIEP
+A0B5 ; [.3CDD.0020.0002] # YI SYLLABLE MAT
+A0B6 ; [.3CDE.0020.0002] # YI SYLLABLE MAX
+A0B7 ; [.3CDF.0020.0002] # YI SYLLABLE MA
+A0B8 ; [.3CE0.0020.0002] # YI SYLLABLE MAP
+A0B9 ; [.3CE1.0020.0002] # YI SYLLABLE MUOT
+A0BA ; [.3CE2.0020.0002] # YI SYLLABLE MUOX
+A0BB ; [.3CE3.0020.0002] # YI SYLLABLE MUO
+A0BC ; [.3CE4.0020.0002] # YI SYLLABLE MUOP
+A0BD ; [.3CE5.0020.0002] # YI SYLLABLE MOT
+A0BE ; [.3CE6.0020.0002] # YI SYLLABLE MOX
+A0BF ; [.3CE7.0020.0002] # YI SYLLABLE MO
+A0C0 ; [.3CE8.0020.0002] # YI SYLLABLE MOP
+A0C1 ; [.3CE9.0020.0002] # YI SYLLABLE MEX
+A0C2 ; [.3CEA.0020.0002] # YI SYLLABLE ME
+A0C3 ; [.3CEB.0020.0002] # YI SYLLABLE MUT
+A0C4 ; [.3CEC.0020.0002] # YI SYLLABLE MUX
+A0C5 ; [.3CED.0020.0002] # YI SYLLABLE MU
+A0C6 ; [.3CEE.0020.0002] # YI SYLLABLE MUP
+A0C7 ; [.3CEF.0020.0002] # YI SYLLABLE MURX
+A0C8 ; [.3CF0.0020.0002] # YI SYLLABLE MUR
+A0C9 ; [.3CF1.0020.0002] # YI SYLLABLE MYT
+A0CA ; [.3CF2.0020.0002] # YI SYLLABLE MYX
+A0CB ; [.3CF3.0020.0002] # YI SYLLABLE MY
+A0CC ; [.3CF4.0020.0002] # YI SYLLABLE MYP
+A0CD ; [.3CF5.0020.0002] # YI SYLLABLE FIT
+A0CE ; [.3CF6.0020.0002] # YI SYLLABLE FIX
+A0CF ; [.3CF7.0020.0002] # YI SYLLABLE FI
+A0D0 ; [.3CF8.0020.0002] # YI SYLLABLE FIP
+A0D1 ; [.3CF9.0020.0002] # YI SYLLABLE FAT
+A0D2 ; [.3CFA.0020.0002] # YI SYLLABLE FAX
+A0D3 ; [.3CFB.0020.0002] # YI SYLLABLE FA
+A0D4 ; [.3CFC.0020.0002] # YI SYLLABLE FAP
+A0D5 ; [.3CFD.0020.0002] # YI SYLLABLE FOX
+A0D6 ; [.3CFE.0020.0002] # YI SYLLABLE FO
+A0D7 ; [.3CFF.0020.0002] # YI SYLLABLE FOP
+A0D8 ; [.3D00.0020.0002] # YI SYLLABLE FUT
+A0D9 ; [.3D01.0020.0002] # YI SYLLABLE FUX
+A0DA ; [.3D02.0020.0002] # YI SYLLABLE FU
+A0DB ; [.3D03.0020.0002] # YI SYLLABLE FUP
+A0DC ; [.3D04.0020.0002] # YI SYLLABLE FURX
+A0DD ; [.3D05.0020.0002] # YI SYLLABLE FUR
+A0DE ; [.3D06.0020.0002] # YI SYLLABLE FYT
+A0DF ; [.3D07.0020.0002] # YI SYLLABLE FYX
+A0E0 ; [.3D08.0020.0002] # YI SYLLABLE FY
+A0E1 ; [.3D09.0020.0002] # YI SYLLABLE FYP
+A0E2 ; [.3D0A.0020.0002] # YI SYLLABLE VIT
+A0E3 ; [.3D0B.0020.0002] # YI SYLLABLE VIX
+A0E4 ; [.3D0C.0020.0002] # YI SYLLABLE VI
+A0E5 ; [.3D0D.0020.0002] # YI SYLLABLE VIP
+A0E6 ; [.3D0E.0020.0002] # YI SYLLABLE VIET
+A0E7 ; [.3D0F.0020.0002] # YI SYLLABLE VIEX
+A0E8 ; [.3D10.0020.0002] # YI SYLLABLE VIE
+A0E9 ; [.3D11.0020.0002] # YI SYLLABLE VIEP
+A0EA ; [.3D12.0020.0002] # YI SYLLABLE VAT
+A0EB ; [.3D13.0020.0002] # YI SYLLABLE VAX
+A0EC ; [.3D14.0020.0002] # YI SYLLABLE VA
+A0ED ; [.3D15.0020.0002] # YI SYLLABLE VAP
+A0EE ; [.3D16.0020.0002] # YI SYLLABLE VOT
+A0EF ; [.3D17.0020.0002] # YI SYLLABLE VOX
+A0F0 ; [.3D18.0020.0002] # YI SYLLABLE VO
+A0F1 ; [.3D19.0020.0002] # YI SYLLABLE VOP
+A0F2 ; [.3D1A.0020.0002] # YI SYLLABLE VEX
+A0F3 ; [.3D1B.0020.0002] # YI SYLLABLE VEP
+A0F4 ; [.3D1C.0020.0002] # YI SYLLABLE VUT
+A0F5 ; [.3D1D.0020.0002] # YI SYLLABLE VUX
+A0F6 ; [.3D1E.0020.0002] # YI SYLLABLE VU
+A0F7 ; [.3D1F.0020.0002] # YI SYLLABLE VUP
+A0F8 ; [.3D20.0020.0002] # YI SYLLABLE VURX
+A0F9 ; [.3D21.0020.0002] # YI SYLLABLE VUR
+A0FA ; [.3D22.0020.0002] # YI SYLLABLE VYT
+A0FB ; [.3D23.0020.0002] # YI SYLLABLE VYX
+A0FC ; [.3D24.0020.0002] # YI SYLLABLE VY
+A0FD ; [.3D25.0020.0002] # YI SYLLABLE VYP
+A0FE ; [.3D26.0020.0002] # YI SYLLABLE VYRX
+A0FF ; [.3D27.0020.0002] # YI SYLLABLE VYR
+A100 ; [.3D28.0020.0002] # YI SYLLABLE DIT
+A101 ; [.3D29.0020.0002] # YI SYLLABLE DIX
+A102 ; [.3D2A.0020.0002] # YI SYLLABLE DI
+A103 ; [.3D2B.0020.0002] # YI SYLLABLE DIP
+A104 ; [.3D2C.0020.0002] # YI SYLLABLE DIEX
+A105 ; [.3D2D.0020.0002] # YI SYLLABLE DIE
+A106 ; [.3D2E.0020.0002] # YI SYLLABLE DIEP
+A107 ; [.3D2F.0020.0002] # YI SYLLABLE DAT
+A108 ; [.3D30.0020.0002] # YI SYLLABLE DAX
+A109 ; [.3D31.0020.0002] # YI SYLLABLE DA
+A10A ; [.3D32.0020.0002] # YI SYLLABLE DAP
+A10B ; [.3D33.0020.0002] # YI SYLLABLE DUOX
+A10C ; [.3D34.0020.0002] # YI SYLLABLE DUO
+A10D ; [.3D35.0020.0002] # YI SYLLABLE DOT
+A10E ; [.3D36.0020.0002] # YI SYLLABLE DOX
+A10F ; [.3D37.0020.0002] # YI SYLLABLE DO
+A110 ; [.3D38.0020.0002] # YI SYLLABLE DOP
+A111 ; [.3D39.0020.0002] # YI SYLLABLE DEX
+A112 ; [.3D3A.0020.0002] # YI SYLLABLE DE
+A113 ; [.3D3B.0020.0002] # YI SYLLABLE DEP
+A114 ; [.3D3C.0020.0002] # YI SYLLABLE DUT
+A115 ; [.3D3D.0020.0002] # YI SYLLABLE DUX
+A116 ; [.3D3E.0020.0002] # YI SYLLABLE DU
+A117 ; [.3D3F.0020.0002] # YI SYLLABLE DUP
+A118 ; [.3D40.0020.0002] # YI SYLLABLE DURX
+A119 ; [.3D41.0020.0002] # YI SYLLABLE DUR
+A11A ; [.3D42.0020.0002] # YI SYLLABLE TIT
+A11B ; [.3D43.0020.0002] # YI SYLLABLE TIX
+A11C ; [.3D44.0020.0002] # YI SYLLABLE TI
+A11D ; [.3D45.0020.0002] # YI SYLLABLE TIP
+A11E ; [.3D46.0020.0002] # YI SYLLABLE TIEX
+A11F ; [.3D47.0020.0002] # YI SYLLABLE TIE
+A120 ; [.3D48.0020.0002] # YI SYLLABLE TIEP
+A121 ; [.3D49.0020.0002] # YI SYLLABLE TAT
+A122 ; [.3D4A.0020.0002] # YI SYLLABLE TAX
+A123 ; [.3D4B.0020.0002] # YI SYLLABLE TA
+A124 ; [.3D4C.0020.0002] # YI SYLLABLE TAP
+A125 ; [.3D4D.0020.0002] # YI SYLLABLE TUOT
+A126 ; [.3D4E.0020.0002] # YI SYLLABLE TUOX
+A127 ; [.3D4F.0020.0002] # YI SYLLABLE TUO
+A128 ; [.3D50.0020.0002] # YI SYLLABLE TUOP
+A129 ; [.3D51.0020.0002] # YI SYLLABLE TOT
+A12A ; [.3D52.0020.0002] # YI SYLLABLE TOX
+A12B ; [.3D53.0020.0002] # YI SYLLABLE TO
+A12C ; [.3D54.0020.0002] # YI SYLLABLE TOP
+A12D ; [.3D55.0020.0002] # YI SYLLABLE TEX
+A12E ; [.3D56.0020.0002] # YI SYLLABLE TE
+A12F ; [.3D57.0020.0002] # YI SYLLABLE TEP
+A130 ; [.3D58.0020.0002] # YI SYLLABLE TUT
+A131 ; [.3D59.0020.0002] # YI SYLLABLE TUX
+A132 ; [.3D5A.0020.0002] # YI SYLLABLE TU
+A133 ; [.3D5B.0020.0002] # YI SYLLABLE TUP
+A134 ; [.3D5C.0020.0002] # YI SYLLABLE TURX
+A135 ; [.3D5D.0020.0002] # YI SYLLABLE TUR
+A136 ; [.3D5E.0020.0002] # YI SYLLABLE DDIT
+A137 ; [.3D5F.0020.0002] # YI SYLLABLE DDIX
+A138 ; [.3D60.0020.0002] # YI SYLLABLE DDI
+A139 ; [.3D61.0020.0002] # YI SYLLABLE DDIP
+A13A ; [.3D62.0020.0002] # YI SYLLABLE DDIEX
+A13B ; [.3D63.0020.0002] # YI SYLLABLE DDIE
+A13C ; [.3D64.0020.0002] # YI SYLLABLE DDIEP
+A13D ; [.3D65.0020.0002] # YI SYLLABLE DDAT
+A13E ; [.3D66.0020.0002] # YI SYLLABLE DDAX
+A13F ; [.3D67.0020.0002] # YI SYLLABLE DDA
+A140 ; [.3D68.0020.0002] # YI SYLLABLE DDAP
+A141 ; [.3D69.0020.0002] # YI SYLLABLE DDUOX
+A142 ; [.3D6A.0020.0002] # YI SYLLABLE DDUO
+A143 ; [.3D6B.0020.0002] # YI SYLLABLE DDUOP
+A144 ; [.3D6C.0020.0002] # YI SYLLABLE DDOT
+A145 ; [.3D6D.0020.0002] # YI SYLLABLE DDOX
+A146 ; [.3D6E.0020.0002] # YI SYLLABLE DDO
+A147 ; [.3D6F.0020.0002] # YI SYLLABLE DDOP
+A148 ; [.3D70.0020.0002] # YI SYLLABLE DDEX
+A149 ; [.3D71.0020.0002] # YI SYLLABLE DDE
+A14A ; [.3D72.0020.0002] # YI SYLLABLE DDEP
+A14B ; [.3D73.0020.0002] # YI SYLLABLE DDUT
+A14C ; [.3D74.0020.0002] # YI SYLLABLE DDUX
+A14D ; [.3D75.0020.0002] # YI SYLLABLE DDU
+A14E ; [.3D76.0020.0002] # YI SYLLABLE DDUP
+A14F ; [.3D77.0020.0002] # YI SYLLABLE DDURX
+A150 ; [.3D78.0020.0002] # YI SYLLABLE DDUR
+A151 ; [.3D79.0020.0002] # YI SYLLABLE NDIT
+A152 ; [.3D7A.0020.0002] # YI SYLLABLE NDIX
+A153 ; [.3D7B.0020.0002] # YI SYLLABLE NDI
+A154 ; [.3D7C.0020.0002] # YI SYLLABLE NDIP
+A155 ; [.3D7D.0020.0002] # YI SYLLABLE NDIEX
+A156 ; [.3D7E.0020.0002] # YI SYLLABLE NDIE
+A157 ; [.3D7F.0020.0002] # YI SYLLABLE NDAT
+A158 ; [.3D80.0020.0002] # YI SYLLABLE NDAX
+A159 ; [.3D81.0020.0002] # YI SYLLABLE NDA
+A15A ; [.3D82.0020.0002] # YI SYLLABLE NDAP
+A15B ; [.3D83.0020.0002] # YI SYLLABLE NDOT
+A15C ; [.3D84.0020.0002] # YI SYLLABLE NDOX
+A15D ; [.3D85.0020.0002] # YI SYLLABLE NDO
+A15E ; [.3D86.0020.0002] # YI SYLLABLE NDOP
+A15F ; [.3D87.0020.0002] # YI SYLLABLE NDEX
+A160 ; [.3D88.0020.0002] # YI SYLLABLE NDE
+A161 ; [.3D89.0020.0002] # YI SYLLABLE NDEP
+A162 ; [.3D8A.0020.0002] # YI SYLLABLE NDUT
+A163 ; [.3D8B.0020.0002] # YI SYLLABLE NDUX
+A164 ; [.3D8C.0020.0002] # YI SYLLABLE NDU
+A165 ; [.3D8D.0020.0002] # YI SYLLABLE NDUP
+A166 ; [.3D8E.0020.0002] # YI SYLLABLE NDURX
+A167 ; [.3D8F.0020.0002] # YI SYLLABLE NDUR
+A168 ; [.3D90.0020.0002] # YI SYLLABLE HNIT
+A169 ; [.3D91.0020.0002] # YI SYLLABLE HNIX
+A16A ; [.3D92.0020.0002] # YI SYLLABLE HNI
+A16B ; [.3D93.0020.0002] # YI SYLLABLE HNIP
+A16C ; [.3D94.0020.0002] # YI SYLLABLE HNIET
+A16D ; [.3D95.0020.0002] # YI SYLLABLE HNIEX
+A16E ; [.3D96.0020.0002] # YI SYLLABLE HNIE
+A16F ; [.3D97.0020.0002] # YI SYLLABLE HNIEP
+A170 ; [.3D98.0020.0002] # YI SYLLABLE HNAT
+A171 ; [.3D99.0020.0002] # YI SYLLABLE HNAX
+A172 ; [.3D9A.0020.0002] # YI SYLLABLE HNA
+A173 ; [.3D9B.0020.0002] # YI SYLLABLE HNAP
+A174 ; [.3D9C.0020.0002] # YI SYLLABLE HNUOX
+A175 ; [.3D9D.0020.0002] # YI SYLLABLE HNUO
+A176 ; [.3D9E.0020.0002] # YI SYLLABLE HNOT
+A177 ; [.3D9F.0020.0002] # YI SYLLABLE HNOX
+A178 ; [.3DA0.0020.0002] # YI SYLLABLE HNOP
+A179 ; [.3DA1.0020.0002] # YI SYLLABLE HNEX
+A17A ; [.3DA2.0020.0002] # YI SYLLABLE HNE
+A17B ; [.3DA3.0020.0002] # YI SYLLABLE HNEP
+A17C ; [.3DA4.0020.0002] # YI SYLLABLE HNUT
+A17D ; [.3DA5.0020.0002] # YI SYLLABLE NIT
+A17E ; [.3DA6.0020.0002] # YI SYLLABLE NIX
+A17F ; [.3DA7.0020.0002] # YI SYLLABLE NI
+A180 ; [.3DA8.0020.0002] # YI SYLLABLE NIP
+A181 ; [.3DA9.0020.0002] # YI SYLLABLE NIEX
+A182 ; [.3DAA.0020.0002] # YI SYLLABLE NIE
+A183 ; [.3DAB.0020.0002] # YI SYLLABLE NIEP
+A184 ; [.3DAC.0020.0002] # YI SYLLABLE NAX
+A185 ; [.3DAD.0020.0002] # YI SYLLABLE NA
+A186 ; [.3DAE.0020.0002] # YI SYLLABLE NAP
+A187 ; [.3DAF.0020.0002] # YI SYLLABLE NUOX
+A188 ; [.3DB0.0020.0002] # YI SYLLABLE NUO
+A189 ; [.3DB1.0020.0002] # YI SYLLABLE NUOP
+A18A ; [.3DB2.0020.0002] # YI SYLLABLE NOT
+A18B ; [.3DB3.0020.0002] # YI SYLLABLE NOX
+A18C ; [.3DB4.0020.0002] # YI SYLLABLE NO
+A18D ; [.3DB5.0020.0002] # YI SYLLABLE NOP
+A18E ; [.3DB6.0020.0002] # YI SYLLABLE NEX
+A18F ; [.3DB7.0020.0002] # YI SYLLABLE NE
+A190 ; [.3DB8.0020.0002] # YI SYLLABLE NEP
+A191 ; [.3DB9.0020.0002] # YI SYLLABLE NUT
+A192 ; [.3DBA.0020.0002] # YI SYLLABLE NUX
+A193 ; [.3DBB.0020.0002] # YI SYLLABLE NU
+A194 ; [.3DBC.0020.0002] # YI SYLLABLE NUP
+A195 ; [.3DBD.0020.0002] # YI SYLLABLE NURX
+A196 ; [.3DBE.0020.0002] # YI SYLLABLE NUR
+A197 ; [.3DBF.0020.0002] # YI SYLLABLE HLIT
+A198 ; [.3DC0.0020.0002] # YI SYLLABLE HLIX
+A199 ; [.3DC1.0020.0002] # YI SYLLABLE HLI
+A19A ; [.3DC2.0020.0002] # YI SYLLABLE HLIP
+A19B ; [.3DC3.0020.0002] # YI SYLLABLE HLIEX
+A19C ; [.3DC4.0020.0002] # YI SYLLABLE HLIE
+A19D ; [.3DC5.0020.0002] # YI SYLLABLE HLIEP
+A19E ; [.3DC6.0020.0002] # YI SYLLABLE HLAT
+A19F ; [.3DC7.0020.0002] # YI SYLLABLE HLAX
+A1A0 ; [.3DC8.0020.0002] # YI SYLLABLE HLA
+A1A1 ; [.3DC9.0020.0002] # YI SYLLABLE HLAP
+A1A2 ; [.3DCA.0020.0002] # YI SYLLABLE HLUOX
+A1A3 ; [.3DCB.0020.0002] # YI SYLLABLE HLUO
+A1A4 ; [.3DCC.0020.0002] # YI SYLLABLE HLUOP
+A1A5 ; [.3DCD.0020.0002] # YI SYLLABLE HLOX
+A1A6 ; [.3DCE.0020.0002] # YI SYLLABLE HLO
+A1A7 ; [.3DCF.0020.0002] # YI SYLLABLE HLOP
+A1A8 ; [.3DD0.0020.0002] # YI SYLLABLE HLEX
+A1A9 ; [.3DD1.0020.0002] # YI SYLLABLE HLE
+A1AA ; [.3DD2.0020.0002] # YI SYLLABLE HLEP
+A1AB ; [.3DD3.0020.0002] # YI SYLLABLE HLUT
+A1AC ; [.3DD4.0020.0002] # YI SYLLABLE HLUX
+A1AD ; [.3DD5.0020.0002] # YI SYLLABLE HLU
+A1AE ; [.3DD6.0020.0002] # YI SYLLABLE HLUP
+A1AF ; [.3DD7.0020.0002] # YI SYLLABLE HLURX
+A1B0 ; [.3DD8.0020.0002] # YI SYLLABLE HLUR
+A1B1 ; [.3DD9.0020.0002] # YI SYLLABLE HLYT
+A1B2 ; [.3DDA.0020.0002] # YI SYLLABLE HLYX
+A1B3 ; [.3DDB.0020.0002] # YI SYLLABLE HLY
+A1B4 ; [.3DDC.0020.0002] # YI SYLLABLE HLYP
+A1B5 ; [.3DDD.0020.0002] # YI SYLLABLE HLYRX
+A1B6 ; [.3DDE.0020.0002] # YI SYLLABLE HLYR
+A1B7 ; [.3DDF.0020.0002] # YI SYLLABLE LIT
+A1B8 ; [.3DE0.0020.0002] # YI SYLLABLE LIX
+A1B9 ; [.3DE1.0020.0002] # YI SYLLABLE LI
+A1BA ; [.3DE2.0020.0002] # YI SYLLABLE LIP
+A1BB ; [.3DE3.0020.0002] # YI SYLLABLE LIET
+A1BC ; [.3DE4.0020.0002] # YI SYLLABLE LIEX
+A1BD ; [.3DE5.0020.0002] # YI SYLLABLE LIE
+A1BE ; [.3DE6.0020.0002] # YI SYLLABLE LIEP
+A1BF ; [.3DE7.0020.0002] # YI SYLLABLE LAT
+A1C0 ; [.3DE8.0020.0002] # YI SYLLABLE LAX
+A1C1 ; [.3DE9.0020.0002] # YI SYLLABLE LA
+A1C2 ; [.3DEA.0020.0002] # YI SYLLABLE LAP
+A1C3 ; [.3DEB.0020.0002] # YI SYLLABLE LUOT
+A1C4 ; [.3DEC.0020.0002] # YI SYLLABLE LUOX
+A1C5 ; [.3DED.0020.0002] # YI SYLLABLE LUO
+A1C6 ; [.3DEE.0020.0002] # YI SYLLABLE LUOP
+A1C7 ; [.3DEF.0020.0002] # YI SYLLABLE LOT
+A1C8 ; [.3DF0.0020.0002] # YI SYLLABLE LOX
+A1C9 ; [.3DF1.0020.0002] # YI SYLLABLE LO
+A1CA ; [.3DF2.0020.0002] # YI SYLLABLE LOP
+A1CB ; [.3DF3.0020.0002] # YI SYLLABLE LEX
+A1CC ; [.3DF4.0020.0002] # YI SYLLABLE LE
+A1CD ; [.3DF5.0020.0002] # YI SYLLABLE LEP
+A1CE ; [.3DF6.0020.0002] # YI SYLLABLE LUT
+A1CF ; [.3DF7.0020.0002] # YI SYLLABLE LUX
+A1D0 ; [.3DF8.0020.0002] # YI SYLLABLE LU
+A1D1 ; [.3DF9.0020.0002] # YI SYLLABLE LUP
+A1D2 ; [.3DFA.0020.0002] # YI SYLLABLE LURX
+A1D3 ; [.3DFB.0020.0002] # YI SYLLABLE LUR
+A1D4 ; [.3DFC.0020.0002] # YI SYLLABLE LYT
+A1D5 ; [.3DFD.0020.0002] # YI SYLLABLE LYX
+A1D6 ; [.3DFE.0020.0002] # YI SYLLABLE LY
+A1D7 ; [.3DFF.0020.0002] # YI SYLLABLE LYP
+A1D8 ; [.3E00.0020.0002] # YI SYLLABLE LYRX
+A1D9 ; [.3E01.0020.0002] # YI SYLLABLE LYR
+A1DA ; [.3E02.0020.0002] # YI SYLLABLE GIT
+A1DB ; [.3E03.0020.0002] # YI SYLLABLE GIX
+A1DC ; [.3E04.0020.0002] # YI SYLLABLE GI
+A1DD ; [.3E05.0020.0002] # YI SYLLABLE GIP
+A1DE ; [.3E06.0020.0002] # YI SYLLABLE GIET
+A1DF ; [.3E07.0020.0002] # YI SYLLABLE GIEX
+A1E0 ; [.3E08.0020.0002] # YI SYLLABLE GIE
+A1E1 ; [.3E09.0020.0002] # YI SYLLABLE GIEP
+A1E2 ; [.3E0A.0020.0002] # YI SYLLABLE GAT
+A1E3 ; [.3E0B.0020.0002] # YI SYLLABLE GAX
+A1E4 ; [.3E0C.0020.0002] # YI SYLLABLE GA
+A1E5 ; [.3E0D.0020.0002] # YI SYLLABLE GAP
+A1E6 ; [.3E0E.0020.0002] # YI SYLLABLE GUOT
+A1E7 ; [.3E0F.0020.0002] # YI SYLLABLE GUOX
+A1E8 ; [.3E10.0020.0002] # YI SYLLABLE GUO
+A1E9 ; [.3E11.0020.0002] # YI SYLLABLE GUOP
+A1EA ; [.3E12.0020.0002] # YI SYLLABLE GOT
+A1EB ; [.3E13.0020.0002] # YI SYLLABLE GOX
+A1EC ; [.3E14.0020.0002] # YI SYLLABLE GO
+A1ED ; [.3E15.0020.0002] # YI SYLLABLE GOP
+A1EE ; [.3E16.0020.0002] # YI SYLLABLE GET
+A1EF ; [.3E17.0020.0002] # YI SYLLABLE GEX
+A1F0 ; [.3E18.0020.0002] # YI SYLLABLE GE
+A1F1 ; [.3E19.0020.0002] # YI SYLLABLE GEP
+A1F2 ; [.3E1A.0020.0002] # YI SYLLABLE GUT
+A1F3 ; [.3E1B.0020.0002] # YI SYLLABLE GUX
+A1F4 ; [.3E1C.0020.0002] # YI SYLLABLE GU
+A1F5 ; [.3E1D.0020.0002] # YI SYLLABLE GUP
+A1F6 ; [.3E1E.0020.0002] # YI SYLLABLE GURX
+A1F7 ; [.3E1F.0020.0002] # YI SYLLABLE GUR
+A1F8 ; [.3E20.0020.0002] # YI SYLLABLE KIT
+A1F9 ; [.3E21.0020.0002] # YI SYLLABLE KIX
+A1FA ; [.3E22.0020.0002] # YI SYLLABLE KI
+A1FB ; [.3E23.0020.0002] # YI SYLLABLE KIP
+A1FC ; [.3E24.0020.0002] # YI SYLLABLE KIEX
+A1FD ; [.3E25.0020.0002] # YI SYLLABLE KIE
+A1FE ; [.3E26.0020.0002] # YI SYLLABLE KIEP
+A1FF ; [.3E27.0020.0002] # YI SYLLABLE KAT
+A200 ; [.3E28.0020.0002] # YI SYLLABLE KAX
+A201 ; [.3E29.0020.0002] # YI SYLLABLE KA
+A202 ; [.3E2A.0020.0002] # YI SYLLABLE KAP
+A203 ; [.3E2B.0020.0002] # YI SYLLABLE KUOX
+A204 ; [.3E2C.0020.0002] # YI SYLLABLE KUO
+A205 ; [.3E2D.0020.0002] # YI SYLLABLE KUOP
+A206 ; [.3E2E.0020.0002] # YI SYLLABLE KOT
+A207 ; [.3E2F.0020.0002] # YI SYLLABLE KOX
+A208 ; [.3E30.0020.0002] # YI SYLLABLE KO
+A209 ; [.3E31.0020.0002] # YI SYLLABLE KOP
+A20A ; [.3E32.0020.0002] # YI SYLLABLE KET
+A20B ; [.3E33.0020.0002] # YI SYLLABLE KEX
+A20C ; [.3E34.0020.0002] # YI SYLLABLE KE
+A20D ; [.3E35.0020.0002] # YI SYLLABLE KEP
+A20E ; [.3E36.0020.0002] # YI SYLLABLE KUT
+A20F ; [.3E37.0020.0002] # YI SYLLABLE KUX
+A210 ; [.3E38.0020.0002] # YI SYLLABLE KU
+A211 ; [.3E39.0020.0002] # YI SYLLABLE KUP
+A212 ; [.3E3A.0020.0002] # YI SYLLABLE KURX
+A213 ; [.3E3B.0020.0002] # YI SYLLABLE KUR
+A214 ; [.3E3C.0020.0002] # YI SYLLABLE GGIT
+A215 ; [.3E3D.0020.0002] # YI SYLLABLE GGIX
+A216 ; [.3E3E.0020.0002] # YI SYLLABLE GGI
+A217 ; [.3E3F.0020.0002] # YI SYLLABLE GGIEX
+A218 ; [.3E40.0020.0002] # YI SYLLABLE GGIE
+A219 ; [.3E41.0020.0002] # YI SYLLABLE GGIEP
+A21A ; [.3E42.0020.0002] # YI SYLLABLE GGAT
+A21B ; [.3E43.0020.0002] # YI SYLLABLE GGAX
+A21C ; [.3E44.0020.0002] # YI SYLLABLE GGA
+A21D ; [.3E45.0020.0002] # YI SYLLABLE GGAP
+A21E ; [.3E46.0020.0002] # YI SYLLABLE GGUOT
+A21F ; [.3E47.0020.0002] # YI SYLLABLE GGUOX
+A220 ; [.3E48.0020.0002] # YI SYLLABLE GGUO
+A221 ; [.3E49.0020.0002] # YI SYLLABLE GGUOP
+A222 ; [.3E4A.0020.0002] # YI SYLLABLE GGOT
+A223 ; [.3E4B.0020.0002] # YI SYLLABLE GGOX
+A224 ; [.3E4C.0020.0002] # YI SYLLABLE GGO
+A225 ; [.3E4D.0020.0002] # YI SYLLABLE GGOP
+A226 ; [.3E4E.0020.0002] # YI SYLLABLE GGET
+A227 ; [.3E4F.0020.0002] # YI SYLLABLE GGEX
+A228 ; [.3E50.0020.0002] # YI SYLLABLE GGE
+A229 ; [.3E51.0020.0002] # YI SYLLABLE GGEP
+A22A ; [.3E52.0020.0002] # YI SYLLABLE GGUT
+A22B ; [.3E53.0020.0002] # YI SYLLABLE GGUX
+A22C ; [.3E54.0020.0002] # YI SYLLABLE GGU
+A22D ; [.3E55.0020.0002] # YI SYLLABLE GGUP
+A22E ; [.3E56.0020.0002] # YI SYLLABLE GGURX
+A22F ; [.3E57.0020.0002] # YI SYLLABLE GGUR
+A230 ; [.3E58.0020.0002] # YI SYLLABLE MGIEX
+A231 ; [.3E59.0020.0002] # YI SYLLABLE MGIE
+A232 ; [.3E5A.0020.0002] # YI SYLLABLE MGAT
+A233 ; [.3E5B.0020.0002] # YI SYLLABLE MGAX
+A234 ; [.3E5C.0020.0002] # YI SYLLABLE MGA
+A235 ; [.3E5D.0020.0002] # YI SYLLABLE MGAP
+A236 ; [.3E5E.0020.0002] # YI SYLLABLE MGUOX
+A237 ; [.3E5F.0020.0002] # YI SYLLABLE MGUO
+A238 ; [.3E60.0020.0002] # YI SYLLABLE MGUOP
+A239 ; [.3E61.0020.0002] # YI SYLLABLE MGOT
+A23A ; [.3E62.0020.0002] # YI SYLLABLE MGOX
+A23B ; [.3E63.0020.0002] # YI SYLLABLE MGO
+A23C ; [.3E64.0020.0002] # YI SYLLABLE MGOP
+A23D ; [.3E65.0020.0002] # YI SYLLABLE MGEX
+A23E ; [.3E66.0020.0002] # YI SYLLABLE MGE
+A23F ; [.3E67.0020.0002] # YI SYLLABLE MGEP
+A240 ; [.3E68.0020.0002] # YI SYLLABLE MGUT
+A241 ; [.3E69.0020.0002] # YI SYLLABLE MGUX
+A242 ; [.3E6A.0020.0002] # YI SYLLABLE MGU
+A243 ; [.3E6B.0020.0002] # YI SYLLABLE MGUP
+A244 ; [.3E6C.0020.0002] # YI SYLLABLE MGURX
+A245 ; [.3E6D.0020.0002] # YI SYLLABLE MGUR
+A246 ; [.3E6E.0020.0002] # YI SYLLABLE HXIT
+A247 ; [.3E6F.0020.0002] # YI SYLLABLE HXIX
+A248 ; [.3E70.0020.0002] # YI SYLLABLE HXI
+A249 ; [.3E71.0020.0002] # YI SYLLABLE HXIP
+A24A ; [.3E72.0020.0002] # YI SYLLABLE HXIET
+A24B ; [.3E73.0020.0002] # YI SYLLABLE HXIEX
+A24C ; [.3E74.0020.0002] # YI SYLLABLE HXIE
+A24D ; [.3E75.0020.0002] # YI SYLLABLE HXIEP
+A24E ; [.3E76.0020.0002] # YI SYLLABLE HXAT
+A24F ; [.3E77.0020.0002] # YI SYLLABLE HXAX
+A250 ; [.3E78.0020.0002] # YI SYLLABLE HXA
+A251 ; [.3E79.0020.0002] # YI SYLLABLE HXAP
+A252 ; [.3E7A.0020.0002] # YI SYLLABLE HXUOT
+A253 ; [.3E7B.0020.0002] # YI SYLLABLE HXUOX
+A254 ; [.3E7C.0020.0002] # YI SYLLABLE HXUO
+A255 ; [.3E7D.0020.0002] # YI SYLLABLE HXUOP
+A256 ; [.3E7E.0020.0002] # YI SYLLABLE HXOT
+A257 ; [.3E7F.0020.0002] # YI SYLLABLE HXOX
+A258 ; [.3E80.0020.0002] # YI SYLLABLE HXO
+A259 ; [.3E81.0020.0002] # YI SYLLABLE HXOP
+A25A ; [.3E82.0020.0002] # YI SYLLABLE HXEX
+A25B ; [.3E83.0020.0002] # YI SYLLABLE HXE
+A25C ; [.3E84.0020.0002] # YI SYLLABLE HXEP
+A25D ; [.3E85.0020.0002] # YI SYLLABLE NGIEX
+A25E ; [.3E86.0020.0002] # YI SYLLABLE NGIE
+A25F ; [.3E87.0020.0002] # YI SYLLABLE NGIEP
+A260 ; [.3E88.0020.0002] # YI SYLLABLE NGAT
+A261 ; [.3E89.0020.0002] # YI SYLLABLE NGAX
+A262 ; [.3E8A.0020.0002] # YI SYLLABLE NGA
+A263 ; [.3E8B.0020.0002] # YI SYLLABLE NGAP
+A264 ; [.3E8C.0020.0002] # YI SYLLABLE NGUOT
+A265 ; [.3E8D.0020.0002] # YI SYLLABLE NGUOX
+A266 ; [.3E8E.0020.0002] # YI SYLLABLE NGUO
+A267 ; [.3E8F.0020.0002] # YI SYLLABLE NGOT
+A268 ; [.3E90.0020.0002] # YI SYLLABLE NGOX
+A269 ; [.3E91.0020.0002] # YI SYLLABLE NGO
+A26A ; [.3E92.0020.0002] # YI SYLLABLE NGOP
+A26B ; [.3E93.0020.0002] # YI SYLLABLE NGEX
+A26C ; [.3E94.0020.0002] # YI SYLLABLE NGE
+A26D ; [.3E95.0020.0002] # YI SYLLABLE NGEP
+A26E ; [.3E96.0020.0002] # YI SYLLABLE HIT
+A26F ; [.3E97.0020.0002] # YI SYLLABLE HIEX
+A270 ; [.3E98.0020.0002] # YI SYLLABLE HIE
+A271 ; [.3E99.0020.0002] # YI SYLLABLE HAT
+A272 ; [.3E9A.0020.0002] # YI SYLLABLE HAX
+A273 ; [.3E9B.0020.0002] # YI SYLLABLE HA
+A274 ; [.3E9C.0020.0002] # YI SYLLABLE HAP
+A275 ; [.3E9D.0020.0002] # YI SYLLABLE HUOT
+A276 ; [.3E9E.0020.0002] # YI SYLLABLE HUOX
+A277 ; [.3E9F.0020.0002] # YI SYLLABLE HUO
+A278 ; [.3EA0.0020.0002] # YI SYLLABLE HUOP
+A279 ; [.3EA1.0020.0002] # YI SYLLABLE HOT
+A27A ; [.3EA2.0020.0002] # YI SYLLABLE HOX
+A27B ; [.3EA3.0020.0002] # YI SYLLABLE HO
+A27C ; [.3EA4.0020.0002] # YI SYLLABLE HOP
+A27D ; [.3EA5.0020.0002] # YI SYLLABLE HEX
+A27E ; [.3EA6.0020.0002] # YI SYLLABLE HE
+A27F ; [.3EA7.0020.0002] # YI SYLLABLE HEP
+A280 ; [.3EA8.0020.0002] # YI SYLLABLE WAT
+A281 ; [.3EA9.0020.0002] # YI SYLLABLE WAX
+A282 ; [.3EAA.0020.0002] # YI SYLLABLE WA
+A283 ; [.3EAB.0020.0002] # YI SYLLABLE WAP
+A284 ; [.3EAC.0020.0002] # YI SYLLABLE WUOX
+A285 ; [.3EAD.0020.0002] # YI SYLLABLE WUO
+A286 ; [.3EAE.0020.0002] # YI SYLLABLE WUOP
+A287 ; [.3EAF.0020.0002] # YI SYLLABLE WOX
+A288 ; [.3EB0.0020.0002] # YI SYLLABLE WO
+A289 ; [.3EB1.0020.0002] # YI SYLLABLE WOP
+A28A ; [.3EB2.0020.0002] # YI SYLLABLE WEX
+A28B ; [.3EB3.0020.0002] # YI SYLLABLE WE
+A28C ; [.3EB4.0020.0002] # YI SYLLABLE WEP
+A28D ; [.3EB5.0020.0002] # YI SYLLABLE ZIT
+A28E ; [.3EB6.0020.0002] # YI SYLLABLE ZIX
+A28F ; [.3EB7.0020.0002] # YI SYLLABLE ZI
+A290 ; [.3EB8.0020.0002] # YI SYLLABLE ZIP
+A291 ; [.3EB9.0020.0002] # YI SYLLABLE ZIEX
+A292 ; [.3EBA.0020.0002] # YI SYLLABLE ZIE
+A293 ; [.3EBB.0020.0002] # YI SYLLABLE ZIEP
+A294 ; [.3EBC.0020.0002] # YI SYLLABLE ZAT
+A295 ; [.3EBD.0020.0002] # YI SYLLABLE ZAX
+A296 ; [.3EBE.0020.0002] # YI SYLLABLE ZA
+A297 ; [.3EBF.0020.0002] # YI SYLLABLE ZAP
+A298 ; [.3EC0.0020.0002] # YI SYLLABLE ZUOX
+A299 ; [.3EC1.0020.0002] # YI SYLLABLE ZUO
+A29A ; [.3EC2.0020.0002] # YI SYLLABLE ZUOP
+A29B ; [.3EC3.0020.0002] # YI SYLLABLE ZOT
+A29C ; [.3EC4.0020.0002] # YI SYLLABLE ZOX
+A29D ; [.3EC5.0020.0002] # YI SYLLABLE ZO
+A29E ; [.3EC6.0020.0002] # YI SYLLABLE ZOP
+A29F ; [.3EC7.0020.0002] # YI SYLLABLE ZEX
+A2A0 ; [.3EC8.0020.0002] # YI SYLLABLE ZE
+A2A1 ; [.3EC9.0020.0002] # YI SYLLABLE ZEP
+A2A2 ; [.3ECA.0020.0002] # YI SYLLABLE ZUT
+A2A3 ; [.3ECB.0020.0002] # YI SYLLABLE ZUX
+A2A4 ; [.3ECC.0020.0002] # YI SYLLABLE ZU
+A2A5 ; [.3ECD.0020.0002] # YI SYLLABLE ZUP
+A2A6 ; [.3ECE.0020.0002] # YI SYLLABLE ZURX
+A2A7 ; [.3ECF.0020.0002] # YI SYLLABLE ZUR
+A2A8 ; [.3ED0.0020.0002] # YI SYLLABLE ZYT
+A2A9 ; [.3ED1.0020.0002] # YI SYLLABLE ZYX
+A2AA ; [.3ED2.0020.0002] # YI SYLLABLE ZY
+A2AB ; [.3ED3.0020.0002] # YI SYLLABLE ZYP
+A2AC ; [.3ED4.0020.0002] # YI SYLLABLE ZYRX
+A2AD ; [.3ED5.0020.0002] # YI SYLLABLE ZYR
+A2AE ; [.3ED6.0020.0002] # YI SYLLABLE CIT
+A2AF ; [.3ED7.0020.0002] # YI SYLLABLE CIX
+A2B0 ; [.3ED8.0020.0002] # YI SYLLABLE CI
+A2B1 ; [.3ED9.0020.0002] # YI SYLLABLE CIP
+A2B2 ; [.3EDA.0020.0002] # YI SYLLABLE CIET
+A2B3 ; [.3EDB.0020.0002] # YI SYLLABLE CIEX
+A2B4 ; [.3EDC.0020.0002] # YI SYLLABLE CIE
+A2B5 ; [.3EDD.0020.0002] # YI SYLLABLE CIEP
+A2B6 ; [.3EDE.0020.0002] # YI SYLLABLE CAT
+A2B7 ; [.3EDF.0020.0002] # YI SYLLABLE CAX
+A2B8 ; [.3EE0.0020.0002] # YI SYLLABLE CA
+A2B9 ; [.3EE1.0020.0002] # YI SYLLABLE CAP
+A2BA ; [.3EE2.0020.0002] # YI SYLLABLE CUOX
+A2BB ; [.3EE3.0020.0002] # YI SYLLABLE CUO
+A2BC ; [.3EE4.0020.0002] # YI SYLLABLE CUOP
+A2BD ; [.3EE5.0020.0002] # YI SYLLABLE COT
+A2BE ; [.3EE6.0020.0002] # YI SYLLABLE COX
+A2BF ; [.3EE7.0020.0002] # YI SYLLABLE CO
+A2C0 ; [.3EE8.0020.0002] # YI SYLLABLE COP
+A2C1 ; [.3EE9.0020.0002] # YI SYLLABLE CEX
+A2C2 ; [.3EEA.0020.0002] # YI SYLLABLE CE
+A2C3 ; [.3EEB.0020.0002] # YI SYLLABLE CEP
+A2C4 ; [.3EEC.0020.0002] # YI SYLLABLE CUT
+A2C5 ; [.3EED.0020.0002] # YI SYLLABLE CUX
+A2C6 ; [.3EEE.0020.0002] # YI SYLLABLE CU
+A2C7 ; [.3EEF.0020.0002] # YI SYLLABLE CUP
+A2C8 ; [.3EF0.0020.0002] # YI SYLLABLE CURX
+A2C9 ; [.3EF1.0020.0002] # YI SYLLABLE CUR
+A2CA ; [.3EF2.0020.0002] # YI SYLLABLE CYT
+A2CB ; [.3EF3.0020.0002] # YI SYLLABLE CYX
+A2CC ; [.3EF4.0020.0002] # YI SYLLABLE CY
+A2CD ; [.3EF5.0020.0002] # YI SYLLABLE CYP
+A2CE ; [.3EF6.0020.0002] # YI SYLLABLE CYRX
+A2CF ; [.3EF7.0020.0002] # YI SYLLABLE CYR
+A2D0 ; [.3EF8.0020.0002] # YI SYLLABLE ZZIT
+A2D1 ; [.3EF9.0020.0002] # YI SYLLABLE ZZIX
+A2D2 ; [.3EFA.0020.0002] # YI SYLLABLE ZZI
+A2D3 ; [.3EFB.0020.0002] # YI SYLLABLE ZZIP
+A2D4 ; [.3EFC.0020.0002] # YI SYLLABLE ZZIET
+A2D5 ; [.3EFD.0020.0002] # YI SYLLABLE ZZIEX
+A2D6 ; [.3EFE.0020.0002] # YI SYLLABLE ZZIE
+A2D7 ; [.3EFF.0020.0002] # YI SYLLABLE ZZIEP
+A2D8 ; [.3F00.0020.0002] # YI SYLLABLE ZZAT
+A2D9 ; [.3F01.0020.0002] # YI SYLLABLE ZZAX
+A2DA ; [.3F02.0020.0002] # YI SYLLABLE ZZA
+A2DB ; [.3F03.0020.0002] # YI SYLLABLE ZZAP
+A2DC ; [.3F04.0020.0002] # YI SYLLABLE ZZOX
+A2DD ; [.3F05.0020.0002] # YI SYLLABLE ZZO
+A2DE ; [.3F06.0020.0002] # YI SYLLABLE ZZOP
+A2DF ; [.3F07.0020.0002] # YI SYLLABLE ZZEX
+A2E0 ; [.3F08.0020.0002] # YI SYLLABLE ZZE
+A2E1 ; [.3F09.0020.0002] # YI SYLLABLE ZZEP
+A2E2 ; [.3F0A.0020.0002] # YI SYLLABLE ZZUX
+A2E3 ; [.3F0B.0020.0002] # YI SYLLABLE ZZU
+A2E4 ; [.3F0C.0020.0002] # YI SYLLABLE ZZUP
+A2E5 ; [.3F0D.0020.0002] # YI SYLLABLE ZZURX
+A2E6 ; [.3F0E.0020.0002] # YI SYLLABLE ZZUR
+A2E7 ; [.3F0F.0020.0002] # YI SYLLABLE ZZYT
+A2E8 ; [.3F10.0020.0002] # YI SYLLABLE ZZYX
+A2E9 ; [.3F11.0020.0002] # YI SYLLABLE ZZY
+A2EA ; [.3F12.0020.0002] # YI SYLLABLE ZZYP
+A2EB ; [.3F13.0020.0002] # YI SYLLABLE ZZYRX
+A2EC ; [.3F14.0020.0002] # YI SYLLABLE ZZYR
+A2ED ; [.3F15.0020.0002] # YI SYLLABLE NZIT
+A2EE ; [.3F16.0020.0002] # YI SYLLABLE NZIX
+A2EF ; [.3F17.0020.0002] # YI SYLLABLE NZI
+A2F0 ; [.3F18.0020.0002] # YI SYLLABLE NZIP
+A2F1 ; [.3F19.0020.0002] # YI SYLLABLE NZIEX
+A2F2 ; [.3F1A.0020.0002] # YI SYLLABLE NZIE
+A2F3 ; [.3F1B.0020.0002] # YI SYLLABLE NZIEP
+A2F4 ; [.3F1C.0020.0002] # YI SYLLABLE NZAT
+A2F5 ; [.3F1D.0020.0002] # YI SYLLABLE NZAX
+A2F6 ; [.3F1E.0020.0002] # YI SYLLABLE NZA
+A2F7 ; [.3F1F.0020.0002] # YI SYLLABLE NZAP
+A2F8 ; [.3F20.0020.0002] # YI SYLLABLE NZUOX
+A2F9 ; [.3F21.0020.0002] # YI SYLLABLE NZUO
+A2FA ; [.3F22.0020.0002] # YI SYLLABLE NZOX
+A2FB ; [.3F23.0020.0002] # YI SYLLABLE NZOP
+A2FC ; [.3F24.0020.0002] # YI SYLLABLE NZEX
+A2FD ; [.3F25.0020.0002] # YI SYLLABLE NZE
+A2FE ; [.3F26.0020.0002] # YI SYLLABLE NZUX
+A2FF ; [.3F27.0020.0002] # YI SYLLABLE NZU
+A300 ; [.3F28.0020.0002] # YI SYLLABLE NZUP
+A301 ; [.3F29.0020.0002] # YI SYLLABLE NZURX
+A302 ; [.3F2A.0020.0002] # YI SYLLABLE NZUR
+A303 ; [.3F2B.0020.0002] # YI SYLLABLE NZYT
+A304 ; [.3F2C.0020.0002] # YI SYLLABLE NZYX
+A305 ; [.3F2D.0020.0002] # YI SYLLABLE NZY
+A306 ; [.3F2E.0020.0002] # YI SYLLABLE NZYP
+A307 ; [.3F2F.0020.0002] # YI SYLLABLE NZYRX
+A308 ; [.3F30.0020.0002] # YI SYLLABLE NZYR
+A309 ; [.3F31.0020.0002] # YI SYLLABLE SIT
+A30A ; [.3F32.0020.0002] # YI SYLLABLE SIX
+A30B ; [.3F33.0020.0002] # YI SYLLABLE SI
+A30C ; [.3F34.0020.0002] # YI SYLLABLE SIP
+A30D ; [.3F35.0020.0002] # YI SYLLABLE SIEX
+A30E ; [.3F36.0020.0002] # YI SYLLABLE SIE
+A30F ; [.3F37.0020.0002] # YI SYLLABLE SIEP
+A310 ; [.3F38.0020.0002] # YI SYLLABLE SAT
+A311 ; [.3F39.0020.0002] # YI SYLLABLE SAX
+A312 ; [.3F3A.0020.0002] # YI SYLLABLE SA
+A313 ; [.3F3B.0020.0002] # YI SYLLABLE SAP
+A314 ; [.3F3C.0020.0002] # YI SYLLABLE SUOX
+A315 ; [.3F3D.0020.0002] # YI SYLLABLE SUO
+A316 ; [.3F3E.0020.0002] # YI SYLLABLE SUOP
+A317 ; [.3F3F.0020.0002] # YI SYLLABLE SOT
+A318 ; [.3F40.0020.0002] # YI SYLLABLE SOX
+A319 ; [.3F41.0020.0002] # YI SYLLABLE SO
+A31A ; [.3F42.0020.0002] # YI SYLLABLE SOP
+A31B ; [.3F43.0020.0002] # YI SYLLABLE SEX
+A31C ; [.3F44.0020.0002] # YI SYLLABLE SE
+A31D ; [.3F45.0020.0002] # YI SYLLABLE SEP
+A31E ; [.3F46.0020.0002] # YI SYLLABLE SUT
+A31F ; [.3F47.0020.0002] # YI SYLLABLE SUX
+A320 ; [.3F48.0020.0002] # YI SYLLABLE SU
+A321 ; [.3F49.0020.0002] # YI SYLLABLE SUP
+A322 ; [.3F4A.0020.0002] # YI SYLLABLE SURX
+A323 ; [.3F4B.0020.0002] # YI SYLLABLE SUR
+A324 ; [.3F4C.0020.0002] # YI SYLLABLE SYT
+A325 ; [.3F4D.0020.0002] # YI SYLLABLE SYX
+A326 ; [.3F4E.0020.0002] # YI SYLLABLE SY
+A327 ; [.3F4F.0020.0002] # YI SYLLABLE SYP
+A328 ; [.3F50.0020.0002] # YI SYLLABLE SYRX
+A329 ; [.3F51.0020.0002] # YI SYLLABLE SYR
+A32A ; [.3F52.0020.0002] # YI SYLLABLE SSIT
+A32B ; [.3F53.0020.0002] # YI SYLLABLE SSIX
+A32C ; [.3F54.0020.0002] # YI SYLLABLE SSI
+A32D ; [.3F55.0020.0002] # YI SYLLABLE SSIP
+A32E ; [.3F56.0020.0002] # YI SYLLABLE SSIEX
+A32F ; [.3F57.0020.0002] # YI SYLLABLE SSIE
+A330 ; [.3F58.0020.0002] # YI SYLLABLE SSIEP
+A331 ; [.3F59.0020.0002] # YI SYLLABLE SSAT
+A332 ; [.3F5A.0020.0002] # YI SYLLABLE SSAX
+A333 ; [.3F5B.0020.0002] # YI SYLLABLE SSA
+A334 ; [.3F5C.0020.0002] # YI SYLLABLE SSAP
+A335 ; [.3F5D.0020.0002] # YI SYLLABLE SSOT
+A336 ; [.3F5E.0020.0002] # YI SYLLABLE SSOX
+A337 ; [.3F5F.0020.0002] # YI SYLLABLE SSO
+A338 ; [.3F60.0020.0002] # YI SYLLABLE SSOP
+A339 ; [.3F61.0020.0002] # YI SYLLABLE SSEX
+A33A ; [.3F62.0020.0002] # YI SYLLABLE SSE
+A33B ; [.3F63.0020.0002] # YI SYLLABLE SSEP
+A33C ; [.3F64.0020.0002] # YI SYLLABLE SSUT
+A33D ; [.3F65.0020.0002] # YI SYLLABLE SSUX
+A33E ; [.3F66.0020.0002] # YI SYLLABLE SSU
+A33F ; [.3F67.0020.0002] # YI SYLLABLE SSUP
+A340 ; [.3F68.0020.0002] # YI SYLLABLE SSYT
+A341 ; [.3F69.0020.0002] # YI SYLLABLE SSYX
+A342 ; [.3F6A.0020.0002] # YI SYLLABLE SSY
+A343 ; [.3F6B.0020.0002] # YI SYLLABLE SSYP
+A344 ; [.3F6C.0020.0002] # YI SYLLABLE SSYRX
+A345 ; [.3F6D.0020.0002] # YI SYLLABLE SSYR
+A346 ; [.3F6E.0020.0002] # YI SYLLABLE ZHAT
+A347 ; [.3F6F.0020.0002] # YI SYLLABLE ZHAX
+A348 ; [.3F70.0020.0002] # YI SYLLABLE ZHA
+A349 ; [.3F71.0020.0002] # YI SYLLABLE ZHAP
+A34A ; [.3F72.0020.0002] # YI SYLLABLE ZHUOX
+A34B ; [.3F73.0020.0002] # YI SYLLABLE ZHUO
+A34C ; [.3F74.0020.0002] # YI SYLLABLE ZHUOP
+A34D ; [.3F75.0020.0002] # YI SYLLABLE ZHOT
+A34E ; [.3F76.0020.0002] # YI SYLLABLE ZHOX
+A34F ; [.3F77.0020.0002] # YI SYLLABLE ZHO
+A350 ; [.3F78.0020.0002] # YI SYLLABLE ZHOP
+A351 ; [.3F79.0020.0002] # YI SYLLABLE ZHET
+A352 ; [.3F7A.0020.0002] # YI SYLLABLE ZHEX
+A353 ; [.3F7B.0020.0002] # YI SYLLABLE ZHE
+A354 ; [.3F7C.0020.0002] # YI SYLLABLE ZHEP
+A355 ; [.3F7D.0020.0002] # YI SYLLABLE ZHUT
+A356 ; [.3F7E.0020.0002] # YI SYLLABLE ZHUX
+A357 ; [.3F7F.0020.0002] # YI SYLLABLE ZHU
+A358 ; [.3F80.0020.0002] # YI SYLLABLE ZHUP
+A359 ; [.3F81.0020.0002] # YI SYLLABLE ZHURX
+A35A ; [.3F82.0020.0002] # YI SYLLABLE ZHUR
+A35B ; [.3F83.0020.0002] # YI SYLLABLE ZHYT
+A35C ; [.3F84.0020.0002] # YI SYLLABLE ZHYX
+A35D ; [.3F85.0020.0002] # YI SYLLABLE ZHY
+A35E ; [.3F86.0020.0002] # YI SYLLABLE ZHYP
+A35F ; [.3F87.0020.0002] # YI SYLLABLE ZHYRX
+A360 ; [.3F88.0020.0002] # YI SYLLABLE ZHYR
+A361 ; [.3F89.0020.0002] # YI SYLLABLE CHAT
+A362 ; [.3F8A.0020.0002] # YI SYLLABLE CHAX
+A363 ; [.3F8B.0020.0002] # YI SYLLABLE CHA
+A364 ; [.3F8C.0020.0002] # YI SYLLABLE CHAP
+A365 ; [.3F8D.0020.0002] # YI SYLLABLE CHUOT
+A366 ; [.3F8E.0020.0002] # YI SYLLABLE CHUOX
+A367 ; [.3F8F.0020.0002] # YI SYLLABLE CHUO
+A368 ; [.3F90.0020.0002] # YI SYLLABLE CHUOP
+A369 ; [.3F91.0020.0002] # YI SYLLABLE CHOT
+A36A ; [.3F92.0020.0002] # YI SYLLABLE CHOX
+A36B ; [.3F93.0020.0002] # YI SYLLABLE CHO
+A36C ; [.3F94.0020.0002] # YI SYLLABLE CHOP
+A36D ; [.3F95.0020.0002] # YI SYLLABLE CHET
+A36E ; [.3F96.0020.0002] # YI SYLLABLE CHEX
+A36F ; [.3F97.0020.0002] # YI SYLLABLE CHE
+A370 ; [.3F98.0020.0002] # YI SYLLABLE CHEP
+A371 ; [.3F99.0020.0002] # YI SYLLABLE CHUX
+A372 ; [.3F9A.0020.0002] # YI SYLLABLE CHU
+A373 ; [.3F9B.0020.0002] # YI SYLLABLE CHUP
+A374 ; [.3F9C.0020.0002] # YI SYLLABLE CHURX
+A375 ; [.3F9D.0020.0002] # YI SYLLABLE CHUR
+A376 ; [.3F9E.0020.0002] # YI SYLLABLE CHYT
+A377 ; [.3F9F.0020.0002] # YI SYLLABLE CHYX
+A378 ; [.3FA0.0020.0002] # YI SYLLABLE CHY
+A379 ; [.3FA1.0020.0002] # YI SYLLABLE CHYP
+A37A ; [.3FA2.0020.0002] # YI SYLLABLE CHYRX
+A37B ; [.3FA3.0020.0002] # YI SYLLABLE CHYR
+A37C ; [.3FA4.0020.0002] # YI SYLLABLE RRAX
+A37D ; [.3FA5.0020.0002] # YI SYLLABLE RRA
+A37E ; [.3FA6.0020.0002] # YI SYLLABLE RRUOX
+A37F ; [.3FA7.0020.0002] # YI SYLLABLE RRUO
+A380 ; [.3FA8.0020.0002] # YI SYLLABLE RROT
+A381 ; [.3FA9.0020.0002] # YI SYLLABLE RROX
+A382 ; [.3FAA.0020.0002] # YI SYLLABLE RRO
+A383 ; [.3FAB.0020.0002] # YI SYLLABLE RROP
+A384 ; [.3FAC.0020.0002] # YI SYLLABLE RRET
+A385 ; [.3FAD.0020.0002] # YI SYLLABLE RREX
+A386 ; [.3FAE.0020.0002] # YI SYLLABLE RRE
+A387 ; [.3FAF.0020.0002] # YI SYLLABLE RREP
+A388 ; [.3FB0.0020.0002] # YI SYLLABLE RRUT
+A389 ; [.3FB1.0020.0002] # YI SYLLABLE RRUX
+A38A ; [.3FB2.0020.0002] # YI SYLLABLE RRU
+A38B ; [.3FB3.0020.0002] # YI SYLLABLE RRUP
+A38C ; [.3FB4.0020.0002] # YI SYLLABLE RRURX
+A38D ; [.3FB5.0020.0002] # YI SYLLABLE RRUR
+A38E ; [.3FB6.0020.0002] # YI SYLLABLE RRYT
+A38F ; [.3FB7.0020.0002] # YI SYLLABLE RRYX
+A390 ; [.3FB8.0020.0002] # YI SYLLABLE RRY
+A391 ; [.3FB9.0020.0002] # YI SYLLABLE RRYP
+A392 ; [.3FBA.0020.0002] # YI SYLLABLE RRYRX
+A393 ; [.3FBB.0020.0002] # YI SYLLABLE RRYR
+A394 ; [.3FBC.0020.0002] # YI SYLLABLE NRAT
+A395 ; [.3FBD.0020.0002] # YI SYLLABLE NRAX
+A396 ; [.3FBE.0020.0002] # YI SYLLABLE NRA
+A397 ; [.3FBF.0020.0002] # YI SYLLABLE NRAP
+A398 ; [.3FC0.0020.0002] # YI SYLLABLE NROX
+A399 ; [.3FC1.0020.0002] # YI SYLLABLE NRO
+A39A ; [.3FC2.0020.0002] # YI SYLLABLE NROP
+A39B ; [.3FC3.0020.0002] # YI SYLLABLE NRET
+A39C ; [.3FC4.0020.0002] # YI SYLLABLE NREX
+A39D ; [.3FC5.0020.0002] # YI SYLLABLE NRE
+A39E ; [.3FC6.0020.0002] # YI SYLLABLE NREP
+A39F ; [.3FC7.0020.0002] # YI SYLLABLE NRUT
+A3A0 ; [.3FC8.0020.0002] # YI SYLLABLE NRUX
+A3A1 ; [.3FC9.0020.0002] # YI SYLLABLE NRU
+A3A2 ; [.3FCA.0020.0002] # YI SYLLABLE NRUP
+A3A3 ; [.3FCB.0020.0002] # YI SYLLABLE NRURX
+A3A4 ; [.3FCC.0020.0002] # YI SYLLABLE NRUR
+A3A5 ; [.3FCD.0020.0002] # YI SYLLABLE NRYT
+A3A6 ; [.3FCE.0020.0002] # YI SYLLABLE NRYX
+A3A7 ; [.3FCF.0020.0002] # YI SYLLABLE NRY
+A3A8 ; [.3FD0.0020.0002] # YI SYLLABLE NRYP
+A3A9 ; [.3FD1.0020.0002] # YI SYLLABLE NRYRX
+A3AA ; [.3FD2.0020.0002] # YI SYLLABLE NRYR
+A3AB ; [.3FD3.0020.0002] # YI SYLLABLE SHAT
+A3AC ; [.3FD4.0020.0002] # YI SYLLABLE SHAX
+A3AD ; [.3FD5.0020.0002] # YI SYLLABLE SHA
+A3AE ; [.3FD6.0020.0002] # YI SYLLABLE SHAP
+A3AF ; [.3FD7.0020.0002] # YI SYLLABLE SHUOX
+A3B0 ; [.3FD8.0020.0002] # YI SYLLABLE SHUO
+A3B1 ; [.3FD9.0020.0002] # YI SYLLABLE SHUOP
+A3B2 ; [.3FDA.0020.0002] # YI SYLLABLE SHOT
+A3B3 ; [.3FDB.0020.0002] # YI SYLLABLE SHOX
+A3B4 ; [.3FDC.0020.0002] # YI SYLLABLE SHO
+A3B5 ; [.3FDD.0020.0002] # YI SYLLABLE SHOP
+A3B6 ; [.3FDE.0020.0002] # YI SYLLABLE SHET
+A3B7 ; [.3FDF.0020.0002] # YI SYLLABLE SHEX
+A3B8 ; [.3FE0.0020.0002] # YI SYLLABLE SHE
+A3B9 ; [.3FE1.0020.0002] # YI SYLLABLE SHEP
+A3BA ; [.3FE2.0020.0002] # YI SYLLABLE SHUT
+A3BB ; [.3FE3.0020.0002] # YI SYLLABLE SHUX
+A3BC ; [.3FE4.0020.0002] # YI SYLLABLE SHU
+A3BD ; [.3FE5.0020.0002] # YI SYLLABLE SHUP
+A3BE ; [.3FE6.0020.0002] # YI SYLLABLE SHURX
+A3BF ; [.3FE7.0020.0002] # YI SYLLABLE SHUR
+A3C0 ; [.3FE8.0020.0002] # YI SYLLABLE SHYT
+A3C1 ; [.3FE9.0020.0002] # YI SYLLABLE SHYX
+A3C2 ; [.3FEA.0020.0002] # YI SYLLABLE SHY
+A3C3 ; [.3FEB.0020.0002] # YI SYLLABLE SHYP
+A3C4 ; [.3FEC.0020.0002] # YI SYLLABLE SHYRX
+A3C5 ; [.3FED.0020.0002] # YI SYLLABLE SHYR
+A3C6 ; [.3FEE.0020.0002] # YI SYLLABLE RAT
+A3C7 ; [.3FEF.0020.0002] # YI SYLLABLE RAX
+A3C8 ; [.3FF0.0020.0002] # YI SYLLABLE RA
+A3C9 ; [.3FF1.0020.0002] # YI SYLLABLE RAP
+A3CA ; [.3FF2.0020.0002] # YI SYLLABLE RUOX
+A3CB ; [.3FF3.0020.0002] # YI SYLLABLE RUO
+A3CC ; [.3FF4.0020.0002] # YI SYLLABLE RUOP
+A3CD ; [.3FF5.0020.0002] # YI SYLLABLE ROT
+A3CE ; [.3FF6.0020.0002] # YI SYLLABLE ROX
+A3CF ; [.3FF7.0020.0002] # YI SYLLABLE RO
+A3D0 ; [.3FF8.0020.0002] # YI SYLLABLE ROP
+A3D1 ; [.3FF9.0020.0002] # YI SYLLABLE REX
+A3D2 ; [.3FFA.0020.0002] # YI SYLLABLE RE
+A3D3 ; [.3FFB.0020.0002] # YI SYLLABLE REP
+A3D4 ; [.3FFC.0020.0002] # YI SYLLABLE RUT
+A3D5 ; [.3FFD.0020.0002] # YI SYLLABLE RUX
+A3D6 ; [.3FFE.0020.0002] # YI SYLLABLE RU
+A3D7 ; [.3FFF.0020.0002] # YI SYLLABLE RUP
+A3D8 ; [.4000.0020.0002] # YI SYLLABLE RURX
+A3D9 ; [.4001.0020.0002] # YI SYLLABLE RUR
+A3DA ; [.4002.0020.0002] # YI SYLLABLE RYT
+A3DB ; [.4003.0020.0002] # YI SYLLABLE RYX
+A3DC ; [.4004.0020.0002] # YI SYLLABLE RY
+A3DD ; [.4005.0020.0002] # YI SYLLABLE RYP
+A3DE ; [.4006.0020.0002] # YI SYLLABLE RYRX
+A3DF ; [.4007.0020.0002] # YI SYLLABLE RYR
+A3E0 ; [.4008.0020.0002] # YI SYLLABLE JIT
+A3E1 ; [.4009.0020.0002] # YI SYLLABLE JIX
+A3E2 ; [.400A.0020.0002] # YI SYLLABLE JI
+A3E3 ; [.400B.0020.0002] # YI SYLLABLE JIP
+A3E4 ; [.400C.0020.0002] # YI SYLLABLE JIET
+A3E5 ; [.400D.0020.0002] # YI SYLLABLE JIEX
+A3E6 ; [.400E.0020.0002] # YI SYLLABLE JIE
+A3E7 ; [.400F.0020.0002] # YI SYLLABLE JIEP
+A3E8 ; [.4010.0020.0002] # YI SYLLABLE JUOT
+A3E9 ; [.4011.0020.0002] # YI SYLLABLE JUOX
+A3EA ; [.4012.0020.0002] # YI SYLLABLE JUO
+A3EB ; [.4013.0020.0002] # YI SYLLABLE JUOP
+A3EC ; [.4014.0020.0002] # YI SYLLABLE JOT
+A3ED ; [.4015.0020.0002] # YI SYLLABLE JOX
+A3EE ; [.4016.0020.0002] # YI SYLLABLE JO
+A3EF ; [.4017.0020.0002] # YI SYLLABLE JOP
+A3F0 ; [.4018.0020.0002] # YI SYLLABLE JUT
+A3F1 ; [.4019.0020.0002] # YI SYLLABLE JUX
+A3F2 ; [.401A.0020.0002] # YI SYLLABLE JU
+A3F3 ; [.401B.0020.0002] # YI SYLLABLE JUP
+A3F4 ; [.401C.0020.0002] # YI SYLLABLE JURX
+A3F5 ; [.401D.0020.0002] # YI SYLLABLE JUR
+A3F6 ; [.401E.0020.0002] # YI SYLLABLE JYT
+A3F7 ; [.401F.0020.0002] # YI SYLLABLE JYX
+A3F8 ; [.4020.0020.0002] # YI SYLLABLE JY
+A3F9 ; [.4021.0020.0002] # YI SYLLABLE JYP
+A3FA ; [.4022.0020.0002] # YI SYLLABLE JYRX
+A3FB ; [.4023.0020.0002] # YI SYLLABLE JYR
+A3FC ; [.4024.0020.0002] # YI SYLLABLE QIT
+A3FD ; [.4025.0020.0002] # YI SYLLABLE QIX
+A3FE ; [.4026.0020.0002] # YI SYLLABLE QI
+A3FF ; [.4027.0020.0002] # YI SYLLABLE QIP
+A400 ; [.4028.0020.0002] # YI SYLLABLE QIET
+A401 ; [.4029.0020.0002] # YI SYLLABLE QIEX
+A402 ; [.402A.0020.0002] # YI SYLLABLE QIE
+A403 ; [.402B.0020.0002] # YI SYLLABLE QIEP
+A404 ; [.402C.0020.0002] # YI SYLLABLE QUOT
+A405 ; [.402D.0020.0002] # YI SYLLABLE QUOX
+A406 ; [.402E.0020.0002] # YI SYLLABLE QUO
+A407 ; [.402F.0020.0002] # YI SYLLABLE QUOP
+A408 ; [.4030.0020.0002] # YI SYLLABLE QOT
+A409 ; [.4031.0020.0002] # YI SYLLABLE QOX
+A40A ; [.4032.0020.0002] # YI SYLLABLE QO
+A40B ; [.4033.0020.0002] # YI SYLLABLE QOP
+A40C ; [.4034.0020.0002] # YI SYLLABLE QUT
+A40D ; [.4035.0020.0002] # YI SYLLABLE QUX
+A40E ; [.4036.0020.0002] # YI SYLLABLE QU
+A40F ; [.4037.0020.0002] # YI SYLLABLE QUP
+A410 ; [.4038.0020.0002] # YI SYLLABLE QURX
+A411 ; [.4039.0020.0002] # YI SYLLABLE QUR
+A412 ; [.403A.0020.0002] # YI SYLLABLE QYT
+A413 ; [.403B.0020.0002] # YI SYLLABLE QYX
+A414 ; [.403C.0020.0002] # YI SYLLABLE QY
+A415 ; [.403D.0020.0002] # YI SYLLABLE QYP
+A416 ; [.403E.0020.0002] # YI SYLLABLE QYRX
+A417 ; [.403F.0020.0002] # YI SYLLABLE QYR
+A418 ; [.4040.0020.0002] # YI SYLLABLE JJIT
+A419 ; [.4041.0020.0002] # YI SYLLABLE JJIX
+A41A ; [.4042.0020.0002] # YI SYLLABLE JJI
+A41B ; [.4043.0020.0002] # YI SYLLABLE JJIP
+A41C ; [.4044.0020.0002] # YI SYLLABLE JJIET
+A41D ; [.4045.0020.0002] # YI SYLLABLE JJIEX
+A41E ; [.4046.0020.0002] # YI SYLLABLE JJIE
+A41F ; [.4047.0020.0002] # YI SYLLABLE JJIEP
+A420 ; [.4048.0020.0002] # YI SYLLABLE JJUOX
+A421 ; [.4049.0020.0002] # YI SYLLABLE JJUO
+A422 ; [.404A.0020.0002] # YI SYLLABLE JJUOP
+A423 ; [.404B.0020.0002] # YI SYLLABLE JJOT
+A424 ; [.404C.0020.0002] # YI SYLLABLE JJOX
+A425 ; [.404D.0020.0002] # YI SYLLABLE JJO
+A426 ; [.404E.0020.0002] # YI SYLLABLE JJOP
+A427 ; [.404F.0020.0002] # YI SYLLABLE JJUT
+A428 ; [.4050.0020.0002] # YI SYLLABLE JJUX
+A429 ; [.4051.0020.0002] # YI SYLLABLE JJU
+A42A ; [.4052.0020.0002] # YI SYLLABLE JJUP
+A42B ; [.4053.0020.0002] # YI SYLLABLE JJURX
+A42C ; [.4054.0020.0002] # YI SYLLABLE JJUR
+A42D ; [.4055.0020.0002] # YI SYLLABLE JJYT
+A42E ; [.4056.0020.0002] # YI SYLLABLE JJYX
+A42F ; [.4057.0020.0002] # YI SYLLABLE JJY
+A430 ; [.4058.0020.0002] # YI SYLLABLE JJYP
+A431 ; [.4059.0020.0002] # YI SYLLABLE NJIT
+A432 ; [.405A.0020.0002] # YI SYLLABLE NJIX
+A433 ; [.405B.0020.0002] # YI SYLLABLE NJI
+A434 ; [.405C.0020.0002] # YI SYLLABLE NJIP
+A435 ; [.405D.0020.0002] # YI SYLLABLE NJIET
+A436 ; [.405E.0020.0002] # YI SYLLABLE NJIEX
+A437 ; [.405F.0020.0002] # YI SYLLABLE NJIE
+A438 ; [.4060.0020.0002] # YI SYLLABLE NJIEP
+A439 ; [.4061.0020.0002] # YI SYLLABLE NJUOX
+A43A ; [.4062.0020.0002] # YI SYLLABLE NJUO
+A43B ; [.4063.0020.0002] # YI SYLLABLE NJOT
+A43C ; [.4064.0020.0002] # YI SYLLABLE NJOX
+A43D ; [.4065.0020.0002] # YI SYLLABLE NJO
+A43E ; [.4066.0020.0002] # YI SYLLABLE NJOP
+A43F ; [.4067.0020.0002] # YI SYLLABLE NJUX
+A440 ; [.4068.0020.0002] # YI SYLLABLE NJU
+A441 ; [.4069.0020.0002] # YI SYLLABLE NJUP
+A442 ; [.406A.0020.0002] # YI SYLLABLE NJURX
+A443 ; [.406B.0020.0002] # YI SYLLABLE NJUR
+A444 ; [.406C.0020.0002] # YI SYLLABLE NJYT
+A445 ; [.406D.0020.0002] # YI SYLLABLE NJYX
+A446 ; [.406E.0020.0002] # YI SYLLABLE NJY
+A447 ; [.406F.0020.0002] # YI SYLLABLE NJYP
+A448 ; [.4070.0020.0002] # YI SYLLABLE NJYRX
+A449 ; [.4071.0020.0002] # YI SYLLABLE NJYR
+A44A ; [.4072.0020.0002] # YI SYLLABLE NYIT
+A44B ; [.4073.0020.0002] # YI SYLLABLE NYIX
+A44C ; [.4074.0020.0002] # YI SYLLABLE NYI
+A44D ; [.4075.0020.0002] # YI SYLLABLE NYIP
+A44E ; [.4076.0020.0002] # YI SYLLABLE NYIET
+A44F ; [.4077.0020.0002] # YI SYLLABLE NYIEX
+A450 ; [.4078.0020.0002] # YI SYLLABLE NYIE
+A451 ; [.4079.0020.0002] # YI SYLLABLE NYIEP
+A452 ; [.407A.0020.0002] # YI SYLLABLE NYUOX
+A453 ; [.407B.0020.0002] # YI SYLLABLE NYUO
+A454 ; [.407C.0020.0002] # YI SYLLABLE NYUOP
+A455 ; [.407D.0020.0002] # YI SYLLABLE NYOT
+A456 ; [.407E.0020.0002] # YI SYLLABLE NYOX
+A457 ; [.407F.0020.0002] # YI SYLLABLE NYO
+A458 ; [.4080.0020.0002] # YI SYLLABLE NYOP
+A459 ; [.4081.0020.0002] # YI SYLLABLE NYUT
+A45A ; [.4082.0020.0002] # YI SYLLABLE NYUX
+A45B ; [.4083.0020.0002] # YI SYLLABLE NYU
+A45C ; [.4084.0020.0002] # YI SYLLABLE NYUP
+A45D ; [.4085.0020.0002] # YI SYLLABLE XIT
+A45E ; [.4086.0020.0002] # YI SYLLABLE XIX
+A45F ; [.4087.0020.0002] # YI SYLLABLE XI
+A460 ; [.4088.0020.0002] # YI SYLLABLE XIP
+A461 ; [.4089.0020.0002] # YI SYLLABLE XIET
+A462 ; [.408A.0020.0002] # YI SYLLABLE XIEX
+A463 ; [.408B.0020.0002] # YI SYLLABLE XIE
+A464 ; [.408C.0020.0002] # YI SYLLABLE XIEP
+A465 ; [.408D.0020.0002] # YI SYLLABLE XUOX
+A466 ; [.408E.0020.0002] # YI SYLLABLE XUO
+A467 ; [.408F.0020.0002] # YI SYLLABLE XOT
+A468 ; [.4090.0020.0002] # YI SYLLABLE XOX
+A469 ; [.4091.0020.0002] # YI SYLLABLE XO
+A46A ; [.4092.0020.0002] # YI SYLLABLE XOP
+A46B ; [.4093.0020.0002] # YI SYLLABLE XYT
+A46C ; [.4094.0020.0002] # YI SYLLABLE XYX
+A46D ; [.4095.0020.0002] # YI SYLLABLE XY
+A46E ; [.4096.0020.0002] # YI SYLLABLE XYP
+A46F ; [.4097.0020.0002] # YI SYLLABLE XYRX
+A470 ; [.4098.0020.0002] # YI SYLLABLE XYR
+A471 ; [.4099.0020.0002] # YI SYLLABLE YIT
+A472 ; [.409A.0020.0002] # YI SYLLABLE YIX
+A473 ; [.409B.0020.0002] # YI SYLLABLE YI
+A474 ; [.409C.0020.0002] # YI SYLLABLE YIP
+A475 ; [.409D.0020.0002] # YI SYLLABLE YIET
+A476 ; [.409E.0020.0002] # YI SYLLABLE YIEX
+A477 ; [.409F.0020.0002] # YI SYLLABLE YIE
+A478 ; [.40A0.0020.0002] # YI SYLLABLE YIEP
+A479 ; [.40A1.0020.0002] # YI SYLLABLE YUOT
+A47A ; [.40A2.0020.0002] # YI SYLLABLE YUOX
+A47B ; [.40A3.0020.0002] # YI SYLLABLE YUO
+A47C ; [.40A4.0020.0002] # YI SYLLABLE YUOP
+A47D ; [.40A5.0020.0002] # YI SYLLABLE YOT
+A47E ; [.40A6.0020.0002] # YI SYLLABLE YOX
+A47F ; [.40A7.0020.0002] # YI SYLLABLE YO
+A480 ; [.40A8.0020.0002] # YI SYLLABLE YOP
+A481 ; [.40A9.0020.0002] # YI SYLLABLE YUT
+A482 ; [.40AA.0020.0002] # YI SYLLABLE YUX
+A483 ; [.40AB.0020.0002] # YI SYLLABLE YU
+A484 ; [.40AC.0020.0002] # YI SYLLABLE YUP
+A485 ; [.40AD.0020.0002] # YI SYLLABLE YURX
+A486 ; [.40AE.0020.0002] # YI SYLLABLE YUR
+A487 ; [.40AF.0020.0002] # YI SYLLABLE YYT
+A488 ; [.40B0.0020.0002] # YI SYLLABLE YYX
+A489 ; [.40B1.0020.0002] # YI SYLLABLE YY
+A48A ; [.40B2.0020.0002] # YI SYLLABLE YYP
+A48B ; [.40B3.0020.0002] # YI SYLLABLE YYRX
+A48C ; [.40B4.0020.0002] # YI SYLLABLE YYR
+A4F8 ; [.40B5.0020.0002] # LISU LETTER TONE MYA TI
+A4F9 ; [.40B6.0020.0002] # LISU LETTER TONE NA PO
+A4FA ; [.40B7.0020.0002] # LISU LETTER TONE MYA CYA
+A4FB ; [.40B8.0020.0002] # LISU LETTER TONE MYA BO
+A4FD ; [.40B9.0020.0002] # LISU LETTER TONE MYA JEU
+A4FC ; [.40BA.0020.0002] # LISU LETTER TONE MYA NA
+A4D0 ; [.40BB.0020.0002] # LISU LETTER BA
+A4D1 ; [.40BC.0020.0002] # LISU LETTER PA
+A4D2 ; [.40BD.0020.0002] # LISU LETTER PHA
+A4D3 ; [.40BE.0020.0002] # LISU LETTER DA
+A4D4 ; [.40BF.0020.0002] # LISU LETTER TA
+A4D5 ; [.40C0.0020.0002] # LISU LETTER THA
+A4D6 ; [.40C1.0020.0002] # LISU LETTER GA
+A4D7 ; [.40C2.0020.0002] # LISU LETTER KA
+A4D8 ; [.40C3.0020.0002] # LISU LETTER KHA
+A4D9 ; [.40C4.0020.0002] # LISU LETTER JA
+A4DA ; [.40C5.0020.0002] # LISU LETTER CA
+A4DB ; [.40C6.0020.0002] # LISU LETTER CHA
+A4DC ; [.40C7.0020.0002] # LISU LETTER DZA
+A4DD ; [.40C8.0020.0002] # LISU LETTER TSA
+A4DE ; [.40C9.0020.0002] # LISU LETTER TSHA
+A4DF ; [.40CA.0020.0002] # LISU LETTER MA
+A4E0 ; [.40CB.0020.0002] # LISU LETTER NA
+A4E1 ; [.40CC.0020.0002] # LISU LETTER LA
+A4E2 ; [.40CD.0020.0002] # LISU LETTER SA
+A4E3 ; [.40CE.0020.0002] # LISU LETTER ZHA
+A4E4 ; [.40CF.0020.0002] # LISU LETTER ZA
+A4E5 ; [.40D0.0020.0002] # LISU LETTER NGA
+A4E6 ; [.40D1.0020.0002] # LISU LETTER HA
+A4E7 ; [.40D2.0020.0002] # LISU LETTER XA
+A4E8 ; [.40D3.0020.0002] # LISU LETTER HHA
+A4E9 ; [.40D4.0020.0002] # LISU LETTER FA
+A4EB ; [.40D5.0020.0002] # LISU LETTER SHA
+A4ED ; [.40D6.0020.0002] # LISU LETTER GHA
+A4EA ; [.40D7.0020.0002] # LISU LETTER WA
+A4EC ; [.40D8.0020.0002] # LISU LETTER YA
+A4EE ; [.40D9.0020.0002] # LISU LETTER A
+A4EF ; [.40DA.0020.0002] # LISU LETTER AE
+A4F0 ; [.40DB.0020.0002] # LISU LETTER E
+A4F1 ; [.40DC.0020.0002] # LISU LETTER EU
+A4F2 ; [.40DD.0020.0002] # LISU LETTER I
+A4F3 ; [.40DE.0020.0002] # LISU LETTER O
+A4F4 ; [.40DF.0020.0002] # LISU LETTER U
+A4F5 ; [.40E0.0020.0002] # LISU LETTER UE
+A4F6 ; [.40E1.0020.0002] # LISU LETTER UH
+A4F7 ; [.40E2.0020.0002] # LISU LETTER OE
+16F00 ; [.40E3.0020.0002] # MIAO LETTER PA
+16F01 ; [.40E4.0020.0002] # MIAO LETTER BA
+16F02 ; [.40E5.0020.0002] # MIAO LETTER YI PA
+16F03 ; [.40E6.0020.0002] # MIAO LETTER PLA
+16F04 ; [.40E7.0020.0002] # MIAO LETTER MA
+16F06 ; [.40E7.0020.0004] # MIAO LETTER ARCHAIC MA
+16F05 ; [.40E8.0020.0002] # MIAO LETTER MHA
+16F07 ; [.40E9.0020.0002] # MIAO LETTER FA
+16F08 ; [.40EA.0020.0002] # MIAO LETTER VA
+16F09 ; [.40EB.0020.0002] # MIAO LETTER VFA
+16F0A ; [.40EC.0020.0002] # MIAO LETTER TA
+16F0B ; [.40ED.0020.0002] # MIAO LETTER DA
+16F0C ; [.40EE.0020.0002] # MIAO LETTER YI TTA
+16F0D ; [.40EF.0020.0002] # MIAO LETTER YI TA
+16F0E ; [.40F0.0020.0002] # MIAO LETTER TTA
+16F0F ; [.40F1.0020.0002] # MIAO LETTER DDA
+16F10 ; [.40F2.0020.0002] # MIAO LETTER NA
+16F13 ; [.40F2.0020.0004] # MIAO LETTER ARCHAIC NA
+16F11 ; [.40F3.0020.0002] # MIAO LETTER NHA
+16F12 ; [.40F4.0020.0002] # MIAO LETTER YI NNA
+16F14 ; [.40F5.0020.0002] # MIAO LETTER NNA
+16F15 ; [.40F6.0020.0002] # MIAO LETTER NNHA
+16F16 ; [.40F7.0020.0002] # MIAO LETTER LA
+16F17 ; [.40F8.0020.0002] # MIAO LETTER LYA
+16F18 ; [.40F9.0020.0002] # MIAO LETTER LHA
+16F19 ; [.40FA.0020.0002] # MIAO LETTER LHYA
+16F1A ; [.40FB.0020.0002] # MIAO LETTER TLHA
+16F1B ; [.40FC.0020.0002] # MIAO LETTER DLHA
+16F1C ; [.40FD.0020.0002] # MIAO LETTER TLHYA
+16F1D ; [.40FE.0020.0002] # MIAO LETTER DLHYA
+16F1E ; [.40FF.0020.0002] # MIAO LETTER KA
+16F1F ; [.4100.0020.0002] # MIAO LETTER GA
+16F20 ; [.4101.0020.0002] # MIAO LETTER YI KA
+16F21 ; [.4102.0020.0002] # MIAO LETTER QA
+16F22 ; [.4103.0020.0002] # MIAO LETTER QGA
+16F23 ; [.4104.0020.0002] # MIAO LETTER NGA
+16F25 ; [.4104.0020.0004] # MIAO LETTER ARCHAIC NGA
+16F24 ; [.4105.0020.0002] # MIAO LETTER NGHA
+16F26 ; [.4106.0020.0002] # MIAO LETTER HA
+16F27 ; [.4107.0020.0002] # MIAO LETTER XA
+16F28 ; [.4108.0020.0002] # MIAO LETTER GHA
+16F29 ; [.4109.0020.0002] # MIAO LETTER GHHA
+16F2A ; [.410A.0020.0002] # MIAO LETTER TSSA
+16F2B ; [.410B.0020.0002] # MIAO LETTER DZZA
+16F2C ; [.410C.0020.0002] # MIAO LETTER NYA
+16F2D ; [.410D.0020.0002] # MIAO LETTER NYHA
+16F2E ; [.410E.0020.0002] # MIAO LETTER TSHA
+16F2F ; [.410F.0020.0002] # MIAO LETTER DZHA
+16F30 ; [.4110.0020.0002] # MIAO LETTER YI TSHA
+16F31 ; [.4111.0020.0002] # MIAO LETTER YI DZHA
+16F32 ; [.4112.0020.0002] # MIAO LETTER REFORMED TSHA
+16F33 ; [.4113.0020.0002] # MIAO LETTER SHA
+16F34 ; [.4114.0020.0002] # MIAO LETTER SSA
+16F35 ; [.4115.0020.0002] # MIAO LETTER ZHA
+16F36 ; [.4116.0020.0002] # MIAO LETTER ZSHA
+16F37 ; [.4117.0020.0002] # MIAO LETTER TSA
+16F38 ; [.4118.0020.0002] # MIAO LETTER DZA
+16F39 ; [.4119.0020.0002] # MIAO LETTER YI TSA
+16F3A ; [.411A.0020.0002] # MIAO LETTER SA
+16F3B ; [.411B.0020.0002] # MIAO LETTER ZA
+16F3C ; [.411C.0020.0002] # MIAO LETTER ZSA
+16F3D ; [.411D.0020.0002] # MIAO LETTER ZZA
+16F3F ; [.411D.0020.0004] # MIAO LETTER ARCHAIC ZZA
+16F3E ; [.411E.0020.0002] # MIAO LETTER ZZSA
+16F40 ; [.411F.0020.0002] # MIAO LETTER ZZYA
+16F41 ; [.4120.0020.0002] # MIAO LETTER ZZSYA
+16F42 ; [.4121.0020.0002] # MIAO LETTER WA
+16F43 ; [.4122.0020.0002] # MIAO LETTER AH
+16F44 ; [.4123.0020.0002] # MIAO LETTER HHA
+16F50 ; [.4124.0020.0002] # MIAO LETTER NASALIZATION
+16F51 ; [.4125.0020.0002] # MIAO SIGN ASPIRATION
+16F52 ; [.4126.0020.0002] # MIAO SIGN REFORMED VOICING
+16F53 ; [.4127.0020.0002] # MIAO SIGN REFORMED ASPIRATION
+16F54 ; [.4128.0020.0002] # MIAO VOWEL SIGN A
+16F55 ; [.4129.0020.0002] # MIAO VOWEL SIGN AA
+16F56 ; [.412A.0020.0002] # MIAO VOWEL SIGN AHH
+16F57 ; [.412B.0020.0002] # MIAO VOWEL SIGN AN
+16F58 ; [.412C.0020.0002] # MIAO VOWEL SIGN ANG
+16F59 ; [.412D.0020.0002] # MIAO VOWEL SIGN O
+16F5A ; [.412E.0020.0002] # MIAO VOWEL SIGN OO
+16F5B ; [.412F.0020.0002] # MIAO VOWEL SIGN WO
+16F5C ; [.4130.0020.0002] # MIAO VOWEL SIGN W
+16F5D ; [.4131.0020.0002] # MIAO VOWEL SIGN E
+16F5E ; [.4132.0020.0002] # MIAO VOWEL SIGN EN
+16F5F ; [.4133.0020.0002] # MIAO VOWEL SIGN ENG
+16F60 ; [.4134.0020.0002] # MIAO VOWEL SIGN OEY
+16F61 ; [.4135.0020.0002] # MIAO VOWEL SIGN I
+16F62 ; [.4136.0020.0002] # MIAO VOWEL SIGN IA
+16F63 ; [.4137.0020.0002] # MIAO VOWEL SIGN IAN
+16F64 ; [.4138.0020.0002] # MIAO VOWEL SIGN IANG
+16F65 ; [.4139.0020.0002] # MIAO VOWEL SIGN IO
+16F66 ; [.413A.0020.0002] # MIAO VOWEL SIGN IE
+16F67 ; [.413B.0020.0002] # MIAO VOWEL SIGN II
+16F68 ; [.413C.0020.0002] # MIAO VOWEL SIGN IU
+16F69 ; [.413D.0020.0002] # MIAO VOWEL SIGN ING
+16F6A ; [.413E.0020.0002] # MIAO VOWEL SIGN U
+16F6B ; [.413F.0020.0002] # MIAO VOWEL SIGN UA
+16F6C ; [.4140.0020.0002] # MIAO VOWEL SIGN UAN
+16F6D ; [.4141.0020.0002] # MIAO VOWEL SIGN UANG
+16F6E ; [.4142.0020.0002] # MIAO VOWEL SIGN UU
+16F6F ; [.4143.0020.0002] # MIAO VOWEL SIGN UEI
+16F70 ; [.4144.0020.0002] # MIAO VOWEL SIGN UNG
+16F71 ; [.4145.0020.0002] # MIAO VOWEL SIGN Y
+16F72 ; [.4146.0020.0002] # MIAO VOWEL SIGN YI
+16F73 ; [.4147.0020.0002] # MIAO VOWEL SIGN AE
+16F74 ; [.4148.0020.0002] # MIAO VOWEL SIGN AEE
+16F75 ; [.4149.0020.0002] # MIAO VOWEL SIGN ERR
+16F76 ; [.414A.0020.0002] # MIAO VOWEL SIGN ROUNDED ERR
+16F77 ; [.414B.0020.0002] # MIAO VOWEL SIGN ER
+16F78 ; [.414C.0020.0002] # MIAO VOWEL SIGN ROUNDED ER
+16F79 ; [.414D.0020.0002] # MIAO VOWEL SIGN AI
+16F7A ; [.414E.0020.0002] # MIAO VOWEL SIGN EI
+16F7B ; [.414F.0020.0002] # MIAO VOWEL SIGN AU
+16F7C ; [.4150.0020.0002] # MIAO VOWEL SIGN OU
+16F7D ; [.4151.0020.0002] # MIAO VOWEL SIGN N
+16F7E ; [.4152.0020.0002] # MIAO VOWEL SIGN NG
+16F8F ; [.4153.0020.0002] # MIAO TONE RIGHT
+16F90 ; [.4154.0020.0002] # MIAO TONE TOP RIGHT
+16F91 ; [.4155.0020.0002] # MIAO TONE ABOVE
+16F92 ; [.4156.0020.0002] # MIAO TONE BELOW
+16F93 ; [.4157.0020.0002] # MIAO LETTER TONE-2
+16F94 ; [.4158.0020.0002] # MIAO LETTER TONE-3
+16F95 ; [.4159.0020.0002] # MIAO LETTER TONE-4
+16F96 ; [.415A.0020.0002] # MIAO LETTER TONE-5
+16F97 ; [.415B.0020.0002] # MIAO LETTER TONE-6
+16F98 ; [.415C.0020.0002] # MIAO LETTER TONE-7
+16F99 ; [.415D.0020.0002] # MIAO LETTER TONE-8
+16F9A ; [.415E.0020.0002] # MIAO LETTER REFORMED TONE-1
+16F9B ; [.415F.0020.0002] # MIAO LETTER REFORMED TONE-2
+16F9C ; [.4160.0020.0002] # MIAO LETTER REFORMED TONE-4
+16F9D ; [.4161.0020.0002] # MIAO LETTER REFORMED TONE-5
+16F9E ; [.4162.0020.0002] # MIAO LETTER REFORMED TONE-6
+16F9F ; [.4163.0020.0002] # MIAO LETTER REFORMED TONE-8
+118FF ; [.4164.0020.0002] # WARANG CITI OM
+118C0 ; [.4165.0020.0002] # WARANG CITI SMALL LETTER NGAA
+118A0 ; [.4165.0020.0008] # WARANG CITI CAPITAL LETTER NGAA
+118C1 ; [.4166.0020.0002] # WARANG CITI SMALL LETTER A
+118A1 ; [.4166.0020.0008] # WARANG CITI CAPITAL LETTER A
+118C2 ; [.4167.0020.0002] # WARANG CITI SMALL LETTER WI
+118A2 ; [.4167.0020.0008] # WARANG CITI CAPITAL LETTER WI
+118C3 ; [.4168.0020.0002] # WARANG CITI SMALL LETTER YU
+118A3 ; [.4168.0020.0008] # WARANG CITI CAPITAL LETTER YU
+118C4 ; [.4169.0020.0002] # WARANG CITI SMALL LETTER YA
+118A4 ; [.4169.0020.0008] # WARANG CITI CAPITAL LETTER YA
+118C5 ; [.416A.0020.0002] # WARANG CITI SMALL LETTER YO
+118A5 ; [.416A.0020.0008] # WARANG CITI CAPITAL LETTER YO
+118C6 ; [.416B.0020.0002] # WARANG CITI SMALL LETTER II
+118A6 ; [.416B.0020.0008] # WARANG CITI CAPITAL LETTER II
+118C7 ; [.416C.0020.0002] # WARANG CITI SMALL LETTER UU
+118A7 ; [.416C.0020.0008] # WARANG CITI CAPITAL LETTER UU
+118C8 ; [.416D.0020.0002] # WARANG CITI SMALL LETTER E
+118A8 ; [.416D.0020.0008] # WARANG CITI CAPITAL LETTER E
+118C9 ; [.416E.0020.0002] # WARANG CITI SMALL LETTER O
+118A9 ; [.416E.0020.0008] # WARANG CITI CAPITAL LETTER O
+118CA ; [.416F.0020.0002] # WARANG CITI SMALL LETTER ANG
+118AA ; [.416F.0020.0008] # WARANG CITI CAPITAL LETTER ANG
+118CB ; [.4170.0020.0002] # WARANG CITI SMALL LETTER GA
+118AB ; [.4170.0020.0008] # WARANG CITI CAPITAL LETTER GA
+118CC ; [.4171.0020.0002] # WARANG CITI SMALL LETTER KO
+118AC ; [.4171.0020.0008] # WARANG CITI CAPITAL LETTER KO
+118CD ; [.4172.0020.0002] # WARANG CITI SMALL LETTER ENY
+118AD ; [.4172.0020.0008] # WARANG CITI CAPITAL LETTER ENY
+118CE ; [.4173.0020.0002] # WARANG CITI SMALL LETTER YUJ
+118AE ; [.4173.0020.0008] # WARANG CITI CAPITAL LETTER YUJ
+118CF ; [.4174.0020.0002] # WARANG CITI SMALL LETTER UC
+118AF ; [.4174.0020.0008] # WARANG CITI CAPITAL LETTER UC
+118D0 ; [.4175.0020.0002] # WARANG CITI SMALL LETTER ENN
+118B0 ; [.4175.0020.0008] # WARANG CITI CAPITAL LETTER ENN
+118D1 ; [.4176.0020.0002] # WARANG CITI SMALL LETTER ODD
+118B1 ; [.4176.0020.0008] # WARANG CITI CAPITAL LETTER ODD
+118D2 ; [.4177.0020.0002] # WARANG CITI SMALL LETTER TTE
+118B2 ; [.4177.0020.0008] # WARANG CITI CAPITAL LETTER TTE
+118D3 ; [.4178.0020.0002] # WARANG CITI SMALL LETTER NUNG
+118B3 ; [.4178.0020.0008] # WARANG CITI CAPITAL LETTER NUNG
+118D4 ; [.4179.0020.0002] # WARANG CITI SMALL LETTER DA
+118B4 ; [.4179.0020.0008] # WARANG CITI CAPITAL LETTER DA
+118D5 ; [.417A.0020.0002] # WARANG CITI SMALL LETTER AT
+118B5 ; [.417A.0020.0008] # WARANG CITI CAPITAL LETTER AT
+118D6 ; [.417B.0020.0002] # WARANG CITI SMALL LETTER AM
+118B6 ; [.417B.0020.0008] # WARANG CITI CAPITAL LETTER AM
+118D7 ; [.417C.0020.0002] # WARANG CITI SMALL LETTER BU
+118B7 ; [.417C.0020.0008] # WARANG CITI CAPITAL LETTER BU
+118D8 ; [.417D.0020.0002] # WARANG CITI SMALL LETTER PU
+118B8 ; [.417D.0020.0008] # WARANG CITI CAPITAL LETTER PU
+118D9 ; [.417E.0020.0002] # WARANG CITI SMALL LETTER HIYO
+118B9 ; [.417E.0020.0008] # WARANG CITI CAPITAL LETTER HIYO
+118DA ; [.417F.0020.0002] # WARANG CITI SMALL LETTER HOLO
+118BA ; [.417F.0020.0008] # WARANG CITI CAPITAL LETTER HOLO
+118DB ; [.4180.0020.0002] # WARANG CITI SMALL LETTER HORR
+118BB ; [.4180.0020.0008] # WARANG CITI CAPITAL LETTER HORR
+118DC ; [.4181.0020.0002] # WARANG CITI SMALL LETTER HAR
+118BC ; [.4181.0020.0008] # WARANG CITI CAPITAL LETTER HAR
+118DD ; [.4182.0020.0002] # WARANG CITI SMALL LETTER SSUU
+118BD ; [.4182.0020.0008] # WARANG CITI CAPITAL LETTER SSUU
+118DE ; [.4183.0020.0002] # WARANG CITI SMALL LETTER SII
+118BE ; [.4183.0020.0008] # WARANG CITI CAPITAL LETTER SII
+118DF ; [.4184.0020.0002] # WARANG CITI SMALL LETTER VIYO
+118BF ; [.4184.0020.0008] # WARANG CITI CAPITAL LETTER VIYO
+11AD5 ; [.4185.0020.0002] # PAU CIN HAU LETTER A
+11AD6 ; [.4186.0020.0002] # PAU CIN HAU LETTER E
+11AD7 ; [.4187.0020.0002] # PAU CIN HAU LETTER I
+11AD8 ; [.4188.0020.0002] # PAU CIN HAU LETTER O
+11AD9 ; [.4189.0020.0002] # PAU CIN HAU LETTER U
+11ADA ; [.418A.0020.0002] # PAU CIN HAU LETTER UA
+11ADB ; [.418B.0020.0002] # PAU CIN HAU LETTER IA
+11AC0 ; [.418C.0020.0002] # PAU CIN HAU LETTER PA
+11AC1 ; [.418D.0020.0002] # PAU CIN HAU LETTER KA
+11AC2 ; [.418E.0020.0002] # PAU CIN HAU LETTER LA
+11AC3 ; [.418F.0020.0002] # PAU CIN HAU LETTER MA
+11AC4 ; [.4190.0020.0002] # PAU CIN HAU LETTER DA
+11AC5 ; [.4191.0020.0002] # PAU CIN HAU LETTER ZA
+11AC6 ; [.4192.0020.0002] # PAU CIN HAU LETTER VA
+11AC7 ; [.4193.0020.0002] # PAU CIN HAU LETTER NGA
+11AC8 ; [.4194.0020.0002] # PAU CIN HAU LETTER HA
+11AC9 ; [.4195.0020.0002] # PAU CIN HAU LETTER GA
+11ACA ; [.4196.0020.0002] # PAU CIN HAU LETTER KHA
+11ACB ; [.4197.0020.0002] # PAU CIN HAU LETTER SA
+11ACC ; [.4198.0020.0002] # PAU CIN HAU LETTER BA
+11ACD ; [.4199.0020.0002] # PAU CIN HAU LETTER CA
+11ACE ; [.419A.0020.0002] # PAU CIN HAU LETTER TA
+11ACF ; [.419B.0020.0002] # PAU CIN HAU LETTER THA
+11AD0 ; [.419C.0020.0002] # PAU CIN HAU LETTER NA
+11AD1 ; [.419D.0020.0002] # PAU CIN HAU LETTER PHA
+11AD2 ; [.419E.0020.0002] # PAU CIN HAU LETTER RA
+11AD3 ; [.419F.0020.0002] # PAU CIN HAU LETTER FA
+11AD4 ; [.41A0.0020.0002] # PAU CIN HAU LETTER CHA
+11ADC ; [.41A1.0020.0002] # PAU CIN HAU LETTER FINAL P
+11ADD ; [.41A2.0020.0002] # PAU CIN HAU LETTER FINAL K
+11ADF ; [.41A3.0020.0002] # PAU CIN HAU LETTER FINAL M
+11AE0 ; [.41A4.0020.0002] # PAU CIN HAU LETTER FINAL N
+11AE1 ; [.41A5.0020.0002] # PAU CIN HAU LETTER FINAL L
+11AE2 ; [.41A6.0020.0002] # PAU CIN HAU LETTER FINAL W
+11AE3 ; [.41A7.0020.0002] # PAU CIN HAU LETTER FINAL NG
+11ADE ; [.41A8.0020.0002] # PAU CIN HAU LETTER FINAL T
+11AE4 ; [.41A9.0020.0002] # PAU CIN HAU LETTER FINAL Y
+11AEF ; [.41AA.0020.0002] # PAU CIN HAU MID-LEVEL TONE
+11AF2 ; [.41AB.0020.0002] # PAU CIN HAU MID-LEVEL TONE FINAL
+11AF1 ; [.41AC.0020.0002] # PAU CIN HAU MID-LEVEL TONE LONG FINAL
+11AE6 ; [.41AD.0020.0002] # PAU CIN HAU RISING TONE
+11AE9 ; [.41AE.0020.0002] # PAU CIN HAU RISING TONE FINAL
+11AE5 ; [.41AF.0020.0002] # PAU CIN HAU RISING TONE LONG
+11AE8 ; [.41B0.0020.0002] # PAU CIN HAU RISING TONE LONG FINAL
+11AF4 ; [.41B1.0020.0002] # PAU CIN HAU LOW-FALLING TONE
+11AF7 ; [.41B2.0020.0002] # PAU CIN HAU LOW-FALLING TONE FINAL
+11AF3 ; [.41B3.0020.0002] # PAU CIN HAU LOW-FALLING TONE LONG
+11AF6 ; [.41B4.0020.0002] # PAU CIN HAU LOW-FALLING TONE LONG FINAL
+11AEC ; [.41B5.0020.0002] # PAU CIN HAU SANDHI TONE
+11AEE ; [.41B6.0020.0002] # PAU CIN HAU SANDHI TONE FINAL
+11AEB ; [.41B7.0020.0002] # PAU CIN HAU SANDHI TONE LONG
+11AED ; [.41B8.0020.0002] # PAU CIN HAU SANDHI TONE LONG FINAL
+11AF5 ; [.41B9.0020.0002] # PAU CIN HAU GLOTTAL STOP
+11AF8 ; [.41BA.0020.0002] # PAU CIN HAU GLOTTAL STOP FINAL
+11AE7 ; [.41BB.0020.0002] # PAU CIN HAU SANDHI GLOTTAL STOP
+11AEA ; [.41BC.0020.0002] # PAU CIN HAU SANDHI GLOTTAL STOP FINAL
+11AF0 ; [.41BD.0020.0002] # PAU CIN HAU GLOTTAL STOP VARIANT
+16B00 ; [.41BE.0020.0002] # PAHAWH HMONG VOWEL KEEB
+16B01 ; [.41BF.0020.0002] # PAHAWH HMONG VOWEL KEEV
+16B02 ; [.41C0.0020.0002] # PAHAWH HMONG VOWEL KIB
+16B03 ; [.41C1.0020.0002] # PAHAWH HMONG VOWEL KIV
+16B04 ; [.41C2.0020.0002] # PAHAWH HMONG VOWEL KAUB
+16B05 ; [.41C3.0020.0002] # PAHAWH HMONG VOWEL KAUV
+16B06 ; [.41C4.0020.0002] # PAHAWH HMONG VOWEL KUB
+16B07 ; [.41C5.0020.0002] # PAHAWH HMONG VOWEL KUV
+16B08 ; [.41C6.0020.0002] # PAHAWH HMONG VOWEL KEB
+16B09 ; [.41C7.0020.0002] # PAHAWH HMONG VOWEL KEV
+16B0A ; [.41C8.0020.0002] # PAHAWH HMONG VOWEL KAIB
+16B0B ; [.41C9.0020.0002] # PAHAWH HMONG VOWEL KAIV
+16B0C ; [.41CA.0020.0002] # PAHAWH HMONG VOWEL KOOB
+16B0D ; [.41CB.0020.0002] # PAHAWH HMONG VOWEL KOOV
+16B0E ; [.41CC.0020.0002] # PAHAWH HMONG VOWEL KAWB
+16B0F ; [.41CD.0020.0002] # PAHAWH HMONG VOWEL KAWV
+16B10 ; [.41CE.0020.0002] # PAHAWH HMONG VOWEL KUAB
+16B11 ; [.41CF.0020.0002] # PAHAWH HMONG VOWEL KUAV
+16B12 ; [.41D0.0020.0002] # PAHAWH HMONG VOWEL KOB
+16B13 ; [.41D1.0020.0002] # PAHAWH HMONG VOWEL KOV
+16B14 ; [.41D2.0020.0002] # PAHAWH HMONG VOWEL KIAB
+16B15 ; [.41D3.0020.0002] # PAHAWH HMONG VOWEL KIAV
+16B16 ; [.41D4.0020.0002] # PAHAWH HMONG VOWEL KAB
+16B17 ; [.41D5.0020.0002] # PAHAWH HMONG VOWEL KAV
+16B18 ; [.41D6.0020.0002] # PAHAWH HMONG VOWEL KWB
+16B19 ; [.41D7.0020.0002] # PAHAWH HMONG VOWEL KWV
+16B1A ; [.41D8.0020.0002] # PAHAWH HMONG VOWEL KAAB
+16B1B ; [.41D9.0020.0002] # PAHAWH HMONG VOWEL KAAV
+16B1C ; [.41DA.0020.0002] # PAHAWH HMONG CONSONANT VAU
+16B1D ; [.41DB.0020.0002] # PAHAWH HMONG CONSONANT NTSAU
+16B1E ; [.41DC.0020.0002] # PAHAWH HMONG CONSONANT LAU
+16B1F ; [.41DD.0020.0002] # PAHAWH HMONG CONSONANT HAU
+16B20 ; [.41DE.0020.0002] # PAHAWH HMONG CONSONANT NLAU
+16B21 ; [.41DF.0020.0002] # PAHAWH HMONG CONSONANT RAU
+16B22 ; [.41E0.0020.0002] # PAHAWH HMONG CONSONANT NKAU
+16B23 ; [.41E1.0020.0002] # PAHAWH HMONG CONSONANT QHAU
+16B24 ; [.41E2.0020.0002] # PAHAWH HMONG CONSONANT YAU
+16B25 ; [.41E3.0020.0002] # PAHAWH HMONG CONSONANT HLAU
+16B26 ; [.41E4.0020.0002] # PAHAWH HMONG CONSONANT MAU
+16B27 ; [.41E5.0020.0002] # PAHAWH HMONG CONSONANT CHAU
+16B28 ; [.41E6.0020.0002] # PAHAWH HMONG CONSONANT NCHAU
+16B29 ; [.41E7.0020.0002] # PAHAWH HMONG CONSONANT HNAU
+16B2A ; [.41E8.0020.0002] # PAHAWH HMONG CONSONANT PLHAU
+16B2B ; [.41E9.0020.0002] # PAHAWH HMONG CONSONANT NTHAU
+16B2C ; [.41EA.0020.0002] # PAHAWH HMONG CONSONANT NAU
+16B2D ; [.41EB.0020.0002] # PAHAWH HMONG CONSONANT AU
+16B2E ; [.41EC.0020.0002] # PAHAWH HMONG CONSONANT XAU
+16B2F ; [.41ED.0020.0002] # PAHAWH HMONG CONSONANT CAU
+16B40 ; [.41EE.0020.0002] # PAHAWH HMONG SIGN VOS SEEV
+16B41 ; [.41EF.0020.0002] # PAHAWH HMONG SIGN MEEJ SUAB
+16B63 ; [.41F0.0020.0002] # PAHAWH HMONG SIGN VOS LUB
+16B64 ; [.41F1.0020.0002] # PAHAWH HMONG SIGN XYOO
+16B65 ; [.41F2.0020.0002] # PAHAWH HMONG SIGN HLI
+16B66 ; [.41F3.0020.0002] # PAHAWH HMONG SIGN THIRD-STAGE HLI
+16B67 ; [.41F4.0020.0002] # PAHAWH HMONG SIGN ZWJ THAJ
+16B68 ; [.41F5.0020.0002] # PAHAWH HMONG SIGN HNUB
+16B69 ; [.41F6.0020.0002] # PAHAWH HMONG SIGN NQIG
+16B6A ; [.41F7.0020.0002] # PAHAWH HMONG SIGN XIAB
+16B6B ; [.41F8.0020.0002] # PAHAWH HMONG SIGN NTUJ
+16B6C ; [.41F9.0020.0002] # PAHAWH HMONG SIGN AV
+16B6D ; [.41FA.0020.0002] # PAHAWH HMONG SIGN TXHEEJ CEEV
+16B6E ; [.41FB.0020.0002] # PAHAWH HMONG SIGN MEEJ TSEEB
+16B6F ; [.41FC.0020.0002] # PAHAWH HMONG SIGN TAU
+16B70 ; [.41FD.0020.0002] # PAHAWH HMONG SIGN LOS
+16B71 ; [.41FE.0020.0002] # PAHAWH HMONG SIGN MUS
+16B72 ; [.41FF.0020.0002] # PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG
+16B73 ; [.4200.0020.0002] # PAHAWH HMONG SIGN CIM CUAM TSHOOJ
+16B74 ; [.4201.0020.0002] # PAHAWH HMONG SIGN CIM TXWV
+16B75 ; [.4202.0020.0002] # PAHAWH HMONG SIGN CIM TXWV CHWV
+16B76 ; [.4203.0020.0002] # PAHAWH HMONG SIGN CIM PUB DAWB
+16B77 ; [.4204.0020.0002] # PAHAWH HMONG SIGN CIM NRES TOS
+16B7D ; [.4205.0020.0002] # PAHAWH HMONG CLAN SIGN TSHEEJ
+16B7E ; [.4206.0020.0002] # PAHAWH HMONG CLAN SIGN YEEG
+16B7F ; [.4207.0020.0002] # PAHAWH HMONG CLAN SIGN LIS
+16B80 ; [.4208.0020.0002] # PAHAWH HMONG CLAN SIGN LAUJ
+16B81 ; [.4209.0020.0002] # PAHAWH HMONG CLAN SIGN XYOOJ
+16B82 ; [.420A.0020.0002] # PAHAWH HMONG CLAN SIGN KOO
+16B83 ; [.420B.0020.0002] # PAHAWH HMONG CLAN SIGN HAWJ
+16B84 ; [.420C.0020.0002] # PAHAWH HMONG CLAN SIGN MUAS
+16B85 ; [.420D.0020.0002] # PAHAWH HMONG CLAN SIGN THOJ
+16B86 ; [.420E.0020.0002] # PAHAWH HMONG CLAN SIGN TSAB
+16B87 ; [.420F.0020.0002] # PAHAWH HMONG CLAN SIGN PHAB
+16B88 ; [.4210.0020.0002] # PAHAWH HMONG CLAN SIGN KHAB
+16B89 ; [.4211.0020.0002] # PAHAWH HMONG CLAN SIGN HAM
+16B8A ; [.4212.0020.0002] # PAHAWH HMONG CLAN SIGN VAJ
+16B8B ; [.4213.0020.0002] # PAHAWH HMONG CLAN SIGN FAJ
+16B8C ; [.4214.0020.0002] # PAHAWH HMONG CLAN SIGN YAJ
+16B8D ; [.4215.0020.0002] # PAHAWH HMONG CLAN SIGN TSWB
+16B8E ; [.4216.0020.0002] # PAHAWH HMONG CLAN SIGN KWM
+16B8F ; [.4217.0020.0002] # PAHAWH HMONG CLAN SIGN VWJ
+10280 ; [.4218.0020.0002] # LYCIAN LETTER A
+10281 ; [.4219.0020.0002] # LYCIAN LETTER E
+10282 ; [.421A.0020.0002] # LYCIAN LETTER B
+10283 ; [.421B.0020.0002] # LYCIAN LETTER BH
+10284 ; [.421C.0020.0002] # LYCIAN LETTER G
+10285 ; [.421D.0020.0002] # LYCIAN LETTER D
+10286 ; [.421E.0020.0002] # LYCIAN LETTER I
+10287 ; [.421F.0020.0002] # LYCIAN LETTER W
+10288 ; [.4220.0020.0002] # LYCIAN LETTER Z
+10289 ; [.4221.0020.0002] # LYCIAN LETTER TH
+1028A ; [.4222.0020.0002] # LYCIAN LETTER J
+1028B ; [.4223.0020.0002] # LYCIAN LETTER K
+1028C ; [.4224.0020.0002] # LYCIAN LETTER Q
+1028D ; [.4225.0020.0002] # LYCIAN LETTER L
+1028E ; [.4226.0020.0002] # LYCIAN LETTER M
+1028F ; [.4227.0020.0002] # LYCIAN LETTER N
+10290 ; [.4228.0020.0002] # LYCIAN LETTER MM
+10291 ; [.4229.0020.0002] # LYCIAN LETTER NN
+10292 ; [.422A.0020.0002] # LYCIAN LETTER U
+10293 ; [.422B.0020.0002] # LYCIAN LETTER P
+10294 ; [.422C.0020.0002] # LYCIAN LETTER KK
+10295 ; [.422D.0020.0002] # LYCIAN LETTER R
+10296 ; [.422E.0020.0002] # LYCIAN LETTER S
+10297 ; [.422F.0020.0002] # LYCIAN LETTER T
+10298 ; [.4230.0020.0002] # LYCIAN LETTER TT
+10299 ; [.4231.0020.0002] # LYCIAN LETTER AN
+1029A ; [.4232.0020.0002] # LYCIAN LETTER EN
+1029B ; [.4233.0020.0002] # LYCIAN LETTER H
+1029C ; [.4234.0020.0002] # LYCIAN LETTER X
+102A0 ; [.4235.0020.0002] # CARIAN LETTER A
+102A1 ; [.4236.0020.0002] # CARIAN LETTER P2
+102A2 ; [.4237.0020.0002] # CARIAN LETTER D
+102A3 ; [.4238.0020.0002] # CARIAN LETTER L
+102A4 ; [.4239.0020.0002] # CARIAN LETTER UUU
+102A5 ; [.423A.0020.0002] # CARIAN LETTER R
+102A6 ; [.423B.0020.0002] # CARIAN LETTER LD
+102A7 ; [.423C.0020.0002] # CARIAN LETTER A2
+102A8 ; [.423D.0020.0002] # CARIAN LETTER Q
+102A9 ; [.423E.0020.0002] # CARIAN LETTER B
+102AA ; [.423F.0020.0002] # CARIAN LETTER M
+102AB ; [.4240.0020.0002] # CARIAN LETTER O
+102AC ; [.4241.0020.0002] # CARIAN LETTER D2
+102AD ; [.4242.0020.0002] # CARIAN LETTER T
+102AE ; [.4243.0020.0002] # CARIAN LETTER SH
+102AF ; [.4244.0020.0002] # CARIAN LETTER SH2
+102B0 ; [.4245.0020.0002] # CARIAN LETTER S
+102B1 ; [.4246.0020.0002] # CARIAN LETTER C-18
+102B2 ; [.4247.0020.0002] # CARIAN LETTER U
+102B3 ; [.4248.0020.0002] # CARIAN LETTER NN
+102B4 ; [.4249.0020.0002] # CARIAN LETTER X
+102B5 ; [.424A.0020.0002] # CARIAN LETTER N
+102B6 ; [.424B.0020.0002] # CARIAN LETTER TT2
+102B7 ; [.424C.0020.0002] # CARIAN LETTER P
+102B8 ; [.424D.0020.0002] # CARIAN LETTER SS
+102B9 ; [.424E.0020.0002] # CARIAN LETTER I
+102BA ; [.424F.0020.0002] # CARIAN LETTER E
+102BB ; [.4250.0020.0002] # CARIAN LETTER UUUU
+102BC ; [.4251.0020.0002] # CARIAN LETTER K
+102BD ; [.4252.0020.0002] # CARIAN LETTER K2
+102BE ; [.4253.0020.0002] # CARIAN LETTER ND
+102BF ; [.4254.0020.0002] # CARIAN LETTER UU
+102C0 ; [.4255.0020.0002] # CARIAN LETTER G
+102C1 ; [.4256.0020.0002] # CARIAN LETTER G2
+102C2 ; [.4257.0020.0002] # CARIAN LETTER ST
+102C3 ; [.4258.0020.0002] # CARIAN LETTER ST2
+102C4 ; [.4259.0020.0002] # CARIAN LETTER NG
+102C5 ; [.425A.0020.0002] # CARIAN LETTER II
+102C6 ; [.425B.0020.0002] # CARIAN LETTER C-39
+102C7 ; [.425C.0020.0002] # CARIAN LETTER TT
+102C8 ; [.425D.0020.0002] # CARIAN LETTER UUU2
+102C9 ; [.425E.0020.0002] # CARIAN LETTER RR
+102CA ; [.425F.0020.0002] # CARIAN LETTER MB
+102CB ; [.4260.0020.0002] # CARIAN LETTER MB2
+102CC ; [.4261.0020.0002] # CARIAN LETTER MB3
+102CD ; [.4262.0020.0002] # CARIAN LETTER MB4
+102CE ; [.4263.0020.0002] # CARIAN LETTER LD2
+102CF ; [.4264.0020.0002] # CARIAN LETTER E2
+102D0 ; [.4265.0020.0002] # CARIAN LETTER UUU3
+10920 ; [.4266.0020.0002] # LYDIAN LETTER A
+10921 ; [.4267.0020.0002] # LYDIAN LETTER B
+10922 ; [.4268.0020.0002] # LYDIAN LETTER G
+10923 ; [.4269.0020.0002] # LYDIAN LETTER D
+10924 ; [.426A.0020.0002] # LYDIAN LETTER E
+10925 ; [.426B.0020.0002] # LYDIAN LETTER V
+10926 ; [.426C.0020.0002] # LYDIAN LETTER I
+10927 ; [.426D.0020.0002] # LYDIAN LETTER Y
+10928 ; [.426E.0020.0002] # LYDIAN LETTER K
+10929 ; [.426F.0020.0002] # LYDIAN LETTER L
+1092A ; [.4270.0020.0002] # LYDIAN LETTER M
+1092B ; [.4271.0020.0002] # LYDIAN LETTER N
+1092C ; [.4272.0020.0002] # LYDIAN LETTER O
+1092D ; [.4273.0020.0002] # LYDIAN LETTER R
+1092E ; [.4274.0020.0002] # LYDIAN LETTER SS
+1092F ; [.4275.0020.0002] # LYDIAN LETTER T
+10930 ; [.4276.0020.0002] # LYDIAN LETTER U
+10931 ; [.4277.0020.0002] # LYDIAN LETTER F
+10932 ; [.4278.0020.0002] # LYDIAN LETTER Q
+10933 ; [.4279.0020.0002] # LYDIAN LETTER S
+10934 ; [.427A.0020.0002] # LYDIAN LETTER TT
+10935 ; [.427B.0020.0002] # LYDIAN LETTER AN
+10936 ; [.427C.0020.0002] # LYDIAN LETTER EN
+10937 ; [.427D.0020.0002] # LYDIAN LETTER LY
+10938 ; [.427E.0020.0002] # LYDIAN LETTER NN
+10939 ; [.427F.0020.0002] # LYDIAN LETTER C
+10300 ; [.4280.0020.0002] # OLD ITALIC LETTER A
+10301 ; [.4281.0020.0002] # OLD ITALIC LETTER BE
+10302 ; [.4282.0020.0002] # OLD ITALIC LETTER KE
+10303 ; [.4283.0020.0002] # OLD ITALIC LETTER DE
+10304 ; [.4284.0020.0002] # OLD ITALIC LETTER E
+10305 ; [.4285.0020.0002] # OLD ITALIC LETTER VE
+10306 ; [.4286.0020.0002] # OLD ITALIC LETTER ZE
+10307 ; [.4287.0020.0002] # OLD ITALIC LETTER HE
+10308 ; [.4288.0020.0002] # OLD ITALIC LETTER THE
+10309 ; [.4289.0020.0002] # OLD ITALIC LETTER I
+1030A ; [.428A.0020.0002] # OLD ITALIC LETTER KA
+1030B ; [.428B.0020.0002] # OLD ITALIC LETTER EL
+1030C ; [.428C.0020.0002] # OLD ITALIC LETTER EM
+1030D ; [.428D.0020.0002] # OLD ITALIC LETTER EN
+1030E ; [.428E.0020.0002] # OLD ITALIC LETTER ESH
+1031F ; [.428F.0020.0002] # OLD ITALIC LETTER ESS
+1030F ; [.4290.0020.0002] # OLD ITALIC LETTER O
+10310 ; [.4291.0020.0002] # OLD ITALIC LETTER PE
+10311 ; [.4292.0020.0002] # OLD ITALIC LETTER SHE
+10312 ; [.4293.0020.0002] # OLD ITALIC LETTER KU
+10313 ; [.4294.0020.0002] # OLD ITALIC LETTER ER
+10314 ; [.4295.0020.0002] # OLD ITALIC LETTER ES
+10315 ; [.4296.0020.0002] # OLD ITALIC LETTER TE
+10316 ; [.4297.0020.0002] # OLD ITALIC LETTER U
+10317 ; [.4298.0020.0002] # OLD ITALIC LETTER EKS
+10318 ; [.4299.0020.0002] # OLD ITALIC LETTER PHE
+10319 ; [.429A.0020.0002] # OLD ITALIC LETTER KHE
+1031A ; [.429B.0020.0002] # OLD ITALIC LETTER EF
+1031B ; [.429C.0020.0002] # OLD ITALIC LETTER ERS
+1031C ; [.429D.0020.0002] # OLD ITALIC LETTER CHE
+1031D ; [.429E.0020.0002] # OLD ITALIC LETTER II
+1031E ; [.429F.0020.0002] # OLD ITALIC LETTER UU
+10330 ; [.42A0.0020.0002] # GOTHIC LETTER AHSA
+10331 ; [.42A1.0020.0002] # GOTHIC LETTER BAIRKAN
+10332 ; [.42A2.0020.0002] # GOTHIC LETTER GIBA
+10333 ; [.42A3.0020.0002] # GOTHIC LETTER DAGS
+10334 ; [.42A4.0020.0002] # GOTHIC LETTER AIHVUS
+10335 ; [.42A5.0020.0002] # GOTHIC LETTER QAIRTHRA
+10336 ; [.42A6.0020.0002] # GOTHIC LETTER IUJA
+10337 ; [.42A7.0020.0002] # GOTHIC LETTER HAGL
+10338 ; [.42A8.0020.0002] # GOTHIC LETTER THIUTH
+10339 ; [.42A9.0020.0002] # GOTHIC LETTER EIS
+1033A ; [.42AA.0020.0002] # GOTHIC LETTER KUSMA
+1033B ; [.42AB.0020.0002] # GOTHIC LETTER LAGUS
+1033C ; [.42AC.0020.0002] # GOTHIC LETTER MANNA
+1033D ; [.42AD.0020.0002] # GOTHIC LETTER NAUTHS
+1033E ; [.42AE.0020.0002] # GOTHIC LETTER JER
+1033F ; [.42AF.0020.0002] # GOTHIC LETTER URUS
+10340 ; [.42B0.0020.0002] # GOTHIC LETTER PAIRTHRA
+10341 ; [.42B1.0020.0002] # GOTHIC LETTER NINETY
+10342 ; [.42B2.0020.0002] # GOTHIC LETTER RAIDA
+10343 ; [.42B3.0020.0002] # GOTHIC LETTER SAUIL
+10344 ; [.42B4.0020.0002] # GOTHIC LETTER TEIWS
+10345 ; [.42B5.0020.0002] # GOTHIC LETTER WINJA
+10346 ; [.42B6.0020.0002] # GOTHIC LETTER FAIHU
+10347 ; [.42B7.0020.0002] # GOTHIC LETTER IGGWS
+10348 ; [.42B8.0020.0002] # GOTHIC LETTER HWAIR
+10349 ; [.42B9.0020.0002] # GOTHIC LETTER OTHAL
+1034A ; [.42BA.0020.0002] # GOTHIC LETTER NINE HUNDRED
+10428 ; [.42BB.0020.0002] # DESERET SMALL LETTER LONG I
+10400 ; [.42BB.0020.0008] # DESERET CAPITAL LETTER LONG I
+10429 ; [.42BC.0020.0002] # DESERET SMALL LETTER LONG E
+10401 ; [.42BC.0020.0008] # DESERET CAPITAL LETTER LONG E
+1042A ; [.42BD.0020.0002] # DESERET SMALL LETTER LONG A
+10402 ; [.42BD.0020.0008] # DESERET CAPITAL LETTER LONG A
+1042B ; [.42BE.0020.0002] # DESERET SMALL LETTER LONG AH
+10403 ; [.42BE.0020.0008] # DESERET CAPITAL LETTER LONG AH
+1042C ; [.42BF.0020.0002] # DESERET SMALL LETTER LONG O
+10404 ; [.42BF.0020.0008] # DESERET CAPITAL LETTER LONG O
+1042D ; [.42C0.0020.0002] # DESERET SMALL LETTER LONG OO
+10405 ; [.42C0.0020.0008] # DESERET CAPITAL LETTER LONG OO
+1042E ; [.42C1.0020.0002] # DESERET SMALL LETTER SHORT I
+10406 ; [.42C1.0020.0008] # DESERET CAPITAL LETTER SHORT I
+1042F ; [.42C2.0020.0002] # DESERET SMALL LETTER SHORT E
+10407 ; [.42C2.0020.0008] # DESERET CAPITAL LETTER SHORT E
+10430 ; [.42C3.0020.0002] # DESERET SMALL LETTER SHORT A
+10408 ; [.42C3.0020.0008] # DESERET CAPITAL LETTER SHORT A
+10431 ; [.42C4.0020.0002] # DESERET SMALL LETTER SHORT AH
+10409 ; [.42C4.0020.0008] # DESERET CAPITAL LETTER SHORT AH
+10432 ; [.42C5.0020.0002] # DESERET SMALL LETTER SHORT O
+1040A ; [.42C5.0020.0008] # DESERET CAPITAL LETTER SHORT O
+10433 ; [.42C6.0020.0002] # DESERET SMALL LETTER SHORT OO
+1040B ; [.42C6.0020.0008] # DESERET CAPITAL LETTER SHORT OO
+10434 ; [.42C7.0020.0002] # DESERET SMALL LETTER AY
+1040C ; [.42C7.0020.0008] # DESERET CAPITAL LETTER AY
+10435 ; [.42C8.0020.0002] # DESERET SMALL LETTER OW
+1040D ; [.42C8.0020.0008] # DESERET CAPITAL LETTER OW
+10436 ; [.42C9.0020.0002] # DESERET SMALL LETTER WU
+1040E ; [.42C9.0020.0008] # DESERET CAPITAL LETTER WU
+10437 ; [.42CA.0020.0002] # DESERET SMALL LETTER YEE
+1040F ; [.42CA.0020.0008] # DESERET CAPITAL LETTER YEE
+10438 ; [.42CB.0020.0002] # DESERET SMALL LETTER H
+10410 ; [.42CB.0020.0008] # DESERET CAPITAL LETTER H
+10439 ; [.42CC.0020.0002] # DESERET SMALL LETTER PEE
+10411 ; [.42CC.0020.0008] # DESERET CAPITAL LETTER PEE
+1043A ; [.42CD.0020.0002] # DESERET SMALL LETTER BEE
+10412 ; [.42CD.0020.0008] # DESERET CAPITAL LETTER BEE
+1043B ; [.42CE.0020.0002] # DESERET SMALL LETTER TEE
+10413 ; [.42CE.0020.0008] # DESERET CAPITAL LETTER TEE
+1043C ; [.42CF.0020.0002] # DESERET SMALL LETTER DEE
+10414 ; [.42CF.0020.0008] # DESERET CAPITAL LETTER DEE
+1043D ; [.42D0.0020.0002] # DESERET SMALL LETTER CHEE
+10415 ; [.42D0.0020.0008] # DESERET CAPITAL LETTER CHEE
+1043E ; [.42D1.0020.0002] # DESERET SMALL LETTER JEE
+10416 ; [.42D1.0020.0008] # DESERET CAPITAL LETTER JEE
+1043F ; [.42D2.0020.0002] # DESERET SMALL LETTER KAY
+10417 ; [.42D2.0020.0008] # DESERET CAPITAL LETTER KAY
+10440 ; [.42D3.0020.0002] # DESERET SMALL LETTER GAY
+10418 ; [.42D3.0020.0008] # DESERET CAPITAL LETTER GAY
+10441 ; [.42D4.0020.0002] # DESERET SMALL LETTER EF
+10419 ; [.42D4.0020.0008] # DESERET CAPITAL LETTER EF
+10442 ; [.42D5.0020.0002] # DESERET SMALL LETTER VEE
+1041A ; [.42D5.0020.0008] # DESERET CAPITAL LETTER VEE
+10443 ; [.42D6.0020.0002] # DESERET SMALL LETTER ETH
+1041B ; [.42D6.0020.0008] # DESERET CAPITAL LETTER ETH
+10444 ; [.42D7.0020.0002] # DESERET SMALL LETTER THEE
+1041C ; [.42D7.0020.0008] # DESERET CAPITAL LETTER THEE
+10445 ; [.42D8.0020.0002] # DESERET SMALL LETTER ES
+1041D ; [.42D8.0020.0008] # DESERET CAPITAL LETTER ES
+10446 ; [.42D9.0020.0002] # DESERET SMALL LETTER ZEE
+1041E ; [.42D9.0020.0008] # DESERET CAPITAL LETTER ZEE
+10447 ; [.42DA.0020.0002] # DESERET SMALL LETTER ESH
+1041F ; [.42DA.0020.0008] # DESERET CAPITAL LETTER ESH
+10448 ; [.42DB.0020.0002] # DESERET SMALL LETTER ZHEE
+10420 ; [.42DB.0020.0008] # DESERET CAPITAL LETTER ZHEE
+10449 ; [.42DC.0020.0002] # DESERET SMALL LETTER ER
+10421 ; [.42DC.0020.0008] # DESERET CAPITAL LETTER ER
+1044A ; [.42DD.0020.0002] # DESERET SMALL LETTER EL
+10422 ; [.42DD.0020.0008] # DESERET CAPITAL LETTER EL
+1044B ; [.42DE.0020.0002] # DESERET SMALL LETTER EM
+10423 ; [.42DE.0020.0008] # DESERET CAPITAL LETTER EM
+1044C ; [.42DF.0020.0002] # DESERET SMALL LETTER EN
+10424 ; [.42DF.0020.0008] # DESERET CAPITAL LETTER EN
+1044D ; [.42E0.0020.0002] # DESERET SMALL LETTER ENG
+10425 ; [.42E0.0020.0008] # DESERET CAPITAL LETTER ENG
+1044E ; [.42E1.0020.0002] # DESERET SMALL LETTER OI
+10426 ; [.42E1.0020.0008] # DESERET CAPITAL LETTER OI
+1044F ; [.42E2.0020.0002] # DESERET SMALL LETTER EW
+10427 ; [.42E2.0020.0008] # DESERET CAPITAL LETTER EW
+10450 ; [.42E3.0020.0002] # SHAVIAN LETTER PEEP
+10451 ; [.42E4.0020.0002] # SHAVIAN LETTER TOT
+10452 ; [.42E5.0020.0002] # SHAVIAN LETTER KICK
+10453 ; [.42E6.0020.0002] # SHAVIAN LETTER FEE
+10454 ; [.42E7.0020.0002] # SHAVIAN LETTER THIGH
+10455 ; [.42E8.0020.0002] # SHAVIAN LETTER SO
+10456 ; [.42E9.0020.0002] # SHAVIAN LETTER SURE
+10457 ; [.42EA.0020.0002] # SHAVIAN LETTER CHURCH
+10458 ; [.42EB.0020.0002] # SHAVIAN LETTER YEA
+10459 ; [.42EC.0020.0002] # SHAVIAN LETTER HUNG
+1045A ; [.42ED.0020.0002] # SHAVIAN LETTER BIB
+1045B ; [.42EE.0020.0002] # SHAVIAN LETTER DEAD
+1045C ; [.42EF.0020.0002] # SHAVIAN LETTER GAG
+1045D ; [.42F0.0020.0002] # SHAVIAN LETTER VOW
+1045E ; [.42F1.0020.0002] # SHAVIAN LETTER THEY
+1045F ; [.42F2.0020.0002] # SHAVIAN LETTER ZOO
+10460 ; [.42F3.0020.0002] # SHAVIAN LETTER MEASURE
+10461 ; [.42F4.0020.0002] # SHAVIAN LETTER JUDGE
+10462 ; [.42F5.0020.0002] # SHAVIAN LETTER WOE
+10463 ; [.42F6.0020.0002] # SHAVIAN LETTER HA-HA
+10464 ; [.42F7.0020.0002] # SHAVIAN LETTER LOLL
+10465 ; [.42F8.0020.0002] # SHAVIAN LETTER MIME
+10466 ; [.42F9.0020.0002] # SHAVIAN LETTER IF
+10467 ; [.42FA.0020.0002] # SHAVIAN LETTER EGG
+10468 ; [.42FB.0020.0002] # SHAVIAN LETTER ASH
+10469 ; [.42FC.0020.0002] # SHAVIAN LETTER ADO
+1046A ; [.42FD.0020.0002] # SHAVIAN LETTER ON
+1046B ; [.42FE.0020.0002] # SHAVIAN LETTER WOOL
+1046C ; [.42FF.0020.0002] # SHAVIAN LETTER OUT
+1046D ; [.4300.0020.0002] # SHAVIAN LETTER AH
+1046E ; [.4301.0020.0002] # SHAVIAN LETTER ROAR
+1046F ; [.4302.0020.0002] # SHAVIAN LETTER NUN
+10470 ; [.4303.0020.0002] # SHAVIAN LETTER EAT
+10471 ; [.4304.0020.0002] # SHAVIAN LETTER AGE
+10472 ; [.4305.0020.0002] # SHAVIAN LETTER ICE
+10473 ; [.4306.0020.0002] # SHAVIAN LETTER UP
+10474 ; [.4307.0020.0002] # SHAVIAN LETTER OAK
+10475 ; [.4308.0020.0002] # SHAVIAN LETTER OOZE
+10476 ; [.4309.0020.0002] # SHAVIAN LETTER OIL
+10477 ; [.430A.0020.0002] # SHAVIAN LETTER AWE
+10478 ; [.430B.0020.0002] # SHAVIAN LETTER ARE
+10479 ; [.430C.0020.0002] # SHAVIAN LETTER OR
+1047A ; [.430D.0020.0002] # SHAVIAN LETTER AIR
+1047B ; [.430E.0020.0002] # SHAVIAN LETTER ERR
+1047C ; [.430F.0020.0002] # SHAVIAN LETTER ARRAY
+1047D ; [.4310.0020.0002] # SHAVIAN LETTER EAR
+1047E ; [.4311.0020.0002] # SHAVIAN LETTER IAN
+1047F ; [.4312.0020.0002] # SHAVIAN LETTER YEW
+1BC00 ; [.4313.0020.0002] # DUPLOYAN LETTER H
+1BC01 ; [.4314.0020.0002] # DUPLOYAN LETTER X
+1BC02 ; [.4315.0020.0002] # DUPLOYAN LETTER P
+1BC03 ; [.4316.0020.0002] # DUPLOYAN LETTER T
+1BC04 ; [.4317.0020.0002] # DUPLOYAN LETTER F
+1BC05 ; [.4318.0020.0002] # DUPLOYAN LETTER K
+1BC06 ; [.4319.0020.0002] # DUPLOYAN LETTER L
+1BC07 ; [.431A.0020.0002] # DUPLOYAN LETTER B
+1BC08 ; [.431B.0020.0002] # DUPLOYAN LETTER D
+1BC09 ; [.431C.0020.0002] # DUPLOYAN LETTER V
+1BC0A ; [.431D.0020.0002] # DUPLOYAN LETTER G
+1BC0B ; [.431E.0020.0002] # DUPLOYAN LETTER R
+1BC0C ; [.431F.0020.0002] # DUPLOYAN LETTER P N
+1BC0D ; [.4320.0020.0002] # DUPLOYAN LETTER D S
+1BC0E ; [.4321.0020.0002] # DUPLOYAN LETTER F N
+1BC0F ; [.4322.0020.0002] # DUPLOYAN LETTER K M
+1BC10 ; [.4323.0020.0002] # DUPLOYAN LETTER R S
+1BC11 ; [.4324.0020.0002] # DUPLOYAN LETTER TH
+1BC12 ; [.4325.0020.0002] # DUPLOYAN LETTER SLOAN DH
+1BC13 ; [.4326.0020.0002] # DUPLOYAN LETTER DH
+1BC14 ; [.4327.0020.0002] # DUPLOYAN LETTER KK
+1BC15 ; [.4328.0020.0002] # DUPLOYAN LETTER SLOAN J
+1BC16 ; [.4329.0020.0002] # DUPLOYAN LETTER HL
+1BC17 ; [.432A.0020.0002] # DUPLOYAN LETTER LH
+1BC18 ; [.432B.0020.0002] # DUPLOYAN LETTER RH
+1BC19 ; [.432C.0020.0002] # DUPLOYAN LETTER M
+1BC1A ; [.432D.0020.0002] # DUPLOYAN LETTER N
+1BC1B ; [.432E.0020.0002] # DUPLOYAN LETTER J
+1BC1C ; [.432F.0020.0002] # DUPLOYAN LETTER S
+1BC1D ; [.4330.0020.0002] # DUPLOYAN LETTER M N
+1BC1E ; [.4331.0020.0002] # DUPLOYAN LETTER N M
+1BC1F ; [.4332.0020.0002] # DUPLOYAN LETTER J M
+1BC20 ; [.4333.0020.0002] # DUPLOYAN LETTER S J
+1BC21 ; [.4334.0020.0002] # DUPLOYAN LETTER M WITH DOT
+1BC22 ; [.4335.0020.0002] # DUPLOYAN LETTER N WITH DOT
+1BC23 ; [.4336.0020.0002] # DUPLOYAN LETTER J WITH DOT
+1BC24 ; [.4337.0020.0002] # DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE
+1BC25 ; [.4338.0020.0002] # DUPLOYAN LETTER S WITH DOT
+1BC26 ; [.4339.0020.0002] # DUPLOYAN LETTER S WITH DOT BELOW
+1BC27 ; [.433A.0020.0002] # DUPLOYAN LETTER M S
+1BC28 ; [.433B.0020.0002] # DUPLOYAN LETTER N S
+1BC29 ; [.433C.0020.0002] # DUPLOYAN LETTER J S
+1BC2A ; [.433D.0020.0002] # DUPLOYAN LETTER S S
+1BC2B ; [.433E.0020.0002] # DUPLOYAN LETTER M N S
+1BC2C ; [.433F.0020.0002] # DUPLOYAN LETTER N M S
+1BC2D ; [.4340.0020.0002] # DUPLOYAN LETTER J M S
+1BC2E ; [.4341.0020.0002] # DUPLOYAN LETTER S J S
+1BC2F ; [.4342.0020.0002] # DUPLOYAN LETTER J S WITH DOT
+1BC30 ; [.4343.0020.0002] # DUPLOYAN LETTER J N
+1BC31 ; [.4344.0020.0002] # DUPLOYAN LETTER J N S
+1BC32 ; [.4345.0020.0002] # DUPLOYAN LETTER S T
+1BC33 ; [.4346.0020.0002] # DUPLOYAN LETTER S T R
+1BC34 ; [.4347.0020.0002] # DUPLOYAN LETTER S P
+1BC35 ; [.4348.0020.0002] # DUPLOYAN LETTER S P R
+1BC36 ; [.4349.0020.0002] # DUPLOYAN LETTER T S
+1BC37 ; [.434A.0020.0002] # DUPLOYAN LETTER T R S
+1BC38 ; [.434B.0020.0002] # DUPLOYAN LETTER W
+1BC39 ; [.434C.0020.0002] # DUPLOYAN LETTER WH
+1BC3A ; [.434D.0020.0002] # DUPLOYAN LETTER W R
+1BC3B ; [.434E.0020.0002] # DUPLOYAN LETTER S N
+1BC3C ; [.434F.0020.0002] # DUPLOYAN LETTER S M
+1BC3D ; [.4350.0020.0002] # DUPLOYAN LETTER K R S
+1BC3E ; [.4351.0020.0002] # DUPLOYAN LETTER G R S
+1BC3F ; [.4352.0020.0002] # DUPLOYAN LETTER S K
+1BC40 ; [.4353.0020.0002] # DUPLOYAN LETTER S K R
+1BC41 ; [.4354.0020.0002] # DUPLOYAN LETTER A
+1BC42 ; [.4355.0020.0002] # DUPLOYAN LETTER SLOAN OW
+1BC43 ; [.4356.0020.0002] # DUPLOYAN LETTER OA
+1BC44 ; [.4357.0020.0002] # DUPLOYAN LETTER O
+1BC45 ; [.4358.0020.0002] # DUPLOYAN LETTER AOU
+1BC46 ; [.4359.0020.0002] # DUPLOYAN LETTER I
+1BC47 ; [.435A.0020.0002] # DUPLOYAN LETTER E
+1BC48 ; [.435B.0020.0002] # DUPLOYAN LETTER IE
+1BC49 ; [.435C.0020.0002] # DUPLOYAN LETTER SHORT I
+1BC4A ; [.435D.0020.0002] # DUPLOYAN LETTER UI
+1BC4B ; [.435E.0020.0002] # DUPLOYAN LETTER EE
+1BC4C ; [.435F.0020.0002] # DUPLOYAN LETTER SLOAN EH
+1BC4D ; [.4360.0020.0002] # DUPLOYAN LETTER ROMANIAN I
+1BC4E ; [.4361.0020.0002] # DUPLOYAN LETTER SLOAN EE
+1BC4F ; [.4362.0020.0002] # DUPLOYAN LETTER LONG I
+1BC50 ; [.4363.0020.0002] # DUPLOYAN LETTER YE
+1BC51 ; [.4364.0020.0002] # DUPLOYAN LETTER U
+1BC52 ; [.4365.0020.0002] # DUPLOYAN LETTER EU
+1BC53 ; [.4366.0020.0002] # DUPLOYAN LETTER XW
+1BC54 ; [.4367.0020.0002] # DUPLOYAN LETTER U N
+1BC55 ; [.4368.0020.0002] # DUPLOYAN LETTER LONG U
+1BC56 ; [.4369.0020.0002] # DUPLOYAN LETTER ROMANIAN U
+1BC57 ; [.436A.0020.0002] # DUPLOYAN LETTER UH
+1BC58 ; [.436B.0020.0002] # DUPLOYAN LETTER SLOAN U
+1BC59 ; [.436C.0020.0002] # DUPLOYAN LETTER OOH
+1BC5A ; [.436D.0020.0002] # DUPLOYAN LETTER OW
+1BC5B ; [.436E.0020.0002] # DUPLOYAN LETTER OU
+1BC5C ; [.436F.0020.0002] # DUPLOYAN LETTER WA
+1BC5D ; [.4370.0020.0002] # DUPLOYAN LETTER WO
+1BC5E ; [.4371.0020.0002] # DUPLOYAN LETTER WI
+1BC5F ; [.4372.0020.0002] # DUPLOYAN LETTER WEI
+1BC60 ; [.4373.0020.0002] # DUPLOYAN LETTER WOW
+1BC61 ; [.4374.0020.0002] # DUPLOYAN LETTER NASAL U
+1BC62 ; [.4375.0020.0002] # DUPLOYAN LETTER NASAL O
+1BC63 ; [.4376.0020.0002] # DUPLOYAN LETTER NASAL I
+1BC64 ; [.4377.0020.0002] # DUPLOYAN LETTER NASAL A
+1BC65 ; [.4378.0020.0002] # DUPLOYAN LETTER PERNIN AN
+1BC66 ; [.4379.0020.0002] # DUPLOYAN LETTER PERNIN AM
+1BC67 ; [.437A.0020.0002] # DUPLOYAN LETTER SLOAN EN
+1BC68 ; [.437B.0020.0002] # DUPLOYAN LETTER SLOAN AN
+1BC69 ; [.437C.0020.0002] # DUPLOYAN LETTER SLOAN ON
+1BC6A ; [.437D.0020.0002] # DUPLOYAN LETTER VOCALIC M
+1BC70 ; [.437E.0020.0002] # DUPLOYAN AFFIX LEFT HORIZONTAL SECANT
+1BC71 ; [.437F.0020.0002] # DUPLOYAN AFFIX MID HORIZONTAL SECANT
+1BC72 ; [.4380.0020.0002] # DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT
+1BC73 ; [.4381.0020.0002] # DUPLOYAN AFFIX LOW VERTICAL SECANT
+1BC74 ; [.4382.0020.0002] # DUPLOYAN AFFIX MID VERTICAL SECANT
+1BC75 ; [.4383.0020.0002] # DUPLOYAN AFFIX HIGH VERTICAL SECANT
+1BC76 ; [.4384.0020.0002] # DUPLOYAN AFFIX ATTACHED SECANT
+1BC77 ; [.4385.0020.0002] # DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT
+1BC78 ; [.4386.0020.0002] # DUPLOYAN AFFIX ATTACHED TANGENT
+1BC79 ; [.4387.0020.0002] # DUPLOYAN AFFIX ATTACHED TAIL
+1BC7A ; [.4388.0020.0002] # DUPLOYAN AFFIX ATTACHED E HOOK
+1BC7B ; [.4389.0020.0002] # DUPLOYAN AFFIX ATTACHED I HOOK
+1BC7C ; [.438A.0020.0002] # DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80 ; [.438B.0020.0002] # DUPLOYAN AFFIX HIGH ACUTE
+1BC81 ; [.438C.0020.0002] # DUPLOYAN AFFIX HIGH TIGHT ACUTE
+1BC82 ; [.438D.0020.0002] # DUPLOYAN AFFIX HIGH GRAVE
+1BC83 ; [.438E.0020.0002] # DUPLOYAN AFFIX HIGH LONG GRAVE
+1BC84 ; [.438F.0020.0002] # DUPLOYAN AFFIX HIGH DOT
+1BC85 ; [.4390.0020.0002] # DUPLOYAN AFFIX HIGH CIRCLE
+1BC86 ; [.4391.0020.0002] # DUPLOYAN AFFIX HIGH LINE
+1BC87 ; [.4392.0020.0002] # DUPLOYAN AFFIX HIGH WAVE
+1BC88 ; [.4393.0020.0002] # DUPLOYAN AFFIX HIGH VERTICAL
+1BC90 ; [.4394.0020.0002] # DUPLOYAN AFFIX LOW ACUTE
+1BC91 ; [.4395.0020.0002] # DUPLOYAN AFFIX LOW TIGHT ACUTE
+1BC92 ; [.4396.0020.0002] # DUPLOYAN AFFIX LOW GRAVE
+1BC93 ; [.4397.0020.0002] # DUPLOYAN AFFIX LOW LONG GRAVE
+1BC94 ; [.4398.0020.0002] # DUPLOYAN AFFIX LOW DOT
+1BC95 ; [.4399.0020.0002] # DUPLOYAN AFFIX LOW CIRCLE
+1BC96 ; [.439A.0020.0002] # DUPLOYAN AFFIX LOW LINE
+1BC97 ; [.439B.0020.0002] # DUPLOYAN AFFIX LOW WAVE
+1BC98 ; [.439C.0020.0002] # DUPLOYAN AFFIX LOW VERTICAL
+1BC99 ; [.439D.0020.0002] # DUPLOYAN AFFIX LOW ARROW
+10480 ; [.439E.0020.0002] # OSMANYA LETTER ALEF
+10481 ; [.439F.0020.0002] # OSMANYA LETTER BA
+10482 ; [.43A0.0020.0002] # OSMANYA LETTER TA
+10483 ; [.43A1.0020.0002] # OSMANYA LETTER JA
+10484 ; [.43A2.0020.0002] # OSMANYA LETTER XA
+10485 ; [.43A3.0020.0002] # OSMANYA LETTER KHA
+10486 ; [.43A4.0020.0002] # OSMANYA LETTER DEEL
+10487 ; [.43A5.0020.0002] # OSMANYA LETTER RA
+10488 ; [.43A6.0020.0002] # OSMANYA LETTER SA
+10489 ; [.43A7.0020.0002] # OSMANYA LETTER SHIIN
+1048A ; [.43A8.0020.0002] # OSMANYA LETTER DHA
+1048B ; [.43A9.0020.0002] # OSMANYA LETTER CAYN
+1048C ; [.43AA.0020.0002] # OSMANYA LETTER GA
+1048D ; [.43AB.0020.0002] # OSMANYA LETTER FA
+1048E ; [.43AC.0020.0002] # OSMANYA LETTER QAAF
+1048F ; [.43AD.0020.0002] # OSMANYA LETTER KAAF
+10490 ; [.43AE.0020.0002] # OSMANYA LETTER LAAN
+10491 ; [.43AF.0020.0002] # OSMANYA LETTER MIIN
+10492 ; [.43B0.0020.0002] # OSMANYA LETTER NUUN
+10493 ; [.43B1.0020.0002] # OSMANYA LETTER WAW
+10494 ; [.43B2.0020.0002] # OSMANYA LETTER HA
+10495 ; [.43B3.0020.0002] # OSMANYA LETTER YA
+10496 ; [.43B4.0020.0002] # OSMANYA LETTER A
+10497 ; [.43B5.0020.0002] # OSMANYA LETTER E
+10498 ; [.43B6.0020.0002] # OSMANYA LETTER I
+10499 ; [.43B7.0020.0002] # OSMANYA LETTER O
+1049A ; [.43B8.0020.0002] # OSMANYA LETTER U
+1049B ; [.43B9.0020.0002] # OSMANYA LETTER AA
+1049C ; [.43BA.0020.0002] # OSMANYA LETTER EE
+1049D ; [.43BB.0020.0002] # OSMANYA LETTER OO
+10500 ; [.43BC.0020.0002] # ELBASAN LETTER A
+10501 ; [.43BD.0020.0002] # ELBASAN LETTER BE
+10502 ; [.43BE.0020.0002] # ELBASAN LETTER CE
+10503 ; [.43BF.0020.0002] # ELBASAN LETTER CHE
+10504 ; [.43C0.0020.0002] # ELBASAN LETTER DE
+10505 ; [.43C1.0020.0002] # ELBASAN LETTER NDE
+10506 ; [.43C2.0020.0002] # ELBASAN LETTER DHE
+10507 ; [.43C3.0020.0002] # ELBASAN LETTER EI
+10508 ; [.43C4.0020.0002] # ELBASAN LETTER E
+10509 ; [.43C5.0020.0002] # ELBASAN LETTER FE
+1050A ; [.43C6.0020.0002] # ELBASAN LETTER GE
+1050B ; [.43C7.0020.0002] # ELBASAN LETTER GJE
+1050C ; [.43C8.0020.0002] # ELBASAN LETTER HE
+1050D ; [.43C9.0020.0002] # ELBASAN LETTER I
+1050E ; [.43CA.0020.0002] # ELBASAN LETTER JE
+1050F ; [.43CB.0020.0002] # ELBASAN LETTER KE
+10510 ; [.43CC.0020.0002] # ELBASAN LETTER LE
+10511 ; [.43CD.0020.0002] # ELBASAN LETTER LLE
+10512 ; [.43CE.0020.0002] # ELBASAN LETTER ME
+10513 ; [.43CF.0020.0002] # ELBASAN LETTER NE
+10514 ; [.43D0.0020.0002] # ELBASAN LETTER NA
+10515 ; [.43D1.0020.0002] # ELBASAN LETTER NJE
+10516 ; [.43D2.0020.0002] # ELBASAN LETTER O
+10517 ; [.43D3.0020.0002] # ELBASAN LETTER PE
+10518 ; [.43D4.0020.0002] # ELBASAN LETTER QE
+10519 ; [.43D5.0020.0002] # ELBASAN LETTER RE
+1051A ; [.43D6.0020.0002] # ELBASAN LETTER RRE
+1051B ; [.43D7.0020.0002] # ELBASAN LETTER SE
+1051C ; [.43D8.0020.0002] # ELBASAN LETTER SHE
+1051D ; [.43D9.0020.0002] # ELBASAN LETTER TE
+1051E ; [.43DA.0020.0002] # ELBASAN LETTER THE
+1051F ; [.43DB.0020.0002] # ELBASAN LETTER U
+10520 ; [.43DC.0020.0002] # ELBASAN LETTER VE
+10521 ; [.43DD.0020.0002] # ELBASAN LETTER XE
+10522 ; [.43DE.0020.0002] # ELBASAN LETTER Y
+10523 ; [.43DF.0020.0002] # ELBASAN LETTER ZE
+10524 ; [.43E0.0020.0002] # ELBASAN LETTER ZHE
+10525 ; [.43E1.0020.0002] # ELBASAN LETTER GHE
+10526 ; [.43E2.0020.0002] # ELBASAN LETTER GHAMMA
+10527 ; [.43E3.0020.0002] # ELBASAN LETTER KHE
+10530 ; [.43E4.0020.0002] # CAUCASIAN ALBANIAN LETTER ALT
+10531 ; [.43E5.0020.0002] # CAUCASIAN ALBANIAN LETTER BET
+10532 ; [.43E6.0020.0002] # CAUCASIAN ALBANIAN LETTER GIM
+10533 ; [.43E7.0020.0002] # CAUCASIAN ALBANIAN LETTER DAT
+10534 ; [.43E8.0020.0002] # CAUCASIAN ALBANIAN LETTER EB
+10535 ; [.43E9.0020.0002] # CAUCASIAN ALBANIAN LETTER ZARL
+10536 ; [.43EA.0020.0002] # CAUCASIAN ALBANIAN LETTER EYN
+10537 ; [.43EB.0020.0002] # CAUCASIAN ALBANIAN LETTER ZHIL
+10538 ; [.43EC.0020.0002] # CAUCASIAN ALBANIAN LETTER TAS
+10539 ; [.43ED.0020.0002] # CAUCASIAN ALBANIAN LETTER CHA
+1053A ; [.43EE.0020.0002] # CAUCASIAN ALBANIAN LETTER YOWD
+1053B ; [.43EF.0020.0002] # CAUCASIAN ALBANIAN LETTER ZHA
+1053C ; [.43F0.0020.0002] # CAUCASIAN ALBANIAN LETTER IRB
+1053D ; [.43F1.0020.0002] # CAUCASIAN ALBANIAN LETTER SHA
+1053E ; [.43F2.0020.0002] # CAUCASIAN ALBANIAN LETTER LAN
+1053F ; [.43F3.0020.0002] # CAUCASIAN ALBANIAN LETTER INYA
+10540 ; [.43F4.0020.0002] # CAUCASIAN ALBANIAN LETTER XEYN
+10541 ; [.43F5.0020.0002] # CAUCASIAN ALBANIAN LETTER DYAN
+10542 ; [.43F6.0020.0002] # CAUCASIAN ALBANIAN LETTER CAR
+10543 ; [.43F7.0020.0002] # CAUCASIAN ALBANIAN LETTER JHOX
+10544 ; [.43F8.0020.0002] # CAUCASIAN ALBANIAN LETTER KAR
+10545 ; [.43F9.0020.0002] # CAUCASIAN ALBANIAN LETTER LYIT
+10546 ; [.43FA.0020.0002] # CAUCASIAN ALBANIAN LETTER HEYT
+10547 ; [.43FB.0020.0002] # CAUCASIAN ALBANIAN LETTER QAY
+10548 ; [.43FC.0020.0002] # CAUCASIAN ALBANIAN LETTER AOR
+10549 ; [.43FD.0020.0002] # CAUCASIAN ALBANIAN LETTER CHOY
+1054A ; [.43FE.0020.0002] # CAUCASIAN ALBANIAN LETTER CHI
+1054B ; [.43FF.0020.0002] # CAUCASIAN ALBANIAN LETTER CYAY
+1054C ; [.4400.0020.0002] # CAUCASIAN ALBANIAN LETTER MAQ
+1054D ; [.4401.0020.0002] # CAUCASIAN ALBANIAN LETTER QAR
+1054E ; [.4402.0020.0002] # CAUCASIAN ALBANIAN LETTER NOWC
+1054F ; [.4403.0020.0002] # CAUCASIAN ALBANIAN LETTER DZYAY
+10550 ; [.4404.0020.0002] # CAUCASIAN ALBANIAN LETTER SHAK
+10551 ; [.4405.0020.0002] # CAUCASIAN ALBANIAN LETTER JAYN
+10552 ; [.4406.0020.0002] # CAUCASIAN ALBANIAN LETTER ON
+10553 ; [.4407.0020.0002] # CAUCASIAN ALBANIAN LETTER TYAY
+10554 ; [.4408.0020.0002] # CAUCASIAN ALBANIAN LETTER FAM
+10555 ; [.4409.0020.0002] # CAUCASIAN ALBANIAN LETTER DZAY
+10556 ; [.440A.0020.0002] # CAUCASIAN ALBANIAN LETTER CHAT
+10557 ; [.440B.0020.0002] # CAUCASIAN ALBANIAN LETTER PEN
+10558 ; [.440C.0020.0002] # CAUCASIAN ALBANIAN LETTER GHEYS
+10559 ; [.440D.0020.0002] # CAUCASIAN ALBANIAN LETTER RAT
+1055A ; [.440E.0020.0002] # CAUCASIAN ALBANIAN LETTER SEYK
+1055B ; [.440F.0020.0002] # CAUCASIAN ALBANIAN LETTER VEYZ
+1055C ; [.4410.0020.0002] # CAUCASIAN ALBANIAN LETTER TIWR
+1055D ; [.4411.0020.0002] # CAUCASIAN ALBANIAN LETTER SHOY
+1055E ; [.4412.0020.0002] # CAUCASIAN ALBANIAN LETTER IWN
+1055F ; [.4413.0020.0002] # CAUCASIAN ALBANIAN LETTER CYAW
+10560 ; [.4414.0020.0002] # CAUCASIAN ALBANIAN LETTER CAYN
+10561 ; [.4415.0020.0002] # CAUCASIAN ALBANIAN LETTER YAYD
+10562 ; [.4416.0020.0002] # CAUCASIAN ALBANIAN LETTER PIWR
+10563 ; [.4417.0020.0002] # CAUCASIAN ALBANIAN LETTER KIW
+110D0 ; [.4418.0020.0002] # SORA SOMPENG LETTER SAH
+110D1 ; [.4419.0020.0002] # SORA SOMPENG LETTER TAH
+110D2 ; [.441A.0020.0002] # SORA SOMPENG LETTER BAH
+110D3 ; [.441B.0020.0002] # SORA SOMPENG LETTER CAH
+110D4 ; [.441C.0020.0002] # SORA SOMPENG LETTER DAH
+110D5 ; [.441D.0020.0002] # SORA SOMPENG LETTER GAH
+110D6 ; [.441E.0020.0002] # SORA SOMPENG LETTER MAH
+110D7 ; [.441F.0020.0002] # SORA SOMPENG LETTER NGAH
+110D8 ; [.4420.0020.0002] # SORA SOMPENG LETTER LAH
+110D9 ; [.4421.0020.0002] # SORA SOMPENG LETTER NAH
+110DA ; [.4422.0020.0002] # SORA SOMPENG LETTER VAH
+110DB ; [.4423.0020.0002] # SORA SOMPENG LETTER PAH
+110DC ; [.4424.0020.0002] # SORA SOMPENG LETTER YAH
+110DD ; [.4425.0020.0002] # SORA SOMPENG LETTER RAH
+110DE ; [.4426.0020.0002] # SORA SOMPENG LETTER HAH
+110DF ; [.4427.0020.0002] # SORA SOMPENG LETTER KAH
+110E0 ; [.4428.0020.0002] # SORA SOMPENG LETTER JAH
+110E1 ; [.4429.0020.0002] # SORA SOMPENG LETTER NYAH
+110E2 ; [.442A.0020.0002] # SORA SOMPENG LETTER AH
+110E3 ; [.442B.0020.0002] # SORA SOMPENG LETTER EEH
+110E4 ; [.442C.0020.0002] # SORA SOMPENG LETTER IH
+110E5 ; [.442D.0020.0002] # SORA SOMPENG LETTER UH
+110E6 ; [.442E.0020.0002] # SORA SOMPENG LETTER OH
+110E7 ; [.442F.0020.0002] # SORA SOMPENG LETTER EH
+110E8 ; [.4430.0020.0002] # SORA SOMPENG LETTER MAE
+16A40 ; [.4431.0020.0002] # MRO LETTER TA
+16A41 ; [.4432.0020.0002] # MRO LETTER NGI
+16A42 ; [.4433.0020.0002] # MRO LETTER YO
+16A43 ; [.4434.0020.0002] # MRO LETTER MIM
+16A44 ; [.4435.0020.0002] # MRO LETTER BA
+16A45 ; [.4436.0020.0002] # MRO LETTER DA
+16A46 ; [.4437.0020.0002] # MRO LETTER A
+16A47 ; [.4438.0020.0002] # MRO LETTER PHI
+16A48 ; [.4439.0020.0002] # MRO LETTER KHAI
+16A49 ; [.443A.0020.0002] # MRO LETTER HAO
+16A4A ; [.443B.0020.0002] # MRO LETTER DAI
+16A4B ; [.443C.0020.0002] # MRO LETTER CHU
+16A4C ; [.443D.0020.0002] # MRO LETTER KEAAE
+16A4D ; [.443E.0020.0002] # MRO LETTER OL
+16A4E ; [.443F.0020.0002] # MRO LETTER MAEM
+16A4F ; [.4440.0020.0002] # MRO LETTER NIN
+16A50 ; [.4441.0020.0002] # MRO LETTER PA
+16A51 ; [.4442.0020.0002] # MRO LETTER OO
+16A52 ; [.4443.0020.0002] # MRO LETTER O
+16A53 ; [.4444.0020.0002] # MRO LETTER RO
+16A54 ; [.4445.0020.0002] # MRO LETTER SHI
+16A55 ; [.4446.0020.0002] # MRO LETTER THEA
+16A56 ; [.4447.0020.0002] # MRO LETTER EA
+16A57 ; [.4448.0020.0002] # MRO LETTER WA
+16A58 ; [.4449.0020.0002] # MRO LETTER E
+16A59 ; [.444A.0020.0002] # MRO LETTER KO
+16A5A ; [.444B.0020.0002] # MRO LETTER LAN
+16A5B ; [.444C.0020.0002] # MRO LETTER LA
+16A5C ; [.444D.0020.0002] # MRO LETTER HAI
+16A5D ; [.444E.0020.0002] # MRO LETTER RI
+16A5E ; [.444F.0020.0002] # MRO LETTER TEK
+10000 ; [.4450.0020.0002] # LINEAR B SYLLABLE B008 A
+10001 ; [.4451.0020.0002] # LINEAR B SYLLABLE B038 E
+10002 ; [.4452.0020.0002] # LINEAR B SYLLABLE B028 I
+10003 ; [.4453.0020.0002] # LINEAR B SYLLABLE B061 O
+10004 ; [.4454.0020.0002] # LINEAR B SYLLABLE B010 U
+10005 ; [.4455.0020.0002] # LINEAR B SYLLABLE B001 DA
+10006 ; [.4456.0020.0002] # LINEAR B SYLLABLE B045 DE
+10007 ; [.4457.0020.0002] # LINEAR B SYLLABLE B007 DI
+10008 ; [.4458.0020.0002] # LINEAR B SYLLABLE B014 DO
+10009 ; [.4459.0020.0002] # LINEAR B SYLLABLE B051 DU
+1000A ; [.445A.0020.0002] # LINEAR B SYLLABLE B057 JA
+1000B ; [.445B.0020.0002] # LINEAR B SYLLABLE B046 JE
+1000D ; [.445C.0020.0002] # LINEAR B SYLLABLE B036 JO
+1000E ; [.445D.0020.0002] # LINEAR B SYLLABLE B065 JU
+1000F ; [.445E.0020.0002] # LINEAR B SYLLABLE B077 KA
+10010 ; [.445F.0020.0002] # LINEAR B SYLLABLE B044 KE
+10011 ; [.4460.0020.0002] # LINEAR B SYLLABLE B067 KI
+10012 ; [.4461.0020.0002] # LINEAR B SYLLABLE B070 KO
+10013 ; [.4462.0020.0002] # LINEAR B SYLLABLE B081 KU
+10014 ; [.4463.0020.0002] # LINEAR B SYLLABLE B080 MA
+10015 ; [.4464.0020.0002] # LINEAR B SYLLABLE B013 ME
+10016 ; [.4465.0020.0002] # LINEAR B SYLLABLE B073 MI
+10017 ; [.4466.0020.0002] # LINEAR B SYLLABLE B015 MO
+10018 ; [.4467.0020.0002] # LINEAR B SYLLABLE B023 MU
+10019 ; [.4468.0020.0002] # LINEAR B SYLLABLE B006 NA
+1001A ; [.4469.0020.0002] # LINEAR B SYLLABLE B024 NE
+1001B ; [.446A.0020.0002] # LINEAR B SYLLABLE B030 NI
+1001C ; [.446B.0020.0002] # LINEAR B SYLLABLE B052 NO
+1001D ; [.446C.0020.0002] # LINEAR B SYLLABLE B055 NU
+1001E ; [.446D.0020.0002] # LINEAR B SYLLABLE B003 PA
+1001F ; [.446E.0020.0002] # LINEAR B SYLLABLE B072 PE
+10020 ; [.446F.0020.0002] # LINEAR B SYLLABLE B039 PI
+10021 ; [.4470.0020.0002] # LINEAR B SYLLABLE B011 PO
+10022 ; [.4471.0020.0002] # LINEAR B SYLLABLE B050 PU
+10023 ; [.4472.0020.0002] # LINEAR B SYLLABLE B016 QA
+10024 ; [.4473.0020.0002] # LINEAR B SYLLABLE B078 QE
+10025 ; [.4474.0020.0002] # LINEAR B SYLLABLE B021 QI
+10026 ; [.4475.0020.0002] # LINEAR B SYLLABLE B032 QO
+10028 ; [.4476.0020.0002] # LINEAR B SYLLABLE B060 RA
+10029 ; [.4477.0020.0002] # LINEAR B SYLLABLE B027 RE
+1002A ; [.4478.0020.0002] # LINEAR B SYLLABLE B053 RI
+1002B ; [.4479.0020.0002] # LINEAR B SYLLABLE B002 RO
+1002C ; [.447A.0020.0002] # LINEAR B SYLLABLE B026 RU
+1002D ; [.447B.0020.0002] # LINEAR B SYLLABLE B031 SA
+1002E ; [.447C.0020.0002] # LINEAR B SYLLABLE B009 SE
+1002F ; [.447D.0020.0002] # LINEAR B SYLLABLE B041 SI
+10030 ; [.447E.0020.0002] # LINEAR B SYLLABLE B012 SO
+10031 ; [.447F.0020.0002] # LINEAR B SYLLABLE B058 SU
+10032 ; [.4480.0020.0002] # LINEAR B SYLLABLE B059 TA
+10033 ; [.4481.0020.0002] # LINEAR B SYLLABLE B004 TE
+10034 ; [.4482.0020.0002] # LINEAR B SYLLABLE B037 TI
+10035 ; [.4483.0020.0002] # LINEAR B SYLLABLE B005 TO
+10036 ; [.4484.0020.0002] # LINEAR B SYLLABLE B069 TU
+10037 ; [.4485.0020.0002] # LINEAR B SYLLABLE B054 WA
+10038 ; [.4486.0020.0002] # LINEAR B SYLLABLE B075 WE
+10039 ; [.4487.0020.0002] # LINEAR B SYLLABLE B040 WI
+1003A ; [.4488.0020.0002] # LINEAR B SYLLABLE B042 WO
+1003C ; [.4489.0020.0002] # LINEAR B SYLLABLE B017 ZA
+1003D ; [.448A.0020.0002] # LINEAR B SYLLABLE B074 ZE
+1003F ; [.448B.0020.0002] # LINEAR B SYLLABLE B020 ZO
+10040 ; [.448C.0020.0002] # LINEAR B SYLLABLE B025 A2
+10041 ; [.448D.0020.0002] # LINEAR B SYLLABLE B043 A3
+10042 ; [.448E.0020.0002] # LINEAR B SYLLABLE B085 AU
+10043 ; [.448F.0020.0002] # LINEAR B SYLLABLE B071 DWE
+10044 ; [.4490.0020.0002] # LINEAR B SYLLABLE B090 DWO
+10045 ; [.4491.0020.0002] # LINEAR B SYLLABLE B048 NWA
+10046 ; [.4492.0020.0002] # LINEAR B SYLLABLE B029 PU2
+10047 ; [.4493.0020.0002] # LINEAR B SYLLABLE B062 PTE
+10048 ; [.4494.0020.0002] # LINEAR B SYLLABLE B076 RA2
+10049 ; [.4495.0020.0002] # LINEAR B SYLLABLE B033 RA3
+1004A ; [.4496.0020.0002] # LINEAR B SYLLABLE B068 RO2
+1004B ; [.4497.0020.0002] # LINEAR B SYLLABLE B066 TA2
+1004C ; [.4498.0020.0002] # LINEAR B SYLLABLE B087 TWE
+1004D ; [.4499.0020.0002] # LINEAR B SYLLABLE B091 TWO
+10050 ; [.449A.0020.0002] # LINEAR B SYMBOL B018
+10051 ; [.449B.0020.0002] # LINEAR B SYMBOL B019
+10052 ; [.449C.0020.0002] # LINEAR B SYMBOL B022
+10053 ; [.449D.0020.0002] # LINEAR B SYMBOL B034
+10054 ; [.449E.0020.0002] # LINEAR B SYMBOL B047
+10055 ; [.449F.0020.0002] # LINEAR B SYMBOL B049
+10056 ; [.44A0.0020.0002] # LINEAR B SYMBOL B056
+10057 ; [.44A1.0020.0002] # LINEAR B SYMBOL B063
+10058 ; [.44A2.0020.0002] # LINEAR B SYMBOL B064
+10059 ; [.44A3.0020.0002] # LINEAR B SYMBOL B079
+1005A ; [.44A4.0020.0002] # LINEAR B SYMBOL B082
+1005B ; [.44A5.0020.0002] # LINEAR B SYMBOL B083
+1005C ; [.44A6.0020.0002] # LINEAR B SYMBOL B086
+1005D ; [.44A7.0020.0002] # LINEAR B SYMBOL B089
+10080 ; [.44A8.0020.0002] # LINEAR B IDEOGRAM B100 MAN
+10081 ; [.44A9.0020.0002] # LINEAR B IDEOGRAM B102 WOMAN
+10082 ; [.44AA.0020.0002] # LINEAR B IDEOGRAM B104 DEER
+10083 ; [.44AB.0020.0002] # LINEAR B IDEOGRAM B105 EQUID
+10084 ; [.44AC.0020.0002] # LINEAR B IDEOGRAM B105F MARE
+10085 ; [.44AD.0020.0002] # LINEAR B IDEOGRAM B105M STALLION
+10086 ; [.44AE.0020.0002] # LINEAR B IDEOGRAM B106F EWE
+10087 ; [.44AF.0020.0002] # LINEAR B IDEOGRAM B106M RAM
+10088 ; [.44B0.0020.0002] # LINEAR B IDEOGRAM B107F SHE-GOAT
+10089 ; [.44B1.0020.0002] # LINEAR B IDEOGRAM B107M HE-GOAT
+1008A ; [.44B2.0020.0002] # LINEAR B IDEOGRAM B108F SOW
+1008B ; [.44B3.0020.0002] # LINEAR B IDEOGRAM B108M BOAR
+1008C ; [.44B4.0020.0002] # LINEAR B IDEOGRAM B109F COW
+1008D ; [.44B5.0020.0002] # LINEAR B IDEOGRAM B109M BULL
+1008E ; [.44B6.0020.0002] # LINEAR B IDEOGRAM B120 WHEAT
+1008F ; [.44B7.0020.0002] # LINEAR B IDEOGRAM B121 BARLEY
+10090 ; [.44B8.0020.0002] # LINEAR B IDEOGRAM B122 OLIVE
+10091 ; [.44B9.0020.0002] # LINEAR B IDEOGRAM B123 SPICE
+10092 ; [.44BA.0020.0002] # LINEAR B IDEOGRAM B125 CYPERUS
+10093 ; [.44BB.0020.0002] # LINEAR B MONOGRAM B127 KAPO
+10094 ; [.44BC.0020.0002] # LINEAR B MONOGRAM B128 KANAKO
+10095 ; [.44BD.0020.0002] # LINEAR B IDEOGRAM B130 OIL
+10096 ; [.44BE.0020.0002] # LINEAR B IDEOGRAM B131 WINE
+10097 ; [.44BF.0020.0002] # LINEAR B IDEOGRAM B132
+10098 ; [.44C0.0020.0002] # LINEAR B MONOGRAM B133 AREPA
+10099 ; [.44C1.0020.0002] # LINEAR B MONOGRAM B135 MERI
+1009A ; [.44C2.0020.0002] # LINEAR B IDEOGRAM B140 BRONZE
+1009B ; [.44C3.0020.0002] # LINEAR B IDEOGRAM B141 GOLD
+1009C ; [.44C4.0020.0002] # LINEAR B IDEOGRAM B142
+1009D ; [.44C5.0020.0002] # LINEAR B IDEOGRAM B145 WOOL
+1009E ; [.44C6.0020.0002] # LINEAR B IDEOGRAM B146
+1009F ; [.44C7.0020.0002] # LINEAR B IDEOGRAM B150
+100A0 ; [.44C8.0020.0002] # LINEAR B IDEOGRAM B151 HORN
+100A1 ; [.44C9.0020.0002] # LINEAR B IDEOGRAM B152
+100A2 ; [.44CA.0020.0002] # LINEAR B IDEOGRAM B153
+100A3 ; [.44CB.0020.0002] # LINEAR B IDEOGRAM B154
+100A4 ; [.44CC.0020.0002] # LINEAR B MONOGRAM B156 TURO2
+100A5 ; [.44CD.0020.0002] # LINEAR B IDEOGRAM B157
+100A6 ; [.44CE.0020.0002] # LINEAR B IDEOGRAM B158
+100A7 ; [.44CF.0020.0002] # LINEAR B IDEOGRAM B159 CLOTH
+100A8 ; [.44D0.0020.0002] # LINEAR B IDEOGRAM B160
+100A9 ; [.44D1.0020.0002] # LINEAR B IDEOGRAM B161
+100AA ; [.44D2.0020.0002] # LINEAR B IDEOGRAM B162 GARMENT
+100AB ; [.44D3.0020.0002] # LINEAR B IDEOGRAM B163 ARMOUR
+100AC ; [.44D4.0020.0002] # LINEAR B IDEOGRAM B164
+100AD ; [.44D5.0020.0002] # LINEAR B IDEOGRAM B165
+100AE ; [.44D6.0020.0002] # LINEAR B IDEOGRAM B166
+100AF ; [.44D7.0020.0002] # LINEAR B IDEOGRAM B167
+100B0 ; [.44D8.0020.0002] # LINEAR B IDEOGRAM B168
+100B1 ; [.44D9.0020.0002] # LINEAR B IDEOGRAM B169
+100B2 ; [.44DA.0020.0002] # LINEAR B IDEOGRAM B170
+100B3 ; [.44DB.0020.0002] # LINEAR B IDEOGRAM B171
+100B4 ; [.44DC.0020.0002] # LINEAR B IDEOGRAM B172
+100B5 ; [.44DD.0020.0002] # LINEAR B IDEOGRAM B173 MONTH
+100B6 ; [.44DE.0020.0002] # LINEAR B IDEOGRAM B174
+100B7 ; [.44DF.0020.0002] # LINEAR B IDEOGRAM B176 TREE
+100B8 ; [.44E0.0020.0002] # LINEAR B IDEOGRAM B177
+100B9 ; [.44E1.0020.0002] # LINEAR B IDEOGRAM B178
+100BA ; [.44E2.0020.0002] # LINEAR B IDEOGRAM B179
+100BB ; [.44E3.0020.0002] # LINEAR B IDEOGRAM B180
+100BC ; [.44E4.0020.0002] # LINEAR B IDEOGRAM B181
+100BD ; [.44E5.0020.0002] # LINEAR B IDEOGRAM B182
+100BE ; [.44E6.0020.0002] # LINEAR B IDEOGRAM B183
+100BF ; [.44E7.0020.0002] # LINEAR B IDEOGRAM B184
+100C0 ; [.44E8.0020.0002] # LINEAR B IDEOGRAM B185
+100C1 ; [.44E9.0020.0002] # LINEAR B IDEOGRAM B189
+100C2 ; [.44EA.0020.0002] # LINEAR B IDEOGRAM B190
+100C3 ; [.44EB.0020.0002] # LINEAR B IDEOGRAM B191 HELMET
+100C4 ; [.44EC.0020.0002] # LINEAR B IDEOGRAM B220 FOOTSTOOL
+100C5 ; [.44ED.0020.0002] # LINEAR B IDEOGRAM B225 BATHTUB
+100C6 ; [.44EE.0020.0002] # LINEAR B IDEOGRAM B230 SPEAR
+100C7 ; [.44EF.0020.0002] # LINEAR B IDEOGRAM B231 ARROW
+100C8 ; [.44F0.0020.0002] # LINEAR B IDEOGRAM B232
+100C9 ; [.44F1.0020.0002] # LINEAR B IDEOGRAM B233 SWORD
+100CA ; [.44F2.0020.0002] # LINEAR B IDEOGRAM B234
+100CB ; [.44F3.0020.0002] # LINEAR B IDEOGRAM B236
+100CC ; [.44F4.0020.0002] # LINEAR B IDEOGRAM B240 WHEELED CHARIOT
+100CD ; [.44F5.0020.0002] # LINEAR B IDEOGRAM B241 CHARIOT
+100CE ; [.44F6.0020.0002] # LINEAR B IDEOGRAM B242 CHARIOT FRAME
+100CF ; [.44F7.0020.0002] # LINEAR B IDEOGRAM B243 WHEEL
+100D0 ; [.44F8.0020.0002] # LINEAR B IDEOGRAM B245
+100D1 ; [.44F9.0020.0002] # LINEAR B IDEOGRAM B246
+100D2 ; [.44FA.0020.0002] # LINEAR B MONOGRAM B247 DIPTE
+100D3 ; [.44FB.0020.0002] # LINEAR B IDEOGRAM B248
+100D4 ; [.44FC.0020.0002] # LINEAR B IDEOGRAM B249
+100D5 ; [.44FD.0020.0002] # LINEAR B IDEOGRAM B251
+100D6 ; [.44FE.0020.0002] # LINEAR B IDEOGRAM B252
+100D7 ; [.44FF.0020.0002] # LINEAR B IDEOGRAM B253
+100D8 ; [.4500.0020.0002] # LINEAR B IDEOGRAM B254 DART
+100D9 ; [.4501.0020.0002] # LINEAR B IDEOGRAM B255
+100DA ; [.4502.0020.0002] # LINEAR B IDEOGRAM B256
+100DB ; [.4503.0020.0002] # LINEAR B IDEOGRAM B257
+100DC ; [.4504.0020.0002] # LINEAR B IDEOGRAM B258
+100DD ; [.4505.0020.0002] # LINEAR B IDEOGRAM B259
+100DE ; [.4506.0020.0002] # LINEAR B IDEOGRAM VESSEL B155
+100DF ; [.4507.0020.0002] # LINEAR B IDEOGRAM VESSEL B200
+100E0 ; [.4508.0020.0002] # LINEAR B IDEOGRAM VESSEL B201
+100E1 ; [.4509.0020.0002] # LINEAR B IDEOGRAM VESSEL B202
+100E2 ; [.450A.0020.0002] # LINEAR B IDEOGRAM VESSEL B203
+100E3 ; [.450B.0020.0002] # LINEAR B IDEOGRAM VESSEL B204
+100E4 ; [.450C.0020.0002] # LINEAR B IDEOGRAM VESSEL B205
+100E5 ; [.450D.0020.0002] # LINEAR B IDEOGRAM VESSEL B206
+100E6 ; [.450E.0020.0002] # LINEAR B IDEOGRAM VESSEL B207
+100E7 ; [.450F.0020.0002] # LINEAR B IDEOGRAM VESSEL B208
+100E8 ; [.4510.0020.0002] # LINEAR B IDEOGRAM VESSEL B209
+100E9 ; [.4511.0020.0002] # LINEAR B IDEOGRAM VESSEL B210
+100EA ; [.4512.0020.0002] # LINEAR B IDEOGRAM VESSEL B211
+100EB ; [.4513.0020.0002] # LINEAR B IDEOGRAM VESSEL B212
+100EC ; [.4514.0020.0002] # LINEAR B IDEOGRAM VESSEL B213
+100ED ; [.4515.0020.0002] # LINEAR B IDEOGRAM VESSEL B214
+100EE ; [.4516.0020.0002] # LINEAR B IDEOGRAM VESSEL B215
+100EF ; [.4517.0020.0002] # LINEAR B IDEOGRAM VESSEL B216
+100F0 ; [.4518.0020.0002] # LINEAR B IDEOGRAM VESSEL B217
+100F1 ; [.4519.0020.0002] # LINEAR B IDEOGRAM VESSEL B218
+100F2 ; [.451A.0020.0002] # LINEAR B IDEOGRAM VESSEL B219
+100F3 ; [.451B.0020.0002] # LINEAR B IDEOGRAM VESSEL B221
+100F4 ; [.451C.0020.0002] # LINEAR B IDEOGRAM VESSEL B222
+100F5 ; [.451D.0020.0002] # LINEAR B IDEOGRAM VESSEL B226
+100F6 ; [.451E.0020.0002] # LINEAR B IDEOGRAM VESSEL B227
+100F7 ; [.451F.0020.0002] # LINEAR B IDEOGRAM VESSEL B228
+100F8 ; [.4520.0020.0002] # LINEAR B IDEOGRAM VESSEL B229
+100F9 ; [.4521.0020.0002] # LINEAR B IDEOGRAM VESSEL B250
+100FA ; [.4522.0020.0002] # LINEAR B IDEOGRAM VESSEL B305
+10600 ; [.4523.0020.0002] # LINEAR A SIGN AB001
+10601 ; [.4524.0020.0002] # LINEAR A SIGN AB002
+10602 ; [.4525.0020.0002] # LINEAR A SIGN AB003
+10603 ; [.4526.0020.0002] # LINEAR A SIGN AB004
+10604 ; [.4527.0020.0002] # LINEAR A SIGN AB005
+10605 ; [.4528.0020.0002] # LINEAR A SIGN AB006
+10606 ; [.4529.0020.0002] # LINEAR A SIGN AB007
+10607 ; [.452A.0020.0002] # LINEAR A SIGN AB008
+10608 ; [.452B.0020.0002] # LINEAR A SIGN AB009
+10609 ; [.452C.0020.0002] # LINEAR A SIGN AB010
+1060A ; [.452D.0020.0002] # LINEAR A SIGN AB011
+1060B ; [.452E.0020.0002] # LINEAR A SIGN AB013
+1060C ; [.452F.0020.0002] # LINEAR A SIGN AB016
+1060D ; [.4530.0020.0002] # LINEAR A SIGN AB017
+1060E ; [.4531.0020.0002] # LINEAR A SIGN AB020
+1060F ; [.4532.0020.0002] # LINEAR A SIGN AB021
+10610 ; [.4533.0020.0002] # LINEAR A SIGN AB021F
+10611 ; [.4534.0020.0002] # LINEAR A SIGN AB021M
+10612 ; [.4535.0020.0002] # LINEAR A SIGN AB022
+10613 ; [.4536.0020.0002] # LINEAR A SIGN AB022F
+10614 ; [.4537.0020.0002] # LINEAR A SIGN AB022M
+10615 ; [.4538.0020.0002] # LINEAR A SIGN AB023
+10616 ; [.4539.0020.0002] # LINEAR A SIGN AB023M
+10617 ; [.453A.0020.0002] # LINEAR A SIGN AB024
+10618 ; [.453B.0020.0002] # LINEAR A SIGN AB026
+10619 ; [.453C.0020.0002] # LINEAR A SIGN AB027
+1061A ; [.453D.0020.0002] # LINEAR A SIGN AB028
+1061B ; [.453E.0020.0002] # LINEAR A SIGN A028B
+1061C ; [.453F.0020.0002] # LINEAR A SIGN AB029
+1061D ; [.4540.0020.0002] # LINEAR A SIGN AB030
+1061E ; [.4541.0020.0002] # LINEAR A SIGN AB031
+1061F ; [.4542.0020.0002] # LINEAR A SIGN AB034
+10620 ; [.4543.0020.0002] # LINEAR A SIGN AB037
+10621 ; [.4544.0020.0002] # LINEAR A SIGN AB038
+10622 ; [.4545.0020.0002] # LINEAR A SIGN AB039
+10623 ; [.4546.0020.0002] # LINEAR A SIGN AB040
+10624 ; [.4547.0020.0002] # LINEAR A SIGN AB041
+10625 ; [.4548.0020.0002] # LINEAR A SIGN AB044
+10626 ; [.4549.0020.0002] # LINEAR A SIGN AB045
+10627 ; [.454A.0020.0002] # LINEAR A SIGN AB046
+10628 ; [.454B.0020.0002] # LINEAR A SIGN AB047
+10629 ; [.454C.0020.0002] # LINEAR A SIGN AB048
+1062A ; [.454D.0020.0002] # LINEAR A SIGN AB049
+1062B ; [.454E.0020.0002] # LINEAR A SIGN AB050
+1062C ; [.454F.0020.0002] # LINEAR A SIGN AB051
+1062D ; [.4550.0020.0002] # LINEAR A SIGN AB053
+1062E ; [.4551.0020.0002] # LINEAR A SIGN AB054
+1062F ; [.4552.0020.0002] # LINEAR A SIGN AB055
+10630 ; [.4553.0020.0002] # LINEAR A SIGN AB056
+10631 ; [.4554.0020.0002] # LINEAR A SIGN AB057
+10632 ; [.4555.0020.0002] # LINEAR A SIGN AB058
+10633 ; [.4556.0020.0002] # LINEAR A SIGN AB059
+10634 ; [.4557.0020.0002] # LINEAR A SIGN AB060
+10635 ; [.4558.0020.0002] # LINEAR A SIGN AB061
+10636 ; [.4559.0020.0002] # LINEAR A SIGN AB065
+10637 ; [.455A.0020.0002] # LINEAR A SIGN AB066
+10638 ; [.455B.0020.0002] # LINEAR A SIGN AB067
+10639 ; [.455C.0020.0002] # LINEAR A SIGN AB069
+1063A ; [.455D.0020.0002] # LINEAR A SIGN AB070
+1063B ; [.455E.0020.0002] # LINEAR A SIGN AB073
+1063C ; [.455F.0020.0002] # LINEAR A SIGN AB074
+1063D ; [.4560.0020.0002] # LINEAR A SIGN AB076
+1063E ; [.4561.0020.0002] # LINEAR A SIGN AB077
+1063F ; [.4562.0020.0002] # LINEAR A SIGN AB078
+10640 ; [.4563.0020.0002] # LINEAR A SIGN AB079
+10641 ; [.4564.0020.0002] # LINEAR A SIGN AB080
+10642 ; [.4565.0020.0002] # LINEAR A SIGN AB081
+10643 ; [.4566.0020.0002] # LINEAR A SIGN AB082
+10644 ; [.4567.0020.0002] # LINEAR A SIGN AB085
+10645 ; [.4568.0020.0002] # LINEAR A SIGN AB086
+10646 ; [.4569.0020.0002] # LINEAR A SIGN AB087
+10647 ; [.456A.0020.0002] # LINEAR A SIGN A100-102
+10648 ; [.456B.0020.0002] # LINEAR A SIGN AB118
+10649 ; [.456C.0020.0002] # LINEAR A SIGN AB120
+1064A ; [.456D.0020.0002] # LINEAR A SIGN A120B
+1064B ; [.456E.0020.0002] # LINEAR A SIGN AB122
+1064C ; [.456F.0020.0002] # LINEAR A SIGN AB123
+1064D ; [.4570.0020.0002] # LINEAR A SIGN AB131A
+1064E ; [.4571.0020.0002] # LINEAR A SIGN AB131B
+1064F ; [.4572.0020.0002] # LINEAR A SIGN A131C
+10650 ; [.4573.0020.0002] # LINEAR A SIGN AB164
+10651 ; [.4574.0020.0002] # LINEAR A SIGN AB171
+10652 ; [.4575.0020.0002] # LINEAR A SIGN AB180
+10653 ; [.4576.0020.0002] # LINEAR A SIGN AB188
+10654 ; [.4577.0020.0002] # LINEAR A SIGN AB191
+10655 ; [.4578.0020.0002] # LINEAR A SIGN A301
+10656 ; [.4579.0020.0002] # LINEAR A SIGN A302
+10657 ; [.457A.0020.0002] # LINEAR A SIGN A303
+10658 ; [.457B.0020.0002] # LINEAR A SIGN A304
+10659 ; [.457C.0020.0002] # LINEAR A SIGN A305
+1065A ; [.457D.0020.0002] # LINEAR A SIGN A306
+1065B ; [.457E.0020.0002] # LINEAR A SIGN A307
+1065C ; [.457F.0020.0002] # LINEAR A SIGN A308
+1065D ; [.4580.0020.0002] # LINEAR A SIGN A309A
+1065E ; [.4581.0020.0002] # LINEAR A SIGN A309B
+1065F ; [.4582.0020.0002] # LINEAR A SIGN A309C
+10660 ; [.4583.0020.0002] # LINEAR A SIGN A310
+10661 ; [.4584.0020.0002] # LINEAR A SIGN A311
+10662 ; [.4585.0020.0002] # LINEAR A SIGN A312
+10663 ; [.4586.0020.0002] # LINEAR A SIGN A313A
+10664 ; [.4587.0020.0002] # LINEAR A SIGN A313B
+10665 ; [.4588.0020.0002] # LINEAR A SIGN A313C
+10666 ; [.4589.0020.0002] # LINEAR A SIGN A314
+10667 ; [.458A.0020.0002] # LINEAR A SIGN A315
+10668 ; [.458B.0020.0002] # LINEAR A SIGN A316
+10669 ; [.458C.0020.0002] # LINEAR A SIGN A317
+1066A ; [.458D.0020.0002] # LINEAR A SIGN A318
+1066B ; [.458E.0020.0002] # LINEAR A SIGN A319
+1066C ; [.458F.0020.0002] # LINEAR A SIGN A320
+1066D ; [.4590.0020.0002] # LINEAR A SIGN A321
+1066E ; [.4591.0020.0002] # LINEAR A SIGN A322
+1066F ; [.4592.0020.0002] # LINEAR A SIGN A323
+10670 ; [.4593.0020.0002] # LINEAR A SIGN A324
+10671 ; [.4594.0020.0002] # LINEAR A SIGN A325
+10672 ; [.4595.0020.0002] # LINEAR A SIGN A326
+10673 ; [.4596.0020.0002] # LINEAR A SIGN A327
+10674 ; [.4597.0020.0002] # LINEAR A SIGN A328
+10675 ; [.4598.0020.0002] # LINEAR A SIGN A329
+10676 ; [.4599.0020.0002] # LINEAR A SIGN A330
+10677 ; [.459A.0020.0002] # LINEAR A SIGN A331
+10678 ; [.459B.0020.0002] # LINEAR A SIGN A332
+10679 ; [.459C.0020.0002] # LINEAR A SIGN A333
+1067A ; [.459D.0020.0002] # LINEAR A SIGN A334
+1067B ; [.459E.0020.0002] # LINEAR A SIGN A335
+1067C ; [.459F.0020.0002] # LINEAR A SIGN A336
+1067D ; [.45A0.0020.0002] # LINEAR A SIGN A337
+1067E ; [.45A1.0020.0002] # LINEAR A SIGN A338
+1067F ; [.45A2.0020.0002] # LINEAR A SIGN A339
+10680 ; [.45A3.0020.0002] # LINEAR A SIGN A340
+10681 ; [.45A4.0020.0002] # LINEAR A SIGN A341
+10682 ; [.45A5.0020.0002] # LINEAR A SIGN A342
+10683 ; [.45A6.0020.0002] # LINEAR A SIGN A343
+10684 ; [.45A7.0020.0002] # LINEAR A SIGN A344
+10685 ; [.45A8.0020.0002] # LINEAR A SIGN A345
+10686 ; [.45A9.0020.0002] # LINEAR A SIGN A346
+10687 ; [.45AA.0020.0002] # LINEAR A SIGN A347
+10688 ; [.45AB.0020.0002] # LINEAR A SIGN A348
+10689 ; [.45AC.0020.0002] # LINEAR A SIGN A349
+1068A ; [.45AD.0020.0002] # LINEAR A SIGN A350
+1068B ; [.45AE.0020.0002] # LINEAR A SIGN A351
+1068C ; [.45AF.0020.0002] # LINEAR A SIGN A352
+1068D ; [.45B0.0020.0002] # LINEAR A SIGN A353
+1068E ; [.45B1.0020.0002] # LINEAR A SIGN A354
+1068F ; [.45B2.0020.0002] # LINEAR A SIGN A355
+10690 ; [.45B3.0020.0002] # LINEAR A SIGN A356
+10691 ; [.45B4.0020.0002] # LINEAR A SIGN A357
+10692 ; [.45B5.0020.0002] # LINEAR A SIGN A358
+10693 ; [.45B6.0020.0002] # LINEAR A SIGN A359
+10694 ; [.45B7.0020.0002] # LINEAR A SIGN A360
+10695 ; [.45B8.0020.0002] # LINEAR A SIGN A361
+10696 ; [.45B9.0020.0002] # LINEAR A SIGN A362
+10697 ; [.45BA.0020.0002] # LINEAR A SIGN A363
+10698 ; [.45BB.0020.0002] # LINEAR A SIGN A364
+10699 ; [.45BC.0020.0002] # LINEAR A SIGN A365
+1069A ; [.45BD.0020.0002] # LINEAR A SIGN A366
+1069B ; [.45BE.0020.0002] # LINEAR A SIGN A367
+1069C ; [.45BF.0020.0002] # LINEAR A SIGN A368
+1069D ; [.45C0.0020.0002] # LINEAR A SIGN A369
+1069E ; [.45C1.0020.0002] # LINEAR A SIGN A370
+1069F ; [.45C2.0020.0002] # LINEAR A SIGN A371
+106A0 ; [.45C3.0020.0002] # LINEAR A SIGN A400-VAS
+106A1 ; [.45C4.0020.0002] # LINEAR A SIGN A401-VAS
+106A2 ; [.45C5.0020.0002] # LINEAR A SIGN A402-VAS
+106A3 ; [.45C6.0020.0002] # LINEAR A SIGN A403-VAS
+106A4 ; [.45C7.0020.0002] # LINEAR A SIGN A404-VAS
+106A5 ; [.45C8.0020.0002] # LINEAR A SIGN A405-VAS
+106A6 ; [.45C9.0020.0002] # LINEAR A SIGN A406-VAS
+106A7 ; [.45CA.0020.0002] # LINEAR A SIGN A407-VAS
+106A8 ; [.45CB.0020.0002] # LINEAR A SIGN A408-VAS
+106A9 ; [.45CC.0020.0002] # LINEAR A SIGN A409-VAS
+106AA ; [.45CD.0020.0002] # LINEAR A SIGN A410-VAS
+106AB ; [.45CE.0020.0002] # LINEAR A SIGN A411-VAS
+106AC ; [.45CF.0020.0002] # LINEAR A SIGN A412-VAS
+106AD ; [.45D0.0020.0002] # LINEAR A SIGN A413-VAS
+106AE ; [.45D1.0020.0002] # LINEAR A SIGN A414-VAS
+106AF ; [.45D2.0020.0002] # LINEAR A SIGN A415-VAS
+106B0 ; [.45D3.0020.0002] # LINEAR A SIGN A416-VAS
+106B1 ; [.45D4.0020.0002] # LINEAR A SIGN A417-VAS
+106B2 ; [.45D5.0020.0002] # LINEAR A SIGN A418-VAS
+106B3 ; [.45D6.0020.0002] # LINEAR A SIGN A501
+106B4 ; [.45D7.0020.0002] # LINEAR A SIGN A502
+106B5 ; [.45D8.0020.0002] # LINEAR A SIGN A503
+106B6 ; [.45D9.0020.0002] # LINEAR A SIGN A504
+106B7 ; [.45DA.0020.0002] # LINEAR A SIGN A505
+106B8 ; [.45DB.0020.0002] # LINEAR A SIGN A506
+106B9 ; [.45DC.0020.0002] # LINEAR A SIGN A508
+106BA ; [.45DD.0020.0002] # LINEAR A SIGN A509
+106BB ; [.45DE.0020.0002] # LINEAR A SIGN A510
+106BC ; [.45DF.0020.0002] # LINEAR A SIGN A511
+106BD ; [.45E0.0020.0002] # LINEAR A SIGN A512
+106BE ; [.45E1.0020.0002] # LINEAR A SIGN A513
+106BF ; [.45E2.0020.0002] # LINEAR A SIGN A515
+106C0 ; [.45E3.0020.0002] # LINEAR A SIGN A516
+106C1 ; [.45E4.0020.0002] # LINEAR A SIGN A520
+106C2 ; [.45E5.0020.0002] # LINEAR A SIGN A521
+106C3 ; [.45E6.0020.0002] # LINEAR A SIGN A523
+106C4 ; [.45E7.0020.0002] # LINEAR A SIGN A524
+106C5 ; [.45E8.0020.0002] # LINEAR A SIGN A525
+106C6 ; [.45E9.0020.0002] # LINEAR A SIGN A526
+106C7 ; [.45EA.0020.0002] # LINEAR A SIGN A527
+106C8 ; [.45EB.0020.0002] # LINEAR A SIGN A528
+106C9 ; [.45EC.0020.0002] # LINEAR A SIGN A529
+106CA ; [.45ED.0020.0002] # LINEAR A SIGN A530
+106CB ; [.45EE.0020.0002] # LINEAR A SIGN A531
+106CC ; [.45EF.0020.0002] # LINEAR A SIGN A532
+106CD ; [.45F0.0020.0002] # LINEAR A SIGN A534
+106CE ; [.45F1.0020.0002] # LINEAR A SIGN A535
+106CF ; [.45F2.0020.0002] # LINEAR A SIGN A536
+106D0 ; [.45F3.0020.0002] # LINEAR A SIGN A537
+106D1 ; [.45F4.0020.0002] # LINEAR A SIGN A538
+106D2 ; [.45F5.0020.0002] # LINEAR A SIGN A539
+106D3 ; [.45F6.0020.0002] # LINEAR A SIGN A540
+106D4 ; [.45F7.0020.0002] # LINEAR A SIGN A541
+106D5 ; [.45F8.0020.0002] # LINEAR A SIGN A542
+106D6 ; [.45F9.0020.0002] # LINEAR A SIGN A545
+106D7 ; [.45FA.0020.0002] # LINEAR A SIGN A547
+106D8 ; [.45FB.0020.0002] # LINEAR A SIGN A548
+106D9 ; [.45FC.0020.0002] # LINEAR A SIGN A549
+106DA ; [.45FD.0020.0002] # LINEAR A SIGN A550
+106DB ; [.45FE.0020.0002] # LINEAR A SIGN A551
+106DC ; [.45FF.0020.0002] # LINEAR A SIGN A552
+106DD ; [.4600.0020.0002] # LINEAR A SIGN A553
+106DE ; [.4601.0020.0002] # LINEAR A SIGN A554
+106DF ; [.4602.0020.0002] # LINEAR A SIGN A555
+106E0 ; [.4603.0020.0002] # LINEAR A SIGN A556
+106E1 ; [.4604.0020.0002] # LINEAR A SIGN A557
+106E2 ; [.4605.0020.0002] # LINEAR A SIGN A559
+106E3 ; [.4606.0020.0002] # LINEAR A SIGN A563
+106E4 ; [.4607.0020.0002] # LINEAR A SIGN A564
+106E5 ; [.4608.0020.0002] # LINEAR A SIGN A565
+106E6 ; [.4609.0020.0002] # LINEAR A SIGN A566
+106E7 ; [.460A.0020.0002] # LINEAR A SIGN A568
+106E8 ; [.460B.0020.0002] # LINEAR A SIGN A569
+106E9 ; [.460C.0020.0002] # LINEAR A SIGN A570
+106EA ; [.460D.0020.0002] # LINEAR A SIGN A571
+106EB ; [.460E.0020.0002] # LINEAR A SIGN A572
+106EC ; [.460F.0020.0002] # LINEAR A SIGN A573
+106ED ; [.4610.0020.0002] # LINEAR A SIGN A574
+106EE ; [.4611.0020.0002] # LINEAR A SIGN A575
+106EF ; [.4612.0020.0002] # LINEAR A SIGN A576
+106F0 ; [.4613.0020.0002] # LINEAR A SIGN A577
+106F1 ; [.4614.0020.0002] # LINEAR A SIGN A578
+106F2 ; [.4615.0020.0002] # LINEAR A SIGN A579
+106F3 ; [.4616.0020.0002] # LINEAR A SIGN A580
+106F4 ; [.4617.0020.0002] # LINEAR A SIGN A581
+106F5 ; [.4618.0020.0002] # LINEAR A SIGN A582
+106F6 ; [.4619.0020.0002] # LINEAR A SIGN A583
+106F7 ; [.461A.0020.0002] # LINEAR A SIGN A584
+106F8 ; [.461B.0020.0002] # LINEAR A SIGN A585
+106F9 ; [.461C.0020.0002] # LINEAR A SIGN A586
+106FA ; [.461D.0020.0002] # LINEAR A SIGN A587
+106FB ; [.461E.0020.0002] # LINEAR A SIGN A588
+106FC ; [.461F.0020.0002] # LINEAR A SIGN A589
+106FD ; [.4620.0020.0002] # LINEAR A SIGN A591
+106FE ; [.4621.0020.0002] # LINEAR A SIGN A592
+106FF ; [.4622.0020.0002] # LINEAR A SIGN A594
+10700 ; [.4623.0020.0002] # LINEAR A SIGN A595
+10701 ; [.4624.0020.0002] # LINEAR A SIGN A596
+10702 ; [.4625.0020.0002] # LINEAR A SIGN A598
+10703 ; [.4626.0020.0002] # LINEAR A SIGN A600
+10704 ; [.4627.0020.0002] # LINEAR A SIGN A601
+10705 ; [.4628.0020.0002] # LINEAR A SIGN A602
+10706 ; [.4629.0020.0002] # LINEAR A SIGN A603
+10707 ; [.462A.0020.0002] # LINEAR A SIGN A604
+10708 ; [.462B.0020.0002] # LINEAR A SIGN A606
+10709 ; [.462C.0020.0002] # LINEAR A SIGN A608
+1070A ; [.462D.0020.0002] # LINEAR A SIGN A609
+1070B ; [.462E.0020.0002] # LINEAR A SIGN A610
+1070C ; [.462F.0020.0002] # LINEAR A SIGN A611
+1070D ; [.4630.0020.0002] # LINEAR A SIGN A612
+1070E ; [.4631.0020.0002] # LINEAR A SIGN A613
+1070F ; [.4632.0020.0002] # LINEAR A SIGN A614
+10710 ; [.4633.0020.0002] # LINEAR A SIGN A615
+10711 ; [.4634.0020.0002] # LINEAR A SIGN A616
+10712 ; [.4635.0020.0002] # LINEAR A SIGN A617
+10713 ; [.4636.0020.0002] # LINEAR A SIGN A618
+10714 ; [.4637.0020.0002] # LINEAR A SIGN A619
+10715 ; [.4638.0020.0002] # LINEAR A SIGN A620
+10716 ; [.4639.0020.0002] # LINEAR A SIGN A621
+10717 ; [.463A.0020.0002] # LINEAR A SIGN A622
+10718 ; [.463B.0020.0002] # LINEAR A SIGN A623
+10719 ; [.463C.0020.0002] # LINEAR A SIGN A624
+1071A ; [.463D.0020.0002] # LINEAR A SIGN A626
+1071B ; [.463E.0020.0002] # LINEAR A SIGN A627
+1071C ; [.463F.0020.0002] # LINEAR A SIGN A628
+1071D ; [.4640.0020.0002] # LINEAR A SIGN A629
+1071E ; [.4641.0020.0002] # LINEAR A SIGN A634
+1071F ; [.4642.0020.0002] # LINEAR A SIGN A637
+10720 ; [.4643.0020.0002] # LINEAR A SIGN A638
+10721 ; [.4644.0020.0002] # LINEAR A SIGN A640
+10722 ; [.4645.0020.0002] # LINEAR A SIGN A642
+10723 ; [.4646.0020.0002] # LINEAR A SIGN A643
+10724 ; [.4647.0020.0002] # LINEAR A SIGN A644
+10725 ; [.4648.0020.0002] # LINEAR A SIGN A645
+10726 ; [.4649.0020.0002] # LINEAR A SIGN A646
+10727 ; [.464A.0020.0002] # LINEAR A SIGN A648
+10728 ; [.464B.0020.0002] # LINEAR A SIGN A649
+10729 ; [.464C.0020.0002] # LINEAR A SIGN A651
+1072A ; [.464D.0020.0002] # LINEAR A SIGN A652
+1072B ; [.464E.0020.0002] # LINEAR A SIGN A653
+1072C ; [.464F.0020.0002] # LINEAR A SIGN A654
+1072D ; [.4650.0020.0002] # LINEAR A SIGN A655
+1072E ; [.4651.0020.0002] # LINEAR A SIGN A656
+1072F ; [.4652.0020.0002] # LINEAR A SIGN A657
+10730 ; [.4653.0020.0002] # LINEAR A SIGN A658
+10731 ; [.4654.0020.0002] # LINEAR A SIGN A659
+10732 ; [.4655.0020.0002] # LINEAR A SIGN A660
+10733 ; [.4656.0020.0002] # LINEAR A SIGN A661
+10734 ; [.4657.0020.0002] # LINEAR A SIGN A662
+10735 ; [.4658.0020.0002] # LINEAR A SIGN A663
+10736 ; [.4659.0020.0002] # LINEAR A SIGN A664
+10740 ; [.465A.0020.0002] # LINEAR A SIGN A701 A
+10741 ; [.465B.0020.0002] # LINEAR A SIGN A702 B
+10742 ; [.465C.0020.0002] # LINEAR A SIGN A703 D
+10743 ; [.465D.0020.0002] # LINEAR A SIGN A704 E
+10744 ; [.465E.0020.0002] # LINEAR A SIGN A705 F
+10745 ; [.465F.0020.0002] # LINEAR A SIGN A706 H
+10746 ; [.4660.0020.0002] # LINEAR A SIGN A707 J
+10747 ; [.4661.0020.0002] # LINEAR A SIGN A708 K
+10748 ; [.4662.0020.0002] # LINEAR A SIGN A709 L
+10749 ; [.4663.0020.0002] # LINEAR A SIGN A709-2 L2
+1074A ; [.4664.0020.0002] # LINEAR A SIGN A709-3 L3
+1074B ; [.4665.0020.0002] # LINEAR A SIGN A709-4 L4
+1074C ; [.4666.0020.0002] # LINEAR A SIGN A709-6 L6
+1074D ; [.4667.0020.0002] # LINEAR A SIGN A710 W
+1074E ; [.4668.0020.0002] # LINEAR A SIGN A711 X
+1074F ; [.4669.0020.0002] # LINEAR A SIGN A712 Y
+10750 ; [.466A.0020.0002] # LINEAR A SIGN A713 OMEGA
+10751 ; [.466B.0020.0002] # LINEAR A SIGN A714 ABB
+10752 ; [.466C.0020.0002] # LINEAR A SIGN A715 BB
+10753 ; [.466D.0020.0002] # LINEAR A SIGN A717 DD
+10754 ; [.466E.0020.0002] # LINEAR A SIGN A726 EYYY
+10755 ; [.466F.0020.0002] # LINEAR A SIGN A732 JE
+10760 ; [.4670.0020.0002] # LINEAR A SIGN A800
+10761 ; [.4671.0020.0002] # LINEAR A SIGN A801
+10762 ; [.4672.0020.0002] # LINEAR A SIGN A802
+10763 ; [.4673.0020.0002] # LINEAR A SIGN A803
+10764 ; [.4674.0020.0002] # LINEAR A SIGN A804
+10765 ; [.4675.0020.0002] # LINEAR A SIGN A805
+10766 ; [.4676.0020.0002] # LINEAR A SIGN A806
+10767 ; [.4677.0020.0002] # LINEAR A SIGN A807
+10800 ; [.4678.0020.0002] # CYPRIOT SYLLABLE A
+10801 ; [.4679.0020.0002] # CYPRIOT SYLLABLE E
+10802 ; [.467A.0020.0002] # CYPRIOT SYLLABLE I
+10803 ; [.467B.0020.0002] # CYPRIOT SYLLABLE O
+10804 ; [.467C.0020.0002] # CYPRIOT SYLLABLE U
+10805 ; [.467D.0020.0002] # CYPRIOT SYLLABLE JA
+10808 ; [.467E.0020.0002] # CYPRIOT SYLLABLE JO
+1080A ; [.467F.0020.0002] # CYPRIOT SYLLABLE KA
+1080B ; [.4680.0020.0002] # CYPRIOT SYLLABLE KE
+1080C ; [.4681.0020.0002] # CYPRIOT SYLLABLE KI
+1080D ; [.4682.0020.0002] # CYPRIOT SYLLABLE KO
+1080E ; [.4683.0020.0002] # CYPRIOT SYLLABLE KU
+1080F ; [.4684.0020.0002] # CYPRIOT SYLLABLE LA
+10810 ; [.4685.0020.0002] # CYPRIOT SYLLABLE LE
+10811 ; [.4686.0020.0002] # CYPRIOT SYLLABLE LI
+10812 ; [.4687.0020.0002] # CYPRIOT SYLLABLE LO
+10813 ; [.4688.0020.0002] # CYPRIOT SYLLABLE LU
+10814 ; [.4689.0020.0002] # CYPRIOT SYLLABLE MA
+10815 ; [.468A.0020.0002] # CYPRIOT SYLLABLE ME
+10816 ; [.468B.0020.0002] # CYPRIOT SYLLABLE MI
+10817 ; [.468C.0020.0002] # CYPRIOT SYLLABLE MO
+10818 ; [.468D.0020.0002] # CYPRIOT SYLLABLE MU
+10819 ; [.468E.0020.0002] # CYPRIOT SYLLABLE NA
+1081A ; [.468F.0020.0002] # CYPRIOT SYLLABLE NE
+1081B ; [.4690.0020.0002] # CYPRIOT SYLLABLE NI
+1081C ; [.4691.0020.0002] # CYPRIOT SYLLABLE NO
+1081D ; [.4692.0020.0002] # CYPRIOT SYLLABLE NU
+1081E ; [.4693.0020.0002] # CYPRIOT SYLLABLE PA
+1081F ; [.4694.0020.0002] # CYPRIOT SYLLABLE PE
+10820 ; [.4695.0020.0002] # CYPRIOT SYLLABLE PI
+10821 ; [.4696.0020.0002] # CYPRIOT SYLLABLE PO
+10822 ; [.4697.0020.0002] # CYPRIOT SYLLABLE PU
+10823 ; [.4698.0020.0002] # CYPRIOT SYLLABLE RA
+10824 ; [.4699.0020.0002] # CYPRIOT SYLLABLE RE
+10825 ; [.469A.0020.0002] # CYPRIOT SYLLABLE RI
+10826 ; [.469B.0020.0002] # CYPRIOT SYLLABLE RO
+10827 ; [.469C.0020.0002] # CYPRIOT SYLLABLE RU
+10828 ; [.469D.0020.0002] # CYPRIOT SYLLABLE SA
+10829 ; [.469E.0020.0002] # CYPRIOT SYLLABLE SE
+1082A ; [.469F.0020.0002] # CYPRIOT SYLLABLE SI
+1082B ; [.46A0.0020.0002] # CYPRIOT SYLLABLE SO
+1082C ; [.46A1.0020.0002] # CYPRIOT SYLLABLE SU
+1082D ; [.46A2.0020.0002] # CYPRIOT SYLLABLE TA
+1082E ; [.46A3.0020.0002] # CYPRIOT SYLLABLE TE
+1082F ; [.46A4.0020.0002] # CYPRIOT SYLLABLE TI
+10830 ; [.46A5.0020.0002] # CYPRIOT SYLLABLE TO
+10831 ; [.46A6.0020.0002] # CYPRIOT SYLLABLE TU
+10832 ; [.46A7.0020.0002] # CYPRIOT SYLLABLE WA
+10833 ; [.46A8.0020.0002] # CYPRIOT SYLLABLE WE
+10834 ; [.46A9.0020.0002] # CYPRIOT SYLLABLE WI
+10835 ; [.46AA.0020.0002] # CYPRIOT SYLLABLE WO
+10837 ; [.46AB.0020.0002] # CYPRIOT SYLLABLE XA
+10838 ; [.46AC.0020.0002] # CYPRIOT SYLLABLE XE
+1083C ; [.46AD.0020.0002] # CYPRIOT SYLLABLE ZA
+1083F ; [.46AE.0020.0002] # CYPRIOT SYLLABLE ZO
+10A60 ; [.46AF.0020.0002] # OLD SOUTH ARABIAN LETTER HE
+10A61 ; [.46B0.0020.0002] # OLD SOUTH ARABIAN LETTER LAMEDH
+10A62 ; [.46B1.0020.0002] # OLD SOUTH ARABIAN LETTER HETH
+10A63 ; [.46B2.0020.0002] # OLD SOUTH ARABIAN LETTER MEM
+10A64 ; [.46B3.0020.0002] # OLD SOUTH ARABIAN LETTER QOPH
+10A65 ; [.46B4.0020.0002] # OLD SOUTH ARABIAN LETTER WAW
+10A66 ; [.46B5.0020.0002] # OLD SOUTH ARABIAN LETTER SHIN
+10A67 ; [.46B6.0020.0002] # OLD SOUTH ARABIAN LETTER RESH
+10A68 ; [.46B7.0020.0002] # OLD SOUTH ARABIAN LETTER BETH
+10A69 ; [.46B8.0020.0002] # OLD SOUTH ARABIAN LETTER TAW
+10A6A ; [.46B9.0020.0002] # OLD SOUTH ARABIAN LETTER SAT
+10A6B ; [.46BA.0020.0002] # OLD SOUTH ARABIAN LETTER KAPH
+10A6C ; [.46BB.0020.0002] # OLD SOUTH ARABIAN LETTER NUN
+10A6D ; [.46BC.0020.0002] # OLD SOUTH ARABIAN LETTER KHETH
+10A6E ; [.46BD.0020.0002] # OLD SOUTH ARABIAN LETTER SADHE
+10A6F ; [.46BE.0020.0002] # OLD SOUTH ARABIAN LETTER SAMEKH
+10A70 ; [.46BF.0020.0002] # OLD SOUTH ARABIAN LETTER FE
+10A71 ; [.46C0.0020.0002] # OLD SOUTH ARABIAN LETTER ALEF
+10A72 ; [.46C1.0020.0002] # OLD SOUTH ARABIAN LETTER AYN
+10A73 ; [.46C2.0020.0002] # OLD SOUTH ARABIAN LETTER DHADHE
+10A74 ; [.46C3.0020.0002] # OLD SOUTH ARABIAN LETTER GIMEL
+10A75 ; [.46C4.0020.0002] # OLD SOUTH ARABIAN LETTER DALETH
+10A76 ; [.46C5.0020.0002] # OLD SOUTH ARABIAN LETTER GHAYN
+10A77 ; [.46C6.0020.0002] # OLD SOUTH ARABIAN LETTER TETH
+10A78 ; [.46C7.0020.0002] # OLD SOUTH ARABIAN LETTER ZAYN
+10A79 ; [.46C8.0020.0002] # OLD SOUTH ARABIAN LETTER DHALETH
+10A7A ; [.46C9.0020.0002] # OLD SOUTH ARABIAN LETTER YODH
+10A7B ; [.46CA.0020.0002] # OLD SOUTH ARABIAN LETTER THAW
+10A7C ; [.46CB.0020.0002] # OLD SOUTH ARABIAN LETTER THETH
+10A80 ; [.46CC.0020.0002] # OLD NORTH ARABIAN LETTER HEH
+10A81 ; [.46CD.0020.0002] # OLD NORTH ARABIAN LETTER LAM
+10A82 ; [.46CE.0020.0002] # OLD NORTH ARABIAN LETTER HAH
+10A83 ; [.46CF.0020.0002] # OLD NORTH ARABIAN LETTER MEEM
+10A84 ; [.46D0.0020.0002] # OLD NORTH ARABIAN LETTER QAF
+10A85 ; [.46D1.0020.0002] # OLD NORTH ARABIAN LETTER WAW
+10A86 ; [.46D2.0020.0002] # OLD NORTH ARABIAN LETTER ES-2
+10A87 ; [.46D3.0020.0002] # OLD NORTH ARABIAN LETTER REH
+10A88 ; [.46D4.0020.0002] # OLD NORTH ARABIAN LETTER BEH
+10A89 ; [.46D5.0020.0002] # OLD NORTH ARABIAN LETTER TEH
+10A8A ; [.46D6.0020.0002] # OLD NORTH ARABIAN LETTER ES-1
+10A8B ; [.46D7.0020.0002] # OLD NORTH ARABIAN LETTER KAF
+10A8C ; [.46D8.0020.0002] # OLD NORTH ARABIAN LETTER NOON
+10A8D ; [.46D9.0020.0002] # OLD NORTH ARABIAN LETTER KHAH
+10A8E ; [.46DA.0020.0002] # OLD NORTH ARABIAN LETTER SAD
+10A8F ; [.46DB.0020.0002] # OLD NORTH ARABIAN LETTER ES-3
+10A90 ; [.46DC.0020.0002] # OLD NORTH ARABIAN LETTER FEH
+10A91 ; [.46DD.0020.0002] # OLD NORTH ARABIAN LETTER ALEF
+10A92 ; [.46DE.0020.0002] # OLD NORTH ARABIAN LETTER AIN
+10A93 ; [.46DF.0020.0002] # OLD NORTH ARABIAN LETTER DAD
+10A94 ; [.46E0.0020.0002] # OLD NORTH ARABIAN LETTER GEEM
+10A95 ; [.46E1.0020.0002] # OLD NORTH ARABIAN LETTER DAL
+10A96 ; [.46E2.0020.0002] # OLD NORTH ARABIAN LETTER GHAIN
+10A97 ; [.46E3.0020.0002] # OLD NORTH ARABIAN LETTER TAH
+10A98 ; [.46E4.0020.0002] # OLD NORTH ARABIAN LETTER ZAIN
+10A99 ; [.46E5.0020.0002] # OLD NORTH ARABIAN LETTER THAL
+10A9A ; [.46E6.0020.0002] # OLD NORTH ARABIAN LETTER YEH
+10A9B ; [.46E7.0020.0002] # OLD NORTH ARABIAN LETTER THEH
+10A9C ; [.46E8.0020.0002] # OLD NORTH ARABIAN LETTER ZAH
+10B00 ; [.46E9.0020.0002] # AVESTAN LETTER A
+10B01 ; [.46EA.0020.0002] # AVESTAN LETTER AA
+10B02 ; [.46EB.0020.0002] # AVESTAN LETTER AO
+10B03 ; [.46EC.0020.0002] # AVESTAN LETTER AAO
+10B04 ; [.46ED.0020.0002] # AVESTAN LETTER AN
+10B05 ; [.46EE.0020.0002] # AVESTAN LETTER AAN
+10B06 ; [.46EF.0020.0002] # AVESTAN LETTER AE
+10B07 ; [.46F0.0020.0002] # AVESTAN LETTER AEE
+10B08 ; [.46F1.0020.0002] # AVESTAN LETTER E
+10B09 ; [.46F2.0020.0002] # AVESTAN LETTER EE
+10B0A ; [.46F3.0020.0002] # AVESTAN LETTER O
+10B0B ; [.46F4.0020.0002] # AVESTAN LETTER OO
+10B0C ; [.46F5.0020.0002] # AVESTAN LETTER I
+10B0D ; [.46F6.0020.0002] # AVESTAN LETTER II
+10B0E ; [.46F7.0020.0002] # AVESTAN LETTER U
+10B0F ; [.46F8.0020.0002] # AVESTAN LETTER UU
+10B10 ; [.46F9.0020.0002] # AVESTAN LETTER KE
+10B11 ; [.46FA.0020.0002] # AVESTAN LETTER XE
+10B12 ; [.46FB.0020.0002] # AVESTAN LETTER XYE
+10B13 ; [.46FC.0020.0002] # AVESTAN LETTER XVE
+10B14 ; [.46FD.0020.0002] # AVESTAN LETTER GE
+10B15 ; [.46FE.0020.0002] # AVESTAN LETTER GGE
+10B16 ; [.46FF.0020.0002] # AVESTAN LETTER GHE
+10B17 ; [.4700.0020.0002] # AVESTAN LETTER CE
+10B18 ; [.4701.0020.0002] # AVESTAN LETTER JE
+10B19 ; [.4702.0020.0002] # AVESTAN LETTER TE
+10B1A ; [.4703.0020.0002] # AVESTAN LETTER THE
+10B1B ; [.4704.0020.0002] # AVESTAN LETTER DE
+10B1C ; [.4705.0020.0002] # AVESTAN LETTER DHE
+10B1D ; [.4706.0020.0002] # AVESTAN LETTER TTE
+10B1E ; [.4707.0020.0002] # AVESTAN LETTER PE
+10B1F ; [.4708.0020.0002] # AVESTAN LETTER FE
+10B20 ; [.4709.0020.0002] # AVESTAN LETTER BE
+10B21 ; [.470A.0020.0002] # AVESTAN LETTER BHE
+10B22 ; [.470B.0020.0002] # AVESTAN LETTER NGE
+10B23 ; [.470C.0020.0002] # AVESTAN LETTER NGYE
+10B24 ; [.470D.0020.0002] # AVESTAN LETTER NGVE
+10B25 ; [.470E.0020.0002] # AVESTAN LETTER NE
+10B26 ; [.470F.0020.0002] # AVESTAN LETTER NYE
+10B27 ; [.4710.0020.0002] # AVESTAN LETTER NNE
+10B28 ; [.4711.0020.0002] # AVESTAN LETTER ME
+10B29 ; [.4712.0020.0002] # AVESTAN LETTER HME
+10B2A ; [.4713.0020.0002] # AVESTAN LETTER YYE
+10B2B ; [.4714.0020.0002] # AVESTAN LETTER YE
+10B2C ; [.4715.0020.0002] # AVESTAN LETTER VE
+10B2D ; [.4716.0020.0002] # AVESTAN LETTER RE
+10B2E ; [.4716.0020.0004][.0000.010B.0004] # AVESTAN LETTER LE
+10B2F ; [.4717.0020.0002] # AVESTAN LETTER SE
+10B30 ; [.4718.0020.0002] # AVESTAN LETTER ZE
+10B31 ; [.4719.0020.0002] # AVESTAN LETTER SHE
+10B32 ; [.471A.0020.0002] # AVESTAN LETTER ZHE
+10B33 ; [.471B.0020.0002] # AVESTAN LETTER SHYE
+10B34 ; [.471C.0020.0002] # AVESTAN LETTER SSHE
+10B35 ; [.471D.0020.0002] # AVESTAN LETTER HE
+10860 ; [.471E.0020.0002] # PALMYRENE LETTER ALEPH
+10861 ; [.471F.0020.0002] # PALMYRENE LETTER BETH
+10862 ; [.4720.0020.0002] # PALMYRENE LETTER GIMEL
+10863 ; [.4721.0020.0002] # PALMYRENE LETTER DALETH
+10864 ; [.4722.0020.0002] # PALMYRENE LETTER HE
+10865 ; [.4723.0020.0002] # PALMYRENE LETTER WAW
+10866 ; [.4724.0020.0002] # PALMYRENE LETTER ZAYIN
+10867 ; [.4725.0020.0002] # PALMYRENE LETTER HETH
+10868 ; [.4726.0020.0002] # PALMYRENE LETTER TETH
+10869 ; [.4727.0020.0002] # PALMYRENE LETTER YODH
+1086A ; [.4728.0020.0002] # PALMYRENE LETTER KAPH
+1086B ; [.4729.0020.0002] # PALMYRENE LETTER LAMEDH
+1086C ; [.472A.0020.0002] # PALMYRENE LETTER MEM
+1086E ; [.472B.0020.0002] # PALMYRENE LETTER NUN
+1086D ; [.472B.0020.0019] # PALMYRENE LETTER FINAL NUN
+1086F ; [.472C.0020.0002] # PALMYRENE LETTER SAMEKH
+10870 ; [.472D.0020.0002] # PALMYRENE LETTER AYIN
+10871 ; [.472E.0020.0002] # PALMYRENE LETTER PE
+10872 ; [.472F.0020.0002] # PALMYRENE LETTER SADHE
+10873 ; [.4730.0020.0002] # PALMYRENE LETTER QOPH
+10874 ; [.4731.0020.0002] # PALMYRENE LETTER RESH
+10875 ; [.4732.0020.0002] # PALMYRENE LETTER SHIN
+10876 ; [.4733.0020.0002] # PALMYRENE LETTER TAW
+10881 ; [.4734.0020.0002] # NABATAEAN LETTER ALEPH
+10880 ; [.4734.0020.0019] # NABATAEAN LETTER FINAL ALEPH
+10883 ; [.4735.0020.0002] # NABATAEAN LETTER BETH
+10882 ; [.4735.0020.0019] # NABATAEAN LETTER FINAL BETH
+10884 ; [.4736.0020.0002] # NABATAEAN LETTER GIMEL
+10885 ; [.4737.0020.0002] # NABATAEAN LETTER DALETH
+10887 ; [.4738.0020.0002] # NABATAEAN LETTER HE
+10886 ; [.4738.0020.0019] # NABATAEAN LETTER FINAL HE
+10888 ; [.4739.0020.0002] # NABATAEAN LETTER WAW
+10889 ; [.473A.0020.0002] # NABATAEAN LETTER ZAYIN
+1088A ; [.473B.0020.0002] # NABATAEAN LETTER HETH
+1088B ; [.473C.0020.0002] # NABATAEAN LETTER TETH
+1088D ; [.473D.0020.0002] # NABATAEAN LETTER YODH
+1088C ; [.473D.0020.0019] # NABATAEAN LETTER FINAL YODH
+1088F ; [.473E.0020.0002] # NABATAEAN LETTER KAPH
+1088E ; [.473E.0020.0019] # NABATAEAN LETTER FINAL KAPH
+10891 ; [.473F.0020.0002] # NABATAEAN LETTER LAMEDH
+10890 ; [.473F.0020.0019] # NABATAEAN LETTER FINAL LAMEDH
+10893 ; [.4740.0020.0002] # NABATAEAN LETTER MEM
+10892 ; [.4740.0020.0019] # NABATAEAN LETTER FINAL MEM
+10895 ; [.4741.0020.0002] # NABATAEAN LETTER NUN
+10894 ; [.4741.0020.0019] # NABATAEAN LETTER FINAL NUN
+10896 ; [.4742.0020.0002] # NABATAEAN LETTER SAMEKH
+10897 ; [.4743.0020.0002] # NABATAEAN LETTER AYIN
+10898 ; [.4744.0020.0002] # NABATAEAN LETTER PE
+10899 ; [.4745.0020.0002] # NABATAEAN LETTER SADHE
+1089A ; [.4746.0020.0002] # NABATAEAN LETTER QOPH
+1089B ; [.4747.0020.0002] # NABATAEAN LETTER RESH
+1089D ; [.4748.0020.0002] # NABATAEAN LETTER SHIN
+1089C ; [.4748.0020.0019] # NABATAEAN LETTER FINAL SHIN
+1089E ; [.4749.0020.0002] # NABATAEAN LETTER TAW
+108E0 ; [.474A.0020.0002] # HATRAN LETTER ALEPH
+108E1 ; [.474B.0020.0002] # HATRAN LETTER BETH
+108E2 ; [.474C.0020.0002] # HATRAN LETTER GIMEL
+108E3 ; [.474D.0020.0002] # HATRAN LETTER DALETH-RESH
+108E4 ; [.474E.0020.0002] # HATRAN LETTER HE
+108E5 ; [.474F.0020.0002] # HATRAN LETTER WAW
+108E6 ; [.4750.0020.0002] # HATRAN LETTER ZAYN
+108E7 ; [.4751.0020.0002] # HATRAN LETTER HETH
+108E8 ; [.4752.0020.0002] # HATRAN LETTER TETH
+108E9 ; [.4753.0020.0002] # HATRAN LETTER YODH
+108EA ; [.4754.0020.0002] # HATRAN LETTER KAPH
+108EB ; [.4755.0020.0002] # HATRAN LETTER LAMEDH
+108EC ; [.4756.0020.0002] # HATRAN LETTER MEM
+108ED ; [.4757.0020.0002] # HATRAN LETTER NUN
+108EE ; [.4758.0020.0002] # HATRAN LETTER SAMEKH
+108EF ; [.4759.0020.0002] # HATRAN LETTER AYN
+108F0 ; [.475A.0020.0002] # HATRAN LETTER PE
+108F1 ; [.475B.0020.0002] # HATRAN LETTER SADHE
+108F2 ; [.475C.0020.0002] # HATRAN LETTER QOPH
+108F4 ; [.475D.0020.0002] # HATRAN LETTER SHIN
+108F5 ; [.475E.0020.0002] # HATRAN LETTER TAW
+10840 ; [.475F.0020.0002] # IMPERIAL ARAMAIC LETTER ALEPH
+10841 ; [.4760.0020.0002] # IMPERIAL ARAMAIC LETTER BETH
+10842 ; [.4761.0020.0002] # IMPERIAL ARAMAIC LETTER GIMEL
+10843 ; [.4762.0020.0002] # IMPERIAL ARAMAIC LETTER DALETH
+10844 ; [.4763.0020.0002] # IMPERIAL ARAMAIC LETTER HE
+10845 ; [.4764.0020.0002] # IMPERIAL ARAMAIC LETTER WAW
+10846 ; [.4765.0020.0002] # IMPERIAL ARAMAIC LETTER ZAYIN
+10847 ; [.4766.0020.0002] # IMPERIAL ARAMAIC LETTER HETH
+10848 ; [.4767.0020.0002] # IMPERIAL ARAMAIC LETTER TETH
+10849 ; [.4768.0020.0002] # IMPERIAL ARAMAIC LETTER YODH
+1084A ; [.4769.0020.0002] # IMPERIAL ARAMAIC LETTER KAPH
+1084B ; [.476A.0020.0002] # IMPERIAL ARAMAIC LETTER LAMEDH
+1084C ; [.476B.0020.0002] # IMPERIAL ARAMAIC LETTER MEM
+1084D ; [.476C.0020.0002] # IMPERIAL ARAMAIC LETTER NUN
+1084E ; [.476D.0020.0002] # IMPERIAL ARAMAIC LETTER SAMEKH
+1084F ; [.476E.0020.0002] # IMPERIAL ARAMAIC LETTER AYIN
+10850 ; [.476F.0020.0002] # IMPERIAL ARAMAIC LETTER PE
+10851 ; [.4770.0020.0002] # IMPERIAL ARAMAIC LETTER SADHE
+10852 ; [.4771.0020.0002] # IMPERIAL ARAMAIC LETTER QOPH
+10853 ; [.4772.0020.0002] # IMPERIAL ARAMAIC LETTER RESH
+10854 ; [.4773.0020.0002] # IMPERIAL ARAMAIC LETTER SHIN
+10855 ; [.4774.0020.0002] # IMPERIAL ARAMAIC LETTER TAW
+10B40 ; [.4775.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ALEPH
+10B41 ; [.4776.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER BETH
+10B42 ; [.4777.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER GIMEL
+10B43 ; [.4778.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER DALETH
+10B44 ; [.4779.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HE
+10B45 ; [.477A.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER WAW
+10B46 ; [.477B.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER ZAYIN
+10B47 ; [.477C.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER HETH
+10B48 ; [.477D.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TETH
+10B49 ; [.477E.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER YODH
+10B4A ; [.477F.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER KAPH
+10B4B ; [.4780.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER LAMEDH
+10B4C ; [.4781.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER MEM
+10B4D ; [.4782.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER NUN
+10B4E ; [.4783.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SAMEKH
+10B4F ; [.4784.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER AYIN
+10B50 ; [.4785.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER PE
+10B51 ; [.4786.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SADHE
+10B52 ; [.4787.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER QOPH
+10B53 ; [.4788.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER RESH
+10B54 ; [.4789.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER SHIN
+10B55 ; [.478A.0020.0002] # INSCRIPTIONAL PARTHIAN LETTER TAW
+10B60 ; [.478B.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ALEPH
+10B61 ; [.478C.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER BETH
+10B62 ; [.478D.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER GIMEL
+10B63 ; [.478E.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER DALETH
+10B64 ; [.478F.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HE
+10B65 ; [.4790.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
+10B66 ; [.4791.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER ZAYIN
+10B67 ; [.4792.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER HETH
+10B68 ; [.4793.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TETH
+10B69 ; [.4794.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER YODH
+10B6A ; [.4795.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER KAPH
+10B6B ; [.4796.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER LAMEDH
+10B6C ; [.4797.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
+10B6D ; [.4798.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER NUN
+10B6E ; [.4799.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SAMEKH
+10B6F ; [.479A.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER PE
+10B70 ; [.479B.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SADHE
+10B71 ; [.479C.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER SHIN
+10B72 ; [.479D.0020.0002] # INSCRIPTIONAL PAHLAVI LETTER TAW
+10B80 ; [.479E.0020.0002] # PSALTER PAHLAVI LETTER ALEPH
+10B81 ; [.479F.0020.0002] # PSALTER PAHLAVI LETTER BETH
+10B82 ; [.47A0.0020.0002] # PSALTER PAHLAVI LETTER GIMEL
+10B83 ; [.47A1.0020.0002] # PSALTER PAHLAVI LETTER DALETH
+10B84 ; [.47A2.0020.0002] # PSALTER PAHLAVI LETTER HE
+10B85 ; [.47A3.0020.0002] # PSALTER PAHLAVI LETTER WAW-AYIN-RESH
+10B86 ; [.47A4.0020.0002] # PSALTER PAHLAVI LETTER ZAYIN
+10B87 ; [.47A5.0020.0002] # PSALTER PAHLAVI LETTER HETH
+10B88 ; [.47A6.0020.0002] # PSALTER PAHLAVI LETTER YODH
+10B89 ; [.47A7.0020.0002] # PSALTER PAHLAVI LETTER KAPH
+10B8A ; [.47A8.0020.0002] # PSALTER PAHLAVI LETTER LAMEDH
+10B8B ; [.47A9.0020.0002] # PSALTER PAHLAVI LETTER MEM-QOPH
+10B8C ; [.47AA.0020.0002] # PSALTER PAHLAVI LETTER NUN
+10B8D ; [.47AB.0020.0002] # PSALTER PAHLAVI LETTER SAMEKH
+10B8E ; [.47AC.0020.0002] # PSALTER PAHLAVI LETTER PE
+10B8F ; [.47AD.0020.0002] # PSALTER PAHLAVI LETTER SADHE
+10B90 ; [.47AE.0020.0002] # PSALTER PAHLAVI LETTER SHIN
+10B91 ; [.47AF.0020.0002] # PSALTER PAHLAVI LETTER TAW
+10AC0 ; [.47B0.0020.0002] # MANICHAEAN LETTER ALEPH
+10AC1 ; [.47B1.0020.0002] # MANICHAEAN LETTER BETH
+10AC2 ; [.47B2.0020.0002] # MANICHAEAN LETTER BHETH
+10AC3 ; [.47B3.0020.0002] # MANICHAEAN LETTER GIMEL
+10AC4 ; [.47B4.0020.0002] # MANICHAEAN LETTER GHIMEL
+10AC5 ; [.47B5.0020.0002] # MANICHAEAN LETTER DALETH
+10AC6 ; [.47B6.0020.0002] # MANICHAEAN LETTER HE
+10AC7 ; [.47B7.0020.0002] # MANICHAEAN LETTER WAW
+10AC8 ; [.47B7.0020.0004][.0000.010C.0004] # MANICHAEAN SIGN UD
+10AC9 ; [.47B8.0020.0002] # MANICHAEAN LETTER ZAYIN
+10ACA ; [.47B9.0020.0002] # MANICHAEAN LETTER ZHAYIN
+10ACB ; [.47BA.0020.0002] # MANICHAEAN LETTER JAYIN
+10ACC ; [.47BB.0020.0002] # MANICHAEAN LETTER JHAYIN
+10ACD ; [.47BC.0020.0002] # MANICHAEAN LETTER HETH
+10ACE ; [.47BD.0020.0002] # MANICHAEAN LETTER TETH
+10ACF ; [.47BE.0020.0002] # MANICHAEAN LETTER YODH
+10AD0 ; [.47BF.0020.0002] # MANICHAEAN LETTER KAPH
+10AD1 ; [.47C0.0020.0002] # MANICHAEAN LETTER XAPH
+10AD2 ; [.47C1.0020.0002] # MANICHAEAN LETTER KHAPH
+10AD3 ; [.47C2.0020.0002] # MANICHAEAN LETTER LAMEDH
+10AD4 ; [.47C3.0020.0002] # MANICHAEAN LETTER DHAMEDH
+10AD5 ; [.47C4.0020.0002] # MANICHAEAN LETTER THAMEDH
+10AD6 ; [.47C5.0020.0002] # MANICHAEAN LETTER MEM
+10AD7 ; [.47C6.0020.0002] # MANICHAEAN LETTER NUN
+10AD8 ; [.47C7.0020.0002] # MANICHAEAN LETTER SAMEKH
+10AD9 ; [.47C8.0020.0002] # MANICHAEAN LETTER AYIN
+10ADA ; [.47C9.0020.0002] # MANICHAEAN LETTER AAYIN
+10ADB ; [.47CA.0020.0002] # MANICHAEAN LETTER PE
+10ADC ; [.47CB.0020.0002] # MANICHAEAN LETTER FE
+10ADD ; [.47CC.0020.0002] # MANICHAEAN LETTER SADHE
+10ADE ; [.47CD.0020.0002] # MANICHAEAN LETTER QOPH
+10ADF ; [.47CE.0020.0002] # MANICHAEAN LETTER XOPH
+10AE0 ; [.47CF.0020.0002] # MANICHAEAN LETTER QHOPH
+10AE1 ; [.47D0.0020.0002] # MANICHAEAN LETTER RESH
+10AE2 ; [.47D1.0020.0002] # MANICHAEAN LETTER SHIN
+10AE3 ; [.47D2.0020.0002] # MANICHAEAN LETTER SSHIN
+10AE4 ; [.47D3.0020.0002] # MANICHAEAN LETTER TAW
+10380 ; [.47D4.0020.0002] # UGARITIC LETTER ALPA
+10381 ; [.47D5.0020.0002] # UGARITIC LETTER BETA
+10382 ; [.47D6.0020.0002] # UGARITIC LETTER GAMLA
+10383 ; [.47D7.0020.0002] # UGARITIC LETTER KHA
+10384 ; [.47D8.0020.0002] # UGARITIC LETTER DELTA
+10385 ; [.47D9.0020.0002] # UGARITIC LETTER HO
+10386 ; [.47DA.0020.0002] # UGARITIC LETTER WO
+10387 ; [.47DB.0020.0002] # UGARITIC LETTER ZETA
+10388 ; [.47DC.0020.0002] # UGARITIC LETTER HOTA
+10389 ; [.47DD.0020.0002] # UGARITIC LETTER TET
+1038A ; [.47DE.0020.0002] # UGARITIC LETTER YOD
+1038B ; [.47DF.0020.0002] # UGARITIC LETTER KAF
+1038C ; [.47E0.0020.0002] # UGARITIC LETTER SHIN
+1038D ; [.47E1.0020.0002] # UGARITIC LETTER LAMDA
+1038E ; [.47E2.0020.0002] # UGARITIC LETTER MEM
+1038F ; [.47E3.0020.0002] # UGARITIC LETTER DHAL
+10390 ; [.47E4.0020.0002] # UGARITIC LETTER NUN
+10391 ; [.47E5.0020.0002] # UGARITIC LETTER ZU
+10392 ; [.47E6.0020.0002] # UGARITIC LETTER SAMKA
+10393 ; [.47E7.0020.0002] # UGARITIC LETTER AIN
+10394 ; [.47E8.0020.0002] # UGARITIC LETTER PU
+10395 ; [.47E9.0020.0002] # UGARITIC LETTER SADE
+10396 ; [.47EA.0020.0002] # UGARITIC LETTER QOPA
+10397 ; [.47EB.0020.0002] # UGARITIC LETTER RASHA
+10398 ; [.47EC.0020.0002] # UGARITIC LETTER THANNA
+10399 ; [.47ED.0020.0002] # UGARITIC LETTER GHAIN
+1039A ; [.47EE.0020.0002] # UGARITIC LETTER TO
+1039B ; [.47EF.0020.0002] # UGARITIC LETTER I
+1039C ; [.47F0.0020.0002] # UGARITIC LETTER U
+1039D ; [.47F1.0020.0002] # UGARITIC LETTER SSU
+103A0 ; [.47F2.0020.0002] # OLD PERSIAN SIGN A
+103A1 ; [.47F3.0020.0002] # OLD PERSIAN SIGN I
+103A2 ; [.47F4.0020.0002] # OLD PERSIAN SIGN U
+103A3 ; [.47F5.0020.0002] # OLD PERSIAN SIGN KA
+103A4 ; [.47F6.0020.0002] # OLD PERSIAN SIGN KU
+103A5 ; [.47F7.0020.0002] # OLD PERSIAN SIGN GA
+103A6 ; [.47F8.0020.0002] # OLD PERSIAN SIGN GU
+103A7 ; [.47F9.0020.0002] # OLD PERSIAN SIGN XA
+103A8 ; [.47FA.0020.0002] # OLD PERSIAN SIGN CA
+103A9 ; [.47FB.0020.0002] # OLD PERSIAN SIGN JA
+103AA ; [.47FC.0020.0002] # OLD PERSIAN SIGN JI
+103AB ; [.47FD.0020.0002] # OLD PERSIAN SIGN TA
+103AC ; [.47FE.0020.0002] # OLD PERSIAN SIGN TU
+103AD ; [.47FF.0020.0002] # OLD PERSIAN SIGN DA
+103AE ; [.4800.0020.0002] # OLD PERSIAN SIGN DI
+103AF ; [.4801.0020.0002] # OLD PERSIAN SIGN DU
+103B0 ; [.4802.0020.0002] # OLD PERSIAN SIGN THA
+103B1 ; [.4803.0020.0002] # OLD PERSIAN SIGN PA
+103B2 ; [.4804.0020.0002] # OLD PERSIAN SIGN BA
+103B3 ; [.4805.0020.0002] # OLD PERSIAN SIGN FA
+103B4 ; [.4806.0020.0002] # OLD PERSIAN SIGN NA
+103B5 ; [.4807.0020.0002] # OLD PERSIAN SIGN NU
+103B6 ; [.4808.0020.0002] # OLD PERSIAN SIGN MA
+103B7 ; [.4809.0020.0002] # OLD PERSIAN SIGN MI
+103B8 ; [.480A.0020.0002] # OLD PERSIAN SIGN MU
+103B9 ; [.480B.0020.0002] # OLD PERSIAN SIGN YA
+103BA ; [.480C.0020.0002] # OLD PERSIAN SIGN VA
+103BB ; [.480D.0020.0002] # OLD PERSIAN SIGN VI
+103BC ; [.480E.0020.0002] # OLD PERSIAN SIGN RA
+103BD ; [.480F.0020.0002] # OLD PERSIAN SIGN RU
+103BE ; [.4810.0020.0002] # OLD PERSIAN SIGN LA
+103BF ; [.4811.0020.0002] # OLD PERSIAN SIGN SA
+103C0 ; [.4812.0020.0002] # OLD PERSIAN SIGN ZA
+103C1 ; [.4813.0020.0002] # OLD PERSIAN SIGN SHA
+103C2 ; [.4814.0020.0002] # OLD PERSIAN SIGN SSA
+103C3 ; [.4815.0020.0002] # OLD PERSIAN SIGN HA
+103C8 ; [.4816.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA
+103C9 ; [.4817.0020.0002] # OLD PERSIAN SIGN AURAMAZDAA-2
+103CA ; [.4818.0020.0002] # OLD PERSIAN SIGN AURAMAZDAAHA
+103CB ; [.4819.0020.0002] # OLD PERSIAN SIGN XSHAAYATHIYA
+103CC ; [.481A.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH
+103CD ; [.481B.0020.0002] # OLD PERSIAN SIGN DAHYAAUSH-2
+103CE ; [.481C.0020.0002] # OLD PERSIAN SIGN BAGA
+103CF ; [.481D.0020.0002] # OLD PERSIAN SIGN BUUMISH
+12000 ; [.481E.0020.0002] # CUNEIFORM SIGN A
+12001 ; [.481F.0020.0002] # CUNEIFORM SIGN A TIMES A
+12002 ; [.4820.0020.0002] # CUNEIFORM SIGN A TIMES BAD
+12003 ; [.4821.0020.0002] # CUNEIFORM SIGN A TIMES GAN2 TENU
+12004 ; [.4822.0020.0002] # CUNEIFORM SIGN A TIMES HA
+12005 ; [.4823.0020.0002] # CUNEIFORM SIGN A TIMES IGI
+12006 ; [.4824.0020.0002] # CUNEIFORM SIGN A TIMES LAGAR GUNU
+12007 ; [.4825.0020.0002] # CUNEIFORM SIGN A TIMES MUSH
+12008 ; [.4826.0020.0002] # CUNEIFORM SIGN A TIMES SAG
+12009 ; [.4827.0020.0002] # CUNEIFORM SIGN A2
+1200A ; [.4828.0020.0002] # CUNEIFORM SIGN AB
+1200B ; [.4829.0020.0002] # CUNEIFORM SIGN AB TIMES ASH2
+1200C ; [.482A.0020.0002] # CUNEIFORM SIGN AB TIMES DUN3 GUNU
+1200D ; [.482B.0020.0002] # CUNEIFORM SIGN AB TIMES GAL
+1200E ; [.482C.0020.0002] # CUNEIFORM SIGN AB TIMES GAN2 TENU
+1200F ; [.482D.0020.0002] # CUNEIFORM SIGN AB TIMES HA
+12010 ; [.482E.0020.0002] # CUNEIFORM SIGN AB TIMES IGI GUNU
+12011 ; [.482F.0020.0002] # CUNEIFORM SIGN AB TIMES IMIN
+12012 ; [.4830.0020.0002] # CUNEIFORM SIGN AB TIMES LAGAB
+12013 ; [.4831.0020.0002] # CUNEIFORM SIGN AB TIMES SHESH
+12014 ; [.4832.0020.0002] # CUNEIFORM SIGN AB TIMES U PLUS U PLUS U
+12015 ; [.4833.0020.0002] # CUNEIFORM SIGN AB GUNU
+12016 ; [.4834.0020.0002] # CUNEIFORM SIGN AB2
+12017 ; [.4835.0020.0002] # CUNEIFORM SIGN AB2 TIMES BALAG
+12018 ; [.4836.0020.0002] # CUNEIFORM SIGN AB2 TIMES GAN2 TENU
+12019 ; [.4837.0020.0002] # CUNEIFORM SIGN AB2 TIMES ME PLUS EN
+1201A ; [.4838.0020.0002] # CUNEIFORM SIGN AB2 TIMES SHA3
+1201B ; [.4839.0020.0002] # CUNEIFORM SIGN AB2 TIMES TAK4
+1201C ; [.483A.0020.0002] # CUNEIFORM SIGN AD
+1201D ; [.483B.0020.0002] # CUNEIFORM SIGN AK
+1201E ; [.483C.0020.0002] # CUNEIFORM SIGN AK TIMES ERIN2
+1201F ; [.483D.0020.0002] # CUNEIFORM SIGN AK TIMES SHITA PLUS GISH
+12020 ; [.483E.0020.0002] # CUNEIFORM SIGN AL
+12021 ; [.483F.0020.0002] # CUNEIFORM SIGN AL TIMES AL
+12022 ; [.4840.0020.0002] # CUNEIFORM SIGN AL TIMES DIM2
+12023 ; [.4841.0020.0002] # CUNEIFORM SIGN AL TIMES GISH
+12024 ; [.4842.0020.0002] # CUNEIFORM SIGN AL TIMES HA
+12025 ; [.4843.0020.0002] # CUNEIFORM SIGN AL TIMES KAD3
+12026 ; [.4844.0020.0002] # CUNEIFORM SIGN AL TIMES KI
+12027 ; [.4845.0020.0002] # CUNEIFORM SIGN AL TIMES SHE
+12028 ; [.4846.0020.0002] # CUNEIFORM SIGN AL TIMES USH
+12029 ; [.4847.0020.0002] # CUNEIFORM SIGN ALAN
+1202A ; [.4848.0020.0002] # CUNEIFORM SIGN ALEPH
+1202B ; [.4849.0020.0002] # CUNEIFORM SIGN AMAR
+1202C ; [.484A.0020.0002] # CUNEIFORM SIGN AMAR TIMES SHE
+1202D ; [.484B.0020.0002] # CUNEIFORM SIGN AN
+1202E ; [.484C.0020.0002] # CUNEIFORM SIGN AN OVER AN
+1202F ; [.484D.0020.0002] # CUNEIFORM SIGN AN THREE TIMES
+12030 ; [.484E.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA
+12031 ; [.484F.0020.0002] # CUNEIFORM SIGN AN PLUS NAGA SQUARED
+12032 ; [.4850.0020.0002] # CUNEIFORM SIGN ANSHE
+12033 ; [.4851.0020.0002] # CUNEIFORM SIGN APIN
+12034 ; [.4852.0020.0002] # CUNEIFORM SIGN ARAD
+12035 ; [.4853.0020.0002] # CUNEIFORM SIGN ARAD TIMES KUR
+12036 ; [.4854.0020.0002] # CUNEIFORM SIGN ARKAB
+12037 ; [.4855.0020.0002] # CUNEIFORM SIGN ASAL2
+12038 ; [.4856.0020.0002] # CUNEIFORM SIGN ASH
+12039 ; [.4857.0020.0002] # CUNEIFORM SIGN ASH ZIDA TENU
+1203A ; [.4858.0020.0002] # CUNEIFORM SIGN ASH KABA TENU
+1203B ; [.4859.0020.0002] # CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP
+1203C ; [.485A.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH
+1203D ; [.485B.0020.0002] # CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH
+1203E ; [.485C.0020.0002] # CUNEIFORM SIGN ASH2
+1203F ; [.485D.0020.0002] # CUNEIFORM SIGN ASHGAB
+12040 ; [.485E.0020.0002] # CUNEIFORM SIGN BA
+12041 ; [.485F.0020.0002] # CUNEIFORM SIGN BAD
+12042 ; [.4860.0020.0002] # CUNEIFORM SIGN BAG3
+12043 ; [.4861.0020.0002] # CUNEIFORM SIGN BAHAR2
+12044 ; [.4862.0020.0002] # CUNEIFORM SIGN BAL
+12045 ; [.4863.0020.0002] # CUNEIFORM SIGN BAL OVER BAL
+12046 ; [.4864.0020.0002] # CUNEIFORM SIGN BALAG
+12047 ; [.4865.0020.0002] # CUNEIFORM SIGN BAR
+12048 ; [.4866.0020.0002] # CUNEIFORM SIGN BARA2
+12049 ; [.4867.0020.0002] # CUNEIFORM SIGN BI
+1204A ; [.4868.0020.0002] # CUNEIFORM SIGN BI TIMES A
+1204B ; [.4869.0020.0002] # CUNEIFORM SIGN BI TIMES GAR
+1204C ; [.486A.0020.0002] # CUNEIFORM SIGN BI TIMES IGI GUNU
+1204D ; [.486B.0020.0002] # CUNEIFORM SIGN BU
+1204E ; [.486C.0020.0002] # CUNEIFORM SIGN BU OVER BU AB
+1204F ; [.486D.0020.0002] # CUNEIFORM SIGN BU OVER BU UN
+12050 ; [.486E.0020.0002] # CUNEIFORM SIGN BU CROSSING BU
+12051 ; [.486F.0020.0002] # CUNEIFORM SIGN BULUG
+12052 ; [.4870.0020.0002] # CUNEIFORM SIGN BULUG OVER BULUG
+12053 ; [.4871.0020.0002] # CUNEIFORM SIGN BUR
+12054 ; [.4872.0020.0002] # CUNEIFORM SIGN BUR2
+12055 ; [.4873.0020.0002] # CUNEIFORM SIGN DA
+12056 ; [.4874.0020.0002] # CUNEIFORM SIGN DAG
+12057 ; [.4875.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH
+12058 ; [.4876.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES AMAR
+12059 ; [.4877.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BALAG
+1205A ; [.4878.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES BI
+1205B ; [.4879.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA
+1205C ; [.487A.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH
+1205D ; [.487B.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GI
+1205E ; [.487C.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GIR2
+1205F ; [.487D.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES GUD
+12060 ; [.487E.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES HA
+12061 ; [.487F.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR
+12062 ; [.4880.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU
+12063 ; [.4881.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES KAK
+12064 ; [.4882.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LA
+12065 ; [.4883.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU
+12066 ; [.4884.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2
+12067 ; [.4885.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES LUM
+12068 ; [.4886.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES NE
+12069 ; [.4887.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP
+1206A ; [.4888.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES SI
+1206B ; [.4889.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES TAK4
+1206C ; [.488A.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2
+1206D ; [.488B.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES USH
+1206E ; [.488C.0020.0002] # CUNEIFORM SIGN DAM
+1206F ; [.488D.0020.0002] # CUNEIFORM SIGN DAR
+12070 ; [.488E.0020.0002] # CUNEIFORM SIGN DARA3
+12071 ; [.488F.0020.0002] # CUNEIFORM SIGN DARA4
+12072 ; [.4890.0020.0002] # CUNEIFORM SIGN DI
+12073 ; [.4891.0020.0002] # CUNEIFORM SIGN DIB
+12074 ; [.4892.0020.0002] # CUNEIFORM SIGN DIM
+12075 ; [.4893.0020.0002] # CUNEIFORM SIGN DIM TIMES SHE
+12076 ; [.4894.0020.0002] # CUNEIFORM SIGN DIM2
+12077 ; [.4895.0020.0002] # CUNEIFORM SIGN DIN
+12078 ; [.4896.0020.0002] # CUNEIFORM SIGN DIN KASKAL U GUNU DISH
+12079 ; [.4897.0020.0002] # CUNEIFORM SIGN DISH
+1207A ; [.4898.0020.0002] # CUNEIFORM SIGN DU
+1207B ; [.4899.0020.0002] # CUNEIFORM SIGN DU OVER DU
+1207C ; [.489A.0020.0002] # CUNEIFORM SIGN DU GUNU
+1207D ; [.489B.0020.0002] # CUNEIFORM SIGN DU SHESHIG
+1207E ; [.489C.0020.0002] # CUNEIFORM SIGN DUB
+1207F ; [.489D.0020.0002] # CUNEIFORM SIGN DUB TIMES ESH2
+12080 ; [.489E.0020.0002] # CUNEIFORM SIGN DUB2
+12081 ; [.489F.0020.0002] # CUNEIFORM SIGN DUG
+12082 ; [.48A0.0020.0002] # CUNEIFORM SIGN DUGUD
+12083 ; [.48A1.0020.0002] # CUNEIFORM SIGN DUH
+12084 ; [.48A2.0020.0002] # CUNEIFORM SIGN DUN
+12085 ; [.48A3.0020.0002] # CUNEIFORM SIGN DUN3
+12086 ; [.48A4.0020.0002] # CUNEIFORM SIGN DUN3 GUNU
+12087 ; [.48A5.0020.0002] # CUNEIFORM SIGN DUN3 GUNU GUNU
+12088 ; [.48A6.0020.0002] # CUNEIFORM SIGN DUN4
+12089 ; [.48A7.0020.0002] # CUNEIFORM SIGN DUR2
+1208A ; [.48A8.0020.0002] # CUNEIFORM SIGN E
+1208B ; [.48A9.0020.0002] # CUNEIFORM SIGN E TIMES PAP
+1208C ; [.48AA.0020.0002] # CUNEIFORM SIGN E OVER E NUN OVER NUN
+1208D ; [.48AB.0020.0002] # CUNEIFORM SIGN E2
+1208E ; [.48AC.0020.0002] # CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA
+1208F ; [.48AD.0020.0002] # CUNEIFORM SIGN E2 TIMES GAR
+12090 ; [.48AE.0020.0002] # CUNEIFORM SIGN E2 TIMES MI
+12091 ; [.48AF.0020.0002] # CUNEIFORM SIGN E2 TIMES SAL
+12092 ; [.48B0.0020.0002] # CUNEIFORM SIGN E2 TIMES SHE
+12093 ; [.48B1.0020.0002] # CUNEIFORM SIGN E2 TIMES U
+12094 ; [.48B2.0020.0002] # CUNEIFORM SIGN EDIN
+12095 ; [.48B3.0020.0002] # CUNEIFORM SIGN EGIR
+12096 ; [.48B4.0020.0002] # CUNEIFORM SIGN EL
+12097 ; [.48B5.0020.0002] # CUNEIFORM SIGN EN
+12098 ; [.48B6.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2
+12099 ; [.48B7.0020.0002] # CUNEIFORM SIGN EN TIMES GAN2 TENU
+1209A ; [.48B8.0020.0002] # CUNEIFORM SIGN EN TIMES ME
+1209B ; [.48B9.0020.0002] # CUNEIFORM SIGN EN CROSSING EN
+1209C ; [.48BA.0020.0002] # CUNEIFORM SIGN EN OPPOSING EN
+1209D ; [.48BB.0020.0002] # CUNEIFORM SIGN EN SQUARED
+1209E ; [.48BC.0020.0002] # CUNEIFORM SIGN EREN
+1209F ; [.48BD.0020.0002] # CUNEIFORM SIGN ERIN2
+120A0 ; [.48BE.0020.0002] # CUNEIFORM SIGN ESH2
+120A1 ; [.48BF.0020.0002] # CUNEIFORM SIGN EZEN
+120A2 ; [.48C0.0020.0002] # CUNEIFORM SIGN EZEN TIMES A
+120A3 ; [.48C1.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL
+120A4 ; [.48C2.0020.0002] # CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL
+120A5 ; [.48C3.0020.0002] # CUNEIFORM SIGN EZEN TIMES AN
+120A6 ; [.48C4.0020.0002] # CUNEIFORM SIGN EZEN TIMES BAD
+120A7 ; [.48C5.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU
+120A8 ; [.48C6.0020.0002] # CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU
+120A9 ; [.48C7.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA
+120AA ; [.48C8.0020.0002] # CUNEIFORM SIGN EZEN TIMES HA GUNU
+120AB ; [.48C9.0020.0002] # CUNEIFORM SIGN EZEN TIMES IGI GUNU
+120AC ; [.48CA.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL
+120AD ; [.48CB.0020.0002] # CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED
+120AE ; [.48CC.0020.0002] # CUNEIFORM SIGN EZEN TIMES KU3
+120AF ; [.48CD.0020.0002] # CUNEIFORM SIGN EZEN TIMES LA
+120B0 ; [.48CE.0020.0002] # CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL
+120B1 ; [.48CF.0020.0002] # CUNEIFORM SIGN EZEN TIMES LI
+120B2 ; [.48D0.0020.0002] # CUNEIFORM SIGN EZEN TIMES LU
+120B3 ; [.48D1.0020.0002] # CUNEIFORM SIGN EZEN TIMES U2
+120B4 ; [.48D2.0020.0002] # CUNEIFORM SIGN EZEN TIMES UD
+120B5 ; [.48D3.0020.0002] # CUNEIFORM SIGN GA
+120B6 ; [.48D4.0020.0002] # CUNEIFORM SIGN GA GUNU
+120B7 ; [.48D5.0020.0002] # CUNEIFORM SIGN GA2
+120B8 ; [.48D6.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA
+120B9 ; [.48D7.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS HA
+120BA ; [.48D8.0020.0002] # CUNEIFORM SIGN GA2 TIMES A PLUS IGI
+120BB ; [.48D9.0020.0002] # CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB
+120BC ; [.48DA.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN
+120BD ; [.48DB.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH
+120BE ; [.48DC.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL
+120BF ; [.48DD.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAD
+120C0 ; [.48DE.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAR PLUS RA
+120C1 ; [.48DF.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR
+120C2 ; [.48E0.0020.0002] # CUNEIFORM SIGN GA2 TIMES BUR PLUS RA
+120C3 ; [.48E1.0020.0002] # CUNEIFORM SIGN GA2 TIMES DA
+120C4 ; [.48E2.0020.0002] # CUNEIFORM SIGN GA2 TIMES DI
+120C5 ; [.48E3.0020.0002] # CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE
+120C6 ; [.48E4.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUB
+120C7 ; [.48E5.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL
+120C8 ; [.48E6.0020.0002] # CUNEIFORM SIGN GA2 TIMES EL PLUS LA
+120C9 ; [.48E7.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN
+120CA ; [.48E8.0020.0002] # CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU
+120CB ; [.48E9.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAN2 TENU
+120CC ; [.48EA.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR
+120CD ; [.48EB.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI
+120CE ; [.48EC.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4
+120CF ; [.48ED.0020.0002] # CUNEIFORM SIGN GA2 TIMES GI4 PLUS A
+120D0 ; [.48EE.0020.0002] # CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU
+120D1 ; [.48EF.0020.0002] # CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2
+120D2 ; [.48F0.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL
+120D3 ; [.48F1.0020.0002] # CUNEIFORM SIGN GA2 TIMES HAL PLUS LA
+120D4 ; [.48F2.0020.0002] # CUNEIFORM SIGN GA2 TIMES HI PLUS LI
+120D5 ; [.48F3.0020.0002] # CUNEIFORM SIGN GA2 TIMES HUB2
+120D6 ; [.48F4.0020.0002] # CUNEIFORM SIGN GA2 TIMES IGI GUNU
+120D7 ; [.48F5.0020.0002] # CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH
+120D8 ; [.48F6.0020.0002] # CUNEIFORM SIGN GA2 TIMES KAK
+120D9 ; [.48F7.0020.0002] # CUNEIFORM SIGN GA2 TIMES KASKAL
+120DA ; [.48F8.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID
+120DB ; [.48F9.0020.0002] # CUNEIFORM SIGN GA2 TIMES KID PLUS LAL
+120DC ; [.48FA.0020.0002] # CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN
+120DD ; [.48FB.0020.0002] # CUNEIFORM SIGN GA2 TIMES LA
+120DE ; [.48FC.0020.0002] # CUNEIFORM SIGN GA2 TIMES ME PLUS EN
+120DF ; [.48FD.0020.0002] # CUNEIFORM SIGN GA2 TIMES MI
+120E0 ; [.48FE.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN
+120E1 ; [.48FF.0020.0002] # CUNEIFORM SIGN GA2 TIMES NUN OVER NUN
+120E2 ; [.4900.0020.0002] # CUNEIFORM SIGN GA2 TIMES PA
+120E3 ; [.4901.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAL
+120E4 ; [.4902.0020.0002] # CUNEIFORM SIGN GA2 TIMES SAR
+120E5 ; [.4903.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE
+120E6 ; [.4904.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR
+120E7 ; [.4905.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHID
+120E8 ; [.4906.0020.0002] # CUNEIFORM SIGN GA2 TIMES SUM
+120E9 ; [.4907.0020.0002] # CUNEIFORM SIGN GA2 TIMES TAK4
+120EA ; [.4908.0020.0002] # CUNEIFORM SIGN GA2 TIMES U
+120EB ; [.4909.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD
+120EC ; [.490A.0020.0002] # CUNEIFORM SIGN GA2 TIMES UD PLUS DU
+120ED ; [.490B.0020.0002] # CUNEIFORM SIGN GA2 OVER GA2
+120EE ; [.490C.0020.0002] # CUNEIFORM SIGN GABA
+120EF ; [.490D.0020.0002] # CUNEIFORM SIGN GABA CROSSING GABA
+120F0 ; [.490E.0020.0002] # CUNEIFORM SIGN GAD
+120F1 ; [.490F.0020.0002] # CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR
+120F2 ; [.4910.0020.0002] # CUNEIFORM SIGN GAL
+120F3 ; [.4911.0020.0002] # CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR
+120F4 ; [.4912.0020.0002] # CUNEIFORM SIGN GALAM
+120F5 ; [.4913.0020.0002] # CUNEIFORM SIGN GAM
+120F6 ; [.4914.0020.0002] # CUNEIFORM SIGN GAN
+120F7 ; [.4915.0020.0002] # CUNEIFORM SIGN GAN2
+120F8 ; [.4916.0020.0002] # CUNEIFORM SIGN GAN2 TENU
+120F9 ; [.4917.0020.0002] # CUNEIFORM SIGN GAN2 OVER GAN2
+120FA ; [.4918.0020.0002] # CUNEIFORM SIGN GAN2 CROSSING GAN2
+120FB ; [.4919.0020.0002] # CUNEIFORM SIGN GAR
+120FC ; [.491A.0020.0002] # CUNEIFORM SIGN GAR3
+120FD ; [.491B.0020.0002] # CUNEIFORM SIGN GASHAN
+120FE ; [.491C.0020.0002] # CUNEIFORM SIGN GESHTIN
+120FF ; [.491D.0020.0002] # CUNEIFORM SIGN GESHTIN TIMES KUR
+12100 ; [.491E.0020.0002] # CUNEIFORM SIGN GI
+12101 ; [.491F.0020.0002] # CUNEIFORM SIGN GI TIMES E
+12102 ; [.4920.0020.0002] # CUNEIFORM SIGN GI TIMES U
+12103 ; [.4921.0020.0002] # CUNEIFORM SIGN GI CROSSING GI
+12104 ; [.4922.0020.0002] # CUNEIFORM SIGN GI4
+12105 ; [.4923.0020.0002] # CUNEIFORM SIGN GI4 OVER GI4
+12106 ; [.4924.0020.0002] # CUNEIFORM SIGN GI4 CROSSING GI4
+12107 ; [.4925.0020.0002] # CUNEIFORM SIGN GIDIM
+12108 ; [.4926.0020.0002] # CUNEIFORM SIGN GIR2
+12109 ; [.4927.0020.0002] # CUNEIFORM SIGN GIR2 GUNU
+1210A ; [.4928.0020.0002] # CUNEIFORM SIGN GIR3
+1210B ; [.4929.0020.0002] # CUNEIFORM SIGN GIR3 TIMES A PLUS IGI
+1210C ; [.492A.0020.0002] # CUNEIFORM SIGN GIR3 TIMES GAN2 TENU
+1210D ; [.492B.0020.0002] # CUNEIFORM SIGN GIR3 TIMES IGI
+1210E ; [.492C.0020.0002] # CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI
+1210F ; [.492D.0020.0002] # CUNEIFORM SIGN GIR3 TIMES PA
+12110 ; [.492E.0020.0002] # CUNEIFORM SIGN GISAL
+12111 ; [.492F.0020.0002] # CUNEIFORM SIGN GISH
+12112 ; [.4930.0020.0002] # CUNEIFORM SIGN GISH CROSSING GISH
+12113 ; [.4931.0020.0002] # CUNEIFORM SIGN GISH TIMES BAD
+12114 ; [.4932.0020.0002] # CUNEIFORM SIGN GISH TIMES TAK4
+12115 ; [.4933.0020.0002] # CUNEIFORM SIGN GISH TENU
+12116 ; [.4934.0020.0002] # CUNEIFORM SIGN GU
+12117 ; [.4935.0020.0002] # CUNEIFORM SIGN GU CROSSING GU
+12118 ; [.4936.0020.0002] # CUNEIFORM SIGN GU2
+12119 ; [.4937.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK
+1211A ; [.4938.0020.0002] # CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU
+1211B ; [.4939.0020.0002] # CUNEIFORM SIGN GU2 TIMES NUN
+1211C ; [.493A.0020.0002] # CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2
+1211D ; [.493B.0020.0002] # CUNEIFORM SIGN GU2 GUNU
+1211E ; [.493C.0020.0002] # CUNEIFORM SIGN GUD
+1211F ; [.493D.0020.0002] # CUNEIFORM SIGN GUD TIMES A PLUS KUR
+12120 ; [.493E.0020.0002] # CUNEIFORM SIGN GUD TIMES KUR
+12121 ; [.493F.0020.0002] # CUNEIFORM SIGN GUD OVER GUD LUGAL
+12122 ; [.4940.0020.0002] # CUNEIFORM SIGN GUL
+12123 ; [.4941.0020.0002] # CUNEIFORM SIGN GUM
+12124 ; [.4942.0020.0002] # CUNEIFORM SIGN GUM TIMES SHE
+12125 ; [.4943.0020.0002] # CUNEIFORM SIGN GUR
+12126 ; [.4944.0020.0002] # CUNEIFORM SIGN GUR7
+12127 ; [.4945.0020.0002] # CUNEIFORM SIGN GURUN
+12128 ; [.4946.0020.0002] # CUNEIFORM SIGN GURUSH
+12129 ; [.4947.0020.0002] # CUNEIFORM SIGN HA
+1212A ; [.4948.0020.0002] # CUNEIFORM SIGN HA TENU
+1212B ; [.4949.0020.0002] # CUNEIFORM SIGN HA GUNU
+1212C ; [.494A.0020.0002] # CUNEIFORM SIGN HAL
+1212D ; [.494B.0020.0002] # CUNEIFORM SIGN HI
+1212E ; [.494C.0020.0002] # CUNEIFORM SIGN HI TIMES ASH
+1212F ; [.494D.0020.0002] # CUNEIFORM SIGN HI TIMES ASH2
+12130 ; [.494E.0020.0002] # CUNEIFORM SIGN HI TIMES BAD
+12131 ; [.494F.0020.0002] # CUNEIFORM SIGN HI TIMES DISH
+12132 ; [.4950.0020.0002] # CUNEIFORM SIGN HI TIMES GAD
+12133 ; [.4951.0020.0002] # CUNEIFORM SIGN HI TIMES KIN
+12134 ; [.4952.0020.0002] # CUNEIFORM SIGN HI TIMES NUN
+12135 ; [.4953.0020.0002] # CUNEIFORM SIGN HI TIMES SHE
+12136 ; [.4954.0020.0002] # CUNEIFORM SIGN HI TIMES U
+12137 ; [.4955.0020.0002] # CUNEIFORM SIGN HU
+12138 ; [.4956.0020.0002] # CUNEIFORM SIGN HUB2
+12139 ; [.4957.0020.0002] # CUNEIFORM SIGN HUB2 TIMES AN
+1213A ; [.4958.0020.0002] # CUNEIFORM SIGN HUB2 TIMES HAL
+1213B ; [.4959.0020.0002] # CUNEIFORM SIGN HUB2 TIMES KASKAL
+1213C ; [.495A.0020.0002] # CUNEIFORM SIGN HUB2 TIMES LISH
+1213D ; [.495B.0020.0002] # CUNEIFORM SIGN HUB2 TIMES UD
+1213E ; [.495C.0020.0002] # CUNEIFORM SIGN HUL2
+1213F ; [.495D.0020.0002] # CUNEIFORM SIGN I
+12140 ; [.495E.0020.0002] # CUNEIFORM SIGN I A
+12141 ; [.495F.0020.0002] # CUNEIFORM SIGN IB
+12142 ; [.4960.0020.0002] # CUNEIFORM SIGN IDIM
+12143 ; [.4961.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM BUR
+12144 ; [.4962.0020.0002] # CUNEIFORM SIGN IDIM OVER IDIM SQUARED
+12145 ; [.4963.0020.0002] # CUNEIFORM SIGN IG
+12146 ; [.4964.0020.0002] # CUNEIFORM SIGN IGI
+12147 ; [.4965.0020.0002] # CUNEIFORM SIGN IGI DIB
+12148 ; [.4966.0020.0002] # CUNEIFORM SIGN IGI RI
+12149 ; [.4967.0020.0002] # CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD
+1214A ; [.4968.0020.0002] # CUNEIFORM SIGN IGI GUNU
+1214B ; [.4969.0020.0002] # CUNEIFORM SIGN IL
+1214C ; [.496A.0020.0002] # CUNEIFORM SIGN IL TIMES GAN2 TENU
+1214D ; [.496B.0020.0002] # CUNEIFORM SIGN IL2
+1214E ; [.496C.0020.0002] # CUNEIFORM SIGN IM
+1214F ; [.496D.0020.0002] # CUNEIFORM SIGN IM TIMES TAK4
+12150 ; [.496E.0020.0002] # CUNEIFORM SIGN IM CROSSING IM
+12151 ; [.496F.0020.0002] # CUNEIFORM SIGN IM OPPOSING IM
+12152 ; [.4970.0020.0002] # CUNEIFORM SIGN IM SQUARED
+12153 ; [.4971.0020.0002] # CUNEIFORM SIGN IMIN
+12154 ; [.4972.0020.0002] # CUNEIFORM SIGN IN
+12155 ; [.4973.0020.0002] # CUNEIFORM SIGN IR
+12156 ; [.4974.0020.0002] # CUNEIFORM SIGN ISH
+12157 ; [.4975.0020.0002] # CUNEIFORM SIGN KA
+12158 ; [.4976.0020.0002] # CUNEIFORM SIGN KA TIMES A
+12159 ; [.4977.0020.0002] # CUNEIFORM SIGN KA TIMES AD
+1215A ; [.4978.0020.0002] # CUNEIFORM SIGN KA TIMES AD PLUS KU3
+1215B ; [.4979.0020.0002] # CUNEIFORM SIGN KA TIMES ASH2
+1215C ; [.497A.0020.0002] # CUNEIFORM SIGN KA TIMES BAD
+1215D ; [.497B.0020.0002] # CUNEIFORM SIGN KA TIMES BALAG
+1215E ; [.497C.0020.0002] # CUNEIFORM SIGN KA TIMES BAR
+1215F ; [.497D.0020.0002] # CUNEIFORM SIGN KA TIMES BI
+12160 ; [.497E.0020.0002] # CUNEIFORM SIGN KA TIMES ERIN2
+12161 ; [.497F.0020.0002] # CUNEIFORM SIGN KA TIMES ESH2
+12162 ; [.4980.0020.0002] # CUNEIFORM SIGN KA TIMES GA
+12163 ; [.4981.0020.0002] # CUNEIFORM SIGN KA TIMES GAL
+12164 ; [.4982.0020.0002] # CUNEIFORM SIGN KA TIMES GAN2 TENU
+12165 ; [.4983.0020.0002] # CUNEIFORM SIGN KA TIMES GAR
+12166 ; [.4984.0020.0002] # CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A
+12167 ; [.4985.0020.0002] # CUNEIFORM SIGN KA TIMES GI
+12168 ; [.4986.0020.0002] # CUNEIFORM SIGN KA TIMES GIR2
+12169 ; [.4987.0020.0002] # CUNEIFORM SIGN KA TIMES GISH PLUS SAR
+1216A ; [.4988.0020.0002] # CUNEIFORM SIGN KA TIMES GISH CROSSING GISH
+1216B ; [.4989.0020.0002] # CUNEIFORM SIGN KA TIMES GU
+1216C ; [.498A.0020.0002] # CUNEIFORM SIGN KA TIMES GUR7
+1216D ; [.498B.0020.0002] # CUNEIFORM SIGN KA TIMES IGI
+1216E ; [.498C.0020.0002] # CUNEIFORM SIGN KA TIMES IM
+1216F ; [.498D.0020.0002] # CUNEIFORM SIGN KA TIMES KAK
+12170 ; [.498E.0020.0002] # CUNEIFORM SIGN KA TIMES KI
+12171 ; [.498F.0020.0002] # CUNEIFORM SIGN KA TIMES KID
+12172 ; [.4990.0020.0002] # CUNEIFORM SIGN KA TIMES LI
+12173 ; [.4991.0020.0002] # CUNEIFORM SIGN KA TIMES LU
+12174 ; [.4992.0020.0002] # CUNEIFORM SIGN KA TIMES ME
+12175 ; [.4993.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS DU
+12176 ; [.4994.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS GI
+12177 ; [.4995.0020.0002] # CUNEIFORM SIGN KA TIMES ME PLUS TE
+12178 ; [.4996.0020.0002] # CUNEIFORM SIGN KA TIMES MI
+12179 ; [.4997.0020.0002] # CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ
+1217A ; [.4998.0020.0002] # CUNEIFORM SIGN KA TIMES NE
+1217B ; [.4999.0020.0002] # CUNEIFORM SIGN KA TIMES NUN
+1217C ; [.499A.0020.0002] # CUNEIFORM SIGN KA TIMES PI
+1217D ; [.499B.0020.0002] # CUNEIFORM SIGN KA TIMES RU
+1217E ; [.499C.0020.0002] # CUNEIFORM SIGN KA TIMES SA
+1217F ; [.499D.0020.0002] # CUNEIFORM SIGN KA TIMES SAR
+12180 ; [.499E.0020.0002] # CUNEIFORM SIGN KA TIMES SHA
+12181 ; [.499F.0020.0002] # CUNEIFORM SIGN KA TIMES SHE
+12182 ; [.49A0.0020.0002] # CUNEIFORM SIGN KA TIMES SHID
+12183 ; [.49A1.0020.0002] # CUNEIFORM SIGN KA TIMES SHU
+12184 ; [.49A2.0020.0002] # CUNEIFORM SIGN KA TIMES SIG
+12185 ; [.49A3.0020.0002] # CUNEIFORM SIGN KA TIMES SUHUR
+12186 ; [.49A4.0020.0002] # CUNEIFORM SIGN KA TIMES TAR
+12187 ; [.49A5.0020.0002] # CUNEIFORM SIGN KA TIMES U
+12188 ; [.49A6.0020.0002] # CUNEIFORM SIGN KA TIMES U2
+12189 ; [.49A7.0020.0002] # CUNEIFORM SIGN KA TIMES UD
+1218A ; [.49A8.0020.0002] # CUNEIFORM SIGN KA TIMES UMUM TIMES PA
+1218B ; [.49A9.0020.0002] # CUNEIFORM SIGN KA TIMES USH
+1218C ; [.49AA.0020.0002] # CUNEIFORM SIGN KA TIMES ZI
+1218D ; [.49AB.0020.0002] # CUNEIFORM SIGN KA2
+1218E ; [.49AC.0020.0002] # CUNEIFORM SIGN KA2 CROSSING KA2
+1218F ; [.49AD.0020.0002] # CUNEIFORM SIGN KAB
+12190 ; [.49AE.0020.0002] # CUNEIFORM SIGN KAD2
+12191 ; [.49AF.0020.0002] # CUNEIFORM SIGN KAD3
+12192 ; [.49B0.0020.0002] # CUNEIFORM SIGN KAD4
+12193 ; [.49B1.0020.0002] # CUNEIFORM SIGN KAD5
+12194 ; [.49B2.0020.0002] # CUNEIFORM SIGN KAD5 OVER KAD5
+12195 ; [.49B3.0020.0002] # CUNEIFORM SIGN KAK
+12196 ; [.49B4.0020.0002] # CUNEIFORM SIGN KAK TIMES IGI GUNU
+12197 ; [.49B5.0020.0002] # CUNEIFORM SIGN KAL
+12198 ; [.49B6.0020.0002] # CUNEIFORM SIGN KAL TIMES BAD
+12199 ; [.49B7.0020.0002] # CUNEIFORM SIGN KAL CROSSING KAL
+1219A ; [.49B8.0020.0002] # CUNEIFORM SIGN KAM2
+1219B ; [.49B9.0020.0002] # CUNEIFORM SIGN KAM4
+1219C ; [.49BA.0020.0002] # CUNEIFORM SIGN KASKAL
+1219D ; [.49BB.0020.0002] # CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U
+1219E ; [.49BC.0020.0002] # CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U
+1219F ; [.49BD.0020.0002] # CUNEIFORM SIGN KESH2
+121A0 ; [.49BE.0020.0002] # CUNEIFORM SIGN KI
+121A1 ; [.49BF.0020.0002] # CUNEIFORM SIGN KI TIMES BAD
+121A2 ; [.49C0.0020.0002] # CUNEIFORM SIGN KI TIMES U
+121A3 ; [.49C1.0020.0002] # CUNEIFORM SIGN KI TIMES UD
+121A4 ; [.49C2.0020.0002] # CUNEIFORM SIGN KID
+121A5 ; [.49C3.0020.0002] # CUNEIFORM SIGN KIN
+121A6 ; [.49C4.0020.0002] # CUNEIFORM SIGN KISAL
+121A7 ; [.49C5.0020.0002] # CUNEIFORM SIGN KISH
+121A8 ; [.49C6.0020.0002] # CUNEIFORM SIGN KISIM5
+121A9 ; [.49C7.0020.0002] # CUNEIFORM SIGN KISIM5 OVER KISIM5
+121AA ; [.49C8.0020.0002] # CUNEIFORM SIGN KU
+121AB ; [.49C9.0020.0002] # CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2
+121AC ; [.49CA.0020.0002] # CUNEIFORM SIGN KU3
+121AD ; [.49CB.0020.0002] # CUNEIFORM SIGN KU4
+121AE ; [.49CC.0020.0002] # CUNEIFORM SIGN KU4 VARIANT FORM
+121AF ; [.49CD.0020.0002] # CUNEIFORM SIGN KU7
+121B0 ; [.49CE.0020.0002] # CUNEIFORM SIGN KUL
+121B1 ; [.49CF.0020.0002] # CUNEIFORM SIGN KUL GUNU
+121B2 ; [.49D0.0020.0002] # CUNEIFORM SIGN KUN
+121B3 ; [.49D1.0020.0002] # CUNEIFORM SIGN KUR
+121B4 ; [.49D2.0020.0002] # CUNEIFORM SIGN KUR OPPOSING KUR
+121B5 ; [.49D3.0020.0002] # CUNEIFORM SIGN KUSHU2
+121B6 ; [.49D4.0020.0002] # CUNEIFORM SIGN KWU318
+121B7 ; [.49D5.0020.0002] # CUNEIFORM SIGN LA
+121B8 ; [.49D6.0020.0002] # CUNEIFORM SIGN LAGAB
+121B9 ; [.49D7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A
+121BA ; [.49D8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA
+121BB ; [.49D9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS GAR
+121BC ; [.49DA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES A PLUS LAL
+121BD ; [.49DB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AL
+121BE ; [.49DC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES AN
+121BF ; [.49DD.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU
+121C0 ; [.49DE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BAD
+121C1 ; [.49DF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES BI
+121C2 ; [.49E0.0020.0002] # CUNEIFORM SIGN LAGAB TIMES DAR
+121C3 ; [.49E1.0020.0002] # CUNEIFORM SIGN LAGAB TIMES EN
+121C4 ; [.49E2.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GA
+121C5 ; [.49E3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GAR
+121C6 ; [.49E4.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD
+121C7 ; [.49E5.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD
+121C8 ; [.49E6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HA
+121C9 ; [.49E7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HAL
+121CA ; [.49E8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN
+121CB ; [.49E9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IGI GUNU
+121CC ; [.49EA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM
+121CD ; [.49EB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS HA
+121CE ; [.49EC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES IM PLUS LU
+121CF ; [.49ED.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KI
+121D0 ; [.49EE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KIN
+121D1 ; [.49EF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KU3
+121D2 ; [.49F0.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL
+121D3 ; [.49F1.0020.0002] # CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A
+121D4 ; [.49F2.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LAGAB
+121D5 ; [.49F3.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LISH
+121D6 ; [.49F4.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LU
+121D7 ; [.49F5.0020.0002] # CUNEIFORM SIGN LAGAB TIMES LUL
+121D8 ; [.49F6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME
+121D9 ; [.49F7.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ME PLUS EN
+121DA ; [.49F8.0020.0002] # CUNEIFORM SIGN LAGAB TIMES MUSH
+121DB ; [.49F9.0020.0002] # CUNEIFORM SIGN LAGAB TIMES NE
+121DC ; [.49FA.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM
+121DD ; [.49FB.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2
+121DE ; [.49FC.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU
+121DF ; [.49FD.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2
+121E0 ; [.49FE.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2
+121E1 ; [.49FF.0020.0002] # CUNEIFORM SIGN LAGAB TIMES SUM
+121E2 ; [.4A00.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAG
+121E3 ; [.4A01.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TAK4
+121E4 ; [.4A02.0020.0002] # CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA
+121E5 ; [.4A03.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U
+121E6 ; [.4A04.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS A
+121E7 ; [.4A05.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U
+121E8 ; [.4A06.0020.0002] # CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH
+121E9 ; [.4A07.0020.0002] # CUNEIFORM SIGN LAGAB TIMES UD
+121EA ; [.4A08.0020.0002] # CUNEIFORM SIGN LAGAB TIMES USH
+121EB ; [.4A09.0020.0002] # CUNEIFORM SIGN LAGAB SQUARED
+121EC ; [.4A0A.0020.0002] # CUNEIFORM SIGN LAGAR
+121ED ; [.4A0B.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE
+121EE ; [.4A0C.0020.0002] # CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM
+121EF ; [.4A0D.0020.0002] # CUNEIFORM SIGN LAGAR GUNU
+121F0 ; [.4A0E.0020.0002] # CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE
+121F1 ; [.4A0F.0020.0002] # CUNEIFORM SIGN LAHSHU
+121F2 ; [.4A10.0020.0002] # CUNEIFORM SIGN LAL
+121F3 ; [.4A11.0020.0002] # CUNEIFORM SIGN LAL TIMES LAL
+121F4 ; [.4A12.0020.0002] # CUNEIFORM SIGN LAM
+121F5 ; [.4A13.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR
+121F6 ; [.4A14.0020.0002] # CUNEIFORM SIGN LAM TIMES KUR PLUS RU
+121F7 ; [.4A15.0020.0002] # CUNEIFORM SIGN LI
+121F8 ; [.4A16.0020.0002] # CUNEIFORM SIGN LIL
+121F9 ; [.4A17.0020.0002] # CUNEIFORM SIGN LIMMU2
+121FA ; [.4A18.0020.0002] # CUNEIFORM SIGN LISH
+121FB ; [.4A19.0020.0002] # CUNEIFORM SIGN LU
+121FC ; [.4A1A.0020.0002] # CUNEIFORM SIGN LU TIMES BAD
+121FD ; [.4A1B.0020.0002] # CUNEIFORM SIGN LU2
+121FE ; [.4A1C.0020.0002] # CUNEIFORM SIGN LU2 TIMES AL
+121FF ; [.4A1D.0020.0002] # CUNEIFORM SIGN LU2 TIMES BAD
+12200 ; [.4A1E.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2
+12201 ; [.4A1F.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 TENU
+12202 ; [.4A20.0020.0002] # CUNEIFORM SIGN LU2 TIMES GAN2 TENU
+12203 ; [.4A21.0020.0002] # CUNEIFORM SIGN LU2 TIMES HI TIMES BAD
+12204 ; [.4A22.0020.0002] # CUNEIFORM SIGN LU2 TIMES IM
+12205 ; [.4A23.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD2
+12206 ; [.4A24.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3
+12207 ; [.4A25.0020.0002] # CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH
+12208 ; [.4A26.0020.0002] # CUNEIFORM SIGN LU2 TIMES KI
+12209 ; [.4A27.0020.0002] # CUNEIFORM SIGN LU2 TIMES LA PLUS ASH
+1220A ; [.4A28.0020.0002] # CUNEIFORM SIGN LU2 TIMES LAGAB
+1220B ; [.4A29.0020.0002] # CUNEIFORM SIGN LU2 TIMES ME PLUS EN
+1220C ; [.4A2A.0020.0002] # CUNEIFORM SIGN LU2 TIMES NE
+1220D ; [.4A2B.0020.0002] # CUNEIFORM SIGN LU2 TIMES NU
+1220E ; [.4A2C.0020.0002] # CUNEIFORM SIGN LU2 TIMES SI PLUS ASH
+1220F ; [.4A2D.0020.0002] # CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU
+12210 ; [.4A2E.0020.0002] # CUNEIFORM SIGN LU2 TIMES TUG2
+12211 ; [.4A2F.0020.0002] # CUNEIFORM SIGN LU2 TENU
+12212 ; [.4A30.0020.0002] # CUNEIFORM SIGN LU2 CROSSING LU2
+12213 ; [.4A31.0020.0002] # CUNEIFORM SIGN LU2 OPPOSING LU2
+12214 ; [.4A32.0020.0002] # CUNEIFORM SIGN LU2 SQUARED
+12215 ; [.4A33.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG
+12216 ; [.4A34.0020.0002] # CUNEIFORM SIGN LU3
+12217 ; [.4A35.0020.0002] # CUNEIFORM SIGN LUGAL
+12218 ; [.4A36.0020.0002] # CUNEIFORM SIGN LUGAL OVER LUGAL
+12219 ; [.4A37.0020.0002] # CUNEIFORM SIGN LUGAL OPPOSING LUGAL
+1221A ; [.4A38.0020.0002] # CUNEIFORM SIGN LUGAL SHESHIG
+1221B ; [.4A39.0020.0002] # CUNEIFORM SIGN LUH
+1221C ; [.4A3A.0020.0002] # CUNEIFORM SIGN LUL
+1221D ; [.4A3B.0020.0002] # CUNEIFORM SIGN LUM
+1221E ; [.4A3C.0020.0002] # CUNEIFORM SIGN LUM OVER LUM
+1221F ; [.4A3D.0020.0002] # CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR
+12220 ; [.4A3E.0020.0002] # CUNEIFORM SIGN MA
+12221 ; [.4A3F.0020.0002] # CUNEIFORM SIGN MA TIMES TAK4
+12222 ; [.4A40.0020.0002] # CUNEIFORM SIGN MA GUNU
+12223 ; [.4A41.0020.0002] # CUNEIFORM SIGN MA2
+12224 ; [.4A42.0020.0002] # CUNEIFORM SIGN MAH
+12225 ; [.4A43.0020.0002] # CUNEIFORM SIGN MAR
+12226 ; [.4A44.0020.0002] # CUNEIFORM SIGN MASH
+12227 ; [.4A45.0020.0002] # CUNEIFORM SIGN MASH2
+12228 ; [.4A46.0020.0002] # CUNEIFORM SIGN ME
+12229 ; [.4A47.0020.0002] # CUNEIFORM SIGN MES
+1222A ; [.4A48.0020.0002] # CUNEIFORM SIGN MI
+1222B ; [.4A49.0020.0002] # CUNEIFORM SIGN MIN
+1222C ; [.4A4A.0020.0002] # CUNEIFORM SIGN MU
+1222D ; [.4A4B.0020.0002] # CUNEIFORM SIGN MU OVER MU
+1222E ; [.4A4C.0020.0002] # CUNEIFORM SIGN MUG
+1222F ; [.4A4D.0020.0002] # CUNEIFORM SIGN MUG GUNU
+12230 ; [.4A4E.0020.0002] # CUNEIFORM SIGN MUNSUB
+12231 ; [.4A4F.0020.0002] # CUNEIFORM SIGN MURGU2
+12232 ; [.4A50.0020.0002] # CUNEIFORM SIGN MUSH
+12233 ; [.4A51.0020.0002] # CUNEIFORM SIGN MUSH TIMES A
+12234 ; [.4A52.0020.0002] # CUNEIFORM SIGN MUSH TIMES KUR
+12235 ; [.4A53.0020.0002] # CUNEIFORM SIGN MUSH TIMES ZA
+12236 ; [.4A54.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH
+12237 ; [.4A55.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA
+12238 ; [.4A56.0020.0002] # CUNEIFORM SIGN MUSH CROSSING MUSH
+12239 ; [.4A57.0020.0002] # CUNEIFORM SIGN MUSH3
+1223A ; [.4A58.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A
+1223B ; [.4A59.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES A PLUS DI
+1223C ; [.4A5A.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES DI
+1223D ; [.4A5B.0020.0002] # CUNEIFORM SIGN MUSH3 GUNU
+1223E ; [.4A5C.0020.0002] # CUNEIFORM SIGN NA
+1223F ; [.4A5D.0020.0002] # CUNEIFORM SIGN NA2
+12240 ; [.4A5E.0020.0002] # CUNEIFORM SIGN NAGA
+12241 ; [.4A5F.0020.0002] # CUNEIFORM SIGN NAGA INVERTED
+12242 ; [.4A60.0020.0002] # CUNEIFORM SIGN NAGA TIMES SHU TENU
+12243 ; [.4A61.0020.0002] # CUNEIFORM SIGN NAGA OPPOSING NAGA
+12244 ; [.4A62.0020.0002] # CUNEIFORM SIGN NAGAR
+12245 ; [.4A63.0020.0002] # CUNEIFORM SIGN NAM NUTILLU
+12246 ; [.4A64.0020.0002] # CUNEIFORM SIGN NAM
+12247 ; [.4A65.0020.0002] # CUNEIFORM SIGN NAM2
+12248 ; [.4A66.0020.0002] # CUNEIFORM SIGN NE
+12249 ; [.4A67.0020.0002] # CUNEIFORM SIGN NE TIMES A
+1224A ; [.4A68.0020.0002] # CUNEIFORM SIGN NE TIMES UD
+1224B ; [.4A69.0020.0002] # CUNEIFORM SIGN NE SHESHIG
+1224C ; [.4A6A.0020.0002] # CUNEIFORM SIGN NI
+1224D ; [.4A6B.0020.0002] # CUNEIFORM SIGN NI TIMES E
+1224E ; [.4A6C.0020.0002] # CUNEIFORM SIGN NI2
+1224F ; [.4A6D.0020.0002] # CUNEIFORM SIGN NIM
+12250 ; [.4A6E.0020.0002] # CUNEIFORM SIGN NIM TIMES GAN2 TENU
+12251 ; [.4A6F.0020.0002] # CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU
+12252 ; [.4A70.0020.0002] # CUNEIFORM SIGN NINDA2
+12253 ; [.4A71.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES AN
+12254 ; [.4A72.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH
+12255 ; [.4A73.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH
+12256 ; [.4A74.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GUD
+12257 ; [.4A75.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU
+12258 ; [.4A76.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NE
+12259 ; [.4A77.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES NUN
+1225A ; [.4A78.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE
+1225B ; [.4A79.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN
+1225C ; [.4A7A.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH
+1225D ; [.4A7B.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH
+1225E ; [.4A7C.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH
+1225F ; [.4A7D.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES USH
+12260 ; [.4A7E.0020.0002] # CUNEIFORM SIGN NISAG
+12261 ; [.4A7F.0020.0002] # CUNEIFORM SIGN NU
+12262 ; [.4A80.0020.0002] # CUNEIFORM SIGN NU11
+122D4 ; [.4A81.0020.0002] # CUNEIFORM SIGN SHIR TENU
+122D5 ; [.4A82.0020.0002] # CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR
+12263 ; [.4A83.0020.0002] # CUNEIFORM SIGN NUN
+12264 ; [.4A84.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES GAR
+12265 ; [.4A85.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES MASH
+12266 ; [.4A86.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL
+12267 ; [.4A87.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL
+12268 ; [.4A88.0020.0002] # CUNEIFORM SIGN NUN LAGAR TIMES USH
+12269 ; [.4A89.0020.0002] # CUNEIFORM SIGN NUN TENU
+1226A ; [.4A8A.0020.0002] # CUNEIFORM SIGN NUN OVER NUN
+1226B ; [.4A8B.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN
+1226C ; [.4A8C.0020.0002] # CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR
+1226D ; [.4A8D.0020.0002] # CUNEIFORM SIGN NUNUZ
+1226E ; [.4A8E.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB
+1226F ; [.4A8F.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES BI
+12270 ; [.4A90.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES DUG
+12271 ; [.4A91.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES GUD
+12272 ; [.4A92.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU
+12273 ; [.4A93.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3
+12274 ; [.4A94.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES LA
+12275 ; [.4A95.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES NE
+12276 ; [.4A96.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3
+12277 ; [.4A97.0020.0002] # CUNEIFORM SIGN NUNUZ AB2 TIMES U2
+12278 ; [.4A98.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI
+12279 ; [.4A99.0020.0002] # CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U
+1227A ; [.4A9A.0020.0002] # CUNEIFORM SIGN PA
+1227B ; [.4A9B.0020.0002] # CUNEIFORM SIGN PAD
+1227C ; [.4A9C.0020.0002] # CUNEIFORM SIGN PAN
+1227D ; [.4A9D.0020.0002] # CUNEIFORM SIGN PAP
+1227E ; [.4A9E.0020.0002] # CUNEIFORM SIGN PESH2
+1227F ; [.4A9F.0020.0002] # CUNEIFORM SIGN PI
+12280 ; [.4AA0.0020.0002] # CUNEIFORM SIGN PI TIMES A
+12281 ; [.4AA1.0020.0002] # CUNEIFORM SIGN PI TIMES AB
+12282 ; [.4AA2.0020.0002] # CUNEIFORM SIGN PI TIMES BI
+12283 ; [.4AA3.0020.0002] # CUNEIFORM SIGN PI TIMES BU
+12284 ; [.4AA4.0020.0002] # CUNEIFORM SIGN PI TIMES E
+12285 ; [.4AA5.0020.0002] # CUNEIFORM SIGN PI TIMES I
+12286 ; [.4AA6.0020.0002] # CUNEIFORM SIGN PI TIMES IB
+12287 ; [.4AA7.0020.0002] # CUNEIFORM SIGN PI TIMES U
+12288 ; [.4AA8.0020.0002] # CUNEIFORM SIGN PI TIMES U2
+12289 ; [.4AA9.0020.0002] # CUNEIFORM SIGN PI CROSSING PI
+1228A ; [.4AAA.0020.0002] # CUNEIFORM SIGN PIRIG
+1228B ; [.4AAB.0020.0002] # CUNEIFORM SIGN PIRIG TIMES KAL
+1228C ; [.4AAC.0020.0002] # CUNEIFORM SIGN PIRIG TIMES UD
+1228D ; [.4AAD.0020.0002] # CUNEIFORM SIGN PIRIG TIMES ZA
+1228E ; [.4AAE.0020.0002] # CUNEIFORM SIGN PIRIG OPPOSING PIRIG
+1228F ; [.4AAF.0020.0002] # CUNEIFORM SIGN RA
+12290 ; [.4AB0.0020.0002] # CUNEIFORM SIGN RAB
+12291 ; [.4AB1.0020.0002] # CUNEIFORM SIGN RI
+12292 ; [.4AB2.0020.0002] # CUNEIFORM SIGN RU
+12293 ; [.4AB3.0020.0002] # CUNEIFORM SIGN SA
+12294 ; [.4AB4.0020.0002] # CUNEIFORM SIGN SAG NUTILLU
+12295 ; [.4AB5.0020.0002] # CUNEIFORM SIGN SAG
+12296 ; [.4AB6.0020.0002] # CUNEIFORM SIGN SAG TIMES A
+12297 ; [.4AB7.0020.0002] # CUNEIFORM SIGN SAG TIMES DU
+12298 ; [.4AB8.0020.0002] # CUNEIFORM SIGN SAG TIMES DUB
+12299 ; [.4AB9.0020.0002] # CUNEIFORM SIGN SAG TIMES HA
+1229A ; [.4ABA.0020.0002] # CUNEIFORM SIGN SAG TIMES KAK
+1229B ; [.4ABB.0020.0002] # CUNEIFORM SIGN SAG TIMES KUR
+1229C ; [.4ABC.0020.0002] # CUNEIFORM SIGN SAG TIMES LUM
+1229D ; [.4ABD.0020.0002] # CUNEIFORM SIGN SAG TIMES MI
+1229E ; [.4ABE.0020.0002] # CUNEIFORM SIGN SAG TIMES NUN
+1229F ; [.4ABF.0020.0002] # CUNEIFORM SIGN SAG TIMES SAL
+122A0 ; [.4AC0.0020.0002] # CUNEIFORM SIGN SAG TIMES SHID
+122A1 ; [.4AC1.0020.0002] # CUNEIFORM SIGN SAG TIMES TAB
+122A2 ; [.4AC2.0020.0002] # CUNEIFORM SIGN SAG TIMES U2
+122A3 ; [.4AC3.0020.0002] # CUNEIFORM SIGN SAG TIMES UB
+122A4 ; [.4AC4.0020.0002] # CUNEIFORM SIGN SAG TIMES UM
+122A5 ; [.4AC5.0020.0002] # CUNEIFORM SIGN SAG TIMES UR
+122A6 ; [.4AC6.0020.0002] # CUNEIFORM SIGN SAG TIMES USH
+122A7 ; [.4AC7.0020.0002] # CUNEIFORM SIGN SAG OVER SAG
+122A8 ; [.4AC8.0020.0002] # CUNEIFORM SIGN SAG GUNU
+122A9 ; [.4AC9.0020.0002] # CUNEIFORM SIGN SAL
+122AA ; [.4ACA.0020.0002] # CUNEIFORM SIGN SAL LAGAB TIMES ASH2
+122AB ; [.4ACB.0020.0002] # CUNEIFORM SIGN SANGA2
+122AC ; [.4ACC.0020.0002] # CUNEIFORM SIGN SAR
+122AD ; [.4ACD.0020.0002] # CUNEIFORM SIGN SHA
+122AE ; [.4ACE.0020.0002] # CUNEIFORM SIGN SHA3
+122AF ; [.4ACF.0020.0002] # CUNEIFORM SIGN SHA3 TIMES A
+122B0 ; [.4AD0.0020.0002] # CUNEIFORM SIGN SHA3 TIMES BAD
+122B1 ; [.4AD1.0020.0002] # CUNEIFORM SIGN SHA3 TIMES GISH
+122B2 ; [.4AD2.0020.0002] # CUNEIFORM SIGN SHA3 TIMES NE
+122B3 ; [.4AD3.0020.0002] # CUNEIFORM SIGN SHA3 TIMES SHU2
+122B4 ; [.4AD4.0020.0002] # CUNEIFORM SIGN SHA3 TIMES TUR
+122B5 ; [.4AD5.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U
+122B6 ; [.4AD6.0020.0002] # CUNEIFORM SIGN SHA3 TIMES U PLUS A
+122B7 ; [.4AD7.0020.0002] # CUNEIFORM SIGN SHA6
+122B8 ; [.4AD8.0020.0002] # CUNEIFORM SIGN SHAB6
+122B9 ; [.4AD9.0020.0002] # CUNEIFORM SIGN SHAR2
+122BA ; [.4ADA.0020.0002] # CUNEIFORM SIGN SHE
+122BB ; [.4ADB.0020.0002] # CUNEIFORM SIGN SHE HU
+122BC ; [.4ADC.0020.0002] # CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR
+122BD ; [.4ADD.0020.0002] # CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR
+122BE ; [.4ADE.0020.0002] # CUNEIFORM SIGN SHEG9
+122BF ; [.4ADF.0020.0002] # CUNEIFORM SIGN SHEN
+122C0 ; [.4AE0.0020.0002] # CUNEIFORM SIGN SHESH
+122C1 ; [.4AE1.0020.0002] # CUNEIFORM SIGN SHESH2
+122C2 ; [.4AE2.0020.0002] # CUNEIFORM SIGN SHESHLAM
+122C3 ; [.4AE3.0020.0002] # CUNEIFORM SIGN SHID
+122C4 ; [.4AE4.0020.0002] # CUNEIFORM SIGN SHID TIMES A
+122C5 ; [.4AE5.0020.0002] # CUNEIFORM SIGN SHID TIMES IM
+122C6 ; [.4AE6.0020.0002] # CUNEIFORM SIGN SHIM
+122C7 ; [.4AE7.0020.0002] # CUNEIFORM SIGN SHIM TIMES A
+122C8 ; [.4AE8.0020.0002] # CUNEIFORM SIGN SHIM TIMES BAL
+122C9 ; [.4AE9.0020.0002] # CUNEIFORM SIGN SHIM TIMES BULUG
+122CA ; [.4AEA.0020.0002] # CUNEIFORM SIGN SHIM TIMES DIN
+122CB ; [.4AEB.0020.0002] # CUNEIFORM SIGN SHIM TIMES GAR
+122CC ; [.4AEC.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI
+122CD ; [.4AED.0020.0002] # CUNEIFORM SIGN SHIM TIMES IGI GUNU
+122CE ; [.4AEE.0020.0002] # CUNEIFORM SIGN SHIM TIMES KUSHU2
+122CF ; [.4AEF.0020.0002] # CUNEIFORM SIGN SHIM TIMES LUL
+122D0 ; [.4AF0.0020.0002] # CUNEIFORM SIGN SHIM TIMES MUG
+122D1 ; [.4AF1.0020.0002] # CUNEIFORM SIGN SHIM TIMES SAL
+122D2 ; [.4AF2.0020.0002] # CUNEIFORM SIGN SHINIG
+122D3 ; [.4AF3.0020.0002] # CUNEIFORM SIGN SHIR
+122D6 ; [.4AF4.0020.0002] # CUNEIFORM SIGN SHITA
+122D7 ; [.4AF5.0020.0002] # CUNEIFORM SIGN SHU
+122D8 ; [.4AF6.0020.0002] # CUNEIFORM SIGN SHU OVER INVERTED SHU
+122D9 ; [.4AF7.0020.0002] # CUNEIFORM SIGN SHU2
+122DA ; [.4AF8.0020.0002] # CUNEIFORM SIGN SHUBUR
+122DB ; [.4AF9.0020.0002] # CUNEIFORM SIGN SI
+122DC ; [.4AFA.0020.0002] # CUNEIFORM SIGN SI GUNU
+122DD ; [.4AFB.0020.0002] # CUNEIFORM SIGN SIG
+122DE ; [.4AFC.0020.0002] # CUNEIFORM SIGN SIG4
+122DF ; [.4AFD.0020.0002] # CUNEIFORM SIGN SIG4 OVER SIG4 SHU2
+122E0 ; [.4AFE.0020.0002] # CUNEIFORM SIGN SIK2
+122E1 ; [.4AFF.0020.0002] # CUNEIFORM SIGN SILA3
+122E2 ; [.4B00.0020.0002] # CUNEIFORM SIGN SU
+122E3 ; [.4B01.0020.0002] # CUNEIFORM SIGN SU OVER SU
+122E4 ; [.4B02.0020.0002] # CUNEIFORM SIGN SUD
+122E5 ; [.4B03.0020.0002] # CUNEIFORM SIGN SUD2
+122E6 ; [.4B04.0020.0002] # CUNEIFORM SIGN SUHUR
+122E7 ; [.4B05.0020.0002] # CUNEIFORM SIGN SUM
+122E8 ; [.4B06.0020.0002] # CUNEIFORM SIGN SUMASH
+122E9 ; [.4B07.0020.0002] # CUNEIFORM SIGN SUR
+122EA ; [.4B08.0020.0002] # CUNEIFORM SIGN SUR9
+122EB ; [.4B09.0020.0002] # CUNEIFORM SIGN TA
+122EC ; [.4B0A.0020.0002] # CUNEIFORM SIGN TA ASTERISK
+122ED ; [.4B0B.0020.0002] # CUNEIFORM SIGN TA TIMES HI
+122EE ; [.4B0C.0020.0002] # CUNEIFORM SIGN TA TIMES MI
+122EF ; [.4B0D.0020.0002] # CUNEIFORM SIGN TA GUNU
+122F0 ; [.4B0E.0020.0002] # CUNEIFORM SIGN TAB
+122F1 ; [.4B0F.0020.0002] # CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH
+122F2 ; [.4B10.0020.0002] # CUNEIFORM SIGN TAB SQUARED
+122F3 ; [.4B11.0020.0002] # CUNEIFORM SIGN TAG
+122F4 ; [.4B12.0020.0002] # CUNEIFORM SIGN TAG TIMES BI
+122F5 ; [.4B13.0020.0002] # CUNEIFORM SIGN TAG TIMES GUD
+122F6 ; [.4B14.0020.0002] # CUNEIFORM SIGN TAG TIMES SHE
+122F7 ; [.4B15.0020.0002] # CUNEIFORM SIGN TAG TIMES SHU
+122F8 ; [.4B16.0020.0002] # CUNEIFORM SIGN TAG TIMES TUG2
+122F9 ; [.4B17.0020.0002] # CUNEIFORM SIGN TAG TIMES UD
+122FA ; [.4B18.0020.0002] # CUNEIFORM SIGN TAK4
+122FB ; [.4B19.0020.0002] # CUNEIFORM SIGN TAR
+122FC ; [.4B1A.0020.0002] # CUNEIFORM SIGN TE
+122FD ; [.4B1B.0020.0002] # CUNEIFORM SIGN TE GUNU
+122FE ; [.4B1C.0020.0002] # CUNEIFORM SIGN TI
+122FF ; [.4B1D.0020.0002] # CUNEIFORM SIGN TI TENU
+12300 ; [.4B1E.0020.0002] # CUNEIFORM SIGN TIL
+12301 ; [.4B1F.0020.0002] # CUNEIFORM SIGN TIR
+12302 ; [.4B20.0020.0002] # CUNEIFORM SIGN TIR TIMES TAK4
+12303 ; [.4B21.0020.0002] # CUNEIFORM SIGN TIR OVER TIR
+12304 ; [.4B22.0020.0002] # CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR
+12305 ; [.4B23.0020.0002] # CUNEIFORM SIGN TU
+12306 ; [.4B24.0020.0002] # CUNEIFORM SIGN TUG2
+12307 ; [.4B25.0020.0002] # CUNEIFORM SIGN TUK
+12308 ; [.4B26.0020.0002] # CUNEIFORM SIGN TUM
+12309 ; [.4B27.0020.0002] # CUNEIFORM SIGN TUR
+1230A ; [.4B28.0020.0002] # CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA
+1230B ; [.4B29.0020.0002] # CUNEIFORM SIGN U
+1230C ; [.4B2A.0020.0002] # CUNEIFORM SIGN U GUD
+1230D ; [.4B2B.0020.0002] # CUNEIFORM SIGN U U U
+1230E ; [.4B2C.0020.0002] # CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR
+1230F ; [.4B2D.0020.0002] # CUNEIFORM SIGN U OVER U SUR OVER SUR
+12310 ; [.4B2E.0020.0002] # CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED
+12311 ; [.4B2F.0020.0002] # CUNEIFORM SIGN U2
+12312 ; [.4B30.0020.0002] # CUNEIFORM SIGN UB
+12313 ; [.4B31.0020.0002] # CUNEIFORM SIGN UD
+12314 ; [.4B32.0020.0002] # CUNEIFORM SIGN UD KUSHU2
+12315 ; [.4B33.0020.0002] # CUNEIFORM SIGN UD TIMES BAD
+12316 ; [.4B34.0020.0002] # CUNEIFORM SIGN UD TIMES MI
+12317 ; [.4B35.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U
+12318 ; [.4B36.0020.0002] # CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU
+12319 ; [.4B37.0020.0002] # CUNEIFORM SIGN UD GUNU
+1231A ; [.4B38.0020.0002] # CUNEIFORM SIGN UD SHESHIG
+1231B ; [.4B39.0020.0002] # CUNEIFORM SIGN UD SHESHIG TIMES BAD
+1231C ; [.4B3A.0020.0002] # CUNEIFORM SIGN UDUG
+1231D ; [.4B3B.0020.0002] # CUNEIFORM SIGN UM
+1231E ; [.4B3C.0020.0002] # CUNEIFORM SIGN UM TIMES LAGAB
+1231F ; [.4B3D.0020.0002] # CUNEIFORM SIGN UM TIMES ME PLUS DA
+12320 ; [.4B3E.0020.0002] # CUNEIFORM SIGN UM TIMES SHA3
+12321 ; [.4B3F.0020.0002] # CUNEIFORM SIGN UM TIMES U
+12322 ; [.4B40.0020.0002] # CUNEIFORM SIGN UMBIN
+12323 ; [.4B41.0020.0002] # CUNEIFORM SIGN UMUM
+12324 ; [.4B42.0020.0002] # CUNEIFORM SIGN UMUM TIMES KASKAL
+12325 ; [.4B43.0020.0002] # CUNEIFORM SIGN UMUM TIMES PA
+12326 ; [.4B44.0020.0002] # CUNEIFORM SIGN UN
+12327 ; [.4B45.0020.0002] # CUNEIFORM SIGN UN GUNU
+12328 ; [.4B46.0020.0002] # CUNEIFORM SIGN UR
+12329 ; [.4B47.0020.0002] # CUNEIFORM SIGN UR CROSSING UR
+1232A ; [.4B48.0020.0002] # CUNEIFORM SIGN UR SHESHIG
+1232B ; [.4B49.0020.0002] # CUNEIFORM SIGN UR2
+1232C ; [.4B4A.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS HA
+1232D ; [.4B4B.0020.0002] # CUNEIFORM SIGN UR2 TIMES A PLUS NA
+1232E ; [.4B4C.0020.0002] # CUNEIFORM SIGN UR2 TIMES AL
+1232F ; [.4B4D.0020.0002] # CUNEIFORM SIGN UR2 TIMES HA
+12330 ; [.4B4E.0020.0002] # CUNEIFORM SIGN UR2 TIMES NUN
+12331 ; [.4B4F.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2
+12332 ; [.4B50.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH
+12333 ; [.4B51.0020.0002] # CUNEIFORM SIGN UR2 TIMES U2 PLUS BI
+12334 ; [.4B52.0020.0002] # CUNEIFORM SIGN UR4
+12335 ; [.4B53.0020.0002] # CUNEIFORM SIGN URI
+12336 ; [.4B54.0020.0002] # CUNEIFORM SIGN URI3
+12337 ; [.4B55.0020.0002] # CUNEIFORM SIGN URU
+12338 ; [.4B56.0020.0002] # CUNEIFORM SIGN URU TIMES A
+12339 ; [.4B57.0020.0002] # CUNEIFORM SIGN URU TIMES ASHGAB
+1233A ; [.4B58.0020.0002] # CUNEIFORM SIGN URU TIMES BAR
+1233B ; [.4B59.0020.0002] # CUNEIFORM SIGN URU TIMES DUN
+1233C ; [.4B5A.0020.0002] # CUNEIFORM SIGN URU TIMES GA
+1233D ; [.4B5B.0020.0002] # CUNEIFORM SIGN URU TIMES GAL
+1233E ; [.4B5C.0020.0002] # CUNEIFORM SIGN URU TIMES GAN2 TENU
+1233F ; [.4B5D.0020.0002] # CUNEIFORM SIGN URU TIMES GAR
+12340 ; [.4B5E.0020.0002] # CUNEIFORM SIGN URU TIMES GU
+12341 ; [.4B5F.0020.0002] # CUNEIFORM SIGN URU TIMES HA
+12342 ; [.4B60.0020.0002] # CUNEIFORM SIGN URU TIMES IGI
+12343 ; [.4B61.0020.0002] # CUNEIFORM SIGN URU TIMES IM
+12344 ; [.4B62.0020.0002] # CUNEIFORM SIGN URU TIMES ISH
+12345 ; [.4B63.0020.0002] # CUNEIFORM SIGN URU TIMES KI
+12346 ; [.4B64.0020.0002] # CUNEIFORM SIGN URU TIMES LUM
+12347 ; [.4B65.0020.0002] # CUNEIFORM SIGN URU TIMES MIN
+12348 ; [.4B66.0020.0002] # CUNEIFORM SIGN URU TIMES PA
+12349 ; [.4B67.0020.0002] # CUNEIFORM SIGN URU TIMES SHE
+1234A ; [.4B68.0020.0002] # CUNEIFORM SIGN URU TIMES SIG4
+1234B ; [.4B69.0020.0002] # CUNEIFORM SIGN URU TIMES TU
+1234C ; [.4B6A.0020.0002] # CUNEIFORM SIGN URU TIMES U PLUS GUD
+1234D ; [.4B6B.0020.0002] # CUNEIFORM SIGN URU TIMES UD
+1234E ; [.4B6C.0020.0002] # CUNEIFORM SIGN URU TIMES URUDA
+1234F ; [.4B6D.0020.0002] # CUNEIFORM SIGN URUDA
+12350 ; [.4B6E.0020.0002] # CUNEIFORM SIGN URUDA TIMES U
+12351 ; [.4B6F.0020.0002] # CUNEIFORM SIGN USH
+12352 ; [.4B70.0020.0002] # CUNEIFORM SIGN USH TIMES A
+12353 ; [.4B71.0020.0002] # CUNEIFORM SIGN USH TIMES KU
+12354 ; [.4B72.0020.0002] # CUNEIFORM SIGN USH TIMES KUR
+12355 ; [.4B73.0020.0002] # CUNEIFORM SIGN USH TIMES TAK4
+12356 ; [.4B74.0020.0002] # CUNEIFORM SIGN USHX
+12357 ; [.4B75.0020.0002] # CUNEIFORM SIGN USH2
+12358 ; [.4B76.0020.0002] # CUNEIFORM SIGN USHUMX
+12359 ; [.4B77.0020.0002] # CUNEIFORM SIGN UTUKI
+1235A ; [.4B78.0020.0002] # CUNEIFORM SIGN UZ3
+1235B ; [.4B79.0020.0002] # CUNEIFORM SIGN UZ3 TIMES KASKAL
+1235C ; [.4B7A.0020.0002] # CUNEIFORM SIGN UZU
+1235D ; [.4B7B.0020.0002] # CUNEIFORM SIGN ZA
+1235E ; [.4B7C.0020.0002] # CUNEIFORM SIGN ZA TENU
+1235F ; [.4B7D.0020.0002] # CUNEIFORM SIGN ZA SQUARED TIMES KUR
+12360 ; [.4B7E.0020.0002] # CUNEIFORM SIGN ZAG
+12361 ; [.4B7F.0020.0002] # CUNEIFORM SIGN ZAMX
+12362 ; [.4B80.0020.0002] # CUNEIFORM SIGN ZE2
+12363 ; [.4B81.0020.0002] # CUNEIFORM SIGN ZI
+12364 ; [.4B82.0020.0002] # CUNEIFORM SIGN ZI OVER ZI
+12365 ; [.4B83.0020.0002] # CUNEIFORM SIGN ZI3
+12366 ; [.4B84.0020.0002] # CUNEIFORM SIGN ZIB
+12367 ; [.4B85.0020.0002] # CUNEIFORM SIGN ZIB KABA TENU
+12368 ; [.4B86.0020.0002] # CUNEIFORM SIGN ZIG
+12369 ; [.4B87.0020.0002] # CUNEIFORM SIGN ZIZ2
+1236A ; [.4B88.0020.0002] # CUNEIFORM SIGN ZU
+1236B ; [.4B89.0020.0002] # CUNEIFORM SIGN ZU5
+1236C ; [.4B8A.0020.0002] # CUNEIFORM SIGN ZU5 TIMES A
+1236D ; [.4B8B.0020.0002] # CUNEIFORM SIGN ZUBUR
+1236E ; [.4B8C.0020.0002] # CUNEIFORM SIGN ZUM
+1236F ; [.4B8D.0020.0002] # CUNEIFORM SIGN KAP ELAMITE
+12370 ; [.4B8E.0020.0002] # CUNEIFORM SIGN AB TIMES NUN
+12371 ; [.4B8F.0020.0002] # CUNEIFORM SIGN AB2 TIMES A
+12372 ; [.4B90.0020.0002] # CUNEIFORM SIGN AMAR TIMES KUG
+12373 ; [.4B91.0020.0002] # CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH
+12374 ; [.4B92.0020.0002] # CUNEIFORM SIGN DAG3
+12375 ; [.4B93.0020.0002] # CUNEIFORM SIGN DISH PLUS SHU
+12376 ; [.4B94.0020.0002] # CUNEIFORM SIGN DUB TIMES SHE
+12377 ; [.4B95.0020.0002] # CUNEIFORM SIGN EZEN TIMES GUD
+12378 ; [.4B96.0020.0002] # CUNEIFORM SIGN EZEN TIMES SHE
+12379 ; [.4B97.0020.0002] # CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A
+1237A ; [.4B98.0020.0002] # CUNEIFORM SIGN GA2 TIMES ASH2
+1237B ; [.4B99.0020.0002] # CUNEIFORM SIGN GE22
+1237C ; [.4B9A.0020.0002] # CUNEIFORM SIGN GIG
+1237D ; [.4B9B.0020.0002] # CUNEIFORM SIGN HUSH
+1237E ; [.4B9C.0020.0002] # CUNEIFORM SIGN KA TIMES ANSHE
+1237F ; [.4B9D.0020.0002] # CUNEIFORM SIGN KA TIMES ASH3
+12380 ; [.4B9E.0020.0002] # CUNEIFORM SIGN KA TIMES GISH
+12381 ; [.4B9F.0020.0002] # CUNEIFORM SIGN KA TIMES GUD
+12382 ; [.4BA0.0020.0002] # CUNEIFORM SIGN KA TIMES HI TIMES ASH2
+12383 ; [.4BA1.0020.0002] # CUNEIFORM SIGN KA TIMES LUM
+12384 ; [.4BA2.0020.0002] # CUNEIFORM SIGN KA TIMES PA
+12385 ; [.4BA3.0020.0002] # CUNEIFORM SIGN KA TIMES SHUL
+12386 ; [.4BA4.0020.0002] # CUNEIFORM SIGN KA TIMES TU
+12387 ; [.4BA5.0020.0002] # CUNEIFORM SIGN KA TIMES UR2
+12388 ; [.4BA6.0020.0002] # CUNEIFORM SIGN LAGAB TIMES GI
+12389 ; [.4BA7.0020.0002] # CUNEIFORM SIGN LU2 SHESHIG TIMES BAD
+1238A ; [.4BA8.0020.0002] # CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL
+1238B ; [.4BA9.0020.0002] # CUNEIFORM SIGN LU2 TIMES SHU
+1238C ; [.4BAA.0020.0002] # CUNEIFORM SIGN MESH
+1238D ; [.4BAB.0020.0002] # CUNEIFORM SIGN MUSH3 TIMES ZA
+1238E ; [.4BAC.0020.0002] # CUNEIFORM SIGN NA4
+1238F ; [.4BAD.0020.0002] # CUNEIFORM SIGN NIN
+12390 ; [.4BAE.0020.0002] # CUNEIFORM SIGN NIN9
+12391 ; [.4BAF.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES BAL
+12392 ; [.4BB0.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GI
+12393 ; [.4BB1.0020.0002] # CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES
+12394 ; [.4BB2.0020.0002] # CUNEIFORM SIGN PESH2 ASTERISK
+12395 ; [.4BB3.0020.0002] # CUNEIFORM SIGN PIR2
+12396 ; [.4BB4.0020.0002] # CUNEIFORM SIGN SAG TIMES IGI GUNU
+12397 ; [.4BB5.0020.0002] # CUNEIFORM SIGN TI2
+12398 ; [.4BB6.0020.0002] # CUNEIFORM SIGN UM TIMES ME
+12399 ; [.4BB7.0020.0002] # CUNEIFORM SIGN U U
+12480 ; [.4BB8.0020.0002] # CUNEIFORM SIGN AB TIMES NUN TENU
+12481 ; [.4BB9.0020.0002] # CUNEIFORM SIGN AB TIMES SHU2
+12482 ; [.4BBA.0020.0002] # CUNEIFORM SIGN AD TIMES ESH2
+12483 ; [.4BBB.0020.0002] # CUNEIFORM SIGN BAD TIMES DISH TENU
+12484 ; [.4BBC.0020.0002] # CUNEIFORM SIGN BAHAR2 TIMES AB2
+12485 ; [.4BBD.0020.0002] # CUNEIFORM SIGN BAHAR2 TIMES NI
+12486 ; [.4BBE.0020.0002] # CUNEIFORM SIGN BAHAR2 TIMES ZA
+12487 ; [.4BBF.0020.0002] # CUNEIFORM SIGN BU OVER BU TIMES NA2
+12488 ; [.4BC0.0020.0002] # CUNEIFORM SIGN DA TIMES TAK4
+12489 ; [.4BC1.0020.0002] # CUNEIFORM SIGN DAG TIMES KUR
+1248A ; [.4BC2.0020.0002] # CUNEIFORM SIGN DIM TIMES IGI
+1248B ; [.4BC3.0020.0002] # CUNEIFORM SIGN DIM TIMES U U U
+1248C ; [.4BC4.0020.0002] # CUNEIFORM SIGN DIM2 TIMES UD
+1248D ; [.4BC5.0020.0002] # CUNEIFORM SIGN DUG TIMES ANSHE
+1248E ; [.4BC6.0020.0002] # CUNEIFORM SIGN DUG TIMES ASH
+1248F ; [.4BC7.0020.0002] # CUNEIFORM SIGN DUG TIMES ASH AT LEFT
+12490 ; [.4BC8.0020.0002] # CUNEIFORM SIGN DUG TIMES DIN
+12491 ; [.4BC9.0020.0002] # CUNEIFORM SIGN DUG TIMES DUN
+12492 ; [.4BCA.0020.0002] # CUNEIFORM SIGN DUG TIMES ERIN2
+12493 ; [.4BCB.0020.0002] # CUNEIFORM SIGN DUG TIMES GA
+12494 ; [.4BCC.0020.0002] # CUNEIFORM SIGN DUG TIMES GI
+12495 ; [.4BCD.0020.0002] # CUNEIFORM SIGN DUG TIMES GIR2 GUNU
+12496 ; [.4BCE.0020.0002] # CUNEIFORM SIGN DUG TIMES GISH
+12497 ; [.4BCF.0020.0002] # CUNEIFORM SIGN DUG TIMES HA
+12498 ; [.4BD0.0020.0002] # CUNEIFORM SIGN DUG TIMES HI
+12499 ; [.4BD1.0020.0002] # CUNEIFORM SIGN DUG TIMES IGI GUNU
+1249A ; [.4BD2.0020.0002] # CUNEIFORM SIGN DUG TIMES KASKAL
+1249B ; [.4BD3.0020.0002] # CUNEIFORM SIGN DUG TIMES KUR
+1249C ; [.4BD4.0020.0002] # CUNEIFORM SIGN DUG TIMES KUSHU2
+1249D ; [.4BD5.0020.0002] # CUNEIFORM SIGN DUG TIMES KUSHU2 PLUS KASKAL
+1249E ; [.4BD6.0020.0002] # CUNEIFORM SIGN DUG TIMES LAK-020
+1249F ; [.4BD7.0020.0002] # CUNEIFORM SIGN DUG TIMES LAM
+124A0 ; [.4BD8.0020.0002] # CUNEIFORM SIGN DUG TIMES LAM TIMES KUR
+124A1 ; [.4BD9.0020.0002] # CUNEIFORM SIGN DUG TIMES LUH PLUS GISH
+124A2 ; [.4BDA.0020.0002] # CUNEIFORM SIGN DUG TIMES MASH
+124A3 ; [.4BDB.0020.0002] # CUNEIFORM SIGN DUG TIMES MES
+124A4 ; [.4BDC.0020.0002] # CUNEIFORM SIGN DUG TIMES MI
+124A5 ; [.4BDD.0020.0002] # CUNEIFORM SIGN DUG TIMES NI
+124A6 ; [.4BDE.0020.0002] # CUNEIFORM SIGN DUG TIMES PI
+124A7 ; [.4BDF.0020.0002] # CUNEIFORM SIGN DUG TIMES SHE
+124A8 ; [.4BE0.0020.0002] # CUNEIFORM SIGN DUG TIMES SI GUNU
+124A9 ; [.4BE1.0020.0002] # CUNEIFORM SIGN E2 TIMES KUR
+124AA ; [.4BE2.0020.0002] # CUNEIFORM SIGN E2 TIMES PAP
+124AB ; [.4BE3.0020.0002] # CUNEIFORM SIGN ERIN2 X
+124AC ; [.4BE4.0020.0002] # CUNEIFORM SIGN ESH2 CROSSING ESH2
+124AD ; [.4BE5.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES ASH
+124AE ; [.4BE6.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES HI
+124AF ; [.4BE7.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES IGI GUNU
+124B0 ; [.4BE8.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES LA
+124B1 ; [.4BE9.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES LAL
+124B2 ; [.4BEA.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES ME
+124B3 ; [.4BEB.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES MES
+124B4 ; [.4BEC.0020.0002] # CUNEIFORM SIGN EZEN SHESHIG TIMES SU
+124B5 ; [.4BED.0020.0002] # CUNEIFORM SIGN EZEN TIMES SU
+124B6 ; [.4BEE.0020.0002] # CUNEIFORM SIGN GA2 TIMES BAHAR2
+124B7 ; [.4BEF.0020.0002] # CUNEIFORM SIGN GA2 TIMES DIM GUNU
+124B8 ; [.4BF0.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUG TIMES IGI GUNU
+124B9 ; [.4BF1.0020.0002] # CUNEIFORM SIGN GA2 TIMES DUG TIMES KASKAL
+124BA ; [.4BF2.0020.0002] # CUNEIFORM SIGN GA2 TIMES EREN
+124BB ; [.4BF3.0020.0002] # CUNEIFORM SIGN GA2 TIMES GA
+124BC ; [.4BF4.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR PLUS DI
+124BD ; [.4BF5.0020.0002] # CUNEIFORM SIGN GA2 TIMES GAR PLUS NE
+124BE ; [.4BF6.0020.0002] # CUNEIFORM SIGN GA2 TIMES HA PLUS A
+124BF ; [.4BF7.0020.0002] # CUNEIFORM SIGN GA2 TIMES KUSHU2 PLUS KASKAL
+124C0 ; [.4BF8.0020.0002] # CUNEIFORM SIGN GA2 TIMES LAM
+124C1 ; [.4BF9.0020.0002] # CUNEIFORM SIGN GA2 TIMES LAM TIMES KUR
+124C2 ; [.4BFA.0020.0002] # CUNEIFORM SIGN GA2 TIMES LUH
+124C3 ; [.4BFB.0020.0002] # CUNEIFORM SIGN GA2 TIMES MUSH
+124C4 ; [.4BFC.0020.0002] # CUNEIFORM SIGN GA2 TIMES NE
+124C5 ; [.4BFD.0020.0002] # CUNEIFORM SIGN GA2 TIMES NE PLUS E2
+124C6 ; [.4BFE.0020.0002] # CUNEIFORM SIGN GA2 TIMES NE PLUS GI
+124C7 ; [.4BFF.0020.0002] # CUNEIFORM SIGN GA2 TIMES SHIM
+124C8 ; [.4C00.0020.0002] # CUNEIFORM SIGN GA2 TIMES ZIZ2
+124C9 ; [.4C01.0020.0002] # CUNEIFORM SIGN GABA ROTATED NINETY DEGREES
+124CA ; [.4C02.0020.0002] # CUNEIFORM SIGN GESHTIN TIMES U
+124CB ; [.4C03.0020.0002] # CUNEIFORM SIGN GISH TIMES GISH CROSSING GISH
+124CC ; [.4C04.0020.0002] # CUNEIFORM SIGN GU2 TIMES IGI GUNU
+124CD ; [.4C05.0020.0002] # CUNEIFORM SIGN GUD PLUS GISH TIMES TAK4
+124CE ; [.4C06.0020.0002] # CUNEIFORM SIGN HA TENU GUNU
+124CF ; [.4C07.0020.0002] # CUNEIFORM SIGN HI TIMES ASH OVER HI TIMES ASH
+124D0 ; [.4C08.0020.0002] # CUNEIFORM SIGN KA TIMES BU
+124D1 ; [.4C09.0020.0002] # CUNEIFORM SIGN KA TIMES KA
+124D2 ; [.4C0A.0020.0002] # CUNEIFORM SIGN KA TIMES U U U
+124D3 ; [.4C0B.0020.0002] # CUNEIFORM SIGN KA TIMES UR
+124D4 ; [.4C0C.0020.0002] # CUNEIFORM SIGN LAGAB TIMES ZU OVER ZU
+124D5 ; [.4C0D.0020.0002] # CUNEIFORM SIGN LAK-003
+124D6 ; [.4C0E.0020.0002] # CUNEIFORM SIGN LAK-021
+124D7 ; [.4C0F.0020.0002] # CUNEIFORM SIGN LAK-025
+124D8 ; [.4C10.0020.0002] # CUNEIFORM SIGN LAK-030
+124D9 ; [.4C11.0020.0002] # CUNEIFORM SIGN LAK-050
+124DA ; [.4C12.0020.0002] # CUNEIFORM SIGN LAK-051
+124DB ; [.4C13.0020.0002] # CUNEIFORM SIGN LAK-062
+124DC ; [.4C14.0020.0002] # CUNEIFORM SIGN LAK-079 OVER LAK-079 GUNU
+124DD ; [.4C15.0020.0002] # CUNEIFORM SIGN LAK-080
+124DE ; [.4C16.0020.0002] # CUNEIFORM SIGN LAK-081 OVER LAK-081
+124DF ; [.4C17.0020.0002] # CUNEIFORM SIGN LAK-092
+124E0 ; [.4C18.0020.0002] # CUNEIFORM SIGN LAK-130
+124E1 ; [.4C19.0020.0002] # CUNEIFORM SIGN LAK-142
+124E2 ; [.4C1A.0020.0002] # CUNEIFORM SIGN LAK-210
+124E3 ; [.4C1B.0020.0002] # CUNEIFORM SIGN LAK-219
+124E4 ; [.4C1C.0020.0002] # CUNEIFORM SIGN LAK-220
+124E5 ; [.4C1D.0020.0002] # CUNEIFORM SIGN LAK-225
+124E6 ; [.4C1E.0020.0002] # CUNEIFORM SIGN LAK-228
+124E7 ; [.4C1F.0020.0002] # CUNEIFORM SIGN LAK-238
+124E8 ; [.4C20.0020.0002] # CUNEIFORM SIGN LAK-265
+124E9 ; [.4C21.0020.0002] # CUNEIFORM SIGN LAK-266
+124EA ; [.4C22.0020.0002] # CUNEIFORM SIGN LAK-343
+124EB ; [.4C23.0020.0002] # CUNEIFORM SIGN LAK-347
+124EC ; [.4C24.0020.0002] # CUNEIFORM SIGN LAK-348
+124ED ; [.4C25.0020.0002] # CUNEIFORM SIGN LAK-383
+124EE ; [.4C26.0020.0002] # CUNEIFORM SIGN LAK-384
+124EF ; [.4C27.0020.0002] # CUNEIFORM SIGN LAK-390
+124F0 ; [.4C28.0020.0002] # CUNEIFORM SIGN LAK-441
+124F1 ; [.4C29.0020.0002] # CUNEIFORM SIGN LAK-449
+124F2 ; [.4C2A.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES GU
+124F3 ; [.4C2B.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES IGI
+124F4 ; [.4C2C.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES PAP PLUS LU3
+124F5 ; [.4C2D.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES PAP PLUS PAP PLUS LU3
+124F6 ; [.4C2E.0020.0002] # CUNEIFORM SIGN LAK-449 TIMES U2 PLUS BA
+124F7 ; [.4C2F.0020.0002] # CUNEIFORM SIGN LAK-450
+124F8 ; [.4C30.0020.0002] # CUNEIFORM SIGN LAK-457
+124F9 ; [.4C31.0020.0002] # CUNEIFORM SIGN LAK-470
+124FA ; [.4C32.0020.0002] # CUNEIFORM SIGN LAK-483
+124FB ; [.4C33.0020.0002] # CUNEIFORM SIGN LAK-490
+124FC ; [.4C34.0020.0002] # CUNEIFORM SIGN LAK-492
+124FD ; [.4C35.0020.0002] # CUNEIFORM SIGN LAK-493
+124FE ; [.4C36.0020.0002] # CUNEIFORM SIGN LAK-495
+124FF ; [.4C37.0020.0002] # CUNEIFORM SIGN LAK-550
+12500 ; [.4C38.0020.0002] # CUNEIFORM SIGN LAK-608
+12501 ; [.4C39.0020.0002] # CUNEIFORM SIGN LAK-617
+12502 ; [.4C3A.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES ASH
+12503 ; [.4C3B.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES BAD
+12504 ; [.4C3C.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES DUN3 GUNU GUNU
+12505 ; [.4C3D.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES KU3
+12506 ; [.4C3E.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES LA
+12507 ; [.4C3F.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES TAR
+12508 ; [.4C40.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES TE
+12509 ; [.4C41.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES U2
+1250A ; [.4C42.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES UD
+1250B ; [.4C43.0020.0002] # CUNEIFORM SIGN LAK-617 TIMES URUDA
+1250C ; [.4C44.0020.0002] # CUNEIFORM SIGN LAK-636
+1250D ; [.4C45.0020.0002] # CUNEIFORM SIGN LAK-648
+1250E ; [.4C46.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES DUB
+1250F ; [.4C47.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES GA
+12510 ; [.4C48.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES IGI
+12511 ; [.4C49.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES IGI GUNU
+12512 ; [.4C4A.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES NI
+12513 ; [.4C4B.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES PAP PLUS PAP PLUS LU3
+12514 ; [.4C4C.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES SHESH PLUS KI
+12515 ; [.4C4D.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES UD
+12516 ; [.4C4E.0020.0002] # CUNEIFORM SIGN LAK-648 TIMES URUDA
+12517 ; [.4C4F.0020.0002] # CUNEIFORM SIGN LAK-724
+12518 ; [.4C50.0020.0002] # CUNEIFORM SIGN LAK-749
+12519 ; [.4C51.0020.0002] # CUNEIFORM SIGN LU2 GUNU TIMES ASH
+1251A ; [.4C52.0020.0002] # CUNEIFORM SIGN LU2 TIMES DISH
+1251B ; [.4C53.0020.0002] # CUNEIFORM SIGN LU2 TIMES HAL
+1251C ; [.4C54.0020.0002] # CUNEIFORM SIGN LU2 TIMES PAP
+1251D ; [.4C55.0020.0002] # CUNEIFORM SIGN LU2 TIMES PAP PLUS PAP PLUS LU3
+1251E ; [.4C56.0020.0002] # CUNEIFORM SIGN LU2 TIMES TAK4
+1251F ; [.4C57.0020.0002] # CUNEIFORM SIGN MI PLUS ZA7
+12520 ; [.4C58.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES GA
+12521 ; [.4C59.0020.0002] # CUNEIFORM SIGN MUSH OVER MUSH TIMES KAK
+12522 ; [.4C5A.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES DIM GUNU
+12523 ; [.4C5B.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GISH
+12524 ; [.4C5C.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES GUL
+12525 ; [.4C5D.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES HI
+12526 ; [.4C5E.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES KESH2
+12527 ; [.4C5F.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES LAK-050
+12528 ; [.4C60.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES MASH
+12529 ; [.4C61.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES PAP PLUS PAP
+1252A ; [.4C62.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U
+1252B ; [.4C63.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES U PLUS U
+1252C ; [.4C64.0020.0002] # CUNEIFORM SIGN NINDA2 TIMES URUDA
+1252D ; [.4C65.0020.0002] # CUNEIFORM SIGN SAG GUNU TIMES HA
+1252E ; [.4C66.0020.0002] # CUNEIFORM SIGN SAG TIMES EN
+1252F ; [.4C67.0020.0002] # CUNEIFORM SIGN SAG TIMES SHE AT LEFT
+12530 ; [.4C68.0020.0002] # CUNEIFORM SIGN SAG TIMES TAK4
+12531 ; [.4C69.0020.0002] # CUNEIFORM SIGN SHA6 TENU
+12532 ; [.4C6A.0020.0002] # CUNEIFORM SIGN SHE OVER SHE
+12533 ; [.4C6B.0020.0002] # CUNEIFORM SIGN SHE PLUS HUB2
+12534 ; [.4C6C.0020.0002] # CUNEIFORM SIGN SHE PLUS NAM2
+12535 ; [.4C6D.0020.0002] # CUNEIFORM SIGN SHE PLUS SAR
+12536 ; [.4C6E.0020.0002] # CUNEIFORM SIGN SHU2 PLUS DUG TIMES NI
+12537 ; [.4C6F.0020.0002] # CUNEIFORM SIGN SHU2 PLUS E2 TIMES AN
+12538 ; [.4C70.0020.0002] # CUNEIFORM SIGN SI TIMES TAK4
+12539 ; [.4C71.0020.0002] # CUNEIFORM SIGN TAK4 PLUS SAG
+1253A ; [.4C72.0020.0002] # CUNEIFORM SIGN TUM TIMES GAN2 TENU
+1253B ; [.4C73.0020.0002] # CUNEIFORM SIGN TUM TIMES THREE DISH
+1253C ; [.4C74.0020.0002] # CUNEIFORM SIGN UR2 INVERTED
+1253D ; [.4C75.0020.0002] # CUNEIFORM SIGN UR2 TIMES UD
+1253E ; [.4C76.0020.0002] # CUNEIFORM SIGN URU TIMES DARA3
+1253F ; [.4C77.0020.0002] # CUNEIFORM SIGN URU TIMES LAK-668
+12540 ; [.4C78.0020.0002] # CUNEIFORM SIGN URU TIMES LU3
+12541 ; [.4C79.0020.0002] # CUNEIFORM SIGN ZA7
+12542 ; [.4C7A.0020.0002] # CUNEIFORM SIGN ZU OVER ZU PLUS SAR
+12543 ; [.4C7B.0020.0002] # CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+13000 ; [.4C7C.0020.0002] # EGYPTIAN HIEROGLYPH A001
+13001 ; [.4C7D.0020.0002] # EGYPTIAN HIEROGLYPH A002
+13002 ; [.4C7E.0020.0002] # EGYPTIAN HIEROGLYPH A003
+13003 ; [.4C7F.0020.0002] # EGYPTIAN HIEROGLYPH A004
+13004 ; [.4C80.0020.0002] # EGYPTIAN HIEROGLYPH A005
+13005 ; [.4C81.0020.0002] # EGYPTIAN HIEROGLYPH A005A
+13006 ; [.4C82.0020.0002] # EGYPTIAN HIEROGLYPH A006
+13007 ; [.4C83.0020.0002] # EGYPTIAN HIEROGLYPH A006A
+13008 ; [.4C84.0020.0002] # EGYPTIAN HIEROGLYPH A006B
+13009 ; [.4C85.0020.0002] # EGYPTIAN HIEROGLYPH A007
+1300A ; [.4C86.0020.0002] # EGYPTIAN HIEROGLYPH A008
+1300B ; [.4C87.0020.0002] # EGYPTIAN HIEROGLYPH A009
+1300C ; [.4C88.0020.0002] # EGYPTIAN HIEROGLYPH A010
+1300D ; [.4C89.0020.0002] # EGYPTIAN HIEROGLYPH A011
+1300E ; [.4C8A.0020.0002] # EGYPTIAN HIEROGLYPH A012
+1300F ; [.4C8B.0020.0002] # EGYPTIAN HIEROGLYPH A013
+13010 ; [.4C8C.0020.0002] # EGYPTIAN HIEROGLYPH A014
+13011 ; [.4C8D.0020.0002] # EGYPTIAN HIEROGLYPH A014A
+13012 ; [.4C8E.0020.0002] # EGYPTIAN HIEROGLYPH A015
+13013 ; [.4C8F.0020.0002] # EGYPTIAN HIEROGLYPH A016
+13014 ; [.4C90.0020.0002] # EGYPTIAN HIEROGLYPH A017
+13015 ; [.4C91.0020.0002] # EGYPTIAN HIEROGLYPH A017A
+13016 ; [.4C92.0020.0002] # EGYPTIAN HIEROGLYPH A018
+13017 ; [.4C93.0020.0002] # EGYPTIAN HIEROGLYPH A019
+13018 ; [.4C94.0020.0002] # EGYPTIAN HIEROGLYPH A020
+13019 ; [.4C95.0020.0002] # EGYPTIAN HIEROGLYPH A021
+1301A ; [.4C96.0020.0002] # EGYPTIAN HIEROGLYPH A022
+1301B ; [.4C97.0020.0002] # EGYPTIAN HIEROGLYPH A023
+1301C ; [.4C98.0020.0002] # EGYPTIAN HIEROGLYPH A024
+1301D ; [.4C99.0020.0002] # EGYPTIAN HIEROGLYPH A025
+1301E ; [.4C9A.0020.0002] # EGYPTIAN HIEROGLYPH A026
+1301F ; [.4C9B.0020.0002] # EGYPTIAN HIEROGLYPH A027
+13020 ; [.4C9C.0020.0002] # EGYPTIAN HIEROGLYPH A028
+13021 ; [.4C9D.0020.0002] # EGYPTIAN HIEROGLYPH A029
+13022 ; [.4C9E.0020.0002] # EGYPTIAN HIEROGLYPH A030
+13023 ; [.4C9F.0020.0002] # EGYPTIAN HIEROGLYPH A031
+13024 ; [.4CA0.0020.0002] # EGYPTIAN HIEROGLYPH A032
+13025 ; [.4CA1.0020.0002] # EGYPTIAN HIEROGLYPH A032A
+13026 ; [.4CA2.0020.0002] # EGYPTIAN HIEROGLYPH A033
+13027 ; [.4CA3.0020.0002] # EGYPTIAN HIEROGLYPH A034
+13028 ; [.4CA4.0020.0002] # EGYPTIAN HIEROGLYPH A035
+13029 ; [.4CA5.0020.0002] # EGYPTIAN HIEROGLYPH A036
+1302A ; [.4CA6.0020.0002] # EGYPTIAN HIEROGLYPH A037
+1302B ; [.4CA7.0020.0002] # EGYPTIAN HIEROGLYPH A038
+1302C ; [.4CA8.0020.0002] # EGYPTIAN HIEROGLYPH A039
+1302D ; [.4CA9.0020.0002] # EGYPTIAN HIEROGLYPH A040
+1302E ; [.4CAA.0020.0002] # EGYPTIAN HIEROGLYPH A040A
+1302F ; [.4CAB.0020.0002] # EGYPTIAN HIEROGLYPH A041
+13030 ; [.4CAC.0020.0002] # EGYPTIAN HIEROGLYPH A042
+13031 ; [.4CAD.0020.0002] # EGYPTIAN HIEROGLYPH A042A
+13032 ; [.4CAE.0020.0002] # EGYPTIAN HIEROGLYPH A043
+13033 ; [.4CAF.0020.0002] # EGYPTIAN HIEROGLYPH A043A
+13034 ; [.4CB0.0020.0002] # EGYPTIAN HIEROGLYPH A044
+13035 ; [.4CB1.0020.0002] # EGYPTIAN HIEROGLYPH A045
+13036 ; [.4CB2.0020.0002] # EGYPTIAN HIEROGLYPH A045A
+13037 ; [.4CB3.0020.0002] # EGYPTIAN HIEROGLYPH A046
+13038 ; [.4CB4.0020.0002] # EGYPTIAN HIEROGLYPH A047
+13039 ; [.4CB5.0020.0002] # EGYPTIAN HIEROGLYPH A048
+1303A ; [.4CB6.0020.0002] # EGYPTIAN HIEROGLYPH A049
+1303B ; [.4CB7.0020.0002] # EGYPTIAN HIEROGLYPH A050
+1303C ; [.4CB8.0020.0002] # EGYPTIAN HIEROGLYPH A051
+1303D ; [.4CB9.0020.0002] # EGYPTIAN HIEROGLYPH A052
+1303E ; [.4CBA.0020.0002] # EGYPTIAN HIEROGLYPH A053
+1303F ; [.4CBB.0020.0002] # EGYPTIAN HIEROGLYPH A054
+13040 ; [.4CBC.0020.0002] # EGYPTIAN HIEROGLYPH A055
+13041 ; [.4CBD.0020.0002] # EGYPTIAN HIEROGLYPH A056
+13042 ; [.4CBE.0020.0002] # EGYPTIAN HIEROGLYPH A057
+13043 ; [.4CBF.0020.0002] # EGYPTIAN HIEROGLYPH A058
+13044 ; [.4CC0.0020.0002] # EGYPTIAN HIEROGLYPH A059
+13045 ; [.4CC1.0020.0002] # EGYPTIAN HIEROGLYPH A060
+13046 ; [.4CC2.0020.0002] # EGYPTIAN HIEROGLYPH A061
+13047 ; [.4CC3.0020.0002] # EGYPTIAN HIEROGLYPH A062
+13048 ; [.4CC4.0020.0002] # EGYPTIAN HIEROGLYPH A063
+13049 ; [.4CC5.0020.0002] # EGYPTIAN HIEROGLYPH A064
+1304A ; [.4CC6.0020.0002] # EGYPTIAN HIEROGLYPH A065
+1304B ; [.4CC7.0020.0002] # EGYPTIAN HIEROGLYPH A066
+1304C ; [.4CC8.0020.0002] # EGYPTIAN HIEROGLYPH A067
+1304D ; [.4CC9.0020.0002] # EGYPTIAN HIEROGLYPH A068
+1304E ; [.4CCA.0020.0002] # EGYPTIAN HIEROGLYPH A069
+1304F ; [.4CCB.0020.0002] # EGYPTIAN HIEROGLYPH A070
+13050 ; [.4CCC.0020.0002] # EGYPTIAN HIEROGLYPH B001
+13051 ; [.4CCD.0020.0002] # EGYPTIAN HIEROGLYPH B002
+13052 ; [.4CCE.0020.0002] # EGYPTIAN HIEROGLYPH B003
+13053 ; [.4CCF.0020.0002] # EGYPTIAN HIEROGLYPH B004
+13054 ; [.4CD0.0020.0002] # EGYPTIAN HIEROGLYPH B005
+13055 ; [.4CD1.0020.0002] # EGYPTIAN HIEROGLYPH B005A
+13056 ; [.4CD2.0020.0002] # EGYPTIAN HIEROGLYPH B006
+13057 ; [.4CD3.0020.0002] # EGYPTIAN HIEROGLYPH B007
+13058 ; [.4CD4.0020.0002] # EGYPTIAN HIEROGLYPH B008
+13059 ; [.4CD5.0020.0002] # EGYPTIAN HIEROGLYPH B009
+1305A ; [.4CD6.0020.0002] # EGYPTIAN HIEROGLYPH C001
+1305B ; [.4CD7.0020.0002] # EGYPTIAN HIEROGLYPH C002
+1305C ; [.4CD8.0020.0002] # EGYPTIAN HIEROGLYPH C002A
+1305D ; [.4CD9.0020.0002] # EGYPTIAN HIEROGLYPH C002B
+1305E ; [.4CDA.0020.0002] # EGYPTIAN HIEROGLYPH C002C
+1305F ; [.4CDB.0020.0002] # EGYPTIAN HIEROGLYPH C003
+13060 ; [.4CDC.0020.0002] # EGYPTIAN HIEROGLYPH C004
+13061 ; [.4CDD.0020.0002] # EGYPTIAN HIEROGLYPH C005
+13062 ; [.4CDE.0020.0002] # EGYPTIAN HIEROGLYPH C006
+13063 ; [.4CDF.0020.0002] # EGYPTIAN HIEROGLYPH C007
+13064 ; [.4CE0.0020.0002] # EGYPTIAN HIEROGLYPH C008
+13065 ; [.4CE1.0020.0002] # EGYPTIAN HIEROGLYPH C009
+13066 ; [.4CE2.0020.0002] # EGYPTIAN HIEROGLYPH C010
+13067 ; [.4CE3.0020.0002] # EGYPTIAN HIEROGLYPH C010A
+13068 ; [.4CE4.0020.0002] # EGYPTIAN HIEROGLYPH C011
+13069 ; [.4CE5.0020.0002] # EGYPTIAN HIEROGLYPH C012
+1306A ; [.4CE6.0020.0002] # EGYPTIAN HIEROGLYPH C013
+1306B ; [.4CE7.0020.0002] # EGYPTIAN HIEROGLYPH C014
+1306C ; [.4CE8.0020.0002] # EGYPTIAN HIEROGLYPH C015
+1306D ; [.4CE9.0020.0002] # EGYPTIAN HIEROGLYPH C016
+1306E ; [.4CEA.0020.0002] # EGYPTIAN HIEROGLYPH C017
+1306F ; [.4CEB.0020.0002] # EGYPTIAN HIEROGLYPH C018
+13070 ; [.4CEC.0020.0002] # EGYPTIAN HIEROGLYPH C019
+13071 ; [.4CED.0020.0002] # EGYPTIAN HIEROGLYPH C020
+13072 ; [.4CEE.0020.0002] # EGYPTIAN HIEROGLYPH C021
+13073 ; [.4CEF.0020.0002] # EGYPTIAN HIEROGLYPH C022
+13074 ; [.4CF0.0020.0002] # EGYPTIAN HIEROGLYPH C023
+13075 ; [.4CF1.0020.0002] # EGYPTIAN HIEROGLYPH C024
+13076 ; [.4CF2.0020.0002] # EGYPTIAN HIEROGLYPH D001
+13077 ; [.4CF3.0020.0002] # EGYPTIAN HIEROGLYPH D002
+13078 ; [.4CF4.0020.0002] # EGYPTIAN HIEROGLYPH D003
+13079 ; [.4CF5.0020.0002] # EGYPTIAN HIEROGLYPH D004
+1307A ; [.4CF6.0020.0002] # EGYPTIAN HIEROGLYPH D005
+1307B ; [.4CF7.0020.0002] # EGYPTIAN HIEROGLYPH D006
+1307C ; [.4CF8.0020.0002] # EGYPTIAN HIEROGLYPH D007
+1307D ; [.4CF9.0020.0002] # EGYPTIAN HIEROGLYPH D008
+1307E ; [.4CFA.0020.0002] # EGYPTIAN HIEROGLYPH D008A
+1307F ; [.4CFB.0020.0002] # EGYPTIAN HIEROGLYPH D009
+13080 ; [.4CFC.0020.0002] # EGYPTIAN HIEROGLYPH D010
+13081 ; [.4CFD.0020.0002] # EGYPTIAN HIEROGLYPH D011
+13082 ; [.4CFE.0020.0002] # EGYPTIAN HIEROGLYPH D012
+13083 ; [.4CFF.0020.0002] # EGYPTIAN HIEROGLYPH D013
+13084 ; [.4D00.0020.0002] # EGYPTIAN HIEROGLYPH D014
+13085 ; [.4D01.0020.0002] # EGYPTIAN HIEROGLYPH D015
+13086 ; [.4D02.0020.0002] # EGYPTIAN HIEROGLYPH D016
+13087 ; [.4D03.0020.0002] # EGYPTIAN HIEROGLYPH D017
+13088 ; [.4D04.0020.0002] # EGYPTIAN HIEROGLYPH D018
+13089 ; [.4D05.0020.0002] # EGYPTIAN HIEROGLYPH D019
+1308A ; [.4D06.0020.0002] # EGYPTIAN HIEROGLYPH D020
+1308B ; [.4D07.0020.0002] # EGYPTIAN HIEROGLYPH D021
+1308C ; [.4D08.0020.0002] # EGYPTIAN HIEROGLYPH D022
+1308D ; [.4D09.0020.0002] # EGYPTIAN HIEROGLYPH D023
+1308E ; [.4D0A.0020.0002] # EGYPTIAN HIEROGLYPH D024
+1308F ; [.4D0B.0020.0002] # EGYPTIAN HIEROGLYPH D025
+13090 ; [.4D0C.0020.0002] # EGYPTIAN HIEROGLYPH D026
+13091 ; [.4D0D.0020.0002] # EGYPTIAN HIEROGLYPH D027
+13092 ; [.4D0E.0020.0002] # EGYPTIAN HIEROGLYPH D027A
+13093 ; [.4D0F.0020.0002] # EGYPTIAN HIEROGLYPH D028
+13094 ; [.4D10.0020.0002] # EGYPTIAN HIEROGLYPH D029
+13095 ; [.4D11.0020.0002] # EGYPTIAN HIEROGLYPH D030
+13096 ; [.4D12.0020.0002] # EGYPTIAN HIEROGLYPH D031
+13097 ; [.4D13.0020.0002] # EGYPTIAN HIEROGLYPH D031A
+13098 ; [.4D14.0020.0002] # EGYPTIAN HIEROGLYPH D032
+13099 ; [.4D15.0020.0002] # EGYPTIAN HIEROGLYPH D033
+1309A ; [.4D16.0020.0002] # EGYPTIAN HIEROGLYPH D034
+1309B ; [.4D17.0020.0002] # EGYPTIAN HIEROGLYPH D034A
+1309C ; [.4D18.0020.0002] # EGYPTIAN HIEROGLYPH D035
+1309D ; [.4D19.0020.0002] # EGYPTIAN HIEROGLYPH D036
+1309E ; [.4D1A.0020.0002] # EGYPTIAN HIEROGLYPH D037
+1309F ; [.4D1B.0020.0002] # EGYPTIAN HIEROGLYPH D038
+130A0 ; [.4D1C.0020.0002] # EGYPTIAN HIEROGLYPH D039
+130A1 ; [.4D1D.0020.0002] # EGYPTIAN HIEROGLYPH D040
+130A2 ; [.4D1E.0020.0002] # EGYPTIAN HIEROGLYPH D041
+130A3 ; [.4D1F.0020.0002] # EGYPTIAN HIEROGLYPH D042
+130A4 ; [.4D20.0020.0002] # EGYPTIAN HIEROGLYPH D043
+130A5 ; [.4D21.0020.0002] # EGYPTIAN HIEROGLYPH D044
+130A6 ; [.4D22.0020.0002] # EGYPTIAN HIEROGLYPH D045
+130A7 ; [.4D23.0020.0002] # EGYPTIAN HIEROGLYPH D046
+130A8 ; [.4D24.0020.0002] # EGYPTIAN HIEROGLYPH D046A
+130A9 ; [.4D25.0020.0002] # EGYPTIAN HIEROGLYPH D047
+130AA ; [.4D26.0020.0002] # EGYPTIAN HIEROGLYPH D048
+130AB ; [.4D27.0020.0002] # EGYPTIAN HIEROGLYPH D048A
+130AC ; [.4D28.0020.0002] # EGYPTIAN HIEROGLYPH D049
+130AD ; [.4D29.0020.0002] # EGYPTIAN HIEROGLYPH D050
+130AE ; [.4D2A.0020.0002] # EGYPTIAN HIEROGLYPH D050A
+130AF ; [.4D2B.0020.0002] # EGYPTIAN HIEROGLYPH D050B
+130B0 ; [.4D2C.0020.0002] # EGYPTIAN HIEROGLYPH D050C
+130B1 ; [.4D2D.0020.0002] # EGYPTIAN HIEROGLYPH D050D
+130B2 ; [.4D2E.0020.0002] # EGYPTIAN HIEROGLYPH D050E
+130B3 ; [.4D2F.0020.0002] # EGYPTIAN HIEROGLYPH D050F
+130B4 ; [.4D30.0020.0002] # EGYPTIAN HIEROGLYPH D050G
+130B5 ; [.4D31.0020.0002] # EGYPTIAN HIEROGLYPH D050H
+130B6 ; [.4D32.0020.0002] # EGYPTIAN HIEROGLYPH D050I
+130B7 ; [.4D33.0020.0002] # EGYPTIAN HIEROGLYPH D051
+130B8 ; [.4D34.0020.0002] # EGYPTIAN HIEROGLYPH D052
+130B9 ; [.4D35.0020.0002] # EGYPTIAN HIEROGLYPH D052A
+130BA ; [.4D36.0020.0002] # EGYPTIAN HIEROGLYPH D053
+130BB ; [.4D37.0020.0002] # EGYPTIAN HIEROGLYPH D054
+130BC ; [.4D38.0020.0002] # EGYPTIAN HIEROGLYPH D054A
+130BD ; [.4D39.0020.0002] # EGYPTIAN HIEROGLYPH D055
+130BE ; [.4D3A.0020.0002] # EGYPTIAN HIEROGLYPH D056
+130BF ; [.4D3B.0020.0002] # EGYPTIAN HIEROGLYPH D057
+130C0 ; [.4D3C.0020.0002] # EGYPTIAN HIEROGLYPH D058
+130C1 ; [.4D3D.0020.0002] # EGYPTIAN HIEROGLYPH D059
+130C2 ; [.4D3E.0020.0002] # EGYPTIAN HIEROGLYPH D060
+130C3 ; [.4D3F.0020.0002] # EGYPTIAN HIEROGLYPH D061
+130C4 ; [.4D40.0020.0002] # EGYPTIAN HIEROGLYPH D062
+130C5 ; [.4D41.0020.0002] # EGYPTIAN HIEROGLYPH D063
+130C6 ; [.4D42.0020.0002] # EGYPTIAN HIEROGLYPH D064
+130C7 ; [.4D43.0020.0002] # EGYPTIAN HIEROGLYPH D065
+130C8 ; [.4D44.0020.0002] # EGYPTIAN HIEROGLYPH D066
+130C9 ; [.4D45.0020.0002] # EGYPTIAN HIEROGLYPH D067
+130CA ; [.4D46.0020.0002] # EGYPTIAN HIEROGLYPH D067A
+130CB ; [.4D47.0020.0002] # EGYPTIAN HIEROGLYPH D067B
+130CC ; [.4D48.0020.0002] # EGYPTIAN HIEROGLYPH D067C
+130CD ; [.4D49.0020.0002] # EGYPTIAN HIEROGLYPH D067D
+130CE ; [.4D4A.0020.0002] # EGYPTIAN HIEROGLYPH D067E
+130CF ; [.4D4B.0020.0002] # EGYPTIAN HIEROGLYPH D067F
+130D0 ; [.4D4C.0020.0002] # EGYPTIAN HIEROGLYPH D067G
+130D1 ; [.4D4D.0020.0002] # EGYPTIAN HIEROGLYPH D067H
+130D2 ; [.4D4E.0020.0002] # EGYPTIAN HIEROGLYPH E001
+130D3 ; [.4D4F.0020.0002] # EGYPTIAN HIEROGLYPH E002
+130D4 ; [.4D50.0020.0002] # EGYPTIAN HIEROGLYPH E003
+130D5 ; [.4D51.0020.0002] # EGYPTIAN HIEROGLYPH E004
+130D6 ; [.4D52.0020.0002] # EGYPTIAN HIEROGLYPH E005
+130D7 ; [.4D53.0020.0002] # EGYPTIAN HIEROGLYPH E006
+130D8 ; [.4D54.0020.0002] # EGYPTIAN HIEROGLYPH E007
+130D9 ; [.4D55.0020.0002] # EGYPTIAN HIEROGLYPH E008
+130DA ; [.4D56.0020.0002] # EGYPTIAN HIEROGLYPH E008A
+130DB ; [.4D57.0020.0002] # EGYPTIAN HIEROGLYPH E009
+130DC ; [.4D58.0020.0002] # EGYPTIAN HIEROGLYPH E009A
+130DD ; [.4D59.0020.0002] # EGYPTIAN HIEROGLYPH E010
+130DE ; [.4D5A.0020.0002] # EGYPTIAN HIEROGLYPH E011
+130DF ; [.4D5B.0020.0002] # EGYPTIAN HIEROGLYPH E012
+130E0 ; [.4D5C.0020.0002] # EGYPTIAN HIEROGLYPH E013
+130E1 ; [.4D5D.0020.0002] # EGYPTIAN HIEROGLYPH E014
+130E2 ; [.4D5E.0020.0002] # EGYPTIAN HIEROGLYPH E015
+130E3 ; [.4D5F.0020.0002] # EGYPTIAN HIEROGLYPH E016
+130E4 ; [.4D60.0020.0002] # EGYPTIAN HIEROGLYPH E016A
+130E5 ; [.4D61.0020.0002] # EGYPTIAN HIEROGLYPH E017
+130E6 ; [.4D62.0020.0002] # EGYPTIAN HIEROGLYPH E017A
+130E7 ; [.4D63.0020.0002] # EGYPTIAN HIEROGLYPH E018
+130E8 ; [.4D64.0020.0002] # EGYPTIAN HIEROGLYPH E019
+130E9 ; [.4D65.0020.0002] # EGYPTIAN HIEROGLYPH E020
+130EA ; [.4D66.0020.0002] # EGYPTIAN HIEROGLYPH E020A
+130EB ; [.4D67.0020.0002] # EGYPTIAN HIEROGLYPH E021
+130EC ; [.4D68.0020.0002] # EGYPTIAN HIEROGLYPH E022
+130ED ; [.4D69.0020.0002] # EGYPTIAN HIEROGLYPH E023
+130EE ; [.4D6A.0020.0002] # EGYPTIAN HIEROGLYPH E024
+130EF ; [.4D6B.0020.0002] # EGYPTIAN HIEROGLYPH E025
+130F0 ; [.4D6C.0020.0002] # EGYPTIAN HIEROGLYPH E026
+130F1 ; [.4D6D.0020.0002] # EGYPTIAN HIEROGLYPH E027
+130F2 ; [.4D6E.0020.0002] # EGYPTIAN HIEROGLYPH E028
+130F3 ; [.4D6F.0020.0002] # EGYPTIAN HIEROGLYPH E028A
+130F4 ; [.4D70.0020.0002] # EGYPTIAN HIEROGLYPH E029
+130F5 ; [.4D71.0020.0002] # EGYPTIAN HIEROGLYPH E030
+130F6 ; [.4D72.0020.0002] # EGYPTIAN HIEROGLYPH E031
+130F7 ; [.4D73.0020.0002] # EGYPTIAN HIEROGLYPH E032
+130F8 ; [.4D74.0020.0002] # EGYPTIAN HIEROGLYPH E033
+130F9 ; [.4D75.0020.0002] # EGYPTIAN HIEROGLYPH E034
+130FA ; [.4D76.0020.0002] # EGYPTIAN HIEROGLYPH E034A
+130FB ; [.4D77.0020.0002] # EGYPTIAN HIEROGLYPH E036
+130FC ; [.4D78.0020.0002] # EGYPTIAN HIEROGLYPH E037
+130FD ; [.4D79.0020.0002] # EGYPTIAN HIEROGLYPH E038
+130FE ; [.4D7A.0020.0002] # EGYPTIAN HIEROGLYPH F001
+130FF ; [.4D7B.0020.0002] # EGYPTIAN HIEROGLYPH F001A
+13100 ; [.4D7C.0020.0002] # EGYPTIAN HIEROGLYPH F002
+13101 ; [.4D7D.0020.0002] # EGYPTIAN HIEROGLYPH F003
+13102 ; [.4D7E.0020.0002] # EGYPTIAN HIEROGLYPH F004
+13103 ; [.4D7F.0020.0002] # EGYPTIAN HIEROGLYPH F005
+13104 ; [.4D80.0020.0002] # EGYPTIAN HIEROGLYPH F006
+13105 ; [.4D81.0020.0002] # EGYPTIAN HIEROGLYPH F007
+13106 ; [.4D82.0020.0002] # EGYPTIAN HIEROGLYPH F008
+13107 ; [.4D83.0020.0002] # EGYPTIAN HIEROGLYPH F009
+13108 ; [.4D84.0020.0002] # EGYPTIAN HIEROGLYPH F010
+13109 ; [.4D85.0020.0002] # EGYPTIAN HIEROGLYPH F011
+1310A ; [.4D86.0020.0002] # EGYPTIAN HIEROGLYPH F012
+1310B ; [.4D87.0020.0002] # EGYPTIAN HIEROGLYPH F013
+1310C ; [.4D88.0020.0002] # EGYPTIAN HIEROGLYPH F013A
+1310D ; [.4D89.0020.0002] # EGYPTIAN HIEROGLYPH F014
+1310E ; [.4D8A.0020.0002] # EGYPTIAN HIEROGLYPH F015
+1310F ; [.4D8B.0020.0002] # EGYPTIAN HIEROGLYPH F016
+13110 ; [.4D8C.0020.0002] # EGYPTIAN HIEROGLYPH F017
+13111 ; [.4D8D.0020.0002] # EGYPTIAN HIEROGLYPH F018
+13112 ; [.4D8E.0020.0002] # EGYPTIAN HIEROGLYPH F019
+13113 ; [.4D8F.0020.0002] # EGYPTIAN HIEROGLYPH F020
+13114 ; [.4D90.0020.0002] # EGYPTIAN HIEROGLYPH F021
+13115 ; [.4D91.0020.0002] # EGYPTIAN HIEROGLYPH F021A
+13116 ; [.4D92.0020.0002] # EGYPTIAN HIEROGLYPH F022
+13117 ; [.4D93.0020.0002] # EGYPTIAN HIEROGLYPH F023
+13118 ; [.4D94.0020.0002] # EGYPTIAN HIEROGLYPH F024
+13119 ; [.4D95.0020.0002] # EGYPTIAN HIEROGLYPH F025
+1311A ; [.4D96.0020.0002] # EGYPTIAN HIEROGLYPH F026
+1311B ; [.4D97.0020.0002] # EGYPTIAN HIEROGLYPH F027
+1311C ; [.4D98.0020.0002] # EGYPTIAN HIEROGLYPH F028
+1311D ; [.4D99.0020.0002] # EGYPTIAN HIEROGLYPH F029
+1311E ; [.4D9A.0020.0002] # EGYPTIAN HIEROGLYPH F030
+1311F ; [.4D9B.0020.0002] # EGYPTIAN HIEROGLYPH F031
+13120 ; [.4D9C.0020.0002] # EGYPTIAN HIEROGLYPH F031A
+13121 ; [.4D9D.0020.0002] # EGYPTIAN HIEROGLYPH F032
+13122 ; [.4D9E.0020.0002] # EGYPTIAN HIEROGLYPH F033
+13123 ; [.4D9F.0020.0002] # EGYPTIAN HIEROGLYPH F034
+13124 ; [.4DA0.0020.0002] # EGYPTIAN HIEROGLYPH F035
+13125 ; [.4DA1.0020.0002] # EGYPTIAN HIEROGLYPH F036
+13126 ; [.4DA2.0020.0002] # EGYPTIAN HIEROGLYPH F037
+13127 ; [.4DA3.0020.0002] # EGYPTIAN HIEROGLYPH F037A
+13128 ; [.4DA4.0020.0002] # EGYPTIAN HIEROGLYPH F038
+13129 ; [.4DA5.0020.0002] # EGYPTIAN HIEROGLYPH F038A
+1312A ; [.4DA6.0020.0002] # EGYPTIAN HIEROGLYPH F039
+1312B ; [.4DA7.0020.0002] # EGYPTIAN HIEROGLYPH F040
+1312C ; [.4DA8.0020.0002] # EGYPTIAN HIEROGLYPH F041
+1312D ; [.4DA9.0020.0002] # EGYPTIAN HIEROGLYPH F042
+1312E ; [.4DAA.0020.0002] # EGYPTIAN HIEROGLYPH F043
+1312F ; [.4DAB.0020.0002] # EGYPTIAN HIEROGLYPH F044
+13130 ; [.4DAC.0020.0002] # EGYPTIAN HIEROGLYPH F045
+13131 ; [.4DAD.0020.0002] # EGYPTIAN HIEROGLYPH F045A
+13132 ; [.4DAE.0020.0002] # EGYPTIAN HIEROGLYPH F046
+13133 ; [.4DAF.0020.0002] # EGYPTIAN HIEROGLYPH F046A
+13134 ; [.4DB0.0020.0002] # EGYPTIAN HIEROGLYPH F047
+13135 ; [.4DB1.0020.0002] # EGYPTIAN HIEROGLYPH F047A
+13136 ; [.4DB2.0020.0002] # EGYPTIAN HIEROGLYPH F048
+13137 ; [.4DB3.0020.0002] # EGYPTIAN HIEROGLYPH F049
+13138 ; [.4DB4.0020.0002] # EGYPTIAN HIEROGLYPH F050
+13139 ; [.4DB5.0020.0002] # EGYPTIAN HIEROGLYPH F051
+1313A ; [.4DB6.0020.0002] # EGYPTIAN HIEROGLYPH F051A
+1313B ; [.4DB7.0020.0002] # EGYPTIAN HIEROGLYPH F051B
+1313C ; [.4DB8.0020.0002] # EGYPTIAN HIEROGLYPH F051C
+1313D ; [.4DB9.0020.0002] # EGYPTIAN HIEROGLYPH F052
+1313E ; [.4DBA.0020.0002] # EGYPTIAN HIEROGLYPH F053
+1313F ; [.4DBB.0020.0002] # EGYPTIAN HIEROGLYPH G001
+13140 ; [.4DBC.0020.0002] # EGYPTIAN HIEROGLYPH G002
+13141 ; [.4DBD.0020.0002] # EGYPTIAN HIEROGLYPH G003
+13142 ; [.4DBE.0020.0002] # EGYPTIAN HIEROGLYPH G004
+13143 ; [.4DBF.0020.0002] # EGYPTIAN HIEROGLYPH G005
+13144 ; [.4DC0.0020.0002] # EGYPTIAN HIEROGLYPH G006
+13145 ; [.4DC1.0020.0002] # EGYPTIAN HIEROGLYPH G006A
+13146 ; [.4DC2.0020.0002] # EGYPTIAN HIEROGLYPH G007
+13147 ; [.4DC3.0020.0002] # EGYPTIAN HIEROGLYPH G007A
+13148 ; [.4DC4.0020.0002] # EGYPTIAN HIEROGLYPH G007B
+13149 ; [.4DC5.0020.0002] # EGYPTIAN HIEROGLYPH G008
+1314A ; [.4DC6.0020.0002] # EGYPTIAN HIEROGLYPH G009
+1314B ; [.4DC7.0020.0002] # EGYPTIAN HIEROGLYPH G010
+1314C ; [.4DC8.0020.0002] # EGYPTIAN HIEROGLYPH G011
+1314D ; [.4DC9.0020.0002] # EGYPTIAN HIEROGLYPH G011A
+1314E ; [.4DCA.0020.0002] # EGYPTIAN HIEROGLYPH G012
+1314F ; [.4DCB.0020.0002] # EGYPTIAN HIEROGLYPH G013
+13150 ; [.4DCC.0020.0002] # EGYPTIAN HIEROGLYPH G014
+13151 ; [.4DCD.0020.0002] # EGYPTIAN HIEROGLYPH G015
+13152 ; [.4DCE.0020.0002] # EGYPTIAN HIEROGLYPH G016
+13153 ; [.4DCF.0020.0002] # EGYPTIAN HIEROGLYPH G017
+13154 ; [.4DD0.0020.0002] # EGYPTIAN HIEROGLYPH G018
+13155 ; [.4DD1.0020.0002] # EGYPTIAN HIEROGLYPH G019
+13156 ; [.4DD2.0020.0002] # EGYPTIAN HIEROGLYPH G020
+13157 ; [.4DD3.0020.0002] # EGYPTIAN HIEROGLYPH G020A
+13158 ; [.4DD4.0020.0002] # EGYPTIAN HIEROGLYPH G021
+13159 ; [.4DD5.0020.0002] # EGYPTIAN HIEROGLYPH G022
+1315A ; [.4DD6.0020.0002] # EGYPTIAN HIEROGLYPH G023
+1315B ; [.4DD7.0020.0002] # EGYPTIAN HIEROGLYPH G024
+1315C ; [.4DD8.0020.0002] # EGYPTIAN HIEROGLYPH G025
+1315D ; [.4DD9.0020.0002] # EGYPTIAN HIEROGLYPH G026
+1315E ; [.4DDA.0020.0002] # EGYPTIAN HIEROGLYPH G026A
+1315F ; [.4DDB.0020.0002] # EGYPTIAN HIEROGLYPH G027
+13160 ; [.4DDC.0020.0002] # EGYPTIAN HIEROGLYPH G028
+13161 ; [.4DDD.0020.0002] # EGYPTIAN HIEROGLYPH G029
+13162 ; [.4DDE.0020.0002] # EGYPTIAN HIEROGLYPH G030
+13163 ; [.4DDF.0020.0002] # EGYPTIAN HIEROGLYPH G031
+13164 ; [.4DE0.0020.0002] # EGYPTIAN HIEROGLYPH G032
+13165 ; [.4DE1.0020.0002] # EGYPTIAN HIEROGLYPH G033
+13166 ; [.4DE2.0020.0002] # EGYPTIAN HIEROGLYPH G034
+13167 ; [.4DE3.0020.0002] # EGYPTIAN HIEROGLYPH G035
+13168 ; [.4DE4.0020.0002] # EGYPTIAN HIEROGLYPH G036
+13169 ; [.4DE5.0020.0002] # EGYPTIAN HIEROGLYPH G036A
+1316A ; [.4DE6.0020.0002] # EGYPTIAN HIEROGLYPH G037
+1316B ; [.4DE7.0020.0002] # EGYPTIAN HIEROGLYPH G037A
+1316C ; [.4DE8.0020.0002] # EGYPTIAN HIEROGLYPH G038
+1316D ; [.4DE9.0020.0002] # EGYPTIAN HIEROGLYPH G039
+1316E ; [.4DEA.0020.0002] # EGYPTIAN HIEROGLYPH G040
+1316F ; [.4DEB.0020.0002] # EGYPTIAN HIEROGLYPH G041
+13170 ; [.4DEC.0020.0002] # EGYPTIAN HIEROGLYPH G042
+13171 ; [.4DED.0020.0002] # EGYPTIAN HIEROGLYPH G043
+13172 ; [.4DEE.0020.0002] # EGYPTIAN HIEROGLYPH G043A
+13173 ; [.4DEF.0020.0002] # EGYPTIAN HIEROGLYPH G044
+13174 ; [.4DF0.0020.0002] # EGYPTIAN HIEROGLYPH G045
+13175 ; [.4DF1.0020.0002] # EGYPTIAN HIEROGLYPH G045A
+13176 ; [.4DF2.0020.0002] # EGYPTIAN HIEROGLYPH G046
+13177 ; [.4DF3.0020.0002] # EGYPTIAN HIEROGLYPH G047
+13178 ; [.4DF4.0020.0002] # EGYPTIAN HIEROGLYPH G048
+13179 ; [.4DF5.0020.0002] # EGYPTIAN HIEROGLYPH G049
+1317A ; [.4DF6.0020.0002] # EGYPTIAN HIEROGLYPH G050
+1317B ; [.4DF7.0020.0002] # EGYPTIAN HIEROGLYPH G051
+1317C ; [.4DF8.0020.0002] # EGYPTIAN HIEROGLYPH G052
+1317D ; [.4DF9.0020.0002] # EGYPTIAN HIEROGLYPH G053
+1317E ; [.4DFA.0020.0002] # EGYPTIAN HIEROGLYPH G054
+1317F ; [.4DFB.0020.0002] # EGYPTIAN HIEROGLYPH H001
+13180 ; [.4DFC.0020.0002] # EGYPTIAN HIEROGLYPH H002
+13181 ; [.4DFD.0020.0002] # EGYPTIAN HIEROGLYPH H003
+13182 ; [.4DFE.0020.0002] # EGYPTIAN HIEROGLYPH H004
+13183 ; [.4DFF.0020.0002] # EGYPTIAN HIEROGLYPH H005
+13184 ; [.4E00.0020.0002] # EGYPTIAN HIEROGLYPH H006
+13185 ; [.4E01.0020.0002] # EGYPTIAN HIEROGLYPH H006A
+13186 ; [.4E02.0020.0002] # EGYPTIAN HIEROGLYPH H007
+13187 ; [.4E03.0020.0002] # EGYPTIAN HIEROGLYPH H008
+13188 ; [.4E04.0020.0002] # EGYPTIAN HIEROGLYPH I001
+13189 ; [.4E05.0020.0002] # EGYPTIAN HIEROGLYPH I002
+1318A ; [.4E06.0020.0002] # EGYPTIAN HIEROGLYPH I003
+1318B ; [.4E07.0020.0002] # EGYPTIAN HIEROGLYPH I004
+1318C ; [.4E08.0020.0002] # EGYPTIAN HIEROGLYPH I005
+1318D ; [.4E09.0020.0002] # EGYPTIAN HIEROGLYPH I005A
+1318E ; [.4E0A.0020.0002] # EGYPTIAN HIEROGLYPH I006
+1318F ; [.4E0B.0020.0002] # EGYPTIAN HIEROGLYPH I007
+13190 ; [.4E0C.0020.0002] # EGYPTIAN HIEROGLYPH I008
+13191 ; [.4E0D.0020.0002] # EGYPTIAN HIEROGLYPH I009
+13192 ; [.4E0E.0020.0002] # EGYPTIAN HIEROGLYPH I009A
+13193 ; [.4E0F.0020.0002] # EGYPTIAN HIEROGLYPH I010
+13194 ; [.4E10.0020.0002] # EGYPTIAN HIEROGLYPH I010A
+13195 ; [.4E11.0020.0002] # EGYPTIAN HIEROGLYPH I011
+13196 ; [.4E12.0020.0002] # EGYPTIAN HIEROGLYPH I011A
+13197 ; [.4E13.0020.0002] # EGYPTIAN HIEROGLYPH I012
+13198 ; [.4E14.0020.0002] # EGYPTIAN HIEROGLYPH I013
+13199 ; [.4E15.0020.0002] # EGYPTIAN HIEROGLYPH I014
+1319A ; [.4E16.0020.0002] # EGYPTIAN HIEROGLYPH I015
+1319B ; [.4E17.0020.0002] # EGYPTIAN HIEROGLYPH K001
+1319C ; [.4E18.0020.0002] # EGYPTIAN HIEROGLYPH K002
+1319D ; [.4E19.0020.0002] # EGYPTIAN HIEROGLYPH K003
+1319E ; [.4E1A.0020.0002] # EGYPTIAN HIEROGLYPH K004
+1319F ; [.4E1B.0020.0002] # EGYPTIAN HIEROGLYPH K005
+131A0 ; [.4E1C.0020.0002] # EGYPTIAN HIEROGLYPH K006
+131A1 ; [.4E1D.0020.0002] # EGYPTIAN HIEROGLYPH K007
+131A2 ; [.4E1E.0020.0002] # EGYPTIAN HIEROGLYPH K008
+131A3 ; [.4E1F.0020.0002] # EGYPTIAN HIEROGLYPH L001
+131A4 ; [.4E20.0020.0002] # EGYPTIAN HIEROGLYPH L002
+131A5 ; [.4E21.0020.0002] # EGYPTIAN HIEROGLYPH L002A
+131A6 ; [.4E22.0020.0002] # EGYPTIAN HIEROGLYPH L003
+131A7 ; [.4E23.0020.0002] # EGYPTIAN HIEROGLYPH L004
+131A8 ; [.4E24.0020.0002] # EGYPTIAN HIEROGLYPH L005
+131A9 ; [.4E25.0020.0002] # EGYPTIAN HIEROGLYPH L006
+131AA ; [.4E26.0020.0002] # EGYPTIAN HIEROGLYPH L006A
+131AB ; [.4E27.0020.0002] # EGYPTIAN HIEROGLYPH L007
+131AC ; [.4E28.0020.0002] # EGYPTIAN HIEROGLYPH L008
+131AD ; [.4E29.0020.0002] # EGYPTIAN HIEROGLYPH M001
+131AE ; [.4E2A.0020.0002] # EGYPTIAN HIEROGLYPH M001A
+131AF ; [.4E2B.0020.0002] # EGYPTIAN HIEROGLYPH M001B
+131B0 ; [.4E2C.0020.0002] # EGYPTIAN HIEROGLYPH M002
+131B1 ; [.4E2D.0020.0002] # EGYPTIAN HIEROGLYPH M003
+131B2 ; [.4E2E.0020.0002] # EGYPTIAN HIEROGLYPH M003A
+131B3 ; [.4E2F.0020.0002] # EGYPTIAN HIEROGLYPH M004
+131B4 ; [.4E30.0020.0002] # EGYPTIAN HIEROGLYPH M005
+131B5 ; [.4E31.0020.0002] # EGYPTIAN HIEROGLYPH M006
+131B6 ; [.4E32.0020.0002] # EGYPTIAN HIEROGLYPH M007
+131B7 ; [.4E33.0020.0002] # EGYPTIAN HIEROGLYPH M008
+131B8 ; [.4E34.0020.0002] # EGYPTIAN HIEROGLYPH M009
+131B9 ; [.4E35.0020.0002] # EGYPTIAN HIEROGLYPH M010
+131BA ; [.4E36.0020.0002] # EGYPTIAN HIEROGLYPH M010A
+131BB ; [.4E37.0020.0002] # EGYPTIAN HIEROGLYPH M011
+131BC ; [.4E38.0020.0002] # EGYPTIAN HIEROGLYPH M012
+131BD ; [.4E39.0020.0002] # EGYPTIAN HIEROGLYPH M012A
+131BE ; [.4E3A.0020.0002] # EGYPTIAN HIEROGLYPH M012B
+131BF ; [.4E3B.0020.0002] # EGYPTIAN HIEROGLYPH M012C
+131C0 ; [.4E3C.0020.0002] # EGYPTIAN HIEROGLYPH M012D
+131C1 ; [.4E3D.0020.0002] # EGYPTIAN HIEROGLYPH M012E
+131C2 ; [.4E3E.0020.0002] # EGYPTIAN HIEROGLYPH M012F
+131C3 ; [.4E3F.0020.0002] # EGYPTIAN HIEROGLYPH M012G
+131C4 ; [.4E40.0020.0002] # EGYPTIAN HIEROGLYPH M012H
+131C5 ; [.4E41.0020.0002] # EGYPTIAN HIEROGLYPH M013
+131C6 ; [.4E42.0020.0002] # EGYPTIAN HIEROGLYPH M014
+131C7 ; [.4E43.0020.0002] # EGYPTIAN HIEROGLYPH M015
+131C8 ; [.4E44.0020.0002] # EGYPTIAN HIEROGLYPH M015A
+131C9 ; [.4E45.0020.0002] # EGYPTIAN HIEROGLYPH M016
+131CA ; [.4E46.0020.0002] # EGYPTIAN HIEROGLYPH M016A
+131CB ; [.4E47.0020.0002] # EGYPTIAN HIEROGLYPH M017
+131CC ; [.4E48.0020.0002] # EGYPTIAN HIEROGLYPH M017A
+131CD ; [.4E49.0020.0002] # EGYPTIAN HIEROGLYPH M018
+131CE ; [.4E4A.0020.0002] # EGYPTIAN HIEROGLYPH M019
+131CF ; [.4E4B.0020.0002] # EGYPTIAN HIEROGLYPH M020
+131D0 ; [.4E4C.0020.0002] # EGYPTIAN HIEROGLYPH M021
+131D1 ; [.4E4D.0020.0002] # EGYPTIAN HIEROGLYPH M022
+131D2 ; [.4E4E.0020.0002] # EGYPTIAN HIEROGLYPH M022A
+131D3 ; [.4E4F.0020.0002] # EGYPTIAN HIEROGLYPH M023
+131D4 ; [.4E50.0020.0002] # EGYPTIAN HIEROGLYPH M024
+131D5 ; [.4E51.0020.0002] # EGYPTIAN HIEROGLYPH M024A
+131D6 ; [.4E52.0020.0002] # EGYPTIAN HIEROGLYPH M025
+131D7 ; [.4E53.0020.0002] # EGYPTIAN HIEROGLYPH M026
+131D8 ; [.4E54.0020.0002] # EGYPTIAN HIEROGLYPH M027
+131D9 ; [.4E55.0020.0002] # EGYPTIAN HIEROGLYPH M028
+131DA ; [.4E56.0020.0002] # EGYPTIAN HIEROGLYPH M028A
+131DB ; [.4E57.0020.0002] # EGYPTIAN HIEROGLYPH M029
+131DC ; [.4E58.0020.0002] # EGYPTIAN HIEROGLYPH M030
+131DD ; [.4E59.0020.0002] # EGYPTIAN HIEROGLYPH M031
+131DE ; [.4E5A.0020.0002] # EGYPTIAN HIEROGLYPH M031A
+131DF ; [.4E5B.0020.0002] # EGYPTIAN HIEROGLYPH M032
+131E0 ; [.4E5C.0020.0002] # EGYPTIAN HIEROGLYPH M033
+131E1 ; [.4E5D.0020.0002] # EGYPTIAN HIEROGLYPH M033A
+131E2 ; [.4E5E.0020.0002] # EGYPTIAN HIEROGLYPH M033B
+131E3 ; [.4E5F.0020.0002] # EGYPTIAN HIEROGLYPH M034
+131E4 ; [.4E60.0020.0002] # EGYPTIAN HIEROGLYPH M035
+131E5 ; [.4E61.0020.0002] # EGYPTIAN HIEROGLYPH M036
+131E6 ; [.4E62.0020.0002] # EGYPTIAN HIEROGLYPH M037
+131E7 ; [.4E63.0020.0002] # EGYPTIAN HIEROGLYPH M038
+131E8 ; [.4E64.0020.0002] # EGYPTIAN HIEROGLYPH M039
+131E9 ; [.4E65.0020.0002] # EGYPTIAN HIEROGLYPH M040
+131EA ; [.4E66.0020.0002] # EGYPTIAN HIEROGLYPH M040A
+131EB ; [.4E67.0020.0002] # EGYPTIAN HIEROGLYPH M041
+131EC ; [.4E68.0020.0002] # EGYPTIAN HIEROGLYPH M042
+131ED ; [.4E69.0020.0002] # EGYPTIAN HIEROGLYPH M043
+131EE ; [.4E6A.0020.0002] # EGYPTIAN HIEROGLYPH M044
+131EF ; [.4E6B.0020.0002] # EGYPTIAN HIEROGLYPH N001
+131F0 ; [.4E6C.0020.0002] # EGYPTIAN HIEROGLYPH N002
+131F1 ; [.4E6D.0020.0002] # EGYPTIAN HIEROGLYPH N003
+131F2 ; [.4E6E.0020.0002] # EGYPTIAN HIEROGLYPH N004
+131F3 ; [.4E6F.0020.0002] # EGYPTIAN HIEROGLYPH N005
+131F4 ; [.4E70.0020.0002] # EGYPTIAN HIEROGLYPH N006
+131F5 ; [.4E71.0020.0002] # EGYPTIAN HIEROGLYPH N007
+131F6 ; [.4E72.0020.0002] # EGYPTIAN HIEROGLYPH N008
+131F7 ; [.4E73.0020.0002] # EGYPTIAN HIEROGLYPH N009
+131F8 ; [.4E74.0020.0002] # EGYPTIAN HIEROGLYPH N010
+131F9 ; [.4E75.0020.0002] # EGYPTIAN HIEROGLYPH N011
+131FA ; [.4E76.0020.0002] # EGYPTIAN HIEROGLYPH N012
+131FB ; [.4E77.0020.0002] # EGYPTIAN HIEROGLYPH N013
+131FC ; [.4E78.0020.0002] # EGYPTIAN HIEROGLYPH N014
+131FD ; [.4E79.0020.0002] # EGYPTIAN HIEROGLYPH N015
+131FE ; [.4E7A.0020.0002] # EGYPTIAN HIEROGLYPH N016
+131FF ; [.4E7B.0020.0002] # EGYPTIAN HIEROGLYPH N017
+13200 ; [.4E7C.0020.0002] # EGYPTIAN HIEROGLYPH N018
+13201 ; [.4E7D.0020.0002] # EGYPTIAN HIEROGLYPH N018A
+13202 ; [.4E7E.0020.0002] # EGYPTIAN HIEROGLYPH N018B
+13203 ; [.4E7F.0020.0002] # EGYPTIAN HIEROGLYPH N019
+13204 ; [.4E80.0020.0002] # EGYPTIAN HIEROGLYPH N020
+13205 ; [.4E81.0020.0002] # EGYPTIAN HIEROGLYPH N021
+13206 ; [.4E82.0020.0002] # EGYPTIAN HIEROGLYPH N022
+13207 ; [.4E83.0020.0002] # EGYPTIAN HIEROGLYPH N023
+13208 ; [.4E84.0020.0002] # EGYPTIAN HIEROGLYPH N024
+13209 ; [.4E85.0020.0002] # EGYPTIAN HIEROGLYPH N025
+1320A ; [.4E86.0020.0002] # EGYPTIAN HIEROGLYPH N025A
+1320B ; [.4E87.0020.0002] # EGYPTIAN HIEROGLYPH N026
+1320C ; [.4E88.0020.0002] # EGYPTIAN HIEROGLYPH N027
+1320D ; [.4E89.0020.0002] # EGYPTIAN HIEROGLYPH N028
+1320E ; [.4E8A.0020.0002] # EGYPTIAN HIEROGLYPH N029
+1320F ; [.4E8B.0020.0002] # EGYPTIAN HIEROGLYPH N030
+13210 ; [.4E8C.0020.0002] # EGYPTIAN HIEROGLYPH N031
+13211 ; [.4E8D.0020.0002] # EGYPTIAN HIEROGLYPH N032
+13212 ; [.4E8E.0020.0002] # EGYPTIAN HIEROGLYPH N033
+13213 ; [.4E8F.0020.0002] # EGYPTIAN HIEROGLYPH N033A
+13214 ; [.4E90.0020.0002] # EGYPTIAN HIEROGLYPH N034
+13215 ; [.4E91.0020.0002] # EGYPTIAN HIEROGLYPH N034A
+13216 ; [.4E92.0020.0002] # EGYPTIAN HIEROGLYPH N035
+13217 ; [.4E93.0020.0002] # EGYPTIAN HIEROGLYPH N035A
+13218 ; [.4E94.0020.0002] # EGYPTIAN HIEROGLYPH N036
+13219 ; [.4E95.0020.0002] # EGYPTIAN HIEROGLYPH N037
+1321A ; [.4E96.0020.0002] # EGYPTIAN HIEROGLYPH N037A
+1321B ; [.4E97.0020.0002] # EGYPTIAN HIEROGLYPH N038
+1321C ; [.4E98.0020.0002] # EGYPTIAN HIEROGLYPH N039
+1321D ; [.4E99.0020.0002] # EGYPTIAN HIEROGLYPH N040
+1321E ; [.4E9A.0020.0002] # EGYPTIAN HIEROGLYPH N041
+1321F ; [.4E9B.0020.0002] # EGYPTIAN HIEROGLYPH N042
+13220 ; [.4E9C.0020.0002] # EGYPTIAN HIEROGLYPH NL001
+13221 ; [.4E9D.0020.0002] # EGYPTIAN HIEROGLYPH NL002
+13222 ; [.4E9E.0020.0002] # EGYPTIAN HIEROGLYPH NL003
+13223 ; [.4E9F.0020.0002] # EGYPTIAN HIEROGLYPH NL004
+13224 ; [.4EA0.0020.0002] # EGYPTIAN HIEROGLYPH NL005
+13225 ; [.4EA1.0020.0002] # EGYPTIAN HIEROGLYPH NL005A
+13226 ; [.4EA2.0020.0002] # EGYPTIAN HIEROGLYPH NL006
+13227 ; [.4EA3.0020.0002] # EGYPTIAN HIEROGLYPH NL007
+13228 ; [.4EA4.0020.0002] # EGYPTIAN HIEROGLYPH NL008
+13229 ; [.4EA5.0020.0002] # EGYPTIAN HIEROGLYPH NL009
+1322A ; [.4EA6.0020.0002] # EGYPTIAN HIEROGLYPH NL010
+1322B ; [.4EA7.0020.0002] # EGYPTIAN HIEROGLYPH NL011
+1322C ; [.4EA8.0020.0002] # EGYPTIAN HIEROGLYPH NL012
+1322D ; [.4EA9.0020.0002] # EGYPTIAN HIEROGLYPH NL013
+1322E ; [.4EAA.0020.0002] # EGYPTIAN HIEROGLYPH NL014
+1322F ; [.4EAB.0020.0002] # EGYPTIAN HIEROGLYPH NL015
+13230 ; [.4EAC.0020.0002] # EGYPTIAN HIEROGLYPH NL016
+13231 ; [.4EAD.0020.0002] # EGYPTIAN HIEROGLYPH NL017
+13232 ; [.4EAE.0020.0002] # EGYPTIAN HIEROGLYPH NL017A
+13233 ; [.4EAF.0020.0002] # EGYPTIAN HIEROGLYPH NL018
+13234 ; [.4EB0.0020.0002] # EGYPTIAN HIEROGLYPH NL019
+13235 ; [.4EB1.0020.0002] # EGYPTIAN HIEROGLYPH NL020
+13236 ; [.4EB2.0020.0002] # EGYPTIAN HIEROGLYPH NU001
+13237 ; [.4EB3.0020.0002] # EGYPTIAN HIEROGLYPH NU002
+13238 ; [.4EB4.0020.0002] # EGYPTIAN HIEROGLYPH NU003
+13239 ; [.4EB5.0020.0002] # EGYPTIAN HIEROGLYPH NU004
+1323A ; [.4EB6.0020.0002] # EGYPTIAN HIEROGLYPH NU005
+1323B ; [.4EB7.0020.0002] # EGYPTIAN HIEROGLYPH NU006
+1323C ; [.4EB8.0020.0002] # EGYPTIAN HIEROGLYPH NU007
+1323D ; [.4EB9.0020.0002] # EGYPTIAN HIEROGLYPH NU008
+1323E ; [.4EBA.0020.0002] # EGYPTIAN HIEROGLYPH NU009
+1323F ; [.4EBB.0020.0002] # EGYPTIAN HIEROGLYPH NU010
+13240 ; [.4EBC.0020.0002] # EGYPTIAN HIEROGLYPH NU010A
+13241 ; [.4EBD.0020.0002] # EGYPTIAN HIEROGLYPH NU011
+13242 ; [.4EBE.0020.0002] # EGYPTIAN HIEROGLYPH NU011A
+13243 ; [.4EBF.0020.0002] # EGYPTIAN HIEROGLYPH NU012
+13244 ; [.4EC0.0020.0002] # EGYPTIAN HIEROGLYPH NU013
+13245 ; [.4EC1.0020.0002] # EGYPTIAN HIEROGLYPH NU014
+13246 ; [.4EC2.0020.0002] # EGYPTIAN HIEROGLYPH NU015
+13247 ; [.4EC3.0020.0002] # EGYPTIAN HIEROGLYPH NU016
+13248 ; [.4EC4.0020.0002] # EGYPTIAN HIEROGLYPH NU017
+13249 ; [.4EC5.0020.0002] # EGYPTIAN HIEROGLYPH NU018
+1324A ; [.4EC6.0020.0002] # EGYPTIAN HIEROGLYPH NU018A
+1324B ; [.4EC7.0020.0002] # EGYPTIAN HIEROGLYPH NU019
+1324C ; [.4EC8.0020.0002] # EGYPTIAN HIEROGLYPH NU020
+1324D ; [.4EC9.0020.0002] # EGYPTIAN HIEROGLYPH NU021
+1324E ; [.4ECA.0020.0002] # EGYPTIAN HIEROGLYPH NU022
+1324F ; [.4ECB.0020.0002] # EGYPTIAN HIEROGLYPH NU022A
+13250 ; [.4ECC.0020.0002] # EGYPTIAN HIEROGLYPH O001
+13251 ; [.4ECD.0020.0002] # EGYPTIAN HIEROGLYPH O001A
+13252 ; [.4ECE.0020.0002] # EGYPTIAN HIEROGLYPH O002
+13253 ; [.4ECF.0020.0002] # EGYPTIAN HIEROGLYPH O003
+13254 ; [.4ED0.0020.0002] # EGYPTIAN HIEROGLYPH O004
+13255 ; [.4ED1.0020.0002] # EGYPTIAN HIEROGLYPH O005
+13256 ; [.4ED2.0020.0002] # EGYPTIAN HIEROGLYPH O005A
+13257 ; [.4ED3.0020.0002] # EGYPTIAN HIEROGLYPH O006
+13258 ; [.4ED4.0020.0002] # EGYPTIAN HIEROGLYPH O006A
+13259 ; [.4ED5.0020.0002] # EGYPTIAN HIEROGLYPH O006B
+1325A ; [.4ED6.0020.0002] # EGYPTIAN HIEROGLYPH O006C
+1325B ; [.4ED7.0020.0002] # EGYPTIAN HIEROGLYPH O006D
+1325C ; [.4ED8.0020.0002] # EGYPTIAN HIEROGLYPH O006E
+1325D ; [.4ED9.0020.0002] # EGYPTIAN HIEROGLYPH O006F
+1325E ; [.4EDA.0020.0002] # EGYPTIAN HIEROGLYPH O007
+1325F ; [.4EDB.0020.0002] # EGYPTIAN HIEROGLYPH O008
+13260 ; [.4EDC.0020.0002] # EGYPTIAN HIEROGLYPH O009
+13261 ; [.4EDD.0020.0002] # EGYPTIAN HIEROGLYPH O010
+13262 ; [.4EDE.0020.0002] # EGYPTIAN HIEROGLYPH O010A
+13263 ; [.4EDF.0020.0002] # EGYPTIAN HIEROGLYPH O010B
+13264 ; [.4EE0.0020.0002] # EGYPTIAN HIEROGLYPH O010C
+13265 ; [.4EE1.0020.0002] # EGYPTIAN HIEROGLYPH O011
+13266 ; [.4EE2.0020.0002] # EGYPTIAN HIEROGLYPH O012
+13267 ; [.4EE3.0020.0002] # EGYPTIAN HIEROGLYPH O013
+13268 ; [.4EE4.0020.0002] # EGYPTIAN HIEROGLYPH O014
+13269 ; [.4EE5.0020.0002] # EGYPTIAN HIEROGLYPH O015
+1326A ; [.4EE6.0020.0002] # EGYPTIAN HIEROGLYPH O016
+1326B ; [.4EE7.0020.0002] # EGYPTIAN HIEROGLYPH O017
+1326C ; [.4EE8.0020.0002] # EGYPTIAN HIEROGLYPH O018
+1326D ; [.4EE9.0020.0002] # EGYPTIAN HIEROGLYPH O019
+1326E ; [.4EEA.0020.0002] # EGYPTIAN HIEROGLYPH O019A
+1326F ; [.4EEB.0020.0002] # EGYPTIAN HIEROGLYPH O020
+13270 ; [.4EEC.0020.0002] # EGYPTIAN HIEROGLYPH O020A
+13271 ; [.4EED.0020.0002] # EGYPTIAN HIEROGLYPH O021
+13272 ; [.4EEE.0020.0002] # EGYPTIAN HIEROGLYPH O022
+13273 ; [.4EEF.0020.0002] # EGYPTIAN HIEROGLYPH O023
+13274 ; [.4EF0.0020.0002] # EGYPTIAN HIEROGLYPH O024
+13275 ; [.4EF1.0020.0002] # EGYPTIAN HIEROGLYPH O024A
+13276 ; [.4EF2.0020.0002] # EGYPTIAN HIEROGLYPH O025
+13277 ; [.4EF3.0020.0002] # EGYPTIAN HIEROGLYPH O025A
+13278 ; [.4EF4.0020.0002] # EGYPTIAN HIEROGLYPH O026
+13279 ; [.4EF5.0020.0002] # EGYPTIAN HIEROGLYPH O027
+1327A ; [.4EF6.0020.0002] # EGYPTIAN HIEROGLYPH O028
+1327B ; [.4EF7.0020.0002] # EGYPTIAN HIEROGLYPH O029
+1327C ; [.4EF8.0020.0002] # EGYPTIAN HIEROGLYPH O029A
+1327D ; [.4EF9.0020.0002] # EGYPTIAN HIEROGLYPH O030
+1327E ; [.4EFA.0020.0002] # EGYPTIAN HIEROGLYPH O030A
+1327F ; [.4EFB.0020.0002] # EGYPTIAN HIEROGLYPH O031
+13280 ; [.4EFC.0020.0002] # EGYPTIAN HIEROGLYPH O032
+13281 ; [.4EFD.0020.0002] # EGYPTIAN HIEROGLYPH O033
+13282 ; [.4EFE.0020.0002] # EGYPTIAN HIEROGLYPH O033A
+13283 ; [.4EFF.0020.0002] # EGYPTIAN HIEROGLYPH O034
+13284 ; [.4F00.0020.0002] # EGYPTIAN HIEROGLYPH O035
+13285 ; [.4F01.0020.0002] # EGYPTIAN HIEROGLYPH O036
+13286 ; [.4F02.0020.0002] # EGYPTIAN HIEROGLYPH O036A
+13287 ; [.4F03.0020.0002] # EGYPTIAN HIEROGLYPH O036B
+13288 ; [.4F04.0020.0002] # EGYPTIAN HIEROGLYPH O036C
+13289 ; [.4F05.0020.0002] # EGYPTIAN HIEROGLYPH O036D
+1328A ; [.4F06.0020.0002] # EGYPTIAN HIEROGLYPH O037
+1328B ; [.4F07.0020.0002] # EGYPTIAN HIEROGLYPH O038
+1328C ; [.4F08.0020.0002] # EGYPTIAN HIEROGLYPH O039
+1328D ; [.4F09.0020.0002] # EGYPTIAN HIEROGLYPH O040
+1328E ; [.4F0A.0020.0002] # EGYPTIAN HIEROGLYPH O041
+1328F ; [.4F0B.0020.0002] # EGYPTIAN HIEROGLYPH O042
+13290 ; [.4F0C.0020.0002] # EGYPTIAN HIEROGLYPH O043
+13291 ; [.4F0D.0020.0002] # EGYPTIAN HIEROGLYPH O044
+13292 ; [.4F0E.0020.0002] # EGYPTIAN HIEROGLYPH O045
+13293 ; [.4F0F.0020.0002] # EGYPTIAN HIEROGLYPH O046
+13294 ; [.4F10.0020.0002] # EGYPTIAN HIEROGLYPH O047
+13295 ; [.4F11.0020.0002] # EGYPTIAN HIEROGLYPH O048
+13296 ; [.4F12.0020.0002] # EGYPTIAN HIEROGLYPH O049
+13297 ; [.4F13.0020.0002] # EGYPTIAN HIEROGLYPH O050
+13298 ; [.4F14.0020.0002] # EGYPTIAN HIEROGLYPH O050A
+13299 ; [.4F15.0020.0002] # EGYPTIAN HIEROGLYPH O050B
+1329A ; [.4F16.0020.0002] # EGYPTIAN HIEROGLYPH O051
+1329B ; [.4F17.0020.0002] # EGYPTIAN HIEROGLYPH P001
+1329C ; [.4F18.0020.0002] # EGYPTIAN HIEROGLYPH P001A
+1329D ; [.4F19.0020.0002] # EGYPTIAN HIEROGLYPH P002
+1329E ; [.4F1A.0020.0002] # EGYPTIAN HIEROGLYPH P003
+1329F ; [.4F1B.0020.0002] # EGYPTIAN HIEROGLYPH P003A
+132A0 ; [.4F1C.0020.0002] # EGYPTIAN HIEROGLYPH P004
+132A1 ; [.4F1D.0020.0002] # EGYPTIAN HIEROGLYPH P005
+132A2 ; [.4F1E.0020.0002] # EGYPTIAN HIEROGLYPH P006
+132A3 ; [.4F1F.0020.0002] # EGYPTIAN HIEROGLYPH P007
+132A4 ; [.4F20.0020.0002] # EGYPTIAN HIEROGLYPH P008
+132A5 ; [.4F21.0020.0002] # EGYPTIAN HIEROGLYPH P009
+132A6 ; [.4F22.0020.0002] # EGYPTIAN HIEROGLYPH P010
+132A7 ; [.4F23.0020.0002] # EGYPTIAN HIEROGLYPH P011
+132A8 ; [.4F24.0020.0002] # EGYPTIAN HIEROGLYPH Q001
+132A9 ; [.4F25.0020.0002] # EGYPTIAN HIEROGLYPH Q002
+132AA ; [.4F26.0020.0002] # EGYPTIAN HIEROGLYPH Q003
+132AB ; [.4F27.0020.0002] # EGYPTIAN HIEROGLYPH Q004
+132AC ; [.4F28.0020.0002] # EGYPTIAN HIEROGLYPH Q005
+132AD ; [.4F29.0020.0002] # EGYPTIAN HIEROGLYPH Q006
+132AE ; [.4F2A.0020.0002] # EGYPTIAN HIEROGLYPH Q007
+132AF ; [.4F2B.0020.0002] # EGYPTIAN HIEROGLYPH R001
+132B0 ; [.4F2C.0020.0002] # EGYPTIAN HIEROGLYPH R002
+132B1 ; [.4F2D.0020.0002] # EGYPTIAN HIEROGLYPH R002A
+132B2 ; [.4F2E.0020.0002] # EGYPTIAN HIEROGLYPH R003
+132B3 ; [.4F2F.0020.0002] # EGYPTIAN HIEROGLYPH R003A
+132B4 ; [.4F30.0020.0002] # EGYPTIAN HIEROGLYPH R003B
+132B5 ; [.4F31.0020.0002] # EGYPTIAN HIEROGLYPH R004
+132B6 ; [.4F32.0020.0002] # EGYPTIAN HIEROGLYPH R005
+132B7 ; [.4F33.0020.0002] # EGYPTIAN HIEROGLYPH R006
+132B8 ; [.4F34.0020.0002] # EGYPTIAN HIEROGLYPH R007
+132B9 ; [.4F35.0020.0002] # EGYPTIAN HIEROGLYPH R008
+132BA ; [.4F36.0020.0002] # EGYPTIAN HIEROGLYPH R009
+132BB ; [.4F37.0020.0002] # EGYPTIAN HIEROGLYPH R010
+132BC ; [.4F38.0020.0002] # EGYPTIAN HIEROGLYPH R010A
+132BD ; [.4F39.0020.0002] # EGYPTIAN HIEROGLYPH R011
+132BE ; [.4F3A.0020.0002] # EGYPTIAN HIEROGLYPH R012
+132BF ; [.4F3B.0020.0002] # EGYPTIAN HIEROGLYPH R013
+132C0 ; [.4F3C.0020.0002] # EGYPTIAN HIEROGLYPH R014
+132C1 ; [.4F3D.0020.0002] # EGYPTIAN HIEROGLYPH R015
+132C2 ; [.4F3E.0020.0002] # EGYPTIAN HIEROGLYPH R016
+132C3 ; [.4F3F.0020.0002] # EGYPTIAN HIEROGLYPH R016A
+132C4 ; [.4F40.0020.0002] # EGYPTIAN HIEROGLYPH R017
+132C5 ; [.4F41.0020.0002] # EGYPTIAN HIEROGLYPH R018
+132C6 ; [.4F42.0020.0002] # EGYPTIAN HIEROGLYPH R019
+132C7 ; [.4F43.0020.0002] # EGYPTIAN HIEROGLYPH R020
+132C8 ; [.4F44.0020.0002] # EGYPTIAN HIEROGLYPH R021
+132C9 ; [.4F45.0020.0002] # EGYPTIAN HIEROGLYPH R022
+132CA ; [.4F46.0020.0002] # EGYPTIAN HIEROGLYPH R023
+132CB ; [.4F47.0020.0002] # EGYPTIAN HIEROGLYPH R024
+132CC ; [.4F48.0020.0002] # EGYPTIAN HIEROGLYPH R025
+132CD ; [.4F49.0020.0002] # EGYPTIAN HIEROGLYPH R026
+132CE ; [.4F4A.0020.0002] # EGYPTIAN HIEROGLYPH R027
+132CF ; [.4F4B.0020.0002] # EGYPTIAN HIEROGLYPH R028
+132D0 ; [.4F4C.0020.0002] # EGYPTIAN HIEROGLYPH R029
+132D1 ; [.4F4D.0020.0002] # EGYPTIAN HIEROGLYPH S001
+132D2 ; [.4F4E.0020.0002] # EGYPTIAN HIEROGLYPH S002
+132D3 ; [.4F4F.0020.0002] # EGYPTIAN HIEROGLYPH S002A
+132D4 ; [.4F50.0020.0002] # EGYPTIAN HIEROGLYPH S003
+132D5 ; [.4F51.0020.0002] # EGYPTIAN HIEROGLYPH S004
+132D6 ; [.4F52.0020.0002] # EGYPTIAN HIEROGLYPH S005
+132D7 ; [.4F53.0020.0002] # EGYPTIAN HIEROGLYPH S006
+132D8 ; [.4F54.0020.0002] # EGYPTIAN HIEROGLYPH S006A
+132D9 ; [.4F55.0020.0002] # EGYPTIAN HIEROGLYPH S007
+132DA ; [.4F56.0020.0002] # EGYPTIAN HIEROGLYPH S008
+132DB ; [.4F57.0020.0002] # EGYPTIAN HIEROGLYPH S009
+132DC ; [.4F58.0020.0002] # EGYPTIAN HIEROGLYPH S010
+132DD ; [.4F59.0020.0002] # EGYPTIAN HIEROGLYPH S011
+132DE ; [.4F5A.0020.0002] # EGYPTIAN HIEROGLYPH S012
+132DF ; [.4F5B.0020.0002] # EGYPTIAN HIEROGLYPH S013
+132E0 ; [.4F5C.0020.0002] # EGYPTIAN HIEROGLYPH S014
+132E1 ; [.4F5D.0020.0002] # EGYPTIAN HIEROGLYPH S014A
+132E2 ; [.4F5E.0020.0002] # EGYPTIAN HIEROGLYPH S014B
+132E3 ; [.4F5F.0020.0002] # EGYPTIAN HIEROGLYPH S015
+132E4 ; [.4F60.0020.0002] # EGYPTIAN HIEROGLYPH S016
+132E5 ; [.4F61.0020.0002] # EGYPTIAN HIEROGLYPH S017
+132E6 ; [.4F62.0020.0002] # EGYPTIAN HIEROGLYPH S017A
+132E7 ; [.4F63.0020.0002] # EGYPTIAN HIEROGLYPH S018
+132E8 ; [.4F64.0020.0002] # EGYPTIAN HIEROGLYPH S019
+132E9 ; [.4F65.0020.0002] # EGYPTIAN HIEROGLYPH S020
+132EA ; [.4F66.0020.0002] # EGYPTIAN HIEROGLYPH S021
+132EB ; [.4F67.0020.0002] # EGYPTIAN HIEROGLYPH S022
+132EC ; [.4F68.0020.0002] # EGYPTIAN HIEROGLYPH S023
+132ED ; [.4F69.0020.0002] # EGYPTIAN HIEROGLYPH S024
+132EE ; [.4F6A.0020.0002] # EGYPTIAN HIEROGLYPH S025
+132EF ; [.4F6B.0020.0002] # EGYPTIAN HIEROGLYPH S026
+132F0 ; [.4F6C.0020.0002] # EGYPTIAN HIEROGLYPH S026A
+132F1 ; [.4F6D.0020.0002] # EGYPTIAN HIEROGLYPH S026B
+132F2 ; [.4F6E.0020.0002] # EGYPTIAN HIEROGLYPH S027
+132F3 ; [.4F6F.0020.0002] # EGYPTIAN HIEROGLYPH S028
+132F4 ; [.4F70.0020.0002] # EGYPTIAN HIEROGLYPH S029
+132F5 ; [.4F71.0020.0002] # EGYPTIAN HIEROGLYPH S030
+132F6 ; [.4F72.0020.0002] # EGYPTIAN HIEROGLYPH S031
+132F7 ; [.4F73.0020.0002] # EGYPTIAN HIEROGLYPH S032
+132F8 ; [.4F74.0020.0002] # EGYPTIAN HIEROGLYPH S033
+132F9 ; [.4F75.0020.0002] # EGYPTIAN HIEROGLYPH S034
+132FA ; [.4F76.0020.0002] # EGYPTIAN HIEROGLYPH S035
+132FB ; [.4F77.0020.0002] # EGYPTIAN HIEROGLYPH S035A
+132FC ; [.4F78.0020.0002] # EGYPTIAN HIEROGLYPH S036
+132FD ; [.4F79.0020.0002] # EGYPTIAN HIEROGLYPH S037
+132FE ; [.4F7A.0020.0002] # EGYPTIAN HIEROGLYPH S038
+132FF ; [.4F7B.0020.0002] # EGYPTIAN HIEROGLYPH S039
+13300 ; [.4F7C.0020.0002] # EGYPTIAN HIEROGLYPH S040
+13301 ; [.4F7D.0020.0002] # EGYPTIAN HIEROGLYPH S041
+13302 ; [.4F7E.0020.0002] # EGYPTIAN HIEROGLYPH S042
+13303 ; [.4F7F.0020.0002] # EGYPTIAN HIEROGLYPH S043
+13304 ; [.4F80.0020.0002] # EGYPTIAN HIEROGLYPH S044
+13305 ; [.4F81.0020.0002] # EGYPTIAN HIEROGLYPH S045
+13306 ; [.4F82.0020.0002] # EGYPTIAN HIEROGLYPH S046
+13307 ; [.4F83.0020.0002] # EGYPTIAN HIEROGLYPH T001
+13308 ; [.4F84.0020.0002] # EGYPTIAN HIEROGLYPH T002
+13309 ; [.4F85.0020.0002] # EGYPTIAN HIEROGLYPH T003
+1330A ; [.4F86.0020.0002] # EGYPTIAN HIEROGLYPH T003A
+1330B ; [.4F87.0020.0002] # EGYPTIAN HIEROGLYPH T004
+1330C ; [.4F88.0020.0002] # EGYPTIAN HIEROGLYPH T005
+1330D ; [.4F89.0020.0002] # EGYPTIAN HIEROGLYPH T006
+1330E ; [.4F8A.0020.0002] # EGYPTIAN HIEROGLYPH T007
+1330F ; [.4F8B.0020.0002] # EGYPTIAN HIEROGLYPH T007A
+13310 ; [.4F8C.0020.0002] # EGYPTIAN HIEROGLYPH T008
+13311 ; [.4F8D.0020.0002] # EGYPTIAN HIEROGLYPH T008A
+13312 ; [.4F8E.0020.0002] # EGYPTIAN HIEROGLYPH T009
+13313 ; [.4F8F.0020.0002] # EGYPTIAN HIEROGLYPH T009A
+13314 ; [.4F90.0020.0002] # EGYPTIAN HIEROGLYPH T010
+13315 ; [.4F91.0020.0002] # EGYPTIAN HIEROGLYPH T011
+13316 ; [.4F92.0020.0002] # EGYPTIAN HIEROGLYPH T011A
+13317 ; [.4F93.0020.0002] # EGYPTIAN HIEROGLYPH T012
+13318 ; [.4F94.0020.0002] # EGYPTIAN HIEROGLYPH T013
+13319 ; [.4F95.0020.0002] # EGYPTIAN HIEROGLYPH T014
+1331A ; [.4F96.0020.0002] # EGYPTIAN HIEROGLYPH T015
+1331B ; [.4F97.0020.0002] # EGYPTIAN HIEROGLYPH T016
+1331C ; [.4F98.0020.0002] # EGYPTIAN HIEROGLYPH T016A
+1331D ; [.4F99.0020.0002] # EGYPTIAN HIEROGLYPH T017
+1331E ; [.4F9A.0020.0002] # EGYPTIAN HIEROGLYPH T018
+1331F ; [.4F9B.0020.0002] # EGYPTIAN HIEROGLYPH T019
+13320 ; [.4F9C.0020.0002] # EGYPTIAN HIEROGLYPH T020
+13321 ; [.4F9D.0020.0002] # EGYPTIAN HIEROGLYPH T021
+13322 ; [.4F9E.0020.0002] # EGYPTIAN HIEROGLYPH T022
+13323 ; [.4F9F.0020.0002] # EGYPTIAN HIEROGLYPH T023
+13324 ; [.4FA0.0020.0002] # EGYPTIAN HIEROGLYPH T024
+13325 ; [.4FA1.0020.0002] # EGYPTIAN HIEROGLYPH T025
+13326 ; [.4FA2.0020.0002] # EGYPTIAN HIEROGLYPH T026
+13327 ; [.4FA3.0020.0002] # EGYPTIAN HIEROGLYPH T027
+13328 ; [.4FA4.0020.0002] # EGYPTIAN HIEROGLYPH T028
+13329 ; [.4FA5.0020.0002] # EGYPTIAN HIEROGLYPH T029
+1332A ; [.4FA6.0020.0002] # EGYPTIAN HIEROGLYPH T030
+1332B ; [.4FA7.0020.0002] # EGYPTIAN HIEROGLYPH T031
+1332C ; [.4FA8.0020.0002] # EGYPTIAN HIEROGLYPH T032
+1332D ; [.4FA9.0020.0002] # EGYPTIAN HIEROGLYPH T032A
+1332E ; [.4FAA.0020.0002] # EGYPTIAN HIEROGLYPH T033
+1332F ; [.4FAB.0020.0002] # EGYPTIAN HIEROGLYPH T033A
+13330 ; [.4FAC.0020.0002] # EGYPTIAN HIEROGLYPH T034
+13331 ; [.4FAD.0020.0002] # EGYPTIAN HIEROGLYPH T035
+13332 ; [.4FAE.0020.0002] # EGYPTIAN HIEROGLYPH T036
+13333 ; [.4FAF.0020.0002] # EGYPTIAN HIEROGLYPH U001
+13334 ; [.4FB0.0020.0002] # EGYPTIAN HIEROGLYPH U002
+13335 ; [.4FB1.0020.0002] # EGYPTIAN HIEROGLYPH U003
+13336 ; [.4FB2.0020.0002] # EGYPTIAN HIEROGLYPH U004
+13337 ; [.4FB3.0020.0002] # EGYPTIAN HIEROGLYPH U005
+13338 ; [.4FB4.0020.0002] # EGYPTIAN HIEROGLYPH U006
+13339 ; [.4FB5.0020.0002] # EGYPTIAN HIEROGLYPH U006A
+1333A ; [.4FB6.0020.0002] # EGYPTIAN HIEROGLYPH U006B
+1333B ; [.4FB7.0020.0002] # EGYPTIAN HIEROGLYPH U007
+1333C ; [.4FB8.0020.0002] # EGYPTIAN HIEROGLYPH U008
+1333D ; [.4FB9.0020.0002] # EGYPTIAN HIEROGLYPH U009
+1333E ; [.4FBA.0020.0002] # EGYPTIAN HIEROGLYPH U010
+1333F ; [.4FBB.0020.0002] # EGYPTIAN HIEROGLYPH U011
+13340 ; [.4FBC.0020.0002] # EGYPTIAN HIEROGLYPH U012
+13341 ; [.4FBD.0020.0002] # EGYPTIAN HIEROGLYPH U013
+13342 ; [.4FBE.0020.0002] # EGYPTIAN HIEROGLYPH U014
+13343 ; [.4FBF.0020.0002] # EGYPTIAN HIEROGLYPH U015
+13344 ; [.4FC0.0020.0002] # EGYPTIAN HIEROGLYPH U016
+13345 ; [.4FC1.0020.0002] # EGYPTIAN HIEROGLYPH U017
+13346 ; [.4FC2.0020.0002] # EGYPTIAN HIEROGLYPH U018
+13347 ; [.4FC3.0020.0002] # EGYPTIAN HIEROGLYPH U019
+13348 ; [.4FC4.0020.0002] # EGYPTIAN HIEROGLYPH U020
+13349 ; [.4FC5.0020.0002] # EGYPTIAN HIEROGLYPH U021
+1334A ; [.4FC6.0020.0002] # EGYPTIAN HIEROGLYPH U022
+1334B ; [.4FC7.0020.0002] # EGYPTIAN HIEROGLYPH U023
+1334C ; [.4FC8.0020.0002] # EGYPTIAN HIEROGLYPH U023A
+1334D ; [.4FC9.0020.0002] # EGYPTIAN HIEROGLYPH U024
+1334E ; [.4FCA.0020.0002] # EGYPTIAN HIEROGLYPH U025
+1334F ; [.4FCB.0020.0002] # EGYPTIAN HIEROGLYPH U026
+13350 ; [.4FCC.0020.0002] # EGYPTIAN HIEROGLYPH U027
+13351 ; [.4FCD.0020.0002] # EGYPTIAN HIEROGLYPH U028
+13352 ; [.4FCE.0020.0002] # EGYPTIAN HIEROGLYPH U029
+13353 ; [.4FCF.0020.0002] # EGYPTIAN HIEROGLYPH U029A
+13354 ; [.4FD0.0020.0002] # EGYPTIAN HIEROGLYPH U030
+13355 ; [.4FD1.0020.0002] # EGYPTIAN HIEROGLYPH U031
+13356 ; [.4FD2.0020.0002] # EGYPTIAN HIEROGLYPH U032
+13357 ; [.4FD3.0020.0002] # EGYPTIAN HIEROGLYPH U032A
+13358 ; [.4FD4.0020.0002] # EGYPTIAN HIEROGLYPH U033
+13359 ; [.4FD5.0020.0002] # EGYPTIAN HIEROGLYPH U034
+1335A ; [.4FD6.0020.0002] # EGYPTIAN HIEROGLYPH U035
+1335B ; [.4FD7.0020.0002] # EGYPTIAN HIEROGLYPH U036
+1335C ; [.4FD8.0020.0002] # EGYPTIAN HIEROGLYPH U037
+1335D ; [.4FD9.0020.0002] # EGYPTIAN HIEROGLYPH U038
+1335E ; [.4FDA.0020.0002] # EGYPTIAN HIEROGLYPH U039
+1335F ; [.4FDB.0020.0002] # EGYPTIAN HIEROGLYPH U040
+13360 ; [.4FDC.0020.0002] # EGYPTIAN HIEROGLYPH U041
+13361 ; [.4FDD.0020.0002] # EGYPTIAN HIEROGLYPH U042
+13362 ; [.4FDE.0020.0002] # EGYPTIAN HIEROGLYPH V001
+13363 ; [.4FDF.0020.0002] # EGYPTIAN HIEROGLYPH V001A
+13364 ; [.4FE0.0020.0002] # EGYPTIAN HIEROGLYPH V001B
+13365 ; [.4FE1.0020.0002] # EGYPTIAN HIEROGLYPH V001C
+13366 ; [.4FE2.0020.0002] # EGYPTIAN HIEROGLYPH V001D
+13367 ; [.4FE3.0020.0002] # EGYPTIAN HIEROGLYPH V001E
+13368 ; [.4FE4.0020.0002] # EGYPTIAN HIEROGLYPH V001F
+13369 ; [.4FE5.0020.0002] # EGYPTIAN HIEROGLYPH V001G
+1336A ; [.4FE6.0020.0002] # EGYPTIAN HIEROGLYPH V001H
+1336B ; [.4FE7.0020.0002] # EGYPTIAN HIEROGLYPH V001I
+1336C ; [.4FE8.0020.0002] # EGYPTIAN HIEROGLYPH V002
+1336D ; [.4FE9.0020.0002] # EGYPTIAN HIEROGLYPH V002A
+1336E ; [.4FEA.0020.0002] # EGYPTIAN HIEROGLYPH V003
+1336F ; [.4FEB.0020.0002] # EGYPTIAN HIEROGLYPH V004
+13370 ; [.4FEC.0020.0002] # EGYPTIAN HIEROGLYPH V005
+13371 ; [.4FED.0020.0002] # EGYPTIAN HIEROGLYPH V006
+13372 ; [.4FEE.0020.0002] # EGYPTIAN HIEROGLYPH V007
+13373 ; [.4FEF.0020.0002] # EGYPTIAN HIEROGLYPH V007A
+13374 ; [.4FF0.0020.0002] # EGYPTIAN HIEROGLYPH V007B
+13375 ; [.4FF1.0020.0002] # EGYPTIAN HIEROGLYPH V008
+13376 ; [.4FF2.0020.0002] # EGYPTIAN HIEROGLYPH V009
+13377 ; [.4FF3.0020.0002] # EGYPTIAN HIEROGLYPH V010
+13378 ; [.4FF4.0020.0002] # EGYPTIAN HIEROGLYPH V011
+13379 ; [.4FF5.0020.0002] # EGYPTIAN HIEROGLYPH V011A
+1337A ; [.4FF6.0020.0002] # EGYPTIAN HIEROGLYPH V011B
+1337B ; [.4FF7.0020.0002] # EGYPTIAN HIEROGLYPH V011C
+1337C ; [.4FF8.0020.0002] # EGYPTIAN HIEROGLYPH V012
+1337D ; [.4FF9.0020.0002] # EGYPTIAN HIEROGLYPH V012A
+1337E ; [.4FFA.0020.0002] # EGYPTIAN HIEROGLYPH V012B
+1337F ; [.4FFB.0020.0002] # EGYPTIAN HIEROGLYPH V013
+13380 ; [.4FFC.0020.0002] # EGYPTIAN HIEROGLYPH V014
+13381 ; [.4FFD.0020.0002] # EGYPTIAN HIEROGLYPH V015
+13382 ; [.4FFE.0020.0002] # EGYPTIAN HIEROGLYPH V016
+13383 ; [.4FFF.0020.0002] # EGYPTIAN HIEROGLYPH V017
+13384 ; [.5000.0020.0002] # EGYPTIAN HIEROGLYPH V018
+13385 ; [.5001.0020.0002] # EGYPTIAN HIEROGLYPH V019
+13386 ; [.5002.0020.0002] # EGYPTIAN HIEROGLYPH V020
+13387 ; [.5003.0020.0002] # EGYPTIAN HIEROGLYPH V020A
+13388 ; [.5004.0020.0002] # EGYPTIAN HIEROGLYPH V020B
+13389 ; [.5005.0020.0002] # EGYPTIAN HIEROGLYPH V020C
+1338A ; [.5006.0020.0002] # EGYPTIAN HIEROGLYPH V020D
+1338B ; [.5007.0020.0002] # EGYPTIAN HIEROGLYPH V020E
+1338C ; [.5008.0020.0002] # EGYPTIAN HIEROGLYPH V020F
+1338D ; [.5009.0020.0002] # EGYPTIAN HIEROGLYPH V020G
+1338E ; [.500A.0020.0002] # EGYPTIAN HIEROGLYPH V020H
+1338F ; [.500B.0020.0002] # EGYPTIAN HIEROGLYPH V020I
+13390 ; [.500C.0020.0002] # EGYPTIAN HIEROGLYPH V020J
+13391 ; [.500D.0020.0002] # EGYPTIAN HIEROGLYPH V020K
+13392 ; [.500E.0020.0002] # EGYPTIAN HIEROGLYPH V020L
+13393 ; [.500F.0020.0002] # EGYPTIAN HIEROGLYPH V021
+13394 ; [.5010.0020.0002] # EGYPTIAN HIEROGLYPH V022
+13395 ; [.5011.0020.0002] # EGYPTIAN HIEROGLYPH V023
+13396 ; [.5012.0020.0002] # EGYPTIAN HIEROGLYPH V023A
+13397 ; [.5013.0020.0002] # EGYPTIAN HIEROGLYPH V024
+13398 ; [.5014.0020.0002] # EGYPTIAN HIEROGLYPH V025
+13399 ; [.5015.0020.0002] # EGYPTIAN HIEROGLYPH V026
+1339A ; [.5016.0020.0002] # EGYPTIAN HIEROGLYPH V027
+1339B ; [.5017.0020.0002] # EGYPTIAN HIEROGLYPH V028
+1339C ; [.5018.0020.0002] # EGYPTIAN HIEROGLYPH V028A
+1339D ; [.5019.0020.0002] # EGYPTIAN HIEROGLYPH V029
+1339E ; [.501A.0020.0002] # EGYPTIAN HIEROGLYPH V029A
+1339F ; [.501B.0020.0002] # EGYPTIAN HIEROGLYPH V030
+133A0 ; [.501C.0020.0002] # EGYPTIAN HIEROGLYPH V030A
+133A1 ; [.501D.0020.0002] # EGYPTIAN HIEROGLYPH V031
+133A2 ; [.501E.0020.0002] # EGYPTIAN HIEROGLYPH V031A
+133A3 ; [.501F.0020.0002] # EGYPTIAN HIEROGLYPH V032
+133A4 ; [.5020.0020.0002] # EGYPTIAN HIEROGLYPH V033
+133A5 ; [.5021.0020.0002] # EGYPTIAN HIEROGLYPH V033A
+133A6 ; [.5022.0020.0002] # EGYPTIAN HIEROGLYPH V034
+133A7 ; [.5023.0020.0002] # EGYPTIAN HIEROGLYPH V035
+133A8 ; [.5024.0020.0002] # EGYPTIAN HIEROGLYPH V036
+133A9 ; [.5025.0020.0002] # EGYPTIAN HIEROGLYPH V037
+133AA ; [.5026.0020.0002] # EGYPTIAN HIEROGLYPH V037A
+133AB ; [.5027.0020.0002] # EGYPTIAN HIEROGLYPH V038
+133AC ; [.5028.0020.0002] # EGYPTIAN HIEROGLYPH V039
+133AD ; [.5029.0020.0002] # EGYPTIAN HIEROGLYPH V040
+133AE ; [.502A.0020.0002] # EGYPTIAN HIEROGLYPH V040A
+133AF ; [.502B.0020.0002] # EGYPTIAN HIEROGLYPH W001
+133B0 ; [.502C.0020.0002] # EGYPTIAN HIEROGLYPH W002
+133B1 ; [.502D.0020.0002] # EGYPTIAN HIEROGLYPH W003
+133B2 ; [.502E.0020.0002] # EGYPTIAN HIEROGLYPH W003A
+133B3 ; [.502F.0020.0002] # EGYPTIAN HIEROGLYPH W004
+133B4 ; [.5030.0020.0002] # EGYPTIAN HIEROGLYPH W005
+133B5 ; [.5031.0020.0002] # EGYPTIAN HIEROGLYPH W006
+133B6 ; [.5032.0020.0002] # EGYPTIAN HIEROGLYPH W007
+133B7 ; [.5033.0020.0002] # EGYPTIAN HIEROGLYPH W008
+133B8 ; [.5034.0020.0002] # EGYPTIAN HIEROGLYPH W009
+133B9 ; [.5035.0020.0002] # EGYPTIAN HIEROGLYPH W009A
+133BA ; [.5036.0020.0002] # EGYPTIAN HIEROGLYPH W010
+133BB ; [.5037.0020.0002] # EGYPTIAN HIEROGLYPH W010A
+133BC ; [.5038.0020.0002] # EGYPTIAN HIEROGLYPH W011
+133BD ; [.5039.0020.0002] # EGYPTIAN HIEROGLYPH W012
+133BE ; [.503A.0020.0002] # EGYPTIAN HIEROGLYPH W013
+133BF ; [.503B.0020.0002] # EGYPTIAN HIEROGLYPH W014
+133C0 ; [.503C.0020.0002] # EGYPTIAN HIEROGLYPH W014A
+133C1 ; [.503D.0020.0002] # EGYPTIAN HIEROGLYPH W015
+133C2 ; [.503E.0020.0002] # EGYPTIAN HIEROGLYPH W016
+133C3 ; [.503F.0020.0002] # EGYPTIAN HIEROGLYPH W017
+133C4 ; [.5040.0020.0002] # EGYPTIAN HIEROGLYPH W017A
+133C5 ; [.5041.0020.0002] # EGYPTIAN HIEROGLYPH W018
+133C6 ; [.5042.0020.0002] # EGYPTIAN HIEROGLYPH W018A
+133C7 ; [.5043.0020.0002] # EGYPTIAN HIEROGLYPH W019
+133C8 ; [.5044.0020.0002] # EGYPTIAN HIEROGLYPH W020
+133C9 ; [.5045.0020.0002] # EGYPTIAN HIEROGLYPH W021
+133CA ; [.5046.0020.0002] # EGYPTIAN HIEROGLYPH W022
+133CB ; [.5047.0020.0002] # EGYPTIAN HIEROGLYPH W023
+133CC ; [.5048.0020.0002] # EGYPTIAN HIEROGLYPH W024
+133CD ; [.5049.0020.0002] # EGYPTIAN HIEROGLYPH W024A
+133CE ; [.504A.0020.0002] # EGYPTIAN HIEROGLYPH W025
+133CF ; [.504B.0020.0002] # EGYPTIAN HIEROGLYPH X001
+133D0 ; [.504C.0020.0002] # EGYPTIAN HIEROGLYPH X002
+133D1 ; [.504D.0020.0002] # EGYPTIAN HIEROGLYPH X003
+133D2 ; [.504E.0020.0002] # EGYPTIAN HIEROGLYPH X004
+133D3 ; [.504F.0020.0002] # EGYPTIAN HIEROGLYPH X004A
+133D4 ; [.5050.0020.0002] # EGYPTIAN HIEROGLYPH X004B
+133D5 ; [.5051.0020.0002] # EGYPTIAN HIEROGLYPH X005
+133D6 ; [.5052.0020.0002] # EGYPTIAN HIEROGLYPH X006
+133D7 ; [.5053.0020.0002] # EGYPTIAN HIEROGLYPH X006A
+133D8 ; [.5054.0020.0002] # EGYPTIAN HIEROGLYPH X007
+133D9 ; [.5055.0020.0002] # EGYPTIAN HIEROGLYPH X008
+133DA ; [.5056.0020.0002] # EGYPTIAN HIEROGLYPH X008A
+133DB ; [.5057.0020.0002] # EGYPTIAN HIEROGLYPH Y001
+133DC ; [.5058.0020.0002] # EGYPTIAN HIEROGLYPH Y001A
+133DD ; [.5059.0020.0002] # EGYPTIAN HIEROGLYPH Y002
+133DE ; [.505A.0020.0002] # EGYPTIAN HIEROGLYPH Y003
+133DF ; [.505B.0020.0002] # EGYPTIAN HIEROGLYPH Y004
+133E0 ; [.505C.0020.0002] # EGYPTIAN HIEROGLYPH Y005
+133E1 ; [.505D.0020.0002] # EGYPTIAN HIEROGLYPH Y006
+133E2 ; [.505E.0020.0002] # EGYPTIAN HIEROGLYPH Y007
+133E3 ; [.505F.0020.0002] # EGYPTIAN HIEROGLYPH Y008
+133E4 ; [.5060.0020.0002] # EGYPTIAN HIEROGLYPH Z001
+133E5 ; [.5061.0020.0002] # EGYPTIAN HIEROGLYPH Z002
+133E6 ; [.5062.0020.0002] # EGYPTIAN HIEROGLYPH Z002A
+133E7 ; [.5063.0020.0002] # EGYPTIAN HIEROGLYPH Z002B
+133E8 ; [.5064.0020.0002] # EGYPTIAN HIEROGLYPH Z002C
+133E9 ; [.5065.0020.0002] # EGYPTIAN HIEROGLYPH Z002D
+133EA ; [.5066.0020.0002] # EGYPTIAN HIEROGLYPH Z003
+133EB ; [.5067.0020.0002] # EGYPTIAN HIEROGLYPH Z003A
+133EC ; [.5068.0020.0002] # EGYPTIAN HIEROGLYPH Z003B
+133ED ; [.5069.0020.0002] # EGYPTIAN HIEROGLYPH Z004
+133EE ; [.506A.0020.0002] # EGYPTIAN HIEROGLYPH Z004A
+133EF ; [.506B.0020.0002] # EGYPTIAN HIEROGLYPH Z005
+133F0 ; [.506C.0020.0002] # EGYPTIAN HIEROGLYPH Z005A
+133F1 ; [.506D.0020.0002] # EGYPTIAN HIEROGLYPH Z006
+133F2 ; [.506E.0020.0002] # EGYPTIAN HIEROGLYPH Z007
+133F3 ; [.506F.0020.0002] # EGYPTIAN HIEROGLYPH Z008
+133F4 ; [.5070.0020.0002] # EGYPTIAN HIEROGLYPH Z009
+133F5 ; [.5071.0020.0002] # EGYPTIAN HIEROGLYPH Z010
+133F6 ; [.5072.0020.0002] # EGYPTIAN HIEROGLYPH Z011
+133F7 ; [.5073.0020.0002] # EGYPTIAN HIEROGLYPH Z012
+133F8 ; [.5074.0020.0002] # EGYPTIAN HIEROGLYPH Z013
+133F9 ; [.5075.0020.0002] # EGYPTIAN HIEROGLYPH Z014
+133FA ; [.5076.0020.0002] # EGYPTIAN HIEROGLYPH Z015
+133FB ; [.5077.0020.0002] # EGYPTIAN HIEROGLYPH Z015A
+133FC ; [.5078.0020.0002] # EGYPTIAN HIEROGLYPH Z015B
+133FD ; [.5079.0020.0002] # EGYPTIAN HIEROGLYPH Z015C
+133FE ; [.507A.0020.0002] # EGYPTIAN HIEROGLYPH Z015D
+133FF ; [.507B.0020.0002] # EGYPTIAN HIEROGLYPH Z015E
+13400 ; [.507C.0020.0002] # EGYPTIAN HIEROGLYPH Z015F
+13401 ; [.507D.0020.0002] # EGYPTIAN HIEROGLYPH Z015G
+13402 ; [.507E.0020.0002] # EGYPTIAN HIEROGLYPH Z015H
+13403 ; [.507F.0020.0002] # EGYPTIAN HIEROGLYPH Z015I
+13404 ; [.5080.0020.0002] # EGYPTIAN HIEROGLYPH Z016
+13405 ; [.5081.0020.0002] # EGYPTIAN HIEROGLYPH Z016A
+13406 ; [.5082.0020.0002] # EGYPTIAN HIEROGLYPH Z016B
+13407 ; [.5083.0020.0002] # EGYPTIAN HIEROGLYPH Z016C
+13408 ; [.5084.0020.0002] # EGYPTIAN HIEROGLYPH Z016D
+13409 ; [.5085.0020.0002] # EGYPTIAN HIEROGLYPH Z016E
+1340A ; [.5086.0020.0002] # EGYPTIAN HIEROGLYPH Z016F
+1340B ; [.5087.0020.0002] # EGYPTIAN HIEROGLYPH Z016G
+1340C ; [.5088.0020.0002] # EGYPTIAN HIEROGLYPH Z016H
+1340D ; [.5089.0020.0002] # EGYPTIAN HIEROGLYPH AA001
+1340E ; [.508A.0020.0002] # EGYPTIAN HIEROGLYPH AA002
+1340F ; [.508B.0020.0002] # EGYPTIAN HIEROGLYPH AA003
+13410 ; [.508C.0020.0002] # EGYPTIAN HIEROGLYPH AA004
+13411 ; [.508D.0020.0002] # EGYPTIAN HIEROGLYPH AA005
+13412 ; [.508E.0020.0002] # EGYPTIAN HIEROGLYPH AA006
+13413 ; [.508F.0020.0002] # EGYPTIAN HIEROGLYPH AA007
+13414 ; [.5090.0020.0002] # EGYPTIAN HIEROGLYPH AA007A
+13415 ; [.5091.0020.0002] # EGYPTIAN HIEROGLYPH AA007B
+13416 ; [.5092.0020.0002] # EGYPTIAN HIEROGLYPH AA008
+13417 ; [.5093.0020.0002] # EGYPTIAN HIEROGLYPH AA009
+13418 ; [.5094.0020.0002] # EGYPTIAN HIEROGLYPH AA010
+13419 ; [.5095.0020.0002] # EGYPTIAN HIEROGLYPH AA011
+1341A ; [.5096.0020.0002] # EGYPTIAN HIEROGLYPH AA012
+1341B ; [.5097.0020.0002] # EGYPTIAN HIEROGLYPH AA013
+1341C ; [.5098.0020.0002] # EGYPTIAN HIEROGLYPH AA014
+1341D ; [.5099.0020.0002] # EGYPTIAN HIEROGLYPH AA015
+1341E ; [.509A.0020.0002] # EGYPTIAN HIEROGLYPH AA016
+1341F ; [.509B.0020.0002] # EGYPTIAN HIEROGLYPH AA017
+13420 ; [.509C.0020.0002] # EGYPTIAN HIEROGLYPH AA018
+13421 ; [.509D.0020.0002] # EGYPTIAN HIEROGLYPH AA019
+13422 ; [.509E.0020.0002] # EGYPTIAN HIEROGLYPH AA020
+13423 ; [.509F.0020.0002] # EGYPTIAN HIEROGLYPH AA021
+13424 ; [.50A0.0020.0002] # EGYPTIAN HIEROGLYPH AA022
+13425 ; [.50A1.0020.0002] # EGYPTIAN HIEROGLYPH AA023
+13426 ; [.50A2.0020.0002] # EGYPTIAN HIEROGLYPH AA024
+13427 ; [.50A3.0020.0002] # EGYPTIAN HIEROGLYPH AA025
+13428 ; [.50A4.0020.0002] # EGYPTIAN HIEROGLYPH AA026
+13429 ; [.50A5.0020.0002] # EGYPTIAN HIEROGLYPH AA027
+1342A ; [.50A6.0020.0002] # EGYPTIAN HIEROGLYPH AA028
+1342B ; [.50A7.0020.0002] # EGYPTIAN HIEROGLYPH AA029
+1342C ; [.50A8.0020.0002] # EGYPTIAN HIEROGLYPH AA030
+1342D ; [.50A9.0020.0002] # EGYPTIAN HIEROGLYPH AA031
+1342E ; [.50AA.0020.0002] # EGYPTIAN HIEROGLYPH AA032
+109A0 ; [.50AB.0020.0002] # MEROITIC CURSIVE LETTER A
+10980 ; [.50AB.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER A
+109A1 ; [.50AC.0020.0002] # MEROITIC CURSIVE LETTER E
+10981 ; [.50AC.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER E
+109A2 ; [.50AD.0020.0002] # MEROITIC CURSIVE LETTER I
+10982 ; [.50AD.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER I
+109A3 ; [.50AE.0020.0002] # MEROITIC CURSIVE LETTER O
+10983 ; [.50AE.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER O
+109A4 ; [.50AF.0020.0002] # MEROITIC CURSIVE LETTER YA
+10984 ; [.50AF.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER YA
+109A5 ; [.50B0.0020.0002] # MEROITIC CURSIVE LETTER WA
+10985 ; [.50B0.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER WA
+109A6 ; [.50B1.0020.0002] # MEROITIC CURSIVE LETTER BA
+10986 ; [.50B1.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER BA
+10987 ; [.50B1.0020.0004][.0000.010C.0004] # MEROITIC HIEROGLYPHIC LETTER BA-2
+109A7 ; [.50B2.0020.0002] # MEROITIC CURSIVE LETTER PA
+10988 ; [.50B2.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER PA
+109A8 ; [.50B3.0020.0002] # MEROITIC CURSIVE LETTER MA
+10989 ; [.50B3.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER MA
+109A9 ; [.50B4.0020.0002] # MEROITIC CURSIVE LETTER NA
+1098A ; [.50B4.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER NA
+1098B ; [.50B4.0020.0004][.0000.010C.0004] # MEROITIC HIEROGLYPHIC LETTER NA-2
+109AA ; [.50B5.0020.0002] # MEROITIC CURSIVE LETTER NE
+1098C ; [.50B5.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER NE
+1098D ; [.50B5.0020.0004][.0000.010C.0004] # MEROITIC HIEROGLYPHIC LETTER NE-2
+109AB ; [.50B6.0020.0002] # MEROITIC CURSIVE LETTER RA
+1098E ; [.50B6.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER RA
+1098F ; [.50B6.0020.0004][.0000.010C.0004] # MEROITIC HIEROGLYPHIC LETTER RA-2
+109AC ; [.50B7.0020.0002] # MEROITIC CURSIVE LETTER LA
+10990 ; [.50B7.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER LA
+109AD ; [.50B8.0020.0002] # MEROITIC CURSIVE LETTER KHA
+10991 ; [.50B8.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER KHA
+109AE ; [.50B9.0020.0002] # MEROITIC CURSIVE LETTER HHA
+10992 ; [.50B9.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER HHA
+109AF ; [.50BA.0020.0002] # MEROITIC CURSIVE LETTER SA
+109B0 ; [.50BA.0020.0004][.0000.010B.0004] # MEROITIC CURSIVE LETTER ARCHAIC SA
+10993 ; [.50BA.0020.0004][.0000.010C.0004] # MEROITIC HIEROGLYPHIC LETTER SA
+10994 ; [.50BA.0020.0004][.0000.010D.0004] # MEROITIC HIEROGLYPHIC LETTER SA-2
+109B1 ; [.50BB.0020.0002] # MEROITIC CURSIVE LETTER SE
+10995 ; [.50BB.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER SE
+109B2 ; [.50BC.0020.0002] # MEROITIC CURSIVE LETTER KA
+10996 ; [.50BC.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER KA
+109B3 ; [.50BD.0020.0002] # MEROITIC CURSIVE LETTER QA
+10997 ; [.50BD.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER QA
+109B4 ; [.50BE.0020.0002] # MEROITIC CURSIVE LETTER TA
+10998 ; [.50BE.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER TA
+10999 ; [.50BE.0020.0004][.0000.010C.0004] # MEROITIC HIEROGLYPHIC LETTER TA-2
+109B5 ; [.50BF.0020.0002] # MEROITIC CURSIVE LETTER TE
+1099A ; [.50BF.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER TE
+1099B ; [.50BF.0020.0004][.0000.010C.0004] # MEROITIC HIEROGLYPHIC LETTER TE-2
+109B6 ; [.50C0.0020.0002] # MEROITIC CURSIVE LETTER TO
+1099C ; [.50C0.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER TO
+109B7 ; [.50C1.0020.0002] # MEROITIC CURSIVE LETTER DA
+1099D ; [.50C1.0020.0004][.0000.010B.0004] # MEROITIC HIEROGLYPHIC LETTER DA
+109BE ; [.50C2.0020.0002] # MEROITIC CURSIVE LOGOGRAM RMT
+109BF ; [.50C3.0020.0002] # MEROITIC CURSIVE LOGOGRAM IMN
+1099E ; [.50C4.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ
+1099F ; [.50C5.0020.0002] # MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+14400 ; [.50C6.0020.0002] # ANATOLIAN HIEROGLYPH A001
+14401 ; [.50C7.0020.0002] # ANATOLIAN HIEROGLYPH A002
+14402 ; [.50C8.0020.0002] # ANATOLIAN HIEROGLYPH A003
+14403 ; [.50C9.0020.0002] # ANATOLIAN HIEROGLYPH A004
+14404 ; [.50CA.0020.0002] # ANATOLIAN HIEROGLYPH A005
+14405 ; [.50CB.0020.0002] # ANATOLIAN HIEROGLYPH A006
+14406 ; [.50CC.0020.0002] # ANATOLIAN HIEROGLYPH A007
+14407 ; [.50CD.0020.0002] # ANATOLIAN HIEROGLYPH A008
+14408 ; [.50CE.0020.0002] # ANATOLIAN HIEROGLYPH A009
+14409 ; [.50CF.0020.0002] # ANATOLIAN HIEROGLYPH A010
+1440A ; [.50D0.0020.0002] # ANATOLIAN HIEROGLYPH A010A
+1440B ; [.50D1.0020.0002] # ANATOLIAN HIEROGLYPH A011
+1440C ; [.50D2.0020.0002] # ANATOLIAN HIEROGLYPH A012
+1440D ; [.50D3.0020.0002] # ANATOLIAN HIEROGLYPH A013
+1440E ; [.50D4.0020.0002] # ANATOLIAN HIEROGLYPH A014
+1440F ; [.50D5.0020.0002] # ANATOLIAN HIEROGLYPH A015
+14410 ; [.50D6.0020.0002] # ANATOLIAN HIEROGLYPH A016
+14411 ; [.50D7.0020.0002] # ANATOLIAN HIEROGLYPH A017
+14412 ; [.50D8.0020.0002] # ANATOLIAN HIEROGLYPH A018
+14413 ; [.50D9.0020.0002] # ANATOLIAN HIEROGLYPH A019
+14414 ; [.50DA.0020.0002] # ANATOLIAN HIEROGLYPH A020
+14415 ; [.50DB.0020.0002] # ANATOLIAN HIEROGLYPH A021
+14416 ; [.50DC.0020.0002] # ANATOLIAN HIEROGLYPH A022
+14417 ; [.50DD.0020.0002] # ANATOLIAN HIEROGLYPH A023
+14418 ; [.50DE.0020.0002] # ANATOLIAN HIEROGLYPH A024
+14419 ; [.50DF.0020.0002] # ANATOLIAN HIEROGLYPH A025
+1441A ; [.50E0.0020.0002] # ANATOLIAN HIEROGLYPH A026
+1441B ; [.50E1.0020.0002] # ANATOLIAN HIEROGLYPH A026A
+1441C ; [.50E2.0020.0002] # ANATOLIAN HIEROGLYPH A027
+1441D ; [.50E3.0020.0002] # ANATOLIAN HIEROGLYPH A028
+1441E ; [.50E4.0020.0002] # ANATOLIAN HIEROGLYPH A029
+1441F ; [.50E5.0020.0002] # ANATOLIAN HIEROGLYPH A030
+14420 ; [.50E6.0020.0002] # ANATOLIAN HIEROGLYPH A031
+14421 ; [.50E7.0020.0002] # ANATOLIAN HIEROGLYPH A032
+14422 ; [.50E8.0020.0002] # ANATOLIAN HIEROGLYPH A033
+14423 ; [.50E9.0020.0002] # ANATOLIAN HIEROGLYPH A034
+14424 ; [.50EA.0020.0002] # ANATOLIAN HIEROGLYPH A035
+14425 ; [.50EB.0020.0002] # ANATOLIAN HIEROGLYPH A036
+14426 ; [.50EC.0020.0002] # ANATOLIAN HIEROGLYPH A037
+14427 ; [.50ED.0020.0002] # ANATOLIAN HIEROGLYPH A038
+14428 ; [.50EE.0020.0002] # ANATOLIAN HIEROGLYPH A039
+14429 ; [.50EF.0020.0002] # ANATOLIAN HIEROGLYPH A039A
+1442A ; [.50F0.0020.0002] # ANATOLIAN HIEROGLYPH A040
+1442B ; [.50F1.0020.0002] # ANATOLIAN HIEROGLYPH A041
+1442C ; [.50F2.0020.0002] # ANATOLIAN HIEROGLYPH A041A
+1442D ; [.50F3.0020.0002] # ANATOLIAN HIEROGLYPH A042
+1442E ; [.50F4.0020.0002] # ANATOLIAN HIEROGLYPH A043
+1442F ; [.50F5.0020.0002] # ANATOLIAN HIEROGLYPH A044
+14430 ; [.50F6.0020.0002] # ANATOLIAN HIEROGLYPH A045
+14431 ; [.50F7.0020.0002] # ANATOLIAN HIEROGLYPH A045A
+14432 ; [.50F8.0020.0002] # ANATOLIAN HIEROGLYPH A046
+14433 ; [.50F9.0020.0002] # ANATOLIAN HIEROGLYPH A046A
+14434 ; [.50FA.0020.0002] # ANATOLIAN HIEROGLYPH A046B
+14435 ; [.50FB.0020.0002] # ANATOLIAN HIEROGLYPH A047
+14436 ; [.50FC.0020.0002] # ANATOLIAN HIEROGLYPH A048
+14437 ; [.50FD.0020.0002] # ANATOLIAN HIEROGLYPH A049
+14438 ; [.50FE.0020.0002] # ANATOLIAN HIEROGLYPH A050
+14439 ; [.50FF.0020.0002] # ANATOLIAN HIEROGLYPH A051
+1443A ; [.5100.0020.0002] # ANATOLIAN HIEROGLYPH A052
+1443B ; [.5101.0020.0002] # ANATOLIAN HIEROGLYPH A053
+1443C ; [.5102.0020.0002] # ANATOLIAN HIEROGLYPH A054
+1443D ; [.5103.0020.0002] # ANATOLIAN HIEROGLYPH A055
+1443E ; [.5104.0020.0002] # ANATOLIAN HIEROGLYPH A056
+1443F ; [.5105.0020.0002] # ANATOLIAN HIEROGLYPH A057
+14440 ; [.5106.0020.0002] # ANATOLIAN HIEROGLYPH A058
+14441 ; [.5107.0020.0002] # ANATOLIAN HIEROGLYPH A059
+14442 ; [.5108.0020.0002] # ANATOLIAN HIEROGLYPH A060
+14443 ; [.5109.0020.0002] # ANATOLIAN HIEROGLYPH A061
+14444 ; [.510A.0020.0002] # ANATOLIAN HIEROGLYPH A062
+14445 ; [.510B.0020.0002] # ANATOLIAN HIEROGLYPH A063
+14446 ; [.510C.0020.0002] # ANATOLIAN HIEROGLYPH A064
+14447 ; [.510D.0020.0002] # ANATOLIAN HIEROGLYPH A065
+14448 ; [.510E.0020.0002] # ANATOLIAN HIEROGLYPH A066
+14449 ; [.510F.0020.0002] # ANATOLIAN HIEROGLYPH A066A
+1444A ; [.5110.0020.0002] # ANATOLIAN HIEROGLYPH A066B
+1444B ; [.5111.0020.0002] # ANATOLIAN HIEROGLYPH A066C
+1444C ; [.5112.0020.0002] # ANATOLIAN HIEROGLYPH A067
+1444D ; [.5113.0020.0002] # ANATOLIAN HIEROGLYPH A068
+1444E ; [.5114.0020.0002] # ANATOLIAN HIEROGLYPH A069
+1444F ; [.5115.0020.0002] # ANATOLIAN HIEROGLYPH A070
+14450 ; [.5116.0020.0002] # ANATOLIAN HIEROGLYPH A071
+14451 ; [.5117.0020.0002] # ANATOLIAN HIEROGLYPH A072
+14452 ; [.5118.0020.0002] # ANATOLIAN HIEROGLYPH A073
+14453 ; [.5119.0020.0002] # ANATOLIAN HIEROGLYPH A074
+14454 ; [.511A.0020.0002] # ANATOLIAN HIEROGLYPH A075
+14455 ; [.511B.0020.0002] # ANATOLIAN HIEROGLYPH A076
+14456 ; [.511C.0020.0002] # ANATOLIAN HIEROGLYPH A077
+14457 ; [.511D.0020.0002] # ANATOLIAN HIEROGLYPH A078
+14458 ; [.511E.0020.0002] # ANATOLIAN HIEROGLYPH A079
+14459 ; [.511F.0020.0002] # ANATOLIAN HIEROGLYPH A080
+1445A ; [.5120.0020.0002] # ANATOLIAN HIEROGLYPH A081
+1445B ; [.5121.0020.0002] # ANATOLIAN HIEROGLYPH A082
+1445C ; [.5122.0020.0002] # ANATOLIAN HIEROGLYPH A083
+1445D ; [.5123.0020.0002] # ANATOLIAN HIEROGLYPH A084
+1445E ; [.5124.0020.0002] # ANATOLIAN HIEROGLYPH A085
+1445F ; [.5125.0020.0002] # ANATOLIAN HIEROGLYPH A086
+14460 ; [.5126.0020.0002] # ANATOLIAN HIEROGLYPH A087
+14461 ; [.5127.0020.0002] # ANATOLIAN HIEROGLYPH A088
+14462 ; [.5128.0020.0002] # ANATOLIAN HIEROGLYPH A089
+14463 ; [.5129.0020.0002] # ANATOLIAN HIEROGLYPH A090
+14464 ; [.512A.0020.0002] # ANATOLIAN HIEROGLYPH A091
+14465 ; [.512B.0020.0002] # ANATOLIAN HIEROGLYPH A092
+14466 ; [.512C.0020.0002] # ANATOLIAN HIEROGLYPH A093
+14467 ; [.512D.0020.0002] # ANATOLIAN HIEROGLYPH A094
+14468 ; [.512E.0020.0002] # ANATOLIAN HIEROGLYPH A095
+14469 ; [.512F.0020.0002] # ANATOLIAN HIEROGLYPH A096
+1446A ; [.5130.0020.0002] # ANATOLIAN HIEROGLYPH A097
+1446B ; [.5131.0020.0002] # ANATOLIAN HIEROGLYPH A097A
+1446C ; [.5132.0020.0002] # ANATOLIAN HIEROGLYPH A098
+1446D ; [.5133.0020.0002] # ANATOLIAN HIEROGLYPH A098A
+1446E ; [.5134.0020.0002] # ANATOLIAN HIEROGLYPH A099
+1446F ; [.5135.0020.0002] # ANATOLIAN HIEROGLYPH A100
+14470 ; [.5136.0020.0002] # ANATOLIAN HIEROGLYPH A100A
+14471 ; [.5137.0020.0002] # ANATOLIAN HIEROGLYPH A101
+14472 ; [.5138.0020.0002] # ANATOLIAN HIEROGLYPH A101A
+14473 ; [.5139.0020.0002] # ANATOLIAN HIEROGLYPH A102
+14474 ; [.513A.0020.0002] # ANATOLIAN HIEROGLYPH A102A
+14475 ; [.513B.0020.0002] # ANATOLIAN HIEROGLYPH A103
+14476 ; [.513C.0020.0002] # ANATOLIAN HIEROGLYPH A104
+14477 ; [.513D.0020.0002] # ANATOLIAN HIEROGLYPH A104A
+14478 ; [.513E.0020.0002] # ANATOLIAN HIEROGLYPH A104B
+14479 ; [.513F.0020.0002] # ANATOLIAN HIEROGLYPH A104C
+1447A ; [.5140.0020.0002] # ANATOLIAN HIEROGLYPH A105
+1447B ; [.5141.0020.0002] # ANATOLIAN HIEROGLYPH A105A
+1447C ; [.5142.0020.0002] # ANATOLIAN HIEROGLYPH A105B
+1447D ; [.5143.0020.0002] # ANATOLIAN HIEROGLYPH A106
+1447E ; [.5144.0020.0002] # ANATOLIAN HIEROGLYPH A107
+1447F ; [.5145.0020.0002] # ANATOLIAN HIEROGLYPH A107A
+14480 ; [.5146.0020.0002] # ANATOLIAN HIEROGLYPH A107B
+14481 ; [.5147.0020.0002] # ANATOLIAN HIEROGLYPH A107C
+14482 ; [.5148.0020.0002] # ANATOLIAN HIEROGLYPH A108
+14483 ; [.5149.0020.0002] # ANATOLIAN HIEROGLYPH A109
+14484 ; [.514A.0020.0002] # ANATOLIAN HIEROGLYPH A110
+14485 ; [.514B.0020.0002] # ANATOLIAN HIEROGLYPH A110A
+14486 ; [.514C.0020.0002] # ANATOLIAN HIEROGLYPH A110B
+14487 ; [.514D.0020.0002] # ANATOLIAN HIEROGLYPH A111
+14488 ; [.514E.0020.0002] # ANATOLIAN HIEROGLYPH A112
+14489 ; [.514F.0020.0002] # ANATOLIAN HIEROGLYPH A113
+1448A ; [.5150.0020.0002] # ANATOLIAN HIEROGLYPH A114
+1448B ; [.5151.0020.0002] # ANATOLIAN HIEROGLYPH A115
+1448C ; [.5152.0020.0002] # ANATOLIAN HIEROGLYPH A115A
+1448D ; [.5153.0020.0002] # ANATOLIAN HIEROGLYPH A116
+1448E ; [.5154.0020.0002] # ANATOLIAN HIEROGLYPH A117
+1448F ; [.5155.0020.0002] # ANATOLIAN HIEROGLYPH A118
+14490 ; [.5156.0020.0002] # ANATOLIAN HIEROGLYPH A119
+14491 ; [.5157.0020.0002] # ANATOLIAN HIEROGLYPH A120
+14492 ; [.5158.0020.0002] # ANATOLIAN HIEROGLYPH A121
+14493 ; [.5159.0020.0002] # ANATOLIAN HIEROGLYPH A122
+14494 ; [.515A.0020.0002] # ANATOLIAN HIEROGLYPH A123
+14495 ; [.515B.0020.0002] # ANATOLIAN HIEROGLYPH A124
+14496 ; [.515C.0020.0002] # ANATOLIAN HIEROGLYPH A125
+14497 ; [.515D.0020.0002] # ANATOLIAN HIEROGLYPH A125A
+14498 ; [.515E.0020.0002] # ANATOLIAN HIEROGLYPH A126
+14499 ; [.515F.0020.0002] # ANATOLIAN HIEROGLYPH A127
+1449A ; [.5160.0020.0002] # ANATOLIAN HIEROGLYPH A128
+1449B ; [.5161.0020.0002] # ANATOLIAN HIEROGLYPH A129
+1449C ; [.5162.0020.0002] # ANATOLIAN HIEROGLYPH A130
+1449D ; [.5163.0020.0002] # ANATOLIAN HIEROGLYPH A131
+1449E ; [.5164.0020.0002] # ANATOLIAN HIEROGLYPH A132
+1449F ; [.5165.0020.0002] # ANATOLIAN HIEROGLYPH A133
+144A0 ; [.5166.0020.0002] # ANATOLIAN HIEROGLYPH A134
+144A1 ; [.5167.0020.0002] # ANATOLIAN HIEROGLYPH A135
+144A2 ; [.5168.0020.0002] # ANATOLIAN HIEROGLYPH A135A
+144A3 ; [.5169.0020.0002] # ANATOLIAN HIEROGLYPH A136
+144A4 ; [.516A.0020.0002] # ANATOLIAN HIEROGLYPH A137
+144A5 ; [.516B.0020.0002] # ANATOLIAN HIEROGLYPH A138
+144A6 ; [.516C.0020.0002] # ANATOLIAN HIEROGLYPH A139
+144A7 ; [.516D.0020.0002] # ANATOLIAN HIEROGLYPH A140
+144A8 ; [.516E.0020.0002] # ANATOLIAN HIEROGLYPH A141
+144A9 ; [.516F.0020.0002] # ANATOLIAN HIEROGLYPH A142
+144AA ; [.5170.0020.0002] # ANATOLIAN HIEROGLYPH A143
+144AB ; [.5171.0020.0002] # ANATOLIAN HIEROGLYPH A144
+144AC ; [.5172.0020.0002] # ANATOLIAN HIEROGLYPH A145
+144AD ; [.5173.0020.0002] # ANATOLIAN HIEROGLYPH A146
+144AE ; [.5174.0020.0002] # ANATOLIAN HIEROGLYPH A147
+144AF ; [.5175.0020.0002] # ANATOLIAN HIEROGLYPH A148
+144B0 ; [.5176.0020.0002] # ANATOLIAN HIEROGLYPH A149
+144B1 ; [.5177.0020.0002] # ANATOLIAN HIEROGLYPH A150
+144B2 ; [.5178.0020.0002] # ANATOLIAN HIEROGLYPH A151
+144B3 ; [.5179.0020.0002] # ANATOLIAN HIEROGLYPH A152
+144B4 ; [.517A.0020.0002] # ANATOLIAN HIEROGLYPH A153
+144B5 ; [.517B.0020.0002] # ANATOLIAN HIEROGLYPH A154
+144B6 ; [.517C.0020.0002] # ANATOLIAN HIEROGLYPH A155
+144B7 ; [.517D.0020.0002] # ANATOLIAN HIEROGLYPH A156
+144B8 ; [.517E.0020.0002] # ANATOLIAN HIEROGLYPH A157
+144B9 ; [.517F.0020.0002] # ANATOLIAN HIEROGLYPH A158
+144BA ; [.5180.0020.0002] # ANATOLIAN HIEROGLYPH A159
+144BB ; [.5181.0020.0002] # ANATOLIAN HIEROGLYPH A160
+144BC ; [.5182.0020.0002] # ANATOLIAN HIEROGLYPH A161
+144BD ; [.5183.0020.0002] # ANATOLIAN HIEROGLYPH A162
+144BE ; [.5184.0020.0002] # ANATOLIAN HIEROGLYPH A163
+144BF ; [.5185.0020.0002] # ANATOLIAN HIEROGLYPH A164
+144C0 ; [.5186.0020.0002] # ANATOLIAN HIEROGLYPH A165
+144C1 ; [.5187.0020.0002] # ANATOLIAN HIEROGLYPH A166
+144C2 ; [.5188.0020.0002] # ANATOLIAN HIEROGLYPH A167
+144C3 ; [.5189.0020.0002] # ANATOLIAN HIEROGLYPH A168
+144C4 ; [.518A.0020.0002] # ANATOLIAN HIEROGLYPH A169
+144C5 ; [.518B.0020.0002] # ANATOLIAN HIEROGLYPH A170
+144C6 ; [.518C.0020.0002] # ANATOLIAN HIEROGLYPH A171
+144C7 ; [.518D.0020.0002] # ANATOLIAN HIEROGLYPH A172
+144C8 ; [.518E.0020.0002] # ANATOLIAN HIEROGLYPH A173
+144C9 ; [.518F.0020.0002] # ANATOLIAN HIEROGLYPH A174
+144CA ; [.5190.0020.0002] # ANATOLIAN HIEROGLYPH A175
+144CB ; [.5191.0020.0002] # ANATOLIAN HIEROGLYPH A176
+144CC ; [.5192.0020.0002] # ANATOLIAN HIEROGLYPH A177
+144CD ; [.5193.0020.0002] # ANATOLIAN HIEROGLYPH A178
+144CE ; [.5194.0020.0002] # ANATOLIAN HIEROGLYPH A179
+144CF ; [.5195.0020.0002] # ANATOLIAN HIEROGLYPH A180
+144D0 ; [.5196.0020.0002] # ANATOLIAN HIEROGLYPH A181
+144D1 ; [.5197.0020.0002] # ANATOLIAN HIEROGLYPH A182
+144D2 ; [.5198.0020.0002] # ANATOLIAN HIEROGLYPH A183
+144D3 ; [.5199.0020.0002] # ANATOLIAN HIEROGLYPH A184
+144D4 ; [.519A.0020.0002] # ANATOLIAN HIEROGLYPH A185
+144D5 ; [.519B.0020.0002] # ANATOLIAN HIEROGLYPH A186
+144D6 ; [.519C.0020.0002] # ANATOLIAN HIEROGLYPH A187
+144D7 ; [.519D.0020.0002] # ANATOLIAN HIEROGLYPH A188
+144D8 ; [.519E.0020.0002] # ANATOLIAN HIEROGLYPH A189
+144D9 ; [.519F.0020.0002] # ANATOLIAN HIEROGLYPH A190
+144DA ; [.51A0.0020.0002] # ANATOLIAN HIEROGLYPH A191
+144DB ; [.51A1.0020.0002] # ANATOLIAN HIEROGLYPH A192
+144DC ; [.51A2.0020.0002] # ANATOLIAN HIEROGLYPH A193
+144DD ; [.51A3.0020.0002] # ANATOLIAN HIEROGLYPH A194
+144DE ; [.51A4.0020.0002] # ANATOLIAN HIEROGLYPH A195
+144DF ; [.51A5.0020.0002] # ANATOLIAN HIEROGLYPH A196
+144E0 ; [.51A6.0020.0002] # ANATOLIAN HIEROGLYPH A197
+144E1 ; [.51A7.0020.0002] # ANATOLIAN HIEROGLYPH A198
+144E2 ; [.51A8.0020.0002] # ANATOLIAN HIEROGLYPH A199
+144E3 ; [.51A9.0020.0002] # ANATOLIAN HIEROGLYPH A200
+144E4 ; [.51AA.0020.0002] # ANATOLIAN HIEROGLYPH A201
+144E5 ; [.51AB.0020.0002] # ANATOLIAN HIEROGLYPH A202
+144E6 ; [.51AC.0020.0002] # ANATOLIAN HIEROGLYPH A202A
+144E7 ; [.51AD.0020.0002] # ANATOLIAN HIEROGLYPH A202B
+144E8 ; [.51AE.0020.0002] # ANATOLIAN HIEROGLYPH A203
+144E9 ; [.51AF.0020.0002] # ANATOLIAN HIEROGLYPH A204
+144EA ; [.51B0.0020.0002] # ANATOLIAN HIEROGLYPH A205
+144EB ; [.51B1.0020.0002] # ANATOLIAN HIEROGLYPH A206
+144EC ; [.51B2.0020.0002] # ANATOLIAN HIEROGLYPH A207
+144ED ; [.51B3.0020.0002] # ANATOLIAN HIEROGLYPH A207A
+144EE ; [.51B4.0020.0002] # ANATOLIAN HIEROGLYPH A208
+144EF ; [.51B5.0020.0002] # ANATOLIAN HIEROGLYPH A209
+144F0 ; [.51B6.0020.0002] # ANATOLIAN HIEROGLYPH A209A
+144F1 ; [.51B7.0020.0002] # ANATOLIAN HIEROGLYPH A210
+144F2 ; [.51B8.0020.0002] # ANATOLIAN HIEROGLYPH A211
+144F3 ; [.51B9.0020.0002] # ANATOLIAN HIEROGLYPH A212
+144F4 ; [.51BA.0020.0002] # ANATOLIAN HIEROGLYPH A213
+144F5 ; [.51BB.0020.0002] # ANATOLIAN HIEROGLYPH A214
+144F6 ; [.51BC.0020.0002] # ANATOLIAN HIEROGLYPH A215
+144F7 ; [.51BD.0020.0002] # ANATOLIAN HIEROGLYPH A215A
+144F8 ; [.51BE.0020.0002] # ANATOLIAN HIEROGLYPH A216
+144F9 ; [.51BF.0020.0002] # ANATOLIAN HIEROGLYPH A216A
+144FA ; [.51C0.0020.0002] # ANATOLIAN HIEROGLYPH A217
+144FB ; [.51C1.0020.0002] # ANATOLIAN HIEROGLYPH A218
+144FC ; [.51C2.0020.0002] # ANATOLIAN HIEROGLYPH A219
+144FD ; [.51C3.0020.0002] # ANATOLIAN HIEROGLYPH A220
+144FE ; [.51C4.0020.0002] # ANATOLIAN HIEROGLYPH A221
+144FF ; [.51C5.0020.0002] # ANATOLIAN HIEROGLYPH A222
+14500 ; [.51C6.0020.0002] # ANATOLIAN HIEROGLYPH A223
+14501 ; [.51C7.0020.0002] # ANATOLIAN HIEROGLYPH A224
+14502 ; [.51C8.0020.0002] # ANATOLIAN HIEROGLYPH A225
+14503 ; [.51C9.0020.0002] # ANATOLIAN HIEROGLYPH A226
+14504 ; [.51CA.0020.0002] # ANATOLIAN HIEROGLYPH A227
+14505 ; [.51CB.0020.0002] # ANATOLIAN HIEROGLYPH A227A
+14506 ; [.51CC.0020.0002] # ANATOLIAN HIEROGLYPH A228
+14507 ; [.51CD.0020.0002] # ANATOLIAN HIEROGLYPH A229
+14508 ; [.51CE.0020.0002] # ANATOLIAN HIEROGLYPH A230
+14509 ; [.51CF.0020.0002] # ANATOLIAN HIEROGLYPH A231
+1450A ; [.51D0.0020.0002] # ANATOLIAN HIEROGLYPH A232
+1450B ; [.51D1.0020.0002] # ANATOLIAN HIEROGLYPH A233
+1450C ; [.51D2.0020.0002] # ANATOLIAN HIEROGLYPH A234
+1450D ; [.51D3.0020.0002] # ANATOLIAN HIEROGLYPH A235
+1450E ; [.51D4.0020.0002] # ANATOLIAN HIEROGLYPH A236
+1450F ; [.51D5.0020.0002] # ANATOLIAN HIEROGLYPH A237
+14510 ; [.51D6.0020.0002] # ANATOLIAN HIEROGLYPH A238
+14511 ; [.51D7.0020.0002] # ANATOLIAN HIEROGLYPH A239
+14512 ; [.51D8.0020.0002] # ANATOLIAN HIEROGLYPH A240
+14513 ; [.51D9.0020.0002] # ANATOLIAN HIEROGLYPH A241
+14514 ; [.51DA.0020.0002] # ANATOLIAN HIEROGLYPH A242
+14515 ; [.51DB.0020.0002] # ANATOLIAN HIEROGLYPH A243
+14516 ; [.51DC.0020.0002] # ANATOLIAN HIEROGLYPH A244
+14517 ; [.51DD.0020.0002] # ANATOLIAN HIEROGLYPH A245
+14518 ; [.51DE.0020.0002] # ANATOLIAN HIEROGLYPH A246
+14519 ; [.51DF.0020.0002] # ANATOLIAN HIEROGLYPH A247
+1451A ; [.51E0.0020.0002] # ANATOLIAN HIEROGLYPH A248
+1451B ; [.51E1.0020.0002] # ANATOLIAN HIEROGLYPH A249
+1451C ; [.51E2.0020.0002] # ANATOLIAN HIEROGLYPH A250
+1451D ; [.51E3.0020.0002] # ANATOLIAN HIEROGLYPH A251
+1451E ; [.51E4.0020.0002] # ANATOLIAN HIEROGLYPH A252
+1451F ; [.51E5.0020.0002] # ANATOLIAN HIEROGLYPH A253
+14520 ; [.51E6.0020.0002] # ANATOLIAN HIEROGLYPH A254
+14521 ; [.51E7.0020.0002] # ANATOLIAN HIEROGLYPH A255
+14522 ; [.51E8.0020.0002] # ANATOLIAN HIEROGLYPH A256
+14523 ; [.51E9.0020.0002] # ANATOLIAN HIEROGLYPH A257
+14524 ; [.51EA.0020.0002] # ANATOLIAN HIEROGLYPH A258
+14525 ; [.51EB.0020.0002] # ANATOLIAN HIEROGLYPH A259
+14526 ; [.51EC.0020.0002] # ANATOLIAN HIEROGLYPH A260
+14527 ; [.51ED.0020.0002] # ANATOLIAN HIEROGLYPH A261
+14528 ; [.51EE.0020.0002] # ANATOLIAN HIEROGLYPH A262
+14529 ; [.51EF.0020.0002] # ANATOLIAN HIEROGLYPH A263
+1452A ; [.51F0.0020.0002] # ANATOLIAN HIEROGLYPH A264
+1452B ; [.51F1.0020.0002] # ANATOLIAN HIEROGLYPH A265
+1452C ; [.51F2.0020.0002] # ANATOLIAN HIEROGLYPH A266
+1452D ; [.51F3.0020.0002] # ANATOLIAN HIEROGLYPH A267
+1452E ; [.51F4.0020.0002] # ANATOLIAN HIEROGLYPH A267A
+1452F ; [.51F5.0020.0002] # ANATOLIAN HIEROGLYPH A268
+14530 ; [.51F6.0020.0002] # ANATOLIAN HIEROGLYPH A269
+14531 ; [.51F7.0020.0002] # ANATOLIAN HIEROGLYPH A270
+14532 ; [.51F8.0020.0002] # ANATOLIAN HIEROGLYPH A271
+14533 ; [.51F9.0020.0002] # ANATOLIAN HIEROGLYPH A272
+14534 ; [.51FA.0020.0002] # ANATOLIAN HIEROGLYPH A273
+14535 ; [.51FB.0020.0002] # ANATOLIAN HIEROGLYPH A274
+14536 ; [.51FC.0020.0002] # ANATOLIAN HIEROGLYPH A275
+14537 ; [.51FD.0020.0002] # ANATOLIAN HIEROGLYPH A276
+14538 ; [.51FE.0020.0002] # ANATOLIAN HIEROGLYPH A277
+14539 ; [.51FF.0020.0002] # ANATOLIAN HIEROGLYPH A278
+1453A ; [.5200.0020.0002] # ANATOLIAN HIEROGLYPH A279
+1453B ; [.5201.0020.0002] # ANATOLIAN HIEROGLYPH A280
+1453C ; [.5202.0020.0002] # ANATOLIAN HIEROGLYPH A281
+1453D ; [.5203.0020.0002] # ANATOLIAN HIEROGLYPH A282
+1453E ; [.5204.0020.0002] # ANATOLIAN HIEROGLYPH A283
+1453F ; [.5205.0020.0002] # ANATOLIAN HIEROGLYPH A284
+14540 ; [.5206.0020.0002] # ANATOLIAN HIEROGLYPH A285
+14541 ; [.5207.0020.0002] # ANATOLIAN HIEROGLYPH A286
+14542 ; [.5208.0020.0002] # ANATOLIAN HIEROGLYPH A287
+14543 ; [.5209.0020.0002] # ANATOLIAN HIEROGLYPH A288
+14544 ; [.520A.0020.0002] # ANATOLIAN HIEROGLYPH A289
+14545 ; [.520B.0020.0002] # ANATOLIAN HIEROGLYPH A289A
+14546 ; [.520C.0020.0002] # ANATOLIAN HIEROGLYPH A290
+14547 ; [.520D.0020.0002] # ANATOLIAN HIEROGLYPH A291
+14548 ; [.520E.0020.0002] # ANATOLIAN HIEROGLYPH A292
+14549 ; [.520F.0020.0002] # ANATOLIAN HIEROGLYPH A293
+1454A ; [.5210.0020.0002] # ANATOLIAN HIEROGLYPH A294
+1454B ; [.5211.0020.0002] # ANATOLIAN HIEROGLYPH A294A
+1454C ; [.5212.0020.0002] # ANATOLIAN HIEROGLYPH A295
+1454D ; [.5213.0020.0002] # ANATOLIAN HIEROGLYPH A296
+1454E ; [.5214.0020.0002] # ANATOLIAN HIEROGLYPH A297
+1454F ; [.5215.0020.0002] # ANATOLIAN HIEROGLYPH A298
+14550 ; [.5216.0020.0002] # ANATOLIAN HIEROGLYPH A299
+14551 ; [.5217.0020.0002] # ANATOLIAN HIEROGLYPH A299A
+14552 ; [.5218.0020.0002] # ANATOLIAN HIEROGLYPH A300
+14553 ; [.5219.0020.0002] # ANATOLIAN HIEROGLYPH A301
+14554 ; [.521A.0020.0002] # ANATOLIAN HIEROGLYPH A302
+14555 ; [.521B.0020.0002] # ANATOLIAN HIEROGLYPH A303
+14556 ; [.521C.0020.0002] # ANATOLIAN HIEROGLYPH A304
+14557 ; [.521D.0020.0002] # ANATOLIAN HIEROGLYPH A305
+14558 ; [.521E.0020.0002] # ANATOLIAN HIEROGLYPH A306
+14559 ; [.521F.0020.0002] # ANATOLIAN HIEROGLYPH A307
+1455A ; [.5220.0020.0002] # ANATOLIAN HIEROGLYPH A308
+1455B ; [.5221.0020.0002] # ANATOLIAN HIEROGLYPH A309
+1455C ; [.5222.0020.0002] # ANATOLIAN HIEROGLYPH A309A
+1455D ; [.5223.0020.0002] # ANATOLIAN HIEROGLYPH A310
+1455E ; [.5224.0020.0002] # ANATOLIAN HIEROGLYPH A311
+1455F ; [.5225.0020.0002] # ANATOLIAN HIEROGLYPH A312
+14560 ; [.5226.0020.0002] # ANATOLIAN HIEROGLYPH A313
+14561 ; [.5227.0020.0002] # ANATOLIAN HIEROGLYPH A314
+14562 ; [.5228.0020.0002] # ANATOLIAN HIEROGLYPH A315
+14563 ; [.5229.0020.0002] # ANATOLIAN HIEROGLYPH A316
+14564 ; [.522A.0020.0002] # ANATOLIAN HIEROGLYPH A317
+14565 ; [.522B.0020.0002] # ANATOLIAN HIEROGLYPH A318
+14566 ; [.522C.0020.0002] # ANATOLIAN HIEROGLYPH A319
+14567 ; [.522D.0020.0002] # ANATOLIAN HIEROGLYPH A320
+14568 ; [.522E.0020.0002] # ANATOLIAN HIEROGLYPH A321
+14569 ; [.522F.0020.0002] # ANATOLIAN HIEROGLYPH A322
+1456A ; [.5230.0020.0002] # ANATOLIAN HIEROGLYPH A323
+1456B ; [.5231.0020.0002] # ANATOLIAN HIEROGLYPH A324
+1456C ; [.5232.0020.0002] # ANATOLIAN HIEROGLYPH A325
+1456D ; [.5233.0020.0002] # ANATOLIAN HIEROGLYPH A326
+1456E ; [.5234.0020.0002] # ANATOLIAN HIEROGLYPH A327
+1456F ; [.5235.0020.0002] # ANATOLIAN HIEROGLYPH A328
+14570 ; [.5236.0020.0002] # ANATOLIAN HIEROGLYPH A329
+14571 ; [.5237.0020.0002] # ANATOLIAN HIEROGLYPH A329A
+14572 ; [.5238.0020.0002] # ANATOLIAN HIEROGLYPH A330
+14573 ; [.5239.0020.0002] # ANATOLIAN HIEROGLYPH A331
+14574 ; [.523A.0020.0002] # ANATOLIAN HIEROGLYPH A332A
+14575 ; [.523B.0020.0002] # ANATOLIAN HIEROGLYPH A332B
+14576 ; [.523C.0020.0002] # ANATOLIAN HIEROGLYPH A332C
+14577 ; [.523D.0020.0002] # ANATOLIAN HIEROGLYPH A333
+14578 ; [.523E.0020.0002] # ANATOLIAN HIEROGLYPH A334
+14579 ; [.523F.0020.0002] # ANATOLIAN HIEROGLYPH A335
+1457A ; [.5240.0020.0002] # ANATOLIAN HIEROGLYPH A336
+1457B ; [.5241.0020.0002] # ANATOLIAN HIEROGLYPH A336A
+1457C ; [.5242.0020.0002] # ANATOLIAN HIEROGLYPH A336B
+1457D ; [.5243.0020.0002] # ANATOLIAN HIEROGLYPH A336C
+1457E ; [.5244.0020.0002] # ANATOLIAN HIEROGLYPH A337
+1457F ; [.5245.0020.0002] # ANATOLIAN HIEROGLYPH A338
+14580 ; [.5246.0020.0002] # ANATOLIAN HIEROGLYPH A339
+14581 ; [.5247.0020.0002] # ANATOLIAN HIEROGLYPH A340
+14582 ; [.5248.0020.0002] # ANATOLIAN HIEROGLYPH A341
+14583 ; [.5249.0020.0002] # ANATOLIAN HIEROGLYPH A342
+14584 ; [.524A.0020.0002] # ANATOLIAN HIEROGLYPH A343
+14585 ; [.524B.0020.0002] # ANATOLIAN HIEROGLYPH A344
+14586 ; [.524C.0020.0002] # ANATOLIAN HIEROGLYPH A345
+14587 ; [.524D.0020.0002] # ANATOLIAN HIEROGLYPH A346
+14588 ; [.524E.0020.0002] # ANATOLIAN HIEROGLYPH A347
+14589 ; [.524F.0020.0002] # ANATOLIAN HIEROGLYPH A348
+1458A ; [.5250.0020.0002] # ANATOLIAN HIEROGLYPH A349
+1458B ; [.5251.0020.0002] # ANATOLIAN HIEROGLYPH A350
+1458C ; [.5252.0020.0002] # ANATOLIAN HIEROGLYPH A351
+1458D ; [.5253.0020.0002] # ANATOLIAN HIEROGLYPH A352
+1458E ; [.5254.0020.0002] # ANATOLIAN HIEROGLYPH A353
+1458F ; [.5255.0020.0002] # ANATOLIAN HIEROGLYPH A354
+14590 ; [.5256.0020.0002] # ANATOLIAN HIEROGLYPH A355
+14591 ; [.5257.0020.0002] # ANATOLIAN HIEROGLYPH A356
+14592 ; [.5258.0020.0002] # ANATOLIAN HIEROGLYPH A357
+14593 ; [.5259.0020.0002] # ANATOLIAN HIEROGLYPH A358
+14594 ; [.525A.0020.0002] # ANATOLIAN HIEROGLYPH A359
+14595 ; [.525B.0020.0002] # ANATOLIAN HIEROGLYPH A359A
+14596 ; [.525C.0020.0002] # ANATOLIAN HIEROGLYPH A360
+14597 ; [.525D.0020.0002] # ANATOLIAN HIEROGLYPH A361
+14598 ; [.525E.0020.0002] # ANATOLIAN HIEROGLYPH A362
+14599 ; [.525F.0020.0002] # ANATOLIAN HIEROGLYPH A363
+1459A ; [.5260.0020.0002] # ANATOLIAN HIEROGLYPH A364
+1459B ; [.5261.0020.0002] # ANATOLIAN HIEROGLYPH A364A
+1459C ; [.5262.0020.0002] # ANATOLIAN HIEROGLYPH A365
+1459D ; [.5263.0020.0002] # ANATOLIAN HIEROGLYPH A366
+1459E ; [.5264.0020.0002] # ANATOLIAN HIEROGLYPH A367
+1459F ; [.5265.0020.0002] # ANATOLIAN HIEROGLYPH A368
+145A0 ; [.5266.0020.0002] # ANATOLIAN HIEROGLYPH A368A
+145A1 ; [.5267.0020.0002] # ANATOLIAN HIEROGLYPH A369
+145A2 ; [.5268.0020.0002] # ANATOLIAN HIEROGLYPH A370
+145A3 ; [.5269.0020.0002] # ANATOLIAN HIEROGLYPH A371
+145A4 ; [.526A.0020.0002] # ANATOLIAN HIEROGLYPH A371A
+145A5 ; [.526B.0020.0002] # ANATOLIAN HIEROGLYPH A372
+145A6 ; [.526C.0020.0002] # ANATOLIAN HIEROGLYPH A373
+145A7 ; [.526D.0020.0002] # ANATOLIAN HIEROGLYPH A374
+145A8 ; [.526E.0020.0002] # ANATOLIAN HIEROGLYPH A375
+145A9 ; [.526F.0020.0002] # ANATOLIAN HIEROGLYPH A376
+145AA ; [.5270.0020.0002] # ANATOLIAN HIEROGLYPH A377
+145AB ; [.5271.0020.0002] # ANATOLIAN HIEROGLYPH A378
+145AC ; [.5272.0020.0002] # ANATOLIAN HIEROGLYPH A379
+145AD ; [.5273.0020.0002] # ANATOLIAN HIEROGLYPH A380
+145AE ; [.5274.0020.0002] # ANATOLIAN HIEROGLYPH A381
+145AF ; [.5275.0020.0002] # ANATOLIAN HIEROGLYPH A381A
+145B0 ; [.5276.0020.0002] # ANATOLIAN HIEROGLYPH A382
+145B1 ; [.5277.0020.0002] # ANATOLIAN HIEROGLYPH A383 RA OR RI
+145B2 ; [.5278.0020.0002] # ANATOLIAN HIEROGLYPH A383A
+145B3 ; [.5279.0020.0002] # ANATOLIAN HIEROGLYPH A384
+145B4 ; [.527A.0020.0002] # ANATOLIAN HIEROGLYPH A385
+145B5 ; [.527B.0020.0002] # ANATOLIAN HIEROGLYPH A386
+145B6 ; [.527C.0020.0002] # ANATOLIAN HIEROGLYPH A386A
+145B7 ; [.527D.0020.0002] # ANATOLIAN HIEROGLYPH A387
+145B8 ; [.527E.0020.0002] # ANATOLIAN HIEROGLYPH A388
+145B9 ; [.527F.0020.0002] # ANATOLIAN HIEROGLYPH A389
+145BA ; [.5280.0020.0002] # ANATOLIAN HIEROGLYPH A390
+145BB ; [.5281.0020.0002] # ANATOLIAN HIEROGLYPH A391
+145BC ; [.5282.0020.0002] # ANATOLIAN HIEROGLYPH A392
+145BD ; [.5283.0020.0002] # ANATOLIAN HIEROGLYPH A393 EIGHT
+145BE ; [.5284.0020.0002] # ANATOLIAN HIEROGLYPH A394
+145BF ; [.5285.0020.0002] # ANATOLIAN HIEROGLYPH A395
+145C0 ; [.5286.0020.0002] # ANATOLIAN HIEROGLYPH A396
+145C1 ; [.5287.0020.0002] # ANATOLIAN HIEROGLYPH A397
+145C2 ; [.5288.0020.0002] # ANATOLIAN HIEROGLYPH A398
+145C3 ; [.5289.0020.0002] # ANATOLIAN HIEROGLYPH A399
+145C4 ; [.528A.0020.0002] # ANATOLIAN HIEROGLYPH A400
+145C5 ; [.528B.0020.0002] # ANATOLIAN HIEROGLYPH A401
+145C6 ; [.528C.0020.0002] # ANATOLIAN HIEROGLYPH A402
+145C7 ; [.528D.0020.0002] # ANATOLIAN HIEROGLYPH A403
+145C8 ; [.528E.0020.0002] # ANATOLIAN HIEROGLYPH A404
+145C9 ; [.528F.0020.0002] # ANATOLIAN HIEROGLYPH A405
+145CA ; [.5290.0020.0002] # ANATOLIAN HIEROGLYPH A406
+145CB ; [.5291.0020.0002] # ANATOLIAN HIEROGLYPH A407
+145CC ; [.5292.0020.0002] # ANATOLIAN HIEROGLYPH A408
+145CD ; [.5293.0020.0002] # ANATOLIAN HIEROGLYPH A409
+145CE ; [.5294.0020.0002] # ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK
+145CF ; [.5295.0020.0002] # ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK
+145D0 ; [.5296.0020.0002] # ANATOLIAN HIEROGLYPH A411
+145D1 ; [.5297.0020.0002] # ANATOLIAN HIEROGLYPH A412
+145D2 ; [.5298.0020.0002] # ANATOLIAN HIEROGLYPH A413
+145D3 ; [.5299.0020.0002] # ANATOLIAN HIEROGLYPH A414
+145D4 ; [.529A.0020.0002] # ANATOLIAN HIEROGLYPH A415
+145D5 ; [.529B.0020.0002] # ANATOLIAN HIEROGLYPH A416
+145D6 ; [.529C.0020.0002] # ANATOLIAN HIEROGLYPH A417
+145D7 ; [.529D.0020.0002] # ANATOLIAN HIEROGLYPH A418
+145D8 ; [.529E.0020.0002] # ANATOLIAN HIEROGLYPH A419
+145D9 ; [.529F.0020.0002] # ANATOLIAN HIEROGLYPH A420
+145DA ; [.52A0.0020.0002] # ANATOLIAN HIEROGLYPH A421
+145DB ; [.52A1.0020.0002] # ANATOLIAN HIEROGLYPH A422
+145DC ; [.52A2.0020.0002] # ANATOLIAN HIEROGLYPH A423
+145DD ; [.52A3.0020.0002] # ANATOLIAN HIEROGLYPH A424
+145DE ; [.52A4.0020.0002] # ANATOLIAN HIEROGLYPH A425
+145DF ; [.52A5.0020.0002] # ANATOLIAN HIEROGLYPH A426
+145E0 ; [.52A6.0020.0002] # ANATOLIAN HIEROGLYPH A427
+145E1 ; [.52A7.0020.0002] # ANATOLIAN HIEROGLYPH A428
+145E2 ; [.52A8.0020.0002] # ANATOLIAN HIEROGLYPH A429
+145E3 ; [.52A9.0020.0002] # ANATOLIAN HIEROGLYPH A430
+145E4 ; [.52AA.0020.0002] # ANATOLIAN HIEROGLYPH A431
+145E5 ; [.52AB.0020.0002] # ANATOLIAN HIEROGLYPH A432
+145E6 ; [.52AC.0020.0002] # ANATOLIAN HIEROGLYPH A433
+145E7 ; [.52AD.0020.0002] # ANATOLIAN HIEROGLYPH A434
+145E8 ; [.52AE.0020.0002] # ANATOLIAN HIEROGLYPH A435
+145E9 ; [.52AF.0020.0002] # ANATOLIAN HIEROGLYPH A436
+145EA ; [.52B0.0020.0002] # ANATOLIAN HIEROGLYPH A437
+145EB ; [.52B1.0020.0002] # ANATOLIAN HIEROGLYPH A438
+145EC ; [.52B2.0020.0002] # ANATOLIAN HIEROGLYPH A439
+145ED ; [.52B3.0020.0002] # ANATOLIAN HIEROGLYPH A440
+145EE ; [.52B4.0020.0002] # ANATOLIAN HIEROGLYPH A441
+145EF ; [.52B5.0020.0002] # ANATOLIAN HIEROGLYPH A442
+145F0 ; [.52B6.0020.0002] # ANATOLIAN HIEROGLYPH A443
+145F1 ; [.52B7.0020.0002] # ANATOLIAN HIEROGLYPH A444
+145F2 ; [.52B8.0020.0002] # ANATOLIAN HIEROGLYPH A445
+145F3 ; [.52B9.0020.0002] # ANATOLIAN HIEROGLYPH A446
+145F4 ; [.52BA.0020.0002] # ANATOLIAN HIEROGLYPH A447
+145F5 ; [.52BB.0020.0002] # ANATOLIAN HIEROGLYPH A448
+145F6 ; [.52BC.0020.0002] # ANATOLIAN HIEROGLYPH A449
+145F7 ; [.52BD.0020.0002] # ANATOLIAN HIEROGLYPH A450
+145F8 ; [.52BE.0020.0002] # ANATOLIAN HIEROGLYPH A450A
+145F9 ; [.52BF.0020.0002] # ANATOLIAN HIEROGLYPH A451
+145FA ; [.52C0.0020.0002] # ANATOLIAN HIEROGLYPH A452
+145FB ; [.52C1.0020.0002] # ANATOLIAN HIEROGLYPH A453
+145FC ; [.52C2.0020.0002] # ANATOLIAN HIEROGLYPH A454
+145FD ; [.52C3.0020.0002] # ANATOLIAN HIEROGLYPH A455
+145FE ; [.52C4.0020.0002] # ANATOLIAN HIEROGLYPH A456
+145FF ; [.52C5.0020.0002] # ANATOLIAN HIEROGLYPH A457
+14600 ; [.52C6.0020.0002] # ANATOLIAN HIEROGLYPH A457A
+14601 ; [.52C7.0020.0002] # ANATOLIAN HIEROGLYPH A458
+14602 ; [.52C8.0020.0002] # ANATOLIAN HIEROGLYPH A459
+14603 ; [.52C9.0020.0002] # ANATOLIAN HIEROGLYPH A460
+14604 ; [.52CA.0020.0002] # ANATOLIAN HIEROGLYPH A461
+14605 ; [.52CB.0020.0002] # ANATOLIAN HIEROGLYPH A462
+14606 ; [.52CC.0020.0002] # ANATOLIAN HIEROGLYPH A463
+14607 ; [.52CD.0020.0002] # ANATOLIAN HIEROGLYPH A464
+14608 ; [.52CE.0020.0002] # ANATOLIAN HIEROGLYPH A465
+14609 ; [.52CF.0020.0002] # ANATOLIAN HIEROGLYPH A466
+1460A ; [.52D0.0020.0002] # ANATOLIAN HIEROGLYPH A467
+1460B ; [.52D1.0020.0002] # ANATOLIAN HIEROGLYPH A468
+1460C ; [.52D2.0020.0002] # ANATOLIAN HIEROGLYPH A469
+1460D ; [.52D3.0020.0002] # ANATOLIAN HIEROGLYPH A470
+1460E ; [.52D4.0020.0002] # ANATOLIAN HIEROGLYPH A471
+1460F ; [.52D5.0020.0002] # ANATOLIAN HIEROGLYPH A472
+14610 ; [.52D6.0020.0002] # ANATOLIAN HIEROGLYPH A473
+14611 ; [.52D7.0020.0002] # ANATOLIAN HIEROGLYPH A474
+14612 ; [.52D8.0020.0002] # ANATOLIAN HIEROGLYPH A475
+14613 ; [.52D9.0020.0002] # ANATOLIAN HIEROGLYPH A476
+14614 ; [.52DA.0020.0002] # ANATOLIAN HIEROGLYPH A477
+14615 ; [.52DB.0020.0002] # ANATOLIAN HIEROGLYPH A478
+14616 ; [.52DC.0020.0002] # ANATOLIAN HIEROGLYPH A479
+14617 ; [.52DD.0020.0002] # ANATOLIAN HIEROGLYPH A480
+14618 ; [.52DE.0020.0002] # ANATOLIAN HIEROGLYPH A481
+14619 ; [.52DF.0020.0002] # ANATOLIAN HIEROGLYPH A482
+1461A ; [.52E0.0020.0002] # ANATOLIAN HIEROGLYPH A483
+1461B ; [.52E1.0020.0002] # ANATOLIAN HIEROGLYPH A484
+1461C ; [.52E2.0020.0002] # ANATOLIAN HIEROGLYPH A485
+1461D ; [.52E3.0020.0002] # ANATOLIAN HIEROGLYPH A486
+1461E ; [.52E4.0020.0002] # ANATOLIAN HIEROGLYPH A487
+1461F ; [.52E5.0020.0002] # ANATOLIAN HIEROGLYPH A488
+14620 ; [.52E6.0020.0002] # ANATOLIAN HIEROGLYPH A489
+14621 ; [.52E7.0020.0002] # ANATOLIAN HIEROGLYPH A490
+14622 ; [.52E8.0020.0002] # ANATOLIAN HIEROGLYPH A491
+14623 ; [.52E9.0020.0002] # ANATOLIAN HIEROGLYPH A492
+14624 ; [.52EA.0020.0002] # ANATOLIAN HIEROGLYPH A493
+14625 ; [.52EB.0020.0002] # ANATOLIAN HIEROGLYPH A494
+14626 ; [.52EC.0020.0002] # ANATOLIAN HIEROGLYPH A495
+14627 ; [.52ED.0020.0002] # ANATOLIAN HIEROGLYPH A496
+14628 ; [.52EE.0020.0002] # ANATOLIAN HIEROGLYPH A497
+14629 ; [.52EF.0020.0002] # ANATOLIAN HIEROGLYPH A501
+1462A ; [.52F0.0020.0002] # ANATOLIAN HIEROGLYPH A502
+1462B ; [.52F1.0020.0002] # ANATOLIAN HIEROGLYPH A503
+1462C ; [.52F2.0020.0002] # ANATOLIAN HIEROGLYPH A504
+1462D ; [.52F3.0020.0002] # ANATOLIAN HIEROGLYPH A505
+1462E ; [.52F4.0020.0002] # ANATOLIAN HIEROGLYPH A506
+1462F ; [.52F5.0020.0002] # ANATOLIAN HIEROGLYPH A507
+14630 ; [.52F6.0020.0002] # ANATOLIAN HIEROGLYPH A508
+14631 ; [.52F7.0020.0002] # ANATOLIAN HIEROGLYPH A509
+14632 ; [.52F8.0020.0002] # ANATOLIAN HIEROGLYPH A510
+14633 ; [.52F9.0020.0002] # ANATOLIAN HIEROGLYPH A511
+14634 ; [.52FA.0020.0002] # ANATOLIAN HIEROGLYPH A512
+14635 ; [.52FB.0020.0002] # ANATOLIAN HIEROGLYPH A513
+14636 ; [.52FC.0020.0002] # ANATOLIAN HIEROGLYPH A514
+14637 ; [.52FD.0020.0002] # ANATOLIAN HIEROGLYPH A515
+14638 ; [.52FE.0020.0002] # ANATOLIAN HIEROGLYPH A516
+14639 ; [.52FF.0020.0002] # ANATOLIAN HIEROGLYPH A517
+1463A ; [.5300.0020.0002] # ANATOLIAN HIEROGLYPH A518
+1463B ; [.5301.0020.0002] # ANATOLIAN HIEROGLYPH A519
+1463C ; [.5302.0020.0002] # ANATOLIAN HIEROGLYPH A520
+1463D ; [.5303.0020.0002] # ANATOLIAN HIEROGLYPH A521
+1463E ; [.5304.0020.0002] # ANATOLIAN HIEROGLYPH A522
+1463F ; [.5305.0020.0002] # ANATOLIAN HIEROGLYPH A523
+14640 ; [.5306.0020.0002] # ANATOLIAN HIEROGLYPH A524
+14641 ; [.5307.0020.0002] # ANATOLIAN HIEROGLYPH A525
+14642 ; [.5308.0020.0002] # ANATOLIAN HIEROGLYPH A526
+14643 ; [.5309.0020.0002] # ANATOLIAN HIEROGLYPH A527
+14644 ; [.530A.0020.0002] # ANATOLIAN HIEROGLYPH A528
+14645 ; [.530B.0020.0002] # ANATOLIAN HIEROGLYPH A529
+14646 ; [.530C.0020.0002] # ANATOLIAN HIEROGLYPH A530
2F00 ; [.FB40.0020.0004][.CE00.0000.0000] # KANGXI RADICAL ONE
-3220 ; [*030A.0020.0004][.FB40.0020.0004][.CE00.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
+3220 ; [*0310.0020.0004][.FB40.0020.0004][.CE00.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ONE
3280 ; [.FB40.0020.0006][.CE00.0000.0000] # CIRCLED IDEOGRAPH ONE
3192 ; [.FB40.0020.0014][.CE00.0000.0000] # IDEOGRAPHIC ANNOTATION ONE MARK
1F229 ; [.FB40.0020.001C][.CE00.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4E00
319C ; [.FB40.0020.0014][.CE01.0000.0000] # IDEOGRAPHIC ANNOTATION FOURTH MARK
-3226 ; [*030A.0020.0004][.FB40.0020.0004][.CE03.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
+3226 ; [*0310.0020.0004][.FB40.0020.0004][.CE03.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SEVEN
3286 ; [.FB40.0020.0006][.CE03.0000.0000] # CIRCLED IDEOGRAPH SEVEN
-3222 ; [*030A.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
-1F241 ; [*036C.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+3222 ; [*0310.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH THREE
+1F241 ; [*0372.0020.0004][.FB40.0020.0004][.CE09.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
3282 ; [.FB40.0020.0006][.CE09.0000.0000] # CIRCLED IDEOGRAPH THREE
3194 ; [.FB40.0020.0014][.CE09.0000.0000] # IDEOGRAPHIC ANNOTATION THREE MARK
1F22A ; [.FB40.0020.001C][.CE09.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4E09
@@ -26514,7 +28593,7 @@ FA70 ; [.FB40.0020.0002][.CE26.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA70
1F22D ; [.FB40.0020.001C][.CE2D.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4E2D
F905 ; [.FB40.0020.0002][.CE32.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F905
2F02 ; [.FB40.0020.0004][.CE36.0000.0000] # KANGXI RADICAL DOT
-2E80 ; [.FB40.0020.0004][.CE36.0000.0000][.0000.0108.0004] # CJK RADICAL REPEAT
+2E80 ; [.FB40.0020.0004][.CE36.0000.0000][.0000.010B.0004] # CJK RADICAL REPEAT
2F801 ; [.FB40.0020.0002][.CE38.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F801
F95E ; [.FB40.0020.0002][.CE39.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F95E
2F800 ; [.FB40.0020.0002][.CE3D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F800
@@ -26522,21 +28601,21 @@ F95E ; [.FB40.0020.0002][.CE39.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F95E
2F802 ; [.FB40.0020.0002][.CE41.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F802
2F04 ; [.FB40.0020.0004][.CE59.0000.0000] # KANGXI RADICAL SECOND
319A ; [.FB40.0020.0014][.CE59.0000.0000] # IDEOGRAPHIC ANNOTATION SECOND MARK
-2E84 ; [.FB40.0020.0004][.CE59.0000.0000][.0000.0108.0004] # CJK RADICAL SECOND THREE
+2E84 ; [.FB40.0020.0004][.CE59.0000.0000][.0000.010B.0004] # CJK RADICAL SECOND THREE
2E83 ; [.FB40.0020.0004][.CE5A.0000.0000] # CJK RADICAL SECOND TWO
2E82 ; [.FB40.0020.0004][.CE5B.0000.0000] # CJK RADICAL SECOND ONE
-3228 ; [*030A.0020.0004][.FB40.0020.0004][.CE5D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
+3228 ; [*0310.0020.0004][.FB40.0020.0004][.CE5D.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH NINE
3288 ; [.FB40.0020.0006][.CE5D.0000.0000] # CIRCLED IDEOGRAPH NINE
F91B ; [.FB40.0020.0002][.CE82.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91B
2F05 ; [.FB40.0020.0004][.CE85.0000.0000] # KANGXI RADICAL HOOK
F9BA ; [.FB40.0020.0002][.CE86.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9BA
2F06 ; [.FB40.0020.0004][.CE8C.0000.0000] # KANGXI RADICAL TWO
-3221 ; [*030A.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
-1F242 ; [*036C.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+3221 ; [*0310.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH TWO
+1F242 ; [*0372.0020.0004][.FB40.0020.0004][.CE8C.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
3281 ; [.FB40.0020.0006][.CE8C.0000.0000] # CIRCLED IDEOGRAPH TWO
3193 ; [.FB40.0020.0014][.CE8C.0000.0000] # IDEOGRAPHIC ANNOTATION TWO MARK
1F214 ; [.FB40.0020.001C][.CE8C.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4E8C
-3224 ; [*030A.0020.0004][.FB40.0020.0004][.CE94.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
+3224 ; [*0310.0020.0004][.FB40.0020.0004][.CE94.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FIVE
3284 ; [.FB40.0020.0006][.CE94.0000.0000] # CIRCLED IDEOGRAPH FIVE
2F07 ; [.FB40.0020.0004][.CEA0.0000.0000] # KANGXI RADICAL LID
1F218 ; [.FB40.0020.001C][.CEA4.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-4EA4
@@ -26546,11 +28625,11 @@ F977 ; [.FB40.0020.0002][.CEAE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F977
2E85 ; [.FB40.0020.0004][.CEBB.0000.0000] # CJK RADICAL PERSON
F9FD ; [.FB40.0020.0002][.CEC0.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9FD
2F819 ; [.FB40.0020.0002][.CECC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F819
-3239 ; [*030A.0020.0004][.FB40.0020.0004][.CEE3.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
+3239 ; [*0310.0020.0004][.FB40.0020.0004][.CEE3.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REPRESENT
F9A8 ; [.FB40.0020.0002][.CEE4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9A8
-323D ; [*030A.0020.0004][.FB40.0020.0004][.CF01.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
+323D ; [*0310.0020.0004][.FB40.0020.0004][.CF01.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ENTERPRISE
32AD ; [.FB40.0020.0006][.CF01.0000.0000] # CIRCLED IDEOGRAPH ENTERPRISE
-3241 ; [*030A.0020.0004][.FB40.0020.0004][.CF11.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REST
+3241 ; [*0310.0020.0004][.FB40.0020.0004][.CF11.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REST
32A1 ; [.FB40.0020.0006][.CF11.0000.0000] # CIRCLED IDEOGRAPH REST
2F804 ; [.FB40.0020.0002][.CF60.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F804
FA73 ; [.FB40.0020.0002][.CF80.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA73
@@ -26581,15 +28660,15 @@ FA32 ; [.FB40.0020.0002][.D14D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA32
FA72 ; [.FB40.0020.0002][.D168.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA72
F978 ; [.FB40.0020.0002][.D169.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F978
2F0B ; [.FB40.0020.0004][.D16B.0000.0000] # KANGXI RADICAL EIGHT
-3227 ; [*030A.0020.0004][.FB40.0020.0004][.D16B.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
+3227 ; [*0310.0020.0004][.FB40.0020.0004][.D16B.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH EIGHT
3287 ; [.FB40.0020.0006][.D16B.0000.0000] # CIRCLED IDEOGRAPH EIGHT
F9D1 ; [.FB40.0020.0002][.D16D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9D1
-3225 ; [*030A.0020.0004][.FB40.0020.0004][.D16D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
+3225 ; [*0310.0020.0004][.FB40.0020.0004][.D16D.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SIX
3285 ; [.FB40.0020.0006][.D16D.0000.0000] # CIRCLED IDEOGRAPH SIX
2F811 ; [.FB40.0020.0002][.D177.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F811
FA75 ; [.FB40.0020.0002][.D180.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA75
2F0C ; [.FB40.0020.0004][.D182.0000.0000] # KANGXI RADICAL DOWN BOX
-2E86 ; [.FB40.0020.0004][.D182.0000.0000][.0000.0108.0004] # CJK RADICAL BOX
+2E86 ; [.FB40.0020.0004][.D182.0000.0000][.0000.010B.0004] # CJK RADICAL BOX
2F815 ; [.FB40.0020.0002][.D18D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F815
1F21E ; [.FB40.0020.001C][.D18D.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-518D
2F8D2 ; [.FB40.0020.0002][.D192.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8D2
@@ -26608,11 +28687,11 @@ F955 ; [.FB40.0020.0002][.D1CC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F955
F954 ; [.FB40.0020.0002][.D1DC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F954
FA15 ; [.FB40.0020.0002][.D1DE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA15
2F0F ; [.FB40.0020.0004][.D1E0.0000.0000] # KANGXI RADICAL TABLE
-2E87 ; [.FB40.0020.0004][.D1E0.0000.0000][.0000.0108.0004] # CJK RADICAL TABLE
+2E87 ; [.FB40.0020.0004][.D1E0.0000.0000][.0000.010B.0004] # CJK RADICAL TABLE
2F81D ; [.FB40.0020.0002][.D1F5.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F81D
2F10 ; [.FB40.0020.0004][.D1F5.0000.0000] # KANGXI RADICAL OPEN BOX
2F11 ; [.FB40.0020.0004][.D200.0000.0000] # KANGXI RADICAL KNIFE
-2E88 ; [.FB40.0020.0004][.D200.0000.0000][.0000.0108.0004] # CJK RADICAL KNIFE ONE
+2E88 ; [.FB40.0020.0004][.D200.0000.0000][.0000.010B.0004] # CJK RADICAL KNIFE ONE
2E89 ; [.FB40.0020.0004][.D202.0000.0000] # CJK RADICAL KNIFE TWO
2F81E ; [.FB40.0020.0002][.D203.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F81E
FA00 ; [.FB40.0020.0002][.D207.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA00
@@ -26632,14 +28711,14 @@ F98A ; [.FB40.0020.0002][.D29B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F98A
2F12 ; [.FB40.0020.0004][.D29B.0000.0000] # KANGXI RADICAL POWER
F99D ; [.FB40.0020.0002][.D2A3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F99D
2F992 ; [.FB40.0020.0002][.D2B3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F992
-3238 ; [*030A.0020.0004][.FB40.0020.0004][.D2B4.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
+3238 ; [*0310.0020.0004][.FB40.0020.0004][.D2B4.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH LABOR
3298 ; [.FB40.0020.0006][.D2B4.0000.0000] # CIRCLED IDEOGRAPH LABOR
FA76 ; [.FB40.0020.0002][.D2C7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA76
2F825 ; [.FB40.0020.0002][.D2C7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F825
FA33 ; [.FB40.0020.0002][.D2C9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA33
2F826 ; [.FB40.0020.0002][.D2C9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F826
F952 ; [.FB40.0020.0002][.D2D2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F952
-1F247 ; [*036C.0020.0004][.FB40.0020.0004][.D2DD.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F247 ; [*0372.0020.0004][.FB40.0020.0004][.D2DD.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
F92F ; [.FB40.0020.0002][.D2DE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F92F
FA34 ; [.FB40.0020.0002][.D2E4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA34
2F827 ; [.FB40.0020.0002][.D2E4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F827
@@ -26658,20 +28737,20 @@ F963 ; [.FB40.0020.0002][.D317.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F963
F9EB ; [.FB40.0020.0002][.D33F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9EB
2F17 ; [.FB40.0020.0004][.D341.0000.0000] # KANGXI RADICAL TEN
3038 ; [.FB40.0020.0004][.D341.0000.0000] # HANGZHOU NUMERAL TEN
-3229 ; [*030A.0020.0004][.FB40.0020.0004][.D341.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
+3229 ; [*0310.0020.0004][.FB40.0020.0004][.D341.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH TEN
3289 ; [.FB40.0020.0006][.D341.0000.0000] # CIRCLED IDEOGRAPH TEN
3039 ; [.FB40.0020.0004][.D344.0000.0000] # HANGZHOU NUMERAL TWENTY
303A ; [.FB40.0020.0004][.D345.0000.0000] # HANGZHOU NUMERAL THIRTY
2F82C ; [.FB40.0020.0002][.D349.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F82C
FA35 ; [.FB40.0020.0002][.D351.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA35
2F82D ; [.FB40.0020.0002][.D351.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F82D
-323F ; [*030A.0020.0004][.FB40.0020.0004][.D354.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
+323F ; [*0310.0020.0004][.FB40.0020.0004][.D354.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH ALLIANCE
32AF ; [.FB40.0020.0006][.D354.0000.0000] # CIRCLED IDEOGRAPH ALLIANCE
2F82E ; [.FB40.0020.0002][.D35A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F82E
2F18 ; [.FB40.0020.0004][.D35C.0000.0000] # KANGXI RADICAL DIVINATION
-2E8A ; [.FB40.0020.0004][.D35C.0000.0000][.0000.0108.0004] # CJK RADICAL DIVINATION
+2E8A ; [.FB40.0020.0004][.D35C.0000.0000][.0000.010B.0004] # CJK RADICAL DIVINATION
2F19 ; [.FB40.0020.0004][.D369.0000.0000] # KANGXI RADICAL SEAL
-2E8B ; [.FB40.0020.0004][.D369.0000.0000][.0000.0108.0004] # CJK RADICAL SEAL
+2E8B ; [.FB40.0020.0004][.D369.0000.0000][.0000.010B.0004] # CJK RADICAL SEAL
329E ; [.FB40.0020.0006][.D370.0000.0000] # CIRCLED IDEOGRAPH PRINT
2F82F ; [.FB40.0020.0002][.D373.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F82F
F91C ; [.FB40.0020.0002][.D375.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91C
@@ -26680,7 +28759,7 @@ F91C ; [.FB40.0020.0002][.D375.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91C
2F832 ; [.FB40.0020.0002][.D37F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F832
2F833 ; [.FB40.0020.0002][.D37F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F833
2F1A ; [.FB40.0020.0004][.D382.0000.0000] # KANGXI RADICAL CLIFF
-2E81 ; [.FB40.0020.0004][.D382.0000.0000][.0000.0108.0004] # CJK RADICAL CLIFF
+2E81 ; [.FB40.0020.0004][.D382.0000.0000][.0000.010B.0004] # CJK RADICAL CLIFF
2F1B ; [.FB40.0020.0004][.D3B6.0000.0000] # KANGXI RADICAL PRIVATE
F96B ; [.FB40.0020.0002][.D3C3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F96B
2F1C ; [.FB40.0020.0004][.D3C8.0000.0000] # KANGXI RADICAL AGAIN
@@ -26696,7 +28775,7 @@ F906 ; [.FB40.0020.0002][.D3E5.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F906
1F22E ; [.FB40.0020.001C][.D3F3.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-53F3
2F83B ; [.FB40.0020.0002][.D406.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F83B
1F234 ; [.FB40.0020.001C][.D408.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-5408
-3234 ; [*030A.0020.0004][.FB40.0020.0004][.D40D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
+3234 ; [*0310.0020.0004][.FB40.0020.0004][.D40D.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH NAME
3294 ; [.FB40.0020.0006][.D40D.0000.0000] # CIRCLED IDEOGRAPH NAME
F9DE ; [.FB40.0020.0002][.D40F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9DE
F9ED ; [.FB40.0020.0002][.D41D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9ED
@@ -26705,7 +28784,7 @@ F9ED ; [.FB40.0020.0002][.D41D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9ED
F980 ; [.FB40.0020.0002][.D442.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F980
2F83E ; [.FB40.0020.0002][.D448.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F83E
2F83F ; [.FB40.0020.0002][.D468.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F83F
-323A ; [*030A.0020.0004][.FB40.0020.0004][.D47C.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
+323A ; [*0310.0020.0004][.FB40.0020.0004][.D47C.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH CALL
2F83C ; [.FB40.0020.0002][.D49E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F83C
2F840 ; [.FB40.0020.0002][.D4A2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F840
F99E ; [.FB40.0020.0002][.D4BD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F99E
@@ -26734,14 +28813,14 @@ FA37 ; [.FB40.0020.0002][.D606.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA37
FA38 ; [.FB40.0020.0002][.D668.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA38
2F84F ; [.FB40.0020.0002][.D674.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F84F
2F1E ; [.FB40.0020.0004][.D6D7.0000.0000] # KANGXI RADICAL ENCLOSURE
-3223 ; [*030A.0020.0004][.FB40.0020.0004][.D6DB.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
+3223 ; [*0310.0020.0004][.FB40.0020.0004][.D6DB.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FOUR
3283 ; [.FB40.0020.0006][.D6DB.0000.0000] # CIRCLED IDEOGRAPH FOUR
3195 ; [.FB40.0020.0014][.D6DB.0000.0000] # IDEOGRAPHIC ANNOTATION FOUR MARK
F9A9 ; [.FB40.0020.0002][.D6F9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9A9
2F84B ; [.FB40.0020.0002][.D716.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F84B
2F84D ; [.FB40.0020.0002][.D717.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F84D
2F1F ; [.FB40.0020.0004][.D71F.0000.0000] # KANGXI RADICAL EARTH
-322F ; [*030A.0020.0004][.FB40.0020.0004][.D71F.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
+322F ; [*0310.0020.0004][.FB40.0020.0004][.D71F.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH EARTH
328F ; [.FB40.0020.0006][.D71F.0000.0000] # CIRCLED IDEOGRAPH EARTH
319E ; [.FB40.0020.0014][.D730.0000.0000] # IDEOGRAPHIC ANNOTATION EARTH MARK
2F855 ; [.FB40.0020.0002][.D78B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F855
@@ -26797,11 +28876,11 @@ FA81 ; [.FB40.0020.0002][.DB28.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA81
2F86B ; [.FB40.0020.0002][.DB3E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F86B
2F26 ; [.FB40.0020.0004][.DB50.0000.0000] # KANGXI RADICAL CHILD
1F211 ; [.FB40.0020.001C][.DB57.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-5B57
-323B ; [*030A.0020.0004][.FB40.0020.0004][.DB66.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
+323B ; [*0310.0020.0004][.FB40.0020.0004][.DB66.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH STUDY
32AB ; [.FB40.0020.0006][.DB66.0000.0000] # CIRCLED IDEOGRAPH STUDY
2F27 ; [.FB40.0020.0004][.DB80.0000.0000] # KANGXI RADICAL ROOF
FA04 ; [.FB40.0020.0002][.DB85.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA04
-1F243 ; [*036C.0020.0004][.FB40.0020.0004][.DB89.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F243 ; [*0372.0020.0004][.FB40.0020.0004][.DB89.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
32AA ; [.FB40.0020.0006][.DB97.0000.0000] # CIRCLED IDEOGRAPH RELIGION
2F86D ; [.FB40.0020.0002][.DBC3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F86D
2F86E ; [.FB40.0020.0002][.DBD8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F86E
@@ -26814,14 +28893,14 @@ F9BC ; [.FB40.0020.0002][.DBEE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9BC
2F872 ; [.FB40.0020.0002][.DBFF.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F872
2F873 ; [.FB40.0020.0002][.DC06.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F873
2F29 ; [.FB40.0020.0004][.DC0F.0000.0000] # KANGXI RADICAL SMALL
-2E8C ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.0108.0004] # CJK RADICAL SMALL ONE
-2E8D ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.0109.0004] # CJK RADICAL SMALL TWO
+2E8C ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.010B.0004] # CJK RADICAL SMALL ONE
+2E8D ; [.FB40.0020.0004][.DC0F.0000.0000][.0000.010C.0004] # CJK RADICAL SMALL TWO
2F875 ; [.FB40.0020.0002][.DC22.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F875
2E90 ; [.FB40.0020.0004][.DC22.0000.0000] # CJK RADICAL LAME THREE
2F2A ; [.FB40.0020.0004][.DC22.0000.0000] # KANGXI RADICAL LAME
-2E8E ; [.FB40.0020.0004][.DC22.0000.0000][.0000.0108.0004] # CJK RADICAL LAME ONE
+2E8E ; [.FB40.0020.0004][.DC22.0000.0000][.0000.010B.0004] # CJK RADICAL LAME ONE
2E8F ; [.FB40.0020.0004][.DC23.0000.0000] # CJK RADICAL LAME TWO
-2E91 ; [.FB40.0020.0004][.DC23.0000.0000][.0000.0108.0004] # CJK RADICAL LAME FOUR
+2E91 ; [.FB40.0020.0004][.DC23.0000.0000][.0000.010B.0004] # CJK RADICAL LAME FOUR
2F2B ; [.FB40.0020.0004][.DC38.0000.0000] # KANGXI RADICAL CORPSE
F9BD ; [.FB40.0020.0002][.DC3F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9BD
2F877 ; [.FB40.0020.0002][.DC60.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F877
@@ -26882,7 +28961,7 @@ F943 ; [.FB40.0020.0002][.DF04.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F943
2F894 ; [.FB40.0020.0002][.DF22.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F894
2F895 ; [.FB40.0020.0002][.DF22.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F895
2F39 ; [.FB40.0020.0004][.DF50.0000.0000] # KANGXI RADICAL SNOUT
-2E95 ; [.FB40.0020.0004][.DF50.0000.0000][.0000.0108.0004] # CJK RADICAL SNOUT TWO
+2E95 ; [.FB40.0020.0004][.DF50.0000.0000][.0000.010B.0004] # CJK RADICAL SNOUT TWO
2E94 ; [.FB40.0020.0004][.DF51.0000.0000] # CJK RADICAL SNOUT ONE
2F874 ; [.FB40.0020.0002][.DF53.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F874
2F3A ; [.FB40.0020.0004][.DF61.0000.0000] # KANGXI RADICAL BRISTLE
@@ -26897,7 +28976,7 @@ F9D8 ; [.FB40.0020.0002][.DF8B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9D8
F966 ; [.FB40.0020.0002][.DFA9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F966
FA85 ; [.FB40.0020.0002][.DFAD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA85
2F3C ; [.FB40.0020.0004][.DFC3.0000.0000] # KANGXI RADICAL HEART
-2E97 ; [.FB40.0020.0004][.DFC3.0000.0000][.0000.0108.0004] # CJK RADICAL HEART TWO
+2E97 ; [.FB40.0020.0004][.DFC3.0000.0000][.0000.010B.0004] # CJK RADICAL HEART TWO
2E96 ; [.FB40.0020.0004][.DFC4.0000.0000] # CJK RADICAL HEART ONE
2F89D ; [.FB40.0020.0002][.DFCD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F89D
2F89E ; [.FB40.0020.0002][.DFD7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F89E
@@ -26945,7 +29024,7 @@ FA8C ; [.FB40.0020.0002][.E234.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA8C
2F3F ; [.FB40.0020.0004][.E24B.0000.0000] # KANGXI RADICAL HAND
1F210 ; [.FB40.0020.001C][.E24B.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-624B
2E98 ; [.FB40.0020.0004][.E24C.0000.0000] # CJK RADICAL HAND
-1F245 ; [*036C.0020.0004][.FB40.0020.0004][.E253.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F245 ; [*0372.0020.0004][.FB40.0020.0004][.E253.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
1F231 ; [.FB40.0020.001C][.E253.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6253
2F8B4 ; [.FB40.0020.0002][.E25D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8B4
1F227 ; [.FB40.0020.001C][.E295.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6295
@@ -26983,7 +29062,7 @@ F930 ; [.FB40.0020.0002][.E4C4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F930
FA41 ; [.FB40.0020.0002][.E54F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA41
2F8C8 ; [.FB40.0020.0002][.E54F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8C8
FA90 ; [.FB40.0020.0002][.E556.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA90
-1F248 ; [*036C.0020.0004][.FB40.0020.0004][.E557.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F248 ; [*0372.0020.0004][.FB40.0020.0004][.E557.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
2F8C9 ; [.FB40.0020.0002][.E56C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8C9
F969 ; [.FB40.0020.0002][.E578.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F969
2F42 ; [.FB40.0020.0004][.E587.0000.0000] # KANGXI RADICAL SCRIPT
@@ -27000,9 +29079,9 @@ F983 ; [.FB40.0020.0002][.E5C5.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F983
FA42 ; [.FB40.0020.0002][.E5E2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA42
2F8CB ; [.FB40.0020.0002][.E5E3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8CB
2F47 ; [.FB40.0020.0004][.E5E5.0000.0000] # KANGXI RADICAL SUN
-3230 ; [*030A.0020.0004][.FB40.0020.0004][.E5E5.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
+3230 ; [*0310.0020.0004][.FB40.0020.0004][.E5E5.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SUN
3290 ; [.FB40.0020.0006][.E5E5.0000.0000] # CIRCLED IDEOGRAPH SUN
-2E9C ; [.FB40.0020.0004][.E5E5.0000.0000][.0000.0108.0004] # CJK RADICAL SUN
+2E9C ; [.FB40.0020.0004][.E5E5.0000.0000][.0000.010B.0004] # CJK RADICAL SUN
337E ; [.FB40.0020.001C][.E60E.0000.0000][.FB40.0020.001C][.ECBB.0000.0000] # SQUARE ERA NAME MEIZI
F9E0 ; [.FB40.0020.0002][.E613.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E0
1F219 ; [.FB40.0020.001C][.E620.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6620
@@ -27021,11 +29100,11 @@ F901 ; [.FB40.0020.0002][.E6F4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F901
2F8CC ; [.FB40.0020.0002][.E6F8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8CC
2F8D4 ; [.FB40.0020.0002][.E700.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8D4
2F49 ; [.FB40.0020.0004][.E708.0000.0000] # KANGXI RADICAL MOON
-322A ; [*030A.0020.0004][.FB40.0020.0004][.E708.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
+322A ; [*0310.0020.0004][.FB40.0020.0004][.E708.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH MOON
328A ; [.FB40.0020.0006][.E708.0000.0000] # CIRCLED IDEOGRAPH MOON
1F237 ; [.FB40.0020.001C][.E708.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6708
-2E9D ; [.FB40.0020.0004][.E708.0000.0000][.0000.0108.0004] # CJK RADICAL MOON
-3232 ; [*030A.0020.0004][.FB40.0020.0004][.E709.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
+2E9D ; [.FB40.0020.0004][.E708.0000.0000][.0000.010B.0004] # CJK RADICAL MOON
+3232 ; [*0310.0020.0004][.FB40.0020.0004][.E709.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH HAVE
3292 ; [.FB40.0020.0006][.E709.0000.0000] # CIRCLED IDEOGRAPH HAVE
1F236 ; [.FB40.0020.001C][.E709.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-6709
F929 ; [.FB40.0020.0002][.E717.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F929
@@ -27035,9 +29114,9 @@ FA93 ; [.FB40.0020.0002][.E71B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA93
2F8D9 ; [.FB40.0020.0002][.E71B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8D9
2F8DA ; [.FB40.0020.0002][.E721.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8DA
2F4A ; [.FB40.0020.0004][.E728.0000.0000] # KANGXI RADICAL TREE
-322D ; [*030A.0020.0004][.FB40.0020.0004][.E728.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
+322D ; [*0310.0020.0004][.FB40.0020.0004][.E728.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH WOOD
328D ; [.FB40.0020.0006][.E728.0000.0000] # CIRCLED IDEOGRAPH WOOD
-1F240 ; [*036C.0020.0004][.FB40.0020.0004][.E72C.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F240 ; [*0372.0020.0004][.FB40.0020.0004][.E72C.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
F9E1 ; [.FB40.0020.0002][.E74E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E1
2F8DC ; [.FB40.0020.0002][.E753.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8DC
FA94 ; [.FB40.0020.0002][.E756.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA94
@@ -27049,7 +29128,7 @@ F9C9 ; [.FB40.0020.0002][.E7F3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9C9
2F8DF ; [.FB40.0020.0002][.E7FA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8DF
F9DA ; [.FB40.0020.0002][.E817.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9DA
2F8E5 ; [.FB40.0020.0002][.E81F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8E5
-3231 ; [*030A.0020.0004][.FB40.0020.0004][.E82A.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
+3231 ; [*0310.0020.0004][.FB40.0020.0004][.E82A.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH STOCK
3291 ; [.FB40.0020.0006][.E82A.0000.0000] # CIRCLED IDEOGRAPH STOCK
337F ; [.FB40.0020.001C][.E82A.0000.0000][.FB40.0020.001C][.DF0F.0000.0000][.FB40.0020.001C][.CF1A.0000.0000][.FB40.0020.001C][.F93E.0000.0000] # SQUARE CORPORATION
2F8E1 ; [.FB40.0020.0002][.E852.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8E1
@@ -27079,7 +29158,7 @@ F91D ; [.FB40.0020.0002][.EB04.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91D
F98C ; [.FB40.0020.0002][.EB77.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F98C
FA95 ; [.FB40.0020.0002][.EB79.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA95
2F4D ; [.FB40.0020.0004][.EB79.0000.0000] # KANGXI RADICAL DEATH
-2E9E ; [.FB40.0020.0004][.EB7A.0000.0000][.0000.0108.0004] # CJK RADICAL DEATH
+2E9E ; [.FB40.0020.0004][.EB7A.0000.0000][.0000.010B.0004] # CJK RADICAL DEATH
2F8F4 ; [.FB40.0020.0002][.EB9F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8F4
F9A5 ; [.FB40.0020.0002][.EBAE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9A5
2F4E ; [.FB40.0020.0004][.EBB3.0000.0000] # KANGXI RADICAL WEAPON
@@ -27095,7 +29174,7 @@ FA96 ; [.FB40.0020.0002][.EBBA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA96
2EA0 ; [.FB40.0020.0004][.EC11.0000.0000] # CJK RADICAL CIVILIAN
2F53 ; [.FB40.0020.0004][.EC14.0000.0000] # KANGXI RADICAL STEAM
2F54 ; [.FB40.0020.0004][.EC34.0000.0000] # KANGXI RADICAL WATER
-322C ; [*030A.0020.0004][.FB40.0020.0004][.EC34.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
+322C ; [*0310.0020.0004][.FB40.0020.0004][.EC34.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH WATER
328C ; [.FB40.0020.0006][.EC34.0000.0000] # CIRCLED IDEOGRAPH WATER
2EA1 ; [.FB40.0020.0004][.EC35.0000.0000] # CJK RADICAL WATER ONE
2EA2 ; [.FB40.0020.0004][.EC3A.0000.0000] # CJK RADICAL WATER TWO
@@ -27151,7 +29230,7 @@ FA9B ; [.FB40.0020.0002][.F01E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA9B
2F913 ; [.FB40.0020.0002][.F039.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F913
2F917 ; [.FB40.0020.0002][.F04A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F917
2F55 ; [.FB40.0020.0004][.F06B.0000.0000] # KANGXI RADICAL FIRE
-322B ; [*030A.0020.0004][.FB40.0020.0004][.F06B.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
+322B ; [*0310.0020.0004][.FB40.0020.0004][.F06B.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FIRE
328B ; [.FB40.0020.0006][.F06B.0000.0000] # CIRCLED IDEOGRAPH FIRE
2EA3 ; [.FB40.0020.0004][.F06C.0000.0000] # CJK RADICAL FIRE
2F835 ; [.FB40.0020.0002][.F070.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F835
@@ -27159,7 +29238,7 @@ FA9B ; [.FB40.0020.0002][.F01E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA9B
2F918 ; [.FB40.0020.0002][.F07D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F918
F9FB ; [.FB40.0020.0002][.F099.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9FB
2F91A ; [.FB40.0020.0002][.F0AD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F91A
-1F244 ; [*036C.0020.0004][.FB40.0020.0004][.F0B9.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F244 ; [*0372.0020.0004][.FB40.0020.0004][.F0B9.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
F99F ; [.FB40.0020.0002][.F0C8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F99F
F916 ; [.FB40.0020.0002][.F0D9.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F916
1F21A ; [.FB40.0020.001C][.F121.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-7121
@@ -27176,7 +29255,7 @@ F91E ; [.FB40.0020.0002][.F21B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91E
2F56 ; [.FB40.0020.0004][.F22A.0000.0000] # KANGXI RADICAL CLAW
FA49 ; [.FB40.0020.0002][.F22B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA49
2EA4 ; [.FB40.0020.0004][.F22B.0000.0000] # CJK RADICAL PAW ONE
-2EA5 ; [.FB40.0020.0004][.F22B.0000.0000][.0000.0108.0004] # CJK RADICAL PAW TWO
+2EA5 ; [.FB40.0020.0004][.F22B.0000.0000][.0000.010B.0004] # CJK RADICAL PAW TWO
FA9E ; [.FB40.0020.0002][.F235.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA9E
2F921 ; [.FB40.0020.0002][.F235.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F921
2F57 ; [.FB40.0020.0004][.F236.0000.0000] # KANGXI RADICAL FATHER
@@ -27186,9 +29265,9 @@ FA9E ; [.FB40.0020.0002][.F235.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA9E
2F922 ; [.FB40.0020.0002][.F250.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F922
2F5B ; [.FB40.0020.0004][.F259.0000.0000] # KANGXI RADICAL FANG
2F5C ; [.FB40.0020.0004][.F25B.0000.0000] # KANGXI RADICAL COW
-2EA7 ; [.FB40.0020.0004][.F25B.0000.0000][.0000.0108.0004] # CJK RADICAL COW
+2EA7 ; [.FB40.0020.0004][.F25B.0000.0000][.0000.010B.0004] # CJK RADICAL COW
F946 ; [.FB40.0020.0002][.F262.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F946
-3235 ; [*030A.0020.0004][.FB40.0020.0004][.F279.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
+3235 ; [*0310.0020.0004][.FB40.0020.0004][.F279.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SPECIAL
3295 ; [.FB40.0020.0006][.F279.0000.0000] # CIRCLED IDEOGRAPH SPECIAL
2F924 ; [.FB40.0020.0002][.F280.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F924
2F925 ; [.FB40.0020.0002][.F295.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F925
@@ -27206,7 +29285,7 @@ F961 ; [.FB40.0020.0002][.F387.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F961
F9DB ; [.FB40.0020.0002][.F387.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9DB
2F5F ; [.FB40.0020.0004][.F389.0000.0000] # KANGXI RADICAL JADE
2F929 ; [.FB40.0020.0002][.F38B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F929
-2EA9 ; [.FB40.0020.0004][.F38B.0000.0000][.0000.0108.0004] # CJK RADICAL JADE
+2EA9 ; [.FB40.0020.0004][.F38B.0000.0000][.0000.010B.0004] # CJK RADICAL JADE
2F92B ; [.FB40.0020.0002][.F3A5.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F92B
F9AD ; [.FB40.0020.0002][.F3B2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9AD
F917 ; [.FB40.0020.0002][.F3DE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F917
@@ -27241,7 +29320,7 @@ F976 ; [.FB40.0020.0002][.F565.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F976
F962 ; [.FB40.0020.0002][.F570.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F962
2F938 ; [.FB40.0020.0002][.F570.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F938
2F66 ; [.FB40.0020.0004][.F58B.0000.0000] # KANGXI RADICAL BOLT OF CLOTH
-2EAA ; [.FB40.0020.0004][.F58B.0000.0000][.0000.0108.0004] # CJK RADICAL BOLT OF CLOTH
+2EAA ; [.FB40.0020.0004][.F58B.0000.0000][.0000.010B.0004] # CJK RADICAL BOLT OF CLOTH
2F67 ; [.FB40.0020.0004][.F592.0000.0000] # KANGXI RADICAL SICKNESS
F9E5 ; [.FB40.0020.0002][.F5E2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E5
2F93A ; [.FB40.0020.0002][.F610.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F93A
@@ -27255,13 +29334,13 @@ F90E ; [.FB40.0020.0002][.F669.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F90E
2F6B ; [.FB40.0020.0004][.F6BF.0000.0000] # KANGXI RADICAL DISH
FA17 ; [.FB40.0020.0002][.F6CA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA17
FAA6 ; [.FB40.0020.0002][.F6CA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAA6
-1F246 ; [*036C.0020.0004][.FB40.0020.0004][.F6D7.0000.0000][*036D.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+1F246 ; [*0372.0020.0004][.FB40.0020.0004][.F6D7.0000.0000][*0373.0020.0004] # TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
FAA7 ; [.FB40.0020.0002][.F6DB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAA7
-323C ; [*030A.0020.0004][.FB40.0020.0004][.F6E3.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
+323C ; [*0310.0020.0004][.FB40.0020.0004][.F6E3.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SUPERVISE
32AC ; [.FB40.0020.0006][.F6E3.0000.0000] # CIRCLED IDEOGRAPH SUPERVISE
F933 ; [.FB40.0020.0002][.F6E7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F933
2F6C ; [.FB40.0020.0004][.F6EE.0000.0000] # KANGXI RADICAL EYE
-2EAB ; [.FB40.0020.0004][.F6EE.0000.0000][.0000.0108.0004] # CJK RADICAL EYE
+2EAB ; [.FB40.0020.0004][.F6EE.0000.0000][.0000.010B.0004] # CJK RADICAL EYE
FAA8 ; [.FB40.0020.0002][.F6F4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAA8
2F940 ; [.FB40.0020.0002][.F6F4.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F940
F96D ; [.FB40.0020.0002][.F701.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F96D
@@ -27287,11 +29366,11 @@ FAAB ; [.FB40.0020.0002][.F8CC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAAB
F964 ; [.FB40.0020.0002][.F8FB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F964
F985 ; [.FB40.0020.0002][.F92A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F985
2F70 ; [.FB40.0020.0004][.F93A.0000.0000] # KANGXI RADICAL SPIRIT
-2EAC ; [.FB40.0020.0004][.F93A.0000.0000][.0000.0108.0004] # CJK RADICAL SPIRIT ONE
+2EAC ; [.FB40.0020.0004][.F93A.0000.0000][.0000.010B.0004] # CJK RADICAL SPIRIT ONE
2EAD ; [.FB40.0020.0004][.F93B.0000.0000] # CJK RADICAL SPIRIT TWO
FA18 ; [.FB40.0020.0002][.F93C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA18
FA4C ; [.FB40.0020.0002][.F93E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA4C
-3233 ; [*030A.0020.0004][.FB40.0020.0004][.F93E.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
+3233 ; [*0310.0020.0004][.FB40.0020.0004][.F93E.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SOCIETY
3293 ; [.FB40.0020.0006][.F93E.0000.0000] # CIRCLED IDEOGRAPH SOCIETY
FA4E ; [.FB40.0020.0002][.F948.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA4E
FA4D ; [.FB40.0020.0002][.F949.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA4D
@@ -27299,11 +29378,11 @@ FA4F ; [.FB40.0020.0002][.F950.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA4F
FA50 ; [.FB40.0020.0002][.F956.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA50
2F953 ; [.FB40.0020.0002][.F956.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F953
FA51 ; [.FB40.0020.0002][.F95D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA51
-3237 ; [*030A.0020.0004][.FB40.0020.0004][.F95D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
+3237 ; [*0310.0020.0004][.FB40.0020.0004][.F95D.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH CONGRATULATION
3297 ; [.FB40.0020.0006][.F95D.0000.0000] # CIRCLED IDEOGRAPH CONGRATULATION
FA19 ; [.FB40.0020.0002][.F95E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA19
FA1A ; [.FB40.0020.0002][.F965.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA1A
-3240 ; [*030A.0020.0004][.FB40.0020.0004][.F96D.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
+3240 ; [*0310.0020.0004][.FB40.0020.0004][.F96D.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FESTIVAL
F93C ; [.FB40.0020.0002][.F97F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F93C
1F232 ; [.FB40.0020.001C][.F981.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-7981
FA52 ; [.FB40.0020.0002][.F98D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA52
@@ -27329,7 +29408,7 @@ F9F7 ; [.FB40.0020.0002][.FACB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9F7
2F74 ; [.FB40.0020.0004][.FACB.0000.0000] # KANGXI RADICAL STAND
2F95F ; [.FB40.0020.0002][.FAEE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F95F
2F75 ; [.FB40.0020.0004][.FAF9.0000.0000] # KANGXI RADICAL BAMBOO
-2EAE ; [.FB40.0020.0004][.FAF9.0000.0000][.0000.0108.0004] # CJK RADICAL BAMBOO
+2EAE ; [.FB40.0020.0004][.FAF9.0000.0000][.0000.010B.0004] # CJK RADICAL BAMBOO
F9F8 ; [.FB40.0020.0002][.FB20.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9F8
3247 ; [.FB40.0020.0006][.FB8F.0000.0000] # CIRCLED IDEOGRAPH KOTO
FA56 ; [.FB40.0020.0002][.FBC0.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA56
@@ -27372,17 +29451,17 @@ FA59 ; [.FB40.0020.0002][.FE41.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA59
FAB1 ; [.FB40.0020.0002][.FF3E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAB1
2F79 ; [.FB40.0020.0004][.FF51.0000.0000] # KANGXI RADICAL NET
2EB2 ; [.FB40.0020.0004][.FF52.0000.0000] # CJK RADICAL NET TWO
-2EB5 ; [.FB40.0020.0004][.FF52.0000.0000][.0000.0108.0004] # CJK RADICAL MESH
+2EB5 ; [.FB40.0020.0004][.FF52.0000.0000][.0000.010B.0004] # CJK RADICAL MESH
2EB1 ; [.FB40.0020.0004][.FF53.0000.0000] # CJK RADICAL NET ONE
-2EB3 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.0108.0004] # CJK RADICAL NET THREE
-2EB4 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.0109.0004] # CJK RADICAL NET FOUR
+2EB3 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.010B.0004] # CJK RADICAL NET THREE
+2EB4 ; [.FB40.0020.0004][.FF53.0000.0000][.0000.010C.0004] # CJK RADICAL NET FOUR
FA5A ; [.FB40.0020.0002][.FF72.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA5A
F9E6 ; [.FB40.0020.0002][.FF79.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E6
2F976 ; [.FB40.0020.0002][.FF7A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F976
F90F ; [.FB40.0020.0002][.FF85.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F90F
2F7A ; [.FB40.0020.0004][.FF8A.0000.0000] # KANGXI RADICAL SHEEP
-2EB6 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.0108.0004] # CJK RADICAL SHEEP
-2EB7 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.0109.0004] # CJK RADICAL RAM
+2EB6 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.010B.0004] # CJK RADICAL SHEEP
+2EB7 ; [.FB40.0020.0004][.FF8A.0000.0000][.0000.010C.0004] # CJK RADICAL RAM
2EB8 ; [.FB40.0020.0004][.FF8B.0000.0000] # CJK RADICAL EWE
2F978 ; [.FB40.0020.0002][.FF95.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F978
F9AF ; [.FB40.0020.0002][.FF9A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9AF
@@ -27404,10 +29483,10 @@ F997 ; [.FB41.0020.0002][.806F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F997
2F97F ; [.FB41.0020.0002][.8070.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F97F
F945 ; [.FB41.0020.0002][.807E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F945
2F80 ; [.FB41.0020.0004][.807F.0000.0000] # KANGXI RADICAL BRUSH
-2EBB ; [.FB41.0020.0004][.807F.0000.0000][.0000.0108.0004] # CJK RADICAL BRUSH TWO
+2EBB ; [.FB41.0020.0004][.807F.0000.0000][.0000.010B.0004] # CJK RADICAL BRUSH TWO
2EBA ; [.FB41.0020.0004][.8080.0000.0000] # CJK RADICAL BRUSH ONE
2F81 ; [.FB41.0020.0004][.8089.0000.0000] # KANGXI RADICAL MEAT
-2EBC ; [.FB41.0020.0004][.8089.0000.0000][.0000.0108.0004] # CJK RADICAL MEAT
+2EBC ; [.FB41.0020.0004][.8089.0000.0000][.0000.010B.0004] # CJK RADICAL MEAT
F953 ; [.FB41.0020.0002][.808B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F953
2F8D6 ; [.FB41.0020.0002][.80AD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F8D6
2F982 ; [.FB41.0020.0002][.80B2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F982
@@ -27417,12 +29496,12 @@ F926 ; [.FB41.0020.0002][.81D8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F926
2F82 ; [.FB41.0020.0004][.81E3.0000.0000] # KANGXI RADICAL MINISTER
F9F6 ; [.FB41.0020.0002][.81E8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9F6
2F83 ; [.FB41.0020.0004][.81EA.0000.0000] # KANGXI RADICAL SELF
-3242 ; [*030A.0020.0004][.FB41.0020.0004][.81EA.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
+3242 ; [*0310.0020.0004][.FB41.0020.0004][.81EA.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH SELF
FA5C ; [.FB41.0020.0002][.81ED.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA5C
2F84 ; [.FB41.0020.0004][.81F3.0000.0000] # KANGXI RADICAL ARRIVE
-3243 ; [*030A.0020.0004][.FB41.0020.0004][.81F3.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
+3243 ; [*0310.0020.0004][.FB41.0020.0004][.81F3.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH REACH
2F85 ; [.FB41.0020.0004][.81FC.0000.0000] # KANGXI RADICAL MORTAR
-2EBD ; [.FB41.0020.0004][.81FC.0000.0000][.0000.0108.0004] # CJK RADICAL MORTAR
+2EBD ; [.FB41.0020.0004][.81FC.0000.0000][.0000.010B.0004] # CJK RADICAL MORTAR
2F893 ; [.FB41.0020.0002][.8201.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F893
2F98B ; [.FB41.0020.0002][.8201.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F98B
2F98C ; [.FB41.0020.0002][.8204.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F98C
@@ -27437,8 +29516,8 @@ F97C ; [.FB41.0020.0002][.826F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F97C
FA5D ; [.FB41.0020.0002][.8279.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA5D
FA5E ; [.FB41.0020.0002][.8279.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA5E
2EBE ; [.FB41.0020.0004][.8279.0000.0000] # CJK RADICAL GRASS ONE
-2EBF ; [.FB41.0020.0004][.8279.0000.0000][.0000.0108.0004] # CJK RADICAL GRASS TWO
-2EC0 ; [.FB41.0020.0004][.8279.0000.0000][.0000.0109.0004] # CJK RADICAL GRASS THREE
+2EBF ; [.FB41.0020.0004][.8279.0000.0000][.0000.010B.0004] # CJK RADICAL GRASS TWO
+2EC0 ; [.FB41.0020.0004][.8279.0000.0000][.0000.010C.0004] # CJK RADICAL GRASS THREE
2F990 ; [.FB41.0020.0002][.828B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F990
2F98F ; [.FB41.0020.0002][.8291.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F98F
2F991 ; [.FB41.0020.0002][.829D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F991
@@ -27528,7 +29607,7 @@ FAB8 ; [.FB41.0020.0002][.8996.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAB8
2EC5 ; [.FB41.0020.0004][.89C1.0000.0000] # CJK RADICAL C-SIMPLIFIED SEE
2EC6 ; [.FB41.0020.0004][.89D2.0000.0000] # CJK RADICAL SIMPLIFIED HORN
2F93 ; [.FB41.0020.0004][.89D2.0000.0000] # KANGXI RADICAL HORN
-2EC7 ; [.FB41.0020.0004][.89D2.0000.0000][.0000.0108.0004] # CJK RADICAL HORN
+2EC7 ; [.FB41.0020.0004][.89D2.0000.0000][.0000.010B.0004] # CJK RADICAL HORN
1F216 ; [.FB41.0020.001C][.89E3.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-89E3
2F94 ; [.FB41.0020.0004][.8A00.0000.0000] # KANGXI RADICAL SPEECH
2F9CF ; [.FB41.0020.0002][.8AA0.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9CF
@@ -27560,13 +29639,13 @@ F900 ; [.FB41.0020.0002][.8C48.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F900
2F97 ; [.FB41.0020.0004][.8C55.0000.0000] # KANGXI RADICAL PIG
2F98 ; [.FB41.0020.0004][.8C78.0000.0000] # KANGXI RADICAL BADGER
2F99 ; [.FB41.0020.0004][.8C9D.0000.0000] # KANGXI RADICAL SHELL
-3236 ; [*030A.0020.0004][.FB41.0020.0004][.8CA1.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
+3236 ; [*0310.0020.0004][.FB41.0020.0004][.8CA1.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH FINANCIAL
3296 ; [.FB41.0020.0006][.8CA1.0000.0000] # CIRCLED IDEOGRAPH FINANCIAL
1F223 ; [.FB41.0020.001C][.8CA9.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-8CA9
2F9D4 ; [.FB41.0020.0002][.8CAB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9D4
2F9D5 ; [.FB41.0020.0002][.8CC1.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9D5
F948 ; [.FB41.0020.0002][.8CC2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F948
-323E ; [*030A.0020.0004][.FB41.0020.0004][.8CC7.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
+323E ; [*0310.0020.0004][.FB41.0020.0004][.8CC7.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH RESOURCE
32AE ; [.FB41.0020.0006][.8CC7.0000.0000] # CIRCLED IDEOGRAPH RESOURCE
F903 ; [.FB41.0020.0002][.8CC8.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F903
FA64 ; [.FB41.0020.0002][.8CD3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA64
@@ -27579,7 +29658,7 @@ FAC1 ; [.FB41.0020.0002][.8D08.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAC1
1F230 ; [.FB41.0020.001C][.8D70.0000.0000] # SQUARED CJK UNIFIED IDEOGRAPH-8D70
2F9D7 ; [.FB41.0020.0002][.8D77.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9D7
2F9C ; [.FB41.0020.0004][.8DB3.0000.0000] # KANGXI RADICAL FOOT
-2ECA ; [.FB41.0020.0004][.8DB3.0000.0000][.0000.0108.0004] # CJK RADICAL FOOT
+2ECA ; [.FB41.0020.0004][.8DB3.0000.0000][.0000.010B.0004] # CJK RADICAL FOOT
2F9DB ; [.FB41.0020.0002][.8DBC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9DB
2F9DA ; [.FB41.0020.0002][.8DCB.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9DA
F937 ; [.FB41.0020.0002][.8DEF.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F937
@@ -27602,8 +29681,8 @@ F971 ; [.FB41.0020.0002][.8FB0.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F971
2FA1 ; [.FB41.0020.0004][.8FB5.0000.0000] # KANGXI RADICAL WALK
FA66 ; [.FB41.0020.0002][.8FB6.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA66
2ECC ; [.FB41.0020.0004][.8FB6.0000.0000] # CJK RADICAL SIMPLIFIED WALK
-2ECD ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.0108.0004] # CJK RADICAL WALK ONE
-2ECE ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.0109.0004] # CJK RADICAL WALK TWO
+2ECD ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.010B.0004] # CJK RADICAL WALK ONE
+2ECE ; [.FB41.0020.0004][.8FB6.0000.0000][.0000.010C.0004] # CJK RADICAL WALK TWO
F99A ; [.FB41.0020.0002][.9023.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F99A
FA25 ; [.FB41.0020.0002][.9038.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA25
FA67 ; [.FB41.0020.0002][.9038.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA67
@@ -27613,7 +29692,7 @@ FAC3 ; [.FB41.0020.0002][.9072.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAC3
F9C3 ; [.FB41.0020.0002][.907C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9C3
F913 ; [.FB41.0020.0002][.908F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F913
2FA2 ; [.FB41.0020.0004][.9091.0000.0000] # KANGXI RADICAL CITY
-2ECF ; [.FB41.0020.0004][.9091.0000.0000][.0000.0108.0004] # CJK RADICAL CITY
+2ECF ; [.FB41.0020.0004][.9091.0000.0000][.0000.010B.0004] # CJK RADICAL CITY
2F9E2 ; [.FB41.0020.0002][.9094.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9E2
F92C ; [.FB41.0020.0002][.90CE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F92C
FA2E ; [.FB41.0020.0002][.90DE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA2E
@@ -27631,7 +29710,7 @@ F9E9 ; [.FB41.0020.0002][.91CC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9E9
F97E ; [.FB41.0020.0002][.91CF.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F97E
F90A ; [.FB41.0020.0002][.91D1.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F90A
2FA6 ; [.FB41.0020.0004][.91D1.0000.0000] # KANGXI RADICAL GOLD
-322E ; [*030A.0020.0004][.FB41.0020.0004][.91D1.0000.0000][*030B.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
+322E ; [*0310.0020.0004][.FB41.0020.0004][.91D1.0000.0000][*0311.0020.0004] # PARENTHESIZED IDEOGRAPH METAL
328E ; [.FB41.0020.0006][.91D1.0000.0000] # CIRCLED IDEOGRAPH METAL
F9B1 ; [.FB41.0020.0002][.9234.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9B1
2F9E7 ; [.FB41.0020.0002][.9238.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9E7
@@ -27654,7 +29733,7 @@ F986 ; [.FB41.0020.0002][.95AD.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F986
2F9F0 ; [.FB41.0020.0002][.95B7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9F0
2ED4 ; [.FB41.0020.0004][.95E8.0000.0000] # CJK RADICAL C-SIMPLIFIED GATE
2FA9 ; [.FB41.0020.0004][.961C.0000.0000] # KANGXI RADICAL MOUND
-2ED5 ; [.FB41.0020.0004][.961C.0000.0000][.0000.0108.0004] # CJK RADICAL MOUND ONE
+2ED5 ; [.FB41.0020.0004][.961C.0000.0000][.0000.010B.0004] # CJK RADICAL MOUND ONE
2ED6 ; [.FB41.0020.0004][.961D.0000.0000] # CJK RADICAL MOUND TWO
F9C6 ; [.FB41.0020.0002][.962E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9C6
F951 ; [.FB41.0020.0002][.964B.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F951
@@ -27673,7 +29752,7 @@ F9EA ; [.FB41.0020.0002][.96E2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9EA
FA68 ; [.FB41.0020.0002][.96E3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA68
FAC7 ; [.FB41.0020.0002][.96E3.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAC7
2FAC ; [.FB41.0020.0004][.96E8.0000.0000] # KANGXI RADICAL RAIN
-2ED7 ; [.FB41.0020.0004][.96E8.0000.0000][.0000.0108.0004] # CJK RADICAL RAIN
+2ED7 ; [.FB41.0020.0004][.96E8.0000.0000][.0000.010B.0004] # CJK RADICAL RAIN
F9B2 ; [.FB41.0020.0002][.96F6.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9B2
F949 ; [.FB41.0020.0002][.96F7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F949
2F9F5 ; [.FB41.0020.0002][.9723.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2F9F5
@@ -27712,7 +29791,7 @@ F9D0 ; [.FB41.0020.0002][.985E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9D0
2EDD ; [.FB41.0020.0004][.98DF.0000.0000] # CJK RADICAL EAT ONE
2FB7 ; [.FB41.0020.0004][.98DF.0000.0000] # KANGXI RADICAL EAT
2EDF ; [.FB41.0020.0004][.98E0.0000.0000] # CJK RADICAL EAT THREE
-2EDE ; [.FB41.0020.0004][.98E0.0000.0000][.0000.0108.0004] # CJK RADICAL EAT TWO
+2EDE ; [.FB41.0020.0004][.98E0.0000.0000][.0000.010B.0004] # CJK RADICAL EAT TWO
2FA02 ; [.FB41.0020.0002][.98E2.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA02
FA2A ; [.FB41.0020.0002][.98EF.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA2A
FA2B ; [.FB41.0020.0002][.98FC.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA2B
@@ -27720,7 +29799,7 @@ FA2C ; [.FB41.0020.0002][.9928.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA2C
2FA04 ; [.FB41.0020.0002][.9929.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA04
2EE0 ; [.FB41.0020.0004][.9963.0000.0000] # CJK RADICAL C-SIMPLIFIED EAT
2FB8 ; [.FB41.0020.0004][.9996.0000.0000] # KANGXI RADICAL HEAD
-2EE1 ; [.FB41.0020.0004][.9996.0000.0000][.0000.0108.0004] # CJK RADICAL HEAD
+2EE1 ; [.FB41.0020.0004][.9996.0000.0000][.0000.010B.0004] # CJK RADICAL HEAD
2FB9 ; [.FB41.0020.0004][.9999.0000.0000] # KANGXI RADICAL FRAGRANT
2FA05 ; [.FB41.0020.0002][.99A7.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA05
2FBA ; [.FB41.0020.0004][.99AC.0000.0000] # KANGXI RADICAL HORSE
@@ -27730,7 +29809,7 @@ F91A ; [.FB41.0020.0002][.99F1.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F91A
F987 ; [.FB41.0020.0002][.9A6A.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F987
2EE2 ; [.FB41.0020.0004][.9A6C.0000.0000] # CJK RADICAL C-SIMPLIFIED HORSE
2FBB ; [.FB41.0020.0004][.9AA8.0000.0000] # KANGXI RADICAL BONE
-2EE3 ; [.FB41.0020.0004][.9AA8.0000.0000][.0000.0108.0004] # CJK RADICAL BONE
+2EE3 ; [.FB41.0020.0004][.9AA8.0000.0000][.0000.010B.0004] # CJK RADICAL BONE
2FBC ; [.FB41.0020.0004][.9AD8.0000.0000] # KANGXI RADICAL TALL
2FBD ; [.FB41.0020.0004][.9ADF.0000.0000] # KANGXI RADICAL HAIR
FACD ; [.FB41.0020.0002][.9B12.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FACD
@@ -27739,7 +29818,7 @@ FACD ; [.FB41.0020.0002][.9B12.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FACD
2FBF ; [.FB41.0020.0004][.9B2F.0000.0000] # KANGXI RADICAL SACRIFICIAL WINE
2FC0 ; [.FB41.0020.0004][.9B32.0000.0000] # KANGXI RADICAL CAULDRON
2FC1 ; [.FB41.0020.0004][.9B3C.0000.0000] # KANGXI RADICAL GHOST
-2EE4 ; [.FB41.0020.0004][.9B3C.0000.0000][.0000.0108.0004] # CJK RADICAL GHOST
+2EE4 ; [.FB41.0020.0004][.9B3C.0000.0000][.0000.010B.0004] # CJK RADICAL GHOST
2FC2 ; [.FB41.0020.0004][.9B5A.0000.0000] # KANGXI RADICAL FISH
F939 ; [.FB41.0020.0002][.9B6F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F939
2FA0B ; [.FB41.0020.0002][.9C40.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-2FA0B
@@ -27753,7 +29832,7 @@ F93A ; [.FB41.0020.0002][.9DFA.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F93A
F920 ; [.FB41.0020.0002][.9E1E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F920
2EE6 ; [.FB41.0020.0004][.9E1F.0000.0000] # CJK RADICAL C-SIMPLIFIED BIRD
2FC4 ; [.FB41.0020.0004][.9E75.0000.0000] # KANGXI RADICAL SALT
-2EE7 ; [.FB41.0020.0004][.9E75.0000.0000][.0000.0108.0004] # CJK RADICAL C-SIMPLIFIED SALT
+2EE7 ; [.FB41.0020.0004][.9E75.0000.0000][.0000.010B.0004] # CJK RADICAL C-SIMPLIFIED SALT
F940 ; [.FB41.0020.0002][.9E7F.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F940
2FC5 ; [.FB41.0020.0004][.9E7F.0000.0000] # KANGXI RADICAL DEER
F988 ; [.FB41.0020.0002][.9E97.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F988
@@ -27782,22 +29861,22 @@ F989 ; [.FB41.0020.0002][.9ECE.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F989
2FD0 ; [.FB41.0020.0004][.9F3B.0000.0000] # KANGXI RADICAL NOSE
FAD8 ; [.FB41.0020.0002][.9F43.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAD8
2FD1 ; [.FB41.0020.0004][.9F4A.0000.0000] # KANGXI RADICAL EVEN
-2EEB ; [.FB41.0020.0004][.9F4A.0000.0000][.0000.0108.0004] # CJK RADICAL J-SIMPLIFIED EVEN
+2EEB ; [.FB41.0020.0004][.9F4A.0000.0000][.0000.010B.0004] # CJK RADICAL J-SIMPLIFIED EVEN
2EEC ; [.FB41.0020.0004][.9F50.0000.0000] # CJK RADICAL C-SIMPLIFIED EVEN
2FD2 ; [.FB41.0020.0004][.9F52.0000.0000] # KANGXI RADICAL TOOTH
-2EED ; [.FB41.0020.0004][.9F52.0000.0000][.0000.0108.0004] # CJK RADICAL J-SIMPLIFIED TOOTH
+2EED ; [.FB41.0020.0004][.9F52.0000.0000][.0000.010B.0004] # CJK RADICAL J-SIMPLIFIED TOOTH
2EEE ; [.FB41.0020.0004][.9F7F.0000.0000] # CJK RADICAL C-SIMPLIFIED TOOTH
F9C4 ; [.FB41.0020.0002][.9F8D.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F9C4
2FD3 ; [.FB41.0020.0004][.9F8D.0000.0000] # KANGXI RADICAL DRAGON
-2EEF ; [.FB41.0020.0004][.9F8D.0000.0000][.0000.0108.0004] # CJK RADICAL J-SIMPLIFIED DRAGON
+2EEF ; [.FB41.0020.0004][.9F8D.0000.0000][.0000.010B.0004] # CJK RADICAL J-SIMPLIFIED DRAGON
FAD9 ; [.FB41.0020.0002][.9F8E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FAD9
2EF0 ; [.FB41.0020.0004][.9F99.0000.0000] # CJK RADICAL C-SIMPLIFIED DRAGON
F907 ; [.FB41.0020.0002][.9F9C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F907
F908 ; [.FB41.0020.0002][.9F9C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-F908
FACE ; [.FB41.0020.0002][.9F9C.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FACE
2FD4 ; [.FB41.0020.0004][.9F9C.0000.0000] # KANGXI RADICAL TURTLE
-2EF1 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.0108.0004] # CJK RADICAL TURTLE
-2EF2 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.0109.0004] # CJK RADICAL J-SIMPLIFIED TURTLE
+2EF1 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.010B.0004] # CJK RADICAL TURTLE
+2EF2 ; [.FB41.0020.0004][.9F9C.0000.0000][.0000.010C.0004] # CJK RADICAL J-SIMPLIFIED TURTLE
2EF3 ; [.FB41.0020.0004][.9F9F.0000.0000] # CJK RADICAL C-SIMPLIFIED TURTLE
2FD5 ; [.FB41.0020.0004][.9FA0.0000.0000] # KANGXI RADICAL FLUTE
FA0E ; [.FB41.0020.0002][.FA0E.0000.0000] # CJK COMPATIBILITY IDEOGRAPH-FA0E
diff --git a/Master/tlpkg/tlperl/lib/Unicode/Normalize.pm b/Master/tlpkg/tlperl/lib/Unicode/Normalize.pm
index ff6c0f0dc47..b53f5c728b9 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/Normalize.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/Normalize.pm
@@ -161,7 +161,7 @@ Unicode::Normalize - Unicode Normalization Forms
Parameters:
-C<$string> is used as a string under character semantics (see F<perlunicode>).
+C<$string> is used as a string under character semantics (see L<perlunicode>).
C<$code_point> should be an unsigned integer representing a Unicode code point.
@@ -238,8 +238,8 @@ the decomposition is compatibility decomposition.
The string returned is not always in NFD/NFKD. Reordering may be required.
- $NFD_string = reorder(decompose($string)); # eq. to NFD()
- $NFKD_string = reorder(decompose($string, TRUE)); # eq. to NFKD()
+ $NFD_string = reorder(decompose($string)); # eq. to NFD()
+ $NFKD_string = reorder(decompose($string, TRUE)); # eq. to NFKD()
=item C<$reordered_string = reorder($string)>
@@ -277,12 +277,12 @@ should be equal to the entire C<$normalized>.
When you have a C<$normalized> string and an C<$unnormalized> string
following it, a simple concatenation is wrong:
- $concat = $normalized . normalize($form, $unnormalized); # wrong!
+ $concat = $normalized . normalize($form, $unnormalized); # wrong!
Instead of it, do like this:
- ($processed, $unprocessed) = splitOnLastStarter($normalized);
- $concat = $processed . normalize($form, $unprocessed.$unnormalized);
+ ($processed, $unprocessed) = splitOnLastStarter($normalized);
+ $concat = $processed . normalize($form,$unprocessed.$unnormalized);
C<splitOnLastStarter()> should be called with a pre-normalized parameter
C<$normalized>, that is in the same form as C<$form> you want.
@@ -548,7 +548,7 @@ compiled into your perl. The following table lists the default Unicode
version that comes with various perl versions. (It is possible to change
the Unicode version in any perl version to be any earlier Unicode version,
so one could cause Unicode 3.2 to be used in any perl version starting with
-5.8.0. See C<$Config{privlib}>/F<unicore/README.perl>.
+5.8.0. Read F<C<$Config{privlib}>/unicore/README.perl> for details.
perl's version implemented Unicode version
5.6.1 3.0.1
diff --git a/Master/tlpkg/tlperl/lib/Unicode/UCD.pm b/Master/tlpkg/tlperl/lib/Unicode/UCD.pm
index 13c2c785981..4939677fccb 100644
--- a/Master/tlpkg/tlperl/lib/Unicode/UCD.pm
+++ b/Master/tlpkg/tlperl/lib/Unicode/UCD.pm
@@ -5,7 +5,7 @@ use warnings;
no warnings 'surrogate'; # surrogates can be inputs to this
use charnames ();
-our $VERSION = '0.64';
+our $VERSION = '0.68';
require Exporter;
@@ -98,6 +98,9 @@ Unicode::UCD - Unicode character database
use Unicode::UCD 'search_invlist';
my $index = search_invlist(\@invlist, $code_point);
+ # The following function should be used only internally in
+ # implementations of the Unicode Normalization Algorithm, and there
+ # are better choices than it.
use Unicode::UCD 'compexcl';
my $compexcl = compexcl($codepoint);
@@ -128,7 +131,8 @@ Examples:
223 # Decimal 223 in native character set
0223 # Hexadecimal 223, native (= 547 decimal)
- 0xDF # Hexadecimal DF, native (= 223 decimal
+ 0xDF # Hexadecimal DF, native (= 223 decimal)
+ '0xDF' # String form of hexadecimal (= 223 decimal)
'U+DF' # Hexadecimal DF, in Unicode's character set
(= LATIN SMALL LETTER SHARP S)
@@ -150,7 +154,7 @@ sub openunicode {
for my $d (@INC) {
use File::Spec;
$f = File::Spec->catfile($d, "unicore", @path);
- last if open($$rfh, $f);
+ last if open($$rfh, '<', $f);
undef $f;
}
croak __PACKAGE__, ": failed to find ",
@@ -334,7 +338,8 @@ See L</Blocks versus Scripts>.
the script I<code> belongs to.
The L</prop_value_aliases()> function can be used to get all the synonyms
-of the script name.
+of the script name. Note that this is the older "Script" property value, and
+not the improved "Script_Extensions" value.
See L</Blocks versus Scripts>.
@@ -962,6 +967,10 @@ 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.
+Note that the Script_Extensions property is an improved version of the Script
+property, and you should probably be using that instead, with the
+L</charprop()> function.
+
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
return value is a I<range set>: an anonymous array of arrays that contain
@@ -1052,7 +1061,9 @@ names as the keys, and the code point ranges (see L</charscript()>) as
the values.
L<prop_invmap("script")|/prop_invmap()> can be used to get this same data in a
-different type of data structure.
+different type of data structure. Since the Script_Extensions property is an
+improved version of the Script property, you should instead use
+L<prop_invmap("scx")|/prop_invmap()>.
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.
@@ -1199,6 +1210,12 @@ sub bidi_types {
=head2 B<compexcl()>
+WARNING: Unicode discourages the use of this function or any of the
+alternative mechanisms listed in this section (the documentation of
+C<compexcl()>), except internally in implementations of the Unicode
+Normalization Algorithm. You should be using L<Unicode::Normalize> directly
+instead of these. Using these will likely lead to half-baked results.
+
use Unicode::UCD 'compexcl';
my $compexcl = compexcl(0x09dc);
@@ -2458,7 +2475,7 @@ resolving the input property's name as is done for regular expressions. These
are also specified in L<perluniprops|perluniprops/Properties accessible
through \p{} and \P{}>. Examples of using the "property=value" form are:
- say join ", ", prop_invlist("Script=Shavian");
+ say join ", ", prop_invlist("Script_Extensions=Shavian");
prints:
66640, 66688
@@ -3043,6 +3060,8 @@ L<Unicode::Normalize::NFD()|Unicode::Normalize>.
Note that the mapping is the one that is specified in the Unicode data files,
and to get the final decomposition, it may need to be applied recursively.
+Unicode in fact discourages use of this property except internally in
+implementations of the Unicode Normalization Algorithm.
The fourth (index [3]) element (C<$default>) in the list returned for this
format is 0.
@@ -3136,11 +3155,48 @@ 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<"N>" in a Perl regular expression 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.
+=head3 Getting every available name
+
+Instead of reading the Unicode Database directly from files, as you were able
+to do for a long time, you are encouraged to use the supplied functions. So,
+instead of reading C<Name.pl> - which may disappear without notice in the
+future - directly, as with
+
+ my (%name, %cp);
+ for (split m/\s*\n/ => do "unicore/Name.pl") {
+ my ($cp, $name) = split m/\t/ => $_;
+ $cp{$name} = $cp;
+ $name{$cp} = $name unless $cp =~ m/ /;
+ }
+
+You ought to use L</prop_invmap()> like this:
+
+ my (%name, %cp, %cps, $n);
+ # All codepoints
+ foreach my $cat (qw( Name Name_Alias )) {
+ my ($codepoints, $names, $format, $default) = prop_invmap($cat);
+ # $format => "n", $default => ""
+ foreach my $i (0 .. @$codepoints - 2) {
+ my ($cp, $n) = ($codepoints->[$i], $names->[$i]);
+ # If $n is a ref, the same codepoint has multiple names
+ foreach my $name (ref $n ? @$n : $n) {
+ $name{$cp} //= $name;
+ $cp{$name} //= $cp;
+ }
+ }
+ }
+ # Named sequences
+ { my %ns = namedseq();
+ foreach my $name (sort { $ns{$a} cmp $ns{$b} } keys %ns) {
+ $cp{$name} //= [ map { ord } split "" => $ns{$name} ];
+ }
+ }
+
=cut
# User-defined properties could be handled with some changes to utf8_heavy.pl;
diff --git a/Master/tlpkg/tlperl/lib/XSLoader.pm b/Master/tlpkg/tlperl/lib/XSLoader.pm
index 8ff7cd1cdc9..3a4491b5f42 100644
--- a/Master/tlpkg/tlperl/lib/XSLoader.pm
+++ b/Master/tlpkg/tlperl/lib/XSLoader.pm
@@ -1,9 +1,9 @@
-# Generated from XSLoader.pm.PL (resolved %Config::Config value)
+# Generated from XSLoader_pm.PL (resolved %Config::Config value)
# This file is unique for every OS
package XSLoader;
-$VERSION = "0.22";
+$VERSION = "0.27";
#use strict;
@@ -73,7 +73,7 @@ sub load {
if (-s $bs) { # only read file if it's not empty
# print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug;
- eval { do $bs; };
+ eval { local @INC = ('.'); do $bs; };
warn "$bs: $@\n" if $@;
goto \&XSLoader::bootstrap_inherit;
}
@@ -130,7 +130,7 @@ XSLoader - Dynamically load C libraries into Perl code
=head1 VERSION
-Version 0.22
+Version 0.24
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/lib/_charnames.pm b/Master/tlpkg/tlperl/lib/_charnames.pm
index bb7d7c6c7b0..444eb1d6f7e 100644
--- a/Master/tlpkg/tlperl/lib/_charnames.pm
+++ b/Master/tlpkg/tlperl/lib/_charnames.pm
@@ -6,7 +6,7 @@
package _charnames;
use strict;
use warnings;
-our $VERSION = '1.43';
+our $VERSION = '1.45';
use unicore::Name; # mktables-generated algorithmically-defined names
use bytes (); # for $bytes::hint_bits
@@ -202,13 +202,6 @@ sub alias (@) # Set up a single alias
}
$^H{charnames_name_aliases}{$name} = $value;
- if (warnings::enabled('deprecated')
- && $name =~ / ( .* $nbsp ) ( .* ) $ /x)
- {
- carp "NO-BREAK SPACE in a charnames alias definition is "
- . "deprecated; marked by <-- HERE in '$1 <-- HERE "
- . $2 . "'";
- }
}
}
}
diff --git a/Master/tlpkg/tlperl/lib/arybase.pm b/Master/tlpkg/tlperl/lib/arybase.pm
index a519a4b3927..64efe3e5d67 100644
--- a/Master/tlpkg/tlperl/lib/arybase.pm
+++ b/Master/tlpkg/tlperl/lib/arybase.pm
@@ -1,6 +1,6 @@
package arybase;
-our $VERSION = "0.11";
+our $VERSION = "0.12";
require XSLoader;
XSLoader::load(); # This returns true, which makes require happy.
diff --git a/Master/tlpkg/tlperl/lib/attributes.pm b/Master/tlpkg/tlperl/lib/attributes.pm
index f7af31b7b4c..7eb8e30ed88 100644
--- a/Master/tlpkg/tlperl/lib/attributes.pm
+++ b/Master/tlpkg/tlperl/lib/attributes.pm
@@ -1,6 +1,6 @@
package attributes;
-our $VERSION = 0.27;
+our $VERSION = 0.29;
@EXPORT_OK = qw(get reftype);
@EXPORT = ();
@@ -38,7 +38,8 @@ sub _modify_attrs_and_deprecate {
grep {
$deprecated{$svtype} && /$deprecated{$svtype}/ ? do {
require warnings;
- warnings::warnif('deprecated', "Attribute \"$1\" is deprecated");
+ warnings::warnif('deprecated', "Attribute \"$1\" is deprecated, " .
+ "and will disappear in Perl 5.28");
0;
} : $svtype eq 'CODE' && exists $msg{$_} ? do {
require warnings;
@@ -258,7 +259,8 @@ attribute will be sanity checked at compile time.
=item locked
The "locked" attribute is deprecated, and has no effect in 5.10.0 and later.
-It was used as part of the now-removed "Perl 5.005 threads".
+It was used as part of the now-removed "Perl 5.005 threads". It will
+disappear in Perl 5.28, after which its use will be fatal.
=item const
@@ -283,7 +285,8 @@ when used in conjunction with the L<threads> and L<threads::shared> modules.
The "unique" attribute is deprecated, and has no effect in 5.10.0 and later.
It used to indicate that a single copy of an C<our> variable was to be used by
all interpreters should the program happen to be running in a
-multi-interpreter environment.
+multi-interpreter environment. It will disappear in 5.28, after which its
+use will be fatal.
=back
diff --git a/Master/tlpkg/tlperl/lib/auto/B/B.dll b/Master/tlpkg/tlperl/lib/auto/B/B.dll
index 88d7532a10a..1bed52a72e7 100755
--- a/Master/tlpkg/tlperl/lib/auto/B/B.dll
+++ b/Master/tlpkg/tlperl/lib/auto/B/B.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll b/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
index e732bfe8591..c2b962a8647 100755
--- a/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Bzip2/Bzip2.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll b/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
index c4c1a49e08a..2f55d3a4dbc 100755
--- a/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Compress/Raw/Zlib/Zlib.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll b/Master/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
index 4bc5e4fc915..f5357648c35 100755
--- a/Master/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Cwd/Cwd.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll b/Master/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
index cbf9cec0f5f..34333ae5723 100755
--- a/Master/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Data/Dumper/Dumper.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll b/Master/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
index 399575e0580..a7fd8f4c6a1 100755
--- a/Master/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Devel/Peek/Peek.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll b/Master/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
index b8aeeaa44e7..35153e30b88 100755
--- a/Master/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Digest/MD5/MD5.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll b/Master/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
index 5412620e3f8..afac616f131 100755
--- a/Master/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Digest/SHA/SHA.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll b/Master/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
index 5a3b63f6abf..fc337300738 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/Byte/Byte.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll b/Master/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
index f2841410ed5..08453f19c89 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/CN/CN.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll b/Master/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
index bfd094da4c5..6eef96e320e 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/EBCDIC/EBCDIC.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Encode.dll b/Master/tlpkg/tlperl/lib/auto/Encode/Encode.dll
index 17c1ebeb595..e46b241c4b8 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Encode.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/Encode.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll b/Master/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
index efcd357724f..3a56e38c695 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/JP/JP.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll b/Master/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
index 040c4b80c80..93296e4342e 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/KR/KR.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll b/Master/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
index 1acd1bbbe3c..704294483cb 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/Symbol/Symbol.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll b/Master/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
index 6815f293fe2..151a1f4c8fc 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/TW/TW.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll b/Master/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
index 3d630a56775..d351869755a 100755
--- a/Master/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Encode/Unicode/Unicode.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll b/Master/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
index 17bcbaf087d..f49596a6ed5 100755
--- a/Master/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Fcntl/Fcntl.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll b/Master/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
index 0b9a238e3dc..dc8769e4d28 100755
--- a/Master/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
+++ b/Master/tlpkg/tlperl/lib/auto/File/DosGlob/DosGlob.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll b/Master/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
index c8c906836d9..7dce6e5ac15 100755
--- a/Master/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
+++ b/Master/tlpkg/tlperl/lib/auto/File/Glob/Glob.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll b/Master/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
index 9abc0fd5319..100b5100de5 100755
--- a/Master/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Filter/Util/Call/Call.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll b/Master/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
index ae5d80034f8..6b7218fc7bc 100755
--- a/Master/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Hash/Util/FieldHash/FieldHash.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll b/Master/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
index fa4f6b9f90e..0a5e5d8c22a 100755
--- a/Master/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Hash/Util/Util.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/IO/IO.dll b/Master/tlpkg/tlperl/lib/auto/IO/IO.dll
index 88e99a0a0f1..ebc3083bfb9 100755
--- a/Master/tlpkg/tlperl/lib/auto/IO/IO.dll
+++ b/Master/tlpkg/tlperl/lib/auto/IO/IO.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/List/Util/Util.dll b/Master/tlpkg/tlperl/lib/auto/List/Util/Util.dll
index 207ab911638..45db146a256 100755
--- a/Master/tlpkg/tlperl/lib/auto/List/Util/Util.dll
+++ b/Master/tlpkg/tlperl/lib/auto/List/Util/Util.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll b/Master/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
index f8c14a3ab3f..14e01b3b0a3 100755
--- a/Master/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
+++ b/Master/tlpkg/tlperl/lib/auto/MIME/Base64/Base64.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll b/Master/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
index 5c50a937a58..db681b25ff1 100755
--- a/Master/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Math/BigInt/FastCalc/FastCalc.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll b/Master/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
index f1cdff4c634..e58438d68ed 100755
--- a/Master/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Opcode/Opcode.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll b/Master/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
index ed7fc32df89..1877b9d9058 100755
--- a/Master/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
+++ b/Master/tlpkg/tlperl/lib/auto/POSIX/POSIX.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll b/Master/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
index 2e6b3c557f1..db8b718b5ac 100755
--- a/Master/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
+++ b/Master/tlpkg/tlperl/lib/auto/PerlIO/encoding/encoding.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll b/Master/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
index 39730e468d0..6cde9d178e1 100755
--- a/Master/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
+++ b/Master/tlpkg/tlperl/lib/auto/PerlIO/mmap/mmap.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll b/Master/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
index bae04f98d8a..d8cfb1dc9b2 100755
--- a/Master/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
+++ b/Master/tlpkg/tlperl/lib/auto/PerlIO/scalar/scalar.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll b/Master/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
index f7bf56057a2..c2fd8d0ad9c 100755
--- a/Master/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
+++ b/Master/tlpkg/tlperl/lib/auto/PerlIO/via/via.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll b/Master/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
index 02dcf0ee232..d8bfc8911c7 100755
--- a/Master/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
+++ b/Master/tlpkg/tlperl/lib/auto/SDBM_File/SDBM_File.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Socket/Socket.dll b/Master/tlpkg/tlperl/lib/auto/Socket/Socket.dll
index a0679213454..76f6e374e18 100755
--- a/Master/tlpkg/tlperl/lib/auto/Socket/Socket.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Socket/Socket.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll b/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll
index 652bc4900f4..fbb8089ed62 100755
--- a/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Storable/Storable.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll b/Master/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
index 8005463b289..80ab68bf761 100755
--- a/Master/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Sys/Hostname/Hostname.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll b/Master/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll
index 9a30c3026c2..de06a436b36 100755
--- a/Master/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Tie/Hash/NamedCapture/NamedCapture.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll b/Master/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
index 45aafc35ff2..025f25953b4 100755
--- a/Master/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Time/HiRes/HiRes.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll b/Master/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
index cb6bbd8443d..6d46b7168c6 100755
--- a/Master/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Time/Piece/Piece.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll b/Master/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
index 51f80f2348f..2961eedaf72 100755
--- a/Master/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Unicode/Collate/Collate.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll b/Master/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
index 3e933d5df99..21585518817 100755
--- a/Master/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Unicode/Normalize/Normalize.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32/Win32.dll b/Master/tlpkg/tlperl/lib/auto/Win32/Win32.dll
index 44a03699d0d..2792b3f41ed 100755
--- a/Master/tlpkg/tlperl/lib/auto/Win32/Win32.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Win32/Win32.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/Win32API/File/File.dll b/Master/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
index a68c91eddfe..b3cf48ef0a5 100755
--- a/Master/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
+++ b/Master/tlpkg/tlperl/lib/auto/Win32API/File/File.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/arybase/arybase.dll b/Master/tlpkg/tlperl/lib/auto/arybase/arybase.dll
index 8b92c72d2b9..c46cb417b25 100755
--- a/Master/tlpkg/tlperl/lib/auto/arybase/arybase.dll
+++ b/Master/tlpkg/tlperl/lib/auto/arybase/arybase.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/attributes/attributes.dll b/Master/tlpkg/tlperl/lib/auto/attributes/attributes.dll
index 40643f192ae..bb98662cde0 100755
--- a/Master/tlpkg/tlperl/lib/auto/attributes/attributes.dll
+++ b/Master/tlpkg/tlperl/lib/auto/attributes/attributes.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/mro/mro.dll b/Master/tlpkg/tlperl/lib/auto/mro/mro.dll
index 9ee5a3ef641..d5fb07ea94c 100755
--- a/Master/tlpkg/tlperl/lib/auto/mro/mro.dll
+++ b/Master/tlpkg/tlperl/lib/auto/mro/mro.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/re/re.dll b/Master/tlpkg/tlperl/lib/auto/re/re.dll
index 24df706a596..f506e94f0ff 100755
--- a/Master/tlpkg/tlperl/lib/auto/re/re.dll
+++ b/Master/tlpkg/tlperl/lib/auto/re/re.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/threads/shared/shared.dll b/Master/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
index 75a3fccc16f..f8cb479ea33 100755
--- a/Master/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
+++ b/Master/tlpkg/tlperl/lib/auto/threads/shared/shared.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/auto/threads/threads.dll b/Master/tlpkg/tlperl/lib/auto/threads/threads.dll
index 8bc629e3f14..25afbd4a8c5 100755
--- a/Master/tlpkg/tlperl/lib/auto/threads/threads.dll
+++ b/Master/tlpkg/tlperl/lib/auto/threads/threads.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/lib/base.pm b/Master/tlpkg/tlperl/lib/base.pm
index 6fee6008fc2..017574eaff4 100644
--- a/Master/tlpkg/tlperl/lib/base.pm
+++ b/Master/tlpkg/tlperl/lib/base.pm
@@ -3,9 +3,14 @@ package base;
use strict 'vars';
use vars qw($VERSION);
-$VERSION = '2.23';
+$VERSION = '2.26';
$VERSION =~ tr/_//d;
+# simplest way to avoid indexing of the package: no package statement
+sub base::__inc::unhook { @INC = grep !(ref eq 'CODE' && $_ == $_[0]), @INC }
+# instance is blessed array of coderefs to be removed from @INC at scope exit
+sub base::__inc::scope_guard::DESTROY { base::__inc::unhook $_ for @{$_[0]} }
+
# constant.pm is slow
sub SUCCESS () { 1 }
@@ -91,13 +96,59 @@ sub import {
next if grep $_->isa($base), ($inheritor, @bases);
- # Following blocks help isolate $SIG{__DIE__} changes
+ # Following blocks help isolate $SIG{__DIE__} and @INC changes
{
my $sigdie;
{
local $SIG{__DIE__};
my $fn = _module_to_filename($base);
- eval { require $fn };
+ my $dot_hidden;
+ eval {
+ my $guard;
+ if ($INC[-1] eq '.' && %{"$base\::"}) {
+ # So: the package already exists => this an optional load
+ # And: there is a dot at the end of @INC => we want to hide it
+ # However: we only want to hide it during our *own* require()
+ # (i.e. without affecting nested require()s).
+ # So we add a hook to @INC whose job is to hide the dot, but which
+ # first checks checks the callstack depth, because within nested
+ # require()s the callstack is deeper.
+ # Since CORE::GLOBAL::require makes it unknowable in advance what
+ # the exact relevant callstack depth will be, we have to record it
+ # inside a hook. So we put another hook just for that at the front
+ # of @INC, where it's guaranteed to run -- immediately.
+ # The dot-hiding hook does its job by sitting directly in front of
+ # the dot and removing itself from @INC when reached. This causes
+ # the dot to move up one index in @INC, causing the loop inside
+ # pp_require() to skip it.
+ # Loaded coded may disturb this precise arrangement, but that's OK
+ # because the hook is inert by that time. It is only active during
+ # the top-level require(), when @INC is in our control. The only
+ # possible gotcha is if other hooks already in @INC modify @INC in
+ # some way during that initial require().
+ # Note that this jiggery hookery works just fine recursively: if
+ # a module loaded via base.pm uses base.pm itself, there will be
+ # one pair of hooks in @INC per base::import call frame, but the
+ # pairs from different nestings do not interfere with each other.
+ my $lvl;
+ unshift @INC, sub { return if defined $lvl; 1 while defined caller ++$lvl; () };
+ splice @INC, -1, 0, sub { return if defined caller $lvl; ++$dot_hidden, &base::__inc::unhook; () };
+ $guard = bless [ @INC[0,-2] ], 'base::__inc::scope_guard';
+ }
+ require $fn
+ };
+ if ($dot_hidden && (my @fn = grep -e && !( -d _ || -b _ ), $fn.'c', $fn)) {
+ require Carp;
+ Carp::croak(<<ERROR);
+Base class package "$base" is not empty but "$fn[0]" exists in the current directory.
+ To help avoid security issues, base.pm now refuses to load optional modules
+ from the current working directory when it is the last entry in \@INC.
+ If your software worked on previous versions of Perl, the best solution
+ is to use FindBin to detect the path properly and to add that path to
+ \@INC. As a last resort, you can re-enable looking in the current working
+ directory by adding "use lib '.'" to your code.
+ERROR
+ }
# Only ignore "Can't locate" errors from our eval require.
# Other fatal errors (syntax etc) must be reported.
#
diff --git a/Master/tlpkg/tlperl/lib/bigint.pm b/Master/tlpkg/tlperl/lib/bigint.pm
index bc1ebe39724..fa9a705b6e5 100644
--- a/Master/tlpkg/tlperl/lib/bigint.pm
+++ b/Master/tlpkg/tlperl/lib/bigint.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '0.42_01';
+our $VERSION = '0.47';
use Exporter;
our @ISA = qw( Exporter );
@@ -361,8 +361,8 @@ sub import {
}
}
-sub inf () { Math::BigInt::binf(); }
-sub NaN () { Math::BigInt::bnan(); }
+sub inf () { Math::BigInt->binf(); }
+sub NaN () { Math::BigInt->bnan(); }
sub PI () { Math::BigInt->new(3); }
sub e () { Math::BigInt->new(2); }
@@ -775,6 +775,24 @@ to compare them to the results under -Mbignum or -Mbigrat:
perl -Mbigint=a,65 -le 'print 2 ** 0.2'
perl -Mbignum=a,65,l,GMP -le 'print 7 ** 7777'
+=head1 BUGS
+
+For information about bugs and how to report them, see the BUGS section in the
+documentation available with the perldoc command.
+
+ perldoc bignum
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc bigint
+
+For more information, see the SUPPORT section in the documentation available
+with the perldoc command.
+
+ perldoc bignum
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
@@ -782,14 +800,23 @@ the same terms as Perl itself.
=head1 SEE ALSO
-Especially L<bigrat> as in C<perl -Mbigrat -le 'print 1/3+1/4'> and
-L<bignum> as in C<perl -Mbignum -le 'print sqrt(2)'>.
+L<bignum> and L<bigrat>.
-L<Math::BigInt>, L<Math::BigRat> and L<Math::Big> as well
-as L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+L<Math::BigInt>, L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
+L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=head1 AUTHORS
+=over 4
+
+=item *
+
(C) by Tels L<http://bloodgate.com/> in early 2002 - 2007.
+=item *
+
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+
+=back
+
=cut
diff --git a/Master/tlpkg/tlperl/lib/bignum.pm b/Master/tlpkg/tlperl/lib/bignum.pm
index 394b1473554..4e09dcb7220 100644
--- a/Master/tlpkg/tlperl/lib/bignum.pm
+++ b/Master/tlpkg/tlperl/lib/bignum.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '0.42_01';
+our $VERSION = '0.47';
use Exporter;
our @ISA = qw( bigint );
@@ -662,6 +662,46 @@ Some cool command line examples to impress the Python crowd ;)
perl -Mbignum=a,65 -le 'print 2 ** 0.2'
perl -Mbignum=a,65,l,GMP -le 'print 7 ** 7777'
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-math-bigint at rt.cpan.org>, or through the web interface at
+L<https://rt.cpan.org/Ticket/Create.html?Queue=bignum> (requires login).
+We will be notified, and then you'll automatically be notified of
+progress on your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc bignum
+
+You can also look for information at:
+
+=over 4
+
+=item * RT: CPAN's request tracker
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=bignum>
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/bignum>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/dist/bignum>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/bignum/>
+
+=item * CPAN Testers Matrix
+
+L<http://matrix.cpantesters.org/?dist=bignum>
+
+=back
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
@@ -669,13 +709,23 @@ the same terms as Perl itself.
=head1 SEE ALSO
-Especially L<bigrat> as in C<perl -Mbigrat -le 'print 1/3+1/4'>.
+L<bigint> and L<bigrat>.
-L<Math::BigFloat>, L<Math::BigInt>, L<Math::BigRat> and L<Math::Big> as well
-as L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+L<Math::BigInt>, L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
+L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=head1 AUTHORS
+=over 4
+
+=item *
+
(C) by Tels L<http://bloodgate.com/> in early 2002 - 2007.
+=item *
+
+Maintained by Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+
+=back
+
=cut
diff --git a/Master/tlpkg/tlperl/lib/bigrat.pm b/Master/tlpkg/tlperl/lib/bigrat.pm
index 260973b8427..b0c36643a68 100644
--- a/Master/tlpkg/tlperl/lib/bigrat.pm
+++ b/Master/tlpkg/tlperl/lib/bigrat.pm
@@ -4,7 +4,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '0.42_01';
+our $VERSION = '0.47';
use Exporter;
our @ISA = qw( bigint );
@@ -548,6 +548,24 @@ Compare this to:
perl -Mbigrat -le 'print 12->is_odd()';
perl -Mbignum=l,GMP -le 'print 7 ** 7777'
+=head1 BUGS
+
+For information about bugs and how to report them, see the BUGS section in the
+documentation available with the perldoc command.
+
+ perldoc bignum
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc bigrat
+
+For more information, see the SUPPORT section in the documentation available
+with the perldoc command.
+
+ perldoc bignum
+
=head1 LICENSE
This program is free software; you may redistribute it and/or modify it under
@@ -555,13 +573,23 @@ the same terms as Perl itself.
=head1 SEE ALSO
-Especially L<bignum>.
+L<bignum> and L<bigint>.
-L<Math::BigFloat>, L<Math::BigInt>, L<Math::BigRat> and L<Math::Big> as well
-as L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
+L<Math::BigInt>, L<Math::BigFloat>, L<Math::BigRat> and L<Math::Big> as well as
+L<Math::BigInt::FastCalc>, L<Math::BigInt::Pari> and L<Math::BigInt::GMP>.
=head1 AUTHORS
+=over 4
+
+=item *
+
(C) by Tels L<http://bloodgate.com/> in early 2002 - 2007.
+=item *
+
+Peter John Acklam E<lt>pjacklam@gmail.com<gt>, 2014-.
+
+=back
+
=cut
diff --git a/Master/tlpkg/tlperl/lib/charnames.pm b/Master/tlpkg/tlperl/lib/charnames.pm
index 2efe3d58b27..e22c71913c8 100644
--- a/Master/tlpkg/tlperl/lib/charnames.pm
+++ b/Master/tlpkg/tlperl/lib/charnames.pm
@@ -1,7 +1,7 @@
package charnames;
use strict;
use warnings;
-our $VERSION = '1.43';
+our $VERSION = '1.45';
use unicore::Name; # mktables-generated algorithmically-defined names
use _charnames (); # The submodule for this where most of the work gets done
@@ -278,11 +278,9 @@ mean C<"B">, etc.
Aliases must begin with a character that is alphabetic. After that, each may
contain any combination of word (C<\w>) characters, SPACE (U+0020),
-HYPHEN-MINUS (U+002D), LEFT PARENTHESIS (U+0028), RIGHT PARENTHESIS (U+0029),
-and NO-BREAK SPACE (U+00A0). These last three should never have been allowed
-in names, and are retained for backwards compatibility only; NO-BREAK SPACE IS
-currently deprecated and scheduled for removal in Perl v5.26; the other two
-may also be
+HYPHEN-MINUS (U+002D), LEFT PARENTHESIS (U+0028), and RIGHT PARENTHESIS
+(U+0029). These last two should never have been allowed
+in names, and are retained for backwards compatibility only, and may be
deprecated and removed in future releases of Perl, so don't use them for new
names. (More precisely, the first character of a name you specify must be
something that matches all of C<\p{ID_Start}>, C<\p{Alphabetic}>, and
diff --git a/Master/tlpkg/tlperl/lib/diagnostics.pm b/Master/tlpkg/tlperl/lib/diagnostics.pm
index 40c6748c57c..860a0aa846e 100644
--- a/Master/tlpkg/tlperl/lib/diagnostics.pm
+++ b/Master/tlpkg/tlperl/lib/diagnostics.pm
@@ -186,7 +186,7 @@ use 5.009001;
use Carp;
$Carp::Internal{__PACKAGE__.""}++;
-our $VERSION = '1.34';
+our $VERSION = '1.36';
our $DEBUG;
our $VERBOSE;
our $PRETTY;
@@ -231,7 +231,7 @@ CONFIG: {
$PRETTY = $opt_p;
}
- if (open(POD_DIAG, $PODFILE)) {
+ if (open(POD_DIAG, '<', $PODFILE)) {
warn "Happy happy podfile from real $PODFILE\n" if $DEBUG;
last CONFIG;
}
@@ -240,7 +240,7 @@ CONFIG: {
INCPATH: {
for my $file ( (map { "$_/".__PACKAGE__.".pm" } @INC), $0) {
warn "Checking $file\n" if $DEBUG;
- if (open(POD_DIAG, $file)) {
+ if (open(POD_DIAG, '<', $file)) {
while (<POD_DIAG>) {
next unless
/^__END__\s*# wish diag dbase were more accessible/;
@@ -310,6 +310,7 @@ sub transmo {
EOFUNC
my %msg;
+my $over_level = 0; # We look only at =item lines at the first =over level
{
print STDERR "FINISHING COMPILATION for $_\n" if $DEBUG;
local $/ = '';
@@ -386,7 +387,7 @@ my %msg;
push @headers, $header if defined $header;
}
- unless ( s/=item (.*?)\s*\z//s) {
+ if ( ! s/=item (.*?)\s*\z//s || $over_level != 1) {
if ( s/=head1\sDESCRIPTION//) {
$msg{$header = 'DESCRIPTION'} = '';
@@ -395,11 +396,17 @@ my %msg;
elsif( s/^=for\s+diagnostics\s*\n(.*?)\s*\z// ) {
$for_item = $1;
}
- elsif( /^=back/ ) { # Stop processing body here
- undef $header;
- undef $for_item;
- $seen_body = 0;
- next;
+ elsif( /^=over\b/ ) {
+ $over_level++;
+ }
+ elsif( /^=back\b/ ) { # Stop processing body here
+ $over_level--;
+ if ($over_level == 0) {
+ undef $header;
+ undef $for_item;
+ $seen_body = 0;
+ next;
+ }
}
next;
}
diff --git a/Master/tlpkg/tlperl/lib/encoding.pm b/Master/tlpkg/tlperl/lib/encoding.pm
index 8450f9ca127..dc342683ee1 100644
--- a/Master/tlpkg/tlperl/lib/encoding.pm
+++ b/Master/tlpkg/tlperl/lib/encoding.pm
@@ -1,6 +1,6 @@
-# $Id: encoding.pm,v 2.17 2015/09/15 13:53:27 dankogai Exp dankogai $
+# $Id: encoding.pm,v 2.19 2016/11/01 13:30:38 dankogai Exp $
package encoding;
-our $VERSION = sprintf "%d.%02d", q$Revision: 2.17 $ =~ /(\d+)/g;
+our $VERSION = sprintf "%d.%02d", q$Revision: 2.19 $ =~ /(\d+)/g;
use Encode;
use strict;
@@ -114,10 +114,9 @@ sub import {
Carp::croak("encoding: pragma does not support EBCDIC platforms");
}
- if ($] >= 5.017) {
- warnings::warnif("deprecated",
- "Use of the encoding pragma is deprecated")
- }
+ my $deprecate =
+ $] >= 5.017 ? "Use of the encoding pragma is deprecated" : 0;
+
my $class = shift;
my $name = shift;
if (!$name){
@@ -142,6 +141,12 @@ sub import {
}
$name = $enc->name; # canonize
unless ( $arg{Filter} ) {
+ if ($] >= 5.025003) {
+ require Carp;
+ Carp::croak("The encoding pragma is no longer supported");
+ }
+ warnings::warnif("deprecated",$deprecate) if $deprecate;
+
DEBUG and warn "_exception($name) = ", _exception($name);
if (! _exception($name)) {
if (!PERL_5_21_7) {
@@ -155,9 +160,13 @@ sub import {
${^E_NCODING} = $enc;
}
}
- HAS_PERLIO or return 1;
+ if (! HAS_PERLIO ) {
+ return 1;
+ }
}
else {
+ warnings::warnif("deprecated",$deprecate) if $deprecate;
+
defined( ${^ENCODING} ) and undef ${^ENCODING};
undef ${^E_NCODING} if PERL_5_21_7;
@@ -280,6 +289,10 @@ Old code should be converted to UTF-8, via something like the recipe in the
L</SYNOPSIS> (though this simple approach may require manual adjustments
afterwards).
+If UTF-8 is not an option, it is recommended that one use a simple source
+filter, such as that provided by L<Filter::Encoding> on CPAN or this
+pragma's own C<Filter> option (see below).
+
The only legitimate use of this pragma is almost certainly just one per file,
near the top, with file scope, as the file is likely going to only be written
in one encoding. Further restrictions apply in Perls before v5.22 (see
@@ -291,6 +304,9 @@ There are two basic modes of operation (plus turning if off):
=item C<use encoding ['I<ENCNAME>'] ;>
+Please note: This mode of operation is no longer supported as of Perl
+v5.26.
+
This is the normal operation. It translates various literals encountered in
the Perl source file from the encoding I<ENCNAME> into UTF-8, and similarly
converts character code points. This is used when the script is a combination
diff --git a/Master/tlpkg/tlperl/lib/encoding/warnings.pm b/Master/tlpkg/tlperl/lib/encoding/warnings.pm
index d5c41841309..d75277e2109 100644
--- a/Master/tlpkg/tlperl/lib/encoding/warnings.pm
+++ b/Master/tlpkg/tlperl/lib/encoding/warnings.pm
@@ -1,5 +1,5 @@
package encoding::warnings;
-$encoding::warnings::VERSION = '0.12';
+$encoding::warnings::VERSION = '0.13';
use strict;
use 5.007;
@@ -10,8 +10,22 @@ encoding::warnings - Warn on implicit encoding conversions
=head1 VERSION
-This document describes version 0.11 of encoding::warnings, released
-June 5, 2007.
+This document describes version 0.13 of encoding::warnings, released
+June 20, 2016.
+
+=head1 NOTICE
+
+As of Perl 5.26.0, this module has no effect. The internal Perl feature
+that was used to implement this module has been removed. In recent years,
+much work has been done on the Perl core to eliminate discrepancies in the
+treatment of upgraded versus downgraded strings. In addition, the
+L<encoding> pragma, which caused many of the problems, is no longer
+supported. Thus, the warnings this module produced are no longer
+necessary.
+
+Hence, if you load this module on Perl 5.26.0, you will get one warning
+that the module is no longer supported; and the module will do nothing
+thereafter.
=head1 SYNOPSIS
@@ -146,8 +160,16 @@ sub ASCII () { 0 }
sub LATIN1 () { 1 }
sub FATAL () { 2 }
-# Install a ${^ENCODING} handler if no other one are already in place.
sub import {
+ if ($] >= 5.025003) {
+ require Carp;
+ Carp::cluck(
+ "encoding::warnings is not supported on Perl 5.26.0 and later"
+ );
+ return;
+ }
+
+ # Install a ${^ENCODING} handler if no other one are already in place.
my $class = shift;
my $fatal = shift || '';
diff --git a/Master/tlpkg/tlperl/lib/feature.pm b/Master/tlpkg/tlperl/lib/feature.pm
index ec9fff7a6d4..ed13273f111 100644
--- a/Master/tlpkg/tlperl/lib/feature.pm
+++ b/Master/tlpkg/tlperl/lib/feature.pm
@@ -5,7 +5,7 @@
package feature;
-our $VERSION = '1.42';
+our $VERSION = '1.47';
our %feature = (
fc => 'feature_fc',
@@ -14,14 +14,13 @@ our %feature = (
switch => 'feature_switch',
bitwise => 'feature_bitwise',
evalbytes => 'feature_evalbytes',
- postderef => 'feature_postderef',
array_base => 'feature_arybase',
signatures => 'feature_signatures',
current_sub => 'feature___SUB__',
refaliasing => 'feature_refaliasing',
- lexical_subs => 'feature_lexsubs',
postderef_qq => 'feature_postderef_qq',
unicode_eval => 'feature_unieval',
+ declared_refs => 'feature_myref',
unicode_strings => 'feature_unicode',
);
@@ -30,7 +29,7 @@ our %feature_bundle = (
"5.11" => [qw(array_base say state switch unicode_strings)],
"5.15" => [qw(current_sub evalbytes fc say state switch unicode_eval unicode_strings)],
"5.23" => [qw(current_sub evalbytes fc postderef_qq say 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)],
+ "all" => [qw(array_base bitwise current_sub declared_refs evalbytes fc postderef_qq refaliasing say signatures state switch unicode_eval unicode_strings)],
"default" => [qw(array_base)],
);
@@ -45,7 +44,13 @@ $feature_bundle{"5.20"} = $feature_bundle{"5.15"};
$feature_bundle{"5.21"} = $feature_bundle{"5.15"};
$feature_bundle{"5.22"} = $feature_bundle{"5.15"};
$feature_bundle{"5.24"} = $feature_bundle{"5.23"};
+$feature_bundle{"5.25"} = $feature_bundle{"5.23"};
+$feature_bundle{"5.26"} = $feature_bundle{"5.23"};
$feature_bundle{"5.9.5"} = $feature_bundle{"5.10"};
+my %noops = (
+ postderef => 1,
+ lexical_subs => 1,
+);
our $hint_shift = 26;
our $hint_mask = 0x1c000000;
@@ -169,54 +174,28 @@ potentially using Unicode in your program, the
C<use feature 'unicode_strings'> subpragma is B<strongly> recommended.
This feature is available starting with Perl 5.12; was almost fully
-implemented in Perl 5.14; and extended in Perl 5.16 to cover C<quotemeta>.
+implemented in Perl 5.14; and extended in Perl 5.16 to cover C<quotemeta>;
+and extended further in Perl 5.26 to cover L<the range
+operator|perlop/Range Operators>.
=head2 The 'unicode_eval' and 'evalbytes' features
-Under the C<unicode_eval> feature, Perl's C<eval> function, when passed a
-string, will evaluate it as a string of characters, ignoring any
-C<use utf8> declarations. C<use utf8> exists to declare the encoding of
-the script, which only makes sense for a stream of bytes, not a string of
-characters. Source filters are forbidden, as they also really only make
-sense on strings of bytes. Any attempt to activate a source filter will
-result in an error.
-
-The C<evalbytes> feature enables the C<evalbytes> keyword, which evaluates
-the argument passed to it as a string of bytes. It dies if the string
-contains any characters outside the 8-bit range. Source filters work
-within C<evalbytes>: they apply to the contents of the string being
-evaluated.
-
-Together, these two features are intended to replace the historical C<eval>
-function, which has (at least) two bugs in it, that cannot easily be fixed
-without breaking existing programs:
-
-=over
-
-=item *
-
-C<eval> behaves differently depending on the internal encoding of the
-string, sometimes treating its argument as a string of bytes, and sometimes
-as a string of characters.
-
-=item *
-
-Source filters activated within C<eval> leak out into whichever I<file>
-scope is currently being compiled. To give an example with the CPAN module
-L<Semi::Semicolons>:
-
- BEGIN { eval "use Semi::Semicolons; # not filtered here " }
- # filtered here!
-
-C<evalbytes> fixes that to work the way one would expect:
+Together, these two features are intended to replace the legacy string
+C<eval> function, which behaves problematically in some instances. They are
+available starting with Perl 5.16, and are enabled by default by a
+S<C<use 5.16>> or higher declaration.
- use feature "evalbytes";
- BEGIN { evalbytes "use Semi::Semicolons; # filtered " }
- # not filtered
-
-=back
+C<unicode_eval> changes the behavior of plain string C<eval> to work more
+consistently, especially in the Unicode world. Certain (mis)behaviors
+couldn't be changed without breaking some things that had come to rely on
+them, so the feature can be enabled and disabled. Details are at
+L<perlfunc/Under the "unicode_eval" feature>.
-These two features are available starting with Perl 5.16.
+C<evalbytes> is like string C<eval>, but operating on a byte stream that is
+not UTF-8 encoded. Details are at L<perlfunc/evalbytes EXPR>. Without a
+S<C<use feature 'evalbytes'>> nor a S<C<use v5.16>> (or higher) declaration in
+the current scope, you can still access it by instead writing
+C<CORE::evalbytes>.
=head2 The 'current_sub' feature
@@ -246,17 +225,21 @@ This feature is available from Perl 5.16 onwards.
=head2 The 'lexical_subs' 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:
+In Perl versions prior to 5.26, this feature enabled
+declaration of subroutines via C<my sub foo>, C<state sub foo>
+and C<our sub foo> syntax. See L<perlsub/Lexical Subroutines> for details.
- no warnings "experimental::lexical_subs";
+This feature is available from Perl 5.18 onwards. From Perl 5.18 to 5.24,
+it was classed as experimental, and Perl emitted a warning for its
+usage, except when explicitly disabled:
-This enables declaration of subroutines via C<my sub foo>, C<state sub foo>
-and C<our sub foo> syntax. See L<perlsub/Lexical Subroutines> for details.
+ no warnings "experimental::lexical_subs";
-This feature is available from Perl 5.18 onwards.
+As of Perl 5.26, use of this feature no longer triggers a warning, though
+the C<experimental::lexical_subs> warning category still exists (for
+compatibility with code that disables it). In addition, this syntax is
+not only no longer experimental, but it is enabled for all Perl code,
+regardless of what feature declarations are in scope.
=head2 The 'postderef' and 'postderef_qq' features
@@ -346,6 +329,22 @@ See L<perlop/Bitwise String Operators> for details.
This feature is available from Perl 5.22 onwards.
+=head2 The 'declared_refs' 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::declared_refs";
+
+This allows a reference to a variable to be declared with C<my>, C<state>,
+our C<our>, or localized with C<local>. It is intended mainly for use in
+conjunction with the "refaliasing" feature. See L<perlref/Declaring a
+Reference to a Variable> for examples.
+
+This feature is available from Perl 5.26 onwards.
+
=head1 FEATURE BUNDLES
It's possible to load multiple features together, using
@@ -382,6 +381,10 @@ The following feature bundles are available:
unicode_eval evalbytes current_sub fc
postderef_qq
+ :5.26 say state switch unicode_strings
+ unicode_eval evalbytes current_sub fc
+ postderef_qq
+
The C<:default> bundle represents the feature set that is enabled before
any C<use feature> or C<no feature> declaration.
@@ -487,6 +490,9 @@ sub __common {
next;
}
if (!exists $feature{$name}) {
+ if (exists $noops{$name}) {
+ next;
+ }
unknown_feature($name);
}
if ($import) {
diff --git a/Master/tlpkg/tlperl/lib/lib.pm b/Master/tlpkg/tlperl/lib/lib.pm
index 973c7744b90..75c89ccaf44 100644
--- a/Master/tlpkg/tlperl/lib/lib.pm
+++ b/Master/tlpkg/tlperl/lib/lib.pm
@@ -13,7 +13,7 @@ my @inc_version_list = reverse split / /, $Config{inc_version_list};
our @ORIG_INC = @INC; # take a handy copy of 'original' value
-our $VERSION = '0.63';
+our $VERSION = '0.64';
sub import {
shift;
diff --git a/Master/tlpkg/tlperl/lib/mro.pm b/Master/tlpkg/tlperl/lib/mro.pm
index 0946fb67221..92e8ca38cb5 100644
--- a/Master/tlpkg/tlperl/lib/mro.pm
+++ b/Master/tlpkg/tlperl/lib/mro.pm
@@ -12,7 +12,7 @@ use warnings;
# mro.pm versions < 1.00 reserved for MRO::Compat
# for partial back-compat to 5.[68].x
-our $VERSION = '1.18';
+our $VERSION = '1.20';
sub import {
mro::set_mro(scalar(caller), $_[1]) if $_[1];
diff --git a/Master/tlpkg/tlperl/lib/ok.pm b/Master/tlpkg/tlperl/lib/ok.pm
index 02726ac9641..143885dd53f 100644
--- a/Master/tlpkg/tlperl/lib/ok.pm
+++ b/Master/tlpkg/tlperl/lib/ok.pm
@@ -1,5 +1,5 @@
package ok;
-$ok::VERSION = '0.16';
+our $VERSION = '1.302073';
use strict;
use Test::More ();
@@ -20,6 +20,8 @@ sub import {
__END__
+=encoding UTF-8
+
=head1 NAME
ok - Alternative to Test::More::use_ok
diff --git a/Master/tlpkg/tlperl/lib/open.pm b/Master/tlpkg/tlperl/lib/open.pm
index fd22e1b9e71..ca3cf7b409e 100644
--- a/Master/tlpkg/tlperl/lib/open.pm
+++ b/Master/tlpkg/tlperl/lib/open.pm
@@ -1,7 +1,7 @@
package open;
use warnings;
-our $VERSION = '1.10';
+our $VERSION = '1.11';
require 5.008001; # for PerlIO::get_layers()
@@ -153,7 +153,7 @@ open - perl pragma to set default PerlIO layers for input and output
use open IO => ':locale';
- use open ':encoding(utf8)';
+ use open ':encoding(UTF-8)';
use open ':locale';
use open ':encoding(iso-8859-7)';
@@ -195,8 +195,8 @@ For example:
These are equivalent
- use open ':encoding(utf8)';
- use open IO => ':encoding(utf8)';
+ use open ':encoding(UTF-8)';
+ use open IO => ':encoding(UTF-8)';
as are these
@@ -221,8 +221,8 @@ The C<:std> subpragma on its own has no effect, but if combined with
the C<:utf8> or C<:encoding> subpragmas, it converts the standard
filehandles (STDIN, STDOUT, STDERR) to comply with encoding selected
for input/output handles. For example, if both input and out are
-chosen to be C<:encoding(utf8)>, a C<:std> will mean that STDIN, STDOUT,
-and STDERR are also in C<:encoding(utf8)>. On the other hand, if only
+chosen to be C<:encoding(UTF-8)>, a C<:std> will mean that STDIN, STDOUT,
+and STDERR are also in C<:encoding(UTF-8)>. On the other hand, if only
output is chosen to be in C<< :encoding(koi8r) >>, a C<:std> will cause
only the STDOUT and STDERR to be in C<koi8r>. The C<:locale> subpragma
implicitly turns on C<:std>.
diff --git a/Master/tlpkg/tlperl/lib/overload.pm b/Master/tlpkg/tlperl/lib/overload.pm
index 4a1912c2366..ba563143f1d 100644
--- a/Master/tlpkg/tlperl/lib/overload.pm
+++ b/Master/tlpkg/tlperl/lib/overload.pm
@@ -1,6 +1,6 @@
package overload;
-our $VERSION = '1.26';
+our $VERSION = '1.28';
%ops = (
with_assign => "+ - * / % ** << >> x .",
@@ -21,9 +21,7 @@ our $VERSION = '1.26';
);
my %ops_seen;
-for $category (keys %ops) {
- $ops_seen{$_}++ for (split /\s+/, $ops{$category});
-}
+@ops_seen{ map split(/ /), values %ops } = ();
sub nil {}
@@ -40,7 +38,7 @@ sub OVERLOAD {
}
} else {
warnings::warnif("overload arg '$_' is invalid")
- unless $ops_seen{$_};
+ unless exists $ops_seen{$_};
$sub = $arg{$_};
if (not ref $sub) {
$ {$package . "::(" . $_} = $sub;
@@ -65,7 +63,7 @@ sub unimport {
*{$package . "::(("} = \&nil;
for (@_) {
warnings::warnif("overload arg '$_' is invalid")
- unless $ops_seen{$_};
+ unless exists $ops_seen{$_};
delete $ {$package . "::"}{$_ eq 'fallback' ? '()' : "(" .$_};
}
}
diff --git a/Master/tlpkg/tlperl/lib/parent.pm b/Master/tlpkg/tlperl/lib/parent.pm
index f6e8cd497db..e1ccef4934a 100644
--- a/Master/tlpkg/tlperl/lib/parent.pm
+++ b/Master/tlpkg/tlperl/lib/parent.pm
@@ -1,7 +1,7 @@
package parent;
use strict;
use vars qw($VERSION);
-$VERSION = '0.234';
+$VERSION = '0.236';
sub import {
my $class = shift;
@@ -19,11 +19,11 @@ sub import {
{
no strict 'refs';
- push @{"$inheritor\::ISA"}, @_;
+ push @{"$inheritor\::ISA"}, @_; # dies if a loop is detected
};
};
-"All your base are belong to us"
+1;
__END__
diff --git a/Master/tlpkg/tlperl/lib/perl5db.pl b/Master/tlpkg/tlperl/lib/perl5db.pl
index 6dae6b0f5c3..265b4441f39 100644
--- a/Master/tlpkg/tlperl/lib/perl5db.pl
+++ b/Master/tlpkg/tlperl/lib/perl5db.pl
@@ -528,7 +528,8 @@ BEGIN {
# Debugger for Perl 5.00x; perl5db.pl patch level:
use vars qw($VERSION $header);
-$VERSION = '1.49_05';
+# bump to X.XX in blead, only use X.XX_XX in maint
+$VERSION = '1.51';
$header = "perl5db.pl version $VERSION";
@@ -1532,14 +1533,6 @@ We then determine what the console should be on various systems:
undef $console;
}
-=item * Unix - use F</dev/tty>.
-
-=cut
-
- elsif ( -e "/dev/tty" ) {
- $console = "/dev/tty";
- }
-
=item * Windows or MSDOS - use C<con>.
=cut
@@ -1564,6 +1557,17 @@ We then determine what the console should be on various systems:
$console = 'sys$command';
}
+# Keep this penultimate, on the grounds that it satisfies a wide variety of
+# Unix-like systems that would otherwise need to be identified individually.
+
+=item * Unix - use F</dev/tty>.
+
+=cut
+
+ elsif ( -e "/dev/tty" ) {
+ $console = "/dev/tty";
+ }
+
# Keep this last.
else {
@@ -1655,14 +1659,14 @@ and if we can.
$o = $i unless defined $o;
# read/write on in, or just read, or read on STDIN.
- open( IN, "+<$i" )
- || open( IN, "<$i" )
+ open( IN, '+<', $i )
+ || open( IN, '<', $i )
|| open( IN, "<&STDIN" );
# read/write/create/clobber out, or write/create/clobber out,
# or merge with STDERR, or merge with STDOUT.
- open( OUT, "+>$o" )
- || open( OUT, ">$o" )
+ open( OUT, '+>', $o )
+ || open( OUT, '>', $o )
|| open( OUT, ">&STDERR" )
|| open( OUT, ">&STDOUT" ); # so we don't dongle stdout
@@ -6827,8 +6831,8 @@ sub setterm {
if ($tty) {
my ( $i, $o ) = split $tty, /,/;
$o = $i unless defined $o;
- open( IN, "<$i" ) or die "Cannot open TTY '$i' for read: $!";
- open( OUT, ">$o" ) or die "Cannot open TTY '$o' for write: $!";
+ open( IN, '<', $i ) or die "Cannot open TTY '$i' for read: $!";
+ open( OUT, '>', $o ) or die "Cannot open TTY '$o' for write: $!";
$IN = \*IN;
$OUT = \*OUT;
_autoflush($OUT);
@@ -7751,8 +7755,8 @@ sub TTY {
}
# Open file onto the debugger's filehandles, if you can.
- open IN, $in or die "cannot open '$in' for read: $!";
- open OUT, ">$out" or die "cannot open '$out' for write: $!";
+ open IN, '<', $in or die "cannot open '$in' for read: $!";
+ open OUT, '>', $out or die "cannot open '$out' for write: $!";
# Swap to the new filehandles.
reset_IN_OUT( \*IN, \*OUT );
diff --git a/Master/tlpkg/tlperl/lib/perlfaq.pm b/Master/tlpkg/tlperl/lib/perlfaq.pm
index 0be9c18d34d..823817c35b4 100644
--- a/Master/tlpkg/tlperl/lib/perlfaq.pm
+++ b/Master/tlpkg/tlperl/lib/perlfaq.pm
@@ -1,5 +1,5 @@
use strict;
use warnings;
package perlfaq;
-$perlfaq::VERSION = '5.021010';
+$perlfaq::VERSION = '5.021011';
1;
diff --git a/Master/tlpkg/tlperl/lib/perllocal.pod b/Master/tlpkg/tlperl/lib/perllocal.pod
index 2520a5dcf31..9f59a760abf 100644
--- a/Master/tlpkg/tlperl/lib/perllocal.pod
+++ b/Master/tlpkg/tlperl/lib/perllocal.pod
@@ -1,10 +1,10 @@
-=head2 Wed Apr 12 11:50:51 2017: C<Module> L<Math::Int64|Math::Int64>
+=head2 Mon Feb 19 12:44:35 2018: C<Module> L<Math::Int64|Math::Int64>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -20,13 +20,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 11:51:30 2017: C<Module> L<IO::HTML|IO::HTML>
+=head2 Mon Feb 19 12:46:01 2018: C<Module> L<IO::String|IO::String>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -34,7 +34,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 1.001>
+C<VERSION: 1.08>
=item *
@@ -42,13 +42,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 11:52:23 2017: C<Module> L<Digest::SHA1|Digest::SHA1>
+=head2 Mon Feb 19 12:48:30 2018: C<Module> L<Digest::SHA1|Digest::SHA1>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -64,13 +64,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 11:55:22 2017: C<Module> L<File::Which|File::Which>
+=head2 Mon Feb 19 12:49:33 2018: C<Module> L<File::Which|File::Which>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -78,7 +78,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 1.21>
+C<VERSION: 1.22>
=item *
@@ -86,13 +86,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 11:55:59 2017: C<Module> L<Encode::compat|Encode::compat>
+=head2 Mon Feb 19 12:50:28 2018: C<Module> L<Encode::compat|Encode::compat>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -108,13 +108,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 11:58:07 2017: C<Module> L<Encode::Locale|Encode::Locale>
+=head2 Mon Feb 19 12:51:27 2018: C<Module> L<Encode::Locale|Encode::Locale>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -130,13 +130,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 11:59:13 2017: C<Module> L<Win32::API|Win32::API>
+=head2 Fri Feb 23 12:12:11 2018: C<Module> L<Win32::API|Win32::API>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -152,13 +152,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:02:04 2017: C<Module> L<Win32API::Registry|Win32API::Registry>
+=head2 Fri Feb 23 12:17:41 2018: C<Module> L<Win32API::Registry|Win32API::Registry>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -174,13 +174,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:02:53 2017: C<Module> L<Win32::Console|Win32::Console>
+=head2 Fri Feb 23 12:20:46 2018: C<Module> L<Win32::Console|Win32::Console>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -196,13 +196,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:03:57 2017: C<Module> L<Win32::TieRegistry|Win32::TieRegistry>
+=head2 Fri Feb 23 12:21:33 2018: C<Module> L<Win32::TieRegistry|Win32::TieRegistry>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -218,13 +218,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:04:56 2017: C<Module> L<Win32::Shortcut|Win32::Shortcut>
+=head2 Fri Feb 23 12:22:56 2018: C<Module> L<Win32::Shortcut|Win32::Shortcut>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -240,13 +240,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:07:22 2017: C<Module> L<Win32::OLE|Win32::OLE>
+=head2 Fri Feb 23 12:32:12 2018: C<Module> L<Socket|Socket>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -254,7 +254,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.1712>
+C<VERSION: 2.027>
=item *
@@ -262,13 +262,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:07:59 2017: C<Module> L<Win32::Process|Win32::Process>
+=head2 Fri Feb 23 12:34:00 2018: C<Module> L<Date::Parse|Date::Parse>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -276,7 +276,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 0.16>
+C<VERSION: 2.30>
=item *
@@ -284,13 +284,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:10:59 2017: C<Module> L<Socket|Socket>
+=head2 Fri Feb 23 12:37:23 2018: C<Module> L<HTTP::Date|HTTP::Date>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -298,7 +298,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 2.024>
+C<VERSION: 6.02>
=item *
@@ -306,13 +306,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:11:50 2017: C<Module> L<Date::Parse|Date::Parse>
+=head2 Fri Feb 23 12:38:10 2018: C<Module> L<File::Listing|File::Listing>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -320,7 +320,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 2.30>
+C<VERSION: 6.04>
=item *
@@ -328,13 +328,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:13:24 2017: C<Module> L<HTTP::Date|HTTP::Date>
+=head2 Fri Feb 23 12:39:00 2018: C<Module> L<IO::HTML|IO::HTML>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -342,7 +342,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.02>
+C<VERSION: 1.001>
=item *
@@ -350,13 +350,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:13:53 2017: C<Module> L<File::Listing|File::Listing>
+=head2 Fri Feb 23 12:39:39 2018: C<Module> L<LWP::MediaTypes|LWP::MediaTypes>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -364,7 +364,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.04>
+C<VERSION: 6.02>
=item *
@@ -372,13 +372,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:14:50 2017: C<Module> L<IO::String|IO::String>
+=head2 Fri Feb 23 13:13:26 2018: C<Module> L<Test::Needs|Test::Needs>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -386,7 +386,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 1.08>
+C<VERSION: 0.002005>
=item *
@@ -394,13 +394,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:15:39 2017: C<Module> L<LWP::MediaTypes|LWP::MediaTypes>
+=head2 Fri Feb 23 13:14:09 2018: C<Module> L<URI|URI>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -408,7 +408,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.02>
+C<VERSION: 1.73>
=item *
@@ -416,13 +416,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:16:09 2017: C<Module> L<URI|URI>
+=head2 Fri Feb 23 13:16:22 2018: C<Module> L<Try::Tiny|Try::Tiny>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -430,7 +430,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 1.71>
+C<VERSION: 0.30>
=item *
@@ -438,13 +438,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:16:56 2017: C<Module> L<HTTP::Message|HTTP::Message>
+=head2 Fri Feb 23 13:16:57 2018: C<Module> L<HTTP::Message|HTTP::Message>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -452,7 +452,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.11>
+C<VERSION: 6.14>
=item *
@@ -460,13 +460,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:17:28 2017: C<Module> L<HTML::Tagset|HTML::Tagset>
+=head2 Fri Feb 23 13:17:33 2018: C<Module> L<HTML::Tagset|HTML::Tagset>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -482,13 +482,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:18:29 2017: C<Module> L<HTML::Parser|HTML::Parser>
+=head2 Fri Feb 23 13:19:04 2018: C<Module> L<HTML::Parser|HTML::Parser>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -504,13 +504,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:18:57 2017: C<Module> L<WWW::RobotRules|WWW::RobotRules>
+=head2 Fri Feb 23 13:19:49 2018: C<Module> L<WWW::RobotRules|WWW::RobotRules>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -526,13 +526,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:19:43 2017: C<Module> L<HTTP::Negotiate|HTTP::Negotiate>
+=head2 Fri Feb 23 13:20:27 2018: C<Module> L<HTTP::Negotiate|HTTP::Negotiate>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -548,13 +548,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:20:22 2017: C<Module> L<Net::HTTP|Net::HTTP>
+=head2 Fri Feb 23 13:21:14 2018: C<Module> L<Net::HTTP|Net::HTTP>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -562,7 +562,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.13>
+C<VERSION: 6.17>
=item *
@@ -570,13 +570,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:20:58 2017: C<Module> L<Mozilla::CA|Mozilla::CA>
+=head2 Fri Feb 23 13:21:53 2018: C<Module> L<Mozilla::CA|Mozilla::CA>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -592,13 +592,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:21:32 2017: C<Module> L<HTTP::Daemon|HTTP::Daemon>
+=head2 Fri Feb 23 13:22:33 2018: C<Module> L<HTTP::Daemon|HTTP::Daemon>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -614,13 +614,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 12:22:18 2017: C<Module> L<HTTP::Cookies|HTTP::Cookies>
+=head2 Fri Feb 23 13:23:41 2018: C<Module> L<HTTP::Cookies|HTTP::Cookies>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -628,29 +628,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.03>
-
-=item *
-
-C<EXE_FILES: >
-
-=back
-
-=head2 Wed Apr 12 13:08:26 2017: C<Module> L<Try::Tiny|Try::Tiny>
-
-=over 4
-
-=item *
-
-C<installed into: c:\tlperl\site\lib>
-
-=item *
-
-C<LINKTYPE: dynamic>
-
-=item *
-
-C<VERSION: 0.28>
+C<VERSION: 6.04>
=item *
@@ -658,13 +636,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 13:08:52 2017: C<Module> L<Test::Fatal|Test::Fatal>
+=head2 Fri Feb 23 13:24:44 2018: C<Module> L<Test::Fatal|Test::Fatal>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -680,13 +658,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 13:09:53 2017: C<Module> L<Test::RequiresInternet|Test::RequiresInternet>
+=head2 Fri Feb 23 13:25:39 2018: C<Module> L<Test::RequiresInternet|Test::RequiresInternet>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -702,13 +680,13 @@ C<EXE_FILES: >
=back
-=head2 Wed Apr 12 13:11:47 2017: C<Module> L<libwww::perl|libwww::perl>
+=head2 Fri Feb 23 13:27:06 2018: C<Module> L<libwww::perl|libwww::perl>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -716,21 +694,21 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 6.25>
+C<VERSION: 6.31>
=item *
-C<EXE_FILES: bin/lwp-request bin/lwp-mirror bin/lwp-download bin/lwp-dump>
+C<EXE_FILES: bin/lwp-download bin/lwp-dump bin/lwp-mirror bin/lwp-request>
=back
-=head2 Wed Apr 12 15:59:58 2017: C<Module> L<Tk|Tk>
+=head2 Sat Feb 24 03:57:52 2018: C<Module> L<Tk|Tk>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -738,21 +716,21 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 804.033>
+C<VERSION: 804.034>
=item *
-C<EXE_FILES: ptksh ptked gedi>
+C<EXE_FILES: gedi ptked ptksh>
=back
-=head2 Wed Apr 12 16:02:02 2017: C<Module> L<Tk::DirSelect|Tk::DirSelect>
+=head2 Sat Feb 24 04:50:15 2018: C<Module> L<Tk::DirSelect|Tk::DirSelect>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -768,13 +746,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Oct 24 21:29:33 2017: C<Module> L<JSON|JSON>
+=head2 Tue Feb 27 03:42:33 2018: C<Module> L<Cpanel::JSON::XS|Cpanel::JSON::XS>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -782,21 +760,21 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 2.94>
+C<VERSION: 4.01>
=item *
-C<EXE_FILES: >
+C<EXE_FILES: bin/cpanel_json_xs>
=back
-=head2 Tue Oct 24 21:38:19 2017: C<Module> L<Canary::Stability|Canary::Stability>
+=head2 Tue Feb 27 03:44:06 2018: C<Module> L<JSON::MaybeXS|JSON::MaybeXS>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -804,7 +782,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 2012>
+C<VERSION: 1.003010>
=item *
@@ -812,13 +790,13 @@ C<EXE_FILES: >
=back
-=head2 Tue Oct 24 21:54:47 2017: C<Module> L<common::sense|common::sense>
+=head2 Tue Mar 6 01:25:15 2018: C<Module> L<Win32::OLE|Win32::OLE>
=over 4
=item *
-C<installed into: c:\tlperl\site\lib>
+C<installed into: c:\tlperl526\site\lib>
=item *
@@ -826,29 +804,7 @@ C<LINKTYPE: dynamic>
=item *
-C<VERSION: 3.74>
-
-=item *
-
-C<EXE_FILES: >
-
-=back
-
-=head2 Tue Oct 24 22:18:00 2017: C<Module> L<Types::Serialiser|Types::Serialiser>
-
-=over 4
-
-=item *
-
-C<installed into: c:\tlperl\site\lib>
-
-=item *
-
-C<LINKTYPE: dynamic>
-
-=item *
-
-C<VERSION: 1.0>
+C<VERSION: 0.1712>
=item *
@@ -856,25 +812,3 @@ C<EXE_FILES: >
=back
-=head2 Tue Oct 24 22:19:46 2017: C<Module> L<JSON::XS|JSON::XS>
-
-=over 4
-
-=item *
-
-C<installed into: c:\tlperl\site\lib>
-
-=item *
-
-C<LINKTYPE: dynamic>
-
-=item *
-
-C<VERSION: 3.04>
-
-=item *
-
-C<EXE_FILES: bin/json_xs>
-
-=back
-
diff --git a/Master/tlpkg/tlperl/lib/re.pm b/Master/tlpkg/tlperl/lib/re.pm
index 058b8aa961c..c416b94c28f 100644
--- a/Master/tlpkg/tlperl/lib/re.pm
+++ b/Master/tlpkg/tlperl/lib/re.pm
@@ -4,7 +4,7 @@ package re;
use strict;
use warnings;
-our $VERSION = "0.32";
+our $VERSION = "0.34";
our @ISA = qw(Exporter);
our @EXPORT_OK = ('regmust',
qw(is_regexp regexp_pattern
@@ -23,6 +23,7 @@ my %reflags = (
s => 1 << ($PMMOD_SHIFT + 1),
i => 1 << ($PMMOD_SHIFT + 2),
x => 1 << ($PMMOD_SHIFT + 3),
+ xx => 1 << ($PMMOD_SHIFT + 4),
n => 1 << ($PMMOD_SHIFT + 5),
p => 1 << ($PMMOD_SHIFT + 6),
strict => 1 << ($PMMOD_SHIFT + 10),
@@ -112,7 +113,6 @@ 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
@@ -180,6 +180,7 @@ sub bits {
} elsif ($s =~ s/^\///) {
my $reflags = $^H{reflags} || 0;
my $seen_charset;
+ my $x_count = 0;
while ($s =~ m/( . )/gx) {
local $_ = $1;
if (/[adul]/) {
@@ -225,7 +226,19 @@ sub bits {
&& $^H{reflags_charset} == $reflags{$_};
}
} elsif (exists $reflags{$_}) {
- $seen{$_}++;
+ if ($_ eq 'x') {
+ $x_count++;
+ if ($x_count > 2) {
+ require Carp;
+ Carp::carp(
+ qq 'The "x" flag may only appear a maximum of twice'
+ );
+ }
+ elsif ($x_count == 2) {
+ $_ = 'xx'; # First time through got the /x
+ }
+ }
+
$on
? $reflags |= $reflags{$_}
: ($reflags &= ~$reflags{$_});
@@ -247,18 +260,6 @@ sub bits {
")");
}
}
- if (exists $seen{'x'} && $seen{'x'} > 1
- && (warnings::enabled("deprecated")
- || warnings::enabled("regexp")))
- {
- my $message = "Having more than one /x regexp modifier is deprecated";
- if (warnings::enabled("deprecated")) {
- warnings::warn("deprecated", $message);
- }
- else {
- warnings::warn("regexp", $message);
- }
- }
if ($turning_all_off) {
_load_unload(0);
@@ -331,7 +332,7 @@ re - Perl pragma to alter regular expression behaviour
use re qw(is_regexp regexp_pattern); # import utility functions
my ($pat,$mods)=regexp_pattern(qr/foo/i);
- if (is_regexp($obj)) {
+ if (is_regexp($obj)) {
print "Got regexp: ",
scalar regexp_pattern($obj); # just as perl would stringify
} # it but no hassle with blessed
@@ -420,20 +421,34 @@ under non-strict.
=head2 '/flags' mode
-When C<use re '/flags'> is specified, the given flags are automatically
+When C<use re '/I<flags>'> is specified, the given I<flags> are automatically
added to every regular expression till the end of the lexical scope.
-
-C<no re '/flags'> will turn off the effect of C<use re '/flags'> for the
+I<flags> can be any combination of
+C<'a'>,
+C<'aa'>,
+C<'d'>,
+C<'i'>,
+C<'l'>,
+C<'m'>,
+C<'n'>,
+C<'p'>,
+C<'s'>,
+C<'u'>,
+C<'x'>,
+and/or
+C<'xx'>.
+
+C<no re '/I<flags>'> will turn off the effect of C<use re '/I<flags>'> for the
given flags.
-For example, if you want all your regular expressions to have /msx on by
+For example, if you want all your regular expressions to have /msxx on by
default, simply put
- use re '/msx';
+ use re '/msxx';
at the top of your code.
-The character set /adul flags cancel each other out. So, in this example,
+The character set C</adul> flags cancel each other out. So, in this example,
use re "/u";
"ss" =~ /\xdf/;
@@ -442,6 +457,13 @@ The character set /adul flags cancel each other out. So, in this example,
the second C<use re> does an implicit C<no re '/u'>.
+Similarly,
+
+ use re "/xx"; # Doubled-x
+ ...
+ use re "/x"; # Single x from here on
+ ...
+
Turning on one of the character set flags with C<use re> takes precedence over the
C<locale> pragma and the 'unicode_strings' C<feature>, for regular
expressions. Turning off one of these flags when it is active reverts to
@@ -467,7 +489,7 @@ strings on/off, pre-point part on/off.
See L<perldebug/"Debugging Regular Expressions"> for additional info.
As of 5.9.5 the directive C<use re 'debug'> and its equivalents are
-lexically scoped, as the other directives are. However they have both
+lexically scoped, as the other directives are. However they have both
compile-time and run-time effects.
See L<perlmodlib/Pragmatic Modules>.
diff --git a/Master/tlpkg/tlperl/lib/threads.pm b/Master/tlpkg/tlperl/lib/threads.pm
index 39761be3dd4..d174f724965 100644
--- a/Master/tlpkg/tlperl/lib/threads.pm
+++ b/Master/tlpkg/tlperl/lib/threads.pm
@@ -5,7 +5,7 @@ use 5.008;
use strict;
use warnings;
-our $VERSION = '2.07';
+our $VERSION = '2.15';
my $XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -134,7 +134,7 @@ threads - Perl interpreter-based threads
=head1 VERSION
-This document describes threads version 2.07
+This document describes threads version 2.15
=head1 WARNING
@@ -1061,6 +1061,18 @@ In prior perl versions, spawning threads with open directory handles would
crash the interpreter.
L<[perl #75154]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75154>
+=item Detached threads and global destruction
+
+If the main thread exits while there are detached threads which are still
+running, then Perl's global destruction phase is not executed because
+otherwise certain global structures that control the operation of threads and
+that are allocated in the main thread's memory may get destroyed before the
+detached thread is destroyed.
+
+If you are using any code that requires the execution of the global
+destruction phase for clean up (e.g., removing temp files), then do not use
+detached threads, but rather join all threads before exiting the program.
+
=item Perl Bugs and the CPAN Version of L<threads>
Support for threads extends beyond the code in this module (i.e.,
@@ -1086,8 +1098,11 @@ Perl 5.8.0 or later
=head1 SEE ALSO
-L<threads> Discussion Forum on CPAN:
-L<http://www.cpanforum.com/dist/threads>
+threads on MetaCPAN:
+L<https://metacpan.org/release/threads>
+
+Code repository for CPAN distribution:
+L<https://github.com/Dual-Life/threads>
L<threads::shared>, L<perlthrtut>
@@ -1100,6 +1115,8 @@ L<http://lists.perl.org/list/ithreads.html>
Stack size discussion:
L<http://www.perlmonks.org/?node_id=532956>
+Sample code in the I<examples> directory of this distribution on CPAN.
+
=head1 AUTHOR
Artur Bergman E<lt>sky AT crucially DOT netE<gt>
diff --git a/Master/tlpkg/tlperl/lib/threads/shared.pm b/Master/tlpkg/tlperl/lib/threads/shared.pm
index 89a79a4864d..73c4dd997f5 100644
--- a/Master/tlpkg/tlperl/lib/threads/shared.pm
+++ b/Master/tlpkg/tlperl/lib/threads/shared.pm
@@ -7,7 +7,7 @@ use warnings;
use Scalar::Util qw(reftype refaddr blessed);
-our $VERSION = '1.51'; # Please update the pod, too.
+our $VERSION = '1.56'; # 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.51
+This document describes threads::shared version 1.56
=head1 SYNOPSIS
@@ -570,16 +570,18 @@ not propagate the blessing to the shared reference:
Therefore, you should bless objects before sharing them.
It is often not wise to share an object unless the class itself has been
-written to support sharing. For example, an object's destructor may get
-called multiple times, once for each thread's scope exit. Another danger is
-that the contents of hash-based objects will be lost due to the above
-mentioned limitation. See F<examples/class.pl> (in the CPAN distribution of
-this module) for how to create a class that supports object sharing.
+written to support sharing. For example, a shared object's destructor may
+get called multiple times, once for each thread's scope exit, or may not
+get called at all if it is embedded inside another shared object. Another
+issue is that the contents of hash-based objects will be lost due to the
+above mentioned limitation. See F<examples/class.pl> (in the CPAN
+distribution of this module) for how to create a class that supports object
+sharing.
Destructors may not be called on objects if those objects still exist at
global destruction time. If the destructors must be called, make sure
there are no circular references and that nothing is referencing the
-objects, before the program ends.
+objects before the program ends.
Does not support C<splice> on arrays. Does not support explicitly changing
array lengths via $#array -- use C<push> and C<pop> instead.
@@ -646,8 +648,11 @@ to: L<http://rt.cpan.org/Public/Dist/Display.html?Name=threads-shared>
=head1 SEE ALSO
-L<threads::shared> Discussion Forum on CPAN:
-L<http://www.cpanforum.com/dist/threads-shared>
+threads::shared on MetaCPAN:
+L<https://metacpan.org/release/threads-shared>
+
+Code repository for CPAN distribution:
+L<https://github.com/Dual-Life/threads-shared>
L<threads>, L<perlthrtut>
@@ -657,6 +662,8 @@ L<http://www.perl.com/pub/a/2002/09/04/threads.html>
Perl threads mailing list:
L<http://lists.perl.org/list/ithreads.html>
+Sample code in the I<examples> directory of this distribution on CPAN.
+
=head1 AUTHOR
Artur Bergman E<lt>sky AT crucially DOT netE<gt>
diff --git a/Master/tlpkg/tlperl/lib/unicore/Blocks.txt b/Master/tlpkg/tlperl/lib/unicore/Blocks.txt
index 0a4a5807635..74c41e58a81 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Blocks.txt
+++ b/Master/tlpkg/tlperl/lib/unicore/Blocks.txt
@@ -1,9 +1,9 @@
-# Blocks-8.0.0.txt
-# Date: 2014-11-10, 23:04:00 GMT [KW]
+# Blocks-9.0.0.txt
+# Date: 2016-02-05, 23:48:00 GMT [KW]
+# © 2016 Unicode®, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# Copyright (c) 1991-2014 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see http://www.unicode.org/reports/tr44/
#
# Format:
@@ -93,6 +93,7 @@
1BC0..1BFF; Batak
1C00..1C4F; Lepcha
1C50..1C7F; Ol Chiki
+1C80..1C8F; Cyrillic Extended-C
1CC0..1CCF; Sundanese Supplement
1CD0..1CFF; Vedic Extensions
1D00..1D7F; Phonetic Extensions
@@ -209,6 +210,7 @@ FFF0..FFFF; Specials
10400..1044F; Deseret
10450..1047F; Shavian
10480..104AF; Osmanya
+104B0..104FF; Osage
10500..1052F; Elbasan
10530..1056F; Caucasian Albanian
10600..1077F; Linear A
@@ -243,13 +245,17 @@ FFF0..FFFF; Specials
11280..112AF; Multani
112B0..112FF; Khudawadi
11300..1137F; Grantha
+11400..1147F; Newa
11480..114DF; Tirhuta
11580..115FF; Siddham
11600..1165F; Modi
+11660..1167F; Mongolian Supplement
11680..116CF; Takri
11700..1173F; Ahom
118A0..118FF; Warang Citi
11AC0..11AFF; Pau Cin Hau
+11C00..11C6F; Bhaiksuki
+11C70..11CBF; Marchen
12000..123FF; Cuneiform
12400..1247F; Cuneiform Numbers and Punctuation
12480..1254F; Early Dynastic Cuneiform
@@ -260,6 +266,9 @@ FFF0..FFFF; Specials
16AD0..16AFF; Bassa Vah
16B00..16B8F; Pahawh Hmong
16F00..16F9F; Miao
+16FE0..16FFF; Ideographic Symbols and Punctuation
+17000..187FF; Tangut
+18800..18AFF; Tangut Components
1B000..1B0FF; Kana Supplement
1BC00..1BC9F; Duployan
1BCA0..1BCAF; Shorthand Format Controls
@@ -270,7 +279,9 @@ FFF0..FFFF; Specials
1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
1D800..1DAAF; Sutton SignWriting
+1E000..1E02F; Glagolitic Supplement
1E800..1E8DF; Mende Kikakui
+1E900..1E95F; Adlam
1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
1F000..1F02F; Mahjong Tiles
1F030..1F09F; Domino Tiles
diff --git a/Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl b/Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl
index 2d4023e0af6..d093e902246 100644
--- a/Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/CombiningClass.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -136,6 +136,7 @@ return <<'END';
825 827 230
829 82D 230
859 85B 220
+8D4 8E1 230
8E3 220
8E4 8E5 230
8E6 220
@@ -240,6 +241,7 @@ FC6 220
1DCF 220
1DD0 202
1DD1 1DF5 230
+1DFB 230
1DFC 233
1DFD 220
1DFE 230
@@ -317,6 +319,8 @@ FE2E FE2F 230
1134D 9
11366 1136C 230
11370 11374 230
+11442 9
+11446 7
114C2 9
114C3 7
115BF 9
@@ -325,6 +329,7 @@ FE2E FE2F 230
116B6 9
116B7 7
1172B 9
+11C3F 9
16AF0 16AF4 1
16B30 16B36 230
1BC9E 1
@@ -337,5 +342,12 @@ FE2E FE2F 230
1D18A 1D18B 220
1D1AA 1D1AD 230
1D242 1D244 230
+1E000 1E006 230
+1E008 1E018 230
+1E01B 1E021 230
+1E023 1E024 230
+1E026 1E02A 230
1E8D0 1E8D6 220
+1E944 1E949 230
+1E94A 7
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/Decomposition.pl b/Master/tlpkg/tlperl/lib/unicore/Decomposition.pl
index cce0ca01982..7c286bd6505 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Decomposition.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/Decomposition.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -5159,6 +5159,7 @@ FFEE <narrow> 25CB
1F238 <square> 7533
1F239 <square> 5272
1F23A <square> 55B6
+1F23B <square> 914D
1F240 <compat> 3014 672C 3015
1F241 <compat> 3014 4E09 3015
1F242 <compat> 3014 4E8C 3015
diff --git a/Master/tlpkg/tlperl/lib/unicore/Heavy.pl b/Master/tlpkg/tlperl/lib/unicore/Heavy.pl
index 71c7d4c7192..112b98ea4ef 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Heavy.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/Heavy.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
@@ -124,6 +124,8 @@
'patternsyntax' => 'patsyn',
'patternwhitespace' => 'patws',
'patws' => 'patws',
+'pcm' => 'pcm',
+'prependedconcatenationmark' => 'pcm',
'presentin' => 'in',
'qmark' => 'qmark',
'quotationmark' => 'qmark',
@@ -135,6 +137,7 @@
'scx' => 'scx',
'sd' => 'sd',
'sentencebreak' => 'sb',
+'sentenceterminal' => 'sterm',
'softdotted' => 'sd',
'space' => 'wspace',
'sterm' => 'sterm',
@@ -415,11 +418,27 @@
13
14',
'V2
+127995
+128000',
+'V2
10
11',
'V2
127462
127488',
+'V2
+128102
+128106',
+'V6
+10084
+10085
+128139
+128140
+128488
+128489',
+'V2
+8205
+8206',
'V4
12272
12274
@@ -437,9 +456,6 @@
6973
6974',
'V2
-8205
-8206',
-'V2
8204
8205',
'V6
@@ -452,9 +468,11 @@
'V2
69759
69760',
-'V4
+'V6
2510
2511
+3412
+3415
3450
3456',
'V4
@@ -618,6 +636,9 @@
71168
71264',
'V2
+70656
+70784',
+'V2
69216
69248',
'V2
@@ -633,6 +654,9 @@
0
128',
'V2
+125184
+125280',
+'V2
42656
42752',
'V2
@@ -660,6 +684,9 @@
2816
2944',
'V2
+66736
+66816',
+'V2
5792
5888',
'V2
@@ -741,6 +768,9 @@
1792
1872',
'V2
+94208
+100352',
+'V2
3072
3200',
'V2
@@ -804,6 +834,9 @@
2112
2144',
'V2
+72816
+72896',
+'V2
70272
70320',
'V2
@@ -945,6 +978,9 @@
1872
1920',
'V2
+72704
+72816',
+'V2
13056
13312',
'V2
@@ -1146,6 +1182,9 @@
42560
42656',
'V2
+7296
+7312',
+'V2
768
880',
'V2
@@ -1161,6 +1200,9 @@
124928
125152',
'V2
+71264
+71296',
+'V2
68736
68864',
'V2
@@ -1179,6 +1221,9 @@
43232
43264',
'V2
+122880
+122928',
+'V2
56320
57344',
'V2
@@ -1287,6 +1332,9 @@
10752
11008',
'V2
+100352
+101120',
+'V2
119296
119376',
'V2
@@ -1305,6 +1353,9 @@
128896
129024',
'V2
+94176
+94208',
+'V2
7680
7936',
'V2
@@ -1509,6 +1560,12 @@
'V2
1746
1748',
+'V2
+2235
+2236',
+'V2
+2236
+2237',
'V6
1813
1815
@@ -1532,6 +1589,9 @@
1749
1750',
'V2
+2237
+2238',
+'V2
2220
2221',
'V2
@@ -1759,7 +1819,9 @@
'V2
12990
12991',
-'V2
+'V4
+3422
+3423
8533
8534',
'V6
@@ -1815,19 +1877,20 @@
'V2
3891
3892',
-'V2
+'V4
+3420
+3421
8530
8531',
'V2
68086
68087',
-'V6
-2548
-2549
-2933
-2934
-43059
-43060',
+'V2
+3419
+3420',
+'V2
+3417
+3418',
'V2
3887
3888',
@@ -1845,13 +1908,12 @@
65828
68060
68061',
-'V6
-2550
-2551
-2935
-2936
-43061
-43062',
+'V2
+3421
+3422',
+'V2
+3418
+3419',
'V4
65828
65829
@@ -1889,6 +1951,9 @@
68067
68068',
'V2
+3416
+3417',
+'V2
68028
68029',
'V4
@@ -1997,6 +2062,13 @@
'V2
42240
42540',
+'V6
+125184
+125259
+125264
+125274
+125278
+125280',
'V4
66864
66916
@@ -2094,11 +2166,6 @@
'V2
66816
66856',
-'V4
-11264
-11311
-11312
-11359',
'V2
66352
66379',
@@ -2141,7 +2208,7 @@
70144
70162
70163
-70206',
+70207',
'V2
69760
69826',
@@ -2180,6 +2247,13 @@
68327
68331
68343',
+'V6
+72816
+72848
+72850
+72872
+72873
+72887',
'V4
124928
125125
@@ -2223,6 +2297,13 @@
67743
67751
67760',
+'V6
+70656
+70746
+70747
+70748
+70749
+70750',
'V2
5760
5789',
@@ -2230,6 +2311,11 @@
68608
68681',
'V4
+66736
+66772
+66776
+66812',
+'V4
66688
66718
66720
@@ -2282,7 +2368,7 @@
2111',
'V4
43136
-43205
+43206
43214
43226',
'V6
@@ -2344,6 +2430,13 @@
6510
6512
6517',
+'V6
+94176
+94177
+94208
+100333
+100352
+101107',
'V4
43648
43715
@@ -2417,7 +2510,7 @@
70144
70162
70163
-70206',
+70207',
'V6
2406
2416
@@ -2511,7 +2604,7 @@
'age=1.1' => 'Age/V11',
'age=2' => 'Age/V20',
'age=2.0' => 'Age/V20',
-'age=2.1' => '#/92',
+'age=2.1' => '#/95',
'age=3' => 'Age/V30',
'age=3.0' => 'Age/V30',
'age=3.1' => 'Age/V31',
@@ -2526,12 +2619,14 @@
'age=6' => 'Age/V60',
'age=6.0' => 'Age/V60',
'age=6.1' => 'Age/V61',
-'age=6.2' => '#/93',
-'age=6.3' => '#/94',
+'age=6.2' => '#/96',
+'age=6.3' => '#/97',
'age=7' => 'Age/V70',
'age=7.0' => 'Age/V70',
'age=8' => 'Age/V80',
'age=8.0' => 'Age/V80',
+'age=9' => 'Age/V90',
+'age=9.0' => 'Age/V90',
'ccc=0' => 'Ccc/NR',
'ccc=1' => 'Ccc/OV',
'ccc=10' => '#/24',
@@ -2613,148 +2708,157 @@
'in=7.0' => 'In/7_0',
'in=8' => 'In/8_0',
'in=8.0' => 'In/8_0',
-'nv=-1/2' => '#/497',
+'in=9' => 'In/9_0',
+'in=9.0' => 'In/9_0',
+'nv=-1/2' => '#/514',
'nv=0' => 'Nv/0',
'nv=1' => 'Nv/1',
-'nv=1/10' => '#/498',
-'nv=1/12' => '#/499',
-'nv=1/16' => '#/500',
+'nv=1/10' => '#/515',
+'nv=1/12' => '#/516',
+'nv=1/16' => 'Nv/1_16',
+'nv=1/160' => '#/534',
'nv=1/2' => 'Nv/1_2',
+'nv=1/20' => '#/517',
'nv=1/3' => 'Nv/1_3',
'nv=1/4' => 'Nv/1_4',
-'nv=1/5' => '#/482',
-'nv=1/6' => '#/483',
-'nv=1/7' => '#/484',
+'nv=1/40' => '#/518',
+'nv=1/5' => '#/499',
+'nv=1/6' => '#/500',
+'nv=1/7' => '#/501',
'nv=1/8' => 'Nv/1_8',
-'nv=1/9' => '#/485',
+'nv=1/9' => '#/502',
'nv=10' => 'Nv/10',
'nv=100' => 'Nv/100',
'nv=1000' => 'Nv/1000',
'nv=10000' => 'Nv/10000',
-'nv=100000' => '#/523',
-'nv=1000000' => '#/534',
-'nv=100000000' => '#/535',
-'nv=10000000000' => '#/536',
-'nv=1000000000000' => '#/537',
+'nv=100000' => '#/543',
+'nv=1000000' => '#/554',
+'nv=100000000' => '#/555',
+'nv=10000000000' => '#/556',
+'nv=1000000000000' => '#/557',
'nv=11' => 'Nv/11',
-'nv=11/12' => '#/515',
-'nv=11/2' => '#/501',
+'nv=11/12' => '#/535',
+'nv=11/2' => '#/519',
'nv=12' => 'Nv/12',
'nv=13' => 'Nv/13',
-'nv=13/2' => '#/502',
+'nv=13/2' => '#/520',
'nv=14' => 'Nv/14',
'nv=15' => 'Nv/15',
-'nv=15/2' => '#/503',
+'nv=15/2' => '#/521',
'nv=16' => 'Nv/16',
'nv=17' => 'Nv/17',
-'nv=17/2' => '#/504',
+'nv=17/2' => '#/522',
'nv=18' => 'Nv/18',
'nv=19' => 'Nv/19',
'nv=2' => 'Nv/2',
'nv=2/3' => 'Nv/2_3',
-'nv=2/5' => '#/486',
+'nv=2/5' => '#/503',
'nv=20' => 'Nv/20',
'nv=200' => 'Nv/200',
-'nv=2000' => '#/505',
-'nv=20000' => '#/516',
-'nv=200000' => '#/524',
-'nv=21' => '#/455',
-'nv=216000' => '#/525',
-'nv=22' => '#/456',
-'nv=23' => '#/457',
-'nv=24' => '#/458',
-'nv=25' => '#/459',
-'nv=26' => '#/460',
-'nv=27' => '#/461',
-'nv=28' => '#/462',
-'nv=29' => '#/463',
+'nv=2000' => '#/523',
+'nv=20000' => '#/536',
+'nv=200000' => '#/544',
+'nv=21' => '#/472',
+'nv=216000' => '#/545',
+'nv=22' => '#/473',
+'nv=23' => '#/474',
+'nv=24' => '#/475',
+'nv=25' => '#/476',
+'nv=26' => '#/477',
+'nv=27' => '#/478',
+'nv=28' => '#/479',
+'nv=29' => '#/480',
'nv=3' => 'Nv/3',
-'nv=3/16' => '#/506',
-'nv=3/2' => '#/487',
+'nv=3/16' => 'Nv/3_16',
+'nv=3/2' => '#/504',
+'nv=3/20' => '#/524',
'nv=3/4' => 'Nv/3_4',
-'nv=3/5' => '#/488',
-'nv=3/8' => '#/489',
+'nv=3/5' => '#/505',
+'nv=3/8' => '#/506',
+'nv=3/80' => '#/525',
'nv=30' => 'Nv/30',
'nv=300' => 'Nv/300',
-'nv=3000' => '#/507',
-'nv=30000' => '#/517',
-'nv=300000' => '#/526',
-'nv=31' => '#/464',
-'nv=32' => '#/465',
-'nv=33' => '#/466',
-'nv=34' => '#/467',
-'nv=35' => '#/468',
-'nv=36' => '#/469',
-'nv=37' => '#/470',
-'nv=38' => '#/471',
-'nv=39' => '#/472',
+'nv=3000' => '#/526',
+'nv=30000' => '#/537',
+'nv=300000' => '#/546',
+'nv=31' => '#/481',
+'nv=32' => '#/482',
+'nv=33' => '#/483',
+'nv=34' => '#/484',
+'nv=35' => '#/485',
+'nv=36' => '#/486',
+'nv=37' => '#/487',
+'nv=38' => '#/488',
+'nv=39' => '#/489',
'nv=4' => 'Nv/4',
-'nv=4/5' => '#/490',
+'nv=4/5' => '#/507',
'nv=40' => 'Nv/40',
'nv=400' => 'Nv/400',
-'nv=4000' => '#/508',
-'nv=40000' => '#/518',
-'nv=400000' => '#/527',
-'nv=41' => '#/473',
-'nv=42' => '#/474',
-'nv=43' => '#/475',
-'nv=432000' => '#/528',
-'nv=44' => '#/476',
-'nv=45' => '#/477',
-'nv=46' => '#/478',
-'nv=47' => '#/479',
-'nv=48' => '#/480',
-'nv=49' => '#/481',
+'nv=4000' => '#/527',
+'nv=40000' => '#/538',
+'nv=400000' => '#/547',
+'nv=41' => '#/490',
+'nv=42' => '#/491',
+'nv=43' => '#/492',
+'nv=432000' => '#/548',
+'nv=44' => '#/493',
+'nv=45' => '#/494',
+'nv=46' => '#/495',
+'nv=47' => '#/496',
+'nv=48' => '#/497',
+'nv=49' => '#/498',
'nv=5' => 'Nv/5',
-'nv=5/12' => '#/509',
-'nv=5/2' => '#/491',
-'nv=5/6' => '#/492',
-'nv=5/8' => '#/493',
+'nv=5/12' => '#/528',
+'nv=5/2' => '#/508',
+'nv=5/6' => '#/509',
+'nv=5/8' => '#/510',
'nv=50' => 'Nv/50',
'nv=500' => 'Nv/500',
'nv=5000' => 'Nv/5000',
'nv=50000' => 'Nv/50000',
-'nv=500000' => '#/529',
+'nv=500000' => '#/549',
'nv=6' => 'Nv/6',
'nv=60' => 'Nv/60',
'nv=600' => 'Nv/600',
-'nv=6000' => '#/510',
-'nv=60000' => '#/519',
-'nv=600000' => '#/530',
+'nv=6000' => '#/529',
+'nv=60000' => '#/539',
+'nv=600000' => '#/550',
'nv=7' => 'Nv/7',
-'nv=7/12' => '#/511',
-'nv=7/2' => '#/494',
-'nv=7/8' => '#/495',
+'nv=7/12' => '#/530',
+'nv=7/2' => '#/511',
+'nv=7/8' => '#/512',
'nv=70' => 'Nv/70',
'nv=700' => 'Nv/700',
-'nv=7000' => '#/512',
-'nv=70000' => '#/520',
-'nv=700000' => '#/531',
+'nv=7000' => '#/531',
+'nv=70000' => '#/540',
+'nv=700000' => '#/551',
'nv=8' => 'Nv/8',
'nv=80' => 'Nv/80',
'nv=800' => 'Nv/800',
-'nv=8000' => '#/513',
-'nv=80000' => '#/521',
-'nv=800000' => '#/532',
+'nv=8000' => '#/532',
+'nv=80000' => '#/541',
+'nv=800000' => '#/552',
'nv=9' => 'Nv/9',
-'nv=9/2' => '#/496',
+'nv=9/2' => '#/513',
'nv=90' => 'Nv/90',
'nv=900' => 'Nv/900',
-'nv=9000' => '#/514',
-'nv=90000' => '#/522',
-'nv=900000' => '#/533',
+'nv=9000' => '#/533',
+'nv=90000' => '#/542',
+'nv=900000' => '#/553',
);
# Maps property, table to file for those using loose matching. For paths
# whose directory is '#', the file is in the form of a numeric index into
# @inline_definitions
%utf8::loose_to_file_of = (
-'aegeannumbers' => '#/304',
+'adlam' => 'Scx/Adlm',
+'adlm' => 'Scx/Adlm',
+'aegeannumbers' => '#/315',
'age=na' => 'Age/NA',
'age=unassigned' => 'Age/NA',
'age=v11' => 'Age/V11',
'age=v20' => 'Age/V20',
-'age=v21' => '#/92',
+'age=v21' => '#/95',
'age=v30' => 'Age/V30',
'age=v31' => 'Age/V31',
'age=v32' => 'Age/V32',
@@ -2765,11 +2869,12 @@
'age=v52' => 'Age/V52',
'age=v60' => 'Age/V60',
'age=v61' => 'Age/V61',
-'age=v62' => '#/93',
-'age=v63' => '#/94',
+'age=v62' => '#/96',
+'age=v63' => '#/97',
'age=v70' => 'Age/V70',
'age=v80' => 'Age/V80',
-'aghb' => '#/542',
+'age=v90' => 'Age/V90',
+'aghb' => '#/563',
'ahex' => '#/60',
'ahex=f' => '#/!60',
'ahex=false' => '#/!60',
@@ -2779,9 +2884,9 @@
'ahex=true' => '#/60',
'ahex=y' => '#/60',
'ahex=yes' => '#/60',
-'ahom' => '#/543',
-'alchemical' => '#/250',
-'alchemicalsymbols' => '#/250',
+'ahom' => '#/564',
+'alchemical' => '#/259',
+'alchemicalsymbols' => '#/259',
'all' => '#/1',
'alnum' => 'Perl/Alnum',
'alpha' => 'Alpha/Y',
@@ -2794,46 +2899,46 @@
'alpha=y' => 'Alpha/Y',
'alpha=yes' => 'Alpha/Y',
'alphabetic' => 'Alpha/Y',
-'alphabeticpf' => '#/293',
-'alphabeticpresentationforms' => '#/293',
-'anatolianhieroglyphs' => '#/565',
-'ancientgreekmusic' => '#/343',
-'ancientgreekmusicalnotation' => '#/343',
-'ancientgreeknumbers' => '#/351',
-'ancientsymbols' => '#/311',
+'alphabeticpf' => '#/302',
+'alphabeticpresentationforms' => '#/302',
+'anatolianhieroglyphs' => '#/585',
+'ancientgreekmusic' => '#/356',
+'ancientgreekmusicalnotation' => '#/356',
+'ancientgreeknumbers' => '#/365',
+'ancientsymbols' => '#/323',
'any' => '#/2',
-'arab' => 'Sc/Arab',
-'arabic' => 'Sc/Arab',
-'arabicexta' => '#/251',
-'arabicextendeda' => '#/251',
-'arabicmath' => '#/252',
-'arabicmathematicalalphabeticsymbols' => '#/252',
-'arabicpfa' => '#/226',
-'arabicpfb' => '#/227',
-'arabicpresentationformsa' => '#/226',
-'arabicpresentationformsb' => '#/227',
-'arabicsup' => '#/228',
-'arabicsupplement' => '#/228',
-'armenian' => 'Sc/Armn',
-'armi' => '#/544',
-'armn' => 'Sc/Armn',
-'arrows' => '#/140',
-'ascii' => '#/124',
+'arab' => 'Scx/Arab',
+'arabic' => 'Scx/Arab',
+'arabicexta' => '#/260',
+'arabicextendeda' => '#/260',
+'arabicmath' => '#/261',
+'arabicmathematicalalphabeticsymbols' => '#/261',
+'arabicpfa' => '#/234',
+'arabicpfb' => '#/235',
+'arabicpresentationformsa' => '#/234',
+'arabicpresentationformsb' => '#/235',
+'arabicsup' => '#/236',
+'arabicsupplement' => '#/236',
+'armenian' => 'Scx/Armn',
+'armi' => '#/565',
+'armn' => 'Scx/Armn',
+'arrows' => '#/146',
+'ascii' => '#/128',
'asciihexdigit' => '#/60',
'assigned' => 'Perl/Assigned',
-'avestan' => '#/545',
-'avst' => '#/545',
-'bali' => '#/546',
-'balinese' => '#/546',
-'bamu' => '#/547',
-'bamum' => '#/547',
-'bamumsup' => '#/201',
-'bamumsupplement' => '#/201',
-'basiclatin' => '#/124',
-'bass' => '#/548',
-'bassavah' => '#/548',
-'batak' => '#/549',
-'batk' => '#/549',
+'avestan' => '#/566',
+'avst' => '#/566',
+'bali' => '#/567',
+'balinese' => '#/567',
+'bamu' => '#/568',
+'bamum' => '#/568',
+'bamumsup' => '#/209',
+'bamumsupplement' => '#/209',
+'basiclatin' => '#/128',
+'bass' => '#/569',
+'bassavah' => '#/569',
+'batak' => '#/570',
+'batk' => '#/570',
'bc=al' => 'Bc/AL',
'bc=an' => 'Bc/AN',
'bc=arabicletter' => 'Bc/AL',
@@ -2849,39 +2954,41 @@
'bc=europeannumber' => 'Bc/EN',
'bc=europeanseparator' => 'Bc/ES',
'bc=europeanterminator' => 'Bc/ET',
-'bc=firststrongisolate' => '#/96',
-'bc=fsi' => '#/96',
+'bc=firststrongisolate' => '#/99',
+'bc=fsi' => '#/99',
'bc=l' => 'Bc/L',
'bc=lefttoright' => 'Bc/L',
-'bc=lefttorightembedding' => '#/97',
-'bc=lefttorightisolate' => '#/98',
-'bc=lefttorightoverride' => '#/99',
-'bc=lre' => '#/97',
-'bc=lri' => '#/98',
-'bc=lro' => '#/99',
+'bc=lefttorightembedding' => '#/100',
+'bc=lefttorightisolate' => '#/101',
+'bc=lefttorightoverride' => '#/102',
+'bc=lre' => '#/100',
+'bc=lri' => '#/101',
+'bc=lro' => '#/102',
'bc=nonspacingmark' => 'Bc/NSM',
'bc=nsm' => 'Bc/NSM',
'bc=on' => 'Bc/ON',
'bc=otherneutral' => 'Bc/ON',
'bc=paragraphseparator' => 'Bc/B',
-'bc=pdf' => '#/100',
-'bc=pdi' => '#/101',
-'bc=popdirectionalformat' => '#/100',
-'bc=popdirectionalisolate' => '#/101',
+'bc=pdf' => '#/103',
+'bc=pdi' => '#/104',
+'bc=popdirectionalformat' => '#/103',
+'bc=popdirectionalisolate' => '#/104',
'bc=r' => 'Bc/R',
'bc=righttoleft' => 'Bc/R',
-'bc=righttoleftembedding' => '#/102',
-'bc=righttoleftisolate' => '#/103',
-'bc=righttoleftoverride' => '#/104',
-'bc=rle' => '#/102',
-'bc=rli' => '#/103',
-'bc=rlo' => '#/104',
-'bc=s' => '#/95',
-'bc=segmentseparator' => '#/95',
+'bc=righttoleftembedding' => '#/105',
+'bc=righttoleftisolate' => '#/106',
+'bc=righttoleftoverride' => '#/107',
+'bc=rle' => '#/105',
+'bc=rli' => '#/106',
+'bc=rlo' => '#/107',
+'bc=s' => '#/98',
+'bc=segmentseparator' => '#/98',
'bc=whitespace' => 'Bc/WS',
'bc=ws' => 'Bc/WS',
-'beng' => 'Sc/Beng',
-'bengali' => 'Sc/Beng',
+'beng' => 'Scx/Beng',
+'bengali' => 'Scx/Beng',
+'bhaiksuki' => 'Sc/Bhks',
+'bhks' => 'Sc/Bhks',
'bidic' => 'BidiC/Y',
'bidic=f' => '!BidiC/Y',
'bidic=false' => '!BidiC/Y',
@@ -2903,414 +3010,429 @@
'bidim=yes' => 'BidiM/Y',
'bidimirrored' => 'BidiM/Y',
'blank' => 'Perl/Blank',
-'blk=aegeannumbers' => '#/304',
-'blk=ahom' => '#/114',
-'blk=alchemical' => '#/250',
-'blk=alchemicalsymbols' => '#/250',
-'blk=alphabeticpf' => '#/293',
-'blk=alphabeticpresentationforms' => '#/293',
-'blk=anatolianhieroglyphs' => '#/357',
-'blk=ancientgreekmusic' => '#/343',
-'blk=ancientgreekmusicalnotation' => '#/343',
-'blk=ancientgreeknumbers' => '#/351',
-'blk=ancientsymbols' => '#/311',
-'blk=arabic' => '#/139',
-'blk=arabicexta' => '#/251',
-'blk=arabicextendeda' => '#/251',
-'blk=arabicmath' => '#/252',
-'blk=arabicmathematicalalphabeticsymbols' => '#/252',
-'blk=arabicpfa' => '#/226',
-'blk=arabicpfb' => '#/227',
-'blk=arabicpresentationformsa' => '#/226',
-'blk=arabicpresentationformsb' => '#/227',
-'blk=arabicsup' => '#/228',
-'blk=arabicsupplement' => '#/228',
-'blk=armenian' => '#/199',
-'blk=arrows' => '#/140',
-'blk=ascii' => '#/124',
-'blk=avestan' => '#/164',
-'blk=balinese' => '#/200',
-'blk=bamum' => '#/125',
-'blk=bamumsup' => '#/201',
-'blk=bamumsupplement' => '#/201',
-'blk=basiclatin' => '#/124',
-'blk=bassavah' => '#/202',
-'blk=batak' => '#/126',
-'blk=bengali' => '#/165',
-'blk=blockelements' => '#/305',
-'blk=bopomofo' => '#/203',
-'blk=bopomofoext' => '#/271',
-'blk=bopomofoextended' => '#/271',
-'blk=boxdrawing' => '#/253',
-'blk=brahmi' => '#/141',
-'blk=braille' => '#/166',
-'blk=braillepatterns' => '#/166',
-'blk=buginese' => '#/204',
-'blk=buhid' => '#/127',
-'blk=byzantinemusic' => '#/312',
-'blk=byzantinemusicalsymbols' => '#/312',
-'blk=canadiansyllabics' => '#/123',
-'blk=carian' => '#/142',
-'blk=caucasianalbanian' => '#/344',
-'blk=chakma' => '#/143',
-'blk=cham' => '#/115',
-'blk=cherokee' => '#/205',
-'blk=cherokeesup' => '#/272',
-'blk=cherokeesupplement' => '#/272',
-'blk=cjk' => '#/106',
-'blk=cjkcompat' => '#/229',
-'blk=cjkcompatforms' => '#/313',
-'blk=cjkcompatibility' => '#/229',
-'blk=cjkcompatibilityforms' => '#/313',
-'blk=cjkcompatibilityideographs' => '#/352',
-'blk=cjkcompatibilityideographssupplement' => '#/361',
-'blk=cjkcompatideographs' => '#/352',
-'blk=cjkcompatideographssup' => '#/361',
-'blk=cjkexta' => '#/167',
-'blk=cjkextb' => '#/168',
-'blk=cjkextc' => '#/169',
-'blk=cjkextd' => '#/170',
-'blk=cjkexte' => '#/171',
-'blk=cjkradicalssup' => '#/314',
-'blk=cjkradicalssupplement' => '#/314',
-'blk=cjkstrokes' => '#/254',
-'blk=cjksymbols' => '#/255',
-'blk=cjksymbolsandpunctuation' => '#/255',
-'blk=cjkunifiedideographs' => '#/106',
-'blk=cjkunifiedideographsextensiona' => '#/167',
-'blk=cjkunifiedideographsextensionb' => '#/168',
-'blk=cjkunifiedideographsextensionc' => '#/169',
-'blk=cjkunifiedideographsextensiond' => '#/170',
-'blk=cjkunifiedideographsextensione' => '#/171',
-'blk=combiningdiacriticalmarks' => '#/296',
-'blk=combiningdiacriticalmarksextended' => '#/322',
-'blk=combiningdiacriticalmarksforsymbols' => '#/362',
-'blk=combiningdiacriticalmarkssupplement' => '#/323',
-'blk=combininghalfmarks' => '#/232',
-'blk=combiningmarksforsymbols' => '#/362',
-'blk=commonindicnumberforms' => '#/337',
-'blk=compatjamo' => '#/256',
-'blk=controlpictures' => '#/320',
-'blk=coptic' => '#/144',
-'blk=copticepactnumbers' => '#/347',
-'blk=countingrod' => '#/273',
-'blk=countingrodnumerals' => '#/273',
-'blk=cuneiform' => '#/230',
-'blk=cuneiformnumbers' => '#/332',
-'blk=cuneiformnumbersandpunctuation' => '#/332',
-'blk=currencysymbols' => '#/321',
-'blk=cypriotsyllabary' => '#/333',
-'blk=cyrillic' => '#/206',
-'blk=cyrillicexta' => '#/294',
-'blk=cyrillicextb' => '#/295',
-'blk=cyrillicextendeda' => '#/294',
-'blk=cyrillicextendedb' => '#/295',
-'blk=cyrillicsup' => '#/274',
-'blk=cyrillicsupplement' => '#/274',
-'blk=cyrillicsupplementary' => '#/274',
-'blk=deseret' => '#/172',
-'blk=devanagari' => '#/257',
-'blk=devanagariext' => '#/306',
-'blk=devanagariextended' => '#/306',
-'blk=diacriticals' => '#/296',
-'blk=diacriticalsext' => '#/322',
-'blk=diacriticalsforsymbols' => '#/362',
-'blk=diacriticalssup' => '#/323',
-'blk=dingbats' => '#/207',
-'blk=domino' => '#/145',
-'blk=dominotiles' => '#/145',
-'blk=duployan' => '#/208',
-'blk=earlydynasticcuneiform' => '#/363',
-'blk=egyptianhieroglyphs' => '#/353',
-'blk=elbasan' => '#/173',
-'blk=emoticons' => '#/231',
-'blk=enclosedalphanum' => '#/334',
-'blk=enclosedalphanumerics' => '#/334',
-'blk=enclosedalphanumericsupplement' => '#/354',
-'blk=enclosedalphanumsup' => '#/354',
-'blk=enclosedcjk' => '#/275',
-'blk=enclosedcjklettersandmonths' => '#/275',
-'blk=enclosedideographicsup' => '#/364',
-'blk=enclosedideographicsupplement' => '#/364',
-'blk=ethiopic' => '#/209',
-'blk=ethiopicext' => '#/276',
-'blk=ethiopicexta' => '#/297',
-'blk=ethiopicextended' => '#/276',
-'blk=ethiopicextendeda' => '#/297',
-'blk=ethiopicsup' => '#/277',
-'blk=ethiopicsupplement' => '#/277',
-'blk=generalpunctuation' => '#/287',
-'blk=geometricshapes' => '#/324',
-'blk=geometricshapesext' => '#/348',
-'blk=geometricshapesextended' => '#/348',
-'blk=georgian' => '#/210',
-'blk=georgiansup' => '#/278',
-'blk=georgiansupplement' => '#/278',
-'blk=glagolitic' => '#/258',
-'blk=gothic' => '#/146',
-'blk=grantha' => '#/174',
-'blk=greek' => '#/128',
-'blk=greekandcoptic' => '#/128',
-'blk=greekext' => '#/211',
-'blk=greekextended' => '#/211',
-'blk=gujarati' => '#/212',
-'blk=gurmukhi' => '#/213',
-'blk=halfandfullforms' => '#/335',
-'blk=halfmarks' => '#/232',
-'blk=halfwidthandfullwidthforms' => '#/335',
-'blk=hangul' => '#/147',
-'blk=hangulcompatibilityjamo' => '#/256',
-'blk=hanguljamo' => '#/116',
-'blk=hanguljamoextendeda' => '#/215',
-'blk=hanguljamoextendedb' => '#/216',
-'blk=hangulsyllables' => '#/147',
-'blk=hanunoo' => '#/175',
-'blk=hatran' => '#/148',
-'blk=hebrew' => '#/149',
-'blk=highprivateusesurrogates' => '#/336',
-'blk=highpusurrogates' => '#/336',
-'blk=highsurrogates' => '#/315',
-'blk=hiragana' => '#/214',
-'blk=idc' => '#/107',
-'blk=ideographicdescriptioncharacters' => '#/107',
-'blk=imperialaramaic' => '#/325',
-'blk=indicnumberforms' => '#/337',
-'blk=inscriptionalpahlavi' => '#/358',
-'blk=inscriptionalparthian' => '#/359',
-'blk=ipaext' => '#/150',
-'blk=ipaextensions' => '#/150',
-'blk=jamo' => '#/116',
-'blk=jamoexta' => '#/215',
-'blk=jamoextb' => '#/216',
-'blk=javanese' => '#/217',
-'blk=kaithi' => '#/151',
-'blk=kanasup' => '#/176',
-'blk=kanasupplement' => '#/176',
-'blk=kanbun' => '#/152',
-'blk=kangxi' => '#/153',
-'blk=kangxiradicals' => '#/153',
-'blk=kannada' => '#/177',
-'blk=katakana' => '#/218',
-'blk=katakanaext' => '#/279',
-'blk=katakanaphoneticextensions' => '#/279',
-'blk=kayahli' => '#/178',
-'blk=kharoshthi' => '#/259',
-'blk=khmer' => '#/129',
-'blk=khmersymbols' => '#/298',
-'blk=khojki' => '#/154',
-'blk=khudawadi' => '#/233',
-'blk=lao' => '#/108',
-'blk=latin1' => '#/155',
-'blk=latin1sup' => '#/155',
-'blk=latin1supplement' => '#/155',
-'blk=latinexta' => '#/234',
-'blk=latinextadditional' => '#/349',
-'blk=latinextb' => '#/235',
-'blk=latinextc' => '#/236',
-'blk=latinextd' => '#/237',
-'blk=latinexte' => '#/238',
-'blk=latinextendeda' => '#/234',
-'blk=latinextendedadditional' => '#/349',
-'blk=latinextendedb' => '#/235',
-'blk=latinextendedc' => '#/236',
-'blk=latinextendedd' => '#/237',
-'blk=latinextendede' => '#/238',
-'blk=lepcha' => '#/156',
-'blk=letterlikesymbols' => '#/345',
-'blk=limbu' => '#/130',
-'blk=lineara' => '#/179',
-'blk=linearbideograms' => '#/338',
-'blk=linearbsyllabary' => '#/339',
-'blk=lisu' => '#/117',
-'blk=lowsurrogates' => '#/307',
-'blk=lycian' => '#/157',
-'blk=lydian' => '#/158',
-'blk=mahajani' => '#/219',
-'blk=mahjong' => '#/180',
-'blk=mahjongtiles' => '#/180',
-'blk=malayalam' => '#/239',
-'blk=mandaic' => '#/181',
-'blk=manichaean' => '#/260',
-'blk=mathalphanum' => '#/299',
-'blk=mathematicalalphanumericsymbols' => '#/299',
-'blk=mathematicaloperators' => '#/308',
-'blk=mathoperators' => '#/308',
-'blk=meeteimayek' => '#/280',
-'blk=meeteimayekext' => '#/316',
-'blk=meeteimayekextensions' => '#/316',
-'blk=mendekikakui' => '#/300',
-'blk=meroiticcursive' => '#/326',
-'blk=meroitichieroglyphs' => '#/355',
-'blk=miao' => '#/118',
-'blk=miscarrows' => '#/261',
-'blk=miscellaneousmathematicalsymbolsa' => '#/340',
-'blk=miscellaneousmathematicalsymbolsb' => '#/341',
-'blk=miscellaneoussymbols' => '#/281',
-'blk=miscellaneoussymbolsandarrows' => '#/261',
-'blk=miscellaneoussymbolsandpictographs' => '#/327',
-'blk=miscellaneoustechnical' => '#/309',
-'blk=miscmathsymbolsa' => '#/340',
-'blk=miscmathsymbolsb' => '#/341',
-'blk=miscpictographs' => '#/327',
-'blk=miscsymbols' => '#/281',
-'blk=misctechnical' => '#/309',
-'blk=modi' => '#/119',
-'blk=modifierletters' => '#/328',
-'blk=modifiertoneletters' => '#/356',
-'blk=mongolian' => '#/240',
-'blk=mro' => '#/109',
-'blk=multani' => '#/182',
-'blk=music' => '#/131',
-'blk=musicalsymbols' => '#/131',
-'blk=myanmar' => '#/183',
-'blk=myanmarexta' => '#/282',
-'blk=myanmarextb' => '#/283',
-'blk=myanmarextendeda' => '#/282',
-'blk=myanmarextendedb' => '#/283',
-'blk=nabataean' => '#/241',
+'blk=adlam' => '#/129',
+'blk=aegeannumbers' => '#/315',
+'blk=ahom' => '#/117',
+'blk=alchemical' => '#/259',
+'blk=alchemicalsymbols' => '#/259',
+'blk=alphabeticpf' => '#/302',
+'blk=alphabeticpresentationforms' => '#/302',
+'blk=anatolianhieroglyphs' => '#/371',
+'blk=ancientgreekmusic' => '#/356',
+'blk=ancientgreekmusicalnotation' => '#/356',
+'blk=ancientgreeknumbers' => '#/365',
+'blk=ancientsymbols' => '#/323',
+'blk=arabic' => '#/145',
+'blk=arabicexta' => '#/260',
+'blk=arabicextendeda' => '#/260',
+'blk=arabicmath' => '#/261',
+'blk=arabicmathematicalalphabeticsymbols' => '#/261',
+'blk=arabicpfa' => '#/234',
+'blk=arabicpfb' => '#/235',
+'blk=arabicpresentationformsa' => '#/234',
+'blk=arabicpresentationformsb' => '#/235',
+'blk=arabicsup' => '#/236',
+'blk=arabicsupplement' => '#/236',
+'blk=armenian' => '#/207',
+'blk=arrows' => '#/146',
+'blk=ascii' => '#/128',
+'blk=avestan' => '#/171',
+'blk=balinese' => '#/208',
+'blk=bamum' => '#/130',
+'blk=bamumsup' => '#/209',
+'blk=bamumsupplement' => '#/209',
+'blk=basiclatin' => '#/128',
+'blk=bassavah' => '#/210',
+'blk=batak' => '#/131',
+'blk=bengali' => '#/172',
+'blk=bhaiksuki' => '#/237',
+'blk=blockelements' => '#/316',
+'blk=bopomofo' => '#/211',
+'blk=bopomofoext' => '#/280',
+'blk=bopomofoextended' => '#/280',
+'blk=boxdrawing' => '#/262',
+'blk=brahmi' => '#/147',
+'blk=braille' => '#/173',
+'blk=braillepatterns' => '#/173',
+'blk=buginese' => '#/212',
+'blk=buhid' => '#/132',
+'blk=byzantinemusic' => '#/324',
+'blk=byzantinemusicalsymbols' => '#/324',
+'blk=canadiansyllabics' => '#/127',
+'blk=carian' => '#/148',
+'blk=caucasianalbanian' => '#/357',
+'blk=chakma' => '#/149',
+'blk=cham' => '#/118',
+'blk=cherokee' => '#/213',
+'blk=cherokeesup' => '#/281',
+'blk=cherokeesupplement' => '#/281',
+'blk=cjk' => '#/109',
+'blk=cjkcompat' => '#/238',
+'blk=cjkcompatforms' => '#/325',
+'blk=cjkcompatibility' => '#/238',
+'blk=cjkcompatibilityforms' => '#/325',
+'blk=cjkcompatibilityideographs' => '#/366',
+'blk=cjkcompatibilityideographssupplement' => '#/375',
+'blk=cjkcompatideographs' => '#/366',
+'blk=cjkcompatideographssup' => '#/375',
+'blk=cjkexta' => '#/174',
+'blk=cjkextb' => '#/175',
+'blk=cjkextc' => '#/176',
+'blk=cjkextd' => '#/177',
+'blk=cjkexte' => '#/178',
+'blk=cjkradicalssup' => '#/326',
+'blk=cjkradicalssupplement' => '#/326',
+'blk=cjkstrokes' => '#/263',
+'blk=cjksymbols' => '#/264',
+'blk=cjksymbolsandpunctuation' => '#/264',
+'blk=cjkunifiedideographs' => '#/109',
+'blk=cjkunifiedideographsextensiona' => '#/174',
+'blk=cjkunifiedideographsextensionb' => '#/175',
+'blk=cjkunifiedideographsextensionc' => '#/176',
+'blk=cjkunifiedideographsextensiond' => '#/177',
+'blk=cjkunifiedideographsextensione' => '#/178',
+'blk=combiningdiacriticalmarks' => '#/306',
+'blk=combiningdiacriticalmarksextended' => '#/334',
+'blk=combiningdiacriticalmarksforsymbols' => '#/376',
+'blk=combiningdiacriticalmarkssupplement' => '#/335',
+'blk=combininghalfmarks' => '#/241',
+'blk=combiningmarksforsymbols' => '#/376',
+'blk=commonindicnumberforms' => '#/349',
+'blk=compatjamo' => '#/265',
+'blk=controlpictures' => '#/332',
+'blk=coptic' => '#/150',
+'blk=copticepactnumbers' => '#/360',
+'blk=countingrod' => '#/282',
+'blk=countingrodnumerals' => '#/282',
+'blk=cuneiform' => '#/239',
+'blk=cuneiformnumbers' => '#/344',
+'blk=cuneiformnumbersandpunctuation' => '#/344',
+'blk=currencysymbols' => '#/333',
+'blk=cypriotsyllabary' => '#/345',
+'blk=cyrillic' => '#/214',
+'blk=cyrillicexta' => '#/303',
+'blk=cyrillicextb' => '#/304',
+'blk=cyrillicextc' => '#/305',
+'blk=cyrillicextendeda' => '#/303',
+'blk=cyrillicextendedb' => '#/304',
+'blk=cyrillicextendedc' => '#/305',
+'blk=cyrillicsup' => '#/283',
+'blk=cyrillicsupplement' => '#/283',
+'blk=cyrillicsupplementary' => '#/283',
+'blk=deseret' => '#/179',
+'blk=devanagari' => '#/266',
+'blk=devanagariext' => '#/317',
+'blk=devanagariextended' => '#/317',
+'blk=diacriticals' => '#/306',
+'blk=diacriticalsext' => '#/334',
+'blk=diacriticalsforsymbols' => '#/376',
+'blk=diacriticalssup' => '#/335',
+'blk=dingbats' => '#/215',
+'blk=domino' => '#/151',
+'blk=dominotiles' => '#/151',
+'blk=duployan' => '#/216',
+'blk=earlydynasticcuneiform' => '#/377',
+'blk=egyptianhieroglyphs' => '#/367',
+'blk=elbasan' => '#/180',
+'blk=emoticons' => '#/240',
+'blk=enclosedalphanum' => '#/346',
+'blk=enclosedalphanumerics' => '#/346',
+'blk=enclosedalphanumericsupplement' => '#/368',
+'blk=enclosedalphanumsup' => '#/368',
+'blk=enclosedcjk' => '#/284',
+'blk=enclosedcjklettersandmonths' => '#/284',
+'blk=enclosedideographicsup' => '#/378',
+'blk=enclosedideographicsupplement' => '#/378',
+'blk=ethiopic' => '#/217',
+'blk=ethiopicext' => '#/285',
+'blk=ethiopicexta' => '#/307',
+'blk=ethiopicextended' => '#/285',
+'blk=ethiopicextendeda' => '#/307',
+'blk=ethiopicsup' => '#/286',
+'blk=ethiopicsupplement' => '#/286',
+'blk=generalpunctuation' => '#/296',
+'blk=geometricshapes' => '#/336',
+'blk=geometricshapesext' => '#/361',
+'blk=geometricshapesextended' => '#/361',
+'blk=georgian' => '#/218',
+'blk=georgiansup' => '#/287',
+'blk=georgiansupplement' => '#/287',
+'blk=glagolitic' => '#/267',
+'blk=glagoliticsup' => '#/318',
+'blk=glagoliticsupplement' => '#/318',
+'blk=gothic' => '#/152',
+'blk=grantha' => '#/181',
+'blk=greek' => '#/133',
+'blk=greekandcoptic' => '#/133',
+'blk=greekext' => '#/219',
+'blk=greekextended' => '#/219',
+'blk=gujarati' => '#/220',
+'blk=gurmukhi' => '#/221',
+'blk=halfandfullforms' => '#/347',
+'blk=halfmarks' => '#/241',
+'blk=halfwidthandfullwidthforms' => '#/347',
+'blk=hangul' => '#/153',
+'blk=hangulcompatibilityjamo' => '#/265',
+'blk=hanguljamo' => '#/119',
+'blk=hanguljamoextendeda' => '#/223',
+'blk=hanguljamoextendedb' => '#/224',
+'blk=hangulsyllables' => '#/153',
+'blk=hanunoo' => '#/182',
+'blk=hatran' => '#/154',
+'blk=hebrew' => '#/155',
+'blk=highprivateusesurrogates' => '#/348',
+'blk=highpusurrogates' => '#/348',
+'blk=highsurrogates' => '#/327',
+'blk=hiragana' => '#/222',
+'blk=idc' => '#/110',
+'blk=ideographicdescriptioncharacters' => '#/110',
+'blk=ideographicsymbols' => '#/362',
+'blk=ideographicsymbolsandpunctuation' => '#/362',
+'blk=imperialaramaic' => '#/337',
+'blk=indicnumberforms' => '#/349',
+'blk=inscriptionalpahlavi' => '#/372',
+'blk=inscriptionalparthian' => '#/373',
+'blk=ipaext' => '#/156',
+'blk=ipaextensions' => '#/156',
+'blk=jamo' => '#/119',
+'blk=jamoexta' => '#/223',
+'blk=jamoextb' => '#/224',
+'blk=javanese' => '#/225',
+'blk=kaithi' => '#/157',
+'blk=kanasup' => '#/183',
+'blk=kanasupplement' => '#/183',
+'blk=kanbun' => '#/158',
+'blk=kangxi' => '#/159',
+'blk=kangxiradicals' => '#/159',
+'blk=kannada' => '#/184',
+'blk=katakana' => '#/226',
+'blk=katakanaext' => '#/288',
+'blk=katakanaphoneticextensions' => '#/288',
+'blk=kayahli' => '#/185',
+'blk=kharoshthi' => '#/268',
+'blk=khmer' => '#/134',
+'blk=khmersymbols' => '#/308',
+'blk=khojki' => '#/160',
+'blk=khudawadi' => '#/242',
+'blk=lao' => '#/111',
+'blk=latin1' => '#/161',
+'blk=latin1sup' => '#/161',
+'blk=latin1supplement' => '#/161',
+'blk=latinexta' => '#/243',
+'blk=latinextadditional' => '#/363',
+'blk=latinextb' => '#/244',
+'blk=latinextc' => '#/245',
+'blk=latinextd' => '#/246',
+'blk=latinexte' => '#/247',
+'blk=latinextendeda' => '#/243',
+'blk=latinextendedadditional' => '#/363',
+'blk=latinextendedb' => '#/244',
+'blk=latinextendedc' => '#/245',
+'blk=latinextendedd' => '#/246',
+'blk=latinextendede' => '#/247',
+'blk=lepcha' => '#/162',
+'blk=letterlikesymbols' => '#/358',
+'blk=limbu' => '#/135',
+'blk=lineara' => '#/186',
+'blk=linearbideograms' => '#/350',
+'blk=linearbsyllabary' => '#/351',
+'blk=lisu' => '#/120',
+'blk=lowsurrogates' => '#/319',
+'blk=lycian' => '#/163',
+'blk=lydian' => '#/164',
+'blk=mahajani' => '#/227',
+'blk=mahjong' => '#/187',
+'blk=mahjongtiles' => '#/187',
+'blk=malayalam' => '#/248',
+'blk=mandaic' => '#/188',
+'blk=manichaean' => '#/269',
+'blk=marchen' => '#/189',
+'blk=mathalphanum' => '#/309',
+'blk=mathematicalalphanumericsymbols' => '#/309',
+'blk=mathematicaloperators' => '#/320',
+'blk=mathoperators' => '#/320',
+'blk=meeteimayek' => '#/289',
+'blk=meeteimayekext' => '#/328',
+'blk=meeteimayekextensions' => '#/328',
+'blk=mendekikakui' => '#/310',
+'blk=meroiticcursive' => '#/338',
+'blk=meroitichieroglyphs' => '#/369',
+'blk=miao' => '#/121',
+'blk=miscarrows' => '#/270',
+'blk=miscellaneousmathematicalsymbolsa' => '#/352',
+'blk=miscellaneousmathematicalsymbolsb' => '#/353',
+'blk=miscellaneoussymbols' => '#/290',
+'blk=miscellaneoussymbolsandarrows' => '#/270',
+'blk=miscellaneoussymbolsandpictographs' => '#/339',
+'blk=miscellaneoustechnical' => '#/321',
+'blk=miscmathsymbolsa' => '#/352',
+'blk=miscmathsymbolsb' => '#/353',
+'blk=miscpictographs' => '#/339',
+'blk=miscsymbols' => '#/290',
+'blk=misctechnical' => '#/321',
+'blk=modi' => '#/122',
+'blk=modifierletters' => '#/340',
+'blk=modifiertoneletters' => '#/370',
+'blk=mongolian' => '#/249',
+'blk=mongoliansup' => '#/311',
+'blk=mongoliansupplement' => '#/311',
+'blk=mro' => '#/112',
+'blk=multani' => '#/190',
+'blk=music' => '#/136',
+'blk=musicalsymbols' => '#/136',
+'blk=myanmar' => '#/191',
+'blk=myanmarexta' => '#/291',
+'blk=myanmarextb' => '#/292',
+'blk=myanmarextendeda' => '#/291',
+'blk=myanmarextendedb' => '#/292',
+'blk=nabataean' => '#/250',
'blk=nb' => 'Blk/NB',
-'blk=newtailue' => '#/242',
-'blk=nko' => '#/110',
+'blk=newa' => '#/123',
+'blk=newtailue' => '#/251',
+'blk=nko' => '#/113',
'blk=noblock' => 'Blk/NB',
-'blk=numberforms' => '#/284',
-'blk=ocr' => '#/111',
-'blk=ogham' => '#/132',
-'blk=olchiki' => '#/184',
-'blk=oldhungarian' => '#/301',
-'blk=olditalic' => '#/243',
-'blk=oldnortharabian' => '#/329',
-'blk=oldpermic' => '#/244',
-'blk=oldpersian' => '#/262',
-'blk=oldsoutharabian' => '#/330',
-'blk=oldturkic' => '#/245',
-'blk=opticalcharacterrecognition' => '#/111',
-'blk=oriya' => '#/133',
-'blk=ornamentaldingbats' => '#/350',
-'blk=osmanya' => '#/185',
-'blk=pahawhhmong' => '#/285',
-'blk=palmyrene' => '#/246',
-'blk=paucinhau' => '#/247',
-'blk=phagspa' => '#/186',
-'blk=phaistos' => '#/220',
-'blk=phaistosdisc' => '#/220',
-'blk=phoenician' => '#/263',
-'blk=phoneticext' => '#/286',
-'blk=phoneticextensions' => '#/286',
-'blk=phoneticextensionssupplement' => '#/317',
-'blk=phoneticextsup' => '#/317',
-'blk=playingcards' => '#/302',
-'blk=privateuse' => '#/112',
-'blk=privateusearea' => '#/112',
-'blk=psalterpahlavi' => '#/318',
-'blk=pua' => '#/112',
-'blk=punctuation' => '#/287',
-'blk=rejang' => '#/159',
-'blk=rumi' => '#/120',
-'blk=ruminumeralsymbols' => '#/120',
-'blk=runic' => '#/134',
-'blk=samaritan' => '#/248',
-'blk=saurashtra' => '#/264',
-'blk=sharada' => '#/187',
-'blk=shavian' => '#/188',
-'blk=shorthandformatcontrols' => '#/365',
-'blk=siddham' => '#/189',
-'blk=sinhala' => '#/190',
-'blk=sinhalaarchaicnumbers' => '#/360',
-'blk=smallforms' => '#/265',
-'blk=smallformvariants' => '#/265',
-'blk=sorasompeng' => '#/288',
-'blk=spacingmodifierletters' => '#/328',
-'blk=specials' => '#/221',
-'blk=sundanese' => '#/249',
-'blk=sundanesesup' => '#/303',
-'blk=sundanesesupplement' => '#/303',
-'blk=suparrowsa' => '#/266',
-'blk=suparrowsb' => '#/267',
-'blk=suparrowsc' => '#/268',
-'blk=superandsub' => '#/289',
-'blk=superscriptsandsubscripts' => '#/289',
-'blk=supmathoperators' => '#/342',
-'blk=supplementalarrowsa' => '#/266',
-'blk=supplementalarrowsb' => '#/267',
-'blk=supplementalarrowsc' => '#/268',
-'blk=supplementalmathematicaloperators' => '#/342',
-'blk=supplementalpunctuation' => '#/319',
-'blk=supplementalsymbolsandpictographs' => '#/366',
-'blk=supplementaryprivateuseareaa' => '#/191',
-'blk=supplementaryprivateuseareab' => '#/192',
-'blk=suppuaa' => '#/191',
-'blk=suppuab' => '#/192',
-'blk=suppunctuation' => '#/319',
-'blk=supsymbolsandpictographs' => '#/366',
-'blk=suttonsignwriting' => '#/346',
-'blk=sylotinagri' => '#/290',
-'blk=syriac' => '#/160',
-'blk=tagalog' => '#/193',
-'blk=tagbanwa' => '#/222',
-'blk=tags' => '#/121',
-'blk=taile' => '#/135',
-'blk=taitham' => '#/194',
-'blk=taiviet' => '#/195',
-'blk=taixuanjing' => '#/291',
-'blk=taixuanjingsymbols' => '#/291',
-'blk=takri' => '#/136',
-'blk=tamil' => '#/137',
-'blk=telugu' => '#/161',
-'blk=thaana' => '#/162',
-'blk=thai' => '#/122',
-'blk=tibetan' => '#/196',
-'blk=tifinagh' => '#/223',
-'blk=tirhuta' => '#/197',
-'blk=transportandmap' => '#/331',
-'blk=transportandmapsymbols' => '#/331',
-'blk=ucas' => '#/123',
-'blk=ucasext' => '#/198',
-'blk=ugaritic' => '#/224',
-'blk=unifiedcanadianaboriginalsyllabics' => '#/123',
-'blk=unifiedcanadianaboriginalsyllabicsextended' => '#/198',
-'blk=vai' => '#/113',
-'blk=variationselectors' => '#/105',
-'blk=variationselectorssupplement' => '#/138',
-'blk=vedicext' => '#/225',
-'blk=vedicextensions' => '#/225',
-'blk=verticalforms' => '#/310',
-'blk=vs' => '#/105',
-'blk=vssup' => '#/138',
-'blk=warangciti' => '#/269',
-'blk=yijing' => '#/163',
-'blk=yijinghexagramsymbols' => '#/163',
-'blk=yiradicals' => '#/270',
-'blk=yisyllables' => '#/292',
-'blockelements' => '#/305',
-'bopo' => '#/550',
-'bopomofo' => '#/550',
-'bopomofoext' => '#/271',
-'bopomofoextended' => '#/271',
-'boxdrawing' => '#/253',
+'blk=numberforms' => '#/293',
+'blk=ocr' => '#/114',
+'blk=ogham' => '#/137',
+'blk=olchiki' => '#/192',
+'blk=oldhungarian' => '#/312',
+'blk=olditalic' => '#/252',
+'blk=oldnortharabian' => '#/341',
+'blk=oldpermic' => '#/253',
+'blk=oldpersian' => '#/271',
+'blk=oldsoutharabian' => '#/342',
+'blk=oldturkic' => '#/254',
+'blk=opticalcharacterrecognition' => '#/114',
+'blk=oriya' => '#/138',
+'blk=ornamentaldingbats' => '#/364',
+'blk=osage' => '#/139',
+'blk=osmanya' => '#/193',
+'blk=pahawhhmong' => '#/294',
+'blk=palmyrene' => '#/255',
+'blk=paucinhau' => '#/256',
+'blk=phagspa' => '#/194',
+'blk=phaistos' => '#/228',
+'blk=phaistosdisc' => '#/228',
+'blk=phoenician' => '#/272',
+'blk=phoneticext' => '#/295',
+'blk=phoneticextensions' => '#/295',
+'blk=phoneticextensionssupplement' => '#/329',
+'blk=phoneticextsup' => '#/329',
+'blk=playingcards' => '#/313',
+'blk=privateuse' => '#/115',
+'blk=privateusearea' => '#/115',
+'blk=psalterpahlavi' => '#/330',
+'blk=pua' => '#/115',
+'blk=punctuation' => '#/296',
+'blk=rejang' => '#/165',
+'blk=rumi' => '#/124',
+'blk=ruminumeralsymbols' => '#/124',
+'blk=runic' => '#/140',
+'blk=samaritan' => '#/257',
+'blk=saurashtra' => '#/273',
+'blk=sharada' => '#/195',
+'blk=shavian' => '#/196',
+'blk=shorthandformatcontrols' => '#/379',
+'blk=siddham' => '#/197',
+'blk=sinhala' => '#/198',
+'blk=sinhalaarchaicnumbers' => '#/374',
+'blk=smallforms' => '#/274',
+'blk=smallformvariants' => '#/274',
+'blk=sorasompeng' => '#/297',
+'blk=spacingmodifierletters' => '#/340',
+'blk=specials' => '#/229',
+'blk=sundanese' => '#/258',
+'blk=sundanesesup' => '#/314',
+'blk=sundanesesupplement' => '#/314',
+'blk=suparrowsa' => '#/275',
+'blk=suparrowsb' => '#/276',
+'blk=suparrowsc' => '#/277',
+'blk=superandsub' => '#/298',
+'blk=superscriptsandsubscripts' => '#/298',
+'blk=supmathoperators' => '#/354',
+'blk=supplementalarrowsa' => '#/275',
+'blk=supplementalarrowsb' => '#/276',
+'blk=supplementalarrowsc' => '#/277',
+'blk=supplementalmathematicaloperators' => '#/354',
+'blk=supplementalpunctuation' => '#/331',
+'blk=supplementalsymbolsandpictographs' => '#/380',
+'blk=supplementaryprivateuseareaa' => '#/199',
+'blk=supplementaryprivateuseareab' => '#/200',
+'blk=suppuaa' => '#/199',
+'blk=suppuab' => '#/200',
+'blk=suppunctuation' => '#/331',
+'blk=supsymbolsandpictographs' => '#/380',
+'blk=suttonsignwriting' => '#/359',
+'blk=sylotinagri' => '#/299',
+'blk=syriac' => '#/166',
+'blk=tagalog' => '#/201',
+'blk=tagbanwa' => '#/230',
+'blk=tags' => '#/125',
+'blk=taile' => '#/141',
+'blk=taitham' => '#/202',
+'blk=taiviet' => '#/203',
+'blk=taixuanjing' => '#/300',
+'blk=taixuanjingsymbols' => '#/300',
+'blk=takri' => '#/142',
+'blk=tamil' => '#/143',
+'blk=tangut' => '#/167',
+'blk=tangutcomponents' => '#/355',
+'blk=telugu' => '#/168',
+'blk=thaana' => '#/169',
+'blk=thai' => '#/126',
+'blk=tibetan' => '#/204',
+'blk=tifinagh' => '#/231',
+'blk=tirhuta' => '#/205',
+'blk=transportandmap' => '#/343',
+'blk=transportandmapsymbols' => '#/343',
+'blk=ucas' => '#/127',
+'blk=ucasext' => '#/206',
+'blk=ugaritic' => '#/232',
+'blk=unifiedcanadianaboriginalsyllabics' => '#/127',
+'blk=unifiedcanadianaboriginalsyllabicsextended' => '#/206',
+'blk=vai' => '#/116',
+'blk=variationselectors' => '#/108',
+'blk=variationselectorssupplement' => '#/144',
+'blk=vedicext' => '#/233',
+'blk=vedicextensions' => '#/233',
+'blk=verticalforms' => '#/322',
+'blk=vs' => '#/108',
+'blk=vssup' => '#/144',
+'blk=warangciti' => '#/278',
+'blk=yijing' => '#/170',
+'blk=yijinghexagramsymbols' => '#/170',
+'blk=yiradicals' => '#/279',
+'blk=yisyllables' => '#/301',
+'blockelements' => '#/316',
+'bopo' => 'Scx/Bopo',
+'bopomofo' => 'Scx/Bopo',
+'bopomofoext' => '#/280',
+'bopomofoextended' => '#/280',
+'boxdrawing' => '#/262',
'bpt=c' => 'Bpt/C',
'bpt=close' => 'Bpt/C',
'bpt=n' => 'Bpt/N',
'bpt=none' => 'Bpt/N',
'bpt=o' => 'Bpt/O',
'bpt=open' => 'Bpt/O',
-'brah' => '#/551',
-'brahmi' => '#/551',
-'brai' => '#/166',
-'braille' => '#/166',
-'braillepatterns' => '#/166',
-'bugi' => '#/552',
-'buginese' => '#/552',
-'buhd' => '#/553',
-'buhid' => '#/553',
-'byzantinemusic' => '#/312',
-'byzantinemusicalsymbols' => '#/312',
+'brah' => '#/572',
+'brahmi' => '#/572',
+'brai' => '#/173',
+'braille' => '#/173',
+'braillepatterns' => '#/173',
+'bugi' => '#/644',
+'buginese' => '#/644',
+'buhd' => '#/645',
+'buhid' => '#/645',
+'byzantinemusic' => '#/324',
+'byzantinemusicalsymbols' => '#/324',
'c' => 'Gc/C',
-'cakm' => '#/554',
-'canadianaboriginal' => '#/555',
-'canadiansyllabics' => '#/123',
-'cans' => '#/555',
-'cari' => '#/556',
-'carian' => '#/556',
+'cakm' => 'Scx/Cakm',
+'canadianaboriginal' => '#/576',
+'canadiansyllabics' => '#/127',
+'cans' => '#/576',
+'cari' => '#/577',
+'carian' => '#/577',
'cased' => 'Cased/Y',
'cased=f' => '!Cased/Y',
'cased=false' => '!Cased/Y',
@@ -3322,8 +3444,8 @@
'cased=yes' => 'Cased/Y',
'casedletter' => 'Gc/LC',
'caseignorable' => 'CI/Y',
-'caucasianalbanian' => '#/542',
-'cc' => '#/370',
+'caucasianalbanian' => '#/563',
+'cc' => '#/384',
'ccc=a' => 'Ccc/A',
'ccc=above' => 'Ccc/A',
'ccc=aboveleft' => '#/17',
@@ -3411,7 +3533,7 @@
'ce=y' => 'CE/Y',
'ce=yes' => 'CE/Y',
'cf' => 'Gc/Cf',
-'chakma' => '#/554',
+'chakma' => 'Scx/Cakm',
'cham' => 'Sc/Cham',
'changeswhencasefolded' => 'CWCF/Y',
'changeswhencasemapped' => 'CWCM/Y',
@@ -3419,10 +3541,10 @@
'changeswhennfkccasefolded' => 'CWKCF/Y',
'changeswhentitlecased' => 'CWT/Y',
'changeswhenuppercased' => 'CWU/Y',
-'cher' => '#/557',
-'cherokee' => '#/557',
-'cherokeesup' => '#/272',
-'cherokeesupplement' => '#/272',
+'cher' => '#/578',
+'cherokee' => '#/578',
+'cherokeesup' => '#/281',
+'cherokeesupplement' => '#/281',
'ci' => 'CI/Y',
'ci=f' => '!CI/Y',
'ci=false' => '!CI/Y',
@@ -3432,45 +3554,45 @@
'ci=true' => 'CI/Y',
'ci=y' => 'CI/Y',
'ci=yes' => 'CI/Y',
-'cjk' => '#/106',
-'cjkcompat' => '#/229',
-'cjkcompatforms' => '#/313',
-'cjkcompatibility' => '#/229',
-'cjkcompatibilityforms' => '#/313',
-'cjkcompatibilityideographs' => '#/352',
-'cjkcompatibilityideographssupplement' => '#/361',
-'cjkcompatideographs' => '#/352',
-'cjkcompatideographssup' => '#/361',
-'cjkexta' => '#/167',
-'cjkextb' => '#/168',
-'cjkextc' => '#/169',
-'cjkextd' => '#/170',
-'cjkexte' => '#/171',
-'cjkradicalssup' => '#/314',
-'cjkradicalssupplement' => '#/314',
-'cjkstrokes' => '#/254',
-'cjksymbols' => '#/255',
-'cjksymbolsandpunctuation' => '#/255',
-'cjkunifiedideographs' => '#/106',
-'cjkunifiedideographsextensiona' => '#/167',
-'cjkunifiedideographsextensionb' => '#/168',
-'cjkunifiedideographsextensionc' => '#/169',
-'cjkunifiedideographsextensiond' => '#/170',
-'cjkunifiedideographsextensione' => '#/171',
+'cjk' => '#/109',
+'cjkcompat' => '#/238',
+'cjkcompatforms' => '#/325',
+'cjkcompatibility' => '#/238',
+'cjkcompatibilityforms' => '#/325',
+'cjkcompatibilityideographs' => '#/366',
+'cjkcompatibilityideographssupplement' => '#/375',
+'cjkcompatideographs' => '#/366',
+'cjkcompatideographssup' => '#/375',
+'cjkexta' => '#/174',
+'cjkextb' => '#/175',
+'cjkextc' => '#/176',
+'cjkextd' => '#/177',
+'cjkexte' => '#/178',
+'cjkradicalssup' => '#/326',
+'cjkradicalssupplement' => '#/326',
+'cjkstrokes' => '#/263',
+'cjksymbols' => '#/264',
+'cjksymbolsandpunctuation' => '#/264',
+'cjkunifiedideographs' => '#/109',
+'cjkunifiedideographsextensiona' => '#/174',
+'cjkunifiedideographsextensionb' => '#/175',
+'cjkunifiedideographsextensionc' => '#/176',
+'cjkunifiedideographsextensiond' => '#/177',
+'cjkunifiedideographsextensione' => '#/178',
'closepunctuation' => 'Gc/Pe',
'cn' => 'Gc/Cn',
-'cntrl' => '#/370',
-'co' => '#/371',
-'combiningdiacriticalmarks' => '#/296',
-'combiningdiacriticalmarksextended' => '#/322',
-'combiningdiacriticalmarksforsymbols' => '#/362',
-'combiningdiacriticalmarkssupplement' => '#/323',
-'combininghalfmarks' => '#/232',
+'cntrl' => '#/384',
+'co' => '#/385',
+'combiningdiacriticalmarks' => '#/306',
+'combiningdiacriticalmarksextended' => '#/334',
+'combiningdiacriticalmarksforsymbols' => '#/376',
+'combiningdiacriticalmarkssupplement' => '#/335',
+'combininghalfmarks' => '#/241',
'combiningmark' => 'Gc/M',
-'combiningmarksforsymbols' => '#/362',
-'common' => 'Sc/Zyyy',
-'commonindicnumberforms' => '#/337',
-'compatjamo' => '#/256',
+'combiningmarksforsymbols' => '#/376',
+'common' => 'Scx/Zyyy',
+'commonindicnumberforms' => '#/349',
+'compatjamo' => '#/265',
'compex' => 'CompEx/Y',
'compex=f' => '!CompEx/Y',
'compex=false' => '!CompEx/Y',
@@ -3481,21 +3603,21 @@
'compex=y' => 'CompEx/Y',
'compex=yes' => 'CompEx/Y',
'compositionexclusion' => 'CE/Y',
-'connectorpunctuation' => 'WB/EX',
-'control' => '#/370',
-'controlpictures' => '#/320',
-'copt' => '#/558',
-'coptic' => '#/558',
-'copticepactnumbers' => '#/347',
-'countingrod' => '#/273',
-'countingrodnumerals' => '#/273',
-'cprt' => 'Sc/Cprt',
+'connectorpunctuation' => 'Gc/Pc',
+'control' => '#/384',
+'controlpictures' => '#/332',
+'copt' => 'Scx/Copt',
+'coptic' => 'Scx/Copt',
+'copticepactnumbers' => '#/360',
+'countingrod' => '#/282',
+'countingrodnumerals' => '#/282',
+'cprt' => 'Scx/Cprt',
'cs' => '#/14',
'cuneiform' => 'Sc/Xsux',
-'cuneiformnumbers' => '#/332',
-'cuneiformnumbersandpunctuation' => '#/332',
+'cuneiformnumbers' => '#/344',
+'cuneiformnumbersandpunctuation' => '#/344',
'currencysymbol' => 'Gc/Sc',
-'currencysymbols' => '#/321',
+'currencysymbols' => '#/333',
'cwcf' => 'CWCF/Y',
'cwcf=f' => '!CWCF/Y',
'cwcf=false' => '!CWCF/Y',
@@ -3550,17 +3672,19 @@
'cwu=true' => 'CWU/Y',
'cwu=y' => 'CWU/Y',
'cwu=yes' => 'CWU/Y',
-'cypriot' => 'Sc/Cprt',
-'cypriotsyllabary' => '#/333',
-'cyrillic' => 'Sc/Cyrl',
-'cyrillicexta' => '#/294',
-'cyrillicextb' => '#/295',
-'cyrillicextendeda' => '#/294',
-'cyrillicextendedb' => '#/295',
-'cyrillicsup' => '#/274',
-'cyrillicsupplement' => '#/274',
-'cyrillicsupplementary' => '#/274',
-'cyrl' => 'Sc/Cyrl',
+'cypriot' => 'Scx/Cprt',
+'cypriotsyllabary' => '#/345',
+'cyrillic' => 'Scx/Cyrl',
+'cyrillicexta' => '#/303',
+'cyrillicextb' => '#/304',
+'cyrillicextc' => '#/305',
+'cyrillicextendeda' => '#/303',
+'cyrillicextendedb' => '#/304',
+'cyrillicextendedc' => '#/305',
+'cyrillicsup' => '#/283',
+'cyrillicsupplement' => '#/283',
+'cyrillicsupplementary' => '#/283',
+'cyrl' => 'Scx/Cyrl',
'dash' => 'Dash/Y',
'dash=f' => '!Dash/Y',
'dash=false' => '!Dash/Y',
@@ -3583,11 +3707,11 @@
'dep=y' => 'Dep/Y',
'dep=yes' => 'Dep/Y',
'deprecated' => 'Dep/Y',
-'deseret' => '#/172',
-'deva' => 'Sc/Deva',
-'devanagari' => 'Sc/Deva',
-'devanagariext' => '#/306',
-'devanagariextended' => '#/306',
+'deseret' => '#/179',
+'deva' => 'Scx/Deva',
+'devanagari' => 'Scx/Deva',
+'devanagariext' => '#/317',
+'devanagariextended' => '#/317',
'di' => 'DI/Y',
'di=f' => '!DI/Y',
'di=false' => '!DI/Y',
@@ -3607,15 +3731,15 @@
'dia=y' => 'Dia/Y',
'dia=yes' => 'Dia/Y',
'diacritic' => 'Dia/Y',
-'diacriticals' => '#/296',
-'diacriticalsext' => '#/322',
-'diacriticalsforsymbols' => '#/362',
-'diacriticalssup' => '#/323',
+'diacriticals' => '#/306',
+'diacriticalsext' => '#/334',
+'diacriticalsforsymbols' => '#/376',
+'diacriticalssup' => '#/335',
'digit' => 'Gc/Nd',
-'dingbats' => '#/207',
-'domino' => '#/145',
-'dominotiles' => '#/145',
-'dsrt' => '#/172',
+'dingbats' => '#/215',
+'domino' => '#/151',
+'dominotiles' => '#/151',
+'dsrt' => '#/179',
'dt=can' => 'NFDQC/N',
'dt=canonical' => 'NFDQC/N',
'dt=circle' => 'Dt/Enc',
@@ -3625,8 +3749,8 @@
'dt=fin' => 'Dt/Fin',
'dt=final' => 'Dt/Fin',
'dt=font' => 'Dt/Font',
-'dt=fra' => '#/367',
-'dt=fraction' => '#/367',
+'dt=fra' => '#/381',
+'dt=fraction' => '#/381',
'dt=init' => 'Dt/Init',
'dt=initial' => 'Dt/Init',
'dt=iso' => 'Dt/Iso',
@@ -3640,8 +3764,8 @@
'dt=noncanon' => 'Dt/NonCanon',
'dt=noncanonical' => 'Dt/NonCanon',
'dt=none' => 'NFKDQC/Y',
-'dt=small' => '#/368',
-'dt=sml' => '#/368',
+'dt=small' => '#/382',
+'dt=sml' => '#/382',
'dt=sqr' => 'Dt/Sqr',
'dt=square' => 'Dt/Sqr',
'dt=sub' => 'Dt/Sub',
@@ -3649,13 +3773,13 @@
'dt=super' => 'Dt/Sup',
'dt=vert' => 'Dt/Vert',
'dt=vertical' => 'Dt/Vert',
-'dt=wide' => '#/369',
-'dupl' => 'Sc/Dupl',
-'duployan' => 'Sc/Dupl',
+'dt=wide' => '#/383',
+'dupl' => 'Scx/Dupl',
+'duployan' => 'Scx/Dupl',
'ea=a' => 'Ea/A',
'ea=ambiguous' => 'Ea/A',
-'ea=f' => '#/369',
-'ea=fullwidth' => '#/369',
+'ea=f' => '#/383',
+'ea=fullwidth' => '#/383',
'ea=h' => 'Ea/H',
'ea=halfwidth' => 'Ea/H',
'ea=n' => 'Ea/N',
@@ -3664,29 +3788,29 @@
'ea=neutral' => 'Ea/N',
'ea=w' => 'Ea/W',
'ea=wide' => 'Ea/W',
-'earlydynasticcuneiform' => '#/363',
-'egyp' => '#/559',
-'egyptianhieroglyphs' => '#/559',
-'elba' => '#/560',
-'elbasan' => '#/560',
-'emoticons' => '#/231',
-'enclosedalphanum' => '#/334',
-'enclosedalphanumerics' => '#/334',
-'enclosedalphanumericsupplement' => '#/354',
-'enclosedalphanumsup' => '#/354',
-'enclosedcjk' => '#/275',
-'enclosedcjklettersandmonths' => '#/275',
-'enclosedideographicsup' => '#/364',
-'enclosedideographicsupplement' => '#/364',
+'earlydynasticcuneiform' => '#/377',
+'egyp' => '#/580',
+'egyptianhieroglyphs' => '#/580',
+'elba' => '#/581',
+'elbasan' => '#/581',
+'emoticons' => '#/240',
+'enclosedalphanum' => '#/346',
+'enclosedalphanumerics' => '#/346',
+'enclosedalphanumericsupplement' => '#/368',
+'enclosedalphanumsup' => '#/368',
+'enclosedcjk' => '#/284',
+'enclosedcjklettersandmonths' => '#/284',
+'enclosedideographicsup' => '#/378',
+'enclosedideographicsupplement' => '#/378',
'enclosingmark' => 'Gc/Me',
'ethi' => 'Sc/Ethi',
'ethiopic' => 'Sc/Ethi',
-'ethiopicext' => '#/276',
-'ethiopicexta' => '#/297',
-'ethiopicextended' => '#/276',
-'ethiopicextendeda' => '#/297',
-'ethiopicsup' => '#/277',
-'ethiopicsupplement' => '#/277',
+'ethiopicext' => '#/285',
+'ethiopicexta' => '#/307',
+'ethiopicextended' => '#/285',
+'ethiopicextendeda' => '#/307',
+'ethiopicsup' => '#/286',
+'ethiopicsupplement' => '#/286',
'ext' => 'Ext/Y',
'ext=f' => '!Ext/Y',
'ext=false' => '!Ext/Y',
@@ -3702,15 +3826,15 @@
'fullcompositionexclusion' => 'CompEx/Y',
'gc=c' => 'Gc/C',
'gc=casedletter' => 'Gc/LC',
-'gc=cc' => '#/370',
+'gc=cc' => '#/384',
'gc=cf' => 'Gc/Cf',
'gc=closepunctuation' => 'Gc/Pe',
'gc=cn' => 'Gc/Cn',
-'gc=cntrl' => '#/370',
-'gc=co' => '#/371',
+'gc=cntrl' => '#/384',
+'gc=co' => '#/385',
'gc=combiningmark' => 'Gc/M',
-'gc=connectorpunctuation' => 'WB/EX',
-'gc=control' => '#/370',
+'gc=connectorpunctuation' => 'Gc/Pc',
+'gc=control' => '#/384',
'gc=cs' => '#/14',
'gc=currencysymbol' => 'Gc/Sc',
'gc=dashpunctuation' => 'Gc/Pd',
@@ -3726,7 +3850,7 @@
'gc=lc' => 'Gc/LC',
'gc=letter' => 'Gc/L',
'gc=letternumber' => 'Gc/Nl',
-'gc=lineseparator' => '#/372',
+'gc=lineseparator' => '#/386',
'gc=ll' => 'Gc/Ll',
'gc=lm' => 'Gc/Lm',
'gc=lo' => 'Gc/Lo',
@@ -3754,14 +3878,14 @@
'gc=otherpunctuation' => 'Gc/Po',
'gc=othersymbol' => 'Gc/So',
'gc=p' => 'Gc/P',
-'gc=paragraphseparator' => '#/373',
-'gc=pc' => 'WB/EX',
+'gc=paragraphseparator' => '#/387',
+'gc=pc' => 'Gc/Pc',
'gc=pd' => 'Gc/Pd',
'gc=pe' => 'Gc/Pe',
'gc=pf' => 'Gc/Pf',
'gc=pi' => 'Gc/Pi',
'gc=po' => 'Gc/Po',
-'gc=privateuse' => '#/371',
+'gc=privateuse' => '#/385',
'gc=ps' => 'Gc/Ps',
'gc=punct' => 'Gc/P',
'gc=punctuation' => 'Gc/P',
@@ -3779,42 +3903,53 @@
'gc=unassigned' => 'Gc/Cn',
'gc=uppercaseletter' => 'Gc/Lu',
'gc=z' => 'Gc/Z',
-'gc=zl' => '#/372',
-'gc=zp' => '#/373',
+'gc=zl' => '#/386',
+'gc=zp' => '#/387',
'gc=zs' => 'Gc/Zs',
'gcb=cn' => 'GCB/CN',
'gcb=control' => 'GCB/CN',
'gcb=cr' => '#/64',
+'gcb=eb' => 'GCB/EB',
+'gcb=ebase' => 'GCB/EB',
+'gcb=ebasegaz' => '#/68',
+'gcb=ebg' => '#/68',
+'gcb=em' => '#/65',
+'gcb=emodifier' => '#/65',
'gcb=ex' => 'GCB/EX',
'gcb=extend' => 'GCB/EX',
+'gcb=gaz' => '#/69',
+'gcb=glueafterzwj' => '#/69',
'gcb=l' => '#/61',
-'gcb=lf' => '#/65',
+'gcb=lf' => '#/66',
'gcb=lv' => 'GCB/LV',
'gcb=lvt' => 'GCB/LVT',
'gcb=other' => 'GCB/XX',
-'gcb=pp' => '#/0',
-'gcb=prepend' => '#/0',
-'gcb=regionalindicator' => '#/66',
-'gcb=ri' => '#/66',
+'gcb=pp' => 'GCB/PP',
+'gcb=prepend' => 'GCB/PP',
+'gcb=regionalindicator' => '#/67',
+'gcb=ri' => '#/67',
'gcb=sm' => 'GCB/SM',
'gcb=spacingmark' => 'GCB/SM',
'gcb=t' => '#/62',
'gcb=v' => '#/63',
'gcb=xx' => 'GCB/XX',
-'generalpunctuation' => '#/287',
-'geometricshapes' => '#/324',
-'geometricshapesext' => '#/348',
-'geometricshapesextended' => '#/348',
-'geor' => 'Sc/Geor',
-'georgian' => 'Sc/Geor',
-'georgiansup' => '#/278',
-'georgiansupplement' => '#/278',
-'glag' => '#/561',
-'glagolitic' => '#/561',
-'goth' => '#/562',
-'gothic' => '#/562',
-'gran' => 'Sc/Gran',
-'grantha' => 'Sc/Gran',
+'gcb=zwj' => '#/70',
+'generalpunctuation' => '#/296',
+'geometricshapes' => '#/336',
+'geometricshapesext' => '#/361',
+'geometricshapesextended' => '#/361',
+'geor' => 'Scx/Geor',
+'georgian' => 'Scx/Geor',
+'georgiansup' => '#/287',
+'georgiansupplement' => '#/287',
+'glag' => 'Scx/Glag',
+'glagolitic' => 'Scx/Glag',
+'glagoliticsup' => '#/318',
+'glagoliticsupplement' => '#/318',
+'goth' => '#/582',
+'gothic' => '#/582',
+'gran' => 'Scx/Gran',
+'grantha' => 'Scx/Gran',
'graph' => 'Perl/Graph',
'graphemebase' => 'GrBase/Y',
'graphemeextend' => 'GCB/EX',
@@ -3827,11 +3962,11 @@
'grbase=true' => 'GrBase/Y',
'grbase=y' => 'GrBase/Y',
'grbase=yes' => 'GrBase/Y',
-'greek' => 'Sc/Grek',
-'greekandcoptic' => '#/128',
-'greekext' => '#/211',
-'greekextended' => '#/211',
-'grek' => 'Sc/Grek',
+'greek' => 'Scx/Grek',
+'greekandcoptic' => '#/133',
+'greekext' => '#/219',
+'greekextended' => '#/219',
+'grek' => 'Scx/Grek',
'grext' => 'GCB/EX',
'grext=f' => '!GCB/EX',
'grext=false' => '!GCB/EX',
@@ -3841,26 +3976,26 @@
'grext=true' => 'GCB/EX',
'grext=y' => 'GCB/EX',
'grext=yes' => 'GCB/EX',
-'gujarati' => 'Sc/Gujr',
-'gujr' => 'Sc/Gujr',
-'gurmukhi' => 'Sc/Guru',
-'guru' => 'Sc/Guru',
-'halfandfullforms' => '#/335',
-'halfmarks' => '#/232',
-'halfwidthandfullwidthforms' => '#/335',
-'han' => 'Sc/Han',
-'hang' => 'Sc/Hang',
-'hangul' => 'Sc/Hang',
-'hangulcompatibilityjamo' => '#/256',
-'hanguljamo' => '#/116',
-'hanguljamoextendeda' => '#/215',
-'hanguljamoextendedb' => '#/216',
-'hangulsyllables' => '#/147',
-'hani' => 'Sc/Han',
-'hano' => '#/563',
-'hanunoo' => '#/563',
-'hatr' => '#/564',
-'hatran' => '#/564',
+'gujarati' => 'Scx/Gujr',
+'gujr' => 'Scx/Gujr',
+'gurmukhi' => 'Scx/Guru',
+'guru' => 'Scx/Guru',
+'halfandfullforms' => '#/347',
+'halfmarks' => '#/241',
+'halfwidthandfullwidthforms' => '#/347',
+'han' => 'Scx/Han',
+'hang' => 'Scx/Hang',
+'hangul' => 'Scx/Hang',
+'hangulcompatibilityjamo' => '#/265',
+'hanguljamo' => '#/119',
+'hanguljamoextendeda' => '#/223',
+'hanguljamoextendedb' => '#/224',
+'hangulsyllables' => '#/153',
+'hani' => 'Scx/Han',
+'hano' => '#/646',
+'hanunoo' => '#/646',
+'hatr' => '#/584',
+'hatran' => '#/584',
'hebr' => 'Sc/Hebr',
'hebrew' => 'Sc/Hebr',
'hex' => 'Hex/Y',
@@ -3873,12 +4008,12 @@
'hex=y' => 'Hex/Y',
'hex=yes' => 'Hex/Y',
'hexdigit' => 'Hex/Y',
-'highprivateusesurrogates' => '#/336',
-'highpusurrogates' => '#/336',
-'highsurrogates' => '#/315',
-'hira' => 'Sc/Hira',
-'hiragana' => 'Sc/Hira',
-'hluw' => '#/565',
+'highprivateusesurrogates' => '#/348',
+'highpusurrogates' => '#/348',
+'highsurrogates' => '#/327',
+'hira' => 'Scx/Hira',
+'hiragana' => 'Scx/Hira',
+'hluw' => '#/585',
'hmng' => 'Sc/Hmng',
'horizspace' => 'Perl/Blank',
'hst=l' => '#/61',
@@ -3893,7 +4028,7 @@
'hst=trailingjamo' => '#/62',
'hst=v' => '#/63',
'hst=voweljamo' => '#/63',
-'hung' => '#/566',
+'hung' => '#/586',
'hyphen' => 'Hyphen/T',
'hyphen=f' => '!Hyphen/T',
'hyphen=false' => '!Hyphen/T',
@@ -3923,7 +4058,9 @@
'ideo=y' => 'Ideo/Y',
'ideo=yes' => 'Ideo/Y',
'ideographic' => 'Ideo/Y',
-'ideographicdescriptioncharacters' => '#/107',
+'ideographicdescriptioncharacters' => '#/110',
+'ideographicsymbols' => '#/362',
+'ideographicsymbolsandpunctuation' => '#/362',
'ids' => 'IDS/Y',
'ids=f' => '!IDS/Y',
'ids=false' => '!IDS/Y',
@@ -3933,321 +4070,334 @@
'ids=true' => 'IDS/Y',
'ids=y' => 'IDS/Y',
'ids=yes' => 'IDS/Y',
-'idsb' => '#/67',
-'idsb=f' => '#/!67',
-'idsb=false' => '#/!67',
-'idsb=n' => '#/!67',
-'idsb=no' => '#/!67',
-'idsb=t' => '#/67',
-'idsb=true' => '#/67',
-'idsb=y' => '#/67',
-'idsb=yes' => '#/67',
-'idsbinaryoperator' => '#/67',
-'idst' => '#/68',
-'idst=f' => '#/!68',
-'idst=false' => '#/!68',
-'idst=n' => '#/!68',
-'idst=no' => '#/!68',
-'idst=t' => '#/68',
-'idst=true' => '#/68',
-'idst=y' => '#/68',
-'idst=yes' => '#/68',
+'idsb' => '#/71',
+'idsb=f' => '#/!71',
+'idsb=false' => '#/!71',
+'idsb=n' => '#/!71',
+'idsb=no' => '#/!71',
+'idsb=t' => '#/71',
+'idsb=true' => '#/71',
+'idsb=y' => '#/71',
+'idsb=yes' => '#/71',
+'idsbinaryoperator' => '#/71',
+'idst' => '#/72',
+'idst=f' => '#/!72',
+'idst=false' => '#/!72',
+'idst=n' => '#/!72',
+'idst=no' => '#/!72',
+'idst=t' => '#/72',
+'idst=true' => '#/72',
+'idst=y' => '#/72',
+'idst=yes' => '#/72',
'idstart' => 'IDS/Y',
-'idstrinaryoperator' => '#/68',
-'imperialaramaic' => '#/544',
+'idstrinaryoperator' => '#/72',
+'imperialaramaic' => '#/565',
'in=unassigned' => 'Age/NA',
-'inaegeannumbers' => '#/304',
-'inahom' => '#/114',
-'inalchemical' => '#/250',
-'inalchemicalsymbols' => '#/250',
-'inalphabeticpf' => '#/293',
-'inalphabeticpresentationforms' => '#/293',
-'inanatolianhieroglyphs' => '#/357',
-'inancientgreekmusic' => '#/343',
-'inancientgreekmusicalnotation' => '#/343',
-'inancientgreeknumbers' => '#/351',
-'inancientsymbols' => '#/311',
-'inarabic' => '#/139',
-'inarabicexta' => '#/251',
-'inarabicextendeda' => '#/251',
-'inarabicmath' => '#/252',
-'inarabicmathematicalalphabeticsymbols' => '#/252',
-'inarabicpfa' => '#/226',
-'inarabicpfb' => '#/227',
-'inarabicpresentationformsa' => '#/226',
-'inarabicpresentationformsb' => '#/227',
-'inarabicsup' => '#/228',
-'inarabicsupplement' => '#/228',
-'inarmenian' => '#/199',
-'inarrows' => '#/140',
-'inascii' => '#/124',
-'inavestan' => '#/164',
-'inbalinese' => '#/200',
-'inbamum' => '#/125',
-'inbamumsup' => '#/201',
-'inbamumsupplement' => '#/201',
-'inbasiclatin' => '#/124',
-'inbassavah' => '#/202',
-'inbatak' => '#/126',
-'inbengali' => '#/165',
-'inblockelements' => '#/305',
-'inbopomofo' => '#/203',
-'inbopomofoext' => '#/271',
-'inbopomofoextended' => '#/271',
-'inboxdrawing' => '#/253',
-'inbrahmi' => '#/141',
-'inbraille' => '#/166',
-'inbraillepatterns' => '#/166',
-'inbuginese' => '#/204',
-'inbuhid' => '#/127',
-'inbyzantinemusic' => '#/312',
-'inbyzantinemusicalsymbols' => '#/312',
-'incanadiansyllabics' => '#/123',
-'incarian' => '#/142',
-'incaucasianalbanian' => '#/344',
-'inchakma' => '#/143',
-'incham' => '#/115',
-'incherokee' => '#/205',
-'incherokeesup' => '#/272',
-'incherokeesupplement' => '#/272',
-'incjk' => '#/106',
-'incjkcompat' => '#/229',
-'incjkcompatforms' => '#/313',
-'incjkcompatibility' => '#/229',
-'incjkcompatibilityforms' => '#/313',
-'incjkcompatibilityideographs' => '#/352',
-'incjkcompatibilityideographssupplement' => '#/361',
-'incjkcompatideographs' => '#/352',
-'incjkcompatideographssup' => '#/361',
-'incjkexta' => '#/167',
-'incjkextb' => '#/168',
-'incjkextc' => '#/169',
-'incjkextd' => '#/170',
-'incjkexte' => '#/171',
-'incjkradicalssup' => '#/314',
-'incjkradicalssupplement' => '#/314',
-'incjkstrokes' => '#/254',
-'incjksymbols' => '#/255',
-'incjksymbolsandpunctuation' => '#/255',
-'incjkunifiedideographs' => '#/106',
-'incjkunifiedideographsextensiona' => '#/167',
-'incjkunifiedideographsextensionb' => '#/168',
-'incjkunifiedideographsextensionc' => '#/169',
-'incjkunifiedideographsextensiond' => '#/170',
-'incjkunifiedideographsextensione' => '#/171',
-'incombiningdiacriticalmarks' => '#/296',
-'incombiningdiacriticalmarksextended' => '#/322',
-'incombiningdiacriticalmarksforsymbols' => '#/362',
-'incombiningdiacriticalmarkssupplement' => '#/323',
-'incombininghalfmarks' => '#/232',
-'incombiningmarksforsymbols' => '#/362',
-'incommonindicnumberforms' => '#/337',
-'incompatjamo' => '#/256',
-'incontrolpictures' => '#/320',
-'incoptic' => '#/144',
-'incopticepactnumbers' => '#/347',
-'incountingrod' => '#/273',
-'incountingrodnumerals' => '#/273',
-'incuneiform' => '#/230',
-'incuneiformnumbers' => '#/332',
-'incuneiformnumbersandpunctuation' => '#/332',
-'incurrencysymbols' => '#/321',
-'incypriotsyllabary' => '#/333',
-'incyrillic' => '#/206',
-'incyrillicexta' => '#/294',
-'incyrillicextb' => '#/295',
-'incyrillicextendeda' => '#/294',
-'incyrillicextendedb' => '#/295',
-'incyrillicsup' => '#/274',
-'incyrillicsupplement' => '#/274',
-'incyrillicsupplementary' => '#/274',
-'indeseret' => '#/172',
-'indevanagari' => '#/257',
-'indevanagariext' => '#/306',
-'indevanagariextended' => '#/306',
-'indiacriticals' => '#/296',
-'indiacriticalsext' => '#/322',
-'indiacriticalsforsymbols' => '#/362',
-'indiacriticalssup' => '#/323',
-'indicnumberforms' => '#/337',
-'indingbats' => '#/207',
-'indomino' => '#/145',
-'indominotiles' => '#/145',
-'induployan' => '#/208',
-'inearlydynasticcuneiform' => '#/363',
-'inegyptianhieroglyphs' => '#/353',
-'inelbasan' => '#/173',
-'inemoticons' => '#/231',
-'inenclosedalphanum' => '#/334',
-'inenclosedalphanumerics' => '#/334',
-'inenclosedalphanumericsupplement' => '#/354',
-'inenclosedalphanumsup' => '#/354',
-'inenclosedcjk' => '#/275',
-'inenclosedcjklettersandmonths' => '#/275',
-'inenclosedideographicsup' => '#/364',
-'inenclosedideographicsupplement' => '#/364',
-'inethiopic' => '#/209',
-'inethiopicext' => '#/276',
-'inethiopicexta' => '#/297',
-'inethiopicextended' => '#/276',
-'inethiopicextendeda' => '#/297',
-'inethiopicsup' => '#/277',
-'inethiopicsupplement' => '#/277',
-'ingeneralpunctuation' => '#/287',
-'ingeometricshapes' => '#/324',
-'ingeometricshapesext' => '#/348',
-'ingeometricshapesextended' => '#/348',
-'ingeorgian' => '#/210',
-'ingeorgiansup' => '#/278',
-'ingeorgiansupplement' => '#/278',
-'inglagolitic' => '#/258',
-'ingothic' => '#/146',
-'ingrantha' => '#/174',
-'ingreek' => '#/128',
-'ingreekandcoptic' => '#/128',
-'ingreekext' => '#/211',
-'ingreekextended' => '#/211',
-'ingujarati' => '#/212',
-'ingurmukhi' => '#/213',
-'inhalfandfullforms' => '#/335',
-'inhalfmarks' => '#/232',
-'inhalfwidthandfullwidthforms' => '#/335',
-'inhangul' => '#/147',
-'inhangulcompatibilityjamo' => '#/256',
-'inhanguljamo' => '#/116',
-'inhanguljamoextendeda' => '#/215',
-'inhanguljamoextendedb' => '#/216',
-'inhangulsyllables' => '#/147',
-'inhanunoo' => '#/175',
-'inhatran' => '#/148',
-'inhebrew' => '#/149',
-'inherited' => 'Sc/Zinh',
-'inhighprivateusesurrogates' => '#/336',
-'inhighpusurrogates' => '#/336',
-'inhighsurrogates' => '#/315',
-'inhiragana' => '#/214',
-'inidc' => '#/107',
-'inideographicdescriptioncharacters' => '#/107',
-'inimperialaramaic' => '#/325',
-'inindicnumberforms' => '#/337',
-'ininscriptionalpahlavi' => '#/358',
-'ininscriptionalparthian' => '#/359',
-'inipaext' => '#/150',
-'inipaextensions' => '#/150',
+'inadlam' => '#/129',
+'inaegeannumbers' => '#/315',
+'inahom' => '#/117',
+'inalchemical' => '#/259',
+'inalchemicalsymbols' => '#/259',
+'inalphabeticpf' => '#/302',
+'inalphabeticpresentationforms' => '#/302',
+'inanatolianhieroglyphs' => '#/371',
+'inancientgreekmusic' => '#/356',
+'inancientgreekmusicalnotation' => '#/356',
+'inancientgreeknumbers' => '#/365',
+'inancientsymbols' => '#/323',
+'inarabic' => '#/145',
+'inarabicexta' => '#/260',
+'inarabicextendeda' => '#/260',
+'inarabicmath' => '#/261',
+'inarabicmathematicalalphabeticsymbols' => '#/261',
+'inarabicpfa' => '#/234',
+'inarabicpfb' => '#/235',
+'inarabicpresentationformsa' => '#/234',
+'inarabicpresentationformsb' => '#/235',
+'inarabicsup' => '#/236',
+'inarabicsupplement' => '#/236',
+'inarmenian' => '#/207',
+'inarrows' => '#/146',
+'inascii' => '#/128',
+'inavestan' => '#/171',
+'inbalinese' => '#/208',
+'inbamum' => '#/130',
+'inbamumsup' => '#/209',
+'inbamumsupplement' => '#/209',
+'inbasiclatin' => '#/128',
+'inbassavah' => '#/210',
+'inbatak' => '#/131',
+'inbengali' => '#/172',
+'inbhaiksuki' => '#/237',
+'inblockelements' => '#/316',
+'inbopomofo' => '#/211',
+'inbopomofoext' => '#/280',
+'inbopomofoextended' => '#/280',
+'inboxdrawing' => '#/262',
+'inbrahmi' => '#/147',
+'inbraille' => '#/173',
+'inbraillepatterns' => '#/173',
+'inbuginese' => '#/212',
+'inbuhid' => '#/132',
+'inbyzantinemusic' => '#/324',
+'inbyzantinemusicalsymbols' => '#/324',
+'incanadiansyllabics' => '#/127',
+'incarian' => '#/148',
+'incaucasianalbanian' => '#/357',
+'inchakma' => '#/149',
+'incham' => '#/118',
+'incherokee' => '#/213',
+'incherokeesup' => '#/281',
+'incherokeesupplement' => '#/281',
+'incjk' => '#/109',
+'incjkcompat' => '#/238',
+'incjkcompatforms' => '#/325',
+'incjkcompatibility' => '#/238',
+'incjkcompatibilityforms' => '#/325',
+'incjkcompatibilityideographs' => '#/366',
+'incjkcompatibilityideographssupplement' => '#/375',
+'incjkcompatideographs' => '#/366',
+'incjkcompatideographssup' => '#/375',
+'incjkexta' => '#/174',
+'incjkextb' => '#/175',
+'incjkextc' => '#/176',
+'incjkextd' => '#/177',
+'incjkexte' => '#/178',
+'incjkradicalssup' => '#/326',
+'incjkradicalssupplement' => '#/326',
+'incjkstrokes' => '#/263',
+'incjksymbols' => '#/264',
+'incjksymbolsandpunctuation' => '#/264',
+'incjkunifiedideographs' => '#/109',
+'incjkunifiedideographsextensiona' => '#/174',
+'incjkunifiedideographsextensionb' => '#/175',
+'incjkunifiedideographsextensionc' => '#/176',
+'incjkunifiedideographsextensiond' => '#/177',
+'incjkunifiedideographsextensione' => '#/178',
+'incombiningdiacriticalmarks' => '#/306',
+'incombiningdiacriticalmarksextended' => '#/334',
+'incombiningdiacriticalmarksforsymbols' => '#/376',
+'incombiningdiacriticalmarkssupplement' => '#/335',
+'incombininghalfmarks' => '#/241',
+'incombiningmarksforsymbols' => '#/376',
+'incommonindicnumberforms' => '#/349',
+'incompatjamo' => '#/265',
+'incontrolpictures' => '#/332',
+'incoptic' => '#/150',
+'incopticepactnumbers' => '#/360',
+'incountingrod' => '#/282',
+'incountingrodnumerals' => '#/282',
+'incuneiform' => '#/239',
+'incuneiformnumbers' => '#/344',
+'incuneiformnumbersandpunctuation' => '#/344',
+'incurrencysymbols' => '#/333',
+'incypriotsyllabary' => '#/345',
+'incyrillic' => '#/214',
+'incyrillicexta' => '#/303',
+'incyrillicextb' => '#/304',
+'incyrillicextc' => '#/305',
+'incyrillicextendeda' => '#/303',
+'incyrillicextendedb' => '#/304',
+'incyrillicextendedc' => '#/305',
+'incyrillicsup' => '#/283',
+'incyrillicsupplement' => '#/283',
+'incyrillicsupplementary' => '#/283',
+'indeseret' => '#/179',
+'indevanagari' => '#/266',
+'indevanagariext' => '#/317',
+'indevanagariextended' => '#/317',
+'indiacriticals' => '#/306',
+'indiacriticalsext' => '#/334',
+'indiacriticalsforsymbols' => '#/376',
+'indiacriticalssup' => '#/335',
+'indicnumberforms' => '#/349',
+'indingbats' => '#/215',
+'indomino' => '#/151',
+'indominotiles' => '#/151',
+'induployan' => '#/216',
+'inearlydynasticcuneiform' => '#/377',
+'inegyptianhieroglyphs' => '#/367',
+'inelbasan' => '#/180',
+'inemoticons' => '#/240',
+'inenclosedalphanum' => '#/346',
+'inenclosedalphanumerics' => '#/346',
+'inenclosedalphanumericsupplement' => '#/368',
+'inenclosedalphanumsup' => '#/368',
+'inenclosedcjk' => '#/284',
+'inenclosedcjklettersandmonths' => '#/284',
+'inenclosedideographicsup' => '#/378',
+'inenclosedideographicsupplement' => '#/378',
+'inethiopic' => '#/217',
+'inethiopicext' => '#/285',
+'inethiopicexta' => '#/307',
+'inethiopicextended' => '#/285',
+'inethiopicextendeda' => '#/307',
+'inethiopicsup' => '#/286',
+'inethiopicsupplement' => '#/286',
+'ingeneralpunctuation' => '#/296',
+'ingeometricshapes' => '#/336',
+'ingeometricshapesext' => '#/361',
+'ingeometricshapesextended' => '#/361',
+'ingeorgian' => '#/218',
+'ingeorgiansup' => '#/287',
+'ingeorgiansupplement' => '#/287',
+'inglagolitic' => '#/267',
+'inglagoliticsup' => '#/318',
+'inglagoliticsupplement' => '#/318',
+'ingothic' => '#/152',
+'ingrantha' => '#/181',
+'ingreek' => '#/133',
+'ingreekandcoptic' => '#/133',
+'ingreekext' => '#/219',
+'ingreekextended' => '#/219',
+'ingujarati' => '#/220',
+'ingurmukhi' => '#/221',
+'inhalfandfullforms' => '#/347',
+'inhalfmarks' => '#/241',
+'inhalfwidthandfullwidthforms' => '#/347',
+'inhangul' => '#/153',
+'inhangulcompatibilityjamo' => '#/265',
+'inhanguljamo' => '#/119',
+'inhanguljamoextendeda' => '#/223',
+'inhanguljamoextendedb' => '#/224',
+'inhangulsyllables' => '#/153',
+'inhanunoo' => '#/182',
+'inhatran' => '#/154',
+'inhebrew' => '#/155',
+'inherited' => 'Scx/Zinh',
+'inhighprivateusesurrogates' => '#/348',
+'inhighpusurrogates' => '#/348',
+'inhighsurrogates' => '#/327',
+'inhiragana' => '#/222',
+'inidc' => '#/110',
+'inideographicdescriptioncharacters' => '#/110',
+'inideographicsymbols' => '#/362',
+'inideographicsymbolsandpunctuation' => '#/362',
+'inimperialaramaic' => '#/337',
+'inindicnumberforms' => '#/349',
+'ininscriptionalpahlavi' => '#/372',
+'ininscriptionalparthian' => '#/373',
+'inipaext' => '#/156',
+'inipaextensions' => '#/156',
'initialpunctuation' => 'Gc/Pi',
-'injamo' => '#/116',
-'injamoexta' => '#/215',
-'injamoextb' => '#/216',
-'injavanese' => '#/217',
-'inkaithi' => '#/151',
-'inkanasup' => '#/176',
-'inkanasupplement' => '#/176',
-'inkanbun' => '#/152',
-'inkangxi' => '#/153',
-'inkangxiradicals' => '#/153',
-'inkannada' => '#/177',
-'inkatakana' => '#/218',
-'inkatakanaext' => '#/279',
-'inkatakanaphoneticextensions' => '#/279',
-'inkayahli' => '#/178',
-'inkharoshthi' => '#/259',
-'inkhmer' => '#/129',
-'inkhmersymbols' => '#/298',
-'inkhojki' => '#/154',
-'inkhudawadi' => '#/233',
-'inlao' => '#/108',
-'inlatin1' => '#/155',
-'inlatin1sup' => '#/155',
-'inlatin1supplement' => '#/155',
-'inlatinexta' => '#/234',
-'inlatinextadditional' => '#/349',
-'inlatinextb' => '#/235',
-'inlatinextc' => '#/236',
-'inlatinextd' => '#/237',
-'inlatinexte' => '#/238',
-'inlatinextendeda' => '#/234',
-'inlatinextendedadditional' => '#/349',
-'inlatinextendedb' => '#/235',
-'inlatinextendedc' => '#/236',
-'inlatinextendedd' => '#/237',
-'inlatinextendede' => '#/238',
-'inlepcha' => '#/156',
-'inletterlikesymbols' => '#/345',
-'inlimbu' => '#/130',
-'inlineara' => '#/179',
-'inlinearbideograms' => '#/338',
-'inlinearbsyllabary' => '#/339',
-'inlisu' => '#/117',
-'inlowsurrogates' => '#/307',
-'inlycian' => '#/157',
-'inlydian' => '#/158',
-'inmahajani' => '#/219',
-'inmahjong' => '#/180',
-'inmahjongtiles' => '#/180',
-'inmalayalam' => '#/239',
-'inmandaic' => '#/181',
-'inmanichaean' => '#/260',
-'inmathalphanum' => '#/299',
-'inmathematicalalphanumericsymbols' => '#/299',
-'inmathematicaloperators' => '#/308',
-'inmathoperators' => '#/308',
-'inmeeteimayek' => '#/280',
-'inmeeteimayekext' => '#/316',
-'inmeeteimayekextensions' => '#/316',
-'inmendekikakui' => '#/300',
-'inmeroiticcursive' => '#/326',
-'inmeroitichieroglyphs' => '#/355',
-'inmiao' => '#/118',
-'inmiscarrows' => '#/261',
-'inmiscellaneousmathematicalsymbolsa' => '#/340',
-'inmiscellaneousmathematicalsymbolsb' => '#/341',
-'inmiscellaneoussymbols' => '#/281',
-'inmiscellaneoussymbolsandarrows' => '#/261',
-'inmiscellaneoussymbolsandpictographs' => '#/327',
-'inmiscellaneoustechnical' => '#/309',
-'inmiscmathsymbolsa' => '#/340',
-'inmiscmathsymbolsb' => '#/341',
-'inmiscpictographs' => '#/327',
-'inmiscsymbols' => '#/281',
-'inmisctechnical' => '#/309',
-'inmodi' => '#/119',
-'inmodifierletters' => '#/328',
-'inmodifiertoneletters' => '#/356',
-'inmongolian' => '#/240',
-'inmro' => '#/109',
-'inmultani' => '#/182',
-'inmusic' => '#/131',
-'inmusicalsymbols' => '#/131',
-'inmyanmar' => '#/183',
-'inmyanmarexta' => '#/282',
-'inmyanmarextb' => '#/283',
-'inmyanmarextendeda' => '#/282',
-'inmyanmarextendedb' => '#/283',
-'innabataean' => '#/241',
+'injamo' => '#/119',
+'injamoexta' => '#/223',
+'injamoextb' => '#/224',
+'injavanese' => '#/225',
+'inkaithi' => '#/157',
+'inkanasup' => '#/183',
+'inkanasupplement' => '#/183',
+'inkanbun' => '#/158',
+'inkangxi' => '#/159',
+'inkangxiradicals' => '#/159',
+'inkannada' => '#/184',
+'inkatakana' => '#/226',
+'inkatakanaext' => '#/288',
+'inkatakanaphoneticextensions' => '#/288',
+'inkayahli' => '#/185',
+'inkharoshthi' => '#/268',
+'inkhmer' => '#/134',
+'inkhmersymbols' => '#/308',
+'inkhojki' => '#/160',
+'inkhudawadi' => '#/242',
+'inlao' => '#/111',
+'inlatin1' => '#/161',
+'inlatin1sup' => '#/161',
+'inlatin1supplement' => '#/161',
+'inlatinexta' => '#/243',
+'inlatinextadditional' => '#/363',
+'inlatinextb' => '#/244',
+'inlatinextc' => '#/245',
+'inlatinextd' => '#/246',
+'inlatinexte' => '#/247',
+'inlatinextendeda' => '#/243',
+'inlatinextendedadditional' => '#/363',
+'inlatinextendedb' => '#/244',
+'inlatinextendedc' => '#/245',
+'inlatinextendedd' => '#/246',
+'inlatinextendede' => '#/247',
+'inlepcha' => '#/162',
+'inletterlikesymbols' => '#/358',
+'inlimbu' => '#/135',
+'inlineara' => '#/186',
+'inlinearbideograms' => '#/350',
+'inlinearbsyllabary' => '#/351',
+'inlisu' => '#/120',
+'inlowsurrogates' => '#/319',
+'inlycian' => '#/163',
+'inlydian' => '#/164',
+'inmahajani' => '#/227',
+'inmahjong' => '#/187',
+'inmahjongtiles' => '#/187',
+'inmalayalam' => '#/248',
+'inmandaic' => '#/188',
+'inmanichaean' => '#/269',
+'inmarchen' => '#/189',
+'inmathalphanum' => '#/309',
+'inmathematicalalphanumericsymbols' => '#/309',
+'inmathematicaloperators' => '#/320',
+'inmathoperators' => '#/320',
+'inmeeteimayek' => '#/289',
+'inmeeteimayekext' => '#/328',
+'inmeeteimayekextensions' => '#/328',
+'inmendekikakui' => '#/310',
+'inmeroiticcursive' => '#/338',
+'inmeroitichieroglyphs' => '#/369',
+'inmiao' => '#/121',
+'inmiscarrows' => '#/270',
+'inmiscellaneousmathematicalsymbolsa' => '#/352',
+'inmiscellaneousmathematicalsymbolsb' => '#/353',
+'inmiscellaneoussymbols' => '#/290',
+'inmiscellaneoussymbolsandarrows' => '#/270',
+'inmiscellaneoussymbolsandpictographs' => '#/339',
+'inmiscellaneoustechnical' => '#/321',
+'inmiscmathsymbolsa' => '#/352',
+'inmiscmathsymbolsb' => '#/353',
+'inmiscpictographs' => '#/339',
+'inmiscsymbols' => '#/290',
+'inmisctechnical' => '#/321',
+'inmodi' => '#/122',
+'inmodifierletters' => '#/340',
+'inmodifiertoneletters' => '#/370',
+'inmongolian' => '#/249',
+'inmongoliansup' => '#/311',
+'inmongoliansupplement' => '#/311',
+'inmro' => '#/112',
+'inmultani' => '#/190',
+'inmusic' => '#/136',
+'inmusicalsymbols' => '#/136',
+'inmyanmar' => '#/191',
+'inmyanmarexta' => '#/291',
+'inmyanmarextb' => '#/292',
+'inmyanmarextendeda' => '#/291',
+'inmyanmarextendedb' => '#/292',
+'innabataean' => '#/250',
'innb' => 'Blk/NB',
-'innewtailue' => '#/242',
-'innko' => '#/110',
+'innewa' => '#/123',
+'innewtailue' => '#/251',
+'innko' => '#/113',
'innoblock' => 'Blk/NB',
-'innumberforms' => '#/284',
-'inocr' => '#/111',
-'inogham' => '#/132',
-'inolchiki' => '#/184',
-'inoldhungarian' => '#/301',
-'inolditalic' => '#/243',
-'inoldnortharabian' => '#/329',
-'inoldpermic' => '#/244',
-'inoldpersian' => '#/262',
-'inoldsoutharabian' => '#/330',
-'inoldturkic' => '#/245',
-'inopticalcharacterrecognition' => '#/111',
-'inoriya' => '#/133',
-'inornamentaldingbats' => '#/350',
-'inosmanya' => '#/185',
-'inpahawhhmong' => '#/285',
-'inpalmyrene' => '#/246',
-'inpaucinhau' => '#/247',
+'innumberforms' => '#/293',
+'inocr' => '#/114',
+'inogham' => '#/137',
+'inolchiki' => '#/192',
+'inoldhungarian' => '#/312',
+'inolditalic' => '#/252',
+'inoldnortharabian' => '#/341',
+'inoldpermic' => '#/253',
+'inoldpersian' => '#/271',
+'inoldsoutharabian' => '#/342',
+'inoldturkic' => '#/254',
+'inopticalcharacterrecognition' => '#/114',
+'inoriya' => '#/138',
+'inornamentaldingbats' => '#/364',
+'inosage' => '#/139',
+'inosmanya' => '#/193',
+'inpahawhhmong' => '#/294',
+'inpalmyrene' => '#/255',
+'inpaucinhau' => '#/256',
'inpc=bottom' => 'InPC/Bottom',
-'inpc=bottomandright' => '#/69',
+'inpc=bottomandright' => '#/73',
'inpc=left' => 'InPC/Left',
'inpc=leftandright' => 'InPC/LeftAndR',
'inpc=na' => 'InPC/NA',
@@ -4255,230 +4405,236 @@
'inpc=right' => 'InPC/Right',
'inpc=top' => 'InPC/Top',
'inpc=topandbottom' => 'InPC/TopAndBo',
-'inpc=topandbottomandright' => '#/70',
+'inpc=topandbottomandright' => '#/74',
'inpc=topandleft' => 'InPC/TopAndLe',
'inpc=topandleftandright' => 'InPC/TopAndL2',
'inpc=topandright' => 'InPC/TopAndRi',
'inpc=visualorderleft' => 'InPC/VisualOr',
-'inphagspa' => '#/186',
-'inphaistos' => '#/220',
-'inphaistosdisc' => '#/220',
-'inphoenician' => '#/263',
-'inphoneticext' => '#/286',
-'inphoneticextensions' => '#/286',
-'inphoneticextensionssupplement' => '#/317',
-'inphoneticextsup' => '#/317',
-'inplayingcards' => '#/302',
-'inprivateuse' => '#/112',
-'inprivateusearea' => '#/112',
-'inpsalterpahlavi' => '#/318',
-'inpua' => '#/112',
-'inpunctuation' => '#/287',
-'inrejang' => '#/159',
-'inrumi' => '#/120',
-'inruminumeralsymbols' => '#/120',
-'inrunic' => '#/134',
-'insamaritan' => '#/248',
-'insaurashtra' => '#/264',
+'inphagspa' => '#/194',
+'inphaistos' => '#/228',
+'inphaistosdisc' => '#/228',
+'inphoenician' => '#/272',
+'inphoneticext' => '#/295',
+'inphoneticextensions' => '#/295',
+'inphoneticextensionssupplement' => '#/329',
+'inphoneticextsup' => '#/329',
+'inplayingcards' => '#/313',
+'inprivateuse' => '#/115',
+'inprivateusearea' => '#/115',
+'inpsalterpahlavi' => '#/330',
+'inpua' => '#/115',
+'inpunctuation' => '#/296',
+'inrejang' => '#/165',
+'inrumi' => '#/124',
+'inruminumeralsymbols' => '#/124',
+'inrunic' => '#/140',
+'insamaritan' => '#/257',
+'insaurashtra' => '#/273',
'insc=avagraha' => 'InSC/Avagraha',
'insc=bindu' => 'InSC/Bindu',
-'insc=brahmijoiningnumber' => '#/81',
+'insc=brahmijoiningnumber' => '#/84',
'insc=cantillationmark' => 'InSC/Cantilla',
'insc=consonant' => 'InSC/Consonan',
-'insc=consonantdead' => '#/75',
+'insc=consonantdead' => '#/78',
'insc=consonantfinal' => 'InSC/Consona2',
-'insc=consonantheadletter' => '#/82',
-'insc=consonantkiller' => '#/77',
+'insc=consonantheadletter' => '#/85',
+'insc=consonantkiller' => '#/80',
'insc=consonantmedial' => 'InSC/Consona3',
'insc=consonantplaceholder' => 'InSC/Consona5',
-'insc=consonantprecedingrepha' => '#/84',
-'insc=consonantprefixed' => '#/80',
+'insc=consonantprecedingrepha' => '#/87',
+'insc=consonantprefixed' => '#/83',
'insc=consonantsubjoined' => 'InSC/Consona4',
'insc=consonantsucceedingrepha' => 'InSC/Consona6',
-'insc=consonantwithstacker' => '#/83',
-'insc=geminationmark' => '#/76',
+'insc=consonantwithstacker' => '#/86',
+'insc=geminationmark' => '#/79',
'insc=invisiblestacker' => 'InSC/Invisibl',
-'insc=joiner' => '#/71',
-'insc=modifyingletter' => '#/78',
-'insc=nonjoiner' => '#/72',
+'insc=joiner' => '#/70',
+'insc=modifyingletter' => '#/81',
+'insc=nonjoiner' => '#/75',
'insc=nukta' => 'InSC/Nukta',
'insc=number' => 'InSC/Number',
-'insc=numberjoiner' => '#/74',
+'insc=numberjoiner' => '#/77',
'insc=other' => 'InSC/Other',
'insc=purekiller' => 'InSC/PureKill',
-'insc=registershifter' => '#/79',
+'insc=registershifter' => '#/82',
'insc=syllablemodifier' => 'InSC/Syllable',
-'insc=toneletter' => '#/73',
+'insc=toneletter' => '#/76',
'insc=tonemark' => 'InSC/ToneMark',
'insc=virama' => 'InSC/Virama',
'insc=visarga' => 'InSC/Visarga',
'insc=vowel' => 'InSC/Vowel',
'insc=voweldependent' => 'InSC/VowelDep',
'insc=vowelindependent' => 'InSC/VowelInd',
-'inscriptionalpahlavi' => '#/592',
-'inscriptionalparthian' => '#/595',
-'insharada' => '#/187',
-'inshavian' => '#/188',
-'inshorthandformatcontrols' => '#/365',
-'insiddham' => '#/189',
-'insinhala' => '#/190',
-'insinhalaarchaicnumbers' => '#/360',
-'insmallforms' => '#/265',
-'insmallformvariants' => '#/265',
-'insorasompeng' => '#/288',
-'inspacingmodifierletters' => '#/328',
-'inspecials' => '#/221',
-'insundanese' => '#/249',
-'insundanesesup' => '#/303',
-'insundanesesupplement' => '#/303',
-'insuparrowsa' => '#/266',
-'insuparrowsb' => '#/267',
-'insuparrowsc' => '#/268',
-'insuperandsub' => '#/289',
-'insuperscriptsandsubscripts' => '#/289',
-'insupmathoperators' => '#/342',
-'insupplementalarrowsa' => '#/266',
-'insupplementalarrowsb' => '#/267',
-'insupplementalarrowsc' => '#/268',
-'insupplementalmathematicaloperators' => '#/342',
-'insupplementalpunctuation' => '#/319',
-'insupplementalsymbolsandpictographs' => '#/366',
-'insupplementaryprivateuseareaa' => '#/191',
-'insupplementaryprivateuseareab' => '#/192',
-'insuppuaa' => '#/191',
-'insuppuab' => '#/192',
-'insuppunctuation' => '#/319',
-'insupsymbolsandpictographs' => '#/366',
-'insuttonsignwriting' => '#/346',
-'insylotinagri' => '#/290',
-'insyriac' => '#/160',
-'intagalog' => '#/193',
-'intagbanwa' => '#/222',
-'intags' => '#/121',
-'intaile' => '#/135',
-'intaitham' => '#/194',
-'intaiviet' => '#/195',
-'intaixuanjing' => '#/291',
-'intaixuanjingsymbols' => '#/291',
-'intakri' => '#/136',
-'intamil' => '#/137',
-'intelugu' => '#/161',
-'inthaana' => '#/162',
-'inthai' => '#/122',
-'intibetan' => '#/196',
-'intifinagh' => '#/223',
-'intirhuta' => '#/197',
-'intransportandmap' => '#/331',
-'intransportandmapsymbols' => '#/331',
-'inucas' => '#/123',
-'inucasext' => '#/198',
-'inugaritic' => '#/224',
-'inunifiedcanadianaboriginalsyllabics' => '#/123',
-'inunifiedcanadianaboriginalsyllabicsextended' => '#/198',
-'invai' => '#/113',
-'invariationselectors' => '#/105',
-'invariationselectorssupplement' => '#/138',
-'invedicext' => '#/225',
-'invedicextensions' => '#/225',
-'inverticalforms' => '#/310',
-'invs' => '#/105',
-'invssup' => '#/138',
-'inwarangciti' => '#/269',
-'inyijing' => '#/163',
-'inyijinghexagramsymbols' => '#/163',
-'inyiradicals' => '#/270',
-'inyisyllables' => '#/292',
-'ipaext' => '#/150',
-'ipaextensions' => '#/150',
-'isaegeannumbers' => '#/304',
-'isaghb' => '#/542',
+'inscriptionalpahlavi' => '#/615',
+'inscriptionalparthian' => '#/618',
+'insharada' => '#/195',
+'inshavian' => '#/196',
+'inshorthandformatcontrols' => '#/379',
+'insiddham' => '#/197',
+'insinhala' => '#/198',
+'insinhalaarchaicnumbers' => '#/374',
+'insmallforms' => '#/274',
+'insmallformvariants' => '#/274',
+'insorasompeng' => '#/297',
+'inspacingmodifierletters' => '#/340',
+'inspecials' => '#/229',
+'insundanese' => '#/258',
+'insundanesesup' => '#/314',
+'insundanesesupplement' => '#/314',
+'insuparrowsa' => '#/275',
+'insuparrowsb' => '#/276',
+'insuparrowsc' => '#/277',
+'insuperandsub' => '#/298',
+'insuperscriptsandsubscripts' => '#/298',
+'insupmathoperators' => '#/354',
+'insupplementalarrowsa' => '#/275',
+'insupplementalarrowsb' => '#/276',
+'insupplementalarrowsc' => '#/277',
+'insupplementalmathematicaloperators' => '#/354',
+'insupplementalpunctuation' => '#/331',
+'insupplementalsymbolsandpictographs' => '#/380',
+'insupplementaryprivateuseareaa' => '#/199',
+'insupplementaryprivateuseareab' => '#/200',
+'insuppuaa' => '#/199',
+'insuppuab' => '#/200',
+'insuppunctuation' => '#/331',
+'insupsymbolsandpictographs' => '#/380',
+'insuttonsignwriting' => '#/359',
+'insylotinagri' => '#/299',
+'insyriac' => '#/166',
+'intagalog' => '#/201',
+'intagbanwa' => '#/230',
+'intags' => '#/125',
+'intaile' => '#/141',
+'intaitham' => '#/202',
+'intaiviet' => '#/203',
+'intaixuanjing' => '#/300',
+'intaixuanjingsymbols' => '#/300',
+'intakri' => '#/142',
+'intamil' => '#/143',
+'intangut' => '#/167',
+'intangutcomponents' => '#/355',
+'intelugu' => '#/168',
+'inthaana' => '#/169',
+'inthai' => '#/126',
+'intibetan' => '#/204',
+'intifinagh' => '#/231',
+'intirhuta' => '#/205',
+'intransportandmap' => '#/343',
+'intransportandmapsymbols' => '#/343',
+'inucas' => '#/127',
+'inucasext' => '#/206',
+'inugaritic' => '#/232',
+'inunifiedcanadianaboriginalsyllabics' => '#/127',
+'inunifiedcanadianaboriginalsyllabicsextended' => '#/206',
+'invai' => '#/116',
+'invariationselectors' => '#/108',
+'invariationselectorssupplement' => '#/144',
+'invedicext' => '#/233',
+'invedicextensions' => '#/233',
+'inverticalforms' => '#/322',
+'invs' => '#/108',
+'invssup' => '#/144',
+'inwarangciti' => '#/278',
+'inyijing' => '#/170',
+'inyijinghexagramsymbols' => '#/170',
+'inyiradicals' => '#/279',
+'inyisyllables' => '#/301',
+'ipaext' => '#/156',
+'ipaextensions' => '#/156',
+'isadlam' => 'Scx/Adlm',
+'isadlm' => 'Scx/Adlm',
+'isaegeannumbers' => '#/315',
+'isaghb' => '#/563',
'isahex' => '#/60',
-'isahom' => '#/543',
-'isalchemical' => '#/250',
-'isalchemicalsymbols' => '#/250',
+'isahom' => '#/564',
+'isalchemical' => '#/259',
+'isalchemicalsymbols' => '#/259',
'isall' => '#/1',
'isalnum' => 'Perl/Alnum',
'isalpha' => 'Alpha/Y',
'isalphabetic' => 'Alpha/Y',
-'isalphabeticpf' => '#/293',
-'isalphabeticpresentationforms' => '#/293',
-'isanatolianhieroglyphs' => '#/565',
-'isancientgreekmusic' => '#/343',
-'isancientgreekmusicalnotation' => '#/343',
-'isancientgreeknumbers' => '#/351',
-'isancientsymbols' => '#/311',
+'isalphabeticpf' => '#/302',
+'isalphabeticpresentationforms' => '#/302',
+'isanatolianhieroglyphs' => '#/585',
+'isancientgreekmusic' => '#/356',
+'isancientgreekmusicalnotation' => '#/356',
+'isancientgreeknumbers' => '#/365',
+'isancientsymbols' => '#/323',
'isany' => '#/2',
-'isarab' => 'Sc/Arab',
-'isarabic' => 'Sc/Arab',
-'isarabicexta' => '#/251',
-'isarabicextendeda' => '#/251',
-'isarabicmath' => '#/252',
-'isarabicmathematicalalphabeticsymbols' => '#/252',
-'isarabicpfa' => '#/226',
-'isarabicpfb' => '#/227',
-'isarabicpresentationformsa' => '#/226',
-'isarabicpresentationformsb' => '#/227',
-'isarabicsup' => '#/228',
-'isarabicsupplement' => '#/228',
-'isarmenian' => 'Sc/Armn',
-'isarmi' => '#/544',
-'isarmn' => 'Sc/Armn',
-'isarrows' => '#/140',
-'isascii' => '#/124',
+'isarab' => 'Scx/Arab',
+'isarabic' => 'Scx/Arab',
+'isarabicexta' => '#/260',
+'isarabicextendeda' => '#/260',
+'isarabicmath' => '#/261',
+'isarabicmathematicalalphabeticsymbols' => '#/261',
+'isarabicpfa' => '#/234',
+'isarabicpfb' => '#/235',
+'isarabicpresentationformsa' => '#/234',
+'isarabicpresentationformsb' => '#/235',
+'isarabicsup' => '#/236',
+'isarabicsupplement' => '#/236',
+'isarmenian' => 'Scx/Armn',
+'isarmi' => '#/565',
+'isarmn' => 'Scx/Armn',
+'isarrows' => '#/146',
+'isascii' => '#/128',
'isasciihexdigit' => '#/60',
'isassigned' => 'Perl/Assigned',
-'isavestan' => '#/545',
-'isavst' => '#/545',
-'isbali' => '#/546',
-'isbalinese' => '#/546',
-'isbamu' => '#/547',
-'isbamum' => '#/547',
-'isbamumsup' => '#/201',
-'isbamumsupplement' => '#/201',
-'isbasiclatin' => '#/124',
-'isbass' => '#/548',
-'isbassavah' => '#/548',
-'isbatak' => '#/549',
-'isbatk' => '#/549',
-'isbeng' => 'Sc/Beng',
-'isbengali' => 'Sc/Beng',
+'isavestan' => '#/566',
+'isavst' => '#/566',
+'isbali' => '#/567',
+'isbalinese' => '#/567',
+'isbamu' => '#/568',
+'isbamum' => '#/568',
+'isbamumsup' => '#/209',
+'isbamumsupplement' => '#/209',
+'isbasiclatin' => '#/128',
+'isbass' => '#/569',
+'isbassavah' => '#/569',
+'isbatak' => '#/570',
+'isbatk' => '#/570',
+'isbeng' => 'Scx/Beng',
+'isbengali' => 'Scx/Beng',
+'isbhaiksuki' => 'Sc/Bhks',
+'isbhks' => 'Sc/Bhks',
'isbidic' => 'BidiC/Y',
'isbidicontrol' => 'BidiC/Y',
'isbidim' => 'BidiM/Y',
'isbidimirrored' => 'BidiM/Y',
'isblank' => 'Perl/Blank',
-'isblockelements' => '#/305',
-'isbopo' => '#/550',
-'isbopomofo' => '#/550',
-'isbopomofoext' => '#/271',
-'isbopomofoextended' => '#/271',
-'isboxdrawing' => '#/253',
-'isbrah' => '#/551',
-'isbrahmi' => '#/551',
-'isbrai' => '#/166',
-'isbraille' => '#/166',
-'isbraillepatterns' => '#/166',
-'isbugi' => '#/552',
-'isbuginese' => '#/552',
-'isbuhd' => '#/553',
-'isbuhid' => '#/553',
-'isbyzantinemusic' => '#/312',
-'isbyzantinemusicalsymbols' => '#/312',
+'isblockelements' => '#/316',
+'isbopo' => 'Scx/Bopo',
+'isbopomofo' => 'Scx/Bopo',
+'isbopomofoext' => '#/280',
+'isbopomofoextended' => '#/280',
+'isboxdrawing' => '#/262',
+'isbrah' => '#/572',
+'isbrahmi' => '#/572',
+'isbrai' => '#/173',
+'isbraille' => '#/173',
+'isbraillepatterns' => '#/173',
+'isbugi' => '#/644',
+'isbuginese' => '#/644',
+'isbuhd' => '#/645',
+'isbuhid' => '#/645',
+'isbyzantinemusic' => '#/324',
+'isbyzantinemusicalsymbols' => '#/324',
'isc' => 'Gc/C',
-'iscakm' => '#/554',
-'iscanadianaboriginal' => '#/555',
-'iscanadiansyllabics' => '#/123',
-'iscans' => '#/555',
-'iscari' => '#/556',
-'iscarian' => '#/556',
+'iscakm' => 'Scx/Cakm',
+'iscanadianaboriginal' => '#/576',
+'iscanadiansyllabics' => '#/127',
+'iscans' => '#/576',
+'iscari' => '#/577',
+'iscarian' => '#/577',
'iscased' => 'Cased/Y',
'iscasedletter' => 'Gc/LC',
'iscaseignorable' => 'CI/Y',
-'iscaucasianalbanian' => '#/542',
-'iscc' => '#/370',
+'iscaucasianalbanian' => '#/563',
+'iscc' => '#/384',
'isce' => 'CE/Y',
'iscf' => 'Gc/Cf',
-'ischakma' => '#/554',
+'ischakma' => 'Scx/Cakm',
'ischam' => 'Sc/Cham',
'ischangeswhencasefolded' => 'CWCF/Y',
'ischangeswhencasemapped' => 'CWCM/Y',
@@ -4486,284 +4642,290 @@
'ischangeswhennfkccasefolded' => 'CWKCF/Y',
'ischangeswhentitlecased' => 'CWT/Y',
'ischangeswhenuppercased' => 'CWU/Y',
-'ischer' => '#/557',
-'ischerokee' => '#/557',
-'ischerokeesup' => '#/272',
-'ischerokeesupplement' => '#/272',
+'ischer' => '#/578',
+'ischerokee' => '#/578',
+'ischerokeesup' => '#/281',
+'ischerokeesupplement' => '#/281',
'isci' => 'CI/Y',
-'iscjk' => '#/106',
-'iscjkcompat' => '#/229',
-'iscjkcompatforms' => '#/313',
-'iscjkcompatibility' => '#/229',
-'iscjkcompatibilityforms' => '#/313',
-'iscjkcompatibilityideographs' => '#/352',
-'iscjkcompatibilityideographssupplement' => '#/361',
-'iscjkcompatideographs' => '#/352',
-'iscjkcompatideographssup' => '#/361',
-'iscjkexta' => '#/167',
-'iscjkextb' => '#/168',
-'iscjkextc' => '#/169',
-'iscjkextd' => '#/170',
-'iscjkexte' => '#/171',
-'iscjkradicalssup' => '#/314',
-'iscjkradicalssupplement' => '#/314',
-'iscjkstrokes' => '#/254',
-'iscjksymbols' => '#/255',
-'iscjksymbolsandpunctuation' => '#/255',
-'iscjkunifiedideographs' => '#/106',
-'iscjkunifiedideographsextensiona' => '#/167',
-'iscjkunifiedideographsextensionb' => '#/168',
-'iscjkunifiedideographsextensionc' => '#/169',
-'iscjkunifiedideographsextensiond' => '#/170',
-'iscjkunifiedideographsextensione' => '#/171',
+'iscjk' => '#/109',
+'iscjkcompat' => '#/238',
+'iscjkcompatforms' => '#/325',
+'iscjkcompatibility' => '#/238',
+'iscjkcompatibilityforms' => '#/325',
+'iscjkcompatibilityideographs' => '#/366',
+'iscjkcompatibilityideographssupplement' => '#/375',
+'iscjkcompatideographs' => '#/366',
+'iscjkcompatideographssup' => '#/375',
+'iscjkexta' => '#/174',
+'iscjkextb' => '#/175',
+'iscjkextc' => '#/176',
+'iscjkextd' => '#/177',
+'iscjkexte' => '#/178',
+'iscjkradicalssup' => '#/326',
+'iscjkradicalssupplement' => '#/326',
+'iscjkstrokes' => '#/263',
+'iscjksymbols' => '#/264',
+'iscjksymbolsandpunctuation' => '#/264',
+'iscjkunifiedideographs' => '#/109',
+'iscjkunifiedideographsextensiona' => '#/174',
+'iscjkunifiedideographsextensionb' => '#/175',
+'iscjkunifiedideographsextensionc' => '#/176',
+'iscjkunifiedideographsextensiond' => '#/177',
+'iscjkunifiedideographsextensione' => '#/178',
'isclosepunctuation' => 'Gc/Pe',
'iscn' => 'Gc/Cn',
-'iscntrl' => '#/370',
-'isco' => '#/371',
-'iscombiningdiacriticalmarks' => '#/296',
-'iscombiningdiacriticalmarksextended' => '#/322',
-'iscombiningdiacriticalmarksforsymbols' => '#/362',
-'iscombiningdiacriticalmarkssupplement' => '#/323',
-'iscombininghalfmarks' => '#/232',
+'iscntrl' => '#/384',
+'isco' => '#/385',
+'iscombiningdiacriticalmarks' => '#/306',
+'iscombiningdiacriticalmarksextended' => '#/334',
+'iscombiningdiacriticalmarksforsymbols' => '#/376',
+'iscombiningdiacriticalmarkssupplement' => '#/335',
+'iscombininghalfmarks' => '#/241',
'iscombiningmark' => 'Gc/M',
-'iscombiningmarksforsymbols' => '#/362',
-'iscommon' => 'Sc/Zyyy',
-'iscommonindicnumberforms' => '#/337',
-'iscompatjamo' => '#/256',
+'iscombiningmarksforsymbols' => '#/376',
+'iscommon' => 'Scx/Zyyy',
+'iscommonindicnumberforms' => '#/349',
+'iscompatjamo' => '#/265',
'iscompex' => 'CompEx/Y',
'iscompositionexclusion' => 'CE/Y',
-'isconnectorpunctuation' => 'WB/EX',
-'iscontrol' => '#/370',
-'iscontrolpictures' => '#/320',
-'iscopt' => '#/558',
-'iscoptic' => '#/558',
-'iscopticepactnumbers' => '#/347',
-'iscountingrod' => '#/273',
-'iscountingrodnumerals' => '#/273',
-'iscprt' => 'Sc/Cprt',
+'isconnectorpunctuation' => 'Gc/Pc',
+'iscontrol' => '#/384',
+'iscontrolpictures' => '#/332',
+'iscopt' => 'Scx/Copt',
+'iscoptic' => 'Scx/Copt',
+'iscopticepactnumbers' => '#/360',
+'iscountingrod' => '#/282',
+'iscountingrodnumerals' => '#/282',
+'iscprt' => 'Scx/Cprt',
'iscs' => '#/14',
'iscuneiform' => 'Sc/Xsux',
-'iscuneiformnumbers' => '#/332',
-'iscuneiformnumbersandpunctuation' => '#/332',
+'iscuneiformnumbers' => '#/344',
+'iscuneiformnumbersandpunctuation' => '#/344',
'iscurrencysymbol' => 'Gc/Sc',
-'iscurrencysymbols' => '#/321',
+'iscurrencysymbols' => '#/333',
'iscwcf' => 'CWCF/Y',
'iscwcm' => 'CWCM/Y',
'iscwkcf' => 'CWKCF/Y',
'iscwl' => 'CWL/Y',
'iscwt' => 'CWT/Y',
'iscwu' => 'CWU/Y',
-'iscypriot' => 'Sc/Cprt',
-'iscypriotsyllabary' => '#/333',
-'iscyrillic' => 'Sc/Cyrl',
-'iscyrillicexta' => '#/294',
-'iscyrillicextb' => '#/295',
-'iscyrillicextendeda' => '#/294',
-'iscyrillicextendedb' => '#/295',
-'iscyrillicsup' => '#/274',
-'iscyrillicsupplement' => '#/274',
-'iscyrillicsupplementary' => '#/274',
-'iscyrl' => 'Sc/Cyrl',
+'iscypriot' => 'Scx/Cprt',
+'iscypriotsyllabary' => '#/345',
+'iscyrillic' => 'Scx/Cyrl',
+'iscyrillicexta' => '#/303',
+'iscyrillicextb' => '#/304',
+'iscyrillicextc' => '#/305',
+'iscyrillicextendeda' => '#/303',
+'iscyrillicextendedb' => '#/304',
+'iscyrillicextendedc' => '#/305',
+'iscyrillicsup' => '#/283',
+'iscyrillicsupplement' => '#/283',
+'iscyrillicsupplementary' => '#/283',
+'iscyrl' => 'Scx/Cyrl',
'isdash' => 'Dash/Y',
'isdashpunctuation' => 'Gc/Pd',
'isdecimalnumber' => 'Gc/Nd',
'isdefaultignorablecodepoint' => 'DI/Y',
'isdep' => 'Dep/Y',
'isdeprecated' => 'Dep/Y',
-'isdeseret' => '#/172',
-'isdeva' => 'Sc/Deva',
-'isdevanagari' => 'Sc/Deva',
-'isdevanagariext' => '#/306',
-'isdevanagariextended' => '#/306',
+'isdeseret' => '#/179',
+'isdeva' => 'Scx/Deva',
+'isdevanagari' => 'Scx/Deva',
+'isdevanagariext' => '#/317',
+'isdevanagariextended' => '#/317',
'isdi' => 'DI/Y',
'isdia' => 'Dia/Y',
'isdiacritic' => 'Dia/Y',
-'isdiacriticals' => '#/296',
-'isdiacriticalsext' => '#/322',
-'isdiacriticalsforsymbols' => '#/362',
-'isdiacriticalssup' => '#/323',
+'isdiacriticals' => '#/306',
+'isdiacriticalsext' => '#/334',
+'isdiacriticalsforsymbols' => '#/376',
+'isdiacriticalssup' => '#/335',
'isdigit' => 'Gc/Nd',
-'isdingbats' => '#/207',
-'isdomino' => '#/145',
-'isdominotiles' => '#/145',
-'isdsrt' => '#/172',
-'isdupl' => 'Sc/Dupl',
-'isduployan' => 'Sc/Dupl',
-'isearlydynasticcuneiform' => '#/363',
-'isegyp' => '#/559',
-'isegyptianhieroglyphs' => '#/559',
-'iselba' => '#/560',
-'iselbasan' => '#/560',
-'isemoticons' => '#/231',
-'isenclosedalphanum' => '#/334',
-'isenclosedalphanumerics' => '#/334',
-'isenclosedalphanumericsupplement' => '#/354',
-'isenclosedalphanumsup' => '#/354',
-'isenclosedcjk' => '#/275',
-'isenclosedcjklettersandmonths' => '#/275',
-'isenclosedideographicsup' => '#/364',
-'isenclosedideographicsupplement' => '#/364',
+'isdingbats' => '#/215',
+'isdomino' => '#/151',
+'isdominotiles' => '#/151',
+'isdsrt' => '#/179',
+'isdupl' => 'Scx/Dupl',
+'isduployan' => 'Scx/Dupl',
+'isearlydynasticcuneiform' => '#/377',
+'isegyp' => '#/580',
+'isegyptianhieroglyphs' => '#/580',
+'iselba' => '#/581',
+'iselbasan' => '#/581',
+'isemoticons' => '#/240',
+'isenclosedalphanum' => '#/346',
+'isenclosedalphanumerics' => '#/346',
+'isenclosedalphanumericsupplement' => '#/368',
+'isenclosedalphanumsup' => '#/368',
+'isenclosedcjk' => '#/284',
+'isenclosedcjklettersandmonths' => '#/284',
+'isenclosedideographicsup' => '#/378',
+'isenclosedideographicsupplement' => '#/378',
'isenclosingmark' => 'Gc/Me',
'isethi' => 'Sc/Ethi',
'isethiopic' => 'Sc/Ethi',
-'isethiopicext' => '#/276',
-'isethiopicexta' => '#/297',
-'isethiopicextended' => '#/276',
-'isethiopicextendeda' => '#/297',
-'isethiopicsup' => '#/277',
-'isethiopicsupplement' => '#/277',
+'isethiopicext' => '#/285',
+'isethiopicexta' => '#/307',
+'isethiopicextended' => '#/285',
+'isethiopicextendeda' => '#/307',
+'isethiopicsup' => '#/286',
+'isethiopicsupplement' => '#/286',
'isext' => 'Ext/Y',
'isextender' => 'Ext/Y',
'isfinalpunctuation' => 'Gc/Pf',
'isformat' => 'Gc/Cf',
'isfullcompositionexclusion' => 'CompEx/Y',
-'isgeneralpunctuation' => '#/287',
-'isgeometricshapes' => '#/324',
-'isgeometricshapesext' => '#/348',
-'isgeometricshapesextended' => '#/348',
-'isgeor' => 'Sc/Geor',
-'isgeorgian' => 'Sc/Geor',
-'isgeorgiansup' => '#/278',
-'isgeorgiansupplement' => '#/278',
-'isglag' => '#/561',
-'isglagolitic' => '#/561',
-'isgoth' => '#/562',
-'isgothic' => '#/562',
-'isgran' => 'Sc/Gran',
-'isgrantha' => 'Sc/Gran',
+'isgeneralpunctuation' => '#/296',
+'isgeometricshapes' => '#/336',
+'isgeometricshapesext' => '#/361',
+'isgeometricshapesextended' => '#/361',
+'isgeor' => 'Scx/Geor',
+'isgeorgian' => 'Scx/Geor',
+'isgeorgiansup' => '#/287',
+'isgeorgiansupplement' => '#/287',
+'isglag' => 'Scx/Glag',
+'isglagolitic' => 'Scx/Glag',
+'isglagoliticsup' => '#/318',
+'isglagoliticsupplement' => '#/318',
+'isgoth' => '#/582',
+'isgothic' => '#/582',
+'isgran' => 'Scx/Gran',
+'isgrantha' => 'Scx/Gran',
'isgraph' => 'Perl/Graph',
'isgraphemebase' => 'GrBase/Y',
'isgraphemeextend' => 'GCB/EX',
'isgrbase' => 'GrBase/Y',
-'isgreek' => 'Sc/Grek',
-'isgreekandcoptic' => '#/128',
-'isgreekext' => '#/211',
-'isgreekextended' => '#/211',
-'isgrek' => 'Sc/Grek',
+'isgreek' => 'Scx/Grek',
+'isgreekandcoptic' => '#/133',
+'isgreekext' => '#/219',
+'isgreekextended' => '#/219',
+'isgrek' => 'Scx/Grek',
'isgrext' => 'GCB/EX',
-'isgujarati' => 'Sc/Gujr',
-'isgujr' => 'Sc/Gujr',
-'isgurmukhi' => 'Sc/Guru',
-'isguru' => 'Sc/Guru',
-'ishalfandfullforms' => '#/335',
-'ishalfmarks' => '#/232',
-'ishalfwidthandfullwidthforms' => '#/335',
-'ishan' => 'Sc/Han',
-'ishang' => 'Sc/Hang',
-'ishangul' => 'Sc/Hang',
-'ishangulcompatibilityjamo' => '#/256',
-'ishanguljamo' => '#/116',
-'ishanguljamoextendeda' => '#/215',
-'ishanguljamoextendedb' => '#/216',
-'ishangulsyllables' => '#/147',
-'ishani' => 'Sc/Han',
-'ishano' => '#/563',
-'ishanunoo' => '#/563',
-'ishatr' => '#/564',
-'ishatran' => '#/564',
+'isgujarati' => 'Scx/Gujr',
+'isgujr' => 'Scx/Gujr',
+'isgurmukhi' => 'Scx/Guru',
+'isguru' => 'Scx/Guru',
+'ishalfandfullforms' => '#/347',
+'ishalfmarks' => '#/241',
+'ishalfwidthandfullwidthforms' => '#/347',
+'ishan' => 'Scx/Han',
+'ishang' => 'Scx/Hang',
+'ishangul' => 'Scx/Hang',
+'ishangulcompatibilityjamo' => '#/265',
+'ishanguljamo' => '#/119',
+'ishanguljamoextendeda' => '#/223',
+'ishanguljamoextendedb' => '#/224',
+'ishangulsyllables' => '#/153',
+'ishani' => 'Scx/Han',
+'ishano' => '#/646',
+'ishanunoo' => '#/646',
+'ishatr' => '#/584',
+'ishatran' => '#/584',
'ishebr' => 'Sc/Hebr',
'ishebrew' => 'Sc/Hebr',
'ishex' => 'Hex/Y',
'ishexdigit' => 'Hex/Y',
-'ishighprivateusesurrogates' => '#/336',
-'ishighpusurrogates' => '#/336',
-'ishighsurrogates' => '#/315',
-'ishira' => 'Sc/Hira',
-'ishiragana' => 'Sc/Hira',
-'ishluw' => '#/565',
+'ishighprivateusesurrogates' => '#/348',
+'ishighpusurrogates' => '#/348',
+'ishighsurrogates' => '#/327',
+'ishira' => 'Scx/Hira',
+'ishiragana' => 'Scx/Hira',
+'ishluw' => '#/585',
'ishmng' => 'Sc/Hmng',
'ishorizspace' => 'Perl/Blank',
-'ishung' => '#/566',
+'ishung' => '#/586',
'ishyphen' => 'Hyphen/T',
'isidc' => 'IDC/Y',
'isidcontinue' => 'IDC/Y',
'isideo' => 'Ideo/Y',
'isideographic' => 'Ideo/Y',
-'isideographicdescriptioncharacters' => '#/107',
+'isideographicdescriptioncharacters' => '#/110',
+'isideographicsymbols' => '#/362',
+'isideographicsymbolsandpunctuation' => '#/362',
'isids' => 'IDS/Y',
-'isidsb' => '#/67',
-'isidsbinaryoperator' => '#/67',
-'isidst' => '#/68',
+'isidsb' => '#/71',
+'isidsbinaryoperator' => '#/71',
+'isidst' => '#/72',
'isidstart' => 'IDS/Y',
-'isidstrinaryoperator' => '#/68',
-'isimperialaramaic' => '#/544',
-'isindicnumberforms' => '#/337',
-'isinherited' => 'Sc/Zinh',
+'isidstrinaryoperator' => '#/72',
+'isimperialaramaic' => '#/565',
+'isindicnumberforms' => '#/349',
+'isinherited' => 'Scx/Zinh',
'isinitialpunctuation' => 'Gc/Pi',
-'isinscriptionalpahlavi' => '#/592',
-'isinscriptionalparthian' => '#/595',
-'isipaext' => '#/150',
-'isipaextensions' => '#/150',
-'isital' => '#/567',
-'isjamo' => '#/116',
-'isjamoexta' => '#/215',
-'isjamoextb' => '#/216',
-'isjava' => '#/568',
-'isjavanese' => '#/568',
-'isjoinc' => '#/85',
-'isjoincontrol' => '#/85',
-'iskaithi' => '#/571',
-'iskali' => '#/569',
-'iskana' => 'Sc/Kana',
-'iskanasup' => '#/176',
-'iskanasupplement' => '#/176',
-'iskanbun' => '#/152',
-'iskangxi' => '#/153',
-'iskangxiradicals' => '#/153',
-'iskannada' => 'Sc/Knda',
-'iskatakana' => 'Sc/Kana',
-'iskatakanaext' => '#/279',
-'iskatakanaphoneticextensions' => '#/279',
-'iskayahli' => '#/569',
+'isinscriptionalpahlavi' => '#/615',
+'isinscriptionalparthian' => '#/618',
+'isipaext' => '#/156',
+'isipaextensions' => '#/156',
+'isital' => '#/587',
+'isjamo' => '#/119',
+'isjamoexta' => '#/223',
+'isjamoextb' => '#/224',
+'isjava' => '#/647',
+'isjavanese' => '#/647',
+'isjoinc' => '#/88',
+'isjoincontrol' => '#/88',
+'iskaithi' => '#/649',
+'iskali' => '#/185',
+'iskana' => 'Scx/Kana',
+'iskanasup' => '#/183',
+'iskanasupplement' => '#/183',
+'iskanbun' => '#/158',
+'iskangxi' => '#/159',
+'iskangxiradicals' => '#/159',
+'iskannada' => 'Scx/Knda',
+'iskatakana' => 'Scx/Kana',
+'iskatakanaext' => '#/288',
+'iskatakanaphoneticextensions' => '#/288',
+'iskayahli' => '#/185',
'iskhar' => 'Sc/Khar',
'iskharoshthi' => 'Sc/Khar',
'iskhmer' => 'Sc/Khmr',
-'iskhmersymbols' => '#/298',
+'iskhmersymbols' => '#/308',
'iskhmr' => 'Sc/Khmr',
-'iskhoj' => '#/570',
-'iskhojki' => '#/570',
-'iskhudawadi' => '#/603',
-'isknda' => 'Sc/Knda',
-'iskthi' => '#/571',
+'iskhoj' => '#/648',
+'iskhojki' => '#/648',
+'iskhudawadi' => 'Scx/Sind',
+'isknda' => 'Scx/Knda',
+'iskthi' => '#/649',
'isl' => 'Gc/L',
'isl&' => 'Gc/LC',
'isl_' => 'Gc/LC',
'islana' => 'Sc/Lana',
'islao' => 'Sc/Lao',
'islaoo' => 'Sc/Lao',
-'islatin' => 'Sc/Latn',
-'islatin1' => '#/155',
-'islatin1sup' => '#/155',
-'islatin1supplement' => '#/155',
-'islatinexta' => '#/234',
-'islatinextadditional' => '#/349',
-'islatinextb' => '#/235',
-'islatinextc' => '#/236',
-'islatinextd' => '#/237',
-'islatinexte' => '#/238',
-'islatinextendeda' => '#/234',
-'islatinextendedadditional' => '#/349',
-'islatinextendedb' => '#/235',
-'islatinextendedc' => '#/236',
-'islatinextendedd' => '#/237',
-'islatinextendede' => '#/238',
-'islatn' => 'Sc/Latn',
+'islatin' => 'Scx/Latn',
+'islatin1' => '#/161',
+'islatin1sup' => '#/161',
+'islatin1supplement' => '#/161',
+'islatinexta' => '#/243',
+'islatinextadditional' => '#/363',
+'islatinextb' => '#/244',
+'islatinextc' => '#/245',
+'islatinextd' => '#/246',
+'islatinexte' => '#/247',
+'islatinextendeda' => '#/243',
+'islatinextendedadditional' => '#/363',
+'islatinextendedb' => '#/244',
+'islatinextendedc' => '#/245',
+'islatinextendedd' => '#/246',
+'islatinextendede' => '#/247',
+'islatn' => 'Scx/Latn',
'islc' => 'Gc/LC',
-'islepc' => '#/572',
-'islepcha' => '#/572',
+'islepc' => '#/592',
+'islepcha' => '#/592',
'isletter' => 'Gc/L',
-'isletterlikesymbols' => '#/345',
+'isletterlikesymbols' => '#/358',
'isletternumber' => 'Gc/Nl',
-'islimb' => 'Sc/Limb',
-'islimbu' => 'Sc/Limb',
-'islina' => '#/573',
-'islinb' => 'Sc/Linb',
-'islineara' => '#/573',
-'islinearb' => 'Sc/Linb',
-'islinearbideograms' => '#/338',
-'islinearbsyllabary' => '#/339',
-'islineseparator' => '#/372',
-'islisu' => '#/117',
+'islimb' => 'Scx/Limb',
+'islimbu' => 'Scx/Limb',
+'islina' => 'Scx/Lina',
+'islinb' => 'Scx/Linb',
+'islineara' => 'Scx/Lina',
+'islinearb' => 'Scx/Linb',
+'islinearbideograms' => '#/350',
+'islinearbsyllabary' => '#/351',
+'islineseparator' => '#/386',
+'islisu' => '#/120',
'isll' => 'Gc/Ll',
'islm' => 'Gc/Lm',
'islo' => 'Gc/Lo',
@@ -4772,113 +4934,120 @@
'islower' => 'Lower/Y',
'islowercase' => 'Lower/Y',
'islowercaseletter' => 'Gc/Ll',
-'islowsurrogates' => '#/307',
+'islowsurrogates' => '#/319',
'islt' => 'Perl/Title',
'islu' => 'Gc/Lu',
-'islyci' => '#/574',
-'islycian' => '#/574',
-'islydi' => '#/575',
-'islydian' => '#/575',
+'islyci' => '#/594',
+'islycian' => '#/594',
+'islydi' => '#/595',
+'islydian' => '#/595',
'ism' => 'Gc/M',
-'ismahajani' => '#/576',
-'ismahj' => '#/576',
-'ismahjong' => '#/180',
-'ismahjongtiles' => '#/180',
-'ismalayalam' => 'Sc/Mlym',
-'ismand' => '#/577',
-'ismandaic' => '#/577',
-'ismani' => '#/578',
-'ismanichaean' => '#/578',
+'ismahajani' => '#/650',
+'ismahj' => '#/650',
+'ismahjong' => '#/187',
+'ismahjongtiles' => '#/187',
+'ismalayalam' => 'Scx/Mlym',
+'ismand' => '#/651',
+'ismandaic' => '#/651',
+'ismani' => '#/652',
+'ismanichaean' => '#/652',
+'ismarc' => '#/599',
+'ismarchen' => '#/599',
'ismark' => 'Gc/M',
'ismath' => 'Math/Y',
-'ismathalphanum' => '#/299',
-'ismathematicalalphanumericsymbols' => '#/299',
-'ismathematicaloperators' => '#/308',
-'ismathoperators' => '#/308',
+'ismathalphanum' => '#/309',
+'ismathematicalalphanumericsymbols' => '#/309',
+'ismathematicaloperators' => '#/320',
+'ismathoperators' => '#/320',
'ismathsymbol' => 'Gc/Sm',
'ismc' => 'Gc/Mc',
'isme' => 'Gc/Me',
-'ismeeteimayek' => '#/583',
-'ismeeteimayekext' => '#/316',
-'ismeeteimayekextensions' => '#/316',
-'ismend' => '#/579',
-'ismendekikakui' => '#/579',
-'ismerc' => '#/580',
-'ismero' => '#/355',
-'ismeroiticcursive' => '#/580',
-'ismeroitichieroglyphs' => '#/355',
-'ismiao' => '#/581',
-'ismiscarrows' => '#/261',
-'ismiscellaneousmathematicalsymbolsa' => '#/340',
-'ismiscellaneousmathematicalsymbolsb' => '#/341',
-'ismiscellaneoussymbols' => '#/281',
-'ismiscellaneoussymbolsandarrows' => '#/261',
-'ismiscellaneoussymbolsandpictographs' => '#/327',
-'ismiscellaneoustechnical' => '#/309',
-'ismiscmathsymbolsa' => '#/340',
-'ismiscmathsymbolsb' => '#/341',
-'ismiscpictographs' => '#/327',
-'ismiscsymbols' => '#/281',
-'ismisctechnical' => '#/309',
-'ismlym' => 'Sc/Mlym',
+'ismeeteimayek' => '#/604',
+'ismeeteimayekext' => '#/328',
+'ismeeteimayekextensions' => '#/328',
+'ismend' => '#/600',
+'ismendekikakui' => '#/600',
+'ismerc' => '#/601',
+'ismero' => '#/369',
+'ismeroiticcursive' => '#/601',
+'ismeroitichieroglyphs' => '#/369',
+'ismiao' => '#/602',
+'ismiscarrows' => '#/270',
+'ismiscellaneousmathematicalsymbolsa' => '#/352',
+'ismiscellaneousmathematicalsymbolsb' => '#/353',
+'ismiscellaneoussymbols' => '#/290',
+'ismiscellaneoussymbolsandarrows' => '#/270',
+'ismiscellaneoussymbolsandpictographs' => '#/339',
+'ismiscellaneoustechnical' => '#/321',
+'ismiscmathsymbolsa' => '#/352',
+'ismiscmathsymbolsb' => '#/353',
+'ismiscpictographs' => '#/339',
+'ismiscsymbols' => '#/290',
+'ismisctechnical' => '#/321',
+'ismlym' => 'Scx/Mlym',
'ismn' => 'Gc/Mn',
-'ismodi' => '#/582',
+'ismodi' => '#/653',
'ismodifierletter' => 'Gc/Lm',
-'ismodifierletters' => '#/328',
+'ismodifierletters' => '#/340',
'ismodifiersymbol' => 'Gc/Sk',
-'ismodifiertoneletters' => '#/356',
-'ismong' => 'Sc/Mong',
-'ismongolian' => 'Sc/Mong',
-'ismro' => '#/539',
-'ismroo' => '#/539',
-'ismtei' => '#/583',
-'ismult' => 'Sc/Mult',
-'ismultani' => 'Sc/Mult',
-'ismusic' => '#/131',
-'ismusicalsymbols' => '#/131',
-'ismyanmar' => '#/584',
-'ismyanmarexta' => '#/282',
-'ismyanmarextb' => '#/283',
-'ismyanmarextendeda' => '#/282',
-'ismyanmarextendedb' => '#/283',
-'ismymr' => '#/584',
+'ismodifiertoneletters' => '#/370',
+'ismong' => 'Scx/Mong',
+'ismongolian' => 'Scx/Mong',
+'ismongoliansup' => '#/311',
+'ismongoliansupplement' => '#/311',
+'ismro' => '#/559',
+'ismroo' => '#/559',
+'ismtei' => '#/604',
+'ismult' => 'Scx/Mult',
+'ismultani' => 'Scx/Mult',
+'ismusic' => '#/136',
+'ismusicalsymbols' => '#/136',
+'ismyanmar' => 'Scx/Mymr',
+'ismyanmarexta' => '#/291',
+'ismyanmarextb' => '#/292',
+'ismyanmarextendeda' => '#/291',
+'ismyanmarextendedb' => '#/292',
+'ismymr' => 'Scx/Mymr',
'isn' => 'Gc/N',
-'isnabataean' => '#/585',
-'isnarb' => '#/329',
+'isnabataean' => '#/606',
+'isnarb' => '#/341',
'isnb' => 'Blk/NB',
-'isnbat' => '#/585',
+'isnbat' => '#/606',
'isnchar' => 'Perl/_PerlNch',
'isnd' => 'Gc/Nd',
+'isnewa' => '#/607',
'isnewtailue' => 'Sc/Talu',
-'isnko' => '#/540',
-'isnkoo' => '#/540',
+'isnko' => '#/560',
+'isnkoo' => '#/560',
'isnl' => 'Gc/Nl',
'isno' => 'Gc/No',
'isnoblock' => 'Blk/NB',
'isnoncharactercodepoint' => 'Perl/_PerlNch',
'isnonspacingmark' => 'Gc/Mn',
'isnumber' => 'Gc/N',
-'isnumberforms' => '#/284',
-'isocr' => '#/111',
-'isogam' => '#/586',
-'isogham' => '#/586',
-'isolchiki' => '#/184',
-'isolck' => '#/184',
-'isoldhungarian' => '#/566',
-'isolditalic' => '#/567',
-'isoldnortharabian' => '#/329',
-'isoldpermic' => '#/590',
-'isoldpersian' => '#/619',
-'isoldsoutharabian' => '#/330',
-'isoldturkic' => '#/587',
+'isnumberforms' => '#/293',
+'isocr' => '#/114',
+'isogam' => '#/608',
+'isogham' => '#/608',
+'isolchiki' => '#/192',
+'isolck' => '#/192',
+'isoldhungarian' => '#/586',
+'isolditalic' => '#/587',
+'isoldnortharabian' => '#/341',
+'isoldpermic' => '#/654',
+'isoldpersian' => '#/643',
+'isoldsoutharabian' => '#/342',
+'isoldturkic' => '#/609',
'isopenpunctuation' => 'Gc/Ps',
-'isopticalcharacterrecognition' => '#/111',
-'isoriya' => 'Sc/Orya',
-'isorkh' => '#/587',
-'isornamentaldingbats' => '#/350',
-'isorya' => 'Sc/Orya',
-'isosma' => '#/588',
-'isosmanya' => '#/588',
+'isopticalcharacterrecognition' => '#/114',
+'isoriya' => 'Scx/Orya',
+'isorkh' => '#/609',
+'isornamentaldingbats' => '#/364',
+'isorya' => 'Scx/Orya',
+'isosage' => '#/610',
+'isosge' => '#/610',
+'isosma' => '#/611',
+'isosmanya' => '#/611',
'isother' => 'Gc/C',
'isotherletter' => 'Gc/Lo',
'isothernumber' => 'Gc/No',
@@ -4886,37 +5055,38 @@
'isothersymbol' => 'Gc/So',
'isp' => 'Gc/P',
'ispahawhhmong' => 'Sc/Hmng',
-'ispalm' => '#/246',
-'ispalmyrene' => '#/246',
-'isparagraphseparator' => '#/373',
+'ispalm' => '#/255',
+'ispalmyrene' => '#/255',
+'isparagraphseparator' => '#/387',
'ispatsyn' => 'PatSyn/Y',
'ispatternsyntax' => 'PatSyn/Y',
'ispatternwhitespace' => 'Perl/_PerlPat',
'ispatws' => 'Perl/_PerlPat',
-'ispauc' => '#/589',
-'ispaucinhau' => '#/589',
-'ispc' => 'WB/EX',
+'ispauc' => '#/612',
+'ispaucinhau' => '#/612',
+'ispc' => 'Gc/Pc',
+'ispcm' => 'PCM/Y',
'ispd' => 'Gc/Pd',
'ispe' => 'Gc/Pe',
'isperlspace' => '#/3',
'isperlword' => 'Perl/PerlWord',
-'isperm' => '#/590',
+'isperm' => '#/654',
'ispf' => 'Gc/Pf',
-'isphag' => '#/591',
-'isphagspa' => '#/591',
-'isphaistos' => '#/220',
-'isphaistosdisc' => '#/220',
-'isphli' => '#/592',
-'isphlp' => '#/593',
-'isphnx' => '#/594',
-'isphoenician' => '#/594',
-'isphoneticext' => '#/286',
-'isphoneticextensions' => '#/286',
-'isphoneticextensionssupplement' => '#/317',
-'isphoneticextsup' => '#/317',
+'isphag' => '#/655',
+'isphagspa' => '#/655',
+'isphaistos' => '#/228',
+'isphaistosdisc' => '#/228',
+'isphli' => '#/615',
+'isphlp' => 'Scx/Phlp',
+'isphnx' => '#/617',
+'isphoenician' => '#/617',
+'isphoneticext' => '#/295',
+'isphoneticextensions' => '#/295',
+'isphoneticextensionssupplement' => '#/329',
+'isphoneticextsup' => '#/329',
'ispi' => 'Gc/Pi',
-'isplayingcards' => '#/302',
-'isplrd' => '#/581',
+'isplayingcards' => '#/313',
+'isplrd' => '#/602',
'ispo' => 'Gc/Po',
'isposixalnum' => '#/5',
'isposixalpha' => '#/6',
@@ -4931,154 +5101,159 @@
'isposixupper' => '#/13',
'isposixword' => 'Perl/PerlWord',
'isposixxdigit' => '#/60',
+'isprependedconcatenationmark' => 'PCM/Y',
'isprint' => 'Perl/Print',
-'isprivateuse' => '#/371',
-'isprivateusearea' => '#/112',
-'isprti' => '#/595',
+'isprivateuse' => '#/385',
+'isprivateusearea' => '#/115',
+'isprti' => '#/618',
'isps' => 'Gc/Ps',
-'ispsalterpahlavi' => '#/593',
-'ispua' => '#/112',
+'ispsalterpahlavi' => 'Scx/Phlp',
+'ispua' => '#/115',
'ispunct' => 'Gc/P',
'ispunctuation' => 'Gc/P',
-'isqaac' => '#/558',
-'isqaai' => 'Sc/Zinh',
+'isqaac' => 'Scx/Copt',
+'isqaai' => 'Scx/Zinh',
'isqmark' => 'QMark/Y',
'isquotationmark' => 'QMark/Y',
-'isradical' => '#/86',
-'isrejang' => '#/596',
-'isrjng' => '#/596',
-'isrumi' => '#/120',
-'isruminumeralsymbols' => '#/120',
-'isrunic' => '#/597',
-'isrunr' => '#/597',
+'isradical' => '#/89',
+'isrejang' => '#/619',
+'isrjng' => '#/619',
+'isrumi' => '#/124',
+'isruminumeralsymbols' => '#/124',
+'isrunic' => '#/620',
+'isrunr' => '#/620',
'iss' => 'Gc/S',
-'issamaritan' => '#/598',
-'issamr' => '#/598',
-'issarb' => '#/330',
-'issaur' => '#/599',
-'issaurashtra' => '#/599',
+'issamaritan' => '#/621',
+'issamr' => '#/621',
+'issarb' => '#/342',
+'issaur' => '#/622',
+'issaurashtra' => '#/622',
'issc' => 'Gc/Sc',
'issd' => 'SD/Y',
+'issentenceterminal' => 'STerm/Y',
'isseparator' => 'Gc/Z',
-'issgnw' => '#/600',
-'issharada' => '#/601',
-'isshavian' => '#/188',
-'isshaw' => '#/188',
-'isshorthandformatcontrols' => '#/365',
-'isshrd' => '#/601',
-'issidd' => '#/602',
-'issiddham' => '#/602',
-'issignwriting' => '#/600',
-'issind' => '#/603',
-'issinh' => 'Sc/Sinh',
-'issinhala' => 'Sc/Sinh',
-'issinhalaarchaicnumbers' => '#/360',
+'issgnw' => '#/623',
+'issharada' => 'Scx/Shrd',
+'isshavian' => '#/196',
+'isshaw' => '#/196',
+'isshorthandformatcontrols' => '#/379',
+'isshrd' => 'Scx/Shrd',
+'issidd' => '#/625',
+'issiddham' => '#/625',
+'issignwriting' => '#/623',
+'issind' => 'Scx/Sind',
+'issinh' => 'Scx/Sinh',
+'issinhala' => 'Scx/Sinh',
+'issinhalaarchaicnumbers' => '#/374',
'issk' => 'Gc/Sk',
'issm' => 'Gc/Sm',
-'issmallforms' => '#/265',
-'issmallformvariants' => '#/265',
+'issmallforms' => '#/274',
+'issmallformvariants' => '#/274',
'isso' => 'Gc/So',
'issoftdotted' => 'SD/Y',
-'issora' => '#/604',
-'issorasompeng' => '#/604',
+'issora' => '#/627',
+'issorasompeng' => '#/627',
'isspace' => 'Perl/SpacePer',
'isspaceperl' => 'Perl/SpacePer',
'isspaceseparator' => 'Gc/Zs',
'isspacingmark' => 'Gc/Mc',
-'isspacingmodifierletters' => '#/328',
-'isspecials' => '#/221',
+'isspacingmodifierletters' => '#/340',
+'isspecials' => '#/229',
'issterm' => 'STerm/Y',
-'issund' => '#/605',
-'issundanese' => '#/605',
-'issundanesesup' => '#/303',
-'issundanesesupplement' => '#/303',
-'issuparrowsa' => '#/266',
-'issuparrowsb' => '#/267',
-'issuparrowsc' => '#/268',
-'issuperandsub' => '#/289',
-'issuperscriptsandsubscripts' => '#/289',
-'issupmathoperators' => '#/342',
-'issupplementalarrowsa' => '#/266',
-'issupplementalarrowsb' => '#/267',
-'issupplementalarrowsc' => '#/268',
-'issupplementalmathematicaloperators' => '#/342',
-'issupplementalpunctuation' => '#/319',
-'issupplementalsymbolsandpictographs' => '#/366',
-'issupplementaryprivateuseareaa' => '#/191',
-'issupplementaryprivateuseareab' => '#/192',
-'issuppuaa' => '#/191',
-'issuppuab' => '#/192',
-'issuppunctuation' => '#/319',
-'issupsymbolsandpictographs' => '#/366',
+'issund' => '#/628',
+'issundanese' => '#/628',
+'issundanesesup' => '#/314',
+'issundanesesupplement' => '#/314',
+'issuparrowsa' => '#/275',
+'issuparrowsb' => '#/276',
+'issuparrowsc' => '#/277',
+'issuperandsub' => '#/298',
+'issuperscriptsandsubscripts' => '#/298',
+'issupmathoperators' => '#/354',
+'issupplementalarrowsa' => '#/275',
+'issupplementalarrowsb' => '#/276',
+'issupplementalarrowsc' => '#/277',
+'issupplementalmathematicaloperators' => '#/354',
+'issupplementalpunctuation' => '#/331',
+'issupplementalsymbolsandpictographs' => '#/380',
+'issupplementaryprivateuseareaa' => '#/199',
+'issupplementaryprivateuseareab' => '#/200',
+'issuppuaa' => '#/199',
+'issuppuab' => '#/200',
+'issuppunctuation' => '#/331',
+'issupsymbolsandpictographs' => '#/380',
'issurrogate' => '#/14',
-'issuttonsignwriting' => '#/346',
-'issylo' => '#/606',
-'issylotinagri' => '#/606',
+'issuttonsignwriting' => '#/359',
+'issylo' => '#/656',
+'issylotinagri' => '#/656',
'issymbol' => 'Gc/S',
-'issyrc' => '#/607',
-'issyriac' => '#/607',
-'istagalog' => '#/613',
-'istagb' => '#/608',
-'istagbanwa' => '#/608',
-'istags' => '#/121',
-'istaile' => '#/610',
+'issyrc' => 'Scx/Syrc',
+'issyriac' => 'Scx/Syrc',
+'istagalog' => '#/658',
+'istagb' => 'Scx/Tagb',
+'istagbanwa' => 'Scx/Tagb',
+'istags' => '#/125',
+'istaile' => '#/657',
'istaitham' => 'Sc/Lana',
-'istaiviet' => '#/611',
-'istaixuanjing' => '#/291',
-'istaixuanjingsymbols' => '#/291',
-'istakr' => '#/609',
-'istakri' => '#/609',
-'istale' => '#/610',
+'istaiviet' => '#/635',
+'istaixuanjing' => '#/300',
+'istaixuanjingsymbols' => '#/300',
+'istakr' => 'Scx/Takr',
+'istakri' => 'Scx/Takr',
+'istale' => '#/657',
'istalu' => 'Sc/Talu',
-'istamil' => 'Sc/Taml',
-'istaml' => 'Sc/Taml',
-'istavt' => '#/611',
-'istelu' => 'Sc/Telu',
-'istelugu' => 'Sc/Telu',
+'istamil' => 'Scx/Taml',
+'istaml' => 'Scx/Taml',
+'istang' => '#/634',
+'istangut' => '#/634',
+'istangutcomponents' => '#/355',
+'istavt' => '#/635',
+'istelu' => 'Scx/Telu',
+'istelugu' => 'Scx/Telu',
'isterm' => 'Term/Y',
'isterminalpunctuation' => 'Term/Y',
-'istfng' => '#/612',
-'istglg' => '#/613',
-'isthaa' => '#/614',
-'isthaana' => '#/614',
-'isthai' => '#/615',
+'istfng' => '#/636',
+'istglg' => '#/658',
+'isthaa' => 'Scx/Thaa',
+'isthaana' => 'Scx/Thaa',
+'isthai' => '#/639',
'istibetan' => 'Sc/Tibt',
'istibt' => 'Sc/Tibt',
-'istifinagh' => '#/612',
-'istirh' => '#/616',
-'istirhuta' => '#/616',
+'istifinagh' => '#/636',
+'istirh' => 'Scx/Tirh',
+'istirhuta' => 'Scx/Tirh',
'istitle' => 'Perl/Title',
'istitlecase' => 'Perl/Title',
'istitlecaseletter' => 'Perl/Title',
-'istransportandmap' => '#/331',
-'istransportandmapsymbols' => '#/331',
-'isucas' => '#/123',
-'isucasext' => '#/198',
-'isugar' => '#/617',
-'isugaritic' => '#/617',
+'istransportandmap' => '#/343',
+'istransportandmapsymbols' => '#/343',
+'isucas' => '#/127',
+'isucasext' => '#/206',
+'isugar' => '#/641',
+'isugaritic' => '#/641',
'isuideo' => 'UIdeo/Y',
'isunassigned' => 'Gc/Cn',
'isunicode' => '#/2',
-'isunifiedcanadianaboriginalsyllabics' => '#/123',
-'isunifiedcanadianaboriginalsyllabicsextended' => '#/198',
+'isunifiedcanadianaboriginalsyllabics' => '#/127',
+'isunifiedcanadianaboriginalsyllabicsextended' => '#/206',
'isunifiedideograph' => 'UIdeo/Y',
'isunknown' => 'Sc/Zzzz',
'isupper' => 'Upper/Y',
'isuppercase' => 'Upper/Y',
'isuppercaseletter' => 'Gc/Lu',
-'isvai' => '#/541',
-'isvaii' => '#/541',
-'isvariationselector' => '#/88',
-'isvariationselectors' => '#/105',
-'isvariationselectorssupplement' => '#/138',
-'isvedicext' => '#/225',
-'isvedicextensions' => '#/225',
-'isverticalforms' => '#/310',
+'isvai' => '#/561',
+'isvaii' => '#/561',
+'isvariationselector' => '#/91',
+'isvariationselectors' => '#/108',
+'isvariationselectorssupplement' => '#/144',
+'isvedicext' => '#/233',
+'isvedicextensions' => '#/233',
+'isverticalforms' => '#/322',
'isvertspace' => '#/4',
-'isvs' => '#/88',
-'isvssup' => '#/138',
-'iswara' => '#/618',
-'iswarangciti' => '#/618',
+'isvs' => '#/91',
+'isvssup' => '#/144',
+'iswara' => '#/642',
+'iswarangciti' => '#/642',
'iswhitespace' => 'Perl/SpacePer',
'isword' => 'Perl/Word',
'iswspace' => 'Perl/SpacePer',
@@ -5087,12 +5262,12 @@
'isxidcontinue' => 'XIDC/Y',
'isxids' => 'XIDS/Y',
'isxidstart' => 'XIDS/Y',
-'isxpeo' => '#/619',
+'isxpeo' => '#/643',
'isxperlspace' => 'Perl/SpacePer',
'isxposixalnum' => 'Perl/Alnum',
'isxposixalpha' => 'Alpha/Y',
'isxposixblank' => 'Perl/Blank',
-'isxposixcntrl' => '#/370',
+'isxposixcntrl' => '#/384',
'isxposixdigit' => 'Gc/Nd',
'isxposixgraph' => 'Perl/Graph',
'isxposixlower' => 'Lower/Y',
@@ -5103,205 +5278,212 @@
'isxposixword' => 'Perl/Word',
'isxposixxdigit' => 'Hex/Y',
'isxsux' => 'Sc/Xsux',
-'isyi' => '#/538',
-'isyiii' => '#/538',
-'isyijing' => '#/163',
-'isyijinghexagramsymbols' => '#/163',
-'isyiradicals' => '#/270',
-'isyisyllables' => '#/292',
+'isyi' => 'Scx/Yi',
+'isyiii' => 'Scx/Yi',
+'isyijing' => '#/170',
+'isyijinghexagramsymbols' => '#/170',
+'isyiradicals' => '#/279',
+'isyisyllables' => '#/301',
'isz' => 'Gc/Z',
-'iszinh' => 'Sc/Zinh',
-'iszl' => '#/372',
-'iszp' => '#/373',
+'iszinh' => 'Scx/Zinh',
+'iszl' => '#/386',
+'iszp' => '#/387',
'iszs' => 'Gc/Zs',
-'iszyyy' => 'Sc/Zyyy',
+'iszyyy' => 'Scx/Zyyy',
'iszzzz' => 'Sc/Zzzz',
-'ital' => '#/567',
-'jamo' => '#/116',
-'jamoexta' => '#/215',
-'jamoextb' => '#/216',
-'java' => '#/568',
-'javanese' => '#/568',
+'ital' => '#/587',
+'jamo' => '#/119',
+'jamoexta' => '#/223',
+'jamoextb' => '#/224',
+'java' => '#/647',
+'javanese' => '#/647',
+'jg=africanfeh' => '#/420',
+'jg=africannoon' => '#/426',
+'jg=africanqaf' => '#/421',
'jg=ain' => 'Jg/Ain',
-'jg=alaph' => '#/394',
+'jg=alaph' => '#/408',
'jg=alef' => 'Jg/Alef',
'jg=beh' => 'Jg/Beh',
-'jg=beth' => '#/384',
-'jg=burushaskiyehbarree' => '#/442',
+'jg=beth' => '#/398',
+'jg=burushaskiyehbarree' => '#/459',
'jg=dal' => 'Jg/Dal',
-'jg=dalathrish' => '#/406',
-'jg=e' => '#/374',
+'jg=dalathrish' => '#/422',
+'jg=e' => '#/388',
'jg=farsiyeh' => 'Jg/FarsiYeh',
-'jg=fe' => '#/375',
+'jg=fe' => '#/389',
'jg=feh' => 'Jg/Feh',
-'jg=finalsemkath' => '#/413',
+'jg=finalsemkath' => '#/430',
'jg=gaf' => 'Jg/Gaf',
-'jg=gamal' => '#/395',
+'jg=gamal' => '#/409',
'jg=hah' => 'Jg/Hah',
-'jg=hamzaonhehgoal' => '#/421',
-'jg=he' => '#/376',
-'jg=heh' => '#/378',
-'jg=hehgoal' => '#/401',
-'jg=heth' => '#/385',
+'jg=hamzaonhehgoal' => '#/438',
+'jg=he' => '#/390',
+'jg=heh' => '#/392',
+'jg=hehgoal' => '#/415',
+'jg=heth' => '#/399',
'jg=kaf' => 'Jg/Kaf',
-'jg=kaph' => '#/386',
-'jg=khaph' => '#/396',
-'jg=knottedheh' => '#/407',
+'jg=kaph' => '#/400',
+'jg=khaph' => '#/410',
+'jg=knottedheh' => '#/423',
'jg=lam' => 'Jg/Lam',
-'jg=lamadh' => '#/399',
-'jg=manichaeanaleph' => '#/431',
-'jg=manichaeanayin' => '#/422',
-'jg=manichaeanbeth' => '#/423',
-'jg=manichaeandaleth' => '#/435',
-'jg=manichaeandhamedh' => '#/439',
-'jg=manichaeanfive' => '#/424',
-'jg=manichaeangimel' => '#/432',
-'jg=manichaeanheth' => '#/425',
-'jg=manichaeanhundred' => '#/440',
-'jg=manichaeankaph' => '#/426',
-'jg=manichaeanlamedh' => '#/436',
-'jg=manichaeanmem' => '#/415',
-'jg=manichaeannun' => '#/416',
-'jg=manichaeanone' => '#/417',
-'jg=manichaeanpe' => '#/414',
-'jg=manichaeanqoph' => '#/427',
-'jg=manichaeanresh' => '#/428',
-'jg=manichaeansadhe' => '#/433',
-'jg=manichaeansamekh' => '#/437',
-'jg=manichaeantaw' => '#/418',
-'jg=manichaeanten' => '#/419',
-'jg=manichaeanteth' => '#/429',
-'jg=manichaeanthamedh' => '#/441',
-'jg=manichaeantwenty' => '#/438',
-'jg=manichaeanwaw' => '#/420',
-'jg=manichaeanyodh' => '#/430',
-'jg=manichaeanzayin' => '#/434',
-'jg=meem' => '#/387',
-'jg=mim' => '#/379',
+'jg=lamadh' => '#/413',
+'jg=manichaeanaleph' => '#/448',
+'jg=manichaeanayin' => '#/439',
+'jg=manichaeanbeth' => '#/440',
+'jg=manichaeandaleth' => '#/452',
+'jg=manichaeandhamedh' => '#/456',
+'jg=manichaeanfive' => '#/441',
+'jg=manichaeangimel' => '#/449',
+'jg=manichaeanheth' => '#/442',
+'jg=manichaeanhundred' => '#/457',
+'jg=manichaeankaph' => '#/443',
+'jg=manichaeanlamedh' => '#/453',
+'jg=manichaeanmem' => '#/432',
+'jg=manichaeannun' => '#/433',
+'jg=manichaeanone' => '#/434',
+'jg=manichaeanpe' => '#/431',
+'jg=manichaeanqoph' => '#/444',
+'jg=manichaeanresh' => '#/445',
+'jg=manichaeansadhe' => '#/450',
+'jg=manichaeansamekh' => '#/454',
+'jg=manichaeantaw' => '#/435',
+'jg=manichaeanten' => '#/436',
+'jg=manichaeanteth' => '#/446',
+'jg=manichaeanthamedh' => '#/458',
+'jg=manichaeantwenty' => '#/455',
+'jg=manichaeanwaw' => '#/437',
+'jg=manichaeanyodh' => '#/447',
+'jg=manichaeanzayin' => '#/451',
+'jg=meem' => '#/401',
+'jg=mim' => '#/393',
'jg=nojoininggroup' => 'Jg/NoJoinin',
-'jg=noon' => '#/388',
-'jg=nun' => '#/380',
-'jg=nya' => '#/381',
-'jg=pe' => '#/377',
+'jg=noon' => '#/402',
+'jg=nun' => '#/394',
+'jg=nya' => '#/395',
+'jg=pe' => '#/391',
'jg=qaf' => 'Jg/Qaf',
-'jg=qaph' => '#/389',
+'jg=qaph' => '#/403',
'jg=reh' => 'Jg/Reh',
-'jg=reversedpe' => '#/408',
-'jg=rohingyayeh' => '#/410',
+'jg=reversedpe' => '#/424',
+'jg=rohingyayeh' => '#/427',
'jg=sad' => 'Jg/Sad',
-'jg=sadhe' => '#/397',
+'jg=sadhe' => '#/411',
'jg=seen' => 'Jg/Seen',
-'jg=semkath' => '#/402',
-'jg=shin' => '#/390',
-'jg=straightwaw' => '#/411',
-'jg=swashkaf' => '#/403',
-'jg=syriacwaw' => '#/404',
-'jg=tah' => '#/382',
-'jg=taw' => '#/383',
-'jg=tehmarbuta' => '#/409',
-'jg=tehmarbutagoal' => '#/421',
-'jg=teth' => '#/391',
+'jg=semkath' => '#/416',
+'jg=shin' => '#/404',
+'jg=straightwaw' => '#/428',
+'jg=swashkaf' => '#/417',
+'jg=syriacwaw' => '#/418',
+'jg=tah' => '#/396',
+'jg=taw' => '#/397',
+'jg=tehmarbuta' => '#/425',
+'jg=tehmarbutagoal' => '#/438',
+'jg=teth' => '#/405',
'jg=waw' => 'Jg/Waw',
'jg=yeh' => 'Jg/Yeh',
-'jg=yehbarree' => '#/405',
-'jg=yehwithtail' => '#/412',
-'jg=yudh' => '#/392',
-'jg=yudhhe' => '#/400',
-'jg=zain' => '#/393',
-'jg=zhain' => '#/398',
-'joinc' => '#/85',
-'joinc=f' => '#/!85',
-'joinc=false' => '#/!85',
-'joinc=n' => '#/!85',
-'joinc=no' => '#/!85',
-'joinc=t' => '#/85',
-'joinc=true' => '#/85',
-'joinc=y' => '#/85',
-'joinc=yes' => '#/85',
-'joincontrol' => '#/85',
+'jg=yehbarree' => '#/419',
+'jg=yehwithtail' => '#/429',
+'jg=yudh' => '#/406',
+'jg=yudhhe' => '#/414',
+'jg=zain' => '#/407',
+'jg=zhain' => '#/412',
+'joinc' => '#/88',
+'joinc=f' => '#/!88',
+'joinc=false' => '#/!88',
+'joinc=n' => '#/!88',
+'joinc=no' => '#/!88',
+'joinc=t' => '#/88',
+'joinc=true' => '#/88',
+'joinc=y' => '#/88',
+'joinc=yes' => '#/88',
+'joincontrol' => '#/88',
'jt=c' => 'Jt/C',
'jt=d' => 'Jt/D',
'jt=dualjoining' => 'Jt/D',
'jt=joincausing' => 'Jt/C',
-'jt=l' => '#/443',
-'jt=leftjoining' => '#/443',
+'jt=l' => '#/460',
+'jt=leftjoining' => '#/460',
'jt=nonjoining' => 'Jt/U',
'jt=r' => 'Jt/R',
'jt=rightjoining' => 'Jt/R',
'jt=t' => 'Jt/T',
'jt=transparent' => 'Jt/T',
'jt=u' => 'Jt/U',
-'kaithi' => '#/571',
-'kali' => '#/569',
-'kana' => 'Sc/Kana',
-'kanasup' => '#/176',
-'kanasupplement' => '#/176',
-'kanbun' => '#/152',
-'kangxi' => '#/153',
-'kangxiradicals' => '#/153',
-'kannada' => 'Sc/Knda',
-'katakana' => 'Sc/Kana',
-'katakanaext' => '#/279',
-'katakanaphoneticextensions' => '#/279',
-'kayahli' => '#/569',
+'kaithi' => '#/649',
+'kali' => '#/185',
+'kana' => 'Scx/Kana',
+'kanasup' => '#/183',
+'kanasupplement' => '#/183',
+'kanbun' => '#/158',
+'kangxi' => '#/159',
+'kangxiradicals' => '#/159',
+'kannada' => 'Scx/Knda',
+'katakana' => 'Scx/Kana',
+'katakanaext' => '#/288',
+'katakanaphoneticextensions' => '#/288',
+'kayahli' => '#/185',
'khar' => 'Sc/Khar',
'kharoshthi' => 'Sc/Khar',
'khmer' => 'Sc/Khmr',
-'khmersymbols' => '#/298',
+'khmersymbols' => '#/308',
'khmr' => 'Sc/Khmr',
-'khoj' => '#/570',
-'khojki' => '#/570',
-'khudawadi' => '#/603',
-'knda' => 'Sc/Knda',
-'kthi' => '#/571',
+'khoj' => '#/648',
+'khojki' => '#/648',
+'khudawadi' => 'Scx/Sind',
+'knda' => 'Scx/Knda',
+'kthi' => '#/649',
'l' => 'Gc/L',
'l&' => 'Gc/LC',
'l_' => 'Gc/LC',
'lana' => 'Sc/Lana',
'lao' => 'Sc/Lao',
'laoo' => 'Sc/Lao',
-'latin' => 'Sc/Latn',
-'latin1' => '#/155',
-'latin1sup' => '#/155',
-'latin1supplement' => '#/155',
-'latinexta' => '#/234',
-'latinextadditional' => '#/349',
-'latinextb' => '#/235',
-'latinextc' => '#/236',
-'latinextd' => '#/237',
-'latinexte' => '#/238',
-'latinextendeda' => '#/234',
-'latinextendedadditional' => '#/349',
-'latinextendedb' => '#/235',
-'latinextendedc' => '#/236',
-'latinextendedd' => '#/237',
-'latinextendede' => '#/238',
-'latn' => 'Sc/Latn',
+'latin' => 'Scx/Latn',
+'latin1' => '#/161',
+'latin1sup' => '#/161',
+'latin1supplement' => '#/161',
+'latinexta' => '#/243',
+'latinextadditional' => '#/363',
+'latinextb' => '#/244',
+'latinextc' => '#/245',
+'latinextd' => '#/246',
+'latinexte' => '#/247',
+'latinextendeda' => '#/243',
+'latinextendedadditional' => '#/363',
+'latinextendedb' => '#/244',
+'latinextendedc' => '#/245',
+'latinextendedd' => '#/246',
+'latinextendede' => '#/247',
+'latn' => 'Scx/Latn',
'lb=ai' => 'Lb/AI',
'lb=al' => 'Lb/AL',
'lb=alphabetic' => 'Lb/AL',
'lb=ambiguous' => 'Lb/AI',
-'lb=b2' => '#/444',
+'lb=b2' => '#/461',
'lb=ba' => 'Lb/BA',
'lb=bb' => 'Lb/BB',
-'lb=bk' => '#/445',
+'lb=bk' => '#/462',
'lb=breakafter' => 'Lb/BA',
'lb=breakbefore' => 'Lb/BB',
-'lb=breakboth' => '#/444',
-'lb=breaksymbols' => '#/452',
+'lb=breakboth' => '#/461',
+'lb=breaksymbols' => '#/469',
'lb=carriagereturn' => '#/64',
-'lb=cb' => '#/446',
+'lb=cb' => '#/463',
'lb=cj' => 'Lb/CJ',
'lb=cl' => 'Lb/CL',
-'lb=closeparenthesis' => '#/447',
+'lb=closeparenthesis' => '#/464',
'lb=closepunctuation' => 'Lb/CL',
'lb=cm' => 'Lb/CM',
'lb=combiningmark' => 'Lb/CM',
'lb=complexcontext' => 'Lb/SA',
'lb=conditionaljapanesestarter' => 'Lb/CJ',
-'lb=contingentbreak' => '#/446',
-'lb=cp' => '#/447',
+'lb=contingentbreak' => '#/463',
+'lb=cp' => '#/464',
'lb=cr' => '#/64',
+'lb=eb' => 'Lb/EB',
+'lb=ebase' => 'Lb/EB',
+'lb=em' => '#/65',
+'lb=emodifier' => '#/65',
'lb=ex' => 'Lb/EX',
'lb=exclamation' => 'Lb/EX',
'lb=gl' => 'Lb/GL',
@@ -5310,8 +5492,8 @@
'lb=h3' => 'GCB/LVT',
'lb=hebrewletter' => 'WB/HL',
'lb=hl' => 'WB/HL',
-'lb=hy' => '#/448',
-'lb=hyphen' => '#/448',
+'lb=hy' => '#/465',
+'lb=hyphen' => '#/465',
'lb=id' => 'Lb/ID',
'lb=ideographic' => 'Lb/ID',
'lb=in' => 'Lb/IN',
@@ -5322,11 +5504,11 @@
'lb=jl' => '#/61',
'lb=jt' => '#/62',
'lb=jv' => '#/63',
-'lb=lf' => '#/65',
-'lb=linefeed' => '#/65',
-'lb=mandatorybreak' => '#/445',
-'lb=nextline' => '#/449',
-'lb=nl' => '#/449',
+'lb=lf' => '#/66',
+'lb=linefeed' => '#/66',
+'lb=mandatorybreak' => '#/462',
+'lb=nextline' => '#/466',
+'lb=nl' => '#/466',
'lb=nonstarter' => 'Lb/NS',
'lb=ns' => 'Lb/NS',
'lb=nu' => 'SB/NU',
@@ -5339,36 +5521,37 @@
'lb=prefixnumeric' => 'Lb/PR',
'lb=qu' => 'Lb/QU',
'lb=quotation' => 'Lb/QU',
-'lb=regionalindicator' => '#/66',
-'lb=ri' => '#/66',
+'lb=regionalindicator' => '#/67',
+'lb=ri' => '#/67',
'lb=sa' => 'Lb/SA',
-'lb=sg' => '#/450',
-'lb=sp' => '#/451',
-'lb=space' => '#/451',
-'lb=surrogate' => '#/450',
-'lb=sy' => '#/452',
+'lb=sg' => '#/467',
+'lb=sp' => '#/468',
+'lb=space' => '#/468',
+'lb=surrogate' => '#/467',
+'lb=sy' => '#/469',
'lb=unknown' => 'Lb/XX',
-'lb=wj' => '#/453',
-'lb=wordjoiner' => '#/453',
+'lb=wj' => '#/470',
+'lb=wordjoiner' => '#/470',
'lb=xx' => 'Lb/XX',
-'lb=zw' => '#/454',
-'lb=zwspace' => '#/454',
+'lb=zw' => '#/471',
+'lb=zwj' => '#/70',
+'lb=zwspace' => '#/471',
'lc' => 'Gc/LC',
-'lepc' => '#/572',
-'lepcha' => '#/572',
+'lepc' => '#/592',
+'lepcha' => '#/592',
'letter' => 'Gc/L',
-'letterlikesymbols' => '#/345',
+'letterlikesymbols' => '#/358',
'letternumber' => 'Gc/Nl',
-'limb' => 'Sc/Limb',
-'limbu' => 'Sc/Limb',
-'lina' => '#/573',
-'linb' => 'Sc/Linb',
-'lineara' => '#/573',
-'linearb' => 'Sc/Linb',
-'linearbideograms' => '#/338',
-'linearbsyllabary' => '#/339',
-'lineseparator' => '#/372',
-'lisu' => '#/117',
+'limb' => 'Scx/Limb',
+'limbu' => 'Scx/Limb',
+'lina' => 'Scx/Lina',
+'linb' => 'Scx/Linb',
+'lineara' => 'Scx/Lina',
+'linearb' => 'Scx/Linb',
+'linearbideograms' => '#/350',
+'linearbsyllabary' => '#/351',
+'lineseparator' => '#/386',
+'lisu' => '#/120',
'll' => 'Gc/Ll',
'lm' => 'Gc/Lm',
'lo' => 'Gc/Lo',
@@ -5393,23 +5576,25 @@
'lower=yes' => 'Lower/Y',
'lowercase' => 'Lower/Y',
'lowercaseletter' => 'Gc/Ll',
-'lowsurrogates' => '#/307',
+'lowsurrogates' => '#/319',
'lt' => 'Perl/Title',
'lu' => 'Gc/Lu',
-'lyci' => '#/574',
-'lycian' => '#/574',
-'lydi' => '#/575',
-'lydian' => '#/575',
+'lyci' => '#/594',
+'lycian' => '#/594',
+'lydi' => '#/595',
+'lydian' => '#/595',
'm' => 'Gc/M',
-'mahajani' => '#/576',
-'mahj' => '#/576',
-'mahjong' => '#/180',
-'mahjongtiles' => '#/180',
-'malayalam' => 'Sc/Mlym',
-'mand' => '#/577',
-'mandaic' => '#/577',
-'mani' => '#/578',
-'manichaean' => '#/578',
+'mahajani' => '#/650',
+'mahj' => '#/650',
+'mahjong' => '#/187',
+'mahjongtiles' => '#/187',
+'malayalam' => 'Scx/Mlym',
+'mand' => '#/651',
+'mandaic' => '#/651',
+'mani' => '#/652',
+'manichaean' => '#/652',
+'marc' => '#/599',
+'marchen' => '#/599',
'mark' => 'Gc/M',
'math' => 'Math/Y',
'math=f' => '!Math/Y',
@@ -5420,62 +5605,64 @@
'math=true' => 'Math/Y',
'math=y' => 'Math/Y',
'math=yes' => 'Math/Y',
-'mathalphanum' => '#/299',
-'mathematicalalphanumericsymbols' => '#/299',
-'mathematicaloperators' => '#/308',
-'mathoperators' => '#/308',
+'mathalphanum' => '#/309',
+'mathematicalalphanumericsymbols' => '#/309',
+'mathematicaloperators' => '#/320',
+'mathoperators' => '#/320',
'mathsymbol' => 'Gc/Sm',
'mc' => 'Gc/Mc',
'me' => 'Gc/Me',
-'meeteimayek' => '#/583',
-'meeteimayekext' => '#/316',
-'meeteimayekextensions' => '#/316',
-'mend' => '#/579',
-'mendekikakui' => '#/579',
-'merc' => '#/580',
-'mero' => '#/355',
-'meroiticcursive' => '#/580',
-'meroitichieroglyphs' => '#/355',
-'miao' => '#/581',
-'miscarrows' => '#/261',
-'miscellaneousmathematicalsymbolsa' => '#/340',
-'miscellaneousmathematicalsymbolsb' => '#/341',
-'miscellaneoussymbols' => '#/281',
-'miscellaneoussymbolsandarrows' => '#/261',
-'miscellaneoussymbolsandpictographs' => '#/327',
-'miscellaneoustechnical' => '#/309',
-'miscmathsymbolsa' => '#/340',
-'miscmathsymbolsb' => '#/341',
-'miscpictographs' => '#/327',
-'miscsymbols' => '#/281',
-'misctechnical' => '#/309',
-'mlym' => 'Sc/Mlym',
+'meeteimayek' => '#/604',
+'meeteimayekext' => '#/328',
+'meeteimayekextensions' => '#/328',
+'mend' => '#/600',
+'mendekikakui' => '#/600',
+'merc' => '#/601',
+'mero' => '#/369',
+'meroiticcursive' => '#/601',
+'meroitichieroglyphs' => '#/369',
+'miao' => '#/602',
+'miscarrows' => '#/270',
+'miscellaneousmathematicalsymbolsa' => '#/352',
+'miscellaneousmathematicalsymbolsb' => '#/353',
+'miscellaneoussymbols' => '#/290',
+'miscellaneoussymbolsandarrows' => '#/270',
+'miscellaneoussymbolsandpictographs' => '#/339',
+'miscellaneoustechnical' => '#/321',
+'miscmathsymbolsa' => '#/352',
+'miscmathsymbolsb' => '#/353',
+'miscpictographs' => '#/339',
+'miscsymbols' => '#/290',
+'misctechnical' => '#/321',
+'mlym' => 'Scx/Mlym',
'mn' => 'Gc/Mn',
-'modi' => '#/582',
+'modi' => '#/653',
'modifierletter' => 'Gc/Lm',
-'modifierletters' => '#/328',
+'modifierletters' => '#/340',
'modifiersymbol' => 'Gc/Sk',
-'modifiertoneletters' => '#/356',
-'mong' => 'Sc/Mong',
-'mongolian' => 'Sc/Mong',
-'mro' => '#/539',
-'mroo' => '#/539',
-'mtei' => '#/583',
-'mult' => 'Sc/Mult',
-'multani' => 'Sc/Mult',
-'music' => '#/131',
-'musicalsymbols' => '#/131',
-'myanmar' => '#/584',
-'myanmarexta' => '#/282',
-'myanmarextb' => '#/283',
-'myanmarextendeda' => '#/282',
-'myanmarextendedb' => '#/283',
-'mymr' => '#/584',
+'modifiertoneletters' => '#/370',
+'mong' => 'Scx/Mong',
+'mongolian' => 'Scx/Mong',
+'mongoliansup' => '#/311',
+'mongoliansupplement' => '#/311',
+'mro' => '#/559',
+'mroo' => '#/559',
+'mtei' => '#/604',
+'mult' => 'Scx/Mult',
+'multani' => 'Scx/Mult',
+'music' => '#/136',
+'musicalsymbols' => '#/136',
+'myanmar' => 'Scx/Mymr',
+'myanmarexta' => '#/291',
+'myanmarextb' => '#/292',
+'myanmarextendeda' => '#/291',
+'myanmarextendedb' => '#/292',
+'mymr' => 'Scx/Mymr',
'n' => 'Gc/N',
-'nabataean' => '#/585',
-'narb' => '#/329',
+'nabataean' => '#/606',
+'narb' => '#/341',
'nb' => 'Blk/NB',
-'nbat' => '#/585',
+'nbat' => '#/606',
'nchar' => 'Perl/_PerlNch',
'nchar=f' => '!Perl/_PerlNch',
'nchar=false' => '!Perl/_PerlNch',
@@ -5486,6 +5673,7 @@
'nchar=y' => 'Perl/_PerlNch',
'nchar=yes' => 'Perl/_PerlNch',
'nd' => 'Gc/Nd',
+'newa' => '#/607',
'newtailue' => 'Sc/Talu',
'nfcqc=m' => 'NFCQC/M',
'nfcqc=maybe' => 'NFCQC/M',
@@ -5507,8 +5695,8 @@
'nfkdqc=no' => 'NFKDQC/N',
'nfkdqc=y' => 'NFKDQC/Y',
'nfkdqc=yes' => 'NFKDQC/Y',
-'nko' => '#/540',
-'nkoo' => '#/540',
+'nko' => '#/560',
+'nkoo' => '#/560',
'nl' => 'Gc/Nl',
'no' => 'Gc/No',
'noblock' => 'Blk/NB',
@@ -5522,28 +5710,30 @@
'nt=nu' => 'Nt/Nu',
'nt=numeric' => 'Nt/Nu',
'number' => 'Gc/N',
-'numberforms' => '#/284',
+'numberforms' => '#/293',
'nv=nan' => 'Nt/None',
-'ocr' => '#/111',
-'ogam' => '#/586',
-'ogham' => '#/586',
-'olchiki' => '#/184',
-'olck' => '#/184',
-'oldhungarian' => '#/566',
-'olditalic' => '#/567',
-'oldnortharabian' => '#/329',
-'oldpermic' => '#/590',
-'oldpersian' => '#/619',
-'oldsoutharabian' => '#/330',
-'oldturkic' => '#/587',
+'ocr' => '#/114',
+'ogam' => '#/608',
+'ogham' => '#/608',
+'olchiki' => '#/192',
+'olck' => '#/192',
+'oldhungarian' => '#/586',
+'olditalic' => '#/587',
+'oldnortharabian' => '#/341',
+'oldpermic' => '#/654',
+'oldpersian' => '#/643',
+'oldsoutharabian' => '#/342',
+'oldturkic' => '#/609',
'openpunctuation' => 'Gc/Ps',
-'opticalcharacterrecognition' => '#/111',
-'oriya' => 'Sc/Orya',
-'orkh' => '#/587',
-'ornamentaldingbats' => '#/350',
-'orya' => 'Sc/Orya',
-'osma' => '#/588',
-'osmanya' => '#/588',
+'opticalcharacterrecognition' => '#/114',
+'oriya' => 'Scx/Orya',
+'orkh' => '#/609',
+'ornamentaldingbats' => '#/364',
+'orya' => 'Scx/Orya',
+'osage' => '#/610',
+'osge' => '#/610',
+'osma' => '#/611',
+'osmanya' => '#/611',
'other' => 'Gc/C',
'otherletter' => 'Gc/Lo',
'othernumber' => 'Gc/No',
@@ -5551,9 +5741,9 @@
'othersymbol' => 'Gc/So',
'p' => 'Gc/P',
'pahawhhmong' => 'Sc/Hmng',
-'palm' => '#/246',
-'palmyrene' => '#/246',
-'paragraphseparator' => '#/373',
+'palm' => '#/255',
+'palmyrene' => '#/255',
+'paragraphseparator' => '#/387',
'patsyn' => 'PatSyn/Y',
'patsyn=f' => '!PatSyn/Y',
'patsyn=false' => '!PatSyn/Y',
@@ -5574,30 +5764,39 @@
'patws=true' => 'Perl/_PerlPat',
'patws=y' => 'Perl/_PerlPat',
'patws=yes' => 'Perl/_PerlPat',
-'pauc' => '#/589',
-'paucinhau' => '#/589',
-'pc' => 'WB/EX',
+'pauc' => '#/612',
+'paucinhau' => '#/612',
+'pc' => 'Gc/Pc',
+'pcm' => 'PCM/Y',
+'pcm=f' => '!PCM/Y',
+'pcm=false' => '!PCM/Y',
+'pcm=n' => '!PCM/Y',
+'pcm=no' => '!PCM/Y',
+'pcm=t' => 'PCM/Y',
+'pcm=true' => 'PCM/Y',
+'pcm=y' => 'PCM/Y',
+'pcm=yes' => 'PCM/Y',
'pd' => 'Gc/Pd',
'pe' => 'Gc/Pe',
'perlspace' => '#/3',
'perlword' => 'Perl/PerlWord',
-'perm' => '#/590',
+'perm' => '#/654',
'pf' => 'Gc/Pf',
-'phag' => '#/591',
-'phagspa' => '#/591',
-'phaistos' => '#/220',
-'phaistosdisc' => '#/220',
-'phli' => '#/592',
-'phlp' => '#/593',
-'phnx' => '#/594',
-'phoenician' => '#/594',
-'phoneticext' => '#/286',
-'phoneticextensions' => '#/286',
-'phoneticextensionssupplement' => '#/317',
-'phoneticextsup' => '#/317',
+'phag' => '#/655',
+'phagspa' => '#/655',
+'phaistos' => '#/228',
+'phaistosdisc' => '#/228',
+'phli' => '#/615',
+'phlp' => 'Scx/Phlp',
+'phnx' => '#/617',
+'phoenician' => '#/617',
+'phoneticext' => '#/295',
+'phoneticextensions' => '#/295',
+'phoneticextensionssupplement' => '#/329',
+'phoneticextsup' => '#/329',
'pi' => 'Gc/Pi',
-'playingcards' => '#/302',
-'plrd' => '#/581',
+'playingcards' => '#/313',
+'plrd' => '#/602',
'po' => 'Gc/Po',
'posixalnum' => '#/5',
'posixalpha' => '#/6',
@@ -5612,17 +5811,18 @@
'posixupper' => '#/13',
'posixword' => 'Perl/PerlWord',
'posixxdigit' => '#/60',
+'prependedconcatenationmark' => 'PCM/Y',
'print' => 'Perl/Print',
-'privateuse' => '#/371',
-'privateusearea' => '#/112',
-'prti' => '#/595',
+'privateuse' => '#/385',
+'privateusearea' => '#/115',
+'prti' => '#/618',
'ps' => 'Gc/Ps',
-'psalterpahlavi' => '#/593',
-'pua' => '#/112',
+'psalterpahlavi' => 'Scx/Phlp',
+'pua' => '#/115',
'punct' => 'Gc/P',
'punctuation' => 'Gc/P',
-'qaac' => '#/558',
-'qaai' => 'Sc/Zinh',
+'qaac' => 'Scx/Copt',
+'qaai' => 'Scx/Zinh',
'qmark' => 'QMark/Y',
'qmark=f' => '!QMark/Y',
'qmark=false' => '!QMark/Y',
@@ -5633,27 +5833,27 @@
'qmark=y' => 'QMark/Y',
'qmark=yes' => 'QMark/Y',
'quotationmark' => 'QMark/Y',
-'radical' => '#/86',
-'radical=f' => '#/!86',
-'radical=false' => '#/!86',
-'radical=n' => '#/!86',
-'radical=no' => '#/!86',
-'radical=t' => '#/86',
-'radical=true' => '#/86',
-'radical=y' => '#/86',
-'radical=yes' => '#/86',
-'rejang' => '#/596',
-'rjng' => '#/596',
-'rumi' => '#/120',
-'ruminumeralsymbols' => '#/120',
-'runic' => '#/597',
-'runr' => '#/597',
+'radical' => '#/89',
+'radical=f' => '#/!89',
+'radical=false' => '#/!89',
+'radical=n' => '#/!89',
+'radical=no' => '#/!89',
+'radical=t' => '#/89',
+'radical=true' => '#/89',
+'radical=y' => '#/89',
+'radical=yes' => '#/89',
+'rejang' => '#/619',
+'rjng' => '#/619',
+'rumi' => '#/124',
+'ruminumeralsymbols' => '#/124',
+'runic' => '#/620',
+'runr' => '#/620',
's' => 'Gc/S',
-'samaritan' => '#/598',
-'samr' => '#/598',
-'sarb' => '#/330',
-'saur' => '#/599',
-'saurashtra' => '#/599',
+'samaritan' => '#/621',
+'samr' => '#/621',
+'sarb' => '#/342',
+'saur' => '#/622',
+'saurashtra' => '#/622',
'sb=at' => 'SB/AT',
'sb=aterm' => 'SB/AT',
'sb=cl' => 'SB/CL',
@@ -5664,7 +5864,7 @@
'sb=fo' => 'SB/FO',
'sb=format' => 'SB/FO',
'sb=le' => 'SB/LE',
-'sb=lf' => '#/65',
+'sb=lf' => '#/66',
'sb=lo' => 'SB/LO',
'sb=lower' => 'SB/LO',
'sb=nu' => 'SB/NU',
@@ -5673,8 +5873,8 @@
'sb=other' => 'SB/XX',
'sb=sc' => 'SB/SC',
'sb=scontinue' => 'SB/SC',
-'sb=se' => '#/87',
-'sb=sep' => '#/87',
+'sb=se' => '#/90',
+'sb=sep' => '#/90',
'sb=sp' => 'SB/Sp',
'sb=st' => 'SB/ST',
'sb=sterm' => 'SB/ST',
@@ -5682,72 +5882,76 @@
'sb=upper' => 'SB/UP',
'sb=xx' => 'SB/XX',
'sc' => 'Gc/Sc',
-'sc=aghb' => '#/542',
-'sc=ahom' => '#/543',
-'sc=anatolianhieroglyphs' => '#/565',
+'sc=adlam' => '#/562',
+'sc=adlm' => '#/562',
+'sc=aghb' => '#/563',
+'sc=ahom' => '#/564',
+'sc=anatolianhieroglyphs' => '#/585',
'sc=arab' => 'Sc/Arab',
'sc=arabic' => 'Sc/Arab',
'sc=armenian' => 'Sc/Armn',
-'sc=armi' => '#/544',
+'sc=armi' => '#/565',
'sc=armn' => 'Sc/Armn',
-'sc=avestan' => '#/545',
-'sc=avst' => '#/545',
-'sc=bali' => '#/546',
-'sc=balinese' => '#/546',
-'sc=bamu' => '#/547',
-'sc=bamum' => '#/547',
-'sc=bass' => '#/548',
-'sc=bassavah' => '#/548',
-'sc=batak' => '#/549',
-'sc=batk' => '#/549',
+'sc=avestan' => '#/566',
+'sc=avst' => '#/566',
+'sc=bali' => '#/567',
+'sc=balinese' => '#/567',
+'sc=bamu' => '#/568',
+'sc=bamum' => '#/568',
+'sc=bass' => '#/569',
+'sc=bassavah' => '#/569',
+'sc=batak' => '#/570',
+'sc=batk' => '#/570',
'sc=beng' => 'Sc/Beng',
'sc=bengali' => 'Sc/Beng',
-'sc=bopo' => '#/550',
-'sc=bopomofo' => '#/550',
-'sc=brah' => '#/551',
-'sc=brahmi' => '#/551',
-'sc=brai' => '#/166',
-'sc=braille' => '#/166',
-'sc=bugi' => '#/552',
-'sc=buginese' => '#/552',
-'sc=buhd' => '#/553',
-'sc=buhid' => '#/553',
-'sc=cakm' => '#/554',
-'sc=canadianaboriginal' => '#/555',
-'sc=cans' => '#/555',
-'sc=cari' => '#/556',
-'sc=carian' => '#/556',
-'sc=caucasianalbanian' => '#/542',
-'sc=chakma' => '#/554',
+'sc=bhaiksuki' => 'Sc/Bhks',
+'sc=bhks' => 'Sc/Bhks',
+'sc=bopo' => '#/571',
+'sc=bopomofo' => '#/571',
+'sc=brah' => '#/572',
+'sc=brahmi' => '#/572',
+'sc=brai' => '#/173',
+'sc=braille' => '#/173',
+'sc=bugi' => '#/573',
+'sc=buginese' => '#/573',
+'sc=buhd' => '#/574',
+'sc=buhid' => '#/574',
+'sc=cakm' => '#/575',
+'sc=canadianaboriginal' => '#/576',
+'sc=cans' => '#/576',
+'sc=cari' => '#/577',
+'sc=carian' => '#/577',
+'sc=caucasianalbanian' => '#/563',
+'sc=chakma' => '#/575',
'sc=cham' => 'Sc/Cham',
-'sc=cher' => '#/557',
-'sc=cherokee' => '#/557',
+'sc=cher' => '#/578',
+'sc=cherokee' => '#/578',
'sc=common' => 'Sc/Zyyy',
-'sc=copt' => '#/558',
-'sc=coptic' => '#/558',
+'sc=copt' => '#/579',
+'sc=coptic' => '#/579',
'sc=cprt' => 'Sc/Cprt',
'sc=cuneiform' => 'Sc/Xsux',
'sc=cypriot' => 'Sc/Cprt',
'sc=cyrillic' => 'Sc/Cyrl',
'sc=cyrl' => 'Sc/Cyrl',
-'sc=deseret' => '#/172',
+'sc=deseret' => '#/179',
'sc=deva' => 'Sc/Deva',
'sc=devanagari' => 'Sc/Deva',
-'sc=dsrt' => '#/172',
+'sc=dsrt' => '#/179',
'sc=dupl' => 'Sc/Dupl',
'sc=duployan' => 'Sc/Dupl',
-'sc=egyp' => '#/559',
-'sc=egyptianhieroglyphs' => '#/559',
-'sc=elba' => '#/560',
-'sc=elbasan' => '#/560',
+'sc=egyp' => '#/580',
+'sc=egyptianhieroglyphs' => '#/580',
+'sc=elba' => '#/581',
+'sc=elbasan' => '#/581',
'sc=ethi' => 'Sc/Ethi',
'sc=ethiopic' => 'Sc/Ethi',
'sc=geor' => 'Sc/Geor',
'sc=georgian' => 'Sc/Geor',
-'sc=glag' => '#/561',
-'sc=glagolitic' => '#/561',
-'sc=goth' => '#/562',
-'sc=gothic' => '#/562',
+'sc=glag' => 'Sc/Glag',
+'sc=glagolitic' => 'Sc/Glag',
+'sc=goth' => '#/582',
+'sc=gothic' => '#/582',
'sc=gran' => 'Sc/Gran',
'sc=grantha' => 'Sc/Gran',
'sc=greek' => 'Sc/Grek',
@@ -5760,229 +5964,240 @@
'sc=hang' => 'Sc/Hang',
'sc=hangul' => 'Sc/Hang',
'sc=hani' => 'Sc/Han',
-'sc=hano' => '#/563',
-'sc=hanunoo' => '#/563',
-'sc=hatr' => '#/564',
-'sc=hatran' => '#/564',
+'sc=hano' => '#/583',
+'sc=hanunoo' => '#/583',
+'sc=hatr' => '#/584',
+'sc=hatran' => '#/584',
'sc=hebr' => 'Sc/Hebr',
'sc=hebrew' => 'Sc/Hebr',
'sc=hira' => 'Sc/Hira',
'sc=hiragana' => 'Sc/Hira',
-'sc=hluw' => '#/565',
+'sc=hluw' => '#/585',
'sc=hmng' => 'Sc/Hmng',
-'sc=hung' => '#/566',
-'sc=imperialaramaic' => '#/544',
+'sc=hung' => '#/586',
+'sc=imperialaramaic' => '#/565',
'sc=inherited' => 'Sc/Zinh',
-'sc=inscriptionalpahlavi' => '#/592',
-'sc=inscriptionalparthian' => '#/595',
-'sc=ital' => '#/567',
-'sc=java' => '#/568',
-'sc=javanese' => '#/568',
-'sc=kaithi' => '#/571',
-'sc=kali' => '#/569',
+'sc=inscriptionalpahlavi' => '#/615',
+'sc=inscriptionalparthian' => '#/618',
+'sc=ital' => '#/587',
+'sc=java' => '#/588',
+'sc=javanese' => '#/588',
+'sc=kaithi' => '#/591',
+'sc=kali' => '#/589',
'sc=kana' => 'Sc/Kana',
'sc=kannada' => 'Sc/Knda',
'sc=katakana' => 'Sc/Kana',
-'sc=kayahli' => '#/569',
+'sc=kayahli' => '#/589',
'sc=khar' => 'Sc/Khar',
'sc=kharoshthi' => 'Sc/Khar',
'sc=khmer' => 'Sc/Khmr',
'sc=khmr' => 'Sc/Khmr',
-'sc=khoj' => '#/570',
-'sc=khojki' => '#/570',
-'sc=khudawadi' => '#/603',
+'sc=khoj' => '#/590',
+'sc=khojki' => '#/590',
+'sc=khudawadi' => '#/626',
'sc=knda' => 'Sc/Knda',
-'sc=kthi' => '#/571',
+'sc=kthi' => '#/591',
'sc=lana' => 'Sc/Lana',
'sc=lao' => 'Sc/Lao',
'sc=laoo' => 'Sc/Lao',
'sc=latin' => 'Sc/Latn',
'sc=latn' => 'Sc/Latn',
-'sc=lepc' => '#/572',
-'sc=lepcha' => '#/572',
+'sc=lepc' => '#/592',
+'sc=lepcha' => '#/592',
'sc=limb' => 'Sc/Limb',
'sc=limbu' => 'Sc/Limb',
-'sc=lina' => '#/573',
+'sc=lina' => '#/593',
'sc=linb' => 'Sc/Linb',
-'sc=lineara' => '#/573',
+'sc=lineara' => '#/593',
'sc=linearb' => 'Sc/Linb',
-'sc=lisu' => '#/117',
-'sc=lyci' => '#/574',
-'sc=lycian' => '#/574',
-'sc=lydi' => '#/575',
-'sc=lydian' => '#/575',
-'sc=mahajani' => '#/576',
-'sc=mahj' => '#/576',
+'sc=lisu' => '#/120',
+'sc=lyci' => '#/594',
+'sc=lycian' => '#/594',
+'sc=lydi' => '#/595',
+'sc=lydian' => '#/595',
+'sc=mahajani' => '#/596',
+'sc=mahj' => '#/596',
'sc=malayalam' => 'Sc/Mlym',
-'sc=mand' => '#/577',
-'sc=mandaic' => '#/577',
-'sc=mani' => '#/578',
-'sc=manichaean' => '#/578',
-'sc=meeteimayek' => '#/583',
-'sc=mend' => '#/579',
-'sc=mendekikakui' => '#/579',
-'sc=merc' => '#/580',
-'sc=mero' => '#/355',
-'sc=meroiticcursive' => '#/580',
-'sc=meroitichieroglyphs' => '#/355',
-'sc=miao' => '#/581',
+'sc=mand' => '#/597',
+'sc=mandaic' => '#/597',
+'sc=mani' => '#/598',
+'sc=manichaean' => '#/598',
+'sc=marc' => '#/599',
+'sc=marchen' => '#/599',
+'sc=meeteimayek' => '#/604',
+'sc=mend' => '#/600',
+'sc=mendekikakui' => '#/600',
+'sc=merc' => '#/601',
+'sc=mero' => '#/369',
+'sc=meroiticcursive' => '#/601',
+'sc=meroitichieroglyphs' => '#/369',
+'sc=miao' => '#/602',
'sc=mlym' => 'Sc/Mlym',
-'sc=modi' => '#/582',
+'sc=modi' => '#/603',
'sc=mong' => 'Sc/Mong',
'sc=mongolian' => 'Sc/Mong',
-'sc=mro' => '#/539',
-'sc=mroo' => '#/539',
-'sc=mtei' => '#/583',
+'sc=mro' => '#/559',
+'sc=mroo' => '#/559',
+'sc=mtei' => '#/604',
'sc=mult' => 'Sc/Mult',
'sc=multani' => 'Sc/Mult',
-'sc=myanmar' => '#/584',
-'sc=mymr' => '#/584',
-'sc=nabataean' => '#/585',
-'sc=narb' => '#/329',
-'sc=nbat' => '#/585',
+'sc=myanmar' => '#/605',
+'sc=mymr' => '#/605',
+'sc=nabataean' => '#/606',
+'sc=narb' => '#/341',
+'sc=nbat' => '#/606',
+'sc=newa' => '#/607',
'sc=newtailue' => 'Sc/Talu',
-'sc=nko' => '#/540',
-'sc=nkoo' => '#/540',
-'sc=ogam' => '#/586',
-'sc=ogham' => '#/586',
-'sc=olchiki' => '#/184',
-'sc=olck' => '#/184',
-'sc=oldhungarian' => '#/566',
-'sc=olditalic' => '#/567',
-'sc=oldnortharabian' => '#/329',
-'sc=oldpermic' => '#/590',
-'sc=oldpersian' => '#/619',
-'sc=oldsoutharabian' => '#/330',
-'sc=oldturkic' => '#/587',
+'sc=nko' => '#/560',
+'sc=nkoo' => '#/560',
+'sc=ogam' => '#/608',
+'sc=ogham' => '#/608',
+'sc=olchiki' => '#/192',
+'sc=olck' => '#/192',
+'sc=oldhungarian' => '#/586',
+'sc=olditalic' => '#/587',
+'sc=oldnortharabian' => '#/341',
+'sc=oldpermic' => '#/613',
+'sc=oldpersian' => '#/643',
+'sc=oldsoutharabian' => '#/342',
+'sc=oldturkic' => '#/609',
'sc=oriya' => 'Sc/Orya',
-'sc=orkh' => '#/587',
+'sc=orkh' => '#/609',
'sc=orya' => 'Sc/Orya',
-'sc=osma' => '#/588',
-'sc=osmanya' => '#/588',
+'sc=osage' => '#/610',
+'sc=osge' => '#/610',
+'sc=osma' => '#/611',
+'sc=osmanya' => '#/611',
'sc=pahawhhmong' => 'Sc/Hmng',
-'sc=palm' => '#/246',
-'sc=palmyrene' => '#/246',
-'sc=pauc' => '#/589',
-'sc=paucinhau' => '#/589',
-'sc=perm' => '#/590',
-'sc=phag' => '#/591',
-'sc=phagspa' => '#/591',
-'sc=phli' => '#/592',
-'sc=phlp' => '#/593',
-'sc=phnx' => '#/594',
-'sc=phoenician' => '#/594',
-'sc=plrd' => '#/581',
-'sc=prti' => '#/595',
-'sc=psalterpahlavi' => '#/593',
-'sc=qaac' => '#/558',
+'sc=palm' => '#/255',
+'sc=palmyrene' => '#/255',
+'sc=pauc' => '#/612',
+'sc=paucinhau' => '#/612',
+'sc=perm' => '#/613',
+'sc=phag' => '#/614',
+'sc=phagspa' => '#/614',
+'sc=phli' => '#/615',
+'sc=phlp' => '#/616',
+'sc=phnx' => '#/617',
+'sc=phoenician' => '#/617',
+'sc=plrd' => '#/602',
+'sc=prti' => '#/618',
+'sc=psalterpahlavi' => '#/616',
+'sc=qaac' => '#/579',
'sc=qaai' => 'Sc/Zinh',
-'sc=rejang' => '#/596',
-'sc=rjng' => '#/596',
-'sc=runic' => '#/597',
-'sc=runr' => '#/597',
-'sc=samaritan' => '#/598',
-'sc=samr' => '#/598',
-'sc=sarb' => '#/330',
-'sc=saur' => '#/599',
-'sc=saurashtra' => '#/599',
-'sc=sgnw' => '#/600',
-'sc=sharada' => '#/601',
-'sc=shavian' => '#/188',
-'sc=shaw' => '#/188',
-'sc=shrd' => '#/601',
-'sc=sidd' => '#/602',
-'sc=siddham' => '#/602',
-'sc=signwriting' => '#/600',
-'sc=sind' => '#/603',
+'sc=rejang' => '#/619',
+'sc=rjng' => '#/619',
+'sc=runic' => '#/620',
+'sc=runr' => '#/620',
+'sc=samaritan' => '#/621',
+'sc=samr' => '#/621',
+'sc=sarb' => '#/342',
+'sc=saur' => '#/622',
+'sc=saurashtra' => '#/622',
+'sc=sgnw' => '#/623',
+'sc=sharada' => '#/624',
+'sc=shavian' => '#/196',
+'sc=shaw' => '#/196',
+'sc=shrd' => '#/624',
+'sc=sidd' => '#/625',
+'sc=siddham' => '#/625',
+'sc=signwriting' => '#/623',
+'sc=sind' => '#/626',
'sc=sinh' => 'Sc/Sinh',
'sc=sinhala' => 'Sc/Sinh',
-'sc=sora' => '#/604',
-'sc=sorasompeng' => '#/604',
-'sc=sund' => '#/605',
-'sc=sundanese' => '#/605',
-'sc=sylo' => '#/606',
-'sc=sylotinagri' => '#/606',
-'sc=syrc' => '#/607',
-'sc=syriac' => '#/607',
-'sc=tagalog' => '#/613',
-'sc=tagb' => '#/608',
-'sc=tagbanwa' => '#/608',
-'sc=taile' => '#/610',
+'sc=sora' => '#/627',
+'sc=sorasompeng' => '#/627',
+'sc=sund' => '#/628',
+'sc=sundanese' => '#/628',
+'sc=sylo' => '#/629',
+'sc=sylotinagri' => '#/629',
+'sc=syrc' => '#/630',
+'sc=syriac' => '#/630',
+'sc=tagalog' => '#/637',
+'sc=tagb' => '#/631',
+'sc=tagbanwa' => '#/631',
+'sc=taile' => '#/633',
'sc=taitham' => 'Sc/Lana',
-'sc=taiviet' => '#/611',
-'sc=takr' => '#/609',
-'sc=takri' => '#/609',
-'sc=tale' => '#/610',
+'sc=taiviet' => '#/635',
+'sc=takr' => '#/632',
+'sc=takri' => '#/632',
+'sc=tale' => '#/633',
'sc=talu' => 'Sc/Talu',
'sc=tamil' => 'Sc/Taml',
'sc=taml' => 'Sc/Taml',
-'sc=tavt' => '#/611',
+'sc=tang' => '#/634',
+'sc=tangut' => '#/634',
+'sc=tavt' => '#/635',
'sc=telu' => 'Sc/Telu',
'sc=telugu' => 'Sc/Telu',
-'sc=tfng' => '#/612',
-'sc=tglg' => '#/613',
-'sc=thaa' => '#/614',
-'sc=thaana' => '#/614',
-'sc=thai' => '#/615',
+'sc=tfng' => '#/636',
+'sc=tglg' => '#/637',
+'sc=thaa' => '#/638',
+'sc=thaana' => '#/638',
+'sc=thai' => '#/639',
'sc=tibetan' => 'Sc/Tibt',
'sc=tibt' => 'Sc/Tibt',
-'sc=tifinagh' => '#/612',
-'sc=tirh' => '#/616',
-'sc=tirhuta' => '#/616',
-'sc=ugar' => '#/617',
-'sc=ugaritic' => '#/617',
+'sc=tifinagh' => '#/636',
+'sc=tirh' => '#/640',
+'sc=tirhuta' => '#/640',
+'sc=ugar' => '#/641',
+'sc=ugaritic' => '#/641',
'sc=unknown' => 'Sc/Zzzz',
-'sc=vai' => '#/541',
-'sc=vaii' => '#/541',
-'sc=wara' => '#/618',
-'sc=warangciti' => '#/618',
-'sc=xpeo' => '#/619',
+'sc=vai' => '#/561',
+'sc=vaii' => '#/561',
+'sc=wara' => '#/642',
+'sc=warangciti' => '#/642',
+'sc=xpeo' => '#/643',
'sc=xsux' => 'Sc/Xsux',
-'sc=yi' => '#/538',
-'sc=yiii' => '#/538',
+'sc=yi' => '#/558',
+'sc=yiii' => '#/558',
'sc=zinh' => 'Sc/Zinh',
'sc=zyyy' => 'Sc/Zyyy',
'sc=zzzz' => 'Sc/Zzzz',
-'scx=aghb' => '#/542',
-'scx=ahom' => '#/543',
-'scx=anatolianhieroglyphs' => '#/565',
+'scx=adlam' => 'Scx/Adlm',
+'scx=adlm' => 'Scx/Adlm',
+'scx=aghb' => '#/563',
+'scx=ahom' => '#/564',
+'scx=anatolianhieroglyphs' => '#/585',
'scx=arab' => 'Scx/Arab',
'scx=arabic' => 'Scx/Arab',
'scx=armenian' => 'Scx/Armn',
-'scx=armi' => '#/544',
+'scx=armi' => '#/565',
'scx=armn' => 'Scx/Armn',
-'scx=avestan' => '#/545',
-'scx=avst' => '#/545',
-'scx=bali' => '#/546',
-'scx=balinese' => '#/546',
-'scx=bamu' => '#/547',
-'scx=bamum' => '#/547',
-'scx=bass' => '#/548',
-'scx=bassavah' => '#/548',
-'scx=batak' => '#/549',
-'scx=batk' => '#/549',
+'scx=avestan' => '#/566',
+'scx=avst' => '#/566',
+'scx=bali' => '#/567',
+'scx=balinese' => '#/567',
+'scx=bamu' => '#/568',
+'scx=bamum' => '#/568',
+'scx=bass' => '#/569',
+'scx=bassavah' => '#/569',
+'scx=batak' => '#/570',
+'scx=batk' => '#/570',
'scx=beng' => 'Scx/Beng',
'scx=bengali' => 'Scx/Beng',
+'scx=bhaiksuki' => 'Sc/Bhks',
+'scx=bhks' => 'Sc/Bhks',
'scx=bopo' => 'Scx/Bopo',
'scx=bopomofo' => 'Scx/Bopo',
-'scx=brah' => '#/551',
-'scx=brahmi' => '#/551',
-'scx=brai' => '#/166',
-'scx=braille' => '#/166',
-'scx=bugi' => '#/620',
-'scx=buginese' => '#/620',
-'scx=buhd' => '#/621',
-'scx=buhid' => '#/621',
+'scx=brah' => '#/572',
+'scx=brahmi' => '#/572',
+'scx=brai' => '#/173',
+'scx=braille' => '#/173',
+'scx=bugi' => '#/644',
+'scx=buginese' => '#/644',
+'scx=buhd' => '#/645',
+'scx=buhid' => '#/645',
'scx=cakm' => 'Scx/Cakm',
-'scx=canadianaboriginal' => '#/555',
-'scx=cans' => '#/555',
-'scx=cari' => '#/556',
-'scx=carian' => '#/556',
-'scx=caucasianalbanian' => '#/542',
+'scx=canadianaboriginal' => '#/576',
+'scx=cans' => '#/576',
+'scx=cari' => '#/577',
+'scx=carian' => '#/577',
+'scx=caucasianalbanian' => '#/563',
'scx=chakma' => 'Scx/Cakm',
'scx=cham' => 'Sc/Cham',
-'scx=cher' => '#/557',
-'scx=cherokee' => '#/557',
+'scx=cher' => '#/578',
+'scx=cherokee' => '#/578',
'scx=common' => 'Scx/Zyyy',
'scx=copt' => 'Scx/Copt',
'scx=coptic' => 'Scx/Copt',
@@ -5991,24 +6206,24 @@
'scx=cypriot' => 'Scx/Cprt',
'scx=cyrillic' => 'Scx/Cyrl',
'scx=cyrl' => 'Scx/Cyrl',
-'scx=deseret' => '#/172',
+'scx=deseret' => '#/179',
'scx=deva' => 'Scx/Deva',
'scx=devanagari' => 'Scx/Deva',
-'scx=dsrt' => '#/172',
+'scx=dsrt' => '#/179',
'scx=dupl' => 'Scx/Dupl',
'scx=duployan' => 'Scx/Dupl',
-'scx=egyp' => '#/559',
-'scx=egyptianhieroglyphs' => '#/559',
-'scx=elba' => '#/560',
-'scx=elbasan' => '#/560',
+'scx=egyp' => '#/580',
+'scx=egyptianhieroglyphs' => '#/580',
+'scx=elba' => '#/581',
+'scx=elbasan' => '#/581',
'scx=ethi' => 'Sc/Ethi',
'scx=ethiopic' => 'Sc/Ethi',
'scx=geor' => 'Scx/Geor',
'scx=georgian' => 'Scx/Geor',
'scx=glag' => 'Scx/Glag',
'scx=glagolitic' => 'Scx/Glag',
-'scx=goth' => '#/562',
-'scx=gothic' => '#/562',
+'scx=goth' => '#/582',
+'scx=gothic' => '#/582',
'scx=gran' => 'Scx/Gran',
'scx=grantha' => 'Scx/Gran',
'scx=greek' => 'Scx/Grek',
@@ -6021,183 +6236,190 @@
'scx=hang' => 'Scx/Hang',
'scx=hangul' => 'Scx/Hang',
'scx=hani' => 'Scx/Han',
-'scx=hano' => '#/622',
-'scx=hanunoo' => '#/622',
-'scx=hatr' => '#/564',
-'scx=hatran' => '#/564',
+'scx=hano' => '#/646',
+'scx=hanunoo' => '#/646',
+'scx=hatr' => '#/584',
+'scx=hatran' => '#/584',
'scx=hebr' => 'Sc/Hebr',
'scx=hebrew' => 'Sc/Hebr',
'scx=hira' => 'Scx/Hira',
'scx=hiragana' => 'Scx/Hira',
-'scx=hluw' => '#/565',
+'scx=hluw' => '#/585',
'scx=hmng' => 'Sc/Hmng',
-'scx=hung' => '#/566',
-'scx=imperialaramaic' => '#/544',
+'scx=hung' => '#/586',
+'scx=imperialaramaic' => '#/565',
'scx=inherited' => 'Scx/Zinh',
-'scx=inscriptionalpahlavi' => '#/592',
-'scx=inscriptionalparthian' => '#/595',
-'scx=ital' => '#/567',
-'scx=java' => '#/623',
-'scx=javanese' => '#/623',
-'scx=kaithi' => '#/625',
-'scx=kali' => '#/178',
+'scx=inscriptionalpahlavi' => '#/615',
+'scx=inscriptionalparthian' => '#/618',
+'scx=ital' => '#/587',
+'scx=java' => '#/647',
+'scx=javanese' => '#/647',
+'scx=kaithi' => '#/649',
+'scx=kali' => '#/185',
'scx=kana' => 'Scx/Kana',
'scx=kannada' => 'Scx/Knda',
'scx=katakana' => 'Scx/Kana',
-'scx=kayahli' => '#/178',
+'scx=kayahli' => '#/185',
'scx=khar' => 'Sc/Khar',
'scx=kharoshthi' => 'Sc/Khar',
'scx=khmer' => 'Sc/Khmr',
'scx=khmr' => 'Sc/Khmr',
-'scx=khoj' => '#/624',
-'scx=khojki' => '#/624',
+'scx=khoj' => '#/648',
+'scx=khojki' => '#/648',
'scx=khudawadi' => 'Scx/Sind',
'scx=knda' => 'Scx/Knda',
-'scx=kthi' => '#/625',
+'scx=kthi' => '#/649',
'scx=lana' => 'Sc/Lana',
'scx=lao' => 'Sc/Lao',
'scx=laoo' => 'Sc/Lao',
'scx=latin' => 'Scx/Latn',
'scx=latn' => 'Scx/Latn',
-'scx=lepc' => '#/572',
-'scx=lepcha' => '#/572',
+'scx=lepc' => '#/592',
+'scx=lepcha' => '#/592',
'scx=limb' => 'Scx/Limb',
'scx=limbu' => 'Scx/Limb',
-'scx=lina' => '#/573',
+'scx=lina' => 'Scx/Lina',
'scx=linb' => 'Scx/Linb',
-'scx=lineara' => '#/573',
+'scx=lineara' => 'Scx/Lina',
'scx=linearb' => 'Scx/Linb',
-'scx=lisu' => '#/117',
-'scx=lyci' => '#/574',
-'scx=lycian' => '#/574',
-'scx=lydi' => '#/575',
-'scx=lydian' => '#/575',
-'scx=mahajani' => '#/626',
-'scx=mahj' => '#/626',
+'scx=lisu' => '#/120',
+'scx=lyci' => '#/594',
+'scx=lycian' => '#/594',
+'scx=lydi' => '#/595',
+'scx=lydian' => '#/595',
+'scx=mahajani' => '#/650',
+'scx=mahj' => '#/650',
'scx=malayalam' => 'Scx/Mlym',
-'scx=mand' => '#/627',
-'scx=mandaic' => '#/627',
-'scx=mani' => '#/628',
-'scx=manichaean' => '#/628',
-'scx=meeteimayek' => '#/583',
-'scx=mend' => '#/579',
-'scx=mendekikakui' => '#/579',
-'scx=merc' => '#/580',
-'scx=mero' => '#/355',
-'scx=meroiticcursive' => '#/580',
-'scx=meroitichieroglyphs' => '#/355',
-'scx=miao' => '#/581',
+'scx=mand' => '#/651',
+'scx=mandaic' => '#/651',
+'scx=mani' => '#/652',
+'scx=manichaean' => '#/652',
+'scx=marc' => '#/599',
+'scx=marchen' => '#/599',
+'scx=meeteimayek' => '#/604',
+'scx=mend' => '#/600',
+'scx=mendekikakui' => '#/600',
+'scx=merc' => '#/601',
+'scx=mero' => '#/369',
+'scx=meroiticcursive' => '#/601',
+'scx=meroitichieroglyphs' => '#/369',
+'scx=miao' => '#/602',
'scx=mlym' => 'Scx/Mlym',
-'scx=modi' => '#/629',
+'scx=modi' => '#/653',
'scx=mong' => 'Scx/Mong',
'scx=mongolian' => 'Scx/Mong',
-'scx=mro' => '#/539',
-'scx=mroo' => '#/539',
-'scx=mtei' => '#/583',
+'scx=mro' => '#/559',
+'scx=mroo' => '#/559',
+'scx=mtei' => '#/604',
'scx=mult' => 'Scx/Mult',
'scx=multani' => 'Scx/Mult',
'scx=myanmar' => 'Scx/Mymr',
'scx=mymr' => 'Scx/Mymr',
-'scx=nabataean' => '#/585',
-'scx=narb' => '#/329',
-'scx=nbat' => '#/585',
+'scx=nabataean' => '#/606',
+'scx=narb' => '#/341',
+'scx=nbat' => '#/606',
+'scx=newa' => '#/607',
'scx=newtailue' => 'Sc/Talu',
-'scx=nko' => '#/540',
-'scx=nkoo' => '#/540',
-'scx=ogam' => '#/586',
-'scx=ogham' => '#/586',
-'scx=olchiki' => '#/184',
-'scx=olck' => '#/184',
-'scx=oldhungarian' => '#/566',
-'scx=olditalic' => '#/567',
-'scx=oldnortharabian' => '#/329',
-'scx=oldpermic' => '#/630',
-'scx=oldpersian' => '#/619',
-'scx=oldsoutharabian' => '#/330',
-'scx=oldturkic' => '#/587',
+'scx=nko' => '#/560',
+'scx=nkoo' => '#/560',
+'scx=ogam' => '#/608',
+'scx=ogham' => '#/608',
+'scx=olchiki' => '#/192',
+'scx=olck' => '#/192',
+'scx=oldhungarian' => '#/586',
+'scx=olditalic' => '#/587',
+'scx=oldnortharabian' => '#/341',
+'scx=oldpermic' => '#/654',
+'scx=oldpersian' => '#/643',
+'scx=oldsoutharabian' => '#/342',
+'scx=oldturkic' => '#/609',
'scx=oriya' => 'Scx/Orya',
-'scx=orkh' => '#/587',
+'scx=orkh' => '#/609',
'scx=orya' => 'Scx/Orya',
-'scx=osma' => '#/588',
-'scx=osmanya' => '#/588',
+'scx=osage' => '#/610',
+'scx=osge' => '#/610',
+'scx=osma' => '#/611',
+'scx=osmanya' => '#/611',
'scx=pahawhhmong' => 'Sc/Hmng',
-'scx=palm' => '#/246',
-'scx=palmyrene' => '#/246',
-'scx=pauc' => '#/589',
-'scx=paucinhau' => '#/589',
-'scx=perm' => '#/630',
-'scx=phag' => '#/631',
-'scx=phagspa' => '#/631',
-'scx=phli' => '#/592',
+'scx=palm' => '#/255',
+'scx=palmyrene' => '#/255',
+'scx=pauc' => '#/612',
+'scx=paucinhau' => '#/612',
+'scx=perm' => '#/654',
+'scx=phag' => '#/655',
+'scx=phagspa' => '#/655',
+'scx=phli' => '#/615',
'scx=phlp' => 'Scx/Phlp',
-'scx=phnx' => '#/594',
-'scx=phoenician' => '#/594',
-'scx=plrd' => '#/581',
-'scx=prti' => '#/595',
+'scx=phnx' => '#/617',
+'scx=phoenician' => '#/617',
+'scx=plrd' => '#/602',
+'scx=prti' => '#/618',
'scx=psalterpahlavi' => 'Scx/Phlp',
'scx=qaac' => 'Scx/Copt',
'scx=qaai' => 'Scx/Zinh',
-'scx=rejang' => '#/596',
-'scx=rjng' => '#/596',
-'scx=runic' => '#/597',
-'scx=runr' => '#/597',
-'scx=samaritan' => '#/598',
-'scx=samr' => '#/598',
-'scx=sarb' => '#/330',
-'scx=saur' => '#/599',
-'scx=saurashtra' => '#/599',
-'scx=sgnw' => '#/600',
+'scx=rejang' => '#/619',
+'scx=rjng' => '#/619',
+'scx=runic' => '#/620',
+'scx=runr' => '#/620',
+'scx=samaritan' => '#/621',
+'scx=samr' => '#/621',
+'scx=sarb' => '#/342',
+'scx=saur' => '#/622',
+'scx=saurashtra' => '#/622',
+'scx=sgnw' => '#/623',
'scx=sharada' => 'Scx/Shrd',
-'scx=shavian' => '#/188',
-'scx=shaw' => '#/188',
+'scx=shavian' => '#/196',
+'scx=shaw' => '#/196',
'scx=shrd' => 'Scx/Shrd',
-'scx=sidd' => '#/602',
-'scx=siddham' => '#/602',
-'scx=signwriting' => '#/600',
+'scx=sidd' => '#/625',
+'scx=siddham' => '#/625',
+'scx=signwriting' => '#/623',
'scx=sind' => 'Scx/Sind',
'scx=sinh' => 'Scx/Sinh',
'scx=sinhala' => 'Scx/Sinh',
-'scx=sora' => '#/604',
-'scx=sorasompeng' => '#/604',
-'scx=sund' => '#/605',
-'scx=sundanese' => '#/605',
-'scx=sylo' => '#/632',
-'scx=sylotinagri' => '#/632',
+'scx=sora' => '#/627',
+'scx=sorasompeng' => '#/627',
+'scx=sund' => '#/628',
+'scx=sundanese' => '#/628',
+'scx=sylo' => '#/656',
+'scx=sylotinagri' => '#/656',
'scx=syrc' => 'Scx/Syrc',
'scx=syriac' => 'Scx/Syrc',
-'scx=tagalog' => '#/634',
+'scx=tagalog' => '#/658',
'scx=tagb' => 'Scx/Tagb',
'scx=tagbanwa' => 'Scx/Tagb',
-'scx=taile' => '#/633',
+'scx=taile' => '#/657',
'scx=taitham' => 'Sc/Lana',
-'scx=taiviet' => '#/611',
+'scx=taiviet' => '#/635',
'scx=takr' => 'Scx/Takr',
'scx=takri' => 'Scx/Takr',
-'scx=tale' => '#/633',
+'scx=tale' => '#/657',
'scx=talu' => 'Sc/Talu',
'scx=tamil' => 'Scx/Taml',
'scx=taml' => 'Scx/Taml',
-'scx=tavt' => '#/611',
+'scx=tang' => '#/634',
+'scx=tangut' => '#/634',
+'scx=tavt' => '#/635',
'scx=telu' => 'Scx/Telu',
'scx=telugu' => 'Scx/Telu',
-'scx=tfng' => '#/612',
-'scx=tglg' => '#/634',
+'scx=tfng' => '#/636',
+'scx=tglg' => '#/658',
'scx=thaa' => 'Scx/Thaa',
'scx=thaana' => 'Scx/Thaa',
-'scx=thai' => '#/615',
+'scx=thai' => '#/639',
'scx=tibetan' => 'Sc/Tibt',
'scx=tibt' => 'Sc/Tibt',
-'scx=tifinagh' => '#/612',
+'scx=tifinagh' => '#/636',
'scx=tirh' => 'Scx/Tirh',
'scx=tirhuta' => 'Scx/Tirh',
-'scx=ugar' => '#/617',
-'scx=ugaritic' => '#/617',
+'scx=ugar' => '#/641',
+'scx=ugaritic' => '#/641',
'scx=unknown' => 'Sc/Zzzz',
-'scx=vai' => '#/541',
-'scx=vaii' => '#/541',
-'scx=wara' => '#/618',
-'scx=warangciti' => '#/618',
-'scx=xpeo' => '#/619',
+'scx=vai' => '#/561',
+'scx=vaii' => '#/561',
+'scx=wara' => '#/642',
+'scx=warangciti' => '#/642',
+'scx=xpeo' => '#/643',
'scx=xsux' => 'Sc/Xsux',
'scx=yi' => 'Scx/Yi',
'scx=yiii' => 'Scx/Yi',
@@ -6213,34 +6435,35 @@
'sd=true' => 'SD/Y',
'sd=y' => 'SD/Y',
'sd=yes' => 'SD/Y',
+'sentenceterminal' => 'STerm/Y',
'separator' => 'Gc/Z',
-'sgnw' => '#/600',
-'sharada' => '#/601',
-'shavian' => '#/188',
-'shaw' => '#/188',
-'shorthandformatcontrols' => '#/365',
-'shrd' => '#/601',
-'sidd' => '#/602',
-'siddham' => '#/602',
-'signwriting' => '#/600',
-'sind' => '#/603',
-'sinh' => 'Sc/Sinh',
-'sinhala' => 'Sc/Sinh',
-'sinhalaarchaicnumbers' => '#/360',
+'sgnw' => '#/623',
+'sharada' => 'Scx/Shrd',
+'shavian' => '#/196',
+'shaw' => '#/196',
+'shorthandformatcontrols' => '#/379',
+'shrd' => 'Scx/Shrd',
+'sidd' => '#/625',
+'siddham' => '#/625',
+'signwriting' => '#/623',
+'sind' => 'Scx/Sind',
+'sinh' => 'Scx/Sinh',
+'sinhala' => 'Scx/Sinh',
+'sinhalaarchaicnumbers' => '#/374',
'sk' => 'Gc/Sk',
'sm' => 'Gc/Sm',
-'smallforms' => '#/265',
-'smallformvariants' => '#/265',
+'smallforms' => '#/274',
+'smallformvariants' => '#/274',
'so' => 'Gc/So',
'softdotted' => 'SD/Y',
-'sora' => '#/604',
-'sorasompeng' => '#/604',
+'sora' => '#/627',
+'sorasompeng' => '#/627',
'space' => 'Perl/SpacePer',
'spaceperl' => 'Perl/SpacePer',
'spaceseparator' => 'Gc/Zs',
'spacingmark' => 'Gc/Mc',
-'spacingmodifierletters' => '#/328',
-'specials' => '#/221',
+'spacingmodifierletters' => '#/340',
+'specials' => '#/229',
'sterm' => 'STerm/Y',
'sterm=f' => '!STerm/Y',
'sterm=false' => '!STerm/Y',
@@ -6250,53 +6473,56 @@
'sterm=true' => 'STerm/Y',
'sterm=y' => 'STerm/Y',
'sterm=yes' => 'STerm/Y',
-'sund' => '#/605',
-'sundanese' => '#/605',
-'sundanesesup' => '#/303',
-'sundanesesupplement' => '#/303',
-'suparrowsa' => '#/266',
-'suparrowsb' => '#/267',
-'suparrowsc' => '#/268',
-'superandsub' => '#/289',
-'superscriptsandsubscripts' => '#/289',
-'supmathoperators' => '#/342',
-'supplementalarrowsa' => '#/266',
-'supplementalarrowsb' => '#/267',
-'supplementalarrowsc' => '#/268',
-'supplementalmathematicaloperators' => '#/342',
-'supplementalpunctuation' => '#/319',
-'supplementalsymbolsandpictographs' => '#/366',
-'supplementaryprivateuseareaa' => '#/191',
-'supplementaryprivateuseareab' => '#/192',
-'suppuaa' => '#/191',
-'suppuab' => '#/192',
-'suppunctuation' => '#/319',
-'supsymbolsandpictographs' => '#/366',
+'sund' => '#/628',
+'sundanese' => '#/628',
+'sundanesesup' => '#/314',
+'sundanesesupplement' => '#/314',
+'suparrowsa' => '#/275',
+'suparrowsb' => '#/276',
+'suparrowsc' => '#/277',
+'superandsub' => '#/298',
+'superscriptsandsubscripts' => '#/298',
+'supmathoperators' => '#/354',
+'supplementalarrowsa' => '#/275',
+'supplementalarrowsb' => '#/276',
+'supplementalarrowsc' => '#/277',
+'supplementalmathematicaloperators' => '#/354',
+'supplementalpunctuation' => '#/331',
+'supplementalsymbolsandpictographs' => '#/380',
+'supplementaryprivateuseareaa' => '#/199',
+'supplementaryprivateuseareab' => '#/200',
+'suppuaa' => '#/199',
+'suppuab' => '#/200',
+'suppunctuation' => '#/331',
+'supsymbolsandpictographs' => '#/380',
'surrogate' => '#/14',
-'suttonsignwriting' => '#/346',
-'sylo' => '#/606',
-'sylotinagri' => '#/606',
+'suttonsignwriting' => '#/359',
+'sylo' => '#/656',
+'sylotinagri' => '#/656',
'symbol' => 'Gc/S',
-'syrc' => '#/607',
-'syriac' => '#/607',
-'tagalog' => '#/613',
-'tagb' => '#/608',
-'tagbanwa' => '#/608',
-'tags' => '#/121',
-'taile' => '#/610',
+'syrc' => 'Scx/Syrc',
+'syriac' => 'Scx/Syrc',
+'tagalog' => '#/658',
+'tagb' => 'Scx/Tagb',
+'tagbanwa' => 'Scx/Tagb',
+'tags' => '#/125',
+'taile' => '#/657',
'taitham' => 'Sc/Lana',
-'taiviet' => '#/611',
-'taixuanjing' => '#/291',
-'taixuanjingsymbols' => '#/291',
-'takr' => '#/609',
-'takri' => '#/609',
-'tale' => '#/610',
+'taiviet' => '#/635',
+'taixuanjing' => '#/300',
+'taixuanjingsymbols' => '#/300',
+'takr' => 'Scx/Takr',
+'takri' => 'Scx/Takr',
+'tale' => '#/657',
'talu' => 'Sc/Talu',
-'tamil' => 'Sc/Taml',
-'taml' => 'Sc/Taml',
-'tavt' => '#/611',
-'telu' => 'Sc/Telu',
-'telugu' => 'Sc/Telu',
+'tamil' => 'Scx/Taml',
+'taml' => 'Scx/Taml',
+'tang' => '#/634',
+'tangut' => '#/634',
+'tangutcomponents' => '#/355',
+'tavt' => '#/635',
+'telu' => 'Scx/Telu',
+'telugu' => 'Scx/Telu',
'term' => 'Term/Y',
'term=f' => '!Term/Y',
'term=false' => '!Term/Y',
@@ -6307,25 +6533,25 @@
'term=y' => 'Term/Y',
'term=yes' => 'Term/Y',
'terminalpunctuation' => 'Term/Y',
-'tfng' => '#/612',
-'tglg' => '#/613',
-'thaa' => '#/614',
-'thaana' => '#/614',
-'thai' => '#/615',
+'tfng' => '#/636',
+'tglg' => '#/658',
+'thaa' => 'Scx/Thaa',
+'thaana' => 'Scx/Thaa',
+'thai' => '#/639',
'tibetan' => 'Sc/Tibt',
'tibt' => 'Sc/Tibt',
-'tifinagh' => '#/612',
-'tirh' => '#/616',
-'tirhuta' => '#/616',
+'tifinagh' => '#/636',
+'tirh' => 'Scx/Tirh',
+'tirhuta' => 'Scx/Tirh',
'title' => 'Perl/Title',
'titlecase' => 'Perl/Title',
'titlecaseletter' => 'Perl/Title',
-'transportandmap' => '#/331',
-'transportandmapsymbols' => '#/331',
-'ucas' => '#/123',
-'ucasext' => '#/198',
-'ugar' => '#/617',
-'ugaritic' => '#/617',
+'transportandmap' => '#/343',
+'transportandmapsymbols' => '#/343',
+'ucas' => '#/127',
+'ucasext' => '#/206',
+'ugar' => '#/641',
+'ugaritic' => '#/641',
'uideo' => 'UIdeo/Y',
'uideo=f' => '!UIdeo/Y',
'uideo=false' => '!UIdeo/Y',
@@ -6337,8 +6563,8 @@
'uideo=yes' => 'UIdeo/Y',
'unassigned' => 'Gc/Cn',
'unicode' => '#/2',
-'unifiedcanadianaboriginalsyllabics' => '#/123',
-'unifiedcanadianaboriginalsyllabicsextended' => '#/198',
+'unifiedcanadianaboriginalsyllabics' => '#/127',
+'unifiedcanadianaboriginalsyllabicsextended' => '#/206',
'unifiedideograph' => 'UIdeo/Y',
'unknown' => 'Sc/Zzzz',
'upper' => 'Upper/Y',
@@ -6352,58 +6578,67 @@
'upper=yes' => 'Upper/Y',
'uppercase' => 'Upper/Y',
'uppercaseletter' => 'Gc/Lu',
-'vai' => '#/541',
-'vaii' => '#/541',
-'variationselector' => '#/88',
-'variationselectors' => '#/105',
-'variationselectorssupplement' => '#/138',
-'vedicext' => '#/225',
-'vedicextensions' => '#/225',
-'verticalforms' => '#/310',
+'vai' => '#/561',
+'vaii' => '#/561',
+'variationselector' => '#/91',
+'variationselectors' => '#/108',
+'variationselectorssupplement' => '#/144',
+'vedicext' => '#/233',
+'vedicextensions' => '#/233',
+'verticalforms' => '#/322',
'vertspace' => '#/4',
-'vs' => '#/88',
-'vs=f' => '#/!88',
-'vs=false' => '#/!88',
-'vs=n' => '#/!88',
-'vs=no' => '#/!88',
-'vs=t' => '#/88',
-'vs=true' => '#/88',
-'vs=y' => '#/88',
-'vs=yes' => '#/88',
-'vssup' => '#/138',
-'wara' => '#/618',
-'warangciti' => '#/618',
+'vs' => '#/91',
+'vs=f' => '#/!91',
+'vs=false' => '#/!91',
+'vs=n' => '#/!91',
+'vs=no' => '#/!91',
+'vs=t' => '#/91',
+'vs=true' => '#/91',
+'vs=y' => '#/91',
+'vs=yes' => '#/91',
+'vssup' => '#/144',
+'wara' => '#/642',
+'warangciti' => '#/642',
'wb=aletter' => 'WB/LE',
'wb=cr' => '#/64',
-'wb=doublequote' => '#/89',
-'wb=dq' => '#/89',
+'wb=doublequote' => '#/92',
+'wb=dq' => '#/92',
+'wb=eb' => 'GCB/EB',
+'wb=ebase' => 'GCB/EB',
+'wb=ebasegaz' => '#/68',
+'wb=ebg' => '#/68',
+'wb=em' => '#/65',
+'wb=emodifier' => '#/65',
'wb=ex' => 'WB/EX',
-'wb=extend' => 'SB/EX',
+'wb=extend' => 'WB/Extend',
'wb=extendnumlet' => 'WB/EX',
'wb=fo' => 'WB/FO',
'wb=format' => 'WB/FO',
+'wb=gaz' => '#/69',
+'wb=glueafterzwj' => '#/69',
'wb=hebrewletter' => 'WB/HL',
'wb=hl' => 'WB/HL',
'wb=ka' => 'WB/KA',
'wb=katakana' => 'WB/KA',
'wb=le' => 'WB/LE',
-'wb=lf' => '#/65',
+'wb=lf' => '#/66',
'wb=mb' => 'WB/MB',
'wb=midletter' => 'WB/ML',
'wb=midnum' => 'WB/MN',
'wb=midnumlet' => 'WB/MB',
'wb=ml' => 'WB/ML',
'wb=mn' => 'WB/MN',
-'wb=newline' => '#/90',
-'wb=nl' => '#/90',
+'wb=newline' => '#/93',
+'wb=nl' => '#/93',
'wb=nu' => 'WB/NU',
'wb=numeric' => 'WB/NU',
'wb=other' => 'WB/XX',
-'wb=regionalindicator' => '#/66',
-'wb=ri' => '#/66',
-'wb=singlequote' => '#/91',
-'wb=sq' => '#/91',
+'wb=regionalindicator' => '#/67',
+'wb=ri' => '#/67',
+'wb=singlequote' => '#/94',
+'wb=sq' => '#/94',
'wb=xx' => 'WB/XX',
+'wb=zwj' => '#/70',
'whitespace' => 'Perl/SpacePer',
'word' => 'Perl/Word',
'wspace' => 'Perl/SpacePer',
@@ -6436,12 +6671,12 @@
'xids=y' => 'XIDS/Y',
'xids=yes' => 'XIDS/Y',
'xidstart' => 'XIDS/Y',
-'xpeo' => '#/619',
+'xpeo' => '#/643',
'xperlspace' => 'Perl/SpacePer',
'xposixalnum' => 'Perl/Alnum',
'xposixalpha' => 'Alpha/Y',
'xposixblank' => 'Perl/Blank',
-'xposixcntrl' => '#/370',
+'xposixcntrl' => '#/384',
'xposixdigit' => 'Gc/Nd',
'xposixgraph' => 'Perl/Graph',
'xposixlower' => 'Lower/Y',
@@ -6452,30 +6687,35 @@
'xposixword' => 'Perl/Word',
'xposixxdigit' => 'Hex/Y',
'xsux' => 'Sc/Xsux',
-'yi' => '#/538',
-'yiii' => '#/538',
-'yijing' => '#/163',
-'yijinghexagramsymbols' => '#/163',
-'yiradicals' => '#/270',
-'yisyllables' => '#/292',
+'yi' => 'Scx/Yi',
+'yiii' => 'Scx/Yi',
+'yijing' => '#/170',
+'yijinghexagramsymbols' => '#/170',
+'yiradicals' => '#/279',
+'yisyllables' => '#/301',
'z' => 'Gc/Z',
-'zinh' => 'Sc/Zinh',
-'zl' => '#/372',
-'zp' => '#/373',
+'zinh' => 'Scx/Zinh',
+'zl' => '#/386',
+'zp' => '#/387',
'zs' => 'Gc/Zs',
-'zyyy' => 'Sc/Zyyy',
+'zyyy' => 'Scx/Zyyy',
'zzzz' => 'Sc/Zzzz',
);
# Maps floating point to fractional form
%utf8::nv_floating_to_rational = (
'-0.5' => '-1/2',
+'0.00625' => '1/160',
+'0.025' => '1/40',
+'0.0375' => '3/80',
+'0.05' => '1/20',
'0.0625' => '1/16',
'0.0833333333333333' => '1/12',
'0.1' => '1/10',
'0.111111111111111' => '1/9',
'0.125' => '1/8',
'0.142857142857143' => '1/7',
+'0.15' => '3/20',
'0.166666666666667' => '1/6',
'0.1875' => '3/16',
'0.2' => '1/5',
@@ -6513,7 +6753,7 @@ $utf8::max_floating_slop = 0.001;
# the table, so as to avoid duplication, as many property names can map to the
# file, but we only need one entry for all of them.
%utf8::why_deprecated = (
-'#/450' => 'Deprecated by Unicode because surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking',
+'#/467' => 'Deprecated by Unicode because surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking',
'Hyphen/T' => 'Supplanted by Line_Break property values; see www.unicode.org/reports/tr14',
);
diff --git a/Master/tlpkg/tlperl/lib/unicore/Name.pl b/Master/tlpkg/tlperl/lib/unicore/Name.pl
index 458e6f0582c..b0434f7262b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Name.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/Name.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -2207,6 +2207,29 @@ return <<'END';
008B2 ARABIC LETTER ZAIN WITH INVERTED V ABOVE
008B3 ARABIC LETTER AIN WITH THREE DOTS BELOW
008B4 ARABIC LETTER KAF WITH DOT BELOW
+008B6 ARABIC LETTER BEH WITH SMALL MEEM ABOVE
+008B7 ARABIC LETTER PEH WITH SMALL MEEM ABOVE
+008B8 ARABIC LETTER TEH WITH SMALL TEH ABOVE
+008B9 ARABIC LETTER REH WITH SMALL NOON ABOVE
+008BA ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE
+008BB ARABIC LETTER AFRICAN FEH
+008BC ARABIC LETTER AFRICAN QAF
+008BD ARABIC LETTER AFRICAN NOON
+008D4 ARABIC SMALL HIGH WORD AR-RUB
+008D5 ARABIC SMALL HIGH SAD
+008D6 ARABIC SMALL HIGH AIN
+008D7 ARABIC SMALL HIGH QAF
+008D8 ARABIC SMALL HIGH NOON WITH KASRA
+008D9 ARABIC SMALL LOW NOON WITH KASRA
+008DA ARABIC SMALL HIGH WORD ATH-THALATHA
+008DB ARABIC SMALL HIGH WORD AS-SAJDA
+008DC ARABIC SMALL HIGH WORD AN-NISF
+008DD ARABIC SMALL HIGH WORD SAKTA
+008DE ARABIC SMALL HIGH WORD QIF
+008DF ARABIC SMALL HIGH WORD WAQFA
+008E0 ARABIC SMALL HIGH FOOTNOTE MARKER
+008E1 ARABIC SMALL HIGH SIGN SAFHA
+008E2 ARABIC DISPUTED END OF AYAH
008E3 ARABIC TURNED DAMMA BELOW
008E4 ARABIC CURLY FATHA
008E5 ARABIC CURLY DAMMA
@@ -2879,6 +2902,7 @@ return <<'END';
00C7D TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR
00C7E TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
00C7F TELUGU SIGN TUUMU
+00C80 KANNADA SIGN SPACING CANDRABINDU
00C81 KANNADA SIGN CANDRABINDU
00C82 KANNADA SIGN ANUSVARA
00C83 KANNADA SIGN VISARGA
@@ -3038,7 +3062,18 @@ return <<'END';
00D4C MALAYALAM VOWEL SIGN AU
00D4D MALAYALAM SIGN VIRAMA
00D4E MALAYALAM LETTER DOT REPH
+00D4F MALAYALAM SIGN PARA
+00D54 MALAYALAM LETTER CHILLU M
+00D55 MALAYALAM LETTER CHILLU Y
+00D56 MALAYALAM LETTER CHILLU LLL
00D57 MALAYALAM AU LENGTH MARK
+00D58 MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH
+00D59 MALAYALAM FRACTION ONE FORTIETH
+00D5A MALAYALAM FRACTION THREE EIGHTIETHS
+00D5B MALAYALAM FRACTION ONE TWENTIETH
+00D5C MALAYALAM FRACTION ONE TENTH
+00D5D MALAYALAM FRACTION THREE TWENTIETHS
+00D5E MALAYALAM FRACTION ONE FIFTH
00D5F MALAYALAM LETTER ARCHAIC II
00D60 MALAYALAM LETTER VOCALIC RR
00D61 MALAYALAM LETTER VOCALIC LL
@@ -3060,6 +3095,9 @@ return <<'END';
00D73 MALAYALAM FRACTION ONE QUARTER
00D74 MALAYALAM FRACTION ONE HALF
00D75 MALAYALAM FRACTION THREE QUARTERS
+00D76 MALAYALAM FRACTION ONE SIXTEENTH
+00D77 MALAYALAM FRACTION ONE EIGHTH
+00D78 MALAYALAM FRACTION THREE SIXTEENTHS
00D79 MALAYALAM DATE MARK
00D7A MALAYALAM LETTER CHILLU NN
00D7B MALAYALAM LETTER CHILLU N
@@ -6443,6 +6481,15 @@ return <<'END';
01C7D OL CHIKI AHAD
01C7E OL CHIKI PUNCTUATION MUCAAD
01C7F OL CHIKI PUNCTUATION DOUBLE MUCAAD
+01C80 CYRILLIC SMALL LETTER ROUNDED VE
+01C81 CYRILLIC SMALL LETTER LONG-LEGGED DE
+01C82 CYRILLIC SMALL LETTER NARROW O
+01C83 CYRILLIC SMALL LETTER WIDE ES
+01C84 CYRILLIC SMALL LETTER TALL TE
+01C85 CYRILLIC SMALL LETTER THREE-LEGGED TE
+01C86 CYRILLIC SMALL LETTER TALL HARD SIGN
+01C87 CYRILLIC SMALL LETTER TALL YAT
+01C88 CYRILLIC SMALL LETTER UNBLENDED UK
01CC0 SUNDANESE PUNCTUATION BINDU SURYA
01CC1 SUNDANESE PUNCTUATION BINDU PANGLONG
01CC2 SUNDANESE PUNCTUATION BINDU PURNAMA
@@ -6738,6 +6785,7 @@ return <<'END';
01DF3 COMBINING LATIN SMALL LETTER O WITH DIAERESIS
01DF4 COMBINING LATIN SMALL LETTER U WITH DIAERESIS
01DF5 COMBINING UP TACK ABOVE
+01DFB COMBINING DELETION MARK
01DFC COMBINING DOUBLE INVERTED BREVE BELOW
01DFD COMBINING ALMOST EQUAL TO BELOW
01DFE COMBINING LEFT ARROWHEAD ABOVE
@@ -8225,6 +8273,10 @@ return <<'END';
023F8 DOUBLE VERTICAL BAR
023F9 BLACK SQUARE FOR STOP
023FA BLACK CIRCLE FOR RECORD
+023FB POWER SYMBOL
+023FC POWER ON-OFF SYMBOL
+023FD POWER ON SYMBOL
+023FE POWER SLEEP SYMBOL
02400 SYMBOL FOR NULL
02401 SYMBOL FOR START OF HEADING
02402 SYMBOL FOR START OF TEXT
@@ -10707,6 +10759,8 @@ return <<'END';
02E40 DOUBLE HYPHEN
02E41 REVERSED COMMA
02E42 DOUBLE LOW-REVERSED-9 QUOTATION MARK
+02E43 DASH WITH LEFT UPTURN
+02E44 DOUBLE SUSPENSION MARK
02E80 CJK RADICAL REPEAT
02E81 CJK RADICAL CLIFF
02E82 CJK RADICAL SECOND ONE
@@ -14032,6 +14086,7 @@ return <<'END';
0A7AB LATIN CAPITAL LETTER REVERSED OPEN E
0A7AC LATIN CAPITAL LETTER SCRIPT G
0A7AD LATIN CAPITAL LETTER L WITH BELT
+0A7AE LATIN CAPITAL LETTER SMALL CAPITAL I
0A7B0 LATIN CAPITAL LETTER TURNED K
0A7B1 LATIN CAPITAL LETTER TURNED T
0A7B2 LATIN CAPITAL LETTER J WITH CROSSED-TAIL
@@ -14228,6 +14283,7 @@ return <<'END';
0A8C2 SAURASHTRA VOWEL SIGN OO
0A8C3 SAURASHTRA VOWEL SIGN AU
0A8C4 SAURASHTRA SIGN VIRAMA
+0A8C5 SAURASHTRA SIGN CANDRABINDU
0A8CE SAURASHTRA DANDA
0A8CF SAURASHTRA DOUBLE DANDA
0A8D0 SAURASHTRA DIGIT ZERO
@@ -16515,6 +16571,8 @@ return <<'END';
1018A GREEK ZERO SIGN
1018B GREEK ONE QUARTER SIGN
1018C GREEK SINUSOID SIGN
+1018D GREEK INDICTION SIGN
+1018E NOMISMA SIGN
10190 ROMAN SEXTANS SIGN
10191 ROMAN UNCIA SIGN
10192 ROMAN SEMUNCIA SIGN
@@ -17035,6 +17093,78 @@ return <<'END';
104A7 OSMANYA DIGIT SEVEN
104A8 OSMANYA DIGIT EIGHT
104A9 OSMANYA DIGIT NINE
+104B0 OSAGE CAPITAL LETTER A
+104B1 OSAGE CAPITAL LETTER AI
+104B2 OSAGE CAPITAL LETTER AIN
+104B3 OSAGE CAPITAL LETTER AH
+104B4 OSAGE CAPITAL LETTER BRA
+104B5 OSAGE CAPITAL LETTER CHA
+104B6 OSAGE CAPITAL LETTER EHCHA
+104B7 OSAGE CAPITAL LETTER E
+104B8 OSAGE CAPITAL LETTER EIN
+104B9 OSAGE CAPITAL LETTER HA
+104BA OSAGE CAPITAL LETTER HYA
+104BB OSAGE CAPITAL LETTER I
+104BC OSAGE CAPITAL LETTER KA
+104BD OSAGE CAPITAL LETTER EHKA
+104BE OSAGE CAPITAL LETTER KYA
+104BF OSAGE CAPITAL LETTER LA
+104C0 OSAGE CAPITAL LETTER MA
+104C1 OSAGE CAPITAL LETTER NA
+104C2 OSAGE CAPITAL LETTER O
+104C3 OSAGE CAPITAL LETTER OIN
+104C4 OSAGE CAPITAL LETTER PA
+104C5 OSAGE CAPITAL LETTER EHPA
+104C6 OSAGE CAPITAL LETTER SA
+104C7 OSAGE CAPITAL LETTER SHA
+104C8 OSAGE CAPITAL LETTER TA
+104C9 OSAGE CAPITAL LETTER EHTA
+104CA OSAGE CAPITAL LETTER TSA
+104CB OSAGE CAPITAL LETTER EHTSA
+104CC OSAGE CAPITAL LETTER TSHA
+104CD OSAGE CAPITAL LETTER DHA
+104CE OSAGE CAPITAL LETTER U
+104CF OSAGE CAPITAL LETTER WA
+104D0 OSAGE CAPITAL LETTER KHA
+104D1 OSAGE CAPITAL LETTER GHA
+104D2 OSAGE CAPITAL LETTER ZA
+104D3 OSAGE CAPITAL LETTER ZHA
+104D8 OSAGE SMALL LETTER A
+104D9 OSAGE SMALL LETTER AI
+104DA OSAGE SMALL LETTER AIN
+104DB OSAGE SMALL LETTER AH
+104DC OSAGE SMALL LETTER BRA
+104DD OSAGE SMALL LETTER CHA
+104DE OSAGE SMALL LETTER EHCHA
+104DF OSAGE SMALL LETTER E
+104E0 OSAGE SMALL LETTER EIN
+104E1 OSAGE SMALL LETTER HA
+104E2 OSAGE SMALL LETTER HYA
+104E3 OSAGE SMALL LETTER I
+104E4 OSAGE SMALL LETTER KA
+104E5 OSAGE SMALL LETTER EHKA
+104E6 OSAGE SMALL LETTER KYA
+104E7 OSAGE SMALL LETTER LA
+104E8 OSAGE SMALL LETTER MA
+104E9 OSAGE SMALL LETTER NA
+104EA OSAGE SMALL LETTER O
+104EB OSAGE SMALL LETTER OIN
+104EC OSAGE SMALL LETTER PA
+104ED OSAGE SMALL LETTER EHPA
+104EE OSAGE SMALL LETTER SA
+104EF OSAGE SMALL LETTER SHA
+104F0 OSAGE SMALL LETTER TA
+104F1 OSAGE SMALL LETTER EHTA
+104F2 OSAGE SMALL LETTER TSA
+104F3 OSAGE SMALL LETTER EHTSA
+104F4 OSAGE SMALL LETTER TSHA
+104F5 OSAGE SMALL LETTER DHA
+104F6 OSAGE SMALL LETTER U
+104F7 OSAGE SMALL LETTER WA
+104F8 OSAGE SMALL LETTER KHA
+104F9 OSAGE SMALL LETTER GHA
+104FA OSAGE SMALL LETTER ZA
+104FB OSAGE SMALL LETTER ZHA
10500 ELBASAN LETTER A
10501 ELBASAN LETTER BE
10502 ELBASAN LETTER CE
@@ -18861,6 +18991,7 @@ return <<'END';
1123B KHOJKI SECTION MARK
1123C KHOJKI DOUBLE SECTION MARK
1123D KHOJKI ABBREVIATION SIGN
+1123E KHOJKI SIGN SUKUN
11280 MULTANI LETTER A
11281 MULTANI LETTER I
11282 MULTANI LETTER U
@@ -19053,6 +19184,98 @@ return <<'END';
11372 COMBINING GRANTHA LETTER NA
11373 COMBINING GRANTHA LETTER VI
11374 COMBINING GRANTHA LETTER PA
+11400 NEWA LETTER A
+11401 NEWA LETTER AA
+11402 NEWA LETTER I
+11403 NEWA LETTER II
+11404 NEWA LETTER U
+11405 NEWA LETTER UU
+11406 NEWA LETTER VOCALIC R
+11407 NEWA LETTER VOCALIC RR
+11408 NEWA LETTER VOCALIC L
+11409 NEWA LETTER VOCALIC LL
+1140A NEWA LETTER E
+1140B NEWA LETTER AI
+1140C NEWA LETTER O
+1140D NEWA LETTER AU
+1140E NEWA LETTER KA
+1140F NEWA LETTER KHA
+11410 NEWA LETTER GA
+11411 NEWA LETTER GHA
+11412 NEWA LETTER NGA
+11413 NEWA LETTER NGHA
+11414 NEWA LETTER CA
+11415 NEWA LETTER CHA
+11416 NEWA LETTER JA
+11417 NEWA LETTER JHA
+11418 NEWA LETTER NYA
+11419 NEWA LETTER NYHA
+1141A NEWA LETTER TTA
+1141B NEWA LETTER TTHA
+1141C NEWA LETTER DDA
+1141D NEWA LETTER DDHA
+1141E NEWA LETTER NNA
+1141F NEWA LETTER TA
+11420 NEWA LETTER THA
+11421 NEWA LETTER DA
+11422 NEWA LETTER DHA
+11423 NEWA LETTER NA
+11424 NEWA LETTER NHA
+11425 NEWA LETTER PA
+11426 NEWA LETTER PHA
+11427 NEWA LETTER BA
+11428 NEWA LETTER BHA
+11429 NEWA LETTER MA
+1142A NEWA LETTER MHA
+1142B NEWA LETTER YA
+1142C NEWA LETTER RA
+1142D NEWA LETTER RHA
+1142E NEWA LETTER LA
+1142F NEWA LETTER LHA
+11430 NEWA LETTER WA
+11431 NEWA LETTER SHA
+11432 NEWA LETTER SSA
+11433 NEWA LETTER SA
+11434 NEWA LETTER HA
+11435 NEWA VOWEL SIGN AA
+11436 NEWA VOWEL SIGN I
+11437 NEWA VOWEL SIGN II
+11438 NEWA VOWEL SIGN U
+11439 NEWA VOWEL SIGN UU
+1143A NEWA VOWEL SIGN VOCALIC R
+1143B NEWA VOWEL SIGN VOCALIC RR
+1143C NEWA VOWEL SIGN VOCALIC L
+1143D NEWA VOWEL SIGN VOCALIC LL
+1143E NEWA VOWEL SIGN E
+1143F NEWA VOWEL SIGN AI
+11440 NEWA VOWEL SIGN O
+11441 NEWA VOWEL SIGN AU
+11442 NEWA SIGN VIRAMA
+11443 NEWA SIGN CANDRABINDU
+11444 NEWA SIGN ANUSVARA
+11445 NEWA SIGN VISARGA
+11446 NEWA SIGN NUKTA
+11447 NEWA SIGN AVAGRAHA
+11448 NEWA SIGN FINAL ANUSVARA
+11449 NEWA OM
+1144A NEWA SIDDHI
+1144B NEWA DANDA
+1144C NEWA DOUBLE DANDA
+1144D NEWA COMMA
+1144E NEWA GAP FILLER
+1144F NEWA ABBREVIATION SIGN
+11450 NEWA DIGIT ZERO
+11451 NEWA DIGIT ONE
+11452 NEWA DIGIT TWO
+11453 NEWA DIGIT THREE
+11454 NEWA DIGIT FOUR
+11455 NEWA DIGIT FIVE
+11456 NEWA DIGIT SIX
+11457 NEWA DIGIT SEVEN
+11458 NEWA DIGIT EIGHT
+11459 NEWA DIGIT NINE
+1145B NEWA PLACEHOLDER MARK
+1145D NEWA INSERTION SIGN
11480 TIRHUTA ANJI
11481 TIRHUTA LETTER A
11482 TIRHUTA LETTER AA
@@ -19306,6 +19529,19 @@ return <<'END';
11657 MODI DIGIT SEVEN
11658 MODI DIGIT EIGHT
11659 MODI DIGIT NINE
+11660 MONGOLIAN BIRGA WITH ORNAMENT
+11661 MONGOLIAN ROTATED BIRGA
+11662 MONGOLIAN DOUBLE BIRGA WITH ORNAMENT
+11663 MONGOLIAN TRIPLE BIRGA WITH ORNAMENT
+11664 MONGOLIAN BIRGA WITH DOUBLE ORNAMENT
+11665 MONGOLIAN ROTATED BIRGA WITH ORNAMENT
+11666 MONGOLIAN ROTATED BIRGA WITH DOUBLE ORNAMENT
+11667 MONGOLIAN INVERTED BIRGA
+11668 MONGOLIAN INVERTED BIRGA WITH DOUBLE ORNAMENT
+11669 MONGOLIAN SWIRL BIRGA
+1166A MONGOLIAN SWIRL BIRGA WITH ORNAMENT
+1166B MONGOLIAN SWIRL BIRGA WITH DOUBLE ORNAMENT
+1166C MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
11680 TAKRI LETTER A
11681 TAKRI LETTER AA
11682 TAKRI LETTER I
@@ -19570,6 +19806,171 @@ return <<'END';
11AF6 PAU CIN HAU LOW-FALLING TONE LONG FINAL
11AF7 PAU CIN HAU LOW-FALLING TONE FINAL
11AF8 PAU CIN HAU GLOTTAL STOP FINAL
+11C00 BHAIKSUKI LETTER A
+11C01 BHAIKSUKI LETTER AA
+11C02 BHAIKSUKI LETTER I
+11C03 BHAIKSUKI LETTER II
+11C04 BHAIKSUKI LETTER U
+11C05 BHAIKSUKI LETTER UU
+11C06 BHAIKSUKI LETTER VOCALIC R
+11C07 BHAIKSUKI LETTER VOCALIC RR
+11C08 BHAIKSUKI LETTER VOCALIC L
+11C0A BHAIKSUKI LETTER E
+11C0B BHAIKSUKI LETTER AI
+11C0C BHAIKSUKI LETTER O
+11C0D BHAIKSUKI LETTER AU
+11C0E BHAIKSUKI LETTER KA
+11C0F BHAIKSUKI LETTER KHA
+11C10 BHAIKSUKI LETTER GA
+11C11 BHAIKSUKI LETTER GHA
+11C12 BHAIKSUKI LETTER NGA
+11C13 BHAIKSUKI LETTER CA
+11C14 BHAIKSUKI LETTER CHA
+11C15 BHAIKSUKI LETTER JA
+11C16 BHAIKSUKI LETTER JHA
+11C17 BHAIKSUKI LETTER NYA
+11C18 BHAIKSUKI LETTER TTA
+11C19 BHAIKSUKI LETTER TTHA
+11C1A BHAIKSUKI LETTER DDA
+11C1B BHAIKSUKI LETTER DDHA
+11C1C BHAIKSUKI LETTER NNA
+11C1D BHAIKSUKI LETTER TA
+11C1E BHAIKSUKI LETTER THA
+11C1F BHAIKSUKI LETTER DA
+11C20 BHAIKSUKI LETTER DHA
+11C21 BHAIKSUKI LETTER NA
+11C22 BHAIKSUKI LETTER PA
+11C23 BHAIKSUKI LETTER PHA
+11C24 BHAIKSUKI LETTER BA
+11C25 BHAIKSUKI LETTER BHA
+11C26 BHAIKSUKI LETTER MA
+11C27 BHAIKSUKI LETTER YA
+11C28 BHAIKSUKI LETTER RA
+11C29 BHAIKSUKI LETTER LA
+11C2A BHAIKSUKI LETTER VA
+11C2B BHAIKSUKI LETTER SHA
+11C2C BHAIKSUKI LETTER SSA
+11C2D BHAIKSUKI LETTER SA
+11C2E BHAIKSUKI LETTER HA
+11C2F BHAIKSUKI VOWEL SIGN AA
+11C30 BHAIKSUKI VOWEL SIGN I
+11C31 BHAIKSUKI VOWEL SIGN II
+11C32 BHAIKSUKI VOWEL SIGN U
+11C33 BHAIKSUKI VOWEL SIGN UU
+11C34 BHAIKSUKI VOWEL SIGN VOCALIC R
+11C35 BHAIKSUKI VOWEL SIGN VOCALIC RR
+11C36 BHAIKSUKI VOWEL SIGN VOCALIC L
+11C38 BHAIKSUKI VOWEL SIGN E
+11C39 BHAIKSUKI VOWEL SIGN AI
+11C3A BHAIKSUKI VOWEL SIGN O
+11C3B BHAIKSUKI VOWEL SIGN AU
+11C3C BHAIKSUKI SIGN CANDRABINDU
+11C3D BHAIKSUKI SIGN ANUSVARA
+11C3E BHAIKSUKI SIGN VISARGA
+11C3F BHAIKSUKI SIGN VIRAMA
+11C40 BHAIKSUKI SIGN AVAGRAHA
+11C41 BHAIKSUKI DANDA
+11C42 BHAIKSUKI DOUBLE DANDA
+11C43 BHAIKSUKI WORD SEPARATOR
+11C44 BHAIKSUKI GAP FILLER-1
+11C45 BHAIKSUKI GAP FILLER-2
+11C50 BHAIKSUKI DIGIT ZERO
+11C51 BHAIKSUKI DIGIT ONE
+11C52 BHAIKSUKI DIGIT TWO
+11C53 BHAIKSUKI DIGIT THREE
+11C54 BHAIKSUKI DIGIT FOUR
+11C55 BHAIKSUKI DIGIT FIVE
+11C56 BHAIKSUKI DIGIT SIX
+11C57 BHAIKSUKI DIGIT SEVEN
+11C58 BHAIKSUKI DIGIT EIGHT
+11C59 BHAIKSUKI DIGIT NINE
+11C5A BHAIKSUKI NUMBER ONE
+11C5B BHAIKSUKI NUMBER TWO
+11C5C BHAIKSUKI NUMBER THREE
+11C5D BHAIKSUKI NUMBER FOUR
+11C5E BHAIKSUKI NUMBER FIVE
+11C5F BHAIKSUKI NUMBER SIX
+11C60 BHAIKSUKI NUMBER SEVEN
+11C61 BHAIKSUKI NUMBER EIGHT
+11C62 BHAIKSUKI NUMBER NINE
+11C63 BHAIKSUKI NUMBER TEN
+11C64 BHAIKSUKI NUMBER TWENTY
+11C65 BHAIKSUKI NUMBER THIRTY
+11C66 BHAIKSUKI NUMBER FORTY
+11C67 BHAIKSUKI NUMBER FIFTY
+11C68 BHAIKSUKI NUMBER SIXTY
+11C69 BHAIKSUKI NUMBER SEVENTY
+11C6A BHAIKSUKI NUMBER EIGHTY
+11C6B BHAIKSUKI NUMBER NINETY
+11C6C BHAIKSUKI HUNDREDS UNIT MARK
+11C70 MARCHEN HEAD MARK
+11C71 MARCHEN MARK SHAD
+11C72 MARCHEN LETTER KA
+11C73 MARCHEN LETTER KHA
+11C74 MARCHEN LETTER GA
+11C75 MARCHEN LETTER NGA
+11C76 MARCHEN LETTER CA
+11C77 MARCHEN LETTER CHA
+11C78 MARCHEN LETTER JA
+11C79 MARCHEN LETTER NYA
+11C7A MARCHEN LETTER TA
+11C7B MARCHEN LETTER THA
+11C7C MARCHEN LETTER DA
+11C7D MARCHEN LETTER NA
+11C7E MARCHEN LETTER PA
+11C7F MARCHEN LETTER PHA
+11C80 MARCHEN LETTER BA
+11C81 MARCHEN LETTER MA
+11C82 MARCHEN LETTER TSA
+11C83 MARCHEN LETTER TSHA
+11C84 MARCHEN LETTER DZA
+11C85 MARCHEN LETTER WA
+11C86 MARCHEN LETTER ZHA
+11C87 MARCHEN LETTER ZA
+11C88 MARCHEN LETTER -A
+11C89 MARCHEN LETTER YA
+11C8A MARCHEN LETTER RA
+11C8B MARCHEN LETTER LA
+11C8C MARCHEN LETTER SHA
+11C8D MARCHEN LETTER SA
+11C8E MARCHEN LETTER HA
+11C8F MARCHEN LETTER A
+11C92 MARCHEN SUBJOINED LETTER KA
+11C93 MARCHEN SUBJOINED LETTER KHA
+11C94 MARCHEN SUBJOINED LETTER GA
+11C95 MARCHEN SUBJOINED LETTER NGA
+11C96 MARCHEN SUBJOINED LETTER CA
+11C97 MARCHEN SUBJOINED LETTER CHA
+11C98 MARCHEN SUBJOINED LETTER JA
+11C99 MARCHEN SUBJOINED LETTER NYA
+11C9A MARCHEN SUBJOINED LETTER TA
+11C9B MARCHEN SUBJOINED LETTER THA
+11C9C MARCHEN SUBJOINED LETTER DA
+11C9D MARCHEN SUBJOINED LETTER NA
+11C9E MARCHEN SUBJOINED LETTER PA
+11C9F MARCHEN SUBJOINED LETTER PHA
+11CA0 MARCHEN SUBJOINED LETTER BA
+11CA1 MARCHEN SUBJOINED LETTER MA
+11CA2 MARCHEN SUBJOINED LETTER TSA
+11CA3 MARCHEN SUBJOINED LETTER TSHA
+11CA4 MARCHEN SUBJOINED LETTER DZA
+11CA5 MARCHEN SUBJOINED LETTER WA
+11CA6 MARCHEN SUBJOINED LETTER ZHA
+11CA7 MARCHEN SUBJOINED LETTER ZA
+11CA9 MARCHEN SUBJOINED LETTER YA
+11CAA MARCHEN SUBJOINED LETTER RA
+11CAB MARCHEN SUBJOINED LETTER LA
+11CAC MARCHEN SUBJOINED LETTER SHA
+11CAD MARCHEN SUBJOINED LETTER SA
+11CAE MARCHEN SUBJOINED LETTER HA
+11CAF MARCHEN SUBJOINED LETTER A
+11CB0 MARCHEN VOWEL SIGN AA
+11CB1 MARCHEN VOWEL SIGN I
+11CB2 MARCHEN VOWEL SIGN U
+11CB3 MARCHEN VOWEL SIGN E
+11CB4 MARCHEN VOWEL SIGN O
+11CB5 MARCHEN SIGN ANUSVARA
+11CB6 MARCHEN SIGN CANDRABINDU
12000 CUNEIFORM SIGN A
12001 CUNEIFORM SIGN A TIMES A
12002 CUNEIFORM SIGN A TIMES BAD
@@ -23368,6 +23769,762 @@ return <<'END';
16F9D MIAO LETTER REFORMED TONE-5
16F9E MIAO LETTER REFORMED TONE-6
16F9F MIAO LETTER REFORMED TONE-8
+16FE0 TANGUT ITERATION MARK
+18800 TANGUT COMPONENT-001
+18801 TANGUT COMPONENT-002
+18802 TANGUT COMPONENT-003
+18803 TANGUT COMPONENT-004
+18804 TANGUT COMPONENT-005
+18805 TANGUT COMPONENT-006
+18806 TANGUT COMPONENT-007
+18807 TANGUT COMPONENT-008
+18808 TANGUT COMPONENT-009
+18809 TANGUT COMPONENT-010
+1880A TANGUT COMPONENT-011
+1880B TANGUT COMPONENT-012
+1880C TANGUT COMPONENT-013
+1880D TANGUT COMPONENT-014
+1880E TANGUT COMPONENT-015
+1880F TANGUT COMPONENT-016
+18810 TANGUT COMPONENT-017
+18811 TANGUT COMPONENT-018
+18812 TANGUT COMPONENT-019
+18813 TANGUT COMPONENT-020
+18814 TANGUT COMPONENT-021
+18815 TANGUT COMPONENT-022
+18816 TANGUT COMPONENT-023
+18817 TANGUT COMPONENT-024
+18818 TANGUT COMPONENT-025
+18819 TANGUT COMPONENT-026
+1881A TANGUT COMPONENT-027
+1881B TANGUT COMPONENT-028
+1881C TANGUT COMPONENT-029
+1881D TANGUT COMPONENT-030
+1881E TANGUT COMPONENT-031
+1881F TANGUT COMPONENT-032
+18820 TANGUT COMPONENT-033
+18821 TANGUT COMPONENT-034
+18822 TANGUT COMPONENT-035
+18823 TANGUT COMPONENT-036
+18824 TANGUT COMPONENT-037
+18825 TANGUT COMPONENT-038
+18826 TANGUT COMPONENT-039
+18827 TANGUT COMPONENT-040
+18828 TANGUT COMPONENT-041
+18829 TANGUT COMPONENT-042
+1882A TANGUT COMPONENT-043
+1882B TANGUT COMPONENT-044
+1882C TANGUT COMPONENT-045
+1882D TANGUT COMPONENT-046
+1882E TANGUT COMPONENT-047
+1882F TANGUT COMPONENT-048
+18830 TANGUT COMPONENT-049
+18831 TANGUT COMPONENT-050
+18832 TANGUT COMPONENT-051
+18833 TANGUT COMPONENT-052
+18834 TANGUT COMPONENT-053
+18835 TANGUT COMPONENT-054
+18836 TANGUT COMPONENT-055
+18837 TANGUT COMPONENT-056
+18838 TANGUT COMPONENT-057
+18839 TANGUT COMPONENT-058
+1883A TANGUT COMPONENT-059
+1883B TANGUT COMPONENT-060
+1883C TANGUT COMPONENT-061
+1883D TANGUT COMPONENT-062
+1883E TANGUT COMPONENT-063
+1883F TANGUT COMPONENT-064
+18840 TANGUT COMPONENT-065
+18841 TANGUT COMPONENT-066
+18842 TANGUT COMPONENT-067
+18843 TANGUT COMPONENT-068
+18844 TANGUT COMPONENT-069
+18845 TANGUT COMPONENT-070
+18846 TANGUT COMPONENT-071
+18847 TANGUT COMPONENT-072
+18848 TANGUT COMPONENT-073
+18849 TANGUT COMPONENT-074
+1884A TANGUT COMPONENT-075
+1884B TANGUT COMPONENT-076
+1884C TANGUT COMPONENT-077
+1884D TANGUT COMPONENT-078
+1884E TANGUT COMPONENT-079
+1884F TANGUT COMPONENT-080
+18850 TANGUT COMPONENT-081
+18851 TANGUT COMPONENT-082
+18852 TANGUT COMPONENT-083
+18853 TANGUT COMPONENT-084
+18854 TANGUT COMPONENT-085
+18855 TANGUT COMPONENT-086
+18856 TANGUT COMPONENT-087
+18857 TANGUT COMPONENT-088
+18858 TANGUT COMPONENT-089
+18859 TANGUT COMPONENT-090
+1885A TANGUT COMPONENT-091
+1885B TANGUT COMPONENT-092
+1885C TANGUT COMPONENT-093
+1885D TANGUT COMPONENT-094
+1885E TANGUT COMPONENT-095
+1885F TANGUT COMPONENT-096
+18860 TANGUT COMPONENT-097
+18861 TANGUT COMPONENT-098
+18862 TANGUT COMPONENT-099
+18863 TANGUT COMPONENT-100
+18864 TANGUT COMPONENT-101
+18865 TANGUT COMPONENT-102
+18866 TANGUT COMPONENT-103
+18867 TANGUT COMPONENT-104
+18868 TANGUT COMPONENT-105
+18869 TANGUT COMPONENT-106
+1886A TANGUT COMPONENT-107
+1886B TANGUT COMPONENT-108
+1886C TANGUT COMPONENT-109
+1886D TANGUT COMPONENT-110
+1886E TANGUT COMPONENT-111
+1886F TANGUT COMPONENT-112
+18870 TANGUT COMPONENT-113
+18871 TANGUT COMPONENT-114
+18872 TANGUT COMPONENT-115
+18873 TANGUT COMPONENT-116
+18874 TANGUT COMPONENT-117
+18875 TANGUT COMPONENT-118
+18876 TANGUT COMPONENT-119
+18877 TANGUT COMPONENT-120
+18878 TANGUT COMPONENT-121
+18879 TANGUT COMPONENT-122
+1887A TANGUT COMPONENT-123
+1887B TANGUT COMPONENT-124
+1887C TANGUT COMPONENT-125
+1887D TANGUT COMPONENT-126
+1887E TANGUT COMPONENT-127
+1887F TANGUT COMPONENT-128
+18880 TANGUT COMPONENT-129
+18881 TANGUT COMPONENT-130
+18882 TANGUT COMPONENT-131
+18883 TANGUT COMPONENT-132
+18884 TANGUT COMPONENT-133
+18885 TANGUT COMPONENT-134
+18886 TANGUT COMPONENT-135
+18887 TANGUT COMPONENT-136
+18888 TANGUT COMPONENT-137
+18889 TANGUT COMPONENT-138
+1888A TANGUT COMPONENT-139
+1888B TANGUT COMPONENT-140
+1888C TANGUT COMPONENT-141
+1888D TANGUT COMPONENT-142
+1888E TANGUT COMPONENT-143
+1888F TANGUT COMPONENT-144
+18890 TANGUT COMPONENT-145
+18891 TANGUT COMPONENT-146
+18892 TANGUT COMPONENT-147
+18893 TANGUT COMPONENT-148
+18894 TANGUT COMPONENT-149
+18895 TANGUT COMPONENT-150
+18896 TANGUT COMPONENT-151
+18897 TANGUT COMPONENT-152
+18898 TANGUT COMPONENT-153
+18899 TANGUT COMPONENT-154
+1889A TANGUT COMPONENT-155
+1889B TANGUT COMPONENT-156
+1889C TANGUT COMPONENT-157
+1889D TANGUT COMPONENT-158
+1889E TANGUT COMPONENT-159
+1889F TANGUT COMPONENT-160
+188A0 TANGUT COMPONENT-161
+188A1 TANGUT COMPONENT-162
+188A2 TANGUT COMPONENT-163
+188A3 TANGUT COMPONENT-164
+188A4 TANGUT COMPONENT-165
+188A5 TANGUT COMPONENT-166
+188A6 TANGUT COMPONENT-167
+188A7 TANGUT COMPONENT-168
+188A8 TANGUT COMPONENT-169
+188A9 TANGUT COMPONENT-170
+188AA TANGUT COMPONENT-171
+188AB TANGUT COMPONENT-172
+188AC TANGUT COMPONENT-173
+188AD TANGUT COMPONENT-174
+188AE TANGUT COMPONENT-175
+188AF TANGUT COMPONENT-176
+188B0 TANGUT COMPONENT-177
+188B1 TANGUT COMPONENT-178
+188B2 TANGUT COMPONENT-179
+188B3 TANGUT COMPONENT-180
+188B4 TANGUT COMPONENT-181
+188B5 TANGUT COMPONENT-182
+188B6 TANGUT COMPONENT-183
+188B7 TANGUT COMPONENT-184
+188B8 TANGUT COMPONENT-185
+188B9 TANGUT COMPONENT-186
+188BA TANGUT COMPONENT-187
+188BB TANGUT COMPONENT-188
+188BC TANGUT COMPONENT-189
+188BD TANGUT COMPONENT-190
+188BE TANGUT COMPONENT-191
+188BF TANGUT COMPONENT-192
+188C0 TANGUT COMPONENT-193
+188C1 TANGUT COMPONENT-194
+188C2 TANGUT COMPONENT-195
+188C3 TANGUT COMPONENT-196
+188C4 TANGUT COMPONENT-197
+188C5 TANGUT COMPONENT-198
+188C6 TANGUT COMPONENT-199
+188C7 TANGUT COMPONENT-200
+188C8 TANGUT COMPONENT-201
+188C9 TANGUT COMPONENT-202
+188CA TANGUT COMPONENT-203
+188CB TANGUT COMPONENT-204
+188CC TANGUT COMPONENT-205
+188CD TANGUT COMPONENT-206
+188CE TANGUT COMPONENT-207
+188CF TANGUT COMPONENT-208
+188D0 TANGUT COMPONENT-209
+188D1 TANGUT COMPONENT-210
+188D2 TANGUT COMPONENT-211
+188D3 TANGUT COMPONENT-212
+188D4 TANGUT COMPONENT-213
+188D5 TANGUT COMPONENT-214
+188D6 TANGUT COMPONENT-215
+188D7 TANGUT COMPONENT-216
+188D8 TANGUT COMPONENT-217
+188D9 TANGUT COMPONENT-218
+188DA TANGUT COMPONENT-219
+188DB TANGUT COMPONENT-220
+188DC TANGUT COMPONENT-221
+188DD TANGUT COMPONENT-222
+188DE TANGUT COMPONENT-223
+188DF TANGUT COMPONENT-224
+188E0 TANGUT COMPONENT-225
+188E1 TANGUT COMPONENT-226
+188E2 TANGUT COMPONENT-227
+188E3 TANGUT COMPONENT-228
+188E4 TANGUT COMPONENT-229
+188E5 TANGUT COMPONENT-230
+188E6 TANGUT COMPONENT-231
+188E7 TANGUT COMPONENT-232
+188E8 TANGUT COMPONENT-233
+188E9 TANGUT COMPONENT-234
+188EA TANGUT COMPONENT-235
+188EB TANGUT COMPONENT-236
+188EC TANGUT COMPONENT-237
+188ED TANGUT COMPONENT-238
+188EE TANGUT COMPONENT-239
+188EF TANGUT COMPONENT-240
+188F0 TANGUT COMPONENT-241
+188F1 TANGUT COMPONENT-242
+188F2 TANGUT COMPONENT-243
+188F3 TANGUT COMPONENT-244
+188F4 TANGUT COMPONENT-245
+188F5 TANGUT COMPONENT-246
+188F6 TANGUT COMPONENT-247
+188F7 TANGUT COMPONENT-248
+188F8 TANGUT COMPONENT-249
+188F9 TANGUT COMPONENT-250
+188FA TANGUT COMPONENT-251
+188FB TANGUT COMPONENT-252
+188FC TANGUT COMPONENT-253
+188FD TANGUT COMPONENT-254
+188FE TANGUT COMPONENT-255
+188FF TANGUT COMPONENT-256
+18900 TANGUT COMPONENT-257
+18901 TANGUT COMPONENT-258
+18902 TANGUT COMPONENT-259
+18903 TANGUT COMPONENT-260
+18904 TANGUT COMPONENT-261
+18905 TANGUT COMPONENT-262
+18906 TANGUT COMPONENT-263
+18907 TANGUT COMPONENT-264
+18908 TANGUT COMPONENT-265
+18909 TANGUT COMPONENT-266
+1890A TANGUT COMPONENT-267
+1890B TANGUT COMPONENT-268
+1890C TANGUT COMPONENT-269
+1890D TANGUT COMPONENT-270
+1890E TANGUT COMPONENT-271
+1890F TANGUT COMPONENT-272
+18910 TANGUT COMPONENT-273
+18911 TANGUT COMPONENT-274
+18912 TANGUT COMPONENT-275
+18913 TANGUT COMPONENT-276
+18914 TANGUT COMPONENT-277
+18915 TANGUT COMPONENT-278
+18916 TANGUT COMPONENT-279
+18917 TANGUT COMPONENT-280
+18918 TANGUT COMPONENT-281
+18919 TANGUT COMPONENT-282
+1891A TANGUT COMPONENT-283
+1891B TANGUT COMPONENT-284
+1891C TANGUT COMPONENT-285
+1891D TANGUT COMPONENT-286
+1891E TANGUT COMPONENT-287
+1891F TANGUT COMPONENT-288
+18920 TANGUT COMPONENT-289
+18921 TANGUT COMPONENT-290
+18922 TANGUT COMPONENT-291
+18923 TANGUT COMPONENT-292
+18924 TANGUT COMPONENT-293
+18925 TANGUT COMPONENT-294
+18926 TANGUT COMPONENT-295
+18927 TANGUT COMPONENT-296
+18928 TANGUT COMPONENT-297
+18929 TANGUT COMPONENT-298
+1892A TANGUT COMPONENT-299
+1892B TANGUT COMPONENT-300
+1892C TANGUT COMPONENT-301
+1892D TANGUT COMPONENT-302
+1892E TANGUT COMPONENT-303
+1892F TANGUT COMPONENT-304
+18930 TANGUT COMPONENT-305
+18931 TANGUT COMPONENT-306
+18932 TANGUT COMPONENT-307
+18933 TANGUT COMPONENT-308
+18934 TANGUT COMPONENT-309
+18935 TANGUT COMPONENT-310
+18936 TANGUT COMPONENT-311
+18937 TANGUT COMPONENT-312
+18938 TANGUT COMPONENT-313
+18939 TANGUT COMPONENT-314
+1893A TANGUT COMPONENT-315
+1893B TANGUT COMPONENT-316
+1893C TANGUT COMPONENT-317
+1893D TANGUT COMPONENT-318
+1893E TANGUT COMPONENT-319
+1893F TANGUT COMPONENT-320
+18940 TANGUT COMPONENT-321
+18941 TANGUT COMPONENT-322
+18942 TANGUT COMPONENT-323
+18943 TANGUT COMPONENT-324
+18944 TANGUT COMPONENT-325
+18945 TANGUT COMPONENT-326
+18946 TANGUT COMPONENT-327
+18947 TANGUT COMPONENT-328
+18948 TANGUT COMPONENT-329
+18949 TANGUT COMPONENT-330
+1894A TANGUT COMPONENT-331
+1894B TANGUT COMPONENT-332
+1894C TANGUT COMPONENT-333
+1894D TANGUT COMPONENT-334
+1894E TANGUT COMPONENT-335
+1894F TANGUT COMPONENT-336
+18950 TANGUT COMPONENT-337
+18951 TANGUT COMPONENT-338
+18952 TANGUT COMPONENT-339
+18953 TANGUT COMPONENT-340
+18954 TANGUT COMPONENT-341
+18955 TANGUT COMPONENT-342
+18956 TANGUT COMPONENT-343
+18957 TANGUT COMPONENT-344
+18958 TANGUT COMPONENT-345
+18959 TANGUT COMPONENT-346
+1895A TANGUT COMPONENT-347
+1895B TANGUT COMPONENT-348
+1895C TANGUT COMPONENT-349
+1895D TANGUT COMPONENT-350
+1895E TANGUT COMPONENT-351
+1895F TANGUT COMPONENT-352
+18960 TANGUT COMPONENT-353
+18961 TANGUT COMPONENT-354
+18962 TANGUT COMPONENT-355
+18963 TANGUT COMPONENT-356
+18964 TANGUT COMPONENT-357
+18965 TANGUT COMPONENT-358
+18966 TANGUT COMPONENT-359
+18967 TANGUT COMPONENT-360
+18968 TANGUT COMPONENT-361
+18969 TANGUT COMPONENT-362
+1896A TANGUT COMPONENT-363
+1896B TANGUT COMPONENT-364
+1896C TANGUT COMPONENT-365
+1896D TANGUT COMPONENT-366
+1896E TANGUT COMPONENT-367
+1896F TANGUT COMPONENT-368
+18970 TANGUT COMPONENT-369
+18971 TANGUT COMPONENT-370
+18972 TANGUT COMPONENT-371
+18973 TANGUT COMPONENT-372
+18974 TANGUT COMPONENT-373
+18975 TANGUT COMPONENT-374
+18976 TANGUT COMPONENT-375
+18977 TANGUT COMPONENT-376
+18978 TANGUT COMPONENT-377
+18979 TANGUT COMPONENT-378
+1897A TANGUT COMPONENT-379
+1897B TANGUT COMPONENT-380
+1897C TANGUT COMPONENT-381
+1897D TANGUT COMPONENT-382
+1897E TANGUT COMPONENT-383
+1897F TANGUT COMPONENT-384
+18980 TANGUT COMPONENT-385
+18981 TANGUT COMPONENT-386
+18982 TANGUT COMPONENT-387
+18983 TANGUT COMPONENT-388
+18984 TANGUT COMPONENT-389
+18985 TANGUT COMPONENT-390
+18986 TANGUT COMPONENT-391
+18987 TANGUT COMPONENT-392
+18988 TANGUT COMPONENT-393
+18989 TANGUT COMPONENT-394
+1898A TANGUT COMPONENT-395
+1898B TANGUT COMPONENT-396
+1898C TANGUT COMPONENT-397
+1898D TANGUT COMPONENT-398
+1898E TANGUT COMPONENT-399
+1898F TANGUT COMPONENT-400
+18990 TANGUT COMPONENT-401
+18991 TANGUT COMPONENT-402
+18992 TANGUT COMPONENT-403
+18993 TANGUT COMPONENT-404
+18994 TANGUT COMPONENT-405
+18995 TANGUT COMPONENT-406
+18996 TANGUT COMPONENT-407
+18997 TANGUT COMPONENT-408
+18998 TANGUT COMPONENT-409
+18999 TANGUT COMPONENT-410
+1899A TANGUT COMPONENT-411
+1899B TANGUT COMPONENT-412
+1899C TANGUT COMPONENT-413
+1899D TANGUT COMPONENT-414
+1899E TANGUT COMPONENT-415
+1899F TANGUT COMPONENT-416
+189A0 TANGUT COMPONENT-417
+189A1 TANGUT COMPONENT-418
+189A2 TANGUT COMPONENT-419
+189A3 TANGUT COMPONENT-420
+189A4 TANGUT COMPONENT-421
+189A5 TANGUT COMPONENT-422
+189A6 TANGUT COMPONENT-423
+189A7 TANGUT COMPONENT-424
+189A8 TANGUT COMPONENT-425
+189A9 TANGUT COMPONENT-426
+189AA TANGUT COMPONENT-427
+189AB TANGUT COMPONENT-428
+189AC TANGUT COMPONENT-429
+189AD TANGUT COMPONENT-430
+189AE TANGUT COMPONENT-431
+189AF TANGUT COMPONENT-432
+189B0 TANGUT COMPONENT-433
+189B1 TANGUT COMPONENT-434
+189B2 TANGUT COMPONENT-435
+189B3 TANGUT COMPONENT-436
+189B4 TANGUT COMPONENT-437
+189B5 TANGUT COMPONENT-438
+189B6 TANGUT COMPONENT-439
+189B7 TANGUT COMPONENT-440
+189B8 TANGUT COMPONENT-441
+189B9 TANGUT COMPONENT-442
+189BA TANGUT COMPONENT-443
+189BB TANGUT COMPONENT-444
+189BC TANGUT COMPONENT-445
+189BD TANGUT COMPONENT-446
+189BE TANGUT COMPONENT-447
+189BF TANGUT COMPONENT-448
+189C0 TANGUT COMPONENT-449
+189C1 TANGUT COMPONENT-450
+189C2 TANGUT COMPONENT-451
+189C3 TANGUT COMPONENT-452
+189C4 TANGUT COMPONENT-453
+189C5 TANGUT COMPONENT-454
+189C6 TANGUT COMPONENT-455
+189C7 TANGUT COMPONENT-456
+189C8 TANGUT COMPONENT-457
+189C9 TANGUT COMPONENT-458
+189CA TANGUT COMPONENT-459
+189CB TANGUT COMPONENT-460
+189CC TANGUT COMPONENT-461
+189CD TANGUT COMPONENT-462
+189CE TANGUT COMPONENT-463
+189CF TANGUT COMPONENT-464
+189D0 TANGUT COMPONENT-465
+189D1 TANGUT COMPONENT-466
+189D2 TANGUT COMPONENT-467
+189D3 TANGUT COMPONENT-468
+189D4 TANGUT COMPONENT-469
+189D5 TANGUT COMPONENT-470
+189D6 TANGUT COMPONENT-471
+189D7 TANGUT COMPONENT-472
+189D8 TANGUT COMPONENT-473
+189D9 TANGUT COMPONENT-474
+189DA TANGUT COMPONENT-475
+189DB TANGUT COMPONENT-476
+189DC TANGUT COMPONENT-477
+189DD TANGUT COMPONENT-478
+189DE TANGUT COMPONENT-479
+189DF TANGUT COMPONENT-480
+189E0 TANGUT COMPONENT-481
+189E1 TANGUT COMPONENT-482
+189E2 TANGUT COMPONENT-483
+189E3 TANGUT COMPONENT-484
+189E4 TANGUT COMPONENT-485
+189E5 TANGUT COMPONENT-486
+189E6 TANGUT COMPONENT-487
+189E7 TANGUT COMPONENT-488
+189E8 TANGUT COMPONENT-489
+189E9 TANGUT COMPONENT-490
+189EA TANGUT COMPONENT-491
+189EB TANGUT COMPONENT-492
+189EC TANGUT COMPONENT-493
+189ED TANGUT COMPONENT-494
+189EE TANGUT COMPONENT-495
+189EF TANGUT COMPONENT-496
+189F0 TANGUT COMPONENT-497
+189F1 TANGUT COMPONENT-498
+189F2 TANGUT COMPONENT-499
+189F3 TANGUT COMPONENT-500
+189F4 TANGUT COMPONENT-501
+189F5 TANGUT COMPONENT-502
+189F6 TANGUT COMPONENT-503
+189F7 TANGUT COMPONENT-504
+189F8 TANGUT COMPONENT-505
+189F9 TANGUT COMPONENT-506
+189FA TANGUT COMPONENT-507
+189FB TANGUT COMPONENT-508
+189FC TANGUT COMPONENT-509
+189FD TANGUT COMPONENT-510
+189FE TANGUT COMPONENT-511
+189FF TANGUT COMPONENT-512
+18A00 TANGUT COMPONENT-513
+18A01 TANGUT COMPONENT-514
+18A02 TANGUT COMPONENT-515
+18A03 TANGUT COMPONENT-516
+18A04 TANGUT COMPONENT-517
+18A05 TANGUT COMPONENT-518
+18A06 TANGUT COMPONENT-519
+18A07 TANGUT COMPONENT-520
+18A08 TANGUT COMPONENT-521
+18A09 TANGUT COMPONENT-522
+18A0A TANGUT COMPONENT-523
+18A0B TANGUT COMPONENT-524
+18A0C TANGUT COMPONENT-525
+18A0D TANGUT COMPONENT-526
+18A0E TANGUT COMPONENT-527
+18A0F TANGUT COMPONENT-528
+18A10 TANGUT COMPONENT-529
+18A11 TANGUT COMPONENT-530
+18A12 TANGUT COMPONENT-531
+18A13 TANGUT COMPONENT-532
+18A14 TANGUT COMPONENT-533
+18A15 TANGUT COMPONENT-534
+18A16 TANGUT COMPONENT-535
+18A17 TANGUT COMPONENT-536
+18A18 TANGUT COMPONENT-537
+18A19 TANGUT COMPONENT-538
+18A1A TANGUT COMPONENT-539
+18A1B TANGUT COMPONENT-540
+18A1C TANGUT COMPONENT-541
+18A1D TANGUT COMPONENT-542
+18A1E TANGUT COMPONENT-543
+18A1F TANGUT COMPONENT-544
+18A20 TANGUT COMPONENT-545
+18A21 TANGUT COMPONENT-546
+18A22 TANGUT COMPONENT-547
+18A23 TANGUT COMPONENT-548
+18A24 TANGUT COMPONENT-549
+18A25 TANGUT COMPONENT-550
+18A26 TANGUT COMPONENT-551
+18A27 TANGUT COMPONENT-552
+18A28 TANGUT COMPONENT-553
+18A29 TANGUT COMPONENT-554
+18A2A TANGUT COMPONENT-555
+18A2B TANGUT COMPONENT-556
+18A2C TANGUT COMPONENT-557
+18A2D TANGUT COMPONENT-558
+18A2E TANGUT COMPONENT-559
+18A2F TANGUT COMPONENT-560
+18A30 TANGUT COMPONENT-561
+18A31 TANGUT COMPONENT-562
+18A32 TANGUT COMPONENT-563
+18A33 TANGUT COMPONENT-564
+18A34 TANGUT COMPONENT-565
+18A35 TANGUT COMPONENT-566
+18A36 TANGUT COMPONENT-567
+18A37 TANGUT COMPONENT-568
+18A38 TANGUT COMPONENT-569
+18A39 TANGUT COMPONENT-570
+18A3A TANGUT COMPONENT-571
+18A3B TANGUT COMPONENT-572
+18A3C TANGUT COMPONENT-573
+18A3D TANGUT COMPONENT-574
+18A3E TANGUT COMPONENT-575
+18A3F TANGUT COMPONENT-576
+18A40 TANGUT COMPONENT-577
+18A41 TANGUT COMPONENT-578
+18A42 TANGUT COMPONENT-579
+18A43 TANGUT COMPONENT-580
+18A44 TANGUT COMPONENT-581
+18A45 TANGUT COMPONENT-582
+18A46 TANGUT COMPONENT-583
+18A47 TANGUT COMPONENT-584
+18A48 TANGUT COMPONENT-585
+18A49 TANGUT COMPONENT-586
+18A4A TANGUT COMPONENT-587
+18A4B TANGUT COMPONENT-588
+18A4C TANGUT COMPONENT-589
+18A4D TANGUT COMPONENT-590
+18A4E TANGUT COMPONENT-591
+18A4F TANGUT COMPONENT-592
+18A50 TANGUT COMPONENT-593
+18A51 TANGUT COMPONENT-594
+18A52 TANGUT COMPONENT-595
+18A53 TANGUT COMPONENT-596
+18A54 TANGUT COMPONENT-597
+18A55 TANGUT COMPONENT-598
+18A56 TANGUT COMPONENT-599
+18A57 TANGUT COMPONENT-600
+18A58 TANGUT COMPONENT-601
+18A59 TANGUT COMPONENT-602
+18A5A TANGUT COMPONENT-603
+18A5B TANGUT COMPONENT-604
+18A5C TANGUT COMPONENT-605
+18A5D TANGUT COMPONENT-606
+18A5E TANGUT COMPONENT-607
+18A5F TANGUT COMPONENT-608
+18A60 TANGUT COMPONENT-609
+18A61 TANGUT COMPONENT-610
+18A62 TANGUT COMPONENT-611
+18A63 TANGUT COMPONENT-612
+18A64 TANGUT COMPONENT-613
+18A65 TANGUT COMPONENT-614
+18A66 TANGUT COMPONENT-615
+18A67 TANGUT COMPONENT-616
+18A68 TANGUT COMPONENT-617
+18A69 TANGUT COMPONENT-618
+18A6A TANGUT COMPONENT-619
+18A6B TANGUT COMPONENT-620
+18A6C TANGUT COMPONENT-621
+18A6D TANGUT COMPONENT-622
+18A6E TANGUT COMPONENT-623
+18A6F TANGUT COMPONENT-624
+18A70 TANGUT COMPONENT-625
+18A71 TANGUT COMPONENT-626
+18A72 TANGUT COMPONENT-627
+18A73 TANGUT COMPONENT-628
+18A74 TANGUT COMPONENT-629
+18A75 TANGUT COMPONENT-630
+18A76 TANGUT COMPONENT-631
+18A77 TANGUT COMPONENT-632
+18A78 TANGUT COMPONENT-633
+18A79 TANGUT COMPONENT-634
+18A7A TANGUT COMPONENT-635
+18A7B TANGUT COMPONENT-636
+18A7C TANGUT COMPONENT-637
+18A7D TANGUT COMPONENT-638
+18A7E TANGUT COMPONENT-639
+18A7F TANGUT COMPONENT-640
+18A80 TANGUT COMPONENT-641
+18A81 TANGUT COMPONENT-642
+18A82 TANGUT COMPONENT-643
+18A83 TANGUT COMPONENT-644
+18A84 TANGUT COMPONENT-645
+18A85 TANGUT COMPONENT-646
+18A86 TANGUT COMPONENT-647
+18A87 TANGUT COMPONENT-648
+18A88 TANGUT COMPONENT-649
+18A89 TANGUT COMPONENT-650
+18A8A TANGUT COMPONENT-651
+18A8B TANGUT COMPONENT-652
+18A8C TANGUT COMPONENT-653
+18A8D TANGUT COMPONENT-654
+18A8E TANGUT COMPONENT-655
+18A8F TANGUT COMPONENT-656
+18A90 TANGUT COMPONENT-657
+18A91 TANGUT COMPONENT-658
+18A92 TANGUT COMPONENT-659
+18A93 TANGUT COMPONENT-660
+18A94 TANGUT COMPONENT-661
+18A95 TANGUT COMPONENT-662
+18A96 TANGUT COMPONENT-663
+18A97 TANGUT COMPONENT-664
+18A98 TANGUT COMPONENT-665
+18A99 TANGUT COMPONENT-666
+18A9A TANGUT COMPONENT-667
+18A9B TANGUT COMPONENT-668
+18A9C TANGUT COMPONENT-669
+18A9D TANGUT COMPONENT-670
+18A9E TANGUT COMPONENT-671
+18A9F TANGUT COMPONENT-672
+18AA0 TANGUT COMPONENT-673
+18AA1 TANGUT COMPONENT-674
+18AA2 TANGUT COMPONENT-675
+18AA3 TANGUT COMPONENT-676
+18AA4 TANGUT COMPONENT-677
+18AA5 TANGUT COMPONENT-678
+18AA6 TANGUT COMPONENT-679
+18AA7 TANGUT COMPONENT-680
+18AA8 TANGUT COMPONENT-681
+18AA9 TANGUT COMPONENT-682
+18AAA TANGUT COMPONENT-683
+18AAB TANGUT COMPONENT-684
+18AAC TANGUT COMPONENT-685
+18AAD TANGUT COMPONENT-686
+18AAE TANGUT COMPONENT-687
+18AAF TANGUT COMPONENT-688
+18AB0 TANGUT COMPONENT-689
+18AB1 TANGUT COMPONENT-690
+18AB2 TANGUT COMPONENT-691
+18AB3 TANGUT COMPONENT-692
+18AB4 TANGUT COMPONENT-693
+18AB5 TANGUT COMPONENT-694
+18AB6 TANGUT COMPONENT-695
+18AB7 TANGUT COMPONENT-696
+18AB8 TANGUT COMPONENT-697
+18AB9 TANGUT COMPONENT-698
+18ABA TANGUT COMPONENT-699
+18ABB TANGUT COMPONENT-700
+18ABC TANGUT COMPONENT-701
+18ABD TANGUT COMPONENT-702
+18ABE TANGUT COMPONENT-703
+18ABF TANGUT COMPONENT-704
+18AC0 TANGUT COMPONENT-705
+18AC1 TANGUT COMPONENT-706
+18AC2 TANGUT COMPONENT-707
+18AC3 TANGUT COMPONENT-708
+18AC4 TANGUT COMPONENT-709
+18AC5 TANGUT COMPONENT-710
+18AC6 TANGUT COMPONENT-711
+18AC7 TANGUT COMPONENT-712
+18AC8 TANGUT COMPONENT-713
+18AC9 TANGUT COMPONENT-714
+18ACA TANGUT COMPONENT-715
+18ACB TANGUT COMPONENT-716
+18ACC TANGUT COMPONENT-717
+18ACD TANGUT COMPONENT-718
+18ACE TANGUT COMPONENT-719
+18ACF TANGUT COMPONENT-720
+18AD0 TANGUT COMPONENT-721
+18AD1 TANGUT COMPONENT-722
+18AD2 TANGUT COMPONENT-723
+18AD3 TANGUT COMPONENT-724
+18AD4 TANGUT COMPONENT-725
+18AD5 TANGUT COMPONENT-726
+18AD6 TANGUT COMPONENT-727
+18AD7 TANGUT COMPONENT-728
+18AD8 TANGUT COMPONENT-729
+18AD9 TANGUT COMPONENT-730
+18ADA TANGUT COMPONENT-731
+18ADB TANGUT COMPONENT-732
+18ADC TANGUT COMPONENT-733
+18ADD TANGUT COMPONENT-734
+18ADE TANGUT COMPONENT-735
+18ADF TANGUT COMPONENT-736
+18AE0 TANGUT COMPONENT-737
+18AE1 TANGUT COMPONENT-738
+18AE2 TANGUT COMPONENT-739
+18AE3 TANGUT COMPONENT-740
+18AE4 TANGUT COMPONENT-741
+18AE5 TANGUT COMPONENT-742
+18AE6 TANGUT COMPONENT-743
+18AE7 TANGUT COMPONENT-744
+18AE8 TANGUT COMPONENT-745
+18AE9 TANGUT COMPONENT-746
+18AEA TANGUT COMPONENT-747
+18AEB TANGUT COMPONENT-748
+18AEC TANGUT COMPONENT-749
+18AED TANGUT COMPONENT-750
+18AEE TANGUT COMPONENT-751
+18AEF TANGUT COMPONENT-752
+18AF0 TANGUT COMPONENT-753
+18AF1 TANGUT COMPONENT-754
+18AF2 TANGUT COMPONENT-755
1B000 KATAKANA LETTER ARCHAIC E
1B001 HIRAGANA LETTER ARCHAIC YE
1BC00 DUPLOYAN LETTER H
@@ -25838,6 +26995,44 @@ return <<'END';
1DAAD SIGNWRITING ROTATION MODIFIER-14
1DAAE SIGNWRITING ROTATION MODIFIER-15
1DAAF SIGNWRITING ROTATION MODIFIER-16
+1E000 COMBINING GLAGOLITIC LETTER AZU
+1E001 COMBINING GLAGOLITIC LETTER BUKY
+1E002 COMBINING GLAGOLITIC LETTER VEDE
+1E003 COMBINING GLAGOLITIC LETTER GLAGOLI
+1E004 COMBINING GLAGOLITIC LETTER DOBRO
+1E005 COMBINING GLAGOLITIC LETTER YESTU
+1E006 COMBINING GLAGOLITIC LETTER ZHIVETE
+1E008 COMBINING GLAGOLITIC LETTER ZEMLJA
+1E009 COMBINING GLAGOLITIC LETTER IZHE
+1E00A COMBINING GLAGOLITIC LETTER INITIAL IZHE
+1E00B COMBINING GLAGOLITIC LETTER I
+1E00C COMBINING GLAGOLITIC LETTER DJERVI
+1E00D COMBINING GLAGOLITIC LETTER KAKO
+1E00E COMBINING GLAGOLITIC LETTER LJUDIJE
+1E00F COMBINING GLAGOLITIC LETTER MYSLITE
+1E010 COMBINING GLAGOLITIC LETTER NASHI
+1E011 COMBINING GLAGOLITIC LETTER ONU
+1E012 COMBINING GLAGOLITIC LETTER POKOJI
+1E013 COMBINING GLAGOLITIC LETTER RITSI
+1E014 COMBINING GLAGOLITIC LETTER SLOVO
+1E015 COMBINING GLAGOLITIC LETTER TVRIDO
+1E016 COMBINING GLAGOLITIC LETTER UKU
+1E017 COMBINING GLAGOLITIC LETTER FRITU
+1E018 COMBINING GLAGOLITIC LETTER HERU
+1E01B COMBINING GLAGOLITIC LETTER SHTA
+1E01C COMBINING GLAGOLITIC LETTER TSI
+1E01D COMBINING GLAGOLITIC LETTER CHRIVI
+1E01E COMBINING GLAGOLITIC LETTER SHA
+1E01F COMBINING GLAGOLITIC LETTER YERU
+1E020 COMBINING GLAGOLITIC LETTER YERI
+1E021 COMBINING GLAGOLITIC LETTER YATI
+1E023 COMBINING GLAGOLITIC LETTER YU
+1E024 COMBINING GLAGOLITIC LETTER SMALL YUS
+1E026 COMBINING GLAGOLITIC LETTER YO
+1E027 COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS
+1E028 COMBINING GLAGOLITIC LETTER BIG YUS
+1E029 COMBINING GLAGOLITIC LETTER IOTATED BIG YUS
+1E02A COMBINING GLAGOLITIC LETTER FITA
1E800 MENDE KIKAKUI SYLLABLE M001 KI
1E801 MENDE KIKAKUI SYLLABLE M002 KA
1E802 MENDE KIKAKUI SYLLABLE M003 KU
@@ -26051,6 +27246,93 @@ return <<'END';
1E8D4 MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS
1E8D5 MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS
1E8D6 MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1E900 ADLAM CAPITAL LETTER ALIF
+1E901 ADLAM CAPITAL LETTER DAALI
+1E902 ADLAM CAPITAL LETTER LAAM
+1E903 ADLAM CAPITAL LETTER MIIM
+1E904 ADLAM CAPITAL LETTER BA
+1E905 ADLAM CAPITAL LETTER SINNYIIYHE
+1E906 ADLAM CAPITAL LETTER PE
+1E907 ADLAM CAPITAL LETTER BHE
+1E908 ADLAM CAPITAL LETTER RA
+1E909 ADLAM CAPITAL LETTER E
+1E90A ADLAM CAPITAL LETTER FA
+1E90B ADLAM CAPITAL LETTER I
+1E90C ADLAM CAPITAL LETTER O
+1E90D ADLAM CAPITAL LETTER DHA
+1E90E ADLAM CAPITAL LETTER YHE
+1E90F ADLAM CAPITAL LETTER WAW
+1E910 ADLAM CAPITAL LETTER NUN
+1E911 ADLAM CAPITAL LETTER KAF
+1E912 ADLAM CAPITAL LETTER YA
+1E913 ADLAM CAPITAL LETTER U
+1E914 ADLAM CAPITAL LETTER JIIM
+1E915 ADLAM CAPITAL LETTER CHI
+1E916 ADLAM CAPITAL LETTER HA
+1E917 ADLAM CAPITAL LETTER QAAF
+1E918 ADLAM CAPITAL LETTER GA
+1E919 ADLAM CAPITAL LETTER NYA
+1E91A ADLAM CAPITAL LETTER TU
+1E91B ADLAM CAPITAL LETTER NHA
+1E91C ADLAM CAPITAL LETTER VA
+1E91D ADLAM CAPITAL LETTER KHA
+1E91E ADLAM CAPITAL LETTER GBE
+1E91F ADLAM CAPITAL LETTER ZAL
+1E920 ADLAM CAPITAL LETTER KPO
+1E921 ADLAM CAPITAL LETTER SHA
+1E922 ADLAM SMALL LETTER ALIF
+1E923 ADLAM SMALL LETTER DAALI
+1E924 ADLAM SMALL LETTER LAAM
+1E925 ADLAM SMALL LETTER MIIM
+1E926 ADLAM SMALL LETTER BA
+1E927 ADLAM SMALL LETTER SINNYIIYHE
+1E928 ADLAM SMALL LETTER PE
+1E929 ADLAM SMALL LETTER BHE
+1E92A ADLAM SMALL LETTER RA
+1E92B ADLAM SMALL LETTER E
+1E92C ADLAM SMALL LETTER FA
+1E92D ADLAM SMALL LETTER I
+1E92E ADLAM SMALL LETTER O
+1E92F ADLAM SMALL LETTER DHA
+1E930 ADLAM SMALL LETTER YHE
+1E931 ADLAM SMALL LETTER WAW
+1E932 ADLAM SMALL LETTER NUN
+1E933 ADLAM SMALL LETTER KAF
+1E934 ADLAM SMALL LETTER YA
+1E935 ADLAM SMALL LETTER U
+1E936 ADLAM SMALL LETTER JIIM
+1E937 ADLAM SMALL LETTER CHI
+1E938 ADLAM SMALL LETTER HA
+1E939 ADLAM SMALL LETTER QAAF
+1E93A ADLAM SMALL LETTER GA
+1E93B ADLAM SMALL LETTER NYA
+1E93C ADLAM SMALL LETTER TU
+1E93D ADLAM SMALL LETTER NHA
+1E93E ADLAM SMALL LETTER VA
+1E93F ADLAM SMALL LETTER KHA
+1E940 ADLAM SMALL LETTER GBE
+1E941 ADLAM SMALL LETTER ZAL
+1E942 ADLAM SMALL LETTER KPO
+1E943 ADLAM SMALL LETTER SHA
+1E944 ADLAM ALIF LENGTHENER
+1E945 ADLAM VOWEL LENGTHENER
+1E946 ADLAM GEMINATION MARK
+1E947 ADLAM HAMZA
+1E948 ADLAM CONSONANT MODIFIER
+1E949 ADLAM GEMINATE CONSONANT MODIFIER
+1E94A ADLAM NUKTA
+1E950 ADLAM DIGIT ZERO
+1E951 ADLAM DIGIT ONE
+1E952 ADLAM DIGIT TWO
+1E953 ADLAM DIGIT THREE
+1E954 ADLAM DIGIT FOUR
+1E955 ADLAM DIGIT FIVE
+1E956 ADLAM DIGIT SIX
+1E957 ADLAM DIGIT SEVEN
+1E958 ADLAM DIGIT EIGHT
+1E959 ADLAM DIGIT NINE
+1E95E ADLAM INITIAL EXCLAMATION MARK
+1E95F ADLAM INITIAL QUESTION MARK
1EE00 ARABIC MATHEMATICAL ALEF
1EE01 ARABIC MATHEMATICAL BEH
1EE02 ARABIC MATHEMATICAL JEEM
@@ -26567,6 +27849,24 @@ return <<'END';
1F198 SQUARED SOS
1F199 SQUARED UP WITH EXCLAMATION MARK
1F19A SQUARED VS
+1F19B SQUARED THREE D
+1F19C SQUARED SECOND SCREEN
+1F19D SQUARED TWO K
+1F19E SQUARED FOUR K
+1F19F SQUARED EIGHT K
+1F1A0 SQUARED FIVE POINT ONE
+1F1A1 SQUARED SEVEN POINT ONE
+1F1A2 SQUARED TWENTY-TWO POINT TWO
+1F1A3 SQUARED SIXTY P
+1F1A4 SQUARED ONE HUNDRED TWENTY P
+1F1A5 SQUARED LATIN SMALL LETTER D
+1F1A6 SQUARED HC
+1F1A7 SQUARED HDR
+1F1A8 SQUARED HI-RES
+1F1A9 SQUARED LOSSLESS
+1F1AA SQUARED SHV
+1F1AB SQUARED UHD
+1F1AC SQUARED VOD
1F1E6 REGIONAL INDICATOR SYMBOL LETTER A
1F1E7 REGIONAL INDICATOR SYMBOL LETTER B
1F1E8 REGIONAL INDICATOR SYMBOL LETTER C
@@ -26639,6 +27939,7 @@ return <<'END';
1F238 SQUARED CJK UNIFIED IDEOGRAPH-7533
1F239 SQUARED CJK UNIFIED IDEOGRAPH-5272
1F23A SQUARED CJK UNIFIED IDEOGRAPH-55B6
+1F23B SQUARED CJK UNIFIED IDEOGRAPH-914D
1F240 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
1F241 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
1F242 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
@@ -27284,6 +28585,7 @@ return <<'END';
1F577 SPIDER
1F578 SPIDER WEB
1F579 JOYSTICK
+1F57A MAN DANCING
1F57B LEFT HAND TELEPHONE RECEIVER
1F57C TELEPHONE RECEIVER WITH PAGE
1F57D RIGHT HAND TELEPHONE RECEIVER
@@ -27325,6 +28627,7 @@ return <<'END';
1F5A1 SIDEWAYS BLACK DOWN POINTING INDEX
1F5A2 BLACK UP POINTING BACKHAND INDEX
1F5A3 BLACK DOWN POINTING BACKHAND INDEX
+1F5A4 BLACK HEART
1F5A5 DESKTOP COMPUTER
1F5A6 KEYBOARD AND MOUSE
1F5A7 THREE NETWORKED COMPUTERS
@@ -27625,6 +28928,8 @@ return <<'END';
1F6CE BELLHOP BELL
1F6CF BED
1F6D0 PLACE OF WORSHIP
+1F6D1 OCTAGONAL SIGN
+1F6D2 SHOPPING TROLLEY
1F6E0 HAMMER AND WRENCH
1F6E1 SHIELD
1F6E2 OIL DRUM
@@ -27642,6 +28947,9 @@ return <<'END';
1F6F1 ONCOMING FIRE ENGINE
1F6F2 DIESEL LOCOMOTIVE
1F6F3 PASSENGER SHIP
+1F6F4 SCOOTER
+1F6F5 MOTOR SCOOTER
+1F6F6 CANOE
1F700 ALCHEMICAL SYMBOL FOR QUINTESSENCE
1F701 ALCHEMICAL SYMBOL FOR AIR
1F702 ALCHEMICAL SYMBOL FOR FIRE
@@ -28000,11 +29308,78 @@ return <<'END';
1F916 ROBOT FACE
1F917 HUGGING FACE
1F918 SIGN OF THE HORNS
+1F919 CALL ME HAND
+1F91A RAISED BACK OF HAND
+1F91B LEFT-FACING FIST
+1F91C RIGHT-FACING FIST
+1F91D HANDSHAKE
+1F91E HAND WITH INDEX AND MIDDLE FINGERS CROSSED
+1F920 FACE WITH COWBOY HAT
+1F921 CLOWN FACE
+1F922 NAUSEATED FACE
+1F923 ROLLING ON THE FLOOR LAUGHING
+1F924 DROOLING FACE
+1F925 LYING FACE
+1F926 FACE PALM
+1F927 SNEEZING FACE
+1F930 PREGNANT WOMAN
+1F933 SELFIE
+1F934 PRINCE
+1F935 MAN IN TUXEDO
+1F936 MOTHER CHRISTMAS
+1F937 SHRUG
+1F938 PERSON DOING CARTWHEEL
+1F939 JUGGLING
+1F93A FENCER
+1F93B MODERN PENTATHLON
+1F93C WRESTLERS
+1F93D WATER POLO
+1F93E HANDBALL
+1F940 WILTED FLOWER
+1F941 DRUM WITH DRUMSTICKS
+1F942 CLINKING GLASSES
+1F943 TUMBLER GLASS
+1F944 SPOON
+1F945 GOAL NET
+1F946 RIFLE
+1F947 FIRST PLACE MEDAL
+1F948 SECOND PLACE MEDAL
+1F949 THIRD PLACE MEDAL
+1F94A BOXING GLOVE
+1F94B MARTIAL ARTS UNIFORM
+1F950 CROISSANT
+1F951 AVOCADO
+1F952 CUCUMBER
+1F953 BACON
+1F954 POTATO
+1F955 CARROT
+1F956 BAGUETTE BREAD
+1F957 GREEN SALAD
+1F958 SHALLOW PAN OF FOOD
+1F959 STUFFED FLATBREAD
+1F95A EGG
+1F95B GLASS OF MILK
+1F95C PEANUTS
+1F95D KIWIFRUIT
+1F95E PANCAKES
1F980 CRAB
1F981 LION FACE
1F982 SCORPION
1F983 TURKEY
1F984 UNICORN FACE
+1F985 EAGLE
+1F986 DUCK
+1F987 BAT
+1F988 SHARK
+1F989 OWL
+1F98A FOX FACE
+1F98B BUTTERFLY
+1F98C DEER
+1F98D GORILLA
+1F98E LIZARD
+1F98F RHINOCEROS
+1F990 SHRIMP
+1F991 SQUID
1F9C0 CHEESE WEDGE
E0001 LANGUAGE TAG
E0020 TAG SPACE
diff --git a/Master/tlpkg/tlperl/lib/unicore/Name.pm b/Master/tlpkg/tlperl/lib/unicore/Name.pm
index bf7856805e6..9aba41b3ffc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/Name.pm
+++ b/Master/tlpkg/tlperl/lib/unicore/Name.pm
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
@@ -68,6 +68,17 @@ package charnames;
178208,
],
},
+'TANGUT IDEOGRAPH' =>
+{
+'high' =>
+[
+100332,
+],
+'low' =>
+[
+94208,
+],
+},
);
@@ -110,6 +121,17 @@ package charnames;
178208,
],
},
+'TANGUTIDEOGRAPH' =>
+{
+'high' =>
+[
+100332,
+],
+'low' =>
+[
+94208,
+],
+},
);
@@ -138,6 +160,11 @@ package charnames;
'name' => 'CJK COMPATIBILITY IDEOGRAPH',
},
{
+'high' => 100332,
+'low' => 94208,
+'name' => 'TANGUT IDEOGRAPH',
+},
+{
'high' => 173782,
'low' => 131072,
'name' => 'CJK UNIFIED IDEOGRAPH',
diff --git a/Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt b/Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt
index b1bfc2f0a31..6213419c4af 100644
--- a/Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt
+++ b/Master/tlpkg/tlperl/lib/unicore/NamedSequences.txt
@@ -1,14 +1,16 @@
-# NamedSequences-8.0.0.txt
-# Date: 2015-02-19, 00:30:00 GMT [KW, LI]
+# NamedSequences-9.0.0.txt
+# Date: 2016-05-26, 00:00:00 GMT [KW, LI]
+# © 2016 Unicode®, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Unicode Character Database
+# For documentation, see http://www.unicode.org/reports/tr44/
#
# Unicode Named Character Sequences
#
# This file is a normative contributory data file in the Unicode
# Character Database.
#
-# Copyright (c) 1991-2015 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
-#
# Format:
# Name of Sequence; Code Point Sequence for USI
#
@@ -35,6 +37,10 @@
# ================================================
+# Latin letter plus accent combinations.
+# These are part of the original set of approved named sequences
+# for Unicode 4.1. 2005.
+
LATIN CAPITAL LETTER A WITH MACRON AND GRAVE;0100 0300
LATIN SMALL LETTER A WITH MACRON AND GRAVE;0101 0300
LATIN CAPITAL LETTER E WITH VERTICAL LINE BELOW;0045 0329
@@ -463,7 +469,16 @@ SINHALA CONSONANT SIGN YANSAYA;0DCA 200D 0DBA
SINHALA CONSONANT SIGN RAKAARAANSAYA;0DCA 200D 0DBB
SINHALA CONSONANT SIGN REPAYA;0DBB 0DCA 200D
+# Georgian letter plus accent sequence.
+# This is part of the original set of approved named sequences
+# for Unicode 4.1. 2005.
+
GEORGIAN LETTER U-BRJGU;10E3 0302
+
+# Khmer subjoined forms and other sequences.
+# These are part of the original set of approved named sequences
+# for Unicode 4.1. 2005.
+
KHMER CONSONANT SIGN COENG KA;17D2 1780
KHMER CONSONANT SIGN COENG KHA;17D2 1781
KHMER CONSONANT SIGN COENG KO;17D2 1782
@@ -508,6 +523,9 @@ KHMER VOWEL SIGN AAM;17B6 17C6
# Entries for JIS X 0213 compatibility mapping.
# Provisional 2008-11-07, Approved 2010-05-14
+#
+# Two of these were part of the original set of approved named sequences
+# for Unicode 4.1. 2005.
HIRAGANA LETTER BIDAKUON NGA;304B 309A
HIRAGANA LETTER BIDAKUON NGI;304D 309A
diff --git a/Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt b/Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
index 8de6462f18c..b23fa7f7680 100644
--- a/Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
+++ b/Master/tlpkg/tlperl/lib/unicore/SpecialCasing.txt
@@ -1,10 +1,11 @@
-# SpecialCasing-8.0.0.txt
-# Date: 2014-12-16, 23:08:04 GMT [MD]
+# SpecialCasing-9.0.0.txt
+# Date: 2016-03-02, 18:55:13 GMT
+# © 2016 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# Copyright (c) 1991-2014 Unicode, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see http://www.unicode.org/reports/tr44/
#
# Special Casing
#
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Age.pl b/Master/tlpkg/tlperl/lib/unicore/To/Age.pl
index a4b80209b5d..1576cc74d30 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Age.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Age.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -172,6 +172,8 @@ return <<'END';
8A2 8AC 6.1
8AD 8B2 7.0
8B3 8B4 8.0
+8B6 8BD 9.0
+8D4 8E2 9.0
8E3 8.0
8E4 8FE 6.1
8FF 7.0
@@ -309,6 +311,7 @@ C60 C61 1.1
C62 C63 5.1
C66 C6F 1.1
C78 C7F 5.1
+C80 9.0
C81 7.0
C82 C83 1.1
C85 C8C 1.1
@@ -340,12 +343,16 @@ D44 5.1
D46 D48 1.1
D4A D4D 1.1
D4E 6.0
+D4F 9.0
+D54 D56 9.0
D57 1.1
+D58 D5E 9.0
D5F 8.0
D60 D61 1.1
D62 D63 5.1
D66 D6F 1.1
D70 D75 5.1
+D76 D78 9.0
D79 D7F 5.1
D82 D83 3.0
D85 D96 3.0
@@ -528,6 +535,7 @@ FD9 FDA 6.0
1C00 1C37 5.1
1C3B 1C49 5.1
1C4D 1C7F 5.1
+1C80 1C88 9.0
1CC0 1CC7 6.1
1CD0 1CF2 5.2
1CF3 1CF6 6.1
@@ -537,6 +545,7 @@ FD9 FDA 6.0
1DC4 1DCA 5.0
1DCB 1DE6 5.1
1DE7 1DF5 7.0
+1DFB 9.0
1DFC 6.0
1DFD 5.2
1DFE 1DFF 5.0
@@ -629,6 +638,7 @@ FD9 FDA 6.0
23E8 5.2
23E9 23F3 6.0
23F4 23FA 7.0
+23FB 23FE 9.0
2400 2424 1.1
2425 2426 3.0
2440 244A 1.1
@@ -755,6 +765,7 @@ FD9 FDA 6.0
2E31 5.2
2E32 2E3B 6.1
2E3C 2E42 7.0
+2E43 2E44 9.0
2E80 2E99 3.0
2E9B 2EF3 3.0
2F00 2FD5 3.0
@@ -841,6 +852,7 @@ A794 A79F 7.0
A7A0 A7A9 6.0
A7AA 6.1
A7AB A7AD 7.0
+A7AE 9.0
A7B0 A7B1 7.0
A7B2 A7B7 8.0
A7F7 7.0
@@ -851,6 +863,7 @@ A800 A82B 4.1
A830 A839 5.2
A840 A877 5.0
A880 A8C4 5.1
+A8C5 9.0
A8CE A8D9 5.1
A8E0 A8FB 5.2
A8FC A8FD 8.0
@@ -948,6 +961,7 @@ FFFD FFFF 1.1
10137 1013F 4.0
10140 1018A 4.1
1018B 1018C 7.0
+1018D 1018E 9.0
10190 1019B 5.1
101A0 7.0
101D0 101FD 5.1
@@ -968,6 +982,8 @@ FFFD FFFF 1.1
10428 1044D 3.1
1044E 1049D 4.0
104A0 104A9 4.0
+104B0 104D3 9.0
+104D8 104FB 9.0
10500 10527 7.0
10530 10563 7.0
1056F 7.0
@@ -1039,6 +1055,7 @@ FFFD FFFF 1.1
111E1 111F4 7.0
11200 11211 7.0
11213 1123D 7.0
+1123E 9.0
11280 11286 8.0
11288 8.0
1128A 1128D 8.0
@@ -1062,6 +1079,9 @@ FFFD FFFF 1.1
1135D 11363 7.0
11366 1136C 7.0
11370 11374 7.0
+11400 11459 9.0
+1145B 9.0
+1145D 9.0
11480 114C7 7.0
114D0 114D9 7.0
11580 115B5 7.0
@@ -1069,6 +1089,7 @@ FFFD FFFF 1.1
115CA 115DD 8.0
11600 11644 7.0
11650 11659 7.0
+11660 1166C 9.0
11680 116B7 6.1
116C0 116C9 6.1
11700 11719 8.0
@@ -1077,6 +1098,13 @@ FFFD FFFF 1.1
118A0 118F2 7.0
118FF 7.0
11AC0 11AF8 7.0
+11C00 11C08 9.0
+11C0A 11C36 9.0
+11C38 11C45 9.0
+11C50 11C6C 9.0
+11C70 11C8F 9.0
+11C92 11CA7 9.0
+11CA9 11CB6 9.0
12000 1236E 5.0
1236F 12398 7.0
12399 8.0
@@ -1101,6 +1129,9 @@ FFFD FFFF 1.1
16F00 16F44 6.1
16F50 16F7E 6.1
16F8F 16F9F 6.1
+16FE0 9.0
+17000 187EC 9.0
+18800 18AF2 9.0
1B000 1B001 6.0
1BC00 1BC6A 7.0
1BC70 1BC7C 7.0
@@ -1143,8 +1174,16 @@ FFFD FFFF 1.1
1D800 1DA8B 8.0
1DA9B 1DA9F 8.0
1DAA1 1DAAF 8.0
+1E000 1E006 9.0
+1E008 1E018 9.0
+1E01B 1E021 9.0
+1E023 1E024 9.0
+1E026 1E02A 9.0
1E800 1E8C4 7.0
1E8C7 1E8D6 7.0
+1E900 1E94A 9.0
+1E950 1E959 9.0
+1E95E 1E95F 9.0
1EE00 1EE03 6.1
1EE05 1EE1F 6.1
1EE21 1EE22 6.1
@@ -1219,11 +1258,13 @@ FFFD FFFF 1.1
1F18E 1F18F 6.0
1F190 5.2
1F191 1F19A 6.0
+1F19B 1F1AC 9.0
1F1E6 1F1FF 6.0
1F200 5.2
1F201 1F202 6.0
1F210 1F231 5.2
1F232 1F23A 6.0
+1F23B 9.0
1F240 1F248 5.2
1F250 1F251 6.0
1F300 1F320 6.0
@@ -1261,7 +1302,9 @@ FFFD FFFF 1.1
1F54B 1F54F 8.0
1F550 1F567 6.0
1F568 1F579 7.0
+1F57A 9.0
1F57B 1F5A3 7.0
+1F5A4 9.0
1F5A5 1F5FA 7.0
1F5FB 1F5FF 6.0
1F600 6.1
@@ -1293,8 +1336,10 @@ FFFD FFFF 1.1
1F680 1F6C5 6.0
1F6C6 1F6CF 7.0
1F6D0 8.0
+1F6D1 1F6D2 9.0
1F6E0 1F6EC 7.0
1F6F0 1F6F3 7.0
+1F6F4 1F6F6 9.0
1F700 1F773 6.0
1F780 1F7D4 7.0
1F800 1F80B 7.0
@@ -1303,7 +1348,14 @@ FFFD FFFF 1.1
1F860 1F887 7.0
1F890 1F8AD 7.0
1F910 1F918 8.0
+1F919 1F91E 9.0
+1F920 1F927 9.0
+1F930 9.0
+1F933 1F93E 9.0
+1F940 1F94B 9.0
+1F950 1F95E 9.0
1F980 1F984 8.0
+1F985 1F991 9.0
1F9C0 8.0
1FFFE 1FFFF 2.0
20000 2A6D6 3.1
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Bc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Bc.pl
index c976eb1182d..35c3389047f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Bc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Bc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -132,7 +132,9 @@ F7 ON
82E 858 R
859 85B NSM
85C 89F R
-8A0 8E2 AL
+8A0 8D3 AL
+8D4 8E1 NSM
+8E2 AN
8E3 902 NSM
93A NSM
93C NSM
@@ -242,6 +244,7 @@ FC6 NSM
1800 180A ON
180B 180D NSM
180E BN
+1885 1886 NSM
18A9 NSM
1920 1922 NSM
1927 1928 NSM
@@ -283,7 +286,7 @@ FC6 NSM
1CF4 NSM
1CF8 1CF9 NSM
1DC0 1DF5 NSM
-1DFC 1DFF NSM
+1DFB 1DFF NSM
1FBD ON
1FBF 1FC1 ON
1FCD 1FCF ON
@@ -342,7 +345,7 @@ FC6 NSM
2213 ET
2214 2335 ON
237B 2394 ON
-2396 23FA ON
+2396 23FE ON
2400 2426 ON
2440 244A ON
2460 2487 ON
@@ -360,7 +363,7 @@ FC6 NSM
2CF9 2CFF ON
2D7F NSM
2DE0 2DFF NSM
-2E00 2E42 ON
+2E00 2E44 ON
2E80 2E99 ON
2E9B 2EF3 ON
2F00 2FD5 ON
@@ -403,7 +406,7 @@ A825 A826 NSM
A828 A82B ON
A838 A839 ET
A874 A877 ON
-A8C4 NSM
+A8C4 A8C5 NSM
A8E0 A8F1 NSM
A926 A92D NSM
A947 A951 NSM
@@ -521,6 +524,7 @@ FFFE FFFF BN
1122F 11231 NSM
11234 NSM
11236 11237 NSM
+1123E NSM
112DF NSM
112E3 112EA NSM
11300 11301 NSM
@@ -528,6 +532,9 @@ FFFE FFFF BN
11340 NSM
11366 1136C NSM
11370 11374 NSM
+11438 1143F NSM
+11442 11444 NSM
+11446 NSM
114B3 114B8 NSM
114BA NSM
114BF 114C0 NSM
@@ -539,6 +546,7 @@ FFFE FFFF BN
11633 1163A NSM
1163D NSM
1163F 11640 NSM
+11660 1166C ON
116AB NSM
116AD NSM
116B0 116B5 NSM
@@ -546,6 +554,12 @@ FFFE FFFF BN
1171D 1171F NSM
11722 11725 NSM
11727 1172B NSM
+11C30 11C36 NSM
+11C38 11C3D NSM
+11C92 11CA7 NSM
+11CAA 11CB0 NSM
+11CB2 11CB3 NSM
+11CB5 11CB6 NSM
16AF0 16AF4 NSM
16B30 16B36 NSM
16F8F 16F92 NSM
@@ -572,9 +586,16 @@ FFFE FFFF BN
1DA84 NSM
1DA9B 1DA9F NSM
1DAA1 1DAAF NSM
+1E000 1E006 NSM
+1E008 1E018 NSM
+1E01B 1E021 NSM
+1E023 1E024 NSM
+1E026 1E02A NSM
1E800 1E8CF R
1E8D0 1E8D6 NSM
-1E8D7 1EDFF R
+1E8D7 1E943 R
+1E944 1E94A NSM
+1E94B 1EDFF R
1EE00 1EEEF AL
1EEF0 1EEF1 ON
1EEF2 1EEFF AL
@@ -588,11 +609,9 @@ FFFE FFFF BN
1F100 1F10A EN
1F10B 1F10C ON
1F16A 1F16B ON
-1F300 1F579 ON
-1F57B 1F5A3 ON
-1F5A5 1F6D0 ON
+1F300 1F6D2 ON
1F6E0 1F6EC ON
-1F6F0 1F6F3 ON
+1F6F0 1F6F6 ON
1F700 1F773 ON
1F780 1F7D4 ON
1F800 1F80B ON
@@ -600,8 +619,13 @@ FFFE FFFF BN
1F850 1F859 ON
1F860 1F887 ON
1F890 1F8AD ON
-1F910 1F918 ON
-1F980 1F984 ON
+1F910 1F91E ON
+1F920 1F927 ON
+1F930 ON
+1F933 1F93E ON
+1F940 1F94B ON
+1F950 1F95E ON
+1F980 1F991 ON
1F9C0 ON
1FFFE 1FFFF BN
2FFFE 2FFFF BN
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl b/Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl
index 86f148a157c..95b84bb3d43 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Bmg.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl b/Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl
index d13e97d8423..633a0d92d29 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Bpb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl b/Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl
index c32005b12ff..40d88ce7494 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Bpt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Cf.pl b/Master/tlpkg/tlperl/lib/unicore/To/Cf.pl
index 70456d50fc8..4c4d7d26567 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Cf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Cf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -451,6 +451,14 @@ D8 DE F8
10C7 2D27
10CD 2D2D
13F8 13FD 13F0
+1C80 432
+1C81 434
+1C82 43E
+1C83 1C84 441
+1C85 442
+1C86 44A
+1C87 463
+1C88 A64B
1E00 1E01
1E02 1E03
1E04 1E05
@@ -779,6 +787,7 @@ A7AA 266
A7AB 25C
A7AC 261
A7AD 26C
+A7AE 26A
A7B0 29E
A7B1 287
A7B2 29D
@@ -788,6 +797,8 @@ A7B6 A7B7
AB70 ABBF 13A0
FF21 FF3A FF41
10400 10427 10428
+104B0 104D3 104D8
10C80 10CB2 10CC0
118A0 118BF 118C0
+1E900 1E921 1E922
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Digit.pl b/Master/tlpkg/tlperl/lib/unicore/To/Digit.pl
index ecd94224284..8e7232fd3fa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Digit.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Digit.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -451,6 +451,16 @@ FF19 9
112F7 7
112F8 8
112F9 9
+11450 0
+11451 1
+11452 2
+11453 3
+11454 4
+11455 5
+11456 6
+11457 7
+11458 8
+11459 9
114D0 0
114D1 1
114D2 2
@@ -501,6 +511,16 @@ FF19 9
118E7 7
118E8 8
118E9 9
+11C50 0
+11C51 1
+11C52 2
+11C53 3
+11C54 4
+11C55 5
+11C56 6
+11C57 7
+11C58 8
+11C59 9
16A60 0
16A61 1
16A62 2
@@ -571,4 +591,14 @@ FF19 9
1D7FD 7
1D7FE 8
1D7FF 9
+1E950 0
+1E951 1
+1E952 2
+1E953 3
+1E954 4
+1E955 5
+1E956 6
+1E957 7
+1E958 8
+1E959 9
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Ea.pl b/Master/tlpkg/tlperl/lib/unicore/To/Ea.pl
index 355ccb3e478..045cbfb6eaa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Ea.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Ea.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -147,7 +147,11 @@ FE A
22A5 A
22BF A
2312 A
+231A 231B W
2329 232A W
+23E9 23EC W
+23F0 W
+23F3 W
2460 24E9 A
24EB 254B A
2550 2573 A
@@ -164,31 +168,64 @@ FE A
25CE 25D1 A
25E2 25E5 A
25EF A
+25FD 25FE W
2605 2606 A
2609 A
260E 260F A
-2614 2615 A
+2614 2615 W
261C A
261E A
2640 A
2642 A
+2648 2653 W
2660 2661 A
2663 2665 A
2667 266A A
266C 266D A
266F A
+267F W
+2693 W
269E 269F A
-26BE 26BF A
-26C4 26CD A
-26CF 26E1 A
+26A1 W
+26AA 26AB W
+26BD 26BE W
+26BF A
+26C4 26C5 W
+26C6 26CD A
+26CE W
+26CF 26D3 A
+26D4 W
+26D5 26E1 A
26E3 A
-26E8 26FF A
+26E8 26E9 A
+26EA W
+26EB 26F1 A
+26F2 26F3 W
+26F4 A
+26F5 W
+26F6 26F9 A
+26FA W
+26FB 26FC A
+26FD W
+26FE 26FF A
+2705 W
+270A 270B W
+2728 W
273D A
-2757 A
+274C W
+274E W
+2753 2755 W
+2757 W
2776 277F A
+2795 2797 W
+27B0 W
+27BF W
27E6 27ED Na
2985 2986 Na
-2B55 2B59 A
+2B1B 2B1C W
+2B50 W
+2B55 W
+2B56 2B59 A
2E80 2E99 W
2E9B 2EF3 W
2F00 2FD5 W
@@ -226,15 +263,55 @@ FFDA FFDC H
FFE0 FFE6 F
FFE8 FFEE H
FFFD A
+16FE0 W
+17000 187EC W
+18800 18AF2 W
1B000 1B001 W
+1F004 W
+1F0CF W
1F100 1F10A A
1F110 1F12D A
1F130 1F169 A
-1F170 1F19A A
+1F170 1F18D A
+1F18E W
+1F18F 1F190 A
+1F191 1F19A W
+1F19B 1F1AC A
1F200 1F202 W
-1F210 1F23A W
+1F210 1F23B W
1F240 1F248 W
1F250 1F251 W
+1F300 1F320 W
+1F32D 1F335 W
+1F337 1F37C W
+1F37E 1F393 W
+1F3A0 1F3CA W
+1F3CF 1F3D3 W
+1F3E0 1F3F0 W
+1F3F4 W
+1F3F8 1F43E W
+1F440 W
+1F442 1F4FC W
+1F4FF 1F53D W
+1F54B 1F54E W
+1F550 1F567 W
+1F57A W
+1F595 1F596 W
+1F5A4 W
+1F5FB 1F64F W
+1F680 1F6C5 W
+1F6CC W
+1F6D0 1F6D2 W
+1F6EB 1F6EC W
+1F6F4 1F6F6 W
+1F910 1F91E W
+1F920 1F927 W
+1F930 W
+1F933 1F93E W
+1F940 1F94B W
+1F950 1F95E W
+1F980 1F991 W
+1F9C0 W
20000 2FFFD W
30000 3FFFD W
E0100 E01EF A
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Fold.pl b/Master/tlpkg/tlperl/lib/unicore/To/Fold.pl
index 71165326d00..d06a7343aa2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Fold.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Fold.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -661,6 +661,15 @@ return <<'END';
13FB 13F3
13FC 13F4
13FD 13F5
+1C80 0432
+1C81 0434
+1C82 043E
+1C83 0441
+1C84 0442
+1C85 0442
+1C86 044A
+1C87 0463
+1C88 A64B
1E00 1E01
1E02 1E03
1E04 1E05
@@ -1146,6 +1155,7 @@ A7AA 0266
A7AB 025C
A7AC 0261
A7AD 026C
+A7AE 026A
A7B0 029E
A7B1 0287
A7B2 029D
@@ -1298,6 +1308,42 @@ FF3A FF5A
10425 1044D
10426 1044E
10427 1044F
+104B0 104D8
+104B1 104D9
+104B2 104DA
+104B3 104DB
+104B4 104DC
+104B5 104DD
+104B6 104DE
+104B7 104DF
+104B8 104E0
+104B9 104E1
+104BA 104E2
+104BB 104E3
+104BC 104E4
+104BD 104E5
+104BE 104E6
+104BF 104E7
+104C0 104E8
+104C1 104E9
+104C2 104EA
+104C3 104EB
+104C4 104EC
+104C5 104ED
+104C6 104EE
+104C7 104EF
+104C8 104F0
+104C9 104F1
+104CA 104F2
+104CB 104F3
+104CC 104F4
+104CD 104F5
+104CE 104F6
+104CF 104F7
+104D0 104F8
+104D1 104F9
+104D2 104FA
+104D3 104FB
10C80 10CC0
10C81 10CC1
10C82 10CC2
@@ -1381,4 +1427,38 @@ FF3A FF5A
118BD 118DD
118BE 118DE
118BF 118DF
+1E900 1E922
+1E901 1E923
+1E902 1E924
+1E903 1E925
+1E904 1E926
+1E905 1E927
+1E906 1E928
+1E907 1E929
+1E908 1E92A
+1E909 1E92B
+1E90A 1E92C
+1E90B 1E92D
+1E90C 1E92E
+1E90D 1E92F
+1E90E 1E930
+1E90F 1E931
+1E910 1E932
+1E911 1E933
+1E912 1E934
+1E913 1E935
+1E914 1E936
+1E915 1E937
+1E916 1E938
+1E917 1E939
+1E918 1E93A
+1E919 1E93B
+1E91A 1E93C
+1E91B 1E93D
+1E91C 1E93E
+1E91D 1E93F
+1E91E 1E940
+1E91F 1E941
+1E920 1E942
+1E921 1E943
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/GCB.pl b/Master/tlpkg/tlperl/lib/unicore/To/GCB.pl
index cd736e70284..3bc9cf1a2c8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/GCB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/GCB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -31,17 +31,17 @@ AD Control
5C1 5C2 Extend
5C4 5C5 Extend
5C7 Extend
-600 605 Control
+600 605 Prepend
610 61A Extend
61C Control
64B 65F Extend
670 Extend
6D6 6DC Extend
-6DD Control
+6DD Prepend
6DF 6E4 Extend
6E7 6E8 Extend
6EA 6ED Extend
-70F Control
+70F Prepend
711 Extend
730 74A Extend
7A6 7B0 Extend
@@ -51,6 +51,8 @@ AD Control
825 827 Extend
829 82D Extend
859 85B Extend
+8D4 8E1 Extend
+8E2 Prepend
8E3 902 Extend
903 SpacingMark
93A Extend
@@ -144,6 +146,7 @@ D41 D44 Extend
D46 D48 SpacingMark
D4A D4C SpacingMark
D4D Extend
+D4E Prepend
D57 Extend
D62 D63 Extend
D82 D83 SpacingMark
@@ -209,6 +212,7 @@ FC6 Extend
17DD Extend
180B 180D Extend
180E Control
+1885 1886 Extend
18A9 Extend
1920 1922 Extend
1923 1926 SpacingMark
@@ -272,13 +276,18 @@ FC6 Extend
1CF4 Extend
1CF8 1CF9 Extend
1DC0 1DF5 Extend
-1DFC 1DFF Extend
+1DFB 1DFF Extend
200B Control
-200C 200D Extend
+200C Extend
+200D ZWJ
200E 200F Control
2028 202E Control
2060 206F Control
20D0 20F0 Extend
+261D E_Base
+26F9 E_Base
+270A 270D E_Base
+2764 Glue_After_Zwj
2CEF 2CF1 Extend
2D7F Extend
2DE0 2DFF Extend
@@ -296,7 +305,7 @@ A825 A826 Extend
A827 SpacingMark
A880 A881 SpacingMark
A8B4 A8C3 SpacingMark
-A8C4 Extend
+A8C4 A8C5 Extend
A8E0 A8F1 Extend
A926 A92D Extend
A947 A951 Extend
@@ -1163,7 +1172,7 @@ FFF0 FFFB Control
110B3 110B6 Extend
110B7 110B8 SpacingMark
110B9 110BA Extend
-110BD Control
+110BD Prepend
11100 11102 Extend
11127 1112B Extend
1112C SpacingMark
@@ -1174,6 +1183,7 @@ FFF0 FFFB Control
111B3 111B5 SpacingMark
111B6 111BE Extend
111BF 111C0 SpacingMark
+111C2 111C3 Prepend
111CA 111CC Extend
1122C 1122E SpacingMark
1122F 11231 Extend
@@ -1181,6 +1191,7 @@ FFF0 FFFB Control
11234 Extend
11235 SpacingMark
11236 11237 Extend
+1123E Extend
112DF Extend
112E0 112E2 SpacingMark
112E3 112EA Extend
@@ -1197,6 +1208,12 @@ FFF0 FFFB Control
11362 11363 SpacingMark
11366 1136C Extend
11370 11374 Extend
+11435 11437 SpacingMark
+11438 1143F Extend
+11440 11441 SpacingMark
+11442 11444 Extend
+11445 SpacingMark
+11446 Extend
114B0 Extend
114B1 114B2 SpacingMark
114B3 114B8 Extend
@@ -1234,6 +1251,18 @@ FFF0 FFFB Control
11722 11725 Extend
11726 SpacingMark
11727 1172B Extend
+11C2F SpacingMark
+11C30 11C36 Extend
+11C38 11C3D Extend
+11C3E SpacingMark
+11C3F Extend
+11C92 11CA7 Extend
+11CA9 SpacingMark
+11CAA 11CB0 Extend
+11CB1 SpacingMark
+11CB2 11CB3 Extend
+11CB4 SpacingMark
+11CB5 11CB6 Extend
16AF0 16AF4 Extend
16B30 16B36 Extend
16F51 16F7E SpacingMark
@@ -1256,9 +1285,46 @@ FFF0 FFFB Control
1DA84 Extend
1DA9B 1DA9F Extend
1DAA1 1DAAF Extend
+1E000 1E006 Extend
+1E008 1E018 Extend
+1E01B 1E021 Extend
+1E023 1E024 Extend
+1E026 1E02A Extend
1E8D0 1E8D6 Extend
+1E944 1E94A Extend
1F1E6 1F1FF Regional_Indicator
-E0000 E00FF Control
+1F385 E_Base
+1F3C3 1F3C4 E_Base
+1F3CA 1F3CB E_Base
+1F3FB 1F3FF E_Modifier
+1F442 1F443 E_Base
+1F446 1F450 E_Base
+1F466 1F469 E_Base_GAZ
+1F46E E_Base
+1F470 1F478 E_Base
+1F47C E_Base
+1F481 1F483 E_Base
+1F485 1F487 E_Base
+1F48B Glue_After_Zwj
+1F4AA E_Base
+1F575 E_Base
+1F57A E_Base
+1F590 E_Base
+1F595 1F596 E_Base
+1F5E8 Glue_After_Zwj
+1F645 1F647 E_Base
+1F64B 1F64F E_Base
+1F6A3 E_Base
+1F6B4 1F6B6 E_Base
+1F6C0 E_Base
+1F918 1F91E E_Base
+1F926 E_Base
+1F930 E_Base
+1F933 1F939 E_Base
+1F93C 1F93E E_Base
+E0000 E001F Control
+E0020 E007F Extend
+E0080 E00FF Control
E0100 E01EF Extend
E01F0 E0FFF Control
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Gc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Gc.pl
index 02079072afa..dd3c85a312e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Gc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Gc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -721,6 +721,9 @@ F8 FF Ll
859 85B Mn
85E Po
8A0 8B4 Lo
+8B6 8BD Lo
+8D4 8E1 Mn
+8E2 Cf
8E3 902 Mn
903 Mc
904 939 Lo
@@ -880,6 +883,7 @@ C62 C63 Mn
C66 C6F Nd
C78 C7E No
C7F So
+C80 Lo
C81 Mn
C82 C83 Mc
C85 C8C Lo
@@ -914,11 +918,14 @@ D46 D48 Mc
D4A D4C Mc
D4D Mn
D4E Lo
+D4F So
+D54 D56 Lo
D57 Mc
+D58 D5E No
D5F D61 Lo
D62 D63 Mn
D66 D6F Nd
-D70 D75 No
+D70 D78 No
D79 So
D7A D7F Lo
D82 D83 Mc
@@ -1118,7 +1125,9 @@ FD9 FDA Po
1820 1842 Lo
1843 Lm
1844 1877 Lo
-1880 18A8 Lo
+1880 1884 Lo
+1885 1886 Mn
+1887 18A8 Lo
18A9 Mn
18AA Lo
18B0 18F5 Lo
@@ -1216,6 +1225,7 @@ FD9 FDA Po
1C5A 1C77 Lo
1C78 1C7D Lm
1C7E 1C7F Po
+1C80 1C88 Ll
1CC0 1CC7 Po
1CD0 1CD2 Mn
1CD3 Po
@@ -1236,7 +1246,7 @@ FD9 FDA Po
1D79 1D9A Ll
1D9B 1DBF Lm
1DC0 1DF5 Mn
-1DFC 1DFF Mn
+1DFB 1DFF Mn
1E00 Lu
1E01 Ll
1E02 Lu
@@ -1665,7 +1675,7 @@ FD9 FDA Po
239B 23B3 Sm
23B4 23DB So
23DC 23E1 Sm
-23E2 23FA So
+23E2 23FE So
2400 2426 So
2440 244A So
2460 249B No
@@ -1938,6 +1948,7 @@ FD9 FDA Po
2E40 Pd
2E41 Po
2E42 Ps
+2E43 2E44 Po
2E80 2E99 So
2E9B 2EF3 So
2F00 2FD5 So
@@ -2241,7 +2252,7 @@ A7A6 Lu
A7A7 Ll
A7A8 Lu
A7A9 Ll
-A7AA A7AD Lu
+A7AA A7AE Lu
A7B0 A7B4 Lu
A7B5 Ll
A7B6 Lu
@@ -2269,7 +2280,7 @@ A874 A877 Po
A880 A881 Mc
A882 A8B3 Lo
A8B4 A8C3 Mc
-A8C4 Mn
+A8C4 A8C5 Mn
A8CE A8CF Po
A8D0 A8D9 Nd
A8E0 A8F1 Mn
@@ -2512,7 +2523,7 @@ FFFC FFFD So
10175 10178 No
10179 10189 So
1018A 1018B No
-1018C So
+1018C 1018E So
10190 1019B So
101A0 So
101D0 101FC So
@@ -2539,6 +2550,8 @@ FFFC FFFD So
10428 1044F Ll
10450 1049D Lo
104A0 104A9 Nd
+104B0 104D3 Lu
+104D8 104FB Ll
10500 10527 Lo
10530 10563 Lo
1056F Po
@@ -2663,6 +2676,7 @@ FFFC FFFD So
11235 Mc
11236 11237 Mn
11238 1123D Po
+1123E Mn
11280 11286 Lo
11288 Lo
1128A 1128D Lo
@@ -2695,6 +2709,18 @@ FFFC FFFD So
11362 11363 Mc
11366 1136C Mn
11370 11374 Mn
+11400 11434 Lo
+11435 11437 Mc
+11438 1143F Mn
+11440 11441 Mc
+11442 11444 Mn
+11445 Mc
+11446 Mn
+11447 1144A Lo
+1144B 1144F Po
+11450 11459 Nd
+1145B Po
+1145D Po
11480 114AF Lo
114B0 114B2 Mc
114B3 114B8 Mn
@@ -2728,6 +2754,7 @@ FFFC FFFD So
11641 11643 Po
11644 Lo
11650 11659 Nd
+11660 1166C Po
11680 116AA Lo
116AB Mn
116AC Mc
@@ -2753,6 +2780,26 @@ FFFC FFFD So
118EA 118F2 No
118FF Lo
11AC0 11AF8 Lo
+11C00 11C08 Lo
+11C0A 11C2E Lo
+11C2F Mc
+11C30 11C36 Mn
+11C38 11C3D Mn
+11C3E Mc
+11C3F Mn
+11C40 Lo
+11C41 11C45 Po
+11C50 11C59 Nd
+11C5A 11C6C No
+11C70 11C71 Po
+11C72 11C8F Lo
+11C92 11CA7 Mn
+11CA9 Mc
+11CAA 11CB0 Mn
+11CB1 Mc
+11CB2 11CB3 Mn
+11CB4 Mc
+11CB5 11CB6 Mn
12000 12399 Lo
12400 1246E Nl
12470 12474 Po
@@ -2782,6 +2829,9 @@ FFFC FFFD So
16F51 16F7E Mc
16F8F 16F92 Mn
16F93 16F9F Lm
+16FE0 Lm
+17000 187EC Lo
+18800 18AF2 Lo
1B000 1B001 Lo
1BC00 1BC6A Lo
1BC70 1BC7C Lo
@@ -2892,9 +2942,19 @@ FFFC FFFD So
1DA87 1DA8B Po
1DA9B 1DA9F Mn
1DAA1 1DAAF Mn
+1E000 1E006 Mn
+1E008 1E018 Mn
+1E01B 1E021 Mn
+1E023 1E024 Mn
+1E026 1E02A Mn
1E800 1E8C4 Lo
1E8C7 1E8CF No
1E8D0 1E8D6 Mn
+1E900 1E921 Lu
+1E922 1E943 Ll
+1E944 1E94A Mn
+1E950 1E959 Nd
+1E95E 1E95F Po
1EE00 1EE03 Lo
1EE05 1EE1F Lo
1EE21 1EE22 Lo
@@ -2938,18 +2998,16 @@ FFFC FFFD So
1F100 1F10C No
1F110 1F12E So
1F130 1F16B So
-1F170 1F19A So
+1F170 1F1AC So
1F1E6 1F202 So
-1F210 1F23A So
+1F210 1F23B So
1F240 1F248 So
1F250 1F251 So
1F300 1F3FA So
1F3FB 1F3FF Sk
-1F400 1F579 So
-1F57B 1F5A3 So
-1F5A5 1F6D0 So
+1F400 1F6D2 So
1F6E0 1F6EC So
-1F6F0 1F6F3 So
+1F6F0 1F6F6 So
1F700 1F773 So
1F780 1F7D4 So
1F800 1F80B So
@@ -2957,8 +3015,13 @@ FFFC FFFD So
1F850 1F859 So
1F860 1F887 So
1F890 1F8AD So
-1F910 1F918 So
-1F980 1F984 So
+1F910 1F91E So
+1F920 1F927 So
+1F930 So
+1F933 1F93E So
+1F940 1F94B So
+1F950 1F95E So
+1F980 1F991 So
1F9C0 So
20000 2A6D6 Lo
2A700 2B734 Lo
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Hst.pl b/Master/tlpkg/tlperl/lib/unicore/To/Hst.pl
index 85cc3f3fa60..fc2ce6966e3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Hst.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Hst.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/InPC.pl b/Master/tlpkg/tlperl/lib/unicore/To/InPC.pl
index 3b3c3c85715..b1bda7ae45a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/InPC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/InPC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -321,6 +321,7 @@ FC6 Bottom
1CE2 1CE8 Overstruck
1CED Bottom
1CF4 Top
+1DFB Top
A806 Top
A80B Top
A823 A824 Right
@@ -330,6 +331,7 @@ A827 Right
A880 A881 Right
A8B4 A8C3 Right
A8C4 Bottom
+A8C5 Top
A8E0 A8F1 Top
A92B A92D Bottom
A947 A949 Bottom
@@ -439,6 +441,7 @@ ABED Bottom
11234 Top
11235 Right
11236 11237 Top
+1123E Top
112DF Top
112E0 Right
112E1 Left
@@ -458,6 +461,16 @@ ABED Bottom
11362 11363 Right
11366 1136C Top
11370 11374 Top
+11435 Right
+11436 Left
+11437 Right
+11438 1143D Bottom
+1143E 1143F Top
+11440 11441 Right
+11442 Bottom
+11443 11444 Top
+11445 Right
+11446 Bottom
114B0 Right
114B1 Left
114B2 Right
@@ -509,4 +522,18 @@ ABED Bottom
11727 Top
11728 Bottom
11729 1172B Top
+11C2F Right
+11C30 11C31 Top
+11C32 11C36 Bottom
+11C38 11C3D Top
+11C3E Right
+11C3F Bottom
+11C92 11CA7 Bottom
+11CA9 Right
+11CAA 11CB0 Bottom
+11CB1 Left
+11CB2 Bottom
+11CB3 Top
+11CB4 Right
+11CB5 11CB6 Top
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/InSC.pl b/Master/tlpkg/tlperl/lib/unicore/To/InSC.pl
index f3bea2fdc65..27e9137626f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/InSC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/InSC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -193,6 +193,7 @@ D46 D48 Vowel_Dependent
D4A D4C Vowel_Dependent
D4D Virama
D4E Consonant_Preceding_Repha
+D54 D56 Consonant_Dead
D57 Vowel_Dependent
D5F D61 Vowel_Independent
D62 D63 Vowel_Dependent
@@ -323,6 +324,7 @@ FC6 Syllable_Modifier
17D2 Invisible_Stacker
17D3 Syllable_Modifier
17DC Avagraha
+17DD Syllable_Modifier
17E0 17E9 Number
1900 Consonant_Placeholder
1901 191E Consonant
@@ -401,6 +403,7 @@ FC6 Syllable_Modifier
1CF2 1CF3 Visarga
1CF4 Cantillation_Mark
1CF8 1CF9 Cantillation_Mark
+1DFB Syllable_Modifier
200C Non_Joiner
200D Joiner
2010 2014 Consonant_Placeholder
@@ -430,6 +433,7 @@ A892 A8B3 Consonant
A8B4 Consonant_Final
A8B5 A8C3 Vowel_Dependent
A8C4 Virama
+A8C5 Bindu
A8D0 A8D9 Number
A8E0 A8F1 Cantillation_Mark
A900 A909 Number
@@ -466,6 +470,7 @@ AA40 AA4D Consonant_Final
AA50 AA59 Number
AA60 AA6F Consonant
AA71 AA73 Consonant
+AA74 AA76 Consonant_Placeholder
AA7A Consonant
AA7B AA7D Tone_Mark
AA7E AAAF Consonant
@@ -549,6 +554,7 @@ ABF0 ABF9 Number
11235 Virama
11236 Nukta
11237 Gemination_Mark
+1123E Cantillation_Mark
11280 11283 Vowel_Independent
11284 11286 Consonant
11288 Consonant
@@ -582,6 +588,15 @@ ABF0 ABF9 Number
11362 11363 Vowel_Dependent
11366 1136C Cantillation_Mark
11370 11374 Cantillation_Mark
+11400 1140D Vowel_Independent
+1140E 11434 Consonant
+11435 11441 Vowel_Dependent
+11442 Virama
+11443 11444 Bindu
+11445 Visarga
+11446 Nukta
+11447 Avagraha
+11450 11459 Number
11481 1148E Vowel_Independent
1148F 114AF Consonant
114B0 114BE Vowel_Dependent
@@ -622,4 +637,19 @@ ABF0 ABF9 Number
11720 1172A Vowel_Dependent
1172B Pure_Killer
11730 1173B Number
+11C00 11C08 Vowel_Independent
+11C0A 11C0D Vowel_Independent
+11C0E 11C2E Consonant
+11C2F 11C36 Vowel_Dependent
+11C38 11C3B Vowel_Dependent
+11C3C 11C3D Bindu
+11C3E Visarga
+11C3F Virama
+11C40 Avagraha
+11C50 11C6C Number
+11C72 11C8F Consonant
+11C92 11CA7 Consonant_Subjoined
+11CA9 11CAF Consonant_Subjoined
+11CB0 11CB4 Vowel_Dependent
+11CB5 11CB6 Bindu
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Isc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Isc.pl
index 48d2657a611..c09dc362dd0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Isc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Isc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Jg.pl b/Master/tlpkg/tlperl/lib/unicore/To/Jg.pl
index 20920aa5ca0..5f9f7e98122 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Jg.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Jg.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -161,6 +161,12 @@ return <<'END';
8B2 Reh
8B3 Ain
8B4 Kaf
+8B6 8B8 Beh
+8B9 Reh
+8BA Yeh
+8BB African_Feh
+8BC African_Qaf
+8BD African_Noon
10AC0 Manichaean_Aleph
10AC1 10AC2 Manichaean_Beth
10AC3 10AC4 Manichaean_Gimel
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Jt.pl b/Master/tlpkg/tlperl/lib/unicore/To/Jt.pl
index a2fb0748dc7..e13d63c8894 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Jt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Jt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -116,6 +116,10 @@ AD T
8AF 8B0 D
8B1 8B2 R
8B3 8B4 D
+8B6 8B8 D
+8B9 R
+8BA 8BD D
+8D4 8E1 T
8E3 902 T
93A T
93C T
@@ -213,6 +217,7 @@ FC6 T
180A C
180B 180D T
1820 1877 D
+1885 1886 T
1887 18A8 D
18A9 T
18AA D
@@ -253,7 +258,7 @@ FC6 T
1CF4 T
1CF8 1CF9 T
1DC0 1DF5 T
-1DFC 1DFF T
+1DFB 1DFF T
200B T
200D C
200E 200F T
@@ -276,7 +281,7 @@ A80B T
A825 A826 T
A840 A871 D
A872 L
-A8C4 T
+A8C4 A8C5 T
A8E0 A8F1 T
A926 A92D T
A947 A951 T
@@ -360,6 +365,7 @@ FFF9 FFFB T
1122F 11231 T
11234 T
11236 11237 T
+1123E T
112DF T
112E3 112EA T
11300 11301 T
@@ -367,6 +373,9 @@ FFF9 FFFB T
11340 T
11366 1136C T
11370 11374 T
+11438 1143F T
+11442 11444 T
+11446 T
114B3 114B8 T
114BA T
114BF 114C0 T
@@ -385,6 +394,13 @@ FFF9 FFFB T
1171D 1171F T
11722 11725 T
11727 1172B T
+11C30 11C36 T
+11C38 11C3D T
+11C3F T
+11C92 11CA7 T
+11CAA 11CB0 T
+11CB2 11CB3 T
+11CB5 11CB6 T
16AF0 16AF4 T
16B30 16B36 T
16F8F 16F92 T
@@ -401,7 +417,14 @@ FFF9 FFFB T
1DA84 T
1DA9B 1DA9F T
1DAA1 1DAAF T
+1E000 1E006 T
+1E008 1E018 T
+1E01B 1E021 T
+1E023 1E024 T
+1E026 1E02A T
1E8D0 1E8D6 T
+1E900 1E943 D
+1E944 1E94A T
E0001 T
E0020 E007F T
E0100 E01EF T
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Lb.pl b/Master/tlpkg/tlperl/lib/unicore/To/Lb.pl
index 3e759824066..cf41b051a11 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Lb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Lb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -184,6 +184,9 @@ F8 2C6 AL
859 85B CM
85E AL
8A0 8B4 AL
+8B6 8BD AL
+8D4 8E1 CM
+8E2 AL
8E3 903 CM
904 939 AL
93A 93C CM
@@ -310,7 +313,7 @@ C58 C5A AL
C60 C61 AL
C62 C63 CM
C66 C6F NU
-C78 C7F AL
+C78 C80 AL
C81 C83 CM
C85 C8C AL
C8E C90 AL
@@ -336,12 +339,13 @@ D3D AL
D3E D44 CM
D46 D48 CM
D4A D4D CM
-D4E AL
+D4E D4F AL
+D54 D56 AL
D57 CM
-D5F D61 AL
+D58 D61 AL
D62 D63 CM
D66 D6F NU
-D70 D75 AL
+D70 D78 AL
D79 PO
D7A D7F AL
D82 D83 CM
@@ -508,7 +512,9 @@ FD9 FDA GL
180E GL
1810 1819 NU
1820 1877 AL
-1880 18A8 AL
+1880 1884 AL
+1885 1886 CM
+1887 18A8 AL
18A9 CM
18AA AL
18B0 18F5 AL
@@ -561,6 +567,7 @@ FD9 FDA GL
1C50 1C59 NU
1C5A 1C7D AL
1C7E 1C7F BA
+1C80 1C88 AL
1CC0 1CC7 AL
1CD0 1CD2 CM
1CD3 AL
@@ -573,7 +580,7 @@ FD9 FDA GL
1CF8 1CF9 CM
1D00 1DBF AL
1DC0 1DF5 CM
-1DFC 1DFF CM
+1DFB 1DFF CM
1E00 1F15 AL
1F18 1F1D AL
1F20 1F45 AL
@@ -596,7 +603,9 @@ FD9 FDA GL
2007 GL
2008 200A BA
200B ZW
-200C 200F CM
+200C CM
+200D ZWJ
+200E 200F CM
2010 BA
2011 GL
2012 2013 BA
@@ -761,7 +770,7 @@ FD9 FDA GL
232A CL
232B 23EF AL
23F0 23F3 ID
-23F4 23FA AL
+23F4 23FE AL
2400 2426 AL
2440 244A AL
2460 24FE AI
@@ -808,7 +817,9 @@ FD9 FDA GL
2616 2617 AI
2618 ID
2619 AL
-261A 261F ID
+261A 261C ID
+261D EB
+261E 261F ID
2620 2638 AL
2639 263B ID
263C 263F AL
@@ -853,18 +864,22 @@ FD9 FDA GL
26EB 26F0 AI
26F1 26F5 ID
26F6 AI
-26F7 26FA ID
+26F7 26F8 ID
+26F9 EB
+26FA ID
26FB 26FC AI
26FD 2704 ID
2705 2707 AL
-2708 270D ID
+2708 2709 ID
+270A 270D EB
270E 2756 AL
2757 AI
2758 275A AL
275B 2760 QU
2761 AL
2762 2763 EX
-2764 2767 AL
+2764 ID
+2765 2767 AL
2768 OP
2769 CL
276A OP
@@ -990,6 +1005,7 @@ FD9 FDA GL
2E3F AL
2E40 2E41 BA
2E42 OP
+2E43 2E44 BA
2E80 2E99 ID
2E9B 2EF3 ID
2F00 2FD5 ID
@@ -1113,7 +1129,7 @@ A6A0 A6EF AL
A6F0 A6F1 CM
A6F2 AL
A6F3 A6F7 BA
-A700 A7AD AL
+A700 A7AE AL
A7B0 A7B7 AL
A7F7 A801 AL
A802 CM
@@ -1132,7 +1148,7 @@ A874 A875 BB
A876 A877 EX
A880 A881 CM
A882 A8B3 AL
-A8B4 A8C4 CM
+A8B4 A8C5 CM
A8CE A8CF BA
A8D0 A8D9 NU
A8E0 A8F1 CM
@@ -2088,15 +2104,15 @@ FF60 FF61 CL
FF62 OP
FF63 FF64 CL
FF65 NS
-FF66 AL
+FF66 ID
FF67 FF70 CJ
-FF71 FF9D AL
+FF71 FF9D ID
FF9E FF9F NS
-FFA0 FFBE AL
-FFC2 FFC7 AL
-FFCA FFCF AL
-FFD2 FFD7 AL
-FFDA FFDC AL
+FFA0 FFBE ID
+FFC2 FFC7 ID
+FFCA FFCF ID
+FFD2 FFD7 ID
+FFDA FFDC ID
FFE0 PO
FFE1 PR
FFE2 FFE4 ID
@@ -2114,7 +2130,7 @@ FFFD AI
10080 100FA AL
10100 10102 BA
10107 10133 AL
-10137 1018C AL
+10137 1018E AL
10190 1019B AL
101A0 AL
101D0 101FC AL
@@ -2135,6 +2151,8 @@ FFFD AI
103D1 103D5 AL
10400 1049D AL
104A0 104A9 NU
+104B0 104D3 AL
+104D8 104FB AL
10500 10527 AL
10530 10563 AL
1056F AL
@@ -2235,6 +2253,7 @@ FFFD AI
1123A AL
1123B 1123C BA
1123D AL
+1123E CM
11280 11286 AL
11288 AL
1128A 1128D AL
@@ -2262,6 +2281,14 @@ FFFD AI
11362 11363 CM
11366 1136C CM
11370 11374 CM
+11400 11434 AL
+11435 11446 CM
+11447 1144A AL
+1144B 1144E BA
+1144F AL
+11450 11459 NU
+1145B BA
+1145D AL
11480 114AF AL
114B0 114C3 CM
114C4 114C7 AL
@@ -2281,6 +2308,7 @@ FFFD AI
11641 11642 BA
11643 11644 AL
11650 11659 NU
+11660 1166C BB
11680 116AA AL
116AB 116B7 CM
116C0 116C9 NU
@@ -2295,6 +2323,19 @@ FFFD AI
118EA 118F2 AL
118FF AL
11AC0 11AF8 AL
+11C00 11C08 AL
+11C0A 11C2E AL
+11C2F 11C36 CM
+11C38 11C3F CM
+11C40 AL
+11C41 11C45 BA
+11C50 11C59 NU
+11C5A 11C6C AL
+11C70 BB
+11C71 EX
+11C72 11C8F AL
+11C92 11CA7 CM
+11CA9 11CB6 CM
12000 12399 AL
12400 1246E AL
12470 12474 BA
@@ -2339,6 +2380,9 @@ FFFD AI
16F51 16F7E CM
16F8F 16F92 CM
16F93 16F9F AL
+16FE0 NS
+17000 187EC ID
+18800 18AF2 ID
1B000 1B001 ID
1BC00 1BC6A AL
1BC70 1BC7C AL
@@ -2398,9 +2442,18 @@ FFFD AI
1DA8B AL
1DA9B 1DA9F CM
1DAA1 1DAAF CM
+1E000 1E006 CM
+1E008 1E018 CM
+1E01B 1E021 CM
+1E023 1E024 CM
+1E026 1E02A CM
1E800 1E8C4 AL
1E8C7 1E8CF AL
1E8D0 1E8D6 CM
+1E900 1E943 AL
+1E944 1E94A CM
+1E950 1E959 NU
+1E95E 1E95F OP
1EE00 1EE03 AL
1EE05 1EE1F AL
1EE21 1EE22 AL
@@ -2435,38 +2488,57 @@ FFFD AI
1EEA5 1EEA9 AL
1EEAB 1EEBB AL
1EEF0 1EEF1 AL
-1F000 1F02B ID
-1F030 1F093 ID
-1F0A0 1F0AE ID
-1F0B1 1F0BF ID
-1F0C1 1F0CF ID
-1F0D1 1F0F5 ID
+1F000 1F0FF ID
1F100 1F10C AI
+1F10D 1F10F ID
1F110 1F12D AI
1F12E AL
+1F12F ID
1F130 1F169 AI
1F16A 1F16B AL
-1F170 1F19A AI
+1F16C 1F16F ID
+1F170 1F1AC AI
+1F1AD 1F1E5 ID
1F1E6 1F1FF RI
-1F200 1F202 ID
-1F210 1F23A ID
-1F240 1F248 ID
-1F250 1F251 ID
-1F300 1F39B ID
+1F200 1F384 ID
+1F385 EB
+1F386 1F39B ID
1F39C 1F39D AL
1F39E 1F3B4 ID
1F3B5 1F3B6 AL
1F3B7 1F3BB ID
1F3BC AL
-1F3BD 1F3FA ID
-1F3FB 1F3FF AL
-1F400 1F49F ID
+1F3BD 1F3C2 ID
+1F3C3 1F3C4 EB
+1F3C5 1F3C9 ID
+1F3CA 1F3CB EB
+1F3CC 1F3FA ID
+1F3FB 1F3FF EM
+1F400 1F441 ID
+1F442 1F443 EB
+1F444 1F445 ID
+1F446 1F450 EB
+1F451 1F465 ID
+1F466 1F469 EB
+1F46A 1F46D ID
+1F46E EB
+1F46F ID
+1F470 1F478 EB
+1F479 1F47B ID
+1F47C EB
+1F47D 1F480 ID
+1F481 1F483 EB
+1F484 ID
+1F485 1F487 EB
+1F488 1F49F ID
1F4A0 AL
1F4A1 ID
1F4A2 AL
1F4A3 ID
1F4A4 AL
-1F4A5 1F4AE ID
+1F4A5 1F4A9 ID
+1F4AA EB
+1F4AB 1F4AE ID
1F4AF AL
1F4B0 ID
1F4B1 1F4B2 AL
@@ -2476,30 +2548,57 @@ FFFD AI
1F517 1F524 AL
1F525 1F531 ID
1F532 1F549 AL
-1F54A 1F579 ID
-1F57B 1F5A3 ID
-1F5A5 1F5D3 ID
+1F54A 1F574 ID
+1F575 EB
+1F576 1F579 ID
+1F57A EB
+1F57B 1F58F ID
+1F590 EB
+1F591 1F594 ID
+1F595 1F596 EB
+1F597 1F5D3 ID
1F5D4 1F5DB AL
1F5DC 1F5F3 ID
1F5F4 1F5F9 AL
-1F5FA 1F64F ID
+1F5FA 1F644 ID
+1F645 1F647 EB
+1F648 1F64A ID
+1F64B 1F64F EB
1F650 1F675 AL
1F676 1F678 QU
1F679 1F67B NS
1F67C 1F67F AL
-1F680 1F6D0 ID
-1F6E0 1F6EC ID
-1F6F0 1F6F3 ID
+1F680 1F6A2 ID
+1F6A3 EB
+1F6A4 1F6B3 ID
+1F6B4 1F6B6 EB
+1F6B7 1F6BF ID
+1F6C0 EB
+1F6C1 1F6FF ID
1F700 1F773 AL
+1F774 1F77F ID
1F780 1F7D4 AL
+1F7D5 1F7FF ID
1F800 1F80B AL
+1F80C 1F80F ID
1F810 1F847 AL
+1F848 1F84F ID
1F850 1F859 AL
+1F85A 1F85F ID
1F860 1F887 AL
+1F888 1F88F ID
1F890 1F8AD AL
-1F910 1F918 ID
-1F980 1F984 ID
-1F9C0 ID
+1F8AE 1F917 ID
+1F918 1F91E EB
+1F91F 1F925 ID
+1F926 EB
+1F927 1F92F ID
+1F930 EB
+1F931 1F932 ID
+1F933 1F939 EB
+1F93A 1F93B ID
+1F93C 1F93E EB
+1F93F 1FFFD ID
20000 2FFFD ID
30000 3FFFD ID
E0001 CM
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Lc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Lc.pl
index 64fbc05e47d..b1b201a2e1e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Lc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Lc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -665,6 +665,7 @@ A7AA 266
A7AB 25C
A7AC 261
A7AD 26C
+A7AE 26A
A7B0 29E
A7B1 287
A7B2 29D
@@ -673,6 +674,8 @@ A7B4 A7B5
A7B6 A7B7
FF21 FF3A FF41
10400 10427 10428
+104B0 104D3 104D8
10C80 10CB2 10CC0
118A0 118BF 118C0
+1E900 1E921 1E922
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Lower.pl b/Master/tlpkg/tlperl/lib/unicore/To/Lower.pl
index bb3b75caf4e..d9136a62fc3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Lower.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Lower.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -1110,6 +1110,7 @@ A7AA 0266
A7AB 025C
A7AC 0261
A7AD 026C
+A7AE 026A
A7B0 029E
A7B1 0287
A7B2 029D
@@ -1182,6 +1183,42 @@ FF3A FF5A
10425 1044D
10426 1044E
10427 1044F
+104B0 104D8
+104B1 104D9
+104B2 104DA
+104B3 104DB
+104B4 104DC
+104B5 104DD
+104B6 104DE
+104B7 104DF
+104B8 104E0
+104B9 104E1
+104BA 104E2
+104BB 104E3
+104BC 104E4
+104BD 104E5
+104BE 104E6
+104BF 104E7
+104C0 104E8
+104C1 104E9
+104C2 104EA
+104C3 104EB
+104C4 104EC
+104C5 104ED
+104C6 104EE
+104C7 104EF
+104C8 104F0
+104C9 104F1
+104CA 104F2
+104CB 104F3
+104CC 104F4
+104CD 104F5
+104CE 104F6
+104CF 104F7
+104D0 104F8
+104D1 104F9
+104D2 104FA
+104D3 104FB
10C80 10CC0
10C81 10CC1
10C82 10CC2
@@ -1265,4 +1302,38 @@ FF3A FF5A
118BD 118DD
118BE 118DE
118BF 118DF
+1E900 1E922
+1E901 1E923
+1E902 1E924
+1E903 1E925
+1E904 1E926
+1E905 1E927
+1E906 1E928
+1E907 1E929
+1E908 1E92A
+1E909 1E92B
+1E90A 1E92C
+1E90B 1E92D
+1E90C 1E92E
+1E90D 1E92F
+1E90E 1E930
+1E90F 1E931
+1E910 1E932
+1E911 1E933
+1E912 1E934
+1E913 1E935
+1E914 1E936
+1E915 1E937
+1E916 1E938
+1E917 1E939
+1E918 1E93A
+1E919 1E93B
+1E91A 1E93C
+1E91B 1E93D
+1E91C 1E93E
+1E91D 1E93F
+1E91E 1E940
+1E91F 1E941
+1E920 1E942
+1E921 1E943
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
index ff735e59b97..73777692c4c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFCQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
index 2cc7791d3bd..d218fb24d21 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFDQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
index 4a565d200a4..58d2ac0c838 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFKCCF.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -6053,6 +6053,15 @@ return <<'END';
13FB 13F3
13FC 13F4
13FD 13F5
+1C80 0432
+1C81 0434
+1C82 043E
+1C83 0441
+1C84 0442
+1C85 0442
+1C86 044A
+1C87 0463
+1C88 A64B
1D2C 0061
1D2D 00E6
1D2E 0062
@@ -7216,6 +7225,7 @@ A7AA 0266
A7AB 025C
A7AC 0261
A7AD 026C
+A7AE 026A
A7B0 029E
A7B1 0287
A7B2 029D
@@ -8342,6 +8352,42 @@ FFEE 25CB
10425 1044D
10426 1044E
10427 1044F
+104B0 104D8
+104B1 104D9
+104B2 104DA
+104B3 104DB
+104B4 104DC
+104B5 104DD
+104B6 104DE
+104B7 104DF
+104B8 104E0
+104B9 104E1
+104BA 104E2
+104BB 104E3
+104BC 104E4
+104BD 104E5
+104BE 104E6
+104BF 104E7
+104C0 104E8
+104C1 104E9
+104C2 104EA
+104C3 104EB
+104C4 104EC
+104C5 104ED
+104C6 104EE
+104C7 104EF
+104C8 104F0
+104C9 104F1
+104CA 104F2
+104CB 104F3
+104CC 104F4
+104CD 104F5
+104CE 104F6
+104CF 104F7
+104D0 104F8
+104D1 104F9
+104D2 104FA
+104D3 104FB
10C80 10CC0
10C81 10CC1
10C82 10CC2
@@ -9421,6 +9467,40 @@ FFEE 25CB
1D7FD 0037
1D7FE 0038
1D7FF 0039
+1E900 1E922
+1E901 1E923
+1E902 1E924
+1E903 1E925
+1E904 1E926
+1E905 1E927
+1E906 1E928
+1E907 1E929
+1E908 1E92A
+1E909 1E92B
+1E90A 1E92C
+1E90B 1E92D
+1E90C 1E92E
+1E90D 1E92F
+1E90E 1E930
+1E90F 1E931
+1E910 1E932
+1E911 1E933
+1E912 1E934
+1E913 1E935
+1E914 1E936
+1E915 1E937
+1E916 1E938
+1E917 1E939
+1E918 1E93A
+1E919 1E93B
+1E91A 1E93C
+1E91B 1E93D
+1E91C 1E93E
+1E91D 1E93F
+1E91E 1E940
+1E91F 1E941
+1E920 1E942
+1E921 1E943
1EE00 0627
1EE01 0628
1EE02 062C
@@ -9634,6 +9714,7 @@ FFEE 25CB
1F238 7533
1F239 5272
1F23A 55B6
+1F23B 914D
1F250 5F97
1F251 53EF
2F800 4E3D
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
index c5fcf8af190..265160ef0f3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFKCQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -303,7 +303,7 @@ FFE8 FFEE N
1F16A 1F16B N
1F190 N
1F200 1F202 N
-1F210 1F23A N
+1F210 1F23B N
1F240 1F248 N
1F250 1F251 N
2F800 2FA1D N
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl b/Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
index 0ed1c642005..b1da573afee 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NFKDQC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -403,7 +403,7 @@ FFE8 FFEE N
1F16A 1F16B N
1F190 N
1F200 1F202 N
-1F210 1F23A N
+1F210 1F23B N
1F240 1F248 N
1F250 1F251 N
2F800 2FA1D N
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Na1.pl b/Master/tlpkg/tlperl/lib/unicore/To/Na1.pl
index 6ff34ed2ee5..423f52925ac 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Na1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Na1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl b/Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
index 86b359183a9..cc0bac22e67 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/NameAlia.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Nt.pl b/Master/tlpkg/tlperl/lib/unicore/To/Nt.pl
index b54152242b9..2e2bce2f816 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Nt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Nt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -36,8 +36,9 @@ BF0 BF2 Numeric
C66 C6F Decimal
C78 C7E Numeric
CE6 CEF Decimal
+D58 D5E Numeric
D66 D6F Decimal
-D70 D75 Numeric
+D70 D78 Numeric
DE6 DEF Decimal
E50 E59 Decimal
ED0 ED9 Decimal
@@ -194,6 +195,7 @@ FF10 FF19 Decimal
111D0 111D9 Decimal
111E1 111F4 Numeric
112F0 112F9 Decimal
+11450 11459 Decimal
114D0 114D9 Decimal
11650 11659 Decimal
116C0 116C9 Decimal
@@ -201,6 +203,8 @@ FF10 FF19 Decimal
1173A 1173B Numeric
118E0 118E9 Decimal
118EA 118F2 Numeric
+11C50 11C59 Decimal
+11C5A 11C6C Numeric
12400 1246E Numeric
16A60 16A69 Decimal
16B50 16B59 Decimal
@@ -208,6 +212,7 @@ FF10 FF19 Decimal
1D360 1D371 Numeric
1D7CE 1D7FF Decimal
1E8C7 1E8CF Numeric
+1E950 1E959 Decimal
1F100 1F10A Digit
1F10B 1F10C Numeric
20001 Numeric
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Nv.pl b/Master/tlpkg/tlperl/lib/unicore/To/Nv.pl
index aac4a89d8ea..9bdc6c50d7e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Nv.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Nv.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -52,12 +52,22 @@ C66 C6F 0
C78 C7B 0
C7C C7E 1
CE6 CEF 0
+D58 1/160
+D59 1/40
+D5A 3/80
+D5B 1/20
+D5C 1/10
+D5D 3/20
+D5E 1/5
D66 D70 0
D71 100
D72 1000
D73 1/4
D74 1/2
D75 3/4
+D76 1/16
+D77 1/8
+D78 3/16
DE6 DEF 0
E50 E59 0
ED0 ED9 0
@@ -529,6 +539,7 @@ FF10 FF19 0
111F3 100
111F4 1000
112F0 112F9 0
+11450 11459 0
114D0 114D9 0
11650 11659 0
116C0 116C9 0
@@ -543,6 +554,17 @@ FF10 FF19 0
118F0 70
118F1 80
118F2 90
+11C50 11C59 0
+11C5A 11C63 1
+11C64 20
+11C65 30
+11C66 40
+11C67 50
+11C68 60
+11C69 70
+11C6A 80
+11C6B 90
+11C6C 100
12400 12407 2
12408 1240E 3
1240F 12414 4
@@ -614,6 +636,7 @@ FF10 FF19 0
1D7EC 1D7F5 0
1D7F6 1D7FF 0
1E8C7 1E8CF 1
+1E950 1E959 0
1F100 0
1F101 1F10A 0
1F10B 0
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl b/Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
index 4ed1489f0fe..f015a650390 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/PerlDeci.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -62,11 +62,13 @@ FF10 FF19 0
11136 1113F 0
111D0 111D9 0
112F0 112F9 0
+11450 11459 0
114D0 114D9 0
11650 11659 0
116C0 116C9 0
11730 11739 0
118E0 118E9 0
+11C50 11C59 0
16A60 16A69 0
16B50 16B59 0
1D7CE 1D7D7 0
@@ -74,4 +76,5 @@ FF10 FF19 0
1D7E2 1D7EB 0
1D7EC 1D7F5 0
1D7F6 1D7FF 0
+1E950 1E959 0
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/SB.pl b/Master/tlpkg/tlperl/lib/unicore/To/SB.pl
index 7879c4d6a1f..4e4cf74490b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/SB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/SB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -656,6 +656,9 @@ F8 FF Lower
840 858 OLetter
859 85B Extend
8A0 8B4 OLetter
+8B6 8BD OLetter
+8D4 8E1 Extend
+8E2 Format
8E3 903 Extend
904 939 OLetter
93A 93C Extend
@@ -772,6 +775,7 @@ C58 C5A OLetter
C60 C61 OLetter
C62 C63 Extend
C66 C6F Numeric
+C80 OLetter
C81 C83 Extend
C85 C8C OLetter
C8E C90 OLetter
@@ -798,6 +802,7 @@ D3E D44 Extend
D46 D48 Extend
D4A D4D Extend
D4E OLetter
+D54 D56 OLetter
D57 Extend
D5F D61 OLetter
D62 D63 Extend
@@ -940,7 +945,9 @@ FC6 Extend
180E Format
1810 1819 Numeric
1820 1877 OLetter
-1880 18A8 OLetter
+1880 1884 OLetter
+1885 1886 Extend
+1887 18A8 OLetter
18A9 Extend
18AA OLetter
18B0 18F5 OLetter
@@ -988,6 +995,7 @@ FC6 Extend
1C50 1C59 Numeric
1C5A 1C7D OLetter
1C7E 1C7F STerm
+1C80 1C88 Lower
1CD0 1CD2 Extend
1CD4 1CE8 Extend
1CE9 1CEC OLetter
@@ -998,7 +1006,7 @@ FC6 Extend
1CF8 1CF9 Extend
1D00 1DBF Lower
1DC0 1DF5 Extend
-1DFC 1DFF Extend
+1DFB 1DFF Extend
1E00 Upper
1E01 Lower
1E02 Upper
@@ -1730,7 +1738,7 @@ A7A6 Upper
A7A7 Lower
A7A8 Upper
A7A9 Lower
-A7AA A7AD Upper
+A7AA A7AE Upper
A7B0 A7B4 Upper
A7B5 Lower
A7B6 Upper
@@ -1749,7 +1757,7 @@ A840 A873 OLetter
A876 A877 STerm
A880 A881 Extend
A882 A8B3 OLetter
-A8B4 A8C4 Extend
+A8B4 A8C5 Extend
A8CE A8CF STerm
A8D0 A8D9 Numeric
A8E0 A8F1 Extend
@@ -1902,6 +1910,8 @@ FFF9 FFFB Format
10428 1044F Lower
10450 1049D OLetter
104A0 104A9 Numeric
+104B0 104D3 Upper
+104D8 104FB Lower
10500 10527 OLetter
10530 10563 OLetter
10600 10736 OLetter
@@ -1979,6 +1989,7 @@ FFF9 FFFB Format
1122C 11237 Extend
11238 11239 STerm
1123B 1123C STerm
+1123E Extend
11280 11286 OLetter
11288 OLetter
1128A 1128D OLetter
@@ -2006,6 +2017,11 @@ FFF9 FFFB Format
11362 11363 Extend
11366 1136C Extend
11370 11374 Extend
+11400 11434 OLetter
+11435 11446 Extend
+11447 1144A OLetter
+1144B 1144C STerm
+11450 11459 Numeric
11480 114AF OLetter
114B0 114C3 Extend
114C4 114C5 OLetter
@@ -2035,6 +2051,16 @@ FFF9 FFFB Format
118E0 118E9 Numeric
118FF OLetter
11AC0 11AF8 OLetter
+11C00 11C08 OLetter
+11C0A 11C2E OLetter
+11C2F 11C36 Extend
+11C38 11C3F Extend
+11C40 OLetter
+11C41 11C42 STerm
+11C50 11C59 Numeric
+11C72 11C8F OLetter
+11C92 11CA7 Extend
+11CA9 11CB6 Extend
12000 12399 OLetter
12400 1246E OLetter
12480 12543 OLetter
@@ -2060,6 +2086,9 @@ FFF9 FFFB Format
16F51 16F7E Extend
16F8F 16F92 Extend
16F93 16F9F OLetter
+16FE0 OLetter
+17000 187EC OLetter
+18800 18AF2 OLetter
1B000 1B001 OLetter
1BC00 1BC6A OLetter
1BC70 1BC7C OLetter
@@ -2142,8 +2171,17 @@ FFF9 FFFB Format
1DA88 STerm
1DA9B 1DA9F Extend
1DAA1 1DAAF Extend
+1E000 1E006 Extend
+1E008 1E018 Extend
+1E01B 1E021 Extend
+1E023 1E024 Extend
+1E026 1E02A Extend
1E800 1E8C4 OLetter
1E8D0 1E8D6 Extend
+1E900 1E921 Upper
+1E922 1E943 Lower
+1E944 1E94A Extend
+1E950 1E959 Numeric
1EE00 1EE03 OLetter
1EE05 1EE1F OLetter
1EE21 1EE22 OLetter
@@ -2187,6 +2225,6 @@ FFF9 FFFB Format
2B820 2CEA1 OLetter
2F800 2FA1D OLetter
E0001 Format
-E0020 E007F Format
+E0020 E007F Extend
E0100 E01EF Extend
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Sc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Sc.pl
index 592faeb009d..cf02bff6a2c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Sc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Sc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -93,6 +93,9 @@ F8 2B8 Latin
840 85B Mandaic
85E Mandaic
8A0 8B4 Arabic
+8B6 8BD Arabic
+8D4 8E1 Arabic
+8E2 Common
8E3 8FF Arabic
900 950 Devanagari
951 952 Inherited
@@ -186,7 +189,7 @@ C58 C5A Telugu
C60 C63 Telugu
C66 C6F Telugu
C78 C7F Telugu
-C81 C83 Kannada
+C80 C83 Kannada
C85 C8C Kannada
C8E C90 Kannada
C92 CA8 Kannada
@@ -206,11 +209,9 @@ D0E D10 Malayalam
D12 D3A Malayalam
D3D D44 Malayalam
D46 D48 Malayalam
-D4A D4E Malayalam
-D57 Malayalam
-D5F D63 Malayalam
-D66 D75 Malayalam
-D79 D7F Malayalam
+D4A D4F Malayalam
+D54 D63 Malayalam
+D66 D7F Malayalam
D82 D83 Sinhala
D85 D96 Sinhala
D9A DB1 Sinhala
@@ -334,6 +335,7 @@ FD9 FDA Tibetan
1C3B 1C49 Lepcha
1C4D 1C4F Lepcha
1C50 1C7F Ol_Chiki
+1C80 1C88 Cyrillic
1CC0 1CC7 Sundanese
1CD0 1CD2 Inherited
1CD3 Common
@@ -358,7 +360,7 @@ FD9 FDA Tibetan
1D79 1DBE Latin
1DBF Greek
1DC0 1DF5 Inherited
-1DFC 1DFF Inherited
+1DFB 1DFF Inherited
1E00 1EFF Latin
1F00 1F15 Greek
1F18 1F1D Greek
@@ -398,7 +400,7 @@ FD9 FDA Tibetan
214F 215F Common
2160 2188 Latin
2189 218B Common
-2190 23FA Common
+2190 23FE Common
2400 2426 Common
2440 244A Common
2460 27FF Common
@@ -430,7 +432,7 @@ FD9 FDA Tibetan
2DD0 2DD6 Ethiopic
2DD8 2DDE Ethiopic
2DE0 2DFF Cyrillic
-2E00 2E42 Common
+2E00 2E44 Common
2E80 2E99 Han
2E9B 2EF3 Han
2F00 2FD5 Han
@@ -479,13 +481,13 @@ A6A0 A6F7 Bamum
A700 A721 Common
A722 A787 Latin
A788 A78A Common
-A78B A7AD Latin
+A78B A7AE Latin
A7B0 A7B7 Latin
A7F7 A7FF Latin
A800 A82B Syloti_Nagri
A830 A839 Common
A840 A877 Phags_Pa
-A880 A8C4 Saurashtra
+A880 A8C5 Saurashtra
A8CE A8D9 Saurashtra
A8E0 A8FD Devanagari
A900 A92D Kayah_Li
@@ -575,7 +577,7 @@ FFF9 FFFD Common
10100 10102 Common
10107 10133 Common
10137 1013F Common
-10140 1018C Greek
+10140 1018E Greek
10190 1019B Common
101A0 Greek
101D0 101FC Common
@@ -595,6 +597,8 @@ FFF9 FFFD Common
10450 1047F Shavian
10480 1049D Osmanya
104A0 104A9 Osmanya
+104B0 104D3 Osage
+104D8 104FB Osage
10500 10527 Elbasan
10530 10563 Caucasian_Albanian
1056F Caucasian_Albanian
@@ -662,7 +666,7 @@ FFF9 FFFD Common
111D0 111DF Sharada
111E1 111F4 Sinhala
11200 11211 Khojki
-11213 1123D Khojki
+11213 1123E Khojki
11280 11286 Multani
11288 Multani
1128A 1128D Multani
@@ -685,12 +689,16 @@ FFF9 FFFD Common
1135D 11363 Grantha
11366 1136C Grantha
11370 11374 Grantha
+11400 11459 Newa
+1145B Newa
+1145D Newa
11480 114C7 Tirhuta
114D0 114D9 Tirhuta
11580 115B5 Siddham
115B8 115DD Siddham
11600 11644 Modi
11650 11659 Modi
+11660 1166C Mongolian
11680 116B7 Takri
116C0 116C9 Takri
11700 11719 Ahom
@@ -699,6 +707,13 @@ FFF9 FFFD Common
118A0 118F2 Warang_Citi
118FF Warang_Citi
11AC0 11AF8 Pau_Cin_Hau
+11C00 11C08 Bhaiksuki
+11C0A 11C36 Bhaiksuki
+11C38 11C45 Bhaiksuki
+11C50 11C6C Bhaiksuki
+11C70 11C8F Marchen
+11C92 11CA7 Marchen
+11CA9 11CB6 Marchen
12000 12399 Cuneiform
12400 1246E Cuneiform
12470 12474 Cuneiform
@@ -719,6 +734,9 @@ FFF9 FFFD Common
16F00 16F44 Miao
16F50 16F7E Miao
16F8F 16F9F Miao
+16FE0 Tangut
+17000 187EC Tangut
+18800 18AF2 Tangut
1B000 Katakana
1B001 Hiragana
1BC00 1BC6A Duployan
@@ -765,8 +783,16 @@ FFF9 FFFD Common
1D800 1DA8B SignWriting
1DA9B 1DA9F SignWriting
1DAA1 1DAAF SignWriting
+1E000 1E006 Glagolitic
+1E008 1E018 Glagolitic
+1E01B 1E021 Glagolitic
+1E023 1E024 Glagolitic
+1E026 1E02A Glagolitic
1E800 1E8C4 Mende_Kikakui
1E8C7 1E8D6 Mende_Kikakui
+1E900 1E94A Adlam
+1E950 1E959 Adlam
+1E95E 1E95F Adlam
1EE00 1EE03 Arabic
1EE05 1EE1F Arabic
1EE21 1EE22 Arabic
@@ -810,18 +836,16 @@ FFF9 FFFD Common
1F100 1F10C Common
1F110 1F12E Common
1F130 1F16B Common
-1F170 1F19A Common
+1F170 1F1AC Common
1F1E6 1F1FF Common
1F200 Hiragana
1F201 1F202 Common
-1F210 1F23A Common
+1F210 1F23B Common
1F240 1F248 Common
1F250 1F251 Common
-1F300 1F579 Common
-1F57B 1F5A3 Common
-1F5A5 1F6D0 Common
+1F300 1F6D2 Common
1F6E0 1F6EC Common
-1F6F0 1F6F3 Common
+1F6F0 1F6F6 Common
1F700 1F773 Common
1F780 1F7D4 Common
1F800 1F80B Common
@@ -829,8 +853,13 @@ FFF9 FFFD Common
1F850 1F859 Common
1F860 1F887 Common
1F890 1F8AD Common
-1F910 1F918 Common
-1F980 1F984 Common
+1F910 1F91E Common
+1F920 1F927 Common
+1F930 Common
+1F933 1F93E Common
+1F940 1F94B Common
+1F950 1F95E Common
+1F980 1F991 Common
1F9C0 Common
20000 2A6D6 Han
2A700 2B734 Han
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Scx.pl b/Master/tlpkg/tlperl/lib/unicore/To/Scx.pl
index 7c6589a4855..a87db36d0fd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Scx.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Scx.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -60,7 +60,7 @@ F8 2B8 Latin
3F0 3FF Greek
400 482 Cyrillic
483 Cyrillic Old_Permic
-484 Cyrillic
+484 Cyrillic Glagolitic
485 486 Cyrillic Latin
487 Cyrillic Glagolitic
488 52F Cyrillic
@@ -83,7 +83,7 @@ F8 2B8 Latin
61E Arabic
61F Arabic Syriac Thaana
620 63F Arabic
-640 Arabic Mandaic Manichaean Psalter_Pahlavi Syriac
+640 Adlam Arabic Mandaic Manichaean Psalter_Pahlavi Syriac
641 64A Arabic
64B 655 Arabic Syriac
656 65F Arabic
@@ -104,6 +104,9 @@ F8 2B8 Latin
840 85B Mandaic
85E Mandaic
8A0 8B4 Arabic
+8B6 8BD Arabic
+8D4 8E1 Arabic
+8E2 Common
8E3 8FF Arabic
900 950 Devanagari
951 Bengali Devanagari Grantha Gujarati Gurmukhi Kannada Latin Malayalam Oriya Sharada Tamil Telugu
@@ -207,7 +210,7 @@ C58 C5A Telugu
C60 C63 Telugu
C66 C6F Telugu
C78 C7F Telugu
-C81 C83 Kannada
+C80 C83 Kannada
C85 C8C Kannada
C8E C90 Kannada
C92 CA8 Kannada
@@ -227,11 +230,9 @@ D0E D10 Malayalam
D12 D3A Malayalam
D3D D44 Malayalam
D46 D48 Malayalam
-D4A D4E Malayalam
-D57 Malayalam
-D5F D63 Malayalam
-D66 D75 Malayalam
-D79 D7F Malayalam
+D4A D4F Malayalam
+D54 D63 Malayalam
+D66 D7F Malayalam
D82 D83 Sinhala
D85 D96 Sinhala
D9A DB1 Sinhala
@@ -280,7 +281,7 @@ FD9 FDA Tibetan
10C7 Georgian
10CD Georgian
10D0 10FA Georgian
-10FB Common
+10FB Georgian Latin
10FC 10FF Georgian
1100 11FF Hangul
1200 1248 Ethiopic
@@ -357,6 +358,7 @@ FD9 FDA Tibetan
1C3B 1C49 Lepcha
1C4D 1C4F Lepcha
1C50 1C7F Ol_Chiki
+1C80 1C88 Cyrillic
1CC0 1CC7 Sundanese
1CD0 Devanagari Grantha
1CD1 Devanagari
@@ -387,7 +389,7 @@ FD9 FDA Tibetan
1D79 1DBE Latin
1DBF 1DC1 Greek
1DC2 1DF5 Inherited
-1DFC 1DFF Inherited
+1DFB 1DFF Inherited
1E00 1EFF Latin
1F00 1F15 Greek
1F18 1F1D Greek
@@ -428,7 +430,7 @@ FD9 FDA Tibetan
214F 215F Common
2160 2188 Latin
2189 218B Common
-2190 23FA Common
+2190 23FE Common
2400 2426 Common
2440 244A Common
2460 27FF Common
@@ -461,6 +463,8 @@ FD9 FDA Tibetan
2DD8 2DDE Ethiopic
2DE0 2DFF Cyrillic
2E00 2E42 Common
+2E43 Cyrillic Glagolitic
+2E44 Common
2E80 2E99 Han
2E9B 2EF3 Han
2F00 2FD5 Han
@@ -469,9 +473,7 @@ FD9 FDA Tibetan
3001 3002 Bopomofo Hangul Han Hiragana Katakana Yi
3003 Bopomofo Hangul Han Hiragana Katakana
3004 Common
-3005 Han
-3006 Han Hiragana Katakana
-3007 Han
+3005 3007 Han
3008 3011 Bopomofo Hangul Han Hiragana Katakana Yi
3012 Common
3013 Bopomofo Hangul Han Hiragana Katakana
@@ -487,7 +489,7 @@ FD9 FDA Tibetan
3037 Bopomofo Hangul Han Hiragana Katakana
3038 303B Han
303C 303D Han Hiragana Katakana
-303E 303F Bopomofo Hangul Han Hiragana Katakana
+303E 303F Han
3041 3096 Hiragana
3099 309C Hiragana Katakana
309D 309F Hiragana
@@ -498,26 +500,26 @@ FD9 FDA Tibetan
30FD 30FF Katakana
3105 312D Bopomofo
3131 318E Hangul
-3190 319F Han Hiragana Katakana
+3190 319F Han
31A0 31BA Bopomofo
-31C0 31E3 Bopomofo Hangul Han Hiragana Katakana
+31C0 31E3 Han
31F0 31FF Katakana
3200 321E Hangul
-3220 3243 Bopomofo Hangul Han Hiragana Katakana
-3244 325F Common
+3220 3247 Han
+3248 325F Common
3260 327E Hangul
327F Common
-3280 32B0 Bopomofo Hangul Han Hiragana Katakana
+3280 32B0 Han
32B1 32BF Common
-32C0 32CB Bopomofo Hangul Han Hiragana Katakana
+32C0 32CB Han
32CC 32CF Common
32D0 32FE Katakana
3300 3357 Katakana
-3358 3370 Bopomofo Hangul Han Hiragana Katakana
+3358 3370 Han
3371 337A Common
-337B 337F Bopomofo Hangul Han Hiragana Katakana
+337B 337F Han
3380 33DF Common
-33E0 33FE Bopomofo Hangul Han Hiragana Katakana
+33E0 33FE Han
33FF Common
3400 4DB5 Han
4DC0 4DFF Common
@@ -533,15 +535,18 @@ A6A0 A6F7 Bamum
A700 A721 Common
A722 A787 Latin
A788 A78A Common
-A78B A7AD Latin
+A78B A7AE Latin
A7B0 A7B7 Latin
A7F7 A7FF Latin
A800 A82B Syloti_Nagri
-A830 A839 Devanagari Gujarati Gurmukhi Kaithi Mahajani Modi Khudawadi Takri Tirhuta
+A830 A835 Devanagari Gujarati Gurmukhi Kannada Kaithi Mahajani Modi Khudawadi Takri Tirhuta
+A836 A839 Devanagari Gujarati Gurmukhi Kaithi Mahajani Modi Khudawadi Takri Tirhuta
A840 A877 Phags_Pa
-A880 A8C4 Saurashtra
+A880 A8C5 Saurashtra
A8CE A8D9 Saurashtra
-A8E0 A8F2 Devanagari
+A8E0 A8F0 Devanagari
+A8F1 Bengali Devanagari
+A8F2 Devanagari
A8F3 Devanagari Tamil
A8F4 A8FD Devanagari
A900 A92D Kayah_Li
@@ -635,9 +640,9 @@ FFF9 FFFD Common
10050 1005D Linear_B
10080 100FA Linear_B
10100 10102 Cypriot Linear_B
-10107 10133 Cypriot Linear_B
+10107 10133 Cypriot Linear_A Linear_B
10137 1013F Cypriot Linear_B
-10140 1018C Greek
+10140 1018E Greek
10190 1019B Common
101A0 Greek
101D0 101FC Common
@@ -656,6 +661,8 @@ FFF9 FFFD Common
10450 1047F Shavian
10480 1049D Osmanya
104A0 104A9 Osmanya
+104B0 104D3 Osage
+104D8 104FB Osage
10500 10527 Elbasan
10530 10563 Caucasian_Albanian
1056F Caucasian_Albanian
@@ -723,7 +730,7 @@ FFF9 FFFD Common
111D0 111DF Sharada
111E1 111F4 Sinhala
11200 11211 Khojki
-11213 1123D Khojki
+11213 1123E Khojki
11280 11286 Multani
11288 Multani
1128A 1128D Multani
@@ -731,14 +738,16 @@ FFF9 FFFD Common
1129F 112A9 Multani
112B0 112EA Khudawadi
112F0 112F9 Khudawadi
-11300 11303 Grantha
+11300 11302 Grantha
+11303 Grantha Tamil
11305 1130C Grantha
1130F 11310 Grantha
11313 11328 Grantha
1132A 11330 Grantha
11332 11333 Grantha
11335 11339 Grantha
-1133C 11344 Grantha
+1133C Grantha Tamil
+1133D 11344 Grantha
11347 11348 Grantha
1134B 1134D Grantha
11350 Grantha
@@ -746,12 +755,16 @@ FFF9 FFFD Common
1135D 11363 Grantha
11366 1136C Grantha
11370 11374 Grantha
+11400 11459 Newa
+1145B Newa
+1145D Newa
11480 114C7 Tirhuta
114D0 114D9 Tirhuta
11580 115B5 Siddham
115B8 115DD Siddham
11600 11644 Modi
11650 11659 Modi
+11660 1166C Mongolian
11680 116B7 Takri
116C0 116C9 Takri
11700 11719 Ahom
@@ -760,6 +773,13 @@ FFF9 FFFD Common
118A0 118F2 Warang_Citi
118FF Warang_Citi
11AC0 11AF8 Pau_Cin_Hau
+11C00 11C08 Bhaiksuki
+11C0A 11C36 Bhaiksuki
+11C38 11C45 Bhaiksuki
+11C50 11C6C Bhaiksuki
+11C70 11C8F Marchen
+11C92 11CA7 Marchen
+11CA9 11CB6 Marchen
12000 12399 Cuneiform
12400 1246E Cuneiform
12470 12474 Cuneiform
@@ -780,6 +800,9 @@ FFF9 FFFD Common
16F00 16F44 Miao
16F50 16F7E Miao
16F8F 16F9F Miao
+16FE0 Tangut
+17000 187EC Tangut
+18800 18AF2 Tangut
1B000 Katakana
1B001 Hiragana
1BC00 1BC6A Duployan
@@ -825,8 +848,16 @@ FFF9 FFFD Common
1D800 1DA8B SignWriting
1DA9B 1DA9F SignWriting
1DAA1 1DAAF SignWriting
+1E000 1E006 Glagolitic
+1E008 1E018 Glagolitic
+1E01B 1E021 Glagolitic
+1E023 1E024 Glagolitic
+1E026 1E02A Glagolitic
1E800 1E8C4 Mende_Kikakui
1E8C7 1E8D6 Mende_Kikakui
+1E900 1E94A Adlam
+1E950 1E959 Adlam
+1E95E 1E95F Adlam
1EE00 1EE03 Arabic
1EE05 1EE1F Arabic
1EE21 1EE22 Arabic
@@ -870,18 +901,16 @@ FFF9 FFFD Common
1F100 1F10C Common
1F110 1F12E Common
1F130 1F16B Common
-1F170 1F19A Common
+1F170 1F1AC Common
1F1E6 1F1FF Common
1F200 Hiragana
1F201 1F202 Common
-1F210 1F23A Common
+1F210 1F23B Common
1F240 1F248 Common
-1F250 1F251 Common
-1F300 1F579 Common
-1F57B 1F5A3 Common
-1F5A5 1F6D0 Common
+1F250 1F251 Han
+1F300 1F6D2 Common
1F6E0 1F6EC Common
-1F6F0 1F6F3 Common
+1F6F0 1F6F6 Common
1F700 1F773 Common
1F780 1F7D4 Common
1F800 1F80B Common
@@ -889,8 +918,13 @@ FFF9 FFFD Common
1F850 1F859 Common
1F860 1F887 Common
1F890 1F8AD Common
-1F910 1F918 Common
-1F980 1F984 Common
+1F910 1F91E Common
+1F920 1F927 Common
+1F930 Common
+1F933 1F93E Common
+1F940 1F94B Common
+1F950 1F95E Common
+1F980 1F991 Common
1F9C0 Common
20000 2A6D6 Han
2A700 2B734 Han
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Tc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Tc.pl
index 7771e190493..4036b0dad39 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Tc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Tc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -248,6 +248,7 @@ FF 178
266 A7AA
268 197
269 196
+26A A7AE
26B 2C62
26C A7AD
26F 19C
@@ -405,6 +406,14 @@ FF 178
52F 52E
561 586 531
13F8 13FD 13F0
+1C80 412
+1C81 414
+1C82 41E
+1C83 1C84 421
+1C85 422
+1C86 42A
+1C87 462
+1C88 A64A
1D79 A77D
1D7D 2C63
1E01 1E00
@@ -728,6 +737,8 @@ AB53 A7B3
AB70 ABBF 13A0
FF41 FF5A FF21
10428 1044F 10400
+104D8 104FB 104B0
10CC0 10CF2 10C80
118C0 118DF 118A0
+1E922 1E943 1E900
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Title.pl b/Master/tlpkg/tlperl/lib/unicore/To/Title.pl
index c8cd3e324f6..4aa74221f84 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Title.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Title.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -304,6 +304,7 @@ return <<'END';
0266 A7AA
0268 0197
0269 0196
+026A A7AE
026B 2C62
026C A7AD
026F 019C
@@ -579,6 +580,15 @@ return <<'END';
13FB 13F3
13FC 13F4
13FD 13F5
+1C80 0412
+1C81 0414
+1C82 041E
+1C83 0421
+1C84 0422
+1C85 0422
+1C86 042A
+1C87 0462
+1C88 A64A
1D79 A77D
1D7D 2C63
1E01 1E00
@@ -1238,6 +1248,42 @@ FF5A FF3A
1044D 10425
1044E 10426
1044F 10427
+104D8 104B0
+104D9 104B1
+104DA 104B2
+104DB 104B3
+104DC 104B4
+104DD 104B5
+104DE 104B6
+104DF 104B7
+104E0 104B8
+104E1 104B9
+104E2 104BA
+104E3 104BB
+104E4 104BC
+104E5 104BD
+104E6 104BE
+104E7 104BF
+104E8 104C0
+104E9 104C1
+104EA 104C2
+104EB 104C3
+104EC 104C4
+104ED 104C5
+104EE 104C6
+104EF 104C7
+104F0 104C8
+104F1 104C9
+104F2 104CA
+104F3 104CB
+104F4 104CC
+104F5 104CD
+104F6 104CE
+104F7 104CF
+104F8 104D0
+104F9 104D1
+104FA 104D2
+104FB 104D3
10CC0 10C80
10CC1 10C81
10CC2 10C82
@@ -1321,4 +1367,38 @@ FF5A FF3A
118DD 118BD
118DE 118BE
118DF 118BF
+1E922 1E900
+1E923 1E901
+1E924 1E902
+1E925 1E903
+1E926 1E904
+1E927 1E905
+1E928 1E906
+1E929 1E907
+1E92A 1E908
+1E92B 1E909
+1E92C 1E90A
+1E92D 1E90B
+1E92E 1E90C
+1E92F 1E90D
+1E930 1E90E
+1E931 1E90F
+1E932 1E910
+1E933 1E911
+1E934 1E912
+1E935 1E913
+1E936 1E914
+1E937 1E915
+1E938 1E916
+1E939 1E917
+1E93A 1E918
+1E93B 1E919
+1E93C 1E91A
+1E93D 1E91B
+1E93E 1E91C
+1E93F 1E91D
+1E940 1E91E
+1E941 1E91F
+1E942 1E920
+1E943 1E921
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Uc.pl b/Master/tlpkg/tlperl/lib/unicore/To/Uc.pl
index 08fdd33e588..1a3ff7e06dc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Uc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Uc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -302,6 +302,7 @@ FF 178
266 A7AA
268 197
269 196
+26A A7AE
26B 2C62
26C A7AD
26F 19C
@@ -459,6 +460,14 @@ FF 178
52F 52E
561 586 531
13F8 13FD 13F0
+1C80 412
+1C81 414
+1C82 41E
+1C83 1C84 421
+1C85 422
+1C86 42A
+1C87 462
+1C88 A64A
1D79 A77D
1D7D 2C63
1E01 1E00
@@ -782,6 +791,8 @@ AB53 A7B3
AB70 ABBF 13A0
FF41 FF5A FF21
10428 1044F 10400
+104D8 104FB 104B0
10CC0 10CF2 10C80
118C0 118DF 118A0
+1E922 1E943 1E900
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/Upper.pl b/Master/tlpkg/tlperl/lib/unicore/To/Upper.pl
index b4adcf7366e..7fd2b1befb5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/Upper.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/Upper.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!!
@@ -358,6 +358,7 @@ return <<'END';
0266 A7AA
0268 0197
0269 0196
+026A A7AE
026B 2C62
026C A7AD
026F 019C
@@ -633,6 +634,15 @@ return <<'END';
13FB 13F3
13FC 13F4
13FD 13F5
+1C80 0412
+1C81 0414
+1C82 041E
+1C83 0421
+1C84 0422
+1C85 0422
+1C86 042A
+1C87 0462
+1C88 A64A
1D79 A77D
1D7D 2C63
1E01 1E00
@@ -1265,6 +1275,42 @@ FF5A FF3A
1044D 10425
1044E 10426
1044F 10427
+104D8 104B0
+104D9 104B1
+104DA 104B2
+104DB 104B3
+104DC 104B4
+104DD 104B5
+104DE 104B6
+104DF 104B7
+104E0 104B8
+104E1 104B9
+104E2 104BA
+104E3 104BB
+104E4 104BC
+104E5 104BD
+104E6 104BE
+104E7 104BF
+104E8 104C0
+104E9 104C1
+104EA 104C2
+104EB 104C3
+104EC 104C4
+104ED 104C5
+104EE 104C6
+104EF 104C7
+104F0 104C8
+104F1 104C9
+104F2 104CA
+104F3 104CB
+104F4 104CC
+104F5 104CD
+104F6 104CE
+104F7 104CF
+104F8 104D0
+104F9 104D1
+104FA 104D2
+104FB 104D3
10CC0 10C80
10CC1 10C81
10CC2 10C82
@@ -1348,4 +1394,38 @@ FF5A FF3A
118DD 118BD
118DE 118BE
118DF 118BF
+1E922 1E900
+1E923 1E901
+1E924 1E902
+1E925 1E903
+1E926 1E904
+1E927 1E905
+1E928 1E906
+1E929 1E907
+1E92A 1E908
+1E92B 1E909
+1E92C 1E90A
+1E92D 1E90B
+1E92E 1E90C
+1E92F 1E90D
+1E930 1E90E
+1E931 1E90F
+1E932 1E910
+1E933 1E911
+1E934 1E912
+1E935 1E913
+1E936 1E914
+1E937 1E915
+1E938 1E916
+1E939 1E917
+1E93A 1E918
+1E93B 1E919
+1E93C 1E91A
+1E93D 1E91B
+1E93E 1E91C
+1E93F 1E91D
+1E940 1E91E
+1E941 1E91F
+1E942 1E920
+1E943 1E921
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/WB.pl b/Master/tlpkg/tlperl/lib/unicore/To/WB.pl
index 5fa837e9f41..57b1b616b5a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/WB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/WB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -120,6 +120,9 @@ F8 2C1 ALetter
840 858 ALetter
859 85B Extend
8A0 8B4 ALetter
+8B6 8BD ALetter
+8D4 8E1 Extend
+8E2 Format
8E3 903 Extend
904 939 ALetter
93A 93C Extend
@@ -235,6 +238,7 @@ C58 C5A ALetter
C60 C61 ALetter
C62 C63 Extend
C66 C6F Numeric
+C80 ALetter
C81 C83 Extend
C85 C8C ALetter
C8E C90 ALetter
@@ -261,6 +265,7 @@ D3E D44 Extend
D46 D48 Extend
D4A D4D Extend
D4E ALetter
+D54 D56 ALetter
D57 Extend
D5F D61 ALetter
D62 D63 Extend
@@ -359,7 +364,9 @@ FC6 Extend
180E Format
1810 1819 Numeric
1820 1877 ALetter
-1880 18A8 ALetter
+1880 1884 ALetter
+1885 1886 Extend
+1887 18A8 ALetter
18A9 Extend
18AA ALetter
18B0 18F5 ALetter
@@ -395,6 +402,7 @@ FC6 Extend
1C4D 1C4F ALetter
1C50 1C59 Numeric
1C5A 1C7D ALetter
+1C80 1C88 ALetter
1CD0 1CD2 Extend
1CD4 1CE8 Extend
1CE9 1CEC ALetter
@@ -405,7 +413,7 @@ FC6 Extend
1CF8 1CF9 Extend
1D00 1DBF ALetter
1DC0 1DF5 Extend
-1DFC 1DFF Extend
+1DFB 1DFF Extend
1E00 1F15 ALetter
1F18 1F1D ALetter
1F20 1F45 ALetter
@@ -425,13 +433,15 @@ FC6 Extend
1FE0 1FEC ALetter
1FF2 1FF4 ALetter
1FF6 1FFC ALetter
-200C 200D Extend
+200C Extend
+200D ZWJ
200E 200F Format
2018 2019 MidNumLet
2024 MidNumLet
2027 MidLetter
2028 2029 Newline
202A 202E Format
+202F ExtendNumLet
203F 2040 ExtendNumLet
2044 MidNum
2054 ExtendNumLet
@@ -456,6 +466,10 @@ FC6 Extend
214E ALetter
2160 2188 ALetter
24B6 24E9 ALetter
+261D E_Base
+26F9 E_Base
+270A 270D E_Base
+2764 Glue_After_Zwj
2C00 2C2E ALetter
2C30 2C5E ALetter
2C60 2CE4 ALetter
@@ -508,7 +522,7 @@ A6A0 A6EF ALetter
A6F0 A6F1 Extend
A717 A71F ALetter
A722 A788 ALetter
-A78B A7AD ALetter
+A78B A7AE ALetter
A7B0 A7B7 ALetter
A7F7 A801 ALetter
A802 Extend
@@ -521,7 +535,7 @@ A823 A827 Extend
A840 A873 ALetter
A880 A881 Extend
A882 A8B3 ALetter
-A8B4 A8C4 Extend
+A8B4 A8C5 Extend
A8D0 A8D9 Numeric
A8E0 A8F1 Extend
A8F2 A8F7 ALetter
@@ -639,6 +653,8 @@ FFF9 FFFB Format
103D1 103D5 ALetter
10400 1049D ALetter
104A0 104A9 Numeric
+104B0 104D3 ALetter
+104D8 104FB ALetter
10500 10527 ALetter
10530 10563 ALetter
10600 10736 ALetter
@@ -707,6 +723,7 @@ FFF9 FFFB Format
11200 11211 ALetter
11213 1122B ALetter
1122C 11237 Extend
+1123E Extend
11280 11286 ALetter
11288 ALetter
1128A 1128D ALetter
@@ -733,6 +750,10 @@ FFF9 FFFB Format
11362 11363 Extend
11366 1136C Extend
11370 11374 Extend
+11400 11434 ALetter
+11435 11446 Extend
+11447 1144A ALetter
+11450 11459 Numeric
11480 114AF ALetter
114B0 114C3 Extend
114C4 114C5 ALetter
@@ -756,6 +777,15 @@ FFF9 FFFB Format
118E0 118E9 Numeric
118FF ALetter
11AC0 11AF8 ALetter
+11C00 11C08 ALetter
+11C0A 11C2E ALetter
+11C2F 11C36 Extend
+11C38 11C3F Extend
+11C40 ALetter
+11C50 11C59 Numeric
+11C72 11C8F ALetter
+11C92 11CA7 Extend
+11CA9 11CB6 Extend
12000 12399 ALetter
12400 1246E ALetter
12480 12543 ALetter
@@ -777,6 +807,7 @@ FFF9 FFFB Format
16F51 16F7E Extend
16F8F 16F92 Extend
16F93 16F9F ALetter
+16FE0 ALetter
1B000 Katakana
1BC00 1BC6A ALetter
1BC70 1BC7C ALetter
@@ -828,8 +859,16 @@ FFF9 FFFB Format
1DA84 Extend
1DA9B 1DA9F Extend
1DAA1 1DAAF Extend
+1E000 1E006 Extend
+1E008 1E018 Extend
+1E01B 1E021 Extend
+1E023 1E024 Extend
+1E026 1E02A Extend
1E800 1E8C4 ALetter
1E8D0 1E8D6 Extend
+1E900 1E943 ALetter
+1E944 1E94A Extend
+1E950 1E959 Numeric
1EE00 1EE03 ALetter
1EE05 1EE1F ALetter
1EE21 1EE22 ALetter
@@ -867,7 +906,36 @@ FFF9 FFFB Format
1F150 1F169 ALetter
1F170 1F189 ALetter
1F1E6 1F1FF Regional_Indicator
+1F385 E_Base
+1F3C3 1F3C4 E_Base
+1F3CA 1F3CB E_Base
+1F3FB 1F3FF E_Modifier
+1F442 1F443 E_Base
+1F446 1F450 E_Base
+1F466 1F469 E_Base_GAZ
+1F46E E_Base
+1F470 1F478 E_Base
+1F47C E_Base
+1F481 1F483 E_Base
+1F485 1F487 E_Base
+1F48B Glue_After_Zwj
+1F4AA E_Base
+1F575 E_Base
+1F57A E_Base
+1F590 E_Base
+1F595 1F596 E_Base
+1F5E8 Glue_After_Zwj
+1F645 1F647 E_Base
+1F64B 1F64F E_Base
+1F6A3 E_Base
+1F6B4 1F6B6 E_Base
+1F6C0 E_Base
+1F918 1F91E E_Base
+1F926 E_Base
+1F930 E_Base
+1F933 1F939 E_Base
+1F93C 1F93E E_Base
E0001 Format
-E0020 E007F Format
+E0020 E007F Extend
E0100 E01EF Extend
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl b/Master/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl
index 834f740bf74..e7b9a98c163 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/_PerlLB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -110,6 +110,7 @@ BF Open_Punctuation
825 827 Combining_Mark
829 82D Combining_Mark
859 85B Combining_Mark
+8D4 8E1 Combining_Mark
8E3 903 Combining_Mark
93A 93C Combining_Mark
93E 94F Combining_Mark
@@ -276,6 +277,7 @@ FD9 FDA Glue
180B 180D Combining_Mark
180E Glue
1810 1819 Numeric
+1885 1886 Combining_Mark
18A9 Combining_Mark
1920 192B Combining_Mark
1930 193B Combining_Mark
@@ -310,13 +312,15 @@ FD9 FDA Glue
1CF2 1CF4 Combining_Mark
1CF8 1CF9 Combining_Mark
1DC0 1DF5 Combining_Mark
-1DFC 1DFF Combining_Mark
+1DFB 1DFF Combining_Mark
1FFD Break_Before
2000 2006 Break_After
2007 Glue
2008 200A Break_After
200B ZWSpace
-200C 200F Combining_Mark
+200C Combining_Mark
+200D ZWJ
+200E 200F Combining_Mark
2010 Break_After
2011 Glue
2012 2013 Break_After
@@ -373,7 +377,9 @@ FD9 FDA Glue
2600 2603 Ideographic
2614 2615 Ideographic
2618 Ideographic
-261A 261F Ideographic
+261A 261C Ideographic
+261D E_Base
+261E 261F Ideographic
2639 263B Ideographic
2668 Ideographic
267F Ideographic
@@ -386,11 +392,15 @@ FD9 FDA Glue
26DF 26E1 Ideographic
26EA Ideographic
26F1 26F5 Ideographic
-26F7 26FA Ideographic
+26F7 26F8 Ideographic
+26F9 E_Base
+26FA Ideographic
26FD 2704 Ideographic
-2708 270D Ideographic
+2708 2709 Ideographic
+270A 270D E_Base
275B 2760 Quotation
2762 2763 Exclamation
+2764 Ideographic
2768 Open_Punctuation
2769 Close_Punctuation
276A Open_Punctuation
@@ -476,6 +486,7 @@ FD9 FDA Glue
2E3C 2E3E Break_After
2E40 2E41 Break_After
2E42 Open_Punctuation
+2E43 2E44 Break_After
2E80 2E99 Ideographic
2E9B 2EF3 Ideographic
2F00 2FD5 Ideographic
@@ -593,7 +604,7 @@ A838 Postfix_Numeric
A874 A875 Break_Before
A876 A877 Exclamation
A880 A881 Combining_Mark
-A8B4 A8C4 Combining_Mark
+A8B4 A8C5 Combining_Mark
A8CE A8CF Break_After
A8D0 A8D9 Numeric
A8E0 A8F1 Combining_Mark
@@ -1517,8 +1528,15 @@ FF60 FF61 Close_Punctuation
FF62 Open_Punctuation
FF63 FF64 Close_Punctuation
FF65 Nonstarter
+FF66 Ideographic
FF67 FF70 Nonstarter
+FF71 FF9D Ideographic
FF9E FF9F Nonstarter
+FFA0 FFBE Ideographic
+FFC2 FFC7 Ideographic
+FFCA FFCF Ideographic
+FFD2 FFD7 Ideographic
+FFDA FFDC Ideographic
FFE0 Postfix_Numeric
FFE1 Prefix_Numeric
FFE2 FFE4 Ideographic
@@ -1569,6 +1587,7 @@ FFFC Contingent_Break
1122C 11237 Combining_Mark
11238 11239 Break_After
1123B 1123C Break_After
+1123E Combining_Mark
112A9 Break_After
112DF 112EA Combining_Mark
112F0 112F9 Numeric
@@ -1581,6 +1600,10 @@ FFFC Contingent_Break
11362 11363 Combining_Mark
11366 1136C Combining_Mark
11370 11374 Combining_Mark
+11435 11446 Combining_Mark
+1144B 1144E Break_After
+11450 11459 Numeric
+1145B Break_After
114B0 114C3 Combining_Mark
114D0 114D9 Numeric
115AF 115B5 Combining_Mark
@@ -1593,12 +1616,21 @@ FFFC Contingent_Break
11630 11640 Combining_Mark
11641 11642 Break_After
11650 11659 Numeric
+11660 1166C Break_Before
116AB 116B7 Combining_Mark
116C0 116C9 Numeric
1171D 1172B Combining_Mark
11730 11739 Numeric
1173C 1173E Break_After
118E0 118E9 Numeric
+11C2F 11C36 Combining_Mark
+11C38 11C3F Combining_Mark
+11C41 11C45 Break_After
+11C50 11C59 Numeric
+11C70 Break_Before
+11C71 Exclamation
+11C92 11CA7 Combining_Mark
+11CA9 11CB6 Combining_Mark
12470 12474 Break_After
13258 1325A Open_Punctuation
1325B 1325D Close_Punctuation
@@ -1621,6 +1653,9 @@ FFFC Contingent_Break
16B50 16B59 Numeric
16F51 16F7E Combining_Mark
16F8F 16F92 Combining_Mark
+16FE0 Nonstarter
+17000 187EC Ideographic
+18800 18AF2 Ideographic
1B000 1B001 Ideographic
1BC9D 1BC9E Combining_Mark
1BC9F Break_After
@@ -1638,43 +1673,98 @@ FFFC Contingent_Break
1DA87 1DA8A Break_After
1DA9B 1DA9F Combining_Mark
1DAA1 1DAAF Combining_Mark
+1E000 1E006 Combining_Mark
+1E008 1E018 Combining_Mark
+1E01B 1E021 Combining_Mark
+1E023 1E024 Combining_Mark
+1E026 1E02A Combining_Mark
1E8D0 1E8D6 Combining_Mark
-1F000 1F02B Ideographic
-1F030 1F093 Ideographic
-1F0A0 1F0AE Ideographic
-1F0B1 1F0BF Ideographic
-1F0C1 1F0CF Ideographic
-1F0D1 1F0F5 Ideographic
+1E944 1E94A Combining_Mark
+1E950 1E959 Numeric
+1E95E 1E95F Open_Punctuation
+1F000 1F0FF Ideographic
+1F10D 1F10F Ideographic
+1F12F Ideographic
+1F16C 1F16F Ideographic
+1F1AD 1F1E5 Ideographic
1F1E6 1F1FF Regional_Indicator
-1F200 1F202 Ideographic
-1F210 1F23A Ideographic
-1F240 1F248 Ideographic
-1F250 1F251 Ideographic
-1F300 1F39B Ideographic
+1F200 1F384 Ideographic
+1F385 E_Base
+1F386 1F39B Ideographic
1F39E 1F3B4 Ideographic
1F3B7 1F3BB Ideographic
-1F3BD 1F3FA Ideographic
-1F400 1F49F Ideographic
+1F3BD 1F3C2 Ideographic
+1F3C3 1F3C4 E_Base
+1F3C5 1F3C9 Ideographic
+1F3CA 1F3CB E_Base
+1F3CC 1F3FA Ideographic
+1F3FB 1F3FF E_Modifier
+1F400 1F441 Ideographic
+1F442 1F443 E_Base
+1F444 1F445 Ideographic
+1F446 1F450 E_Base
+1F451 1F465 Ideographic
+1F466 1F469 E_Base
+1F46A 1F46D Ideographic
+1F46E E_Base
+1F46F Ideographic
+1F470 1F478 E_Base
+1F479 1F47B Ideographic
+1F47C E_Base
+1F47D 1F480 Ideographic
+1F481 1F483 E_Base
+1F484 Ideographic
+1F485 1F487 E_Base
+1F488 1F49F Ideographic
1F4A1 Ideographic
1F4A3 Ideographic
-1F4A5 1F4AE Ideographic
+1F4A5 1F4A9 Ideographic
+1F4AA E_Base
+1F4AB 1F4AE Ideographic
1F4B0 Ideographic
1F4B3 1F4FF Ideographic
1F507 1F516 Ideographic
1F525 1F531 Ideographic
-1F54A 1F579 Ideographic
-1F57B 1F5A3 Ideographic
-1F5A5 1F5D3 Ideographic
+1F54A 1F574 Ideographic
+1F575 E_Base
+1F576 1F579 Ideographic
+1F57A E_Base
+1F57B 1F58F Ideographic
+1F590 E_Base
+1F591 1F594 Ideographic
+1F595 1F596 E_Base
+1F597 1F5D3 Ideographic
1F5DC 1F5F3 Ideographic
-1F5FA 1F64F Ideographic
+1F5FA 1F644 Ideographic
+1F645 1F647 E_Base
+1F648 1F64A Ideographic
+1F64B 1F64F E_Base
1F676 1F678 Quotation
1F679 1F67B Nonstarter
-1F680 1F6D0 Ideographic
-1F6E0 1F6EC Ideographic
-1F6F0 1F6F3 Ideographic
-1F910 1F918 Ideographic
-1F980 1F984 Ideographic
-1F9C0 Ideographic
+1F680 1F6A2 Ideographic
+1F6A3 E_Base
+1F6A4 1F6B3 Ideographic
+1F6B4 1F6B6 E_Base
+1F6B7 1F6BF Ideographic
+1F6C0 E_Base
+1F6C1 1F6FF Ideographic
+1F774 1F77F Ideographic
+1F7D5 1F7FF Ideographic
+1F80C 1F80F Ideographic
+1F848 1F84F Ideographic
+1F85A 1F85F Ideographic
+1F888 1F88F Ideographic
+1F8AE 1F917 Ideographic
+1F918 1F91E E_Base
+1F91F 1F925 Ideographic
+1F926 E_Base
+1F927 1F92F Ideographic
+1F930 E_Base
+1F931 1F932 Ideographic
+1F933 1F939 E_Base
+1F93A 1F93B Ideographic
+1F93C 1F93E E_Base
+1F93F 1FFFD Ideographic
20000 2FFFD Ideographic
30000 3FFFD Ideographic
E0001 Combining_Mark
diff --git a/Master/tlpkg/tlperl/lib/unicore/To/_PerlWB.pl b/Master/tlpkg/tlperl/lib/unicore/To/_PerlWB.pl
index 013bafc1d07..6cf217b622c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/To/_PerlWB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/To/_PerlWB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -123,6 +123,9 @@ F8 2C1 ALetter
840 858 ALetter
859 85B Extend
8A0 8B4 ALetter
+8B6 8BD ALetter
+8D4 8E1 Extend
+8E2 Format
8E3 903 Extend
904 939 ALetter
93A 93C Extend
@@ -238,6 +241,7 @@ C58 C5A ALetter
C60 C61 ALetter
C62 C63 Extend
C66 C6F Numeric
+C80 ALetter
C81 C83 Extend
C85 C8C ALetter
C8E C90 ALetter
@@ -264,6 +268,7 @@ D3E D44 Extend
D46 D48 Extend
D4A D4D Extend
D4E ALetter
+D54 D56 ALetter
D57 Extend
D5F D61 ALetter
D62 D63 Extend
@@ -363,7 +368,9 @@ FC6 Extend
180E Format
1810 1819 Numeric
1820 1877 ALetter
-1880 18A8 ALetter
+1880 1884 ALetter
+1885 1886 Extend
+1887 18A8 ALetter
18A9 Extend
18AA ALetter
18B0 18F5 ALetter
@@ -399,6 +406,7 @@ FC6 Extend
1C4D 1C4F ALetter
1C50 1C59 Numeric
1C5A 1C7D ALetter
+1C80 1C88 ALetter
1CD0 1CD2 Extend
1CD4 1CE8 Extend
1CE9 1CEC ALetter
@@ -409,7 +417,7 @@ FC6 Extend
1CF8 1CF9 Extend
1D00 1DBF ALetter
1DC0 1DF5 Extend
-1DFC 1DFF Extend
+1DFB 1DFF Extend
1E00 1F15 ALetter
1F18 1F1D ALetter
1F20 1F45 ALetter
@@ -430,14 +438,15 @@ FC6 Extend
1FF2 1FF4 ALetter
1FF6 1FFC ALetter
2000 200A Perl_Tailored_HSpace
-200C 200D Extend
+200C Extend
+200D ZWJ
200E 200F Format
2018 2019 MidNumLet
2024 MidNumLet
2027 MidLetter
2028 2029 Newline
202A 202E Format
-202F Perl_Tailored_HSpace
+202F ExtendNumLet
203F 2040 ExtendNumLet
2044 MidNum
2054 ExtendNumLet
@@ -463,6 +472,10 @@ FC6 Extend
214E ALetter
2160 2188 ALetter
24B6 24E9 ALetter
+261D E_Base
+26F9 E_Base
+270A 270D E_Base
+2764 Glue_After_Zwj
2C00 2C2E ALetter
2C30 2C5E ALetter
2C60 2CE4 ALetter
@@ -516,7 +529,7 @@ A6A0 A6EF ALetter
A6F0 A6F1 Extend
A717 A71F ALetter
A722 A788 ALetter
-A78B A7AD ALetter
+A78B A7AE ALetter
A7B0 A7B7 ALetter
A7F7 A801 ALetter
A802 Extend
@@ -529,7 +542,7 @@ A823 A827 Extend
A840 A873 ALetter
A880 A881 Extend
A882 A8B3 ALetter
-A8B4 A8C4 Extend
+A8B4 A8C5 Extend
A8D0 A8D9 Numeric
A8E0 A8F1 Extend
A8F2 A8F7 ALetter
@@ -647,6 +660,8 @@ FFF9 FFFB Format
103D1 103D5 ALetter
10400 1049D ALetter
104A0 104A9 Numeric
+104B0 104D3 ALetter
+104D8 104FB ALetter
10500 10527 ALetter
10530 10563 ALetter
10600 10736 ALetter
@@ -715,6 +730,7 @@ FFF9 FFFB Format
11200 11211 ALetter
11213 1122B ALetter
1122C 11237 Extend
+1123E Extend
11280 11286 ALetter
11288 ALetter
1128A 1128D ALetter
@@ -741,6 +757,10 @@ FFF9 FFFB Format
11362 11363 Extend
11366 1136C Extend
11370 11374 Extend
+11400 11434 ALetter
+11435 11446 Extend
+11447 1144A ALetter
+11450 11459 Numeric
11480 114AF ALetter
114B0 114C3 Extend
114C4 114C5 ALetter
@@ -764,6 +784,15 @@ FFF9 FFFB Format
118E0 118E9 Numeric
118FF ALetter
11AC0 11AF8 ALetter
+11C00 11C08 ALetter
+11C0A 11C2E ALetter
+11C2F 11C36 Extend
+11C38 11C3F Extend
+11C40 ALetter
+11C50 11C59 Numeric
+11C72 11C8F ALetter
+11C92 11CA7 Extend
+11CA9 11CB6 Extend
12000 12399 ALetter
12400 1246E ALetter
12480 12543 ALetter
@@ -785,6 +814,7 @@ FFF9 FFFB Format
16F51 16F7E Extend
16F8F 16F92 Extend
16F93 16F9F ALetter
+16FE0 ALetter
1B000 Katakana
1BC00 1BC6A ALetter
1BC70 1BC7C ALetter
@@ -836,8 +866,16 @@ FFF9 FFFB Format
1DA84 Extend
1DA9B 1DA9F Extend
1DAA1 1DAAF Extend
+1E000 1E006 Extend
+1E008 1E018 Extend
+1E01B 1E021 Extend
+1E023 1E024 Extend
+1E026 1E02A Extend
1E800 1E8C4 ALetter
1E8D0 1E8D6 Extend
+1E900 1E943 ALetter
+1E944 1E94A Extend
+1E950 1E959 Numeric
1EE00 1EE03 ALetter
1EE05 1EE1F ALetter
1EE21 1EE22 ALetter
@@ -875,7 +913,36 @@ FFF9 FFFB Format
1F150 1F169 ALetter
1F170 1F189 ALetter
1F1E6 1F1FF Regional_Indicator
+1F385 E_Base
+1F3C3 1F3C4 E_Base
+1F3CA 1F3CB E_Base
+1F3FB 1F3FF E_Modifier
+1F442 1F443 E_Base
+1F446 1F450 E_Base
+1F466 1F469 E_Base_GAZ
+1F46E E_Base
+1F470 1F478 E_Base
+1F47C E_Base
+1F481 1F483 E_Base
+1F485 1F487 E_Base
+1F48B Glue_After_Zwj
+1F4AA E_Base
+1F575 E_Base
+1F57A E_Base
+1F590 E_Base
+1F595 1F596 E_Base
+1F5E8 Glue_After_Zwj
+1F645 1F647 E_Base
+1F64B 1F64F E_Base
+1F6A3 E_Base
+1F6B4 1F6B6 E_Base
+1F6C0 E_Base
+1F918 1F91E E_Base
+1F926 E_Base
+1F930 E_Base
+1F933 1F939 E_Base
+1F93C 1F93E E_Base
E0001 Format
-E0020 E007F Format
+E0020 E007F Extend
E0100 E01EF Extend
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/UCD.pl b/Master/tlpkg/tlperl/lib/unicore/UCD.pl
index 703d320d1d8..1c22dd9436d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/UCD.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/UCD.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
@@ -39,6 +39,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'age=6.3' => '6.3',
'age=7.0' => '7.0',
'age=8.0' => '8.0',
+'age=9.0' => '9.0',
'age=na' => 'na',
'age=unassigned' => 'na',
'age=v11' => '1.1',
@@ -58,6 +59,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'age=v63' => '6.3',
'age=v70' => '7.0',
'age=v80' => '8.0',
+'age=v90' => '9.0',
'ahex=f' => 'n',
'ahex=false' => 'n',
'ahex=n' => 'n',
@@ -136,6 +138,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'bidim=true' => 'y',
'bidim=y' => 'y',
'bidim=yes' => 'y',
+'blk=adlam' => 'adlam',
'blk=aegeannumbers' => 'aegeannumbers',
'blk=ahom' => 'ahom',
'blk=alchemical' => 'alchemical',
@@ -170,6 +173,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=bassavah' => 'bassavah',
'blk=batak' => 'batak',
'blk=bengali' => 'bengali',
+'blk=bhaiksuki' => 'bhaiksuki',
'blk=blockelements' => 'blockelements',
'blk=bopomofo' => 'bopomofo',
'blk=bopomofoext' => 'bopomofoext',
@@ -236,8 +240,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=cyrillic' => 'cyrillic',
'blk=cyrillicexta' => 'cyrillicexta',
'blk=cyrillicextb' => 'cyrillicextb',
+'blk=cyrillicextc' => 'cyrillicextc',
'blk=cyrillicextendeda' => 'cyrillicexta',
'blk=cyrillicextendedb' => 'cyrillicextb',
+'blk=cyrillicextendedc' => 'cyrillicextc',
'blk=cyrillicsup' => 'cyrillicsup',
'blk=cyrillicsupplement' => 'cyrillicsup',
'blk=cyrillicsupplementary' => 'cyrillicsup',
@@ -280,6 +286,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=georgiansup' => 'georgiansup',
'blk=georgiansupplement' => 'georgiansup',
'blk=glagolitic' => 'glagolitic',
+'blk=glagoliticsup' => 'glagoliticsup',
+'blk=glagoliticsupplement' => 'glagoliticsup',
'blk=gothic' => 'gothic',
'blk=grantha' => 'grantha',
'blk=greek' => 'greek',
@@ -306,6 +314,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=hiragana' => 'hiragana',
'blk=idc' => 'idc',
'blk=ideographicdescriptioncharacters' => 'idc',
+'blk=ideographicsymbols' => 'ideographicsymbols',
+'blk=ideographicsymbolsandpunctuation' => 'ideographicsymbols',
'blk=imperialaramaic' => 'imperialaramaic',
'blk=indicnumberforms' => 'indicnumberforms',
'blk=inscriptionalpahlavi' => 'inscriptionalpahlavi',
@@ -364,6 +374,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=malayalam' => 'malayalam',
'blk=mandaic' => 'mandaic',
'blk=manichaean' => 'manichaean',
+'blk=marchen' => 'marchen',
'blk=mathalphanum' => 'mathalphanum',
'blk=mathematicalalphanumericsymbols' => 'mathalphanum',
'blk=mathematicaloperators' => 'mathoperators',
@@ -391,6 +402,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=modifierletters' => 'modifierletters',
'blk=modifiertoneletters' => 'modifiertoneletters',
'blk=mongolian' => 'mongolian',
+'blk=mongoliansup' => 'mongoliansup',
+'blk=mongoliansupplement' => 'mongoliansup',
'blk=mro' => 'mro',
'blk=multani' => 'multani',
'blk=music' => 'music',
@@ -402,6 +415,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=myanmarextendedb' => 'myanmarextb',
'blk=nabataean' => 'nabataean',
'blk=nb' => 'nb',
+'blk=newa' => 'newa',
'blk=newtailue' => 'newtailue',
'blk=nko' => 'nko',
'blk=noblock' => 'nb',
@@ -419,6 +433,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=opticalcharacterrecognition' => 'ocr',
'blk=oriya' => 'oriya',
'blk=ornamentaldingbats' => 'ornamentaldingbats',
+'blk=osage' => 'osage',
'blk=osmanya' => 'osmanya',
'blk=pahawhhmong' => 'pahawhhmong',
'blk=palmyrene' => 'palmyrene',
@@ -488,6 +503,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'blk=taixuanjingsymbols' => 'taixuanjing',
'blk=takri' => 'takri',
'blk=tamil' => 'tamil',
+'blk=tangut' => 'tangut',
+'blk=tangutcomponents' => 'tangutcomponents',
'blk=telugu' => 'telugu',
'blk=thaana' => 'thaana',
'blk=thai' => 'thai',
@@ -905,8 +922,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'gcb=cn' => 'cn',
'gcb=control' => 'cn',
'gcb=cr' => 'cr',
+'gcb=eb' => 'eb',
+'gcb=ebase' => 'eb',
+'gcb=ebasegaz' => 'ebg',
+'gcb=ebg' => 'ebg',
+'gcb=em' => 'em',
+'gcb=emodifier' => 'em',
'gcb=ex' => 'ex',
'gcb=extend' => 'ex',
+'gcb=gaz' => 'gaz',
+'gcb=glueafterzwj' => 'gaz',
'gcb=l' => 'l',
'gcb=lf' => 'lf',
'gcb=lv' => 'lv',
@@ -921,6 +946,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'gcb=t' => 't',
'gcb=v' => 'v',
'gcb=xx' => 'xx',
+'gcb=zwj' => 'zwj',
'grbase=f' => 'n',
'grbase=false' => 'n',
'grbase=n' => 'n',
@@ -1022,6 +1048,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'in=6.3' => '6.3',
'in=7.0' => '7.0',
'in=8.0' => '8.0',
+'in=9.0' => '9.0',
'in=unassigned' => 'unassigned',
'inpc=bottom' => 'bottom',
'inpc=bottomandright' => 'bottomandright',
@@ -1072,6 +1099,9 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'insc=vowel' => 'vowel',
'insc=voweldependent' => 'voweldependent',
'insc=vowelindependent' => 'vowelindependent',
+'jg=africanfeh' => 'africanfeh',
+'jg=africannoon' => 'africannoon',
+'jg=africanqaf' => 'africanqaf',
'jg=ain' => 'ain',
'jg=alaph' => 'alaph',
'jg=alef' => 'alef',
@@ -1204,6 +1234,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'lb=contingentbreak' => 'cb',
'lb=cp' => 'cp',
'lb=cr' => 'cr',
+'lb=eb' => 'eb',
+'lb=ebase' => 'eb',
+'lb=em' => 'em',
+'lb=emodifier' => 'em',
'lb=ex' => 'ex',
'lb=exclamation' => 'ex',
'lb=gl' => 'gl',
@@ -1254,6 +1288,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'lb=wordjoiner' => 'wj',
'lb=xx' => 'xx',
'lb=zw' => 'zw',
+'lb=zwj' => 'zwj',
'lb=zwspace' => 'zw',
'loe=f' => 'n',
'loe=false' => 'n',
@@ -1320,9 +1355,12 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'nv=1/10' => '1/10',
'nv=1/12' => '1/12',
'nv=1/16' => '1/16',
+'nv=1/160' => '1/160',
'nv=1/2' => '1/2',
+'nv=1/20' => '1/20',
'nv=1/3' => '1/3',
'nv=1/4' => '1/4',
+'nv=1/40' => '1/40',
'nv=1/5' => '1/5',
'nv=1/6' => '1/6',
'nv=1/7' => '1/7',
@@ -1372,9 +1410,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'nv=3' => 3,
'nv=3/16' => '3/16',
'nv=3/2' => '3/2',
+'nv=3/20' => '3/20',
'nv=3/4' => '3/4',
'nv=3/5' => '3/5',
'nv=3/8' => '3/8',
+'nv=3/80' => '3/80',
'nv=30' => 30,
'nv=300' => 300,
'nv=3000' => 3000,
@@ -1461,6 +1501,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'patws=true' => 'y',
'patws=y' => 'y',
'patws=yes' => 'y',
+'pcm=f' => 'n',
+'pcm=false' => 'n',
+'pcm=n' => 'n',
+'pcm=no' => 'n',
+'pcm=t' => 'y',
+'pcm=true' => 'y',
+'pcm=y' => 'y',
+'pcm=yes' => 'y',
'qmark=f' => 'n',
'qmark=false' => 'n',
'qmark=n' => 'n',
@@ -1504,6 +1552,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sb=up' => 'up',
'sb=upper' => 'up',
'sb=xx' => 'xx',
+'sc=adlam' => 'adlm',
+'sc=adlm' => 'adlm',
'sc=aghb' => 'aghb',
'sc=ahom' => 'ahom',
'sc=anatolianhieroglyphs' => 'hluw',
@@ -1524,6 +1574,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=batk' => 'batk',
'sc=beng' => 'beng',
'sc=bengali' => 'beng',
+'sc=bhaiksuki' => 'bhks',
+'sc=bhks' => 'bhks',
'sc=bopo' => 'bopo',
'sc=bopomofo' => 'bopo',
'sc=brah' => 'brah',
@@ -1640,6 +1692,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=mandaic' => 'mand',
'sc=mani' => 'mani',
'sc=manichaean' => 'mani',
+'sc=marc' => 'marc',
+'sc=marchen' => 'marc',
'sc=meeteimayek' => 'mtei',
'sc=mend' => 'mend',
'sc=mendekikakui' => 'mend',
@@ -1662,6 +1716,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=nabataean' => 'nbat',
'sc=narb' => 'narb',
'sc=nbat' => 'nbat',
+'sc=newa' => 'newa',
'sc=newtailue' => 'talu',
'sc=nko' => 'nkoo',
'sc=nkoo' => 'nkoo',
@@ -1679,6 +1734,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=oriya' => 'orya',
'sc=orkh' => 'orkh',
'sc=orya' => 'orya',
+'sc=osage' => 'osge',
+'sc=osge' => 'osge',
'sc=osma' => 'osma',
'sc=osmanya' => 'osma',
'sc=pahawhhmong' => 'hmng',
@@ -1738,6 +1795,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=talu' => 'talu',
'sc=tamil' => 'taml',
'sc=taml' => 'taml',
+'sc=tang' => 'tang',
+'sc=tangut' => 'tang',
'sc=tavt' => 'tavt',
'sc=telu' => 'telu',
'sc=telugu' => 'telu',
@@ -1765,6 +1824,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sc=zinh' => 'zinh',
'sc=zyyy' => 'zyyy',
'sc=zzzz' => 'zzzz',
+'scx=adlam' => 'adlm',
+'scx=adlm' => 'adlm',
'scx=aghb' => 'aghb',
'scx=ahom' => 'ahom',
'scx=anatolianhieroglyphs' => 'hluw',
@@ -1785,6 +1846,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=batk' => 'batk',
'scx=beng' => 'beng',
'scx=bengali' => 'beng',
+'scx=bhaiksuki' => 'bhks',
+'scx=bhks' => 'bhks',
'scx=bopo' => 'bopo',
'scx=bopomofo' => 'bopo',
'scx=brah' => 'brah',
@@ -1901,6 +1964,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=mandaic' => 'mand',
'scx=mani' => 'mani',
'scx=manichaean' => 'mani',
+'scx=marc' => 'marc',
+'scx=marchen' => 'marc',
'scx=meeteimayek' => 'mtei',
'scx=mend' => 'mend',
'scx=mendekikakui' => 'mend',
@@ -1923,6 +1988,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=nabataean' => 'nbat',
'scx=narb' => 'narb',
'scx=nbat' => 'nbat',
+'scx=newa' => 'newa',
'scx=newtailue' => 'talu',
'scx=nko' => 'nkoo',
'scx=nkoo' => 'nkoo',
@@ -1940,6 +2006,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=oriya' => 'orya',
'scx=orkh' => 'orkh',
'scx=orya' => 'orya',
+'scx=osage' => 'osge',
+'scx=osge' => 'osge',
'scx=osma' => 'osma',
'scx=osmanya' => 'osma',
'scx=pahawhhmong' => 'hmng',
@@ -1999,6 +2067,8 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'scx=talu' => 'talu',
'scx=tamil' => 'taml',
'scx=taml' => 'taml',
+'scx=tang' => 'tang',
+'scx=tangut' => 'tang',
'scx=tavt' => 'tavt',
'scx=telu' => 'telu',
'scx=telugu' => 'telu',
@@ -2078,11 +2148,19 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'wb=cr' => 'cr',
'wb=doublequote' => 'dq',
'wb=dq' => 'dq',
+'wb=eb' => 'eb',
+'wb=ebase' => 'eb',
+'wb=ebasegaz' => 'ebg',
+'wb=ebg' => 'ebg',
+'wb=em' => 'em',
+'wb=emodifier' => 'em',
'wb=ex' => 'ex',
'wb=extend' => 'extend',
'wb=extendnumlet' => 'ex',
'wb=fo' => 'fo',
'wb=format' => 'fo',
+'wb=gaz' => 'gaz',
+'wb=glueafterzwj' => 'gaz',
'wb=hebrewletter' => 'hl',
'wb=hl' => 'hl',
'wb=ka' => 'ka',
@@ -2105,6 +2183,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'wb=singlequote' => 'sq',
'wb=sq' => 'sq',
'wb=xx' => 'xx',
+'wb=zwj' => 'zwj',
'wspace=f' => 'n',
'wspace=false' => 'n',
'wspace=n' => 'n',
@@ -2749,6 +2828,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Pat_WS',
'Pattern_White_Space',
],
+'pcm' =>
+[
+'PCM',
+'Prepended_Concatenation_Mark',
+],
'perldecimaldigit' =>
[
'Perl_Decimal_Digit',
@@ -2804,7 +2888,7 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'sterm' =>
[
'STerm',
-'STerm',
+'Sentence_Terminal',
],
'suc' =>
[
@@ -2956,6 +3040,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'8.0',
'V8_0',
],
+'9.0' =>
+[
+'9.0',
+'V9_0',
+],
'na' =>
[
'NA',
@@ -3150,6 +3239,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
},
'blk' =>
{
+'adlam' =>
+[
+'Adlam',
+],
'aegeannumbers' =>
[
'Aegean_Numbers',
@@ -3256,6 +3349,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Bengali',
],
+'bhaiksuki' =>
+[
+'Bhaiksuki',
+],
'blockelements' =>
[
'Block_Elements',
@@ -3437,6 +3534,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Cyrillic_Ext_B',
'Cyrillic_Extended_B',
],
+'cyrillicextc' =>
+[
+'Cyrillic_Ext_C',
+'Cyrillic_Extended_C',
+],
'cyrillicsup' =>
[
'Cyrillic_Sup',
@@ -3567,6 +3669,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Glagolitic',
],
+'glagoliticsup' =>
+[
+'Glagolitic_Sup',
+'Glagolitic_Supplement',
+],
'gothic' =>
[
'Gothic',
@@ -3638,6 +3745,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'IDC',
'Ideographic_Description_Characters',
],
+'ideographicsymbols' =>
+[
+'Ideographic_Symbols',
+'Ideographic_Symbols_And_Punctuation',
+],
'imperialaramaic' =>
[
'Imperial_Aramaic',
@@ -3835,6 +3947,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Manichaean',
],
+'marchen' =>
+[
+'Marchen',
+],
'mathalphanum' =>
[
'Math_Alphanum',
@@ -3917,6 +4033,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Mongolian',
],
+'mongoliansup' =>
+[
+'Mongolian_Sup',
+'Mongolian_Supplement',
+],
'mro' =>
[
'Mro',
@@ -3953,6 +4074,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'NB',
'No_Block',
],
+'newa' =>
+[
+'Newa',
+],
'newtailue' =>
[
'New_Tai_Lue',
@@ -4014,6 +4139,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Ornamental_Dingbats',
],
+'osage' =>
+[
+'Osage',
+],
'osmanya' =>
[
'Osmanya',
@@ -4233,6 +4362,14 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'Tamil',
],
+'tangut' =>
+[
+'Tangut',
+],
+'tangutcomponents' =>
+[
+'Tangut_Components',
+],
'telugu' =>
[
'Telugu',
@@ -5271,11 +5408,31 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'CR',
],
+'eb' =>
+[
+'EB',
+'E_Base',
+],
+'ebg' =>
+[
+'EBG',
+'E_Base_GAZ',
+],
+'em' =>
+[
+'EM',
+'E_Modifier',
+],
'ex' =>
[
'EX',
'Extend',
],
+'gaz' =>
+[
+'GAZ',
+'Glue_After_Zwj',
+],
'l' =>
[
'L',
@@ -5320,6 +5477,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'XX',
'Other',
],
+'zwj' =>
+[
+'ZWJ',
+],
},
'grbase' =>
{
@@ -5577,6 +5738,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'8.0',
],
+'9.0' =>
+[
+'9.0',
+],
'unassigned' =>
[
'Unassigned',
@@ -5786,6 +5951,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
},
'jg' =>
{
+'africanfeh' =>
+[
+'African_Feh',
+],
+'africannoon' =>
+[
+'African_Noon',
+],
+'africanqaf' =>
+[
+'African_Qaf',
+],
'ain' =>
[
'Ain',
@@ -6244,6 +6421,16 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'CR',
'Carriage_Return',
],
+'eb' =>
+[
+'EB',
+'E_Base',
+],
+'em' =>
+[
+'EM',
+'E_Modifier',
+],
'ex' =>
[
'EX',
@@ -6380,6 +6567,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'ZW',
'ZWSpace',
],
+'zwj' =>
+[
+'ZWJ',
+],
},
'loe' =>
{
@@ -6559,10 +6750,18 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'1/16',
],
+'1/160' =>
+[
+'1/160',
+],
'1/2' =>
[
'1/2',
],
+'1/20' =>
+[
+'1/20',
+],
'1/3' =>
[
'1/3',
@@ -6571,6 +6770,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'1/4',
],
+'1/40' =>
+[
+'1/40',
+],
'1/5' =>
[
'1/5',
@@ -6767,6 +6970,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'3/2',
],
+'3/20' =>
+[
+'3/20',
+],
'3/4' =>
[
'3/4',
@@ -6779,6 +6986,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
[
'3/8',
],
+'3/80' =>
+[
+'3/80',
+],
30 =>
[
30,
@@ -7094,6 +7305,23 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'True',
],
},
+'pcm' =>
+{
+'n' =>
+[
+'N',
+'No',
+'F',
+'False',
+],
+'y' =>
+[
+'Y',
+'Yes',
+'T',
+'True',
+],
+},
'qmark' =>
{
'n' =>
@@ -7206,6 +7434,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
},
'sc' =>
{
+'adlm' =>
+[
+'Adlm',
+'Adlam',
+],
'aghb' =>
[
'Aghb',
@@ -7260,6 +7493,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Beng',
'Bengali',
],
+'bhks' =>
+[
+'Bhks',
+'Bhaiksuki',
+],
'bopo' =>
[
'Bopo',
@@ -7549,6 +7787,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Mani',
'Manichaean',
],
+'marc' =>
+[
+'Marc',
+'Marchen',
+],
'mend' =>
[
'Mend',
@@ -7608,6 +7851,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Nbat',
'Nabataean',
],
+'newa' =>
+[
+'Newa',
+],
'nkoo' =>
[
'Nkoo',
@@ -7633,6 +7880,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Orya',
'Oriya',
],
+'osge' =>
+[
+'Osge',
+'Osage',
+],
'osma' =>
[
'Osma',
@@ -7783,6 +8035,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Taml',
'Tamil',
],
+'tang' =>
+[
+'Tang',
+'Tangut',
+],
'tavt' =>
[
'Tavt',
@@ -7871,6 +8128,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
},
'scx' =>
{
+'adlm' =>
+[
+'Adlm',
+'Adlam',
+],
'aghb' =>
[
'Aghb',
@@ -7925,6 +8187,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Beng',
'Bengali',
],
+'bhks' =>
+[
+'Bhks',
+'Bhaiksuki',
+],
'bopo' =>
[
'Bopo',
@@ -8214,6 +8481,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Mani',
'Manichaean',
],
+'marc' =>
+[
+'Marc',
+'Marchen',
+],
'mend' =>
[
'Mend',
@@ -8273,6 +8545,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Nbat',
'Nabataean',
],
+'newa' =>
+[
+'Newa',
+],
'nkoo' =>
[
'Nkoo',
@@ -8298,6 +8574,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Orya',
'Oriya',
],
+'osge' =>
+[
+'Osge',
+'Osage',
+],
'osma' =>
[
'Osma',
@@ -8448,6 +8729,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'Taml',
'Tamil',
],
+'tang' =>
+[
+'Tang',
+'Tangut',
+],
'tavt' =>
[
'Tavt',
@@ -8647,6 +8933,21 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'DQ',
'Double_Quote',
],
+'eb' =>
+[
+'EB',
+'E_Base',
+],
+'ebg' =>
+[
+'EBG',
+'E_Base_GAZ',
+],
+'em' =>
+[
+'EM',
+'E_Modifier',
+],
'ex' =>
[
'EX',
@@ -8661,6 +8962,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'FO',
'Format',
],
+'gaz' =>
+[
+'GAZ',
+'Glue_After_Zwj',
+],
'hl' =>
[
'HL',
@@ -8720,6 +9026,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'XX',
'Other',
],
+'zwj' =>
+[
+'ZWJ',
+],
},
'wspace' =>
{
@@ -8805,6 +9115,11 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'name' => 'CJK COMPATIBILITY IDEOGRAPH-<code point>',
},
{
+'high' => 100332,
+'low' => 94208,
+'name' => 'TANGUT IDEOGRAPH-<code point>',
+},
+{
'high' => 173782,
'low' => 131072,
'name' => 'CJK UNIFIED IDEOGRAPH-<code point>',
@@ -9032,6 +9347,10 @@ $Unicode::UCD::HANGUL_COUNT = 11172;
'patws=false' => 1,
'patws=n' => 1,
'patws=no' => 1,
+'pcm=f' => 1,
+'pcm=false' => 1,
+'pcm=n' => 1,
+'pcm=no' => 1,
'qmark=f' => 1,
'qmark=false' => 1,
'qmark=n' => 1,
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
index 41542fb1223..ebad7be9e6c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/NA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1245
+V1295
888
890
896
@@ -58,7 +58,9 @@ V1245
2143
2208
2229
-2275
+2230
+2238
+2260
2436
2437
2445
@@ -231,8 +233,6 @@ V1245
3174
3184
3192
-3200
-3201
3204
3205
3213
@@ -273,14 +273,10 @@ V1245
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
3458
3460
@@ -481,7 +477,7 @@ V1245
7227
7242
7245
-7296
+7305
7360
7368
7376
@@ -490,7 +486,7 @@ V1245
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -537,7 +533,7 @@ V1245
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -589,7 +585,7 @@ V1245
11736
11743
11744
-11843
+11845
11904
11930
11931
@@ -629,7 +625,7 @@ V1245
42560
42744
42752
-42926
+42927
42928
42936
42999
@@ -639,7 +635,7 @@ V1245
43072
43128
43136
-43205
+43206
43214
43226
43232
@@ -761,7 +757,7 @@ V1245
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -790,6 +786,10 @@ V1245
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -901,7 +901,7 @@ V1245
70144
70162
70163
-70206
+70207
70272
70279
70280
@@ -946,6 +946,12 @@ V1245
70509
70512
70517
+70656
+70746
+70747
+70748
+70749
+70750
70784
70856
70864
@@ -958,6 +964,8 @@ V1245
71237
71248
71258
+71264
+71277
71296
71352
71360
@@ -974,6 +982,20 @@ V1245
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1014,6 +1036,12 @@ V1245
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1084,10 +1112,26 @@ V1245
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125127
125143
+125184
+125259
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1175,25 +1219,21 @@ V1245
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -1209,9 +1249,19 @@ V1245
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131070
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
index f7ed4f89c71..c023681a264 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V11.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
index 7a43aec46c8..7444e49ce3c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V20.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
index 7d2f103af3d..83f71797f0a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V30.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
index 3442b1e3558..732597bc6e8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V31.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
index 679b7fcf5ae..abeaa808eef 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V32.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
index a1636b051c4..c7dde294b05 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V40.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
index 3f9e342b5e9..6fc5cf5d767 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V41.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
index 0eba7422ad2..e779edc1848 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V50.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
index c2717d40c93..40d75264a84 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V51.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
index f003b210d33..052053a64f2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V52.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
index ecee292563a..3a706480694 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V60.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
index ae079be0736..cdcc6e98431 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V61.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl
index 1fdafb79f77..21ef1043bdb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V70.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl
index 8046d40cf9f..b25ffae4b50 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V80.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl
new file mode 100755
index 00000000000..49a34542d2b
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Age/V90.pl
@@ -0,0 +1,118 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V104
+2230
+2238
+2260
+2275
+3200
+3201
+3407
+3408
+3412
+3415
+3416
+3423
+3446
+3449
+7296
+7305
+7675
+7676
+9211
+9215
+11843
+11845
+42926
+42927
+43205
+43206
+65933
+65935
+66736
+66772
+66776
+66812
+70206
+70207
+70656
+70746
+70747
+70748
+70749
+70750
+71264
+71277
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
+94176
+94177
+94208
+100333
+100352
+101107
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
+125184
+125259
+125264
+125274
+125278
+125280
+127387
+127405
+127547
+127548
+128378
+128379
+128420
+128421
+128721
+128723
+128756
+128759
+129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
+129413
+129426
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
index cc2163e127e..e0f363b7e88 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Alpha/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1234
+V1288
65
91
97
@@ -115,6 +115,10 @@ V1234
2137
2208
2229
+2230
+2238
+2260
+2272
2275
2282
2288
@@ -291,7 +295,7 @@ V1234
3163
3168
3172
-3201
+3200
3204
3205
3213
@@ -333,7 +337,7 @@ V1234
3405
3406
3407
-3415
+3412
3416
3423
3428
@@ -555,6 +559,8 @@ V1234
7248
7258
7294
+7296
+7305
7401
7405
7406
@@ -730,7 +736,7 @@ V1234
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -745,6 +751,8 @@ V1234
43124
43136
43204
+43205
+43206
43250
43256
43259
@@ -895,6 +903,10 @@ V1234
66518
66560
66718
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -991,6 +1003,8 @@ V1234
70197
70199
70200
+70206
+70207
70272
70279
70280
@@ -1029,6 +1043,12 @@ V1234
70488
70493
70500
+70656
+70722
+70723
+70726
+70727
+70731
70784
70850
70852
@@ -1059,6 +1079,20 @@ V1234
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72767
+72768
+72769
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1089,6 +1123,12 @@ V1234
94079
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1161,8 +1201,22 @@ V1234
120771
120772
120780
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
+125184
+125252
+125255
+125256
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
index 881a45525e7..5fd74a9c89c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -36,7 +36,7 @@ V40
1969
1984
2208
-2275
+2260
64336
64830
64832
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
index f301492140a..a7c8a7318c2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/AN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V10
+V12
1536
1542
1632
@@ -19,6 +19,8 @@ V10
1645
1757
1758
+2274
+2275
69216
69247
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
index 5a6799e68f0..a31691e99c3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/B.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
index 6135cb9a2dc..b993674bef9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/BN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
index 24652c876db..b0449334bbf 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/CS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
index 9f800ec4071..96546c9ed6e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/EN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
index 0576bf5fcf6..a0c3e92b602 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ES.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
index 025de4f2443..d43ee35f8a2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ET.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
index 045aea84331..5d7564c1e29 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/L.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V789
+V829
65
91
97
@@ -258,6 +258,8 @@ V789
6138
6144
6159
+6277
+6279
6313
6314
6432
@@ -340,7 +342,7 @@ V789
7418
7616
7670
-7676
+7675
7680
8125
8126
@@ -399,7 +401,7 @@ V789
9083
9109
9110
-9211
+9215
9216
9255
9280
@@ -431,7 +433,7 @@ V789
11647
11648
11744
-11843
+11845
11904
11930
11931
@@ -507,7 +509,7 @@ V789
43124
43128
43204
-43205
+43206
43232
43250
43302
@@ -626,6 +628,8 @@ V789
70197
70198
70200
+70206
+70207
70367
70368
70371
@@ -640,6 +644,12 @@ V789
70509
70512
70517
+70712
+70720
+70722
+70725
+70726
+70727
70835
70841
70842
@@ -662,6 +672,8 @@ V789
71230
71231
71233
+71264
+71277
71339
71340
71341
@@ -676,6 +688,18 @@ V789
71462
71463
71468
+72752
+72759
+72760
+72766
+72850
+72872
+72874
+72881
+72882
+72884
+72885
+72887
92912
92917
92976
@@ -722,6 +746,16 @@ V789
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
127020
127024
@@ -739,15 +773,11 @@ V789
127338
127340
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -763,9 +793,19 @@ V789
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131070
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
index 53f13cd660a..ee61f9e20c6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/NSM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V524
+V560
768
880
1155
@@ -57,6 +57,8 @@ V524
2094
2137
2140
+2260
+2274
2275
2307
2362
@@ -241,6 +243,8 @@ V524
6110
6155
6158
+6277
+6279
6313
6314
6432
@@ -317,7 +321,7 @@ V524
7418
7616
7670
-7676
+7675
7680
8400
8433
@@ -348,7 +352,7 @@ V524
43045
43047
43204
-43205
+43206
43232
43250
43302
@@ -451,6 +455,8 @@ V524
70197
70198
70200
+70206
+70207
70367
70368
70371
@@ -465,6 +471,12 @@ V524
70509
70512
70517
+70712
+70720
+70722
+70725
+70726
+70727
70835
70841
70842
@@ -501,6 +513,18 @@ V524
71462
71463
71468
+72752
+72759
+72760
+72766
+72850
+72872
+72874
+72881
+72882
+72884
+72885
+72887
92912
92917
92976
@@ -531,8 +555,20 @@ V524
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
index 81e2b3feee0..86610ef33d1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/ON.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V348
+V356
33
35
38
@@ -154,7 +154,7 @@ V348
9083
9109
9110
-9211
+9215
9216
9255
9280
@@ -182,7 +182,7 @@ V348
11513
11520
11776
-11843
+11845
11904
11930
11931
@@ -295,6 +295,8 @@ V348
68416
69714
69734
+71264
+71277
119296
119362
119365
@@ -330,15 +332,11 @@ V348
127338
127340
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -354,9 +352,19 @@ V348
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
index 0e8da077fac..788f83438b5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/R.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V62
+V64
1424
1425
1470
@@ -70,6 +70,8 @@ V62
124928
125136
125143
+125252
+125259
126464
126720
126976
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
index c1755697b75..0dde6b894c2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bc/WS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
index 44005c8ed72..dcad179a507 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/BidiC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
index 58d17da92b0..b9512a62a44 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/BidiM/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
index 4a6ea052627..d40535c5a32 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Blk/NB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,10 +10,10 @@
return <<'END';
-V85
+V89
2144
2208
-7296
+7312
7360
12256
12272
@@ -21,8 +21,6 @@ V85
66176
66528
66560
-66736
-66816
66928
67072
67456
@@ -44,11 +42,9 @@ V85
70224
70272
70528
-70784
+70656
70880
71040
-71264
-71296
71376
71424
71488
@@ -56,6 +52,8 @@ V85
71936
72384
72448
+72704
+72896
73728
75088
77824
@@ -68,6 +66,8 @@ V85
93072
93952
94112
+94176
+101120
110592
110848
113664
@@ -78,8 +78,12 @@ V85
119680
119808
121520
+122880
+122928
124928
125152
+125184
+125280
126464
126720
126976
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
index 46d2bf38831..df2e68979b1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
index 7cb249cb020..da0ba90c5d5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
index 62a1e548f37..e1c1a6c3b60 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Bpt/O.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
index 5c77a421c87..ed37703ee42 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CE/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
index 0844d7e41e5..f5afc4abc9c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CI/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V692
+V730
39
40
46
@@ -91,7 +91,7 @@ V692
2094
2137
2140
-2275
+2260
2307
2362
2363
@@ -289,6 +289,8 @@ V692
6159
6211
6212
+6277
+6279
6313
6314
6432
@@ -373,7 +375,7 @@ V692
7545
7579
7670
-7676
+7675
7680
8125
8126
@@ -466,7 +468,7 @@ V692
43045
43047
43204
-43205
+43206
43232
43250
43302
@@ -609,6 +611,8 @@ V692
70197
70198
70200
+70206
+70207
70367
70368
70371
@@ -623,6 +627,12 @@ V692
70509
70512
70517
+70712
+70720
+70722
+70725
+70726
+70727
70835
70841
70842
@@ -659,6 +669,20 @@ V692
71462
71463
71468
+72752
+72759
+72760
+72766
+72767
+72768
+72850
+72872
+72874
+72881
+72882
+72884
+72885
+72887
92912
92917
92976
@@ -667,6 +691,8 @@ V692
92996
94095
94112
+94176
+94177
113821
113823
113824
@@ -693,8 +719,20 @@ V692
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
127995
128000
917505
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
index 4a6d668749c..f47833c6bda 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWCF/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1200
+V1206
65
91
181
@@ -575,6 +575,8 @@ V1200
4302
5112
5118
+7296
+7305
7680
7681
7682
@@ -1192,7 +1194,7 @@ V1200
42920
42921
42922
-42926
+42927
42928
42933
42934
@@ -1207,8 +1209,12 @@ V1200
65339
66560
66600
+66736
+66772
68736
68787
71840
71872
+125184
+125218
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
index 7155ee662b5..d65ba0114d7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWCM/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V226
+V232
65
91
97
@@ -54,8 +54,6 @@ V226
613
615
616
-618
-619
621
623
624
@@ -117,6 +115,8 @@ V226
5110
5112
5118
+7296
+7305
7545
7546
7549
@@ -214,7 +214,7 @@ V226
42896
42900
42902
-42926
+42927
42928
42936
43859
@@ -231,10 +231,16 @@ V226
65371
66560
66640
+66736
+66772
+66776
+66812
68736
68787
68800
68851
71840
71904
+125184
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
index 0fe1fcb50ba..0c63748ac94 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWKCF/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1624
+V1630
65
91
160
@@ -653,6 +653,8 @@ V1624
6070
6155
6159
+7296
+7305
7468
7471
7472
@@ -1402,7 +1404,7 @@ V1624
42920
42921
42922
-42926
+42927
42928
42933
42934
@@ -1493,6 +1495,8 @@ V1624
65529
66560
66600
+66736
+66772
68736
68787
71840
@@ -1547,6 +1551,8 @@ V1624
120780
120782
120832
+125184
+125218
126464
126468
126469
@@ -1626,7 +1632,7 @@ V1624
127488
127491
127504
-127547
+127548
127552
127561
127568
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
index 4314de81232..cd686a4eb58 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWL/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1176
+V1180
65
91
192
@@ -1174,7 +1174,7 @@ V1176
42920
42921
42922
-42926
+42927
42928
42933
42934
@@ -1183,8 +1183,12 @@ V1176
65339
66560
66600
+66736
+66772
68736
68787
71840
71872
+125184
+125218
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
index fa40f60eeab..b656464f055 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWT/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1212
+V1216
97
123
181
@@ -314,8 +314,6 @@ V1212
613
615
616
-618
-619
621
623
624
@@ -587,6 +585,8 @@ V1212
1416
5112
5118
+7296
+7305
7545
7546
7549
@@ -1219,8 +1219,12 @@ V1212
65371
66600
66640
+66776
+66812
68800
68851
71872
71904
+125218
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
index 7f5c76ec507..1111dcde5e4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CWU/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1210
+V1214
97
123
181
@@ -312,8 +312,6 @@ V1210
613
615
616
-618
-619
621
623
624
@@ -585,6 +583,8 @@ V1210
1416
5112
5118
+7296
+7305
7545
7546
7549
@@ -1217,8 +1217,12 @@ V1210
65371
66600
66640
+66776
+66812
68800
68851
71872
71904
+125218
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
index 4fd60bec06b..66f47621b0d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Cased/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V262
+V270
65
91
97
@@ -75,6 +75,8 @@ V262
5110
5112
5118
+7296
+7305
7424
7616
7680
@@ -180,7 +182,7 @@ V262
42891
42895
42896
-42926
+42927
42928
42936
43000
@@ -201,6 +203,10 @@ V262
65371
66560
66640
+66736
+66772
+66776
+66812
68736
68787
68800
@@ -267,6 +273,8 @@ V262
120771
120772
120780
+125184
+125252
127280
127306
127312
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
index 87cce7ce682..d319119f15f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/A.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V204
+V220
768
789
829
@@ -93,6 +93,8 @@ V204
2088
2089
2094
+2260
+2274
2276
2278
2279
@@ -149,6 +151,8 @@ V204
7629
7633
7670
+7675
+7676
7678
7679
8400
@@ -215,4 +219,16 @@ V204
119214
119362
119365
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
+125252
+125258
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
index 0017ee44de1..41917df9d57 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/AR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
index cf2c75349ac..754e024160a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/ATAR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
index 44d3a4fabad..555dd8defd3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/B.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
index 866771006b6..5ece9fbb927 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/BR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
index b87ed1c7b50..f67849f0dcd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/DB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
index 1d8b7363466..e49f3a41bc6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NK.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V40
+V44
2364
2365
2492
@@ -45,10 +45,14 @@ V40
70378
70460
70461
+70726
+70727
70851
70852
71104
71105
71351
71352
+125258
+125259
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
index e4223145aa1..7422d4d3da8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/NR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V305
+V325
0
768
847
@@ -58,6 +58,8 @@ V305
2094
2137
2140
+2260
+2274
2275
2304
2364
@@ -184,7 +186,7 @@ V305
7418
7616
7670
-7676
+7675
7680
8400
8413
@@ -286,6 +288,10 @@ V305
70509
70512
70517
+70722
+70723
+70726
+70727
70850
70852
71103
@@ -296,6 +302,8 @@ V305
71352
71467
71468
+72767
+72768
92912
92917
92976
@@ -314,6 +322,18 @@ V305
119214
119362
119365
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
index c245442b81b..f0254b80401 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/OV.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
index 06b94966880..0d7830ebbdd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ccc/VR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V82
+V86
2381
2382
2509
@@ -83,6 +83,8 @@ V82
70379
70477
70478
+70722
+70723
70850
70851
71103
@@ -93,4 +95,6 @@ V82
71351
71467
71468
+72767
+72768
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
index 89353314f09..1bb4d1d766b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/CompEx/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
index 0f88b8a8e64..592caf40d48 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/DI/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
index 8a5cbad8429..15cdb9e9732 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dash/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
index 8dc559c6d8f..0036fb1eaa9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dep/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V18
+V16
329
330
1651
@@ -27,6 +27,4 @@ V18
9003
917505
917506
-917631
-917632
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
index 882ec8173ec..d50f5406189 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dia/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V294
+V304
94
95
96
@@ -279,6 +279,10 @@ V294
70509
70512
70517
+70722
+70723
+70726
+70727
70850
70852
71103
@@ -289,6 +293,8 @@ V294
71352
71467
71468
+72767
+72768
92912
92917
94095
@@ -305,4 +311,8 @@ V294
119214
125136
125143
+125252
+125255
+125256
+125259
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
index dc551362c38..9f26f2f5d4d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Com.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
index 21f701ae634..915b20e684e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Enc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
index 5ae60bca659..c1dae2c2608 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Fin.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
index b49962aefc6..1099cff89ee 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Font.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
index 78ec26cf273..2723b1912e7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Init.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
index b92afeae230..0de8d7f87fd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Iso.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
index 9e82b6f8003..edb0adabac4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Med.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
index 05d0d5bdaf3..cd3f1e9bab5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nar.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
index d5844adb436..9c395cf265d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Nb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
index 3b4759e2f24..a3df0f7862a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/NonCanon.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -378,7 +378,7 @@ V372
127488
127491
127504
-127547
+127548
127552
127561
127568
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
index 0a9cc454fe3..f0e71093ce2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sqr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -28,5 +28,5 @@ V18
127488
127491
127504
-127547
+127548
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
index ed5e4939697..2057e664e74 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sub.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
index 1c973edc37c..6ec8d6454d8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Sup.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
index aa696a2e1ea..4c4c4c8f75f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Dt/Vert.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
index 9783835248c..b455fe032ea 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/A.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V346
+V358
161
162
164
@@ -295,8 +295,6 @@ V346
9738
9742
9744
-9748
-9750
9756
9757
9758
@@ -317,23 +315,33 @@ V346
9840
9886
9888
-9918
+9919
9920
-9924
+9926
9934
9935
+9940
+9941
9954
9955
9956
9960
+9962
+9963
+9970
+9972
+9973
+9974
+9978
+9979
+9981
+9982
9984
10045
10046
-10071
-10072
10102
10112
-11093
+11094
11098
12872
12880
@@ -350,7 +358,11 @@ V346
127280
127338
127344
+127374
+127375
+127377
127387
+127405
917760
918000
983040
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
index b0927662cf1..6e4aace4552 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/H.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
index 99ebb926e3f..bbefdf3be59 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V421
+V533
0
32
127
@@ -258,8 +258,16 @@ V421
8896
8978
8979
+8986
+8988
9001
9003
+9193
+9197
+9200
+9201
+9203
+9204
9312
9450
9451
@@ -292,6 +300,8 @@ V421
9702
9711
9712
+9725
+9727
9733
9735
9737
@@ -308,6 +318,8 @@ V421
9793
9794
9795
+9800
+9812
9824
9826
9827
@@ -318,28 +330,56 @@ V421
9838
9839
9840
+9855
+9856
+9875
+9876
9886
9888
-9918
+9889
+9890
+9898
+9900
+9917
9920
9924
-9934
-9935
9954
9955
9956
9960
9984
+9989
+9990
+9994
+9996
+10024
+10025
10045
10046
+10060
+10061
+10062
+10063
+10067
+10070
10071
10072
10102
10112
+10133
+10136
+10160
+10161
+10175
+10176
10214
10222
10629
10631
+11035
+11037
+11088
+11089
11093
11098
11904
@@ -404,8 +444,18 @@ V421
65519
65533
65534
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
+126980
+126981
+127183
+127184
127232
127243
127248
@@ -413,15 +463,77 @@ V421
127280
127338
127344
-127387
+127405
127488
127491
127504
-127547
+127548
127552
127561
127568
127570
+127744
+127777
+127789
+127798
+127799
+127869
+127870
+127892
+127904
+127947
+127951
+127956
+127968
+127985
+127988
+127989
+127992
+128063
+128064
+128065
+128066
+128253
+128255
+128318
+128331
+128335
+128336
+128360
+128378
+128379
+128405
+128407
+128420
+128421
+128507
+128592
+128640
+128710
+128716
+128717
+128720
+128723
+128747
+128749
+128756
+128759
+129296
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
+129408
+129426
+129472
+129473
131072
196606
196608
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
index 84d95f49799..0e65dd4fa01 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/Na.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
index 950e078af2f..651493700b6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ea/W.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,77 @@
return <<'END';
-V66
+V208
4352
4448
+8986
+8988
9001
9003
+9193
+9197
+9200
+9201
+9203
+9204
+9725
+9727
+9748
+9750
+9800
+9812
+9855
+9856
+9875
+9876
+9889
+9890
+9898
+9900
+9917
+9919
+9924
+9926
+9934
+9935
+9940
+9941
+9962
+9963
+9970
+9972
+9973
+9974
+9978
+9979
+9981
+9982
+9989
+9990
+9994
+9996
+10024
+10025
+10060
+10061
+10062
+10063
+10067
+10070
+10071
+10072
+10133
+10136
+10160
+10161
+10175
+10176
+11035
+11037
+11088
+11089
+11093
+11094
11904
11930
11931
@@ -63,16 +129,92 @@ V66
65127
65128
65132
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
+126980
+126981
+127183
+127184
+127374
+127375
+127377
+127387
127488
127491
127504
-127547
+127548
127552
127561
127568
127570
+127744
+127777
+127789
+127798
+127799
+127869
+127870
+127892
+127904
+127947
+127951
+127956
+127968
+127985
+127988
+127989
+127992
+128063
+128064
+128065
+128066
+128253
+128255
+128318
+128331
+128335
+128336
+128360
+128378
+128379
+128405
+128407
+128420
+128421
+128507
+128592
+128640
+128710
+128716
+128717
+128720
+128723
+128747
+128749
+128756
+128759
+129296
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
+129408
+129426
+129472
+129473
131072
196606
196608
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
index 8f70602341d..5f5263b7124 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ext/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V52
+V56
183
184
720
@@ -63,4 +63,8 @@ V52
71113
92994
92996
+94176
+94177
+125252
+125255
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
index 2182b03ca17..246b954f750 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/CN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V44
+V38
0
10
11
@@ -21,14 +21,8 @@ V44
160
173
174
-1536
-1542
1564
1565
-1757
-1758
-1807
-1808
6158
6159
8203
@@ -45,13 +39,13 @@ V44
65280
65520
65532
-69821
-69822
113824
113828
119155
119163
917504
+917536
+917632
917760
918000
921600
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EB.pl
new file mode 100755
index 00000000000..070889fba3e
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EB.pl
@@ -0,0 +1,70 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V56
+9757
+9758
+9977
+9978
+9994
+9998
+127877
+127878
+127939
+127941
+127946
+127948
+128066
+128068
+128070
+128081
+128110
+128111
+128112
+128121
+128124
+128125
+128129
+128132
+128133
+128136
+128170
+128171
+128373
+128374
+128378
+128379
+128400
+128401
+128405
+128407
+128581
+128584
+128587
+128592
+128675
+128676
+128692
+128695
+128704
+128705
+129304
+129311
+129318
+129319
+129328
+129329
+129331
+129338
+129340
+129343
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
index 8cc42d24249..69e0011c613 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V566
+V606
768
880
1155
@@ -57,6 +57,8 @@ V566
2094
2137
2140
+2260
+2274
2275
2307
2362
@@ -265,6 +267,8 @@ V566
6110
6155
6158
+6277
+6279
6313
6314
6432
@@ -341,10 +345,10 @@ V566
7418
7616
7670
-7676
+7675
7680
8204
-8206
+8205
8400
8433
11503
@@ -374,7 +378,7 @@ V566
43045
43047
43204
-43205
+43206
43232
43250
43302
@@ -479,6 +483,8 @@ V566
70197
70198
70200
+70206
+70207
70367
70368
70371
@@ -497,6 +503,12 @@ V566
70509
70512
70517
+70712
+70720
+70722
+70725
+70726
+70727
70832
70833
70835
@@ -539,6 +551,20 @@ V566
71462
71463
71468
+72752
+72759
+72760
+72766
+72767
+72768
+72850
+72872
+72874
+72881
+72882
+72884
+72885
+72887
92912
92917
92976
@@ -573,8 +599,22 @@ V566
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
+917536
+917632
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
index dd70b706f17..fba5ccf26c4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LV.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
index b752d89b78f..884ab6efa6f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/LVT.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl
new file mode 100755
index 00000000000..c054a4e92ac
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/PP.pl
@@ -0,0 +1,28 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V14
+1536
+1542
+1757
+1758
+1807
+1808
+2274
+2275
+3406
+3407
+69821
+69822
+70082
+70084
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
index 6c9392ea5ed..331c0397415 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/SM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V264
+V280
2307
2308
2363
@@ -237,6 +237,12 @@ V264
70478
70498
70500
+70709
+70712
+70720
+70722
+70725
+70726
70833
70835
70841
@@ -269,6 +275,16 @@ V264
71458
71462
71463
+72751
+72752
+72766
+72767
+72873
+72874
+72881
+72882
+72884
+72885
94033
94079
119142
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
index d80e1db7fd3..7523b562007 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GCB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V515
+V609
32
127
160
@@ -68,7 +68,7 @@ V515
2094
2137
2140
-2275
+2260
2308
2362
2365
@@ -177,7 +177,7 @@ V515
3398
3401
3402
-3406
+3407
3415
3416
3426
@@ -264,6 +264,8 @@ V515
6110
6155
6159
+6277
+6279
6313
6314
6432
@@ -310,7 +312,7 @@ V515
7418
7616
7670
-7676
+7675
7680
8203
8208
@@ -320,6 +322,14 @@ V515
8304
8400
8433
+9757
+9758
+9977
+9978
+9994
+9998
+10084
+10085
11503
11506
11647
@@ -349,7 +359,7 @@ V515
43136
43138
43188
-43205
+43206
43232
43250
43302
@@ -448,10 +458,14 @@ V515
70019
70067
70081
+70082
+70084
70090
70093
70188
70200
+70206
+70207
70367
70379
70400
@@ -472,6 +486,8 @@ V515
70509
70512
70517
+70709
+70727
70832
70852
71087
@@ -486,6 +502,14 @@ V515
71352
71453
71468
+72751
+72759
+72760
+72768
+72850
+72872
+72873
+72887
92912
92917
92976
@@ -520,10 +544,80 @@ V515
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
127462
127488
+127877
+127878
+127939
+127941
+127946
+127948
+127995
+128000
+128066
+128068
+128070
+128081
+128102
+128106
+128110
+128111
+128112
+128121
+128124
+128125
+128129
+128132
+128133
+128136
+128139
+128140
+128170
+128171
+128373
+128374
+128378
+128379
+128400
+128401
+128405
+128407
+128488
+128489
+128581
+128584
+128587
+128592
+128675
+128676
+128692
+128695
+128704
+128705
+129304
+129311
+129318
+129319
+129328
+129329
+129331
+129338
+129340
+129343
917504
921600
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
index 01a072083a7..4d85b25e07f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1231
+V1283
0
32
127
@@ -66,6 +66,10 @@ V1231
2143
2208
2229
+2230
+2238
+2260
+2274
2275
2436
2437
@@ -239,8 +243,6 @@ V1231
3174
3184
3192
-3200
-3201
3204
3205
3213
@@ -281,14 +283,10 @@ V1231
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
3458
3460
@@ -489,7 +487,7 @@ V1231
7227
7242
7245
-7296
+7305
7360
7368
7376
@@ -498,7 +496,7 @@ V1231
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -549,7 +547,7 @@ V1231
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -601,7 +599,7 @@ V1231
11736
11743
11744
-11843
+11845
11904
11930
11931
@@ -641,7 +639,7 @@ V1231
42560
42744
42752
-42926
+42927
42928
42936
42999
@@ -651,7 +649,7 @@ V1231
43072
43128
43136
-43205
+43206
43214
43226
43232
@@ -773,7 +771,7 @@ V1231
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -802,6 +800,10 @@ V1231
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -915,7 +917,7 @@ V1231
70144
70162
70163
-70206
+70207
70272
70279
70280
@@ -960,6 +962,12 @@ V1231
70509
70512
70517
+70656
+70746
+70747
+70748
+70749
+70750
70784
70856
70864
@@ -972,6 +980,8 @@ V1231
71237
71248
71258
+71264
+71277
71296
71352
71360
@@ -988,6 +998,20 @@ V1231
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1028,6 +1052,12 @@ V1231
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1100,10 +1130,26 @@ V1231
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125127
125143
+125184
+125259
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1191,25 +1237,21 @@ V1231
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -1225,9 +1267,19 @@ V1231
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131072
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
index deeef704683..1c8eb7b2601 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V34
+V36
173
174
1536
@@ -21,6 +21,8 @@ V34
1758
1807
1808
+2274
+2275
6158
6159
8203
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
index 61be71322ee..974d2951374 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Cn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1225
+V1275
888
890
896
@@ -58,7 +58,9 @@ V1225
2143
2208
2229
-2275
+2230
+2238
+2260
2436
2437
2445
@@ -231,8 +233,6 @@ V1225
3174
3184
3192
-3200
-3201
3204
3205
3213
@@ -273,14 +273,10 @@ V1225
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
3458
3460
@@ -481,7 +477,7 @@ V1225
7227
7242
7245
-7296
+7305
7360
7368
7376
@@ -490,7 +486,7 @@ V1225
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -537,7 +533,7 @@ V1225
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -589,7 +585,7 @@ V1225
11736
11743
11744
-11843
+11845
11904
11930
11931
@@ -629,7 +625,7 @@ V1225
42560
42744
42752
-42926
+42927
42928
42936
42999
@@ -639,7 +635,7 @@ V1225
43072
43128
43136
-43205
+43206
43214
43226
43232
@@ -763,7 +759,7 @@ V1225
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -792,6 +788,10 @@ V1225
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -903,7 +903,7 @@ V1225
70144
70162
70163
-70206
+70207
70272
70279
70280
@@ -948,6 +948,12 @@ V1225
70509
70512
70517
+70656
+70746
+70747
+70748
+70749
+70750
70784
70856
70864
@@ -960,6 +966,8 @@ V1225
71237
71248
71258
+71264
+71277
71296
71352
71360
@@ -976,6 +984,20 @@ V1225
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1016,6 +1038,12 @@ V1225
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1086,10 +1114,26 @@ V1225
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125127
125143
+125184
+125259
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1177,25 +1221,21 @@ V1225
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -1211,9 +1251,19 @@ V1225
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131072
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
index 875b19560f3..77e60994dc6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/L.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1108
+V1142
65
91
97
@@ -109,6 +109,8 @@ V1108
2137
2208
2229
+2230
+2238
2308
2362
2365
@@ -237,6 +239,8 @@ V1108
3163
3168
3170
+3200
+3201
3205
3213
3214
@@ -265,6 +269,8 @@ V1108
3390
3406
3407
+3412
+3415
3423
3426
3450
@@ -422,6 +428,8 @@ V1108
6176
6264
6272
+6277
+6279
6313
6314
6315
@@ -459,6 +467,8 @@ V1108
7248
7258
7294
+7296
+7305
7401
7405
7406
@@ -626,7 +636,7 @@ V1108
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -797,6 +807,10 @@ V1108
66512
66560
66718
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -919,6 +933,10 @@ V1108
70481
70493
70498
+70656
+70709
+70727
+70731
70784
70832
70852
@@ -943,6 +961,14 @@ V1108
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72818
+72848
73728
74650
74880
@@ -971,6 +997,12 @@ V1108
94033
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1043,6 +1075,8 @@ V1108
120780
124928
125125
+125184
+125252
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
index 4b49dab7e3c..bac43968d96 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/LC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V244
+V252
65
91
97
@@ -65,6 +65,8 @@ V244
5110
5112
5118
+7296
+7305
7424
7468
7531
@@ -168,7 +170,7 @@ V244
42891
42895
42896
-42926
+42927
42928
42936
43002
@@ -189,6 +191,10 @@ V244
65371
66560
66640
+66736
+66772
+66776
+66812
68736
68787
68800
@@ -255,4 +261,6 @@ V244
120771
120772
120780
+125184
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
index 4079fc95406..2a8fe308f87 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ll.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1260
+V1266
97
123
181
@@ -553,6 +553,8 @@ V1260
1416
5112
5118
+7296
+7305
7424
7468
7531
@@ -1211,6 +1213,8 @@ V1260
65371
66600
66640
+66776
+66812
68800
68851
71872
@@ -1271,4 +1275,6 @@ V1260
120778
120779
120780
+125218
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
index d65d16b2b72..c2a457b36f7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V112
+V114
688
706
710
@@ -123,4 +123,6 @@ V112
92996
94099
94112
+94176
+94177
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
index a108f1c3a6c..a543446ed1a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V866
+V890
170
171
186
@@ -57,6 +57,8 @@ V866
2137
2208
2229
+2230
+2238
2308
2362
2365
@@ -185,6 +187,8 @@ V866
3163
3168
3170
+3200
+3201
3205
3213
3214
@@ -213,6 +217,8 @@ V866
3390
3406
3407
+3412
+3415
3423
3426
3450
@@ -358,6 +364,8 @@ V866
6212
6264
6272
+6277
+6279
6313
6314
6315
@@ -743,6 +751,10 @@ V866
70481
70493
70498
+70656
+70709
+70727
+70731
70784
70832
70852
@@ -765,6 +777,14 @@ V866
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72818
+72848
73728
74650
74880
@@ -789,6 +809,10 @@ V866
94021
94032
94033
+94208
+100333
+100352
+101107
110592
110594
113664
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
index da6535f7c20..f1d856acd62 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Lu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1250
+V1254
65
91
192
@@ -1186,7 +1186,7 @@ V1250
42920
42921
42922
-42926
+42927
42928
42933
42934
@@ -1195,6 +1195,8 @@ V1250
65339
66560
66600
+66736
+66772
68736
68787
71840
@@ -1261,4 +1263,6 @@ V1250
120745
120778
120779
+125184
+125218
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
index f56f2792710..43fe04c400d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/M.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V472
+V500
768
880
1155
@@ -57,6 +57,8 @@ V472
2094
2137
2140
+2260
+2274
2275
2308
2362
@@ -251,6 +253,8 @@ V472
6110
6155
6158
+6277
+6279
6313
6314
6432
@@ -293,7 +297,7 @@ V472
7418
7616
7670
-7676
+7675
7680
8400
8433
@@ -326,7 +330,7 @@ V472
43136
43138
43188
-43205
+43206
43232
43250
43302
@@ -411,6 +415,8 @@ V472
70093
70188
70200
+70206
+70207
70367
70379
70400
@@ -431,6 +437,8 @@ V472
70509
70512
70517
+70709
+70727
70832
70852
71087
@@ -445,6 +453,14 @@ V472
71352
71453
71468
+72751
+72759
+72760
+72768
+72850
+72872
+72873
+72887
92912
92917
92976
@@ -479,8 +495,20 @@ V472
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
index 3795d91d465..1553948e85d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V294
+V310
2307
2308
2363
@@ -269,6 +269,12 @@ V294
70488
70498
70500
+70709
+70712
+70720
+70722
+70725
+70726
70832
70835
70841
@@ -299,6 +305,16 @@ V294
71458
71462
71463
+72751
+72752
+72766
+72767
+72873
+72874
+72881
+72882
+72884
+72885
94033
94079
119141
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
index 883b5758ea2..42c78fee5b1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Me.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
index 55d48d88c39..8f74475db6c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Mn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V532
+V570
768
880
1155
@@ -57,6 +57,8 @@ V532
2094
2137
2140
+2260
+2274
2275
2307
2362
@@ -245,6 +247,8 @@ V532
6110
6155
6158
+6277
+6279
6313
6314
6432
@@ -321,7 +325,7 @@ V532
7418
7616
7670
-7676
+7675
7680
8400
8413
@@ -356,7 +360,7 @@ V532
43045
43047
43204
-43205
+43206
43232
43250
43302
@@ -459,6 +463,8 @@ V532
70197
70198
70200
+70206
+70207
70367
70368
70371
@@ -473,6 +479,12 @@ V532
70509
70512
70517
+70712
+70720
+70722
+70725
+70726
+70727
70835
70841
70842
@@ -509,6 +521,20 @@ V532
71462
71463
71468
+72752
+72759
+72760
+72766
+72767
+72768
+72850
+72872
+72874
+72881
+72882
+72884
+72885
+72887
92912
92917
92976
@@ -539,8 +565,20 @@ V532
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
index 825e5ac6822..76179ba836e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V222
+V230
48
58
178
@@ -47,8 +47,10 @@ V222
3199
3302
3312
+3416
+3423
3430
-3446
+3449
3558
3568
3664
@@ -207,6 +209,8 @@ V222
70133
70384
70394
+70736
+70746
70864
70874
71248
@@ -217,6 +221,8 @@ V222
71484
71904
71923
+72784
+72813
74752
74863
92768
@@ -231,6 +237,8 @@ V222
120832
125127
125136
+125264
+125274
127232
127245
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
index cfeb13875fc..1dee8e0bce0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V102
+V108
48
58
1632
@@ -97,6 +97,8 @@ V102
70106
70384
70394
+70736
+70746
70864
70874
71248
@@ -107,10 +109,14 @@ V102
71482
71904
71914
+72784
+72794
92768
92778
93008
93018
120782
120832
+125264
+125274
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
index 255469d4d89..bc16e8aeaee 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Nl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
index dcde387569a..a1e672188b8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/No.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V116
+V120
178
180
185
@@ -25,8 +25,10 @@ V116
3059
3192
3199
+3416
+3423
3440
-3446
+3449
3882
3892
4969
@@ -119,6 +121,8 @@ V116
71484
71914
71923
+72794
+72813
93019
93026
119648
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
index 537c91e66d9..9bf7594ad52 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/P.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V322
+V336
33
36
37
@@ -182,7 +182,7 @@ V322
11776
11823
11824
-11843
+11845
12289
12292
12296
@@ -311,14 +311,26 @@ V322
70206
70313
70314
+70731
+70736
+70747
+70748
+70749
+70750
70854
70855
71105
71128
71233
71236
+71264
+71277
71484
71487
+72769
+72774
+72816
+72818
74864
74869
92782
@@ -333,4 +345,6 @@ V322
113824
121479
121484
+125278
+125280
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl
new file mode 100755
index 00000000000..9be88b8d885
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pc.pl
@@ -0,0 +1,26 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V12
+95
+96
+8255
+8257
+8276
+8277
+65075
+65077
+65101
+65104
+65343
+65344
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
index 7a9ea360861..9feaf98ca6d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
index 1721eb06f7a..7e87a6aee4d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pe.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
index ca94366236b..b5da89574d6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
index 3fee6ad5262..3a13e5b8bb7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Pi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
index e53adb06e1f..c8bba691684 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Po.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V314
+V330
33
36
37
@@ -177,6 +177,8 @@ V314
11840
11841
11842
+11843
+11845
12289
12292
12349
@@ -303,14 +305,26 @@ V314
70206
70313
70314
+70731
+70736
+70747
+70748
+70749
+70750
70854
70855
71105
71128
71233
71236
+71264
+71277
71484
71487
+72769
+72774
+72816
+72818
74864
74869
92782
@@ -325,4 +339,6 @@ V314
113824
121479
121484
+125278
+125280
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
index 0022562248d..53e6a829994 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Ps.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
index 3c06afeadfc..0665ed7b1c1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/S.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V428
+V436
36
37
43
@@ -87,6 +87,8 @@ V428
3067
3199
3200
+3407
+3408
3449
3450
3647
@@ -184,7 +186,7 @@ V428
8972
9001
9003
-9211
+9215
9216
9255
9280
@@ -312,7 +314,7 @@ V428
65913
65930
65932
-65933
+65935
65936
65948
65952
@@ -400,25 +402,21 @@ V428
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -434,9 +432,19 @@ V428
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
index abb3454cada..4073ebaf21a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
index 4f05f10629b..b1a5648f81c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sk.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
index 7e16d42da81..0419e514646 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Sm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
index 53ebf048f36..76856e2cc4c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/So.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V340
+V348
166
167
169
@@ -43,6 +43,8 @@ V340
3067
3199
3200
+3407
+3408
3449
3450
3841
@@ -140,7 +142,7 @@ V340
9140
9180
9186
-9211
+9215
9216
9255
9280
@@ -244,7 +246,7 @@ V340
65913
65930
65932
-65933
+65935
65936
65948
65952
@@ -310,11 +312,11 @@ V340
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
@@ -322,15 +324,11 @@ V340
127744
127995
128000
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -346,9 +344,19 @@ V340
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
index 95e3874fea9..c405572487e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Z.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
index e9c4cfc71de..8c067507e54 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Gc/Zs.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
index 0938fd95c90..8082fe3a0a8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/GrBase/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1486
+V1544
32
127
160
@@ -99,6 +99,8 @@ V1486
2143
2208
2229
+2230
+2238
2307
2362
2363
@@ -278,7 +280,7 @@ V1486
3174
3184
3192
-3200
+3201
3202
3204
3205
@@ -326,12 +328,12 @@ V1486
3402
3405
3406
-3407
-3423
+3408
+3412
+3415
+3416
3426
3430
-3446
-3449
3456
3458
3460
@@ -528,6 +530,8 @@ V1486
6176
6264
6272
+6277
+6279
6313
6314
6315
@@ -612,7 +616,7 @@ V1486
7227
7242
7245
-7296
+7305
7360
7368
7379
@@ -676,7 +680,7 @@ V1486
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -730,7 +734,7 @@ V1486
11736
11743
11776
-11843
+11845
11904
11930
11931
@@ -780,7 +784,7 @@ V1486
42738
42744
42752
-42926
+42927
42928
42936
42999
@@ -962,7 +966,7 @@ V1486
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -991,6 +995,10 @@ V1486
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1167,6 +1175,18 @@ V1486
70481
70493
70500
+70656
+70712
+70720
+70722
+70725
+70726
+70727
+70746
+70747
+70748
+70749
+70750
70784
70832
70833
@@ -1203,6 +1223,8 @@ V1486
71237
71248
71258
+71264
+71277
71296
71339
71340
@@ -1227,6 +1249,24 @@ V1486
71936
72384
72441
+72704
+72713
+72714
+72752
+72766
+72767
+72768
+72774
+72784
+72813
+72816
+72848
+72873
+72874
+72881
+72882
+72884
+72885
73728
74650
74752
@@ -1269,6 +1309,12 @@ V1486
94079
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1361,6 +1407,12 @@ V1486
125125
125127
125136
+125184
+125252
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1448,25 +1500,21 @@ V1486
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -1482,9 +1530,19 @@ V1486
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131072
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
index 712f488cb96..88a7006f342 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Hex/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
index 1f3d8127e05..40772e310e6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Hst/NA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl
index 82eaf74a853..3d8a09cfb9f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Hyphen/T.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
index 1a4f1b1bcf9..2465e9ae22d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/IDC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1302
+V1352
48
58
65
@@ -111,6 +111,10 @@ V1302
2140
2208
2229
+2230
+2238
+2260
+2274
2275
2404
2406
@@ -289,7 +293,7 @@ V1302
3172
3174
3184
-3201
+3200
3204
3205
3213
@@ -331,7 +335,7 @@ V1302
3401
3402
3407
-3415
+3412
3416
3423
3428
@@ -569,6 +573,8 @@ V1302
7242
7245
7294
+7296
+7305
7376
7379
7380
@@ -577,7 +583,7 @@ V1302
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -742,7 +748,7 @@ V1302
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -750,7 +756,7 @@ V1302
43072
43124
43136
-43205
+43206
43216
43226
43232
@@ -915,6 +921,10 @@ V1302
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1019,6 +1029,8 @@ V1302
70162
70163
70200
+70206
+70207
70272
70279
70280
@@ -1063,6 +1075,10 @@ V1302
70509
70512
70517
+70656
+70731
+70736
+70746
70784
70854
70855
@@ -1097,6 +1113,20 @@ V1302
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72769
+72784
+72794
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1133,6 +1163,12 @@ V1302
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1231,10 +1267,24 @@ V1302
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125136
125143
+125184
+125259
+125264
+125274
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
index bbbc17b5b32..4e4721ae582 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/IDS/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1110
+V1142
65
91
97
@@ -109,6 +109,8 @@ V1110
2137
2208
2229
+2230
+2238
2308
2362
2365
@@ -237,6 +239,8 @@ V1110
3163
3168
3170
+3200
+3201
3205
3213
3214
@@ -265,6 +269,8 @@ V1110
3390
3406
3407
+3412
+3415
3423
3426
3450
@@ -459,6 +465,8 @@ V1110
7248
7258
7294
+7296
+7305
7401
7405
7406
@@ -624,7 +632,7 @@ V1110
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -797,6 +805,10 @@ V1110
66518
66560
66718
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -919,6 +931,10 @@ V1110
70481
70493
70498
+70656
+70709
+70727
+70731
70784
70832
70852
@@ -943,6 +959,14 @@ V1110
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72818
+72848
73728
74650
74752
@@ -973,6 +997,12 @@ V1110
94033
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1045,6 +1075,8 @@ V1110
120780
124928
125125
+125184
+125252
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
index d08a2eb1422..d9edcdeeaf9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Ideo/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V24
+V28
12294
12296
12321
@@ -25,6 +25,10 @@ V24
64110
64112
64218
+94208
+100333
+100352
+101107
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
index 1c386e60362..a40d0b40c57 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/2_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
index d7ffc327d8c..6dd285baf39 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/2_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
index 5723531437a..6fa1728b523 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
index 194753cf657..4cfbcda55f4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
index fc76fa50055..55f1b0f6bac 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/3_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
index caa0363f85e..852e5566215 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/4_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
index 2ce3802977c..7398abf2fd1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/4_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
index 9973173ce76..6da5e8411a3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
index 82e8aaa076a..056ede00ffc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
index 98231c58c18..2e47d1db8b4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/5_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
index 2544879c823..c12ceab6ba5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
index b6a378f70f1..94fdb2fbaa8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
index 279008f6f77..0309381d8df 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
index 083ea65d6d7..e0311040b0a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/6_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl
index 28635ce63ae..5d714da72b5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/7_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl
index 4b571be9095..86bede86017 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/8_0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl
new file mode 100755
index 00000000000..d52eee9aba4
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/In/9_0.pl
@@ -0,0 +1,1310 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V1296
+0
+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
+2229
+2230
+2238
+2260
+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
+2809
+2810
+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
+3163
+3168
+3172
+3174
+3184
+3192
+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
+3408
+3412
+3428
+3430
+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
+5110
+5112
+5118
+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
+7305
+7360
+7368
+7376
+7415
+7416
+7418
+7424
+7670
+7675
+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
+8293
+8294
+8306
+8308
+8335
+8336
+8349
+8352
+8383
+8400
+8433
+8448
+8588
+8592
+9215
+9216
+9255
+9280
+9291
+9312
+11124
+11126
+11158
+11160
+11194
+11197
+11209
+11210
+11218
+11244
+11248
+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
+11845
+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
+40918
+40960
+42125
+42128
+42183
+42192
+42540
+42560
+42744
+42752
+42927
+42928
+42936
+42999
+43052
+43056
+43066
+43072
+43128
+43136
+43206
+43214
+43226
+43232
+43262
+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
+43878
+43888
+44014
+44016
+44026
+44032
+55204
+55216
+55239
+55243
+55292
+55296
+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
+64976
+65022
+65024
+65050
+65056
+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
+65548
+65549
+65575
+65576
+65595
+65596
+65598
+65599
+65614
+65616
+65630
+65664
+65787
+65792
+65795
+65799
+65844
+65847
+65935
+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
+66736
+66772
+66776
+66812
+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
+67808
+67827
+67828
+67830
+67835
+67868
+67871
+67898
+67903
+67904
+67968
+68024
+68028
+68048
+68050
+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
+68736
+68787
+68800
+68851
+68858
+68864
+69216
+69247
+69632
+69710
+69714
+69744
+69759
+69826
+69840
+69865
+69872
+69882
+69888
+69941
+69942
+69956
+69968
+70007
+70016
+70094
+70096
+70112
+70113
+70133
+70144
+70162
+70163
+70207
+70272
+70279
+70280
+70281
+70282
+70286
+70287
+70302
+70303
+70314
+70320
+70379
+70384
+70394
+70400
+70404
+70405
+70413
+70415
+70417
+70419
+70441
+70442
+70449
+70450
+70452
+70453
+70458
+70460
+70469
+70471
+70473
+70475
+70478
+70480
+70481
+70487
+70488
+70493
+70500
+70502
+70509
+70512
+70517
+70656
+70746
+70747
+70748
+70749
+70750
+70784
+70856
+70864
+70874
+71040
+71094
+71096
+71134
+71168
+71237
+71248
+71258
+71264
+71277
+71296
+71352
+71360
+71370
+71424
+71450
+71453
+71468
+71472
+71488
+71840
+71923
+71935
+71936
+72384
+72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
+73728
+74650
+74752
+74863
+74864
+74869
+74880
+75076
+77824
+78895
+82944
+83527
+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
+94176
+94177
+94208
+100333
+100352
+101107
+110592
+110594
+113664
+113771
+113776
+113789
+113792
+113801
+113808
+113818
+113820
+113828
+118784
+119030
+119040
+119079
+119081
+119273
+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
+121484
+121499
+121504
+121505
+121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
+124928
+125125
+125127
+125143
+125184
+125259
+125264
+125274
+125278
+125280
+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
+127405
+127462
+127491
+127504
+127548
+127552
+127561
+127568
+127570
+127744
+128723
+128736
+128749
+128752
+128759
+128768
+128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
+129296
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
+129408
+129426
+129472
+129473
+131070
+173783
+173824
+177973
+177984
+178206
+178208
+183970
+194560
+195102
+196606
+196608
+262142
+262144
+327678
+327680
+393214
+393216
+458750
+458752
+524286
+524288
+589822
+589824
+655358
+655360
+720894
+720896
+786430
+786432
+851966
+851968
+917502
+917504
+917505
+917506
+917536
+917632
+917760
+918000
+983038
+1114112
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl
index e2c2c14cdd8..b586e0d3fa2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Bottom.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V226
+V242
2364
2365
2369
@@ -213,6 +213,12 @@ V226
70373
70377
70379
+70712
+70718
+70722
+70723
+70726
+70727
70835
70841
70850
@@ -237,4 +243,14 @@ V226
71462
71464
71465
+72754
+72759
+72767
+72768
+72850
+72872
+72874
+72881
+72882
+72883
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl
index 0b40762761d..fae50065eb9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Left.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V76
+V80
2367
2368
2382
@@ -75,6 +75,8 @@ V76
70370
70471
70473
+70710
+70711
70833
70834
70841
@@ -87,4 +89,6 @@ V76
71343
71462
71463
+72881
+72882
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl
index 55e7b6bfc6d..e1dcc80cbdf 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/LeftAndR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl
index eb3cfce02ec..5f650671f24 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/NA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V343
+V357
0
2304
2308
@@ -246,6 +246,8 @@ V343
7406
7412
7413
+7675
+7676
43014
43015
43019
@@ -255,7 +257,7 @@ V343
43136
43138
43188
-43205
+43206
43232
43250
43307
@@ -320,6 +322,8 @@ V343
70093
70188
70200
+70206
+70207
70367
70379
70401
@@ -338,6 +342,8 @@ V343
70509
70512
70517
+70709
+70727
70832
70852
71087
@@ -354,4 +360,12 @@ V343
71454
71455
71468
+72751
+72759
+72760
+72768
+72850
+72872
+72873
+72887
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl
index c793e561d83..1981078db9c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Overstru.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl
index f66d1de68a1..8904442c9bc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Right.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V276
+V292
2307
2308
2363
@@ -259,6 +259,14 @@ V276
70488
70498
70500
+70709
+70710
+70711
+70712
+70720
+70722
+70725
+70726
70832
70833
70834
@@ -287,4 +295,12 @@ V276
71351
71456
71458
+72751
+72752
+72766
+72767
+72873
+72874
+72884
+72885
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl
index 9807ef65310..0f6c99612b2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/Top.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V302
+V320
2304
2307
2362
@@ -189,12 +189,16 @@ V302
7393
7412
7413
+7675
+7676
43014
43015
43019
43020
43046
43047
+43205
+43206
43232
43250
43338
@@ -275,6 +279,8 @@ V302
70197
70198
70200
+70206
+70207
70367
70368
70373
@@ -287,6 +293,10 @@ V302
70509
70512
70517
+70718
+70720
+70723
+70725
70842
70843
70847
@@ -313,4 +323,12 @@ V302
71464
71465
71468
+72752
+72754
+72760
+72766
+72883
+72884
+72885
+72887
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl
index e7bd8723901..0f950f3eaa5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndBo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl
index 58d81aa16af..beb25764d53 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndL2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl
index 09fae26e75b..ddcbae4ae4f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndLe.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl
index b45c5363299..1794d9a6d5a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/TopAndRi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl
index e64466e3ae2..5f411cd5d4d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InPC/VisualOr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl
index aebd78a34a6..4f21dc07f4d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Avagraha.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V26
+V30
2365
2366
2493
@@ -35,6 +35,10 @@ V26
70082
70461
70462
+70727
+70728
70852
70853
+72768
+72769
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl
index 560766859d0..34b3cabfaca 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Bindu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V74
+V82
2304
2307
2433
@@ -59,6 +59,8 @@ V74
43124
43136
43137
+43205
+43206
43392
43394
68110
@@ -77,6 +79,8 @@ V74
70368
70400
70403
+70723
+70725
70847
70849
71100
@@ -85,4 +89,8 @@ V74
71230
71339
71340
+72764
+72766
+72885
+72887
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl
index bd8909fcc54..a3cd6d5e686 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Cantilla.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V16
+V18
2385
2387
7376
@@ -23,6 +23,8 @@ V16
7418
43232
43250
+70206
+70207
70502
70509
70512
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl
index ce2217f0e3f..7a8c711cc7f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl
index 27205d851c7..0be24edfdbc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl
index 0e4d02d870a..6d33de06a71 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V18
+V22
3981
3992
3993
@@ -29,4 +29,8 @@ V18
43122
43453
43454
+72850
+72872
+72873
+72880
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl
index 62e771780d9..c207c1b692a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona5.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V16
+V18
45
46
160
@@ -27,4 +27,6 @@ V16
8213
9676
9677
+43636
+43639
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl
index b10906b4611..944c1d138b7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consona6.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl
index e95e490ce33..23a716efa58 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Consonan.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V286
+V292
2325
2362
2392
@@ -287,6 +287,8 @@ V286
70452
70453
70458
+70670
+70709
70799
70832
71054
@@ -297,4 +299,8 @@ V286
71339
71424
71450
+72718
+72751
+72818
+72848
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl
index a4230249992..5a6202d55bd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Invisibl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl
index e7ffb6eb2e0..68b79b787b8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Nukta.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V42
+V44
2364
2365
2492
@@ -47,6 +47,8 @@ V42
70378
70460
70461
+70726
+70727
70851
70852
71104
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl
index a0a07f500c2..0f925940f23 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Number.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V80
+V84
48
58
2406
@@ -83,6 +83,8 @@ V80
70133
70384
70394
+70736
+70746
70864
70874
71248
@@ -91,4 +93,6 @@ V80
71370
71472
71484
+72784
+72813
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl
index 279487cd6c8..3e3faee9e9f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Other.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V567
+V589
0
45
46
@@ -244,7 +244,7 @@ V567
3401
3402
3407
-3415
+3412
3416
3423
3428
@@ -369,7 +369,7 @@ V567
6070
6100
6108
-6109
+6110
6112
6122
6400
@@ -418,6 +418,8 @@ V567
7413
7416
7418
+7675
+7676
8204
8206
8208
@@ -435,7 +437,7 @@ V567
43072
43124
43136
-43205
+43206
43216
43226
43232
@@ -461,7 +463,7 @@ V567
43616
43632
43633
-43636
+43639
43642
43715
43744
@@ -512,6 +514,8 @@ V567
70162
70163
70200
+70206
+70207
70272
70279
70280
@@ -554,6 +558,10 @@ V567
70509
70512
70517
+70656
+70728
+70736
+70746
70785
70853
70864
@@ -578,4 +586,18 @@ V567
71468
71472
71484
+72704
+72713
+72714
+72759
+72760
+72769
+72784
+72813
+72818
+72848
+72850
+72872
+72873
+72887
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl
index 15d17cafe19..589b40a56ee 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/PureKill.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl
index 339b8303675..c35d8a1d512 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Syllable.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V26
+V30
178
180
3893
@@ -25,6 +25,8 @@ V26
6097
6099
6100
+6109
+6110
6459
6460
6778
@@ -33,6 +35,8 @@ V26
6784
7222
7223
+7675
+7676
8308
8309
8322
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl
index fae75edf4ca..8095604604e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/ToneMark.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl
index b6daaa8ad5a..3dbbdeab809 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Virama.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V44
+V48
2381
2382
2509
@@ -47,6 +47,8 @@ V44
70198
70477
70478
+70722
+70723
70850
70851
71103
@@ -55,4 +57,6 @@ V44
71232
71350
71351
+72767
+72768
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl
index ab4daf1c84a..c945cf4d3a9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Visarga.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V56
+V60
2307
2308
2435
@@ -59,6 +59,8 @@ V56
70019
70403
70404
+70725
+70726
70849
70850
71102
@@ -67,4 +69,6 @@ V56
71231
71340
71341
+72766
+72767
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl
index d2e3137721d..d1f629e61c7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/Vowel.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl
index ace82a8e1b4..850b5b33635 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelDep.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V214
+V222
2362
2364
2366
@@ -209,6 +209,8 @@ V214
70488
70498
70500
+70709
+70722
70832
70847
71087
@@ -225,4 +227,10 @@ V214
71350
71456
71467
+72751
+72759
+72760
+72764
+72880
+72885
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl
index 1f455bd608a..8372529bdd1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/InSC/VowelInd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V140
+V146
2308
2325
2400
@@ -141,6 +141,8 @@ V140
70421
70496
70498
+70656
+70670
70785
70799
71040
@@ -151,4 +153,8 @@ V140
71182
71296
71306
+72704
+72713
+72714
+72718
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
index 2afc8355f08..9d229403bf3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Ain.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
index 3e85bde37e9..f3c01a0a72e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Alef.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
index 2a1b547fadb..9a90b7fe787 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Beh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V12
+V14
1576
1577
1578
@@ -23,4 +23,6 @@ V12
1879
2208
2210
+2230
+2233
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
index a45096e0fcd..ac62945b592 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Dal.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
index 9c628bd8578..b86764e8999 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/FarsiYeh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
index 7a830deb885..209f63a8f2b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Feh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
index bca46e18c9b..00001a1f7ae 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Gaf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
index 65bb9282ca8..9b2e85edf4e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Hah.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl
index cbf7aca94a3..44930d4ebac 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Kaf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
index e20181bdf8d..c1ba31b43fe 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Lam.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
index 97b23e9785a..bf3655bd4b0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/NoJoinin.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V43
+V45
0
1568
1569
@@ -42,6 +42,8 @@ V43
2221
2222
2229
+2230
+2238
68288
68294
68295
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
index 41c2610458e..212966710f3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Qaf.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
index ad8f2720505..09f5d6a2173 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Reh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V16
+V18
1585
1587
1681
@@ -27,4 +27,6 @@ V16
2219
2226
2227
+2233
+2234
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
index 47dca873e8a..6e3777bf36d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Sad.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
index 929d77b2170..13f88bf3ef4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Seen.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
index ef3dc16e653..6b1985bd122 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Waw.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
index 4a3d0850805..47d91097abb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jg/Yeh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V14
+V16
1568
1569
1574
@@ -25,4 +25,6 @@ V14
1912
2216
2218
+2234
+2235
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
index 36916bbf82b..a066999c48d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/C.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
index 1a2f2363754..9c0fd3ca259 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/D.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V106
+V112
1568
1569
1574
@@ -83,6 +83,10 @@ V106
2225
2227
2229
+2230
+2233
+2234
+2238
6151
6152
6176
@@ -117,4 +121,6 @@ V106
68497
68525
68527
+125184
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
index d3c91b5c377..86397a8498b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/R.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V100
+V102
1570
1574
1575
@@ -81,6 +81,8 @@ V100
2223
2225
2227
+2233
+2234
68293
68294
68295
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
index 56ea2b1d450..3a3e2657152 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/T.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V556
+V594
173
174
768
@@ -63,6 +63,8 @@ V556
2094
2137
2140
+2260
+2274
2275
2307
2362
@@ -251,6 +253,8 @@ V556
6110
6155
6158
+6277
+6279
6313
6314
6432
@@ -327,7 +331,7 @@ V556
7418
7616
7670
-7676
+7675
7680
8203
8204
@@ -368,7 +372,7 @@ V556
43045
43047
43204
-43205
+43206
43232
43250
43302
@@ -477,6 +481,8 @@ V556
70197
70198
70200
+70206
+70207
70367
70368
70371
@@ -491,6 +497,12 @@ V556
70509
70512
70517
+70712
+70720
+70722
+70725
+70726
+70727
70835
70841
70842
@@ -527,6 +539,20 @@ V556
71462
71463
71468
+72752
+72759
+72760
+72766
+72767
+72768
+72850
+72872
+72874
+72881
+72882
+72884
+72885
+72887
92912
92917
92976
@@ -559,8 +585,20 @@ V556
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
index 095095b24cf..47871e80a00 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Jt/U.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V591
+V629
0
173
174
@@ -78,6 +78,10 @@ V591
2221
2222
2229
+2230
+2238
+2260
+2274
2275
2307
2362
@@ -270,7 +274,7 @@ V591
6158
6176
6264
-6279
+6277
6315
6432
6435
@@ -346,7 +350,7 @@ V591
7418
7616
7670
-7676
+7675
7680
8203
8204
@@ -389,7 +393,7 @@ V591
43072
43123
43204
-43205
+43206
43232
43250
43302
@@ -512,6 +516,8 @@ V591
70197
70198
70200
+70206
+70207
70367
70368
70371
@@ -526,6 +532,12 @@ V591
70509
70512
70517
+70712
+70720
+70722
+70725
+70726
+70727
70835
70841
70842
@@ -562,6 +574,20 @@ V591
71462
71463
71468
+72752
+72759
+72760
+72766
+72767
+72768
+72850
+72872
+72874
+72881
+72882
+72884
+72885
+72887
92912
92917
92976
@@ -594,8 +620,20 @@ V591
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125184
+125259
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
index 5ee8766ac2e..7488d5381cb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AI.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -228,5 +228,5 @@ V218
127280
127338
127344
-127387
+127405
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
index ed6b34a05db..9317f529958 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/AL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1396
+V1414
35
36
38
@@ -133,6 +133,10 @@ V1396
2143
2208
2229
+2230
+2238
+2274
+2275
2308
2362
2365
@@ -272,7 +276,7 @@ V1396
3168
3170
3192
-3200
+3201
3205
3213
3214
@@ -300,11 +304,13 @@ V1396
3389
3390
3406
-3407
-3423
+3408
+3412
+3415
+3416
3426
3440
-3446
+3449
3450
3456
3461
@@ -436,6 +442,8 @@ V1396
6176
6264
6272
+6277
+6279
6313
6314
6315
@@ -471,6 +479,8 @@ V1396
7248
7258
7294
+7296
+7305
7360
7368
7379
@@ -644,7 +654,7 @@ V1396
9003
9200
9204
-9211
+9215
9216
9255
9280
@@ -727,7 +737,7 @@ V1396
10075
10081
10082
-10084
+10085
10088
10132
10181
@@ -826,7 +836,7 @@ V1396
42738
42739
42752
-42926
+42927
42928
42936
42999
@@ -915,20 +925,6 @@ V1396
65141
65142
65277
-65382
-65383
-65393
-65438
-65440
-65471
-65474
-65480
-65482
-65488
-65490
-65496
-65498
-65501
65512
65519
65536
@@ -948,7 +944,7 @@ V1396
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -977,6 +973,10 @@ V1396
66518
66560
66718
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1133,6 +1133,14 @@ V1396
70481
70493
70498
+70656
+70709
+70727
+70731
+70735
+70736
+70749
+70750
70784
70832
70852
@@ -1157,6 +1165,16 @@ V1396
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72794
+72813
+72818
+72848
73728
74650
74752
@@ -1289,6 +1307,8 @@ V1396
125125
125127
125136
+125184
+125252
126464
126468
126469
@@ -1367,8 +1387,6 @@ V1396
127927
127932
127933
-127995
-128000
128160
128161
128162
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
index 4dea3f4ee88..07cc192b585 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V170
+V178
9
10
124
@@ -103,6 +103,8 @@ V170
11839
11840
11842
+11843
+11845
12288
12289
42238
@@ -159,6 +161,10 @@ V170
70205
70313
70314
+70731
+70735
+70747
+70748
71106
71108
71113
@@ -167,6 +173,8 @@ V170
71235
71484
71487
+72769
+72774
74864
74869
92782
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
index c8f5be323e5..00e7f5cdb5b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/BB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V32
+V36
180
181
712
@@ -43,4 +43,8 @@ V32
70108
71105
71106
+71264
+71277
+72816
+72817
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
index 2b3736d2508..d2f3c3b9a19 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CJ.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
index 6ae8afbcb24..236c978d6e4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
index 027322678fd..f581d88b632 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/CM.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V446
+V476
0
9
14
@@ -71,6 +71,8 @@ V446
2094
2137
2140
+2260
+2274
2275
2308
2362
@@ -231,6 +233,8 @@ V446
6004
6155
6158
+6277
+6279
6313
6314
6432
@@ -269,9 +273,11 @@ V446
7418
7616
7670
-7676
+7675
7680
8204
+8205
+8206
8208
8234
8239
@@ -310,7 +316,7 @@ V446
43136
43138
43188
-43205
+43206
43232
43250
43302
@@ -383,6 +389,8 @@ V446
70093
70188
70200
+70206
+70207
70367
70379
70400
@@ -403,6 +411,8 @@ V446
70509
70512
70517
+70709
+70727
70832
70852
71087
@@ -415,6 +425,14 @@ V446
71233
71339
71352
+72751
+72759
+72760
+72768
+72850
+72872
+72873
+72887
92912
92917
92976
@@ -449,8 +467,20 @@ V446
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EB.pl
new file mode 100755
index 00000000000..2c89e452de7
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EB.pl
@@ -0,0 +1,72 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V58
+9757
+9758
+9977
+9978
+9994
+9998
+127877
+127878
+127939
+127941
+127946
+127948
+128066
+128068
+128070
+128081
+128102
+128106
+128110
+128111
+128112
+128121
+128124
+128125
+128129
+128132
+128133
+128136
+128170
+128171
+128373
+128374
+128378
+128379
+128400
+128401
+128405
+128407
+128581
+128584
+128587
+128592
+128675
+128676
+128692
+128695
+128704
+128705
+129304
+129311
+129318
+129319
+129328
+129329
+129331
+129338
+129340
+129343
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
index 0907df93b8e..be6c2d63235 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V46
+V48
33
34
63
@@ -57,4 +57,6 @@ V46
65312
71108
71110
+72817
+72818
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
index 635cb29fdc9..38d625d9b1e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/GL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
index cde57ff240b..20b103248af 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/ID.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V246
+V310
8986
8988
9200
@@ -22,6 +22,8 @@ V246
9752
9753
9754
+9757
+9758
9760
9785
9788
@@ -48,11 +50,15 @@ V246
9969
9974
9975
+9977
+9978
9979
9981
9989
9992
-9998
+9994
+10084
+10085
11904
11930
11931
@@ -183,45 +189,77 @@ V246
65373
65374
65375
+65382
+65383
+65393
+65438
+65440
+65471
+65474
+65480
+65482
+65488
+65490
+65496
+65498
+65501
65506
65509
+94208
+100333
+100352
+101107
110592
110594
126976
-127020
-127024
-127124
-127136
-127151
-127153
-127168
-127169
-127184
-127185
-127222
+127232
+127245
+127248
+127279
+127280
+127340
+127344
+127405
+127462
127488
-127491
-127504
-127547
-127552
-127561
-127568
-127570
-127744
+127877
+127878
127900
127902
127925
127927
127932
127933
+127939
+127941
+127946
+127948
127995
128000
+128066
+128068
+128070
+128081
+128102
+128106
+128110
+128111
+128112
+128121
+128124
+128125
+128129
+128132
+128133
+128136
128160
128161
128162
128163
128164
128165
+128170
+128171
128175
128176
128177
@@ -232,27 +270,53 @@ V246
128293
128306
128330
+128373
+128374
128378
128379
-128420
-128421
+128400
+128401
+128405
+128407
128468
128476
128500
128506
-128592
+128581
+128584
+128587
128640
-128721
-128736
-128749
-128752
-128756
-129296
-129305
-129408
-129413
-129472
-129473
+128675
+128676
+128692
+128695
+128704
+128705
+128768
+128884
+128896
+128981
+129024
+129036
+129040
+129096
+129104
+129114
+129120
+129160
+129168
+129198
+129304
+129311
+129318
+129319
+129328
+129329
+129331
+129338
+129340
+129343
+131070
131072
196606
196608
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl
index ab2a75c3af6..4d9306843dd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
index 0d2d814690a..024f39da5f2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/IS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
index 0b74210da2a..ad936da64e8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/NS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V32
+V34
6102
6103
8252
@@ -41,6 +41,8 @@ V32
65382
65438
65440
+94176
+94177
128633
128636
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
index e2c29e4aef4..6993bf40bc4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/OP.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V166
+V168
40
41
91
@@ -177,4 +177,6 @@ V166
78714
83406
83407
+125278
+125280
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
index 5010b89465b..ab21a3b7731 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
index 6274c29dd06..81e7698d904 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/PR.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
index 5275cdb304b..93695e8be7b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/QU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
index 3ecd2dc5dde..efd793eb4b0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/SA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
index 2992afbcfdf..18b8983753b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lb/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1207
+V1195
888
890
896
@@ -58,7 +58,9 @@ V1207
2143
2208
2229
-2275
+2230
+2238
+2260
2436
2437
2445
@@ -231,8 +233,6 @@ V1207
3174
3184
3192
-3200
-3201
3204
3205
3213
@@ -273,14 +273,10 @@ V1207
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
3458
3460
@@ -481,7 +477,7 @@ V1207
7227
7242
7245
-7296
+7305
7360
7368
7376
@@ -490,7 +486,7 @@ V1207
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -535,7 +531,7 @@ V1207
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -587,7 +583,7 @@ V1207
11736
11743
11744
-11843
+11845
11904
11930
11931
@@ -623,7 +619,7 @@ V1207
42560
42744
42752
-42926
+42927
42928
42936
42999
@@ -633,7 +629,7 @@ V1207
43072
43128
43136
-43205
+43206
43214
43226
43232
@@ -755,7 +751,7 @@ V1207
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -784,6 +780,10 @@ V1207
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -895,7 +895,7 @@ V1207
70144
70162
70163
-70206
+70207
70272
70279
70280
@@ -940,6 +940,12 @@ V1207
70509
70512
70517
+70656
+70746
+70747
+70748
+70749
+70750
70784
70856
70864
@@ -952,6 +958,8 @@ V1207
71237
71248
71258
+71264
+71277
71296
71352
71360
@@ -968,6 +976,20 @@ V1207
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1008,6 +1030,12 @@ V1207
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1078,10 +1106,26 @@ V1207
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125127
125143
+125184
+125259
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1151,63 +1195,7 @@ V1207
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
-128378
-128379
-128420
-128421
-128721
-128736
-128749
-128752
-128756
-128768
-128884
-128896
-128981
-129024
-129036
-129040
-129096
-129104
-129114
-129120
-129160
-129168
-129198
-129296
-129305
-129408
-129413
-129472
-129473
+131070
131072
196606
196608
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
index 67da06ea1bd..3e728daba98 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Lower/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1274
+V1280
97
123
170
@@ -563,6 +563,8 @@ V1274
1416
5112
5118
+7296
+7305
7424
7616
7681
@@ -1225,6 +1227,8 @@ V1274
65371
66600
66640
+66776
+66812
68800
68851
71872
@@ -1285,4 +1289,6 @@ V1274
120778
120779
120780
+125218
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
index be6ce0475f6..c635e5dbc34 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Math/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
index 19ce97345ab..2661e2c18ce 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/M.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
index 959047f7d36..0b0bb878b58 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFCQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
index 9b69425ccf7..446d18ea1d3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
index d580b79757d..a3b371b3d52 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFDQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
index a2c4a9d1cb0..84060a36af6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -502,7 +502,7 @@ V498
127488
127491
127504
-127547
+127548
127552
127561
127568
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
index 140ceea8472..8f175b569cd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFKCQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -577,7 +577,7 @@ V573
127488
127491
127504
-127547
+127548
127552
127561
127568
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
index f0206e206c3..571e3f96401 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/N.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -784,7 +784,7 @@ V780
127488
127491
127504
-127547
+127548
127552
127561
127568
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
index d60568411c6..bb94a1279a1 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/NFKDQC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -785,7 +785,7 @@ V781
127488
127491
127504
-127547
+127548
127552
127561
127568
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
index 43e1001323b..59f72bd801b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Di.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
index 7c584279751..0a107ce6c0b 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/None.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V367
+V375
0
48
58
@@ -48,8 +48,10 @@ V367
3199
3302
3312
+3416
+3423
3430
-3446
+3449
3558
3568
3664
@@ -320,6 +322,8 @@ V367
70133
70384
70394
+70736
+70746
70864
70874
71248
@@ -330,6 +334,8 @@ V367
71484
71904
71923
+72784
+72813
74752
74863
92768
@@ -344,6 +350,8 @@ V367
120832
125127
125136
+125264
+125274
127232
127245
131073
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
index ba7eb611a7a..274596a7d1f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nt/Nu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V276
+V280
188
191
2548
@@ -21,8 +21,10 @@ V276
3059
3192
3199
+3416
+3423
3440
-3446
+3449
3882
3892
4978
@@ -245,6 +247,8 @@ V276
71484
71914
71923
+72794
+72813
74752
74863
93019
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
index 215abac03b1..b63830d77c6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/0.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V138
+V144
48
49
1632
@@ -121,6 +121,8 @@ V138
70097
70384
70385
+70736
+70737
70864
70865
71248
@@ -131,6 +133,8 @@ V138
71473
71904
71905
+72784
+72785
92768
92769
93008
@@ -145,6 +149,8 @@ V138
120813
120822
120823
+125264
+125265
127232
127234
127243
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
index 7951e19fb49..eec09be03f6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V228
+V236
49
50
185
@@ -195,6 +195,8 @@ V228
70114
70385
70386
+70737
+70738
70865
70866
71249
@@ -205,6 +207,10 @@ V228
71474
71905
71906
+72785
+72786
+72794
+72795
74773
74774
74782
@@ -235,6 +241,8 @@ V228
120824
125127
125128
+125265
+125266
127234
127235
133418
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
index f8975296f8f..4b3bad933e5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V98
+V100
3056
3057
3440
@@ -105,6 +105,8 @@ V98
71483
71914
71915
+72803
+72804
93019
93020
119657
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
index 229d76623d4..025f9009a0a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/100.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V58
+V60
3057
3058
3441
@@ -67,6 +67,8 @@ V58
69733
70131
70132
+72812
+72813
93020
93021
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
index 9ed4df4b8b8..f7b160e732b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
index 68fe3b5e840..c2896bc2f00 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/10000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
index 9209616c471..f73bf04ecfa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/11.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
index e3d497f484a..2a4dde5553f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/12.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
index f7860bc0c0d..5794fa6fe47 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/13.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
index 19fcf2af74e..9baf63f2da6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/14.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
index 85b3930ac96..4e86b631840 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/15.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
index f6be7958c02..fd242d42019 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/16.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
index 868aa4cc3e2..939255ad1a9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/17.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
index 61bf3629520..f01273499eb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/18.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
index 0ff1ff17f94..7c2ccb64ab4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/19.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl
new file mode 100755
index 00000000000..aac23b048b9
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_16.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+2548
+2549
+2933
+2934
+3446
+3447
+43059
+43060
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
index cef6a093cad..4edacf7f275 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
index 96c4e8488e3..a2db90bb8f3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
index dd079fd58a4..de085119949 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
index 1710e044b22..c267a0d7685 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/1_8.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,13 @@
return <<'END';
-V10
+V12
2549
2550
2934
2935
+3447
+3448
8539
8540
43060
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
index d713106840a..28b2da57d66 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V228
+V236
50
51
178
@@ -187,6 +187,8 @@ V228
70115
70386
70387
+70738
+70739
70866
70867
71250
@@ -197,6 +199,10 @@ V228
71475
71906
71907
+72786
+72787
+72795
+72796
74752
74753
74774
@@ -235,6 +241,8 @@ V228
120825
125128
125129
+125266
+125267
127235
127236
140176
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
index 11d20cf6696..2bbbe70bffa 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/20.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V60
+V62
4979
4980
9331
@@ -69,6 +69,8 @@ V60
71484
71915
71916
+72804
+72805
119658
119659
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl
index 3d7817f1001..56e0fb83fa0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/200.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
index 70e3d0d15b5..20a77fd9e9c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/2_3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
index 3d2924dd54e..23ff2749b62 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V224
+V232
51
52
179
@@ -175,6 +175,8 @@ V224
70116
70387
70388
+70739
+70740
70867
70868
71251
@@ -185,6 +187,10 @@ V224
71476
71907
71908
+72787
+72788
+72796
+72797
74753
74754
74760
@@ -225,6 +231,8 @@ V224
120826
125129
125130
+125267
+125268
127236
127237
133885
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
index 571ee5078a5..f61479410c8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/30.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V30
+V32
4980
4981
12346
@@ -37,6 +37,8 @@ V30
70125
71916
71917
+72805
+72806
119659
119660
133507
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl
index 73dde0270ed..012fae71dd0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/300.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl
new file mode 100755
index 00000000000..e45c269c7cd
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_16.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+2550
+2551
+2935
+2936
+3448
+3449
+43061
+43062
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
index 784f6148ff0..db47a956930 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/3_4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
index 7f44b872159..0fe2f807f57 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/4.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V212
+V220
52
53
1636
@@ -163,6 +163,8 @@ V212
70117
70388
70389
+70740
+70741
70868
70869
71252
@@ -173,6 +175,10 @@ V212
71477
71908
71909
+72788
+72789
+72797
+72798
74754
74755
74761
@@ -215,6 +221,8 @@ V212
120827
125130
125131
+125268
+125269
127237
127238
131172
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
index 3c48dce9006..1378b2677c4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/40.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V30
+V32
4981
4982
12875
@@ -33,6 +33,8 @@ V30
70126
71917
71918
+72806
+72807
74855
74856
119660
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl
index b94662a29c0..0974304af22 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/400.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
index 166694b0efc..d31212480cc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V216
+V224
53
54
1637
@@ -173,6 +173,8 @@ V216
70118
70389
70390
+70741
+70742
70869
70870
71253
@@ -183,6 +185,10 @@ V216
71478
71909
71910
+72789
+72790
+72798
+72799
74755
74756
74762
@@ -223,6 +229,8 @@ V216
120828
125131
125132
+125269
+125270
127238
127239
131361
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
index b6d3fc20ee6..0bd34c26c8a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V46
+V48
4982
4983
8556
@@ -53,6 +53,8 @@ V46
70127
71918
71919
+72807
+72808
74856
74857
119661
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
index ca024139a3e..6db1862437a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/500.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
index 35fcf554e42..d7a6afc52b1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/5000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
index 42641f6065b..f94b9563f95 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/50000.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
index 03e63b9af05..7fab058ed92 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/6.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V192
+V200
54
55
1638
@@ -155,6 +155,8 @@ V192
70119
70390
70391
+70742
+70743
70870
70871
71254
@@ -165,6 +167,10 @@ V192
71479
71910
71911
+72790
+72791
+72799
+72800
74756
74757
74763
@@ -199,6 +205,8 @@ V192
120829
125132
125133
+125270
+125271
127239
127240
133866
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
index 64f74d70f52..0a3756301f0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/60.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V20
+V22
4983
4984
12877
@@ -29,6 +29,8 @@ V20
70128
71919
71920
+72808
+72809
119662
119663
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl
index af608c4cf25..3a0aa669705 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/600.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
index 17669fe33a4..42bc3827395 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/7.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V186
+V194
55
56
1639
@@ -151,6 +151,8 @@ V186
70120
70391
70392
+70743
+70744
70871
70872
71255
@@ -161,6 +163,10 @@ V186
71480
71911
71912
+72791
+72792
+72800
+72801
74757
74758
74764
@@ -193,6 +199,8 @@ V186
120830
125133
125134
+125271
+125272
127240
127241
131073
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
index 012f927d3fc..00cd1e5d4ef 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/70.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V20
+V22
4984
4985
12878
@@ -29,6 +29,8 @@ V20
70129
71920
71921
+72809
+72810
119663
119664
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl
index e629778eb82..00381556901 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/700.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
index fae3d7d8518..268472fba4d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/8.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V180
+V188
56
57
1640
@@ -147,6 +147,8 @@ V180
70121
70392
70393
+70744
+70745
70872
70873
71256
@@ -157,6 +159,10 @@ V180
71481
71912
71913
+72792
+72793
+72801
+72802
74758
74759
74765
@@ -189,6 +195,8 @@ V180
120831
125134
125135
+125272
+125273
127241
127242
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
index 0f05d4214b4..28001f829c7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/80.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V18
+V20
4985
4986
12879
@@ -27,6 +27,8 @@ V18
70130
71921
71922
+72810
+72811
119664
119665
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl
index aa1d84c7b13..dfcb43a43b8 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/800.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
index edee4c87bf8..bfe26fec585 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/9.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V184
+V192
57
58
1641
@@ -149,6 +149,8 @@ V184
70122
70393
70394
+70745
+70746
70873
70874
71257
@@ -159,6 +161,10 @@ V184
71482
71913
71914
+72793
+72794
+72802
+72803
74759
74760
74766
@@ -191,6 +197,8 @@ V184
120832
125135
125136
+125273
+125274
127242
127243
194704
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
index e464b22a3d3..7d7c549ee9a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/90.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V18
+V20
4986
4987
65816
@@ -27,6 +27,8 @@ V18
70131
71922
71923
+72811
+72812
119665
119666
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl
index 1fd42542bbd..aeb4fe46909 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Nv/900.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl
new file mode 100755
index 00000000000..e91197adba5
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/PCM/Y.pl
@@ -0,0 +1,24 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V10
+1536
+1542
+1757
+1758
+1807
+1808
+2274
+2275
+69821
+69822
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
index 21954b25ce8..107ff0324a0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/PatSyn/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
index 35ee7caeb03..a7d8ada4055 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Alnum.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1296
+V1356
48
58
65
@@ -115,6 +115,10 @@ V1296
2137
2208
2229
+2230
+2238
+2260
+2272
2275
2282
2288
@@ -301,7 +305,7 @@ V1296
3172
3174
3184
-3201
+3200
3204
3205
3213
@@ -345,7 +349,7 @@ V1296
3405
3406
3407
-3415
+3412
3416
3423
3428
@@ -589,6 +593,8 @@ V1296
7242
7245
7294
+7296
+7305
7401
7405
7406
@@ -762,7 +768,7 @@ V1296
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -777,6 +783,8 @@ V1296
43124
43136
43204
+43205
+43206
43216
43226
43250
@@ -935,6 +943,10 @@ V1296
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1037,6 +1049,8 @@ V1296
70197
70199
70200
+70206
+70207
70272
70279
70280
@@ -1077,6 +1091,14 @@ V1296
70488
70493
70500
+70656
+70722
+70723
+70726
+70727
+70731
+70736
+70746
70784
70850
70852
@@ -1115,6 +1137,22 @@ V1296
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72767
+72768
+72769
+72784
+72794
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1149,6 +1187,12 @@ V1296
94079
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1223,8 +1267,24 @@ V1296
120780
120782
120832
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
+125184
+125252
+125255
+125256
+125264
+125274
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
index 825de3e26b6..c5c52e20496 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Assigned.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1226
+V1276
0
888
890
@@ -59,7 +59,9 @@ V1226
2143
2208
2229
-2275
+2230
+2238
+2260
2436
2437
2445
@@ -232,8 +234,6 @@ V1226
3174
3184
3192
-3200
-3201
3204
3205
3213
@@ -274,14 +274,10 @@ V1226
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
3458
3460
@@ -482,7 +478,7 @@ V1226
7227
7242
7245
-7296
+7305
7360
7368
7376
@@ -491,7 +487,7 @@ V1226
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -538,7 +534,7 @@ V1226
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -590,7 +586,7 @@ V1226
11736
11743
11744
-11843
+11845
11904
11930
11931
@@ -630,7 +626,7 @@ V1226
42560
42744
42752
-42926
+42927
42928
42936
42999
@@ -640,7 +636,7 @@ V1226
43072
43128
43136
-43205
+43206
43214
43226
43232
@@ -764,7 +760,7 @@ V1226
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -793,6 +789,10 @@ V1226
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -904,7 +904,7 @@ V1226
70144
70162
70163
-70206
+70207
70272
70279
70280
@@ -949,6 +949,12 @@ V1226
70509
70512
70517
+70656
+70746
+70747
+70748
+70749
+70750
70784
70856
70864
@@ -961,6 +967,8 @@ V1226
71237
71248
71258
+71264
+71277
71296
71352
71360
@@ -977,6 +985,20 @@ V1226
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1017,6 +1039,12 @@ V1226
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1087,10 +1115,26 @@ V1226
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125127
125143
+125184
+125259
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1178,25 +1222,21 @@ V1226
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -1212,9 +1252,19 @@ V1226
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131072
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
index bc0a182ca51..bb72ddb594d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Blank.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
index 3fc2f8b22b1..6d5076af091 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Graph.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1236
+V1286
33
127
161
@@ -61,7 +61,9 @@ V1236
2143
2208
2229
-2275
+2230
+2238
+2260
2436
2437
2445
@@ -234,8 +236,6 @@ V1236
3174
3184
3192
-3200
-3201
3204
3205
3213
@@ -276,14 +276,10 @@ V1236
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
3458
3460
@@ -486,7 +482,7 @@ V1236
7227
7242
7245
-7296
+7305
7360
7368
7376
@@ -495,7 +491,7 @@ V1236
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -548,7 +544,7 @@ V1236
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -600,7 +596,7 @@ V1236
11736
11743
11744
-11843
+11845
11904
11930
11931
@@ -640,7 +636,7 @@ V1236
42560
42744
42752
-42926
+42927
42928
42936
42999
@@ -650,7 +646,7 @@ V1236
43072
43128
43136
-43205
+43206
43214
43226
43232
@@ -774,7 +770,7 @@ V1236
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -803,6 +799,10 @@ V1236
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -914,7 +914,7 @@ V1236
70144
70162
70163
-70206
+70207
70272
70279
70280
@@ -959,6 +959,12 @@ V1236
70509
70512
70517
+70656
+70746
+70747
+70748
+70749
+70750
70784
70856
70864
@@ -971,6 +977,8 @@ V1236
71237
71248
71258
+71264
+71277
71296
71352
71360
@@ -987,6 +995,20 @@ V1236
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1027,6 +1049,12 @@ V1236
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1097,10 +1125,26 @@ V1236
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125127
125143
+125184
+125259
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1188,25 +1232,21 @@ V1236
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -1222,9 +1262,19 @@ V1236
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131072
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
index 5a7ffbdbee2..1486d21867a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PerlWord.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
index 7171fddc8e1..2c561920e67 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/PosixPun.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
index c7b44553777..edd23f1671f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Print.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1230
+V1280
32
127
160
@@ -61,7 +61,9 @@ V1230
2143
2208
2229
-2275
+2230
+2238
+2260
2436
2437
2445
@@ -234,8 +236,6 @@ V1230
3174
3184
3192
-3200
-3201
3204
3205
3213
@@ -276,14 +276,10 @@ V1230
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
3458
3460
@@ -484,7 +480,7 @@ V1230
7227
7242
7245
-7296
+7305
7360
7368
7376
@@ -493,7 +489,7 @@ V1230
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -542,7 +538,7 @@ V1230
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -594,7 +590,7 @@ V1230
11736
11743
11744
-11843
+11845
11904
11930
11931
@@ -634,7 +630,7 @@ V1230
42560
42744
42752
-42926
+42927
42928
42936
42999
@@ -644,7 +640,7 @@ V1230
43072
43128
43136
-43205
+43206
43214
43226
43232
@@ -768,7 +764,7 @@ V1230
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -797,6 +793,10 @@ V1230
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -908,7 +908,7 @@ V1230
70144
70162
70163
-70206
+70207
70272
70279
70280
@@ -953,6 +953,12 @@ V1230
70509
70512
70517
+70656
+70746
+70747
+70748
+70749
+70750
70784
70856
70864
@@ -965,6 +971,8 @@ V1230
71237
71248
71258
+71264
+71277
71296
71352
71360
@@ -981,6 +989,20 @@ V1230
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1021,6 +1043,12 @@ V1230
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1091,10 +1119,26 @@ V1230
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125127
125143
+125184
+125259
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1182,25 +1226,21 @@ V1230
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -1216,9 +1256,19 @@ V1230
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131072
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl
index 46bc11180eb..3cb475248de 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/SpacePer.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl
index d40fb5551a3..3c85ba73646 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Title.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
index 16f4c783076..a1b94d84a3b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/Word.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1310
+V1360
48
58
65
@@ -109,6 +109,10 @@ V1310
2140
2208
2229
+2230
+2238
+2260
+2274
2275
2404
2406
@@ -287,7 +291,7 @@ V1310
3172
3174
3184
-3201
+3200
3204
3205
3213
@@ -329,7 +333,7 @@ V1310
3401
3402
3407
-3415
+3412
3416
3423
3428
@@ -565,6 +569,8 @@ V1310
7242
7245
7294
+7296
+7305
7376
7379
7380
@@ -573,7 +579,7 @@ V1310
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -744,7 +750,7 @@ V1310
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -752,7 +758,7 @@ V1310
43072
43124
43136
-43205
+43206
43216
43226
43232
@@ -917,6 +923,10 @@ V1310
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1021,6 +1031,8 @@ V1310
70162
70163
70200
+70206
+70207
70272
70279
70280
@@ -1065,6 +1077,10 @@ V1310
70509
70512
70517
+70656
+70731
+70736
+70746
70784
70854
70855
@@ -1099,6 +1115,20 @@ V1310
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72769
+72784
+72794
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1135,6 +1165,12 @@ V1310
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1233,10 +1269,24 @@ V1310
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125136
125143
+125184
+125259
+125264
+125274
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
index 4cd0b45d197..ee43013daa6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/XPosixPu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V312
+V326
33
48
58
@@ -172,7 +172,7 @@ V312
11776
11823
11824
-11843
+11845
12289
12292
12296
@@ -301,14 +301,26 @@ V312
70206
70313
70314
+70731
+70736
+70747
+70748
+70749
+70750
70854
70855
71105
71128
71233
71236
+71264
+71277
71484
71487
+72769
+72774
+72816
+72818
74864
74869
92782
@@ -323,4 +335,6 @@ V312
113824
121479
121484
+125278
+125280
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
index 5cc6f9b62b7..1ab0ac37631 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlAny.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V246
+V252
65
91
97
@@ -56,8 +56,6 @@ V246
613
615
616
-618
-619
621
623
624
@@ -137,6 +135,8 @@ V246
5110
5112
5118
+7296
+7305
7545
7546
7549
@@ -234,7 +234,7 @@ V246
42896
42900
42902
-42926
+42927
42928
42936
43859
@@ -251,10 +251,16 @@ V246
65371
66560
66640
+66736
+66772
+66776
+66812
68736
68787
68800
68851
71840
71904
+125184
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
index 83b2bca4de8..afbe4f85efc 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCh2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1324
+V1372
32
33
40
@@ -25,8 +25,6 @@ V1324
96
97
123
-160
-161
170
171
181
@@ -119,6 +117,10 @@ V1324
2140
2208
2229
+2230
+2238
+2260
+2274
2275
2404
2406
@@ -297,7 +299,7 @@ V1324
3172
3174
3184
-3201
+3200
3204
3205
3213
@@ -339,7 +341,7 @@ V1324
3401
3402
3407
-3415
+3412
3416
3423
3428
@@ -575,6 +577,8 @@ V1324
7242
7245
7294
+7296
+7305
7376
7379
7380
@@ -583,7 +587,7 @@ V1324
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -752,7 +756,7 @@ V1324
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -760,7 +764,7 @@ V1324
43072
43124
43136
-43205
+43206
43216
43226
43232
@@ -937,6 +941,10 @@ V1324
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1041,6 +1049,8 @@ V1324
70162
70163
70200
+70206
+70207
70272
70279
70280
@@ -1085,6 +1095,10 @@ V1324
70509
70512
70517
+70656
+70731
+70736
+70746
70784
70854
70855
@@ -1119,6 +1133,20 @@ V1324
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72769
+72784
+72794
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1155,6 +1183,12 @@ V1324
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1253,10 +1287,24 @@ V1324
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125136
125143
+125184
+125259
+125264
+125274
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
index 3fa65860033..e6ceb8d1ced 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlCha.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1120
+V1154
65
91
97
@@ -109,6 +109,8 @@ V1120
2137
2208
2229
+2230
+2238
2308
2362
2365
@@ -237,6 +239,8 @@ V1120
3163
3168
3170
+3200
+3201
3205
3213
3214
@@ -265,6 +269,8 @@ V1120
3390
3406
3407
+3412
+3415
3423
3426
3450
@@ -422,6 +428,8 @@ V1120
6176
6264
6272
+6277
+6279
6313
6314
6315
@@ -459,6 +467,8 @@ V1120
7248
7258
7294
+7296
+7305
7401
7405
7406
@@ -624,7 +634,7 @@ V1120
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -809,6 +819,10 @@ V1120
66512
66560
66718
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -931,6 +945,10 @@ V1120
70481
70493
70498
+70656
+70709
+70727
+70731
70784
70832
70852
@@ -955,6 +973,14 @@ V1120
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72818
+72848
73728
74650
74880
@@ -983,6 +1009,12 @@ V1120
94033
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1055,6 +1087,8 @@ V1120
120780
124928
125125
+125184
+125252
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
index e43d835a77f..9fe2a65cab0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlFol.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
index 12fa15e3f22..989bc618922 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1316
+V1366
48
58
65
@@ -111,6 +111,10 @@ V1316
2140
2208
2229
+2230
+2238
+2260
+2274
2275
2404
2406
@@ -289,7 +293,7 @@ V1316
3172
3174
3184
-3201
+3200
3204
3205
3213
@@ -331,7 +335,7 @@ V1316
3401
3402
3407
-3415
+3412
3416
3423
3428
@@ -567,6 +571,8 @@ V1316
7242
7245
7294
+7296
+7305
7376
7379
7380
@@ -575,7 +581,7 @@ V1316
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -744,7 +750,7 @@ V1316
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -752,7 +758,7 @@ V1316
43072
43124
43136
-43205
+43206
43216
43226
43232
@@ -929,6 +935,10 @@ V1316
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1033,6 +1043,8 @@ V1316
70162
70163
70200
+70206
+70207
70272
70279
70280
@@ -1077,6 +1089,10 @@ V1316
70509
70512
70517
+70656
+70731
+70736
+70746
70784
70854
70855
@@ -1111,6 +1127,20 @@ V1316
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72769
+72784
+72794
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1147,6 +1177,12 @@ V1316
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1245,10 +1281,24 @@ V1316
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125136
125143
+125184
+125259
+125264
+125274
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
index 8bfb6e3d91f..a86241e9f12 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlIDS.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1128
+V1160
65
91
95
@@ -111,6 +111,8 @@ V1128
2137
2208
2229
+2230
+2238
2308
2362
2365
@@ -239,6 +241,8 @@ V1128
3163
3168
3170
+3200
+3201
3205
3213
3214
@@ -267,6 +271,8 @@ V1128
3390
3406
3407
+3412
+3415
3423
3426
3450
@@ -461,6 +467,8 @@ V1128
7248
7258
7294
+7296
+7305
7401
7405
7406
@@ -628,7 +636,7 @@ V1128
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -815,6 +823,10 @@ V1128
66518
66560
66718
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -937,6 +949,10 @@ V1128
70481
70493
70498
+70656
+70709
+70727
+70731
70784
70832
70852
@@ -961,6 +977,14 @@ V1128
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72818
+72848
73728
74650
74752
@@ -991,6 +1015,12 @@ V1128
94033
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1063,6 +1093,8 @@ V1128
120780
124928
125125
+125184
+125252
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl
index 59894b1b3d4..337ba0d7ab6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlNch.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl
index 7316e86b073..b5555a221f0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPat.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
index 5ea11902802..53cf0bb50fc 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPr2.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
index 10dfa312519..a4b8e1c3c2b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlPro.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
index fe9fd0d81a6..cd6958d6330 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Perl/_PerlQuo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
index d78a3e6f63e..e167c8cc3a1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/QMark/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
index 9e1f0f65982..272f952a54c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/AT.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
index 99c06eb073a..186aa104cb0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/CL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
index 8132f398256..fcba527da3c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V476
+V506
768
880
1155
@@ -57,6 +57,8 @@ V476
2094
2137
2140
+2260
+2274
2275
2308
2362
@@ -251,6 +253,8 @@ V476
6110
6155
6158
+6277
+6279
6313
6314
6432
@@ -293,7 +297,7 @@ V476
7418
7616
7670
-7676
+7675
7680
8204
8206
@@ -328,7 +332,7 @@ V476
43136
43138
43188
-43205
+43206
43232
43250
43302
@@ -415,6 +419,8 @@ V476
70093
70188
70200
+70206
+70207
70367
70379
70400
@@ -435,6 +441,8 @@ V476
70509
70512
70517
+70709
+70727
70832
70852
71087
@@ -449,6 +457,14 @@ V476
71352
71453
71468
+72751
+72759
+72760
+72768
+72850
+72872
+72873
+72887
92912
92917
92976
@@ -483,8 +499,22 @@ V476
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
125136
125143
+125252
+125259
+917536
+917632
917760
918000
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
index b52b9fe0d93..315f425e836 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/FO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -21,6 +21,8 @@ V36
1758
1807
1808
+2274
+2275
6158
6159
8203
@@ -45,6 +47,4 @@ V36
119163
917505
917506
-917536
-917632
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
index 68c2cb75cd0..45d23f4f0a1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/LE.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V910
+V936
443
444
448
@@ -75,6 +75,8 @@ V910
2137
2208
2229
+2230
+2238
2308
2362
2365
@@ -203,6 +205,8 @@ V910
3163
3168
3170
+3200
+3201
3205
3213
3214
@@ -231,6 +235,8 @@ V910
3390
3406
3407
+3412
+3415
3423
3426
3450
@@ -378,6 +384,8 @@ V910
6176
6264
6272
+6277
+6279
6313
6314
6315
@@ -781,6 +789,10 @@ V910
70481
70493
70498
+70656
+70709
+70727
+70731
70784
70832
70852
@@ -803,6 +815,14 @@ V910
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72818
+72848
73728
74650
74752
@@ -833,6 +853,12 @@ V910
94033
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
index 1ddbdc472fd..484e0387bf4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/LO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1272
+V1278
97
123
170
@@ -561,6 +561,8 @@ V1272
1416
5112
5118
+7296
+7305
7424
7616
7681
@@ -1223,6 +1225,8 @@ V1272
65371
66600
66640
+66776
+66812
68800
68851
71872
@@ -1283,4 +1287,6 @@ V1272
120778
120779
120780
+125218
+125252
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
index d9842e8ec48..958ea6d8dfe 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/NU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V102
+V108
48
58
1632
@@ -97,6 +97,8 @@ V102
70106
70384
70394
+70736
+70746
70864
70874
71248
@@ -107,10 +109,14 @@ V102
71482
71904
71914
+72784
+72794
92768
92778
93008
93018
120782
120832
+125264
+125274
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
index 96234999974..ade5ac8b267 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/SC.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
index de0e1668e6f..af3d53167be 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/ST.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V122
+V126
33
34
63
@@ -113,6 +113,8 @@ V122
70205
70313
70314
+70731
+70733
71106
71108
71113
@@ -121,6 +123,8 @@ V122
71235
71484
71487
+72769
+72771
92782
92784
92917
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
index 6ee5c398ba3..8ac7941364a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/Sp.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
index 3a70e66977b..37633bc209e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/UP.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1266
+V1270
65
91
192
@@ -1196,7 +1196,7 @@ V1266
42920
42921
42922
-42926
+42927
42928
42933
42934
@@ -1205,6 +1205,8 @@ V1266
65339
66560
66600
+66736
+66772
68736
68787
71840
@@ -1271,6 +1273,8 @@ V1266
120745
120778
120779
+125184
+125218
127280
127306
127312
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
index c3489b75f2b..56d8ab79496 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1447
+V1493
0
9
14
@@ -138,7 +138,9 @@ V1447
2140
2208
2229
-2275
+2230
+2238
+2260
2416
2417
2436
@@ -314,7 +316,7 @@ V1447
3172
3174
3184
-3201
+3200
3204
3205
3213
@@ -356,7 +358,7 @@ V1447
3401
3402
3407
-3415
+3412
3416
3423
3428
@@ -599,7 +601,7 @@ V1447
7232
7242
7245
-7296
+7305
7376
7379
7380
@@ -608,7 +610,7 @@ V1447
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -831,7 +833,7 @@ V1447
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -841,7 +843,7 @@ V1447
43126
43128
43136
-43205
+43206
43214
43226
43232
@@ -1032,6 +1034,10 @@ V1447
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1146,6 +1152,8 @@ V1447
70202
70203
70205
+70206
+70207
70272
70279
70280
@@ -1190,6 +1198,10 @@ V1447
70509
70512
70517
+70656
+70733
+70736
+70746
70784
70854
70855
@@ -1228,6 +1240,20 @@ V1447
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72771
+72784
+72794
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1266,6 +1292,12 @@ V1447
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1364,10 +1396,24 @@ V1447
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125136
125143
+125184
+125259
+125264
+125274
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
index 42337b7c982..761b9fd35f4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/SD/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
index b6ff0239a14..a02dcdaa883 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/STerm/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V128
+V132
33
34
46
@@ -119,6 +119,8 @@ V128
70205
70313
70314
+70731
+70733
71106
71108
71113
@@ -127,6 +129,8 @@ V128
71235
71484
71487
+72769
+72771
92782
92784
92917
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
index 7fd74ca15a1..eb179771ed7 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Arab.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V108
+V112
1536
1541
1542
@@ -33,6 +33,10 @@ V108
1920
2208
2229
+2230
+2238
+2260
+2274
2275
2304
64336
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl
index f5ddbf7c0ee..2928c5fd894 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Armn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
index 0a9c1113ab2..9a474f7a562 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Beng.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Bhks.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Bhks.pl
new file mode 100755
index 00000000000..32737f94fef
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Bhks.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl
index e7518b6a952..f41ab5aa1ca 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cham.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
index fe1b430f2d9..ad6bb9866cd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cprt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
index 79b9dea2785..056badfc949 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Cyrl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,13 @@
return <<'END';
-V14
+V16
1024
1157
1159
1328
+7296
+7305
7467
7468
7544
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
index 39a21528edd..6780f374d20 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Deva.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl
index 2f406552f58..82d8b67b834 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Dupl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl
index f5ebba96699..05b8a9f045d 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Ethi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
index 357bbc2ece9..1023d6ab7de 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Geor.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl
new file mode 100755
index 00000000000..1377ce534e2
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Glag.pl
@@ -0,0 +1,28 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V14
+11264
+11311
+11312
+11359
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl
index 530372a36b0..f245c84b6d4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gran.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
index 9df5a45abcd..6b3c3f6bf08 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Grek.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -78,7 +78,7 @@ V72
43877
43878
65856
-65933
+65935
65952
65953
119296
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
index 17e7df4c451..14049dc6f63 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Gujr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
index 1679f631944..994ee190bec 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Guru.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
index 07d02b47270..8d2bd68d2bb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Han.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
index b036201cf2e..08da441ac79 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hang.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl
index 28ff666ac60..0d7054fa5db 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hebr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
index 8e8c1f7e95b..2d6b414b111 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hira.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl
index f99eeee86d9..d18d91c396d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Hmng.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
index 50577164343..bbb887df378 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Kana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl
index 4e67b5c3f1d..c2d5682d8be 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khar.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl
index ed8f1d6e7f2..3db37a93493 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Khmr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
index a190a1f908e..5f65f4e186a 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Knda.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -11,7 +11,7 @@
return <<'END';
V28
-3201
+3200
3204
3205
3213
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl
index 7fb3582e93c..a7f9375e729 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl
index 34629efcdcd..bba6276667f 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Lao.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
index f181635c21e..4fd5795a529 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Latn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -58,7 +58,7 @@ V62
42786
42888
42891
-42926
+42927
42928
42936
42999
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
index ce965b1631e..bb9f450028e 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Limb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
index fa904e789f4..7f6643c32a0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Linb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
index ae0de9ec14c..dc5072306ff 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mlym.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V22
+V18
3329
3332
3333
@@ -24,13 +24,9 @@ V22
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
index 83f48f712fb..abedde3caa6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mong.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V12
+V14
6144
6146
6148
@@ -23,4 +23,6 @@ V12
6264
6272
6315
+71264
+71277
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl
index 0a34803d5c1..0f02b4aef8f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Mult.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
index 3d93608b2b7..525fae508bb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Orya.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
index 29ca114f91e..8005eab6807 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Sinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl
index fc263725280..dc4efbd69b2 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Talu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
index 36309ad0827..25c4841bdeb 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Taml.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
index 23831b1830b..ffda5bbd115 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Telu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl
index 30cfa8b9fab..b6559f984d7 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Tibt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Xsux.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Xsux.pl
index 3148b29eba8..8011a0c870a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Xsux.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Xsux.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
index 5dc0d74ea64..96b6d060003 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -37,7 +37,7 @@ V54
7418
7616
7670
-7676
+7675
7680
8204
8206
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
index a32626b2747..0ce697e53f3 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zyyy.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V322
+V330
0
65
91
@@ -53,6 +53,8 @@ V322
1601
1757
1758
+2274
+2275
2404
2406
3647
@@ -104,7 +106,7 @@ V322
8585
8588
8592
-9211
+9215
9216
9255
9280
@@ -124,7 +126,7 @@ V322
11244
11248
11776
-11843
+11845
12272
12284
12288
@@ -288,27 +290,23 @@ V322
127280
127340
127344
-127387
+127405
127462
127488
127489
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -324,9 +322,19 @@ V322
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
917505
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl
index f9d0e54c1f7..81f9312f3a1 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Sc/Zzzz.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1221
+V1271
888
890
896
@@ -58,7 +58,9 @@ V1221
2143
2208
2229
-2275
+2230
+2238
+2260
2436
2437
2445
@@ -231,8 +233,6 @@ V1221
3174
3184
3192
-3200
-3201
3204
3205
3213
@@ -273,14 +273,10 @@ V1221
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
3458
3460
@@ -481,7 +477,7 @@ V1221
7227
7242
7245
-7296
+7305
7360
7368
7376
@@ -490,7 +486,7 @@ V1221
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -537,7 +533,7 @@ V1221
8448
8588
8592
-9211
+9215
9216
9255
9280
@@ -589,7 +585,7 @@ V1221
11736
11743
11744
-11843
+11845
11904
11930
11931
@@ -629,7 +625,7 @@ V1221
42560
42744
42752
-42926
+42927
42928
42936
42999
@@ -639,7 +635,7 @@ V1221
43072
43128
43136
-43205
+43206
43214
43226
43232
@@ -763,7 +759,7 @@ V1221
65799
65844
65847
-65933
+65935
65936
65948
65952
@@ -792,6 +788,10 @@ V1221
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -903,7 +903,7 @@ V1221
70144
70162
70163
-70206
+70207
70272
70279
70280
@@ -948,6 +948,12 @@ V1221
70509
70512
70517
+70656
+70746
+70747
+70748
+70749
+70750
70784
70856
70864
@@ -960,6 +966,8 @@ V1221
71237
71248
71258
+71264
+71277
71296
71352
71360
@@ -976,6 +984,20 @@ V1221
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72774
+72784
+72813
+72816
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1016,6 +1038,12 @@ V1221
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1086,10 +1114,26 @@ V1221
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125127
125143
+125184
+125259
+125264
+125274
+125278
+125280
126464
126468
126469
@@ -1177,25 +1221,21 @@ V1221
127280
127340
127344
-127387
+127405
127462
127491
127504
-127547
+127548
127552
127561
127568
127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -1211,9 +1251,19 @@ V1221
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
131072
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl
new file mode 100755
index 00000000000..9b64bf8d41f
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Adlm.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+1600
+1601
+125184
+125259
+125264
+125274
+125278
+125280
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
index 3f3fb5eb89f..4034d62f1f6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Arab.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V100
+V104
1536
1541
1542
@@ -23,6 +23,10 @@ V100
1920
2208
2229
+2230
+2238
+2260
+2274
2275
2304
64336
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
index 2c9c409c4c5..062220c1d78 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Armn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
index 1e0a2158b3e..8b95c4d50ef 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Beng.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V32
+V34
2385
2387
2404
@@ -43,4 +43,6 @@ V32
2532
2534
2556
+43249
+43250
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
index acf36efb558..64537b04711 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Bopo.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V40
+V24
746
748
12289
@@ -25,28 +25,12 @@ V40
12337
12343
12344
-12350
-12352
12539
12540
12549
12590
12704
12731
-12736
-12772
-12832
-12868
-12928
-12977
-12992
-13004
-13144
-13169
-13179
-13184
-13280
-13311
65093
65095
65377
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
index 91f9df9c740..e9e1a2966c1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cakm.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl
index ffb1abc1c20..dc61c362df5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Copt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
index b59ec01d39d..63f041a8cd5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cprt.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
index 365f2424c34..2b91b37a50e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Cyrl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,15 +10,19 @@
return <<'END';
-V12
+V16
1024
1328
+7296
+7305
7467
7468
7544
7545
11744
11776
+11843
+11844
42560
42656
65070
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
index 9ac6c332d11..842423fce6d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Deva.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl
index 1c3476484b4..b30a4979e33 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Dupl.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
index 3d75f151f59..2af783c9a8e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Geor.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V18
+V16
1417
1418
4256
@@ -20,8 +20,6 @@ V18
4301
4302
4304
-4347
-4348
4352
11520
11558
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl
index 33dbaf2b4db..646f902a15c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Glag.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,13 +10,27 @@
return <<'END';
-V8
+V22
+1156
+1157
1159
1160
11264
11311
11312
11359
+11843
+11844
42607
42608
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl
index 71711460f45..3b511eeee98 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gran.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
index cadd89684fa..7183493bfc6 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Grek.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -82,7 +82,7 @@ V76
43877
43878
65856
-65933
+65935
65952
65953
119296
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
index a6c70f2b8ea..dc3d5966fdb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Gujr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
index 57e8cd1bacb..aa066471f2f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Guru.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
index 1ce7b3eca6b..d15734452b0 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Han.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V60
+V62
11904
11930
11931
@@ -36,7 +36,7 @@ V60
12736
12772
12832
-12868
+12872
12928
12977
12992
@@ -61,6 +61,8 @@ V60
65382
119648
119666
+127568
+127570
131072
173783
173824
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
index 2c802b91c38..101e325e4d5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hang.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V58
+V42
4352
4608
12289
@@ -23,30 +23,14 @@ V58
12337
12343
12344
-12350
-12352
12539
12540
12593
12687
-12736
-12772
12800
12831
-12832
-12868
12896
12927
-12928
-12977
-12992
-13004
-13144
-13169
-13179
-13184
-13280
-13311
43360
43389
44032
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
index c3b59df0ffa..2eb3da24eb5 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Hira.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,9 @@
return <<'END';
-V48
+V30
12289
12292
-12294
-12295
12296
12306
12307
@@ -24,29 +22,13 @@ V48
12343
12344
12348
-12352
+12350
12353
12439
12441
12449
12539
12541
-12688
-12704
-12736
-12772
-12832
-12868
-12928
-12977
-12992
-13004
-13144
-13169
-13179
-13184
-13280
-13311
65093
65095
65377
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
index 928249685b1..238d440abf1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Kana.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,11 +10,9 @@
return <<'END';
-V44
+V28
12289
12292
-12294
-12295
12296
12306
12307
@@ -24,31 +22,17 @@ V44
12343
12344
12348
-12352
+12350
12441
12445
12448
12544
-12688
-12704
-12736
-12772
12784
12800
-12832
-12868
-12928
-12977
-12992
-13004
13008
13055
13056
-13169
-13179
-13184
-13280
-13311
+13144
65093
65095
65377
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl
index d9f825ebe39..7cabf179d64 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Knda.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,12 +10,12 @@
return <<'END';
-V36
+V38
2385
2387
2404
2406
-3201
+3200
3204
3205
3213
@@ -47,4 +47,6 @@ V36
7387
7413
7414
+43056
+43062
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
index 983c23dc4b7..1dd75c92421 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Latn.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V72
+V74
65
91
97
@@ -33,6 +33,8 @@ V72
1159
2385
2387
+4347
+4348
7424
7462
7468
@@ -66,7 +68,7 @@ V72
42786
42888
42891
-42926
+42927
42928
42936
42999
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl
index 2e0b2d6f36f..46611201197 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Limb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl
new file mode 100755
index 00000000000..d6f01d8a9e8
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Lina.pl
@@ -0,0 +1,22 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V8
+65799
+65844
+67072
+67383
+67392
+67414
+67424
+67432
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
index 50e1b1eb390..1ebe470a9dd 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Linb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl
index f0d04883b7c..fc1021f309c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mlym.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V28
+V24
2385
2387
2404
@@ -28,14 +28,10 @@ V28
3398
3401
3402
-3407
-3415
-3416
-3423
+3408
+3412
3428
3430
-3446
-3449
3456
7386
7387
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
index 59d142da766..65a6a7befa2 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mong.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V8
+V10
6144
6159
6160
@@ -19,4 +19,6 @@ V8
6264
6272
6315
+71264
+71277
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl
index 5badb9447b5..009f2c34307 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mult.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
index 7e001c2b2cb..8dd5b1aad77 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Mymr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
index 84b6be2f8fe..73fa390f0bf 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Orya.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
index 0597ba70ff6..028f5cc5cb9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Phlp.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl
index b5ce60f008a..ec6d7fd7bda 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Shrd.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl
index 6f6aa2da698..df771c3454f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sind.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl
index a4236f5ec54..ec997828ea9 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Sinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
index 38e46d7427d..63315eb2233 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Syrc.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
index f6ac8a2700c..17677d7598f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tagb.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
index 8d1cb87d209..8a1ba59423d 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Takr.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl
index be1db023caa..809060e7092 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Taml.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V40
+V44
2385
2387
2404
@@ -51,4 +51,8 @@ V40
7387
43251
43252
+70403
+70404
+70460
+70461
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl
index 65aabdaab7c..3c6eae80091 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Telu.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
index b52587f102c..129782653ba 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Thaa.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
index 31344c4fd22..b25f6ef294e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Tirh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
index de3ca5df84b..7296308ac0c 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Yi.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
index aa7a27a3a6d..a5740dd7c72 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zinh.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -21,7 +21,7 @@ V32
6847
7618
7670
-7676
+7675
7680
8204
8206
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
index 898780b793e..2808d915d22 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Scx/Zyyy.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V274
+V280
0
65
91
@@ -45,12 +45,12 @@ V274
1565
1757
1758
+2274
+2275
3647
3648
4053
4057
-4347
-4348
5867
5870
8192
@@ -78,7 +78,7 @@ V274
8585
8588
8592
-9211
+9215
9216
9255
9280
@@ -99,6 +99,8 @@ V274
11248
11776
11843
+11844
+11845
12272
12284
12288
@@ -111,7 +113,7 @@ V274
12321
12342
12343
-12868
+12872
12896
12927
12928
@@ -240,27 +242,21 @@ V274
127280
127340
127344
-127387
+127405
127462
127488
127489
127491
127504
-127547
+127548
127552
127561
-127568
-127570
127744
-128378
-128379
-128420
-128421
-128721
+128723
128736
128749
128752
-128756
+128759
128768
128884
128896
@@ -276,9 +272,19 @@ V274
129168
129198
129296
-129305
+129311
+129312
+129320
+129328
+129329
+129331
+129343
+129344
+129356
+129360
+129375
129408
-129413
+129426
129472
129473
917505
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
index b646b5a69c8..81aafd99564 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Term/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V180
+V188
33
34
44
@@ -169,6 +169,10 @@ V180
70205
70313
70314
+70731
+70734
+70747
+70748
71106
71110
71113
@@ -177,6 +181,10 @@ V180
71235
71484
71487
+72769
+72772
+72817
+72818
74864
74869
92782
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
index a55acbd1dd3..a6f6cba5767 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/UIdeo/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
index c3f79df7a01..6c63cee5fae 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/Upper/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1260
+V1264
65
91
192
@@ -1190,7 +1190,7 @@ V1260
42920
42921
42922
-42926
+42927
42928
42933
42934
@@ -1199,6 +1199,8 @@ V1260
65339
66560
66600
+66736
+66772
68736
68787
71840
@@ -1265,6 +1267,8 @@ V1260
120745
120778
120779
+125184
+125218
127280
127306
127312
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
index dffa6f19481..5da9c3696d9 100755
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/EX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,9 +10,11 @@
return <<'END';
-V12
+V14
95
96
+8239
+8240
8255
8257
8276
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl
new file mode 100755
index 00000000000..a5a1fcba7af
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/Extend.pl
@@ -0,0 +1,520 @@
+# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
+# database, Version 9.0.0. Any changes made here will be lost!
+
+# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
+# This file is for internal use by core Perl only. The format and even the
+# name or existence of this file are subject to change without notice. Don't
+# use it directly. Use Unicode::UCD to access the Unicode character data
+# base.
+
+
+return <<'END';
+V506
+768
+880
+1155
+1162
+1425
+1470
+1471
+1472
+1473
+1475
+1476
+1478
+1479
+1480
+1552
+1563
+1611
+1632
+1648
+1649
+1750
+1757
+1759
+1765
+1767
+1769
+1770
+1774
+1809
+1810
+1840
+1867
+1958
+1969
+2027
+2036
+2070
+2074
+2075
+2084
+2085
+2088
+2089
+2094
+2137
+2140
+2260
+2274
+2275
+2308
+2362
+2365
+2366
+2384
+2385
+2392
+2402
+2404
+2433
+2436
+2492
+2493
+2494
+2501
+2503
+2505
+2507
+2510
+2519
+2520
+2530
+2532
+2561
+2564
+2620
+2621
+2622
+2627
+2631
+2633
+2635
+2638
+2641
+2642
+2672
+2674
+2677
+2678
+2689
+2692
+2748
+2749
+2750
+2758
+2759
+2762
+2763
+2766
+2786
+2788
+2817
+2820
+2876
+2877
+2878
+2885
+2887
+2889
+2891
+2894
+2902
+2904
+2914
+2916
+2946
+2947
+3006
+3011
+3014
+3017
+3018
+3022
+3031
+3032
+3072
+3076
+3134
+3141
+3142
+3145
+3146
+3150
+3157
+3159
+3170
+3172
+3201
+3204
+3260
+3261
+3262
+3269
+3270
+3273
+3274
+3278
+3285
+3287
+3298
+3300
+3329
+3332
+3390
+3397
+3398
+3401
+3402
+3406
+3415
+3416
+3426
+3428
+3458
+3460
+3530
+3531
+3535
+3541
+3542
+3543
+3544
+3552
+3570
+3572
+3633
+3634
+3636
+3643
+3655
+3663
+3761
+3762
+3764
+3770
+3771
+3773
+3784
+3790
+3864
+3866
+3893
+3894
+3895
+3896
+3897
+3898
+3902
+3904
+3953
+3973
+3974
+3976
+3981
+3992
+3993
+4029
+4038
+4039
+4139
+4159
+4182
+4186
+4190
+4193
+4194
+4197
+4199
+4206
+4209
+4213
+4226
+4238
+4239
+4240
+4250
+4254
+4957
+4960
+5906
+5909
+5938
+5941
+5970
+5972
+6002
+6004
+6068
+6100
+6109
+6110
+6155
+6158
+6277
+6279
+6313
+6314
+6432
+6444
+6448
+6460
+6679
+6684
+6741
+6751
+6752
+6781
+6783
+6784
+6832
+6847
+6912
+6917
+6964
+6981
+7019
+7028
+7040
+7043
+7073
+7086
+7142
+7156
+7204
+7224
+7376
+7379
+7380
+7401
+7405
+7406
+7410
+7413
+7416
+7418
+7616
+7670
+7675
+7680
+8204
+8205
+8400
+8433
+11503
+11506
+11647
+11648
+11744
+11776
+12330
+12336
+12441
+12443
+42607
+42611
+42612
+42622
+42654
+42656
+42736
+42738
+43010
+43011
+43014
+43015
+43019
+43020
+43043
+43048
+43136
+43138
+43188
+43206
+43232
+43250
+43302
+43310
+43335
+43348
+43392
+43396
+43443
+43457
+43493
+43494
+43561
+43575
+43587
+43588
+43596
+43598
+43643
+43646
+43696
+43697
+43698
+43701
+43703
+43705
+43710
+43712
+43713
+43714
+43755
+43760
+43765
+43767
+44003
+44011
+44012
+44014
+64286
+64287
+65024
+65040
+65056
+65072
+65438
+65440
+66045
+66046
+66272
+66273
+66422
+66427
+68097
+68100
+68101
+68103
+68108
+68112
+68152
+68155
+68159
+68160
+68325
+68327
+69632
+69635
+69688
+69703
+69759
+69763
+69808
+69819
+69888
+69891
+69927
+69941
+70003
+70004
+70016
+70019
+70067
+70081
+70090
+70093
+70188
+70200
+70206
+70207
+70367
+70379
+70400
+70404
+70460
+70461
+70462
+70469
+70471
+70473
+70475
+70478
+70487
+70488
+70498
+70500
+70502
+70509
+70512
+70517
+70709
+70727
+70832
+70852
+71087
+71094
+71096
+71105
+71132
+71134
+71216
+71233
+71339
+71352
+71453
+71468
+72751
+72759
+72760
+72768
+72850
+72872
+72873
+72887
+92912
+92917
+92976
+92983
+94033
+94079
+94095
+94099
+113821
+113823
+119141
+119146
+119149
+119155
+119163
+119171
+119173
+119180
+119210
+119214
+119362
+119365
+121344
+121399
+121403
+121453
+121461
+121462
+121476
+121477
+121499
+121504
+121505
+121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
+125136
+125143
+125252
+125259
+917536
+917632
+917760
+918000
+END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
index 3b2153caef6..a535f815b03 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/FO.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -21,6 +21,8 @@ V34
1758
1807
1808
+2274
+2275
6158
6159
8206
@@ -43,6 +45,4 @@ V34
119163
917505
917506
-917536
-917632
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
index d3daf3d1f43..bf664ac52a4 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/HL.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
index 2fbea634f23..2c1e7a5fff1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/KA.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
index a03304cdfa6..479a8ac292b 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/LE.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V970
+V1000
65
91
97
@@ -107,6 +107,8 @@ V970
2137
2208
2229
+2230
+2238
2308
2362
2365
@@ -235,6 +237,8 @@ V970
3163
3168
3170
+3200
+3201
3205
3213
3214
@@ -263,6 +267,8 @@ V970
3390
3406
3407
+3412
+3415
3423
3426
3450
@@ -356,6 +362,8 @@ V970
6176
6264
6272
+6277
+6279
6313
6314
6315
@@ -381,6 +389,8 @@ V970
7248
7258
7294
+7296
+7305
7401
7405
7406
@@ -534,7 +544,7 @@ V970
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -665,6 +675,10 @@ V970
66518
66560
66718
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -787,6 +801,10 @@ V970
70481
70493
70498
+70656
+70709
+70727
+70731
70784
70832
70852
@@ -809,6 +827,14 @@ V970
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72818
+72848
73728
74650
74752
@@ -839,6 +865,8 @@ V970
94033
94099
94112
+94176
+94177
113664
113771
113776
@@ -909,6 +937,8 @@ V970
120780
124928
125125
+125184
+125252
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
index 8c2278e65ee..89d5ea73843 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/MB.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
index 1adedf54916..d6daba150ac 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/ML.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
index 99ad4b50d04..2826d90321f 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/MN.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
index f340f4006ab..2013a17dd3a 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/NU.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V102
+V108
48
58
1632
@@ -97,6 +97,8 @@ V102
70106
70384
70394
+70736
+70746
70864
70874
71248
@@ -107,10 +109,14 @@ V102
71482
71904
71914
+72784
+72794
92768
92778
93008
93018
120782
120832
+125264
+125274
END
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl b/Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
index a484a770128..ddb8fc3ec06 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/WB/XX.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1341
+V1451
0
10
14
@@ -136,7 +136,9 @@ V1341
2140
2208
2229
-2275
+2230
+2238
+2260
2404
2406
2416
@@ -314,7 +316,7 @@ V1341
3172
3174
3184
-3201
+3200
3204
3205
3213
@@ -356,7 +358,7 @@ V1341
3401
3402
3407
-3415
+3412
3416
3423
3428
@@ -572,6 +574,8 @@ V1341
7242
7245
7294
+7296
+7305
7376
7379
7380
@@ -580,7 +584,7 @@ V1341
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -625,7 +629,7 @@ V1341
8228
8229
8231
-8239
+8240
8255
8257
8260
@@ -674,6 +678,14 @@ V1341
8585
9398
9450
+9757
+9758
+9977
+9978
+9994
+9998
+10084
+10085
11264
11311
11312
@@ -759,7 +771,7 @@ V1341
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -767,7 +779,7 @@ V1341
43072
43124
43136
-43205
+43206
43216
43226
43232
@@ -952,6 +964,10 @@ V1341
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1058,6 +1074,8 @@ V1341
70162
70163
70200
+70206
+70207
70272
70279
70280
@@ -1102,6 +1120,10 @@ V1341
70509
70512
70517
+70656
+70731
+70736
+70746
70784
70854
70855
@@ -1134,6 +1156,20 @@ V1341
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72769
+72784
+72794
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1170,6 +1206,8 @@ V1341
94079
94095
94112
+94176
+94177
110592
110593
113664
@@ -1268,10 +1306,24 @@ V1341
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125136
125143
+125184
+125259
+125264
+125274
126464
126468
126469
@@ -1346,6 +1398,64 @@ V1341
127370
127462
127488
+127877
+127878
+127939
+127941
+127946
+127948
+127995
+128000
+128066
+128068
+128070
+128081
+128102
+128106
+128110
+128111
+128112
+128121
+128124
+128125
+128129
+128132
+128133
+128136
+128139
+128140
+128170
+128171
+128373
+128374
+128378
+128379
+128400
+128401
+128405
+128407
+128488
+128489
+128581
+128584
+128587
+128592
+128675
+128676
+128692
+128695
+128704
+128705
+129304
+129311
+129318
+129319
+129328
+129329
+129331
+129338
+129340
+129343
917505
917506
917536
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
index 43c15c8fd10..90e304229cb 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/XIDC/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1316
+V1366
48
58
65
@@ -111,6 +111,10 @@ V1316
2140
2208
2229
+2230
+2238
+2260
+2274
2275
2404
2406
@@ -289,7 +293,7 @@ V1316
3172
3174
3184
-3201
+3200
3204
3205
3213
@@ -331,7 +335,7 @@ V1316
3401
3402
3407
-3415
+3412
3416
3423
3428
@@ -569,6 +573,8 @@ V1316
7242
7245
7294
+7296
+7305
7376
7379
7380
@@ -577,7 +583,7 @@ V1316
7418
7424
7670
-7676
+7675
7958
7960
7966
@@ -744,7 +750,7 @@ V1316
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -752,7 +758,7 @@ V1316
43072
43124
43136
-43205
+43206
43216
43226
43232
@@ -929,6 +935,10 @@ V1316
66718
66720
66730
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -1033,6 +1043,8 @@ V1316
70162
70163
70200
+70206
+70207
70272
70279
70280
@@ -1077,6 +1089,10 @@ V1316
70509
70512
70517
+70656
+70731
+70736
+70746
70784
70854
70855
@@ -1111,6 +1127,20 @@ V1316
71936
72384
72441
+72704
+72713
+72714
+72759
+72760
+72769
+72784
+72794
+72818
+72848
+72850
+72872
+72873
+72887
73728
74650
74752
@@ -1147,6 +1177,12 @@ V1316
94079
94095
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1245,10 +1281,24 @@ V1316
121504
121505
121520
+122880
+122887
+122888
+122905
+122907
+122914
+122915
+122917
+122918
+122923
124928
125125
125136
125143
+125184
+125259
+125264
+125274
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl b/Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
index 46c5a473afb..db2da9be78e 100644
--- a/Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
+++ b/Master/tlpkg/tlperl/lib/unicore/lib/XIDS/Y.pl
@@ -1,6 +1,6 @@
# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
# This file is machine-generated by ..\lib\unicore\mktables from the Unicode
-# database, Version 8.0.0. Any changes made here will be lost!
+# database, Version 9.0.0. Any changes made here will be lost!
# !!!!!!! INTERNAL PERL USE ONLY !!!!!!!
# This file is for internal use by core Perl only. The format and even the
@@ -10,7 +10,7 @@
return <<'END';
-V1124
+V1156
65
91
97
@@ -109,6 +109,8 @@ V1124
2137
2208
2229
+2230
+2238
2308
2362
2365
@@ -237,6 +239,8 @@ V1124
3163
3168
3170
+3200
+3201
3205
3213
3214
@@ -265,6 +269,8 @@ V1124
3390
3406
3407
+3412
+3415
3423
3426
3450
@@ -459,6 +465,8 @@ V1124
7248
7258
7294
+7296
+7305
7401
7405
7406
@@ -624,7 +632,7 @@ V1124
42786
42889
42891
-42926
+42927
42928
42936
42999
@@ -811,6 +819,10 @@ V1124
66518
66560
66718
+66736
+66772
+66776
+66812
66816
66856
66864
@@ -933,6 +945,10 @@ V1124
70481
70493
70498
+70656
+70709
+70727
+70731
70784
70832
70852
@@ -957,6 +973,14 @@ V1124
71936
72384
72441
+72704
+72713
+72714
+72751
+72768
+72769
+72818
+72848
73728
74650
74752
@@ -987,6 +1011,12 @@ V1124
94033
94099
94112
+94176
+94177
+94208
+100333
+100352
+101107
110592
110594
113664
@@ -1059,6 +1089,8 @@ V1124
120780
124928
125125
+125184
+125252
126464
126468
126469
diff --git a/Master/tlpkg/tlperl/lib/unicore/version b/Master/tlpkg/tlperl/lib/unicore/version
index ae9a76b9249..f7ee06693c1 100644
--- a/Master/tlpkg/tlperl/lib/unicore/version
+++ b/Master/tlpkg/tlperl/lib/unicore/version
@@ -1 +1 @@
-8.0.0
+9.0.0
diff --git a/Master/tlpkg/tlperl/lib/version.pm b/Master/tlpkg/tlperl/lib/version.pm
index 201561877e6..36d130f2dc3 100644
--- a/Master/tlpkg/tlperl/lib/version.pm
+++ b/Master/tlpkg/tlperl/lib/version.pm
@@ -10,7 +10,7 @@ if ($] >= 5.015) {
use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
-$VERSION = 0.9916;
+$VERSION = 0.9917;
$CLASS = 'version';
# avoid using Exporter
diff --git a/Master/tlpkg/tlperl/lib/version/regex.pm b/Master/tlpkg/tlperl/lib/version/regex.pm
index 62c1f227d29..d635c38d4b1 100644
--- a/Master/tlpkg/tlperl/lib/version/regex.pm
+++ b/Master/tlpkg/tlperl/lib/version/regex.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw($VERSION $CLASS $STRICT $LAX);
-$VERSION = 0.9916;
+$VERSION = 0.9917;
#--------------------------------------------------------------------------#
# Version regexp components
@@ -81,7 +81,7 @@ $STRICT =
# decimal-point
my $LAX_DECIMAL_VERSION =
- qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )?
+ qr/ $LAX_INTEGER_PART (?: $FRACTION_PART | \. )? $LAX_ALPHA_PART?
|
$FRACTION_PART $LAX_ALPHA_PART?
/x;
@@ -106,7 +106,7 @@ my $LAX_DOTTED_DECIMAL_VERSION =
# of return values from ExtUtils::MM->parse_version
$LAX =
- qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x;
+ qr/ undef | $LAX_DOTTED_DECIMAL_VERSION | $LAX_DECIMAL_VERSION /x;
#--------------------------------------------------------------------------#
diff --git a/Master/tlpkg/tlperl/lib/warnings.pm b/Master/tlpkg/tlperl/lib/warnings.pm
index ddb0c35e8dc..2ae1bb4e062 100644
--- a/Master/tlpkg/tlperl/lib/warnings.pm
+++ b/Master/tlpkg/tlperl/lib/warnings.pm
@@ -5,7 +5,7 @@
package warnings;
-our $VERSION = "1.36";
+our $VERSION = "1.37";
# Verify that we're called correctly so that warnings will work.
# Can't use Carp, since Carp uses us!
@@ -93,10 +93,13 @@ our %Offsets = (
'locale' => 126,
'missing' => 128,
'redundant' => 130,
+
+ # Warnings Categories added in Perl 5.025
+ 'experimental::declared_refs' => 132,
);
our %Bits = (
- 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x05", # [0..65]
+ 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15", # [0..66]
'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]
@@ -106,9 +109,10 @@ our %Bits = (
'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\x51\x15\x00", # [51..56,58..62]
+ 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x51\x15\x10", # [51..56,58..62,66]
'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [58]
'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [59]
+ 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [66]
'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [52]
'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [55]
'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [60]
@@ -165,7 +169,7 @@ our %Bits = (
);
our %DeadBits = (
- 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x0a", # [0..65]
+ 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x2a", # [0..66]
'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]
@@ -175,9 +179,10 @@ our %DeadBits = (
'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\xa2\x2a\x00", # [51..56,58..62]
+ 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\xa2\x2a\x20", # [51..56,58..62,66]
'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [58]
'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [59]
+ 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [66]
'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [52]
'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [55]
'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [60]
@@ -235,8 +240,8 @@ our %DeadBits = (
# 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\x51\x55\x00", # [2,58,59,52,55,60,61,53,56,54,62,4,63,22,23,25]
-our $LAST_BIT = 132 ;
+our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x51\x55\x10", # [2,4,22,23,25,52..56,58..63,66]
+our $LAST_BIT = 134 ;
our $BYTES = 17 ;
our $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
@@ -725,6 +730,8 @@ The current hierarchy is:
| |
| +- experimental::const_attr
| |
+ | +- experimental::declared_refs
+ | |
| +- experimental::lexical_subs
| |
| +- experimental::postderef
diff --git a/Master/tlpkg/tlperl/site/lib/Canary/Stability.pm b/Master/tlpkg/tlperl/site/lib/Canary/Stability.pm
deleted file mode 100644
index 21d7c659736..00000000000
--- a/Master/tlpkg/tlperl/site/lib/Canary/Stability.pm
+++ /dev/null
@@ -1,207 +0,0 @@
-=head1 NAME
-
-Canary::Stability - canary to check perl compatibility for schmorp's modules
-
-=head1 SYNOPSIS
-
- # in Makefile.PL
- use Canary::Stability DISTNAME => 2001, MINIMUM_PERL_VERSION;
-
-=head1 DESCRIPTION
-
-This module is used by Schmorp's modules during configuration stage to
-test the installed perl for compatibility with his modules.
-
-It's not, at this stage, meant as a tool for other module authors,
-although in principle nothing prevents them from subscribing to the same
-ideas.
-
-See the F<Makefile.PL> in L<Coro> or L<AnyEvent> for usage examples.
-
-=cut
-
-package Canary::Stability;
-
-BEGIN {
- $VERSION = 2012;
-}
-
-sub sgr {
- # we just assume ANSI almost everywhere
- # red 31, yellow 33, green 32
- local $| = 1;
-
- $ENV{PERL_CANARY_STABILITY_COLOUR} ne 0
- and ((-t STDOUT and length $ENV{TERM}) or $ENV{PERL_CANARY_STABILITY_COLOUR})
- and print "\e[$_[0]m";
-}
-
-sub import {
- my (undef, $distname, $minvers, $minperl) = @_;
-
- $ENV{PERL_CANARY_STABILITY_DISABLE}
- and return;
-
- $minperl ||= 5.008002;
-
- print <<EOF;
-
-***
-*** Canary::Stability COMPATIBILITY AND SUPPORT CHECK
-*** =================================================
-***
-*** Hi!
-***
-*** I do my best to provide predictable and reliable software.
-***
-*** However, in recent releases, P5P (who maintain perl) have been
-*** introducing regressions that are sometimes subtle and at other times
-*** catastrophic, often for personal preferences with little or no concern
-*** for existing code, most notably CPAN.
-***
-*** For this reason, it has become very hard for me to maintain the level
-*** of reliability and support I have committed myself to in the past, at
-*** least with some perl versions: I simply can't keep up working around new
-*** bugs or gratituous incompatibilities, and in turn you might suffer from
-*** unanticipated problems.
-***
-*** Therefore I have introduced a support and compatibility check, the results
-*** of which follow below, together with a FAQ and some recommendations.
-***
-*** This check is just to let you know that there might be a risk, so you can
-*** make judgement calls on how to proceed - it will not keep the module from
-*** installing or working.
-***
-EOF
-
- if ($minvers > $VERSION) {
- sgr 33;
- print <<EOF;
-*** The stability canary says: (nothing, it died of old age).
-***
-*** Your Canary::Stability module (used by $distname) is too old.
-*** This is not a fatal problem - while you might want to upgrade to version
-*** $minvers (currently installed version: $VERSION) to get better support
-*** status testing, you might also not want to care at all, and all will
-*** be well as long $distname works well enough for you, as the stability
-*** canary is only used when installing the distribution.
-EOF
- } elsif ($] < $minperl) {
-
- sgr 33;
- print <<EOF;
-*** The stability canary says: chirp (it seems concerned about something).
-***
-*** Your perl version ($]) is older than the $distname distribution
-*** likes ($minperl). This is not a fatal problem - the module might work
-*** well with your version of perl, but it does mean the author likely
-*** won't do anything to make it work if it breaks.
-EOF
- } elsif (defined $Internals::StabilityBranchVersion) {
- # note to people studying this modules sources:
- # the above test is not considered a clean or stable way to
- # test for the stability branch.
-
- sgr 32;
- print <<EOF;
-*** The stability canary says: chirp! chirp! (it seems to be quite excited)
-***
-*** It seems you are running schmorp's stability branch of perl.
-*** All should be well, and if it isn't, you should report this as a bug
-*** to the $distname author.
-EOF
- } elsif ($] < 5.021) {
- #sgr 32;
- print <<EOF;
-*** The stability canary says: chirp! chirp! (it seems to be quite happy)
-***
-*** Your version of perl ($]) is quite supported by $distname, nothing
-*** else to be said, hope it comes in handy.
-EOF
- } else {
- sgr 31;
- print <<EOF;
-*** The stability canary says: (nothing, it was driven away by harsh weather)
-***
-*** It seems you are running perl version $], likely the "official" or
-*** "standard" version. While there is nothing wrong with doing that,
-*** standard perl versions 5.022 and up are not supported by $distname.
-*** While this might be fatal, it might also be all right - if you run into
-*** problems, you might want to downgrade your perl or switch to the
-*** stability branch.
-***
-*** If everything works fine, you can ignore this message.
-EOF
- sgr 0;
- print <<EOF;
-***
-*** Stability canary mini-FAQ:
-***
-*** Do I need to do anything?
-*** With luck, no. While some distributions are known to fail
-*** already, most should probably work. This message is here
-*** to alert you that your perl is not supported by $distname,
-*** and if things go wrong, you either need to downgrade, or
-*** sidegrade to the stability variant of your perl version,
-*** or simply live with the consequences.
-***
-*** What is this canary thing?
-*** It's purpose is to check support status of $distname with
-*** respect to your perl version.
-***
-*** What is this "stability branch"?
-*** It's a branch or fork of the official perl, by schmorp, to
-*** improve stability and compatibility with existing modules.
-***
-*** How can I skip this prompt on automated installs?
-*** Set PERL_CANARY_STABILITY_NOPROMPT=1 in your environment.
-*** More info is in the Canary::Stability manpage.
-***
-*** Long version of this FAQ: http://stableperl.schmorp.de/faq.html
-*** Stability Branch homepage: http://stableperl.schmorp.de/
-***
-
-EOF
-
- unless ($ENV{PERL_CANARY_STABILITY_NOPROMPT}) {
- require ExtUtils::MakeMaker;
-
- ExtUtils::MakeMaker::prompt ("Continue anyways? ", "y") =~ /^y/i
- or die "FATAL: User aborted configuration of $distname.\n";
- }
- }
-
- sgr 0;
-}
-
-=head1 ENVIRONMENT VARIABLES
-
-=over 4
-
-=item C<PERL_CANARY_STABILITY_NOPROMPT=1>
-
-Do not prompt the user on alert messages.
-
-=item C<PERL_CANARY_STABILITY_COLOUR=0>
-
-Disable use of colour.
-
-=item C<PERL_CANARY_STABILITY_COLOUR=1>
-
-Force use of colour.
-
-=item C<PERL_CANARY_STABILITY_DISABLE=1>
-
-Disable this modules functionality completely.
-
-=back
-
-=head1 AUTHOR
-
- Marc Lehmann <schmorp@schmorp.de>
- http://software.schmorp.de/pkg/Canary-Stability.html
-
-=cut
-
-1
-
diff --git a/Master/tlpkg/tlperl/site/lib/JSON/XS.pm b/Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm
index 674937f178b..be1d482bf05 100644..100755
--- a/Master/tlpkg/tlperl/site/lib/JSON/XS.pm
+++ b/Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS.pm
@@ -1,15 +1,17 @@
-=head1 NAME
+package Cpanel::JSON::XS;
+our $VERSION = '4.01';
+our $XS_VERSION = $VERSION;
+# $VERSION = eval $VERSION;
-JSON::XS - JSON serialising/deserialising, done correctly and fast
+=pod
-=encoding utf-8
+=head1 NAME
-JSON::XS - 正しくて高速な JSON シリアライザ/デシリアライザ
- (http://fleur.hio.jp/perldoc/mix/lib/JSON/XS.html)
+Cpanel::JSON::XS - cPanel fork of JSON::XS, fast and correct serializing
=head1 SYNOPSIS
- use JSON::XS;
+ use Cpanel::JSON::XS;
# exported functions, they croak on error
# and expect/generate UTF-8
@@ -19,15 +21,18 @@ JSON::XS - 正しくて高速な JSON シリアライザ/デシリアライザ
# OO-interface
- $coder = JSON::XS->new->ascii->pretty->allow_nonref;
+ $coder = Cpanel::JSON::XS->new->ascii->pretty->allow_nonref;
$pretty_printed_unencoded = $coder->encode ($perl_scalar);
$perl_scalar = $coder->decode ($unicode_json_text);
- # Note that JSON version 2.0 and above will automatically use JSON::XS
+ # Note that 5.6 misses most smart utf8 and encoding functionalities
+ # of newer releases.
+
+ # Note that L<JSON::MaybeXS> will automatically use Cpanel::JSON::XS
# if available, at virtually no speed overhead either, so you should
# be able to just:
- use JSON;
+ use JSON::MaybeXS;
# and do the same things, except that you have a pure-perl fallback now.
@@ -37,22 +42,16 @@ This module converts Perl data structures to JSON and vice versa. Its
primary goal is to be I<correct> and its secondary goal is to be
I<fast>. To reach the latter goal it was written in C.
-Beginning with version 2.0 of the JSON module, when both JSON and
-JSON::XS are installed, then JSON will fall back on JSON::XS (this can be
-overridden) with no overhead due to emulation (by inheriting constructor
-and methods). If JSON::XS is not available, it will fall back to the
-compatible JSON::PP module as backend, so using JSON instead of JSON::XS
-gives you a portable JSON API that can be fast when you need it and
-doesn't require a C compiler when that is a problem.
-
As this is the n-th-something JSON module on CPAN, what was the reason
to write yet another JSON module? While it seems there are many JSON
modules, none of them correctly handle all corner cases, and in most cases
their maintainers are unresponsive, gone missing, or not listening to bug
reports for other reasons.
-See MAPPING, below, on how JSON::XS maps perl values to JSON values and
-vice versa.
+See below for the cPanel fork.
+
+See MAPPING, below, on how Cpanel::JSON::XS maps perl values to JSON
+values and vice versa.
=head2 FEATURES
@@ -60,13 +59,13 @@ vice versa.
=item * correct Unicode handling
-This module knows how to handle Unicode, documents how and when it does
-so, and even documents what "correct" means.
+This module knows how to handle Unicode with Perl version higher than 5.8.5,
+documents how and when it does so, and even documents what "correct" means.
=item * round-trip integrity
-When you serialise a perl data structure using only data types supported
-by JSON and Perl, the deserialised data structure is identical on the Perl
+When you serialize a perl data structure using only data types supported
+by JSON and Perl, the deserialized data structure is identical on the Perl
level. (e.g. the string "2.0" doesn't suddenly become "2" just because
it looks like a number). There I<are> minor exceptions to this, read the
MAPPING section below to learn about those.
@@ -74,12 +73,12 @@ MAPPING section below to learn about those.
=item * strict checking of JSON correctness
There is no guessing, no generating of illegal JSON texts by default,
-and only JSON is accepted as input by default (the latter is a security
-feature).
+and only JSON is accepted as input by default. the latter is a security
+feature.
=item * fast
-Compared to other JSON modules and other serialisers such as Storable,
+Compared to other JSON modules and other serializers such as Storable,
this module usually compares favourably in terms of speed, too.
=item * simple to use
@@ -97,22 +96,134 @@ stuff). Or you can combine those features in whatever way you like.
=back
-=cut
+=head2 cPanel fork
+
+Since the original author MLEHMANN has no public
+bugtracker, this cPanel fork sits now on github.
+
+src repo: L<https://github.com/rurban/Cpanel-JSON-XS>
+original: L<http://cvs.schmorp.de/JSON-XS/>
+
+RT: L<https://github.com/rurban/Cpanel-JSON-XS/issues>
+or L<https://rt.cpan.org/Public/Dist/Display.html?Queue=Cpanel-JSON-XS>
+
+B<Changes to JSON::XS>
+
+- stricter decode_json() as documented. non-refs are disallowed.
+ added a 2nd optional argument. decode() honors now allow_nonref.
+
+- fixed encode of numbers for dual-vars. Different string
+ representations are preserved, but numbers with temporary strings
+ which represent the same number are here treated as numbers, not
+ strings. Cpanel::JSON::XS is a bit slower, but preserves numeric
+ types better.
+
+- numbers ending with .0 stay numbers, are not converted to
+ integers. [#63] dual-vars which are represented as number not
+ integer (42+"bar" != 5.8.9) are now encoded as number (=> 42.0)
+ because internally it's now a NOK type. However !!1 which is
+ wrongly encoded in 5.8 as "1"/1.0 is still represented as integer.
+
+- different handling of inf/nan. Default now to null, optionally with
+ stringify_infnan() to "inf"/"nan". [#28, #32]
+
+- added C<binary> extension, non-JSON and non JSON parsable, allows
+ C<\xNN> and C<\NNN> sequences.
+
+- 5.6.2 support; sacrificing some utf8 features (assuming bytes
+ all-over), no multi-byte unicode characters with 5.6.
+
+- interop for true/false overloading. JSON::XS, JSON::PP and Mojo::JSON
+ representations for booleans are accepted and JSON::XS accepts
+ Cpanel::JSON::XS booleans [#13, #37]
+ Fixed overloading of booleans. Cpanel::JSON::XS::true stringifies again
+ to "1", not "true", analog to all other JSON modules.
+
+- native boolean mapping of yes and no to true and false, as in YAML::XS.
+ In perl C<!0> is yes, C<!1> is no.
+ The JSON value true maps to 1, false maps to 0. [#39]
+
+- support arbitrary stringification with encode, with convert_blessed
+ and allow_blessed.
+
+- ithread support. Cpanel::JSON::XS is thread-safe, JSON::XS not
+
+- is_bool can be called as method, JSON::XS::is_bool not.
-package JSON::XS;
+- performance optimizations for threaded Perls
-use common::sense;
+- relaxed mode, allowing many popular extensions
+
+- additional fixes for:
+
+ - [cpan #88061] AIX atof without USE_LONG_DOUBLE
+
+ - #10 unshare_hek crash
+
+ - #7, #29 avoid re-blessing where possible. It fails in JSON::XS for
+ READONLY values, i.e. restricted hashes.
+
+ - #41 overloading of booleans, use the object not the reference.
+
+ - #62 -Dusequadmath conversion and no SEGV.
+
+ - #72 parsing of values followed \0, like 1\0 does fail.
+
+ - #72 parsing of illegal unicode or non-unicode characters.
+
+ - #96 locale-insensitive numeric conversion
+
+- public maintenance and bugtracker
+
+- use ppport.h, sanify XS.xs comment styles, harness C coding style
+
+- common::sense is optional. When available it is not used in the
+ published production module, just during development and testing.
+
+- extended testsuite, passes all http://seriot.ch/parsing_json.html
+ tests. In fact it is the only know JSON decoder which does so,
+ while also being the fastest.
+
+- support many more options and methods from JSON::PP:
+ stringify_infnan, allow_unknown, allow_stringify, allow_barekey,
+ encode_stringify, allow_bignum, allow_singlequote, sort_by
+ (partially), escape_slash, convert_blessed, ... optional
+ decode_json(, allow_nonref) arg.
+ relaxed implements allow_dupkeys.
+
+- support all 5 unicode BOM's: UTF-8, UTF-16LE, UTF-16BE, UTF-32LE,
+ UTF-32BE, encoding internally to UTF-8.
+
+=cut
-our $VERSION = 3.04;
our @ISA = qw(Exporter);
+our @EXPORT = qw(encode_json decode_json to_json from_json);
+
+sub to_json($@) {
+ if ($] >= 5.008) {
+ require Carp;
+ Carp::croak ("Cpanel::JSON::XS::to_json has been renamed to encode_json,".
+ " either downgrade to pre-2.0 versions of Cpanel::JSON::XS or".
+ " rename the call");
+ } else {
+ _to_json(@_);
+ }
+}
-our @EXPORT = qw(encode_json decode_json);
+sub from_json($@) {
+ if ($] >= 5.008) {
+ require Carp;
+ Carp::croak ("Cpanel::JSON::XS::from_json has been renamed to decode_json,".
+ " either downgrade to pre-2.0 versions of Cpanel::JSON::XS or".
+ " rename the call");
+ } else {
+ _from_json(@_);
+ }
+}
use Exporter;
use XSLoader;
-use Types::Serialiser ();
-
=head1 FUNCTIONAL INTERFACE
The following convenience methods are provided by this module. They are
@@ -120,28 +231,63 @@ exported by default:
=over 4
-=item $json_text = encode_json $perl_scalar
+=item $json_text = encode_json $perl_scalar, [json_type]
Converts the given Perl data structure to a UTF-8 encoded, binary string
(that is, the string contains octets only). Croaks on error.
This function call is functionally identical to:
- $json_text = JSON::XS->new->utf8->encode ($perl_scalar)
+ $json_text = Cpanel::JSON::XS->new->utf8->encode ($perl_scalar)
Except being faster.
-=item $perl_scalar = decode_json $json_text
+For the type argument see L<Cpanel::JSON::XS::Type>.
+
+=item $perl_scalar = decode_json $json_text [, $allow_nonref ]
-The opposite of C<encode_json>: expects an UTF-8 (binary) string and tries
-to parse that as an UTF-8 encoded JSON text, returning the resulting
-reference. Croaks on error.
+The opposite of C<encode_json>: expects an UTF-8 (binary) string of an
+json reference and tries to parse that as an UTF-8 encoded JSON text,
+returning the resulting reference. Croaks on error.
This function call is functionally identical to:
- $perl_scalar = JSON::XS->new->utf8->decode ($json_text)
+ $perl_scalar = Cpanel::JSON::XS->new->utf8->decode ($json_text)
-Except being faster.
+except being faster.
+
+Note that older decode_json versions in Cpanel::JSON::XS older than
+3.0116 and JSON::XS did not set allow_nonref but allowed them due to a
+bug in the decoder.
+
+If the new optional $allow_nonref argument is set and not false, the
+allow_nonref option will be set and the function will act is described
+as in the relaxed RFC 7159 allowing all values such as objects,
+arrays, strings, numbers, "null", "true", and "false".
+
+=item $is_boolean = Cpanel::JSON::XS::is_bool $scalar
+
+Returns true if the passed scalar represents either C<JSON::XS::true>
+or C<JSON::XS::false>, two constants that act like C<1> and C<0>,
+respectively and are used to represent JSON C<true> and C<false>
+values in Perl.
+
+See MAPPING, below, for more information on how JSON values are mapped
+to Perl.
+
+=back
+
+=head1 DEPRECATED FUNCTIONS
+
+=over
+
+=item from_json
+
+from_json has been renamed to decode_json
+
+=item to_json
+
+to_json has been renamed to encode_json
=back
@@ -161,33 +307,37 @@ Perl string - very natural.
=item 2. Perl does I<not> associate an encoding with your strings.
... until you force it to, e.g. when matching it against a regex, or
-printing the scalar to a file, in which case Perl either interprets your
-string as locale-encoded text, octets/binary, or as Unicode, depending
-on various settings. In no case is an encoding stored together with your
-data, it is I<use> that decides encoding, not any magical meta data.
+printing the scalar to a file, in which case Perl either interprets
+your string as locale-encoded text, octets/binary, or as Unicode,
+depending on various settings. In no case is an encoding stored
+together with your data, it is I<use> that decides encoding, not any
+magical meta data.
=item 3. The internal utf-8 flag has no meaning with regards to the
encoding of your string.
-Just ignore that flag unless you debug a Perl bug, a module written in
-XS or want to dive into the internals of perl. Otherwise it will only
-confuse you, as, despite the name, it says nothing about how your string
-is encoded. You can have Unicode strings with that flag set, with that
-flag clear, and you can have binary data with that flag set and that flag
-clear. Other possibilities exist, too.
+=item 4. A "Unicode String" is simply a string where each character
+can be validly interpreted as a Unicode code point.
+
+If you have UTF-8 encoded data, it is no longer a Unicode string, but
+a Unicode string encoded in UTF-8, giving you a binary string.
-If you didn't know about that flag, just the better, pretend it doesn't
-exist.
+=item 5. A string containing "high" (> 255) character values is I<not>
+a UTF-8 string.
-=item 4. A "Unicode String" is simply a string where each character can be
-validly interpreted as a Unicode code point.
+=item 6. Unicode noncharacters only warn, as in core.
-If you have UTF-8 encoded data, it is no longer a Unicode string, but a
-Unicode string encoded in UTF-8, giving you a binary string.
+The 66 Unicode noncharacters U+FDD0..U+FDEF, and U+*FFFE, U+*FFFF just
+warn, see L<http://www.unicode.org/versions/corrigendum9.html>. But
+illegal surrogate pairs fail to parse.
-=item 5. A string containing "high" (> 255) character values is I<not> a UTF-8 string.
+=item 7. Raw non-Unicode characters above U+10FFFF are disallowed.
-It's a fact. Learn to live with it.
+Raw non-Unicode characters outside the valid unicode range fail to
+parse, because "A string is a sequence of zero or more Unicode
+characters" RFC 7159 section 1 and "JSON text SHALL be encoded in
+Unicode RFC 7159 section 8.1. We use now the UTF8_DISALLOW_SUPER
+flag when parsing unicode.
=back
@@ -201,15 +351,15 @@ decoding style, within the limits of supported formats.
=over 4
-=item $json = new JSON::XS
+=item $json = new Cpanel::JSON::XS
-Creates a new JSON::XS object that can be used to de/encode JSON
+Creates a new JSON object that can be used to de/encode JSON
strings. All boolean flags described below are by default I<disabled>.
The mutators for flags all return the JSON object again and thus calls can
be chained:
- my $json = JSON::XS->new->utf8->space_after->encode ({a => [1,2]})
+ my $json = Cpanel::JSON::XS->new->utf8->space_after->encode ({a => [1,2]})
=> {"a": [1, 2]}
=item $json = $json->ascii ([$enable])
@@ -219,7 +369,7 @@ be chained:
If C<$enable> is true (or missing), then the C<encode> method will not
generate characters outside the code range C<0..127> (which is ASCII). Any
Unicode characters outside that range will be escaped using either a
-single \uXXXX (BMP characters) or a double \uHHHH\uLLLLL escape sequence,
+single C<\uXXXX> (BMP characters) or a double C<\uHHHH\uLLLLL> escape sequence,
as per RFC4627. The resulting encoded JSON text can be treated as a native
Unicode string, an ascii-encoded, latin1-encoded or UTF-8 encoded string,
or any other superset of ASCII.
@@ -235,7 +385,7 @@ The main use for this flag is to produce JSON texts that can be
transmitted over a 7-bit channel, as the encoded JSON texts will not
contain any 8 bit characters.
- JSON::XS->new->ascii (1)->encode ([chr 0x10401])
+ Cpanel::JSON::XS->new->ascii (1)->encode ([chr 0x10401])
=> ["\ud801\udc01"]
=item $json = $json->latin1 ([$enable])
@@ -243,7 +393,7 @@ contain any 8 bit characters.
=item $enabled = $json->get_latin1
If C<$enable> is true (or missing), then the C<encode> method will encode
-the resulting JSON text as latin1 (or iso-8859-1), escaping any characters
+the resulting JSON text as latin1 (or ISO-8859-1), escaping any characters
outside the code range C<0..255>. The resulting string can be treated as a
latin1-encoded JSON text or a native Unicode string. The C<decode> method
will not be affected in any way by this flag, as C<decode> by default
@@ -263,9 +413,62 @@ transferring), a rare encoding for JSON. It is therefore most useful when
you want to store data structures known to contain binary data efficiently
in files or databases, not when talking to other JSON encoders/decoders.
- JSON::XS->new->latin1->encode (["\x{89}\x{abc}"]
+ Cpanel::JSON::XS->new->latin1->encode (["\x{89}\x{abc}"]
=> ["\x{89}\\u0abc"] # (perl syntax, U+abc escaped, U+89 not)
+
+=item $json = $json->binary ([$enable])
+
+=item $enabled = $json = $json->get_binary
+
+If the C<$enable> argument is true (or missing), then the C<encode>
+method will not try to detect an UTF-8 encoding in any JSON string, it
+will strictly interpret it as byte sequence. The result might contain
+new C<\xNN> sequences, which is B<unparsable JSON>. The C<decode>
+method forbids C<\uNNNN> sequences and accepts C<\xNN> and octal
+C<\NNN> sequences.
+
+There is also a special logic for perl 5.6 and utf8. 5.6 encodes any
+string to utf-8 automatically when seeing a codepoint >= C<0x80> and
+< C<0x100>. With the binary flag enabled decode the perl utf8 encoded
+string to the original byte encoding and encode this with C<\xNN>
+escapes. This will result to the same encodings as with newer
+perls. But note that binary multi-byte codepoints with 5.6 will
+result in C<illegal unicode character in binary string> errors,
+unlike with newer perls.
+
+If C<$enable> is false, then the C<encode> method will smartly try to
+detect Unicode characters unless required by the JSON syntax or other
+flags and hex and octal sequences are forbidden.
+
+See also the section I<ENCODING/CODESET FLAG NOTES> later in this
+document.
+
+The main use for this flag is to avoid the smart unicode detection and
+possible double encoding. The disadvantage is that the resulting JSON
+text is encoded in new C<\xNN> and in latin1 characters and must
+correctly be treated as such when storing and transferring, a rare
+encoding for JSON. It will produce non-readable JSON strings in the
+browser. It is therefore most useful when you want to store data
+structures known to contain binary data efficiently in files or
+databases, not when talking to other JSON encoders/decoders. The
+binary decoding method can also be used when an encoder produced a
+non-JSON conformant hex or octal encoding C<\xNN> or C<\NNN>.
+
+ Cpanel::JSON::XS->new->binary->encode (["\x{89}\x{abc}"])
+ 5.6: Error: malformed or illegal unicode character in binary string
+ >=5.8: ['\x89\xe0\xaa\xbc']
+
+ Cpanel::JSON::XS->new->binary->encode (["\x{89}\x{bc}"])
+ => ["\x89\xbc"]
+
+ Cpanel::JSON::XS->new->binary->decode (["\x89\ua001"])
+ Error: malformed or illegal unicode character in binary string
+
+ Cpanel::JSON::XS->new->decode (["\x89"])
+ Error: illegal hex character in non-binary string
+
+
=item $json = $json->utf8 ([$enable])
=item $enabled = $json->get_utf8
@@ -289,12 +492,12 @@ document.
Example, output UTF-16BE-encoded JSON:
use Encode;
- $jsontext = encode "UTF-16BE", JSON::XS->new->encode ($object);
+ $jsontext = encode "UTF-16BE", Cpanel::JSON::XS->new->encode ($object);
Example, decode UTF-32LE-encoded JSON:
use Encode;
- $object = JSON::XS->new->decode (decode "UTF-32LE", $jsontext);
+ $object = Cpanel::JSON::XS->new->decode (decode "UTF-32LE", $jsontext);
=item $json = $json->pretty ([$enable])
@@ -304,7 +507,7 @@ generate the most readable (or most compact) form possible.
Example, pretty-print some simple structure:
- my $json = JSON::XS->new->pretty(1)->encode ({a => [1,2]})
+ my $json = Cpanel::JSON::XS->new->pretty(1)->encode ({a => [1,2]})
=>
{
"a" : [
@@ -313,19 +516,21 @@ Example, pretty-print some simple structure:
]
}
+
=item $json = $json->indent ([$enable])
=item $enabled = $json->get_indent
-If C<$enable> is true (or missing), then the C<encode> method will use a multiline
-format as output, putting every array member or object/hash key-value pair
-into its own line, indenting them properly.
+If C<$enable> is true (or missing), then the C<encode> method will use
+a multiline format as output, putting every array member or
+object/hash key-value pair into its own line, indenting them properly.
If C<$enable> is false, no newlines or indenting will be produced, and the
resulting JSON text is guaranteed not to contain any C<newlines>.
This setting has no effect when decoding JSON texts.
+
=item $json = $json->space_before ([$enable])
=item $enabled = $json->get_space_before
@@ -347,10 +552,10 @@ Example, space_before enabled, space_after and indent disabled:
=item $enabled = $json->get_space_after
-If C<$enable> is true (or missing), then the C<encode> method will add an extra
-optional space after the C<:> separating keys from values in JSON objects
-and extra whitespace after the C<,> separating key-value pairs and array
-members.
+If C<$enable> is true (or missing), then the C<encode> method will add
+an extra optional space after the C<:> separating keys from values in
+JSON objects and extra whitespace after the C<,> separating key-value
+pairs and array members.
If C<$enable> is false, then the C<encode> method will not add any extra
space at those places.
@@ -409,21 +614,46 @@ character, after which more white-space and comments are allowed.
=item * literal ASCII TAB characters in strings
Literal ASCII TAB characters are now allowed in strings (and treated as
-C<\t>).
+C<\t>) in relaxed mode. Despite JSON mandates, that TAB character is
+substituted for "\t" sequence.
[
"Hello\tWorld",
"Hello<TAB>World", # literal <TAB> would not normally be allowed
]
+=item * allow_singlequote
+
+Single quotes are accepted instead of double quotes. See the
+L</allow_singlequote> option.
+
+ { "foo":'bar' }
+ { 'foo':"bar" }
+ { 'foo':'bar' }
+
+=item * allow_barekey
+
+Accept unquoted object keys instead of with mandatory double quotes. See the
+L</allow_barekey> option.
+
+ { foo:"bar" }
+
+=item * duplicate keys
+
+With relaxed decoding of duplicate keys does not error and are silently accepted.
+See L<http://seriot.ch/parsing_json.php#24>:
+RFC 7159 section 4: "The names within an object should be unique."
+
=back
+
=item $json = $json->canonical ([$enable])
=item $enabled = $json->get_canonical
-If C<$enable> is true (or missing), then the C<encode> method will output JSON objects
-by sorting their keys. This is adding a comparatively high overhead.
+If C<$enable> is true (or missing), then the C<encode> method will
+output JSON objects by sorting their keys. This is adding a
+comparatively high overhead.
If C<$enable> is false, then the C<encode> method will output key-value
pairs in the order Perl stores them (which will likely change between runs
@@ -439,14 +669,99 @@ This setting has no effect when decoding JSON texts.
This setting has currently no effect on tied hashes.
+
+=item $json = $json->sort_by (undef, 0, 1 or a block)
+
+This currently only (un)sets the C<canonical> option, and ignores
+custom sort blocks.
+
+This setting has no effect when decoding JSON texts.
+
+This setting has currently no effect on tied hashes.
+
+
+=item $json = $json->escape_slash ([$enable])
+
+=item $enabled = $json->get_escape_slash
+
+According to the JSON Grammar, the I<forward slash> character (U+002F)
+C<"/"> need to be escaped. But by default strings are encoded without
+escaping slashes in all perl JSON encoders.
+
+If C<$enable> is true (or missing), then C<encode> will escape slashes,
+C<"\/">.
+
+This setting has no effect when decoding JSON texts.
+
+
+=item $json = $json->allow_singlequote ([$enable])
+
+=item $enabled = $json->get_allow_singlequote
+
+ $json = $json->allow_singlequote([$enable])
+
+If C<$enable> is true (or missing), then C<decode> will accept
+JSON strings quoted by single quotations that are invalid JSON
+format.
+
+ $json->allow_singlequote->decode({"foo":'bar'});
+ $json->allow_singlequote->decode({'foo':"bar"});
+ $json->allow_singlequote->decode({'foo':'bar'});
+
+This is also enabled with C<relaxed>.
+As same as the C<relaxed> option, this option may be used to parse
+application-specific files written by humans.
+
+
+=item $json = $json->allow_barekey ([$enable])
+
+=item $enabled = $json->get_allow_barekey
+
+ $json = $json->allow_barekey([$enable])
+
+If C<$enable> is true (or missing), then C<decode> will accept
+bare keys of JSON object that are invalid JSON format.
+
+Same as with the C<relaxed> option, this option may be used to parse
+application-specific files written by humans.
+
+ $json->allow_barekey->decode('{foo:"bar"}');
+
+=item $json = $json->allow_bignum ([$enable])
+
+=item $enabled = $json->get_allow_bignum
+
+ $json = $json->allow_bignum([$enable])
+
+If C<$enable> is true (or missing), then C<decode> will convert
+the big integer Perl cannot handle as integer into a L<Math::BigInt>
+object and convert a floating number (any) into a L<Math::BigFloat>.
+
+On the contrary, C<encode> converts C<Math::BigInt> objects and
+C<Math::BigFloat> objects into JSON numbers with C<allow_blessed>
+enable.
+
+ $json->allow_nonref->allow_blessed->allow_bignum;
+ $bigfloat = $json->decode('2.000000000000000000000000001');
+ print $json->encode($bigfloat);
+ # => 2.000000000000000000000000001
+
+See L</MAPPING> about the normal conversion of JSON number.
+
+
+=item $json = $json->allow_bigint ([$enable])
+
+This option is obsolete and replaced by allow_bignum.
+
+
=item $json = $json->allow_nonref ([$enable])
=item $enabled = $json->get_allow_nonref
-If C<$enable> is true (or missing), then the C<encode> method can convert a
-non-reference into its corresponding string, number or null JSON value,
-which is an extension to RFC4627. Likewise, C<decode> will accept those JSON
-values instead of croaking.
+If C<$enable> is true (or missing), then the C<encode> method can
+convert a non-reference into its corresponding string, number or null
+JSON value, which is an extension to RFC4627. Likewise, C<decode> will
+accept those JSON values instead of croaking.
If C<$enable> is false, then the C<encode> method will croak if it isn't
passed an arrayref or hashref, as JSON texts must either be an object
@@ -456,7 +771,7 @@ JSON object or array.
Example, encode a Perl scalar as JSON value with enabled C<allow_nonref>,
resulting in an invalid JSON text:
- JSON::XS->new->allow_nonref->encode ("Hello, World!")
+ Cpanel::JSON::XS->new->allow_nonref->encode ("Hello, World!")
=> "Hello, World!"
=item $json = $json->allow_unknown ([$enable])
@@ -475,19 +790,34 @@ exception when it encounters anything it cannot encode as JSON.
This option does not affect C<decode> in any way, and it is recommended to
leave it off unless you know your communications partner.
+=item $json = $json->allow_stringify ([$enable])
+
+=item $enabled = $json->get_allow_stringify
+
+If C<$enable> is true (or missing), then C<encode> will stringify the
+non-object perl value or reference. Note that blessed objects are not
+included here and are handled separately by C<allow_blessed> and
+C<convert_blessed>. String references are stringified to the string
+value, other references as in perl.
+
+This option does not affect C<decode> in any way.
+
+This option is special to this module, it is not supported by other
+encoders. So it is not recommended to use it.
+
=item $json = $json->allow_blessed ([$enable])
=item $enabled = $json->get_allow_blessed
-See L<OBJECT SERIALISATION> for details.
-
If C<$enable> is true (or missing), then the C<encode> method will not
-barf when it encounters a blessed reference that it cannot convert
-otherwise. Instead, a JSON C<null> value is encoded instead of the object.
+barf when it encounters a blessed reference. Instead, the value of the
+B<convert_blessed> option will decide whether C<null> (C<convert_blessed>
+disabled or no C<TO_JSON> method found) or a representation of the
+object (C<convert_blessed> enabled and C<TO_JSON> method found) is being
+encoded. Has no effect on C<decode>.
If C<$enable> is false (the default), then C<encode> will throw an
-exception when it encounters a blessed object that it cannot convert
-otherwise.
+exception when it encounters a blessed object.
This setting has no effect on C<decode>.
@@ -495,12 +825,13 @@ This setting has no effect on C<decode>.
=item $enabled = $json->get_convert_blessed
-See L<OBJECT SERIALISATION> for details.
-
If C<$enable> is true (or missing), then C<encode>, upon encountering a
blessed object, will check for the availability of the C<TO_JSON> method
-on the object's class. If found, it will be called in scalar context and
-the resulting scalar will be encoded instead of the object.
+on the object's class. If found, it will be called in scalar context
+and the resulting scalar will be encoded instead of the object. If no
+C<TO_JSON> method is found, a stringification overload method is tried next.
+If both are not found, the value of C<allow_blessed> will decide what
+to do.
The C<TO_JSON> method may safely call die if it wants. If C<TO_JSON>
returns other blessed objects, those will be handled in the same
@@ -517,16 +848,16 @@ This setting has no effect on C<decode>.
=item $json = $json->allow_tags ([$enable])
-=item $enabled = $json->allow_tags
+=item $enabled = $json->get_allow_tags
-See L<OBJECT SERIALISATION> for details.
+See L<OBJECT SERIALIZATION> for details.
If C<$enable> is true (or missing), then C<encode>, upon encountering a
blessed object, will check for the availability of the C<FREEZE> method on
-the object's class. If found, it will be used to serialise the object into
+the object's class. If found, it will be used to serialize the object into
a nonstandard tagged JSON value (that JSON decoders cannot decode).
-It also causes C<decode> to parse such tagged JSON values and deserialise
+It also causes C<decode> to parse such tagged JSON values and deserialize
them via a call to the C<THAW> method.
If C<$enable> is false (the default), then C<encode> will not consider
@@ -539,18 +870,18 @@ When C<$coderef> is specified, it will be called from C<decode> each
time it decodes a JSON object. The only argument is a reference to the
newly-created hash. If the code references returns a single scalar (which
need not be a reference), this value (i.e. a copy of that scalar to avoid
-aliasing) is inserted into the deserialised data structure. If it returns
+aliasing) is inserted into the deserialized data structure. If it returns
an empty list (NOTE: I<not> C<undef>, which is a valid scalar), the
-original deserialised hash will be inserted. This setting can slow down
+original deserialized hash will be inserted. This setting can slow down
decoding considerably.
When C<$coderef> is omitted or undefined, any existing callback will
-be removed and C<decode> will not change the deserialised hash in any
+be removed and C<decode> will not change the deserialized hash in any
way.
Example, convert all JSON objects into the integer 5:
- my $js = JSON::XS->new->filter_json_object (sub { 5 });
+ my $js = Cpanel::JSON::XS->new->filter_json_object (sub { 5 });
# returns [5]
$js->decode ('[{}]')
# throw an exception because allow_nonref is not enabled
@@ -574,11 +905,11 @@ disabled. There can only ever be one callback for a given key.
As this callback gets called less often then the C<filter_json_object>
one, decoding speed will not usually suffer as much. Therefore, single-key
-objects make excellent targets to serialise Perl objects into, especially
+objects make excellent targets to serialize Perl objects into, especially
as single-key JSON objects are as close to the type-tagged value concept
as JSON gets (it's basically an ID/VALUE tuple). Of course, JSON does not
support this in any way, so you need to make sure your data never looks
-like a serialised Perl hash.
+like a serialized Perl hash.
Typical names for the single object key are C<__class_whatever__>, or
C<$__dollars_are_rarely_used__$> or C<}ugly_brace_placement>, or even
@@ -589,7 +920,7 @@ Example, decode JSON objects of the form C<< { "__widget__" => <id> } >>
into the corresponding C<< $WIDGET{<id>} >> object:
# return whatever is in $WIDGET{5}:
- JSON::XS
+ Cpanel::JSON::XS
->new
->filter_json_single_key_object (__widget__ => sub {
$WIDGET{ $_[0] }
@@ -597,7 +928,7 @@ into the corresponding C<< $WIDGET{<id>} >> object:
->decode ('{"__widget__": 5')
# this can be used with a TO_JSON method in some "widget" class
- # for serialisation to json:
+ # for serialization to json:
sub WidgetBase::TO_JSON {
my ($self) = @_;
@@ -676,18 +1007,47 @@ effect on C<encode> (yet).
If no argument is given, the limit check will be deactivated (same as when
C<0> is specified).
-See SECURITY CONSIDERATIONS, below, for more info on why this is useful.
+See L</SECURITY CONSIDERATIONS>, below, for more info on why this is useful.
+
+=item $json->stringify_infnan ([$infnan_mode = 1])
+
+=item $infnan_mode = $json->get_stringify_infnan
+
+Get or set how Cpanel::JSON::XS encodes C<inf>, C<-inf> or C<nan> for numeric
+values. Also qnan, snan or negative nan on some platforms.
+
+C<null>: infnan_mode = 0. Similar to most JSON modules in other languages.
+Always null.
+
+stringified: infnan_mode = 1. As in Mojo::JSON. Platform specific strings.
+Stringified via sprintf(%g), with double quotes.
+
+inf/nan: infnan_mode = 2. As in JSON::XS, and older releases.
+Passes through platform dependent values, invalid JSON. Stringified via
+sprintf(%g), but without double quotes.
+
+"inf/-inf/nan": infnan_mode = 3. Platform independent inf/nan/-inf
+strings. No QNAN/SNAN/negative NAN support, unified to "nan". Much
+easier to detect, but may conflict with valid strings.
=item $json_text = $json->encode ($perl_scalar)
-Converts the given Perl value or data structure to its JSON
-representation. Croaks on error.
+Converts the given Perl data structure (a simple scalar or a reference
+to a hash or array) to its JSON representation. Simple scalars will be
+converted into JSON string or number sequences, while references to
+arrays become JSON arrays and references to hashes become JSON
+objects. Undefined Perl values (e.g. C<undef>) become JSON C<null>
+values. Neither C<true> nor C<false> values will be generated.
=item $perl_scalar = $json->decode ($json_text)
The opposite of C<encode>: expects a JSON text and tries to parse it,
returning the resulting simple scalar or reference. Croaks on error.
+JSON numbers and strings become simple Perl scalars. JSON arrays become
+Perl arrayrefs and JSON objects become Perl hashrefs. C<true> becomes
+C<1>, C<false> becomes C<0> and C<null> becomes C<undef>.
+
=item ($perl_scalar, $characters) = $json->decode_prefix ($json_text)
This works like the C<decode> method, but instead of raising an exception
@@ -698,9 +1058,17 @@ so far.
This is useful if your JSON texts are not delimited by an outer protocol
and you need to know where the JSON text ends.
- JSON::XS->new->decode_prefix ("[1] the tail")
+ Cpanel::JSON::XS->new->decode_prefix ("[1] the tail")
=> ([1], 3)
+=item $json->to_json ($perl_hash_or_arrayref)
+
+Deprecated method for perl 5.8 and newer. Use L<encode_json> instead.
+
+=item $json->from_json ($utf8_encoded_json_text)
+
+Deprecated method for perl 5.8 and newer. Use L<decode_json> instead.
+
=back
@@ -715,14 +1083,14 @@ using C<decode_prefix> to see if a full JSON object is available, but
is much more efficient (and can be implemented with a minimum of method
calls).
-JSON::XS will only attempt to parse the JSON text once it is sure it
-has enough text to get a decisive result, using a very simple but
-truly incremental parser. This means that it sometimes won't stop as
-early as the full parser, for example, it doesn't detect mismatched
-parentheses. The only thing it guarantees is that it starts decoding as
-soon as a syntactically valid JSON text has been seen. This means you need
-to set resource limits (e.g. C<max_size>) to ensure the parser will stop
-parsing in the presence if syntax errors.
+Cpanel::JSON::XS will only attempt to parse the JSON text once it is
+sure it has enough text to get a decisive result, using a very simple
+but truly incremental parser. This means that it sometimes won't stop
+as early as the full parser, for example, it doesn't detect mismatched
+parentheses. The only thing it guarantees is that it starts decoding
+as soon as a syntactically valid JSON text has been seen. This means
+you need to set resource limits (e.g. C<max_size>) to ensure the
+parser will stop parsing in the presence if syntax errors.
The following methods implement this incremental parser.
@@ -750,30 +1118,28 @@ using the method.
And finally, in list context, it will try to extract as many objects
from the stream as it can find and return them, or the empty list
-otherwise. For this to work, there must be no separators (other than
-whitespace) between the JSON objects or arrays, instead they must be
-concatenated back-to-back. If an error occurs, an exception will be
-raised as in the scalar context case. Note that in this case, any
-previously-parsed JSON texts will be lost.
+otherwise. For this to work, there must be no separators between the JSON
+objects or arrays, instead they must be concatenated back-to-back. If
+an error occurs, an exception will be raised as in the scalar context
+case. Note that in this case, any previously-parsed JSON texts will be
+lost.
Example: Parse some JSON arrays/objects in a given string and return
them.
- my @objs = JSON::XS->new->incr_parse ("[5][7][1,2]");
+ my @objs = Cpanel::JSON::XS->new->incr_parse ("[5][7][1,2]");
-=item $lvalue_string = $json->incr_text
+=item $lvalue_string = $json->incr_text (>5.8 only)
This method returns the currently stored JSON fragment as an lvalue, that
is, you can manipulate it. This I<only> works when a preceding call to
-C<incr_parse> in I<scalar context> successfully returned an object. Under
-all other circumstances you must not call this function (I mean it.
-although in simple tests it might actually work, it I<will> fail under
-real world conditions). As a special exception, you can also call this
-method before having parsed anything.
+C<incr_parse> in I<scalar context> successfully returned an object, and
+2. only with Perl >= 5.8
-That means you can only use this function to look at or manipulate text
-before or after complete JSON objects, not while the parser is in the
-middle of parsing a JSON object.
+Under all other circumstances you must not call this function (I mean
+it. although in simple tests it might actually work, it I<will> fail
+under real world conditions). As a special exception, you can also
+call this method before having parsed anything.
This function is useful in two cases: a) finding the trailing text after a
JSON object or b) parsing multiple JSON objects separated by non-JSON text
@@ -806,13 +1172,14 @@ each successful decode.
All options that affect decoding are supported, except
C<allow_nonref>. The reason for this is that it cannot be made to work
sensibly: JSON objects and arrays are self-delimited, i.e. you can
-concatenate them back to back and still decode them perfectly. This does
-not hold true for JSON numbers, however.
+concatenate them back to back and still decode them perfectly. This
+does not hold true for JSON numbers, however.
-For example, is the string C<1> a single JSON number, or is it simply the
-start of C<12>? Or is C<12> a single JSON number, or the concatenation
-of C<1> and C<2>? In neither case you can tell, and this is why JSON::XS
-takes the conservative route and disallows this case.
+For example, is the string C<1> a single JSON number, or is it simply
+the start of C<12>? Or is C<12> a single JSON number, or the
+concatenation of C<1> and C<2>? In neither case you can tell, and this
+is why Cpanel::JSON::XS takes the conservative route and disallows
+this case.
=head2 EXAMPLES
@@ -822,7 +1189,7 @@ the start of a string and identify the portion after the JSON object:
my $text = "[1,2,3] hello";
- my $json = new JSON::XS;
+ my $json = new Cpanel::JSON::XS;
my $obj = $json->incr_parse ($text)
or die "expected JSON object or array at beginning of string";
@@ -842,7 +1209,7 @@ with C<telnet>...).
Here is how you'd do it (it is trivial to write this in an event-based
manner):
- my $json = new JSON::XS;
+ my $json = new Cpanel::JSON::XS;
# read some data from the socket
while (sysread $socket, my $buf, 4096) {
@@ -859,7 +1226,7 @@ or arrays, all separated by (optional) comma characters (e.g. C<[1],[2],
and here is where the lvalue-ness of C<incr_text> comes in useful:
my $text = "[1],[2], [3]";
- my $json = new JSON::XS;
+ my $json = new Cpanel::JSON::XS;
# void context, so no parsing done
$json->incr_parse ($text);
@@ -878,13 +1245,13 @@ JSON array-of-objects, many gigabytes in size, and you want to parse it,
but you cannot load it into memory fully (this has actually happened in
the real world :).
-Well, you lost, you have to implement your own JSON parser. But JSON::XS
-can still help you: You implement a (very simple) array parser and let
-JSON decode the array elements, which are all full JSON objects on their
-own (this wouldn't work if the array elements could be JSON numbers, for
-example):
+Well, you lost, you have to implement your own JSON parser. But
+Cpanel::JSON::XS can still help you: You implement a (very simple)
+array parser and let JSON decode the array elements, which are all
+full JSON objects on their own (this wouldn't work if the array
+elements could be JSON numbers, for example):
- my $json = new JSON::XS;
+ my $json = new Cpanel::JSON::XS;
# open the monster
open my $fh, "<bigfile.json"
@@ -950,14 +1317,38 @@ This is a complex example, but most of the complexity comes from the fact
that we are trying to be correct (bear with me if I am wrong, I never ran
the above example :).
+=head1 BOM
+
+Detect all unicode B<Byte Order Marks> on decode.
+Which are UTF-8, UTF-16LE, UTF-16BE, UTF-32LE and UTF-32BE.
+
+B<Warning>: With perls older than 5.20 you need load the Encode module
+before loading a multibyte BOM, i.e. >= UTF-16. Otherwise an error is
+thrown. This is an implementation limitation and might get fixed later.
+
+See L<https://tools.ietf.org/html/rfc7159#section-8.1>
+I<"JSON text SHALL be encoded in UTF-8, UTF-16, or UTF-32.">
+
+I<"Implementations MUST NOT add a byte order mark to the beginning of a
+JSON text", "implementations (...) MAY ignore the presence of a byte
+order mark rather than treating it as an error".>
+
+See also L<http://www.unicode.org/faq/utf_bom.html#BOM>.
+
+Beware that Cpanel::JSON::XS is currently the only JSON module which
+does accept and decode a BOM.
+The latest JSON spec
+L<https://www.greenbytes.de/tech/webdav/rfc8259.html#character.encoding>
+forbid the usage of UTF-16 or UTF-32, the character encoding is UTF-8.
+Thus in subsequent updates BOM's of UTF-16 or UTF-32 will throw an error.
=head1 MAPPING
-This section describes how JSON::XS maps Perl values to JSON values and
-vice versa. These mappings are designed to "do the right thing" in most
-circumstances automatically, preserving round-tripping characteristics
-(what you put in comes out as something equivalent).
+This section describes how Cpanel::JSON::XS maps Perl values to JSON
+values and vice versa. These mappings are designed to "do the right
+thing" in most circumstances automatically, preserving round-tripping
+characteristics (what you put in comes out as something equivalent).
For the more enlightened: note that in the following descriptions,
lowercase I<perl> refers to the Perl interpreter, while uppercase I<Perl>
@@ -991,30 +1382,41 @@ the Perl level, there is no difference between those as Perl handles all
the conversion details, but an integer may take slightly less memory and
might represent more values exactly than floating point numbers.
-If the number consists of digits only, JSON::XS will try to represent
-it as an integer value. If that fails, it will try to represent it as
-a numeric (floating point) value if that is possible without loss of
-precision. Otherwise it will preserve the number as a string value (in
-which case you lose roundtripping ability, as the JSON number will be
-re-encoded to a JSON string).
+If the number consists of digits only, Cpanel::JSON::XS will try to
+represent it as an integer value. If that fails, it will try to
+represent it as a numeric (floating point) value if that is possible
+without loss of precision. Otherwise it will preserve the number as a
+string value (in which case you lose roundtripping ability, as the
+JSON number will be re-encoded to a JSON string).
Numbers containing a fractional or exponential part will always be
represented as numeric (floating point) values, possibly at a loss of
precision (in which case you might lose perfect roundtripping ability, but
the JSON number will still be re-encoded as a JSON number).
-Note that precision is not accuracy - binary floating point values cannot
-represent most decimal fractions exactly, and when converting from and to
-floating point, JSON::XS only guarantees precision up to but not including
-the least significant bit.
+Note that precision is not accuracy - binary floating point values
+cannot represent most decimal fractions exactly, and when converting
+from and to floating point, C<Cpanel::JSON::XS> only guarantees precision
+up to but not including the least significant bit.
=item true, false
-These JSON atoms become C<Types::Serialiser::true> and
-C<Types::Serialiser::false>, respectively. They are overloaded to act
-almost exactly like the numbers C<1> and C<0>. You can check whether
-a scalar is a JSON boolean by using the C<Types::Serialiser::is_bool>
-function (after C<use Types::Serialier>, of course).
+These JSON atoms become C<Cpanel::JSON::XS::true> and
+C<Cpanel::JSON::XS::false>, respectively. They are C<JSON::PP::Boolean>
+objects and are overloaded to act almost exactly like the numbers C<1>
+and C<0>. You can check whether a scalar is a JSON boolean by using
+the C<Cpanel::JSON::XS::is_bool> function.
+
+The other round, from perl to JSON, C<!0> which is represented as
+C<yes> becomes C<true>, and C<!1> which is represented as
+C<no> becomes C<false>.
+
+Via L<Cpanel::JSON::XS::Type> you can now even force negation in C<encode>,
+without overloading of C<!>:
+
+ my $false = Cpanel::JSON::XS::false;
+ print($json->encode([!$false], [JSON_TYPE_BOOL]));
+ => [true]
=item null
@@ -1033,7 +1435,7 @@ C<allow_tags> setting, are tagged values. In this implementation, the
I<tag> must be a perl package/class name encoded as a JSON string, and the
I<value> must be a JSON array encoding optional constructor arguments.
-See L<OBJECT SERIALISATION>, below, for details.
+See L<OBJECT SERIALIZATION>, below, for details.
=back
@@ -1048,13 +1450,15 @@ a Perl value.
=item hash references
-Perl hash references become JSON objects. As there is no inherent
-ordering in hash keys (or JSON objects), they will usually be encoded
-in a pseudo-random order. JSON::XS can optionally sort the hash keys
-(determined by the I<canonical> flag), so the same datastructure will
-serialise to the same JSON text (given same settings and version of
-JSON::XS), but this incurs a runtime overhead and is only rarely useful,
-e.g. when you want to compare some JSON text against another for equality.
+Perl hash references become JSON objects. As there is no inherent ordering
+in hash keys (or JSON objects), they will usually be encoded in a
+pseudo-random order that can change between runs of the same program but
+stays generally the same within a single run of a program. Cpanel::JSON::XS can
+optionally sort the hash keys (determined by the I<canonical> flag), so
+the same datastructure will serialize to the same JSON text (given same
+settings and version of Cpanel::JSON::XS), but this incurs a runtime overhead
+and is only rarely useful, e.g. when you want to compare some JSON text
+against another for equality.
=item array references
@@ -1064,46 +1468,71 @@ Perl array references become JSON arrays.
Other unblessed references are generally not allowed and will cause an
exception to be thrown, except for references to the integers C<0> and
-C<1>, which get turned into C<false> and C<true> atoms in JSON.
+C<1>, which get turned into C<false> and C<true> atoms in JSON.
+
+With the option C<allow_stringify>, you can ignore the exception and return
+the stringification of the perl value.
+
+With the option C<allow_unknown>, you can ignore the exception and
+return C<null> instead.
-Since C<JSON::XS> uses the boolean model from L<Types::Serialiser>, you
-can also C<use Types::Serialiser> and then use C<Types::Serialiser::false>
-and C<Types::Serialiser::true> to improve readability.
+ encode_json [\"x"] # => cannot encode reference to scalar 'SCALAR(0x..)'
+ # unless the scalar is 0 or 1
+ encode_json [\0, \1] # yields [false,true]
- use Types::Serialiser;
- encode_json [\0, Types::Serialiser::true] # yields [false,true]
+ allow_stringify->encode_json [\"x"] # yields "x" unlike JSON::PP
+ allow_unknown->encode_json [\"x"] # yields null as in JSON::PP
-=item Types::Serialiser::true, Types::Serialiser::false
+=item Cpanel::JSON::XS::true, Cpanel::JSON::XS::false
-These special values from the L<Types::Serialiser> module become JSON true
-and JSON false values, respectively. You can also use C<\1> and C<\0>
+These special values become JSON true and JSON false values,
+respectively. You can also use C<\1> and C<\0> or C<!0> and C<!1>
directly if you want.
+ encode_json [Cpanel::JSON::XS::true, Cpanel::JSON::XS::true] # yields [false,true]
+ encode_json [!1, !0] # yields [false,true]
+
=item blessed objects
-Blessed objects are not directly representable in JSON, but C<JSON::XS>
-allows various ways of handling objects. See L<OBJECT SERIALISATION>,
-below, for details.
+Blessed objects are not directly representable in JSON, but
+C<Cpanel::JSON::XS> allows various optional ways of handling
+objects. See L<OBJECT SERIALIZATION>, below, for details.
+
+See the C<allow_blessed> and C<convert_blessed> methods on various
+options on how to deal with this: basically, you can choose between
+throwing an exception, encoding the reference as if it weren't
+blessed, use the objects overloaded stringification method or provide
+your own serializer method.
=item simple scalars
Simple Perl scalars (any scalar that is not a reference) are the most
-difficult objects to encode: JSON::XS will encode undefined scalars as
-JSON C<null> values, scalars that have last been used in a string context
-before encoding as JSON strings, and anything else as number value:
+difficult objects to encode: Cpanel::JSON::XS will encode undefined
+scalars or inf/nan as JSON C<null> values, scalars that have last been
+used in a string context before encoding as JSON strings, and anything
+else as number value:
# dump as number
encode_json [2] # yields [2]
encode_json [-3.0e17] # yields [-3e+17]
my $value = 5; encode_json [$value] # yields [5]
- # used as string, so dump as string
+ # used as string, but the two representations are for the same number
print $value;
- encode_json [$value] # yields ["5"]
+ encode_json [$value] # yields [5]
+
+ # used as different string (non-matching dual-var)
+ my $str = '0 but true';
+ my $num = 1 + $str;
+ encode_json [$num, $str] # yields [1,"0 but true"]
# undef becomes null
encode_json [undef] # yields [null]
+ # inf or nan becomes null, unless you answered
+ # "Do you want to handle inf/nan as strings" with yes
+ encode_json [9**9**9] # yields [null]
+
You can force the type to be a JSON string by stringifying it:
my $x = 3.1; # some variable containing a number
@@ -1117,43 +1546,40 @@ You can force the type to be a JSON number by numifying it:
$x += 0; # numify it, ensuring it will be dumped as a number
$x *= 1; # same thing, the choice is yours.
-You can not currently force the type in other, less obscure, ways. Tell me
-if you need this capability (but don't forget to explain why it's needed
-:).
-
Note that numerical precision has the same meaning as under Perl (so
binary to decimal conversion follows the same rules as in Perl, which
can differ to other languages). Also, your perl interpreter might expose
extensions to the floating point numbers of your platform, such as
-infinities or NaN's - these cannot be represented in JSON, and it is an
-error to pass those in.
+infinities or NaN's - these cannot be represented in JSON, and thus
+null is returned instead. Optionally you can configure it to stringify
+inf and nan values.
=back
-=head2 OBJECT SERIALISATION
+=head2 OBJECT SERIALIZATION
As JSON cannot directly represent Perl objects, you have to choose between
-a pure JSON representation (without the ability to deserialise the object
+a pure JSON representation (without the ability to deserialize the object
automatically again), and a nonstandard extension to the JSON syntax,
tagged values.
-=head3 SERIALISATION
+=head3 SERIALIZATION
-What happens when C<JSON::XS> encounters a Perl object depends on the
-C<allow_blessed>, C<convert_blessed> and C<allow_tags> settings, which are
-used in this order:
+What happens when C<Cpanel::JSON::XS> encounters a Perl object depends
+on the C<allow_blessed>, C<convert_blessed> and C<allow_tags>
+settings, which are used in this order:
=over 4
=item 1. C<allow_tags> is enabled and the object has a C<FREEZE> method.
-In this case, C<JSON::XS> uses the L<Types::Serialiser> object
-serialisation protocol to create a tagged JSON value, using a nonstandard
+In this case, C<Cpanel::JSON::XS> uses the L<Types::Serialiser> object
+serialization protocol to create a tagged JSON value, using a nonstandard
extension to the JSON syntax.
This works by invoking the C<FREEZE> method on the object, with the first
-argument being the object to serialise, and the second argument being the
-constant string C<JSON> to distinguish it from other serialisers.
+argument being the object to serialize, and the second argument being the
+constant string C<JSON> to distinguish it from other serializers.
The C<FREEZE> method can return any number of values (i.e. zero or
more). These values and the paclkage/classname of the object will then be
@@ -1171,7 +1597,7 @@ For example, the hypothetical C<My::Object> C<FREEZE> method might use the
objects C<type> and C<id> members to encode the object:
sub My::Object::FREEZE {
- my ($self, $serialiser) = @_;
+ my ($self, $serializer) = @_;
($self->{type}, $self->{id})
}
@@ -1183,7 +1609,7 @@ context. It must return a single scalar that can be directly encoded into
JSON. This scalar replaces the object in the JSON text.
For example, the following C<TO_JSON> method will convert all L<URI>
-objects to JSON strings when serialised. The fatc that these values
+objects to JSON strings when serialized. The fact that these values
originally were L<URI> objects is lost.
sub URI::TO_JSON {
@@ -1191,22 +1617,35 @@ originally were L<URI> objects is lost.
$uri->as_string
}
+=item 2. C<convert_blessed> is enabled and the object has a stringification overload.
+
+In this case, the overloaded C<""> method of the object is invoked in scalar
+context. It must return a single scalar that can be directly encoded into
+JSON. This scalar replaces the object in the JSON text.
+
+For example, the following C<""> method will convert all L<URI>
+objects to JSON strings when serialized. The fact that these values
+originally were L<URI> objects is lost.
+
+ package URI;
+ use overload '""' => sub { shift->as_string };
+
=item 3. C<allow_blessed> is enabled.
-The object will be serialised as a JSON null value.
+The object will be serialized as a JSON null value.
=item 4. none of the above
If none of the settings are enabled or the respective methods are missing,
-C<JSON::XS> throws an exception.
+C<Cpanel::JSON::XS> throws an exception.
=back
-=head3 DESERIALISATION
+=head3 DESERIALIZATION
-For deserialisation there are only two cases to consider: either
+For deserialization there are only two cases to consider: either
nonstandard tagging was used, in which case C<allow_tags> decides,
-or objects cannot be automatically be deserialised, in which
+or objects cannot be automatically be deserialized, in which
case you can use postprocessing or the C<filter_json_object> or
C<filter_json_single_key_object> callbacks to get some real objects our of
your JSON.
@@ -1215,8 +1654,8 @@ This section only considers the tagged value case: I a tagged JSON object
is encountered during decoding and C<allow_tags> is disabled, a parse
error will result (as if tagged values were not part of the grammar).
-If C<allow_tags> is enabled, C<JSON::XS> will look up the C<THAW> method
-of the package/classname used during serialisation (it will not attempt
+If C<allow_tags> is enabled, C<Cpanel::JSON::XS> will look up the C<THAW> method
+of the package/classname used during serialization (it will not attempt
to load the package as a Perl module). If there is no such method, the
decoding will fail with an error.
@@ -1233,17 +1672,22 @@ As an example, let's implement a C<THAW> function that regenerates the
C<My::Object> from the C<FREEZE> example earlier:
sub My::Object::THAW {
- my ($class, $serialiser, $type, $id) = @_;
+ my ($class, $serializer, $type, $id) = @_;
$class->new (type => $type, id => $id)
}
+See the L</SECURITY CONSIDERATIONS> section below. Allowing external
+json objects being deserialized to perl objects is usually a very bad
+idea.
+
=head1 ENCODING/CODESET FLAG NOTES
The interested reader might have seen a number of flags that signify
-encodings or codesets - C<utf8>, C<latin1> and C<ascii>. There seems to be
-some confusion on what these do, so here is a short comparison:
+encodings or codesets - C<utf8>, C<latin1>, C<binary> and
+C<ascii>. There seems to be some confusion on what these do, so here
+is a short comparison:
C<utf8> controls whether the JSON text created by C<encode> (and expected
by C<decode>) is UTF-8 encoded or not, while C<latin1> and C<ascii> only
@@ -1294,11 +1738,12 @@ The C<utf8> flag therefore switches between two modes: disabled means you
will get a Unicode string in Perl, enabled means you get an UTF-8 encoded
octet/binary string in Perl.
-=item C<latin1> or C<ascii> flags enabled
+=item C<latin1>, C<binary> or C<ascii> flags enabled
-With C<latin1> (or C<ascii>) enabled, C<encode> will escape characters
-with ordinal values > 255 (> 127 with C<ascii>) and encode the remaining
-characters as specified by the C<utf8> flag.
+With C<latin1> (or C<ascii>) enabled, C<encode> will escape
+characters with ordinal values > 255 (> 127 with C<ascii>) and encode
+the remaining characters as specified by the C<utf8> flag.
+With C<binary> enabled, ordinal values > 255 are illegal.
If C<utf8> is disabled, then the result is also correctly encoded in those
character sets (as both are proper subsets of Unicode, meaning that a
@@ -1320,11 +1765,13 @@ values as governed by the C<utf8> flag. If it is disabled, this allows you
to decode ISO-8859-1- and ASCII-encoded strings, as both strict subsets of
Unicode. If it is enabled, you can correctly decode UTF-8 encoded strings.
-So neither C<latin1> nor C<ascii> are incompatible with the C<utf8> flag -
-they only govern when the JSON output engine escapes a character or not.
+So neither C<latin1>, C<binary> nor C<ascii> are incompatible with the
+C<utf8> flag - they only govern when the JSON output engine escapes a
+character or not.
-The main use for C<latin1> is to relatively efficiently store binary data
-as JSON, at the expense of breaking compatibility with most JSON decoders.
+The main use for C<latin1> or C<binary> is to relatively efficiently
+store binary data as JSON, at the expense of breaking compatibility
+with most JSON decoders.
The main use for C<ascii> is to force the output to not contain characters
with values > 127, which means you can interpret the resulting string
@@ -1340,7 +1787,7 @@ proper subset of most 8-bit and multibyte encodings in use in the world.
=head2 JSON and ECMAscript
JSON syntax is based on how literals are represented in javascript (the
-not-standardised predecessor of ECMAscript) which is presumably why it is
+not-standardized predecessor of ECMAscript) which is presumably why it is
called "JavaScript Object Notation".
However, JSON is not a subset (and also not a superset of course) of
@@ -1356,7 +1803,7 @@ JSON strings, but are not allowed in ECMAscript string literals, so the
following Perl fragment will not output something that can be guaranteed
to be parsable by javascript's C<eval>:
- use JSON::XS;
+ use Cpanel::JSON::XS;
print encode_json [chr 0x2028];
@@ -1367,16 +1814,16 @@ F<json2.js> parser).
If this is not an option, you can, as a stop-gap measure, simply encode to
ASCII-only JSON:
- use JSON::XS;
+ use Cpanel::JSON::XS;
- print JSON::XS->new->ascii->encode ([chr 0x2028]);
+ print Cpanel::JSON::XS->new->ascii->encode ([chr 0x2028]);
Note that this will enlarge the resulting JSON text quite a bit if you
have many non-ASCII characters. You might be tempted to run some regexes
to only escape U+2028 and U+2029, e.g.:
# DO NOT USE THIS!
- my $json = JSON::XS->new->utf8->encode ([chr 0x2028]);
+ my $json = Cpanel::JSON::XS->new->utf8->encode ([chr 0x2028]);
$json =~ s/\xe2\x80\xa8/\\u2028/g; # escape U+2028
$json =~ s/\xe2\x80\xa9/\\u2029/g; # escape U+2029
print $json;
@@ -1399,67 +1846,33 @@ output for these property strings, e.g.:
This works because C<__proto__> is not valid outside of strings, so every
occurrence of C<"__proto__"\s*:> must be a string used as property name.
+Unicode non-characters between U+FFFD and U+10FFFF are decoded either
+to the recommended U+FFFD REPLACEMENT CHARACTER (see Unicode PR #121:
+Recommended Practice for Replacement Characters), or in the binary or
+relaxed mode left as is, keeping the illegal non-characters as before.
+
+Raw non-Unicode characters outside the valid unicode range fail now to
+parse, because "A string is a sequence of zero or more Unicode
+characters" RFC 7159 section 1 and "JSON text SHALL be encoded in
+Unicode RFC 7159 section 8.1. We use now the UTF8_DISALLOW_SUPER
+flag when parsing unicode.
+
If you know of other incompatibilities, please let me know.
=head2 JSON and YAML
-You often hear that JSON is a subset of YAML. This is, however, a mass
-hysteria(*) and very far from the truth (as of the time of this writing),
-so let me state it clearly: I<in general, there is no way to configure
-JSON::XS to output a data structure as valid YAML> that works in all
-cases.
-
-If you really must use JSON::XS to generate YAML, you should use this
-algorithm (subject to change in future versions):
+You often hear that JSON is a subset of YAML. I<in general, there is
+no way to configure JSON::XS to output a data structure as valid YAML>
+that works in all cases. If you really must use Cpanel::JSON::XS to
+generate YAML, you should use this algorithm (subject to change in
+future versions):
- my $to_yaml = JSON::XS->new->utf8->space_after (1);
+ my $to_yaml = Cpanel::JSON::XS->new->utf8->space_after (1);
my $yaml = $to_yaml->encode ($ref) . "\n";
This will I<usually> generate JSON texts that also parse as valid
-YAML. Please note that YAML has hardcoded limits on (simple) object key
-lengths that JSON doesn't have and also has different and incompatible
-unicode character escape syntax, so you should make sure that your hash
-keys are noticeably shorter than the 1024 "stream characters" YAML allows
-and that you do not have characters with codepoint values outside the
-Unicode BMP (basic multilingual page). YAML also does not allow C<\/>
-sequences in strings (which JSON::XS does not I<currently> generate, but
-other JSON generators might).
-
-There might be other incompatibilities that I am not aware of (or the YAML
-specification has been changed yet again - it does so quite often). In
-general you should not try to generate YAML with a JSON generator or vice
-versa, or try to parse JSON with a YAML parser or vice versa: chances are
-high that you will run into severe interoperability problems when you
-least expect it.
-
-=over 4
-
-=item (*)
-
-I have been pressured multiple times by Brian Ingerson (one of the
-authors of the YAML specification) to remove this paragraph, despite him
-acknowledging that the actual incompatibilities exist. As I was personally
-bitten by this "JSON is YAML" lie, I refused and said I will continue to
-educate people about these issues, so others do not run into the same
-problem again and again. After this, Brian called me a (quote)I<complete
-and worthless idiot>(unquote).
-
-In my opinion, instead of pressuring and insulting people who actually
-clarify issues with YAML and the wrong statements of some of its
-proponents, I would kindly suggest reading the JSON spec (which is not
-that difficult or long) and finally make YAML compatible to it, and
-educating users about the changes, instead of spreading lies about the
-real compatibility for many I<years> and trying to silence people who
-point out that it isn't true.
-
-Addendum/2009: the YAML 1.2 spec is still incompatible with JSON, even
-though the incompatibilities have been documented (and are known to Brian)
-for many years and the spec makes explicit claims that YAML is a superset
-of JSON. It would be so easy to fix, but apparently, bullying people and
-corrupting userdata is so much easier.
-
-=back
+YAML.
=head2 SPEED
@@ -1469,6 +1882,12 @@ tables. They have been generated with the help of the C<eg/bench> program
in the JSON::XS distribution, to make it easy to compare on your own
system.
+JSON::XS is with L<Data::MessagePack> and L<Sereal> one of the fastest
+serializers, because JSON and JSON::XS do not support backrefs (no
+graph structures), only trees. Storable supports backrefs,
+i.e. graphs. Data::MessagePack encodes its data binary (as Storable)
+and supports only very simple subset of JSON.
+
First comes a comparison between various modules using
a very short single-line JSON string (also available at
L<http://dist.schmorp.de/misc/json/short.json>).
@@ -1478,9 +1897,9 @@ L<http://dist.schmorp.de/misc/json/short.json>).
1, 0]}
It shows the number of encodes/decodes per second (JSON::XS uses
-the functional interface, while JSON::XS/2 uses the OO interface
-with pretty-printing and hashkey sorting enabled, JSON::XS/3 enables
-shrink. JSON::DWIW/DS uses the deserialise function, while JSON::DWIW::FJ
+the functional interface, while Cpanel::JSON::XS/2 uses the OO interface
+with pretty-printing and hash key sorting enabled, Cpanel::JSON::XS/3 enables
+shrink. JSON::DWIW/DS uses the deserialize function, while JSON::DWIW::FJ
uses the from_json method). Higher is better:
module | encode | decode |
@@ -1524,125 +1943,58 @@ will be broken due to missing (or wrong) Unicode handling. Others refuse
to decode or encode properly, so it was impossible to prepare a fair
comparison table for that case.
+For updated graphs see L<https://github.com/Sereal/Sereal/wiki/Sereal-Comparison-Graphs>
-=head1 SECURITY CONSIDERATIONS
-When you are using JSON in a protocol, talking to untrusted potentially
-hostile creatures requires relatively few measures.
+=head1 INTEROP with JSON and JSON::XS and other JSON modules
-First of all, your JSON decoder should be secure, that is, should not have
-any buffer overflows. Obviously, this module should ensure that and I am
-trying hard on making that true, but you never know.
+As long as you only serialize data that can be directly expressed in
+JSON, C<Cpanel::JSON::XS> is incapable of generating invalid JSON
+output (modulo bugs, but C<JSON::XS> has found more bugs in the
+official JSON testsuite (1) than the official JSON testsuite has found
+in C<JSON::XS> (0)).
+C<Cpanel::JSON::XS> is currently the only known JSON decoder which passes all
+L<http://seriot.ch/parsing_json.html> tests, while being the fastest also.
-Second, you need to avoid resource-starving attacks. That means you should
-limit the size of JSON texts you accept, or make sure then when your
-resources run out, that's just fine (e.g. by using a separate process that
-can crash safely). The size of a JSON text in octets or characters is
-usually a good indication of the size of the resources required to decode
-it into a Perl structure. While JSON::XS can check the size of the JSON
-text, it might be too late when you already have it in memory, so you
-might want to check the size before you accept the string.
-
-Third, JSON::XS recurses using the C stack when decoding objects and
-arrays. The C stack is a limited resource: for instance, on my amd64
-machine with 8MB of stack size I can decode around 180k nested arrays but
-only 14k nested JSON objects (due to perl itself recursing deeply on croak
-to free the temporary). If that is exceeded, the program crashes. To be
-conservative, the default nesting limit is set to 512. If your process
-has a smaller stack, you should adjust this setting accordingly with the
-C<max_depth> method.
-
-Something else could bomb you, too, that I forgot to think of. In that
-case, you get to keep the pieces. I am always open for hints, though...
-
-Also keep in mind that JSON::XS might leak contents of your Perl data
-structures in its error messages, so when you serialise sensitive
-information you might want to make sure that exceptions thrown by JSON::XS
-will not end up in front of untrusted eyes.
-
-If you are using JSON::XS to return packets to consumption
-by JavaScript scripts in a browser you should have a look at
-L<http://blog.archive.jpsykes.com/47/practical-csrf-and-json-security/> to
-see whether you are vulnerable to some common attack vectors (which really
-are browser design bugs, but it is still you who will have to deal with
-it, as major browser developers care only for features, not about getting
-security right).
-
-
-=head1 "OLD" VS. "NEW" JSON (RFC 4627 VS. RFC 7159)
-
-TL;DR: Due to security concerns, JSON::XS will not allow scalar data in
-JSON texts by default - you need to create your own JSON::XS object and
-enable C<allow_nonref>:
-
-
- my $json = JSON::XS->new->allow_nonref;
-
- $text = $json->encode ($data);
- $data = $json->decode ($text);
-
-The long version: JSON being an important and supposedly stable format,
-the IETF standardised it as RFC 4627 in 2006. Unfortunately, the inventor
-of JSON, Dougles Crockford, unilaterally changed the definition of JSON in
-javascript. Rather than create a fork, the IETF decided to standardise the
-new syntax (apparently, so Iw as told, without finding it very amusing).
-
-The biggest difference between thed original JSON and the new JSON is that
-the new JSON supports scalars (anything other than arrays and objects) at
-the toplevel of a JSON text. While this is strictly backwards compatible
-to older versions, it breaks a number of protocols that relied on sending
-JSON back-to-back, and is a minor security concern.
-
-For example, imagine you have two banks communicating, and on one side,
-trhe JSON coder gets upgraded. Two messages, such as C<10> and C<1000>
-might then be confused to mean C<101000>, something that couldn't happen
-in the original JSON, because niether of these messages would be valid
-JSON.
+When you have trouble decoding JSON generated by this module using other
+decoders, then it is very likely that you have an encoding mismatch or the
+other decoder is broken.
-If one side accepts these messages, then an upgrade in the coder on either
-side could result in this becoming exploitable.
+When decoding, C<JSON::XS> is strict by default and will likely catch
+all errors. There are currently two settings that change this:
+C<relaxed> makes C<JSON::XS> accept (but not generate) some
+non-standard extensions, and C<allow_tags> or C<allow_blessed> will
+allow you to encode and decode Perl objects, at the cost of being
+totally insecure and not outputting valid JSON anymore.
-This module has always allowed these messages as an optional extension, by
-default disabled. The security concerns are the reason why the default is
-still disabled, but future versions might/will likely upgrade to the newer
-RFC as default format, so you are advised to check your implementation
-and/or override the default with C<< ->allow_nonref (0) >> to ensure that
-future versions are safe.
+JSON-XS-3.01 broke interoperability with JSON-2.90 with booleans. See L<JSON>.
+Cpanel::JSON::XS needs to know the JSON and JSON::XS versions to be able work
+with those objects, especially when encoding a booleans like C<{"is_true":true}>.
+So you need to load these modules before.
-=head1 INTEROPERABILITY WITH OTHER MODULES
+true/false overloading and boolean representations are supported.
-C<JSON::XS> uses the L<Types::Serialiser> module to provide boolean
-constants. That means that the JSON true and false values will be
-comaptible to true and false values of other modules that do the same,
-such as L<JSON::PP> and L<CBOR::XS>.
+JSON::XS and JSON::PP representations are accepted and older JSON::XS
+accepts Cpanel::JSON::XS booleans. All JSON modules JSON, JSON, PP,
+JSON::XS, Cpanel::JSON::XS produce JSON::PP::Boolean objects, just
+Mojo and JSON::YAJL not. Mojo produces Mojo::JSON::_Bool and
+JSON::YAJL::Parser just an unblessed IV.
+Cpanel::JSON::XS accepts JSON::PP::Boolean and Mojo::JSON::_Bool
+objects as booleans.
-=head1 INTEROPERABILITY WITH OTHER JSON DECODERS
+I cannot think of any reason to still use JSON::XS anymore.
-As long as you only serialise data that can be directly expressed in JSON,
-C<JSON::XS> is incapable of generating invalid JSON output (modulo bugs,
-but C<JSON::XS> has found more bugs in the official JSON testsuite (1)
-than the official JSON testsuite has found in C<JSON::XS> (0)).
-
-When you have trouble decoding JSON generated by this module using other
-decoders, then it is very likely that you have an encoding mismatch or the
-other decoder is broken.
-
-When decoding, C<JSON::XS> is strict by default and will likely catch all
-errors. There are currently two settings that change this: C<relaxed>
-makes C<JSON::XS> accept (but not generate) some non-standard extensions,
-and C<allow_tags> will allow you to encode and decode Perl objects, at the
-cost of not outputting valid JSON anymore.
=head2 TAGGED VALUE SYNTAX AND STANDARD JSON EN/DECODERS
-When you use C<allow_tags> to use the extended (and also nonstandard and
-invalid) JSON syntax for serialised objects, and you still want to decode
-the generated When you want to serialise objects, you can run a regex
-to replace the tagged syntax by standard JSON arrays (it only works for
-"normal" package names without comma, newlines or single colons). First,
-the readable Perl version:
+When you use C<allow_tags> to use the extended (and also nonstandard
+and invalid) JSON syntax for serialized objects, and you still want to
+decode the generated serialize objects, you can run a regex to replace
+the tagged syntax by standard JSON arrays (it only works for "normal"
+package names without comma, newlines or single colons). First, the
+readable Perl version:
# if your FREEZE methods return no values, you need this replace first:
$json =~ s/\( \s* (" (?: [^\\":,]+|\\.|::)* ") \s* \) \s* \[\s*\]/[$1]/gx;
@@ -1660,7 +2012,7 @@ Here is an ECMAScript version (same regex):
json = json.replace (/\(\s*("([^\\":,]+|\\.|::)*")\s*\)\s*\[/g, "[$1,");
Since this syntax converts to standard JSON arrays, it might be hard to
-distinguish serialised objects from normal arrays. You can prepend a
+distinguish serialized objects from normal arrays. You can prepend a
"magic number" as first array element to reduce chances of a collision:
$json =~ s/\(\s*("([^\\":,]+|\\.|::)*")\s*\)\s*\[/["XU1peReLzT4ggEllLanBYq4G9VzliwKF",$1,/g;
@@ -1697,65 +2049,230 @@ follow RFC7159, but application authors are well advised to call C<<
handle non-reference values, in preparation for the day when the default
will change.
+=head1 SECURITY CONSIDERATIONS
+
+JSON::XS and Cpanel::JSON::XS are not only fast. JSON is generally the
+most secure serializing format, because it is the only one besides
+Data::MessagePack, which does not deserialize objects per default. For
+all languages, not just perl. The binary variant BSON (MongoDB) does
+more but is unsafe.
+
+It is trivial for any attacker to create such serialized objects in
+JSON and trick perl into expanding them, thereby triggering certain
+methods. Watch L<https://www.youtube.com/watch?v=Gzx6KlqiIZE> for an
+exploit demo for "CVE-2015-1592 SixApart MovableType Storable Perl
+Code Execution" for a deserializer which expands objects.
+Deserializing even coderefs (methods, functions) or external
+data would be considered the most dangerous.
+
+Security relevant overview of serializers regarding deserializing
+objects by default:
+
+ Objects Coderefs External Data
+
+ Data::Dumper YES YES YES
+ Storable YES NO (def) NO
+ Sereal YES NO NO
+ YAML YES NO NO
+ B::C YES YES YES
+ B::Bytecode YES YES YES
+ BSON YES YES NO
+ JSON::SL YES NO YES
+ JSON NO (def) NO NO
+ Data::MessagePack NO NO NO
+ XML NO NO YES
+
+ Pickle YES YES YES
+ PHP Deserialize YES NO NO
+
+When you are using JSON in a protocol, talking to untrusted potentially
+hostile creatures requires relatively few measures.
+
+First of all, your JSON decoder should be secure, that is, should not have
+any buffer overflows. Obviously, this module should ensure that.
+
+Second, you need to avoid resource-starving attacks. That means you should
+limit the size of JSON texts you accept, or make sure then when your
+resources run out, that's just fine (e.g. by using a separate process that
+can crash safely). The size of a JSON text in octets or characters is
+usually a good indication of the size of the resources required to decode
+it into a Perl structure. While JSON::XS can check the size of the JSON
+text, it might be too late when you already have it in memory, so you
+might want to check the size before you accept the string.
+
+Third, Cpanel::JSON::XS recurses using the C stack when decoding objects and
+arrays. The C stack is a limited resource: for instance, on my amd64
+machine with 8MB of stack size I can decode around 180k nested arrays but
+only 14k nested JSON objects (due to perl itself recursing deeply on croak
+to free the temporary). If that is exceeded, the program crashes. To be
+conservative, the default nesting limit is set to 512. If your process
+has a smaller stack, you should adjust this setting accordingly with the
+C<max_depth> method.
+
+Also keep in mind that Cpanel::JSON::XS might leak contents of your Perl data
+structures in its error messages, so when you serialize sensitive
+information you might want to make sure that exceptions thrown by JSON::XS
+will not end up in front of untrusted eyes.
+
+If you are using Cpanel::JSON::XS to return packets to consumption
+by JavaScript scripts in a browser you should have a look at
+L<http://blog.archive.jpsykes.com/47/practical-csrf-and-json-security/> to
+see whether you are vulnerable to some common attack vectors (which really
+are browser design bugs, but it is still you who will have to deal with
+it, as major browser developers care only for features, not about getting
+security right). You might also want to also look at L<Mojo::JSON>
+special escape rules to prevent from XSS attacks.
-=head1 (I-)THREADS
+=head1 "OLD" VS. "NEW" JSON (RFC 4627 VS. RFC 7159)
+
+TL;DR: Due to security concerns, Cpanel::JSON::XS will not allow
+scalar data in JSON texts by default - you need to create your own
+Cpanel::JSON::XS object and enable C<allow_nonref>:
+
+
+ my $json = JSON::XS->new->allow_nonref;
-This module is I<not> guaranteed to be ithread (or MULTIPLICITY-) safe
-and there are no plans to change this. Note that perl's builtin so-called
-theeads/ithreads are officially deprecated and should not be used.
+ $text = $json->encode ($data);
+ $data = $json->decode ($text);
+The long version: JSON being an important and supposedly stable format,
+the IETF standardized it as RFC 4627 in 2006. Unfortunately the inventor
+of JSON Douglas Crockford unilaterally changed the definition of JSON in
+javascript. Rather than create a fork, the IETF decided to standardize the
+new syntax (apparently, so I as told, without finding it very amusing).
-=head1 THE PERILS OF SETLOCALE
+The biggest difference between the original JSON and the new JSON is that
+the new JSON supports scalars (anything other than arrays and objects) at
+the top-level of a JSON text. While this is strictly backwards compatible
+to older versions, it breaks a number of protocols that relied on sending
+JSON back-to-back, and is a minor security concern.
-Sometimes people avoid the Perl locale support and directly call the
-system's setlocale function with C<LC_ALL>.
+For example, imagine you have two banks communicating, and on one side,
+the JSON coder gets upgraded. Two messages, such as C<10> and C<1000>
+might then be confused to mean C<101000>, something that couldn't happen
+in the original JSON, because neither of these messages would be valid
+JSON.
-This breaks both perl and modules such as JSON::XS, as stringification of
-numbers no longer works correctly (e.g. C<$x = 0.1; print "$x"+1> might
-print C<1>, and JSON::XS might output illegal JSON as JSON::XS relies on
-perl to stringify numbers).
+If one side accepts these messages, then an upgrade in the coder on either
+side could result in this becoming exploitable.
-The solution is simple: don't call C<setlocale>, or use it for only those
-categories you need, such as C<LC_MESSAGES> or C<LC_CTYPE>.
+This module has always allowed these messages as an optional extension, by
+default disabled. The security concerns are the reason why the default is
+still disabled, but future versions might/will likely upgrade to the newer
+RFC as default format, so you are advised to check your implementation
+and/or override the default with C<< ->allow_nonref (0) >> to ensure that
+future versions are safe.
-If you need C<LC_NUMERIC>, you should enable it only around the code that
-actually needs it (avoiding stringification of numbers), and restore it
-afterwards.
+=head1 THREADS
+Cpanel::JSON::XS has proper ithreads support, unlike JSON::XS. If you
+encounter any bugs with thread support please report them.
=head1 BUGS
-While the goal of this module is to be correct, that unfortunately does
-not mean it's bug-free, only that I think its design is bug-free. If you
-keep reporting bugs they will be fixed swiftly, though.
+While the goal of the Cpanel::JSON::XS module is to be correct, that
+unfortunately does not mean it's bug-free, only that the author thinks
+its design is bug-free. If you keep reporting bugs and tests they will
+be fixed swiftly, though.
+
+Since the JSON::XS author refuses to use a public bugtracker and
+prefers private emails, we've setup a tracker at RT, so you might want
+to report any issues twice. Once in private to MLEHMANN to be fixed in
+JSON::XS and one to our the public tracker. Issues fixed by JSON::XS
+with a new release will also be backported to Cpanel::JSON::XS and
+5.6.2, as long as cPanel relies on 5.6.2 and Cpanel::JSON::XS as our
+serializer of choice.
+
+L<https://rt.cpan.org/Public/Dist/Display.html?Queue=Cpanel-JSON-XS>
+
+=head1 LICENSE
-Please refrain from using rt.cpan.org or any other bug reporting
-service. I put the contact address into my modules for a reason.
+This module is available under the same licences as perl, the Artistic
+license and the GPL.
=cut
+sub allow_bigint {
+ Carp::carp("allow_bigint() is obsoleted. use allow_bignum() instead.");
+}
+
+BEGIN {
+ package
+ JSON::PP::Boolean;
+
+ require overload;
+
+ local $^W; # silence redefine warnings. no warnings 'redefine' does not help
+ &overload::import( 'overload', # workaround 5.6 reserved keyword warning
+ "0+" => sub { ${$_[0]} },
+ "++" => sub { $_[0] = ${$_[0]} + 1 },
+ "--" => sub { $_[0] = ${$_[0]} - 1 },
+ '""' => sub { ${$_[0]} == 1 ? '1' : '0' }, # GH 29
+ 'eq' => sub {
+ my ($obj, $op) = ref ($_[0]) ? ($_[0], $_[1]) : ($_[1], $_[0]);
+ if ($op eq 'true' or $op eq 'false') {
+ return "$obj" eq '1' ? 'true' eq $op : 'false' eq $op;
+ }
+ else {
+ return $obj ? 1 == $op : 0 == $op;
+ }
+ },
+ fallback => 1);
+}
+
+our ($true, $false);
+BEGIN {
+ if ($INC{'JSON/XS.pm'}
+ and $INC{'Types/Serialiser.pm'}
+ and $JSON::XS::VERSION ge "3.00") {
+ $true = $Types::Serialiser::true; # readonly if loaded by JSON::XS
+ $false = $Types::Serialiser::false;
+ } else {
+ $true = do { bless \(my $dummy = 1), "JSON::PP::Boolean" };
+ $false = do { bless \(my $dummy = 0), "JSON::PP::Boolean" };
+ }
+}
+
BEGIN {
- *true = \$Types::Serialiser::true;
- *true = \&Types::Serialiser::true;
- *false = \$Types::Serialiser::false;
- *false = \&Types::Serialiser::false;
- *is_bool = \&Types::Serialiser::is_bool;
+ my $const_true = $true;
+ my $const_false = $false;
+ *true = sub () { $const_true };
+ *false = sub () { $const_false };
+}
- *JSON::XS::Boolean:: = *Types::Serialiser::Boolean::;
+sub is_bool($) {
+ shift if @_ == 2; # as method call
+ (ref($_[0]) and UNIVERSAL::isa( $_[0], JSON::PP::Boolean::))
+ or (exists $INC{'Types/Serialiser.pm'} and Types::Serialiser::is_bool($_[0]))
}
-XSLoader::load "JSON::XS", $VERSION;
+XSLoader::load 'Cpanel::JSON::XS', $XS_VERSION;
+
+1;
=head1 SEE ALSO
-The F<json_xs> command line utility for quick experiments.
+The F<cpanel_json_xs> command line utility for quick experiments.
+
+L<JSON>, L<JSON::XS>, L<JSON::MaybeXS>, L<Mojo::JSON>, L<Mojo::JSON::MaybeXS>,
+L<JSON::SL>, L<JSON::DWIW>, L<JSON::YAJL>, L<JSON::Any>, L<Test::JSON>,
+L<Locale::Wolowitz>,
+L<https://metacpan.org/search?q=JSON>
+
+L<https://tools.ietf.org/html/rfc7159>
+
+L<https://tools.ietf.org/html/rfc4627>
+
=head1 AUTHOR
- Marc Lehmann <schmorp@schmorp.de>
- http://home.schmorp.de/
+Reini Urban <rurban@cpan.org>
-=cut
+Marc Lehmann <schmorp@schmorp.de>, http://home.schmorp.de/
+
+=head1 MAINTAINER
-1
+Reini Urban <rurban@cpan.org>
+
+=cut
diff --git a/Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Boolean.pm b/Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Boolean.pm
new file mode 100755
index 00000000000..5b2bf4f48a8
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Boolean.pm
@@ -0,0 +1,29 @@
+=head1 NAME
+
+Cpanel::JSON::XS::Boolean - true and false values
+
+=head1 SYNOPSIS
+
+ # do not "use" yourself
+
+See L<Cpanel::JSON::XS/"true, false">
+
+=head1 DESCRIPTION
+
+This module exists only to provide overload resolution for Storable
+and similar modules and interop with L<JSON::XS> booleans. See
+L<Cpanel::JSON::XS> for more info about this class.
+
+=cut
+
+use Cpanel::JSON::XS ();
+
+1;
+
+=head1 AUTHOR
+
+ Marc Lehmann <schmorp@schmorp.de>
+ http://home.schmorp.de/
+
+=cut
+
diff --git a/Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Type.pm b/Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Type.pm
new file mode 100755
index 00000000000..57c172c0695
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/Cpanel/JSON/XS/Type.pm
@@ -0,0 +1,219 @@
+package Cpanel::JSON::XS::Type;
+
+=pod
+
+=head1 NAME
+
+Cpanel::JSON::XS::Type - Type support for JSON encode
+
+=head1 SYNOPSIS
+
+ use Cpanel::JSON::XS;
+ use Cpanel::JSON::XS::Type
+
+ encode_json([10, "10", 10.25], [JSON_TYPE_INT, JSON_TYPE_INT, JSON_TYPE_STRING]);
+ # '[10,10,"10.25"]'
+
+ encode_json([10, "10", 10.25], json_type_arrayof(JSON_TYPE_INT));
+ # '[10,10,10]'
+
+ encode_json(1, JSON_TYPE_BOOL);
+ # 'true'
+
+ my $perl_struct = { key1 => 1, key2 => "2", key3 => 1 };
+ my $type_spec = { key1 => JSON_TYPE_STRING, key2 => JSON_TYPE_INT, key3 => JSON_TYPE_BOOL };
+ my $json_string = encode_json($perl_struct, $type_spec);
+ # '{"key1":"1","key2":2,"key3":true}'
+
+ my $perl_struct = { key1 => "value1", key2 => "value2", key3 => 0, key4 => 1, key5 => "string", key6 => "string2" };
+ my $type_spec = json_type_hashof(JSON_TYPE_STRING);
+ my $json_string = encode_json($perl_struct, $type_spec);
+ # '{"key1":"value1","key2":"value2","key3":"0","key4":"1","key5":"string","key6":"string2"}'
+
+ my $perl_struct = { key1 => { key2 => [ 10, "10", 10.6 ] }, key3 => "10.5" };
+ my $type_spec = { key1 => json_type_anyof(JSON_TYPE_FLOAT, json_type_hashof(json_type_arrayof(JSON_TYPE_INT))), key3 => JSON_TYPE_FLOAT };
+ my $json_string = encode_json($perl_struct, $type_spec);
+ # '{"key1":{"key2":[10,10,10]},"key3":10.5}'
+
+=head1 DESCRIPTION
+
+This module provides stable JSON type support for the
+L<Cpanel::JSON::XS|Cpanel::JSON::XS> encoder which doesn't depend on
+any internal perl scalar flags or characteristics.
+
+In most cases perl structures passed to
+L<encode_json|Cpanel::JSON::XS/encode_json> come from other functions
+or from other modules and caller of Cpanel::JSON::XS module does not
+have control of internals or they are subject of change. So it is not
+easy to support enforcing types as described in the
+L<simple scalars|Cpanel::JSON::XS/simple scalars> section.
+
+The function L<encode_json|Cpanel::JSON::XS/encode_json> takes a perl
+structure as its input and optionally also a json type specification in
+the second parameter.
+
+If the specification is not provided (or is undef) internal perl
+scalar flags are used for the resulting JSON type. The internal flags
+can be changed by perl itself, but also by external modules. Which
+means that types in resulting JSON string aren't stable. Specially it
+does not work reliable for dual vars and scalars which were used in
+both numeric and string operations. See L<simple
+scalars|Cpanel::JSON::XS/simple scalars>.
+
+=head2 JSON type specification for scalars:
+
+=over 4
+
+=item JSON_TYPE_BOOL
+
+It enforces JSON boolean in resulting JSON, i.e. either C<true> or
+C<false>. For determining whether the scalar passed to the encoder
+is true, standard perl boolean logic is used.
+
+=item JSON_TYPE_INT
+
+It enforces JSON number without fraction part in the resulting JSON.
+Equivalent of perl function L<int|perlfunc/int> is used for conversion.
+
+=item JSON_TYPE_FLOAT
+
+It enforces JSON number with fraction part in the resulting JSON.
+Equivalent of perl operation C<+0> is used for conversion.
+
+=item JSON_TYPE_STRING
+
+It enforces JSON string type in the resulting JSON.
+
+=back
+
+For each type, there also exists a type with the suffix C<_OR_NULL>
+which encodes perl's C<undef> into JSON C<null>. Without type with
+suffix C<_OR_NULL> perl's C<undef> is converted to specific type
+according to above rules.
+
+=head2 JSON type specification for arrays:
+
+=over 4
+
+=item [...]
+
+The array must contain the same number of elements as in the perl
+array passed for encoding. Each element of the array describes the
+JSON type which is enforced for the corresponding element of the
+perl array.
+
+=item json_type_arrayof
+
+This function takes a JSON type specification as its argument which
+is enforced for every element of the passed perl array.
+
+=back
+
+=head2 JSON type specification for hashes:
+
+=over 4
+
+=item {...}
+
+Each hash value for corresponding key describes the JSON type
+specification for values of passed perl hash structure. Keys in hash
+which are not present in passed perl hash structure are simple
+ignored and not used.
+
+=item json_type_hashof
+
+This function takes a JSON type specification as its argument which
+is enforced for every value of passed perl hash structure.
+
+=back
+
+=head2 JSON type specification for alternatives:
+
+=over 4
+
+=item json_type_anyof
+
+This function takes a list of JSON type alternative specifications
+(maximally one scalar, one array, and one hash) as its input and the
+JSON encoder chooses one that matches.
+
+=item json_type_null_or_anyof
+
+Like L<C<json_type_anyof>|/json_type_anyof>, but scalar can be only
+perl's C<undef>.
+
+=back
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright (c) 2017, GoodData Corporation. All rights reserved.
+
+This module is available under the same licences as perl, the Artistic
+license and the GPL.
+
+=cut
+
+use strict;
+use warnings;
+
+# This exports needed XS constants to perl
+use Cpanel::JSON::XS ();
+
+use Exporter;
+our @ISA = qw(Exporter);
+our @EXPORT = our @EXPORT_OK = qw(
+ json_type_arrayof
+ json_type_hashof
+ json_type_anyof
+ json_type_null_or_anyof
+ JSON_TYPE_BOOL
+ JSON_TYPE_INT
+ JSON_TYPE_FLOAT
+ JSON_TYPE_STRING
+ JSON_TYPE_BOOL_OR_NULL
+ JSON_TYPE_INT_OR_NULL
+ JSON_TYPE_FLOAT_OR_NULL
+ JSON_TYPE_STRING_OR_NULL
+ JSON_TYPE_ARRAYOF_CLASS
+ JSON_TYPE_HASHOF_CLASS
+ JSON_TYPE_ANYOF_CLASS
+);
+
+sub json_type_anyof {
+ my ($scalar, $array, $hash);
+ foreach (@_) {
+ my $type = ref($_);
+ if ($type eq '') {
+ die 'Only one scalar type can be specified in anyof' if defined $scalar;
+ $scalar = $_;
+ } elsif ($type eq 'ARRAY' or $type eq JSON_TYPE_ARRAYOF_CLASS) {
+ die 'Only one array type can be specified in anyof' if defined $array;
+ $array = $_;
+ } elsif ($type eq 'HASH' or $type eq JSON_TYPE_HASHOF_CLASS) {
+ die 'Only one hash type can be specified in anyof' if defined $hash;
+ $hash = $_;
+ } else {
+ die 'Only scalar, array or hash can be specified in anyof';
+ }
+ }
+ return bless [$scalar, $array, $hash], JSON_TYPE_ANYOF_CLASS;
+}
+
+sub json_type_null_or_anyof {
+ foreach (@_) {
+ die 'Scalar cannot be specified in null_or_anyof' if ref($_) eq '';
+ }
+ return json_type_anyof(JSON_TYPE_CAN_BE_NULL, @_);
+}
+
+sub json_type_arrayof {
+ die 'Exactly one type must be specified in arrayof' if scalar @_ != 1;
+ return bless \(my $type = $_[0]), JSON_TYPE_ARRAYOF_CLASS;
+}
+
+sub json_type_hashof {
+ die 'Exactly one type must be specified in hashof' if scalar @_ != 1;
+ return bless \(my $type = $_[0]), JSON_TYPE_HASHOF_CLASS;
+}
+
+1;
diff --git a/Master/tlpkg/tlperl/site/lib/File/Which.pm b/Master/tlpkg/tlperl/site/lib/File/Which.pm
index 7c547fb7500..d02ef5fd714 100644
--- a/Master/tlpkg/tlperl/site/lib/File/Which.pm
+++ b/Master/tlpkg/tlperl/site/lib/File/Which.pm
@@ -6,7 +6,7 @@ use Exporter ();
use File::Spec ();
# ABSTRACT: Perl implementation of the which utility as an API
-our $VERSION = '1.21'; # VERSION
+our $VERSION = '1.22'; # VERSION
our @ISA = 'Exporter';
@@ -16,7 +16,7 @@ our @EXPORT_OK = 'where';
use constant IS_VMS => ($^O eq 'VMS');
use constant IS_MAC => ($^O eq 'MacOS');
use constant IS_DOS => ($^O eq 'MSWin32' or $^O eq 'dos' or $^O eq 'os2');
-use constant IS_CYG => ($^O eq 'cygwin');
+use constant IS_CYG => ($^O eq 'cygwin' || $^O eq 'msys');
# For Win32 systems, stores the extensions used for
# executable files
@@ -146,7 +146,7 @@ File::Which - Perl implementation of the which utility as an API
=head1 VERSION
-version 1.21
+version 1.22
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Config.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Config.pm
index 50d95958a00..3da0e5dc88a 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Config.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Config.pm
@@ -3,9 +3,9 @@ package HTTP::Config;
use strict;
use warnings;
-use URI;
+our $VERSION = '6.14';
-our $VERSION = "6.11";
+use URI;
sub new {
my $class = shift;
@@ -235,12 +235,18 @@ sub matching_items {
1;
-__END__
+=pod
+
+=encoding UTF-8
=head1 NAME
HTTP::Config - Configuration for request and response objects
+=head1 VERSION
+
+version 6.14
+
=head1 SYNOPSIS
use HTTP::Config;
@@ -293,7 +299,7 @@ You can either pass separate key/value pairs or a hash reference.
=item $conf->remove( %spec )
Removes (and returns) the entries that have matches for all the key/value pairs in %spec.
-If %spec is empty this will match all entries; so it will empty the configuation object.
+If %spec is empty this will match all entries; so it will empty the configuration object.
=item $conf->matching( $uri, $request, $response )
@@ -428,11 +434,21 @@ Matches if the response object has that key, or the entry has the given value.
L<URI>, L<HTTP::Request>, L<HTTP::Response>
-=head1 COPYRIGHT
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
-Copyright 2008, Gisle Aas
+=head1 COPYRIGHT AND LICENSE
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
=cut
+
+__END__
+
+
+#ABSTRACT: Configuration for request and response objects
+
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Cookies.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Cookies.pm
index 98bd7421012..dcbeba64d27 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Cookies.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Cookies.pm
@@ -1,11 +1,11 @@
package HTTP::Cookies;
-$HTTP::Cookies::VERSION = '6.03';
+
use strict;
use HTTP::Date qw(str2time parse_date time2str);
use HTTP::Headers::Util qw(_split_header_words join_header_words);
-use vars qw($VERSION $EPOCH_OFFSET);
-$VERSION = "6.01";
+use vars qw($EPOCH_OFFSET);
+our $VERSION = '6.04';
# Legacy: because "use "HTTP::Cookies" used be the ONLY way
# to load the class HTTP::Cookies::Netscape.
@@ -632,7 +632,7 @@ HTTP::Cookies - HTTP cookie jars
=head1 VERSION
-version 6.03
+version 6.04
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm
index bffa587adf9..737da2829fa 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Microsoft.pm
@@ -1,10 +1,10 @@
package HTTP::Cookies::Microsoft;
-$HTTP::Cookies::Microsoft::VERSION = '6.03';
+
use strict;
-use vars qw(@ISA $VERSION);
+use vars qw(@ISA);
-$VERSION = "6.01";
+our $VERSION = '6.04';
require HTTP::Cookies;
@ISA=qw(HTTP::Cookies);
@@ -246,7 +246,7 @@ HTTP::Cookies::Microsoft - Access to Microsoft cookies files
=head1 VERSION
-version 6.03
+version 6.04
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm
index 180d5ff8116..8fbac888499 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Cookies/Netscape.pm
@@ -1,9 +1,9 @@
package HTTP::Cookies::Netscape;
-$HTTP::Cookies::Netscape::VERSION = '6.03';
+
use strict;
-use vars qw(@ISA $VERSION);
+use vars qw(@ISA);
-$VERSION = "6.01";
+our $VERSION = '6.04';
require HTTP::Cookies;
@ISA=qw(HTTP::Cookies);
@@ -76,7 +76,7 @@ HTTP::Cookies::Netscape - Access to Netscape cookies files
=head1 VERSION
-version 6.03
+version 6.04
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Headers.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Headers.pm
index 156a8676943..0808f2c22fc 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Headers.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Headers.pm
@@ -3,9 +3,9 @@ package HTTP::Headers;
use strict;
use warnings;
-use Carp ();
+our $VERSION = '6.14';
-our $VERSION = "6.11";
+use Carp ();
# The $TRANSLATE_UNDERSCORE variable controls whether '_' can be used
# as a replacement for '-' in header field names.
@@ -465,12 +465,18 @@ sub _basic_auth {
1;
-__END__
+=pod
+
+=encoding UTF-8
=head1 NAME
HTTP::Headers - Class encapsulating HTTP Message headers
+=head1 VERSION
+
+version 6.14
+
=head1 SYNOPSIS
require HTTP::Headers;
@@ -864,10 +870,21 @@ These field names are returned with the ':' intact for
$h->header_field_names and the $h->scan callback, but the colons do
not show in $h->as_string.
-=head1 COPYRIGHT
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
+__END__
-Copyright 1995-2005 Gisle Aas.
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+#ABSTRACT: Class encapsulating HTTP Message headers
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Headers/Auth.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Headers/Auth.pm
index 7ae93f77c37..e718c868d1e 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Headers/Auth.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Headers/Auth.pm
@@ -3,7 +3,7 @@ package HTTP::Headers::Auth;
use strict;
use warnings;
-our $VERSION = "6.11";
+our $VERSION = '6.14';
use HTTP::Headers;
@@ -98,3 +98,30 @@ sub www_authenticate { shift->_authenticate("WWW-Authenticate", @_) }
sub proxy_authenticate { shift->_authenticate("Proxy-Authenticate", @_) }
1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+HTTP::Headers::Auth
+
+=head1 VERSION
+
+version 6.14
+
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Headers/ETag.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Headers/ETag.pm
index 1d81ac227c2..fc260ffabde 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Headers/ETag.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Headers/ETag.pm
@@ -3,7 +3,7 @@ package HTTP::Headers::ETag;
use strict;
use warnings;
-our $VERSION = "6.11";
+our $VERSION = '6.14';
require HTTP::Date;
@@ -94,3 +94,30 @@ sub _split_etag_list
}
1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+HTTP::Headers::ETag
+
+=head1 VERSION
+
+version 6.14
+
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Headers/Util.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Headers/Util.pm
index 58c37310abd..0faedf4dfaa 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Headers/Util.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Headers/Util.pm
@@ -3,7 +3,7 @@ package HTTP::Headers::Util;
use strict;
use warnings;
-our $VERSION = "6.11";
+our $VERSION = '6.14';
use base 'Exporter';
@@ -93,12 +93,18 @@ sub join_header_words
1;
-__END__
+=pod
+
+=encoding UTF-8
=head1 NAME
HTTP::Headers::Util - Header value parsing utility functions
+=head1 VERSION
+
+version 6.14
+
=head1 SYNOPSIS
use HTTP::Headers::Util qw(split_header_words);
@@ -114,7 +120,6 @@ The following functions are available:
=over 4
-
=item split_header_words( @header_values )
This function will parse the header values given as argument into a
@@ -188,10 +193,21 @@ will both return the string:
=back
-=head1 COPYRIGHT
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
+__END__
-Copyright 1997-1998, Gisle Aas
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+#ABSTRACT: Header value parsing utility functions
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Message.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Message.pm
index c5ba281a487..27c455e0d25 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Message.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Message.pm
@@ -3,7 +3,7 @@ package HTTP::Message;
use strict;
use warnings;
-our $VERSION = "6.11";
+our $VERSION = '6.14';
require HTTP::Headers;
require Carp;
@@ -143,11 +143,11 @@ sub _set_content {
my $self = $_[0];
_utf8_downgrade($_[1]);
if (!ref($_[1]) && ref($self->{_content}) eq "SCALAR") {
- ${$self->{_content}} = $_[1];
+ ${$self->{_content}} = defined( $_[1] ) ? $_[1] : '';
}
else {
die "Can't set content to be a scalar reference" if ref($_[1]) eq "SCALAR";
- $self->{_content} = $_[1];
+ $self->{_content} = defined( $_[1] ) ? $_[1] : '';
delete $self->{_content_ref};
}
delete $self->{_parts} unless $_[2];
@@ -430,7 +430,7 @@ sub decodable
};
eval {
require IO::Uncompress::Bunzip2;
- push(@enc, "x-bzip2");
+ push(@enc, "x-bzip2", "bzip2");
};
# we don't care about announcing the 'identity', 'base64' and
# 'quoted-printable' stuff
@@ -462,7 +462,7 @@ sub encode
my $content = $self->content;
for my $encoding (@enc) {
- if ($encoding eq "identity") {
+ if ($encoding eq "identity" || $encoding eq "none") {
# nothing to do
}
elsif ($encoding eq "base64") {
@@ -483,7 +483,7 @@ sub encode
or die "Can't deflate content: $IO::Compress::Deflate::DeflateError";
$content = $output;
}
- elsif ($encoding eq "x-bzip2") {
+ elsif ($encoding eq "x-bzip2" || $encoding eq "bzip2") {
require IO::Compress::Bzip2;
my $output;
IO::Compress::Bzip2::bzip2(\$content, \$output)
@@ -771,13 +771,18 @@ sub _boundary
1;
+=pod
-__END__
+=encoding UTF-8
=head1 NAME
HTTP::Message - HTTP style message (base class)
+=head1 VERSION
+
+version 6.14
+
=head1 SYNOPSIS
use base 'HTTP::Message';
@@ -833,6 +838,9 @@ The content() method sets the raw content if an argument is given. If no
argument is given the content is not touched. In either case the
original raw content is returned.
+If the C<undef> argument is given, the content is reset to its default value,
+which is an empty string.
+
Note that the content should be a string of bytes. Strings in perl
can contain characters outside the range of a byte. The C<Encode>
module can be used to turn such strings into a string of bytes.
@@ -1105,10 +1113,21 @@ details of these methods:
$mess->authorization_basic
$mess->proxy_authorization_basic
-=head1 COPYRIGHT
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
+__END__
-Copyright 1995-2004 Gisle Aas.
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+#ABSTRACT: HTTP style message (base class)
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Request.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Request.pm
index e4cb1e6d153..51150b962af 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Request.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Request.pm
@@ -3,9 +3,9 @@ package HTTP::Request;
use strict;
use warnings;
-use base 'HTTP::Message';
+our $VERSION = '6.14';
-our $VERSION = "6.11";
+use base 'HTTP::Message';
sub new
{
@@ -20,8 +20,9 @@ sub new
sub parse
{
my($class, $str) = @_;
+ Carp::carp('Undefined argument to parse()') if $^W && ! defined $str;
my $request_line;
- if ($str =~ s/^(.*)\n//) {
+ if (defined $str && $str =~ s/^(.*)\n//) {
$request_line = $1;
}
else {
@@ -30,10 +31,12 @@ sub parse
}
my $self = $class->SUPER::parse($str);
- my($method, $uri, $protocol) = split(' ', $request_line);
- $self->method($method) if defined($method);
- $self->uri($uri) if defined($uri);
- $self->protocol($protocol) if $protocol;
+ if (defined $request_line) {
+ my($method, $uri, $protocol) = split(' ', $request_line);
+ $self->method($method);
+ $self->uri($uri) if defined($uri);
+ $self->protocol($protocol) if $protocol;
+ }
$self;
}
@@ -67,7 +70,7 @@ sub uri
Carp::croak("A URI can't be a " . ref($uri) . " reference")
if ref($uri) eq 'HASH' or ref($uri) eq 'ARRAY';
Carp::croak("Can't use a " . ref($uri) . " object as a URI")
- unless $uri->can('scheme');
+ unless $uri->can('scheme') && $uri->can('canonical');
$uri = $uri->clone;
unless ($HTTP::URI_CLASS eq "URI") {
# Argh!! Hate this... old LWP legacy!
@@ -132,12 +135,18 @@ sub dump
1;
-__END__
+=pod
+
+=encoding UTF-8
=head1 NAME
HTTP::Request - HTTP style request message
+=head1 VERSION
+
+version 6.14
+
=head1 SYNOPSIS
require HTTP::Request;
@@ -183,7 +192,7 @@ This constructs a new request object by parsing the given string.
=item $r->method( $val )
This is used to get/set the method attribute. The method should be a
-short string like "GET", "HEAD", "PUT" or "POST".
+short string like "GET", "HEAD", "PUT", "PATCH" or "POST".
=item $r->uri
@@ -227,15 +236,109 @@ Method returning a textual representation of the request.
=back
+=head1 EXAMPLES
+
+Creating requests to be sent with L<LWP::UserAgent> or others can be easy. Here
+are a few examples.
+
+=head2 Simple POST
+
+Here, we'll create a simple POST request that could be used to send JSON data
+to an endpoint.
+
+ #!/usr/bin/env perl
+
+ use strict;
+ use warnings;
+
+ use Encode qw(encode_utf8);
+ use HTTP::Request ();
+ use JSON::MaybeXS qw(encode_json);
+
+ my $url = 'https://www.example.com/api/user/123';
+ my $header = ['Content-Type' => 'application/json; charset=UTF-8'];
+ my $data = {foo => 'bar', baz => 'quux'};
+ my $encoded_data = encode_utf8(encode_json($data));
+
+ my $r = HTTP::Request->new('POST', $url, $header, $encoded_data);
+ # at this point, we could send it via LWP::UserAgent
+ # my $ua = LWP::UserAgent->new();
+ # my $res = $ua->request($r);
+
+=head2 Batch POST Request
+
+Some services, like Google, allow multiple requests to be sent in one batch.
+L<https://developers.google.com/drive/v3/web/batch> for example. Using the
+C<add_part> method from L<HTTP::Message> makes this simple.
+
+ #!/usr/bin/env perl
+
+ use strict;
+ use warnings;
+
+ use Encode qw(encode_utf8);
+ use HTTP::Request ();
+ use JSON::MaybeXS qw(encode_json);
+
+ my $auth_token = 'auth_token';
+ my $batch_url = 'https://www.googleapis.com/batch';
+ my $url = 'https://www.googleapis.com/drive/v3/files/fileId/permissions?fields=id';
+ my $url_no_email = 'https://www.googleapis.com/drive/v3/files/fileId/permissions?fields=id&sendNotificationEmail=false';
+
+ # generate a JSON post request for one of the batch entries
+ my $req1 = build_json_request($url, {
+ emailAddress => 'example@appsrocks.com',
+ role => "writer",
+ type => "user",
+ });
+
+ # generate a JSON post request for one of the batch entries
+ my $req2 = build_json_request($url_no_email, {
+ domain => "appsrocks.com",
+ role => "reader",
+ type => "domain",
+ });
+
+ # generate a multipart request to send all of the other requests
+ my $r = HTTP::Request->new('POST', $batch_url, [
+ 'Accept-Encoding' => 'gzip',
+ # if we don't provide a boundary here, HTTP::Message will generate
+ # one for us. We could use UUID::uuid() here if we wanted.
+ 'Content-Type' => 'multipart/mixed; boundary=END_OF_PART'
+ ]);
+
+ # add the two POST requests to the main request
+ $r->add_part($req1, $req2);
+ # at this point, we could send it via LWP::UserAgent
+ # my $ua = LWP::UserAgent->new();
+ # my $res = $ua->request($r);
+ exit();
+
+ sub build_json_request {
+ my ($url, $href) = @_;
+ my $header = ['Authorization' => "Bearer $auth_token", 'Content-Type' => 'application/json; charset=UTF-8'];
+ return HTTP::Request->new('POST', $url, $header, encode_utf8(encode_json($href)));
+ }
+
=head1 SEE ALSO
L<HTTP::Headers>, L<HTTP::Message>, L<HTTP::Request::Common>,
L<HTTP::Response>
-=head1 COPYRIGHT
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
+
+=head1 COPYRIGHT AND LICENSE
-Copyright 1995-2004 Gisle Aas.
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
+__END__
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+#ABSTRACT: HTTP style request message
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Request/Common.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Request/Common.pm
index cf36fcc299c..998bc4dc53c 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Request/Common.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Request/Common.pm
@@ -3,30 +3,26 @@ package HTTP::Request::Common;
use strict;
use warnings;
+our $VERSION = '6.14';
+
our $DYNAMIC_FILE_UPLOAD ||= 0; # make it defined (don't know why)
use Exporter 5.57 'import';
-our @EXPORT =qw(GET HEAD PUT POST);
+our @EXPORT =qw(GET HEAD PUT PATCH POST);
our @EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD DELETE);
require HTTP::Request;
use Carp();
-our $VERSION = "6.11";
-
my $CRLF = "\015\012"; # "\r\n" is not portable
sub GET { _simple_req('GET', @_); }
sub HEAD { _simple_req('HEAD', @_); }
sub DELETE { _simple_req('DELETE', @_); }
-
-for my $type (qw(PUT POST)) {
- no strict 'refs';
- *{ __PACKAGE__ . "::" . $type } = sub {
- return request_type_with_data($type, @_);
- };
-}
+sub PATCH { request_type_with_data('PATCH', @_); }
+sub POST { request_type_with_data('POST', @_); }
+sub PUT { request_type_with_data('PUT', @_); }
sub request_type_with_data
{
@@ -221,7 +217,7 @@ sub form_data # RFC1867
# or perhaps a file in the /proc file system where
# stat may return a 0 size even though reading it
# will produce data. So we cannot make
- # a Content-Length header.
+ # a Content-Length header.
undef $length;
last;
}
@@ -265,7 +261,7 @@ sub form_data # RFC1867
}
if ($buflength) {
defined $length && ($length -= $buflength);
- return $buf
+ return $buf
}
}
};
@@ -306,25 +302,37 @@ sub boundary
1;
-__END__
+=pod
+
+=encoding UTF-8
=head1 NAME
HTTP::Request::Common - Construct common HTTP::Request objects
+=head1 VERSION
+
+version 6.14
+
=head1 SYNOPSIS
use HTTP::Request::Common;
$ua = LWP::UserAgent->new;
$ua->request(GET 'http://www.sn.no/');
$ua->request(POST 'http://somewhere/foo', [foo => bar, bar => foo]);
+ $ua->request(PATCH 'http://somewhere/foo', [foo => bar, bar => foo]);
+ $ua->request(PUT 'http://somewhere/foo', [foo => bar, bar => foo]);
=head1 DESCRIPTION
-This module provide functions that return newly created C<HTTP::Request>
+This module provides functions that return newly created C<HTTP::Request>
objects. These functions are usually more convenient to use than the
-standard C<HTTP::Request> constructor for the most common requests. The
-following functions are provided:
+standard C<HTTP::Request> constructor for the most common requests.
+
+Note that L<LWP::UserAgent> has several convenience methods, including
+C<get>, C<head>, C<delete>, C<post> and C<put>.
+
+The following functions are provided:
=over 4
@@ -332,7 +340,7 @@ following functions are provided:
=item GET $url, Header => Value,...
-The GET() function returns an C<HTTP::Request> object initialized with
+The C<GET> function returns an L<HTTP::Request> object initialized with
the "GET" method and the specified URL. It is roughly equivalent to the
following call
@@ -344,11 +352,11 @@ following call
but is less cluttered. What is different is that a header named
C<Content> will initialize the content part of the request instead of
setting a header field. Note that GET requests should normally not
-have a content, so this hack makes more sense for the PUT() and POST()
-functions described below.
+have a content, so this hack makes more sense for the C<PUT>, C<PATCH>
+ and C<POST> functions described below.
-The get(...) method of C<LWP::UserAgent> exists as a shortcut for
-$ua->request(GET ...).
+The C<get(...)> method of L<LWP::UserAgent> exists as a shortcut for
+C<< $ua->request(GET ...) >>.
=item HEAD $url
@@ -356,29 +364,39 @@ $ua->request(GET ...).
Like GET() but the method in the request is "HEAD".
-The head(...) method of "LWP::UserAgent" exists as a shortcut for
-$ua->request(HEAD ...).
+The C<head(...)> method of L<LWP::UserAgent> exists as a shortcut for
+C<< $ua->request(HEAD ...) >>.
-=item PUT $url
+=item DELETE $url
-=item PUT $url, Header => Value,...
+=item DELETE $url, Header => Value,...
-=item PUT $url, Header => Value,..., Content => $content
+Like C<GET> but the method in the request is C<DELETE>. This function
+is not exported by default.
-Like GET() but the method in the request is "PUT".
+=item PATCH $url
-The content of the request can be specified using the "Content"
-pseudo-header. This steals a bit of the header field namespace as
-there is no way to directly specify a header that is actually called
-"Content". If you really need this you must update the request
-returned in a separate statement.
+=item PATCH $url, Header => Value,...
-=item DELETE $url
+=item PATCH $url, $form_ref, Header => Value,...
-=item DELETE $url, Header => Value,...
+=item PATCH $url, Header => Value,..., Content => $form_ref
-Like GET() but the method in the request is "DELETE". This function
-is not exported by default.
+=item PATCH $url, Header => Value,..., Content => $content
+
+The same as C<POST> below, but the method in the request is C<PATCH>.
+
+=item PUT $url
+
+=item PUT $url, Header => Value,...
+
+=item PUT $url, $form_ref, Header => Value,...
+
+=item PUT $url, Header => Value,..., Content => $form_ref
+
+=item PUT $url, Header => Value,..., Content => $content
+
+The same as C<POST> below, but the method in the request is C<PUT>
=item POST $url
@@ -390,13 +408,24 @@ is not exported by default.
=item POST $url, Header => Value,..., Content => $content
-This works mostly like PUT() with "POST" as the method, but this
-function also takes a second optional array or hash reference
-parameter $form_ref. As for PUT() the content can also be specified
-directly using the "Content" pseudo-header, and you may also provide
-the $form_ref this way.
+C<POST>, C<PATCH> and C<PUT> all work with the same parameters.
+
+ %data = ( title => 'something', body => something else' );
+ $ua = LWP::UserAgent->new();
+ $request = HTTP::Request::Common::POST( $url, [ %data ] );
+ $response = $ua->request($request);
-The $form_ref argument can be used to pass key/value pairs for the
+They take a second optional array or hash reference
+parameter C<$form_ref>. The content can also be specified
+directly using the C<Content> pseudo-header, and you may also provide
+the C<$form_ref> this way.
+
+The C<Content> pseudo-header steals a bit of the header field namespace as
+there is no way to directly specify a header that is actually called
+"Content". If you really need this you must update the request
+returned in a separate statement.
+
+The C<$form_ref> argument can be used to pass key/value pairs for the
form content. By default we will initialize a request using the
C<application/x-www-form-urlencoded> content type. This means that
you can emulate an HTML E<lt>form> POSTing like this:
@@ -409,7 +438,7 @@ you can emulate an HTML E<lt>form> POSTing like this:
perc => '3%',
];
-This will create an HTTP::Request object that looks like this:
+This will create an L<HTTP::Request> object that looks like this:
POST http://www.perl.org/survey.cgi
Content-Length: 66
@@ -423,7 +452,7 @@ name or by passing the value as an array reference.
The POST method also supports the C<multipart/form-data> content used
for I<Form-based File Upload> as specified in RFC 1867. You trigger
this content format by specifying a content type of C<'form-data'> as
-one of the request headers. If one of the values in the $form_ref is
+one of the request headers. If one of the values in the C<$form_ref> is
an array reference, then it is treated as a file part specification
with the following interpretation:
@@ -441,7 +470,7 @@ want to suppress sending the filename when you provide a $file value.
If a $file is provided by no C<Content-Type> header, then C<Content-Type>
and C<Content-Encoding> will be filled in automatically with the values
-returned by LWP::MediaTypes::guess_media_type()
+returned by C<LWP::MediaTypes::guess_media_type()>
Sending my F<~/.profile> to the survey used as example above can be
achieved by this:
@@ -455,7 +484,7 @@ achieved by this:
init => ["$ENV{HOME}/.profile"],
]
-This will create an HTTP::Request object that almost looks this (the
+This will create an L<HTTP::Request> object that almost looks this (the
boundary and the content of your F<~/.profile> is likely to be
different):
@@ -488,20 +517,20 @@ different):
--6G+f--
-If you set the $DYNAMIC_FILE_UPLOAD variable (exportable) to some TRUE
+If you set the C<$DYNAMIC_FILE_UPLOAD> variable (exportable) to some TRUE
value, then you get back a request object with a subroutine closure as
the content attribute. This subroutine will read the content of any
files on demand and return it in suitable chunks. This allow you to
upload arbitrary big files without using lots of memory. You can even
upload infinite files like F</dev/audio> if you wish; however, if
-the file is not a plain file, there will be no Content-Length header
+the file is not a plain file, there will be no C<Content-Length> header
defined for the request. Not all servers (or server
applications) like this. Also, if the file(s) change in size between
-the time the Content-Length is calculated and the time that the last
+the time the C<Content-Length> is calculated and the time that the last
chunk is delivered, the subroutine will C<Croak>.
-The post(...) method of "LWP::UserAgent" exists as a shortcut for
-$ua->request(POST ...).
+The C<post(...)> method of L<LWP::UserAgent> exists as a shortcut for
+C<< $ua->request(POST ...) >>.
=back
@@ -509,13 +538,23 @@ $ua->request(POST ...).
L<HTTP::Request>, L<LWP::UserAgent>
+Also, there are some examples in L<HTTP::Request/"EXAMPLES"> that you might
+find useful. For example, batch requests are explained there.
-=head1 COPYRIGHT
+=head1 AUTHOR
-Copyright 1997-2004, Gisle Aas
+Gisle Aas <gisle@activestate.com>
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
=cut
+__END__
+
+
+#ABSTRACT: Construct common HTTP::Request objects
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Response.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Response.pm
index 7b6bcadd674..51a2cd08d28 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Response.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Response.pm
@@ -3,9 +3,9 @@ package HTTP::Response;
use strict;
use warnings;
-use base 'HTTP::Message';
+our $VERSION = '6.14';
-our $VERSION = "6.11";
+use base 'HTTP::Message';
use HTTP::Status ();
@@ -23,8 +23,9 @@ sub new
sub parse
{
my($class, $str) = @_;
+ Carp::carp('Undefined argument to parse()') if $^W && ! defined $str;
my $status_line;
- if ($str =~ s/^(.*)\n//) {
+ if (defined $str && $str =~ s/^(.*)\n//) {
$status_line = $1;
}
else {
@@ -32,17 +33,21 @@ sub parse
$str = "";
}
+ $status_line =~ s/\r\z// if defined $status_line;
+
my $self = $class->SUPER::parse($str);
- my($protocol, $code, $message);
- if ($status_line =~ /^\d{3} /) {
- # Looks like a response created by HTTP::Response->new
- ($code, $message) = split(' ', $status_line, 2);
- } else {
- ($protocol, $code, $message) = split(' ', $status_line, 3);
+ if (defined $status_line) {
+ my($protocol, $code, $message);
+ if ($status_line =~ /^\d{3} /) {
+ # Looks like a response created by HTTP::Response->new
+ ($code, $message) = split(' ', $status_line, 2);
+ } else {
+ ($protocol, $code, $message) = split(' ', $status_line, 3);
+ }
+ $self->protocol($protocol) if $protocol;
+ $self->code($code) if defined($code);
+ $self->message($message) if defined($message);
}
- $self->protocol($protocol) if $protocol;
- $self->code($code) if defined($code);
- $self->message($message) if defined($message);
$self;
}
@@ -336,19 +341,24 @@ sub fresh_until
1;
+=pod
-__END__
+=encoding UTF-8
=head1 NAME
HTTP::Response - HTTP style response message
+=head1 VERSION
+
+version 6.14
+
=head1 SYNOPSIS
Response objects are returned by the request() method of the C<LWP::UserAgent>:
# ...
- $response = $ua->request($request)
+ $response = $ua->request($request);
if ($response->is_success) {
print $response->decoded_content;
}
@@ -487,10 +497,10 @@ received some redirect responses first.
If none of these sources provide an absolute URI, undef is returned.
-When the LWP protocol modules produce the HTTP::Response object, then
-any base URI embedded in the document (step 1) will already have
-initialized the "Content-Base:" header. This means that this method
-only performs the last 2 steps (the content is not always available
+When the LWP protocol modules produce the HTTP::Response object, then any base
+URI embedded in the document (step 1) will already have initialized the
+"Content-Base:" header. (See L<LWP::UserAgent/parse_head>). This means that
+this method only performs the last 2 steps (the content is not always available
either).
=item $r->filename
@@ -635,10 +645,21 @@ description of freshness_lifetime().
L<HTTP::Headers>, L<HTTP::Message>, L<HTTP::Status>, L<HTTP::Request>
-=head1 COPYRIGHT
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
+__END__
-Copyright 1995-2004 Gisle Aas.
-This library is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
+#ABSTRACT: HTTP style response message
diff --git a/Master/tlpkg/tlperl/site/lib/HTTP/Status.pm b/Master/tlpkg/tlperl/site/lib/HTTP/Status.pm
index 744cec10690..ac181b138c3 100644
--- a/Master/tlpkg/tlperl/site/lib/HTTP/Status.pm
+++ b/Master/tlpkg/tlperl/site/lib/HTTP/Status.pm
@@ -3,14 +3,14 @@ package HTTP::Status;
use strict;
use warnings;
+our $VERSION = '6.14';
+
require 5.002; # because we use prototypes
use base 'Exporter';
our @EXPORT = qw(is_info is_success is_redirect is_error status_message);
our @EXPORT_OK = qw(is_client_error is_server_error);
-our $VERSION = "6.11";
-
# Note also addition of mnemonics to @EXPORT below
# Unmarked codes are from RFC 2616
@@ -20,6 +20,7 @@ my %StatusCode = (
100 => 'Continue',
101 => 'Switching Protocols',
102 => 'Processing', # RFC 2518 (WebDAV)
+ 103 => 'Early Hints', # RFC 8297
200 => 'OK',
201 => 'Created',
202 => 'Accepted',
@@ -104,22 +105,27 @@ our %EXPORT_TAGS = (
sub status_message ($) { $StatusCode{$_[0]}; }
-sub is_info ($) { $_[0] >= 100 && $_[0] < 200; }
-sub is_success ($) { $_[0] >= 200 && $_[0] < 300; }
-sub is_redirect ($) { $_[0] >= 300 && $_[0] < 400; }
-sub is_error ($) { $_[0] >= 400 && $_[0] < 600; }
-sub is_client_error ($) { $_[0] >= 400 && $_[0] < 500; }
-sub is_server_error ($) { $_[0] >= 500 && $_[0] < 600; }
+sub is_info ($) { $_[0] && $_[0] >= 100 && $_[0] < 200; }
+sub is_success ($) { $_[0] && $_[0] >= 200 && $_[0] < 300; }
+sub is_redirect ($) { $_[0] && $_[0] >= 300 && $_[0] < 400; }
+sub is_error ($) { $_[0] && $_[0] >= 400 && $_[0] < 600; }
+sub is_client_error ($) { $_[0] && $_[0] >= 400 && $_[0] < 500; }
+sub is_server_error ($) { $_[0] && $_[0] >= 500 && $_[0] < 600; }
1;
+=pod
-__END__
+=encoding UTF-8
=head1 NAME
HTTP::Status - HTTP Status code processing
+=head1 VERSION
+
+version 6.14
+
=head1 SYNOPSIS
use HTTP::Status qw(:constants :is status_message);
@@ -148,6 +154,7 @@ tag to import them all.
HTTP_CONTINUE (100)
HTTP_SWITCHING_PROTOCOLS (101)
HTTP_PROCESSING (102)
+ HTTP_EARLY_HINTS (103)
HTTP_OK (200)
HTTP_CREATED (201)
@@ -267,3 +274,21 @@ This function is B<not> exported by default.
For legacy reasons all the C<HTTP_> constants are exported by default
with the prefix C<RC_>. It's recommended to use explicit imports and
the C<:constants> tag instead of relying on this.
+
+=head1 AUTHOR
+
+Gisle Aas <gisle@activestate.com>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 1994-2017 by Gisle Aas.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
+__END__
+
+
+#ABSTRACT: HTTP Status code processing
diff --git a/Master/tlpkg/tlperl/site/lib/JSON.pm b/Master/tlpkg/tlperl/site/lib/JSON.pm
deleted file mode 100644
index 9170fa6925c..00000000000
--- a/Master/tlpkg/tlperl/site/lib/JSON.pm
+++ /dev/null
@@ -1,1659 +0,0 @@
-package JSON;
-
-
-use strict;
-use Carp ();
-use Exporter;
-BEGIN { @JSON::ISA = 'Exporter' }
-
-@JSON::EXPORT = qw(from_json to_json jsonToObj objToJson encode_json decode_json);
-
-BEGIN {
- $JSON::VERSION = '2.94';
- $JSON::DEBUG = 0 unless (defined $JSON::DEBUG);
- $JSON::DEBUG = $ENV{ PERL_JSON_DEBUG } if exists $ENV{ PERL_JSON_DEBUG };
-}
-
-my %RequiredVersion = (
- 'JSON::PP' => '2.27203',
- 'JSON::XS' => '2.34',
-);
-
-# XS and PP common methods
-
-my @PublicMethods = qw/
- ascii latin1 utf8 pretty indent space_before space_after relaxed canonical allow_nonref
- allow_blessed convert_blessed filter_json_object filter_json_single_key_object
- shrink max_depth max_size encode decode decode_prefix allow_unknown
-/;
-
-my @Properties = qw/
- ascii latin1 utf8 indent space_before space_after relaxed canonical allow_nonref
- allow_blessed convert_blessed shrink max_depth max_size allow_unknown
-/;
-
-my @XSOnlyMethods = qw/allow_tags/; # Currently nothing
-
-my @PPOnlyMethods = qw/
- indent_length sort_by
- allow_singlequote allow_bignum loose allow_barekey escape_slash as_nonblessed
-/; # JSON::PP specific
-
-
-# used in _load_xs and _load_pp ($INSTALL_ONLY is not used currently)
-my $_INSTALL_DONT_DIE = 1; # When _load_xs fails to load XS, don't die.
-my $_ALLOW_UNSUPPORTED = 0;
-my $_UNIV_CONV_BLESSED = 0;
-
-
-# Check the environment variable to decide worker module.
-
-unless ($JSON::Backend) {
- $JSON::DEBUG and Carp::carp("Check used worker module...");
-
- my $backend = exists $ENV{PERL_JSON_BACKEND} ? $ENV{PERL_JSON_BACKEND} : 1;
-
- if ($backend eq '1') {
- $backend = 'JSON::XS,JSON::PP';
- }
- elsif ($backend eq '0') {
- $backend = 'JSON::PP';
- }
- elsif ($backend eq '2') {
- $backend = 'JSON::XS';
- }
- $backend =~ s/\s+//g;
-
- my @backend_modules = split /,/, $backend;
- while(my $module = shift @backend_modules) {
- if ($module =~ /JSON::XS/) {
- _load_xs($module, @backend_modules ? $_INSTALL_DONT_DIE : 0);
- }
- elsif ($module =~ /JSON::PP/) {
- _load_pp($module);
- }
- elsif ($module =~ /JSON::backportPP/) {
- _load_pp($module);
- }
- else {
- Carp::croak "The value of environmental variable 'PERL_JSON_BACKEND' is invalid.";
- }
- last if $JSON::Backend;
- }
-}
-
-
-sub import {
- my $pkg = shift;
- my @what_to_export;
- my $no_export;
-
- for my $tag (@_) {
- if ($tag eq '-support_by_pp') {
- if (!$_ALLOW_UNSUPPORTED++) {
- JSON::Backend::XS
- ->support_by_pp(@PPOnlyMethods) if ($JSON::Backend->is_xs);
- }
- next;
- }
- elsif ($tag eq '-no_export') {
- $no_export++, next;
- }
- elsif ( $tag eq '-convert_blessed_universally' ) {
- my $org_encode = $JSON::Backend->can('encode');
- eval q|
- require B;
- local $^W;
- no strict 'refs';
- *{"${JSON::Backend}\::encode"} = sub {
- # only works with Perl 5.18+
- local *UNIVERSAL::TO_JSON = sub {
- my $b_obj = B::svref_2object( $_[0] );
- return $b_obj->isa('B::HV') ? { %{ $_[0] } }
- : $b_obj->isa('B::AV') ? [ @{ $_[0] } ]
- : undef
- ;
- };
- $org_encode->(@_);
- };
- | if ( !$_UNIV_CONV_BLESSED++ );
- next;
- }
- push @what_to_export, $tag;
- }
-
- return if ($no_export);
-
- __PACKAGE__->export_to_level(1, $pkg, @what_to_export);
-}
-
-
-# OBSOLETED
-
-sub jsonToObj {
- my $alternative = 'from_json';
- if (defined $_[0] and UNIVERSAL::isa($_[0], 'JSON')) {
- shift @_; $alternative = 'decode';
- }
- Carp::carp "'jsonToObj' will be obsoleted. Please use '$alternative' instead.";
- return JSON::from_json(@_);
-};
-
-sub objToJson {
- my $alternative = 'to_json';
- if (defined $_[0] and UNIVERSAL::isa($_[0], 'JSON')) {
- shift @_; $alternative = 'encode';
- }
- Carp::carp "'objToJson' will be obsoleted. Please use '$alternative' instead.";
- JSON::to_json(@_);
-};
-
-
-# INTERFACES
-
-sub to_json ($@) {
- if (
- ref($_[0]) eq 'JSON'
- or (@_ > 2 and $_[0] eq 'JSON')
- ) {
- Carp::croak "to_json should not be called as a method.";
- }
- my $json = JSON->new;
-
- if (@_ == 2 and ref $_[1] eq 'HASH') {
- my $opt = $_[1];
- for my $method (keys %$opt) {
- $json->$method( $opt->{$method} );
- }
- }
-
- $json->encode($_[0]);
-}
-
-
-sub from_json ($@) {
- if ( ref($_[0]) eq 'JSON' or $_[0] eq 'JSON' ) {
- Carp::croak "from_json should not be called as a method.";
- }
- my $json = JSON->new;
-
- if (@_ == 2 and ref $_[1] eq 'HASH') {
- my $opt = $_[1];
- for my $method (keys %$opt) {
- $json->$method( $opt->{$method} );
- }
- }
-
- return $json->decode( $_[0] );
-}
-
-
-
-sub true { $JSON::true }
-
-sub false { $JSON::false }
-
-sub null { undef; }
-
-
-sub require_xs_version { $RequiredVersion{'JSON::XS'}; }
-
-sub backend {
- my $proto = shift;
- $JSON::Backend;
-}
-
-#*module = *backend;
-
-
-sub is_xs {
- return $_[0]->backend->is_xs;
-}
-
-
-sub is_pp {
- return $_[0]->backend->is_pp;
-}
-
-
-sub pureperl_only_methods { @PPOnlyMethods; }
-
-
-sub property {
- my ($self, $name, $value) = @_;
-
- if (@_ == 1) {
- my %props;
- for $name (@Properties) {
- my $method = 'get_' . $name;
- if ($name eq 'max_size') {
- my $value = $self->$method();
- $props{$name} = $value == 1 ? 0 : $value;
- next;
- }
- $props{$name} = $self->$method();
- }
- return \%props;
- }
- elsif (@_ > 3) {
- Carp::croak('property() can take only the option within 2 arguments.');
- }
- elsif (@_ == 2) {
- if ( my $method = $self->can('get_' . $name) ) {
- if ($name eq 'max_size') {
- my $value = $self->$method();
- return $value == 1 ? 0 : $value;
- }
- $self->$method();
- }
- }
- else {
- $self->$name($value);
- }
-
-}
-
-
-
-# INTERNAL
-
-sub __load_xs {
- my ($module, $opt) = @_;
-
- $JSON::DEBUG and Carp::carp "Load $module.";
- my $required_version = $RequiredVersion{$module} || '';
-
- eval qq|
- use $module $required_version ();
- |;
-
- if ($@) {
- if (defined $opt and $opt & $_INSTALL_DONT_DIE) {
- $JSON::DEBUG and Carp::carp "Can't load $module...($@)";
- return 0;
- }
- Carp::croak $@;
- }
- $JSON::BackendModuleXS = $module;
- return 1;
-}
-
-sub _load_xs {
- my ($module, $opt) = @_;
- __load_xs($module, $opt) or return;
-
- my $data = join("", <DATA>); # this code is from Jcode 2.xx.
- close(DATA);
- eval $data;
- JSON::Backend::XS->init($module);
-
- return 1;
-};
-
-
-sub __load_pp {
- my ($module, $opt) = @_;
-
- $JSON::DEBUG and Carp::carp "Load $module.";
- my $required_version = $RequiredVersion{$module} || '';
-
- eval qq| use $module $required_version () |;
-
- if ($@) {
- if ( $module eq 'JSON::PP' ) {
- $JSON::DEBUG and Carp::carp "Can't load $module ($@), so try to load JSON::backportPP";
- $module = 'JSON::backportPP';
- local $^W; # if PP installed but invalid version, backportPP redefines methods.
- eval qq| require $module |;
- }
- Carp::croak $@ if $@;
- }
- $JSON::BackendModulePP = $module;
- return 1;
-}
-
-sub _load_pp {
- my ($module, $opt) = @_;
- __load_pp($module, $opt);
-
- JSON::Backend::PP->init($module);
-};
-
-#
-# Helper classes for Backend Module (PP)
-#
-
-package JSON::Backend::PP;
-
-sub init {
- my ($class, $module) = @_;
-
- # name may vary, but the module should (always) be a JSON::PP
-
- local $^W;
- no strict qw(refs); # this routine may be called after JSON::Backend::XS init was called.
- *{"JSON::decode_json"} = \&{"JSON::PP::decode_json"};
- *{"JSON::encode_json"} = \&{"JSON::PP::encode_json"};
- *{"JSON::is_bool"} = \&{"JSON::PP::is_bool"};
-
- $JSON::true = ${"JSON::PP::true"};
- $JSON::false = ${"JSON::PP::false"};
-
- push @JSON::Backend::PP::ISA, 'JSON::PP';
- push @JSON::ISA, $class;
- $JSON::Backend = $class;
- $JSON::BackendModule = $module;
- ${"$class\::VERSION"} = $module->VERSION;
-
- for my $method (@XSOnlyMethods) {
- *{"JSON::$method"} = sub {
- Carp::carp("$method is not supported in $module.");
- $_[0];
- };
- }
-
- return 1;
-}
-
-sub is_xs { 0 };
-sub is_pp { 1 };
-
-#
-# To save memory, the below lines are read only when XS backend is used.
-#
-
-package JSON;
-
-1;
-__DATA__
-
-
-#
-# Helper classes for Backend Module (XS)
-#
-
-package JSON::Backend::XS;
-
-sub init {
- my ($class, $module) = @_;
-
- local $^W;
- no strict qw(refs);
- *{"JSON::decode_json"} = \&{"$module\::decode_json"};
- *{"JSON::encode_json"} = \&{"$module\::encode_json"};
- *{"JSON::is_bool"} = \&{"$module\::is_bool"};
-
- $JSON::true = ${"$module\::true"};
- $JSON::false = ${"$module\::false"};
-
- push @JSON::Backend::XS::ISA, $module;
- push @JSON::ISA, $class;
- $JSON::Backend = $class;
- $JSON::BackendModule = $module;
- ${"$class\::VERSION"} = $module->VERSION;
-
- if ( $module->VERSION < 3 ) {
- eval 'package JSON::PP::Boolean';
- push @{"$module\::Boolean::ISA"}, qw(JSON::PP::Boolean);
- }
-
- for my $method (@PPOnlyMethods) {
- *{"JSON::$method"} = sub {
- Carp::carp("$method is not supported in $module.");
- $_[0];
- };
- }
-
- return 1;
-}
-
-sub is_xs { 1 };
-sub is_pp { 0 };
-
-sub support_by_pp {
- my ($class, @methods) = @_;
-
- JSON::__load_pp('JSON::PP');
-
- local $^W;
- no strict qw(refs);
-
- for my $method (@methods) {
- my $pp_method = JSON::PP->can($method) or next;
- *{"JSON::$method"} = sub {
- if (!$_[0]->isa('JSON::PP')) {
- my $xs_self = $_[0];
- my $pp_self = JSON::PP->new;
- for (@Properties) {
- my $getter = "get_$_";
- $pp_self->$_($xs_self->$getter);
- }
- $_[0] = $pp_self;
- }
- $pp_method->(@_);
- };
- }
-
- $JSON::DEBUG and Carp::carp("set -support_by_pp mode.");
-}
-
-1;
-__END__
-
-=head1 NAME
-
-JSON - JSON (JavaScript Object Notation) encoder/decoder
-
-=head1 SYNOPSIS
-
- use JSON; # imports encode_json, decode_json, to_json and from_json.
-
- # simple and fast interfaces (expect/generate UTF-8)
-
- $utf8_encoded_json_text = encode_json $perl_hash_or_arrayref;
- $perl_hash_or_arrayref = decode_json $utf8_encoded_json_text;
-
- # OO-interface
-
- $json = JSON->new->allow_nonref;
-
- $json_text = $json->encode( $perl_scalar );
- $perl_scalar = $json->decode( $json_text );
-
- $pretty_printed = $json->pretty->encode( $perl_scalar ); # pretty-printing
-
-=head1 VERSION
-
- 2.93
-
-=head1 DESCRIPTION
-
-This module is a thin wrapper for L<JSON::XS>-compatible modules with a few
-additional features. All the backend modules convert a Perl data structure
-to a JSON text as of RFC4627 (which we know is obsolete but we still stick
-to; see below for an option to support part of RFC7159) and vice versa.
-This module uses L<JSON::XS> by default, and when JSON::XS is not available,
-this module falls back on L<JSON::PP>, which is in the Perl core since 5.14.
-If JSON::PP is not available either, this module then falls back on
-JSON::backportPP (which is actually JSON::PP in a different .pm file)
-bundled in the same distribution as this module. You can also explicitly
-specify to use L<Cpanel::JSON::XS>, a fork of JSON::XS by Reini Urban.
-
-All these backend modules have slight incompatibilities between them,
-including extra features that other modules don't support, but as long as you
-use only common features (most important ones are described below), migration
-from backend to backend should be reasonably easy. For details, see each
-backend module you use.
-
-=head1 CHOOSING BACKEND
-
-This module respects an environmental variable called C<PERL_JSON_BACKEND>
-when it decides a backend module to use. If this environmental variable is
-not set, it tries to load JSON::XS, and if JSON::XS is not available, it
-falls back on JSON::PP, and then JSON::backportPP if JSON::PP is not available
-either.
-
-If you always don't want it to fall back on pure perl modules, set the
-variable like this (C<export> may be C<setenv>, C<set> and the likes,
-depending on your environment):
-
- > export PERL_JSON_BACKEND=JSON::XS
-
-If you prefer Cpanel::JSON::XS to JSON::XS, then:
-
- > export PERL_JSON_BACKEND=Cpanel::JSON::XS,JSON::XS,JSON::PP
-
-You may also want to set this variable at the top of your test files, in order
-not to be bothered with incompatibilities between backends (you need to wrap
-this in C<BEGIN>, and set before actually C<use>-ing JSON module, as it decides
-its backend as soon as it's loaded):
-
- BEGIN { $ENV{PERL_JSON_BACKEND}='JSON::backportPP'; }
- use JSON;
-
-=head1 USING OPTIONAL FEATURES
-
-There are a few options you can set when you C<use> this module:
-
-=over
-
-=item -support_by_pp
-
- BEGIN { $ENV{PERL_JSON_BACKEND} = 'JSON::XS' }
-
- use JSON -support_by_pp;
-
- my $json = JSON->new;
- # escape_slash is for JSON::PP only.
- $json->allow_nonref->escape_slash->encode("/");
-
-With this option, this module loads its pure perl backend along with
-its XS backend (if available), and lets the XS backend to watch if you set
-a flag only JSON::PP supports. When you do, the internal JSON::XS object
-is replaced with a newly created JSON::PP object with the setting copied
-from the XS object, so that you can use JSON::PP flags (and its slower
-C<decode>/C<encode> methods) from then on. In other words, this is not
-something that allows you to hook JSON::XS to change its behavior while
-keeping its speed. JSON::XS and JSON::PP objects are quite different
-(JSON::XS object is a blessed scalar reference, while JSON::PP object is
-a blessed hash reference), and can't share their internals.
-
-To avoid needless overhead (by copying settings), you are advised not
-to use this option and just to use JSON::PP explicitly when you need
-JSON::PP features.
-
-=item -convert_blessed_universally
-
- use JSON -convert_blessed_universally;
-
- my $json = JSON->new->allow_nonref->convert_blessed;
- my $object = bless {foo => 'bar'}, 'Foo';
- $json->encode($object); # => {"foo":"bar"}
-
-JSON::XS-compatible backend modules don't encode blessed objects by
-default (except for their boolean values, which are typically blessed
-JSON::PP::Boolean objects). If you need to encode a data structure
-that may contain objects, you usually need to look into the structure
-and replace objects with alternative non-blessed values, or enable
-C<convert_blessed> and provide a C<TO_JSON> method for each object's
-(base) class that may be found in the structure, in order to let the
-methods replace the objects with whatever scalar values the methods
-return.
-
-If you need to serialise data structures that may contain arbitrary
-objects, it's probably better to use other serialisers (such as
-L<Sereal> or L<Storable> for example), but if you do want to use
-this module for that purpose, C<-convert_blessed_universally> option
-may help, which tweaks C<encode> method of the backend to install
-C<UNIVERSAL::TO_JSON> method (locally) before encoding, so that
-all the objects that don't have their own C<TO_JSON> method can
-fall back on the method in the C<UNIVERSAL> namespace. Note that you
-still need to enable C<convert_blessed> flag to actually encode
-objects in a data structure, and C<UNIVERSAL::TO_JSON> method
-installed by this option only converts blessed hash/array references
-into their unblessed clone (including private keys/values that are
-not supposed to be exposed). Other blessed references will be
-converted into null.
-
-This feature is experimental and may be removed in the future.
-
-=item -no_export
-
-When you don't want to import functional interfaces from a module, you
-usually supply C<()> to its C<use> statement.
-
- use JSON (); # no functional interfaces
-
-If you don't want to import functional interfaces, but you also want to
-use any of the above options, add C<-no_export> to the option list.
-
- # no functional interfaces, while JSON::PP support is enabled.
- use JSON -support_by_pp, -no_export;
-
-=back
-
-=head1 FUNCTIONAL INTERFACE
-
-This section is taken from JSON::XS. C<encode_json> and C<decode_json>
-are exported by default.
-
-This module also exports C<to_json> and C<from_json> for backward
-compatibility. These are slower, and may expect/generate different stuff
-from what C<encode_json> and C<decode_json> do, depending on their
-options. It's better just to use Object-Oriented interfaces than using
-these two functions.
-
-=head2 encode_json
-
- $json_text = encode_json $perl_scalar
-
-Converts the given Perl data structure to a UTF-8 encoded, binary string
-(that is, the string contains octets only). Croaks on error.
-
-This function call is functionally identical to:
-
- $json_text = JSON->new->utf8->encode($perl_scalar)
-
-Except being faster.
-
-=head2 decode_json
-
- $perl_scalar = decode_json $json_text
-
-The opposite of C<encode_json>: expects an UTF-8 (binary) string and tries
-to parse that as an UTF-8 encoded JSON text, returning the resulting
-reference. Croaks on error.
-
-This function call is functionally identical to:
-
- $perl_scalar = JSON->new->utf8->decode($json_text)
-
-Except being faster.
-
-=head2 to_json
-
- $json_text = to_json($perl_scalar[, $optional_hashref])
-
-Converts the given Perl data structure to a Unicode string by default.
-Croaks on error.
-
-Basically, this function call is functionally identical to:
-
- $json_text = JSON->new->encode($perl_scalar)
-
-Except being slower.
-
-You can pass an optional hash reference to modify its behavior, but
-that may change what C<to_json> expects/generates (see
-C<ENCODING/CODESET FLAG NOTES> for details).
-
- $json_text = to_json($perl_scalar, {utf8 => 1, pretty => 1})
- # => JSON->new->utf8(1)->pretty(1)->encode($perl_scalar)
-
-=head2 from_json
-
- $perl_scalar = from_json($json_text[, $optional_hashref])
-
-The opposite of C<to_json>: expects a Unicode string and tries
-to parse it, returning the resulting reference. Croaks on error.
-
-Basically, this function call is functionally identical to:
-
- $perl_scalar = JSON->new->decode($json_text)
-
-You can pass an optional hash reference to modify its behavior, but
-that may change what C<from_json> expects/generates (see
-C<ENCODING/CODESET FLAG NOTES> for details).
-
- $perl_scalar = from_json($json_text, {utf8 => 1})
- # => JSON->new->utf8(1)->decode($json_text)
-
-=head2 JSON::is_bool
-
- $is_boolean = JSON::is_bool($scalar)
-
-Returns true if the passed scalar represents either JSON::true or
-JSON::false, two constants that act like C<1> and C<0> respectively
-and are also used to represent JSON C<true> and C<false> in Perl strings.
-
-See L<MAPPING>, below, for more information on how JSON values are mapped to
-Perl.
-
-=head1 COMMON OBJECT-ORIENTED INTERFACE
-
-This section is also taken from JSON::XS.
-
-The object oriented interface lets you configure your own encoding or
-decoding style, within the limits of supported formats.
-
-=head2 new
-
- $json = JSON->new
-
-Creates a new JSON::XS-compatible backend object that can be used to de/encode JSON
-strings. All boolean flags described below are by default I<disabled>.
-
-The mutators for flags all return the backend object again and thus calls can
-be chained:
-
- my $json = JSON->new->utf8->space_after->encode({a => [1,2]})
- => {"a": [1, 2]}
-
-=head2 ascii
-
- $json = $json->ascii([$enable])
-
- $enabled = $json->get_ascii
-
-If C<$enable> is true (or missing), then the C<encode> method will not
-generate characters outside the code range C<0..127> (which is ASCII). Any
-Unicode characters outside that range will be escaped using either a
-single \uXXXX (BMP characters) or a double \uHHHH\uLLLLL escape sequence,
-as per RFC4627. The resulting encoded JSON text can be treated as a native
-Unicode string, an ascii-encoded, latin1-encoded or UTF-8 encoded string,
-or any other superset of ASCII.
-
-If C<$enable> is false, then the C<encode> method will not escape Unicode
-characters unless required by the JSON syntax or other flags. This results
-in a faster and more compact format.
-
-See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
-
-The main use for this flag is to produce JSON texts that can be
-transmitted over a 7-bit channel, as the encoded JSON texts will not
-contain any 8 bit characters.
-
- JSON->new->ascii(1)->encode([chr 0x10401])
- => ["\ud801\udc01"]
-
-=head2 latin1
-
- $json = $json->latin1([$enable])
-
- $enabled = $json->get_latin1
-
-If C<$enable> is true (or missing), then the C<encode> method will encode
-the resulting JSON text as latin1 (or iso-8859-1), escaping any characters
-outside the code range C<0..255>. The resulting string can be treated as a
-latin1-encoded JSON text or a native Unicode string. The C<decode> method
-will not be affected in any way by this flag, as C<decode> by default
-expects Unicode, which is a strict superset of latin1.
-
-If C<$enable> is false, then the C<encode> method will not escape Unicode
-characters unless required by the JSON syntax or other flags.
-
-See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
-
-The main use for this flag is efficiently encoding binary data as JSON
-text, as most octets will not be escaped, resulting in a smaller encoded
-size. The disadvantage is that the resulting JSON text is encoded
-in latin1 (and must correctly be treated as such when storing and
-transferring), a rare encoding for JSON. It is therefore most useful when
-you want to store data structures known to contain binary data efficiently
-in files or databases, not when talking to other JSON encoders/decoders.
-
- JSON->new->latin1->encode (["\x{89}\x{abc}"]
- => ["\x{89}\\u0abc"] # (perl syntax, U+abc escaped, U+89 not)
-
-=head2 utf8
-
- $json = $json->utf8([$enable])
-
- $enabled = $json->get_utf8
-
-If C<$enable> is true (or missing), then the C<encode> method will encode
-the JSON result into UTF-8, as required by many protocols, while the
-C<decode> method expects to be handled an UTF-8-encoded string. Please
-note that UTF-8-encoded strings do not contain any characters outside the
-range C<0..255>, they are thus useful for bytewise/binary I/O. In future
-versions, enabling this option might enable autodetection of the UTF-16
-and UTF-32 encoding families, as described in RFC4627.
-
-If C<$enable> is false, then the C<encode> method will return the JSON
-string as a (non-encoded) Unicode string, while C<decode> expects thus a
-Unicode string. Any decoding or encoding (e.g. to UTF-8 or UTF-16) needs
-to be done yourself, e.g. using the Encode module.
-
-See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
-
-Example, output UTF-16BE-encoded JSON:
-
- use Encode;
- $jsontext = encode "UTF-16BE", JSON->new->encode ($object);
-
-Example, decode UTF-32LE-encoded JSON:
-
- use Encode;
- $object = JSON->new->decode (decode "UTF-32LE", $jsontext);
-
-=head2 pretty
-
- $json = $json->pretty([$enable])
-
-This enables (or disables) all of the C<indent>, C<space_before> and
-C<space_after> (and in the future possibly more) flags in one call to
-generate the most readable (or most compact) form possible.
-
-=head2 indent
-
- $json = $json->indent([$enable])
-
- $enabled = $json->get_indent
-
-If C<$enable> is true (or missing), then the C<encode> method will use a multiline
-format as output, putting every array member or object/hash key-value pair
-into its own line, indenting them properly.
-
-If C<$enable> is false, no newlines or indenting will be produced, and the
-resulting JSON text is guaranteed not to contain any C<newlines>.
-
-This setting has no effect when decoding JSON texts.
-
-=head2 space_before
-
- $json = $json->space_before([$enable])
-
- $enabled = $json->get_space_before
-
-If C<$enable> is true (or missing), then the C<encode> method will add an extra
-optional space before the C<:> separating keys from values in JSON objects.
-
-If C<$enable> is false, then the C<encode> method will not add any extra
-space at those places.
-
-This setting has no effect when decoding JSON texts. You will also
-most likely combine this setting with C<space_after>.
-
-Example, space_before enabled, space_after and indent disabled:
-
- {"key" :"value"}
-
-=head2 space_after
-
- $json = $json->space_after([$enable])
-
- $enabled = $json->get_space_after
-
-If C<$enable> is true (or missing), then the C<encode> method will add an extra
-optional space after the C<:> separating keys from values in JSON objects
-and extra whitespace after the C<,> separating key-value pairs and array
-members.
-
-If C<$enable> is false, then the C<encode> method will not add any extra
-space at those places.
-
-This setting has no effect when decoding JSON texts.
-
-Example, space_before and indent disabled, space_after enabled:
-
- {"key": "value"}
-
-=head2 relaxed
-
- $json = $json->relaxed([$enable])
-
- $enabled = $json->get_relaxed
-
-If C<$enable> is true (or missing), then C<decode> will accept some
-extensions to normal JSON syntax (see below). C<encode> will not be
-affected in anyway. I<Be aware that this option makes you accept invalid
-JSON texts as if they were valid!>. I suggest only to use this option to
-parse application-specific files written by humans (configuration files,
-resource files etc.)
-
-If C<$enable> is false (the default), then C<decode> will only accept
-valid JSON texts.
-
-Currently accepted extensions are:
-
-=over 4
-
-=item * list items can have an end-comma
-
-JSON I<separates> array elements and key-value pairs with commas. This
-can be annoying if you write JSON texts manually and want to be able to
-quickly append elements, so this extension accepts comma at the end of
-such items not just between them:
-
- [
- 1,
- 2, <- this comma not normally allowed
- ]
- {
- "k1": "v1",
- "k2": "v2", <- this comma not normally allowed
- }
-
-=item * shell-style '#'-comments
-
-Whenever JSON allows whitespace, shell-style comments are additionally
-allowed. They are terminated by the first carriage-return or line-feed
-character, after which more white-space and comments are allowed.
-
- [
- 1, # this comment not allowed in JSON
- # neither this one...
- ]
-
-=back
-
-=head2 canonical
-
- $json = $json->canonical([$enable])
-
- $enabled = $json->get_canonical
-
-If C<$enable> is true (or missing), then the C<encode> method will output JSON objects
-by sorting their keys. This is adding a comparatively high overhead.
-
-If C<$enable> is false, then the C<encode> method will output key-value
-pairs in the order Perl stores them (which will likely change between runs
-of the same script, and can change even within the same run from 5.18
-onwards).
-
-This option is useful if you want the same data structure to be encoded as
-the same JSON text (given the same overall settings). If it is disabled,
-the same hash might be encoded differently even if contains the same data,
-as key-value pairs have no inherent ordering in Perl.
-
-This setting has no effect when decoding JSON texts.
-
-This setting has currently no effect on tied hashes.
-
-=head2 allow_nonref
-
- $json = $json->allow_nonref([$enable])
-
- $enabled = $json->get_allow_nonref
-
-If C<$enable> is true (or missing), then the C<encode> method can convert a
-non-reference into its corresponding string, number or null JSON value,
-which is an extension to RFC4627. Likewise, C<decode> will accept those JSON
-values instead of croaking.
-
-If C<$enable> is false, then the C<encode> method will croak if it isn't
-passed an arrayref or hashref, as JSON texts must either be an object
-or array. Likewise, C<decode> will croak if given something that is not a
-JSON object or array.
-
-Example, encode a Perl scalar as JSON value with enabled C<allow_nonref>,
-resulting in an invalid JSON text:
-
- JSON->new->allow_nonref->encode ("Hello, World!")
- => "Hello, World!"
-
-=head2 allow_unknown
-
- $json = $json->allow_unknown ([$enable])
-
- $enabled = $json->get_allow_unknown
-
-If C<$enable> is true (or missing), then C<encode> will I<not> throw an
-exception when it encounters values it cannot represent in JSON (for
-example, filehandles) but instead will encode a JSON C<null> value. Note
-that blessed objects are not included here and are handled separately by
-c<allow_nonref>.
-
-If C<$enable> is false (the default), then C<encode> will throw an
-exception when it encounters anything it cannot encode as JSON.
-
-This option does not affect C<decode> in any way, and it is recommended to
-leave it off unless you know your communications partner.
-
-=head2 allow_blessed
-
- $json = $json->allow_blessed([$enable])
-
- $enabled = $json->get_allow_blessed
-
-See L<OBJECT SERIALISATION> for details.
-
-If C<$enable> is true (or missing), then the C<encode> method will not
-barf when it encounters a blessed reference that it cannot convert
-otherwise. Instead, a JSON C<null> value is encoded instead of the object.
-
-If C<$enable> is false (the default), then C<encode> will throw an
-exception when it encounters a blessed object that it cannot convert
-otherwise.
-
-This setting has no effect on C<decode>.
-
-=head2 convert_blessed
-
- $json = $json->convert_blessed([$enable])
-
- $enabled = $json->get_convert_blessed
-
-See L<OBJECT SERIALISATION> for details.
-
-If C<$enable> is true (or missing), then C<encode>, upon encountering a
-blessed object, will check for the availability of the C<TO_JSON> method
-on the object's class. If found, it will be called in scalar context and
-the resulting scalar will be encoded instead of the object.
-
-The C<TO_JSON> method may safely call die if it wants. If C<TO_JSON>
-returns other blessed objects, those will be handled in the same
-way. C<TO_JSON> must take care of not causing an endless recursion cycle
-(== crash) in this case. The name of C<TO_JSON> was chosen because other
-methods called by the Perl core (== not by the user of the object) are
-usually in upper case letters and to avoid collisions with any C<to_json>
-function or method.
-
-If C<$enable> is false (the default), then C<encode> will not consider
-this type of conversion.
-
-This setting has no effect on C<decode>.
-
-=head2 filter_json_object
-
- $json = $json->filter_json_object([$coderef])
-
-When C<$coderef> is specified, it will be called from C<decode> each
-time it decodes a JSON object. The only argument is a reference to the
-newly-created hash. If the code references returns a single scalar (which
-need not be a reference), this value (i.e. a copy of that scalar to avoid
-aliasing) is inserted into the deserialised data structure. If it returns
-an empty list (NOTE: I<not> C<undef>, which is a valid scalar), the
-original deserialised hash will be inserted. This setting can slow down
-decoding considerably.
-
-When C<$coderef> is omitted or undefined, any existing callback will
-be removed and C<decode> will not change the deserialised hash in any
-way.
-
-Example, convert all JSON objects into the integer 5:
-
- my $js = JSON->new->filter_json_object (sub { 5 });
- # returns [5]
- $js->decode ('[{}]'); # the given subroutine takes a hash reference.
- # throw an exception because allow_nonref is not enabled
- # so a lone 5 is not allowed.
- $js->decode ('{"a":1, "b":2}');
-
-=head2 filter_json_single_key_object
-
- $json = $json->filter_json_single_key_object($key [=> $coderef])
-
-Works remotely similar to C<filter_json_object>, but is only called for
-JSON objects having a single key named C<$key>.
-
-This C<$coderef> is called before the one specified via
-C<filter_json_object>, if any. It gets passed the single value in the JSON
-object. If it returns a single value, it will be inserted into the data
-structure. If it returns nothing (not even C<undef> but the empty list),
-the callback from C<filter_json_object> will be called next, as if no
-single-key callback were specified.
-
-If C<$coderef> is omitted or undefined, the corresponding callback will be
-disabled. There can only ever be one callback for a given key.
-
-As this callback gets called less often then the C<filter_json_object>
-one, decoding speed will not usually suffer as much. Therefore, single-key
-objects make excellent targets to serialise Perl objects into, especially
-as single-key JSON objects are as close to the type-tagged value concept
-as JSON gets (it's basically an ID/VALUE tuple). Of course, JSON does not
-support this in any way, so you need to make sure your data never looks
-like a serialised Perl hash.
-
-Typical names for the single object key are C<__class_whatever__>, or
-C<$__dollars_are_rarely_used__$> or C<}ugly_brace_placement>, or even
-things like C<__class_md5sum(classname)__>, to reduce the risk of clashing
-with real hashes.
-
-Example, decode JSON objects of the form C<< { "__widget__" => <id> } >>
-into the corresponding C<< $WIDGET{<id>} >> object:
-
- # return whatever is in $WIDGET{5}:
- JSON
- ->new
- ->filter_json_single_key_object (__widget__ => sub {
- $WIDGET{ $_[0] }
- })
- ->decode ('{"__widget__": 5')
-
- # this can be used with a TO_JSON method in some "widget" class
- # for serialisation to json:
- sub WidgetBase::TO_JSON {
- my ($self) = @_;
-
- unless ($self->{id}) {
- $self->{id} = ..get..some..id..;
- $WIDGET{$self->{id}} = $self;
- }
-
- { __widget__ => $self->{id} }
- }
-
-=head2 max_depth
-
- $json = $json->max_depth([$maximum_nesting_depth])
-
- $max_depth = $json->get_max_depth
-
-Sets the maximum nesting level (default C<512>) accepted while encoding
-or decoding. If a higher nesting level is detected in JSON text or a Perl
-data structure, then the encoder and decoder will stop and croak at that
-point.
-
-Nesting level is defined by number of hash- or arrayrefs that the encoder
-needs to traverse to reach a given point or the number of C<{> or C<[>
-characters without their matching closing parenthesis crossed to reach a
-given character in a string.
-
-Setting the maximum depth to one disallows any nesting, so that ensures
-that the object is only a single hash/object or array.
-
-If no argument is given, the highest possible setting will be used, which
-is rarely useful.
-
-=head2 max_size
-
- $json = $json->max_size([$maximum_string_size])
-
- $max_size = $json->get_max_size
-
-Set the maximum length a JSON text may have (in bytes) where decoding is
-being attempted. The default is C<0>, meaning no limit. When C<decode>
-is called on a string that is longer then this many bytes, it will not
-attempt to decode the string but throw an exception. This setting has no
-effect on C<encode> (yet).
-
-If no argument is given, the limit check will be deactivated (same as when
-C<0> is specified).
-
-=head2 encode
-
- $json_text = $json->encode($perl_scalar)
-
-Converts the given Perl value or data structure to its JSON
-representation. Croaks on error.
-
-=head2 decode
-
- $perl_scalar = $json->decode($json_text)
-
-The opposite of C<encode>: expects a JSON text and tries to parse it,
-returning the resulting simple scalar or reference. Croaks on error.
-
-=head2 decode_prefix
-
- ($perl_scalar, $characters) = $json->decode_prefix($json_text)
-
-This works like the C<decode> method, but instead of raising an exception
-when there is trailing garbage after the first JSON object, it will
-silently stop parsing there and return the number of characters consumed
-so far.
-
-This is useful if your JSON texts are not delimited by an outer protocol
-and you need to know where the JSON text ends.
-
- JSON->new->decode_prefix ("[1] the tail")
- => ([1], 3)
-
-=head1 ADDITIONAL METHODS
-
-The following methods are for this module only.
-
-=head2 backend
-
- $backend = $json->backend
-
-Since 2.92, C<backend> method returns an abstract backend module used currently,
-which should be JSON::Backend::XS (which inherits JSON::XS or Cpanel::JSON::XS),
-or JSON::Backend::PP (which inherits JSON::PP), not to monkey-patch the actual
-backend module globally.
-
-If you need to know what is used actually, use C<isa>, instead of string comparison.
-
-=head2 is_xs
-
- $boolean = $json->is_xs
-
-Returns true if the backend inherits JSON::XS or Cpanel::JSON::XS.
-
-=head2 is_pp
-
- $boolean = $json->is_pp
-
-Returns true if the backend inherits JSON::PP.
-
-=head2 property
-
- $settings = $json->property()
-
-Returns a reference to a hash that holds all the common flag settings.
-
- $json = $json->property('utf8' => 1)
- $value = $json->property('utf8') # 1
-
-You can use this to get/set a value of a particular flag.
-
-=head1 INCREMENTAL PARSING
-
-This section is also taken from JSON::XS.
-
-In some cases, there is the need for incremental parsing of JSON
-texts. While this module always has to keep both JSON text and resulting
-Perl data structure in memory at one time, it does allow you to parse a
-JSON stream incrementally. It does so by accumulating text until it has
-a full JSON object, which it then can decode. This process is similar to
-using C<decode_prefix> to see if a full JSON object is available, but
-is much more efficient (and can be implemented with a minimum of method
-calls).
-
-This module will only attempt to parse the JSON text once it is sure it
-has enough text to get a decisive result, using a very simple but
-truly incremental parser. This means that it sometimes won't stop as
-early as the full parser, for example, it doesn't detect mismatched
-parentheses. The only thing it guarantees is that it starts decoding as
-soon as a syntactically valid JSON text has been seen. This means you need
-to set resource limits (e.g. C<max_size>) to ensure the parser will stop
-parsing in the presence if syntax errors.
-
-The following methods implement this incremental parser.
-
-=head2 incr_parse
-
- $json->incr_parse( [$string] ) # void context
-
- $obj_or_undef = $json->incr_parse( [$string] ) # scalar context
-
- @obj_or_empty = $json->incr_parse( [$string] ) # list context
-
-This is the central parsing function. It can both append new text and
-extract objects from the stream accumulated so far (both of these
-functions are optional).
-
-If C<$string> is given, then this string is appended to the already
-existing JSON fragment stored in the C<$json> object.
-
-After that, if the function is called in void context, it will simply
-return without doing anything further. This can be used to add more text
-in as many chunks as you want.
-
-If the method is called in scalar context, then it will try to extract
-exactly I<one> JSON object. If that is successful, it will return this
-object, otherwise it will return C<undef>. If there is a parse error,
-this method will croak just as C<decode> would do (one can then use
-C<incr_skip> to skip the erroneous part). This is the most common way of
-using the method.
-
-And finally, in list context, it will try to extract as many objects
-from the stream as it can find and return them, or the empty list
-otherwise. For this to work, there must be no separators (other than
-whitespace) between the JSON objects or arrays, instead they must be
-concatenated back-to-back. If an error occurs, an exception will be
-raised as in the scalar context case. Note that in this case, any
-previously-parsed JSON texts will be lost.
-
-Example: Parse some JSON arrays/objects in a given string and return
-them.
-
- my @objs = JSON->new->incr_parse ("[5][7][1,2]");
-
-=head2 incr_text
-
- $lvalue_string = $json->incr_text
-
-This method returns the currently stored JSON fragment as an lvalue, that
-is, you can manipulate it. This I<only> works when a preceding call to
-C<incr_parse> in I<scalar context> successfully returned an object. Under
-all other circumstances you must not call this function (I mean it.
-although in simple tests it might actually work, it I<will> fail under
-real world conditions). As a special exception, you can also call this
-method before having parsed anything.
-
-That means you can only use this function to look at or manipulate text
-before or after complete JSON objects, not while the parser is in the
-middle of parsing a JSON object.
-
-This function is useful in two cases: a) finding the trailing text after a
-JSON object or b) parsing multiple JSON objects separated by non-JSON text
-(such as commas).
-
-=head2 incr_skip
-
- $json->incr_skip
-
-This will reset the state of the incremental parser and will remove
-the parsed text from the input buffer so far. This is useful after
-C<incr_parse> died, in which case the input buffer and incremental parser
-state is left unchanged, to skip the text parsed so far and to reset the
-parse state.
-
-The difference to C<incr_reset> is that only text until the parse error
-occurred is removed.
-
-=head2 incr_reset
-
- $json->incr_reset
-
-This completely resets the incremental parser, that is, after this call,
-it will be as if the parser had never parsed anything.
-
-This is useful if you want to repeatedly parse JSON objects and want to
-ignore any trailing data, which means you have to reset the parser after
-each successful decode.
-
-=head1 MAPPING
-
-Most of this section is also taken from JSON::XS.
-
-This section describes how the backend modules map Perl values to JSON values and
-vice versa. These mappings are designed to "do the right thing" in most
-circumstances automatically, preserving round-tripping characteristics
-(what you put in comes out as something equivalent).
-
-For the more enlightened: note that in the following descriptions,
-lowercase I<perl> refers to the Perl interpreter, while uppercase I<Perl>
-refers to the abstract Perl language itself.
-
-=head2 JSON -> PERL
-
-=over 4
-
-=item object
-
-A JSON object becomes a reference to a hash in Perl. No ordering of object
-keys is preserved (JSON does not preserver object key ordering itself).
-
-=item array
-
-A JSON array becomes a reference to an array in Perl.
-
-=item string
-
-A JSON string becomes a string scalar in Perl - Unicode codepoints in JSON
-are represented by the same codepoints in the Perl string, so no manual
-decoding is necessary.
-
-=item number
-
-A JSON number becomes either an integer, numeric (floating point) or
-string scalar in perl, depending on its range and any fractional parts. On
-the Perl level, there is no difference between those as Perl handles all
-the conversion details, but an integer may take slightly less memory and
-might represent more values exactly than floating point numbers.
-
-If the number consists of digits only, this module will try to represent
-it as an integer value. If that fails, it will try to represent it as
-a numeric (floating point) value if that is possible without loss of
-precision. Otherwise it will preserve the number as a string value (in
-which case you lose roundtripping ability, as the JSON number will be
-re-encoded to a JSON string).
-
-Numbers containing a fractional or exponential part will always be
-represented as numeric (floating point) values, possibly at a loss of
-precision (in which case you might lose perfect roundtripping ability, but
-the JSON number will still be re-encoded as a JSON number).
-
-Note that precision is not accuracy - binary floating point values cannot
-represent most decimal fractions exactly, and when converting from and to
-floating point, this module only guarantees precision up to but not including
-the least significant bit.
-
-=item true, false
-
-These JSON atoms become C<JSON::true> and C<JSON::false>,
-respectively. They are overloaded to act almost exactly like the numbers
-C<1> and C<0>. You can check whether a scalar is a JSON boolean by using
-the C<JSON::is_bool> function.
-
-=item null
-
-A JSON null atom becomes C<undef> in Perl.
-
-=item shell-style comments (C<< # I<text> >>)
-
-As a nonstandard extension to the JSON syntax that is enabled by the
-C<relaxed> setting, shell-style comments are allowed. They can start
-anywhere outside strings and go till the end of the line.
-
-=back
-
-
-=head2 PERL -> JSON
-
-The mapping from Perl to JSON is slightly more difficult, as Perl is a
-truly typeless language, so we can only guess which JSON type is meant by
-a Perl value.
-
-=over 4
-
-=item hash references
-
-Perl hash references become JSON objects. As there is no inherent
-ordering in hash keys (or JSON objects), they will usually be encoded
-in a pseudo-random order. This module can optionally sort the hash keys
-(determined by the I<canonical> flag), so the same data structure will
-serialise to the same JSON text (given same settings and version of
-the same backend), but this incurs a runtime overhead and is only rarely useful,
-e.g. when you want to compare some JSON text against another for equality.
-
-=item array references
-
-Perl array references become JSON arrays.
-
-=item other references
-
-Other unblessed references are generally not allowed and will cause an
-exception to be thrown, except for references to the integers C<0> and
-C<1>, which get turned into C<false> and C<true> atoms in JSON. You can
-also use C<JSON::false> and C<JSON::true> to improve readability.
-
- encode_json [\0,JSON::true] # yields [false,true]
-
-=item JSON::true, JSON::false, JSON::null
-
-These special values become JSON true and JSON false values,
-respectively. You can also use C<\1> and C<\0> directly if you want.
-
-=item blessed objects
-
-Blessed objects are not directly representable in JSON, but C<JSON::XS>
-allows various ways of handling objects. See L<OBJECT SERIALISATION>,
-below, for details.
-
-=item simple scalars
-
-Simple Perl scalars (any scalar that is not a reference) are the most
-difficult objects to encode: this module will encode undefined scalars as
-JSON C<null> values, scalars that have last been used in a string context
-before encoding as JSON strings, and anything else as number value:
-
- # dump as number
- encode_json [2] # yields [2]
- encode_json [-3.0e17] # yields [-3e+17]
- my $value = 5; encode_json [$value] # yields [5]
-
- # used as string, so dump as string
- print $value;
- encode_json [$value] # yields ["5"]
-
- # undef becomes null
- encode_json [undef] # yields [null]
-
-You can force the type to be a string by stringifying it:
-
- my $x = 3.1; # some variable containing a number
- "$x"; # stringified
- $x .= ""; # another, more awkward way to stringify
- print $x; # perl does it for you, too, quite often
-
-You can force the type to be a number by numifying it:
-
- my $x = "3"; # some variable containing a string
- $x += 0; # numify it, ensuring it will be dumped as a number
- $x *= 1; # same thing, the choice is yours.
-
-You can not currently force the type in other, less obscure, ways. Tell me
-if you need this capability (but don't forget to explain why it's needed
-:).
-
-Note that numerical precision has the same meaning as under Perl (so
-binary to decimal conversion follows the same rules as in Perl, which
-can differ to other languages). Also, your perl interpreter might expose
-extensions to the floating point numbers of your platform, such as
-infinities or NaN's - these cannot be represented in JSON, and it is an
-error to pass those in.
-
-=back
-
-=head2 OBJECT SERIALISATION
-
-As for Perl objects, this module only supports a pure JSON representation
-(without the ability to deserialise the object automatically again).
-
-=head3 SERIALISATION
-
-What happens when this module encounters a Perl object depends on the
-C<allow_blessed> and C<convert_blessed> settings, which are used in
-this order:
-
-=over 4
-
-=item 1. C<convert_blessed> is enabled and the object has a C<TO_JSON> method.
-
-In this case, the C<TO_JSON> method of the object is invoked in scalar
-context. It must return a single scalar that can be directly encoded into
-JSON. This scalar replaces the object in the JSON text.
-
-For example, the following C<TO_JSON> method will convert all L<URI>
-objects to JSON strings when serialised. The fact that these values
-originally were L<URI> objects is lost.
-
- sub URI::TO_JSON {
- my ($uri) = @_;
- $uri->as_string
- }
-
-=item 2. C<allow_blessed> is enabled.
-
-The object will be serialised as a JSON null value.
-
-=item 3. none of the above
-
-If none of the settings are enabled or the respective methods are missing,
-this module throws an exception.
-
-=back
-
-=head1 ENCODING/CODESET FLAG NOTES
-
-This section is taken from JSON::XS.
-
-The interested reader might have seen a number of flags that signify
-encodings or codesets - C<utf8>, C<latin1> and C<ascii>. There seems to be
-some confusion on what these do, so here is a short comparison:
-
-C<utf8> controls whether the JSON text created by C<encode> (and expected
-by C<decode>) is UTF-8 encoded or not, while C<latin1> and C<ascii> only
-control whether C<encode> escapes character values outside their respective
-codeset range. Neither of these flags conflict with each other, although
-some combinations make less sense than others.
-
-Care has been taken to make all flags symmetrical with respect to
-C<encode> and C<decode>, that is, texts encoded with any combination of
-these flag values will be correctly decoded when the same flags are used
-- in general, if you use different flag settings while encoding vs. when
-decoding you likely have a bug somewhere.
-
-Below comes a verbose discussion of these flags. Note that a "codeset" is
-simply an abstract set of character-codepoint pairs, while an encoding
-takes those codepoint numbers and I<encodes> them, in our case into
-octets. Unicode is (among other things) a codeset, UTF-8 is an encoding,
-and ISO-8859-1 (= latin 1) and ASCII are both codesets I<and> encodings at
-the same time, which can be confusing.
-
-=over 4
-
-=item C<utf8> flag disabled
-
-When C<utf8> is disabled (the default), then C<encode>/C<decode> generate
-and expect Unicode strings, that is, characters with high ordinal Unicode
-values (> 255) will be encoded as such characters, and likewise such
-characters are decoded as-is, no changes to them will be done, except
-"(re-)interpreting" them as Unicode codepoints or Unicode characters,
-respectively (to Perl, these are the same thing in strings unless you do
-funny/weird/dumb stuff).
-
-This is useful when you want to do the encoding yourself (e.g. when you
-want to have UTF-16 encoded JSON texts) or when some other layer does
-the encoding for you (for example, when printing to a terminal using a
-filehandle that transparently encodes to UTF-8 you certainly do NOT want
-to UTF-8 encode your data first and have Perl encode it another time).
-
-=item C<utf8> flag enabled
-
-If the C<utf8>-flag is enabled, C<encode>/C<decode> will encode all
-characters using the corresponding UTF-8 multi-byte sequence, and will
-expect your input strings to be encoded as UTF-8, that is, no "character"
-of the input string must have any value > 255, as UTF-8 does not allow
-that.
-
-The C<utf8> flag therefore switches between two modes: disabled means you
-will get a Unicode string in Perl, enabled means you get an UTF-8 encoded
-octet/binary string in Perl.
-
-=item C<latin1> or C<ascii> flags enabled
-
-With C<latin1> (or C<ascii>) enabled, C<encode> will escape characters
-with ordinal values > 255 (> 127 with C<ascii>) and encode the remaining
-characters as specified by the C<utf8> flag.
-
-If C<utf8> is disabled, then the result is also correctly encoded in those
-character sets (as both are proper subsets of Unicode, meaning that a
-Unicode string with all character values < 256 is the same thing as a
-ISO-8859-1 string, and a Unicode string with all character values < 128 is
-the same thing as an ASCII string in Perl).
-
-If C<utf8> is enabled, you still get a correct UTF-8-encoded string,
-regardless of these flags, just some more characters will be escaped using
-C<\uXXXX> then before.
-
-Note that ISO-8859-1-I<encoded> strings are not compatible with UTF-8
-encoding, while ASCII-encoded strings are. That is because the ISO-8859-1
-encoding is NOT a subset of UTF-8 (despite the ISO-8859-1 I<codeset> being
-a subset of Unicode), while ASCII is.
-
-Surprisingly, C<decode> will ignore these flags and so treat all input
-values as governed by the C<utf8> flag. If it is disabled, this allows you
-to decode ISO-8859-1- and ASCII-encoded strings, as both strict subsets of
-Unicode. If it is enabled, you can correctly decode UTF-8 encoded strings.
-
-So neither C<latin1> nor C<ascii> are incompatible with the C<utf8> flag -
-they only govern when the JSON output engine escapes a character or not.
-
-The main use for C<latin1> is to relatively efficiently store binary data
-as JSON, at the expense of breaking compatibility with most JSON decoders.
-
-The main use for C<ascii> is to force the output to not contain characters
-with values > 127, which means you can interpret the resulting string
-as UTF-8, ISO-8859-1, ASCII, KOI8-R or most about any character set and
-8-bit-encoding, and still get the same data structure back. This is useful
-when your channel for JSON transfer is not 8-bit clean or the encoding
-might be mangled in between (e.g. in mail), and works because ASCII is a
-proper subset of most 8-bit and multibyte encodings in use in the world.
-
-=back
-
-=head1 BACKWARD INCOMPATIBILITY
-
-Since version 2.90, stringification (and string comparison) for
-C<JSON::true> and C<JSON::false> has not been overloaded. It shouldn't
-matter as long as you treat them as boolean values, but a code that
-expects they are stringified as "true" or "false" doesn't work as
-you have expected any more.
-
- if (JSON::true eq 'true') { # now fails
-
- print "The result is $JSON::true now."; # => The result is 1 now.
-
-And now these boolean values don't inherit JSON::Boolean, either.
-When you need to test a value is a JSON boolean value or not, use
-C<JSON::is_bool> function, instead of testing the value inherits
-a particular boolean class or not.
-
-=head1 BUGS
-
-Please report bugs on backend selection and additional features
-this module provides to RT or GitHub issues for this module:
-
-=over 4
-
-=item https://rt.cpan.org/Public/Dist/Display.html?Queue=JSON
-
-=item https://github.com/makamaka/JSON/issues
-
-=back
-
-Please report bugs and feature requests on decoding/encoding
-and boolean behaviors to the author of the backend module you
-are using.
-
-=head1 SEE ALSO
-
-L<JSON::XS>, L<Cpanel::JSON::XS>, L<JSON::PP> for backends.
-
-L<JSON::MaybeXS>, an alternative that prefers Cpanel::JSON::XS.
-
-C<RFC4627>(L<http://www.ietf.org/rfc/rfc4627.txt>)
-
-=head1 AUTHOR
-
-Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
-
-JSON::XS was written by Marc Lehmann <schmorp[at]schmorp.de>
-
-The release of this new version owes to the courtesy of Marc Lehmann.
-
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2005-2013 by Makamaka Hannyaharamitu
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/site/lib/JSON/MaybeXS.pm b/Master/tlpkg/tlperl/site/lib/JSON/MaybeXS.pm
new file mode 100755
index 00000000000..eee84f2e269
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/JSON/MaybeXS.pm
@@ -0,0 +1,323 @@
+package JSON::MaybeXS;
+
+use strict;
+use warnings FATAL => 'all';
+use base qw(Exporter);
+
+our $VERSION = '1.003010';
+$VERSION = eval $VERSION;
+
+sub _choose_json_module {
+ return 'Cpanel::JSON::XS' if $INC{'Cpanel/JSON/XS.pm'};
+ return 'JSON::XS' if $INC{'JSON/XS.pm'};
+
+ my @err;
+
+ return 'Cpanel::JSON::XS' if eval { require Cpanel::JSON::XS; 1; };
+ push @err, "Error loading Cpanel::JSON::XS: $@";
+
+ return 'JSON::XS' if eval { require JSON::XS; 1; };
+ push @err, "Error loading JSON::XS: $@";
+
+ return 'JSON::PP' if eval { require JSON::PP; 1 };
+ push @err, "Error loading JSON::PP: $@";
+
+ die join( "\n", "Couldn't load a JSON module:", @err );
+
+}
+
+BEGIN {
+ our $JSON_Class = _choose_json_module();
+ $JSON_Class->import(qw(encode_json decode_json));
+}
+
+our @EXPORT = qw(encode_json decode_json JSON);
+my @EXPORT_ALL = qw(is_bool);
+our @EXPORT_OK = qw(is_bool to_json from_json);
+our %EXPORT_TAGS = ( all => [ @EXPORT, @EXPORT_ALL ],
+ legacy => [ @EXPORT, @EXPORT_OK ],
+ );
+
+sub JSON () { our $JSON_Class }
+
+sub new {
+ shift;
+ my %args = @_ == 1 ? %{$_[0]} : @_;
+ my $new = (our $JSON_Class)->new;
+ $new->$_($args{$_}) for keys %args;
+ return $new;
+}
+
+use Scalar::Util ();
+
+sub is_bool {
+ die 'is_bool is not a method' if $_[1];
+
+ Scalar::Util::blessed($_[0])
+ and ($_[0]->isa('JSON::XS::Boolean')
+ or $_[0]->isa('Cpanel::JSON::XS::Boolean')
+ or $_[0]->isa('JSON::PP::Boolean'));
+}
+
+# (mostly) CopyPasta from JSON.pm version 2.90
+use Carp ();
+
+sub from_json ($@) {
+ if ( ref($_[0]) =~ /^JSON/ or $_[0] =~ /^JSON/ ) {
+ Carp::croak "from_json should not be called as a method.";
+ }
+ my $json = JSON()->new;
+
+ if (@_ == 2 and ref $_[1] eq 'HASH') {
+ my $opt = $_[1];
+ for my $method (keys %$opt) {
+ $json->$method( $opt->{$method} );
+ }
+ }
+
+ return $json->decode( $_[0] );
+}
+
+sub to_json ($@) {
+ if (
+ ref($_[0]) =~ /^JSON/
+ or (@_ > 2 and $_[0] =~ /^JSON/)
+ ) {
+ Carp::croak "to_json should not be called as a method.";
+ }
+ my $json = JSON()->new;
+
+ if (@_ == 2 and ref $_[1] eq 'HASH') {
+ my $opt = $_[1];
+ for my $method (keys %$opt) {
+ $json->$method( $opt->{$method} );
+ }
+ }
+
+ $json->encode($_[0]);
+}
+
+1;
+
+=head1 NAME
+
+JSON::MaybeXS - Use L<Cpanel::JSON::XS> with a fallback to L<JSON::XS> and L<JSON::PP>
+
+=head1 SYNOPSIS
+
+ use JSON::MaybeXS;
+
+ my $data_structure = decode_json($json_input);
+
+ my $json_output = encode_json($data_structure);
+
+ my $json = JSON()->new;
+
+ my $json_with_args = JSON::MaybeXS->new(utf8 => 1); # or { utf8 => 1 }
+
+=head1 DESCRIPTION
+
+This module first checks to see if either L<Cpanel::JSON::XS> or
+L<JSON::XS> is already loaded, in which case it uses that module. Otherwise
+it tries to load L<Cpanel::JSON::XS>, then L<JSON::XS>, then L<JSON::PP>
+in order, and either uses the first module it finds or throws an error.
+
+It then exports the C<encode_json> and C<decode_json> functions from the
+loaded module, along with a C<JSON> constant that returns the class name
+for calling C<new> on.
+
+If you're writing fresh code rather than replacing L<JSON.pm|JSON> usage, you might
+want to pass options as constructor args rather than calling mutators, so
+we provide our own C<new> method that supports that.
+
+=head1 EXPORTS
+
+C<encode_json>, C<decode_json> and C<JSON> are exported by default; C<is_bool>
+is exported on request.
+
+To import only some symbols, specify them on the C<use> line:
+
+ use JSON::MaybeXS qw(encode_json decode_json is_bool); # functions only
+
+ use JSON::MaybeXS qw(JSON); # JSON constant only
+
+To import all available sensible symbols (C<encode_json>, C<decode_json>, and
+C<is_bool>), use C<:all>:
+
+ use JSON::MaybeXS ':all';
+
+To import all symbols including those needed by legacy apps that use L<JSON::PP>:
+
+ use JSON::MaybeXS ':legacy';
+
+This imports the C<to_json> and C<from_json> symbols as well as everything in
+C<:all>. NOTE: This is to support legacy code that makes extensive
+use of C<to_json> and C<from_json> which you are not yet in a position to
+refactor. DO NOT use this import tag in new code, in order to avoid
+the crawling horrors of getting UTF-8 support subtly wrong. See the
+documentation for L<JSON> for further details.
+
+=head2 encode_json
+
+This is the C<encode_json> function provided by the selected implementation
+module, and takes a perl data structure which is serialised to JSON text.
+
+ my $json_text = encode_json($data_structure);
+
+=head2 decode_json
+
+This is the C<decode_json> function provided by the selected implementation
+module, and takes a string of JSON text to deserialise to a perl data structure.
+
+ my $data_structure = decode_json($json_text);
+
+=head2 to_json, from_json
+
+See L<JSON> for details. These are included to support legacy code
+B<only>.
+
+=head2 JSON
+
+The C<JSON> constant returns the selected implementation module's name for
+use as a class name - so:
+
+ my $json_obj = JSON()->new; # returns a Cpanel::JSON::XS or JSON::PP object
+
+and that object can then be used normally:
+
+ my $data_structure = $json_obj->decode($json_text); # etc.
+
+The use of parentheses here is optional, and only used as a hint to the reader
+that this use of C<JSON> is a I<subroutine> call, I<not> a class name.
+
+=head2 is_bool
+
+ $is_boolean = is_bool($scalar)
+
+Returns true if the passed scalar represents either C<true> or
+C<false>, two constants that act like C<1> and C<0>, respectively
+and are used to represent JSON C<true> and C<false> values in Perl.
+
+Since this is a bare sub in the various backend classes, it cannot be called as
+a class method like the other interfaces; it must be called as a function, with
+no invocant. It supports the representation used in all JSON backends.
+
+=head1 CONSTRUCTOR
+
+=head2 new
+
+With L<JSON::PP>, L<JSON::XS> and L<Cpanel::JSON::XS> you are required to call
+mutators to set options, such as:
+
+ my $json = $class->new->utf8(1)->pretty(1);
+
+Since this is a trifle irritating and noticeably un-perlish, we also offer:
+
+ my $json = JSON::MaybeXS->new(utf8 => 1, pretty => 1);
+
+which works equivalently to the above (and in the usual tradition will accept
+a hashref instead of a hash, should you so desire).
+
+The resulting object is blessed into the underlying backend, which offers (at
+least) the methods C<encode> and C<decode>.
+
+=head1 BOOLEANS
+
+To include JSON-aware booleans (C<true>, C<false>) in your data, just do:
+
+ use JSON::MaybeXS;
+ my $true = JSON()->true;
+ my $false = JSON()->false;
+
+=head1 CONVERTING FROM JSON::Any
+
+L<JSON::Any> used to be the favoured compatibility layer above the various
+JSON backends, but over time has grown a lot of extra code to deal with legacy
+backends (e.g. L<JSON::Syck>) that are no longer needed. This is a rough guide of translating such code:
+
+Change code from:
+
+ use JSON::Any;
+ my $json = JSON::Any->new->objToJson($data); # or to_json($data), or Dump($data)
+
+to:
+
+ use JSON::MaybeXS;
+ my $json = encode_json($data);
+
+
+Change code from:
+
+ use JSON::Any;
+ my $data = JSON::Any->new->jsonToObj($json); # or from_json($json), or Load($json)
+
+to:
+
+ use JSON::MaybeXS;
+ my $json = decode_json($data);
+
+=head1 CAVEATS
+
+The C<new()> method in this module is technically a factory, not a
+constructor, because the objects it returns will I<NOT> be blessed into the
+C<JSON::MaybeXS> class.
+
+If you are using an object returned by this module as a Moo(se) attribute,
+this type constraint code:
+
+ is 'json' => ( isa => 'JSON::MaybeXS' );
+
+will I<NOT> do what you expect. Instead, either rely on the C<JSON> class
+constant described above, as so:
+
+ is 'json' => ( isa => JSON::MaybeXS::JSON() );
+
+Alternatively, you can use duck typing:
+
+ use Moose::Util::TypeConstraints 'duck_type';
+ is 'json' => ( isa => Object , duck_type([qw/ encode decode /]));
+
+=head1 INSTALLATION
+
+At installation time, F<Makefile.PL> will attempt to determine if you have a
+working compiler available, and therefore whether you are able to run XS code.
+If so, L<Cpanel::JSON::XS> will be added to the prerequisite list, unless
+L<JSON::XS> is already installed at a high enough version. L<JSON::XS> may
+also be upgraded to fix any incompatibility issues.
+
+Because running XS code is not mandatory and L<JSON::PP> (which is in perl
+core) is used as a fallback backend, this module is safe to be used in a suite
+of code that is fatpacked or installed into a restricted-resource environment.
+
+You can also prevent any XS dependencies from being installed by setting
+C<PUREPERL_ONLY=1> in F<Makefile.PL> options (or in the C<PERL_MM_OPT>
+environment variable), or using the C<--pp> or C<--pureperl> flags with the
+L<cpanminus client|cpanm>.
+
+=head1 AUTHOR
+
+mst - Matt S. Trout (cpan:MSTROUT) <mst@shadowcat.co.uk>
+
+=head1 CONTRIBUTORS
+
+=over 4
+
+=item * Clinton Gormley <drtech@cpan.org>
+
+=item * Karen Etheridge <ether@cpan.org>
+
+=item * Kieren Diment <diment@gmail.com>
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright (c) 2013 the C<JSON::MaybeXS> L</AUTHOR> and L</CONTRIBUTORS>
+as listed above.
+
+=head1 LICENSE
+
+This library is free software and may be distributed under the same terms
+as perl itself.
+
+=cut
diff --git a/Master/tlpkg/tlperl/site/lib/JSON/XS/Boolean.pm b/Master/tlpkg/tlperl/site/lib/JSON/XS/Boolean.pm
deleted file mode 100644
index 67f704b2a72..00000000000
--- a/Master/tlpkg/tlperl/site/lib/JSON/XS/Boolean.pm
+++ /dev/null
@@ -1,31 +0,0 @@
-=head1 NAME
-
-JSON::XS::Boolean - dummy module providing JSON::XS::Boolean
-
-=head1 SYNOPSIS
-
- # do not "use" yourself
-
-=head1 DESCRIPTION
-
-This module exists only to provide overload resolution for Storable and
-similar modules. It's only needed for compatibility with data serialised
-(by other modules such as Storable) that was decoded by JSON::XS versions
-before 3.0.
-
-Since 3.0, JSON::PP::Boolean has replaced it. Support for
-JSON::XS::Boolean will be removed in a future release.
-
-=cut
-
-use JSON::XS ();
-
-1;
-
-=head1 AUTHOR
-
- Marc Lehmann <schmorp@schmorp.de>
- http://home.schmorp.de/
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/site/lib/JSON/backportPP.pm b/Master/tlpkg/tlperl/site/lib/JSON/backportPP.pm
deleted file mode 100644
index 36132a3307b..00000000000
--- a/Master/tlpkg/tlperl/site/lib/JSON/backportPP.pm
+++ /dev/null
@@ -1,2854 +0,0 @@
-package # This is JSON::backportPP
- JSON::PP;
-
-# JSON-2.0
-
-use 5.005;
-use strict;
-
-use Exporter ();
-BEGIN { @JSON::backportPP::ISA = ('Exporter') }
-
-use overload ();
-use JSON::backportPP::Boolean;
-
-use Carp ();
-#use Devel::Peek;
-
-$JSON::backportPP::VERSION = '2.94';
-
-@JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json);
-
-# instead of hash-access, i tried index-access for speed.
-# but this method is not faster than what i expected. so it will be changed.
-
-use constant P_ASCII => 0;
-use constant P_LATIN1 => 1;
-use constant P_UTF8 => 2;
-use constant P_INDENT => 3;
-use constant P_CANONICAL => 4;
-use constant P_SPACE_BEFORE => 5;
-use constant P_SPACE_AFTER => 6;
-use constant P_ALLOW_NONREF => 7;
-use constant P_SHRINK => 8;
-use constant P_ALLOW_BLESSED => 9;
-use constant P_CONVERT_BLESSED => 10;
-use constant P_RELAXED => 11;
-
-use constant P_LOOSE => 12;
-use constant P_ALLOW_BIGNUM => 13;
-use constant P_ALLOW_BAREKEY => 14;
-use constant P_ALLOW_SINGLEQUOTE => 15;
-use constant P_ESCAPE_SLASH => 16;
-use constant P_AS_NONBLESSED => 17;
-
-use constant P_ALLOW_UNKNOWN => 18;
-
-use constant OLD_PERL => $] < 5.008 ? 1 : 0;
-use constant USE_B => 0;
-
-BEGIN {
-if (USE_B) {
- require B;
-}
-}
-
-BEGIN {
- my @xs_compati_bit_properties = qw(
- latin1 ascii utf8 indent canonical space_before space_after allow_nonref shrink
- allow_blessed convert_blessed relaxed allow_unknown
- );
- my @pp_bit_properties = qw(
- allow_singlequote allow_bignum loose
- allow_barekey escape_slash as_nonblessed
- );
-
- # Perl version check, Unicode handling is enabled?
- # Helper module sets @JSON::PP::_properties.
- if ( OLD_PERL ) {
- my $helper = $] >= 5.006 ? 'JSON::backportPP::Compat5006' : 'JSON::backportPP::Compat5005';
- eval qq| require $helper |;
- if ($@) { Carp::croak $@; }
- }
-
- for my $name (@xs_compati_bit_properties, @pp_bit_properties) {
- my $property_id = 'P_' . uc($name);
-
- eval qq/
- sub $name {
- my \$enable = defined \$_[1] ? \$_[1] : 1;
-
- if (\$enable) {
- \$_[0]->{PROPS}->[$property_id] = 1;
- }
- else {
- \$_[0]->{PROPS}->[$property_id] = 0;
- }
-
- \$_[0];
- }
-
- sub get_$name {
- \$_[0]->{PROPS}->[$property_id] ? 1 : '';
- }
- /;
- }
-
-}
-
-
-
-# Functions
-
-my $JSON; # cache
-
-sub encode_json ($) { # encode
- ($JSON ||= __PACKAGE__->new->utf8)->encode(@_);
-}
-
-
-sub decode_json { # decode
- ($JSON ||= __PACKAGE__->new->utf8)->decode(@_);
-}
-
-# Obsoleted
-
-sub to_json($) {
- Carp::croak ("JSON::PP::to_json has been renamed to encode_json.");
-}
-
-
-sub from_json($) {
- Carp::croak ("JSON::PP::from_json has been renamed to decode_json.");
-}
-
-
-# Methods
-
-sub new {
- my $class = shift;
- my $self = {
- max_depth => 512,
- max_size => 0,
- indent_length => 3,
- };
-
- bless $self, $class;
-}
-
-
-sub encode {
- return $_[0]->PP_encode_json($_[1]);
-}
-
-
-sub decode {
- return $_[0]->PP_decode_json($_[1], 0x00000000);
-}
-
-
-sub decode_prefix {
- return $_[0]->PP_decode_json($_[1], 0x00000001);
-}
-
-
-# accessor
-
-
-# pretty printing
-
-sub pretty {
- my ($self, $v) = @_;
- my $enable = defined $v ? $v : 1;
-
- if ($enable) { # indent_length(3) for JSON::XS compatibility
- $self->indent(1)->space_before(1)->space_after(1);
- }
- else {
- $self->indent(0)->space_before(0)->space_after(0);
- }
-
- $self;
-}
-
-# etc
-
-sub max_depth {
- my $max = defined $_[1] ? $_[1] : 0x80000000;
- $_[0]->{max_depth} = $max;
- $_[0];
-}
-
-
-sub get_max_depth { $_[0]->{max_depth}; }
-
-
-sub max_size {
- my $max = defined $_[1] ? $_[1] : 0;
- $_[0]->{max_size} = $max;
- $_[0];
-}
-
-
-sub get_max_size { $_[0]->{max_size}; }
-
-
-sub filter_json_object {
- if (defined $_[1] and ref $_[1] eq 'CODE') {
- $_[0]->{cb_object} = $_[1];
- } else {
- delete $_[0]->{cb_object};
- }
- $_[0]->{F_HOOK} = ($_[0]->{cb_object} or $_[0]->{cb_sk_object}) ? 1 : 0;
- $_[0];
-}
-
-sub filter_json_single_key_object {
- if (@_ == 1 or @_ > 3) {
- Carp::croak("Usage: JSON::PP::filter_json_single_key_object(self, key, callback = undef)");
- }
- if (defined $_[2] and ref $_[2] eq 'CODE') {
- $_[0]->{cb_sk_object}->{$_[1]} = $_[2];
- } else {
- delete $_[0]->{cb_sk_object}->{$_[1]};
- delete $_[0]->{cb_sk_object} unless %{$_[0]->{cb_sk_object} || {}};
- }
- $_[0]->{F_HOOK} = ($_[0]->{cb_object} or $_[0]->{cb_sk_object}) ? 1 : 0;
- $_[0];
-}
-
-sub indent_length {
- if (!defined $_[1] or $_[1] > 15 or $_[1] < 0) {
- Carp::carp "The acceptable range of indent_length() is 0 to 15.";
- }
- else {
- $_[0]->{indent_length} = $_[1];
- }
- $_[0];
-}
-
-sub get_indent_length {
- $_[0]->{indent_length};
-}
-
-sub sort_by {
- $_[0]->{sort_by} = defined $_[1] ? $_[1] : 1;
- $_[0];
-}
-
-sub allow_bigint {
- Carp::carp("allow_bigint() is obsoleted. use allow_bignum() instead.");
- $_[0]->allow_bignum;
-}
-
-###############################
-
-###
-### Perl => JSON
-###
-
-
-{ # Convert
-
- my $max_depth;
- my $indent;
- my $ascii;
- my $latin1;
- my $utf8;
- my $space_before;
- my $space_after;
- my $canonical;
- my $allow_blessed;
- my $convert_blessed;
-
- my $indent_length;
- my $escape_slash;
- my $bignum;
- my $as_nonblessed;
-
- my $depth;
- my $indent_count;
- my $keysort;
-
-
- sub PP_encode_json {
- my $self = shift;
- my $obj = shift;
-
- $indent_count = 0;
- $depth = 0;
-
- my $props = $self->{PROPS};
-
- ($ascii, $latin1, $utf8, $indent, $canonical, $space_before, $space_after, $allow_blessed,
- $convert_blessed, $escape_slash, $bignum, $as_nonblessed)
- = @{$props}[P_ASCII .. P_SPACE_AFTER, P_ALLOW_BLESSED, P_CONVERT_BLESSED,
- P_ESCAPE_SLASH, P_ALLOW_BIGNUM, P_AS_NONBLESSED];
-
- ($max_depth, $indent_length) = @{$self}{qw/max_depth indent_length/};
-
- $keysort = $canonical ? sub { $a cmp $b } : undef;
-
- if ($self->{sort_by}) {
- $keysort = ref($self->{sort_by}) eq 'CODE' ? $self->{sort_by}
- : $self->{sort_by} =~ /\D+/ ? $self->{sort_by}
- : sub { $a cmp $b };
- }
-
- encode_error("hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this)")
- if(!ref $obj and !$props->[ P_ALLOW_NONREF ]);
-
- my $str = $self->object_to_json($obj);
-
- $str .= "\n" if ( $indent ); # JSON::XS 2.26 compatible
-
- unless ($ascii or $latin1 or $utf8) {
- utf8::upgrade($str);
- }
-
- if ($props->[ P_SHRINK ]) {
- utf8::downgrade($str, 1);
- }
-
- return $str;
- }
-
-
- sub object_to_json {
- my ($self, $obj) = @_;
- my $type = ref($obj);
-
- if($type eq 'HASH'){
- return $self->hash_to_json($obj);
- }
- elsif($type eq 'ARRAY'){
- return $self->array_to_json($obj);
- }
- elsif ($type) { # blessed object?
- if (blessed($obj)) {
-
- return $self->value_to_json($obj) if ( $obj->isa('JSON::PP::Boolean') );
-
- if ( $convert_blessed and $obj->can('TO_JSON') ) {
- my $result = $obj->TO_JSON();
- if ( defined $result and ref( $result ) ) {
- if ( refaddr( $obj ) eq refaddr( $result ) ) {
- encode_error( sprintf(
- "%s::TO_JSON method returned same object as was passed instead of a new one",
- ref $obj
- ) );
- }
- }
-
- return $self->object_to_json( $result );
- }
-
- return "$obj" if ( $bignum and _is_bignum($obj) );
-
- if ($allow_blessed) {
- return $self->blessed_to_json($obj) if ($as_nonblessed); # will be removed.
- return 'null';
- }
- encode_error( sprintf("encountered object '%s', but neither allow_blessed "
- . "nor convert_blessed settings are enabled", $obj)
- );
- }
- else {
- return $self->value_to_json($obj);
- }
- }
- else{
- return $self->value_to_json($obj);
- }
- }
-
-
- sub hash_to_json {
- my ($self, $obj) = @_;
- my @res;
-
- encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)")
- if (++$depth > $max_depth);
-
- my ($pre, $post) = $indent ? $self->_up_indent() : ('', '');
- my $del = ($space_before ? ' ' : '') . ':' . ($space_after ? ' ' : '');
-
- for my $k ( _sort( $obj ) ) {
- if ( OLD_PERL ) { utf8::decode($k) } # key for Perl 5.6 / be optimized
- push @res, $self->string_to_json( $k )
- . $del
- . ( ref $obj->{$k} ? $self->object_to_json( $obj->{$k} ) : $self->value_to_json( $obj->{$k} ) );
- }
-
- --$depth;
- $self->_down_indent() if ($indent);
-
- return '{}' unless @res;
- return '{' . $pre . join( ",$pre", @res ) . $post . '}';
- }
-
-
- sub array_to_json {
- my ($self, $obj) = @_;
- my @res;
-
- encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)")
- if (++$depth > $max_depth);
-
- my ($pre, $post) = $indent ? $self->_up_indent() : ('', '');
-
- for my $v (@$obj){
- push @res, ref($v) ? $self->object_to_json($v) : $self->value_to_json($v);
- }
-
- --$depth;
- $self->_down_indent() if ($indent);
-
- return '[]' unless @res;
- return '[' . $pre . join( ",$pre", @res ) . $post . ']';
- }
-
- sub _looks_like_number {
- my $value = shift;
- if (USE_B) {
- my $b_obj = B::svref_2object(\$value);
- my $flags = $b_obj->FLAGS;
- return 1 if $flags & ( B::SVp_IOK() | B::SVp_NOK() ) and !( $flags & B::SVp_POK() );
- return;
- } else {
- no warnings 'numeric';
- # detect numbers
- # string & "" -> ""
- # number & "" -> 0 (with warning)
- # nan and inf can detect as numbers, so check with * 0
- return unless length((my $dummy = "") & $value);
- return unless 0 + $value eq $value;
- return 1 if $value * 0 == 0;
- return -1; # inf/nan
- }
- }
-
- sub value_to_json {
- my ($self, $value) = @_;
-
- return 'null' if(!defined $value);
-
- my $type = ref($value);
-
- if (!$type) {
- if (_looks_like_number($value)) {
- return $value;
- }
- return $self->string_to_json($value);
- }
- elsif( blessed($value) and $value->isa('JSON::PP::Boolean') ){
- return $$value == 1 ? 'true' : 'false';
- }
- else {
- if ((overload::StrVal($value) =~ /=(\w+)/)[0]) {
- return $self->value_to_json("$value");
- }
-
- if ($type eq 'SCALAR' and defined $$value) {
- return $$value eq '1' ? 'true'
- : $$value eq '0' ? 'false'
- : $self->{PROPS}->[ P_ALLOW_UNKNOWN ] ? 'null'
- : encode_error("cannot encode reference to scalar");
- }
-
- if ( $self->{PROPS}->[ P_ALLOW_UNKNOWN ] ) {
- return 'null';
- }
- else {
- if ( $type eq 'SCALAR' or $type eq 'REF' ) {
- encode_error("cannot encode reference to scalar");
- }
- else {
- encode_error("encountered $value, but JSON can only represent references to arrays or hashes");
- }
- }
-
- }
- }
-
-
- my %esc = (
- "\n" => '\n',
- "\r" => '\r',
- "\t" => '\t',
- "\f" => '\f',
- "\b" => '\b',
- "\"" => '\"',
- "\\" => '\\\\',
- "\'" => '\\\'',
- );
-
-
- sub string_to_json {
- my ($self, $arg) = @_;
-
- $arg =~ s/([\x22\x5c\n\r\t\f\b])/$esc{$1}/g;
- $arg =~ s/\//\\\//g if ($escape_slash);
- $arg =~ s/([\x00-\x08\x0b\x0e-\x1f])/'\\u00' . unpack('H2', $1)/eg;
-
- if ($ascii) {
- $arg = JSON_PP_encode_ascii($arg);
- }
-
- if ($latin1) {
- $arg = JSON_PP_encode_latin1($arg);
- }
-
- if ($utf8) {
- utf8::encode($arg);
- }
-
- return '"' . $arg . '"';
- }
-
-
- sub blessed_to_json {
- my $reftype = reftype($_[1]) || '';
- if ($reftype eq 'HASH') {
- return $_[0]->hash_to_json($_[1]);
- }
- elsif ($reftype eq 'ARRAY') {
- return $_[0]->array_to_json($_[1]);
- }
- else {
- return 'null';
- }
- }
-
-
- sub encode_error {
- my $error = shift;
- Carp::croak "$error";
- }
-
-
- sub _sort {
- defined $keysort ? (sort $keysort (keys %{$_[0]})) : keys %{$_[0]};
- }
-
-
- sub _up_indent {
- my $self = shift;
- my $space = ' ' x $indent_length;
-
- my ($pre,$post) = ('','');
-
- $post = "\n" . $space x $indent_count;
-
- $indent_count++;
-
- $pre = "\n" . $space x $indent_count;
-
- return ($pre,$post);
- }
-
-
- sub _down_indent { $indent_count--; }
-
-
- sub PP_encode_box {
- {
- depth => $depth,
- indent_count => $indent_count,
- };
- }
-
-} # Convert
-
-
-sub _encode_ascii {
- join('',
- map {
- $_ <= 127 ?
- chr($_) :
- $_ <= 65535 ?
- sprintf('\u%04x', $_) : sprintf('\u%x\u%x', _encode_surrogates($_));
- } unpack('U*', $_[0])
- );
-}
-
-
-sub _encode_latin1 {
- join('',
- map {
- $_ <= 255 ?
- chr($_) :
- $_ <= 65535 ?
- sprintf('\u%04x', $_) : sprintf('\u%x\u%x', _encode_surrogates($_));
- } unpack('U*', $_[0])
- );
-}
-
-
-sub _encode_surrogates { # from perlunicode
- my $uni = $_[0] - 0x10000;
- return ($uni / 0x400 + 0xD800, $uni % 0x400 + 0xDC00);
-}
-
-
-sub _is_bignum {
- $_[0]->isa('Math::BigInt') or $_[0]->isa('Math::BigFloat');
-}
-
-
-
-#
-# JSON => Perl
-#
-
-my $max_intsize;
-
-BEGIN {
- my $checkint = 1111;
- for my $d (5..64) {
- $checkint .= 1;
- my $int = eval qq| $checkint |;
- if ($int =~ /[eE]/) {
- $max_intsize = $d - 1;
- last;
- }
- }
-}
-
-{ # PARSE
-
- my %escapes = ( # by Jeremy Muhlich <jmuhlich [at] bitflood.org>
- b => "\x8",
- t => "\x9",
- n => "\xA",
- f => "\xC",
- r => "\xD",
- '\\' => '\\',
- '"' => '"',
- '/' => '/',
- );
-
- my $text; # json data
- my $at; # offset
- my $ch; # first character
- my $len; # text length (changed according to UTF8 or NON UTF8)
- # INTERNAL
- my $depth; # nest counter
- my $encoding; # json text encoding
- my $is_valid_utf8; # temp variable
- my $utf8_len; # utf8 byte length
- # FLAGS
- my $utf8; # must be utf8
- my $max_depth; # max nest number of objects and arrays
- my $max_size;
- my $relaxed;
- my $cb_object;
- my $cb_sk_object;
-
- my $F_HOOK;
-
- my $allow_bignum; # using Math::BigInt/BigFloat
- my $singlequote; # loosely quoting
- my $loose; #
- my $allow_barekey; # bareKey
-
- sub _detect_utf_encoding {
- my $text = shift;
- my @octets = unpack('C4', $text);
- return 'unknown' unless defined $octets[3];
- return ( $octets[0] and $octets[1]) ? 'UTF-8'
- : (!$octets[0] and $octets[1]) ? 'UTF-16BE'
- : (!$octets[0] and !$octets[1]) ? 'UTF-32BE'
- : ( $octets[2] ) ? 'UTF-16LE'
- : (!$octets[2] ) ? 'UTF-32LE'
- : 'unknown';
- }
-
- sub PP_decode_json {
- my ($self, $want_offset);
-
- ($self, $text, $want_offset) = @_;
-
- ($at, $ch, $depth) = (0, '', 0);
-
- if ( !defined $text or ref $text ) {
- decode_error("malformed JSON string, neither array, object, number, string or atom");
- }
-
- my $props = $self->{PROPS};
-
- ($utf8, $relaxed, $loose, $allow_bignum, $allow_barekey, $singlequote)
- = @{$props}[P_UTF8, P_RELAXED, P_LOOSE .. P_ALLOW_SINGLEQUOTE];
-
- if ( $utf8 ) {
- $encoding = _detect_utf_encoding($text);
- if ($encoding ne 'UTF-8' and $encoding ne 'unknown') {
- require Encode;
- Encode::from_to($text, $encoding, 'utf-8');
- } else {
- utf8::downgrade( $text, 1 ) or Carp::croak("Wide character in subroutine entry");
- }
- }
- else {
- utf8::upgrade( $text );
- utf8::encode( $text );
- }
-
- $len = length $text;
-
- ($max_depth, $max_size, $cb_object, $cb_sk_object, $F_HOOK)
- = @{$self}{qw/max_depth max_size cb_object cb_sk_object F_HOOK/};
-
- if ($max_size > 1) {
- use bytes;
- my $bytes = length $text;
- decode_error(
- sprintf("attempted decode of JSON text of %s bytes size, but max_size is set to %s"
- , $bytes, $max_size), 1
- ) if ($bytes > $max_size);
- }
-
- white(); # remove head white space
-
- decode_error("malformed JSON string, neither array, object, number, string or atom") unless defined $ch; # Is there a first character for JSON structure?
-
- my $result = value();
-
- if ( !$props->[ P_ALLOW_NONREF ] and !ref $result ) {
- decode_error(
- 'JSON text must be an object or array (but found number, string, true, false or null,'
- . ' use allow_nonref to allow this)', 1);
- }
-
- Carp::croak('something wrong.') if $len < $at; # we won't arrive here.
-
- my $consumed = defined $ch ? $at - 1 : $at; # consumed JSON text length
-
- white(); # remove tail white space
-
- return ( $result, $consumed ) if $want_offset; # all right if decode_prefix
-
- decode_error("garbage after JSON object") if defined $ch;
-
- $result;
- }
-
-
- sub next_chr {
- return $ch = undef if($at >= $len);
- $ch = substr($text, $at++, 1);
- }
-
-
- sub value {
- white();
- return if(!defined $ch);
- return object() if($ch eq '{');
- return array() if($ch eq '[');
- return string() if($ch eq '"' or ($singlequote and $ch eq "'"));
- return number() if($ch =~ /[0-9]/ or $ch eq '-');
- return word();
- }
-
- sub string {
- my $utf16;
- my $is_utf8;
-
- ($is_valid_utf8, $utf8_len) = ('', 0);
-
- my $s = ''; # basically UTF8 flag on
-
- if($ch eq '"' or ($singlequote and $ch eq "'")){
- my $boundChar = $ch;
-
- OUTER: while( defined(next_chr()) ){
-
- if($ch eq $boundChar){
- next_chr();
-
- if ($utf16) {
- decode_error("missing low surrogate character in surrogate pair");
- }
-
- utf8::decode($s) if($is_utf8);
-
- return $s;
- }
- elsif($ch eq '\\'){
- next_chr();
- if(exists $escapes{$ch}){
- $s .= $escapes{$ch};
- }
- elsif($ch eq 'u'){ # UNICODE handling
- my $u = '';
-
- for(1..4){
- $ch = next_chr();
- last OUTER if($ch !~ /[0-9a-fA-F]/);
- $u .= $ch;
- }
-
- # U+D800 - U+DBFF
- if ($u =~ /^[dD][89abAB][0-9a-fA-F]{2}/) { # UTF-16 high surrogate?
- $utf16 = $u;
- }
- # U+DC00 - U+DFFF
- elsif ($u =~ /^[dD][c-fC-F][0-9a-fA-F]{2}/) { # UTF-16 low surrogate?
- unless (defined $utf16) {
- decode_error("missing high surrogate character in surrogate pair");
- }
- $is_utf8 = 1;
- $s .= JSON_PP_decode_surrogates($utf16, $u) || next;
- $utf16 = undef;
- }
- else {
- if (defined $utf16) {
- decode_error("surrogate pair expected");
- }
-
- if ( ( my $hex = hex( $u ) ) > 127 ) {
- $is_utf8 = 1;
- $s .= JSON_PP_decode_unicode($u) || next;
- }
- else {
- $s .= chr $hex;
- }
- }
-
- }
- else{
- unless ($loose) {
- $at -= 2;
- decode_error('illegal backslash escape sequence in string');
- }
- $s .= $ch;
- }
- }
- else{
-
- if ( ord $ch > 127 ) {
- unless( $ch = is_valid_utf8($ch) ) {
- $at -= 1;
- decode_error("malformed UTF-8 character in JSON string");
- }
- else {
- $at += $utf8_len - 1;
- }
-
- $is_utf8 = 1;
- }
-
- if (!$loose) {
- if ($ch =~ /[\x00-\x1f\x22\x5c]/) { # '/' ok
- $at--;
- decode_error('invalid character encountered while parsing JSON string');
- }
- }
-
- $s .= $ch;
- }
- }
- }
-
- decode_error("unexpected end of string while parsing JSON string");
- }
-
-
- sub white {
- while( defined $ch ){
- if($ch eq '' or $ch =~ /\A[ \t\r\n]\z/){
- next_chr();
- }
- elsif($relaxed and $ch eq '/'){
- next_chr();
- if(defined $ch and $ch eq '/'){
- 1 while(defined(next_chr()) and $ch ne "\n" and $ch ne "\r");
- }
- elsif(defined $ch and $ch eq '*'){
- next_chr();
- while(1){
- if(defined $ch){
- if($ch eq '*'){
- if(defined(next_chr()) and $ch eq '/'){
- next_chr();
- last;
- }
- }
- else{
- next_chr();
- }
- }
- else{
- decode_error("Unterminated comment");
- }
- }
- next;
- }
- else{
- $at--;
- decode_error("malformed JSON string, neither array, object, number, string or atom");
- }
- }
- else{
- if ($relaxed and $ch eq '#') { # correctly?
- pos($text) = $at;
- $text =~ /\G([^\n]*(?:\r\n|\r|\n|$))/g;
- $at = pos($text);
- next_chr;
- next;
- }
-
- last;
- }
- }
- }
-
-
- sub array {
- my $a = $_[0] || []; # you can use this code to use another array ref object.
-
- decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')
- if (++$depth > $max_depth);
-
- next_chr();
- white();
-
- if(defined $ch and $ch eq ']'){
- --$depth;
- next_chr();
- return $a;
- }
- else {
- while(defined($ch)){
- push @$a, value();
-
- white();
-
- if (!defined $ch) {
- last;
- }
-
- if($ch eq ']'){
- --$depth;
- next_chr();
- return $a;
- }
-
- if($ch ne ','){
- last;
- }
-
- next_chr();
- white();
-
- if ($relaxed and $ch eq ']') {
- --$depth;
- next_chr();
- return $a;
- }
-
- }
- }
-
- $at-- if defined $ch and $ch ne '';
- decode_error(", or ] expected while parsing array");
- }
-
-
- sub object {
- my $o = $_[0] || {}; # you can use this code to use another hash ref object.
- my $k;
-
- decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')
- if (++$depth > $max_depth);
- next_chr();
- white();
-
- if(defined $ch and $ch eq '}'){
- --$depth;
- next_chr();
- if ($F_HOOK) {
- return _json_object_hook($o);
- }
- return $o;
- }
- else {
- while (defined $ch) {
- $k = ($allow_barekey and $ch ne '"' and $ch ne "'") ? bareKey() : string();
- white();
-
- if(!defined $ch or $ch ne ':'){
- $at--;
- decode_error("':' expected");
- }
-
- next_chr();
- $o->{$k} = value();
- white();
-
- last if (!defined $ch);
-
- if($ch eq '}'){
- --$depth;
- next_chr();
- if ($F_HOOK) {
- return _json_object_hook($o);
- }
- return $o;
- }
-
- if($ch ne ','){
- last;
- }
-
- next_chr();
- white();
-
- if ($relaxed and $ch eq '}') {
- --$depth;
- next_chr();
- if ($F_HOOK) {
- return _json_object_hook($o);
- }
- return $o;
- }
-
- }
-
- }
-
- $at-- if defined $ch and $ch ne '';
- decode_error(", or } expected while parsing object/hash");
- }
-
-
- sub bareKey { # doesn't strictly follow Standard ECMA-262 3rd Edition
- my $key;
- while($ch =~ /[^\x00-\x23\x25-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\x7F]/){
- $key .= $ch;
- next_chr();
- }
- return $key;
- }
-
-
- sub word {
- my $word = substr($text,$at-1,4);
-
- if($word eq 'true'){
- $at += 3;
- next_chr;
- return $JSON::PP::true;
- }
- elsif($word eq 'null'){
- $at += 3;
- next_chr;
- return undef;
- }
- elsif($word eq 'fals'){
- $at += 3;
- if(substr($text,$at,1) eq 'e'){
- $at++;
- next_chr;
- return $JSON::PP::false;
- }
- }
-
- $at--; # for decode_error report
-
- decode_error("'null' expected") if ($word =~ /^n/);
- decode_error("'true' expected") if ($word =~ /^t/);
- decode_error("'false' expected") if ($word =~ /^f/);
- decode_error("malformed JSON string, neither array, object, number, string or atom");
- }
-
-
- sub number {
- my $n = '';
- my $v;
- my $is_dec;
- my $is_exp;
-
- if($ch eq '-'){
- $n = '-';
- next_chr;
- if (!defined $ch or $ch !~ /\d/) {
- decode_error("malformed number (no digits after initial minus)");
- }
- }
-
- # According to RFC4627, hex or oct digits are invalid.
- if($ch eq '0'){
- my $peek = substr($text,$at,1);
- if($peek =~ /^[0-9a-dfA-DF]/){ # e may be valid (exponential)
- decode_error("malformed number (leading zero must not be followed by another digit)");
- }
- $n .= $ch;
- next_chr;
- }
-
- while(defined $ch and $ch =~ /\d/){
- $n .= $ch;
- next_chr;
- }
-
- if(defined $ch and $ch eq '.'){
- $n .= '.';
- $is_dec = 1;
-
- next_chr;
- if (!defined $ch or $ch !~ /\d/) {
- decode_error("malformed number (no digits after decimal point)");
- }
- else {
- $n .= $ch;
- }
-
- while(defined(next_chr) and $ch =~ /\d/){
- $n .= $ch;
- }
- }
-
- if(defined $ch and ($ch eq 'e' or $ch eq 'E')){
- $n .= $ch;
- $is_exp = 1;
- next_chr;
-
- if(defined($ch) and ($ch eq '+' or $ch eq '-')){
- $n .= $ch;
- next_chr;
- if (!defined $ch or $ch =~ /\D/) {
- decode_error("malformed number (no digits after exp sign)");
- }
- $n .= $ch;
- }
- elsif(defined($ch) and $ch =~ /\d/){
- $n .= $ch;
- }
- else {
- decode_error("malformed number (no digits after exp sign)");
- }
-
- while(defined(next_chr) and $ch =~ /\d/){
- $n .= $ch;
- }
-
- }
-
- $v .= $n;
-
- if ($is_dec or $is_exp) {
- if ($allow_bignum) {
- require Math::BigFloat;
- return Math::BigFloat->new($v);
- }
- } else {
- if (length $v > $max_intsize) {
- if ($allow_bignum) { # from Adam Sussman
- require Math::BigInt;
- return Math::BigInt->new($v);
- }
- else {
- return "$v";
- }
- }
- }
-
- return $is_dec ? $v/1.0 : 0+$v;
- }
-
-
- sub is_valid_utf8 {
-
- $utf8_len = $_[0] =~ /[\x00-\x7F]/ ? 1
- : $_[0] =~ /[\xC2-\xDF]/ ? 2
- : $_[0] =~ /[\xE0-\xEF]/ ? 3
- : $_[0] =~ /[\xF0-\xF4]/ ? 4
- : 0
- ;
-
- return unless $utf8_len;
-
- my $is_valid_utf8 = substr($text, $at - 1, $utf8_len);
-
- return ( $is_valid_utf8 =~ /^(?:
- [\x00-\x7F]
- |[\xC2-\xDF][\x80-\xBF]
- |[\xE0][\xA0-\xBF][\x80-\xBF]
- |[\xE1-\xEC][\x80-\xBF][\x80-\xBF]
- |[\xED][\x80-\x9F][\x80-\xBF]
- |[\xEE-\xEF][\x80-\xBF][\x80-\xBF]
- |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF]
- |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF]
- |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF]
- )$/x ) ? $is_valid_utf8 : '';
- }
-
-
- sub decode_error {
- my $error = shift;
- my $no_rep = shift;
- my $str = defined $text ? substr($text, $at) : '';
- my $mess = '';
- my $type = 'U*';
-
- if ( OLD_PERL ) {
- my $type = $] < 5.006 ? 'C*'
- : utf8::is_utf8( $str ) ? 'U*' # 5.6
- : 'C*'
- ;
- }
-
- for my $c ( unpack( $type, $str ) ) { # emulate pv_uni_display() ?
- $mess .= $c == 0x07 ? '\a'
- : $c == 0x09 ? '\t'
- : $c == 0x0a ? '\n'
- : $c == 0x0d ? '\r'
- : $c == 0x0c ? '\f'
- : $c < 0x20 ? sprintf('\x{%x}', $c)
- : $c == 0x5c ? '\\\\'
- : $c < 0x80 ? chr($c)
- : sprintf('\x{%x}', $c)
- ;
- if ( length $mess >= 20 ) {
- $mess .= '...';
- last;
- }
- }
-
- unless ( length $mess ) {
- $mess = '(end of string)';
- }
-
- Carp::croak (
- $no_rep ? "$error" : "$error, at character offset $at (before \"$mess\")"
- );
-
- }
-
-
- sub _json_object_hook {
- my $o = $_[0];
- my @ks = keys %{$o};
-
- if ( $cb_sk_object and @ks == 1 and exists $cb_sk_object->{ $ks[0] } and ref $cb_sk_object->{ $ks[0] } ) {
- my @val = $cb_sk_object->{ $ks[0] }->( $o->{$ks[0]} );
- if (@val == 1) {
- return $val[0];
- }
- }
-
- my @val = $cb_object->($o) if ($cb_object);
- if (@val == 0 or @val > 1) {
- return $o;
- }
- else {
- return $val[0];
- }
- }
-
-
- sub PP_decode_box {
- {
- text => $text,
- at => $at,
- ch => $ch,
- len => $len,
- depth => $depth,
- encoding => $encoding,
- is_valid_utf8 => $is_valid_utf8,
- };
- }
-
-} # PARSE
-
-
-sub _decode_surrogates { # from perlunicode
- my $uni = 0x10000 + (hex($_[0]) - 0xD800) * 0x400 + (hex($_[1]) - 0xDC00);
- my $un = pack('U*', $uni);
- utf8::encode( $un );
- return $un;
-}
-
-
-sub _decode_unicode {
- my $un = pack('U', hex shift);
- utf8::encode( $un );
- return $un;
-}
-
-#
-# Setup for various Perl versions (the code from JSON::PP58)
-#
-
-BEGIN {
-
- unless ( defined &utf8::is_utf8 ) {
- require Encode;
- *utf8::is_utf8 = *Encode::is_utf8;
- }
-
- if ( !OLD_PERL ) {
- *JSON::PP::JSON_PP_encode_ascii = \&_encode_ascii;
- *JSON::PP::JSON_PP_encode_latin1 = \&_encode_latin1;
- *JSON::PP::JSON_PP_decode_surrogates = \&_decode_surrogates;
- *JSON::PP::JSON_PP_decode_unicode = \&_decode_unicode;
-
- if ($] < 5.008003) { # join() in 5.8.0 - 5.8.2 is broken.
- package # hide from PAUSE
- JSON::PP;
- require subs;
- subs->import('join');
- eval q|
- sub join {
- return '' if (@_ < 2);
- my $j = shift;
- my $str = shift;
- for (@_) { $str .= $j . $_; }
- return $str;
- }
- |;
- }
- }
-
-
- sub JSON::PP::incr_parse {
- local $Carp::CarpLevel = 1;
- ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_parse( @_ );
- }
-
-
- sub JSON::PP::incr_skip {
- ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_skip;
- }
-
-
- sub JSON::PP::incr_reset {
- ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_reset;
- }
-
- eval q{
- sub JSON::PP::incr_text : lvalue {
- $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
-
- if ( $_[0]->{_incr_parser}->{incr_pos} ) {
- Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
- }
- $_[0]->{_incr_parser}->{incr_text};
- }
- } if ( $] >= 5.006 );
-
-} # Setup for various Perl versions (the code from JSON::PP58)
-
-
-###############################
-# Utilities
-#
-
-BEGIN {
- eval 'require Scalar::Util';
- unless($@){
- *JSON::PP::blessed = \&Scalar::Util::blessed;
- *JSON::PP::reftype = \&Scalar::Util::reftype;
- *JSON::PP::refaddr = \&Scalar::Util::refaddr;
- }
- else{ # This code is from Scalar::Util.
- # warn $@;
- eval 'sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }';
- *JSON::PP::blessed = sub {
- local($@, $SIG{__DIE__}, $SIG{__WARN__});
- ref($_[0]) ? eval { $_[0]->a_sub_not_likely_to_be_here } : undef;
- };
- require B;
- my %tmap = qw(
- B::NULL SCALAR
- B::HV HASH
- B::AV ARRAY
- B::CV CODE
- B::IO IO
- B::GV GLOB
- B::REGEXP REGEXP
- );
- *JSON::PP::reftype = sub {
- my $r = shift;
-
- return undef unless length(ref($r));
-
- my $t = ref(B::svref_2object($r));
-
- return
- exists $tmap{$t} ? $tmap{$t}
- : length(ref($$r)) ? 'REF'
- : 'SCALAR';
- };
- *JSON::PP::refaddr = sub {
- return undef unless length(ref($_[0]));
-
- my $addr;
- if(defined(my $pkg = blessed($_[0]))) {
- $addr .= bless $_[0], 'Scalar::Util::Fake';
- bless $_[0], $pkg;
- }
- else {
- $addr .= $_[0]
- }
-
- $addr =~ /0x(\w+)/;
- local $^W;
- #no warnings 'portable';
- hex($1);
- }
- }
-}
-
-
-# shamelessly copied and modified from JSON::XS code.
-
-$JSON::PP::true = do { bless \(my $dummy = 1), "JSON::PP::Boolean" };
-$JSON::PP::false = do { bless \(my $dummy = 0), "JSON::PP::Boolean" };
-
-sub is_bool { defined $_[0] and UNIVERSAL::isa($_[0], "JSON::PP::Boolean"); }
-
-sub true { $JSON::PP::true }
-sub false { $JSON::PP::false }
-sub null { undef; }
-
-###############################
-
-package # hide from PAUSE
- JSON::PP::IncrParser;
-
-use strict;
-
-use constant INCR_M_WS => 0; # initial whitespace skipping
-use constant INCR_M_STR => 1; # inside string
-use constant INCR_M_BS => 2; # inside backslash
-use constant INCR_M_JSON => 3; # outside anything, count nesting
-use constant INCR_M_C0 => 4;
-use constant INCR_M_C1 => 5;
-
-$JSON::backportPP::IncrParser::VERSION = '1.01';
-
-sub new {
- my ( $class ) = @_;
-
- bless {
- incr_nest => 0,
- incr_text => undef,
- incr_pos => 0,
- incr_mode => 0,
- }, $class;
-}
-
-
-sub incr_parse {
- my ( $self, $coder, $text ) = @_;
-
- $self->{incr_text} = '' unless ( defined $self->{incr_text} );
-
- if ( defined $text ) {
- if ( utf8::is_utf8( $text ) and !utf8::is_utf8( $self->{incr_text} ) ) {
- utf8::upgrade( $self->{incr_text} ) ;
- utf8::decode( $self->{incr_text} ) ;
- }
- $self->{incr_text} .= $text;
- }
-
- if ( defined wantarray ) {
- my $max_size = $coder->get_max_size;
- my $p = $self->{incr_pos};
- my @ret;
- {
- do {
- unless ( $self->{incr_nest} <= 0 and $self->{incr_mode} == INCR_M_JSON ) {
- $self->_incr_parse( $coder );
-
- if ( $max_size and $self->{incr_pos} > $max_size ) {
- Carp::croak("attempted decode of JSON text of $self->{incr_pos} bytes size, but max_size is set to $max_size");
- }
- unless ( $self->{incr_nest} <= 0 and $self->{incr_mode} == INCR_M_JSON ) {
- # as an optimisation, do not accumulate white space in the incr buffer
- if ( $self->{incr_mode} == INCR_M_WS and $self->{incr_pos} ) {
- $self->{incr_pos} = 0;
- $self->{incr_text} = '';
- }
- last;
- }
- }
-
- my ($obj, $offset) = $coder->PP_decode_json( $self->{incr_text}, 0x00000001 );
- push @ret, $obj;
- use bytes;
- $self->{incr_text} = substr( $self->{incr_text}, $offset || 0 );
- $self->{incr_pos} = 0;
- $self->{incr_nest} = 0;
- $self->{incr_mode} = 0;
- last unless wantarray;
- } while ( wantarray );
- }
-
- if ( wantarray ) {
- return @ret;
- }
- else { # in scalar context
- return $ret[0] ? $ret[0] : undef;
- }
- }
-}
-
-
-sub _incr_parse {
- my ($self, $coder) = @_;
- my $text = $self->{incr_text};
- my $len = length $text;
- my $p = $self->{incr_pos};
-
-INCR_PARSE:
- while ( $len > $p ) {
- my $s = substr( $text, $p, 1 );
- last INCR_PARSE unless defined $s;
- my $mode = $self->{incr_mode};
-
- if ( $mode == INCR_M_WS ) {
- while ( $len > $p ) {
- $s = substr( $text, $p, 1 );
- last INCR_PARSE unless defined $s;
- if ( ord($s) > 0x20 ) {
- if ( $s eq '#' ) {
- $self->{incr_mode} = INCR_M_C0;
- redo INCR_PARSE;
- } else {
- $self->{incr_mode} = INCR_M_JSON;
- redo INCR_PARSE;
- }
- }
- $p++;
- }
- } elsif ( $mode == INCR_M_BS ) {
- $p++;
- $self->{incr_mode} = INCR_M_STR;
- redo INCR_PARSE;
- } elsif ( $mode == INCR_M_C0 or $mode == INCR_M_C1 ) {
- while ( $len > $p ) {
- $s = substr( $text, $p, 1 );
- last INCR_PARSE unless defined $s;
- if ( $s eq "\n" ) {
- $self->{incr_mode} = $self->{incr_mode} == INCR_M_C0 ? INCR_M_WS : INCR_M_JSON;
- last;
- }
- $p++;
- }
- next;
- } elsif ( $mode == INCR_M_STR ) {
- while ( $len > $p ) {
- $s = substr( $text, $p, 1 );
- last INCR_PARSE unless defined $s;
- if ( $s eq '"' ) {
- $p++;
- $self->{incr_mode} = INCR_M_JSON;
-
- last INCR_PARSE unless $self->{incr_nest};
- redo INCR_PARSE;
- }
- elsif ( $s eq '\\' ) {
- $p++;
- if ( !defined substr($text, $p, 1) ) {
- $self->{incr_mode} = INCR_M_BS;
- last INCR_PARSE;
- }
- }
- $p++;
- }
- } elsif ( $mode == INCR_M_JSON ) {
- while ( $len > $p ) {
- $s = substr( $text, $p++, 1 );
- if ( $s eq "\x00" ) {
- $p--;
- last INCR_PARSE;
- } elsif ( $s eq "\x09" or $s eq "\x0a" or $s eq "\x0d" or $s eq "\x20" ) {
- if ( !$self->{incr_nest} ) {
- $p--; # do not eat the whitespace, let the next round do it
- last INCR_PARSE;
- }
- next;
- } elsif ( $s eq '"' ) {
- $self->{incr_mode} = INCR_M_STR;
- redo INCR_PARSE;
- } elsif ( $s eq '[' or $s eq '{' ) {
- if ( ++$self->{incr_nest} > $coder->get_max_depth ) {
- Carp::croak('json text or perl structure exceeds maximum nesting level (max_depth set too low?)');
- }
- next;
- } elsif ( $s eq ']' or $s eq '}' ) {
- if ( --$self->{incr_nest} <= 0 ) {
- last INCR_PARSE;
- }
- } elsif ( $s eq '#' ) {
- $self->{incr_mode} = INCR_M_C1;
- redo INCR_PARSE;
- }
- }
- }
- }
-
- $self->{incr_pos} = $p;
- $self->{incr_parsing} = $p ? 1 : 0; # for backward compatibility
-}
-
-
-sub incr_text {
- if ( $_[0]->{incr_pos} ) {
- Carp::croak("incr_text cannot be called when the incremental parser already started parsing");
- }
- $_[0]->{incr_text};
-}
-
-
-sub incr_skip {
- my $self = shift;
- $self->{incr_text} = substr( $self->{incr_text}, $self->{incr_pos} );
- $self->{incr_pos} = 0;
- $self->{incr_mode} = 0;
- $self->{incr_nest} = 0;
-}
-
-
-sub incr_reset {
- my $self = shift;
- $self->{incr_text} = undef;
- $self->{incr_pos} = 0;
- $self->{incr_mode} = 0;
- $self->{incr_nest} = 0;
-}
-
-###############################
-
-
-1;
-__END__
-=pod
-
-=head1 NAME
-
-JSON::PP - JSON::XS compatible pure-Perl module.
-
-=head1 SYNOPSIS
-
- use JSON::PP;
-
- # exported functions, they croak on error
- # and expect/generate UTF-8
-
- $utf8_encoded_json_text = encode_json $perl_hash_or_arrayref;
- $perl_hash_or_arrayref = decode_json $utf8_encoded_json_text;
-
- # OO-interface
-
- $json = JSON::PP->new->ascii->pretty->allow_nonref;
-
- $pretty_printed_json_text = $json->encode( $perl_scalar );
- $perl_scalar = $json->decode( $json_text );
-
- # Note that JSON version 2.0 and above will automatically use
- # JSON::XS or JSON::PP, so you should be able to just:
-
- use JSON;
-
-
-=head1 VERSION
-
- 2.91_04
-
-=head1 DESCRIPTION
-
-JSON::PP is a pure perl JSON decoder/encoder (as of RFC4627, which
-we know is obsolete but we still stick to; see below for an option
-to support part of RFC7159), and (almost) compatible to much
-faster L<JSON::XS> written by Marc Lehmann in C. JSON::PP works as
-a fallback module when you use L<JSON> module without having
-installed JSON::XS.
-
-Because of this fallback feature of JSON.pm, JSON::PP tries not to
-be more JavaScript-friendly than JSON::XS (i.e. not to escape extra
-characters such as U+2028 and U+2029 nor support RFC7159/ECMA-404),
-in order for you not to lose such JavaScript-friendliness silently
-when you use JSON.pm and install JSON::XS for speed or by accident.
-If you need JavaScript-friendly RFC7159-compliant pure perl module,
-try L<JSON::Tiny>, which is derived from L<Mojolicious> web
-framework and is also smaller and faster than JSON::PP.
-
-JSON::PP has been in the Perl core since Perl 5.14, mainly for
-CPAN toolchain modules to parse META.json.
-
-=head1 FUNCTIONAL INTERFACE
-
-This section is taken from JSON::XS almost verbatim. C<encode_json>
-and C<decode_json> are exported by default.
-
-=head2 encode_json
-
- $json_text = encode_json $perl_scalar
-
-Converts the given Perl data structure to a UTF-8 encoded, binary string
-(that is, the string contains octets only). Croaks on error.
-
-This function call is functionally identical to:
-
- $json_text = JSON::PP->new->utf8->encode($perl_scalar)
-
-Except being faster.
-
-=head2 decode_json
-
- $perl_scalar = decode_json $json_text
-
-The opposite of C<encode_json>: expects an UTF-8 (binary) string and tries
-to parse that as an UTF-8 encoded JSON text, returning the resulting
-reference. Croaks on error.
-
-This function call is functionally identical to:
-
- $perl_scalar = JSON::PP->new->utf8->decode($json_text)
-
-Except being faster.
-
-=head2 JSON::PP::is_bool
-
- $is_boolean = JSON::PP::is_bool($scalar)
-
-Returns true if the passed scalar represents either JSON::PP::true or
-JSON::PP::false, two constants that act like C<1> and C<0> respectively
-and are also used to represent JSON C<true> and C<false> in Perl strings.
-
-See L<MAPPING>, below, for more information on how JSON values are mapped to
-Perl.
-
-=head1 OBJECT-ORIENTED INTERFACE
-
-This section is also taken from JSON::XS.
-
-The object oriented interface lets you configure your own encoding or
-decoding style, within the limits of supported formats.
-
-=head2 new
-
- $json = JSON::PP->new
-
-Creates a new JSON::PP object that can be used to de/encode JSON
-strings. All boolean flags described below are by default I<disabled>.
-
-The mutators for flags all return the JSON::PP object again and thus calls can
-be chained:
-
- my $json = JSON::PP->new->utf8->space_after->encode({a => [1,2]})
- => {"a": [1, 2]}
-
-=head2 ascii
-
- $json = $json->ascii([$enable])
-
- $enabled = $json->get_ascii
-
-If C<$enable> is true (or missing), then the C<encode> method will not
-generate characters outside the code range C<0..127> (which is ASCII). Any
-Unicode characters outside that range will be escaped using either a
-single \uXXXX (BMP characters) or a double \uHHHH\uLLLLL escape sequence,
-as per RFC4627. The resulting encoded JSON text can be treated as a native
-Unicode string, an ascii-encoded, latin1-encoded or UTF-8 encoded string,
-or any other superset of ASCII.
-
-If C<$enable> is false, then the C<encode> method will not escape Unicode
-characters unless required by the JSON syntax or other flags. This results
-in a faster and more compact format.
-
-See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
-
-The main use for this flag is to produce JSON texts that can be
-transmitted over a 7-bit channel, as the encoded JSON texts will not
-contain any 8 bit characters.
-
- JSON::PP->new->ascii(1)->encode([chr 0x10401])
- => ["\ud801\udc01"]
-
-=head2 latin1
-
- $json = $json->latin1([$enable])
-
- $enabled = $json->get_latin1
-
-If C<$enable> is true (or missing), then the C<encode> method will encode
-the resulting JSON text as latin1 (or iso-8859-1), escaping any characters
-outside the code range C<0..255>. The resulting string can be treated as a
-latin1-encoded JSON text or a native Unicode string. The C<decode> method
-will not be affected in any way by this flag, as C<decode> by default
-expects Unicode, which is a strict superset of latin1.
-
-If C<$enable> is false, then the C<encode> method will not escape Unicode
-characters unless required by the JSON syntax or other flags.
-
-See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
-
-The main use for this flag is efficiently encoding binary data as JSON
-text, as most octets will not be escaped, resulting in a smaller encoded
-size. The disadvantage is that the resulting JSON text is encoded
-in latin1 (and must correctly be treated as such when storing and
-transferring), a rare encoding for JSON. It is therefore most useful when
-you want to store data structures known to contain binary data efficiently
-in files or databases, not when talking to other JSON encoders/decoders.
-
- JSON::PP->new->latin1->encode (["\x{89}\x{abc}"]
- => ["\x{89}\\u0abc"] # (perl syntax, U+abc escaped, U+89 not)
-
-=head2 utf8
-
- $json = $json->utf8([$enable])
-
- $enabled = $json->get_utf8
-
-If C<$enable> is true (or missing), then the C<encode> method will encode
-the JSON result into UTF-8, as required by many protocols, while the
-C<decode> method expects to be handled an UTF-8-encoded string. Please
-note that UTF-8-encoded strings do not contain any characters outside the
-range C<0..255>, they are thus useful for bytewise/binary I/O. In future
-versions, enabling this option might enable autodetection of the UTF-16
-and UTF-32 encoding families, as described in RFC4627.
-
-If C<$enable> is false, then the C<encode> method will return the JSON
-string as a (non-encoded) Unicode string, while C<decode> expects thus a
-Unicode string. Any decoding or encoding (e.g. to UTF-8 or UTF-16) needs
-to be done yourself, e.g. using the Encode module.
-
-See also the section I<ENCODING/CODESET FLAG NOTES> later in this document.
-
-Example, output UTF-16BE-encoded JSON:
-
- use Encode;
- $jsontext = encode "UTF-16BE", JSON::PP->new->encode ($object);
-
-Example, decode UTF-32LE-encoded JSON:
-
- use Encode;
- $object = JSON::PP->new->decode (decode "UTF-32LE", $jsontext);
-
-=head2 pretty
-
- $json = $json->pretty([$enable])
-
-This enables (or disables) all of the C<indent>, C<space_before> and
-C<space_after> (and in the future possibly more) flags in one call to
-generate the most readable (or most compact) form possible.
-
-=head2 indent
-
- $json = $json->indent([$enable])
-
- $enabled = $json->get_indent
-
-If C<$enable> is true (or missing), then the C<encode> method will use a multiline
-format as output, putting every array member or object/hash key-value pair
-into its own line, indenting them properly.
-
-If C<$enable> is false, no newlines or indenting will be produced, and the
-resulting JSON text is guaranteed not to contain any C<newlines>.
-
-This setting has no effect when decoding JSON texts.
-
-The default indent space length is three.
-You can use C<indent_length> to change the length.
-
-=head2 space_before
-
- $json = $json->space_before([$enable])
-
- $enabled = $json->get_space_before
-
-If C<$enable> is true (or missing), then the C<encode> method will add an extra
-optional space before the C<:> separating keys from values in JSON objects.
-
-If C<$enable> is false, then the C<encode> method will not add any extra
-space at those places.
-
-This setting has no effect when decoding JSON texts. You will also
-most likely combine this setting with C<space_after>.
-
-Example, space_before enabled, space_after and indent disabled:
-
- {"key" :"value"}
-
-=head2 space_after
-
- $json = $json->space_after([$enable])
-
- $enabled = $json->get_space_after
-
-If C<$enable> is true (or missing), then the C<encode> method will add an extra
-optional space after the C<:> separating keys from values in JSON objects
-and extra whitespace after the C<,> separating key-value pairs and array
-members.
-
-If C<$enable> is false, then the C<encode> method will not add any extra
-space at those places.
-
-This setting has no effect when decoding JSON texts.
-
-Example, space_before and indent disabled, space_after enabled:
-
- {"key": "value"}
-
-=head2 relaxed
-
- $json = $json->relaxed([$enable])
-
- $enabled = $json->get_relaxed
-
-If C<$enable> is true (or missing), then C<decode> will accept some
-extensions to normal JSON syntax (see below). C<encode> will not be
-affected in anyway. I<Be aware that this option makes you accept invalid
-JSON texts as if they were valid!>. I suggest only to use this option to
-parse application-specific files written by humans (configuration files,
-resource files etc.)
-
-If C<$enable> is false (the default), then C<decode> will only accept
-valid JSON texts.
-
-Currently accepted extensions are:
-
-=over 4
-
-=item * list items can have an end-comma
-
-JSON I<separates> array elements and key-value pairs with commas. This
-can be annoying if you write JSON texts manually and want to be able to
-quickly append elements, so this extension accepts comma at the end of
-such items not just between them:
-
- [
- 1,
- 2, <- this comma not normally allowed
- ]
- {
- "k1": "v1",
- "k2": "v2", <- this comma not normally allowed
- }
-
-=item * shell-style '#'-comments
-
-Whenever JSON allows whitespace, shell-style comments are additionally
-allowed. They are terminated by the first carriage-return or line-feed
-character, after which more white-space and comments are allowed.
-
- [
- 1, # this comment not allowed in JSON
- # neither this one...
- ]
-
-=item * C-style multiple-line '/* */'-comments (JSON::PP only)
-
-Whenever JSON allows whitespace, C-style multiple-line comments are additionally
-allowed. Everything between C</*> and C<*/> is a comment, after which
-more white-space and comments are allowed.
-
- [
- 1, /* this comment not allowed in JSON */
- /* neither this one... */
- ]
-
-=item * C++-style one-line '//'-comments (JSON::PP only)
-
-Whenever JSON allows whitespace, C++-style one-line comments are additionally
-allowed. They are terminated by the first carriage-return or line-feed
-character, after which more white-space and comments are allowed.
-
- [
- 1, // this comment not allowed in JSON
- // neither this one...
- ]
-
-=back
-
-=head2 canonical
-
- $json = $json->canonical([$enable])
-
- $enabled = $json->get_canonical
-
-If C<$enable> is true (or missing), then the C<encode> method will output JSON objects
-by sorting their keys. This is adding a comparatively high overhead.
-
-If C<$enable> is false, then the C<encode> method will output key-value
-pairs in the order Perl stores them (which will likely change between runs
-of the same script, and can change even within the same run from 5.18
-onwards).
-
-This option is useful if you want the same data structure to be encoded as
-the same JSON text (given the same overall settings). If it is disabled,
-the same hash might be encoded differently even if contains the same data,
-as key-value pairs have no inherent ordering in Perl.
-
-This setting has no effect when decoding JSON texts.
-
-This setting has currently no effect on tied hashes.
-
-=head2 allow_nonref
-
- $json = $json->allow_nonref([$enable])
-
- $enabled = $json->get_allow_nonref
-
-If C<$enable> is true (or missing), then the C<encode> method can convert a
-non-reference into its corresponding string, number or null JSON value,
-which is an extension to RFC4627. Likewise, C<decode> will accept those JSON
-values instead of croaking.
-
-If C<$enable> is false, then the C<encode> method will croak if it isn't
-passed an arrayref or hashref, as JSON texts must either be an object
-or array. Likewise, C<decode> will croak if given something that is not a
-JSON object or array.
-
-Example, encode a Perl scalar as JSON value with enabled C<allow_nonref>,
-resulting in an invalid JSON text:
-
- JSON::PP->new->allow_nonref->encode ("Hello, World!")
- => "Hello, World!"
-
-=head2 allow_unknown
-
- $json = $json->allow_unknown ([$enable])
-
- $enabled = $json->get_allow_unknown
-
-If C<$enable> is true (or missing), then C<encode> will I<not> throw an
-exception when it encounters values it cannot represent in JSON (for
-example, filehandles) but instead will encode a JSON C<null> value. Note
-that blessed objects are not included here and are handled separately by
-c<allow_blessed>.
-
-If C<$enable> is false (the default), then C<encode> will throw an
-exception when it encounters anything it cannot encode as JSON.
-
-This option does not affect C<decode> in any way, and it is recommended to
-leave it off unless you know your communications partner.
-
-=head2 allow_blessed
-
- $json = $json->allow_blessed([$enable])
-
- $enabled = $json->get_allow_blessed
-
-See L<OBJECT SERIALISATION> for details.
-
-If C<$enable> is true (or missing), then the C<encode> method will not
-barf when it encounters a blessed reference that it cannot convert
-otherwise. Instead, a JSON C<null> value is encoded instead of the object.
-
-If C<$enable> is false (the default), then C<encode> will throw an
-exception when it encounters a blessed object that it cannot convert
-otherwise.
-
-This setting has no effect on C<decode>.
-
-=head2 convert_blessed
-
- $json = $json->convert_blessed([$enable])
-
- $enabled = $json->get_convert_blessed
-
-See L<OBJECT SERIALISATION> for details.
-
-If C<$enable> is true (or missing), then C<encode>, upon encountering a
-blessed object, will check for the availability of the C<TO_JSON> method
-on the object's class. If found, it will be called in scalar context and
-the resulting scalar will be encoded instead of the object.
-
-The C<TO_JSON> method may safely call die if it wants. If C<TO_JSON>
-returns other blessed objects, those will be handled in the same
-way. C<TO_JSON> must take care of not causing an endless recursion cycle
-(== crash) in this case. The name of C<TO_JSON> was chosen because other
-methods called by the Perl core (== not by the user of the object) are
-usually in upper case letters and to avoid collisions with any C<to_json>
-function or method.
-
-If C<$enable> is false (the default), then C<encode> will not consider
-this type of conversion.
-
-This setting has no effect on C<decode>.
-
-=head2 filter_json_object
-
- $json = $json->filter_json_object([$coderef])
-
-When C<$coderef> is specified, it will be called from C<decode> each
-time it decodes a JSON object. The only argument is a reference to the
-newly-created hash. If the code references returns a single scalar (which
-need not be a reference), this value (i.e. a copy of that scalar to avoid
-aliasing) is inserted into the deserialised data structure. If it returns
-an empty list (NOTE: I<not> C<undef>, which is a valid scalar), the
-original deserialised hash will be inserted. This setting can slow down
-decoding considerably.
-
-When C<$coderef> is omitted or undefined, any existing callback will
-be removed and C<decode> will not change the deserialised hash in any
-way.
-
-Example, convert all JSON objects into the integer 5:
-
- my $js = JSON::PP->new->filter_json_object (sub { 5 });
- # returns [5]
- $js->decode ('[{}]'); # the given subroutine takes a hash reference.
- # throw an exception because allow_nonref is not enabled
- # so a lone 5 is not allowed.
- $js->decode ('{"a":1, "b":2}');
-
-=head2 filter_json_single_key_object
-
- $json = $json->filter_json_single_key_object($key [=> $coderef])
-
-Works remotely similar to C<filter_json_object>, but is only called for
-JSON objects having a single key named C<$key>.
-
-This C<$coderef> is called before the one specified via
-C<filter_json_object>, if any. It gets passed the single value in the JSON
-object. If it returns a single value, it will be inserted into the data
-structure. If it returns nothing (not even C<undef> but the empty list),
-the callback from C<filter_json_object> will be called next, as if no
-single-key callback were specified.
-
-If C<$coderef> is omitted or undefined, the corresponding callback will be
-disabled. There can only ever be one callback for a given key.
-
-As this callback gets called less often then the C<filter_json_object>
-one, decoding speed will not usually suffer as much. Therefore, single-key
-objects make excellent targets to serialise Perl objects into, especially
-as single-key JSON objects are as close to the type-tagged value concept
-as JSON gets (it's basically an ID/VALUE tuple). Of course, JSON does not
-support this in any way, so you need to make sure your data never looks
-like a serialised Perl hash.
-
-Typical names for the single object key are C<__class_whatever__>, or
-C<$__dollars_are_rarely_used__$> or C<}ugly_brace_placement>, or even
-things like C<__class_md5sum(classname)__>, to reduce the risk of clashing
-with real hashes.
-
-Example, decode JSON objects of the form C<< { "__widget__" => <id> } >>
-into the corresponding C<< $WIDGET{<id>} >> object:
-
- # return whatever is in $WIDGET{5}:
- JSON::PP
- ->new
- ->filter_json_single_key_object (__widget__ => sub {
- $WIDGET{ $_[0] }
- })
- ->decode ('{"__widget__": 5')
-
- # this can be used with a TO_JSON method in some "widget" class
- # for serialisation to json:
- sub WidgetBase::TO_JSON {
- my ($self) = @_;
-
- unless ($self->{id}) {
- $self->{id} = ..get..some..id..;
- $WIDGET{$self->{id}} = $self;
- }
-
- { __widget__ => $self->{id} }
- }
-
-=head2 shrink
-
- $json = $json->shrink([$enable])
-
- $enabled = $json->get_shrink
-
-If C<$enable> is true (or missing), the string returned by C<encode> will
-be shrunk (i.e. downgraded if possible).
-
-The actual definition of what shrink does might change in future versions,
-but it will always try to save space at the expense of time.
-
-If C<$enable> is false, then JSON::PP does nothing.
-
-=head2 max_depth
-
- $json = $json->max_depth([$maximum_nesting_depth])
-
- $max_depth = $json->get_max_depth
-
-Sets the maximum nesting level (default C<512>) accepted while encoding
-or decoding. If a higher nesting level is detected in JSON text or a Perl
-data structure, then the encoder and decoder will stop and croak at that
-point.
-
-Nesting level is defined by number of hash- or arrayrefs that the encoder
-needs to traverse to reach a given point or the number of C<{> or C<[>
-characters without their matching closing parenthesis crossed to reach a
-given character in a string.
-
-Setting the maximum depth to one disallows any nesting, so that ensures
-that the object is only a single hash/object or array.
-
-If no argument is given, the highest possible setting will be used, which
-is rarely useful.
-
-See L<JSON::XS/SECURITY CONSIDERATIONS> for more info on why this is useful.
-
-=head2 max_size
-
- $json = $json->max_size([$maximum_string_size])
-
- $max_size = $json->get_max_size
-
-Set the maximum length a JSON text may have (in bytes) where decoding is
-being attempted. The default is C<0>, meaning no limit. When C<decode>
-is called on a string that is longer then this many bytes, it will not
-attempt to decode the string but throw an exception. This setting has no
-effect on C<encode> (yet).
-
-If no argument is given, the limit check will be deactivated (same as when
-C<0> is specified).
-
-See L<JSON::XS/SECURITY CONSIDERATIONS> for more info on why this is useful.
-
-=head2 encode
-
- $json_text = $json->encode($perl_scalar)
-
-Converts the given Perl value or data structure to its JSON
-representation. Croaks on error.
-
-=head2 decode
-
- $perl_scalar = $json->decode($json_text)
-
-The opposite of C<encode>: expects a JSON text and tries to parse it,
-returning the resulting simple scalar or reference. Croaks on error.
-
-=head2 decode_prefix
-
- ($perl_scalar, $characters) = $json->decode_prefix($json_text)
-
-This works like the C<decode> method, but instead of raising an exception
-when there is trailing garbage after the first JSON object, it will
-silently stop parsing there and return the number of characters consumed
-so far.
-
-This is useful if your JSON texts are not delimited by an outer protocol
-and you need to know where the JSON text ends.
-
- JSON::PP->new->decode_prefix ("[1] the tail")
- => ([1], 3)
-
-=head1 FLAGS FOR JSON::PP ONLY
-
-The following flags and properties are for JSON::PP only. If you use
-any of these, you can't make your application run faster by replacing
-JSON::PP with JSON::XS. If you need these and also speed boost,
-try L<Cpanel::JSON::XS>, a fork of JSON::XS by Reini Urban, which
-supports some of these.
-
-=head2 allow_singlequote
-
- $json = $json->allow_singlequote([$enable])
- $enabled = $json->get_allow_singlequote
-
-If C<$enable> is true (or missing), then C<decode> will accept
-invalid JSON texts that contain strings that begin and end with
-single quotation marks. C<encode> will not be affected in anyway.
-I<Be aware that this option makes you accept invalid JSON texts
-as if they were valid!>. I suggest only to use this option to
-parse application-specific files written by humans (configuration
-files, resource files etc.)
-
-If C<$enable> is false (the default), then C<decode> will only accept
-valid JSON texts.
-
- $json->allow_singlequote->decode(qq|{"foo":'bar'}|);
- $json->allow_singlequote->decode(qq|{'foo':"bar"}|);
- $json->allow_singlequote->decode(qq|{'foo':'bar'}|);
-
-=head2 allow_barekey
-
- $json = $json->allow_barekey([$enable])
- $enabled = $json->get_allow_barekey
-
-If C<$enable> is true (or missing), then C<decode> will accept
-invalid JSON texts that contain JSON objects whose names don't
-begin and end with quotation marks. C<encode> will not be affected
-in anyway. I<Be aware that this option makes you accept invalid JSON
-texts as if they were valid!>. I suggest only to use this option to
-parse application-specific files written by humans (configuration
-files, resource files etc.)
-
-If C<$enable> is false (the default), then C<decode> will only accept
-valid JSON texts.
-
- $json->allow_barekey->decode(qq|{foo:"bar"}|);
-
-=head2 allow_bignum
-
- $json = $json->allow_bignum([$enable])
- $enabled = $json->get_allow_bignum
-
-If C<$enable> is true (or missing), then C<decode> will convert
-big integers Perl cannot handle as integer into L<Math::BigInt>
-objects and convert floating numbers into L<Math::BigFloat>
-objects. C<encode> will convert C<Math::BigInt> and C<Math::BigFloat>
-objects into JSON numbers.
-
- $json->allow_nonref->allow_bignum;
- $bigfloat = $json->decode('2.000000000000000000000000001');
- print $json->encode($bigfloat);
- # => 2.000000000000000000000000001
-
-See also L<MAPPING>.
-
-=head2 loose
-
- $json = $json->loose([$enable])
- $enabled = $json->get_loose
-
-If C<$enable> is true (or missing), then C<decode> will accept
-invalid JSON texts that contain unescaped [\x00-\x1f\x22\x5c]
-characters. C<encode> will not be affected in anyway.
-I<Be aware that this option makes you accept invalid JSON texts
-as if they were valid!>. I suggest only to use this option to
-parse application-specific files written by humans (configuration
-files, resource files etc.)
-
-If C<$enable> is false (the default), then C<decode> will only accept
-valid JSON texts.
-
- $json->loose->decode(qq|["abc
- def"]|);
-
-=head2 escape_slash
-
- $json = $json->escape_slash([$enable])
- $enabled = $json->get_escape_slash
-
-If C<$enable> is true (or missing), then C<encode> will explicitly
-escape I<slash> (solidus; C<U+002F>) characters to reduce the risk of
-XSS (cross site scripting) that may be caused by C<< </script> >>
-in a JSON text, with the cost of bloating the size of JSON texts.
-
-This option may be useful when you embed JSON in HTML, but embedding
-arbitrary JSON in HTML (by some HTML template toolkit or by string
-interpolation) is risky in general. You must escape necessary
-characters in correct order, depending on the context.
-
-C<decode> will not be affected in anyway.
-
-=head2 indent_length
-
- $json = $json->indent_length($number_of_spaces)
- $length = $json->get_indent_length
-
-This option is only useful when you also enable C<indent> or C<pretty>.
-
-JSON::XS indents with three spaces when you C<encode> (if requested
-by C<indent> or C<pretty>), and the number cannot be changed.
-JSON::PP allows you to change/get the number of indent spaces with these
-mutator/accessor. The default number of spaces is three (the same as
-JSON::XS), and the acceptable range is from C<0> (no indentation;
-it'd be better to disable indentation by C<indent(0)>) to C<15>.
-
-=head2 sort_by
-
- $json = $json->sort_by($code_ref)
- $json = $json->sort_by($subroutine_name)
-
-If you just want to sort keys (names) in JSON objects when you
-C<encode>, enable C<canonical> option (see above) that allows you to
-sort object keys alphabetically.
-
-If you do need to sort non-alphabetically for whatever reasons,
-you can give a code reference (or a subroutine name) to C<sort_by>,
-then the argument will be passed to Perl's C<sort> built-in function.
-
-As the sorting is done in the JSON::PP scope, you usually need to
-prepend C<JSON::PP::> to the subroutine name, and the special variables
-C<$a> and C<$b> used in the subrontine used by C<sort> function.
-
-Example:
-
- my %ORDER = (id => 1, class => 2, name => 3);
- $json->sort_by(sub {
- ($ORDER{$JSON::PP::a} // 999) <=> ($ORDER{$JSON::PP::b} // 999)
- or $JSON::PP::a cmp $JSON::PP::b
- });
- print $json->encode([
- {name => 'CPAN', id => 1, href => 'http://cpan.org'}
- ]);
- # [{"id":1,"name":"CPAN","href":"http://cpan.org"}]
-
-Note that C<sort_by> affects all the plain hashes in the data structure.
-If you need finer control, C<tie> necessary hashes with a module that
-implements ordered hash (such as L<Hash::Ordered> and L<Tie::IxHash>).
-C<canonical> and C<sort_by> don't affect the key order in C<tie>d
-hashes.
-
- use Hash::Ordered;
- tie my %hash, 'Hash::Ordered',
- (name => 'CPAN', id => 1, href => 'http://cpan.org');
- print $json->encode([\%hash]);
- # [{"name":"CPAN","id":1,"href":"http://cpan.org"}] # order is kept
-
-=head1 INCREMENTAL PARSING
-
-This section is also taken from JSON::XS.
-
-In some cases, there is the need for incremental parsing of JSON
-texts. While this module always has to keep both JSON text and resulting
-Perl data structure in memory at one time, it does allow you to parse a
-JSON stream incrementally. It does so by accumulating text until it has
-a full JSON object, which it then can decode. This process is similar to
-using C<decode_prefix> to see if a full JSON object is available, but
-is much more efficient (and can be implemented with a minimum of method
-calls).
-
-JSON::PP will only attempt to parse the JSON text once it is sure it
-has enough text to get a decisive result, using a very simple but
-truly incremental parser. This means that it sometimes won't stop as
-early as the full parser, for example, it doesn't detect mismatched
-parentheses. The only thing it guarantees is that it starts decoding as
-soon as a syntactically valid JSON text has been seen. This means you need
-to set resource limits (e.g. C<max_size>) to ensure the parser will stop
-parsing in the presence if syntax errors.
-
-The following methods implement this incremental parser.
-
-=head2 incr_parse
-
- $json->incr_parse( [$string] ) # void context
-
- $obj_or_undef = $json->incr_parse( [$string] ) # scalar context
-
- @obj_or_empty = $json->incr_parse( [$string] ) # list context
-
-This is the central parsing function. It can both append new text and
-extract objects from the stream accumulated so far (both of these
-functions are optional).
-
-If C<$string> is given, then this string is appended to the already
-existing JSON fragment stored in the C<$json> object.
-
-After that, if the function is called in void context, it will simply
-return without doing anything further. This can be used to add more text
-in as many chunks as you want.
-
-If the method is called in scalar context, then it will try to extract
-exactly I<one> JSON object. If that is successful, it will return this
-object, otherwise it will return C<undef>. If there is a parse error,
-this method will croak just as C<decode> would do (one can then use
-C<incr_skip> to skip the erroneous part). This is the most common way of
-using the method.
-
-And finally, in list context, it will try to extract as many objects
-from the stream as it can find and return them, or the empty list
-otherwise. For this to work, there must be no separators (other than
-whitespace) between the JSON objects or arrays, instead they must be
-concatenated back-to-back. If an error occurs, an exception will be
-raised as in the scalar context case. Note that in this case, any
-previously-parsed JSON texts will be lost.
-
-Example: Parse some JSON arrays/objects in a given string and return
-them.
-
- my @objs = JSON::PP->new->incr_parse ("[5][7][1,2]");
-
-=head2 incr_text
-
- $lvalue_string = $json->incr_text
-
-This method returns the currently stored JSON fragment as an lvalue, that
-is, you can manipulate it. This I<only> works when a preceding call to
-C<incr_parse> in I<scalar context> successfully returned an object. Under
-all other circumstances you must not call this function (I mean it.
-although in simple tests it might actually work, it I<will> fail under
-real world conditions). As a special exception, you can also call this
-method before having parsed anything.
-
-That means you can only use this function to look at or manipulate text
-before or after complete JSON objects, not while the parser is in the
-middle of parsing a JSON object.
-
-This function is useful in two cases: a) finding the trailing text after a
-JSON object or b) parsing multiple JSON objects separated by non-JSON text
-(such as commas).
-
-=head2 incr_skip
-
- $json->incr_skip
-
-This will reset the state of the incremental parser and will remove
-the parsed text from the input buffer so far. This is useful after
-C<incr_parse> died, in which case the input buffer and incremental parser
-state is left unchanged, to skip the text parsed so far and to reset the
-parse state.
-
-The difference to C<incr_reset> is that only text until the parse error
-occurred is removed.
-
-=head2 incr_reset
-
- $json->incr_reset
-
-This completely resets the incremental parser, that is, after this call,
-it will be as if the parser had never parsed anything.
-
-This is useful if you want to repeatedly parse JSON objects and want to
-ignore any trailing data, which means you have to reset the parser after
-each successful decode.
-
-=head1 MAPPING
-
-Most of this section is also taken from JSON::XS.
-
-This section describes how JSON::PP maps Perl values to JSON values and
-vice versa. These mappings are designed to "do the right thing" in most
-circumstances automatically, preserving round-tripping characteristics
-(what you put in comes out as something equivalent).
-
-For the more enlightened: note that in the following descriptions,
-lowercase I<perl> refers to the Perl interpreter, while uppercase I<Perl>
-refers to the abstract Perl language itself.
-
-=head2 JSON -> PERL
-
-=over 4
-
-=item object
-
-A JSON object becomes a reference to a hash in Perl. No ordering of object
-keys is preserved (JSON does not preserve object key ordering itself).
-
-=item array
-
-A JSON array becomes a reference to an array in Perl.
-
-=item string
-
-A JSON string becomes a string scalar in Perl - Unicode codepoints in JSON
-are represented by the same codepoints in the Perl string, so no manual
-decoding is necessary.
-
-=item number
-
-A JSON number becomes either an integer, numeric (floating point) or
-string scalar in perl, depending on its range and any fractional parts. On
-the Perl level, there is no difference between those as Perl handles all
-the conversion details, but an integer may take slightly less memory and
-might represent more values exactly than floating point numbers.
-
-If the number consists of digits only, JSON::PP will try to represent
-it as an integer value. If that fails, it will try to represent it as
-a numeric (floating point) value if that is possible without loss of
-precision. Otherwise it will preserve the number as a string value (in
-which case you lose roundtripping ability, as the JSON number will be
-re-encoded to a JSON string).
-
-Numbers containing a fractional or exponential part will always be
-represented as numeric (floating point) values, possibly at a loss of
-precision (in which case you might lose perfect roundtripping ability, but
-the JSON number will still be re-encoded as a JSON number).
-
-Note that precision is not accuracy - binary floating point values cannot
-represent most decimal fractions exactly, and when converting from and to
-floating point, JSON::PP only guarantees precision up to but not including
-the least significant bit.
-
-When C<allow_bignum> is enabled, big integer values and any numeric
-values will be converted into L<Math::BigInt> and L<Math::BigFloat>
-objects respectively, without becoming string scalars or losing
-precision.
-
-=item true, false
-
-These JSON atoms become C<JSON::PP::true> and C<JSON::PP::false>,
-respectively. They are overloaded to act almost exactly like the numbers
-C<1> and C<0>. You can check whether a scalar is a JSON boolean by using
-the C<JSON::PP::is_bool> function.
-
-=item null
-
-A JSON null atom becomes C<undef> in Perl.
-
-=item shell-style comments (C<< # I<text> >>)
-
-As a nonstandard extension to the JSON syntax that is enabled by the
-C<relaxed> setting, shell-style comments are allowed. They can start
-anywhere outside strings and go till the end of the line.
-
-=back
-
-
-=head2 PERL -> JSON
-
-The mapping from Perl to JSON is slightly more difficult, as Perl is a
-truly typeless language, so we can only guess which JSON type is meant by
-a Perl value.
-
-=over 4
-
-=item hash references
-
-Perl hash references become JSON objects. As there is no inherent
-ordering in hash keys (or JSON objects), they will usually be encoded
-in a pseudo-random order. JSON::PP can optionally sort the hash keys
-(determined by the I<canonical> flag and/or I<sort_by> property), so
-the same data structure will serialise to the same JSON text (given
-same settings and version of JSON::PP), but this incurs a runtime
-overhead and is only rarely useful, e.g. when you want to compare some
-JSON text against another for equality.
-
-=item array references
-
-Perl array references become JSON arrays.
-
-=item other references
-
-Other unblessed references are generally not allowed and will cause an
-exception to be thrown, except for references to the integers C<0> and
-C<1>, which get turned into C<false> and C<true> atoms in JSON. You can
-also use C<JSON::PP::false> and C<JSON::PP::true> to improve
-readability.
-
- to_json [\0, JSON::PP::true] # yields [false,true]
-
-=item JSON::PP::true, JSON::PP::false
-
-These special values become JSON true and JSON false values,
-respectively. You can also use C<\1> and C<\0> directly if you want.
-
-=item JSON::PP::null
-
-This special value becomes JSON null.
-
-=item blessed objects
-
-Blessed objects are not directly representable in JSON, but C<JSON::PP>
-allows various ways of handling objects. See L<OBJECT SERIALISATION>,
-below, for details.
-
-=item simple scalars
-
-Simple Perl scalars (any scalar that is not a reference) are the most
-difficult objects to encode: JSON::PP will encode undefined scalars as
-JSON C<null> values, scalars that have last been used in a string context
-before encoding as JSON strings, and anything else as number value:
-
- # dump as number
- encode_json [2] # yields [2]
- encode_json [-3.0e17] # yields [-3e+17]
- my $value = 5; encode_json [$value] # yields [5]
-
- # used as string, so dump as string
- print $value;
- encode_json [$value] # yields ["5"]
-
- # undef becomes null
- encode_json [undef] # yields [null]
-
-You can force the type to be a string by stringifying it:
-
- my $x = 3.1; # some variable containing a number
- "$x"; # stringified
- $x .= ""; # another, more awkward way to stringify
- print $x; # perl does it for you, too, quite often
- # (but for older perls)
-
-You can force the type to be a number by numifying it:
-
- my $x = "3"; # some variable containing a string
- $x += 0; # numify it, ensuring it will be dumped as a number
- $x *= 1; # same thing, the choice is yours.
-
-You cannot currently force the type in other, less obscure, ways.
-
-Note that numerical precision has the same meaning as under Perl (so
-binary to decimal conversion follows the same rules as in Perl, which
-can differ to other languages). Also, your perl interpreter might expose
-extensions to the floating point numbers of your platform, such as
-infinities or NaN's - these cannot be represented in JSON, and it is an
-error to pass those in.
-
-JSON::PP (and JSON::XS) trusts what you pass to C<encode> method
-(or C<encode_json> function) is a clean, validated data structure with
-values that can be represented as valid JSON values only, because it's
-not from an external data source (as opposed to JSON texts you pass to
-C<decode> or C<decode_json>, which JSON::PP considers tainted and
-doesn't trust). As JSON::PP doesn't know exactly what you and consumers
-of your JSON texts want the unexpected values to be (you may want to
-convert them into null, or to stringify them with or without
-normalisation (string representation of infinities/NaN may vary
-depending on platforms), or to croak without conversion), you're advised
-to do what you and your consumers need before you encode, and also not
-to numify values that may start with values that look like a number
-(including infinities/NaN), without validating.
-
-=back
-
-=head2 OBJECT SERIALISATION
-
-As for Perl objects, JSON::PP only supports a pure JSON representation (without the ability to deserialise the object automatically again).
-
-=head3 SERIALISATION
-
-What happens when C<JSON::PP> encounters a Perl object depends on the
-C<allow_blessed>, C<convert_blessed> and C<allow_bignum> settings, which are
-used in this order:
-
-=over 4
-
-=item 1. C<convert_blessed> is enabled and the object has a C<TO_JSON> method.
-
-In this case, the C<TO_JSON> method of the object is invoked in scalar
-context. It must return a single scalar that can be directly encoded into
-JSON. This scalar replaces the object in the JSON text.
-
-For example, the following C<TO_JSON> method will convert all L<URI>
-objects to JSON strings when serialised. The fact that these values
-originally were L<URI> objects is lost.
-
- sub URI::TO_JSON {
- my ($uri) = @_;
- $uri->as_string
- }
-
-=item 2. C<allow_bignum> is enabled and the object is a C<Math::BigInt> or C<Math::BigFloat>.
-
-The object will be serialised as a JSON number value.
-
-=item 3. C<allow_blessed> is enabled.
-
-The object will be serialised as a JSON null value.
-
-=item 4. none of the above
-
-If none of the settings are enabled or the respective methods are missing,
-C<JSON::PP> throws an exception.
-
-=back
-
-=head1 ENCODING/CODESET FLAG NOTES
-
-This section is taken from JSON::XS.
-
-The interested reader might have seen a number of flags that signify
-encodings or codesets - C<utf8>, C<latin1> and C<ascii>. There seems to be
-some confusion on what these do, so here is a short comparison:
-
-C<utf8> controls whether the JSON text created by C<encode> (and expected
-by C<decode>) is UTF-8 encoded or not, while C<latin1> and C<ascii> only
-control whether C<encode> escapes character values outside their respective
-codeset range. Neither of these flags conflict with each other, although
-some combinations make less sense than others.
-
-Care has been taken to make all flags symmetrical with respect to
-C<encode> and C<decode>, that is, texts encoded with any combination of
-these flag values will be correctly decoded when the same flags are used
-- in general, if you use different flag settings while encoding vs. when
-decoding you likely have a bug somewhere.
-
-Below comes a verbose discussion of these flags. Note that a "codeset" is
-simply an abstract set of character-codepoint pairs, while an encoding
-takes those codepoint numbers and I<encodes> them, in our case into
-octets. Unicode is (among other things) a codeset, UTF-8 is an encoding,
-and ISO-8859-1 (= latin 1) and ASCII are both codesets I<and> encodings at
-the same time, which can be confusing.
-
-=over 4
-
-=item C<utf8> flag disabled
-
-When C<utf8> is disabled (the default), then C<encode>/C<decode> generate
-and expect Unicode strings, that is, characters with high ordinal Unicode
-values (> 255) will be encoded as such characters, and likewise such
-characters are decoded as-is, no changes to them will be done, except
-"(re-)interpreting" them as Unicode codepoints or Unicode characters,
-respectively (to Perl, these are the same thing in strings unless you do
-funny/weird/dumb stuff).
-
-This is useful when you want to do the encoding yourself (e.g. when you
-want to have UTF-16 encoded JSON texts) or when some other layer does
-the encoding for you (for example, when printing to a terminal using a
-filehandle that transparently encodes to UTF-8 you certainly do NOT want
-to UTF-8 encode your data first and have Perl encode it another time).
-
-=item C<utf8> flag enabled
-
-If the C<utf8>-flag is enabled, C<encode>/C<decode> will encode all
-characters using the corresponding UTF-8 multi-byte sequence, and will
-expect your input strings to be encoded as UTF-8, that is, no "character"
-of the input string must have any value > 255, as UTF-8 does not allow
-that.
-
-The C<utf8> flag therefore switches between two modes: disabled means you
-will get a Unicode string in Perl, enabled means you get an UTF-8 encoded
-octet/binary string in Perl.
-
-=item C<latin1> or C<ascii> flags enabled
-
-With C<latin1> (or C<ascii>) enabled, C<encode> will escape characters
-with ordinal values > 255 (> 127 with C<ascii>) and encode the remaining
-characters as specified by the C<utf8> flag.
-
-If C<utf8> is disabled, then the result is also correctly encoded in those
-character sets (as both are proper subsets of Unicode, meaning that a
-Unicode string with all character values < 256 is the same thing as a
-ISO-8859-1 string, and a Unicode string with all character values < 128 is
-the same thing as an ASCII string in Perl).
-
-If C<utf8> is enabled, you still get a correct UTF-8-encoded string,
-regardless of these flags, just some more characters will be escaped using
-C<\uXXXX> then before.
-
-Note that ISO-8859-1-I<encoded> strings are not compatible with UTF-8
-encoding, while ASCII-encoded strings are. That is because the ISO-8859-1
-encoding is NOT a subset of UTF-8 (despite the ISO-8859-1 I<codeset> being
-a subset of Unicode), while ASCII is.
-
-Surprisingly, C<decode> will ignore these flags and so treat all input
-values as governed by the C<utf8> flag. If it is disabled, this allows you
-to decode ISO-8859-1- and ASCII-encoded strings, as both strict subsets of
-Unicode. If it is enabled, you can correctly decode UTF-8 encoded strings.
-
-So neither C<latin1> nor C<ascii> are incompatible with the C<utf8> flag -
-they only govern when the JSON output engine escapes a character or not.
-
-The main use for C<latin1> is to relatively efficiently store binary data
-as JSON, at the expense of breaking compatibility with most JSON decoders.
-
-The main use for C<ascii> is to force the output to not contain characters
-with values > 127, which means you can interpret the resulting string
-as UTF-8, ISO-8859-1, ASCII, KOI8-R or most about any character set and
-8-bit-encoding, and still get the same data structure back. This is useful
-when your channel for JSON transfer is not 8-bit clean or the encoding
-might be mangled in between (e.g. in mail), and works because ASCII is a
-proper subset of most 8-bit and multibyte encodings in use in the world.
-
-=back
-
-=head1 SEE ALSO
-
-The F<json_pp> command line utility for quick experiments.
-
-L<JSON::XS>, L<Cpanel::JSON::XS>, and L<JSON::Tiny> for faster alternatives.
-L<JSON> and L<JSON::MaybeXS> for easy migration.
-
-L<JSON::backportPP::Compat5005> and L<JSON::backportPP::Compat5006> for older perl users.
-
-RFC4627 (L<http://www.ietf.org/rfc/rfc4627.txt>)
-
-=head1 AUTHOR
-
-Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
-
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2007-2016 by Makamaka Hannyaharamitu
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Boolean.pm b/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Boolean.pm
deleted file mode 100644
index f1c9d526790..00000000000
--- a/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Boolean.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-package # This is JSON::backportPP
- JSON::PP::Boolean;
-
-use strict;
-use overload (
- "0+" => sub { ${$_[0]} },
- "++" => sub { $_[0] = ${$_[0]} + 1 },
- "--" => sub { $_[0] = ${$_[0]} - 1 },
- fallback => 1,
-);
-
-$JSON::backportPP::Boolean::VERSION = '2.94';
-
-1;
-
-__END__
-
-=head1 NAME
-
-JSON::PP::Boolean - dummy module providing JSON::PP::Boolean
-
-=head1 SYNOPSIS
-
- # do not "use" yourself
-
-=head1 DESCRIPTION
-
-This module exists only to provide overload resolution for Storable and similar modules. See
-L<JSON::PP> for more info about this class.
-
-=head1 AUTHOR
-
-This idea is from L<JSON::XS::Boolean> written by Marc Lehmann <schmorp[at]schmorp.de>
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Compat5005.pm b/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Compat5005.pm
deleted file mode 100644
index 139990edff0..00000000000
--- a/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Compat5005.pm
+++ /dev/null
@@ -1,131 +0,0 @@
-package # This is JSON::backportPP
- JSON::backportPP5005;
-
-use 5.005;
-use strict;
-
-my @properties;
-
-$JSON::PP5005::VERSION = '1.10';
-
-BEGIN {
-
- sub utf8::is_utf8 {
- 0; # It is considered that UTF8 flag off for Perl 5.005.
- }
-
- sub utf8::upgrade {
- }
-
- sub utf8::downgrade {
- 1; # must always return true.
- }
-
- sub utf8::encode {
- }
-
- sub utf8::decode {
- }
-
- *JSON::PP::JSON_PP_encode_ascii = \&_encode_ascii;
- *JSON::PP::JSON_PP_encode_latin1 = \&_encode_latin1;
- *JSON::PP::JSON_PP_decode_surrogates = \&_decode_surrogates;
- *JSON::PP::JSON_PP_decode_unicode = \&_decode_unicode;
-
- # missing in B module.
- sub B::SVp_IOK () { 0x01000000; }
- sub B::SVp_NOK () { 0x02000000; }
- sub B::SVp_POK () { 0x04000000; }
-
- $INC{'bytes.pm'} = 1; # dummy
-}
-
-
-
-sub _encode_ascii {
- join('', map { $_ <= 127 ? chr($_) : sprintf('\u%04x', $_) } unpack('C*', $_[0]) );
-}
-
-
-sub _encode_latin1 {
- join('', map { chr($_) } unpack('C*', $_[0]) );
-}
-
-
-sub _decode_surrogates { # from http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
- my $uni = 0x10000 + (hex($_[0]) - 0xD800) * 0x400 + (hex($_[1]) - 0xDC00); # from perlunicode
- my $bit = unpack('B32', pack('N', $uni));
-
- if ( $bit =~ /^00000000000(...)(......)(......)(......)$/ ) {
- my ($w, $x, $y, $z) = ($1, $2, $3, $4);
- return pack('B*', sprintf('11110%s10%s10%s10%s', $w, $x, $y, $z));
- }
- else {
- Carp::croak("Invalid surrogate pair");
- }
-}
-
-
-sub _decode_unicode {
- my ($u) = @_;
- my ($utf8bit);
-
- if ( $u =~ /^00([89a-f][0-9a-f])$/i ) { # 0x80-0xff
- return pack( 'H2', $1 );
- }
-
- my $bit = unpack("B*", pack("H*", $u));
-
- if ( $bit =~ /^00000(.....)(......)$/ ) {
- $utf8bit = sprintf('110%s10%s', $1, $2);
- }
- elsif ( $bit =~ /^(....)(......)(......)$/ ) {
- $utf8bit = sprintf('1110%s10%s10%s', $1, $2, $3);
- }
- else {
- Carp::croak("Invalid escaped unicode");
- }
-
- return pack('B*', $utf8bit);
-}
-
-
-sub JSON::PP::incr_text {
- $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new;
-
- if ( $_[0]->{_incr_parser}->{incr_parsing} ) {
- Carp::croak("incr_text can not be called when the incremental parser already started parsing");
- }
-
- $_[0]->{_incr_parser}->{incr_text} = $_[1] if ( @_ > 1 );
- $_[0]->{_incr_parser}->{incr_text};
-}
-
-
-1;
-__END__
-
-=pod
-
-=head1 NAME
-
-JSON::PP5005 - Helper module in using JSON::PP in Perl 5.005
-
-=head1 DESCRIPTION
-
-JSON::PP calls internally.
-
-=head1 AUTHOR
-
-Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
-
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2007-2012 by Makamaka Hannyaharamitu
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Compat5006.pm b/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Compat5006.pm
deleted file mode 100644
index 7736fd8debc..00000000000
--- a/Master/tlpkg/tlperl/site/lib/JSON/backportPP/Compat5006.pm
+++ /dev/null
@@ -1,173 +0,0 @@
-package # This is JSON::backportPP
- JSON::backportPP56;
-
-use 5.006;
-use strict;
-
-my @properties;
-
-$JSON::PP56::VERSION = '1.08';
-
-BEGIN {
-
- sub utf8::is_utf8 {
- my $len = length $_[0]; # char length
- {
- use bytes; # byte length;
- return $len != length $_[0]; # if !=, UTF8-flagged on.
- }
- }
-
-
- sub utf8::upgrade {
- ; # noop;
- }
-
-
- sub utf8::downgrade ($;$) {
- return 1 unless ( utf8::is_utf8( $_[0] ) );
-
- if ( _is_valid_utf8( $_[0] ) ) {
- my $downgrade;
- for my $c ( unpack( "U*", $_[0] ) ) {
- if ( $c < 256 ) {
- $downgrade .= pack("C", $c);
- }
- else {
- $downgrade .= pack("U", $c);
- }
- }
- $_[0] = $downgrade;
- return 1;
- }
- else {
- Carp::croak("Wide character in subroutine entry") unless ( $_[1] );
- 0;
- }
- }
-
-
- sub utf8::encode ($) { # UTF8 flag off
- if ( utf8::is_utf8( $_[0] ) ) {
- $_[0] = pack( "C*", unpack( "C*", $_[0] ) );
- }
- else {
- $_[0] = pack( "U*", unpack( "C*", $_[0] ) );
- $_[0] = pack( "C*", unpack( "C*", $_[0] ) );
- }
- }
-
-
- sub utf8::decode ($) { # UTF8 flag on
- if ( _is_valid_utf8( $_[0] ) ) {
- utf8::downgrade( $_[0] );
- $_[0] = pack( "U*", unpack( "U*", $_[0] ) );
- }
- }
-
-
- *JSON::PP::JSON_PP_encode_ascii = \&_encode_ascii;
- *JSON::PP::JSON_PP_encode_latin1 = \&_encode_latin1;
- *JSON::PP::JSON_PP_decode_surrogates = \&JSON::PP::_decode_surrogates;
- *JSON::PP::JSON_PP_decode_unicode = \&JSON::PP::_decode_unicode;
-
- unless ( defined &B::SVp_NOK ) { # missing in B module.
- eval q{ sub B::SVp_NOK () { 0x02000000; } };
- }
-
-}
-
-
-
-sub _encode_ascii {
- join('',
- map {
- $_ <= 127 ?
- chr($_) :
- $_ <= 65535 ?
- sprintf('\u%04x', $_) : sprintf('\u%x\u%x', JSON::PP::_encode_surrogates($_));
- } _unpack_emu($_[0])
- );
-}
-
-
-sub _encode_latin1 {
- join('',
- map {
- $_ <= 255 ?
- chr($_) :
- $_ <= 65535 ?
- sprintf('\u%04x', $_) : sprintf('\u%x\u%x', JSON::PP::_encode_surrogates($_));
- } _unpack_emu($_[0])
- );
-}
-
-
-sub _unpack_emu { # for Perl 5.6 unpack warnings
- return !utf8::is_utf8($_[0]) ? unpack('C*', $_[0])
- : _is_valid_utf8($_[0]) ? unpack('U*', $_[0])
- : unpack('C*', $_[0]);
-}
-
-
-sub _is_valid_utf8 {
- my $str = $_[0];
- my $is_utf8;
-
- while ($str =~ /(?:
- (
- [\x00-\x7F]
- |[\xC2-\xDF][\x80-\xBF]
- |[\xE0][\xA0-\xBF][\x80-\xBF]
- |[\xE1-\xEC][\x80-\xBF][\x80-\xBF]
- |[\xED][\x80-\x9F][\x80-\xBF]
- |[\xEE-\xEF][\x80-\xBF][\x80-\xBF]
- |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF]
- |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF]
- |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF]
- )
- | (.)
- )/xg)
- {
- if (defined $1) {
- $is_utf8 = 1 if (!defined $is_utf8);
- }
- else {
- $is_utf8 = 0 if (!defined $is_utf8);
- if ($is_utf8) { # eventually, not utf8
- return;
- }
- }
- }
-
- return $is_utf8;
-}
-
-
-1;
-__END__
-
-=pod
-
-=head1 NAME
-
-JSON::PP56 - Helper module in using JSON::PP in Perl 5.6
-
-=head1 DESCRIPTION
-
-JSON::PP calls internally.
-
-=head1 AUTHOR
-
-Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt>
-
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2007-2012 by Makamaka Hannyaharamitu
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/site/lib/LWP.pm b/Master/tlpkg/tlperl/site/lib/LWP.pm
index b3a174af3ad..2f1b39dc37f 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP.pm
@@ -1,6 +1,6 @@
package LWP;
-our $VERSION = '6.25';
+our $VERSION = '6.31';
require LWP::UserAgent; # this should load everything you need
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm b/Master/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm
index 18fe8cd5f1c..a5cc949e6a3 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Authen/Basic.pm
@@ -1,7 +1,9 @@
package LWP::Authen::Basic;
-$LWP::Authen::Basic::VERSION = '6.25';
+
use strict;
+our $VERSION = '6.31';
+
require MIME::Base64;
sub auth_header {
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm b/Master/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm
index 2e80af49729..7a7c3e01e04 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Authen/Digest.pm
@@ -1,8 +1,10 @@
package LWP::Authen::Digest;
-$LWP::Authen::Digest::VERSION = '6.25';
+
use strict;
use base 'LWP::Authen::Basic';
+our $VERSION = '6.31';
+
require Digest::MD5;
sub auth_header {
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm b/Master/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm
index 7fd0a827f3d..3c3a7c30bb2 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Authen/Ntlm.pm
@@ -2,7 +2,7 @@ package LWP::Authen::Ntlm;
use strict;
-our $VERSION = '6.25';
+our $VERSION = '6.31';
use Authen::NTLM "1.02";
use MIME::Base64 "2.12";
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/ConnCache.pm b/Master/tlpkg/tlperl/site/lib/LWP/ConnCache.pm
index 172e2f49a5b..47fae6b4384 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/ConnCache.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/ConnCache.pm
@@ -2,7 +2,7 @@ package LWP::ConnCache;
use strict;
-our $VERSION = '6.25';
+our $VERSION = '6.31';
our $DEBUG;
sub new {
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Debug.pm b/Master/tlpkg/tlperl/site/lib/LWP/Debug.pm
index f7334c425df..d8305e4b78d 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Debug.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Debug.pm
@@ -1,5 +1,7 @@
package LWP::Debug; # legacy
-$LWP::Debug::VERSION = '6.25';
+
+our $VERSION = '6.31';
+
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(level trace debug conns);
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm b/Master/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm
index 4dc70a096f7..b063bfe5e3a 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Debug/TraceHTTP.pm
@@ -1,5 +1,5 @@
package LWP::Debug::TraceHTTP;
-$LWP::Debug::TraceHTTP::VERSION = '6.25';
+
# Just call:
#
# require LWP::Debug::TraceHTTP;
@@ -11,8 +11,11 @@ $LWP::Debug::TraceHTTP::VERSION = '6.25';
use strict;
use base 'LWP::Protocol::http';
-package LWP::Debug::TraceHTTP::Socket;
-$LWP::Debug::TraceHTTP::Socket::VERSION = '6.25';
+our $VERSION = '6.31';
+
+package # hide from PAUSE
+ LWP::Debug::TraceHTTP::Socket;
+
use Data::Dump 1.13;
use Data::Dump::Trace qw(autowrap mcall);
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/DebugFile.pm b/Master/tlpkg/tlperl/site/lib/LWP/DebugFile.pm
index 681415f4ccd..2f99249d3be 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/DebugFile.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/DebugFile.pm
@@ -1,5 +1,7 @@
package LWP::DebugFile;
-$LWP::DebugFile::VERSION = '6.25';
+
+our $VERSION = '6.31';
+
# legacy stub
1;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm b/Master/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm
index d56a2e8abad..3b7962af026 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/MemberMixin.pm
@@ -1,5 +1,7 @@
package LWP::MemberMixin;
-$LWP::MemberMixin::VERSION = '6.25';
+
+our $VERSION = '6.31';
+
sub _elem {
my $self = shift;
my $elem = shift;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol.pm
index 3adbaf3de49..02a57e90fca 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol.pm
@@ -2,7 +2,7 @@ package LWP::Protocol;
use base 'LWP::MemberMixin';
-our $VERSION = '6.25';
+our $VERSION = '6.31';
use strict;
use Carp ();
@@ -53,7 +53,7 @@ sub implementor
return '' unless $scheme =~ /^([.+\-\w]+)$/; # check valid URL schemes
$scheme = $1; # untaint
- $scheme =~ s/[.+\-]/_/g; # make it a legal module name
+ $scheme =~ tr/.+-/_/; # make it a legal module name
# scheme not yet known, look for a 'use'd implementation
$ic = "LWP::Protocol::$scheme"; # default location
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm
index 3288abdbc12..cf27eb672ff 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/cpan.pm
@@ -1,9 +1,11 @@
package LWP::Protocol::cpan;
-$LWP::Protocol::cpan::VERSION = '6.25';
+
use strict;
use base qw(LWP::Protocol);
+our $VERSION = '6.31';
+
require URI;
require HTTP::Status;
require HTTP::Response;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/data.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/data.pm
index 3b256528a4f..a75ba570b4c 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/data.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/data.pm
@@ -1,9 +1,11 @@
package LWP::Protocol::data;
-$LWP::Protocol::data::VERSION = '6.25';
+
# Implements access to data:-URLs as specified in RFC 2397
use strict;
+our $VERSION = '6.31';
+
require HTTP::Response;
require HTTP::Status;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm
index e83149dbd90..2db309af894 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/file.pm
@@ -1,9 +1,11 @@
package LWP::Protocol::file;
-$LWP::Protocol::file::VERSION = '6.25';
+
use base qw(LWP::Protocol);
use strict;
+our $VERSION = '6.31';
+
require LWP::MediaTypes;
require HTTP::Request;
require HTTP::Response;
@@ -126,17 +128,17 @@ sub request
# read the file
if ($method ne "HEAD") {
- open(F, $path) or return new
+ open(my $fh, '<', $path) or return new
HTTP::Response(HTTP::Status::RC_INTERNAL_SERVER_ERROR,
"Cannot read file '$path': $!");
- binmode(F);
+ binmode($fh);
$response = $self->collect($arg, $response, sub {
my $content = "";
- my $bytes = sysread(F, $content, $size);
+ my $bytes = sysread($fh, $content, $size);
return \$content if $bytes > 0;
return \ "";
});
- close(F);
+ close($fh);
}
$response;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm
index 2a96c1b7c55..37c836be73c 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/ftp.pm
@@ -1,10 +1,12 @@
package LWP::Protocol::ftp;
-$LWP::Protocol::ftp::VERSION = '6.25';
+
# Implementation of the ftp protocol (RFC 959). We let the Net::FTP
# package do all the dirty work.
use base qw(LWP::Protocol);
use strict;
+our $VERSION = '6.31';
+
use Carp ();
use HTTP::Status ();
use HTTP::Negotiate ();
@@ -15,9 +17,10 @@ use File::Listing ();
{
- package LWP::Protocol::MyFTP;
-$LWP::Protocol::MyFTP::VERSION = '6.25';
-use strict;
+ package # hide from PAUSE
+ LWP::Protocol::MyFTP;
+
+ use strict;
use base qw(Net::FTP);
sub new {
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm
index e6fe5ce8473..ae559a9b74d 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/gopher.pm
@@ -1,5 +1,5 @@
package LWP::Protocol::gopher;
-$LWP::Protocol::gopher::VERSION = '6.25';
+
# Implementation of the gopher protocol (RFC 1436)
#
# This code is based on 'wwwgopher.pl,v 0.10 1994/10/17 18:12:34 shelden'
@@ -9,6 +9,8 @@ $LWP::Protocol::gopher::VERSION = '6.25';
use strict;
+our $VERSION = '6.31';
+
require HTTP::Response;
require HTTP::Status;
require IO::Socket;
@@ -185,7 +187,7 @@ sub gopher2url
sub menu2html {
my($menu) = @_;
- $menu =~ s/\015//g; # remove carriage return
+ $menu =~ tr/\015//d; # remove carriage return
my $tmp = <<"EOT";
<HTML>
<HEAD>
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm
index 2266b1e9ea6..b5448ac6aa4 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/http.pm
@@ -1,7 +1,9 @@
package LWP::Protocol::http;
-$LWP::Protocol::http::VERSION = '6.25';
+
use strict;
+our $VERSION = '6.31';
+
require HTTP::Response;
require HTTP::Status;
require Net::HTTP;
@@ -42,6 +44,8 @@ sub _new_socket
$@ =~ /\b(Crypt-SSLeay can't verify hostnames)\b/
) {
$status .= " ($1)";
+ } elsif ($@) {
+ $status .= " ($@)";
}
die "$status\n\n$@";
}
@@ -232,7 +236,7 @@ sub request
$request_headers->scan(sub {
my($k, $v) = @_;
$k =~ s/^://;
- $v =~ s/\n/ /g;
+ $v =~ tr/\n/ /;
push(@h, $k, $v);
});
@@ -497,8 +501,9 @@ sub request
#-----------------------------------------------------------
-package LWP::Protocol::http::SocketMethods;
-$LWP::Protocol::http::SocketMethods::VERSION = '6.25';
+package # hide from PAUSE
+ LWP::Protocol::http::SocketMethods;
+
sub ping {
my $self = shift;
!$self->can_read(0);
@@ -510,8 +515,9 @@ sub increment_response_count {
}
#-----------------------------------------------------------
-package LWP::Protocol::http::Socket;
-$LWP::Protocol::http::Socket::VERSION = '6.25';
-use base qw(LWP::Protocol::http::SocketMethods Net::HTTP);
+package # hide from PAUSE
+ LWP::Protocol::http::Socket;
+
+use parent -norequire, qw(LWP::Protocol::http::SocketMethods Net::HTTP);
1;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm
index f1e4c9f918e..61037fd7dd8 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/loopback.pm
@@ -1,6 +1,9 @@
package LWP::Protocol::loopback;
-$LWP::Protocol::loopback::VERSION = '6.25';
+
use strict;
+
+our $VERSION = '6.31';
+
require HTTP::Response;
use base qw(LWP::Protocol);
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm
index 9358695d57d..a069ae0589c 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/mailto.pm
@@ -1,5 +1,5 @@
package LWP::Protocol::mailto;
-$LWP::Protocol::mailto::VERSION = '6.25';
+
# This module implements the mailto protocol. It is just a simple
# frontend to the Unix sendmail program except on MacOS, where it uses
# Mail::Internet.
@@ -11,6 +11,8 @@ require HTTP::Status;
use Carp;
use strict;
+our $VERSION = '6.31';
+
use base qw(LWP::Protocol);
our $SENDMAIL;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm
index 9727a247a51..6c7051bf0d7 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/nntp.pm
@@ -1,9 +1,11 @@
package LWP::Protocol::nntp;
-$LWP::Protocol::nntp::VERSION = '6.25';
+
# Implementation of the Network News Transfer Protocol (RFC 977)
use base qw(LWP::Protocol);
+our $VERSION = '6.31';
+
require HTTP::Response;
require HTTP::Status;
require Net::NNTP;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm
index a9b0e411ee7..b481dc14263 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Protocol/nogo.pm
@@ -4,9 +4,11 @@ package LWP::Protocol::nogo;
# LWP::Protocol::implementor(that_scheme, 'LWP::Protocol::nogo');
# For then on, attempts to access URLs with that scheme will generate
# a 500 error.
-$LWP::Protocol::nogo::VERSION = '6.25';
+
use strict;
+our $VERSION = '6.31';
+
require HTTP::Response;
require HTTP::Status;
use base qw(LWP::Protocol);
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/RobotUA.pm b/Master/tlpkg/tlperl/site/lib/LWP/RobotUA.pm
index 0e96856329a..912a72d4a65 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/RobotUA.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/RobotUA.pm
@@ -2,7 +2,7 @@ package LWP::RobotUA;
use base qw(LWP::UserAgent);
-our $VERSION = '6.25';
+our $VERSION = '6.31';
require WWW::RobotRules;
require HTTP::Request;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/Simple.pm b/Master/tlpkg/tlperl/site/lib/LWP/Simple.pm
index 321f9641c48..db6727dd87c 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/Simple.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/Simple.pm
@@ -2,7 +2,7 @@ package LWP::Simple;
use strict;
-our $VERSION = '6.25';
+our $VERSION = '6.31';
require Exporter;
diff --git a/Master/tlpkg/tlperl/site/lib/LWP/UserAgent.pm b/Master/tlpkg/tlperl/site/lib/LWP/UserAgent.pm
index 07c391605e3..5bbff8ecc9c 100644
--- a/Master/tlpkg/tlperl/site/lib/LWP/UserAgent.pm
+++ b/Master/tlpkg/tlperl/site/lib/LWP/UserAgent.pm
@@ -15,7 +15,7 @@ use LWP::Protocol ();
use Scalar::Util qw(blessed);
use Try::Tiny qw(try catch);
-our $VERSION = '6.25';
+our $VERSION = '6.31';
sub new
{
@@ -387,7 +387,7 @@ sub request {
}
$scheme = $1; # untainted now
my $class = "LWP::Authen::\u$scheme";
- $class =~ s/-/_/g;
+ $class =~ tr/-/_/;
no strict 'refs';
unless (%{"$class\::"}) {
@@ -660,13 +660,11 @@ sub redirect_ok
return 1;
}
-
-sub credentials
-{
- my $self = shift;
- my $netloc = lc(shift);
- my $realm = shift || "";
- my $old = $self->{basic_authentication}{$netloc}{$realm};
+sub credentials {
+ my $self = shift;
+ my $netloc = lc(shift || '');
+ my $realm = shift || "";
+ my $old = $self->{basic_authentication}{$netloc}{$realm};
if (@_) {
$self->{basic_authentication}{$netloc}{$realm} = [@_];
}
@@ -675,7 +673,6 @@ sub credentials
return join(":", @$old);
}
-
sub get_basic_credentials
{
my($self, $realm, $uri, $proxy) = @_;
@@ -900,16 +897,20 @@ sub handlers {
sub run_handlers {
my($self, $phase, $o) = @_;
+
+ # here we pass $_[2] to the callbacks, instead of $o, so that they
+ # can assign to it; e.g. request_prepare is documented to allow
+ # that
if (defined(wantarray)) {
for my $h ($self->handlers($phase, $o)) {
- my $ret = $h->{callback}->($o, $self, $h);
+ my $ret = $h->{callback}->($_[2], $self, $h);
return $ret if $ret;
}
return undef;
}
for my $h ($self->handlers($phase, $o)) {
- $h->{callback}->($o, $self, $h);
+ $h->{callback}->($_[2], $self, $h);
}
}
@@ -1459,7 +1460,7 @@ that have a valid certificate matching the expected hostname. If FALSE no
checks are made and you can't be sure that you communicate with the expected peer.
The no checks behaviour was the default for libwww-perl-5.837 and earlier releases.
-This option is initialized from the L<PERL_LWP_SSL_VERIFY_HOSTNAME> environment
+This option is initialized from the C<PERL_LWP_SSL_VERIFY_HOSTNAME> environment
variable. If this environment variable isn't set; then C<verify_hostname>
defaults to 1.
diff --git a/Master/tlpkg/tlperl/site/lib/Net/HTTP.pm b/Master/tlpkg/tlperl/site/lib/Net/HTTP.pm
index 1f2c9fbf2d0..c8ff7883869 100644
--- a/Master/tlpkg/tlperl/site/lib/Net/HTTP.pm
+++ b/Master/tlpkg/tlperl/site/lib/Net/HTTP.pm
@@ -1,5 +1,5 @@
package Net::HTTP;
-$Net::HTTP::VERSION = '6.13';
+$Net::HTTP::VERSION = '6.17';
use strict;
use warnings;
@@ -50,7 +50,7 @@ Net::HTTP - Low-level HTTP connection (client)
=head1 VERSION
-version 6.13
+version 6.17
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm b/Master/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm
index 148028444f5..745a56ce458 100644
--- a/Master/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm
+++ b/Master/tlpkg/tlperl/site/lib/Net/HTTP/Methods.pm
@@ -1,5 +1,5 @@
package Net::HTTP::Methods;
-$Net::HTTP::Methods::VERSION = '6.13';
+$Net::HTTP::Methods::VERSION = '6.17';
use strict;
use warnings;
use URI;
@@ -269,23 +269,17 @@ sub my_readline {
or die "read timeout";
# consume all incoming bytes
- while(1) {
- my $bytes_read = $self->sysread($_, 1024, length);
- if(defined $bytes_read) {
- $new_bytes += $bytes_read;
- last if $bytes_read < 1024;
- # We got exactly 1024 bytes, so we need to select() to know if there is more data
- last unless $self->can_read(0);
- }
- elsif($!{EINTR} || $!{EAGAIN} || $!{EWOULDBLOCK}) {
- redo READ;
- }
- else {
- # if we have already accumulated some data let's at
- # least return that as a line
- length or die "$what read failed: $!";
- last;
- }
+ my $bytes_read = $self->sysread($_, 1024, length);
+ if(defined $bytes_read) {
+ $new_bytes += $bytes_read;
+ }
+ elsif($!{EINTR} || $!{EAGAIN} || $!{EWOULDBLOCK}) {
+ redo READ;
+ }
+ else {
+ # if we have already accumulated some data let's at
+ # least return that as a line
+ length or die "$what read failed: $!";
}
# no line-ending, no new bytes
@@ -645,19 +639,17 @@ sub inflate_ok {
1;
-__END__
-
=pod
=encoding UTF-8
=head1 NAME
-Net::HTTP::Methods
+Net::HTTP::Methods - Methods shared by Net::HTTP and Net::HTTPS
=head1 VERSION
-version 6.13
+version 6.17
=head1 AUTHOR
@@ -671,3 +663,7 @@ This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
+
+__END__
+
+# ABSTRACT: Methods shared by Net::HTTP and Net::HTTPS
diff --git a/Master/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm b/Master/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm
index 0d5ce9a96c8..b69a502b384 100644
--- a/Master/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm
+++ b/Master/tlpkg/tlperl/site/lib/Net/HTTP/NB.pm
@@ -1,5 +1,5 @@
package Net::HTTP::NB;
-$Net::HTTP::NB::VERSION = '6.13';
+$Net::HTTP::NB::VERSION = '6.17';
use strict;
use warnings;
@@ -60,7 +60,7 @@ Net::HTTP::NB - Non-blocking HTTP client
=head1 VERSION
-version 6.13
+version 6.17
=head1 SYNOPSIS
diff --git a/Master/tlpkg/tlperl/site/lib/Net/HTTPS.pm b/Master/tlpkg/tlperl/site/lib/Net/HTTPS.pm
index f8131c1f1c5..aa8e1c1c053 100644
--- a/Master/tlpkg/tlperl/site/lib/Net/HTTPS.pm
+++ b/Master/tlpkg/tlperl/site/lib/Net/HTTPS.pm
@@ -1,5 +1,5 @@
package Net::HTTPS;
-$Net::HTTPS::VERSION = '6.13';
+$Net::HTTPS::VERSION = '6.17';
use strict;
use warnings;
@@ -90,7 +90,7 @@ Net::HTTPS - Low-level HTTP over SSL/TLS connection (client)
=head1 VERSION
-version 6.13
+version 6.17
=head1 DESCRIPTION
diff --git a/Master/tlpkg/tlperl/site/lib/Socket.pm b/Master/tlpkg/tlperl/site/lib/Socket.pm
index 64e18ad25e3..370deef1036 100644
--- a/Master/tlpkg/tlperl/site/lib/Socket.pm
+++ b/Master/tlpkg/tlperl/site/lib/Socket.pm
@@ -3,7 +3,7 @@ package Socket;
use strict;
{ use 5.006001; }
-our $VERSION = '2.024';
+our $VERSION = '2.027';
=head1 NAME
@@ -773,7 +773,7 @@ our @EXPORT_OK = qw(
IPPROTO_IP IPPROTO_IPV6 IPPROTO_RAW IPPROTO_ICMP IPPROTO_IGMP
IPPROTO_TCP IPPROTO_UDP IPPROTO_GRE IPPROTO_ESP IPPROTO_AH
- IPPROTO_SCTP
+ IPPROTO_ICMPV6 IPPROTO_SCTP
IP_PMTUDISC_DO IP_PMTUDISC_DONT IP_PMTUDISC_PROBE IP_PMTUDISC_WANT
@@ -783,7 +783,8 @@ our @EXPORT_OK = qw(
TCP_FASTOPEN TCP_INFO TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT
TCP_KEEPIDLE TCP_KEEPINTVL TCP_LINGER2 TCP_MAXRT TCP_MAXSEG
TCP_MD5SIG TCP_NODELAY TCP_NOOPT TCP_NOPUSH TCP_QUICKACK
- TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT TCP_WINDOW_CLAMP
+ TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT TCP_USER_TIMEOUT
+ TCP_WINDOW_CLAMP
IN6ADDR_ANY IN6ADDR_LOOPBACK
diff --git a/Master/tlpkg/tlperl/site/lib/Test/Needs.pm b/Master/tlpkg/tlperl/site/lib/Test/Needs.pm
new file mode 100755
index 00000000000..f3db264d31b
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/Test/Needs.pm
@@ -0,0 +1,315 @@
+package Test::Needs;
+use strict;
+use warnings;
+no warnings 'once';
+our $VERSION = '0.002005';
+$VERSION =~ tr/_//d;
+
+BEGIN {
+ *_WORK_AROUND_HINT_LEAKAGE
+ = "$]" < 5.011 && !("$]" >= 5.009004 && "$]" < 5.010001)
+ ? sub(){1} : sub(){0};
+ *_WORK_AROUND_BROKEN_MODULE_STATE
+ = "$]" < 5.009
+ ? sub(){1} : sub(){0};
+}
+
+sub _try_require {
+ local %^H
+ if _WORK_AROUND_HINT_LEAKAGE;
+ my ($module) = @_;
+ (my $file = "$module.pm") =~ s{::|'}{/}g;
+ my $err;
+ {
+ local $@;
+ eval { require $file }
+ or $err = $@;
+ }
+ if (defined $err) {
+ delete $INC{$file}
+ if _WORK_AROUND_BROKEN_MODULE_STATE;
+ die $err
+ unless $err =~ /\ACan't locate \Q$file\E/;
+ return !1;
+ }
+ !0;
+}
+
+sub _find_missing {
+ my @bad = map {
+ my ($module, $version) = @$_;
+ if ($module eq 'perl') {
+ $version
+ = !$version ? 0
+ : $version =~ /^[0-9]+\.[0-9]+$/ ? sprintf('%.6f', $version)
+ : $version =~ /^v?([0-9]+(?:\.[0-9]+)+)$/ ? do {
+ my @p = split /\./, $1;
+ push @p, 0
+ until @p >= 3;
+ sprintf '%d.%03d%03d', @p;
+ }
+ : $version =~ /^\x05..?$/s ? do {
+ my @p = map ord, split //, $version;
+ push @p, 0
+ until @p >= 3;
+ sprintf '%d.%03d%03d', @p;
+ }
+ : do {
+ use warnings FATAL => 'numeric';
+ no warnings 'void';
+ eval { 0 + $version; 1 } ? $version
+ : die sprintf qq{version "%s" for perl does not look like a number at %s line %s.\n},
+ $version, (caller( 1 + ($Test::Builder::Level||0) ))[1,2];
+ };
+ if ("$]" < $version) {
+ sprintf "perl %s (have %.6f)", $version, $];
+ }
+ else {
+ ();
+ }
+ }
+ elsif ($module =~ /^\d|[^\w:]|:::|[^:]:[^:]|^:|:$/) {
+ die sprintf qq{"%s" does not look like a module name at %s line %s.\n},
+ $module, (caller( 1 + ($Test::Builder::Level||0) ))[1,2];
+ die
+ }
+ elsif (_try_require($module)) {
+ local $@;
+ if (defined $version && !eval { $module->VERSION($version); 1 }) {
+ "$module $version (have ".$module->VERSION.')';
+ }
+ else {
+ ();
+ }
+ }
+ else {
+ $version ? "$module $version" : $module;
+ }
+ }
+ map {
+ if (ref eq 'HASH') {
+ my $arg = $_;
+ map [ $_ => $arg->{$_} ], sort keys %$arg;
+ }
+ elsif (ref eq 'ARRAY') {
+ my $arg = $_;
+ map [ @{$arg}[$_*2,$_*2+1] ], 0 .. int($#$arg / 2);
+ }
+ else {
+ [ $_ => undef ];
+ }
+ } @_;
+ @bad ? "Need " . join(', ', @bad) : undef;
+}
+
+sub import {
+ my $class = shift;
+ my $target = caller;
+ if (@_) {
+ local $Test::Builder::Level = ($Test::Builder::Level||0) + 1;
+ test_needs(@_);
+ }
+ no strict 'refs';
+ *{"${target}::test_needs"} = \&test_needs;
+}
+
+sub test_needs {
+ my $missing = _find_missing(@_);
+ local $Test::Builder::Level = ($Test::Builder::Level||0) + 1;
+ _fail_or_skip($missing, $ENV{RELEASE_TESTING})
+ if $missing;
+}
+
+sub _skip { _fail_or_skip($_[0], 0) }
+sub _fail { _fail_or_skip($_[0], 1) }
+
+sub _fail_or_skip {
+ my ($message, $fail) = @_;
+ if ($INC{'Test2/API.pm'}) {
+ my $ctx = Test2::API::context();
+ my $hub = $ctx->hub;
+ if ($fail) {
+ $ctx->ok(0, "Test::Needs modules available", [$message]);
+ }
+ else {
+ my $plan = $hub->plan;
+ my $tests = $hub->count;
+ if ($plan || $tests) {
+ my $skips
+ = $plan && $plan ne 'NO PLAN' ? $plan - $tests : 1;
+ $ctx->skip("Test::Needs modules not available") for 1 .. $skips;
+ $ctx->note($message);
+ }
+ else {
+ $ctx->plan(0, 'SKIP', $message);
+ }
+ }
+ $ctx->done_testing;
+ $ctx->release if $Test2::API::VERSION < 1.302053;
+ $ctx->send_event('+'._t2_terminate_event());
+ }
+ elsif ($INC{'Test/Builder.pm'}) {
+ my $tb = Test::Builder->new;
+ my $has_plan = Test::Builder->can('has_plan') ? 'has_plan'
+ : sub { $_[0]->expected_tests || eval { $_[0]->current_test($_[0]->current_test); 'no_plan' } };
+ if ($fail) {
+ $tb->plan(tests => 1)
+ unless $tb->$has_plan;
+ $tb->ok(0, "Test::Needs modules available");
+ $tb->diag($message);
+ }
+ else {
+ my $plan = $tb->$has_plan;
+ my $tests = $tb->current_test;
+ if ($plan || $tests) {
+ my $skips
+ = $plan && $plan ne 'no_plan' ? $plan - $tests : 1;
+ $tb->skip("Test::Needs modules not available")
+ for 1 .. $skips;
+ Test::Builer->can('note') ? $tb->note($message) : print "# $message\n";
+ }
+ else {
+ $tb->skip_all($message);
+ }
+ }
+ $tb->done_testing
+ if Test::Builder->can('done_testing');
+ die bless {} => 'Test::Builder::Exception'
+ if Test::Builder->can('parent') && $tb->parent;
+ }
+ else {
+ if ($fail) {
+ print "1..1\n";
+ print "not ok 1 - Test::Needs modules available\n";
+ print STDERR "# $message\n";
+ exit 1;
+ }
+ else {
+ print "1..0 # SKIP $message\n";
+ }
+ }
+ exit 0;
+}
+
+my $terminate_event;
+sub _t2_terminate_event () {
+ local $@;
+ $terminate_event ||= eval q{
+ $INC{'Test/Needs/Event/Terminate.pm'} = $INC{'Test/Needs.pm'};
+ package # hide
+ Test::Needs::Event::Terminate;
+ use Test2::Event ();
+ our @ISA = qw(Test2::Event);
+ sub no_display { 1 }
+ sub terminate { 0 }
+ __PACKAGE__;
+ } or die "$@";
+}
+
+1;
+__END__
+
+=pod
+
+=encoding utf-8
+
+=head1 NAME
+
+Test::Needs - Skip tests when modules not available
+
+=head1 SYNOPSIS
+
+ # need one module
+ use Test::Needs 'Some::Module';
+
+ # need multiple modules
+ use Test::Needs 'Some::Module', 'Some::Other::Module';
+
+ # need a given version of a module
+ use Test::Needs {
+ 'Some::Module' => '1.005',
+ };
+
+ # check later
+ use Test::Needs;
+ test_needs 'Some::Module';
+
+ # skips remainder of subtest
+ use Test::More;
+ use Test::Needs;
+ subtest 'my subtest' => sub {
+ test_needs 'Some::Module';
+ ...
+ };
+
+ # check perl version
+ use Test::Needs { perl => 5.020 };
+
+=head1 DESCRIPTION
+
+Skip test scripts if modules are not available. The requested modules will be
+loaded, and optionally have their versions checked. If the module is missing,
+the test script will be skipped. Modules that are found but fail to compile
+will exit with an error rather than skip.
+
+If used in a subtest, the remainder of the subtest will be skipped.
+
+Skipping will work even if some tests have already been run, or if a plan has
+been declared.
+
+Versions are checked via a C<< $module->VERSION($wanted_version) >> call.
+Versions must be provided in a format that will be accepted. No extra
+processing is done on them.
+
+If C<perl> is used as a module, the version is checked against the running perl
+version (L<$]|perlvar/$]>). The version can be specified as a number,
+dotted-decimal string, v-string, or version object.
+
+If the C<RELEASE_TESTING> environment variable is set, the tests will fail
+rather than skip. Subtests will be aborted, but the test script will continue
+running after that point.
+
+=head1 EXPORTS
+
+=head2 test_needs
+
+Has the same interface as when using Test::Needs in a C<use>.
+
+=head1 SEE ALSO
+
+=over 4
+
+=item L<Test::Requires>
+
+A similar module, with some important differences. L<Test::Requires> will act
+as a C<use> statement (despite its name), calling the import sub. Under
+C<RELEASE_TESTING>, it will BAIL_OUT if a module fails to load rather than
+using a normal test fail. It also doesn't distinguish between missing modules
+and broken modules.
+
+=item L<Test2::Require::Module>
+
+Part of the L<Test2> ecosystem. Only supports running as a C<use> command to
+skip an entire plan.
+
+=back
+
+=head1 AUTHOR
+
+haarg - Graham Knop (cpan:HAARG) <haarg@haarg.org>
+
+=head1 CONTRIBUTORS
+
+None so far.
+
+=head1 COPYRIGHT
+
+Copyright (c) 2016 the Test::Needs L</AUTHOR> and L</CONTRIBUTORS>
+as listed above.
+
+=head1 LICENSE
+
+This library is free software and may be distributed under the same terms
+as perl itself. See L<http://dev.perl.org/licenses/>.
+
+=cut
diff --git a/Master/tlpkg/tlperl/site/lib/Tk.pm b/Master/tlpkg/tlperl/site/lib/Tk.pm
index 831eef8e3fc..afaa505afb9 100644
--- a/Master/tlpkg/tlperl/site/lib/Tk.pm
+++ b/Master/tlpkg/tlperl/site/lib/Tk.pm
@@ -71,7 +71,7 @@ $Tk::CHANGE = 'git-controlled';
# is created, $VERSION is checked by bootstrap
$Tk::version = '8.4';
$Tk::patchLevel = '8.4';
-$Tk::VERSION = '804.033';
+$Tk::VERSION = '804.034';
$Tk::VERSION =~ s{_}{};
$Tk::XS_VERSION = $Tk::VERSION;
$Tk::strictMotif = 0;
diff --git a/Master/tlpkg/tlperl/site/lib/Tk/Config.pm b/Master/tlpkg/tlperl/site/lib/Tk/Config.pm
index a6b04934cf0..66c66a1aa5a 100644
--- a/Master/tlpkg/tlperl/site/lib/Tk/Config.pm
+++ b/Master/tlpkg/tlperl/site/lib/Tk/Config.pm
@@ -2,7 +2,7 @@
package Tk::Config;
require Exporter;
use base qw(Exporter);
-$VERSION = '804.033';
+$VERSION = '804.034';
$inc = '-I$(TKDIR) -I$(TKDIR)/pTk/mTk/xlib';
$define = '';
$xlib = '';
diff --git a/Master/tlpkg/tlperl/site/lib/Tk/Event.pm b/Master/tlpkg/tlperl/site/lib/Tk/Event.pm
index f00a0b5bdbe..39ad4c91fbf 100644
--- a/Master/tlpkg/tlperl/site/lib/Tk/Event.pm
+++ b/Master/tlpkg/tlperl/site/lib/Tk/Event.pm
@@ -1,8 +1,8 @@
package Tk::Event;
use vars qw($VERSION $XS_VERSION @EXPORT_OK);
END { CleanupGlue() }
-$VERSION = '4.033';
-$XS_VERSION = '804.033';
+$VERSION = '4.035';
+$XS_VERSION = '804.034';
$XS_VERSION =~ s{_}{};
use base qw(Exporter);
use XSLoader;
diff --git a/Master/tlpkg/tlperl/site/lib/Tk/NoteBook.pm b/Master/tlpkg/tlperl/site/lib/Tk/NoteBook.pm
index a1f2eedb09e..8a24621ba59 100644
--- a/Master/tlpkg/tlperl/site/lib/Tk/NoteBook.pm
+++ b/Master/tlpkg/tlperl/site/lib/Tk/NoteBook.pm
@@ -10,7 +10,7 @@ package Tk::NoteBook;
use vars qw($VERSION);
#$VERSION = sprintf '4.%03d', q$Revision: #9 $ =~ /\D(\d+)\s*$/;
-$VERSION = '4.011';
+$VERSION = '4.012';
require Tk::NBFrame;
use base qw(Tk::Derived Tk::NBFrame);
@@ -323,10 +323,11 @@ sub FindMenu {
my $page;
foreach $page (@{$w->{'windows'}}) {
my $i = $w->pagecget($page, -underline);
+ next if $i < 0;
my $l = $w->pagecget($page, -label);
next if (not defined $l);
my $c = substr($l, $i, 1);
- if ($char =~ /$c/i) {
+ if ($char =~ /\Q$c/i) {
if ($w->pagecget($page, -state) ne 'disabled') {
$w->raise($page);
return $w;
diff --git a/Master/tlpkg/tlperl/site/lib/Tk/Table.pod b/Master/tlpkg/tlperl/site/lib/Tk/Table.pod
index 02b6690b869..fa9d8c3658e 100644
--- a/Master/tlpkg/tlperl/site/lib/Tk/Table.pod
+++ b/Master/tlpkg/tlperl/site/lib/Tk/Table.pod
@@ -61,8 +61,10 @@ specified by -rows (default 10), and number of columns specified by -columns
If the Table is told it can take the keyboard focus then cursor and scroll
keys scroll the displayed widgets.
-The Table will create and manage its own scrollbars if requested via
--scrollbars.
+C<-scrollbars>. By default, scrollbars will be added C<nw>.
+To disable scrollbars, set C<-scrollbars> to an empty string:
+
+ $table = $parent->Table(-scrollbars => '', ...);
The table can be emptied using
@@ -71,7 +73,7 @@ The table can be emptied using
the widgets which were in the table are destroyed.
-The Tk::Table widget is derived from a Tk::Frame, so inherits all its
+The Tk::Table widget is derived from a L<Tk::Frame>, so inherits all its
configure options.
The default focus traversal is giving the focus only to the table
diff --git a/Master/tlpkg/tlperl/site/lib/Tk/getOpenFile.pod b/Master/tlpkg/tlperl/site/lib/Tk/getOpenFile.pod
index 828634bdf34..d4dc62075d3 100644
--- a/Master/tlpkg/tlperl/site/lib/Tk/getOpenFile.pod
+++ b/Master/tlpkg/tlperl/site/lib/Tk/getOpenFile.pod
@@ -4,7 +4,7 @@
=head1 NAME
-Tk::getOpenFile, Tk::getSaveFile - pop up a dialog box for the user to select a file to open or save.
+Tk::getOpenFile - pop up a dialog box for the user to select a file to open.
=for category Popups and Dialogs
diff --git a/Master/tlpkg/tlperl/site/lib/Tk/getSaveFile.pod b/Master/tlpkg/tlperl/site/lib/Tk/getSaveFile.pod
new file mode 100755
index 00000000000..af9e088def5
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/Tk/getSaveFile.pod
@@ -0,0 +1,11 @@
+=head1 NAME
+
+Tk::getSaveFile - pop up a dialog box for the user to select a file to save.
+
+=for category Popups and Dialogs
+
+=head1 DESCRIPTION
+
+See L<Tk::getOpenFile>.
+
+=cut
diff --git a/Master/tlpkg/tlperl/site/lib/Try/Tiny.pm b/Master/tlpkg/tlperl/site/lib/Try/Tiny.pm
index 476a215fe39..14f5b093172 100644
--- a/Master/tlpkg/tlperl/site/lib/Try/Tiny.pm
+++ b/Master/tlpkg/tlperl/site/lib/Try/Tiny.pm
@@ -1,8 +1,8 @@
-package Try::Tiny; # git description: v0.27-8-g8dc27c7
+package Try::Tiny; # git description: v0.29-2-g3b23a06
use 5.006;
# ABSTRACT: Minimal try/catch with proper preservation of $@
-our $VERSION = '0.28';
+our $VERSION = '0.30';
use strict;
use warnings;
@@ -70,8 +70,7 @@ sub try (&;@) {
# $catch->();
# name the blocks if we have Sub::Name installed
- my $caller = caller;
- _subname("${caller}::try {...} " => $try)
+ _subname(caller().'::try {...} ' => $try)
if _HAS_SUBNAME;
# set up scope guards to invoke the finally blocks at the end.
@@ -140,8 +139,7 @@ sub catch (&;@) {
croak 'Useless bare catch()' unless wantarray;
- my $caller = caller;
- _subname("${caller}::catch {...} " => $block)
+ _subname(caller().'::catch {...} ' => $block)
if _HAS_SUBNAME;
return (
bless(\$block, 'Try::Tiny::Catch'),
@@ -154,8 +152,7 @@ sub finally (&;@) {
croak 'Useless bare finally()' unless wantarray;
- my $caller = caller;
- _subname("${caller}::finally {...} " => $block)
+ _subname(caller().'::finally {...} ' => $block)
if _HAS_SUBNAME;
return (
bless(\$block, 'Try::Tiny::Finally'),
@@ -208,7 +205,7 @@ Try::Tiny - Minimal try/catch with proper preservation of $@
=head1 VERSION
-version 0.28
+version 0.30
=head1 SYNOPSIS
@@ -399,8 +396,10 @@ not yet handled.
C<$@> must be properly localized before invoking C<eval> in order to avoid this
issue.
-More specifically, C<$@> is clobbered at the beginning of the C<eval>, which
-also makes it impossible to capture the previous error before you die (for
+More specifically,
+L<before Perl version 5.14.0|perl5140delta/"Exception Handling">
+C<$@> was clobbered at the beginning of the C<eval>, which
+also made it impossible to capture the previous error before you die (for
instance when making exception objects with error stacks).
For this reason C<try> will actually set C<$@> to its previous value (the one
@@ -443,7 +442,7 @@ because due to the previous caveats it may have been unset.
C<$@> could also be an overloaded error object that evaluates to false, but
that's asking for trouble anyway.
-The classic failure mode is:
+The classic failure mode (fixed in L<Perl 5.14.0|perl5140delta/"Exception Handling">) is:
sub Object::DESTROY {
eval { ... }
@@ -479,9 +478,11 @@ be sure the C<eval> was aborted due to an error:
This is because an C<eval> that caught a C<die> will always return a false
value.
-=head1 SHINY SYNTAX
+=head1 ALTERNATE SYNTAX
-Using Perl 5.10 you can use L<perlsyn/"Switch statements">.
+Using Perl 5.10 you can use L<perlsyn/"Switch statements"> (but please don't,
+because that syntax has since been deprecated because there was too much
+unexpected magical behaviour).
=for stopwords topicalizer
@@ -626,8 +627,8 @@ confusing behavior:
}
}
-Note that this behavior was changed once again in L<Perl5 version 18
-|https://metacpan.org/module/perldelta#given-now-aliases-the-global-_>.
+Note that this behavior was changed once again in
+L<Perl5 version 18|https://metacpan.org/module/perldelta#given-now-aliases-the-global-_>.
However, since the entirety of lexical C<$_> is now L<considered experimental
|https://metacpan.org/module/perldelta#Lexical-_-is-now-experimental>, it
is unclear whether the new version 18 behavior is final.
@@ -699,7 +700,7 @@ Jesse Luehrs <doy@tozt.net>
=head1 CONTRIBUTORS
-=for stopwords Karen Etheridge Peter Rabbitson Ricardo Signes Mark Fowler Graham Knop Lukas Mai Dagfinn Ilmari Mannsåker Paul Howarth Rudolf Leermakers anaxagoras awalker chromatic Alex cm-perl Andrew Yates David Lowe Glenn Hans Dieter Pearcey Jonathan Yu Marc Mims Stosberg Pali
+=for stopwords Karen Etheridge Peter Rabbitson Ricardo Signes Mark Fowler Graham Knop Lukas Mai Aristotle Pagaltzis Dagfinn Ilmari Mannsåker Paul Howarth Rudolf Leermakers anaxagoras awalker chromatic Alex cm-perl Andrew Yates David Lowe Glenn Hans Dieter Pearcey Jens Berthold Jonathan Yu Marc Mims Stosberg Pali
=over 4
@@ -729,6 +730,10 @@ Lukas Mai <l.mai@web.de>
=item *
+Aristotle Pagaltzis <pagaltzis@gmx.de>
+
+=item *
+
Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
=item *
@@ -777,6 +782,10 @@ Hans Dieter Pearcey <hdp@weftsoar.net>
=item *
+Jens Berthold <jens@jebecs.de>
+
+=item *
+
Jonathan Yu <JAWNSY@cpan.org>
=item *
diff --git a/Master/tlpkg/tlperl/site/lib/Types/Serialiser.pm b/Master/tlpkg/tlperl/site/lib/Types/Serialiser.pm
deleted file mode 100644
index 7faa1d9b0bd..00000000000
--- a/Master/tlpkg/tlperl/site/lib/Types/Serialiser.pm
+++ /dev/null
@@ -1,254 +0,0 @@
-=head1 NAME
-
-Types::Serialiser - simple data types for common serialisation formats
-
-=encoding utf-8
-
-=head1 SYNOPSIS
-
-=head1 DESCRIPTION
-
-This module provides some extra datatypes that are used by common
-serialisation formats such as JSON or CBOR. The idea is to have a
-repository of simple/small constants and containers that can be shared by
-different implementations so they become interoperable between each other.
-
-=cut
-
-package Types::Serialiser;
-
-use common::sense; # required to suppress annoying warnings
-
-our $VERSION = '1.0';
-
-=head1 SIMPLE SCALAR CONSTANTS
-
-Simple scalar constants are values that are overloaded to act like simple
-Perl values, but have (class) type to differentiate them from normal Perl
-scalars. This is necessary because these have different representations in
-the serialisation formats.
-
-=head2 BOOLEANS (Types::Serialiser::Boolean class)
-
-This type has only two instances, true and false. A natural representation
-for these in Perl is C<1> and C<0>, but serialisation formats need to be
-able to differentiate between them and mere numbers.
-
-=over 4
-
-=item $Types::Serialiser::true, Types::Serialiser::true
-
-This value represents the "true" value. In most contexts is acts like
-the number C<1>. It is up to you whether you use the variable form
-(C<$Types::Serialiser::true>) or the constant form (C<Types::Serialiser::true>).
-
-The constant is represented as a reference to a scalar containing C<1> -
-implementations are allowed to directly test for this.
-
-=item $Types::Serialiser::false, Types::Serialiser::false
-
-This value represents the "false" value. In most contexts is acts like
-the number C<0>. It is up to you whether you use the variable form
-(C<$Types::Serialiser::false>) or the constant form (C<Types::Serialiser::false>).
-
-The constant is represented as a reference to a scalar containing C<0> -
-implementations are allowed to directly test for this.
-
-=item $is_bool = Types::Serialiser::is_bool $value
-
-Returns true iff the C<$value> is either C<$Types::Serialiser::true> or
-C<$Types::Serialiser::false>.
-
-For example, you could differentiate between a perl true value and a
-C<Types::Serialiser::true> by using this:
-
- $value && Types::Serialiser::is_bool $value
-
-=item $is_true = Types::Serialiser::is_true $value
-
-Returns true iff C<$value> is C<$Types::Serialiser::true>.
-
-=item $is_false = Types::Serialiser::is_false $value
-
-Returns false iff C<$value> is C<$Types::Serialiser::false>.
-
-=back
-
-=head2 ERROR (Types::Serialiser::Error class)
-
-This class has only a single instance, C<error>. It is used to signal
-an encoding or decoding error. In CBOR for example, and object that
-couldn't be encoded will be represented by a CBOR undefined value, which
-is represented by the error value in Perl.
-
-=over 4
-
-=item $Types::Serialiser::error, Types::Serialiser::error
-
-This value represents the "error" value. Accessing values of this type
-will throw an exception.
-
-The constant is represented as a reference to a scalar containing C<undef>
-- implementations are allowed to directly test for this.
-
-=item $is_error = Types::Serialiser::is_error $value
-
-Returns false iff C<$value> is C<$Types::Serialiser::error>.
-
-=back
-
-=cut
-
-BEGIN {
- # for historical reasons, and to avoid extra dependencies in JSON::PP,
- # we alias *Types::Serialiser::Boolean with JSON::PP::Boolean.
- package JSON::PP::Boolean;
-
- *Types::Serialiser::Boolean:: = *JSON::PP::Boolean::;
-}
-
-{
- # this must done before blessing to work around bugs
- # in perl < 5.18 (it seems to be fixed in 5.18).
- package Types::Serialiser::BooleanBase;
-
- use overload
- "0+" => sub { ${$_[0]} },
- "++" => sub { $_[0] = ${$_[0]} + 1 },
- "--" => sub { $_[0] = ${$_[0]} - 1 },
- fallback => 1;
-
- @Types::Serialiser::Boolean::ISA = Types::Serialiser::BooleanBase::;
-}
-
-our $true = do { bless \(my $dummy = 1), Types::Serialiser::Boolean:: };
-our $false = do { bless \(my $dummy = 0), Types::Serialiser::Boolean:: };
-our $error = do { bless \(my $dummy ), Types::Serialiser::Error:: };
-
-sub true () { $true }
-sub false () { $false }
-sub error () { $error }
-
-sub is_bool ($) { UNIVERSAL::isa $_[0], Types::Serialiser::Boolean:: }
-sub is_true ($) { $_[0] && UNIVERSAL::isa $_[0], Types::Serialiser::Boolean:: }
-sub is_false ($) { !$_[0] && UNIVERSAL::isa $_[0], Types::Serialiser::Boolean:: }
-sub is_error ($) { UNIVERSAL::isa $_[0], Types::Serialiser::Error:: }
-
-package Types::Serialiser::Error;
-
-sub error {
- require Carp;
- Carp::croak ("caught attempt to use the Types::Serialiser::error value");
-};
-
-use overload
- "0+" => \&error,
- "++" => \&error,
- "--" => \&error,
- fallback => 1;
-
-=head1 NOTES FOR XS USERS
-
-The recommended way to detect whether a scalar is one of these objects
-is to check whether the stash is the C<Types::Serialiser::Boolean> or
-C<Types::Serialiser::Error> stash, and then follow the scalar reference to
-see if it's C<1> (true), C<0> (false) or C<undef> (error).
-
-While it is possible to use an isa test, directly comparing stash pointers
-is faster and guaranteed to work.
-
-For historical reasons, the C<Types::Serialiser::Boolean> stash is
-just an alias for C<JSON::PP::Boolean>. When printed, the classname
-with usually be C<JSON::PP::Boolean>, but isa tests and stash pointer
-comparison will normally work correctly (i.e. Types::Serialiser::true ISA
-JSON::PP::Boolean, but also ISA Types::Serialiser::Boolean).
-
-=head1 A GENERIC OBJECT SERIALIATION PROTOCOL
-
-This section explains the object serialisation protocol used by
-L<CBOR::XS>. It is meant to be generic enough to support any kind of
-generic object serialiser.
-
-This protocol is called "the Types::Serialiser object serialisation
-protocol".
-
-=head2 ENCODING
-
-When the encoder encounters an object that it cannot otherwise encode (for
-example, L<CBOR::XS> can encode a few special types itself, and will first
-attempt to use the special C<TO_CBOR> serialisation protocol), it will
-look up the C<FREEZE> method on the object.
-
-Note that the C<FREEZE> method will normally be called I<during> encoding,
-and I<MUST NOT> change the data structure that is being encoded in any
-way, or it might cause memory corruption or worse.
-
-If it exists, it will call it with two arguments: the object to serialise,
-and a constant string that indicates the name of the data model. For
-example L<CBOR::XS> uses C<CBOR>, and the L<JSON> and L<JSON::XS> modules
-(or any other JSON serialiser), would use C<JSON> as second argument.
-
-The C<FREEZE> method can then return zero or more values to identify the
-object instance. The serialiser is then supposed to encode the class name
-and all of these return values (which must be encodable in the format)
-using the relevant form for Perl objects. In CBOR for example, there is a
-registered tag number for encoded perl objects.
-
-The values that C<FREEZE> returns must be serialisable with the serialiser
-that calls it. Therefore, it is recommended to use simple types such as
-strings and numbers, and maybe array references and hashes (basically, the
-JSON data model). You can always use a more complex format for a specific
-data model by checking the second argument, the data model.
-
-The "data model" is not the same as the "data format" - the data model
-indicates what types and kinds of return values can be returned from
-C<FREEZE>. For example, in C<CBOR> it is permissible to return tagged CBOR
-values, while JSON does not support these at all, so C<JSON> would be a
-valid (but too limited) data model name for C<CBOR::XS>. similarly, a
-serialising format that supports more or less the same data model as JSON
-could use C<JSON> as data model without losing anything.
-
-=head2 DECODING
-
-When the decoder then encounters such an encoded perl object, it should
-look up the C<THAW> method on the stored classname, and invoke it with the
-classname, the constant string to identify the data model/data format, and
-all the return values returned by C<FREEZE>.
-
-=head2 EXAMPLES
-
-See the C<OBJECT SERIALISATION> section in the L<CBOR::XS> manpage for
-more details, an example implementation, and code examples.
-
-Here is an example C<FREEZE>/C<THAW> method pair:
-
- sub My::Object::FREEZE {
- my ($self, $model) = @_;
-
- ($self->{type}, $self->{id}, $self->{variant})
- }
-
- sub My::Object::THAW {
- my ($class, $model, $type, $id, $variant) = @_;
-
- $class->new (type => $type, id => $id, variant => $variant)
- }
-
-=head1 BUGS
-
-The use of L<overload> makes this module much heavier than it should be
-(on my system, this module: 4kB RSS, overload: 260kB RSS).
-
-=head1 SEE ALSO
-
-Currently, L<JSON::XS> and L<CBOR::XS> use these types.
-
-=head1 AUTHOR
-
- Marc Lehmann <schmorp@schmorp.de>
- http://home.schmorp.de/
-
-=cut
-
-1
-
diff --git a/Master/tlpkg/tlperl/site/lib/Types/Serialiser/Error.pm b/Master/tlpkg/tlperl/site/lib/Types/Serialiser/Error.pm
deleted file mode 100644
index 3e88821ad39..00000000000
--- a/Master/tlpkg/tlperl/site/lib/Types/Serialiser/Error.pm
+++ /dev/null
@@ -1,27 +0,0 @@
-=head1 NAME
-
-Types::Serialiser::Error - dummy module for Types::Serialiser
-
-=head1 SYNOPSIS
-
- # do not "use" yourself
-
-=head1 DESCRIPTION
-
-This module exists only to provide overload resolution for Storable and
-similar modules that assume that class name equals module name. See
-L<Types::Serialiser> for more info about this class.
-
-=cut
-
-use Types::Serialiser ();
-
-=head1 AUTHOR
-
- Marc Lehmann <schmorp@schmorp.de>
- http://home.schmorp.de/
-
-=cut
-
-1
-
diff --git a/Master/tlpkg/tlperl/site/lib/URI.pm b/Master/tlpkg/tlperl/site/lib/URI.pm
index d0f89276769..ac53e14c28b 100644
--- a/Master/tlpkg/tlperl/site/lib/URI.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI.pm
@@ -3,7 +3,7 @@ package URI;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
our ($ABS_REMOTE_LEADING_DOTS, $ABS_ALLOW_RELATIVE_SCHEME, $DEFAULT_QUERY_FORM_DELIMITER);
@@ -358,6 +358,8 @@ URI - Uniform Resource Identifiers (absolute and relative)
=head1 SYNOPSIS
+ use URI;
+
$u1 = URI->new("http://www.perl.com");
$u2 = URI->new("foo", "http");
$u3 = $u2->abs($u1);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/Escape.pm b/Master/tlpkg/tlperl/site/lib/URI/Escape.pm
index 30f2b312755..f9392d446fe 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/Escape.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/Escape.pm
@@ -181,6 +181,7 @@ sub _fail_hi {
sub uri_escape_utf8 {
my $text = shift;
+ return undef unless defined $text;
utf8::encode($text);
return uri_escape($text, @_);
}
diff --git a/Master/tlpkg/tlperl/site/lib/URI/IRI.pm b/Master/tlpkg/tlperl/site/lib/URI/IRI.pm
index 3dadd39f3f0..df68c386757 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/IRI.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/IRI.pm
@@ -8,7 +8,7 @@ use URI ();
use overload '""' => sub { shift->as_string };
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub new {
diff --git a/Master/tlpkg/tlperl/site/lib/URI/QueryParam.pm b/Master/tlpkg/tlperl/site/lib/URI/QueryParam.pm
index 8f1448f021e..1408aadba97 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/QueryParam.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/QueryParam.pm
@@ -3,7 +3,7 @@ package URI::QueryParam;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub URI::_query::query_param {
diff --git a/Master/tlpkg/tlperl/site/lib/URI/Split.pm b/Master/tlpkg/tlperl/site/lib/URI/Split.pm
index d66caf67c37..a44d3a8d10a 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/Split.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/Split.pm
@@ -3,7 +3,7 @@ package URI::Split;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use Exporter 5.57 'import';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_foreign.pm b/Master/tlpkg/tlperl/site/lib/URI/_foreign.pm
index fbee23e05ab..a500a3659c0 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_foreign.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_foreign.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::_generic';
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
1;
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_generic.pm b/Master/tlpkg/tlperl/site/lib/URI/_generic.pm
index 7f8476006ec..f749cc27e3a 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_generic.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_generic.pm
@@ -8,7 +8,7 @@ use parent qw(URI URI::_query);
use URI::Escape qw(uri_unescape);
use Carp ();
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
my $ACHAR = $URI::uric; $ACHAR =~ s,\\[/?],,g;
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_idna.pm b/Master/tlpkg/tlperl/site/lib/URI/_idna.pm
index 2ec600b9503..e4206158946 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_idna.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_idna.pm
@@ -9,11 +9,11 @@ use warnings;
use URI::_punycode qw(encode_punycode decode_punycode);
use Carp qw(croak);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
BEGIN {
- *URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS = $] < 5.008_003
+ *URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS = "$]" < 5.008_003
? sub () { 1 }
: sub () { 0 }
;
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_ldap.pm b/Master/tlpkg/tlperl/site/lib/URI/_ldap.pm
index 42e559d0bda..18075c527c0 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_ldap.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_ldap.pm
@@ -7,7 +7,7 @@ package URI::_ldap;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use URI::Escape qw(uri_unescape);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_login.pm b/Master/tlpkg/tlperl/site/lib/URI/_login.pm
index 331fdc1e1b9..b4a86b01d4c 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_login.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_login.pm
@@ -5,7 +5,7 @@ use warnings;
use parent qw(URI::_server URI::_userpass);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
# Generic terminal logins. This is used as a base class for 'telnet',
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_punycode.pm b/Master/tlpkg/tlperl/site/lib/URI/_punycode.pm
index 1ade17b2922..ca5ebf24857 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_punycode.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_punycode.pm
@@ -3,7 +3,7 @@ package URI::_punycode;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use Exporter 'import';
@@ -147,58 +147,72 @@ sub min {
1;
__END__
+=encoding utf8
+
=head1 NAME
URI::_punycode - encodes Unicode string in Punycode
=head1 SYNOPSIS
- use URI::_punycode;
- $punycode = encode_punycode($unicode);
- $unicode = decode_punycode($punycode);
+ use strict;
+ use warnings;
+ use utf8;
-=head1 DESCRIPTION
+ use URI::_punycode qw(encode_punycode decode_punycode);
-URI::_punycode is a module to encode / decode Unicode strings into
-Punycode, an efficient encoding of Unicode for use with IDNA.
+ # encode a unicode string
+ my $punycode = encode_punycode('http://☃.net'); # http://.net-xc8g
+ $punycode = encode_punycode('bücher'); # bcher-kva
+ $punycode = encode_punycode('他们为什么不说中文'); # ihqwcrb4cv8a8dqg056pqjye
-This module requires Perl 5.6.0 or over to handle UTF8 flagged Unicode
-strings.
+ # decode a punycode string back into a unicode string
+ my $unicode = decode_punycode('http://.net-xc8g'); # http://☃.net
+ $unicode = decode_punycode('bcher-kva'); # bücher
+ $unicode = decode_punycode('ihqwcrb4cv8a8dqg056pqjye'); # 他们为什么不说中文
-=head1 FUNCTIONS
+=head1 DESCRIPTION
-This module exports following functions by default.
+L<URI::_punycode> is a module to encode / decode Unicode strings into
+L<Punycode|https://tools.ietf.org/html/rfc3492>, an efficient
+encoding of Unicode for use with L<IDNA|https://tools.ietf.org/html/rfc5890>.
-=over 4
+=head1 FUNCTIONS
+
+All functions throw exceptions on failure. You can C<catch> them with
+L<Syntax::Keyword::Try> or L<Try::Tiny>. The following functions are exported
+by default.
-=item encode_punycode
+=head2 encode_punycode
- $punycode = encode_punycode($unicode);
+ my $punycode = encode_punycode('http://☃.net'); # http://.net-xc8g
+ $punycode = encode_punycode('bücher'); # bcher-kva
+ $punycode = encode_punycode('他们为什么不说中文') # ihqwcrb4cv8a8dqg056pqjye
-takes Unicode string (UTF8-flagged variable) and returns Punycode
+Takes a Unicode string (UTF8-flagged variable) and returns a Punycode
encoding for it.
-=item decode_punycode
+=head2 decode_punycode
- $unicode = decode_punycode($punycode)
+ my $unicode = decode_punycode('http://.net-xc8g'); # http://☃.net
+ $unicode = decode_punycode('bcher-kva'); # bücher
+ $unicode = decode_punycode('ihqwcrb4cv8a8dqg056pqjye'); # 他们为什么不说中文
-takes Punycode encoding and returns original Unicode string.
+Takes a Punycode encoding and returns original Unicode string.
-=back
+=head1 AUTHOR
-These functions throw exceptions on failure. You can catch 'em via
-C<eval>.
+Tatsuhiko Miyagawa <F<miyagawa@bulknews.net>> is the author of
+L<IDNA::Punycode> which was the basis for this module.
-=head1 AUTHOR
+=head1 SEE ALSO
+
+L<IDNA::Punycode>, L<RFC 3492|https://tools.ietf.org/html/rfc3492>,
+L<RFC 5891|https://tools.ietf.org/html/rfc5891>
-Tatsuhiko Miyagawa E<lt>miyagawa@bulknews.netE<gt> is the author of
-IDNA::Punycode v0.02 which was the basis for this module.
+=head1 COPYRIGHT AND LICENSE
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
-=head1 SEE ALSO
-
-L<IDNA::Punycode>, RFC 3492
-
=cut
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_query.pm b/Master/tlpkg/tlperl/site/lib/URI/_query.pm
index 06162638572..94cb71b59f6 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_query.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_query.pm
@@ -6,7 +6,7 @@ use warnings;
use URI ();
use URI::Escape qw(uri_unescape);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub query
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_segment.pm b/Master/tlpkg/tlperl/site/lib/URI/_segment.pm
index 9e39faa989e..5a0b1a683db 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_segment.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_segment.pm
@@ -11,7 +11,7 @@ use URI::Escape qw(uri_unescape);
use overload '""' => sub { $_[0]->[0] },
fallback => 1;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub new
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_server.pm b/Master/tlpkg/tlperl/site/lib/URI/_server.pm
index 055bb49f716..7fcdaaae31d 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_server.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_server.pm
@@ -7,7 +7,7 @@ use parent 'URI::_generic';
use URI::Escape qw(uri_unescape);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub _uric_escape {
diff --git a/Master/tlpkg/tlperl/site/lib/URI/_userpass.pm b/Master/tlpkg/tlperl/site/lib/URI/_userpass.pm
index 1e48c0288d2..22b0daa4f73 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/_userpass.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/_userpass.pm
@@ -5,7 +5,7 @@ use warnings;
use URI::Escape qw(uri_unescape);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub user
diff --git a/Master/tlpkg/tlperl/site/lib/URI/data.pm b/Master/tlpkg/tlperl/site/lib/URI/data.pm
index 38ee7cf98e6..452dc982db3 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/data.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/data.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI';
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use MIME::Base64 qw(encode_base64 decode_base64);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/file/Base.pm b/Master/tlpkg/tlperl/site/lib/URI/file/Base.pm
index cbb0970c273..dc1daf81d20 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/file/Base.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/file/Base.pm
@@ -5,7 +5,7 @@ use warnings;
use URI::Escape qw();
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub new
diff --git a/Master/tlpkg/tlperl/site/lib/URI/file/FAT.pm b/Master/tlpkg/tlperl/site/lib/URI/file/FAT.pm
index 081d94e2166..07538c08ad4 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/file/FAT.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/file/FAT.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::file::Win32';
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub fix_path
diff --git a/Master/tlpkg/tlperl/site/lib/URI/file/Mac.pm b/Master/tlpkg/tlperl/site/lib/URI/file/Mac.pm
index f9eda0a8190..fb634c95f19 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/file/Mac.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/file/Mac.pm
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
use URI::Escape qw(uri_unescape);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub _file_extract_path
diff --git a/Master/tlpkg/tlperl/site/lib/URI/file/OS2.pm b/Master/tlpkg/tlperl/site/lib/URI/file/OS2.pm
index a089491cb09..c290d40a057 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/file/OS2.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/file/OS2.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::file::Win32';
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
# The Win32 version translates k:/foo to file://k:/foo (?!)
diff --git a/Master/tlpkg/tlperl/site/lib/URI/file/QNX.pm b/Master/tlpkg/tlperl/site/lib/URI/file/QNX.pm
index 2853ac0e0bc..5164d3bfa59 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/file/QNX.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/file/QNX.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::file::Unix';
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub _file_extract_path
diff --git a/Master/tlpkg/tlperl/site/lib/URI/file/Unix.pm b/Master/tlpkg/tlperl/site/lib/URI/file/Unix.pm
index e75887b0227..42d1a51862a 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/file/Unix.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/file/Unix.pm
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
use URI::Escape qw(uri_unescape);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub _file_extract_path
diff --git a/Master/tlpkg/tlperl/site/lib/URI/file/Win32.pm b/Master/tlpkg/tlperl/site/lib/URI/file/Win32.pm
index eac920f9ea3..b9697f91286 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/file/Win32.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/file/Win32.pm
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
use URI::Escape qw(uri_unescape);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub _file_extract_authority
diff --git a/Master/tlpkg/tlperl/site/lib/URI/ftp.pm b/Master/tlpkg/tlperl/site/lib/URI/ftp.pm
index c7dd7999697..451af0a5ee4 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/ftp.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/ftp.pm
@@ -3,7 +3,7 @@ package URI::ftp;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent qw(URI::_server URI::_userpass);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/gopher.pm b/Master/tlpkg/tlperl/site/lib/URI/gopher.pm
index 03a1d6c0004..02f4334a194 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/gopher.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/gopher.pm
@@ -3,7 +3,7 @@ package URI::gopher; # <draft-murali-url-gopher>, Dec 4, 1996
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::_server';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/http.pm b/Master/tlpkg/tlperl/site/lib/URI/http.pm
index 3d8eaf5a911..85650607d05 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/http.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/http.pm
@@ -3,7 +3,7 @@ package URI::http;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::_server';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/https.pm b/Master/tlpkg/tlperl/site/lib/URI/https.pm
index 9dbb02bb2ce..1e80fe86587 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/https.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/https.pm
@@ -3,7 +3,7 @@ package URI::https;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::http';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/ldap.pm b/Master/tlpkg/tlperl/site/lib/URI/ldap.pm
index b5f9a07a917..a8b10ec6249 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/ldap.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/ldap.pm
@@ -7,7 +7,7 @@ package URI::ldap;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent qw(URI::_ldap URI::_server);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/ldapi.pm b/Master/tlpkg/tlperl/site/lib/URI/ldapi.pm
index 2e47a5e35fe..6a0cabef7ce 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/ldapi.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/ldapi.pm
@@ -3,7 +3,7 @@ package URI::ldapi;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent qw(URI::_ldap URI::_generic);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/ldaps.pm b/Master/tlpkg/tlperl/site/lib/URI/ldaps.pm
index 50db6d270b7..371b90e6ba1 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/ldaps.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/ldaps.pm
@@ -3,7 +3,7 @@ package URI::ldaps;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::ldap';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/mailto.pm b/Master/tlpkg/tlperl/site/lib/URI/mailto.pm
index b9c4e35f541..33381fdeceb 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/mailto.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/mailto.pm
@@ -3,7 +3,7 @@ package URI::mailto; # RFC 2368
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent qw(URI URI::_query);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/mms.pm b/Master/tlpkg/tlperl/site/lib/URI/mms.pm
index 9b745ab054b..cb7b623707d 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/mms.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/mms.pm
@@ -3,7 +3,7 @@ package URI::mms;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::http';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/news.pm b/Master/tlpkg/tlperl/site/lib/URI/news.pm
index c3a32cd603c..bdf003bec1c 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/news.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/news.pm
@@ -3,7 +3,7 @@ package URI::news; # draft-gilman-news-url-01
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::_server';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/nntp.pm b/Master/tlpkg/tlperl/site/lib/URI/nntp.pm
index 57c9fcfe0d5..e1a55b6e632 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/nntp.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/nntp.pm
@@ -3,7 +3,7 @@ package URI::nntp; # draft-gilman-news-url-01
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::news';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/pop.pm b/Master/tlpkg/tlperl/site/lib/URI/pop.pm
index 3162a9db9ba..237d6cd4c45 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/pop.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/pop.pm
@@ -3,7 +3,7 @@ package URI::pop; # RFC 2384
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::_server';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/rlogin.pm b/Master/tlpkg/tlperl/site/lib/URI/rlogin.pm
index e740ca257b5..8d589d7c90d 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/rlogin.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/rlogin.pm
@@ -3,7 +3,7 @@ package URI::rlogin;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::_login';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/rsync.pm b/Master/tlpkg/tlperl/site/lib/URI/rsync.pm
index 16f3a0c5577..1ffae852c90 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/rsync.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/rsync.pm
@@ -5,7 +5,7 @@ package URI::rsync; # http://rsync.samba.org/
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent qw(URI::_server URI::_userpass);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/rtsp.pm b/Master/tlpkg/tlperl/site/lib/URI/rtsp.pm
index 21cb24f09bb..2c2b2e66c50 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/rtsp.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/rtsp.pm
@@ -3,7 +3,7 @@ package URI::rtsp;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::http';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/rtspu.pm b/Master/tlpkg/tlperl/site/lib/URI/rtspu.pm
index 9e61ecbf335..e285776c013 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/rtspu.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/rtspu.pm
@@ -3,7 +3,7 @@ package URI::rtspu;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::rtsp';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/sftp.pm b/Master/tlpkg/tlperl/site/lib/URI/sftp.pm
index 2d271fa97d6..293476d7888 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/sftp.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/sftp.pm
@@ -5,7 +5,7 @@ use warnings;
use parent 'URI::ssh';
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
1;
diff --git a/Master/tlpkg/tlperl/site/lib/URI/sip.pm b/Master/tlpkg/tlperl/site/lib/URI/sip.pm
index a1574aa1580..517f7049e1d 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/sip.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/sip.pm
@@ -14,7 +14,7 @@ use parent qw(URI::_server URI::_userpass);
use URI::Escape qw(uri_unescape);
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
sub default_port { 5060 }
diff --git a/Master/tlpkg/tlperl/site/lib/URI/sips.pm b/Master/tlpkg/tlperl/site/lib/URI/sips.pm
index fc782e4a75f..f89f116654c 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/sips.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/sips.pm
@@ -3,7 +3,7 @@ package URI::sips;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::sip';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/snews.pm b/Master/tlpkg/tlperl/site/lib/URI/snews.pm
index 1865c2fb548..546e58c9960 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/snews.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/snews.pm
@@ -3,7 +3,7 @@ package URI::snews; # draft-gilman-news-url-01
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::news';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/ssh.pm b/Master/tlpkg/tlperl/site/lib/URI/ssh.pm
index d73448bb2ba..8fb25eb689a 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/ssh.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/ssh.pm
@@ -3,7 +3,7 @@ package URI::ssh;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::_login';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/telnet.pm b/Master/tlpkg/tlperl/site/lib/URI/telnet.pm
index 9f578f68548..82daef344c9 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/telnet.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/telnet.pm
@@ -3,7 +3,7 @@ package URI::telnet;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::_login';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/tn3270.pm b/Master/tlpkg/tlperl/site/lib/URI/tn3270.pm
index 232460017a8..f0e348314e6 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/tn3270.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/tn3270.pm
@@ -3,7 +3,7 @@ package URI::tn3270;
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::_login';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/urn.pm b/Master/tlpkg/tlperl/site/lib/URI/urn.pm
index 679d205e07e..659b2656621 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/urn.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/urn.pm
@@ -3,7 +3,7 @@ package URI::urn; # RFC 2141
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI';
diff --git a/Master/tlpkg/tlperl/site/lib/URI/urn/isbn.pm b/Master/tlpkg/tlperl/site/lib/URI/urn/isbn.pm
index b335044b885..c8469535c4f 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/urn/isbn.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/urn/isbn.pm
@@ -3,6 +3,8 @@ package URI::urn::isbn; # RFC 3187
use strict;
use warnings;
+our $VERSION = '1.73';
+
use parent 'URI::urn';
use Carp qw(carp);
diff --git a/Master/tlpkg/tlperl/site/lib/URI/urn/oid.pm b/Master/tlpkg/tlperl/site/lib/URI/urn/oid.pm
index 7d38bc9f73e..010fcf0d4bf 100644
--- a/Master/tlpkg/tlperl/site/lib/URI/urn/oid.pm
+++ b/Master/tlpkg/tlperl/site/lib/URI/urn/oid.pm
@@ -3,7 +3,7 @@ package URI::urn::oid; # RFC 2061
use strict;
use warnings;
-our $VERSION = '1.71';
+our $VERSION = '1.73';
$VERSION = eval $VERSION;
use parent 'URI::urn';
diff --git a/Master/tlpkg/tlperl/site/lib/Win32/Process.pm b/Master/tlpkg/tlperl/site/lib/Win32/Process.pm
deleted file mode 100644
index 0f2a681d51b..00000000000
--- a/Master/tlpkg/tlperl/site/lib/Win32/Process.pm
+++ /dev/null
@@ -1,224 +0,0 @@
-package Win32::Process;
-
-require Exporter;
-require DynaLoader;
-@ISA = qw(Exporter DynaLoader);
-
-$VERSION = '0.16';
-
-# Items to export into callers namespace by default. Note: do not export
-# names by default without a very good reason. Use EXPORT_OK instead.
-# Do not simply export all your public functions/methods/constants.
-@EXPORT = qw(
- CREATE_DEFAULT_ERROR_MODE
- CREATE_NEW_CONSOLE
- CREATE_NEW_PROCESS_GROUP
- CREATE_NO_WINDOW
- CREATE_SEPARATE_WOW_VDM
- CREATE_SUSPENDED
- CREATE_UNICODE_ENVIRONMENT
- DEBUG_ONLY_THIS_PROCESS
- DEBUG_PROCESS
- DETACHED_PROCESS
- HIGH_PRIORITY_CLASS
- IDLE_PRIORITY_CLASS
- INFINITE
- NORMAL_PRIORITY_CLASS
- REALTIME_PRIORITY_CLASS
- THREAD_PRIORITY_ABOVE_NORMAL
- THREAD_PRIORITY_BELOW_NORMAL
- THREAD_PRIORITY_ERROR_RETURN
- THREAD_PRIORITY_HIGHEST
- THREAD_PRIORITY_IDLE
- THREAD_PRIORITY_LOWEST
- THREAD_PRIORITY_NORMAL
- THREAD_PRIORITY_TIME_CRITICAL
-);
-
-@EXPORT_OK = qw(
- STILL_ACTIVE
- ABOVE_NORMAL_PRIORITY_CLASS
- BELOW_NORMAL_PRIORITY_CLASS
-);
-
-sub AUTOLOAD {
- # This AUTOLOAD is used to 'autoload' constants from the constant()
- # XS function.
- my($constname);
- ($constname = $AUTOLOAD) =~ s/.*:://;
- local $! = 0;
- my $val = constant($constname);
- if ($! != 0) {
- my ($pack,$file,$line) = caller;
- die "Your vendor has not defined Win32::Process macro $constname, used at $file line $line.";
- }
- eval "sub $AUTOLOAD { $val }";
- goto &$AUTOLOAD;
-} # end AUTOLOAD
-
-bootstrap Win32::Process;
-
-# Win32::IPC > 1.02 uses the get_Win32_IPC_HANDLE method:
-*get_Win32_IPC_HANDLE = \&get_process_handle;
-
-1;
-__END__
-
-=head1 NAME
-
-Win32::Process - Create and manipulate processes.
-
-=head1 SYNOPSIS
-
- use Win32::Process;
- use Win32;
-
- sub ErrorReport{
- print Win32::FormatMessage( Win32::GetLastError() );
- }
-
- Win32::Process::Create($ProcessObj,
- "C:\\winnt\\system32\\notepad.exe",
- "notepad temp.txt",
- 0,
- NORMAL_PRIORITY_CLASS,
- ".")|| die ErrorReport();
-
- $ProcessObj->Suspend();
- $ProcessObj->Resume();
- $ProcessObj->Wait(INFINITE);
-
-=head1 DESCRIPTION
-
-This module provides access to the process control functions in the
-Win32 API.
-
-=head1 METHODS
-
-=over 8
-
-=item Win32::Process::Create($obj,$appname,$cmdline,$iflags,$cflags,$curdir)
-
-Creates a new process.
-
- Args:
-
- $obj container for process object
- $appname full path name of executable module
- $cmdline command line args
- $iflags flag: inherit calling processes handles or not
- $cflags flags for creation (see exported vars below)
- $curdir working dir of new process
-
-Returns non-zero on success, 0 on failure.
-
-=item Win32::Process::Open($obj,$pid,$iflags)
-
-Creates a handle Perl can use to an existing process as identified by $pid.
-The $iflags is the inherit flag that is passed to OpenProcess. Currently
-Win32::Process objects created using Win32::Process::Open cannot Suspend
-or Resume the process. All other calls should work.
-
-Win32::Process::Open returns non-zero on success, 0 on failure.
-
-=item Win32::Process::KillProcess($pid, $exitcode)
-
-Terminates any process identified by $pid. $exitcode will be set to
-the exit code of the process.
-
-=item $ProcessObj->Suspend()
-
-Suspend the process associated with the $ProcessObj.
-
-=item $ProcessObj->Resume()
-
-Resume a suspended process.
-
-=item $ProcessObj->Kill($exitcode)
-
-Kill the associated process, have it terminate with exit code $ExitCode.
-
-=item $ProcessObj->GetPriorityClass($class)
-
-Get the priority class of the process.
-
-=item $ProcessObj->SetPriorityClass($class)
-
-Set the priority class of the process (see exported values below for
-options). Note that the ABOVE_NORMAL_PRIORITY_CLASS and
-BELOW_NORMAL_PRIORITY_CLASS classes only work on Windows 2000
-and later.
-
-=item $ProcessObj->GetProcessAffinityMask($processAffinityMask, $systemAffinityMask)
-
-Get the process affinity mask. This is a bitvector in which each bit
-represents the processors that a process is allowed to run on.
-
-=item $ProcessObj->SetProcessAffinityMask($processAffinityMask)
-
-Set the process affinity mask. Only available on Windows NT.
-
-=item $ProcessObj->GetExitCode($exitcode)
-
-Retrieve the exitcode of the process. Will return STILL_ACTIVE if the
-process is still running. The STILL_ACTIVE constant is only exported
-by explicit request.
-
-=item $ProcessObj->Wait($timeout)
-
-Wait for the process to die. $timeout should be specified in milliseconds.
-To wait forever, specify the constant C<INFINITE>.
-
-=item $ProcessObj->GetProcessID()
-
-Returns the Process ID.
-
-=item Win32::Process::GetCurrentProcessID()
-
-Returns the current process ID, which is the same as $$. But not on cygwin,
-where $$ is the cygwin-internal PID and not the windows PID.
-On cygwin GetCurrentProcessID() returns the windows PID as needed for all
-the Win32::Process functions.
-
-=back
-
-=head1 EXPORTS
-
-The following constants are exported by default:
-
- CREATE_DEFAULT_ERROR_MODE
- CREATE_NEW_CONSOLE
- CREATE_NEW_PROCESS_GROUP
- CREATE_NO_WINDOW
- CREATE_SEPARATE_WOW_VDM
- CREATE_SUSPENDED
- CREATE_UNICODE_ENVIRONMENT
- DEBUG_ONLY_THIS_PROCESS
- DEBUG_PROCESS
- DETACHED_PROCESS
- HIGH_PRIORITY_CLASS
- IDLE_PRIORITY_CLASS
- INFINITE
- NORMAL_PRIORITY_CLASS
- REALTIME_PRIORITY_CLASS
- THREAD_PRIORITY_ABOVE_NORMAL
- THREAD_PRIORITY_BELOW_NORMAL
- THREAD_PRIORITY_ERROR_RETURN
- THREAD_PRIORITY_HIGHEST
- THREAD_PRIORITY_IDLE
- THREAD_PRIORITY_LOWEST
- THREAD_PRIORITY_NORMAL
- THREAD_PRIORITY_TIME_CRITICAL
-
-The following additional constants are exported by request only:
-
- ABOVE_NORMAL_PRIORITY_CLASS
- BELOW_NORMAL_PRIORITY_CLASS
- STILL_ACTIVE
-
-=head1 LICENSE
-
-This program is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Canary/Stability/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Canary/Stability/.packlist
deleted file mode 100644
index 2cfb51c8d4d..00000000000
--- a/Master/tlpkg/tlperl/site/lib/auto/Canary/Stability/.packlist
+++ /dev/null
@@ -1 +0,0 @@
-C:\tlperl\site\lib\Canary\Stability.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist
new file mode 100755
index 00000000000..593f334bc1a
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/.packlist
@@ -0,0 +1,6 @@
+C:\tlperl526\bin\cpanel_json_xs
+C:\tlperl526\bin\cpanel_json_xs.bat
+C:\tlperl526\site\lib\Cpanel\JSON\XS.pm
+C:\tlperl526\site\lib\Cpanel\JSON\XS\Boolean.pm
+C:\tlperl526\site\lib\Cpanel\JSON\XS\Type.pm
+C:\tlperl526\site\lib\auto\Cpanel\JSON\XS\XS.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll b/Master/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll
new file mode 100755
index 00000000000..8b7acb53851
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/auto/Cpanel/JSON/XS/XS.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist
index 5e66e1a6615..f6cf37a197b 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Date/Parse/.packlist
@@ -1,37 +1,37 @@
-C:\tlperl\site\lib\Date\Format.pm
-C:\tlperl\site\lib\Date\Language.pm
-C:\tlperl\site\lib\Date\Language\Afar.pm
-C:\tlperl\site\lib\Date\Language\Amharic.pm
-C:\tlperl\site\lib\Date\Language\Austrian.pm
-C:\tlperl\site\lib\Date\Language\Brazilian.pm
-C:\tlperl\site\lib\Date\Language\Bulgarian.pm
-C:\tlperl\site\lib\Date\Language\Chinese.pm
-C:\tlperl\site\lib\Date\Language\Chinese_GB.pm
-C:\tlperl\site\lib\Date\Language\Czech.pm
-C:\tlperl\site\lib\Date\Language\Danish.pm
-C:\tlperl\site\lib\Date\Language\Dutch.pm
-C:\tlperl\site\lib\Date\Language\English.pm
-C:\tlperl\site\lib\Date\Language\Finnish.pm
-C:\tlperl\site\lib\Date\Language\French.pm
-C:\tlperl\site\lib\Date\Language\Gedeo.pm
-C:\tlperl\site\lib\Date\Language\German.pm
-C:\tlperl\site\lib\Date\Language\Greek.pm
-C:\tlperl\site\lib\Date\Language\Hungarian.pm
-C:\tlperl\site\lib\Date\Language\Icelandic.pm
-C:\tlperl\site\lib\Date\Language\Italian.pm
-C:\tlperl\site\lib\Date\Language\Norwegian.pm
-C:\tlperl\site\lib\Date\Language\Oromo.pm
-C:\tlperl\site\lib\Date\Language\Romanian.pm
-C:\tlperl\site\lib\Date\Language\Russian.pm
-C:\tlperl\site\lib\Date\Language\Russian_cp1251.pm
-C:\tlperl\site\lib\Date\Language\Russian_koi8r.pm
-C:\tlperl\site\lib\Date\Language\Sidama.pm
-C:\tlperl\site\lib\Date\Language\Somali.pm
-C:\tlperl\site\lib\Date\Language\Spanish.pm
-C:\tlperl\site\lib\Date\Language\Swedish.pm
-C:\tlperl\site\lib\Date\Language\Tigrinya.pm
-C:\tlperl\site\lib\Date\Language\TigrinyaEritrean.pm
-C:\tlperl\site\lib\Date\Language\TigrinyaEthiopian.pm
-C:\tlperl\site\lib\Date\Language\Turkish.pm
-C:\tlperl\site\lib\Date\Parse.pm
-C:\tlperl\site\lib\Time\Zone.pm
+C:\tlperl526\site\lib\Date\Format.pm
+C:\tlperl526\site\lib\Date\Language.pm
+C:\tlperl526\site\lib\Date\Language\Afar.pm
+C:\tlperl526\site\lib\Date\Language\Amharic.pm
+C:\tlperl526\site\lib\Date\Language\Austrian.pm
+C:\tlperl526\site\lib\Date\Language\Brazilian.pm
+C:\tlperl526\site\lib\Date\Language\Bulgarian.pm
+C:\tlperl526\site\lib\Date\Language\Chinese.pm
+C:\tlperl526\site\lib\Date\Language\Chinese_GB.pm
+C:\tlperl526\site\lib\Date\Language\Czech.pm
+C:\tlperl526\site\lib\Date\Language\Danish.pm
+C:\tlperl526\site\lib\Date\Language\Dutch.pm
+C:\tlperl526\site\lib\Date\Language\English.pm
+C:\tlperl526\site\lib\Date\Language\Finnish.pm
+C:\tlperl526\site\lib\Date\Language\French.pm
+C:\tlperl526\site\lib\Date\Language\Gedeo.pm
+C:\tlperl526\site\lib\Date\Language\German.pm
+C:\tlperl526\site\lib\Date\Language\Greek.pm
+C:\tlperl526\site\lib\Date\Language\Hungarian.pm
+C:\tlperl526\site\lib\Date\Language\Icelandic.pm
+C:\tlperl526\site\lib\Date\Language\Italian.pm
+C:\tlperl526\site\lib\Date\Language\Norwegian.pm
+C:\tlperl526\site\lib\Date\Language\Oromo.pm
+C:\tlperl526\site\lib\Date\Language\Romanian.pm
+C:\tlperl526\site\lib\Date\Language\Russian.pm
+C:\tlperl526\site\lib\Date\Language\Russian_cp1251.pm
+C:\tlperl526\site\lib\Date\Language\Russian_koi8r.pm
+C:\tlperl526\site\lib\Date\Language\Sidama.pm
+C:\tlperl526\site\lib\Date\Language\Somali.pm
+C:\tlperl526\site\lib\Date\Language\Spanish.pm
+C:\tlperl526\site\lib\Date\Language\Swedish.pm
+C:\tlperl526\site\lib\Date\Language\Tigrinya.pm
+C:\tlperl526\site\lib\Date\Language\TigrinyaEritrean.pm
+C:\tlperl526\site\lib\Date\Language\TigrinyaEthiopian.pm
+C:\tlperl526\site\lib\Date\Language\Turkish.pm
+C:\tlperl526\site\lib\Date\Parse.pm
+C:\tlperl526\site\lib\Time\Zone.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/.packlist
index 45cf93670f0..51511a0523b 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/.packlist
@@ -1,2 +1,2 @@
-C:\tlperl\site\lib\Digest\SHA1.pm
-C:\tlperl\site\lib\auto\Digest\SHA1\SHA1.dll
+C:\tlperl526\site\lib\Digest\SHA1.pm
+C:\tlperl526\site\lib\auto\Digest\SHA1\SHA1.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/SHA1.dll b/Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/SHA1.dll
index 86090539524..ae674565775 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/SHA1.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Digest/SHA1/SHA1.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist
index fca67c3c703..85a292d73fa 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Encode/Locale/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\Encode\Locale.pm
+C:\tlperl526\site\lib\Encode\Locale.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist
index d4a2e08bb74..e166fbd0d85 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Encode/compat/.packlist
@@ -1,4 +1,4 @@
-C:\tlperl\site\lib\Encode\compat.pm
-C:\tlperl\site\lib\Encode\compat\5006001.pm
-C:\tlperl\site\lib\Encode\compat\Alias.pm
-C:\tlperl\site\lib\Encode\compat\common.pm
+C:\tlperl526\site\lib\Encode\compat.pm
+C:\tlperl526\site\lib\Encode\compat\5006001.pm
+C:\tlperl526\site\lib\Encode\compat\Alias.pm
+C:\tlperl526\site\lib\Encode\compat\common.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist b/Master/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist
index 0d31ba57a1f..e5d5275c93b 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/File/Listing/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\File\Listing.pm
+C:\tlperl526\site\lib\File\Listing.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/File/Which/.packlist b/Master/tlpkg/tlperl/site/lib/auto/File/Which/.packlist
index 3ba10e7c5e4..b23af3d246b 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/File/Which/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/File/Which/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\File\Which.pm
+C:\tlperl526\site\lib\File\Which.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist b/Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist
index 6ce7b6a07a9..1a017c7808f 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/.packlist
@@ -1,8 +1,8 @@
-C:\tlperl\site\lib\HTML\Entities.pm
-C:\tlperl\site\lib\HTML\Filter.pm
-C:\tlperl\site\lib\HTML\HeadParser.pm
-C:\tlperl\site\lib\HTML\LinkExtor.pm
-C:\tlperl\site\lib\HTML\Parser.pm
-C:\tlperl\site\lib\HTML\PullParser.pm
-C:\tlperl\site\lib\HTML\TokeParser.pm
-C:\tlperl\site\lib\auto\HTML\Parser\Parser.dll
+C:\tlperl526\site\lib\HTML\Entities.pm
+C:\tlperl526\site\lib\HTML\Filter.pm
+C:\tlperl526\site\lib\HTML\HeadParser.pm
+C:\tlperl526\site\lib\HTML\LinkExtor.pm
+C:\tlperl526\site\lib\HTML\Parser.pm
+C:\tlperl526\site\lib\HTML\PullParser.pm
+C:\tlperl526\site\lib\HTML\TokeParser.pm
+C:\tlperl526\site\lib\auto\HTML\Parser\Parser.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll b/Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll
index 4cc97f0777f..3684545322b 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/HTML/Parser/Parser.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist b/Master/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist
index b0836c2d778..3ae37c67991 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/HTML/Tagset/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\HTML\Tagset.pm
+C:\tlperl526\site\lib\HTML\Tagset.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist
index c1f0a862133..be4bc19f2bd 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Cookies/.packlist
@@ -1,3 +1,3 @@
-C:\tlperl\site\lib\HTTP\Cookies.pm
-C:\tlperl\site\lib\HTTP\Cookies\Microsoft.pm
-C:\tlperl\site\lib\HTTP\Cookies\Netscape.pm
+C:\tlperl526\site\lib\HTTP\Cookies.pm
+C:\tlperl526\site\lib\HTTP\Cookies\Microsoft.pm
+C:\tlperl526\site\lib\HTTP\Cookies\Netscape.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist
index 20fe206daaa..23d299ddaba 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Daemon/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\HTTP\Daemon.pm
+C:\tlperl526\site\lib\HTTP\Daemon.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist
index 8a98075d656..330bcc3a5bb 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Date/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\HTTP\Date.pm
+C:\tlperl526\site\lib\HTTP\Date.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist
index 80f40bf932d..2692fdd9bd8 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Message/.packlist
@@ -1,10 +1,10 @@
-C:\tlperl\site\lib\HTTP\Config.pm
-C:\tlperl\site\lib\HTTP\Headers.pm
-C:\tlperl\site\lib\HTTP\Headers\Auth.pm
-C:\tlperl\site\lib\HTTP\Headers\ETag.pm
-C:\tlperl\site\lib\HTTP\Headers\Util.pm
-C:\tlperl\site\lib\HTTP\Message.pm
-C:\tlperl\site\lib\HTTP\Request.pm
-C:\tlperl\site\lib\HTTP\Request\Common.pm
-C:\tlperl\site\lib\HTTP\Response.pm
-C:\tlperl\site\lib\HTTP\Status.pm
+C:\tlperl526\site\lib\HTTP\Config.pm
+C:\tlperl526\site\lib\HTTP\Headers.pm
+C:\tlperl526\site\lib\HTTP\Headers\Auth.pm
+C:\tlperl526\site\lib\HTTP\Headers\ETag.pm
+C:\tlperl526\site\lib\HTTP\Headers\Util.pm
+C:\tlperl526\site\lib\HTTP\Message.pm
+C:\tlperl526\site\lib\HTTP\Request.pm
+C:\tlperl526\site\lib\HTTP\Request\Common.pm
+C:\tlperl526\site\lib\HTTP\Response.pm
+C:\tlperl526\site\lib\HTTP\Status.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist
index 9d7d8f27c96..be79540d3d5 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/HTTP/Negotiate/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\HTTP\Negotiate.pm
+C:\tlperl526\site\lib\HTTP\Negotiate.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist b/Master/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist
index 6cb34ec6af1..48c2f1abf39 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/IO/HTML/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\IO\HTML.pm
+C:\tlperl526\site\lib\IO\HTML.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/IO/String/.packlist b/Master/tlpkg/tlperl/site/lib/auto/IO/String/.packlist
index 301a4c1067d..8b552c38689 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/IO/String/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/IO/String/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\IO\String.pm
+C:\tlperl526\site\lib\IO\String.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/JSON/.packlist b/Master/tlpkg/tlperl/site/lib/auto/JSON/.packlist
deleted file mode 100644
index ef56faff5aa..00000000000
--- a/Master/tlpkg/tlperl/site/lib/auto/JSON/.packlist
+++ /dev/null
@@ -1,5 +0,0 @@
-C:\tlperl\site\lib\JSON.pm
-C:\tlperl\site\lib\JSON\backportPP.pm
-C:\tlperl\site\lib\JSON\backportPP\Boolean.pm
-C:\tlperl\site\lib\JSON\backportPP\Compat5005.pm
-C:\tlperl\site\lib\JSON\backportPP\Compat5006.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist b/Master/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist
new file mode 100755
index 00000000000..0c59eeb1248
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/auto/JSON/MaybeXS/.packlist
@@ -0,0 +1 @@
+C:\tlperl526\site\lib\JSON\MaybeXS.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/JSON/XS/.packlist b/Master/tlpkg/tlperl/site/lib/auto/JSON/XS/.packlist
deleted file mode 100644
index 3b09ed2e542..00000000000
--- a/Master/tlpkg/tlperl/site/lib/auto/JSON/XS/.packlist
+++ /dev/null
@@ -1,5 +0,0 @@
-C:\tlperl\bin\json_xs
-C:\tlperl\bin\json_xs.bat
-C:\tlperl\site\lib\JSON\XS.pm
-C:\tlperl\site\lib\JSON\XS\Boolean.pm
-C:\tlperl\site\lib\auto\JSON\XS\XS.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/JSON/XS/XS.dll b/Master/tlpkg/tlperl/site/lib/auto/JSON/XS/XS.dll
deleted file mode 100755
index 5aa4c362230..00000000000
--- a/Master/tlpkg/tlperl/site/lib/auto/JSON/XS/XS.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist b/Master/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist
index ad241200dcf..a37eb82a5a2 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/LWP/MediaTypes/.packlist
@@ -1,2 +1,2 @@
-C:\tlperl\site\lib\LWP\MediaTypes.pm
-C:\tlperl\site\lib\LWP\media.types
+C:\tlperl526\site\lib\LWP\MediaTypes.pm
+C:\tlperl526\site\lib\LWP\media.types
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist
index 5c97b8b3279..fcabca98f26 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Math/Int64/.packlist
@@ -1,5 +1,5 @@
-C:\tlperl\site\lib\Math\Int64.pm
-C:\tlperl\site\lib\Math\Int64\die_on_overflow.pm
-C:\tlperl\site\lib\Math\Int64\native_if_available.pm
-C:\tlperl\site\lib\Math\UInt64.pm
-C:\tlperl\site\lib\auto\Math\Int64\Int64.dll
+C:\tlperl526\site\lib\Math\Int64.pm
+C:\tlperl526\site\lib\Math\Int64\die_on_overflow.pm
+C:\tlperl526\site\lib\Math\Int64\native_if_available.pm
+C:\tlperl526\site\lib\Math\UInt64.pm
+C:\tlperl526\site\lib\auto\Math\Int64\Int64.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll b/Master/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll
index ac97081b198..6e4b16bd979 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Math/Int64/Int64.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist
index a91ad79eaec..a0e6c90db30 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Mozilla/CA/.packlist
@@ -1,3 +1,3 @@
-C:\tlperl\site\lib\Mozilla\CA.pm
-C:\tlperl\site\lib\Mozilla\CA\cacert.pem
-C:\tlperl\site\lib\Mozilla\mk-ca-bundle.pl
+C:\tlperl526\site\lib\Mozilla\CA.pm
+C:\tlperl526\site\lib\Mozilla\CA\cacert.pem
+C:\tlperl526\site\lib\Mozilla\mk-ca-bundle.pl
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist
index e71697e4233..9c3a3338a2c 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Net/HTTP/.packlist
@@ -1,4 +1,4 @@
-C:\tlperl\site\lib\Net\HTTP.pm
-C:\tlperl\site\lib\Net\HTTPS.pm
-C:\tlperl\site\lib\Net\HTTP\Methods.pm
-C:\tlperl\site\lib\Net\HTTP\NB.pm
+C:\tlperl526\site\lib\Net\HTTP.pm
+C:\tlperl526\site\lib\Net\HTTPS.pm
+C:\tlperl526\site\lib\Net\HTTP\Methods.pm
+C:\tlperl526\site\lib\Net\HTTP\NB.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Socket/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Socket/.packlist
index 87d1fe32b26..f097d1671a7 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Socket/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Socket/.packlist
@@ -1,2 +1,2 @@
-C:\tlperl\site\lib\Socket.pm
-C:\tlperl\site\lib\auto\Socket\Socket.dll
+C:\tlperl526\site\lib\Socket.pm
+C:\tlperl526\site\lib\auto\Socket\Socket.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Socket/Socket.dll b/Master/tlpkg/tlperl/site/lib/auto/Socket/Socket.dll
index 960de7a1969..0c7a8b23b1c 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Socket/Socket.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Socket/Socket.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist
index f8b34dfe0f7..65a7c2f4262 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Test/Fatal/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\Test\Fatal.pm
+C:\tlperl526\site\lib\Test\Fatal.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist
new file mode 100755
index 00000000000..a50f8443dcf
--- /dev/null
+++ b/Master/tlpkg/tlperl/site/lib/auto/Test/Needs/.packlist
@@ -0,0 +1 @@
+C:\tlperl526\site\lib\Test\Needs.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist
index 2236c52f855..2ae7c08129e 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Test/RequiresInternet/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\Test\RequiresInternet.pm
+C:\tlperl526\site\lib\Test\RequiresInternet.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Tk/.packlist
index acfdd696ac1..6c54955e9eb 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/.packlist
@@ -1,644 +1,645 @@
-C:\tlperl\bin\gedi
-C:\tlperl\bin\gedi.bat
-C:\tlperl\bin\ptked
-C:\tlperl\bin\ptked.bat
-C:\tlperl\bin\ptksh
-C:\tlperl\bin\ptksh.bat
-C:\tlperl\bin\tkjpeg
-C:\tlperl\bin\tkjpeg.bat
-C:\tlperl\bin\widget
-C:\tlperl\bin\widget.bat
-C:\tlperl\site\lib\Tie\Watch.pm
-C:\tlperl\site\lib\Tk.pm
-C:\tlperl\site\lib\Tk.pod
-C:\tlperl\site\lib\Tk\804delta.pod
-C:\tlperl\site\lib\Tk\Adjuster.pm
-C:\tlperl\site\lib\Tk\Adjuster.pod
-C:\tlperl\site\lib\Tk\After.pm
-C:\tlperl\site\lib\Tk\Animation.pm
-C:\tlperl\site\lib\Tk\Animation.pod
-C:\tlperl\site\lib\Tk\Balloon.pm
-C:\tlperl\site\lib\Tk\Balloon.pod
-C:\tlperl\site\lib\Tk\Bitmap.pm
-C:\tlperl\site\lib\Tk\Bitmap.pod
-C:\tlperl\site\lib\Tk\BrowseEntry.pm
-C:\tlperl\site\lib\Tk\BrowseEntry.pod
-C:\tlperl\site\lib\Tk\Button.pm
-C:\tlperl\site\lib\Tk\Button.pod
-C:\tlperl\site\lib\Tk\Camel.xpm
-C:\tlperl\site\lib\Tk\Canvas.pm
-C:\tlperl\site\lib\Tk\Canvas.pod
-C:\tlperl\site\lib\Tk\Checkbutton.pm
-C:\tlperl\site\lib\Tk\Checkbutton.pod
-C:\tlperl\site\lib\Tk\Clipboard.pm
-C:\tlperl\site\lib\Tk\Clipboard.pod
-C:\tlperl\site\lib\Tk\CmdLine.pm
-C:\tlperl\site\lib\Tk\CmdLine.pod
-C:\tlperl\site\lib\Tk\ColorDialog.pm
-C:\tlperl\site\lib\Tk\ColorEdit.xpm
-C:\tlperl\site\lib\Tk\ColorEditor.pm
-C:\tlperl\site\lib\Tk\ColorEditor.pod
-C:\tlperl\site\lib\Tk\ColorSelect.pm
-C:\tlperl\site\lib\Tk\Compound.pm
-C:\tlperl\site\lib\Tk\Compound.pod
-C:\tlperl\site\lib\Tk\Config.pm
-C:\tlperl\site\lib\Tk\ConfigSpecs.pod
-C:\tlperl\site\lib\Tk\Configure.pm
-C:\tlperl\site\lib\Tk\Credits
-C:\tlperl\site\lib\Tk\DItem.pod
-C:\tlperl\site\lib\Tk\Derived.pm
-C:\tlperl\site\lib\Tk\Derived.pod
-C:\tlperl\site\lib\Tk\Dialog.pm
-C:\tlperl\site\lib\Tk\Dialog.pod
-C:\tlperl\site\lib\Tk\DialogBox.pm
-C:\tlperl\site\lib\Tk\DialogBox.pod
-C:\tlperl\site\lib\Tk\DirTree.pm
-C:\tlperl\site\lib\Tk\DirTree.pod
-C:\tlperl\site\lib\Tk\Dirlist.pm
-C:\tlperl\site\lib\Tk\DragDrop.pm
-C:\tlperl\site\lib\Tk\DragDrop\Common.pm
-C:\tlperl\site\lib\Tk\DragDrop\Common.pod
-C:\tlperl\site\lib\Tk\DragDrop\LocalDrop.pm
-C:\tlperl\site\lib\Tk\DragDrop\Rect.pm
-C:\tlperl\site\lib\Tk\DragDrop\SunConst.pm
-C:\tlperl\site\lib\Tk\DragDrop\SunConst.pod
-C:\tlperl\site\lib\Tk\DragDrop\SunDrop.pm
-C:\tlperl\site\lib\Tk\DragDrop\SunSite.pm
-C:\tlperl\site\lib\Tk\DragDrop\Win32Drop.pm
-C:\tlperl\site\lib\Tk\DragDrop\Win32Site.pm
-C:\tlperl\site\lib\Tk\DragDrop\XDNDDrop.pm
-C:\tlperl\site\lib\Tk\DragDrop\XDNDSite.pm
-C:\tlperl\site\lib\Tk\DropSite.pm
-C:\tlperl\site\lib\Tk\DropSite.pod
-C:\tlperl\site\lib\Tk\DummyEncode.pm
-C:\tlperl\site\lib\Tk\English.pm
-C:\tlperl\site\lib\Tk\Entry.pm
-C:\tlperl\site\lib\Tk\Entry.pod
-C:\tlperl\site\lib\Tk\Error.pod
-C:\tlperl\site\lib\Tk\ErrorDialog.pm
-C:\tlperl\site\lib\Tk\ErrorDialog.pod
-C:\tlperl\site\lib\Tk\Event.pm
-C:\tlperl\site\lib\Tk\Event\IO.pm
-C:\tlperl\site\lib\Tk\Eventloop.pod
-C:\tlperl\site\lib\Tk\FBox.pm
-C:\tlperl\site\lib\Tk\FBox.pod
-C:\tlperl\site\lib\Tk\FileSelect.pm
-C:\tlperl\site\lib\Tk\FileSelect.pod
-C:\tlperl\site\lib\Tk\FloatEntry.pm
-C:\tlperl\site\lib\Tk\Font.pm
-C:\tlperl\site\lib\Tk\Font.pod
-C:\tlperl\site\lib\Tk\Frame.pm
-C:\tlperl\site\lib\Tk\Frame.pod
-C:\tlperl\site\lib\Tk\HList.pm
-C:\tlperl\site\lib\Tk\HList.pod
-C:\tlperl\site\lib\Tk\IO.pm
-C:\tlperl\site\lib\Tk\IO.pod
-C:\tlperl\site\lib\Tk\IconList.pm
-C:\tlperl\site\lib\Tk\IconList.pod
-C:\tlperl\site\lib\Tk\Image.pm
-C:\tlperl\site\lib\Tk\Image.pod
-C:\tlperl\site\lib\Tk\InputO.pod
-C:\tlperl\site\lib\Tk\Internals.pod
-C:\tlperl\site\lib\Tk\ItemStyle.pm
-C:\tlperl\site\lib\Tk\JPEG.pm
-C:\tlperl\site\lib\Tk\LabEntry.pm
-C:\tlperl\site\lib\Tk\LabFrame.pm
-C:\tlperl\site\lib\Tk\LabFrame.pod
-C:\tlperl\site\lib\Tk\LabRadio.pm
-C:\tlperl\site\lib\Tk\Label.pm
-C:\tlperl\site\lib\Tk\Label.pod
-C:\tlperl\site\lib\Tk\Labelframe.pm
-C:\tlperl\site\lib\Tk\Labelframe.pod
-C:\tlperl\site\lib\Tk\Listbox.pm
-C:\tlperl\site\lib\Tk\Listbox.pod
-C:\tlperl\site\lib\Tk\MMtry.pm
-C:\tlperl\site\lib\Tk\MMutil.pm
-C:\tlperl\site\lib\Tk\MainWindow.pm
-C:\tlperl\site\lib\Tk\MainWindow.pod
-C:\tlperl\site\lib\Tk\MakeDepend.pm
-C:\tlperl\site\lib\Tk\Menu.pm
-C:\tlperl\site\lib\Tk\Menu.pod
-C:\tlperl\site\lib\Tk\Menu\Item.pm
-C:\tlperl\site\lib\Tk\Menu\Item.pod
-C:\tlperl\site\lib\Tk\Menubar.pm
-C:\tlperl\site\lib\Tk\Menubutton.pm
-C:\tlperl\site\lib\Tk\Menubutton.pod
-C:\tlperl\site\lib\Tk\Message.pm
-C:\tlperl\site\lib\Tk\Message.pod
-C:\tlperl\site\lib\Tk\MsgBox.pm
-C:\tlperl\site\lib\Tk\MsgBox.pod
-C:\tlperl\site\lib\Tk\Mwm.pod
-C:\tlperl\site\lib\Tk\NBFrame.pm
-C:\tlperl\site\lib\Tk\NoteBook.pm
-C:\tlperl\site\lib\Tk\NoteBook.pod
-C:\tlperl\site\lib\Tk\Optionmenu.pm
-C:\tlperl\site\lib\Tk\Optionmenu.pod
-C:\tlperl\site\lib\Tk\PNG.pm
-C:\tlperl\site\lib\Tk\Pane.pm
-C:\tlperl\site\lib\Tk\Panedwindow.pm
-C:\tlperl\site\lib\Tk\Panedwindow.pod
-C:\tlperl\site\lib\Tk\Photo.pm
-C:\tlperl\site\lib\Tk\Photo.pod
-C:\tlperl\site\lib\Tk\Pixmap.pm
-C:\tlperl\site\lib\Tk\Pixmap.pod
-C:\tlperl\site\lib\Tk\Popup.pod
-C:\tlperl\site\lib\Tk\Pretty.pm
-C:\tlperl\site\lib\Tk\ProgressBar.pm
-C:\tlperl\site\lib\Tk\README.Adjust
-C:\tlperl\site\lib\Tk\ROText.pm
-C:\tlperl\site\lib\Tk\ROText.pod
-C:\tlperl\site\lib\Tk\Radiobutton.pm
-C:\tlperl\site\lib\Tk\Radiobutton.pod
-C:\tlperl\site\lib\Tk\Region.pm
-C:\tlperl\site\lib\Tk\Reindex.pm
-C:\tlperl\site\lib\Tk\ReindexedROText.pm
-C:\tlperl\site\lib\Tk\ReindexedText.pm
-C:\tlperl\site\lib\Tk\Scale.pm
-C:\tlperl\site\lib\Tk\Scale.pod
-C:\tlperl\site\lib\Tk\Scrollbar.pm
-C:\tlperl\site\lib\Tk\Scrollbar.pod
-C:\tlperl\site\lib\Tk\Scrolled.pod
-C:\tlperl\site\lib\Tk\Spinbox.pm
-C:\tlperl\site\lib\Tk\Spinbox.pod
-C:\tlperl\site\lib\Tk\Stats.pm
-C:\tlperl\site\lib\Tk\Submethods.pm
-C:\tlperl\site\lib\Tk\Submethods.pod
-C:\tlperl\site\lib\Tk\TList.pm
-C:\tlperl\site\lib\Tk\TList.pod
-C:\tlperl\site\lib\Tk\Table.pm
-C:\tlperl\site\lib\Tk\Table.pod
-C:\tlperl\site\lib\Tk\Tcl-perl.pod
-C:\tlperl\site\lib\Tk\Text.pm
-C:\tlperl\site\lib\Tk\Text.pod
-C:\tlperl\site\lib\Tk\TextEdit.pm
-C:\tlperl\site\lib\Tk\TextList.pm
-C:\tlperl\site\lib\Tk\TextUndo.pm
-C:\tlperl\site\lib\Tk\TextUndo.pod
-C:\tlperl\site\lib\Tk\Text\Tag.pm
-C:\tlperl\site\lib\Tk\Tiler.pm
-C:\tlperl\site\lib\Tk\Tiler.pod
-C:\tlperl\site\lib\Tk\TixGrid.pm
-C:\tlperl\site\lib\Tk\TixGrid.pod
-C:\tlperl\site\lib\Tk\Tk.xbm
-C:\tlperl\site\lib\Tk\Tk.xpm
-C:\tlperl\site\lib\Tk\TkXSUB.def
-C:\tlperl\site\lib\Tk\Toplevel.pm
-C:\tlperl\site\lib\Tk\Toplevel.pod
-C:\tlperl\site\lib\Tk\Trace.pm
-C:\tlperl\site\lib\Tk\Tree.pm
-C:\tlperl\site\lib\Tk\Tree.pod
-C:\tlperl\site\lib\Tk\UserGuide.pod
-C:\tlperl\site\lib\Tk\Widget.pm
-C:\tlperl\site\lib\Tk\Widget.pod
-C:\tlperl\site\lib\Tk\WidgetDemo.pod
-C:\tlperl\site\lib\Tk\Wm.pm
-C:\tlperl\site\lib\Tk\Wm.pod
-C:\tlperl\site\lib\Tk\X.pm
-C:\tlperl\site\lib\Tk\X.pod
-C:\tlperl\site\lib\Tk\X11Font.pm
-C:\tlperl\site\lib\Tk\X11Font.pod
-C:\tlperl\site\lib\Tk\X11\X.h
-C:\tlperl\site\lib\Tk\X11\Xatom.h
-C:\tlperl\site\lib\Tk\X11\Xfuncproto.h
-C:\tlperl\site\lib\Tk\X11\Xlib.h
-C:\tlperl\site\lib\Tk\X11\Xutil.h
-C:\tlperl\site\lib\Tk\X11\cursorfont.h
-C:\tlperl\site\lib\Tk\X11\keysym.h
-C:\tlperl\site\lib\Tk\X11\keysymdef.h
-C:\tlperl\site\lib\Tk\X11\license.terms
-C:\tlperl\site\lib\Tk\Xcamel.gif
-C:\tlperl\site\lib\Tk\Xlib.pm
-C:\tlperl\site\lib\Tk\Xrm.pm
-C:\tlperl\site\lib\Tk\Xrm.pod
-C:\tlperl\site\lib\Tk\act_folder.xbm
-C:\tlperl\site\lib\Tk\act_folder.xpm
-C:\tlperl\site\lib\Tk\after.pod
-C:\tlperl\site\lib\Tk\anim.gif
-C:\tlperl\site\lib\Tk\arrowdownwin.xbm
-C:\tlperl\site\lib\Tk\balArrow.xbm
-C:\tlperl\site\lib\Tk\bind.pod
-C:\tlperl\site\lib\Tk\bindtags.pod
-C:\tlperl\site\lib\Tk\callbacks.pod
-C:\tlperl\site\lib\Tk\cbxarrow.xbm
-C:\tlperl\site\lib\Tk\chooseColor.pod
-C:\tlperl\site\lib\Tk\chooseDirectory.pod
-C:\tlperl\site\lib\Tk\composite.pod
-C:\tlperl\site\lib\Tk\demos\LabEnLabRad.pm
-C:\tlperl\site\lib\Tk\demos\images\QuitPB.xpm
-C:\tlperl\site\lib\Tk\demos\images\QuitPBa.xpm
-C:\tlperl\site\lib\Tk\demos\images\c.icon
-C:\tlperl\site\lib\Tk\demos\images\cursor.cur
-C:\tlperl\site\lib\Tk\demos\images\cursor.mask
-C:\tlperl\site\lib\Tk\demos\images\cursor.xbm
-C:\tlperl\site\lib\Tk\demos\images\dir.icon
-C:\tlperl\site\lib\Tk\demos\images\dir.mask
-C:\tlperl\site\lib\Tk\demos\images\earth.gif
-C:\tlperl\site\lib\Tk\demos\images\earthris.gif
-C:\tlperl\site\lib\Tk\demos\images\face
-C:\tlperl\site\lib\Tk\demos\images\flagdown
-C:\tlperl\site\lib\Tk\demos\images\flagup
-C:\tlperl\site\lib\Tk\demos\images\grey.25
-C:\tlperl\site\lib\Tk\demos\images\grey.5
-C:\tlperl\site\lib\Tk\demos\images\letters
-C:\tlperl\site\lib\Tk\demos\images\mickey.gif
-C:\tlperl\site\lib\Tk\demos\images\ned.xpm
-C:\tlperl\site\lib\Tk\demos\images\noletters
-C:\tlperl\site\lib\Tk\demos\images\page.icon
-C:\tlperl\site\lib\Tk\demos\images\page.mask
-C:\tlperl\site\lib\Tk\demos\images\pattern
-C:\tlperl\site\lib\Tk\demos\images\teapot.ppm
-C:\tlperl\site\lib\Tk\demos\widget_lib\Ball.pm
-C:\tlperl\site\lib\Tk\demos\widget_lib\HList.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\HList2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\Plot.pm
-C:\tlperl\site\lib\Tk\demos\widget_lib\WidgetDemo.pm
-C:\tlperl\site\lib\Tk\demos\widget_lib\arrows.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\balloon.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\bind.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\bitmaps.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\bounce.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\browseentry.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\browseentry2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\button.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\check.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\choosedir.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\clrpick.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\colors.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\cscroll.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\ctext.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\dialog1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\dialog2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\dirtree.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\entry1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\entry2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\entry3.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\filebox.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\floor.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\form.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\form_mgr.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\hello.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\hscale.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\icon.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\image1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\image2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\items.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\keysyms.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\labelframe.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\labels.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\labframe.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\mega.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\menbut.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\menus.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\menus2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\msgBox.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\notebook.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\paned1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\paned2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\photo1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\photo2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\plot.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\progress.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\puzzle.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\radio.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\ruler.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\sayings.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\search.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\showVars.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\slide.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\spin.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\states.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\style.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\texts.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\trace1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\trace2.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\transtile.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\twind.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\unicodeout.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\virtevents1.pl
-C:\tlperl\site\lib\Tk\demos\widget_lib\vscale.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\Gedi.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\TEMPLATE.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\Tiler.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\all.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\cursor.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\lib\npuz\Xcamel.npuz
-C:\tlperl\site\lib\Tk\demos\widtrib\npuz.pl
-C:\tlperl\site\lib\Tk\demos\widtrib\plop.pl
-C:\tlperl\site\lib\Tk\event.pod
-C:\tlperl\site\lib\Tk\exit.pod
-C:\tlperl\site\lib\Tk\file.xbm
-C:\tlperl\site\lib\Tk\file.xpm
-C:\tlperl\site\lib\Tk\fileevent.pod
-C:\tlperl\site\lib\Tk\focus.pod
-C:\tlperl\site\lib\Tk\folder.xbm
-C:\tlperl\site\lib\Tk\folder.xpm
-C:\tlperl\site\lib\Tk\form.pod
-C:\tlperl\site\lib\Tk\getOpenFile.pod
-C:\tlperl\site\lib\Tk\grab.pod
-C:\tlperl\site\lib\Tk\grid.pod
-C:\tlperl\site\lib\Tk\icon.gif
-C:\tlperl\site\lib\Tk\install.pm
-C:\tlperl\site\lib\Tk\license.terms
-C:\tlperl\site\lib\Tk\mega.pod
-C:\tlperl\site\lib\Tk\messageBox.pod
-C:\tlperl\site\lib\Tk\openfile.xbm
-C:\tlperl\site\lib\Tk\openfolder.xbm
-C:\tlperl\site\lib\Tk\openfolder.xpm
-C:\tlperl\site\lib\Tk\option.pod
-C:\tlperl\site\lib\Tk\options.pod
-C:\tlperl\site\lib\Tk\overview.pod
-C:\tlperl\site\lib\Tk\pTk.pod
-C:\tlperl\site\lib\Tk\pTk\Lang.h
-C:\tlperl\site\lib\Tk\pTk\Lang.m
-C:\tlperl\site\lib\Tk\pTk\Lang.t
-C:\tlperl\site\lib\Tk\pTk\Lang_f.h
-C:\tlperl\site\lib\Tk\pTk\Tcl-pTk
-C:\tlperl\site\lib\Tk\pTk\Xlib.h
-C:\tlperl\site\lib\Tk\pTk\Xlib.m
-C:\tlperl\site\lib\Tk\pTk\Xlib.t
-C:\tlperl\site\lib\Tk\pTk\Xlib_f.h
-C:\tlperl\site\lib\Tk\pTk\compat\limits.h
-C:\tlperl\site\lib\Tk\pTk\compat\stdlib.h
-C:\tlperl\site\lib\Tk\pTk\compat\unistd.h
-C:\tlperl\site\lib\Tk\pTk\default.h
-C:\tlperl\site\lib\Tk\pTk\img.h
-C:\tlperl\site\lib\Tk\pTk\imgInt.h
-C:\tlperl\site\lib\Tk\pTk\imgInt.m
-C:\tlperl\site\lib\Tk\pTk\imgInt.t
-C:\tlperl\site\lib\Tk\pTk\imgInt_f.h
-C:\tlperl\site\lib\Tk\pTk\ks_names.h
-C:\tlperl\site\lib\Tk\pTk\mkVFunc
-C:\tlperl\site\lib\Tk\pTk\moredefs.h
-C:\tlperl\site\lib\Tk\pTk\port.h
-C:\tlperl\site\lib\Tk\pTk\tcl.h
-C:\tlperl\site\lib\Tk\pTk\tclDecls.h
-C:\tlperl\site\lib\Tk\pTk\tclDecls.m
-C:\tlperl\site\lib\Tk\pTk\tclDecls.t
-C:\tlperl\site\lib\Tk\pTk\tclDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tclIntDecls.h
-C:\tlperl\site\lib\Tk\pTk\tclIntPlatDecls.h
-C:\tlperl\site\lib\Tk\pTk\tclMath.h
-C:\tlperl\site\lib\Tk\pTk\tclPlatDecls.h
-C:\tlperl\site\lib\Tk\pTk\tclWinInt.h
-C:\tlperl\site\lib\Tk\pTk\tix.h
-C:\tlperl\site\lib\Tk\pTk\tix.m
-C:\tlperl\site\lib\Tk\pTk\tix.t
-C:\tlperl\site\lib\Tk\pTk\tixBitmaps.h
-C:\tlperl\site\lib\Tk\pTk\tixDef.h
-C:\tlperl\site\lib\Tk\pTk\tixForm.h
-C:\tlperl\site\lib\Tk\pTk\tixGrData.h
-C:\tlperl\site\lib\Tk\pTk\tixGrid.h
-C:\tlperl\site\lib\Tk\pTk\tixHList.h
-C:\tlperl\site\lib\Tk\pTk\tixImgXpm.h
-C:\tlperl\site\lib\Tk\pTk\tixImgXpm.m
-C:\tlperl\site\lib\Tk\pTk\tixImgXpm.t
-C:\tlperl\site\lib\Tk\pTk\tixImgXpm_f.h
-C:\tlperl\site\lib\Tk\pTk\tixInt.h
-C:\tlperl\site\lib\Tk\pTk\tixInt.m
-C:\tlperl\site\lib\Tk\pTk\tixInt.t
-C:\tlperl\site\lib\Tk\pTk\tixInt_f.h
-C:\tlperl\site\lib\Tk\pTk\tixPort.h
-C:\tlperl\site\lib\Tk\pTk\tixTList.h
-C:\tlperl\site\lib\Tk\pTk\tixWinInt.h
-C:\tlperl\site\lib\Tk\pTk\tixWinPort.h
-C:\tlperl\site\lib\Tk\pTk\tix_f.h
-C:\tlperl\site\lib\Tk\pTk\tk.h
-C:\tlperl\site\lib\Tk\pTk\tk.m
-C:\tlperl\site\lib\Tk\pTk\tk.t
-C:\tlperl\site\lib\Tk\pTk\tk3d.h
-C:\tlperl\site\lib\Tk\pTk\tkButton.h
-C:\tlperl\site\lib\Tk\pTk\tkCanvas.h
-C:\tlperl\site\lib\Tk\pTk\tkCanvases.h
-C:\tlperl\site\lib\Tk\pTk\tkColor.h
-C:\tlperl\site\lib\Tk\pTk\tkConfig.h
-C:\tlperl\site\lib\Tk\pTk\tkDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkEvent.h
-C:\tlperl\site\lib\Tk\pTk\tkEvent.m
-C:\tlperl\site\lib\Tk\pTk\tkEvent.t
-C:\tlperl\site\lib\Tk\pTk\tkEvent_f.h
-C:\tlperl\site\lib\Tk\pTk\tkFileFilter.h
-C:\tlperl\site\lib\Tk\pTk\tkFont.h
-C:\tlperl\site\lib\Tk\pTk\tkImgPhoto.h
-C:\tlperl\site\lib\Tk\pTk\tkImgPhoto.m
-C:\tlperl\site\lib\Tk\pTk\tkImgPhoto.t
-C:\tlperl\site\lib\Tk\pTk\tkImgPhoto_f.h
-C:\tlperl\site\lib\Tk\pTk\tkInitScript.h
-C:\tlperl\site\lib\Tk\pTk\tkInt.h
-C:\tlperl\site\lib\Tk\pTk\tkInt.m
-C:\tlperl\site\lib\Tk\pTk\tkInt.t
-C:\tlperl\site\lib\Tk\pTk\tkIntDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkIntDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkIntDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkIntDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkIntPlatDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkIntPlatDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkIntPlatDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkIntPlatDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkIntXlibDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkIntXlibDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkIntXlibDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkIntXlibDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkInt_f.h
-C:\tlperl\site\lib\Tk\pTk\tkMenu.h
-C:\tlperl\site\lib\Tk\pTk\tkMenubutton.h
-C:\tlperl\site\lib\Tk\pTk\tkOption.h
-C:\tlperl\site\lib\Tk\pTk\tkOption.m
-C:\tlperl\site\lib\Tk\pTk\tkOption.t
-C:\tlperl\site\lib\Tk\pTk\tkOption_f.h
-C:\tlperl\site\lib\Tk\pTk\tkPlatDecls.h
-C:\tlperl\site\lib\Tk\pTk\tkPlatDecls.m
-C:\tlperl\site\lib\Tk\pTk\tkPlatDecls.t
-C:\tlperl\site\lib\Tk\pTk\tkPlatDecls_f.h
-C:\tlperl\site\lib\Tk\pTk\tkPort.h
-C:\tlperl\site\lib\Tk\pTk\tkScale.h
-C:\tlperl\site\lib\Tk\pTk\tkScrollbar.h
-C:\tlperl\site\lib\Tk\pTk\tkSelect.h
-C:\tlperl\site\lib\Tk\pTk\tkText.h
-C:\tlperl\site\lib\Tk\pTk\tkUndo.h
-C:\tlperl\site\lib\Tk\pTk\tkVMacro.h
-C:\tlperl\site\lib\Tk\pTk\tkWin.h
-C:\tlperl\site\lib\Tk\pTk\tkWinDefault.h
-C:\tlperl\site\lib\Tk\pTk\tkWinInt.h
-C:\tlperl\site\lib\Tk\pTk\tkWinPort.h
-C:\tlperl\site\lib\Tk\pTk\tkXrm.h
-C:\tlperl\site\lib\Tk\pTk\tk_f.h
-C:\tlperl\site\lib\Tk\pTk\xbytes.h
-C:\tlperl\site\lib\Tk\pack.pod
-C:\tlperl\site\lib\Tk\palette.pod
-C:\tlperl\site\lib\Tk\place.pod
-C:\tlperl\site\lib\Tk\prolog.ps
-C:\tlperl\site\lib\Tk\selection.pod
-C:\tlperl\site\lib\Tk\send.pod
-C:\tlperl\site\lib\Tk\srcfile.xpm
-C:\tlperl\site\lib\Tk\textfile.xpm
-C:\tlperl\site\lib\Tk\tixWm.pod
-C:\tlperl\site\lib\Tk\tkGlue.def
-C:\tlperl\site\lib\Tk\tkGlue.h
-C:\tlperl\site\lib\Tk\tkGlue.m
-C:\tlperl\site\lib\Tk\tkGlue.t
-C:\tlperl\site\lib\Tk\tkGlue_f.h
-C:\tlperl\site\lib\Tk\tkvars.pod
-C:\tlperl\site\lib\Tk\tranicon.gif
-C:\tlperl\site\lib\Tk\typemap
-C:\tlperl\site\lib\Tk\vtab.def
-C:\tlperl\site\lib\Tk\widgets.pm
-C:\tlperl\site\lib\Tk\widgets.pod
-C:\tlperl\site\lib\Tk\win.xbm
-C:\tlperl\site\lib\Tk\winfolder.xpm
-C:\tlperl\site\lib\Tk\wintext.xpm
-C:\tlperl\site\lib\auto\Tk\CancelRepeat.al
-C:\tlperl\site\lib\auto\Tk\Canvas\Canvas.dll
-C:\tlperl\site\lib\auto\Tk\Clipboard\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Clipboard\getSelected.al
-C:\tlperl\site\lib\auto\Tk\Compound\Compound.dll
-C:\tlperl\site\lib\auto\Tk\DragDrop\Win32Site\Win32Site.dll
-C:\tlperl\site\lib\auto\Tk\EnterFocus.al
-C:\tlperl\site\lib\auto\Tk\Entry\Entry.dll
-C:\tlperl\site\lib\auto\Tk\Error.al
-C:\tlperl\site\lib\auto\Tk\Event\Event.dll
-C:\tlperl\site\lib\auto\Tk\FirstMenu.al
-C:\tlperl\site\lib\auto\Tk\FocusChildren.al
-C:\tlperl\site\lib\auto\Tk\FocusOK.al
-C:\tlperl\site\lib\auto\Tk\Frame\AddScrollbars.al
-C:\tlperl\site\lib\auto\Tk\Frame\FindMenu.al
-C:\tlperl\site\lib\auto\Tk\Frame\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Frame\freeze_on_map.al
-C:\tlperl\site\lib\auto\Tk\Frame\label.al
-C:\tlperl\site\lib\auto\Tk\Frame\labelPack.al
-C:\tlperl\site\lib\auto\Tk\Frame\labelVariable.al
-C:\tlperl\site\lib\auto\Tk\Frame\packscrollbars.al
-C:\tlperl\site\lib\auto\Tk\Frame\queuePack.al
-C:\tlperl\site\lib\auto\Tk\Frame\sbset.al
-C:\tlperl\site\lib\auto\Tk\Frame\scrollbars.al
-C:\tlperl\site\lib\auto\Tk\HList\HList.dll
-C:\tlperl\site\lib\auto\Tk\IO\IO.dll
-C:\tlperl\site\lib\auto\Tk\ImageNames.al
-C:\tlperl\site\lib\auto\Tk\ImageTypes.al
-C:\tlperl\site\lib\auto\Tk\JPEG\JPEG.dll
-C:\tlperl\site\lib\auto\Tk\Listbox\AutoScan.al
-C:\tlperl\site\lib\auto\Tk\Listbox\BeginExtend.al
-C:\tlperl\site\lib\auto\Tk\Listbox\BeginSelect.al
-C:\tlperl\site\lib\auto\Tk\Listbox\BeginToggle.al
-C:\tlperl\site\lib\auto\Tk\Listbox\ButtonRelease_1.al
-C:\tlperl\site\lib\auto\Tk\Listbox\CLEAR.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Cancel.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Cntrl_End.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Cntrl_Home.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Cntrl_backslash.al
-C:\tlperl\site\lib\auto\Tk\Listbox\DELETE.al
-C:\tlperl\site\lib\auto\Tk\Listbox\DataExtend.al
-C:\tlperl\site\lib\auto\Tk\Listbox\EXISTS.al
-C:\tlperl\site\lib\auto\Tk\Listbox\EXTEND.al
-C:\tlperl\site\lib\auto\Tk\Listbox\ExtendUpDown.al
-C:\tlperl\site\lib\auto\Tk\Listbox\FETCH.al
-C:\tlperl\site\lib\auto\Tk\Listbox\FETCHSIZE.al
-C:\tlperl\site\lib\auto\Tk\Listbox\Listbox.dll
-C:\tlperl\site\lib\auto\Tk\Listbox\Motion.al
-C:\tlperl\site\lib\auto\Tk\Listbox\POP.al
-C:\tlperl\site\lib\auto\Tk\Listbox\PUSH.al
-C:\tlperl\site\lib\auto\Tk\Listbox\SHIFT.al
-C:\tlperl\site\lib\auto\Tk\Listbox\SPLICE.al
-C:\tlperl\site\lib\auto\Tk\Listbox\STORE.al
-C:\tlperl\site\lib\auto\Tk\Listbox\SelectAll.al
-C:\tlperl\site\lib\auto\Tk\Listbox\SetList.al
-C:\tlperl\site\lib\auto\Tk\Listbox\TIEARRAY.al
-C:\tlperl\site\lib\auto\Tk\Listbox\TIESCALAR.al
-C:\tlperl\site\lib\auto\Tk\Listbox\UNSHIFT.al
-C:\tlperl\site\lib\auto\Tk\Listbox\UpDown.al
-C:\tlperl\site\lib\auto\Tk\Listbox\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Listbox\clipboardPaste.al
-C:\tlperl\site\lib\auto\Tk\Listbox\deleteSelected.al
-C:\tlperl\site\lib\auto\Tk\Listbox\getSelected.al
-C:\tlperl\site\lib\auto\Tk\Listbox\xyIndex.al
-C:\tlperl\site\lib\auto\Tk\Menubutton\Menubutton.dll
-C:\tlperl\site\lib\auto\Tk\NBFrame\NBFrame.dll
-C:\tlperl\site\lib\auto\Tk\PNG\PNG.dll
-C:\tlperl\site\lib\auto\Tk\Pixmap\Pixmap.dll
-C:\tlperl\site\lib\auto\Tk\Receive.al
-C:\tlperl\site\lib\auto\Tk\RepeatId.al
-C:\tlperl\site\lib\auto\Tk\Scale\Activate.al
-C:\tlperl\site\lib\auto\Tk\Scale\ButtonDown.al
-C:\tlperl\site\lib\auto\Tk\Scale\ButtonUp.al
-C:\tlperl\site\lib\auto\Tk\Scale\ControlPress.al
-C:\tlperl\site\lib\auto\Tk\Scale\Drag.al
-C:\tlperl\site\lib\auto\Tk\Scale\EndDrag.al
-C:\tlperl\site\lib\auto\Tk\Scale\Enter.al
-C:\tlperl\site\lib\auto\Tk\Scale\Increment.al
-C:\tlperl\site\lib\auto\Tk\Scale\Leave.al
-C:\tlperl\site\lib\auto\Tk\Scale\Scale.dll
-C:\tlperl\site\lib\auto\Tk\Scale\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ButtonDown.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ButtonUp.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Drag.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\EndDrag.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Enter.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Leave.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Motion.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ScrlByPages.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ScrlByUnits.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ScrlToPos.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\ScrlTopBottom.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Scrollbar.dll
-C:\tlperl\site\lib\auto\Tk\Scrollbar\Select.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\StartDrag.al
-C:\tlperl\site\lib\auto\Tk\Scrollbar\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Selection.al
-C:\tlperl\site\lib\auto\Tk\TList\TList.dll
-C:\tlperl\site\lib\auto\Tk\Table\Create.al
-C:\tlperl\site\lib\auto\Tk\Table\Posn.al
-C:\tlperl\site\lib\auto\Tk\Table\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Table\see.al
-C:\tlperl\site\lib\auto\Tk\Table\totalColumns.al
-C:\tlperl\site\lib\auto\Tk\Table\totalRows.al
-C:\tlperl\site\lib\auto\Tk\TextEdit\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\TextUndo\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Text\Text.dll
-C:\tlperl\site\lib\auto\Tk\Text\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\TixGrid\TixGrid.dll
-C:\tlperl\site\lib\auto\Tk\Tk.dll
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_BindIn.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_BindOut.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_Create.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_Destroy.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_In.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\FG_Out.al
-C:\tlperl\site\lib\auto\Tk\Toplevel\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\TraverseToMenu.al
-C:\tlperl\site\lib\auto\Tk\Widget\ASkludge.al
-C:\tlperl\site\lib\auto\Tk\Widget\AltKeyInDialog.al
-C:\tlperl\site\lib\auto\Tk\Widget\AmpWidget.al
-C:\tlperl\site\lib\auto\Tk\Widget\FindAltKeyTarget.al
-C:\tlperl\site\lib\auto\Tk\Widget\MasterMenu.al
-C:\tlperl\site\lib\auto\Tk\Widget\RestoreFocusGrab.al
-C:\tlperl\site\lib\auto\Tk\Widget\SetAmpText.al
-C:\tlperl\site\lib\auto\Tk\Widget\SetFocusGrab.al
-C:\tlperl\site\lib\auto\Tk\Widget\UnderlineAmpersand.al
-C:\tlperl\site\lib\auto\Tk\Widget\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Widget\bindDump.al
-C:\tlperl\site\lib\auto\Tk\Widget\clipboardKeysyms.al
-C:\tlperl\site\lib\auto\Tk\Widget\pathname.al
-C:\tlperl\site\lib\auto\Tk\Wm\AnchorAdjust.al
-C:\tlperl\site\lib\auto\Tk\Wm\FullScreen.al
-C:\tlperl\site\lib\auto\Tk\Wm\Popup.al
-C:\tlperl\site\lib\auto\Tk\Wm\Post.al
-C:\tlperl\site\lib\auto\Tk\Wm\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Wm\iconposition.al
-C:\tlperl\site\lib\auto\Tk\X\X.dll
-C:\tlperl\site\lib\auto\Tk\X\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\Xlib\Xlib.dll
-C:\tlperl\site\lib\auto\Tk\autosplit.ix
-C:\tlperl\site\lib\auto\Tk\break.al
-C:\tlperl\site\lib\auto\Tk\focusFollowsMouse.al
-C:\tlperl\site\lib\auto\Tk\focusNext.al
-C:\tlperl\site\lib\auto\Tk\focusPrev.al
-C:\tlperl\site\lib\auto\Tk\getEncoding.al
-C:\tlperl\site\lib\auto\Tk\getNextFocus.al
-C:\tlperl\site\lib\auto\Tk\getPrevFocus.al
-C:\tlperl\site\lib\auto\Tk\interps.al
-C:\tlperl\site\lib\auto\Tk\lsearch.al
-C:\tlperl\site\lib\auto\Tk\pTk\extralibs.ld
-C:\tlperl\site\lib\auto\Tk\tabFocus.al
-C:\tlperl\site\lib\auto\Tk\updateWidgets.al
+C:\tlperl526\bin\gedi
+C:\tlperl526\bin\gedi.bat
+C:\tlperl526\bin\ptked
+C:\tlperl526\bin\ptked.bat
+C:\tlperl526\bin\ptksh
+C:\tlperl526\bin\ptksh.bat
+C:\tlperl526\bin\tkjpeg
+C:\tlperl526\bin\tkjpeg.bat
+C:\tlperl526\bin\widget
+C:\tlperl526\bin\widget.bat
+C:\tlperl526\site\lib\Tie\Watch.pm
+C:\tlperl526\site\lib\Tk.pm
+C:\tlperl526\site\lib\Tk.pod
+C:\tlperl526\site\lib\Tk\804delta.pod
+C:\tlperl526\site\lib\Tk\Adjuster.pm
+C:\tlperl526\site\lib\Tk\Adjuster.pod
+C:\tlperl526\site\lib\Tk\After.pm
+C:\tlperl526\site\lib\Tk\Animation.pm
+C:\tlperl526\site\lib\Tk\Animation.pod
+C:\tlperl526\site\lib\Tk\Balloon.pm
+C:\tlperl526\site\lib\Tk\Balloon.pod
+C:\tlperl526\site\lib\Tk\Bitmap.pm
+C:\tlperl526\site\lib\Tk\Bitmap.pod
+C:\tlperl526\site\lib\Tk\BrowseEntry.pm
+C:\tlperl526\site\lib\Tk\BrowseEntry.pod
+C:\tlperl526\site\lib\Tk\Button.pm
+C:\tlperl526\site\lib\Tk\Button.pod
+C:\tlperl526\site\lib\Tk\Camel.xpm
+C:\tlperl526\site\lib\Tk\Canvas.pm
+C:\tlperl526\site\lib\Tk\Canvas.pod
+C:\tlperl526\site\lib\Tk\Checkbutton.pm
+C:\tlperl526\site\lib\Tk\Checkbutton.pod
+C:\tlperl526\site\lib\Tk\Clipboard.pm
+C:\tlperl526\site\lib\Tk\Clipboard.pod
+C:\tlperl526\site\lib\Tk\CmdLine.pm
+C:\tlperl526\site\lib\Tk\CmdLine.pod
+C:\tlperl526\site\lib\Tk\ColorDialog.pm
+C:\tlperl526\site\lib\Tk\ColorEdit.xpm
+C:\tlperl526\site\lib\Tk\ColorEditor.pm
+C:\tlperl526\site\lib\Tk\ColorEditor.pod
+C:\tlperl526\site\lib\Tk\ColorSelect.pm
+C:\tlperl526\site\lib\Tk\Compound.pm
+C:\tlperl526\site\lib\Tk\Compound.pod
+C:\tlperl526\site\lib\Tk\Config.pm
+C:\tlperl526\site\lib\Tk\ConfigSpecs.pod
+C:\tlperl526\site\lib\Tk\Configure.pm
+C:\tlperl526\site\lib\Tk\Credits
+C:\tlperl526\site\lib\Tk\DItem.pod
+C:\tlperl526\site\lib\Tk\Derived.pm
+C:\tlperl526\site\lib\Tk\Derived.pod
+C:\tlperl526\site\lib\Tk\Dialog.pm
+C:\tlperl526\site\lib\Tk\Dialog.pod
+C:\tlperl526\site\lib\Tk\DialogBox.pm
+C:\tlperl526\site\lib\Tk\DialogBox.pod
+C:\tlperl526\site\lib\Tk\DirTree.pm
+C:\tlperl526\site\lib\Tk\DirTree.pod
+C:\tlperl526\site\lib\Tk\Dirlist.pm
+C:\tlperl526\site\lib\Tk\DragDrop.pm
+C:\tlperl526\site\lib\Tk\DragDrop\Common.pm
+C:\tlperl526\site\lib\Tk\DragDrop\Common.pod
+C:\tlperl526\site\lib\Tk\DragDrop\LocalDrop.pm
+C:\tlperl526\site\lib\Tk\DragDrop\Rect.pm
+C:\tlperl526\site\lib\Tk\DragDrop\SunConst.pm
+C:\tlperl526\site\lib\Tk\DragDrop\SunConst.pod
+C:\tlperl526\site\lib\Tk\DragDrop\SunDrop.pm
+C:\tlperl526\site\lib\Tk\DragDrop\SunSite.pm
+C:\tlperl526\site\lib\Tk\DragDrop\Win32Drop.pm
+C:\tlperl526\site\lib\Tk\DragDrop\Win32Site.pm
+C:\tlperl526\site\lib\Tk\DragDrop\XDNDDrop.pm
+C:\tlperl526\site\lib\Tk\DragDrop\XDNDSite.pm
+C:\tlperl526\site\lib\Tk\DropSite.pm
+C:\tlperl526\site\lib\Tk\DropSite.pod
+C:\tlperl526\site\lib\Tk\DummyEncode.pm
+C:\tlperl526\site\lib\Tk\English.pm
+C:\tlperl526\site\lib\Tk\Entry.pm
+C:\tlperl526\site\lib\Tk\Entry.pod
+C:\tlperl526\site\lib\Tk\Error.pod
+C:\tlperl526\site\lib\Tk\ErrorDialog.pm
+C:\tlperl526\site\lib\Tk\ErrorDialog.pod
+C:\tlperl526\site\lib\Tk\Event.pm
+C:\tlperl526\site\lib\Tk\Event\IO.pm
+C:\tlperl526\site\lib\Tk\Eventloop.pod
+C:\tlperl526\site\lib\Tk\FBox.pm
+C:\tlperl526\site\lib\Tk\FBox.pod
+C:\tlperl526\site\lib\Tk\FileSelect.pm
+C:\tlperl526\site\lib\Tk\FileSelect.pod
+C:\tlperl526\site\lib\Tk\FloatEntry.pm
+C:\tlperl526\site\lib\Tk\Font.pm
+C:\tlperl526\site\lib\Tk\Font.pod
+C:\tlperl526\site\lib\Tk\Frame.pm
+C:\tlperl526\site\lib\Tk\Frame.pod
+C:\tlperl526\site\lib\Tk\HList.pm
+C:\tlperl526\site\lib\Tk\HList.pod
+C:\tlperl526\site\lib\Tk\IO.pm
+C:\tlperl526\site\lib\Tk\IO.pod
+C:\tlperl526\site\lib\Tk\IconList.pm
+C:\tlperl526\site\lib\Tk\IconList.pod
+C:\tlperl526\site\lib\Tk\Image.pm
+C:\tlperl526\site\lib\Tk\Image.pod
+C:\tlperl526\site\lib\Tk\InputO.pod
+C:\tlperl526\site\lib\Tk\Internals.pod
+C:\tlperl526\site\lib\Tk\ItemStyle.pm
+C:\tlperl526\site\lib\Tk\JPEG.pm
+C:\tlperl526\site\lib\Tk\LabEntry.pm
+C:\tlperl526\site\lib\Tk\LabFrame.pm
+C:\tlperl526\site\lib\Tk\LabFrame.pod
+C:\tlperl526\site\lib\Tk\LabRadio.pm
+C:\tlperl526\site\lib\Tk\Label.pm
+C:\tlperl526\site\lib\Tk\Label.pod
+C:\tlperl526\site\lib\Tk\Labelframe.pm
+C:\tlperl526\site\lib\Tk\Labelframe.pod
+C:\tlperl526\site\lib\Tk\Listbox.pm
+C:\tlperl526\site\lib\Tk\Listbox.pod
+C:\tlperl526\site\lib\Tk\MMtry.pm
+C:\tlperl526\site\lib\Tk\MMutil.pm
+C:\tlperl526\site\lib\Tk\MainWindow.pm
+C:\tlperl526\site\lib\Tk\MainWindow.pod
+C:\tlperl526\site\lib\Tk\MakeDepend.pm
+C:\tlperl526\site\lib\Tk\Menu.pm
+C:\tlperl526\site\lib\Tk\Menu.pod
+C:\tlperl526\site\lib\Tk\Menu\Item.pm
+C:\tlperl526\site\lib\Tk\Menu\Item.pod
+C:\tlperl526\site\lib\Tk\Menubar.pm
+C:\tlperl526\site\lib\Tk\Menubutton.pm
+C:\tlperl526\site\lib\Tk\Menubutton.pod
+C:\tlperl526\site\lib\Tk\Message.pm
+C:\tlperl526\site\lib\Tk\Message.pod
+C:\tlperl526\site\lib\Tk\MsgBox.pm
+C:\tlperl526\site\lib\Tk\MsgBox.pod
+C:\tlperl526\site\lib\Tk\Mwm.pod
+C:\tlperl526\site\lib\Tk\NBFrame.pm
+C:\tlperl526\site\lib\Tk\NoteBook.pm
+C:\tlperl526\site\lib\Tk\NoteBook.pod
+C:\tlperl526\site\lib\Tk\Optionmenu.pm
+C:\tlperl526\site\lib\Tk\Optionmenu.pod
+C:\tlperl526\site\lib\Tk\PNG.pm
+C:\tlperl526\site\lib\Tk\Pane.pm
+C:\tlperl526\site\lib\Tk\Panedwindow.pm
+C:\tlperl526\site\lib\Tk\Panedwindow.pod
+C:\tlperl526\site\lib\Tk\Photo.pm
+C:\tlperl526\site\lib\Tk\Photo.pod
+C:\tlperl526\site\lib\Tk\Pixmap.pm
+C:\tlperl526\site\lib\Tk\Pixmap.pod
+C:\tlperl526\site\lib\Tk\Popup.pod
+C:\tlperl526\site\lib\Tk\Pretty.pm
+C:\tlperl526\site\lib\Tk\ProgressBar.pm
+C:\tlperl526\site\lib\Tk\README.Adjust
+C:\tlperl526\site\lib\Tk\ROText.pm
+C:\tlperl526\site\lib\Tk\ROText.pod
+C:\tlperl526\site\lib\Tk\Radiobutton.pm
+C:\tlperl526\site\lib\Tk\Radiobutton.pod
+C:\tlperl526\site\lib\Tk\Region.pm
+C:\tlperl526\site\lib\Tk\Reindex.pm
+C:\tlperl526\site\lib\Tk\ReindexedROText.pm
+C:\tlperl526\site\lib\Tk\ReindexedText.pm
+C:\tlperl526\site\lib\Tk\Scale.pm
+C:\tlperl526\site\lib\Tk\Scale.pod
+C:\tlperl526\site\lib\Tk\Scrollbar.pm
+C:\tlperl526\site\lib\Tk\Scrollbar.pod
+C:\tlperl526\site\lib\Tk\Scrolled.pod
+C:\tlperl526\site\lib\Tk\Spinbox.pm
+C:\tlperl526\site\lib\Tk\Spinbox.pod
+C:\tlperl526\site\lib\Tk\Stats.pm
+C:\tlperl526\site\lib\Tk\Submethods.pm
+C:\tlperl526\site\lib\Tk\Submethods.pod
+C:\tlperl526\site\lib\Tk\TList.pm
+C:\tlperl526\site\lib\Tk\TList.pod
+C:\tlperl526\site\lib\Tk\Table.pm
+C:\tlperl526\site\lib\Tk\Table.pod
+C:\tlperl526\site\lib\Tk\Tcl-perl.pod
+C:\tlperl526\site\lib\Tk\Text.pm
+C:\tlperl526\site\lib\Tk\Text.pod
+C:\tlperl526\site\lib\Tk\TextEdit.pm
+C:\tlperl526\site\lib\Tk\TextList.pm
+C:\tlperl526\site\lib\Tk\TextUndo.pm
+C:\tlperl526\site\lib\Tk\TextUndo.pod
+C:\tlperl526\site\lib\Tk\Text\Tag.pm
+C:\tlperl526\site\lib\Tk\Tiler.pm
+C:\tlperl526\site\lib\Tk\Tiler.pod
+C:\tlperl526\site\lib\Tk\TixGrid.pm
+C:\tlperl526\site\lib\Tk\TixGrid.pod
+C:\tlperl526\site\lib\Tk\Tk.xbm
+C:\tlperl526\site\lib\Tk\Tk.xpm
+C:\tlperl526\site\lib\Tk\TkXSUB.def
+C:\tlperl526\site\lib\Tk\Toplevel.pm
+C:\tlperl526\site\lib\Tk\Toplevel.pod
+C:\tlperl526\site\lib\Tk\Trace.pm
+C:\tlperl526\site\lib\Tk\Tree.pm
+C:\tlperl526\site\lib\Tk\Tree.pod
+C:\tlperl526\site\lib\Tk\UserGuide.pod
+C:\tlperl526\site\lib\Tk\Widget.pm
+C:\tlperl526\site\lib\Tk\Widget.pod
+C:\tlperl526\site\lib\Tk\WidgetDemo.pod
+C:\tlperl526\site\lib\Tk\Wm.pm
+C:\tlperl526\site\lib\Tk\Wm.pod
+C:\tlperl526\site\lib\Tk\X.pm
+C:\tlperl526\site\lib\Tk\X.pod
+C:\tlperl526\site\lib\Tk\X11Font.pm
+C:\tlperl526\site\lib\Tk\X11Font.pod
+C:\tlperl526\site\lib\Tk\X11\X.h
+C:\tlperl526\site\lib\Tk\X11\Xatom.h
+C:\tlperl526\site\lib\Tk\X11\Xfuncproto.h
+C:\tlperl526\site\lib\Tk\X11\Xlib.h
+C:\tlperl526\site\lib\Tk\X11\Xutil.h
+C:\tlperl526\site\lib\Tk\X11\cursorfont.h
+C:\tlperl526\site\lib\Tk\X11\keysym.h
+C:\tlperl526\site\lib\Tk\X11\keysymdef.h
+C:\tlperl526\site\lib\Tk\X11\license.terms
+C:\tlperl526\site\lib\Tk\Xcamel.gif
+C:\tlperl526\site\lib\Tk\Xlib.pm
+C:\tlperl526\site\lib\Tk\Xrm.pm
+C:\tlperl526\site\lib\Tk\Xrm.pod
+C:\tlperl526\site\lib\Tk\act_folder.xbm
+C:\tlperl526\site\lib\Tk\act_folder.xpm
+C:\tlperl526\site\lib\Tk\after.pod
+C:\tlperl526\site\lib\Tk\anim.gif
+C:\tlperl526\site\lib\Tk\arrowdownwin.xbm
+C:\tlperl526\site\lib\Tk\balArrow.xbm
+C:\tlperl526\site\lib\Tk\bind.pod
+C:\tlperl526\site\lib\Tk\bindtags.pod
+C:\tlperl526\site\lib\Tk\callbacks.pod
+C:\tlperl526\site\lib\Tk\cbxarrow.xbm
+C:\tlperl526\site\lib\Tk\chooseColor.pod
+C:\tlperl526\site\lib\Tk\chooseDirectory.pod
+C:\tlperl526\site\lib\Tk\composite.pod
+C:\tlperl526\site\lib\Tk\demos\LabEnLabRad.pm
+C:\tlperl526\site\lib\Tk\demos\images\QuitPB.xpm
+C:\tlperl526\site\lib\Tk\demos\images\QuitPBa.xpm
+C:\tlperl526\site\lib\Tk\demos\images\c.icon
+C:\tlperl526\site\lib\Tk\demos\images\cursor.cur
+C:\tlperl526\site\lib\Tk\demos\images\cursor.mask
+C:\tlperl526\site\lib\Tk\demos\images\cursor.xbm
+C:\tlperl526\site\lib\Tk\demos\images\dir.icon
+C:\tlperl526\site\lib\Tk\demos\images\dir.mask
+C:\tlperl526\site\lib\Tk\demos\images\earth.gif
+C:\tlperl526\site\lib\Tk\demos\images\earthris.gif
+C:\tlperl526\site\lib\Tk\demos\images\face
+C:\tlperl526\site\lib\Tk\demos\images\flagdown
+C:\tlperl526\site\lib\Tk\demos\images\flagup
+C:\tlperl526\site\lib\Tk\demos\images\grey.25
+C:\tlperl526\site\lib\Tk\demos\images\grey.5
+C:\tlperl526\site\lib\Tk\demos\images\letters
+C:\tlperl526\site\lib\Tk\demos\images\mickey.gif
+C:\tlperl526\site\lib\Tk\demos\images\ned.xpm
+C:\tlperl526\site\lib\Tk\demos\images\noletters
+C:\tlperl526\site\lib\Tk\demos\images\page.icon
+C:\tlperl526\site\lib\Tk\demos\images\page.mask
+C:\tlperl526\site\lib\Tk\demos\images\pattern
+C:\tlperl526\site\lib\Tk\demos\images\teapot.ppm
+C:\tlperl526\site\lib\Tk\demos\widget_lib\Ball.pm
+C:\tlperl526\site\lib\Tk\demos\widget_lib\HList.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\HList2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\Plot.pm
+C:\tlperl526\site\lib\Tk\demos\widget_lib\WidgetDemo.pm
+C:\tlperl526\site\lib\Tk\demos\widget_lib\arrows.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\balloon.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\bind.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\bitmaps.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\bounce.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\browseentry.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\browseentry2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\button.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\check.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\choosedir.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\clrpick.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\colors.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\cscroll.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\ctext.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\dialog1.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\dialog2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\dirtree.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\entry1.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\entry2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\entry3.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\filebox.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\floor.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\form.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\form_mgr.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\hello.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\hscale.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\icon.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\image1.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\image2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\items.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\keysyms.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\labelframe.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\labels.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\labframe.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\mega.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\menbut.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\menus.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\menus2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\msgBox.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\notebook.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\paned1.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\paned2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\photo1.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\photo2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\plot.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\progress.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\puzzle.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\radio.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\ruler.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\sayings.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\search.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\showVars.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\slide.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\spin.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\states.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\style.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\texts.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\trace1.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\trace2.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\transtile.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\twind.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\unicodeout.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\virtevents1.pl
+C:\tlperl526\site\lib\Tk\demos\widget_lib\vscale.pl
+C:\tlperl526\site\lib\Tk\demos\widtrib\Gedi.pl
+C:\tlperl526\site\lib\Tk\demos\widtrib\TEMPLATE.pl
+C:\tlperl526\site\lib\Tk\demos\widtrib\Tiler.pl
+C:\tlperl526\site\lib\Tk\demos\widtrib\all.pl
+C:\tlperl526\site\lib\Tk\demos\widtrib\cursor.pl
+C:\tlperl526\site\lib\Tk\demos\widtrib\lib\npuz\Xcamel.npuz
+C:\tlperl526\site\lib\Tk\demos\widtrib\npuz.pl
+C:\tlperl526\site\lib\Tk\demos\widtrib\plop.pl
+C:\tlperl526\site\lib\Tk\event.pod
+C:\tlperl526\site\lib\Tk\exit.pod
+C:\tlperl526\site\lib\Tk\file.xbm
+C:\tlperl526\site\lib\Tk\file.xpm
+C:\tlperl526\site\lib\Tk\fileevent.pod
+C:\tlperl526\site\lib\Tk\focus.pod
+C:\tlperl526\site\lib\Tk\folder.xbm
+C:\tlperl526\site\lib\Tk\folder.xpm
+C:\tlperl526\site\lib\Tk\form.pod
+C:\tlperl526\site\lib\Tk\getOpenFile.pod
+C:\tlperl526\site\lib\Tk\getSaveFile.pod
+C:\tlperl526\site\lib\Tk\grab.pod
+C:\tlperl526\site\lib\Tk\grid.pod
+C:\tlperl526\site\lib\Tk\icon.gif
+C:\tlperl526\site\lib\Tk\install.pm
+C:\tlperl526\site\lib\Tk\license.terms
+C:\tlperl526\site\lib\Tk\mega.pod
+C:\tlperl526\site\lib\Tk\messageBox.pod
+C:\tlperl526\site\lib\Tk\openfile.xbm
+C:\tlperl526\site\lib\Tk\openfolder.xbm
+C:\tlperl526\site\lib\Tk\openfolder.xpm
+C:\tlperl526\site\lib\Tk\option.pod
+C:\tlperl526\site\lib\Tk\options.pod
+C:\tlperl526\site\lib\Tk\overview.pod
+C:\tlperl526\site\lib\Tk\pTk.pod
+C:\tlperl526\site\lib\Tk\pTk\Lang.h
+C:\tlperl526\site\lib\Tk\pTk\Lang.m
+C:\tlperl526\site\lib\Tk\pTk\Lang.t
+C:\tlperl526\site\lib\Tk\pTk\Lang_f.h
+C:\tlperl526\site\lib\Tk\pTk\Tcl-pTk
+C:\tlperl526\site\lib\Tk\pTk\Xlib.h
+C:\tlperl526\site\lib\Tk\pTk\Xlib.m
+C:\tlperl526\site\lib\Tk\pTk\Xlib.t
+C:\tlperl526\site\lib\Tk\pTk\Xlib_f.h
+C:\tlperl526\site\lib\Tk\pTk\compat\limits.h
+C:\tlperl526\site\lib\Tk\pTk\compat\stdlib.h
+C:\tlperl526\site\lib\Tk\pTk\compat\unistd.h
+C:\tlperl526\site\lib\Tk\pTk\default.h
+C:\tlperl526\site\lib\Tk\pTk\img.h
+C:\tlperl526\site\lib\Tk\pTk\imgInt.h
+C:\tlperl526\site\lib\Tk\pTk\imgInt.m
+C:\tlperl526\site\lib\Tk\pTk\imgInt.t
+C:\tlperl526\site\lib\Tk\pTk\imgInt_f.h
+C:\tlperl526\site\lib\Tk\pTk\ks_names.h
+C:\tlperl526\site\lib\Tk\pTk\mkVFunc
+C:\tlperl526\site\lib\Tk\pTk\moredefs.h
+C:\tlperl526\site\lib\Tk\pTk\port.h
+C:\tlperl526\site\lib\Tk\pTk\tcl.h
+C:\tlperl526\site\lib\Tk\pTk\tclDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tclDecls.m
+C:\tlperl526\site\lib\Tk\pTk\tclDecls.t
+C:\tlperl526\site\lib\Tk\pTk\tclDecls_f.h
+C:\tlperl526\site\lib\Tk\pTk\tclIntDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tclIntPlatDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tclMath.h
+C:\tlperl526\site\lib\Tk\pTk\tclPlatDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tclWinInt.h
+C:\tlperl526\site\lib\Tk\pTk\tix.h
+C:\tlperl526\site\lib\Tk\pTk\tix.m
+C:\tlperl526\site\lib\Tk\pTk\tix.t
+C:\tlperl526\site\lib\Tk\pTk\tixBitmaps.h
+C:\tlperl526\site\lib\Tk\pTk\tixDef.h
+C:\tlperl526\site\lib\Tk\pTk\tixForm.h
+C:\tlperl526\site\lib\Tk\pTk\tixGrData.h
+C:\tlperl526\site\lib\Tk\pTk\tixGrid.h
+C:\tlperl526\site\lib\Tk\pTk\tixHList.h
+C:\tlperl526\site\lib\Tk\pTk\tixImgXpm.h
+C:\tlperl526\site\lib\Tk\pTk\tixImgXpm.m
+C:\tlperl526\site\lib\Tk\pTk\tixImgXpm.t
+C:\tlperl526\site\lib\Tk\pTk\tixImgXpm_f.h
+C:\tlperl526\site\lib\Tk\pTk\tixInt.h
+C:\tlperl526\site\lib\Tk\pTk\tixInt.m
+C:\tlperl526\site\lib\Tk\pTk\tixInt.t
+C:\tlperl526\site\lib\Tk\pTk\tixInt_f.h
+C:\tlperl526\site\lib\Tk\pTk\tixPort.h
+C:\tlperl526\site\lib\Tk\pTk\tixTList.h
+C:\tlperl526\site\lib\Tk\pTk\tixWinInt.h
+C:\tlperl526\site\lib\Tk\pTk\tixWinPort.h
+C:\tlperl526\site\lib\Tk\pTk\tix_f.h
+C:\tlperl526\site\lib\Tk\pTk\tk.h
+C:\tlperl526\site\lib\Tk\pTk\tk.m
+C:\tlperl526\site\lib\Tk\pTk\tk.t
+C:\tlperl526\site\lib\Tk\pTk\tk3d.h
+C:\tlperl526\site\lib\Tk\pTk\tkButton.h
+C:\tlperl526\site\lib\Tk\pTk\tkCanvas.h
+C:\tlperl526\site\lib\Tk\pTk\tkCanvases.h
+C:\tlperl526\site\lib\Tk\pTk\tkColor.h
+C:\tlperl526\site\lib\Tk\pTk\tkConfig.h
+C:\tlperl526\site\lib\Tk\pTk\tkDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tkDecls.m
+C:\tlperl526\site\lib\Tk\pTk\tkDecls.t
+C:\tlperl526\site\lib\Tk\pTk\tkDecls_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkEvent.h
+C:\tlperl526\site\lib\Tk\pTk\tkEvent.m
+C:\tlperl526\site\lib\Tk\pTk\tkEvent.t
+C:\tlperl526\site\lib\Tk\pTk\tkEvent_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkFileFilter.h
+C:\tlperl526\site\lib\Tk\pTk\tkFont.h
+C:\tlperl526\site\lib\Tk\pTk\tkImgPhoto.h
+C:\tlperl526\site\lib\Tk\pTk\tkImgPhoto.m
+C:\tlperl526\site\lib\Tk\pTk\tkImgPhoto.t
+C:\tlperl526\site\lib\Tk\pTk\tkImgPhoto_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkInitScript.h
+C:\tlperl526\site\lib\Tk\pTk\tkInt.h
+C:\tlperl526\site\lib\Tk\pTk\tkInt.m
+C:\tlperl526\site\lib\Tk\pTk\tkInt.t
+C:\tlperl526\site\lib\Tk\pTk\tkIntDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tkIntDecls.m
+C:\tlperl526\site\lib\Tk\pTk\tkIntDecls.t
+C:\tlperl526\site\lib\Tk\pTk\tkIntDecls_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkIntPlatDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tkIntPlatDecls.m
+C:\tlperl526\site\lib\Tk\pTk\tkIntPlatDecls.t
+C:\tlperl526\site\lib\Tk\pTk\tkIntPlatDecls_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkIntXlibDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tkIntXlibDecls.m
+C:\tlperl526\site\lib\Tk\pTk\tkIntXlibDecls.t
+C:\tlperl526\site\lib\Tk\pTk\tkIntXlibDecls_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkInt_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkMenu.h
+C:\tlperl526\site\lib\Tk\pTk\tkMenubutton.h
+C:\tlperl526\site\lib\Tk\pTk\tkOption.h
+C:\tlperl526\site\lib\Tk\pTk\tkOption.m
+C:\tlperl526\site\lib\Tk\pTk\tkOption.t
+C:\tlperl526\site\lib\Tk\pTk\tkOption_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkPlatDecls.h
+C:\tlperl526\site\lib\Tk\pTk\tkPlatDecls.m
+C:\tlperl526\site\lib\Tk\pTk\tkPlatDecls.t
+C:\tlperl526\site\lib\Tk\pTk\tkPlatDecls_f.h
+C:\tlperl526\site\lib\Tk\pTk\tkPort.h
+C:\tlperl526\site\lib\Tk\pTk\tkScale.h
+C:\tlperl526\site\lib\Tk\pTk\tkScrollbar.h
+C:\tlperl526\site\lib\Tk\pTk\tkSelect.h
+C:\tlperl526\site\lib\Tk\pTk\tkText.h
+C:\tlperl526\site\lib\Tk\pTk\tkUndo.h
+C:\tlperl526\site\lib\Tk\pTk\tkVMacro.h
+C:\tlperl526\site\lib\Tk\pTk\tkWin.h
+C:\tlperl526\site\lib\Tk\pTk\tkWinDefault.h
+C:\tlperl526\site\lib\Tk\pTk\tkWinInt.h
+C:\tlperl526\site\lib\Tk\pTk\tkWinPort.h
+C:\tlperl526\site\lib\Tk\pTk\tkXrm.h
+C:\tlperl526\site\lib\Tk\pTk\tk_f.h
+C:\tlperl526\site\lib\Tk\pTk\xbytes.h
+C:\tlperl526\site\lib\Tk\pack.pod
+C:\tlperl526\site\lib\Tk\palette.pod
+C:\tlperl526\site\lib\Tk\place.pod
+C:\tlperl526\site\lib\Tk\prolog.ps
+C:\tlperl526\site\lib\Tk\selection.pod
+C:\tlperl526\site\lib\Tk\send.pod
+C:\tlperl526\site\lib\Tk\srcfile.xpm
+C:\tlperl526\site\lib\Tk\textfile.xpm
+C:\tlperl526\site\lib\Tk\tixWm.pod
+C:\tlperl526\site\lib\Tk\tkGlue.def
+C:\tlperl526\site\lib\Tk\tkGlue.h
+C:\tlperl526\site\lib\Tk\tkGlue.m
+C:\tlperl526\site\lib\Tk\tkGlue.t
+C:\tlperl526\site\lib\Tk\tkGlue_f.h
+C:\tlperl526\site\lib\Tk\tkvars.pod
+C:\tlperl526\site\lib\Tk\tranicon.gif
+C:\tlperl526\site\lib\Tk\typemap
+C:\tlperl526\site\lib\Tk\vtab.def
+C:\tlperl526\site\lib\Tk\widgets.pm
+C:\tlperl526\site\lib\Tk\widgets.pod
+C:\tlperl526\site\lib\Tk\win.xbm
+C:\tlperl526\site\lib\Tk\winfolder.xpm
+C:\tlperl526\site\lib\Tk\wintext.xpm
+C:\tlperl526\site\lib\auto\Tk\CancelRepeat.al
+C:\tlperl526\site\lib\auto\Tk\Canvas\Canvas.dll
+C:\tlperl526\site\lib\auto\Tk\Clipboard\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Clipboard\getSelected.al
+C:\tlperl526\site\lib\auto\Tk\Compound\Compound.dll
+C:\tlperl526\site\lib\auto\Tk\DragDrop\Win32Site\Win32Site.dll
+C:\tlperl526\site\lib\auto\Tk\EnterFocus.al
+C:\tlperl526\site\lib\auto\Tk\Entry\Entry.dll
+C:\tlperl526\site\lib\auto\Tk\Error.al
+C:\tlperl526\site\lib\auto\Tk\Event\Event.dll
+C:\tlperl526\site\lib\auto\Tk\FirstMenu.al
+C:\tlperl526\site\lib\auto\Tk\FocusChildren.al
+C:\tlperl526\site\lib\auto\Tk\FocusOK.al
+C:\tlperl526\site\lib\auto\Tk\Frame\AddScrollbars.al
+C:\tlperl526\site\lib\auto\Tk\Frame\FindMenu.al
+C:\tlperl526\site\lib\auto\Tk\Frame\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Frame\freeze_on_map.al
+C:\tlperl526\site\lib\auto\Tk\Frame\label.al
+C:\tlperl526\site\lib\auto\Tk\Frame\labelPack.al
+C:\tlperl526\site\lib\auto\Tk\Frame\labelVariable.al
+C:\tlperl526\site\lib\auto\Tk\Frame\packscrollbars.al
+C:\tlperl526\site\lib\auto\Tk\Frame\queuePack.al
+C:\tlperl526\site\lib\auto\Tk\Frame\sbset.al
+C:\tlperl526\site\lib\auto\Tk\Frame\scrollbars.al
+C:\tlperl526\site\lib\auto\Tk\HList\HList.dll
+C:\tlperl526\site\lib\auto\Tk\IO\IO.dll
+C:\tlperl526\site\lib\auto\Tk\ImageNames.al
+C:\tlperl526\site\lib\auto\Tk\ImageTypes.al
+C:\tlperl526\site\lib\auto\Tk\JPEG\JPEG.dll
+C:\tlperl526\site\lib\auto\Tk\Listbox\AutoScan.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\BeginExtend.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\BeginSelect.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\BeginToggle.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\ButtonRelease_1.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\CLEAR.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\Cancel.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\Cntrl_End.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\Cntrl_Home.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\Cntrl_backslash.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\DELETE.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\DataExtend.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\EXISTS.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\EXTEND.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\ExtendUpDown.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\FETCH.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\FETCHSIZE.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\Listbox.dll
+C:\tlperl526\site\lib\auto\Tk\Listbox\Motion.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\POP.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\PUSH.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\SHIFT.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\SPLICE.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\STORE.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\SelectAll.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\SetList.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\TIEARRAY.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\TIESCALAR.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\UNSHIFT.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\UpDown.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Listbox\clipboardPaste.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\deleteSelected.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\getSelected.al
+C:\tlperl526\site\lib\auto\Tk\Listbox\xyIndex.al
+C:\tlperl526\site\lib\auto\Tk\Menubutton\Menubutton.dll
+C:\tlperl526\site\lib\auto\Tk\NBFrame\NBFrame.dll
+C:\tlperl526\site\lib\auto\Tk\PNG\PNG.dll
+C:\tlperl526\site\lib\auto\Tk\Pixmap\Pixmap.dll
+C:\tlperl526\site\lib\auto\Tk\Receive.al
+C:\tlperl526\site\lib\auto\Tk\RepeatId.al
+C:\tlperl526\site\lib\auto\Tk\Scale\Activate.al
+C:\tlperl526\site\lib\auto\Tk\Scale\ButtonDown.al
+C:\tlperl526\site\lib\auto\Tk\Scale\ButtonUp.al
+C:\tlperl526\site\lib\auto\Tk\Scale\ControlPress.al
+C:\tlperl526\site\lib\auto\Tk\Scale\Drag.al
+C:\tlperl526\site\lib\auto\Tk\Scale\EndDrag.al
+C:\tlperl526\site\lib\auto\Tk\Scale\Enter.al
+C:\tlperl526\site\lib\auto\Tk\Scale\Increment.al
+C:\tlperl526\site\lib\auto\Tk\Scale\Leave.al
+C:\tlperl526\site\lib\auto\Tk\Scale\Scale.dll
+C:\tlperl526\site\lib\auto\Tk\Scale\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\ButtonDown.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\ButtonUp.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\Drag.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\EndDrag.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\Enter.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\Leave.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\Motion.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\ScrlByPages.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\ScrlByUnits.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\ScrlToPos.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\ScrlTopBottom.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\Scrollbar.dll
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\Select.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\StartDrag.al
+C:\tlperl526\site\lib\auto\Tk\Scrollbar\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Selection.al
+C:\tlperl526\site\lib\auto\Tk\TList\TList.dll
+C:\tlperl526\site\lib\auto\Tk\Table\Create.al
+C:\tlperl526\site\lib\auto\Tk\Table\Posn.al
+C:\tlperl526\site\lib\auto\Tk\Table\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Table\see.al
+C:\tlperl526\site\lib\auto\Tk\Table\totalColumns.al
+C:\tlperl526\site\lib\auto\Tk\Table\totalRows.al
+C:\tlperl526\site\lib\auto\Tk\TextEdit\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\TextUndo\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Text\Text.dll
+C:\tlperl526\site\lib\auto\Tk\Text\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\TixGrid\TixGrid.dll
+C:\tlperl526\site\lib\auto\Tk\Tk.dll
+C:\tlperl526\site\lib\auto\Tk\Toplevel\FG_BindIn.al
+C:\tlperl526\site\lib\auto\Tk\Toplevel\FG_BindOut.al
+C:\tlperl526\site\lib\auto\Tk\Toplevel\FG_Create.al
+C:\tlperl526\site\lib\auto\Tk\Toplevel\FG_Destroy.al
+C:\tlperl526\site\lib\auto\Tk\Toplevel\FG_In.al
+C:\tlperl526\site\lib\auto\Tk\Toplevel\FG_Out.al
+C:\tlperl526\site\lib\auto\Tk\Toplevel\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\TraverseToMenu.al
+C:\tlperl526\site\lib\auto\Tk\Widget\ASkludge.al
+C:\tlperl526\site\lib\auto\Tk\Widget\AltKeyInDialog.al
+C:\tlperl526\site\lib\auto\Tk\Widget\AmpWidget.al
+C:\tlperl526\site\lib\auto\Tk\Widget\FindAltKeyTarget.al
+C:\tlperl526\site\lib\auto\Tk\Widget\MasterMenu.al
+C:\tlperl526\site\lib\auto\Tk\Widget\RestoreFocusGrab.al
+C:\tlperl526\site\lib\auto\Tk\Widget\SetAmpText.al
+C:\tlperl526\site\lib\auto\Tk\Widget\SetFocusGrab.al
+C:\tlperl526\site\lib\auto\Tk\Widget\UnderlineAmpersand.al
+C:\tlperl526\site\lib\auto\Tk\Widget\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Widget\bindDump.al
+C:\tlperl526\site\lib\auto\Tk\Widget\clipboardKeysyms.al
+C:\tlperl526\site\lib\auto\Tk\Widget\pathname.al
+C:\tlperl526\site\lib\auto\Tk\Wm\AnchorAdjust.al
+C:\tlperl526\site\lib\auto\Tk\Wm\FullScreen.al
+C:\tlperl526\site\lib\auto\Tk\Wm\Popup.al
+C:\tlperl526\site\lib\auto\Tk\Wm\Post.al
+C:\tlperl526\site\lib\auto\Tk\Wm\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Wm\iconposition.al
+C:\tlperl526\site\lib\auto\Tk\X\X.dll
+C:\tlperl526\site\lib\auto\Tk\X\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\Xlib\Xlib.dll
+C:\tlperl526\site\lib\auto\Tk\autosplit.ix
+C:\tlperl526\site\lib\auto\Tk\break.al
+C:\tlperl526\site\lib\auto\Tk\focusFollowsMouse.al
+C:\tlperl526\site\lib\auto\Tk\focusNext.al
+C:\tlperl526\site\lib\auto\Tk\focusPrev.al
+C:\tlperl526\site\lib\auto\Tk\getEncoding.al
+C:\tlperl526\site\lib\auto\Tk\getNextFocus.al
+C:\tlperl526\site\lib\auto\Tk\getPrevFocus.al
+C:\tlperl526\site\lib\auto\Tk\interps.al
+C:\tlperl526\site\lib\auto\Tk\lsearch.al
+C:\tlperl526\site\lib\auto\Tk\pTk\extralibs.ld
+C:\tlperl526\site\lib\auto\Tk\tabFocus.al
+C:\tlperl526\site\lib\auto\Tk\updateWidgets.al
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Canvas/Canvas.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Canvas/Canvas.dll
index aaea038696e..75ca2ab9a20 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Canvas/Canvas.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Canvas/Canvas.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Compound/Compound.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Compound/Compound.dll
index a6999af8459..79d7cfc45d9 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Compound/Compound.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Compound/Compound.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/DirSelect/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Tk/DirSelect/.packlist
index f39d318ae22..19c42c1367a 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/DirSelect/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/DirSelect/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\Tk\DirSelect.pm
+C:\tlperl526\site\lib\Tk\DirSelect.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dll
index 525b9ca16ad..f13fe393efe 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/DragDrop/Win32Site/Win32Site.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Entry/Entry.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Entry/Entry.dll
index a0a92119300..a20841f1a97 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Entry/Entry.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Entry/Entry.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Event/Event.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Event/Event.dll
index 61b4c43543d..12ed3947cbd 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Event/Event.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Event/Event.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/HList/HList.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/HList/HList.dll
index 3887b0688f7..c2b28964077 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/HList/HList.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/HList/HList.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/IO/IO.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/IO/IO.dll
index c99e35fa409..4985b7270df 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/IO/IO.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/IO/IO.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/JPEG/JPEG.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/JPEG/JPEG.dll
index 47462a79290..21212646b93 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/JPEG/JPEG.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/JPEG/JPEG.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Listbox/Listbox.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Listbox/Listbox.dll
index a8650b82e74..02d31f43326 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Listbox/Listbox.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Listbox/Listbox.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Menubutton/Menubutton.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Menubutton/Menubutton.dll
index 859bcf7837d..685874a6ec4 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Menubutton/Menubutton.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Menubutton/Menubutton.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/NBFrame/NBFrame.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/NBFrame/NBFrame.dll
index 826dc1c5ee9..c003318840a 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/NBFrame/NBFrame.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/NBFrame/NBFrame.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/PNG/PNG.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/PNG/PNG.dll
index d3e627056bc..9260f4a7b77 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/PNG/PNG.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/PNG/PNG.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Pixmap/Pixmap.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Pixmap/Pixmap.dll
index ca6e720a39b..b2859bafcef 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Pixmap/Pixmap.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Pixmap/Pixmap.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Scale/Scale.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Scale/Scale.dll
index dceb08656e9..9a29cd449e6 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Scale/Scale.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Scale/Scale.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Scrollbar/Scrollbar.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Scrollbar/Scrollbar.dll
index 6581166a0d2..63b9ae958d1 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Scrollbar/Scrollbar.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Scrollbar/Scrollbar.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/TList/TList.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/TList/TList.dll
index 74a7db0aec0..07a4dc6daf1 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/TList/TList.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/TList/TList.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Text/Text.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Text/Text.dll
index db74843f80d..c14323ccc9c 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Text/Text.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Text/Text.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/TixGrid/TixGrid.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/TixGrid/TixGrid.dll
index 68783a2bc86..d68c98bf2a4 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/TixGrid/TixGrid.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/TixGrid/TixGrid.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Tk.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Tk.dll
index c1fc88120c5..7e135378ed1 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Tk.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Tk.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/X/X.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/X/X.dll
index 5efc1ed7168..485c772a0d0 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/X/X.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/X/X.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Tk/Xlib/Xlib.dll b/Master/tlpkg/tlperl/site/lib/auto/Tk/Xlib/Xlib.dll
index f6753ab9b41..4e8d1614b59 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Tk/Xlib/Xlib.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Tk/Xlib/Xlib.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist
index 44c33603fa6..c0f914d4fb7 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Try/Tiny/.packlist
@@ -1 +1 @@
-C:\tlperl\site\lib\Try\Tiny.pm
+C:\tlperl526\site\lib\Try\Tiny.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Types/Serialiser/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Types/Serialiser/.packlist
deleted file mode 100644
index 67c43ab14db..00000000000
--- a/Master/tlpkg/tlperl/site/lib/auto/Types/Serialiser/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\Types\Serialiser.pm
-C:\tlperl\site\lib\Types\Serialiser\Error.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/URI/.packlist b/Master/tlpkg/tlperl/site/lib/auto/URI/.packlist
index 9213ecb7b1d..ff40cb104cf 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/URI/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/URI/.packlist
@@ -1,53 +1,53 @@
-C:\tlperl\site\lib\URI.pm
-C:\tlperl\site\lib\URI\Escape.pm
-C:\tlperl\site\lib\URI\Heuristic.pm
-C:\tlperl\site\lib\URI\IRI.pm
-C:\tlperl\site\lib\URI\QueryParam.pm
-C:\tlperl\site\lib\URI\Split.pm
-C:\tlperl\site\lib\URI\URL.pm
-C:\tlperl\site\lib\URI\WithBase.pm
-C:\tlperl\site\lib\URI\_foreign.pm
-C:\tlperl\site\lib\URI\_generic.pm
-C:\tlperl\site\lib\URI\_idna.pm
-C:\tlperl\site\lib\URI\_ldap.pm
-C:\tlperl\site\lib\URI\_login.pm
-C:\tlperl\site\lib\URI\_punycode.pm
-C:\tlperl\site\lib\URI\_query.pm
-C:\tlperl\site\lib\URI\_segment.pm
-C:\tlperl\site\lib\URI\_server.pm
-C:\tlperl\site\lib\URI\_userpass.pm
-C:\tlperl\site\lib\URI\data.pm
-C:\tlperl\site\lib\URI\file.pm
-C:\tlperl\site\lib\URI\file\Base.pm
-C:\tlperl\site\lib\URI\file\FAT.pm
-C:\tlperl\site\lib\URI\file\Mac.pm
-C:\tlperl\site\lib\URI\file\OS2.pm
-C:\tlperl\site\lib\URI\file\QNX.pm
-C:\tlperl\site\lib\URI\file\Unix.pm
-C:\tlperl\site\lib\URI\file\Win32.pm
-C:\tlperl\site\lib\URI\ftp.pm
-C:\tlperl\site\lib\URI\gopher.pm
-C:\tlperl\site\lib\URI\http.pm
-C:\tlperl\site\lib\URI\https.pm
-C:\tlperl\site\lib\URI\ldap.pm
-C:\tlperl\site\lib\URI\ldapi.pm
-C:\tlperl\site\lib\URI\ldaps.pm
-C:\tlperl\site\lib\URI\mailto.pm
-C:\tlperl\site\lib\URI\mms.pm
-C:\tlperl\site\lib\URI\news.pm
-C:\tlperl\site\lib\URI\nntp.pm
-C:\tlperl\site\lib\URI\pop.pm
-C:\tlperl\site\lib\URI\rlogin.pm
-C:\tlperl\site\lib\URI\rsync.pm
-C:\tlperl\site\lib\URI\rtsp.pm
-C:\tlperl\site\lib\URI\rtspu.pm
-C:\tlperl\site\lib\URI\sftp.pm
-C:\tlperl\site\lib\URI\sip.pm
-C:\tlperl\site\lib\URI\sips.pm
-C:\tlperl\site\lib\URI\snews.pm
-C:\tlperl\site\lib\URI\ssh.pm
-C:\tlperl\site\lib\URI\telnet.pm
-C:\tlperl\site\lib\URI\tn3270.pm
-C:\tlperl\site\lib\URI\urn.pm
-C:\tlperl\site\lib\URI\urn\isbn.pm
-C:\tlperl\site\lib\URI\urn\oid.pm
+C:\tlperl526\site\lib\URI.pm
+C:\tlperl526\site\lib\URI\Escape.pm
+C:\tlperl526\site\lib\URI\Heuristic.pm
+C:\tlperl526\site\lib\URI\IRI.pm
+C:\tlperl526\site\lib\URI\QueryParam.pm
+C:\tlperl526\site\lib\URI\Split.pm
+C:\tlperl526\site\lib\URI\URL.pm
+C:\tlperl526\site\lib\URI\WithBase.pm
+C:\tlperl526\site\lib\URI\_foreign.pm
+C:\tlperl526\site\lib\URI\_generic.pm
+C:\tlperl526\site\lib\URI\_idna.pm
+C:\tlperl526\site\lib\URI\_ldap.pm
+C:\tlperl526\site\lib\URI\_login.pm
+C:\tlperl526\site\lib\URI\_punycode.pm
+C:\tlperl526\site\lib\URI\_query.pm
+C:\tlperl526\site\lib\URI\_segment.pm
+C:\tlperl526\site\lib\URI\_server.pm
+C:\tlperl526\site\lib\URI\_userpass.pm
+C:\tlperl526\site\lib\URI\data.pm
+C:\tlperl526\site\lib\URI\file.pm
+C:\tlperl526\site\lib\URI\file\Base.pm
+C:\tlperl526\site\lib\URI\file\FAT.pm
+C:\tlperl526\site\lib\URI\file\Mac.pm
+C:\tlperl526\site\lib\URI\file\OS2.pm
+C:\tlperl526\site\lib\URI\file\QNX.pm
+C:\tlperl526\site\lib\URI\file\Unix.pm
+C:\tlperl526\site\lib\URI\file\Win32.pm
+C:\tlperl526\site\lib\URI\ftp.pm
+C:\tlperl526\site\lib\URI\gopher.pm
+C:\tlperl526\site\lib\URI\http.pm
+C:\tlperl526\site\lib\URI\https.pm
+C:\tlperl526\site\lib\URI\ldap.pm
+C:\tlperl526\site\lib\URI\ldapi.pm
+C:\tlperl526\site\lib\URI\ldaps.pm
+C:\tlperl526\site\lib\URI\mailto.pm
+C:\tlperl526\site\lib\URI\mms.pm
+C:\tlperl526\site\lib\URI\news.pm
+C:\tlperl526\site\lib\URI\nntp.pm
+C:\tlperl526\site\lib\URI\pop.pm
+C:\tlperl526\site\lib\URI\rlogin.pm
+C:\tlperl526\site\lib\URI\rsync.pm
+C:\tlperl526\site\lib\URI\rtsp.pm
+C:\tlperl526\site\lib\URI\rtspu.pm
+C:\tlperl526\site\lib\URI\sftp.pm
+C:\tlperl526\site\lib\URI\sip.pm
+C:\tlperl526\site\lib\URI\sips.pm
+C:\tlperl526\site\lib\URI\snews.pm
+C:\tlperl526\site\lib\URI\ssh.pm
+C:\tlperl526\site\lib\URI\telnet.pm
+C:\tlperl526\site\lib\URI\tn3270.pm
+C:\tlperl526\site\lib\URI\urn.pm
+C:\tlperl526\site\lib\URI\urn\isbn.pm
+C:\tlperl526\site\lib\URI\urn\oid.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist b/Master/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist
index 854d05abe32..60260cec685 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/WWW/RobotRules/.packlist
@@ -1,2 +1,2 @@
-C:\tlperl\site\lib\WWW\RobotRules.pm
-C:\tlperl\site\lib\WWW\RobotRules\AnyDBM_File.pm
+C:\tlperl526\site\lib\WWW\RobotRules.pm
+C:\tlperl526\site\lib\WWW\RobotRules\AnyDBM_File.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist
index 1cba447ccf8..f2a1d060af9 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/API/.packlist
@@ -1,7 +1,7 @@
-C:\tlperl\site\lib\Win32\API.pm
-C:\tlperl\site\lib\Win32\API\Callback.pm
-C:\tlperl\site\lib\Win32\API\Callback\IATPatch.pod
-C:\tlperl\site\lib\Win32\API\Struct.pm
-C:\tlperl\site\lib\Win32\API\Type.pm
-C:\tlperl\site\lib\auto\Win32\API\API.dll
-C:\tlperl\site\lib\auto\Win32\API\Callback\Callback.dll
+C:\tlperl526\site\lib\Win32\API.pm
+C:\tlperl526\site\lib\Win32\API\Callback.pm
+C:\tlperl526\site\lib\Win32\API\Callback\IATPatch.pod
+C:\tlperl526\site\lib\Win32\API\Struct.pm
+C:\tlperl526\site\lib\Win32\API\Type.pm
+C:\tlperl526\site\lib\auto\Win32\API\API.dll
+C:\tlperl526\site\lib\auto\Win32\API\Callback\Callback.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/API/API.dll b/Master/tlpkg/tlperl/site/lib/auto/Win32/API/API.dll
index 1da8a27ac20..14c1c55329b 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/API/API.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/API/API.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll b/Master/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll
index 2d50bfa9573..c0cef779fd2 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/API/Callback/Callback.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist
index 1a443fac382..557fa6b8d0e 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/Console/.packlist
@@ -1,2 +1,2 @@
-C:\tlperl\site\lib\Win32\Console.pm
-C:\tlperl\site\lib\auto\Win32\Console\Console.dll
+C:\tlperl526\site\lib\Win32\Console.pm
+C:\tlperl526\site\lib\auto\Win32\Console\Console.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll b/Master/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll
index 1eb79855d63..40131300a4b 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/Console/Console.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/.packlist
index eb21a2a013b..9192cb0d0f0 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/.packlist
@@ -1,11 +1,11 @@
-C:\tlperl\site\lib\OLE.pm
-C:\tlperl\site\lib\Win32\OLE.pm
-C:\tlperl\site\lib\Win32\OLE\Const.pm
-C:\tlperl\site\lib\Win32\OLE\Enum.pm
-C:\tlperl\site\lib\Win32\OLE\Lite.pm
-C:\tlperl\site\lib\Win32\OLE\NEWS.pod
-C:\tlperl\site\lib\Win32\OLE\NLS.pm
-C:\tlperl\site\lib\Win32\OLE\TPJ.pod
-C:\tlperl\site\lib\Win32\OLE\TypeInfo.pm
-C:\tlperl\site\lib\Win32\OLE\Variant.pm
-C:\tlperl\site\lib\auto\Win32\OLE\OLE.dll
+C:\tlperl526\site\lib\OLE.pm
+C:\tlperl526\site\lib\Win32\OLE.pm
+C:\tlperl526\site\lib\Win32\OLE\Const.pm
+C:\tlperl526\site\lib\Win32\OLE\Enum.pm
+C:\tlperl526\site\lib\Win32\OLE\Lite.pm
+C:\tlperl526\site\lib\Win32\OLE\NEWS.pod
+C:\tlperl526\site\lib\Win32\OLE\NLS.pm
+C:\tlperl526\site\lib\Win32\OLE\TPJ.pod
+C:\tlperl526\site\lib\Win32\OLE\TypeInfo.pm
+C:\tlperl526\site\lib\Win32\OLE\Variant.pm
+C:\tlperl526\site\lib\auto\Win32\OLE\OLE.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/OLE.dll b/Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/OLE.dll
index 9f4ee98c466..bcd715bbcd9 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/OLE.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/OLE/OLE.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/Process/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Win32/Process/.packlist
deleted file mode 100644
index 2c8a965f3a1..00000000000
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/Process/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\Win32\Process.pm
-C:\tlperl\site\lib\auto\Win32\Process\Process.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/Process/Process.dll b/Master/tlpkg/tlperl/site/lib/auto/Win32/Process/Process.dll
deleted file mode 100755
index 7c4e92a6725..00000000000
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/Process/Process.dll
+++ /dev/null
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist
index 2969a834652..d8e989c07c0 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/.packlist
@@ -1,2 +1,2 @@
-C:\tlperl\site\lib\Win32\Shortcut.pm
-C:\tlperl\site\lib\auto\Win32\Shortcut\Shortcut.dll
+C:\tlperl526\site\lib\Win32\Shortcut.pm
+C:\tlperl526\site\lib\auto\Win32\Shortcut\Shortcut.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll b/Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll
index 5bb6d509e87..4f20afefc29 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/Shortcut/Shortcut.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist
index 090c67dccf3..b62494f253e 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32/TieRegistry/.packlist
@@ -1,2 +1,2 @@
-C:\tlperl\site\lib\Tie\Registry.pm
-C:\tlperl\site\lib\Win32\TieRegistry.pm
+C:\tlperl526\site\lib\Tie\Registry.pm
+C:\tlperl526\site\lib\Win32\TieRegistry.pm
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist b/Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist
index f86d8016410..0b36b63c563 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/.packlist
@@ -1,3 +1,3 @@
-C:\tlperl\site\lib\Win32API\Registry.pm
-C:\tlperl\site\lib\Win32API\Registry\cRegistry.pc
-C:\tlperl\site\lib\auto\Win32API\Registry\Registry.dll
+C:\tlperl526\site\lib\Win32API\Registry.pm
+C:\tlperl526\site\lib\Win32API\Registry\cRegistry.pc
+C:\tlperl526\site\lib\auto\Win32API\Registry\Registry.dll
diff --git a/Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll b/Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll
index a460a26c22f..3a6f095a769 100755
--- a/Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll
+++ b/Master/tlpkg/tlperl/site/lib/auto/Win32API/Registry/Registry.dll
Binary files differ
diff --git a/Master/tlpkg/tlperl/site/lib/auto/common/sense/.packlist b/Master/tlpkg/tlperl/site/lib/auto/common/sense/.packlist
deleted file mode 100644
index 3ec71dd10ac..00000000000
--- a/Master/tlpkg/tlperl/site/lib/auto/common/sense/.packlist
+++ /dev/null
@@ -1,2 +0,0 @@
-C:\tlperl\site\lib\common\sense.pm
-C:\tlperl\site\lib\common\sense.pod
diff --git a/Master/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist b/Master/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist
index 156f09f720f..17702f0880c 100644
--- a/Master/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist
+++ b/Master/tlpkg/tlperl/site/lib/auto/libwww/perl/.packlist
@@ -1,33 +1,33 @@
-C:\tlperl\bin\lwp-download
-C:\tlperl\bin\lwp-download.bat
-C:\tlperl\bin\lwp-dump
-C:\tlperl\bin\lwp-dump.bat
-C:\tlperl\bin\lwp-mirror
-C:\tlperl\bin\lwp-mirror.bat
-C:\tlperl\bin\lwp-request
-C:\tlperl\bin\lwp-request.bat
-C:\tlperl\site\lib\LWP.pm
-C:\tlperl\site\lib\LWP\Authen\Basic.pm
-C:\tlperl\site\lib\LWP\Authen\Digest.pm
-C:\tlperl\site\lib\LWP\Authen\Ntlm.pm
-C:\tlperl\site\lib\LWP\ConnCache.pm
-C:\tlperl\site\lib\LWP\Debug.pm
-C:\tlperl\site\lib\LWP\DebugFile.pm
-C:\tlperl\site\lib\LWP\Debug\TraceHTTP.pm
-C:\tlperl\site\lib\LWP\MemberMixin.pm
-C:\tlperl\site\lib\LWP\Protocol.pm
-C:\tlperl\site\lib\LWP\Protocol\cpan.pm
-C:\tlperl\site\lib\LWP\Protocol\data.pm
-C:\tlperl\site\lib\LWP\Protocol\file.pm
-C:\tlperl\site\lib\LWP\Protocol\ftp.pm
-C:\tlperl\site\lib\LWP\Protocol\gopher.pm
-C:\tlperl\site\lib\LWP\Protocol\http.pm
-C:\tlperl\site\lib\LWP\Protocol\loopback.pm
-C:\tlperl\site\lib\LWP\Protocol\mailto.pm
-C:\tlperl\site\lib\LWP\Protocol\nntp.pm
-C:\tlperl\site\lib\LWP\Protocol\nogo.pm
-C:\tlperl\site\lib\LWP\RobotUA.pm
-C:\tlperl\site\lib\LWP\Simple.pm
-C:\tlperl\site\lib\LWP\UserAgent.pm
-C:\tlperl\site\lib\libwww\lwpcook.pod
-C:\tlperl\site\lib\libwww\lwptut.pod
+C:\tlperl526\bin\lwp-download
+C:\tlperl526\bin\lwp-download.bat
+C:\tlperl526\bin\lwp-dump
+C:\tlperl526\bin\lwp-dump.bat
+C:\tlperl526\bin\lwp-mirror
+C:\tlperl526\bin\lwp-mirror.bat
+C:\tlperl526\bin\lwp-request
+C:\tlperl526\bin\lwp-request.bat
+C:\tlperl526\site\lib\LWP.pm
+C:\tlperl526\site\lib\LWP\Authen\Basic.pm
+C:\tlperl526\site\lib\LWP\Authen\Digest.pm
+C:\tlperl526\site\lib\LWP\Authen\Ntlm.pm
+C:\tlperl526\site\lib\LWP\ConnCache.pm
+C:\tlperl526\site\lib\LWP\Debug.pm
+C:\tlperl526\site\lib\LWP\DebugFile.pm
+C:\tlperl526\site\lib\LWP\Debug\TraceHTTP.pm
+C:\tlperl526\site\lib\LWP\MemberMixin.pm
+C:\tlperl526\site\lib\LWP\Protocol.pm
+C:\tlperl526\site\lib\LWP\Protocol\cpan.pm
+C:\tlperl526\site\lib\LWP\Protocol\data.pm
+C:\tlperl526\site\lib\LWP\Protocol\file.pm
+C:\tlperl526\site\lib\LWP\Protocol\ftp.pm
+C:\tlperl526\site\lib\LWP\Protocol\gopher.pm
+C:\tlperl526\site\lib\LWP\Protocol\http.pm
+C:\tlperl526\site\lib\LWP\Protocol\loopback.pm
+C:\tlperl526\site\lib\LWP\Protocol\mailto.pm
+C:\tlperl526\site\lib\LWP\Protocol\nntp.pm
+C:\tlperl526\site\lib\LWP\Protocol\nogo.pm
+C:\tlperl526\site\lib\LWP\RobotUA.pm
+C:\tlperl526\site\lib\LWP\Simple.pm
+C:\tlperl526\site\lib\LWP\UserAgent.pm
+C:\tlperl526\site\lib\libwww\lwpcook.pod
+C:\tlperl526\site\lib\libwww\lwptut.pod
diff --git a/Master/tlpkg/tlperl/site/lib/common/sense.pm b/Master/tlpkg/tlperl/site/lib/common/sense.pm
deleted file mode 100644
index 14f18a4710b..00000000000
--- a/Master/tlpkg/tlperl/site/lib/common/sense.pm
+++ /dev/null
@@ -1,16 +0,0 @@
-package common::sense;
-
-our $VERSION = 3.74;
-
-# overload should be included
-
-sub import {
- local $^W; # work around perl 5.16 spewing out warnings for next statement
- # use warnings
- ${^WARNING_BITS} ^= ${^WARNING_BITS} ^ "\x0c\x3f\x33\x00\x0f\xf0\x0f\xc0\xf0\xfc\x33\x00\x00\x00\x0c\x00\x00";
- # use strict, use utf8; use feature;
- $^H |= 0x1c820fc0;
- @^H{qw(feature_fc feature_unicode feature_switch feature_state feature_say feature___SUB__ feature_evalbytes)} = (1) x 7;
-}
-
-1
diff --git a/Master/tlpkg/tlperl/site/lib/common/sense.pod b/Master/tlpkg/tlperl/site/lib/common/sense.pod
deleted file mode 100644
index 1521faf5ced..00000000000
--- a/Master/tlpkg/tlperl/site/lib/common/sense.pod
+++ /dev/null
@@ -1,445 +0,0 @@
-=head1 NAME
-
-common::sense - save a tree AND a kitten, use common::sense!
-
-=head1 SYNOPSIS
-
- use common::sense;
-
- # Supposed to be mostly the same, with much lower memory usage, as:
-
- # use utf8;
- # use strict qw(vars subs);
- # use feature qw(say state switch);
- # use feature qw(unicode_strings unicode_eval current_sub fc evalbytes);
- # no feature qw(array_base);
- # no warnings;
- # use warnings qw(FATAL closed threads internal debugging pack
- # portable prototype inplace io pipe unpack malloc
- # glob digit printf layer reserved taint closure
- # semicolon);
- # no warnings qw(exec newline unopened);
-
-=head1 DESCRIPTION
-
- “Nothing is more fairly distributed than common sense: no one thinks
- he needs more of it than he already has.”
-
- – René Descartes
-
-This module implements some sane defaults for Perl programs, as defined by
-two typical (or not so typical - use your common sense) specimens of Perl
-coders. In fact, after working out details on which warnings and strict
-modes to enable and make fatal, we found that we (and our code written so
-far, and others) fully agree on every option, even though we never used
-warnings before, so it seems this module indeed reflects a "common" sense
-among some long-time Perl coders.
-
-The basic philosophy behind the choices made in common::sense can be
-summarised as: "enforcing strict policies to catch as many bugs as
-possible, while at the same time, not limiting the expressive power
-available to the programmer".
-
-Two typical examples of how this philosophy is applied in practise is the
-handling of uninitialised and malloc warnings:
-
-=over 4
-
-=item I<uninitialised>
-
-C<undef> is a well-defined feature of perl, and enabling warnings for
-using it rarely catches any bugs, but considerably limits you in what you
-can do, so uninitialised warnings are disabled.
-
-=item I<malloc>
-
-Freeing something twice on the C level is a serious bug, usually causing
-memory corruption. It often leads to side effects much later in the
-program and there are no advantages to not reporting this, so malloc
-warnings are fatal by default.
-
-=back
-
-Unfortunately, there is no fine-grained warning control in perl, so often
-whole groups of useful warnings had to be excluded because of a single
-useless warning (for example, perl puts an arbitrary limit on the length
-of text you can match with some regexes before emitting a warning, making
-the whole C<regexp> category useless).
-
-What follows is a more thorough discussion of what this module does,
-and why it does it, and what the advantages (and disadvantages) of this
-approach are.
-
-=head1 RATIONALE
-
-=over 4
-
-=item use utf8
-
-While it's not common sense to write your programs in UTF-8, it's quickly
-becoming the most common encoding, is the designated future default
-encoding for perl sources, and the most convenient encoding available
-(you can do really nice quoting tricks...). Experience has shown that our
-programs were either all pure ascii or utf-8, both of which will stay the
-same.
-
-There are few drawbacks to enabling UTF-8 source code by default (mainly
-some speed hits due to bugs in older versions of perl), so this module
-enables UTF-8 source code encoding by default.
-
-
-=item use strict qw(subs vars)
-
-Using C<use strict> is definitely common sense, but C<use strict
-'refs'> definitely overshoots its usefulness. After almost two
-decades of Perl hacking, we decided that it does more harm than being
-useful. Specifically, constructs like these:
-
- @{ $var->[0] }
-
-Must be written like this (or similarly), when C<use strict 'refs'> is in
-scope, and C<$var> can legally be C<undef>:
-
- @{ $var->[0] || [] }
-
-This is annoying, and doesn't shield against obvious mistakes such as
-using C<"">, so one would even have to write (at least for the time
-being):
-
- @{ defined $var->[0] ? $var->[0] : [] }
-
-... which nobody with a bit of common sense would consider
-writing: clear code is clearly something else.
-
-Curiously enough, sometimes perl is not so strict, as this works even with
-C<use strict> in scope:
-
- for (@{ $var->[0] }) { ...
-
-If that isn't hypocrisy! And all that from a mere program!
-
-
-=item use feature qw(say state given ...)
-
-We found it annoying that we always have to enable extra features. If
-something breaks because it didn't anticipate future changes, so be
-it. 5.10 broke almost all our XS modules and nobody cared either (or at
-least I know of nobody who really complained about gratuitous changes -
-as opposed to bugs).
-
-Few modules that are not actively maintained work with newer versions of
-Perl, regardless of use feature or not, so a new major perl release means
-changes to many modules - new keywords are just the tip of the iceberg.
-
-If your code isn't alive, it's dead, Jim - be an active maintainer.
-
-But nobody forces you to use those extra features in modules meant for
-older versions of perl - common::sense of course works there as well.
-There is also an important other mode where having additional features by
-default is useful: commandline hacks and internal use scripts: See "much
-reduced typing", below.
-
-There is one notable exception: C<unicode_eval> is not enabled by
-default. In our opinion, C<use feature> had one main effect - newer perl
-versions don't value backwards compatibility and the ability to write
-modules for multiple perl versions much, after all, you can use feature.
-
-C<unicode_eval> doesn't add a new feature, it breaks an existing function.
-
-=item no warnings, but a lot of new errors
-
-Ah, the dreaded warnings. Even worse, the horribly dreaded C<-w>
-switch: Even though we don't care if other people use warnings (and
-certainly there are useful ones), a lot of warnings simply go against the
-spirit of Perl.
-
-Most prominently, the warnings related to C<undef>. There is nothing wrong
-with C<undef>: it has well-defined semantics, it is useful, and spitting
-out warnings you never asked for is just evil.
-
-The result was that every one of our modules did C<no warnings> in the
-past, to avoid somebody accidentally using and forcing his bad standards
-on our code. Of course, this switched off all warnings, even the useful
-ones. Not a good situation. Really, the C<-w> switch should only enable
-warnings for the main program only.
-
-Funnily enough, L<perllexwarn> explicitly mentions C<-w> (and not in a
-favourable way, calling it outright "wrong"), but standard utilities, such
-as L<prove>, or MakeMaker when running C<make test>, still enable them
-blindly.
-
-For version 2 of common::sense, we finally sat down a few hours and went
-through I<every single warning message>, identifying - according to
-common sense - all the useful ones.
-
-This resulted in the rather impressive list in the SYNOPSIS. When we
-weren't sure, we didn't include the warning, so the list might grow in
-the future (we might have made a mistake, too, so the list might shrink
-as well).
-
-Note the presence of C<FATAL> in the list: we do not think that the
-conditions caught by these warnings are worthy of a warning, we I<insist>
-that they are worthy of I<stopping> your program, I<instantly>. They are
-I<bugs>!
-
-Therefore we consider C<common::sense> to be much stricter than C<use
-warnings>, which is good if you are into strict things (we are not,
-actually, but these things tend to be subjective).
-
-After deciding on the list, we ran the module against all of our code that
-uses C<common::sense> (that is almost all of our code), and found only one
-occurrence where one of them caused a problem: one of elmex's (unreleased)
-modules contained:
-
- $fmt =~ s/([^\s\[]*)\[( [^\]]* )\]/\x0$1\x1$2\x0/xgo;
-
-We quickly agreed that indeed the code should be changed, even though it
-happened to do the right thing when the warning was switched off.
-
-
-=item much reduced typing
-
-Especially with version 2.0 of common::sense, the amount of boilerplate
-code you need to add to get I<this> policy is daunting. Nobody would write
-this out in throwaway scripts, commandline hacks or in quick internal-use
-scripts.
-
-By using common::sense you get a defined set of policies (ours, but maybe
-yours, too, if you accept them), and they are easy to apply to your
-scripts: typing C<use common::sense;> is even shorter than C<use warnings;
-use strict; use feature ...>.
-
-And you can immediately use the features of your installed perl, which
-is more difficult in code you release, but not usually an issue for
-internal-use code (downgrades of your production perl should be rare,
-right?).
-
-
-=item mucho reduced memory usage
-
-Just using all those pragmas mentioned in the SYNOPSIS together wastes
-<blink>I<< B<776> kilobytes >></blink> of precious memory in my perl, for
-I<every single perl process using our code>, which on our machines, is a
-lot. In comparison, this module only uses I<< B<four> >> kilobytes (I even
-had to write it out so it looks like more) of memory on the same platform.
-
-The money/time/effort/electricity invested in these gigabytes (probably
-petabytes globally!) of wasted memory could easily save 42 trees, and a
-kitten!
-
-Unfortunately, until everybody applies more common sense, there will still
-often be modules that pull in the monster pragmas. But one can hope...
-
-=back
-
-=head1 THERE IS NO 'no common::sense'!!!! !!!! !!
-
-This module doesn't offer an unimport. First of all, it wastes even more
-memory, second, and more importantly, who with even a bit of common sense
-would want no common sense?
-
-=head1 STABILITY AND FUTURE VERSIONS
-
-Future versions might change just about everything in this module. We
-might test our modules and upload new ones working with newer versions of
-this module, and leave you standing in the rain because we didn't tell
-you. In fact, we did so when switching from 1.0 to 2.0, which enabled gobs
-of warnings, and made them FATAL on top.
-
-Maybe we will load some nifty modules that try to emulate C<say> or so
-with perls older than 5.10 (this module, of course, should work with older
-perl versions - supporting 5.8 for example is just common sense at this
-time. Maybe not in the future, but of course you can trust our common
-sense to be consistent with, uhm, our opinion).
-
-=head1 WHAT OTHER PEOPLE HAD TO SAY ABOUT THIS MODULE
-
-apeiron
-
- "... wow"
- "I hope common::sense is a joke."
-
-crab
-
- "i wonder how it would be if joerg schilling wrote perl modules."
-
-Adam Kennedy
-
- "Very interesting, efficient, and potentially something I'd use all the time."
- [...]
- "So no common::sense for me, alas."
-
-H.Merijn Brand
-
- "Just one more reason to drop JSON::XS from my distribution list"
-
-Pista Palo
-
- "Something in short supply these days..."
-
-Steffen Schwigon
-
- "This module is quite for sure *not* just a repetition of all the other
- 'use strict, use warnings'-approaches, and it's also not the opposite.
- [...] And for its chosen middle-way it's also not the worst name ever.
- And everything is documented."
-
-BKB
-
- "[Deleted - thanks to Steffen Schwigon for pointing out this review was
- in error.]"
-
-Somni
-
- "the arrogance of the guy"
- "I swear he tacked somenoe else's name onto the module
- just so he could use the royal 'we' in the documentation"
-
-Anonymous Monk
-
- "You just gotta love this thing, its got META.json!!!"
-
-dngor
-
- "Heh. '"<elmex at ta-sa.org>"' The quotes are semantic
- distancing from that e-mail address."
-
-Jerad Pierce
-
- "Awful name (not a proper pragma), and the SYNOPSIS doesn't tell you
- anything either. Nor is it clear what features have to do with "common
- sense" or discipline."
-
-acme
-
- "THERE IS NO 'no common::sense'!!!! !!!! !!"
-
-apeiron (meta-comment about us commenting^Wquoting his comment)
-
- "How about quoting this: get a clue, you fucktarded amoeba."
-
-quanth
-
- "common sense is beautiful, json::xs is fast, Anyevent, EV are fast and
- furious. I love mlehmannware ;)"
-
-apeiron
-
- "... it's mlehmann's view of what common sense is. His view of common
- sense is certainly uncommon, insofar as anyone with a clue disagrees
- with him."
-
-apeiron (another meta-comment)
-
- "apeiron wonders if his little informant is here to steal more quotes"
-
-ew73
-
- "... I never got past the SYNOPSIS before calling it shit."
- [...]
- How come no one ever quotes me. :("
-
-chip (not willing to explain his cryptic questions about links in Changes files)
-
- "I'm willing to ask the question I've asked. I'm not willing to go
- through the whole dance you apparently have choreographed. Either
- answer the completely obvious question, or tell me to fuck off again."
-
-=head1 FREQUENTLY ASKED QUESTIONS
-
-Or frequently-come-up confusions.
-
-=over 4
-
-=item Is this module meant to be serious?
-
-Yes, we would have put it under the C<Acme::> namespace otherwise.
-
-=item But the manpage is written in a funny/stupid/... way?
-
-This was meant to make it clear that our common sense is a subjective
-thing and other people can use their own notions, taking the steam out
-of anybody who might be offended (as some people are always offended no
-matter what you do).
-
-This was a failure.
-
-But we hope the manpage still is somewhat entertaining even though it
-explains boring rationale.
-
-=item Why do you impose your conventions on my code?
-
-For some reason people keep thinking that C<common::sense> imposes
-process-wide limits, even though the SYNOPSIS makes it clear that it works
-like other similar modules - i.e. only within the scope that C<use>s them.
-
-So, no, we don't - nobody is forced to use this module, and using a module
-that relies on common::sense does not impose anything on you.
-
-=item Why do you think only your notion of common::sense is valid?
-
-Well, we don't, and have clearly written this in the documentation to
-every single release. We were just faster than anybody else w.r.t. to
-grabbing the namespace.
-
-=item But everybody knows that you have to use strict and use warnings,
-why do you disable them?
-
-Well, we don't do this either - we selectively disagree with the
-usefulness of some warnings over others. This module is aimed at
-experienced Perl programmers, not people migrating from other languages
-who might be surprised about stuff such as C<undef>. On the other hand,
-this does not exclude the usefulness of this module for total newbies, due
-to its strictness in enforcing policy, while at the same time not limiting
-the expressive power of perl.
-
-This module is considerably I<more> strict than the canonical C<use
-strict; use warnings>, as it makes all its warnings fatal in nature, so
-you can not get away with as many things as with the canonical approach.
-
-This was not implemented in version 1.0 because of the daunting number
-of warning categories and the difficulty in getting exactly the set of
-warnings you wish (i.e. look at the SYNOPSIS in how complicated it is to
-get a specific set of warnings - it is not reasonable to put this into
-every module, the maintenance effort would be enormous).
-
-=item But many modules C<use strict> or C<use warnings>, so the memory
-savings do not apply?
-
-I suddenly feel sad...
-
-But yes, that's true. Fortunately C<common::sense> still uses only a
-miniscule amount of RAM.
-
-=item But it adds another dependency to your modules!
-
-It's a fact, yeah. But it's trivial to install, most popular modules have
-many more dependencies. And we consider dependencies a good thing - it
-leads to better APIs, more thought about interworking of modules and so
-on.
-
-=item Why do you use JSON and not YAML for your META.yml?
-
-This is not true - YAML supports a large subset of JSON, and this subset
-is what META.yml is written in, so it would be correct to say "the
-META.yml is written in a common subset of YAML and JSON".
-
-The META.yml follows the YAML, JSON and META.yml specifications, and is
-correctly parsed by CPAN, so if you have trouble with it, the problem is
-likely on your side.
-
-=item But! But!
-
-Yeah, we know.
-
-=back
-
-=head1 AUTHOR
-
- Marc Lehmann <schmorp@schmorp.de>
- http://home.schmorp.de/
-
- Robin Redeker, "<elmex at ta-sa.org>".
-
-=cut
-
diff --git a/Master/tlpkg/tlperl/site/lib/libwww/lwpcook.pod b/Master/tlpkg/tlperl/site/lib/libwww/lwpcook.pod
index 43af716db06..b4d4989a6a0 100644
--- a/Master/tlpkg/tlperl/site/lib/libwww/lwpcook.pod
+++ b/Master/tlpkg/tlperl/site/lib/libwww/lwpcook.pod
@@ -97,7 +97,7 @@ operation is to access a WWW form application:
$ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(
- POST => 'http://rt.cpan.org/Public/Dist/Display.html');
+ POST => 'https://rt.cpan.org/Public/Dist/Display.html');
$req->content_type('application/x-www-form-urlencoded');
$req->content('Status=Active&Name=libwww-perl');
@@ -112,7 +112,7 @@ suitable default for the content_type:
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
- my $req = POST 'http://rt.cpan.org/Public/Dist/Display.html',
+ my $req = POST 'https://rt.cpan.org/Public/Dist/Display.html',
[ Status => 'Active', Name => 'libwww-perl' ];
print $ua->request($req)->as_string;
@@ -185,7 +185,9 @@ program for an example of this.
Some sites like to play games with cookies. By default LWP ignores
cookies provided by the servers it visits. LWP will collect cookies
-and respond to cookie requests if you set up a cookie jar.
+and respond to cookie requests if you set up a cookie jar. LWP doesn't
+provide a cookie jar itself, but if you install L<HTTP::CookieJar::LWP>,
+it can be used like this:
use LWP::UserAgent;
use HTTP::CookieJar::LWP;
@@ -258,7 +260,7 @@ name):
$ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET =>
- 'http://www.cpan.org/authors/Gisle_Aas/libwww-perl-6.02.tar.gz');
+ 'http://www.cpan.org/CPAN/authors/id/O/OA/OALDERS/libwww-perl-6.26.tar.gz');
$res = $ua->request($req, "libwww-perl.tar.gz");
if ($res->is_success) {
print "ok\n";
@@ -273,7 +275,7 @@ argument is a code reference):
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
- $URL = 'ftp://ftp.unit.no/pub/rfc/rfc-index.txt';
+ $URL = 'ftp://ftp.isc.org/pub/rfc/rfc-index.txt';
my $expected_length;
my $bytes_received = 0;